From d229c58df6e7dd8a3aa88dd84577c1576710010f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Sun, 6 Mar 2016 20:12:01 +0100 Subject: [PATCH 001/383] Fixed Makefile to work with Melzi2 boards on arduino-1.6.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - also by default use ${HOME}/Arduino as install directory which may be more sane, especially with arduino packages provided by distributions - bump arduino version to 106 (this seems to be useless) - program firmware through the USB serial which is more comfortable way how to program the firmware - use 57600 programing speed by default which seems to be more reliable with arduino bootloaders (at least with those shipped with the Melzi2 boards) Signed-off-by: Jaroslav Škarvada --- Marlin/Makefile | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/Marlin/Makefile b/Marlin/Makefile index 68b0de0ba1..30e2966e3a 100644 --- a/Marlin/Makefile +++ b/Marlin/Makefile @@ -41,17 +41,17 @@ HARDWARE_MOTHERBOARD ?= 11 # Arduino source install directory, and version number # On most linuxes this will be /usr/share/arduino -ARDUINO_INSTALL_DIR ?= /usr/share/arduino -ARDUINO_VERSION ?= 105 +ARDUINO_INSTALL_DIR ?= ${HOME}/Arduino +ARDUINO_VERSION ?= 106 # You can optionally set a path to the avr-gcc tools. Requires a trailing slash. (ex: /usr/local/avr-gcc/bin) AVR_TOOLS_PATH ?= #Programmer configuration -UPLOAD_RATE ?= 115200 -AVRDUDE_PROGRAMMER ?= wiring +UPLOAD_RATE ?= 57600 +AVRDUDE_PROGRAMMER ?= arduino # on most linuxes this will be /dev/ttyACM0 or /dev/ttyACM1 -UPLOAD_PORT ?= /dev/arduino +UPLOAD_PORT ?= /dev/ttyUSB0 #Directory used to build files in, contains all the build files, from object files to the final hex file #on linux it is best to put an absolute path like /home/username/tmp . @@ -147,6 +147,9 @@ MCU ?= atmega1284p else ifeq ($(HARDWARE_MOTHERBOARD),66) HARDWARE_VARIANT ?= Sanguino MCU ?= atmega1284p +else ifeq ($(HARDWARE_MOTHERBOARD),69) +HARDWARE_VARIANT ?= Sanguino +MCU ?= atmega1284p #Ultimaker else ifeq ($(HARDWARE_MOTHERBOARD),7) @@ -222,7 +225,7 @@ F_CPU ?= 16000000 # Libraries, the "hardware variant" are for boards # that derives from that, and their source are present in # the main Marlin source directory -ifeq ($(HARDWARE_VARIANT), arduino) +ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Sanguino)) HARDWARE_DIR = $(ARDUINO_INSTALL_DIR)/hardware else ifeq ($(shell [ $(ARDUINO_VERSION) -ge 100 ] && echo true), true) @@ -231,7 +234,7 @@ else HARDWARE_DIR = ../ArduinoAddons/Arduino_0.xx endif endif -HARDWARE_SRC = $(HARDWARE_DIR)/$(HARDWARE_VARIANT)/cores/arduino +HARDWARE_SRC = $(HARDWARE_DIR)/marlin/avr/cores/arduino TARGET = $(notdir $(CURDIR)) @@ -242,9 +245,9 @@ TARGET = $(notdir $(CURDIR)) VPATH = . VPATH += $(BUILD_DIR) VPATH += $(HARDWARE_SRC) -ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Teensy)) -VPATH += $(ARDUINO_INSTALL_DIR)/libraries/LiquidCrystal -VPATH += $(ARDUINO_INSTALL_DIR)/libraries/SPI +ifeq ($(HARDWARE_VARIANT), $(filter $(HARDWARE_VARIANT),arduino Teensy Sanguino)) +VPATH += $(HARDWARE_DIR)/marlin/avr/libraries/LiquidCrystal/src +VPATH += $(HARDWARE_DIR)/marlin/avr/libraries/SPI ifeq ($(LIQUID_TWI2), 1) VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire VPATH += $(ARDUINO_INSTALL_DIR)/libraries/Wire/utility @@ -271,13 +274,17 @@ ifeq ($(HARDWARE_VARIANT), arduino) HARDWARE_SUB_VARIANT ?= mega VPATH += $(ARDUINO_INSTALL_DIR)/hardware/arduino/variants/$(HARDWARE_SUB_VARIANT) else +ifeq ($(HARDWARE_VARIANT), Sanguino) +VPATH += $(HARDWARE_DIR)/marlin/avr/variants/sanguino +else HARDWARE_SUB_VARIANT ?= standard VPATH += $(HARDWARE_DIR)/$(HARDWARE_VARIANT)/variants/$(HARDWARE_SUB_VARIANT) endif +endif SRC = wiring.c \ wiring_analog.c wiring_digital.c \ wiring_pulse.c \ - wiring_shift.c WInterrupts.c + wiring_shift.c WInterrupts.c hooks.c ifeq ($(HARDWARE_VARIANT), Teensy) SRC = wiring.c VPATH += $(ARDUINO_INSTALL_DIR)/hardware/teensy/cores/teensy From 399101fff31d31ae2237f33e72efa7ed8c62ab6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 30 Mar 2016 18:26:33 +0100 Subject: [PATCH 002/383] Implemented the stopwatch class and methods --- Marlin/stopwatch.cpp | 77 ++++++++++++++++++++++++++++++++++ Marlin/stopwatch.h | 99 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 Marlin/stopwatch.cpp create mode 100644 Marlin/stopwatch.h diff --git a/Marlin/stopwatch.cpp b/Marlin/stopwatch.cpp new file mode 100644 index 0000000000..fec11348af --- /dev/null +++ b/Marlin/stopwatch.cpp @@ -0,0 +1,77 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Marlin.h" +#include "stopwatch.h" + +stopwatch::stopwatch() { + this->reset(); + } + +void stopwatch::stop() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::stop()"); + if (!this->isRunning()) return; + + this->status = STPWTCH_STOPPED; + this->stopTimestamp = millis(); +} + +void stopwatch::pause() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::pause()"); + if (!this->isRunning()) return; + + this->status = STPWTCH_PAUSED; + this->stopTimestamp = millis(); +} + +void stopwatch::start() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::start()"); + if (this->isRunning()) return; + + if (this->isPaused()) this->accumulator = this->duration(); + else this->reset(); + + this->status = STPWTCH_RUNNING; + this->startTimestamp = millis(); +} + +void stopwatch::reset() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::reset()"); + + this->status = STPWTCH_STOPPED; + this->startTimestamp = 0; + this->stopTimestamp = 0; + this->accumulator = 0; +} + +bool stopwatch::isRunning() { + return (this->status == STPWTCH_RUNNING) ? true : false; +} + +bool stopwatch::isPaused() { + return (this->status == STPWTCH_PAUSED) ? true : false; +} + +uint16_t stopwatch::duration() { + return (((this->isRunning()) ? millis() : this->stopTimestamp) + - this->startTimestamp) / 1000 + this->accumulator; +} diff --git a/Marlin/stopwatch.h b/Marlin/stopwatch.h new file mode 100644 index 0000000000..d537b4dcc5 --- /dev/null +++ b/Marlin/stopwatch.h @@ -0,0 +1,99 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef STOPWATCH_H +#define STOPWATCH_H + +enum stopwatch_s { + STPWTCH_STOPPED = 0x0, + STPWTCH_RUNNING = 0x1, + STPWTCH_PAUSED = 0x2 +}; + +/** + * @brief Stopwatch class + * @details This class acts as a timer proving stopwatch functionality including + * the ability to pause the running time counter. + */ +class stopwatch { + private: + stopwatch_s status; + uint16_t accumulator; + uint32_t startTimestamp; + uint32_t stopTimestamp; + + public: + /** + * @brief Class constructor + */ + stopwatch(); + + /** + * @brief Stops the stopwatch + * @details Stops the running timer, it will silently ignore the request if + * no timer is currently running. + */ + void stop(); + + /** + * @brief Pauses the stopwatch + * @details Pauses the running timer, it will silently ignore the request if + * no timer is currently running. + */ + void pause(); + + /** + * @brief Starts the stopwatch + * @details Starts the timer, it will silently ignore the request if the + * timer is already running. + */ + void start(); + + /** + * @brief Resets the stopwatch + * @details Resets all settings to their default values. + */ + void reset(); + + /** + * @brief Checks if the timer is running + * @details Returns true if the timer is currently running, false otherwise. + * @return bool + */ + bool isRunning(); + + /** + * @brief Checks if the timer is paused + * @details Returns true if the timer is currently paused, false otherwise. + * @return bool + */ + bool isPaused(); + + /** + * @brief Gets the running time + * @details Returns the total number of seconds the timer has been running. + * @return uint16_t + */ + uint16_t duration(); +}; + +#endif //STOPWATCH_H From eb61051556d10bd612b8f87ca5d5a6c125258234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 6 Apr 2016 04:34:03 +0100 Subject: [PATCH 003/383] Rework the print job timer to use the stopwatch class --- Marlin/Marlin.h | 11 +- Marlin/Marlin_main.cpp | 100 +++++++----------- Marlin/dogm_lcd_implementation.h | 5 +- Marlin/temperature.cpp | 2 +- .../ultralcd_implementation_hitachi_HD44780.h | 6 +- 5 files changed, 47 insertions(+), 77 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index c6274056c1..9142e2a2d5 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -65,6 +65,8 @@ typedef unsigned long millis_t; #include "WString.h" +#include "stopwatch.h" + #ifdef USBCON #if ENABLED(BLUETOOTH) #define MYSERIAL bluetoothSerial @@ -357,8 +359,8 @@ extern bool axis_homed[3]; // axis[n].is_homed extern float retract_recover_length, retract_recover_length_swap, retract_recover_feedrate; #endif -extern millis_t print_job_start_ms; -extern millis_t print_job_stop_ms; +// Print job timer +extern stopwatch print_job_timer; // Handling multiple extruders pins extern uint8_t active_extruder; @@ -374,9 +376,4 @@ extern uint8_t active_extruder; extern void calculate_volumetric_multipliers(); -// Print job timer related functions -millis_t print_job_timer(); -bool print_job_start(millis_t t = 0); -bool print_job_stop(bool force = false); - #endif //MARLIN_H diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0eaf331091..969b59c031 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -298,8 +298,7 @@ const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42 millis_t previous_cmd_ms = 0; static millis_t max_inactive_time = 0; static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000L; -millis_t print_job_start_ms = 0; ///< Print job start time -millis_t print_job_stop_ms = 0; ///< Print job stop time +stopwatch print_job_timer = stopwatch(); static uint8_t target_extruder; #if ENABLED(AUTO_BED_LEVELING_FEATURE) @@ -1012,9 +1011,9 @@ inline void get_serial_commands() { ) { if (card_eof) { SERIAL_PROTOCOLLNPGM(MSG_FILE_PRINTED); - print_job_stop(true); + print_job_timer.stop(); char time[30]; - millis_t t = print_job_timer(); + millis_t t = print_job_timer.duration(); int hours = t / 60 / 60, minutes = (t / 60) % 60; sprintf_P(time, PSTR("%i " MSG_END_HOUR " %i " MSG_END_MINUTE), hours, minutes); SERIAL_ECHO_START; @@ -3624,7 +3623,7 @@ inline void gcode_M17() { */ inline void gcode_M24() { card.startFileprint(); - print_job_start(); + print_job_timer.start(); } /** @@ -3680,7 +3679,7 @@ inline void gcode_M17() { * M31: Get the time since the start of SD Print (or last M109) */ inline void gcode_M31() { - millis_t t = print_job_timer(); + millis_t t = print_job_timer.duration(); int min = t / 60, sec = t % 60; char time[30]; sprintf_P(time, PSTR("%i min, %i sec"), min, sec); @@ -4090,9 +4089,6 @@ inline void gcode_M104() { if (setTargetedHotend(104)) return; if (DEBUGGING(DRYRUN)) return; - // Start hook must happen before setTargetHotend() - print_job_start(); - if (code_seen('S')) { float temp = code_value(); setTargetHotend(temp, target_extruder); @@ -4101,10 +4097,24 @@ inline void gcode_M104() { setTargetHotend1(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset); #endif + /** + * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot + * stand by mode, for instance in a dual extruder setup, without affecting + * the running print timer. + */ + if (temp <= (EXTRUDE_MINTEMP/2)) { + print_job_timer.stop(); + LCD_MESSAGEPGM(WELCOME_MSG); + } + /** + * We do not check if the timer is already running because this check will + * be done for us inside the stopwatch::start() method thus a running timer + * will not restart. + */ + else print_job_timer.start(); + if (temp > degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); } - - if (print_job_stop()) LCD_MESSAGEPGM(WELCOME_MSG); } #if HAS_TEMP_HOTEND || HAS_TEMP_BED @@ -4232,9 +4242,6 @@ inline void gcode_M109() { if (setTargetedHotend(109)) return; if (DEBUGGING(DRYRUN)) return; - // Start hook must happen before setTargetHotend() - print_job_start(); - no_wait_for_cooling = code_seen('S'); if (no_wait_for_cooling || code_seen('R')) { float temp = code_value(); @@ -4244,11 +4251,25 @@ inline void gcode_M109() { setTargetHotend1(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset); #endif + /** + * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot + * stand by mode, for instance in a dual extruder setup, without affecting + * the running print timer. + */ + if (temp <= (EXTRUDE_MINTEMP/2)) { + print_job_timer.stop(); + LCD_MESSAGEPGM(WELCOME_MSG); + } + /** + * We do not check if the timer is already running because this check will + * be done for us inside the stopwatch::start() method thus a running timer + * will not restart. + */ + else print_job_timer.start(); + if (temp > degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); } - if (print_job_stop()) LCD_MESSAGEPGM(WELCOME_MSG); - #if ENABLED(AUTOTEMP) autotemp_enabled = code_seen('F'); if (autotemp_enabled) autotemp_factor = code_value(); @@ -7692,50 +7713,3 @@ void calculate_volumetric_multipliers() { for (int i = 0; i < EXTRUDERS; i++) volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]); } - -/** - * Start the print job timer - * - * The print job is only started if all extruders have their target temp at zero - * otherwise the print job timew would be reset everytime a M109 is received. - * - * @param t start timer timestamp - * - * @return true if the timer was started at function call - */ -bool print_job_start(millis_t t /* = 0 */) { - for (int i = 0; i < EXTRUDERS; i++) if (degTargetHotend(i) > 0) return false; - print_job_start_ms = (t) ? t : millis(); - print_job_stop_ms = 0; - return true; -} - -/** - * Check if the running print job has finished and stop the timer - * - * When the target temperature for all extruders is zero then we assume that the - * print job has finished printing. There are some special conditions under which - * this assumption may not be valid: If during a print job for some reason the - * user decides to bring a nozzle temp down and only then heat the other afterwards. - * - * @param force stops the timer ignoring all pre-checks - * - * @return boolean true if the print job has finished printing - */ -bool print_job_stop(bool force /* = false */) { - if (!print_job_start_ms) return false; - if (!force) for (int i = 0; i < EXTRUDERS; i++) if (degTargetHotend(i) > 0) return false; - print_job_stop_ms = millis(); - return true; -} - -/** - * Output the print job timer in seconds - * - * @return the number of seconds - */ -millis_t print_job_timer() { - if (!print_job_start_ms) return 0; - return (((print_job_stop_ms > print_job_start_ms) - ? print_job_stop_ms : millis()) - print_job_start_ms) / 1000; -} diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 4807fff56f..4da13cd297 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -334,9 +334,8 @@ static void lcd_implementation_status_screen() { } u8g.setPrintPos(80,48); - if (print_job_start_ms != 0) { - uint16_t time = (((print_job_stop_ms > print_job_start_ms) - ? print_job_stop_ms : millis()) - print_job_start_ms) / 60000; + uint16_t time = print_job_timer.duration() / 60; + if (time != 0) { lcd_print(itostr2(time/60)); lcd_print(':'); lcd_print(itostr2(time%60)); diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 22797a06fb..68873f5e46 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1175,7 +1175,7 @@ void disable_all_heaters() { setTargetBed(0); // If all heaters go down then for sure our print job has stopped - print_job_stop(true); + print_job_timer.stop(); #define DISABLE_HEATER(NR) { \ setTargetHotend(NR, 0); \ diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 6fdee2a667..325bd12fc0 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -739,9 +739,9 @@ static void lcd_implementation_status_screen() { lcd.setCursor(LCD_WIDTH - 6, 2); lcd.print(LCD_STR_CLOCK[0]); - if (print_job_start_ms != 0) { - uint16_t time = (((print_job_stop_ms > print_job_start_ms) - ? print_job_stop_ms : millis()) - print_job_start_ms) / 60000; + + uint16_t time = print_job_timer.duration() / 60; + if (time != 0) { lcd.print(itostr2(time / 60)); lcd.print(':'); lcd.print(itostr2(time % 60)); From e8b80d8c20423e53bdf0689d87599a0cab272a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 6 Apr 2016 04:38:42 +0100 Subject: [PATCH 004/383] Implemented M75, M76, M77 to control the print timer --- Marlin/Marlin_main.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 969b59c031..63f7f5714c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4082,6 +4082,27 @@ inline void gcode_M42() { #endif // AUTO_BED_LEVELING_FEATURE && Z_MIN_PROBE_REPEATABILITY_TEST +/** + * M75: Start print timer + */ +inline void gcode_M75() { + print_job_timer.start(); +} + +/** + * M76: Pause print timer + */ +inline void gcode_M76() { + print_job_timer.pause(); +} + +/** + * M77: Stop print timer + */ +inline void gcode_M77() { + print_job_timer.stop(); +} + /** * M104: Set hot end temperature */ @@ -6297,6 +6318,18 @@ void process_next_command() { break; #endif // AUTO_BED_LEVELING_FEATURE && Z_MIN_PROBE_REPEATABILITY_TEST + case 75: // Start print timer + gcode_M75(); + break; + + case 76: // Pause print timer + gcode_M76(); + break; + + case 77: // Stop print timer + gcode_M77(); + break; + #if ENABLED(M100_FREE_MEMORY_WATCHER) case 100: gcode_M100(); From e48d0263bf00146e7a51946a20a45fa7e6dbbefc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 6 Apr 2016 04:41:36 +0100 Subject: [PATCH 005/383] Bugfix: M32 was still using the old print timer --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 63f7f5714c..2f5f0ac9bd 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3715,7 +3715,7 @@ inline void gcode_M31() { card.startFileprint(); // Procedure calls count as normal print time. - if (!call_procedure) print_job_start(); + if (!call_procedure) print_job_timer.start(); } } From 2f6c5fe2dae343d0b488d5957d34063edf7d0c79 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 16:31:38 -0700 Subject: [PATCH 006/383] Report the probe position in G30 --- Marlin/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1deabb4770..76d3ae8ff9 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3427,9 +3427,9 @@ inline void gcode_G28() { run_z_probe(); SERIAL_PROTOCOLPGM("Bed X: "); - SERIAL_PROTOCOL(current_position[X_AXIS] + 0.0001); + SERIAL_PROTOCOL(current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER + 0.0001); SERIAL_PROTOCOLPGM(" Y: "); - SERIAL_PROTOCOL(current_position[Y_AXIS] + 0.0001); + SERIAL_PROTOCOL(current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER + 0.0001); SERIAL_PROTOCOLPGM(" Z: "); SERIAL_PROTOCOL(current_position[Z_AXIS] + 0.0001); SERIAL_EOL; From 865dcf3fb4c460ee1d591fa697b80d8d501d9517 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 19:29:08 -0700 Subject: [PATCH 007/383] Fix FILAMENT_WIDTH_SENSOR measurement Only measure and store filament width when E is going forward. --- Marlin/Marlin.h | 3 +-- Marlin/Marlin_main.cpp | 13 ++++++------- Marlin/planner.cpp | 37 +++++++++++++++++++++++-------------- Marlin/temperature.cpp | 2 +- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index c6274056c1..feda4bb06d 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -341,8 +341,7 @@ extern bool axis_homed[3]; // axis[n].is_homed extern bool filament_sensor; //indicates that filament sensor readings should control extrusion extern float filament_width_meas; //holds the filament diameter as accurately measured extern int8_t measurement_delay[]; //ring buffer to delay measurement - extern int delay_index1, delay_index2; //ring buffer index. used by planner, temperature, and main code - extern float delay_dist; //delay distance counter + extern int filwidth_delay_index1, filwidth_delay_index2; //ring buffer index. used by planner, temperature, and main code extern int meas_delay_cm; //delay distance #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1deabb4770..863b6515e2 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -411,9 +411,8 @@ static uint8_t target_extruder; bool filament_sensor = false; //M405 turns on filament_sensor control, M406 turns it off float filament_width_meas = DEFAULT_MEASURED_FILAMENT_DIA; //Stores the measured filament diameter int8_t measurement_delay[MAX_MEASUREMENT_DELAY + 1]; //ring buffer to delay measurement store extruder factor after subtracting 100 - int delay_index1 = 0; //index into ring buffer - int delay_index2 = -1; //index into ring buffer - set to -1 on startup to indicate ring buffer needs to be initialized - float delay_dist = 0; //delay distance counter + int filwidth_delay_index1 = 0; //index into ring buffer + int filwidth_delay_index2 = -1; //index into ring buffer - set to -1 on startup to indicate ring buffer needs to be initialized int meas_delay_cm = MEASUREMENT_DELAY_CM; //distance delay setting #endif @@ -5428,13 +5427,13 @@ inline void gcode_M400() { st_synchronize(); } if (code_seen('D')) meas_delay_cm = code_value(); NOMORE(meas_delay_cm, MAX_MEASUREMENT_DELAY); - if (delay_index2 == -1) { //initialize the ring buffer if it has not been done since startup + if (filwidth_delay_index2 == -1) { // Initialize the ring buffer if not done since startup int temp_ratio = widthFil_to_size_ratio(); - for (delay_index1 = 0; delay_index1 < (int)COUNT(measurement_delay); ++delay_index1) - measurement_delay[delay_index1] = temp_ratio - 100; //subtract 100 to scale within a signed byte + for (uint8_t i = 0; i < COUNT(measurement_delay); ++i) + measurement_delay[i] = temp_ratio - 100; // Subtract 100 to scale within a signed byte - delay_index1 = delay_index2 = 0; + filwidth_delay_index1 = filwidth_delay_index2 = 0; } filament_sensor = true; diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index ed3aa78a93..318b5bdb28 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -852,25 +852,34 @@ float junction_deviation = 0.1; block->nominal_rate = ceil(block->step_event_count * inverse_second); // (step/sec) Always > 0 #if ENABLED(FILAMENT_WIDTH_SENSOR) + static float filwidth_e_count = 0, filwidth_delay_dist = 0; + //FMM update ring buffer used for delay with filament measurements - if (extruder == FILAMENT_SENSOR_EXTRUDER_NUM && delay_index2 > -1) { //only for extruder with filament sensor and if ring buffer is initialized + if (extruder == FILAMENT_SENSOR_EXTRUDER_NUM && filwidth_delay_index2 >= 0) { //only for extruder with filament sensor and if ring buffer is initialized + + const int MMD_CM = MAX_MEASUREMENT_DELAY + 1, MMD_MM = MMD_CM * 10; + + // increment counters with next move in e axis + filwidth_e_count += delta_mm[E_AXIS]; + filwidth_delay_dist += delta_mm[E_AXIS]; - const int MMD = MAX_MEASUREMENT_DELAY + 1, MMD10 = MMD * 10; + // Only get new measurements on forward E movement + if (filwidth_e_count > 0.0001) { - delay_dist += delta_mm[E_AXIS]; // increment counter with next move in e axis - while (delay_dist >= MMD10) delay_dist -= MMD10; // loop around the buffer - while (delay_dist < 0) delay_dist += MMD10; + // Loop the delay distance counter (modulus by the mm length) + while (filwidth_delay_dist >= MMD_MM) filwidth_delay_dist -= MMD_MM; - delay_index1 = delay_dist / 10.0; // calculate index - delay_index1 = constrain(delay_index1, 0, MAX_MEASUREMENT_DELAY); // (already constrained above) + // Convert into an index into the measurement array + filwidth_delay_index1 = (int)(filwidth_delay_dist / 10.0 + 0.0001); - if (delay_index1 != delay_index2) { // moved index - int8_t meas_sample = widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char - while (delay_index1 != delay_index2) { - // Increment and loop around buffer - if (++delay_index2 >= MMD) delay_index2 -= MMD; - delay_index2 = constrain(delay_index2, 0, MAX_MEASUREMENT_DELAY); - measurement_delay[delay_index2] = meas_sample; + // If the index has changed (must have gone forward)... + if (filwidth_delay_index1 != filwidth_delay_index2) { + filwidth_e_count = 0; // Reset the E movement counter + int8_t meas_sample = widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char + do { + filwidth_delay_index2 = (filwidth_delay_index2 + 1) % MMD_CM; // The next unused slot + measurement_delay[filwidth_delay_index2] = meas_sample; // Store the measurement + } while (filwidth_delay_index1 != filwidth_delay_index2); // More slots to fill? } } } diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 22797a06fb..a6898368ec 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -705,7 +705,7 @@ void manage_heater() { // Control the extruder rate based on the width sensor #if ENABLED(FILAMENT_WIDTH_SENSOR) if (filament_sensor) { - meas_shift_index = delay_index1 - meas_delay_cm; + meas_shift_index = filwidth_delay_index1 - meas_delay_cm; if (meas_shift_index < 0) meas_shift_index += MAX_MEASUREMENT_DELAY + 1; //loop around buffer if needed // Get the delayed info and add 100 to reconstitute to a percent of From b80b40a57896726cb2a1b7b41aa5e027e4e2cf83 Mon Sep 17 00:00:00 2001 From: DavidBjerreBjoerklund Date: Thu, 7 Apr 2016 12:52:31 +0200 Subject: [PATCH 008/383] Update language_da.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added translation mentioned in issue #3351: Homing would be best tranlated homing, or "Kører til udgangsposition". #define MSG_SET_HOME_OFFSETS #define MSG_LEVEL_BED_HOMING #define MSG_LEVEL_BED_WAITING #define MSG_LEVEL_BED_DONE #define MSG_LEVEL_BED_CANCEL #define MSG_HOME_OFFSETS_APPLIED --- Marlin/language_da.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/language_da.h b/Marlin/language_da.h index d4e742797f..b4bd95e6f1 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -44,11 +44,11 @@ #define MSG_COOLDOWN "Afkøl" #define MSG_DISABLE_STEPPERS "Slå stepper fra" #define MSG_LEVEL_BED_HOMING "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "Click to Begin" -#define MSG_LEVEL_BED_DONE "Leveling Done!" -#define MSG_LEVEL_BED_CANCEL "Cancel" -#define MSG_SET_HOME_OFFSETS "Sæt home offsets" -#define MSG_HOME_OFFSETS_APPLIED "Offsets applied" +#define MSG_LEVEL_BED_WAITING "Tryk for at starte" +#define MSG_LEVEL_BED_DONE "Justering er færdig!" +#define MSG_LEVEL_BED_CANCEL "Annuller" +#define MSG_SET_HOME_OFFSETS "Sæt forskyding til udgangsposition" +#define MSG_HOME_OFFSETS_APPLIED "Forskydninger er tilføjet" #define MSG_SET_ORIGIN "Sæt origin" #define MSG_SWITCH_PS_ON "Slå strøm til" #define MSG_SWITCH_PS_OFF "Slå strøm fra" From 7c7e30f4cc8088b3c54347e656f7e433fb3b61af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 7 Apr 2016 12:41:09 +0100 Subject: [PATCH 009/383] Adherence to the new OOP coding standards --- Marlin/Marlin.h | 2 +- Marlin/Marlin_main.cpp | 14 +++++++------- Marlin/stopwatch.cpp | 24 ++++++++++++------------ Marlin/stopwatch.h | 8 ++++---- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 9142e2a2d5..1e77b3c4e5 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -360,7 +360,7 @@ extern bool axis_homed[3]; // axis[n].is_homed #endif // Print job timer -extern stopwatch print_job_timer; +extern Stopwatch print_job_timer; // Handling multiple extruders pins extern uint8_t active_extruder; diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 2f5f0ac9bd..85cfd02c93 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -298,7 +298,7 @@ const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42 millis_t previous_cmd_ms = 0; static millis_t max_inactive_time = 0; static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000L; -stopwatch print_job_timer = stopwatch(); +Stopwatch print_job_timer = Stopwatch(); static uint8_t target_extruder; #if ENABLED(AUTO_BED_LEVELING_FEATURE) @@ -4119,17 +4119,17 @@ inline void gcode_M104() { #endif /** - * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot + * We use half EXTRUDE_MINTEMP here to allow nozzles to be put into hot * stand by mode, for instance in a dual extruder setup, without affecting * the running print timer. */ - if (temp <= (EXTRUDE_MINTEMP/2)) { + if (temp <= (EXTRUDE_MINTEMP)/2) { print_job_timer.stop(); LCD_MESSAGEPGM(WELCOME_MSG); } /** * We do not check if the timer is already running because this check will - * be done for us inside the stopwatch::start() method thus a running timer + * be done for us inside the Stopwatch::start() method thus a running timer * will not restart. */ else print_job_timer.start(); @@ -4273,17 +4273,17 @@ inline void gcode_M109() { #endif /** - * We use halve EXTRUDE_MINTEMP here to allow nozzles to be put into hot + * We use half EXTRUDE_MINTEMP here to allow nozzles to be put into hot * stand by mode, for instance in a dual extruder setup, without affecting * the running print timer. */ - if (temp <= (EXTRUDE_MINTEMP/2)) { + if (temp <= (EXTRUDE_MINTEMP)/2) { print_job_timer.stop(); LCD_MESSAGEPGM(WELCOME_MSG); } /** * We do not check if the timer is already running because this check will - * be done for us inside the stopwatch::start() method thus a running timer + * be done for us inside the Stopwatch::start() method thus a running timer * will not restart. */ else print_job_timer.start(); diff --git a/Marlin/stopwatch.cpp b/Marlin/stopwatch.cpp index fec11348af..5bc0a280fd 100644 --- a/Marlin/stopwatch.cpp +++ b/Marlin/stopwatch.cpp @@ -23,28 +23,28 @@ #include "Marlin.h" #include "stopwatch.h" -stopwatch::stopwatch() { +Stopwatch::Stopwatch() { this->reset(); } -void stopwatch::stop() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::stop()"); +void Stopwatch::stop() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::stop()"); if (!this->isRunning()) return; this->status = STPWTCH_STOPPED; this->stopTimestamp = millis(); } -void stopwatch::pause() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::pause()"); +void Stopwatch::pause() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::pause()"); if (!this->isRunning()) return; this->status = STPWTCH_PAUSED; this->stopTimestamp = millis(); } -void stopwatch::start() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::start()"); +void Stopwatch::start() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::start()"); if (this->isRunning()) return; if (this->isPaused()) this->accumulator = this->duration(); @@ -54,8 +54,8 @@ void stopwatch::start() { this->startTimestamp = millis(); } -void stopwatch::reset() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("stopwatch::reset()"); +void Stopwatch::reset() { + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::reset()"); this->status = STPWTCH_STOPPED; this->startTimestamp = 0; @@ -63,15 +63,15 @@ void stopwatch::reset() { this->accumulator = 0; } -bool stopwatch::isRunning() { +bool Stopwatch::isRunning() { return (this->status == STPWTCH_RUNNING) ? true : false; } -bool stopwatch::isPaused() { +bool Stopwatch::isPaused() { return (this->status == STPWTCH_PAUSED) ? true : false; } -uint16_t stopwatch::duration() { +uint16_t Stopwatch::duration() { return (((this->isRunning()) ? millis() : this->stopTimestamp) - this->startTimestamp) / 1000 + this->accumulator; } diff --git a/Marlin/stopwatch.h b/Marlin/stopwatch.h index d537b4dcc5..d6ef8a7444 100644 --- a/Marlin/stopwatch.h +++ b/Marlin/stopwatch.h @@ -23,7 +23,7 @@ #ifndef STOPWATCH_H #define STOPWATCH_H -enum stopwatch_s { +enum StopwatchStatus { STPWTCH_STOPPED = 0x0, STPWTCH_RUNNING = 0x1, STPWTCH_PAUSED = 0x2 @@ -34,9 +34,9 @@ enum stopwatch_s { * @details This class acts as a timer proving stopwatch functionality including * the ability to pause the running time counter. */ -class stopwatch { +class Stopwatch { private: - stopwatch_s status; + StopwatchStatus status; uint16_t accumulator; uint32_t startTimestamp; uint32_t stopTimestamp; @@ -45,7 +45,7 @@ class stopwatch { /** * @brief Class constructor */ - stopwatch(); + Stopwatch(); /** * @brief Stops the stopwatch From 5f840d2e30789869e33da57053d8d36d0c39b611 Mon Sep 17 00:00:00 2001 From: DavidBjerreBjoerklund Date: Thu, 7 Apr 2016 13:42:27 +0200 Subject: [PATCH 010/383] Update language_da.h Corrected: MSG_KILLED MSG_NO_MOVE MSG_STOPPED MSG_PRINT_ABORTED MSG_ON MSG_OFF --- Marlin/language_da.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/language_da.h b/Marlin/language_da.h index d4e742797f..b1e4f55b83 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -84,8 +84,8 @@ #define MSG_MAX " \002 Max" #define MSG_FACTOR " \002 Fact" #define MSG_AUTOTEMP "Autotemp" -#define MSG_ON "On " -#define MSG_OFF "Off" +#define MSG_ON "Til " +#define MSG_OFF "Fra" #define MSG_PID_P "PID-P" #define MSG_PID_I "PID-I" #define MSG_PID_D "PID-D" @@ -128,10 +128,10 @@ #define MSG_DWELL "Dvale..." #define MSG_USERWAIT "Venter på bruger..." #define MSG_RESUMING "Forsætter printet" -#define MSG_PRINT_ABORTED "Print annuleret" -#define MSG_NO_MOVE "No move." -#define MSG_KILLED "KILLED. " -#define MSG_STOPPED "STOPPED. " +#define MSG_PRINT_ABORTED "Print annulleret" +#define MSG_NO_MOVE "Ingen bevægelse." +#define MSG_KILLED "DRÆBT. " +#define MSG_STOPPED "STOPPET. " #define MSG_CONTROL_RETRACT "Tilbagetraek mm" #define MSG_CONTROL_RETRACT_SWAP "Skift Re.mm" #define MSG_CONTROL_RETRACTF "Tilbagetræk V" From 471d30cc1c85f48f20306abb0600b977b4fccfc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 7 Apr 2016 12:50:57 +0100 Subject: [PATCH 011/383] M109: Protected against EXTRUDE_MINTEMP expansion --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1deabb4770..c2a02b99b4 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4209,7 +4209,7 @@ inline void gcode_M109() { // Prevents a wait-forever situation if R is misused i.e. M109 R0 // Try to calculate a ballpark safe margin by halving EXTRUDE_MINTEMP - if (degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP/2)) return; + if (degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; #ifdef TEMP_RESIDENCY_TIME long residency_start_ms = -1; From 013f19054ba11b4c9d82c00abd41b261e053e6da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 7 Apr 2016 13:00:08 +0100 Subject: [PATCH 012/383] Update pt_PT translation --- Marlin/language_pt.h | 14 +++++++------- Marlin/language_pt_utf8.h | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index 41e53b8a34..07bbd9dbb8 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -105,8 +105,8 @@ #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " -#define MSG_A_RETRACT "A-retrair" -#define MSG_A_TRAVEL "A-distancia" +#define MSG_A_RETRACT "A-retraccao" +#define MSG_A_TRAVEL "A-movimento" #define MSG_XSTEPS "X passo/mm" #define MSG_YSTEPS "Y passo/mm" #define MSG_ZSTEPS "Z passo/mm" @@ -154,13 +154,13 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Fim de curso" -#define MSG_HEATING_FAILED_LCD "Falhou aquecimento" +#define MSG_HEATING_FAILED_LCD "Aquecimento falhou" #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" -#define MSG_ERR_MAXTEMP "Err: Temp. Maxima" -#define MSG_ERR_MINTEMP "Err: Temp. Minima" -#define MSG_ERR_MAXTEMP_BED "Err: Temp. Base Maxima" -#define MSG_ERR_MINTEMP_BED "Err: Temp. Base Minima" +#define MSG_ERR_MAXTEMP "Err: T Maxima" +#define MSG_ERR_MINTEMP "Err: T Minima" +#define MSG_ERR_MAXTEMP_BED "Err: T Base Maxima" +#define MSG_ERR_MINTEMP_BED "Err: T Base Minima" #define MSG_END_HOUR "horas" #define MSG_END_MINUTE "minutos" #define MSG_HEATING "Aquecendo..." diff --git a/Marlin/language_pt_utf8.h b/Marlin/language_pt_utf8.h index 18fcf56564..c20069cf39 100644 --- a/Marlin/language_pt_utf8.h +++ b/Marlin/language_pt_utf8.h @@ -105,8 +105,8 @@ #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " -#define MSG_A_RETRACT "A-retrair" -#define MSG_A_TRAVEL "A-distância" +#define MSG_A_RETRACT "A-retracção" +#define MSG_A_TRAVEL "A-movimento" #define MSG_XSTEPS "X passo/mm" #define MSG_YSTEPS "Y passo/mm" #define MSG_ZSTEPS "Z passo/mm" @@ -130,7 +130,7 @@ #define MSG_CARD_MENU "Imprimir do SD" #define MSG_NO_CARD "Sem cartão SD" #define MSG_DWELL "Em espera..." -#define MSG_USERWAIT "A espera de ordem" +#define MSG_USERWAIT "Á espera de ordem" #define MSG_RESUMING "Retomando impressão" #define MSG_PRINT_ABORTED "Impressão cancelada" #define MSG_NO_MOVE "Sem movimento" @@ -154,13 +154,13 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Fim de curso" -#define MSG_HEATING_FAILED_LCD "Falhou aquecimento" +#define MSG_HEATING_FAILED_LCD "Aquecimento falhou" #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" -#define MSG_ERR_MAXTEMP "Err: Temp. Máxima" -#define MSG_ERR_MINTEMP "Err: Temp. Mínima" -#define MSG_ERR_MAXTEMP_BED "Err: Temp. Base Máxima" -#define MSG_ERR_MINTEMP_BED "Err: Temp. Base Mínima" +#define MSG_ERR_MAXTEMP "Err: T Máxima" +#define MSG_ERR_MINTEMP "Err: T Mínima" +#define MSG_ERR_MAXTEMP_BED "Err: T Base Máxima" +#define MSG_ERR_MINTEMP_BED "Err: T Base Mínima" #define MSG_END_HOUR "horas" #define MSG_END_MINUTE "minutos" #define MSG_HEATING "Aquecendo..." From 801cd48a72af44e3c84b1d757fe3cd12eb2e449f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 7 Apr 2016 13:07:57 +0100 Subject: [PATCH 013/383] Added missing pt_BR translation --- Marlin/language_pt-br.h | 14 ++++++++++++++ Marlin/language_pt-br_utf8.h | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index 38f23d0da6..6f02b969d2 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -151,6 +151,20 @@ #define MSG_END_HOUR "Horas" #define MSG_END_MINUTE "Minutos" +#define MSG_BED_Z "Base Z" +#define MSG_A_TRAVEL "A-movimento" +#define MSG_HEATING_FAILED_LCD "Aquecimento falhou" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" +#define MSG_ERR_MAXTEMP "Err: T Maxima" +#define MSG_ERR_MINTEMP "Err: T Minima" +#define MSG_ERR_MAXTEMP_BED "Err: T Base Maxima" +#define MSG_ERR_MINTEMP_BED "Err: T Base Minima" +#define MSG_HEATING "Aquecendo..." +#define MSG_HEATING_COMPLETE "Aquecida." +#define MSG_BED_HEATING "Aquecendo base.." +#define MSG_BED_DONE "Base aquecida." + #if ENABLED(DELTA_CALIBRATION_MENU) #define MSG_DELTA_CALIBRATE "Calibrar Delta" #define MSG_DELTA_CALIBRATE_X "Calibrar X" diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index ea92ab15a9..9ad21c80c1 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -151,6 +151,20 @@ #define MSG_END_HOUR "Horas" #define MSG_END_MINUTE "Minutos" +#define MSG_BED_Z "Base Z" +#define MSG_A_TRAVEL "A-movimento" +#define MSG_HEATING_FAILED_LCD "Aquecimento falhou" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" +#define MSG_ERR_MAXTEMP "Err: T Máxima" +#define MSG_ERR_MINTEMP "Err: T Mínima" +#define MSG_ERR_MAXTEMP_BED "Err: T Base Máxima" +#define MSG_ERR_MINTEMP_BED "Err: T Base Mínima" +#define MSG_HEATING "Aquecendo..." +#define MSG_HEATING_COMPLETE "Aquecida." +#define MSG_BED_HEATING "Aquecendo base.." +#define MSG_BED_DONE "Base aquecida." + #if ENABLED(DELTA_CALIBRATION_MENU) #define MSG_DELTA_CALIBRATE "Calibrar Delta" #define MSG_DELTA_CALIBRATE_X "Calibrar X" From 479d307a44b45d41e3617706a816c88fb1d0219f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 7 Apr 2016 01:58:23 -0700 Subject: [PATCH 014/383] Disable LCD Move XYZ for unhomed Delta/SCARA --- Marlin/ultralcd.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index af31e954e2..a2d472d115 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1203,13 +1203,22 @@ static void lcd_move_e( * */ +#if ENABLED(DELTA) || ENABLED(SCARA) + #define _MOVE_XYZ_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) +#else + #define _MOVE_XYZ_ALLOWED true +#endif + static void _lcd_move_menu_axis() { START_MENU(); MENU_ITEM(back, MSG_MOVE_AXIS); - MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_x); - MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_y); + + if (_MOVE_XYZ_ALLOWED) { + MENU_ITEM(submenu, MSG_MOVE_X, lcd_move_x); + MENU_ITEM(submenu, MSG_MOVE_Y, lcd_move_y); + } if (move_menu_scale < 10.0) { - MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_z); + if (_MOVE_XYZ_ALLOWED) MENU_ITEM(submenu, MSG_MOVE_Z, lcd_move_z); #if EXTRUDERS == 1 MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_e); #else @@ -1248,7 +1257,10 @@ static void lcd_move_menu_01mm() { static void lcd_move_menu() { START_MENU(); MENU_ITEM(back, MSG_PREPARE); - MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm); + + if (_MOVE_XYZ_ALLOWED) + MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm); + MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm); MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm); //TODO:X,Y,Z,E From 165e73794ad049b44ca5e47a74d34af80ce8d1dd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 7 Apr 2016 01:58:58 -0700 Subject: [PATCH 015/383] Tweak encoderPosition non-zero test --- Marlin/ultralcd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index a2d472d115..3e5ee8f46a 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -553,7 +553,7 @@ void lcd_set_home_offsets() { static void _lcd_babystep(const int axis, const char* msg) { ENCODER_DIRECTION_NORMAL(); - if (encoderPosition != 0) { + if (encoderPosition) { int distance = (int)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; @@ -1124,7 +1124,7 @@ float move_menu_scale; static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { ENCODER_DIRECTION_NORMAL(); - if ((encoderPosition != 0) && (movesplanned() <= 3)) { + if (encoderPosition && movesplanned() <= 3) { refresh_cmd_timeout(); current_position[axis] += float((int)encoderPosition) * move_menu_scale; if (min_software_endstops) NOLESS(current_position[axis], min); @@ -1156,7 +1156,7 @@ static void lcd_move_e( unsigned short original_active_extruder = active_extruder; active_extruder = e; #endif - if ((encoderPosition != 0) && (movesplanned() <= 3)) { + if (encoderPosition && movesplanned() <= 3) { current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale; encoderPosition = 0; line_to_current(E_AXIS); @@ -1641,7 +1641,7 @@ static void lcd_control_volumetric_menu() { #if ENABLED(HAS_LCD_CONTRAST) static void lcd_set_contrast() { ENCODER_DIRECTION_NORMAL(); - if (encoderPosition != 0) { + if (encoderPosition) { #if ENABLED(U8GLIB_LM6059_AF) lcd_contrast += encoderPosition; lcd_contrast &= 0xFF; From dc19b69697263524bb6d563fad8b7dfd5d2efa23 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 22:40:45 -0700 Subject: [PATCH 016/383] No casting needed for SERIAL_ECHOPAIR --- Marlin/M100_Free_Mem_Chk.cpp | 10 +++++----- Marlin/Marlin.h | 4 +++- Marlin/Marlin_main.cpp | 21 ++++++++++++--------- Marlin/configuration_store.cpp | 28 ++++++++++++++-------------- Marlin/stepper.cpp | 8 ++++---- 5 files changed, 38 insertions(+), 33 deletions(-) diff --git a/Marlin/M100_Free_Mem_Chk.cpp b/Marlin/M100_Free_Mem_Chk.cpp index 6033c0afe3..276df98eb1 100644 --- a/Marlin/M100_Free_Mem_Chk.cpp +++ b/Marlin/M100_Free_Mem_Chk.cpp @@ -180,10 +180,10 @@ void gcode_M100() { x = code_value(); SERIAL_ECHOLNPGM("Corrupting free memory block.\n"); ptr = (unsigned char*) __brkval; - SERIAL_ECHOPAIR("\n__brkval : ", (long) ptr); + SERIAL_ECHOPAIR("\n__brkval : ", ptr); ptr += 8; sp = top_of_stack(); - SERIAL_ECHOPAIR("\nStack Pointer : ", (long) sp); + SERIAL_ECHOPAIR("\nStack Pointer : ", sp); SERIAL_ECHOLNPGM("\n"); n = sp - ptr - 64; // -64 just to keep us from finding interrupt activity that // has altered the stack. @@ -204,10 +204,10 @@ void gcode_M100() { if (m100_not_initialized || code_seen('I')) { // If no sub-command is specified, the first time SERIAL_ECHOLNPGM("Initializing free memory block.\n"); // this happens, it will Initialize. ptr = (unsigned char*) __brkval; // Repeated M100 with no sub-command will not destroy the - SERIAL_ECHOPAIR("\n__brkval : ", (long) ptr); // state of the initialized free memory pool. + SERIAL_ECHOPAIR("\n__brkval : ", ptr); // state of the initialized free memory pool. ptr += 8; sp = top_of_stack(); - SERIAL_ECHOPAIR("\nStack Pointer : ", (long) sp); + SERIAL_ECHOPAIR("\nStack Pointer : ", sp); SERIAL_ECHOLNPGM("\n"); n = sp - ptr - 64; // -64 just to keep us from finding interrupt activity that // has altered the stack. @@ -217,7 +217,7 @@ void gcode_M100() { *(ptr + i) = (unsigned char) 0xe5; for (i = 0; i < n; i++) { if (*(ptr + i) != (unsigned char) 0xe5) { - SERIAL_ECHOPAIR("? address : ", (unsigned long) ptr + i); + SERIAL_ECHOPAIR("? address : ", ptr + i); SERIAL_ECHOPAIR("=", *(ptr + i)); SERIAL_ECHOLNPGM("\n"); } diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index c6274056c1..61bb33a21a 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -101,13 +101,15 @@ extern const char echomagic[] PROGMEM; #define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x) #define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x) -#define SERIAL_ECHOPAIR(name,value) do{ serial_echopair_P(PSTR(name),(value)); }while(0) +#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value))) void serial_echopair_P(const char* s_P, int v); void serial_echopair_P(const char* s_P, long v); void serial_echopair_P(const char* s_P, float v); void serial_echopair_P(const char* s_P, double v); void serial_echopair_P(const char* s_P, unsigned long v); +FORCE_INLINE void serial_echopair_P(const char* s_P, bool v) { serial_echopair_P(s_P, (int)v); } +FORCE_INLINE void serial_echopair_P(const char* s_P, void *v) { serial_echopair_P(s_P, (unsigned long)v); } // Things to write to serial from Program memory. Saves 400 to 2k of RAM. FORCE_INLINE void serialprintPGM(const char* str) { diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1deabb4770..9e1f9115dc 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1170,7 +1170,7 @@ XYZ_CONSTS_FROM_CONFIG(signed char, home_dir, HOME_DIR); static void set_axis_is_at_home(AxisEnum axis) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("set_axis_is_at_home(", (unsigned long)axis); + SERIAL_ECHOPAIR("set_axis_is_at_home(", axis); SERIAL_ECHOLNPGM(") >>>"); } #endif @@ -1258,7 +1258,7 @@ static void set_axis_is_at_home(AxisEnum axis) { } #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("<<< set_axis_is_at_home(", (unsigned long)axis); + SERIAL_ECHOPAIR("<<< set_axis_is_at_home(", axis); SERIAL_ECHOLNPGM(")"); } #endif @@ -1653,7 +1653,7 @@ static void setup_for_endstop_move() { if (doRaise) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("Raise Z (after) by ", (float)Z_RAISE_AFTER_PROBING); + SERIAL_ECHOPAIR("Raise Z (after) by ", Z_RAISE_AFTER_PROBING); SERIAL_EOL; SERIAL_ECHO("> SERVO_ENDSTOPS > raise_z_after_probing()"); SERIAL_EOL; @@ -1749,7 +1749,7 @@ static void setup_for_endstop_move() { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { SERIAL_ECHOLNPGM("probe_pt >>>"); - SERIAL_ECHOPAIR("> ProbeAction:", (unsigned long)probe_action); + SERIAL_ECHOPAIR("> ProbeAction:", probe_action); SERIAL_EOL; DEBUG_POS("", current_position); } @@ -1970,7 +1970,7 @@ static void setup_for_endstop_move() { static void homeaxis(AxisEnum axis) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR(">>> homeaxis(", (unsigned long)axis); + SERIAL_ECHOPAIR(">>> homeaxis(", axis); SERIAL_ECHOLNPGM(")"); } #endif @@ -2158,7 +2158,7 @@ static void homeaxis(AxisEnum axis) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("<<< homeaxis(", (unsigned long)axis); + SERIAL_ECHOPAIR("<<< homeaxis(", axis); SERIAL_ECHOLNPGM(")"); } #endif @@ -2486,7 +2486,7 @@ inline void gcode_G28() { feedrate = max_feedrate[Z_AXIS] * 60; // feedrate (mm/m) = max_feedrate (mm/s) #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("Raise Z (before homing) to ", (float)(MIN_Z_HEIGHT_FOR_HOMING)); + SERIAL_ECHOPAIR("Raise Z (before homing) to ", (MIN_Z_HEIGHT_FOR_HOMING)); SERIAL_EOL; DEBUG_POS("> (home_all_axis || homeZ)", current_position); DEBUG_POS("> (home_all_axis || homeZ)", destination); @@ -3117,7 +3117,7 @@ inline void gcode_G28() { if (probePointCounter) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("z_before = (between) ", (float)(Z_RAISE_BETWEEN_PROBINGS + current_position[Z_AXIS])); + SERIAL_ECHOPAIR("z_before = (between) ", (Z_RAISE_BETWEEN_PROBINGS + current_position[Z_AXIS])); SERIAL_EOL; } #endif @@ -3125,7 +3125,7 @@ inline void gcode_G28() { else { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("z_before = (before) ", (float)Z_RAISE_BEFORE_PROBING); + SERIAL_ECHOPAIR("z_before = (before) ", Z_RAISE_BEFORE_PROBING); SERIAL_EOL; } #endif @@ -3483,6 +3483,9 @@ inline void gcode_G92() { inline void gcode_M0_M1() { char* args = current_command_args; + uint8_t test_value = 12; + SERIAL_ECHOPAIR("TEST", test_value); + millis_t codenum = 0; bool hasP = false, hasS = false; if (code_seen('P')) { diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 83bd8450bd..3f22b2f8c6 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -328,7 +328,7 @@ void Config_StoreSettings() { // Report storage size SERIAL_ECHO_START; - SERIAL_ECHOPAIR("Settings Stored (", (unsigned long)i); + SERIAL_ECHOPAIR("Settings Stored (", i); SERIAL_ECHOLNPGM(" bytes)"); } @@ -507,7 +507,7 @@ void Config_RetrieveSettings() { // Report settings retrieved and length SERIAL_ECHO_START; SERIAL_ECHO(ver); - SERIAL_ECHOPAIR(" stored settings retrieved (", (unsigned long)i); + SERIAL_ECHOPAIR(" stored settings retrieved (", i); SERIAL_ECHOLNPGM(" bytes)"); } @@ -730,9 +730,9 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Mesh bed leveling:"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M420 S", (unsigned long)mbl.active); - SERIAL_ECHOPAIR(" X", (unsigned long)MESH_NUM_X_POINTS); - SERIAL_ECHOPAIR(" Y", (unsigned long)MESH_NUM_Y_POINTS); + SERIAL_ECHOPAIR(" M420 S", mbl.active); + SERIAL_ECHOPAIR(" X", MESH_NUM_X_POINTS); + SERIAL_ECHOPAIR(" Y", MESH_NUM_Y_POINTS); SERIAL_EOL; for (uint8_t y = 0; y < MESH_NUM_Y_POINTS; y++) { for (uint8_t x = 0; x < MESH_NUM_X_POINTS; x++) { @@ -783,14 +783,14 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Material heatup parameters:"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M145 S0 H", (unsigned long)plaPreheatHotendTemp); - SERIAL_ECHOPAIR(" B", (unsigned long)plaPreheatHPBTemp); - SERIAL_ECHOPAIR(" F", (unsigned long)plaPreheatFanSpeed); + SERIAL_ECHOPAIR(" M145 S0 H", plaPreheatHotendTemp); + SERIAL_ECHOPAIR(" B", plaPreheatHPBTemp); + SERIAL_ECHOPAIR(" F", plaPreheatFanSpeed); SERIAL_EOL; CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" M145 S1 H", (unsigned long)absPreheatHotendTemp); - SERIAL_ECHOPAIR(" B", (unsigned long)absPreheatHPBTemp); - SERIAL_ECHOPAIR(" F", (unsigned long)absPreheatFanSpeed); + SERIAL_ECHOPAIR(" M145 S1 H", absPreheatHotendTemp); + SERIAL_ECHOPAIR(" B", absPreheatHPBTemp); + SERIAL_ECHOPAIR(" F", absPreheatFanSpeed); SERIAL_EOL; #endif // ULTIPANEL @@ -805,7 +805,7 @@ void Config_PrintSettings(bool forReplay) { if (forReplay) { for (uint8_t i = 0; i < EXTRUDERS; i++) { CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" M301 E", (unsigned long)i); + SERIAL_ECHOPAIR(" M301 E", i); SERIAL_ECHOPAIR(" P", PID_PARAM(Kp, i)); SERIAL_ECHOPAIR(" I", unscalePID_i(PID_PARAM(Ki, i))); SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, i))); @@ -848,7 +848,7 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("LCD Contrast:"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M250 C", (unsigned long)lcd_contrast); + SERIAL_ECHOPAIR(" M250 C", lcd_contrast); SERIAL_EOL; #endif @@ -882,7 +882,7 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M209 S", (unsigned long)(autoretract_enabled ? 1 : 0)); + SERIAL_ECHOPAIR(" M209 S", (autoretract_enabled ? 1 : 0)); SERIAL_EOL; #endif // FWRETRACT diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 5d2761f1fd..a371361c28 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -294,20 +294,20 @@ void checkHitEndstops() { SERIAL_ECHO_START; SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); if (TEST(endstop_hit_bits, X_MIN)) { - SERIAL_ECHOPAIR(" X:", (float)endstops_trigsteps[X_AXIS] / axis_steps_per_unit[X_AXIS]); + SERIAL_ECHOPAIR(" X:", endstops_trigsteps[X_AXIS] / axis_steps_per_unit[X_AXIS]); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "X"); } if (TEST(endstop_hit_bits, Y_MIN)) { - SERIAL_ECHOPAIR(" Y:", (float)endstops_trigsteps[Y_AXIS] / axis_steps_per_unit[Y_AXIS]); + SERIAL_ECHOPAIR(" Y:", endstops_trigsteps[Y_AXIS] / axis_steps_per_unit[Y_AXIS]); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Y"); } if (TEST(endstop_hit_bits, Z_MIN)) { - SERIAL_ECHOPAIR(" Z:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); + SERIAL_ECHOPAIR(" Z:", endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Z"); } #if ENABLED(Z_MIN_PROBE_ENDSTOP) if (TEST(endstop_hit_bits, Z_MIN_PROBE)) { - SERIAL_ECHOPAIR(" Z_MIN_PROBE:", (float)endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); + SERIAL_ECHOPAIR(" Z_MIN_PROBE:", endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "ZP"); } #endif From 7bb15a1c5712a7d6f7eac507719594aa473d6443 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 7 Apr 2016 17:39:16 -0700 Subject: [PATCH 017/383] Consolidate REPRAPWORLD_KEYPAD definitions --- Marlin/ultralcd.h | 61 ++++++++++++------- .../ultralcd_implementation_hitachi_HD44780.h | 27 +------- 2 files changed, 41 insertions(+), 47 deletions(-) diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index cbc5e05c46..61abf9cede 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -65,9 +65,6 @@ #if ENABLED(ULTIPANEL) void lcd_buttons_update(); extern volatile uint8_t buttons; //the last checked buttons in a bit array. - #if ENABLED(REPRAPWORLD_KEYPAD) - extern volatile uint8_t buttons_reprapworld_keypad; // to store the keypad shift register values - #endif #else FORCE_INLINE void lcd_buttons_update() {} #endif @@ -89,33 +86,52 @@ void lcd_ignore_click(bool b=true); bool lcd_blink(); + #if ENABLED(ULTIPANEL) && ENABLED(REPRAPWORLD_KEYPAD) + + #define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values + + #define BLEN_REPRAPWORLD_KEYPAD_F3 0 + #define BLEN_REPRAPWORLD_KEYPAD_F2 1 + #define BLEN_REPRAPWORLD_KEYPAD_F1 2 + #define BLEN_REPRAPWORLD_KEYPAD_DOWN 3 + #define BLEN_REPRAPWORLD_KEYPAD_RIGHT 4 + #define BLEN_REPRAPWORLD_KEYPAD_MIDDLE 5 + #define BLEN_REPRAPWORLD_KEYPAD_UP 6 + #define BLEN_REPRAPWORLD_KEYPAD_LEFT 7 + + #define EN_REPRAPWORLD_KEYPAD_F3 (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F3)) + #define EN_REPRAPWORLD_KEYPAD_F2 (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F2)) + #define EN_REPRAPWORLD_KEYPAD_F1 (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_F1)) + #define EN_REPRAPWORLD_KEYPAD_DOWN (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_DOWN)) + #define EN_REPRAPWORLD_KEYPAD_RIGHT (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_RIGHT)) + #define EN_REPRAPWORLD_KEYPAD_MIDDLE (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_MIDDLE)) + #define EN_REPRAPWORLD_KEYPAD_UP (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_UP)) + #define EN_REPRAPWORLD_KEYPAD_LEFT (_BV(REPRAPWORLD_BTN_OFFSET + BLEN_REPRAPWORLD_KEYPAD_LEFT)) + + #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_F3) + #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_F2) + #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_DOWN) + #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_RIGHT) + #define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_MIDDLE) + #define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_UP) + #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT (buttons_reprapworld_keypad & EN_REPRAPWORLD_KEYPAD_LEFT) + + #endif //ULTIPANEL && REPRAPWORLD_KEYPAD + #if ENABLED(NEWPANEL) + #define EN_C (_BV(BLEN_C)) #define EN_B (_BV(BLEN_B)) #define EN_A (_BV(BLEN_A)) #if ENABLED(REPRAPWORLD_KEYPAD) - #define EN_REPRAPWORLD_KEYPAD_F3 (_BV(BLEN_REPRAPWORLD_KEYPAD_F3)) - #define EN_REPRAPWORLD_KEYPAD_F2 (_BV(BLEN_REPRAPWORLD_KEYPAD_F2)) - #define EN_REPRAPWORLD_KEYPAD_F1 (_BV(BLEN_REPRAPWORLD_KEYPAD_F1)) - #define EN_REPRAPWORLD_KEYPAD_UP (_BV(BLEN_REPRAPWORLD_KEYPAD_UP)) - #define EN_REPRAPWORLD_KEYPAD_RIGHT (_BV(BLEN_REPRAPWORLD_KEYPAD_RIGHT)) - #define EN_REPRAPWORLD_KEYPAD_MIDDLE (_BV(BLEN_REPRAPWORLD_KEYPAD_MIDDLE)) - #define EN_REPRAPWORLD_KEYPAD_DOWN (_BV(BLEN_REPRAPWORLD_KEYPAD_DOWN)) - #define EN_REPRAPWORLD_KEYPAD_LEFT (_BV(BLEN_REPRAPWORLD_KEYPAD_LEFT)) - #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1)) - #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2) - #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F3) - #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_LEFT) - #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_RIGHT) - #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_DOWN) - #define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_UP) - #define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_MIDDLE) #else #define LCD_CLICKED (buttons&EN_C) - #endif //REPRAPWORLD_KEYPAD - #else + #endif + + #else //!NEWPANEL + //atomic, do not change #define B_LE (_BV(BL_LE)) #define B_UP (_BV(BL_UP)) @@ -127,7 +143,8 @@ #define EN_A (_BV(BLEN_A)) #define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST)) - #endif//NEWPANEL + + #endif //!NEWPANEL #else //no LCD FORCE_INLINE void lcd_update() {} diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 6fdee2a667..5fc0316d7e 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -98,31 +98,8 @@ extern volatile uint8_t buttons; //an extended version of the last checked butt #endif #elif ENABLED(REPRAPWORLD_KEYPAD) - // define register bit values, don't change it - #define BLEN_REPRAPWORLD_KEYPAD_F3 0 - #define BLEN_REPRAPWORLD_KEYPAD_F2 1 - #define BLEN_REPRAPWORLD_KEYPAD_F1 2 - #define BLEN_REPRAPWORLD_KEYPAD_UP 6 - #define BLEN_REPRAPWORLD_KEYPAD_RIGHT 4 - #define BLEN_REPRAPWORLD_KEYPAD_MIDDLE 5 - #define BLEN_REPRAPWORLD_KEYPAD_DOWN 3 - #define BLEN_REPRAPWORLD_KEYPAD_LEFT 7 - - #define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values - - #define EN_REPRAPWORLD_KEYPAD_F3 (_BV(BLEN_REPRAPWORLD_KEYPAD_F3+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_F2 (_BV(BLEN_REPRAPWORLD_KEYPAD_F2+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_F1 (_BV(BLEN_REPRAPWORLD_KEYPAD_F1+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_UP (_BV(BLEN_REPRAPWORLD_KEYPAD_UP+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_RIGHT (_BV(BLEN_REPRAPWORLD_KEYPAD_RIGHT+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_MIDDLE (_BV(BLEN_REPRAPWORLD_KEYPAD_MIDDLE+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_DOWN (_BV(BLEN_REPRAPWORLD_KEYPAD_DOWN+REPRAPWORLD_BTN_OFFSET)) - #define EN_REPRAPWORLD_KEYPAD_LEFT (_BV(BLEN_REPRAPWORLD_KEYPAD_LEFT+REPRAPWORLD_BTN_OFFSET)) - - //#define LCD_CLICKED ((buttons&EN_C) || (buttons&EN_REPRAPWORLD_KEYPAD_F1)) - //#define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons&EN_REPRAPWORLD_KEYPAD_DOWN) - //#define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons&EN_REPRAPWORLD_KEYPAD_UP) - //#define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons&EN_REPRAPWORLD_KEYPAD_MIDDLE) + + // REPRAPWORLD_KEYPAD defined in ultralcd.h #elif ENABLED(NEWPANEL) #define LCD_CLICKED (buttons&EN_C) From 5fc6daba2bc87696848c66b63cf8b8daac87d39b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 7 Apr 2016 17:40:01 -0700 Subject: [PATCH 018/383] Disallow REPRAPWORLD_KEYPAD moves on Delta/SCARA until homed --- Marlin/ultralcd.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index af31e954e2..1e474bcc0c 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1842,7 +1842,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01); lcd_move_y(); } static void reprapworld_keypad_move_home() { - enqueue_and_echo_commands_P((PSTR("G28"))); // move all axis home + enqueue_and_echo_commands_P(PSTR("G28")); // move all axes home } #endif // REPRAPWORLD_KEYPAD @@ -2091,13 +2091,22 @@ void lcd_update() { #if ENABLED(ULTIPANEL) #if ENABLED(REPRAPWORLD_KEYPAD) - if (REPRAPWORLD_KEYPAD_MOVE_Z_UP) reprapworld_keypad_move_z_up(); - if (REPRAPWORLD_KEYPAD_MOVE_Z_DOWN) reprapworld_keypad_move_z_down(); - if (REPRAPWORLD_KEYPAD_MOVE_X_LEFT) reprapworld_keypad_move_x_left(); - if (REPRAPWORLD_KEYPAD_MOVE_X_RIGHT) reprapworld_keypad_move_x_right(); - if (REPRAPWORLD_KEYPAD_MOVE_Y_DOWN) reprapworld_keypad_move_y_down(); - if (REPRAPWORLD_KEYPAD_MOVE_Y_UP) reprapworld_keypad_move_y_up(); - if (REPRAPWORLD_KEYPAD_MOVE_HOME) reprapworld_keypad_move_home(); + + #if ENABLED(DELTA) || ENABLED(SCARA) + #define _KEYPAD_MOVE_ALLOWED (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) + #else + #define _KEYPAD_MOVE_ALLOWED true + #endif + + if (REPRAPWORLD_KEYPAD_MOVE_HOME) reprapworld_keypad_move_home(); + if (_KEYPAD_MOVE_ALLOWED) { + if (REPRAPWORLD_KEYPAD_MOVE_Z_UP) reprapworld_keypad_move_z_up(); + if (REPRAPWORLD_KEYPAD_MOVE_Z_DOWN) reprapworld_keypad_move_z_down(); + if (REPRAPWORLD_KEYPAD_MOVE_X_LEFT) reprapworld_keypad_move_x_left(); + if (REPRAPWORLD_KEYPAD_MOVE_X_RIGHT) reprapworld_keypad_move_x_right(); + if (REPRAPWORLD_KEYPAD_MOVE_Y_DOWN) reprapworld_keypad_move_y_down(); + if (REPRAPWORLD_KEYPAD_MOVE_Y_UP) reprapworld_keypad_move_y_up(); + } #endif bool encoderPastThreshold = (abs(encoderDiff) >= ENCODER_PULSES_PER_STEP); From 2eca8d63b36f253c892f3f4320091c825d425ebc Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 17:30:23 -0700 Subject: [PATCH 019/383] Add DEFAULT_KEEPALIVE_INTERVAL setting --- Marlin/Configuration.h | 5 ++++- Marlin/example_configurations/Felix/Configuration.h | 5 ++++- Marlin/example_configurations/Felix/Configuration_DUAL.h | 5 ++++- Marlin/example_configurations/Hephestos/Configuration.h | 5 ++++- Marlin/example_configurations/Hephestos_2/Configuration.h | 5 ++++- Marlin/example_configurations/K8200/Configuration.h | 5 ++++- .../RepRapWorld/Megatronics/Configuration.h | 5 ++++- Marlin/example_configurations/RigidBot/Configuration.h | 5 ++++- Marlin/example_configurations/SCARA/Configuration.h | 5 ++++- Marlin/example_configurations/TAZ4/Configuration.h | 5 ++++- Marlin/example_configurations/WITBOX/Configuration.h | 5 ++++- .../example_configurations/adafruit/ST7565/Configuration.h | 5 ++++- Marlin/example_configurations/delta/biv2.5/Configuration.h | 5 ++++- Marlin/example_configurations/delta/generic/Configuration.h | 5 ++++- .../example_configurations/delta/kossel_mini/Configuration.h | 5 ++++- .../example_configurations/delta/kossel_pro/Configuration.h | 5 ++++- .../example_configurations/delta/kossel_xl/Configuration.h | 5 ++++- Marlin/example_configurations/makibox/Configuration.h | 5 ++++- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 5 ++++- 19 files changed, 76 insertions(+), 19 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index ddd72d11a0..d0a49aade3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index e91e927c8a..2da7f04f6d 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -704,9 +704,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 29507abaad..60697ed0e8 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -701,9 +701,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index cac62233ff..9e0af0a329 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -713,9 +713,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 9be4a5cef8..a1a89e3715 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -715,9 +715,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 3bb350ddd4..74c5531772 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -738,9 +738,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 487e8d8764..553c07afa5 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index e5c98d4791..733b377cd4 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -716,9 +716,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index c09a7ae820..436bf22909 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -729,9 +729,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 7dd94b7ae5..38e7e20cf2 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -742,9 +742,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 6f96bbf422..fd3fa38d09 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -713,9 +713,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 9620b49ffa..052008aa58 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -721,9 +721,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 9c91da9d71..ce1bbf5cc3 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -843,9 +843,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 5beb3f4b54..bc323fd5a5 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -843,9 +843,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index d88d12dc6e..fbaa538e96 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -847,9 +847,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 6d769fb329..aedcf72af2 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -840,9 +840,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index e21b350e1e..cba52bf4af 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -757,9 +757,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 6ccd700aa6..301c7d9b6f 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -724,9 +724,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 85f2258f4d..f162ff7b60 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -715,9 +715,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Host Keepalive // // By default Marlin will send a busy status message to the host -// every 10 seconds when it can't accept commands. +// every couple of seconds when it can't accept commands. // //#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages. +#if DISABLED(DISABLE_HOST_KEEPALIVE) + #define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. +#endif // // M100 Free Memory Watcher From 85883da90c00eafdbb13d2aa76c8af19ec283468 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 17:31:18 -0700 Subject: [PATCH 020/383] Implement basic HOST_KEEPALIVE_INTERVAL --- Marlin/Marlin.h | 4 ++++ Marlin/Marlin_main.cpp | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 8fb742e0d2..3c13fa2167 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -325,6 +325,10 @@ extern bool axis_homed[3]; // axis[n].is_homed extern float zprobe_zoffset; #endif +#if ENABLED(HOST_KEEPALIVE_FEATURE) + extern uint8_t host_keepalive_interval; +#endif + #if ENABLED(PREVENT_DANGEROUS_EXTRUDE) extern float extrude_min_temp; #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 8a3610d58f..9a1e3ae6c3 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -448,6 +448,7 @@ static bool send_ok[BUFSIZE]; static MarlinBusyState busy_state = NOT_BUSY; static millis_t next_busy_signal_ms = -1; + uint8_t host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL; #define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0) #else #define host_keepalive() ; @@ -2276,7 +2277,7 @@ void unknown_command_error() { break; } } - next_busy_signal_ms = ms + 10000UL; // "busy: ..." message every 10s + next_busy_signal_ms = host_keepalive_interval ? ms + 1000UL * host_keepalive_interval : -1; } #endif //HOST_KEEPALIVE_FEATURE From e0b0d1eb6b476c6180ed08608476c9e2158d0e94 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 6 Apr 2016 17:31:49 -0700 Subject: [PATCH 021/383] Add M113 to get/set Host Keepalive --- Marlin/Marlin_main.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 9a1e3ae6c3..0b097d9c75 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -151,6 +151,7 @@ * M110 - Set the current line number * M111 - Set debug flags with S. See flag bits defined in Marlin.h. * M112 - Emergency stop + * M113 - Get or set the timeout interval for Host Keepalive "busy" messages * M114 - Output current position to serial port * M115 - Capabilities string * M117 - Display a message on the controller screen @@ -4385,6 +4386,27 @@ inline void gcode_M111() { */ inline void gcode_M112() { kill(PSTR(MSG_KILLED)); } +#if ENABLED(HOST_KEEPALIVE_FEATURE) + + /** + * M113: Get or set Host Keepalive interval (0 to disable) + * + * S Optional. Set the keepalive interval. + */ + inline void gcode_M113() { + if (code_seen('S')) { + host_keepalive_interval = (uint8_t)code_value_short(); + NOMORE(host_keepalive_interval, 60); + } + else { + SERIAL_ECHO_START; + SERIAL_ECHOPAIR("M113 S", (unsigned long)host_keepalive_interval); + SERIAL_EOL; + } + } + +#endif + #if ENABLED(BARICUDA) #if HAS_HEATER_1 From c3d1b7db2d6552e0be515817ac8846e9149c51d9 Mon Sep 17 00:00:00 2001 From: AnHardt Date: Fri, 8 Apr 2016 22:51:04 +0200 Subject: [PATCH 022/383] de-language additions --- Marlin/language_de.h | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index ae6e416cfc..ef8efd7f14 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -43,11 +43,11 @@ #define MSG_DISABLE_STEPPERS "Motoren Aus" // M84 #define MSG_AUTO_HOME "Home" // G28 #define MSG_LEVEL_BED_HOMING "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "Click to Begin" -#define MSG_LEVEL_BED_DONE "Leveling Done!" -#define MSG_LEVEL_BED_CANCEL "Cancel" +#define MSG_LEVEL_BED_WAITING "Klick für Start" +#define MSG_LEVEL_BED_DONE "Fertig" +#define MSG_LEVEL_BED_CANCEL "Abbruch" #define MSG_SET_HOME_OFFSETS "Setze Home hier" -#define MSG_HOME_OFFSETS_APPLIED "Offsets applied" +#define MSG_HOME_OFFSETS_APPLIED "Offsets aktiv" #define MSG_SET_ORIGIN "Setze Null hier" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp #define MSG_PREHEAT_PLA "Vorwärmen PLA" #define MSG_PREHEAT_PLA_N "Vorwärmen PLA " @@ -62,8 +62,10 @@ #define MSG_COOLDOWN "Abkühlen" #define MSG_SWITCH_PS_ON "Netzteil Ein" #define MSG_SWITCH_PS_OFF "Netzteil Aus" +#define MSG_EXTRUDE "Extrude" #define MSG_RETRACT "Retract" #define MSG_MOVE_AXIS "Bewegen" +#define MSG_LEVEL_BED "Bett Korrektur" #define MSG_MOVE_X "X" #define MSG_MOVE_Y "Y" #define MSG_MOVE_Z "Z" @@ -72,6 +74,7 @@ #define MSG_MOVE_1MM " 1.0 mm" #define MSG_MOVE_10MM "10.0 mm" #define MSG_SPEED "Geschw." +#define MSG_BED_Z "Bett Z" #define MSG_NOZZLE "Düse" #define MSG_BED "Bett" #define MSG_FAN_SPEED "Lüftergeschw." @@ -100,6 +103,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "A max " // space by purpose #define MSG_A_RETRACT "A Retract" +#define MSG_A_TRAVEL "A Travel" #define MSG_XSTEPS "X steps/mm" #define MSG_YSTEPS "Y steps/mm" #define MSG_ZSTEPS "Z steps/mm" @@ -147,6 +151,13 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop Abbr. Ein" +#define MSG_HEATING_FAILED_LCD "Err: Heizt langsam" +#define MSG_ERR_REDUNDANT_TEMP "Err: Temp. Redundanz" +#define MSG_THERMAL_RUNAWAY "Err: Temp. Messung" +#define MSG_ERR_MAXTEMP "Err: Max-Temp." +#define MSG_ERR_MINTEMP "Err: Min-Temp." +#define MSG_ERR_MAXTEMP_BED "Err: Max-Temp. Bett" +#define MSG_ERR_MINTEMP_BED "Err: Min-Temp. Bett" #define MSG_END_HOUR "Stunden" #define MSG_END_MINUTE "Minuten" #define MSG_HEATING "Aufheizen..." @@ -154,12 +165,10 @@ #define MSG_BED_HEATING "Bett aufheizen" #define MSG_BED_DONE "Bett aufgeheizt" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta kalibrieren" - #define MSG_DELTA_CALIBRATE_X "Kalibriere X" - #define MSG_DELTA_CALIBRATE_Y "Kalibriere Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibriere Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibriere Mitte" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta kalibrieren" +#define MSG_DELTA_CALIBRATE_X "Kalibriere X" +#define MSG_DELTA_CALIBRATE_Y "Kalibriere Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibriere Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibriere Mitte" #endif // LANGUAGE_DE_H From cba26988712ea49f1654f7131cbb7be94e63b96b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 17:37:06 -0700 Subject: [PATCH 023/383] Additional DEBUG_LEVELING output --- Marlin/Marlin_main.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 8a3610d58f..eb36568a5e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1242,7 +1242,10 @@ static void set_axis_is_at_home(AxisEnum axis) { if (axis == Z_AXIS) { current_position[Z_AXIS] -= zprobe_zoffset; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOPAIR("> zprobe_zoffset==", zprobe_zoffset); + if (DEBUGGING(LEVELING)) { + SERIAL_ECHOPAIR("> zprobe_zoffset==", zprobe_zoffset); + SERIAL_EOL; + } #endif } #endif @@ -1288,10 +1291,16 @@ inline void line_to_destination() { line_to_destination(feedrate); } inline void sync_plan_position() { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position); + #endif plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } #if ENABLED(DELTA) || ENABLED(SCARA) inline void sync_plan_position_delta() { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position_delta", current_position); + #endif calculate_delta(current_position); plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); } @@ -1332,8 +1341,12 @@ static void setup_for_endstop_move() { #if DISABLED(DELTA) static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE set_bed_level_equation_lsq", current_position); + #endif + vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); - planeNormal.debug("planeNormal"); + // planeNormal.debug("planeNormal"); plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); //bedLevel.debug("bedLevel"); @@ -1348,7 +1361,7 @@ static void setup_for_endstop_move() { current_position[Z_AXIS] = corrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("set_bed_level_equation_lsq", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER set_bed_level_equation_lsq", current_position); #endif sync_plan_position(); @@ -3042,6 +3055,10 @@ inline void gcode_G28() { reset_bed_level(); #else //!DELTA //vector_3 corrected_position = plan_get_position_mm(); + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE matrix.set_to_identity", current_position); + #endif + //corrected_position.debug("position before G29"); vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position during G29"); @@ -3049,6 +3066,11 @@ inline void gcode_G28() { current_position[Y_AXIS] = uncorrected_position.y; current_position[Z_AXIS] = uncorrected_position.z; sync_plan_position(); + + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER matrix.set_to_identity", current_position); + #endif + #endif // !DELTA } From a644ab1de48742c6c432190039432b67d0f821e2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 17:38:26 -0700 Subject: [PATCH 024/383] Minor patch ups to `G29` This may fix a subtle bug caused by doing `G29` more than once without `G28` between. --- Marlin/Marlin_main.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index eb36568a5e..6f2a6cbce3 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1351,7 +1351,7 @@ static void setup_for_endstop_move() { //bedLevel.debug("bedLevel"); //plan_bed_level_matrix.debug("bed level before"); - //vector_3 uncorrected_position = plan_get_position_mm(); + //vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position before"); vector_3 corrected_position = plan_get_position(); @@ -3039,26 +3039,20 @@ inline void gcode_G28() { #endif // AUTO_BED_LEVELING_GRID - #if ENABLED(Z_PROBE_SLED) - dock_sled(false); // engage (un-dock) the Z probe - #elif ENABLED(Z_PROBE_ALLEN_KEY) || (ENABLED(DELTA) && SERVO_LEVELING) - deploy_z_probe(); - #endif - - st_synchronize(); - if (!dryrun) { + // make sure the bed_level_rotation_matrix is identity or the planner will get it wrong plan_bed_level_matrix.set_to_identity(); #if ENABLED(DELTA) reset_bed_level(); #else //!DELTA - //vector_3 corrected_position = plan_get_position_mm(); + #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE matrix.set_to_identity", current_position); #endif + //vector_3 corrected_position = plan_get_position(); //corrected_position.debug("position before G29"); vector_3 uncorrected_position = plan_get_position(); //uncorrected_position.debug("position during G29"); @@ -3074,6 +3068,14 @@ inline void gcode_G28() { #endif // !DELTA } + #if ENABLED(Z_PROBE_SLED) + dock_sled(false); // engage (un-dock) the Z probe + #elif ENABLED(Z_PROBE_ALLEN_KEY) || (ENABLED(DELTA) && SERVO_LEVELING) + deploy_z_probe(); + #endif + + st_synchronize(); + setup_for_endstop_move(); feedrate = homing_feedrate[Z_AXIS]; From dd3a06a95a73fd79da1fac16dffbaa51c80b1149 Mon Sep 17 00:00:00 2001 From: jbrazio Date: Sat, 26 Mar 2016 23:25:28 +0000 Subject: [PATCH 025/383] Implemented M155 and M156, a generic TWI/I2C interface for Marlin --- Marlin/Configuration_adv.h | 32 +++++ Marlin/Marlin_main.cpp | 71 ++++++++++ .../Felix/Configuration_adv.h | 32 +++++ .../Hephestos/Configuration_adv.h | 32 +++++ .../Hephestos_2/Configuration_adv.h | 32 +++++ .../K8200/Configuration_adv.h | 32 +++++ .../RigidBot/Configuration_adv.h | 32 +++++ .../SCARA/Configuration_adv.h | 32 +++++ .../TAZ4/Configuration_adv.h | 32 +++++ .../WITBOX/Configuration_adv.h | 32 +++++ .../delta/biv2.5/Configuration_adv.h | 32 +++++ .../delta/generic/Configuration_adv.h | 32 +++++ .../delta/kossel_mini/Configuration_adv.h | 32 +++++ .../delta/kossel_pro/Configuration_adv.h | 32 +++++ .../delta/kossel_xl/Configuration_adv.h | 32 +++++ .../makibox/Configuration_adv.h | 32 +++++ .../tvrrug/Round2/Configuration_adv.h | 32 +++++ Marlin/twibus.cpp | 104 +++++++++++++++ Marlin/twibus.h | 122 ++++++++++++++++++ 19 files changed, 809 insertions(+) create mode 100644 Marlin/twibus.cpp create mode 100644 Marlin/twibus.h diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 4dd7739d2f..3b26237386 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index f67461baf2..f9bb9de309 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -77,6 +77,10 @@ #include "stepper_dac.h" #endif +#if ENABLED(EXPERIMENTAL_I2CBUS) + #include "twibus.h" +#endif + /** * Look here for descriptions of G-codes: * - http://linuxcnc.org/handbook/gcode/g-code.html @@ -248,6 +252,10 @@ CardReader card; #endif +#if ENABLED(EXPERIMENTAL_I2CBUS) + TWIBus i2c; +#endif + bool Running = true; uint8_t marlin_debug_flags = DEBUG_NONE; @@ -4771,6 +4779,57 @@ inline void gcode_M121() { enable_endstops_globally(false); } #endif // BLINKM +#if ENABLED(EXPERIMENTAL_I2CBUS) + + /** + * M155: Send data to a I2C slave device + * + * This is a PoC, the formating and arguments for the GCODE will + * change to be more compatible, the current proposal is: + * + * M155 A ; Sets the I2C slave address the data will be sent to + * + * M155 B + * M155 B + * M155 B + * + * M155 S1 ; Send the buffered data and reset the buffer + * M155 R1 ; Reset the buffer without sending data + * + */ + inline void gcode_M155() { + // Set the target address + if (code_seen('A')) + i2c.address((uint8_t) code_value_short()); + + // Add a new byte to the buffer + else if (code_seen('B')) + i2c.addbyte((int) code_value_short()); + + // Flush the buffer to the bus + else if (code_seen('S')) i2c.send(); + + // Reset and rewind the buffer + else if (code_seen('R')) i2c.reset(); + } + + /** + * M156: Request X bytes from I2C slave device + * + * Usage: M156 A B + */ + inline void gcode_M156() { + uint8_t addr = code_seen('A') ? code_value_short() : 0; + int bytes = code_seen('B') ? code_value_short() : 0; + + if (addr && bytes) { + i2c.address(addr); + i2c.reqbytes(bytes); + } + } + +#endif //EXPERIMENTAL_I2CBUS + /** * M200: Set filament diameter and set E axis units to cubic millimeters * @@ -6439,6 +6498,18 @@ void process_next_command() { #endif //BLINKM + #if ENABLED(EXPERIMENTAL_I2CBUS) + + case 155: + gcode_M155(); + break; + + case 156: + gcode_M156(); + break; + + #endif //EXPERIMENTAL_I2CBUS + case 200: // M200 D set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters). gcode_M200(); break; diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index d5b2942d64..e8e2c1876c 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index b92a737983..ab8000a88b 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index b5a451c53f..be87d38ff4 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 5c47bde71b..429a1ad7b5 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -659,6 +659,38 @@ const unsigned int dropsegments = 2; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 17e19b0839..6985ddbe4f 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 1b09057ed8..7af0110991 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 62dde979c8..f96f20236b 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -661,6 +661,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index b92a737983..ab8000a88b 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 491cf38f33..da192eb81a 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -655,6 +655,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 414d4de32d..b2bf328571 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -655,6 +655,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index a9de9f43aa..fa0da7cdd3 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -654,6 +654,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index 29d9607ac1..6ace77f421 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -659,6 +659,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 23829cbbc9..f42f877014 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 301f362b67..16f00bbf9b 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index 0c62e79118..c8ddbd603c 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -653,6 +653,38 @@ const unsigned int dropsegments = 5; //everything with less than this number of #endif +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 + * ; It uses multiple M155 commands with one B arg + * M155 A63 ; Target slave address + * M155 B77 ; M + * M155 B97 ; a + * M155 B114 ; r + * M155 B108 ; l + * M155 B105 ; i + * M155 B110 ; n + * M155 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 + * M156 A63 B5 + * + * ; Example #3 + * ; Example serial output of a M156 request + * echo:i2c-reply: from:63 bytes:5 data:hello + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS + #include "Conditionals.h" #include "SanityCheck.h" diff --git a/Marlin/twibus.cpp b/Marlin/twibus.cpp new file mode 100644 index 0000000000..3131060848 --- /dev/null +++ b/Marlin/twibus.cpp @@ -0,0 +1,104 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Marlin.h" + +#if ENABLED(EXPERIMENTAL_I2CBUS) + +#include "twibus.h" + +#include + +TWIBus::twibus() { + Wire.begin(); // We use no address so we will join the BUS as the master + this->reset(); +} + +void TWIBus::reset() { + this->addr = 0; + this->buffer_s = 0; + this->buffer[0] = 0x00; +} + +void TWIBus::address(uint8_t addr) { + this->addr = addr; + + if (DEBUGGING(INFO)) { + SERIAL_ECHOPAIR("TWIBus::sendto: ", this->addr); + SERIAL_EOL; + } +} + +void TWIBus::addbyte(char c) { + if (buffer_s >= sizeof(this->buffer)) return; + this->buffer[this->buffer_s++] = c; + + if (DEBUGGING(INFO)) { + SERIAL_ECHOPAIR("TWIBus::addbyte: ", this->buffer[this->buffer_s -1]); + SERIAL_EOL; + } +} + +void TWIBus::send() { + if (!this->addr) return; + if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("TWIBus::send()"); + + Wire.beginTransmission(this->addr); + Wire.write(this->buffer, this->buffer_s); + Wire.endTransmission(); + + // Reset the buffer after sending the data + this->reset(); +} + +void TWIBus::reqbytes(uint8_t bytes) { + if (!this->addr) return; + if (DEBUGGING(INFO)) { + SERIAL_ECHOPAIR("TWIBus::reqbytes(): ", bytes); + SERIAL_EOL; + } + + millis_t t = millis(); + Wire.requestFrom(this->addr, bytes); + + // requestFrom() is a blocking function + while (Wire.available() < bytes) { + if (millis() - t >= this->timeout) break; + else continue; + } + + SERIAL_ECHO_START; + SERIAL_ECHOPAIR("i2c-reply: from:", this->addr); + SERIAL_ECHOPAIR(" bytes:", Wire.available()); + SERIAL_ECHOPGM (" data:"); + + // Protect against buffer overflows if the number of received bytes + // is less than the number of requested bytes + uint8_t wba = Wire.available(); + for (int i = 0; i < wba; i++) SERIAL_CHAR(Wire.read()); + SERIAL_EOL; + + // Reset the buffer after sending the data + this->reset(); +} + +#endif //EXPERIMENTAL_I2CBUS diff --git a/Marlin/twibus.h b/Marlin/twibus.h new file mode 100644 index 0000000000..5ab725777b --- /dev/null +++ b/Marlin/twibus.h @@ -0,0 +1,122 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef TWIBUS_H +#define TWIBUS_H + +/** + * TWIBUS class + * + * This class implements a wrapper around the two wire (I2C) bus, it allows + * Marlin to send and request data from any slave device on the bus. This is + * an experimental feature and it's inner workings as well as public facing + * interface are prune to change in the future. + * + * The two main consumers of this class are M155 and M156, where M155 allows + * Marlin to send a I2C packet to a device (please be aware that no repeated + * starts are possible), this can be done in caching method by calling multiple + * times M155 B or a one liner M155, have a look at + * the gcode_M155() function for more information. M156 allows Marlin to + * request data from a device, the received data is then relayed into the serial + * line for host interpretation. + * + */ +class TWIBus { + private: + /** + * @brief Timeout value in milliseconds + * @details For blocking operations this constant value will set the max + * amount of time Marlin will keep waiting for a reply. Useful is something + * goes wrong on the bus and the SDA/SCL lines are held up by another device. + */ + const int timeout = 5; + + /** + * @brief Target device address + * @description This stores, until the buffer is flushed, the target device + * address, take not we do follow Arduino 7bit addressing. + */ + uint8_t addr = 0; + + /** + * @brief Number of bytes on buffer + * @description This var holds the total number of bytes on our buffer + * waiting to be flushed to the bus. + */ + uint8_t buffer_s = 0; + + /** + * @brief Internal buffer + * @details This is a fixed buffer, TWI command cannot be longer than this + */ + char buffer[30]; + + + public: + /** + * @brief Class constructor + * @details Initialized the TWI bus and clears the buffer + */ + TWIBus(); + + /** + * @brief Reset the buffer + * @details Brings the internal buffer to a known-empty state + */ + void reset(); + + /** + * @brief Send the buffer data to the bus + * @details Flushed the buffer into the bus targeting the cached slave device + * address. + */ + void send(); + + /** + * @brief Add one byte to the buffer + * @details Adds the byte to the buffer in a sequential way, if buffer is full + * the request is silently ignored. + * + * @param c a data byte + */ + void addbyte(char c); + + /** + * @brief Sets the target slave address + * @details The target slave address is stored so it can be later used when + * the complete packet needs to be sent over the bus. + * + * @param addr 7-bit integer address + */ + void address(uint8_t addr); + + /** + * @brief Request data from slave device + * @details Requests data from a slave device, when the data is received it will + * be relayed to the serial line using a parser-friendly formatting. + * + * @param bytes the number of bytes to request + */ + void reqbytes(uint8_t bytes); +}; + +#endif //TWIBUS_H From 907aed57db9a8242312ddee3267fe2d46f907f7c Mon Sep 17 00:00:00 2001 From: gralco Date: Fri, 8 Apr 2016 14:27:08 -0600 Subject: [PATCH 026/383] Fix bug which can cause an infinite M109 loop Since residency_start_ms is -1 when entering the heatup while loop whilst the hotend temp is close to the target them already then it may not escape. Hence "Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time." --- Marlin/Marlin_main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index f9bb9de309..100c636485 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4325,7 +4325,8 @@ inline void gcode_M109() { #ifdef TEMP_RESIDENCY_TIME // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. // Restart the timer whenever the temperature falls outside the hysteresis. - if (labs(degHotend(target_extruder) - degTargetHotend(target_extruder)) > ((residency_start_ms < 0) ? TEMP_WINDOW : TEMP_HYSTERESIS)) + if ((residency_start_ms <= 0 && labs(degHotend(target_extruder) - degTargetHotend(target_extruder)) < TEMP_WINDOW) || + (labs(degHotend(target_extruder) - degTargetHotend(target_extruder)) > ((residency_start_ms < 0) ? TEMP_WINDOW : TEMP_HYSTERESIS))) residency_start_ms = millis(); #endif //TEMP_RESIDENCY_TIME From 1acf901b63272cc8eb4ad7a4126868320bfb0176 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 21:18:40 -0700 Subject: [PATCH 027/383] Adjustments to residency_start_ms handling --- Marlin/Marlin_main.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 100c636485..49bea61024 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4290,7 +4290,7 @@ inline void gcode_M109() { #ifdef TEMP_RESIDENCY_TIME long residency_start_ms = -1; // Loop until the temperature has stabilized - #define TEMP_CONDITIONS (residency_start_ms < 0 || now < residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL) + #define TEMP_CONDITIONS (residency_start_ms == -1 || now < residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL) #else // Loop until the temperature is very close target #define TEMP_CONDITIONS (isHeatingHotend(target_extruder)) @@ -4307,7 +4307,7 @@ inline void gcode_M109() { #endif #ifdef TEMP_RESIDENCY_TIME SERIAL_PROTOCOLPGM(" W:"); - if (residency_start_ms >= 0) { + if (residency_start_ms != -1) { long rem = (((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; SERIAL_PROTOCOLLN(rem); } @@ -4323,11 +4323,18 @@ inline void gcode_M109() { refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out #ifdef TEMP_RESIDENCY_TIME - // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. - // Restart the timer whenever the temperature falls outside the hysteresis. - if ((residency_start_ms <= 0 && labs(degHotend(target_extruder) - degTargetHotend(target_extruder)) < TEMP_WINDOW) || - (labs(degHotend(target_extruder) - degTargetHotend(target_extruder)) > ((residency_start_ms < 0) ? TEMP_WINDOW : TEMP_HYSTERESIS))) + + float temp_diff = labs(degHotend(target_extruder) - degTargetHotend(target_extruder)); + + if (residency_start_ms == -1) { + // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. + if (temp_diff < TEMP_WINDOW) residency_start_ms = millis(); + } + else if (temp_diff > TEMP_HYSTERESIS) { + // Restart the timer whenever the temperature falls outside the hysteresis. residency_start_ms = millis(); + } + #endif //TEMP_RESIDENCY_TIME } // while(!cancel_heatup && TEMP_CONDITIONS) From 95acba2cfaa30919f973220910a8f5bd2ce0fcaf Mon Sep 17 00:00:00 2001 From: Michael Neumann Date: Sat, 9 Apr 2016 11:23:22 +0200 Subject: [PATCH 028/383] Wrong Pin Assignment Megatronics 3 SERVO2 is doubled defined and causes compiler errors --- Marlin/pins_MEGATRONICS_3.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/pins_MEGATRONICS_3.h b/Marlin/pins_MEGATRONICS_3.h index c60f3c6339..46f98807b2 100644 --- a/Marlin/pins_MEGATRONICS_3.h +++ b/Marlin/pins_MEGATRONICS_3.h @@ -39,7 +39,7 @@ #define SERVO0_PIN 46 //AUX3-6 #define SERVO1_PIN 47 //AUX3-5 #define SERVO2_PIN 48 //AUX3-4 -#define SERVO2_PIN 49 //AUX3-3 +#define SERVO3_PIN 49 //AUX3-3 #define X_STEP_PIN 58 #define X_DIR_PIN 57 From 8198cc30b5d3f875a34e8a8ed48d07211f5f154e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 20:47:12 -0700 Subject: [PATCH 029/383] More bits when encoderPosition is cast as signed --- Marlin/ultralcd.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 4169311d1c..7a9273f376 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -432,19 +432,19 @@ static void lcd_status_screen() { } #if ENABLED(ULTIPANEL_FEEDMULTIPLY) - int new_frm = feedrate_multiplier + int(encoderPosition); + int new_frm = feedrate_multiplier + (int32_t)encoderPosition; // Dead zone at 100% feedrate if ((feedrate_multiplier < 100 && new_frm > 100) || (feedrate_multiplier > 100 && new_frm < 100)) { feedrate_multiplier = 100; encoderPosition = 0; } else if (feedrate_multiplier == 100) { - if (int(encoderPosition) > ENCODER_FEEDRATE_DEADZONE) { - feedrate_multiplier += int(encoderPosition) - (ENCODER_FEEDRATE_DEADZONE); + if ((int32_t)encoderPosition > ENCODER_FEEDRATE_DEADZONE) { + feedrate_multiplier += (int32_t)encoderPosition - (ENCODER_FEEDRATE_DEADZONE); encoderPosition = 0; } - else if (int(encoderPosition) < -ENCODER_FEEDRATE_DEADZONE) { - feedrate_multiplier += int(encoderPosition) + ENCODER_FEEDRATE_DEADZONE; + else if ((int32_t)encoderPosition < -(ENCODER_FEEDRATE_DEADZONE)) { + feedrate_multiplier += (int32_t)encoderPosition + ENCODER_FEEDRATE_DEADZONE; encoderPosition = 0; } } @@ -554,7 +554,7 @@ void lcd_set_home_offsets() { static void _lcd_babystep(const int axis, const char* msg) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition) { - int distance = (int)encoderPosition * BABYSTEP_MULTIPLICATOR; + int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; #if ENABLED(COREXY) || ENABLED(COREXZ) @@ -903,7 +903,7 @@ void lcd_cooldown() { // Encoder wheel adjusts the Z position if (encoderPosition && movesplanned() <= 3) { refresh_cmd_timeout(); - current_position[Z_AXIS] += float((int)encoderPosition) * (MBL_Z_STEP); + current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP); if (min_software_endstops) NOLESS(current_position[Z_AXIS], Z_MIN_POS); if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS); encoderPosition = 0; @@ -1126,7 +1126,7 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition && movesplanned() <= 3) { refresh_cmd_timeout(); - current_position[axis] += float((int)encoderPosition) * move_menu_scale; + current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale; if (min_software_endstops) NOLESS(current_position[axis], min); if (max_software_endstops) NOMORE(current_position[axis], max); encoderPosition = 0; @@ -1157,7 +1157,7 @@ static void lcd_move_e( active_extruder = e; #endif if (encoderPosition && movesplanned() <= 3) { - current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale; + current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; encoderPosition = 0; line_to_current(E_AXIS); lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; @@ -2345,7 +2345,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; } #if ENABLED(RIGIDBOT_PANEL) if (now > next_button_update_ms) { if (BUTTON_PRESSED(UP)) { - encoderDiff = -1 * (ENCODER_STEPS_PER_MENU_ITEM); + encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM); next_button_update_ms = now + 300; } else if (BUTTON_PRESSED(DWN)) { @@ -2353,7 +2353,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; } next_button_update_ms = now + 300; } else if (BUTTON_PRESSED(LFT)) { - encoderDiff = -1 * (ENCODER_PULSES_PER_STEP); + encoderDiff = -(ENCODER_PULSES_PER_STEP); next_button_update_ms = now + 300; } else if (BUTTON_PRESSED(RT)) { From 6d465321b5af2e685a81d18e9195fdcb3d02586c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 9 Apr 2016 16:58:17 -0700 Subject: [PATCH 030/383] Adjust timeout code in host_keepalive --- Marlin/Marlin_main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index c8b9090786..3759a07b70 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -456,7 +456,7 @@ static bool send_ok[BUFSIZE]; }; static MarlinBusyState busy_state = NOT_BUSY; - static millis_t next_busy_signal_ms = -1; + static millis_t prev_busy_signal_ms = -1; uint8_t host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL; #define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0) #else @@ -2279,8 +2279,8 @@ void unknown_command_error() { */ void host_keepalive() { millis_t ms = millis(); - if (busy_state != NOT_BUSY) { - if (ms < next_busy_signal_ms) return; + if (host_keepalive_interval && busy_state != NOT_BUSY) { + if (ms - prev_busy_signal_ms < 1000UL * host_keepalive_interval) return; switch (busy_state) { case IN_HANDLER: case IN_PROCESS: @@ -2299,7 +2299,7 @@ void unknown_command_error() { break; } } - next_busy_signal_ms = host_keepalive_interval ? ms + 1000UL * host_keepalive_interval : -1; + prev_busy_signal_ms = ms; } #endif //HOST_KEEPALIVE_FEATURE From f3562dd89580ef88b0f9c53e944933764cc3f866 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 9 Apr 2016 19:07:24 -0700 Subject: [PATCH 031/383] Have M206 alter current_position, M428 use new function --- Marlin/Marlin_main.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 3759a07b70..ee8693955f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4975,19 +4975,26 @@ inline void gcode_M205() { if (code_seen('E')) max_e_jerk = code_value(); } +static void set_home_offset(AxisEnum axis, float v) { + min_pos[axis] = base_min_pos(axis) + v; + max_pos[axis] = base_max_pos(axis) + v; + current_position[axis] += v - home_offset[axis]; + home_offset[axis] = v; +} + /** * M206: Set Additional Homing Offset (X Y Z). SCARA aliases T=X, P=Y */ inline void gcode_M206() { - for (int8_t i = X_AXIS; i <= Z_AXIS; i++) { - if (code_seen(axis_codes[i])) { - home_offset[i] = code_value(); - } - } + for (int8_t i = X_AXIS; i <= Z_AXIS; i++) + if (code_seen(axis_codes[i])) + set_home_offset((AxisEnum)i, code_value()); + #if ENABLED(SCARA) - if (code_seen('T')) home_offset[X_AXIS] = code_value(); // Theta - if (code_seen('P')) home_offset[Y_AXIS] = code_value(); // Psi + if (code_seen('T')) set_home_offset(X_AXIS, code_value()); // Theta + if (code_seen('P')) set_home_offset(Y_AXIS, code_value()); // Psi #endif + sync_plan_position(); } #if ENABLED(DELTA) @@ -5674,16 +5681,12 @@ inline void gcode_M410() { quickStop(); } */ inline void gcode_M428() { bool err = false; - float new_offs[3], new_pos[3]; - memcpy(new_pos, current_position, sizeof(new_pos)); - memcpy(new_offs, home_offset, sizeof(new_offs)); for (int8_t i = X_AXIS; i <= Z_AXIS; i++) { if (axis_homed[i]) { - float base = (new_pos[i] > (min_pos[i] + max_pos[i]) / 2) ? base_home_pos(i) : 0, - diff = new_pos[i] - base; + float base = (current_position[i] > (min_pos[i] + max_pos[i]) / 2) ? base_home_pos(i) : 0, + diff = current_position[i] - base; if (diff > -20 && diff < 20) { - new_offs[i] -= diff; - new_pos[i] = base; + set_home_offset((AxisEnum)i, home_offset[i] - diff); } else { SERIAL_ERROR_START; @@ -5699,8 +5702,6 @@ inline void gcode_M428() { } if (!err) { - memcpy(current_position, new_pos, sizeof(new_pos)); - memcpy(home_offset, new_offs, sizeof(new_offs)); sync_plan_position(); LCD_ALERTMESSAGEPGM(MSG_HOME_OFFSETS_APPLIED); #if HAS_BUZZER From 1b7356b3a19337d1bd2bb199e57cf3dc7d270558 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 9 Apr 2016 19:20:12 -0700 Subject: [PATCH 032/383] Account for home_offset in G29 handler --- Marlin/Marlin_main.cpp | 43 +++++++++++++++++++++++++----------------- Marlin/planner.cpp | 4 ++-- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ee8693955f..af0cbe72ca 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2841,7 +2841,7 @@ inline void gcode_G28() { } if (probe_point == 0) { // Set Z to a positive value before recording the first Z. - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + home_offset[Z_AXIS]; sync_plan_position(); } else { @@ -2850,7 +2850,7 @@ inline void gcode_G28() { iy = (probe_point - 1) / (MESH_NUM_X_POINTS); if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag mbl.set_z(ix, iy, current_position[Z_AXIS]); - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + home_offset[Z_AXIS]; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS] / 60, active_extruder); st_synchronize(); } @@ -2859,8 +2859,8 @@ inline void gcode_G28() { ix = probe_point % (MESH_NUM_X_POINTS); iy = probe_point / (MESH_NUM_X_POINTS); if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag - current_position[X_AXIS] = mbl.get_x(ix); - current_position[Y_AXIS] = mbl.get_y(iy); + current_position[X_AXIS] = mbl.get_x(ix) + home_offset[X_AXIS]; + current_position[Y_AXIS] = mbl.get_y(iy) + home_offset[Y_AXIS]; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS] / 60, active_extruder); st_synchronize(); probe_point++; @@ -3144,7 +3144,7 @@ inline void gcode_G28() { // raise extruder float measured_z, - z_before = probePointCounter ? Z_RAISE_BETWEEN_PROBINGS + current_position[Z_AXIS] : Z_RAISE_BEFORE_PROBING; + z_before = probePointCounter ? Z_RAISE_BETWEEN_PROBINGS + current_position[Z_AXIS] : Z_RAISE_BEFORE_PROBING + home_offset[Z_AXIS]; if (probePointCounter) { #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -3157,7 +3157,7 @@ inline void gcode_G28() { else { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOPAIR("z_before = (before) ", Z_RAISE_BEFORE_PROBING); + SERIAL_ECHOPAIR("z_before = (before) ", Z_RAISE_BEFORE_PROBING + home_offset[Z_AXIS]); SERIAL_EOL; } #endif @@ -3318,9 +3318,18 @@ inline void gcode_G28() { p1 = ProbeDeploy, p2 = ProbeStay, p3 = ProbeStow; // Probe at 3 arbitrary points - float z_at_pt_1 = probe_pt(ABL_PROBE_PT_1_X, ABL_PROBE_PT_1_Y, Z_RAISE_BEFORE_PROBING, p1, verbose_level), - z_at_pt_2 = probe_pt(ABL_PROBE_PT_2_X, ABL_PROBE_PT_2_Y, current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, p2, verbose_level), - z_at_pt_3 = probe_pt(ABL_PROBE_PT_3_X, ABL_PROBE_PT_3_Y, current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, p3, verbose_level); + float z_at_pt_1 = probe_pt( ABL_PROBE_PT_1_X + home_offset[X_AXIS], + ABL_PROBE_PT_1_Y + home_offset[Y_AXIS], + Z_RAISE_BEFORE_PROBING + home_offset[Z_AXIS], + p1, verbose_level), + z_at_pt_2 = probe_pt( ABL_PROBE_PT_2_X + home_offset[X_AXIS], + ABL_PROBE_PT_2_Y + home_offset[Y_AXIS], + current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, + p2, verbose_level), + z_at_pt_3 = probe_pt( ABL_PROBE_PT_3_X + home_offset[X_AXIS], + ABL_PROBE_PT_3_Y + home_offset[Y_AXIS], + current_position[Z_AXIS] + Z_RAISE_BETWEEN_PROBINGS, + p3, verbose_level); clean_up_after_endstop_move(); if (!dryrun) set_bed_level_equation_3pts(z_at_pt_1, z_at_pt_2, z_at_pt_3); @@ -6962,10 +6971,10 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ set_current_to_destination(); return; } - int pix = mbl.select_x_index(current_position[X_AXIS]); - int piy = mbl.select_y_index(current_position[Y_AXIS]); - int ix = mbl.select_x_index(x); - int iy = mbl.select_y_index(y); + int pix = mbl.select_x_index(current_position[X_AXIS] - home_offset[X_AXIS]); + int piy = mbl.select_y_index(current_position[Y_AXIS] - home_offset[Y_AXIS]); + int ix = mbl.select_x_index(x - home_offset[X_AXIS]); + int iy = mbl.select_y_index(y - home_offset[Y_AXIS]); pix = min(pix, MESH_NUM_X_POINTS - 2); piy = min(piy, MESH_NUM_Y_POINTS - 2); ix = min(ix, MESH_NUM_X_POINTS - 2); @@ -6978,7 +6987,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ } float nx, ny, nz, ne, normalized_dist; if (ix > pix && TEST(x_splits, ix)) { - nx = mbl.get_x(ix); + nx = mbl.get_x(ix) + home_offset[X_AXIS]; normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]); ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist; nz = current_position[Z_AXIS] + (z - current_position[Z_AXIS]) * normalized_dist; @@ -6986,7 +6995,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ CBI(x_splits, ix); } else if (ix < pix && TEST(x_splits, pix)) { - nx = mbl.get_x(pix); + nx = mbl.get_x(pix) + home_offset[X_AXIS]; normalized_dist = (nx - current_position[X_AXIS]) / (x - current_position[X_AXIS]); ny = current_position[Y_AXIS] + (y - current_position[Y_AXIS]) * normalized_dist; nz = current_position[Z_AXIS] + (z - current_position[Z_AXIS]) * normalized_dist; @@ -6994,7 +7003,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ CBI(x_splits, pix); } else if (iy > piy && TEST(y_splits, iy)) { - ny = mbl.get_y(iy); + ny = mbl.get_y(iy) + home_offset[Y_AXIS]; normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]); nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist; nz = current_position[Z_AXIS] + (z - current_position[Z_AXIS]) * normalized_dist; @@ -7002,7 +7011,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ CBI(y_splits, iy); } else if (iy < piy && TEST(y_splits, piy)) { - ny = mbl.get_y(piy); + ny = mbl.get_y(piy) + home_offset[Y_AXIS]; normalized_dist = (ny - current_position[Y_AXIS]) / (y - current_position[Y_AXIS]); nx = current_position[X_AXIS] + (x - current_position[X_AXIS]) * normalized_dist; nz = current_position[Z_AXIS] + (z - current_position[Z_AXIS]) * normalized_dist; diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 318b5bdb28..97468f0885 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -568,7 +568,7 @@ float junction_deviation = 0.1; while (block_buffer_tail == next_buffer_head) idle(); #if ENABLED(MESH_BED_LEVELING) - if (mbl.active) z += mbl.get_z(x, y); + if (mbl.active) z += mbl.get_z(x - home_offset[X_AXIS], y - home_offset[Y_AXIS]); #elif ENABLED(AUTO_BED_LEVELING_FEATURE) apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif @@ -1111,7 +1111,7 @@ float junction_deviation = 0.1; #endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING { #if ENABLED(MESH_BED_LEVELING) - if (mbl.active) z += mbl.get_z(x, y); + if (mbl.active) z += mbl.get_z(x - home_offset[X_AXIS], y - home_offset[Y_AXIS]); #elif ENABLED(AUTO_BED_LEVELING_FEATURE) apply_rotation_xyz(plan_bed_level_matrix, x, y, z); #endif From 386140f361f6aad111ce64e6020de453ba440d37 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 10 Apr 2016 15:55:12 -0700 Subject: [PATCH 033/383] Test time difference in safe way --- Marlin/Marlin_main.cpp | 60 +++++++++---------- Marlin/cardreader.cpp | 2 +- Marlin/dogm_lcd_implementation.h | 2 +- Marlin/macros.h | 3 + Marlin/planner.cpp | 2 +- Marlin/temperature.cpp | 26 ++++---- Marlin/twibus.cpp | 4 +- Marlin/ultralcd.cpp | 12 ++-- .../ultralcd_implementation_hitachi_HD44780.h | 6 +- 9 files changed, 60 insertions(+), 57 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 3759a07b70..c0ef2db772 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -306,7 +306,7 @@ const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42 // Inactivity shutdown millis_t previous_cmd_ms = 0; static millis_t max_inactive_time = 0; -static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000L; +static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL; Stopwatch print_job_timer = Stopwatch(); static uint8_t target_extruder; @@ -435,7 +435,7 @@ static bool send_ok[BUFSIZE]; #endif #ifdef CHDK - unsigned long chdkHigh = 0; + millis_t chdkHigh = 0; boolean chdkActive = false; #endif @@ -456,7 +456,7 @@ static bool send_ok[BUFSIZE]; }; static MarlinBusyState busy_state = NOT_BUSY; - static millis_t prev_busy_signal_ms = -1; + static millis_t next_busy_signal_ms = 0; uint8_t host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL; #define KEEPALIVE_STATE(n) do{ busy_state = n; }while(0) #else @@ -874,7 +874,7 @@ inline void get_serial_commands() { #if defined(NO_TIMEOUTS) && NO_TIMEOUTS > 0 static millis_t last_command_time = 0; millis_t ms = millis(); - if (commands_in_queue == 0 && !MYSERIAL.available() && ms > last_command_time + NO_TIMEOUTS) { + if (commands_in_queue == 0 && !MYSERIAL.available() && ELAPSED(ms, last_command_time + NO_TIMEOUTS)) { SERIAL_ECHOLNPGM(MSG_WAIT); last_command_time = ms; } @@ -2280,7 +2280,7 @@ void unknown_command_error() { void host_keepalive() { millis_t ms = millis(); if (host_keepalive_interval && busy_state != NOT_BUSY) { - if (ms - prev_busy_signal_ms < 1000UL * host_keepalive_interval) return; + if (PENDING(ms, next_busy_signal_ms)) return; switch (busy_state) { case IN_HANDLER: case IN_PROCESS: @@ -2299,7 +2299,7 @@ void unknown_command_error() { break; } } - prev_busy_signal_ms = ms; + next_busy_signal_ms = ms + host_keepalive_interval * 1000UL; } #endif //HOST_KEEPALIVE_FEATURE @@ -2368,7 +2368,7 @@ inline void gcode_G4() { millis_t codenum = 0; if (code_seen('P')) codenum = code_value_long(); // milliseconds to wait - if (code_seen('S')) codenum = code_value() * 1000; // seconds to wait + if (code_seen('S')) codenum = code_value() * 1000UL; // seconds to wait st_synchronize(); refresh_cmd_timeout(); @@ -2376,7 +2376,7 @@ inline void gcode_G4() { if (!lcd_hasstatus()) LCD_MESSAGEPGM(MSG_DWELL); - while (millis() < codenum) idle(); + while (PENDING(millis(), codenum)) idle(); } #if ENABLED(FWRETRACT) @@ -3525,7 +3525,7 @@ inline void gcode_G92() { hasP = codenum > 0; } if (code_seen('S')) { - codenum = code_value() * 1000; // seconds to wait + codenum = code_value() * 1000UL; // seconds to wait hasS = codenum > 0; } @@ -3544,7 +3544,7 @@ inline void gcode_G92() { if (codenum > 0) { codenum += previous_cmd_ms; // wait until this time for a click KEEPALIVE_STATE(PAUSED_FOR_USER); - while (millis() < codenum && !lcd_clicked()) idle(); + while (PENDING(millis(), codenum) && !lcd_clicked()) idle(); KEEPALIVE_STATE(IN_HANDLER); lcd_ignore_click(false); } @@ -4290,9 +4290,9 @@ inline void gcode_M109() { if (degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; #ifdef TEMP_RESIDENCY_TIME - long residency_start_ms = -1; + millis_t residency_start_ms = 0; // Loop until the temperature has stabilized - #define TEMP_CONDITIONS (residency_start_ms == -1 || now < residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL) + #define TEMP_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target #define TEMP_CONDITIONS (isHeatingHotend(target_extruder)) @@ -4302,14 +4302,14 @@ inline void gcode_M109() { millis_t now = millis(), next_temp_ms = now + 1000UL; while (!cancel_heatup && TEMP_CONDITIONS) { now = millis(); - if (now > next_temp_ms) { //Print temp & remaining time every 1s while waiting + if (ELAPSED(now, next_temp_ms)) { //Print temp & remaining time every 1s while waiting next_temp_ms = now + 1000UL; #if HAS_TEMP_HOTEND || HAS_TEMP_BED print_heaterstates(); #endif #ifdef TEMP_RESIDENCY_TIME SERIAL_PROTOCOLPGM(" W:"); - if (residency_start_ms != -1) { + if (residency_start_ms) { long rem = (((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; SERIAL_PROTOCOLLN(rem); } @@ -4328,7 +4328,7 @@ inline void gcode_M109() { float temp_diff = labs(degHotend(target_extruder) - degTargetHotend(target_extruder)); - if (residency_start_ms == -1) { + if (!residency_start_ms) { // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. if (temp_diff < TEMP_WINDOW) residency_start_ms = millis(); } @@ -4365,7 +4365,7 @@ inline void gcode_M109() { millis_t now = millis(), next_temp_ms = now + 1000UL; while (!cancel_heatup && isHeatingBed()) { millis_t now = millis(); - if (now > next_temp_ms) { //Print Temp Reading every 1 second while heating up. + if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. next_temp_ms = now + 1000UL; print_heaterstates(); SERIAL_EOL; @@ -4613,7 +4613,7 @@ inline void gcode_M83() { axis_relative_modes[E_AXIS] = true; } */ inline void gcode_M18_M84() { if (code_seen('S')) { - stepper_inactive_time = code_value() * 1000; + stepper_inactive_time = code_value() * 1000UL; } else { bool all_axis = !((code_seen(axis_codes[X_AXIS])) || (code_seen(axis_codes[Y_AXIS])) || (code_seen(axis_codes[Z_AXIS])) || (code_seen(axis_codes[E_AXIS]))); @@ -4641,7 +4641,7 @@ inline void gcode_M18_M84() { * M85: Set inactivity shutdown timer with parameter S. To disable set zero (default) */ inline void gcode_M85() { - if (code_seen('S')) max_inactive_time = code_value() * 1000; + if (code_seen('S')) max_inactive_time = code_value() * 1000UL; } /** @@ -5868,9 +5868,9 @@ inline void gcode_M503() { while (!lcd_clicked()) { #if DISABLED(AUTO_FILAMENT_CHANGE) millis_t ms = millis(); - if (ms >= next_tick) { + if (ELAPSED(ms, next_tick)) { lcd_quick_feedback(); - next_tick = ms + 2500; // feedback every 2.5s while waiting + next_tick = ms + 2500UL; // feedback every 2.5s while waiting } idle(true); #else @@ -6109,7 +6109,7 @@ inline void gcode_T(uint8_t tmp_extruder) { set_destination_to_current(); #if ENABLED(DUAL_X_CARRIAGE) if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() && - (delayed_move_time != 0 || current_position[X_AXIS] != x_home_pos(active_extruder))) { + (delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) { // Park old head: 1) raise 2) move to park position 3) lower plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); @@ -7337,8 +7337,8 @@ void plan_arc( static millis_t lastMotorOn = 0; // Last time a motor was turned on static millis_t nextMotorCheck = 0; // Last time the state was checked millis_t ms = millis(); - if (ms >= nextMotorCheck) { - nextMotorCheck = ms + 2500; // Not a time critical function, so only check every 2.5s + if (ELAPSED(ms, nextMotorCheck)) { + nextMotorCheck = ms + 2500UL; // Not a time critical function, so only check every 2.5s if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON || soft_pwm_bed > 0 || E0_ENABLE_READ == E_ENABLE_ON // If any of the drivers are enabled... #if EXTRUDERS > 1 @@ -7358,7 +7358,7 @@ void plan_arc( } // Fan off if no steppers have been enabled for CONTROLLERFAN_SECS seconds - uint8_t speed = (lastMotorOn == 0 || ms >= lastMotorOn + (CONTROLLERFAN_SECS) * 1000UL) ? 0 : CONTROLLERFAN_SPEED; + uint8_t speed = (!lastMotorOn || ELAPSED(ms, lastMotorOn + (CONTROLLERFAN_SECS) * 1000UL)) ? 0 : CONTROLLERFAN_SPEED; // allows digital or PWM fan output to be used (see M42 handling) digitalWrite(CONTROLLERFAN_PIN, speed); @@ -7454,7 +7454,7 @@ void plan_arc( void handle_status_leds(void) { float max_temp = 0.0; - if (millis() > next_status_led_update_ms) { + if (ELAPSED(millis(), next_status_led_update_ms)) { next_status_led_update_ms += 500; // Update every 0.5s for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) max_temp = max(max(max_temp, degHotend(cur_extruder)), degTargetHotend(cur_extruder)); @@ -7533,9 +7533,9 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { millis_t ms = millis(); - if (max_inactive_time && ms > previous_cmd_ms + max_inactive_time) kill(PSTR(MSG_KILLED)); + if (max_inactive_time && ELAPSED(ms, previous_cmd_ms + max_inactive_time)) kill(PSTR(MSG_KILLED)); - if (stepper_inactive_time && ms > previous_cmd_ms + stepper_inactive_time + if (stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time) && !ignore_stepper_queue && !blocks_queued()) { #if ENABLED(DISABLE_INACTIVE_X) disable_x(); @@ -7555,7 +7555,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { } #ifdef CHDK // Check if pin should be set to LOW after M240 set it to HIGH - if (chdkActive && ms > chdkHigh + CHDK_DELAY) { + if (chdkActive && PENDING(ms, chdkHigh + CHDK_DELAY)) { chdkActive = false; WRITE(CHDK, LOW); } @@ -7601,7 +7601,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { #endif #if ENABLED(EXTRUDER_RUNOUT_PREVENT) - if (ms > previous_cmd_ms + (EXTRUDER_RUNOUT_SECONDS) * 1000) + if (ELAPSED(ms, previous_cmd_ms + (EXTRUDER_RUNOUT_SECONDS) * 1000UL)) if (degHotend(active_extruder) > EXTRUDER_RUNOUT_MINTEMP) { bool oldstatus; switch (active_extruder) { @@ -7662,7 +7662,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { #if ENABLED(DUAL_X_CARRIAGE) // handle delayed move timeout - if (delayed_move_time && ms > delayed_move_time + 1000 && IsRunning()) { + if (delayed_move_time && ELAPSED(ms, delayed_move_time + 1000UL) && IsRunning()) { // travel moves have been received so enact them delayed_move_time = 0xFFFFFFFFUL; // force moves to be done set_destination_to_current(); diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index eabf7b08b9..fbe4ae7e70 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -508,7 +508,7 @@ void CardReader::write_command(char *buf) { } void CardReader::checkautostart(bool force) { - if (!force && (!autostart_stilltocheck || next_autostart_ms < millis())) + if (!force && (!autostart_stilltocheck || ELAPSED(millis(), next_autostart_ms))) return; autostart_stilltocheck = false; diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 4da13cd297..90b0e6872f 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -459,7 +459,7 @@ static void lcd_implementation_status_screen() { #if DISABLED(FILAMENT_LCD_DISPLAY) lcd_print(lcd_status_message); #else - if (millis() < previous_lcd_status_ms + 5000) { //Display both Status message line and Filament display on the last line + if (PENDING(millis(), previous_lcd_status_ms + 5000)) { //Display both Status message line and Filament display on the last line lcd_print(lcd_status_message); } else { diff --git a/Marlin/macros.h b/Marlin/macros.h index be5e8cf2cf..5f53ee987c 100644 --- a/Marlin/macros.h +++ b/Marlin/macros.h @@ -57,4 +57,7 @@ #define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0) +#define PENDING(NOW,SOON) ((long)(NOW-(SOON))<0) +#define ELAPSED(NOW,SOON) (!PENDING(NOW,SOON)) + #endif //__MACROS_H diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 318b5bdb28..63e8392115 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -491,7 +491,7 @@ void check_axes_activity() { fan_kick_end[f] = ms + FAN_KICKSTART_TIME; \ tail_fan_speed[f] = 255; \ } else { \ - if (fan_kick_end[f] > ms) { \ + if (PENDING(ms, fan_kick_end[f])) { \ tail_fan_speed[f] = 255; \ } \ } \ diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index d9a5895f44..c99eea355b 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -235,7 +235,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false float max = 0, min = 10000; #if HAS_AUTO_FAN - millis_t next_auto_fan_check_ms = temp_ms + 2500; + millis_t next_auto_fan_check_ms = temp_ms + 2500UL; #endif if (extruder >= EXTRUDERS @@ -270,14 +270,14 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false min = min(min, input); #if HAS_AUTO_FAN - if (ms > next_auto_fan_check_ms) { + if (ELAPSED(ms, next_auto_fan_check_ms)) { checkExtruderAutoFans(); - next_auto_fan_check_ms = ms + 2500; + next_auto_fan_check_ms = ms + 2500UL; } #endif if (heating && input > temp) { - if (ms > t2 + 5000) { + if (ELAPSED(ms, t2 + 5000UL)) { heating = false; if (extruder < 0) soft_pwm_bed = (bias - d) >> 1; @@ -290,7 +290,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false } if (!heating && input < temp) { - if (ms > t1 + 5000) { + if (ELAPSED(ms, t1 + 5000UL)) { heating = true; t2 = ms; t_low = t2 - t1; @@ -349,7 +349,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false return; } // Every 2 seconds... - if (ms > temp_ms + 2000) { + if (ELAPSED(ms, temp_ms + 2000UL)) { #if HAS_TEMP_HOTEND || HAS_TEMP_BED print_heaterstates(); SERIAL_EOL; @@ -673,7 +673,7 @@ void manage_heater() { #if ENABLED(THERMAL_PROTECTION_HOTENDS) // Is it time to check this extruder's heater? - if (watch_heater_next_ms[e] && ms > watch_heater_next_ms[e]) { + if (watch_heater_next_ms[e] && ELAPSED(ms, watch_heater_next_ms[e])) { // Has it failed to increase enough? if (degHotend(e) < watch_target_temp[e]) { // Stop! @@ -696,9 +696,9 @@ void manage_heater() { } // Extruders Loop #if HAS_AUTO_FAN - if (ms > next_auto_fan_check_ms) { // only need to check fan state very infrequently + if (ELAPSED(ms > next_auto_fan_check_ms)) { // only need to check fan state very infrequently checkExtruderAutoFans(); - next_auto_fan_check_ms = ms + 2500; + next_auto_fan_check_ms = ms + 2500UL; } #endif @@ -718,7 +718,7 @@ void manage_heater() { #endif //FILAMENT_WIDTH_SENSOR #if DISABLED(PIDTEMPBED) - if (ms < next_bed_check_ms) return; + if (PENDING(ms, next_bed_check_ms)) return; next_bed_check_ms = ms + BED_CHECK_INTERVAL; #endif @@ -1105,7 +1105,7 @@ void tp_init() { void start_watching_heater(int e) { if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1)) { watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE; - watch_heater_next_ms[e] = millis() + (WATCH_TEMP_PERIOD) * 1000UL; + watch_heater_next_ms[e] = millis() + (WATCH_TEMP_PERIOD) * 1000; } else watch_heater_next_ms[e] = 0; @@ -1160,7 +1160,7 @@ void tp_init() { if (temperature >= tr_target_temperature[heater_index] - hysteresis_degc) *timer = millis(); // If the timer goes too long without a reset, trigger shutdown - else if (millis() > *timer + period_seconds * 1000UL) + else if (ELAPSED(millis(), *timer + period_seconds * 1000UL)) *state = TRRunaway; break; case TRRunaway: @@ -1232,7 +1232,7 @@ void disable_all_heaters() { millis_t ms = millis(); - if (ms < next_max6675_ms) return (int)max6675_temp; + if (PENDING(ms, next_max6675_ms)) return (int)max6675_temp; next_max6675_ms = ms + MAX6675_HEAT_INTERVAL; diff --git a/Marlin/twibus.cpp b/Marlin/twibus.cpp index 3131060848..84d69df740 100644 --- a/Marlin/twibus.cpp +++ b/Marlin/twibus.cpp @@ -77,12 +77,12 @@ void TWIBus::reqbytes(uint8_t bytes) { SERIAL_EOL; } - millis_t t = millis(); + millis_t t = millis() + this->timeout; Wire.requestFrom(this->addr, bytes); // requestFrom() is a blocking function while (Wire.available() < bytes) { - if (millis() - t >= this->timeout) break; + if (ELAPSED(millis(), t)) break; else continue; } diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 4169311d1c..4650752968 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -369,7 +369,7 @@ static void lcd_status_screen() { #if ENABLED(LCD_PROGRESS_BAR) millis_t ms = millis(); #if DISABLED(PROGRESS_MSG_ONCE) - if (ms > progress_bar_ms + PROGRESS_BAR_MSG_TIME + PROGRESS_BAR_BAR_TIME) { + if (ELAPSED(ms, progress_bar_ms + PROGRESS_BAR_MSG_TIME + PROGRESS_BAR_BAR_TIME)) { progress_bar_ms = ms; } #endif @@ -380,7 +380,7 @@ static void lcd_status_screen() { if (card.isFileOpen()) { // Expire the message when printing is active if (IS_SD_PRINTING) { - if (ms >= expire_status_ms) { + if (ELAPSED(ms, expire_status_ms)) { lcd_status_message[0] = '\0'; expire_status_ms = 0; } @@ -2025,7 +2025,7 @@ bool lcd_blink() { static uint8_t blink = 0; static millis_t next_blink_ms = 0; millis_t ms = millis(); - if (ms >= next_blink_ms) { + if (ELAPSED(ms, next_blink_ms)) { blink ^= 0xFF; next_blink_ms = ms + 1000 - LCD_UPDATE_INTERVAL / 2; } @@ -2094,7 +2094,7 @@ void lcd_update() { #endif //SDSUPPORT && SD_DETECT_PIN millis_t ms = millis(); - if (ms > next_lcd_update_ms) { + if (ELAPSED(ms, next_lcd_update_ms)) { #if ENABLED(LCD_HAS_SLOW_BUTTONS) slow_buttons = lcd_implementation_read_slow_buttons(); // buttons which take too long to read in interrupt context @@ -2343,7 +2343,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; } millis_t now = millis(); #endif #if ENABLED(RIGIDBOT_PANEL) - if (now > next_button_update_ms) { + if (ELAPSED(now, next_button_update_ms)) { if (BUTTON_PRESSED(UP)) { encoderDiff = -1 * (ENCODER_STEPS_PER_MENU_ITEM); next_button_update_ms = now + 300; @@ -2363,7 +2363,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; } } #endif #if BUTTON_EXISTS(ENC) - if (now > next_button_update_ms && BUTTON_PRESSED(ENC)) newbutton |= EN_C; + if (ELAPSED(now, next_button_update_ms) && BUTTON_PRESSED(ENC)) newbutton |= EN_C; #endif buttons = newbutton; #if ENABLED(LCD_HAS_SLOW_BUTTONS) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 26399fbad4..a0efa4be5a 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -741,7 +741,7 @@ static void lcd_implementation_status_screen() { if (card.isFileOpen()) { // Draw the progress bar if the message has shown long enough // or if there is no message set. - if (millis() >= progress_bar_ms + PROGRESS_BAR_MSG_TIME || !lcd_status_message[0]) { + if (ELAPSED(millis(), progress_bar_ms + PROGRESS_BAR_MSG_TIME) || !lcd_status_message[0]) { int tix = (int)(card.percentDone() * (LCD_WIDTH) * 3) / 100, cel = tix / 3, rem = tix % 3, i = LCD_WIDTH; char msg[LCD_WIDTH + 1], b = ' '; @@ -762,7 +762,7 @@ static void lcd_implementation_status_screen() { // Show Filament Diameter and Volumetric Multiplier % // After allowing lcd_status_message to show for 5 seconds - if (millis() >= previous_lcd_status_ms + 5000) { + if (ELAPSED(millis(), previous_lcd_status_ms + 5000)) { lcd_printPGM(PSTR("Dia ")); lcd.print(ftostr12ns(filament_width_meas)); lcd_printPGM(PSTR(" V")); @@ -930,7 +930,7 @@ void lcd_implementation_drawedit(const char* pstr, const char* value) { // so they are called during normal lcd_update uint8_t slow_bits = lcd.readButtons() << B_I2C_BTN_OFFSET; #if ENABLED(LCD_I2C_VIKI) - if ((slow_bits & (B_MI | B_RI)) && millis() < next_button_update_ms) // LCD clicked + if ((slow_bits & (B_MI | B_RI)) && PENDING(millis(), next_button_update_ms)) // LCD clicked slow_bits &= ~(B_MI | B_RI); // Disable LCD clicked buttons if screen is updated #endif // LCD_I2C_VIKI return slow_bits; From 8b923039e2c20dd5f3e1b4ec16011676ca240d90 Mon Sep 17 00:00:00 2001 From: Michael Conradt Date: Mon, 11 Apr 2016 03:20:21 +0200 Subject: [PATCH 034/383] Add missing german translations. --- Marlin/language_de.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index d114b236f6..2274928e90 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -152,6 +152,16 @@ #define MSG_HEATING_COMPLETE "Aufgeheizt" #define MSG_BED_HEATING "Bett aufheizen" #define MSG_BED_DONE "Bett aufgeheizt" +#define MSG_EXTRUDE "Extrudieren" +#define MSG_BED_Z "Bett Z" +#define MSG_A_TRAVEL "A Rueckzug" +#define MSG_HEATING_FAILED_LCD "Heizen fehlgesch." +#define MSG_ERR_REDUNDANT_TEMP "Redund. Temperaturabw." +#define MSG_THERMAL_RUNAWAY "Temp. n. erreicht" +#define MSG_ERR_MAXTEMP "Temp. ueberschritten" +#define MSG_ERR_MAXTEMP "Temp. unterschritten" +#define MSG_ERR_MAXTEMP_BED "Temp. Bett ueberschr." +#define MSG_ERR_MAXTEMP_BED "Temp. Bett unterschr." #if ENABLED(DELTA_CALIBRATION_MENU) #define MSG_DELTA_CALIBRATE "Delta kalibrieren" From 803845ec18fac0bc83c4b31ea19adf68a51b1ed1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 10 Apr 2016 18:53:03 -0700 Subject: [PATCH 035/383] Add a case for M113 to process_next_command --- Marlin/Marlin_main.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 3759a07b70..0b180c78e2 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6416,6 +6416,14 @@ void process_next_command() { gcode_M112(); break; + #if ENABLED(HOST_KEEPALIVE_FEATURE) + + case 113: // M113: Set Host Keepalive interval + gcode_M113(); + break; + + #endif + case 140: // M140: Set bed temp gcode_M140(); break; From 011f4736f1382de685cae08db66d93162e299357 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 10 Apr 2016 19:10:55 -0700 Subject: [PATCH 036/383] Remove redundant text from MSG_ERR_REDUNDANT_TEMP --- Marlin/language_cn.h | 2 +- Marlin/language_en.h | 2 +- Marlin/language_kana.h | 2 +- Marlin/language_kana_utf8.h | 2 +- Marlin/language_pt-br.h | 2 +- Marlin/language_pt-br_utf8.h | 2 +- Marlin/language_pt.h | 2 +- Marlin/language_pt_utf8.h | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/language_cn.h b/Marlin/language_cn.h index 3473d73ab0..c19fa82c69 100644 --- a/Marlin/language_cn.h +++ b/Marlin/language_cn.h @@ -149,7 +149,7 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_HEATING_FAILED_LCD "Heating failed" -#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "Err: MAXTEMP" #define MSG_ERR_MINTEMP "Err: MINTEMP" diff --git a/Marlin/language_en.h b/Marlin/language_en.h index dae6ea21b8..74da3cdfea 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -452,7 +452,7 @@ #define MSG_HEATING_FAILED_LCD "Heating failed" #endif #ifndef MSG_ERR_REDUNDANT_TEMP - #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" + #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #endif #ifndef MSG_THERMAL_RUNAWAY #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 6c810195ad..9827238803 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -154,7 +154,7 @@ #define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep Z" #define MSG_ENDSTOP_ABORT "\xb4\xdd\xc4\xde\xbd\xc4\xaf\xcc\xdf\x20\xbb\xc4\xde\xb3" // "Endstop abort" #define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xde\xb2" // "Heating failed" -#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "\xc8\xc2\xce\xde\xb3\xbf\xb3" // "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "\xb4\xd7\xb0:\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "Err: MAXTEMP" #define MSG_ERR_MINTEMP "\xb4\xd7\xb0:\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "Err: MINTEMP" diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index da420a5bdb..cebe621d70 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -158,7 +158,7 @@ #define MSG_BABYSTEP_Z "Zジク ビドウ" // "Babystep Z" #define MSG_ENDSTOP_ABORT "エンドストップ サドウ" // "Endstop abort" #define MSG_HEATING_FAILED_LCD "カネツシッパイ" // "Heating failed" -#define MSG_ERR_REDUNDANT_TEMP "エラー:ジョウチョウサーミスターキノウ" // "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "エラー:ジョウチョウサーミスターキノウ" // "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "ネツボウソウ" // "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "エラー:サイコウオンチョウカ" // "Err: MAXTEMP" #define MSG_ERR_MINTEMP "エラー:サイテイオンミマン" // "Err: MINTEMP" diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index 6f02b969d2..6058641530 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -154,7 +154,7 @@ #define MSG_BED_Z "Base Z" #define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" -#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "Err: T Maxima" #define MSG_ERR_MINTEMP "Err: T Minima" diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index 9ad21c80c1..ba8076d874 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -154,7 +154,7 @@ #define MSG_BED_Z "Base Z" #define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" -#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "Err: T Máxima" #define MSG_ERR_MINTEMP "Err: T Mínima" diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index 07bbd9dbb8..68563413dc 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -155,7 +155,7 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Fim de curso" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" -#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "Err: T Maxima" #define MSG_ERR_MINTEMP "Err: T Minima" diff --git a/Marlin/language_pt_utf8.h b/Marlin/language_pt_utf8.h index c20069cf39..d4f9bc202a 100644 --- a/Marlin/language_pt_utf8.h +++ b/Marlin/language_pt_utf8.h @@ -155,7 +155,7 @@ #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Fim de curso" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" -#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR" +#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" #define MSG_ERR_MAXTEMP "Err: T Máxima" #define MSG_ERR_MINTEMP "Err: T Mínima" From 7f265db3ef77df6b87803b5f849ef1827f76b1f0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 10 Apr 2016 23:40:11 -0700 Subject: [PATCH 037/383] Move sync_plan_position after DEBUG_LEVELING --- Marlin/Marlin_main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0b180c78e2..23f1c2ba36 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3069,12 +3069,13 @@ inline void gcode_G28() { current_position[X_AXIS] = uncorrected_position.x; current_position[Y_AXIS] = uncorrected_position.y; current_position[Z_AXIS] = uncorrected_position.z; - sync_plan_position(); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER matrix.set_to_identity", current_position); #endif + sync_plan_position(); + #endif // !DELTA } From fdee2be49c5258145e269bf2588afa5cc9aae738 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 00:06:33 -0700 Subject: [PATCH 038/383] More logging of matrix behavior --- Marlin/Marlin_main.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 23f1c2ba36..69fcc07048 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1351,8 +1351,14 @@ static void setup_for_endstop_move() { #if DISABLED(DELTA) static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { + #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE set_bed_level_equation_lsq", current_position); + plan_bed_level_matrix.set_to_identity(); + if (DEBUGGING(LEVELING)) { + vector_3 uncorrected_position = plan_get_position(); + DEBUG_POS(">>> set_bed_level_equation_lsq", uncorrected_position); + DEBUG_POS(">>> set_bed_level_equation_lsq", current_position); + } #endif vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); @@ -1371,7 +1377,7 @@ static void setup_for_endstop_move() { current_position[Z_AXIS] = corrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER set_bed_level_equation_lsq", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("<<< set_bed_level_equation_lsq", current_position); #endif sync_plan_position(); @@ -3059,7 +3065,11 @@ inline void gcode_G28() { #else //!DELTA #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("BEFORE matrix.set_to_identity", current_position); + if (DEBUGGING(LEVELING)) { + vector_3 corrected_position = plan_get_position(); + DEBUG_POS("BEFORE matrix.set_to_identity", corrected_position); + DEBUG_POS("BEFORE matrix.set_to_identity", current_position); + } #endif //vector_3 corrected_position = plan_get_position(); @@ -3071,7 +3081,7 @@ inline void gcode_G28() { current_position[Z_AXIS] = uncorrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER matrix.set_to_identity", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("AFTER matrix.set_to_identity", uncorrected_position); #endif sync_plan_position(); From ca6c6ec4ca82162fe5e8b8aafc122c1a2f4b4894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Mon, 11 Apr 2016 19:03:06 +0100 Subject: [PATCH 039/383] Versions of Arduino IDE prior to 1.6.0 are no longer supported --- Marlin/SanityCheck.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index b1a9c7b777..901da3b599 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -34,8 +34,8 @@ * release we will stop supporting old IDE versions and will require user * action to proceed with compilation in such environments. */ -#if !defined(ARDUINO) || ARDUINO < 10500 - #warning Versions of Arduino IDE prior to 1.5 are no longer supported, please update your toolkit. +#if !defined(ARDUINO) || ARDUINO < 10600 + #error Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit. #endif /** From e087a99a10b2c11a34876ea2ba4042a77f918544 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 01:03:10 -0700 Subject: [PATCH 040/383] Some cleanup of st_get_pos functions --- Marlin/planner.cpp | 12 ++++++++++++ Marlin/stepper.cpp | 19 +++++++++++++------ Marlin/stepper.h | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 318b5bdb28..e32c61230e 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -1090,6 +1090,12 @@ float junction_deviation = 0.1; } // plan_buffer_line() #if ENABLED(AUTO_BED_LEVELING_FEATURE) && DISABLED(DELTA) + + /** + * Get the XYZ position of the steppers as a vector_3. + * + * On CORE machines XYZ is derived from ABC. + */ vector_3 plan_get_position() { vector_3 position = vector_3(st_get_axis_position_mm(X_AXIS), st_get_axis_position_mm(Y_AXIS), st_get_axis_position_mm(Z_AXIS)); @@ -1102,8 +1108,14 @@ float junction_deviation = 0.1; return position; } + #endif // AUTO_BED_LEVELING_FEATURE && !DELTA +/** + * Directly set the planner XYZ position (hence the stepper positions). + * + * On CORE machines stepper ABC will be translated from the given XYZ. + */ #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING) void plan_set_position(float x, float y, float z, const float& e) #else diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index a371361c28..4bfe74ad15 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1099,15 +1099,22 @@ void st_set_e_position(const long& e) { CRITICAL_SECTION_END; } -long st_get_position(uint8_t axis) { +/** + * Get a stepper's position in steps. + */ +long st_get_position(AxisEnum axis) { CRITICAL_SECTION_START; long count_pos = count_position[axis]; CRITICAL_SECTION_END; return count_pos; } +/** + * Get an axis position according to stepper position(s) + * For CORE machines apply translation from ABC to XYZ. + */ float st_get_axis_position_mm(AxisEnum axis) { - float axis_pos; + float axis_steps; #if ENABLED(COREXY) | ENABLED(COREXZ) if (axis == X_AXIS || axis == CORE_AXIS_2) { CRITICAL_SECTION_START; @@ -1116,14 +1123,14 @@ float st_get_axis_position_mm(AxisEnum axis) { CRITICAL_SECTION_END; // ((a1+a2)+(a1-a2))/2 -> (a1+a2+a1-a2)/2 -> (a1+a1)/2 -> a1 // ((a1+a2)-(a1-a2))/2 -> (a1+a2-a1+a2)/2 -> (a2+a2)/2 -> a2 - axis_pos = (pos1 + ((axis == X_AXIS) ? pos2 : -pos2)) / 2.0f; + axis_steps = (pos1 + ((axis == X_AXIS) ? pos2 : -pos2)) / 2.0f; } else - axis_pos = st_get_position(axis); + axis_steps = st_get_position(axis); #else - axis_pos = st_get_position(axis); + axis_steps = st_get_position(axis); #endif - return axis_pos / axis_steps_per_unit[axis]; + return axis_steps / axis_steps_per_unit[axis]; } void finishAndDisableSteppers() { diff --git a/Marlin/stepper.h b/Marlin/stepper.h index aecbf58029..b0230b8cd2 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -61,7 +61,7 @@ void st_set_position(const long& x, const long& y, const long& z, const long& e) void st_set_e_position(const long& e); // Get current position in steps -long st_get_position(uint8_t axis); +long st_get_position(AxisEnum axis); // Get current axis position in mm float st_get_axis_position_mm(AxisEnum axis); From 3e5312f116bbf08b93d5b26ab2f664f4b2e62dcc Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 01:03:50 -0700 Subject: [PATCH 041/383] CORE support for st_set_position & plan_set_position --- Marlin/stepper.cpp | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 4bfe74ad15..f8f9312471 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -1084,11 +1084,36 @@ void st_init() { */ void st_synchronize() { while (blocks_queued()) idle(); } +/** + * Set the stepper positions directly in steps + * + * The input is based on the typical per-axis XYZ steps. + * For CORE machines XYZ needs to be translated to ABC. + * + * This allows st_get_axis_position_mm to correctly + * derive the current XYZ position later on. + */ void st_set_position(const long& x, const long& y, const long& z, const long& e) { CRITICAL_SECTION_START; - count_position[X_AXIS] = x; - count_position[Y_AXIS] = y; - count_position[Z_AXIS] = z; + + #if ENABLED(COREXY) + // corexy positioning + // these equations follow the form of the dA and dB equations on http://www.corexy.com/theory.html + count_position[A_AXIS] = x + y; + count_position[B_AXIS] = x - y; + count_position[Z_AXIS] = z; + #elif ENABLED(COREXZ) + // corexz planning + count_position[A_AXIS] = x + z; + count_position[Y_AXIS] = y; + count_position[C_AXIS] = x - z; + #else + // default non-h-bot planning + count_position[X_AXIS] = x; + count_position[Y_AXIS] = y; + count_position[Z_AXIS] = z; + #endif + count_position[E_AXIS] = e; CRITICAL_SECTION_END; } From 9cc571b312a030379cc19af8540c501429c10269 Mon Sep 17 00:00:00 2001 From: AnHardt Date: Tue, 12 Apr 2016 01:01:11 +0200 Subject: [PATCH 042/383] Fix-Servo-without-endstop-probe Sorry for not having realized someone (me) redefined not existing servo pinns to -1, some lines above. This is a simple error - not a feature. --- Marlin/Conditionals.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index b9809793b7..8710c6ef23 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -706,7 +706,7 @@ #endif #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) && \ - ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) ) + ( ENABLED(FIX_MOUNTED_PROBE) || (Z_ENDSTOP_SERVO_NR >= 0) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) ) #define HAS_Z_MIN_PROBE #endif From c218db136a655781b54a1bf476e3a24c236aae10 Mon Sep 17 00:00:00 2001 From: gralco Date: Mon, 11 Apr 2016 14:33:35 -0600 Subject: [PATCH 043/383] Fix for M109 and M190 cooldown Also removes the re-definition of now inside M190's while loop --- Marlin/Marlin_main.cpp | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index e62bb413ed..1828a35802 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4242,12 +4242,11 @@ inline void gcode_M105() { * Rxxx Wait for extruder(s) to reach temperature. Waits when heating and cooling. */ inline void gcode_M109() { - bool no_wait_for_cooling = true; if (setTargetedHotend(109)) return; if (DEBUGGING(DRYRUN)) return; - no_wait_for_cooling = code_seen('S'); + bool no_wait_for_cooling = code_seen('S'); if (no_wait_for_cooling || code_seen('R')) { float temp = code_value(); setTargetHotend(temp, target_extruder); @@ -4282,12 +4281,14 @@ inline void gcode_M109() { if (code_seen('B')) autotemp_max = code_value(); #endif - // Exit if the temperature is above target and not waiting for cooling - if (no_wait_for_cooling && !isHeatingHotend(target_extruder)) return; + bool wants_to_cool = isCoolingHotend(target_extruder); + + // Exit if S, continue if S, R, or R + if (no_wait_for_cooling && wants_to_cool) return; // Prevents a wait-forever situation if R is misused i.e. M109 R0 // Try to calculate a ballpark safe margin by halving EXTRUDE_MINTEMP - if (degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; + if (wants_to_cool && degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; #ifdef TEMP_RESIDENCY_TIME millis_t residency_start_ms = 0; @@ -4295,12 +4296,12 @@ inline void gcode_M109() { #define TEMP_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target - #define TEMP_CONDITIONS (isHeatingHotend(target_extruder)) + #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) #endif //TEMP_RESIDENCY_TIME cancel_heatup = false; - millis_t now = millis(), next_temp_ms = now + 1000UL; - while (!cancel_heatup && TEMP_CONDITIONS) { + millis_t now, next_temp_ms = 0; + do { now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print temp & remaining time every 1s while waiting next_temp_ms = now + 1000UL; @@ -4326,7 +4327,7 @@ inline void gcode_M109() { #ifdef TEMP_RESIDENCY_TIME - float temp_diff = labs(degHotend(target_extruder) - degTargetHotend(target_extruder)); + float temp_diff = fabs(degTargetHotend(target_extruder) - degHotend(target_extruder)); if (!residency_start_ms) { // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. @@ -4339,7 +4340,7 @@ inline void gcode_M109() { #endif //TEMP_RESIDENCY_TIME - } // while(!cancel_heatup && TEMP_CONDITIONS) + } while (!cancel_heatup && TEMP_CONDITIONS); LCD_MESSAGEPGM(MSG_HEATING_COMPLETE); } @@ -4355,15 +4356,18 @@ inline void gcode_M109() { LCD_MESSAGEPGM(MSG_BED_HEATING); bool no_wait_for_cooling = code_seen('S'); - if (no_wait_for_cooling || code_seen('R')) - setTargetBed(code_value()); + if (no_wait_for_cooling || code_seen('R')) setTargetBed(code_value()); + + bool wants_to_cool = isCoolingBed(); - // Exit if the temperature is above target and not waiting for cooling - if (no_wait_for_cooling && !isHeatingBed()) return; + // Exit if S, continue if S, R, or R + if (no_wait_for_cooling && wants_to_cool) return; cancel_heatup = false; - millis_t now = millis(), next_temp_ms = now + 1000UL; - while (!cancel_heatup && isHeatingBed()) { + millis_t next_temp_ms = 0; + + // Wait for temperature to come close enough + do { millis_t now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. next_temp_ms = now + 1000UL; @@ -4372,7 +4376,7 @@ inline void gcode_M109() { } idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out - } + } while (!cancel_heatup && (wants_to_cool ? isCoolingBed() : isHeatingBed())); LCD_MESSAGEPGM(MSG_BED_DONE); } From 81918657f4f8a18627982777bba45796f27de06f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 18:08:02 -0700 Subject: [PATCH 044/383] Fix Deutsch string errors, redundancies --- Marlin/language_de.h | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index ccdec82f42..a4fba0bf66 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -62,7 +62,7 @@ #define MSG_COOLDOWN "Abkühlen" #define MSG_SWITCH_PS_ON "Netzteil Ein" #define MSG_SWITCH_PS_OFF "Netzteil Aus" -#define MSG_EXTRUDE "Extrude" +#define MSG_EXTRUDE "Extrudieren" #define MSG_RETRACT "Retract" #define MSG_MOVE_AXIS "Bewegen" #define MSG_LEVEL_BED "Bett Korrektur" @@ -103,7 +103,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "A max " // space by purpose #define MSG_A_RETRACT "A Retract" -#define MSG_A_TRAVEL "A Travel" +#define MSG_A_TRAVEL "A Rueckzug" #define MSG_XSTEPS "X steps/mm" #define MSG_YSTEPS "Y steps/mm" #define MSG_ZSTEPS "Z steps/mm" @@ -151,29 +151,19 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop Abbr. Ein" -#define MSG_HEATING_FAILED_LCD "Err: Heizt langsam" -#define MSG_ERR_REDUNDANT_TEMP "Err: Temp. Redundanz" -#define MSG_THERMAL_RUNAWAY "Err: Temp. Messung" -#define MSG_ERR_MAXTEMP "Err: Max-Temp." -#define MSG_ERR_MINTEMP "Err: Min-Temp." -#define MSG_ERR_MAXTEMP_BED "Err: Max-Temp. Bett" -#define MSG_ERR_MINTEMP_BED "Err: Min-Temp. Bett" +#define MSG_HEATING_FAILED_LCD "Heizen fehlgesch." +#define MSG_ERR_REDUNDANT_TEMP "Redund. Temperaturabw." +#define MSG_THERMAL_RUNAWAY "Temp. n. erreicht" +#define MSG_ERR_MAXTEMP "Temp. ueberschritten" +#define MSG_ERR_MINTEMP "Temp. unterschritten" +#define MSG_ERR_MAXTEMP_BED "Temp. Bett ueberschr." +#define MSG_ERR_MINTEMP_BED "Temp. Bett unterschr." #define MSG_END_HOUR "Stunden" #define MSG_END_MINUTE "Minuten" #define MSG_HEATING "Aufheizen..." #define MSG_HEATING_COMPLETE "Aufgeheizt" #define MSG_BED_HEATING "Bett aufheizen" #define MSG_BED_DONE "Bett aufgeheizt" -#define MSG_EXTRUDE "Extrudieren" -#define MSG_BED_Z "Bett Z" -#define MSG_A_TRAVEL "A Rueckzug" -#define MSG_HEATING_FAILED_LCD "Heizen fehlgesch." -#define MSG_ERR_REDUNDANT_TEMP "Redund. Temperaturabw." -#define MSG_THERMAL_RUNAWAY "Temp. n. erreicht" -#define MSG_ERR_MAXTEMP "Temp. ueberschritten" -#define MSG_ERR_MAXTEMP "Temp. unterschritten" -#define MSG_ERR_MAXTEMP_BED "Temp. Bett ueberschr." -#define MSG_ERR_MAXTEMP_BED "Temp. Bett unterschr." #define MSG_DELTA_CALIBRATE "Delta kalibrieren" #define MSG_DELTA_CALIBRATE_X "Kalibriere X" From c5a8755cc0d62d3ab20d1352bbcdf73d976d39a3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 18:48:27 -0700 Subject: [PATCH 045/383] Fix a messed up ELAPSED instance --- Marlin/temperature.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index c99eea355b..0975e4fafb 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -696,7 +696,7 @@ void manage_heater() { } // Extruders Loop #if HAS_AUTO_FAN - if (ELAPSED(ms > next_auto_fan_check_ms)) { // only need to check fan state very infrequently + if (ELAPSED(ms, next_auto_fan_check_ms)) { // only need to check fan state very infrequently checkExtruderAutoFans(); next_auto_fan_check_ms = ms + 2500UL; } From f840c7de4dadb622e82b2f67f2aba42648fd71c5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 18:25:39 -0700 Subject: [PATCH 046/383] Initialize stepper counts for Delta/SCARA --- Marlin/Marlin_main.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d0cdf0a496..98b20f7659 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -485,6 +485,16 @@ void serial_echopair_P(const char* s_P, unsigned long v) { serialprintPGM(s_P); void gcode_M114(); +#if ENABLED(DELTA) || ENABLED(SCARA) + inline void sync_plan_position_delta() { + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position_delta", current_position); + #endif + calculate_delta(current_position); + plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); + } +#endif + #if ENABLED(PREVENT_DANGEROUS_EXTRUDE) float extrude_min_temp = EXTRUDE_MINTEMP; #endif @@ -705,6 +715,11 @@ void servo_init() { */ void setup() { + #if ENABLED(DELTA) || ENABLED(SCARA) + // Vital to init kinematic equivalent for X0 Y0 Z0 + sync_plan_position_delta(); + #endif + #ifdef DISABLE_JTAG // Disable JTAG on AT90USB chips to free up pins for IO MCUCR = 0x80; @@ -1306,15 +1321,6 @@ inline void sync_plan_position() { #endif plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } -#if ENABLED(DELTA) || ENABLED(SCARA) - inline void sync_plan_position_delta() { - #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position_delta", current_position); - #endif - calculate_delta(current_position); - plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); - } -#endif inline void set_current_to_destination() { memcpy(current_position, destination, sizeof(current_position)); } inline void set_destination_to_current() { memcpy(destination, current_position, sizeof(destination)); } From 068bc980ce90d9dac8dc9ba9ce49868c6e9f638c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 19:30:14 -0700 Subject: [PATCH 047/383] Additional Russian translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to @gans-AD – #3363 --- Marlin/language_ru.h | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h index c23de9b82c..051c9289af 100644 --- a/Marlin/language_ru.h +++ b/Marlin/language_ru.h @@ -149,15 +149,24 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Сработал концевик" +#define MSG_HEATING_FAILED_LCD "Разогрев не удался" +#define MSG_ERR_REDUNDANT_TEMP "Ошибка:Слишком горячо" +#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" +#define MSG_ERR_MAXTEMP "Ошибка: Т макс." +#define MSG_ERR_MINTEMP "Ошибка: Т мин." +#define MSG_ERR_MAXTEMP_BED "Ошибка:Т макс.стол" +#define MSG_ERR_MINTEMP_BED "Ошибка:Т мин.стол" #define MSG_END_HOUR "часов" #define MSG_END_MINUTE "минут" +#define MSG_HEATING "Нагреваю сопло..." +#define MSG_HEATING_COMPLETE "Нагрев выполнен" +#define MSG_BED_HEATING "Нагреваю стол" +#define MSG_BED_DONE "Стол разогрет" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Калибровка Delta" - #define MSG_DELTA_CALIBRATE_X "Калибровать X" - #define MSG_DELTA_CALIBRATE_Y "Калибровать Y" - #define MSG_DELTA_CALIBRATE_Z "Калибровать Z" - #define MSG_DELTA_CALIBRATE_CENTER "Калибровать Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Калибровка Delta" +#define MSG_DELTA_CALIBRATE_X "Калибровать X" +#define MSG_DELTA_CALIBRATE_Y "Калибровать Y" +#define MSG_DELTA_CALIBRATE_Z "Калибровать Z" +#define MSG_DELTA_CALIBRATE_CENTER "Калибровать Center" #endif // LANGUAGE_RU_H From e773d081c0ff1345df7c61e15c801c607d384c46 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 19:42:09 -0700 Subject: [PATCH 048/383] General language file cleanup --- Marlin/language_an.h | 12 +++++------- Marlin/language_bg.h | 12 +++++------- Marlin/language_ca.h | 12 +++++------- Marlin/language_cn.h | 13 +++++-------- Marlin/language_cz.h | 12 +++++------- Marlin/language_da.h | 12 +++++------- Marlin/language_es.h | 12 +++++------- Marlin/language_eu.h | 12 +++++------- Marlin/language_fi.h | 12 +++++------- Marlin/language_fr.h | 13 +++++-------- Marlin/language_gl.h | 12 +++++------- Marlin/language_it.h | 13 +++++-------- Marlin/language_kana.h | 12 +++++------- Marlin/language_kana_utf8.h | 12 +++++------- Marlin/language_nl.h | 12 +++++------- Marlin/language_pl.h | 13 +++++-------- Marlin/language_pt-br.h | 13 +++++-------- Marlin/language_pt-br_utf8.h | 13 +++++-------- Marlin/language_pt.h | 12 +++++------- Marlin/language_pt_utf8.h | 12 +++++------- 20 files changed, 100 insertions(+), 146 deletions(-) diff --git a/Marlin/language_an.h b/Marlin/language_an.h index 17e32ef8da..ea476d69f8 100644 --- a/Marlin/language_an.h +++ b/Marlin/language_an.h @@ -151,12 +151,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #endif // LANGUAGE_AN_H diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h index 062deb0dea..abff7baa7b 100644 --- a/Marlin/language_bg.h +++ b/Marlin/language_bg.h @@ -152,12 +152,10 @@ #define MSG_END_HOUR "часа" #define MSG_END_MINUTE "минути" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Делта Калибровка" - #define MSG_DELTA_CALIBRATE_X "Калибровка X" - #define MSG_DELTA_CALIBRATE_Y "Калибровка Y" - #define MSG_DELTA_CALIBRATE_Z "Калибровка Z" - #define MSG_DELTA_CALIBRATE_CENTER "Калибровка Център" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Делта Калибровка" +#define MSG_DELTA_CALIBRATE_X "Калибровка X" +#define MSG_DELTA_CALIBRATE_Y "Калибровка Y" +#define MSG_DELTA_CALIBRATE_Z "Калибровка Z" +#define MSG_DELTA_CALIBRATE_CENTER "Калибровка Център" #endif // LANGUAGE_BG_H diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h index 77fab60d8a..783d088787 100644 --- a/Marlin/language_ca.h +++ b/Marlin/language_ca.h @@ -152,12 +152,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #endif // LANGUAGE_CA_H diff --git a/Marlin/language_cn.h b/Marlin/language_cn.h index c19fa82c69..95c794afd5 100644 --- a/Marlin/language_cn.h +++ b/Marlin/language_cn.h @@ -157,13 +157,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #endif // LANGUAGE_CN_H - diff --git a/Marlin/language_cz.h b/Marlin/language_cz.h index 2cc2d2549f..db82d7d97e 100644 --- a/Marlin/language_cz.h +++ b/Marlin/language_cz.h @@ -169,12 +169,10 @@ #define MSG_BED_HEATING "Zahrivani podl." #define MSG_BED_DONE "Podlozka hotova." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Kalibrace" - #define MSG_DELTA_CALIBRATE_X "Kalibrovat X" - #define MSG_DELTA_CALIBRATE_Y "Kalibrovat Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibrovat Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibrovat Stred" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Kalibrace" +#define MSG_DELTA_CALIBRATE_X "Kalibrovat X" +#define MSG_DELTA_CALIBRATE_Y "Kalibrovat Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibrovat Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibrovat Stred" #endif // LANGUAGE_CZ_H diff --git a/Marlin/language_da.h b/Marlin/language_da.h index 2031d4e588..4d9b46f2b4 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -157,12 +157,10 @@ #define MSG_BED_DONE "Plade opvarmet" #define MSG_ENDSTOP_ABORT "Endstop abort" -#ifdef DELTA_CALIBRATION_MENU - #define MSG_DELTA_CALIBRATE "Delta Kalibrering" - #define MSG_DELTA_CALIBRATE_X "Kalibrer X" - #define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Kalibrering" +#define MSG_DELTA_CALIBRATE_X "Kalibrer X" +#define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" #endif // LANGUAGE_DA_H diff --git a/Marlin/language_es.h b/Marlin/language_es.h index e91418c3fa..0032de8fd0 100644 --- a/Marlin/language_es.h +++ b/Marlin/language_es.h @@ -165,12 +165,10 @@ #define MSG_BED_HEATING "Calentando plataforma ..." #define MSG_BED_DONE "Plataforma Caliente" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibracion Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibracion Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_ES_H diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h index bc775ec105..8158d2654e 100644 --- a/Marlin/language_eu.h +++ b/Marlin/language_eu.h @@ -151,12 +151,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #endif // LANGUAGE_EU_H diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h index 9d550c498e..600a009feb 100644 --- a/Marlin/language_fi.h +++ b/Marlin/language_fi.h @@ -151,12 +151,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Kalibrointi" - #define MSG_DELTA_CALIBRATE_X "Kalibroi X" - #define MSG_DELTA_CALIBRATE_Y "Kalibroi Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibroi Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibroi Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Kalibrointi" +#define MSG_DELTA_CALIBRATE_X "Kalibroi X" +#define MSG_DELTA_CALIBRATE_Y "Kalibroi Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibroi Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibroi Center" #endif // LANGUAGE_FI_H diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h index 3145f78a6f..acb17ce3fb 100644 --- a/Marlin/language_fr.h +++ b/Marlin/language_fr.h @@ -166,13 +166,10 @@ #define MSG_BED_HEATING "Plateau en chauffe..." #define MSG_BED_DONE "Chauffe plateau terminee" - -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibration Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrer X" - #define MSG_DELTA_CALIBRATE_Y "Calibrer Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrer Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrer centre" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibration Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrer X" +#define MSG_DELTA_CALIBRATE_Y "Calibrer Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrer Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrer centre" #endif // LANGUAGE_FR_H diff --git a/Marlin/language_gl.h b/Marlin/language_gl.h index 11f21ac0e5..0921bbf2ab 100644 --- a/Marlin/language_gl.h +++ b/Marlin/language_gl.h @@ -162,12 +162,10 @@ #define MSG_BED_HEATING "Quentando cama" #define MSG_BED_DONE "Cama esta quente" -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibracion Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibracion Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_GL_H diff --git a/Marlin/language_it.h b/Marlin/language_it.h index 0c849d0db9..247030e9e7 100644 --- a/Marlin/language_it.h +++ b/Marlin/language_it.h @@ -165,13 +165,10 @@ #define MSG_BED_HEATING "Risc. Piatto.." #define MSG_BED_DONE "Piatto Pronto" - -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibraz. Delta" - #define MSG_DELTA_CALIBRATE_X "Calibra X" - #define MSG_DELTA_CALIBRATE_Y "Calibra Y" - #define MSG_DELTA_CALIBRATE_Z "Calibra Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibra Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibraz. Delta" +#define MSG_DELTA_CALIBRATE_X "Calibra X" +#define MSG_DELTA_CALIBRATE_Y "Calibra Y" +#define MSG_DELTA_CALIBRATE_Z "Calibra Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibra Center" #endif // LANGUAGE_IT_H diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 9827238803..251c251d36 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -167,12 +167,10 @@ #define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "Bed Heating." #define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "Bed done." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "Calibrate Center" #endif // LANGUAGE_KANA_H diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index cebe621d70..7c1953c662 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -171,12 +171,10 @@ #define MSG_BED_HEATING "ベッド カネツチュウ" // "Bed Heating." #define MSG_BED_DONE "ベッド カネツカンリョウ" // "Bed done." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "デルタ コウセイ" // "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Xジク コウセイ" // "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Yジク コウセイ" // "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Zジク コウセイ" // "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "チュウシン コウセイ" // "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "デルタ コウセイ" // "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Xジク コウセイ" // "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Yジク コウセイ" // "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Zジク コウセイ" // "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "チュウシン コウセイ" // "Calibrate Center" #endif // LANGUAGE_KANA_UTF_H diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h index 4ccc7f094f..953cc33422 100644 --- a/Marlin/language_nl.h +++ b/Marlin/language_nl.h @@ -169,12 +169,10 @@ #define MSG_LEVEL_BED_CANCEL "Bed level afbr." #define MSG_HOME_OFFSETS_APPLIED "H offset toegep." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibratie" - #define MSG_DELTA_CALIBRATE_X "Kalibreer X" - #define MSG_DELTA_CALIBRATE_Y "Kalibreer Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibreer Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibreer Midden" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibratie" +#define MSG_DELTA_CALIBRATE_X "Kalibreer X" +#define MSG_DELTA_CALIBRATE_Y "Kalibreer Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibreer Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibreer Midden" #endif // LANGUAGE_NL_H diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h index 5417748508..71c8730485 100644 --- a/Marlin/language_pl.h +++ b/Marlin/language_pl.h @@ -151,13 +151,10 @@ #define MSG_END_HOUR "hours" #define MSG_END_MINUTE "minutes" - -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Delta Calibration" - #define MSG_DELTA_CALIBRATE_X "Calibrate X" - #define MSG_DELTA_CALIBRATE_Y "Calibrate Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrate Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Calibration" +#define MSG_DELTA_CALIBRATE_X "Calibrate X" +#define MSG_DELTA_CALIBRATE_Y "Calibrate Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrate Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center" #endif // LANGUAGE_PL_H diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index 6058641530..693a6413d8 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -150,7 +150,6 @@ #define MSG_ENDSTOP_ABORT "Fim de Curso" #define MSG_END_HOUR "Horas" #define MSG_END_MINUTE "Minutos" - #define MSG_BED_Z "Base Z" #define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" @@ -165,12 +164,10 @@ #define MSG_BED_HEATING "Aquecendo base.." #define MSG_BED_DONE "Base aquecida." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibrar Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibrar Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_PT_BR_H diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index ba8076d874..15a618b658 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -150,7 +150,6 @@ #define MSG_ENDSTOP_ABORT "Fim de Curso" #define MSG_END_HOUR "Horas" #define MSG_END_MINUTE "Minutos" - #define MSG_BED_Z "Base Z" #define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" @@ -165,12 +164,10 @@ #define MSG_BED_HEATING "Aquecendo base.." #define MSG_BED_DONE "Base aquecida." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibrar Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibrar Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_PT_BR_UTF_H diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index 68563413dc..31617ee935 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -168,12 +168,10 @@ #define MSG_BED_HEATING "Aquecendo base.." #define MSG_BED_DONE "Base aquecida." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibracao Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibracao Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_PT_H diff --git a/Marlin/language_pt_utf8.h b/Marlin/language_pt_utf8.h index d4f9bc202a..e94fa323ee 100644 --- a/Marlin/language_pt_utf8.h +++ b/Marlin/language_pt_utf8.h @@ -168,12 +168,10 @@ #define MSG_BED_HEATING "Aquecendo base.." #define MSG_BED_DONE "Base aquecida." -#if ENABLED(DELTA_CALIBRATION_MENU) - #define MSG_DELTA_CALIBRATE "Calibração Delta" - #define MSG_DELTA_CALIBRATE_X "Calibrar X" - #define MSG_DELTA_CALIBRATE_Y "Calibrar Y" - #define MSG_DELTA_CALIBRATE_Z "Calibrar Z" - #define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Calibração Delta" +#define MSG_DELTA_CALIBRATE_X "Calibrar X" +#define MSG_DELTA_CALIBRATE_Y "Calibrar Y" +#define MSG_DELTA_CALIBRATE_Z "Calibrar Z" +#define MSG_DELTA_CALIBRATE_CENTER "Calibrar Centro" #endif // LANGUAGE_PT_UTF_H From fe0fe184aa769d4ecc23e86259036bf9ce337dbf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 19:42:20 -0700 Subject: [PATCH 049/383] Replace some tabs with spaces --- Marlin/example_configurations/SCARA/Configuration.h | 4 ++-- Marlin/pins_PRINTRBOARD_REVF.h | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 436bf22909..40e20cfd78 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -85,8 +85,8 @@ #define SCARA_offset_y -56 //mm #define SCARA_RAD2DEG 57.2957795 // to convert RAD to degrees -#define THETA_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M360 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073 -#define PSI_HOMING_OFFSET 0 // calculatated from Calibration Guide and command M364 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073 +#define THETA_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M360 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073 +#define PSI_HOMING_OFFSET 0 //calculatated from Calibration Guide and command M364 / M114 see picture in http://reprap.harleystudio.co.za/?page_id=1073 //some helper variables to make kinematics faster #define L1_2 sq(Linkage_1) // do not change diff --git a/Marlin/pins_PRINTRBOARD_REVF.h b/Marlin/pins_PRINTRBOARD_REVF.h index 3120e04e72..bf4e2b4a41 100644 --- a/Marlin/pins_PRINTRBOARD_REVF.h +++ b/Marlin/pins_PRINTRBOARD_REVF.h @@ -90,13 +90,13 @@ // uncomment to enable an I2C based DAC like on the Printrboard REVF #define DAC_STEPPER_CURRENT // Number of channels available for DAC, For Printrboar REVF there are 4 -#define DAC_STEPPER_ORDER {3,2,1,0} +#define DAC_STEPPER_ORDER {3,2,1,0} -#define DAC_STEPPER_SENSE 0.11 -#define DAC_STEPPER_ADDRESS 0 -#define DAC_STEPPER_MAX 3520 -#define DAC_STEPPER_VREF 1 //internal Vref, gain 1x = 2.048V -#define DAC_STEPPER_GAIN 0 +#define DAC_STEPPER_SENSE 0.11 +#define DAC_STEPPER_ADDRESS 0 +#define DAC_STEPPER_MAX 3520 +#define DAC_STEPPER_VREF 1 //internal Vref, gain 1x = 2.048V +#define DAC_STEPPER_GAIN 0 #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support From 63d8893f5d15a4c0c60b5d1aba04c26fef0b10ea Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 20:30:00 -0700 Subject: [PATCH 050/383] Add DEBUG_LEVELING output for gcode_T --- Marlin/Marlin_main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d0cdf0a496..9b4cee080e 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6183,10 +6183,31 @@ inline void gcode_T(uint8_t tmp_extruder) { extruder_offset[Y_AXIS][active_extruder], extruder_offset[Z_AXIS][active_extruder]), offset_vec = tmp_offset_vec - act_offset_vec; + + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) { + SERIAL_ECHOLNPGM(">>> gcode_T"); + tmp_offset_vec.debug("tmp_offset_vec"); + act_offset_vec.debug("act_offset_vec"); + offset_vec.debug("offset_vec (BEFORE)"); + DEBUG_POS("BEFORE rotation", current_position); + } + #endif + offset_vec.apply_rotation(plan_bed_level_matrix.transpose(plan_bed_level_matrix)); + current_position[X_AXIS] += offset_vec.x; current_position[Y_AXIS] += offset_vec.y; current_position[Z_AXIS] += offset_vec.z; + + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) { + offset_vec.debug("offset_vec (AFTER)"); + DEBUG_POS("AFTER rotation", current_position); + SERIAL_ECHOLNPGM("<<< gcode_T"); + } + #endif + #else // !AUTO_BED_LEVELING_FEATURE // Offset extruder (only by XY) for (int i=X_AXIS; i<=Y_AXIS; i++) From 178aeb79c886ae898317e01b05202c185cd1a03b Mon Sep 17 00:00:00 2001 From: gralco Date: Tue, 12 Apr 2016 08:40:57 -0600 Subject: [PATCH 051/383] Implementation of M190 bed temp hysteresis --- Marlin/Configuration.h | 6 +++++- Marlin/Marlin_main.cpp | 45 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d0a49aade3..a7aedd8ad5 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -192,11 +192,15 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Actual temperature must be close to target for this long before M109/M190 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d1019b34b3..571e8d2d5b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4389,20 +4389,57 @@ inline void gcode_M109() { // Exit if S, continue if S, R, or R if (no_wait_for_cooling && wants_to_cool) return; + #ifdef TEMP_BED_RESIDENCY_TIME + millis_t residency_start_ms = 0; + // Loop until the temperature has stabilized + #define TEMP_BED_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_BED_RESIDENCY_TIME) * 1000UL)) + #else + // Loop until the temperature is very close target + #define TEMP_BED_CONDITIONS (wants_to_cool ? isCoolingBed() : isHeatingBed()) + #endif //TEMP_BED_RESIDENCY_TIME + cancel_heatup = false; - millis_t next_temp_ms = 0; + millis_t now, next_temp_ms = 0; // Wait for temperature to come close enough do { - millis_t now = millis(); + now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. next_temp_ms = now + 1000UL; print_heaterstates(); - SERIAL_EOL; + #ifdef TEMP_BED_RESIDENCY_TIME + SERIAL_PROTOCOLPGM(" W:"); + if (residency_start_ms) { + long rem = (((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; + SERIAL_PROTOCOLLN(rem); + } + else { + SERIAL_PROTOCOLLNPGM("?"); + } + #else + SERIAL_EOL; + #endif } + idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out - } while (!cancel_heatup && (wants_to_cool ? isCoolingBed() : isHeatingBed())); + + #ifdef TEMP_BED_RESIDENCY_TIME + + float temp_diff = fabs(degBed() - degTargetBed()); + + if (!residency_start_ms) { + // Start the TEMP_BED_RESIDENCY_TIME timer when we reach target temp for the first time. + if (temp_diff < TEMP_BED_WINDOW) residency_start_ms = millis(); + } + else if (temp_diff > TEMP_BED_HYSTERESIS) { + // Restart the timer whenever the temperature falls outside the hysteresis. + residency_start_ms = millis(); + } + + #endif //TEMP_BED_RESIDENCY_TIME + + } while (!cancel_heatup && TEMP_BED_CONDITIONS); LCD_MESSAGEPGM(MSG_BED_DONE); } From edf376ce0d33d6157e9a1be94dfe6c8af15ae7df Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 12 Apr 2016 17:15:10 -0700 Subject: [PATCH 052/383] Fix: gcode_T using non-existent Z offset As noted by @snowzach in #3461 --- Marlin/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d0cdf0a496..8fe7bc211c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6178,10 +6178,10 @@ inline void gcode_T(uint8_t tmp_extruder) { // Offset extruder, make sure to apply the bed level rotation matrix vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder], extruder_offset[Y_AXIS][tmp_extruder], - extruder_offset[Z_AXIS][tmp_extruder]), + 0), act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder], extruder_offset[Y_AXIS][active_extruder], - extruder_offset[Z_AXIS][active_extruder]), + 0), offset_vec = tmp_offset_vec - act_offset_vec; offset_vec.apply_rotation(plan_bed_level_matrix.transpose(plan_bed_level_matrix)); current_position[X_AXIS] += offset_vec.x; From 46881c846c2a13a0e9c2882d171182299921bd90 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 12 Apr 2016 17:16:58 -0700 Subject: [PATCH 053/383] Add comments for extruder offset options --- Marlin/Marlin_main.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 8fe7bc211c..486e0e734f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -322,16 +322,16 @@ static uint8_t target_extruder; // Extruder offsets #if EXTRUDERS > 1 #ifndef EXTRUDER_OFFSET_X - #define EXTRUDER_OFFSET_X { 0 } + #define EXTRUDER_OFFSET_X { 0 } // X offsets for each extruder #endif #ifndef EXTRUDER_OFFSET_Y - #define EXTRUDER_OFFSET_Y { 0 } + #define EXTRUDER_OFFSET_Y { 0 } // Y offsets for each extruder #endif float extruder_offset[][EXTRUDERS] = { EXTRUDER_OFFSET_X, EXTRUDER_OFFSET_Y #if ENABLED(DUAL_X_CARRIAGE) - , { 0 } // supports offsets in XYZ plane + , { 0 } // Z offsets for each extruder #endif }; #endif @@ -5144,7 +5144,12 @@ inline void gcode_M206() { #if EXTRUDERS > 1 /** - * M218 - set hotend offset (in mm), T X Y + * M218 - set hotend offset (in mm) + * + * T + * X + * Y + * Z - Available with DUAL_X_CARRIAGE */ inline void gcode_M218() { if (setTargetedHotend(218)) return; From dc0a3e37be5913b730f8546b961d265d098af9ef Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 12 Apr 2016 18:11:36 -0700 Subject: [PATCH 054/383] Patch conditions for HAS_Z_MIN_PROBE --- Marlin/Conditionals.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 8710c6ef23..1b4accd90a 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -356,7 +356,8 @@ #define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER)) #endif - #define SERVO_LEVELING (ENABLED(AUTO_BED_LEVELING_FEATURE) && defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0) + #define HAS_Z_ENDSTOP_SERVO (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0) + #define SERVO_LEVELING (ENABLED(AUTO_BED_LEVELING_FEATURE) && HAS_Z_ENDSTOP_SERVO) /** * Sled Options @@ -689,7 +690,7 @@ #define HAS_BUZZER (PIN_EXISTS(BEEPER) || defined(LCD_USE_I2C_BUZZER)) - #if defined(NUM_SERVOS) && NUM_SERVOS > 0 + #if HAS_SERVOS #ifndef X_ENDSTOP_SERVO_NR #define X_ENDSTOP_SERVO_NR -1 #endif @@ -699,14 +700,19 @@ #ifndef Z_ENDSTOP_SERVO_NR #define Z_ENDSTOP_SERVO_NR -1 #endif - #if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || Z_ENDSTOP_SERVO_NR >= 0 + #if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || HAS_Z_ENDSTOP_SERVO #define HAS_SERVO_ENDSTOPS true #define SERVO_ENDSTOP_IDS { X_ENDSTOP_SERVO_NR, Y_ENDSTOP_SERVO_NR, Z_ENDSTOP_SERVO_NR } #endif #endif - #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) && \ - ( ENABLED(FIX_MOUNTED_PROBE) || (Z_ENDSTOP_SERVO_NR >= 0) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) ) + #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) \ + && ( \ + ENABLED(FIX_MOUNTED_PROBE) \ + || HAS_Z_ENDSTOP_SERVO \ + || ENABLED(Z_PROBE_ALLEN_KEY) \ + || ENABLED(Z_PROBE_SLED) \ + ) #define HAS_Z_MIN_PROBE #endif From 2ae739464040935be6476f4ee6ff8215401c8bc1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 8 Apr 2016 19:52:40 -0700 Subject: [PATCH 055/383] More fine-grained control of LCD redraw --- Marlin/ultralcd.cpp | 117 +++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 57 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 652a1d4f95..3858e16170 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -249,7 +249,7 @@ static void lcd_status_screen(); #endif //!ENCODER_RATE_MULTIPLIER #define END_MENU() \ if (encoderLine >= _menuItemNr) { encoderPosition = _menuItemNr * (ENCODER_STEPS_PER_MENU_ITEM) - 1; encoderLine = _menuItemNr - 1; }\ - if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; _lineNr = currentMenuViewOffset - 1; _drawLineNr = -1; } \ + if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT; _lineNr = currentMenuViewOffset - 1; _drawLineNr = -1; } \ } } while(0) /** Used variables to keep track of the menu */ @@ -289,14 +289,15 @@ bool ignore_click = false; bool wait_for_unclick; bool defer_return_to_status = false; -enum LCDHandlerAction { - LCD_DRAW_UPDATE_NONE, - LCD_DRAW_UPDATE_CALL_REDRAW, - LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW, - LCD_DRAW_UPDATE_CALL_NO_REDRAW +enum LCDViewAction { + LCDVIEW_NONE, + LCDVIEW_REDRAW_NOW, + LCDVIEW_CALL_REDRAW_NEXT, + LCDVIEW_CLEAR_CALL_REDRAW, + LCDVIEW_CALL_NO_REDRAW }; -uint8_t lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; // Set 1 or 2 when the LCD needs to draw, decrements after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) +uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to draw, decrements after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) // Variables used when editing values. const char* editLabel; @@ -314,7 +315,7 @@ float raw_Ki, raw_Kd; static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const uint32_t encoder = 0) { if (currentMenu != menu) { currentMenu = menu; - lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; #if ENABLED(NEWPANEL) encoderPosition = encoder; if (feedback) lcd_quick_feedback(); @@ -556,7 +557,7 @@ void lcd_set_home_offsets() { if (encoderPosition) { int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; #if ENABLED(COREXY) || ENABLED(COREXZ) #if ENABLED(BABYSTEP_XY) switch(axis) { @@ -894,7 +895,7 @@ void lcd_cooldown() { // if they call st_synchronize or plan_buffer_line. So // while waiting for a move we just ignore new input. if (mbl_wait_for_move) { - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW; + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; return; } @@ -908,7 +909,7 @@ void lcd_cooldown() { if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS); encoderPosition = 0; line_to_current(Z_AXIS); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW; + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; } // Update on first display, then only on updates to Z position @@ -919,7 +920,7 @@ void lcd_cooldown() { // We want subsequent calls, but don't force redraw // Set here so it can be overridden by lcd_return_to_status below - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW; + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; // Click sets the current Z and moves to the next position static bool debounce_click = false; @@ -970,7 +971,7 @@ void lcd_cooldown() { static void _lcd_level_bed_homing_done() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING), NULL); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW; + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; if (LCD_CLICKED) { current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); @@ -987,7 +988,7 @@ void lcd_cooldown() { */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW; + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]) lcd_goto_menu(_lcd_level_bed_homing_done); } @@ -1131,7 +1132,7 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { if (max_software_endstops) NOMORE(current_position[axis], max); encoderPosition = 0; line_to_current(axis); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); if (LCD_CLICKED) lcd_goto_previous_menu(true); @@ -1160,7 +1161,7 @@ static void lcd_move_e( current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; encoderPosition = 0; line_to_current(E_AXIS); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } if (lcdDrawUpdate) { PGM_P pos_label; @@ -1650,7 +1651,7 @@ static void lcd_control_volumetric_menu() { lcd_contrast &= 0x3F; #endif encoderPosition = 0; - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; u8g.setContrast(lcd_contrast); } if (lcdDrawUpdate) { @@ -1791,7 +1792,7 @@ static void lcd_control_volumetric_menu() { static void _menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ lcd_save_previous_menu(); \ \ - lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; \ + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; \ \ editLabel = pstr; \ editValue = ptr; \ @@ -1872,7 +1873,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01); #endif void lcd_quick_feedback() { - lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; next_button_update_ms = millis() + 500; #if ENABLED(LCD_USE_I2C_BUZZER) @@ -2039,24 +2040,24 @@ bool lcd_blink() { * - Act on RepRap World keypad input * - Update the encoder position * - Apply acceleration to the encoder position - * - Set lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW on controller events + * - Set lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT on controller events * - Reset the Info Screen timeout if there's any input * - Update status indicators, if any * * Run the current LCD menu handler callback function: - * - Call the handler only if lcdDrawUpdate != LCD_DRAW_UPDATE_NONE - * - Before calling the handler, LCD_DRAW_UPDATE_CALL_NO_REDRAW => LCD_DRAW_UPDATE_NONE + * - Call the handler only if lcdDrawUpdate != LCDVIEW_NONE + * - Before calling the handler, LCDVIEW_CALL_NO_REDRAW => LCDVIEW_NONE * - Call the menu handler. Menu handlers should do the following: - * - If a value changes, set lcdDrawUpdate to LCD_DRAW_UPDATE_CALL_REDRAW + * - If a value changes, set lcdDrawUpdate to LCDVIEW_REDRAW_NOW * - if (lcdDrawUpdate) { redraw } * - Before exiting the handler set lcdDrawUpdate to: - * - LCD_DRAW_UPDATE_CALL_REDRAW or LCD_DRAW_UPDATE_NONE for no callbacks until the next controller event. - * - LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW to clear screen, LCD_DRAW_UPDATE_CALL_REDRAW on the next loop. - * - LCD_DRAW_UPDATE_CALL_NO_REDRAW for a callback with no forced redraw on the next loop. + * - LCDVIEW_REDRAW_NOW or LCDVIEW_NONE for no callbacks until the next controller event. + * - LCDVIEW_CLEAR_CALL_REDRAW to clear screen and set LCDVIEW_CALL_REDRAW_NEXT. + * - LCDVIEW_CALL_NO_REDRAW for a callback with no forced redraw on the next loop. * - NOTE: For some displays, the menu handler may be called 2 or more times per loop. * * After the menu handler callback runs (or not): - * - Clear the LCD if lcdDrawUpdate == LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW + * - Clear the LCD if lcdDrawUpdate == LCDVIEW_CLEAR_CALL_REDRAW * - Update lcdDrawUpdate for the next loop (i.e., move one state down, usually) * * No worries. This function is only called from the main thread. @@ -2072,7 +2073,7 @@ void lcd_update() { bool sd_status = IS_SD_INSERTED; if (sd_status != lcd_sd_status && lcd_detected()) { - lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; lcd_implementation_init( // to maybe revive the LCD if static electricity killed it. #if ENABLED(LCD_PROGRESS_BAR) currentMenu == lcd_status_screen @@ -2096,6 +2097,12 @@ void lcd_update() { millis_t ms = millis(); if (ELAPSED(ms, next_lcd_update_ms)) { + next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL; + + #if ENABLED(LCD_HAS_STATUS_INDICATORS) + lcd_implementation_update_indicators(); + #endif + #if ENABLED(LCD_HAS_SLOW_BUTTONS) slow_buttons = lcd_implementation_read_slow_buttons(); // buttons which take too long to read in interrupt context #endif @@ -2160,23 +2167,27 @@ void lcd_update() { encoderDiff = 0; } return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS; - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } #endif //ULTIPANEL - if (currentMenu == lcd_status_screen) { - if (!lcd_status_update_delay) { - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; - lcd_status_update_delay = 10; /* redraw the main screen every second. This is easier then trying keep track of all things that change on the screen */ - } - else { - lcd_status_update_delay--; - } - } + // Simply redraw the Info Screen 10 times a second + if (currentMenu == lcd_status_screen && !(++lcd_status_update_delay % 10)) + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; if (lcdDrawUpdate) { - if (lcdDrawUpdate == LCD_DRAW_UPDATE_CALL_NO_REDRAW) lcdDrawUpdate = LCD_DRAW_UPDATE_NONE; + switch (lcdDrawUpdate) { + case LCDVIEW_CALL_NO_REDRAW: + lcdDrawUpdate = LCDVIEW_NONE; + break; + case LCDVIEW_CLEAR_CALL_REDRAW: // set by handlers, then altered after (rarely occurs here) + case LCDVIEW_CALL_REDRAW_NEXT: // set by handlers, then altered after (never occurs here?) + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; + case LCDVIEW_REDRAW_NOW: // set above, or by a handler through LCDVIEW_CALL_REDRAW_NEXT + case LCDVIEW_NONE: + break; + } #if ENABLED(DOGLCD) // Changes due to different driver architecture of the DOGM display bool blink = lcd_blink(); @@ -2194,37 +2205,29 @@ void lcd_update() { #endif } - #if ENABLED(LCD_HAS_STATUS_INDICATORS) - lcd_implementation_update_indicators(); - #endif - #if ENABLED(ULTIPANEL) // Return to Status Screen after a timeout - if (defer_return_to_status) + if (currentMenu == lcd_status_screen || defer_return_to_status) return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS; - else if (currentMenu != lcd_status_screen && ms > return_to_status_ms) { + else if (ELAPSED(ms, return_to_status_ms)) lcd_return_to_status(); - } #endif // ULTIPANEL switch (lcdDrawUpdate) { - case LCD_DRAW_UPDATE_NONE: - // do nothing - case LCD_DRAW_UPDATE_CALL_NO_REDRAW: - // changes to LCD_DRAW_UPDATE_NONE before call - break; - case LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW: + case LCDVIEW_CLEAR_CALL_REDRAW: lcd_implementation_clear(); - lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; + case LCDVIEW_CALL_REDRAW_NEXT: + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; break; - case LCD_DRAW_UPDATE_CALL_REDRAW: - lcdDrawUpdate = LCD_DRAW_UPDATE_NONE; + case LCDVIEW_REDRAW_NOW: + lcdDrawUpdate = LCDVIEW_NONE; + break; + case LCDVIEW_NONE: break; } - next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL; } } @@ -2244,7 +2247,7 @@ void lcd_finishstatus(bool persist=false) { expire_status_ms = persist ? 0 : progress_bar_ms + PROGRESS_MSG_EXPIRE; #endif #endif - lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; #if ENABLED(FILAMENT_LCD_DISPLAY) previous_lcd_status_ms = millis(); //get status message to show up for a while From a781a6f955b687c9a43d9cbd8b16fbe9ffd69dcb Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 12 Apr 2016 20:58:27 -0700 Subject: [PATCH 056/383] Apply esenapaj 3479 and delta/scara position bugfix --- Marlin/Marlin_main.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 944151e901..fa280bb860 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -485,6 +485,20 @@ void serial_echopair_P(const char* s_P, unsigned long v) { serialprintPGM(s_P); void gcode_M114(); +#if ENABLED(DEBUG_LEVELING_FEATURE) + void print_xyz(const char* prefix, const float x, const float y, const float z) { + SERIAL_ECHO(prefix); + SERIAL_ECHOPAIR(": (", x); + SERIAL_ECHOPAIR(", ", y); + SERIAL_ECHOPAIR(", ", z); + SERIAL_ECHOLNPGM(")"); + } + void print_xyz(const char* prefix, const float xyz[]) { + print_xyz(prefix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]); + } + #define DEBUG_POS(PREFIX,VAR) do{ SERIAL_ECHOPGM(PREFIX); print_xyz(" > " STRINGIFY(VAR), VAR); }while(0) +#endif + #if ENABLED(DELTA) || ENABLED(SCARA) inline void sync_plan_position_delta() { #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -715,11 +729,6 @@ void servo_init() { */ void setup() { - #if ENABLED(DELTA) || ENABLED(SCARA) - // Vital to init kinematic equivalent for X0 Y0 Z0 - sync_plan_position_delta(); - #endif - #ifdef DISABLE_JTAG // Disable JTAG on AT90USB chips to free up pins for IO MCUCR = 0x80; @@ -779,6 +788,11 @@ void setup() { tp_init(); // Initialize temperature loop plan_init(); // Initialize planner; + #if ENABLED(DELTA) || ENABLED(SCARA) + // Vital to init kinematic equivalent for X0 Y0 Z0 + sync_plan_position_delta(); + #endif + #if ENABLED(USE_WATCHDOG) watchdog_init(); #endif @@ -1176,20 +1190,6 @@ XYZ_CONSTS_FROM_CONFIG(signed char, home_dir, HOME_DIR); #endif //DUAL_X_CARRIAGE -#if ENABLED(DEBUG_LEVELING_FEATURE) - void print_xyz(const char* prefix, const float x, const float y, const float z) { - SERIAL_ECHO(prefix); - SERIAL_ECHOPAIR(": (", x); - SERIAL_ECHOPAIR(", ", y); - SERIAL_ECHOPAIR(", ", z); - SERIAL_ECHOLNPGM(")"); - } - void print_xyz(const char* prefix, const float xyz[]) { - print_xyz(prefix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]); - } - #define DEBUG_POS(PREFIX,VAR) do{ SERIAL_ECHOPGM(PREFIX); print_xyz(" > " STRINGIFY(VAR), VAR); }while(0) -#endif - static void set_axis_is_at_home(AxisEnum axis) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { From 5fd20ecac3725f84bf8f312479b7d1526a5b52d5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 02:33:22 -0700 Subject: [PATCH 057/383] Comments on some movement functions --- Marlin/Marlin_main.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index fa280bb860..cd41e50f17 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1303,18 +1303,33 @@ inline void set_homing_bump_feedrate(AxisEnum axis) { } feedrate = homing_feedrate[axis] / hbd; } +// +// line_to_current_position +// Move the planner to the current position from wherever it last moved +// (or from wherever it has been told it is located). +// inline void line_to_current_position() { plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder); } inline void line_to_z(float zPosition) { plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate / 60, active_extruder); } +// +// line_to_destination +// Move the planner, not necessarily synced with current_position +// inline void line_to_destination(float mm_m) { plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder); } inline void line_to_destination() { line_to_destination(feedrate); } +/** + * sync_plan_position + * Set planner / stepper positions to the cartesian current_position. + * The stepper code translates these coordinates into step units. + * Allows translation between steps and units (mm) for cartesian & core robots + */ inline void sync_plan_position() { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position); From cfcd3d7b3eb8ebf987b926f659450c104e4ca858 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 02:33:53 -0700 Subject: [PATCH 058/383] Rename z_offset local to zoffset --- Marlin/Marlin_main.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index cd41e50f17..d169d35314 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3131,8 +3131,8 @@ inline void gcode_G28() { #if ENABLED(DELTA) delta_grid_spacing[0] = xGridSpacing; delta_grid_spacing[1] = yGridSpacing; - float z_offset = zprobe_zoffset; - if (code_seen(axis_codes[Z_AXIS])) z_offset += code_value(); + float zoffset = zprobe_zoffset; + if (code_seen(axis_codes[Z_AXIS])) zoffset += code_value(); #else // !DELTA /** * solve the plane equation ax + by + d = z @@ -3222,7 +3222,7 @@ inline void gcode_G28() { eqnAMatrix[probePointCounter + 2 * abl2] = 1; indexIntoAB[xCount][yCount] = probePointCounter; #else - bed_level[xCount][yCount] = measured_z + z_offset; + bed_level[xCount][yCount] = measured_z + zoffset; #endif probePointCounter++; From 2eb1b102f8480ea17e84146fe9b3b20af6d68bb7 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Sun, 27 Mar 2016 08:32:31 +0900 Subject: [PATCH 059/383] Support for "mechanical probe" with Allen Key as a special case --- Marlin/Conditionals.h | 8 ++++++++ Marlin/Configuration.h | 4 ++++ Marlin/Marlin_main.cpp | 6 +++--- Marlin/SanityCheck.h | 12 ++++++------ Marlin/example_configurations/Felix/Configuration.h | 4 ++++ .../Felix/Configuration_DUAL.h | 4 ++++ .../example_configurations/Hephestos/Configuration.h | 4 ++++ .../Hephestos_2/Configuration.h | 4 ++++ Marlin/example_configurations/K8200/Configuration.h | 4 ++++ .../RepRapWorld/Megatronics/Configuration.h | 4 ++++ .../example_configurations/RigidBot/Configuration.h | 4 ++++ Marlin/example_configurations/SCARA/Configuration.h | 4 ++++ Marlin/example_configurations/TAZ4/Configuration.h | 4 ++++ Marlin/example_configurations/WITBOX/Configuration.h | 4 ++++ .../adafruit/ST7565/Configuration.h | 4 ++++ .../delta/biv2.5/Configuration.h | 6 +++++- .../delta/generic/Configuration.h | 6 +++++- .../delta/kossel_mini/Configuration.h | 6 +++++- .../delta/kossel_pro/Configuration.h | 6 +++++- .../delta/kossel_xl/Configuration.h | 4 ++++ .../example_configurations/makibox/Configuration.h | 4 ++++ .../tvrrug/Round2/Configuration.h | 4 ++++ 22 files changed, 97 insertions(+), 13 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 1b4accd90a..b5b7c5e6ca 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -366,6 +366,13 @@ #define Z_SAFE_HOMING #endif + /** + * Enable MECHANICAL_PROBE for Z_PROBE_ALLEN_KEY, for older configs + */ + #if ENABLED(Z_PROBE_ALLEN_KEY) + #define MECHANICAL_PROBE + #endif + /** * Avoid double-negatives for enabling features */ @@ -709,6 +716,7 @@ #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) \ && ( \ ENABLED(FIX_MOUNTED_PROBE) \ + || ENABLED(MECHANICAL_PROBE) \ || HAS_Z_ENDSTOP_SERVO \ || ENABLED(Z_PROBE_ALLEN_KEY) \ || ENABLED(Z_PROBE_SLED) \ diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d0a49aade3..a5d63765f3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -626,6 +626,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index fa280bb860..5539034e4d 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1763,7 +1763,7 @@ static void setup_for_endstop_move() { #endif // Z_PROBE_ALLEN_KEY #if ENABLED(FIX_MOUNTED_PROBE) - // Noting to be done. Just set z_probe_is_active + // Nothing to do here. Just clear z_probe_is_active #endif z_probe_is_active = false; @@ -3097,7 +3097,7 @@ inline void gcode_G28() { #if ENABLED(Z_PROBE_SLED) dock_sled(false); // engage (un-dock) the Z probe - #elif ENABLED(Z_PROBE_ALLEN_KEY) || (ENABLED(DELTA) && SERVO_LEVELING) + #elif ENABLED(MECHANICAL_PROBE) || (ENABLED(DELTA) && SERVO_LEVELING) deploy_z_probe(); #endif @@ -3357,7 +3357,7 @@ inline void gcode_G28() { #if ENABLED(Z_PROBE_ALLEN_KEY) || SERVO_LEVELING stow_z_probe(); #elif Z_RAISE_AFTER_PROBING > 0 - raise_z_after_probing(); // ??? + raise_z_after_probing(); // for non Allen Key probes, such as simple mechanical probe #endif #else // !DELTA if (verbose_level > 0) diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 901da3b599..6f4927877a 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -172,23 +172,23 @@ /** * A probe needs a pin */ -#if (!((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE )) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED)) +#if (!((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE )) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) #error A probe needs a pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] #endif -#if ((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) && HAS_Z_PROBE) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED)) +#if ((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) && HAS_Z_PROBE) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) #error A probe should not be connected to more then one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] #endif /** * Require one kind of probe */ -#if ENABLED(AUTO_BED_LEVELING_FEATURE) && !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED)) - #error For AUTO_BED_LEVELING_FEATURE define one kind of probe! {Servo | Z_PROBE_ALLEN_KEY | Z_PROBE_SLED | FIX_MOUNTED_PROBE] +#if ENABLED(AUTO_BED_LEVELING_FEATURE) && !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) + #error For AUTO_BED_LEVELING_FEATURE define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] #endif -#if ENABLED(Z_SAFE_HOMING)&& !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED)) - #error For Z_SAFE_HOMING define one kind of probe! {Servo | Z_PROBE_ALLEN_KEY | Z_PROBE_SLED | FIX_MOUNTED_PROBE] +#if ENABLED(Z_SAFE_HOMING)&& !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) + #error For Z_SAFE_HOMING define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] #endif // To do: Fail with more then one probe defined diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 2da7f04f6d..93550a6c16 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -608,6 +608,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 60697ed0e8..fce432bcdf 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -605,6 +605,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 9e0af0a329..367276f03a 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -618,6 +618,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index a1a89e3715..d2c113add2 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -620,6 +620,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 74c5531772..535659f18e 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -643,6 +643,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 553c07afa5..eed2709e76 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -626,6 +626,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 733b377cd4..f1865aaf62 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -620,6 +620,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 40e20cfd78..5443ee9d44 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -634,6 +634,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 38e7e20cf2..7c59e7f866 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -647,6 +647,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index fd3fa38d09..f29f45b554 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -618,6 +618,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 052008aa58..7745ddf799 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -626,6 +626,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index ce1bbf5cc3..0f4bb13b7d 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -665,7 +665,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. - // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + + // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. //#define Z_PROBE_ALLEN_KEY diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index bc323fd5a5..63eeea25be 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -665,7 +665,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. - // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + + // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. //#define Z_PROBE_ALLEN_KEY diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index fbaa538e96..627a2a2839 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -665,7 +665,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. - // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + + // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. #define Z_PROBE_ALLEN_KEY diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index aedcf72af2..64cc6057ec 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -656,7 +656,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. - // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + + // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. #define Z_PROBE_ALLEN_KEY diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index cba52bf4af..d9675b28d3 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -658,6 +658,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 301c7d9b6f..f402ed61cd 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -629,6 +629,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index f162ff7b60..7c791ac1c6 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -616,6 +616,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + // A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment + // For example any setup that uses the nozzle itself as a probe. + //#define MECHANICAL_PROBE + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! From 7eb476597f42052a78357b89728c5f1c0b88a307 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 20:34:01 -0700 Subject: [PATCH 060/383] Update some comments in Configuration.h --- Marlin/Configuration.h | 11 ++++++----- Marlin/example_configurations/Felix/Configuration.h | 11 ++++++----- .../example_configurations/Felix/Configuration_DUAL.h | 11 ++++++----- .../example_configurations/Hephestos/Configuration.h | 11 ++++++----- .../Hephestos_2/Configuration.h | 11 ++++++----- Marlin/example_configurations/K8200/Configuration.h | 11 ++++++----- .../RepRapWorld/Megatronics/Configuration.h | 11 ++++++----- .../example_configurations/RigidBot/Configuration.h | 11 ++++++----- Marlin/example_configurations/SCARA/Configuration.h | 11 ++++++----- Marlin/example_configurations/TAZ4/Configuration.h | 11 ++++++----- Marlin/example_configurations/WITBOX/Configuration.h | 11 ++++++----- .../adafruit/ST7565/Configuration.h | 11 ++++++----- .../delta/biv2.5/Configuration.h | 11 ++++++----- .../delta/generic/Configuration.h | 11 ++++++----- .../delta/kossel_mini/Configuration.h | 11 ++++++----- .../delta/kossel_pro/Configuration.h | 5 +++-- .../delta/kossel_xl/Configuration.h | 11 ++++++----- Marlin/example_configurations/makibox/Configuration.h | 11 ++++++----- .../tvrrug/Round2/Configuration.h | 11 ++++++----- 19 files changed, 111 insertions(+), 92 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d0a49aade3..50600f1043 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -598,9 +598,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -612,7 +612,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -623,7 +623,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 2da7f04f6d..7d835075e5 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -580,9 +580,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -594,7 +594,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -605,7 +605,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 60697ed0e8..e044442b12 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -577,9 +577,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -591,7 +591,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -602,7 +602,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 9e0af0a329..24bec6d276 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -590,9 +590,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -604,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -615,7 +615,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index a1a89e3715..8fdae8a5fb 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -592,9 +592,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 34 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER 15 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 34 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER 15 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -606,7 +606,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -617,7 +617,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 74c5531772..9046174ce6 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -615,9 +615,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -629,7 +629,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -640,7 +640,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 553c07afa5..5e475df6eb 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -598,9 +598,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -612,7 +612,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -623,7 +623,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 733b377cd4..c3de4fb62c 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -592,9 +592,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -606,7 +606,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -617,7 +617,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 40e20cfd78..33566854ae 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -606,9 +606,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -620,7 +620,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -631,7 +631,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 38e7e20cf2..a1f4740042 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -619,9 +619,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -633,7 +633,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -644,7 +644,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index fd3fa38d09..090f3bb39e 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -590,9 +590,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -604,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -615,7 +615,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 052008aa58..4d77bbab75 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -598,9 +598,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -612,7 +612,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -623,7 +623,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index ce1bbf5cc3..f0c47e4837 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -637,9 +637,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. @@ -651,7 +651,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -662,7 +662,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index bc323fd5a5..596e6f4a72 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -637,9 +637,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. @@ -651,7 +651,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -662,7 +662,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index fbaa538e96..f355298c4e 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -637,9 +637,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. @@ -651,7 +651,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -662,7 +662,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index aedcf72af2..a0bebab57c 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -642,7 +642,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -653,7 +653,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // Allen key retractable Z probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index cba52bf4af..3bf7ca3b46 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -629,9 +629,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 0.0 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER 0.0 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.3 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER 0.0 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER 0.0 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.3 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 7000 // X and Y axis travel speed between probes, in mm/min. @@ -644,7 +644,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -655,7 +655,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 301c7d9b6f..653d1fedee 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -601,9 +601,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -615,7 +615,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -626,7 +626,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index f162ff7b60..858d306323 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -588,9 +588,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left [of the nozzle] +right - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front [of the nozzle] +behind - #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below [the nozzle] (always negative!) + #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -602,7 +602,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used - // and deactivated after the use. + // and deactivated after their use. // Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER @@ -613,7 +613,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // An Allen Key Probe is currently predefined only in the delta example configurations. - //#define Z_PROBE_SLED // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + // Enable if you have a Z probe mounted on a sled like those designed by Charles Bell. + //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, From 69c00aea4cd82bd8222cee7806e4816fb8a313a0 Mon Sep 17 00:00:00 2001 From: gralco Date: Thu, 14 Apr 2016 08:03:38 -0600 Subject: [PATCH 061/383] Include bed hysteresis setting in the example configs --- Marlin/Configuration.h | 3 ++- Marlin/example_configurations/Felix/Configuration.h | 7 ++++++- Marlin/example_configurations/Felix/Configuration_DUAL.h | 7 ++++++- Marlin/example_configurations/Hephestos/Configuration.h | 7 ++++++- Marlin/example_configurations/Hephestos_2/Configuration.h | 7 ++++++- Marlin/example_configurations/K8200/Configuration.h | 7 ++++++- .../RepRapWorld/Megatronics/Configuration.h | 7 ++++++- Marlin/example_configurations/RigidBot/Configuration.h | 7 ++++++- Marlin/example_configurations/SCARA/Configuration.h | 7 ++++++- Marlin/example_configurations/TAZ4/Configuration.h | 7 ++++++- Marlin/example_configurations/WITBOX/Configuration.h | 7 ++++++- .../example_configurations/adafruit/ST7565/Configuration.h | 7 ++++++- Marlin/example_configurations/delta/biv2.5/Configuration.h | 7 ++++++- .../example_configurations/delta/generic/Configuration.h | 7 ++++++- .../delta/kossel_mini/Configuration.h | 7 ++++++- .../delta/kossel_pro/Configuration.h | 7 ++++++- .../example_configurations/delta/kossel_xl/Configuration.h | 7 ++++++- Marlin/example_configurations/makibox/Configuration.h | 7 ++++++- .../example_configurations/tvrrug/Round2/Configuration.h | 7 ++++++- 19 files changed, 110 insertions(+), 19 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a7aedd8ad5..ae79d55be3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -192,11 +192,12 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109/M190 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success #define TEMP_BED_RESIDENCY_TIME 10 // (seconds) #define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 2da7f04f6d..5ffd8381b5 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 15 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 60697ed0e8..854cd0fb4b 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 15 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 9e0af0a329..30c3354f12 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -195,11 +195,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index a1a89e3715..1344581d5e 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 74c5531772..2ac7ba4ac5 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -199,11 +199,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 553c07afa5..f8077d047b 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 733b377cd4..0c30cebf13 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT //#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 40e20cfd78..fb45902ecc 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -217,11 +217,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 3 // (seconds) #define TEMP_HYSTERESIS 2 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 38e7e20cf2..76f36cd77a 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index fd3fa38d09..a412e9a054 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -195,11 +195,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 052008aa58..e34cbc7c09 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index ce1bbf5cc3..525dc164b2 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index bc323fd5a5..4bc410bb4b 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index fbaa538e96..c802b44ffd 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 5 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index aedcf72af2..4f5f6e186c 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -198,11 +198,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index cba52bf4af..c00c5e5dd1 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -215,11 +215,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 301c7d9b6f..d7397edf67 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index f162ff7b60..71d54fcdd0 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -192,11 +192,16 @@ //#define TEMP_SENSOR_1_AS_REDUNDANT #define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 -// Actual temperature must be close to target for this long before M109 returns success +// Extruder temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 10 // (seconds) #define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one #define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 0 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + // The minimal temperature defines the temperature below which the heater will not be enabled It is used // to check that the wiring to the thermistor is not broken. // Otherwise this would lead to the heater being powered on all the time. From 9a3f6767095e22223b0d773b76565959be8064a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 14 Apr 2016 16:20:17 +0100 Subject: [PATCH 062/383] Throw an error if ENCODER_PULSES_PER_STEP < -1 --- Marlin/SanityCheck.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 901da3b599..38aec0e3c4 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -290,6 +290,10 @@ #error ULTIPANEL requires some kind of encoder. #endif +#if ENCODER_PULSES_PER_STEP < 0 + #error ENCODER_PULSES_PER_STEP should not be negative, use REVERSE_MENU_DIRECTION instead +#endif + /** * Delta has limited bed leveling options */ From fda8f96f00d3e0d5da86c779de858e6467a1231b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 23:40:21 -0700 Subject: [PATCH 063/383] Fix bug in lcd_preheat_pla0123 and lcd_preheat_abs0123 Trying to preheat a non-existent extruder causes a crash. --- Marlin/ultralcd.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 3858e16170..053c8f2e1d 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -789,16 +789,20 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa #endif void lcd_preheat_pla0123() { - setTargetHotend0(plaPreheatHotendTemp); - setTargetHotend1(plaPreheatHotendTemp); - setTargetHotend2(plaPreheatHotendTemp); - _lcd_preheat(3, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); + #if EXTRUDERS > 1 + setTargetHotend0(plaPreheatHotendTemp); + setTargetHotend1(plaPreheatHotendTemp); + setTargetHotend2(plaPreheatHotendTemp); + #endif + _lcd_preheat(EXTRUDERS - 1, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); } void lcd_preheat_abs0123() { - setTargetHotend0(absPreheatHotendTemp); - setTargetHotend1(absPreheatHotendTemp); - setTargetHotend2(absPreheatHotendTemp); - _lcd_preheat(3, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); + #if EXTRUDERS > 1 + setTargetHotend0(absPreheatHotendTemp); + setTargetHotend1(absPreheatHotendTemp); + setTargetHotend2(absPreheatHotendTemp); + #endif + _lcd_preheat(EXTRUDERS - 1, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); } #endif // EXTRUDERS > 1 From de8c0baf8b103ea6c28b00fe4e0261d72eb4bfa5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 20:34:01 -0700 Subject: [PATCH 064/383] Update some comments in Configuration.h --- Marlin/Configuration.h | 2 +- Marlin/example_configurations/Felix/Configuration.h | 2 +- Marlin/example_configurations/Felix/Configuration_DUAL.h | 2 +- Marlin/example_configurations/Hephestos/Configuration.h | 2 +- Marlin/example_configurations/Hephestos_2/Configuration.h | 2 +- Marlin/example_configurations/K8200/Configuration.h | 2 +- .../RepRapWorld/Megatronics/Configuration.h | 2 +- Marlin/example_configurations/RigidBot/Configuration.h | 2 +- Marlin/example_configurations/SCARA/Configuration.h | 2 +- Marlin/example_configurations/TAZ4/Configuration.h | 2 +- Marlin/example_configurations/WITBOX/Configuration.h | 2 +- Marlin/example_configurations/adafruit/ST7565/Configuration.h | 2 +- Marlin/example_configurations/delta/biv2.5/Configuration.h | 2 +- Marlin/example_configurations/delta/generic/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_mini/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_pro/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_xl/Configuration.h | 2 +- Marlin/example_configurations/makibox/Configuration.h | 2 +- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index eb4c5af5ed..b5af01cc7e 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -775,7 +775,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 763bed2163..f4e8e8d703 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -758,7 +758,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index cfa4d638bf..92a9a2818f 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -755,7 +755,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 85a8e3a17a..18cb8bd3bc 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -767,7 +767,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 1f4ed19cf2..f735740dd6 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -769,7 +769,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index a4c841428c..8ec46cf080 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -792,7 +792,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu #define ULTIMAKERCONTROLLER // K8200: for Display VM8201 // as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index eeae0bde37..68a1d84421 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -775,7 +775,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 524e0a7107..59b95b57c4 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -770,7 +770,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 0e7dc097fc..e9232b6d72 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -783,7 +783,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index c58bd7f8c8..c6111c24fe 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -796,7 +796,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index a1fbec4511..51269eb1b7 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -767,7 +767,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 5502400624..34e86be9c9 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -775,7 +775,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 9d7e62a890..37a82b5c35 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -897,7 +897,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index ce603a6903..093f8b869c 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -897,7 +897,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index d3cc727b81..59d9384699 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -901,7 +901,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 69d7572dc9..b0a245ff96 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -894,7 +894,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 75248fbf39..c7947f90e2 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -811,7 +811,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index fe797af160..bcb7ab038f 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -778,7 +778,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 4b7ff44e9c..d7d9cb95a0 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -769,7 +769,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu //#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. //#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with his own frequency. +//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click //#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click // 0 to disable buzzer feedback. Test with M300 S P From 5cfb2533d67907748d57461b7571df132bf8503e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 3 Apr 2016 20:49:18 -0700 Subject: [PATCH 065/383] Initial cleaning up of arc code --- Marlin/Marlin_main.cpp | 51 +++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 09c4b7747b..1b7faa2a82 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -7284,26 +7284,26 @@ void plan_arc( ) { float radius = hypot(offset[X_AXIS], offset[Y_AXIS]), - center_axis0 = current_position[X_AXIS] + offset[X_AXIS], - center_axis1 = current_position[Y_AXIS] + offset[Y_AXIS], + center_X = current_position[X_AXIS] + offset[X_AXIS], + center_Y = current_position[Y_AXIS] + offset[Y_AXIS], linear_travel = target[Z_AXIS] - current_position[Z_AXIS], extruder_travel = target[E_AXIS] - current_position[E_AXIS], - r_axis0 = -offset[X_AXIS], // Radius vector from center to current location - r_axis1 = -offset[Y_AXIS], - rt_axis0 = target[X_AXIS] - center_axis0, - rt_axis1 = target[Y_AXIS] - center_axis1; + r_X = -offset[X_AXIS], // Radius vector from center to current location + r_Y = -offset[Y_AXIS], + rt_X = target[X_AXIS] - center_X, + rt_Y = target[Y_AXIS] - center_Y; // CCW angle of rotation between position and target from the circle center. Only one atan2() trig computation required. - float angular_travel = atan2(r_axis0 * rt_axis1 - r_axis1 * rt_axis0, r_axis0 * rt_axis0 + r_axis1 * rt_axis1); - if (angular_travel < 0) angular_travel += RADIANS(360); - if (clockwise) angular_travel -= RADIANS(360); + float angular_travel = atan2(r_X * rt_Y - r_Y * rt_X, r_X * rt_X + r_Y * rt_Y); + if (angular_travel < 0) angular_travel += RADIANS(360); + if (clockwise) angular_travel -= RADIANS(360); // Make a circle if the angular rotation is 0 - if (current_position[X_AXIS] == target[X_AXIS] && current_position[Y_AXIS] == target[Y_AXIS] && angular_travel == 0) - angular_travel += RADIANS(360); + if (angular_travel == 0 && current_position[X_AXIS] == target[X_AXIS] && current_position[Y_AXIS] == target[Y_AXIS]) + angular_travel == RADIANS(360); float mm_of_travel = hypot(angular_travel * radius, fabs(linear_travel)); - if (mm_of_travel < 0.001) return; + if (mm_of_travel < 0.001) return; uint16_t segments = floor(mm_of_travel / (MM_PER_ARC_SEGMENT)); if (segments == 0) segments = 1; @@ -7342,9 +7342,7 @@ void plan_arc( float sin_T = theta_per_segment; float arc_target[NUM_AXIS]; - float sin_Ti; - float cos_Ti; - float r_axisi; + float sin_Ti, cos_Ti, r_new_Y; uint16_t i; int8_t count = 0; @@ -7356,28 +7354,29 @@ void plan_arc( float feed_rate = feedrate * feedrate_multiplier / 60 / 100.0; - for (i = 1; i < segments; i++) { // Increment (segments-1) + for (i = 1; i < segments; i++) { // Iterate (segments-1) times - if (count < N_ARC_CORRECTION) { - // Apply vector rotation matrix to previous r_axis0 / 1 - r_axisi = r_axis0 * sin_T + r_axis1 * cos_T; - r_axis0 = r_axis0 * cos_T - r_axis1 * sin_T; - r_axis1 = r_axisi; - count++; + if (++count < N_ARC_CORRECTION) { + // Apply vector rotation matrix to previous r_X / 1 + r_new_Y = r_X * sin_T + r_Y * cos_T; + r_X = r_X * cos_T - r_Y * sin_T; + r_Y = r_new_Y; } else { // Arc correction to radius vector. Computed only every N_ARC_CORRECTION increments. // Compute exact location by applying transformation matrix from initial radius vector(=-offset). + // To reduce stuttering, the sin and cos could be computed at different times. + // For now, compute both at the same time. cos_Ti = cos(i * theta_per_segment); sin_Ti = sin(i * theta_per_segment); - r_axis0 = -offset[X_AXIS] * cos_Ti + offset[Y_AXIS] * sin_Ti; - r_axis1 = -offset[X_AXIS] * sin_Ti - offset[Y_AXIS] * cos_Ti; + r_X = -offset[X_AXIS] * cos_Ti + offset[Y_AXIS] * sin_Ti; + r_Y = -offset[X_AXIS] * sin_Ti - offset[Y_AXIS] * cos_Ti; count = 0; } // Update arc_target location - arc_target[X_AXIS] = center_axis0 + r_axis0; - arc_target[Y_AXIS] = center_axis1 + r_axis1; + arc_target[X_AXIS] = center_X + r_X; + arc_target[Y_AXIS] = center_Y + r_Y; arc_target[Z_AXIS] += linear_per_segment; arc_target[E_AXIS] += extruder_per_segment; From 8e5099fa0c3b35dea76941ff2de1fce08a6372c3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 24 Mar 2016 03:55:18 -0700 Subject: [PATCH 066/383] Update software endstop positions with M206, M428, G92, etc. --- Marlin/Marlin_main.cpp | 81 ++++++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 23 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 09c4b7747b..7ec2676875 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -283,6 +283,8 @@ int extruder_multiplier[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(100); bool volumetric_enabled = false; float filament_size[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_NOMINAL_FILAMENT_DIA); float volumetric_multiplier[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(1.0); + +float position_shift[3] = { 0 }; float home_offset[3] = { 0 }; float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; @@ -1190,6 +1192,45 @@ XYZ_CONSTS_FROM_CONFIG(signed char, home_dir, HOME_DIR); #endif //DUAL_X_CARRIAGE +/** + * Software endstops can be used to monitor the open end of + * an axis that has a hardware endstop on the other end. Or + * they can prevent axes from moving past endstops and grinding. + * + * To keep doing their job as the coordinate system changes, + * the software endstop positions must be refreshed to remain + * at the same positions relative to the machine. + */ +static void update_software_endstops(AxisEnum axis) { + float offs = home_offset[axis] + position_shift[axis]; + #if ENABLED(DUAL_X_CARRIAGE) + if (axis == X_AXIS) { + float dual_max_x = max(extruder_offset[X_AXIS][1], X2_MAX_POS); + if (active_extruder != 0) { + min_pos[X_AXIS] = X2_MIN_POS + offs; + max_pos[X_AXIS] = dual_max_x + offs; + return; + } + else if (dual_x_carriage_mode == DXC_DUPLICATION_MODE) { + min_pos[X_AXIS] = base_min_pos(X_AXIS) + offs; + max_pos[X_AXIS] = min(base_max_pos(X_AXIS), dual_max_x - duplicate_extruder_x_offset) + offs; + return; + } + } + else + #endif + { + min_pos[axis] = base_min_pos(axis) + offs; + max_pos[axis] = base_max_pos(axis) + offs; + } +} + +static void set_home_offset(AxisEnum axis, float v) { + current_position[axis] += v - home_offset[axis]; + home_offset[axis] = v; + update_software_endstops(axis); +} + static void set_axis_is_at_home(AxisEnum axis) { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -1198,21 +1239,16 @@ static void set_axis_is_at_home(AxisEnum axis) { } #endif + position_shift[axis] = 0; + #if ENABLED(DUAL_X_CARRIAGE) - if (axis == X_AXIS) { - if (active_extruder != 0) { + if (axis == X_AXIS && (active_extruder != 0 || dual_x_carriage_mode == DXC_DUPLICATION_MODE)) { + if (active_extruder != 0) current_position[X_AXIS] = x_home_pos(active_extruder); - min_pos[X_AXIS] = X2_MIN_POS; - max_pos[X_AXIS] = max(extruder_offset[X_AXIS][1], X2_MAX_POS); - return; - } - else if (dual_x_carriage_mode == DXC_DUPLICATION_MODE) { - float xoff = home_offset[X_AXIS]; - current_position[X_AXIS] = base_home_pos(X_AXIS) + xoff; - min_pos[X_AXIS] = base_min_pos(X_AXIS) + xoff; - max_pos[X_AXIS] = min(base_max_pos(X_AXIS) + xoff, max(extruder_offset[X_AXIS][1], X2_MAX_POS) - duplicate_extruder_x_offset); - return; - } + else + current_position[X_AXIS] = base_home_pos(X_AXIS) + home_offset[X_AXIS]; + update_software_endstops(X_AXIS); + return; } #endif @@ -1260,8 +1296,7 @@ static void set_axis_is_at_home(AxisEnum axis) { #endif { current_position[axis] = base_home_pos(axis) + home_offset[axis]; - min_pos[axis] = base_min_pos(axis) + home_offset[axis]; - max_pos[axis] = base_max_pos(axis) + home_offset[axis]; + update_software_endstops(axis); #if ENABLED(AUTO_BED_LEVELING_FEATURE) && Z_HOME_DIR < 0 if (axis == Z_AXIS) { @@ -3531,7 +3566,14 @@ inline void gcode_G92() { bool didXYZ = false; for (int i = 0; i < NUM_AXIS; i++) { if (code_seen(axis_codes[i])) { - float v = current_position[i] = code_value(); + float p = current_position[i], + v = code_value(); + + current_position[i] = v; + + position_shift[i] += v - p; // Offset the coordinate space + update_software_endstops((AxisEnum)i); + if (i == E_AXIS) plan_set_e_position(v); else @@ -5020,13 +5062,6 @@ inline void gcode_M205() { if (code_seen('E')) max_e_jerk = code_value(); } -static void set_home_offset(AxisEnum axis, float v) { - min_pos[axis] = base_min_pos(axis) + v; - max_pos[axis] = base_max_pos(axis) + v; - current_position[axis] += v - home_offset[axis]; - home_offset[axis] = v; -} - /** * M206: Set Additional Homing Offset (X Y Z). SCARA aliases T=X, P=Y */ From b05f448317912d587824e758088450cee5687ee3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 02:32:17 -0700 Subject: [PATCH 067/383] Comments on MBL menu items --- Marlin/ultralcd.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 053c8f2e1d..d2c3daccc9 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -889,9 +889,9 @@ void lcd_cooldown() { static int _lcd_level_bed_position; /** - * MBL Wait for controller movement and clicks: - * - Movement adjusts the Z axis - * - Click saves the Z and goes to the next mesh point + * 5. MBL Wait for controller movement and clicks: + * - Movement adjusts the Z axis + * - Click saves the Z, goes to the next mesh point */ static void _lcd_level_bed_procedure() { static bool mbl_wait_for_move = false; @@ -973,6 +973,10 @@ void lcd_cooldown() { } } + /** + * 4. MBL Display "Click to Begin", wait for click + * Move to the first probe position + */ static void _lcd_level_bed_homing_done() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING), NULL); lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; @@ -988,7 +992,7 @@ void lcd_cooldown() { } /** - * MBL Move to mesh starting point + * 3. MBL Display "Hoing XYZ" - Wait for homing to finish */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); @@ -998,7 +1002,7 @@ void lcd_cooldown() { } /** - * MBL Continue Bed Leveling... + * 2. MBL Continue Bed Leveling... */ static void _lcd_level_bed_continue() { defer_return_to_status = true; @@ -1009,7 +1013,7 @@ void lcd_cooldown() { } /** - * MBL entry-point + * 1. MBL entry-point: "Cancel" or "Level Bed" */ static void lcd_level_bed() { START_MENU(); From 0493fccc0bde14bdd390abcf2b1e59855faed7c7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 01:25:17 -0700 Subject: [PATCH 068/383] mbl.active is a bool now --- Marlin/Marlin_main.cpp | 4 ++-- Marlin/configuration_store.cpp | 2 +- Marlin/mesh_bed_leveling.h | 2 +- Marlin/ultralcd.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 09c4b7747b..4e01b3780b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2465,7 +2465,7 @@ inline void gcode_G28() { */ #if ENABLED(MESH_BED_LEVELING) uint8_t mbl_was_active = mbl.active; - mbl.active = 0; + mbl.active = false; #endif setup_for_endstop_move(); @@ -2896,7 +2896,7 @@ inline void gcode_G28() { // After recording the last point, activate the mbl and home SERIAL_PROTOCOLLNPGM("Mesh probing done."); probe_point = -1; - mbl.active = 1; + mbl.active = true; enqueue_and_echo_commands_P(PSTR("G28")); } break; diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 3f22b2f8c6..7d5a1b4d67 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -551,7 +551,7 @@ void Config_ResetDefault() { home_offset[X_AXIS] = home_offset[Y_AXIS] = home_offset[Z_AXIS] = 0; #if ENABLED(MESH_BED_LEVELING) - mbl.active = 0; + mbl.active = false; #endif #if ENABLED(AUTO_BED_LEVELING_FEATURE) diff --git a/Marlin/mesh_bed_leveling.h b/Marlin/mesh_bed_leveling.h index 1df1c98995..7c1c0225ed 100644 --- a/Marlin/mesh_bed_leveling.h +++ b/Marlin/mesh_bed_leveling.h @@ -29,7 +29,7 @@ class mesh_bed_leveling { public: - uint8_t active; + bool active; float z_offset; float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS]; diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index d2c3daccc9..516292c5bb 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -946,7 +946,7 @@ void lcd_cooldown() { current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; line_to_current(Z_AXIS); st_synchronize(); - mbl.active = 1; + mbl.active = true; enqueue_and_echo_commands_P(PSTR("G28")); } else { From 2129db581e543c7189305d96a07010e4206ae427 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 13 Apr 2016 02:37:41 -0700 Subject: [PATCH 069/383] Simplify MBL movement, zigzag --- Marlin/Marlin_main.cpp | 53 +++++++++++++++++++++++++------------- Marlin/mesh_bed_leveling.h | 12 +++++++++ Marlin/ultralcd.cpp | 48 ++++++++++++++++++++-------------- 3 files changed, 75 insertions(+), 38 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4e01b3780b..3e92612b70 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2799,6 +2799,28 @@ inline void gcode_G28() { enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet, MeshSetZOffset }; + inline void _mbl_goto_xy(float x, float y) { + saved_feedrate = feedrate; + feedrate = homing_feedrate[X_AXIS]; + + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + MIN_Z_HEIGHT_FOR_HOMING; + line_to_current_position(); + #endif + + current_position[X_AXIS] = x + home_offset[X_AXIS]; + current_position[Y_AXIS] = y + home_offset[Y_AXIS]; + line_to_current_position(); + + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + line_to_current_position(); + #endif + + feedrate = saved_feedrate; + st_synchronize(); + } + /** * G29: Mesh-based Z probe, probes a grid and produces a * mesh to compensate for variable bed height @@ -2866,33 +2888,28 @@ inline void gcode_G28() { SERIAL_PROTOCOLLNPGM("Start mesh probing with \"G29 S1\" first."); return; } + // For each G29 S2... if (probe_point == 0) { - // Set Z to a positive value before recording the first Z. - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + home_offset[Z_AXIS]; + // For the intial G29 S2 make Z a positive value (e.g., 4.0) + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; sync_plan_position(); } else { - // For others, save the Z of the previous point, then raise Z again. - ix = (probe_point - 1) % (MESH_NUM_X_POINTS); - iy = (probe_point - 1) / (MESH_NUM_X_POINTS); - if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag - mbl.set_z(ix, iy, current_position[Z_AXIS]); - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + home_offset[Z_AXIS]; - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS] / 60, active_extruder); - st_synchronize(); + // For G29 S2 after adjusting Z. + mbl.set_zigzag_z(probe_point - 1, current_position[Z_AXIS]); } - // Is there another point to sample? Move there. + // If there's another point to sample, move there with optional lift. if (probe_point < (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) { - ix = probe_point % (MESH_NUM_X_POINTS); - iy = probe_point / (MESH_NUM_X_POINTS); - if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // zig-zag - current_position[X_AXIS] = mbl.get_x(ix) + home_offset[X_AXIS]; - current_position[Y_AXIS] = mbl.get_y(iy) + home_offset[Y_AXIS]; - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS] / 60, active_extruder); - st_synchronize(); + mbl.zigzag(probe_point, ix, iy); + _mbl_goto_xy(mbl.get_x(ix), mbl.get_y(iy)); probe_point++; } else { + // One last "return to the bed" (as originally coded) at completion + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + line_to_current_position(); + st_synchronize(); + // After recording the last point, activate the mbl and home SERIAL_PROTOCOLLNPGM("Mesh probing done."); probe_point = -1; diff --git a/Marlin/mesh_bed_leveling.h b/Marlin/mesh_bed_leveling.h index 7c1c0225ed..ce20247a05 100644 --- a/Marlin/mesh_bed_leveling.h +++ b/Marlin/mesh_bed_leveling.h @@ -41,6 +41,18 @@ float get_y(int i) { return MESH_MIN_Y + (MESH_Y_DIST) * i; } void set_z(int ix, int iy, float z) { z_values[iy][ix] = z; } + inline void zigzag(int index, int &ix, int &iy) { + ix = index % (MESH_NUM_X_POINTS); + iy = index / (MESH_NUM_X_POINTS); + if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // Zig zag + } + + void set_zigzag_z(int index, float z) { + int ix, iy; + zigzag(index, ix, iy); + set_z(ix, iy, z); + } + int select_x_index(float x) { int i = 1; while (x > get_x(i) && i < MESH_NUM_X_POINTS - 1) i++; diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 516292c5bb..e34d21b246 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -887,6 +887,28 @@ void lcd_cooldown() { */ static int _lcd_level_bed_position; + static bool mbl_wait_for_move = false; + + // Utility to go to the next mesh point + // A raise is added between points if MIN_Z_HEIGHT_FOR_HOMING is in use + // Note: During Manual Bed Leveling the homed Z position is MESH_HOME_SEARCH_Z + // Z position will be restored with the final action, a G28 + inline void _mbl_goto_xy(float x, float y) { + mbl_wait_for_move = true; + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + current_position[Z_AXIS] += MIN_Z_HEIGHT_FOR_HOMING; + line_to_current(Z_AXIS); + #endif + current_position[X_AXIS] = x + home_offset[X_AXIS]; + current_position[Y_AXIS] = y + home_offset[Y_AXIS]; + line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS); + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + line_to_current(Z_AXIS); + #endif + st_synchronize(); + mbl_wait_for_move = false; + } /** * 5. MBL Wait for controller movement and clicks: @@ -894,7 +916,6 @@ void lcd_cooldown() { * - Click saves the Z, goes to the next mesh point */ static void _lcd_level_bed_procedure() { - static bool mbl_wait_for_move = false; // Menu handlers may be called in a re-entrant fashion // if they call st_synchronize or plan_buffer_line. So // while waiting for a move we just ignore new input. @@ -931,11 +952,7 @@ void lcd_cooldown() { if (LCD_CLICKED) { if (!debounce_click) { debounce_click = true; // ignore multiple "clicks" in a row - int ix = _lcd_level_bed_position % (MESH_NUM_X_POINTS), - iy = _lcd_level_bed_position / (MESH_NUM_X_POINTS); - if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // Zig zag - mbl.set_z(ix, iy, current_position[Z_AXIS]); - _lcd_level_bed_position++; + mbl.set_zigzag_z(_lcd_level_bed_position++, current_position[Z_AXIS]); if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) { lcd_return_to_status(); LCD_ALERTMESSAGEPGM(MSG_LEVEL_BED_DONE); @@ -953,17 +970,9 @@ void lcd_cooldown() { #if ENABLED(NEWPANEL) lcd_quick_feedback(); #endif - mbl_wait_for_move = true; - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; - line_to_current(Z_AXIS); - ix = _lcd_level_bed_position % (MESH_NUM_X_POINTS); - iy = _lcd_level_bed_position / (MESH_NUM_X_POINTS); - if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // Zig zag - current_position[X_AXIS] = mbl.get_x(ix); - current_position[Y_AXIS] = mbl.get_y(iy); - line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS); - st_synchronize(); - mbl_wait_for_move = false; + int ix, iy; + mbl.zigzag(_lcd_level_bed_position, ix, iy); + _mbl_goto_xy(mbl.get_x(ix), mbl.get_y(iy)); encoderPosition = 0; } } @@ -980,12 +989,11 @@ void lcd_cooldown() { static void _lcd_level_bed_homing_done() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING), NULL); lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; + if (mbl_wait_for_move) return; if (LCD_CLICKED) { current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - current_position[X_AXIS] = MESH_MIN_X; - current_position[Y_AXIS] = MESH_MIN_Y; - line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS); + _mbl_goto_xy(MESH_MIN_X, MESH_MIN_Y); _lcd_level_bed_position = 0; lcd_goto_menu(_lcd_level_bed_procedure, true); } From 4fb8013be17d78dd52db0ed4660862d32048c35e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 11 Apr 2016 23:28:20 -0700 Subject: [PATCH 070/383] Reduce redundancy in MENU_ITEM code --- Marlin/ultralcd.cpp | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 053c8f2e1d..b182b08f58 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -199,19 +199,25 @@ static void lcd_status_screen(); * menu_action_setting_edit_int3(PSTR(MSG_SPEED), &feedrate_multiplier, 10, 999) * */ - #define MENU_ITEM(type, label, args...) do { \ + #define _MENU_ITEM_PART_1(type, label, args...) \ if (_menuItemNr == _lineNr) { \ itemSelected = encoderLine == _menuItemNr; \ if (lcdDrawUpdate) \ lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \ if (wasClicked && itemSelected) { \ - lcd_quick_feedback(); \ + lcd_quick_feedback() + + #define _MENU_ITEM_PART_2(type, args...) \ menu_action_ ## type(args); \ return; \ } \ } \ - _menuItemNr++; \ - } while(0) + _menuItemNr++ + + #define MENU_ITEM(type, label, args...) do { \ + _MENU_ITEM_PART_1(type, label, ## args); \ + _MENU_ITEM_PART_2(type, ## args); \ + } while(0) #if ENABLED(ENCODER_RATE_MULTIPLIER) @@ -221,20 +227,12 @@ static void lcd_status_screen(); * MENU_MULTIPLIER_ITEM generates drawing and handling code for a multiplier menu item */ #define MENU_MULTIPLIER_ITEM(type, label, args...) do { \ - if (_menuItemNr == _lineNr) { \ - itemSelected = encoderLine == _menuItemNr; \ - if (lcdDrawUpdate) \ - lcd_implementation_drawmenu_ ## type(itemSelected, _drawLineNr, PSTR(label), ## args); \ - if (wasClicked && itemSelected) { \ - lcd_quick_feedback(); \ - encoderRateMultiplierEnabled = true; \ - lastEncoderMovementMillis = 0; \ - menu_action_ ## type(args); \ - return; \ - } \ - } \ - _menuItemNr++; \ - } while(0) + _MENU_ITEM_PART_1(type, label, ## args); \ + encoderRateMultiplierEnabled = true; \ + lastEncoderMovementMillis = 0; \ + _MENU_ITEM_PART_2(type, ## args); \ + } while(0) + #endif //ENCODER_RATE_MULTIPLIER #define MENU_ITEM_DUMMY() do { _menuItemNr++; } while(0) From b20bf1826db04e1f103d65f646466c050eceaa92 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 14 Apr 2016 00:00:21 -0700 Subject: [PATCH 071/383] Fix debugging of vector_3 --- Marlin/Marlin_main.cpp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 09c4b7747b..cf6e046d35 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -496,6 +496,11 @@ void gcode_M114(); void print_xyz(const char* prefix, const float xyz[]) { print_xyz(prefix, xyz[X_AXIS], xyz[Y_AXIS], xyz[Z_AXIS]); } + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + void print_xyz(const char* prefix, const vector_3 &xyz) { + print_xyz(prefix, xyz.x, xyz.y, xyz.z); + } + #endif #define DEBUG_POS(PREFIX,VAR) do{ SERIAL_ECHOPGM(PREFIX); print_xyz(" > " STRINGIFY(VAR), VAR); }while(0) #endif @@ -1373,6 +1378,11 @@ static void setup_for_endstop_move() { static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { + vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); + plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); + + //plan_bed_level_matrix.debug("bed level before"); + #if ENABLED(DEBUG_LEVELING_FEATURE) plan_bed_level_matrix.set_to_identity(); if (DEBUGGING(LEVELING)) { @@ -1382,17 +1392,8 @@ static void setup_for_endstop_move() { } #endif - vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); - // planeNormal.debug("planeNormal"); - plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); - //bedLevel.debug("bedLevel"); - - //plan_bed_level_matrix.debug("bed level before"); - //vector_3 uncorrected_position = plan_get_position(); - //uncorrected_position.debug("position before"); - vector_3 corrected_position = plan_get_position(); - //corrected_position.debug("position after"); + current_position[X_AXIS] = corrected_position.x; current_position[Y_AXIS] = corrected_position.y; current_position[Z_AXIS] = corrected_position.z; @@ -1426,12 +1427,20 @@ static void setup_for_endstop_move() { plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); vector_3 corrected_position = plan_get_position(); + + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) { + vector_3 uncorrected_position = corrected_position; + DEBUG_POS("set_bed_level_equation_3pts", uncorrected_position); + } + #endif + current_position[X_AXIS] = corrected_position.x; current_position[Y_AXIS] = corrected_position.y; current_position[Z_AXIS] = corrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("set_bed_level_equation_3pts", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("set_bed_level_equation_3pts", corrected_position); #endif sync_plan_position(); From 1cc622b1676323a67424b8b7fb73abaccc8ad78f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 14 Apr 2016 20:06:59 -0700 Subject: [PATCH 072/383] Fix minor spelling in comments --- Marlin/Configuration.h | 2 +- Marlin/SanityCheck.h | 4 ++-- Marlin/example_configurations/Felix/Configuration.h | 2 +- Marlin/example_configurations/Felix/Configuration_DUAL.h | 2 +- Marlin/example_configurations/Hephestos/Configuration.h | 2 +- Marlin/example_configurations/Hephestos_2/Configuration.h | 2 +- Marlin/example_configurations/K8200/Configuration.h | 2 +- .../RepRapWorld/Megatronics/Configuration.h | 2 +- Marlin/example_configurations/RigidBot/Configuration.h | 2 +- Marlin/example_configurations/SCARA/Configuration.h | 2 +- Marlin/example_configurations/TAZ4/Configuration.h | 2 +- Marlin/example_configurations/WITBOX/Configuration.h | 2 +- Marlin/example_configurations/adafruit/ST7565/Configuration.h | 2 +- Marlin/example_configurations/delta/biv2.5/Configuration.h | 2 +- Marlin/example_configurations/delta/generic/Configuration.h | 2 +- .../example_configurations/delta/kossel_mini/Configuration.h | 2 +- .../example_configurations/delta/kossel_pro/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_xl/Configuration.h | 2 +- Marlin/example_configurations/makibox/Configuration.h | 2 +- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 2 +- Marlin/fonts/README.fonts | 2 +- Marlin/language_test.h | 2 +- 22 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index b5af01cc7e..be56f8088f 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 894ac85473..788c61ee7d 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -177,7 +177,7 @@ #endif #if ((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) && HAS_Z_PROBE) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) - #error A probe should not be connected to more then one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] + #error A probe should not be connected to more than one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] #endif /** @@ -191,7 +191,7 @@ #error For Z_SAFE_HOMING define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] #endif -// To do: Fail with more then one probe defined +// To do: Fail with more than one probe defined /** * Auto Bed Leveling diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index f4e8e8d703..894275b4ab 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 92a9a2818f..63183fa0f3 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 18cb8bd3bc..5109d4a5a4 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -239,7 +239,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index f735740dd6..95051ebe24 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 250 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 8ec46cf080..57c2ce44ca 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -243,7 +243,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 68a1d84421..426f1afccb 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 59b95b57c4..bb35818097 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index e9232b6d72..c9462a2081 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -261,7 +261,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 20 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index c6111c24fe..a1ec0f8384 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 16 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 51269eb1b7..b645c0a9d3 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -239,7 +239,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 34e86be9c9..05eb12ebeb 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 37a82b5c35..da5c70437f 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 093f8b869c..5272fb2247 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index 59d9384699..0167a59e54 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index b0a245ff96..0b4cbb408d 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -242,7 +242,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 50 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index c7947f90e2..8f06c1c4b7 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -259,7 +259,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index bcb7ab038f..4c80a42006 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index d7d9cb95a0..30042f36bb 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -236,7 +236,7 @@ //#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2] #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature - // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. #define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term #define K1 0.95 //smoothing factor within the PID diff --git a/Marlin/fonts/README.fonts b/Marlin/fonts/README.fonts index 971275d187..7ae6e4242c 100644 --- a/Marlin/fonts/README.fonts +++ b/Marlin/fonts/README.fonts @@ -4,7 +4,7 @@ Then run make_fonts.bat what calls bdf2u8g.exe with the needed parameters to pro The .h files must be edited to replace '#include "u8g.h"' with '#include ', replace 'U8G_FONT_SECTION' with 'U8G_SECTION', insert '.progmem.' right behind the first '"' and moved to the main directory. How to integrate a new font: -Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixel for a line. To have some space in between the lines we can't use more then 10 pixel height for the symbols. For up to 11 pixel set TALL_FONT_CORRECTION 1 when loading the font. +Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixel for a line. To have some space in between the lines we can't use more than 10 pixel height for the symbols. For up to 11 pixel set TALL_FONT_CORRECTION 1 when loading the font. To fit 22 Symbols on the 128 pixel wide screen, the symbols can't be wider than 5 pixel, for the first 128 symbols. For the second half of the font we now support up to 11x11 pixel. diff --git a/Marlin/language_test.h b/Marlin/language_test.h index 3444ee5029..17ad7bca0c 100644 --- a/Marlin/language_test.h +++ b/Marlin/language_test.h @@ -37,7 +37,7 @@ // a.)For ASCII coded Language_xx.h files like (en) there are no occurrences of symbols above 0x7F so no mapper is needed. // If such a symbol appears it is mapped directly into the font. This is the case for the language files we used until now, with all the STR_XX or // "\xxx" symbols. All Symbols are only one byte long. -// b.) For Unicoded Language_xx.h files (currently ru, de and kana_utf8 ) the non ASCII [0x00-0x7F] symbols are represented by more then one byte. +// b.) For Unicoded Language_xx.h files (currently ru, de and kana_utf8 ) the non ASCII [0x00-0x7F] symbols are represented by more than one byte. // In the case of two bytes the first is pointing to a 'codepage' and the second to a place in the codepage. These codepages contain 64 symbols. // So two of them can be mapped. For most of the European languages the necessary symbols are contained in the pages C2 and C3. Cyrillic uses D0 // and D1. From 8ec8d59df8ad647da81f3edb39866cf508ef4560 Mon Sep 17 00:00:00 2001 From: gralco Date: Fri, 15 Apr 2016 11:20:32 -0600 Subject: [PATCH 073/383] Use #if TEMP_RESIDENCY_TIME > 0 rather than #ifdef TEMP_RESIDENCY_TIME --- Marlin/Marlin_main.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 571e8d2d5b..82729ad65d 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4316,14 +4316,14 @@ inline void gcode_M109() { // Try to calculate a ballpark safe margin by halving EXTRUDE_MINTEMP if (wants_to_cool && degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; - #ifdef TEMP_RESIDENCY_TIME + #if TEMP_RESIDENCY_TIME > 0 millis_t residency_start_ms = 0; // Loop until the temperature has stabilized #define TEMP_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) - #endif //TEMP_RESIDENCY_TIME + #endif //TEMP_RESIDENCY_TIME > 0 cancel_heatup = false; millis_t now, next_temp_ms = 0; @@ -4334,7 +4334,7 @@ inline void gcode_M109() { #if HAS_TEMP_HOTEND || HAS_TEMP_BED print_heaterstates(); #endif - #ifdef TEMP_RESIDENCY_TIME + #if TEMP_RESIDENCY_TIME > 0 SERIAL_PROTOCOLPGM(" W:"); if (residency_start_ms) { long rem = (((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; @@ -4351,7 +4351,7 @@ inline void gcode_M109() { idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out - #ifdef TEMP_RESIDENCY_TIME + #if TEMP_RESIDENCY_TIME > 0 float temp_diff = fabs(degTargetHotend(target_extruder) - degHotend(target_extruder)); @@ -4364,7 +4364,7 @@ inline void gcode_M109() { residency_start_ms = millis(); } - #endif //TEMP_RESIDENCY_TIME + #endif //TEMP_RESIDENCY_TIME > 0 } while (!cancel_heatup && TEMP_CONDITIONS); @@ -4389,14 +4389,14 @@ inline void gcode_M109() { // Exit if S, continue if S, R, or R if (no_wait_for_cooling && wants_to_cool) return; - #ifdef TEMP_BED_RESIDENCY_TIME + #if TEMP_BED_RESIDENCY_TIME > 0 millis_t residency_start_ms = 0; // Loop until the temperature has stabilized #define TEMP_BED_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_BED_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target #define TEMP_BED_CONDITIONS (wants_to_cool ? isCoolingBed() : isHeatingBed()) - #endif //TEMP_BED_RESIDENCY_TIME + #endif //TEMP_BED_RESIDENCY_TIME > 0 cancel_heatup = false; millis_t now, next_temp_ms = 0; @@ -4407,7 +4407,7 @@ inline void gcode_M109() { if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. next_temp_ms = now + 1000UL; print_heaterstates(); - #ifdef TEMP_BED_RESIDENCY_TIME + #if TEMP_BED_RESIDENCY_TIME > 0 SERIAL_PROTOCOLPGM(" W:"); if (residency_start_ms) { long rem = (((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; @@ -4424,7 +4424,7 @@ inline void gcode_M109() { idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out - #ifdef TEMP_BED_RESIDENCY_TIME + #if TEMP_BED_RESIDENCY_TIME > 0 float temp_diff = fabs(degBed() - degTargetBed()); @@ -4437,7 +4437,7 @@ inline void gcode_M109() { residency_start_ms = millis(); } - #endif //TEMP_BED_RESIDENCY_TIME + #endif //TEMP_BED_RESIDENCY_TIME > 0 } while (!cancel_heatup && TEMP_BED_CONDITIONS); LCD_MESSAGEPGM(MSG_BED_DONE); From 5ecd75eeb3a499f45fb5a91a1c96943960124153 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Sat, 16 Apr 2016 07:22:07 +0900 Subject: [PATCH 074/383] Fix for PR #3502(General cleanup of arc code) --- Marlin/Marlin_main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index dbb2c42bcb..37b15a58a5 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -7361,7 +7361,7 @@ void plan_arc( // Make a circle if the angular rotation is 0 if (angular_travel == 0 && current_position[X_AXIS] == target[X_AXIS] && current_position[Y_AXIS] == target[Y_AXIS]) - angular_travel == RADIANS(360); + angular_travel += RADIANS(360); float mm_of_travel = hypot(angular_travel * radius, fabs(linear_travel)); if (mm_of_travel < 0.001) return; From 86467c24be78c47b740e4cf3e968687c50e6dc3f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 6 Feb 2016 13:57:12 -0800 Subject: [PATCH 075/383] On wider screens show a wider splash page, if possible --- .../ultralcd_implementation_hitachi_HD44780.h | 53 ++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index a0efa4be5a..7c2d762231 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -445,6 +445,13 @@ unsigned lcd_print(char c) { return charset_mapper(c); } } } + inline void logo_lines(const char *extra) { + int indent = (LCD_WIDTH - 8 - lcd_strlen_P(extra)) / 2; + lcd.setCursor(indent, 0); lcd.print('\x00'); lcd_printPGM(PSTR( "------" )); lcd.print('\x01'); + lcd.setCursor(indent, 1); lcd_printPGM(PSTR("|Marlin|")); lcd_printPGM(extra); + lcd.setCursor(indent, 2); lcd.print('\x02'); lcd_printPGM(PSTR( "------" )); lcd.print('\x03'); + } + static void bootscreen() { show_bootscreen = false; byte top_left[8] = { @@ -494,22 +501,44 @@ unsigned lcd_print(char c) { return charset_mapper(c); } lcd.clear(); - #define TEXT_SCREEN_LOGO_SHIFT ((LCD_WIDTH/2) - 4) - lcd.setCursor(TEXT_SCREEN_LOGO_SHIFT, 0); lcd.print('\x00'); lcd_printPGM(PSTR( "------" )); lcd.print('\x01'); - lcd.setCursor(TEXT_SCREEN_LOGO_SHIFT, 1); lcd_printPGM(PSTR("|Marlin|")); - lcd.setCursor(TEXT_SCREEN_LOGO_SHIFT, 2); lcd.print('\x02'); lcd_printPGM(PSTR( "------" )); lcd.print('\x03'); - - delay(2000); + #define LCD_EXTRA_SPACE (LCD_WIDTH-8) #ifdef STRING_SPLASH_LINE1 - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE1), LCD_WIDTH, 1000); + // Combine into a single splash screen if possible + if (LCD_EXTRA_SPACE >= strlen(STRING_SPLASH_LINE1) + 1) { + logo_lines(PSTR(" " STRING_SPLASH_LINE1)); + #ifdef STRING_SPLASH_LINE2 + lcd_erase_line(3); + lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 2000); + #else + delay(2000); + #endif + } + else { + logo_lines(PSTR("")); + lcd_erase_line(3); + lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE1), LCD_WIDTH, 1500); + #ifdef STRING_SPLASH_LINE2 + lcd_erase_line(3); + lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 1500); + #endif + } + #elif defined(STRING_SPLASH_LINE2) + // Combine into a single splash screen if possible + if (LCD_EXTRA_SPACE >= strlen(STRING_SPLASH_LINE2) + 1) { + logo_lines(PSTR(" " STRING_SPLASH_LINE2)); + delay(2000); + } + else { + logo_lines(PSTR("")); + lcd_erase_line(3); + lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 2000); + } + #else + logo_lines(PSTR("")); + delay(2000); #endif - #ifdef STRING_SPLASH_LINE2 - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 1000); - #endif } #endif // SHOW_BOOTSCREEN From e0830bf8f1859088a191d65c2915d344b26c6593 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 15 Apr 2016 18:48:49 -0700 Subject: [PATCH 076/383] Don't use LCD alert unless error or alert level is reset later --- Marlin/Marlin_main.cpp | 2 +- Marlin/ultralcd.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d51f2f797b..c0acebf8df 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5851,7 +5851,7 @@ inline void gcode_M428() { if (!err) { sync_plan_position(); - LCD_ALERTMESSAGEPGM(MSG_HOME_OFFSETS_APPLIED); + LCD_MESSAGEPGM(MSG_HOME_OFFSETS_APPLIED); #if HAS_BUZZER buzz(200, 659); buzz(200, 698); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index b68a4e5e10..5d5845cfbf 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -953,7 +953,7 @@ void lcd_cooldown() { mbl.set_zigzag_z(_lcd_level_bed_position++, current_position[Z_AXIS]); if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) { lcd_return_to_status(); - LCD_ALERTMESSAGEPGM(MSG_LEVEL_BED_DONE); + LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE); #if HAS_BUZZER buzz(200, 659); buzz(200, 698); From 234987ee2f6ea001fd4fe934ac24cc8057820b88 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 14:17:06 -0700 Subject: [PATCH 077/383] Fix MBL lift --- Marlin/Marlin_main.cpp | 10 ++++++---- Marlin/ultralcd.cpp | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index c0acebf8df..96eff9d3db 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2847,10 +2847,12 @@ inline void gcode_G28() { saved_feedrate = feedrate; feedrate = homing_feedrate[X_AXIS]; - #if MIN_Z_HEIGHT_FOR_HOMING > 0 - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + MIN_Z_HEIGHT_FOR_HOMING; - line_to_current_position(); - #endif + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + + MIN_Z_HEIGHT_FOR_HOMING + #endif + ; + line_to_current_position(); current_position[X_AXIS] = x + home_offset[X_AXIS]; current_position[Y_AXIS] = y + home_offset[Y_AXIS]; diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 5d5845cfbf..31d5d3165d 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -893,10 +893,12 @@ void lcd_cooldown() { // Z position will be restored with the final action, a G28 inline void _mbl_goto_xy(float x, float y) { mbl_wait_for_move = true; - #if MIN_Z_HEIGHT_FOR_HOMING > 0 - current_position[Z_AXIS] += MIN_Z_HEIGHT_FOR_HOMING; - line_to_current(Z_AXIS); - #endif + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + + MIN_Z_HEIGHT_FOR_HOMING + #endif + ; + line_to_current(Z_AXIS); current_position[X_AXIS] = x + home_offset[X_AXIS]; current_position[Y_AXIS] = y + home_offset[Y_AXIS]; line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS); From 832e1c1f2a8db7d8495e8c5f72142c0cfdc577fa Mon Sep 17 00:00:00 2001 From: esenapaj Date: Sun, 17 Apr 2016 07:50:02 +0900 Subject: [PATCH 078/383] Follow-up and fix for the PR #3453(ELAPSED / PENDING for rollover-safe time checking) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ・Add more "UL" suffix ・Restore removed "UL" suffix --- Marlin/dogm_lcd_implementation.h | 2 +- Marlin/temperature.cpp | 2 +- Marlin/ultralcd_implementation_hitachi_HD44780.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 90b0e6872f..b22a1ed672 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -459,7 +459,7 @@ static void lcd_implementation_status_screen() { #if DISABLED(FILAMENT_LCD_DISPLAY) lcd_print(lcd_status_message); #else - if (PENDING(millis(), previous_lcd_status_ms + 5000)) { //Display both Status message line and Filament display on the last line + if (PENDING(millis(), previous_lcd_status_ms + 5000UL)) { //Display both Status message line and Filament display on the last line lcd_print(lcd_status_message); } else { diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 0975e4fafb..8b0364c9cd 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1105,7 +1105,7 @@ void tp_init() { void start_watching_heater(int e) { if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1)) { watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE; - watch_heater_next_ms[e] = millis() + (WATCH_TEMP_PERIOD) * 1000; + watch_heater_next_ms[e] = millis() + (WATCH_TEMP_PERIOD) * 1000UL; } else watch_heater_next_ms[e] = 0; diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 7c2d762231..96870c975e 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -791,7 +791,7 @@ static void lcd_implementation_status_screen() { // Show Filament Diameter and Volumetric Multiplier % // After allowing lcd_status_message to show for 5 seconds - if (ELAPSED(millis(), previous_lcd_status_ms + 5000)) { + if (ELAPSED(millis(), previous_lcd_status_ms + 5000UL)) { lcd_printPGM(PSTR("Dia ")); lcd.print(ftostr12ns(filament_width_meas)); lcd_printPGM(PSTR(" V")); From 4b75b11a539a42ff159833df5ef6da86d58e91ad Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 14:35:22 -0700 Subject: [PATCH 079/383] Wrap defines in parentheses in configs, M48 --- Marlin/Marlin_main.cpp | 8 ++++---- .../Hephestos_2/Configuration.h | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 96eff9d3db..63942d8e01 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4012,7 +4012,7 @@ inline void gcode_M42() { if (Z_start_location < Z_RAISE_BEFORE_PROBING * 2.0) do_blocking_move_to_z(Z_start_location); - do_blocking_move_to_xy(X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER, Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER); + do_blocking_move_to_xy(X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER), Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER)); /** * OK, do the initial probe to get us close to the bed. @@ -4072,8 +4072,8 @@ inline void gcode_M42() { while (angle < 0.0) // outside of this range. It looks like they behave correctly with angle += 360.0; // numbers outside of the range, but just to be safe we clamp them. - X_current = X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER + cos(RADIANS(angle)) * radius; - Y_current = Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER + sin(RADIANS(angle)) * radius; + X_current = X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER) + cos(RADIANS(angle)) * radius; + Y_current = Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER) + sin(RADIANS(angle)) * radius; #if DISABLED(DELTA) X_current = constrain(X_current, X_MIN_POS, X_MAX_POS); @@ -4111,7 +4111,7 @@ inline void gcode_M42() { * height. This gets us back to the probe location at the same height that * we have been running around the circle at. */ - do_blocking_move_to_xy(X_probe_location - X_PROBE_OFFSET_FROM_EXTRUDER, Y_probe_location - Y_PROBE_OFFSET_FROM_EXTRUDER); + do_blocking_move_to_xy(X_probe_location - (X_PROBE_OFFSET_FROM_EXTRUDER), Y_probe_location - (Y_PROBE_OFFSET_FROM_EXTRUDER)); if (deploy_probe_for_each_reading) sample_set[n] = probe_pt(X_probe_location, Y_probe_location, Z_RAISE_BEFORE_PROBING, ProbeDeployAndStow, verbose_level); else { diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 98117fa87e..d7a1131783 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -512,9 +512,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #if ENABLED(MESH_BED_LEVELING) #define MESH_MIN_X 10 - #define MESH_MAX_X (X_MAX_POS - MESH_MIN_X) + #define MESH_MAX_X (X_MAX_POS - (MESH_MIN_X)) #define MESH_MIN_Y 10 - #define MESH_MAX_Y (Y_MAX_POS - MESH_MIN_Y) + #define MESH_MAX_Y (Y_MAX_POS - (MESH_MIN_Y)) #define MESH_NUM_X_POINTS 3 // Don't use more than 7 points per axis, implementation limited. #define MESH_NUM_Y_POINTS 3 #define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0. @@ -557,9 +557,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #if ENABLED(AUTO_BED_LEVELING_GRID) #define LEFT_PROBE_BED_POSITION X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER - #define RIGHT_PROBE_BED_POSITION X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER + #define RIGHT_PROBE_BED_POSITION X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER) #define FRONT_PROBE_BED_POSITION Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER - #define BACK_PROBE_BED_POSITION Y_MAX_POS - Y_PROBE_OFFSET_FROM_EXTRUDER + #define BACK_PROBE_BED_POSITION Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER) #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. @@ -573,10 +573,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // A simple cross-product is used to estimate the plane of the bed. #define ABL_PROBE_PT_1_X X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER #define ABL_PROBE_PT_1_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER - #define ABL_PROBE_PT_2_X X_MAX_POS - X_PROBE_OFFSET_FROM_EXTRUDER + #define ABL_PROBE_PT_2_X X_MAX_POS - (X_PROBE_OFFSET_FROM_EXTRUDER) #define ABL_PROBE_PT_2_Y Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER #define ABL_PROBE_PT_3_X ((X_MIN_POS + X_MAX_POS) / 2) - #define ABL_PROBE_PT_3_Y Y_MAX_POS - Y_PROBE_OFFSET_FROM_EXTRUDER + #define ABL_PROBE_PT_3_Y Y_MAX_POS - (Y_PROBE_OFFSET_FROM_EXTRUDER) #endif // AUTO_BED_LEVELING_GRID From d4a848c72a1f38cb9631feffbf4face4eea1338b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 19:19:40 -0700 Subject: [PATCH 080/383] Fix broken PID_PARAMS_PER_EXTRUDER As noted by @FalloutBe in #3519 --- Marlin/temperature.cpp | 58 +++++++++++++++++++++--------------------- Marlin/temperature.h | 10 ++++++-- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 0975e4fafb..69906001db 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -231,7 +231,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false long bias, d; float Ku, Tu; - float Kp = 0, Ki = 0, Kd = 0; + float workKp = 0, workKi = 0, workKd = 0; float max = 0, min = 10000; #if HAS_AUTO_FAN @@ -309,28 +309,28 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false Tu = ((float)(t_low + t_high) / 1000.0); SERIAL_PROTOCOLPGM(MSG_KU); SERIAL_PROTOCOL(Ku); SERIAL_PROTOCOLPGM(MSG_TU); SERIAL_PROTOCOLLN(Tu); - Kp = 0.6 * Ku; - Ki = 2 * Kp / Tu; - Kd = Kp * Tu / 8; + workKp = 0.6 * Ku; + workKi = 2 * workKp / Tu; + workKd = workKp * Tu / 8; SERIAL_PROTOCOLLNPGM(MSG_CLASSIC_PID); - SERIAL_PROTOCOLPGM(MSG_KP); SERIAL_PROTOCOLLN(Kp); - SERIAL_PROTOCOLPGM(MSG_KI); SERIAL_PROTOCOLLN(Ki); - SERIAL_PROTOCOLPGM(MSG_KD); SERIAL_PROTOCOLLN(Kd); + SERIAL_PROTOCOLPGM(MSG_KP); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(MSG_KI); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(MSG_KD); SERIAL_PROTOCOLLN(workKd); /** - Kp = 0.33*Ku; - Ki = Kp/Tu; - Kd = Kp*Tu/3; + workKp = 0.33*Ku; + workKi = workKp/Tu; + workKd = workKp*Tu/3; SERIAL_PROTOCOLLNPGM(" Some overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(Kp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(Ki); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(Kd); - Kp = 0.2*Ku; - Ki = 2*Kp/Tu; - Kd = Kp*Tu/3; + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); + workKp = 0.2*Ku; + workKi = 2*workKp/Tu; + workKd = workKp*Tu/3; SERIAL_PROTOCOLLNPGM(" No overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(Kp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(Ki); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(Kd); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); */ } } @@ -365,24 +365,24 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false if (cycles > ncycles) { SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED); const char* estring = extruder < 0 ? "bed" : ""; - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(Kp); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(Ki); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(Kd); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd); // Use the result? (As with "M303 U1") if (set_result) { if (extruder < 0) { #if ENABLED(PIDTEMPBED) - bedKp = Kp; - bedKi = scalePID_i(Ki); - bedKd = scalePID_d(Kd); + bedKp = workKp; + bedKi = scalePID_i(workKi); + bedKd = scalePID_d(workKd); updatePID(); #endif } else { - PID_PARAM(Kp, extruder) = Kp; - PID_PARAM(Ki, e) = scalePID_i(Ki); - PID_PARAM(Kd, e) = scalePID_d(Kd); + PID_PARAM(Kp, extruder) = workKp; + PID_PARAM(Ki, extruder) = scalePID_i(workKi); + PID_PARAM(Kd, extruder) = scalePID_d(workKd); updatePID(); } } @@ -395,7 +395,7 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false void updatePID() { #if ENABLED(PIDTEMP) for (int e = 0; e < EXTRUDERS; e++) { - temp_iState_max[e] = (PID_INTEGRAL_DRIVE_MAX) / PID_PARAM(Ki,e); + temp_iState_max[e] = (PID_INTEGRAL_DRIVE_MAX) / PID_PARAM(Ki, e); #if ENABLED(PID_ADD_EXTRUSION_RATE) last_position[e] = 0; #endif diff --git a/Marlin/temperature.h b/Marlin/temperature.h index edccdfc5d0..9747d07acb 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -82,10 +82,16 @@ extern float current_temperature_bed; #if ENABLED(PIDTEMP) #if ENABLED(PID_PARAMS_PER_EXTRUDER) - extern float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS], Kc[EXTRUDERS]; // one param per extruder + extern float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS]; // one param per extruder + #if ENABLED(PID_ADD_EXTRUSION_RATE) + extern float Kc[EXTRUDERS]; + #endif #define PID_PARAM(param, e) param[e] // use macro to point to array value #else - extern float Kp, Ki, Kd, Kc; // one param per extruder - saves 20 or 36 bytes of ram (inc array pointer) + extern float Kp, Ki, Kd; // one param per extruder - saves 20 or 36 bytes of ram (inc array pointer) + #if ENABLED(PID_ADD_EXTRUSION_RATE) + extern float Kc; + #endif #define PID_PARAM(param, e) param // use macro to point directly to value #endif // PID_PARAMS_PER_EXTRUDER float scalePID_i(float i); From 36a49eab1c33d732dad85660fca15de9eaa6b4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 14 Apr 2016 20:09:27 +0100 Subject: [PATCH 081/383] Improved the LCD and SD comments blocks in Configuration.h --- Marlin/Configuration.h | 291 ++++++++++++++++++++++++++++++----------- 1 file changed, 215 insertions(+), 76 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 19d4710b1b..0c9e1bc947 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -714,7 +714,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -754,113 +756,250 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// MARLIN LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARSET +// +// Choose ONE of the following charset list, keep in mind that this selection is +// dependent on your physical hardware thus it has to match the type of Character +// based LCD you have. +// +// Note: This options is ignored for a full graphic display. +// +// To find out what type you have: +// - Compile and upload with language set to 'test' +// - Click to get the menu +// +// You'll see two typical lines from the upper half of the charset. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P -// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) -// http://reprap.org/wiki/PanelOne -//#define PANEL_ONE +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC -// The MaKr3d Makr-Panel with graphic controller and SD support -// http://reprap.org/wiki/MaKr3d_MaKrPanel -//#define MAKRPANEL +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). +// +// IMPORTANT NOTE: You have to install Arduino's U8glib library for the Full +// Graphics Display to work ! - https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD card support is now disabled by default, if you have [and want] SD support +// then you must uncomment the following directive. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// You may uncomment *one* of the following directives to use slower SPI transfer +// speeds, this is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD -// http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// ENCODER SETTINGS +// +// This option defines how many pulses a encoder should produce for a menu +// step to be produced, you should increase this value for highres encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 +// +// +// This option defines how many steps are required for Marlin to move between +// next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 +// +// +// This option allows you to reverse the direction you have to turn the encoder +// to navigate up/down on the menus, by default CLOCKWISE rotation moves DOWN in +// the LCD menu, when active CLOCKWISE rotation will move UP in the LCD menu. +// +//#define REVERSE_MENU_DIRECTION +// +// +// If you have a speaker activate this directive to enable it. +// By default Marlin assumes your setup is buzzer based and no action is required. +// +//#define SPEAKER +// +// The duration and frequency the buzzer plays the UI feedback sound. +// You may define these directives with 0 (zero) if you want to disable all sound +// feedback from Marlin. +// +// Note: You may test the buzzing sound with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a impressive variety of controllers, uncomment the directive +// which defines physical controller you're using. +// +// +// Activate this directive if you have an ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER +// +// +// Activate this directive if you have a ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL +// +// +// Activate this directive if you have a PanelOne from T3P3 +// (via RAMPS 1.4 AUX2/AUX3) - http://reprap.org/wiki/PanelOne +// +//#define PANEL_ONE +// +// +// Activate this directive if you have a MaKr3d Makr-Panel with graphic +// controller and SD suppord - http://reprap.org/wiki/MaKr3d_MaKrPanel +// +//#define MAKRPANEL +// +// +// Activate one of these directives if you have a Panucatt Devices Viki 2.0 or +// mini Viki with Graphic LCD - http://panucatt.com +// //#define VIKI2 //#define miniVIKI // This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// Activate this directive if you have an Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED - -// The RepRapDiscount Smart Controller (white PCB) +// +// +// Activate this directive if you have a RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold in a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER - -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// +// Activate this directive if you have a BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER +// +// +// Activate this directive if you have a GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold in a blue PCB. +// //#define G3D_PANEL - -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// +// Activate this directive if you have a RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino -//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +// +// +// Activate this directive if you have a MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +//#define MINIPANEL +// +// +// Activate this directive if you have a RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Activate this directive if you have an Elefu RA Board Control Panel // http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// //#define RA_CONTROL_PANEL - -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL - -/** - * I2C Panels - */ - //#define LCD_I2C_SAINSMART_YWROBOT - -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD - -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// +// Activate this directive if you have a LCM160 LCD adapter. +// +//#define LCM1602 +// +// +// Activate this directive if you have a PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 - -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// +// Activate this directive if you have a Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI - -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// +// Activate this directive if you have a SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD // @section extras From d7cc2c0847d3db5ef232215cbca81c204556e1dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 14 Apr 2016 20:16:42 +0100 Subject: [PATCH 082/383] Moved some conditionals to Conditionals.h --- Marlin/Conditionals.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index b5b7c5e6ca..e3a2d75556 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -65,6 +65,7 @@ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) #define DEFAULT_LCD_CONTRAST 110 #define U8GLIB_LM6059_AF + #define SD_DETECT_INVERTED #endif #define ENCODER_PULSES_PER_STEP 4 From 7b5d6ba315df18bb33fba7b39503b51fb348eb56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sat, 16 Apr 2016 03:20:23 +0100 Subject: [PATCH 083/383] Rebase & feedback --- Marlin/Configuration.h | 147 +++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 73 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 0c9e1bc947..23f16b0521 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -604,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. @@ -762,7 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section lcd // -// MARLIN LANGUAGE +// LCD LANGUAGE // // Here you may choose the language used by Marlin on the LCD menus, the following // list of languages are available: @@ -772,19 +772,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) // -// LCD CHARSET +// LCD CHARACTER SET // -// Choose ONE of the following charset list, keep in mind that this selection is -// dependent on your physical hardware thus it has to match the type of Character -// based LCD you have. +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. // -// Note: This options is ignored for a full graphic display. +// Note: This option is NOT applicable to graphical displays. // -// To find out what type you have: -// - Compile and upload with language set to 'test' -// - Click to get the menu +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu // -// You'll see two typical lines from the upper half of the charset. +// The LCD will display two lines from the upper half of the character set. // // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language // @@ -797,10 +796,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, // 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels -// (ST7565R family). +// (ST7565R family). (This option will be set automatically for certain displays.) // -// IMPORTANT NOTE: You have to install Arduino's U8glib library for the Full -// Graphics Display to work ! - https://github.com/olikraus/U8glib_Arduino +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino // //#define ULTRA_LCD // Character based //#define DOGLCD // Full graphics display @@ -808,16 +807,16 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // SD CARD // -// SD card support is now disabled by default, if you have [and want] SD support -// then you must uncomment the following directive. +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. // //#define SDSUPPORT // // SD CARD: SPI SPEED // -// You may uncomment *one* of the following directives to use slower SPI transfer -// speeds, this is usually required if you're getting volume init errors. +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. // //#define SPI_SPEED SPI_HALF_SPEED //#define SPI_SPEED SPI_QUARTER_SPEED @@ -833,35 +832,36 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // ENCODER SETTINGS // -// This option defines how many pulses a encoder should produce for a menu -// step to be produced, you should increase this value for highres encoders. +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. // //#define ENCODER_PULSES_PER_STEP 1 + // -// -// This option defines how many steps are required for Marlin to move between -// next/prev menu items. +// Use this option to override the number of step signals required to +// move between next/prev menu items. // //#define ENCODER_STEPS_PER_MENU_ITEM 5 + // -// -// This option allows you to reverse the direction you have to turn the encoder -// to navigate up/down on the menus, by default CLOCKWISE rotation moves DOWN in -// the LCD menu, when active CLOCKWISE rotation will move UP in the LCD menu. +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. // //#define REVERSE_MENU_DIRECTION + // +// SPEAKER/BUZZER // -// If you have a speaker activate this directive to enable it. -// By default Marlin assumes your setup is buzzer based and no action is required. +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. // //#define SPEAKER + // -// The duration and frequency the buzzer plays the UI feedback sound. -// You may define these directives with 0 (zero) if you want to disable all sound -// feedback from Marlin. +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. // -// Note: You may test the buzzing sound with the G-Code: +// Note: Test audio output with the G-Code: // M300 S P // //#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 @@ -870,81 +870,81 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // CONTROLLER TYPE: Standard // -// Marlin supports a impressive variety of controllers, uncomment the directive -// which defines physical controller you're using. +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. // + // -// Activate this directive if you have an ULTIMAKER Controller. +// ULTIMAKER Controller. // //#define ULTIMAKERCONTROLLER + // -// -// Activate this directive if you have a ULTIPANEL as seen on Thingiverse. +// ULTIPANEL as seen on Thingiverse. // //#define ULTIPANEL + // -// -// Activate this directive if you have a PanelOne from T3P3 -// (via RAMPS 1.4 AUX2/AUX3) - http://reprap.org/wiki/PanelOne +// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) +// http://reprap.org/wiki/PanelOne // //#define PANEL_ONE + // -// -// Activate this directive if you have a MaKr3d Makr-Panel with graphic -// controller and SD suppord - http://reprap.org/wiki/MaKr3d_MaKrPanel +// MaKr3d Makr-Panel with graphic controller and SD support. +// http://reprap.org/wiki/MaKr3d_MaKrPanel // //#define MAKRPANEL + // -// -// Activate one of these directives if you have a Panucatt Devices Viki 2.0 or -// mini Viki with Graphic LCD - http://panucatt.com +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD +// http://panucatt.com // //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// -// Activate this directive if you have an Adafruit ST7565 Full Graphic Controller. +// Adafruit ST7565 Full Graphic Controller. // https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // //#define ELB_FULL_GRAPHIC_CONTROLLER + // -// -// Activate this directive if you have a RepRapDiscount Smart Controller. +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller // -// Note: Usually sold in a white PCB. +// Note: Usually sold with a white PCB. // //#define REPRAP_DISCOUNT_SMART_CONTROLLER + // -// -// Activate this directive if you have a BQ LCD Smart Controller shipped by +// BQ LCD Smart Controller shipped by // default with the BQ Hephestos 2 and Witbox 2. // //#define BQ_LCD_SMART_CONTROLLER + // -// -// Activate this directive if you have a GADGETS3D G3D LCD/SD Controller +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel // -// Note: Usually sold in a blue PCB. +// Note: Usually sold with a blue PCB. // //#define G3D_PANEL + // -// -// Activate this directive if you have a RepRapDiscount FULL GRAPHIC Smart Controller +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // // #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + // -// -// Activate this directive if you have a MakerLab Mini Panel with graphic +// MakerLab Mini Panel with graphic // controller and SD support - http://reprap.org/wiki/Mini_panel //#define MINIPANEL + // -// -// Activate this directive if you have a RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 // // REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key @@ -959,20 +959,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Note: These controllers require the installation of Arduino's LiquidCrystal_I2C // library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C // + // -// Activate this directive if you have an Elefu RA Board Control Panel +// Elefu RA Board Control Panel // http://www.elefu.com/index.php?route=product/product&product_id=53 // //#define RA_CONTROL_PANEL //#define LCD_I2C_SAINSMART_YWROBOT + // -// -// Activate this directive if you have a LCM160 LCD adapter. +// LCM160 LCD adapter. // //#define LCM1602 + // -// -// Activate this directive if you have a PANELOLU2 LCD with status LEDs, +// PANELOLU2 LCD with status LEDs, // separate encoder and click inputs. // // Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. @@ -982,15 +983,15 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). // //#define LCD_I2C_PANELOLU2 + // -// -// Activate this directive if you have a Panucatt VIKI LCD with status LEDs, +// Panucatt VIKI LCD with status LEDs, // integrated click & L/R/U/D buttons, separate encoder inputs. // //#define LCD_I2C_VIKI + // -// -// Activate this directive if you have a SSD1306 OLED full graphics generic display +// SSD1306 OLED full graphics generic display // //#define U8GLIB_SSD1306 From ef2fd620e9ffb37a72308bbe63085bf473735ae1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 15 Apr 2016 20:41:19 -0700 Subject: [PATCH 084/383] Suggested fixups for LCD/SD config comments --- Marlin/Configuration.h | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 23f16b0521..cf1c5cd213 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -759,6 +759,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //============================================================================= //============================= LCD and SD support ============================ //============================================================================= + // @section lcd // @@ -936,11 +937,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER // // MakerLab Mini Panel with graphic // controller and SD support - http://reprap.org/wiki/Mini_panel +// //#define MINIPANEL // @@ -953,6 +955,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define REPRAPWORLD_KEYPAD //#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL + +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + // // CONTROLLER TYPE: I2C // @@ -965,10 +979,14 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // http://www.elefu.com/index.php?route=product/product&product_id=53 // //#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT // -// LCM160 LCD adapter. +// Generic LCM1602 LCD adapter // //#define LCM1602 @@ -1003,6 +1021,10 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino From 339b5b3e3442cb2e513daebfb14437604ac00d1b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 15 Apr 2016 22:04:50 -0700 Subject: [PATCH 085/383] Patch more configs with new changes --- .../Felix/Configuration.h | 284 ++++++++++++---- .../Felix/Configuration_DUAL.h | 284 ++++++++++++---- .../Hephestos/Configuration.h | 285 ++++++++++++---- .../Hephestos_2/Configuration.h | 285 ++++++++++++---- .../K8200/Configuration.h | 284 ++++++++++++---- .../RepRapWorld/Megatronics/Configuration.h | 278 ++++++++++++---- .../RigidBot/Configuration.h | 285 ++++++++++++---- .../SCARA/Configuration.h | 284 ++++++++++++---- .../TAZ4/Configuration.h | 284 ++++++++++++---- .../WITBOX/Configuration.h | 284 ++++++++++++---- .../adafruit/ST7565/Configuration.h | 284 ++++++++++++---- .../delta/biv2.5/Configuration.h | 304 ++++++++++++++---- .../delta/generic/Configuration.h | 298 +++++++++++++---- .../delta/kossel_mini/Configuration.h | 298 +++++++++++++---- .../delta/kossel_pro/Configuration.h | 298 +++++++++++++---- .../delta/kossel_xl/Configuration.h | 284 ++++++++++++---- .../makibox/Configuration.h | 284 ++++++++++++---- .../tvrrug/Round2/Configuration.h | 284 ++++++++++++---- 18 files changed, 4035 insertions(+), 1136 deletions(-) diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 569ba1fd48..7ed915fd09 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -697,7 +697,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -737,115 +739,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 8830722cc3..f463080aa1 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -694,7 +694,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -734,115 +736,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 9d8259305c..466aa34abb 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -706,7 +706,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -746,118 +748,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// #define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL - -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// BQ SMART FULL GRAPHIC CONTROLLER +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// //#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index d7a1131783..8f9c51be5b 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -708,7 +708,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -748,118 +750,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL - -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// BQ SMART FULL GRAPHIC CONTROLLER +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// #define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 3f0bac3ab6..62505a9cb2 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -731,7 +731,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -771,115 +773,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 60 // K8200: set back to 110 if you have an upgraded heatbed power supply #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // K8200: for Display VM8201 // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -#define ULTIMAKERCONTROLLER // K8200: for Display VM8201 // as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // K8200: for Display VM8201 +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index c34981fa21..0b529ebf76 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -714,7 +714,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -754,115 +756,269 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// #define REPRAPWORLD_KEYPAD -#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// -/** - * I2C Panels - */ +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 928ac5fd04..03fd7e5578 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -709,7 +709,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -749,122 +751,277 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -#define SPI_SPEED SPI_EIGHTH_SPEED // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) -// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// RepRapDiscount FULL GRAPHIC Smart Controller +// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // // RigidBoard: To rewire this for a RigidBot see http://rigidtalk.com/wiki/index.php?title=LCD_Smart_Controller // //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click - -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL - -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 +// // RigidBot Panel V1.0 // http://www.inventapart.com/ +// #define RIGIDBOT_PANEL -/** - * I2C Panels - */ +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 8c1167aa15..7a036264d4 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -722,7 +722,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -762,115 +764,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 8d32b6c77e..cde38d869b 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -735,7 +735,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -775,115 +777,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -#define ENCODER_PULSES_PER_STEP 2 // Increase if you have a high resolution encoder -#define ENCODER_STEPS_PER_MENU_ITEM 1 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +#define ENCODER_PULSES_PER_STEP 2 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +#define ENCODER_STEPS_PER_MENU_ITEM 1 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index db3544f04f..a1b2e7031e 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -706,7 +706,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -746,115 +748,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// #define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 3888609eb9..07135c6ada 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -714,7 +714,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -754,115 +756,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// #define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 7591f16b54..7600c68d55 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -381,6 +381,13 @@ // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 160 + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + // If needed, adjust the X, Y, Z calibration coordinates + // in ultralcd.cpp@lcd_delta_calibrate_menu() + //#define DELTA_CALIBRATION_MENU + #endif // Enable this option for Toshiba steppers @@ -683,13 +690,13 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // 2 or 3 sets of coordinates for deploying and retracting the spring loaded touch probe on G29, // if servo actuated touch probe is not defined. Uncomment as appropriate for your printer/probe. - //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 30 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 30.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y DELTA_PRINTABLE_RADIUS - //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE HOMING_FEEDRATE_XYZ - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) //#define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position @@ -836,7 +843,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -876,122 +885,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -// Delta calibration menu -// uncomment to add three points calibration menu option. -// See http://minow.blogspot.com/index.html#4918805519571907051 -// If needed, adjust the X, Y, Z calibration coordinates -// in ultralcd.cpp@lcd_delta_calibrate_menu() -//#define DELTA_CALIBRATION_MENU +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// -/** - * I2C Panels - */ +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 3646b3b887..abfaada242 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -381,6 +381,13 @@ // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 140 + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + // If needed, adjust the X, Y, Z calibration coordinates + // in ultralcd.cpp@lcd_delta_calibrate_menu() + //#define DELTA_CALIBRATION_MENU + #endif // Enable this option for Toshiba steppers @@ -597,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #if ENABLED(AUTO_BED_LEVELING_GRID) - // set the rectangle in which to probe + // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS @@ -836,7 +843,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -876,122 +885,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -// Delta calibration menu -// uncomment to add three points calibration menu option. -// See http://minow.blogspot.com/index.html#4918805519571907051 -// If needed, adjust the X, Y, Z calibration coordinates -// in ultralcd.cpp@lcd_delta_calibrate_menu() -//#define DELTA_CALIBRATION_MENU +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// -/** - * I2C Panels - */ +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index 7e63f32c26..45186cfe99 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -381,6 +381,13 @@ // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 90 + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + // If needed, adjust the X, Y, Z calibration coordinates + // in ultralcd.cpp@lcd_delta_calibrate_menu() + //#define DELTA_CALIBRATION_MENU + #endif // Enable this option for Toshiba steppers @@ -597,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #if ENABLED(AUTO_BED_LEVELING_GRID) - // set the rectangle in which to probe + // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS @@ -840,7 +847,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -880,122 +889,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// #define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -// Delta calibration menu -// uncomment to add three points calibration menu option. -// See http://minow.blogspot.com/index.html#4918805519571907051 -// If needed, adjust the X, Y, Z calibration coordinates -// in ultralcd.cpp@lcd_delta_calibrate_menu() -//#define DELTA_CALIBRATION_MENU +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// -/** - * I2C Panels - */ +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 81f986c917..0e29f9a705 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -370,6 +370,13 @@ // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 127 + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + // If needed, adjust the X, Y, Z calibration coordinates + // in ultralcd.cpp@lcd_delta_calibrate_menu() + //#define DELTA_CALIBRATION_MENU + #endif // Enable this option for Toshiba steppers @@ -586,7 +593,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #if ENABLED(AUTO_BED_LEVELING_GRID) - // set the rectangle in which to probe + // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25) #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS @@ -833,7 +840,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -873,122 +882,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -// Delta calibration menu -// uncomment to add three points calibration menu option. -// See http://minow.blogspot.com/index.html#4918805519571907051 -// If needed, adjust the X, Y, Z calibration coordinates -// in ultralcd.cpp@lcd_delta_calibrate_menu() -//#define DELTA_CALIBRATION_MENU +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// -/** - * I2C Panels - */ +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 3184180072..104a84e2f5 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -750,7 +750,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -790,115 +792,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 100 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// #define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index fa0cb56e0f..49f2c8e506 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -717,7 +717,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -757,115 +759,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 727061be6e..b9657c3e19 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -708,7 +708,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section extras +// // EEPROM +// // The microcontroller can store settings in the EEPROM, e.g. max velocity... // M500 - stores parameters in EEPROM // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). @@ -748,115 +750,275 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 -//==============================LCD and SD support============================= +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + // @section lcd -// Define your display language below. Replace (en) with your language code and uncomment. -// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test -// See also language.h +// +// LCD LANGUAGE +// +// Here you may choose the language used by Marlin on the LCD menus, the following +// list of languages are available: +// en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, +// fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test +// //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display. -// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset. +// +// LCD CHARACTER SET +// +// Choose ONE of the following charset options. This selection depends on +// your physical hardware, so it must match your character-based LCD. +// +// Note: This option is NOT applicable to graphical displays. +// +// To find out what type of display you have: +// - Compile and upload with the language (above) set to 'test' +// - Click the controller to view the LCD menu +// +// The LCD will display two lines from the upper half of the character set. +// // See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language - #define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware - //#define DISPLAY_CHARSET_HD44780_WESTERN - //#define DISPLAY_CHARSET_HD44780_CYRILLIC - -//#define ULTRA_LCD //general LCD support, also 16x2 -//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family) -//#define SDSUPPORT // Enable SD Card Support in Hardware Console - // Changed behaviour! If you need SDSUPPORT uncomment it! -//#define SPI_SPEED SPI_HALF_SPEED // (also SPI_QUARTER_SPEED, SPI_EIGHTH_SPEED) Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error) -//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication -//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder -//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking -//#define REVERSE_MENU_DIRECTION // When enabled CLOCKWISE moves UP in the LCD menu -//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store. -//#define ULTIPANEL //the UltiPanel as on Thingiverse -//#define SPEAKER // The sound device is a speaker - not a buzzer. A buzzer resonates with a fixed frequency. -//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click -//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click - // 0 to disable buzzer feedback. Test with M300 S P +// +#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware +//#define DISPLAY_CHARSET_HD44780_WESTERN +//#define DISPLAY_CHARSET_HD44780_CYRILLIC + +// +// LCD TYPE +// +// You may choose ULTRA_LCD if you have character based LCD with 16x2, 16x4, 20x2, +// 20x4 char/lines or DOGLCD for the full graphics display with 128x64 pixels +// (ST7565R family). (This option will be set automatically for certain displays.) +// +// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display! +// https://github.com/olikraus/U8glib_Arduino +// +//#define ULTRA_LCD // Character based +//#define DOGLCD // Full graphics display + +// +// SD CARD +// +// SD Card support is disabled by default. If your controller has an SD slot, +// you must uncomment the following option or it won't work. +// +//#define SDSUPPORT + +// +// SD CARD: SPI SPEED +// +// Uncomment ONE of the following items to use a slower SPI transfer +// speed. This is usually required if you're getting volume init errors. +// +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +// +// SD CARD: ENABLE CRC +// +// Use CRC checks and retries on the SD communication. +// +//#define SD_CHECK_AND_RETRY + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +//#define ENCODER_PULSES_PER_STEP 1 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +//#define ENCODER_STEPS_PER_MENU_ITEM 5 + +// +// This option reverses the encoder direction for navigating LCD menus. +// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +//#define REVERSE_MENU_DIRECTION + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 +//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 + +// +// CONTROLLER TYPE: Standard +// +// Marlin supports a wide variety of controllers. +// Enable one of the following options to specify your controller. +// + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// // PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) // http://reprap.org/wiki/PanelOne +// //#define PANEL_ONE -// The MaKr3d Makr-Panel with graphic controller and SD support +// +// MaKr3d Makr-Panel with graphic controller and SD support. // http://reprap.org/wiki/MaKr3d_MaKrPanel +// //#define MAKRPANEL -// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD // http://panucatt.com -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// //#define VIKI2 //#define miniVIKI -// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// //#define ELB_FULL_GRAPHIC_CONTROLLER -//#define SD_DETECT_INVERTED -// The RepRapDiscount Smart Controller (white PCB) +// +// RepRapDiscount Smart Controller. // http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// The GADGETS3D G3D LCD/SD Controller (blue PCB) +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// //#define G3D_PANEL -// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB) +// +// RepRapDiscount FULL GRAPHIC Smart Controller // http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER -// The RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 // http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// //#define REPRAPWORLD_KEYPAD -//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 -// The Elefu RA Board Control Panel -// http://www.elefu.com/index.php?route=product/product&product_id=53 -// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C -//#define RA_CONTROL_PANEL +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL -// The MakerLab Mini Panel with graphic controller and SD support -// http://reprap.org/wiki/Mini_panel -//#define MINIPANEL +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER -/** - * I2C Panels - */ +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart YW Robot (LCM1602) LCD Display +// //#define LCD_I2C_SAINSMART_YWROBOT -//#define LCM1602 // LCM1602 Adapter for 16x2 LCD +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 -// PANELOLU2 LCD with status LEDs, separate encoder and click inputs // -// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 ) -// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory. -// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file) -// Note: The PANELOLU2 encoder click input can either be directly connected to a pin -// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// //#define LCD_I2C_PANELOLU2 -// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// //#define LCD_I2C_VIKI -// SSD1306 OLED generic display support -// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino +// +// SSD1306 OLED full graphics generic display +// //#define U8GLIB_SSD1306 -// Shift register panels -// --------------------- -// 2 wire Non-latching LCD SR from: -// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection +// +// CONTROLLER TYPE: Shift register panels +// +// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH // LCD configuration: http://reprap.org/wiki/SAV_3D_LCD +// //#define SAV_3DLCD +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + // @section extras // Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino From 40050db210171dfff8a21b6c45efae37a584fc6d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 15 Apr 2016 20:42:31 -0700 Subject: [PATCH 086/383] Improve code in Sd2Card::readBlock --- Marlin/Sd2Card.cpp | 51 ++++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/Marlin/Sd2Card.cpp b/Marlin/Sd2Card.cpp index 62416b0684..6087aa8682 100644 --- a/Marlin/Sd2Card.cpp +++ b/Marlin/Sd2Card.cpp @@ -383,38 +383,31 @@ fail: * the value zero, false, is returned for failure. */ bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) { -#if ENABLED(SD_CHECK_AND_RETRY) - uint8_t retryCnt = 3; // use address if not SDHC card if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; -retry2: - retryCnt --; - if (cardCommand(CMD17, blockNumber)) { - error(SD_CARD_ERROR_CMD17); - if (retryCnt > 0) goto retry; - goto fail; - } - if (!readData(dst, 512)) { - if (retryCnt > 0) goto retry; - goto fail; - } - return true; -retry: - chipSelectHigh(); - cardCommand(CMD12, 0);//Try sending a stop command, but ignore the result. - errorCode_ = 0; - goto retry2; -#else - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD17, blockNumber)) { - error(SD_CARD_ERROR_CMD17); - goto fail; - } - return readData(dst, 512); -#endif -fail: + #if ENABLED(SD_CHECK_AND_RETRY) + uint8_t retryCnt = 3; + do { + if (!cardCommand(CMD17, blockNumber)) { + if (readData(dst, 512)) return true; + } + else + error(SD_CARD_ERROR_CMD17); + + if (--retryCnt) break; + + chipSelectHigh(); + cardCommand(CMD12, 0); // Try sending a stop command, ignore the result. + errorCode_ = 0; + } while (true); + #else + if (cardCommand(CMD17, blockNumber)) + error(SD_CARD_ERROR_CMD17); + else + return readData(dst, 512); + #endif + chipSelectHigh(); return false; } From 7c16e774cada5cc8a59acc17becf6dc76d81c570 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 7 Apr 2016 01:39:00 -0700 Subject: [PATCH 087/383] Show all endstops on LCD in checkHitEndstops --- Marlin/language_en.h | 3 +++ Marlin/stepper.cpp | 43 +++++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 74da3cdfea..c213fb5961 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -49,6 +49,9 @@ #ifndef MSG_SD_REMOVED #define MSG_SD_REMOVED "Card removed" #endif +#ifndef MSG_LCD_ENDSTOPS + #define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters +#endif #ifndef MSG_MAIN #define MSG_MAIN "Main" #endif diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index f8f9312471..9e6fd7794a 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -291,28 +291,39 @@ void endstops_hit_on_purpose() { endstop_hit_bits = 0; } void checkHitEndstops() { if (endstop_hit_bits) { + #if ENABLED(ULTRA_LCD) + char chrX = ' ', chrY = ' ', chrZ = ' ', chrP = ' '; + #define _SET_STOP_CHAR(A,C) (chr## A = C) + #else + #define _SET_STOP_CHAR(A,C) ; + #endif + + #define _ENDSTOP_HIT(A,C) do{ \ + SERIAL_ECHOPAIR(" " STRINGIFY(A) ":", endstops_trigsteps[A ##_AXIS] / axis_steps_per_unit[A ##_AXIS]); \ + _SET_STOP_CHAR(A,C); }while(0) + + #define _ENDSTOP_HIT_TEST(A,C) \ + if (TEST(endstop_hit_bits, A ##_MIN) || TEST(endstop_hit_bits, A ##_MAX)) \ + _ENDSTOP_HIT(A,C) + SERIAL_ECHO_START; SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); - if (TEST(endstop_hit_bits, X_MIN)) { - SERIAL_ECHOPAIR(" X:", endstops_trigsteps[X_AXIS] / axis_steps_per_unit[X_AXIS]); - LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "X"); - } - if (TEST(endstop_hit_bits, Y_MIN)) { - SERIAL_ECHOPAIR(" Y:", endstops_trigsteps[Y_AXIS] / axis_steps_per_unit[Y_AXIS]); - LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Y"); - } - if (TEST(endstop_hit_bits, Z_MIN)) { - SERIAL_ECHOPAIR(" Z:", endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); - LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Z"); - } + _ENDSTOP_HIT_TEST(X, 'X'); + _ENDSTOP_HIT_TEST(Y, 'Y'); + _ENDSTOP_HIT_TEST(Z, 'Z'); + #if ENABLED(Z_MIN_PROBE_ENDSTOP) - if (TEST(endstop_hit_bits, Z_MIN_PROBE)) { - SERIAL_ECHOPAIR(" Z_MIN_PROBE:", endstops_trigsteps[Z_AXIS] / axis_steps_per_unit[Z_AXIS]); - LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "ZP"); - } + #define P_AXIS Z_AXIS + if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT(P, 'P'); #endif SERIAL_EOL; + #if ENABLED(ULTRA_LCD) + char msg[3 * strlen(MSG_LCD_ENDSTOPS) + 8 + 1]; // Room for a UTF 8 string + sprintf_P(msg, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP); + lcd_setstatus(msg); + #endif + endstops_hit_on_purpose(); #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) && ENABLED(SDSUPPORT) From 837df6108cee3b73505007689d38aee46893810b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 20:30:12 -0700 Subject: [PATCH 088/383] Fix borked set_bed_level_equation_lsq --- Marlin/Marlin_main.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 63942d8e01..ab0a24ebf1 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1413,9 +1413,6 @@ static void setup_for_endstop_move() { static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { - vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); - plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); - //plan_bed_level_matrix.debug("bed level before"); #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -1427,14 +1424,16 @@ static void setup_for_endstop_move() { } #endif + vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); + plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); + vector_3 corrected_position = plan_get_position(); - current_position[X_AXIS] = corrected_position.x; current_position[Y_AXIS] = corrected_position.y; current_position[Z_AXIS] = corrected_position.z; #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) DEBUG_POS("<<< set_bed_level_equation_lsq", current_position); + if (DEBUGGING(LEVELING)) DEBUG_POS("<<< set_bed_level_equation_lsq", corrected_position); #endif sync_plan_position(); From 7aaff371b0cff844fc642e2d61cfea43c6b53060 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 21:30:52 -0700 Subject: [PATCH 089/383] Set version for RCBugFix --- Marlin/Default_Version.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/Default_Version.h b/Marlin/Default_Version.h index b473c08222..95f37f2553 100644 --- a/Marlin/Default_Version.h +++ b/Marlin/Default_Version.h @@ -28,9 +28,9 @@ // #error "You must specify the following parameters related to your distribution" #if true -#define SHORT_BUILD_VERSION "1.1.0-RC5" -#define DETAILED_BUILD_VERSION "1.1.0-RC5 From Archive" -#define STRING_DISTRIBUTION_DATE "2016-04-01 12:00" +#define SHORT_BUILD_VERSION "1.1.0-RCBugFix" +#define DETAILED_BUILD_VERSION "1.1.0-RCBugFix From Archive" +#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" // It might also be appropriate to define a location where additional information can be found // #define SOURCE_CODE_URL "http:// ..." #endif From c242bee44940fe586b3c48802a558d5d29614dc0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 00:10:52 -0700 Subject: [PATCH 090/383] Add a final lift, if configured, in Manual Bed Leveling --- Marlin/Marlin_main.cpp | 6 +++++- Marlin/ultralcd.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ab0a24ebf1..ffe0a5a581 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2951,7 +2951,11 @@ inline void gcode_G28() { } else { // One last "return to the bed" (as originally coded) at completion - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + + MIN_Z_HEIGHT_FOR_HOMING + #endif + ; line_to_current_position(); st_synchronize(); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 31d5d3165d..c1a55380c3 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -960,7 +960,11 @@ void lcd_cooldown() { buzz(200, 659); buzz(200, 698); #endif - current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z + #if MIN_Z_HEIGHT_FOR_HOMING > 0 + + MIN_Z_HEIGHT_FOR_HOMING + #endif + ; line_to_current(Z_AXIS); st_synchronize(); mbl.active = true; From bcf1e027bb30a38354794bc9fe26d890c4216005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sun, 17 Apr 2016 18:37:37 +0100 Subject: [PATCH 091/383] Fix the redeclaration of _ENDSTOP_HIT --- Marlin/stepper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 9e6fd7794a..4b52edac9b 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -298,13 +298,13 @@ void checkHitEndstops() { #define _SET_STOP_CHAR(A,C) ; #endif - #define _ENDSTOP_HIT(A,C) do{ \ + #define _ENDSTOP_HIT_ECHO(A,C) do{ \ SERIAL_ECHOPAIR(" " STRINGIFY(A) ":", endstops_trigsteps[A ##_AXIS] / axis_steps_per_unit[A ##_AXIS]); \ _SET_STOP_CHAR(A,C); }while(0) #define _ENDSTOP_HIT_TEST(A,C) \ if (TEST(endstop_hit_bits, A ##_MIN) || TEST(endstop_hit_bits, A ##_MAX)) \ - _ENDSTOP_HIT(A,C) + _ENDSTOP_HIT_ECHO(A,C) SERIAL_ECHO_START; SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); @@ -314,7 +314,7 @@ void checkHitEndstops() { #if ENABLED(Z_MIN_PROBE_ENDSTOP) #define P_AXIS Z_AXIS - if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT(P, 'P'); + if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P'); #endif SERIAL_EOL; From 90c49f5a1457c509c41709be7f3367ecba7edfa0 Mon Sep 17 00:00:00 2001 From: Jeff K Date: Sun, 17 Apr 2016 19:28:50 -0400 Subject: [PATCH 092/383] Fixed invalid addressing (overflow) of position_shift / software endstops Signed-off-by: Jeff K --- Marlin/Marlin_main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ab0a24ebf1..04cac77ef6 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3598,13 +3598,14 @@ inline void gcode_G92() { current_position[i] = v; - position_shift[i] += v - p; // Offset the coordinate space - update_software_endstops((AxisEnum)i); - if (i == E_AXIS) plan_set_e_position(v); - else + else { + position_shift[i] += v - p; // Offset the coordinate space + update_software_endstops((AxisEnum)i); + didXYZ = true; + } } } if (didXYZ) { From ed622ac79676f968d0d62c13688c72460c18b0a9 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 Apr 2016 23:50:36 -0700 Subject: [PATCH 093/383] Better splash screen consolidator --- .../ultralcd_implementation_hitachi_HD44780.h | 48 ++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 96870c975e..6acfdd0ba6 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -445,7 +445,7 @@ unsigned lcd_print(char c) { return charset_mapper(c); } } } - inline void logo_lines(const char *extra) { + static void logo_lines(const char *extra) { int indent = (LCD_WIDTH - 8 - lcd_strlen_P(extra)) / 2; lcd.setCursor(indent, 0); lcd.print('\x00'); lcd_printPGM(PSTR( "------" )); lcd.print('\x01'); lcd.setCursor(indent, 1); lcd_printPGM(PSTR("|Marlin|")); lcd_printPGM(extra); @@ -503,38 +503,64 @@ unsigned lcd_print(char c) { return charset_mapper(c); } #define LCD_EXTRA_SPACE (LCD_WIDTH-8) + #define CENTER_OR_SCROLL(STRING,DELAY) \ + lcd_erase_line(3); \ + if (strlen(STRING) <= LCD_WIDTH) { \ + lcd.setCursor((LCD_WIDTH - lcd_strlen_P(PSTR(STRING))) / 2, 3); \ + lcd_printPGM(PSTR(STRING)); \ + delay(DELAY); \ + } \ + else { \ + lcd_scroll(0, 3, PSTR(STRING), LCD_WIDTH, DELAY); \ + } + #ifdef STRING_SPLASH_LINE1 - // Combine into a single splash screen if possible + // + // Show the Marlin logo with splash line 1 + // if (LCD_EXTRA_SPACE >= strlen(STRING_SPLASH_LINE1) + 1) { + // + // Show the Marlin logo, splash line1, and splash line 2 + // logo_lines(PSTR(" " STRING_SPLASH_LINE1)); #ifdef STRING_SPLASH_LINE2 - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 2000); + CENTER_OR_SCROLL(STRING_SPLASH_LINE2, 2000); #else delay(2000); #endif } else { + // + // Show the Marlin logo with splash line 1 + // After a delay show splash line 2, if it exists + // + #ifdef STRING_SPLASH_LINE2 + #define _SPLASH_WAIT_1 1500 + #else + #define _SPLASH_WAIT_1 2000 + #endif logo_lines(PSTR("")); - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE1), LCD_WIDTH, 1500); + CENTER_OR_SCROLL(STRING_SPLASH_LINE1, _SPLASH_WAIT_1); #ifdef STRING_SPLASH_LINE2 - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 1500); + CENTER_OR_SCROLL(STRING_SPLASH_LINE2, 1500); #endif } #elif defined(STRING_SPLASH_LINE2) - // Combine into a single splash screen if possible + // + // Show splash line 2 only, alongside the logo if possible + // if (LCD_EXTRA_SPACE >= strlen(STRING_SPLASH_LINE2) + 1) { logo_lines(PSTR(" " STRING_SPLASH_LINE2)); delay(2000); } else { logo_lines(PSTR("")); - lcd_erase_line(3); - lcd_scroll(0, 3, PSTR(STRING_SPLASH_LINE2), LCD_WIDTH, 2000); + CENTER_OR_SCROLL(STRING_SPLASH_LINE2, 2000); } #else + // + // Show only the Marlin logo + // logo_lines(PSTR("")); delay(2000); #endif From 9a661bdd593bd35e7c259cf92ec6faf1b6855917 Mon Sep 17 00:00:00 2001 From: Marc Urben Date: Mon, 18 Apr 2016 00:30:07 +0200 Subject: [PATCH 094/383] Updated Kossel XL config files for the latest Marlin --- .../delta/generic/Configuration.h | 2 +- .../delta/kossel_xl/Configuration.h | 226 +++++++++++++----- .../delta/kossel_xl/Configuration_adv.h | 16 +- .../delta/kossel_xl/README.md | 20 +- 4 files changed, 182 insertions(+), 82 deletions(-) diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index abfaada242..dae79663c0 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -379,7 +379,7 @@ #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define DELTA_PRINTABLE_RADIUS 140 + #define DELTA_PRINTABLE_RADIUS 140.0 // Delta calibration menu // uncomment to add three points calibration menu option. diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 104a84e2f5..35517ad5ec 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -64,36 +64,6 @@ // example_configurations/delta directory. // -#define DELTA -#if ENABLED(DELTA) - - // Make delta curves from many straight lines (linear interpolation). - // This is a trade-off between visible corners (not enough segments) - // and processor overload (too many expensive sqrt calls). - #define DELTA_SEGMENTS_PER_SECOND 160 - - // NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them - - // Center-to-center distance of the holes in the diagonal push rods. - #define DELTA_DIAGONAL_ROD 317.3 + 2.5 // mm - - // Horizontal offset from middle of printer to smooth rod center. - #define DELTA_SMOOTH_ROD_OFFSET 220.1 // mm - - // Horizontal offset of the universal joints on the end effector. - #define DELTA_EFFECTOR_OFFSET 24.0 // mm - - // Horizontal offset of the universal joints on the carriages. - #define DELTA_CARRIAGE_OFFSET 22.0 // mm - - // Horizontal distance bridged by diagonal push rods when effector is centered. - #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET + 1) - - // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define DELTA_PRINTABLE_RADIUS 140.0 - -#endif - // @section info #if ENABLED(USE_AUTOMATIC_VERSIONING) @@ -376,6 +346,48 @@ // Uncomment this option to enable CoreXZ kinematics //#define COREXZ +//=========================================================================== +//============================== Delta Settings ============================= +//=========================================================================== +// Enable DELTA kinematics and most of the default configuration for Deltas +#define DELTA + +#if ENABLED(DELTA) + + // Make delta curves from many straight lines (linear interpolation). + // This is a trade-off between visible corners (not enough segments) + // and processor overload (too many expensive sqrt calls). + #define DELTA_SEGMENTS_PER_SECOND 160 + + // NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them + + // Center-to-center distance of the holes in the diagonal push rods. + #define DELTA_DIAGONAL_ROD 317.3 + 2.5 // mm + + // Horizontal offset from middle of printer to smooth rod center. + #define DELTA_SMOOTH_ROD_OFFSET 220.1 // mm + + // Horizontal offset of the universal joints on the end effector. + #define DELTA_EFFECTOR_OFFSET 24.0 // mm + + // Horizontal offset of the universal joints on the carriages. + #define DELTA_CARRIAGE_OFFSET 22.0 // mm + + // Horizontal distance bridged by diagonal push rods when effector is centered. + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET) + 1) + + // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). + #define DELTA_PRINTABLE_RADIUS 140.0 + + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + // If needed, adjust the X, Y, Z calibration coordinates + // in ultralcd.cpp@lcd_delta_calibrate_menu() + //#define DELTA_CALIBRATION_MENU + +#endif + // Enable this option for Toshiba steppers //#define CONFIG_STEPPERS_TOSHIBA @@ -452,11 +464,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Setting the wrong pin may have unexpected and potentially disastrous consequences. // Use with caution and do your homework. // -//#define Z_MIN_PROBE_ENDSTOP +#define Z_MIN_PROBE_ENDSTOP // Enable Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use the Z_MIN_PIN for your Z_MIN_PROBE. // The Z_MIN_PIN will then be used for both Z-homing and probing. -#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN +//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // To use a probe you must enable one of the two options above! @@ -489,7 +501,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section machine // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. -#define INVERT_X_DIR false +#define INVERT_X_DIR false // DELTA does not invert #define INVERT_Y_DIR false #define INVERT_Z_DIR false @@ -502,13 +514,13 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define INVERT_E3_DIR false // @section homing -//#define MIN_Z_HEIGHT_FOR_HOMING 7 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... +//#define MIN_Z_HEIGHT_FOR_HOMING 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... // Be sure you have this distance over your Z_MAX_POS in case. // ENDSTOP SETTINGS: // Sets direction of endstops when homing; 1=MAX, -1=MIN // :[-1,1] -#define X_HOME_DIR 1 +#define X_HOME_DIR 1 // deltas always home to max #define Y_HOME_DIR 1 #define Z_HOME_DIR 1 @@ -518,8 +530,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section machine // Travel limits after homing (units are in mm) -#define X_MIN_POS -DELTA_PRINTABLE_RADIUS -#define Y_MIN_POS -DELTA_PRINTABLE_RADIUS +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) #define Z_MIN_POS 0 #define X_MAX_POS DELTA_PRINTABLE_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS @@ -586,23 +598,24 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Enable this to sample the bed in a grid (least squares solution). // Note: this feature generates 10KB extra code size. - #define AUTO_BED_LEVELING_GRID + #define AUTO_BED_LEVELING_GRID // Deltas only support grid mode. #if ENABLED(AUTO_BED_LEVELING_GRID) + // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - #define FRONT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS - #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS + #define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20) + #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - 40 - #define MIN_PROBE_EDGE 20 // The Z probe minimum square sides can be no smaller than this. + #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. // Non-linear bed leveling will be used. // Compensate by interpolating between the nearest four Z probe values for each point. // Useful for deltas where the print surface may appear like a bowl or dome shape. // Works best with AUTO_BED_LEVELING_GRID_POINTS 5 or higher. - #define AUTO_BED_LEVELING_GRID_POINTS 7 + #define AUTO_BED_LEVELING_GRID_POINTS 5 #else // !AUTO_BED_LEVELING_GRID @@ -634,19 +647,18 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // | | // O-- FRONT --+ // (0,0) - #define X_PROBE_OFFSET_FROM_EXTRUDER 0.0 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER 0.0 // Y offset: -front +behind [the nozzle] - #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.3 // Z offset: -below +above [the nozzle] + #define X_PROBE_OFFSET_FROM_EXTRUDER 0.0 // Z probe to nozzle X offset: -left +right + #define Y_PROBE_OFFSET_FROM_EXTRUDER 0.0 // Z probe to nozzle Y offset: -front +behind + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.3 // Z probe to nozzle Z offset: -below (always!) - #define XY_TRAVEL_SPEED 7000 // X and Y axis travel speed between probes, in mm/min. + #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. #define Z_RAISE_BEFORE_PROBING 20 // How much the Z axis will be raised before traveling to the first probing point. - #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points. + #define Z_RAISE_BETWEEN_PROBINGS 10 // How much the Z axis will be raised when traveling from between next probing points. #define Z_RAISE_AFTER_PROBING 20 // How much the Z axis will be raised after the last probing point. - #define Z_PROBE_END_SCRIPT "G1 Z20 X0 Y0 F7000" -//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine. - // Useful to retract a deployable Z probe. + //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine. + // Useful to retract a deployable Z probe. // Probes are sensors/switches that need to be activated before they can be used // and deactivated after their use. @@ -654,7 +666,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER // when the hardware endstops are active. - //#define FIX_MOUNTED_PROBE + #define FIX_MOUNTED_PROBE // A Servo Probe can be defined in the servo section below. @@ -668,10 +680,91 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // For example any setup that uses the nozzle itself as a probe. //#define MECHANICAL_PROBE + // Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + // Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. + //#define Z_PROBE_ALLEN_KEY + + #if ENABLED(Z_PROBE_ALLEN_KEY) + // 2 or 3 sets of coordinates for deploying and retracting the spring loaded touch probe on G29, + // if servo actuated touch probe is not defined. Uncomment as appropriate for your printer/probe. + + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 30.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y DELTA_PRINTABLE_RADIUS + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 + + //#define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position + //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 + //#define Z_PROBE_ALLEN_KEY_STOW_1_Z 23.0 + //#define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down + //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 + //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 + //#define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear + //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_XYZ + + // Kossel Mini + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 35.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y 72.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y 0.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 + + //#define Z_PROBE_ALLEN_KEY_STOW_1_X -46.0 // Move the probe into position + //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 59.0 + //#define Z_PROBE_ALLEN_KEY_STOW_1_Z 28.0 + //#define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_STOW_2_X -46.0 // Move the nozzle down further to push the probe into retracted position. + //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 59.0 + //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 8.0 + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 + //#define Z_PROBE_ALLEN_KEY_STOW_3_X -46.0 // Raise things back up slightly so we don't bump into anything + //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 59.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 38.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_XYZ + + // Kossel Pro + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X -105.00 // Move left but not quite so far that we'll bump the belt + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y 0.00 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X -110.00 // Move outward to position deploy pin to the left of the arm + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y -125.00 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_X 45.00 // Move right to trigger deploy pin + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y -125.00 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 + + //#define Z_PROBE_ALLEN_KEY_STOW_1_X 36.00 // Line up with bed retaining clip + //#define Z_PROBE_ALLEN_KEY_STOW_1_Y -122.00 + //#define Z_PROBE_ALLEN_KEY_STOW_1_Z 75.0 + //#define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE HOMING_FEEDRATE_XYZ + //#define Z_PROBE_ALLEN_KEY_STOW_2_X 36.00 // move down to retract probe + //#define Z_PROBE_ALLEN_KEY_STOW_2_Y -122.00 + //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 25.0 + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 + //#define Z_PROBE_ALLEN_KEY_STOW_3_X 0.0 // return to 0,0,100 + //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 0.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 100.0 + //#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE HOMING_FEEDRATE_XYZ + #endif + // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, // it is highly recommended you leave Z_SAFE_HOMING enabled! - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. + // #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. // This feature is meant to avoid Z homing with Z probe outside the bed area. // When defined, it will: // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. @@ -700,7 +793,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #if ENABLED(MANUAL_HOME_POSITIONS) #define MANUAL_X_HOME_POS 0 #define MANUAL_Y_HOME_POS 0 - #define MANUAL_Z_HOME_POS 386.5 // For delta: Distance between nozzle and print surface after homing. + #define MANUAL_Z_HOME_POS 381.4 // For delta: Distance between nozzle and print surface after homing. #endif // @section movement @@ -709,18 +802,23 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l * MOVEMENT SETTINGS */ -#define HOMING_FEEDRATE {60*60, 60*60, 60*60, 0} // set the homing speeds (mm/min) +// delta homing speeds must be the same on xyz +#define HOMING_FEEDRATE_XYZ (60*60) +#define HOMING_FEEDRATE_E 0 +#define HOMING_FEEDRATE { HOMING_FEEDRATE_XYZ, HOMING_FEEDRATE_XYZ, HOMING_FEEDRATE_XYZ, HOMING_FEEDRATE_E } -// default settings +// variables to calculate steps #define XYZ_FULL_STEPS_PER_ROTATION 200 #define XYZ_MICROSTEPS 16 #define XYZ_BELT_PITCH 2 #define XYZ_PULLEY_TEETH 16 -#define XYZ_STEPS ((XYZ_FULL_STEPS_PER_ROTATION) * (XYZ_MICROSTEPS) / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) + +// delta speeds must be the same on xyz +#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) #define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 158} // default steps per unit for PowerWasp -#define DEFAULT_MAX_FEEDRATE {200, 200, 200, 200} // (mm/sec) -#define DEFAULT_MAX_ACCELERATION {9000,9000,9000,9000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. +#define DEFAULT_MAX_FEEDRATE {200, 200, 200, 25} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {9000,9000,9000,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot. #define DEFAULT_ACCELERATION 2000 // X, Y, Z and E acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration in mm/s^2 for retracts @@ -786,11 +884,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Preheat Constants #define PLA_PREHEAT_HOTEND_TEMP 180 #define PLA_PREHEAT_HPB_TEMP 70 -#define PLA_PREHEAT_FAN_SPEED 100 // Insert Value between 0 and 255 +#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 #define ABS_PREHEAT_HOTEND_TEMP 240 -#define ABS_PREHEAT_HPB_TEMP 110 -#define ABS_PREHEAT_FAN_SPEED 100 // Insert Value between 0 and 255 +#define ABS_PREHEAT_HPB_TEMP 100 +#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 //============================================================================= //============================= LCD and SD support ============================ @@ -1151,8 +1249,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2) #define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel - #define MEASURED_UPPER_LIMIT 2.00 //upper limit factor used for sensor reading validation in mm - #define MEASURED_LOWER_LIMIT 1.60 //lower limit factor for sensor reading validation in mm + #define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm + #define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm #define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM) #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index f42f877014..045e4d658c 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -86,7 +86,7 @@ */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds - #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius + #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) @@ -261,9 +261,9 @@ // @section homing //homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: -#define X_HOME_BUMP_MM 5 -#define Y_HOME_BUMP_MM 5 -#define Z_HOME_BUMP_MM 2 +#define X_HOME_BUMP_MM 2 +#define Y_HOME_BUMP_MM 2 +#define Z_HOME_BUMP_MM 2 // deltas need the same for all three axis #define HOMING_BUMP_DIVISOR {2, 2, 4} // Re-Bump Speed Divisor (Divides the Homing Feedrate) //#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. @@ -285,7 +285,7 @@ // Default stepper release if idle. Set to 0 to deactivate. // Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true. // Time can be set by M18 and M84. -#define DEFAULT_STEPPER_DEACTIVE_TIME 60 +#define DEFAULT_STEPPER_DEACTIVE_TIME 120 #define DISABLE_INACTIVE_X true #define DISABLE_INACTIVE_Y true #define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished. @@ -297,7 +297,8 @@ // @section lcd #if ENABLED(ULTIPANEL) - #define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE_XYZ 50*60 + #define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel #define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder #endif @@ -307,7 +308,8 @@ #define DEFAULT_MINSEGMENTTIME 20000 // If defined the movements slow down when the look ahead buffer is only half full -#define SLOWDOWN +// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second) +//#define SLOWDOWN // Frequency limit // See nophead's blog for more info diff --git a/Marlin/example_configurations/delta/kossel_xl/README.md b/Marlin/example_configurations/delta/kossel_xl/README.md index cfdcab81c6..1cabcdb3fe 100644 --- a/Marlin/example_configurations/delta/kossel_xl/README.md +++ b/Marlin/example_configurations/delta/kossel_xl/README.md @@ -1,20 +1,20 @@ # Configuration for Kossel k800 XL -This example configuration ist for a Kossel XL with a printable bed diameter of 280mm and a height of 385mm. It also has the auto bed leveling probe (with a endstop switch) and the heat bed activated. +This example configuration is for a Kossel XL with a printable bed diameter of 280mm and a height of 380mm. It also has the auto bed leveling probe (with an endstop switch) and the heated bed activated. ## Configuration -You might have/want to edit at least the following settings in Configuration.h: -* MANUAL_Z_HOME_POS The hight of your printing space available, auto bed leveling makes this not as important as before -* DELTA_PRINTABLE_RADIUS The printable radius -* DEFAULT_AXIS_STEPS_PER_UNIT [http://zennmaster.com/makingstuff/reprap-101-calibrating-your-extruder-part-1-e-steps](The steps for the extruder to optimize the amount of filament flow) +You might need (or want) to edit at least the following settings in `Configuration.h`: +* `MANUAL_Z_HOME_POS` - The available height of your printing space. Auto Bed Leveling makes it less important to have the exact value. +* `DELTA_PRINTABLE_RADIUS` - The printable radius is how far from the center the nozzle can reach. +* `DEFAULT_AXIS_STEPS_PER_UNIT` - Steps-per-millimeter for the delta steppers, and for the extruder [to optimize the amount of filament flow](http://zennmaster.com/makingstuff/reprap-101-calibrating-your-extruder-part-1-e-steps). ### Fine tuning -* Increase DELTA_RADIUS when the model is convex (bulge in the middle) -* Increase DELTA_DIAGONAL_ROD when the model is larger then expected +* Increase `DELTA_RADIUS` if the model comes out convex (with a bulge in the middle) +* Increase `DELTA_DIAGONAL_ROD` if the model comes out larger than expected ### [http://reprap.org/wiki/PID_Tuning](PID Tuning) -* DEFAULT_Kp (PID tuning for the hotend) -* DEFAULT_Ki (PID tuning for the hotend) -* DEFAULT_Kd (PID tuning for the hotend) +* `DEFAULT_Kp` - The proportional term +* `DEFAULT_Ki` - The integral term +* `DEFAULT_Kd` - The derivative term ### PSU Options * The power supply is configured to 2 (to use a relay to switch 12V on and off) From f2558b1f2c8df52ffb2dedb0943771bb6d6c7e4c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 19:45:27 -0700 Subject: [PATCH 095/383] Additional delta config updates --- .../delta/biv2.5/Configuration.h | 26 +++++++++---------- .../delta/generic/Configuration.h | 24 ++++++++--------- .../delta/kossel_mini/Configuration.h | 20 +++++++------- .../delta/kossel_pro/Configuration.h | 26 +++++++++---------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 7600c68d55..ee10b51058 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -376,10 +376,10 @@ #define DELTA_CARRIAGE_OFFSET 20.0 // mm // Horizontal distance bridged by diagonal push rods when effector is centered. - #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET)) // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define DELTA_PRINTABLE_RADIUS 160 + #define DELTA_PRINTABLE_RADIUS 160.0 // Delta calibration menu // uncomment to add three points calibration menu option. @@ -532,8 +532,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section machine // Travel limits after homing (units are in mm) -#define X_MIN_POS -DELTA_PRINTABLE_RADIUS -#define Y_MIN_POS -DELTA_PRINTABLE_RADIUS +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) #define Z_MIN_POS 0 #define X_MAX_POS DELTA_PRINTABLE_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS @@ -606,9 +606,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Set the rectangle in which to probe. #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - #define FRONT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. @@ -697,7 +697,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 @@ -706,7 +706,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 @@ -716,11 +716,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 35.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y 72.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -46.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 59.0 @@ -729,7 +729,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_STOW_2_X -46.0 // Move the nozzle down further to push the probe into retracted position. //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 8.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -46.0 // Raise things back up slightly so we don't bump into anything //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 38.0 @@ -747,7 +747,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_PROBE_ALLEN_KEY_DEPLOY_3_X 45.00 // Move right to trigger deploy pin #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y -125.00 #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z 100.0 - #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 #define Z_PROBE_ALLEN_KEY_STOW_1_X 36.00 // Line up with bed retaining clip #define Z_PROBE_ALLEN_KEY_STOW_1_Y -122.00 @@ -756,7 +756,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_PROBE_ALLEN_KEY_STOW_2_X 36.00 // move down to retract probe #define Z_PROBE_ALLEN_KEY_STOW_2_Y -122.00 #define Z_PROBE_ALLEN_KEY_STOW_2_Z 25.0 - #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 #define Z_PROBE_ALLEN_KEY_STOW_3_X 0.0 // return to 0,0,100 #define Z_PROBE_ALLEN_KEY_STOW_3_Y 0.0 #define Z_PROBE_ALLEN_KEY_STOW_3_Z 100.0 diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index dae79663c0..bb499ff0aa 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -376,7 +376,7 @@ #define DELTA_CARRIAGE_OFFSET 18.0 // mm // Horizontal distance bridged by diagonal push rods when effector is centered. - #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET)) // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 140.0 @@ -532,8 +532,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // @section machine // Travel limits after homing (units are in mm) -#define X_MIN_POS -DELTA_PRINTABLE_RADIUS -#define Y_MIN_POS -DELTA_PRINTABLE_RADIUS +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) #define Z_MIN_POS 0 #define X_MAX_POS DELTA_PRINTABLE_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS @@ -606,9 +606,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - #define FRONT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. @@ -697,7 +697,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 #define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS #define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 #define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position #define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 @@ -706,7 +706,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down #define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 #define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 - #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 #define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear #define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 #define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 @@ -716,11 +716,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 35.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y 72.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -46.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 59.0 @@ -729,7 +729,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_STOW_2_X -46.0 // Move the nozzle down further to push the probe into retracted position. //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 8.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -46.0 // Raise things back up slightly so we don't bump into anything //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 38.0 @@ -747,7 +747,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_X 45.00 // Move right to trigger deploy pin //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y -125.00 //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 //#define Z_PROBE_ALLEN_KEY_STOW_1_X 36.00 // Line up with bed retaining clip //#define Z_PROBE_ALLEN_KEY_STOW_1_Y -122.00 @@ -756,7 +756,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define Z_PROBE_ALLEN_KEY_STOW_2_X 36.00 // move down to retract probe //#define Z_PROBE_ALLEN_KEY_STOW_2_Y -122.00 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 25.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 //#define Z_PROBE_ALLEN_KEY_STOW_3_X 0.0 // return to 0,0,100 //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 0.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 100.0 diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index 45186cfe99..f98ac20c0e 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -376,10 +376,10 @@ #define DELTA_CARRIAGE_OFFSET 19.5 // mm // Horizontal distance bridged by diagonal push rods when effector is centered. - #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET)) // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define DELTA_PRINTABLE_RADIUS 90 + #define DELTA_PRINTABLE_RADIUS 90.0 // Delta calibration menu // uncomment to add three points calibration menu option. @@ -532,8 +532,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section machine // Travel limits after homing (units are in mm) -#define X_MIN_POS -DELTA_PRINTABLE_RADIUS -#define Y_MIN_POS -DELTA_PRINTABLE_RADIUS +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) #define Z_MIN_POS 0 #define X_MAX_POS DELTA_PRINTABLE_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS @@ -606,9 +606,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10) - #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - #define FRONT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. @@ -697,7 +697,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 @@ -706,7 +706,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 @@ -751,7 +751,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_X 45.00 // Move right to trigger deploy pin //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y -125.00 //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 //#define Z_PROBE_ALLEN_KEY_STOW_1_X 36.00 // Line up with bed retaining clip //#define Z_PROBE_ALLEN_KEY_STOW_1_Y -122.00 @@ -760,7 +760,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_STOW_2_X 36.00 // move down to retract probe //#define Z_PROBE_ALLEN_KEY_STOW_2_Y -122.00 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 25.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 //#define Z_PROBE_ALLEN_KEY_STOW_3_X 0.0 // return to 0,0,100 //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 0.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 100.0 diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 0e29f9a705..5cd40776e5 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -365,10 +365,10 @@ #define DELTA_CARRIAGE_OFFSET 30.0 // mm // Horizontal distance bridged by diagonal push rods when effector is centered. - #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET)) // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). - #define DELTA_PRINTABLE_RADIUS 127 + #define DELTA_PRINTABLE_RADIUS 127.0 // Delta calibration menu // uncomment to add three points calibration menu option. @@ -521,8 +521,8 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // @section machine // Travel limits after homing (units are in mm) -#define X_MIN_POS -DELTA_PRINTABLE_RADIUS -#define Y_MIN_POS -DELTA_PRINTABLE_RADIUS +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) #define Z_MIN_POS 0 #define X_MAX_POS DELTA_PRINTABLE_RADIUS #define Y_MAX_POS DELTA_PRINTABLE_RADIUS @@ -595,9 +595,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // Set the rectangle in which to probe #define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS-25) - #define LEFT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS - #define FRONT_PROBE_BED_POSITION -DELTA_PROBEABLE_RADIUS + #define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS) #define BACK_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS #define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this. @@ -688,7 +688,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 @@ -697,7 +697,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 @@ -707,11 +707,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_X 35.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y 72.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y 0.0 //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 - //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_1_X -46.0 // Move the probe into position //#define Z_PROBE_ALLEN_KEY_STOW_1_Y 59.0 @@ -720,7 +720,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define Z_PROBE_ALLEN_KEY_STOW_2_X -46.0 // Move the nozzle down further to push the probe into retracted position. //#define Z_PROBE_ALLEN_KEY_STOW_2_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_2_Z 8.0 - //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/10) + //#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/10 //#define Z_PROBE_ALLEN_KEY_STOW_3_X -46.0 // Raise things back up slightly so we don't bump into anything //#define Z_PROBE_ALLEN_KEY_STOW_3_Y 59.0 //#define Z_PROBE_ALLEN_KEY_STOW_3_Z 38.0 @@ -738,7 +738,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_PROBE_ALLEN_KEY_DEPLOY_3_X 45.00 // Move right to trigger deploy pin #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y -125.00 #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z Z_PROBE_ALLEN_KEY_DEPLOY_2_Z - #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 #define Z_PROBE_ALLEN_KEY_STOW_1_X 36.00 // Line up with bed retaining clip #define Z_PROBE_ALLEN_KEY_STOW_1_Y -125.00 @@ -747,7 +747,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_PROBE_ALLEN_KEY_STOW_2_X Z_PROBE_ALLEN_KEY_STOW_1_X // move down to retract probe #define Z_PROBE_ALLEN_KEY_STOW_2_Y Z_PROBE_ALLEN_KEY_STOW_1_Y #define Z_PROBE_ALLEN_KEY_STOW_2_Z 0.0 - #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ/2) + #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (HOMING_FEEDRATE_XYZ)/2 #define Z_PROBE_ALLEN_KEY_STOW_3_X 0.0 // return to 0,0,100 #define Z_PROBE_ALLEN_KEY_STOW_3_Y 0.0 #define Z_PROBE_ALLEN_KEY_STOW_3_Z 100.0 From 91de69bb6e95952f623bec50ed6a21ca6ee0f05e Mon Sep 17 00:00:00 2001 From: Silvio Didonna Date: Mon, 18 Apr 2016 16:46:19 +0200 Subject: [PATCH 096/383] Endstop settings modified. Witbox have max endstops for X and Y. --- Marlin/example_configurations/WITBOX/Configuration.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 6f96bbf422..14e7f37291 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -347,11 +347,11 @@ // Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. -#define USE_XMIN_PLUG -#define USE_YMIN_PLUG +//#define USE_XMIN_PLUG +//#define USE_YMIN_PLUG #define USE_ZMIN_PLUG -//#define USE_XMAX_PLUG -//#define USE_YMAX_PLUG +#define USE_XMAX_PLUG +#define USE_YMAX_PLUG //#define USE_ZMAX_PLUG // coarse Endstop Settings From 86c868771b9587dec7ee63e3b997d4ee4e0b1fb7 Mon Sep 17 00:00:00 2001 From: Philippe LUC Date: Sun, 17 Apr 2016 14:12:21 +0200 Subject: [PATCH 097/383] Fix bug in pullups handling for Z_MIN_PROBE --- Marlin/Conditionals.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index b9809793b7..027a3b2095 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -296,7 +296,7 @@ #if ENABLED(USE_ZMIN_PLUG) #define ENDSTOPPULLUP_ZMIN #endif - #if ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) + #if DISABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) #define ENDSTOPPULLUP_ZMIN_PROBE #endif #endif From 2bc2485313cbb8908519ec7f4566363c62771dce Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 14:13:23 -0700 Subject: [PATCH 098/383] Update font remarks in Conditionals.h --- Marlin/Conditionals.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index e3a2d75556..c84036fe1d 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -218,7 +218,7 @@ #endif #if ENABLED(DOGLCD) - /* Custom characters defined in font font_6x10_marlin_symbols */ + /* Custom characters defined in font dogm_font_data_Marlin_symbols.h / Marlin_symbols.fon */ // \x00 intentionally skipped to avoid problems in strings #define LCD_STR_REFRESH "\x01" #define LCD_STR_FOLDER "\x02" @@ -235,7 +235,7 @@ // Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here. #else /* Custom characters defined in the first 8 characters of the LCD */ - #define LCD_STR_BEDTEMP "\x00" // this will have 'unexpected' results when used in a string! + #define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string! #define LCD_STR_DEGREE "\x01" #define LCD_STR_THERMOMETER "\x02" #define LCD_STR_UPLEVEL "\x03" From ba66336503d245b94eb92749af49cef2566e23a2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 19:01:49 -0700 Subject: [PATCH 099/383] Output error for disabled M303 --- Marlin/Marlin_main.cpp | 5 +++++ Marlin/language.h | 1 + Marlin/temperature.cpp | 4 ++++ Marlin/temperature.h | 4 +++- 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0714072e93..89a5f5e509 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5559,6 +5559,7 @@ inline void gcode_M226() { * U with a non-zero value will apply the result to current settings */ inline void gcode_M303() { +#if ENABLED(PIDTEMP) int e = code_seen('E') ? code_value_short() : 0; int c = code_seen('C') ? code_value_short() : 5; bool u = code_seen('U') && code_value_short() != 0; @@ -5573,6 +5574,10 @@ inline void gcode_M303() { PID_autotune(temp, e, c, u); KEEPALIVE_STATE(IN_HANDLER); +#else + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM(MSG_ERR_M303_DISABLED); +#endif } #if ENABLED(SCARA) diff --git a/Marlin/language.h b/Marlin/language.h index 9085a6a85f..0bbae448b3 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -159,6 +159,7 @@ #define MSG_ERR_M421_REQUIRES_XYZ "M421 requires XYZ parameters" #define MSG_ERR_MESH_INDEX_OOB "Mesh XY index is out of bounds" #define MSG_ERR_M428_TOO_FAR "Too far from reference point" +#define MSG_ERR_M303_DISABLED "PIDTEMP disabled" #define MSG_M119_REPORT "Reporting endstop status" #define MSG_ENDSTOP_HIT "TRIGGERED" #define MSG_ENDSTOP_OPEN "open" diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 3fad457cb9..9b56752b5f 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -221,6 +221,8 @@ static void updateTemperaturesFromRawValues(); //================================ Functions ================================ //=========================================================================== +#if ENABLED(PIDTEMP) + void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { float input = 0.0; int cycles = 0; @@ -392,6 +394,8 @@ void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false } } +#endif // PIDTEMP + void updatePID() { #if ENABLED(PIDTEMP) for (int e = 0; e < EXTRUDERS; e++) { diff --git a/Marlin/temperature.h b/Marlin/temperature.h index 9747d07acb..c49f2c46a5 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -169,7 +169,9 @@ int getHeaterPower(int heater); void disable_all_heaters(); void updatePID(); -void PID_autotune(float temp, int extruder, int ncycles, bool set_result=false); +#if ENABLED(PIDTEMP) + void PID_autotune(float temp, int extruder, int ncycles, bool set_result=false); +#endif void setExtruderAutoFanState(int pin, bool state); void checkExtruderAutoFans(); From a26d70e93244001fdc80d1b6c439101bd07480e5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 19:02:11 -0700 Subject: [PATCH 100/383] Apply indentation to gcode_M303, PID_autotune --- Marlin/Marlin_main.cpp | 28 ++-- Marlin/temperature.cpp | 288 ++++++++++++++++++++--------------------- 2 files changed, 158 insertions(+), 158 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 89a5f5e509..7b232e56bd 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5559,25 +5559,25 @@ inline void gcode_M226() { * U with a non-zero value will apply the result to current settings */ inline void gcode_M303() { -#if ENABLED(PIDTEMP) - int e = code_seen('E') ? code_value_short() : 0; - int c = code_seen('C') ? code_value_short() : 5; - bool u = code_seen('U') && code_value_short() != 0; + #if ENABLED(PIDTEMP) + int e = code_seen('E') ? code_value_short() : 0; + int c = code_seen('C') ? code_value_short() : 5; + bool u = code_seen('U') && code_value_short() != 0; - float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0); + float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0); - if (e >= 0 && e < EXTRUDERS) - target_extruder = e; + if (e >= 0 && e < EXTRUDERS) + target_extruder = e; - KEEPALIVE_STATE(NOT_BUSY); // don't send "busy: processing" messages during autotune output + KEEPALIVE_STATE(NOT_BUSY); // don't send "busy: processing" messages during autotune output - PID_autotune(temp, e, c, u); + PID_autotune(temp, e, c, u); - KEEPALIVE_STATE(IN_HANDLER); -#else - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM(MSG_ERR_M303_DISABLED); -#endif + KEEPALIVE_STATE(IN_HANDLER); + #else + SERIAL_ERROR_START; + SERIAL_ERRORLNPGM(MSG_ERR_M303_DISABLED); + #endif } #if ENABLED(SCARA) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 9b56752b5f..bfbadc6cbe 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -223,176 +223,176 @@ static void updateTemperaturesFromRawValues(); #if ENABLED(PIDTEMP) -void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { - float input = 0.0; - int cycles = 0; - bool heating = true; + void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { + float input = 0.0; + int cycles = 0; + bool heating = true; - millis_t temp_ms = millis(), t1 = temp_ms, t2 = temp_ms; - long t_high = 0, t_low = 0; + millis_t temp_ms = millis(), t1 = temp_ms, t2 = temp_ms; + long t_high = 0, t_low = 0; - long bias, d; - float Ku, Tu; - float workKp = 0, workKi = 0, workKd = 0; - float max = 0, min = 10000; + long bias, d; + float Ku, Tu; + float workKp = 0, workKi = 0, workKd = 0; + float max = 0, min = 10000; - #if HAS_AUTO_FAN - millis_t next_auto_fan_check_ms = temp_ms + 2500UL; - #endif - - if (extruder >= EXTRUDERS - #if !HAS_TEMP_BED - || extruder < 0 + #if HAS_AUTO_FAN + millis_t next_auto_fan_check_ms = temp_ms + 2500UL; #endif - ) { - SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM); - return; - } - SERIAL_ECHOLN(MSG_PID_AUTOTUNE_START); + if (extruder >= EXTRUDERS + #if !HAS_TEMP_BED + || extruder < 0 + #endif + ) { + SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM); + return; + } - disable_all_heaters(); // switch off all heaters. + SERIAL_ECHOLN(MSG_PID_AUTOTUNE_START); - if (extruder < 0) - soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2; - else - soft_pwm[extruder] = bias = d = (PID_MAX) / 2; + disable_all_heaters(); // switch off all heaters. - // PID Tuning loop - for (;;) { + if (extruder < 0) + soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2; + else + soft_pwm[extruder] = bias = d = (PID_MAX) / 2; - millis_t ms = millis(); + // PID Tuning loop + for (;;) { - if (temp_meas_ready) { // temp sample ready - updateTemperaturesFromRawValues(); + millis_t ms = millis(); - input = (extruder < 0) ? current_temperature_bed : current_temperature[extruder]; + if (temp_meas_ready) { // temp sample ready + updateTemperaturesFromRawValues(); - max = max(max, input); - min = min(min, input); + input = (extruder < 0) ? current_temperature_bed : current_temperature[extruder]; - #if HAS_AUTO_FAN - if (ELAPSED(ms, next_auto_fan_check_ms)) { - checkExtruderAutoFans(); - next_auto_fan_check_ms = ms + 2500UL; - } - #endif + max = max(max, input); + min = min(min, input); + + #if HAS_AUTO_FAN + if (ELAPSED(ms, next_auto_fan_check_ms)) { + checkExtruderAutoFans(); + next_auto_fan_check_ms = ms + 2500UL; + } + #endif - if (heating && input > temp) { - if (ELAPSED(ms, t2 + 5000UL)) { - heating = false; - if (extruder < 0) - soft_pwm_bed = (bias - d) >> 1; - else - soft_pwm[extruder] = (bias - d) >> 1; - t1 = ms; - t_high = t1 - t2; - max = temp; + if (heating && input > temp) { + if (ELAPSED(ms, t2 + 5000UL)) { + heating = false; + if (extruder < 0) + soft_pwm_bed = (bias - d) >> 1; + else + soft_pwm[extruder] = (bias - d) >> 1; + t1 = ms; + t_high = t1 - t2; + max = temp; + } } - } - if (!heating && input < temp) { - if (ELAPSED(ms, t1 + 5000UL)) { - heating = true; - t2 = ms; - t_low = t2 - t1; - if (cycles > 0) { - long max_pow = extruder < 0 ? MAX_BED_POWER : PID_MAX; - bias += (d * (t_high - t_low)) / (t_low + t_high); - bias = constrain(bias, 20, max_pow - 20); - d = (bias > max_pow / 2) ? max_pow - 1 - bias : bias; - - SERIAL_PROTOCOLPGM(MSG_BIAS); SERIAL_PROTOCOL(bias); - SERIAL_PROTOCOLPGM(MSG_D); SERIAL_PROTOCOL(d); - SERIAL_PROTOCOLPGM(MSG_T_MIN); SERIAL_PROTOCOL(min); - SERIAL_PROTOCOLPGM(MSG_T_MAX); SERIAL_PROTOCOLLN(max); - if (cycles > 2) { - Ku = (4.0 * d) / (3.14159265 * (max - min) / 2.0); - Tu = ((float)(t_low + t_high) / 1000.0); - SERIAL_PROTOCOLPGM(MSG_KU); SERIAL_PROTOCOL(Ku); - SERIAL_PROTOCOLPGM(MSG_TU); SERIAL_PROTOCOLLN(Tu); - workKp = 0.6 * Ku; - workKi = 2 * workKp / Tu; - workKd = workKp * Tu / 8; - SERIAL_PROTOCOLLNPGM(MSG_CLASSIC_PID); - SERIAL_PROTOCOLPGM(MSG_KP); SERIAL_PROTOCOLLN(workKp); - SERIAL_PROTOCOLPGM(MSG_KI); SERIAL_PROTOCOLLN(workKi); - SERIAL_PROTOCOLPGM(MSG_KD); SERIAL_PROTOCOLLN(workKd); - /** - workKp = 0.33*Ku; - workKi = workKp/Tu; - workKd = workKp*Tu/3; - SERIAL_PROTOCOLLNPGM(" Some overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); - workKp = 0.2*Ku; - workKi = 2*workKp/Tu; - workKd = workKp*Tu/3; - SERIAL_PROTOCOLLNPGM(" No overshoot "); - SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); - SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); - SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); - */ + if (!heating && input < temp) { + if (ELAPSED(ms, t1 + 5000UL)) { + heating = true; + t2 = ms; + t_low = t2 - t1; + if (cycles > 0) { + long max_pow = extruder < 0 ? MAX_BED_POWER : PID_MAX; + bias += (d * (t_high - t_low)) / (t_low + t_high); + bias = constrain(bias, 20, max_pow - 20); + d = (bias > max_pow / 2) ? max_pow - 1 - bias : bias; + + SERIAL_PROTOCOLPGM(MSG_BIAS); SERIAL_PROTOCOL(bias); + SERIAL_PROTOCOLPGM(MSG_D); SERIAL_PROTOCOL(d); + SERIAL_PROTOCOLPGM(MSG_T_MIN); SERIAL_PROTOCOL(min); + SERIAL_PROTOCOLPGM(MSG_T_MAX); SERIAL_PROTOCOLLN(max); + if (cycles > 2) { + Ku = (4.0 * d) / (3.14159265 * (max - min) / 2.0); + Tu = ((float)(t_low + t_high) / 1000.0); + SERIAL_PROTOCOLPGM(MSG_KU); SERIAL_PROTOCOL(Ku); + SERIAL_PROTOCOLPGM(MSG_TU); SERIAL_PROTOCOLLN(Tu); + workKp = 0.6 * Ku; + workKi = 2 * workKp / Tu; + workKd = workKp * Tu / 8; + SERIAL_PROTOCOLLNPGM(MSG_CLASSIC_PID); + SERIAL_PROTOCOLPGM(MSG_KP); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(MSG_KI); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(MSG_KD); SERIAL_PROTOCOLLN(workKd); + /** + workKp = 0.33*Ku; + workKi = workKp/Tu; + workKd = workKp*Tu/3; + SERIAL_PROTOCOLLNPGM(" Some overshoot "); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); + workKp = 0.2*Ku; + workKi = 2*workKp/Tu; + workKd = workKp*Tu/3; + SERIAL_PROTOCOLLNPGM(" No overshoot "); + SERIAL_PROTOCOLPGM(" Kp: "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM(" Ki: "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM(" Kd: "); SERIAL_PROTOCOLLN(workKd); + */ + } } + if (extruder < 0) + soft_pwm_bed = (bias + d) >> 1; + else + soft_pwm[extruder] = (bias + d) >> 1; + cycles++; + min = temp; } - if (extruder < 0) - soft_pwm_bed = (bias + d) >> 1; - else - soft_pwm[extruder] = (bias + d) >> 1; - cycles++; - min = temp; } } - } - #define MAX_OVERSHOOT_PID_AUTOTUNE 20 - if (input > temp + MAX_OVERSHOOT_PID_AUTOTUNE) { - SERIAL_PROTOCOLLNPGM(MSG_PID_TEMP_TOO_HIGH); - return; - } - // Every 2 seconds... - if (ELAPSED(ms, temp_ms + 2000UL)) { - #if HAS_TEMP_HOTEND || HAS_TEMP_BED - print_heaterstates(); - SERIAL_EOL; - #endif + #define MAX_OVERSHOOT_PID_AUTOTUNE 20 + if (input > temp + MAX_OVERSHOOT_PID_AUTOTUNE) { + SERIAL_PROTOCOLLNPGM(MSG_PID_TEMP_TOO_HIGH); + return; + } + // Every 2 seconds... + if (ELAPSED(ms, temp_ms + 2000UL)) { + #if HAS_TEMP_HOTEND || HAS_TEMP_BED + print_heaterstates(); + SERIAL_EOL; + #endif - temp_ms = ms; - } // every 2 seconds - // Over 2 minutes? - if (((ms - t1) + (ms - t2)) > (10L * 60L * 1000L * 2L)) { - SERIAL_PROTOCOLLNPGM(MSG_PID_TIMEOUT); - return; - } - if (cycles > ncycles) { - SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED); - const char* estring = extruder < 0 ? "bed" : ""; - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd); - - // Use the result? (As with "M303 U1") - if (set_result) { - if (extruder < 0) { - #if ENABLED(PIDTEMPBED) - bedKp = workKp; - bedKi = scalePID_i(workKi); - bedKd = scalePID_d(workKd); + temp_ms = ms; + } // every 2 seconds + // Over 2 minutes? + if (((ms - t1) + (ms - t2)) > (10L * 60L * 1000L * 2L)) { + SERIAL_PROTOCOLLNPGM(MSG_PID_TIMEOUT); + return; + } + if (cycles > ncycles) { + SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED); + const char* estring = extruder < 0 ? "bed" : ""; + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd); + + // Use the result? (As with "M303 U1") + if (set_result) { + if (extruder < 0) { + #if ENABLED(PIDTEMPBED) + bedKp = workKp; + bedKi = scalePID_i(workKi); + bedKd = scalePID_d(workKd); + updatePID(); + #endif + } + else { + PID_PARAM(Kp, extruder) = workKp; + PID_PARAM(Ki, extruder) = scalePID_i(workKi); + PID_PARAM(Kd, extruder) = scalePID_d(workKd); updatePID(); - #endif - } - else { - PID_PARAM(Kp, extruder) = workKp; - PID_PARAM(Ki, extruder) = scalePID_i(workKi); - PID_PARAM(Kd, extruder) = scalePID_d(workKd); - updatePID(); + } } + return; } - return; + lcd_update(); } - lcd_update(); } -} #endif // PIDTEMP From 1110814ecf8aeb61afc2b9c5566fd3e579b14148 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 18 Apr 2016 16:48:04 +0900 Subject: [PATCH 101/383] Update and change Japanese translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update and change Japanese translation ・Follow-up the PR #3411(Update Readme.fonts about Kana), Remove "who really..." strings. I had forgotten it. ・Add readable translated strings in comment ・Add Japanese translation. MSG_LCD_ENDSTOPS "エンドストップ" (utf8 version only. Because non-utf8 version ("エンドストップ") over 8 characters) ・Change translation. MSG_ACC "カソクド mm/s2" MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" ("カソクド mm/s2") --- Marlin/language_kana.h | 245 ++++++++++++++++++------------------ Marlin/language_kana_utf8.h | 22 ++-- 2 files changed, 134 insertions(+), 133 deletions(-) diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 251c251d36..864d229cfb 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -38,139 +38,140 @@ // 片仮名表示定義 #define WELCOME_MSG MACHINE_NAME " ready." -#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\x20\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "Card inserted" -#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "Card removed" -#define MSG_MAIN "\xd2\xb2\xdd" // "Main" -#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "Autostart" -#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "Disable steppers" -#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Auto home" -#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xb2\xbc" //"Click to Begin" -#define MSG_LEVEL_BED_DONE "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xdd\xd8\xae\xb3" //"Leveling Done!" -#define MSG_LEVEL_BED_CANCEL "\xc4\xd8\xd4\xd2" //"Cancel" -#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "Set home offsets" -#define MSG_HOME_OFFSETS_APPLIED "\xb5\xcc\xbe\xaf\xc4\x20\xc3\xb7\xd6\xb3\xbb\xda\xcf\xbc\xc0" //"Offsets applied" -#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "Set origin" -#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "Preheat PLA" +#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\x20\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "カード ソウニュウサレマシタ" ("Card inserted") +#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "カードガアリマセン" ("Card removed") +#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters +#define MSG_MAIN "\xd2\xb2\xdd" // "メイン" ("Main") +#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "ジドウカイシ" ("Autostart") +#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "モーターデンゲン オフ" ("Disable steppers") +#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Auto home") +#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Homing XYZ") +#define MSG_LEVEL_BED_WAITING "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xb2\xbc" // "レベリングカイシ" ("Click to Begin") +#define MSG_LEVEL_BED_DONE "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xdd\xd8\xae\xb3" // "レベリングカンリョウ" ("Leveling Done!") +#define MSG_LEVEL_BED_CANCEL "\xc4\xd8\xd4\xd2" // "トリヤメ" ("Cancel") +#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "キジュンオフセットセッテイ" ("Set home offsets") +#define MSG_HOME_OFFSETS_APPLIED "\xb5\xcc\xbe\xaf\xc4\x20\xc3\xb7\xd6\xb3\xbb\xda\xcf\xbc\xc0" // "オフセット テキヨウサレマシタ" ("Offsets applied") +#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "キジュンセット" ("Set origin") +#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "PLA ヨネツ" ("Preheat PLA") #define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " " -#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " All" -#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " \xcd\xde\xaf\xc4\xde" // "Bed" -#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " \xbe\xaf\xc3\xb2" // "conf" -#define MSG_PREHEAT_ABS "ABS \xd6\xc8\xc2" // "Preheat ABS" +#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " スベテ" (" All") +#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") +#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") +#define MSG_PREHEAT_ABS "ABS \xd6\xc8\xc2" // "ABS ヨネツ" ("Preheat ABS") #define MSG_PREHEAT_ABS_N MSG_PREHEAT_ABS " " -#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " \xbd\xcd\xde\xc3" // " All" -#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " \xcd\xde\xaf\xc4\xde" // "Bed" -#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " \xbe\xaf\xc3\xb2" // "conf" -#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "Cooldown" -#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xdd" // "Switch power on" -#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "Switch power off" -#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "Extrude" -#define MSG_RETRACT "\xcb\xb7\xba\xd0\xbe\xaf\xc3\xb2" // "Retract" -#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "Move axis" -#define MSG_LEVEL_BED "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "Level bed" -#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move X" -#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move Y" -#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Move Z" -#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "Extruder" -#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "Move 0.1mm" -#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // "Move 1mm" -#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // "Move 10mm" -#define MSG_SPEED "\xbd\xcb\xdf\xb0\xc4\xde" // "Speed" -#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Bed Z" -#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "Nozzle" -#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "Bed" -#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "Fan speed" -#define MSG_FLOW "\xb5\xb8\xd8\xd8\xae\xb3" // "Flow" -#define MSG_CONTROL "\xba\xdd\xc4\xdb\xb0\xd9" // "Control" -#define MSG_MIN LCD_STR_THERMOMETER " \xbb\xb2\xc3\xb2" // " Min" -#define MSG_MAX LCD_STR_THERMOMETER " \xbb\xb2\xba\xb3" // " Max" -#define MSG_FACTOR LCD_STR_THERMOMETER " \xcc\xa7\xb8\xc0\xb0" // " Fact" -#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "Autotemp" -#define MSG_ON "\xb5\xdd " // "On " -#define MSG_OFF "\xb5\xcc " // "Off" +#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " \xbd\xcd\xde\xc3" // " スベテ" (" All") +#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") +#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") +#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "カネツテイシ" ("Cooldown") +#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xdd" // "デンゲン オン" ("Switch power on") +#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "デンゲン オフ" ("Switch power off") +#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "オシダシ" ("Extrude") +#define MSG_RETRACT "\xcb\xb7\xba\xd0\xbe\xaf\xc3\xb2" // "ヒキコミセッテイ" ("Retract") +#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "ジクイドウ" ("Move axis") +#define MSG_LEVEL_BED "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "ベッドレベリング" ("Level bed") +#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Xジク イドウ" ("Move X") +#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Yジク イドウ" ("Move Y") +#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Zジク イドウ" ("Move Z") +#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "エクストルーダー" ("Extruder") +#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "0.1mm イドウ" ("Move 0.1mm") +#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // " 1mm イドウ" ("Move 1mm") +#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // " 10mm イドウ" ("Move 10mm") +#define MSG_SPEED "\xbd\xcb\xdf\xb0\xc4\xde" // "スピード" ("Speed") +#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Bed Z") +#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "ノズル" ("Nozzle") +#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "ベッド" ("Bed") +#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "ファンソクド" ("Fan speed") +#define MSG_FLOW "\xb5\xb8\xd8\xd8\xae\xb3" // "オクリリョウ" ("Flow") +#define MSG_CONTROL "\xba\xdd\xc4\xdb\xb0\xd9" // "コントロール" ("Control") +#define MSG_MIN LCD_STR_THERMOMETER " \xbb\xb2\xc3\xb2" // " サイテイ" (" Min") +#define MSG_MAX LCD_STR_THERMOMETER " \xbb\xb2\xba\xb3" // " サイコウ" (" Max") +#define MSG_FACTOR LCD_STR_THERMOMETER " \xcc\xa7\xb8\xc0\xb0" // " ファクター" (" Fact") +#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "ジドウオンド" ("Autotemp") +#define MSG_ON "\xb5\xdd " // "オン " ("On ") +#define MSG_OFF "\xb5\xcc " // "オフ " ("Off") #define MSG_PID_P "PID-P" #define MSG_PID_I "PID-I" #define MSG_PID_D "PID-D" #define MSG_PID_C "PID-C" -#define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s^2" // "Accel" -#define MSG_VXY_JERK "XY\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Vxy-jerk" -#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Vz-jerk" -#define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "Ve-jerk" -#define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4 " // "Vmax " -#define MSG_X "X" // "x" -#define MSG_Y "Y" // "y" -#define MSG_Z "Z" // "z" -#define MSG_E "E" // "e" -#define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4" // "Vmin" -#define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xc4\xd7\xcd\xde\xd9\xda\xb0\xc4" // "VTrav min" -#define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "Amax " -#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "A-retract" -#define MSG_A_TRAVEL "\xc4\xd7\xcd\xde\xd9\xb6\xbf\xb8\xc4\xde" // "A-travel" +#define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" // "カソクド mm/s2" ("Accel") +#define MSG_VXY_JERK "XY\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "XYジク ヤクド mm/s" ("Vxy-jerk") +#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk") +#define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk") +#define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4 " // "サイダイフィードレート " ("Vmax ") +#define MSG_X "X" // "X" ("x") +#define MSG_Y "Y" // "Y" ("y") +#define MSG_Z "Z" // "Z" ("z") +#define MSG_E "E" // "E" ("e") +#define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4" // "サイショウフィードレート" ("Vmin") +#define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xc4\xd7\xcd\xde\xd9\xda\xb0\xc4" // "サイショウトラベルレート" ("VTrav min") +#define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド" ("Amax ") +#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "ヒキコミカソクド" ("A-retract") +#define MSG_A_TRAVEL "\xc4\xd7\xcd\xde\xd9\xb6\xbf\xb8\xc4\xde" // "トラベルカソクド" ("A-travel") #define MSG_XSTEPS "Xsteps/mm" #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "Temperature" -#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "Motion" -#define MSG_VOLUMETRIC "\xcc\xa8\xd7\xd2\xdd\xc4" // "Filament" +#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "オンド" ("Temperature") +#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "ウゴキセッテイ" ("Motion") +#define MSG_VOLUMETRIC "\xcc\xa8\xd7\xd2\xdd\xc4" // "フィラメント" ("Filament") #define MSG_VOLUMETRIC_ENABLED "E in mm3" -#define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xc1\xae\xaf\xb9\xb2" // "Fil. Dia." -#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCD contrast" -#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "Store memory" -#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "Load memory" -#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "Restore failsafe" -#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "Refresh" -#define MSG_WATCH "\xb2\xdd\xcc\xab" // "Info screen" -#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "Prepare" -#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "Tune" -#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "Pause print" -#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "Resume print" -#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "Stop print" -#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "Print from SD" -#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "No SD card" -#define MSG_DWELL "\xbd\xd8\xb0\xcc\xdf" // "Sleep..." -#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "Wait for user..." -#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "Resuming print" -#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "Print aborted" -#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "No move." -#define MSG_KILLED "\xcb\xbc\xde\xae\xb3\xc3\xb2\xbc" // "KILLED. " -#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "STOPPED. " -#define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3 mm" // "Retract mm" -#define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S mm" // "Swap Re.mm" -#define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xda\xb0\xc4 mm/s" // "Retract V" -#define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb mm" // "Hop mm" -#define MSG_CONTROL_RETRACT_RECOVER "\xd8\xb6\xca\xde\xb0 +mm" // "UnRet +mm" -#define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xd8\xb6\xca\xde\xb0S +mm" // "S UnRet+mm" -#define MSG_CONTROL_RETRACT_RECOVERF "\xd8\xb6\xca\xde\xb0\xda\xb0\xc4 mm/s" // "UnRet V" -#define MSG_AUTORETRACT "\xbc\xde\xc4\xde\xb3\xcb\xb7\xba\xd0" // "AutoRetr." -#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "Change filament" -#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "Init. SD card" -#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "Change SD card" -#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Z probe out. bed" -#define MSG_YX_UNHOMED "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "Home X/Y before Z" -#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Z Offset" -#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep X" -#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep Y" -#define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep Z" -#define MSG_ENDSTOP_ABORT "\xb4\xdd\xc4\xde\xbd\xc4\xaf\xcc\xdf\x20\xbb\xc4\xde\xb3" // "Endstop abort" -#define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xde\xb2" // "Heating failed" -#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "Err: REDUNDANT TEMP" -#define MSG_THERMAL_RUNAWAY "\xc8\xc2\xce\xde\xb3\xbf\xb3" // "THERMAL RUNAWAY" -#define MSG_ERR_MAXTEMP "\xb4\xd7\xb0:\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "Err: MAXTEMP" -#define MSG_ERR_MINTEMP "\xb4\xd7\xb0:\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "Err: MINTEMP" -#define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "Err: MAXTEMP BED" -#define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "Err: MINTEMP BED" -#define MSG_END_HOUR "\xbc\xde\xb6\xdd" // "hours" -#define MSG_END_MINUTE "\xcc\xdd" // "minutes" -#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3" // "Heating..." -#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "Heating done." -#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "Bed Heating." -#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "Bed done." +#define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xc1\xae\xaf\xb9\xb2" // "フィラメントチョッケイ" ("Fil. Dia.") +#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCDコントラスト" ("LCD contrast") +#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory") +#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory") +#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "セッテイリセット" ("Restore failsafe") +#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "リフレッシュ" ("Refresh") +#define MSG_WATCH "\xb2\xdd\xcc\xab" // "インフォ" ("Info screen") +#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "ジュンビセッテイ" ("Prepare") +#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "チョウセイ" ("Tune") +#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "イチジテイシ" ("Pause print") +#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print") +#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "プリントテイシ" ("Stop print") +#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "SDカードカラプリント" ("Print from SD") +#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "SDカードガアリマセン" ("No SD card") +#define MSG_DWELL "\xbd\xd8\xb0\xcc\xdf" // "スリープ" ("Sleep...") +#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("Wait for user...") +#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resuming print") +#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "プリントチュウシサレマシタ" ("Print aborted") +#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "ウゴキマセン" ("No move.") +#define MSG_KILLED "\xcb\xbc\xde\xae\xb3\xc3\xb2\xbc" // "ヒジョウテイシ" ("KILLED. ") +#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "テイシシマシタ" ("STOPPED. ") +#define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3 mm" // "ヒキコミリョウ mm" ("Retract mm") +#define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S mm" // "ヒキコミリョウS mm" ("Swap Re.mm") +#define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xda\xb0\xc4 mm/s" // "ヒキコミレート mm/s" ("Retract V") +#define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb mm" // "ノズルタイヒ mm" ("Hop mm") +#define MSG_CONTROL_RETRACT_RECOVER "\xd8\xb6\xca\xde\xb0 +mm" // "リカバー +mm" ("UnRet +mm") +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xd8\xb6\xca\xde\xb0S +mm" // "リカバーS +mm" ("S UnRet+mm") +#define MSG_CONTROL_RETRACT_RECOVERF "\xd8\xb6\xca\xde\xb0\xda\xb0\xc4 mm/s" // "リカバーレート mm/s" ("UnRet V") +#define MSG_AUTORETRACT "\xbc\xde\xc4\xde\xb3\xcb\xb7\xba\xd0" // "ジドウヒキコミ" ("AutoRetr.") +#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "フィラメントコウカン" ("Change filament") +#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "SDカードサイヨミコミ" ("Init. SD card") +#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "SDカードコウカン" ("Change SD card") +#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Zプローブ ベッドガイ" ("Z probe out. bed") +#define MSG_YX_UNHOMED "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "ゲンテンハXYイドウゴZ" ("Home X/Y before Z") +#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Z Offset") +#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Xジク ビドウ" ("Babystep X") +#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Yジク ビドウ" ("Babystep Y") +#define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Zジク ビドウ" ("Babystep Z") +#define MSG_ENDSTOP_ABORT "\xb4\xdd\xc4\xde\xbd\xc4\xaf\xcc\xdf\x20\xbb\xc4\xde\xb3" // "エンドストップ サドウ" ("Endstop abort") +#define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xde\xb2" // "カネツシッバイ" ("Heating failed") +#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "エラー:ジョウチョウサーミスターキノウ" ("Err: REDUNDANT TEMP") +#define MSG_THERMAL_RUNAWAY "\xc8\xc2\xce\xde\xb3\xbf\xb3" // "ネツボウソウ" ("THERMAL RUNAWAY") +#define MSG_ERR_MAXTEMP "\xb4\xd7\xb0:\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:サイコウオンチョウカ" ("Err: MAXTEMP") +#define MSG_ERR_MINTEMP "\xb4\xd7\xb0:\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:サイテイオンミマン" ("Err: MINTEMP") +#define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:ベッド サイコウオンチョウカ" ("Err: MAXTEMP BED") +#define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:ベッド サイテイオンミマン" ("Err: MINTEMP BED") +#define MSG_END_HOUR "\xbc\xde\xb6\xdd" // "ジカン" ("hours") +#define MSG_END_MINUTE "\xcc\xdd" // "フン" ("minutes") +#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3" // "カネツチュウ" ("Heating...") +#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "カネツカンリョウ" ("Heating done.") +#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "ベッド カネツチュウ" ("Bed Heating.") +#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "ベッド カネツカンリョウ" ("Bed done.") -#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "Delta Calibration" -#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate X" -#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Y" -#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Calibrate Z" -#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "Calibrate Center" +#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "デルタ コウセイ" ("Delta Calibration") +#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Xジク コウセイ" ("Calibrate X") +#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Yジク コウセイ" ("Calibrate Y") +#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Zジク コウセイ" ("Calibrate Z") +#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "チュウシン コウセイ" ("Calibrate Center") #endif // LANGUAGE_KANA_H diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index 7c1953c662..633db9af84 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -36,35 +36,35 @@ //#define SIMULATE_ROMFONT #define DISPLAY_CHARSET_ISO10646_KANA -// This is very crude replacement of the codes used in language_kana.h from somebody who really does not know what he is doing. -// Just to show the potential benefit of unicode. +// This just to show the potential benefit of unicode. // This translation can be improved by using the full charset of unicode codeblock U+30A0 to U+30FF. // 片仮名表示定義 #define WELCOME_MSG MACHINE_NAME " ready." #define MSG_SD_INSERTED "カード ソウニュウサレマシタ" // "Card inserted" #define MSG_SD_REMOVED "カードガアリマセン" // "Card removed" +#define MSG_LCD_ENDSTOPS "エンドストップ" // "Endstops" // Max length 8 characters #define MSG_MAIN "メイン" // "Main" #define MSG_AUTOSTART "ジドウカイシ" // "Autostart" #define MSG_DISABLE_STEPPERS "モーターデンゲン オフ" // "Disable steppers" #define MSG_AUTO_HOME "ゲンテンニイドウ" // "Auto home" #define MSG_LEVEL_BED_HOMING "ゲンテンニイドウ" // "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "レベリングカイシ" //"Click to Begin" -#define MSG_LEVEL_BED_DONE "レベリングカンリョウ" //"Leveling Done!" -#define MSG_LEVEL_BED_CANCEL "トリヤメ" //"Cancel" +#define MSG_LEVEL_BED_WAITING "レベリングカイシ" // "Click to Begin" +#define MSG_LEVEL_BED_DONE "レベリングカンリョウ" // "Leveling Done!" +#define MSG_LEVEL_BED_CANCEL "トリヤメ" // "Cancel" #define MSG_SET_HOME_OFFSETS "キジュンオフセットセッテイ" // "Set home offsets" -#define MSG_HOME_OFFSETS_APPLIED "オフセット テキヨウサレマシタ" //"Offsets applied" +#define MSG_HOME_OFFSETS_APPLIED "オフセット テキヨウサレマシタ" // "Offsets applied" #define MSG_SET_ORIGIN "キジュンセット" // "Set origin" #define MSG_PREHEAT_PLA "PLA ヨネツ" // "Preheat PLA" #define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " " #define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " スベテ" // " All" -#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " ベッド" // "Bed" -#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " セッテイ" // "conf" +#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " ベッド" // " Bed" +#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " セッテイ" // " conf" #define MSG_PREHEAT_ABS "ABS ヨネツ" // "Preheat ABS" #define MSG_PREHEAT_ABS_N MSG_PREHEAT_ABS " " #define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " スベテ" // " All" -#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " ベッド" // "Bed" -#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " セッテイ" // "conf" +#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " ベッド" // " Bed" +#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " セッテイ" // " conf" #define MSG_COOLDOWN "カネツテイシ" // "Cooldown" #define MSG_SWITCH_PS_ON "デンゲン オン" // "Switch power on" #define MSG_SWITCH_PS_OFF "デンゲン オフ" // "Switch power off" @@ -96,7 +96,7 @@ #define MSG_PID_I "PID-I" #define MSG_PID_D "PID-D" #define MSG_PID_C "PID-C" -#define MSG_ACC "カソクド mm/s^2" // "Accel" +#define MSG_ACC "カソクド mm/s2" // "Accel" #define MSG_VXY_JERK "XYジク ヤクド mm/s" // "Vxy-jerk" #define MSG_VZ_JERK "Zジク ヤクド mm/s" // "Vz-jerk" #define MSG_VE_JERK "エクストルーダー ヤクド" // "Ve-jerk" From 3613c550fa9a48934515b6a71e2e96fecc3c6d7e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 14:35:26 -0700 Subject: [PATCH 102/383] Rename README file for fonts --- Marlin/fonts/README.fonts | 23 ----------------------- Marlin/fonts/README.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 23 deletions(-) delete mode 100644 Marlin/fonts/README.fonts create mode 100644 Marlin/fonts/README.md diff --git a/Marlin/fonts/README.fonts b/Marlin/fonts/README.fonts deleted file mode 100644 index 7ae6e4242c..0000000000 --- a/Marlin/fonts/README.fonts +++ /dev/null @@ -1,23 +0,0 @@ -The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack of experience). -In Fony export the fonts to bdf-format. Maybe another one can edit them with Fontforge. -Then run make_fonts.bat what calls bdf2u8g.exe with the needed parameters to produce the .h files. -The .h files must be edited to replace '#include "u8g.h"' with '#include ', replace 'U8G_FONT_SECTION' with 'U8G_SECTION', insert '.progmem.' right behind the first '"' and moved to the main directory. - -How to integrate a new font: -Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixel for a line. To have some space in between the lines we can't use more than 10 pixel height for the symbols. For up to 11 pixel set TALL_FONT_CORRECTION 1 when loading the font. -To fit 22 Symbols on the 128 pixel wide screen, the symbols can't be wider than 5 pixel, for the first 128 symbols. -For the second half of the font we now support up to 11x11 pixel. - - * Get 'Fony.exe' - * Copy one of the existing *.fon files and work with this. - * Change the pixels. Don't change width or height. - * Export as *.bdf - * Use 'bdf2u8g.exe' to produce the *.h file. Examples for the existing fonts are in 'make_fonts.bat' - * Edit the produced .h file to match our needs. See hints in 'README.fonts' or the other 'dogm_font_data_.h' files. - * Make a new entry in the font list in 'dogm_lcd_implementation.h' before the '#else // fall back' - #elif ENABLED(DISPLAY_CHARSET_NEWNAME) - #include "dogm_font_data_yourfont.h" - #define FONT_MENU_NAME YOURFONTNAME - #else // fall-back - * Add your font to the list of permitted fonts in 'language_en.h' - ... || ENABLED(DISPLAY_CHARSET_YOUR_NEW_FONT) ... ) diff --git a/Marlin/fonts/README.md b/Marlin/fonts/README.md new file mode 100644 index 0000000000..86e54929b3 --- /dev/null +++ b/Marlin/fonts/README.md @@ -0,0 +1,30 @@ +The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack of experience). + +In Fony export the fonts to bdf-format. (Maybe another one can edit them with Fontforge.) Then run `make_fonts.bat` which calls `bdf2u8g.exe` with the parameters needed to produce the `.h` files. The `.h` files must be edited and moved: +- Replace `#include "u8g.h"` with `#include `, +- Replace `U8G_FONT_SECTION` with `U8G_SECTION`, +- Insert `.progmem.` right after the first quote `"`, +- Move the file to the main directory. + +How to integrate a new font: +Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixels per line. So to have any space between the lines we can use no more than 10 pixel height for the symbols. For up to 11 pixels set TALL_FONT_CORRECTION 1 when loading the font. +To fit 22 Symbols on the 128 pixel wide screen, the symbols can't be wider than 5 pixel, for the first 128 symbols. +For the second half of the font we now support up to 11x11 pixel. + +- Get `Fony.exe` from [hukka.ncn.fi](http://hukka.ncn.fi/?fony) +- Copy one of the existing `*.fon` files and use the copy for your work. +- Only change the pixels. Don't change width or height. +- Export as a `*.bdf` file +- Use `bdf2u8g.exe` to produce the `.h` file. Examples for the existing fonts are in `make_fonts.bat`. +- Edit the produced `.h` file to match our needs. Find hints in the `dogm_font_data_.h` files. +- Make a new entry in the font list in `dogm_lcd_implementation.h` before the `#else // fall-back` line: +```cpp + #elif ENABLED(DISPLAY_CHARSET_NEWNAME) + #include "dogm_font_data_yourfont.h" + #define FONT_MENU_NAME YOURFONTNAME + #else // fall-back +``` +- Add your font to the list of permitted fonts in 'language_en.h' +```cpp + ... || ENABLED(DISPLAY_CHARSET_YOUR_NEW_FONT) ... ) +``` \ No newline at end of file From f90a8661cb66acfaef0aac050ea6910d05494ffd Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 13:42:11 -0700 Subject: [PATCH 103/383] Uppercase XYZE on Graphical LCD --- Marlin/language_an.h | 8 ++++---- Marlin/language_bg.h | 8 ++++---- Marlin/language_ca.h | 8 ++++---- Marlin/language_cn.h | 8 ++++---- Marlin/language_cz.h | 8 ++++---- Marlin/language_da.h | 8 ++++---- Marlin/language_de.h | 8 ++++---- Marlin/language_en.h | 8 ++++---- Marlin/language_es.h | 8 ++++---- Marlin/language_eu.h | 8 ++++---- Marlin/language_fi.h | 8 ++++---- Marlin/language_fr.h | 8 ++++---- Marlin/language_gl.h | 8 ++++---- Marlin/language_it.h | 8 ++++---- Marlin/language_nl.h | 8 ++++---- Marlin/language_pl.h | 8 ++++---- Marlin/language_pt-br.h | 8 ++++---- Marlin/language_pt-br_utf8.h | 8 ++++---- Marlin/language_pt.h | 8 ++++---- Marlin/language_pt_utf8.h | 8 ++++---- Marlin/language_ru.h | 8 ++++---- 21 files changed, 84 insertions(+), 84 deletions(-) diff --git a/Marlin/language_an.h b/Marlin/language_an.h index ea476d69f8..c2d49fb25d 100644 --- a/Marlin/language_an.h +++ b/Marlin/language_an.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ves-jerk" #define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "y" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax" diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h index abff7baa7b..f44865770d 100644 --- a/Marlin/language_bg.h +++ b/Marlin/language_bg.h @@ -94,10 +94,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_ca.h b/Marlin/language_ca.h index 783d088787..95ded7488c 100644 --- a/Marlin/language_ca.h +++ b/Marlin/language_ca.h @@ -94,10 +94,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_cn.h b/Marlin/language_cn.h index 95c794afd5..487f723562 100644 --- a/Marlin/language_cn.h +++ b/Marlin/language_cn.h @@ -92,10 +92,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_cz.h b/Marlin/language_cz.h index db82d7d97e..0dc7f41fec 100644 --- a/Marlin/language_cz.h +++ b/Marlin/language_cz.h @@ -99,10 +99,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_da.h b/Marlin/language_da.h index 4d9b46f2b4..04477074d9 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -95,10 +95,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_de.h b/Marlin/language_de.h index a4fba0bf66..06d718c7e5 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -95,10 +95,10 @@ #define MSG_VZ_JERK "V z Ruck" #define MSG_VE_JERK "V e Ruck" #define MSG_VMAX "V max " // space by purpose -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "V min" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "A max " // space by purpose diff --git a/Marlin/language_en.h b/Marlin/language_en.h index c213fb5961..18ea1cbdbc 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -272,16 +272,16 @@ #define MSG_VMAX "Vmax " #endif #ifndef MSG_X - #define MSG_X "x" + #define MSG_X "X" #endif #ifndef MSG_Y - #define MSG_Y "y" + #define MSG_Y "Y" #endif #ifndef MSG_Z - #define MSG_Z "z" + #define MSG_Z "Z" #endif #ifndef MSG_E - #define MSG_E "e" + #define MSG_E "E" #endif #ifndef MSG_VMIN #define MSG_VMIN "Vmin" diff --git a/Marlin/language_es.h b/Marlin/language_es.h index 0032de8fd0..e54ce3cccb 100644 --- a/Marlin/language_es.h +++ b/Marlin/language_es.h @@ -94,10 +94,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "Vel. viaje min" #define MSG_AMAX "Acel. max" diff --git a/Marlin/language_eu.h b/Marlin/language_eu.h index 8158d2654e..51600f8b43 100644 --- a/Marlin/language_eu.h +++ b/Marlin/language_eu.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "Vz-astindua" #define MSG_VE_JERK "Ve-astindua" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_fi.h b/Marlin/language_fi.h index 600a009feb..a1915fd3b0 100644 --- a/Marlin/language_fi.h +++ b/Marlin/language_fi.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VLiike min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h index acb17ce3fb..1b3be6b4ec 100644 --- a/Marlin/language_fr.h +++ b/Marlin/language_fr.h @@ -95,10 +95,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "Vdepl min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_gl.h b/Marlin/language_gl.h index 0921bbf2ab..beafa84d53 100644 --- a/Marlin/language_gl.h +++ b/Marlin/language_gl.h @@ -92,10 +92,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_it.h b/Marlin/language_it.h index 247030e9e7..59aeb233fc 100644 --- a/Marlin/language_it.h +++ b/Marlin/language_it.h @@ -94,10 +94,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h index 953cc33422..b24fce3b7d 100644 --- a/Marlin/language_nl.h +++ b/Marlin/language_nl.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_pl.h b/Marlin/language_pl.h index 71c8730485..c75b38f309 100644 --- a/Marlin/language_pl.h +++ b/Marlin/language_pl.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "Zryw Vz" #define MSG_VE_JERK "Zryw Ve" #define MSG_VMAX "Vmax" -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "Vskok min" #define MSG_AMAX "Amax" diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index 693a6413d8..fc58a06d00 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "jogo VZ" #define MSG_VE_JERK "jogo VE" #define MSG_VMAX " Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index 15a618b658..d086908979 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -93,10 +93,10 @@ #define MSG_VZ_JERK "jogo VZ" #define MSG_VE_JERK "jogo VE" #define MSG_VMAX " Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_pt.h b/Marlin/language_pt.h index 31617ee935..f82dd7baeb 100644 --- a/Marlin/language_pt.h +++ b/Marlin/language_pt.h @@ -98,10 +98,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX " Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_pt_utf8.h b/Marlin/language_pt_utf8.h index e94fa323ee..c254f720d8 100644 --- a/Marlin/language_pt_utf8.h +++ b/Marlin/language_pt_utf8.h @@ -98,10 +98,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX " Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h index 051c9289af..d20651d1f9 100644 --- a/Marlin/language_ru.h +++ b/Marlin/language_ru.h @@ -94,10 +94,10 @@ #define MSG_VZ_JERK "Vz-jerk" #define MSG_VE_JERK "Ve-jerk" #define MSG_VMAX "Vmax " -#define MSG_X "x" -#define MSG_Y "y" -#define MSG_Z "z" -#define MSG_E "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "Vmin" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax" From b281001329ad661464354234f11ea5b4e5fc7d3b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 14:38:00 -0700 Subject: [PATCH 104/383] Use MSG_X, etc., on Hitachi LCD --- Marlin/ultralcd_implementation_hitachi_HD44780.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 6acfdd0ba6..3164f45a21 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -693,7 +693,7 @@ static void lcd_implementation_status_screen() { // When everything is ok you see a constant 'X'. if (blink) - lcd_printPGM(PSTR("X")); + lcd_printPGM(PSTR(MSG_X)); else { if (!axis_homed[X_AXIS]) lcd_printPGM(PSTR("?")); @@ -703,14 +703,14 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(" ")); else #endif - lcd_printPGM(PSTR("X")); + lcd_printPGM(PSTR(MSG_X)); } lcd.print(ftostr4sign(current_position[X_AXIS])); lcd_printPGM(PSTR(" ")); if (blink) - lcd_printPGM(PSTR("Y")); + lcd_printPGM(PSTR(MSG_Y)); else { if (!axis_homed[Y_AXIS]) lcd_printPGM(PSTR("?")); @@ -720,7 +720,7 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(" ")); else #endif - lcd_printPGM(PSTR("Y")); + lcd_printPGM(PSTR(MSG_Y)); } lcd.print(ftostr4sign(current_position[Y_AXIS])); @@ -730,7 +730,7 @@ static void lcd_implementation_status_screen() { lcd.setCursor(LCD_WIDTH - 8, 1); if (blink) - lcd_printPGM(PSTR("Z")); + lcd_printPGM(PSTR(MSG_Z)); else { if (!axis_homed[Z_AXIS]) lcd_printPGM(PSTR("?")); @@ -740,7 +740,7 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(" ")); else #endif - lcd_printPGM(PSTR("Z")); + lcd_printPGM(PSTR(MSG_Z)); } lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001)); From fc30aa9d88fb2bee49f0310ba391532f7c42afc9 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 14:45:58 -0700 Subject: [PATCH 105/383] Aesthetic and functional improvements for graphical LCD --- Marlin/dogm_lcd_implementation.h | 55 ++++++++++++++------------------ 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index b22a1ed672..5033fbe817 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -279,26 +279,32 @@ static void lcd_implementation_init() { static void lcd_implementation_clear() { } // Automatically cleared by Picture Loop -static void _draw_heater_status(int x, int heater) { +FORCE_INLINE void _draw_centered_temp(int temp, int x, int y) { + int degsize = 6 * (temp >= 100 ? 3 : temp >= 10 ? 2 : 1); // number's pixel width + u8g.setPrintPos(x - (18 - degsize) / 2, y); // move left if shorter + lcd_print(itostr3(temp)); + lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); +} + +FORCE_INLINE void _draw_heater_status(int x, int heater) { bool isBed = heater < 0; - int y = 17 + (isBed ? 1 : 0); lcd_setFont(FONT_STATUSMENU); - u8g.setPrintPos(x, 7); - lcd_print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5))); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - u8g.setPrintPos(x, 28); - lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5)); - lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); - if (heater >= 0 ? !isHeatingHotend(heater) : !isHeatingBed()) { - u8g.drawBox(x+7,y,2,2); - } - else { + _draw_centered_temp((isBed ? degTargetBed() : degTargetHotend(heater)) + 0.5, x, 7); + + _draw_centered_temp((isBed ? degBed() : degHotend(heater)) + 0.5, x, 28); + + int h = isBed ? 7 : 8, + y = isBed ? 18 : 17; + if (isBed ? isHeatingBed() : isHeatingHotend(heater)) { u8g.setColorIndex(0); // white on black - u8g.drawBox(x + 7, y, 2, 2); + u8g.drawBox(x + h, y, 2, 2); u8g.setColorIndex(1); // black on white } + else { + u8g.drawBox(x + h, y, 2, 2); + } } static void lcd_implementation_status_screen() { @@ -340,13 +346,10 @@ static void lcd_implementation_status_screen() { lcd_print(':'); lcd_print(itostr2(time%60)); } - else { - lcd_printPGM(PSTR("--:--")); - } #endif // Extruders - for (int i = 0; i < EXTRUDERS; i++) _draw_heater_status(6 + i * 25, i); + for (int i = 0; i < EXTRUDERS; i++) _draw_heater_status(5 + i * 25, i); // Heatbed if (EXTRUDERS < 4) _draw_heater_status(81, -1); @@ -360,11 +363,7 @@ static void lcd_implementation_status_screen() { lcd_print(itostr3(per)); lcd_print('%'); } - else #endif - { - lcd_printPGM(PSTR("---")); - } // X, Y, Z-Coordinates // Before homing the axis letters are blinking 'X' <-> '?'. @@ -394,10 +393,8 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(MSG_X)); } } - u8g.drawPixel(8, XYZ_BASELINE - 5); - u8g.drawPixel(8, XYZ_BASELINE - 3); u8g.setPrintPos(10, XYZ_BASELINE); - lcd_print(ftostr31ns(current_position[X_AXIS])); + lcd_print(ftostr4sign(current_position[X_AXIS])); u8g.setPrintPos(43, XYZ_BASELINE); if (blink) @@ -414,10 +411,8 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(MSG_Y)); } } - u8g.drawPixel(49, XYZ_BASELINE - 5); - u8g.drawPixel(49, XYZ_BASELINE - 3); u8g.setPrintPos(51, XYZ_BASELINE); - lcd_print(ftostr31ns(current_position[Y_AXIS])); + lcd_print(ftostr4sign(current_position[Y_AXIS])); u8g.setPrintPos(83, XYZ_BASELINE); if (blink) @@ -434,23 +429,21 @@ static void lcd_implementation_status_screen() { lcd_printPGM(PSTR(MSG_Z)); } } - u8g.drawPixel(89, XYZ_BASELINE - 5); - u8g.drawPixel(89, XYZ_BASELINE - 3); u8g.setPrintPos(91, XYZ_BASELINE); - lcd_print(ftostr32sp(current_position[Z_AXIS])); + lcd_print(ftostr32sp(current_position[Z_AXIS] + 0.00001)); u8g.setColorIndex(1); // black on white // Feedrate lcd_setFont(FONT_MENU); u8g.setPrintPos(3, 49); lcd_print(LCD_STR_FEEDRATE[0]); + lcd_setFont(FONT_STATUSMENU); u8g.setPrintPos(12, 49); lcd_print(itostr3(feedrate_multiplier)); lcd_print('%'); // Status line - lcd_setFont(FONT_STATUSMENU); #if ENABLED(USE_SMALL_INFOFONT) u8g.setPrintPos(0, 62); #else From 34b17d4a8a9f08cdae108ad983a776b9067f578b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 19:34:59 -0700 Subject: [PATCH 106/383] Reduce heater status code if no bed --- Marlin/dogm_lcd_implementation.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 5033fbe817..ee8bb88dd1 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -287,9 +287,11 @@ FORCE_INLINE void _draw_centered_temp(int temp, int x, int y) { } FORCE_INLINE void _draw_heater_status(int x, int heater) { - bool isBed = heater < 0; - - lcd_setFont(FONT_STATUSMENU); + #if HAS_TEMP_BED + bool isBed = heater < 0; + #else + const bool isBed = false; + #endif _draw_centered_temp((isBed ? degTargetBed() : degTargetHotend(heater)) + 0.5, x, 7); @@ -351,8 +353,10 @@ static void lcd_implementation_status_screen() { // Extruders for (int i = 0; i < EXTRUDERS; i++) _draw_heater_status(5 + i * 25, i); - // Heatbed - if (EXTRUDERS < 4) _draw_heater_status(81, -1); + // Heated bed + #if EXTRUDERS < 4 && HAS_TEMP_BED + _draw_heater_status(81, -1); + #endif // Fan lcd_setFont(FONT_STATUSMENU); From 90c97c818577a3d3c245c06b7f25979741a008df Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 19:45:55 -0700 Subject: [PATCH 107/383] Add _draw_axis_label function to reduce source --- Marlin/dogm_lcd_implementation.h | 64 +++++++------------ .../ultralcd_implementation_hitachi_HD44780.h | 61 ++++++------------ 2 files changed, 43 insertions(+), 82 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index ee8bb88dd1..3c49ffb8e2 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -309,6 +309,23 @@ FORCE_INLINE void _draw_heater_status(int x, int heater) { } } +FORCE_INLINE void _draw_axis_label(AxisEnum axis, const char *pstr, bool blink) { + if (blink) + lcd_printPGM(pstr); + else { + if (!axis_homed[axis]) + lcd_printPGM(PSTR("?")); + else { + #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) + if (!axis_known_position[axis]) + lcd_printPGM(PSTR(" ")); + else + #endif + lcd_printPGM(pstr); + } + } +} + static void lcd_implementation_status_screen() { u8g.setColorIndex(1); // black on white @@ -382,59 +399,22 @@ static void lcd_implementation_status_screen() { u8g.drawBox(0, 30, LCD_PIXEL_WIDTH, 9); #endif u8g.setColorIndex(0); // white on black + u8g.setPrintPos(2, XYZ_BASELINE); - if (blink) - lcd_printPGM(PSTR(MSG_X)); - else { - if (!axis_homed[X_AXIS]) - lcd_printPGM(PSTR("?")); - else { - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[X_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_X)); - } - } + _draw_axis_label(X_AXIS, PSTR(MSG_X), blink); u8g.setPrintPos(10, XYZ_BASELINE); lcd_print(ftostr4sign(current_position[X_AXIS])); u8g.setPrintPos(43, XYZ_BASELINE); - if (blink) - lcd_printPGM(PSTR(MSG_Y)); - else { - if (!axis_homed[Y_AXIS]) - lcd_printPGM(PSTR("?")); - else { - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[Y_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_Y)); - } - } + _draw_axis_label(Y_AXIS, PSTR(MSG_Y), blink); u8g.setPrintPos(51, XYZ_BASELINE); lcd_print(ftostr4sign(current_position[Y_AXIS])); u8g.setPrintPos(83, XYZ_BASELINE); - if (blink) - lcd_printPGM(PSTR(MSG_Z)); - else { - if (!axis_homed[Z_AXIS]) - lcd_printPGM(PSTR("?")); - else { - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[Z_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_Z)); - } - } + _draw_axis_label(Z_AXIS, PSTR(MSG_Z), blink); u8g.setPrintPos(91, XYZ_BASELINE); lcd_print(ftostr32sp(current_position[Z_AXIS] + 0.00001)); + u8g.setColorIndex(1); // black on white // Feedrate diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 3164f45a21..3787db01bd 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -569,6 +569,23 @@ unsigned lcd_print(char c) { return charset_mapper(c); } #endif // SHOW_BOOTSCREEN +FORCE_INLINE void _draw_axis_label(AxisEnum axis, const char *pstr, bool blink) { + if (blink) + lcd_printPGM(pstr); + else { + if (!axis_homed[axis]) + lcd_printPGM(PSTR("?")); + else { + #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) + if (!axis_known_position[axis]) + lcd_printPGM(PSTR(" ")); + else + #endif + lcd_printPGM(pstr); + } + } +} + /** Possible status screens: 16x2 |000/000 B000/000| @@ -692,36 +709,12 @@ static void lcd_implementation_status_screen() { // When axis is homed but axis_known_position is false the axis letters are blinking 'X' <-> ' '. // When everything is ok you see a constant 'X'. - if (blink) - lcd_printPGM(PSTR(MSG_X)); - else { - if (!axis_homed[X_AXIS]) - lcd_printPGM(PSTR("?")); - else - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[X_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_X)); - } - + _draw_axis_label(X_AXIS, PSTR(MSG_X), blink); lcd.print(ftostr4sign(current_position[X_AXIS])); lcd_printPGM(PSTR(" ")); - if (blink) - lcd_printPGM(PSTR(MSG_Y)); - else { - if (!axis_homed[Y_AXIS]) - lcd_printPGM(PSTR("?")); - else - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[Y_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_Y)); - } + + _draw_axis_label(Y_AXIS, PSTR(MSG_Y), blink); lcd.print(ftostr4sign(current_position[Y_AXIS])); #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 @@ -729,19 +722,7 @@ static void lcd_implementation_status_screen() { #endif // LCD_WIDTH >= 20 lcd.setCursor(LCD_WIDTH - 8, 1); - if (blink) - lcd_printPGM(PSTR(MSG_Z)); - else { - if (!axis_homed[Z_AXIS]) - lcd_printPGM(PSTR("?")); - else - #if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING) - if (!axis_known_position[Z_AXIS]) - lcd_printPGM(PSTR(" ")); - else - #endif - lcd_printPGM(PSTR(MSG_Z)); - } + _draw_axis_label(Z_AXIS, PSTR(MSG_Z), blink); lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001)); #endif // LCD_HEIGHT > 2 From 026ae8f2f0dbb810695c658dcab809d83e6b97b8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 19:46:12 -0700 Subject: [PATCH 108/383] Call lcd_setFont only when needed --- Marlin/dogm_lcd_implementation.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 3c49ffb8e2..a1281cf7ac 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -340,6 +340,9 @@ static void lcd_implementation_status_screen() { #endif ); + // Status Menu Font for SD info, Heater status, Fan, XYZ + lcd_setFont(FONT_STATUSMENU); + #if ENABLED(SDSUPPORT) // SD Card Symbol u8g.drawBox(42, 42 - (TALL_FONT_CORRECTION), 8, 7); @@ -351,8 +354,6 @@ static void lcd_implementation_status_screen() { u8g.drawFrame(54, 49, 73, 4 - (TALL_FONT_CORRECTION)); // SD Card Progress bar and clock - lcd_setFont(FONT_STATUSMENU); - if (IS_SD_PRINTING) { // Progress bar solid part u8g.drawBox(55, 50, (unsigned int)(71.f * card.percentDone() / 100.f), 2 - (TALL_FONT_CORRECTION)); @@ -376,7 +377,6 @@ static void lcd_implementation_status_screen() { #endif // Fan - lcd_setFont(FONT_STATUSMENU); u8g.setPrintPos(104, 27); #if HAS_FAN0 int per = ((fanSpeeds[0] + 1) * 100) / 256; @@ -391,7 +391,6 @@ static void lcd_implementation_status_screen() { // When axis is homed but axis_known_position is false the axis letters are blinking 'X' <-> ' '. // When everything is ok you see a constant 'X'. #define XYZ_BASELINE 38 - lcd_setFont(FONT_STATUSMENU); #if ENABLED(USE_SMALL_INFOFONT) u8g.drawBox(0, 30, LCD_PIXEL_WIDTH, 10); From 4f04bf7fe8b6e1f7a7de9f839ccacb75a26f1496 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 20:39:15 -0700 Subject: [PATCH 109/383] Show steps done in the babystep display --- Marlin/ultralcd.cpp | 21 ++++++++++++++------- Marlin/ultralcd.h | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index c1a55380c3..a8296c0db6 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -550,10 +550,12 @@ void lcd_set_home_offsets() { #if ENABLED(BABYSTEPPING) + int babysteps_done = 0; + static void _lcd_babystep(const int axis, const char* msg) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition) { - int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; + int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; lcdDrawUpdate = LCDVIEW_REDRAW_NOW; #if ENABLED(COREXY) || ENABLED(COREXZ) @@ -580,16 +582,21 @@ void lcd_set_home_offsets() { #else babystepsTodo[axis] += distance; #endif + + babysteps_done += distance; } - if (lcdDrawUpdate) lcd_implementation_drawedit(msg, NULL); + if (lcdDrawUpdate) lcd_implementation_drawedit(msg, itostr3sign(babysteps_done)); if (LCD_CLICKED) lcd_goto_previous_menu(true); } #if ENABLED(BABYSTEP_XY) - static void lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } - static void lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } + static void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } + static void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } + static void lcd_babystep_x() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_x); } + static void lcd_babystep_y() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_y); } #endif - static void lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } + static void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } + static void lcd_babystep_z() { babysteps_done = 0; lcd_goto_menu(_lcd_babystep_z); } #endif //BABYSTEPPING @@ -2573,8 +2580,8 @@ char* ftostr32sp(const float& x) { return conv; } -// Convert signed int to lj string with +012.0 / -012.0 format -char* itostr31(const int& x) { +// Convert signed int to lj string with +012 / -012 format +char* itostr3sign(const int& x) { int xx; if (x >= 0) { conv[0] = '+'; diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 61abf9cede..9665c2ce9c 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -162,7 +162,7 @@ #endif //ULTRA_LCD char* itostr2(const uint8_t& x); -char* itostr31(const int& x); +char* itostr3sign(const int& x); char* itostr3(const int& x); char* itostr3left(const int& x); char* itostr4(const int& x); From 9a12054e0ebae51c193c609edabe929bcad95ce2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 21:18:35 -0700 Subject: [PATCH 110/383] Git helper shell scripts for MarlinFirmware --- Marlin/scripts/firstpush | 3 +++ Marlin/scripts/mfinfo | 40 ++++++++++++++++++++++++++++++ Marlin/scripts/mfnew | 23 +++++++++++++++++ Marlin/scripts/mfpr | 40 ++++++++++++++++++++++++++++++ Marlin/scripts/mfprune | 22 +++++++++++++++++ Marlin/scripts/mfrb | 21 ++++++++++++++++ Marlin/scripts/mfup | 53 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 202 insertions(+) create mode 100755 Marlin/scripts/firstpush create mode 100755 Marlin/scripts/mfinfo create mode 100755 Marlin/scripts/mfnew create mode 100755 Marlin/scripts/mfpr create mode 100755 Marlin/scripts/mfprune create mode 100755 Marlin/scripts/mfrb create mode 100755 Marlin/scripts/mfup diff --git a/Marlin/scripts/firstpush b/Marlin/scripts/firstpush new file mode 100755 index 0000000000..e8eef06da8 --- /dev/null +++ b/Marlin/scripts/firstpush @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +git push --set-upstream origin `git branch | grep \* | sed 's/\* //g'` \ No newline at end of file diff --git a/Marlin/scripts/mfinfo b/Marlin/scripts/mfinfo new file mode 100755 index 0000000000..533b30a56a --- /dev/null +++ b/Marlin/scripts/mfinfo @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# +# mfinfo +# +# Get the following helpful git info about the working directory: +# +# - Remote (upstream) Org name (MarlinFirmware) +# - Remote (origin) Org name (your Github username) +# - Repo Name (Marlin or MarlinDev) +# - Marlin Target branch (RCBugFix or dev) +# - Branch Name (the current branch or the one that was passed) +# + +REPO=$(git remote get-url upstream 2>/dev/null | sed -E 's/.*\/(.*)\.git/\1/') + +if [[ -z $REPO ]]; then + echo "`basename $0`: No 'upstream' remote found." 1>&2 ; exit 1 +fi + +ORG=$(git remote get-url upstream 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/') + +if [[ $ORG != MarlinFirmware ]]; then + echo "`basename $0`: Not a Marlin repository." + exit 1 +fi + +case "$REPO" in + Marlin ) TARG=RCBugFix ;; + MarlinDev ) TARG=dev ;; +esac + +FORK=$(git remote get-url origin 2>/dev/null | sed -E 's/.*[\/:](.*)\/.*$/\1/') + +case "$#" in + 0 ) BRANCH=$(git branch 2>/dev/null | grep ^* | sed 's/\* //g') ;; + 1 ) BRANCH=$1 ;; + * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; +esac + +echo "$ORG $FORK $REPO $TARG $BRANCH" diff --git a/Marlin/scripts/mfnew b/Marlin/scripts/mfnew new file mode 100755 index 0000000000..0a07513bf9 --- /dev/null +++ b/Marlin/scripts/mfnew @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# +# mfnew +# +# Create a new branch based on RCBugFix or dev a given branch name +# + +MFINFO=$(mfinfo) || exit +IFS=' ' read -a INFO <<< "$MFINFO" +TARG=${INFO[3]} + +if [[ ${INFO[4]} == "(no" ]]; then + echo "Branch is unavailable!" + exit 1 +fi + +case "$#" in + 0 ) BRANCH=pr_for_$TARG-$(date +"%G-%d-%m|%H:%M:%S") ;; + 1 ) BRANCH=$1 ;; + * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; +esac + +git checkout $TARG -b $BRANCH diff --git a/Marlin/scripts/mfpr b/Marlin/scripts/mfpr new file mode 100755 index 0000000000..8eff48483a --- /dev/null +++ b/Marlin/scripts/mfpr @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# +# mfpr +# +# Make a PR of the current branch against RCBugFix or dev +# + +MFINFO=$(mfinfo "$@") || exit + +IFS=' ' read -a INFO <<< "$MFINFO" + +ORG=${INFO[0]} +FORK=${INFO[1]} +REPO=${INFO[2]} +TARG=${INFO[3]} +BRANCH=${INFO[4]} + +if [[ $BRANCH == "(no" ]]; then + echo "Git is busy with merge, rebase, etc." + exit 1 +fi + +if [[ ! -z "$1" ]]; then { BRANCH=$1 ; git checkout $1 || exit 1; } fi + +if [[ $BRANCH == $TARG ]]; then + echo "Can't make a PR from $BRANCH" ; exit +fi + +if [ -z "$(git branch -vv | grep ^\* | grep \\[origin)" ]; then firstpush; fi + +TOOL=$(which gnome-open xdg-open open | awk '{ print $1 }') +URL="https://github.com/$ORG/$REPO/compare/$TARG...$FORK:$BRANCH?expand=1" + +if [ -z "$TOOL" ]; then + echo "Can't find a tool to open the URL:" + echo $URL +else + echo "Opening a New PR Form..." + "$TOOL" "$URL" +fi diff --git a/Marlin/scripts/mfprune b/Marlin/scripts/mfprune new file mode 100755 index 0000000000..48fa9fdb80 --- /dev/null +++ b/Marlin/scripts/mfprune @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# +# mfprune +# +# Prune all your merged branches and any branches whose remotes are gone +# Great way to clean up your branches after messing around a lot +# + +echo "Pruning Merged Branches..." +git branch --merged | egrep -v "^\*|RC|RCBugFix|dev" | xargs -n 1 git branch -d +echo + +echo "Pruning Remotely-deleted Branches..." +git branch -vv | egrep -v "^\*|RC|RCBugFix|dev" | grep ': gone]' | gawk '{print $1}' | xargs -n 1 git branch -D +echo + +echo "You may want to remove these remote tracking references..." +comm -23 \ + <(git branch --all | sed 's/^[\* ] //' | grep origin/ | grep -v "\->" | awk '{ print $1; }' | sed 's/remotes\/origin\///') \ + <(git branch --all | sed 's/^[\* ] //' | grep -v remotes/ | awk '{ print $1; }') \ + | awk '{ print "git branch -d -r origin/" $1; }' +echo diff --git a/Marlin/scripts/mfrb b/Marlin/scripts/mfrb new file mode 100755 index 0000000000..c1366f7f98 --- /dev/null +++ b/Marlin/scripts/mfrb @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# mfrb +# +# Do "git rebase -i" against the "target" branch (RCBugFix or dev) +# + +MFINFO=$(mfinfo) || exit +IFS=' ' read -a INFO <<< "$MFINFO" + +if [[ ${INFO[4]} == "(no" ]]; then + echo "Branch is unavailable!" + exit 1 +fi + +case "$#" in + 0 ) ;; + * ) echo "Usage: `basename $0`" 1>&2 ; exit 1 ;; +esac + +git rebase -i ${INFO[3]} diff --git a/Marlin/scripts/mfup b/Marlin/scripts/mfup new file mode 100755 index 0000000000..ff19e0e1c0 --- /dev/null +++ b/Marlin/scripts/mfup @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +# +# mfup +# +# Fetch and merge upstream changes, optionally with a branch +# + +MFINFO=$(mfinfo) || exit + +IFS=' ' read -a INFO <<< "$MFINFO" + +ORG=${INFO[0]} +FORK=${INFO[1]} +REPO=${INFO[2]} +TARG=${INFO[3]} +OLDBRANCH=${INFO[4]} + +if [[ $OLDBRANCH == "(no" ]]; then + echo "Branch is unavailable!" + exit 1 +fi + +case "$#" in + 0 ) BRANCH=$OLDBRANCH ;; + 1 ) BRANCH=$1 ;; + * ) echo "Usage: `basename $0` [branch]" 1>&2 ; exit 1 ;; +esac + +set -e + +echo "Fetching upstream ($ORG/$REPO)..." +git fetch upstream + +echo ; echo "Bringing $TARG up to date..." +git checkout -q $TARG || git branch checkout upstream/$TARG -b $TARG && git push --set-upstream origin $TARG +git merge upstream/$TARG +git push origin + +if [[ $BRANCH != $TARG ]]; then + echo ; echo "Rebasing $BRANCH on $TARG..." + if git checkout $BRANCH; then + echo + if git rebase $TARG; then + git push -f ; echo + [[ $BRANCH != $OLDBRANCH ]] && git checkout $OLDBRANCH + else + echo "Looks like merge conflicts. Stopping here." + fi + else + echo "No such branch!" ; echo + git checkout $OLDBRANCH + fi +fi From ba84d8d091b13c90c7cd3e199ff3a9907374f7a1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 19 Apr 2016 18:09:29 -0700 Subject: [PATCH 111/383] Allow setting PIDTEMP and PIDTEMPBED together or apart --- Marlin/Conditionals.h | 6 ++ Marlin/Marlin_main.cpp | 2 +- Marlin/configuration_store.cpp | 2 +- Marlin/temperature.cpp | 124 ++++++++++++++++++++++++--------- Marlin/ultralcd.cpp | 2 +- 5 files changed, 101 insertions(+), 35 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index b0a06195cd..1966f436fe 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -505,6 +505,12 @@ #define BED_USES_THERMISTOR #endif + /** + * Flags for PID handling + */ + #define HAS_PID_HEATING (ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED)) + #define HAS_PID_FOR_BOTH (ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED)) + /** * ARRAY_BY_EXTRUDERS based on EXTRUDERS */ diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7b232e56bd..dabd765321 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5559,7 +5559,7 @@ inline void gcode_M226() { * U with a non-zero value will apply the result to current settings */ inline void gcode_M303() { - #if ENABLED(PIDTEMP) + #if HAS_PID_HEATING int e = code_seen('E') ? code_value_short() : 0; int c = code_seen('C') ? code_value_short() : 5; bool u = code_seen('U') && code_value_short() != 0; diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 7d5a1b4d67..ced96e2602 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -794,7 +794,7 @@ void Config_PrintSettings(bool forReplay) { SERIAL_EOL; #endif // ULTIPANEL - #if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED) + #if HAS_PID_HEATING CONFIG_ECHO_START; if (!forReplay) { diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index bfbadc6cbe..cb175efc8f 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -221,7 +221,7 @@ static void updateTemperaturesFromRawValues(); //================================ Functions ================================ //=========================================================================== -#if ENABLED(PIDTEMP) +#if HAS_PID_HEATING void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { float input = 0.0; @@ -240,8 +240,13 @@ static void updateTemperaturesFromRawValues(); millis_t next_auto_fan_check_ms = temp_ms + 2500UL; #endif - if (extruder >= EXTRUDERS - #if !HAS_TEMP_BED + if (false + #if ENABLED(PIDTEMP) + || extruder >= EXTRUDERS + #else + || extruder >= 0 + #endif + #if DISABLED(PIDTEMPBED) || extruder < 0 #endif ) { @@ -253,10 +258,16 @@ static void updateTemperaturesFromRawValues(); disable_all_heaters(); // switch off all heaters. - if (extruder < 0) - soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2; - else + #if HAS_PID_FOR_BOTH + if (extruder < 0) + soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2; + else + soft_pwm[extruder] = bias = d = (PID_MAX) / 2; + #elif ENABLED(PIDTEMP) soft_pwm[extruder] = bias = d = (PID_MAX) / 2; + #else + soft_pwm_bed = bias = d = (MAX_BED_POWER) / 2; + #endif // PID Tuning loop for (;;) { @@ -266,7 +277,15 @@ static void updateTemperaturesFromRawValues(); if (temp_meas_ready) { // temp sample ready updateTemperaturesFromRawValues(); - input = (extruder < 0) ? current_temperature_bed : current_temperature[extruder]; + input = + #if HAS_PID_FOR_BOTH + extruder < 0 ? current_temperature_bed : current_temperature[extruder] + #elif ENABLED(PIDTEMP) + current_temperature[extruder] + #else + current_temperature_bed + #endif + ; max = max(max, input); min = min(min, input); @@ -281,10 +300,16 @@ static void updateTemperaturesFromRawValues(); if (heating && input > temp) { if (ELAPSED(ms, t2 + 5000UL)) { heating = false; - if (extruder < 0) - soft_pwm_bed = (bias - d) >> 1; - else + #if HAS_PID_FOR_BOTH + if (extruder < 0) + soft_pwm_bed = (bias - d) >> 1; + else + soft_pwm[extruder] = (bias - d) >> 1; + #elif ENABLED(PIDTEMP) soft_pwm[extruder] = (bias - d) >> 1; + #elif ENABLED(PIDTEMPBED) + soft_pwm_bed = (bias - d) >> 1; + #endif t1 = ms; t_high = t1 - t2; max = temp; @@ -297,7 +322,15 @@ static void updateTemperaturesFromRawValues(); t2 = ms; t_low = t2 - t1; if (cycles > 0) { - long max_pow = extruder < 0 ? MAX_BED_POWER : PID_MAX; + long max_pow = + #if HAS_PID_FOR_BOTH + extruder < 0 ? MAX_BED_POWER : PID_MAX + #elif ENABLED(PIDTEMP) + PID_MAX + #else + MAX_BED_POWER + #endif + ; bias += (d * (t_high - t_low)) / (t_low + t_high); bias = constrain(bias, 20, max_pow - 20); d = (bias > max_pow / 2) ? max_pow - 1 - bias : bias; @@ -336,10 +369,16 @@ static void updateTemperaturesFromRawValues(); */ } } - if (extruder < 0) - soft_pwm_bed = (bias + d) >> 1; - else + #if HAS_PID_FOR_BOTH + if (extruder < 0) + soft_pwm_bed = (bias + d) >> 1; + else + soft_pwm[extruder] = (bias + d) >> 1; + #elif ENABLED(PIDTEMP) soft_pwm[extruder] = (bias + d) >> 1; + #else + soft_pwm_bed = (bias + d) >> 1; + #endif cycles++; min = temp; } @@ -366,27 +405,48 @@ static void updateTemperaturesFromRawValues(); } if (cycles > ncycles) { SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED); - const char* estring = extruder < 0 ? "bed" : ""; - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi); - SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd); + + #if HAS_PID_FOR_BOTH + const char* estring = extruder < 0 ? "bed" : ""; + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM("#define DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(workKd); + #elif ENABLED(PIDTEMP) + SERIAL_PROTOCOLPGM("#define DEFAULT_Kp "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM("#define DEFAULT_Ki "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM("#define DEFAULT_Kd "); SERIAL_PROTOCOLLN(workKd); + #else + SERIAL_PROTOCOLPGM("#define DEFAULT_bedKp "); SERIAL_PROTOCOLLN(workKp); + SERIAL_PROTOCOLPGM("#define DEFAULT_bedKi "); SERIAL_PROTOCOLLN(workKi); + SERIAL_PROTOCOLPGM("#define DEFAULT_bedKd "); SERIAL_PROTOCOLLN(workKd); + #endif + + #define _SET_BED_PID() \ + bedKp = workKp; \ + bedKi = scalePID_i(workKi); \ + bedKd = scalePID_d(workKd); \ + updatePID() + + #define _SET_EXTRUDER_PID() \ + PID_PARAM(Kp, extruder) = workKp; \ + PID_PARAM(Ki, extruder) = scalePID_i(workKi); \ + PID_PARAM(Kd, extruder) = scalePID_d(workKd); \ + updatePID() // Use the result? (As with "M303 U1") if (set_result) { - if (extruder < 0) { - #if ENABLED(PIDTEMPBED) - bedKp = workKp; - bedKi = scalePID_i(workKi); - bedKd = scalePID_d(workKd); - updatePID(); - #endif - } - else { - PID_PARAM(Kp, extruder) = workKp; - PID_PARAM(Ki, extruder) = scalePID_i(workKi); - PID_PARAM(Kd, extruder) = scalePID_d(workKd); - updatePID(); - } + #if HAS_PID_FOR_BOTH + if (extruder < 0) { + _SET_BED_PID(); + } + else { + _SET_EXTRUDER_PID(); + } + #elif ENABLED(PIDTEMP) + _SET_EXTRUDER_PID(); + #else + _SET_BED_PID(); + #endif } return; } diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index a8296c0db6..cb9e717fbc 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1343,7 +1343,7 @@ static void lcd_control_menu() { static void _lcd_autotune(int e) { char cmd[30]; sprintf_P(cmd, PSTR("M303 U1 E%d S%d"), e, - #if ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED) + #if HAS_PID_FOR_BOTH e < 0 ? autotune_temp_bed : autotune_temp[e] #elif ENABLED(PIDTEMPBED) autotune_temp_bed From 78747b1328e46b55344da14afb735994f5c16809 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 23:11:35 -0700 Subject: [PATCH 112/383] min_pos/max_pos => sw_endstop_min/sw_endstop_max --- Marlin/Marlin.h | 4 ++-- Marlin/Marlin_main.cpp | 44 ++++++++++++++++++++++++++---------------- Marlin/ultralcd.cpp | 10 +++++----- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index aa3d54de77..dc73e8e746 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -275,8 +275,8 @@ extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in m extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner extern float current_position[NUM_AXIS]; extern float home_offset[3]; // axis[n].home_offset -extern float min_pos[3]; // axis[n].min_pos -extern float max_pos[3]; // axis[n].max_pos +extern float sw_endstop_min[3]; // axis[n].sw_endstop_min +extern float sw_endstop_max[3]; // axis[n].sw_endstop_max extern bool axis_known_position[3]; // axis[n].is_known extern bool axis_homed[3]; // axis[n].is_homed diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7b232e56bd..3bb393c7cc 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -286,8 +286,10 @@ float volumetric_multiplier[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(1.0); float position_shift[3] = { 0 }; float home_offset[3] = { 0 }; -float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; -float max_pos[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; + +// Software Endstops. Default to configured limits. +float sw_endstop_min[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; +float sw_endstop_max[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; #if FAN_COUNT > 0 int fanSpeeds[FAN_COUNT] = { 0 }; @@ -1212,24 +1214,32 @@ static void update_software_endstops(AxisEnum axis) { if (axis == X_AXIS) { float dual_max_x = max(extruder_offset[X_AXIS][1], X2_MAX_POS); if (active_extruder != 0) { - min_pos[X_AXIS] = X2_MIN_POS + offs; - max_pos[X_AXIS] = dual_max_x + offs; + sw_endstop_min[X_AXIS] = X2_MIN_POS + offs; + sw_endstop_max[X_AXIS] = dual_max_x + offs; return; } else if (dual_x_carriage_mode == DXC_DUPLICATION_MODE) { - min_pos[X_AXIS] = base_min_pos(X_AXIS) + offs; - max_pos[X_AXIS] = min(base_max_pos(X_AXIS), dual_max_x - duplicate_extruder_x_offset) + offs; + sw_endstop_min[X_AXIS] = base_min_pos(X_AXIS) + offs; + sw_endstop_max[X_AXIS] = min(base_max_pos(X_AXIS), dual_max_x - duplicate_extruder_x_offset) + offs; return; } } else #endif { - min_pos[axis] = base_min_pos(axis) + offs; - max_pos[axis] = base_max_pos(axis) + offs; + sw_endstop_min[axis] = base_min_pos(axis) + offs; + sw_endstop_max[axis] = base_max_pos(axis) + offs; } } +/** + * Change the home offset for an axis, update the current + * position and the software endstops to retain the same + * relative distance to the new home. + * + * Since this changes the current_position, code should + * call sync_plan_position soon after this. + */ static void set_home_offset(AxisEnum axis, float v) { current_position[axis] += v - home_offset[axis]; home_offset[axis] = v; @@ -1294,8 +1304,8 @@ static void set_axis_is_at_home(AxisEnum axis) { * SCARA home positions are based on configuration since the actual * limits are determined by the inverse kinematic transform. */ - min_pos[axis] = base_min_pos(axis); // + (delta[axis] - base_home_pos(axis)); - max_pos[axis] = base_max_pos(axis); // + (delta[axis] - base_home_pos(axis)); + sw_endstop_min[axis] = base_min_pos(axis); // + (delta[axis] - base_home_pos(axis)); + sw_endstop_max[axis] = base_max_pos(axis); // + (delta[axis] - base_home_pos(axis)); } else #endif @@ -5842,7 +5852,7 @@ inline void gcode_M428() { bool err = false; for (int8_t i = X_AXIS; i <= Z_AXIS; i++) { if (axis_homed[i]) { - float base = (current_position[i] > (min_pos[i] + max_pos[i]) / 2) ? base_home_pos(i) : 0, + float base = (current_position[i] > (sw_endstop_min[i] + sw_endstop_max[i]) / 2) ? base_home_pos(i) : 0, diff = current_position[i] - base; if (diff > -20 && diff < 20) { set_home_offset((AxisEnum)i, home_offset[i] - diff); @@ -7032,8 +7042,8 @@ void ok_to_send() { void clamp_to_software_endstops(float target[3]) { if (min_software_endstops) { - NOLESS(target[X_AXIS], min_pos[X_AXIS]); - NOLESS(target[Y_AXIS], min_pos[Y_AXIS]); + NOLESS(target[X_AXIS], sw_endstop_min[X_AXIS]); + NOLESS(target[Y_AXIS], sw_endstop_min[Y_AXIS]); float negative_z_offset = 0; #if ENABLED(AUTO_BED_LEVELING_FEATURE) @@ -7048,13 +7058,13 @@ void clamp_to_software_endstops(float target[3]) { negative_z_offset += home_offset[Z_AXIS]; } #endif - NOLESS(target[Z_AXIS], min_pos[Z_AXIS] + negative_z_offset); + NOLESS(target[Z_AXIS], sw_endstop_min[Z_AXIS] + negative_z_offset); } if (max_software_endstops) { - NOMORE(target[X_AXIS], max_pos[X_AXIS]); - NOMORE(target[Y_AXIS], max_pos[Y_AXIS]); - NOMORE(target[Z_AXIS], max_pos[Z_AXIS]); + NOMORE(target[X_AXIS], sw_endstop_max[X_AXIS]); + NOMORE(target[Y_AXIS], sw_endstop_max[Y_AXIS]); + NOMORE(target[Z_AXIS], sw_endstop_max[Z_AXIS]); } } diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index a8296c0db6..4521587b08 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1167,13 +1167,13 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { #if ENABLED(DELTA) static float delta_clip_radius_2 = (DELTA_PRINTABLE_RADIUS) * (DELTA_PRINTABLE_RADIUS); static int delta_clip( float a ) { return sqrt(delta_clip_radius_2 - a*a); } - static void lcd_move_x() { int clip = delta_clip(current_position[Y_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(min_pos[X_AXIS], -clip), min(max_pos[X_AXIS], clip)); } - static void lcd_move_y() { int clip = delta_clip(current_position[X_AXIS]); _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, max(min_pos[Y_AXIS], -clip), min(max_pos[Y_AXIS], clip)); } + static void lcd_move_x() { int clip = delta_clip(current_position[Y_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(sw_endstop_min[X_AXIS], -clip), min(sw_endstop_max[X_AXIS], clip)); } + static void lcd_move_y() { int clip = delta_clip(current_position[X_AXIS]); _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, max(sw_endstop_min[Y_AXIS], -clip), min(sw_endstop_max[Y_AXIS], clip)); } #else - static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, min_pos[X_AXIS], max_pos[X_AXIS]); } - static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, min_pos[Y_AXIS], max_pos[Y_AXIS]); } + static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, sw_endstop_min[X_AXIS], sw_endstop_max[X_AXIS]); } + static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, sw_endstop_min[Y_AXIS], sw_endstop_max[Y_AXIS]); } #endif -static void lcd_move_z() { _lcd_move(PSTR(MSG_MOVE_Z), Z_AXIS, min_pos[Z_AXIS], max_pos[Z_AXIS]); } +static void lcd_move_z() { _lcd_move(PSTR(MSG_MOVE_Z), Z_AXIS, sw_endstop_min[Z_AXIS], sw_endstop_max[Z_AXIS]); } static void lcd_move_e( #if EXTRUDERS > 1 uint8_t e From a4062a47acfc96906b0dc822b1ba31a0baea8f9c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 23:12:15 -0700 Subject: [PATCH 113/383] Rename baricuda variables --- Marlin/Marlin.h | 4 ++-- Marlin/Marlin_main.cpp | 12 ++++++------ Marlin/planner.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index dc73e8e746..353cf50a44 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -340,8 +340,8 @@ extern bool axis_homed[3]; // axis[n].is_homed #endif #if ENABLED(BARICUDA) - extern int ValvePressure; - extern int EtoPPressure; + extern int baricuda_valve_pressure; + extern int baricuda_e_to_p_pressure; #endif #if ENABLED(FILAMENT_WIDTH_SENSOR) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 3bb393c7cc..ba352eee3c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -346,8 +346,8 @@ static uint8_t target_extruder; #endif #if ENABLED(BARICUDA) - int ValvePressure = 0; - int EtoPPressure = 0; + int baricuda_valve_pressure = 0; + int baricuda_e_to_p_pressure = 0; #endif #if ENABLED(FWRETRACT) @@ -4622,22 +4622,22 @@ inline void gcode_M112() { kill(PSTR(MSG_KILLED)); } /** * M126: Heater 1 valve open */ - inline void gcode_M126() { ValvePressure = code_seen('S') ? constrain(code_value(), 0, 255) : 255; } + inline void gcode_M126() { baricuda_valve_pressure = code_seen('S') ? constrain(code_value(), 0, 255) : 255; } /** * M127: Heater 1 valve close */ - inline void gcode_M127() { ValvePressure = 0; } + inline void gcode_M127() { baricuda_valve_pressure = 0; } #endif #if HAS_HEATER_2 /** * M128: Heater 2 valve open */ - inline void gcode_M128() { EtoPPressure = code_seen('S') ? constrain(code_value(), 0, 255) : 255; } + inline void gcode_M128() { baricuda_e_to_p_pressure = code_seen('S') ? constrain(code_value(), 0, 255) : 255; } /** * M129: Heater 2 valve close */ - inline void gcode_M129() { EtoPPressure = 0; } + inline void gcode_M129() { baricuda_e_to_p_pressure = 0; } #endif #endif //BARICUDA diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index ae2b66d00c..ed3cd3047f 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -428,8 +428,8 @@ void check_axes_activity() { #endif #if ENABLED(BARICUDA) - unsigned char tail_valve_pressure = ValvePressure, - tail_e_to_p_pressure = EtoPPressure; + unsigned char tail_valve_pressure = baricuda_valve_pressure, + tail_e_to_p_pressure = baricuda_e_to_p_pressure; #endif block_t* block; @@ -650,8 +650,8 @@ float junction_deviation = 0.1; #endif #if ENABLED(BARICUDA) - block->valve_pressure = ValvePressure; - block->e_to_p_pressure = EtoPPressure; + block->valve_pressure = baricuda_valve_pressure; + block->e_to_p_pressure = baricuda_e_to_p_pressure; #endif // Compute direction bits for this block From 27b2e2e786926099eb1d49db9f72b044b23760ab Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 23:13:07 -0700 Subject: [PATCH 114/383] Document some variables --- Marlin/Marlin_main.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ba352eee3c..1f4863d1f3 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -284,7 +284,11 @@ bool volumetric_enabled = false; float filament_size[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_NOMINAL_FILAMENT_DIA); float volumetric_multiplier[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(1.0); +// The distance that XYZ has been offset by G92. Reset by G28. float position_shift[3] = { 0 }; + +// This offset is added to the configured home position. +// Set by M206, M428, or menu item. Saved to EEPROM. float home_offset[3] = { 0 }; // Software Endstops. Default to configured limits. @@ -295,23 +299,36 @@ float sw_endstop_max[3] = { X_MAX_POS, Y_MAX_POS, Z_MAX_POS }; int fanSpeeds[FAN_COUNT] = { 0 }; #endif +// The active extruder (tool). Set with T command. uint8_t active_extruder = 0; + +// Relative Mode. Enable with G91, disable with G90. +static bool relative_mode = false; + bool cancel_heatup = false; const char errormagic[] PROGMEM = "Error:"; const char echomagic[] PROGMEM = "echo:"; const char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'}; -static bool relative_mode = false; //Determines Absolute or Relative Coordinates static int serial_count = 0; -static char* seen_pointer; ///< A pointer to find chars in the command string (X, Y, Z, E, etc.) -const char* queued_commands_P = NULL; /* pointer to the current line in the active sequence of commands, or NULL when none */ + +// GCode parameter pointer used by code_seen(), code_value(), etc. +static char* seen_pointer; + +// Next Immediate GCode Command pointer. NULL if none. +const char* queued_commands_P = NULL; + const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42 + // Inactivity shutdown millis_t previous_cmd_ms = 0; static millis_t max_inactive_time = 0; static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL; + +// Print Job Timer Stopwatch print_job_timer = Stopwatch(); + static uint8_t target_extruder; #if ENABLED(AUTO_BED_LEVELING_FEATURE) From cafa8b8ce33cf75fc0ec8cfc2693945a9b9072e5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 17 Apr 2016 23:16:49 -0700 Subject: [PATCH 115/383] Rename filament runout items --- Marlin/Marlin.h | 2 +- Marlin/Marlin_main.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 353cf50a44..45bf622471 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -226,7 +226,7 @@ void kill(const char*); void Stop(); #if ENABLED(FILAMENT_RUNOUT_SENSOR) - void filrunout(); + void handle_filament_runout(); #endif /** diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1f4863d1f3..63cee03230 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -446,7 +446,7 @@ static uint8_t target_extruder; #endif #if ENABLED(FILAMENT_RUNOUT_SENSOR) - static bool filrunoutEnqueued = false; + static bool filament_ran_out = false; #endif static bool send_ok[BUFSIZE]; @@ -6105,7 +6105,7 @@ inline void gcode_M503() { #endif #if ENABLED(FILAMENT_RUNOUT_SENSOR) - filrunoutEnqueued = false; + filament_ran_out = false; #endif } @@ -7741,7 +7741,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { #if HAS_FILRUNOUT if (IS_SD_PRINTING && !(READ(FILRUNOUT_PIN) ^ FIL_RUNOUT_INVERTING)) - filrunout(); + handle_filament_runout(); #endif if (commands_in_queue < BUFSIZE) get_available_commands(); @@ -7924,9 +7924,9 @@ void kill(const char* lcd_msg) { #if ENABLED(FILAMENT_RUNOUT_SENSOR) - void filrunout() { - if (!filrunoutEnqueued) { - filrunoutEnqueued = true; + void handle_filament_runout() { + if (!filament_ran_out) { + filament_ran_out = true; enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT)); st_synchronize(); } From 39ee9c526baa112b0f0c08ce99009ad26887d308 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 00:01:28 -0700 Subject: [PATCH 116/383] setTargetedHotend => get_target_extruder_from_command --- Marlin/Marlin_main.cpp | 59 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 63cee03230..5fbb21f0ed 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -496,8 +496,6 @@ void process_next_command(); void plan_arc(float target[NUM_AXIS], float* offset, uint8_t clockwise); -bool setTargetedHotend(int code); - void serial_echopair_P(const char* s_P, int v) { serialprintPGM(s_P); SERIAL_ECHO(v); } void serial_echopair_P(const char* s_P, long v) { serialprintPGM(s_P); SERIAL_ECHO(v); } void serial_echopair_P(const char* s_P, float v) { serialprintPGM(s_P); SERIAL_ECHO(v); } @@ -1161,6 +1159,30 @@ bool code_seen(char code) { return (seen_pointer != NULL); // Return TRUE if the code-letter was found } +/** + * Set target_extruder from the T parameter or the active_extruder + * + * Returns TRUE if the target is invalid + */ +bool get_target_extruder_from_command(int code) { + if (code_seen('T')) { + short t = code_value_short(); + if (t >= EXTRUDERS) { + SERIAL_ECHO_START; + SERIAL_CHAR('M'); + SERIAL_ECHO(code); + SERIAL_ECHOPAIR(" " MSG_INVALID_EXTRUDER " ", t); + SERIAL_EOL; + return true; + } + target_extruder = t; + } + else + target_extruder = active_extruder; + + return false; +} + #define DEFINE_PGM_READ_ANY(type, reader) \ static inline type pgm_read_any(const type *p) \ { return pgm_read_##reader##_near(p); } @@ -4233,7 +4255,7 @@ inline void gcode_M77() { * M104: Set hot end temperature */ inline void gcode_M104() { - if (setTargetedHotend(104)) return; + if (get_target_extruder_from_command(104)) return; if (DEBUGGING(DRYRUN)) return; if (code_seen('S')) { @@ -4341,7 +4363,7 @@ inline void gcode_M104() { * M105: Read hot end and bed temperature */ inline void gcode_M105() { - if (setTargetedHotend(105)) return; + if (get_target_extruder_from_command(105)) return; #if HAS_TEMP_HOTEND || HAS_TEMP_BED SERIAL_PROTOCOLPGM(MSG_OK); @@ -4385,7 +4407,7 @@ inline void gcode_M105() { */ inline void gcode_M109() { - if (setTargetedHotend(109)) return; + if (get_target_extruder_from_command(109)) return; if (DEBUGGING(DRYRUN)) return; bool no_wait_for_cooling = code_seen('S'); @@ -5052,7 +5074,7 @@ inline void gcode_M121() { enable_endstops_globally(false); } */ inline void gcode_M200() { - if (setTargetedHotend(200)) return; + if (get_target_extruder_from_command(200)) return; if (code_seen('D')) { float diameter = code_value(); @@ -5304,7 +5326,7 @@ inline void gcode_M206() { * Z - Available with DUAL_X_CARRIAGE */ inline void gcode_M218() { - if (setTargetedHotend(218)) return; + if (get_target_extruder_from_command(218)) return; if (code_seen('X')) extruder_offset[X_AXIS][target_extruder] = code_value(); if (code_seen('Y')) extruder_offset[Y_AXIS][target_extruder] = code_value(); @@ -5343,7 +5365,7 @@ inline void gcode_M220() { inline void gcode_M221() { if (code_seen('S')) { int sval = code_value(); - if (setTargetedHotend(221)) return; + if (get_target_extruder_from_command(221)) return; extruder_multiplier[target_extruder] = sval; } } @@ -8006,27 +8028,6 @@ void Stop() { } } -/** - * Set target_extruder from the T parameter or the active_extruder - * - * Returns TRUE if the target is invalid - */ -bool setTargetedHotend(int code) { - target_extruder = active_extruder; - if (code_seen('T')) { - target_extruder = code_value_short(); - if (target_extruder >= EXTRUDERS) { - SERIAL_ECHO_START; - SERIAL_CHAR('M'); - SERIAL_ECHO(code); - SERIAL_ECHOPGM(" " MSG_INVALID_EXTRUDER " "); - SERIAL_ECHOLN((int)target_extruder); - return true; - } - } - return false; -} - float calculate_volumetric_multiplier(float diameter) { if (!volumetric_enabled || diameter == 0) return 1.0; float d2 = diameter * 0.5; From ac69fad96d0eeafc65016328c5fdf2ee08e2cd0a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 18 Apr 2016 00:05:22 -0700 Subject: [PATCH 117/383] lowercase "stop" function --- Marlin/Marlin.h | 1 - Marlin/Marlin_main.cpp | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 45bf622471..7c4096205c 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -223,7 +223,6 @@ void ok_to_send(); void reset_bed_level(); void prepare_move(); void kill(const char*); -void Stop(); #if ENABLED(FILAMENT_RUNOUT_SENSOR) void handle_filament_runout(); diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 5fbb21f0ed..1162262bd4 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -491,6 +491,8 @@ static bool send_ok[BUFSIZE]; * *************************************************************************** */ +void stop(); + void get_available_commands(); void process_next_command(); @@ -1761,7 +1763,7 @@ static void setup_for_endstop_move() { SERIAL_ERRORLNPGM("Z-Probe failed to engage!"); LCD_ALERTMESSAGEPGM("Err: ZPROBE"); } - Stop(); + stop(); } #endif // Z_PROBE_ALLEN_KEY @@ -1865,7 +1867,7 @@ static void setup_for_endstop_move() { SERIAL_ERRORLNPGM("Z-Probe failed to retract!"); LCD_ALERTMESSAGEPGM("Err: ZPROBE"); } - Stop(); + stop(); } #endif // Z_PROBE_ALLEN_KEY @@ -8017,7 +8019,7 @@ void kill(const char* lcd_msg) { } #endif // FAST_PWM_FAN -void Stop() { +void stop() { disable_all_heaters(); if (IsRunning()) { Running = false; From 8a2587f017a6feb6fd68f344f5677939cdd89fa5 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 19 Apr 2016 19:57:32 -0700 Subject: [PATCH 118/383] Read size for MAX6675 from sizeof(max6675_temp) --- Marlin/temperature.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index bfbadc6cbe..a48b8db7ec 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1219,13 +1219,11 @@ void disable_all_heaters() { #define MAX6675_HEAT_INTERVAL 250u #if ENABLED(MAX6675_IS_MAX31855) - unsigned long max6675_temp = 2000; - #define MAX6675_READ_BYTES 4 + uint32_t max6675_temp = 2000; #define MAX6675_ERROR_MASK 7 #define MAX6675_DISCARD_BITS 18 #else - unsigned int max6675_temp = 2000; - #define MAX6675_READ_BYTES 2 + uint16_t max6675_temp = 2000; #define MAX6675_ERROR_MASK 4 #define MAX6675_DISCARD_BITS 3 #endif @@ -1257,7 +1255,7 @@ void disable_all_heaters() { // Read a big-endian temperature value max6675_temp = 0; - for (uint8_t i = MAX6675_READ_BYTES; i--;) { + for (uint8_t i = sizeof(max6675_temp); i--;) { SPDR = 0; for (;!TEST(SPSR, SPIF);); max6675_temp |= SPDR; From ee9bd66a68a1335cfd65265b941acf598ce6c7a8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 12:19:37 -0700 Subject: [PATCH 119/383] Add comments to debug bit flags --- Marlin/Marlin.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 7c4096205c..cc08d724b9 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -233,12 +233,12 @@ void kill(const char*); */ enum DebugFlags { DEBUG_NONE = 0, - DEBUG_ECHO = _BV(0), - DEBUG_INFO = _BV(1), - DEBUG_ERRORS = _BV(2), - DEBUG_DRYRUN = _BV(3), - DEBUG_COMMUNICATION = _BV(4), - DEBUG_LEVELING = _BV(5) + DEBUG_ECHO = _BV(0), ///< Echo commands in order as they are processed + DEBUG_INFO = _BV(1), ///< Print messages for code that has debug output + DEBUG_ERRORS = _BV(2), ///< Not implemented + DEBUG_DRYRUN = _BV(3), ///< Ignore temperature setting and E movement commands + DEBUG_COMMUNICATION = _BV(4), ///< Not implemented + DEBUG_LEVELING = _BV(5) ///< Print detailed output for homing and leveling }; extern uint8_t marlin_debug_flags; #define DEBUGGING(F) (marlin_debug_flags & (DEBUG_## F)) From e523a0dc616550b1394c2a5edc0b2772f64ca1e1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 12:34:55 -0700 Subject: [PATCH 120/383] Fix bug in TWIBus ctor declaration --- Marlin/twibus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/twibus.cpp b/Marlin/twibus.cpp index 84d69df740..d17648cec1 100644 --- a/Marlin/twibus.cpp +++ b/Marlin/twibus.cpp @@ -28,7 +28,7 @@ #include -TWIBus::twibus() { +TWIBus::TWIBus() { Wire.begin(); // We use no address so we will join the BUS as the master this->reset(); } From 21a6b66807446ca2fd7e3225033045e36e3d6ee8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 12:35:37 -0700 Subject: [PATCH 121/383] Shrink debug code in Stopwatch and disable by default --- Marlin/stopwatch.cpp | 35 +++++++++++++++++++++++++++++------ Marlin/stopwatch.h | 21 ++++++++++++++++++--- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/Marlin/stopwatch.cpp b/Marlin/stopwatch.cpp index 5bc0a280fd..60d556a4fb 100644 --- a/Marlin/stopwatch.cpp +++ b/Marlin/stopwatch.cpp @@ -24,11 +24,14 @@ #include "stopwatch.h" Stopwatch::Stopwatch() { - this->reset(); - } + this->reset(); +} void Stopwatch::stop() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::stop()"); + #if ENABLED(DEBUG_STOPWATCH) + debug(PSTR("stop")); + #endif + if (!this->isRunning()) return; this->status = STPWTCH_STOPPED; @@ -36,7 +39,10 @@ void Stopwatch::stop() { } void Stopwatch::pause() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::pause()"); + #if ENABLED(DEBUG_STOPWATCH) + debug(PSTR("pause")); + #endif + if (!this->isRunning()) return; this->status = STPWTCH_PAUSED; @@ -44,7 +50,10 @@ void Stopwatch::pause() { } void Stopwatch::start() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::start()"); + #if ENABLED(DEBUG_STOPWATCH) + debug(PSTR("start")); + #endif + if (this->isRunning()) return; if (this->isPaused()) this->accumulator = this->duration(); @@ -55,7 +64,9 @@ void Stopwatch::start() { } void Stopwatch::reset() { - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("Stopwatch::reset()"); + #if ENABLED(DEBUG_STOPWATCH) + debug(PSTR("reset")); + #endif this->status = STPWTCH_STOPPED; this->startTimestamp = 0; @@ -75,3 +86,15 @@ uint16_t Stopwatch::duration() { return (((this->isRunning()) ? millis() : this->stopTimestamp) - this->startTimestamp) / 1000 + this->accumulator; } + +#if ENABLED(DEBUG_STOPWATCH) + + void Stopwatch::debug(const char func[]) { + if (DEBUGGING(INFO)) { + SERIAL_ECHOPGM("Stopwatch::"); + serialprintPGM(func); + SERIAL_ECHOLNPGM("()"); + } + } + +#endif diff --git a/Marlin/stopwatch.h b/Marlin/stopwatch.h index d6ef8a7444..53c0f149fc 100644 --- a/Marlin/stopwatch.h +++ b/Marlin/stopwatch.h @@ -23,10 +23,15 @@ #ifndef STOPWATCH_H #define STOPWATCH_H +#include "macros.h" + +// Print debug messages with M111 S2 (Uses 156 bytes of PROGMEM) +//#define DEBUG_STOPWATCH + enum StopwatchStatus { - STPWTCH_STOPPED = 0x0, - STPWTCH_RUNNING = 0x1, - STPWTCH_PAUSED = 0x2 + STPWTCH_STOPPED, + STPWTCH_RUNNING, + STPWTCH_PAUSED }; /** @@ -94,6 +99,16 @@ class Stopwatch { * @return uint16_t */ uint16_t duration(); + + #if ENABLED(DEBUG_STOPWATCH) + + /** + * @brief Prints a debug message + * @details Prints a simple debug message "Stopwatch::function" + */ + static void debug(const char func[]); + + #endif }; #endif //STOPWATCH_H From 1addb50b6282bce364ff60da0c31dae6041580b1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 12:35:56 -0700 Subject: [PATCH 122/383] Shrink debug code in TWIBus and disable by default --- Marlin/twibus.cpp | 40 +++++++++++++++++++++++++++------------- Marlin/twibus.h | 15 +++++++++++++++ 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/Marlin/twibus.cpp b/Marlin/twibus.cpp index d17648cec1..c1d6008ddd 100644 --- a/Marlin/twibus.cpp +++ b/Marlin/twibus.cpp @@ -42,25 +42,26 @@ void TWIBus::reset() { void TWIBus::address(uint8_t addr) { this->addr = addr; - if (DEBUGGING(INFO)) { - SERIAL_ECHOPAIR("TWIBus::sendto: ", this->addr); - SERIAL_EOL; - } + #if ENABLED(DEBUG_TWIBUS) + debug(PSTR("sendto"), this->addr); + #endif } void TWIBus::addbyte(char c) { if (buffer_s >= sizeof(this->buffer)) return; this->buffer[this->buffer_s++] = c; - if (DEBUGGING(INFO)) { - SERIAL_ECHOPAIR("TWIBus::addbyte: ", this->buffer[this->buffer_s -1]); - SERIAL_EOL; - } + #if ENABLED(DEBUG_TWIBUS) + debug(PSTR("addbyte"), this->buffer[this->buffer_s - 1]); + #endif } void TWIBus::send() { if (!this->addr) return; - if (DEBUGGING(INFO)) SERIAL_ECHOLNPGM("TWIBus::send()"); + + #if ENABLED(DEBUG_TWIBUS) + debug(PSTR("send()")); + #endif Wire.beginTransmission(this->addr); Wire.write(this->buffer, this->buffer_s); @@ -72,10 +73,10 @@ void TWIBus::send() { void TWIBus::reqbytes(uint8_t bytes) { if (!this->addr) return; - if (DEBUGGING(INFO)) { - SERIAL_ECHOPAIR("TWIBus::reqbytes(): ", bytes); - SERIAL_EOL; - } + + #if ENABLED(DEBUG_TWIBUS) + debug(PSTR("reqbytes"), bytes); + #endif millis_t t = millis() + this->timeout; Wire.requestFrom(this->addr, bytes); @@ -101,4 +102,17 @@ void TWIBus::reqbytes(uint8_t bytes) { this->reset(); } +#if ENABLED(DEBUG_TWIBUS) + + void TWIBus::debug(const char func[], int32_t val/*=-1*/) { + if (DEBUGGING(INFO)) { + SERIAL_ECHOPGM("TWIBus::"); + serialprintPGM(func); + if (val >= 0) SERIAL_ECHOPAIR(": ", val); + SERIAL_EOL; + } + } + +#endif + #endif //EXPERIMENTAL_I2CBUS diff --git a/Marlin/twibus.h b/Marlin/twibus.h index 5ab725777b..d0d0e0ff32 100644 --- a/Marlin/twibus.h +++ b/Marlin/twibus.h @@ -23,6 +23,11 @@ #ifndef TWIBUS_H #define TWIBUS_H +#include "macros.h" + +// Print debug messages with M111 S2 (Uses 236 bytes of PROGMEM) +//#define DEBUG_TWIBUS + /** * TWIBUS class * @@ -117,6 +122,16 @@ class TWIBus { * @param bytes the number of bytes to request */ void reqbytes(uint8_t bytes); + + #if ENABLED(DEBUG_TWIBUS) + + /** + * @brief Prints a debug message + * @details Prints a simple debug message "TWIBus::function: value" + */ + static void debug(const char func[], int32_t val = -1); + + #endif }; #endif //TWIBUS_H From c7df96114472b09ba4d109f59a90f9a307baf081 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 13:01:58 -0700 Subject: [PATCH 123/383] Fix G92 so it only sets the plan position once --- Marlin/Marlin_main.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ecd9f9e381..7f49d8b5b9 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1427,6 +1427,7 @@ inline void sync_plan_position() { #endif plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } +inline void sync_plan_position_e() { plan_set_e_position(current_position[E_AXIS]); } inline void set_current_to_destination() { memcpy(current_position, destination, sizeof(current_position)); } inline void set_destination_to_current() { memcpy(destination, current_position, sizeof(destination)); } @@ -3642,8 +3643,9 @@ inline void gcode_G28() { * G92: Set current position to given X Y Z E */ inline void gcode_G92() { - if (!code_seen(axis_codes[E_AXIS])) - st_synchronize(); + bool didE = code_seen(axis_codes[E_AXIS]); + + if (!didE) st_synchronize(); bool didXYZ = false; for (int i = 0; i < NUM_AXIS; i++) { @@ -3653,14 +3655,11 @@ inline void gcode_G92() { current_position[i] = v; - if (i == E_AXIS) - plan_set_e_position(v); - else { + if (i != E_AXIS) { position_shift[i] += v - p; // Offset the coordinate space update_software_endstops((AxisEnum)i); - didXYZ = true; - } + } } } if (didXYZ) { @@ -3670,6 +3669,9 @@ inline void gcode_G92() { sync_plan_position(); #endif } + else if (didE) { + sync_plan_position_e(); + } } #if ENABLED(ULTIPANEL) From 1caa2628da8cb2cfda3eb5e2f47ebe8183c8b267 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 13:02:19 -0700 Subject: [PATCH 124/383] Use sync_plan_position_e function elsewhere --- Marlin/Marlin_main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7f49d8b5b9..66e84843cd 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2321,7 +2321,7 @@ static void homeaxis(AxisEnum axis) { feedrate = retract_feedrate * 60; current_position[E_AXIS] += (swapping ? retract_length_swap : retract_length) / volumetric_multiplier[active_extruder]; - plan_set_e_position(current_position[E_AXIS]); + sync_plan_position_e(); prepare_move(); if (retract_zlift > 0.01) { @@ -2349,7 +2349,7 @@ static void homeaxis(AxisEnum axis) { feedrate = retract_recover_feedrate * 60; float move_e = swapping ? retract_length_swap + retract_recover_length_swap : retract_length + retract_recover_length; current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder]; - plan_set_e_position(current_position[E_AXIS]); + sync_plan_position_e(); prepare_move(); } @@ -2440,7 +2440,7 @@ inline void gcode_G0_G1() { // Is this move an attempt to retract or recover? if ((echange < -MIN_RETRACT && !retracted[active_extruder]) || (echange > MIN_RETRACT && retracted[active_extruder])) { current_position[E_AXIS] = destination[E_AXIS]; // hide the slicer-generated retract/recover from calculations - plan_set_e_position(current_position[E_AXIS]); // AND from the planner + sync_plan_position_e(); // AND from the planner retract(!retracted[active_extruder]); return; } @@ -6108,7 +6108,7 @@ inline void gcode_M503() { #endif current_position[E_AXIS] = destination[E_AXIS]; //the long retract of L is compensated by manual filament feeding - plan_set_e_position(current_position[E_AXIS]); + sync_plan_position_e(); RUNPLAN; //should do nothing From 71b4f189bfd6f53dff4e94c0ae974318733051af Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 15:51:27 -0700 Subject: [PATCH 125/383] lcd_implementation_drawedit can take 1 arg --- Marlin/dogm_lcd_implementation.h | 2 +- Marlin/ultralcd_implementation_hitachi_HD44780.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index a1281cf7ac..0ecbbcbab0 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -517,7 +517,7 @@ static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const c #define lcd_implementation_drawmenu_setting_edit_callback_long5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, ftostr5(*(data))) #define lcd_implementation_drawmenu_setting_edit_callback_bool(sel, row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF)) -void lcd_implementation_drawedit(const char* pstr, const char* value) { +void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) { uint8_t rows = 1; uint8_t lcd_width = LCD_WIDTH, char_width = DOG_CHAR_WIDTH; uint8_t vallen = lcd_strlen(value); diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index 3787db01bd..b6d60c2ffc 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -873,7 +873,7 @@ static void lcd_implementation_drawmenu_setting_edit_generic_P(bool sel, uint8_t #define lcd_implementation_drawmenu_setting_edit_callback_long5(sel, row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, '>', ftostr5(*(data))) #define lcd_implementation_drawmenu_setting_edit_callback_bool(sel, row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(sel, row, pstr, '>', (*(data))?PSTR(MSG_ON):PSTR(MSG_OFF)) -void lcd_implementation_drawedit(const char* pstr, const char* value) { +void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) { lcd.setCursor(1, 1); lcd_printPGM(pstr); if (value != NULL) { From 3f6ae857481e902475b2fd757c7b1d5b10b2981d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 15:54:08 -0700 Subject: [PATCH 126/383] Fix some MBL display issues for DOGLCD --- Marlin/ultralcd.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 3e77278229..2ab79a6505 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1015,7 +1015,13 @@ void lcd_cooldown() { */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]) lcd_goto_menu(_lcd_level_bed_homing_done); } @@ -1157,10 +1163,10 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale; if (min_software_endstops) NOLESS(current_position[axis], min); if (max_software_endstops) NOMORE(current_position[axis], max); - encoderPosition = 0; line_to_current(axis); lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } + encoderPosition = 0; if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); if (LCD_CLICKED) lcd_goto_previous_menu(true); } @@ -1186,10 +1192,10 @@ static void lcd_move_e( #endif if (encoderPosition && movesplanned() <= 3) { current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; - encoderPosition = 0; line_to_current(E_AXIS); lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } + encoderPosition = 0; if (lcdDrawUpdate) { PGM_P pos_label; #if EXTRUDERS == 1 From 9bcb72e7f81074321d805845ac3b2edde1057ef4 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 15:55:36 -0700 Subject: [PATCH 127/383] Further patches to MBL - break up into more handlers --- Marlin/language_en.h | 3 + Marlin/ultralcd.cpp | 144 ++++++++++++++++++++++++++----------------- 2 files changed, 91 insertions(+), 56 deletions(-) diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 18ea1cbdbc..8ffbb50ed4 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -70,6 +70,9 @@ #ifndef MSG_LEVEL_BED_WAITING #define MSG_LEVEL_BED_WAITING "Click to Begin" #endif +#ifndef MSG_LEVEL_BED_NEXT_POINT + #define MSG_LEVEL_BED_NEXT_POINT "Next Point" +#endif #ifndef MSG_LEVEL_BED_DONE #define MSG_LEVEL_BED_DONE "Leveling Done!" #endif diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 2ab79a6505..56b7dbdaf3 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -891,15 +891,13 @@ void lcd_cooldown() { * */ - static int _lcd_level_bed_position; - static bool mbl_wait_for_move = false; + static uint8_t _lcd_level_bed_position; // Utility to go to the next mesh point // A raise is added between points if MIN_Z_HEIGHT_FOR_HOMING is in use // Note: During Manual Bed Leveling the homed Z position is MESH_HOME_SEARCH_Z // Z position will be restored with the final action, a G28 inline void _mbl_goto_xy(float x, float y) { - mbl_wait_for_move = true; current_position[Z_AXIS] = MESH_HOME_SEARCH_Z #if MIN_Z_HEIGHT_FOR_HOMING > 0 + MIN_Z_HEIGHT_FOR_HOMING @@ -914,59 +912,52 @@ void lcd_cooldown() { line_to_current(Z_AXIS); #endif st_synchronize(); - mbl_wait_for_move = false; + } + + static void _lcd_level_goto_next_point(); + + static void _lcd_level_bed_done() { + if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_DONE)); + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; } /** - * 5. MBL Wait for controller movement and clicks: - * - Movement adjusts the Z axis - * - Click saves the Z, goes to the next mesh point + * Step 7: Get the Z coordinate, then goto next point or exit */ - static void _lcd_level_bed_procedure() { - // Menu handlers may be called in a re-entrant fashion - // if they call st_synchronize or plan_buffer_line. So - // while waiting for a move we just ignore new input. - if (mbl_wait_for_move) { - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; - return; - } - + static void _lcd_level_bed_get_z() { ENCODER_DIRECTION_NORMAL(); // Encoder wheel adjusts the Z position if (encoderPosition && movesplanned() <= 3) { refresh_cmd_timeout(); current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP); - if (min_software_endstops) NOLESS(current_position[Z_AXIS], Z_MIN_POS); - if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS); - encoderPosition = 0; + NOLESS(current_position[Z_AXIS], 0); + NOMORE(current_position[Z_AXIS], MESH_HOME_SEARCH_Z * 2); line_to_current(Z_AXIS); - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; - } - - // Update on first display, then only on updates to Z position - if (lcdDrawUpdate) { - float v = current_position[Z_AXIS] - MESH_HOME_SEARCH_Z; - lcd_implementation_drawedit(PSTR(MSG_MOVE_Z), ftostr43(v + (v < 0 ? -0.0001 : 0.0001), '+')); + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_REDRAW_NOW + #endif + ; } + encoderPosition = 0; - // We want subsequent calls, but don't force redraw - // Set here so it can be overridden by lcd_return_to_status below - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; - - // Click sets the current Z and moves to the next position static bool debounce_click = false; if (LCD_CLICKED) { if (!debounce_click) { debounce_click = true; // ignore multiple "clicks" in a row mbl.set_zigzag_z(_lcd_level_bed_position++, current_position[Z_AXIS]); if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) { - lcd_return_to_status(); - LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE); - #if HAS_BUZZER - buzz(200, 659); - buzz(200, 698); - #endif + lcd_goto_menu(_lcd_level_bed_done, true); + current_position[Z_AXIS] = MESH_HOME_SEARCH_Z #if MIN_Z_HEIGHT_FOR_HOMING > 0 + MIN_Z_HEIGHT_FOR_HOMING @@ -974,44 +965,85 @@ void lcd_cooldown() { ; line_to_current(Z_AXIS); st_synchronize(); + mbl.active = true; enqueue_and_echo_commands_P(PSTR("G28")); + lcd_return_to_status(); + //LCD_MESSAGEPGM(MSG_LEVEL_BED_DONE); + #if HAS_BUZZER + buzz(200, 659); + buzz(200, 698); + #endif } else { - #if ENABLED(NEWPANEL) - lcd_quick_feedback(); - #endif - int ix, iy; - mbl.zigzag(_lcd_level_bed_position, ix, iy); - _mbl_goto_xy(mbl.get_x(ix), mbl.get_y(iy)); - encoderPosition = 0; + lcd_goto_menu(_lcd_level_goto_next_point, true); } } } else { debounce_click = false; } + + // Update on first display, then only on updates to Z position + // Show message above on clicks instead + if (lcdDrawUpdate) { + float v = current_position[Z_AXIS] - MESH_HOME_SEARCH_Z; + lcd_implementation_drawedit(PSTR(MSG_MOVE_Z), ftostr43(v + (v < 0 ? -0.0001 : 0.0001), '+')); + } + } /** - * 4. MBL Display "Click to Begin", wait for click - * Move to the first probe position + * Step 6: Display "Next point: 1 / 9" while waiting for move to finish + */ + static void _lcd_level_bed_moving() { + if (lcdDrawUpdate) { + char msg[10]; + sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)); + lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg); + } + + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; + } + + /** + * Step 5: Initiate a move to the next point + */ + static void _lcd_level_goto_next_point() { + // Set the menu to display ahead of blocking call + lcd_goto_menu(_lcd_level_bed_moving); + + // _mbl_goto_xy runs the menu loop until the move is done + int ix, iy; + mbl.zigzag(_lcd_level_bed_position, ix, iy); + _mbl_goto_xy(mbl.get_x(ix), mbl.get_y(iy)); + + // After the blocking function returns, change menus + lcd_goto_menu(_lcd_level_bed_get_z); + } + + /** + * Step 4: Display "Click to Begin", wait for click + * Move to the first probe position */ static void _lcd_level_bed_homing_done() { - if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING), NULL); - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; - if (mbl_wait_for_move) return; + if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING)); if (LCD_CLICKED) { + _lcd_level_bed_position = 0; current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - _mbl_goto_xy(MESH_MIN_X, MESH_MIN_Y); - _lcd_level_bed_position = 0; - lcd_goto_menu(_lcd_level_bed_procedure, true); + lcd_goto_menu(_lcd_level_goto_next_point, true); } } /** - * 3. MBL Display "Hoing XYZ" - Wait for homing to finish + * Step 3: Display "Homing XYZ" - Wait for homing to finish */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); @@ -1027,7 +1059,7 @@ void lcd_cooldown() { } /** - * 2. MBL Continue Bed Leveling... + * Step 2: Continue Bed Leveling... */ static void _lcd_level_bed_continue() { defer_return_to_status = true; @@ -1038,7 +1070,7 @@ void lcd_cooldown() { } /** - * 1. MBL entry-point: "Cancel" or "Level Bed" + * Step 1: MBL entry-point: "Cancel" or "Level Bed" */ static void lcd_level_bed() { START_MENU(); @@ -1348,7 +1380,7 @@ static void lcd_control_menu() { static void _lcd_autotune(int e) { char cmd[30]; - sprintf_P(cmd, PSTR("M303 U1 E%d S%d"), e, + sprintf_P(cmd, PSTR("M303 U1 E%i S%i"), e, #if HAS_PID_FOR_BOTH e < 0 ? autotune_temp_bed : autotune_temp[e] #elif ENABLED(PIDTEMPBED) From 0c2aa92b079acdcdf5ac9d309e1d4eaf9f7f3305 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 17:04:52 -0700 Subject: [PATCH 128/383] Z Safe Homing for all The `Z_SAFE_HOMING` feature is coupled with probes and not leveling, so make it available for general use. --- Marlin/Configuration.h | 33 ++++++++++--------- .../Felix/Configuration.h | 32 +++++++++--------- .../Felix/Configuration_DUAL.h | 32 +++++++++--------- .../Hephestos/Configuration.h | 32 +++++++++--------- .../Hephestos_2/Configuration.h | 32 +++++++++--------- .../K8200/Configuration.h | 32 +++++++++--------- .../RepRapWorld/Megatronics/Configuration.h | 32 +++++++++--------- .../RigidBot/Configuration.h | 32 +++++++++--------- .../SCARA/Configuration.h | 32 +++++++++--------- .../TAZ4/Configuration.h | 32 +++++++++--------- .../WITBOX/Configuration.h | 32 +++++++++--------- .../adafruit/ST7565/Configuration.h | 32 +++++++++--------- .../delta/biv2.5/Configuration.h | 32 +++++++++--------- .../delta/generic/Configuration.h | 32 +++++++++--------- .../delta/kossel_mini/Configuration.h | 32 +++++++++--------- .../delta/kossel_pro/Configuration.h | 32 +++++++++--------- .../delta/kossel_xl/Configuration.h | 32 +++++++++--------- .../makibox/Configuration.h | 32 +++++++++--------- .../tvrrug/Round2/Configuration.h | 32 +++++++++--------- 19 files changed, 305 insertions(+), 304 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index cf1c5cd213..97add8a214 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -637,22 +637,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -672,6 +657,22 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + + // @section movement /** diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 7ed915fd09..11488685e9 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -619,22 +619,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -654,6 +639,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index f463080aa1..c5113004cc 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -616,22 +616,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -651,6 +636,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 466aa34abb..adf056e6a4 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -629,22 +629,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -664,6 +649,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 8f9c51be5b..866556d6a2 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -631,22 +631,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -666,6 +651,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 62505a9cb2..4480757fe9 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -654,22 +654,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -689,6 +674,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 0b529ebf76..b8bbfe459e 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -637,22 +637,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -672,6 +657,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 03fd7e5578..f147f7caf9 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -631,22 +631,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -666,6 +651,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 7a036264d4..8fc4e22ccd 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -645,22 +645,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - //#define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -680,6 +665,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define MANUAL_Z_HOME_POS 0.1 // Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index cde38d869b..3f68ad16b4 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -658,22 +658,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -693,6 +678,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index d56ba28ef3..79469c7887 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -629,22 +629,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -664,6 +649,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 07135c6ada..34933b7746 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -637,22 +637,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -672,6 +657,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index ee10b51058..561b0acdfe 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -764,22 +764,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #endif // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -798,6 +783,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define MANUAL_Z_HOME_POS 405 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index bb499ff0aa..1ccee086bb 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -764,22 +764,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #endif // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -798,6 +783,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index f98ac20c0e..c3e3e3c402 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -768,22 +768,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #endif // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -802,6 +787,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 5cd40776e5..3721839722 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -755,22 +755,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #endif // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -789,6 +774,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define MANUAL_Z_HOME_POS 277 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 35517ad5ec..483aa78a8a 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -762,22 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #endif // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - // #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -796,6 +781,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define MANUAL_Z_HOME_POS 381.4 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 49f2c8e506..2f5cfce4f3 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -640,22 +640,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -675,6 +660,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index b9657c3e19..514fbef333 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -627,22 +627,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MECHANICAL_PROBE // If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing, - // it is highly recommended you leave Z_SAFE_HOMING enabled! - - #define Z_SAFE_HOMING // Use the z-min-probe for homing to z-min - not the z-min-endstop. - // This feature is meant to avoid Z homing with Z probe outside the bed area. - // When defined, it will: - // - Allow Z homing only after X and Y homing AND stepper drivers still enabled. - // - If stepper drivers timeout, it will need X and Y homing again before Z homing. - // - Position the Z probe in a defined XY point before Z Homing when homing all axis (G28). - // - Block Z homing only when the Z probe is outside bed area. - - #if ENABLED(Z_SAFE_HOMING) - - #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). - #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). - - #endif + // it is highly recommended you also enable Z_SAFE_HOMING below! #endif // AUTO_BED_LEVELING_FEATURE @@ -662,6 +647,21 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo //#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. #endif +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Position the Z probe in a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). +#endif + // @section movement /** From 9d5e1f32fdf20c8b26945a0357f70b79eb1f963c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 18:42:01 -0700 Subject: [PATCH 129/383] Use axis_homed in _lcd_level_bed_homing, item in Prepare before homing --- Marlin/ultralcd.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 56b7dbdaf3..09c574f148 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1054,7 +1054,7 @@ void lcd_cooldown() { LCDVIEW_CALL_NO_REDRAW #endif ; - if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]) + if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) lcd_goto_menu(_lcd_level_bed_homing_done); } @@ -1063,7 +1063,7 @@ void lcd_cooldown() { */ static void _lcd_level_bed_continue() { defer_return_to_status = true; - axis_known_position[X_AXIS] = axis_known_position[Y_AXIS] = axis_known_position[Z_AXIS] = false; + axis_homed[X_AXIS] = axis_homed[Y_AXIS] = axis_homed[Z_AXIS] = false; mbl.reset(); enqueue_and_echo_commands_P(PSTR("G28")); lcd_goto_menu(_lcd_level_bed_homing); @@ -1110,8 +1110,9 @@ static void lcd_prepare_menu() { // Level Bed // #if ENABLED(AUTO_BED_LEVELING_FEATURE) - if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) - MENU_ITEM(gcode, MSG_LEVEL_BED, PSTR("G29")); + MENU_ITEM(gcode, MSG_LEVEL_BED, + axis_homed[X_AXIS] && axis_homed[Y_AXIS] ? PSTR("G29") : PSTR("G28\nG29") + ); #elif ENABLED(MANUAL_BED_LEVELING) MENU_ITEM(submenu, MSG_LEVEL_BED, lcd_level_bed); #endif From 7fa2bda1b9068775ed9d2e00cfed805635e04b83 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 18:57:17 -0700 Subject: [PATCH 130/383] Give the "alive dot" its own blink --- Marlin/ultralcd.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 09c574f148..0236347e35 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -2256,12 +2256,13 @@ void lcd_update() { } #if ENABLED(DOGLCD) // Changes due to different driver architecture of the DOGM display - bool blink = lcd_blink(); + static int8_t dot_color = 0; + dot_color = 1 - dot_color; u8g.firstPage(); do { lcd_setFont(FONT_MENU); u8g.setPrintPos(125, 0); - u8g.setColorIndex(blink ? 1 : 0); // Set color for the alive dot + u8g.setColorIndex(dot_color); // Set color for the alive dot u8g.drawPixel(127, 63); // draw alive dot u8g.setColorIndex(1); // black on white (*currentMenu)(); From dc2281d2f41a221c1635e710fcd4f68f36983434 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Apr 2016 19:49:00 -0700 Subject: [PATCH 131/383] Add nextMenu, nextEncoderPosition to change menus after handler loop --- Marlin/ultralcd.cpp | 80 +++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 50 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 0236347e35..01644b982f 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -262,7 +262,7 @@ static void lcd_status_screen(); uint8_t currentMenuViewOffset; /* scroll offset in the current menu */ millis_t next_button_update_ms; uint8_t lastEncoderBits; - uint32_t encoderPosition; + uint32_t encoderPosition, nextEncoderPosition; #if PIN_EXISTS(SD_DETECT) uint8_t lcd_sd_status; #endif @@ -277,6 +277,7 @@ typedef struct { } menuPosition; menuFunc_t currentMenu = lcd_status_screen; // pointer to the currently active menu handler +menuFunc_t nextMenu = NULL; // the next menu handler to activate menuPosition menu_history[10]; uint8_t menu_history_depth = 0; @@ -311,21 +312,16 @@ float raw_Ki, raw_Kd; * Remembers the previous position */ static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const uint32_t encoder = 0) { - if (currentMenu != menu) { - currentMenu = menu; - lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; + if (currentMenu != menu && nextMenu != menu) { + nextMenu = menu; + nextEncoderPosition = encoder; #if ENABLED(NEWPANEL) - encoderPosition = encoder; if (feedback) lcd_quick_feedback(); #endif if (menu == lcd_status_screen) { defer_return_to_status = false; menu_history_depth = 0; } - #if ENABLED(LCD_PROGRESS_BAR) - // For LCD_PROGRESS_BAR re-initialize custom characters - lcd_set_custom_characters(menu == lcd_status_screen); - #endif } } @@ -918,13 +914,6 @@ void lcd_cooldown() { static void _lcd_level_bed_done() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_DONE)); - lcdDrawUpdate = - #if ENABLED(DOGLCD) - LCDVIEW_CALL_REDRAW_NEXT - #else - LCDVIEW_CALL_NO_REDRAW - #endif - ; } /** @@ -940,13 +929,6 @@ void lcd_cooldown() { NOLESS(current_position[Z_AXIS], 0); NOMORE(current_position[Z_AXIS], MESH_HOME_SEARCH_Z * 2); line_to_current(Z_AXIS); - lcdDrawUpdate = - #if ENABLED(DOGLCD) - LCDVIEW_CALL_REDRAW_NEXT - #else - LCDVIEW_REDRAW_NOW - #endif - ; } encoderPosition = 0; @@ -1002,14 +984,6 @@ void lcd_cooldown() { sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)); lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg); } - - lcdDrawUpdate = - #if ENABLED(DOGLCD) - LCDVIEW_CALL_REDRAW_NEXT - #else - LCDVIEW_CALL_NO_REDRAW - #endif - ; } /** @@ -1047,15 +1021,9 @@ void lcd_cooldown() { */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); - lcdDrawUpdate = - #if ENABLED(DOGLCD) - LCDVIEW_CALL_REDRAW_NEXT - #else - LCDVIEW_CALL_NO_REDRAW - #endif - ; if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) lcd_goto_menu(_lcd_level_bed_homing_done); + lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; // counts as a draw flag during graphical loop } /** @@ -1197,7 +1165,6 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { if (min_software_endstops) NOLESS(current_position[axis], min); if (max_software_endstops) NOMORE(current_position[axis], max); line_to_current(axis); - lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } encoderPosition = 0; if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); @@ -1226,7 +1193,6 @@ static void lcd_move_e( if (encoderPosition && movesplanned() <= 3) { current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; line_to_current(E_AXIS); - lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } encoderPosition = 0; if (lcdDrawUpdate) { @@ -1717,7 +1683,6 @@ static void lcd_control_volumetric_menu() { lcd_contrast &= 0x3F; #endif encoderPosition = 0; - lcdDrawUpdate = LCDVIEW_REDRAW_NOW; u8g.setContrast(lcd_contrast); } if (lcdDrawUpdate) { @@ -1868,12 +1833,12 @@ static void lcd_control_volumetric_menu() { } \ static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ _menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ - currentMenu = menu_edit_ ## _name; \ + lcd_goto_menu(menu_edit_ ## _name); \ }\ static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) { \ _menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ - currentMenu = menu_edit_callback_ ## _name; \ callbackFunc = callback; \ + lcd_goto_menu(menu_edit_callback_ ## _name); \ } menu_edit_type(int, int3, itostr3, 1); menu_edit_type(float, float3, ftostr3, 1); @@ -1939,7 +1904,6 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01); #endif void lcd_quick_feedback() { - lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; next_button_update_ms = millis() + 500; #if ENABLED(LCD_USE_I2C_BUZZER) @@ -2106,7 +2070,7 @@ bool lcd_blink() { * - Act on RepRap World keypad input * - Update the encoder position * - Apply acceleration to the encoder position - * - Set lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT on controller events + * - Set lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NOW on controller events * - Reset the Info Screen timeout if there's any input * - Update status indicators, if any * @@ -2114,17 +2078,21 @@ bool lcd_blink() { * - Call the handler only if lcdDrawUpdate != LCDVIEW_NONE * - Before calling the handler, LCDVIEW_CALL_NO_REDRAW => LCDVIEW_NONE * - Call the menu handler. Menu handlers should do the following: - * - If a value changes, set lcdDrawUpdate to LCDVIEW_REDRAW_NOW + * - If a value changes, set lcdDrawUpdate to LCDVIEW_REDRAW_NOW and draw the value + * (Encoder events automatically set lcdDrawUpdate for you.) * - if (lcdDrawUpdate) { redraw } * - Before exiting the handler set lcdDrawUpdate to: - * - LCDVIEW_REDRAW_NOW or LCDVIEW_NONE for no callbacks until the next controller event. * - LCDVIEW_CLEAR_CALL_REDRAW to clear screen and set LCDVIEW_CALL_REDRAW_NEXT. - * - LCDVIEW_CALL_NO_REDRAW for a callback with no forced redraw on the next loop. - * - NOTE: For some displays, the menu handler may be called 2 or more times per loop. + * - LCDVIEW_REDRAW_NOW or LCDVIEW_NONE to keep drawingm but only in this loop. + * - LCDVIEW_REDRAW_NEXT to keep drawing and draw on the next loop also. + * - LCDVIEW_CALL_NO_REDRAW to keep drawing (or start drawing) with no redraw on the next loop. + * - NOTE: For graphical displays menu handlers may be called 2 or more times per loop, + * so don't change lcdDrawUpdate without considering this. * * After the menu handler callback runs (or not): + * - Set lcdDrawUpdate to nextLcdDrawUpdate (usually unchanged) * - Clear the LCD if lcdDrawUpdate == LCDVIEW_CLEAR_CALL_REDRAW - * - Update lcdDrawUpdate for the next loop (i.e., move one state down, usually) + * - Transition lcdDrawUpdate to the next state * * No worries. This function is only called from the main thread. */ @@ -2282,6 +2250,18 @@ void lcd_update() { #endif // ULTIPANEL + // If a new menu was set, update the pointer, set to clear & redraw + if (nextMenu) { + currentMenu = nextMenu; + encoderPosition = nextEncoderPosition; + nextMenu = NULL; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; + #if ENABLED(LCD_PROGRESS_BAR) + // For LCD_PROGRESS_BAR re-initialize custom characters + lcd_set_custom_characters(currentMenu == lcd_status_screen); + #endif + } + switch (lcdDrawUpdate) { case LCDVIEW_CLEAR_CALL_REDRAW: lcd_implementation_clear(); From 003aab6dfd5e1bf7a498def145ddd916a520778f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 21 Apr 2016 12:40:22 -0700 Subject: [PATCH 132/383] Revert MBL menus to "known" working point --- Marlin/ultralcd.cpp | 76 +++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 26 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 01644b982f..1ed71c2d3a 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -262,7 +262,7 @@ static void lcd_status_screen(); uint8_t currentMenuViewOffset; /* scroll offset in the current menu */ millis_t next_button_update_ms; uint8_t lastEncoderBits; - uint32_t encoderPosition, nextEncoderPosition; + uint32_t encoderPosition; #if PIN_EXISTS(SD_DETECT) uint8_t lcd_sd_status; #endif @@ -277,7 +277,6 @@ typedef struct { } menuPosition; menuFunc_t currentMenu = lcd_status_screen; // pointer to the currently active menu handler -menuFunc_t nextMenu = NULL; // the next menu handler to activate menuPosition menu_history[10]; uint8_t menu_history_depth = 0; @@ -312,16 +311,21 @@ float raw_Ki, raw_Kd; * Remembers the previous position */ static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const uint32_t encoder = 0) { - if (currentMenu != menu && nextMenu != menu) { - nextMenu = menu; - nextEncoderPosition = encoder; + if (currentMenu != menu) { + currentMenu = menu; + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; #if ENABLED(NEWPANEL) + encoderPosition = encoder; if (feedback) lcd_quick_feedback(); #endif if (menu == lcd_status_screen) { defer_return_to_status = false; menu_history_depth = 0; } + #if ENABLED(LCD_PROGRESS_BAR) + // For LCD_PROGRESS_BAR re-initialize custom characters + lcd_set_custom_characters(menu == lcd_status_screen); + #endif } } @@ -914,6 +918,13 @@ void lcd_cooldown() { static void _lcd_level_bed_done() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_DONE)); + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; } /** @@ -929,6 +940,13 @@ void lcd_cooldown() { NOLESS(current_position[Z_AXIS], 0); NOMORE(current_position[Z_AXIS], MESH_HOME_SEARCH_Z * 2); line_to_current(Z_AXIS); + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_REDRAW_NOW + #endif + ; } encoderPosition = 0; @@ -984,6 +1002,14 @@ void lcd_cooldown() { sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)); lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_NEXT_POINT), msg); } + + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; } /** @@ -1022,8 +1048,14 @@ void lcd_cooldown() { static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) + lcdDrawUpdate = + #if ENABLED(DOGLCD) + LCDVIEW_CALL_REDRAW_NEXT + #else + LCDVIEW_CALL_NO_REDRAW + #endif + ; lcd_goto_menu(_lcd_level_bed_homing_done); - lcdDrawUpdate = LCDVIEW_CALL_NO_REDRAW; // counts as a draw flag during graphical loop } /** @@ -1165,6 +1197,7 @@ static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { if (min_software_endstops) NOLESS(current_position[axis], min); if (max_software_endstops) NOMORE(current_position[axis], max); line_to_current(axis); + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } encoderPosition = 0; if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis])); @@ -1193,6 +1226,7 @@ static void lcd_move_e( if (encoderPosition && movesplanned() <= 3) { current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; line_to_current(E_AXIS); + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; } encoderPosition = 0; if (lcdDrawUpdate) { @@ -1683,6 +1717,7 @@ static void lcd_control_volumetric_menu() { lcd_contrast &= 0x3F; #endif encoderPosition = 0; + lcdDrawUpdate = LCDVIEW_REDRAW_NOW; u8g.setContrast(lcd_contrast); } if (lcdDrawUpdate) { @@ -1759,11 +1794,12 @@ static void lcd_control_volumetric_menu() { for (uint16_t i = 0; i < fileCnt; i++) { if (_menuItemNr == _lineNr) { card.getfilename( - #if ENABLED(SDCARD_RATHERRECENTFIRST) - fileCnt-1 - - #endif - i + #if ENABLED(SDCARD_RATHERRECENTFIRST) + fileCnt-1 - + #endif + i ); + if (card.filenameIsDir) MENU_ITEM(sddirectory, MSG_CARD_MENU, card.filename, card.longFilename); else @@ -1833,12 +1869,12 @@ static void lcd_control_volumetric_menu() { } \ static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ _menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ - lcd_goto_menu(menu_edit_ ## _name); \ + currentMenu = menu_edit_ ## _name; \ }\ static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, menuFunc_t callback) { \ _menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ + currentMenu = menu_edit_callback_ ## _name; \ callbackFunc = callback; \ - lcd_goto_menu(menu_edit_callback_ ## _name); \ } menu_edit_type(int, int3, itostr3, 1); menu_edit_type(float, float3, ftostr3, 1); @@ -1904,6 +1940,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01); #endif void lcd_quick_feedback() { + lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; next_button_update_ms = millis() + 500; #if ENABLED(LCD_USE_I2C_BUZZER) @@ -2090,9 +2127,8 @@ bool lcd_blink() { * so don't change lcdDrawUpdate without considering this. * * After the menu handler callback runs (or not): - * - Set lcdDrawUpdate to nextLcdDrawUpdate (usually unchanged) * - Clear the LCD if lcdDrawUpdate == LCDVIEW_CLEAR_CALL_REDRAW - * - Transition lcdDrawUpdate to the next state + * - Update lcdDrawUpdate for the next loop (i.e., move one state down, usually) * * No worries. This function is only called from the main thread. */ @@ -2250,18 +2286,6 @@ void lcd_update() { #endif // ULTIPANEL - // If a new menu was set, update the pointer, set to clear & redraw - if (nextMenu) { - currentMenu = nextMenu; - encoderPosition = nextEncoderPosition; - nextMenu = NULL; - lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; - #if ENABLED(LCD_PROGRESS_BAR) - // For LCD_PROGRESS_BAR re-initialize custom characters - lcd_set_custom_characters(currentMenu == lcd_status_screen); - #endif - } - switch (lcdDrawUpdate) { case LCDVIEW_CLEAR_CALL_REDRAW: lcd_implementation_clear(); From fe4fc8849432760672f528d2fc31dc86f5698ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 7 Apr 2016 11:40:47 +0100 Subject: [PATCH 133/383] Closes #3351: missing Danish translation --- Marlin/language_da.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Marlin/language_da.h b/Marlin/language_da.h index 04477074d9..1308a9124b 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -103,6 +103,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "A-retract" +#define MSG_A_TRAVEL "A-rejse" #define MSG_XSTEPS "Xsteps/mm" #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" @@ -157,10 +158,21 @@ #define MSG_BED_DONE "Plade opvarmet" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_DELTA_CALIBRATE "Delta Kalibrering" -#define MSG_DELTA_CALIBRATE_X "Kalibrer X" -#define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" -#define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" -#define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" +#define MSG_BED_Z "Plade Z" +#define MSG_HEATING_FAILED_LCD "Opvarmning mislykkedes" +#define MSG_ERR_REDUNDANT_TEMP "Fejl: reserve temp" +#define MSG_THERMAL_RUNAWAY "Temp løber løbsk" +#define MSG_ERR_MAXTEMP "Fejl: Maks temp" +#define MSG_ERR_MINTEMP "Fejl: Min temp" +#define MSG_ERR_MAXTEMP_BED "Fejl: Maks P temp" +#define MSG_ERR_MINTEMP_BED "Fejl: Min P temp" + +#ifdef DELTA_CALIBRATION_MENU + #define MSG_DELTA_CALIBRATE "Delta Kalibrering" + #define MSG_DELTA_CALIBRATE_X "Kalibrer X" + #define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" + #define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" + #define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" +#endif // DELTA_CALIBRATION_MENU #endif // LANGUAGE_DA_H From 63142eef406df25e5813959c0000e19c62d87ce7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 21 Apr 2016 15:22:19 -0700 Subject: [PATCH 134/383] Define dependencies for Z_SAFE_HOMING if left out --- Marlin/Conditionals.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 1966f436fe..799a419080 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -367,6 +367,24 @@ #define Z_SAFE_HOMING #endif + /** + * Z Safe Homing dependencies + */ + #if ENABLED(Z_SAFE_HOMING) + #ifndef X_PROBE_OFFSET_FROM_EXTRUDER + #define X_PROBE_OFFSET_FROM_EXTRUDER 0 + #endif + #ifndef Y_PROBE_OFFSET_FROM_EXTRUDER + #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 + #endif + #ifndef Z_PROBE_OFFSET_FROM_EXTRUDER + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 + #endif + #ifndef XY_TRAVEL_SPEED + #define XY_TRAVEL_SPEED 4000 + #endif + #endif + /** * Enable MECHANICAL_PROBE for Z_PROBE_ALLEN_KEY, for older configs */ From aaf9d19954f648f6aba75d76a357146283231d3e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 21 Apr 2016 15:55:34 -0700 Subject: [PATCH 135/383] Allow Z_SAFE_HOMING to compile without a probe --- Marlin/SanityCheck.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 788c61ee7d..221c42eb50 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -187,10 +187,6 @@ #error For AUTO_BED_LEVELING_FEATURE define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] #endif -#if ENABLED(Z_SAFE_HOMING)&& !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) - #error For Z_SAFE_HOMING define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] -#endif - // To do: Fail with more than one probe defined /** From 88c6693b9ee6912d5f15bab7a6f80be2d6d55bb1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Fri, 22 Apr 2016 20:02:58 -0700 Subject: [PATCH 136/383] Fix a typo in #3586 to fix MBL --- Marlin/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 1ed71c2d3a..97a07f5232 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1047,7 +1047,6 @@ void lcd_cooldown() { */ static void _lcd_level_bed_homing() { if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); - if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) lcdDrawUpdate = #if ENABLED(DOGLCD) LCDVIEW_CALL_REDRAW_NEXT @@ -1055,6 +1054,7 @@ void lcd_cooldown() { LCDVIEW_CALL_NO_REDRAW #endif ; + if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS]) lcd_goto_menu(_lcd_level_bed_homing_done); } From a901555da4bd94573f0b11c572eda8d4f0cf71ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Fri, 22 Apr 2016 15:09:42 +0100 Subject: [PATCH 137/383] Moved G29 debug output before matrix.set_to_identity() --- Marlin/Marlin_main.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 66e84843cd..6b0f52b6a9 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3196,6 +3196,14 @@ inline void gcode_G28() { if (!dryrun) { + #if ENABLED(DEBUG_LEVELING_FEATURE) && DISABLED(DELTA) + if (DEBUGGING(LEVELING)) { + vector_3 corrected_position = plan_get_position(); + DEBUG_POS("BEFORE matrix.set_to_identity", corrected_position); + DEBUG_POS("BEFORE matrix.set_to_identity", current_position); + } + #endif + // make sure the bed_level_rotation_matrix is identity or the planner will get it wrong plan_bed_level_matrix.set_to_identity(); @@ -3203,14 +3211,6 @@ inline void gcode_G28() { reset_bed_level(); #else //!DELTA - #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) { - vector_3 corrected_position = plan_get_position(); - DEBUG_POS("BEFORE matrix.set_to_identity", corrected_position); - DEBUG_POS("BEFORE matrix.set_to_identity", current_position); - } - #endif - //vector_3 corrected_position = plan_get_position(); //corrected_position.debug("position before G29"); vector_3 uncorrected_position = plan_get_position(); From 8d0b2f358a50692b4fb0cfeffc5d59e1dd9cbd28 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Sat, 23 Apr 2016 13:27:05 +0900 Subject: [PATCH 138/383] Cleanup for language files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ・Remove abolished strings (MSG_NOZZLE1, MSG_NOZZLE2) ・Remove duplicated strings ・Arrange the strings in unified order ・Adjust spacing ・Remove some comments in Japanese files(follow-up the PR #3560) The most part of these changes were salvaged from closed my PR#3550. --- Marlin/language_bg.h | 2 +- Marlin/language_da.h | 6 ++---- Marlin/language_es.h | 8 ++++---- Marlin/language_fr.h | 11 +++++------ Marlin/language_it.h | 8 ++++---- Marlin/language_kana.h | 8 ++++---- Marlin/language_kana_utf8.h | 8 ++++---- Marlin/language_nl.h | 21 ++++++++------------- Marlin/language_pt-br.h | 8 ++++---- Marlin/language_pt-br_utf8.h | 8 ++++---- 10 files changed, 40 insertions(+), 48 deletions(-) diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h index f44865770d..e796ff58ab 100644 --- a/Marlin/language_bg.h +++ b/Marlin/language_bg.h @@ -65,6 +65,7 @@ #define MSG_EXTRUDE "Екструзия" #define MSG_RETRACT "Откат" #define MSG_MOVE_AXIS "Движение по ос" +#define MSG_LEVEL_BED "Нивелиране" #define MSG_MOVE_X "Движение по X" #define MSG_MOVE_Y "Движение по Y" #define MSG_MOVE_Z "Движение по Z" @@ -72,7 +73,6 @@ #define MSG_MOVE_01MM "Премести с 0.1mm" #define MSG_MOVE_1MM "Премести с 1mm" #define MSG_MOVE_10MM "Премести с 10mm" -#define MSG_LEVEL_BED "Нивелиране" #define MSG_SPEED "Скорост" #define MSG_NOZZLE LCD_STR_THERMOMETER " Дюза" #define MSG_BED LCD_STR_THERMOMETER " Легло" diff --git a/Marlin/language_da.h b/Marlin/language_da.h index 1308a9124b..c1b38f6e55 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -74,8 +74,6 @@ #define MSG_MOVE_10MM "Flyt 10mm" #define MSG_SPEED "Hastighed" #define MSG_NOZZLE "Dyse" -#define MSG_NOZZLE1 "Dyse2" -#define MSG_NOZZLE2 "Dyse3" #define MSG_BED "Plade" #define MSG_FAN_SPEED "Blæser hastighed" #define MSG_FLOW "Flow" @@ -141,22 +139,22 @@ #define MSG_CONTROL_RETRACT_RECOVER_SWAP "S UnRet+mm" #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" #define MSG_AUTORETRACT "AutoRetr." -#define MSG_ZPROBE_OUT "Probe udenfor plade" #define MSG_FILAMENTCHANGE "Skift filament" #define MSG_INIT_SDCARD "Init. SD card" #define MSG_CNG_SDCARD "Skift SD kort" +#define MSG_ZPROBE_OUT "Probe udenfor plade" #define MSG_YX_UNHOMED "Home X/Y før Z" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" +#define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_END_HOUR "Timer" #define MSG_END_MINUTE "Minutter" #define MSG_HEATING "Opvarmer..." #define MSG_HEATING_COMPLETE "Opvarmet" #define MSG_BED_HEATING "Opvarmer plade" #define MSG_BED_DONE "Plade opvarmet" -#define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_BED_Z "Plade Z" #define MSG_HEATING_FAILED_LCD "Opvarmning mislykkedes" diff --git a/Marlin/language_es.h b/Marlin/language_es.h index e54ce3cccb..9472945792 100644 --- a/Marlin/language_es.h +++ b/Marlin/language_es.h @@ -74,6 +74,7 @@ #define MSG_MOVE_1MM "Mover 1mm" #define MSG_MOVE_10MM "Mover 10mm" #define MSG_SPEED "Velocidad" +#define MSG_BED_Z "Plataforma Z" #define MSG_NOZZLE "Boquilla" #define MSG_BED "Plataforma" #define MSG_FAN_SPEED "Ventilador" @@ -102,6 +103,7 @@ #define MSG_VTRAV_MIN "Vel. viaje min" #define MSG_AMAX "Acel. max" #define MSG_A_RETRACT "Acel. retrac." +#define MSG_A_TRAVEL "Acel. Viaje" #define MSG_XSTEPS "X pasos/mm" #define MSG_YSTEPS "Y pasos/mm" #define MSG_ZSTEPS "Z pasos/mm" @@ -149,10 +151,6 @@ #define MSG_BABYSTEP_Y "Micropaso Y" #define MSG_BABYSTEP_Z "Micropaso Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_END_HOUR "horas" -#define MSG_END_MINUTE "minutos" -#define MSG_BED_Z "Plataforma Z" -#define MSG_A_TRAVEL "Acel. Viaje" #define MSG_HEATING_FAILED_LCD "Error: al calentar" #define MSG_ERR_REDUNDANT_TEMP "Error: temperatura redundante" #define MSG_THERMAL_RUNAWAY "Error de temperatura" @@ -160,6 +158,8 @@ #define MSG_ERR_MINTEMP "Error: Temp Minima" #define MSG_ERR_MAXTEMP_BED "Error: Temp Max Plataforma" #define MSG_ERR_MINTEMP_BED "Error: Temp Min Plataforma" +#define MSG_END_HOUR "horas" +#define MSG_END_MINUTE "minutos" #define MSG_HEATING "Calentando..." #define MSG_HEATING_COMPLETE "Calentamiento Completo" #define MSG_BED_HEATING "Calentando plataforma ..." diff --git a/Marlin/language_fr.h b/Marlin/language_fr.h index 1b3be6b4ec..79b3d35c27 100644 --- a/Marlin/language_fr.h +++ b/Marlin/language_fr.h @@ -35,7 +35,6 @@ //#define SIMULATE_ROMFONT #define DISPLAY_CHARSET_ISO10646_1 - #define WELCOME_MSG MACHINE_NAME " prete." #define MSG_SD_INSERTED "Carte inseree" #define MSG_SD_REMOVED "Carte retiree" @@ -66,6 +65,7 @@ #define MSG_EXTRUDE "Extrusion" #define MSG_RETRACT "Retraction" #define MSG_MOVE_AXIS "Deplacer un axe" +#define MSG_LEVEL_BED "Regl. Niv. Plateau" #define MSG_MOVE_X "Depl. X" #define MSG_MOVE_Y "Depl. Y" #define MSG_MOVE_Z "Depl. Z" @@ -74,9 +74,9 @@ #define MSG_MOVE_1MM "Depl. 1mm" #define MSG_MOVE_10MM "Depl. 10mm" #define MSG_SPEED " Vitesse" +#define MSG_BED_Z "Plateau Z" #define MSG_NOZZLE "Buse" #define MSG_BED "Plateau" -#define MSG_LEVEL_BED "Regl. Niv. Plateau" #define MSG_FAN_SPEED "Vite. ventilateur" #define MSG_FLOW "Flux" #define MSG_CONTROL "Controler" @@ -103,6 +103,7 @@ #define MSG_VTRAV_MIN "Vdepl min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "A-retract" +#define MSG_A_TRAVEL "A-Depl." #define MSG_XSTEPS "Xpas/mm" #define MSG_YSTEPS "Ypas/mm" #define MSG_ZSTEPS "Zpas/mm" @@ -150,10 +151,6 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Butee abandon" -#define MSG_END_HOUR "heures" -#define MSG_END_MINUTE "minutes" -#define MSG_BED_Z "Plateau Z" -#define MSG_A_TRAVEL "A-Depl." #define MSG_HEATING_FAILED_LCD "Erreur de chauffe" #define MSG_ERR_REDUNDANT_TEMP "Err: ERREUR TEMP. REDONDANTE" #define MSG_THERMAL_RUNAWAY "EMBALLEMENT THERMIQUE" @@ -161,6 +158,8 @@ #define MSG_ERR_MINTEMP "Err: TEMP. MIN" #define MSG_ERR_MAXTEMP_BED "Err: TEMP. MAX PLATEAU" #define MSG_ERR_MINTEMP_BED "Err: TEMP. MIN PLATEAU" +#define MSG_END_HOUR "heures" +#define MSG_END_MINUTE "minutes" #define MSG_HEATING "En chauffe..." #define MSG_HEATING_COMPLETE "Chauffe terminee" #define MSG_BED_HEATING "Plateau en chauffe..." diff --git a/Marlin/language_it.h b/Marlin/language_it.h index 59aeb233fc..7fb0bdcf54 100644 --- a/Marlin/language_it.h +++ b/Marlin/language_it.h @@ -74,6 +74,7 @@ #define MSG_MOVE_1MM "Muovi di 1mm" #define MSG_MOVE_10MM "Muovi di 10mm" #define MSG_SPEED "Velocità" +#define MSG_BED_Z "piatto Z" #define MSG_NOZZLE "Ugello" #define MSG_BED "Piatto" #define MSG_FAN_SPEED "Velocità ventola" @@ -102,6 +103,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "A-retract" +#define MSG_A_TRAVEL "A-Spostamento" #define MSG_XSTEPS "Xpassi/mm" #define MSG_YSTEPS "Ypassi/mm" #define MSG_ZSTEPS "Zpassi/mm" @@ -149,10 +151,6 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Finecorsa abort" -#define MSG_END_HOUR "ore" -#define MSG_END_MINUTE "minuti" -#define MSG_BED_Z "piatto Z" -#define MSG_A_TRAVEL "A-Spostamento" #define MSG_HEATING_FAILED_LCD "Riscald. Fallito" #define MSG_ERR_REDUNDANT_TEMP "Err: TEMP RIDONDANTI" #define MSG_THERMAL_RUNAWAY "TEMP FUORI CONTROLLO" @@ -160,6 +158,8 @@ #define MSG_ERR_MINTEMP "Err: TEMP MINIMA" #define MSG_ERR_MAXTEMP_BED "Err: TEMP MASSIMA PIATTO" #define MSG_ERR_MINTEMP_BED "Err: TEMP MINIMA PIATTO" +#define MSG_END_HOUR "ore" +#define MSG_END_MINUTE "minuti" #define MSG_HEATING "Riscaldamento.." #define MSG_HEATING_COMPLETE "Risc. completato" #define MSG_BED_HEATING "Risc. Piatto.." diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 864d229cfb..044d09926c 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -98,10 +98,10 @@ #define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk") #define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk") #define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4 " // "サイダイフィードレート " ("Vmax ") -#define MSG_X "X" // "X" ("x") -#define MSG_Y "Y" // "Y" ("y") -#define MSG_Z "Z" // "Z" ("z") -#define MSG_E "E" // "E" ("e") +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4" // "サイショウフィードレート" ("Vmin") #define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xc4\xd7\xcd\xde\xd9\xda\xb0\xc4" // "サイショウトラベルレート" ("VTrav min") #define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド" ("Amax ") diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index 633db9af84..1be35ae760 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -101,10 +101,10 @@ #define MSG_VZ_JERK "Zジク ヤクド mm/s" // "Vz-jerk" #define MSG_VE_JERK "エクストルーダー ヤクド" // "Ve-jerk" #define MSG_VMAX "サイダイフィードレート " // "Vmax " -#define MSG_X "X" // "x" -#define MSG_Y "Y" // "y" -#define MSG_Z "Z" // "z" -#define MSG_E "E" // "e" +#define MSG_X "X" +#define MSG_Y "Y" +#define MSG_Z "Z" +#define MSG_E "E" #define MSG_VMIN "サイショウフィードレート" // "Vmin" #define MSG_VTRAV_MIN "サイショウトラベルレート" // "VTrav min" #define MSG_AMAX "サイダイカソクド " // "Amax " diff --git a/Marlin/language_nl.h b/Marlin/language_nl.h index b24fce3b7d..670bd7c20b 100644 --- a/Marlin/language_nl.h +++ b/Marlin/language_nl.h @@ -43,11 +43,11 @@ #define MSG_DISABLE_STEPPERS "Motoren uit" #define MSG_AUTO_HOME "Auto home" #define MSG_LEVEL_BED_HOMING "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "Click to Begin" -#define MSG_LEVEL_BED_DONE "Leveling Done!" -#define MSG_LEVEL_BED_CANCEL "Cancel" +#define MSG_LEVEL_BED_WAITING "Klik voor begin" +#define MSG_LEVEL_BED_DONE "Bed level kompl." +#define MSG_LEVEL_BED_CANCEL "Bed level afbr." #define MSG_SET_HOME_OFFSETS "Zet home offsets" -#define MSG_HOME_OFFSETS_APPLIED "Offsets applied" +#define MSG_HOME_OFFSETS_APPLIED "H offset toegep." #define MSG_SET_ORIGIN "Nulpunt instellen" #define MSG_PREHEAT_PLA "PLA voorverwarmen" #define MSG_PREHEAT_PLA_N "PLA voorverw. " @@ -73,6 +73,7 @@ #define MSG_MOVE_1MM "Verplaats 1mm" #define MSG_MOVE_10MM "Verplaats 10mm" #define MSG_SPEED "Snelheid" +#define MSG_BED_Z "Bed Z" #define MSG_NOZZLE "Nozzle" #define MSG_BED "Bed" #define MSG_FAN_SPEED "Fan snelheid" @@ -101,6 +102,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "A-retract" +#define MSG_A_TRAVEL "A-travel" #define MSG_XSTEPS "Xsteps/mm" #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" @@ -148,10 +150,6 @@ #define MSG_BABYSTEP_Y "Babystap Y" #define MSG_BABYSTEP_Z "Babystap Z" #define MSG_ENDSTOP_ABORT "Endstop afbr." -#define MSG_END_HOUR "uur" -#define MSG_END_MINUTE "minuten" -#define MSG_BED_Z "Bed Z" -#define MSG_A_TRAVEL "A-travel" #define MSG_HEATING_FAILED_LCD "voorverw. fout" #define MSG_ERR_REDUNDANT_TEMP "Redun. temp fout" #define MSG_THERMAL_RUNAWAY "Therm. wegloop" @@ -159,15 +157,12 @@ #define MSG_ERR_MINTEMP "Err: Min. temp" #define MSG_ERR_MAXTEMP_BED "Err: Max.tmp bed" #define MSG_ERR_MINTEMP_BED "Err: Min.tmp bed" +#define MSG_END_HOUR "uur" +#define MSG_END_MINUTE "minuten" #define MSG_HEATING "Voorwarmen..." #define MSG_HEATING_COMPLETE "Voorverw. kompl." #define MSG_BED_HEATING "Bed voorverw." #define MSG_BED_DONE "Bed is voorverw." -#define MSG_LEVEL_BED_HOMING "Homing XYZ" -#define MSG_LEVEL_BED_WAITING "Klik voor begin" -#define MSG_LEVEL_BED_DONE "Bed level kompl." -#define MSG_LEVEL_BED_CANCEL "Bed level afbr." -#define MSG_HOME_OFFSETS_APPLIED "H offset toegep." #define MSG_DELTA_CALIBRATE "Delta Calibratie" #define MSG_DELTA_CALIBRATE_X "Kalibreer X" diff --git a/Marlin/language_pt-br.h b/Marlin/language_pt-br.h index fc58a06d00..f75f0330ad 100644 --- a/Marlin/language_pt-br.h +++ b/Marlin/language_pt-br.h @@ -73,6 +73,7 @@ #define MSG_MOVE_1MM "Mover 1mm" #define MSG_MOVE_10MM "Mover 10mm" #define MSG_SPEED "Velocidade" +#define MSG_BED_Z "Base Z" #define MSG_NOZZLE LCD_STR_THERMOMETER " Bocal" #define MSG_BED LCD_STR_THERMOMETER " Base" #define MSG_FAN_SPEED "Vel. Ventoinha" @@ -101,6 +102,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "Retrair A" +#define MSG_A_TRAVEL "A-movimento" #define MSG_XSTEPS "Passo X/mm" #define MSG_YSTEPS "Passo Y/mm" #define MSG_ZSTEPS "Passo Z/mm" @@ -148,10 +150,6 @@ #define MSG_BABYSTEP_Y "Passinho Y" #define MSG_BABYSTEP_Z "Passinho Z" #define MSG_ENDSTOP_ABORT "Fim de Curso" -#define MSG_END_HOUR "Horas" -#define MSG_END_MINUTE "Minutos" -#define MSG_BED_Z "Base Z" -#define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" @@ -159,6 +157,8 @@ #define MSG_ERR_MINTEMP "Err: T Minima" #define MSG_ERR_MAXTEMP_BED "Err: T Base Maxima" #define MSG_ERR_MINTEMP_BED "Err: T Base Minima" +#define MSG_END_HOUR "Horas" +#define MSG_END_MINUTE "Minutos" #define MSG_HEATING "Aquecendo..." #define MSG_HEATING_COMPLETE "Aquecida." #define MSG_BED_HEATING "Aquecendo base.." diff --git a/Marlin/language_pt-br_utf8.h b/Marlin/language_pt-br_utf8.h index d086908979..b1db4a7793 100644 --- a/Marlin/language_pt-br_utf8.h +++ b/Marlin/language_pt-br_utf8.h @@ -73,6 +73,7 @@ #define MSG_MOVE_1MM "Mover 1mm" #define MSG_MOVE_10MM "Mover 10mm" #define MSG_SPEED "Velocidade" +#define MSG_BED_Z "Base Z" #define MSG_NOZZLE LCD_STR_THERMOMETER " Bocal" #define MSG_BED LCD_STR_THERMOMETER " Base" #define MSG_FAN_SPEED "Vel. Ventoinha" @@ -101,6 +102,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "Amax " #define MSG_A_RETRACT "Retrair A" +#define MSG_A_TRAVEL "A-movimento" #define MSG_XSTEPS "Passo X/mm" #define MSG_YSTEPS "Passo Y/mm" #define MSG_ZSTEPS "Passo Z/mm" @@ -148,10 +150,6 @@ #define MSG_BABYSTEP_Y "Passinho Y" #define MSG_BABYSTEP_Z "Passinho Z" #define MSG_ENDSTOP_ABORT "Fim de Curso" -#define MSG_END_HOUR "Horas" -#define MSG_END_MINUTE "Minutos" -#define MSG_BED_Z "Base Z" -#define MSG_A_TRAVEL "A-movimento" #define MSG_HEATING_FAILED_LCD "Aquecimento falhou" #define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY" @@ -159,6 +157,8 @@ #define MSG_ERR_MINTEMP "Err: T Mínima" #define MSG_ERR_MAXTEMP_BED "Err: T Base Máxima" #define MSG_ERR_MINTEMP_BED "Err: T Base Mínima" +#define MSG_END_HOUR "Horas" +#define MSG_END_MINUTE "Minutos" #define MSG_HEATING "Aquecendo..." #define MSG_HEATING_COMPLETE "Aquecida." #define MSG_BED_HEATING "Aquecendo base.." From 170f7e8a4569f30dcbf423f39b858a015da2c1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Fri, 22 Apr 2016 16:07:26 +0100 Subject: [PATCH 139/383] Rework Marlin's versioning system --- .../bin/generate_version_header_for_marlin | 10 ++- Marlin/Configuration.h | 2 +- Marlin/Default_Version.h | 36 --------- Marlin/SanityCheck.h | 35 +++++++++ Marlin/Version.h | 74 +++++++++++++++++++ Marlin/language.h | 39 ++++------ 6 files changed, 132 insertions(+), 64 deletions(-) delete mode 100644 Marlin/Default_Version.h create mode 100644 Marlin/Version.h diff --git a/LinuxAddons/bin/generate_version_header_for_marlin b/LinuxAddons/bin/generate_version_header_for_marlin index a7bef9a5a2..7160b77786 100755 --- a/LinuxAddons/bin/generate_version_header_for_marlin +++ b/LinuxAddons/bin/generate_version_header_for_marlin @@ -9,8 +9,16 @@ echo " * It does not get committed to the repository" >>"$OUTFILE" echo " */" >>"$OUTFILE" echo "" >>"$OUTFILE" +echo "#define PROTOCOL_VERSION \"1.0\"" >>"$OUTFILE" +echo "#define DEFAULT_SOURCE_URL \"https://github.com/MarlinFirmware/Marlin\"" >>"$OUTFILE" +echo "#define DEFAULT_MACHINE_NAME \"Travis 3D Printer\"" >>"$OUTFILE" +echo "#define DEFAULT_MACHINE_UUID \"3442baa1-08ee-435b-8a10-99d185bd43b8\"" >>"$OUTFILE" +echo "" >>"$OUTFILE" + echo "#define BUILD_UNIX_DATETIME" `date +%s` >>"$OUTFILE" echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE" +echo "" >>"$OUTFILE" + ( set +e cd "$DIR" BRANCH=`git symbolic-ref -q --short HEAD` @@ -33,7 +41,5 @@ echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE" URL=`git config --local --get remote.origin.url | sed "sx.*github.com.xhttps://github.com/x" | sed "sx\.gitx/x"` if [ "x$URL" != "x" ] ; then echo "#define SOURCE_CODE_URL \""$URL"\"" >>"$OUTFILE" - echo "// Deprecated URL definition" >>"$OUTFILE" - echo "#define FIRMWARE_URL \""$URL"\"" >>"$OUTFILE" fi ) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 97add8a214..edbeb44ab7 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during diff --git a/Marlin/Default_Version.h b/Marlin/Default_Version.h deleted file mode 100644 index 95f37f2553..0000000000 --- a/Marlin/Default_Version.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * This file is a placeholder for a file which could be distributed in an archive - * It takes the place of an automatically created "_Version.h" which is generated during the build process - */ - -// #error "You must specify the following parameters related to your distribution" - -#if true -#define SHORT_BUILD_VERSION "1.1.0-RCBugFix" -#define DETAILED_BUILD_VERSION "1.1.0-RCBugFix From Archive" -#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" -// It might also be appropriate to define a location where additional information can be found -// #define SOURCE_CODE_URL "http:// ..." -#endif diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 221c42eb50..89b77578a7 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -38,6 +38,41 @@ #error Versions of Arduino IDE prior to 1.6.0 are no longer supported, please update your toolkit. #endif +/** + * Marlin release, version and default string + */ +#ifndef SHORT_BUILD_VERSION + #error SHORT_BUILD_VERSION Information must be specified +#endif + +#ifndef DETAILED_BUILD_VERSION + #error BUILD_VERSION Information must be specified +#endif + +#ifndef STRING_DISTRIBUTION_DATE + #error STRING_DISTRIBUTION_DATE Information must be specified +#endif + +#ifndef PROTOCOL_VERSION + #error PROTOCOL_VERSION Information must be specified +#endif + +#ifndef MACHINE_NAME + #error MACHINE_NAME Information must be specified +#endif + +#ifndef SOURCE_CODE_URL + #error SOURCE_CODE_URL Information must be specified +#endif + +#ifndef DEFAULT_MACHINE_UUID + #error DEFAULT_MACHINE_UUID Information must be specified +#endif + +#ifndef WEBSITE_URL + #error WEBSITE_URL Information must be specified +#endif + /** * Dual Stepper Drivers */ diff --git a/Marlin/Version.h b/Marlin/Version.h new file mode 100644 index 0000000000..d8926d5cfd --- /dev/null +++ b/Marlin/Version.h @@ -0,0 +1,74 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * This file is the standard Marlin version identifier file, all fields can be + * overriden by the ones defined on _Version.h by using the Configuration.h + * directive USE_AUTOMATIC_VERSIONING. + */ + +/** + * Marlin release version identifier + */ +#define SHORT_BUILD_VERSION "1.1.0-RCBugFix" + +/** + * Verbose version identifier which should contain a reference to the location + * from where the binary was downloaded or the source code was compiled. + */ +#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (Github)" + +/** + * The STRING_DISTRIBUTION_DATE represents when the binary file was built, + * here we define this default string as the date where the latest release + * version was tagged. + */ +#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" + +/** + * @todo: Missing documentation block + */ +#define PROTOCOL_VERSION "1.0" + +/** + * Defines a generic printer name to be output to the LCD after booting Marlin. + */ +#define MACHINE_NAME "3D Printer" + +/** + * The SOURCE_CODE_URL is the location where users will find the Marlin Source + * Code which is installed on the device. In most cases —unless the manufacturer + * has a distinct Github fork— the Source Code URL should just be the main + * Marlin repository. + */ +#define SOURCE_CODE_URL "https://github.com/MarlinFirmware/Marlin" + +/** + * Default generic printer UUID. + */ +#define DEFAULT_MACHINE_UUID "cede2a2f-41a2-4748-9b12-c55c62f367ff" + +/** + * The WEBSITE_URL is the location where users can get more information such as + * documentation about a specific Marlin release. + */ +#define WEBSITE_URL "http://marlinfw.org" diff --git a/Marlin/language.h b/Marlin/language.h index 0bbae448b3..e9a30a2d7d 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -66,43 +66,32 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif -#define PROTOCOL_VERSION "1.0" - -#ifndef DEFAULT_MACHINE_NAME - #define DEFAULT_MACHINE_NAME "3D Printer" +#ifdef DEFAULT_SOURCE_CODE_URL + #undef SOURCE_CODE_URL + #define SOURCE_CODE_URL DEFAULT_SOURCE_CODE_URL #endif #ifdef CUSTOM_MACHINE_NAME + #undef MACHINE_NAME #define MACHINE_NAME CUSTOM_MACHINE_NAME #else - #define MACHINE_NAME DEFAULT_MACHINE_NAME -#endif - -#ifndef DEFAULT_SOURCE_URL - /** - * The SOURCE_CODE_URL is the location where users will find the Marlin Source - * Code which is installed on the device. In most cases —unless the manufacturer - * has a distinct Github fork— the Source Code URL should just be the main - * Marlin repository. - */ - #define DEFAULT_SOURCE_URL "https://github.com/MarlinFirmware/Marlin" -#endif - -#ifndef SOURCE_CODE_URL - #define SOURCE_CODE_URL DEFAULT_SOURCE_URL -#endif - -#ifndef DETAILED_BUILD_VERSION - #error BUILD_VERSION Information must be specified + #ifdef DEFAULT_MACHINE_NAME + #undef MACHINE_NAME + #define MACHINE_NAME DEFAULT_MACHINE_NAME + #endif #endif #ifndef MACHINE_UUID - #define MACHINE_UUID "00000000-0000-0000-0000-000000000000" + #define MACHINE_UUID DEFAULT_MACHINE_UUID #endif +#ifdef DEFAULT_WEBSITE_URL + #undef WEBSITE_URL + #define WEBSITE_URL DEFAULT_WEBSITE_URL +#endif // Common LCD messages From 3b6f75511f1ddda77ed3143cb883587e215dbf42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sun, 24 Apr 2016 05:19:51 +0100 Subject: [PATCH 140/383] Updated multiple pins files --- Marlin/pins_3DRAG.h | 4 ++-- Marlin/pins_K8200.h | 8 ++++---- Marlin/pins_SAV_MKI.h | 4 ++-- Marlin/pins_ULTIMAIN_2.h | 4 ++-- Marlin/pins_ULTIMAKER.h | 4 ++-- Marlin/pins_ULTIMAKER_OLD.h | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Marlin/pins_3DRAG.h b/Marlin/pins_3DRAG.h index 969f4055ea..9de52e3891 100644 --- a/Marlin/pins_3DRAG.h +++ b/Marlin/pins_3DRAG.h @@ -26,8 +26,8 @@ #include "pins_RAMPS_14.h" -#define DEFAULT_MACHINE_NAME "3Drag" -#define DEFAULT_SOURCE_URL "http://3dprint.elettronicain.it/" +#define DEFAULT_MACHINE_NAME "3Drag" +#define DEFAULT_SOURCE_CODE_URL "http://3dprint.elettronicain.it/" #undef Z_ENABLE_PIN #define Z_ENABLE_PIN 63 diff --git a/Marlin/pins_K8200.h b/Marlin/pins_K8200.h index f02300dc8b..ac65297eb8 100644 --- a/Marlin/pins_K8200.h +++ b/Marlin/pins_K8200.h @@ -27,8 +27,8 @@ #include "pins_3DRAG.h" -#undef DEFAULT_MACHINE_NAME -#define DEFAULT_MACHINE_NAME "K8200" +#undef DEFAULT_MACHINE_NAME +#define DEFAULT_MACHINE_NAME "K8200" -#undef DEFAULT_SOURCE_URL -#define DEFAULT_SOURCE_URL "https://github.com/CONSULitAS/Marlin-K8200" +#undef DEFAULT_SOURCE_CODE_URL +#define DEFAULT_SOURCE_CODE_URL "https://github.com/CONSULitAS/Marlin-K8200" diff --git a/Marlin/pins_SAV_MKI.h b/Marlin/pins_SAV_MKI.h index eb033fb28e..579d653e09 100644 --- a/Marlin/pins_SAV_MKI.h +++ b/Marlin/pins_SAV_MKI.h @@ -31,8 +31,8 @@ #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. #endif -#define DEFAULT_MACHINE_NAME "SAV MkI" -#define DEFAULT_SOURCE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config" +#define DEFAULT_MACHINE_NAME "SAV MkI" +#define DEFAULT_SOURCE_CODE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config" #define LARGE_FLASH true diff --git a/Marlin/pins_ULTIMAIN_2.h b/Marlin/pins_ULTIMAIN_2.h index 6da36661a6..8682a54fce 100644 --- a/Marlin/pins_ULTIMAIN_2.h +++ b/Marlin/pins_ULTIMAIN_2.h @@ -28,8 +28,8 @@ #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #endif -#define DEFAULT_MACHINE_NAME "Ultimaker" -#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin" +#define DEFAULT_MACHINE_NAME "Ultimaker" +#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin" #define X_STEP_PIN 25 #define X_DIR_PIN 23 diff --git a/Marlin/pins_ULTIMAKER.h b/Marlin/pins_ULTIMAKER.h index b5a10057c5..ab7a5da832 100644 --- a/Marlin/pins_ULTIMAKER.h +++ b/Marlin/pins_ULTIMAKER.h @@ -28,8 +28,8 @@ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. #endif -#define DEFAULT_MACHINE_NAME "Ultimaker" -#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin" +#define DEFAULT_MACHINE_NAME "Ultimaker" +#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin" #define LARGE_FLASH true diff --git a/Marlin/pins_ULTIMAKER_OLD.h b/Marlin/pins_ULTIMAKER_OLD.h index 4f015f7e72..e2d48e67d6 100644 --- a/Marlin/pins_ULTIMAKER_OLD.h +++ b/Marlin/pins_ULTIMAKER_OLD.h @@ -28,8 +28,8 @@ #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. #endif -#define DEFAULT_MACHINE_NAME "Ultimaker" -#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin" +#define DEFAULT_MACHINE_NAME "Ultimaker" +#define DEFAULT_SOURCE_CODE_URL "https://github.com/Ultimaker/Marlin" #define LARGE_FLASH true From 7de0161204171eecac6a39e2f54cf540282930e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sun, 24 Apr 2016 05:20:17 +0100 Subject: [PATCH 141/383] Updated example config files --- Marlin/example_configurations/Felix/Configuration.h | 4 ++-- Marlin/example_configurations/Felix/Configuration_DUAL.h | 4 ++-- Marlin/example_configurations/Hephestos/Configuration.h | 4 ++-- Marlin/example_configurations/Hephestos_2/Configuration.h | 4 ++-- Marlin/example_configurations/K8200/Configuration.h | 4 ++-- .../RepRapWorld/Megatronics/Configuration.h | 4 ++-- Marlin/example_configurations/RigidBot/Configuration.h | 4 ++-- Marlin/example_configurations/SCARA/Configuration.h | 4 ++-- Marlin/example_configurations/TAZ4/Configuration.h | 4 ++-- Marlin/example_configurations/WITBOX/Configuration.h | 4 ++-- Marlin/example_configurations/adafruit/ST7565/Configuration.h | 4 ++-- Marlin/example_configurations/delta/biv2.5/Configuration.h | 4 ++-- Marlin/example_configurations/delta/generic/Configuration.h | 4 ++-- .../example_configurations/delta/kossel_mini/Configuration.h | 4 ++-- .../example_configurations/delta/kossel_pro/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_xl/Configuration.h | 2 +- Marlin/example_configurations/makibox/Configuration.h | 4 ++-- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 4 ++-- 18 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 11488685e9..1cdefc2bcf 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -586,7 +586,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index c5113004cc..3707f72a4c 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -583,7 +583,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index adf056e6a4..395bb8e761 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -596,7 +596,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 866556d6a2..0dbb1d7633 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -598,7 +598,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER 34 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER 15 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER 15 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 4480757fe9..e7ceafeff0 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -83,7 +83,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -621,7 +621,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index b8bbfe459e..3f6208345c 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -604,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index f147f7caf9..82b66ef9d1 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -598,7 +598,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 8fc4e22ccd..808bf7e62f 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -101,7 +101,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -612,7 +612,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 3f68ad16b4..6c8165ea0e 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -625,7 +625,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 79469c7887..434143e38f 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -596,7 +596,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 34933b7746..f941bb0d1c 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -604,7 +604,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 561b0acdfe..40d6e9af80 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -650,7 +650,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 1ccee086bb..c492573f5a 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -650,7 +650,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index c3e3e3c402..e77eb33795 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -650,7 +650,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 3721839722..b5c9c76c6f 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -82,7 +82,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 483aa78a8a..943443fb4a 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -69,7 +69,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 2f5cfce4f3..2b414100f5 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -607,7 +607,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 514fbef333..59cfe714d5 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -76,7 +76,7 @@ #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else - #include "Default_Version.h" + #include "Version.h" #endif // User-specified version info of this build to display in [Pronterface, etc] terminal window during @@ -594,7 +594,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // O-- FRONT --+ // (0,0) #define X_PROBE_OFFSET_FROM_EXTRUDER -25 // X offset: -left +right [of the nozzle] - #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] + #define Y_PROBE_OFFSET_FROM_EXTRUDER -29 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35 // Z offset: -below +above [the nozzle] #define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min. From aa7a65e613e6339b07b29fbd65dec77d31eaf145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sun, 24 Apr 2016 05:43:29 +0100 Subject: [PATCH 142/383] Updated travis config --- .../bin/generate_version_header_for_marlin | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/LinuxAddons/bin/generate_version_header_for_marlin b/LinuxAddons/bin/generate_version_header_for_marlin index 7160b77786..539a3fe5a7 100755 --- a/LinuxAddons/bin/generate_version_header_for_marlin +++ b/LinuxAddons/bin/generate_version_header_for_marlin @@ -3,24 +3,29 @@ DIR="$1" export DIR OUTFILE="$2" export OUTFILE -echo "/* This file is automatically generated by an Arduino hook" >"$OUTFILE" -echo " * Do not manually edit it" >>"$OUTFILE" -echo " * It does not get committed to the repository" >>"$OUTFILE" -echo " */" >>"$OUTFILE" -echo "" >>"$OUTFILE" - -echo "#define PROTOCOL_VERSION \"1.0\"" >>"$OUTFILE" -echo "#define DEFAULT_SOURCE_URL \"https://github.com/MarlinFirmware/Marlin\"" >>"$OUTFILE" -echo "#define DEFAULT_MACHINE_NAME \"Travis 3D Printer\"" >>"$OUTFILE" -echo "#define DEFAULT_MACHINE_UUID \"3442baa1-08ee-435b-8a10-99d185bd43b8\"" >>"$OUTFILE" -echo "" >>"$OUTFILE" - -echo "#define BUILD_UNIX_DATETIME" `date +%s` >>"$OUTFILE" -echo "#define STRING_DISTRIBUTION_DATE" `date '+"%Y-%m-%d %H:%M"'` >>"$OUTFILE" -echo "" >>"$OUTFILE" + +BUILDATE=$(date '+"%s"') +DISTDATE=$(date '+"%Y-%m-%d %H:%M"') + + +cat > "$OUTFILE" <>"$OUTFILE" else BRANCH=" $BRANCH" fi + VERSION=`git describe --tags --first-parent 2>/dev/null` if [ "x$VERSION" != "x" ] ; then echo "#define SHORT_BUILD_VERSION \"$VERSION\"" | sed "s/-.*/$BRANCH\"/" >>"$OUTFILE" @@ -38,8 +44,4 @@ echo "" >>"$OUTFILE" echo "#define SHORT_BUILD_VERSION \"$BRANCH\"" >>"$OUTFILE" echo "#define DETAILED_BUILD_VERSION \"${BRANCH}-$VERSION\"" >>"$OUTFILE" fi - URL=`git config --local --get remote.origin.url | sed "sx.*github.com.xhttps://github.com/x" | sed "sx\.gitx/x"` - if [ "x$URL" != "x" ] ; then - echo "#define SOURCE_CODE_URL \""$URL"\"" >>"$OUTFILE" - fi ) From fce1e843b91d3f0977918d794daf85924e6d7ad7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 24 Apr 2016 19:38:58 -0700 Subject: [PATCH 143/383] Patch steps rate comment in trapezoid function --- Marlin/planner.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index ed3cd3047f..e1ee240d8c 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -180,8 +180,8 @@ FORCE_INLINE float intersection_distance(float initial_rate, float final_rate, f // Calculates trapezoid parameters so that the entry- and exit-speed is compensated by the provided factors. void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor) { - unsigned long initial_rate = ceil(block->nominal_rate * entry_factor); // (step/min) - unsigned long final_rate = ceil(block->nominal_rate * exit_factor); // (step/min) + unsigned long initial_rate = ceil(block->nominal_rate * entry_factor), + final_rate = ceil(block->nominal_rate * exit_factor); // (steps per second) // Limit minimal step rate (Otherwise the timer will overflow.) NOLESS(initial_rate, 120); From b899338c325ca5236627be41828a2510e500b0a8 Mon Sep 17 00:00:00 2001 From: Jochen Groppe Date: Tue, 12 Apr 2016 22:04:00 +0200 Subject: [PATCH 144/383] Update README.md * Description for RC5 * Hint for deprecated Arduino versions --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 895d7f8c31..493073d4ce 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,23 @@ You'll always find the latest Release Candidate in the ["RC" branch](https://git Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev repository](https://github.com/MarlinFirmware/MarlinDev/). ## Recent Changes +- RCBugFix + - Throw error if compiling with older versions (<1.50) of Arduino due to serios problems with outdated Arduino versions + - Please upgrade your IDE. + +- RC5 - 01 Apr 2016 + - Warn if compiling with older versions (<1.50) of Arduino + - Fix various LCD menu issues + - Add formal support for MKSv1.3 and Sainsmart (RAMPS variants) + - Fix bugs in M104, M109, and M190 + - Fix broken M404 command + - Fix issues with M23 and "Start SD Print" + - More output for M111 + - Rename FILAMENT_SENSOR to FILAMENT_WIDTH_SENSOR + - Fix SD card bugs + - and a lot more + - see https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC5 for details + - RC4 - 24 Mar 2016 - Many lingering bugs and nagging issues addressed - Improvements to LCD menus, CoreXY/CoreXZ, Delta, Bed Leveling, and more… @@ -52,7 +69,7 @@ The current Marlin dev team consists of: - Scott Lahteine [@thinkyhead] - English - [@Wurstnase] - Deutsch, English - F. Malpartida [@fmalpartida] - English, Spanish - - [@CONSULitAS] - Deutsch, English + - Jochen Groppe [@CONSULitAS] - Deutsch, English - [@maverikou] - Chris Palmer [@nophead] - [@paclema] From 0ed43ec34b3a8bc7d528b381823fd1c06532b93e Mon Sep 17 00:00:00 2001 From: Jochen Groppe Date: Tue, 12 Apr 2016 22:09:13 +0200 Subject: [PATCH 145/383] Update README.md Oops! at least 1.6.0 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 493073d4ce..683efe91ae 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev reposit ## Recent Changes - RCBugFix - - Throw error if compiling with older versions (<1.50) of Arduino due to serios problems with outdated Arduino versions - - Please upgrade your IDE. + - Throw error if compiling with older versions (<1.60) of Arduino due to serios problems with outdated Arduino versions + - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. - RC5 - 01 Apr 2016 - Warn if compiling with older versions (<1.50) of Arduino From db56ff588195bf89801ec57118d70174fd4e3508 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Wed, 13 Apr 2016 06:48:59 +0900 Subject: [PATCH 146/383] follow-up to commit 200b248(Update README.md) follow-up to commit 200b2487c2dfb1a5160c0974d2b7c6f2e54719ee Update release date in another place --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 683efe91ae..242e41a74b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki/Main-Page). -## Release Candidate -- Marlin 1.1.0-RC4 - 24 March 2016 +## Release Candidate -- Marlin 1.1.0-RC5 - 01 April 2016 __Not for production use – use with caution!__ From 739dcda0f1dd53124afc627f9e8d69c3b9e9c5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Mon, 25 Apr 2016 17:40:43 +0100 Subject: [PATCH 147/383] Renamed stopwatch::status to stopwatch::state --- Marlin/stopwatch.cpp | 12 ++++++------ Marlin/stopwatch.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Marlin/stopwatch.cpp b/Marlin/stopwatch.cpp index 60d556a4fb..f871af1c7c 100644 --- a/Marlin/stopwatch.cpp +++ b/Marlin/stopwatch.cpp @@ -34,7 +34,7 @@ void Stopwatch::stop() { if (!this->isRunning()) return; - this->status = STPWTCH_STOPPED; + this->state = STPWTCH_STOPPED; this->stopTimestamp = millis(); } @@ -45,7 +45,7 @@ void Stopwatch::pause() { if (!this->isRunning()) return; - this->status = STPWTCH_PAUSED; + this->state = STPWTCH_PAUSED; this->stopTimestamp = millis(); } @@ -59,7 +59,7 @@ void Stopwatch::start() { if (this->isPaused()) this->accumulator = this->duration(); else this->reset(); - this->status = STPWTCH_RUNNING; + this->state = STPWTCH_RUNNING; this->startTimestamp = millis(); } @@ -68,18 +68,18 @@ void Stopwatch::reset() { debug(PSTR("reset")); #endif - this->status = STPWTCH_STOPPED; + this->state = STPWTCH_STOPPED; this->startTimestamp = 0; this->stopTimestamp = 0; this->accumulator = 0; } bool Stopwatch::isRunning() { - return (this->status == STPWTCH_RUNNING) ? true : false; + return (this->state == STPWTCH_RUNNING) ? true : false; } bool Stopwatch::isPaused() { - return (this->status == STPWTCH_PAUSED) ? true : false; + return (this->state == STPWTCH_PAUSED) ? true : false; } uint16_t Stopwatch::duration() { diff --git a/Marlin/stopwatch.h b/Marlin/stopwatch.h index 53c0f149fc..6ac69eaccd 100644 --- a/Marlin/stopwatch.h +++ b/Marlin/stopwatch.h @@ -28,7 +28,7 @@ // Print debug messages with M111 S2 (Uses 156 bytes of PROGMEM) //#define DEBUG_STOPWATCH -enum StopwatchStatus { +enum StopwatchState { STPWTCH_STOPPED, STPWTCH_RUNNING, STPWTCH_PAUSED @@ -41,7 +41,7 @@ enum StopwatchStatus { */ class Stopwatch { private: - StopwatchStatus status; + StopwatchState state; uint16_t accumulator; uint32_t startTimestamp; uint32_t stopTimestamp; From e38baaa23e8bee189d4152c848451c44277b7c4c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 25 Apr 2016 14:17:20 -0700 Subject: [PATCH 148/383] Fix an acceleration anomaly by making locals signed --- Marlin/planner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index e1ee240d8c..f5062d2a7d 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -941,7 +941,7 @@ float junction_deviation = 0.1; // Compute and limit the acceleration rate for the trapezoid generator. float steps_per_mm = block->step_event_count / block->millimeters; - unsigned long bsx = block->steps[X_AXIS], bsy = block->steps[Y_AXIS], bsz = block->steps[Z_AXIS], bse = block->steps[E_AXIS]; + long bsx = block->steps[X_AXIS], bsy = block->steps[Y_AXIS], bsz = block->steps[Z_AXIS], bse = block->steps[E_AXIS]; if (bsx == 0 && bsy == 0 && bsz == 0) { block->acceleration_st = ceil(retract_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2 } From dcb4cdaa9e974b19b377e00a640017467a6d4b54 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 25 Apr 2016 18:23:09 -0700 Subject: [PATCH 149/383] Call report_current_position instead of gcode_M114 directly --- Marlin/Marlin_main.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 6b0f52b6a9..287b86896f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -504,7 +504,7 @@ void serial_echopair_P(const char* s_P, float v) { serialprintPGM(s_P); void serial_echopair_P(const char* s_P, double v) { serialprintPGM(s_P); SERIAL_ECHO(v); } void serial_echopair_P(const char* s_P, unsigned long v) { serialprintPGM(s_P); SERIAL_ECHO(v); } -void gcode_M114(); +static void report_current_position(); #if ENABLED(DEBUG_LEVELING_FEATURE) void print_xyz(const char* prefix, const float x, const float y, const float z) { @@ -2886,8 +2886,7 @@ inline void gcode_G28() { } #endif - gcode_M114(); // Send end position to RepetierHost - + report_current_position(); } #if ENABLED(MESH_BED_LEVELING) @@ -3595,8 +3594,7 @@ inline void gcode_G28() { } #endif - gcode_M114(); // Send end position to RepetierHost - + report_current_position(); } #if DISABLED(Z_PROBE_SLED) // could be avoided @@ -3632,7 +3630,7 @@ inline void gcode_G28() { #endif stow_z_probe(false); // Retract Z Servo endstop if available. Z_PROBE_SLED is missed here. - gcode_M114(); // Send end position to RepetierHost + report_current_position(); } #endif //!Z_PROBE_SLED @@ -4229,7 +4227,7 @@ inline void gcode_M42() { clean_up_after_endstop_move(); - gcode_M114(); // Send end position to RepetierHost + report_current_position(); } #endif // AUTO_BED_LEVELING_FEATURE && Z_MIN_PROBE_REPEATABILITY_TEST @@ -4878,9 +4876,9 @@ inline void gcode_M92() { } /** - * M114: Output current position to serial port + * Output the current position to serial */ -inline void gcode_M114() { +static void report_current_position() { SERIAL_PROTOCOLPGM("X:"); SERIAL_PROTOCOL(current_position[X_AXIS]); SERIAL_PROTOCOLPGM(" Y:"); @@ -4941,6 +4939,11 @@ inline void gcode_M114() { #endif } +/** + * M114: Output current position to serial port + */ +inline void gcode_M114() { report_current_position(); } + /** * M115: Capabilities string */ From 68d0347e677e4b2b3788d35617a5d3ebfac7e11e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 25 Apr 2016 18:24:12 -0700 Subject: [PATCH 150/383] Call report_current_position after M206 / M428 --- Marlin/Marlin_main.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 287b86896f..bb231e23f5 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5199,7 +5199,9 @@ inline void gcode_M206() { if (code_seen('T')) set_home_offset(X_AXIS, code_value()); // Theta if (code_seen('P')) set_home_offset(Y_AXIS, code_value()); // Psi #endif + sync_plan_position(); + report_current_position(); } #if ENABLED(DELTA) @@ -5918,6 +5920,7 @@ inline void gcode_M428() { if (!err) { sync_plan_position(); + report_current_position(); LCD_MESSAGEPGM(MSG_HOME_OFFSETS_APPLIED); #if HAS_BUZZER buzz(200, 659); From abeab792cb71a3349f0c6b8113d12c0ac9eda3c7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 25 Apr 2016 20:02:24 -0700 Subject: [PATCH 151/383] General cleanup around high level move functions - Use new `DEBUG_POS` macro for `DELTA` debug - Neaten up `prepare_move` a smidgen - Remove an old commented `prepare_move()` line --- Marlin/Marlin_main.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 6b0f52b6a9..4864a46007 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2343,7 +2343,6 @@ static void homeaxis(AxisEnum axis) { #else sync_plan_position(); #endif - //prepare_move(); } feedrate = retract_recover_feedrate * 60; @@ -7322,12 +7321,8 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ adjust_delta(target); #endif - //SERIAL_ECHOPGM("target[X_AXIS]="); SERIAL_ECHOLN(target[X_AXIS]); - //SERIAL_ECHOPGM("target[Y_AXIS]="); SERIAL_ECHOLN(target[Y_AXIS]); - //SERIAL_ECHOPGM("target[Z_AXIS]="); SERIAL_ECHOLN(target[Z_AXIS]); - //SERIAL_ECHOPGM("delta[X_AXIS]="); SERIAL_ECHOLN(delta[X_AXIS]); - //SERIAL_ECHOPGM("delta[Y_AXIS]="); SERIAL_ECHOLN(delta[Y_AXIS]); - //SERIAL_ECHOPGM("delta[Z_AXIS]="); SERIAL_ECHOLN(delta[Z_AXIS]); + //DEBUG_POS("prepare_move_delta", target); + //DEBUG_POS("prepare_move_delta", delta); plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feedrate / 60 * feedrate_multiplier / 100.0, active_extruder); } @@ -7417,13 +7412,10 @@ void prepare_move() { if (!prepare_move_scara(destination)) return; #elif ENABLED(DELTA) if (!prepare_move_delta(destination)) return; - #endif - - #if ENABLED(DUAL_X_CARRIAGE) - if (!prepare_move_dual_x_carriage()) return; - #endif - - #if DISABLED(DELTA) && DISABLED(SCARA) + #else + #if ENABLED(DUAL_X_CARRIAGE) + if (!prepare_move_dual_x_carriage()) return; + #endif if (!prepare_move_cartesian()) return; #endif From 4dfc49696502acb117a0a48d9c067dfbaa636bef Mon Sep 17 00:00:00 2001 From: Matt Keveney Date: Fri, 15 Apr 2016 14:51:02 -0700 Subject: [PATCH 152/383] added recalc_delta_settings() call in Config_RetrieveSettings. Appears to be necessary any time delta-related parameters (M665) are modified --- Marlin/configuration_store.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index ced96e2602..057f95b1c5 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -400,6 +400,7 @@ void Config_RetrieveSettings() { EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_1); // 1 float EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_2); // 1 float EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_3); // 1 float + recalc_delta_settings(delta_radius, delta_diagonal_rod); #elif ENABLED(Z_DUAL_ENDSTOPS) EEPROM_READ_VAR(i, z_endstop_adj); dummy = 0.0f; From 59cfc84dadbcb927d5c18bd8faae5e5e50c372d8 Mon Sep 17 00:00:00 2001 From: Michael Neumann Date: Tue, 26 Apr 2016 21:52:05 +0200 Subject: [PATCH 153/383] German "Umlaute" We don't have to avoid German "Umlaute" any more. --- Marlin/language_de.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index 06d718c7e5..adccd1f202 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -103,7 +103,7 @@ #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "A max " // space by purpose #define MSG_A_RETRACT "A Retract" -#define MSG_A_TRAVEL "A Rueckzug" +#define MSG_A_TRAVEL "A Rückzug" #define MSG_XSTEPS "X steps/mm" #define MSG_YSTEPS "Y steps/mm" #define MSG_ZSTEPS "Z steps/mm" @@ -131,7 +131,7 @@ #define MSG_RESUMING "Druck geht weiter" #define MSG_PRINT_ABORTED "Druck abgebrochen" #define MSG_NO_MOVE "Motoren Eingesch." -#define MSG_KILLED "KILLED." +#define MSG_KILLED "BEENDET." #define MSG_STOPPED "ANGEHALTEN." #define MSG_CONTROL_RETRACT "Retract mm" #define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm" @@ -154,9 +154,9 @@ #define MSG_HEATING_FAILED_LCD "Heizen fehlgesch." #define MSG_ERR_REDUNDANT_TEMP "Redund. Temperaturabw." #define MSG_THERMAL_RUNAWAY "Temp. n. erreicht" -#define MSG_ERR_MAXTEMP "Temp. ueberschritten" +#define MSG_ERR_MAXTEMP "Temp. überschritten" #define MSG_ERR_MINTEMP "Temp. unterschritten" -#define MSG_ERR_MAXTEMP_BED "Temp. Bett ueberschr." +#define MSG_ERR_MAXTEMP_BED "Temp. Bett überschr." #define MSG_ERR_MINTEMP_BED "Temp. Bett unterschr." #define MSG_END_HOUR "Stunden" #define MSG_END_MINUTE "Minuten" From 32d798fcc7450cc19a5a0c95c65c493a7cd79314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Tue, 26 Apr 2016 21:23:39 +0100 Subject: [PATCH 154/383] Converted all files on src to Unix file format --- Marlin/Sd2Card.cpp | 1436 ++++++++--------- Marlin/Sd2Card.h | 504 +++--- Marlin/Sd2PinMap.h | 906 +++++------ Marlin/SdFatUtil.h | 114 +- Marlin/SdFile.cpp | 204 +-- Marlin/SdInfo.h | 578 +++---- Marlin/SdVolume.cpp | 840 +++++----- .../K8200/Configuration.h | 2 +- Marlin/language_bg.h | 2 +- Marlin/language_ru.h | 2 +- README.md | 188 +-- 11 files changed, 2388 insertions(+), 2388 deletions(-) diff --git a/Marlin/Sd2Card.cpp b/Marlin/Sd2Card.cpp index 6087aa8682..49be3c0668 100644 --- a/Marlin/Sd2Card.cpp +++ b/Marlin/Sd2Card.cpp @@ -1,718 +1,718 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -#include "Marlin.h" - -#if ENABLED(SDSUPPORT) -#include "Sd2Card.h" -//------------------------------------------------------------------------------ -#if DISABLED(SOFTWARE_SPI) - // functions for hardware SPI - //------------------------------------------------------------------------------ - // make sure SPCR rate is in expected bits - #if (SPR0 != 0 || SPR1 != 1) - #error unexpected SPCR bits - #endif - /** - * Initialize hardware SPI - * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6] - */ - static void spiInit(uint8_t spiRate) { - // See avr processor documentation - SPCR = _BV(SPE) | _BV(MSTR) | (spiRate >> 1); - SPSR = spiRate & 1 || spiRate == 6 ? 0 : _BV(SPI2X); - } - //------------------------------------------------------------------------------ - /** SPI receive a byte */ - static uint8_t spiRec() { - SPDR = 0XFF; - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - return SPDR; - } - //------------------------------------------------------------------------------ - /** SPI read data - only one call so force inline */ - static inline __attribute__((always_inline)) - void spiRead(uint8_t* buf, uint16_t nbyte) { - if (nbyte-- == 0) return; - SPDR = 0XFF; - for (uint16_t i = 0; i < nbyte; i++) { - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - buf[i] = SPDR; - SPDR = 0XFF; - } - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - buf[nbyte] = SPDR; - } - //------------------------------------------------------------------------------ - /** SPI send a byte */ - static void spiSend(uint8_t b) { - SPDR = b; - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - } - //------------------------------------------------------------------------------ - /** SPI send block - only one call so force inline */ - static inline __attribute__((always_inline)) - void spiSendBlock(uint8_t token, const uint8_t* buf) { - SPDR = token; - for (uint16_t i = 0; i < 512; i += 2) { - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - SPDR = buf[i]; - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - SPDR = buf[i + 1]; - } - while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } - } - //------------------------------------------------------------------------------ -#else // SOFTWARE_SPI - //------------------------------------------------------------------------------ - /** nop to tune soft SPI timing */ - #define nop asm volatile ("nop\n\t") - //------------------------------------------------------------------------------ - /** Soft SPI receive byte */ - static uint8_t spiRec() { - uint8_t data = 0; - // no interrupts during byte receive - about 8 us - cli(); - // output pin high - like sending 0XFF - fastDigitalWrite(SPI_MOSI_PIN, HIGH); - - for (uint8_t i = 0; i < 8; i++) { - fastDigitalWrite(SPI_SCK_PIN, HIGH); - - // adjust so SCK is nice - nop; - nop; - - data <<= 1; - - if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; - - fastDigitalWrite(SPI_SCK_PIN, LOW); - } - // enable interrupts - sei(); - return data; - } - //------------------------------------------------------------------------------ - /** Soft SPI read data */ - static void spiRead(uint8_t* buf, uint16_t nbyte) { - for (uint16_t i = 0; i < nbyte; i++) - buf[i] = spiRec(); - } - //------------------------------------------------------------------------------ - /** Soft SPI send byte */ - static void spiSend(uint8_t data) { - // no interrupts during byte send - about 8 us - cli(); - for (uint8_t i = 0; i < 8; i++) { - fastDigitalWrite(SPI_SCK_PIN, LOW); - - fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); - - data <<= 1; - - fastDigitalWrite(SPI_SCK_PIN, HIGH); - } - // hold SCK high for a few ns - nop; - nop; - nop; - nop; - - fastDigitalWrite(SPI_SCK_PIN, LOW); - // enable interrupts - sei(); - } - //------------------------------------------------------------------------------ - /** Soft SPI send block */ - void spiSendBlock(uint8_t token, const uint8_t* buf) { - spiSend(token); - for (uint16_t i = 0; i < 512; i++) - spiSend(buf[i]); - } -#endif // SOFTWARE_SPI -//------------------------------------------------------------------------------ -// send command and return error code. Return zero for OK -uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { - // select card - chipSelectLow(); - - // wait up to 300 ms if busy - waitNotBusy(300); - - // send command - spiSend(cmd | 0x40); - - // send argument - for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); - - // send CRC - uint8_t crc = 0XFF; - if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 - if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA - spiSend(crc); - - // skip stuff byte for stop read - if (cmd == CMD12) spiRec(); - - // wait for response - for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) { /* Intentionally left empty */ } - return status_; -} -//------------------------------------------------------------------------------ -/** - * Determine the size of an SD flash memory card. - * - * \return The number of 512 byte data blocks in the card - * or zero if an error occurs. - */ -uint32_t Sd2Card::cardSize() { - csd_t csd; - if (!readCSD(&csd)) return 0; - if (csd.v1.csd_ver == 0) { - uint8_t read_bl_len = csd.v1.read_bl_len; - uint16_t c_size = (csd.v1.c_size_high << 10) - | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; - uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) - | csd.v1.c_size_mult_low; - return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); - } - else if (csd.v2.csd_ver == 1) { - uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) - | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; - return (c_size + 1) << 10; - } - else { - error(SD_CARD_ERROR_BAD_CSD); - return 0; - } -} -//------------------------------------------------------------------------------ -void Sd2Card::chipSelectHigh() { - digitalWrite(chipSelectPin_, HIGH); -} -//------------------------------------------------------------------------------ -void Sd2Card::chipSelectLow() { - #if DISABLED(SOFTWARE_SPI) - spiInit(spiRate_); - #endif // SOFTWARE_SPI - digitalWrite(chipSelectPin_, LOW); -} -//------------------------------------------------------------------------------ -/** Erase a range of blocks. - * - * \param[in] firstBlock The address of the first block in the range. - * \param[in] lastBlock The address of the last block in the range. - * - * \note This function requests the SD card to do a flash erase for a - * range of blocks. The data on the card after an erase operation is - * either 0 or 1, depends on the card vendor. The card must support - * single block erase. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { - csd_t csd; - if (!readCSD(&csd)) goto fail; - // check for single block erase - if (!csd.v1.erase_blk_en) { - // erase size mask - uint8_t m = (csd.v1.sector_size_high << 1) | csd.v1.sector_size_low; - if ((firstBlock & m) != 0 || ((lastBlock + 1) & m) != 0) { - // error card can't erase specified area - error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); - goto fail; - } - } - if (type_ != SD_CARD_TYPE_SDHC) { - firstBlock <<= 9; - lastBlock <<= 9; - } - if (cardCommand(CMD32, firstBlock) - || cardCommand(CMD33, lastBlock) - || cardCommand(CMD38, 0)) { - error(SD_CARD_ERROR_ERASE); - goto fail; - } - if (!waitNotBusy(SD_ERASE_TIMEOUT)) { - error(SD_CARD_ERROR_ERASE_TIMEOUT); - goto fail; - } - chipSelectHigh(); - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Determine if card supports single block erase. - * - * \return The value one, true, is returned if single block erase is supported. - * The value zero, false, is returned if single block erase is not supported. - */ -bool Sd2Card::eraseSingleBlockEnable() { - csd_t csd; - return readCSD(&csd) ? csd.v1.erase_blk_en : false; -} -//------------------------------------------------------------------------------ -/** - * Initialize an SD flash memory card. - * - * \param[in] sckRateID SPI clock rate selector. See setSckRate(). - * \param[in] chipSelectPin SD chip select pin number. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. The reason for failure - * can be determined by calling errorCode() and errorData(). - */ -bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { - errorCode_ = type_ = 0; - chipSelectPin_ = chipSelectPin; - // 16-bit init start time allows over a minute - uint16_t t0 = (uint16_t)millis(); - uint32_t arg; - - // set pin modes - pinMode(chipSelectPin_, OUTPUT); - chipSelectHigh(); - pinMode(SPI_MISO_PIN, INPUT); - pinMode(SPI_MOSI_PIN, OUTPUT); - pinMode(SPI_SCK_PIN, OUTPUT); - - #if DISABLED(SOFTWARE_SPI) - // SS must be in output mode even it is not chip select - pinMode(SS_PIN, OUTPUT); - // set SS high - may be chip select for another SPI device - #if SET_SPI_SS_HIGH - digitalWrite(SS_PIN, HIGH); - #endif // SET_SPI_SS_HIGH - // set SCK rate for initialization commands - spiRate_ = SPI_SD_INIT_RATE; - spiInit(spiRate_); - #endif // SOFTWARE_SPI - - // must supply min of 74 clock cycles with CS high. - for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); - - // command to go idle in SPI mode - while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { - if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { - error(SD_CARD_ERROR_CMD0); - goto fail; - } - } - // check SD version - if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { - type(SD_CARD_TYPE_SD1); - } - else { - // only need last byte of r7 response - for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); - if (status_ != 0XAA) { - error(SD_CARD_ERROR_CMD8); - goto fail; - } - type(SD_CARD_TYPE_SD2); - } - // initialize card and send host supports SDHC if SD2 - arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; - - while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { - // check for timeout - if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { - error(SD_CARD_ERROR_ACMD41); - goto fail; - } - } - // if SD2 read OCR register to check for SDHC card - if (type() == SD_CARD_TYPE_SD2) { - if (cardCommand(CMD58, 0)) { - error(SD_CARD_ERROR_CMD58); - goto fail; - } - if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); - // discard rest of ocr - contains allowed voltage range - for (uint8_t i = 0; i < 3; i++) spiRec(); - } - chipSelectHigh(); - - #if DISABLED(SOFTWARE_SPI) - return setSckRate(sckRateID); - #else // SOFTWARE_SPI - UNUSED(sckRateID); - return true; - #endif // SOFTWARE_SPI - -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** - * Read a 512 byte block from an SD card. - * - * \param[in] blockNumber Logical block to be read. - * \param[out] dst Pointer to the location that will receive the data. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) { - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - - #if ENABLED(SD_CHECK_AND_RETRY) - uint8_t retryCnt = 3; - do { - if (!cardCommand(CMD17, blockNumber)) { - if (readData(dst, 512)) return true; - } - else - error(SD_CARD_ERROR_CMD17); - - if (--retryCnt) break; - - chipSelectHigh(); - cardCommand(CMD12, 0); // Try sending a stop command, ignore the result. - errorCode_ = 0; - } while (true); - #else - if (cardCommand(CMD17, blockNumber)) - error(SD_CARD_ERROR_CMD17); - else - return readData(dst, 512); - #endif - - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Read one data block in a multiple block read sequence - * - * \param[in] dst Pointer to the location for the data to be read. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readData(uint8_t* dst) { - chipSelectLow(); - return readData(dst, 512); -} - -#if ENABLED(SD_CHECK_AND_RETRY) -static const uint16_t crctab[] PROGMEM = { - 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, - 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, - 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, - 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, - 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, - 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, - 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, - 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, - 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, - 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, - 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, - 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, - 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, - 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, - 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, - 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, - 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, - 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, - 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, - 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, - 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, - 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, - 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, - 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, - 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, - 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, - 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, - 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, - 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, - 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, - 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, - 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 -}; -static uint16_t CRC_CCITT(const uint8_t* data, size_t n) { - uint16_t crc = 0; - for (size_t i = 0; i < n; i++) { - crc = pgm_read_word(&crctab[(crc >> 8 ^ data[i]) & 0XFF]) ^ (crc << 8); - } - return crc; -} -#endif - -//------------------------------------------------------------------------------ -bool Sd2Card::readData(uint8_t* dst, uint16_t count) { - // wait for start block token - uint16_t t0 = millis(); - while ((status_ = spiRec()) == 0XFF) { - if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { - error(SD_CARD_ERROR_READ_TIMEOUT); - goto fail; - } - } - if (status_ != DATA_START_BLOCK) { - error(SD_CARD_ERROR_READ); - goto fail; - } - // transfer data - spiRead(dst, count); - -#if ENABLED(SD_CHECK_AND_RETRY) - { - uint16_t calcCrc = CRC_CCITT(dst, count); - uint16_t recvCrc = spiRec() << 8; - recvCrc |= spiRec(); - if (calcCrc != recvCrc) { - error(SD_CARD_ERROR_CRC); - goto fail; - } - } -#else - // discard CRC - spiRec(); - spiRec(); -#endif - chipSelectHigh(); - // Send an additional dummy byte, required by Toshiba Flash Air SD Card - spiSend(0XFF); - return true; -fail: - chipSelectHigh(); - // Send an additional dummy byte, required by Toshiba Flash Air SD Card - spiSend(0XFF); - return false; -} -//------------------------------------------------------------------------------ -/** read CID or CSR register */ -bool Sd2Card::readRegister(uint8_t cmd, void* buf) { - uint8_t* dst = reinterpret_cast(buf); - if (cardCommand(cmd, 0)) { - error(SD_CARD_ERROR_READ_REG); - goto fail; - } - return readData(dst, 16); -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Start a read multiple blocks sequence. - * - * \param[in] blockNumber Address of first block in sequence. - * - * \note This function is used with readData() and readStop() for optimized - * multiple block reads. SPI chipSelect must be low for the entire sequence. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readStart(uint32_t blockNumber) { - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD18, blockNumber)) { - error(SD_CARD_ERROR_CMD18); - goto fail; - } - chipSelectHigh(); - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** End a read multiple blocks sequence. - * -* \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::readStop() { - chipSelectLow(); - if (cardCommand(CMD12, 0)) { - error(SD_CARD_ERROR_CMD12); - goto fail; - } - chipSelectHigh(); - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** - * Set the SPI clock rate. - * - * \param[in] sckRateID A value in the range [0, 6]. - * - * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum - * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 - * for \a scsRateID = 6. - * - * \return The value one, true, is returned for success and the value zero, - * false, is returned for an invalid value of \a sckRateID. - */ -bool Sd2Card::setSckRate(uint8_t sckRateID) { - if (sckRateID > 6) { - error(SD_CARD_ERROR_SCK_RATE); - return false; - } - spiRate_ = sckRateID; - return true; -} -//------------------------------------------------------------------------------ -// wait for card to go not busy -bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) { - uint16_t t0 = millis(); - while (spiRec() != 0XFF) { - if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail; - } - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -/** - * Writes a 512 byte block to an SD card. - * - * \param[in] blockNumber Logical block to be written. - * \param[in] src Pointer to the location of the data to be written. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD24, blockNumber)) { - error(SD_CARD_ERROR_CMD24); - goto fail; - } - if (!writeData(DATA_START_BLOCK, src)) goto fail; - - // wait for flash programming to complete - if (!waitNotBusy(SD_WRITE_TIMEOUT)) { - error(SD_CARD_ERROR_WRITE_TIMEOUT); - goto fail; - } - // response is r2 so get and check two bytes for nonzero - if (cardCommand(CMD13, 0) || spiRec()) { - error(SD_CARD_ERROR_WRITE_PROGRAMMING); - goto fail; - } - chipSelectHigh(); - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Write one data block in a multiple block write sequence - * \param[in] src Pointer to the location of the data to be written. - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeData(const uint8_t* src) { - chipSelectLow(); - // wait for previous write to finish - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail; - chipSelectHigh(); - return true; -fail: - error(SD_CARD_ERROR_WRITE_MULTIPLE); - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -// send one block of data for write block or write multiple blocks -bool Sd2Card::writeData(uint8_t token, const uint8_t* src) { - spiSendBlock(token, src); - - spiSend(0xff); // dummy crc - spiSend(0xff); // dummy crc - - status_ = spiRec(); - if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { - error(SD_CARD_ERROR_WRITE); - goto fail; - } - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** Start a write multiple blocks sequence. - * - * \param[in] blockNumber Address of first block in sequence. - * \param[in] eraseCount The number of blocks to be pre-erased. - * - * \note This function is used with writeData() and writeStop() - * for optimized multiple block writes. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { - // send pre-erase count - if (cardAcmd(ACMD23, eraseCount)) { - error(SD_CARD_ERROR_ACMD23); - goto fail; - } - // use address if not SDHC card - if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; - if (cardCommand(CMD25, blockNumber)) { - error(SD_CARD_ERROR_CMD25); - goto fail; - } - chipSelectHigh(); - return true; -fail: - chipSelectHigh(); - return false; -} -//------------------------------------------------------------------------------ -/** End a write multiple blocks sequence. - * -* \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. - */ -bool Sd2Card::writeStop() { - chipSelectLow(); - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - spiSend(STOP_TRAN_TOKEN); - if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; - chipSelectHigh(); - return true; -fail: - error(SD_CARD_ERROR_STOP_TRAN); - chipSelectHigh(); - return false; -} - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +#include "Marlin.h" + +#if ENABLED(SDSUPPORT) +#include "Sd2Card.h" +//------------------------------------------------------------------------------ +#if DISABLED(SOFTWARE_SPI) + // functions for hardware SPI + //------------------------------------------------------------------------------ + // make sure SPCR rate is in expected bits + #if (SPR0 != 0 || SPR1 != 1) + #error unexpected SPCR bits + #endif + /** + * Initialize hardware SPI + * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6] + */ + static void spiInit(uint8_t spiRate) { + // See avr processor documentation + SPCR = _BV(SPE) | _BV(MSTR) | (spiRate >> 1); + SPSR = spiRate & 1 || spiRate == 6 ? 0 : _BV(SPI2X); + } + //------------------------------------------------------------------------------ + /** SPI receive a byte */ + static uint8_t spiRec() { + SPDR = 0XFF; + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + return SPDR; + } + //------------------------------------------------------------------------------ + /** SPI read data - only one call so force inline */ + static inline __attribute__((always_inline)) + void spiRead(uint8_t* buf, uint16_t nbyte) { + if (nbyte-- == 0) return; + SPDR = 0XFF; + for (uint16_t i = 0; i < nbyte; i++) { + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + buf[i] = SPDR; + SPDR = 0XFF; + } + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + buf[nbyte] = SPDR; + } + //------------------------------------------------------------------------------ + /** SPI send a byte */ + static void spiSend(uint8_t b) { + SPDR = b; + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + } + //------------------------------------------------------------------------------ + /** SPI send block - only one call so force inline */ + static inline __attribute__((always_inline)) + void spiSendBlock(uint8_t token, const uint8_t* buf) { + SPDR = token; + for (uint16_t i = 0; i < 512; i += 2) { + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + SPDR = buf[i]; + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + SPDR = buf[i + 1]; + } + while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ } + } + //------------------------------------------------------------------------------ +#else // SOFTWARE_SPI + //------------------------------------------------------------------------------ + /** nop to tune soft SPI timing */ + #define nop asm volatile ("nop\n\t") + //------------------------------------------------------------------------------ + /** Soft SPI receive byte */ + static uint8_t spiRec() { + uint8_t data = 0; + // no interrupts during byte receive - about 8 us + cli(); + // output pin high - like sending 0XFF + fastDigitalWrite(SPI_MOSI_PIN, HIGH); + + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, HIGH); + + // adjust so SCK is nice + nop; + nop; + + data <<= 1; + + if (fastDigitalRead(SPI_MISO_PIN)) data |= 1; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + } + // enable interrupts + sei(); + return data; + } + //------------------------------------------------------------------------------ + /** Soft SPI read data */ + static void spiRead(uint8_t* buf, uint16_t nbyte) { + for (uint16_t i = 0; i < nbyte; i++) + buf[i] = spiRec(); + } + //------------------------------------------------------------------------------ + /** Soft SPI send byte */ + static void spiSend(uint8_t data) { + // no interrupts during byte send - about 8 us + cli(); + for (uint8_t i = 0; i < 8; i++) { + fastDigitalWrite(SPI_SCK_PIN, LOW); + + fastDigitalWrite(SPI_MOSI_PIN, data & 0X80); + + data <<= 1; + + fastDigitalWrite(SPI_SCK_PIN, HIGH); + } + // hold SCK high for a few ns + nop; + nop; + nop; + nop; + + fastDigitalWrite(SPI_SCK_PIN, LOW); + // enable interrupts + sei(); + } + //------------------------------------------------------------------------------ + /** Soft SPI send block */ + void spiSendBlock(uint8_t token, const uint8_t* buf) { + spiSend(token); + for (uint16_t i = 0; i < 512; i++) + spiSend(buf[i]); + } +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +// send command and return error code. Return zero for OK +uint8_t Sd2Card::cardCommand(uint8_t cmd, uint32_t arg) { + // select card + chipSelectLow(); + + // wait up to 300 ms if busy + waitNotBusy(300); + + // send command + spiSend(cmd | 0x40); + + // send argument + for (int8_t s = 24; s >= 0; s -= 8) spiSend(arg >> s); + + // send CRC + uint8_t crc = 0XFF; + if (cmd == CMD0) crc = 0X95; // correct crc for CMD0 with arg 0 + if (cmd == CMD8) crc = 0X87; // correct crc for CMD8 with arg 0X1AA + spiSend(crc); + + // skip stuff byte for stop read + if (cmd == CMD12) spiRec(); + + // wait for response + for (uint8_t i = 0; ((status_ = spiRec()) & 0X80) && i != 0XFF; i++) { /* Intentionally left empty */ } + return status_; +} +//------------------------------------------------------------------------------ +/** + * Determine the size of an SD flash memory card. + * + * \return The number of 512 byte data blocks in the card + * or zero if an error occurs. + */ +uint32_t Sd2Card::cardSize() { + csd_t csd; + if (!readCSD(&csd)) return 0; + if (csd.v1.csd_ver == 0) { + uint8_t read_bl_len = csd.v1.read_bl_len; + uint16_t c_size = (csd.v1.c_size_high << 10) + | (csd.v1.c_size_mid << 2) | csd.v1.c_size_low; + uint8_t c_size_mult = (csd.v1.c_size_mult_high << 1) + | csd.v1.c_size_mult_low; + return (uint32_t)(c_size + 1) << (c_size_mult + read_bl_len - 7); + } + else if (csd.v2.csd_ver == 1) { + uint32_t c_size = ((uint32_t)csd.v2.c_size_high << 16) + | (csd.v2.c_size_mid << 8) | csd.v2.c_size_low; + return (c_size + 1) << 10; + } + else { + error(SD_CARD_ERROR_BAD_CSD); + return 0; + } +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectHigh() { + digitalWrite(chipSelectPin_, HIGH); +} +//------------------------------------------------------------------------------ +void Sd2Card::chipSelectLow() { + #if DISABLED(SOFTWARE_SPI) + spiInit(spiRate_); + #endif // SOFTWARE_SPI + digitalWrite(chipSelectPin_, LOW); +} +//------------------------------------------------------------------------------ +/** Erase a range of blocks. + * + * \param[in] firstBlock The address of the first block in the range. + * \param[in] lastBlock The address of the last block in the range. + * + * \note This function requests the SD card to do a flash erase for a + * range of blocks. The data on the card after an erase operation is + * either 0 or 1, depends on the card vendor. The card must support + * single block erase. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) { + csd_t csd; + if (!readCSD(&csd)) goto fail; + // check for single block erase + if (!csd.v1.erase_blk_en) { + // erase size mask + uint8_t m = (csd.v1.sector_size_high << 1) | csd.v1.sector_size_low; + if ((firstBlock & m) != 0 || ((lastBlock + 1) & m) != 0) { + // error card can't erase specified area + error(SD_CARD_ERROR_ERASE_SINGLE_BLOCK); + goto fail; + } + } + if (type_ != SD_CARD_TYPE_SDHC) { + firstBlock <<= 9; + lastBlock <<= 9; + } + if (cardCommand(CMD32, firstBlock) + || cardCommand(CMD33, lastBlock) + || cardCommand(CMD38, 0)) { + error(SD_CARD_ERROR_ERASE); + goto fail; + } + if (!waitNotBusy(SD_ERASE_TIMEOUT)) { + error(SD_CARD_ERROR_ERASE_TIMEOUT); + goto fail; + } + chipSelectHigh(); + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Determine if card supports single block erase. + * + * \return The value one, true, is returned if single block erase is supported. + * The value zero, false, is returned if single block erase is not supported. + */ +bool Sd2Card::eraseSingleBlockEnable() { + csd_t csd; + return readCSD(&csd) ? csd.v1.erase_blk_en : false; +} +//------------------------------------------------------------------------------ +/** + * Initialize an SD flash memory card. + * + * \param[in] sckRateID SPI clock rate selector. See setSckRate(). + * \param[in] chipSelectPin SD chip select pin number. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. The reason for failure + * can be determined by calling errorCode() and errorData(). + */ +bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) { + errorCode_ = type_ = 0; + chipSelectPin_ = chipSelectPin; + // 16-bit init start time allows over a minute + uint16_t t0 = (uint16_t)millis(); + uint32_t arg; + + // set pin modes + pinMode(chipSelectPin_, OUTPUT); + chipSelectHigh(); + pinMode(SPI_MISO_PIN, INPUT); + pinMode(SPI_MOSI_PIN, OUTPUT); + pinMode(SPI_SCK_PIN, OUTPUT); + + #if DISABLED(SOFTWARE_SPI) + // SS must be in output mode even it is not chip select + pinMode(SS_PIN, OUTPUT); + // set SS high - may be chip select for another SPI device + #if SET_SPI_SS_HIGH + digitalWrite(SS_PIN, HIGH); + #endif // SET_SPI_SS_HIGH + // set SCK rate for initialization commands + spiRate_ = SPI_SD_INIT_RATE; + spiInit(spiRate_); + #endif // SOFTWARE_SPI + + // must supply min of 74 clock cycles with CS high. + for (uint8_t i = 0; i < 10; i++) spiSend(0XFF); + + // command to go idle in SPI mode + while ((status_ = cardCommand(CMD0, 0)) != R1_IDLE_STATE) { + if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_CMD0); + goto fail; + } + } + // check SD version + if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) { + type(SD_CARD_TYPE_SD1); + } + else { + // only need last byte of r7 response + for (uint8_t i = 0; i < 4; i++) status_ = spiRec(); + if (status_ != 0XAA) { + error(SD_CARD_ERROR_CMD8); + goto fail; + } + type(SD_CARD_TYPE_SD2); + } + // initialize card and send host supports SDHC if SD2 + arg = type() == SD_CARD_TYPE_SD2 ? 0X40000000 : 0; + + while ((status_ = cardAcmd(ACMD41, arg)) != R1_READY_STATE) { + // check for timeout + if (((uint16_t)millis() - t0) > SD_INIT_TIMEOUT) { + error(SD_CARD_ERROR_ACMD41); + goto fail; + } + } + // if SD2 read OCR register to check for SDHC card + if (type() == SD_CARD_TYPE_SD2) { + if (cardCommand(CMD58, 0)) { + error(SD_CARD_ERROR_CMD58); + goto fail; + } + if ((spiRec() & 0XC0) == 0XC0) type(SD_CARD_TYPE_SDHC); + // discard rest of ocr - contains allowed voltage range + for (uint8_t i = 0; i < 3; i++) spiRec(); + } + chipSelectHigh(); + + #if DISABLED(SOFTWARE_SPI) + return setSckRate(sckRateID); + #else // SOFTWARE_SPI + UNUSED(sckRateID); + return true; + #endif // SOFTWARE_SPI + +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Read a 512 byte block from an SD card. + * + * \param[in] blockNumber Logical block to be read. + * \param[out] dst Pointer to the location that will receive the data. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) { + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + + #if ENABLED(SD_CHECK_AND_RETRY) + uint8_t retryCnt = 3; + do { + if (!cardCommand(CMD17, blockNumber)) { + if (readData(dst, 512)) return true; + } + else + error(SD_CARD_ERROR_CMD17); + + if (--retryCnt) break; + + chipSelectHigh(); + cardCommand(CMD12, 0); // Try sending a stop command, ignore the result. + errorCode_ = 0; + } while (true); + #else + if (cardCommand(CMD17, blockNumber)) + error(SD_CARD_ERROR_CMD17); + else + return readData(dst, 512); + #endif + + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Read one data block in a multiple block read sequence + * + * \param[in] dst Pointer to the location for the data to be read. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readData(uint8_t* dst) { + chipSelectLow(); + return readData(dst, 512); +} + +#if ENABLED(SD_CHECK_AND_RETRY) +static const uint16_t crctab[] PROGMEM = { + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, + 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, + 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, + 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, + 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, + 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, + 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, + 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, + 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, + 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, + 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, + 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, + 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, + 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, + 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, + 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, + 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, + 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, + 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, + 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, + 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, + 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, + 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0 +}; +static uint16_t CRC_CCITT(const uint8_t* data, size_t n) { + uint16_t crc = 0; + for (size_t i = 0; i < n; i++) { + crc = pgm_read_word(&crctab[(crc >> 8 ^ data[i]) & 0XFF]) ^ (crc << 8); + } + return crc; +} +#endif + +//------------------------------------------------------------------------------ +bool Sd2Card::readData(uint8_t* dst, uint16_t count) { + // wait for start block token + uint16_t t0 = millis(); + while ((status_ = spiRec()) == 0XFF) { + if (((uint16_t)millis() - t0) > SD_READ_TIMEOUT) { + error(SD_CARD_ERROR_READ_TIMEOUT); + goto fail; + } + } + if (status_ != DATA_START_BLOCK) { + error(SD_CARD_ERROR_READ); + goto fail; + } + // transfer data + spiRead(dst, count); + +#if ENABLED(SD_CHECK_AND_RETRY) + { + uint16_t calcCrc = CRC_CCITT(dst, count); + uint16_t recvCrc = spiRec() << 8; + recvCrc |= spiRec(); + if (calcCrc != recvCrc) { + error(SD_CARD_ERROR_CRC); + goto fail; + } + } +#else + // discard CRC + spiRec(); + spiRec(); +#endif + chipSelectHigh(); + // Send an additional dummy byte, required by Toshiba Flash Air SD Card + spiSend(0XFF); + return true; +fail: + chipSelectHigh(); + // Send an additional dummy byte, required by Toshiba Flash Air SD Card + spiSend(0XFF); + return false; +} +//------------------------------------------------------------------------------ +/** read CID or CSR register */ +bool Sd2Card::readRegister(uint8_t cmd, void* buf) { + uint8_t* dst = reinterpret_cast(buf); + if (cardCommand(cmd, 0)) { + error(SD_CARD_ERROR_READ_REG); + goto fail; + } + return readData(dst, 16); +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Start a read multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * + * \note This function is used with readData() and readStop() for optimized + * multiple block reads. SPI chipSelect must be low for the entire sequence. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readStart(uint32_t blockNumber) { + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD18, blockNumber)) { + error(SD_CARD_ERROR_CMD18); + goto fail; + } + chipSelectHigh(); + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a read multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::readStop() { + chipSelectLow(); + if (cardCommand(CMD12, 0)) { + error(SD_CARD_ERROR_CMD12); + goto fail; + } + chipSelectHigh(); + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** + * Set the SPI clock rate. + * + * \param[in] sckRateID A value in the range [0, 6]. + * + * The SPI clock will be set to F_CPU/pow(2, 1 + sckRateID). The maximum + * SPI rate is F_CPU/2 for \a sckRateID = 0 and the minimum rate is F_CPU/128 + * for \a scsRateID = 6. + * + * \return The value one, true, is returned for success and the value zero, + * false, is returned for an invalid value of \a sckRateID. + */ +bool Sd2Card::setSckRate(uint8_t sckRateID) { + if (sckRateID > 6) { + error(SD_CARD_ERROR_SCK_RATE); + return false; + } + spiRate_ = sckRateID; + return true; +} +//------------------------------------------------------------------------------ +// wait for card to go not busy +bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) { + uint16_t t0 = millis(); + while (spiRec() != 0XFF) { + if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail; + } + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +/** + * Writes a 512 byte block to an SD card. + * + * \param[in] blockNumber Logical block to be written. + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) { + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD24, blockNumber)) { + error(SD_CARD_ERROR_CMD24); + goto fail; + } + if (!writeData(DATA_START_BLOCK, src)) goto fail; + + // wait for flash programming to complete + if (!waitNotBusy(SD_WRITE_TIMEOUT)) { + error(SD_CARD_ERROR_WRITE_TIMEOUT); + goto fail; + } + // response is r2 so get and check two bytes for nonzero + if (cardCommand(CMD13, 0) || spiRec()) { + error(SD_CARD_ERROR_WRITE_PROGRAMMING); + goto fail; + } + chipSelectHigh(); + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Write one data block in a multiple block write sequence + * \param[in] src Pointer to the location of the data to be written. + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeData(const uint8_t* src) { + chipSelectLow(); + // wait for previous write to finish + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail; + chipSelectHigh(); + return true; +fail: + error(SD_CARD_ERROR_WRITE_MULTIPLE); + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +// send one block of data for write block or write multiple blocks +bool Sd2Card::writeData(uint8_t token, const uint8_t* src) { + spiSendBlock(token, src); + + spiSend(0xff); // dummy crc + spiSend(0xff); // dummy crc + + status_ = spiRec(); + if ((status_ & DATA_RES_MASK) != DATA_RES_ACCEPTED) { + error(SD_CARD_ERROR_WRITE); + goto fail; + } + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** Start a write multiple blocks sequence. + * + * \param[in] blockNumber Address of first block in sequence. + * \param[in] eraseCount The number of blocks to be pre-erased. + * + * \note This function is used with writeData() and writeStop() + * for optimized multiple block writes. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) { + // send pre-erase count + if (cardAcmd(ACMD23, eraseCount)) { + error(SD_CARD_ERROR_ACMD23); + goto fail; + } + // use address if not SDHC card + if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9; + if (cardCommand(CMD25, blockNumber)) { + error(SD_CARD_ERROR_CMD25); + goto fail; + } + chipSelectHigh(); + return true; +fail: + chipSelectHigh(); + return false; +} +//------------------------------------------------------------------------------ +/** End a write multiple blocks sequence. + * +* \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. + */ +bool Sd2Card::writeStop() { + chipSelectLow(); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + spiSend(STOP_TRAN_TOKEN); + if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail; + chipSelectHigh(); + return true; +fail: + error(SD_CARD_ERROR_STOP_TRAN); + chipSelectHigh(); + return false; +} + +#endif diff --git a/Marlin/Sd2Card.h b/Marlin/Sd2Card.h index 106890fefa..45d8f22eab 100644 --- a/Marlin/Sd2Card.h +++ b/Marlin/Sd2Card.h @@ -1,252 +1,252 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ - -#include "Marlin.h" -#if ENABLED(SDSUPPORT) - -#ifndef Sd2Card_h -#define Sd2Card_h -/** - * \file - * \brief Sd2Card class for V2 SD/SDHC cards - */ -#include "SdFatConfig.h" -#include "Sd2PinMap.h" -#include "SdInfo.h" -//------------------------------------------------------------------------------ -// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6 -/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ -uint8_t const SPI_FULL_SPEED = 0; -/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ -uint8_t const SPI_HALF_SPEED = 1; -/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */ -uint8_t const SPI_QUARTER_SPEED = 2; -/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */ -uint8_t const SPI_EIGHTH_SPEED = 3; -/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */ -uint8_t const SPI_SIXTEENTH_SPEED = 4; -//------------------------------------------------------------------------------ -/** init timeout ms */ -uint16_t const SD_INIT_TIMEOUT = 2000; -/** erase timeout ms */ -uint16_t const SD_ERASE_TIMEOUT = 10000; -/** read timeout ms */ -uint16_t const SD_READ_TIMEOUT = 300; -/** write time out ms */ -uint16_t const SD_WRITE_TIMEOUT = 600; -//------------------------------------------------------------------------------ -// SD card errors -/** timeout error for command CMD0 (initialize card in SPI mode) */ -uint8_t const SD_CARD_ERROR_CMD0 = 0X1; -/** CMD8 was not accepted - not a valid SD card*/ -uint8_t const SD_CARD_ERROR_CMD8 = 0X2; -/** card returned an error response for CMD12 (write stop) */ -uint8_t const SD_CARD_ERROR_CMD12 = 0X3; -/** card returned an error response for CMD17 (read block) */ -uint8_t const SD_CARD_ERROR_CMD17 = 0X4; -/** card returned an error response for CMD18 (read multiple block) */ -uint8_t const SD_CARD_ERROR_CMD18 = 0X5; -/** card returned an error response for CMD24 (write block) */ -uint8_t const SD_CARD_ERROR_CMD24 = 0X6; -/** WRITE_MULTIPLE_BLOCKS command failed */ -uint8_t const SD_CARD_ERROR_CMD25 = 0X7; -/** card returned an error response for CMD58 (read OCR) */ -uint8_t const SD_CARD_ERROR_CMD58 = 0X8; -/** SET_WR_BLK_ERASE_COUNT failed */ -uint8_t const SD_CARD_ERROR_ACMD23 = 0X9; -/** ACMD41 initialization process timeout */ -uint8_t const SD_CARD_ERROR_ACMD41 = 0XA; -/** card returned a bad CSR version field */ -uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB; -/** erase block group command failed */ -uint8_t const SD_CARD_ERROR_ERASE = 0XC; -/** card not capable of single block erase */ -uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD; -/** Erase sequence timed out */ -uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE; -/** card returned an error token instead of read data */ -uint8_t const SD_CARD_ERROR_READ = 0XF; -/** read CID or CSD failed */ -uint8_t const SD_CARD_ERROR_READ_REG = 0X10; -/** timeout while waiting for start of read data */ -uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11; -/** card did not accept STOP_TRAN_TOKEN */ -uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12; -/** card returned an error token as a response to a write operation */ -uint8_t const SD_CARD_ERROR_WRITE = 0X13; -/** attempt to write protected block zero */ -uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used -/** card did not go ready for a multiple block write */ -uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15; -/** card returned an error to a CMD13 status check after a write */ -uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16; -/** timeout occurred during write programming */ -uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17; -/** incorrect rate selected */ -uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18; -/** init() not called */ -uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19; -/** crc check error */ -uint8_t const SD_CARD_ERROR_CRC = 0X20; -//------------------------------------------------------------------------------ -// card types -/** Standard capacity V1 SD card */ -uint8_t const SD_CARD_TYPE_SD1 = 1; -/** Standard capacity V2 SD card */ -uint8_t const SD_CARD_TYPE_SD2 = 2; -/** High Capacity SD card */ -uint8_t const SD_CARD_TYPE_SDHC = 3; -/** - * define SOFTWARE_SPI to use bit-bang SPI - */ -//------------------------------------------------------------------------------ -#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) - #define SOFTWARE_SPI -#elif USE_SOFTWARE_SPI - #define SOFTWARE_SPI -#endif // MEGA_SOFT_SPI -//------------------------------------------------------------------------------ -// SPI pin definitions - do not edit here - change in SdFatConfig.h -// -#if DISABLED(SOFTWARE_SPI) - // hardware pin defs - /** The default chip select pin for the SD card is SS. */ - uint8_t const SD_CHIP_SELECT_PIN = SS_PIN; - // The following three pins must not be redefined for hardware SPI. - /** SPI Master Out Slave In pin */ - uint8_t const SPI_MOSI_PIN = MOSI_PIN; - /** SPI Master In Slave Out pin */ - uint8_t const SPI_MISO_PIN = MISO_PIN; - /** SPI Clock pin */ - uint8_t const SPI_SCK_PIN = SCK_PIN; - -#else // SOFTWARE_SPI - - /** SPI chip select pin */ - uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN; - /** SPI Master Out Slave In pin */ - uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN; - /** SPI Master In Slave Out pin */ - uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN; - /** SPI Clock pin */ - uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN; -#endif // SOFTWARE_SPI -//------------------------------------------------------------------------------ -/** - * \class Sd2Card - * \brief Raw access to SD and SDHC flash memory cards. - */ -class Sd2Card { - public: - /** Construct an instance of Sd2Card. */ - Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0) {} - uint32_t cardSize(); - bool erase(uint32_t firstBlock, uint32_t lastBlock); - bool eraseSingleBlockEnable(); - /** - * Set SD error code. - * \param[in] code value for error code. - */ - void error(uint8_t code) {errorCode_ = code;} - /** - * \return error code for last error. See Sd2Card.h for a list of error codes. - */ - int errorCode() const {return errorCode_;} - /** \return error data for last error. */ - int errorData() const {return status_;} - /** - * Initialize an SD flash memory card with default clock rate and chip - * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). - * - * \return true for success or false for failure. - */ - bool init(uint8_t sckRateID = SPI_FULL_SPEED, - uint8_t chipSelectPin = SD_CHIP_SELECT_PIN); - bool readBlock(uint32_t block, uint8_t* dst); - /** - * Read a card's CID register. The CID contains card identification - * information such as Manufacturer ID, Product name, Product serial - * number and Manufacturing date. - * - * \param[out] cid pointer to area for returned data. - * - * \return true for success or false for failure. - */ - bool readCID(cid_t* cid) { - return readRegister(CMD10, cid); - } - /** - * Read a card's CSD register. The CSD contains Card-Specific Data that - * provides information regarding access to the card's contents. - * - * \param[out] csd pointer to area for returned data. - * - * \return true for success or false for failure. - */ - bool readCSD(csd_t* csd) { - return readRegister(CMD9, csd); - } - bool readData(uint8_t* dst); - bool readStart(uint32_t blockNumber); - bool readStop(); - bool setSckRate(uint8_t sckRateID); - /** Return the card type: SD V1, SD V2 or SDHC - * \return 0 - SD V1, 1 - SD V2, or 3 - SDHC. - */ - int type() const {return type_;} - bool writeBlock(uint32_t blockNumber, const uint8_t* src); - bool writeData(const uint8_t* src); - bool writeStart(uint32_t blockNumber, uint32_t eraseCount); - bool writeStop(); - private: - //---------------------------------------------------------------------------- - uint8_t chipSelectPin_; - uint8_t errorCode_; - uint8_t spiRate_; - uint8_t status_; - uint8_t type_; - // private functions - uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { - cardCommand(CMD55, 0); - return cardCommand(cmd, arg); - } - uint8_t cardCommand(uint8_t cmd, uint32_t arg); - - bool readData(uint8_t* dst, uint16_t count); - bool readRegister(uint8_t cmd, void* buf); - void chipSelectHigh(); - void chipSelectLow(); - void type(uint8_t value) {type_ = value;} - bool waitNotBusy(uint16_t timeoutMillis); - bool writeData(uint8_t token, const uint8_t* src); -}; -#endif // Sd2Card_h - - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ + +#include "Marlin.h" +#if ENABLED(SDSUPPORT) + +#ifndef Sd2Card_h +#define Sd2Card_h +/** + * \file + * \brief Sd2Card class for V2 SD/SDHC cards + */ +#include "SdFatConfig.h" +#include "Sd2PinMap.h" +#include "SdInfo.h" +//------------------------------------------------------------------------------ +// SPI speed is F_CPU/2^(1 + index), 0 <= index <= 6 +/** Set SCK to max rate of F_CPU/2. See Sd2Card::setSckRate(). */ +uint8_t const SPI_FULL_SPEED = 0; +/** Set SCK rate to F_CPU/4. See Sd2Card::setSckRate(). */ +uint8_t const SPI_HALF_SPEED = 1; +/** Set SCK rate to F_CPU/8. See Sd2Card::setSckRate(). */ +uint8_t const SPI_QUARTER_SPEED = 2; +/** Set SCK rate to F_CPU/16. See Sd2Card::setSckRate(). */ +uint8_t const SPI_EIGHTH_SPEED = 3; +/** Set SCK rate to F_CPU/32. See Sd2Card::setSckRate(). */ +uint8_t const SPI_SIXTEENTH_SPEED = 4; +//------------------------------------------------------------------------------ +/** init timeout ms */ +uint16_t const SD_INIT_TIMEOUT = 2000; +/** erase timeout ms */ +uint16_t const SD_ERASE_TIMEOUT = 10000; +/** read timeout ms */ +uint16_t const SD_READ_TIMEOUT = 300; +/** write time out ms */ +uint16_t const SD_WRITE_TIMEOUT = 600; +//------------------------------------------------------------------------------ +// SD card errors +/** timeout error for command CMD0 (initialize card in SPI mode) */ +uint8_t const SD_CARD_ERROR_CMD0 = 0X1; +/** CMD8 was not accepted - not a valid SD card*/ +uint8_t const SD_CARD_ERROR_CMD8 = 0X2; +/** card returned an error response for CMD12 (write stop) */ +uint8_t const SD_CARD_ERROR_CMD12 = 0X3; +/** card returned an error response for CMD17 (read block) */ +uint8_t const SD_CARD_ERROR_CMD17 = 0X4; +/** card returned an error response for CMD18 (read multiple block) */ +uint8_t const SD_CARD_ERROR_CMD18 = 0X5; +/** card returned an error response for CMD24 (write block) */ +uint8_t const SD_CARD_ERROR_CMD24 = 0X6; +/** WRITE_MULTIPLE_BLOCKS command failed */ +uint8_t const SD_CARD_ERROR_CMD25 = 0X7; +/** card returned an error response for CMD58 (read OCR) */ +uint8_t const SD_CARD_ERROR_CMD58 = 0X8; +/** SET_WR_BLK_ERASE_COUNT failed */ +uint8_t const SD_CARD_ERROR_ACMD23 = 0X9; +/** ACMD41 initialization process timeout */ +uint8_t const SD_CARD_ERROR_ACMD41 = 0XA; +/** card returned a bad CSR version field */ +uint8_t const SD_CARD_ERROR_BAD_CSD = 0XB; +/** erase block group command failed */ +uint8_t const SD_CARD_ERROR_ERASE = 0XC; +/** card not capable of single block erase */ +uint8_t const SD_CARD_ERROR_ERASE_SINGLE_BLOCK = 0XD; +/** Erase sequence timed out */ +uint8_t const SD_CARD_ERROR_ERASE_TIMEOUT = 0XE; +/** card returned an error token instead of read data */ +uint8_t const SD_CARD_ERROR_READ = 0XF; +/** read CID or CSD failed */ +uint8_t const SD_CARD_ERROR_READ_REG = 0X10; +/** timeout while waiting for start of read data */ +uint8_t const SD_CARD_ERROR_READ_TIMEOUT = 0X11; +/** card did not accept STOP_TRAN_TOKEN */ +uint8_t const SD_CARD_ERROR_STOP_TRAN = 0X12; +/** card returned an error token as a response to a write operation */ +uint8_t const SD_CARD_ERROR_WRITE = 0X13; +/** attempt to write protected block zero */ +uint8_t const SD_CARD_ERROR_WRITE_BLOCK_ZERO = 0X14; // REMOVE - not used +/** card did not go ready for a multiple block write */ +uint8_t const SD_CARD_ERROR_WRITE_MULTIPLE = 0X15; +/** card returned an error to a CMD13 status check after a write */ +uint8_t const SD_CARD_ERROR_WRITE_PROGRAMMING = 0X16; +/** timeout occurred during write programming */ +uint8_t const SD_CARD_ERROR_WRITE_TIMEOUT = 0X17; +/** incorrect rate selected */ +uint8_t const SD_CARD_ERROR_SCK_RATE = 0X18; +/** init() not called */ +uint8_t const SD_CARD_ERROR_INIT_NOT_CALLED = 0X19; +/** crc check error */ +uint8_t const SD_CARD_ERROR_CRC = 0X20; +//------------------------------------------------------------------------------ +// card types +/** Standard capacity V1 SD card */ +uint8_t const SD_CARD_TYPE_SD1 = 1; +/** Standard capacity V2 SD card */ +uint8_t const SD_CARD_TYPE_SD2 = 2; +/** High Capacity SD card */ +uint8_t const SD_CARD_TYPE_SDHC = 3; +/** + * define SOFTWARE_SPI to use bit-bang SPI + */ +//------------------------------------------------------------------------------ +#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__)) + #define SOFTWARE_SPI +#elif USE_SOFTWARE_SPI + #define SOFTWARE_SPI +#endif // MEGA_SOFT_SPI +//------------------------------------------------------------------------------ +// SPI pin definitions - do not edit here - change in SdFatConfig.h +// +#if DISABLED(SOFTWARE_SPI) + // hardware pin defs + /** The default chip select pin for the SD card is SS. */ + uint8_t const SD_CHIP_SELECT_PIN = SS_PIN; + // The following three pins must not be redefined for hardware SPI. + /** SPI Master Out Slave In pin */ + uint8_t const SPI_MOSI_PIN = MOSI_PIN; + /** SPI Master In Slave Out pin */ + uint8_t const SPI_MISO_PIN = MISO_PIN; + /** SPI Clock pin */ + uint8_t const SPI_SCK_PIN = SCK_PIN; + +#else // SOFTWARE_SPI + + /** SPI chip select pin */ + uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN; + /** SPI Master Out Slave In pin */ + uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN; + /** SPI Master In Slave Out pin */ + uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN; + /** SPI Clock pin */ + uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN; +#endif // SOFTWARE_SPI +//------------------------------------------------------------------------------ +/** + * \class Sd2Card + * \brief Raw access to SD and SDHC flash memory cards. + */ +class Sd2Card { + public: + /** Construct an instance of Sd2Card. */ + Sd2Card() : errorCode_(SD_CARD_ERROR_INIT_NOT_CALLED), type_(0) {} + uint32_t cardSize(); + bool erase(uint32_t firstBlock, uint32_t lastBlock); + bool eraseSingleBlockEnable(); + /** + * Set SD error code. + * \param[in] code value for error code. + */ + void error(uint8_t code) {errorCode_ = code;} + /** + * \return error code for last error. See Sd2Card.h for a list of error codes. + */ + int errorCode() const {return errorCode_;} + /** \return error data for last error. */ + int errorData() const {return status_;} + /** + * Initialize an SD flash memory card with default clock rate and chip + * select pin. See sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin). + * + * \return true for success or false for failure. + */ + bool init(uint8_t sckRateID = SPI_FULL_SPEED, + uint8_t chipSelectPin = SD_CHIP_SELECT_PIN); + bool readBlock(uint32_t block, uint8_t* dst); + /** + * Read a card's CID register. The CID contains card identification + * information such as Manufacturer ID, Product name, Product serial + * number and Manufacturing date. + * + * \param[out] cid pointer to area for returned data. + * + * \return true for success or false for failure. + */ + bool readCID(cid_t* cid) { + return readRegister(CMD10, cid); + } + /** + * Read a card's CSD register. The CSD contains Card-Specific Data that + * provides information regarding access to the card's contents. + * + * \param[out] csd pointer to area for returned data. + * + * \return true for success or false for failure. + */ + bool readCSD(csd_t* csd) { + return readRegister(CMD9, csd); + } + bool readData(uint8_t* dst); + bool readStart(uint32_t blockNumber); + bool readStop(); + bool setSckRate(uint8_t sckRateID); + /** Return the card type: SD V1, SD V2 or SDHC + * \return 0 - SD V1, 1 - SD V2, or 3 - SDHC. + */ + int type() const {return type_;} + bool writeBlock(uint32_t blockNumber, const uint8_t* src); + bool writeData(const uint8_t* src); + bool writeStart(uint32_t blockNumber, uint32_t eraseCount); + bool writeStop(); + private: + //---------------------------------------------------------------------------- + uint8_t chipSelectPin_; + uint8_t errorCode_; + uint8_t spiRate_; + uint8_t status_; + uint8_t type_; + // private functions + uint8_t cardAcmd(uint8_t cmd, uint32_t arg) { + cardCommand(CMD55, 0); + return cardCommand(cmd, arg); + } + uint8_t cardCommand(uint8_t cmd, uint32_t arg); + + bool readData(uint8_t* dst, uint16_t count); + bool readRegister(uint8_t cmd, void* buf); + void chipSelectHigh(); + void chipSelectLow(); + void type(uint8_t value) {type_ = value;} + bool waitNotBusy(uint16_t timeoutMillis); + bool writeData(uint8_t token, const uint8_t* src); +}; +#endif // Sd2Card_h + + +#endif diff --git a/Marlin/Sd2PinMap.h b/Marlin/Sd2PinMap.h index 698e1c224d..7490f3474b 100644 --- a/Marlin/Sd2PinMap.h +++ b/Marlin/Sd2PinMap.h @@ -1,453 +1,453 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino SdFat Library - * Copyright (C) 2010 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -// Warning this file was generated by a program. -#include "Marlin.h" -#include "macros.h" - -#if ENABLED(SDSUPPORT) - -#ifndef Sd2PinMap_h -#define Sd2PinMap_h -#include -//------------------------------------------------------------------------------ -/** struct for mapping digital pins */ -struct pin_map_t { - volatile uint8_t* ddr; - volatile uint8_t* pin; - volatile uint8_t* port; - uint8_t bit; -}; -//------------------------------------------------------------------------------ -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) // Mega - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 20; // D1 -uint8_t const SCL_PIN = 21; // D0 - -#undef MOSI_PIN -#undef MISO_PIN -#undef SCK_PIN -// SPI port -uint8_t const SS_PIN = 53; // B0 -uint8_t const MOSI_PIN = 51; // B2 -uint8_t const MISO_PIN = 50; // B3 -uint8_t const SCK_PIN = 52; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRE, &PINE, &PORTE, 0}, // E0 0 - {&DDRE, &PINE, &PORTE, 1}, // E1 1 - {&DDRE, &PINE, &PORTE, 4}, // E4 2 - {&DDRE, &PINE, &PORTE, 5}, // E5 3 - {&DDRG, &PING, &PORTG, 5}, // G5 4 - {&DDRE, &PINE, &PORTE, 3}, // E3 5 - {&DDRH, &PINH, &PORTH, 3}, // H3 6 - {&DDRH, &PINH, &PORTH, 4}, // H4 7 - {&DDRH, &PINH, &PORTH, 5}, // H5 8 - {&DDRH, &PINH, &PORTH, 6}, // H6 9 - {&DDRB, &PINB, &PORTB, 4}, // B4 10 - {&DDRB, &PINB, &PORTB, 5}, // B5 11 - {&DDRB, &PINB, &PORTB, 6}, // B6 12 - {&DDRB, &PINB, &PORTB, 7}, // B7 13 - {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 - {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 - {&DDRH, &PINH, &PORTH, 1}, // H1 16 - {&DDRH, &PINH, &PORTH, 0}, // H0 17 - {&DDRD, &PIND, &PORTD, 3}, // D3 18 - {&DDRD, &PIND, &PORTD, 2}, // D2 19 - {&DDRD, &PIND, &PORTD, 1}, // D1 20 - {&DDRD, &PIND, &PORTD, 0}, // D0 21 - {&DDRA, &PINA, &PORTA, 0}, // A0 22 - {&DDRA, &PINA, &PORTA, 1}, // A1 23 - {&DDRA, &PINA, &PORTA, 2}, // A2 24 - {&DDRA, &PINA, &PORTA, 3}, // A3 25 - {&DDRA, &PINA, &PORTA, 4}, // A4 26 - {&DDRA, &PINA, &PORTA, 5}, // A5 27 - {&DDRA, &PINA, &PORTA, 6}, // A6 28 - {&DDRA, &PINA, &PORTA, 7}, // A7 29 - {&DDRC, &PINC, &PORTC, 7}, // C7 30 - {&DDRC, &PINC, &PORTC, 6}, // C6 31 - {&DDRC, &PINC, &PORTC, 5}, // C5 32 - {&DDRC, &PINC, &PORTC, 4}, // C4 33 - {&DDRC, &PINC, &PORTC, 3}, // C3 34 - {&DDRC, &PINC, &PORTC, 2}, // C2 35 - {&DDRC, &PINC, &PORTC, 1}, // C1 36 - {&DDRC, &PINC, &PORTC, 0}, // C0 37 - {&DDRD, &PIND, &PORTD, 7}, // D7 38 - {&DDRG, &PING, &PORTG, 2}, // G2 39 - {&DDRG, &PING, &PORTG, 1}, // G1 40 - {&DDRG, &PING, &PORTG, 0}, // G0 41 - {&DDRL, &PINL, &PORTL, 7}, // L7 42 - {&DDRL, &PINL, &PORTL, 6}, // L6 43 - {&DDRL, &PINL, &PORTL, 5}, // L5 44 - {&DDRL, &PINL, &PORTL, 4}, // L4 45 - {&DDRL, &PINL, &PORTL, 3}, // L3 46 - {&DDRL, &PINL, &PORTL, 2}, // L2 47 - {&DDRL, &PINL, &PORTL, 1}, // L1 48 - {&DDRL, &PINL, &PORTL, 0}, // L0 49 - {&DDRB, &PINB, &PORTB, 3}, // B3 50 - {&DDRB, &PINB, &PORTB, 2}, // B2 51 - {&DDRB, &PINB, &PORTB, 1}, // B1 52 - {&DDRB, &PINB, &PORTB, 0}, // B0 53 - {&DDRF, &PINF, &PORTF, 0}, // F0 54 - {&DDRF, &PINF, &PORTF, 1}, // F1 55 - {&DDRF, &PINF, &PORTF, 2}, // F2 56 - {&DDRF, &PINF, &PORTF, 3}, // F3 57 - {&DDRF, &PINF, &PORTF, 4}, // F4 58 - {&DDRF, &PINF, &PORTF, 5}, // F5 59 - {&DDRF, &PINF, &PORTF, 6}, // F6 60 - {&DDRF, &PINF, &PORTF, 7}, // F7 61 - {&DDRK, &PINK, &PORTK, 0}, // K0 62 - {&DDRK, &PINK, &PORTK, 1}, // K1 63 - {&DDRK, &PINK, &PORTK, 2}, // K2 64 - {&DDRK, &PINK, &PORTK, 3}, // K3 65 - {&DDRK, &PINK, &PORTK, 4}, // K4 66 - {&DDRK, &PINK, &PORTK, 5}, // K5 67 - {&DDRK, &PINK, &PORTK, 6}, // K6 68 - {&DDRK, &PINK, &PORTK, 7} // K7 69 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega644P__)\ -|| defined(__AVR_ATmega644__)\ -|| defined(__AVR_ATmega1284P__) -// Sanguino - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 17; // C1 -uint8_t const SCL_PIN = 18; // C2 - -// SPI port -uint8_t const SS_PIN = 4; // B4 -uint8_t const MOSI_PIN = 5; // B5 -uint8_t const MISO_PIN = 6; // B6 -uint8_t const SCK_PIN = 7; // B7 - -static const pin_map_t digitalPinMap[] = { - {&DDRB, &PINB, &PORTB, 0}, // B0 0 - {&DDRB, &PINB, &PORTB, 1}, // B1 1 - {&DDRB, &PINB, &PORTB, 2}, // B2 2 - {&DDRB, &PINB, &PORTB, 3}, // B3 3 - {&DDRB, &PINB, &PORTB, 4}, // B4 4 - {&DDRB, &PINB, &PORTB, 5}, // B5 5 - {&DDRB, &PINB, &PORTB, 6}, // B6 6 - {&DDRB, &PINB, &PORTB, 7}, // B7 7 - {&DDRD, &PIND, &PORTD, 0}, // D0 8 - {&DDRD, &PIND, &PORTD, 1}, // D1 9 - {&DDRD, &PIND, &PORTD, 2}, // D2 10 - {&DDRD, &PIND, &PORTD, 3}, // D3 11 - {&DDRD, &PIND, &PORTD, 4}, // D4 12 - {&DDRD, &PIND, &PORTD, 5}, // D5 13 - {&DDRD, &PIND, &PORTD, 6}, // D6 14 - {&DDRD, &PIND, &PORTD, 7}, // D7 15 - {&DDRC, &PINC, &PORTC, 0}, // C0 16 - {&DDRC, &PINC, &PORTC, 1}, // C1 17 - {&DDRC, &PINC, &PORTC, 2}, // C2 18 - {&DDRC, &PINC, &PORTC, 3}, // C3 19 - {&DDRC, &PINC, &PORTC, 4}, // C4 20 - {&DDRC, &PINC, &PORTC, 5}, // C5 21 - {&DDRC, &PINC, &PORTC, 6}, // C6 22 - {&DDRC, &PINC, &PORTC, 7}, // C7 23 - {&DDRA, &PINA, &PORTA, 7}, // A7 24 - {&DDRA, &PINA, &PORTA, 6}, // A6 25 - {&DDRA, &PINA, &PORTA, 5}, // A5 26 - {&DDRA, &PINA, &PORTA, 4}, // A4 27 - {&DDRA, &PINA, &PORTA, 3}, // A3 28 - {&DDRA, &PINA, &PORTA, 2}, // A2 29 - {&DDRA, &PINA, &PORTA, 1}, // A1 30 - {&DDRA, &PINA, &PORTA, 0} // A0 31 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega32U4__) -// Teensy 2.0 - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 6; // D1 -uint8_t const SCL_PIN = 5; // D0 - -// SPI port -uint8_t const SS_PIN = 0; // B0 -uint8_t const MOSI_PIN = 2; // B2 -uint8_t const MISO_PIN = 3; // B3 -uint8_t const SCK_PIN = 1; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRB, &PINB, &PORTB, 0}, // B0 0 - {&DDRB, &PINB, &PORTB, 1}, // B1 1 - {&DDRB, &PINB, &PORTB, 2}, // B2 2 - {&DDRB, &PINB, &PORTB, 3}, // B3 3 - {&DDRB, &PINB, &PORTB, 7}, // B7 4 - {&DDRD, &PIND, &PORTD, 0}, // D0 5 - {&DDRD, &PIND, &PORTD, 1}, // D1 6 - {&DDRD, &PIND, &PORTD, 2}, // D2 7 - {&DDRD, &PIND, &PORTD, 3}, // D3 8 - {&DDRC, &PINC, &PORTC, 6}, // C6 9 - {&DDRC, &PINC, &PORTC, 7}, // C7 10 - {&DDRD, &PIND, &PORTD, 6}, // D6 11 - {&DDRD, &PIND, &PORTD, 7}, // D7 12 - {&DDRB, &PINB, &PORTB, 4}, // B4 13 - {&DDRB, &PINB, &PORTB, 5}, // B5 14 - {&DDRB, &PINB, &PORTB, 6}, // B6 15 - {&DDRF, &PINF, &PORTF, 7}, // F7 16 - {&DDRF, &PINF, &PORTF, 6}, // F6 17 - {&DDRF, &PINF, &PORTF, 5}, // F5 18 - {&DDRF, &PINF, &PORTF, 4}, // F4 19 - {&DDRF, &PINF, &PORTF, 1}, // F1 20 - {&DDRF, &PINF, &PORTF, 0}, // F0 21 - {&DDRD, &PIND, &PORTD, 4}, // D4 22 - {&DDRD, &PIND, &PORTD, 5}, // D5 23 - {&DDRE, &PINE, &PORTE, 6} // E6 24 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_AT90USB646__)\ -|| defined(__AVR_AT90USB1286__) -// Teensy++ 1.0 & 2.0 - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 1; // D1 -uint8_t const SCL_PIN = 0; // D0 - -// SPI port -uint8_t const SS_PIN = 20; // B0 -uint8_t const MOSI_PIN = 22; // B2 -uint8_t const MISO_PIN = 23; // B3 -uint8_t const SCK_PIN = 21; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRD, &PIND, &PORTD, 0}, // D0 0 - {&DDRD, &PIND, &PORTD, 1}, // D1 1 - {&DDRD, &PIND, &PORTD, 2}, // D2 2 - {&DDRD, &PIND, &PORTD, 3}, // D3 3 - {&DDRD, &PIND, &PORTD, 4}, // D4 4 - {&DDRD, &PIND, &PORTD, 5}, // D5 5 - {&DDRD, &PIND, &PORTD, 6}, // D6 6 - {&DDRD, &PIND, &PORTD, 7}, // D7 7 - {&DDRE, &PINE, &PORTE, 0}, // E0 8 - {&DDRE, &PINE, &PORTE, 1}, // E1 9 - {&DDRC, &PINC, &PORTC, 0}, // C0 10 - {&DDRC, &PINC, &PORTC, 1}, // C1 11 - {&DDRC, &PINC, &PORTC, 2}, // C2 12 - {&DDRC, &PINC, &PORTC, 3}, // C3 13 - {&DDRC, &PINC, &PORTC, 4}, // C4 14 - {&DDRC, &PINC, &PORTC, 5}, // C5 15 - {&DDRC, &PINC, &PORTC, 6}, // C6 16 - {&DDRC, &PINC, &PORTC, 7}, // C7 17 - {&DDRE, &PINE, &PORTE, 6}, // E6 18 - {&DDRE, &PINE, &PORTE, 7}, // E7 19 - {&DDRB, &PINB, &PORTB, 0}, // B0 20 - {&DDRB, &PINB, &PORTB, 1}, // B1 21 - {&DDRB, &PINB, &PORTB, 2}, // B2 22 - {&DDRB, &PINB, &PORTB, 3}, // B3 23 - {&DDRB, &PINB, &PORTB, 4}, // B4 24 - {&DDRB, &PINB, &PORTB, 5}, // B5 25 - {&DDRB, &PINB, &PORTB, 6}, // B6 26 - {&DDRB, &PINB, &PORTB, 7}, // B7 27 - {&DDRA, &PINA, &PORTA, 0}, // A0 28 - {&DDRA, &PINA, &PORTA, 1}, // A1 29 - {&DDRA, &PINA, &PORTA, 2}, // A2 30 - {&DDRA, &PINA, &PORTA, 3}, // A3 31 - {&DDRA, &PINA, &PORTA, 4}, // A4 32 - {&DDRA, &PINA, &PORTA, 5}, // A5 33 - {&DDRA, &PINA, &PORTA, 6}, // A6 34 - {&DDRA, &PINA, &PORTA, 7}, // A7 35 - {&DDRE, &PINE, &PORTE, 4}, // E4 36 - {&DDRE, &PINE, &PORTE, 5}, // E5 37 - {&DDRF, &PINF, &PORTF, 0}, // F0 38 - {&DDRF, &PINF, &PORTF, 1}, // F1 39 - {&DDRF, &PINF, &PORTF, 2}, // F2 40 - {&DDRF, &PINF, &PORTF, 3}, // F3 41 - {&DDRF, &PINF, &PORTF, 4}, // F4 42 - {&DDRF, &PINF, &PORTF, 5}, // F5 43 - {&DDRF, &PINF, &PORTF, 6}, // F6 44 - {&DDRF, &PINF, &PORTF, 7} // F7 45 -}; -//------------------------------------------------------------------------------ -#elif defined(__AVR_ATmega168__)\ -||defined(__AVR_ATmega168P__)\ -||defined(__AVR_ATmega328P__) -// 168 and 328 Arduinos - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 18; // C4 -uint8_t const SCL_PIN = 19; // C5 - -// SPI port -uint8_t const SS_PIN = 10; // B2 -uint8_t const MOSI_PIN = 11; // B3 -uint8_t const MISO_PIN = 12; // B4 -uint8_t const SCK_PIN = 13; // B5 - -static const pin_map_t digitalPinMap[] = { - {&DDRD, &PIND, &PORTD, 0}, // D0 0 - {&DDRD, &PIND, &PORTD, 1}, // D1 1 - {&DDRD, &PIND, &PORTD, 2}, // D2 2 - {&DDRD, &PIND, &PORTD, 3}, // D3 3 - {&DDRD, &PIND, &PORTD, 4}, // D4 4 - {&DDRD, &PIND, &PORTD, 5}, // D5 5 - {&DDRD, &PIND, &PORTD, 6}, // D6 6 - {&DDRD, &PIND, &PORTD, 7}, // D7 7 - {&DDRB, &PINB, &PORTB, 0}, // B0 8 - {&DDRB, &PINB, &PORTB, 1}, // B1 9 - {&DDRB, &PINB, &PORTB, 2}, // B2 10 - {&DDRB, &PINB, &PORTB, 3}, // B3 11 - {&DDRB, &PINB, &PORTB, 4}, // B4 12 - {&DDRB, &PINB, &PORTB, 5}, // B5 13 - {&DDRC, &PINC, &PORTC, 0}, // C0 14 - {&DDRC, &PINC, &PORTC, 1}, // C1 15 - {&DDRC, &PINC, &PORTC, 2}, // C2 16 - {&DDRC, &PINC, &PORTC, 3}, // C3 17 - {&DDRC, &PINC, &PORTC, 4}, // C4 18 - {&DDRC, &PINC, &PORTC, 5} // C5 19 -}; -#elif defined(__AVR_ATmega1281__) -// Waspmote - -// Two Wire (aka I2C) ports -uint8_t const SDA_PIN = 41; -uint8_t const SCL_PIN = 40; - - -#undef MOSI_PIN -#undef MISO_PIN -// SPI port -uint8_t const SS_PIN = 16; // B0 -uint8_t const MOSI_PIN = 11; // B2 -uint8_t const MISO_PIN = 12; // B3 -uint8_t const SCK_PIN = 10; // B1 - -static const pin_map_t digitalPinMap[] = { - {&DDRE, &PINE, &PORTE, 0}, // E0 0 - {&DDRE, &PINE, &PORTE, 1}, // E1 1 - {&DDRE, &PINE, &PORTE, 3}, // E3 2 - {&DDRE, &PINE, &PORTE, 4}, // E4 3 - {&DDRC, &PINC, &PORTC, 4}, // C4 4 - {&DDRC, &PINC, &PORTC, 5}, // C5 5 - {&DDRC, &PINC, &PORTC, 6}, // C6 6 - {&DDRC, &PINC, &PORTC, 7}, // C7 7 - {&DDRA, &PINA, &PORTA, 2}, // A2 8 - {&DDRA, &PINA, &PORTA, 3}, // A3 9 - {&DDRA, &PINA, &PORTA, 4}, // A4 10 - {&DDRD, &PIND, &PORTD, 5}, // D5 11 - {&DDRD, &PIND, &PORTD, 6}, // D6 12 - {&DDRC, &PINC, &PORTC, 1}, // C1 13 - {&DDRF, &PINF, &PORTF, 1}, // F1 14 - {&DDRF, &PINF, &PORTF, 2}, // F2 15 - {&DDRF, &PINF, &PORTF, 3}, // F3 16 - {&DDRF, &PINF, &PORTF, 4}, // F4 17 - {&DDRF, &PINF, &PORTF, 5}, // F5 18 - {&DDRF, &PINF, &PORTF, 6}, // F6 19 - {&DDRF, &PINF, &PORTF, 7}, // F7 20 - {&DDRF, &PINF, &PORTF, 0}, // F0 21 - {&DDRA, &PINA, &PORTA, 1}, // A1 22 - {&DDRD, &PIND, &PORTD, 7}, // D7 23 - {&DDRE, &PINE, &PORTE, 5}, // E5 24 - {&DDRA, &PINA, &PORTA, 6}, // A6 25 - {&DDRE, &PINE, &PORTE, 2}, // E2 26 - {&DDRA, &PINA, &PORTA, 5}, // A5 27 - {&DDRC, &PINC, &PORTC, 0}, // C0 28 - {&DDRB, &PINB, &PORTB, 0}, // B0 29 - {&DDRB, &PINB, &PORTB, 1}, // B1 30 - {&DDRB, &PINB, &PORTB, 2}, // B2 31 - {&DDRB, &PINB, &PORTB, 3}, // B3 32 - {&DDRB, &PINB, &PORTB, 4}, // B4 33 - {&DDRB, &PINB, &PORTB, 5}, // B5 34 - {&DDRA, &PINA, &PORTA, 0}, // A0 35 - {&DDRB, &PINB, &PORTB, 6}, // B6 36 - {&DDRB, &PINB, &PORTB, 7}, // B7 37 - {&DDRE, &PINE, &PORTE, 6}, // E6 38 - {&DDRE, &PINE, &PORTE, 7}, // E7 39 - {&DDRD, &PIND, &PORTD, 0}, // D0 40 - {&DDRD, &PIND, &PORTD, 1}, // D1 41 - {&DDRC, &PINC, &PORTC, 3}, // C3 42 - {&DDRD, &PIND, &PORTD, 2}, // D2 43 - {&DDRD, &PIND, &PORTD, 3}, // D3 44 - {&DDRA, &PINA, &PORTA, 7}, // A7 45 - {&DDRC, &PINC, &PORTC, 2}, // C2 46 - {&DDRD, &PIND, &PORTD, 4}, // D4 47 - {&DDRG, &PING, &PORTG, 2}, // G2 48 - {&DDRG, &PING, &PORTG, 1}, // G1 49 - {&DDRG, &PING, &PORTG, 0}, // G0 50 -}; -#else // defined(__AVR_ATmega1280__) -#error unknown chip -#endif // defined(__AVR_ATmega1280__) -//------------------------------------------------------------------------------ -static const uint8_t digitalPinCount = COUNT(digitalPinMap); - -uint8_t badPinNumber(void) - __attribute__((error("Pin number is too large or not a constant"))); - -static inline __attribute__((always_inline)) - bool getPinMode(uint8_t pin) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; - } - else { - return badPinNumber(); - } -} -static inline __attribute__((always_inline)) - void setPinMode(uint8_t pin, uint8_t mode) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - if (mode) { - SBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit); - } - else { - CBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit); - } - } - else { - badPinNumber(); - } -} -static inline __attribute__((always_inline)) - bool fastDigitalRead(uint8_t pin) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; - } - else { - return badPinNumber(); - } -} -static inline __attribute__((always_inline)) - void fastDigitalWrite(uint8_t pin, uint8_t value) { - if (__builtin_constant_p(pin) && pin < digitalPinCount) { - if (value) { - SBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit); - } - else { - CBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit); - } - } - else { - badPinNumber(); - } -} -#endif // Sd2PinMap_h - - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino SdFat Library + * Copyright (C) 2010 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +// Warning this file was generated by a program. +#include "Marlin.h" +#include "macros.h" + +#if ENABLED(SDSUPPORT) + +#ifndef Sd2PinMap_h +#define Sd2PinMap_h +#include +//------------------------------------------------------------------------------ +/** struct for mapping digital pins */ +struct pin_map_t { + volatile uint8_t* ddr; + volatile uint8_t* pin; + volatile uint8_t* port; + uint8_t bit; +}; +//------------------------------------------------------------------------------ +#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) // Mega + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 20; // D1 +uint8_t const SCL_PIN = 21; // D0 + +#undef MOSI_PIN +#undef MISO_PIN +#undef SCK_PIN +// SPI port +uint8_t const SS_PIN = 53; // B0 +uint8_t const MOSI_PIN = 51; // B2 +uint8_t const MISO_PIN = 50; // B3 +uint8_t const SCK_PIN = 52; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRE, &PINE, &PORTE, 0}, // E0 0 + {&DDRE, &PINE, &PORTE, 1}, // E1 1 + {&DDRE, &PINE, &PORTE, 4}, // E4 2 + {&DDRE, &PINE, &PORTE, 5}, // E5 3 + {&DDRG, &PING, &PORTG, 5}, // G5 4 + {&DDRE, &PINE, &PORTE, 3}, // E3 5 + {&DDRH, &PINH, &PORTH, 3}, // H3 6 + {&DDRH, &PINH, &PORTH, 4}, // H4 7 + {&DDRH, &PINH, &PORTH, 5}, // H5 8 + {&DDRH, &PINH, &PORTH, 6}, // H6 9 + {&DDRB, &PINB, &PORTB, 4}, // B4 10 + {&DDRB, &PINB, &PORTB, 5}, // B5 11 + {&DDRB, &PINB, &PORTB, 6}, // B6 12 + {&DDRB, &PINB, &PORTB, 7}, // B7 13 + {&DDRJ, &PINJ, &PORTJ, 1}, // J1 14 + {&DDRJ, &PINJ, &PORTJ, 0}, // J0 15 + {&DDRH, &PINH, &PORTH, 1}, // H1 16 + {&DDRH, &PINH, &PORTH, 0}, // H0 17 + {&DDRD, &PIND, &PORTD, 3}, // D3 18 + {&DDRD, &PIND, &PORTD, 2}, // D2 19 + {&DDRD, &PIND, &PORTD, 1}, // D1 20 + {&DDRD, &PIND, &PORTD, 0}, // D0 21 + {&DDRA, &PINA, &PORTA, 0}, // A0 22 + {&DDRA, &PINA, &PORTA, 1}, // A1 23 + {&DDRA, &PINA, &PORTA, 2}, // A2 24 + {&DDRA, &PINA, &PORTA, 3}, // A3 25 + {&DDRA, &PINA, &PORTA, 4}, // A4 26 + {&DDRA, &PINA, &PORTA, 5}, // A5 27 + {&DDRA, &PINA, &PORTA, 6}, // A6 28 + {&DDRA, &PINA, &PORTA, 7}, // A7 29 + {&DDRC, &PINC, &PORTC, 7}, // C7 30 + {&DDRC, &PINC, &PORTC, 6}, // C6 31 + {&DDRC, &PINC, &PORTC, 5}, // C5 32 + {&DDRC, &PINC, &PORTC, 4}, // C4 33 + {&DDRC, &PINC, &PORTC, 3}, // C3 34 + {&DDRC, &PINC, &PORTC, 2}, // C2 35 + {&DDRC, &PINC, &PORTC, 1}, // C1 36 + {&DDRC, &PINC, &PORTC, 0}, // C0 37 + {&DDRD, &PIND, &PORTD, 7}, // D7 38 + {&DDRG, &PING, &PORTG, 2}, // G2 39 + {&DDRG, &PING, &PORTG, 1}, // G1 40 + {&DDRG, &PING, &PORTG, 0}, // G0 41 + {&DDRL, &PINL, &PORTL, 7}, // L7 42 + {&DDRL, &PINL, &PORTL, 6}, // L6 43 + {&DDRL, &PINL, &PORTL, 5}, // L5 44 + {&DDRL, &PINL, &PORTL, 4}, // L4 45 + {&DDRL, &PINL, &PORTL, 3}, // L3 46 + {&DDRL, &PINL, &PORTL, 2}, // L2 47 + {&DDRL, &PINL, &PORTL, 1}, // L1 48 + {&DDRL, &PINL, &PORTL, 0}, // L0 49 + {&DDRB, &PINB, &PORTB, 3}, // B3 50 + {&DDRB, &PINB, &PORTB, 2}, // B2 51 + {&DDRB, &PINB, &PORTB, 1}, // B1 52 + {&DDRB, &PINB, &PORTB, 0}, // B0 53 + {&DDRF, &PINF, &PORTF, 0}, // F0 54 + {&DDRF, &PINF, &PORTF, 1}, // F1 55 + {&DDRF, &PINF, &PORTF, 2}, // F2 56 + {&DDRF, &PINF, &PORTF, 3}, // F3 57 + {&DDRF, &PINF, &PORTF, 4}, // F4 58 + {&DDRF, &PINF, &PORTF, 5}, // F5 59 + {&DDRF, &PINF, &PORTF, 6}, // F6 60 + {&DDRF, &PINF, &PORTF, 7}, // F7 61 + {&DDRK, &PINK, &PORTK, 0}, // K0 62 + {&DDRK, &PINK, &PORTK, 1}, // K1 63 + {&DDRK, &PINK, &PORTK, 2}, // K2 64 + {&DDRK, &PINK, &PORTK, 3}, // K3 65 + {&DDRK, &PINK, &PORTK, 4}, // K4 66 + {&DDRK, &PINK, &PORTK, 5}, // K5 67 + {&DDRK, &PINK, &PORTK, 6}, // K6 68 + {&DDRK, &PINK, &PORTK, 7} // K7 69 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega644P__)\ +|| defined(__AVR_ATmega644__)\ +|| defined(__AVR_ATmega1284P__) +// Sanguino + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 17; // C1 +uint8_t const SCL_PIN = 18; // C2 + +// SPI port +uint8_t const SS_PIN = 4; // B4 +uint8_t const MOSI_PIN = 5; // B5 +uint8_t const MISO_PIN = 6; // B6 +uint8_t const SCK_PIN = 7; // B7 + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 4}, // B4 4 + {&DDRB, &PINB, &PORTB, 5}, // B5 5 + {&DDRB, &PINB, &PORTB, 6}, // B6 6 + {&DDRB, &PINB, &PORTB, 7}, // B7 7 + {&DDRD, &PIND, &PORTD, 0}, // D0 8 + {&DDRD, &PIND, &PORTD, 1}, // D1 9 + {&DDRD, &PIND, &PORTD, 2}, // D2 10 + {&DDRD, &PIND, &PORTD, 3}, // D3 11 + {&DDRD, &PIND, &PORTD, 4}, // D4 12 + {&DDRD, &PIND, &PORTD, 5}, // D5 13 + {&DDRD, &PIND, &PORTD, 6}, // D6 14 + {&DDRD, &PIND, &PORTD, 7}, // D7 15 + {&DDRC, &PINC, &PORTC, 0}, // C0 16 + {&DDRC, &PINC, &PORTC, 1}, // C1 17 + {&DDRC, &PINC, &PORTC, 2}, // C2 18 + {&DDRC, &PINC, &PORTC, 3}, // C3 19 + {&DDRC, &PINC, &PORTC, 4}, // C4 20 + {&DDRC, &PINC, &PORTC, 5}, // C5 21 + {&DDRC, &PINC, &PORTC, 6}, // C6 22 + {&DDRC, &PINC, &PORTC, 7}, // C7 23 + {&DDRA, &PINA, &PORTA, 7}, // A7 24 + {&DDRA, &PINA, &PORTA, 6}, // A6 25 + {&DDRA, &PINA, &PORTA, 5}, // A5 26 + {&DDRA, &PINA, &PORTA, 4}, // A4 27 + {&DDRA, &PINA, &PORTA, 3}, // A3 28 + {&DDRA, &PINA, &PORTA, 2}, // A2 29 + {&DDRA, &PINA, &PORTA, 1}, // A1 30 + {&DDRA, &PINA, &PORTA, 0} // A0 31 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega32U4__) +// Teensy 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 6; // D1 +uint8_t const SCL_PIN = 5; // D0 + +// SPI port +uint8_t const SS_PIN = 0; // B0 +uint8_t const MOSI_PIN = 2; // B2 +uint8_t const MISO_PIN = 3; // B3 +uint8_t const SCK_PIN = 1; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRB, &PINB, &PORTB, 0}, // B0 0 + {&DDRB, &PINB, &PORTB, 1}, // B1 1 + {&DDRB, &PINB, &PORTB, 2}, // B2 2 + {&DDRB, &PINB, &PORTB, 3}, // B3 3 + {&DDRB, &PINB, &PORTB, 7}, // B7 4 + {&DDRD, &PIND, &PORTD, 0}, // D0 5 + {&DDRD, &PIND, &PORTD, 1}, // D1 6 + {&DDRD, &PIND, &PORTD, 2}, // D2 7 + {&DDRD, &PIND, &PORTD, 3}, // D3 8 + {&DDRC, &PINC, &PORTC, 6}, // C6 9 + {&DDRC, &PINC, &PORTC, 7}, // C7 10 + {&DDRD, &PIND, &PORTD, 6}, // D6 11 + {&DDRD, &PIND, &PORTD, 7}, // D7 12 + {&DDRB, &PINB, &PORTB, 4}, // B4 13 + {&DDRB, &PINB, &PORTB, 5}, // B5 14 + {&DDRB, &PINB, &PORTB, 6}, // B6 15 + {&DDRF, &PINF, &PORTF, 7}, // F7 16 + {&DDRF, &PINF, &PORTF, 6}, // F6 17 + {&DDRF, &PINF, &PORTF, 5}, // F5 18 + {&DDRF, &PINF, &PORTF, 4}, // F4 19 + {&DDRF, &PINF, &PORTF, 1}, // F1 20 + {&DDRF, &PINF, &PORTF, 0}, // F0 21 + {&DDRD, &PIND, &PORTD, 4}, // D4 22 + {&DDRD, &PIND, &PORTD, 5}, // D5 23 + {&DDRE, &PINE, &PORTE, 6} // E6 24 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_AT90USB646__)\ +|| defined(__AVR_AT90USB1286__) +// Teensy++ 1.0 & 2.0 + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 1; // D1 +uint8_t const SCL_PIN = 0; // D0 + +// SPI port +uint8_t const SS_PIN = 20; // B0 +uint8_t const MOSI_PIN = 22; // B2 +uint8_t const MISO_PIN = 23; // B3 +uint8_t const SCK_PIN = 21; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRE, &PINE, &PORTE, 0}, // E0 8 + {&DDRE, &PINE, &PORTE, 1}, // E1 9 + {&DDRC, &PINC, &PORTC, 0}, // C0 10 + {&DDRC, &PINC, &PORTC, 1}, // C1 11 + {&DDRC, &PINC, &PORTC, 2}, // C2 12 + {&DDRC, &PINC, &PORTC, 3}, // C3 13 + {&DDRC, &PINC, &PORTC, 4}, // C4 14 + {&DDRC, &PINC, &PORTC, 5}, // C5 15 + {&DDRC, &PINC, &PORTC, 6}, // C6 16 + {&DDRC, &PINC, &PORTC, 7}, // C7 17 + {&DDRE, &PINE, &PORTE, 6}, // E6 18 + {&DDRE, &PINE, &PORTE, 7}, // E7 19 + {&DDRB, &PINB, &PORTB, 0}, // B0 20 + {&DDRB, &PINB, &PORTB, 1}, // B1 21 + {&DDRB, &PINB, &PORTB, 2}, // B2 22 + {&DDRB, &PINB, &PORTB, 3}, // B3 23 + {&DDRB, &PINB, &PORTB, 4}, // B4 24 + {&DDRB, &PINB, &PORTB, 5}, // B5 25 + {&DDRB, &PINB, &PORTB, 6}, // B6 26 + {&DDRB, &PINB, &PORTB, 7}, // B7 27 + {&DDRA, &PINA, &PORTA, 0}, // A0 28 + {&DDRA, &PINA, &PORTA, 1}, // A1 29 + {&DDRA, &PINA, &PORTA, 2}, // A2 30 + {&DDRA, &PINA, &PORTA, 3}, // A3 31 + {&DDRA, &PINA, &PORTA, 4}, // A4 32 + {&DDRA, &PINA, &PORTA, 5}, // A5 33 + {&DDRA, &PINA, &PORTA, 6}, // A6 34 + {&DDRA, &PINA, &PORTA, 7}, // A7 35 + {&DDRE, &PINE, &PORTE, 4}, // E4 36 + {&DDRE, &PINE, &PORTE, 5}, // E5 37 + {&DDRF, &PINF, &PORTF, 0}, // F0 38 + {&DDRF, &PINF, &PORTF, 1}, // F1 39 + {&DDRF, &PINF, &PORTF, 2}, // F2 40 + {&DDRF, &PINF, &PORTF, 3}, // F3 41 + {&DDRF, &PINF, &PORTF, 4}, // F4 42 + {&DDRF, &PINF, &PORTF, 5}, // F5 43 + {&DDRF, &PINF, &PORTF, 6}, // F6 44 + {&DDRF, &PINF, &PORTF, 7} // F7 45 +}; +//------------------------------------------------------------------------------ +#elif defined(__AVR_ATmega168__)\ +||defined(__AVR_ATmega168P__)\ +||defined(__AVR_ATmega328P__) +// 168 and 328 Arduinos + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 18; // C4 +uint8_t const SCL_PIN = 19; // C5 + +// SPI port +uint8_t const SS_PIN = 10; // B2 +uint8_t const MOSI_PIN = 11; // B3 +uint8_t const MISO_PIN = 12; // B4 +uint8_t const SCK_PIN = 13; // B5 + +static const pin_map_t digitalPinMap[] = { + {&DDRD, &PIND, &PORTD, 0}, // D0 0 + {&DDRD, &PIND, &PORTD, 1}, // D1 1 + {&DDRD, &PIND, &PORTD, 2}, // D2 2 + {&DDRD, &PIND, &PORTD, 3}, // D3 3 + {&DDRD, &PIND, &PORTD, 4}, // D4 4 + {&DDRD, &PIND, &PORTD, 5}, // D5 5 + {&DDRD, &PIND, &PORTD, 6}, // D6 6 + {&DDRD, &PIND, &PORTD, 7}, // D7 7 + {&DDRB, &PINB, &PORTB, 0}, // B0 8 + {&DDRB, &PINB, &PORTB, 1}, // B1 9 + {&DDRB, &PINB, &PORTB, 2}, // B2 10 + {&DDRB, &PINB, &PORTB, 3}, // B3 11 + {&DDRB, &PINB, &PORTB, 4}, // B4 12 + {&DDRB, &PINB, &PORTB, 5}, // B5 13 + {&DDRC, &PINC, &PORTC, 0}, // C0 14 + {&DDRC, &PINC, &PORTC, 1}, // C1 15 + {&DDRC, &PINC, &PORTC, 2}, // C2 16 + {&DDRC, &PINC, &PORTC, 3}, // C3 17 + {&DDRC, &PINC, &PORTC, 4}, // C4 18 + {&DDRC, &PINC, &PORTC, 5} // C5 19 +}; +#elif defined(__AVR_ATmega1281__) +// Waspmote + +// Two Wire (aka I2C) ports +uint8_t const SDA_PIN = 41; +uint8_t const SCL_PIN = 40; + + +#undef MOSI_PIN +#undef MISO_PIN +// SPI port +uint8_t const SS_PIN = 16; // B0 +uint8_t const MOSI_PIN = 11; // B2 +uint8_t const MISO_PIN = 12; // B3 +uint8_t const SCK_PIN = 10; // B1 + +static const pin_map_t digitalPinMap[] = { + {&DDRE, &PINE, &PORTE, 0}, // E0 0 + {&DDRE, &PINE, &PORTE, 1}, // E1 1 + {&DDRE, &PINE, &PORTE, 3}, // E3 2 + {&DDRE, &PINE, &PORTE, 4}, // E4 3 + {&DDRC, &PINC, &PORTC, 4}, // C4 4 + {&DDRC, &PINC, &PORTC, 5}, // C5 5 + {&DDRC, &PINC, &PORTC, 6}, // C6 6 + {&DDRC, &PINC, &PORTC, 7}, // C7 7 + {&DDRA, &PINA, &PORTA, 2}, // A2 8 + {&DDRA, &PINA, &PORTA, 3}, // A3 9 + {&DDRA, &PINA, &PORTA, 4}, // A4 10 + {&DDRD, &PIND, &PORTD, 5}, // D5 11 + {&DDRD, &PIND, &PORTD, 6}, // D6 12 + {&DDRC, &PINC, &PORTC, 1}, // C1 13 + {&DDRF, &PINF, &PORTF, 1}, // F1 14 + {&DDRF, &PINF, &PORTF, 2}, // F2 15 + {&DDRF, &PINF, &PORTF, 3}, // F3 16 + {&DDRF, &PINF, &PORTF, 4}, // F4 17 + {&DDRF, &PINF, &PORTF, 5}, // F5 18 + {&DDRF, &PINF, &PORTF, 6}, // F6 19 + {&DDRF, &PINF, &PORTF, 7}, // F7 20 + {&DDRF, &PINF, &PORTF, 0}, // F0 21 + {&DDRA, &PINA, &PORTA, 1}, // A1 22 + {&DDRD, &PIND, &PORTD, 7}, // D7 23 + {&DDRE, &PINE, &PORTE, 5}, // E5 24 + {&DDRA, &PINA, &PORTA, 6}, // A6 25 + {&DDRE, &PINE, &PORTE, 2}, // E2 26 + {&DDRA, &PINA, &PORTA, 5}, // A5 27 + {&DDRC, &PINC, &PORTC, 0}, // C0 28 + {&DDRB, &PINB, &PORTB, 0}, // B0 29 + {&DDRB, &PINB, &PORTB, 1}, // B1 30 + {&DDRB, &PINB, &PORTB, 2}, // B2 31 + {&DDRB, &PINB, &PORTB, 3}, // B3 32 + {&DDRB, &PINB, &PORTB, 4}, // B4 33 + {&DDRB, &PINB, &PORTB, 5}, // B5 34 + {&DDRA, &PINA, &PORTA, 0}, // A0 35 + {&DDRB, &PINB, &PORTB, 6}, // B6 36 + {&DDRB, &PINB, &PORTB, 7}, // B7 37 + {&DDRE, &PINE, &PORTE, 6}, // E6 38 + {&DDRE, &PINE, &PORTE, 7}, // E7 39 + {&DDRD, &PIND, &PORTD, 0}, // D0 40 + {&DDRD, &PIND, &PORTD, 1}, // D1 41 + {&DDRC, &PINC, &PORTC, 3}, // C3 42 + {&DDRD, &PIND, &PORTD, 2}, // D2 43 + {&DDRD, &PIND, &PORTD, 3}, // D3 44 + {&DDRA, &PINA, &PORTA, 7}, // A7 45 + {&DDRC, &PINC, &PORTC, 2}, // C2 46 + {&DDRD, &PIND, &PORTD, 4}, // D4 47 + {&DDRG, &PING, &PORTG, 2}, // G2 48 + {&DDRG, &PING, &PORTG, 1}, // G1 49 + {&DDRG, &PING, &PORTG, 0}, // G0 50 +}; +#else // defined(__AVR_ATmega1280__) +#error unknown chip +#endif // defined(__AVR_ATmega1280__) +//------------------------------------------------------------------------------ +static const uint8_t digitalPinCount = COUNT(digitalPinMap); + +uint8_t badPinNumber(void) + __attribute__((error("Pin number is too large or not a constant"))); + +static inline __attribute__((always_inline)) + bool getPinMode(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].ddr >> digitalPinMap[pin].bit) & 1; + } + else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void setPinMode(uint8_t pin, uint8_t mode) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (mode) { + SBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit); + } + else { + CBI(*digitalPinMap[pin].ddr, digitalPinMap[pin].bit); + } + } + else { + badPinNumber(); + } +} +static inline __attribute__((always_inline)) + bool fastDigitalRead(uint8_t pin) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + return (*digitalPinMap[pin].pin >> digitalPinMap[pin].bit) & 1; + } + else { + return badPinNumber(); + } +} +static inline __attribute__((always_inline)) + void fastDigitalWrite(uint8_t pin, uint8_t value) { + if (__builtin_constant_p(pin) && pin < digitalPinCount) { + if (value) { + SBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit); + } + else { + CBI(*digitalPinMap[pin].port, digitalPinMap[pin].bit); + } + } + else { + badPinNumber(); + } +} +#endif // Sd2PinMap_h + + +#endif diff --git a/Marlin/SdFatUtil.h b/Marlin/SdFatUtil.h index 93c633ca8b..9db81ac570 100644 --- a/Marlin/SdFatUtil.h +++ b/Marlin/SdFatUtil.h @@ -1,57 +1,57 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino SdFat Library - * Copyright (C) 2008 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -#include "Marlin.h" -#if ENABLED(SDSUPPORT) - -#ifndef SdFatUtil_h -#define SdFatUtil_h -/** - * \file - * \brief Useful utility functions. - */ -#include "Marlin.h" -#include "MarlinSerial.h" -/** Store and print a string in flash memory.*/ -#define PgmPrint(x) SerialPrint_P(PSTR(x)) -/** Store and print a string in flash memory followed by a CR/LF.*/ -#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) - -namespace SdFatUtil { - int FreeRam(); - void print_P(PGM_P str); - void println_P(PGM_P str); - void SerialPrint_P(PGM_P str); - void SerialPrintln_P(PGM_P str); -} - -using namespace SdFatUtil; // NOLINT -#endif //#define SdFatUtil_h - - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino SdFat Library + * Copyright (C) 2008 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +#include "Marlin.h" +#if ENABLED(SDSUPPORT) + +#ifndef SdFatUtil_h +#define SdFatUtil_h +/** + * \file + * \brief Useful utility functions. + */ +#include "Marlin.h" +#include "MarlinSerial.h" +/** Store and print a string in flash memory.*/ +#define PgmPrint(x) SerialPrint_P(PSTR(x)) +/** Store and print a string in flash memory followed by a CR/LF.*/ +#define PgmPrintln(x) SerialPrintln_P(PSTR(x)) + +namespace SdFatUtil { + int FreeRam(); + void print_P(PGM_P str); + void println_P(PGM_P str); + void SerialPrint_P(PGM_P str); + void SerialPrintln_P(PGM_P str); +} + +using namespace SdFatUtil; // NOLINT +#endif //#define SdFatUtil_h + + +#endif diff --git a/Marlin/SdFile.cpp b/Marlin/SdFile.cpp index d5748efe24..fc66f4173b 100644 --- a/Marlin/SdFile.cpp +++ b/Marlin/SdFile.cpp @@ -1,102 +1,102 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino SdFat Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -#include "Marlin.h" - -#if ENABLED(SDSUPPORT) -#include "SdFile.h" -/** Create a file object and open it in the current working directory. - * - * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. - * - * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive - * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). - */ -SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { -} -//------------------------------------------------------------------------------ -/** Write data to an open file. - * - * \note Data is moved to the cache but may not be written to the - * storage device until sync() is called. - * - * \param[in] buf Pointer to the location of the data to be written. - * - * \param[in] nbyte Number of bytes to write. - * - * \return For success write() returns the number of bytes written, always - * \a nbyte. If an error occurs, write() returns -1. Possible errors - * include write() is called before a file has been opened, write is called - * for a read-only file, device is full, a corrupt file system or an I/O error. - * - */ -int16_t SdFile::write(const void* buf, uint16_t nbyte) { - return SdBaseFile::write(buf, nbyte); -} -//------------------------------------------------------------------------------ -/** Write a byte to a file. Required by the Arduino Print class. - * \param[in] b the byte to be written. - * Use writeError to check for errors. - */ -#if ARDUINO >= 100 - size_t SdFile::write(uint8_t b) { - return SdBaseFile::write(&b, 1); - } -#else - void SdFile::write(uint8_t b) { - SdBaseFile::write(&b, 1); - } -#endif -//------------------------------------------------------------------------------ -/** Write a string to a file. Used by the Arduino Print class. - * \param[in] str Pointer to the string. - * Use writeError to check for errors. - */ -void SdFile::write(const char* str) { - SdBaseFile::write(str, strlen(str)); -} -//------------------------------------------------------------------------------ -/** Write a PROGMEM string to a file. - * \param[in] str Pointer to the PROGMEM string. - * Use writeError to check for errors. - */ -void SdFile::write_P(PGM_P str) { - for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); -} -//------------------------------------------------------------------------------ -/** Write a PROGMEM string followed by CR/LF to a file. - * \param[in] str Pointer to the PROGMEM string. - * Use writeError to check for errors. - */ -void SdFile::writeln_P(PGM_P str) { - write_P(str); - write_P(PSTR("\r\n")); -} - - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +#include "Marlin.h" + +#if ENABLED(SDSUPPORT) +#include "SdFile.h" +/** Create a file object and open it in the current working directory. + * + * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. + * + * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive + * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). + */ +SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { +} +//------------------------------------------------------------------------------ +/** Write data to an open file. + * + * \note Data is moved to the cache but may not be written to the + * storage device until sync() is called. + * + * \param[in] buf Pointer to the location of the data to be written. + * + * \param[in] nbyte Number of bytes to write. + * + * \return For success write() returns the number of bytes written, always + * \a nbyte. If an error occurs, write() returns -1. Possible errors + * include write() is called before a file has been opened, write is called + * for a read-only file, device is full, a corrupt file system or an I/O error. + * + */ +int16_t SdFile::write(const void* buf, uint16_t nbyte) { + return SdBaseFile::write(buf, nbyte); +} +//------------------------------------------------------------------------------ +/** Write a byte to a file. Required by the Arduino Print class. + * \param[in] b the byte to be written. + * Use writeError to check for errors. + */ +#if ARDUINO >= 100 + size_t SdFile::write(uint8_t b) { + return SdBaseFile::write(&b, 1); + } +#else + void SdFile::write(uint8_t b) { + SdBaseFile::write(&b, 1); + } +#endif +//------------------------------------------------------------------------------ +/** Write a string to a file. Used by the Arduino Print class. + * \param[in] str Pointer to the string. + * Use writeError to check for errors. + */ +void SdFile::write(const char* str) { + SdBaseFile::write(str, strlen(str)); +} +//------------------------------------------------------------------------------ +/** Write a PROGMEM string to a file. + * \param[in] str Pointer to the PROGMEM string. + * Use writeError to check for errors. + */ +void SdFile::write_P(PGM_P str) { + for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); +} +//------------------------------------------------------------------------------ +/** Write a PROGMEM string followed by CR/LF to a file. + * \param[in] str Pointer to the PROGMEM string. + * Use writeError to check for errors. + */ +void SdFile::writeln_P(PGM_P str) { + write_P(str); + write_P(PSTR("\r\n")); +} + + +#endif diff --git a/Marlin/SdInfo.h b/Marlin/SdInfo.h index f07dd6c017..f4b36b7aed 100644 --- a/Marlin/SdInfo.h +++ b/Marlin/SdInfo.h @@ -1,289 +1,289 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino Sd2Card Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -#include "Marlin.h" -#if ENABLED(SDSUPPORT) - -#ifndef SdInfo_h -#define SdInfo_h -#include -// Based on the document: -// -// SD Specifications -// Part 1 -// Physical Layer -// Simplified Specification -// Version 3.01 -// May 18, 2010 -// -// http://www.sdcard.org/developers/tech/sdcard/pls/simplified_specs -//------------------------------------------------------------------------------ -// SD card commands -/** GO_IDLE_STATE - init card in spi mode if CS low */ -uint8_t const CMD0 = 0X00; -/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ -uint8_t const CMD8 = 0X08; -/** SEND_CSD - read the Card Specific Data (CSD register) */ -uint8_t const CMD9 = 0X09; -/** SEND_CID - read the card identification information (CID register) */ -uint8_t const CMD10 = 0X0A; -/** STOP_TRANSMISSION - end multiple block read sequence */ -uint8_t const CMD12 = 0X0C; -/** SEND_STATUS - read the card status register */ -uint8_t const CMD13 = 0X0D; -/** READ_SINGLE_BLOCK - read a single data block from the card */ -uint8_t const CMD17 = 0X11; -/** READ_MULTIPLE_BLOCK - read a multiple data blocks from the card */ -uint8_t const CMD18 = 0X12; -/** WRITE_BLOCK - write a single data block to the card */ -uint8_t const CMD24 = 0X18; -/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ -uint8_t const CMD25 = 0X19; -/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ -uint8_t const CMD32 = 0X20; -/** ERASE_WR_BLK_END - sets the address of the last block of the continuous - range to be erased*/ -uint8_t const CMD33 = 0X21; -/** ERASE - erase all previously selected blocks */ -uint8_t const CMD38 = 0X26; -/** APP_CMD - escape for application specific command */ -uint8_t const CMD55 = 0X37; -/** READ_OCR - read the OCR register of a card */ -uint8_t const CMD58 = 0X3A; -/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be - pre-erased before writing */ -uint8_t const ACMD23 = 0X17; -/** SD_SEND_OP_COMD - Sends host capacity support information and - activates the card's initialization process */ -uint8_t const ACMD41 = 0X29; -//------------------------------------------------------------------------------ -/** status for card in the ready state */ -uint8_t const R1_READY_STATE = 0X00; -/** status for card in the idle state */ -uint8_t const R1_IDLE_STATE = 0X01; -/** status bit for illegal command */ -uint8_t const R1_ILLEGAL_COMMAND = 0X04; -/** start data token for read or write single block*/ -uint8_t const DATA_START_BLOCK = 0XFE; -/** stop token for write multiple blocks*/ -uint8_t const STOP_TRAN_TOKEN = 0XFD; -/** start data token for write multiple blocks*/ -uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; -/** mask for data response tokens after a write block operation */ -uint8_t const DATA_RES_MASK = 0X1F; -/** write data accepted token */ -uint8_t const DATA_RES_ACCEPTED = 0X05; -//------------------------------------------------------------------------------ -/** Card IDentification (CID) register */ -typedef struct CID { - // byte 0 - /** Manufacturer ID */ - unsigned char mid; - // byte 1-2 - /** OEM/Application ID */ - char oid[2]; - // byte 3-7 - /** Product name */ - char pnm[5]; - // byte 8 - /** Product revision least significant digit */ - unsigned char prv_m : 4; - /** Product revision most significant digit */ - unsigned char prv_n : 4; - // byte 9-12 - /** Product serial number */ - uint32_t psn; - // byte 13 - /** Manufacturing date year low digit */ - unsigned char mdt_year_high : 4; - /** not used */ - unsigned char reserved : 4; - // byte 14 - /** Manufacturing date month */ - unsigned char mdt_month : 4; - /** Manufacturing date year low digit */ - unsigned char mdt_year_low : 4; - // byte 15 - /** not used always 1 */ - unsigned char always1 : 1; - /** CRC7 checksum */ - unsigned char crc : 7; -} cid_t; -//------------------------------------------------------------------------------ -/** CSD for version 1.00 cards */ -typedef struct CSDV1 { - // byte 0 - unsigned char reserved1 : 6; - unsigned char csd_ver : 2; - // byte 1 - unsigned char taac; - // byte 2 - unsigned char nsac; - // byte 3 - unsigned char tran_speed; - // byte 4 - unsigned char ccc_high; - // byte 5 - unsigned char read_bl_len : 4; - unsigned char ccc_low : 4; - // byte 6 - unsigned char c_size_high : 2; - unsigned char reserved2 : 2; - unsigned char dsr_imp : 1; - unsigned char read_blk_misalign : 1; - unsigned char write_blk_misalign : 1; - unsigned char read_bl_partial : 1; - // byte 7 - unsigned char c_size_mid; - // byte 8 - unsigned char vdd_r_curr_max : 3; - unsigned char vdd_r_curr_min : 3; - unsigned char c_size_low : 2; - // byte 9 - unsigned char c_size_mult_high : 2; - unsigned char vdd_w_cur_max : 3; - unsigned char vdd_w_curr_min : 3; - // byte 10 - unsigned char sector_size_high : 6; - unsigned char erase_blk_en : 1; - unsigned char c_size_mult_low : 1; - // byte 11 - unsigned char wp_grp_size : 7; - unsigned char sector_size_low : 1; - // byte 12 - unsigned char write_bl_len_high : 2; - unsigned char r2w_factor : 3; - unsigned char reserved3 : 2; - unsigned char wp_grp_enable : 1; - // byte 13 - unsigned char reserved4 : 5; - unsigned char write_partial : 1; - unsigned char write_bl_len_low : 2; - // byte 14 - unsigned char reserved5: 2; - unsigned char file_format : 2; - unsigned char tmp_write_protect : 1; - unsigned char perm_write_protect : 1; - unsigned char copy : 1; - /** Indicates the file format on the card */ - unsigned char file_format_grp : 1; - // byte 15 - unsigned char always1 : 1; - unsigned char crc : 7; -} csd1_t; -//------------------------------------------------------------------------------ -/** CSD for version 2.00 cards */ -typedef struct CSDV2 { - // byte 0 - unsigned char reserved1 : 6; - unsigned char csd_ver : 2; - // byte 1 - /** fixed to 0X0E */ - unsigned char taac; - // byte 2 - /** fixed to 0 */ - unsigned char nsac; - // byte 3 - unsigned char tran_speed; - // byte 4 - unsigned char ccc_high; - // byte 5 - /** This field is fixed to 9h, which indicates READ_BL_LEN=512 Byte */ - unsigned char read_bl_len : 4; - unsigned char ccc_low : 4; - // byte 6 - /** not used */ - unsigned char reserved2 : 4; - unsigned char dsr_imp : 1; - /** fixed to 0 */ - unsigned char read_blk_misalign : 1; - /** fixed to 0 */ - unsigned char write_blk_misalign : 1; - /** fixed to 0 - no partial read */ - unsigned char read_bl_partial : 1; - // byte 7 - /** not used */ - unsigned char reserved3 : 2; - /** high part of card size */ - unsigned char c_size_high : 6; - // byte 8 - /** middle part of card size */ - unsigned char c_size_mid; - // byte 9 - /** low part of card size */ - unsigned char c_size_low; - // byte 10 - /** sector size is fixed at 64 KB */ - unsigned char sector_size_high : 6; - /** fixed to 1 - erase single is supported */ - unsigned char erase_blk_en : 1; - /** not used */ - unsigned char reserved4 : 1; - // byte 11 - unsigned char wp_grp_size : 7; - /** sector size is fixed at 64 KB */ - unsigned char sector_size_low : 1; - // byte 12 - /** write_bl_len fixed for 512 byte blocks */ - unsigned char write_bl_len_high : 2; - /** fixed value of 2 */ - unsigned char r2w_factor : 3; - /** not used */ - unsigned char reserved5 : 2; - /** fixed value of 0 - no write protect groups */ - unsigned char wp_grp_enable : 1; - // byte 13 - unsigned char reserved6 : 5; - /** always zero - no partial block read*/ - unsigned char write_partial : 1; - /** write_bl_len fixed for 512 byte blocks */ - unsigned char write_bl_len_low : 2; - // byte 14 - unsigned char reserved7: 2; - /** Do not use always 0 */ - unsigned char file_format : 2; - unsigned char tmp_write_protect : 1; - unsigned char perm_write_protect : 1; - unsigned char copy : 1; - /** Do not use always 0 */ - unsigned char file_format_grp : 1; - // byte 15 - /** not used always 1 */ - unsigned char always1 : 1; - /** checksum */ - unsigned char crc : 7; -} csd2_t; -//------------------------------------------------------------------------------ -/** union of old and new style CSD register */ -union csd_t { - csd1_t v1; - csd2_t v2; -}; -#endif // SdInfo_h - -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino Sd2Card Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +#include "Marlin.h" +#if ENABLED(SDSUPPORT) + +#ifndef SdInfo_h +#define SdInfo_h +#include +// Based on the document: +// +// SD Specifications +// Part 1 +// Physical Layer +// Simplified Specification +// Version 3.01 +// May 18, 2010 +// +// http://www.sdcard.org/developers/tech/sdcard/pls/simplified_specs +//------------------------------------------------------------------------------ +// SD card commands +/** GO_IDLE_STATE - init card in spi mode if CS low */ +uint8_t const CMD0 = 0X00; +/** SEND_IF_COND - verify SD Memory Card interface operating condition.*/ +uint8_t const CMD8 = 0X08; +/** SEND_CSD - read the Card Specific Data (CSD register) */ +uint8_t const CMD9 = 0X09; +/** SEND_CID - read the card identification information (CID register) */ +uint8_t const CMD10 = 0X0A; +/** STOP_TRANSMISSION - end multiple block read sequence */ +uint8_t const CMD12 = 0X0C; +/** SEND_STATUS - read the card status register */ +uint8_t const CMD13 = 0X0D; +/** READ_SINGLE_BLOCK - read a single data block from the card */ +uint8_t const CMD17 = 0X11; +/** READ_MULTIPLE_BLOCK - read a multiple data blocks from the card */ +uint8_t const CMD18 = 0X12; +/** WRITE_BLOCK - write a single data block to the card */ +uint8_t const CMD24 = 0X18; +/** WRITE_MULTIPLE_BLOCK - write blocks of data until a STOP_TRANSMISSION */ +uint8_t const CMD25 = 0X19; +/** ERASE_WR_BLK_START - sets the address of the first block to be erased */ +uint8_t const CMD32 = 0X20; +/** ERASE_WR_BLK_END - sets the address of the last block of the continuous + range to be erased*/ +uint8_t const CMD33 = 0X21; +/** ERASE - erase all previously selected blocks */ +uint8_t const CMD38 = 0X26; +/** APP_CMD - escape for application specific command */ +uint8_t const CMD55 = 0X37; +/** READ_OCR - read the OCR register of a card */ +uint8_t const CMD58 = 0X3A; +/** SET_WR_BLK_ERASE_COUNT - Set the number of write blocks to be + pre-erased before writing */ +uint8_t const ACMD23 = 0X17; +/** SD_SEND_OP_COMD - Sends host capacity support information and + activates the card's initialization process */ +uint8_t const ACMD41 = 0X29; +//------------------------------------------------------------------------------ +/** status for card in the ready state */ +uint8_t const R1_READY_STATE = 0X00; +/** status for card in the idle state */ +uint8_t const R1_IDLE_STATE = 0X01; +/** status bit for illegal command */ +uint8_t const R1_ILLEGAL_COMMAND = 0X04; +/** start data token for read or write single block*/ +uint8_t const DATA_START_BLOCK = 0XFE; +/** stop token for write multiple blocks*/ +uint8_t const STOP_TRAN_TOKEN = 0XFD; +/** start data token for write multiple blocks*/ +uint8_t const WRITE_MULTIPLE_TOKEN = 0XFC; +/** mask for data response tokens after a write block operation */ +uint8_t const DATA_RES_MASK = 0X1F; +/** write data accepted token */ +uint8_t const DATA_RES_ACCEPTED = 0X05; +//------------------------------------------------------------------------------ +/** Card IDentification (CID) register */ +typedef struct CID { + // byte 0 + /** Manufacturer ID */ + unsigned char mid; + // byte 1-2 + /** OEM/Application ID */ + char oid[2]; + // byte 3-7 + /** Product name */ + char pnm[5]; + // byte 8 + /** Product revision least significant digit */ + unsigned char prv_m : 4; + /** Product revision most significant digit */ + unsigned char prv_n : 4; + // byte 9-12 + /** Product serial number */ + uint32_t psn; + // byte 13 + /** Manufacturing date year low digit */ + unsigned char mdt_year_high : 4; + /** not used */ + unsigned char reserved : 4; + // byte 14 + /** Manufacturing date month */ + unsigned char mdt_month : 4; + /** Manufacturing date year low digit */ + unsigned char mdt_year_low : 4; + // byte 15 + /** not used always 1 */ + unsigned char always1 : 1; + /** CRC7 checksum */ + unsigned char crc : 7; +} cid_t; +//------------------------------------------------------------------------------ +/** CSD for version 1.00 cards */ +typedef struct CSDV1 { + // byte 0 + unsigned char reserved1 : 6; + unsigned char csd_ver : 2; + // byte 1 + unsigned char taac; + // byte 2 + unsigned char nsac; + // byte 3 + unsigned char tran_speed; + // byte 4 + unsigned char ccc_high; + // byte 5 + unsigned char read_bl_len : 4; + unsigned char ccc_low : 4; + // byte 6 + unsigned char c_size_high : 2; + unsigned char reserved2 : 2; + unsigned char dsr_imp : 1; + unsigned char read_blk_misalign : 1; + unsigned char write_blk_misalign : 1; + unsigned char read_bl_partial : 1; + // byte 7 + unsigned char c_size_mid; + // byte 8 + unsigned char vdd_r_curr_max : 3; + unsigned char vdd_r_curr_min : 3; + unsigned char c_size_low : 2; + // byte 9 + unsigned char c_size_mult_high : 2; + unsigned char vdd_w_cur_max : 3; + unsigned char vdd_w_curr_min : 3; + // byte 10 + unsigned char sector_size_high : 6; + unsigned char erase_blk_en : 1; + unsigned char c_size_mult_low : 1; + // byte 11 + unsigned char wp_grp_size : 7; + unsigned char sector_size_low : 1; + // byte 12 + unsigned char write_bl_len_high : 2; + unsigned char r2w_factor : 3; + unsigned char reserved3 : 2; + unsigned char wp_grp_enable : 1; + // byte 13 + unsigned char reserved4 : 5; + unsigned char write_partial : 1; + unsigned char write_bl_len_low : 2; + // byte 14 + unsigned char reserved5: 2; + unsigned char file_format : 2; + unsigned char tmp_write_protect : 1; + unsigned char perm_write_protect : 1; + unsigned char copy : 1; + /** Indicates the file format on the card */ + unsigned char file_format_grp : 1; + // byte 15 + unsigned char always1 : 1; + unsigned char crc : 7; +} csd1_t; +//------------------------------------------------------------------------------ +/** CSD for version 2.00 cards */ +typedef struct CSDV2 { + // byte 0 + unsigned char reserved1 : 6; + unsigned char csd_ver : 2; + // byte 1 + /** fixed to 0X0E */ + unsigned char taac; + // byte 2 + /** fixed to 0 */ + unsigned char nsac; + // byte 3 + unsigned char tran_speed; + // byte 4 + unsigned char ccc_high; + // byte 5 + /** This field is fixed to 9h, which indicates READ_BL_LEN=512 Byte */ + unsigned char read_bl_len : 4; + unsigned char ccc_low : 4; + // byte 6 + /** not used */ + unsigned char reserved2 : 4; + unsigned char dsr_imp : 1; + /** fixed to 0 */ + unsigned char read_blk_misalign : 1; + /** fixed to 0 */ + unsigned char write_blk_misalign : 1; + /** fixed to 0 - no partial read */ + unsigned char read_bl_partial : 1; + // byte 7 + /** not used */ + unsigned char reserved3 : 2; + /** high part of card size */ + unsigned char c_size_high : 6; + // byte 8 + /** middle part of card size */ + unsigned char c_size_mid; + // byte 9 + /** low part of card size */ + unsigned char c_size_low; + // byte 10 + /** sector size is fixed at 64 KB */ + unsigned char sector_size_high : 6; + /** fixed to 1 - erase single is supported */ + unsigned char erase_blk_en : 1; + /** not used */ + unsigned char reserved4 : 1; + // byte 11 + unsigned char wp_grp_size : 7; + /** sector size is fixed at 64 KB */ + unsigned char sector_size_low : 1; + // byte 12 + /** write_bl_len fixed for 512 byte blocks */ + unsigned char write_bl_len_high : 2; + /** fixed value of 2 */ + unsigned char r2w_factor : 3; + /** not used */ + unsigned char reserved5 : 2; + /** fixed value of 0 - no write protect groups */ + unsigned char wp_grp_enable : 1; + // byte 13 + unsigned char reserved6 : 5; + /** always zero - no partial block read*/ + unsigned char write_partial : 1; + /** write_bl_len fixed for 512 byte blocks */ + unsigned char write_bl_len_low : 2; + // byte 14 + unsigned char reserved7: 2; + /** Do not use always 0 */ + unsigned char file_format : 2; + unsigned char tmp_write_protect : 1; + unsigned char perm_write_protect : 1; + unsigned char copy : 1; + /** Do not use always 0 */ + unsigned char file_format_grp : 1; + // byte 15 + /** not used always 1 */ + unsigned char always1 : 1; + /** checksum */ + unsigned char crc : 7; +} csd2_t; +//------------------------------------------------------------------------------ +/** union of old and new style CSD register */ +union csd_t { + csd1_t v1; + csd2_t v2; +}; +#endif // SdInfo_h + +#endif diff --git a/Marlin/SdVolume.cpp b/Marlin/SdVolume.cpp index e9c69dfc90..4166c0661a 100644 --- a/Marlin/SdVolume.cpp +++ b/Marlin/SdVolume.cpp @@ -1,420 +1,420 @@ -/** - * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] - * - * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -/** - * Arduino SdFat Library - * Copyright (C) 2009 by William Greiman - * - * This file is part of the Arduino Sd2Card Library - */ -#include "Marlin.h" -#if ENABLED(SDSUPPORT) - -#include "SdVolume.h" -//------------------------------------------------------------------------------ -#if !USE_MULTIPLE_CARDS - // raw block cache - uint32_t SdVolume::cacheBlockNumber_; // current block number - cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card - Sd2Card* SdVolume::sdCard_; // pointer to SD card object - bool SdVolume::cacheDirty_; // cacheFlush() will write block if true - uint32_t SdVolume::cacheMirrorBlock_; // mirror block for second FAT -#endif // USE_MULTIPLE_CARDS -//------------------------------------------------------------------------------ -// find a contiguous group of clusters -bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { - // start of group - uint32_t bgnCluster; - // end of group - uint32_t endCluster; - // last cluster of FAT - uint32_t fatEnd = clusterCount_ + 1; - - // flag to save place to start next search - bool setStart; - - // set search start cluster - if (*curCluster) { - // try to make file contiguous - bgnCluster = *curCluster + 1; - - // don't save new start location - setStart = false; - } - else { - // start at likely place for free cluster - bgnCluster = allocSearchStart_; - - // save next search start if one cluster - setStart = count == 1; - } - // end of group - endCluster = bgnCluster; - - // search the FAT for free clusters - for (uint32_t n = 0;; n++, endCluster++) { - // can't find space checked all clusters - if (n >= clusterCount_) goto fail; - - // past end - start from beginning of FAT - if (endCluster > fatEnd) { - bgnCluster = endCluster = 2; - } - uint32_t f; - if (!fatGet(endCluster, &f)) goto fail; - - if (f != 0) { - // cluster in use try next cluster as bgnCluster - bgnCluster = endCluster + 1; - } - else if ((endCluster - bgnCluster + 1) == count) { - // done - found space - break; - } - } - // mark end of chain - if (!fatPutEOC(endCluster)) goto fail; - - // link clusters - while (endCluster > bgnCluster) { - if (!fatPut(endCluster - 1, endCluster)) goto fail; - endCluster--; - } - if (*curCluster != 0) { - // connect chains - if (!fatPut(*curCluster, bgnCluster)) goto fail; - } - // return first cluster number to caller - *curCluster = bgnCluster; - - // remember possible next free cluster - if (setStart) allocSearchStart_ = bgnCluster + 1; - - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -bool SdVolume::cacheFlush() { - if (cacheDirty_) { - if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { - goto fail; - } - // mirror FAT tables - if (cacheMirrorBlock_) { - if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { - goto fail; - } - cacheMirrorBlock_ = 0; - } - cacheDirty_ = 0; - } - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -bool SdVolume::cacheRawBlock(uint32_t blockNumber, bool dirty) { - if (cacheBlockNumber_ != blockNumber) { - if (!cacheFlush()) goto fail; - if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) goto fail; - cacheBlockNumber_ = blockNumber; - } - if (dirty) cacheDirty_ = true; - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -// return the size in bytes of a cluster chain -bool SdVolume::chainSize(uint32_t cluster, uint32_t* size) { - uint32_t s = 0; - do { - if (!fatGet(cluster, &cluster)) goto fail; - s += 512UL << clusterSizeShift_; - } while (!isEOC(cluster)); - *size = s; - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -// Fetch a FAT entry -bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) { - uint32_t lba; - if (cluster > (clusterCount_ + 1)) goto fail; - if (FAT12_SUPPORT && fatType_ == 12) { - uint16_t index = cluster; - index += index >> 1; - lba = fatStartBlock_ + (index >> 9); - if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; - index &= 0X1FF; - uint16_t tmp = cacheBuffer_.data[index]; - index++; - if (index == 512) { - if (!cacheRawBlock(lba + 1, CACHE_FOR_READ)) goto fail; - index = 0; - } - tmp |= cacheBuffer_.data[index] << 8; - *value = cluster & 1 ? tmp >> 4 : tmp & 0XFFF; - return true; - } - if (fatType_ == 16) { - lba = fatStartBlock_ + (cluster >> 8); - } - else if (fatType_ == 32) { - lba = fatStartBlock_ + (cluster >> 7); - } - else { - goto fail; - } - if (lba != cacheBlockNumber_) { - if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; - } - if (fatType_ == 16) { - *value = cacheBuffer_.fat16[cluster & 0XFF]; - } - else { - *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; - } - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -// Store a FAT entry -bool SdVolume::fatPut(uint32_t cluster, uint32_t value) { - uint32_t lba; - // error if reserved cluster - if (cluster < 2) goto fail; - - // error if not in FAT - if (cluster > (clusterCount_ + 1)) goto fail; - - if (FAT12_SUPPORT && fatType_ == 12) { - uint16_t index = cluster; - index += index >> 1; - lba = fatStartBlock_ + (index >> 9); - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - index &= 0X1FF; - uint8_t tmp = value; - if (cluster & 1) { - tmp = (cacheBuffer_.data[index] & 0XF) | tmp << 4; - } - cacheBuffer_.data[index] = tmp; - index++; - if (index == 512) { - lba++; - index = 0; - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - } - tmp = value >> 4; - if (!(cluster & 1)) { - tmp = ((cacheBuffer_.data[index] & 0XF0)) | tmp >> 4; - } - cacheBuffer_.data[index] = tmp; - return true; - } - if (fatType_ == 16) { - lba = fatStartBlock_ + (cluster >> 8); - } - else if (fatType_ == 32) { - lba = fatStartBlock_ + (cluster >> 7); - } - else { - goto fail; - } - if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; - // store entry - if (fatType_ == 16) { - cacheBuffer_.fat16[cluster & 0XFF] = value; - } - else { - cacheBuffer_.fat32[cluster & 0X7F] = value; - } - // mirror second FAT - if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -// free a cluster chain -bool SdVolume::freeChain(uint32_t cluster) { - uint32_t next; - - // clear free cluster location - allocSearchStart_ = 2; - - do { - if (!fatGet(cluster, &next)) goto fail; - - // free cluster - if (!fatPut(cluster, 0)) goto fail; - - cluster = next; - } while (!isEOC(cluster)); - - return true; -fail: - return false; -} -//------------------------------------------------------------------------------ -/** Volume free space in clusters. - * - * \return Count of free clusters for success or -1 if an error occurs. - */ -int32_t SdVolume::freeClusterCount() { - uint32_t free = 0; - uint16_t n; - uint32_t todo = clusterCount_ + 2; - - if (fatType_ == 16) { - n = 256; - } - else if (fatType_ == 32) { - n = 128; - } - else { - // put FAT12 here - return -1; - } - - for (uint32_t lba = fatStartBlock_; todo; todo -= n, lba++) { - if (!cacheRawBlock(lba, CACHE_FOR_READ)) return -1; - NOMORE(n, todo); - if (fatType_ == 16) { - for (uint16_t i = 0; i < n; i++) { - if (cacheBuffer_.fat16[i] == 0) free++; - } - } - else { - for (uint16_t i = 0; i < n; i++) { - if (cacheBuffer_.fat32[i] == 0) free++; - } - } - } - return free; -} -//------------------------------------------------------------------------------ -/** Initialize a FAT volume. - * - * \param[in] dev The SD card where the volume is located. - * - * \param[in] part The partition to be used. Legal values for \a part are - * 1-4 to use the corresponding partition on a device formatted with - * a MBR, Master Boot Record, or zero if the device is formatted as - * a super floppy with the FAT boot sector in block zero. - * - * \return The value one, true, is returned for success and - * the value zero, false, is returned for failure. Reasons for - * failure include not finding a valid partition, not finding a valid - * FAT file system in the specified partition or an I/O error. - */ -bool SdVolume::init(Sd2Card* dev, uint8_t part) { - uint32_t totalBlocks; - uint32_t volumeStartBlock = 0; - fat32_boot_t* fbs; - - sdCard_ = dev; - fatType_ = 0; - allocSearchStart_ = 2; - cacheDirty_ = 0; // cacheFlush() will write block if true - cacheMirrorBlock_ = 0; - cacheBlockNumber_ = 0XFFFFFFFF; - - // if part == 0 assume super floppy with FAT boot sector in block zero - // if part > 0 assume mbr volume with partition table - if (part) { - if (part > 4)goto fail; - if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; - part_t* p = &cacheBuffer_.mbr.part[part - 1]; - if ((p->boot & 0X7F) != 0 || - p->totalSectors < 100 || - p->firstSector == 0) { - // not a valid partition - goto fail; - } - volumeStartBlock = p->firstSector; - } - if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; - fbs = &cacheBuffer_.fbs32; - if (fbs->bytesPerSector != 512 || - fbs->fatCount == 0 || - fbs->reservedSectorCount == 0 || - fbs->sectorsPerCluster == 0) { - // not valid FAT volume - goto fail; - } - fatCount_ = fbs->fatCount; - blocksPerCluster_ = fbs->sectorsPerCluster; - // determine shift that is same as multiply by blocksPerCluster_ - clusterSizeShift_ = 0; - while (blocksPerCluster_ != _BV(clusterSizeShift_)) { - // error if not power of 2 - if (clusterSizeShift_++ > 7) goto fail; - } - blocksPerFat_ = fbs->sectorsPerFat16 ? - fbs->sectorsPerFat16 : fbs->sectorsPerFat32; - - fatStartBlock_ = volumeStartBlock + fbs->reservedSectorCount; - - // count for FAT16 zero for FAT32 - rootDirEntryCount_ = fbs->rootDirEntryCount; - - // directory start for FAT16 dataStart for FAT32 - rootDirStart_ = fatStartBlock_ + fbs->fatCount * blocksPerFat_; - - // data start for FAT16 and FAT32 - dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511) / 512); - - // total blocks for FAT16 or FAT32 - totalBlocks = fbs->totalSectors16 ? - fbs->totalSectors16 : fbs->totalSectors32; - - // total data blocks - clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); - - // divide by cluster size to get cluster count - clusterCount_ >>= clusterSizeShift_; - - // FAT type is determined by cluster count - if (clusterCount_ < 4085) { - fatType_ = 12; - if (!FAT12_SUPPORT) goto fail; - } - else if (clusterCount_ < 65525) { - fatType_ = 16; - } - else { - rootDirStart_ = fbs->fat32RootCluster; - fatType_ = 32; - } - return true; -fail: - return false; -} -#endif +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * Arduino SdFat Library + * Copyright (C) 2009 by William Greiman + * + * This file is part of the Arduino Sd2Card Library + */ +#include "Marlin.h" +#if ENABLED(SDSUPPORT) + +#include "SdVolume.h" +//------------------------------------------------------------------------------ +#if !USE_MULTIPLE_CARDS + // raw block cache + uint32_t SdVolume::cacheBlockNumber_; // current block number + cache_t SdVolume::cacheBuffer_; // 512 byte cache for Sd2Card + Sd2Card* SdVolume::sdCard_; // pointer to SD card object + bool SdVolume::cacheDirty_; // cacheFlush() will write block if true + uint32_t SdVolume::cacheMirrorBlock_; // mirror block for second FAT +#endif // USE_MULTIPLE_CARDS +//------------------------------------------------------------------------------ +// find a contiguous group of clusters +bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) { + // start of group + uint32_t bgnCluster; + // end of group + uint32_t endCluster; + // last cluster of FAT + uint32_t fatEnd = clusterCount_ + 1; + + // flag to save place to start next search + bool setStart; + + // set search start cluster + if (*curCluster) { + // try to make file contiguous + bgnCluster = *curCluster + 1; + + // don't save new start location + setStart = false; + } + else { + // start at likely place for free cluster + bgnCluster = allocSearchStart_; + + // save next search start if one cluster + setStart = count == 1; + } + // end of group + endCluster = bgnCluster; + + // search the FAT for free clusters + for (uint32_t n = 0;; n++, endCluster++) { + // can't find space checked all clusters + if (n >= clusterCount_) goto fail; + + // past end - start from beginning of FAT + if (endCluster > fatEnd) { + bgnCluster = endCluster = 2; + } + uint32_t f; + if (!fatGet(endCluster, &f)) goto fail; + + if (f != 0) { + // cluster in use try next cluster as bgnCluster + bgnCluster = endCluster + 1; + } + else if ((endCluster - bgnCluster + 1) == count) { + // done - found space + break; + } + } + // mark end of chain + if (!fatPutEOC(endCluster)) goto fail; + + // link clusters + while (endCluster > bgnCluster) { + if (!fatPut(endCluster - 1, endCluster)) goto fail; + endCluster--; + } + if (*curCluster != 0) { + // connect chains + if (!fatPut(*curCluster, bgnCluster)) goto fail; + } + // return first cluster number to caller + *curCluster = bgnCluster; + + // remember possible next free cluster + if (setStart) allocSearchStart_ = bgnCluster + 1; + + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +bool SdVolume::cacheFlush() { + if (cacheDirty_) { + if (!sdCard_->writeBlock(cacheBlockNumber_, cacheBuffer_.data)) { + goto fail; + } + // mirror FAT tables + if (cacheMirrorBlock_) { + if (!sdCard_->writeBlock(cacheMirrorBlock_, cacheBuffer_.data)) { + goto fail; + } + cacheMirrorBlock_ = 0; + } + cacheDirty_ = 0; + } + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +bool SdVolume::cacheRawBlock(uint32_t blockNumber, bool dirty) { + if (cacheBlockNumber_ != blockNumber) { + if (!cacheFlush()) goto fail; + if (!sdCard_->readBlock(blockNumber, cacheBuffer_.data)) goto fail; + cacheBlockNumber_ = blockNumber; + } + if (dirty) cacheDirty_ = true; + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +// return the size in bytes of a cluster chain +bool SdVolume::chainSize(uint32_t cluster, uint32_t* size) { + uint32_t s = 0; + do { + if (!fatGet(cluster, &cluster)) goto fail; + s += 512UL << clusterSizeShift_; + } while (!isEOC(cluster)); + *size = s; + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +// Fetch a FAT entry +bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) { + uint32_t lba; + if (cluster > (clusterCount_ + 1)) goto fail; + if (FAT12_SUPPORT && fatType_ == 12) { + uint16_t index = cluster; + index += index >> 1; + lba = fatStartBlock_ + (index >> 9); + if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; + index &= 0X1FF; + uint16_t tmp = cacheBuffer_.data[index]; + index++; + if (index == 512) { + if (!cacheRawBlock(lba + 1, CACHE_FOR_READ)) goto fail; + index = 0; + } + tmp |= cacheBuffer_.data[index] << 8; + *value = cluster & 1 ? tmp >> 4 : tmp & 0XFFF; + return true; + } + if (fatType_ == 16) { + lba = fatStartBlock_ + (cluster >> 8); + } + else if (fatType_ == 32) { + lba = fatStartBlock_ + (cluster >> 7); + } + else { + goto fail; + } + if (lba != cacheBlockNumber_) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) goto fail; + } + if (fatType_ == 16) { + *value = cacheBuffer_.fat16[cluster & 0XFF]; + } + else { + *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK; + } + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +// Store a FAT entry +bool SdVolume::fatPut(uint32_t cluster, uint32_t value) { + uint32_t lba; + // error if reserved cluster + if (cluster < 2) goto fail; + + // error if not in FAT + if (cluster > (clusterCount_ + 1)) goto fail; + + if (FAT12_SUPPORT && fatType_ == 12) { + uint16_t index = cluster; + index += index >> 1; + lba = fatStartBlock_ + (index >> 9); + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + index &= 0X1FF; + uint8_t tmp = value; + if (cluster & 1) { + tmp = (cacheBuffer_.data[index] & 0XF) | tmp << 4; + } + cacheBuffer_.data[index] = tmp; + index++; + if (index == 512) { + lba++; + index = 0; + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + } + tmp = value >> 4; + if (!(cluster & 1)) { + tmp = ((cacheBuffer_.data[index] & 0XF0)) | tmp >> 4; + } + cacheBuffer_.data[index] = tmp; + return true; + } + if (fatType_ == 16) { + lba = fatStartBlock_ + (cluster >> 8); + } + else if (fatType_ == 32) { + lba = fatStartBlock_ + (cluster >> 7); + } + else { + goto fail; + } + if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail; + // store entry + if (fatType_ == 16) { + cacheBuffer_.fat16[cluster & 0XFF] = value; + } + else { + cacheBuffer_.fat32[cluster & 0X7F] = value; + } + // mirror second FAT + if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_; + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +// free a cluster chain +bool SdVolume::freeChain(uint32_t cluster) { + uint32_t next; + + // clear free cluster location + allocSearchStart_ = 2; + + do { + if (!fatGet(cluster, &next)) goto fail; + + // free cluster + if (!fatPut(cluster, 0)) goto fail; + + cluster = next; + } while (!isEOC(cluster)); + + return true; +fail: + return false; +} +//------------------------------------------------------------------------------ +/** Volume free space in clusters. + * + * \return Count of free clusters for success or -1 if an error occurs. + */ +int32_t SdVolume::freeClusterCount() { + uint32_t free = 0; + uint16_t n; + uint32_t todo = clusterCount_ + 2; + + if (fatType_ == 16) { + n = 256; + } + else if (fatType_ == 32) { + n = 128; + } + else { + // put FAT12 here + return -1; + } + + for (uint32_t lba = fatStartBlock_; todo; todo -= n, lba++) { + if (!cacheRawBlock(lba, CACHE_FOR_READ)) return -1; + NOMORE(n, todo); + if (fatType_ == 16) { + for (uint16_t i = 0; i < n; i++) { + if (cacheBuffer_.fat16[i] == 0) free++; + } + } + else { + for (uint16_t i = 0; i < n; i++) { + if (cacheBuffer_.fat32[i] == 0) free++; + } + } + } + return free; +} +//------------------------------------------------------------------------------ +/** Initialize a FAT volume. + * + * \param[in] dev The SD card where the volume is located. + * + * \param[in] part The partition to be used. Legal values for \a part are + * 1-4 to use the corresponding partition on a device formatted with + * a MBR, Master Boot Record, or zero if the device is formatted as + * a super floppy with the FAT boot sector in block zero. + * + * \return The value one, true, is returned for success and + * the value zero, false, is returned for failure. Reasons for + * failure include not finding a valid partition, not finding a valid + * FAT file system in the specified partition or an I/O error. + */ +bool SdVolume::init(Sd2Card* dev, uint8_t part) { + uint32_t totalBlocks; + uint32_t volumeStartBlock = 0; + fat32_boot_t* fbs; + + sdCard_ = dev; + fatType_ = 0; + allocSearchStart_ = 2; + cacheDirty_ = 0; // cacheFlush() will write block if true + cacheMirrorBlock_ = 0; + cacheBlockNumber_ = 0XFFFFFFFF; + + // if part == 0 assume super floppy with FAT boot sector in block zero + // if part > 0 assume mbr volume with partition table + if (part) { + if (part > 4)goto fail; + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; + part_t* p = &cacheBuffer_.mbr.part[part - 1]; + if ((p->boot & 0X7F) != 0 || + p->totalSectors < 100 || + p->firstSector == 0) { + // not a valid partition + goto fail; + } + volumeStartBlock = p->firstSector; + } + if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail; + fbs = &cacheBuffer_.fbs32; + if (fbs->bytesPerSector != 512 || + fbs->fatCount == 0 || + fbs->reservedSectorCount == 0 || + fbs->sectorsPerCluster == 0) { + // not valid FAT volume + goto fail; + } + fatCount_ = fbs->fatCount; + blocksPerCluster_ = fbs->sectorsPerCluster; + // determine shift that is same as multiply by blocksPerCluster_ + clusterSizeShift_ = 0; + while (blocksPerCluster_ != _BV(clusterSizeShift_)) { + // error if not power of 2 + if (clusterSizeShift_++ > 7) goto fail; + } + blocksPerFat_ = fbs->sectorsPerFat16 ? + fbs->sectorsPerFat16 : fbs->sectorsPerFat32; + + fatStartBlock_ = volumeStartBlock + fbs->reservedSectorCount; + + // count for FAT16 zero for FAT32 + rootDirEntryCount_ = fbs->rootDirEntryCount; + + // directory start for FAT16 dataStart for FAT32 + rootDirStart_ = fatStartBlock_ + fbs->fatCount * blocksPerFat_; + + // data start for FAT16 and FAT32 + dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511) / 512); + + // total blocks for FAT16 or FAT32 + totalBlocks = fbs->totalSectors16 ? + fbs->totalSectors16 : fbs->totalSectors32; + + // total data blocks + clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock); + + // divide by cluster size to get cluster count + clusterCount_ >>= clusterSizeShift_; + + // FAT type is determined by cluster count + if (clusterCount_ < 4085) { + fatType_ = 12; + if (!FAT12_SUPPORT) goto fail; + } + else if (clusterCount_ < 65525) { + fatType_ = 16; + } + else { + rootDirStart_ = fbs->fat32RootCluster; + fatType_ = 32; + } + return true; +fail: + return false; +} +#endif diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index e7ceafeff0..0d43cd2c3f 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -1,4 +1,4 @@ -/** +/** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * diff --git a/Marlin/language_bg.h b/Marlin/language_bg.h index e796ff58ab..1071642a91 100644 --- a/Marlin/language_bg.h +++ b/Marlin/language_bg.h @@ -1,4 +1,4 @@ -/** +/** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * diff --git a/Marlin/language_ru.h b/Marlin/language_ru.h index d20651d1f9..de96dac14b 100644 --- a/Marlin/language_ru.h +++ b/Marlin/language_ru.h @@ -1,4 +1,4 @@ -/** +/** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * diff --git a/README.md b/README.md index 242e41a74b..a0aa06aca4 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,94 @@ -# Marlin 3D Printer Firmware - - Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki/Main-Page). - -## Release Candidate -- Marlin 1.1.0-RC5 - 01 April 2016 - -__Not for production use – use with caution!__ - -You can download earlier versions of Marlin on the [Releases page](https://github.com/MarlinFirmware/Marlin/releases). (The latest "stable" release of Marlin is 1.0.2-1.) - -You'll always find the latest Release Candidate in the ["RC" branch](https://github.com/MarlinFirmware/Marlin/tree/RC). Bugs that we find in the current Release Candidate are patched in the ["RCBugFix" branch](https://github.com/MarlinFirmware/Marlin/tree/RC), so during beta testing this is where you can always find the latest code on its way towards release. - -Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev repository](https://github.com/MarlinFirmware/MarlinDev/). - -## Recent Changes -- RCBugFix - - Throw error if compiling with older versions (<1.60) of Arduino due to serios problems with outdated Arduino versions - - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. - -- RC5 - 01 Apr 2016 - - Warn if compiling with older versions (<1.50) of Arduino - - Fix various LCD menu issues - - Add formal support for MKSv1.3 and Sainsmart (RAMPS variants) - - Fix bugs in M104, M109, and M190 - - Fix broken M404 command - - Fix issues with M23 and "Start SD Print" - - More output for M111 - - Rename FILAMENT_SENSOR to FILAMENT_WIDTH_SENSOR - - Fix SD card bugs - - and a lot more - - see https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC5 for details - -- RC4 - 24 Mar 2016 - - Many lingering bugs and nagging issues addressed - - Improvements to LCD menus, CoreXY/CoreXZ, Delta, Bed Leveling, and more… - -- RC3 - 01 Dec 2015 - - A number of language sensitive strings have been revised - - Formatting of the LCD display has been improved to handle negative coordinates better - - Various compiler-related issues have been corrected - -- RC2 - 29 Sep 2015 - - File styling reverted - - LCD update frequency reduced - -- RC1 - 19 Sep 2015 - - Published for testing - -## Submitting Patches -Proposed patches should be submitted as a Pull Request against the [RCBugFix](https://github.com/MarlinFirmware/Marlin/tree/RCBugFix) branch. - -- Don't submit new feature proposals. The RCBugFix branch is for fixing bugs in existing features. -- Do submit questions and concerns. The "naive" question is often the one we forget to ask. -- Follow the proper coding style. Pull requests with styling errors will be delayed. See our [Coding Standards](https://github.com/MarlinFirmware/Marlin/wiki/DNE-Coding-Standards) page for more information. - -## Current Status: Testing - -Please test this firmware and inform us if it misbehaves in any way. Volunteers are standing by! - -[![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224) -[![Travis Build Status](https://travis-ci.org/MarlinFirmware/MarlinDev.svg)](https://travis-ci.org/MarlinFirmware/MarlinDev) - -##### [RepRap.org Wiki Page](http://reprap.org/wiki/Marlin) - -## Credits - -The current Marlin dev team consists of: - - - Scott Lahteine [@thinkyhead] - English - - [@Wurstnase] - Deutsch, English - - F. Malpartida [@fmalpartida] - English, Spanish - - Jochen Groppe [@CONSULitAS] - Deutsch, English - - [@maverikou] - - Chris Palmer [@nophead] - - [@paclema] - - Edward Patel [@epatel] - Swedish, English - - Erik van der Zalm [@ErikZalm] - - David Braam [@daid] - - Bernhard Kubicek [@bkubicek] - - Roxanne Neufeld [@Roxy-3DPrintBoard] - English - -More features have been added by: - - Alberto Cotronei [@MagoKimbra] - - Lampmaker, - - Bradley Feldman, - - and others... - -## License - -Marlin is published under the [GPL license](/LICENSE) because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork. - -While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own. - -[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/MarlinFirmware/Marlin&title=Marlin&language=&tags=github&category=software) +# Marlin 3D Printer Firmware + + Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki/Main-Page). + +## Release Candidate -- Marlin 1.1.0-RC5 - 01 April 2016 + +__Not for production use – use with caution!__ + +You can download earlier versions of Marlin on the [Releases page](https://github.com/MarlinFirmware/Marlin/releases). (The latest "stable" release of Marlin is 1.0.2-1.) + +You'll always find the latest Release Candidate in the ["RC" branch](https://github.com/MarlinFirmware/Marlin/tree/RC). Bugs that we find in the current Release Candidate are patched in the ["RCBugFix" branch](https://github.com/MarlinFirmware/Marlin/tree/RC), so during beta testing this is where you can always find the latest code on its way towards release. + +Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev repository](https://github.com/MarlinFirmware/MarlinDev/). + +## Recent Changes +- RCBugFix + - Throw error if compiling with older versions (<1.60) of Arduino due to serios problems with outdated Arduino versions + - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. + +- RC5 - 01 Apr 2016 + - Warn if compiling with older versions (<1.50) of Arduino + - Fix various LCD menu issues + - Add formal support for MKSv1.3 and Sainsmart (RAMPS variants) + - Fix bugs in M104, M109, and M190 + - Fix broken M404 command + - Fix issues with M23 and "Start SD Print" + - More output for M111 + - Rename FILAMENT_SENSOR to FILAMENT_WIDTH_SENSOR + - Fix SD card bugs + - and a lot more + - see https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC5 for details + +- RC4 - 24 Mar 2016 + - Many lingering bugs and nagging issues addressed + - Improvements to LCD menus, CoreXY/CoreXZ, Delta, Bed Leveling, and more… + +- RC3 - 01 Dec 2015 + - A number of language sensitive strings have been revised + - Formatting of the LCD display has been improved to handle negative coordinates better + - Various compiler-related issues have been corrected + +- RC2 - 29 Sep 2015 + - File styling reverted + - LCD update frequency reduced + +- RC1 - 19 Sep 2015 + - Published for testing + +## Submitting Patches +Proposed patches should be submitted as a Pull Request against the [RCBugFix](https://github.com/MarlinFirmware/Marlin/tree/RCBugFix) branch. + +- Don't submit new feature proposals. The RCBugFix branch is for fixing bugs in existing features. +- Do submit questions and concerns. The "naive" question is often the one we forget to ask. +- Follow the proper coding style. Pull requests with styling errors will be delayed. See our [Coding Standards](https://github.com/MarlinFirmware/Marlin/wiki/DNE-Coding-Standards) page for more information. + +## Current Status: Testing + +Please test this firmware and inform us if it misbehaves in any way. Volunteers are standing by! + +[![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224) +[![Travis Build Status](https://travis-ci.org/MarlinFirmware/MarlinDev.svg)](https://travis-ci.org/MarlinFirmware/MarlinDev) + +##### [RepRap.org Wiki Page](http://reprap.org/wiki/Marlin) + +## Credits + +The current Marlin dev team consists of: + + - Scott Lahteine [@thinkyhead] - English + - [@Wurstnase] - Deutsch, English + - F. Malpartida [@fmalpartida] - English, Spanish + - Jochen Groppe [@CONSULitAS] - Deutsch, English + - [@maverikou] + - Chris Palmer [@nophead] + - [@paclema] + - Edward Patel [@epatel] - Swedish, English + - Erik van der Zalm [@ErikZalm] + - David Braam [@daid] + - Bernhard Kubicek [@bkubicek] + - Roxanne Neufeld [@Roxy-3DPrintBoard] - English + +More features have been added by: + - Alberto Cotronei [@MagoKimbra] + - Lampmaker, + - Bradley Feldman, + - and others... + +## License + +Marlin is published under the [GPL license](/LICENSE) because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork. + +While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own. + +[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/MarlinFirmware/Marlin&title=Marlin&language=&tags=github&category=software) From e58e2814730ef0d97636be0f5c6a6ca43264768c Mon Sep 17 00:00:00 2001 From: Blue-Marlin Date: Wed, 27 Apr 2016 00:57:45 +0200 Subject: [PATCH 155/383] Fix feedrate after toolchange The fix is simple. Most changes are because of changed indendation, bacause of leaving early for wrong tool number --- Marlin/Marlin_main.cpp | 221 +++++++++++++++++++++-------------------- 1 file changed, 112 insertions(+), 109 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 8867ec976a..17d51f06ff 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6304,131 +6304,134 @@ inline void gcode_T(uint8_t tmp_extruder) { SERIAL_CHAR('T'); SERIAL_PROTOCOL_F(tmp_extruder, DEC); SERIAL_ECHOLN(MSG_INVALID_EXTRUDER); + return; } - else { - target_extruder = tmp_extruder; - #if EXTRUDERS > 1 - bool make_move = false; + float stored_feedrate = feedrate; + + if (code_seen('F')) { + float next_feedrate = code_value(); + if (next_feedrate > 0.0) stored_feedrate = feedrate = next_feedrate; + } + else { + #ifdef XY_TRAVEL_SPEED + feedrate = XY_TRAVEL_SPEED; + #else + feedrate = min(max_feedrate[X_AXIS], max_feedrate[Y_AXIS]); #endif + } - if (code_seen('F')) { + #if EXTRUDERS > 1 + if (tmp_extruder != active_extruder) { + // Save current position to return to after applying extruder offset + set_destination_to_current(); + #if ENABLED(DUAL_X_CARRIAGE) + if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() && + (delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) { + // Park old head: 1) raise 2) move to park position 3) lower + plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, + current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); + plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, + current_position[E_AXIS], max_feedrate[X_AXIS], active_extruder); + plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS], + current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); + st_synchronize(); + } - #if EXTRUDERS > 1 - make_move = true; - #endif + // apply Y & Z extruder offset (x offset is already used in determining home pos) + current_position[Y_AXIS] -= extruder_offset[Y_AXIS][active_extruder] - extruder_offset[Y_AXIS][tmp_extruder]; + current_position[Z_AXIS] -= extruder_offset[Z_AXIS][active_extruder] - extruder_offset[Z_AXIS][tmp_extruder]; + active_extruder = tmp_extruder; - float next_feedrate = code_value(); - if (next_feedrate > 0.0) feedrate = next_feedrate; - } - #if EXTRUDERS > 1 - if (tmp_extruder != active_extruder) { - // Save current position to return to after applying extruder offset - set_destination_to_current(); - #if ENABLED(DUAL_X_CARRIAGE) - if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() && - (delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) { - // Park old head: 1) raise 2) move to park position 3) lower - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, - current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); - plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, - current_position[E_AXIS], max_feedrate[X_AXIS], active_extruder); - plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS], - current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); - st_synchronize(); - } + // This function resets the max/min values - the current position may be overwritten below. + set_axis_is_at_home(X_AXIS); - // apply Y & Z extruder offset (x offset is already used in determining home pos) - current_position[Y_AXIS] -= extruder_offset[Y_AXIS][active_extruder] - extruder_offset[Y_AXIS][tmp_extruder]; - current_position[Z_AXIS] -= extruder_offset[Z_AXIS][active_extruder] - extruder_offset[Z_AXIS][tmp_extruder]; - active_extruder = tmp_extruder; + if (dual_x_carriage_mode == DXC_FULL_CONTROL_MODE) { + current_position[X_AXIS] = inactive_extruder_x_pos; + inactive_extruder_x_pos = destination[X_AXIS]; + } + else if (dual_x_carriage_mode == DXC_DUPLICATION_MODE) { + active_extruder_parked = (active_extruder == 0); // this triggers the second extruder to move into the duplication position + if (active_extruder_parked) + current_position[X_AXIS] = inactive_extruder_x_pos; + else + current_position[X_AXIS] = destination[X_AXIS] + duplicate_extruder_x_offset; + inactive_extruder_x_pos = destination[X_AXIS]; + extruder_duplication_enabled = false; + } + else { + // record raised toolhead position for use by unpark + memcpy(raised_parked_position, current_position, sizeof(raised_parked_position)); + raised_parked_position[Z_AXIS] += TOOLCHANGE_UNPARK_ZLIFT; + active_extruder_parked = true; + delayed_move_time = 0; + } + // No extra case for AUTO_BED_LEVELING_FEATURE in DUAL_X_CARRIAGE. Does that mean they don't work together? + #else // !DUAL_X_CARRIAGE + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + // Offset extruder, make sure to apply the bed level rotation matrix + vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder], + extruder_offset[Y_AXIS][tmp_extruder], + 0), + act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder], + extruder_offset[Y_AXIS][active_extruder], + 0), + offset_vec = tmp_offset_vec - act_offset_vec; - // This function resets the max/min values - the current position may be overwritten below. - set_axis_is_at_home(X_AXIS); + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) { + SERIAL_ECHOLNPGM(">>> gcode_T"); + tmp_offset_vec.debug("tmp_offset_vec"); + act_offset_vec.debug("act_offset_vec"); + offset_vec.debug("offset_vec (BEFORE)"); + DEBUG_POS("BEFORE rotation", current_position); + } + #endif - if (dual_x_carriage_mode == DXC_FULL_CONTROL_MODE) { - current_position[X_AXIS] = inactive_extruder_x_pos; - inactive_extruder_x_pos = destination[X_AXIS]; - } - else if (dual_x_carriage_mode == DXC_DUPLICATION_MODE) { - active_extruder_parked = (active_extruder == 0); // this triggers the second extruder to move into the duplication position - if (active_extruder == 0 || active_extruder_parked) - current_position[X_AXIS] = inactive_extruder_x_pos; - else - current_position[X_AXIS] = destination[X_AXIS] + duplicate_extruder_x_offset; - inactive_extruder_x_pos = destination[X_AXIS]; - extruder_duplication_enabled = false; - } - else { - // record raised toolhead position for use by unpark - memcpy(raised_parked_position, current_position, sizeof(raised_parked_position)); - raised_parked_position[Z_AXIS] += TOOLCHANGE_UNPARK_ZLIFT; - active_extruder_parked = true; - delayed_move_time = 0; - } - #else // !DUAL_X_CARRIAGE - #if ENABLED(AUTO_BED_LEVELING_FEATURE) - // Offset extruder, make sure to apply the bed level rotation matrix - vector_3 tmp_offset_vec = vector_3(extruder_offset[X_AXIS][tmp_extruder], - extruder_offset[Y_AXIS][tmp_extruder], - 0), - act_offset_vec = vector_3(extruder_offset[X_AXIS][active_extruder], - extruder_offset[Y_AXIS][active_extruder], - 0), - offset_vec = tmp_offset_vec - act_offset_vec; + offset_vec.apply_rotation(plan_bed_level_matrix.transpose(plan_bed_level_matrix)); - #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) { - SERIAL_ECHOLNPGM(">>> gcode_T"); - tmp_offset_vec.debug("tmp_offset_vec"); - act_offset_vec.debug("act_offset_vec"); - offset_vec.debug("offset_vec (BEFORE)"); - DEBUG_POS("BEFORE rotation", current_position); - } - #endif + current_position[X_AXIS] += offset_vec.x; + current_position[Y_AXIS] += offset_vec.y; + current_position[Z_AXIS] += offset_vec.z; - offset_vec.apply_rotation(plan_bed_level_matrix.transpose(plan_bed_level_matrix)); + #if ENABLED(DEBUG_LEVELING_FEATURE) + if (DEBUGGING(LEVELING)) { + offset_vec.debug("offset_vec (AFTER)"); + DEBUG_POS("AFTER rotation", current_position); + SERIAL_ECHOLNPGM("<<< gcode_T"); + } + #endif - current_position[X_AXIS] += offset_vec.x; - current_position[Y_AXIS] += offset_vec.y; - current_position[Z_AXIS] += offset_vec.z; + #else // !AUTO_BED_LEVELING_FEATURE + // Offset extruder (only by XY) + for (int i=X_AXIS; i<=Y_AXIS; i++) + current_position[i] += extruder_offset[i][tmp_extruder] - extruder_offset[i][active_extruder]; + #endif // !AUTO_BED_LEVELING_FEATURE + // Set the new active extruder and position + active_extruder = tmp_extruder; + #endif // !DUAL_X_CARRIAGE + #if ENABLED(DELTA) + sync_plan_position_delta(); + #else + sync_plan_position(); + #endif + // Move to the old position + if (IsRunning()) prepare_move(); + } // (tmp_extruder != active_extruder) - #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) { - offset_vec.debug("offset_vec (AFTER)"); - DEBUG_POS("AFTER rotation", current_position); - SERIAL_ECHOLNPGM("<<< gcode_T"); - } - #endif + #if ENABLED(EXT_SOLENOID) + st_synchronize(); + disable_all_solenoids(); + enable_solenoid_on_active_extruder(); + #endif // EXT_SOLENOID - #else // !AUTO_BED_LEVELING_FEATURE - // Offset extruder (only by XY) - for (int i=X_AXIS; i<=Y_AXIS; i++) - current_position[i] += extruder_offset[i][tmp_extruder] - extruder_offset[i][active_extruder]; - #endif // !AUTO_BED_LEVELING_FEATURE - // Set the new active extruder and position - active_extruder = tmp_extruder; - #endif // !DUAL_X_CARRIAGE - #if ENABLED(DELTA) - sync_plan_position_delta(); - #else - sync_plan_position(); - #endif - // Move to the old position if 'F' was in the parameters - if (make_move && IsRunning()) prepare_move(); - } + #endif // EXTRUDERS > 1 - #if ENABLED(EXT_SOLENOID) - st_synchronize(); - disable_all_solenoids(); - enable_solenoid_on_active_extruder(); - #endif // EXT_SOLENOID + feedrate = stored_feedrate; - #endif // EXTRUDERS > 1 - SERIAL_ECHO_START; - SERIAL_ECHO(MSG_ACTIVE_EXTRUDER); - SERIAL_PROTOCOLLN((int)active_extruder); - } + SERIAL_ECHO_START; + SERIAL_ECHO(MSG_ACTIVE_EXTRUDER); + SERIAL_PROTOCOLLN((int)active_extruder); } /** From 2d89b5527f272378855fa2722f86bb987597b28e Mon Sep 17 00:00:00 2001 From: Paul Philippov Date: Sun, 24 Apr 2016 01:25:27 -0400 Subject: [PATCH 156/383] fixed link to wiki --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a0aa06aca4..ce402205dd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Marlin 3D Printer Firmware - Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki/Main-Page). + Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki). ## Release Candidate -- Marlin 1.1.0-RC5 - 01 April 2016 From ee2f37f3ccd6d6e9429ed29b27e0eb52acb11dd7 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Wed, 27 Apr 2016 11:21:51 +0900 Subject: [PATCH 157/383] Update distribution date and readme It sync with the RC. --- Marlin/Version.h | 2 +- README.md | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Marlin/Version.h b/Marlin/Version.h index d8926d5cfd..893eb24ed0 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -42,7 +42,7 @@ * here we define this default string as the date where the latest release * version was tagged. */ -#define STRING_DISTRIBUTION_DATE "2016-04-16 12:00" +#define STRING_DISTRIBUTION_DATE "2016-04-24 12:00" /** * @todo: Missing documentation block diff --git a/README.md b/README.md index ce402205dd..85f8d657a2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki). -## Release Candidate -- Marlin 1.1.0-RC5 - 01 April 2016 +## Release Candidate -- Marlin 1.1.0-RC6 - 24 April 2016 __Not for production use – use with caution!__ @@ -14,9 +14,14 @@ Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev reposit ## Recent Changes - RCBugFix - - Throw error if compiling with older versions (<1.60) of Arduino due to serios problems with outdated Arduino versions + - Throw error if compiling with older versions (<1.60) of Arduino due to serious problems with outdated Arduino versions - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. +- RC6 - 23 Apr 2016 + - Completed support for CoreXY / CoreXZ in planner + - Changes to positioning behavior + - Various issues fixed. More details pending. + - RC5 - 01 Apr 2016 - Warn if compiling with older versions (<1.50) of Arduino - Fix various LCD menu issues @@ -91,4 +96,4 @@ Marlin is published under the [GPL license](/LICENSE) because we believe in open While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own. -[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/MarlinFirmware/Marlin&title=Marlin&language=&tags=github&category=software) +[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/MarlinFirmware/Marlin&title=Marlin&language=&tags=github&category=software) \ No newline at end of file From e89f01d0445b7548e19a282acbd67039461c0097 Mon Sep 17 00:00:00 2001 From: Blue-Marlin Date: Wed, 27 Apr 2016 12:59:48 +0200 Subject: [PATCH 158/383] Correct an error in lang_de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is no way to translate "A-travel" to "A Rückzug". Thats simply wrong. --- Marlin/language_de.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index adccd1f202..a00b225803 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -102,8 +102,8 @@ #define MSG_VMIN "V min" #define MSG_VTRAV_MIN "VTrav min" #define MSG_AMAX "A max " // space by purpose -#define MSG_A_RETRACT "A Retract" -#define MSG_A_TRAVEL "A Rückzug" +#define MSG_A_RETRACT "A Rückzug" +#define MSG_A_TRAVEL "A Reise" #define MSG_XSTEPS "X steps/mm" #define MSG_YSTEPS "Y steps/mm" #define MSG_ZSTEPS "Z steps/mm" From 259794c0bebd38b31c00268b6720aa8c241fd239 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 26 Apr 2016 22:25:50 -0700 Subject: [PATCH 159/383] Make DISPLAY_CHARSET_HD44780 a single setting --- Marlin/Configuration.h | 42 ++++++++++--------- Marlin/SanityCheck.h | 4 +- Marlin/dogm_lcd_implementation.h | 9 ++-- .../Felix/Configuration.h | 42 ++++++++++--------- .../Felix/Configuration_DUAL.h | 42 ++++++++++--------- .../Hephestos/Configuration.h | 42 ++++++++++--------- .../Hephestos_2/Configuration.h | 42 ++++++++++--------- .../K8200/Configuration.h | 42 ++++++++++--------- .../RepRapWorld/Megatronics/Configuration.h | 42 ++++++++++--------- .../RigidBot/Configuration.h | 42 ++++++++++--------- .../SCARA/Configuration.h | 42 ++++++++++--------- .../TAZ4/Configuration.h | 42 ++++++++++--------- .../WITBOX/Configuration.h | 42 ++++++++++--------- .../adafruit/ST7565/Configuration.h | 42 ++++++++++--------- .../delta/biv2.5/Configuration.h | 42 ++++++++++--------- .../delta/generic/Configuration.h | 42 ++++++++++--------- .../delta/kossel_mini/Configuration.h | 42 ++++++++++--------- .../delta/kossel_pro/Configuration.h | 42 ++++++++++--------- .../delta/kossel_xl/Configuration.h | 42 ++++++++++--------- .../makibox/Configuration.h | 42 ++++++++++--------- .../tvrrug/Round2/Configuration.h | 42 ++++++++++--------- Marlin/language.h | 8 ++-- Marlin/utf_mapper.h | 26 ++++++------ 23 files changed, 461 insertions(+), 384 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index edbeb44ab7..9ecfad283c 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -773,25 +773,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 89b77578a7..9f918781ea 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -172,8 +172,8 @@ /** * Required LCD language */ -#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) - #error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller. +#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && !defined(DISPLAY_CHARSET_HD44780) + #error You must set DISPLAY_CHARSET_HD44780 to JAPANESE, WESTERN or CYRILLIC for your LCD controller. #endif /** diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 0ecbbcbab0..3af19e15d4 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -37,7 +37,8 @@ #define DOGM_LCD_IMPLEMENTATION_H /** - * Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays. + * Implementation of the LCD display routines for a DOGM128 graphic display. + * These are common LCD 128x64 pixel graphic displays. */ #if ENABLED(ULTIPANEL) @@ -91,13 +92,13 @@ #define FONT_MENU_NAME ISO10646_1_5x7 #endif #else // SIMULATE_ROMFONT - #if ENABLED(DISPLAY_CHARSET_HD44780_JAPAN) + #if DISPLAY_CHARSET_HD44780 == JAPANESE #include "dogm_font_data_HD44780_J.h" #define FONT_MENU_NAME HD44780_J_5x7 - #elif ENABLED(DISPLAY_CHARSET_HD44780_WESTERN) + #elif DISPLAY_CHARSET_HD44780 == WESTERN #include "dogm_font_data_HD44780_W.h" #define FONT_MENU_NAME HD44780_W_5x7 - #elif ENABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) + #elif DISPLAY_CHARSET_HD44780 == CYRILLIC #include "dogm_font_data_HD44780_C.h" #define FONT_MENU_NAME HD44780_C_5x7 #else // fall-back diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 1cdefc2bcf..7c23be9b8e 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -755,25 +755,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 3707f72a4c..3da920c125 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -752,25 +752,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 395bb8e761..cd666eb501 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -764,25 +764,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 0dbb1d7633..0490108940 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -766,25 +766,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 0d43cd2c3f..f276919254 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -789,25 +789,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // K8200: for Display VM8201 -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // K8200: for Display VM8201 // // LCD TYPE diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 3f6208345c..b86d79efa7 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -772,25 +772,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 82b66ef9d1..7e56111574 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -767,25 +767,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 808bf7e62f..e74071d79c 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -780,25 +780,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 6c8165ea0e..8b91f45815 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -793,25 +793,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 434143e38f..7e64c38483 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -764,25 +764,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index f941bb0d1c..90a7026962 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -772,25 +772,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 40d6e9af80..fd1d0ca7f9 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -901,25 +901,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index c492573f5a..de116a9477 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -901,25 +901,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index e77eb33795..bb9cce1bbc 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -905,25 +905,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index b5c9c76c6f..4df6821927 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -898,25 +898,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 943443fb4a..276a194d72 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -906,25 +906,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 2b414100f5..de0dc03a72 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -775,25 +775,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 59cfe714d5..d9cd68d7bc 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -766,25 +766,29 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -// -// LCD CHARACTER SET -// -// Choose ONE of the following charset options. This selection depends on -// your physical hardware, so it must match your character-based LCD. -// -// Note: This option is NOT applicable to graphical displays. -// -// To find out what type of display you have: -// - Compile and upload with the language (above) set to 'test' -// - Click the controller to view the LCD menu -// -// The LCD will display two lines from the upper half of the character set. -// -// See also https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language -// -#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware -//#define DISPLAY_CHARSET_HD44780_WESTERN -//#define DISPLAY_CHARSET_HD44780_CYRILLIC +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCD's provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language + * + * :['JAPANESE','WESTERN','CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE // // LCD TYPE diff --git a/Marlin/language.h b/Marlin/language.h index e9a30a2d7d..a88aacace9 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -27,6 +27,10 @@ #define GENERATE_LANGUAGE_INCLUDE(M) STRINGIFY_(language_##M.h) +// For character-based LCD controllers (DISPLAY_CHARSET_HD44780) +#define JAPANESE 1 +#define WESTERN 2 +#define CYRILLIC 3 // NOTE: IF YOU CHANGE LANGUAGE FILES OR MERGE A FILE WITH CHANGES // @@ -232,10 +236,6 @@ // LCD Menu Messages -#if DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) - #define DISPLAY_CHARSET_HD44780_JAPAN -#endif - #include LANGUAGE_INCLUDE #include "language_en.h" diff --git a/Marlin/utf_mapper.h b/Marlin/utf_mapper.h index 26e97772bf..22d5d406ce 100644 --- a/Marlin/utf_mapper.h +++ b/Marlin/utf_mapper.h @@ -40,7 +40,7 @@ #define MAPPER_ONE_TO_ONE #endif #else // SIMULATE_ROMFONT - #if ENABLED(DISPLAY_CHARSET_HD44780_JAPAN) + #if DISPLAY_CHARSET_HD44780 == JAPANESE #if ENABLED(MAPPER_C2C3) const PROGMEM uint8_t utf_recode[] = { // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is fair for symbols @@ -77,7 +77,7 @@ #error( "Cyrillic on a japanese dsplay makes no sense. There are no matching symbols."); #endif - #elif ENABLED(DISPLAY_CHARSET_HD44780_WESTERN) + #elif DISPLAY_CHARSET_HD44780 == WESTERN #if ENABLED(MAPPER_C2C3) const PROGMEM uint8_t utf_recode[] = { // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is relative complete. @@ -111,28 +111,28 @@ #error( "Katakana on a western display makes no sense. There are no matching symbols." ); #endif - #elif ENABLED(DISPLAY_CHARSET_HD44780_CYRILLIC) + #elif DISPLAY_CHARSET_HD44780 == CYRILLIC #if ENABLED(MAPPER_D0D1) #define MAPPER_D0D1_MOD // it is a Russian alphabet translation // except 0401 --> 0xa2 = Ё, 0451 --> 0xb5 = ё const PROGMEM uint8_t utf_recode[] = { 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4, // unicode U+0400 to U+047f - // A Б->Ё B Г Д E Ж З // 0 Ѐ Ё Ђ Ѓ Є Ѕ І Ї + // A Б->Ё B Г Д E Ж З // 0 Ѐ Ё Ђ Ѓ Є Ѕ І Ї 0xa5,0xa6,0x4b,0xa7,0x4d,0x48,0x4f,0xa8, // Ј Љ Њ Ћ Ќ Ѝ Ў Џ - // И Й K Л M H O П // 1 А Б В Г Д Е Ж З + // И Й K Л M H O П // 1 А Б В Г Д Е Ж З 0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab, // И Й К Л М Н О П - // P C T У Ф X Ч ч // 2 Р С Т У Ф Х Г Ч + // P C T У Ф X Ч ч // 2 Р С Т У Ф Х Г Ч 0xac,0xe2,0xad,0xae,0x62,0xaf,0xb0,0xb1, // Ш Щ Ъ Ы Ь Э Ю Я - // Ш Щ Ъ Ы b Э Ю Я // 3 а б в г д е ж з + // Ш Щ Ъ Ы b Э Ю Я // 3 а б в г д е ж з 0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7, // и й к л м н о п - // a б->ё в г д e ж з // 4 р с т у ф х ц ч + // a б->ё в г д e ж з // 4 р с т у ф х ц ч 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0x6f,0xbe, // ш щ ъ ы ь э ю я - // и й к л м н o п // 5 ѐ ё ђ ѓ є ѕ і ї + // и й к л м н o п // 5 ѐ ё ђ ѓ є ѕ і ї 0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0, // ј љ њ ћ ќ ѝ ў џ - // p c т y ф x ц ч // 6 Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ + // p c т y ф x ц ч // 6 Ѡ ѡ Ѣ ѣ Ѥ ѥ Ѧ ѧ 0xc1,0xe6,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7 // Ѫ ѩ Ѫ ѫ Ѭ ѭ Ѯ ѯ - // ш щ ъ ы ь э ю я // 7 Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ + // ш щ ъ ы ь э ю я // 7 Ѱ ѱ Ѳ ѳ Ѵ ѵ Ѷ ѷ }; // ѻ ѹ Ѻ ѻ Ѽ ѽ Ѿ ѿ #elif ENABLED(MAPPER_C2C3) #error( "Western languages on a cyrillic display makes no sense. There are no matching symbols." ); @@ -140,8 +140,8 @@ #error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." ); #endif #else - #error("Something went wrong in the selection of DISPLAY_CHARSET_HD44780's"); - #endif // DISPLAY_CHARSET_HD44780_CYRILLIC + #error("Something went wrong in the setting of DISPLAY_CHARSET_HD44780"); + #endif // DISPLAY_CHARSET_HD44780 #endif // SIMULATE_ROMFONT #if ENABLED(MAPPER_NON) From 0c11566f426acf6befd51e9693eece83620696d0 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 26 Apr 2016 23:32:15 -0700 Subject: [PATCH 160/383] Replace LANGUAGE_INCLUDE with LCD_LANGUAGE --- Marlin/Configuration.h | 2 +- Marlin/SanityCheck.h | 2 ++ .../example_configurations/Felix/Configuration.h | 2 +- .../Felix/Configuration_DUAL.h | 2 +- .../Hephestos/Configuration.h | 2 +- .../Hephestos_2/Configuration.h | 2 +- .../example_configurations/K8200/Configuration.h | 2 +- .../RepRapWorld/Megatronics/Configuration.h | 2 +- .../RigidBot/Configuration.h | 2 +- .../example_configurations/SCARA/Configuration.h | 2 +- .../example_configurations/TAZ4/Configuration.h | 2 +- .../WITBOX/Configuration.h | 2 +- .../adafruit/ST7565/Configuration.h | 2 +- .../delta/biv2.5/Configuration.h | 2 +- .../delta/generic/Configuration.h | 2 +- .../delta/kossel_mini/Configuration.h | 2 +- .../delta/kossel_pro/Configuration.h | 2 +- .../delta/kossel_xl/Configuration.h | 2 +- .../makibox/Configuration.h | 2 +- .../tvrrug/Round2/Configuration.h | 2 +- Marlin/language.h | 16 +++++++++------- 21 files changed, 30 insertions(+), 26 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 9ecfad283c..e433314830 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -771,7 +771,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 9f918781ea..70553f6f55 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -506,6 +506,8 @@ #error DISABLE_MAX_ENDSTOPS and DISABLE_MIN_ENDSTOPS deprecated. Use individual USE_*_PLUG options instead. #elif ENABLED(Z_DUAL_ENDSTOPS) && !defined(Z2_USE_ENDSTOP) #error Z_DUAL_ENDSTOPS settings are simplified. Just set Z2_USE_ENDSTOP to the endstop you want to repurpose for Z2 +#elif defined(LANGUAGE_INCLUDE) + #error LANGUAGE_INCLUDE has been replaced by LCD_LANGUAGE. Please update your configuration. #endif #endif //SANITYCHECK_H diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 7c23be9b8e..ca3bf1f8c5 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -753,7 +753,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 3da920c125..0cd247491a 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -750,7 +750,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index cd666eb501..80adf1d2fc 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -762,7 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 0490108940..85d47b07e5 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -764,7 +764,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index f276919254..e0959afff8 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -787,7 +787,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index b86d79efa7..c41b4af61c 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -770,7 +770,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 7e56111574..2198dd5784 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -765,7 +765,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index e74071d79c..f65c2d32da 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -778,7 +778,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 8b91f45815..997170a590 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -791,7 +791,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 7e64c38483..2eeb2a3c2a 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -762,7 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 90a7026962..f284f72900 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -770,7 +770,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index fd1d0ca7f9..80c3f9d3d8 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -899,7 +899,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index de116a9477..6303c4412c 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -899,7 +899,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index bb9cce1bbc..dc525e73df 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -903,7 +903,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index 4df6821927..fc6ad03585 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -896,7 +896,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 276a194d72..44b835987c 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -904,7 +904,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index de0dc03a72..d75cc382bb 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -773,7 +773,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index d9cd68d7bc..b68021ca92 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -764,7 +764,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // en, pl, fr, de, es, ru, bg, it, pt, pt_utf8, pt-br, pt-br_utf8, // fi, an, nl, ca, eu, kana, kana_utf8, cn, cz, test // -//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) +//#define LCD_LANGUAGE en /** * LCD Character Set diff --git a/Marlin/language.h b/Marlin/language.h index a88aacace9..179b1f7109 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -25,7 +25,10 @@ #include "Configuration.h" -#define GENERATE_LANGUAGE_INCLUDE(M) STRINGIFY_(language_##M.h) +// Fallback if no language is set. DON'T CHANGE +#ifndef LCD_LANGUAGE + #define LCD_LANGUAGE en +#endif // For character-based LCD controllers (DISPLAY_CHARSET_HD44780) #define JAPANESE 1 @@ -62,11 +65,6 @@ // cn Chinese // cz Czech -// fallback if no language is set, don't change -#ifndef LANGUAGE_INCLUDE - #define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en) -#endif - #if ENABLED(USE_AUTOMATIC_VERSIONING) #include "_Version.h" #else @@ -236,7 +234,11 @@ // LCD Menu Messages -#include LANGUAGE_INCLUDE +#define LANGUAGE_INCL_(M) STRINGIFY_(language_##M.h) +#define LANGUAGE_INCL(M) LANGUAGE_INCL_(M) +#define INCLUDE_LANGUAGE LANGUAGE_INCL(LCD_LANGUAGE) + +#include INCLUDE_LANGUAGE #include "language_en.h" #endif //__LANGUAGE_H From 6c48852b2081838a9d5e7104c3a99a86ea792ff3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 27 Apr 2016 19:54:59 -0700 Subject: [PATCH 161/383] Update distribution date --- Marlin/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/Version.h b/Marlin/Version.h index 893eb24ed0..68f3f7604f 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -42,7 +42,7 @@ * here we define this default string as the date where the latest release * version was tagged. */ -#define STRING_DISTRIBUTION_DATE "2016-04-24 12:00" +#define STRING_DISTRIBUTION_DATE "2016-04-27 12:00" /** * @todo: Missing documentation block From c7e4b3044b9ca2ef865d3c28977de3412a8434e4 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Thu, 28 Apr 2016 18:12:47 +0900 Subject: [PATCH 162/383] =?UTF-8?q?Change=20"RC6"=20to=20"RCBugFix"=20on?= =?UTF-8?q?=20top=20part=20of=20the=20readme,=20etc=20=E3=83=BBChange=20"R?= =?UTF-8?q?C6"=20to=20"RCBugFix"=20on=20top=20part=20of=20the=20readme=20?= =?UTF-8?q?=E3=83=BBUnify=20distribution=20date=20of=20RCBugFix=20and=20RC?= =?UTF-8?q?6=20=E3=83=BBMove=20comments=20about=20IDE=20version=20from=20R?= =?UTF-8?q?CBugFix=20section=20to=20RC6=20section?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 85f8d657a2..0ced9403e4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Additional documentation can be found in [The Marlin Wiki](https://github.com/MarlinFirmware/Marlin/wiki). -## Release Candidate -- Marlin 1.1.0-RC6 - 24 April 2016 +## Release Candidate -- Marlin 1.1.0-RCBugFix - 27 April 2016 __Not for production use – use with caution!__ @@ -14,13 +14,13 @@ Future development (Marlin 1.2 and beyond) takes place in the [MarlinDev reposit ## Recent Changes - RCBugFix - - Throw error if compiling with older versions (<1.60) of Arduino due to serious problems with outdated Arduino versions - - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. -- RC6 - 23 Apr 2016 +- RC6 - 24 Apr 2016 - Completed support for CoreXY / CoreXZ in planner - Changes to positioning behavior - Various issues fixed. More details pending. + - Throw error if compiling with older versions (<1.60) of Arduino due to serious problems with outdated Arduino versions + - Please upgrade your IDE at least to Arduino 1.6.0. Thanks. - RC5 - 01 Apr 2016 - Warn if compiling with older versions (<1.50) of Arduino From f1b00eb12be338979428efa42c08f4c03533c4af Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 20:27:17 -0700 Subject: [PATCH 163/383] Correct the REVERSE_MENU_DIRECTION comment --- Marlin/Configuration.h | 4 +++- Marlin/example_configurations/Felix/Configuration.h | 4 +++- Marlin/example_configurations/Felix/Configuration_DUAL.h | 4 +++- Marlin/example_configurations/Hephestos/Configuration.h | 4 +++- Marlin/example_configurations/Hephestos_2/Configuration.h | 4 +++- Marlin/example_configurations/K8200/Configuration.h | 4 +++- .../RepRapWorld/Megatronics/Configuration.h | 4 +++- Marlin/example_configurations/RigidBot/Configuration.h | 4 +++- Marlin/example_configurations/SCARA/Configuration.h | 4 +++- Marlin/example_configurations/TAZ4/Configuration.h | 4 +++- Marlin/example_configurations/WITBOX/Configuration.h | 4 +++- Marlin/example_configurations/adafruit/ST7565/Configuration.h | 4 +++- Marlin/example_configurations/delta/biv2.5/Configuration.h | 4 +++- Marlin/example_configurations/delta/generic/Configuration.h | 4 +++- .../example_configurations/delta/kossel_mini/Configuration.h | 4 +++- .../example_configurations/delta/kossel_pro/Configuration.h | 4 +++- Marlin/example_configurations/delta/kossel_xl/Configuration.h | 4 +++- Marlin/example_configurations/makibox/Configuration.h | 4 +++- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 4 +++- 19 files changed, 57 insertions(+), 19 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index edbeb44ab7..762ddbaf5e 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -847,7 +847,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 1cdefc2bcf..dec592b4ce 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -829,7 +829,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 3707f72a4c..8c1182e540 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -826,7 +826,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 395bb8e761..eadb329186 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -838,7 +838,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 0dbb1d7633..a6ebf67145 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -840,7 +840,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 0d43cd2c3f..7ce090e87a 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -863,7 +863,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 3f6208345c..9f750accb0 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -846,7 +846,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 82b66ef9d1..d9b5163f56 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -841,7 +841,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 808bf7e62f..afa779d7fc 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -854,7 +854,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 6c8165ea0e..06580521ef 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -867,7 +867,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 434143e38f..80d85d3184 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -838,7 +838,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index f941bb0d1c..916c06ae06 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -846,7 +846,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 40d6e9af80..b8c1a2de5c 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -975,7 +975,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index c492573f5a..657a599b7e 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -975,7 +975,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index e77eb33795..cff2f90eff 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -979,7 +979,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index b5c9c76c6f..c872c4fd49 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -972,7 +972,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 943443fb4a..3aa8c30767 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -980,7 +980,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 2b414100f5..0433f41e26 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -849,7 +849,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 59cfe714d5..cce0348bd6 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -840,7 +840,9 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // This option reverses the encoder direction for navigating LCD menus. -// By default CLOCKWISE == DOWN. With this enabled CLOCKWISE == UP. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. // //#define REVERSE_MENU_DIRECTION From f4706bb90ebf973a1e9c92f80fc9a22802e34742 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 21:11:15 -0700 Subject: [PATCH 164/383] Keepalive not needed while waiting for temperatures --- Marlin/Marlin_main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 17d51f06ff..eac4acf108 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4464,6 +4464,8 @@ inline void gcode_M109() { #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) #endif //TEMP_RESIDENCY_TIME > 0 + KEEPALIVE_STATE(NOT_BUSY); + cancel_heatup = false; millis_t now, next_temp_ms = 0; do { @@ -4508,6 +4510,7 @@ inline void gcode_M109() { } while (!cancel_heatup && TEMP_CONDITIONS); LCD_MESSAGEPGM(MSG_HEATING_COMPLETE); + KEEPALIVE_STATE(IN_HANDLER); } #if HAS_TEMP_BED @@ -4541,6 +4544,7 @@ inline void gcode_M109() { millis_t now, next_temp_ms = 0; // Wait for temperature to come close enough + KEEPALIVE_STATE(NOT_BUSY); do { now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. @@ -4580,6 +4584,7 @@ inline void gcode_M109() { } while (!cancel_heatup && TEMP_BED_CONDITIONS); LCD_MESSAGEPGM(MSG_BED_DONE); + KEEPALIVE_STATE(IN_HANDLER); } #endif // HAS_TEMP_BED From 26b166d7cf1e363da2daefbc52fd097d88513807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:12:08 +0100 Subject: [PATCH 165/383] Made all stopwatch::debug() calls static --- Marlin/printcounter.cpp | 109 ++++++++++++++++++++++++++++++++++++++++ Marlin/printcounter.h | 93 ++++++++++++++++++++++++++++++++++ Marlin/stopwatch.cpp | 8 +-- 3 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 Marlin/printcounter.cpp create mode 100644 Marlin/printcounter.h diff --git a/Marlin/printcounter.cpp b/Marlin/printcounter.cpp new file mode 100644 index 0000000000..a8da87d330 --- /dev/null +++ b/Marlin/printcounter.cpp @@ -0,0 +1,109 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Marlin.h" +#include "printcounter.h" +#include + +PrintCounter::PrintCounter(): super() {} + +void PrintCounter::tick() { + if (!this->isRunning()) return; + + static uint32_t update_before = millis(), + eeprom_before = millis(); + + uint32_t now = millis(); + + // Trying to get the amount of calculations down to the bare min + const static uint16_t i = this->updateInterval * 1000; + + if (now - update_before >= i) { + //this->addToTimeCounter((uint16_t) (now - update_before) / 1000); + update_before = now; + PrintCounter::debug(PSTR("tick1")); + } + + // Trying to get the amount of calculations down to the bare min + const static uint16_t j = this->saveInterval * 1000; + + if (now - eeprom_before >= j) { + eeprom_before = now; + this->save(); + } +} + +void PrintCounter::load() { + uint16_t pos = this->addr; + + this->data.successPrints= eeprom_read_word ((uint16_t*) pos); + this->data.failedPrints = eeprom_read_word ((uint16_t*) pos); + this->data.printTime = eeprom_read_dword((uint32_t*) pos); + this->data.longestPrint = eeprom_read_dword((uint32_t*) pos); + + SERIAL_ECHOPGM("successPrints: "); + SERIAL_ECHOLN(this->data.successPrints); + + SERIAL_ECHOPGM("failedPrints: "); + SERIAL_ECHOLN(this->data.failedPrints); + + SERIAL_ECHOPGM("printTime: "); + SERIAL_ECHOLN(this->data.printTime); + + SERIAL_ECHOPGM("longestPrint: "); + SERIAL_ECHOLN(this->data.longestPrint); +} + +void PrintCounter::save() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("save")); + #endif + + uint16_t pos = this->addr; + + eeprom_write_word ((uint16_t*) pos, this->data.successPrints); + eeprom_write_word ((uint16_t*) pos, this->data.failedPrints); + eeprom_write_dword((uint32_t*) pos, this->data.printTime); + eeprom_write_dword((uint32_t*) pos, this->data.longestPrint); +} + +void PrintCounter::start() { + super::start(); + this->load(); +} + +void PrintCounter::stop() { + super::stop(); + this->save(); +} + +#if ENABLED(DEBUG_PRINTCOUNTER) + + void PrintCounter::debug(const char func[]) { + if (DEBUGGING(INFO)) { + SERIAL_ECHOPGM("PrintCounter::"); + serialprintPGM(func); + SERIAL_ECHOLNPGM("()"); + } + } + +#endif diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h new file mode 100644 index 0000000000..99d5b207b6 --- /dev/null +++ b/Marlin/printcounter.h @@ -0,0 +1,93 @@ +/* + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef PRINTCOUNTER_H +#define PRINTCOUNTER_H + +#include "macros.h" +#include "stopwatch.h" + +// Print debug messages with M111 S2 +#define DEBUG_PRINTCOUNTER + +struct printStatistics { // 12 bytes + uint16_t successPrints; // Total number of prints + uint16_t failedPrints; // Total number of aborted prints - not in use + uint32_t printTime; // Total time printing + uint32_t longestPrint; // Longest print job - not in use +}; + +class PrintCounter: public Stopwatch { + private: + typedef Stopwatch super; + + printStatistics data; + + /** + * @brief EEPROM address + * @details Defines the start offset address where the data is stored. + */ + const uint16_t addr = 60; + + /** + * @brief Interval in seconds between counter updates + * @details This const value defines what will be the time between each + * accumulator update. This is different from the EEPROM save interval + * which is user defined at the Configuration.h file. + */ + const uint16_t updateInterval = 2; + + /** + * @brief Interval in seconds between EEPROM saves + * @details This const value defines what will be the time between each + * EEPROM save cycle, the development team recommends to set this value + * no lower than 3600 secs (1 hour). + */ + const uint16_t saveInterval = PRINTCOUNTER_SAVE_INTERVAL; + + public: + /** + * @brief Class constructor + */ + PrintCounter(); + + void tick(); + void save(); + void load(); + void addToTimeCounter(uint16_t const &minutes); + void addToPrintCounter(uint8_t const &prints); + + void start(); + void stop(); + + #if ENABLED(DEBUG_PRINTCOUNTER) + + /** + * @brief Prints a debug message + * @details Prints a simple debug message "PrintCounter::function" + */ + static void debug(const char func[]); + + #endif +}; + +#endif // PRINTCOUNTER_H diff --git a/Marlin/stopwatch.cpp b/Marlin/stopwatch.cpp index f871af1c7c..4a1344db14 100644 --- a/Marlin/stopwatch.cpp +++ b/Marlin/stopwatch.cpp @@ -29,7 +29,7 @@ Stopwatch::Stopwatch() { void Stopwatch::stop() { #if ENABLED(DEBUG_STOPWATCH) - debug(PSTR("stop")); + Stopwatch::debug(PSTR("stop")); #endif if (!this->isRunning()) return; @@ -40,7 +40,7 @@ void Stopwatch::stop() { void Stopwatch::pause() { #if ENABLED(DEBUG_STOPWATCH) - debug(PSTR("pause")); + Stopwatch::debug(PSTR("pause")); #endif if (!this->isRunning()) return; @@ -51,7 +51,7 @@ void Stopwatch::pause() { void Stopwatch::start() { #if ENABLED(DEBUG_STOPWATCH) - debug(PSTR("start")); + Stopwatch::debug(PSTR("start")); #endif if (this->isRunning()) return; @@ -65,7 +65,7 @@ void Stopwatch::start() { void Stopwatch::reset() { #if ENABLED(DEBUG_STOPWATCH) - debug(PSTR("reset")); + Stopwatch::debug(PSTR("reset")); #endif this->state = STPWTCH_STOPPED; From 4f541c5bb5318b4da52a3493c484166be60caa7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:12:46 +0100 Subject: [PATCH 166/383] Added a new object: PrintCounter --- Marlin/printcounter.cpp | 169 +++++++++++++++++++++++++++++++--------- Marlin/printcounter.h | 76 +++++++++++++++--- 2 files changed, 197 insertions(+), 48 deletions(-) diff --git a/Marlin/printcounter.cpp b/Marlin/printcounter.cpp index a8da87d330..f2999fb044 100644 --- a/Marlin/printcounter.cpp +++ b/Marlin/printcounter.cpp @@ -24,7 +24,112 @@ #include "printcounter.h" #include -PrintCounter::PrintCounter(): super() {} +PrintCounter::PrintCounter(): super() { + this->loadStats(); +} + +bool PrintCounter::isLoaded() { + return this->loaded; +} + +void PrintCounter::initStats() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("initStats")); + #endif + + this->loaded = true; + this->data = { + 0, 0, 0, 0 + }; + + this->saveStats(); + eeprom_write_byte((uint8_t*) this->addr, 0x16); +} + +void PrintCounter::loadStats() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("loadStats")); + #endif + + uint16_t addr = this->addr; + + // Checks if the EEPROM block is initialized + if (eeprom_read_byte((uint8_t*) addr) != 0x16) this->initStats(); + + else { + // Skip the magic header byte + addr += sizeof(uint8_t); + + // @todo This section will need rewrite once the ConfigurationStore + // and/or PersistentStorage object comes along. + this->data.totalPrints = eeprom_read_word((uint16_t*) addr); + addr += sizeof(uint16_t); + + this->data.finishedPrints = eeprom_read_word((uint16_t*) addr); + addr += sizeof(uint16_t); + + this->data.printTime = eeprom_read_dword((uint32_t*) addr); + addr += sizeof(uint32_t); + + this->data.longestPrint = eeprom_read_dword((uint32_t*) addr); + } + + this->loaded = true; +} + +void PrintCounter::saveStats() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("saveStats")); + #endif + + // Refuses to save data is object is not loaded + if (!this->isLoaded()) return; + + // Skip the magic header byte + uint16_t addr = this->addr + sizeof(uint8_t); + + // @todo This section will need rewrite once the ConfigurationStore + // and/or PersistentStorage object comes along. + eeprom_write_word ((uint16_t*) addr, this->data.totalPrints); + addr += sizeof(uint16_t); + + eeprom_write_word ((uint16_t*) addr, this->data.finishedPrints); + addr += sizeof(uint16_t); + + eeprom_write_dword((uint32_t*) addr, this->data.printTime); + addr += sizeof(uint32_t); + + eeprom_write_dword((uint32_t*) addr, this->data.longestPrint); +} + +void PrintCounter::showStats() { + SERIAL_ECHOPGM("Print statistics: Total: "); + SERIAL_ECHO(this->data.totalPrints); + + SERIAL_ECHOPGM(", Finished: "); + SERIAL_ECHO(this->data.finishedPrints); + + SERIAL_ECHOPGM(", Failed: "); + SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints); + + uint32_t t = this->data.printTime /60; + SERIAL_ECHOPGM(", Total print time: "); + SERIAL_ECHO(t / 60); + + SERIAL_ECHOPGM("h "); + SERIAL_ECHO(t % 60); + + SERIAL_ECHOPGM("min"); + + #if ENABLED(DEBUG_PRINTCOUNTER) + SERIAL_ECHOPGM(" ("); + SERIAL_ECHO(this->data.printTime); + SERIAL_ECHOPGM(")"); + #endif + + // @todo longestPrint missing implementation + SERIAL_EOL; +} void PrintCounter::tick() { if (!this->isRunning()) return; @@ -38,9 +143,14 @@ void PrintCounter::tick() { const static uint16_t i = this->updateInterval * 1000; if (now - update_before >= i) { - //this->addToTimeCounter((uint16_t) (now - update_before) / 1000); + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("tick")); + #endif + + uint16_t t = this->duration();; + this->data.printTime += t - this->lastUpdate; + this->lastUpdate = t; update_before = now; - PrintCounter::debug(PSTR("tick1")); } // Trying to get the amount of calculations down to the bare min @@ -48,52 +158,37 @@ void PrintCounter::tick() { if (now - eeprom_before >= j) { eeprom_before = now; - this->save(); + this->saveStats(); } } -void PrintCounter::load() { - uint16_t pos = this->addr; - - this->data.successPrints= eeprom_read_word ((uint16_t*) pos); - this->data.failedPrints = eeprom_read_word ((uint16_t*) pos); - this->data.printTime = eeprom_read_dword((uint32_t*) pos); - this->data.longestPrint = eeprom_read_dword((uint32_t*) pos); - - SERIAL_ECHOPGM("successPrints: "); - SERIAL_ECHOLN(this->data.successPrints); - - SERIAL_ECHOPGM("failedPrints: "); - SERIAL_ECHOLN(this->data.failedPrints); - - SERIAL_ECHOPGM("printTime: "); - SERIAL_ECHOLN(this->data.printTime); +void PrintCounter::start() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("start")); + #endif - SERIAL_ECHOPGM("longestPrint: "); - SERIAL_ECHOLN(this->data.longestPrint); + if (!this->isPaused()) this->data.totalPrints++; + super::start(); } -void PrintCounter::save() { +void PrintCounter::stop() { #if ENABLED(DEBUG_PRINTCOUNTER) - PrintCounter::debug(PSTR("save")); + PrintCounter::debug(PSTR("stop")); #endif - uint16_t pos = this->addr; - - eeprom_write_word ((uint16_t*) pos, this->data.successPrints); - eeprom_write_word ((uint16_t*) pos, this->data.failedPrints); - eeprom_write_dword((uint32_t*) pos, this->data.printTime); - eeprom_write_dword((uint32_t*) pos, this->data.longestPrint); + super::stop(); + this->data.finishedPrints++; + this->data.printTime += this->duration() - this->lastUpdate; + this->saveStats(); } -void PrintCounter::start() { - super::start(); - this->load(); -} +void PrintCounter::reset() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("stop")); + #endif -void PrintCounter::stop() { - super::stop(); - this->save(); + this->lastUpdate = 0; + super::reset(); } #if ENABLED(DEBUG_PRINTCOUNTER) diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index 99d5b207b6..e2410104b0 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -29,11 +29,12 @@ // Print debug messages with M111 S2 #define DEBUG_PRINTCOUNTER -struct printStatistics { // 12 bytes - uint16_t successPrints; // Total number of prints - uint16_t failedPrints; // Total number of aborted prints - not in use - uint32_t printTime; // Total time printing - uint32_t longestPrint; // Longest print job - not in use +struct printStatistics { // 13 bytes + //uint8_t magic; // Magic header, it will always be 0x16 + uint16_t totalPrints; // Number of prints + uint16_t finishedPrints; // Number of complete prints + uint32_t printTime; // Total printing time + uint32_t longestPrint; // Longest print job - not in use }; class PrintCounter: public Stopwatch { @@ -42,11 +43,19 @@ class PrintCounter: public Stopwatch { printStatistics data; + /** + * @brief Timestamp of the last update + * @details Stores the timestamp of the last data.pritnTime update, when the + * print job finishes, this will be used to calculate the exact time elapsed, + * this is required due to the updateInterval cycle. + */ + uint16_t lastUpdate; + /** * @brief EEPROM address * @details Defines the start offset address where the data is stored. */ - const uint16_t addr = 60; + const uint16_t addr = 50; /** * @brief Interval in seconds between counter updates @@ -54,7 +63,7 @@ class PrintCounter: public Stopwatch { * accumulator update. This is different from the EEPROM save interval * which is user defined at the Configuration.h file. */ - const uint16_t updateInterval = 2; + const uint16_t updateInterval = 10; /** * @brief Interval in seconds between EEPROM saves @@ -64,20 +73,65 @@ class PrintCounter: public Stopwatch { */ const uint16_t saveInterval = PRINTCOUNTER_SAVE_INTERVAL; + /** + * @brief Stats were loaded from EERPROM + * @details If set to true it indicates if the statistical data was already + * loaded from the EEPROM. + */ + bool loaded = false; + public: /** * @brief Class constructor */ PrintCounter(); + /** + * @brief Checks if Print Statistics has been loaded + * @details Returns true if the statistical data has been loaded. + * @return bool + */ + bool isLoaded(); + + /** + * @brief Resets the Print Statistics + * @details Resets the statistics to zero and saves them to EEPROM creating + * also the magic header. + */ + void initStats(); + + /** + * @brief Loads the Print Statistics + * @details Loads the statistics from EEPROM + */ + void loadStats(); + + /** + * @brief Saves the Print Statistics + * @details Saves the statistics to EEPROM + */ + void saveStats(); + + /** + * @brief Serial output the Print Statistics + * @details This function may change in the future, for now it directly + * prints the statistical data to serial. + */ + void showStats(); + + /** + * @brief Loop function + * @details This function should be called at loop, it will take care of + * periodically save the statistical data to EEPROM and do time keeping. + */ void tick(); - void save(); - void load(); - void addToTimeCounter(uint16_t const &minutes); - void addToPrintCounter(uint8_t const &prints); + /** + * The following functions are being overridden + */ void start(); void stop(); + void reset(); #if ENABLED(DEBUG_PRINTCOUNTER) From d6cfcc9c8bed6c81222e6f64ea09d1a670e7de04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:13:27 +0100 Subject: [PATCH 167/383] Added new G-Code: M78 --- Marlin/Marlin.h | 12 ++++++++++-- Marlin/Marlin_main.cpp | 24 +++++++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index cc08d724b9..9cd13c90ee 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -65,7 +65,11 @@ typedef unsigned long millis_t; #include "WString.h" -#include "stopwatch.h" +#if ENABLED(PRINTCOUNTER) + #include "printcounter.h" +#else + #include "stopwatch.h" +#endif #ifdef USBCON #if ENABLED(BLUETOOTH) @@ -364,7 +368,11 @@ extern bool axis_homed[3]; // axis[n].is_homed #endif // Print job timer -extern Stopwatch print_job_timer; +#if ENABLED(PRINTCOUNTER) + extern PrintCounter print_job_timer; +#else + extern Stopwatch print_job_timer; +#endif // Handling multiple extruders pins extern uint8_t active_extruder; diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 17d51f06ff..2ddb33096c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -327,7 +327,11 @@ static millis_t max_inactive_time = 0; static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL; // Print Job Timer -Stopwatch print_job_timer = Stopwatch(); +#if ENABLED(PRINTCOUNTER) + PrintCounter print_job_timer = PrintCounter(); +#else + Stopwatch print_job_timer = Stopwatch(); +#endif static uint8_t target_extruder; @@ -4252,6 +4256,15 @@ inline void gcode_M77() { print_job_timer.stop(); } +#if ENABLED(PRINTCOUNTER) + /*+ + * M78: Show print statistics + */ + inline void gcode_M78() { + print_job_timer.showStats(); + } +#endif + /** * M104: Set hot end temperature */ @@ -6636,6 +6649,12 @@ void process_next_command() { gcode_M77(); break; + #if ENABLED(PRINTCOUNTER) + case 78: // Show print statistics + gcode_M78(); + break; + #endif + #if ENABLED(M100_FREE_MEMORY_WATCHER) case 100: gcode_M100(); @@ -7750,6 +7769,9 @@ void idle( ); host_keepalive(); lcd_update(); + #if ENABLED(PRINTCOUNTER) + print_job_timer.tick(); + #endif } /** From e2da7e5000c64e2179bb2748dfa96d45f9f0a4c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:27:23 +0100 Subject: [PATCH 168/383] Updated the default configuration and fixed a printcounter.h typo --- Marlin/Configuration.h | 13 +++++++++++++ Marlin/printcounter.h | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index edbeb44ab7..c9a6245e98 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -757,6 +757,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index e2410104b0..6a4e4c784a 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -71,7 +71,7 @@ class PrintCounter: public Stopwatch { * EEPROM save cycle, the development team recommends to set this value * no lower than 3600 secs (1 hour). */ - const uint16_t saveInterval = PRINTCOUNTER_SAVE_INTERVAL; + const uint16_t saveInterval = 3600; /** * @brief Stats were loaded from EERPROM From 484de24e2214c09b97f8e269c64b3c89c4302907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:32:23 +0100 Subject: [PATCH 169/383] Updated travis to test for PRINTCOUNTER --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a2e58f2289..fecb82a8d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -139,7 +139,7 @@ script: ### I2C PANELS ### # # LCD_I2C_SAINSMART_YWROBOT - # Failing at the moment needs different library + # Failing at the moment needs different library #- restore_configs #- opt_enable LCD_I2C_SAINSMART_YWROBOT #- build_marlin @@ -199,6 +199,12 @@ script: - opt_set_adv Z2_MAX_PIN 2 - build_marlin # + # Test PRINTCOUNTER + # + - restore_configs + - opt_enable PRINTCOUNTER + - build_marlin + # # ######## Example Configurations ############## # From 9589e51810c55403ab4a3f164bb23e31d710c627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Wed, 27 Apr 2016 02:55:22 +0100 Subject: [PATCH 170/383] Disable DEBUG_PRINTCOUNTER --- Marlin/printcounter.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index 6a4e4c784a..9dbae6de25 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -27,7 +27,7 @@ #include "stopwatch.h" // Print debug messages with M111 S2 -#define DEBUG_PRINTCOUNTER +//#define DEBUG_PRINTCOUNTER struct printStatistics { // 13 bytes //uint8_t magic; // Magic header, it will always be 0x16 From 8fb23e899fc6bb74ecd88f1403b8e26846416c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 28 Apr 2016 02:30:07 +0100 Subject: [PATCH 171/383] PrintCounter EEPROM read/write optimizations --- Marlin/printcounter.cpp | 63 +++++++++++++---------------------------- Marlin/printcounter.h | 26 +++++++++++------ 2 files changed, 36 insertions(+), 53 deletions(-) diff --git a/Marlin/printcounter.cpp b/Marlin/printcounter.cpp index f2999fb044..c29cc8fb20 100644 --- a/Marlin/printcounter.cpp +++ b/Marlin/printcounter.cpp @@ -28,6 +28,16 @@ PrintCounter::PrintCounter(): super() { this->loadStats(); } +uint16_t PrintCounter::deltaDuration() { + #if ENABLED(DEBUG_PRINTCOUNTER) + PrintCounter::debug(PSTR("deltaDuration")); + #endif + + uint16_t tmp = this->lastDuration; + this->lastDuration = this->duration(); + return this->lastDuration - tmp; +} + bool PrintCounter::isLoaded() { return this->loaded; } @@ -38,9 +48,7 @@ void PrintCounter::initStats() { #endif this->loaded = true; - this->data = { - 0, 0, 0, 0 - }; + this->data = { 0, 0, 0, 0 }; this->saveStats(); eeprom_write_byte((uint8_t*) this->addr, 0x16); @@ -51,28 +59,9 @@ void PrintCounter::loadStats() { PrintCounter::debug(PSTR("loadStats")); #endif - uint16_t addr = this->addr; - // Checks if the EEPROM block is initialized - if (eeprom_read_byte((uint8_t*) addr) != 0x16) this->initStats(); - - else { - // Skip the magic header byte - addr += sizeof(uint8_t); - - // @todo This section will need rewrite once the ConfigurationStore - // and/or PersistentStorage object comes along. - this->data.totalPrints = eeprom_read_word((uint16_t*) addr); - addr += sizeof(uint16_t); - - this->data.finishedPrints = eeprom_read_word((uint16_t*) addr); - addr += sizeof(uint16_t); - - this->data.printTime = eeprom_read_dword((uint32_t*) addr); - addr += sizeof(uint32_t); - - this->data.longestPrint = eeprom_read_dword((uint32_t*) addr); - } + if (eeprom_read_byte((uint8_t*) this->addr) != 0x16) this->initStats(); + else eeprom_read_block(&this->data, (void *)(this->addr + sizeof(uint8_t)), sizeof(printStatistics)); this->loaded = true; } @@ -85,21 +74,7 @@ void PrintCounter::saveStats() { // Refuses to save data is object is not loaded if (!this->isLoaded()) return; - // Skip the magic header byte - uint16_t addr = this->addr + sizeof(uint8_t); - - // @todo This section will need rewrite once the ConfigurationStore - // and/or PersistentStorage object comes along. - eeprom_write_word ((uint16_t*) addr, this->data.totalPrints); - addr += sizeof(uint16_t); - - eeprom_write_word ((uint16_t*) addr, this->data.finishedPrints); - addr += sizeof(uint16_t); - - eeprom_write_dword((uint32_t*) addr, this->data.printTime); - addr += sizeof(uint32_t); - - eeprom_write_dword((uint32_t*) addr, this->data.longestPrint); + eeprom_write_block(&this->data, (void *)(this->addr + sizeof(uint8_t)), sizeof(printStatistics)); } void PrintCounter::showStats() { @@ -110,7 +85,8 @@ void PrintCounter::showStats() { SERIAL_ECHO(this->data.finishedPrints); SERIAL_ECHOPGM(", Failed: "); - SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints); + SERIAL_ECHO(this->data.totalPrints - this->data.finishedPrints + - (this->isRunning() || this->isPaused()) ? 1 : 0); // Removes 1 from failures with an active counter uint32_t t = this->data.printTime /60; SERIAL_ECHOPGM(", Total print time: "); @@ -148,8 +124,7 @@ void PrintCounter::tick() { #endif uint16_t t = this->duration();; - this->data.printTime += t - this->lastUpdate; - this->lastUpdate = t; + this->data.printTime += this->deltaDuration(); update_before = now; } @@ -178,7 +153,7 @@ void PrintCounter::stop() { super::stop(); this->data.finishedPrints++; - this->data.printTime += this->duration() - this->lastUpdate; + this->data.printTime += this->deltaDuration(); this->saveStats(); } @@ -187,7 +162,7 @@ void PrintCounter::reset() { PrintCounter::debug(PSTR("stop")); #endif - this->lastUpdate = 0; + this->lastDuration = 0; super::reset(); } diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index 9dbae6de25..05f704a5be 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -30,7 +30,7 @@ //#define DEBUG_PRINTCOUNTER struct printStatistics { // 13 bytes - //uint8_t magic; // Magic header, it will always be 0x16 + //const uint8_t magic; // Magic header, it will always be 0x16 uint16_t totalPrints; // Number of prints uint16_t finishedPrints; // Number of complete prints uint32_t printTime; // Total printing time @@ -43,14 +43,6 @@ class PrintCounter: public Stopwatch { printStatistics data; - /** - * @brief Timestamp of the last update - * @details Stores the timestamp of the last data.pritnTime update, when the - * print job finishes, this will be used to calculate the exact time elapsed, - * this is required due to the updateInterval cycle. - */ - uint16_t lastUpdate; - /** * @brief EEPROM address * @details Defines the start offset address where the data is stored. @@ -73,6 +65,13 @@ class PrintCounter: public Stopwatch { */ const uint16_t saveInterval = 3600; + /** + * @brief Timestamp of the last call to deltaDuration() + * @details Stores the timestamp of the last deltaDuration(), this is + * required due to the updateInterval cycle. + */ + uint16_t lastDuration; + /** * @brief Stats were loaded from EERPROM * @details If set to true it indicates if the statistical data was already @@ -80,6 +79,15 @@ class PrintCounter: public Stopwatch { */ bool loaded = false; + protected: + /** + * @brief dT since the last call + * @details Returns the elapsed time in seconds since the last call, this is + * used internally for print statistics accounting is not intended to be a + * user callable function. + */ + uint16_t deltaDuration(); + public: /** * @brief Class constructor From 27088e356f68d6ef684c001d3b0293ce6105bc21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 28 Apr 2016 02:36:38 +0100 Subject: [PATCH 172/383] Updated example configuration files --- .../example_configurations/Felix/Configuration.h | 13 +++++++++++++ .../Hephestos/Configuration.h | 13 +++++++++++++ .../Hephestos_2/Configuration.h | 13 +++++++++++++ .../example_configurations/K8200/Configuration.h | 13 +++++++++++++ .../RepRapWorld/Megatronics/Configuration.h | 13 +++++++++++++ .../RigidBot/Configuration.h | 15 ++++++++++++++- .../example_configurations/SCARA/Configuration.h | 13 +++++++++++++ .../example_configurations/TAZ4/Configuration.h | 13 +++++++++++++ .../example_configurations/WITBOX/Configuration.h | 13 +++++++++++++ .../adafruit/ST7565/Configuration.h | 13 +++++++++++++ .../delta/biv2.5/Configuration.h | 13 +++++++++++++ .../delta/generic/Configuration.h | 13 +++++++++++++ .../delta/kossel_mini/Configuration.h | 13 +++++++++++++ .../delta/kossel_pro/Configuration.h | 13 +++++++++++++ .../delta/kossel_xl/Configuration.h | 13 +++++++++++++ .../makibox/Configuration.h | 13 +++++++++++++ .../tvrrug/Round2/Configuration.h | 13 +++++++++++++ 17 files changed, 222 insertions(+), 1 deletion(-) diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 1cdefc2bcf..719018da99 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -739,6 +739,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 395bb8e761..ae2c8d9be7 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -748,6 +748,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 0dbb1d7633..2e665e4133 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -750,6 +750,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 0d43cd2c3f..c5412f494b 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -773,6 +773,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 60 // K8200: set back to 110 if you have an upgraded heatbed power supply #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 3f6208345c..40ff70b538 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -756,6 +756,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 82b66ef9d1..47d6433636 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -1,4 +1,4 @@ -/** +f/** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * @@ -751,6 +751,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 808bf7e62f..098608e0f7 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -764,6 +764,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 6c8165ea0e..cacd13390b 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -777,6 +777,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 434143e38f..9808e85602 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -748,6 +748,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index f941bb0d1c..ffe72ebea5 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -756,6 +756,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 110 #define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 40d6e9af80..ed5e5dc86b 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -885,6 +885,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index c492573f5a..3f9a20dd87 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -885,6 +885,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index e77eb33795..f2cbba4220 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -889,6 +889,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index b5c9c76c6f..dc759e69ab 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -882,6 +882,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 943443fb4a..f26762fba1 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -890,6 +890,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 2b414100f5..456c34f8ca 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -759,6 +759,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 59cfe714d5..c57dbad8bd 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -750,6 +750,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successfull print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= From 1491d682fbf25dd97a683fe6ac24bafe10c72a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 28 Apr 2016 15:40:24 +0100 Subject: [PATCH 173/383] Miscellaneous tweaks on PrintCounter --- Marlin/Marlin_main.cpp | 4 ++++ Marlin/printcounter.cpp | 8 ++++---- Marlin/printcounter.h | 5 ++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 2ddb33096c..b0e576969a 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -137,6 +137,10 @@ * M33 - Get the longname version of a path * M42 - Change pin status via gcode Use M42 Px Sy to set pin x to value y, when omitting Px the onboard led will be used. * M48 - Measure Z_Probe repeatability. M48 [P # of points] [X position] [Y position] [V_erboseness #] [E_ngage Probe] [L # of legs of travel] + * M75 - Start the print job timer + * M76 - Pause the print job timer + * M77 - Stop the print job timer + * M78 - Show statistical information about the print jobs * M80 - Turn on Power Supply * M81 - Turn off Power Supply * M82 - Set E codes absolute (default) diff --git a/Marlin/printcounter.cpp b/Marlin/printcounter.cpp index c29cc8fb20..59b8bc3e3c 100644 --- a/Marlin/printcounter.cpp +++ b/Marlin/printcounter.cpp @@ -51,7 +51,7 @@ void PrintCounter::initStats() { this->data = { 0, 0, 0, 0 }; this->saveStats(); - eeprom_write_byte((uint8_t*) this->addr, 0x16); + eeprom_write_byte((uint8_t *) this->address, 0x16); } void PrintCounter::loadStats() { @@ -60,8 +60,8 @@ void PrintCounter::loadStats() { #endif // Checks if the EEPROM block is initialized - if (eeprom_read_byte((uint8_t*) this->addr) != 0x16) this->initStats(); - else eeprom_read_block(&this->data, (void *)(this->addr + sizeof(uint8_t)), sizeof(printStatistics)); + if (eeprom_read_byte((uint8_t *) this->address) != 0x16) this->initStats(); + else eeprom_read_block(&this->data, (void *)(this->address + sizeof(uint8_t)), sizeof(printStatistics)); this->loaded = true; } @@ -74,7 +74,7 @@ void PrintCounter::saveStats() { // Refuses to save data is object is not loaded if (!this->isLoaded()) return; - eeprom_write_block(&this->data, (void *)(this->addr + sizeof(uint8_t)), sizeof(printStatistics)); + eeprom_update_block(&this->data, (void *)(this->address + sizeof(uint8_t)), sizeof(printStatistics)); } void PrintCounter::showStats() { diff --git a/Marlin/printcounter.h b/Marlin/printcounter.h index 05f704a5be..b44caeefdd 100644 --- a/Marlin/printcounter.h +++ b/Marlin/printcounter.h @@ -47,13 +47,12 @@ class PrintCounter: public Stopwatch { * @brief EEPROM address * @details Defines the start offset address where the data is stored. */ - const uint16_t addr = 50; + const uint16_t address = 0x32; /** * @brief Interval in seconds between counter updates * @details This const value defines what will be the time between each - * accumulator update. This is different from the EEPROM save interval - * which is user defined at the Configuration.h file. + * accumulator update. This is different from the EEPROM save interval. */ const uint16_t updateInterval = 10; From e34f4653ef8f762686bce7c5c0a406dc0fb902c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Fri, 29 Apr 2016 23:13:10 +0100 Subject: [PATCH 174/383] Fixed a typo on the configuration files --- Marlin/Configuration.h | 2 +- Marlin/example_configurations/Felix/Configuration.h | 2 +- Marlin/example_configurations/Hephestos/Configuration.h | 2 +- Marlin/example_configurations/Hephestos_2/Configuration.h | 2 +- Marlin/example_configurations/K8200/Configuration.h | 2 +- .../RepRapWorld/Megatronics/Configuration.h | 2 +- Marlin/example_configurations/RigidBot/Configuration.h | 2 +- Marlin/example_configurations/SCARA/Configuration.h | 2 +- Marlin/example_configurations/TAZ4/Configuration.h | 2 +- Marlin/example_configurations/WITBOX/Configuration.h | 2 +- Marlin/example_configurations/adafruit/ST7565/Configuration.h | 2 +- Marlin/example_configurations/delta/biv2.5/Configuration.h | 2 +- Marlin/example_configurations/delta/generic/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_mini/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_pro/Configuration.h | 2 +- Marlin/example_configurations/delta/kossel_xl/Configuration.h | 2 +- Marlin/example_configurations/makibox/Configuration.h | 2 +- Marlin/example_configurations/tvrrug/Round2/Configuration.h | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index c9a6245e98..49b31d406c 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -763,7 +763,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 719018da99..39f89f3301 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -745,7 +745,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index ae2c8d9be7..d1ddfa2b15 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -754,7 +754,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 2e665e4133..7a3264b268 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -756,7 +756,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index c5412f494b..c800fa00fc 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -779,7 +779,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 40ff70b538..6d41b7e97a 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -762,7 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 47d6433636..d0e47bd66e 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -757,7 +757,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 098608e0f7..79f68392f7 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -770,7 +770,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index cacd13390b..135185861a 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -783,7 +783,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 9808e85602..0e9cfd36ba 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -754,7 +754,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index ffe72ebea5..111f5797e2 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -762,7 +762,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index ed5e5dc86b..4a31e15cc2 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -891,7 +891,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 3f9a20dd87..c3d7b149c3 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -891,7 +891,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index f2cbba4220..fb38d6e0a4 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -895,7 +895,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index dc759e69ab..5236cf5cbd 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -888,7 +888,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index f26762fba1..1c14c3f054 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -896,7 +896,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 456c34f8ca..17da23c620 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -765,7 +765,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index c57dbad8bd..22b8908653 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -756,7 +756,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // // When enabled Marlin will keep track of some print statistical data such as: // - Total print jobs -// - Total successfull print jobs +// - Total successful print jobs // - Total failed print jobs // - Total time printing // From ac4caab8f1500d044df48a7855eb9d30021afd70 Mon Sep 17 00:00:00 2001 From: Blue-Marlin Date: Sat, 30 Apr 2016 17:37:22 +0200 Subject: [PATCH 175/383] Don't mangel 8.3-filenames with chars > 0x7f MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't mangel 8.3-filenames with chars > 0x7f Windows produces 8.3filenames wit chars > 0x7f. Those have been rejected by Marlin until now. With these 'malformed' filenames can now be worked with: In the LCD menue With RepetierHost (V1.6.1 tested) - full support. Characters are displayed as '?' With Octoprint (1.2.10 tested) the files do not appear in the files area. At the console, listed with M20 they appear with a '�'. With Pronterface the files appear in the sd-window but you can't start them. They are mangled by pronterface. The names are altered and than recected by Marlin. In the console they apper with differen but not the correct characters. All in all a little step forward. Fix for #3593 --- Marlin/SdBaseFile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp index 472a60a56a..4927ab2e27 100644 --- a/Marlin/SdBaseFile.cpp +++ b/Marlin/SdBaseFile.cpp @@ -405,7 +405,7 @@ bool SdBaseFile::make83Name(const char* str, uint8_t* name, const char** ptr) { uint8_t b; while ((b = pgm_read_byte(p++))) if (b == c) goto fail; // check size and only allow ASCII printable characters - if (i > n || c < 0X21 || c > 0X7E)goto fail; + if (i > n || c < 0X21 || c == 0X7E)goto fail; // only upper case allowed in 8.3 names - convert lower to upper name[i++] = (c < 'a' || c > 'z') ? (c) : (c + ('A' - 'a')); } From 6d3e4e1f8ff0ee4d8dc4e821733ac3c151fe52b7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 30 Apr 2016 16:29:02 -0700 Subject: [PATCH 176/383] Prevent stuck M109/M190 when target is changed --- Marlin/Marlin_main.cpp | 54 ++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 18d69cadad..37c472f3ca 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4463,15 +4463,6 @@ inline void gcode_M109() { if (code_seen('B')) autotemp_max = code_value(); #endif - bool wants_to_cool = isCoolingHotend(target_extruder); - - // Exit if S, continue if S, R, or R - if (no_wait_for_cooling && wants_to_cool) return; - - // Prevents a wait-forever situation if R is misused i.e. M109 R0 - // Try to calculate a ballpark safe margin by halving EXTRUDE_MINTEMP - if (wants_to_cool && degTargetHotend(target_extruder) < (EXTRUDE_MINTEMP)/2) return; - #if TEMP_RESIDENCY_TIME > 0 millis_t residency_start_ms = 0; // Loop until the temperature has stabilized @@ -4481,11 +4472,15 @@ inline void gcode_M109() { #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) #endif //TEMP_RESIDENCY_TIME > 0 - KEEPALIVE_STATE(NOT_BUSY); - + float theTarget = -1; + bool wants_to_cool; cancel_heatup = false; millis_t now, next_temp_ms = 0; + + KEEPALIVE_STATE(NOT_BUSY); + do { + now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print temp & remaining time every 1s while waiting next_temp_ms = now + 1000UL; @@ -4506,12 +4501,25 @@ inline void gcode_M109() { #endif } + // Target temperature might be changed during the loop + if (theTarget != degTargetHotend(target_extruder)) { + theTarget = degTargetHotend(target_extruder); + wants_to_cool = isCoolingHotend(target_extruder); + + // Exit if S, continue if S, R, or R + if (no_wait_for_cooling && wants_to_cool) break; + + // Prevent a wait-forever situation if R is misused i.e. M109 R0 + // Try to calculate a ballpark safe margin by halving EXTRUDE_MINTEMP + if (wants_to_cool && theTarget < (EXTRUDE_MINTEMP)/2) break; + } + idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out #if TEMP_RESIDENCY_TIME > 0 - float temp_diff = fabs(degTargetHotend(target_extruder) - degHotend(target_extruder)); + float temp_diff = fabs(theTarget - degHotend(target_extruder)); if (!residency_start_ms) { // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. @@ -4543,11 +4551,6 @@ inline void gcode_M109() { bool no_wait_for_cooling = code_seen('S'); if (no_wait_for_cooling || code_seen('R')) setTargetBed(code_value()); - bool wants_to_cool = isCoolingBed(); - - // Exit if S, continue if S, R, or R - if (no_wait_for_cooling && wants_to_cool) return; - #if TEMP_BED_RESIDENCY_TIME > 0 millis_t residency_start_ms = 0; // Loop until the temperature has stabilized @@ -4557,11 +4560,13 @@ inline void gcode_M109() { #define TEMP_BED_CONDITIONS (wants_to_cool ? isCoolingBed() : isHeatingBed()) #endif //TEMP_BED_RESIDENCY_TIME > 0 + float theTarget = -1; + bool wants_to_cool; cancel_heatup = false; millis_t now, next_temp_ms = 0; - // Wait for temperature to come close enough KEEPALIVE_STATE(NOT_BUSY); + do { now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print Temp Reading every 1 second while heating up. @@ -4581,6 +4586,19 @@ inline void gcode_M109() { #endif } + // Target temperature might be changed during the loop + if (theTarget != degTargetBed()) { + theTarget = degTargetBed(); + wants_to_cool = isCoolingBed(); + + // Exit if S, continue if S, R, or R + if (no_wait_for_cooling && wants_to_cool) break; + + // Prevent a wait-forever situation if R is misused i.e. M190 R0 + // Simply don't wait for cooling below 30C + if (wants_to_cool && theTarget < (EXTRUDE_MINTEMP)/2) break; + } + idle(); refresh_cmd_timeout(); // to prevent stepper_inactive_time from running out From 5e4e535ce8d0bc1f37464a20d0b29dc8678f032f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 27 Apr 2016 07:15:20 -0700 Subject: [PATCH 177/383] Stepper and Endstops as singleton objects --- Marlin/Marlin.h | 2 +- Marlin/Marlin_main.cpp | 223 ++++++------- Marlin/cardreader.cpp | 2 +- Marlin/endstops.cpp | 317 ++++++++++++++++++ Marlin/endstops.h | 94 ++++++ Marlin/planner.cpp | 8 +- Marlin/stepper.cpp | 707 +++++++++-------------------------------- Marlin/stepper.h | 347 ++++++++++++++++---- Marlin/temperature.cpp | 2 +- Marlin/ultralcd.cpp | 6 +- 10 files changed, 948 insertions(+), 760 deletions(-) create mode 100644 Marlin/endstops.cpp create mode 100644 Marlin/endstops.h diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 9cd13c90ee..1db06e9bc2 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -216,7 +216,7 @@ void manage_inactivity(bool ignore_stepper_queue = false); */ enum AxisEnum {X_AXIS = 0, A_AXIS = 0, Y_AXIS = 1, B_AXIS = 1, Z_AXIS = 2, C_AXIS = 2, E_AXIS = 3, X_HEAD = 4, Y_HEAD = 5, Z_HEAD = 5}; -enum EndstopEnum {X_MIN = 0, Y_MIN = 1, Z_MIN = 2, Z_MIN_PROBE = 3, X_MAX = 4, Y_MAX = 5, Z_MAX = 6, Z2_MIN = 7, Z2_MAX = 8}; +#define _AXIS(AXIS) AXIS ##_AXIS void enable_all_steppers(); void disable_all_steppers(); diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 37c472f3ca..7cc7c028c8 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -48,6 +48,7 @@ #include "ultralcd.h" #include "planner.h" #include "stepper.h" +#include "endstops.h" #include "temperature.h" #include "cardreader.h" #include "configuration_store.h" @@ -547,10 +548,6 @@ static void report_current_position(); float extrude_min_temp = EXTRUDE_MINTEMP; #endif -#if ENABLED(HAS_Z_MIN_PROBE) - extern volatile bool z_probe_is_active; -#endif - #if ENABLED(SDSUPPORT) #include "SdFatUtil.h" int freeMemory() { return SdFatUtil::FreeRam(); } @@ -711,7 +708,7 @@ void servo_init() { #if HAS_SERVO_ENDSTOPS - z_probe_is_active = false; + endstops.enable_z_probe(false); /** * Set position of all defined Servo Endstops @@ -831,7 +828,7 @@ void setup() { watchdog_init(); #endif - st_init(); // Initialize stepper, this enables interrupts! + stepper.init(); // Initialize stepper, this enables interrupts! setup_photpin(); servo_init(); @@ -915,7 +912,7 @@ void loop() { commands_in_queue--; cmd_queue_index_r = (cmd_queue_index_r + 1) % BUFSIZE; } - checkHitEndstops(); + endstops.report_state(); idle(); } @@ -1445,9 +1442,9 @@ static void setup_for_endstop_move() { feedrate_multiplier = 100; refresh_cmd_timeout(); #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("setup_for_endstop_move > enable_endstops(true)"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("setup_for_endstop_move > endstops.enable()"); #endif - enable_endstops(true); + endstops.enable(); } #if ENABLED(AUTO_BED_LEVELING_FEATURE) @@ -1553,7 +1550,7 @@ static void setup_for_endstop_move() { #if ENABLED(DELTA) float start_z = current_position[Z_AXIS]; - long start_steps = st_get_position(Z_AXIS); + long start_steps = stepper.position(Z_AXIS); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("run_z_probe (DELTA) 1"); @@ -1563,14 +1560,14 @@ static void setup_for_endstop_move() { feedrate = homing_feedrate[Z_AXIS] / 4; destination[Z_AXIS] = -10; prepare_move_raw(); // this will also set_current_to_destination - st_synchronize(); - endstops_hit_on_purpose(); // clear endstop hit flags + stepper.synchronize(); + endstops.hit_on_purpose(); // clear endstop hit flags /** * We have to let the planner know where we are right now as it * is not where we said to go. */ - long stop_steps = st_get_position(Z_AXIS); + long stop_steps = stepper.position(Z_AXIS); float mm = start_z - float(start_steps - stop_steps) / axis_steps_per_unit[Z_AXIS]; current_position[Z_AXIS] = mm; @@ -1588,10 +1585,10 @@ static void setup_for_endstop_move() { // Move down until the Z probe (or endstop?) is triggered float zPosition = -(Z_MAX_LENGTH + 10); line_to_z(zPosition); - st_synchronize(); + stepper.synchronize(); // Tell the planner where we ended up - Get this from the stepper handler - zPosition = st_get_axis_position_mm(Z_AXIS); + zPosition = stepper.get_axis_position_mm(Z_AXIS); plan_set_position( current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS] @@ -1600,19 +1597,19 @@ static void setup_for_endstop_move() { // move up the retract distance zPosition += home_bump_mm(Z_AXIS); line_to_z(zPosition); - st_synchronize(); - endstops_hit_on_purpose(); // clear endstop hit flags + stepper.synchronize(); + endstops.hit_on_purpose(); // clear endstop hit flags // move back down slowly to find bed set_homing_bump_feedrate(Z_AXIS); zPosition -= home_bump_mm(Z_AXIS) * 2; line_to_z(zPosition); - st_synchronize(); - endstops_hit_on_purpose(); // clear endstop hit flags + stepper.synchronize(); + endstops.hit_on_purpose(); // clear endstop hit flags // Get the current stepper position after bumping an endstop - current_position[Z_AXIS] = st_get_axis_position_mm(Z_AXIS); + current_position[Z_AXIS] = stepper.get_axis_position_mm(Z_AXIS); sync_plan_position(); #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -1641,7 +1638,7 @@ static void setup_for_endstop_move() { destination[Y_AXIS] = y; destination[Z_AXIS] = z; prepare_move_raw(); // this will also set_current_to_destination - st_synchronize(); + stepper.synchronize(); #else @@ -1649,14 +1646,14 @@ static void setup_for_endstop_move() { current_position[Z_AXIS] = z; line_to_current_position(); - st_synchronize(); + stepper.synchronize(); feedrate = xy_travel_speed; current_position[X_AXIS] = x; current_position[Y_AXIS] = y; line_to_current_position(); - st_synchronize(); + stepper.synchronize(); #endif @@ -1681,9 +1678,9 @@ static void setup_for_endstop_move() { static void clean_up_after_endstop_move() { #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("clean_up_after_endstop_move > ENDSTOPS_ONLY_FOR_HOMING > endstops_not_homing()"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("clean_up_after_endstop_move > ENDSTOPS_ONLY_FOR_HOMING > endstops.not_homing()"); #endif - endstops_not_homing(); + endstops.not_homing(); feedrate = saved_feedrate; feedrate_multiplier = saved_feedrate_multiplier; refresh_cmd_timeout(); @@ -1697,7 +1694,7 @@ static void setup_for_endstop_move() { if (DEBUGGING(LEVELING)) DEBUG_POS("deploy_z_probe", current_position); #endif - if (z_probe_is_active) return; + if (endstops.z_probe_enabled) return; #if HAS_SERVO_ENDSTOPS @@ -1757,7 +1754,7 @@ static void setup_for_endstop_move() { destination[Y_AXIS] = destination[Y_AXIS] * 0.75; prepare_move_raw(); // this will also set_current_to_destination - st_synchronize(); + stepper.synchronize(); #if ENABLED(Z_MIN_PROBE_ENDSTOP) z_probe_endstop = (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING); @@ -1778,10 +1775,10 @@ static void setup_for_endstop_move() { #endif // Z_PROBE_ALLEN_KEY #if ENABLED(FIX_MOUNTED_PROBE) - // Noting to be done. Just set z_probe_is_active + // Noting to be done. Just set endstops.z_probe_enabled #endif - z_probe_is_active = true; + endstops.enable_z_probe(); } @@ -1793,7 +1790,7 @@ static void setup_for_endstop_move() { if (DEBUGGING(LEVELING)) DEBUG_POS("stow_z_probe", current_position); #endif - if (!z_probe_is_active) return; + if (!endstops.z_probe_enabled) return; #if HAS_SERVO_ENDSTOPS @@ -1811,7 +1808,7 @@ static void setup_for_endstop_move() { } #endif raise_z_after_probing(); // this also updates current_position - st_synchronize(); + stepper.synchronize(); } #endif @@ -1861,7 +1858,7 @@ static void setup_for_endstop_move() { destination[Y_AXIS] = 0; prepare_move_raw(); // this will also set_current_to_destination - st_synchronize(); + stepper.synchronize(); #if ENABLED(Z_MIN_PROBE_ENDSTOP) bool z_probe_endstop = (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING); @@ -1881,10 +1878,10 @@ static void setup_for_endstop_move() { #endif // Z_PROBE_ALLEN_KEY #if ENABLED(FIX_MOUNTED_PROBE) - // Nothing to do here. Just clear z_probe_is_active + // Nothing to do here. Just clear endstops.z_probe_enabled #endif - z_probe_is_active = false; + endstops.enable_z_probe(false); } #endif // HAS_Z_MIN_PROBE @@ -2081,13 +2078,13 @@ static void setup_for_endstop_move() { } #endif - if (z_probe_is_active == dock) return; - if (!axis_homed[X_AXIS] || !axis_homed[Y_AXIS]) { axis_unhomed_error(); return; } + if (endstops.z_probe_enabled == !dock) return; // already docked/undocked? + float oldXpos = current_position[X_AXIS]; // save x position if (dock) { #if Z_RAISE_AFTER_PROBING > 0 @@ -2105,7 +2102,7 @@ static void setup_for_endstop_move() { } do_blocking_move_to_x(oldXpos); // return to position before docking - z_probe_is_active = dock; + endstops.enable_z_probe(!dock); // logically disable docked probe } #endif // Z_PROBE_SLED @@ -2167,39 +2164,39 @@ static void homeaxis(AxisEnum axis) { // Engage an X or Y Servo endstop if enabled if (_Z_SERVO_TEST && servo_endstop_id[axis] >= 0) { servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][0]); - if (_Z_PROBE_SUBTEST) z_probe_is_active = true; + if (_Z_PROBE_SUBTEST) endstops.z_probe_enabled = true; } #endif // Set a flag for Z motor locking #if ENABLED(Z_DUAL_ENDSTOPS) - if (axis == Z_AXIS) In_Homing_Process(true); + if (axis == Z_AXIS) stepper.set_homing_flag(true); #endif // Move towards the endstop until an endstop is triggered destination[axis] = 1.5 * max_length(axis) * axis_home_dir; feedrate = homing_feedrate[axis]; line_to_destination(); - st_synchronize(); + stepper.synchronize(); // Set the axis position as setup for the move current_position[axis] = 0; sync_plan_position(); #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> enable_endstops(false)"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(false)"); #endif - enable_endstops(false); // Disable endstops while moving away + endstops.enable(false); // Disable endstops while moving away // Move away from the endstop by the axis HOME_BUMP_MM destination[axis] = -home_bump_mm(axis) * axis_home_dir; line_to_destination(); - st_synchronize(); + stepper.synchronize(); #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> enable_endstops(true)"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(true)"); #endif - enable_endstops(true); // Enable endstops for next homing move + endstops.enable(true); // Enable endstops for next homing move // Slow down the feedrate for the next move set_homing_bump_feedrate(axis); @@ -2207,7 +2204,7 @@ static void homeaxis(AxisEnum axis) { // Move slowly towards the endstop until triggered destination[axis] = 2 * home_bump_mm(axis) * axis_home_dir; line_to_destination(); - st_synchronize(); + stepper.synchronize(); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("> TRIGGER ENDSTOP", current_position); @@ -2224,17 +2221,17 @@ static void homeaxis(AxisEnum axis) { else lockZ1 = (z_endstop_adj < 0); - if (lockZ1) Lock_z_motor(true); else Lock_z2_motor(true); + if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true); sync_plan_position(); // Move to the adjusted endstop height feedrate = homing_feedrate[axis]; destination[Z_AXIS] = adj; line_to_destination(); - st_synchronize(); + stepper.synchronize(); - if (lockZ1) Lock_z_motor(false); else Lock_z2_motor(false); - In_Homing_Process(false); + if (lockZ1) stepper.set_z_lock(false); else stepper.set_z2_lock(false); + stepper.set_homing_flag(false); } // Z_AXIS #endif @@ -2242,9 +2239,9 @@ static void homeaxis(AxisEnum axis) { // retrace by the amount specified in endstop_adj if (endstop_adj[axis] * axis_home_dir < 0) { #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> enable_endstops(false)"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(false)"); #endif - enable_endstops(false); // Disable endstops while moving away + endstops.enable(false); // Disable endstops while moving away sync_plan_position(); destination[axis] = endstop_adj[axis]; #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -2254,11 +2251,11 @@ static void homeaxis(AxisEnum axis) { } #endif line_to_destination(); - st_synchronize(); + stepper.synchronize(); #if ENABLED(DEBUG_LEVELING_FEATURE) - if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> enable_endstops(true)"); + if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> endstops.enable(true)"); #endif - enable_endstops(true); // Enable endstops for next homing move + endstops.enable(true); // Enable endstops for next homing move } #if ENABLED(DEBUG_LEVELING_FEATURE) else { @@ -2280,7 +2277,7 @@ static void homeaxis(AxisEnum axis) { destination[axis] = current_position[axis]; feedrate = 0.0; - endstops_hit_on_purpose(); // clear endstop hit flags + endstops.hit_on_purpose(); // clear endstop hit flags axis_known_position[axis] = true; axis_homed[axis] = true; @@ -2301,7 +2298,7 @@ static void homeaxis(AxisEnum axis) { if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("> SERVO_ENDSTOPS > Stow with servo.move()"); #endif servo[servo_endstop_id[axis]].move(servo_endstop_angle[axis][1]); - if (_Z_PROBE_SUBTEST) z_probe_is_active = false; + if (_Z_PROBE_SUBTEST) endstops.enable_z_probe(false); } #endif @@ -2499,7 +2496,7 @@ inline void gcode_G4() { if (code_seen('P')) codenum = code_value_long(); // milliseconds to wait if (code_seen('S')) codenum = code_value() * 1000UL; // seconds to wait - st_synchronize(); + stepper.synchronize(); refresh_cmd_timeout(); codenum += previous_cmd_ms; // keep track of when we started waiting @@ -2551,7 +2548,7 @@ inline void gcode_G28() { #endif // Wait for planner moves to finish! - st_synchronize(); + stepper.synchronize(); // For auto bed leveling, clear the level matrix #if ENABLED(AUTO_BED_LEVELING_FEATURE) @@ -2594,8 +2591,8 @@ inline void gcode_G28() { for (int i = X_AXIS; i <= Z_AXIS; i++) destination[i] = 3 * (Z_MAX_LENGTH); feedrate = 1.732 * homing_feedrate[X_AXIS]; line_to_destination(); - st_synchronize(); - endstops_hit_on_purpose(); // clear endstop hit flags + stepper.synchronize(); + endstops.hit_on_purpose(); // clear endstop hit flags // Destination reached for (int i = X_AXIS; i <= Z_AXIS; i++) current_position[i] = destination[i]; @@ -2643,7 +2640,7 @@ inline void gcode_G28() { } #endif line_to_destination(); - st_synchronize(); + stepper.synchronize(); /** * Update the current Z position even if it currently not real from @@ -2676,7 +2673,7 @@ inline void gcode_G28() { destination[Y_AXIS] = 1.5 * mly * home_dir(Y_AXIS); feedrate = min(homing_feedrate[X_AXIS], homing_feedrate[Y_AXIS]) * sqrt(mlratio * mlratio + 1); line_to_destination(); - st_synchronize(); + stepper.synchronize(); set_axis_is_at_home(X_AXIS); set_axis_is_at_home(Y_AXIS); @@ -2690,8 +2687,8 @@ inline void gcode_G28() { destination[Y_AXIS] = current_position[Y_AXIS]; line_to_destination(); feedrate = 0.0; - st_synchronize(); - endstops_hit_on_purpose(); // clear endstop hit flags + stepper.synchronize(); + endstops.hit_on_purpose(); // clear endstop hit flags current_position[X_AXIS] = destination[X_AXIS]; current_position[Y_AXIS] = destination[Y_AXIS]; @@ -2784,7 +2781,7 @@ inline void gcode_G28() { // Move in the XY plane line_to_destination(); - st_synchronize(); + stepper.synchronize(); /** * Update the current positions for XY, Z is still at least at @@ -2857,10 +2854,10 @@ inline void gcode_G28() { #endif #if ENABLED(ENDSTOPS_ONLY_FOR_HOMING) - enable_endstops(false); + endstops.enable(false); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { - SERIAL_ECHOLNPGM("ENDSTOPS_ONLY_FOR_HOMING enable_endstops(false)"); + SERIAL_ECHOLNPGM("ENDSTOPS_ONLY_FOR_HOMING endstops.enable(false)"); } #endif #endif @@ -2875,7 +2872,7 @@ inline void gcode_G28() { set_destination_to_current(); feedrate = homing_feedrate[Z_AXIS]; line_to_destination(); - st_synchronize(); + stepper.synchronize(); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("mbl_was_active", current_position); #endif @@ -2885,7 +2882,7 @@ inline void gcode_G28() { feedrate = saved_feedrate; feedrate_multiplier = saved_feedrate_multiplier; refresh_cmd_timeout(); - endstops_hit_on_purpose(); // clear endstop hit flags + endstops.hit_on_purpose(); // clear endstop hit flags #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -2921,7 +2918,7 @@ inline void gcode_G28() { #endif feedrate = saved_feedrate; - st_synchronize(); + stepper.synchronize(); } /** @@ -3015,7 +3012,7 @@ inline void gcode_G28() { #endif ; line_to_current_position(); - st_synchronize(); + stepper.synchronize(); // After recording the last point, activate the mbl and home SERIAL_PROTOCOLLNPGM("Mesh probing done."); @@ -3240,7 +3237,7 @@ inline void gcode_G28() { deploy_z_probe(); #endif - st_synchronize(); + stepper.synchronize(); setup_for_endstop_move(); @@ -3511,7 +3508,7 @@ inline void gcode_G28() { float x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER, y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER, z_tmp = current_position[Z_AXIS], - real_z = st_get_axis_position_mm(Z_AXIS); //get the real Z (since plan_get_position is now correcting the plane) + real_z = stepper.get_axis_position_mm(Z_AXIS); //get the real Z (since plan_get_position is now correcting the plane) #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -3588,9 +3585,9 @@ inline void gcode_G28() { #endif enqueue_and_echo_commands_P(PSTR(Z_PROBE_END_SCRIPT)); #if ENABLED(HAS_Z_MIN_PROBE) - z_probe_is_active = false; + endstops.enable_z_probe(false); #endif - st_synchronize(); + stepper.synchronize(); #endif KEEPALIVE_STATE(IN_HANDLER); @@ -3615,7 +3612,7 @@ inline void gcode_G28() { #endif deploy_z_probe(); // Engage Z Servo endstop if available. Z_PROBE_SLED is missed here. - st_synchronize(); + stepper.synchronize(); // TODO: clear the leveling matrix or the planner will be set incorrectly setup_for_endstop_move(); // Too late. Must be done before deploying. @@ -3650,7 +3647,7 @@ inline void gcode_G28() { inline void gcode_G92() { bool didE = code_seen(axis_codes[E_AXIS]); - if (!didE) st_synchronize(); + if (!didE) stepper.synchronize(); bool didXYZ = false; for (int i = 0; i < NUM_AXIS; i++) { @@ -3712,7 +3709,7 @@ inline void gcode_G92() { } lcd_ignore_click(); - st_synchronize(); + stepper.synchronize(); refresh_cmd_timeout(); if (codenum > 0) { codenum += previous_cmd_ms; // wait until this time for a click @@ -3853,7 +3850,7 @@ inline void gcode_M31() { */ inline void gcode_M32() { if (card.sdprinting) - st_synchronize(); + stepper.synchronize(); char* namestartpos = strchr(current_command_args, '!'); // Find ! to indicate filename string start. if (!namestartpos) @@ -4819,7 +4816,7 @@ inline void gcode_M140() { */ inline void gcode_M81() { disable_all_heaters(); - finishAndDisableSteppers(); + stepper.finish_and_disable(); #if FAN_COUNT > 0 #if FAN_COUNT > 1 for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0; @@ -4829,7 +4826,7 @@ inline void gcode_M81() { #endif delay(1000); // Wait 1 second before switching off #if HAS_SUICIDE - st_synchronize(); + stepper.synchronize(); suicide(); #elif HAS_POWER_SWITCH OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP); @@ -4864,10 +4861,10 @@ inline void gcode_M18_M84() { else { bool all_axis = !((code_seen(axis_codes[X_AXIS])) || (code_seen(axis_codes[Y_AXIS])) || (code_seen(axis_codes[Z_AXIS])) || (code_seen(axis_codes[E_AXIS]))); if (all_axis) { - finishAndDisableSteppers(); + stepper.finish_and_disable(); } else { - st_synchronize(); + stepper.synchronize(); if (code_seen('X')) disable_x(); if (code_seen('Y')) disable_y(); if (code_seen('Z')) disable_z(); @@ -4927,35 +4924,7 @@ static void report_current_position() { SERIAL_PROTOCOLPGM(" E:"); SERIAL_PROTOCOL(current_position[E_AXIS]); - CRITICAL_SECTION_START; - extern volatile long count_position[NUM_AXIS]; - long xpos = count_position[X_AXIS], - ypos = count_position[Y_AXIS], - zpos = count_position[Z_AXIS]; - CRITICAL_SECTION_END; - - #if ENABLED(COREXY) || ENABLED(COREXZ) - SERIAL_PROTOCOLPGM(MSG_COUNT_A); - #else - SERIAL_PROTOCOLPGM(MSG_COUNT_X); - #endif - SERIAL_PROTOCOL(xpos); - - #if ENABLED(COREXY) - SERIAL_PROTOCOLPGM(" B:"); - #else - SERIAL_PROTOCOLPGM(" Y:"); - #endif - SERIAL_PROTOCOL(ypos); - - #if ENABLED(COREXZ) - SERIAL_PROTOCOLPGM(" C:"); - #else - SERIAL_PROTOCOLPGM(" Z:"); - #endif - SERIAL_PROTOCOL(zpos); - - SERIAL_EOL; + stepper.report_positions(); #if ENABLED(SCARA) SERIAL_PROTOCOLPGM("SCARA Theta:"); @@ -5039,12 +5008,12 @@ inline void gcode_M119() { /** * M120: Enable endstops and set non-homing endstop state to "enabled" */ -inline void gcode_M120() { enable_endstops_globally(true); } +inline void gcode_M120() { endstops.enable_globally(true); } /** * M121: Disable endstops and set non-homing endstop state to "disabled" */ -inline void gcode_M121() { enable_endstops_globally(false); } +inline void gcode_M121() { endstops.enable_globally(false); } #if ENABLED(BLINKM) @@ -5439,7 +5408,7 @@ inline void gcode_M226() { if (pin_number > -1) { int target = LOW; - st_synchronize(); + stepper.synchronize(); pinMode(pin_number, INPUT); @@ -5801,7 +5770,7 @@ inline void gcode_M303() { /** * M400: Finish all moves */ -inline void gcode_M400() { st_synchronize(); } +inline void gcode_M400() { stepper.synchronize(); } #if ENABLED(AUTO_BED_LEVELING_FEATURE) && DISABLED(Z_PROBE_SLED) && (HAS_SERVO_ENDSTOPS || ENABLED(Z_PROBE_ALLEN_KEY)) @@ -5887,7 +5856,7 @@ inline void gcode_M400() { st_synchronize(); } * This will stop the carriages mid-move, so most likely they * will be out of sync with the stepper position after this. */ -inline void gcode_M410() { quickStop(); } +inline void gcode_M410() { stepper.quick_stop(); } #if ENABLED(MESH_BED_LEVELING) @@ -6111,7 +6080,7 @@ inline void gcode_M503() { RUNPLAN; //finish moves - st_synchronize(); + stepper.synchronize(); //disable extruder steppers so filament can be removed disable_e0(); disable_e1(); @@ -6135,7 +6104,7 @@ inline void gcode_M503() { current_position[E_AXIS] += AUTO_FILAMENT_CHANGE_LENGTH; destination[E_AXIS] = current_position[E_AXIS]; line_to_destination(AUTO_FILAMENT_CHANGE_FEEDRATE); - st_synchronize(); + stepper.synchronize(); #endif } // while(!lcd_clicked) KEEPALIVE_STATE(IN_HANDLER); @@ -6143,7 +6112,7 @@ inline void gcode_M503() { #if ENABLED(AUTO_FILAMENT_CHANGE) current_position[E_AXIS] = 0; - st_synchronize(); + stepper.synchronize(); #endif //return to normal @@ -6198,7 +6167,7 @@ inline void gcode_M503() { * Note: the X axis should be homed after changing dual x-carriage mode. */ inline void gcode_M605() { - st_synchronize(); + stepper.synchronize(); if (code_seen('S')) dual_x_carriage_mode = code_value(); switch (dual_x_carriage_mode) { case DXC_DUPLICATION_MODE: @@ -6375,7 +6344,7 @@ inline void gcode_T(uint8_t tmp_extruder) { current_position[E_AXIS], max_feedrate[X_AXIS], active_extruder); plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); - st_synchronize(); + stepper.synchronize(); } // apply Y & Z extruder offset (x offset is already used in determining home pos) @@ -6460,7 +6429,7 @@ inline void gcode_T(uint8_t tmp_extruder) { } // (tmp_extruder != active_extruder) #if ENABLED(EXT_SOLENOID) - st_synchronize(); + stepper.synchronize(); disable_all_solenoids(); enable_solenoid_on_active_extruder(); #endif // EXT_SOLENOID @@ -7400,7 +7369,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ plan_buffer_line(current_position[X_AXIS] + duplicate_extruder_x_offset, current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], max_feedrate[X_AXIS], 1); sync_plan_position(); - st_synchronize(); + stepper.synchronize(); extruder_duplication_enabled = true; active_extruder_parked = false; } @@ -7927,7 +7896,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { destination[E_AXIS] = oldedes; plan_set_e_position(oldepos); previous_cmd_ms = ms; // refresh_cmd_timeout() - st_synchronize(); + stepper.synchronize(); switch (active_extruder) { case 0: E0_ENABLE_WRITE(oldstatus); @@ -8004,7 +7973,7 @@ void kill(const char* lcd_msg) { if (!filament_ran_out) { filament_ran_out = true; enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT)); - st_synchronize(); + stepper.synchronize(); } } diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index fbe4ae7e70..1e9aab3b66 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -596,7 +596,7 @@ void CardReader::updir() { } void CardReader::printingHasFinished() { - st_synchronize(); + stepper.synchronize(); if (file_subcall_ctr > 0) { // Heading up to a parent file that called current as a procedure. file.close(); file_subcall_ctr--; diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp new file mode 100644 index 0000000000..e3d5f4b827 --- /dev/null +++ b/Marlin/endstops.cpp @@ -0,0 +1,317 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * endstops.cpp - A singleton object to manage endstops + */ + +#include "Marlin.h" +#include "endstops.h" +#include "stepper.h" +#include "ultralcd.h" + +// TEST_ENDSTOP: test the old and the current status of an endstop +#define TEST_ENDSTOP(ENDSTOP) (TEST(current_endstop_bits & old_endstop_bits, ENDSTOP)) + +Endstops endstops; + +Endstops::Endstops() { + enable_globally(ENABLED(ENDSTOPS_ONLY_FOR_HOMING)); + enable(true); + #if ENABLED(HAS_Z_MIN_PROBE) + enable_z_probe(false); + #endif +} // Endstops::Endstops + +void Endstops::init() { + + #if HAS_X_MIN + SET_INPUT(X_MIN_PIN); + #if ENABLED(ENDSTOPPULLUP_XMIN) + WRITE(X_MIN_PIN,HIGH); + #endif + #endif + + #if HAS_Y_MIN + SET_INPUT(Y_MIN_PIN); + #if ENABLED(ENDSTOPPULLUP_YMIN) + WRITE(Y_MIN_PIN,HIGH); + #endif + #endif + + #if HAS_Z_MIN + SET_INPUT(Z_MIN_PIN); + #if ENABLED(ENDSTOPPULLUP_ZMIN) + WRITE(Z_MIN_PIN,HIGH); + #endif + #endif + + #if HAS_Z2_MIN + SET_INPUT(Z2_MIN_PIN); + #if ENABLED(ENDSTOPPULLUP_ZMIN) + WRITE(Z2_MIN_PIN,HIGH); + #endif + #endif + + #if HAS_X_MAX + SET_INPUT(X_MAX_PIN); + #if ENABLED(ENDSTOPPULLUP_XMAX) + WRITE(X_MAX_PIN,HIGH); + #endif + #endif + + #if HAS_Y_MAX + SET_INPUT(Y_MAX_PIN); + #if ENABLED(ENDSTOPPULLUP_YMAX) + WRITE(Y_MAX_PIN,HIGH); + #endif + #endif + + #if HAS_Z_MAX + SET_INPUT(Z_MAX_PIN); + #if ENABLED(ENDSTOPPULLUP_ZMAX) + WRITE(Z_MAX_PIN,HIGH); + #endif + #endif + + #if HAS_Z2_MAX + SET_INPUT(Z2_MAX_PIN); + #if ENABLED(ENDSTOPPULLUP_ZMAX) + WRITE(Z2_MAX_PIN,HIGH); + #endif + #endif + + #if HAS_Z_PROBE && ENABLED(Z_MIN_PROBE_ENDSTOP) // Check for Z_MIN_PROBE_ENDSTOP so we don't pull a pin high unless it's to be used. + SET_INPUT(Z_MIN_PROBE_PIN); + #if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE) + WRITE(Z_MIN_PROBE_PIN,HIGH); + #endif + #endif + +} // Endstops::init + +void Endstops::report_state() { + if (endstop_hit_bits) { + #if ENABLED(ULTRA_LCD) + char chrX = ' ', chrY = ' ', chrZ = ' ', chrP = ' '; + #define _SET_STOP_CHAR(A,C) (chr## A = C) + #else + #define _SET_STOP_CHAR(A,C) ; + #endif + + #define _ENDSTOP_HIT_ECHO(A,C) do{ \ + SERIAL_ECHOPAIR(" " STRINGIFY(A) ":", stepper.triggered_position_mm(A ##_AXIS)); \ + _SET_STOP_CHAR(A,C); }while(0) + + #define _ENDSTOP_HIT_TEST(A,C) \ + if (TEST(endstop_hit_bits, A ##_MIN) || TEST(endstop_hit_bits, A ##_MAX)) \ + _ENDSTOP_HIT_ECHO(A,C) + + SERIAL_ECHO_START; + SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); + _ENDSTOP_HIT_TEST(X, 'X'); + _ENDSTOP_HIT_TEST(Y, 'Y'); + _ENDSTOP_HIT_TEST(Z, 'Z'); + + #if ENABLED(Z_MIN_PROBE_ENDSTOP) + #define P_AXIS Z_AXIS + if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P'); + #endif + SERIAL_EOL; + + #if ENABLED(ULTRA_LCD) + char msg[3 * strlen(MSG_LCD_ENDSTOPS) + 8 + 1]; // Room for a UTF 8 string + sprintf_P(msg, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP); + lcd_setstatus(msg); + #endif + + hit_on_purpose(); + + #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) && ENABLED(SDSUPPORT) + if (abort_on_endstop_hit) { + card.sdprinting = false; + card.closefile(); + stepper.quick_stop(); + disable_all_heaters(); // switch off all heaters. + } + #endif + } +} // Endstops::report_state + +// Check endstops - Called from ISR! +void Endstops::update() { + + #define _ENDSTOP_PIN(AXIS, MINMAX) AXIS ##_## MINMAX ##_PIN + #define _ENDSTOP_INVERTING(AXIS, MINMAX) AXIS ##_## MINMAX ##_ENDSTOP_INVERTING + #define _ENDSTOP_HIT(AXIS) SBI(endstop_hit_bits, _ENDSTOP(AXIS, MIN)) + #define _ENDSTOP(AXIS, MINMAX) AXIS ##_## MINMAX + + // UPDATE_ENDSTOP_BIT: set the current endstop bits for an endstop to its status + #define UPDATE_ENDSTOP_BIT(AXIS, MINMAX) SET_BIT(current_endstop_bits, _ENDSTOP(AXIS, MINMAX), (READ(_ENDSTOP_PIN(AXIS, MINMAX)) != _ENDSTOP_INVERTING(AXIS, MINMAX))) + // COPY_BIT: copy the value of COPY_BIT to BIT in bits + #define COPY_BIT(bits, COPY_BIT, BIT) SET_BIT(bits, BIT, TEST(bits, COPY_BIT)) + + #define UPDATE_ENDSTOP(AXIS,MINMAX) do { \ + UPDATE_ENDSTOP_BIT(AXIS, MINMAX); \ + if (TEST_ENDSTOP(_ENDSTOP(AXIS, MINMAX)) && stepper.current_block->steps[_AXIS(AXIS)] > 0) { \ + _ENDSTOP_HIT(AXIS); \ + stepper.endstop_triggered(_AXIS(AXIS)); \ + } \ + } while(0) + + #if ENABLED(COREXY) || ENABLED(COREXZ) + // Head direction in -X axis for CoreXY and CoreXZ bots. + // If Delta1 == -Delta2, the movement is only in Y or Z axis + if ((stepper.current_block->steps[A_AXIS] != stepper.current_block->steps[CORE_AXIS_2]) || (stepper.motor_direction(A_AXIS) == stepper.motor_direction(CORE_AXIS_2))) { + if (stepper.motor_direction(X_HEAD)) + #else + if (stepper.motor_direction(X_AXIS)) // stepping along -X axis (regular Cartesian bot) + #endif + { // -direction + #if ENABLED(DUAL_X_CARRIAGE) + // with 2 x-carriages, endstops are only checked in the homing direction for the active extruder + if ((stepper.current_block->active_extruder == 0 && X_HOME_DIR == -1) || (stepper.current_block->active_extruder != 0 && X2_HOME_DIR == -1)) + #endif + { + #if HAS_X_MIN + UPDATE_ENDSTOP(X, MIN); + #endif + } + } + else { // +direction + #if ENABLED(DUAL_X_CARRIAGE) + // with 2 x-carriages, endstops are only checked in the homing direction for the active extruder + if ((stepper.current_block->active_extruder == 0 && X_HOME_DIR == 1) || (stepper.current_block->active_extruder != 0 && X2_HOME_DIR == 1)) + #endif + { + #if HAS_X_MAX + UPDATE_ENDSTOP(X, MAX); + #endif + } + } + #if ENABLED(COREXY) || ENABLED(COREXZ) + } + #endif + + #if ENABLED(COREXY) + // Head direction in -Y axis for CoreXY bots. + // If DeltaX == DeltaY, the movement is only in X axis + if ((stepper.current_block->steps[A_AXIS] != stepper.current_block->steps[B_AXIS]) || (stepper.motor_direction(A_AXIS) != stepper.motor_direction(B_AXIS))) { + if (stepper.motor_direction(Y_HEAD)) + #else + if (stepper.motor_direction(Y_AXIS)) // -direction + #endif + { // -direction + #if HAS_Y_MIN + UPDATE_ENDSTOP(Y, MIN); + #endif + } + else { // +direction + #if HAS_Y_MAX + UPDATE_ENDSTOP(Y, MAX); + #endif + } + #if ENABLED(COREXY) + } + #endif + + #if ENABLED(COREXZ) + // Head direction in -Z axis for CoreXZ bots. + // If DeltaX == DeltaZ, the movement is only in X axis + if ((stepper.current_block->steps[A_AXIS] != stepper.current_block->steps[C_AXIS]) || (stepper.motor_direction(A_AXIS) != stepper.motor_direction(C_AXIS))) { + if (stepper.motor_direction(Z_HEAD)) + #else + if (stepper.motor_direction(Z_AXIS)) + #endif + { // z -direction + #if HAS_Z_MIN + + #if ENABLED(Z_DUAL_ENDSTOPS) + + UPDATE_ENDSTOP_BIT(Z, MIN); + #if HAS_Z2_MIN + UPDATE_ENDSTOP_BIT(Z2, MIN); + #else + COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN); + #endif + + byte z_test = TEST_ENDSTOP(Z_MIN) | (TEST_ENDSTOP(Z2_MIN) << 1); // bit 0 for Z, bit 1 for Z2 + + if (z_test && stepper.current_block->steps[Z_AXIS] > 0) { // z_test = Z_MIN || Z2_MIN + stepper.endstop_triggered(Z_AXIS); + SBI(endstop_hit_bits, Z_MIN); + if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... + stepper.kill_current_block(); + } + + #else // !Z_DUAL_ENDSTOPS + + #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) + if (z_probe_enabled) UPDATE_ENDSTOP(Z, MIN); + #else + UPDATE_ENDSTOP(Z, MIN); + #endif + + #endif // !Z_DUAL_ENDSTOPS + + #endif // HAS_Z_MIN + + #if ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) + if (z_probe_enabled) { + UPDATE_ENDSTOP(Z, MIN_PROBE); + if (TEST_ENDSTOP(Z_MIN_PROBE)) SBI(endstop_hit_bits, Z_MIN_PROBE); + } + #endif + } + else { // z +direction + #if HAS_Z_MAX + + #if ENABLED(Z_DUAL_ENDSTOPS) + + UPDATE_ENDSTOP_BIT(Z, MAX); + #if HAS_Z2_MAX + UPDATE_ENDSTOP_BIT(Z2, MAX); + #else + COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX); + #endif + + byte z_test = TEST_ENDSTOP(Z_MAX) | (TEST_ENDSTOP(Z2_MAX) << 1); // bit 0 for Z, bit 1 for Z2 + + if (z_test && stepper.current_block->steps[Z_AXIS] > 0) { // t_test = Z_MAX || Z2_MAX + stepper.endstop_triggered(Z_AXIS); + SBI(endstop_hit_bits, Z_MIN); + if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... + stepper.kill_current_block(); + } + + #else // !Z_DUAL_ENDSTOPS + + UPDATE_ENDSTOP(Z, MAX); + + #endif // !Z_DUAL_ENDSTOPS + #endif // Z_MAX_PIN + } + #if ENABLED(COREXZ) + } + #endif + old_endstop_bits = current_endstop_bits; +} // Endstops::update() diff --git a/Marlin/endstops.h b/Marlin/endstops.h new file mode 100644 index 0000000000..4cf6f5b088 --- /dev/null +++ b/Marlin/endstops.h @@ -0,0 +1,94 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +/** + * endstops.h - manages endstops + */ + +#ifndef ENDSTOPS_H +#define ENDSTOPS_H + +enum EndstopEnum {X_MIN = 0, Y_MIN = 1, Z_MIN = 2, Z_MIN_PROBE = 3, X_MAX = 4, Y_MAX = 5, Z_MAX = 6, Z2_MIN = 7, Z2_MAX = 8}; + +class Endstops { + + public: + + volatile char endstop_hit_bits; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_PROBE as BIT value + + #if ENABLED(Z_DUAL_ENDSTOPS) + uint16_t current_endstop_bits = 0, + old_endstop_bits = 0; + #else + byte current_endstop_bits = 0, + old_endstop_bits = 0; + #endif + + + bool enabled = true; + bool enabled_globally = + #if ENABLED(ENDSTOPS_ONLY_FOR_HOMING) + false + #else + true + #endif + ; + + Endstops(); + + /** + * Initialize the endstop pins + */ + void init(); + + /** + * Update the endstops bits from the pins + */ + void update(); + + /** + * Print an error message reporting the position when the endstops were last hit. + */ + void report_state(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered + + // Enable / disable endstop checking globally + FORCE_INLINE void enable_globally(bool onoff=true) { enabled_globally = enabled = onoff; } + + // Enable / disable endstop checking + FORCE_INLINE void enable(bool onoff=true) { enabled = onoff; } + + // Disable / Enable endstops based on ENSTOPS_ONLY_FOR_HOMING and global enable + FORCE_INLINE void not_homing() { enabled = enabled_globally; } + + // Clear endstops (i.e., they were hit intentionally) to suppress the report + FORCE_INLINE void hit_on_purpose() { endstop_hit_bits = 0; } + + // Enable / disable endstop z-probe checking + #if ENABLED(HAS_Z_MIN_PROBE) + volatile bool z_probe_enabled = false; + FORCE_INLINE void enable_z_probe(bool onoff=true) { z_probe_enabled = onoff; } + #endif +}; + +extern Endstops endstops; + +#endif // ENDSTOPS_H diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index f5062d2a7d..9347744a58 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -1085,7 +1085,7 @@ float junction_deviation = 0.1; planner_recalculate(); - st_wake_up(); + stepper.wake_up(); } // plan_buffer_line() @@ -1097,7 +1097,7 @@ float junction_deviation = 0.1; * On CORE machines XYZ is derived from ABC. */ vector_3 plan_get_position() { - vector_3 position = vector_3(st_get_axis_position_mm(X_AXIS), st_get_axis_position_mm(Y_AXIS), st_get_axis_position_mm(Z_AXIS)); + vector_3 position = vector_3(stepper.get_axis_position_mm(X_AXIS), stepper.get_axis_position_mm(Y_AXIS), stepper.get_axis_position_mm(Z_AXIS)); //position.debug("in plan_get position"); //plan_bed_level_matrix.debug("in plan_get_position"); @@ -1132,7 +1132,7 @@ float junction_deviation = 0.1; ny = position[Y_AXIS] = lround(y * axis_steps_per_unit[Y_AXIS]), nz = position[Z_AXIS] = lround(z * axis_steps_per_unit[Z_AXIS]), ne = position[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS]); - st_set_position(nx, ny, nz, ne); + stepper.set_position(nx, ny, nz, ne); previous_nominal_speed = 0.0; // Resets planner junction speeds. Assumes start from rest. for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0; @@ -1140,7 +1140,7 @@ float junction_deviation = 0.1; void plan_set_e_position(const float& e) { position[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS]); - st_set_e_position(position[E_AXIS]); + stepper.set_e_position(position[E_AXIS]); } // Calculate the steps/s^2 acceleration rates, based on the mm/s^s diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index 4b52edac9b..d3fa2b6375 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -21,7 +21,7 @@ */ /** - * stepper.cpp - stepper motor driver: executes motion plans using stepper motors + * stepper.cpp - A singleton object to execute motion plans using stepper motors * Marlin Firmware * * Derived from Grbl @@ -46,6 +46,7 @@ #include "Marlin.h" #include "stepper.h" +#include "endstops.h" #include "planner.h" #include "temperature.h" #include "ultralcd.h" @@ -57,85 +58,7 @@ #include #endif -//=========================================================================== -//============================= public variables ============================ -//=========================================================================== -block_t* current_block; // A pointer to the block currently being traced - -#if ENABLED(HAS_Z_MIN_PROBE) - volatile bool z_probe_is_active = false; -#endif - -//=========================================================================== -//============================= private variables =========================== -//=========================================================================== -//static makes it impossible to be called from outside of this file by extern.! - -// Variables used by The Stepper Driver Interrupt -static unsigned char out_bits = 0; // The next stepping-bits to be output -static unsigned int cleaning_buffer_counter; - -#if ENABLED(Z_DUAL_ENDSTOPS) - static bool performing_homing = false, - locked_z_motor = false, - locked_z2_motor = false; -#endif - -// Counter variables for the Bresenham line tracer -static long counter_x, counter_y, counter_z, counter_e; -volatile static unsigned long step_events_completed; // The number of step events executed in the current block - -#if ENABLED(ADVANCE) - static long advance_rate, advance, final_advance = 0; - static long old_advance = 0; - static long e_steps[4]; -#endif - -static long acceleration_time, deceleration_time; -//static unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate; -static unsigned short acc_step_rate; // needed for deceleration start point -static uint8_t step_loops; -static uint8_t step_loops_nominal; -static unsigned short OCR1A_nominal; - -volatile long endstops_trigsteps[3] = { 0 }; -volatile long endstops_stepsTotal, endstops_stepsDone; -static volatile char endstop_hit_bits = 0; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_PROBE as BIT value - -#if DISABLED(Z_DUAL_ENDSTOPS) - static byte -#else - static uint16_t -#endif - old_endstop_bits = 0; // use X_MIN, X_MAX... Z_MAX, Z_MIN_PROBE, Z2_MIN, Z2_MAX - -#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) - bool abort_on_endstop_hit = false; -#endif - -#if HAS_MOTOR_CURRENT_PWM - #ifndef PWM_MOTOR_CURRENT - #define PWM_MOTOR_CURRENT DEFAULT_PWM_MOTOR_CURRENT - #endif - const int motor_current_setting[3] = PWM_MOTOR_CURRENT; -#endif - -static bool check_endstops = true; -static bool check_endstops_global = - #if ENABLED(ENDSTOPS_ONLY_FOR_HOMING) - false - #else - true - #endif -; - -volatile long count_position[NUM_AXIS] = { 0 }; // Positions of stepper motors, in step units -volatile signed char count_direction[NUM_AXIS] = { 1 }; - - -//=========================================================================== -//================================ functions ================================ -//=========================================================================== +Stepper stepper; // Singleton #if ENABLED(DUAL_X_CARRIAGE) #define X_APPLY_DIR(v,ALWAYS) \ @@ -173,12 +96,12 @@ volatile signed char count_direction[NUM_AXIS] = { 1 }; #define Z_APPLY_STEP(v,Q) \ if (performing_homing) { \ if (Z_HOME_DIR > 0) {\ - if (!(TEST(old_endstop_bits, Z_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ - if (!(TEST(old_endstop_bits, Z2_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ + if (!(TEST(endstops.old_endstop_bits, Z_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ + if (!(TEST(endstops.old_endstop_bits, Z2_MAX) && (count_direction[Z_AXIS] > 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ } \ else { \ - if (!(TEST(old_endstop_bits, Z_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ - if (!(TEST(old_endstop_bits, Z2_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ + if (!(TEST(endstops.old_endstop_bits, Z_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z_motor) Z_STEP_WRITE(v); \ + if (!(TEST(endstops.old_endstop_bits, Z2_MIN) && (count_direction[Z_AXIS] < 0)) && !locked_z2_motor) Z2_STEP_WRITE(v); \ } \ } \ else { \ @@ -195,31 +118,6 @@ volatile signed char count_direction[NUM_AXIS] = { 1 }; #define E_APPLY_STEP(v,Q) E_STEP_WRITE(v) -// intRes = intIn1 * intIn2 >> 16 -// uses: -// r26 to store 0 -// r27 to store the byte 1 of the 24 bit result -#define MultiU16X8toH16(intRes, charIn1, intIn2) \ - asm volatile ( \ - "clr r26 \n\t" \ - "mul %A1, %B2 \n\t" \ - "movw %A0, r0 \n\t" \ - "mul %A1, %A2 \n\t" \ - "add %A0, r1 \n\t" \ - "adc %B0, r26 \n\t" \ - "lsr r0 \n\t" \ - "adc %A0, r26 \n\t" \ - "adc %B0, r26 \n\t" \ - "clr r1 \n\t" \ - : \ - "=&r" (intRes) \ - : \ - "d" (charIn1), \ - "d" (intIn2) \ - : \ - "r26" \ - ) - // intRes = longIn1 * longIn2 >> 24 // uses: // r26 to store 0 @@ -281,312 +179,38 @@ volatile signed char count_direction[NUM_AXIS] = { 1 }; #define ENABLE_STEPPER_DRIVER_INTERRUPT() SBI(TIMSK1, OCIE1A) #define DISABLE_STEPPER_DRIVER_INTERRUPT() CBI(TIMSK1, OCIE1A) -void enable_endstops(bool check) { check_endstops = check; } - -void enable_endstops_globally(bool check) { check_endstops_global = check_endstops = check; } - -void endstops_not_homing() { check_endstops = check_endstops_global; } - -void endstops_hit_on_purpose() { endstop_hit_bits = 0; } - -void checkHitEndstops() { - if (endstop_hit_bits) { - #if ENABLED(ULTRA_LCD) - char chrX = ' ', chrY = ' ', chrZ = ' ', chrP = ' '; - #define _SET_STOP_CHAR(A,C) (chr## A = C) - #else - #define _SET_STOP_CHAR(A,C) ; - #endif - - #define _ENDSTOP_HIT_ECHO(A,C) do{ \ - SERIAL_ECHOPAIR(" " STRINGIFY(A) ":", endstops_trigsteps[A ##_AXIS] / axis_steps_per_unit[A ##_AXIS]); \ - _SET_STOP_CHAR(A,C); }while(0) - - #define _ENDSTOP_HIT_TEST(A,C) \ - if (TEST(endstop_hit_bits, A ##_MIN) || TEST(endstop_hit_bits, A ##_MAX)) \ - _ENDSTOP_HIT_ECHO(A,C) - - SERIAL_ECHO_START; - SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT); - _ENDSTOP_HIT_TEST(X, 'X'); - _ENDSTOP_HIT_TEST(Y, 'Y'); - _ENDSTOP_HIT_TEST(Z, 'Z'); - - #if ENABLED(Z_MIN_PROBE_ENDSTOP) - #define P_AXIS Z_AXIS - if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P'); - #endif - SERIAL_EOL; - - #if ENABLED(ULTRA_LCD) - char msg[3 * strlen(MSG_LCD_ENDSTOPS) + 8 + 1]; // Room for a UTF 8 string - sprintf_P(msg, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP); - lcd_setstatus(msg); - #endif - - endstops_hit_on_purpose(); - - #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) && ENABLED(SDSUPPORT) - if (abort_on_endstop_hit) { - card.sdprinting = false; - card.closefile(); - quickStop(); - disable_all_heaters(); // switch off all heaters. - } - #endif - } -} - -// Check endstops - Called from ISR! -inline void update_endstops() { - - #if ENABLED(Z_DUAL_ENDSTOPS) - uint16_t - #else - byte - #endif - current_endstop_bits = 0; - - #define _ENDSTOP_PIN(AXIS, MINMAX) AXIS ##_## MINMAX ##_PIN - #define _ENDSTOP_INVERTING(AXIS, MINMAX) AXIS ##_## MINMAX ##_ENDSTOP_INVERTING - #define _AXIS(AXIS) AXIS ##_AXIS - #define _ENDSTOP_HIT(AXIS) SBI(endstop_hit_bits, _ENDSTOP(AXIS, MIN)) - #define _ENDSTOP(AXIS, MINMAX) AXIS ##_## MINMAX - - // SET_ENDSTOP_BIT: set the current endstop bits for an endstop to its status - #define SET_ENDSTOP_BIT(AXIS, MINMAX) SET_BIT(current_endstop_bits, _ENDSTOP(AXIS, MINMAX), (READ(_ENDSTOP_PIN(AXIS, MINMAX)) != _ENDSTOP_INVERTING(AXIS, MINMAX))) - // COPY_BIT: copy the value of COPY_BIT to BIT in bits - #define COPY_BIT(bits, COPY_BIT, BIT) SET_BIT(bits, BIT, TEST(bits, COPY_BIT)) - // TEST_ENDSTOP: test the old and the current status of an endstop - #define TEST_ENDSTOP(ENDSTOP) (TEST(current_endstop_bits, ENDSTOP) && TEST(old_endstop_bits, ENDSTOP)) - - #if ENABLED(COREXY) || ENABLED(COREXZ) - - #define _SET_TRIGSTEPS(AXIS) do { \ - float axis_pos = count_position[_AXIS(AXIS)]; \ - if (_AXIS(AXIS) == A_AXIS) \ - axis_pos = (axis_pos + count_position[CORE_AXIS_2]) / 2; \ - else if (_AXIS(AXIS) == CORE_AXIS_2) \ - axis_pos = (count_position[A_AXIS] - axis_pos) / 2; \ - endstops_trigsteps[_AXIS(AXIS)] = axis_pos; \ - } while(0) - - #else - - #define _SET_TRIGSTEPS(AXIS) endstops_trigsteps[_AXIS(AXIS)] = count_position[_AXIS(AXIS)] - - #endif // COREXY || COREXZ - - #define UPDATE_ENDSTOP(AXIS,MINMAX) do { \ - SET_ENDSTOP_BIT(AXIS, MINMAX); \ - if (TEST_ENDSTOP(_ENDSTOP(AXIS, MINMAX)) && current_block->steps[_AXIS(AXIS)] > 0) { \ - _SET_TRIGSTEPS(AXIS); \ - _ENDSTOP_HIT(AXIS); \ - step_events_completed = current_block->step_event_count; \ - } \ - } while(0) - - #if ENABLED(COREXY) || ENABLED(COREXZ) - // Head direction in -X axis for CoreXY and CoreXZ bots. - // If Delta1 == -Delta2, the movement is only in Y or Z axis - if ((current_block->steps[A_AXIS] != current_block->steps[CORE_AXIS_2]) || (TEST(out_bits, A_AXIS) == TEST(out_bits, CORE_AXIS_2))) { - if (TEST(out_bits, X_HEAD)) - #else - if (TEST(out_bits, X_AXIS)) // stepping along -X axis (regular Cartesian bot) - #endif - { // -direction - #if ENABLED(DUAL_X_CARRIAGE) - // with 2 x-carriages, endstops are only checked in the homing direction for the active extruder - if ((current_block->active_extruder == 0 && X_HOME_DIR == -1) || (current_block->active_extruder != 0 && X2_HOME_DIR == -1)) - #endif - { - #if HAS_X_MIN - UPDATE_ENDSTOP(X, MIN); - #endif - } - } - else { // +direction - #if ENABLED(DUAL_X_CARRIAGE) - // with 2 x-carriages, endstops are only checked in the homing direction for the active extruder - if ((current_block->active_extruder == 0 && X_HOME_DIR == 1) || (current_block->active_extruder != 0 && X2_HOME_DIR == 1)) - #endif - { - #if HAS_X_MAX - UPDATE_ENDSTOP(X, MAX); - #endif - } - } - #if ENABLED(COREXY) || ENABLED(COREXZ) - } - #endif - - #if ENABLED(COREXY) - // Head direction in -Y axis for CoreXY bots. - // If DeltaX == DeltaY, the movement is only in X axis - if ((current_block->steps[A_AXIS] != current_block->steps[B_AXIS]) || (TEST(out_bits, A_AXIS) != TEST(out_bits, B_AXIS))) { - if (TEST(out_bits, Y_HEAD)) - #else - if (TEST(out_bits, Y_AXIS)) // -direction - #endif - { // -direction - #if HAS_Y_MIN - UPDATE_ENDSTOP(Y, MIN); - #endif - } - else { // +direction - #if HAS_Y_MAX - UPDATE_ENDSTOP(Y, MAX); - #endif - } - #if ENABLED(COREXY) - } - #endif - - #if ENABLED(COREXZ) - // Head direction in -Z axis for CoreXZ bots. - // If DeltaX == DeltaZ, the movement is only in X axis - if ((current_block->steps[A_AXIS] != current_block->steps[C_AXIS]) || (TEST(out_bits, A_AXIS) != TEST(out_bits, C_AXIS))) { - if (TEST(out_bits, Z_HEAD)) - #else - if (TEST(out_bits, Z_AXIS)) - #endif - { // z -direction - #if HAS_Z_MIN - - #if ENABLED(Z_DUAL_ENDSTOPS) - SET_ENDSTOP_BIT(Z, MIN); - #if HAS_Z2_MIN - SET_ENDSTOP_BIT(Z2, MIN); - #else - COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN); - #endif - - byte z_test = TEST_ENDSTOP(Z_MIN) | (TEST_ENDSTOP(Z2_MIN) << 1); // bit 0 for Z, bit 1 for Z2 - - if (z_test && current_block->steps[Z_AXIS] > 0) { // z_test = Z_MIN || Z2_MIN - endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS]; - SBI(endstop_hit_bits, Z_MIN); - if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... - step_events_completed = current_block->step_event_count; - } - #else // !Z_DUAL_ENDSTOPS - - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) - if (z_probe_is_active) UPDATE_ENDSTOP(Z, MIN); - #else - UPDATE_ENDSTOP(Z, MIN); - #endif - #endif // !Z_DUAL_ENDSTOPS - #endif - - #if ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) - if (z_probe_is_active) { - UPDATE_ENDSTOP(Z, MIN_PROBE); - if (TEST_ENDSTOP(Z_MIN_PROBE)) SBI(endstop_hit_bits, Z_MIN_PROBE); - } - #endif - } - else { // z +direction - #if HAS_Z_MAX - - #if ENABLED(Z_DUAL_ENDSTOPS) - - SET_ENDSTOP_BIT(Z, MAX); - #if HAS_Z2_MAX - SET_ENDSTOP_BIT(Z2, MAX); - #else - COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX); - #endif - - byte z_test = TEST_ENDSTOP(Z_MAX) | (TEST_ENDSTOP(Z2_MAX) << 1); // bit 0 for Z, bit 1 for Z2 - - if (z_test && current_block->steps[Z_AXIS] > 0) { // t_test = Z_MAX || Z2_MAX - endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS]; - SBI(endstop_hit_bits, Z_MIN); - if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... - step_events_completed = current_block->step_event_count; - } - - #else // !Z_DUAL_ENDSTOPS - - UPDATE_ENDSTOP(Z, MAX); - - #endif // !Z_DUAL_ENDSTOPS - #endif // Z_MAX_PIN - } - #if ENABLED(COREXZ) - } - #endif - old_endstop_bits = current_endstop_bits; -} - -// __________________________ -// /| |\ _________________ ^ -// / | | \ /| |\ | -// / | | \ / | | \ s -// / | | | | | \ p -// / | | | | | \ e -// +-----+------------------------+---+--+---------------+----+ e -// | BLOCK 1 | BLOCK 2 | d -// -// time -----> -// -// The trapezoid is the shape the speed curve over time. It starts at block->initial_rate, accelerates -// first block->accelerate_until step_events_completed, then keeps going at constant speed until -// step_events_completed reaches block->decelerate_after after which it decelerates until the trapezoid generator is reset. -// The slope of acceleration is calculated using v = u + at where t is the accumulated timer values of the steps so far. - -void st_wake_up() { +/** + * __________________________ + * /| |\ _________________ ^ + * / | | \ /| |\ | + * / | | \ / | | \ s + * / | | | | | \ p + * / | | | | | \ e + * +-----+------------------------+---+--+---------------+----+ e + * | BLOCK 1 | BLOCK 2 | d + * + * time -----> + * + * The trapezoid is the shape the speed curve over time. It starts at block->initial_rate, accelerates + * first block->accelerate_until step_events_completed, then keeps going at constant speed until + * step_events_completed reaches block->decelerate_after after which it decelerates until the trapezoid generator is reset. + * The slope of acceleration is calculated using v = u + at where t is the accumulated timer values of the steps so far. + */ +void Stepper::wake_up() { // TCNT1 = 0; ENABLE_STEPPER_DRIVER_INTERRUPT(); } -FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) { - unsigned short timer; - - NOMORE(step_rate, MAX_STEP_FREQUENCY); - - if (step_rate > 20000) { // If steprate > 20kHz >> step 4 times - step_rate = (step_rate >> 2) & 0x3fff; - step_loops = 4; - } - else if (step_rate > 10000) { // If steprate > 10kHz >> step 2 times - step_rate = (step_rate >> 1) & 0x7fff; - step_loops = 2; - } - else { - step_loops = 1; - } - - NOLESS(step_rate, F_CPU / 500000); - step_rate -= F_CPU / 500000; // Correct for minimal speed - if (step_rate >= (8 * 256)) { // higher step rate - unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate >> 8)][0]; - unsigned char tmp_step_rate = (step_rate & 0x00ff); - unsigned short gain = (unsigned short)pgm_read_word_near(table_address + 2); - MultiU16X8toH16(timer, tmp_step_rate, gain); - timer = (unsigned short)pgm_read_word_near(table_address) - timer; - } - else { // lower step rates - unsigned short table_address = (unsigned short)&speed_lookuptable_slow[0][0]; - table_address += ((step_rate) >> 1) & 0xfffc; - timer = (unsigned short)pgm_read_word_near(table_address); - timer -= (((unsigned short)pgm_read_word_near(table_address + 2) * (unsigned char)(step_rate & 0x0007)) >> 3); - } - if (timer < 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen) - return timer; -} - /** * Set the stepper direction of each axis * * X_AXIS=A_AXIS and Y_AXIS=B_AXIS for COREXY * X_AXIS=A_AXIS and Z_AXIS=C_AXIS for COREXZ */ -void set_stepper_direction() { +void Stepper::set_directions() { #define SET_STEP_DIR(AXIS) \ - if (TEST(out_bits, AXIS ##_AXIS)) { \ + if (motor_direction(AXIS ##_AXIS)) { \ AXIS ##_APPLY_DIR(INVERT_## AXIS ##_DIR, false); \ count_direction[AXIS ##_AXIS] = -1; \ } \ @@ -600,7 +224,7 @@ void set_stepper_direction() { SET_STEP_DIR(Z); // C #if DISABLED(ADVANCE) - if (TEST(out_bits, E_AXIS)) { + if (motor_direction(E_AXIS)) { REV_E_DIR(); count_direction[E_AXIS] = -1; } @@ -611,49 +235,11 @@ void set_stepper_direction() { #endif //!ADVANCE } -// Initializes the trapezoid generator from the current block. Called whenever a new -// block begins. -FORCE_INLINE void trapezoid_generator_reset() { - - static int8_t last_extruder = -1; - - if (current_block->direction_bits != out_bits || current_block->active_extruder != last_extruder) { - out_bits = current_block->direction_bits; - last_extruder = current_block->active_extruder; - set_stepper_direction(); - } - - #if ENABLED(ADVANCE) - advance = current_block->initial_advance; - final_advance = current_block->final_advance; - // Do E steps + advance steps - e_steps[current_block->active_extruder] += ((advance >>8) - old_advance); - old_advance = advance >>8; - #endif - deceleration_time = 0; - // step_rate to timer interval - OCR1A_nominal = calc_timer(current_block->nominal_rate); - // make a note of the number of step loops required at nominal speed - step_loops_nominal = step_loops; - acc_step_rate = current_block->initial_rate; - acceleration_time = calc_timer(acc_step_rate); - OCR1A = acceleration_time; - - // SERIAL_ECHO_START; - // SERIAL_ECHOPGM("advance :"); - // SERIAL_ECHO(current_block->advance/256.0); - // SERIAL_ECHOPGM("advance rate :"); - // SERIAL_ECHO(current_block->advance_rate/256.0); - // SERIAL_ECHOPGM("initial advance :"); - // SERIAL_ECHO(current_block->initial_advance/256.0); - // SERIAL_ECHOPGM("final advance :"); - // SERIAL_ECHOLN(current_block->final_advance/256.0); -} - // "The Stepper Driver Interrupt" - This timer interrupt is the workhorse. // It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately. -ISR(TIMER1_COMPA_vect) { +ISR(TIMER1_COMPA_vect) { stepper.isr(); } +void Stepper::isr() { if (cleaning_buffer_counter) { current_block = NULL; plan_discard_current_block(); @@ -672,8 +258,8 @@ ISR(TIMER1_COMPA_vect) { if (current_block) { current_block->busy = true; trapezoid_generator_reset(); - counter_x = -(current_block->step_event_count >> 1); - counter_y = counter_z = counter_e = counter_x; + counter_X = -(current_block->step_event_count >> 1); + counter_Y = counter_Z = counter_E = counter_X; step_events_completed = 0; #if ENABLED(Z_LATE_ENABLE) @@ -697,9 +283,9 @@ ISR(TIMER1_COMPA_vect) { // Update endstops state, if enabled #if ENABLED(HAS_Z_MIN_PROBE) - if (check_endstops || z_probe_is_active) update_endstops(); + if (endstops.enabled || endstops.z_probe_enabled) endstops.update(); #else - if (check_endstops) update_endstops(); + if (endstops.enabled) endstops.update(); #endif // Take multiple steps per interrupt (For high speed moves) @@ -709,48 +295,47 @@ ISR(TIMER1_COMPA_vect) { #endif #if ENABLED(ADVANCE) - counter_e += current_block->steps[E_AXIS]; - if (counter_e > 0) { - counter_e -= current_block->step_event_count; - e_steps[current_block->active_extruder] += TEST(out_bits, E_AXIS) ? -1 : 1; + counter_E += current_block->steps[E_AXIS]; + if (counter_E > 0) { + counter_E -= current_block->step_event_count; + e_steps[current_block->active_extruder] += motor_direction(E_AXIS) ? -1 : 1; } #endif //ADVANCE - #define _COUNTER(axis) counter_## axis + #define _COUNTER(AXIS) counter_## AXIS #define _APPLY_STEP(AXIS) AXIS ##_APPLY_STEP #define _INVERT_STEP_PIN(AXIS) INVERT_## AXIS ##_STEP_PIN - #define STEP_ADD(axis, AXIS) \ - _COUNTER(axis) += current_block->steps[_AXIS(AXIS)]; \ - if (_COUNTER(axis) > 0) { _APPLY_STEP(AXIS)(!_INVERT_STEP_PIN(AXIS),0); } + #define STEP_ADD(AXIS) \ + _COUNTER(AXIS) += current_block->steps[_AXIS(AXIS)]; \ + if (_COUNTER(AXIS) > 0) { _APPLY_STEP(AXIS)(!_INVERT_STEP_PIN(AXIS),0); } - STEP_ADD(x,X); - STEP_ADD(y,Y); - STEP_ADD(z,Z); + STEP_ADD(X); + STEP_ADD(Y); + STEP_ADD(Z); #if DISABLED(ADVANCE) - STEP_ADD(e,E); + STEP_ADD(E); #endif - #define STEP_IF_COUNTER(axis, AXIS) \ - if (_COUNTER(axis) > 0) { \ - _COUNTER(axis) -= current_block->step_event_count; \ + #define STEP_IF_COUNTER(AXIS) \ + if (_COUNTER(AXIS) > 0) { \ + _COUNTER(AXIS) -= current_block->step_event_count; \ count_position[_AXIS(AXIS)] += count_direction[_AXIS(AXIS)]; \ _APPLY_STEP(AXIS)(_INVERT_STEP_PIN(AXIS),0); \ } - STEP_IF_COUNTER(x, X); - STEP_IF_COUNTER(y, Y); - STEP_IF_COUNTER(z, Z); + STEP_IF_COUNTER(X); + STEP_IF_COUNTER(Y); + STEP_IF_COUNTER(Z); #if DISABLED(ADVANCE) - STEP_IF_COUNTER(e, E); + STEP_IF_COUNTER(E); #endif step_events_completed++; if (step_events_completed >= current_block->step_event_count) break; } // Calculate new timer value - unsigned short timer; - unsigned short step_rate; + unsigned short timer, step_rate; if (step_events_completed <= (unsigned long)current_block->accelerate_until) { MultiU24X32toH16(acc_step_rate, acceleration_time, current_block->acceleration_rate); @@ -817,10 +402,11 @@ ISR(TIMER1_COMPA_vect) { } #if ENABLED(ADVANCE) - unsigned char old_OCR0A; // Timer interrupt for E. e_steps is set in the main routine; // Timer 0 is shared with millies - ISR(TIMER0_COMPA_vect) { + ISR(TIMER0_COMPA_vect) { stepper.advance_isr(); } + + void Stepper::advance_isr() { old_OCR0A += 52; // ~10kHz interrupt (250000 / 26 = 9615kHz) OCR0A = old_OCR0A; @@ -852,9 +438,10 @@ ISR(TIMER1_COMPA_vect) { #endif } } + #endif // ADVANCE -void st_init() { +void Stepper::init() { digipot_init(); //Initialize Digipot Motor Current microstep_init(); //Initialize Microstepping Pins @@ -944,70 +531,10 @@ void st_init() { if (!E_ENABLE_ON) E3_ENABLE_WRITE(HIGH); #endif - //endstops and pullups - - #if HAS_X_MIN - SET_INPUT(X_MIN_PIN); - #if ENABLED(ENDSTOPPULLUP_XMIN) - WRITE(X_MIN_PIN,HIGH); - #endif - #endif - - #if HAS_Y_MIN - SET_INPUT(Y_MIN_PIN); - #if ENABLED(ENDSTOPPULLUP_YMIN) - WRITE(Y_MIN_PIN,HIGH); - #endif - #endif - - #if HAS_Z_MIN - SET_INPUT(Z_MIN_PIN); - #if ENABLED(ENDSTOPPULLUP_ZMIN) - WRITE(Z_MIN_PIN,HIGH); - #endif - #endif - - #if HAS_Z2_MIN - SET_INPUT(Z2_MIN_PIN); - #if ENABLED(ENDSTOPPULLUP_ZMIN) - WRITE(Z2_MIN_PIN,HIGH); - #endif - #endif - - #if HAS_X_MAX - SET_INPUT(X_MAX_PIN); - #if ENABLED(ENDSTOPPULLUP_XMAX) - WRITE(X_MAX_PIN,HIGH); - #endif - #endif - - #if HAS_Y_MAX - SET_INPUT(Y_MAX_PIN); - #if ENABLED(ENDSTOPPULLUP_YMAX) - WRITE(Y_MAX_PIN,HIGH); - #endif - #endif - - #if HAS_Z_MAX - SET_INPUT(Z_MAX_PIN); - #if ENABLED(ENDSTOPPULLUP_ZMAX) - WRITE(Z_MAX_PIN,HIGH); - #endif - #endif - - #if HAS_Z2_MAX - SET_INPUT(Z2_MAX_PIN); - #if ENABLED(ENDSTOPPULLUP_ZMAX) - WRITE(Z2_MAX_PIN,HIGH); - #endif - #endif - - #if HAS_Z_PROBE && ENABLED(Z_MIN_PROBE_ENDSTOP) // Check for Z_MIN_PROBE_ENDSTOP so we don't pull a pin high unless it's to be used. - SET_INPUT(Z_MIN_PROBE_PIN); - #if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE) - WRITE(Z_MIN_PROBE_PIN,HIGH); - #endif - #endif + // + // Init endstops and pullups here + // + endstops.init(); #define _STEP_INIT(AXIS) AXIS ##_STEP_INIT #define _WRITE_STEP(AXIS, HIGHLOW) AXIS ##_STEP_WRITE(HIGHLOW) @@ -1083,17 +610,17 @@ void st_init() { SBI(TIMSK0, OCIE0A); #endif //ADVANCE - enable_endstops(true); // Start with endstops active. After homing they can be disabled + endstops.enable(true); // Start with endstops active. After homing they can be disabled sei(); - set_stepper_direction(); // Init directions to out_bits = 0 + set_directions(); // Init directions to last_direction_bits = 0 } /** * Block until all buffered steps are executed */ -void st_synchronize() { while (blocks_queued()) idle(); } +void Stepper::synchronize() { while (blocks_queued()) idle(); } /** * Set the stepper positions directly in steps @@ -1101,10 +628,10 @@ void st_synchronize() { while (blocks_queued()) idle(); } * The input is based on the typical per-axis XYZ steps. * For CORE machines XYZ needs to be translated to ABC. * - * This allows st_get_axis_position_mm to correctly + * This allows get_axis_position_mm to correctly * derive the current XYZ position later on. */ -void st_set_position(const long& x, const long& y, const long& z, const long& e) { +void Stepper::set_position(const long& x, const long& y, const long& z, const long& e) { CRITICAL_SECTION_START; #if ENABLED(COREXY) @@ -1129,7 +656,7 @@ void st_set_position(const long& x, const long& y, const long& z, const long& e) CRITICAL_SECTION_END; } -void st_set_e_position(const long& e) { +void Stepper::set_e_position(const long& e) { CRITICAL_SECTION_START; count_position[E_AXIS] = e; CRITICAL_SECTION_END; @@ -1138,7 +665,7 @@ void st_set_e_position(const long& e) { /** * Get a stepper's position in steps. */ -long st_get_position(AxisEnum axis) { +long Stepper::position(AxisEnum axis) { CRITICAL_SECTION_START; long count_pos = count_position[axis]; CRITICAL_SECTION_END; @@ -1149,7 +676,7 @@ long st_get_position(AxisEnum axis) { * Get an axis position according to stepper position(s) * For CORE machines apply translation from ABC to XYZ. */ -float st_get_axis_position_mm(AxisEnum axis) { +float Stepper::get_axis_position_mm(AxisEnum axis) { float axis_steps; #if ENABLED(COREXY) | ENABLED(COREXZ) if (axis == X_AXIS || axis == CORE_AXIS_2) { @@ -1162,19 +689,19 @@ float st_get_axis_position_mm(AxisEnum axis) { axis_steps = (pos1 + ((axis == X_AXIS) ? pos2 : -pos2)) / 2.0f; } else - axis_steps = st_get_position(axis); + axis_steps = position(axis); #else - axis_steps = st_get_position(axis); + axis_steps = position(axis); #endif return axis_steps / axis_steps_per_unit[axis]; } -void finishAndDisableSteppers() { - st_synchronize(); +void Stepper::finish_and_disable() { + synchronize(); disable_all_steppers(); } -void quickStop() { +void Stepper::quick_stop() { cleaning_buffer_counter = 5000; DISABLE_STEPPER_DRIVER_INTERRUPT(); while (blocks_queued()) plan_discard_current_block(); @@ -1182,11 +709,62 @@ void quickStop() { ENABLE_STEPPER_DRIVER_INTERRUPT(); } +void Stepper::endstop_triggered(AxisEnum axis) { + + #if ENABLED(COREXY) || ENABLED(COREXZ) + + float axis_pos = count_position[axis]; + if (axis == A_AXIS) + axis_pos = (axis_pos + count_position[CORE_AXIS_2]) / 2; + else if (axis == CORE_AXIS_2) + axis_pos = (count_position[A_AXIS] - axis_pos) / 2; + endstops_trigsteps[axis] = axis_pos; + + #else // !COREXY && !COREXZ + + endstops_trigsteps[axis] = count_position[axis]; + + #endif // !COREXY && !COREXZ + + kill_current_block(); +} + +void Stepper::report_positions() { + CRITICAL_SECTION_START; + long xpos = count_position[X_AXIS], + ypos = count_position[Y_AXIS], + zpos = count_position[Z_AXIS]; + CRITICAL_SECTION_END; + + #if ENABLED(COREXY) || ENABLED(COREXZ) + SERIAL_PROTOCOLPGM(MSG_COUNT_A); + #else + SERIAL_PROTOCOLPGM(MSG_COUNT_X); + #endif + SERIAL_PROTOCOL(xpos); + + #if ENABLED(COREXY) || ENABLED(COREXZ) + SERIAL_PROTOCOLPGM(" B:"); + #else + SERIAL_PROTOCOLPGM(" Y:"); + #endif + SERIAL_PROTOCOL(ypos); + + #if ENABLED(COREXZ) || ENABLED(COREXZ) + SERIAL_PROTOCOLPGM(" C:"); + #else + SERIAL_PROTOCOLPGM(" Z:"); + #endif + SERIAL_PROTOCOL(zpos); + + SERIAL_EOL; +} + #if ENABLED(BABYSTEPPING) // MUST ONLY BE CALLED BY AN ISR, // No other ISR should ever interrupt this! - void babystep(const uint8_t axis, const bool direction) { + void Stepper::babystep(const uint8_t axis, const bool direction) { #define _ENABLE(axis) enable_## axis() #define _READ_DIR(AXIS) AXIS ##_DIR_READ @@ -1256,10 +834,14 @@ void quickStop() { #endif //BABYSTEPPING +/** + * Software-controlled Stepper Motor Current + */ + #if HAS_DIGIPOTSS // From Arduino DigitalPotControl example - void digitalPotWrite(int address, int value) { + void Stepper::digitalPotWrite(int address, int value) { digitalWrite(DIGIPOTSS_PIN, LOW); // take the SS pin low to select the chip SPI.transfer(address); // send in the address and value via SPI: SPI.transfer(value); @@ -1269,8 +851,7 @@ void quickStop() { #endif //HAS_DIGIPOTSS -// Initialize Digipot Motor Current -void digipot_init() { +void Stepper::digipot_init() { #if HAS_DIGIPOTSS const uint8_t digipot_motor_current[] = DIGIPOT_MOTOR_CURRENT; @@ -1299,7 +880,7 @@ void digipot_init() { #endif } -void digipot_current(uint8_t driver, int current) { +void Stepper::digipot_current(uint8_t driver, int current) { #if HAS_DIGIPOTSS const uint8_t digipot_ch[] = DIGIPOT_CHANNELS; digitalPotWrite(digipot_ch[driver], current); @@ -1322,7 +903,7 @@ void digipot_current(uint8_t driver, int current) { #endif } -void microstep_init() { +void Stepper::microstep_init() { #if HAS_MICROSTEPS_E1 pinMode(E1_MS1_PIN, OUTPUT); pinMode(E1_MS2_PIN, OUTPUT); @@ -1343,7 +924,11 @@ void microstep_init() { #endif } -void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { +/** + * Software-controlled Microstepping + */ + +void Stepper::microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { if (ms1 >= 0) switch (driver) { case 0: digitalWrite(X_MS1_PIN, ms1); break; case 1: digitalWrite(Y_MS1_PIN, ms1); break; @@ -1364,7 +949,7 @@ void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) { } } -void microstep_mode(uint8_t driver, uint8_t stepping_mode) { +void Stepper::microstep_mode(uint8_t driver, uint8_t stepping_mode) { switch (stepping_mode) { case 1: microstep_ms(driver, MICROSTEP1); break; case 2: microstep_ms(driver, MICROSTEP2); break; @@ -1374,7 +959,7 @@ void microstep_mode(uint8_t driver, uint8_t stepping_mode) { } } -void microstep_readings() { +void Stepper::microstep_readings() { SERIAL_PROTOCOLPGM("MS1,MS2 Pins\n"); SERIAL_PROTOCOLPGM("X: "); SERIAL_PROTOCOL(digitalRead(X_MS1_PIN)); @@ -1396,7 +981,7 @@ void microstep_readings() { } #if ENABLED(Z_DUAL_ENDSTOPS) - void In_Homing_Process(bool state) { performing_homing = state; } - void Lock_z_motor(bool state) { locked_z_motor = state; } - void Lock_z2_motor(bool state) { locked_z2_motor = state; } + void Stepper::set_homing_flag(bool state) { performing_homing = state; } + void Stepper::set_z_lock(bool state) { locked_z_motor = state; } + void Stepper::set_z2_lock(bool state) { locked_z2_motor = state; } #endif diff --git a/Marlin/stepper.h b/Marlin/stepper.h index b0230b8cd2..3efad54694 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -21,90 +21,313 @@ */ /** - stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors - Part of Grbl + * stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors + * Part of Grbl + * + * Copyright (c) 2009-2011 Simen Svale Skogsrud + * + * Grbl is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Grbl is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Grbl. If not, see . + */ - Copyright (c) 2009-2011 Simen Svale Skogsrud +#ifndef STEPPER_H +#define STEPPER_H - Grbl is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +#include "planner.h" +#include "speed_lookuptable.h" +#include "stepper_indirection.h" +#include "language.h" - Grbl is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. +class Stepper; +extern Stepper stepper; - You should have received a copy of the GNU General Public License - along with Grbl. If not, see . -*/ +// intRes = intIn1 * intIn2 >> 16 +// uses: +// r26 to store 0 +// r27 to store the byte 1 of the 24 bit result +#define MultiU16X8toH16(intRes, charIn1, intIn2) \ + asm volatile ( \ + "clr r26 \n\t" \ + "mul %A1, %B2 \n\t" \ + "movw %A0, r0 \n\t" \ + "mul %A1, %A2 \n\t" \ + "add %A0, r1 \n\t" \ + "adc %B0, r26 \n\t" \ + "lsr r0 \n\t" \ + "adc %A0, r26 \n\t" \ + "adc %B0, r26 \n\t" \ + "clr r1 \n\t" \ + : \ + "=&r" (intRes) \ + : \ + "d" (charIn1), \ + "d" (intIn2) \ + : \ + "r26" \ + ) -#ifndef stepper_h -#define stepper_h +class Stepper { -#include "planner.h" -#include "stepper_indirection.h" + public: + + block_t* current_block = NULL; // A pointer to the block currently being traced + + #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) + bool abort_on_endstop_hit = false; + #endif + + #if ENABLED(Z_DUAL_ENDSTOPS) + bool performing_homing = false; + #endif + + #if ENABLED(ADVANCE) + long e_steps[4]; + #endif + + private: + + unsigned char last_direction_bits = 0; // The next stepping-bits to be output + unsigned int cleaning_buffer_counter = 0; + + #if ENABLED(Z_DUAL_ENDSTOPS) + bool locked_z_motor = false, + locked_z2_motor = false; + #endif + + // Counter variables for the Bresenham line tracer + long counter_X = 0, counter_Y = 0, counter_Z = 0, counter_E = 0; + volatile unsigned long step_events_completed = 0; // The number of step events executed in the current block + + #if ENABLED(ADVANCE) + unsigned char old_OCR0A; + long advance_rate, advance, final_advance = 0; + long old_advance = 0; + #endif + + long acceleration_time, deceleration_time; + //unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate; + unsigned short acc_step_rate; // needed for deceleration start point + uint8_t step_loops; + uint8_t step_loops_nominal; + unsigned short OCR1A_nominal; + + volatile long endstops_trigsteps[3]; + volatile long endstops_stepsTotal, endstops_stepsDone; + + #if HAS_MOTOR_CURRENT_PWM + #ifndef PWM_MOTOR_CURRENT + #define PWM_MOTOR_CURRENT DEFAULT_PWM_MOTOR_CURRENT + #endif + const int motor_current_setting[3] = PWM_MOTOR_CURRENT; + #endif + + // + // Positions of stepper motors, in step units + // + volatile long count_position[NUM_AXIS] = { 0 }; + + // + // Current direction of stepper motors (+1 or -1) + // + volatile signed char count_direction[NUM_AXIS] = { 1 }; + + public: + + // + // Constructor / initializer + // + Stepper() {}; + + // + // Initialize stepper hardware + // + void init(); + + // + // Interrupt Service Routines + // + + void isr(); + + #if ENABLED(ADVANCE) + void advance_isr(); + #endif + + // + // Block until all buffered steps are executed + // + void synchronize(); + + // + // Set the current position in steps + // + void set_position(const long& x, const long& y, const long& z, const long& e); + void set_e_position(const long& e); + + // + // Set direction bits for all steppers + // + void set_directions(); + + // + // Get the position of a stepper, in steps + // + long position(AxisEnum axis); + + // + // Report the positions of the steppers, in steps + // + void report_positions(); + + // + // Get the position (mm) of an axis based on stepper position(s) + // + float get_axis_position_mm(AxisEnum axis); + + // + // The stepper subsystem goes to sleep when it runs out of things to execute. Call this + // to notify the subsystem that it is time to go to work. + // + void wake_up(); + + // + // Wait for moves to finish and disable all steppers + // + void finish_and_disable(); + + // + // Quickly stop all steppers and clear the blocks queue + // + void quick_stop(); -#if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) - extern bool abort_on_endstop_hit; -#endif + // + // The direction of a single motor + // + FORCE_INLINE bool motor_direction(AxisEnum axis) { return TEST(last_direction_bits, axis); } -// Initialize and start the stepper motor subsystem -void st_init(); + #if HAS_DIGIPOTSS + void digitalPotWrite(int address, int value); + #endif + void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2); + void digipot_current(uint8_t driver, int current); + void microstep_readings(); -// Block until all buffered steps are executed -void st_synchronize(); + #if ENABLED(Z_DUAL_ENDSTOPS) + void set_homing_flag(bool state); + void set_z_lock(bool state); + void set_z2_lock(bool state); + #endif -// Set current position in steps -void st_set_position(const long& x, const long& y, const long& z, const long& e); -void st_set_e_position(const long& e); + #if ENABLED(BABYSTEPPING) + void babystep(const uint8_t axis, const bool direction); // perform a short step with a single stepper motor, outside of any convention + #endif -// Get current position in steps -long st_get_position(AxisEnum axis); + inline void kill_current_block() { + step_events_completed = current_block->step_event_count; + } -// Get current axis position in mm -float st_get_axis_position_mm(AxisEnum axis); + // + // Handle a triggered endstop + // + void endstop_triggered(AxisEnum axis); -// The stepper subsystem goes to sleep when it runs out of things to execute. Call this -// to notify the subsystem that it is time to go to work. -void st_wake_up(); + // + // Triggered position of an axis in mm (not core-savvy) + // + FORCE_INLINE float triggered_position_mm(AxisEnum axis) { + return endstops_trigsteps[axis] / axis_steps_per_unit[axis]; + } + FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) { + unsigned short timer; -void checkHitEndstops(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered -void endstops_hit_on_purpose(); //avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops(); + NOMORE(step_rate, MAX_STEP_FREQUENCY); -void enable_endstops(bool check); // Enable/disable endstop checking + if (step_rate > 20000) { // If steprate > 20kHz >> step 4 times + step_rate = (step_rate >> 2) & 0x3fff; + step_loops = 4; + } + else if (step_rate > 10000) { // If steprate > 10kHz >> step 2 times + step_rate = (step_rate >> 1) & 0x7fff; + step_loops = 2; + } + else { + step_loops = 1; + } -void enable_endstops_globally(bool check); -void endstops_not_homing(); + NOLESS(step_rate, F_CPU / 500000); + step_rate -= F_CPU / 500000; // Correct for minimal speed + if (step_rate >= (8 * 256)) { // higher step rate + unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate >> 8)][0]; + unsigned char tmp_step_rate = (step_rate & 0x00ff); + unsigned short gain = (unsigned short)pgm_read_word_near(table_address + 2); + MultiU16X8toH16(timer, tmp_step_rate, gain); + timer = (unsigned short)pgm_read_word_near(table_address) - timer; + } + else { // lower step rates + unsigned short table_address = (unsigned short)&speed_lookuptable_slow[0][0]; + table_address += ((step_rate) >> 1) & 0xfffc; + timer = (unsigned short)pgm_read_word_near(table_address); + timer -= (((unsigned short)pgm_read_word_near(table_address + 2) * (unsigned char)(step_rate & 0x0007)) >> 3); + } + if (timer < 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen) + return timer; + } -void checkStepperErrors(); //Print errors detected by the stepper + // Initializes the trapezoid generator from the current block. Called whenever a new + // block begins. + FORCE_INLINE void trapezoid_generator_reset() { -void finishAndDisableSteppers(); + static int8_t last_extruder = -1; -extern block_t* current_block; // A pointer to the block currently being traced + if (current_block->direction_bits != last_direction_bits || current_block->active_extruder != last_extruder) { + last_direction_bits = current_block->direction_bits; + last_extruder = current_block->active_extruder; + set_directions(); + } -void quickStop(); + #if ENABLED(ADVANCE) + advance = current_block->initial_advance; + final_advance = current_block->final_advance; + // Do E steps + advance steps + e_steps[current_block->active_extruder] += ((advance >>8) - old_advance); + old_advance = advance >>8; + #endif + deceleration_time = 0; + // step_rate to timer interval + OCR1A_nominal = calc_timer(current_block->nominal_rate); + // make a note of the number of step loops required at nominal speed + step_loops_nominal = step_loops; + acc_step_rate = current_block->initial_rate; + acceleration_time = calc_timer(acc_step_rate); + OCR1A = acceleration_time; -#if HAS_DIGIPOTSS - void digitalPotWrite(int address, int value); -#endif -void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2); -void microstep_mode(uint8_t driver, uint8_t stepping); -void digipot_init(); -void digipot_current(uint8_t driver, int current); -void microstep_init(); -void microstep_readings(); + // SERIAL_ECHO_START; + // SERIAL_ECHOPGM("advance :"); + // SERIAL_ECHO(current_block->advance/256.0); + // SERIAL_ECHOPGM("advance rate :"); + // SERIAL_ECHO(current_block->advance_rate/256.0); + // SERIAL_ECHOPGM("initial advance :"); + // SERIAL_ECHO(current_block->initial_advance/256.0); + // SERIAL_ECHOPGM("final advance :"); + // SERIAL_ECHOLN(current_block->final_advance/256.0); + } -#if ENABLED(Z_DUAL_ENDSTOPS) - void In_Homing_Process(bool state); - void Lock_z_motor(bool state); - void Lock_z2_motor(bool state); -#endif + private: + void microstep_mode(uint8_t driver, uint8_t stepping); + void digipot_init(); + void microstep_init(); -#if ENABLED(BABYSTEPPING) - void babystep(const uint8_t axis, const bool direction); // perform a short step with a single stepper motor, outside of any convention -#endif +}; -#endif +#endif // STEPPER_H \ No newline at end of file diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 5713cb6937..de61e63304 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -604,7 +604,7 @@ float get_pid_output(int e) { #if ENABLED(PID_ADD_EXTRUSION_RATE) cTerm[e] = 0; if (e == active_extruder) { - long e_position = st_get_position(E_AXIS); + long e_position = stepper.position(E_AXIS); if (e_position > last_position[e]) { lpq[lpq_ptr++] = e_position - last_position[e]; last_position[e] = e_position; diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 97a07f5232..33ede883a0 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -476,7 +476,7 @@ inline void line_to_current(AxisEnum axis) { static void lcd_sdcard_resume() { card.startFileprint(); } static void lcd_sdcard_stop() { - quickStop(); + stepper.quick_stop(); card.sdprinting = false; card.closefile(); autotempShutdown(); @@ -911,7 +911,7 @@ void lcd_cooldown() { current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; line_to_current(Z_AXIS); #endif - st_synchronize(); + stepper.synchronize(); } static void _lcd_level_goto_next_point(); @@ -964,7 +964,7 @@ void lcd_cooldown() { #endif ; line_to_current(Z_AXIS); - st_synchronize(); + stepper.synchronize(); mbl.active = true; enqueue_and_echo_commands_P(PSTR("G28")); From 5076d123447108bda1782e2cee59ae679197e03c Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 27 Apr 2016 14:46:24 -0700 Subject: [PATCH 178/383] Localize M119 in Endstops class --- Marlin/Marlin_main.cpp | 36 +----------------------------------- Marlin/endstops.cpp | 36 ++++++++++++++++++++++++++++++++++++ Marlin/endstops.h | 5 +++++ 3 files changed, 42 insertions(+), 35 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 7cc7c028c8..ce85e5091b 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -4969,41 +4969,7 @@ inline void gcode_M117() { /** * M119: Output endstop states to serial output */ -inline void gcode_M119() { - SERIAL_PROTOCOLLN(MSG_M119_REPORT); - #if HAS_X_MIN - SERIAL_PROTOCOLPGM(MSG_X_MIN); - SERIAL_PROTOCOLLN(((READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_X_MAX - SERIAL_PROTOCOLPGM(MSG_X_MAX); - SERIAL_PROTOCOLLN(((READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Y_MIN - SERIAL_PROTOCOLPGM(MSG_Y_MIN); - SERIAL_PROTOCOLLN(((READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Y_MAX - SERIAL_PROTOCOLPGM(MSG_Y_MAX); - SERIAL_PROTOCOLLN(((READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Z_MIN - SERIAL_PROTOCOLPGM(MSG_Z_MIN); - SERIAL_PROTOCOLLN(((READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Z_MAX - SERIAL_PROTOCOLPGM(MSG_Z_MAX); - SERIAL_PROTOCOLLN(((READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Z2_MAX - SERIAL_PROTOCOLPGM(MSG_Z2_MAX); - SERIAL_PROTOCOLLN(((READ(Z2_MAX_PIN)^Z2_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif - #if HAS_Z_PROBE - SERIAL_PROTOCOLPGM(MSG_Z_PROBE); - SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); - #endif -} +inline void gcode_M119() { endstops.M119(); } /** * M120: Enable endstops and set non-homing endstop state to "enabled" diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index e3d5f4b827..f87b4c9b6a 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -157,6 +157,42 @@ void Endstops::report_state() { } } // Endstops::report_state +void Endstops::M119() { + SERIAL_PROTOCOLLN(MSG_M119_REPORT); + #if HAS_X_MIN + SERIAL_PROTOCOLPGM(MSG_X_MIN); + SERIAL_PROTOCOLLN(((READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_X_MAX + SERIAL_PROTOCOLPGM(MSG_X_MAX); + SERIAL_PROTOCOLLN(((READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Y_MIN + SERIAL_PROTOCOLPGM(MSG_Y_MIN); + SERIAL_PROTOCOLLN(((READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Y_MAX + SERIAL_PROTOCOLPGM(MSG_Y_MAX); + SERIAL_PROTOCOLLN(((READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Z_MIN + SERIAL_PROTOCOLPGM(MSG_Z_MIN); + SERIAL_PROTOCOLLN(((READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Z_MAX + SERIAL_PROTOCOLPGM(MSG_Z_MAX); + SERIAL_PROTOCOLLN(((READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Z2_MAX + SERIAL_PROTOCOLPGM(MSG_Z2_MAX); + SERIAL_PROTOCOLLN(((READ(Z2_MAX_PIN)^Z2_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif + #if HAS_Z_PROBE + SERIAL_PROTOCOLPGM(MSG_Z_PROBE); + SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); + #endif +} // Endstops::M119 + // Check endstops - Called from ISR! void Endstops::update() { diff --git a/Marlin/endstops.h b/Marlin/endstops.h index 4cf6f5b088..c7e9c0a386 100644 --- a/Marlin/endstops.h +++ b/Marlin/endstops.h @@ -70,6 +70,11 @@ class Endstops { */ void report_state(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered + /** + * Report endstop positions in response to M119 + */ + void M119(); + // Enable / disable endstop checking globally FORCE_INLINE void enable_globally(bool onoff=true) { enabled_globally = enabled = onoff; } From 96f51f400f1ef444baf9e31b8788d64d6cdaad71 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 27 Apr 2016 18:06:32 -0700 Subject: [PATCH 179/383] Planner singleton class --- Marlin/Marlin.h | 6 + Marlin/Marlin_main.cpp | 192 +++++++++--------- Marlin/configuration_store.cpp | 146 +++++++------- Marlin/planner.cpp | 350 ++++++++++++++------------------- Marlin/planner.h | 320 +++++++++++++++++++++--------- Marlin/stepper.cpp | 12 +- Marlin/stepper.h | 2 +- Marlin/temperature.cpp | 2 +- Marlin/temperature.h | 10 +- Marlin/ultralcd.cpp | 68 +++---- 10 files changed, 598 insertions(+), 510 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 1db06e9bc2..f6f488df84 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -283,6 +283,12 @@ extern float sw_endstop_max[3]; // axis[n].sw_endstop_max extern bool axis_known_position[3]; // axis[n].is_known extern bool axis_homed[3]; // axis[n].is_homed +// GCode support for external objects +extern bool code_seen(char); +extern float code_value(); +extern long code_value_long(); +extern int16_t code_value_short(); + #if ENABLED(DELTA) #ifndef DELTA_RADIUS_TRIM_TOWER_1 #define DELTA_RADIUS_TRIM_TOWER_1 0.0 diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index ce85e5091b..0f5fa9c42d 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -149,7 +149,7 @@ * M84 - Disable steppers until next move, * or use S to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout. * M85 - Set inactivity shutdown timer with parameter S. To disable set zero (default) - * M92 - Set axis_steps_per_unit - same syntax as G92 + * M92 - Set planner.axis_steps_per_unit - same syntax as G92 * M104 - Set extruder target temp * M105 - Read current temp * M106 - Fan on @@ -540,7 +540,7 @@ static void report_current_position(); if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position_delta", current_position); #endif calculate_delta(current_position); - plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); + planner.set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]); } #endif @@ -817,7 +817,6 @@ void setup() { lcd_init(); tp_init(); // Initialize temperature loop - plan_init(); // Initialize planner; #if ENABLED(DELTA) || ENABLED(SCARA) // Vital to init kinematic equivalent for X0 Y0 Z0 @@ -1405,17 +1404,17 @@ inline void set_homing_bump_feedrate(AxisEnum axis) { // (or from wherever it has been told it is located). // inline void line_to_current_position() { - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate / 60, active_extruder); } inline void line_to_z(float zPosition) { - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate / 60, active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate / 60, active_extruder); } // // line_to_destination // Move the planner, not necessarily synced with current_position // inline void line_to_destination(float mm_m) { - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder); + planner.buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder); } inline void line_to_destination() { line_to_destination(feedrate); @@ -1430,9 +1429,9 @@ inline void sync_plan_position() { #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("sync_plan_position", current_position); #endif - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + planner.set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); } -inline void sync_plan_position_e() { plan_set_e_position(current_position[E_AXIS]); } +inline void sync_plan_position_e() { planner.set_e_position(current_position[E_AXIS]); } inline void set_current_to_destination() { memcpy(current_position, destination, sizeof(current_position)); } inline void set_destination_to_current() { memcpy(destination, current_position, sizeof(destination)); } @@ -1459,7 +1458,7 @@ static void setup_for_endstop_move() { #endif refresh_cmd_timeout(); calculate_delta(destination); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], (feedrate / 60) * (feedrate_multiplier / 100.0), active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], (feedrate / 60) * (feedrate_multiplier / 100.0), active_extruder); set_current_to_destination(); } #endif @@ -1470,21 +1469,21 @@ static void setup_for_endstop_move() { static void set_bed_level_equation_lsq(double* plane_equation_coefficients) { - //plan_bed_level_matrix.debug("bed level before"); + //planner.bed_level_matrix.debug("bed level before"); #if ENABLED(DEBUG_LEVELING_FEATURE) - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); if (DEBUGGING(LEVELING)) { - vector_3 uncorrected_position = plan_get_position(); + vector_3 uncorrected_position = planner.adjusted_position(); DEBUG_POS(">>> set_bed_level_equation_lsq", uncorrected_position); DEBUG_POS(">>> set_bed_level_equation_lsq", current_position); } #endif vector_3 planeNormal = vector_3(-plane_equation_coefficients[0], -plane_equation_coefficients[1], 1); - plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); + planner.bed_level_matrix = matrix_3x3::create_look_at(planeNormal); - vector_3 corrected_position = plan_get_position(); + vector_3 corrected_position = planner.adjusted_position(); current_position[X_AXIS] = corrected_position.x; current_position[Y_AXIS] = corrected_position.y; current_position[Z_AXIS] = corrected_position.z; @@ -1502,7 +1501,7 @@ static void setup_for_endstop_move() { static void set_bed_level_equation_3pts(float z_at_pt_1, float z_at_pt_2, float z_at_pt_3) { - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); vector_3 pt1 = vector_3(ABL_PROBE_PT_1_X, ABL_PROBE_PT_1_Y, z_at_pt_1); vector_3 pt2 = vector_3(ABL_PROBE_PT_2_X, ABL_PROBE_PT_2_Y, z_at_pt_2); @@ -1515,9 +1514,9 @@ static void setup_for_endstop_move() { planeNormal.z = -planeNormal.z; } - plan_bed_level_matrix = matrix_3x3::create_look_at(planeNormal); + planner.bed_level_matrix = matrix_3x3::create_look_at(planeNormal); - vector_3 corrected_position = plan_get_position(); + vector_3 corrected_position = planner.adjusted_position(); #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -1568,7 +1567,7 @@ static void setup_for_endstop_move() { * is not where we said to go. */ long stop_steps = stepper.position(Z_AXIS); - float mm = start_z - float(start_steps - stop_steps) / axis_steps_per_unit[Z_AXIS]; + float mm = start_z - float(start_steps - stop_steps) / planner.axis_steps_per_unit[Z_AXIS]; current_position[Z_AXIS] = mm; #if ENABLED(DEBUG_LEVELING_FEATURE) @@ -1579,7 +1578,7 @@ static void setup_for_endstop_move() { #else // !DELTA - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); feedrate = homing_feedrate[Z_AXIS]; // Move down until the Z probe (or endstop?) is triggered @@ -1589,7 +1588,7 @@ static void setup_for_endstop_move() { // Tell the planner where we ended up - Get this from the stepper handler zPosition = stepper.get_axis_position_mm(Z_AXIS); - plan_set_position( + planner.set_position( current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS] ); @@ -2552,7 +2551,7 @@ inline void gcode_G28() { // For auto bed leveling, clear the level matrix #if ENABLED(AUTO_BED_LEVELING_FEATURE) - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); #if ENABLED(DELTA) reset_bed_level(); #endif @@ -2630,7 +2629,7 @@ inline void gcode_G28() { // Raise Z before homing any other axes and z is not already high enough (never lower z) if (current_position[Z_AXIS] <= MIN_Z_HEIGHT_FOR_HOMING) { destination[Z_AXIS] = MIN_Z_HEIGHT_FOR_HOMING; - feedrate = max_feedrate[Z_AXIS] * 60; // feedrate (mm/m) = max_feedrate (mm/s) + feedrate = planner.max_feedrate[Z_AXIS] * 60; // feedrate (mm/m) = max_feedrate (mm/s) #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { SERIAL_ECHOPAIR("Raise Z (before homing) to ", (MIN_Z_HEIGHT_FOR_HOMING)); @@ -3201,22 +3200,22 @@ inline void gcode_G28() { #if ENABLED(DEBUG_LEVELING_FEATURE) && DISABLED(DELTA) if (DEBUGGING(LEVELING)) { - vector_3 corrected_position = plan_get_position(); + vector_3 corrected_position = planner.adjusted_position(); DEBUG_POS("BEFORE matrix.set_to_identity", corrected_position); DEBUG_POS("BEFORE matrix.set_to_identity", current_position); } #endif // make sure the bed_level_rotation_matrix is identity or the planner will get it wrong - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); #if ENABLED(DELTA) reset_bed_level(); #else //!DELTA - //vector_3 corrected_position = plan_get_position(); + //vector_3 corrected_position = planner.adjusted_position(); //corrected_position.debug("position before G29"); - vector_3 uncorrected_position = plan_get_position(); + vector_3 uncorrected_position = planner.adjusted_position(); //uncorrected_position.debug("position during G29"); current_position[X_AXIS] = uncorrected_position.x; current_position[Y_AXIS] = uncorrected_position.y; @@ -3415,7 +3414,7 @@ inline void gcode_G28() { y_tmp = eqnAMatrix[ind + 1 * abl2], z_tmp = 0; - apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); + apply_rotation_xyz(planner.bed_level_matrix, x_tmp, y_tmp, z_tmp); NOMORE(min_diff, eqnBVector[ind] - z_tmp); @@ -3438,7 +3437,7 @@ inline void gcode_G28() { y_tmp = eqnAMatrix[ind + 1 * abl2], z_tmp = 0; - apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); + apply_rotation_xyz(planner.bed_level_matrix, x_tmp, y_tmp, z_tmp); float diff = eqnBVector[ind] - z_tmp - min_diff; if (diff >= 0.0) @@ -3497,7 +3496,7 @@ inline void gcode_G28() { #endif #else // !DELTA if (verbose_level > 0) - plan_bed_level_matrix.debug(" \n\nBed Level Correction Matrix:"); + planner.bed_level_matrix.debug(" \n\nBed Level Correction Matrix:"); if (!dryrun) { /** @@ -3508,7 +3507,7 @@ inline void gcode_G28() { float x_tmp = current_position[X_AXIS] + X_PROBE_OFFSET_FROM_EXTRUDER, y_tmp = current_position[Y_AXIS] + Y_PROBE_OFFSET_FROM_EXTRUDER, z_tmp = current_position[Z_AXIS], - real_z = stepper.get_axis_position_mm(Z_AXIS); //get the real Z (since plan_get_position is now correcting the plane) + real_z = stepper.get_axis_position_mm(Z_AXIS); //get the real Z (since planner.adjusted_position is now correcting the plane) #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { @@ -3520,13 +3519,13 @@ inline void gcode_G28() { #endif // Apply the correction sending the Z probe offset - apply_rotation_xyz(plan_bed_level_matrix, x_tmp, y_tmp, z_tmp); + apply_rotation_xyz(planner.bed_level_matrix, x_tmp, y_tmp, z_tmp); /* * Get the current Z position and send it to the planner. * * >> (z_tmp - real_z) : The rotated current Z minus the uncorrected Z - * (most recent plan_set_position/sync_plan_position) + * (most recent planner.set_position/sync_plan_position) * * >> zprobe_zoffset : Z distance from nozzle to Z probe * (set by default, M851, EEPROM, or Menu) @@ -4065,7 +4064,7 @@ inline void gcode_M42() { reset_bed_level(); #else // we don't do bed level correction in M48 because we want the raw data when we probe - plan_bed_level_matrix.set_to_identity(); + planner.bed_level_matrix.set_to_identity(); #endif if (Z_start_location < Z_RAISE_BEFORE_PROBING * 2.0) @@ -4454,10 +4453,7 @@ inline void gcode_M109() { } #if ENABLED(AUTOTEMP) - autotemp_enabled = code_seen('F'); - if (autotemp_enabled) autotemp_factor = code_value(); - if (code_seen('S')) autotemp_min = code_value(); - if (code_seen('B')) autotemp_max = code_value(); + planner.autotemp_M109(); #endif #if TEMP_RESIDENCY_TIME > 0 @@ -4897,15 +4893,15 @@ inline void gcode_M92() { if (i == E_AXIS) { float value = code_value(); if (value < 20.0) { - float factor = axis_steps_per_unit[i] / value; // increase e constants if M92 E14 is given for netfab. - max_e_jerk *= factor; - max_feedrate[i] *= factor; - axis_steps_per_sqr_second[i] *= factor; + float factor = planner.axis_steps_per_unit[i] / value; // increase e constants if M92 E14 is given for netfab. + planner.max_e_jerk *= factor; + planner.max_feedrate[i] *= factor; + planner.axis_steps_per_sqr_second[i] *= factor; } - axis_steps_per_unit[i] = value; + planner.axis_steps_per_unit[i] = value; } else { - axis_steps_per_unit[i] = code_value(); + planner.axis_steps_per_unit[i] = code_value(); } } } @@ -4940,9 +4936,9 @@ static void report_current_position() { SERIAL_EOL; SERIAL_PROTOCOLPGM("SCARA step Cal - Theta:"); - SERIAL_PROTOCOL(delta[X_AXIS] / 90 * axis_steps_per_unit[X_AXIS]); + SERIAL_PROTOCOL(delta[X_AXIS] / 90 * planner.axis_steps_per_unit[X_AXIS]); SERIAL_PROTOCOLPGM(" Psi+Theta:"); - SERIAL_PROTOCOL((delta[Y_AXIS] - delta[X_AXIS]) / 90 * axis_steps_per_unit[Y_AXIS]); + SERIAL_PROTOCOL((delta[Y_AXIS] - delta[X_AXIS]) / 90 * planner.axis_steps_per_unit[Y_AXIS]); SERIAL_EOL; SERIAL_EOL; #endif } @@ -5083,17 +5079,17 @@ inline void gcode_M200() { inline void gcode_M201() { for (int8_t i = 0; i < NUM_AXIS; i++) { if (code_seen(axis_codes[i])) { - max_acceleration_units_per_sq_second[i] = code_value(); + planner.max_acceleration_units_per_sq_second[i] = code_value(); } } // steps per sq second need to be updated to agree with the units per sq second (as they are what is used in the planner) - reset_acceleration_rates(); + planner.reset_acceleration_rates(); } #if 0 // Not used for Sprinter/grbl gen6 inline void gcode_M202() { for (int8_t i = 0; i < NUM_AXIS; i++) { - if (code_seen(axis_codes[i])) axis_travel_steps_per_sqr_second[i] = code_value() * axis_steps_per_unit[i]; + if (code_seen(axis_codes[i])) axis_travel_steps_per_sqr_second[i] = code_value() * planner.axis_steps_per_unit[i]; } } #endif @@ -5105,7 +5101,7 @@ inline void gcode_M201() { inline void gcode_M203() { for (int8_t i = 0; i < NUM_AXIS; i++) { if (code_seen(axis_codes[i])) { - max_feedrate[i] = code_value(); + planner.max_feedrate[i] = code_value(); } } } @@ -5121,23 +5117,23 @@ inline void gcode_M203() { */ inline void gcode_M204() { if (code_seen('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments. - travel_acceleration = acceleration = code_value(); - SERIAL_ECHOPAIR("Setting Print and Travel Acceleration: ", acceleration); + planner.travel_acceleration = planner.acceleration = code_value(); + SERIAL_ECHOPAIR("Setting Print and Travel Acceleration: ", planner.acceleration); SERIAL_EOL; } if (code_seen('P')) { - acceleration = code_value(); - SERIAL_ECHOPAIR("Setting Print Acceleration: ", acceleration); + planner.acceleration = code_value(); + SERIAL_ECHOPAIR("Setting Print Acceleration: ", planner.acceleration); SERIAL_EOL; } if (code_seen('R')) { - retract_acceleration = code_value(); - SERIAL_ECHOPAIR("Setting Retract Acceleration: ", retract_acceleration); + planner.retract_acceleration = code_value(); + SERIAL_ECHOPAIR("Setting Retract Acceleration: ", planner.retract_acceleration); SERIAL_EOL; } if (code_seen('T')) { - travel_acceleration = code_value(); - SERIAL_ECHOPAIR("Setting Travel Acceleration: ", travel_acceleration); + planner.travel_acceleration = code_value(); + SERIAL_ECHOPAIR("Setting Travel Acceleration: ", planner.travel_acceleration); SERIAL_EOL; } } @@ -5153,12 +5149,12 @@ inline void gcode_M204() { * E = Max E Jerk (mm/s/s) */ inline void gcode_M205() { - if (code_seen('S')) minimumfeedrate = code_value(); - if (code_seen('T')) mintravelfeedrate = code_value(); - if (code_seen('B')) minsegmenttime = code_value(); - if (code_seen('X')) max_xy_jerk = code_value(); - if (code_seen('Z')) max_z_jerk = code_value(); - if (code_seen('E')) max_e_jerk = code_value(); + if (code_seen('S')) planner.min_feedrate = code_value(); + if (code_seen('T')) planner.min_travel_feedrate = code_value(); + if (code_seen('B')) planner.min_segment_time = code_value(); + if (code_seen('X')) planner.max_xy_jerk = code_value(); + if (code_seen('Z')) planner.max_z_jerk = code_value(); + if (code_seen('E')) planner.max_e_jerk = code_value(); } /** @@ -6004,7 +6000,7 @@ inline void gcode_M503() { #if ENABLED(DELTA) #define RUNPLAN calculate_delta(destination); \ - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder); #else #define RUNPLAN line_to_destination(); #endif @@ -6097,8 +6093,8 @@ inline void gcode_M503() { #if ENABLED(DELTA) // Move XYZ to starting position, then E calculate_delta(lastpos); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], lastpos[E_AXIS], fr60, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], lastpos[E_AXIS], fr60, active_extruder); #else // Move XY to starting position, then Z, then E destination[X_AXIS] = lastpos[X_AXIS]; @@ -6292,7 +6288,7 @@ inline void gcode_T(uint8_t tmp_extruder) { #ifdef XY_TRAVEL_SPEED feedrate = XY_TRAVEL_SPEED; #else - feedrate = min(max_feedrate[X_AXIS], max_feedrate[Y_AXIS]); + feedrate = min(planner.max_feedrate[X_AXIS], planner.max_feedrate[Y_AXIS]); #endif } @@ -6304,12 +6300,12 @@ inline void gcode_T(uint8_t tmp_extruder) { if (dual_x_carriage_mode == DXC_AUTO_PARK_MODE && IsRunning() && (delayed_move_time || current_position[X_AXIS] != x_home_pos(active_extruder))) { // Park old head: 1) raise 2) move to park position 3) lower - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, - current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); - plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, - current_position[E_AXIS], max_feedrate[X_AXIS], active_extruder); - plan_buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS], - current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, + current_position[E_AXIS], planner.max_feedrate[Z_AXIS], active_extruder); + planner.buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS] + TOOLCHANGE_PARK_ZLIFT, + current_position[E_AXIS], planner.max_feedrate[X_AXIS], active_extruder); + planner.buffer_line(x_home_pos(active_extruder), current_position[Y_AXIS], current_position[Z_AXIS], + current_position[E_AXIS], planner.max_feedrate[Z_AXIS], active_extruder); stepper.synchronize(); } @@ -7186,9 +7182,9 @@ void clamp_to_software_endstops(float target[3]) { #if ENABLED(MESH_BED_LEVELING) // This function is used to split lines on mesh borders so each segment is only part of one mesh area -void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_rate, const uint8_t& extruder, uint8_t x_splits = 0xff, uint8_t y_splits = 0xff) { +void mesh_buffer_line(float x, float y, float z, const float e, float feed_rate, const uint8_t& extruder, uint8_t x_splits = 0xff, uint8_t y_splits = 0xff) { if (!mbl.active) { - plan_buffer_line(x, y, z, e, feed_rate, extruder); + planner.buffer_line(x, y, z, e, feed_rate, extruder); set_current_to_destination(); return; } @@ -7202,7 +7198,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ iy = min(iy, MESH_NUM_Y_POINTS - 2); if (pix == ix && piy == iy) { // Start and end on same mesh square - plan_buffer_line(x, y, z, e, feed_rate, extruder); + planner.buffer_line(x, y, z, e, feed_rate, extruder); set_current_to_destination(); return; } @@ -7241,7 +7237,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ } else { // Already split on a border - plan_buffer_line(x, y, z, e, feed_rate, extruder); + planner.buffer_line(x, y, z, e, feed_rate, extruder); set_current_to_destination(); return; } @@ -7250,12 +7246,12 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ destination[Y_AXIS] = ny; destination[Z_AXIS] = nz; destination[E_AXIS] = ne; - mesh_plan_buffer_line(nx, ny, nz, ne, feed_rate, extruder, x_splits, y_splits); + mesh_buffer_line(nx, ny, nz, ne, feed_rate, extruder, x_splits, y_splits); destination[X_AXIS] = x; destination[Y_AXIS] = y; destination[Z_AXIS] = z; destination[E_AXIS] = e; - mesh_plan_buffer_line(x, y, z, e, feed_rate, extruder, x_splits, y_splits); + mesh_buffer_line(x, y, z, e, feed_rate, extruder, x_splits, y_splits); } #endif // MESH_BED_LEVELING @@ -7314,7 +7310,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ //DEBUG_POS("prepare_move_delta", target); //DEBUG_POS("prepare_move_delta", delta); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feedrate / 60 * feedrate_multiplier / 100.0, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feedrate / 60 * feedrate_multiplier / 100.0, active_extruder); } return true; } @@ -7331,9 +7327,9 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ if (active_extruder_parked) { if (dual_x_carriage_mode == DXC_DUPLICATION_MODE && active_extruder == 0) { // move duplicate extruder into correct duplication position. - plan_set_position(inactive_extruder_x_pos, current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); - plan_buffer_line(current_position[X_AXIS] + duplicate_extruder_x_offset, - current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], max_feedrate[X_AXIS], 1); + planner.set_position(inactive_extruder_x_pos, current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + planner.buffer_line(current_position[X_AXIS] + duplicate_extruder_x_offset, + current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], planner.max_feedrate[X_AXIS], 1); sync_plan_position(); stepper.synchronize(); extruder_duplication_enabled = true; @@ -7353,9 +7349,9 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ } delayed_move_time = 0; // unpark extruder: 1) raise, 2) move into starting XY position, 3) lower - plan_buffer_line(raised_parked_position[X_AXIS], raised_parked_position[Y_AXIS], raised_parked_position[Z_AXIS], current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], raised_parked_position[Z_AXIS], current_position[E_AXIS], min(max_feedrate[X_AXIS], max_feedrate[Y_AXIS]), active_extruder); - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], max_feedrate[Z_AXIS], active_extruder); + planner.buffer_line(raised_parked_position[X_AXIS], raised_parked_position[Y_AXIS], raised_parked_position[Z_AXIS], current_position[E_AXIS], planner.max_feedrate[Z_AXIS], active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], raised_parked_position[Z_AXIS], current_position[E_AXIS], min(planner.max_feedrate[X_AXIS], planner.max_feedrate[Y_AXIS]), active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], planner.max_feedrate[Z_AXIS], active_extruder); active_extruder_parked = false; } } @@ -7373,7 +7369,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ } else { #if ENABLED(MESH_BED_LEVELING) - mesh_plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], (feedrate / 60) * (feedrate_multiplier / 100.0), active_extruder); + mesh_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], (feedrate / 60) * (feedrate_multiplier / 100.0), active_extruder); return false; #else line_to_destination(feedrate * feedrate_multiplier / 100.0); @@ -7387,7 +7383,7 @@ void mesh_plan_buffer_line(float x, float y, float z, const float e, float feed_ /** * Prepare a single move and get ready for the next one * - * (This may call plan_buffer_line several times to put + * (This may call planner.buffer_line several times to put * smaller moves into the planner for DELTA or SCARA.) */ void prepare_move() { @@ -7531,9 +7527,9 @@ void plan_arc( #if ENABLED(AUTO_BED_LEVELING_FEATURE) adjust_delta(arc_target); #endif - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], arc_target[E_AXIS], feed_rate, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], arc_target[E_AXIS], feed_rate, active_extruder); #else - plan_buffer_line(arc_target[X_AXIS], arc_target[Y_AXIS], arc_target[Z_AXIS], arc_target[E_AXIS], feed_rate, active_extruder); + planner.buffer_line(arc_target[X_AXIS], arc_target[Y_AXIS], arc_target[Z_AXIS], arc_target[E_AXIS], feed_rate, active_extruder); #endif } @@ -7543,9 +7539,9 @@ void plan_arc( #if ENABLED(AUTO_BED_LEVELING_FEATURE) adjust_delta(target); #endif - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feed_rate, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], target[E_AXIS], feed_rate, active_extruder); #else - plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feed_rate, active_extruder); + planner.buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], feed_rate, active_extruder); #endif // As far as the parser is concerned, the position is now == target. In reality the @@ -7762,7 +7758,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { if (max_inactive_time && ELAPSED(ms, previous_cmd_ms + max_inactive_time)) kill(PSTR(MSG_KILLED)); if (stepper_inactive_time && ELAPSED(ms, previous_cmd_ms + stepper_inactive_time) - && !ignore_stepper_queue && !blocks_queued()) { + && !ignore_stepper_queue && !planner.blocks_queued()) { #if ENABLED(DISABLE_INACTIVE_X) disable_x(); #endif @@ -7855,12 +7851,12 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { #endif } float oldepos = current_position[E_AXIS], oldedes = destination[E_AXIS]; - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], - destination[E_AXIS] + (EXTRUDER_RUNOUT_EXTRUDE) * (EXTRUDER_RUNOUT_ESTEPS) / axis_steps_per_unit[E_AXIS], - (EXTRUDER_RUNOUT_SPEED) / 60. * (EXTRUDER_RUNOUT_ESTEPS) / axis_steps_per_unit[E_AXIS], active_extruder); + planner.buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], + destination[E_AXIS] + (EXTRUDER_RUNOUT_EXTRUDE) * (EXTRUDER_RUNOUT_ESTEPS) / planner.axis_steps_per_unit[E_AXIS], + (EXTRUDER_RUNOUT_SPEED) / 60. * (EXTRUDER_RUNOUT_ESTEPS) / planner.axis_steps_per_unit[E_AXIS], active_extruder); current_position[E_AXIS] = oldepos; destination[E_AXIS] = oldedes; - plan_set_e_position(oldepos); + planner.set_e_position(oldepos); previous_cmd_ms = ms; // refresh_cmd_timeout() stepper.synchronize(); switch (active_extruder) { @@ -7900,7 +7896,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { handle_status_leds(); #endif - check_axes_activity(); + planner.check_axes_activity(); } void kill(const char* lcd_msg) { diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 057f95b1c5..8946156b11 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -43,18 +43,18 @@ * * 100 Version (char x4) * - * 104 M92 XYZE axis_steps_per_unit (float x4) - * 120 M203 XYZE max_feedrate (float x4) - * 136 M201 XYZE max_acceleration_units_per_sq_second (uint32_t x4) - * 152 M204 P acceleration (float) - * 156 M204 R retract_acceleration (float) - * 160 M204 T travel_acceleration (float) - * 164 M205 S minimumfeedrate (float) - * 168 M205 T mintravelfeedrate (float) - * 172 M205 B minsegmenttime (ulong) - * 176 M205 X max_xy_jerk (float) - * 180 M205 Z max_z_jerk (float) - * 184 M205 E max_e_jerk (float) + * 104 M92 XYZE planner.axis_steps_per_unit (float x4) + * 120 M203 XYZE planner.max_feedrate (float x4) + * 136 M201 XYZE planner.max_acceleration_units_per_sq_second (uint32_t x4) + * 152 M204 P planner.acceleration (float) + * 156 M204 R planner.retract_acceleration (float) + * 160 M204 T planner.travel_acceleration (float) + * 164 M205 S planner.min_feedrate (float) + * 168 M205 T planner.min_travel_feedrate (float) + * 172 M205 B planner.min_segment_time (ulong) + * 176 M205 X planner.max_xy_jerk (float) + * 180 M205 Z planner.max_z_jerk (float) + * 184 M205 E planner.max_e_jerk (float) * 188 M206 XYZ home_offset (float x3) * * Mesh bed leveling: @@ -173,18 +173,18 @@ void Config_StoreSettings() { char ver[4] = "000"; int i = EEPROM_OFFSET; EEPROM_WRITE_VAR(i, ver); // invalidate data first - EEPROM_WRITE_VAR(i, axis_steps_per_unit); - EEPROM_WRITE_VAR(i, max_feedrate); - EEPROM_WRITE_VAR(i, max_acceleration_units_per_sq_second); - EEPROM_WRITE_VAR(i, acceleration); - EEPROM_WRITE_VAR(i, retract_acceleration); - EEPROM_WRITE_VAR(i, travel_acceleration); - EEPROM_WRITE_VAR(i, minimumfeedrate); - EEPROM_WRITE_VAR(i, mintravelfeedrate); - EEPROM_WRITE_VAR(i, minsegmenttime); - EEPROM_WRITE_VAR(i, max_xy_jerk); - EEPROM_WRITE_VAR(i, max_z_jerk); - EEPROM_WRITE_VAR(i, max_e_jerk); + EEPROM_WRITE_VAR(i, planner.axis_steps_per_unit); + EEPROM_WRITE_VAR(i, planner.max_feedrate); + EEPROM_WRITE_VAR(i, planner.max_acceleration_units_per_sq_second); + EEPROM_WRITE_VAR(i, planner.acceleration); + EEPROM_WRITE_VAR(i, planner.retract_acceleration); + EEPROM_WRITE_VAR(i, planner.travel_acceleration); + EEPROM_WRITE_VAR(i, planner.min_feedrate); + EEPROM_WRITE_VAR(i, planner.min_travel_feedrate); + EEPROM_WRITE_VAR(i, planner.min_segment_time); + EEPROM_WRITE_VAR(i, planner.max_xy_jerk); + EEPROM_WRITE_VAR(i, planner.max_z_jerk); + EEPROM_WRITE_VAR(i, planner.max_e_jerk); EEPROM_WRITE_VAR(i, home_offset); uint8_t mesh_num_x = 3; @@ -351,22 +351,22 @@ void Config_RetrieveSettings() { float dummy = 0; // version number match - EEPROM_READ_VAR(i, axis_steps_per_unit); - EEPROM_READ_VAR(i, max_feedrate); - EEPROM_READ_VAR(i, max_acceleration_units_per_sq_second); + EEPROM_READ_VAR(i, planner.axis_steps_per_unit); + EEPROM_READ_VAR(i, planner.max_feedrate); + EEPROM_READ_VAR(i, planner.max_acceleration_units_per_sq_second); // steps per sq second need to be updated to agree with the units per sq second (as they are what is used in the planner) - reset_acceleration_rates(); - - EEPROM_READ_VAR(i, acceleration); - EEPROM_READ_VAR(i, retract_acceleration); - EEPROM_READ_VAR(i, travel_acceleration); - EEPROM_READ_VAR(i, minimumfeedrate); - EEPROM_READ_VAR(i, mintravelfeedrate); - EEPROM_READ_VAR(i, minsegmenttime); - EEPROM_READ_VAR(i, max_xy_jerk); - EEPROM_READ_VAR(i, max_z_jerk); - EEPROM_READ_VAR(i, max_e_jerk); + planner.reset_acceleration_rates(); + + EEPROM_READ_VAR(i, planner.acceleration); + EEPROM_READ_VAR(i, planner.retract_acceleration); + EEPROM_READ_VAR(i, planner.travel_acceleration); + EEPROM_READ_VAR(i, planner.min_feedrate); + EEPROM_READ_VAR(i, planner.min_travel_feedrate); + EEPROM_READ_VAR(i, planner.min_segment_time); + EEPROM_READ_VAR(i, planner.max_xy_jerk); + EEPROM_READ_VAR(i, planner.max_z_jerk); + EEPROM_READ_VAR(i, planner.max_e_jerk); EEPROM_READ_VAR(i, home_offset); uint8_t dummy_uint8 = 0, mesh_num_x = 0, mesh_num_y = 0; @@ -528,9 +528,9 @@ void Config_ResetDefault() { float tmp2[] = DEFAULT_MAX_FEEDRATE; long tmp3[] = DEFAULT_MAX_ACCELERATION; for (uint8_t i = 0; i < NUM_AXIS; i++) { - axis_steps_per_unit[i] = tmp1[i]; - max_feedrate[i] = tmp2[i]; - max_acceleration_units_per_sq_second[i] = tmp3[i]; + planner.axis_steps_per_unit[i] = tmp1[i]; + planner.max_feedrate[i] = tmp2[i]; + planner.max_acceleration_units_per_sq_second[i] = tmp3[i]; #if ENABLED(SCARA) if (i < COUNT(axis_scaling)) axis_scaling[i] = 1; @@ -538,17 +538,17 @@ void Config_ResetDefault() { } // steps per sq second need to be updated to agree with the units per sq second - reset_acceleration_rates(); - - acceleration = DEFAULT_ACCELERATION; - retract_acceleration = DEFAULT_RETRACT_ACCELERATION; - travel_acceleration = DEFAULT_TRAVEL_ACCELERATION; - minimumfeedrate = DEFAULT_MINIMUMFEEDRATE; - minsegmenttime = DEFAULT_MINSEGMENTTIME; - mintravelfeedrate = DEFAULT_MINTRAVELFEEDRATE; - max_xy_jerk = DEFAULT_XYJERK; - max_z_jerk = DEFAULT_ZJERK; - max_e_jerk = DEFAULT_EJERK; + planner.reset_acceleration_rates(); + + planner.acceleration = DEFAULT_ACCELERATION; + planner.retract_acceleration = DEFAULT_RETRACT_ACCELERATION; + planner.travel_acceleration = DEFAULT_TRAVEL_ACCELERATION; + planner.min_feedrate = DEFAULT_MINIMUMFEEDRATE; + planner.min_segment_time = DEFAULT_MINSEGMENTTIME; + planner.min_travel_feedrate = DEFAULT_MINTRAVELFEEDRATE; + planner.max_xy_jerk = DEFAULT_XYJERK; + planner.max_z_jerk = DEFAULT_ZJERK; + planner.max_e_jerk = DEFAULT_EJERK; home_offset[X_AXIS] = home_offset[Y_AXIS] = home_offset[Z_AXIS] = 0; #if ENABLED(MESH_BED_LEVELING) @@ -653,10 +653,10 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Steps per unit:"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M92 X", axis_steps_per_unit[X_AXIS]); - SERIAL_ECHOPAIR(" Y", axis_steps_per_unit[Y_AXIS]); - SERIAL_ECHOPAIR(" Z", axis_steps_per_unit[Z_AXIS]); - SERIAL_ECHOPAIR(" E", axis_steps_per_unit[E_AXIS]); + SERIAL_ECHOPAIR(" M92 X", planner.axis_steps_per_unit[X_AXIS]); + SERIAL_ECHOPAIR(" Y", planner.axis_steps_per_unit[Y_AXIS]); + SERIAL_ECHOPAIR(" Z", planner.axis_steps_per_unit[Z_AXIS]); + SERIAL_ECHOPAIR(" E", planner.axis_steps_per_unit[E_AXIS]); SERIAL_EOL; CONFIG_ECHO_START; @@ -677,10 +677,10 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Maximum feedrates (mm/s):"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M203 X", max_feedrate[X_AXIS]); - SERIAL_ECHOPAIR(" Y", max_feedrate[Y_AXIS]); - SERIAL_ECHOPAIR(" Z", max_feedrate[Z_AXIS]); - SERIAL_ECHOPAIR(" E", max_feedrate[E_AXIS]); + SERIAL_ECHOPAIR(" M203 X", planner.max_feedrate[X_AXIS]); + SERIAL_ECHOPAIR(" Y", planner.max_feedrate[Y_AXIS]); + SERIAL_ECHOPAIR(" Z", planner.max_feedrate[Z_AXIS]); + SERIAL_ECHOPAIR(" E", planner.max_feedrate[E_AXIS]); SERIAL_EOL; CONFIG_ECHO_START; @@ -688,19 +688,19 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Maximum Acceleration (mm/s2):"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M201 X", max_acceleration_units_per_sq_second[X_AXIS]); - SERIAL_ECHOPAIR(" Y", max_acceleration_units_per_sq_second[Y_AXIS]); - SERIAL_ECHOPAIR(" Z", max_acceleration_units_per_sq_second[Z_AXIS]); - SERIAL_ECHOPAIR(" E", max_acceleration_units_per_sq_second[E_AXIS]); + SERIAL_ECHOPAIR(" M201 X", planner.max_acceleration_units_per_sq_second[X_AXIS]); + SERIAL_ECHOPAIR(" Y", planner.max_acceleration_units_per_sq_second[Y_AXIS]); + SERIAL_ECHOPAIR(" Z", planner.max_acceleration_units_per_sq_second[Z_AXIS]); + SERIAL_ECHOPAIR(" E", planner.max_acceleration_units_per_sq_second[E_AXIS]); SERIAL_EOL; CONFIG_ECHO_START; if (!forReplay) { SERIAL_ECHOLNPGM("Accelerations: P=printing, R=retract and T=travel"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M204 P", acceleration); - SERIAL_ECHOPAIR(" R", retract_acceleration); - SERIAL_ECHOPAIR(" T", travel_acceleration); + SERIAL_ECHOPAIR(" M204 P", planner.acceleration); + SERIAL_ECHOPAIR(" R", planner.retract_acceleration); + SERIAL_ECHOPAIR(" T", planner.travel_acceleration); SERIAL_EOL; CONFIG_ECHO_START; @@ -708,12 +708,12 @@ void Config_PrintSettings(bool forReplay) { SERIAL_ECHOLNPGM("Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s), Z=maximum Z jerk (mm/s), E=maximum E jerk (mm/s)"); CONFIG_ECHO_START; } - SERIAL_ECHOPAIR(" M205 S", minimumfeedrate); - SERIAL_ECHOPAIR(" T", mintravelfeedrate); - SERIAL_ECHOPAIR(" B", minsegmenttime); - SERIAL_ECHOPAIR(" X", max_xy_jerk); - SERIAL_ECHOPAIR(" Z", max_z_jerk); - SERIAL_ECHOPAIR(" E", max_e_jerk); + SERIAL_ECHOPAIR(" M205 S", planner.min_feedrate); + SERIAL_ECHOPAIR(" T", planner.min_travel_feedrate); + SERIAL_ECHOPAIR(" B", planner.min_segment_time); + SERIAL_ECHOPAIR(" X", planner.max_xy_jerk); + SERIAL_ECHOPAIR(" Z", planner.max_z_jerk); + SERIAL_ECHOPAIR(" E", planner.max_e_jerk); SERIAL_EOL; CONFIG_ECHO_START; diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 9347744a58..5e55c7dd88 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -81,105 +81,27 @@ #include "mesh_bed_leveling.h" #endif -//=========================================================================== -//============================= public variables ============================ -//=========================================================================== - -millis_t minsegmenttime; -float max_feedrate[NUM_AXIS]; // Max speeds in mm per minute -float axis_steps_per_unit[NUM_AXIS]; -unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software -float minimumfeedrate; -float acceleration; // Normal acceleration mm/s^2 DEFAULT ACCELERATION for all printing moves. M204 SXXXX -float retract_acceleration; // Retract acceleration mm/s^2 filament pull-back and push-forward while standing still in the other axes M204 TXXXX -float travel_acceleration; // Travel acceleration mm/s^2 DEFAULT ACCELERATION for all NON printing moves. M204 MXXXX -float max_xy_jerk; // The largest speed change requiring no acceleration -float max_z_jerk; -float max_e_jerk; -float mintravelfeedrate; -unsigned long axis_steps_per_sqr_second[NUM_AXIS]; - -#if ENABLED(AUTO_BED_LEVELING_FEATURE) - // Transform required to compensate for bed level - matrix_3x3 plan_bed_level_matrix = { - 1.0, 0.0, 0.0, - 0.0, 1.0, 0.0, - 0.0, 0.0, 1.0 - }; -#endif // AUTO_BED_LEVELING_FEATURE +Planner planner; -#if ENABLED(AUTOTEMP) - float autotemp_max = 250; - float autotemp_min = 210; - float autotemp_factor = 0.1; - bool autotemp_enabled = false; -#endif - -#if ENABLED(FAN_SOFT_PWM) - extern unsigned char fanSpeedSoftPwm[FAN_COUNT]; -#endif - -//=========================================================================== -//============ semi-private variables, used in inline functions ============= -//=========================================================================== - -block_t block_buffer[BLOCK_BUFFER_SIZE]; // A ring buffer for motion instfructions -volatile unsigned char block_buffer_head; // Index of the next block to be pushed -volatile unsigned char block_buffer_tail; // Index of the block to process now - -//=========================================================================== -//============================ private variables ============================ -//=========================================================================== - -// The current position of the tool in absolute steps -long position[NUM_AXIS]; // Rescaled from extern when axis_steps_per_unit are changed by gcode -static float previous_speed[NUM_AXIS]; // Speed of previous path line segment -static float previous_nominal_speed; // Nominal speed of previous path line segment - -uint8_t g_uc_extruder_last_move[EXTRUDERS] = { 0 }; - -#ifdef XY_FREQUENCY_LIMIT - // Used for the frequency limit - #define MAX_FREQ_TIME (1000000.0/XY_FREQUENCY_LIMIT) - // Old direction bits. Used for speed calculations - static unsigned char old_direction_bits = 0; - // Segment times (in µs). Used for speed calculations - static long axis_segment_time[2][3] = { {MAX_FREQ_TIME + 1, 0, 0}, {MAX_FREQ_TIME + 1, 0, 0} }; -#endif - -#if ENABLED(DUAL_X_CARRIAGE) - extern bool extruder_duplication_enabled; -#endif - -//=========================================================================== -//================================ functions ================================ -//=========================================================================== - -// Get the next / previous index of the next block in the ring buffer -// NOTE: Using & here (not %) because BLOCK_BUFFER_SIZE is always a power of 2 -FORCE_INLINE int8_t next_block_index(int8_t block_index) { return BLOCK_MOD(block_index + 1); } -FORCE_INLINE int8_t prev_block_index(int8_t block_index) { return BLOCK_MOD(block_index - 1); } - -// Calculates the distance (not time) it takes to accelerate from initial_rate to target_rate using the -// given acceleration: -FORCE_INLINE float estimate_acceleration_distance(float initial_rate, float target_rate, float acceleration) { - if (acceleration == 0) return 0; // acceleration was 0, set acceleration distance to 0 - return (target_rate * target_rate - initial_rate * initial_rate) / (acceleration * 2); +Planner::Planner() { + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + bed_level_matrix.set_to_identity(); + #endif + init(); } -// This function gives you the point at which you must start braking (at the rate of -acceleration) if -// you started at speed initial_rate and accelerated until this point and want to end at the final_rate after -// a total travel of distance. This can be used to compute the intersection point between acceleration and -// deceleration in the cases where the trapezoid has no plateau (i.e. never reaches maximum speed) - -FORCE_INLINE float intersection_distance(float initial_rate, float final_rate, float acceleration, float distance) { - if (acceleration == 0) return 0; // acceleration was 0, set intersection distance to 0 - return (acceleration * 2 * distance - initial_rate * initial_rate + final_rate * final_rate) / (acceleration * 4); +void Planner::init() { + block_buffer_head = block_buffer_tail = 0; + memset(position, 0, sizeof(position)); // clear position + for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0; + previous_nominal_speed = 0.0; } -// Calculates trapezoid parameters so that the entry- and exit-speed is compensated by the provided factors. - -void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor) { +/** + * Calculate trapezoid parameters, multiplying the entry- and exit-speeds + * by the provided factors. + */ +void Planner::calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor) { unsigned long initial_rate = ceil(block->nominal_rate * entry_factor), final_rate = ceil(block->nominal_rate * exit_factor); // (steps per second) @@ -225,12 +147,6 @@ void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exi CRITICAL_SECTION_END; } -// Calculates the maximum allowable speed at this point when you must be able to reach target_velocity using the -// acceleration within the allotted distance. -FORCE_INLINE float max_allowable_speed(float acceleration, float target_velocity, float distance) { - return sqrt(target_velocity * target_velocity - 2 * acceleration * distance); -} - // "Junction jerk" in this context is the immediate change in speed at the junction of two blocks. // This method will calculate the junction jerk as the euclidean distance between the nominal // velocities of the respective blocks. @@ -240,8 +156,8 @@ FORCE_INLINE float max_allowable_speed(float acceleration, float target_velocity //} -// The kernel called by planner_recalculate() when scanning the plan from last to first entry. -void planner_reverse_pass_kernel(block_t* previous, block_t* current, block_t* next) { +// The kernel called by recalculate() when scanning the plan from last to first entry. +void Planner::reverse_pass_kernel(block_t* previous, block_t* current, block_t* next) { if (!current) return; UNUSED(previous); @@ -267,31 +183,34 @@ void planner_reverse_pass_kernel(block_t* previous, block_t* current, block_t* n } // Skip last block. Already initialized and set for recalculation. } -// planner_recalculate() needs to go over the current plan twice. Once in reverse and once forward. This -// implements the reverse pass. -void planner_reverse_pass() { - uint8_t block_index = block_buffer_head; +/** + * recalculate() needs to go over the current plan twice. + * Once in reverse and once forward. This implements the reverse pass. + */ +void Planner::reverse_pass() { - //Make a local copy of block_buffer_tail, because the interrupt can alter it - CRITICAL_SECTION_START; - unsigned char tail = block_buffer_tail; - CRITICAL_SECTION_END + if (movesplanned() > 3) { - if (BLOCK_MOD(block_buffer_head - tail + BLOCK_BUFFER_SIZE) > 3) { // moves queued - block_index = BLOCK_MOD(block_buffer_head - 3); block_t* block[3] = { NULL, NULL, NULL }; - while (block_index != tail) { - block_index = prev_block_index(block_index); + + // Make a local copy of block_buffer_tail, because the interrupt can alter it + CRITICAL_SECTION_START; + uint8_t tail = block_buffer_tail; + CRITICAL_SECTION_END + + uint8_t b = BLOCK_MOD(block_buffer_head - 3); + while (b != tail) { + b = prev_block_index(b); block[2] = block[1]; block[1] = block[0]; - block[0] = &block_buffer[block_index]; - planner_reverse_pass_kernel(block[0], block[1], block[2]); + block[0] = &block_buffer[b]; + reverse_pass_kernel(block[0], block[1], block[2]); } } } -// The kernel called by planner_recalculate() when scanning the plan from first to last entry. -void planner_forward_pass_kernel(block_t* previous, block_t* current, block_t* next) { +// The kernel called by recalculate() when scanning the plan from first to last entry. +void Planner::forward_pass_kernel(block_t* previous, block_t* current, block_t* next) { if (!previous) return; UNUSED(next); @@ -312,26 +231,28 @@ void planner_forward_pass_kernel(block_t* previous, block_t* current, block_t* n } } -// planner_recalculate() needs to go over the current plan twice. Once in reverse and once forward. This -// implements the forward pass. -void planner_forward_pass() { - uint8_t block_index = block_buffer_tail; +/** + * recalculate() needs to go over the current plan twice. + * Once in reverse and once forward. This implements the forward pass. + */ +void Planner::forward_pass() { block_t* block[3] = { NULL, NULL, NULL }; - while (block_index != block_buffer_head) { + for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { block[0] = block[1]; block[1] = block[2]; - block[2] = &block_buffer[block_index]; - planner_forward_pass_kernel(block[0], block[1], block[2]); - block_index = next_block_index(block_index); + block[2] = &block_buffer[b]; + forward_pass_kernel(block[0], block[1], block[2]); } - planner_forward_pass_kernel(block[1], block[2], NULL); + forward_pass_kernel(block[1], block[2], NULL); } -// Recalculates the trapezoid speed profiles for all blocks in the plan according to the -// entry_factor for each junction. Must be called by planner_recalculate() after -// updating the blocks. -void planner_recalculate_trapezoids() { +/** + * Recalculate the trapezoid speed profiles for all blocks in the plan + * according to the entry_factor for each junction. Must be called by + * recalculate() after updating the blocks. + */ +void Planner::recalculate_trapezoids() { int8_t block_index = block_buffer_tail; block_t* current; block_t* next = NULL; @@ -358,54 +279,52 @@ void planner_recalculate_trapezoids() { } } -// Recalculates the motion plan according to the following algorithm: -// -// 1. Go over every block in reverse order and calculate a junction speed reduction (i.e. block_t.entry_factor) -// so that: -// a. The junction jerk is within the set limit -// b. No speed reduction within one block requires faster deceleration than the one, true constant -// acceleration. -// 2. Go over every block in chronological order and dial down junction speed reduction values if -// a. The speed increase within one block would require faster acceleration than the one, true -// constant acceleration. -// -// When these stages are complete all blocks have an entry_factor that will allow all speed changes to -// be performed using only the one, true constant acceleration, and where no junction jerk is jerkier than -// the set limit. Finally it will: -// -// 3. Recalculate trapezoids for all blocks. - -void planner_recalculate() { - planner_reverse_pass(); - planner_forward_pass(); - planner_recalculate_trapezoids(); -} - -void plan_init() { - block_buffer_head = block_buffer_tail = 0; - memset(position, 0, sizeof(position)); // clear position - for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0; - previous_nominal_speed = 0.0; +/* + * Recalculate the motion plan according to the following algorithm: + * + * 1. Go over every block in reverse order... + * + * Calculate a junction speed reduction (block_t.entry_factor) so: + * + * a. The junction jerk is within the set limit, and + * + * b. No speed reduction within one block requires faster + * deceleration than the one, true constant acceleration. + * + * 2. Go over every block in chronological order... + * + * Dial down junction speed reduction values if: + * a. The speed increase within one block would require faster + * acceleration than the one, true constant acceleration. + * + * After that, all blocks will have an entry_factor allowing all speed changes to + * be performed using only the one, true constant acceleration, and where no junction + * jerk is jerkier than the set limit, Jerky. Finally it will: + * + * 3. Recalculate "trapezoids" for all blocks. + */ +void Planner::recalculate() { + reverse_pass(); + forward_pass(); + recalculate_trapezoids(); } #if ENABLED(AUTOTEMP) - void getHighESpeed() { + + void Planner::getHighESpeed() { static float oldt = 0; if (!autotemp_enabled) return; if (degTargetHotend0() + 2 < autotemp_min) return; // probably temperature set to zero. float high = 0.0; - uint8_t block_index = block_buffer_tail; - - while (block_index != block_buffer_head) { - block_t* block = &block_buffer[block_index]; + for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { + block_t* block = &block_buffer[b]; if (block->steps[X_AXIS] || block->steps[Y_AXIS] || block->steps[Z_AXIS]) { float se = (float)block->steps[E_AXIS] / block->step_event_count * block->nominal_speed; // mm/sec; NOLESS(high, se); } - block_index = next_block_index(block_index); } float t = autotemp_min + high * autotemp_factor; @@ -417,9 +336,13 @@ void plan_init() { oldt = t; setTargetHotend0(t); } + #endif //AUTOTEMP -void check_axes_activity() { +/** + * Maintain fans, paste extruder pressure, + */ +void Planner::check_axes_activity() { unsigned char axis_active[NUM_AXIS] = { 0 }, tail_fan_speed[FAN_COUNT]; @@ -432,26 +355,23 @@ void check_axes_activity() { tail_e_to_p_pressure = baricuda_e_to_p_pressure; #endif - block_t* block; - if (blocks_queued()) { - uint8_t block_index = block_buffer_tail; - #if FAN_COUNT > 0 - for (uint8_t i = 0; i < FAN_COUNT; i++) tail_fan_speed[i] = block_buffer[block_index].fan_speed[i]; + for (uint8_t i = 0; i < FAN_COUNT; i++) tail_fan_speed[i] = block_buffer[block_buffer_tail].fan_speed[i]; #endif + block_t* block; + #if ENABLED(BARICUDA) - block = &block_buffer[block_index]; + block = &block_buffer[block_buffer_tail]; tail_valve_pressure = block->valve_pressure; tail_e_to_p_pressure = block->e_to_p_pressure; #endif - while (block_index != block_buffer_head) { - block = &block_buffer[block_index]; + for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { + block = &block_buffer[b]; for (int i = 0; i < NUM_AXIS; i++) if (block->steps[i]) axis_active[i]++; - block_index = next_block_index(block_index); } } #if ENABLED(DISABLE_X) @@ -549,15 +469,20 @@ void check_axes_activity() { #endif } +/** + * Planner::buffer_line + * + * Add a new linear movement to the buffer. + * + * x,y,z,e - target position in mm + * feed_rate - (target) speed of the move + * extruder - target extruder + */ -float junction_deviation = 0.1; -// Add a new linear movement to the buffer. steps[X_AXIS], _y and _z is the absolute position in -// mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration -// calculation the caller must also provide the physical length of the line in millimeters. #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING) - void plan_buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder) + void Planner::buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder) #else - void plan_buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder) + void Planner::buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder) #endif // AUTO_BED_LEVELING_FEATURE { // Calculate the buffer head after we push this byte @@ -570,7 +495,7 @@ float junction_deviation = 0.1; #if ENABLED(MESH_BED_LEVELING) if (mbl.active) z += mbl.get_z(x - home_offset[X_AXIS], y - home_offset[Y_AXIS]); #elif ENABLED(AUTO_BED_LEVELING_FEATURE) - apply_rotation_xyz(plan_bed_level_matrix, x, y, z); + apply_rotation_xyz(bed_level_matrix, x, y, z); #endif // The target position of the tool in absolute steps @@ -703,7 +628,8 @@ float junction_deviation = 0.1; // Enable extruder(s) if (block->steps[E_AXIS]) { - if (DISABLE_INACTIVE_EXTRUDER) { //enable only selected extruder + + #if ENABLED(DISABLE_INACTIVE_EXTRUDER) // Enable only the selected extruder for (int i = 0; i < EXTRUDERS; i++) if (g_uc_extruder_last_move[i] > 0) g_uc_extruder_last_move[i]--; @@ -762,19 +688,18 @@ float junction_deviation = 0.1; #endif // EXTRUDERS > 2 #endif // EXTRUDERS > 1 } - } - else { // enable all + #else enable_e0(); enable_e1(); enable_e2(); enable_e3(); - } + #endif } if (block->steps[E_AXIS]) - NOLESS(feed_rate, minimumfeedrate); + NOLESS(feed_rate, min_feedrate); else - NOLESS(feed_rate, mintravelfeedrate); + NOLESS(feed_rate, min_travel_feedrate); /** * This part of the code calculates the total length of the movement. @@ -837,9 +762,9 @@ float junction_deviation = 0.1; // segment time im micro seconds unsigned long segment_time = lround(1000000.0/inverse_second); if (mq) { - if (segment_time < minsegmenttime) { + if (segment_time < min_segment_time) { // buffer is draining, add extra time. The amount of time added increases if the buffer is still emptied more. - inverse_second = 1000000.0 / (segment_time + lround(2 * (minsegmenttime - segment_time) / moves_queued)); + inverse_second = 1000000.0 / (segment_time + lround(2 * (min_segment_time - segment_time) / moves_queued)); #ifdef XY_FREQUENCY_LIMIT segment_time = lround(1000000.0 / inverse_second); #endif @@ -968,6 +893,9 @@ float junction_deviation = 0.1; block->acceleration_rate = (long)(acc_st * 16777216.0 / (F_CPU / 8.0)); #if 0 // Use old jerk for now + + float junction_deviation = 0.1; + // Compute path unit vector double unit_vec[3]; @@ -1083,11 +1011,11 @@ float junction_deviation = 0.1; // Update position for (int i = 0; i < NUM_AXIS; i++) position[i] = target[i]; - planner_recalculate(); + recalculate(); stepper.wake_up(); -} // plan_buffer_line() +} // buffer_line() #if ENABLED(AUTO_BED_LEVELING_FEATURE) && DISABLED(DELTA) @@ -1096,13 +1024,15 @@ float junction_deviation = 0.1; * * On CORE machines XYZ is derived from ABC. */ - vector_3 plan_get_position() { + vector_3 Planner::adjusted_position() { vector_3 position = vector_3(stepper.get_axis_position_mm(X_AXIS), stepper.get_axis_position_mm(Y_AXIS), stepper.get_axis_position_mm(Z_AXIS)); - //position.debug("in plan_get position"); - //plan_bed_level_matrix.debug("in plan_get_position"); - matrix_3x3 inverse = matrix_3x3::transpose(plan_bed_level_matrix); - //inverse.debug("in plan_get inverse"); + //position.debug("in Planner::position"); + //bed_level_matrix.debug("in Planner::position"); + + matrix_3x3 inverse = matrix_3x3::transpose(bed_level_matrix); + //inverse.debug("in Planner::inverse"); + position.apply_rotation(inverse); //position.debug("after rotation"); @@ -1117,15 +1047,15 @@ float junction_deviation = 0.1; * On CORE machines stepper ABC will be translated from the given XYZ. */ #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING) - void plan_set_position(float x, float y, float z, const float& e) + void Planner::set_position(float x, float y, float z, const float& e) #else - void plan_set_position(const float& x, const float& y, const float& z, const float& e) + void Planner::set_position(const float& x, const float& y, const float& z, const float& e) #endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING { #if ENABLED(MESH_BED_LEVELING) if (mbl.active) z += mbl.get_z(x - home_offset[X_AXIS], y - home_offset[Y_AXIS]); #elif ENABLED(AUTO_BED_LEVELING_FEATURE) - apply_rotation_xyz(plan_bed_level_matrix, x, y, z); + apply_rotation_xyz(bed_level_matrix, x, y, z); #endif long nx = position[X_AXIS] = lround(x * axis_steps_per_unit[X_AXIS]), @@ -1138,13 +1068,27 @@ float junction_deviation = 0.1; for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0; } -void plan_set_e_position(const float& e) { +/** + * Directly set the planner E position (hence the stepper E position). + */ +void Planner::set_e_position(const float& e) { position[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS]); stepper.set_e_position(position[E_AXIS]); } -// Calculate the steps/s^2 acceleration rates, based on the mm/s^s -void reset_acceleration_rates() { +// Recalculate the steps/s^2 acceleration rates, based on the mm/s^2 +void Planner::reset_acceleration_rates() { for (int i = 0; i < NUM_AXIS; i++) axis_steps_per_sqr_second[i] = max_acceleration_units_per_sq_second[i] * axis_steps_per_unit[i]; } + +#if ENABLED(AUTOTEMP) + + void Planner::autotemp_M109() { + autotemp_enabled = code_seen('F'); + if (autotemp_enabled) autotemp_factor = code_value(); + if (code_seen('S')) autotemp_min = code_value(); + if (code_seen('B')) autotemp_max = code_value(); + } + +#endif diff --git a/Marlin/planner.h b/Marlin/planner.h index dd724424b6..f4e126c0bd 100644 --- a/Marlin/planner.h +++ b/Marlin/planner.h @@ -48,17 +48,36 @@ #include "Marlin.h" -// This struct is used when buffering the setup for each linear movement "nominal" values are as specified in -// the source g-code and may never actually be reached if acceleration management is active. +#if ENABLED(AUTO_BED_LEVELING_FEATURE) + #include "vector_3.h" +#endif + +class Planner; +extern Planner planner; + +/** + * struct block_t + * + * A single entry in the planner buffer. + * Tracks linear movement over multiple axes. + * + * The "nominal" values are as-specified by gcode, and + * may never actually be reached due to acceleration limits. + */ typedef struct { + + unsigned char active_extruder; // The extruder to move (if E move) + // Fields used by the bresenham algorithm for tracing the line long steps[NUM_AXIS]; // Step count along each axis unsigned long step_event_count; // The number of step events required to complete this block + long accelerate_until; // The index of the step event on which to stop acceleration long decelerate_after; // The index of the step event on which to start decelerating long acceleration_rate; // The acceleration rate used for acceleration calculation + unsigned char direction_bits; // The direction bit set for this block (refers to *_DIRECTION_BIT in config.h) - unsigned char active_extruder; // Selects the active extruder + #if ENABLED(ADVANCE) long advance_rate; volatile long initial_advance; @@ -67,7 +86,6 @@ typedef struct { #endif // Fields used by the motion planner to manage acceleration - // float speed_x, speed_y, speed_z, speed_e; // Nominal mm/sec for each axis float nominal_speed; // The nominal speed for this block in mm/sec float entry_speed; // Entry speed at previous-current junction in mm/sec float max_entry_speed; // Maximum allowable junction entry speed in mm/sec @@ -97,102 +115,220 @@ typedef struct { #define BLOCK_MOD(n) ((n)&(BLOCK_BUFFER_SIZE-1)) -// Initialize the motion plan subsystem -void plan_init(); +class Planner { -void check_axes_activity(); + public: -// Get the number of buffered moves -extern volatile unsigned char block_buffer_head; -extern volatile unsigned char block_buffer_tail; -FORCE_INLINE uint8_t movesplanned() { return BLOCK_MOD(block_buffer_head - block_buffer_tail + BLOCK_BUFFER_SIZE); } + /** + * A ring buffer of moves described in steps + */ + block_t block_buffer[BLOCK_BUFFER_SIZE]; + volatile uint8_t block_buffer_head = 0; // Index of the next block to be pushed + volatile uint8_t block_buffer_tail = 0; + + float max_feedrate[NUM_AXIS]; // Max speeds in mm per minute + float axis_steps_per_unit[NUM_AXIS]; + unsigned long axis_steps_per_sqr_second[NUM_AXIS]; + unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software + + millis_t min_segment_time; + float min_feedrate; + float acceleration; // Normal acceleration mm/s^2 DEFAULT ACCELERATION for all printing moves. M204 SXXXX + float retract_acceleration; // Retract acceleration mm/s^2 filament pull-back and push-forward while standing still in the other axes M204 TXXXX + float travel_acceleration; // Travel acceleration mm/s^2 DEFAULT ACCELERATION for all NON printing moves. M204 MXXXX + float max_xy_jerk; // The largest speed change requiring no acceleration + float max_z_jerk; + float max_e_jerk; + float min_travel_feedrate; + + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + matrix_3x3 bed_level_matrix; // Transform to compensate for bed level + #endif + + private: -#if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING) + /** + * The current position of the tool in absolute steps + * Reclculated if any axis_steps_per_unit are changed by gcode + */ + long position[NUM_AXIS] = { 0 }; - #if ENABLED(AUTO_BED_LEVELING_FEATURE) - #include "vector_3.h" + /** + * Speed of previous path line segment + */ + float previous_speed[NUM_AXIS]; + + /** + * Nominal speed of previous path line segment + */ + float previous_nominal_speed; + + #if ENABLED(DISABLE_INACTIVE_EXTRUDER) + /** + * Counters to manage disabling inactive extruders + */ + uint8_t g_uc_extruder_last_move[EXTRUDERS] = { 0 }; + #endif // DISABLE_INACTIVE_EXTRUDER + + #ifdef XY_FREQUENCY_LIMIT + // Used for the frequency limit + #define MAX_FREQ_TIME (1000000.0/XY_FREQUENCY_LIMIT) + // Old direction bits. Used for speed calculations + static unsigned char old_direction_bits = 0; + // Segment times (in µs). Used for speed calculations + static long axis_segment_time[2][3] = { {MAX_FREQ_TIME + 1, 0, 0}, {MAX_FREQ_TIME + 1, 0, 0} }; + #endif + + #if ENABLED(DUAL_X_CARRIAGE) + extern bool extruder_duplication_enabled; + #endif - // Transform required to compensate for bed level - extern matrix_3x3 plan_bed_level_matrix; + public: + + Planner(); + + void init(); + + void reset_acceleration_rates(); + + // Manage fans, paste pressure, etc. + void check_axes_activity(); /** - * Get the position applying the bed level matrix + * Number of moves currently in the planner */ - vector_3 plan_get_position(); - #endif // AUTO_BED_LEVELING_FEATURE - - /** - * Add a new linear movement to the buffer. x, y, z are the signed, absolute target position in - * millimeters. Feed rate specifies the (target) speed of the motion. - */ - void plan_buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder); - - /** - * Set the planner positions. Used for G92 instructions. - * Multiplies by axis_steps_per_unit[] to set stepper positions. - * Clears previous speed values. - */ - void plan_set_position(float x, float y, float z, const float& e); - -#else - - void plan_buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder); - void plan_set_position(const float& x, const float& y, const float& z, const float& e); - -#endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING - -void plan_set_e_position(const float& e); - -//=========================================================================== -//============================= public variables ============================ -//=========================================================================== - -extern millis_t minsegmenttime; -extern float max_feedrate[NUM_AXIS]; // Max speeds in mm per minute -extern float axis_steps_per_unit[NUM_AXIS]; -extern unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software -extern float minimumfeedrate; -extern float acceleration; // Normal acceleration mm/s^2 DEFAULT ACCELERATION for all printing moves. M204 SXXXX -extern float retract_acceleration; // Retract acceleration mm/s^2 filament pull-back and push-forward while standing still in the other axes M204 TXXXX -extern float travel_acceleration; // Travel acceleration mm/s^2 DEFAULT ACCELERATION for all NON printing moves. M204 MXXXX -extern float max_xy_jerk; // The largest speed change requiring no acceleration -extern float max_z_jerk; -extern float max_e_jerk; -extern float mintravelfeedrate; -extern unsigned long axis_steps_per_sqr_second[NUM_AXIS]; - -#if ENABLED(AUTOTEMP) - extern bool autotemp_enabled; - extern float autotemp_max; - extern float autotemp_min; - extern float autotemp_factor; -#endif + FORCE_INLINE uint8_t movesplanned() { return BLOCK_MOD(block_buffer_head - block_buffer_tail + BLOCK_BUFFER_SIZE); } + + #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING) + + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + /** + * The corrected position, applying the bed level matrix + */ + vector_3 adjusted_position(); + #endif + + /** + * Add a new linear movement to the buffer. + * + * x,y,z,e - target position in mm + * feed_rate - (target) speed of the move + * extruder - target extruder + */ + void buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder); + + /** + * Set the planner.position and individual stepper positions. + * Used by G92, G28, G29, and other procedures. + * + * Multiplies by axis_steps_per_unit[] and does necessary conversion + * for COREXY / COREXZ to set the corresponding stepper positions. + * + * Clears previous speed values. + */ + void set_position(float x, float y, float z, const float& e); + + #else + + void buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder); + void set_position(const float& x, const float& y, const float& z, const float& e); + + #endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING + + /** + * Set the E position (mm) of the planner (and the E stepper) + */ + void set_e_position(const float& e); + + /** + * Does the buffer have any blocks queued? + */ + FORCE_INLINE bool blocks_queued() { return (block_buffer_head != block_buffer_tail); } + + /** + * "Discards" the block and "releases" the memory. + * Called when the current block is no longer needed. + */ + FORCE_INLINE void discard_current_block() { + if (blocks_queued()) + block_buffer_tail = BLOCK_MOD(block_buffer_tail + 1); + } + + /** + * The current block. NULL if the buffer is empty. + * This also marks the block as busy. + */ + FORCE_INLINE block_t* get_current_block() { + if (blocks_queued()) { + block_t* block = &block_buffer[block_buffer_tail]; + block->busy = true; + return block; + } + else + return NULL; + } + + /** + * Get the index of the next / previous block in the ring buffer + */ + FORCE_INLINE int8_t next_block_index(int8_t block_index) { return BLOCK_MOD(block_index + 1); } + FORCE_INLINE int8_t prev_block_index(int8_t block_index) { return BLOCK_MOD(block_index - 1); } + + /** + * Calculate the distance (not time) it takes to accelerate + * from initial_rate to target_rate using the given acceleration: + */ + FORCE_INLINE float estimate_acceleration_distance(float initial_rate, float target_rate, float acceleration) { + if (acceleration == 0) return 0; // acceleration was 0, set acceleration distance to 0 + return (target_rate * target_rate - initial_rate * initial_rate) / (acceleration * 2); + } + + /** + * Return the point at which you must start braking (at the rate of -'acceleration') if + * you start at 'initial_rate', accelerate (until reaching the point), and want to end at + * 'final_rate' after traveling 'distance'. + * + * This is used to compute the intersection point between acceleration and deceleration + * in cases where the "trapezoid" has no plateau (i.e., never reaches maximum speed) + */ + FORCE_INLINE float intersection_distance(float initial_rate, float final_rate, float acceleration, float distance) { + if (acceleration == 0) return 0; // acceleration was 0, set intersection distance to 0 + return (acceleration * 2 * distance - initial_rate * initial_rate + final_rate * final_rate) / (acceleration * 4); + } + + /** + * Calculate the maximum allowable speed at this point, in order + * to reach 'target_velocity' using 'acceleration' within a given + * 'distance'. + */ + FORCE_INLINE float max_allowable_speed(float acceleration, float target_velocity, float distance) { + return sqrt(target_velocity * target_velocity - 2 * acceleration * distance); + } + + + #if ENABLED(AUTOTEMP) + float autotemp_max = 250; + float autotemp_min = 210; + float autotemp_factor = 0.1; + bool autotemp_enabled = false; + void getHighESpeed(); + void autotemp_M109(); + #endif + + private: + + void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor); + + void reverse_pass_kernel(block_t* previous, block_t* current, block_t* next); + void forward_pass_kernel(block_t* previous, block_t* current, block_t* next); + + void reverse_pass(); + void forward_pass(); + + void recalculate_trapezoids(); + + void recalculate(); -extern block_t block_buffer[BLOCK_BUFFER_SIZE]; // A ring buffer for motion instructions -extern volatile unsigned char block_buffer_head; // Index of the next block to be pushed -extern volatile unsigned char block_buffer_tail; - -// Returns true if the buffer has a queued block, false otherwise -FORCE_INLINE bool blocks_queued() { return (block_buffer_head != block_buffer_tail); } - -// Called when the current block is no longer needed. Discards -// the block and makes the memory available for new blocks. -FORCE_INLINE void plan_discard_current_block() { - if (blocks_queued()) - block_buffer_tail = BLOCK_MOD(block_buffer_tail + 1); -} - -// Gets the current block. Returns NULL if buffer empty -FORCE_INLINE block_t* plan_get_current_block() { - if (blocks_queued()) { - block_t* block = &block_buffer[block_buffer_tail]; - block->busy = true; - return block; - } - else - return NULL; -} - -void reset_acceleration_rates(); +}; #endif // PLANNER_H diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index d3fa2b6375..e282801373 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -242,7 +242,7 @@ ISR(TIMER1_COMPA_vect) { stepper.isr(); } void Stepper::isr() { if (cleaning_buffer_counter) { current_block = NULL; - plan_discard_current_block(); + planner.discard_current_block(); #ifdef SD_FINISHED_RELEASECOMMAND if ((cleaning_buffer_counter == 1) && (SD_FINISHED_STEPPERRELEASE)) enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND)); #endif @@ -254,7 +254,7 @@ void Stepper::isr() { // If there is no current block, attempt to pop one from the buffer if (!current_block) { // Anything in the buffer? - current_block = plan_get_current_block(); + current_block = planner.get_current_block(); if (current_block) { current_block->busy = true; trapezoid_generator_reset(); @@ -396,7 +396,7 @@ void Stepper::isr() { // If current block is finished, reset pointer if (step_events_completed >= current_block->step_event_count) { current_block = NULL; - plan_discard_current_block(); + planner.discard_current_block(); } } } @@ -620,7 +620,7 @@ void Stepper::init() { /** * Block until all buffered steps are executed */ -void Stepper::synchronize() { while (blocks_queued()) idle(); } +void Stepper::synchronize() { while (planner.blocks_queued()) idle(); } /** * Set the stepper positions directly in steps @@ -693,7 +693,7 @@ float Stepper::get_axis_position_mm(AxisEnum axis) { #else axis_steps = position(axis); #endif - return axis_steps / axis_steps_per_unit[axis]; + return axis_steps / planner.axis_steps_per_unit[axis]; } void Stepper::finish_and_disable() { @@ -704,7 +704,7 @@ void Stepper::finish_and_disable() { void Stepper::quick_stop() { cleaning_buffer_counter = 5000; DISABLE_STEPPER_DRIVER_INTERRUPT(); - while (blocks_queued()) plan_discard_current_block(); + while (planner.blocks_queued()) planner.discard_current_block(); current_block = NULL; ENABLE_STEPPER_DRIVER_INTERRUPT(); } diff --git a/Marlin/stepper.h b/Marlin/stepper.h index 3efad54694..6f2e99dc99 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -245,7 +245,7 @@ class Stepper { // Triggered position of an axis in mm (not core-savvy) // FORCE_INLINE float triggered_position_mm(AxisEnum axis) { - return endstops_trigsteps[axis] / axis_steps_per_unit[axis]; + return endstops_trigsteps[axis] / planner.axis_steps_per_unit[axis]; } FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) { diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index de61e63304..7c5db54c8f 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -613,7 +613,7 @@ float get_pid_output(int e) { lpq[lpq_ptr++] = 0; } if (lpq_ptr >= lpq_len) lpq_ptr = 0; - cTerm[e] = (lpq[lpq_ptr] / axis_steps_per_unit[E_AXIS]) * PID_PARAM(Kc, e); + cTerm[e] = (lpq[lpq_ptr] / planner.axis_steps_per_unit[E_AXIS]) * PID_PARAM(Kc, e); pid_output += cTerm[e]; } #endif //PID_ADD_EXTRUSION_RATE diff --git a/Marlin/temperature.h b/Marlin/temperature.h index c49f2c46a5..11406c5339 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -79,6 +79,10 @@ extern float current_temperature_bed; extern unsigned char soft_pwm_bed; #endif +#if ENABLED(FAN_SOFT_PWM) + extern unsigned char fanSpeedSoftPwm[FAN_COUNT]; +#endif + #if ENABLED(PIDTEMP) #if ENABLED(PID_PARAMS_PER_EXTRUDER) @@ -178,9 +182,9 @@ void checkExtruderAutoFans(); FORCE_INLINE void autotempShutdown() { #if ENABLED(AUTOTEMP) - if (autotemp_enabled) { - autotemp_enabled = false; - if (degTargetHotend(active_extruder) > autotemp_min) + if (planner.autotemp_enabled) { + planner.autotemp_enabled = false; + if (degTargetHotend(active_extruder) > planner.autotemp_min) setTargetHotend(0, active_extruder); } #endif diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 33ede883a0..6acb889ec7 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -463,9 +463,9 @@ static void lcd_status_screen() { inline void line_to_current(AxisEnum axis) { #if ENABLED(DELTA) calculate_delta(current_position); - plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); + planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); #else - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); + planner.buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[axis]/60, active_extruder); #endif } @@ -495,7 +495,7 @@ inline void line_to_current(AxisEnum axis) { static void lcd_main_menu() { START_MENU(); MENU_ITEM(back, MSG_WATCH); - if (movesplanned() || IS_SD_PRINTING) { + if (planner.movesplanned() || IS_SD_PRINTING) { MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu); } else { @@ -934,7 +934,7 @@ void lcd_cooldown() { ENCODER_DIRECTION_NORMAL(); // Encoder wheel adjusts the Z position - if (encoderPosition && movesplanned() <= 3) { + if (encoderPosition && planner.movesplanned() <= 3) { refresh_cmd_timeout(); current_position[Z_AXIS] += float((int32_t)encoderPosition) * (MBL_Z_STEP); NOLESS(current_position[Z_AXIS], 0); @@ -1037,7 +1037,7 @@ void lcd_cooldown() { if (LCD_CLICKED) { _lcd_level_bed_position = 0; current_position[Z_AXIS] = MESH_HOME_SEARCH_Z; - plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + planner.set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); lcd_goto_menu(_lcd_level_goto_next_point, true); } } @@ -1191,7 +1191,7 @@ float move_menu_scale; static void _lcd_move(const char* name, AxisEnum axis, float min, float max) { ENCODER_DIRECTION_NORMAL(); - if (encoderPosition && movesplanned() <= 3) { + if (encoderPosition && planner.movesplanned() <= 3) { refresh_cmd_timeout(); current_position[axis] += float((int32_t)encoderPosition) * move_menu_scale; if (min_software_endstops) NOLESS(current_position[axis], min); @@ -1223,7 +1223,7 @@ static void lcd_move_e( unsigned short original_active_extruder = active_extruder; active_extruder = e; #endif - if (encoderPosition && movesplanned() <= 3) { + if (encoderPosition && planner.movesplanned() <= 3) { current_position[E_AXIS] += float((int32_t)encoderPosition) * move_menu_scale; line_to_current(E_AXIS); lcdDrawUpdate = LCDVIEW_REDRAW_NOW; @@ -1511,10 +1511,10 @@ static void lcd_control_temperature_menu() { // Autotemp, Min, Max, Fact // #if ENABLED(AUTOTEMP) && (TEMP_SENSOR_0 != 0) - MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &autotemp_enabled); - MENU_ITEM_EDIT(float3, MSG_MIN, &autotemp_min, 0, HEATER_0_MAXTEMP - 15); - MENU_ITEM_EDIT(float3, MSG_MAX, &autotemp_max, 0, HEATER_0_MAXTEMP - 15); - MENU_ITEM_EDIT(float32, MSG_FACTOR, &autotemp_factor, 0.0, 1.0); + MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled); + MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, HEATER_0_MAXTEMP - 15); + MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, HEATER_0_MAXTEMP - 15); + MENU_ITEM_EDIT(float32, MSG_FACTOR, &planner.autotemp_factor, 0.0, 1.0); #endif // @@ -1618,6 +1618,8 @@ static void lcd_control_temperature_preheat_abs_settings_menu() { END_MENU(); } +static void _reset_acceleration_rates() { planner.reset_acceleration_rates(); } + /** * * "Control" > "Motion" submenu @@ -1633,34 +1635,34 @@ static void lcd_control_motion_menu() { #if ENABLED(MANUAL_BED_LEVELING) MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1); #endif - MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 10, 99000); - MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990); + MENU_ITEM_EDIT(float5, MSG_ACC, &planner.acceleration, 10, 99000); + MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &planner.max_xy_jerk, 1, 990); #if ENABLED(DELTA) - MENU_ITEM_EDIT(float3, MSG_VZ_JERK, &max_z_jerk, 1, 990); + MENU_ITEM_EDIT(float3, MSG_VZ_JERK, &planner.max_z_jerk, 1, 990); #else - MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &max_z_jerk, 0.1, 990); + MENU_ITEM_EDIT(float52, MSG_VZ_JERK, &planner.max_z_jerk, 0.1, 990); #endif - MENU_ITEM_EDIT(float3, MSG_VE_JERK, &max_e_jerk, 1, 990); - MENU_ITEM_EDIT(float3, MSG_VMAX MSG_X, &max_feedrate[X_AXIS], 1, 999); - MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Y, &max_feedrate[Y_AXIS], 1, 999); - MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Z, &max_feedrate[Z_AXIS], 1, 999); - MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &max_feedrate[E_AXIS], 1, 999); - MENU_ITEM_EDIT(float3, MSG_VMIN, &minimumfeedrate, 0, 999); - MENU_ITEM_EDIT(float3, MSG_VTRAV_MIN, &mintravelfeedrate, 0, 999); - MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_X, &max_acceleration_units_per_sq_second[X_AXIS], 100, 99000, reset_acceleration_rates); - MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Y, &max_acceleration_units_per_sq_second[Y_AXIS], 100, 99000, reset_acceleration_rates); - MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &max_acceleration_units_per_sq_second[Z_AXIS], 10, 99000, reset_acceleration_rates); - MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &max_acceleration_units_per_sq_second[E_AXIS], 100, 99000, reset_acceleration_rates); - MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &retract_acceleration, 100, 99000); - MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &travel_acceleration, 100, 99000); - MENU_ITEM_EDIT(float52, MSG_XSTEPS, &axis_steps_per_unit[X_AXIS], 5, 9999); - MENU_ITEM_EDIT(float52, MSG_YSTEPS, &axis_steps_per_unit[Y_AXIS], 5, 9999); + MENU_ITEM_EDIT(float3, MSG_VE_JERK, &planner.max_e_jerk, 1, 990); + MENU_ITEM_EDIT(float3, MSG_VMAX MSG_X, &planner.max_feedrate[X_AXIS], 1, 999); + MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Y, &planner.max_feedrate[Y_AXIS], 1, 999); + MENU_ITEM_EDIT(float3, MSG_VMAX MSG_Z, &planner.max_feedrate[Z_AXIS], 1, 999); + MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate[E_AXIS], 1, 999); + MENU_ITEM_EDIT(float3, MSG_VMIN, &planner.min_feedrate, 0, 999); + MENU_ITEM_EDIT(float3, MSG_VTRAV_MIN, &planner.min_travel_feedrate, 0, 999); + MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_X, &planner.max_acceleration_units_per_sq_second[X_AXIS], 100, 99000, _reset_acceleration_rates); + MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Y, &planner.max_acceleration_units_per_sq_second[Y_AXIS], 100, 99000, _reset_acceleration_rates); + MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &planner.max_acceleration_units_per_sq_second[Z_AXIS], 10, 99000, _reset_acceleration_rates); + MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_units_per_sq_second[E_AXIS], 100, 99000, _reset_acceleration_rates); + MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &planner.retract_acceleration, 100, 99000); + MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &planner.travel_acceleration, 100, 99000); + MENU_ITEM_EDIT(float52, MSG_XSTEPS, &planner.axis_steps_per_unit[X_AXIS], 5, 9999); + MENU_ITEM_EDIT(float52, MSG_YSTEPS, &planner.axis_steps_per_unit[Y_AXIS], 5, 9999); #if ENABLED(DELTA) - MENU_ITEM_EDIT(float52, MSG_ZSTEPS, &axis_steps_per_unit[Z_AXIS], 5, 9999); + MENU_ITEM_EDIT(float52, MSG_ZSTEPS, &planner.axis_steps_per_unit[Z_AXIS], 5, 9999); #else - MENU_ITEM_EDIT(float51, MSG_ZSTEPS, &axis_steps_per_unit[Z_AXIS], 5, 9999); + MENU_ITEM_EDIT(float51, MSG_ZSTEPS, &planner.axis_steps_per_unit[Z_AXIS], 5, 9999); #endif - MENU_ITEM_EDIT(float51, MSG_ESTEPS, &axis_steps_per_unit[E_AXIS], 5, 9999); + MENU_ITEM_EDIT(float51, MSG_ESTEPS, &planner.axis_steps_per_unit[E_AXIS], 5, 9999); #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &abort_on_endstop_hit); #endif From 462a8a951e09a74fbded92069f5dd973535875b3 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 27 Apr 2016 19:35:55 -0700 Subject: [PATCH 180/383] A little extra gcode_T spacing --- Marlin/Marlin_main.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0f5fa9c42d..4100e629a5 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6374,20 +6374,27 @@ inline void gcode_T(uint8_t tmp_extruder) { #endif #else // !AUTO_BED_LEVELING_FEATURE + // Offset extruder (only by XY) for (int i=X_AXIS; i<=Y_AXIS; i++) current_position[i] += extruder_offset[i][tmp_extruder] - extruder_offset[i][active_extruder]; + #endif // !AUTO_BED_LEVELING_FEATURE + // Set the new active extruder and position active_extruder = tmp_extruder; + #endif // !DUAL_X_CARRIAGE + #if ENABLED(DELTA) sync_plan_position_delta(); #else sync_plan_position(); #endif + // Move to the old position if (IsRunning()) prepare_move(); + } // (tmp_extruder != active_extruder) #if ENABLED(EXT_SOLENOID) From 24a15332b3b5adcdffaf55ecba3c8eff82ba561e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 02:15:53 -0700 Subject: [PATCH 181/383] Encapsulate dual Z endstop handling --- Marlin/endstops.cpp | 35 +++++++++++++++++++---------------- Marlin/endstops.h | 6 ++++++ 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index f87b4c9b6a..ac37c5805f 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -193,6 +193,21 @@ void Endstops::M119() { #endif } // Endstops::M119 +#if ENABLED(Z_DUAL_ENDSTOPS) + + // Pass the result of the endstop test + void Endstops::test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2) { + byte z_test = TEST_ENDSTOP(es1) | (TEST_ENDSTOP(es2) << 1); // bit 0 for Z, bit 1 for Z2 + if (stepper.current_block->steps[Z_AXIS] > 0) { + stepper.endstop_triggered(Z_AXIS); + SBI(endstop_hit_bits, Z_MIN); + if (!stepper.performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... + stepper.kill_current_block(); + } + } + +#endif + // Check endstops - Called from ISR! void Endstops::update() { @@ -290,14 +305,7 @@ void Endstops::update() { COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN); #endif - byte z_test = TEST_ENDSTOP(Z_MIN) | (TEST_ENDSTOP(Z2_MIN) << 1); // bit 0 for Z, bit 1 for Z2 - - if (z_test && stepper.current_block->steps[Z_AXIS] > 0) { // z_test = Z_MIN || Z2_MIN - stepper.endstop_triggered(Z_AXIS); - SBI(endstop_hit_bits, Z_MIN); - if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... - stepper.kill_current_block(); - } + test_dual_z_endstops(Z_MIN, Z2_MIN); #else // !Z_DUAL_ENDSTOPS @@ -330,14 +338,7 @@ void Endstops::update() { COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX); #endif - byte z_test = TEST_ENDSTOP(Z_MAX) | (TEST_ENDSTOP(Z2_MAX) << 1); // bit 0 for Z, bit 1 for Z2 - - if (z_test && stepper.current_block->steps[Z_AXIS] > 0) { // t_test = Z_MAX || Z2_MAX - stepper.endstop_triggered(Z_AXIS); - SBI(endstop_hit_bits, Z_MIN); - if (!performing_homing || (z_test == 0x3)) //if not performing home or if both endstops were trigged during homing... - stepper.kill_current_block(); - } + test_dual_z_endstops(Z_MAX, Z2_MAX); #else // !Z_DUAL_ENDSTOPS @@ -349,5 +350,7 @@ void Endstops::update() { #if ENABLED(COREXZ) } #endif + old_endstop_bits = current_endstop_bits; + } // Endstops::update() diff --git a/Marlin/endstops.h b/Marlin/endstops.h index c7e9c0a386..a72306728e 100644 --- a/Marlin/endstops.h +++ b/Marlin/endstops.h @@ -92,6 +92,12 @@ class Endstops { volatile bool z_probe_enabled = false; FORCE_INLINE void enable_z_probe(bool onoff=true) { z_probe_enabled = onoff; } #endif + + private: + + #if ENABLED(Z_DUAL_ENDSTOPS) + void test_dual_z_endstops(EndstopEnum es1, EndstopEnum es2); + #endif }; extern Endstops endstops; From ff7a303a0eb26203d0d268de51bfc5eda99a7ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Sun, 1 May 2016 03:31:19 +0100 Subject: [PATCH 182/383] Updated version header gen script --- .../bin/generate_version_header_for_marlin | 77 ++++++++++--------- 1 file changed, 41 insertions(+), 36 deletions(-) diff --git a/LinuxAddons/bin/generate_version_header_for_marlin b/LinuxAddons/bin/generate_version_header_for_marlin index 539a3fe5a7..5fa9fb6338 100755 --- a/LinuxAddons/bin/generate_version_header_for_marlin +++ b/LinuxAddons/bin/generate_version_header_for_marlin @@ -1,12 +1,36 @@ #!/usr/bin/env bash # generate_version_header_for_marlin -DIR="$1" export DIR -OUTFILE="$2" export OUTFILE - -BUILDATE=$(date '+"%s"') -DISTDATE=$(date '+"%Y-%m-%d %H:%M"') - +DIR="$1" +OUTFILE="$2" + +BUILDATE=$(date '+%s') +DISTDATE=$(date '+%Y-%m-%d %H:%M') + +BRANCH=$(git -C "${DIR}" symbolic-ref -q --short HEAD) +VERSION=$(git -C "${DIR}" describe --tags --first-parent 2>/dev/null) + +# Voodoo version tag generator +if [ -z "${VERSION}" ]; then + VERSION=$(git -C "${DIR}" describe --tags --first-parent --always 2>/dev/null) + SHORT_BUILD_VERSION=$(echo "${VERSION}" | sed "s/-.*/${BRANCH}/") + DETAILED_BUILD_VERSION=$(echo "${VERSION}" | sed "s/-/${BRANCH}-/") +else + SHORT_BUILD_VERSION=$(echo "${BRANCH}") + DETAILED_BUILD_VERSION=$(echo "${BRANCH}-${VERSION}") +fi + +# Gets some misc options from their defaults +DEFAULT_MACHINE_UUID=$(awk -F'"' \ + '/#define DEFAULT_MACHINE_UUID/{ print $2 }' < "${DIR}/Version.h") +MACHINE_NAME=$(awk -F'"' \ + '/#define MACHINE_NAME/{ print $2 }' < "${DIR}/Version.h") +PROTOCOL_VERSION=$(awk -F'"' \ + '/#define PROTOCOL_VERSION/{ print $2 }' < "${DIR}/Version.h") +SOURCE_CODE_URL=$(awk -F'"' \ + '/#define SOURCE_CODE_URL/{ print $2 }' < "${DIR}/Version.h") +WEBSITE_URL=$(awk -F'"' \ + '/#define WEBSITE_URL/{ print $2 }' < "${DIR}/Version.h") cat > "$OUTFILE" < "$OUTFILE" </dev/null` - if [ "x$VERSION" != "x" ] ; then - echo "#define SHORT_BUILD_VERSION \"$VERSION\"" | sed "s/-.*/$BRANCH\"/" >>"$OUTFILE" - echo "#define DETAILED_BUILD_VERSION \"$VERSION\"" | sed "s/-/$BRANCH-/" >>"$OUTFILE" - else - VERSION=`git describe --tags --first-parent --always 2>/dev/null` - echo "#define SHORT_BUILD_VERSION \"$BRANCH\"" >>"$OUTFILE" - echo "#define DETAILED_BUILD_VERSION \"${BRANCH}-$VERSION\"" >>"$OUTFILE" - fi -) +#define SHORT_BUILD_VERSION "${SHORT_BUILD_VERSION}" +#define DETAILED_BUILD_VERSION "${DETAILED_BUILD_VERSION}" + +#define PROTOCOL_VERSION "${PROTOCOL_VERSION}" +#define MACHINE_NAME "${MACHINE_NAME}" +#define SOURCE_CODE_URL "${SOURCE_CODE_URL}" +#define DEFAULT_MACHINE_UUID "${DEFAULT_MACHINE_UUID}" +#define WEBSITE_URL "${WEBSITE_URL}" +EOF From 908229dbb3ccde3f92faa05e03f4aa13f015ea4e Mon Sep 17 00:00:00 2001 From: gralco Date: Fri, 15 Apr 2016 10:27:18 -0600 Subject: [PATCH 183/383] Introduce temp watch protection for the bed When setting the bed temp via M140/M190 if the thermistor does not read an increase of WATCH_BED_TEMP_INCREASE degrees by WATCH_BED_TEMP_PERIOD seconds then it will throw "Error:Heating failed, system stopped! Heater_ID: bed" and call the kill() function. Conflicts: Marlin/Configuration_adv.h --- Marlin/Configuration_adv.h | 12 +++++ .../Felix/Configuration_adv.h | 12 +++++ .../Hephestos/Configuration_adv.h | 12 +++++ .../Hephestos_2/Configuration_adv.h | 12 +++++ .../K8200/Configuration_adv.h | 12 +++++ .../RigidBot/Configuration_adv.h | 12 +++++ .../SCARA/Configuration_adv.h | 12 +++++ .../TAZ4/Configuration_adv.h | 12 +++++ .../WITBOX/Configuration_adv.h | 12 +++++ .../delta/biv2.5/Configuration_adv.h | 12 +++++ .../delta/generic/Configuration_adv.h | 12 +++++ .../delta/kossel_mini/Configuration_adv.h | 12 +++++ .../delta/kossel_pro/Configuration_adv.h | 12 +++++ .../delta/kossel_xl/Configuration_adv.h | 12 +++++ .../makibox/Configuration_adv.h | 12 +++++ .../tvrrug/Round2/Configuration_adv.h | 12 +++++ Marlin/temperature.cpp | 47 +++++++++++++++++-- Marlin/temperature.h | 15 ++++-- Marlin/ultralcd.cpp | 14 +++++- 19 files changed, 259 insertions(+), 9 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3b26237386..e1ee38b8c6 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index e8e2c1876c..b36553518d 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index ab8000a88b..cdff780430 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index be87d38ff4..60271fda19 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 429a1ad7b5..0404b807f1 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -93,6 +93,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 6985ddbe4f..5a248d5ad5 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 7af0110991..e00d191ca2 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index f96f20236b..856d15dc8c 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index ab8000a88b..cdff780430 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index da192eb81a..58e55dfd51 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 120 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index b2bf328571..ac4e0c6687 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index fa0da7cdd3..04d468c307 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index 6ace77f421..bbe9f33670 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -92,6 +92,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 045e4d658c..73cc3ed300 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 16f00bbf9b..5b57ea595f 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index c8ddbd603c..46343a9697 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -87,6 +87,18 @@ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * Whenever an M140 or M190 increases the target temperature the firmware will wait for the + * WATCH_BED_TEMP_PERIOD to expire, and if the temperature hasn't increased by WATCH_BED_TEMP_INCREASE + * degrees, the machine is halted, requiring a hard reset. This test restarts with any M140/M190, + * but only if the current temperature is far enough below the target for a reliable test. + * + * If you get too many "Heating failed" errors, increase WATCH_BED_TEMP_PERIOD and/or decrease + * WATCH_BED_TEMP_INCREASE. (WATCH_BED_TEMP_INCREASE should not be below 2.) + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 5713cb6937..7a57d1c415 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -200,11 +200,16 @@ static float analog2temp(int raw, uint8_t e); static float analog2tempBed(int raw); static void updateTemperaturesFromRawValues(); -#if ENABLED(THERMAL_PROTECTION_HOTENDS) +#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 int watch_target_temp[EXTRUDERS] = { 0 }; millis_t watch_heater_next_ms[EXTRUDERS] = { 0 }; #endif +#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + int watch_target_bed_temp = 0; + millis_t watch_bed_next_ms = 0; +#endif + #ifndef SOFT_PWM_SCALE #define SOFT_PWM_SCALE 0 #endif @@ -717,7 +722,7 @@ void manage_heater() { if (ct < max(HEATER_0_MINTEMP, 0.01)) min_temp_error(0); #endif - #if ENABLED(THERMAL_PROTECTION_HOTENDS) || DISABLED(PIDTEMPBED) || HAS_AUTO_FAN + #if (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0) || (ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0) || DISABLED(PIDTEMPBED) || HAS_AUTO_FAN millis_t ms = millis(); #endif @@ -734,7 +739,7 @@ void manage_heater() { soft_pwm[e] = current_temperature[e] > minttemp[e] && current_temperature[e] < maxttemp[e] ? (int)pid_output >> 1 : 0; // Check if the temperature is failing to increase - #if ENABLED(THERMAL_PROTECTION_HOTENDS) + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 // Is it time to check this extruder's heater? if (watch_heater_next_ms[e] && ELAPSED(ms, watch_heater_next_ms[e])) { @@ -751,6 +756,24 @@ void manage_heater() { #endif // THERMAL_PROTECTION_HOTENDS + // Check if the temperature is failing to increase + #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + + // Is it time to check the bed? + if (watch_bed_next_ms && ELAPSED(ms, watch_bed_next_ms)) { + // Has it failed to increase enough? + if (degBed() < watch_target_bed_temp) { + // Stop! + _temp_error(-1, PSTR(MSG_T_HEATING_FAILED), PSTR(MSG_HEATING_FAILED_LCD)); + } + else { + // Start again if the target is still far off + start_watching_bed(); + } + } + + #endif // THERMAL_PROTECTION_HOTENDS + #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) if (fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { _temp_error(0, PSTR(MSG_REDUNDANCY), PSTR(MSG_ERR_REDUNDANT_TEMP)); @@ -1160,7 +1183,7 @@ void tp_init() { #endif //BED_MAXTEMP } -#if ENABLED(THERMAL_PROTECTION_HOTENDS) +#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 /** * Start Heating Sanity Check for hotends that are below * their target temperature by a configurable margin. @@ -1176,6 +1199,22 @@ void tp_init() { } #endif +#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + /** + * Start Heating Sanity Check for hotends that are below + * their target temperature by a configurable margin. + * This is called when the temperature is set. (M140, M190) + */ + void start_watching_bed() { + if (degBed() < degTargetBed() - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1)) { + watch_target_bed_temp = degBed() + WATCH_BED_TEMP_INCREASE; + watch_bed_next_ms = millis() + (WATCH_BED_TEMP_PERIOD) * 1000UL; + } + else + watch_bed_next_ms = 0; + } +#endif + #if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED) void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) { diff --git a/Marlin/temperature.h b/Marlin/temperature.h index c49f2c46a5..b623b18df2 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -124,17 +124,26 @@ FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; } FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; } FORCE_INLINE float degTargetBed() { return target_temperature_bed; } -#if ENABLED(THERMAL_PROTECTION_HOTENDS) +#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 void start_watching_heater(int e = 0); #endif +#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + void start_watching_bed(); +#endif + FORCE_INLINE void setTargetHotend(const float& celsius, uint8_t extruder) { target_temperature[extruder] = celsius; - #if ENABLED(THERMAL_PROTECTION_HOTENDS) + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 start_watching_heater(extruder); #endif } -FORCE_INLINE void setTargetBed(const float& celsius) { target_temperature_bed = celsius; } +FORCE_INLINE void setTargetBed(const float& celsius) { + target_temperature_bed = celsius; + #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + start_watching_bed(); + #endif +} FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; } FORCE_INLINE bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; } diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 97a07f5232..c734157fa4 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -603,7 +603,7 @@ void lcd_set_home_offsets() { /** * Watch temperature callbacks */ -#if ENABLED(THERMAL_PROTECTION_HOTENDS) +#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 #if TEMP_SENSOR_0 != 0 void watch_temp_callback_E0() { start_watching_heater(0); } #endif @@ -631,6 +631,16 @@ void lcd_set_home_offsets() { #endif // EXTRUDERS > 3 #endif +#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + #if TEMP_SENSOR_BED != 0 + void watch_temp_callback_bed() { start_watching_bed(); } + #endif +#else + #if TEMP_SENSOR_BED != 0 + void watch_temp_callback_bed() {} + #endif +#endif + /** * * "Tune" submenu @@ -685,7 +695,7 @@ static void lcd_tune_menu() { // Bed: // #if TEMP_SENSOR_BED != 0 - MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15, watch_temp_callback_bed); #endif // From fbf69081b4614dd2e1ec460a1b34c93521b36bba Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 30 Apr 2016 19:39:22 -0700 Subject: [PATCH 184/383] Updated comment for THERMAL_PROTECTION_BED --- Marlin/Configuration_adv.h | 4 +--- Marlin/example_configurations/Felix/Configuration_adv.h | 4 +--- Marlin/example_configurations/Hephestos/Configuration_adv.h | 4 +--- Marlin/example_configurations/Hephestos_2/Configuration_adv.h | 4 +--- Marlin/example_configurations/K8200/Configuration_adv.h | 4 +--- Marlin/example_configurations/RigidBot/Configuration_adv.h | 4 +--- Marlin/example_configurations/SCARA/Configuration_adv.h | 4 +--- Marlin/example_configurations/TAZ4/Configuration_adv.h | 4 +--- Marlin/example_configurations/WITBOX/Configuration_adv.h | 4 +--- .../example_configurations/delta/biv2.5/Configuration_adv.h | 4 +--- .../example_configurations/delta/generic/Configuration_adv.h | 4 +--- .../delta/kossel_mini/Configuration_adv.h | 4 +--- .../delta/kossel_pro/Configuration_adv.h | 4 +--- .../delta/kossel_xl/Configuration_adv.h | 4 +--- Marlin/example_configurations/makibox/Configuration_adv.h | 4 +--- .../example_configurations/tvrrug/Round2/Configuration_adv.h | 4 +--- 16 files changed, 16 insertions(+), 48 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index e1ee38b8c6..3947e425fb 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index b36553518d..24e5d5ec64 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index cdff780430..69e11a8d14 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index 60271fda19..f641975f13 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 0404b807f1..25988f577e 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -86,9 +86,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 5a248d5ad5..bad72079b3 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index e00d191ca2..4eb58471fa 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 856d15dc8c..14fd394b54 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index cdff780430..69e11a8d14 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 58e55dfd51..25909cf375 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 120 // Seconds diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index ac4e0c6687..982bb572f9 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index 04d468c307..50041784c9 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index bbe9f33670..6a098190f7 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -85,9 +85,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 73cc3ed300..07bfa32d2a 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 5b57ea595f..f0699dfdb7 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index 46343a9697..3bc2fe2e0e 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -80,9 +80,7 @@ #endif /** - * Thermal Protection parameters for the bed - * are like the above for the hotends. - * WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now. + * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds From c6f1337f5c871843af7d2905b1eed0e217078cdb Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 17:59:52 -0700 Subject: [PATCH 185/383] NOOP macro for do-nothing macros --- Marlin/macros.h | 2 ++ Marlin/ultralcd.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Marlin/macros.h b/Marlin/macros.h index 5f53ee987c..69ecc6fdb8 100644 --- a/Marlin/macros.h +++ b/Marlin/macros.h @@ -60,4 +60,6 @@ #define PENDING(NOW,SOON) ((long)(NOW-(SOON))<0) #define ELAPSED(NOW,SOON) (!PENDING(NOW,SOON)) +#define NOOP do{}while(0) + #endif //__MACROS_H diff --git a/Marlin/ultralcd.h b/Marlin/ultralcd.h index 9665c2ce9c..e20f5cc332 100644 --- a/Marlin/ultralcd.h +++ b/Marlin/ultralcd.h @@ -156,8 +156,8 @@ FORCE_INLINE void lcd_reset_alert_level() {} FORCE_INLINE bool lcd_detected(void) { return true; } - #define LCD_MESSAGEPGM(x) do{}while(0) - #define LCD_ALERTMESSAGEPGM(x) do{}while(0) + #define LCD_MESSAGEPGM(x) NOOP + #define LCD_ALERTMESSAGEPGM(x) NOOP #endif //ULTRA_LCD From f508c54c6c67df588551408a7174145e19fb1dc8 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 18:04:45 -0700 Subject: [PATCH 186/383] Use #undef in AZTEEG_X3_PRO for RAMPS overrides --- Marlin/pins_AZTEEG_X3_PRO.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Marlin/pins_AZTEEG_X3_PRO.h b/Marlin/pins_AZTEEG_X3_PRO.h index a184ec2b97..a209d0b83b 100644 --- a/Marlin/pins_AZTEEG_X3_PRO.h +++ b/Marlin/pins_AZTEEG_X3_PRO.h @@ -28,6 +28,8 @@ #undef FAN_PIN #define FAN_PIN 6 //Part Cooling System + +#undef BEEPER_PIN #define BEEPER_PIN 33 #define CONTROLLERFAN_PIN 4 //Pin used for the fan to cool motherboard (-1 to disable) //Fans/Water Pump to cool the hotend cool side. @@ -55,7 +57,8 @@ #define Z_MIN_PIN 19 #define Z_MAX_PIN 18 #endif -// + + #if ENABLED(Z_MIN_PROBE_ENDSTOP) //#undef Z_MIN_PIN //#define Z_MIN_PIN 15 @@ -95,10 +98,11 @@ #define TC2 5 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro // -//These Servo pins are for when they are defined. Tested for usage with bed leveling -//on a Delta with 1 servo. Running through the Z servo endstop in code. -//Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins. +// These Servo pins are for when they are defined. Tested for usage with bed leveling +// on a Delta with 1 servo. Running through the Z servo endstop in code. +// Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins. // +#undef SERVO0_PIN #define SERVO0_PIN 47 //LCD Pins// From 5b7a6c217a0d19b0d959778613d5e3cc54bb132b Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 18:11:36 -0700 Subject: [PATCH 187/383] Include more fans in sensitive pins list --- Marlin/pins.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Marlin/pins.h b/Marlin/pins.h index eb37f87af9..a13df540c4 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -270,7 +270,8 @@ X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \ Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \ Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \ - PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, \ + PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, CONTROLLERFAN_PIN, \ + EXTRUDER_0_AUTO_FAN_PIN, EXTRUDER_1_AUTO_FAN_PIN, EXTRUDER_2_AUTO_FAN_PIN, EXTRUDER_3_AUTO_FAN_PIN, \ _E0_PINS _E1_PINS _E2_PINS _E3_PINS \ analogInputToDigitalPin(TEMP_BED_PIN) \ } From da47b83b3d16433f7980e16e1ac151fbe166b407 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 1 May 2016 18:04:04 -0700 Subject: [PATCH 188/383] Revert PR 3648 to fix SD printing The character 0x7E is common in 8.3 filenames. Maybe the last condition should be removed completely instead. --- Marlin/SdBaseFile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp index 4927ab2e27..42403ec578 100644 --- a/Marlin/SdBaseFile.cpp +++ b/Marlin/SdBaseFile.cpp @@ -405,7 +405,7 @@ bool SdBaseFile::make83Name(const char* str, uint8_t* name, const char** ptr) { uint8_t b; while ((b = pgm_read_byte(p++))) if (b == c) goto fail; // check size and only allow ASCII printable characters - if (i > n || c < 0X21 || c == 0X7E)goto fail; + if (i > n || c < 0x21 || c > 0x7E) goto fail; // only upper case allowed in 8.3 names - convert lower to upper name[i++] = (c < 'a' || c > 'z') ? (c) : (c + ('A' - 'a')); } From 2fa4bc344cefb202c4f5c72aeae24927eff3ca5c Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 2 May 2016 21:16:00 +0900 Subject: [PATCH 189/383] Some clean-up for example configuration files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some clean-up for example configuration files Follow-up and fix the PR #3253(Make the Autotune item(s) in the LCD menu optional): ・Update forgotten file(Felix/Configuration_DUAL.h) Follow-up the PR #3526(Configuration.h LCD & SDCard section rewrite): ・Add section of RigidBot Panel to RepRapWorld/Megatronics/Configuration.h Follow-up the PR #3576(Z Safe Homing for all): ・Adjust spacing Follow-up and fix the PR #3625(Print job statistics): ・Update forgotten file(Felix/Configuration_DUAL.h) ・Remove ambiguous character "f" in top of RigidBot/Configuration.h --- .../Felix/Configuration.h | 1 + .../Felix/Configuration_DUAL.h | 19 +++++++++++++++++-- .../Hephestos/Configuration.h | 1 + .../Hephestos_2/Configuration.h | 1 + .../K8200/Configuration.h | 1 + .../RepRapWorld/Megatronics/Configuration.h | 7 +++++++ .../RigidBot/Configuration.h | 3 ++- .../SCARA/Configuration.h | 1 + .../TAZ4/Configuration.h | 1 + .../WITBOX/Configuration.h | 1 + .../adafruit/ST7565/Configuration.h | 1 + .../delta/biv2.5/Configuration.h | 1 + .../delta/generic/Configuration.h | 1 + .../delta/kossel_mini/Configuration.h | 1 + .../delta/kossel_pro/Configuration.h | 1 + .../delta/kossel_xl/Configuration.h | 1 + .../makibox/Configuration.h | 1 + .../tvrrug/Round2/Configuration.h | 1 + 18 files changed, 41 insertions(+), 3 deletions(-) diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 1209c667ba..fb578e2eb3 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -654,6 +654,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 8d072a3920..de41d934f6 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -274,9 +274,10 @@ // so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED) #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current -//#define PID_BED_DEBUG // Sends debug data to the serial port. - #if ENABLED(PIDTEMPBED) + + //#define PID_BED_DEBUG // Sends debug data to the serial port. + // Felix Foil Heater #define DEFAULT_bedKp 103.37 #define DEFAULT_bedKi 2.79 @@ -651,6 +652,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** @@ -736,6 +738,19 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define ABS_PREHEAT_HPB_TEMP 100 #define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255 + +// +// Print Counter +// +// When enabled Marlin will keep track of some print statistical data such as: +// - Total print jobs +// - Total successful print jobs +// - Total failed print jobs +// - Total time printing +// +// This information can be viewed by the M78 command. +//#define PRINTCOUNTER + //============================================================================= //============================= LCD and SD support ============================ //============================================================================= diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index b9201e5b35..e94487c381 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -664,6 +664,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 6217383a8f..743a9ad8d1 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -666,6 +666,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index ddd3edd2a1..2c075779ce 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -689,6 +689,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 8010cd7e6a..8c2ab19f79 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -672,6 +672,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** @@ -974,6 +975,12 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define REPRAPWORLD_KEYPAD #define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL + // // BQ LCD Smart Controller shipped by // default with the BQ Hephestos 2 and Witbox 2. diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index c9dada3651..2bc6549c35 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -1,4 +1,4 @@ -f/** +/** * Marlin 3D Printer Firmware * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * @@ -666,6 +666,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 2acd5f3376..cb37777f1e 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -680,6 +680,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index 0a6e093b65..a3818c5134 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -693,6 +693,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index 81db598167..abafdc15fb 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -664,6 +664,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index c7d69f79fe..45694425f5 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -672,6 +672,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 0c77a11775..09222faf1f 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -798,6 +798,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index 6e76916364..f8729778c3 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -798,6 +798,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index c04781810f..27de34c3be 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -802,6 +802,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index c8093b161b..dc5ad2870b 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -789,6 +789,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 73e49c7e5c..1d6d4d732a 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -796,6 +796,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 416765b258..acb15b9320 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -675,6 +675,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 65fd6aacc5..d0949a4f65 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -662,6 +662,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif + // @section movement /** From a82cfcff2d1e3cbbb91fe03cd7090e49525f8cad Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 2 May 2016 22:04:26 +0900 Subject: [PATCH 190/383] Follow-up the PR #3631(Encapsulate Stepper, ... Follow-up the PR #3631(Encapsulate Stepper, Planner, Endstops in singleton classes) plan_bed_level_matrix -> planner.bed_level_matrix in multi extruders section of Marlin_main.cpp It probably fix the Issue #3658(plan_bed_level_matrix not declarate). movesplanned() -> planner.movesplanned() in ADVANCED_OK section of Marlin_main.cpp It fix compilation error when ADVANCED_OK is enabled --- Marlin/Marlin_main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 4100e629a5..1af47d50aa 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -6359,7 +6359,7 @@ inline void gcode_T(uint8_t tmp_extruder) { } #endif - offset_vec.apply_rotation(plan_bed_level_matrix.transpose(plan_bed_level_matrix)); + offset_vec.apply_rotation(planner.bed_level_matrix.transpose(planner.bed_level_matrix)); current_position[X_AXIS] += offset_vec.x; current_position[Y_AXIS] += offset_vec.y; @@ -7069,7 +7069,7 @@ void ok_to_send() { while (NUMERIC_SIGNED(*p)) SERIAL_ECHO(*p++); } - SERIAL_PROTOCOLPGM(" P"); SERIAL_PROTOCOL(int(BLOCK_BUFFER_SIZE - movesplanned() - 1)); + SERIAL_PROTOCOLPGM(" P"); SERIAL_PROTOCOL(int(BLOCK_BUFFER_SIZE - planner.movesplanned() - 1)); SERIAL_PROTOCOLPGM(" B"); SERIAL_PROTOCOL(BUFSIZE - commands_in_queue); #endif SERIAL_EOL; From aae2f502e05ebde1bd7f158f07c195f6fba15a63 Mon Sep 17 00:00:00 2001 From: Torsten Kurbad Date: Fri, 29 Apr 2016 11:19:29 +0200 Subject: [PATCH 191/383] Revisited German translation --- Marlin/language_de.h | 96 ++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/Marlin/language_de.h b/Marlin/language_de.h index a00b225803..9f94ef3210 100644 --- a/Marlin/language_de.h +++ b/Marlin/language_de.h @@ -35,37 +35,37 @@ //#define SIMULATE_ROMFONT #define DISPLAY_CHARSET_ISO10646_1 -#define WELCOME_MSG MACHINE_NAME " bereit." -#define MSG_SD_INSERTED "SDKarte erkannt." -#define MSG_SD_REMOVED "SDKarte entfernt." +#define WELCOME_MSG MACHINE_NAME " bereit" +#define MSG_SD_INSERTED "SD-Karte erkannt" +#define MSG_SD_REMOVED "SD-Karte entfernt" #define MSG_MAIN "Hauptmenü" #define MSG_AUTOSTART "Autostart" -#define MSG_DISABLE_STEPPERS "Motoren Aus" // M84 +#define MSG_DISABLE_STEPPERS "Motoren aus" // M84 #define MSG_AUTO_HOME "Home" // G28 #define MSG_LEVEL_BED_HOMING "Homing XYZ" #define MSG_LEVEL_BED_WAITING "Klick für Start" #define MSG_LEVEL_BED_DONE "Fertig" #define MSG_LEVEL_BED_CANCEL "Abbruch" -#define MSG_SET_HOME_OFFSETS "Setze Home hier" +#define MSG_SET_HOME_OFFSETS "Setze Homeoffsets" #define MSG_HOME_OFFSETS_APPLIED "Offsets aktiv" -#define MSG_SET_ORIGIN "Setze Null hier" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp +#define MSG_SET_ORIGIN "Setze Nullpunkt" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp #define MSG_PREHEAT_PLA "Vorwärmen PLA" #define MSG_PREHEAT_PLA_N "Vorwärmen PLA " #define MSG_PREHEAT_PLA_ALL "Vorw. PLA Alle" #define MSG_PREHEAT_PLA_BEDONLY "Vorw. PLA Bett" -#define MSG_PREHEAT_PLA_SETTINGS "Vorwärm. PLA Ein." +#define MSG_PREHEAT_PLA_SETTINGS "Vorw. PLA Einst." #define MSG_PREHEAT_ABS "Vorwärmen ABS" #define MSG_PREHEAT_ABS_N "Vorwärmen ABS " #define MSG_PREHEAT_ABS_ALL "Vorw. ABS Alle" #define MSG_PREHEAT_ABS_BEDONLY "Vorw. ABS Bett" -#define MSG_PREHEAT_ABS_SETTINGS "Vorwärm. ABS Ein." +#define MSG_PREHEAT_ABS_SETTINGS "Vorw. ABS Einst." #define MSG_COOLDOWN "Abkühlen" -#define MSG_SWITCH_PS_ON "Netzteil Ein" -#define MSG_SWITCH_PS_OFF "Netzteil Aus" +#define MSG_SWITCH_PS_ON "Netzteil ein" +#define MSG_SWITCH_PS_OFF "Netzteil aus" #define MSG_EXTRUDE "Extrudieren" #define MSG_RETRACT "Retract" #define MSG_MOVE_AXIS "Bewegen" -#define MSG_LEVEL_BED "Bett Korrektur" +#define MSG_LEVEL_BED "Bett nivellieren" #define MSG_MOVE_X "X" #define MSG_MOVE_Y "Y" #define MSG_MOVE_Z "Z" @@ -77,11 +77,11 @@ #define MSG_BED_Z "Bett Z" #define MSG_NOZZLE "Düse" #define MSG_BED "Bett" -#define MSG_FAN_SPEED "Lüftergeschw." -#define MSG_FLOW "Fluss" +#define MSG_FAN_SPEED "Lüfter" +#define MSG_FLOW "Durchfluss" #define MSG_CONTROL "Einstellungen" -#define MSG_MIN LCD_STR_THERMOMETER " Min" -#define MSG_MAX LCD_STR_THERMOMETER " Max" +#define MSG_MIN LCD_STR_THERMOMETER " min" +#define MSG_MAX LCD_STR_THERMOMETER " max" #define MSG_FACTOR LCD_STR_THERMOMETER " Faktor" #define MSG_AUTOTEMP "AutoTemp" #define MSG_ON "Ein" @@ -91,73 +91,73 @@ #define MSG_PID_D "PID D" #define MSG_PID_C "PID C" #define MSG_ACC "A" -#define MSG_VXY_JERK "V xy Ruck" -#define MSG_VZ_JERK "V z Ruck" -#define MSG_VE_JERK "V e Ruck" +#define MSG_VXY_JERK "V XY Jerk" +#define MSG_VZ_JERK "V Z Jerk" +#define MSG_VE_JERK "V E Jerk" #define MSG_VMAX "V max " // space by purpose #define MSG_X "X" #define MSG_Y "Y" #define MSG_Z "Z" #define MSG_E "E" #define MSG_VMIN "V min" -#define MSG_VTRAV_MIN "VTrav min" +#define MSG_VTRAV_MIN "V min Leerfahrt" #define MSG_AMAX "A max " // space by purpose -#define MSG_A_RETRACT "A Rückzug" -#define MSG_A_TRAVEL "A Reise" -#define MSG_XSTEPS "X steps/mm" -#define MSG_YSTEPS "Y steps/mm" -#define MSG_ZSTEPS "Z steps/mm" -#define MSG_ESTEPS "E steps/mm" +#define MSG_A_RETRACT "A Retract" +#define MSG_A_TRAVEL "A Leerfahrt" +#define MSG_XSTEPS "X Steps/mm" +#define MSG_YSTEPS "Y Steps/mm" +#define MSG_ZSTEPS "Z Steps/mm" +#define MSG_ESTEPS "E Steps/mm" #define MSG_TEMPERATURE "Temperatur" #define MSG_MOTION "Bewegung" #define MSG_VOLUMETRIC "Filament" #define MSG_VOLUMETRIC_ENABLED "E in mm³" -#define MSG_FILAMENT_DIAM "Filament D" +#define MSG_FILAMENT_DIAM "D Fil." #define MSG_CONTRAST "LCD Kontrast" #define MSG_STORE_EPROM "EPROM speichern" #define MSG_LOAD_EPROM "EPROM laden" -#define MSG_RESTORE_FAILSAFE "Standardkonfig." +#define MSG_RESTORE_FAILSAFE "Standardkonfiguration" #define MSG_REFRESH "Aktualisieren" #define MSG_WATCH "Info" #define MSG_PREPARE "Vorbereitung" #define MSG_TUNE "Justierung" #define MSG_PAUSE_PRINT "SD-Druck Pause" -#define MSG_RESUME_PRINT "SD-Druck Weiter" +#define MSG_RESUME_PRINT "SD-Druck Fortsetzung" #define MSG_STOP_PRINT "SD-Druck Abbruch" -#define MSG_CARD_MENU "SDKarte" -#define MSG_NO_CARD "Keine SDKarte" +#define MSG_CARD_MENU "SD-Karte" +#define MSG_NO_CARD "Keine SD-Karte" #define MSG_DWELL "Warten..." -#define MSG_USERWAIT "Warte auf Nutzer." -#define MSG_RESUMING "Druck geht weiter" +#define MSG_USERWAIT "Warte auf Nutzer" +#define MSG_RESUMING "Druckfortsetzung" #define MSG_PRINT_ABORTED "Druck abgebrochen" -#define MSG_NO_MOVE "Motoren Eingesch." -#define MSG_KILLED "BEENDET." -#define MSG_STOPPED "ANGEHALTEN." +#define MSG_NO_MOVE "Motoren eingeschaltet" +#define MSG_KILLED "KILLED" +#define MSG_STOPPED "ANGEHALTEN" #define MSG_CONTROL_RETRACT "Retract mm" #define MSG_CONTROL_RETRACT_SWAP "Wechs. Retract mm" #define MSG_CONTROL_RETRACTF "Retract V" -#define MSG_CONTROL_RETRACT_ZLIFT "Hop mm" +#define MSG_CONTROL_RETRACT_ZLIFT "Z-Hop mm" #define MSG_CONTROL_RETRACT_RECOVER "UnRet +mm" #define MSG_CONTROL_RETRACT_RECOVER_SWAP "Wechs. UnRet +mm" #define MSG_CONTROL_RETRACT_RECOVERF "UnRet V" -#define MSG_AUTORETRACT "AutoRetr." +#define MSG_AUTORETRACT "AutoRetract" #define MSG_FILAMENTCHANGE "Filament wechseln" -#define MSG_INIT_SDCARD "SDKarte erkennen"// Manually initialize the SD-card via user interface -#define MSG_CNG_SDCARD "SDKarte erkennen"// SD-card changed by user. For machines with no autocarddetect. Both send "M21" +#define MSG_INIT_SDCARD "SD-Karte erkennen" // Manually initialize the SD-card via user interface +#define MSG_CNG_SDCARD "SD-Karte getauscht" // SD-card changed by user. For machines with no autocarddetect. Both send "M21" #define MSG_ZPROBE_OUT "Sensor ausserhalb" -#define MSG_YX_UNHOMED "X/Y vor Z homen." +#define MSG_YX_UNHOMED "X/Y vor Z homen!" #define MSG_ZPROBE_ZOFFSET "Z Offset" #define MSG_BABYSTEP_X "Babystep X" #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" -#define MSG_ENDSTOP_ABORT "Endstop Abbr. Ein" -#define MSG_HEATING_FAILED_LCD "Heizen fehlgesch." -#define MSG_ERR_REDUNDANT_TEMP "Redund. Temperaturabw." -#define MSG_THERMAL_RUNAWAY "Temp. n. erreicht" -#define MSG_ERR_MAXTEMP "Temp. überschritten" -#define MSG_ERR_MINTEMP "Temp. unterschritten" -#define MSG_ERR_MAXTEMP_BED "Temp. Bett überschr." -#define MSG_ERR_MINTEMP_BED "Temp. Bett unterschr." +#define MSG_ENDSTOP_ABORT "Endstop-Abbr. ein" +#define MSG_HEATING_FAILED_LCD "HEIZEN FEHLGESCHLAGEN" +#define MSG_ERR_REDUNDANT_TEMP "REDUND. TEMPERATURABWEICHUNG" +#define MSG_THERMAL_RUNAWAY LCD_STR_THERMOMETER " NICHT ERREICHT" +#define MSG_ERR_MAXTEMP LCD_STR_THERMOMETER " ÜBERSCHRITTEN" +#define MSG_ERR_MINTEMP LCD_STR_THERMOMETER " UNTERSCHRITTEN" +#define MSG_ERR_MAXTEMP_BED "BETT " LCD_STR_THERMOMETER " ÜBERSCHRITTEN" +#define MSG_ERR_MINTEMP_BED "BETT " LCD_STR_THERMOMETER " UNTERSCHRITTEN" #define MSG_END_HOUR "Stunden" #define MSG_END_MINUTE "Minuten" #define MSG_HEATING "Aufheizen..." From 5ad7d263e9cace652f5fc4a7c3cc67685a322978 Mon Sep 17 00:00:00 2001 From: Blue-Marlin Date: Mon, 2 May 2016 15:58:04 +0200 Subject: [PATCH 192/383] 8.3-filenames second try Fix for #6 3593, #3648 this time excludung 'DEL' instead of accidently '~'. --- Marlin/SdBaseFile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp index 42403ec578..95765f9c18 100644 --- a/Marlin/SdBaseFile.cpp +++ b/Marlin/SdBaseFile.cpp @@ -405,7 +405,7 @@ bool SdBaseFile::make83Name(const char* str, uint8_t* name, const char** ptr) { uint8_t b; while ((b = pgm_read_byte(p++))) if (b == c) goto fail; // check size and only allow ASCII printable characters - if (i > n || c < 0x21 || c > 0x7E) goto fail; + if (i > n || c < 0x21 || c == 0x7F) goto fail; // only upper case allowed in 8.3 names - convert lower to upper name[i++] = (c < 'a' || c > 'z') ? (c) : (c + ('A' - 'a')); } From 85e732d5fdc948009c1fa56ca5d344242e2fbf52 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 2 May 2016 20:01:00 -0700 Subject: [PATCH 193/383] Fix BABYSTEPPING, add it to Travis test --- .travis.yml | 4 ++-- Marlin/temperature.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index fecb82a8d1..985a186fbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -105,10 +105,10 @@ script: #- opt_enable MAKRPANEL #- build_marlin # - # REPRAP_DISCOUNT_SMART_CONTROLLER + # REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, and BABYSTEPPING # - restore_configs - - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT + - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING - build_marlin # # G3D_PANEL diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 7fd25bc8a4..3f5b2d1c53 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1835,11 +1835,11 @@ ISR(TIMER0_COMPB_vect) { int curTodo = babystepsTodo[axis]; //get rid of volatile for performance if (curTodo > 0) { - babystep(axis,/*fwd*/true); + stepper.babystep(axis,/*fwd*/true); babystepsTodo[axis]--; //fewer to do next time } else if (curTodo < 0) { - babystep(axis,/*fwd*/false); + stepper.babystep(axis,/*fwd*/false); babystepsTodo[axis]++; //fewer to do next time } } From 7fd024304809cf584410816e4f9fa5e01fe3d8bf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 2 May 2016 20:11:27 -0700 Subject: [PATCH 194/383] Cleanup, debug strings in Planner::adjusted_position --- Marlin/planner.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 5e55c7dd88..9f8a4a3c7c 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -1025,18 +1025,18 @@ void Planner::check_axes_activity() { * On CORE machines XYZ is derived from ABC. */ vector_3 Planner::adjusted_position() { - vector_3 position = vector_3(stepper.get_axis_position_mm(X_AXIS), stepper.get_axis_position_mm(Y_AXIS), stepper.get_axis_position_mm(Z_AXIS)); + vector_3 pos = vector_3(stepper.get_axis_position_mm(X_AXIS), stepper.get_axis_position_mm(Y_AXIS), stepper.get_axis_position_mm(Z_AXIS)); - //position.debug("in Planner::position"); - //bed_level_matrix.debug("in Planner::position"); + //pos.debug("in Planner::adjusted_position"); + //bed_level_matrix.debug("in Planner::adjusted_position"); matrix_3x3 inverse = matrix_3x3::transpose(bed_level_matrix); //inverse.debug("in Planner::inverse"); - position.apply_rotation(inverse); - //position.debug("after rotation"); + pos.apply_rotation(inverse); + //pos.debug("after rotation"); - return position; + return pos; } #endif // AUTO_BED_LEVELING_FEATURE && !DELTA From 605808fe3782f59af392664f72300ca9c944bc43 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Tue, 3 May 2016 18:23:27 +0900 Subject: [PATCH 195/383] Additional follow-up the PR #3631(Encapsulate S... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Additional follow-up the PR #3631(Encapsulate Stepper, Planner, Endstops in singleton classes) ・Change from abort_on_endstop_hit to stepper.abort_on_endstop_hit in endstop.cpp, Marlin_main.cpp, and ultralcd.cpp ・Add include path to cardreader.h and temperature.h in endstop.cpp(for CardReader class and disable_all_heaters()) It fix compilation error when ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED and SDSUPPORT are enabled. ・Change from digipot_current() to stepper.digipot_current() in Marlin_main.cpp ・Change from digitalPotWrite() to stepper.digitalPotWrite() in Marlin_main.cpp It fix compilation errors when HAS_DIGIPOTSS is enabled. ・Change from microstep_mode() to stepper.microstep_mode() in Marlin_main.cpp ・Change attribute of microstep_mode() from private to public in stepper.h ・Change from microstep_readings() to stepper.microstep_readings() in Marlin_main.cpp ・Change from microstep_ms() to stepper.microstep_ms() in Marlin_main. It fix compilation errors when HAS_MICROSTEPS is enabled. --- Marlin/Marlin_main.cpp | 34 +++++++++++++++++----------------- Marlin/endstops.cpp | 4 +++- Marlin/stepper.h | 2 +- Marlin/ultralcd.cpp | 2 +- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 1af47d50aa..fc05f174ac 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5933,7 +5933,7 @@ inline void gcode_M503() { * M540: Set whether SD card print should abort on endstop hit (M540 S<0|1>) */ inline void gcode_M540() { - if (code_seen('S')) abort_on_endstop_hit = (code_value() > 0); + if (code_seen('S')) stepper.abort_on_endstop_hit = (code_value() > 0); } #endif // ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED @@ -6166,18 +6166,18 @@ inline void gcode_M503() { inline void gcode_M907() { #if HAS_DIGIPOTSS for (int i = 0; i < NUM_AXIS; i++) - if (code_seen(axis_codes[i])) digipot_current(i, code_value()); - if (code_seen('B')) digipot_current(4, code_value()); - if (code_seen('S')) for (int i = 0; i <= 4; i++) digipot_current(i, code_value()); + if (code_seen(axis_codes[i])) stepper.digipot_current(i, code_value()); + if (code_seen('B')) stepper.digipot_current(4, code_value()); + if (code_seen('S')) for (int i = 0; i <= 4; i++) stepper.digipot_current(i, code_value()); #endif #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY) - if (code_seen('X')) digipot_current(0, code_value()); + if (code_seen('X')) stepper.digipot_current(0, code_value()); #endif #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z) - if (code_seen('Z')) digipot_current(1, code_value()); + if (code_seen('Z')) stepper.digipot_current(1, code_value()); #endif #if PIN_EXISTS(MOTOR_CURRENT_PWM_E) - if (code_seen('E')) digipot_current(2, code_value()); + if (code_seen('E')) stepper.digipot_current(2, code_value()); #endif #if ENABLED(DIGIPOT_I2C) // this one uses actual amps in floating point @@ -6201,7 +6201,7 @@ inline void gcode_M907() { */ inline void gcode_M908() { #if HAS_DIGIPOTSS - digitalPotWrite( + stepper.digitalPotWrite( code_seen('P') ? code_value() : 0, code_seen('S') ? code_value() : 0 ); @@ -6228,10 +6228,10 @@ inline void gcode_M907() { // M350 Set microstepping mode. Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers. inline void gcode_M350() { - if (code_seen('S')) for (int i = 0; i <= 4; i++) microstep_mode(i, code_value()); - for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) microstep_mode(i, (uint8_t)code_value()); - if (code_seen('B')) microstep_mode(4, code_value()); - microstep_readings(); + if (code_seen('S')) for (int i = 0; i <= 4; i++) stepper.microstep_mode(i, code_value()); + for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) stepper.microstep_mode(i, (uint8_t)code_value()); + if (code_seen('B')) stepper.microstep_mode(4, code_value()); + stepper.microstep_readings(); } /** @@ -6241,15 +6241,15 @@ inline void gcode_M907() { inline void gcode_M351() { if (code_seen('S')) switch (code_value_short()) { case 1: - for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) microstep_ms(i, code_value(), -1); - if (code_seen('B')) microstep_ms(4, code_value(), -1); + for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) stepper.microstep_ms(i, code_value(), -1); + if (code_seen('B')) stepper.microstep_ms(4, code_value(), -1); break; case 2: - for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) microstep_ms(i, -1, code_value()); - if (code_seen('B')) microstep_ms(4, -1, code_value()); + for (int i = 0; i < NUM_AXIS; i++) if (code_seen(axis_codes[i])) stepper.microstep_ms(i, -1, code_value()); + if (code_seen('B')) stepper.microstep_ms(4, -1, code_value()); break; } - microstep_readings(); + stepper.microstep_readings(); } #endif // HAS_MICROSTEPS diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index ac37c5805f..8d0b0f979e 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -25,7 +25,9 @@ */ #include "Marlin.h" +#include "cardreader.h" #include "endstops.h" +#include "temperature.h" #include "stepper.h" #include "ultralcd.h" @@ -147,7 +149,7 @@ void Endstops::report_state() { hit_on_purpose(); #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) && ENABLED(SDSUPPORT) - if (abort_on_endstop_hit) { + if (stepper.abort_on_endstop_hit) { card.sdprinting = false; card.closefile(); stepper.quick_stop(); diff --git a/Marlin/stepper.h b/Marlin/stepper.h index 6f2e99dc99..99604c9e19 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -220,6 +220,7 @@ class Stepper { #endif void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2); void digipot_current(uint8_t driver, int current); + void microstep_mode(uint8_t driver, uint8_t stepping); void microstep_readings(); #if ENABLED(Z_DUAL_ENDSTOPS) @@ -324,7 +325,6 @@ class Stepper { } private: - void microstep_mode(uint8_t driver, uint8_t stepping); void digipot_init(); void microstep_init(); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index a524d15f87..cb93734460 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1674,7 +1674,7 @@ static void lcd_control_motion_menu() { #endif MENU_ITEM_EDIT(float51, MSG_ESTEPS, &planner.axis_steps_per_unit[E_AXIS], 5, 9999); #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) - MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &abort_on_endstop_hit); + MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &stepper.abort_on_endstop_hit); #endif #if ENABLED(SCARA) MENU_ITEM_EDIT(float74, MSG_XSCALE, &axis_scaling[X_AXIS], 0.5, 2); From 212b17d510324c8c9d981b9ce70e035f79bbb3e3 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Tue, 3 May 2016 21:35:02 +0900 Subject: [PATCH 196/383] Fix for PR #3526(Configuration.h LCD & SDCard s... Fix for PR #3526(Configuration.h LCD & SDCard section rewrite) It removes duplicated BQ_LCD_SMART_CONTROLLER. --- Marlin/Configuration.h | 6 ------ Marlin/example_configurations/Felix/Configuration.h | 6 ------ Marlin/example_configurations/Felix/Configuration_DUAL.h | 6 ------ Marlin/example_configurations/Hephestos/Configuration.h | 6 ------ Marlin/example_configurations/Hephestos_2/Configuration.h | 6 ------ Marlin/example_configurations/K8200/Configuration.h | 6 ------ .../RepRapWorld/Megatronics/Configuration.h | 6 ------ Marlin/example_configurations/RigidBot/Configuration.h | 6 ------ Marlin/example_configurations/SCARA/Configuration.h | 6 ------ Marlin/example_configurations/TAZ4/Configuration.h | 6 ------ Marlin/example_configurations/WITBOX/Configuration.h | 6 ------ .../example_configurations/adafruit/ST7565/Configuration.h | 6 ------ Marlin/example_configurations/delta/biv2.5/Configuration.h | 6 ------ Marlin/example_configurations/delta/generic/Configuration.h | 6 ------ .../delta/kossel_mini/Configuration.h | 6 ------ .../example_configurations/delta/kossel_pro/Configuration.h | 6 ------ .../example_configurations/delta/kossel_xl/Configuration.h | 6 ------ Marlin/example_configurations/makibox/Configuration.h | 6 ------ Marlin/example_configurations/tvrrug/Round2/Configuration.h | 6 ------ 19 files changed, 114 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index e0b9a2ff4c..fff9e7a70f 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -939,12 +939,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index fb578e2eb3..46ebbb84f1 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -922,12 +922,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index de41d934f6..ba1f9e8b35 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -920,12 +920,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index e94487c381..cefd2ad365 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -931,12 +931,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/Hephestos_2/Configuration.h b/Marlin/example_configurations/Hephestos_2/Configuration.h index 743a9ad8d1..6b368eee19 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration.h @@ -933,12 +933,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 2c075779ce..19fe289f6c 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -956,12 +956,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index 8c2ab19f79..048a41544b 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -939,12 +939,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/RigidBot/Configuration.h b/Marlin/example_configurations/RigidBot/Configuration.h index 2bc6549c35..dec8dc20a7 100644 --- a/Marlin/example_configurations/RigidBot/Configuration.h +++ b/Marlin/example_configurations/RigidBot/Configuration.h @@ -934,12 +934,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index cb37777f1e..7f7f8ac73f 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -947,12 +947,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/TAZ4/Configuration.h b/Marlin/example_configurations/TAZ4/Configuration.h index a3818c5134..c387bb6157 100644 --- a/Marlin/example_configurations/TAZ4/Configuration.h +++ b/Marlin/example_configurations/TAZ4/Configuration.h @@ -960,12 +960,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index abafdc15fb..9d77646ad8 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -931,12 +931,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // #define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 45694425f5..d95866ca73 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -939,12 +939,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration.h b/Marlin/example_configurations/delta/biv2.5/Configuration.h index 09222faf1f..55b5a20a3c 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration.h @@ -1068,12 +1068,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index f8729778c3..993a65d08d 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -1068,12 +1068,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h index 27de34c3be..8ca3e97be2 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h @@ -1072,12 +1072,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration.h b/Marlin/example_configurations/delta/kossel_pro/Configuration.h index dc5ad2870b..86dde3ab3b 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration.h @@ -1065,12 +1065,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration.h b/Marlin/example_configurations/delta/kossel_xl/Configuration.h index 1d6d4d732a..556f3cc21e 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration.h @@ -1073,12 +1073,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // #define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index acb15b9320..8151dedfb8 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -942,12 +942,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index d0949a4f65..8ccdb1eaa6 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -933,12 +933,6 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo // //#define REPRAP_DISCOUNT_SMART_CONTROLLER -// -// BQ LCD Smart Controller shipped by -// default with the BQ Hephestos 2 and Witbox 2. -// -//#define BQ_LCD_SMART_CONTROLLER - // // GADGETS3D G3D LCD/SD Controller // http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel From ddafb859e283592f2157bc00d43db6080fd85fb9 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 3 May 2016 12:50:49 -0700 Subject: [PATCH 197/383] Use directional buttons when defined --- Marlin/Conditionals.h | 2 ++ Marlin/ultralcd.cpp | 56 +++++++++++++++++++++++++++++-------------- 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 799a419080..3a30500b36 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -46,6 +46,8 @@ #define CONFIGURATION_LCD + #define LCD_HAS_DIRECTIONAL_BUTTONS (BUTTON_EXISTS(UP) || BUTTON_EXISTS(DWN) || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT)) + #if ENABLED(MAKRPANEL) #define DOGLCD #define DEFAULT_LCD_CONTRAST 17 diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index a524d15f87..4fd5be6e96 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -2042,10 +2042,16 @@ void lcd_init() { WRITE(SHIFT_LD, HIGH); #endif - #ifdef RIGIDBOT_PANEL + #if BUTTON_EXISTS(UP) SET_INPUT(BTN_UP); + #endif + #if BUTTON_EXISTS(DWN) SET_INPUT(BTN_DWN); + #endif + #if BUTTON_EXISTS(LFT) SET_INPUT(BTN_LFT); + #endif + #if BUTTON_EXISTS(RT) SET_INPUT(BTN_RT); #endif @@ -2425,32 +2431,46 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; } #if BUTTON_EXISTS(EN2) if (BUTTON_PRESSED(EN2)) newbutton |= EN_B; #endif - #if ENABLED(RIGIDBOT_PANEL) || BUTTON_EXISTS(ENC) + #if LCD_HAS_DIRECTIONAL_BUTTONS || BUTTON_EXISTS(ENC) millis_t now = millis(); #endif - #if ENABLED(RIGIDBOT_PANEL) + + #if LCD_HAS_DIRECTIONAL_BUTTONS if (ELAPSED(now, next_button_update_ms)) { - if (BUTTON_PRESSED(UP)) { - encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM); - next_button_update_ms = now + 300; - } - else if (BUTTON_PRESSED(DWN)) { - encoderDiff = ENCODER_STEPS_PER_MENU_ITEM; - next_button_update_ms = now + 300; - } - else if (BUTTON_PRESSED(LFT)) { - encoderDiff = -(ENCODER_PULSES_PER_STEP); - next_button_update_ms = now + 300; - } - else if (BUTTON_PRESSED(RT)) { - encoderDiff = ENCODER_PULSES_PER_STEP; - next_button_update_ms = now + 300; + if (false) { + // for the else-ifs below } + #if BUTTON_EXISTS(UP) + else if (BUTTON_PRESSED(UP)) { + encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM); + next_button_update_ms = now + 300; + } + #endif + #if BUTTON_EXISTS(DWN) + else if (BUTTON_PRESSED(DWN)) { + encoderDiff = ENCODER_STEPS_PER_MENU_ITEM; + next_button_update_ms = now + 300; + } + #endif + #if BUTTON_EXISTS(LFT) + else if (BUTTON_PRESSED(LFT)) { + encoderDiff = -(ENCODER_PULSES_PER_STEP); + next_button_update_ms = now + 300; + } + #endif + #if BUTTON_EXISTS(RT) + else if (BUTTON_PRESSED(RT)) { + encoderDiff = ENCODER_PULSES_PER_STEP; + next_button_update_ms = now + 300; + } + #endif } #endif + #if BUTTON_EXISTS(ENC) if (ELAPSED(now, next_button_update_ms) && BUTTON_PRESSED(ENC)) newbutton |= EN_C; #endif + buttons = newbutton; #if ENABLED(LCD_HAS_SLOW_BUTTONS) buttons |= slow_buttons; From 6398d497b364cd717ebf07e5cb678be54b9bb80a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 3 May 2016 17:00:28 -0700 Subject: [PATCH 198/383] Ultimate followup to Stepper/Planner patch - Search all symbols and apply prefixes where needed - Encapsulate some private methods - Inline some setters - Make `microstep_mode` a public method --- Marlin/planner.cpp | 20 ++++-------------- Marlin/planner.h | 51 ++++++++++++++++------------------------------ Marlin/stepper.cpp | 6 ------ Marlin/stepper.h | 9 ++++---- 4 files changed, 27 insertions(+), 59 deletions(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 9f8a4a3c7c..4fe8dee9fa 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -21,24 +21,12 @@ */ /** - * planner.cpp - Buffer movement commands and manage the acceleration profile plan - * Part of Grbl + * planner.cpp * - * Copyright (c) 2009-2011 Simen Svale Skogsrud - * - * Grbl is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Grbl is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Grbl. If not, see . + * Buffer movement commands and manage the acceleration profile plan * + * Derived from Grbl + * Copyright (c) 2009-2011 Simen Svale Skogsrud * * The ring buffer implementation gleaned from the wiring_serial library by David A. Mellis. * diff --git a/Marlin/planner.h b/Marlin/planner.h index f4e126c0bd..e1dc8941af 100644 --- a/Marlin/planner.h +++ b/Marlin/planner.h @@ -21,27 +21,13 @@ */ /** - planner.h - buffers movement commands and manages the acceleration profile plan - Part of Grbl - - Copyright (c) 2009-2011 Simen Svale Skogsrud - - Grbl is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Grbl is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Grbl. If not, see . -*/ - -// This module is to be considered a sub-module of stepper.c. Please don't include -// this file from any other module. + * planner.h + * + * Buffer movement commands and manage the acceleration profile plan + * + * Derived from Grbl + * Copyright (c) 2009-2011 Simen Svale Skogsrud + */ #ifndef PLANNER_H #define PLANNER_H @@ -268,6 +254,17 @@ class Planner { return NULL; } + #if ENABLED(AUTOTEMP) + float autotemp_max = 250; + float autotemp_min = 210; + float autotemp_factor = 0.1; + bool autotemp_enabled = false; + void getHighESpeed(); + void autotemp_M109(); + #endif + + private: + /** * Get the index of the next / previous block in the ring buffer */ @@ -305,18 +302,6 @@ class Planner { return sqrt(target_velocity * target_velocity - 2 * acceleration * distance); } - - #if ENABLED(AUTOTEMP) - float autotemp_max = 250; - float autotemp_min = 210; - float autotemp_factor = 0.1; - bool autotemp_enabled = false; - void getHighESpeed(); - void autotemp_M109(); - #endif - - private: - void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor); void reverse_pass_kernel(block_t* previous, block_t* current, block_t* next); diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index e282801373..bcd33d92da 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -979,9 +979,3 @@ void Stepper::microstep_readings() { SERIAL_PROTOCOLLN(digitalRead(E1_MS2_PIN)); #endif } - -#if ENABLED(Z_DUAL_ENDSTOPS) - void Stepper::set_homing_flag(bool state) { performing_homing = state; } - void Stepper::set_z_lock(bool state) { locked_z_motor = state; } - void Stepper::set_z2_lock(bool state) { locked_z2_motor = state; } -#endif diff --git a/Marlin/stepper.h b/Marlin/stepper.h index 99604c9e19..d1747eed0d 100644 --- a/Marlin/stepper.h +++ b/Marlin/stepper.h @@ -224,9 +224,9 @@ class Stepper { void microstep_readings(); #if ENABLED(Z_DUAL_ENDSTOPS) - void set_homing_flag(bool state); - void set_z_lock(bool state); - void set_z2_lock(bool state); + FORCE_INLINE void set_homing_flag(bool state) { performing_homing = state; } + FORCE_INLINE void set_z_lock(bool state) { locked_z_motor = state; } + FORCE_INLINE void set_z2_lock(bool state) { locked_z2_motor = state; } #endif #if ENABLED(BABYSTEPPING) @@ -249,6 +249,8 @@ class Stepper { return endstops_trigsteps[axis] / planner.axis_steps_per_unit[axis]; } + private: + FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) { unsigned short timer; @@ -324,7 +326,6 @@ class Stepper { // SERIAL_ECHOLN(current_block->final_advance/256.0); } - private: void digipot_init(); void microstep_init(); From 23567a1d8b1d96dba4653bec0aa603c431ef36de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Thu, 5 May 2016 00:18:32 +0100 Subject: [PATCH 199/383] Moved DELTA radius/rod default trimmer values to Conditionals.h --- Marlin/Conditionals.h | 24 ++++++++++++++++++++++++ Marlin/Marlin.h | 18 ------------------ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 3a30500b36..605a8de2e6 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -751,5 +751,29 @@ #define HAS_Z_MIN_PROBE #endif + /** + * Delta radius/rod trimmers + */ + #if ENABLED(DELTA) + #ifndef DELTA_RADIUS_TRIM_TOWER_1 + #define DELTA_RADIUS_TRIM_TOWER_1 0.0 + #endif + #ifndef DELTA_RADIUS_TRIM_TOWER_2 + #define DELTA_RADIUS_TRIM_TOWER_2 0.0 + #endif + #ifndef DELTA_RADIUS_TRIM_TOWER_3 + #define DELTA_RADIUS_TRIM_TOWER_3 0.0 + #endif + #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_1 + #define DELTA_DIAGONAL_ROD_TRIM_TOWER_1 0.0 + #endif + #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_2 + #define DELTA_DIAGONAL_ROD_TRIM_TOWER_2 0.0 + #endif + #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_3 + #define DELTA_DIAGONAL_ROD_TRIM_TOWER_3 0.0 + #endif + #endif + #endif //CONFIGURATION_LCD #endif //CONDITIONALS_H diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index f6f488df84..b8b90b7729 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -290,24 +290,6 @@ extern long code_value_long(); extern int16_t code_value_short(); #if ENABLED(DELTA) - #ifndef DELTA_RADIUS_TRIM_TOWER_1 - #define DELTA_RADIUS_TRIM_TOWER_1 0.0 - #endif - #ifndef DELTA_RADIUS_TRIM_TOWER_2 - #define DELTA_RADIUS_TRIM_TOWER_2 0.0 - #endif - #ifndef DELTA_RADIUS_TRIM_TOWER_3 - #define DELTA_RADIUS_TRIM_TOWER_3 0.0 - #endif - #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_1 - #define DELTA_DIAGONAL_ROD_TRIM_TOWER_1 0.0 - #endif - #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_2 - #define DELTA_DIAGONAL_ROD_TRIM_TOWER_2 0.0 - #endif - #ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER_3 - #define DELTA_DIAGONAL_ROD_TRIM_TOWER_3 0.0 - #endif extern float delta[3]; extern float endstop_adj[3]; // axis[n].endstop_adj extern float delta_radius; From 13f85a2b50625148f4fd37e51ff874b075b10a98 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 4 May 2016 16:33:57 -0700 Subject: [PATCH 200/383] Can't use the ENABLED macro as a boolean --- Marlin/endstops.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index 8d0b0f979e..d73f7d0fa7 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -37,7 +37,13 @@ Endstops endstops; Endstops::Endstops() { - enable_globally(ENABLED(ENDSTOPS_ONLY_FOR_HOMING)); + enable_globally( + #if ENABLED(ENDSTOPS_ONLY_FOR_HOMING) + true + #else + false + #endif + ); enable(true); #if ENABLED(HAS_Z_MIN_PROBE) enable_z_probe(false); From 142bd3f3e79b00bd39d0ffa6f3ec988d85a73938 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 18:16:28 -0700 Subject: [PATCH 201/383] Disable THERMAL_PROTECTION_BED with no sensor --- Marlin/Conditionals.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 3a30500b36..2f010debd2 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -675,6 +675,8 @@ #define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675)) + #define HAS_THERMALLY_PROTECTED_BED (HAS_TEMP_BED && HAS_HEATER_BED && ENABLED(THERMAL_PROTECTION_BED)) + /** * Helper Macros for heaters and extruder fan */ From 084f6b5b448cb9f67297dca40541127ea260f552 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 28 Apr 2016 18:18:13 -0700 Subject: [PATCH 202/383] Temperature singleton class --- Marlin/Marlin.h | 4 - Marlin/Marlin_main.cpp | 126 +++-- Marlin/cardreader.cpp | 2 +- Marlin/configuration_store.cpp | 58 ++- Marlin/dogm_lcd_implementation.h | 6 +- Marlin/endstops.cpp | 2 +- Marlin/planner.cpp | 19 +- Marlin/temperature.cpp | 382 ++++----------- Marlin/temperature.h | 435 ++++++++++++------ Marlin/ultralcd.cpp | 70 +-- .../ultralcd_implementation_hitachi_HD44780.h | 20 +- 11 files changed, 538 insertions(+), 586 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index f6f488df84..4714601fa1 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -340,10 +340,6 @@ extern int16_t code_value_short(); extern uint8_t host_keepalive_interval; #endif -#if ENABLED(PREVENT_DANGEROUS_EXTRUDE) - extern float extrude_min_temp; -#endif - #if FAN_COUNT > 0 extern int fanSpeeds[FAN_COUNT]; #endif diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index fc05f174ac..0d2d9f5172 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -544,10 +544,6 @@ static void report_current_position(); } #endif -#if ENABLED(PREVENT_DANGEROUS_EXTRUDE) - float extrude_min_temp = EXTRUDE_MINTEMP; -#endif - #if ENABLED(SDSUPPORT) #include "SdFatUtil.h" int freeMemory() { return SdFatUtil::FreeRam(); } @@ -816,7 +812,7 @@ void setup() { lcd_init(); - tp_init(); // Initialize temperature loop + thermalManager.init(); // Initialize temperature loop #if ENABLED(DELTA) || ENABLED(SCARA) // Vital to init kinematic equivalent for X0 Y0 Z0 @@ -3839,7 +3835,7 @@ inline void gcode_M31() { SERIAL_ECHO_START; SERIAL_ECHOLN(time); lcd_setstatus(time); - autotempShutdown(); + thermalManager.autotempShutdown(); } #if ENABLED(SDSUPPORT) @@ -4274,10 +4270,10 @@ inline void gcode_M104() { if (code_seen('S')) { float temp = code_value(); - setTargetHotend(temp, target_extruder); + thermalManager.setTargetHotend(temp, target_extruder); #if ENABLED(DUAL_X_CARRIAGE) if (dual_x_carriage_mode == DXC_DUPLICATION_MODE && target_extruder == 0) - setTargetHotend1(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset); + thermalManager.setTargetHotend(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset, 1); #endif /** @@ -4296,7 +4292,7 @@ inline void gcode_M104() { */ else print_job_timer.start(); - if (temp > degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); + if (temp > thermalManager.degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); } } @@ -4305,41 +4301,41 @@ inline void gcode_M104() { void print_heaterstates() { #if HAS_TEMP_HOTEND SERIAL_PROTOCOLPGM(" T:"); - SERIAL_PROTOCOL_F(degHotend(target_extruder), 1); + SERIAL_PROTOCOL_F(thermalManager.degHotend(target_extruder), 1); SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL_F(degTargetHotend(target_extruder), 1); + SERIAL_PROTOCOL_F(thermalManager.degTargetHotend(target_extruder), 1); #endif #if HAS_TEMP_BED SERIAL_PROTOCOLPGM(" B:"); - SERIAL_PROTOCOL_F(degBed(), 1); + SERIAL_PROTOCOL_F(thermalManager.degBed(), 1); SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL_F(degTargetBed(), 1); + SERIAL_PROTOCOL_F(thermalManager.degTargetBed(), 1); #endif #if EXTRUDERS > 1 for (int8_t e = 0; e < EXTRUDERS; ++e) { SERIAL_PROTOCOLPGM(" T"); SERIAL_PROTOCOL(e); SERIAL_PROTOCOLCHAR(':'); - SERIAL_PROTOCOL_F(degHotend(e), 1); + SERIAL_PROTOCOL_F(thermalManager.degHotend(e), 1); SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL_F(degTargetHotend(e), 1); + SERIAL_PROTOCOL_F(thermalManager.degTargetHotend(e), 1); } #endif #if HAS_TEMP_BED SERIAL_PROTOCOLPGM(" B@:"); #ifdef BED_WATTS - SERIAL_PROTOCOL(((BED_WATTS) * getHeaterPower(-1)) / 127); + SERIAL_PROTOCOL(((BED_WATTS) * thermalManager.getHeaterPower(-1)) / 127); SERIAL_PROTOCOLCHAR('W'); #else - SERIAL_PROTOCOL(getHeaterPower(-1)); + SERIAL_PROTOCOL(thermalManager.getHeaterPower(-1)); #endif #endif SERIAL_PROTOCOLPGM(" @:"); #ifdef EXTRUDER_WATTS - SERIAL_PROTOCOL(((EXTRUDER_WATTS) * getHeaterPower(target_extruder)) / 127); + SERIAL_PROTOCOL(((EXTRUDER_WATTS) * thermalManager.getHeaterPower(target_extruder)) / 127); SERIAL_PROTOCOLCHAR('W'); #else - SERIAL_PROTOCOL(getHeaterPower(target_extruder)); + SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder)); #endif #if EXTRUDERS > 1 for (int8_t e = 0; e < EXTRUDERS; ++e) { @@ -4347,27 +4343,27 @@ inline void gcode_M104() { SERIAL_PROTOCOL(e); SERIAL_PROTOCOLCHAR(':'); #ifdef EXTRUDER_WATTS - SERIAL_PROTOCOL(((EXTRUDER_WATTS) * getHeaterPower(e)) / 127); + SERIAL_PROTOCOL(((EXTRUDER_WATTS) * thermalManager.getHeaterPower(e)) / 127); SERIAL_PROTOCOLCHAR('W'); #else - SERIAL_PROTOCOL(getHeaterPower(e)); + SERIAL_PROTOCOL(thermalManager.getHeaterPower(e)); #endif } #endif #if ENABLED(SHOW_TEMP_ADC_VALUES) #if HAS_TEMP_BED SERIAL_PROTOCOLPGM(" ADC B:"); - SERIAL_PROTOCOL_F(degBed(), 1); + SERIAL_PROTOCOL_F(thermalManager.degBed(), 1); SERIAL_PROTOCOLPGM("C->"); - SERIAL_PROTOCOL_F(rawBedTemp() / OVERSAMPLENR, 0); + SERIAL_PROTOCOL_F(thermalManager.rawBedTemp() / OVERSAMPLENR, 0); #endif for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) { SERIAL_PROTOCOLPGM(" T"); SERIAL_PROTOCOL(cur_extruder); SERIAL_PROTOCOLCHAR(':'); - SERIAL_PROTOCOL_F(degHotend(cur_extruder), 1); + SERIAL_PROTOCOL_F(thermalManager.degHotend(cur_extruder), 1); SERIAL_PROTOCOLPGM("C->"); - SERIAL_PROTOCOL_F(rawHotendTemp(cur_extruder) / OVERSAMPLENR, 0); + SERIAL_PROTOCOL_F(thermalManager.rawHotendTemp(cur_extruder) / OVERSAMPLENR, 0); } #endif } @@ -4427,10 +4423,10 @@ inline void gcode_M109() { bool no_wait_for_cooling = code_seen('S'); if (no_wait_for_cooling || code_seen('R')) { float temp = code_value(); - setTargetHotend(temp, target_extruder); + thermalManager.setTargetHotend(temp, target_extruder); #if ENABLED(DUAL_X_CARRIAGE) if (dual_x_carriage_mode == DXC_DUPLICATION_MODE && target_extruder == 0) - setTargetHotend1(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset); + thermalManager.setTargetHotend(temp == 0.0 ? 0.0 : temp + duplicate_extruder_temp_offset, 1); #endif /** @@ -4449,7 +4445,7 @@ inline void gcode_M109() { */ else print_job_timer.start(); - if (temp > degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); + if (temp > thermalManager.degHotend(target_extruder)) LCD_MESSAGEPGM(MSG_HEATING); } #if ENABLED(AUTOTEMP) @@ -4462,7 +4458,7 @@ inline void gcode_M109() { #define TEMP_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target - #define TEMP_CONDITIONS (wants_to_cool ? isCoolingHotend(target_extruder) : isHeatingHotend(target_extruder)) + #define TEMP_CONDITIONS (wants_to_cool ? thermalManager.isCoolingHotend(target_extruder) : thermalManager.isHeatingHotend(target_extruder)) #endif //TEMP_RESIDENCY_TIME > 0 float theTarget = -1; @@ -4473,7 +4469,6 @@ inline void gcode_M109() { KEEPALIVE_STATE(NOT_BUSY); do { - now = millis(); if (ELAPSED(now, next_temp_ms)) { //Print temp & remaining time every 1s while waiting next_temp_ms = now + 1000UL; @@ -4495,9 +4490,9 @@ inline void gcode_M109() { } // Target temperature might be changed during the loop - if (theTarget != degTargetHotend(target_extruder)) { - theTarget = degTargetHotend(target_extruder); - wants_to_cool = isCoolingHotend(target_extruder); + if (theTarget != thermalManager.degTargetHotend(target_extruder)) { + wants_to_cool = thermalManager.isCoolingHotend(target_extruder); + theTarget = thermalManager.degTargetHotend(target_extruder); // Exit if S, continue if S, R, or R if (no_wait_for_cooling && wants_to_cool) break; @@ -4512,7 +4507,7 @@ inline void gcode_M109() { #if TEMP_RESIDENCY_TIME > 0 - float temp_diff = fabs(theTarget - degHotend(target_extruder)); + float temp_diff = fabs(theTarget - thermalManager.degHotend(target_extruder)); if (!residency_start_ms) { // Start the TEMP_RESIDENCY_TIME timer when we reach target temp for the first time. @@ -4542,7 +4537,7 @@ inline void gcode_M109() { LCD_MESSAGEPGM(MSG_BED_HEATING); bool no_wait_for_cooling = code_seen('S'); - if (no_wait_for_cooling || code_seen('R')) setTargetBed(code_value()); + if (no_wait_for_cooling || code_seen('R')) thermalManager.setTargetBed(code_value()); #if TEMP_BED_RESIDENCY_TIME > 0 millis_t residency_start_ms = 0; @@ -4550,7 +4545,7 @@ inline void gcode_M109() { #define TEMP_BED_CONDITIONS (!residency_start_ms || PENDING(now, residency_start_ms + (TEMP_BED_RESIDENCY_TIME) * 1000UL)) #else // Loop until the temperature is very close target - #define TEMP_BED_CONDITIONS (wants_to_cool ? isCoolingBed() : isHeatingBed()) + #define TEMP_BED_CONDITIONS (wants_to_cool ? thermalManager.isCoolingBed() : thermalManager.isHeatingBed()) #endif //TEMP_BED_RESIDENCY_TIME > 0 float theTarget = -1; @@ -4580,16 +4575,16 @@ inline void gcode_M109() { } // Target temperature might be changed during the loop - if (theTarget != degTargetBed()) { - theTarget = degTargetBed(); - wants_to_cool = isCoolingBed(); + if (theTarget != thermalManager.degTargetBed()) { + wants_to_cool = thermalManager.isCoolingBed(); + theTarget = thermalManager.degTargetBed(); // Exit if S, continue if S, R, or R if (no_wait_for_cooling && wants_to_cool) break; // Prevent a wait-forever situation if R is misused i.e. M190 R0 - // Simply don't wait for cooling below 30C - if (wants_to_cool && theTarget < (EXTRUDE_MINTEMP)/2) break; + // Simply don't wait to cool a bed under 30C + if (wants_to_cool && theTarget < 30) break; } idle(); @@ -4597,7 +4592,7 @@ inline void gcode_M109() { #if TEMP_BED_RESIDENCY_TIME > 0 - float temp_diff = fabs(degBed() - degTargetBed()); + float temp_diff = fabs(theTarget - thermalManager.degBed()); if (!residency_start_ms) { // Start the TEMP_BED_RESIDENCY_TIME timer when we reach target temp for the first time. @@ -4720,7 +4715,7 @@ inline void gcode_M112() { kill(PSTR(MSG_KILLED)); } */ inline void gcode_M140() { if (DEBUGGING(DRYRUN)) return; - if (code_seen('S')) setTargetBed(code_value()); + if (code_seen('S')) thermalManager.setTargetBed(code_value()); } #if ENABLED(ULTIPANEL) @@ -4811,7 +4806,7 @@ inline void gcode_M140() { * This code should ALWAYS be available for EMERGENCY SHUTDOWN! */ inline void gcode_M81() { - disable_all_heaters(); + thermalManager.disable_all_heaters(); stepper.finish_and_disable(); #if FAN_COUNT > 0 #if FAN_COUNT > 1 @@ -5469,7 +5464,7 @@ inline void gcode_M226() { NOMORE(lpq_len, LPQ_MAX_LEN); #endif - updatePID(); + thermalManager.updatePID(); SERIAL_ECHO_START; #if ENABLED(PID_PARAMS_PER_EXTRUDER) SERIAL_ECHO(" e:"); // specify extruder in serial output @@ -5499,18 +5494,19 @@ inline void gcode_M226() { #if ENABLED(PIDTEMPBED) inline void gcode_M304() { - if (code_seen('P')) bedKp = code_value(); - if (code_seen('I')) bedKi = scalePID_i(code_value()); - if (code_seen('D')) bedKd = scalePID_d(code_value()); + if (code_seen('P')) thermalManager.bedKp = code_value(); + if (code_seen('I')) thermalManager.bedKi = scalePID_i(code_value()); + if (code_seen('D')) thermalManager.bedKd = scalePID_d(code_value()); + + thermalManager.updatePID(); - updatePID(); SERIAL_ECHO_START; SERIAL_ECHO(" p:"); - SERIAL_ECHO(bedKp); + SERIAL_ECHO(thermalManager.bedKp); SERIAL_ECHO(" i:"); - SERIAL_ECHO(unscalePID_i(bedKi)); + SERIAL_ECHO(unscalePID_i(thermalManager.bedKi)); SERIAL_ECHO(" d:"); - SERIAL_ECHOLN(unscalePID_d(bedKd)); + SERIAL_ECHOLN(unscalePID_d(thermalManager.bedKd)); } #endif // PIDTEMPBED @@ -5567,13 +5563,11 @@ inline void gcode_M226() { #if ENABLED(PREVENT_DANGEROUS_EXTRUDE) - void set_extrude_min_temp(float temp) { extrude_min_temp = temp; } - /** * M302: Allow cold extrudes, or set the minimum extrude S. */ inline void gcode_M302() { - set_extrude_min_temp(code_seen('S') ? code_value() : 0); + thermalManager.extrude_min_temp = code_seen('S') ? code_value() : 0; } #endif // PREVENT_DANGEROUS_EXTRUDE @@ -5599,7 +5593,7 @@ inline void gcode_M303() { KEEPALIVE_STATE(NOT_BUSY); // don't send "busy: processing" messages during autotune output - PID_autotune(temp, e, c, u); + thermalManager.PID_autotune(temp, e, c, u); KEEPALIVE_STATE(IN_HANDLER); #else @@ -5781,7 +5775,7 @@ inline void gcode_M400() { stepper.synchronize(); } NOMORE(meas_delay_cm, MAX_MEASUREMENT_DELAY); if (filwidth_delay_index2 == -1) { // Initialize the ring buffer if not done since startup - int temp_ratio = widthFil_to_size_ratio(); + int temp_ratio = thermalManager.widthFil_to_size_ratio(); for (uint8_t i = 0; i < COUNT(measurement_delay); ++i) measurement_delay[i] = temp_ratio - 100; // Subtract 100 to scale within a signed byte @@ -5984,7 +5978,7 @@ inline void gcode_M503() { */ inline void gcode_M600() { - if (degHotend(active_extruder) < extrude_min_temp) { + if (thermalManager.tooColdToExtrude(active_extruder)) { SERIAL_ERROR_START; SERIAL_ERRORLNPGM(MSG_TOO_COLD_FOR_M600); return; @@ -7268,7 +7262,7 @@ void mesh_buffer_line(float x, float y, float z, const float e, float feed_rate, if (DEBUGGING(DRYRUN)) return; float de = dest_e - curr_e; if (de) { - if (degHotend(active_extruder) < extrude_min_temp) { + if (thermalManager.tooColdToExtrude(active_extruder)) { curr_e = dest_e; // Behave as if the move really took place, but ignore E part SERIAL_ECHO_START; SERIAL_ECHOLNPGM(MSG_ERR_COLD_EXTRUDE_STOP); @@ -7565,7 +7559,7 @@ void plan_arc( millis_t ms = millis(); if (ELAPSED(ms, nextMotorCheck)) { nextMotorCheck = ms + 2500UL; // Not a time critical function, so only check every 2.5s - if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON || soft_pwm_bed > 0 + if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON || thermalManager.soft_pwm_bed > 0 || E0_ENABLE_READ == E_ENABLE_ON // If any of the drivers are enabled... #if EXTRUDERS > 1 || E1_ENABLE_READ == E_ENABLE_ON @@ -7683,9 +7677,9 @@ void plan_arc( if (ELAPSED(millis(), next_status_led_update_ms)) { next_status_led_update_ms += 500; // Update every 0.5s for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) - max_temp = max(max(max_temp, degHotend(cur_extruder)), degTargetHotend(cur_extruder)); + max_temp = max(max(max_temp, thermalManager.degHotend(cur_extruder)), thermalManager.degTargetHotend(cur_extruder)); #if HAS_TEMP_BED - max_temp = max(max(max_temp, degTargetBed()), degBed()); + max_temp = max(max(max_temp, thermalManager.degTargetBed()), thermalManager.degBed()); #endif bool new_led = (max_temp > 55.0) ? true : (max_temp < 54.0) ? false : red_led; if (new_led != red_led) { @@ -7726,7 +7720,7 @@ void idle( bool no_stepper_sleep/*=false*/ #endif ) { - manage_heater(); + thermalManager.manage_heater(); manage_inactivity( #if ENABLED(FILAMENTCHANGEENABLE) no_stepper_sleep @@ -7831,7 +7825,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) { #if ENABLED(EXTRUDER_RUNOUT_PREVENT) if (ELAPSED(ms, previous_cmd_ms + (EXTRUDER_RUNOUT_SECONDS) * 1000UL)) - if (degHotend(active_extruder) > EXTRUDER_RUNOUT_MINTEMP) { + if (thermalManager.degHotend(active_extruder) > EXTRUDER_RUNOUT_MINTEMP) { bool oldstatus; switch (active_extruder) { case 0: @@ -7914,7 +7908,7 @@ void kill(const char* lcd_msg) { #endif cli(); // Stop interrupts - disable_all_heaters(); + thermalManager.disable_all_heaters(); disable_all_steppers(); #if HAS_POWER_SWITCH @@ -8010,7 +8004,7 @@ void kill(const char* lcd_msg) { #endif // FAST_PWM_FAN void stop() { - disable_all_heaters(); + thermalManager.disable_all_heaters(); if (IsRunning()) { Running = false; Stopped_gcode_LastN = gcode_LastN; // Save last g_code for restart diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index 1e9aab3b66..2fead53823 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -609,7 +609,7 @@ void CardReader::printingHasFinished() { sdprinting = false; if (SD_FINISHED_STEPPERRELEASE) enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND)); - autotempShutdown(); + thermalManager.autotempShutdown(); } } diff --git a/Marlin/configuration_store.cpp b/Marlin/configuration_store.cpp index 8946156b11..0dbcd995b2 100644 --- a/Marlin/configuration_store.cpp +++ b/Marlin/configuration_store.cpp @@ -95,7 +95,7 @@ * 363 M301 L lpq_len (int) * * PIDTEMPBED: - * 365 M304 PID bedKp, bedKi, bedKd (float x3) + * 365 M304 PID thermalManager.bedKp, thermalManager.bedKi, thermalManager.bedKd (float x3) * * DOGLCD: * 377 M250 C lcd_contrast (int) @@ -261,9 +261,9 @@ void Config_StoreSettings() { #endif // !PIDTEMP { dummy = DUMMY_PID_VALUE; // When read, will not change the existing value - EEPROM_WRITE_VAR(i, dummy); + EEPROM_WRITE_VAR(i, dummy); // Kp dummy = 0.0f; - for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy); + for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy); // Ki, Kd, Kc } } // Extruders Loop @@ -274,13 +274,14 @@ void Config_StoreSettings() { EEPROM_WRITE_VAR(i, lpq_len); #if DISABLED(PIDTEMPBED) - float bedKp = DUMMY_PID_VALUE, bedKi = DUMMY_PID_VALUE, bedKd = DUMMY_PID_VALUE; + dummy = DUMMY_PID_VALUE; + for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy); + #else + EEPROM_WRITE_VAR(i, thermalManager.bedKp); + EEPROM_WRITE_VAR(i, thermalManager.bedKi); + EEPROM_WRITE_VAR(i, thermalManager.bedKd); #endif - EEPROM_WRITE_VAR(i, bedKp); - EEPROM_WRITE_VAR(i, bedKi); - EEPROM_WRITE_VAR(i, bedKd); - #if DISABLED(HAS_LCD_CONTRAST) const int lcd_contrast = 32; #endif @@ -450,20 +451,17 @@ void Config_RetrieveSettings() { #endif EEPROM_READ_VAR(i, lpq_len); - #if DISABLED(PIDTEMPBED) - float bedKp, bedKi, bedKd; + #if ENABLED(PIDTEMPBED) + EEPROM_READ_VAR(i, dummy); // bedKp + if (dummy != DUMMY_PID_VALUE) { + thermalManager.bedKp = dummy; + EEPROM_READ_VAR(i, thermalManager.bedKi); + EEPROM_READ_VAR(i, thermalManager.bedKd); + } + #else + for (uint8_t q=3; q--;) EEPROM_READ_VAR(i, dummy); // bedKp, bedKi, bedKd #endif - EEPROM_READ_VAR(i, dummy); // bedKp - if (dummy != DUMMY_PID_VALUE) { - bedKp = dummy; UNUSED(bedKp); - EEPROM_READ_VAR(i, bedKi); - EEPROM_READ_VAR(i, bedKd); - } - else { - for (uint8_t q=2; q--;) EEPROM_READ_VAR(i, dummy); // bedKi, bedKd - } - #if DISABLED(HAS_LCD_CONTRAST) int lcd_contrast; #endif @@ -502,8 +500,8 @@ void Config_RetrieveSettings() { } calculate_volumetric_multipliers(); - // Call updatePID (similar to when we have processed M301) - updatePID(); + // Call thermalManager.updatePID (similar to when we have processed M301) + thermalManager.updatePID(); // Report settings retrieved and length SERIAL_ECHO_START; @@ -602,14 +600,14 @@ void Config_ResetDefault() { #if ENABLED(PID_ADD_EXTRUSION_RATE) lpq_len = 20; // default last-position-queue size #endif - // call updatePID (similar to when we have processed M301) - updatePID(); + // call thermalManager.updatePID (similar to when we have processed M301) + thermalManager.updatePID(); #endif // PIDTEMP #if ENABLED(PIDTEMPBED) - bedKp = DEFAULT_bedKp; - bedKi = scalePID_i(DEFAULT_bedKi); - bedKd = scalePID_d(DEFAULT_bedKd); + thermalManager.bedKp = DEFAULT_bedKp; + thermalManager.bedKi = scalePID_i(DEFAULT_bedKi); + thermalManager.bedKd = scalePID_d(DEFAULT_bedKd); #endif #if ENABLED(FWRETRACT) @@ -835,9 +833,9 @@ void Config_PrintSettings(bool forReplay) { #if ENABLED(PIDTEMPBED) CONFIG_ECHO_START; - SERIAL_ECHOPAIR(" M304 P", bedKp); - SERIAL_ECHOPAIR(" I", unscalePID_i(bedKi)); - SERIAL_ECHOPAIR(" D", unscalePID_d(bedKd)); + SERIAL_ECHOPAIR(" M304 P", thermalManager.bedKp); + SERIAL_ECHOPAIR(" I", unscalePID_i(thermalManager.bedKi)); + SERIAL_ECHOPAIR(" D", unscalePID_d(thermalManager.bedKd)); SERIAL_EOL; #endif diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 3af19e15d4..89094bb00d 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -294,13 +294,13 @@ FORCE_INLINE void _draw_heater_status(int x, int heater) { const bool isBed = false; #endif - _draw_centered_temp((isBed ? degTargetBed() : degTargetHotend(heater)) + 0.5, x, 7); + _draw_centered_temp((isBed ? thermalManager.degTargetBed() : thermalManager.degTargetHotend(heater)) + 0.5, x, 7); - _draw_centered_temp((isBed ? degBed() : degHotend(heater)) + 0.5, x, 28); + _draw_centered_temp((isBed ? thermalManager.degBed() : thermalManager.degHotend(heater)) + 0.5, x, 28); int h = isBed ? 7 : 8, y = isBed ? 18 : 17; - if (isBed ? isHeatingBed() : isHeatingHotend(heater)) { + if (isBed ? thermalManager.isHeatingBed() : thermalManager.isHeatingHotend(heater)) { u8g.setColorIndex(0); // white on black u8g.drawBox(x + h, y, 2, 2); u8g.setColorIndex(1); // black on white diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index 8d0b0f979e..d08bf1a8aa 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -153,7 +153,7 @@ void Endstops::report_state() { card.sdprinting = false; card.closefile(); stepper.quick_stop(); - disable_all_heaters(); // switch off all heaters. + thermalManager.disable_all_heaters(); // switch off all heaters. } #endif } diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 4fe8dee9fa..0beae32674 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -304,7 +304,7 @@ void Planner::recalculate() { static float oldt = 0; if (!autotemp_enabled) return; - if (degTargetHotend0() + 2 < autotemp_min) return; // probably temperature set to zero. + if (thermalManager.degTargetHotend(0) + 2 < autotemp_min) return; // probably temperature set to zero. float high = 0.0; for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) { @@ -322,7 +322,7 @@ void Planner::recalculate() { t += (AUTOTEMP_OLDWEIGHT) * oldt; } oldt = t; - setTargetHotend0(t); + thermalManager.setTargetHotend(t, 0); } #endif //AUTOTEMP @@ -489,11 +489,12 @@ void Planner::check_axes_activity() { // The target position of the tool in absolute steps // Calculate target position in absolute steps //this should be done after the wait, because otherwise a M92 code within the gcode disrupts this calculation somehow - long target[NUM_AXIS]; - target[X_AXIS] = lround(x * axis_steps_per_unit[X_AXIS]); - target[Y_AXIS] = lround(y * axis_steps_per_unit[Y_AXIS]); - target[Z_AXIS] = lround(z * axis_steps_per_unit[Z_AXIS]); - target[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS]); + long target[NUM_AXIS] = { + lround(x * axis_steps_per_unit[X_AXIS]), + lround(y * axis_steps_per_unit[Y_AXIS]), + lround(z * axis_steps_per_unit[Z_AXIS]), + lround(e * axis_steps_per_unit[E_AXIS]) + }; long dx = target[X_AXIS] - position[X_AXIS], dy = target[Y_AXIS] - position[Y_AXIS], @@ -507,7 +508,7 @@ void Planner::check_axes_activity() { #if ENABLED(PREVENT_DANGEROUS_EXTRUDE) if (de) { - if (degHotend(extruder) < extrude_min_temp) { + if (thermalManager.tooColdToExtrude(extruder)) { position[E_AXIS] = target[E_AXIS]; // Behave as if the move really took place, but ignore E part de = 0; // no difference SERIAL_ECHO_START; @@ -788,7 +789,7 @@ void Planner::check_axes_activity() { // If the index has changed (must have gone forward)... if (filwidth_delay_index1 != filwidth_delay_index2) { filwidth_e_count = 0; // Reset the E movement counter - int8_t meas_sample = widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char + int8_t meas_sample = thermalManager.widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char do { filwidth_delay_index2 = (filwidth_delay_index2 + 1) % MMD_CM; // The next unused slot measurement_delay[filwidth_delay_index2] = meas_sample; // Store the measurement diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 3f5b2d1c53..1d71724521 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -21,24 +21,8 @@ */ /** - temperature.cpp - temperature control - Part of Marlin - - Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ + * temperature.cpp - temperature control + */ #include "Marlin.h" #include "ultralcd.h" @@ -50,144 +34,10 @@ #include "watchdog.h" #endif -//=========================================================================== -//================================== macros ================================= -//=========================================================================== - #ifdef K1 // Defined in Configuration.h in the PID settings #define K2 (1.0-K1) #endif -#if ENABLED(PIDTEMPBED) || ENABLED(PIDTEMP) - #define PID_dT ((OVERSAMPLENR * 12.0)/(F_CPU / 64.0 / 256.0)) -#endif - -//=========================================================================== -//============================= public variables ============================ -//=========================================================================== - -int target_temperature[4] = { 0 }; -int target_temperature_bed = 0; -int current_temperature_raw[4] = { 0 }; -float current_temperature[4] = { 0.0 }; -int current_temperature_bed_raw = 0; -float current_temperature_bed = 0.0; -#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) - int redundant_temperature_raw = 0; - float redundant_temperature = 0.0; -#endif - -#if ENABLED(PIDTEMPBED) - float bedKp = DEFAULT_bedKp; - float bedKi = (DEFAULT_bedKi* PID_dT); - float bedKd = (DEFAULT_bedKd / PID_dT); -#endif //PIDTEMPBED - -#if ENABLED(FAN_SOFT_PWM) - unsigned char fanSpeedSoftPwm[FAN_COUNT]; -#endif - -unsigned char soft_pwm_bed; - -#if ENABLED(BABYSTEPPING) - volatile int babystepsTodo[3] = { 0 }; -#endif - -#if ENABLED(FILAMENT_WIDTH_SENSOR) - int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only -#endif - -#if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED) - enum TRState { TRReset, TRInactive, TRFirstHeating, TRStable, TRRunaway }; - void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); - #if ENABLED(THERMAL_PROTECTION_HOTENDS) - static TRState thermal_runaway_state_machine[4] = { TRReset, TRReset, TRReset, TRReset }; - static millis_t thermal_runaway_timer[4]; // = {0,0,0,0}; - #endif - #if ENABLED(THERMAL_PROTECTION_BED) && TEMP_SENSOR_BED != 0 - static TRState thermal_runaway_bed_state_machine = TRReset; - static millis_t thermal_runaway_bed_timer; - #endif -#endif - -//=========================================================================== -//============================ private variables ============================ -//=========================================================================== - -static volatile bool temp_meas_ready = false; - -#if ENABLED(PIDTEMP) - //static cannot be external: - static float temp_iState[EXTRUDERS] = { 0 }; - static float temp_dState[EXTRUDERS] = { 0 }; - static float pTerm[EXTRUDERS]; - static float iTerm[EXTRUDERS]; - static float dTerm[EXTRUDERS]; - #if ENABLED(PID_ADD_EXTRUSION_RATE) - static float cTerm[EXTRUDERS]; - static long last_position[EXTRUDERS]; - static long lpq[LPQ_MAX_LEN]; - static int lpq_ptr = 0; - #endif - //int output; - static float pid_error[EXTRUDERS]; - static float temp_iState_min[EXTRUDERS]; - static float temp_iState_max[EXTRUDERS]; - static bool pid_reset[EXTRUDERS]; -#endif //PIDTEMP -#if ENABLED(PIDTEMPBED) - //static cannot be external: - static float temp_iState_bed = { 0 }; - static float temp_dState_bed = { 0 }; - static float pTerm_bed; - static float iTerm_bed; - static float dTerm_bed; - //int output; - static float pid_error_bed; - static float temp_iState_min_bed; - static float temp_iState_max_bed; -#else //PIDTEMPBED - static millis_t next_bed_check_ms; -#endif //PIDTEMPBED -static unsigned char soft_pwm[EXTRUDERS]; - -#if ENABLED(FAN_SOFT_PWM) - static unsigned char soft_pwm_fan[FAN_COUNT]; -#endif -#if HAS_AUTO_FAN - static millis_t next_auto_fan_check_ms; -#endif - -#if ENABLED(PIDTEMP) - #if ENABLED(PID_PARAMS_PER_EXTRUDER) - float Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kp); - float Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Ki) * (PID_dT)); - float Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Kd) / (PID_dT)); - #if ENABLED(PID_ADD_EXTRUSION_RATE) - float Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kc); - #endif // PID_ADD_EXTRUSION_RATE - #else //PID_PARAMS_PER_EXTRUDER - float Kp = DEFAULT_Kp; - float Ki = (DEFAULT_Ki) * (PID_dT); - float Kd = (DEFAULT_Kd) / (PID_dT); - #if ENABLED(PID_ADD_EXTRUSION_RATE) - float Kc = DEFAULT_Kc; - #endif // PID_ADD_EXTRUSION_RATE - #endif // PID_PARAMS_PER_EXTRUDER -#endif //PIDTEMP - -// Init min and max temp with extreme values to prevent false errors during startup -static int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP); -static int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP); -static int minttemp[EXTRUDERS] = { 0 }; -static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383); -#ifdef BED_MINTEMP - static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; -#endif -#ifdef BED_MAXTEMP - static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; -#endif - #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) static void* heater_ttbl_map[2] = {(void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE }; static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN }; @@ -196,39 +46,11 @@ static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383); static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN, HEATER_3_TEMPTABLE_LEN); #endif -static float analog2temp(int raw, uint8_t e); -static float analog2tempBed(int raw); -static void updateTemperaturesFromRawValues(); - -#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 - int watch_target_temp[EXTRUDERS] = { 0 }; - millis_t watch_heater_next_ms[EXTRUDERS] = { 0 }; -#endif - -#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 - int watch_target_bed_temp = 0; - millis_t watch_bed_next_ms = 0; -#endif - -#ifndef SOFT_PWM_SCALE - #define SOFT_PWM_SCALE 0 -#endif - -#if ENABLED(FILAMENT_WIDTH_SENSOR) - static int meas_shift_index; //used to point to a delayed sample in buffer for filament width sensor -#endif - -#if ENABLED(HEATER_0_USES_MAX6675) - static int read_max6675(); -#endif - -//=========================================================================== -//================================ Functions ================================ -//=========================================================================== +Temperature thermalManager; #if HAS_PID_HEATING - void PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { + void Temperature::PID_autotune(float temp, int extruder, int ncycles, bool set_result/*=false*/) { float input = 0.0; int cycles = 0; bool heating = true; @@ -242,7 +64,7 @@ static void updateTemperaturesFromRawValues(); float max = 0, min = 10000; #if HAS_AUTO_FAN - millis_t next_auto_fan_check_ms = temp_ms + 2500UL; + next_auto_fan_check_ms = temp_ms + 2500UL; #endif if (false @@ -459,9 +281,37 @@ static void updateTemperaturesFromRawValues(); } } -#endif // PIDTEMP +#endif // HAS_PID_HEATING + +#if ENABLED(PIDTEMP) + + #if ENABLED(PID_PARAMS_PER_EXTRUDER) + + float Temperature::Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kp), + Temperature::Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Ki) * (PID_dT)), + Temperature::Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS1((DEFAULT_Kd) / (PID_dT)); -void updatePID() { + #if ENABLED(PID_ADD_EXTRUSION_RATE) + float Temperature::Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kc); + #endif + + #else + + float Temperature::Kp = DEFAULT_Kp, + Temperature::Ki = (DEFAULT_Ki) * (PID_dT), + Temperature::Kd = (DEFAULT_Kd) / (PID_dT); + + #if ENABLED(PID_ADD_EXTRUSION_RATE) + float Temperature::Kc = DEFAULT_Kc; + #endif + + #endif + +#endif + +Temperature::Temperature() { } + +void Temperature::updatePID() { #if ENABLED(PIDTEMP) for (int e = 0; e < EXTRUDERS; e++) { temp_iState_max[e] = (PID_INTEGRAL_DRIVE_MAX) / PID_PARAM(Ki, e); @@ -475,85 +325,41 @@ void updatePID() { #endif } -int getHeaterPower(int heater) { +int Temperature::getHeaterPower(int heater) { return heater < 0 ? soft_pwm_bed : soft_pwm[heater]; } #if HAS_AUTO_FAN -void setExtruderAutoFanState(int pin, bool state) { - unsigned char newFanSpeed = (state != 0) ? EXTRUDER_AUTO_FAN_SPEED : 0; - // this idiom allows both digital and PWM fan outputs (see M42 handling). - digitalWrite(pin, newFanSpeed); - analogWrite(pin, newFanSpeed); -} - -void checkExtruderAutoFans() { - uint8_t fanState = 0; - - // which fan pins need to be turned on? - #if HAS_AUTO_FAN_0 - if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) - fanState |= 1; - #endif - #if HAS_AUTO_FAN_1 - if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) { - if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else - fanState |= 2; + void Temperature::checkExtruderAutoFans() { + const uint8_t fanPin[] = { EXTRUDER_0_AUTO_FAN_PIN, EXTRUDER_1_AUTO_FAN_PIN, EXTRUDER_2_AUTO_FAN_PIN, EXTRUDER_3_AUTO_FAN_PIN }; + const int fanBit[] = { 0, + EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN ? 0 : 1, + EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN ? 0 : + EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN ? 1 : 2, + EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN ? 0 : + EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN ? 1 : + EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN ? 2 : 3 + }; + uint8_t fanState = 0; + for (int f = 0; f <= 3; f++) { + if (current_temperature[f] > EXTRUDER_AUTO_FAN_TEMPERATURE) + SBI(fanState, fanBit[f]); } - #endif - #if HAS_AUTO_FAN_2 - if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) { - if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) - fanState |= 2; - else - fanState |= 4; - } - #endif - #if HAS_AUTO_FAN_3 - if (current_temperature[3] > EXTRUDER_AUTO_FAN_TEMPERATURE) { - if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) - fanState |= 1; - else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) - fanState |= 2; - else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN) - fanState |= 4; - else - fanState |= 8; + for (int f = 0; f <= 3; f++) { + unsigned char newFanSpeed = TEST(fanState, f) ? EXTRUDER_AUTO_FAN_SPEED : 0; + // this idiom allows both digital and PWM fan outputs (see M42 handling). + digitalWrite(fanPin[f], newFanSpeed); + analogWrite(fanPin[f], newFanSpeed); } - #endif - - // update extruder auto fan states - #if HAS_AUTO_FAN_0 - setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0); - #endif - #if HAS_AUTO_FAN_1 - if (EXTRUDER_1_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_1_AUTO_FAN_PIN, (fanState & 2) != 0); - #endif - #if HAS_AUTO_FAN_2 - if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN - && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0); - #endif - #if HAS_AUTO_FAN_3 - if (EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN - && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN - && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_2_AUTO_FAN_PIN) - setExtruderAutoFanState(EXTRUDER_3_AUTO_FAN_PIN, (fanState & 8) != 0); - #endif -} + } #endif // HAS_AUTO_FAN // // Temperature Error Handlers // -inline void _temp_error(int e, const char* serial_msg, const char* lcd_msg) { +void Temperature::_temp_error(int e, const char* serial_msg, const char* lcd_msg) { static bool killed = false; if (IsRunning()) { SERIAL_ERROR_START; @@ -572,14 +378,14 @@ inline void _temp_error(int e, const char* serial_msg, const char* lcd_msg) { #endif } -void max_temp_error(uint8_t e) { +void Temperature::max_temp_error(uint8_t e) { _temp_error(e, PSTR(MSG_T_MAXTEMP), PSTR(MSG_ERR_MAXTEMP)); } -void min_temp_error(uint8_t e) { +void Temperature::min_temp_error(uint8_t e) { _temp_error(e, PSTR(MSG_T_MINTEMP), PSTR(MSG_ERR_MINTEMP)); } -float get_pid_output(int e) { +float Temperature::get_pid_output(int e) { float pid_output; #if ENABLED(PIDTEMP) #if DISABLED(PID_OPENLOOP) @@ -658,7 +464,7 @@ float get_pid_output(int e) { } #if ENABLED(PIDTEMPBED) - float get_pid_output_bed() { + float Temperature::get_pid_output_bed() { float pid_output; #if DISABLED(PID_OPENLOOP) pid_error_bed = target_temperature_bed - current_temperature_bed; @@ -710,7 +516,7 @@ float get_pid_output(int e) { * - Apply filament width to the extrusion rate (may move) * - Update the heated bed PID output value */ -void manage_heater() { +void Temperature::manage_heater() { if (!temp_meas_ready) return; @@ -811,7 +617,7 @@ void manage_heater() { #if TEMP_SENSOR_BED != 0 - #if ENABLED(THERMAL_PROTECTION_BED) + #if HAS_THERMALLY_PROTECTED_BED thermal_runaway_protection(&thermal_runaway_bed_state_machine, &thermal_runaway_bed_timer, current_temperature_bed, target_temperature_bed, -1, THERMAL_PROTECTION_BED_PERIOD, THERMAL_PROTECTION_BED_HYSTERESIS); #endif @@ -846,9 +652,10 @@ void manage_heater() { } #define PGM_RD_W(x) (short)pgm_read_word(&x) + // Derived from RepRap FiveD extruder::getTemperature() // For hot end temperature measurement. -static float analog2temp(int raw, uint8_t e) { +float Temperature::analog2temp(int raw, uint8_t e) { #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) if (e > EXTRUDERS) #else @@ -891,7 +698,7 @@ static float analog2temp(int raw, uint8_t e) { // Derived from RepRap FiveD extruder::getTemperature() // For bed temperature measurement. -static float analog2tempBed(int raw) { +float Temperature::analog2tempBed(int raw) { #if ENABLED(BED_USES_THERMISTOR) float celsius = 0; byte i; @@ -923,18 +730,22 @@ static float analog2tempBed(int raw) { #endif } -/* Called to get the raw values into the the actual temperatures. The raw values are created in interrupt context, - and this function is called from normal context as it is too slow to run in interrupts and will block the stepper routine otherwise */ -static void updateTemperaturesFromRawValues() { +/** + * Get the raw values into the actual temperatures. + * The raw values are created in interrupt context, + * and this function is called from normal context + * as it would block the stepper routine. + */ +void Temperature::updateTemperaturesFromRawValues() { #if ENABLED(HEATER_0_USES_MAX6675) current_temperature_raw[0] = read_max6675(); #endif for (uint8_t e = 0; e < EXTRUDERS; e++) { - current_temperature[e] = analog2temp(current_temperature_raw[e], e); + current_temperature[e] = Temperature::analog2temp(current_temperature_raw[e], e); } - current_temperature_bed = analog2tempBed(current_temperature_bed_raw); + current_temperature_bed = Temperature::analog2tempBed(current_temperature_bed_raw); #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) - redundant_temperature = analog2temp(redundant_temperature_raw, 1); + redundant_temperature = Temperature::analog2temp(redundant_temperature_raw, 1); #endif #if ENABLED(FILAMENT_WIDTH_SENSOR) filament_width_meas = analog2widthFil(); @@ -954,13 +765,13 @@ static void updateTemperaturesFromRawValues() { #if ENABLED(FILAMENT_WIDTH_SENSOR) // Convert raw Filament Width to millimeters - float analog2widthFil() { + float Temperature::analog2widthFil() { return current_raw_filwidth / 16383.0 * 5.0; //return current_raw_filwidth; } // Convert raw Filament Width to a ratio - int widthFil_to_size_ratio() { + int Temperature::widthFil_to_size_ratio() { float temp = filament_width_meas; if (temp < MEASURED_LOWER_LIMIT) temp = filament_width_nominal; //assume sensor cut out else NOMORE(temp, MEASURED_UPPER_LIMIT); @@ -974,7 +785,8 @@ static void updateTemperaturesFromRawValues() { * Initialize the temperature manager * The manager is implemented by periodic calls to manage_heater() */ -void tp_init() { +void Temperature::init() { + #if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1)) //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector MCUCR = _BV(JTD); @@ -1189,7 +1001,7 @@ void tp_init() { * their target temperature by a configurable margin. * This is called when the temperature is set. (M104, M109) */ - void start_watching_heater(int e) { + void Temperature::start_watching_heater(int e) { if (degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE + TEMP_HYSTERESIS + 1)) { watch_target_temp[e] = degHotend(e) + WATCH_TEMP_INCREASE; watch_heater_next_ms[e] = millis() + (WATCH_TEMP_PERIOD) * 1000UL; @@ -1205,7 +1017,7 @@ void tp_init() { * their target temperature by a configurable margin. * This is called when the temperature is set. (M140, M190) */ - void start_watching_bed() { + void Temperature::start_watching_bed() { if (degBed() < degTargetBed() - (WATCH_BED_TEMP_INCREASE + TEMP_BED_HYSTERESIS + 1)) { watch_target_bed_temp = degBed() + WATCH_BED_TEMP_INCREASE; watch_bed_next_ms = millis() + (WATCH_BED_TEMP_PERIOD) * 1000UL; @@ -1215,9 +1027,9 @@ void tp_init() { } #endif -#if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED) +#if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED - void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) { + void Temperature::thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) { static float tr_target_temperature[EXTRUDERS + 1] = { 0.0 }; @@ -1273,7 +1085,7 @@ void tp_init() { #endif // THERMAL_PROTECTION_HOTENDS || THERMAL_PROTECTION_BED -void disable_all_heaters() { +void Temperature::disable_all_heaters() { for (int i = 0; i < EXTRUDERS; i++) setTargetHotend(0, i); setTargetBed(0); @@ -1327,9 +1139,9 @@ void disable_all_heaters() { #define MAX6675_DISCARD_BITS 3 #endif - static millis_t next_max6675_ms = 0; + int Temperature::read_max6675() { - static int read_max6675() { + static millis_t next_max6675_ms = 0; millis_t ms = millis(); @@ -1392,10 +1204,10 @@ enum TempState { StartupDelay // Startup, delay initial temp reading a tiny bit so the hardware can settle }; -static unsigned long raw_temp_value[4] = { 0 }; -static unsigned long raw_temp_bed_value = 0; - -static void set_current_temp_raw() { +/** + * Get raw temperatures + */ +void Temperature::set_current_temp_raw() { #if HAS_TEMP_0 && DISABLED(HEATER_0_USES_MAX6675) current_temperature_raw[0] = raw_temp_value[0]; #endif @@ -1423,7 +1235,9 @@ static void set_current_temp_raw() { * - Check new temperature values for MIN/MAX errors * - Step the babysteps value for each axis towards 0 */ -ISR(TIMER0_COMPB_vect) { +ISR(TIMER0_COMPB_vect) { thermalManager.isr(); } + +void Temperature::isr() { static unsigned char temp_count = 0; static TempState temp_state = StartupDelay; @@ -1845,11 +1659,3 @@ ISR(TIMER0_COMPB_vect) { } #endif //BABYSTEPPING } - -#if ENABLED(PIDTEMP) - // Apply the scale factors to the PID values - float scalePID_i(float i) { return i * PID_dT; } - float unscalePID_i(float i) { return i / PID_dT; } - float scalePID_d(float d) { return d / PID_dT; } - float unscalePID_d(float d) { return d * PID_dT; } -#endif //PIDTEMP diff --git a/Marlin/temperature.h b/Marlin/temperature.h index c5754a590b..2e404ba805 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -21,182 +21,331 @@ */ /** - temperature.h - temperature controller - Part of Marlin - - Copyright (c) 2011 Erik van der Zalm - - Grbl is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Grbl is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Grbl. If not, see . -*/ + * temperature.h - temperature controller + */ #ifndef TEMPERATURE_H #define TEMPERATURE_H #include "Marlin.h" #include "planner.h" + #if ENABLED(PID_ADD_EXTRUSION_RATE) #include "stepper.h" #endif -// public functions -void tp_init(); //initialize the heating -void manage_heater(); //it is critical that this is called periodically. +#ifndef SOFT_PWM_SCALE + #define SOFT_PWM_SCALE 0 +#endif -#if ENABLED(FILAMENT_WIDTH_SENSOR) - // For converting raw Filament Width to milimeters - float analog2widthFil(); +class Temperature { - // For converting raw Filament Width to an extrusion ratio - int widthFil_to_size_ratio(); -#endif + public: -// low level conversion routines -// do not use these routines and variables outside of temperature.cpp -extern int target_temperature[4]; -extern float current_temperature[4]; -#if ENABLED(SHOW_TEMP_ADC_VALUES) - extern int current_temperature_raw[4]; - extern int current_temperature_bed_raw; -#endif -extern int target_temperature_bed; -extern float current_temperature_bed; -#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) - extern float redundant_temperature; -#endif + int current_temperature_raw[EXTRUDERS] = { 0 }; + float current_temperature[EXTRUDERS] = { 0.0 }; + int target_temperature[EXTRUDERS] = { 0 }; -#if HAS_CONTROLLERFAN - extern unsigned char soft_pwm_bed; -#endif + int current_temperature_bed_raw = 0; + float current_temperature_bed = 0.0; + int target_temperature_bed = 0; -#if ENABLED(FAN_SOFT_PWM) - extern unsigned char fanSpeedSoftPwm[FAN_COUNT]; -#endif + #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) + float redundant_temperature = 0.0; + #endif -#if ENABLED(PIDTEMP) + unsigned char soft_pwm_bed; - #if ENABLED(PID_PARAMS_PER_EXTRUDER) - extern float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS]; // one param per extruder - #if ENABLED(PID_ADD_EXTRUSION_RATE) - extern float Kc[EXTRUDERS]; + #if ENABLED(FAN_SOFT_PWM) + unsigned char fanSpeedSoftPwm[FAN_COUNT]; #endif - #define PID_PARAM(param, e) param[e] // use macro to point to array value - #else - extern float Kp, Ki, Kd; // one param per extruder - saves 20 or 36 bytes of ram (inc array pointer) - #if ENABLED(PID_ADD_EXTRUSION_RATE) - extern float Kc; + + #if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED) + #define PID_dT ((OVERSAMPLENR * 12.0)/(F_CPU / 64.0 / 256.0)) #endif - #define PID_PARAM(param, e) param // use macro to point directly to value - #endif // PID_PARAMS_PER_EXTRUDER - float scalePID_i(float i); - float scalePID_d(float d); - float unscalePID_i(float i); - float unscalePID_d(float d); -#endif + #if ENABLED(PIDTEMP) -#if ENABLED(PIDTEMPBED) - extern float bedKp, bedKi, bedKd; -#endif + #if ENABLED(PID_PARAMS_PER_EXTRUDER) -#if ENABLED(BABYSTEPPING) - extern volatile int babystepsTodo[3]; -#endif + static float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS]; + #if ENABLED(PID_ADD_EXTRUSION_RATE) + float Kc[EXTRUDERS]; + #endif + #define PID_PARAM(param, e) Temperature::param[e] -//high level conversion routines, for use outside of temperature.cpp -//inline so that there is no performance decrease. -//deg=degreeCelsius + #else -FORCE_INLINE float degHotend(uint8_t extruder) { return current_temperature[extruder]; } -FORCE_INLINE float degBed() { return current_temperature_bed; } + static float Kp, Ki, Kd; + #if ENABLED(PID_ADD_EXTRUSION_RATE) + static float Kc; + #endif + #define PID_PARAM(param, e) Temperature::param -#if ENABLED(SHOW_TEMP_ADC_VALUES) -FORCE_INLINE float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; } -FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; } -#endif + #endif // PID_PARAMS_PER_EXTRUDER -FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; } -FORCE_INLINE float degTargetBed() { return target_temperature_bed; } + // Apply the scale factors to the PID values + #define scalePID_i(i) ( (i) * PID_dT ) + #define unscalePID_i(i) ( (i) / PID_dT ) + #define scalePID_d(d) ( (d) / PID_dT ) + #define unscalePID_d(d) ( (d) * PID_dT ) -#if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 - void start_watching_heater(int e = 0); -#endif + #endif -#if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 - void start_watching_bed(); -#endif + #if ENABLED(PIDTEMPBED) + float bedKp = DEFAULT_bedKp, + bedKi = ((DEFAULT_bedKi) * PID_dT), + bedKd = ((DEFAULT_bedKd) / PID_dT); + #endif -FORCE_INLINE void setTargetHotend(const float& celsius, uint8_t extruder) { - target_temperature[extruder] = celsius; - #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 - start_watching_heater(extruder); - #endif -} -FORCE_INLINE void setTargetBed(const float& celsius) { - target_temperature_bed = celsius; - #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 - start_watching_bed(); - #endif -} - -FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; } -FORCE_INLINE bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; } - -FORCE_INLINE bool isCoolingHotend(uint8_t extruder) { return target_temperature[extruder] < current_temperature[extruder]; } -FORCE_INLINE bool isCoolingBed() { return target_temperature_bed < current_temperature_bed; } - -#define HOTEND_ROUTINES(NR) \ - FORCE_INLINE float degHotend##NR() { return degHotend(NR); } \ - FORCE_INLINE float degTargetHotend##NR() { return degTargetHotend(NR); } \ - FORCE_INLINE void setTargetHotend##NR(const float c) { setTargetHotend(c, NR); } \ - FORCE_INLINE bool isHeatingHotend##NR() { return isHeatingHotend(NR); } \ - FORCE_INLINE bool isCoolingHotend##NR() { return isCoolingHotend(NR); } -HOTEND_ROUTINES(0); -#if EXTRUDERS > 1 - HOTEND_ROUTINES(1); -#else - #define setTargetHotend1(c) do{}while(0) -#endif -#if EXTRUDERS > 2 - HOTEND_ROUTINES(2); -#else - #define setTargetHotend2(c) do{}while(0) -#endif -#if EXTRUDERS > 3 - HOTEND_ROUTINES(3); -#else - #define setTargetHotend3(c) do{}while(0) -#endif + #if ENABLED(BABYSTEPPING) + volatile int babystepsTodo[3] = { 0 }; + #endif -int getHeaterPower(int heater); -void disable_all_heaters(); -void updatePID(); + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 + int watch_target_temp[EXTRUDERS] = { 0 }; + millis_t watch_heater_next_ms[EXTRUDERS] = { 0 }; + #endif -#if ENABLED(PIDTEMP) - void PID_autotune(float temp, int extruder, int ncycles, bool set_result=false); -#endif + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_BED_TEMP_PERIOD > 0 + int watch_target_bed_temp = 0; + millis_t watch_bed_next_ms = 0; + #endif + + #if ENABLED(PREVENT_DANGEROUS_EXTRUDE) + float extrude_min_temp = EXTRUDE_MINTEMP; + FORCE_INLINE bool tooColdToExtrude(uint8_t e) { return degHotend(e) < extrude_min_temp; } + #else + FORCE_INLINE bool tooColdToExtrude(uint8_t e) { UNUSED(e); return false; } + #endif + + private: + + #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) + int redundant_temperature_raw = 0; + float redundant_temperature = 0.0; + #endif + + volatile bool temp_meas_ready = false; + + #if ENABLED(PIDTEMP) + float temp_iState[EXTRUDERS] = { 0 }; + float temp_dState[EXTRUDERS] = { 0 }; + float pTerm[EXTRUDERS]; + float iTerm[EXTRUDERS]; + float dTerm[EXTRUDERS]; + + #if ENABLED(PID_ADD_EXTRUSION_RATE) + float cTerm[EXTRUDERS]; + long last_position[EXTRUDERS]; + long lpq[LPQ_MAX_LEN]; + int lpq_ptr = 0; + #endif + + float pid_error[EXTRUDERS]; + float temp_iState_min[EXTRUDERS]; + float temp_iState_max[EXTRUDERS]; + bool pid_reset[EXTRUDERS]; + #endif + + #if ENABLED(PIDTEMPBED) + float temp_iState_bed = { 0 }; + float temp_dState_bed = { 0 }; + float pTerm_bed; + float iTerm_bed; + float dTerm_bed; + float pid_error_bed; + float temp_iState_min_bed; + float temp_iState_max_bed; + #else + millis_t next_bed_check_ms; + #endif -void setExtruderAutoFanState(int pin, bool state); -void checkExtruderAutoFans(); + unsigned long raw_temp_value[4] = { 0 }; + unsigned long raw_temp_bed_value = 0; + + // Init min and max temp with extreme values to prevent false errors during startup + int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP); + int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP); + int minttemp[EXTRUDERS] = { 0 }; + int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383); + + #ifdef BED_MINTEMP + int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; + #endif + + #ifdef BED_MAXTEMP + int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; + #endif + + #if ENABLED(FILAMENT_WIDTH_SENSOR) + int meas_shift_index; // Index of a delayed sample in buffer + #endif + + #if HAS_AUTO_FAN + millis_t next_auto_fan_check_ms; + #endif + + unsigned char soft_pwm[EXTRUDERS]; + + #if ENABLED(FAN_SOFT_PWM) + unsigned char soft_pwm_fan[FAN_COUNT]; + #endif -FORCE_INLINE void autotempShutdown() { - #if ENABLED(AUTOTEMP) - if (planner.autotemp_enabled) { - planner.autotemp_enabled = false; - if (degTargetHotend(active_extruder) > planner.autotemp_min) - setTargetHotend(0, active_extruder); + #if ENABLED(FILAMENT_WIDTH_SENSOR) + int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only + #endif + + public: + + /** + * Static (class) methods + */ + static float analog2temp(int raw, uint8_t e); + static float analog2tempBed(int raw); + + /** + * Instance Methods + */ + + Temperature(); + + void init(); + + /** + * Called from the Temperature ISR + */ + void isr(); + + /** + * Call periodically to manage heaters + */ + void manage_heater(); + + #if ENABLED(FILAMENT_WIDTH_SENSOR) + float analog2widthFil(); // Convert raw Filament Width to millimeters + int widthFil_to_size_ratio(); // Convert raw Filament Width to an extrusion ratio + #endif + + + //high level conversion routines, for use outside of temperature.cpp + //inline so that there is no performance decrease. + //deg=degreeCelsius + + FORCE_INLINE float degHotend(uint8_t extruder) { return current_temperature[extruder]; } + FORCE_INLINE float degBed() { return current_temperature_bed; } + + #if ENABLED(SHOW_TEMP_ADC_VALUES) + FORCE_INLINE float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; } + FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; } + #endif + + FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; } + FORCE_INLINE float degTargetBed() { return target_temperature_bed; } + + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 + void start_watching_heater(int e = 0); + #endif + + #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + void start_watching_bed(); + #endif + + FORCE_INLINE void setTargetHotend(const float& celsius, uint8_t extruder) { + target_temperature[extruder] = celsius; + #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 + start_watching_heater(extruder); + #endif + } + + FORCE_INLINE void setTargetBed(const float& celsius) { + target_temperature_bed = celsius; + #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 + start_watching_bed(); + #endif } - #endif -} + + FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; } + FORCE_INLINE bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; } + + FORCE_INLINE bool isCoolingHotend(uint8_t extruder) { return target_temperature[extruder] < current_temperature[extruder]; } + FORCE_INLINE bool isCoolingBed() { return target_temperature_bed < current_temperature_bed; } + + /** + * The software PWM power for a heater + */ + int getHeaterPower(int heater); + + /** + * Switch off all heaters, set all target temperatures to 0 + */ + void disable_all_heaters(); + + /** + * Perform auto-tuning for hotend or bed in response to M303 + */ + #if HAS_PID_HEATING + void PID_autotune(float temp, int extruder, int ncycles, bool set_result=false); + #endif + + /** + * Update the temp manager when PID values change + */ + void updatePID(); + + FORCE_INLINE void autotempShutdown() { + #if ENABLED(AUTOTEMP) + if (planner.autotemp_enabled) { + planner.autotemp_enabled = false; + if (degTargetHotend(active_extruder) > planner.autotemp_min) + setTargetHotend(0, active_extruder); + } + #endif + } + + private: + + void set_current_temp_raw(); + + void updateTemperaturesFromRawValues(); + + #if ENABLED(HEATER_0_USES_MAX6675) + int read_max6675(); + #endif + + void setExtruderAutoFanState(int pin, bool state); + void checkExtruderAutoFans(); + + float get_pid_output(int e); + + #if ENABLED(PIDTEMPBED) + float get_pid_output_bed(); + #endif + + void _temp_error(int e, const char* serial_msg, const char* lcd_msg); + void min_temp_error(uint8_t e); + void max_temp_error(uint8_t e); + + #if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED + + typedef enum TRState { TRReset, TRInactive, TRFirstHeating, TRStable, TRRunaway } TRstate; + + void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); + + #if ENABLED(THERMAL_PROTECTION_HOTENDS) + TRState thermal_runaway_state_machine[EXTRUDERS] = { TRReset }; + millis_t thermal_runaway_timer[EXTRUDERS] = { 0 }; + #endif + + #if HAS_THERMALLY_PROTECTED_BED + TRState thermal_runaway_bed_state_machine = TRReset; + millis_t thermal_runaway_bed_timer; + #endif + + #endif // THERMAL_PROTECTION + +}; + +extern Temperature thermalManager; #endif // TEMPERATURE_H diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 93991abbcc..7b247fa177 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -479,7 +479,7 @@ inline void line_to_current(AxisEnum axis) { stepper.quick_stop(); card.sdprinting = false; card.closefile(); - autotempShutdown(); + thermalManager.autotempShutdown(); cancel_heatup = true; lcd_setstatus(MSG_PRINT_ABORTED, true); } @@ -605,16 +605,16 @@ void lcd_set_home_offsets() { */ #if ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0 #if TEMP_SENSOR_0 != 0 - void watch_temp_callback_E0() { start_watching_heater(0); } + void watch_temp_callback_E0() { thermalManager.start_watching_heater(0); } #endif #if EXTRUDERS > 1 && TEMP_SENSOR_1 != 0 - void watch_temp_callback_E1() { start_watching_heater(1); } + void watch_temp_callback_E1() { thermalManager.start_watching_heater(1); } #endif // EXTRUDERS > 1 #if EXTRUDERS > 2 && TEMP_SENSOR_2 != 0 - void watch_temp_callback_E2() { start_watching_heater(2); } + void watch_temp_callback_E2() { thermalManager.start_watching_heater(2); } #endif // EXTRUDERS > 2 #if EXTRUDERS > 3 && TEMP_SENSOR_3 != 0 - void watch_temp_callback_E3() { start_watching_heater(3); } + void watch_temp_callback_E3() { thermalManager.start_watching_heater(3); } #endif // EXTRUDERS > 3 #else #if TEMP_SENSOR_0 != 0 @@ -633,7 +633,7 @@ void lcd_set_home_offsets() { #if ENABLED(THERMAL_PROTECTION_BED) && WATCH_BED_TEMP_PERIOD > 0 #if TEMP_SENSOR_BED != 0 - void watch_temp_callback_bed() { start_watching_bed(); } + void watch_temp_callback_bed() { thermalManager.start_watching_bed(); } #endif #else #if TEMP_SENSOR_BED != 0 @@ -670,22 +670,22 @@ static void lcd_tune_menu() { // #if EXTRUDERS == 1 #if TEMP_SENSOR_0 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); #endif #else //EXTRUDERS > 1 #if TEMP_SENSOR_0 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); #endif #if TEMP_SENSOR_1 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &thermalManager.target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1); #endif #if EXTRUDERS > 2 #if TEMP_SENSOR_2 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &thermalManager.target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2); #endif #if EXTRUDERS > 3 #if TEMP_SENSOR_3 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &thermalManager.target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3); #endif #endif // EXTRUDERS > 3 #endif // EXTRUDERS > 2 @@ -695,7 +695,7 @@ static void lcd_tune_menu() { // Bed: // #if TEMP_SENSOR_BED != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15, watch_temp_callback_bed); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_BED, &thermalManager.target_temperature_bed, 0, BED_MAXTEMP - 15, watch_temp_callback_bed); #endif // @@ -768,9 +768,9 @@ static void lcd_tune_menu() { * */ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fan) { - if (temph > 0) setTargetHotend(temph, endnum); + if (temph > 0) thermalManager.setTargetHotend(temph, endnum); #if TEMP_SENSOR_BED != 0 - setTargetBed(tempb); + thermalManager.setTargetBed(tempb); #else UNUSED(tempb); #endif @@ -805,19 +805,27 @@ void _lcd_preheat(int endnum, const float temph, const float tempb, const int fa void lcd_preheat_pla0123() { #if EXTRUDERS > 1 - setTargetHotend0(plaPreheatHotendTemp); - setTargetHotend1(plaPreheatHotendTemp); - setTargetHotend2(plaPreheatHotendTemp); + thermalManager.setTargetHotend(plaPreheatHotendTemp, 1); + #if EXTRUDERS > 2 + thermalManager.setTargetHotend(plaPreheatHotendTemp, 2); + #if EXTRUDERS > 3 + thermalManager.setTargetHotend(plaPreheatHotendTemp, 3); + #endif + #endif #endif - _lcd_preheat(EXTRUDERS - 1, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); + lcd_preheat_pla0(); } void lcd_preheat_abs0123() { #if EXTRUDERS > 1 - setTargetHotend0(absPreheatHotendTemp); - setTargetHotend1(absPreheatHotendTemp); - setTargetHotend2(absPreheatHotendTemp); + thermalManager.setTargetHotend(absPreheatHotendTemp, 1); + #if EXTRUDERS > 2 + thermalManager.setTargetHotend(absPreheatHotendTemp, 2); + #if EXTRUDERS > 3 + thermalManager.setTargetHotend(absPreheatHotendTemp, 3); + #endif + #endif #endif - _lcd_preheat(EXTRUDERS - 1, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); + lcd_preheat_abs0(); } #endif // EXTRUDERS > 1 @@ -879,7 +887,7 @@ void lcd_cooldown() { #if FAN_COUNT > 0 for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0; #endif - disable_all_heaters(); + thermalManager.disable_all_heaters(); lcd_return_to_status(); } @@ -1414,14 +1422,14 @@ static void lcd_control_menu() { UNUSED(e); #endif PID_PARAM(Ki, e) = scalePID_i(raw_Ki); - updatePID(); + thermalManager.updatePID(); } void copy_and_scalePID_d(int e) { #if DISABLED(PID_PARAMS_PER_EXTRUDER) UNUSED(e); #endif PID_PARAM(Kd, e) = scalePID_d(raw_Kd); - updatePID(); + thermalManager.updatePID(); } #define _PIDTEMP_BASE_FUNCTIONS(eindex) \ void copy_and_scalePID_i_E ## eindex() { copy_and_scalePID_i(eindex); } \ @@ -1469,22 +1477,22 @@ static void lcd_control_temperature_menu() { // #if EXTRUDERS == 1 #if TEMP_SENSOR_0 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); #endif #else //EXTRUDERS > 1 #if TEMP_SENSOR_0 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N1, &thermalManager.target_temperature[0], 0, HEATER_0_MAXTEMP - 15, watch_temp_callback_E0); #endif #if TEMP_SENSOR_1 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N2, &thermalManager.target_temperature[1], 0, HEATER_1_MAXTEMP - 15, watch_temp_callback_E1); #endif #if EXTRUDERS > 2 #if TEMP_SENSOR_2 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N3, &thermalManager.target_temperature[2], 0, HEATER_2_MAXTEMP - 15, watch_temp_callback_E2); #endif #if EXTRUDERS > 3 #if TEMP_SENSOR_3 != 0 - MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3); + MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_NOZZLE MSG_N4, &thermalManager.target_temperature[3], 0, HEATER_3_MAXTEMP - 15, watch_temp_callback_E3); #endif #endif // EXTRUDERS > 3 #endif // EXTRUDERS > 2 @@ -1494,7 +1502,7 @@ static void lcd_control_temperature_menu() { // Bed: // #if TEMP_SENSOR_BED != 0 - MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15); + MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &thermalManager.target_temperature_bed, 0, BED_MAXTEMP - 15); #endif // diff --git a/Marlin/ultralcd_implementation_hitachi_HD44780.h b/Marlin/ultralcd_implementation_hitachi_HD44780.h index b6d60c2ffc..05afe59a3d 100644 --- a/Marlin/ultralcd_implementation_hitachi_HD44780.h +++ b/Marlin/ultralcd_implementation_hitachi_HD44780.h @@ -633,7 +633,7 @@ static void lcd_implementation_status_screen() { // // Hotend 0 Temperature // - LCD_TEMP_ONLY(degHotend(0), degTargetHotend(0)); + LCD_TEMP_ONLY(thermalManager.degHotend(0), thermalManager.degTargetHotend(0)); // // Hotend 1 or Bed Temperature @@ -643,10 +643,10 @@ static void lcd_implementation_status_screen() { lcd.setCursor(8, 0); #if EXTRUDERS > 1 lcd.print(LCD_STR_THERMOMETER[0]); - LCD_TEMP_ONLY(degHotend(1), degTargetHotend(1)); + LCD_TEMP_ONLY(thermalManager.degHotend(1), thermalManager.degTargetHotend(1)); #else lcd.print(LCD_STR_BEDTEMP[0]); - LCD_TEMP_ONLY(degBed(), degTargetBed()); + LCD_TEMP_ONLY(thermalManager.degBed(), thermalManager.degTargetBed()); #endif #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 @@ -656,7 +656,7 @@ static void lcd_implementation_status_screen() { // // Hotend 0 Temperature // - LCD_TEMP(degHotend(0), degTargetHotend(0), LCD_STR_THERMOMETER[0]); + LCD_TEMP(thermalManager.degHotend(0), thermalManager.degTargetHotend(0), LCD_STR_THERMOMETER[0]); // // Hotend 1 or Bed Temperature @@ -664,9 +664,9 @@ static void lcd_implementation_status_screen() { #if EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 lcd.setCursor(10, 0); #if EXTRUDERS > 1 - LCD_TEMP(degHotend(1), degTargetHotend(1), LCD_STR_THERMOMETER[0]); + LCD_TEMP(thermalManager.degHotend(1), thermalManager.degTargetHotend(1), LCD_STR_THERMOMETER[0]); #else - LCD_TEMP(degBed(), degTargetBed(), LCD_STR_BEDTEMP[0]); + LCD_TEMP(thermalManager.degBed(), thermalManager.degTargetBed(), LCD_STR_BEDTEMP[0]); #endif #endif // EXTRUDERS > 1 || TEMP_SENSOR_BED != 0 @@ -702,7 +702,7 @@ static void lcd_implementation_status_screen() { // If we both have a 2nd extruder and a heated bed, // show the heated bed temp on the left, // since the first line is filled with extruder temps - LCD_TEMP(degBed(), degTargetBed(), LCD_STR_BEDTEMP[0]); + LCD_TEMP(thermalManager.degBed(), thermalManager.degTargetBed(), LCD_STR_BEDTEMP[0]); #else // Before homing the axis letters are blinking 'X' <-> '?'. @@ -925,9 +925,9 @@ void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) { static uint8_t ledsprev = 0; uint8_t leds = 0; - if (target_temperature_bed > 0) leds |= LED_A; + if (thermalManager.degTargetBed() > 0) leds |= LED_A; - if (target_temperature[0] > 0) leds |= LED_B; + if (thermalManager.degTargetHotend(0) > 0) leds |= LED_B; #if FAN_COUNT > 0 if (0 @@ -944,7 +944,7 @@ void lcd_implementation_drawedit(const char* pstr, const char* value=NULL) { #endif // FAN_COUNT > 0 #if EXTRUDERS > 1 - if (target_temperature[1] > 0) leds |= LED_C; + if (thermalManager.degTargetHotend(1) > 0) leds |= LED_C; #endif if (leds != ledsprev) { From 1a97442d19869a95bb8f942548361c4ef273bcb3 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Thu, 5 May 2016 18:01:39 +0900 Subject: [PATCH 203/383] Follow-up the PR #3643(Temperature singleton) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up the PR #3643(Temperature singleton) ・Change from fanSpeedSoftPwm[0] to thermalManager.fanSpeedSoftPwm[0] in planner.cpp It fix compilation error when FAN_SOFT_PWM is enabled. ・Remove declaration of setExtruderAutoFanState() in temperature.h Because that function was abolished. ・Change from babystepsTodo to thermalManager.babystepsTodo in ultralcd.cpp It fix compilation errors when BABYSTEPPING is enabled. --- Marlin/planner.cpp | 6 +++--- Marlin/temperature.h | 1 - Marlin/ultralcd.cpp | 18 +++++++++--------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index 0beae32674..36c3a262e6 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -421,13 +421,13 @@ void Planner::check_axes_activity() { #if ENABLED(FAN_SOFT_PWM) #if HAS_FAN0 - fanSpeedSoftPwm[0] = CALC_FAN_SPEED(0); + thermalManager.fanSpeedSoftPwm[0] = CALC_FAN_SPEED(0); #endif #if HAS_FAN1 - fanSpeedSoftPwm[1] = CALC_FAN_SPEED(1); + thermalManager.fanSpeedSoftPwm[1] = CALC_FAN_SPEED(1); #endif #if HAS_FAN2 - fanSpeedSoftPwm[2] = CALC_FAN_SPEED(2); + thermalManager.fanSpeedSoftPwm[2] = CALC_FAN_SPEED(2); #endif #else #if HAS_FAN0 diff --git a/Marlin/temperature.h b/Marlin/temperature.h index 2e404ba805..80681c039b 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -313,7 +313,6 @@ class Temperature { int read_max6675(); #endif - void setExtruderAutoFanState(int pin, bool state); void checkExtruderAutoFans(); float get_pid_output(int e); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 7b247fa177..004aaef82e 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -562,25 +562,25 @@ void lcd_set_home_offsets() { #if ENABLED(BABYSTEP_XY) switch(axis) { case X_AXIS: // X on CoreXY and CoreXZ - babystepsTodo[A_AXIS] += distance * 2; - babystepsTodo[CORE_AXIS_2] += distance * 2; + thermalManager.babystepsTodo[A_AXIS] += distance * 2; + thermalManager.babystepsTodo[CORE_AXIS_2] += distance * 2; break; case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ - babystepsTodo[A_AXIS] += distance * 2; - babystepsTodo[CORE_AXIS_2] -= distance * 2; + thermalManager.babystepsTodo[A_AXIS] += distance * 2; + thermalManager.babystepsTodo[CORE_AXIS_2] -= distance * 2; break; case CORE_AXIS_3: // Z on CoreXY, Y on CoreXZ - babystepsTodo[CORE_AXIS_3] += distance; + thermalManager.babystepsTodo[CORE_AXIS_3] += distance; break; } #elif ENABLED(COREXZ) - babystepsTodo[A_AXIS] += distance * 2; - babystepsTodo[C_AXIS] -= distance * 2; + thermalManager.babystepsTodo[A_AXIS] += distance * 2; + thermalManager.babystepsTodo[C_AXIS] -= distance * 2; #else - babystepsTodo[Z_AXIS] += distance; + thermalManager.babystepsTodo[Z_AXIS] += distance; #endif #else - babystepsTodo[axis] += distance; + thermalManager.babystepsTodo[axis] += distance; #endif babysteps_done += distance; From b65ea98d6bf407c2ff4d9ecfdef45888e6686406 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 5 May 2016 14:57:24 -0700 Subject: [PATCH 204/383] Localize babystepping in the Temperature class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So that `ultralcd.cpp` doesn’t need to worry about the details. --- Marlin/temperature.h | 31 +++++++++++++++++++++++++++++++ Marlin/ultralcd.cpp | 26 +------------------------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/Marlin/temperature.h b/Marlin/temperature.h index 80681c039b..41e4ac16fd 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -303,6 +303,37 @@ class Temperature { #endif } + #if ENABLED(BABYSTEPPING) + + FORCE_INLINE void babystep_axis(AxisEnum axis, int distance) { + #if ENABLED(COREXY) || ENABLED(COREXZ) + #if ENABLED(BABYSTEP_XY) + switch (axis) { + case X_AXIS: // X on CoreXY and CoreXZ + babystepsTodo[A_AXIS] += distance * 2; + babystepsTodo[CORE_AXIS_2] += distance * 2; + break; + case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ + babystepsTodo[A_AXIS] += distance * 2; + babystepsTodo[CORE_AXIS_2] -= distance * 2; + break; + case CORE_AXIS_3: // Z on CoreXY, Y on CoreXZ + babystepsTodo[CORE_AXIS_3] += distance; + break; + } + #elif ENABLED(COREXZ) + babystepsTodo[A_AXIS] += distance * 2; + babystepsTodo[C_AXIS] -= distance * 2; + #else + babystepsTodo[Z_AXIS] += distance; + #endif + #else + babystepsTodo[axis] += distance; + #endif + } + + #endif // BABYSTEPPING + private: void set_current_temp_raw(); diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 004aaef82e..529f8cadda 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -558,31 +558,7 @@ void lcd_set_home_offsets() { int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; encoderPosition = 0; lcdDrawUpdate = LCDVIEW_REDRAW_NOW; - #if ENABLED(COREXY) || ENABLED(COREXZ) - #if ENABLED(BABYSTEP_XY) - switch(axis) { - case X_AXIS: // X on CoreXY and CoreXZ - thermalManager.babystepsTodo[A_AXIS] += distance * 2; - thermalManager.babystepsTodo[CORE_AXIS_2] += distance * 2; - break; - case CORE_AXIS_2: // Y on CoreXY, Z on CoreXZ - thermalManager.babystepsTodo[A_AXIS] += distance * 2; - thermalManager.babystepsTodo[CORE_AXIS_2] -= distance * 2; - break; - case CORE_AXIS_3: // Z on CoreXY, Y on CoreXZ - thermalManager.babystepsTodo[CORE_AXIS_3] += distance; - break; - } - #elif ENABLED(COREXZ) - thermalManager.babystepsTodo[A_AXIS] += distance * 2; - thermalManager.babystepsTodo[C_AXIS] -= distance * 2; - #else - thermalManager.babystepsTodo[Z_AXIS] += distance; - #endif - #else - thermalManager.babystepsTodo[axis] += distance; - #endif - + thermalManager.babystep_axis(axis, distance); babysteps_done += distance; } if (lcdDrawUpdate) lcd_implementation_drawedit(msg, itostr3sign(babysteps_done)); From 51109d4af735cfe9b630f55096474e1a5556ad88 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 5 May 2016 21:04:30 -0700 Subject: [PATCH 205/383] Use AxisEnum with _lcd_babystep() --- Marlin/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 529f8cadda..4584647fde 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -552,7 +552,7 @@ void lcd_set_home_offsets() { int babysteps_done = 0; - static void _lcd_babystep(const int axis, const char* msg) { + static void _lcd_babystep(const AxisEnum axis, const char* msg) { ENCODER_DIRECTION_NORMAL(); if (encoderPosition) { int distance = (int32_t)encoderPosition * BABYSTEP_MULTIPLICATOR; From 9186be7b839c6e65265a750d945e9d13442547d6 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 9 May 2016 01:46:13 +0900 Subject: [PATCH 206/383] Fix compilation error in debugging code Fix compilation error in Thermal Runaway debugging code --- Marlin/temperature.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 1d71724521..f8c85fbc96 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1036,15 +1036,11 @@ void Temperature::init() { /** SERIAL_ECHO_START; SERIAL_ECHOPGM("Thermal Thermal Runaway Running. Heater ID: "); - if (heater_id < 0) SERIAL_ECHOPGM("bed"); else SERIAL_ECHOPGM(heater_id); - SERIAL_ECHOPGM(" ; State:"); - SERIAL_ECHOPGM(*state); - SERIAL_ECHOPGM(" ; Timer:"); - SERIAL_ECHOPGM(*timer); - SERIAL_ECHOPGM(" ; Temperature:"); - SERIAL_ECHOPGM(temperature); - SERIAL_ECHOPGM(" ; Target Temp:"); - SERIAL_ECHOPGM(target_temperature); + if (heater_id < 0) SERIAL_ECHOPGM("bed"); else SERIAL_ECHO(heater_id); + SERIAL_ECHOPAIR(" ; State:", *state); + SERIAL_ECHOPAIR(" ; Timer:", *timer); + SERIAL_ECHOPAIR(" ; Temperature:", temperature); + SERIAL_ECHOPAIR(" ; Target Temp:", target_temperature); SERIAL_EOL; */ From 5ca6334fd20daf65bf83cab613fbfe847cd2ab43 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 7 May 2016 18:41:20 -0700 Subject: [PATCH 207/383] Cleanup pins files, fixup analogtodigitalpin, etc. --- Marlin/Marlin.h | 5 -- Marlin/pins.h | 136 +++++++++++++++++++++++++++------ Marlin/pins_5DPRINT.h | 20 ----- Marlin/pins_99.h | 8 -- Marlin/pins_A4JP.h | 18 ----- Marlin/pins_BRAINWAVE.h | 8 -- Marlin/pins_BRAINWAVE_PRO.h | 6 -- Marlin/pins_CHEAPTRONIC.h | 29 +------ Marlin/pins_ELEFU_3.h | 5 -- Marlin/pins_GEN3_MONOLITHIC.h | 15 ---- Marlin/pins_GEN3_PLUS.h | 9 --- Marlin/pins_GEN6.h | 15 +--- Marlin/pins_GEN7_12.h | 15 +--- Marlin/pins_GEN7_14.h | 13 ---- Marlin/pins_GEN7_CUSTOM.h | 10 --- Marlin/pins_LEAPFROG.h | 5 -- Marlin/pins_MEGACONTROLLER.h | 5 -- Marlin/pins_MEGATRONICS.h | 8 +- Marlin/pins_MEGATRONICS_2.h | 21 ++--- Marlin/pins_MEGATRONICS_3.h | 28 +++++-- Marlin/pins_MINIRAMBO.h | 22 ------ Marlin/pins_MINITRONICS.h | 20 ++--- Marlin/pins_OMCA.h | 13 +--- Marlin/pins_OMCA_A.h | 12 +-- Marlin/pins_PRINTRBOARD.h | 7 -- Marlin/pins_PRINTRBOARD_REVF.h | 8 -- Marlin/pins_RAMBO.h | 18 ----- Marlin/pins_RAMPS_14.h | 20 ++--- Marlin/pins_RAMPS_OLD.h | 6 -- Marlin/pins_RUMBA.h | 21 +---- Marlin/pins_SANGUINOLOLU_11.h | 26 ++----- Marlin/pins_SAV_MKI.h | 11 --- Marlin/pins_SETHI.h | 9 --- Marlin/pins_TEENSY2.h | 7 -- Marlin/pins_TEENSYLU.h | 7 -- Marlin/pins_ULTIMAIN_2.h | 7 -- Marlin/pins_ULTIMAKER.h | 5 -- Marlin/pins_ULTIMAKER_OLD.h | 18 +---- 38 files changed, 172 insertions(+), 444 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 1a4f04d072..d152407401 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -52,11 +52,6 @@ typedef unsigned long millis_t; -// Arduino < 1.0.0 does not define this, so we need to do it ourselves -#ifndef analogInputToDigitalPin - #define analogInputToDigitalPin(p) ((p) + 0xA0) -#endif - #ifdef USBCON #include "HardwareSerial.h" #endif diff --git a/Marlin/pins.h b/Marlin/pins.h index a13df540c4..2359306bac 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -23,20 +23,6 @@ #ifndef PINS_H #define PINS_H -// Preset optional pins -#define X_MS1_PIN -1 -#define X_MS2_PIN -1 -#define Y_MS1_PIN -1 -#define Y_MS2_PIN -1 -#define Z_MS1_PIN -1 -#define Z_MS2_PIN -1 -#define E0_MS1_PIN -1 -#define E0_MS2_PIN -1 -#define E1_MS1_PIN -1 -#define E1_MS2_PIN -1 -#define HEATER_3_PIN -1 -#define TEMP_3_PIN -1 - #if MB(GEN7_CUSTOM) #include "pins_GEN7_CUSTOM.h" #elif MB(GEN7_12) @@ -157,21 +143,120 @@ #error Unknown MOTHERBOARD value set in Configuration.h #endif +// Define certain undefined pins +#ifndef X_MS1_PIN + #define X_MS1_PIN -1 +#endif +#ifndef X_MS2_PIN + #define X_MS2_PIN -1 +#endif +#ifndef Y_MS1_PIN + #define Y_MS1_PIN -1 +#endif +#ifndef Y_MS2_PIN + #define Y_MS2_PIN -1 +#endif +#ifndef Z_MS1_PIN + #define Z_MS1_PIN -1 +#endif +#ifndef Z_MS2_PIN + #define Z_MS2_PIN -1 +#endif +#ifndef E0_MS1_PIN + #define E0_MS1_PIN -1 +#endif +#ifndef E0_MS2_PIN + #define E0_MS2_PIN -1 +#endif +#ifndef E1_MS1_PIN + #define E1_MS1_PIN -1 +#endif +#ifndef E1_MS2_PIN + #define E1_MS2_PIN -1 +#endif + +#ifndef FAN_PIN + #define FAN_PIN -1 +#endif +#ifndef FAN1_PIN + #define FAN1_PIN -1 +#endif +#ifndef FAN2_PIN + #define FAN2_PIN -1 +#endif + +#ifndef HEATER_0_PIN + #define HEATER_0_PIN -1 +#endif +#ifndef HEATER_1_PIN + #define HEATER_1_PIN -1 +#endif +#ifndef HEATER_2_PIN + #define HEATER_2_PIN -1 +#endif +#ifndef HEATER_3_PIN + #define HEATER_3_PIN -1 +#endif +#ifndef HEATER_BED_PIN + #define HEATER_BED_PIN -1 +#endif + +#ifndef TEMP_0_PIN + #define TEMP_0_PIN -1 +#endif +#ifndef TEMP_1_PIN + #define TEMP_1_PIN -1 +#endif +#ifndef TEMP_2_PIN + #define TEMP_2_PIN -1 +#endif +#ifndef TEMP_3_PIN + #define TEMP_3_PIN -1 +#endif +#ifndef TEMP_BED_PIN + #define TEMP_BED_PIN -1 +#endif + +#ifndef SD_DETECT_PIN + #define SD_DETECT_PIN -1 +#endif +#ifndef SDPOWER + #define SDPOWER -1 +#endif +#ifndef SDSS + #define SDSS -1 +#endif +#ifndef LED_PIN + #define LED_PIN -1 +#endif +#ifndef PS_ON_PIN + #define PS_ON_PIN -1 +#endif +#ifndef KILL_PIN + #define KILL_PIN -1 +#endif +#ifndef SUICIDE_PIN + #define SUICIDE_PIN -1 +#endif + +// Marlin needs to account for pins that equal -1 +#define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : (p) + 0xA0) + // List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those! -#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, HEATER_0_PIN, analogInputToDigitalPin(TEMP_0_PIN), +#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN, HEATER_0_PIN, EXTRUDER_0_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_0_PIN), #define _E1_PINS #define _E2_PINS #define _E3_PINS #if EXTRUDERS > 1 #undef _E1_PINS - #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, analogInputToDigitalPin(TEMP_1_PIN), + #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, E1_MS1_PIN, E1_MS2_PIN, EXTRUDER_1_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_1_PIN), #if EXTRUDERS > 2 #undef _E2_PINS - #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, analogInputToDigitalPin(TEMP_2_PIN), + #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, EXTRUDER_2_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_2_PIN), #if EXTRUDERS > 3 #undef _E3_PINS - #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, HEATER_3_PIN, analogInputToDigitalPin(TEMP_3_PIN), + #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN, HEATER_3_PIN, EXTRUDER_3_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_3_PIN), #endif #endif #elif ENABLED(Y_DUAL_STEPPER_DRIVERS) || ENABLED(Z_DUAL_STEPPER_DRIVERS) @@ -179,6 +264,11 @@ #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, #endif +#define BED_PINS HEATER_BED_PIN, marlinAnalogInputToDigitalPin(TEMP_BED_PIN), + +// +// Assign endstop pins for boards with only 3 connectors +// #ifdef X_STOP_PIN #if X_HOME_DIR < 0 #define X_MIN_PIN X_STOP_PIN @@ -209,6 +299,9 @@ #endif #endif +// +// Disable unused endstop / probe pins +// #if ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) || DISABLED(Z_MIN_PROBE_ENDSTOP) // Allow code to compile regardless of Z_MIN_PROBE_ENDSTOP setting. #undef Z_MIN_PROBE_PIN #define Z_MIN_PROBE_PIN -1 @@ -270,10 +363,9 @@ X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \ Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \ Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \ - PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, CONTROLLERFAN_PIN, \ - EXTRUDER_0_AUTO_FAN_PIN, EXTRUDER_1_AUTO_FAN_PIN, EXTRUDER_2_AUTO_FAN_PIN, EXTRUDER_3_AUTO_FAN_PIN, \ - _E0_PINS _E1_PINS _E2_PINS _E3_PINS \ - analogInputToDigitalPin(TEMP_BED_PIN) \ + PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, FAN1_PIN, FAN2_PIN, CONTROLLERFAN_PIN, \ + _E0_PINS _E1_PINS _E2_PINS _E3_PINS BED_PINS \ + X_MS1_PIN, X_MS2_PIN, Y_MS1_PIN, Y_MS2_PIN, Z_MS1_PIN, Z_MS2_PIN \ } #define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS)) diff --git a/Marlin/pins_5DPRINT.h b/Marlin/pins_5DPRINT.h index 170717870d..a7b1beda11 100644 --- a/Marlin/pins_5DPRINT.h +++ b/Marlin/pins_5DPRINT.h @@ -54,8 +54,6 @@ #define E0_ENABLE_PIN 17 #define HEATER_0_PIN 21 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 20 // Bed // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h // for the fan and Teensyduino uses a different pin mapping. @@ -64,14 +62,6 @@ #define TEMP_0_PIN 1 // Extruder / Analog pin numbering #define TEMP_BED_PIN 0 // Bed / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - -#define SDPOWER -1 -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 - // The SDSS pin uses a different pin mapping from file Sd2PinMap.h #define SDSS 20 @@ -85,15 +75,6 @@ // Microstepping pins // Note that the pin mapping is not from fastio.h // See Sd2PinMap.h for the pin configurations - -#undef X_MS1_PIN -#undef X_MS2_PIN -#undef Y_MS1_PIN -#undef Y_MS2_PIN -#undef Z_MS1_PIN -#undef Z_MS2_PIN -#undef E0_MS1_PIN -#undef E0_MS2_PIN #define X_MS1_PIN 25 #define X_MS2_PIN 26 #define Y_MS1_PIN 9 @@ -102,4 +83,3 @@ #define Z_MS2_PIN 6 #define E0_MS1_PIN 5 #define E0_MS2_PIN 4 - diff --git a/Marlin/pins_99.h b/Marlin/pins_99.h index 1b050573f6..8ae78b26eb 100644 --- a/Marlin/pins_99.h +++ b/Marlin/pins_99.h @@ -43,18 +43,10 @@ #define E0_DIR_PIN 66 #define E0_ENABLE_PIN -1 -#define SDPOWER -1 #define SDSS 53 -#define LED_PIN -1 -#define FAN_PIN -1 #define PS_ON_PIN 9 -#define KILL_PIN -1 #define HEATER_0_PIN 13 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! #define HEATER_BED_PIN 4 #define TEMP_BED_PIN 10 diff --git a/Marlin/pins_A4JP.h b/Marlin/pins_A4JP.h index 5cd0d38976..d64fbcce81 100644 --- a/Marlin/pins_A4JP.h +++ b/Marlin/pins_A4JP.h @@ -38,18 +38,6 @@ #define SLED_PIN -1 #endif -#undef X_MS1_PIN -#undef X_MS2_PIN -#undef Y_MS1_PIN -#undef Y_MS2_PIN -#undef Z_MS1_PIN -#undef Z_MS2_PIN -#undef E0_MS1_PIN -#undef E0_MS2_PIN -#undef E1_MS1_PIN -#undef E1_MS2_PIN - -#undef DIGIPOTSS_PIN //Fan_2 2 /***************** @@ -108,9 +96,6 @@ #define HEATER_0_PIN 9 #define TEMP_0_PIN 0 #define HEATER_1_PIN 7 -#define TEMP_1_PIN -1 -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 #define E0_STEP_PIN 34 #define E0_DIR_PIN 43 @@ -126,13 +111,10 @@ #define DIGIPOTSS_PIN 38 #define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define FAN_PIN 8 #define PS_ON_PIN 4 -#define KILL_PIN -1 -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. #define FAN_0_PIN 6 //Glen #define FAN_1_PIN 2 //Glen diff --git a/Marlin/pins_BRAINWAVE.h b/Marlin/pins_BRAINWAVE.h index a02b6515f4..0ef9ec8614 100644 --- a/Marlin/pins_BRAINWAVE.h +++ b/Marlin/pins_BRAINWAVE.h @@ -55,21 +55,13 @@ #define E0_ATT_PIN 20 #define HEATER_0_PIN 4 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 38 // Bed #define FAN_PIN 3 // Fan #define TEMP_0_PIN 7 // Extruder / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 6 // Bed / Analog pin numbering -#define SDPOWER -1 -#define SDSS -1 #define LED_PIN 39 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support diff --git a/Marlin/pins_BRAINWAVE_PRO.h b/Marlin/pins_BRAINWAVE_PRO.h index c79f04eb65..8ea2ab2f0a 100644 --- a/Marlin/pins_BRAINWAVE_PRO.h +++ b/Marlin/pins_BRAINWAVE_PRO.h @@ -60,21 +60,15 @@ #define E0_ENABLE_PIN 13 #define HEATER_0_PIN 15 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 14 // Bed #define FAN_PIN 16 // Fan, PWM #define TEMP_0_PIN 2 // Extruder / Analog pin numbering #define TEMP_1_PIN 1 // Spare / Analog pin numbering -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 0 // Bed / Analog pin numbering -#define SDPOWER -1 #define SDSS 20 #define LED_PIN 19 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define SD_DETECT_PIN 12 #if DISABLED(SDSUPPORT) diff --git a/Marlin/pins_CHEAPTRONIC.h b/Marlin/pins_CHEAPTRONIC.h index 1bbd979520..be602e3221 100644 --- a/Marlin/pins_CHEAPTRONIC.h +++ b/Marlin/pins_CHEAPTRONIC.h @@ -35,27 +35,20 @@ #define X_DIR_PIN 15 #define X_ENABLE_PIN 24 -// X endstop -#define X_MIN_PIN 3 -#define X_MAX_PIN -1 - // Y motor stepper #define Y_STEP_PIN 35 #define Y_DIR_PIN 36 #define Y_ENABLE_PIN 31 -// Y endstop -#define Y_MIN_PIN 2 -#define Y_MAX_PIN -1 - // Z motor stepper #define Z_STEP_PIN 40 #define Z_DIR_PIN 41 #define Z_ENABLE_PIN 37 -// Z endstop -#define Z_MIN_PIN 5 -#define Z_MAX_PIN -1 +// XYZ endstops +#define X_STOP_PIN 3 +#define Y_STOP_PIN 2 +#define Z_STOP_PIN 5 // Extruder 0 stepper #define E0_STEP_PIN 26 @@ -67,27 +60,14 @@ #define E1_DIR_PIN 34 #define E1_ENABLE_PIN 30 -#define SDPOWER -1 -#define SDSS -1 -#define LED_PIN -1 - -// FAN -#define FAN_PIN -1 - -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define HEATER_0_PIN 19 // EXTRUDER 1 #define HEATER_1_PIN 23 // EXTRUDER 2 -// HeatedBad #define HEATER_BED_PIN 22 -// Cheaptronic v1.0 hasent EXTRUDER 3 -#define HEATER_2_PIN -1 // Temperature sensors #define TEMP_0_PIN 15 #define TEMP_1_PIN 14 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 13 // Cheaptronic v1.0 doesn't support LCD @@ -108,4 +88,3 @@ #define BLEN_A 0 // Cheaptronic v1.0 doesn't use this -#define SD_DETECT_PIN -1 diff --git a/Marlin/pins_ELEFU_3.h b/Marlin/pins_ELEFU_3.h index 23f8b944f1..876cba1d43 100644 --- a/Marlin/pins_ELEFU_3.h +++ b/Marlin/pins_ELEFU_3.h @@ -58,9 +58,6 @@ #define E0_DIR_PIN 41 #define E0_ENABLE_PIN 37 -#define SDPOWER -1 -#define LED_PIN -1 //Use +12V Aux port for LED Ring - #define FAN_PIN 16 //5V PWM #define PS_ON_PIN 10 //Set to -1 if using a manual switch on the PWRSW Connector @@ -77,8 +74,6 @@ #define BEEPER_PIN 36 -#define KILL_PIN -1 - // M240 Triggers a camera by emulating a Canon RC-1 Remote // Data from: http://www.doc-diy.net/photo/rc-1_hacked/ #define PHOTOGRAPH_PIN 29 diff --git a/Marlin/pins_GEN3_MONOLITHIC.h b/Marlin/pins_GEN3_MONOLITHIC.h index ba61fd2a68..baae6c87a0 100644 --- a/Marlin/pins_GEN3_MONOLITHIC.h +++ b/Marlin/pins_GEN3_MONOLITHIC.h @@ -62,22 +62,7 @@ #define HEATER_0_PIN 16 #define TEMP_0_PIN 0 -#define FAN_PIN -1 - -// bed pins -#define HEATER_BED_PIN -1 -#define TEMP_BED_PIN -1 - - -#define SDSS -1 -#define SDPOWER -1 -#define LED_PIN -1 - // pin for controlling the PSU. #define PS_ON_PIN 14 // Alex, Do this work on the card? // Alex extras from Gen3+ -#define KILL_PIN -1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define HEATER_2_PIN -1 diff --git a/Marlin/pins_GEN3_PLUS.h b/Marlin/pins_GEN3_PLUS.h index 15241bfb53..6eb149ae6c 100644 --- a/Marlin/pins_GEN3_PLUS.h +++ b/Marlin/pins_GEN3_PLUS.h @@ -43,12 +43,7 @@ #define E0_STEP_PIN 17 #define E0_DIR_PIN 21 -#define LED_PIN -1 - -#define FAN_PIN -1 - #define PS_ON_PIN 14 -#define KILL_PIN -1 #define HEATER_0_PIN 12 // (extruder) @@ -59,9 +54,5 @@ #define E0_ENABLE_PIN 13 #define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) -#define SDPOWER -1 #define SDSS 4 -#define HEATER_2_PIN -1 diff --git a/Marlin/pins_GEN6.h b/Marlin/pins_GEN6.h index 6d1ce468da..97703515f7 100644 --- a/Marlin/pins_GEN6.h +++ b/Marlin/pins_GEN6.h @@ -53,28 +53,15 @@ #define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715 #define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715 #define TEMP_0_PIN 5 //changed @ rkoeppl 20110410 -#define TEMP_1_PIN -1 //changed @ rkoeppl 20110410 - -#define TEMP_2_PIN -1 //changed @ rkoeppl 20110410 #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#if MB(GEN6) - #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 - #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 -#else +#if !MB(GEN6) #define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410 #define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410 #endif -#define SDPOWER -1 #define SDSS 17 -#define LED_PIN -1 //changed @ rkoeppl 20110410 -#define FAN_PIN -1 //changed @ rkoeppl 20110410 -#define PS_ON_PIN -1 //changed @ rkoeppl 20110410 -#define KILL_PIN -1 //changed @ drakelive 20120830 //our pin for debugging. #define DEBUG_PIN 0 diff --git a/Marlin/pins_GEN7_12.h b/Marlin/pins_GEN7_12.h index 0c23c06482..0d8c73d123 100644 --- a/Marlin/pins_GEN7_12.h +++ b/Marlin/pins_GEN7_12.h @@ -57,25 +57,14 @@ #define E0_ENABLE_PIN 24 #define TEMP_0_PIN 1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 2 #define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 3 -#define KILL_PIN -1 -#define SDPOWER -1 -#define SDSS -1 // SCL pin of I2C header -#define LED_PIN -1 - -#if (GEN7_VERSION >= 13) - // Gen7 v1.3 removed the fan pin - #define FAN_PIN -1 -#else +// Gen7 v1.3 removed the fan pin +#if GEN7_VERSION < 13 #define FAN_PIN 31 #endif diff --git a/Marlin/pins_GEN7_14.h b/Marlin/pins_GEN7_14.h index 04a4fce1ac..87e9381347 100644 --- a/Marlin/pins_GEN7_14.h +++ b/Marlin/pins_GEN7_14.h @@ -54,23 +54,11 @@ #define E0_ENABLE_PIN 25 #define TEMP_0_PIN 1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 0 #define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 3 -#define KILL_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 // SCL pin of I2C header -#define LED_PIN -1 - -#define FAN_PIN -1 - #define PS_ON_PIN 15 //our pin for debugging. @@ -79,4 +67,3 @@ //our RS485 pins #define TX_ENABLE_PIN 12 #define RX_ENABLE_PIN 13 - diff --git a/Marlin/pins_GEN7_CUSTOM.h b/Marlin/pins_GEN7_CUSTOM.h index 9150a41b9e..a93aded8e0 100644 --- a/Marlin/pins_GEN7_CUSTOM.h +++ b/Marlin/pins_GEN7_CUSTOM.h @@ -55,20 +55,13 @@ #define E0_ENABLE_PIN 24 #define TEMP_0_PIN 2 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) #define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 3 // (bed) -#define SDPOWER -1 #define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support -#define LED_PIN -1 -#define FAN_PIN -1 #define PS_ON_PIN 19 //our pin for debugging. @@ -79,10 +72,7 @@ //#define RX_ENABLE_PIN 13 #define BEEPER_PIN -1 -#define SD_DETECT_PIN -1 -#define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work -#define KILL_PIN -1 //Pins for 4bit LCD Support #define LCD_PINS_RS 18 #define LCD_PINS_ENABLE 17 diff --git a/Marlin/pins_LEAPFROG.h b/Marlin/pins_LEAPFROG.h index 8d1a2401a9..153d16afaf 100644 --- a/Marlin/pins_LEAPFROG.h +++ b/Marlin/pins_LEAPFROG.h @@ -54,13 +54,9 @@ #define E1_DIR_PIN 40 //40 #define E1_ENABLE_PIN 36 //36 -#define SDPOWER -1 #define SDSS 11 -#define SD_DETECT_PIN -1 // 10 optional also used as mode pin #define LED_PIN 13 #define FAN_PIN 7 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define SOL1_PIN 16 #define SOL2_PIN 17 @@ -69,7 +65,6 @@ #define HEATER_2_PIN 11 //-1 // 13 #define TEMP_0_PIN 13 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! #define TEMP_1_PIN 15 // 1 -#define TEMP_2_PIN -1 // 2 #define HEATER_BED_PIN 10 // 14/15 #define TEMP_BED_PIN 14 // 1,2 or I2C /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ diff --git a/Marlin/pins_MEGACONTROLLER.h b/Marlin/pins_MEGACONTROLLER.h index 61cd91be01..9e01e689ea 100644 --- a/Marlin/pins_MEGACONTROLLER.h +++ b/Marlin/pins_MEGACONTROLLER.h @@ -63,7 +63,6 @@ #define E1_DIR_PIN 27 #define E1_ENABLE_PIN 25 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 @@ -72,12 +71,9 @@ #define FAN2_PIN 36 #define FAN_SOFT_PWM #define CONTROLLERFAN_PIN FAN2_PIN -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define HEATER_0_PIN 29 // EXTRUDER 1 #define HEATER_1_PIN 34 // EXTRUDER 2 -#define HEATER_2_PIN -1 #if TEMP_SENSOR_0 == -1 #define TEMP_0_PIN 4 // ANALOG NUMBERING @@ -85,7 +81,6 @@ #define TEMP_0_PIN 0 // ANALOG NUMBERING #endif - #if TEMP_SENSOR_1 == -1 #define TEMP_1_PIN 5 // ANALOG NUMBERING #else diff --git a/Marlin/pins_MEGATRONICS.h b/Marlin/pins_MEGATRONICS.h index e25cf8a55b..69c08a1aeb 100644 --- a/Marlin/pins_MEGATRONICS.h +++ b/Marlin/pins_MEGATRONICS.h @@ -56,28 +56,22 @@ #define E1_DIR_PIN 36 #define E1_ENABLE_PIN 30 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 - #define FAN_PIN 7 // IO pin. Buffer needed #define PS_ON_PIN 12 -#define KILL_PIN -1 #define HEATER_0_PIN 9 #define HEATER_1_PIN 8 -#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 10 // BED #if TEMP_SENSOR_0 == -1 #define TEMP_0_PIN 8 // ANALOG NUMBERING #else #define TEMP_0_PIN 13 // ANALOG NUMBERING #endif - #define TEMP_1_PIN 15 // ANALOG NUMBERING -#define TEMP_2_PIN -1 // ANALOG NUMBERING -#define HEATER_BED_PIN 10 // BED #define TEMP_BED_PIN 14 // ANALOG NUMBERING #define BEEPER_PIN 33 // AUX-4 diff --git a/Marlin/pins_MEGATRONICS_2.h b/Marlin/pins_MEGATRONICS_2.h index 186f154275..0c5c17dc15 100644 --- a/Marlin/pins_MEGATRONICS_2.h +++ b/Marlin/pins_MEGATRONICS_2.h @@ -60,45 +60,36 @@ #define E2_DIR_PIN 24 #define E2_ENABLE_PIN 22 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define FAN_PIN 7 #define FAN2_PIN 6 #define PS_ON_PIN 12 -#define KILL_PIN -1 - -#define HEATER_0_PIN 9 // EXTRUDER 1 -#define HEATER_1_PIN 8 // EXTRUDER 2 -#define HEATER_2_PIN -1 +#define HEATER_0_PIN 9 // EXTRUDER 1 #if TEMP_SENSOR_0 == -1 - #define TEMP_0_PIN 4 // ANALOG NUMBERING + #define TEMP_0_PIN 4 // ANALOG NUMBERING #else #define TEMP_0_PIN 13 // ANALOG NUMBERING #endif - +#define HEATER_1_PIN 8 // EXTRUDER 2 #if TEMP_SENSOR_1 == -1 - #define TEMP_1_PIN 8 // ANALOG NUMBERING + #define TEMP_1_PIN 8 // ANALOG NUMBERING #else #define TEMP_1_PIN 15 // ANALOG NUMBERING #endif -#define TEMP_2_PIN -1 // ANALOG NUMBERING - #define HEATER_BED_PIN 10 // BED - #if TEMP_SENSOR_BED == -1 - #define TEMP_BED_PIN 8 // ANALOG NUMBERING + #define TEMP_BED_PIN 8 // ANALOG NUMBERING #else #define TEMP_BED_PIN 14 // ANALOG NUMBERING #endif #define BEEPER_PIN 64 - #define LCD_PINS_RS 14 #define LCD_PINS_ENABLE 15 #define LCD_PINS_D4 30 @@ -106,7 +97,6 @@ #define LCD_PINS_D6 32 #define LCD_PINS_D7 33 - // Buttons are directly attached using keypad #define BTN_EN1 61 #define BTN_EN2 59 @@ -116,4 +106,3 @@ #define BLEN_B 1 #define BLEN_A 0 -#define SD_DETECT_PIN -1 // Megatronics doesn't use this diff --git a/Marlin/pins_MEGATRONICS_3.h b/Marlin/pins_MEGATRONICS_3.h index 46f98807b2..93d6480a38 100644 --- a/Marlin/pins_MEGATRONICS_3.h +++ b/Marlin/pins_MEGATRONICS_3.h @@ -30,7 +30,6 @@ #define LARGE_FLASH true - #if ENABLED(Z_PROBE_SLED) #define SLED_PIN -1 #endif @@ -71,12 +70,10 @@ #define E2_DIR_PIN 60 #define E2_ENABLE_PIN 23 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define PS_ON_PIN 12 -#define KILL_PIN -1 #define HEATER_0_PIN 2 #define HEATER_1_PIN 9 @@ -85,10 +82,26 @@ #define FAN_PIN 6 #define FAN2_PIN 7 -#define TEMP_0_PIN (TEMP_SENSOR_0 == -1 ? 11 : 15) // ANALOG NUMBERING -#define TEMP_1_PIN (TEMP_SENSOR_1 == -1 ? 10 : 13) // ANALOG NUMBERING -#define TEMP_2_PIN (TEMP_SENSOR_2 == -1 ? 9 : 12) // ANALOG NUMBERING -#define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING +#if TEMP_SENSOR_0 == -1 + #define TEMP_0_PIN 11 // ANALOG NUMBERING +#else + #define TEMP_0_PIN 15 // ANALOG NUMBERING +#endif +#if TEMP_SENSOR_1 == -1 + #define TEMP_1_PIN 10 // ANALOG NUMBERING +#else + #define TEMP_1_PIN 13 // ANALOG NUMBERING +#endif +#if TEMP_SENSOR_2 == -1 + #define TEMP_2_PIN 9 // ANALOG NUMBERING +#else + #define TEMP_2_PIN 12 // ANALOG NUMBERING +#endif +#if TEMP_SENSOR_BED == -1 + #define TEMP_BED_PIN 8 // ANALOG NUMBERING +#else + #define TEMP_BED_PIN 14 // ANALOG NUMBERING +#endif #define BEEPER_PIN 61 @@ -113,4 +126,3 @@ #define BLEN_B 1 #define BLEN_A 0 -#define SD_DETECT_PIN -1 // Megatronics doesn't use this diff --git a/Marlin/pins_MINIRAMBO.h b/Marlin/pins_MINIRAMBO.h index a67dd9c3a8..dd2361df4e 100644 --- a/Marlin/pins_MINIRAMBO.h +++ b/Marlin/pins_MINIRAMBO.h @@ -30,18 +30,6 @@ #define LARGE_FLASH true - -#undef X_MS1_PIN -#undef X_MS2_PIN -#undef Y_MS1_PIN -#undef Y_MS2_PIN -#undef Z_MS1_PIN -#undef Z_MS2_PIN -#undef E0_MS1_PIN -#undef E0_MS2_PIN -#undef E1_MS1_PIN -#undef E1_MS2_PIN - #define X_STEP_PIN 37 #define X_DIR_PIN 48 #define X_MIN_PIN 12 @@ -77,12 +65,8 @@ #if ENABLED(BARICUDA) #define HEATER_2_PIN 6 -#else - #define HEATER_2_PIN -1 #endif -#define TEMP_2_PIN -1 - #define E0_STEP_PIN 34 #define E0_DIR_PIN 43 #define E0_ENABLE_PIN 26 @@ -92,8 +76,6 @@ #define E1_STEP_PIN -1 #define E1_DIR_PIN -1 #define E1_ENABLE_PIN -1 -#define E1_MS1_PIN -1 -#define E1_MS2_PIN -1 #define MOTOR_CURRENT_PWM_XY_PIN 46 #define MOTOR_CURRENT_PWM_Z_PIN 45 @@ -101,14 +83,10 @@ //Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range #define MOTOR_CURRENT_PWM_RANGE 2000 #define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250} -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define FAN_PIN 8 #define FAN_1_PIN 6 -#define PS_ON_PIN -1 -#define KILL_PIN -1 // 80 with Smart Controller LCD -#define SUICIDE_PIN -1 // PIN that has to be turned on right after start, to keep power flowing. #if ENABLED(ULTRA_LCD) diff --git a/Marlin/pins_MINITRONICS.h b/Marlin/pins_MINITRONICS.h index 8bd7b5fc1e..6677145ef8 100644 --- a/Marlin/pins_MINITRONICS.h +++ b/Marlin/pins_MINITRONICS.h @@ -60,26 +60,18 @@ #define E2_DIR_PIN -1 #define E2_ENABLE_PIN -1 -#define SDPOWER -1 #define SDSS 16 #define LED_PIN 46 #define FAN_PIN 9 -#define FAN2_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define HEATER_0_PIN 7 // EXTRUDER 1 -#define HEATER_1_PIN 8 // EXTRUDER 2 -#define HEATER_2_PIN -1 - - -#define TEMP_0_PIN 7 // ANALOG NUMBERING -#define TEMP_1_PIN 6 // ANALOG NUMBERING -#define TEMP_2_PIN -1 // ANALOG NUMBERING +#define TEMP_0_PIN 7 // ANALOG NUMBERING +#define TEMP_1_PIN 6 // ANALOG NUMBERING +#define TEMP_BED_PIN 6 // ANALOG NUMBERING +#define HEATER_0_PIN 7 // EXTRUDER 1 +#define HEATER_1_PIN 8 // EXTRUDER 2 #define HEATER_BED_PIN 3 // BED -#define TEMP_BED_PIN 6 // ANALOG NUMBERING #define BEEPER_PIN -1 @@ -90,7 +82,6 @@ #define LCD_PINS_D6 -1 #define LCD_PINS_D7 -1 - // Buttons are directly attached using keypad #define BTN_EN1 -1 #define BTN_EN2 -1 @@ -100,4 +91,3 @@ #define BLEN_B 1 #define BLEN_A 0 -#define SD_DETECT_PIN -1 // Minitronics doesn't use this diff --git a/Marlin/pins_OMCA.h b/Marlin/pins_OMCA.h index e98439608f..85a140423f 100644 --- a/Marlin/pins_OMCA.h +++ b/Marlin/pins_OMCA.h @@ -90,23 +90,14 @@ #define E2_DIR_PIN -1 // 20 #define E2_ENABLE_PIN -1 // 18 -#define SDPOWER -1 #define SDSS 11 -#define SD_DETECT_PIN -1 // 10 optional also used as mode pin -#define LED_PIN -1 #define FAN_PIN 14 // PWM on MIDDLE connector -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define HEATER_0_PIN 3 // DONE PWM on RIGHT connector -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 4 + #define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING #define TEMP_1_PIN 1 // ANALOG -#define TEMP_2_PIN -1 // 2 -#define HEATER_BED_PIN 4 #define TEMP_BED_PIN 2 // 1,2 or I2C #define I2C_SCL 16 diff --git a/Marlin/pins_OMCA_A.h b/Marlin/pins_OMCA_A.h index 147006de75..6e1536e579 100644 --- a/Marlin/pins_OMCA_A.h +++ b/Marlin/pins_OMCA_A.h @@ -81,20 +81,10 @@ #define E2_DIR_PIN -1 // 16 #define E2_ENABLE_PIN 24 -#define SDPOWER -1 #define SDSS 11 -#define SD_DETECT_PIN -1 // 10 optional also used as mode pin -#define LED_PIN -1 #define FAN_PIN 3 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 // 12 -#define HEATER_2_PIN -1 // 13 #define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 // 1 -#define TEMP_2_PIN -1 // 2 -#define HEATER_BED_PIN -1 // 14/15 -#define TEMP_BED_PIN -1 // 1,2 or I2C + /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ diff --git a/Marlin/pins_PRINTRBOARD.h b/Marlin/pins_PRINTRBOARD.h index bd269fc926..875bcfc5ca 100644 --- a/Marlin/pins_PRINTRBOARD.h +++ b/Marlin/pins_PRINTRBOARD.h @@ -81,16 +81,9 @@ #define FILWIDTH_PIN 2 // ANALOG NUMBERING -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - ////LCD Pin Setup//// -#define SDPOWER -1 #define SDSS 26 -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support diff --git a/Marlin/pins_PRINTRBOARD_REVF.h b/Marlin/pins_PRINTRBOARD_REVF.h index bf4e2b4a41..c6317c3d8f 100644 --- a/Marlin/pins_PRINTRBOARD_REVF.h +++ b/Marlin/pins_PRINTRBOARD_REVF.h @@ -75,17 +75,9 @@ #define FILWIDTH_PIN 2 // ANALOG NUMBERING -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - ////LCD Pin Setup//// -#define SDPOWER -1 #define SDSS 20 // Teensylu pin mapping -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define ALARM_PIN -1 // uncomment to enable an I2C based DAC like on the Printrboard REVF #define DAC_STEPPER_CURRENT diff --git a/Marlin/pins_RAMBO.h b/Marlin/pins_RAMBO.h index 39da6c75d4..69c5bcdfd0 100644 --- a/Marlin/pins_RAMBO.h +++ b/Marlin/pins_RAMBO.h @@ -40,17 +40,6 @@ #define SLED_PIN -1 #endif -#undef X_MS1_PIN -#undef X_MS2_PIN -#undef Y_MS1_PIN -#undef Y_MS2_PIN -#undef Z_MS1_PIN -#undef Z_MS2_PIN -#undef E0_MS1_PIN -#undef E0_MS2_PIN -#undef E1_MS1_PIN -#undef E1_MS2_PIN - #define X_STEP_PIN 37 #define X_DIR_PIN 48 #define X_MIN_PIN 12 @@ -86,12 +75,8 @@ #if ENABLED(BARICUDA) #define HEATER_2_PIN 6 -#else - #define HEATER_2_PIN -1 #endif -#define TEMP_2_PIN -1 - #define E0_STEP_PIN 34 #define E0_DIR_PIN 43 #define E0_ENABLE_PIN 26 @@ -107,7 +92,6 @@ #define DIGIPOTSS_PIN 38 #define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define FAN_PIN 8 @@ -121,8 +105,6 @@ Fan_2 2 ***********************************************************/ #define PS_ON_PIN 4 -#define KILL_PIN -1 //80 with Smart Controller LCD -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. #if ENABLED(ULTRA_LCD) diff --git a/Marlin/pins_RAMPS_14.h b/Marlin/pins_RAMPS_14.h index dc1f219d39..dd22ac6fac 100644 --- a/Marlin/pins_RAMPS_14.h +++ b/Marlin/pins_RAMPS_14.h @@ -87,7 +87,6 @@ #define E1_DIR_PIN 34 #define E1_ENABLE_PIN 30 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 @@ -125,27 +124,18 @@ #define HEATER_0_PIN 8 #else #define HEATER_0_PIN 10 // EXTRUDER 1 + #if !MB(RAMPS_14_EEF) && !MB(RAMPS_13_EEF) && !MB(RAMPS_14_SF) && !MB(RAMPS_13_SF) + #define HEATER_BED_PIN 8 // BED + #endif #endif -#if MB(RAMPS_14_SF) || MB(RAMPS_13_SF) || ENABLED(IS_RAMPS_EFB) - #define HEATER_1_PIN -1 -#else +#if !MB(RAMPS_14_SF) && !MB(RAMPS_13_SF) && !ENABLED(IS_RAMPS_EFB) #define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter) #endif -#define HEATER_2_PIN -1 - #define TEMP_0_PIN 13 // ANALOG NUMBERING #define TEMP_1_PIN 15 // ANALOG NUMBERING -#define TEMP_2_PIN -1 // ANALOG NUMBERING - -#if MB(RAMPS_14_EFF) || MB(RAMPS_14_EEF) || MB(RAMPS_14_SF) || MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF) || MB(RAMPS_13_SF) - #define HEATER_BED_PIN -1 // NO BED -#else - #define HEATER_BED_PIN 8 // BED -#endif - -#define TEMP_BED_PIN 14 // ANALOG NUMBERING +#define TEMP_BED_PIN 14 // ANALOG NUMBERING #if ENABLED(Z_PROBE_SLED) #define SLED_PIN -1 diff --git a/Marlin/pins_RAMPS_OLD.h b/Marlin/pins_RAMPS_OLD.h index 25193c8ed8..951da2255b 100644 --- a/Marlin/pins_RAMPS_OLD.h +++ b/Marlin/pins_RAMPS_OLD.h @@ -56,8 +56,6 @@ #define SDPOWER 48 #define SDSS 53 #define LED_PIN 13 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #if ENABLED(RAMPS_V_1_0) // RAMPS_V_1_0 #define HEATER_0_PIN 12 // RAMPS 1.0 @@ -69,11 +67,7 @@ #define FAN_PIN 9 // RAMPS 1.1 #endif -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! // SPI for Max6675 or Max31855 Thermocouple diff --git a/Marlin/pins_RUMBA.h b/Marlin/pins_RUMBA.h index 8464190c7c..faec91ef11 100644 --- a/Marlin/pins_RUMBA.h +++ b/Marlin/pins_RUMBA.h @@ -77,10 +77,7 @@ #define PS_ON_PIN 45 #define KILL_PIN 46 -#if TEMP_SENSOR_0 == 0 - #define TEMP_0_PIN -1 - #define HEATER_0_PIN -1 -#else +#if TEMP_SENSOR_0 != 0 #define HEATER_0_PIN 2 // EXTRUDER 1 #if TEMP_SENSOR_0 == -1 #define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used @@ -89,10 +86,7 @@ #endif #endif -#if TEMP_SENSOR_1 == 0 - #define TEMP_1_PIN -1 - #define HEATER_1_PIN -1 -#else +#if TEMP_SENSOR_1 != 0 #define HEATER_1_PIN 3 // EXTRUDER 2 #if TEMP_SENSOR_1 == -1 #define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used @@ -101,10 +95,7 @@ #endif #endif -#if TEMP_SENSOR_2 == 0 - #define TEMP_2_PIN -1 - #define HEATER_2_PIN -1 -#else +#if TEMP_SENSOR_2 != 0 #define HEATER_2_PIN 6 // EXTRUDER 3 #if TEMP_SENSOR_2 == -1 #define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple @@ -116,10 +107,7 @@ //optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used //optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4 -#if TEMP_SENSOR_BED == 0 - #define TEMP_BED_PIN -1 - #define HEATER_BED_PIN -1 -#else +#if TEMP_SENSOR_BED != 0 #define HEATER_BED_PIN 9 // BED #if TEMP_SENSOR_BED == -1 #define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple @@ -128,7 +116,6 @@ #endif #endif -#define SDPOWER -1 #define SDSS 53 #define SD_DETECT_PIN 49 #define BEEPER_PIN 44 diff --git a/Marlin/pins_SANGUINOLOLU_11.h b/Marlin/pins_SANGUINOLOLU_11.h index d848548787..a0720da164 100644 --- a/Marlin/pins_SANGUINOLOLU_11.h +++ b/Marlin/pins_SANGUINOLOLU_11.h @@ -43,28 +43,21 @@ #define E0_STEP_PIN 1 #define E0_DIR_PIN 0 -#define LED_PIN -1 -#define FAN_PIN -1 - #if MB(AZTEEG_X1) || MB(STB_11) || MB(MELZI) #define FAN_PIN 4 // Works for Panelolu2 too - #if MB(MELZI) - #define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368. - #elif MB(STB_11) - #define LCD_PIN_BL 17 // LCD backlight LED - #endif +#endif + +#if MB(MELZI) + #define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368. +#elif MB(STB_11) + #define LCD_PIN_BL 17 // LCD backlight LED #endif #if ENABLED(Z_PROBE_SLED) #define SLED_PIN -1 #endif -#define PS_ON_PIN -1 -#define KILL_PIN -1 - #define HEATER_0_PIN 13 // (extruder) -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #if ENABLED(SANGUINOLOLU_V_1_2) @@ -89,10 +82,7 @@ #endif #define TEMP_0_PIN 7 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) -#define SDPOWER -1 #define SDSS 31 /** @@ -190,7 +180,3 @@ #define SD_DETECT_PIN -1 #endif // MAKRPANEL - -// #if FAN_PIN == 12 || FAN_PIN ==13 -//#define FAN_SOFT_PWM -// #endif diff --git a/Marlin/pins_SAV_MKI.h b/Marlin/pins_SAV_MKI.h index 579d653e09..323380bb1f 100644 --- a/Marlin/pins_SAV_MKI.h +++ b/Marlin/pins_SAV_MKI.h @@ -53,12 +53,9 @@ #define E0_ENABLE_PIN 19 #define HEATER_0_PIN 21 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 20 // Bed #define FAN_PIN 16 // Fan -- from Teensyduino environment. // For the fan and Teensyduino uses a different pin mapping. - #define X_STOP_PIN 13 #define Y_STOP_PIN 14 //#define Z_STOP_PIN 15 @@ -67,9 +64,6 @@ #define TEMP_0_PIN 7 // Extruder / Analog pin numbering #define TEMP_BED_PIN 6 // Bed / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support #define SCK_PIN 9 @@ -104,11 +98,6 @@ #define EXT_AUX_A4_IO 44 // Digital IO, 42 (teensy), 44 (marlin) -#define SDPOWER -1 -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define SD_DETECT_PIN -1 - #define BEEPER_PIN -1 #define LCD_PINS_RS -1 #define LCD_PINS_ENABLE -1 diff --git a/Marlin/pins_SETHI.h b/Marlin/pins_SETHI.h index e16b45cea2..531ac07ef3 100644 --- a/Marlin/pins_SETHI.h +++ b/Marlin/pins_SETHI.h @@ -57,20 +57,11 @@ #define E0_ENABLE_PIN 24 #define TEMP_0_PIN 1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 #define TEMP_BED_PIN 2 #define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 3 -#define KILL_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 // SCL pin of I2C header -#define LED_PIN -1 #if (GEN7_VERSION >= 13) // Gen7 v1.3 removed the fan pin diff --git a/Marlin/pins_TEENSY2.h b/Marlin/pins_TEENSY2.h index eb27ae97d6..8335af0e23 100644 --- a/Marlin/pins_TEENSY2.h +++ b/Marlin/pins_TEENSY2.h @@ -93,8 +93,6 @@ #define E0_ENABLE_PIN 26 // Shared w/x #define HEATER_0_PIN 15 // 21 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 #define HEATER_BED_PIN 14 // 20 // Bed #define FAN_PIN 16 // 22 // Fan @@ -104,15 +102,10 @@ #define TEMP_0_PIN 7 // Extruder / Analog pin numbering #define TEMP_BED_PIN 6 // Bed / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define SDPOWER -1 -#define SD_DETECT_PIN -1 #define SDSS 20 // 8 #define LED_PIN 6 #define PS_ON_PIN 27 -#define KILL_PIN -1 #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support diff --git a/Marlin/pins_TEENSYLU.h b/Marlin/pins_TEENSYLU.h index ea1492429b..16c23c9555 100644 --- a/Marlin/pins_TEENSYLU.h +++ b/Marlin/pins_TEENSYLU.h @@ -72,14 +72,7 @@ #define TEMP_0_PIN 7 // Extruder / Analog pin numbering #define TEMP_BED_PIN 6 // Bed / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - -#define SDPOWER -1 #define SDSS 8 -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 #if DISABLED(SDSUPPORT) // these pins are defined in the SD library if building with SD support diff --git a/Marlin/pins_ULTIMAIN_2.h b/Marlin/pins_ULTIMAIN_2.h index 8682a54fce..33f63f11ca 100644 --- a/Marlin/pins_ULTIMAIN_2.h +++ b/Marlin/pins_ULTIMAIN_2.h @@ -55,9 +55,6 @@ #define HEATER_1_PIN 3 #define TEMP_1_PIN 9 -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 - #define E0_STEP_PIN 42 #define E0_DIR_PIN 43 #define E0_ENABLE_PIN 37 @@ -66,13 +63,9 @@ #define E1_DIR_PIN 47 #define E1_ENABLE_PIN 48 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 8 #define FAN_PIN 7 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. #define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered #define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider. diff --git a/Marlin/pins_ULTIMAKER.h b/Marlin/pins_ULTIMAKER.h index ab7a5da832..ef0b0237ee 100644 --- a/Marlin/pins_ULTIMAKER.h +++ b/Marlin/pins_ULTIMAKER.h @@ -62,9 +62,6 @@ #define HEATER_1_PIN 3 #define TEMP_1_PIN 9 -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 - #define E0_STEP_PIN 43 #define E0_DIR_PIN 45 #define E0_ENABLE_PIN 41 @@ -73,12 +70,10 @@ #define E1_DIR_PIN 47 #define E1_ENABLE_PIN 48 -#define SDPOWER -1 #define SDSS 53 #define LED_PIN 13 #define FAN_PIN 7 #define PS_ON_PIN 12 -#define KILL_PIN -1 #define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. #if ENABLED(ULTRA_LCD) diff --git a/Marlin/pins_ULTIMAKER_OLD.h b/Marlin/pins_ULTIMAKER_OLD.h index e2d48e67d6..a3c9ee76f8 100644 --- a/Marlin/pins_ULTIMAKER_OLD.h +++ b/Marlin/pins_ULTIMAKER_OLD.h @@ -51,17 +51,11 @@ #define Z_MAX_PIN 18 #define Z_ENABLE_PIN 35 -#define HEATER_BED_PIN -1 -#define TEMP_BED_PIN -1 - -#define HEATER_0_PIN 2 #define TEMP_0_PIN 8 - -#define HEATER_1_PIN 1 #define TEMP_1_PIN 1 -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 +#define HEATER_0_PIN 2 +#define HEATER_1_PIN 1 #define E0_STEP_PIN 43 #define E0_DIR_PIN 45 @@ -71,14 +65,6 @@ #define E1_DIR_PIN -1 #define E1_ENABLE_PIN -1 -#define SDPOWER -1 -#define SDSS -1 -#define LED_PIN -1 -#define FAN_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. - #define LCD_PINS_RS 24 #define LCD_PINS_ENABLE 22 #define LCD_PINS_D4 36 From 15fc93d7420b7fcc3bcf76c7ca1e5c803aa3af88 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Tue, 3 May 2016 20:15:18 -0700 Subject: [PATCH 208/383] Cleanup and consolidate probe conditionals for clarity --- Marlin/Conditionals.h | 17 +++----- Marlin/Marlin_main.cpp | 8 ++-- Marlin/SanityCheck.h | 97 ++++++++++++++++++++++++++++-------------- Marlin/endstops.cpp | 10 ++--- Marlin/endstops.h | 2 +- Marlin/stepper.cpp | 2 +- 6 files changed, 83 insertions(+), 53 deletions(-) diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index 89b9f0d6bf..41dcec76c3 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -628,7 +628,7 @@ #define HAS_Z_MAX (PIN_EXISTS(Z_MAX)) #define HAS_Z2_MIN (PIN_EXISTS(Z2_MIN)) #define HAS_Z2_MAX (PIN_EXISTS(Z2_MAX)) - #define HAS_Z_PROBE (PIN_EXISTS(Z_MIN_PROBE)) + #define HAS_Z_MIN_PROBE_PIN (PIN_EXISTS(Z_MIN_PROBE)) #define HAS_SOLENOID_1 (PIN_EXISTS(SOL1)) #define HAS_SOLENOID_2 (PIN_EXISTS(SOL2)) #define HAS_SOLENOID_3 (PIN_EXISTS(SOL3)) @@ -742,16 +742,11 @@ #endif #endif - #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) \ - && ( \ - ENABLED(FIX_MOUNTED_PROBE) \ - || ENABLED(MECHANICAL_PROBE) \ - || HAS_Z_ENDSTOP_SERVO \ - || ENABLED(Z_PROBE_ALLEN_KEY) \ - || ENABLED(Z_PROBE_SLED) \ - ) - #define HAS_Z_MIN_PROBE - #endif + #define PROBE_SELECTED (ENABLED(FIX_MOUNTED_PROBE) || ENABLED(MECHANICAL_PROBE) || HAS_Z_ENDSTOP_SERVO || ENABLED(Z_PROBE_SLED)) + + #define PROBE_PIN_CONFIGURED (HAS_Z_MIN_PROBE_PIN || (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))) + + #define HAS_BED_PROBE (PROBE_SELECTED && PROBE_PIN_CONFIGURED) /** * Delta radius/rod trimmers diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0d2d9f5172..5c9e5ff544 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1681,7 +1681,7 @@ static void setup_for_endstop_move() { refresh_cmd_timeout(); } - #if ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE static void deploy_z_probe() { @@ -1878,7 +1878,7 @@ static void setup_for_endstop_move() { endstops.enable_z_probe(false); } - #endif // HAS_Z_MIN_PROBE + #endif // HAS_BED_PROBE enum ProbeAction { ProbeStay = 0, @@ -3579,7 +3579,7 @@ inline void gcode_G28() { } #endif enqueue_and_echo_commands_P(PSTR(Z_PROBE_END_SCRIPT)); - #if ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE endstops.enable_z_probe(false); #endif stepper.synchronize(); @@ -3942,7 +3942,7 @@ inline void gcode_M42() { * Z_MIN_PROBE_PIN, but here for clarity. */ #if ENABLED(Z_MIN_PROBE_ENDSTOP) - #if !HAS_Z_PROBE + #if !HAS_Z_MIN_PROBE_PIN #error You must define Z_MIN_PROBE_PIN to enable Z probe repeatability calculation. #endif #elif !HAS_Z_MIN diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 70553f6f55..71f2c4666e 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -204,50 +204,55 @@ * Probes */ -/** - * A probe needs a pin - */ -#if (!((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE )) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) - #error A probe needs a pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] -#endif +#if PROBE_SELECTED -#if ((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) && HAS_Z_PROBE) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) - #error A probe should not be connected to more than one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE] -#endif + /** + * A probe needs a pin + */ + #if !PROBE_PIN_CONFIGURED + #error A probe needs a pin! Use Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN or Z_MIN_PROBE_PIN. + #endif -/** - * Require one kind of probe - */ -#if ENABLED(AUTO_BED_LEVELING_FEATURE) && !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(MECHANICAL_PROBE) || ENABLED(Z_PROBE_SLED)) - #error For AUTO_BED_LEVELING_FEATURE define one kind of probe! [Servo | MECHANICAL_PROBE | Z_PROBE_SLED | FIX_MOUNTED_PROBE] -#endif + /** + * Z_MIN_PIN and Z_MIN_PROBE_PIN can't co-exist when Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN + */ + #if HAS_Z_MIN && HAS_Z_MIN_PROBE_PIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) + #error A probe cannot have more than one pin! Use Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN or Z_MIN_PROBE_PIN. + #endif -// To do: Fail with more than one probe defined + /** + * Make sure the plug is enabled if it's used + */ + #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && DISABLED(USE_ZMIN_PLUG) + #error You must enable USE_ZMIN_PLUG if any probe or endstop is connected to the ZMIN plug. + #endif -/** - * Auto Bed Leveling - */ -#if ENABLED(AUTO_BED_LEVELING_FEATURE) + /** + * Only allow one probe option to be defined + */ + #if (ENABLED(FIX_MOUNTED_PROBE) && (ENABLED(MECHANICAL_PROBE) || HAS_Z_ENDSTOP_SERVO || ENABLED(Z_PROBE_SLED))) \ + || (ENABLED(MECHANICAL_PROBE) && (HAS_Z_ENDSTOP_SERVO || ENABLED(Z_PROBE_SLED))) \ + || (HAS_Z_ENDSTOP_SERVO && ENABLED(Z_PROBE_SLED)) + #error Please define only one type of probe: Z Servo, MECHANICAL_PROBE, Z_PROBE_SLED, or FIX_MOUNTED_PROBE. + #endif /** - * Require a Z min pin + * Don't allow nonsense probe-pin settings */ - #if !PIN_EXISTS(Z_MIN) - #if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z probe, but not enable it. - #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) - #error You must have a Z_MIN or Z_PROBE endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST. - #else - #error AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_MIN_PROBE_PIN must point to a valid hardware pin. - #endif - #endif + #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(Z_MIN_PROBE_ENDSTOP) + #error You can't enable both Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN and Z_MIN_PROBE_ENDSTOP. + #elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) + #error Don't enable DISABLE_Z_MIN_PROBE_ENDSTOP with Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN. + #elif ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_ENDSTOP) + #error DISABLE_Z_MIN_PROBE_ENDSTOP requires Z_MIN_PROBE_ENDSTOP to be set. #endif /** * Require a Z probe pin if Z_MIN_PROBE_ENDSTOP is enabled. */ #if ENABLED(Z_MIN_PROBE_ENDSTOP) - #if !PIN_EXISTS(Z_MIN_PROBE) - #error You must have a Z_MIN_PROBE_PIN defined in your pins_XXXX.h file if you enable Z_MIN_PROBE_ENDSTOP. + #if !HAS_Z_MIN_PROBE_PIN + #error Z_MIN_PROBE_ENDSTOP requires a Z_MIN_PROBE_PIN in your board's pins_XXXX.h file. #endif // Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment. //#ifndef NUM_SERVOS @@ -263,6 +268,36 @@ // #error You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_MIN_PROBE_ENDSTOP. //#endif #endif + +#else + + /** + * Require some kind of probe for bed leveling + */ + #if ENABLED(AUTO_BED_LEVELING_FEATURE) + #error AUTO_BED_LEVELING_FEATURE requires a probe! Define a Z Servo, MECHANICAL_PROBE, Z_PROBE_SLED, or FIX_MOUNTED_PROBE. + #endif + +#endif + +/** + * Auto Bed Leveling + */ +#if ENABLED(AUTO_BED_LEVELING_FEATURE) + + /** + * Require a Z min pin + */ + #if !PIN_EXISTS(Z_MIN) + #if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z probe, but not enable it. + #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) + #error You must have a Z_MIN or Z_PROBE endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST. + #else + #error AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_MIN_PROBE_PIN must point to a valid hardware pin. + #endif + #endif + #endif + /** * Check if Probe_Offset * Grid Points is greater than Probing Range */ diff --git a/Marlin/endstops.cpp b/Marlin/endstops.cpp index 7eeb7a9f22..22af956c4a 100644 --- a/Marlin/endstops.cpp +++ b/Marlin/endstops.cpp @@ -45,7 +45,7 @@ Endstops::Endstops() { #endif ); enable(true); - #if ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE enable_z_probe(false); #endif } // Endstops::Endstops @@ -108,7 +108,7 @@ void Endstops::init() { #endif #endif - #if HAS_Z_PROBE && ENABLED(Z_MIN_PROBE_ENDSTOP) // Check for Z_MIN_PROBE_ENDSTOP so we don't pull a pin high unless it's to be used. + #if HAS_Z_MIN_PROBE_PIN && ENABLED(Z_MIN_PROBE_ENDSTOP) // Check for Z_MIN_PROBE_ENDSTOP so we don't pull a pin high unless it's to be used. SET_INPUT(Z_MIN_PROBE_PIN); #if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE) WRITE(Z_MIN_PROBE_PIN,HIGH); @@ -195,7 +195,7 @@ void Endstops::M119() { SERIAL_PROTOCOLPGM(MSG_Z2_MAX); SERIAL_PROTOCOLLN(((READ(Z2_MAX_PIN)^Z2_MAX_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); #endif - #if HAS_Z_PROBE + #if HAS_Z_MIN_PROBE_PIN SERIAL_PROTOCOLPGM(MSG_Z_PROBE); SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); #endif @@ -317,7 +317,7 @@ void Endstops::update() { #else // !Z_DUAL_ENDSTOPS - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) if (z_probe_enabled) UPDATE_ENDSTOP(Z, MIN); #else UPDATE_ENDSTOP(Z, MIN); @@ -327,7 +327,7 @@ void Endstops::update() { #endif // HAS_Z_MIN - #if ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE && ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) if (z_probe_enabled) { UPDATE_ENDSTOP(Z, MIN_PROBE); if (TEST_ENDSTOP(Z_MIN_PROBE)) SBI(endstop_hit_bits, Z_MIN_PROBE); diff --git a/Marlin/endstops.h b/Marlin/endstops.h index a72306728e..b3b5837dc3 100644 --- a/Marlin/endstops.h +++ b/Marlin/endstops.h @@ -88,7 +88,7 @@ class Endstops { FORCE_INLINE void hit_on_purpose() { endstop_hit_bits = 0; } // Enable / disable endstop z-probe checking - #if ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE volatile bool z_probe_enabled = false; FORCE_INLINE void enable_z_probe(bool onoff=true) { z_probe_enabled = onoff; } #endif diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp index bcd33d92da..88d54ace47 100644 --- a/Marlin/stepper.cpp +++ b/Marlin/stepper.cpp @@ -282,7 +282,7 @@ void Stepper::isr() { if (current_block != NULL) { // Update endstops state, if enabled - #if ENABLED(HAS_Z_MIN_PROBE) + #if HAS_BED_PROBE if (endstops.enabled || endstops.z_probe_enabled) endstops.update(); #else if (endstops.enabled) endstops.update(); From c2522ce1f50dd5efcf2ab3952a239097b8e3ce59 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 8 May 2016 16:51:33 -0700 Subject: [PATCH 209/383] Fallthru in thermal runaway test when TRState changes --- Marlin/temperature.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index f8c85fbc96..a8f9c916ff 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1056,24 +1056,21 @@ void Temperature::init() { *state = TRInactive; // Inactive state waits for a target temperature to be set case TRInactive: - if (target_temperature > 0) { - tr_target_temperature[heater_index] = target_temperature; - *state = TRFirstHeating; - } - break; + if (target_temperature <= 0) break; + tr_target_temperature[heater_index] = target_temperature; + *state = TRFirstHeating; // When first heating, wait for the temperature to be reached then go to Stable state case TRFirstHeating: - if (temperature >= tr_target_temperature[heater_index]) *state = TRStable; - break; + if (temperature < tr_target_temperature[heater_index]) break; + *state = TRStable; // While the temperature is stable watch for a bad temperature case TRStable: - // If the temperature is over the target (-hysteresis) restart the timer - if (temperature >= tr_target_temperature[heater_index] - hysteresis_degc) - *timer = millis(); - // If the timer goes too long without a reset, trigger shutdown - else if (ELAPSED(millis(), *timer + period_seconds * 1000UL)) + if (temperature < tr_target_temperature[heater_index] - hysteresis_degc && ELAPSED(millis(), *timer)) *state = TRRunaway; - break; + else { + *timer = millis() + period_seconds * 1000UL; + break; + } case TRRunaway: _temp_error(heater_id, PSTR(MSG_T_THERMAL_RUNAWAY), PSTR(MSG_THERMAL_RUNAWAY)); } From 6b13c430ae587c87f3d94485dbb7a16f905196f2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 8 May 2016 17:01:46 -0700 Subject: [PATCH 210/383] The TRReset state is not needed with fall-through --- Marlin/temperature.cpp | 5 +---- Marlin/temperature.h | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index a8f9c916ff..8879b4737f 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1048,12 +1048,9 @@ void Temperature::init() { // If the target temperature changes, restart if (tr_target_temperature[heater_index] != target_temperature) - *state = TRReset; + *state = TRInactive; switch (*state) { - case TRReset: - *timer = 0; - *state = TRInactive; // Inactive state waits for a target temperature to be set case TRInactive: if (target_temperature <= 0) break; diff --git a/Marlin/temperature.h b/Marlin/temperature.h index 41e4ac16fd..a178f1fed0 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -358,17 +358,17 @@ class Temperature { #if ENABLED(THERMAL_PROTECTION_HOTENDS) || HAS_THERMALLY_PROTECTED_BED - typedef enum TRState { TRReset, TRInactive, TRFirstHeating, TRStable, TRRunaway } TRstate; + typedef enum TRState { TRInactive, TRFirstHeating, TRStable, TRRunaway } TRstate; void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc); #if ENABLED(THERMAL_PROTECTION_HOTENDS) - TRState thermal_runaway_state_machine[EXTRUDERS] = { TRReset }; + TRState thermal_runaway_state_machine[EXTRUDERS] = { TRInactive }; millis_t thermal_runaway_timer[EXTRUDERS] = { 0 }; #endif #if HAS_THERMALLY_PROTECTED_BED - TRState thermal_runaway_bed_state_machine = TRReset; + TRState thermal_runaway_bed_state_machine = TRInactive; millis_t thermal_runaway_bed_timer; #endif From 9b92bb8f31217cf785979a7f24ea74f6b574942e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 8 May 2016 17:07:45 -0700 Subject: [PATCH 211/383] Set the initial state based on target temperature --- Marlin/temperature.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index 8879b4737f..19e66c6742 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -1047,15 +1047,14 @@ void Temperature::init() { int heater_index = heater_id >= 0 ? heater_id : EXTRUDERS; // If the target temperature changes, restart - if (tr_target_temperature[heater_index] != target_temperature) - *state = TRInactive; + if (tr_target_temperature[heater_index] != target_temperature) { + tr_target_temperature[heater_index] = target_temperature; + *state = target_temperature > 0 ? TRFirstHeating : TRInactive; + } switch (*state) { // Inactive state waits for a target temperature to be set - case TRInactive: - if (target_temperature <= 0) break; - tr_target_temperature[heater_index] = target_temperature; - *state = TRFirstHeating; + case TRInactive: break; // When first heating, wait for the temperature to be reached then go to Stable state case TRFirstHeating: if (temperature < tr_target_temperature[heater_index]) break; From ea1dd318517edafa574a0b5cc605bf43eb7492a1 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 8 May 2016 18:08:39 -0700 Subject: [PATCH 212/383] Enclose #error strings with apostrophes in quotes --- Marlin/SanityCheck.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index 71f2c4666e..5b449bb6bb 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -240,9 +240,9 @@ * Don't allow nonsense probe-pin settings */ #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(Z_MIN_PROBE_ENDSTOP) - #error You can't enable both Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN and Z_MIN_PROBE_ENDSTOP. + #error "You can't enable both Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN and Z_MIN_PROBE_ENDSTOP." #elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) - #error Don't enable DISABLE_Z_MIN_PROBE_ENDSTOP with Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN. + #error "Don't enable DISABLE_Z_MIN_PROBE_ENDSTOP with Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN." #elif ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_ENDSTOP) #error DISABLE_Z_MIN_PROBE_ENDSTOP requires Z_MIN_PROBE_ENDSTOP to be set. #endif @@ -252,7 +252,7 @@ */ #if ENABLED(Z_MIN_PROBE_ENDSTOP) #if !HAS_Z_MIN_PROBE_PIN - #error Z_MIN_PROBE_ENDSTOP requires a Z_MIN_PROBE_PIN in your board's pins_XXXX.h file. + #error "Z_MIN_PROBE_ENDSTOP requires a Z_MIN_PROBE_PIN in your board's pins_XXXX.h file." #endif // Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment. //#ifndef NUM_SERVOS From 96b71e62c0604e3ae60660fcae31e9a3bc5352ac Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 8 May 2016 18:28:46 -0700 Subject: [PATCH 213/383] Fix dipping on DELTA robots during G29 - Addressing #3689, et. al. --- Marlin/Marlin_main.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 5c9e5ff544..830709595c 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -343,6 +343,7 @@ static uint8_t target_extruder; #if ENABLED(AUTO_BED_LEVELING_FEATURE) int xy_travel_speed = XY_TRAVEL_SPEED; float zprobe_zoffset = Z_PROBE_OFFSET_FROM_EXTRUDER; + bool bed_leveling_in_progress = false; #endif #if ENABLED(Z_DUAL_ENDSTOPS) && DISABLED(DELTA) @@ -1632,7 +1633,12 @@ static void setup_for_endstop_move() { destination[X_AXIS] = x; destination[Y_AXIS] = y; destination[Z_AXIS] = z; - prepare_move_raw(); // this will also set_current_to_destination + + if (x == current_position[X_AXIS] && y == current_position[Y_AXIS]) + prepare_move_raw(); // this will also set_current_to_destination + else + prepare_move(); // this will also set_current_to_destination + stepper.synchronize(); #else @@ -3238,6 +3244,8 @@ inline void gcode_G28() { feedrate = homing_feedrate[Z_AXIS]; + bed_leveling_in_progress = true; + #if ENABLED(AUTO_BED_LEVELING_GRID) // probe at the points of a lattice grid @@ -3585,15 +3593,17 @@ inline void gcode_G28() { stepper.synchronize(); #endif - KEEPALIVE_STATE(IN_HANDLER); - #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) { SERIAL_ECHOLNPGM("<<< gcode_G29"); } #endif + bed_leveling_in_progress = false; + report_current_position(); + + KEEPALIVE_STATE(IN_HANDLER); } #if DISABLED(Z_PROBE_SLED) // could be avoided @@ -7305,7 +7315,7 @@ void mesh_buffer_line(float x, float y, float z, const float e, float feed_rate, calculate_delta(target); #if ENABLED(AUTO_BED_LEVELING_FEATURE) - adjust_delta(target); + if (!bed_leveling_in_progress) adjust_delta(target); #endif //DEBUG_POS("prepare_move_delta", target); From cf6c6074255c477cf336953e0503ba23aab11845 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 9 May 2016 00:26:00 +0900 Subject: [PATCH 214/383] Update Japanese translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ・Add new translation ・Add translation for 16 width ASCII LCD ・Change translation ・Revert translation from Japanese to English ・Fix typo --- Marlin/language_kana.h | 274 +++++++++++++++++++++--------------- Marlin/language_kana_utf8.h | 37 ++--- 2 files changed, 177 insertions(+), 134 deletions(-) diff --git a/Marlin/language_kana.h b/Marlin/language_kana.h index 044d09926c..6b6070e6e4 100644 --- a/Marlin/language_kana.h +++ b/Marlin/language_kana.h @@ -38,140 +38,182 @@ // 片仮名表示定義 #define WELCOME_MSG MACHINE_NAME " ready." -#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\x20\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "カード ソウニュウサレマシタ" ("Card inserted") -#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "カードガアリマセン" ("Card removed") -#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters -#define MSG_MAIN "\xd2\xb2\xdd" // "メイン" ("Main") -#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "ジドウカイシ" ("Autostart") -#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "モーターデンゲン オフ" ("Disable steppers") -#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Auto home") -#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Homing XYZ") -#define MSG_LEVEL_BED_WAITING "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xb2\xbc" // "レベリングカイシ" ("Click to Begin") -#define MSG_LEVEL_BED_DONE "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xdd\xd8\xae\xb3" // "レベリングカンリョウ" ("Leveling Done!") -#define MSG_LEVEL_BED_CANCEL "\xc4\xd8\xd4\xd2" // "トリヤメ" ("Cancel") -#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "キジュンオフセットセッテイ" ("Set home offsets") -#define MSG_HOME_OFFSETS_APPLIED "\xb5\xcc\xbe\xaf\xc4\x20\xc3\xb7\xd6\xb3\xbb\xda\xcf\xbc\xc0" // "オフセット テキヨウサレマシタ" ("Offsets applied") -#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "キジュンセット" ("Set origin") -#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "PLA ヨネツ" ("Preheat PLA") +#define MSG_SD_INSERTED "\xb6\xb0\xc4\xde\xb6\xde\xbf\xb3\xc6\xad\xb3\xbb\xda\xcf\xbc\xc0" // "カードガソウニュウサレマシタ" ("Card inserted") +#define MSG_SD_REMOVED "\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "カードガアリマセン" ("Card removed") +#define MSG_LCD_ENDSTOPS "Endstops" // Max length 8 characters +#define MSG_MAIN "\xd2\xb2\xdd" // "メイン" ("Main") +#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "ジドウカイシ" ("Autostart") +#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "モーターデンゲン オフ" ("Disable steppers") +#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Auto home") +#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "ゲンテンニイドウ" ("Homing XYZ") +#define MSG_LEVEL_BED_WAITING "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xb2\xbc" // "レベリングカイシ" ("Click to Begin") +#define MSG_LEVEL_BED_NEXT_POINT "\xc2\xb7\xde\xc9\xbf\xb8\xc3\xb2\xc3\xdd\xcd" // "ツギノソクテイテンヘ" ("Next Point") +#define MSG_LEVEL_BED_DONE "\xda\xcd\xde\xd8\xdd\xb8\xde\xb6\xdd\xd8\xae\xb3" // "レベリングカンリョウ" ("Leveling Done!") +#define MSG_LEVEL_BED_CANCEL "\xc4\xd8\xd4\xd2" // "トリヤメ" ("Cancel") +#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "キジュンオフセットセッテイ" ("Set home offsets") +#define MSG_HOME_OFFSETS_APPLIED "\xb5\xcc\xbe\xaf\xc4\xb6\xde\xc3\xb7\xd6\xb3\xbb\xda\xcf\xbc\xc0" // "オフセットガテキヨウサレマシタ" ("Offsets applied") +#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "キジュンセット" ("Set origin") +#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "PLA ヨネツ" ("Preheat PLA") #define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " " -#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " スベテ" (" All") -#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") -#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") -#define MSG_PREHEAT_ABS "ABS \xd6\xc8\xc2" // "ABS ヨネツ" ("Preheat ABS") +#define MSG_PREHEAT_PLA_ALL MSG_PREHEAT_PLA " \xbd\xcd\xde\xc3" // " スベテ" (" All") +#define MSG_PREHEAT_PLA_BEDONLY MSG_PREHEAT_PLA " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") +#define MSG_PREHEAT_PLA_SETTINGS MSG_PREHEAT_PLA " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") +#define MSG_PREHEAT_ABS "ABS \xd6\xc8\xc2" // "ABS ヨネツ" ("Preheat ABS") #define MSG_PREHEAT_ABS_N MSG_PREHEAT_ABS " " -#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " \xbd\xcd\xde\xc3" // " スベテ" (" All") -#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") -#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") -#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "カネツテイシ" ("Cooldown") -#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xdd" // "デンゲン オン" ("Switch power on") -#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "デンゲン オフ" ("Switch power off") -#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "オシダシ" ("Extrude") -#define MSG_RETRACT "\xcb\xb7\xba\xd0\xbe\xaf\xc3\xb2" // "ヒキコミセッテイ" ("Retract") -#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "ジクイドウ" ("Move axis") -#define MSG_LEVEL_BED "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "ベッドレベリング" ("Level bed") -#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Xジク イドウ" ("Move X") -#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Yジク イドウ" ("Move Y") -#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Zジク イドウ" ("Move Z") -#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "エクストルーダー" ("Extruder") -#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "0.1mm イドウ" ("Move 0.1mm") -#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // " 1mm イドウ" ("Move 1mm") -#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // " 10mm イドウ" ("Move 10mm") -#define MSG_SPEED "\xbd\xcb\xdf\xb0\xc4\xde" // "スピード" ("Speed") -#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Bed Z") -#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "ノズル" ("Nozzle") -#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "ベッド" ("Bed") -#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "ファンソクド" ("Fan speed") -#define MSG_FLOW "\xb5\xb8\xd8\xd8\xae\xb3" // "オクリリョウ" ("Flow") -#define MSG_CONTROL "\xba\xdd\xc4\xdb\xb0\xd9" // "コントロール" ("Control") -#define MSG_MIN LCD_STR_THERMOMETER " \xbb\xb2\xc3\xb2" // " サイテイ" (" Min") -#define MSG_MAX LCD_STR_THERMOMETER " \xbb\xb2\xba\xb3" // " サイコウ" (" Max") -#define MSG_FACTOR LCD_STR_THERMOMETER " \xcc\xa7\xb8\xc0\xb0" // " ファクター" (" Fact") -#define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "ジドウオンド" ("Autotemp") -#define MSG_ON "\xb5\xdd " // "オン " ("On ") -#define MSG_OFF "\xb5\xcc " // "オフ " ("Off") +#define MSG_PREHEAT_ABS_ALL MSG_PREHEAT_ABS " \xbd\xcd\xde\xc3" // " スベテ" (" All") +#define MSG_PREHEAT_ABS_BEDONLY MSG_PREHEAT_ABS " \xcd\xde\xaf\xc4\xde" // " ベッド" (" Bed") +#define MSG_PREHEAT_ABS_SETTINGS MSG_PREHEAT_ABS " \xbe\xaf\xc3\xb2" // " セッテイ" (" conf") +#define MSG_COOLDOWN "\xb6\xc8\xc2\xc3\xb2\xbc" // "カネツテイシ" ("Cooldown") +#define MSG_SWITCH_PS_ON "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xdd" // "デンゲン オン" ("Switch power on") +#define MSG_SWITCH_PS_OFF "\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "デンゲン オフ" ("Switch power off") +#define MSG_EXTRUDE "\xb5\xbc\xc0\xde\xbc" // "オシダシ" ("Extrude") +#define MSG_RETRACT "\xcb\xb7\xba\xd0\xbe\xaf\xc3\xb2" // "ヒキコミセッテイ" ("Retract") +#define MSG_MOVE_AXIS "\xbc\xde\xb8\xb2\xc4\xde\xb3" // "ジクイドウ" ("Move axis") +#define MSG_LEVEL_BED "\xcd\xde\xaf\xc4\xde\xda\xcd\xde\xd8\xdd\xb8\xde" // "ベッドレベリング" ("Level bed") +#define MSG_MOVE_X "X\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Xジク イドウ" ("Move X") +#define MSG_MOVE_Y "Y\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Yジク イドウ" ("Move Y") +#define MSG_MOVE_Z "Z\xbc\xde\xb8\x20\xb2\xc4\xde\xb3" // "Zジク イドウ" ("Move Z") +#define MSG_MOVE_E "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0" // "エクストルーダー" ("Extruder") +#define MSG_MOVE_01MM "0.1mm \xb2\xc4\xde\xb3" // "0.1mm イドウ" ("Move 0.1mm") +#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // " 1mm イドウ" ("Move 1mm") +#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // " 10mm イドウ" ("Move 10mm") +#define MSG_SPEED "\xbf\xb8\xc4\xde" // "ソクド" ("Speed") +#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Bed Z") +#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "ノズル" ("Nozzle") +#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "ベッド" ("Bed") +#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "ファンソクド" ("Fan speed") +#define MSG_FLOW "\xc4\xbc\xad\xc2\xd8\xae\xb3" // "トシュツリョウ" ("Flow") +#define MSG_CONTROL "\xbe\xb2\xb7\xde\xae" // "セイギョ" ("Control") +#define MSG_MIN LCD_STR_THERMOMETER " \xbb\xb2\xc3\xb2" // " サイテイ" (" Min") +#define MSG_MAX LCD_STR_THERMOMETER " \xbb\xb2\xba\xb3" // " サイコウ" (" Max") +#define MSG_FACTOR LCD_STR_THERMOMETER " \xcc\xa7\xb8\xc0\xb0" // " ファクター" (" Fact") +#if LCD_WIDTH < 20 + #define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde" // "ジドウオンド" ("Autotemp") +#else + #define MSG_AUTOTEMP "\xbc\xde\xc4\xde\xb3\xb5\xdd\xc4\xde\xbe\xb2\xb7\xde\xae" // "ジドウオンドセイギョ" ("Autotemp") +#endif +#define MSG_ON "\xb5\xdd " // "オン " ("On ") +#define MSG_OFF "\xb5\xcc " // "オフ " ("Off") #define MSG_PID_P "PID-P" #define MSG_PID_I "PID-I" #define MSG_PID_D "PID-D" #define MSG_PID_C "PID-C" -#define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" // "カソクド mm/s2" ("Accel") -#define MSG_VXY_JERK "XY\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "XYジク ヤクド mm/s" ("Vxy-jerk") -#define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk") -#define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk") -#define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4 " // "サイダイフィードレート " ("Vmax ") +#if LCD_WIDTH < 20 + #define MSG_ACC "\xb6\xbf\xb8\xc4\xde" // "カソクド" ("Accel") + #define MSG_VXY_JERK "XY\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "XYジク ヤクド" ("Vxy-jerk") + #define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde" // "Zジク ヤクド" ("Vz-jerk") + #define MSG_VE_JERK "E\x20\xd4\xb8\xc4\xde" // "E ヤクド" ("Ve-jerk") + #define MSG_VMAX "max\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "maxオクリソクド" ("Vmax ") +#else + #define MSG_ACC "\xb6\xbf\xb8\xc4\xde mm/s2" // "カソクド mm/s2" ("Accel") + #define MSG_VXY_JERK "XY\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "XYジク ヤクド mm/s" ("Vxy-jerk") + #define MSG_VZ_JERK "Z\xbc\xde\xb8\x20\xd4\xb8\xc4\xde mm/s" // "Zジク ヤクド mm/s" ("Vz-jerk") + #define MSG_VE_JERK "\xb4\xb8\xbd\xc4\xd9\xb0\xc0\xde\xb0\x20\xd4\xb8\xc4\xde" // "エクストルーダー ヤクド" ("Ve-jerk") + #define MSG_VMAX "\xbb\xb2\xc0\xde\xb2\xb5\xb8\xd8\xbf\xb8\xc4\xde " // "サイダイオクリソクド " ("Vmax ") +#endif #define MSG_X "X" #define MSG_Y "Y" #define MSG_Z "Z" #define MSG_E "E" -#define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xcc\xa8\xb0\xc4\xde\xda\xb0\xc4" // "サイショウフィードレート" ("Vmin") -#define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xc4\xd7\xcd\xde\xd9\xda\xb0\xc4" // "サイショウトラベルレート" ("VTrav min") -#define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド" ("Amax ") -#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "ヒキコミカソクド" ("A-retract") -#define MSG_A_TRAVEL "\xc4\xd7\xcd\xde\xd9\xb6\xbf\xb8\xc4\xde" // "トラベルカソクド" ("A-travel") +#if LCD_WIDTH < 20 + #define MSG_VMIN "min\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "minオクリソクド" ("Vmin") + #define MSG_VTRAV_MIN "min\xb2\xc4\xde\xb3\xbf\xb8\xc4\xde" // "minイドウソクド" ("VTrav min") + #define MSG_AMAX "max\xb6\xbf\xb8 " // "maxカソク " ("Amax ") +#else + #define MSG_VMIN "\xbb\xb2\xbc\xae\xb3\xb5\xb8\xd8\xbf\xb8\xc4\xde" // "サイショウオクリソクド" ("Vmin") + #define MSG_VTRAV_MIN "\xbb\xb2\xbc\xae\xb3\xb2\xc4\xde\xb3\xbf\xb8\xc4\xde" // "サイショウイドウソクド" ("VTrav min") + #define MSG_AMAX "\xbb\xb2\xc0\xde\xb2\xb6\xbf\xb8\xc4\xde " // "サイダイカソクド " ("Amax ") +#endif +#define MSG_A_RETRACT "\xcb\xb7\xba\xd0\xb6\xbf\xb8\xc4\xde" // "ヒキコミカソクド" ("A-retract") +#define MSG_A_TRAVEL "\xb2\xc4\xde\xb3\xb6\xbf\xb8\xc4\xde" // "イドウカソクド" ("A-travel") #define MSG_XSTEPS "Xsteps/mm" #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" #define MSG_ESTEPS "Esteps/mm" -#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "オンド" ("Temperature") -#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "ウゴキセッテイ" ("Motion") -#define MSG_VOLUMETRIC "\xcc\xa8\xd7\xd2\xdd\xc4" // "フィラメント" ("Filament") +#define MSG_TEMPERATURE "\xb5\xdd\xc4\xde" // "オンド" ("Temperature") +#define MSG_MOTION "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2" // "ウゴキセッテイ" ("Motion") +#define MSG_VOLUMETRIC "\xcc\xa8\xd7\xd2\xdd\xc4" // "フィラメント" ("Filament") #define MSG_VOLUMETRIC_ENABLED "E in mm3" -#define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xc1\xae\xaf\xb9\xb2" // "フィラメントチョッケイ" ("Fil. Dia.") -#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCDコントラスト" ("LCD contrast") -#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory") -#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory") -#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "セッテイリセット" ("Restore failsafe") -#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "リフレッシュ" ("Refresh") -#define MSG_WATCH "\xb2\xdd\xcc\xab" // "インフォ" ("Info screen") -#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "ジュンビセッテイ" ("Prepare") -#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "チョウセイ" ("Tune") -#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "イチジテイシ" ("Pause print") -#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print") -#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "プリントテイシ" ("Stop print") -#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "SDカードカラプリント" ("Print from SD") -#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "SDカードガアリマセン" ("No SD card") -#define MSG_DWELL "\xbd\xd8\xb0\xcc\xdf" // "スリープ" ("Sleep...") -#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("Wait for user...") -#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resuming print") -#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "プリントチュウシサレマシタ" ("Print aborted") -#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "ウゴキマセン" ("No move.") -#define MSG_KILLED "\xcb\xbc\xde\xae\xb3\xc3\xb2\xbc" // "ヒジョウテイシ" ("KILLED. ") -#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "テイシシマシタ" ("STOPPED. ") -#define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3 mm" // "ヒキコミリョウ mm" ("Retract mm") -#define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S mm" // "ヒキコミリョウS mm" ("Swap Re.mm") -#define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xda\xb0\xc4 mm/s" // "ヒキコミレート mm/s" ("Retract V") -#define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb mm" // "ノズルタイヒ mm" ("Hop mm") -#define MSG_CONTROL_RETRACT_RECOVER "\xd8\xb6\xca\xde\xb0 +mm" // "リカバー +mm" ("UnRet +mm") -#define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xd8\xb6\xca\xde\xb0S +mm" // "リカバーS +mm" ("S UnRet+mm") -#define MSG_CONTROL_RETRACT_RECOVERF "\xd8\xb6\xca\xde\xb0\xda\xb0\xc4 mm/s" // "リカバーレート mm/s" ("UnRet V") -#define MSG_AUTORETRACT "\xbc\xde\xc4\xde\xb3\xcb\xb7\xba\xd0" // "ジドウヒキコミ" ("AutoRetr.") -#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "フィラメントコウカン" ("Change filament") -#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "SDカードサイヨミコミ" ("Init. SD card") -#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "SDカードコウカン" ("Change SD card") -#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Zプローブ ベッドガイ" ("Z probe out. bed") -#define MSG_YX_UNHOMED "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "ゲンテンハXYイドウゴZ" ("Home X/Y before Z") -#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Z Offset") -#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Xジク ビドウ" ("Babystep X") -#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Yジク ビドウ" ("Babystep Y") -#define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Zジク ビドウ" ("Babystep Z") -#define MSG_ENDSTOP_ABORT "\xb4\xdd\xc4\xde\xbd\xc4\xaf\xcc\xdf\x20\xbb\xc4\xde\xb3" // "エンドストップ サドウ" ("Endstop abort") -#define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xde\xb2" // "カネツシッバイ" ("Heating failed") -#define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "エラー:ジョウチョウサーミスターキノウ" ("Err: REDUNDANT TEMP") +#if LCD_WIDTH < 20 + #define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xb9\xb2" // "フィラメントケイ" ("Fil. Dia.") +#else + #define MSG_FILAMENT_DIAM "\xcc\xa8\xd7\xd2\xdd\xc4\xc1\xae\xaf\xb9\xb2" // "フィラメントチョッケイ" ("Fil. Dia.") +#endif +#define MSG_CONTRAST "LCD\xba\xdd\xc4\xd7\xbd\xc4" // "LCDコントラスト" ("LCD contrast") +#define MSG_STORE_EPROM "\xd2\xd3\xd8\xcd\xb6\xb8\xc9\xb3" // "メモリヘカクノウ" ("Store memory") +#define MSG_LOAD_EPROM "\xd2\xd3\xd8\xb6\xd7\xd6\xd0\xba\xd0" // "メモリカラヨミコミ" ("Load memory") +#define MSG_RESTORE_FAILSAFE "\xbe\xaf\xc3\xb2\xd8\xbe\xaf\xc4" // "セッテイリセット" ("Restore failsafe") +#define MSG_REFRESH "\xd8\xcc\xda\xaf\xbc\xad" // "リフレッシュ" ("Refresh") +#define MSG_WATCH "\xbc\xde\xae\xb3\xce\xb3\xb6\xde\xd2\xdd" // "ジョウホウガメン" ("Info screen") +#define MSG_PREPARE "\xbc\xde\xad\xdd\xcb\xde\xbe\xaf\xc3\xb2" // "ジュンビセッテイ" ("Prepare") +#define MSG_TUNE "\xc1\xae\xb3\xbe\xb2" // "チョウセイ" ("Tune") +#define MSG_PAUSE_PRINT "\xb2\xc1\xbc\xde\xc3\xb2\xbc" // "イチジテイシ" ("Pause print") +#define MSG_RESUME_PRINT "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resume print") +#define MSG_STOP_PRINT "\xcc\xdf\xd8\xdd\xc4\xc3\xb2\xbc" // "プリントテイシ" ("Stop print") +#define MSG_CARD_MENU "SD\xb6\xb0\xc4\xde\xb6\xd7\xcc\xdf\xd8\xdd\xc4" // "SDカードカラプリント" ("Print from SD") +#define MSG_NO_CARD "SD\xb6\xb0\xc4\xde\xb6\xde\xb1\xd8\xcf\xbe\xdd" // "SDカードガアリマセン" ("No SD card") +#define MSG_DWELL "\xb7\xad\xb3\xbc" // "キュウシ" ("Sleep...") +#define MSG_USERWAIT "\xbc\xca\xde\xd7\xb8\xb5\xcf\xc1\xb8\xc0\xde\xbb\xb2" // "シバラクオマチクダサイ" ("Wait for user...") +#define MSG_RESUMING "\xcc\xdf\xd8\xdd\xc4\xbb\xb2\xb6\xb2" // "プリントサイカイ" ("Resuming print") +#define MSG_PRINT_ABORTED "\xcc\xdf\xd8\xdd\xc4\xb6\xde\xc1\xad\xb3\xbc\xbb\xda\xcf\xbc\xc0" // "プリントガチュウシサレマシタ" ("Print aborted") +#define MSG_NO_MOVE "\xb3\xba\xde\xb7\xcf\xbe\xdd" // "ウゴキマセン" ("No move.") +#define MSG_KILLED "\xcb\xbc\xde\xae\xb3\xc3\xb2\xbc" // "ヒジョウテイシ" ("KILLED. ") +#define MSG_STOPPED "\xc3\xb2\xbc\xbc\xcf\xbc\xc0" // "テイシシマシタ" ("STOPPED. ") +#if LCD_WIDTH < 20 + #define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3" // "ヒキコミリョウ" ("Retract mm") + #define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S" // "ヒキコミリョウS" ("Swap Re.mm") + #define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xbf\xb8\xc4\xde" // "ヒキコミソクド" ("Retract V") + #define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb" // "ノズルタイヒ" ("Hop mm") + #define MSG_CONTROL_RETRACT_RECOVER "\xce\xbc\xae\xb3\xd8\xae\xb3" // "ホショウリョウ" ("UnRet +mm") + #define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xce\xbc\xae\xb3\xd8\xae\xb3S" // "ホショウリョウS" ("S UnRet+mm") + #define MSG_CONTROL_RETRACT_RECOVERF "\xce\xbc\xae\xb3\xbf\xb8\xc4\xde" // "ホショウソクド" ("UnRet V") +#else + #define MSG_CONTROL_RETRACT "\xcb\xb7\xba\xd0\xd8\xae\xb3 mm" // "ヒキコミリョウ mm" ("Retract mm") + #define MSG_CONTROL_RETRACT_SWAP "\xcb\xb7\xba\xd0\xd8\xae\xb3S mm" // "ヒキコミリョウS mm" ("Swap Re.mm") + #define MSG_CONTROL_RETRACTF "\xcb\xb7\xba\xd0\xbf\xb8\xc4\xde mm/s" // "ヒキコミソクド mm/s" ("Retract V") + #define MSG_CONTROL_RETRACT_ZLIFT "\xc9\xbd\xde\xd9\xc0\xb2\xcb mm" // "ノズルタイヒ mm" ("Hop mm") + #define MSG_CONTROL_RETRACT_RECOVER "\xce\xbc\xae\xb3\xd8\xae\xb3 mm" // "ホショウリョウ mm" ("UnRet +mm") + #define MSG_CONTROL_RETRACT_RECOVER_SWAP "\xce\xbc\xae\xb3\xd8\xae\xb3S mm" // "ホショウリョウS mm" ("S UnRet+mm") + #define MSG_CONTROL_RETRACT_RECOVERF "\xce\xbc\xae\xb3\xbf\xb8\xc4\xde mm/s" // "ホショウソクド mm/s" ("UnRet V") +#endif +#define MSG_AUTORETRACT "\xbc\xde\xc4\xde\xb3\xcb\xb7\xba\xd0" // "ジドウヒキコミ" ("AutoRetr.") +#define MSG_FILAMENTCHANGE "\xcc\xa8\xd7\xd2\xdd\xc4\xba\xb3\xb6\xdd" // "フィラメントコウカン" ("Change filament") +#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "SDカードサイヨミコミ" ("Init. SD card") +#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "SDカードコウカン" ("Change SD card") +#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Zプローブ ベッドガイ" ("Z probe out. bed") +#define MSG_YX_UNHOMED "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "ゲンテンハXYイドウゴZ" ("Home X/Y before Z") +#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Zオフセット" ("Z Offset") +#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Xジク ビドウ" ("Babystep X") +#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Yジク ビドウ" ("Babystep Y") +#define MSG_BABYSTEP_Z "Z\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Zジク ビドウ" ("Babystep Z") +#define MSG_ENDSTOP_ABORT "Endstop abort" +#define MSG_HEATING_FAILED_LCD "\xb6\xc8\xc2\xbc\xaf\xca\xdf\xb2" // "カネツシッパイ" ("Heating failed") +#if LCD_WIDTH < 20 + #define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0" // "エラー:ジョウチョウサーミスタ" ("Err: REDUNDANT TEMP") +#else + #define MSG_ERR_REDUNDANT_TEMP "\xb4\xd7\xb0:\xbc\xde\xae\xb3\xc1\xae\xb3\xbb\xb0\xd0\xbd\xc0\xb0\xb7\xc9\xb3" // "エラー:ジョウチョウサーミスターキノウ" ("Err: REDUNDANT TEMP") +#endif #define MSG_THERMAL_RUNAWAY "\xc8\xc2\xce\xde\xb3\xbf\xb3" // "ネツボウソウ" ("THERMAL RUNAWAY") #define MSG_ERR_MAXTEMP "\xb4\xd7\xb0:\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:サイコウオンチョウカ" ("Err: MAXTEMP") #define MSG_ERR_MINTEMP "\xb4\xd7\xb0:\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:サイテイオンミマン" ("Err: MINTEMP") -#define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:ベッド サイコウオンチョウカ" ("Err: MAXTEMP BED") -#define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:ベッド サイテイオンミマン" ("Err: MINTEMP BED") -#define MSG_END_HOUR "\xbc\xde\xb6\xdd" // "ジカン" ("hours") -#define MSG_END_MINUTE "\xcc\xdd" // "フン" ("minutes") -#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3" // "カネツチュウ" ("Heating...") -#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "カネツカンリョウ" ("Heating done.") -#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "ベッド カネツチュウ" ("Bed Heating.") -#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "ベッド カネツカンリョウ" ("Bed done.") +#if LCD_WIDTH < 20 + #define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd" // "エラー:ベッド サイコウオン" ("Err: MAXTEMP BED") + #define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd" // "エラー:ベッド サイテイオン" ("Err: MINTEMP BED") +#else + #define MSG_ERR_MAXTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xba\xb3\xb5\xdd\xc1\xae\xb3\xb6" // "エラー:ベッド サイコウオンチョウカ" ("Err: MAXTEMP BED") + #define MSG_ERR_MINTEMP_BED "\xb4\xd7\xb0:\xcd\xde\xaf\xc4\xde\x20\xbb\xb2\xc3\xb2\xb5\xdd\xd0\xcf\xdd" // "エラー:ベッド サイテイオンミマン" ("Err: MINTEMP BED") +#endif +#define MSG_END_HOUR "\xbc\xde\xb6\xdd" // "ジカン" ("hours") +#define MSG_END_MINUTE "\xcc\xdd" // "フン" ("minutes") +#define MSG_HEATING "\xb6\xc8\xc2\xc1\xad\xb3" // "カネツチュウ" ("Heating...") +#define MSG_HEATING_COMPLETE "\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "カネツカンリョウ" ("Heating done.") +#define MSG_BED_HEATING "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xc1\xad\xb3" // "ベッド カネツチュウ" ("Bed Heating.") +#define MSG_BED_DONE "\xcd\xde\xaf\xc4\xde\x20\xb6\xc8\xc2\xb6\xdd\xd8\xae\xb3" // "ベッド カネツカンリョウ" ("Bed done.") -#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "デルタ コウセイ" ("Delta Calibration") -#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Xジク コウセイ" ("Calibrate X") -#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Yジク コウセイ" ("Calibrate Y") -#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Zジク コウセイ" ("Calibrate Z") -#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "チュウシン コウセイ" ("Calibrate Center") +#define MSG_DELTA_CALIBRATE "\xc3\xde\xd9\xc0\x20\xba\xb3\xbe\xb2" // "デルタ コウセイ" ("Delta Calibration") +#define MSG_DELTA_CALIBRATE_X "X\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Xジク コウセイ" ("Calibrate X") +#define MSG_DELTA_CALIBRATE_Y "Y\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Yジク コウセイ" ("Calibrate Y") +#define MSG_DELTA_CALIBRATE_Z "Z\xbc\xde\xb8\x20\xba\xb3\xbe\xb2" // "Zジク コウセイ" ("Calibrate Z") +#define MSG_DELTA_CALIBRATE_CENTER "\xc1\xad\xb3\xbc\xdd\x20\xba\xb3\xbe\xb2" // "チュウシン コウセイ" ("Calibrate Center") #endif // LANGUAGE_KANA_H diff --git a/Marlin/language_kana_utf8.h b/Marlin/language_kana_utf8.h index 1be35ae760..b68c43fbe8 100644 --- a/Marlin/language_kana_utf8.h +++ b/Marlin/language_kana_utf8.h @@ -41,7 +41,7 @@ // 片仮名表示定義 #define WELCOME_MSG MACHINE_NAME " ready." -#define MSG_SD_INSERTED "カード ソウニュウサレマシタ" // "Card inserted" +#define MSG_SD_INSERTED "カードガソウニュウサレマシタ" // "Card inserted" #define MSG_SD_REMOVED "カードガアリマセン" // "Card removed" #define MSG_LCD_ENDSTOPS "エンドストップ" // "Endstops" // Max length 8 characters #define MSG_MAIN "メイン" // "Main" @@ -50,10 +50,11 @@ #define MSG_AUTO_HOME "ゲンテンニイドウ" // "Auto home" #define MSG_LEVEL_BED_HOMING "ゲンテンニイドウ" // "Homing XYZ" #define MSG_LEVEL_BED_WAITING "レベリングカイシ" // "Click to Begin" +#define MSG_LEVEL_BED_NEXT_POINT "ツギノソクテイテンヘ" // "Next Point" #define MSG_LEVEL_BED_DONE "レベリングカンリョウ" // "Leveling Done!" #define MSG_LEVEL_BED_CANCEL "トリヤメ" // "Cancel" #define MSG_SET_HOME_OFFSETS "キジュンオフセットセッテイ" // "Set home offsets" -#define MSG_HOME_OFFSETS_APPLIED "オフセット テキヨウサレマシタ" // "Offsets applied" +#define MSG_HOME_OFFSETS_APPLIED "オフセットガテキヨウサレマシタ" // "Offsets applied" #define MSG_SET_ORIGIN "キジュンセット" // "Set origin" #define MSG_PREHEAT_PLA "PLA ヨネツ" // "Preheat PLA" #define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " " @@ -79,17 +80,17 @@ #define MSG_MOVE_01MM "0.1mm イドウ" // "Move 0.1mm" #define MSG_MOVE_1MM " 1mm イドウ" // "Move 1mm" #define MSG_MOVE_10MM " 10mm イドウ" // "Move 10mm" -#define MSG_SPEED "スピード" // "Speed" +#define MSG_SPEED "ソクド" // "Speed" #define MSG_BED_Z "Zオフセット" // "Bed Z" #define MSG_NOZZLE "ノズル" // "Nozzle" #define MSG_BED "ベッド" // "Bed" #define MSG_FAN_SPEED "ファンソクド" // "Fan speed" -#define MSG_FLOW "オクリリョウ" // "Flow" -#define MSG_CONTROL "コントロール" // "Control" +#define MSG_FLOW "トシュツリョウ" // "Flow" +#define MSG_CONTROL "セイギョ" // "Control" #define MSG_MIN LCD_STR_THERMOMETER " サイテイ" // " Min" #define MSG_MAX LCD_STR_THERMOMETER " サイコウ" // " Max" #define MSG_FACTOR LCD_STR_THERMOMETER " ファクター" // " Fact" -#define MSG_AUTOTEMP "ジドウオンド" // "Autotemp" +#define MSG_AUTOTEMP "ジドウオンドセイギョ" // "Autotemp" #define MSG_ON "オン " // "On " #define MSG_OFF "オフ " // "Off" #define MSG_PID_P "PID-P" @@ -100,16 +101,16 @@ #define MSG_VXY_JERK "XYジク ヤクド mm/s" // "Vxy-jerk" #define MSG_VZ_JERK "Zジク ヤクド mm/s" // "Vz-jerk" #define MSG_VE_JERK "エクストルーダー ヤクド" // "Ve-jerk" -#define MSG_VMAX "サイダイフィードレート " // "Vmax " +#define MSG_VMAX "サイダイオクリソクド " // "Vmax " #define MSG_X "X" #define MSG_Y "Y" #define MSG_Z "Z" #define MSG_E "E" -#define MSG_VMIN "サイショウフィードレート" // "Vmin" -#define MSG_VTRAV_MIN "サイショウトラベルレート" // "VTrav min" +#define MSG_VMIN "サイショウオクリソクド" // "Vmin" +#define MSG_VTRAV_MIN "サイショウイドウソクド" // "VTrav min" #define MSG_AMAX "サイダイカソクド " // "Amax " #define MSG_A_RETRACT "ヒキコミカソクド" // "A-retract" -#define MSG_A_TRAVEL "トラベルカソクド" // "A-travel" +#define MSG_A_TRAVEL "イドウカソクド" // "A-travel" #define MSG_XSTEPS "Xsteps/mm" #define MSG_YSTEPS "Ysteps/mm" #define MSG_ZSTEPS "Zsteps/mm" @@ -124,7 +125,7 @@ #define MSG_LOAD_EPROM "メモリカラヨミコミ" // "Load memory" #define MSG_RESTORE_FAILSAFE "セッテイリセット" // "Restore failsafe" #define MSG_REFRESH "リフレッシュ" // "Refresh" -#define MSG_WATCH "インフォ" // "Info screen" +#define MSG_WATCH "ジョウホウガメン" // "Info screen" #define MSG_PREPARE "ジュンビセッテイ" // "Prepare" #define MSG_TUNE "チョウセイ" // "Tune" #define MSG_PAUSE_PRINT "イチジテイシ" // "Pause print" @@ -132,20 +133,20 @@ #define MSG_STOP_PRINT "プリントテイシ" // "Stop print" #define MSG_CARD_MENU "SDカードカラプリント" // "Print from SD" #define MSG_NO_CARD "SDカードガアリマセン" // "No SD card" -#define MSG_DWELL "スリープ" // "Sleep..." +#define MSG_DWELL "キュウシ" // "Sleep..." #define MSG_USERWAIT "シバラクオマチクダサイ" // "Wait for user..." #define MSG_RESUMING "プリントサイカイ" // "Resuming print" -#define MSG_PRINT_ABORTED "プリントチュウシサレマシタ" // "Print aborted" +#define MSG_PRINT_ABORTED "プリントガチュウシサレマシタ" // "Print aborted" #define MSG_NO_MOVE "ウゴキマセン" // "No move." #define MSG_KILLED "ヒジョウテイシ" // "KILLED. " #define MSG_STOPPED "テイシシマシタ" // "STOPPED. " #define MSG_CONTROL_RETRACT "ヒキコミリョウ mm" // "Retract mm" #define MSG_CONTROL_RETRACT_SWAP "ヒキコミリョウS mm" // "Swap Re.mm" -#define MSG_CONTROL_RETRACTF "ヒキコミレート mm/s" // "Retract V" +#define MSG_CONTROL_RETRACTF "ヒキコミソクド mm/s" // "Retract V" #define MSG_CONTROL_RETRACT_ZLIFT "ノズルタイヒ mm" // "Hop mm" -#define MSG_CONTROL_RETRACT_RECOVER "リカバー +mm" // "UnRet +mm" -#define MSG_CONTROL_RETRACT_RECOVER_SWAP "リカバーS +mm" // "S UnRet+mm" -#define MSG_CONTROL_RETRACT_RECOVERF "リカバーレート mm/s" // "UnRet V" +#define MSG_CONTROL_RETRACT_RECOVER "ホショウリョウ mm" // "UnRet +mm" +#define MSG_CONTROL_RETRACT_RECOVER_SWAP "ホショウリョウS mm" // "S UnRet+mm" +#define MSG_CONTROL_RETRACT_RECOVERF "ホショウソクド mm/s" // "UnRet V" #define MSG_AUTORETRACT "ジドウヒキコミ" // "AutoRetr." #define MSG_FILAMENTCHANGE "フィラメントコウカン" // "Change filament" #define MSG_INIT_SDCARD "SDカードサイヨミコミ" // "Init. SD card" @@ -156,7 +157,7 @@ #define MSG_BABYSTEP_X "Xジク ビドウ" // "Babystep X" #define MSG_BABYSTEP_Y "Yジク ビドウ" // "Babystep Y" #define MSG_BABYSTEP_Z "Zジク ビドウ" // "Babystep Z" -#define MSG_ENDSTOP_ABORT "エンドストップ サドウ" // "Endstop abort" +#define MSG_ENDSTOP_ABORT "Endstop abort" #define MSG_HEATING_FAILED_LCD "カネツシッパイ" // "Heating failed" #define MSG_ERR_REDUNDANT_TEMP "エラー:ジョウチョウサーミスターキノウ" // "Err: REDUNDANT TEMP" #define MSG_THERMAL_RUNAWAY "ネツボウソウ" // "THERMAL RUNAWAY" From 1a75509a3cc6a767790d1bc6aa17d06156052269 Mon Sep 17 00:00:00 2001 From: esenapaj Date: Mon, 9 May 2016 01:38:28 +0900 Subject: [PATCH 215/383] Cleanup for Danish file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ・Arrange the strings in unified order ・Remove "#ifdef DELTA_CALIBRATION_MENU" directive ・Adjust spacing --- Marlin/language_da.h | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/Marlin/language_da.h b/Marlin/language_da.h index c1b38f6e55..2176b93473 100644 --- a/Marlin/language_da.h +++ b/Marlin/language_da.h @@ -35,14 +35,13 @@ //#define SIMULATE_ROMFONT #define DISPLAY_CHARSET_ISO10646_1 -#define MSG_MAIN "Menu" #define WELCOME_MSG MACHINE_NAME " er klar" #define MSG_SD_INSERTED "Kort isat" #define MSG_SD_REMOVED "Kort fjernet" +#define MSG_MAIN "Menu" #define MSG_AUTOSTART "Autostart" -#define MSG_AUTO_HOME "Home" // G28 -#define MSG_COOLDOWN "Afkøl" #define MSG_DISABLE_STEPPERS "Slå stepper fra" +#define MSG_AUTO_HOME "Home" // G28 #define MSG_LEVEL_BED_HOMING "Homing XYZ" #define MSG_LEVEL_BED_WAITING "Tryk for at starte" #define MSG_LEVEL_BED_DONE "Justering er færdig!" @@ -50,8 +49,6 @@ #define MSG_SET_HOME_OFFSETS "Sæt forskyding til udgangsposition" #define MSG_HOME_OFFSETS_APPLIED "Forskydninger er tilføjet" #define MSG_SET_ORIGIN "Sæt origin" -#define MSG_SWITCH_PS_ON "Slå strøm til" -#define MSG_SWITCH_PS_OFF "Slå strøm fra" #define MSG_PREHEAT_PLA "Forvarm PLA" #define MSG_PREHEAT_PLA_N "Forvarm PLA " #define MSG_PREHEAT_PLA_ALL "Forvarm PLA Alle" @@ -62,6 +59,9 @@ #define MSG_PREHEAT_ABS_ALL "Forvarm ABS Alle" #define MSG_PREHEAT_ABS_BEDONLY "Forvarm ABS Bed" #define MSG_PREHEAT_ABS_SETTINGS "Forvarm ABS conf" +#define MSG_COOLDOWN "Afkøl" +#define MSG_SWITCH_PS_ON "Slå strøm til" +#define MSG_SWITCH_PS_OFF "Slå strøm fra" #define MSG_EXTRUDE "Extruder" #define MSG_RETRACT "Retract" #define MSG_MOVE_AXIS "Flyt akser" @@ -73,6 +73,7 @@ #define MSG_MOVE_1MM "Flyt 1mm" #define MSG_MOVE_10MM "Flyt 10mm" #define MSG_SPEED "Hastighed" +#define MSG_BED_Z "Plade Z" #define MSG_NOZZLE "Dyse" #define MSG_BED "Plade" #define MSG_FAN_SPEED "Blæser hastighed" @@ -149,14 +150,6 @@ #define MSG_BABYSTEP_Y "Babystep Y" #define MSG_BABYSTEP_Z "Babystep Z" #define MSG_ENDSTOP_ABORT "Endstop abort" -#define MSG_END_HOUR "Timer" -#define MSG_END_MINUTE "Minutter" -#define MSG_HEATING "Opvarmer..." -#define MSG_HEATING_COMPLETE "Opvarmet" -#define MSG_BED_HEATING "Opvarmer plade" -#define MSG_BED_DONE "Plade opvarmet" - -#define MSG_BED_Z "Plade Z" #define MSG_HEATING_FAILED_LCD "Opvarmning mislykkedes" #define MSG_ERR_REDUNDANT_TEMP "Fejl: reserve temp" #define MSG_THERMAL_RUNAWAY "Temp løber løbsk" @@ -164,13 +157,17 @@ #define MSG_ERR_MINTEMP "Fejl: Min temp" #define MSG_ERR_MAXTEMP_BED "Fejl: Maks P temp" #define MSG_ERR_MINTEMP_BED "Fejl: Min P temp" +#define MSG_END_HOUR "Timer" +#define MSG_END_MINUTE "Minutter" +#define MSG_HEATING "Opvarmer..." +#define MSG_HEATING_COMPLETE "Opvarmet" +#define MSG_BED_HEATING "Opvarmer plade" +#define MSG_BED_DONE "Plade opvarmet" -#ifdef DELTA_CALIBRATION_MENU - #define MSG_DELTA_CALIBRATE "Delta Kalibrering" - #define MSG_DELTA_CALIBRATE_X "Kalibrer X" - #define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" - #define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" - #define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" -#endif // DELTA_CALIBRATION_MENU +#define MSG_DELTA_CALIBRATE "Delta Kalibrering" +#define MSG_DELTA_CALIBRATE_X "Kalibrer X" +#define MSG_DELTA_CALIBRATE_Y "Kalibrer Y" +#define MSG_DELTA_CALIBRATE_Z "Kalibrer Z" +#define MSG_DELTA_CALIBRATE_CENTER "Kalibrerings Center" #endif // LANGUAGE_DA_H From a878c0961452b6cbab8703fe97c919e158aeaa88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Br=C3=A1zio?= Date: Tue, 10 May 2016 01:45:42 +0100 Subject: [PATCH 216/383] Cleanup of the buildroot --- .travis.yml | 62 +- .../Arduino_1.0.x/hardware/OMC_tkj/boards.txt | 23 - .../bootloaders/OMC/bootloader-644-20MHz.hex | 75 - .../bootloaders/atmega644p/ATmegaBOOT.c | 713 - .../atmega644p/ATmegaBOOT_324P.hex | 121 - .../bootloaders/atmega644p/ATmegaBOOT_644.hex | 120 - .../atmega644p/ATmegaBOOT_644P.hex | 121 - .../OMC_tkj/bootloaders/atmega644p/Makefile | 56 - .../OMC_tkj/bootloaders/atmega644p/README.txt | 3 - .../OMC_tkj/variants/sanguino/pins_arduino.h | 269 - .../hardware/Sanguino/boards.txt | 83 - .../bootloaders/atmega/ATmegaBOOT_168.c | 1071 - .../atmega/ATmegaBOOT_168_atmega1284p.hex | 130 - .../atmega/ATmegaBOOT_168_atmega1284p_8m.hex | 130 - .../atmega/ATmegaBOOT_168_atmega644p.hex | 126 - .../Sanguino/bootloaders/atmega/Makefile | 254 - .../bootloaders/atmega644p/ATmegaBOOT.c | 717 - .../bootloaders/atmega644p/ATmegaBOOT.c.tst | 388 - .../atmega644p/ATmegaBOOT_644P.elf | Bin 13832 -> 0 bytes .../atmega644p/ATmegaBOOT_644P.hex | 110 - .../Sanguino/bootloaders/atmega644p/Makefile | 56 - .../bootloaders/atmega644p/README.txt | 3 - .../hardware/Sanguino/cores/arduino/Arduino.h | 215 - .../hardware/Sanguino/cores/arduino/CDC.cpp | 239 - .../hardware/Sanguino/cores/arduino/Client.h | 26 - .../hardware/Sanguino/cores/arduino/HID.cpp | 520 - .../Sanguino/cores/arduino/HardwareSerial.cpp | 519 - .../Sanguino/cores/arduino/HardwareSerial.h | 115 - .../Sanguino/cores/arduino/IPAddress.cpp | 56 - .../Sanguino/cores/arduino/IPAddress.h | 76 - .../Sanguino/cores/arduino/Platform.h | 23 - .../hardware/Sanguino/cores/arduino/Print.cpp | 268 - .../hardware/Sanguino/cores/arduino/Print.h | 81 - .../Sanguino/cores/arduino/Printable.h | 40 - .../hardware/Sanguino/cores/arduino/Server.h | 9 - .../Sanguino/cores/arduino/Stream.cpp | 270 - .../hardware/Sanguino/cores/arduino/Stream.h | 96 - .../hardware/Sanguino/cores/arduino/Tone.cpp | 616 - .../hardware/Sanguino/cores/arduino/USBAPI.h | 196 - .../Sanguino/cores/arduino/USBCore.cpp | 684 - .../hardware/Sanguino/cores/arduino/USBCore.h | 303 - .../hardware/Sanguino/cores/arduino/USBDesc.h | 63 - .../hardware/Sanguino/cores/arduino/Udp.h | 88 - .../Sanguino/cores/arduino/WCharacter.h | 168 - .../Sanguino/cores/arduino/WInterrupts.c | 322 - .../hardware/Sanguino/cores/arduino/WMath.cpp | 60 - .../Sanguino/cores/arduino/WString.cpp | 645 - .../hardware/Sanguino/cores/arduino/WString.h | 205 - .../hardware/Sanguino/cores/arduino/binary.h | 515 - .../hardware/Sanguino/cores/arduino/main.cpp | 20 - .../hardware/Sanguino/cores/arduino/new.cpp | 18 - .../hardware/Sanguino/cores/arduino/new.h | 22 - .../hardware/Sanguino/cores/arduino/wiring.c | 324 - .../Sanguino/cores/arduino/wiring_analog.c | 282 - .../Sanguino/cores/arduino/wiring_digital.c | 178 - .../Sanguino/cores/arduino/wiring_private.h | 71 - .../Sanguino/cores/arduino/wiring_pulse.c | 69 - .../Sanguino/cores/arduino/wiring_shift.c | 55 - .../Sanguino/variants/standard/pins_arduino.h | 285 - .../Arduino_1.0.x/hardware/rambo/boards.txt | 22 - .../hardware/rambo/cores/arduino/Arduino.h | 215 - .../hardware/rambo/cores/arduino/CDC.cpp | 239 - .../hardware/rambo/cores/arduino/Client.h | 26 - .../hardware/rambo/cores/arduino/HID.cpp | 520 - .../rambo/cores/arduino/HardwareSerial.cpp | 519 - .../rambo/cores/arduino/HardwareSerial.h | 115 - .../rambo/cores/arduino/IPAddress.cpp | 56 - .../hardware/rambo/cores/arduino/IPAddress.h | 76 - .../hardware/rambo/cores/arduino/Platform.h | 23 - .../hardware/rambo/cores/arduino/Print.cpp | 268 - .../hardware/rambo/cores/arduino/Print.h | 81 - .../hardware/rambo/cores/arduino/Printable.h | 40 - .../hardware/rambo/cores/arduino/Server.h | 9 - .../hardware/rambo/cores/arduino/Stream.cpp | 270 - .../hardware/rambo/cores/arduino/Stream.h | 96 - .../hardware/rambo/cores/arduino/Tone.cpp | 616 - .../hardware/rambo/cores/arduino/USBAPI.h | 196 - .../hardware/rambo/cores/arduino/USBCore.cpp | 684 - .../hardware/rambo/cores/arduino/USBCore.h | 303 - .../hardware/rambo/cores/arduino/USBDesc.h | 63 - .../hardware/rambo/cores/arduino/Udp.h | 88 - .../hardware/rambo/cores/arduino/WCharacter.h | 168 - .../rambo/cores/arduino/WInterrupts.c | 322 - .../hardware/rambo/cores/arduino/WMath.cpp | 60 - .../hardware/rambo/cores/arduino/WString.cpp | 645 - .../hardware/rambo/cores/arduino/WString.h | 205 - .../hardware/rambo/cores/arduino/binary.h | 515 - .../hardware/rambo/cores/arduino/main.cpp | 20 - .../hardware/rambo/cores/arduino/new.cpp | 18 - .../hardware/rambo/cores/arduino/new.h | 22 - .../hardware/rambo/cores/arduino/wiring.c | 324 - .../rambo/cores/arduino/wiring_analog.c | 282 - .../rambo/cores/arduino/wiring_digital.c | 178 - .../rambo/cores/arduino/wiring_private.h | 71 - .../rambo/cores/arduino/wiring_pulse.c | 69 - .../rambo/cores/arduino/wiring_shift.c | 55 - .../rambo/variants/standard/pins_arduino.h | 411 - .../libraries/LiquidCrystal/LiquidCrystal.cpp | 310 - .../libraries/LiquidCrystal/LiquidCrystal.h | 106 - .../libraries/LiquidCrystal/keywords.txt | 37 - .../Arduino_1.0.x/libraries/SPI/SPI.cpp | 66 - .../Arduino_1.0.x/libraries/SPI/SPI.h | 70 - .../Arduino_1.0.x/libraries/SPI/keywords.txt | 36 - .../Arduino_1.0.x/libraries/U8glib/ChangeLog | 162 - .../libraries/U8glib/INSTALL.TXT | 26 - .../Arduino_1.0.x/libraries/U8glib/U8glib.cpp | 79 - .../Arduino_1.0.x/libraries/U8glib/U8glib.h | 1268 - .../U8glib/examples/A2Printer/A2Printer.ino | 131 - .../U8glib/examples/Bitmap/Bitmap.ino | 166 - .../libraries/U8glib/examples/Chess/Chess.ino | 216 - .../libraries/U8glib/examples/Color/Color.ino | 201 - .../U8glib/examples/Console/Console.ino | 266 - .../libraries/U8glib/examples/F/F.ino | 175 - .../libraries/U8glib/examples/FPS/FPS.ino | 398 - .../examples/GraphicsTest/GraphicsTest.ino | 300 - .../U8glib/examples/HelloWorld/HelloWorld.ino | 177 - .../libraries/U8glib/examples/Menu/Menu.ino | 273 - .../U8glib/examples/PrintTest/PrintTest.ino | 160 - .../U8glib/examples/Rotation/Rotation.ino | 188 - .../libraries/U8glib/examples/Scale/Scale.ino | 177 - .../U8glib/examples/TextRotX/TextRotX.ino | 190 - .../examples/Touch4WSetup/Touch4WSetup.ino | 348 - .../examples/Touch4WTest/Touch4WTest.ino | 335 - .../U8glib/examples/U8gLogo/U8gLogo.ino | 230 - .../libraries/U8glib/examples/XBM/XBM.ino | 172 - .../libraries/U8glib/license.txt | 81 - .../libraries/U8glib/utility/chessengine.c | 2392 - .../libraries/U8glib/utility/u8g.h | 1977 - .../libraries/U8glib/utility/u8g_bitmap.c | 177 - .../libraries/U8glib/utility/u8g_circle.c | 382 - .../libraries/U8glib/utility/u8g_clip.c | 156 - .../libraries/U8glib/utility/u8g_com_api.c | 173 - .../U8glib/utility/u8g_com_api_16gr.c | 94 - .../utility/u8g_com_arduino_attiny85_hw_spi.c | 160 - .../U8glib/utility/u8g_com_arduino_common.c | 75 - .../utility/u8g_com_arduino_fast_parallel.c | 254 - .../U8glib/utility/u8g_com_arduino_hw_spi.c | 438 - .../utility/u8g_com_arduino_hw_usart_spi.c | 159 - .../utility/u8g_com_arduino_no_en_parallel.c | 234 - .../U8glib/utility/u8g_com_arduino_parallel.c | 184 - .../utility/u8g_com_arduino_port_d_wr.c | 177 - .../U8glib/utility/u8g_com_arduino_ssd_i2c.c | 212 - .../utility/u8g_com_arduino_st7920_custom.c | 330 - .../utility/u8g_com_arduino_st7920_hw_spi.c | 293 - .../utility/u8g_com_arduino_st7920_spi.c | 330 - .../utility/u8g_com_arduino_std_sw_spi.c | 143 - .../U8glib/utility/u8g_com_arduino_sw_spi.c | 301 - .../U8glib/utility/u8g_com_arduino_t6963.c | 403 - .../U8glib/utility/u8g_com_arduino_uc_i2c.c | 206 - .../U8glib/utility/u8g_com_atmega_hw_spi.c | 188 - .../U8glib/utility/u8g_com_atmega_parallel.c | 183 - .../utility/u8g_com_atmega_st7920_hw_spi.c | 216 - .../utility/u8g_com_atmega_st7920_spi.c | 170 - .../U8glib/utility/u8g_com_atmega_sw_spi.c | 141 - .../libraries/U8glib/utility/u8g_com_i2c.c | 642 - .../libraries/U8glib/utility/u8g_com_io.c | 273 - .../libraries/U8glib/utility/u8g_com_null.c | 63 - .../utility/u8g_com_raspberrypi_hw_spi.c | 124 - .../utility/u8g_com_raspberrypi_ssd_i2c.c | 176 - .../libraries/U8glib/utility/u8g_cursor.c | 99 - .../libraries/U8glib/utility/u8g_delay.c | 262 - .../U8glib/utility/u8g_dev_a2_micro_printer.c | 199 - .../U8glib/utility/u8g_dev_flipdisc_2x7.c | 92 - .../libraries/U8glib/utility/u8g_dev_gprof.c | 130 - .../libraries/U8glib/utility/u8g_dev_ht1632.c | 281 - .../U8glib/utility/u8g_dev_ili9325d_320x240.c | 326 - .../U8glib/utility/u8g_dev_ks0108_128x64.c | 110 - .../U8glib/utility/u8g_dev_lc7981_160x80.c | 147 - .../U8glib/utility/u8g_dev_lc7981_240x128.c | 145 - .../U8glib/utility/u8g_dev_lc7981_240x64.c | 145 - .../U8glib/utility/u8g_dev_lc7981_320x64.c | 151 - .../U8glib/utility/u8g_dev_ld7032_60x32.c | 232 - .../libraries/U8glib/utility/u8g_dev_null.c | 67 - .../U8glib/utility/u8g_dev_pcd8544_84x48.c | 141 - .../U8glib/utility/u8g_dev_pcf8812_96x65.c | 138 - .../U8glib/utility/u8g_dev_sbn1661_122x32.c | 107 - .../U8glib/utility/u8g_dev_ssd1306_128x32.c | 289 - .../U8glib/utility/u8g_dev_ssd1306_128x64.c | 412 - .../U8glib/utility/u8g_dev_ssd1309_128x64.c | 144 - .../utility/u8g_dev_ssd1322_nhd31oled_bw.c | 338 - .../utility/u8g_dev_ssd1322_nhd31oled_gr.c | 338 - .../utility/u8g_dev_ssd1325_nhd27oled_bw.c | 263 - .../u8g_dev_ssd1325_nhd27oled_bw_new.c | 232 - .../utility/u8g_dev_ssd1325_nhd27oled_gr.c | 255 - .../u8g_dev_ssd1325_nhd27oled_gr_new.c | 227 - .../U8glib/utility/u8g_dev_ssd1327_96x96_gr.c | 299 - .../U8glib/utility/u8g_dev_ssd1351_128x128.c | 787 - .../U8glib/utility/u8g_dev_st7565_64128n.c | 203 - .../U8glib/utility/u8g_dev_st7565_dogm128.c | 190 - .../U8glib/utility/u8g_dev_st7565_dogm132.c | 157 - .../U8glib/utility/u8g_dev_st7565_lm6059.c | 205 - .../U8glib/utility/u8g_dev_st7565_lm6063.c | 236 - .../utility/u8g_dev_st7565_nhd_c12832.c | 145 - .../utility/u8g_dev_st7565_nhd_c12864.c | 194 - .../U8glib/utility/u8g_dev_st7687_c144mvgd.c | 420 - .../U8glib/utility/u8g_dev_st7920_128x64.c | 175 - .../U8glib/utility/u8g_dev_st7920_192x32.c | 151 - .../U8glib/utility/u8g_dev_st7920_202x32.c | 154 - .../U8glib/utility/u8g_dev_t6963_128x128.c | 193 - .../U8glib/utility/u8g_dev_t6963_128x64.c | 191 - .../U8glib/utility/u8g_dev_t6963_240x128.c | 195 - .../U8glib/utility/u8g_dev_t6963_240x64.c | 195 - .../U8glib/utility/u8g_dev_tls8204_84x48.c | 115 - .../U8glib/utility/u8g_dev_uc1601_c128032.c | 201 - .../U8glib/utility/u8g_dev_uc1608_240x128.c | 200 - .../U8glib/utility/u8g_dev_uc1608_240x64.c | 168 - .../U8glib/utility/u8g_dev_uc1610_dogxl160.c | 290 - .../U8glib/utility/u8g_dev_uc1611_dogm240.c | 116 - .../U8glib/utility/u8g_dev_uc1611_dogxl240.c | 116 - .../U8glib/utility/u8g_dev_uc1701_dogs102.c | 157 - .../U8glib/utility/u8g_dev_uc1701_mini12864.c | 158 - .../libraries/U8glib/utility/u8g_ellipse.c | 393 - .../libraries/U8glib/utility/u8g_font.c | 1500 - .../libraries/U8glib/utility/u8g_font_data.c | 88464 ---------------- .../libraries/U8glib/utility/u8g_line.c | 81 - .../libraries/U8glib/utility/u8g_ll_api.c | 573 - .../libraries/U8glib/utility/u8g_page.c | 81 - .../libraries/U8glib/utility/u8g_pb.c | 191 - .../libraries/U8glib/utility/u8g_pb14v1.c | 200 - .../libraries/U8glib/utility/u8g_pb16h1.c | 213 - .../libraries/U8glib/utility/u8g_pb16h2.c | 208 - .../libraries/U8glib/utility/u8g_pb16v1.c | 200 - .../libraries/U8glib/utility/u8g_pb16v2.c | 172 - .../libraries/U8glib/utility/u8g_pb32h1.c | 208 - .../libraries/U8glib/utility/u8g_pb8h1.c | 389 - .../libraries/U8glib/utility/u8g_pb8h1f.c | 194 - .../libraries/U8glib/utility/u8g_pb8h2.c | 167 - .../libraries/U8glib/utility/u8g_pb8h8.c | 185 - .../libraries/U8glib/utility/u8g_pb8v1.c | 184 - .../libraries/U8glib/utility/u8g_pb8v2.c | 153 - .../libraries/U8glib/utility/u8g_pbxh16.c | 184 - .../libraries/U8glib/utility/u8g_pbxh24.c | 287 - .../libraries/U8glib/utility/u8g_polygon.c | 334 - .../libraries/U8glib/utility/u8g_rect.c | 232 - .../libraries/U8glib/utility/u8g_rot.c | 409 - .../libraries/U8glib/utility/u8g_scale.c | 188 - .../libraries/U8glib/utility/u8g_state.c | 158 - .../libraries/U8glib/utility/u8g_u16toa.c | 68 - .../libraries/U8glib/utility/u8g_u8toa.c | 68 - .../U8glib/utility/u8g_virtual_screen.c | 145 - .../hardware/marlin/avr/boards.txt | 159 - .../avr/bootloaders/atmega/ATmegaBOOT_168.c | 1071 - .../atmega/ATmegaBOOT_168_atmega1284p.hex | 130 - .../atmega/ATmegaBOOT_168_atmega1284p_8m.hex | 130 - .../atmega/ATmegaBOOT_168_atmega644p.hex | 126 - .../marlin/avr/bootloaders/atmega/Makefile | 254 - .../bootloaders/brainwave/BootloaderHID.hex | 139 - .../brainwave/Brainwave-646-LUFA.hex | 239 - .../brainwave/BrainwavePro-1286-LUFA.hex | 247 - .../marlin/avr/cores/brainwave/Arduino.h | 215 - .../marlin/avr/cores/brainwave/CDC.cpp | 236 - .../marlin/avr/cores/brainwave/Client.h | 26 - .../marlin/avr/cores/brainwave/HID.cpp | 520 - .../avr/cores/brainwave/HardwareSerial.cpp | 428 - .../avr/cores/brainwave/HardwareSerial.h | 81 - .../marlin/avr/cores/brainwave/IPAddress.cpp | 56 - .../marlin/avr/cores/brainwave/IPAddress.h | 76 - .../marlin/avr/cores/brainwave/Platform.h | 23 - .../marlin/avr/cores/brainwave/Print.cpp | 263 - .../marlin/avr/cores/brainwave/Print.h | 78 - .../marlin/avr/cores/brainwave/Printable.h | 40 - .../marlin/avr/cores/brainwave/Server.h | 9 - .../marlin/avr/cores/brainwave/Stream.cpp | 270 - .../marlin/avr/cores/brainwave/Stream.h | 96 - .../marlin/avr/cores/brainwave/Tone.cpp | 601 - .../marlin/avr/cores/brainwave/USBAPI.h | 195 - .../marlin/avr/cores/brainwave/USBCore.cpp | 670 - .../marlin/avr/cores/brainwave/USBCore.h | 307 - .../marlin/avr/cores/brainwave/USBDesc.h | 62 - .../hardware/marlin/avr/cores/brainwave/Udp.h | 88 - .../marlin/avr/cores/brainwave/WCharacter.h | 168 - .../marlin/avr/cores/brainwave/WInterrupts.c | 298 - .../marlin/avr/cores/brainwave/WMath.cpp | 60 - .../marlin/avr/cores/brainwave/WString.cpp | 645 - .../marlin/avr/cores/brainwave/WString.h | 205 - .../marlin/avr/cores/brainwave/binary.h | 515 - .../marlin/avr/cores/brainwave/main.cpp | 20 - .../marlin/avr/cores/brainwave/new.cpp | 18 - .../hardware/marlin/avr/cores/brainwave/new.h | 22 - .../marlin/avr/cores/brainwave/wiring.c | 324 - .../avr/cores/brainwave/wiring_analog.c | 282 - .../avr/cores/brainwave/wiring_digital.c | 178 - .../avr/cores/brainwave/wiring_private.h | 69 - .../marlin/avr/cores/brainwave/wiring_pulse.c | 69 - .../marlin/avr/cores/brainwave/wiring_shift.c | 55 - .../marlin/avr/firmwares/Brainwave.inf | 106 - .../libraries/LiquidCrystal/LiquidCrystal.cpp | 310 - .../libraries/LiquidCrystal/LiquidCrystal.h | 106 - .../avr/libraries/LiquidCrystal/keywords.txt | 37 - .../hardware/marlin/avr/libraries/SPI/SPI.cpp | 66 - .../hardware/marlin/avr/libraries/SPI/SPI.h | 70 - .../marlin/avr/libraries/SPI/keywords.txt | 36 - .../marlin/avr/libraries/U8glib/ChangeLog | 114 - .../marlin/avr/libraries/U8glib/INSTALL.TXT | 21 - .../marlin/avr/libraries/U8glib/U8glib.cpp | 80 - .../marlin/avr/libraries/U8glib/U8glib.h | 826 - .../U8glib/examples/Bitmap/Bitmap.pde | 130 - .../libraries/U8glib/examples/Chess/Chess.pde | 180 - .../U8glib/examples/Console/Console.pde | 230 - .../avr/libraries/U8glib/examples/F/F.pde | 139 - .../examples/GraphicsTest/GraphicsTest.pde | 223 - .../U8glib/examples/HelloWorld/HelloWorld.pde | 136 - .../libraries/U8glib/examples/Menu/Menu.pde | 234 - .../U8glib/examples/PrintTest/PrintTest.pde | 124 - .../U8glib/examples/Rotation/Rotation.pde | 152 - .../libraries/U8glib/examples/Scale/Scale.pde | 141 - .../U8glib/examples/TextRotX/TextRotX.pde | 154 - .../U8glib/examples/U8gLogo/U8gLogo.pde | 179 - .../avr/libraries/U8glib/examples/XBM/XBM.pde | 136 - .../marlin/avr/libraries/U8glib/license.txt | 80 - .../libraries/U8glib/utility/chessengine.c | 2392 - .../marlin/avr/libraries/U8glib/utility/u8g.h | 1607 - .../avr/libraries/U8glib/utility/u8g_bitmap.c | 177 - .../avr/libraries/U8glib/utility/u8g_circle.c | 382 - .../avr/libraries/U8glib/utility/u8g_clip.c | 156 - .../libraries/U8glib/utility/u8g_com_api.c | 173 - .../U8glib/utility/u8g_com_api_16gr.c | 94 - .../U8glib/utility/u8g_com_arduino_common.c | 75 - .../utility/u8g_com_arduino_fast_parallel.c | 245 - .../U8glib/utility/u8g_com_arduino_hw_spi.c | 191 - .../utility/u8g_com_arduino_no_en_parallel.c | 221 - .../U8glib/utility/u8g_com_arduino_parallel.c | 187 - .../utility/u8g_com_arduino_port_d_wr.c | 168 - .../U8glib/utility/u8g_com_arduino_ssd_i2c.c | 201 - .../utility/u8g_com_arduino_st7920_hw_spi.c | 220 - .../utility/u8g_com_arduino_st7920_spi.c | 295 - .../utility/u8g_com_arduino_std_sw_spi.c | 144 - .../U8glib/utility/u8g_com_arduino_sw_spi.c | 239 - .../U8glib/utility/u8g_com_arduino_t6963.c | 385 - .../U8glib/utility/u8g_com_atmega_hw_spi.c | 174 - .../U8glib/utility/u8g_com_atmega_parallel.c | 183 - .../utility/u8g_com_atmega_st7920_hw_spi.c | 205 - .../utility/u8g_com_atmega_st7920_spi.c | 170 - .../U8glib/utility/u8g_com_atmega_sw_spi.c | 141 - .../libraries/U8glib/utility/u8g_com_i2c.c | 249 - .../avr/libraries/U8glib/utility/u8g_com_io.c | 218 - .../libraries/U8glib/utility/u8g_com_null.c | 63 - .../avr/libraries/U8glib/utility/u8g_cursor.c | 99 - .../avr/libraries/U8glib/utility/u8g_delay.c | 215 - .../U8glib/utility/u8g_dev_flipdisc_2x7.c | 92 - .../libraries/U8glib/utility/u8g_dev_gprof.c | 130 - .../U8glib/utility/u8g_dev_ili9325d_320x240.c | 326 - .../U8glib/utility/u8g_dev_ks0108_128x64.c | 110 - .../U8glib/utility/u8g_dev_lc7981_160x80.c | 147 - .../U8glib/utility/u8g_dev_lc7981_240x128.c | 145 - .../U8glib/utility/u8g_dev_lc7981_240x64.c | 145 - .../U8glib/utility/u8g_dev_lc7981_320x64.c | 145 - .../libraries/U8glib/utility/u8g_dev_null.c | 67 - .../U8glib/utility/u8g_dev_pcd8544_84x48.c | 110 - .../U8glib/utility/u8g_dev_pcf8812_96x65.c | 123 - .../U8glib/utility/u8g_dev_sbn1661_122x32.c | 107 - .../U8glib/utility/u8g_dev_ssd1306_128x32.c | 247 - .../U8glib/utility/u8g_dev_ssd1306_128x64.c | 237 - .../U8glib/utility/u8g_dev_ssd1309_128x64.c | 144 - .../utility/u8g_dev_ssd1322_nhd31oled_bw.c | 334 - .../utility/u8g_dev_ssd1322_nhd31oled_gr.c | 333 - .../utility/u8g_dev_ssd1325_nhd27oled_bw.c | 263 - .../u8g_dev_ssd1325_nhd27oled_bw_new.c | 232 - .../utility/u8g_dev_ssd1325_nhd27oled_gr.c | 255 - .../u8g_dev_ssd1325_nhd27oled_gr_new.c | 227 - .../U8glib/utility/u8g_dev_ssd1327_96x96_gr.c | 299 - .../U8glib/utility/u8g_dev_st7565_64128n.c | 153 - .../U8glib/utility/u8g_dev_st7565_dogm128.c | 140 - .../U8glib/utility/u8g_dev_st7565_dogm132.c | 157 - .../U8glib/utility/u8g_dev_st7565_lm6059.c | 157 - .../U8glib/utility/u8g_dev_st7565_lm6063.c | 188 - .../utility/u8g_dev_st7565_nhd_c12832.c | 143 - .../utility/u8g_dev_st7565_nhd_c12864.c | 145 - .../U8glib/utility/u8g_dev_st7687_c144mvgd.c | 420 - .../U8glib/utility/u8g_dev_st7920_128x64.c | 171 - .../U8glib/utility/u8g_dev_st7920_192x32.c | 151 - .../U8glib/utility/u8g_dev_st7920_202x32.c | 154 - .../U8glib/utility/u8g_dev_t6963_128x64.c | 191 - .../U8glib/utility/u8g_dev_t6963_240x128.c | 195 - .../U8glib/utility/u8g_dev_t6963_240x64.c | 195 - .../U8glib/utility/u8g_dev_tls8204_84x48.c | 115 - .../U8glib/utility/u8g_dev_uc1610_dogxl160.c | 290 - .../U8glib/utility/u8g_dev_uc1701_dogs102.c | 113 - .../U8glib/utility/u8g_dev_uc1701_mini12864.c | 114 - .../libraries/U8glib/utility/u8g_ellipse.c | 100 - .../avr/libraries/U8glib/utility/u8g_font.c | 1422 - .../libraries/U8glib/utility/u8g_font_data.c | 84486 --------------- .../avr/libraries/U8glib/utility/u8g_line.c | 81 - .../avr/libraries/U8glib/utility/u8g_ll_api.c | 456 - .../avr/libraries/U8glib/utility/u8g_page.c | 81 - .../avr/libraries/U8glib/utility/u8g_pb.c | 191 - .../avr/libraries/U8glib/utility/u8g_pb14v1.c | 200 - .../avr/libraries/U8glib/utility/u8g_pb16h1.c | 213 - .../avr/libraries/U8glib/utility/u8g_pb16h2.c | 182 - .../avr/libraries/U8glib/utility/u8g_pb16v1.c | 200 - .../avr/libraries/U8glib/utility/u8g_pb16v2.c | 172 - .../avr/libraries/U8glib/utility/u8g_pb32h1.c | 208 - .../avr/libraries/U8glib/utility/u8g_pb8h1.c | 389 - .../avr/libraries/U8glib/utility/u8g_pb8h1f.c | 194 - .../avr/libraries/U8glib/utility/u8g_pb8h2.c | 167 - .../avr/libraries/U8glib/utility/u8g_pb8h8.c | 179 - .../avr/libraries/U8glib/utility/u8g_pb8v1.c | 184 - .../avr/libraries/U8glib/utility/u8g_pb8v2.c | 153 - .../avr/libraries/U8glib/utility/u8g_rect.c | 232 - .../avr/libraries/U8glib/utility/u8g_rot.c | 398 - .../avr/libraries/U8glib/utility/u8g_scale.c | 188 - .../avr/libraries/U8glib/utility/u8g_state.c | 102 - .../avr/libraries/U8glib/utility/u8g_u16toa.c | 68 - .../avr/libraries/U8glib/utility/u8g_u8toa.c | 68 - .../U8glib/utility/u8g_virtual_screen.c | 145 - .../marlin/avr/libraries/Wire/Wire.cpp | 303 - .../hardware/marlin/avr/libraries/Wire/Wire.h | 80 - .../SFRRanger_reader/SFRRanger_reader.ino | 87 - .../digital_potentiometer.ino | 39 - .../examples/master_reader/master_reader.ino | 32 - .../examples/master_writer/master_writer.ino | 31 - .../slave_receiver/slave_receiver.ino | 38 - .../examples/slave_sender/slave_sender.ino | 32 - .../marlin/avr/libraries/Wire/keywords.txt | 32 - .../avr/libraries/Wire/library.properties | 8 - .../marlin/avr/libraries/Wire/utility/twi.c | 527 - .../marlin/avr/libraries/Wire/utility/twi.h | 53 - .../hardware/marlin/avr/platform.local.txt | 0 .../hardware/marlin/avr/platform.txt | 119 - .../avr/variants/brainwave/pins_arduino.h | 281 - .../avr/variants/brainwavepro/pins_arduino.h | 278 - .../marlin/avr/variants/rambo/pins_arduino.h | 411 - .../avr/variants/sanguino/pins_arduino.h | 285 - .../hardware/marlin/avr/boards.txt | 284 - .../avr/bootloaders/SAVMkI/BootloaderHID.hex | 139 - .../bootloaders/SAVMkI/SAVMkI-1286-LUFA.hex | 247 - .../avr/bootloaders/SAVMkI/SAVMkI-CDC.hex | 249 - .../avr/bootloaders/at90usb/BootloaderHID.hex | 139 - .../at90usb/Brainwave-646-LUFA.hex | 239 - .../at90usb/BrainwavePro-1286-LUFA.hex | 247 - .../avr/bootloaders/atmega/ATmegaBOOT_168.c | 1071 - .../atmega/ATmegaBOOT_168_atmega1284p.hex | 130 - .../atmega/ATmegaBOOT_168_atmega1284p_8m.hex | 130 - .../atmega/ATmegaBOOT_168_atmega644p.hex | 126 - .../marlin/avr/bootloaders/atmega/Makefile | 254 - .../marlin/avr/cores/arduino/Arduino.h | 249 - .../hardware/marlin/avr/cores/arduino/CDC.cpp | 211 - .../marlin/avr/cores/arduino/Client.h | 45 - .../hardware/marlin/avr/cores/arduino/HID.cpp | 518 - .../avr/cores/arduino/HardwareSerial.cpp | 252 - .../marlin/avr/cores/arduino/HardwareSerial.h | 151 - .../avr/cores/arduino/HardwareSerial0.cpp | 79 - .../avr/cores/arduino/HardwareSerial1.cpp | 69 - .../avr/cores/arduino/HardwareSerial2.cpp | 57 - .../avr/cores/arduino/HardwareSerial3.cpp | 57 - .../cores/arduino/HardwareSerial_private.h | 123 - .../marlin/avr/cores/arduino/IPAddress.cpp | 74 - .../marlin/avr/cores/arduino/IPAddress.h | 75 - .../marlin/avr/cores/arduino/Print.cpp | 264 - .../hardware/marlin/avr/cores/arduino/Print.h | 84 - .../marlin/avr/cores/arduino/Printable.h | 40 - .../marlin/avr/cores/arduino/Server.h | 30 - .../marlin/avr/cores/arduino/Stream.cpp | 317 - .../marlin/avr/cores/arduino/Stream.h | 113 - .../marlin/avr/cores/arduino/Tone.cpp | 618 - .../marlin/avr/cores/arduino/USBAPI.h | 244 - .../marlin/avr/cores/arduino/USBCore.cpp | 699 - .../marlin/avr/cores/arduino/USBCore.h | 303 - .../marlin/avr/cores/arduino/USBDesc.h | 63 - .../hardware/marlin/avr/cores/arduino/Udp.h | 88 - .../marlin/avr/cores/arduino/WCharacter.h | 168 - .../marlin/avr/cores/arduino/WInterrupts.c | 334 - .../marlin/avr/cores/arduino/WMath.cpp | 60 - .../marlin/avr/cores/arduino/WString.cpp | 745 - .../marlin/avr/cores/arduino/WString.h | 224 - .../hardware/marlin/avr/cores/arduino/abi.cpp | 35 - .../marlin/avr/cores/arduino/binary.h | 534 - .../hardware/marlin/avr/cores/arduino/hooks.c | 31 - .../marlin/avr/cores/arduino/main.cpp | 49 - .../hardware/marlin/avr/cores/arduino/new.cpp | 36 - .../hardware/marlin/avr/cores/arduino/new.h | 30 - .../marlin/avr/cores/arduino/wiring.c | 325 - .../marlin/avr/cores/arduino/wiring_analog.c | 292 - .../marlin/avr/cores/arduino/wiring_digital.c | 181 - .../marlin/avr/cores/arduino/wiring_private.h | 71 - .../marlin/avr/cores/arduino/wiring_pulse.c | 85 - .../marlin/avr/cores/arduino/wiring_shift.c | 55 - .../marlin/avr/cores/at90usb/Arduino.h | 215 - .../hardware/marlin/avr/cores/at90usb/CDC.cpp | 236 - .../marlin/avr/cores/at90usb/Client.h | 26 - .../hardware/marlin/avr/cores/at90usb/HID.cpp | 520 - .../avr/cores/at90usb/HardwareSerial.cpp | 428 - .../marlin/avr/cores/at90usb/HardwareSerial.h | 81 - .../marlin/avr/cores/at90usb/IPAddress.cpp | 56 - .../marlin/avr/cores/at90usb/IPAddress.h | 76 - .../marlin/avr/cores/at90usb/Platform.h | 23 - .../marlin/avr/cores/at90usb/Print.cpp | 263 - .../hardware/marlin/avr/cores/at90usb/Print.h | 78 - .../marlin/avr/cores/at90usb/Printable.h | 40 - .../marlin/avr/cores/at90usb/Server.h | 9 - .../marlin/avr/cores/at90usb/Stream.cpp | 270 - .../marlin/avr/cores/at90usb/Stream.h | 96 - .../marlin/avr/cores/at90usb/Tone.cpp | 601 - .../marlin/avr/cores/at90usb/USBAPI.h | 195 - .../marlin/avr/cores/at90usb/USBCore.cpp | 670 - .../marlin/avr/cores/at90usb/USBCore.h | 307 - .../marlin/avr/cores/at90usb/USBDesc.h | 62 - .../hardware/marlin/avr/cores/at90usb/Udp.h | 88 - .../marlin/avr/cores/at90usb/WCharacter.h | 168 - .../marlin/avr/cores/at90usb/WInterrupts.c | 298 - .../marlin/avr/cores/at90usb/WMath.cpp | 60 - .../marlin/avr/cores/at90usb/WString.cpp | 645 - .../marlin/avr/cores/at90usb/WString.h | 205 - .../marlin/avr/cores/at90usb/binary.h | 515 - .../marlin/avr/cores/at90usb/main.cpp | 20 - .../hardware/marlin/avr/cores/at90usb/new.cpp | 18 - .../hardware/marlin/avr/cores/at90usb/new.h | 22 - .../marlin/avr/cores/at90usb/wiring.c | 324 - .../marlin/avr/cores/at90usb/wiring_analog.c | 282 - .../marlin/avr/cores/at90usb/wiring_digital.c | 178 - .../marlin/avr/cores/at90usb/wiring_private.h | 69 - .../marlin/avr/cores/at90usb/wiring_pulse.c | 69 - .../marlin/avr/cores/at90usb/wiring_shift.c | 55 - .../marlin/avr/firmwares/Brainwave.inf | 106 - .../avr/libraries/LiquidCrystal/README.adoc | 24 - .../examples/Autoscroll/Autoscroll.ino | 74 - .../LiquidCrystal/examples/Blink/Blink.ino | 61 - .../LiquidCrystal/examples/Cursor/Cursor.ino | 61 - .../CustomCharacter/CustomCharacter.ino | 140 - .../examples/Display/Display.ino | 61 - .../examples/HelloWorld/HelloWorld.ino | 60 - .../LiquidCrystal/examples/Scroll/Scroll.ino | 86 - .../examples/SerialDisplay/SerialDisplay.ino | 65 - .../examples/TextDirection/TextDirection.ino | 86 - .../examples/setCursor/setCursor.ino | 72 - .../avr/libraries/LiquidCrystal/keywords.txt | 38 - .../LiquidCrystal/library.properties | 9 - .../LiquidCrystal/src/LiquidCrystal.cpp | 322 - .../LiquidCrystal/src/LiquidCrystal.h | 108 - .../hardware/marlin/avr/libraries/SPI/SPI.cpp | 66 - .../hardware/marlin/avr/libraries/SPI/SPI.h | 70 - .../marlin/avr/libraries/SPI/keywords.txt | 36 - .../marlin/avr/libraries/U8glib/ChangeLog | 162 - .../marlin/avr/libraries/U8glib/INSTALL.TXT | 26 - .../marlin/avr/libraries/U8glib/U8glib.cpp | 79 - .../marlin/avr/libraries/U8glib/U8glib.h | 1268 - .../U8glib/examples/A2Printer/A2Printer.ino | 131 - .../U8glib/examples/Bitmap/Bitmap.ino | 166 - .../libraries/U8glib/examples/Chess/Chess.ino | 216 - .../libraries/U8glib/examples/Color/Color.ino | 201 - .../U8glib/examples/Console/Console.ino | 266 - .../avr/libraries/U8glib/examples/F/F.ino | 175 - .../avr/libraries/U8glib/examples/FPS/FPS.ino | 398 - .../examples/GraphicsTest/GraphicsTest.ino | 300 - .../U8glib/examples/HelloWorld/HelloWorld.ino | 177 - .../libraries/U8glib/examples/Menu/Menu.ino | 273 - .../U8glib/examples/PrintTest/PrintTest.ino | 160 - .../U8glib/examples/Rotation/Rotation.ino | 188 - .../libraries/U8glib/examples/Scale/Scale.ino | 177 - .../U8glib/examples/TextRotX/TextRotX.ino | 190 - .../examples/Touch4WSetup/Touch4WSetup.ino | 348 - .../examples/Touch4WTest/Touch4WTest.ino | 335 - .../U8glib/examples/U8gLogo/U8gLogo.ino | 230 - .../avr/libraries/U8glib/examples/XBM/XBM.ino | 172 - .../marlin/avr/libraries/U8glib/license.txt | 81 - .../libraries/U8glib/utility/chessengine.c | 2392 - .../marlin/avr/libraries/U8glib/utility/u8g.h | 1977 - .../avr/libraries/U8glib/utility/u8g_bitmap.c | 177 - .../avr/libraries/U8glib/utility/u8g_circle.c | 382 - .../avr/libraries/U8glib/utility/u8g_clip.c | 156 - .../libraries/U8glib/utility/u8g_com_api.c | 173 - .../U8glib/utility/u8g_com_api_16gr.c | 94 - .../utility/u8g_com_arduino_attiny85_hw_spi.c | 160 - .../U8glib/utility/u8g_com_arduino_common.c | 75 - .../utility/u8g_com_arduino_fast_parallel.c | 254 - .../U8glib/utility/u8g_com_arduino_hw_spi.c | 438 - .../utility/u8g_com_arduino_hw_usart_spi.c | 159 - .../utility/u8g_com_arduino_no_en_parallel.c | 234 - .../U8glib/utility/u8g_com_arduino_parallel.c | 184 - .../utility/u8g_com_arduino_port_d_wr.c | 177 - .../U8glib/utility/u8g_com_arduino_ssd_i2c.c | 212 - .../utility/u8g_com_arduino_st7920_custom.c | 330 - .../utility/u8g_com_arduino_st7920_hw_spi.c | 293 - .../utility/u8g_com_arduino_st7920_spi.c | 330 - .../utility/u8g_com_arduino_std_sw_spi.c | 143 - .../U8glib/utility/u8g_com_arduino_sw_spi.c | 301 - .../U8glib/utility/u8g_com_arduino_t6963.c | 403 - .../U8glib/utility/u8g_com_arduino_uc_i2c.c | 206 - .../U8glib/utility/u8g_com_atmega_hw_spi.c | 188 - .../U8glib/utility/u8g_com_atmega_parallel.c | 183 - .../utility/u8g_com_atmega_st7920_hw_spi.c | 216 - .../utility/u8g_com_atmega_st7920_spi.c | 170 - .../U8glib/utility/u8g_com_atmega_sw_spi.c | 141 - .../libraries/U8glib/utility/u8g_com_i2c.c | 642 - .../avr/libraries/U8glib/utility/u8g_com_io.c | 273 - .../libraries/U8glib/utility/u8g_com_null.c | 63 - .../utility/u8g_com_raspberrypi_hw_spi.c | 124 - .../utility/u8g_com_raspberrypi_ssd_i2c.c | 176 - .../avr/libraries/U8glib/utility/u8g_cursor.c | 99 - .../avr/libraries/U8glib/utility/u8g_delay.c | 262 - .../U8glib/utility/u8g_dev_a2_micro_printer.c | 199 - .../U8glib/utility/u8g_dev_flipdisc_2x7.c | 92 - .../libraries/U8glib/utility/u8g_dev_gprof.c | 130 - .../libraries/U8glib/utility/u8g_dev_ht1632.c | 281 - .../U8glib/utility/u8g_dev_ili9325d_320x240.c | 326 - .../U8glib/utility/u8g_dev_ks0108_128x64.c | 110 - .../U8glib/utility/u8g_dev_lc7981_160x80.c | 147 - .../U8glib/utility/u8g_dev_lc7981_240x128.c | 145 - .../U8glib/utility/u8g_dev_lc7981_240x64.c | 145 - .../U8glib/utility/u8g_dev_lc7981_320x64.c | 151 - .../U8glib/utility/u8g_dev_ld7032_60x32.c | 232 - .../libraries/U8glib/utility/u8g_dev_null.c | 67 - .../U8glib/utility/u8g_dev_pcd8544_84x48.c | 141 - .../U8glib/utility/u8g_dev_pcf8812_96x65.c | 138 - .../U8glib/utility/u8g_dev_sbn1661_122x32.c | 107 - .../U8glib/utility/u8g_dev_ssd1306_128x32.c | 289 - .../U8glib/utility/u8g_dev_ssd1306_128x64.c | 412 - .../U8glib/utility/u8g_dev_ssd1309_128x64.c | 144 - .../utility/u8g_dev_ssd1322_nhd31oled_bw.c | 338 - .../utility/u8g_dev_ssd1322_nhd31oled_gr.c | 338 - .../utility/u8g_dev_ssd1325_nhd27oled_bw.c | 263 - .../u8g_dev_ssd1325_nhd27oled_bw_new.c | 232 - .../utility/u8g_dev_ssd1325_nhd27oled_gr.c | 255 - .../u8g_dev_ssd1325_nhd27oled_gr_new.c | 227 - .../U8glib/utility/u8g_dev_ssd1327_96x96_gr.c | 299 - .../U8glib/utility/u8g_dev_ssd1351_128x128.c | 787 - .../U8glib/utility/u8g_dev_st7565_64128n.c | 203 - .../U8glib/utility/u8g_dev_st7565_dogm128.c | 190 - .../U8glib/utility/u8g_dev_st7565_dogm132.c | 157 - .../U8glib/utility/u8g_dev_st7565_lm6059.c | 205 - .../U8glib/utility/u8g_dev_st7565_lm6063.c | 236 - .../utility/u8g_dev_st7565_nhd_c12832.c | 145 - .../utility/u8g_dev_st7565_nhd_c12864.c | 194 - .../U8glib/utility/u8g_dev_st7687_c144mvgd.c | 420 - .../U8glib/utility/u8g_dev_st7920_128x64.c | 175 - .../U8glib/utility/u8g_dev_st7920_192x32.c | 151 - .../U8glib/utility/u8g_dev_st7920_202x32.c | 154 - .../U8glib/utility/u8g_dev_t6963_128x128.c | 193 - .../U8glib/utility/u8g_dev_t6963_128x64.c | 191 - .../U8glib/utility/u8g_dev_t6963_240x128.c | 195 - .../U8glib/utility/u8g_dev_t6963_240x64.c | 195 - .../U8glib/utility/u8g_dev_tls8204_84x48.c | 115 - .../U8glib/utility/u8g_dev_uc1601_c128032.c | 201 - .../U8glib/utility/u8g_dev_uc1608_240x128.c | 200 - .../U8glib/utility/u8g_dev_uc1608_240x64.c | 168 - .../U8glib/utility/u8g_dev_uc1610_dogxl160.c | 290 - .../U8glib/utility/u8g_dev_uc1611_dogm240.c | 116 - .../U8glib/utility/u8g_dev_uc1611_dogxl240.c | 116 - .../U8glib/utility/u8g_dev_uc1701_dogs102.c | 157 - .../U8glib/utility/u8g_dev_uc1701_mini12864.c | 158 - .../libraries/U8glib/utility/u8g_ellipse.c | 393 - .../avr/libraries/U8glib/utility/u8g_font.c | 1500 - .../libraries/U8glib/utility/u8g_font_data.c | 88464 ---------------- .../avr/libraries/U8glib/utility/u8g_line.c | 81 - .../avr/libraries/U8glib/utility/u8g_ll_api.c | 573 - .../avr/libraries/U8glib/utility/u8g_page.c | 81 - .../avr/libraries/U8glib/utility/u8g_pb.c | 191 - .../avr/libraries/U8glib/utility/u8g_pb14v1.c | 200 - .../avr/libraries/U8glib/utility/u8g_pb16h1.c | 213 - .../avr/libraries/U8glib/utility/u8g_pb16h2.c | 208 - .../avr/libraries/U8glib/utility/u8g_pb16v1.c | 200 - .../avr/libraries/U8glib/utility/u8g_pb16v2.c | 172 - .../avr/libraries/U8glib/utility/u8g_pb32h1.c | 208 - .../avr/libraries/U8glib/utility/u8g_pb8h1.c | 389 - .../avr/libraries/U8glib/utility/u8g_pb8h1f.c | 194 - .../avr/libraries/U8glib/utility/u8g_pb8h2.c | 167 - .../avr/libraries/U8glib/utility/u8g_pb8h8.c | 185 - .../avr/libraries/U8glib/utility/u8g_pb8v1.c | 184 - .../avr/libraries/U8glib/utility/u8g_pb8v2.c | 153 - .../avr/libraries/U8glib/utility/u8g_pbxh16.c | 184 - .../avr/libraries/U8glib/utility/u8g_pbxh24.c | 287 - .../libraries/U8glib/utility/u8g_polygon.c | 334 - .../avr/libraries/U8glib/utility/u8g_rect.c | 232 - .../avr/libraries/U8glib/utility/u8g_rot.c | 409 - .../avr/libraries/U8glib/utility/u8g_scale.c | 188 - .../avr/libraries/U8glib/utility/u8g_state.c | 158 - .../avr/libraries/U8glib/utility/u8g_u16toa.c | 68 - .../avr/libraries/U8glib/utility/u8g_u8toa.c | 68 - .../U8glib/utility/u8g_virtual_screen.c | 145 - .../marlin/avr/libraries/Wire/Wire.cpp | 303 - .../hardware/marlin/avr/libraries/Wire/Wire.h | 80 - .../SFRRanger_reader/SFRRanger_reader.ino | 87 - .../digital_potentiometer.ino | 39 - .../examples/master_reader/master_reader.ino | 32 - .../examples/master_writer/master_writer.ino | 31 - .../slave_receiver/slave_receiver.ino | 38 - .../examples/slave_sender/slave_sender.ino | 32 - .../marlin/avr/libraries/Wire/keywords.txt | 32 - .../avr/libraries/Wire/library.properties | 8 - .../marlin/avr/libraries/Wire/utility/twi.c | 527 - .../marlin/avr/libraries/Wire/utility/twi.h | 53 - .../hardware/marlin/avr/platform.local.txt | 7 - .../hardware/marlin/avr/platform.txt | 120 - .../avr/variants/at90usb/pins_arduino.h | 278 - .../avr/variants/brainwave/pins_arduino.h | 281 - .../marlin/avr/variants/mega/pins_arduino.h | 389 - .../marlin/avr/variants/rambo/pins_arduino.h | 411 - .../avr/variants/sanguino/pins_arduino.h | 285 - .../avr/variants/standard/pins_arduino.h | 238 - .../Arduino_1.6.x/libraries/L6470/L6470.cpp | 723 - .../Arduino_1.6.x/libraries/L6470/L6470.h | 286 - .../libraries/L6470/keywords.txt | 53 - .../libraries/TMC26XStepper/.gitignore | 17 - .../libraries/TMC26XStepper/Doxyfile | 1813 - .../libraries/TMC26XStepper/LICENSE | 10 - .../libraries/TMC26XStepper/README.rst | 71 - .../libraries/TMC26XStepper/TMC26XStepper.cpp | 999 - .../libraries/TMC26XStepper/TMC26XStepper.h | 607 - .../html/_t_m_c26_x_stepper_8cpp.html | 848 - .../html/_t_m_c26_x_stepper_8cpp_source.html | 1067 - .../html/_t_m_c26_x_stepper_8h.html | 212 - .../html/_t_m_c26_x_stepper_8h_source.html | 256 - .../documentation/html/annotated.html | 72 - .../TMC26XStepper/documentation/html/bc_s.png | Bin 677 -> 0 bytes .../html/class_t_m_c26_x_stepper-members.html | 117 - .../html/class_t_m_c26_x_stepper.html | 1463 - .../documentation/html/classes.html | 78 - .../documentation/html/closed.png | Bin 126 -> 0 bytes .../documentation/html/doxygen.css | 949 - .../documentation/html/doxygen.png | Bin 3942 -> 0 bytes .../documentation/html/files.html | 72 - .../documentation/html/functions.html | 261 - .../documentation/html/functions_func.html | 261 - .../documentation/html/globals.html | 289 - .../documentation/html/globals_defs.html | 289 - .../documentation/html/index.html | 72 - .../documentation/html/jquery.js | 64 - .../documentation/html/mainpage_8dox.html | 68 - .../documentation/html/nav_f.png | Bin 159 -> 0 bytes .../documentation/html/nav_h.png | Bin 97 -> 0 bytes .../TMC26XStepper/documentation/html/open.png | Bin 118 -> 0 bytes .../documentation/html/tab_a.png | Bin 140 -> 0 bytes .../documentation/html/tab_b.png | Bin 178 -> 0 bytes .../documentation/html/tab_h.png | Bin 192 -> 0 bytes .../documentation/html/tab_s.png | Bin 189 -> 0 bytes .../TMC26XStepper/documentation/html/tabs.css | 59 - .../examples/TMC26XExample/TMC26XExample.ino | 82 - .../examples/TMC26XMotorTester/Motor.ino | 176 - .../examples/TMC26XMotorTester/Serial.ino | 369 - .../TMC26XMotorTester/TMC26XMotorTester.ino | 61 - .../processing/TMC26XMotorTest/Arduino.pde | 306 - .../TMC26XMotorTest/ChopperConfiguration.pde | 175 - .../TMC26XMotorTest/DataRendering.pde | 327 - .../processing/TMC26XMotorTest/DataTable.pde | 49 - .../TMC26XMotorTest/RunConfiguration.pde | 335 - .../TMC26XMotorTest/TMC26XMotorTest.pde | 156 - .../TMC26XMotorTest/data/mc_logo.jpg | Bin 8814 -> 0 bytes .../TMC26XMotorTest/data/tmc_logo.jpg | Bin 8079 -> 0 bytes .../processing/TMC26XMotorTest/hysteresis.png | Bin 33102 -> 0 bytes .../TMC26XMotorTest/sketch.properties | 2 - .../libraries/TMC26XStepper/keywords.txt | 75 - .../libraries/TMC26XStepper/mainpage.dox | 30 - .../schematics/tmc-260-shield.brd | 9797 -- .../schematics/tmc-260-shield.sch | 11079 -- .../hardware/Gen7-dist/boards.txt | 108 - .../Gen7-dist/cores/arduino/Arduino.h | 222 - .../hardware/Gen7-dist/cores/arduino/CDC.cpp | 239 - .../hardware/Gen7-dist/cores/arduino/Client.h | 26 - .../hardware/Gen7-dist/cores/arduino/HID.cpp | 520 - .../cores/arduino/HardwareSerial.cpp | 519 - .../Gen7-dist/cores/arduino/HardwareSerial.h | 115 - .../Gen7-dist/cores/arduino/IPAddress.cpp | 56 - .../Gen7-dist/cores/arduino/IPAddress.h | 76 - .../Gen7-dist/cores/arduino/Platform.h | 23 - .../Gen7-dist/cores/arduino/Print.cpp | 268 - .../hardware/Gen7-dist/cores/arduino/Print.h | 81 - .../Gen7-dist/cores/arduino/Printable.h | 40 - .../hardware/Gen7-dist/cores/arduino/Server.h | 9 - .../Gen7-dist/cores/arduino/Stream.cpp | 270 - .../hardware/Gen7-dist/cores/arduino/Stream.h | 96 - .../hardware/Gen7-dist/cores/arduino/Tone.cpp | 617 - .../hardware/Gen7-dist/cores/arduino/USBAPI.h | 196 - .../Gen7-dist/cores/arduino/USBCore.cpp | 684 - .../Gen7-dist/cores/arduino/USBCore.h | 303 - .../Gen7-dist/cores/arduino/USBDesc.h | 63 - .../hardware/Gen7-dist/cores/arduino/Udp.h | 88 - .../Gen7-dist/cores/arduino/WCharacter.h | 168 - .../Gen7-dist/cores/arduino/WInterrupts.c | 322 - .../Gen7-dist/cores/arduino/WMath.cpp | 60 - .../Gen7-dist/cores/arduino/WString.cpp | 645 - .../Gen7-dist/cores/arduino/WString.h | 205 - .../hardware/Gen7-dist/cores/arduino/binary.h | 515 - .../hardware/Gen7-dist/cores/arduino/main.cpp | 20 - .../hardware/Gen7-dist/cores/arduino/new.cpp | 18 - .../hardware/Gen7-dist/cores/arduino/new.h | 22 - .../hardware/Gen7-dist/cores/arduino/wiring.c | 324 - .../Gen7-dist/cores/arduino/wiring_analog.c | 282 - .../Gen7-dist/cores/arduino/wiring_digital.c | 178 - .../Gen7-dist/cores/arduino/wiring_private.h | 71 - .../Gen7-dist/cores/arduino/wiring_pulse.c | 69 - .../Gen7-dist/cores/arduino/wiring_shift.c | 55 - .../Gen7-dist/variants/gen7/pins_arduino.h | 235 - .../Arduino_1.x.x/hardware/Melzi/boards.txt | 20 - .../Melzi/bootloaders/atmega644p/ATmegaBOOT.c | 1090 - .../atmega644p/ATmegaBOOT_1284P.hex | 117 - .../Melzi/bootloaders/atmega644p/Makefile | 56 - .../hardware/Melzi/cores/arduino/Arduino.h | 215 - .../hardware/Melzi/cores/arduino/CDC.cpp | 239 - .../hardware/Melzi/cores/arduino/Client.h | 26 - .../hardware/Melzi/cores/arduino/HID.cpp | 520 - .../Melzi/cores/arduino/HardwareSerial.cpp | 519 - .../Melzi/cores/arduino/HardwareSerial.h | 115 - .../Melzi/cores/arduino/IPAddress.cpp | 56 - .../hardware/Melzi/cores/arduino/IPAddress.h | 76 - .../hardware/Melzi/cores/arduino/Platform.h | 23 - .../hardware/Melzi/cores/arduino/Print.cpp | 268 - .../hardware/Melzi/cores/arduino/Print.h | 81 - .../hardware/Melzi/cores/arduino/Printable.h | 40 - .../hardware/Melzi/cores/arduino/Server.h | 9 - .../hardware/Melzi/cores/arduino/Stream.cpp | 270 - .../hardware/Melzi/cores/arduino/Stream.h | 96 - .../hardware/Melzi/cores/arduino/Tone.cpp | 616 - .../hardware/Melzi/cores/arduino/USBAPI.h | 196 - .../hardware/Melzi/cores/arduino/USBCore.cpp | 684 - .../hardware/Melzi/cores/arduino/USBCore.h | 303 - .../hardware/Melzi/cores/arduino/USBDesc.h | 63 - .../hardware/Melzi/cores/arduino/Udp.h | 88 - .../hardware/Melzi/cores/arduino/WCharacter.h | 168 - .../Melzi/cores/arduino/WInterrupts.c | 322 - .../hardware/Melzi/cores/arduino/WMath.cpp | 60 - .../hardware/Melzi/cores/arduino/WString.cpp | 645 - .../hardware/Melzi/cores/arduino/WString.h | 205 - .../hardware/Melzi/cores/arduino/binary.h | 515 - .../hardware/Melzi/cores/arduino/main.cpp | 20 - .../hardware/Melzi/cores/arduino/new.cpp | 18 - .../hardware/Melzi/cores/arduino/new.h | 22 - .../hardware/Melzi/cores/arduino/wiring.c | 324 - .../Melzi/cores/arduino/wiring_analog.c | 282 - .../Melzi/cores/arduino/wiring_digital.c | 178 - .../Melzi/cores/arduino/wiring_private.h | 71 - .../Melzi/cores/arduino/wiring_pulse.c | 69 - .../Melzi/cores/arduino/wiring_shift.c | 55 - .../Melzi/variants/standard/pins_arduino.h | 286 - .../Arduino_1.x.x/libraries/L6470/L6470.cpp | 723 - .../Arduino_1.x.x/libraries/L6470/L6470.h | 286 - .../libraries/L6470/keywords.txt | 53 - .../libraries/TMC26XStepper/.gitignore | 17 - .../libraries/TMC26XStepper/Doxyfile | 1813 - .../libraries/TMC26XStepper/LICENSE | 10 - .../libraries/TMC26XStepper/README.rst | 71 - .../libraries/TMC26XStepper/TMC26XStepper.cpp | 999 - .../libraries/TMC26XStepper/TMC26XStepper.h | 607 - .../html/_t_m_c26_x_stepper_8cpp.html | 848 - .../html/_t_m_c26_x_stepper_8cpp_source.html | 1067 - .../html/_t_m_c26_x_stepper_8h.html | 212 - .../html/_t_m_c26_x_stepper_8h_source.html | 256 - .../documentation/html/annotated.html | 72 - .../TMC26XStepper/documentation/html/bc_s.png | Bin 677 -> 0 bytes .../html/class_t_m_c26_x_stepper-members.html | 117 - .../html/class_t_m_c26_x_stepper.html | 1463 - .../documentation/html/classes.html | 78 - .../documentation/html/closed.png | Bin 126 -> 0 bytes .../documentation/html/doxygen.css | 949 - .../documentation/html/doxygen.png | Bin 3942 -> 0 bytes .../documentation/html/files.html | 72 - .../documentation/html/functions.html | 261 - .../documentation/html/functions_func.html | 261 - .../documentation/html/globals.html | 289 - .../documentation/html/globals_defs.html | 289 - .../documentation/html/index.html | 72 - .../documentation/html/jquery.js | 64 - .../documentation/html/mainpage_8dox.html | 68 - .../documentation/html/nav_f.png | Bin 159 -> 0 bytes .../documentation/html/nav_h.png | Bin 97 -> 0 bytes .../TMC26XStepper/documentation/html/open.png | Bin 118 -> 0 bytes .../documentation/html/tab_a.png | Bin 140 -> 0 bytes .../documentation/html/tab_b.png | Bin 178 -> 0 bytes .../documentation/html/tab_h.png | Bin 192 -> 0 bytes .../documentation/html/tab_s.png | Bin 189 -> 0 bytes .../TMC26XStepper/documentation/html/tabs.css | 59 - .../examples/TMC26XExample/TMC26XExample.ino | 82 - .../examples/TMC26XMotorTester/Motor.ino | 176 - .../examples/TMC26XMotorTester/Serial.ino | 369 - .../TMC26XMotorTester/TMC26XMotorTester.ino | 61 - .../processing/TMC26XMotorTest/Arduino.pde | 306 - .../TMC26XMotorTest/ChopperConfiguration.pde | 175 - .../TMC26XMotorTest/DataRendering.pde | 327 - .../processing/TMC26XMotorTest/DataTable.pde | 49 - .../TMC26XMotorTest/RunConfiguration.pde | 335 - .../TMC26XMotorTest/TMC26XMotorTest.pde | 156 - .../TMC26XMotorTest/data/mc_logo.jpg | Bin 8814 -> 0 bytes .../TMC26XMotorTest/data/tmc_logo.jpg | Bin 8079 -> 0 bytes .../processing/TMC26XMotorTest/hysteresis.png | Bin 33102 -> 0 bytes .../TMC26XMotorTest/sketch.properties | 2 - .../libraries/TMC26XStepper/keywords.txt | 75 - .../libraries/TMC26XStepper/mainpage.dox | 30 - .../schematics/tmc-260-shield.brd | 9797 -- .../schematics/tmc-260-shield.sch | 11079 -- Documentation/COPYING.md | 596 - LinuxAddons/bin/build_marlin | 4 - PlatformIOAddons/.gitignore | 2 - PlatformIOAddons/Readme.md | 9 - .../generate_version_header_for_marlin | 57 - PlatformIOAddons/platformio.ini | 47 - buildroot/bin/build_marlin | 3 + .../bin/generate_version_header_for_marlin | 0 {LinuxAddons => buildroot}/bin/opt_disable | 0 {LinuxAddons => buildroot}/bin/opt_enable | 0 {LinuxAddons => buildroot}/bin/opt_enable_adv | 0 {LinuxAddons => buildroot}/bin/opt_set | 0 {LinuxAddons => buildroot}/bin/opt_set_adv | 0 {LinuxAddons => buildroot}/bin/pins_set | 0 .../bin/restore_configs | 0 .../bin/use_example_configs | 0 .astylerc => buildroot/etc/.astylerc | 0 895 files changed, 44 insertions(+), 501260 deletions(-) delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_324P.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_644.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT_644P.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/Makefile delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c.tst delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.elf delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/A2Printer/A2Printer.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Color/Color.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/FPS/FPS.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.ino delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ht1632.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh16.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh24.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_polygon.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BootloaderHID.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/Brainwave-646-LUFA.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BrainwavePro-1286-LUFA.hex delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Client.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Server.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/binary.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/firmwares/Brainwave.inf delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.cpp delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/library.properties delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.c delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.local.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwavepro/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/BootloaderHID.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-1286-LUFA.hex delete mode 100755 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-CDC.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BootloaderHID.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/Brainwave-646-LUFA.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BrainwavePro-1286-LUFA.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/Makefile delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Client.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial0.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial1.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial2.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial3.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial_private.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Server.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/abi.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/binary.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/hooks.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Client.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Server.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/binary.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/firmwares/Brainwave.inf delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/README.adoc delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Blink/Blink.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Cursor/Cursor.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/CustomCharacter/CustomCharacter.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Display/Display.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Scroll/Scroll.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/TextDirection/TextDirection.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/setCursor/setCursor.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/library.properties delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/ChangeLog delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/A2Printer/A2Printer.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Color/Color.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/FPS/FPS.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/license.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ht1632.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh16.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh24.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_polygon.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/library.properties delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.c delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.local.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/at90usb/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/mega/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/rambo/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/standard/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/L6470/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/.gitignore delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/Doxyfile delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/LICENSE delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/README.rst delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.cpp delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.h delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp_source.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h_source.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/annotated.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/bc_s.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper-members.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/classes.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/closed.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.css delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/files.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions_func.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals_defs.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/index.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/jquery.js delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/mainpage_8dox.html delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/nav_f.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/nav_h.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/open.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/tab_a.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/tab_b.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/tab_h.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/tab_s.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/tabs.css delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XExample/TMC26XExample.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/Motor.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/Serial.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/TMC26XMotorTester.ino delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/Arduino.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/ChopperConfiguration.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/DataRendering.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/DataTable.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/RunConfiguration.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/TMC26XMotorTest.pde delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/data/mc_logo.jpg delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/data/tmc_logo.jpg delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/hysteresis.png delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/sketch.properties delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/mainpage.dox delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/schematics/tmc-260-shield.brd delete mode 100644 ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/schematics/tmc-260-shield.sch delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Client.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Print.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Server.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/WString.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/binary.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/new.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/cores/arduino/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Gen7-dist/variants/gen7/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/boards.txt delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/ATmegaBOOT_1284P.hex delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/bootloaders/atmega644p/Makefile delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Arduino.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/CDC.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Client.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HID.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/HardwareSerial.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/IPAddress.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Platform.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Print.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Printable.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Server.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Stream.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Tone.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBAPI.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBCore.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/USBDesc.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/Udp.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WCharacter.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WInterrupts.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WMath.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/WString.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/binary.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/main.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/new.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_analog.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_digital.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_private.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_pulse.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/cores/arduino/wiring_shift.c delete mode 100644 ArduinoAddons/Arduino_1.x.x/hardware/Melzi/variants/standard/pins_arduino.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/L6470/L6470.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/L6470/L6470.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/L6470/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/.gitignore delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/Doxyfile delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/LICENSE delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/README.rst delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/TMC26XStepper.cpp delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/TMC26XStepper.h delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp_source.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h_source.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/annotated.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/bc_s.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper-members.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/classes.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/closed.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/doxygen.css delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/doxygen.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/files.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/functions.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/functions_func.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/globals.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/globals_defs.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/index.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/jquery.js delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/mainpage_8dox.html delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/nav_f.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/nav_h.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/open.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/tab_a.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/tab_b.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/tab_h.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/tab_s.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/documentation/html/tabs.css delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XExample/TMC26XExample.ino delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/Motor.ino delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/Serial.ino delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/TMC26XMotorTester.ino delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/Arduino.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/ChopperConfiguration.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/DataRendering.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/DataTable.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/RunConfiguration.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/TMC26XMotorTest.pde delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/data/mc_logo.jpg delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/data/tmc_logo.jpg delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/hysteresis.png delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/examples/TMC26XMotorTester/processing/TMC26XMotorTest/sketch.properties delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/keywords.txt delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/mainpage.dox delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/schematics/tmc-260-shield.brd delete mode 100644 ArduinoAddons/Arduino_1.x.x/libraries/TMC26XStepper/schematics/tmc-260-shield.sch delete mode 100644 Documentation/COPYING.md delete mode 100755 LinuxAddons/bin/build_marlin delete mode 100644 PlatformIOAddons/.gitignore delete mode 100644 PlatformIOAddons/Readme.md delete mode 100755 PlatformIOAddons/generate_version_header_for_marlin delete mode 100644 PlatformIOAddons/platformio.ini create mode 100644 buildroot/bin/build_marlin rename {LinuxAddons => buildroot}/bin/generate_version_header_for_marlin (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/opt_disable (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/opt_enable (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/opt_enable_adv (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/opt_set (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/opt_set_adv (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/pins_set (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/restore_configs (100%) mode change 100755 => 100644 rename {LinuxAddons => buildroot}/bin/use_example_configs (100%) mode change 100755 => 100644 rename .astylerc => buildroot/etc/.astylerc (100%) diff --git a/.travis.yml b/.travis.yml index 985a186fbb..8a716f67a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,38 +2,53 @@ language: c # before_install: + # # Travis runs a detached head. We need to find the current branch - git checkout `git branch --contains HEAD | grep -v '*'` + # # Also tags for the root(s) of the minor version(s) - git fetch origin --tags - - mkdir ~/bin + # + # Publish the buildroot script folder + - chmod +x ${TRAVIS_BUILD_DIR}/buildroot/bin/* + - ln -s ${TRAVIS_BUILD_DIR}/buildroot/bin/ ~/bin + # + # Start fb X server + - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16" + - sleep 3 + - export DISPLAY=:1.0 # install: - # Install arduino 1.6.4 - - wget http://downloads-02.arduino.cc/arduino-1.6.4-linux64.tar.xz - - tar Jxf arduino-1.6.4-linux64.tar.xz - - sudo mv arduino-1.6.4 /usr/local/share/arduino - - ln -s /usr/local/share/arduino/arduino ~/bin/arduino - # Our custom build commands - - mv LinuxAddons/bin/* ~/bin/ - - ls -la ~/bin - # install our platform - - cp -r ArduinoAddons/Arduino_1.6.x/hardware/* /usr/local/share/arduino/hardware - # copy libraries to arduino dir, as conditional includes do not work in .ino files - - cp -r /usr/local/share/arduino/hardware/marlin/avr/libraries/* /usr/local/share/arduino/libraries/ - - cp -r ArduinoAddons/Arduino_1.6.x/libraries/* /usr/local/share/arduino/libraries/ - # add LiquidCrystal_I2C & LiquidTWI2 libraries + # + # Install arduino 1.6.8 + - wget http://downloads-02.arduino.cc/arduino-1.6.8-linux64.tar.xz + - tar xf arduino-1.6.8-linux64.tar.xz + - sudo mv arduino-1.6.8 /usr/local/share/arduino + - ln -s /usr/local/share/arduino/arduino ${TRAVIS_BUILD_DIR}/buildroot/bin/arduino + # + # Install: LiquidCrystal_I2C library - git clone https://github.com/kiyoshigawa/LiquidCrystal_I2C.git - mv LiquidCrystal_I2C/LiquidCrystal_I2C /usr/local/share/arduino/libraries/LiquidCrystal_I2C + # + # Install: LiquidTWI2 library - git clone https://github.com/lincomatic/LiquidTWI2.git - - mv LiquidTWI2 /usr/local/share/arduino/libraries/LiquidTWI2 + - sudo mv LiquidTWI2 /usr/local/share/arduino/libraries/LiquidTWI2 + # + # Install: Monochrome Graphics Library for LCDs and OLEDs + - arduino --install-library "U8glib" + # + # Install: L6470 Stepper Motor Driver library + - git clone https://github.com/ameyer/Arduino-L6470.git + - sudo mv Arduino-L6470/L6470 /usr/local/share/arduino/libraries/L6470 + # + # Install: TMC26X Stepper Motor Controller library + - git clone https://github.com/trinamic/TMC26XStepper.git + - sudo mv TMC26XStepper /usr/local/share/arduino/libraries/TMC26XStepper # before_script: - # arduino requires an X server even with command line - # https://github.com/arduino/Arduino/issues/1981 - - Xvfb :1 -screen 0 1024x768x16 &> xvfb.log & - # change back to home directory for compiling - - cd $TRAVIS_BUILD_DIR + # + # Change current working directory to the build dir + - cd ${TRAVIS_BUILD_DIR} # script: # @@ -208,6 +223,11 @@ script: # ######## Example Configurations ############## # + # BQ Hephestos 2 + - restore_configs + - use_example_configs Hephestos_2 + - build_marlin + # # Delta Config (generic) - restore_configs - use_example_configs delta/generic diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt deleted file mode 100644 index 363d615529..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/boards.txt +++ /dev/null @@ -1,23 +0,0 @@ -############################################################## - -omc.name=OMC with Atmega644 at 20Mhz - -omc.upload.maximum_size=63488 -omc.upload.maximum_data_size=4096 - -omc.upload.protocol=stk500v2 -omc.upload.speed=115200 -omc.bootloader.path=OMC -omc.bootloader.file=bootloader-644-20MHz.hex - -omc.bootloader.low_fuses=0xE7 -omc.bootloader.high_fuses=0xD4 -omc.bootloader.extended_fuses=0xFC -omc.bootloader.unlock_bits=0x3F -omc.bootloader.lock_bits=0x0F - -omc.build.mcu=atmega644 -omc.build.f_cpu=20000000L -omc.build.board=AVR_OMC -omc.build.core=arduino:arduino -omc.build.variant=sanguino \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex deleted file mode 100644 index d216c65f9b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/OMC/bootloader-644-20MHz.hex +++ /dev/null @@ -1,75 +0,0 @@ -:10F800008FEF90E19EBF8DBF11241FBE5A9A00C09A -:10F81000CDB7DEB7CD51D140DEBFCDBF1092C50010 -:10F820008AE08093C40088E18093C100EE24FF2425 -:10F8300020E0552400E010E039E0432E9BE0292E23 -:10F84000312C2C0E3D1ECFC14150504060407040C5 -:10F8500011F43FE206C08091C00087FFF5CF3091E0 -:10F86000C600933021F1943028F4913099F0923011 -:10F87000C8F407C0953049F1953000F19630D1F5C4 -:10F8800035C03B3119F491E02BE134C03F3291F5A2 -:10F890003983BBC1313011F0351559F52327532E6B -:10F8A00092E028C0B32FA0E0232793E023C0832F4A -:10F8B00090E0A82BB92B232794E01CC03E30C9F45C -:10F8C000232795E0EE24FF2415C0E1E0F0E0EC0FE3 -:10F8D000FD1FEE0DFF1D30830894E11CF11C232752 -:10F8E000EA16FB0639F4D70196E004C0321709F492 -:10F8F0008CC190E041ED5AE363E570E0ACCF90E05D -:10F9000044C08D81803311F090E00AC08F8188233C -:10F9100011F49EE105C0813011F099E001C096E933 -:10F920001A821B828D818C838E818D839E831F82A0 -:10F9300047E050E0F4C01A8288E08B8381E48C8336 -:10F9400086E58D8382E58E8389E48F8383E58887CE -:10F9500080E589878FE58A8782E38B874BE050E0DB -:10F96000DEC08A81813941F0823941F0803911F459 -:10F970008FE005C080E003C082E001C08AE01A8207 -:10F980008B8343E050E0CBC091E01A8242E050E02C -:10F99000C7C08D81882311F48EE124C0813011F01D -:10F9A00089E020C086E91EC01A82E1E0F0E04092C2 -:10F9B0005700849118C08B81803579F48C81883010 -:10F9C00031F4E2E0F0E04092570084910BC0E0E0B7 -:10F9D000F0E040925700849105C0E3E0F0E04092EF -:10F9E000570084911A828B831C8244E050E097C0B8 -:10F9F000BC80AA248D81082F10E00A291B29000F42 -:10FA0000111F1A828AC09A8088248B81682F70E027 -:10FA100068297929933109F033C0F7EF0F3F1F07A9 -:10FA200010F0A8013FC023E0F80120935700E895AB -:10FA300007B600FCFDCFA801D1018C9111962C9145 -:10FA400011971296D22ECC2490E08C299D2921E08A -:10FA5000FA010C0120935700E89511244E5F5F4F87 -:10FA60006250704051F725E0F80120935700E89567 -:10FA700007B600FCFDCF81E180935700E89512C0E6 -:10FA8000A801FB01D10141BD52BD4F5F5F4F8D9178 -:10FA900080BDFA9AF99AF999FECF3197A1F7A8019A -:10FAA000460F571F1A828A0138C07A8066248B81DC -:10FAB000A82FB0E0A629B7291A828981843191F450 -:10FAC000BD019E012D5F3F4FF80185919491F90191 -:10FAD000808391832E5F3F4F0E5F1F4F62507040B7 -:10FAE00099F713C0A801BD019E012D5F3F4F41BD95 -:10FAF00052BD4F5F5F4FF89A80B5F90181939F0126 -:10FB000061507040A1F70A0F1B1FAD014D5F5F4FA1 -:10FB1000F901108204C080EC8A8342E050E090E05A -:10FB2000FBE1F093C6008091C00086FFFCCF80917E -:10FB3000C00080648093C0005092C6008091C000D5 -:10FB400086FFFCCF8091C00080648093C000652F49 -:10FB50005093C6008091C00086FFFCCF8091C0000A -:10FB600080648093C000342F4093C6008091C00011 -:10FB700086FFFCCF8091C00080648093C0008EE03F -:10FB80008093C6008091C00086FFFCCF8091C000AA -:10FB900080648093C00025E1252523272627FE01C8 -:10FBA000319610C030813093C6008091C00086FF2E -:10FBB000FCCF31968091C00080648093C0002327E1 -:10FBC000415050404115510569F72093C60080917E -:10FBD000C00086FFFCCF8091C00080648093C0008D -:10FBE000992349F4539441ED5AE363E570E090E0C2 -:10FBF000A0E0B0E030CE5A9881E180935700E895BC -:10FC000011241F921F920895FFCF9981933109F417 -:10FC1000FACE9431C8F4963009F4EACE973050F415 -:10FC2000923009F46CCE933009F49BCE913009F0F8 -:10FC300072CF81CE913109F4A7CE923108F0E1CE96 -:10FC4000903109F068CF5BCE983109F4B4CE993188 -:10FC500050F4953109F4D7CE953108F426CF96317A -:10FC600009F059CF22CF9B3109F493CE9C3120F477 -:10FC70009A3109F050CF98CE9D3109F442CE9F328F -:06FC800009F049CFB8CFE6 -:040000030000F80001 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c deleted file mode 100644 index 1711014459..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/ATmegaBOOT.c +++ /dev/null @@ -1,713 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega644 and ATmega644P */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* 20090131: Added 324P support from Alex Leone */ -/* Marius Kintel */ -/* 20080915: applied ADABoot mods for Sanguino 644P */ -/* Brian Riley */ -/* 20080711: hacked for Sanguino by Zach Smith */ -/* and Justin Day */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU General */ -/* Public License as published by the Free Software */ -/* Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will */ -/* be useful, but WITHOUT ANY WARRANTY; without even the */ -/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ -/* PARTICULAR PURPOSE. See the GNU General Public */ -/* License for more details. */ -/* */ -/* You should have received a copy of the GNU General */ -/* Public License along with this program; if not, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -#ifdef ADABOOT - #define NUM_LED_FLASHES 3 - #define ADABOOT_VER 1 -#endif - - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20080711: hack by Zach Hoeken */ -#define BAUD_RATE 38400 - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( -#if defined(__AVR_ATmega644P__) -#define SIG2 0x96 -#define SIG3 0x0A -#elif defined(__AVR_ATmega644__) -#define SIG2 0x96 -#define SIG3 0x09 -#elif defined(__AVR_ATmega324P__) -#define SIG2 0x95 -#define SIG3 0x08 -#endif -#define PAGE_SIZE 0x080U //128 words -#define PAGE_SIZE_BYTES 0x100U //256 bytes - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union -{ - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union -{ - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct -{ - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; - -uint8_t error_count = 0; -uint8_t sreg; - -void (*app_start)(void) = 0x0000; - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - uint16_t i; - - asm volatile("nop\n\t"); - -#ifdef ADABOOT // BBR/LF 10/8/2007 & 9/13/2008 - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if its a not an external reset... - app_start(); // skip bootloader -#endif - - - //initialize our serial port. - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0B = (1< 0x85) - getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') - { - ch2 = getch(); - if(ch2 == 0x80) - byte_response(HW_VER); // Hardware version - else if(ch2==0x81) - byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) - byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) - byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else - byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') - { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') - { - getNch(5); - nothing_response(); - } - - - /* Enter programming mode */ - else if(ch=='P') - { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') - { - nothing_response(); -#ifdef ADABOOT - // autoreset via watchdog (sneaky!) BBR/LF 9/13/2008 - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='R') - { - nothing_response(); - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') - { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') - { - getNch(4); - byte_response(0x00); - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') - { - length.byte[1] = getch(); - length.byte[0] = getch(); - - flags.eeprom = 0; - if (getch() == 'E') - flags.eeprom = 1; - - for (i=0; i byte location - address.word = address.word << 1; - - //Even up an odd number of bytes - if ((length.byte[0] & 0x01)) - length.word++; - - // HACKME: EEPE used to be EEWE - //Wait for previous EEPROM writes to complete - //while(bit_is_set(EECR,EEPE)); - while(EECR & (1< byte location - } - - // Command terminator - if (getch() == ' ') - { - putch(0x14); - for (w=0; w= 'a') - ah = ah - 'a' + 0x0a; - else if(ah >= '0') - ah -= '0'; - if(al >= 'a') - al = al - 'a' + 0x0a; - else if(al >= '0') - al -= '0'; - - return (ah << 4) + al; -} - - -void puthex(char ch) -{ - char ah,al; - - ah = (ch & 0xf0) >> 4; - if(ah >= 0x0a) - ah = ah - 0x0a + 'a'; - else - ah += '0'; - - al = (ch & 0x0f); - if(al >= 0x0a) - al = al - 0x0a + 'a'; - else - al += '0'; - - putch(ah); - putch(al); -} - - -void putch(char ch) -{ - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -} - - - - -char getch(void) -{ - uint32_t count = 0; - -#ifdef ADABOOT - LED_PORT &= ~_BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - while(!(UCSR0A & _BV(RXC0))) - { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - -#ifdef ADABOOT - LED_PORT |= _BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - return UDR0; -} - - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;i $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt deleted file mode 100644 index 8286007851..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/bootloaders/atmega644p/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Note: This bootloader support ATmega644, ATmega644P and ATmega324P. -To build, set PROGRAM and MCU_TARGET in the Makefile according to your target device. - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h deleted file mode 100644 index f4298d8682..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/OMC_tkj/variants/sanguino/pins_arduino.h +++ /dev/null @@ -1,269 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ - - Changelog - ----------- - 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P - 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 - - Improvements by Kristian Lauszus, kristianl@tkjelectronics.dk -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -const static uint8_t SS = 4; -const static uint8_t MOSI = 5; -const static uint8_t MISO = 6; -const static uint8_t SCK = 7; - -static const uint8_t SDA = 17; -static const uint8_t SCL = 16; - -#define LED_BUILTIN 0 - -static const uint8_t A0 = 31; -static const uint8_t A1 = 30; -static const uint8_t A2 = 29; -static const uint8_t A3 = 28; -static const uint8_t A4 = 27; -static const uint8_t A5 = 26; -static const uint8_t A6 = 25; -static const uint8_t A7 = 24; - -// ATMEL ATMEGA644/ATMEGA1284 / SANGUINO -// -// +---\/---+ -// (D 0) PB0 1| |40 PA0 (AI 0 / D31) -// (D 1) PB1 2| |39 PA1 (AI 1 / D30) -// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) -// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) -// SS PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) -// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) -// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) -// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) -// RST 9| |32 AREF -// VCC 10| |31 GND -// GND 11| |30 AVCC -// XTAL2 12| |29 PC7 (D 23) -// XTAL1 13| |28 PC6 (D 22) -// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI -// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO -// INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS -// INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK -// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA -// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL -// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM -// +--------+ -// -#define NUM_DIGITAL_PINS 24 -#define NUM_ANALOG_INPUTS 8 - -#define analogInputToDigitalPin(p) ((p < 8) ? 31 - (p): -1) -#define analogPinToChannel(p) ((p < 8) ? (p) : 31 - (p)) - -#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) - -#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ - ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ - ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ - ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ - 0 ) ) ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ - ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ - ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ - ((uint8_t *)0) ) ) ) ) - - -#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ - ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ - ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ - 0 ) ) ) ) - -#define digitalPinToInterrupt(p) ((p) == 10 ? 0 : ((p) == 11 ? 1 : ((p) == 2 ? 2 : NOT_AN_INTERRUPT))) - -#ifdef ARDUINO_MAIN -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, -}; -const uint16_t PROGMEM port_to_input_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, -}; -const uint8_t PROGMEM digital_pin_to_port_PGM[] = -{ - PB, /* 0 */ - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PD, /* 8 */ - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PC, /* 16 */ - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PA, /* 24 */ - PA, - PA, - PA, - PA, - PA, - PA, - PA /* 31 */ -}; -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = -{ - _BV(0), /* 0, port B */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 8, port D */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 16, port C */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(7), /* 24, port A */ - _BV(6), - _BV(5), - _BV(4), - _BV(3), - _BV(2), - _BV(1), - _BV(0) -}; -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = -{ - NOT_ON_TIMER, /* 0 - PB0 */ - NOT_ON_TIMER, /* 1 - PB1 */ - NOT_ON_TIMER, /* 2 - PB2 */ - TIMER0A, /* 3 - PB3 */ - TIMER0B, /* 4 - PB4 */ - NOT_ON_TIMER, /* 5 - PB5 */ - NOT_ON_TIMER, /* 6 - PB6 */ - NOT_ON_TIMER, /* 7 - PB7 */ - NOT_ON_TIMER, /* 8 - PD0 */ - NOT_ON_TIMER, /* 9 - PD1 */ - NOT_ON_TIMER, /* 10 - PD2 */ - NOT_ON_TIMER, /* 11 - PD3 */ - TIMER1B, /* 12 - PD4 */ - TIMER1A, /* 13 - PD5 */ - TIMER2B, /* 14 - PD6 */ - TIMER2A, /* 15 - PD7 */ - NOT_ON_TIMER, /* 16 - PC0 */ - NOT_ON_TIMER, /* 17 - PC1 */ - NOT_ON_TIMER, /* 18 - PC2 */ - NOT_ON_TIMER, /* 19 - PC3 */ - NOT_ON_TIMER, /* 20 - PC4 */ - NOT_ON_TIMER, /* 21 - PC5 */ - NOT_ON_TIMER, /* 22 - PC6 */ - NOT_ON_TIMER, /* 23 - PC7 */ - NOT_ON_TIMER, /* 24 - PA0 */ - NOT_ON_TIMER, /* 25 - PA1 */ - NOT_ON_TIMER, /* 26 - PA2 */ - NOT_ON_TIMER, /* 27 - PA3 */ - NOT_ON_TIMER, /* 28 - PA4 */ - NOT_ON_TIMER, /* 29 - PA5 */ - NOT_ON_TIMER, /* 30 - PA6 */ - NOT_ON_TIMER /* 31 - PA7 */ -}; -#endif - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. - -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_HARDWARE Serial -#define SERIAL_PORT_HARDWARE1 Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt deleted file mode 100644 index 2bec14eab3..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/boards.txt +++ /dev/null @@ -1,83 +0,0 @@ -############################################################ - -atmega644.name=Sanguino W/ ATmega644P - -atmega644.upload.protocol=stk500 -atmega644.upload.maximum_size=63488 -atmega644.upload.speed=57600 - -atmega644.bootloader.low_fuses=0xFF -atmega644.bootloader.high_fuses=0x9A -atmega644.bootloader.extended_fuses=0xFF -atmega644.bootloader.path=atmega -atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex -#atmega644.bootloader.file=ATmegaBOOT_644P.hex -atmega644.bootloader.unlock_bits=0x3F -atmega644.bootloader.lock_bits=0x0F - -atmega644.build.mcu=atmega644p -atmega644.build.f_cpu=16000000L -atmega644.build.core=arduino -atmega644.build.variant=standard -############################################################## - -atmega12848m.name=Sanguino W/ ATmega1284p 8mhz - -atmega12848m.upload.protocol=stk500 -atmega12848m.upload.maximum_size=131072 -atmega12848m.upload.speed=19200 - -atmega1284.bootloader.low_fuses=0xD6 -atmega1284.bootloader.high_fuses=0xDA -atmega1284.bootloader.extended_fuses=0xFD -atmega12848m.bootloader.path=atmega -atmega12848m.bootloader.file=ATmegaBOOT_168_atmega1284p_8m.hex -atmega12848m.bootloader.unlock_bits=0x3F -atmega12848m.bootloader.lock_bits=0x0F - -atmega12848m.build.mcu=atmega1284p -atmega12848m.build.f_cpu=8000000L -atmega12848m.build.core=arduino -atmega12848m.build.variant=standard - -############################################################## - -atmega1284.name=Sanguino W/ ATmega1284p 16mhz - -atmega1284.upload.protocol=stk500 -atmega1284.upload.maximum_size=131072 -atmega1284.upload.speed=57600 - -atmega1284.bootloader.low_fuses=0xD6 -atmega1284.bootloader.high_fuses=0xDA -atmega1284.bootloader.extended_fuses=0xFD -atmega1284.bootloader.path=atmega -atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex -atmega1284.bootloader.unlock_bits=0x3F -atmega1284.bootloader.lock_bits=0x0F - -atmega1284.build.mcu=atmega1284p -atmega1284.build.f_cpu=16000000L -atmega1284.build.core=arduino -atmega1284.build.variant=standard -############################################################## - -atmega1284m.name=Sanguino W/ ATmega1284p 20mhz - -atmega1284m.upload.protocol=stk500 -atmega1284m.upload.maximum_size=131072 -atmega1284m.upload.speed=57600 - -atmega1284m.bootloader.low_fuses=0xD6 -atmega1284m.bootloader.high_fuses=0xDA -atmega1284m.bootloader.extended_fuses=0xFD -atmega1284m.bootloader.path=atmega -atmega1284m.bootloader.file=ATmegaBOOT_168_atmega1284p.hex -atmega1284m.bootloader.unlock_bits=0x3F -atmega1284m.bootloader.lock_bits=0x0F - -atmega1284m.build.mcu=atmega1284p -atmega1284m.build.f_cpu=20000000L -atmega1284m.build.core=arduino -atmega1284m.build.variant=standard -# diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c deleted file mode 100644 index 1df3f03113..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168.c +++ /dev/null @@ -1,1071 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* */ -/* 20090308: integrated Mega changes into main bootloader */ -/* source by D. Mellis */ -/* 20080930: hacked for Arduino Mega (with the 1280 */ -/* processor, backwards compatible) */ -/* by D. Cuartielles */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU General */ -/* Public License as published by the Free Software */ -/* Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will */ -/* be useful, but WITHOUT ANY WARRANTY; without even the */ -/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ -/* PARTICULAR PURPOSE. See the GNU General Public */ -/* License for more details. */ -/* */ -/* You should have received a copy of the GNU General */ -/* Public License along with this program; if not, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) -#include -#endif - -/* Use the F_CPU defined in Makefile */ - -/* 20060803: hacked by DojoCorp */ -/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ -/* set the waiting time for the bootloader */ -/* get this from the Makefile instead */ -/* #define MAX_TIME_COUNT (F_CPU>>4) */ - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -//#define BAUD_RATE 115200 -#ifndef BAUD_RATE -#define BAUD_RATE 19200 -#endif - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#elif defined __AVR_ATmega1280__ -/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ -#elif defined __AVR_ATmega1284P_ || defined __AVR_ATmega644P__ - -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#elif defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 -#else -/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ -/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) -#define MONITOR 1 -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega1280__ -#define SIG2 0x97 -#define SIG3 0x03 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega1284P__ -#define SIG2 0x97 -#define SIG3 0x05 -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega1281__ -#define SIG2 0x97 -#define SIG3 0x04 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega644P__ -#define SIG2 0x96 -#define SIG3 0x0A -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega328P__ -#define SIG2 0x95 -#define SIG3 0x0F -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -uint8_t error_count = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - -#ifdef WATCHDOG_MODS - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if it's a not an external reset... - app_start(); // skip bootloader -#else - asm volatile("nop\n\t"); -#endif - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - /* We run the bootloader regardless of the state of this pin. Thus, don't - put it in a different state than the other pins. --DAM, 070709 - This also applies to Arduino Mega -- DC, 080930 - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); - */ -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - -#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ - /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ - /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ - bootuart = 1; -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - -#ifdef DOUBLE_SPEED - UCSR0A = (1<> 8; -#else - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; -#endif - - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - -#if defined __AVR_ATmega1280__ - /* Enable internal pull-up resistor on pin D0 (RX), in order - to supress line noise that prevents the bootloader from - timing out (DAM: 20070509) */ - /* feature added to the Arduino Mega --DC: 080930 */ - DDRE &= ~_BV(PINE0); - PORTE |= _BV(PINE0); -#endif - - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - /* flash onboard LED to signal entering of bootloader */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - // 4x for UART0, 5x for UART1 - flash_led(NUM_LED_FLASHES + bootuart); -#else - flash_led(NUM_LED_FLASHES); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* P: Enter programming mode */ - /* R: Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='P' || ch=='R') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); -#ifdef WATCHDOG_MODS - // autoreset via watchdog (sneaky!) - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - if (getch() == 0x30) { - getch(); - ch = getch(); - getch(); - if (ch == 0) { - byte_response(SIG1); - } else if (ch == 1) { - byte_response(SIG2); - } else { - byte_response(SIG3); - } - } else { - getNch(3); - byte_response(0x00); - } - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete -#else - while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete -#endif - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ || __AVR_ATmega1284P__ || __AVR_ATmega644P__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - address.word = address.word << 1; // address * 2 -> byte location - if (getch() == 'E') flags.eeprom = 1; - else flags.eeprom = 0; - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while(EECR & (1<= 'a') { - return (a - 'a' + 0x0a); - } else if(a >= '0') { - return(a - '0'); - } - return a; -} - - -char gethex(void) { - return (gethexnib() << 4) + gethexnib(); -} - - -void puthex(char ch) { - char ah; - - ah = ch >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - - ch &= 0x0f; - if(ch >= 0x0a) { - ch = ch - 0x0a + 'a'; - } else { - ch += '0'; - } - - putch(ah); - putch(ch); -} - - -void putch(char ch) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - uint32_t count = 0; - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR1; - } - return 0; -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - while(count--) { -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - UDR1; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - getch(); -#else - /* m8,16,32,169,8515,8535,163 */ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - //while(!(UCSRA & _BV(RXC))); - //UDR; - getch(); // need to handle time out -#endif - } -} - - -void byte_response(uint8_t val) -{ - if (getch() == ' ') { - putch(0x14); - putch(val); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - - -void nothing_response(void) -{ - if (getch() == ' ') { - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - -void flash_led(uint8_t count) -{ - while (count--) { - LED_PORT |= _BV(LED); - _delay_ms(100); - LED_PORT &= ~_BV(LED); - _delay_ms(100); - } -} - - -/* end of file ATmegaBOOT.c */ diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex deleted file mode 100644 index a63dc8dd04..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E4E81682E4E4 -:10F17000F8068FE0080780E0180770F3E0910401BB -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E4E81682E4F8068FE00807BE -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00031EE44E0215030404040E1F700C00000F2 -:10F2E00028982FEF31EE44E0215030404040E1F7C4 -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100080E18093C4001092C5001092C00086E086 -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex deleted file mode 100644 index 7f5f3f3d46..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E2E81681EAE1 -:10F17000F80687E0080780E0180770F3E0910401C3 -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E2E81681EAF80687E00807C3 -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00030E742E0215030404040E1F700C00000FC -:10F2E00028982FEF30E742E0215030404040E1F7CE -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100089E18093C4001092C5001092C00086E07D -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex deleted file mode 100644 index 2edf9c6773..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex +++ /dev/null @@ -1,126 +0,0 @@ -:10F800000C943E7C0C945B7C0C945B7C0C945B7C39 -:10F810000C945B7C0C945B7C0C945B7C0C945B7C0C -:10F820000C945B7C0C945B7C0C945B7C0C945B7CFC -:10F830000C945B7C0C945B7C0C945B7C0C945B7CEC -:10F840000C945B7C0C945B7C0C945B7C0C945B7CDC -:10F850000C945B7C0C945B7C0C945B7C0C945B7CCC -:10F860000C945B7C0C945B7C0C945B7C0C945B7CBC -:10F870000C945B7C0C945B7C0C945B7C11241FBE11 -:10F88000CFEFD0E1DEBFCDBF11E0A0E0B1E0EAEA0A -:10F89000FFEF02C005900D92A230B107D9F712E038 -:10F8A000A2E0B1E001C01D92AD30B107E1F70E94C6 -:10F8B000747D0C94D37F0C94007C90910201913064 -:10F8C00019F0923041F008959091C00095FFFCCF5F -:10F8D0008093C60008959091C80095FFFCCF809357 -:10F8E000CE0008951F93982F95959595959595958C -:10F8F000905D182F1F701A304CF4105D892F0E94F4 -:10F900005D7C812F0E945D7C1F910895195A892F7B -:10F910000E945D7C812F0E945D7C1F910895EF9273 -:10F92000FF920F931F9380910201813069F1823021 -:10F9300031F080E01F910F91FF90EF900895EE2439 -:10F94000FF2487018091C80087FD17C00894E11C3F -:10F95000F11C011D111D81E4E81682E4F8068FE018 -:10F96000080780E0180770F3E0910401F0910501A9 -:10F9700009958091C80087FFE9CF8091CE001F9143 -:10F980000F91FF90EF900895EE24FF24870180915E -:10F99000C00087FD17C00894E11CF11C011D111D5A -:10F9A00081E4E81682E4F8068FE0080780E0180793 -:10F9B00070F3E0910401F091050109958091C00078 -:10F9C00087FFE9CF8091C6001F910F91FF90EF90C4 -:10F9D00008951F930E948F7C182F0E945D7C113622 -:10F9E00034F410330CF01053812F1F9108951755E4 -:10F9F000812F1F9108951F930E94E97C182F0E9468 -:10FA0000E97C1295107F810F1F91089520910201CA -:10FA1000882339F0213031F0223061F08150882381 -:10FA2000C9F708959091C00097FFFCCF9091C60050 -:10FA30008150F5CF9091C80097FFFCCF9091CE00F8 -:10FA40008150EDCF1F93182F0E948F7C803281F060 -:10FA5000809103018F5F80930301853011F01F9126 -:10FA60000895E0910401F091050109951F91089511 -:10FA700084E10E945D7C812F0E945D7C80E10E9478 -:10FA80005D7CEDCF0E948F7C803271F0809103010C -:10FA90008F5F80930301853009F00895E0910401A0 -:10FAA000F09105010995089584E10E945D7C80E153 -:10FAB0000E945D7C089515C0289A2FEF31EE44E036 -:10FAC000215030404040E1F700C0000028982FEF5F -:10FAD00031EE44E0215030404040E1F700C00000EA -:10FAE0008150882349F70895EF92FF920F931F9357 -:10FAF000CF93DF93000081E08093020180E1809347 -:10FB0000C4001092C5001092C00086E08093C2002D -:10FB100088E18093C100209A81E00E945B7D0E9471 -:10FB20008F7C8033B1F18133B9F1803409F454C052 -:10FB3000813409F45AC0823409F469C0853409F467 -:10FB40006CC0803531F1823521F1813511F1853577 -:10FB500009F469C0863509F471C0843609F47AC0A5 -:10FB6000843709F4E1C0853709F439C1863709F4CF -:10FB70004AC0809103018F5F80930301853079F63D -:10FB8000E0910401F091050109950E948F7C80337A -:10FB900051F60E94427DC3CF0E948F7C803249F78C -:10FBA00084E10E945D7C81E40E945D7C86E50E9488 -:10FBB0005D7C82E50E945D7C80E20E945D7C89E440 -:10FBC0000E945D7C83E50E945D7C80E50E945D7CF7 -:10FBD00080E10E945D7CA3CF0E948F7C8638C8F2B2 -:10FBE0000E948F7C0E94427D9ACF0E948F7C803839 -:10FBF00009F40EC1813809F40FC1823809F410C12B -:10FC0000883909F401C180E00E94227D88CF84E117 -:10FC10000E94067D0E94427D82CF85E00E94067D83 -:10FC20000E94427D7CCF0E948F7C809306010E94BF -:10FC30008F7C809307010E94427D71CF0E948F7C50 -:10FC4000803309F4F1C083E00E94067D80E00E94C9 -:10FC5000227D65CF0E948F7C809309020E948F7C59 -:10FC60008093080280910C028E7F80930C020E9488 -:10FC70008F7C853409F4E9C08091080290910902D3 -:10FC80000097A1F068E0E62E61E0F62E00E010E0BB -:10FC90000E948F7CF70181937F010F5F1F4F80913E -:10FCA0000802909109020817190790F30E948F7CAF -:10FCB000803209F05ECF80910C0280FFE5C0809118 -:10FCC000060190910701880F991F90930701809377 -:10FCD0000601209108023091090221153105E9F051 -:10FCE00048E0E42E41E0F42E00E010E0F7016191DD -:10FCF0007F010E94C57F80910601909107010196C6 -:10FD000090930701809306010F5F1F4F2091080217 -:10FD1000309109020217130748F384E10E945D7CC9 -:10FD200080E10E945D7CFBCE0E948F7C8093090263 -:10FD30000E948F7C809308028091060190910701B8 -:10FD400097FD9CC020910C022D7F20930C02880F00 -:10FD5000991F90930701809306010E948F7C853440 -:10FD600009F486C080910C028E7F80930C020E9461 -:10FD70008F7C803209F0D3CE84E10E945D7C20919B -:10FD800008023091090221153105D1F100E010E09F -:10FD900080910601909107010CC041FF5CC0019663 -:10FDA00090930701809306010F5F1F4F02171307FF -:10FDB00038F540910C0240FFF0CF0E94BD7F0E94B9 -:10FDC0005D7C809106019091070101969093070157 -:10FDD000809306012091080230910902E5CF0E942C -:10FDE0008F7C803209F0C5CE84E10E945D7C8EE17B -:10FDF0000E945D7C86E90E945D7C8AE00E945D7CB9 -:10FE000080E10E945D7C8BCE83E00E94227D87CEC4 -:10FE100082E00E94227D83CE81E00E94227D7FCEFF -:10FE200080E10E94227D7BCE0E948F7C0E948F7C8D -:10FE3000082F0E948F7C002309F497C0013009F439 -:10FE400098C08AE00E94227D6ACE80910C02816077 -:10FE500080930C0211CFFC0184910E945D7C209163 -:10FE6000080230910902809106019091070197CF15 -:10FE700080910C02816080930C0279CF20910C025A -:10FE8000226020930C0263CF80910701880F880BBA -:10FE9000817080930B028091060190910701880F79 -:10FEA000991F90930701809306018091080280FFBB -:10FEB00009C080910802909109020196909309026D -:10FEC00080930802F894F999FECF1127E09106017A -:10FED000F0910701C8E0D1E08091080290910902F9 -:10FEE000103091F40091570001700130D9F303E014 -:10FEF00000935700E8950091570001700130D9F345 -:10FF000001E100935700E89509901990009157007E -:10FF100001700130D9F301E000935700E895139583 -:10FF2000103898F011270091570001700130D9F373 -:10FF300005E000935700E8950091570001700130EB -:10FF4000D9F301E100935700E8953296029709F042 -:10FF5000C7CF103011F00296E5CF112484E10E9442 -:10FF60005D7C80E10E945D7CDACD8EE10E94227D85 -:10FF7000D6CD86E90E94227DD2CDF999FECF92BDE1 -:10FF800081BDF89A992780B50895262FF999FECF5B -:10FF90001FBA92BD81BD20BD0FB6F894FA9AF99AA6 -:0AFFA0000FBE01960895F894FFCFFC -:02FFAA008000D5 -:040000030000F80001 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile deleted file mode 100644 index 3f2bb61567..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega/Makefile +++ /dev/null @@ -1,254 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = ATmegaBOOT_168 - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTION = --section-start=.text=0x3800 - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x0f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - - -OBJ = $(PROGRAM).o -OPTIMIZE = -O2 - -DEFS = -LIBS = - -CC = avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = -Wl,$(LDSECTION) -#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: - -lilypad: TARGET = lilypad -lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -lilypad_isp: HFUSE = DD -lilypad_isp: LFUSE = E2 -lilypad_isp: EFUSE = 00 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -lilypad_resonator_isp: HFUSE = DD -lilypad_resonator_isp: LFUSE = C6 -lilypad_resonator_isp: EFUSE = 00 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -pro8_isp: HFUSE = DD -pro8_isp: LFUSE = C6 -pro8_isp: EFUSE = 00 -pro8_isp: isp - -pro16: TARGET = pro_16MHz -pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -pro16_isp: HFUSE = DD -pro16_isp: LFUSE = C6 -pro16_isp: EFUSE = 00 -pro16_isp: isp - -pro20: TARGET = pro_20mhz -pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -pro20_isp: HFUSE = DD -pro20_isp: LFUSE = C6 -pro20_isp: EFUSE = 00 -pro20_isp: isp - -diecimila: TARGET = diecimila -diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -diecimila_isp: HFUSE = DD -diecimila_isp: LFUSE = FF -diecimila_isp: EFUSE = 00 -diecimila_isp: isp - -ng: TARGET = ng -ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -ng: AVR_FREQ = 16000000L -ng: $(PROGRAM)_ng.hex - -ng_isp: ng -ng_isp: TARGET = ng -ng_isp: HFUSE = DD -ng_isp: LFUSE = FF -ng_isp: EFUSE = 00 -ng_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTION = --section-start=.text=0x7800 -atmega328: $(PROGRAM)_atmega328.hex - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -atmega328_isp: HFUSE = DA -atmega328_isp: LFUSE = FF -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTION = --section-start=.text=0x7800 -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -atmega328_pro8_isp: HFUSE = DA -atmega328_pro8_isp: LFUSE = FF -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' -DBAUD_RATE=57600 -mega: AVR_FREQ = 16000000L -mega: LDSECTION = --section-start=.text=0x1F000 -mega: $(PROGRAM)_atmega1280.hex - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -mega_isp: HFUSE = DA -mega_isp: LFUSE = FF -mega_isp: EFUSE = F5 -mega_isp: isp - -atmega1284p: TARGET = atmega1284p -atmega1284p: MCU_TARGET = atmega1284p -atmega1284p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega1284p: AVR_FREQ = 16000000L -atmega1284p: LDSECTION = --section-start=.text=0x1F000 -atmega1284p: $(PROGRAM)_atmega1284p.hex - -atmega1284p_8m: TARGET = atmega1284p -atmega1284p_8m: MCU_TARGET = atmega1284p -atmega1284p_8m: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=19200' -atmega1284p_8m: AVR_FREQ = 8000000L -atmega1284p_8m: LDSECTION = --section-start=.text=0x1F000 -atmega1284p_8m: $(PROGRAM)_atmega1284p_8m.hex - -atmega644p: TARGET = atmega644p -atmega644p: MCU_TARGET = atmega644p -atmega644p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega644p: AVR_FREQ = 16000000L -atmega644p: LDSECTION = --section-start=.text=0xF800 -atmega644p: $(PROGRAM)_atmega644p.hex - - -atmega1284p_isp: atmega1284p -atmega1284p_isp: TARGET = atmega1284p -atmega1284p_isp: MCU_TARGET = atmega1284p -atmega1284p_isp: HFUSE = DC -atmega1284p_isp: LFUSE = FF -atmega1284p_isp: EFUSE = FD -atmega1284p_isp: isp - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c deleted file mode 100644 index 51bd8d5f84..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT.c +++ /dev/null @@ -1,717 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega644 and ATmega644P */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* 20090131: Added 324P support from Alex Leone */ -/* Marius Kintel */ -/* 20080915: applied ADABoot mods for Sanguino 644P */ -/* Brian Riley */ -/* 20080711: hacked for Sanguino by Zach Smith */ -/* and Justin Day */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU General */ -/* Public License as published by the Free Software */ -/* Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will */ -/* be useful, but WITHOUT ANY WARRANTY; without even the */ -/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ -/* PARTICULAR PURPOSE. See the GNU General Public */ -/* License for more details. */ -/* */ -/* You should have received a copy of the GNU General */ -/* Public License along with this program; if not, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -#ifdef ADABOOT - #define NUM_LED_FLASHES 3 - #define ADABOOT_VER 1 -#endif - - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20080711: hack by Zach Hoeken */ -#define BAUD_RATE 38400 - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( -#if defined(__AVR_ATmega1284P__) -#define SIG2 0x97 -#define SIG3 0x05 -#elif defined(__AVR_ATmega644P__) -#define SIG2 0x96 -#define SIG3 0x0A -#elif defined(__AVR_ATmega644__) -#define SIG2 0x96 -#define SIG3 0x09 -#elif defined(__AVR_ATmega324P__) -#define SIG2 0x95 -#define SIG3 0x08 -#endif - -#define PAGE_SIZE 0x080U //128 words -#define PAGE_SIZE_BYTES 0x100U //256 bytes - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union -{ - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union -{ - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct -{ - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; - -uint8_t error_count = 0; -uint8_t sreg; - -void (*app_start)(void) = 0x0000; - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - uint16_t i; - - asm volatile("nop\n\t"); - -#ifdef ADABOOT // BBR/LF 10/8/2007 & 9/13/2008 - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if it's a not an external reset... - app_start(); // skip bootloader -#endif - - - //initialize our serial port. - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0B = (1< 0x85) - getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') - { - ch2 = getch(); - if(ch2 == 0x80) - byte_response(HW_VER); // Hardware version - else if(ch2==0x81) - byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) - byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) - byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else - byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') - { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') - { - getNch(5); - nothing_response(); - } - - - /* Enter programming mode */ - else if(ch=='P') - { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') - { - nothing_response(); -#ifdef ADABOOT - // autoreset via watchdog (sneaky!) BBR/LF 9/13/2008 - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='R') - { - nothing_response(); - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') - { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') - { - getNch(4); - byte_response(0x00); - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') - { - length.byte[1] = getch(); - length.byte[0] = getch(); - - flags.eeprom = 0; - if (getch() == 'E') - flags.eeprom = 1; - - for (i=0; i byte location - address.word = address.word << 1; - - //Even up an odd number of bytes - if ((length.byte[0] & 0x01)) - length.word++; - - // HACKME: EEPE used to be EEWE - //Wait for previous EEPROM writes to complete - //while(bit_is_set(EECR,EEPE)); - while(EECR & (1< byte location - } - - // Command terminator - if (getch() == ' ') - { - putch(0x14); - for (w=0; w= 'a') - ah = ah - 'a' + 0x0a; - else if(ah >= '0') - ah -= '0'; - if(al >= 'a') - al = al - 'a' + 0x0a; - else if(al >= '0') - al -= '0'; - - return (ah << 4) + al; -} - - -void puthex(char ch) -{ - char ah,al; - - ah = (ch & 0xf0) >> 4; - if(ah >= 0x0a) - ah = ah - 0x0a + 'a'; - else - ah += '0'; - - al = (ch & 0x0f); - if(al >= 0x0a) - al = al - 0x0a + 'a'; - else - al += '0'; - - putch(ah); - putch(al); -} - - -void putch(char ch) -{ - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -} - - - - -char getch(void) -{ - uint32_t count = 0; - -#ifdef ADABOOT - LED_PORT &= ~_BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - while(!(UCSR0A & _BV(RXC0))) - { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - -#ifdef ADABOOT - LED_PORT |= _BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - return UDR0; -} - - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;i -#include -#include -#include -#include -#include -#include - -#ifdef ADABOOT - #define NUM_LED_FLASHES 3 - #define ADABOOT_VER 1 -#endif - - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20080711: hack by Zach Hoeken */ -#define BAUD_RATE 38400 - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( -#if defined(__AVR_ATmega1284P__) -#define SIG2 0x97 -#define SIG3 0x05 -#elif defined(__AVR_ATmega644P__) -#define SIG2 0x96 -#define SIG3 0x0A -#elif defined(__AVR_ATmega644__) -#define SIG2 0x96 -#define SIG3 0x09 -#elif defined(__AVR_ATmega324P__) -#define SIG2 0x95 -#define SIG3 0x08 -#endif -#define PAGE_SIZE 0x080U //128 words -#define PAGE_SIZE_BYTES 0x100U //256 bytes - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union -{ - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union -{ - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct -{ - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; - -uint8_t error_count = 0; -uint8_t sreg; - -void (*app_start)(void) = 0x0000; - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - uint16_t i; - - asm volatile("nop\n\t"); - -#ifdef ADABOOT // BBR/LF 10/8/2007 & 9/13/2008 - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if it's a not an external reset... - app_start(); // skip bootloader -#endif - - - //initialize our serial port. - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0B = (1<= 'a') - ah = ah - 'a' + 0x0a; - else if(ah >= '0') - ah -= '0'; - if(al >= 'a') - al = al - 'a' + 0x0a; - else if(al >= '0') - al -= '0'; - - return (ah << 4) + al; -} - - -void puthex(char ch) -{ - char ah,al; - - ah = (ch & 0xf0) >> 4; - if(ah >= 0x0a) - ah = ah - 0x0a + 'a'; - else - ah += '0'; - - al = (ch & 0x0f); - if(al >= 0x0a) - al = al - 0x0a + 'a'; - else - al += '0'; - - putch(ah); - putch(al); -} - - -void putch(char ch) -{ - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -} - - - - -char getch(void) -{ - uint32_t count = 0; - -#ifdef ADABOOT - LED_PORT &= ~_BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - while(!(UCSR0A & _BV(RXC0))) - { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - -#ifdef ADABOOT - LED_PORT |= _BV(LED); // toggle LED to show activity - BBR/LF 10/3/2007 & 9/13/2008 -#endif - - return UDR0; -} - - -void getNch(uint8_t count) -{ - uint8_t i; - for(i=0;iLGfm1A41uP9J@S^hlIRIPm?1e(GU^e8!7+sIL zub)tSOw0kGV+`u3Egd9-O6mhK50zs{g~zy_%ZJDHto(mD3T8}uVc^88N8bMFuYY=8 zYG3NfliquPo+DFFPE{8dT-=&EK5=_$cdIsJv`eHMt#dk=RHbi=Fg>aU-9`$>fPY)cu)`^ag3ZvXbyzSaY+&$X&u4`2M`#oOEa+7Glp*Y0SO zuIYc-nR7|%k(|QRQ#n_in$W5L4RjsGObqNiywjQUf$qcI06ouK@Ita{9c&9EyVpVf z&UMiB>6rd>{2VrX}+5IA{+*g7Lad>>s`@_!+Z1ENhZAqOTNS6KE zsn#+#dU=0%8%DnlMh4o-8c%I0yIOnh&Qct2ceXk@u(fRZPzR3a#o@Ap9p!n0zwFm_ zV=a9iV5?P3t<+j7b%whE>7N*3_}e;hfh`FG>Bpcv0$i#dLM$ zvZs$!Yj;HHt1Q_y#_H@EYaO5X@z`yr*uN)l@KapNxmNPiN&SWWAMg1eyb7|Et1DZ1 zo}d2wuv*l0zgqbGCw(9H(b{ui%!L@g+GX`8ag`RLM;Cf*o7A0?d#VOKWvNbVyKTar zX`N`BL|f`LIg*EUx_7m!vwN(S>>guLZw0eb*k%yh{37+6lw*_c>KcNs8$m^t>-AGv zDd@ftj`yZD>WJ3lbzayhw6@*(z4?{92McDUYsQ?_gJ+lZ0A_t4-&HVZ?K(D4Fhj2( zebv5lsG}lp@P;$ygmTx3S=-{BKGe0Y6KCRc{SR%X^WV#Wlj(0A(!L>;pSo0MedJuu zxzlRr^R3Sh_a%Rv)8G1O4qg>HGaX&Db{!kapU&(A|FjiO#&RcJnDfMkj}C09*r->T zXS;p>*}-?Lt?!bLdsAHlTPvmyC2_?a8eV%y-ji^ghtk*KibKOaBLn(-3g82E`#8-( z{NCD!--!iyPU1o3B0Oe5DFEtcBX^JznTn6UJsFY9AX_7HIev#a`U*hzTzpUo`G)7g z1%|6&vf*l&YIr^r8eV{L=;DLRITn(9a0SdY`i0;!yvRi7gT>ghEeY zmo7e73Rf9k2Fnd!1uG3-4XX`*32rj{Ww^!ga#&~h8VDM`78(q%fF{E$A!_(KNEp5z z?lim#?l!zy@C}032)ef`Yof_e~{?!`fTdV3UkpWyEyJNNtNkdt^&c@vK$0hW*O zND^SV48PivOaQ9{Zxj5w;LlrWd!OK_;6A}W6a1FoVZoEL(mv-Rw_!YAm;g{~Glh4b z&85!*^t1g&j{5h^cQL=m{8eViCZ9B0_}t2T5Azq9H!&|_PBO1yZe?y_-of0)jGKKd zeaw5Af6V+S^KY2!Q|2|y1vr}k&CC;-Nq&Sr?Behiwz-D2dzr6u zOpN_cP*3wk<%G=*=L5{dcLhlp(iQmW_#}nH3ACZMU-Sd~z~k|AS1qIQH+c z{&m*n;)W{;IzL|KKeGN-=C_zPF~7~ck6GvNMdlRik1-!%&dDR6N15j^zr(zo`4}^O zIPpYKPw`WEOt3SSdFKKg=C-|TbDH_ef0%PJbo_tr9EwMmu;9l9A4Q%4%PqPO3?eT? zo@}=%#xv=u_~06gf%#g&D=bU_7ay#&oW1J|)Qq?F*W&pp^z#Y#Rbdh9zA8rbMS3c@ z?-l;5El2Rdd}Hr}1=duy<~^-dXn2uziQ&c8Ov6`Na||!BXlzt`u*^#Dfv>X4wHozT zTk~zEu`INi#_}P?nTK;T18%U0sgOU1eXzy}8U5TW@^hnwDd6IRwN}32fOVeX8ZoX~ z5$9T~(%95n3k~09EjE0+wG??G#x0?W1;%EMn7c2EG0qipcbP>oQSm{sn7a}&cP^0= zx8>31XkTi14STIBWH;yGQqFU=&Gf8BrJq0bM+#3)4yk{KDJLD6hb5eoutmI@{e;a} zC_kj9;)96D&mDr}RytP+bB*}m4zULA5Nlw)H4*&s5=AH;ZW z6Od5$k!} zW5z-;ke-SUXa}N;4;~hIctp(Cw?$4K7cuNNK7FuX+>7?}nk272_>OhG@qfUgy%-fA z9I$TH$h_Y0x2+w5I}Lx|>Jj{q;2#-&!g>YyX&ieJ_F6Q;mv}uqcGh*JzZL2J2KF~3 z0Ojx~=4XI&xR)7KJa?q0;)8vB*8DB;?&5Js-{1C&_ZSC&*15L-E);4+KR@8Uwf+h5 z?&8OgzTTe}?>anoZ-t=zTqp> zWW!6;C5D%&nTD@X#fDcXui=$yzTxYY&+saBt>M*bjo@{L_d?L{jjGP@8r2{;YWNnl z$?#VcJwH+L!B^A{!+!Ok;edL~aGiR>aD)1h;YQVO_%`*j;oH@(3^%J+3qWAhVNGNoTua8q?}!Y4_;9}GWuVupBVmwdeQLf>Se=k zs8<-Ny4>(5YPsR#>Q=!uhO?}g;W5^F!#UO_!?{+6;XLbJ!{=C?h9_D*h9_CO z4PR*OGd#t5!e+XkKW8)D&ma0o!5{H{UI^PcPwz3`&-@9qe(uN}M>Y?zeh%{<<^{}s z%vUozcPo0gp#4KhqB&YpTN`zkF7n+}9EbIh#$Z*#y}%8A|N2mEA`**NEpglt16`QhHz6P5R8`uV!@WiaO5(V z%Trp?fYOFQEL5^85UwY6Nlhe@Aj41$O%u(b`arqY8!drFtBDt{Sh2de7V2wjJ^tEA zbF{H36f6epv??*%HP>CVAjYTa%St^J<(1X+Sy2tO*bN(aw1KCn+EwlLU`Dy6f{k}+Od}$+orbjGfc}wFJ)|BYCJm; zjS8!r8kBoEta5DNHc?5acBQ=tvZG*!XM|EAJXeU&MSI3-h&M!H2{YPCJ=)5mj67?r zGrF0l&F6_8(4$VEnHsl?f~n+DB3EDL_EhRQGXB!GIMK$|O>RA9Wz|rJ>&9LP_C#Zy z7i%FHX{l)n={170Y%db7;>^f;dn%o#`ZAzZg%hVwP|^~Ql{7Wh;M%V(39OHmc#F%5 zOVif{sT#wzO)bF?o)d|U(NMg&;cU$u%XlJ)#%H%Pmz{KP8e!8)KaIYWE&~eGRRnlN z87-!SwC*ChT-@chEoOtX+SF(<2dMS3X{pCH)#ESKrbdga6HUw5wA^c(;=)2@xi&Rg zTsEk!VAE(KX4~TGz?f~fX*I0})aw}hO`$;Cj0DF(Rd&!Bbu`SE(YdFo4Pkd#o}FkML*D5b%gIx}K7C8CsuoNkz|qmY(`m7@NmV9(kIsrSxY2bwDfZZ?%0%y><&YlQ=sKMeJ+kJ& zo%T$7MrA|jGZGPVR)L$Bays#K0a2w#grR+wtC26A$Y;F9s8L-@JcP~segYm(83$K} zOKm~Cv?;Qo3fDHS%(FZciXc;cL!cX#_9P7G3c%QCwd6H4 z3^ygAaDAdd`o|ppL;t!%`jQXS$Nlj{tfe-=kx|;?Zaq+nMaNbh3p7XXvSqxF;MEpw zNz^t}Ev3QWEF!K%q!r(iXb9bDD(XXy8P?TCT5xX}!`SgggEfvJRs|YR&kh1j4xz=h zvJY;(l1C1W>;@ZB()^g-Xe1mDnQqsk7uzx%Ni;Nu>(8{ovBw+m>nCVhHPHxZaV^#% z>Q3;BqdCwR)>as)p3SOdG;|z?PQDiB73qw!gsFs@mbyAE;A(K@)V_@MKyZH_iQ(>> zGP6vp;;~S@!+~fNrza4jN{kIJ!8vrsYp{;`$J9e{d}DJWP=n`0OrIMZO5m*$ifiI= zs?;Wd8m#1Jm;cKL{ap_|0*@tQd;m`1=@Ax40boCN!gOT%J%k^#RFePZmHy7vDGts= zg~L=g8GoDdPD=mwn~gerq~gETu^-vU43>W$fd2l-DUJ_%w=3_*2s;e^Wj9cfX8JfbGO3L{e@aDPDRH_7ujy(2nPRl*iC| z!ZXFwL$Z~Q@0%#g_`Zj-jOW=5`R6F7<3Bm_pBe3sqMV2RspMmS?`O0hMwxyi9gp>t zum8!YKL;;1`dyIL9o6TfEaRDqvJ)?j_tK2|k_@>zLtd64Uym|ielQHq&#fqL!~Uso zzNsEs=>z2~{p*jY@5u1iN%nR<#rH7E^gGELsHX88$gqDJW%@10W!L`_WhK_nZ&0S+ z6Bpa{^iIziKgIWFlqr5Hly7>UN53!7dn@YiG|Do67V7D@todlq`4zX6LcE?YLRs3+ z%#hs~@`4Qc>J0e?lyh)BIQhL9Wf^}%hMYiogl?!jPD6?Yf{gAS11;-1$#@!PQwv@ zG*BP%hhl+v2sQ*76aIL#*=@*Us1)LX<`7%MhFBx+jHsch_8KaKy2fyz$82jyv|HX%k%nHx+MUqE zj&APKyIkR=jE0M&HA8XJ3*E+WV?wAzx9$p|pO@we5c@t<%hiRV-hYpZCZ2BW5l->B zG|i--FNP-< zOZtts-(8mW=$Qw!&qalv17}8bJbE5bS9?47Lo{!Al1o7>K~Fh^?!*b;XBjjjPS1~A OYA&HK7c8B*;C}&0n-4Ys diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex deleted file mode 100644 index 849c78f0f9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/ATmegaBOOT_644P.hex +++ /dev/null @@ -1,110 +0,0 @@ -:020000021000EC -:10F000000C943EF80C9450F80C9450F80C9450F872 -:10F010000C9450F80C9450F80C9450F80C9450F850 -:10F020000C9450F80C9450F80C9450F80C9450F840 -:10F030000C9450F80C9450F80C9450F80C9450F830 -:10F040000C9450F80C9450F80C9450F80C9450F820 -:10F050000C9450F80C9450F80C9450F80C9450F810 -:10F060000C9450F80C9450F80C9450F80C9450F800 -:10F070000C9450F80C9450F80C9450F811241FBEC6 -:10F08000CFEFD0E1DEBFCDBF12E0A0E0B1E001C024 -:10F090001D92A930B107E1F70E9471F90C944FFB62 -:10F0A0000C9400F89091C00095FFFCCF8093C600AF -:10F0B00008951F93282F332727FD3095207F307028 -:10F0C00094E0359527959A95E1F72A3014F0295A5E -:10F0D00001C0205D182F1F701A3014F0195A01C09A -:10F0E000105D822F0E9452F8812F0E9452F81F91CA -:10F0F0000895EF92FF920F931F932898EE24FF2418 -:10F10000870113C00894E11CF11C011D111D81E051 -:10F11000E81689E0F8068DE3080780E0180728F074 -:10F12000E0910101F091020109958091C00087FFF3 -:10F13000E9CF289A8091C6001F910F91FF90EF9020 -:10F1400008950F931F930E9479F8082F0E9452F898 -:10F150000E9479F8182F0E9452F8013614F00755D2 -:10F1600003C000330CF00053113614F0175503C0E0 -:10F1700010330CF01053802F8295807F810F1F91E8 -:10F180000F91089590E007C02091C00027FFFCCFA9 -:10F190002091C6009F5F9817B8F308951F93182F0A -:10F1A0000E9479F8803251F484E10E9452F8812F54 -:10F1B0000E9452F880E10E9452F80CC08091000138 -:10F1C0008F5F80930001853029F4E0910101F09177 -:10F1D000020109951F9108950E9479F8803239F44F -:10F1E00084E10E9452F880E10E9452F808958091D3 -:10F1F00000018F5F80930001853029F4E0910101C7 -:10F20000F091020109950895DF93CF9300D000D0CB -:10F21000CDB7DEB7882309F481E090E03DC0289A9D -:10F2200019821A821B821C820CC029813A814B816F -:10F230005C812F5F3F4F4F4F5F4F29833A834B8352 -:10F240005C8329813A814B815C8120386EE33607EB -:10F2500060E0460760E0560740F3289819821A825A -:10F260001B821C820CC029813A814B815C812F5FFB -:10F270003F4F4F4F5F4F29833A834B835C832981F4 -:10F280003A814B815C8120306AEF360760E04607A7 -:10F2900060E0560740F39F5F981709F619821A82BB -:10F2A0001B821C820BC089819A81AB81BC81019633 -:10F2B000A11DB11D89839A83AB83BC8389819A8107 -:10F2C000AB81BC81803021E7920722E0A20720E0D9 -:10F2D000B20748F30F900F900F900F90CF91DF91EE -:10F2E0000895CF92DF92EF92FF920F931F93CF93E7 -:10F2F000DF93000094B714BE809160008861809312 -:10F3000060001092600091FD05C0E0910101F09154 -:10F310000201099589E18093C4001092C50088E13B -:10F320008093C10086E08093C2005098589A209A3A -:10F3300083E00E9404F981E00E9404F90E9479F8B8 -:10F34000803309F441C08133E1F40E9479F88032BE -:10F3500009F097C184E10E9452F881E40E9452F8BA -:10F3600086E50E9452F882E50E9452F880E20E94EF -:10F3700052F889E40E9452F883E50E9452F880E531 -:10F380000BC1803439F40E9479F88638E8F00E9485 -:10F3900079F81AC0813499F40E9479F8803811F410 -:10F3A00082E06CC1813811F481E068C1823811F4C7 -:10F3B00080E164C1883909F060C183E05FC18234B3 -:10F3C00031F484E10E94C2F80E94ECF8B7CF853492 -:10F3D00011F485E0F7CF8035B9F3813531F40E941F -:10F3E000ECF888E080936000FFCF823569F38535C3 -:10F3F00049F40E9479F8809303010E9479F8809380 -:10F400000401E2CF863521F484E00E94C2F835C1C0 -:10F41000843609F0C7C00E9479F8809306020E94E2 -:10F4200079F880930502809108028E7F809308020C -:10F430000E9479F8853429F48091080281608093D4 -:10F44000080205E011E0F801119281E0E538F807C3 -:10F45000D9F745E0C42E41E0D42EEE24FF2408C0A5 -:10F460000E9479F8F60181936F010894E11CF11C68 -:10F470008091050290910602E816F90688F30E9431 -:10F4800079F8803209F0FDC08091080280FD17C034 -:10F4900020C0F999FECF209103013091040132BDC3 -:10F4A00021BDF80141918F0140BDFA9AF99A2F5F71 -:10F4B0003F4F3093040120930301019602C080E086 -:10F4C00090E020910502309106028217930708F31D -:10F4D00062C08091030190910401880F991F90935D -:10F4E0000401809303018091050280FF09C080918F -:10F4F0000502909106020196909306028093050200 -:10F50000F999FECF1127E0910301F0910401C5E0C4 -:10F51000D1E08091050290910602103091F40091A3 -:10F52000570001700130D9F303E000935700E895CC -:10F530000091570001700130D9F301E100935700A9 -:10F54000E895099019900091570001700130D9F3A6 -:10F5500001E000935700E8951395103898F01127B3 -:10F560000091570001700130D9F305E00093570076 -:10F57000E8950091570001700130D9F301E1009343 -:10F580005700E8953296029709F0C7CF103011F076 -:10F590000296E5CF112484E10E9452F880E10E9496 -:10F5A00052F8CCCE843709F055C00E9479F8809388 -:10F5B00006020E9479F8809305020E9479F89091E2 -:10F5C0000802853421F49160909308020DC09E7F5B -:10F5D000909308028091030190910401880F991F74 -:10F5E00090930401809303010E9479F8803209F01E -:10F5F000A5CE84E10E9452F800E010E023C0809183 -:10F60000080280FF0BC0F999FECF80910301909111 -:10F61000040192BD81BDF89A80B507C081FD07C085 -:10F62000E0910301F091040184910E9452F88091CD -:10F6300003019091040101969093040180930301CA -:10F640000F5F1F4F8091050290910602081719075E -:10F65000B0F2A4CF853779F40E9479F8803289F42A -:10F6600084E10E9452F88EE10E9452F886E90E94DD -:10F6700052F88AE091CF863721F480E00E94CEF8DC -:10F680005DCE809100018F5F80930001853009F08D -:10F6900055CEE0910101F091020109954FCEF89409 -:02F6A000FFCF9A -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile deleted file mode 100644 index 2bb5e0e9ca..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -#Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ - - -# program name should not be changed... -PROGRAM = ATmegaBOOT_644P - -# enter the target CPU frequency -AVR_FREQ = 16000000L - -MCU_TARGET = atmega644p -LDSECTION = --section-start=.text=0x1F000 - -OBJ = $(PROGRAM).o -OPTIMIZE = -Os - -DEFS = -LIBS = - -CC = avr-gcc - - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = -Wl,$(LDSECTION) -#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: CFLAGS += '-DMAX_TIME_COUNT=8000000L>>1' -DADABOOT -all: $(PROGRAM).hex - -$(PROGRAM).hex: $(PROGRAM).elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -$(PROGRAM).elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -$(OBJ): ATmegaBOOT.c - avr-gcc $(CFLAGS) $(LDFLAGS) -c -g -Os -Wall -mmcu=$(MCU_TARGET) ATmegaBOOT.c -o $(PROGRAM).o - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt deleted file mode 100644 index 8286007851..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/bootloaders/atmega644p/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Note: This bootloader support ATmega644, ATmega644P and ATmega324P. -To build, set PROGRAM and MCU_TARGET in the Makefile according to your target device. - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h deleted file mode 100644 index b265825894..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Arduino.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define true 0x1 -#define false 0x0 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef uint8_t boolean; -typedef uint8_t byte; - -void init(void); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER4D 14 -#define TIMER5A 15 -#define TIMER5B 16 -#define TIMER5C 17 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp deleted file mode 100644 index 701e48398f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/CDC.cpp +++ /dev/null @@ -1,239 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -#define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile int head; - volatile int tail; -}; - -ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - return true; - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - if (1200 == _usbLineInfo.dwDTERate) { - // We check DTR state to determine if host port is open (bit 0 of lineState). - if ((_usbLineInfo.lineState & 0x01) == 0) { - *(uint16_t *)0x0800 = 0x7777; - wdt_enable(WDTO_120MS); - } else { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0800 = 0x0; - } - } - return true; - } - } - return false; -} - - -int _serialPeek = -1; -void Serial_::begin(uint16_t baud_count) -{ -} - -void Serial_::end(void) -{ -} - -void Serial_::accept(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - - // while we have room to store a byte - while (i != buffer->tail) { - int c = USB_Recv(CDC_RX); - if (c == -1) - break; // no more data - buffer->buffer[buffer->head] = c; - buffer->head = i; - - i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - } -} - -int Serial_::available(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int Serial_::peek(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - if (buffer->head == buffer->tail) { - return -1; - } else { - return buffer->buffer[buffer->tail]; - } -} - -int Serial_::read(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - // if the head isn't ahead of the tail, we don't have any characters - if (buffer->head == buffer->tail) { - return -1; - } else { - unsigned char c = buffer->buffer[buffer->tail]; - buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - if (_usbLineInfo.lineState > 0) { - int r = USB_Send(CDC_TX,&c,1); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h deleted file mode 100644 index ea134838a2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Client.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp deleted file mode 100644 index ac63608449..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HID.cpp +++ /dev/null @@ -1,520 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#if RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int i) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - uint8_t r = release(c); // Keyup - return (p); // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp deleted file mode 100644 index 794a7be898..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.cpp +++ /dev/null @@ -1,519 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#include -#include -#include -#include -#include "Arduino.h" -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) - -#include "HardwareSerial.h" - -/* - * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" - * definition. - */ -#if !defined(TXC0) -#if defined(TXC) -#define TXC0 TXC -#elif defined(TXC1) -// Some devices have uart1 but no uart0 -#define TXC0 TXC1 -#else -#error TXC0 not definable in HardwareSerial.h -#endif -#endif - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 16 -#else - #define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -#if defined(USBCON) - ring_buffer rx_buffer = { { 0 }, 0, 0}; - ring_buffer tx_buffer = { { 0 }, 0, 0}; -#endif -#if defined(UBRRH) || defined(UBRR0H) - ring_buffer rx_buffer = { { 0 }, 0, 0 }; - ring_buffer tx_buffer = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR1H) - ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR2H) - ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR3H) - ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; -#endif - -inline void store_char(unsigned char c, ring_buffer *buffer) -{ - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) - #error "Don't know what the Data Received vector is called for the first UART" -#else - void serialEvent() __attribute__((weak)); - void serialEvent() {} - #define serialEvent_implemented -#if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) -#elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) -#endif - { - #if defined(UDR0) - if (bit_is_clear(UCSR0A, UPE0)) { - unsigned char c = UDR0; - store_char(c, &rx_buffer); - } else { - unsigned char c = UDR0; - }; - #elif defined(UDR) - if (bit_is_clear(UCSRA, PE)) { - unsigned char c = UDR; - store_char(c, &rx_buffer); - } else { - unsigned char c = UDR; - }; - #else - #error UDR not defined - #endif - } -#endif -#endif - -#if defined(USART1_RX_vect) - void serialEvent1() __attribute__((weak)); - void serialEvent1() {} - #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) - { - if (bit_is_clear(UCSR1A, UPE1)) { - unsigned char c = UDR1; - store_char(c, &rx_buffer1); - } else { - unsigned char c = UDR1; - }; - } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV -#endif - -#if defined(USART2_RX_vect) && defined(UDR2) - void serialEvent2() __attribute__((weak)); - void serialEvent2() {} - #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) - { - if (bit_is_clear(UCSR2A, UPE2)) { - unsigned char c = UDR2; - store_char(c, &rx_buffer2); - } else { - unsigned char c = UDR2; - }; - } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV -#endif - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) - { - if (bit_is_clear(UCSR3A, UPE3)) { - unsigned char c = UDR3; - store_char(c, &rx_buffer3); - } else { - unsigned char c = UDR3; - }; - } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV -#endif - -void serialEventRun(void) -{ -#ifdef serialEvent_implemented - if (Serial.available()) serialEvent(); -#endif -#ifdef serialEvent1_implemented - if (Serial1.available()) serialEvent1(); -#endif -#ifdef serialEvent2_implemented - if (Serial2.available()) serialEvent2(); -#endif -#ifdef serialEvent3_implemented - if (Serial3.available()) serialEvent3(); -#endif -} - - -#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) - #error "Don't know what the Data Register Empty vector is called for the first UART" -#else -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#endif -{ - if (tx_buffer.head == tx_buffer.tail) { - // Buffer empty, so disable interrupts -#if defined(UCSR0B) - cbi(UCSR0B, UDRIE0); -#else - cbi(UCSRB, UDRIE); -#endif - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer.buffer[tx_buffer.tail]; - tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; - - #if defined(UDR0) - UDR0 = c; - #elif defined(UDR) - UDR = c; - #else - #error UDR not defined - #endif - } -} -#endif -#endif - -#ifdef USART1_UDRE_vect -ISR(USART1_UDRE_vect) -{ - if (tx_buffer1.head == tx_buffer1.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR1B, UDRIE1); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; - tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR1 = c; - } -} -#endif - -#ifdef USART2_UDRE_vect -ISR(USART2_UDRE_vect) -{ - if (tx_buffer2.head == tx_buffer2.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR2B, UDRIE2); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; - tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR2 = c; - } -} -#endif - -#ifdef USART3_UDRE_vect -ISR(USART3_UDRE_vect) -{ - if (tx_buffer3.head == tx_buffer3.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; - tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } -} -#endif - - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) -{ - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _ucsrc = ucsrc; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud) -{ - uint16_t baud_setting; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - transmitting = false; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::begin(unsigned long baud, byte config) -{ - uint16_t baud_setting; - uint8_t current_config; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - //set the data bits, parity, and stop bits -#if defined(__AVR_ATmega8__) - config |= 0x80; // select UCSRC register (shared with UBRRH) -#endif - *_ucsrc = config; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int HardwareSerial::available(void) -{ - return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void HardwareSerial::flush() -{ - // UDR is kept full while the buffer is not empty, so TXC triggers when EMPTY && SENT - while (transmitting && ! (*_ucsra & _BV(TXC0))); - transmitting = false; -} - -size_t HardwareSerial::write(uint8_t c) -{ - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - // clear the TXC bit -- "can be cleared by writing a one to its bit location" - transmitting = true; - sbi(*_ucsra, TXC0); - - return 1; -} - -HardwareSerial::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); -#elif defined(UBRR0H) && defined(UBRR0L) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); -#elif defined(USBCON) - // do nothing - Serial object and buffers are initialized in CDC code -#else - #error no serial port defined (port 0) -#endif - -#if defined(UBRR1H) - HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); -#endif -#if defined(UBRR2H) - HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); -#endif -#if defined(UBRR3H) - HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); -#endif - -#endif // whole file - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h deleted file mode 100644 index a73117f568..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/HardwareSerial.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -struct ring_buffer; - -class HardwareSerial : public Stream -{ - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_ucsrc; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - bool transmitting; - public: - HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); - void begin(unsigned long); - void begin(unsigned long, uint8_t); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -// Define config for Serial.begin(baud, config); -#define SERIAL_5N1 0x00 -#define SERIAL_6N1 0x02 -#define SERIAL_7N1 0x04 -#define SERIAL_8N1 0x06 -#define SERIAL_5N2 0x08 -#define SERIAL_6N2 0x0A -#define SERIAL_7N2 0x0C -#define SERIAL_8N2 0x0E -#define SERIAL_5E1 0x20 -#define SERIAL_6E1 0x22 -#define SERIAL_7E1 0x24 -#define SERIAL_8E1 0x26 -#define SERIAL_5E2 0x28 -#define SERIAL_6E2 0x2A -#define SERIAL_7E2 0x2C -#define SERIAL_8E2 0x2E -#define SERIAL_5O1 0x30 -#define SERIAL_6O1 0x32 -#define SERIAL_7O1 0x34 -#define SERIAL_8O1 0x36 -#define SERIAL_5O2 0x38 -#define SERIAL_6O2 0x3A -#define SERIAL_7O2 0x3C -#define SERIAL_8O2 0x3E - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; -#elif defined(USBCON) - #include "USBAPI.h" -// extern HardwareSerial Serial_; -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp deleted file mode 100644 index fe3deb77a2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.cpp +++ /dev/null @@ -1,56 +0,0 @@ - -#include -#include - -IPAddress::IPAddress() -{ - memset(_address, 0, sizeof(_address)); -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address[0] = first_octet; - _address[1] = second_octet; - _address[2] = third_octet; - _address[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - memcpy(_address, &address, sizeof(_address)); -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - memcpy(_address, (const uint8_t *)&address, sizeof(_address)); - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) -{ - return memcmp(addr, _address, sizeof(_address)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address[i], DEC); - n += p.print('.'); - } - n += p.print(_address[3], DEC); - return n; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h deleted file mode 100644 index 2585aec0e4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/IPAddress.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * MIT License: - * Copyright (c) 2011 Adrian McEwen - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * adrianm@mcqn.com 1/1/2011 - */ - -#ifndef IPAddress_h -#define IPAddress_h - -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - uint8_t _address[4]; // IPv4 address - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() { return *((uint32_t*)_address); }; - bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; - bool operator==(const uint8_t* addr); - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address[index]; }; - uint8_t& operator[](int index) { return _address[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h deleted file mode 100644 index 8b8f742771..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Platform.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __PLATFORM_H__ -#define __PLATFORM_H__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - #include "USBDesc.h" - #include "USBCore.h" - #include "USBAPI.h" -#endif /* if defined(USBCON) */ - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp deleted file mode 100644 index 53961ec478..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - const char PROGMEM *p = (const char PROGMEM *)ifsh; - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - size_t n = 0; - for (uint16_t i = 0; i < s.length(); i++) { - n += write(s[i]); - } - return n; -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - if (isnan(number)) return print("nan"); - if (isinf(number)) return print("inf"); - if (number > 4294967040.0) return print ("ovf"); // constant determined empirically - if (number <-4294967040.0) return print ("ovf"); // constant determined empirically - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h deleted file mode 100644 index dc76150871..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Print.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } - virtual size_t write(const uint8_t *buffer, size_t size); - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h deleted file mode 100644 index d03c9af62c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h deleted file mode 100644 index 9674c76269..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Server.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef server_h -#define server_h - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp deleted file mode 100644 index aafb7fcf97..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, NULL); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - size_t index = 0; // maximum target string length is 64k bytes! - size_t termIndex = 0; - int c; - - if( *target == 0) - return true; // return true if target is a null string - while( (c = timedRead()) > 0){ - - if(c != target[index]) - index = 0; // reset index if any char does not match - - if( c == target[index]){ - //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); - if(++index >= targetLen){ // return true if all chars in the target match - return true; - } - } - - if(termLen > 0 && c == terminator[termIndex]){ - if(++termIndex >= termLen) - return false; // return false if terminate string found before target string - } - else - termIndex = 0; - } - return false; -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - boolean isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - boolean isNegative = false; - boolean isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - -String Stream::readString() -{ - String ret; - int c = timedRead(); - while (c >= 0) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -String Stream::readStringUntil(char terminator) -{ - String ret; - int c = timedRead(); - while (c >= 0 && c != terminator) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h deleted file mode 100644 index 58bbf752f3..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Stream.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - private: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - String readString(); - String readStringUntil(char terminator); - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp deleted file mode 100644 index 9bb6fe721c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Tone.cpp +++ /dev/null @@ -1,616 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#elif defined(__AVR_ATmega32U4__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER3 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(TIMSK3) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(TIMSK4) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) - case 3: - TIMSK3 = 0; - break; -#endif - -#if defined(TIMSK4) - case 4: - TIMSK4 = 0; - break; -#endif - -#if defined(TIMSK5) - case 5: - TIMSK5 = 0; - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#ifdef USE_TIMER0 -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER1 -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER2 -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER3 -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER4 -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER5 -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h deleted file mode 100644 index eb2e5937db..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBAPI.h +++ /dev/null @@ -1,196 +0,0 @@ - - -#ifndef __USBAPI__ -#define __USBAPI__ - -#if defined(USBCON) - -//================================================================================ -//================================================================================ -// USB - -class USBDevice_ -{ -public: - USBDevice_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USBDevice_ USBDevice; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -class Serial_ : public Stream -{ -private: - ring_buffer *_cdc_rx_buffer; -public: - void begin(uint16_t baud_count); - void end(void); - - virtual int available(void); - virtual void accept(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; -extern Serial_ Serial; - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp deleted file mode 100644 index d3e0170656..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBCore.cpp +++ /dev/null @@ -1,684 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) - -#define EP_TYPE_CONTROL 0x00 -#define EP_TYPE_BULK_IN 0x81 -#define EP_TYPE_BULK_OUT 0x80 -#define EP_TYPE_INTERRUPT_IN 0xC1 -#define EP_TYPE_INTERRUPT_OUT 0xC0 -#define EP_TYPE_ISOCHRONOUS_IN 0x41 -#define EP_TYPE_ISOCHRONOUS_OUT 0x40 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u16 STRING_IPRODUCT[] PROGMEM; -extern const u16 STRING_IMANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -const u16 STRING_IPRODUCT[17] = { - (3<<8) | (2+2*16), -#if USB_PID == 0x8036 - 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o' -#elif USB_PID == 0x8037 - 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' ' -#elif USB_PID == 0x803C - 'A','r','d','u','i','n','o',' ','E','s','p','l','o','r','a',' ' -#elif USB_PID == 0x9208 - 'L','i','l','y','P','a','d','U','S','B',' ',' ',' ',' ',' ',' ' -#else - 'U','S','B',' ','I','O',' ','B','o','a','r','d',' ',' ',' ',' ' -#endif -}; - -const u16 STRING_IMANUFACTURER[12] = { - (3<<8) | (2+2*11), -#if USB_VID == 0x2341 - 'A','r','d','u','i','n','o',' ','L','L','C' -#elif USB_VID == 0x1b4f - 'S','p','a','r','k','F','u','n',' ',' ',' ' -#else - 'U','n','k','n','o','w','n',' ',' ',' ',' ' -#endif -}; - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - len -= n; - { - LockEP lock(ep); - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - u8 desc_length = 0; - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) - desc_addr = (const u8*)&STRING_LANGUAGE; - else if (setup.wValueL == IPRODUCT) - desc_addr = (const u8*)&STRING_IPRODUCT; - else if (setup.wValueL == IMANUFACTURER) - desc_addr = (const u8*)&STRING_IMANUFACTURER; - else - return false; - } - - if (desc_addr == 0) - return false; - if (desc_length == 0) - desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h deleted file mode 100644 index 900713e0f9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/USBDesc.h +++ /dev/null @@ -1,63 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED -#define HID_ENABLED - - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h deleted file mode 100644 index dc5644b9df..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h deleted file mode 100644 index 79733b50a5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c deleted file mode 100644 index 62efc9cadb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WInterrupts.c +++ /dev/null @@ -1,322 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp deleted file mode 100644 index c6839fc0d9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[9]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[18]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[17]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[34]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[33]; - ultoa(value, buf, base); - *this = buf; -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; - flags = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[4]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[7]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[6]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[12]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[11]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring( unsigned int left ) const -{ - return substring(left, len); -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left > len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h deleted file mode 100644 index 947325e5f5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/WString.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') - unsigned char flags; // unused, for future features -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h deleted file mode 100644 index af1498033a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/binary.h +++ /dev/null @@ -1,515 +0,0 @@ -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp deleted file mode 100644 index 3d4e079d2a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/main.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -int main(void) -{ - init(); - -#if defined(USBCON) - USBDevice.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp deleted file mode 100644 index 0f6d4220ef..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void * operator new(size_t size) -{ - return malloc(size); -} - -void operator delete(void * ptr) -{ - free(ptr); -} - -int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; -void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; -void __cxa_guard_abort (__guard *) {}; - -void __cxa_pure_virtual(void) {}; - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h deleted file mode 100644 index cd940ce8b2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/new.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Header to define new/delete operators as they aren't provided by avr-gcc by default - Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 - */ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void operator delete(void * ptr); - -__extension__ typedef int __guard __attribute__((mode (__DI__))); - -extern "C" int __cxa_guard_acquire(__guard *); -extern "C" void __cxa_guard_release (__guard *); -extern "C" void __cxa_guard_abort (__guard *); - -extern "C" void __cxa_pure_virtual(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c deleted file mode 100644 index ac8bb6f9b4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -SIGNAL(TIM0_OVF_vect) -#else -SIGNAL(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c deleted file mode 100644 index 23b01c65a0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_analog.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(__AVR_ATmega32U4__) - pin = analogPinToChannel(pin); - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#elif defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - #if defined(COM4A0) // only used on 32U4 - cbi(TCCR4A, COM4A0); - #endif - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - #if defined(COM4D0) // only used on 32U4 - cbi(TCCR4C, COM4D0); - #endif - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c deleted file mode 100644 index be323b1dfe..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_digital.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h deleted file mode 100644 index f678265679..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_private.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#elif defined(__AVR_ATmega32U4__) -#define EXTERNAL_NUM_INTERRUPTS 4 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c deleted file mode 100644 index 0d968865d2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_pulse.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. The loop has been determined - // to be 20 clock cycles long and have about 16 clocks between the edge - // and the start of the loop. There will be some error introduced by - // the interrupt handlers. - return clockCyclesToMicroseconds(width * 21 + 16); -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c deleted file mode 100644 index cfe786758c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/cores/arduino/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h deleted file mode 100644 index 499952dc94..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/Sanguino/variants/standard/pins_arduino.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ - - Changelog - ----------- - 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P - 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER5A 14 -#define TIMER5B 15 -#define TIMER5C 16 - -const static uint8_t SS = 4; -const static uint8_t MOSI = 5; -const static uint8_t MISO = 6; -const static uint8_t SCK = 7; - -static const uint8_t SDA = 17; -static const uint8_t SCL = 16; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 31; -static const uint8_t A1 = 30; -static const uint8_t A2 = 29; -static const uint8_t A3 = 28; -static const uint8_t A4 = 27; -static const uint8_t A5 = 26; -static const uint8_t A6 = 25; -static const uint8_t A7 = 24; - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -// extern const uint16_t PROGMEM port_to_mode_PGM[]; -// extern const uint16_t PROGMEM port_to_input_PGM[]; -// extern const uint16_t PROGMEM port_to_output_PGM[]; - -// extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// ATMEL ATMEGA644P / SANGUINO -// -// +---\/---+ -// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) -// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) -// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) -// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) -// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) -// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) -// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) -// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) -// RST 9| |32 AREF -// VCC 10| |31 GND -// GND 11| |30 AVCC -// XTAL2 12| |29 PC7 (D 23) -// XTAL1 13| |28 PC6 (D 22) -// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI -// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO -// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS -// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK -// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA -// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL -// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM -// +--------+ -// -#define NUM_DIGITAL_PINS 24 -#define NUM_ANALOG_INPUTS 8 -#define analogInputToDigitalPin(p) ((p < 7) ? (p) + 24 : -1) - -#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) - -#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ - ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ - ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ - ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ - 0 ) ) ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ - ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ - ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ - ((uint8_t *)0) ) ) ) ) - - -#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ - ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ - ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ - 0 ) ) ) ) - -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 - -#ifdef ARDUINO_MAIN -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, -}; -const uint16_t PROGMEM port_to_input_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, -}; -const uint8_t PROGMEM digital_pin_to_port_PGM[] = -{ - PB, /* 0 */ - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PD, /* 8 */ - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PC, /* 16 */ - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PA, /* 24 */ - PA, - PA, - PA, - PA, - PA, - PA, - PA /* 31 */ -}; -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = -{ - _BV(0), /* 0, port B */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 8, port D */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 16, port C */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(7), /* 24, port A */ - _BV(6), - _BV(5), - _BV(4), - _BV(3), - _BV(2), - _BV(1), - _BV(0) -}; -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = -{ - NOT_ON_TIMER, /* 0 - PB0 */ - NOT_ON_TIMER, /* 1 - PB1 */ - NOT_ON_TIMER, /* 2 - PB2 */ - TIMER0A, /* 3 - PB3 */ - TIMER0B, /* 4 - PB4 */ - NOT_ON_TIMER, /* 5 - PB5 */ - NOT_ON_TIMER, /* 6 - PB6 */ - NOT_ON_TIMER, /* 7 - PB7 */ - NOT_ON_TIMER, /* 8 - PD0 */ - NOT_ON_TIMER, /* 9 - PD1 */ - NOT_ON_TIMER, /* 10 - PD2 */ - NOT_ON_TIMER, /* 11 - PD3 */ - TIMER1B, /* 12 - PD4 */ - TIMER1A, /* 13 - PD5 */ - TIMER2B, /* 14 - PD6 */ - TIMER2A, /* 15 - PD7 */ - NOT_ON_TIMER, /* 16 - PC0 */ - NOT_ON_TIMER, /* 17 - PC1 */ - NOT_ON_TIMER, /* 18 - PC2 */ - NOT_ON_TIMER, /* 19 - PC3 */ - NOT_ON_TIMER, /* 20 - PC4 */ - NOT_ON_TIMER, /* 21 - PC5 */ - NOT_ON_TIMER, /* 22 - PC6 */ - NOT_ON_TIMER, /* 23 - PC7 */ - NOT_ON_TIMER, /* 24 - PA0 */ - NOT_ON_TIMER, /* 25 - PA1 */ - NOT_ON_TIMER, /* 26 - PA2 */ - NOT_ON_TIMER, /* 27 - PA3 */ - NOT_ON_TIMER, /* 28 - PA4 */ - NOT_ON_TIMER, /* 29 - PA5 */ - NOT_ON_TIMER, /* 30 - PA6 */ - NOT_ON_TIMER /* 31 - PA7 */ -}; -#endif -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt deleted file mode 100644 index d0901653c9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/boards.txt +++ /dev/null @@ -1,22 +0,0 @@ -# See: http://code.google.com/p/arduino/wiki/Platforms - -############################################################## - -mega2560.name=RAMBo - -mega2560.upload.protocol=wiring -mega2560.upload.maximum_size=258048 -mega2560.upload.speed=115200 - -mega2560.bootloader.low_fuses=0xFF -mega2560.bootloader.high_fuses=0xD8 -mega2560.bootloader.extended_fuses=0xFD -mega2560.bootloader.path=stk500v2 -mega2560.bootloader.file=stk500boot_v2_mega2560.hex -mega2560.bootloader.unlock_bits=0x3F -mega2560.bootloader.lock_bits=0x0F - -mega2560.build.mcu=atmega2560 -mega2560.build.f_cpu=16000000L -mega2560.build.core=arduino -mega2560.build.variant=standard diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h deleted file mode 100644 index b265825894..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Arduino.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define true 0x1 -#define false 0x0 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef uint8_t boolean; -typedef uint8_t byte; - -void init(void); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER4D 14 -#define TIMER5A 15 -#define TIMER5B 16 -#define TIMER5C 17 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp deleted file mode 100644 index 701e48398f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/CDC.cpp +++ /dev/null @@ -1,239 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -#define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile int head; - volatile int tail; -}; - -ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - return true; - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - if (1200 == _usbLineInfo.dwDTERate) { - // We check DTR state to determine if host port is open (bit 0 of lineState). - if ((_usbLineInfo.lineState & 0x01) == 0) { - *(uint16_t *)0x0800 = 0x7777; - wdt_enable(WDTO_120MS); - } else { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0800 = 0x0; - } - } - return true; - } - } - return false; -} - - -int _serialPeek = -1; -void Serial_::begin(uint16_t baud_count) -{ -} - -void Serial_::end(void) -{ -} - -void Serial_::accept(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - - // while we have room to store a byte - while (i != buffer->tail) { - int c = USB_Recv(CDC_RX); - if (c == -1) - break; // no more data - buffer->buffer[buffer->head] = c; - buffer->head = i; - - i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - } -} - -int Serial_::available(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int Serial_::peek(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - if (buffer->head == buffer->tail) { - return -1; - } else { - return buffer->buffer[buffer->tail]; - } -} - -int Serial_::read(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - // if the head isn't ahead of the tail, we don't have any characters - if (buffer->head == buffer->tail) { - return -1; - } else { - unsigned char c = buffer->buffer[buffer->tail]; - buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - if (_usbLineInfo.lineState > 0) { - int r = USB_Send(CDC_TX,&c,1); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h deleted file mode 100644 index ea134838a2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Client.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp deleted file mode 100644 index ac63608449..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HID.cpp +++ /dev/null @@ -1,520 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#if RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int i) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - uint8_t r = release(c); // Keyup - return (p); // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp deleted file mode 100644 index 794a7be898..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.cpp +++ /dev/null @@ -1,519 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#include -#include -#include -#include -#include "Arduino.h" -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) - -#include "HardwareSerial.h" - -/* - * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" - * definition. - */ -#if !defined(TXC0) -#if defined(TXC) -#define TXC0 TXC -#elif defined(TXC1) -// Some devices have uart1 but no uart0 -#define TXC0 TXC1 -#else -#error TXC0 not definable in HardwareSerial.h -#endif -#endif - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 16 -#else - #define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -#if defined(USBCON) - ring_buffer rx_buffer = { { 0 }, 0, 0}; - ring_buffer tx_buffer = { { 0 }, 0, 0}; -#endif -#if defined(UBRRH) || defined(UBRR0H) - ring_buffer rx_buffer = { { 0 }, 0, 0 }; - ring_buffer tx_buffer = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR1H) - ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR2H) - ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR3H) - ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; -#endif - -inline void store_char(unsigned char c, ring_buffer *buffer) -{ - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) - #error "Don't know what the Data Received vector is called for the first UART" -#else - void serialEvent() __attribute__((weak)); - void serialEvent() {} - #define serialEvent_implemented -#if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) -#elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) -#endif - { - #if defined(UDR0) - if (bit_is_clear(UCSR0A, UPE0)) { - unsigned char c = UDR0; - store_char(c, &rx_buffer); - } else { - unsigned char c = UDR0; - }; - #elif defined(UDR) - if (bit_is_clear(UCSRA, PE)) { - unsigned char c = UDR; - store_char(c, &rx_buffer); - } else { - unsigned char c = UDR; - }; - #else - #error UDR not defined - #endif - } -#endif -#endif - -#if defined(USART1_RX_vect) - void serialEvent1() __attribute__((weak)); - void serialEvent1() {} - #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) - { - if (bit_is_clear(UCSR1A, UPE1)) { - unsigned char c = UDR1; - store_char(c, &rx_buffer1); - } else { - unsigned char c = UDR1; - }; - } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV -#endif - -#if defined(USART2_RX_vect) && defined(UDR2) - void serialEvent2() __attribute__((weak)); - void serialEvent2() {} - #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) - { - if (bit_is_clear(UCSR2A, UPE2)) { - unsigned char c = UDR2; - store_char(c, &rx_buffer2); - } else { - unsigned char c = UDR2; - }; - } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV -#endif - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) - { - if (bit_is_clear(UCSR3A, UPE3)) { - unsigned char c = UDR3; - store_char(c, &rx_buffer3); - } else { - unsigned char c = UDR3; - }; - } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV -#endif - -void serialEventRun(void) -{ -#ifdef serialEvent_implemented - if (Serial.available()) serialEvent(); -#endif -#ifdef serialEvent1_implemented - if (Serial1.available()) serialEvent1(); -#endif -#ifdef serialEvent2_implemented - if (Serial2.available()) serialEvent2(); -#endif -#ifdef serialEvent3_implemented - if (Serial3.available()) serialEvent3(); -#endif -} - - -#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) - #error "Don't know what the Data Register Empty vector is called for the first UART" -#else -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#endif -{ - if (tx_buffer.head == tx_buffer.tail) { - // Buffer empty, so disable interrupts -#if defined(UCSR0B) - cbi(UCSR0B, UDRIE0); -#else - cbi(UCSRB, UDRIE); -#endif - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer.buffer[tx_buffer.tail]; - tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; - - #if defined(UDR0) - UDR0 = c; - #elif defined(UDR) - UDR = c; - #else - #error UDR not defined - #endif - } -} -#endif -#endif - -#ifdef USART1_UDRE_vect -ISR(USART1_UDRE_vect) -{ - if (tx_buffer1.head == tx_buffer1.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR1B, UDRIE1); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; - tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR1 = c; - } -} -#endif - -#ifdef USART2_UDRE_vect -ISR(USART2_UDRE_vect) -{ - if (tx_buffer2.head == tx_buffer2.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR2B, UDRIE2); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; - tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR2 = c; - } -} -#endif - -#ifdef USART3_UDRE_vect -ISR(USART3_UDRE_vect) -{ - if (tx_buffer3.head == tx_buffer3.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; - tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } -} -#endif - - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) -{ - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _ucsrc = ucsrc; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud) -{ - uint16_t baud_setting; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - transmitting = false; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::begin(unsigned long baud, byte config) -{ - uint16_t baud_setting; - uint8_t current_config; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - //set the data bits, parity, and stop bits -#if defined(__AVR_ATmega8__) - config |= 0x80; // select UCSRC register (shared with UBRRH) -#endif - *_ucsrc = config; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int HardwareSerial::available(void) -{ - return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void HardwareSerial::flush() -{ - // UDR is kept full while the buffer is not empty, so TXC triggers when EMPTY && SENT - while (transmitting && ! (*_ucsra & _BV(TXC0))); - transmitting = false; -} - -size_t HardwareSerial::write(uint8_t c) -{ - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - // clear the TXC bit -- "can be cleared by writing a one to its bit location" - transmitting = true; - sbi(*_ucsra, TXC0); - - return 1; -} - -HardwareSerial::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); -#elif defined(UBRR0H) && defined(UBRR0L) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); -#elif defined(USBCON) - // do nothing - Serial object and buffers are initialized in CDC code -#else - #error no serial port defined (port 0) -#endif - -#if defined(UBRR1H) - HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); -#endif -#if defined(UBRR2H) - HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); -#endif -#if defined(UBRR3H) - HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); -#endif - -#endif // whole file - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h deleted file mode 100644 index a73117f568..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/HardwareSerial.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -struct ring_buffer; - -class HardwareSerial : public Stream -{ - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_ucsrc; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - bool transmitting; - public: - HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); - void begin(unsigned long); - void begin(unsigned long, uint8_t); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -// Define config for Serial.begin(baud, config); -#define SERIAL_5N1 0x00 -#define SERIAL_6N1 0x02 -#define SERIAL_7N1 0x04 -#define SERIAL_8N1 0x06 -#define SERIAL_5N2 0x08 -#define SERIAL_6N2 0x0A -#define SERIAL_7N2 0x0C -#define SERIAL_8N2 0x0E -#define SERIAL_5E1 0x20 -#define SERIAL_6E1 0x22 -#define SERIAL_7E1 0x24 -#define SERIAL_8E1 0x26 -#define SERIAL_5E2 0x28 -#define SERIAL_6E2 0x2A -#define SERIAL_7E2 0x2C -#define SERIAL_8E2 0x2E -#define SERIAL_5O1 0x30 -#define SERIAL_6O1 0x32 -#define SERIAL_7O1 0x34 -#define SERIAL_8O1 0x36 -#define SERIAL_5O2 0x38 -#define SERIAL_6O2 0x3A -#define SERIAL_7O2 0x3C -#define SERIAL_8O2 0x3E - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; -#elif defined(USBCON) - #include "USBAPI.h" -// extern HardwareSerial Serial_; -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp deleted file mode 100644 index fe3deb77a2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.cpp +++ /dev/null @@ -1,56 +0,0 @@ - -#include -#include - -IPAddress::IPAddress() -{ - memset(_address, 0, sizeof(_address)); -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address[0] = first_octet; - _address[1] = second_octet; - _address[2] = third_octet; - _address[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - memcpy(_address, &address, sizeof(_address)); -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - memcpy(_address, (const uint8_t *)&address, sizeof(_address)); - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) -{ - return memcmp(addr, _address, sizeof(_address)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address[i], DEC); - n += p.print('.'); - } - n += p.print(_address[3], DEC); - return n; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h deleted file mode 100644 index 2585aec0e4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/IPAddress.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * MIT License: - * Copyright (c) 2011 Adrian McEwen - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * adrianm@mcqn.com 1/1/2011 - */ - -#ifndef IPAddress_h -#define IPAddress_h - -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - uint8_t _address[4]; // IPv4 address - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() { return *((uint32_t*)_address); }; - bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; - bool operator==(const uint8_t* addr); - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address[index]; }; - uint8_t& operator[](int index) { return _address[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h deleted file mode 100644 index 8b8f742771..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Platform.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __PLATFORM_H__ -#define __PLATFORM_H__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - #include "USBDesc.h" - #include "USBCore.h" - #include "USBAPI.h" -#endif /* if defined(USBCON) */ - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp deleted file mode 100644 index 53961ec478..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - const char PROGMEM *p = (const char PROGMEM *)ifsh; - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - size_t n = 0; - for (uint16_t i = 0; i < s.length(); i++) { - n += write(s[i]); - } - return n; -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - if (isnan(number)) return print("nan"); - if (isinf(number)) return print("inf"); - if (number > 4294967040.0) return print ("ovf"); // constant determined empirically - if (number <-4294967040.0) return print ("ovf"); // constant determined empirically - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h deleted file mode 100644 index dc76150871..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Print.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } - virtual size_t write(const uint8_t *buffer, size_t size); - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h deleted file mode 100644 index d03c9af62c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h deleted file mode 100644 index 9674c76269..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Server.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef server_h -#define server_h - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp deleted file mode 100644 index aafb7fcf97..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, NULL); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - size_t index = 0; // maximum target string length is 64k bytes! - size_t termIndex = 0; - int c; - - if( *target == 0) - return true; // return true if target is a null string - while( (c = timedRead()) > 0){ - - if(c != target[index]) - index = 0; // reset index if any char does not match - - if( c == target[index]){ - //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); - if(++index >= targetLen){ // return true if all chars in the target match - return true; - } - } - - if(termLen > 0 && c == terminator[termIndex]){ - if(++termIndex >= termLen) - return false; // return false if terminate string found before target string - } - else - termIndex = 0; - } - return false; -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - boolean isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - boolean isNegative = false; - boolean isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - -String Stream::readString() -{ - String ret; - int c = timedRead(); - while (c >= 0) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -String Stream::readStringUntil(char terminator) -{ - String ret; - int c = timedRead(); - while (c >= 0 && c != terminator) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h deleted file mode 100644 index 58bbf752f3..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Stream.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - private: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - String readString(); - String readStringUntil(char terminator); - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp deleted file mode 100644 index 9bb6fe721c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Tone.cpp +++ /dev/null @@ -1,616 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#elif defined(__AVR_ATmega32U4__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER3 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(TIMSK3) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(TIMSK4) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) - case 3: - TIMSK3 = 0; - break; -#endif - -#if defined(TIMSK4) - case 4: - TIMSK4 = 0; - break; -#endif - -#if defined(TIMSK5) - case 5: - TIMSK5 = 0; - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#ifdef USE_TIMER0 -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER1 -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER2 -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER3 -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER4 -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER5 -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h deleted file mode 100644 index eb2e5937db..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBAPI.h +++ /dev/null @@ -1,196 +0,0 @@ - - -#ifndef __USBAPI__ -#define __USBAPI__ - -#if defined(USBCON) - -//================================================================================ -//================================================================================ -// USB - -class USBDevice_ -{ -public: - USBDevice_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USBDevice_ USBDevice; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -class Serial_ : public Stream -{ -private: - ring_buffer *_cdc_rx_buffer; -public: - void begin(uint16_t baud_count); - void end(void); - - virtual int available(void); - virtual void accept(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; -extern Serial_ Serial; - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp deleted file mode 100644 index d3e0170656..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBCore.cpp +++ /dev/null @@ -1,684 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) - -#define EP_TYPE_CONTROL 0x00 -#define EP_TYPE_BULK_IN 0x81 -#define EP_TYPE_BULK_OUT 0x80 -#define EP_TYPE_INTERRUPT_IN 0xC1 -#define EP_TYPE_INTERRUPT_OUT 0xC0 -#define EP_TYPE_ISOCHRONOUS_IN 0x41 -#define EP_TYPE_ISOCHRONOUS_OUT 0x40 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u16 STRING_IPRODUCT[] PROGMEM; -extern const u16 STRING_IMANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -const u16 STRING_IPRODUCT[17] = { - (3<<8) | (2+2*16), -#if USB_PID == 0x8036 - 'A','r','d','u','i','n','o',' ','L','e','o','n','a','r','d','o' -#elif USB_PID == 0x8037 - 'A','r','d','u','i','n','o',' ','M','i','c','r','o',' ',' ',' ' -#elif USB_PID == 0x803C - 'A','r','d','u','i','n','o',' ','E','s','p','l','o','r','a',' ' -#elif USB_PID == 0x9208 - 'L','i','l','y','P','a','d','U','S','B',' ',' ',' ',' ',' ',' ' -#else - 'U','S','B',' ','I','O',' ','B','o','a','r','d',' ',' ',' ',' ' -#endif -}; - -const u16 STRING_IMANUFACTURER[12] = { - (3<<8) | (2+2*11), -#if USB_VID == 0x2341 - 'A','r','d','u','i','n','o',' ','L','L','C' -#elif USB_VID == 0x1b4f - 'S','p','a','r','k','F','u','n',' ',' ',' ' -#else - 'U','n','k','n','o','w','n',' ',' ',' ',' ' -#endif -}; - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - len -= n; - { - LockEP lock(ep); - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - u8 desc_length = 0; - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) - desc_addr = (const u8*)&STRING_LANGUAGE; - else if (setup.wValueL == IPRODUCT) - desc_addr = (const u8*)&STRING_IPRODUCT; - else if (setup.wValueL == IMANUFACTURER) - desc_addr = (const u8*)&STRING_IMANUFACTURER; - else - return false; - } - - if (desc_addr == 0) - return false; - if (desc_length == 0) - desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h deleted file mode 100644 index 900713e0f9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/USBDesc.h +++ /dev/null @@ -1,63 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED -#define HID_ENABLED - - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h deleted file mode 100644 index dc5644b9df..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h deleted file mode 100644 index 79733b50a5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c deleted file mode 100644 index 62efc9cadb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WInterrupts.c +++ /dev/null @@ -1,322 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp deleted file mode 100644 index c6839fc0d9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[9]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[18]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[17]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[34]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[33]; - ultoa(value, buf, base); - *this = buf; -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; - flags = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[4]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[7]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[6]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[12]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[11]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring( unsigned int left ) const -{ - return substring(left, len); -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left > len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h deleted file mode 100644 index 947325e5f5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/WString.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') - unsigned char flags; // unused, for future features -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h deleted file mode 100644 index af1498033a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/binary.h +++ /dev/null @@ -1,515 +0,0 @@ -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp deleted file mode 100644 index 3d4e079d2a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/main.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -int main(void) -{ - init(); - -#if defined(USBCON) - USBDevice.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp deleted file mode 100644 index 0f6d4220ef..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void * operator new(size_t size) -{ - return malloc(size); -} - -void operator delete(void * ptr) -{ - free(ptr); -} - -int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; -void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; -void __cxa_guard_abort (__guard *) {}; - -void __cxa_pure_virtual(void) {}; - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h deleted file mode 100644 index cd940ce8b2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/new.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Header to define new/delete operators as they aren't provided by avr-gcc by default - Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 - */ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void operator delete(void * ptr); - -__extension__ typedef int __guard __attribute__((mode (__DI__))); - -extern "C" int __cxa_guard_acquire(__guard *); -extern "C" void __cxa_guard_release (__guard *); -extern "C" void __cxa_guard_abort (__guard *); - -extern "C" void __cxa_pure_virtual(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c deleted file mode 100644 index ac8bb6f9b4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -SIGNAL(TIM0_OVF_vect) -#else -SIGNAL(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c deleted file mode 100644 index 23b01c65a0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_analog.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(__AVR_ATmega32U4__) - pin = analogPinToChannel(pin); - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#elif defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - #if defined(COM4A0) // only used on 32U4 - cbi(TCCR4A, COM4A0); - #endif - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - #if defined(COM4D0) // only used on 32U4 - cbi(TCCR4C, COM4D0); - #endif - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c deleted file mode 100644 index be323b1dfe..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_digital.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h deleted file mode 100644 index f678265679..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_private.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#elif defined(__AVR_ATmega32U4__) -#define EXTERNAL_NUM_INTERRUPTS 4 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c deleted file mode 100644 index 0d968865d2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_pulse.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. The loop has been determined - // to be 20 clock cycles long and have about 16 clocks between the edge - // and the start of the loop. There will be some error introduced by - // the interrupt handlers. - return clockCyclesToMicroseconds(width * 21 + 16); -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c deleted file mode 100644 index cfe786758c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/cores/arduino/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h deleted file mode 100644 index f49a23fc02..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/hardware/rambo/variants/standard/pins_arduino.h +++ /dev/null @@ -1,411 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 82 -#define NUM_ANALOG_INPUTS 16 -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) -#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) - -static const uint8_t SS = 53; -static const uint8_t MOSI = 51; -static const uint8_t MISO = 50; -static const uint8_t SCK = 52; - -static const uint8_t SDA = 20; -static const uint8_t SCL = 21; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 54; -static const uint8_t A1 = 55; -static const uint8_t A2 = 56; -static const uint8_t A3 = 57; -static const uint8_t A4 = 58; -static const uint8_t A5 = 59; -static const uint8_t A6 = 60; -static const uint8_t A7 = 61; -static const uint8_t A8 = 62; -static const uint8_t A9 = 63; -static const uint8_t A10 = 64; -static const uint8_t A11 = 65; -static const uint8_t A12 = 66; -static const uint8_t A13 = 67; -static const uint8_t A14 = 68; -static const uint8_t A15 = 69; - -// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) -// Only pins available for RECEIVE (TRANSMIT can be on any pin): -// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) -// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 - -#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ - (((p) >= 50) && ((p) <= 53)) || \ - (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ - 0 ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ - ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ - ((uint8_t *)0) ) ) - -#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ - ( ((p) == 50) ? 3 : \ - ( ((p) == 51) ? 2 : \ - ( ((p) == 52) ? 1 : \ - ( ((p) == 53) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ - 0 ) ) ) ) ) ) - -#ifdef ARDUINO_MAIN - -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, - (uint16_t) &DDRG, - (uint16_t) &DDRH, - NOT_A_PORT, - (uint16_t) &DDRJ, - (uint16_t) &DDRK, - (uint16_t) &DDRL, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, - (uint16_t) &PORTG, - (uint16_t) &PORTH, - NOT_A_PORT, - (uint16_t) &PORTJ, - (uint16_t) &PORTK, - (uint16_t) &PORTL, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PIN, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, - (uint16_t) &PING, - (uint16_t) &PINH, - NOT_A_PIN, - (uint16_t) &PINJ, - (uint16_t) &PINK, - (uint16_t) &PINL, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - // PORTLIST - // ------------------------------------------- - PE , // PE 0 ** 0 ** USART0_RX - PE , // PE 1 ** 1 ** USART0_TX - PE , // PE 4 ** 2 ** PWM2 - PE , // PE 5 ** 3 ** PWM3 - PG , // PG 5 ** 4 ** PWM4 - PE , // PE 3 ** 5 ** PWM5 - PH , // PH 3 ** 6 ** PWM6 - PH , // PH 4 ** 7 ** PWM7 - PH , // PH 5 ** 8 ** PWM8 - PH , // PH 6 ** 9 ** PWM9 - PB , // PB 4 ** 10 ** PWM10 - PB , // PB 5 ** 11 ** PWM11 - PB , // PB 6 ** 12 ** PWM12 - PB , // PB 7 ** 13 ** PWM13 - PJ , // PJ 1 ** 14 ** USART3_TX - PJ , // PJ 0 ** 15 ** USART3_RX - PH , // PH 1 ** 16 ** USART2_TX - PH , // PH 0 ** 17 ** USART2_RX - PD , // PD 3 ** 18 ** USART1_TX - PD , // PD 2 ** 19 ** USART1_RX - PD , // PD 1 ** 20 ** I2C_SDA - PD , // PD 0 ** 21 ** I2C_SCL - PA , // PA 0 ** 22 ** D22 - PA , // PA 1 ** 23 ** D23 - PA , // PA 2 ** 24 ** D24 - PA , // PA 3 ** 25 ** D25 - PA , // PA 4 ** 26 ** D26 - PA , // PA 5 ** 27 ** D27 - PA , // PA 6 ** 28 ** D28 - PA , // PA 7 ** 29 ** D29 - PC , // PC 7 ** 30 ** D30 - PC , // PC 6 ** 31 ** D31 - PC , // PC 5 ** 32 ** D32 - PC , // PC 4 ** 33 ** D33 - PC , // PC 3 ** 34 ** D34 - PC , // PC 2 ** 35 ** D35 - PC , // PC 1 ** 36 ** D36 - PC , // PC 0 ** 37 ** D37 - PD , // PD 7 ** 38 ** D38 - PG , // PG 2 ** 39 ** D39 - PG , // PG 1 ** 40 ** D40 - PG , // PG 0 ** 41 ** D41 - PL , // PL 7 ** 42 ** D42 - PL , // PL 6 ** 43 ** D43 - PL , // PL 5 ** 44 ** D44 - PL , // PL 4 ** 45 ** D45 - PL , // PL 3 ** 46 ** D46 - PL , // PL 2 ** 47 ** D47 - PL , // PL 1 ** 48 ** D48 - PL , // PL 0 ** 49 ** D49 - PB , // PB 3 ** 50 ** SPI_MISO - PB , // PB 2 ** 51 ** SPI_MOSI - PB , // PB 1 ** 52 ** SPI_SCK - PB , // PB 0 ** 53 ** SPI_SS - PF , // PF 0 ** 54 ** A0 - PF , // PF 1 ** 55 ** A1 - PF , // PF 2 ** 56 ** A2 - PF , // PF 3 ** 57 ** A3 - PF , // PF 4 ** 58 ** A4 - PF , // PF 5 ** 59 ** A5 - PF , // PF 6 ** 60 ** A6 - PF , // PF 7 ** 61 ** A7 - PK , // PK 0 ** 62 ** A8 - PK , // PK 1 ** 63 ** A9 - PK , // PK 2 ** 64 ** A10 - PK , // PK 3 ** 65 ** A11 - PK , // PK 4 ** 66 ** A12 - PK , // PK 5 ** 67 ** A13 - PK , // PK 6 ** 68 ** A14 - PK , // PK 7 ** 69 ** A15 - PG , // PG 4 ** 70 ** D70 - PG , // PG 3 ** 71 ** D71 - PJ , // PJ 2 ** 72 ** D72 - PJ , // PJ 3 ** 73 ** D73 - PJ , // PJ 7 ** 74 ** D74 - PJ , // PJ 4 ** 75 ** D75 - PJ , // PJ 5 ** 76 ** D76 - PJ , // PJ 6 ** 77 ** D77 - PE , // PE 2 ** 78 ** D78 - PE , // PE 6 ** 79 ** D79 - PE , // PE 7 ** 80 ** D80 - PD , // PD 4 ** 81 ** D81 - PD , // PD 5 ** 82 ** D82 - PD , // PD 6 ** 83 ** D83 - PH , // PH 2 ** 84 ** D84 - PH , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - // PIN IN PORT - // ------------------------------------------- - _BV( 0 ) , // PE 0 ** 0 ** USART0_RX - _BV( 1 ) , // PE 1 ** 1 ** USART0_TX - _BV( 4 ) , // PE 4 ** 2 ** PWM2 - _BV( 5 ) , // PE 5 ** 3 ** PWM3 - _BV( 5 ) , // PG 5 ** 4 ** PWM4 - _BV( 3 ) , // PE 3 ** 5 ** PWM5 - _BV( 3 ) , // PH 3 ** 6 ** PWM6 - _BV( 4 ) , // PH 4 ** 7 ** PWM7 - _BV( 5 ) , // PH 5 ** 8 ** PWM8 - _BV( 6 ) , // PH 6 ** 9 ** PWM9 - _BV( 4 ) , // PB 4 ** 10 ** PWM10 - _BV( 5 ) , // PB 5 ** 11 ** PWM11 - _BV( 6 ) , // PB 6 ** 12 ** PWM12 - _BV( 7 ) , // PB 7 ** 13 ** PWM13 - _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX - _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX - _BV( 1 ) , // PH 1 ** 16 ** USART2_TX - _BV( 0 ) , // PH 0 ** 17 ** USART2_RX - _BV( 3 ) , // PD 3 ** 18 ** USART1_TX - _BV( 2 ) , // PD 2 ** 19 ** USART1_RX - _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA - _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL - _BV( 0 ) , // PA 0 ** 22 ** D22 - _BV( 1 ) , // PA 1 ** 23 ** D23 - _BV( 2 ) , // PA 2 ** 24 ** D24 - _BV( 3 ) , // PA 3 ** 25 ** D25 - _BV( 4 ) , // PA 4 ** 26 ** D26 - _BV( 5 ) , // PA 5 ** 27 ** D27 - _BV( 6 ) , // PA 6 ** 28 ** D28 - _BV( 7 ) , // PA 7 ** 29 ** D29 - _BV( 7 ) , // PC 7 ** 30 ** D30 - _BV( 6 ) , // PC 6 ** 31 ** D31 - _BV( 5 ) , // PC 5 ** 32 ** D32 - _BV( 4 ) , // PC 4 ** 33 ** D33 - _BV( 3 ) , // PC 3 ** 34 ** D34 - _BV( 2 ) , // PC 2 ** 35 ** D35 - _BV( 1 ) , // PC 1 ** 36 ** D36 - _BV( 0 ) , // PC 0 ** 37 ** D37 - _BV( 7 ) , // PD 7 ** 38 ** D38 - _BV( 2 ) , // PG 2 ** 39 ** D39 - _BV( 1 ) , // PG 1 ** 40 ** D40 - _BV( 0 ) , // PG 0 ** 41 ** D41 - _BV( 7 ) , // PL 7 ** 42 ** D42 - _BV( 6 ) , // PL 6 ** 43 ** D43 - _BV( 5 ) , // PL 5 ** 44 ** D44 - _BV( 4 ) , // PL 4 ** 45 ** D45 - _BV( 3 ) , // PL 3 ** 46 ** D46 - _BV( 2 ) , // PL 2 ** 47 ** D47 - _BV( 1 ) , // PL 1 ** 48 ** D48 - _BV( 0 ) , // PL 0 ** 49 ** D49 - _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO - _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI - _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK - _BV( 0 ) , // PB 0 ** 53 ** SPI_SS - _BV( 0 ) , // PF 0 ** 54 ** A0 - _BV( 1 ) , // PF 1 ** 55 ** A1 - _BV( 2 ) , // PF 2 ** 56 ** A2 - _BV( 3 ) , // PF 3 ** 57 ** A3 - _BV( 4 ) , // PF 4 ** 58 ** A4 - _BV( 5 ) , // PF 5 ** 59 ** A5 - _BV( 6 ) , // PF 6 ** 60 ** A6 - _BV( 7 ) , // PF 7 ** 61 ** A7 - _BV( 0 ) , // PK 0 ** 62 ** A8 - _BV( 1 ) , // PK 1 ** 63 ** A9 - _BV( 2 ) , // PK 2 ** 64 ** A10 - _BV( 3 ) , // PK 3 ** 65 ** A11 - _BV( 4 ) , // PK 4 ** 66 ** A12 - _BV( 5 ) , // PK 5 ** 67 ** A13 - _BV( 6 ) , // PK 6 ** 68 ** A14 - _BV( 7 ) , // PK 7 ** 69 ** A15 - _BV( 4 ) , // PG 4 ** 70 ** D70 - _BV( 3 ) , // PG 3 ** 71 ** D71 - _BV( 2 ) , // PJ 2 ** 72 ** D72 - _BV( 3 ) , // PJ 3 ** 73 ** D73 - _BV( 7 ) , // PJ 7 ** 74 ** D74 - _BV( 4 ) , // PJ 4 ** 75 ** D75 - _BV( 5 ) , // PJ 5 ** 76 ** D76 - _BV( 6 ) , // PJ 6 ** 77 ** D77 - _BV( 2 ) , // PE 2 ** 78 ** D78 - _BV( 6 ) , // PE 6 ** 79 ** D79 - _BV( 7 ) , // PE 7 ** 80 ** D80 - _BV( 4 ) , // PD 4 ** 81 ** D81 - _BV( 5 ) , // PD 5 ** 82 ** D82 - _BV( 6 ) , // PD 6 ** 83 ** D83 - _BV( 2 ) , // PH 2 ** 84 ** D84 - _BV( 7 ) , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - // TIMERS - // ------------------------------------------- - NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX - NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX - TIMER3B , // PE 4 ** 2 ** PWM2 - TIMER3C , // PE 5 ** 3 ** PWM3 - TIMER0B , // PG 5 ** 4 ** PWM4 - TIMER3A , // PE 3 ** 5 ** PWM5 - TIMER4A , // PH 3 ** 6 ** PWM6 - TIMER4B , // PH 4 ** 7 ** PWM7 - TIMER4C , // PH 5 ** 8 ** PWM8 - TIMER2B , // PH 6 ** 9 ** PWM9 - TIMER2A , // PB 4 ** 10 ** PWM10 - TIMER1A , // PB 5 ** 11 ** PWM11 - TIMER1B , // PB 6 ** 12 ** PWM12 - TIMER0A , // PB 7 ** 13 ** PWM13 - NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX - NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX - NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX - NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX - NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX - NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX - NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA - NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL - NOT_ON_TIMER , // PA 0 ** 22 ** D22 - NOT_ON_TIMER , // PA 1 ** 23 ** D23 - NOT_ON_TIMER , // PA 2 ** 24 ** D24 - NOT_ON_TIMER , // PA 3 ** 25 ** D25 - NOT_ON_TIMER , // PA 4 ** 26 ** D26 - NOT_ON_TIMER , // PA 5 ** 27 ** D27 - NOT_ON_TIMER , // PA 6 ** 28 ** D28 - NOT_ON_TIMER , // PA 7 ** 29 ** D29 - NOT_ON_TIMER , // PC 7 ** 30 ** D30 - NOT_ON_TIMER , // PC 6 ** 31 ** D31 - NOT_ON_TIMER , // PC 5 ** 32 ** D32 - NOT_ON_TIMER , // PC 4 ** 33 ** D33 - NOT_ON_TIMER , // PC 3 ** 34 ** D34 - NOT_ON_TIMER , // PC 2 ** 35 ** D35 - NOT_ON_TIMER , // PC 1 ** 36 ** D36 - NOT_ON_TIMER , // PC 0 ** 37 ** D37 - NOT_ON_TIMER , // PD 7 ** 38 ** D38 - NOT_ON_TIMER , // PG 2 ** 39 ** D39 - NOT_ON_TIMER , // PG 1 ** 40 ** D40 - NOT_ON_TIMER , // PG 0 ** 41 ** D41 - NOT_ON_TIMER , // PL 7 ** 42 ** D42 - NOT_ON_TIMER , // PL 6 ** 43 ** D43 - TIMER5C , // PL 5 ** 44 ** D44 - TIMER5B , // PL 4 ** 45 ** D45 - TIMER5A , // PL 3 ** 46 ** D46 - NOT_ON_TIMER , // PL 2 ** 47 ** D47 - NOT_ON_TIMER , // PL 1 ** 48 ** D48 - NOT_ON_TIMER , // PL 0 ** 49 ** D49 - NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO - NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI - NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK - NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS - NOT_ON_TIMER , // PF 0 ** 54 ** A0 - NOT_ON_TIMER , // PF 1 ** 55 ** A1 - NOT_ON_TIMER , // PF 2 ** 56 ** A2 - NOT_ON_TIMER , // PF 3 ** 57 ** A3 - NOT_ON_TIMER , // PF 4 ** 58 ** A4 - NOT_ON_TIMER , // PF 5 ** 59 ** A5 - NOT_ON_TIMER , // PF 6 ** 60 ** A6 - NOT_ON_TIMER , // PF 7 ** 61 ** A7 - NOT_ON_TIMER , // PK 0 ** 62 ** A8 - NOT_ON_TIMER , // PK 1 ** 63 ** A9 - NOT_ON_TIMER , // PK 2 ** 64 ** A10 - NOT_ON_TIMER , // PK 3 ** 65 ** A11 - NOT_ON_TIMER , // PK 4 ** 66 ** A12 - NOT_ON_TIMER , // PK 5 ** 67 ** A13 - NOT_ON_TIMER , // PK 6 ** 68 ** A14 - NOT_ON_TIMER , // PK 7 ** 69 ** A15 - NOT_ON_TIMER , // PG 4 ** 70 ** D70 - NOT_ON_TIMER , // PG 3 ** 71 ** D71 - NOT_ON_TIMER , // PJ 2 ** 72 ** D72 - NOT_ON_TIMER , // PJ 3 ** 73 ** D73 - NOT_ON_TIMER , // PJ 7 ** 74 ** D74 - NOT_ON_TIMER , // PJ 4 ** 75 ** D75 - NOT_ON_TIMER , // PJ 5 ** 76 ** D76 - NOT_ON_TIMER , // PJ 6 ** 77 ** D77 - NOT_ON_TIMER , // PE 2 ** 78 ** D78 - NOT_ON_TIMER , // PE 6 ** 79 ** D79 - NOT_ON_TIMER , // PE 7 ** 80 ** D80 - NOT_ON_TIMER , // PD 4 ** 81 ** D81 - NOT_ON_TIMER , // PD 5 ** 82 ** D82 - NOT_ON_TIMER , // PD 6 ** 83 ** D83 - NOT_ON_TIMER , // PH 2 ** 84 ** D84 - NOT_ON_TIMER , // PH 7 ** 85 ** D85 -}; - -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp deleted file mode 100644 index 61efca46e0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.cpp +++ /dev/null @@ -1,310 +0,0 @@ -#include "LiquidCrystal.h" - -#include -#include -#include -#include "Arduino.h" - -// When the display powers up, it is configured as follows: -// -// 1. Display clear -// 2. Function set: -// DL = 1; 8-bit interface data -// N = 0; 1-line display -// F = 0; 5x8 dot character font -// 3. Display on/off control: -// D = 0; Display off -// C = 0; Cursor off -// B = 0; Blinking off -// 4. Entry mode set: -// I/D = 1; Increment by 1 -// S = 0; No shift -// -// Note, however, that resetting the Arduino doesn't reset the LCD, so we -// can't assume that it's in that state when a sketch starts (and the -// LiquidCrystal constructor is called). - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - _rs_pin = rs; - _rw_pin = rw; - _enable_pin = enable; - - _data_pins[0] = d0; - _data_pins[1] = d1; - _data_pins[2] = d2; - _data_pins[3] = d3; - _data_pins[4] = d4; - _data_pins[5] = d5; - _data_pins[6] = d6; - _data_pins[7] = d7; - - pinMode(_rs_pin, OUTPUT); - // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# - if (_rw_pin != 255) { - pinMode(_rw_pin, OUTPUT); - } - pinMode(_enable_pin, OUTPUT); - - if (fourbitmode) - _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; - else - _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; - - begin(16, 1); -} - -void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { - if (lines > 1) { - _displayfunction |= LCD_2LINE; - } - _numlines = lines; - _currline = 0; - - // for some 1 line displays you can select a 10 pixel high font - if ((dotsize != 0) && (lines == 1)) { - _displayfunction |= LCD_5x10DOTS; - } - - // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! - // according to datasheet, we need at least 40ms after power rises above 2.7V - // before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50 - delayMicroseconds(50000); - // Now we pull both RS and R/W low to begin commands - digitalWrite(_rs_pin, LOW); - digitalWrite(_enable_pin, LOW); - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - //put the LCD into 4 bit or 8 bit mode - if (! (_displayfunction & LCD_8BITMODE)) { - // this is according to the hitachi HD44780 datasheet - // figure 24, pg 46 - - // we start in 8bit mode, try to set 4 bit mode - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // second try - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // third go! - write4bits(0x03); - delayMicroseconds(150); - - // finally, set to 4-bit interface - write4bits(0x02); - } else { - // this is according to the hitachi HD44780 datasheet - // page 45 figure 23 - - // Send function set command sequence - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(4500); // wait more than 4.1ms - - // second try - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(150); - - // third go - command(LCD_FUNCTIONSET | _displayfunction); - } - - // finally, set # lines, font size, etc. - command(LCD_FUNCTIONSET | _displayfunction); - - // turn the display on with no cursor or blinking default - _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; - display(); - - // clear it off - clear(); - - // Initialize to default text direction (for romance languages) - _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; - // set the entry mode - command(LCD_ENTRYMODESET | _displaymode); - -} - -/********** high level commands, for the user! */ -void LiquidCrystal::clear() -{ - command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::home() -{ - command(LCD_RETURNHOME); // set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::setCursor(uint8_t col, uint8_t row) -{ - int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; - if ( row >= _numlines ) { - row = _numlines-1; // we count rows starting w/0 - } - - command(LCD_SETDDRAMADDR | (col + row_offsets[row])); -} - -// Turn the display on/off (quickly) -void LiquidCrystal::noDisplay() { - _displaycontrol &= ~LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::display() { - _displaycontrol |= LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turns the underline cursor on/off -void LiquidCrystal::noCursor() { - _displaycontrol &= ~LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::cursor() { - _displaycontrol |= LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turn on and off the blinking cursor -void LiquidCrystal::noBlink() { - _displaycontrol &= ~LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::blink() { - _displaycontrol |= LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// These commands scroll the display without changing the RAM -void LiquidCrystal::scrollDisplayLeft(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); -} -void LiquidCrystal::scrollDisplayRight(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); -} - -// This is for text that flows Left to Right -void LiquidCrystal::leftToRight(void) { - _displaymode |= LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This is for text that flows Right to Left -void LiquidCrystal::rightToLeft(void) { - _displaymode &= ~LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'right justify' text from the cursor -void LiquidCrystal::autoscroll(void) { - _displaymode |= LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'left justify' text from the cursor -void LiquidCrystal::noAutoscroll(void) { - _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// Allows us to fill the first 8 CGRAM locations -// with custom characters -void LiquidCrystal::createChar(uint8_t location, uint8_t charmap[]) { - location &= 0x7; // we only have 8 locations 0-7 - command(LCD_SETCGRAMADDR | (location << 3)); - for (int i=0; i<8; i++) { - write(charmap[i]); - } -} - -/*********** mid level commands, for sending data/cmds */ - -inline void LiquidCrystal::command(uint8_t value) { - send(value, LOW); -} - -inline size_t LiquidCrystal::write(uint8_t value) { - send(value, HIGH); - return 1; // assume sucess -} - -/************ low level data pushing commands **********/ - -// write either command or data, with automatic 4/8-bit selection -void LiquidCrystal::send(uint8_t value, uint8_t mode) { - digitalWrite(_rs_pin, mode); - - // if there is a RW pin indicated, set it low to Write - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - if (_displayfunction & LCD_8BITMODE) { - write8bits(value); - } else { - write4bits(value>>4); - write4bits(value); - } -} - -void LiquidCrystal::pulseEnable(void) { - digitalWrite(_enable_pin, LOW); - delayMicroseconds(1); - digitalWrite(_enable_pin, HIGH); - delayMicroseconds(1); // enable pulse must be >450ns - digitalWrite(_enable_pin, LOW); - delayMicroseconds(100); // commands need > 37us to settle -} - -void LiquidCrystal::write4bits(uint8_t value) { - for (int i = 0; i < 4; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} - -void LiquidCrystal::write8bits(uint8_t value) { - for (int i = 0; i < 8; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h deleted file mode 100644 index 24ec5afdf5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/LiquidCrystal.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef LiquidCrystal_h -#define LiquidCrystal_h - -#include -#include "Print.h" - -// commands -#define LCD_CLEARDISPLAY 0x01 -#define LCD_RETURNHOME 0x02 -#define LCD_ENTRYMODESET 0x04 -#define LCD_DISPLAYCONTROL 0x08 -#define LCD_CURSORSHIFT 0x10 -#define LCD_FUNCTIONSET 0x20 -#define LCD_SETCGRAMADDR 0x40 -#define LCD_SETDDRAMADDR 0x80 - -// flags for display entry mode -#define LCD_ENTRYRIGHT 0x00 -#define LCD_ENTRYLEFT 0x02 -#define LCD_ENTRYSHIFTINCREMENT 0x01 -#define LCD_ENTRYSHIFTDECREMENT 0x00 - -// flags for display on/off control -#define LCD_DISPLAYON 0x04 -#define LCD_DISPLAYOFF 0x00 -#define LCD_CURSORON 0x02 -#define LCD_CURSOROFF 0x00 -#define LCD_BLINKON 0x01 -#define LCD_BLINKOFF 0x00 - -// flags for display/cursor shift -#define LCD_DISPLAYMOVE 0x08 -#define LCD_CURSORMOVE 0x00 -#define LCD_MOVERIGHT 0x04 -#define LCD_MOVELEFT 0x00 - -// flags for function set -#define LCD_8BITMODE 0x10 -#define LCD_4BITMODE 0x00 -#define LCD_2LINE 0x08 -#define LCD_1LINE 0x00 -#define LCD_5x10DOTS 0x04 -#define LCD_5x8DOTS 0x00 - -class LiquidCrystal : public Print { -public: - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - - void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - - void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); - - void clear(); - void home(); - - void noDisplay(); - void display(); - void noBlink(); - void blink(); - void noCursor(); - void cursor(); - void scrollDisplayLeft(); - void scrollDisplayRight(); - void leftToRight(); - void rightToLeft(); - void autoscroll(); - void noAutoscroll(); - - void createChar(uint8_t, uint8_t[]); - void setCursor(uint8_t, uint8_t); - virtual size_t write(uint8_t); - void command(uint8_t); - - using Print::write; -private: - void send(uint8_t, uint8_t); - void write4bits(uint8_t); - void write8bits(uint8_t); - void pulseEnable(); - - uint8_t _rs_pin; // LOW: command. HIGH: character. - uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. - uint8_t _enable_pin; // activated by a HIGH pulse. - uint8_t _data_pins[8]; - - uint8_t _displayfunction; - uint8_t _displaycontrol; - uint8_t _displaymode; - - uint8_t _initialized; - - uint8_t _numlines,_currline; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt b/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt deleted file mode 100644 index 132845cb65..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/LiquidCrystal/keywords.txt +++ /dev/null @@ -1,37 +0,0 @@ -####################################### -# Syntax Coloring Map For LiquidCrystal -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -LiquidCrystal KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -clear KEYWORD2 -home KEYWORD2 -print KEYWORD2 -setCursor KEYWORD2 -cursor KEYWORD2 -noCursor KEYWORD2 -blink KEYWORD2 -noBlink KEYWORD2 -display KEYWORD2 -noDisplay KEYWORD2 -autoscroll KEYWORD2 -noAutoscroll KEYWORD2 -leftToRight KEYWORD2 -rightToLeft KEYWORD2 -scrollDisplayLeft KEYWORD2 -scrollDisplayRight KEYWORD2 -createChar KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp deleted file mode 100644 index 5e48073f73..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#include "pins_arduino.h" -#include "SPI.h" - -SPIClass SPI; - -void SPIClass::begin() { - - // Set SS to high so a connected chip will be "deselected" by default - digitalWrite(SS, HIGH); - - // When the SS pin is set as OUTPUT, it can be used as - // a general purpose output port (it doesn't influence - // SPI operations). - pinMode(SS, OUTPUT); - - // Warning: if the SS pin ever becomes a LOW INPUT then SPI - // automatically switches to Slave, so the data direction of - // the SS pin MUST be kept as OUTPUT. - SPCR |= _BV(MSTR); - SPCR |= _BV(SPE); - - // Set direction register for SCK and MOSI pin. - // MISO pin automatically overrides to INPUT. - // By doing this AFTER enabling SPI, we avoid accidentally - // clocking in a single bit since the lines go directly - // from "input" to SPI control. - // http://code.google.com/p/arduino/issues/detail?id=888 - pinMode(SCK, OUTPUT); - pinMode(MOSI, OUTPUT); -} - - -void SPIClass::end() { - SPCR &= ~_BV(SPE); -} - -void SPIClass::setBitOrder(uint8_t bitOrder) -{ - if(bitOrder == LSBFIRST) { - SPCR |= _BV(DORD); - } else { - SPCR &= ~(_BV(DORD)); - } -} - -void SPIClass::setDataMode(uint8_t mode) -{ - SPCR = (SPCR & ~SPI_MODE_MASK) | mode; -} - -void SPIClass::setClockDivider(uint8_t rate) -{ - SPCR = (SPCR & ~SPI_CLOCK_MASK) | (rate & SPI_CLOCK_MASK); - SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((rate >> 2) & SPI_2XCLOCK_MASK); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h deleted file mode 100644 index f647d5c891..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/SPI.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#ifndef _SPI_H_INCLUDED -#define _SPI_H_INCLUDED - -#include -#include -#include - -#define SPI_CLOCK_DIV4 0x00 -#define SPI_CLOCK_DIV16 0x01 -#define SPI_CLOCK_DIV64 0x02 -#define SPI_CLOCK_DIV128 0x03 -#define SPI_CLOCK_DIV2 0x04 -#define SPI_CLOCK_DIV8 0x05 -#define SPI_CLOCK_DIV32 0x06 -//#define SPI_CLOCK_DIV64 0x07 - -#define SPI_MODE0 0x00 -#define SPI_MODE1 0x04 -#define SPI_MODE2 0x08 -#define SPI_MODE3 0x0C - -#define SPI_MODE_MASK 0x0C // CPOL = bit 3, CPHA = bit 2 on SPCR -#define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR -#define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR - -class SPIClass { -public: - inline static byte transfer(byte _data); - - // SPI Configuration methods - - inline static void attachInterrupt(); - inline static void detachInterrupt(); // Default - - static void begin(); // Default - static void end(); - - static void setBitOrder(uint8_t); - static void setDataMode(uint8_t); - static void setClockDivider(uint8_t); -}; - -extern SPIClass SPI; - -byte SPIClass::transfer(byte _data) { - SPDR = _data; - while (!(SPSR & _BV(SPIF))) - ; - return SPDR; -} - -void SPIClass::attachInterrupt() { - SPCR |= _BV(SPIE); -} - -void SPIClass::detachInterrupt() { - SPCR &= ~_BV(SPIE); -} - -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt b/ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt deleted file mode 100644 index fa7616581a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/SPI/keywords.txt +++ /dev/null @@ -1,36 +0,0 @@ -####################################### -# Syntax Coloring Map SPI -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -SPI KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### -begin KEYWORD2 -end KEYWORD2 -transfer KEYWORD2 -setBitOrder KEYWORD2 -setDataMode KEYWORD2 -setClockDivider KEYWORD2 - - -####################################### -# Constants (LITERAL1) -####################################### -SPI_CLOCK_DIV4 LITERAL1 -SPI_CLOCK_DIV16 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_CLOCK_DIV128 LITERAL1 -SPI_CLOCK_DIV2 LITERAL1 -SPI_CLOCK_DIV8 LITERAL1 -SPI_CLOCK_DIV32 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_MODE0 LITERAL1 -SPI_MODE1 LITERAL1 -SPI_MODE2 LITERAL1 -SPI_MODE3 LITERAL1 \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog deleted file mode 100644 index 9bf4b34edb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/ChangeLog +++ /dev/null @@ -1,162 +0,0 @@ - -u8glib ChangeLog - -2012-01-01 v0.01 Oliver Kraus - * first beta release for Arduino IDE with simple SSD1325 support -2012-01-04 v0.02 Oliver Kraus - * support for some more display types -2012-01-07 v0.03 Oliver Kraus - * fixed some bugs, added more examples -2012-01-07 v0.04 Oliver Kraus - * single font file -2012-01-08 v0.05 Oliver Kraus - * Cleanup - * More examples - * SSD1325 graylevel support -2012-01-15 v0.06 Oliver Kraus - * LM6063 support -2012-01-17 v0.07 Oliver Kraus - * LM6063 support (update) -2012-01-19 v0.08 Oliver Kraus - * ST7920 beta device -2012-01-21 v0.09 Oliver Kraus - * ST7920 fixed (192x32) - * fixed bug in com layer if pins are none - * str reference position -2012-01-22 v0.10 Oliver Kraus - * Experimental LM6059 -2012-01-24 v0.11 Oliver Kraus - * new st7920 memory layout for 128x64 lcd - * experimental st7920 SPI -2012-01-25 v0.12 Oliver Kraus - * fixed st7920 memory layout for 128x64 lcd - * ST7920 SPI performance improvement -2012-01-27 v0.13 Oliver Kraus - * LM6059 (Adafruit Display) fixed -2012-02-01 v0.14 Oliver Kraus - * undoRotation() - * setRot..() can be used without restrictions - * Class U8GLIB derived from Print class. New function "print" - * Fixed memory index bug in the page management procedures -2012-02-12 v1.00 Oliver Kraus - * XBM support - * F() macro support - * str-rotation commands support ref-height and ref-position -2012-03-17 v1.02 Oliver Kraus - * U8GLIB_ST7687_C144MVGD spi experimental - * U8GLIB_LC7981_160X80 8bit - * Intersection test for frame and box procedures - * 4L double memory architecture - * setContrast infrastructure implemented, but not available for all devices - * drawCircle, drawDisc - * Bugfix for drawStr270 - * New examples: Chess (ported from dogm128 lib) and GraphicsTest -2012-03-31 v1.03 Oliver Kraus - * experimental parallel mode atmega - * more unifont code pages - * double memory, for NHD OLED and DOGXL160 - * "Menu" example - * drawLine -2012-04-13 v1.04 Oliver Kraus - * Adjust U8grelease: Same version number with AVR and Arduino variant -2012-06-10 v1.05 Oliver Kraus - * m2icon font - * experimental lc7981_240x64 device - * experimental ssd1306 - * experimental ssd1322 - * Hardware state backup/restore procedure -2012-06-15 v1.06 Oliver Kraus - * SBN1661 (SED1520?) support - * SSD1306 support - * U8G_PROGMEM bugfix -2012-07-04 v1.07 Oliver Kraus - * Added Makefiles for AVR release (issue 77) - * Fixed examples for Arduino Environment (issue 78) -2012-10-02 v1.08 Oliver Kraus - * Improved delay calculation for strobe pulse (issue 20) - * Support Chipkit (issue 39) - * Improved speed for ST7920 parallel mode (issue 79) - * Overall speed optimization (new page intersection algorithm) - * Support for Displays Newhaven NHD-C12864, CrystalFontz GFAG20232, Seeedstudio 96x96 OLED - * Added SPI support for ST7920 with plain AVR (issue 85) - * Add more LC7981 devices -2012-12-23 v1.09 Oliver Kraus - * Support for Displaytech 64128n - * Support for MINI12864 - * HW SPI for ST7920 - * Add delay after sending a byte with (ST7920 com) - * Support ATTiny - * Support I2C for SSD1306 - * bdf2u8g, Windows executable released - * LC7981 320x64 - * Scalue up: u8g::setScale2x2 - * Added more bitmap fonts - * u8g::drawRBox(), u8g::drawRFrame() - * Support for CFAG20232 (st7920_202x32) - * Fixed ST7920 SW SPI for ChipKit - * Support for tls8204 -2013-02-02 v1.10 Oliver Kraus - * Support for SSD1309 - * Support for NHD-C12832A1Z - * Bugfix: Fixed reset controll in parallel modes - * Bugfix: Fixed calculation of cursor position - * Bugfix: ST7920 parallel mode -2013-03-2 v1.11 Oliver Kraus - * Support for T6963 - * Support for Arduino Due - * Sleep Mode - * 4x mode for ST7920 - * New C++ interface for ST7920 -2013-03-24 v1.12 Oliver Kraus - * Added touch panel examples -2013-06-30 v1.13 Oliver Kraus - * Fixed missing "Arduino.h" in u8g_delay.c - * Disable interrupt for port/pin access (AVR), issue 19 - * Support for HT1632: U8GLIB_HT1632_24X16 u8g(wr, data, cs), issue 165 - * Support for SSD1351 OLED, issue 168 - * Cleaned up several compiler warnings - * Fixed conflict with scheduler (Arduino Due), issue 155 - * HW SPI for Arduino Due, issue 180 - * Performance improvement for ST7920, issue 177 - * Added ":" to the "n"umeric variant of the fonts, issue 166 - * Added additional argument u8g_InitCom(). Use U8G_SPI_CLK_CYCLE_NONE by default. - * Added double buffer option for many ST7565 devices - * Tested with Arduino 1.0.5 -2013-10-03 v1.14 Oliver Kraus - * Support for ARM controller - * Support for the A2 micro printer (issue 191) - * Ellipse drawing primitive (issue 187) - * Added software reset for UC1701 - * Fixed compiler warning (issue 196) - * Support for Freetronics SSD1351 OLED (issue 195) - * Several other fixes and improvements -2014-01-25 v1.15 Oliver Kraus - * Fixed a bug with the rotation procs: Occupied too much flash ROM (issue 219) - * Fixed issue with more than one SPI controller (SW SPI, issue 227) - * Added "drawTriangle" (issue 226) - * Added support for UC1608 (issue 214) - * Added ProFont family of fonts (issue 234) - * SW SPI support for Teensy 3 (issue 230) - * Removed Arduino/AVR specific files from ARM port (issue 209) -2014-07-05 v1.16 Oliver Kraus - * Added support for LD7032 60x32 OLED - * Added support for SSD1306 OLED, which does not send I2C ACK (issue 239) - * Added support for SH1106 128x64 OLED - * Added support for T6963 128x128 displays - * Added U8GLIB_SSD1306_ADAFRUIT_128X64 constructor -2014-12-21 v1.17 Oliver Kraus - * Added U8GLIB_UC1611_DOGM240 constructor (Issue 284) - * Added U8GLIB_UC1611_DOGXL240 constructor - * Added support for UC1608 controller (Issue 300) - * Added U8GLIB_SSD1306_ADAFRUIT_128X64 for Adafruit OLEDs (Issue 289) - * Bufix in the sleep on/off sequence (CS has not been releases, issue 298) - * helvB and helvR number only fonts (Issue 271) - * 400KHz option for I2C with U8G_I2C_OPT_FAST available for Due and Uno (Issue 303) - * I2C support for Arduino Due. 100KHz/400KHz, TWI & TWI1, ACK will be ignored (issue 285) - * Unifont update (Issue 297) - - - - - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT deleted file mode 100644 index efcedd03b8..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/INSTALL.TXT +++ /dev/null @@ -1,26 +0,0 @@ - -U8GLIB -http://code.google.com/p/u8glib/ - -Install instructions for the Arduino environment. - - 1. Start Arduino IDE - 2. In the Arduino IDE, import the library from the "Add Library" Menu. - -Alternative install instructions for the Arduino environment. - - 1. Unzip u8glib_arduino_vX.XX.zip into the "libraries" folder of the - Arduino install directory - 2. Start Arduino IDE - -Install instructions for the Chipkit (Arduino) environment. - - 1. cd /libraries - 2. unzip u8glib_arduino_vX.XX.zip - 3. cd ///hardware/pic32/libraries - 4. again: u8glib_arduino_vX.XX.zip - 5. Open hardware/pic32/cores/pic32/Print.h - Remove line - #define BYTE 0 - from the file, use PRINT_BYTE instead of BYTE. - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp deleted file mode 100644 index 542fc673ad..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - - U8glib.cpp - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "U8glib.h" - - - -uint8_t U8GLIB::initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitSPI(&u8g, dev, sck, mosi, cs, a0, reset); -} - -uint8_t U8GLIB::initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitHWSPI(&u8g, dev, cs, a0, reset); -} - -uint8_t U8GLIB::initI2C(u8g_dev_t *dev, uint8_t options) -{ - prepare(); - return u8g_InitI2C(&u8g, dev, options); -} - -uint8_t U8GLIB::init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); -} - -uint8_t U8GLIB::init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8BitFixedPort(&u8g, dev, en, cs, di, rw, reset); -} - -uint8_t U8GLIB::initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - prepare(); - return u8g_InitRW8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h deleted file mode 100644 index bff8268dc4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/U8glib.h +++ /dev/null @@ -1,1268 +0,0 @@ -/* - - U8glib.h - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _CPP_U8GLIB -#define _CPP_U8GLIB - -#include -#include "utility/u8g.h" - - -class U8GLIB : public Print -{ - private: - u8g_t u8g; - u8g_uint_t tx, ty; // current position for the Print base class procedures - uint8_t is_begin; - - void prepare(void) { tx = 0; ty = 0; is_begin = 0; } - void cbegin(void) { if ( is_begin == 0 ) { is_begin = 1; u8g_Begin(&u8g); } } - uint8_t initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initI2C(u8g_dev_t *dev, uint8_t options); - protected: - uint8_t init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); - private: - uint8_t init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE); - uint8_t initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); - public: - - /* constructor */ - U8GLIB(void) - { } - U8GLIB(u8g_dev_t *dev) - { prepare(); u8g_Init(&u8g, dev); } - U8GLIB(u8g_dev_t *dev, u8g_com_fnptr com_fn) - { prepare(); u8g_InitComFn(&u8g, dev, com_fn); } - U8GLIB(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { initSPI(dev, sck, mosi, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) - { initHWSPI(dev, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t options) - { initI2C(dev, options); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) - { init8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) - { initRW8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); } - - uint8_t begin(void) { is_begin = 1; return u8g_Begin(&u8g); } - - void setPrintPos(u8g_uint_t x, u8g_uint_t y) { tx = x; ty = y; } - u8g_t *getU8g(void) { return &u8g; } - - - /* implementation of the write interface to the print class */ -#if defined(ARDUINO) && ARDUINO >= 100 - size_t write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); return 1;} -#else - void write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); } -#endif - - /* screen rotation */ - void undoRotation(void) { u8g_UndoRotation(&u8g); } - void setRot90(void) { u8g_SetRot90(&u8g); } - void setRot180(void) { u8g_SetRot180(&u8g); } - void setRot270(void) { u8g_SetRot270(&u8g); } - - /* screen scaling */ - void undoScale(void) { u8g_UndoScale(&u8g); } - void setScale2x2(void) { u8g_SetScale2x2(&u8g); } - - /* picture loop */ - void firstPage(void) { cbegin(); u8g_FirstPage(&u8g); } - uint8_t nextPage(void) { return u8g_NextPage(&u8g); } - - /* system commands */ - uint8_t setContrast(uint8_t contrast) { cbegin(); return u8g_SetContrast(&u8g, contrast); } - void sleepOn(void) { u8g_SleepOn(&u8g); } - void sleepOff(void) { u8g_SleepOff(&u8g); } - - /* graphic primitives */ - void setColorEntry(uint8_t color_index, uint8_t r, uint8_t g, uint8_t b) { u8g_SetColorEntry(&u8g, color_index, r, g, b); } - void setHiColor(uint16_t rgb) { u8g_SetHiColor(&u8g, rgb); } - void setHiColorByRGB(uint8_t r, uint8_t g, uint8_t b) { u8g_SetHiColorByRGB(&u8g, r, g, b); } - void setRGB(uint8_t r, uint8_t g, uint8_t b) { u8g_SetRGB(&u8g, r, g, b); } - - void setColorIndex(uint8_t color_index) { u8g_SetColorIndex(&u8g, color_index); } - uint8_t getColorIndex(void) { return u8g_GetColorIndex(&u8g); } - - void setDefaultForegroundColor(void) { u8g_SetDefaultForegroundColor(&u8g); } - void setDefaultBackgroundColor(void) { u8g_SetDefaultBackgroundColor(&u8g); } - void setDefaultMidColor(void) { u8g_SetDefaultMidColor(&u8g); } - - u8g_uint_t getWidth(void) { return u8g_GetWidth(&u8g); } - u8g_uint_t getHeight(void) { return u8g_GetHeight(&u8g); } - uint8_t getMode(void) { return u8g_GetMode(&u8g); } - - void drawPixel(u8g_uint_t x, u8g_uint_t y) { return u8g_DrawPixel(&u8g, x, y); } - void drawHLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) { u8g_DrawHLine(&u8g, x, y, w); } - void drawVLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) { u8g_DrawVLine(&u8g, x, y, h); } - void drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) { u8g_DrawLine(&u8g, x1, y1, x2, y2); } - - void drawFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawFrame(&u8g, x, y, w, h); } - void drawRFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRFrame(&u8g, x, y, w, h,r); } - void drawBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawBox(&u8g, x, y, w, h); } - void drawRBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRBox(&u8g, x, y, w, h,r); } - - void drawCircle(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawCircle(&u8g, x0, y0, rad, opt); } - void drawDisc(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawDisc(&u8g, x0, y0, rad, opt); } - - void drawEllipse(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawEllipse(&u8g, x0, y0, rx, ry, opt); } - void drawFilledEllipse(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawFilledEllipse(&u8g, x0, y0, rx, ry, opt); } - - void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) - { u8g_DrawTriangle(&u8g, x0, y0, x1, y1, x2, y2); } - - - - /* bitmap handling */ - void drawBitmap(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawBitmap(&u8g, x, y, cnt, h, bitmap); } - void drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawBitmapP(&u8g, x, y, cnt, h, bitmap); } - - void drawXBM(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawXBM(&u8g, x, y, w, h, bitmap); } - void drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawXBMP(&u8g, x, y, w, h, bitmap); } - - - /* font handling */ - void setFont(const u8g_fntpgm_uint8_t *font) {u8g_SetFont(&u8g, font); } - int8_t getFontAscent(void) { return u8g_GetFontAscent(&u8g); } - int8_t getFontDescent(void) { return u8g_GetFontDescent(&u8g); } - int8_t getFontLineSpacing(void) { return u8g_GetFontLineSpacing(&u8g); } - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr90(&u8g, x, y, s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr180(&u8g, x, y, s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr270(&u8g, x, y, s); } - u8g_uint_t drawStrP(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStrP(&u8g, x, y, s); } - u8g_uint_t drawStr90P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr90P(&u8g, x, y, s); } - u8g_uint_t drawStr180P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr180P(&u8g, x, y, s); } - u8g_uint_t drawStr270P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr270P(&u8g, x, y, s); } - - void setFontPosBaseline(void) { u8g_SetFontPosBaseline(&u8g); } - void setFontPosBottom(void) { u8g_SetFontPosBottom(&u8g); } - void setFontPosCenter(void) { u8g_SetFontPosCenter(&u8g); } - void setFontPosTop(void) { u8g_SetFontPosTop(&u8g); } - - void setFontRefHeightText(void) { u8g_SetFontRefHeightText(&u8g); } - void setFontRefHeightExtendedText(void) { u8g_SetFontRefHeightExtendedText(&u8g); } - void setFontRefHeightAll(void) { u8g_SetFontRefHeightAll(&u8g); } - void setFontLineSpacingFactor(uint8_t factor) { u8g_SetFontLineSpacingFactor(&u8g, factor); } - - - u8g_uint_t getStrPixelWidth(const char *s) { return u8g_GetStrPixelWidth(&u8g, s); } - u8g_uint_t getStrPixelWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrPixelWidthP(&u8g, s); } - u8g_uint_t getStrWidth(const char *s) { return u8g_GetStrWidth(&u8g, s); } - u8g_uint_t getStrWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrWidthP(&u8g, s); } - - void setHardwareBackup(u8g_state_cb backup_cb) { u8g_SetHardwareBackup(&u8g, backup_cb); } - -#if defined(ARDUINO) && ARDUINO >= 100 - // support for the F() macro - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr90P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr180P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr270P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - - u8g_uint_t getStrPixelWidth(const __FlashStringHelper *s) { return u8g_GetStrPixelWidthP(&u8g, (u8g_pgm_uint8_t *)s); } - u8g_uint_t getStrWidth(const __FlashStringHelper *s) { return u8g_GetStrWidthP(&u8g, (u8g_pgm_uint8_t *)s); } -#endif - - /* cursor handling */ - void setCursorFont(const u8g_pgm_uint8_t *cursor_font) { u8g_SetCursorFont(&u8g, cursor_font); } - void setCursorStyle(uint8_t encoding) { u8g_SetCursorStyle(&u8g, encoding); } - void setCursorPos(u8g_uint_t cursor_x, u8g_uint_t cursor_y) { u8g_SetCursorPos(&u8g, cursor_x, cursor_y); } - void setCursorColor(uint8_t fg, uint8_t bg) { u8g_SetCursorColor(&u8g, fg, bg); } - void enableCursor(void) { u8g_EnableCursor(&u8g); } - void disableCursor(void) { u8g_DisableCursor(&u8g); } - void drawCursor(void) { u8g_DrawCursor(&u8g); } - - /* virtual screen */ - - void setVirtualScreenDimension(u8g_uint_t width, u8g_uint_t height) { u8g_SetVirtualScreenDimension(&u8g, width, height); } - uint8_t addToVirtualScreen(u8g_uint_t x, u8g_uint_t y, U8GLIB &child_u8g) { return u8g_AddToVirtualScreen(&u8g, x, y, &child_u8g.u8g); } - -}; - - -class U8GLIB_DOGS102 : public U8GLIB -{ - public: - U8GLIB_DOGS102(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGS102(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGS102_2X : public U8GLIB -{ - public: - U8GLIB_DOGS102_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGS102_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_MINI12864 : public U8GLIB -{ - public: - U8GLIB_MINI12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_MINI12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_MINI12864_2X : public U8GLIB -{ - public: - U8GLIB_MINI12864_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_MINI12864_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGM132 : public U8GLIB -{ - public: - U8GLIB_DOGM132(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM132(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12832 : public U8GLIB -{ - public: - U8GLIB_NHD_C12832(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD_C12832_USART : public U8GLIB -{ - public: - U8GLIB_NHD_C12832_USART(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_usart_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGM128 : public U8GLIB -{ - public: - U8GLIB_DOGM128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_hw_spi, cs, a0, reset) - { } - U8GLIB_DOGM128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_DOGM128_2X : public U8GLIB -{ - public: - U8GLIB_DOGM128_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM128_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_DOGM128_2X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LM6059 : public U8GLIB -{ - public: - U8GLIB_LM6059(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6059(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6059_2X : public U8GLIB -{ - public: - U8GLIB_LM6059_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6059_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6063 : public U8GLIB -{ - public: - U8GLIB_LM6063(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6063(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6063_2X : public U8GLIB -{ - public: - U8GLIB_LM6063_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6063_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_64128N : public U8GLIB -{ - public: - U8GLIB_64128N(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_64128N(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_hw_spi, cs, a0, reset) - { } - U8GLIB_64128N(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_64128N_2X : public U8GLIB -{ - public: - U8GLIB_64128N_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_64128N_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_64128N_2X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD_C12864 : public U8GLIB -{ - public: - U8GLIB_NHD_C12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12864_2X : public U8GLIB -{ - public: - U8GLIB_NHD_C12864_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12864_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1601_C128032 : public U8GLIB -{ - public: - U8GLIB_UC1601_C128032(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1601_C128032(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1601_C128032_2X : public U8GLIB -{ - public: - U8GLIB_UC1601_C128032_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1601_C128032_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X64 : public U8GLIB -{ - public: - U8GLIB_UC1608_240X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X64_2X : public U8GLIB -{ - public: - U8GLIB_UC1608_240X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X128 : public U8GLIB -{ - public: - U8GLIB_UC1608_240X128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X128_2X : public U8GLIB -{ - public: - U8GLIB_UC1608_240X128_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X128_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_2x_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_UC1611_DOGM240 : public U8GLIB -{ - public: - U8GLIB_UC1611_DOGM240(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_i2c, options) - {} - U8GLIB_UC1611_DOGM240(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1611_DOGM240(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1611_DOGXL240 : public U8GLIB -{ - public: - U8GLIB_UC1611_DOGXL240(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_i2c, options) - {} - U8GLIB_UC1611_DOGXL240(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1611_DOGXL240(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_ST7920_128X64 : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } - // U8GLIB_ST7920_128X64(uint8_t cs) - // : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, cs, U8G_PIN_NONE, U8G_PIN_NONE) - // { } -}; - -class U8GLIB_ST7920_128X64_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_CUSTOM_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_CUSTOM_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_custom, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_CUSTOM_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_CUSTOM_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_custom, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_ST7920_192X32 : public U8GLIB // OBSOLETE, use U8GLIB_ST7920_192X32_1X instead -{ - public: - U8GLIB_ST7920_192X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_192X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_192X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_ST7920_202X32 : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_202X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_202X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_LC7981_160X80 : public U8GLIB -{ - public: - U8GLIB_LC7981_160X80(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_160x80_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X128 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -// 16 bit mode required: Remove comment from "#define U8G_16BIT 1" in utility/utility/u8g.h -class U8GLIB_LC7981_320X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_320X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_320x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - - - -class U8GLIB_DOGXL160_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_NHD27OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD31OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_GR(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_SSD1306_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_i2c, options) - { } -}; - -class U8GLIB_SSD1306_ADAFRUIT_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_i2c, options) - { } -}; - - -class U8GLIB_SSD1306_128X64_2X : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_i2c, options) - { } -}; - -class U8GLIB_SH1106_128X64 : public U8GLIB -{ - public: - U8GLIB_SH1106_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_i2c, options) - { } -}; - -class U8GLIB_SH1106_128X64_2X : public U8GLIB -{ - public: - U8GLIB_SH1106_128X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_i2c, options) - { } -}; - -class U8GLIB_SSD1309_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1309_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_i2c, options) - { } -}; - -class U8GLIB_SSD1306_128X32 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_i2c, options) - { } -}; - -class U8GLIB_SSD1306_128X32_2X : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X32_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_i2c, options) - { } -}; - - -class U8GLIB_NHD27OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1327_96X96_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_i2c, options) - { } -}; - -class U8GLIB_SSD1327_96X96_2X_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_i2c, options) - { } -}; - - -class U8GLIB_LD7032_60x32 : public U8GLIB -{ - public: - U8GLIB_LD7032_60x32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LD7032_60x32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_hw_spi, cs, a0, reset) - { } - U8GLIB_LD7032_60x32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - - - -class U8GLIB_HT1632_24X16 : public U8GLIB -{ - public: - U8GLIB_HT1632_24X16(uint8_t wr, uint8_t data, uint8_t cs) - : U8GLIB(&u8g_dev_ht1632_24x16, wr, data, cs, U8G_PIN_NONE, U8G_PIN_NONE) - { } -}; - - - -class U8GLIB_PCF8812 : public U8GLIB -{ - public: - U8GLIB_PCF8812(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcf8812_96x65_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_PCF8812(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcf8812_96x65_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_PCD8544 : public U8GLIB -{ - public: - U8GLIB_PCD8544(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcd8544_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_PCD8544(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcd8544_84x48_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_TLS8204_84X48 : public U8GLIB -{ - public: - U8GLIB_TLS8204_84X48(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_tls8204_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } -}; - -class U8GLIB_KS0108_128 : public U8GLIB -{ - public: - U8GLIB_KS0108_128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_SBN1661_122X32 : public U8GLIB -{ - public: - U8GLIB_SBN1661_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sbn1661_122x32, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_T6963_240X128 : public U8GLIB -{ - public: - U8GLIB_T6963_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_128X128 : public U8GLIB -{ - public: - U8GLIB_T6963_128X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_128x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_240X64 : public U8GLIB -{ - public: - U8GLIB_T6963_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_128X64 : public U8GLIB -{ - public: - U8GLIB_T6963_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - - -class U8GLIB_ST7687_C144MVGD: public U8GLIB -{ - public: - U8GLIB_ST7687_C144MVGD(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7687_c144mvgd_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7687_C144MVGD(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs, uint8_t a0, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs, U8G_PIN_NONE, a0, rw, reset) - { } -}; - -class U8GLIB_ILI9325D_320x240 : public U8GLIB -{ - public: - /* - U8GLIB_ILI9325D_320x240(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ili9325d_320x240_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } - */ - U8GLIB_ILI9325D_320x240( uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - { init8BitFixedPort(&u8g_dev_ili9325d_320x240_8bit, en, cs1, di, rw, reset); } -}; - - - -class U8GLIB_SSD1351_128X128_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_4X_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_4X_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_4X_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_4X_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_4X_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_4X_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_IDX : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_IDX(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_idx_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_IDX(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_idx_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_4X_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_4X_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_4X_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_4X_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_4X_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_4X_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_FLIPDISC_2X7 : public U8GLIB -{ - public: - U8GLIB_FLIPDISC_2X7(void) : U8GLIB(&u8g_dev_flipdisc_2x7) - { } -}; - -class U8GLIB_VS : public U8GLIB -{ - public: - U8GLIB_VS(void) : U8GLIB(&u8g_dev_vs) - { } -}; - - -#endif /* _CPP_U8GLIB */ diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/A2Printer/A2Printer.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/A2Printer/A2Printer.ino deleted file mode 100644 index d40bd791bb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/A2Printer/A2Printer.ino +++ /dev/null @@ -1,131 +0,0 @@ -/* - - A2Printer.pde - - Special example code for the A2 Mciro Printer (https://www.sparkfun.com/products/10438) - - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// use this serial interface -#define PRINTER_SERIAL Serial -// #define PRINTER_SERIAL Serial1 - - -uint8_t u8g_com_uart(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - switch(msg) { - case U8G_COM_MSG_WRITE_BYTE: - PRINTER_SERIAL.write(arg_val); - break; - } - return 1; -} - -// setup u8g object, please remove comment from one of the following constructor calls - -// half resolution -//U8GLIB u8g(&u8g_dev_a2_micro_printer_192x120_ds, (u8g_com_fnptr)u8g_com_uart); - -// full resolution, requires to uncomment U8G_16BIT in u8g.h -//U8GLIB u8g(&u8g_dev_a2_micro_printer_384x240, (u8g_com_fnptr)u8g_com_uart); - -// half resolution, extra log, requires to uncomment U8G_16BIT in u8g.h -//U8GLIB u8g(&u8g_dev_a2_micro_printer_192x360_ds, (u8g_com_fnptr)u8g_com_uart); -U8GLIB u8g(&u8g_dev_a2_micro_printer_192x720_ds, (u8g_com_fnptr)u8g_com_uart); - - - -void drawLogo(uint8_t d) { - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(0+d, 30+d, "U"); - u8g.setFont(u8g_font_gdr30n); - u8g.drawStr90(23+d,10+d,"8"); - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(53+d,30+d,"g"); - - u8g.drawHLine(2+d, 35+d, 47); - u8g.drawVLine(45+d, 32+d, 12); -} - -void drawURL(void) { - u8g.setFont(u8g_font_4x6); - if ( u8g.getHeight() < 59 ) { - u8g.drawStr(53,9,"code.google.com"); - u8g.drawStr(77,18,"/p/u8glib"); - } - else { - u8g.drawStr(1,54,"code.google.com/p/u8glib"); - } -} - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - - drawLogo(0); - drawURL(); - u8g.drawFrame(0,0,u8g.getWidth(), u8g.getHeight()); - - u8g.setFont(u8g_font_helvR24r); - u8g.setPrintPos(0, 100); - u8g.print(u8g.getWidth(), DEC); - u8g.print("x"); - u8g.print(u8g.getHeight(), DEC); -} - -void setup(void) { - PRINTER_SERIAL.begin(19200); - - // flip screen, if required - // u8g.setRot180(); - - // assign default color value - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - - // picture loop: This will print the picture - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // send manual CR to the printer - PRINTER_SERIAL.write('\n'); - - // reprint the picture after 10 seconds - delay(10000); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.ino deleted file mode 100644 index e9a30e2d15..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Bitmap/Bitmap.ino +++ /dev/null @@ -1,166 +0,0 @@ -/* - - Bitmap.pde - - Show simple bitmap - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -const uint8_t rook_bitmap[] PROGMEM = { - 0x00, // 00000000 - 0x55, // 01010101 - 0x7f, // 01111111 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x7f // 01111111 -}; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawBitmapP( 0, 0, 1, 8, rook_bitmap); -} - -void setup(void) { -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(1000); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.ino deleted file mode 100644 index eeebe4ac2e..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Chess/Chess.ino +++ /dev/null @@ -1,216 +0,0 @@ -/* - - Chess.pde - - Little Rook Chess - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -// DOGS102 shield configuration values -uint8_t uiKeyPrev = 2; -uint8_t uiKeyNext = 4; -uint8_t uiKeySelect = 5; -uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -//uint8_t uiKeyPrev = 7; -//uint8_t uiKeyNext = 3; -//uint8_t uiKeySelect = 2; -//uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = CHESS_KEY_NONE; -uint8_t uiKeyCodeSecond = CHESS_KEY_NONE; -uint8_t uiKeyCode = CHESS_KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) -{ - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = CHESS_KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = CHESS_KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = CHESS_KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = CHESS_KEY_BACK; - else - uiKeyCodeFirst = CHESS_KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = CHESS_KEY_NONE; -} - - -void setup() { - // rotate screen, if required - u8g.setRot180(); - - uiSetup(); - chess_Init(u8g.getU8g(), 0); -} - -void loop() { - uint8_t keyCode = CHESS_KEY_NONE; - - u8g.firstPage(); - do { - chess_Draw(); - uiStep(); - if ( uiKeyCode != CHESS_KEY_NONE ) - keyCode = uiKeyCode; - } while( u8g.nextPage() ); - - u8g_Delay(10); - chess_Step(keyCode); - uiStep(); - keyCode = uiKeyCode; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Color/Color.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Color/Color.ino deleted file mode 100644 index a389e32242..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Color/Color.ino +++ /dev/null @@ -1,201 +0,0 @@ -/* - - Color.pde - - "Hello World!" example code with color. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - - if ( u8g.getMode() == U8G_MODE_HICOLOR || u8g.getMode() == U8G_MODE_R3G3B2) { - /* draw background (area is 128x128) */ - u8g_uint_t r, g, b; - for( b = 0; b < 4; b++ ) - { - for( g = 0; g < 32; g++ ) - { - for( r = 0; r < 32; r++ ) - { - u8g.setRGB(r<<3, g<<3, b<<4 ); - u8g.drawPixel(g + b*32, r); - u8g.setRGB(r<<3, g<<3, (b<<4)+64 ); - u8g.drawPixel(g + b*32, r+32); - u8g.setRGB(r<<3, g<<3, (b<<4)+128 ); - u8g.drawPixel(g + b*32, r+32+32); - u8g.setRGB(r<<3, g<<3, (b<<4)+128+64 ); - u8g.drawPixel(g + b*32, r+32+32+32); - } - } - } - } - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - u8g.setColorIndex(255); // white - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { - u8g.setColorIndex(3); // max intensity - } - else if ( u8g.getMode() == U8G_MODE_BW ) { - u8g.setColorIndex(1); // pixel on - } - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - u8g.setFont(u8g_font_unifont); - u8g.drawStr( 0, 22, "Hello World!"); - - -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.ino deleted file mode 100644 index 70e0e2f09b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Console/Console.ino +++ /dev/null @@ -1,266 +0,0 @@ -/* - - Console.pde - - Read from serial monitor, output to display - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -// setup input buffer -#define LINE_MAX 30 -uint8_t line_buf[LINE_MAX] = "U8GLIB Console"; -uint8_t line_pos = 0; - -// setup a text screen to support scrolling -#define ROW_MAX 12 - - -uint8_t screen[ROW_MAX][LINE_MAX]; -uint8_t rows, cols; - -// line height, which matches the selected font (5x7) -#define LINE_PIXEL_HEIGHT 7 - -// clear entire screen, called during setup -void clear_screen(void) { - uint8_t i, j; - for( i = 0; i < ROW_MAX; i++ ) - for( j = 0; j < LINE_MAX; j++ ) - screen[i][j] = 0; -} - -// append a line to the screen, scroll up -void add_line_to_screen(void) { - uint8_t i, j; - for( j = 0; j < LINE_MAX; j++ ) - for( i = 0; i < rows-1; i++ ) - screen[i][j] = screen[i+1][j]; - - for( j = 0; j < LINE_MAX; j++ ) - screen[rows-1][j] = line_buf[j]; -} - -// U8GLIB draw procedure: output the screen -void draw(void) { - uint8_t i, y; - // graphic commands to redraw the complete screen are placed here - y = 0; // reference is the top left -1 position of the string - y--; // correct the -1 position of the drawStr - for( i = 0; i < rows; i++ ) - { - u8g.drawStr( 0, y, (char *)(screen[i])); - y += u8g.getFontLineSpacing(); - } -} - -void exec_line(void) { - // echo line to the serial monitor - Serial.println((const char *)line_buf); - - // add the line to the screen - add_line_to_screen(); - - // U8GLIB picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); -} - -// clear current input buffer -void reset_line(void) { - line_pos = 0; - line_buf[line_pos] = '\0'; -} - -// add a single character to the input buffer -void char_to_line(uint8_t c) { - line_buf[line_pos] = c; - line_pos++; - line_buf[line_pos] = '\0'; -} - -// check serial in and handle the character -void read_line(void) { - if ( Serial.available() ) - { - uint8_t c; - c = Serial.read(); - if ( line_pos >= cols-1 ) { - exec_line(); - reset_line(); - char_to_line(c); - } - else if ( c == '\n' ) { - // ignore '\n' - } - else if ( c == '\r' ) { - exec_line(); - reset_line(); - } - else { - char_to_line(c); - } - } -} - -// Arduino master setup -void setup(void) { - // set font for the console window - u8g.setFont(u8g_font_5x7); - //u8g.setFont(u8g_font_9x15); - - // set upper left position for the string draw procedure - u8g.setFontPosTop(); - - // calculate the number of rows for the display - rows = u8g.getHeight() / u8g.getFontLineSpacing(); - if ( rows > ROW_MAX ) - rows = ROW_MAX; - - // estimate the number of columns for the display - cols = u8g.getWidth() / u8g.getStrWidth("m"); - if ( cols > LINE_MAX-1 ) - cols = LINE_MAX-1; - - clear_screen(); // clear screen - delay(1000); // do some delay - Serial.begin(9600); // init serial - exec_line(); // place the input buffer into the screen - reset_line(); // clear input buffer -} - -// Arduino main loop -void loop(void) { - read_line(); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.ino deleted file mode 100644 index 4393ddfe49..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/F/F.ino +++ /dev/null @@ -1,175 +0,0 @@ -/* - - F.pde - - Example code for the F() macro. - - >>> This example requires Arduino 1.0 and above. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - - // assign default font - u8g.setFont(u8g_font_unifont); - - // pointer to strings in flash memory can be stored in a special type - const __FlashStringHelper *flash_ptr; - - // the result of the F() macro can be assigned to this pointer - flash_ptr = F("Hello World!"); - - // this pointer can be used as argument to the draw procedures - u8g.drawStr( 0+1, 20+1, flash_ptr); - u8g.drawStr( 0, 20, flash_ptr); - - // of course, the F() macro can be used directly - u8g.drawStr( 0, 40, F("PROGMEM")); - -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/FPS/FPS.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/FPS/FPS.ino deleted file mode 100644 index bcf93cd5bb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/FPS/FPS.ino +++ /dev/null @@ -1,398 +0,0 @@ -/* - - FPS.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ST7920_192X32, SPI: FPS: Box=7.6 @=9.8 iFPS: Box=11.4 @=14.7 - ST7920_192X32, 8Bit: FPS: Box=6.2 @=7.5 iFPS: Box=9.3 @=11.2 - DOGM128 SW SPI: FPS: Box=5.1 @=5.9 Pix=2.6 iFPS: Box=10.2 @=11.8 Pix=5.2 - DOGM128 HW SPI: FPS: Box=5.5 @=6.3 iFPS: Box=11.0 @=12.6 - DOGXL160 SW SPI: FPS: Box=1.7 @=1.9 iFPS: Box=6.9 @=7.7 - DOGXL160 HW SPI: FPS: Box=1.8 @=2.1 - - NHD27OLED_BW, SW SPI: FPS: Box=3.0 @=3.7 - NHD27OLED_BW, HW SPI: FPS: Box=3.5 @=4.5 - NHD27OLED_2X_BW, SW SPI: FPS: Box=3.8 @=4.9 - NHD27OLED_2X_BW, HW SPI: FPS: Box=4.6 @=6.4 - - 30 Sep 2012 - NHD27OLED_BW, SW SPI: FPS: Clip=9.2 Box=3.9 @=4.4 NEW_CODE - NHD27OLED_BW, SW SPI: FPS: Clip=9.2 Box=3.6 @=4.5 - NHD27OLED_BW, HW SPI: FPS: Clip=16.3 Box=4.7 @=5.6 - NHD27OLED_2X_BW, SW SPI: FPS: Clip=9.7 Box=4.5 @=5.8 - NHD27OLED_2X_BW, SW SPI: FPS: Clip=18.0 Box=5.8 @=7.9 - - 1 Oct 2012 - ST7920_192X32, 8Bit: FPS: Box=7.2 @=10.0 - DOGM128 SW SPI: FPS: Box=5.2 @=6.6 Pix=2.6 - DOGM128 HW SPI: FPS: Clip=33.2 Box=5.5 @=7.1 - DOGXL160 SW SPI: FPS: Box=1.7 @=2.0 - DOGXL160 HW SPI: FPS: Box=1.8 @=2.2 - - DOGXL160 GR SW SPI: FPS: Box=1.1 @=1.3 - - 1 Mar 2013 - ST7920_192X32_1X, SPI: FPS: Clip=10.3 Box=5.5 @=7.2 Pix=3.9 - ST7920_192X32_4X, SPI: FPS: Clip=10.9 Box=6.7 @=8.8 Pix=7.4 - ST7920_192X32_1X, 8Bit: FPS: Clip=14.2 Box=6.1 @=8.4 Pix=4.2 - ST7920_192X32_4X, 8Bit: FPS: Clip=14.2 Box=7.8 @=10.7 Pix=8.7 - ST7920_192X32_1X, HW SPI: FPS: Clip=14.2 Box=6.3 @=8.7 Pix=4.3 - ST7920_192X32_4X, HW SPI: FPS: Clip=15.3 Box=8.0 @=11.2 Pix=9.0 - - 2 Jun 2013 - U8GLIB_DOGM128 SW SPI: FPS: Clip=23.9 Box=4.5 @=6.6 Pix=2.1 - U8GLIB_DOGM128_2X SW SPI: FPS: Clip=28.5 Box=6.6 @=9.7 Pix=3.9 - U8GLIB_DOGM128_2X HW SPI: FPS: Clip=40.8 Box=7.1 @=10.8 Pix=4.1 - - 3 Jun 2013 - U8GLIB_ST7920_192X32_1X -Os SW SPI FPS: Clip=11.0 Box=5.4 @=7.1 Pix=3.9 Size=11828 - U8GLIB_ST7920_192X32_1X -O3 SW SPI FPS: Clip=10.9 Box=5.6 @=7.5 Pix=4.0 Size=13800 - U8GLIB_ST7920_192X32_1X -Os SW SPI FPS: Clip=16.8 Box=6.7 @=9.6 Pix=4.5 Size=11858 (new seq data output) - U8GLIB_ST7920_192X32_1X -Os HW SPI FPS: Clip=25.7 Box=7.5 @=11.3 Pix=4.8 (new seq data output) - - 6 Jun 2013 - U8GLIB_DOGS102 u8g(13, 11, 10, 9); STD SW SPI FPS: Clip=9.5 Box=7.6 @=8.2 Pix=6.2 Size=15652 - U8GLIB_DOGS102 u8g(13, 11, 10, 9); SW SPI FPS: Clip=19.1 Box=12.8 @=14.0 Pix=9.2 Size=15532 - - - 12 Jun 2013 - SSD1351_128X128_332 SW SPI Clip=1.3 Box=0.7 @=0.9 Pix=0.4 - SSD1351_128X128_332 HW SPI Clip=3.6 Box=1.1 @=1.5 Pix=0.5 - - 24 Jun 2013 - Uno SSD1351_128X128_332 SW SPI Clip=1.4 Box=0.8 @=0.9 Pix=0.4 - - Uno SSD1351_128X128_332 HW SPI Clip=4.4 Box=1.2 @=1.6 Pix=0.5 - Uno SSD1351_128X128_HICOLOR HW SPI Clip=3.7 Box=0.8 @=1.0 Pix=0.3 - - Mega2560 SSD1351_128X128_332 HW SPI Clip=4.4 Box=1.2 @=1.6 Pix=0.5 - Mega2560 SSD1351_128X128_4X_332 HW SPI Clip=4.6 Box=2.3 @=2.8 Pix=1.5 - Mega2560 SSD1351_128X128_HICOLOR HW SPI Clip=3.6 Box=0.8 @=1.0 Pix=0.3 - Mega2560 SSD1351_128X128_4X_HICOLOR HW SPI Clip=4.2 Box=1.7 @=2.1 Pix=1.0 - - Due SSD1351_128X128_332 HW SPI Clip=24.6 Box=6.3 @=7.8 Pix=2.8 - Due SSD1351_128X128_4X_332 HW SPI Clip=28.1 Box=13.0 @=15.1 Pix=8.5 - Due SSD1351_128X128_HICOLOR HW SPI Clip=20.8 Box=3.4 @=4.5 Pix=1.4 - Due SSD1351_128X128_4X_HICOLOR HW SPI Clip=26.3 Box=8.9 @=11.1 Pix=4.8 - - Due SSD1351_128X128_4X_HICOLOR SW SPI Clip=0.4 Box=0.4 @=0.4 Pix=0.4 - - Due DOGS102 u8g(13, 11, 10, 9); SW SPI FPS: Clip=19.1 Box=13.1 @=14.3 Pix=9.4 - Due DOGS102 u8g(10, 9); HW SPI FPS: Clip=128.9 Box=30.7 @=40.6 Pix=15.4 - - Due NHD27OLED_BW u8g(10, 9) HW SPI FPS: Clip=53.0 Box=19.6 @=23.8 Pix=10.6 - Due NHD27OLED_2X_BW u8g(10, 9) HW SPI FPS: Clip=57.0 Box=25.3 @=31.7 Pix=18.1 - Due NHD27OLED_GR u8g(10, 9) HW SPI FPS: Clip=34.1 Box=11.7 @=13.7 Pix=5.6 - Due NHD27OLED_2X_GR u8g(10, 9) HW SPI FPS: Clip=38.1 Box=15.5 @=20.0 Pix=8.8 - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -#define SECONDS 10 -uint8_t flip_color = 0; -uint8_t draw_color = 1; - -void draw_set_screen(void) { - // graphic commands to redraw the complete screen should be placed here - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - if ( flip_color == 0 ) - u8g.setHiColorByRGB(0,0,0); - else - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(flip_color); - } - u8g.drawBox( 0, 0, u8g.getWidth(), u8g.getHeight() ); -} - -void draw_clip_test(void) { - u8g_uint_t i, j, k; - char buf[3] = "AB"; - k = 0; - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_6x10); - - for( i = 0; i < 6; i++ ) { - for( j = 1; j < 8; j++ ) { - u8g.drawHLine(i-3, k, j); - u8g.drawHLine(i-3+10, k, j); - - u8g.drawVLine(k+20, i-3, j); - u8g.drawVLine(k+20, i-3+10, j); - - k++; - } - } - u8g.drawStr(0-3, 50, buf); - u8g.drawStr180(0+3, 50, buf); - - u8g.drawStr(u8g.getWidth()-3, 40, buf); - u8g.drawStr180(u8g.getWidth()+3, 40, buf); - - u8g.drawStr90(u8g.getWidth()-10, 0-3, buf); - u8g.drawStr270(u8g.getWidth()-10, 3, buf); - - u8g.drawStr90(u8g.getWidth()-20, u8g.getHeight()-3, buf); - u8g.drawStr270(u8g.getWidth()-20, u8g.getHeight()+3, buf); - -} - -void draw_char(void) { - char buf[2] = "@"; - u8g_uint_t i, j; - // graphic commands to redraw the complete screen should be placed here - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_6x10); - j = 8; - for(;;) { - i = 0; - for(;;) { - u8g.drawStr( i, j, buf); - i += 8; - if ( i > u8g.getWidth() ) - break; - } - j += 8; - if ( j > u8g.getHeight() ) - break; - } - -} - -void draw_pixel(void) { - u8g_uint_t x, y, w2, h2; - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - w2 = u8g.getWidth(); - h2 = u8g.getHeight(); - w2 /= 2; - h2 /= 2; - for( y = 0; y < h2; y++ ) { - for( x = 0; x < w2; x++ ) { - if ( (x + y) & 1 ) { - u8g.drawPixel(x,y); - u8g.drawPixel(x,y+h2); - u8g.drawPixel(x+w2,y); - u8g.drawPixel(x+w2,y+h2); - } - } - } -} - -// returns unadjusted FPS -uint16_t picture_loop_with_fps(void (*draw_fn)(void)) { - uint16_t FPS10 = 0; - uint32_t time; - - time = millis() + SECONDS*1000; - - // picture loop - do { - u8g.firstPage(); - do { - draw_fn(); - } while( u8g.nextPage() ); - FPS10++; - flip_color = flip_color ^ 1; - } while( millis() < time ); - return FPS10; -} - -const char *convert_FPS(uint16_t fps) { - static char buf[6]; - strcpy(buf, u8g_u8toa( (uint8_t)(fps/10), 3)); - buf[3] = '.'; - buf[4] = (fps % 10) + '0'; - buf[5] = '\0'; - return buf; -} - -void show_result(const char *s, uint16_t fps) { - // assign default color value - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_8x13B); - u8g.firstPage(); - do { - u8g.drawStr(0,12, s); - u8g.drawStr(0,24, convert_FPS(fps)); - } while( u8g.nextPage() ); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - draw_color = 255; // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - draw_color = 3; // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - draw_color = 1; // pixel on - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } -} - -void loop(void) { - uint16_t fps; - fps = picture_loop_with_fps(draw_clip_test); - show_result("draw clip test", fps); - delay(5000); - fps = picture_loop_with_fps(draw_set_screen); - show_result("clear screen", fps); - delay(5000); - fps = picture_loop_with_fps(draw_char); - show_result("draw @", fps); - delay(5000); - fps = picture_loop_with_fps(draw_pixel); - show_result("draw pixel", fps); - delay(5000); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino deleted file mode 100644 index f159b8ddc2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino +++ /dev/null @@ -1,300 +0,0 @@ -/* - - GraphicsTest.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void u8g_prepare(void) { - u8g.setFont(u8g_font_6x10); - u8g.setFontRefHeightExtendedText(); - u8g.setDefaultForegroundColor(); - u8g.setFontPosTop(); -} - -void u8g_box_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawBox"); - u8g.drawBox(5,10,20,10); - u8g.drawBox(10+a,15,30,7); - u8g.drawStr( 0, 30, "drawFrame"); - u8g.drawFrame(5,10+30,20,10); - u8g.drawFrame(10+a,15+30,30,7); -} - -void u8g_disc_circle(uint8_t a) { - u8g.drawStr( 0, 0, "drawDisc"); - u8g.drawDisc(10,18,9); - u8g.drawDisc(24+a,16,7); - u8g.drawStr( 0, 30, "drawCircle"); - u8g.drawCircle(10,18+30,9); - u8g.drawCircle(24+a,16+30,7); -} - -void u8g_r_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawRFrame/Box"); - u8g.drawRFrame(5, 10,40,30, a+1); - u8g.drawRBox(50, 10,25,40, a+1); -} - -void u8g_string(uint8_t a) { - u8g.drawStr(30+a,31, " 0"); - u8g.drawStr90(30,31+a, " 90"); - u8g.drawStr180(30-a,31, " 180"); - u8g.drawStr270(30,31-a, " 270"); -} - -void u8g_line(uint8_t a) { - u8g.drawStr( 0, 0, "drawLine"); - u8g.drawLine(7+a, 10, 40, 55); - u8g.drawLine(7+a*2, 10, 60, 55); - u8g.drawLine(7+a*3, 10, 80, 55); - u8g.drawLine(7+a*4, 10, 100, 55); -} - -void u8g_triangle(uint8_t a) { - uint16_t offset = a; - u8g.drawStr( 0, 0, "drawTriangle"); - u8g.drawTriangle(14,7, 45,30, 10,40); - u8g.drawTriangle(14+offset,7-offset, 45+offset,30-offset, 57+offset,10-offset); - u8g.drawTriangle(57+offset*2,10, 45+offset*2,30, 86+offset*2,53); - u8g.drawTriangle(10+offset,40+offset, 45+offset,30+offset, 86+offset,53+offset); -} - -void u8g_ascii_1() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 1"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 32; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - -void u8g_ascii_2() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 2"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 160; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - -void u8g_extra_page(uint8_t a) -{ - if ( u8g.getMode() == U8G_MODE_HICOLOR || u8g.getMode() == U8G_MODE_R3G3B2) { - /* draw background (area is 128x128) */ - u8g_uint_t r, g, b; - b = a << 5; - for( g = 0; g < 64; g++ ) - { - for( r = 0; r < 64; r++ ) - { - u8g.setRGB(r<<2, g<<2, b ); - u8g.drawPixel(g, r); - } - } - u8g.setRGB(255,255,255); - u8g.drawStr( 66, 0, "Color Page"); - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - { - u8g.drawStr( 66, 0, "Gray Level"); - u8g.setColorIndex(1); - u8g.drawBox(0, 4, 64, 32); - u8g.drawBox(70, 20, 4, 12); - u8g.setColorIndex(2); - u8g.drawBox(0+1*a, 4+1*a, 64-2*a, 32-2*a); - u8g.drawBox(74, 20, 4, 12); - u8g.setColorIndex(3); - u8g.drawBox(0+2*a, 4+2*a, 64-4*a, 32-4*a); - u8g.drawBox(78, 20, 4, 12); - } - else - { - u8g.drawStr( 0, 12, "setScale2x2"); - u8g.setScale2x2(); - u8g.drawStr( 0, 6+a, "setScale2x2"); - u8g.undoScale(); - } -} - - -uint8_t draw_state = 0; - -void draw(void) { - u8g_prepare(); - switch(draw_state >> 3) { - case 0: u8g_box_frame(draw_state&7); break; - case 1: u8g_disc_circle(draw_state&7); break; - case 2: u8g_r_frame(draw_state&7); break; - case 3: u8g_string(draw_state&7); break; - case 4: u8g_line(draw_state&7); break; - case 5: u8g_triangle(draw_state&7); break; - case 6: u8g_ascii_1(); break; - case 7: u8g_ascii_2(); break; - case 8: u8g_extra_page(draw_state&7); break; - } -} - -void setup(void) { - - // flip screen, if required - //u8g.setRot180(); - - - pinMode(13, OUTPUT); - digitalWrite(13, HIGH); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // increase the state - draw_state++; - if ( draw_state >= 9*8 ) - draw_state = 0; - - // rebuild the picture after some delay - //delay(150); - -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.ino deleted file mode 100644 index f71bf8e4f0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/HelloWorld/HelloWorld.ino +++ /dev/null @@ -1,177 +0,0 @@ -/* - - HelloWorld.pde - - "Hello World!" example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - //u8g.setFont(u8g_font_osb21); - u8g.drawStr( 0, 22, "Hello World!"); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - u8g.setColorIndex(255); // white - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { - u8g.setColorIndex(3); // max intensity - } - else if ( u8g.getMode() == U8G_MODE_BW ) { - u8g.setColorIndex(1); // pixel on - } - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(50); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.ino deleted file mode 100644 index d8ab6f0df1..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Menu/Menu.ino +++ /dev/null @@ -1,273 +0,0 @@ -/* - - Menu.pde - - Simple Menu Selection - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -#define KEY_NONE 0 -#define KEY_PREV 1 -#define KEY_NEXT 2 -#define KEY_SELECT 3 -#define KEY_BACK 4 - -// DOGS102 shield configuration values -//uint8_t uiKeyPrev = 2; -//uint8_t uiKeyNext = 4; -//uint8_t uiKeySelect = 5; -//uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -uint8_t uiKeyPrev = 7; -uint8_t uiKeyNext = 3; -uint8_t uiKeySelect = 2; -uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = KEY_NONE; -uint8_t uiKeyCodeSecond = KEY_NONE; -uint8_t uiKeyCode = KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) { - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = KEY_BACK; - else - uiKeyCodeFirst = KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = KEY_NONE; -} - - -#define MENU_ITEMS 4 -char *menu_strings[MENU_ITEMS] = { "First Line", "Second Item", "3333333", "abcdefg" }; - -uint8_t menu_current = 0; -uint8_t menu_redraw_required = 0; -uint8_t last_key_code = KEY_NONE; - - -void drawMenu(void) { - uint8_t i, h; - u8g_uint_t w, d; - - u8g.setFont(u8g_font_6x13); - u8g.setFontRefHeightText(); - u8g.setFontPosTop(); - - h = u8g.getFontAscent()-u8g.getFontDescent(); - w = u8g.getWidth(); - for( i = 0; i < MENU_ITEMS; i++ ) { - d = (w-u8g.getStrWidth(menu_strings[i]))/2; - u8g.setDefaultForegroundColor(); - if ( i == menu_current ) { - u8g.drawBox(0, i*h+1, w, h); - u8g.setDefaultBackgroundColor(); - } - u8g.drawStr(d, i*h, menu_strings[i]); - } -} - -void updateMenu(void) { - if ( uiKeyCode != KEY_NONE && last_key_code == uiKeyCode ) { - return; - } - last_key_code = uiKeyCode; - - switch ( uiKeyCode ) { - case KEY_NEXT: - menu_current++; - if ( menu_current >= MENU_ITEMS ) - menu_current = 0; - menu_redraw_required = 1; - break; - case KEY_PREV: - if ( menu_current == 0 ) - menu_current = MENU_ITEMS; - menu_current--; - menu_redraw_required = 1; - break; - } -} - - -void setup() { - // rotate screen, if required - // u8g.setRot180(); - - uiSetup(); // setup key detection and debounce algorithm - menu_redraw_required = 1; // force initial redraw -} - -void loop() { - - uiStep(); // check for key press - - if ( menu_redraw_required != 0 ) { - u8g.firstPage(); - do { - drawMenu(); - } while( u8g.nextPage() ); - menu_redraw_required = 0; - } - - updateMenu(); // update menu bar - -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.ino deleted file mode 100644 index edc9afa8c1..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/PrintTest/PrintTest.ino +++ /dev/null @@ -1,160 +0,0 @@ -/* - - PrintTest.pde - - How to use the base class "Print" - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setPrintPos(0, 20); - // call procedure from base class, http://arduino.cc/en/Serial/Print - u8g.print("Hello World!"); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.ino deleted file mode 100644 index f4008138b9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Rotation/Rotation.ino +++ /dev/null @@ -1,188 +0,0 @@ -/* - - Rotation.pde - - Example code for RotXXX functions. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -uint8_t offset = 0; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.drawStr( 0+0, 20+0, "Hello!"); - u8g.drawStr( 0+2, 20+16, "Hello!"); - - u8g.drawBox(0, 0, 3, 3); - u8g.drawBox(u8g.getWidth()-6, 0, 6, 6); - u8g.drawBox(u8g.getWidth()-9, u8g.getHeight()-9, 9, 9); - u8g.drawBox(0, u8g.getHeight()-12, 12, 12); -} - -void setup(void) { -} - - -void rotate(void) { - static uint8_t dir = 0; - static unsigned long next_rotation = 0; - - if ( next_rotation < millis() ) - { - switch(dir) { - case 0: u8g.undoRotation(); break; - case 1: u8g.setRot90(); break; - case 2: u8g.setRot180(); break; - case 3: u8g.setRot270(); offset = ( offset + 1 ) & 0x0f; break; - } - - dir++; - dir &= 3; - next_rotation = millis(); - next_rotation += 1000; - } -} - -void loop(void) { - // screen rotation - rotate(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.ino deleted file mode 100644 index 5fc5d331fd..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Scale/Scale.ino +++ /dev/null @@ -1,177 +0,0 @@ -/* - - Scale.pde - - Example code for the 2x2 scale function. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setFontPosTop(); - u8g.drawStr(0, 1, "Hello"); - u8g.drawHLine(0, 1+14, 40); - u8g.setScale2x2(); // Scale up all draw procedures - u8g.drawStr(0, 12, "Hello"); // actual display position is (0,24) - u8g.drawHLine(0, 12+14, 40); // All other procedures are also affected - u8g.undoScale(); // IMPORTANT: Switch back to normal mode -} - -void setup(void) { - - // flip screen, if required - u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - u8g.setColorIndex(255); // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - u8g.setColorIndex(3); // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.ino deleted file mode 100644 index 3527808284..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/TextRotX/TextRotX.ino +++ /dev/null @@ -1,190 +0,0 @@ -/* - - TextRotX.pde - - Text rotation example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -// graphic commands to redraw the complete screen should be placed here -void draw(void) { - u8g_uint_t mx, my; - - mx = u8g.getWidth(); - mx >>= 1; - - my = u8g.getHeight(); - my >>= 1; - - u8g.drawStr( mx, my, "Ag"); - u8g.drawStr90( mx, my, "Ag"); - u8g.drawStr180( mx, my, "Ag"); - u8g.drawStr270( mx, my, "Ag"); -} - -void setup(void) { - u8g.setFont(u8g_font_9x18); -} - -void change_font_pos(void) { - static uint8_t dir = 0; - static unsigned long next = 0; - - if ( next < millis() ) - { - switch(dir) { - case 0: u8g.setFontPosBottom(); break; - case 1: u8g.setFontPosBaseline(); break; - case 2: u8g.setFontPosCenter(); break; - case 3: u8g.setFontPosTop(); break; - } - - dir++; - dir &= 3; - next = millis(); - next += 1000; - } -} - -void loop(void) { - // change the font position - change_font_pos(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino deleted file mode 100644 index 9ce10e9416..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino +++ /dev/null @@ -1,348 +0,0 @@ -/* - - Touch4WSetup.pde - - Use this example to figure out the ranges for of the active area of a 4-wire resistive - touch panel. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//================================================================ -// Setup 4-Wire Resistive Touch Panel - -uint8_t tp_left = A3; -uint8_t tp_right = A5; -uint8_t tp_top = A4; -uint8_t tp_bottom = A2; - -#define X_START 120 -#define X_END 140 -#define Y_START 120 -#define Y_END 140 - -#define PULLUP_THRESHOLD 235 - -//================================================================ -// Touch Panel Code - -/* touch panel dimension */ -struct tpd_struct -{ - /* raw value */ - uint8_t raw; - - /* calibration values */ - uint8_t start; - uint8_t end; - - /* user values */ - uint8_t range; /* result will have range fron 0..range (including the value of range) */ - - uint8_t result; /* output value: position [0...range] */ - uint8_t is_pressed; /* output value: pressed (=1) or not pressed (=0) */ - uint8_t is_update; /* will be set to 1 if result or is_pressed has been updated */ -}; - -struct tp_struct -{ - struct tpd_struct x; - struct tpd_struct y; - uint8_t is_pressed; /* combination of x.is_pressed && y.is_pressed */ - uint8_t is_update; -}; - -struct tp_struct tp; - -/* map raw value to 0...range (result) */ -void tpd_map_touch_position(struct tpd_struct *d, uint8_t raw) -{ - uint8_t is_pressed; - uint16_t p; - uint8_t start, end; - - d->raw = raw; - - start = d->start; - end = d->end; - - /* check if position is within active area; store result in "is_pressed" */ - is_pressed = 1; - if ( raw >= PULLUP_THRESHOLD ) - { - d->result = 0; - is_pressed = 0; - } - else - { - /* update start and end */ - if ( raw < start ) - { - start = raw; - d->start = raw; - } - if ( raw > end ) - { - end = raw; - d->end = raw; - } - } - - /* store "is_pressed" in the global structure, set update flag */ - if ( d->is_pressed != is_pressed ) - d->is_update = 1; - d->is_pressed = is_pressed; - - /* map "raw" value into target range */ - if ( is_pressed != 0 ) - { - p = raw; - p -= start; - p *= d->range; - end -= start; - p /= end; - - if ( d->result != p ) - d->is_update = 1; - d->result = p; - } -} - -void tp_Init(uint8_t width, uint8_t height) -{ - tp.x.start = X_START; - tp.x.end = X_END; - tp.x.range = width-1; - - tp.y.start = Y_START; - tp.y.end = Y_END; - tp.y.range = height-1; - - tp.is_update = 1; -} - -void setTouchRawValues(uint8_t x, uint8_t y) -{ - tpd_map_touch_position(&(tp.x), x); - tpd_map_touch_position(&(tp.y), y); - - tp.is_pressed = tp.x.is_pressed && tp.y.is_pressed; - if ( tp.x.is_update || tp.y.is_update ) - tp.is_update = 1; -} - - -uint8_t getTouchPos(uint8_t hiPin, uint8_t lowPin, uint8_t sensePin, uint8_t dcPin) -{ - uint8_t val; - pinMode(dcPin, INPUT); - pinMode(sensePin, INPUT_PULLUP); - pinMode(hiPin, OUTPUT); - pinMode(lowPin, OUTPUT); - - digitalWrite(hiPin, HIGH); - digitalWrite(lowPin, LOW); - delay(10); - val = analogRead(sensePin) >> 2; - pinMode(hiPin, INPUT); - pinMode(lowPin, INPUT); - delay(10); - return val; -} - -void updateTouchPanel(void) -{ - uint8_t tp_raw_x; - uint8_t tp_raw_y; - - tp_raw_x = getTouchPos(tp_right, tp_left, tp_bottom, tp_top); - tp_raw_y = getTouchPos(tp_top, tp_bottom, tp_left, tp_right); - - setTouchRawValues(tp_raw_x, tp_raw_y); -} - -//================================================================ -// graphics output and picture loop - -void center(u8g_uint_t y, const char *str) -{ - u8g_uint_t x; - x = u8g.getWidth(); - x -= u8g.getStrWidth(str); - x /= 2; - u8g.drawStr(x, y, str); -} - - -void draw(void) { - u8g.setFont(u8g_font_6x10); - center( 10, "Touch Panel Setup"); - u8g.setPrintPos(0, 20); u8g.print("x_start=");u8g.print((int)tp.x.start);u8g.print(" x_end=");u8g.print((int)tp.x.end); - u8g.setPrintPos(0, 30); u8g.print("y_start=");u8g.print((int)tp.y.start);u8g.print(" y_end=");u8g.print((int)tp.y.end); - u8g.setPrintPos(0, 40); u8g.print("x=");u8g.print((int)tp.x.raw); - u8g.setPrintPos(0, 50); u8g.print("y=");u8g.print((int)tp.y.raw); -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - u8g.setCursorFont(u8g_font_cursor); - u8g.setCursorStyle(32); - - tp_Init(u8g.getWidth(), u8g.getHeight()); - - tp.is_update = 1; -} - -void loop(void) { - - // update touch panel and handle return values - updateTouchPanel(); - - if ( tp.is_pressed != 0 ) - u8g.enableCursor(); - else - u8g.disableCursor(); - - u8g.setCursorPos(tp.x.result, u8g.getHeight()-tp.y.result-1); - - // picture loop - if ( tp.is_update != 0 ) - { - tp.is_update = 0; - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - } - -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino deleted file mode 100644 index ebe15838f3..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino +++ /dev/null @@ -1,335 +0,0 @@ -/* - - Touch4WTest.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//================================================================ -// Setup 4-Wire Resistive Touch Panel - -uint8_t tp_left = A3; -uint8_t tp_right = A5; -uint8_t tp_top = A4; -uint8_t tp_bottom = A2; - -/* Run "Touch4WSetup" and enter values here */ -#define X_START 64 -#define X_END 200 -#define Y_START 105 -#define Y_END 160 - -//================================================================ -// Touch Panel Code - -/* touch panel dimension */ -struct tpd_struct -{ - /* raw value */ - uint8_t raw; - - /* calibration values */ - uint8_t start; - uint8_t end; - - /* user values */ - uint8_t range; /* result will have range fron 0..range (including the value of range) */ - - uint8_t result; /* output value: position [0...range] */ - uint8_t is_pressed; /* output value: pressed (=1) or not pressed (=0) */ - uint8_t is_update; /* will be set to 1 if result or is_pressed has been updated */ -}; - -struct tp_struct -{ - struct tpd_struct x; - struct tpd_struct y; - uint8_t is_pressed; /* combination of x.is_pressed && y.is_pressed */ - uint8_t is_update; -}; - -struct tp_struct tp; - -/* map raw value to 0...range (result) */ -void tpd_map_touch_position(struct tpd_struct *d, uint8_t raw) -{ - uint8_t is_pressed; - uint16_t p; - uint8_t start, end; - - d->raw = raw; - - start = d->start; - end = d->end; - - /* check if position is within active area; store result in "is_pressed" */ - is_pressed = 1; - if ( raw < start ) - { - d->result = 0; - is_pressed = 0; - } - if ( raw >= end ) - { - d->result = d->range; - is_pressed = 0; - } - - /* store "is_pressed" in the global structure, set update flag */ - if ( d->is_pressed != is_pressed ) - d->is_update = 1; - d->is_pressed = is_pressed; - - /* map "raw" value into target range */ - if ( is_pressed != 0 ) - { - p = raw; - p -= start; - p *= d->range; - end -= start; - p /= end; - - if ( d->result != p ) - d->is_update = 1; - d->result = p; - } -} - -void tp_Init(uint8_t width, uint8_t height) -{ - tp.x.start = X_START; - tp.x.end = X_END; - tp.x.range = width-1; - - tp.y.start = Y_START; - tp.y.end = Y_END; - tp.y.range = height-1; - - tp.is_update = 1; -} - -void setTouchRawValues(uint8_t x, uint8_t y) -{ - tpd_map_touch_position(&(tp.x), x); - tpd_map_touch_position(&(tp.y), y); - - tp.is_pressed = tp.x.is_pressed && tp.y.is_pressed; - if ( tp.x.is_update || tp.y.is_update ) - tp.is_update = 1; -} - - -uint8_t getTouchPos(uint8_t hiPin, uint8_t lowPin, uint8_t sensePin, uint8_t dcPin) -{ - uint8_t val; - pinMode(dcPin, INPUT); - pinMode(sensePin, INPUT_PULLUP); - pinMode(hiPin, OUTPUT); - pinMode(lowPin, OUTPUT); - - digitalWrite(hiPin, HIGH); - digitalWrite(lowPin, LOW); - delay(10); - val = analogRead(sensePin) >> 2; - pinMode(hiPin, INPUT); - pinMode(lowPin, INPUT); - delay(10); - return val; -} - -void updateTouchPanel(void) -{ - uint8_t tp_raw_x; - uint8_t tp_raw_y; - - tp_raw_x = getTouchPos(tp_right, tp_left, tp_bottom, tp_top); - tp_raw_y = getTouchPos(tp_top, tp_bottom, tp_left, tp_right); - - setTouchRawValues(tp_raw_x, tp_raw_y); -} - -//================================================================ -// graphics output and picture loop - -void center(u8g_uint_t y, const char *str) -{ - u8g_uint_t x; - x = u8g.getWidth(); - x -= u8g.getStrWidth(str); - x /= 2; - u8g.drawStr(x, y, str); -} - - -void draw(void) { - u8g.setFont(u8g_font_6x10); - center( 10, "Touch Panel Test"); - if ( tp.is_pressed != 0 ) - { - u8g.setPrintPos(0, 20); u8g.print("x=");u8g.print((int)tp.x.result); - u8g.setPrintPos(0, 30); u8g.print("y=");u8g.print((int)(u8g.getHeight()-tp.y.result-1)); - //u8g.setPrintPos(0, 40); u8g.print("x: ");u8g.print((int)tp.x.start);u8g.print("..");u8g.print((int)tp.x.end); - //u8g.setPrintPos(0, 50); u8g.print("y: ");u8g.print((int)tp.y.start);u8g.print("..");u8g.print((int)tp.y.end); - } -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - u8g.setCursorFont(u8g_font_cursor); - u8g.setCursorStyle(32); - - tp_Init(u8g.getWidth(), u8g.getHeight()); -} - -void loop(void) { - - // update touch panel and handle return values - updateTouchPanel(); - - if ( tp.is_pressed != 0 ) - u8g.enableCursor(); - else - u8g.disableCursor(); - - u8g.setCursorPos(tp.x.result, u8g.getHeight()-tp.y.result-1); - - // picture loop - if ( tp.is_update != 0 ) { - tp.is_update = 0; - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - } - -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.ino deleted file mode 100644 index 151542dcf8..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/U8gLogo/U8gLogo.ino +++ /dev/null @@ -1,230 +0,0 @@ -/* - - U8gLogo.pde - - Put the U8GLIB logo on the display. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//#define MINI_LOGO - -void drawColorBox(void) -{ - u8g_uint_t w,h; - u8g_uint_t r, g, b; - - w = u8g.getWidth()/32; - h = u8g.getHeight()/8; - for( b = 0; b < 4; b++ ) - for( g = 0; g < 8; g++ ) - for( r = 0; r < 8; r++ ) - { - u8g.setColorIndex((r<<5) | (g<<2) | b ); - u8g.drawBox(g*w + b*w*8, r*h, w, h); - } -} - -void drawLogo(uint8_t d) -{ -#ifdef MINI_LOGO - u8g.setFont(u8g_font_gdr17r); - u8g.drawStr(0+d, 22+d, "U"); - u8g.setFont(u8g_font_gdr20n); - u8g.drawStr90(17+d,8+d,"8"); - u8g.setFont(u8g_font_gdr17r); - u8g.drawStr(39+d,22+d,"g"); - - u8g.drawHLine(2+d, 25+d, 34); - u8g.drawVLine(32+d, 22+d, 12); -#else - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(0+d, 30+d, "U"); - u8g.setFont(u8g_font_gdr30n); - u8g.drawStr90(23+d,10+d,"8"); - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(53+d,30+d,"g"); - - u8g.drawHLine(2+d, 35+d, 47); - u8g.drawVLine(45+d, 32+d, 12); -#endif -} - -void drawURL(void) -{ -#ifndef MINI_LOGO - u8g.setFont(u8g_font_4x6); - if ( u8g.getHeight() < 59 ) - { - u8g.drawStr(53,9,"code.google.com"); - u8g.drawStr(77,18,"/p/u8glib"); - } - else - { - u8g.drawStr(1,54,"code.google.com/p/u8glib"); - } -#endif -} - - -void draw(void) { - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - drawColorBox(); - } - u8g.setColorIndex(1); - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) { - drawLogo(2); - u8g.setColorIndex(2); - drawLogo(1); - u8g.setColorIndex(3); - } - drawLogo(0); - drawURL(); - -} - -void setup(void) { - // flip screen, if required - //u8g.setRot180(); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - u8g.setColorIndex(1); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(200); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.ino b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.ino deleted file mode 100644 index 65b1831872..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/examples/XBM/XBM.ino +++ /dev/null @@ -1,172 +0,0 @@ -/* - - XBM.pde - - drawXBM example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -#define u8g_logo_width 38 -#define u8g_logo_height 24 -//static unsigned char u8g_logo_bits[] = { -static unsigned char u8g_logo_bits[] U8G_PROGMEM = { - 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xe0, - 0xff, 0xff, 0x3f, 0xe3, 0xe1, 0xff, 0xff, 0x3f, 0xf3, 0xf1, 0xff, 0xff, - 0x3f, 0xf3, 0xf1, 0xfe, 0xbf, 0x37, 0xf3, 0x11, 0x1c, 0x1f, 0x30, 0xf3, - 0x01, 0x08, 0x8c, 0x20, 0xf3, 0x01, 0x00, 0xc0, 0x39, 0xf3, 0x81, 0xc7, - 0xc1, 0x39, 0xf3, 0xc1, 0xc7, 0xc9, 0x38, 0xf3, 0xc1, 0xc3, 0x19, 0x3c, - 0xe3, 0x89, 0x01, 0x98, 0x3f, 0xc7, 0x18, 0x00, 0x08, 0x3e, 0x0f, 0x3c, - 0x70, 0x1c, 0x30, 0x3f, 0xff, 0xfc, 0x87, 0x31, 0xff, 0xff, 0xbf, 0xc7, - 0x23, 0x01, 0x00, 0x00, 0xc6, 0x23, 0x03, 0x00, 0x00, 0x0e, 0x30, 0xff, - 0xff, 0x3f, 0x1f, 0x3c, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0xff, 0x3f, - 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f }; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawXBMP( 0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt deleted file mode 100644 index f1a9615c7d..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/license.txt +++ /dev/null @@ -1,81 +0,0 @@ - -The U8glib code (http://code.google.com/p/u8glib/) is licensed under the terms of -the new-bsd license (two-clause bsd license). -See also: http://www.opensource.org/licenses/bsd-license.php - -The repository and optionally the releases contain icons, which are -derived from the WPZOOM Developer Icon Set: -http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/ -WPZOOM Developer Icon Set by WPZOOM is licensed under a Creative Commons -Attribution-ShareAlike 3.0 Unported License. - -Fonts are licensed under different conditions. -See http://code.google.com/p/u8glib/wiki/fontgroup for -detailed information on the licensing conditions for each font. - -============ X11 Fonts COUR, HELV, NCEN, TIM, SYMB ============ - -For fonts derived from the following files, the license below applies. -COURB08.BDF COURB10.BDF COURB12.BDF COURB14.BDF COURB18.BDF -COURB24.BDF COURR08.BDF COURR10.BDF COURR12.BDF COURR14.BDF -COURR18.BDF COURR24.BDF HELVB08.BDF HELVB10.BDF HELVB12.BDF HELVB14.BDF -HELVB18.BDF HELVB24.BDF HELVR08.BDF HELVR10.BDF HELVR12.BDF HELVR14.BDF -HELVR18.BDF HELVR24.BDF NCENB08.BDF NCENB10.BDF NCENB12.BDF -NCENB14.BDF NCENB18.BDF NCENB24.BDF NCENR08.BDF NCENR10.BDF -NCENR12.BDF NCENR14.BDF NCENR18.BDF NCENR24.BDF SYMB08.BDF SYMB10.BDF -SYMB12.BDF SYMB14.BDF SYMB18.BDF SYMB24.BDF TIMB08.BDF TIMB10.BDF -TIMB12.BDF TIMB14.BDF TIMB18.BDF TIMB24.BDF TIMR08.BDF TIMR10.BDF -TIMR12.BDF TIMR14.BDF TIMR18.BDF TIMR24.BDF - -Copyright 1984-1989, 1994 Adobe Systems Incorporated. -Copyright 1988, 1994 Digital Equipment Corporation. - -Adobe is a trademark of Adobe Systems Incorporated which may be -registered in certain jurisdictions. -Permission to use these trademarks is hereby granted only in -association with the images described in this file. - -Permission to use, copy, modify, distribute and sell this software -and its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notices appear in all -copies and that both those copyright notices and this permission -notice appear in supporting documentation, and that the names of -Adobe Systems and Digital Equipment Corporation not be used in -advertising or publicity pertaining to distribution of the software -without specific, written prior permission. Adobe Systems and -Digital Equipment Corporation make no representations about the -suitability of this software for any purpose. It is provided "as -is" without express or implied warranty. - - -============ BSD License for U8glib Code ============ - -Universal 8bit Graphics Library (http://code.google.com/p/u8glib/) - -Copyright (c) 2011, olikraus@gmail.com -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c deleted file mode 100644 index f86bf0687e..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/chessengine.c +++ /dev/null @@ -1,2392 +0,0 @@ -/* - chessengine.c - - "Little Rook Chess" (lrc) - - Port to u8g library - - chess for embedded 8-Bit controllers - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Note: - UNIX_MAIN --> unix console executable - - Current Rule Limitation - - no minor promotion, only "Queening" of the pawn - - threefold repetition is not detected (same board situation appears three times) - Note: Could be implemented, but requires tracking of the complete game - - Fifty-move rule is not checked (no pawn move, no capture within last 50 moves) - - Words - Ply a half move - - General Links - http://chessprogramming.wikispaces.com/ - - Arduino specific - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260055596 - - Prefixes - chess_ Generic Chess Application Interface - ce_ Chess engine, used internally, these function should not be called directly - cu_ Chess utility function - stack_ Internal function for stack handling - - Issues - 10.01.2011 - - castling to the right does not move the rook - --> done - - castling to the left: King can only move two squares - --> done - - 11.01.2011 - Next Steps: - - replace stack_NextCurrentPos with cu_NextPos, cleanup code according to the loop variable - --> done - - Castling: Need to check for fields under attack - --> done - - - Check for WIN / LOOSE situation, perhaps call ce_Eval() once on the top-level board setup - just after the real move - - cleanup cu_Move - --> almost done - - add some heuristics to the eval procedure - - add right side menu - --> done - - clean up chess_ManualMove - --> done - - finish menu (consider is_game_end, undo move) - - end condition: if KING is under attack and if KING can not move to a field which is under attack... - then the game is lost. What will be returned by the Eval procedure? is it -INF? - --> finished - - - reduce the use of variable color, all should be reduced to board_orientation and ply&1 - - - chess_GetNextMarked shoud make use of cu_NextPos - --> done - - chess_ManualMove: again cleanup, solve draw issue (KING is not in check and no legal moves are available) - --> done - 22.01.2011 - - simplify eval_t ce_Eval(void) - - position eval does not work, still moves side pawn :-( - maybe because all pieces are considered - --> done - -*/ - -#include "u8g.h" - -//#ifndef __unix__ -//#else -//#include -//#define U8G_NOINLINE -//#endif - -/* -SAN identifies each piece by a single upper case letter. The standard English -values: pawn = "P", knight = "N", bishop = "B", rook = "R", queen = "Q", and -king = "K". -*/ - -/* numbers for the various pieces */ -#define PIECE_NONE 0 -#define PIECE_PAWN 1 -#define PIECE_KNIGHT 2 -#define PIECE_BISHOP 3 -#define PIECE_ROOK 4 -#define PIECE_QUEEN 5 -#define PIECE_KING 6 - -/* color definitions */ -#define COLOR_WHITE 0 -#define COLOR_BLACK 1 - -/* a mask, which includes COLOR and PIECE number */ -#define COLOR_PIECE_MASK 0x01f - -#define CP_MARK_MASK 0x20 - -#define ILLEGAL_POSITION 255 - -/* This is the build in upper limit of the search stack */ -/* This value defines the amount of memory allocated for the search stack */ -/* The search depth of this chess engine can never exceed this value */ -#define STACK_MAX_SIZE 5 - -/* chess half move stack: twice the number of undo's, a user can do */ -#define CHM_USER_SIZE 6 - -/* the CHM_LIST_SIZE must be larger than the maximum search depth */ -/* the overall size of ste half move stack */ -#define CHM_LIST_SIZE (STACK_MAX_SIZE+CHM_USER_SIZE+2) - -typedef int16_t eval_t; /* a variable type to store results from the evaluation */ -//#define EVAL_T_LOST -32768 -#define EVAL_T_MIN -32767 -#define EVAL_T_MAX 32767 -//#define EVAL_T_WIN 32767 - -/* for maintainance of our own stack: this is the definition of one element on the stack */ -struct _stack_element_struct -{ - /* the current source position which is investigated */ - uint8_t current_pos; - uint8_t current_cp; - uint8_t current_color; /* COLOR_WHITE or COLOR_BLACK: must be predefines */ - - /* the move which belongs to that value, both values are game positions */ - uint8_t best_from_pos; - uint8_t best_to_pos; - /* the best value, which has been dicovered so far */ - eval_t best_eval; -}; -typedef struct _stack_element_struct stack_element_t; -typedef struct _stack_element_struct *stack_element_p; - -/* chess half move history */ -struct _chm_struct -{ - uint8_t main_cp; /* the main piece, which is moved */ - uint8_t main_src; /* the source position of the main piece */ - uint8_t main_dest; /* the destination of the main piece */ - - uint8_t other_cp; /* another piece: the captured one, the ROOK in case of castling or PIECE_NONE */ - uint8_t other_src; /* the delete position of other_cp. Often identical to main_dest except for e.p. and castling */ - uint8_t other_dest; /* only used for castling: ROOK destination pos */ - - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - /* this is the condition BEFORE the move was done */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - /* this is the condition BEFORE the move was done */ - uint8_t castling_possible; -}; - -typedef struct _chm_struct chm_t; -typedef struct _chm_struct *chm_p; - -/* little rook chess, main structure */ -struct _lrc_struct -{ - /* half-move (ply) counter: Counts the number of half-moves so far. Starts with 0 */ - /* the lowest bit is used to derive the color of the current player */ - /* will be set to zero in chess_SetupBoard() */ - uint8_t ply_count; - - /* the half move stack position counter, counts the number of elements in chm_list */ - uint8_t chm_pos; - - /* each element contains a colored piece, empty fields have value 0 */ - /* the field with index 0 is black (lower left) */ - uint8_t board[64]; - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - uint8_t castling_possible; - - /* board orientation */ - /* 0: white is below COLOR_WHITE */ - /* 1: black is below COLOR_BLACK */ - /* bascially, this can be used as a color */ - uint8_t orientation; - - /* exchange colors of the pieces */ - /* 0: white has an empty body, use this for bright background color */ - /* 1: black has an empty body, use this for dark backround color */ - uint8_t strike_out_color; - - /* 0, when the game is ongoing */ - /* 1, when the game is stopped (lost or draw) */ - uint8_t is_game_end; - /* the color of the side which lost the game */ - /* this value is only valid, when is_game_end is not 0 */ - /* values 0 and 1 represent WHITE and BLACK, 2 means a draw */ - uint8_t lost_side_color; - - - - /* checks are executed in ce_LoopRecur */ - /* these checks will put some marks on the board */ - /* this will be used by the interface to find out */ - /* legal moves */ - uint8_t check_src_pos; - uint8_t check_mode; /* CHECK_MODE_NONE, CHECK_MODE_MOVEABLE, CHECK_MODE_TARGET_MOVE */ - - - /* count of the attacking pieces, indexed by color */ - uint8_t find_piece_cnt[2]; - - /* sum of the attacking pieces, indexed by color */ - uint8_t find_piece_weight[2]; - - /* points to the current element of the search stack */ - /* this stack is NEVER empty. The value 0 points to the first element of the stack */ - /* actually "curr_depth" represent half-moves (plies) */ - uint8_t curr_depth; - uint8_t max_depth; - stack_element_p curr_element; - - /* allocated memory for the search stack */ - stack_element_t stack_memory[STACK_MAX_SIZE]; - - /* the half move stack, used for move undo and depth search, size is stored in chm_pos */ - chm_t chm_list[CHM_LIST_SIZE]; -}; -typedef struct _lrc_struct lrc_t; - -#define CHECK_MODE_NONE 0 -#define CHECK_MODE_MOVEABLE 1 -#define CHECK_MODE_TARGET_MOVE 2 - - - -/*==============================================================*/ -/* global variables */ -/*==============================================================*/ - -u8g_t *lrc_u8g; - -lrc_t lrc_obj; - - -/*==============================================================*/ -/* forward declarations */ -/*==============================================================*/ - -/* - apply no inline to some of the functions: - avr-gcc very often inlines functions, however not inline saves a lot of program memory! - On the other hand there are some really short procedures which should be inlined (like cp_GetColor) - These procedures are marked static to prevent the generation of the expanded procedure, which - also saves space. -*/ - -uint8_t stack_Push(uint8_t color) U8G_NOINLINE; -void stack_Pop(void) U8G_NOINLINE; -void stack_InitCurrElement(void) U8G_NOINLINE; -void stack_Init(uint8_t max) U8G_NOINLINE; -void stack_SetMove(eval_t val, uint8_t to_pos) U8G_NOINLINE; -uint8_t cu_NextPos(uint8_t pos) U8G_NOINLINE; -static uint8_t cu_gpos2bpos(uint8_t gpos); -static uint8_t cp_Construct(uint8_t color, uint8_t piece); -static uint8_t cp_GetPiece(uint8_t cp); -static uint8_t cp_GetColor(uint8_t cp); -uint8_t cp_GetFromBoard(uint8_t pos) U8G_NOINLINE; -void cp_SetOnBoard(uint8_t pos, uint8_t cp) U8G_NOINLINE; - -void cu_ClearBoard(void) U8G_NOINLINE; -void chess_SetupBoard(void) U8G_NOINLINE; -eval_t ce_Eval(void); - -void cu_ClearMoveHistory(void) U8G_NOINLINE; -void cu_ReduceHistoryByFullMove(void) U8G_NOINLINE; -void cu_UndoHalfMove(void) U8G_NOINLINE; -chm_p cu_PushHalfMove(void) U8G_NOINLINE; - - -void ce_CalculatePositionWeight(uint8_t pos); -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color); - -void chess_Thinking(void); -void ce_LoopPieces(void); - - -/*==============================================================*/ -/* search stack */ -/*==============================================================*/ - -/* get current element from stack */ -stack_element_p stack_GetCurrElement(void) -{ - return lrc_obj.curr_element; -} - -uint8_t stack_Push(uint8_t color) -{ - if ( lrc_obj.curr_depth == lrc_obj.max_depth ) - return 0; - lrc_obj.curr_depth++; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; - - /* change view for the evaluation */ - color ^= 1; - stack_GetCurrElement()->current_color = color; - - return 1; -} - -void stack_Pop(void) -{ - lrc_obj.curr_depth--; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; -} - -/* reset the current element on the stack */ -void stack_InitCurrElement(void) -{ - stack_element_p e = stack_GetCurrElement(); - e->best_eval = EVAL_T_MIN; - e->best_from_pos = ILLEGAL_POSITION; - e->best_to_pos = ILLEGAL_POSITION; -} - -/* resets the search stack (and the check mode) */ -void stack_Init(uint8_t max) -{ - lrc_obj.curr_depth = 0; - lrc_obj.curr_element = lrc_obj.stack_memory; - lrc_obj.max_depth = max; - lrc_obj.check_mode = CHECK_MODE_NONE; - stack_InitCurrElement(); - stack_GetCurrElement()->current_color = lrc_obj.ply_count; - stack_GetCurrElement()->current_color &= 1; -} - -/* assign evaluation value and store the move, if this is the best move */ -/* assumes, that current_pos contains the source position */ -void stack_SetMove(eval_t val, uint8_t to_pos) -{ - stack_element_p e = stack_GetCurrElement(); - if ( e->best_eval < val ) - { - e->best_eval = val; - e->best_from_pos = e->current_pos; - e->best_to_pos = to_pos; - } -} - -/* - calculate next position on a 0x88 board - loop is constructed in this way: - i = 0; - do - { - ... - i = cu_NextPos(i); - } while( i != 0 ); - - next pos might be started with an illegal position like 255 -*/ -uint8_t cu_NextPos(uint8_t pos) -{ - /* calculate next gpos */ - pos++; - if ( ( pos & 0x08 ) != 0 ) - { - pos+= 0x10; - pos&= 0xf0; - } - if ( ( pos & 0x80 ) != 0 ) - pos = 0; - return pos; -} - -uint8_t cu_PrevPos(uint8_t pos) -{ - /* calculate prev gpos */ - pos--; - if ( ( pos & 0x80 ) != 0 ) - pos = 0x077; - else if ( ( pos & 0x08 ) != 0 ) - { - pos &= 0xf0; - pos |= 0x07; - } - return pos; -} - - -/*==============================================================*/ -/* position transltion */ -/*==============================================================*/ -/* - there are two positions - 1. game position (gpos): BCD encoded x-y values - 2. board position (bpos): a number between 0 and 63, only used to access the board. -*/ -/* - gpos: game position value - returns: board position - note: does not do any checks -*/ -static uint8_t cu_gpos2bpos(uint8_t gpos) -{ - uint8_t bpos = gpos; - bpos &= 0xf0; - bpos >>= 1; - gpos &= 0x0f; - bpos |= gpos; - return bpos; -} - -#define gpos_IsIllegal(gpos) ((gpos) & 0x088) - - -/*==============================================================*/ -/* colored piece handling */ -/*==============================================================*/ - -#define cp_IsMarked(cp) ((cp) & CP_MARK_MASK) - - -/* - piece: one of PIECE_xxx - color: COLOR_WHITE or COLOR_BLACK - - returns: A colored piece -*/ -static uint8_t cp_Construct(uint8_t color, uint8_t piece) -{ - color <<= 4; - color |= piece; - return color; -} - -/* inline is better than a macro */ -static uint8_t cp_GetPiece(uint8_t cp) -{ - cp &= 0x0f; - return cp; -} - -/* - we could use a macro: - #define cp_GetColor(cp) (((cp) >> 4)&1) - however, inlined functions are sometimes much better -*/ -static uint8_t cp_GetColor(uint8_t cp) -{ - cp >>= 4; - cp &= 1; - return cp; -} - -/* - pos: game position - returns the colored piece at the given position -*/ -uint8_t cp_GetFromBoard(uint8_t pos) -{ - return lrc_obj.board[cu_gpos2bpos(pos)]; -} - -/* - pos: game position - cp: colored piece -*/ -void cp_SetOnBoard(uint8_t pos, uint8_t cp) -{ - /*printf("cp_SetOnBoard gpos:%02x cp:%02x\n", pos, cp);*/ - lrc_obj.board[cu_gpos2bpos(pos)] = cp; -} - -/*==============================================================*/ -/* global board access */ -/*==============================================================*/ - -void cu_ClearBoard(void) -{ - uint8_t i; - /* clear the board */ - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] = PIECE_NONE; - - lrc_obj.ply_count = 0; - lrc_obj.orientation = COLOR_WHITE; - - lrc_obj.pawn_dbl_move[0] = ILLEGAL_POSITION; - lrc_obj.pawn_dbl_move[1] = ILLEGAL_POSITION; - - lrc_obj.castling_possible = 0x0f; - - lrc_obj.is_game_end = 0; - lrc_obj.lost_side_color = 0; - - /* clear half move history */ - cu_ClearMoveHistory(); - -} - -/* - test setup - white wins in one move -*/ -void chess_SetupBoardTest01(void) -{ - cu_ClearBoard(); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[7+5*8] = cp_Construct(COLOR_WHITE, PIECE_PAWN); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); -} - -/* setup the global board */ -void chess_SetupBoard(void) -{ - uint8_t i; - register uint8_t bp, wp; - - /* clear the board */ - cu_ClearBoard(); - - /* precronstruct pawns */ - wp = cp_Construct(COLOR_WHITE, PIECE_PAWN); - bp = cp_Construct(COLOR_BLACK, PIECE_PAWN); - - /* setup pawn */ - for( i = 0; i < 8; i++ ) - { - lrc_obj.board[i+8] = wp; - lrc_obj.board[i+6*8] = bp; - } - - /* assign remaining pieces */ - - lrc_obj.board[0] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - lrc_obj.board[1] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[2] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); - lrc_obj.board[4] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[5] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[7] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[1+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[2+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[3+7*8] = cp_Construct(COLOR_BLACK, PIECE_QUEEN); - lrc_obj.board[4+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[5+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[6+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - - //chess_SetupBoardTest01(); - -} - - - -/*==============================================================*/ -/* checks */ -/*==============================================================*/ - -/* - checks if the position is somehow illegal -*/ -uint8_t cu_IsIllegalPosition(uint8_t pos, uint8_t my_color) -{ - uint8_t board_cp; - /* check, if the position is offboard */ - if ( gpos_IsIllegal(pos) != 0 ) - return 1; - /* get the piece from the board */ - board_cp = cp_GetFromBoard(pos); - /* check if hit our own pieces */ - if ( board_cp != 0 ) - if ( cp_GetColor(board_cp) == my_color ) - return 1; - /* all ok, we could go to this position */ - return 0; -} - -/*==============================================================*/ -/* evaluation procedure */ -/*==============================================================*/ - -/* - basic idea is to return a value between EVAL_T_MIN and EVAL_T_MAX -*/ - -/* - the weight table uses the PIECE number as index: - #define PIECE_NONE 0 - #define PIECE_PAWN 1 - #define PIECE_KNIGHT 2 - #define PIECE_BISHOP 3 - #define PIECE_ROOK 4 - #define PIECE_QUEEN 5 - #define PIECE_KING 6 - the king itself is not counted -*/ -uint8_t ce_piece_weight[] = { 0, 1, 3, 3, 5, 9, 0 }; -uint8_t ce_pos_weight[] = { 0, 1, 1, 2, 2, 1, 1, 0}; -/* - evaluate the current situation on the global board -*/ -eval_t ce_Eval(void) -{ - uint8_t cp; - uint8_t is_my_king_present = 0; - uint8_t is_opposit_king_present = 0; - eval_t material_my_color = 0; - eval_t material_opposit_color = 0; - eval_t position_my_color = 0; - eval_t position_opposit_color = 0; - eval_t result; - uint8_t pos; - - pos = 0; - do - { - /* get colored piece from the board */ - cp = cp_GetFromBoard(pos); - - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - if ( stack_GetCurrElement()->current_color == cp_GetColor(cp) ) - { - /* this is our color */ - /* check if we found our king */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_my_king_present = 1; - material_my_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_my_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - else - { - /* this is the opposit color */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_opposit_king_present = 1; - material_opposit_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_opposit_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - } - pos = cu_NextPos(pos); - } while( pos != 0 ); - - - /* decide if we lost or won the game */ - if ( is_my_king_present == 0 ) - return EVAL_T_MIN; /*_LOST*/ - if ( is_opposit_king_present == 0 ) - return EVAL_T_MAX; /*_WIN*/ - - /* here is the evaluation function */ - - result = material_my_color - material_opposit_color; - result <<= 3; - result += position_my_color - position_opposit_color; - return result; -} - -/*==============================================================*/ -/* move backup and restore */ -/*==============================================================*/ - - -/* this procedure must be called to keep the size as low as possible */ -/* if the chm_list is large enough, it could hold the complete history */ -/* but for an embedded controler... it is deleted for every engine search */ -void cu_ClearMoveHistory(void) -{ - lrc_obj.chm_pos = 0; -} - -void cu_ReduceHistoryByFullMove(void) -{ - uint8_t i; - while( lrc_obj.chm_pos > CHM_USER_SIZE ) - { - i = 0; - for(;;) - { - if ( i+2 >= lrc_obj.chm_pos ) - break; - lrc_obj.chm_list[i] = lrc_obj.chm_list[i+2]; - i++; - } - lrc_obj.chm_pos -= 2; - } -} - -void cu_UndoHalfMove(void) -{ - chm_p chm; - - if ( lrc_obj.chm_pos == 0 ) - return; - - lrc_obj.chm_pos--; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - - lrc_obj.pawn_dbl_move[0] = chm->pawn_dbl_move[0]; - lrc_obj.pawn_dbl_move[1] = chm->pawn_dbl_move[1]; - lrc_obj.castling_possible = chm->castling_possible; - - cp_SetOnBoard(chm->main_src, chm->main_cp); - cp_SetOnBoard(chm->main_dest, PIECE_NONE); - - if ( chm->other_src != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_src, chm->other_cp); - if ( chm->other_dest != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_dest, PIECE_NONE); - -} - -/* - assumes, that the following members of the returned chm structure are filled - uint8_t main_cp; the main piece, which is moved - uint8_t main_src; the source position of the main piece - uint8_t main_dest; the destination of the main piece - - uint8_t other_cp; another piece: the captured one, the ROOK in case of castling or PIECE_NONE - uint8_t other_src; the delete position of other_cp. Often identical to main_dest except for e.p. and castling - uint8_t other_dest; only used for castling: ROOK destination pos - -*/ -chm_p cu_PushHalfMove(void) -{ - chm_p chm; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - if ( lrc_obj.chm_pos < CHM_LIST_SIZE-1) - lrc_obj.chm_pos++; - - chm->pawn_dbl_move[0] = lrc_obj.pawn_dbl_move[0]; - chm->pawn_dbl_move[1] = lrc_obj.pawn_dbl_move[1]; - chm->castling_possible = lrc_obj.castling_possible; - return chm; -} - - -char chess_piece_to_char[] = "NBRQK"; - -/* - simple moves on empty field: Ka1-b2 - capture moves: Ka1xb2 - castling: 0-0 or 0-0-0 -*/ - -static void cu_add_pos(char *s, uint8_t pos) U8G_NOINLINE; - -static void cu_add_pos(char *s, uint8_t pos) -{ - *s = pos; - *s >>= 4; - *s += 'a'; - s++; - *s = pos; - *s &= 15; - *s += '1'; -} - -const char *cu_GetHalfMoveStr(uint8_t idx) -{ - chm_p chm; - static char buf[7]; /*Ka1-b2*/ - char *p = buf; - chm = lrc_obj.chm_list+idx; - - if ( cp_GetPiece(chm->main_cp) != PIECE_NONE ) - { - if ( cp_GetPiece(chm->main_cp) > PIECE_PAWN ) - { - *p++ = chess_piece_to_char[cp_GetPiece(chm->main_cp)-2]; - } - cu_add_pos(p, chm->main_src); - p+=2; - if ( cp_GetPiece(chm->other_cp) == PIECE_NONE ) - *p++ = '-'; - else - *p++ = 'x'; - cu_add_pos(p, chm->main_dest); - p+=2; - } - *p = '\0'; - return buf; -} - - - - - -/*==============================================================*/ -/* move */ -/*==============================================================*/ - -/* - Move a piece from source position to a destination on the board - This function - - does not perform any checking - - however it processes "en passant" and casteling - - backup the move and allow 1x undo - - 2011-02-05: - - fill pawn_dbl_move[] for double pawn moves - --> done - - Implement casteling - --> done - - en passant - --> done - - pawn conversion/promotion - --> done - - half-move backup - --> done - - cleanup everything, minimize variables - --> done -*/ - -void cu_Move(uint8_t src, uint8_t dest) -{ - /* start backup structure */ - chm_p chm = cu_PushHalfMove(); - - /* these are the values from the board at the positions, provided as arguments to this function */ - uint8_t cp_src, cp_dest; - - /* Maybe a second position is cleared and one additional location is set */ - uint8_t clr_pos2; - uint8_t set_pos2; - uint8_t set_cp2; - - /* get values from board */ - cp_src = cp_GetFromBoard(src); - cp_dest = cp_GetFromBoard(dest); - - /* fill backup structure */ - - chm->main_cp = cp_src; - chm->main_src = src; - chm->main_dest = dest; - - chm->other_cp = cp_dest; /* prepace capture backup */ - chm->other_src = dest; - chm->other_dest = ILLEGAL_POSITION; - - /* setup results as far as possible with some suitable values */ - - clr_pos2 = ILLEGAL_POSITION; /* for en passant and castling, two positions might be cleared */ - set_pos2 = ILLEGAL_POSITION; /* only used for castling */ - set_cp2 = PIECE_NONE; /* ROOK for castling */ - - /* check for PAWN */ - if ( cp_GetPiece(cp_src) == PIECE_PAWN ) - { - - /* double step: is the distance 2 rows */ - if ( (src - dest == 32) || ( dest - src == 32 ) ) - { - /* remember the destination position */ - lrc_obj.pawn_dbl_move[cp_GetColor(cp_src)] = dest; - } - - /* check if the PAWN is able to promote */ - else if ( (dest>>4) == 0 || (dest>>4) == 7 ) - { - /* do simple "queening" */ - cp_src &= ~PIECE_PAWN; - cp_src |= PIECE_QUEEN; - } - - /* is it en passant capture? */ - /* check for side move */ - else if ( ((src + dest) & 1) != 0 ) - { - /* check, if target field is empty */ - if ( cp_GetPiece(cp_dest) == PIECE_NONE ) - { - /* this is en passant */ - /* no further checking required, because legal moves are assumed here */ - /* however... the captured pawn position must be valid */ - clr_pos2 = lrc_obj.pawn_dbl_move[cp_GetColor(cp_src) ^ 1]; - chm->other_src = clr_pos2; - chm->other_cp = cp_GetFromBoard(clr_pos2); - } - } - } - - /* check for the KING */ - else if ( cp_GetPiece(cp_src) == PIECE_KING ) - { - /* disallow castling, if the KING has moved */ - if ( cp_GetColor(cp_src) == COLOR_WHITE ) - { - /* if white KING has moved, disallow castling for white */ - lrc_obj.castling_possible &= 0x0c; - } - else - { - /* if black KING has moved, disallow castling for black */ - lrc_obj.castling_possible &= 0x03; - } - - /* has it been castling to the left? */ - if ( src - dest == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src-1; - set_cp2 = cp_GetFromBoard(src-4); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src-4; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - } - - /* has it been castling to the right? */ - else if ( dest - src == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src+1; - set_cp2 = cp_GetFromBoard(src+3); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src+3; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - - } - - } - - /* check for the ROOK */ - else if ( cp_GetPiece(cp_src) == PIECE_ROOK ) - { - /* disallow white left castling */ - if ( src == 0x00 ) - lrc_obj.castling_possible &= ~0x01; - /* disallow white right castling */ - if ( src == 0x07 ) - lrc_obj.castling_possible &= ~0x02; - /* disallow black left castling */ - if ( src == 0x70 ) - lrc_obj.castling_possible &= ~0x04; - /* disallow black right castling */ - if ( src == 0x77 ) - lrc_obj.castling_possible &= ~0x08; - } - - - /* apply new board situation */ - - cp_SetOnBoard(dest, cp_src); - - if ( set_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(set_pos2, set_cp2); - - cp_SetOnBoard(src, PIECE_NONE); - - if ( clr_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(clr_pos2, PIECE_NONE); - - -} - -/* - this subprocedure decides for evaluation of the current board situation or further (deeper) investigation - Argument pos is the new target position if the current piece - -*/ -uint8_t ce_LoopRecur(uint8_t pos) -{ - eval_t eval; - - /* 1. check if target position is occupied by the same player (my_color) */ - /* of if pos is somehow illegal or not valid */ - if ( cu_IsIllegalPosition(pos, stack_GetCurrElement()->current_color) != 0 ) - return 0; - - /* 2. move piece to the specified position, capture opponent piece if required */ - cu_Move(stack_GetCurrElement()->current_pos, pos); - - - /* 3. */ - /* if depth reached: evaluate */ - /* else: go down next level */ - /* no eval if there had been any valid half-moves, so the default value (MIN) will be returned. */ - if ( stack_Push(stack_GetCurrElement()->current_color) == 0 ) - { - eval = ce_Eval(); - } - else - { - /* init the element, which has been pushed */ - stack_InitCurrElement(); - /* start over with ntext level */ - ce_LoopPieces(); - /* get the best move from opponents view, so invert the result */ - eval = -stack_GetCurrElement()->best_eval; - stack_Pop(); - } - - /* 4. store result */ - stack_SetMove(eval, pos); - - /* 5. undo the move */ - cu_UndoHalfMove(); - - /* 6. check special modes */ - /* the purpose of these checks is to mark special pieces and positions on the board */ - /* these marks can be checked by the user interface to highlight special positions */ - if ( lrc_obj.check_mode != 0 ) - { - stack_element_p e = stack_GetCurrElement(); - if ( lrc_obj.check_mode == CHECK_MODE_MOVEABLE ) - { - cp_SetOnBoard(e->current_pos, e->current_cp | CP_MARK_MASK ); - } - else if ( lrc_obj.check_mode == CHECK_MODE_TARGET_MOVE ) - { - if ( e->current_pos == lrc_obj.check_src_pos ) - { - cp_SetOnBoard(pos, cp_GetFromBoard(pos) | CP_MARK_MASK ); - } - } - } - return 1; -} - -/*==============================================================*/ -/* move pieces which can move one or more steps into a direction */ -/*==============================================================*/ - -/* - subprocedure to generate various target positions for some pieces - special cases are handled in the piece specific sub-procedure - - Arguments: - d: a list of potential directions - is_multi_step: if the piece can only do one step (zero for KING and KNIGHT) -*/ -static const uint8_t ce_dir_offset_rook[] PROGMEM = { 1, 16, -16, -1, 0 }; -static const uint8_t ce_dir_offset_bishop[] PROGMEM = { 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_queen[] PROGMEM = { 1, 16, -16, -1, 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_knight[] PROGMEM = {14, -14, 18, -18, 31, -31, 33, -33, 0}; - -void ce_LoopDirsSingleMultiStep(const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = stack_GetCurrElement()->current_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* - go further to ce_LoopRecur() - 0 will be returned if the target position is illegal or a piece of the own color - this is used to stop walking into one direction - */ - if ( ce_LoopRecur(loop_pos) == 0 ) - break; - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - break; - } while( is_multi_step ); - d++; - } -} - -void ce_LoopRook(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_rook, 1); -} - -void ce_LoopBishop(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_bishop, 1); -} - -void ce_LoopQueen(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 1); -} - -void ce_LoopKnight(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_knight, 0); -} - - - -/*==============================================================*/ -/* move king */ -/*==============================================================*/ - -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) U8G_NOINLINE; - -/* - checks, if the king can do castling - - Arguments: - mask: the bit-mask for the global "castling possible" flag - direction: left castling: -1, right castling 1 - cnt: number of fields to be checked: 3 or 2 -*/ -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) -{ - uint8_t pos; - uint8_t opponent_color; - - /* check if the current board state allows castling */ - if ( (lrc_obj.castling_possible & mask) == 0 ) - return 0; /* castling not allowed */ - - /* get the position of the KING, could be white or black king */ - pos = stack_GetCurrElement()->current_pos; - - /* calculate the color of the opponent */ - opponent_color = 1; - opponent_color -= stack_GetCurrElement()->current_color; - - /* if the KING itself is given check... */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - - /* check if fields in the desired direction are emtpy */ - for(;;) - { - /* go to the next field */ - pos += direction; - /* check for a piece */ - if ( cp_GetPiece(cp_GetFromBoard(pos)) != PIECE_NONE ) - return 0; /* castling not allowed */ - - /* if some of the fields are under attack */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - cnt--; - if ( cnt == 0 ) - break; - } - return 1; /* castling allowed */ -} - -void ce_LoopKing(void) -{ - /* - there is an interessting timing problem in this procedure - it must be checked for castling first and as second step the normal - KING movement. If we would first check for normal moves, than - any marks might be overwritten by the ROOK in the case of castling. - */ - - /* castling (this must be done before checking normal moves (see above) */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - /* white left castling */ - if ( cu_IsKingCastling(1, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* white right castling */ - if ( cu_IsKingCastling(2, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - else - { - /* black left castling */ - if ( cu_IsKingCastling(4, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* black right castling */ - if ( cu_IsKingCastling(8, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - - /* reuse queen directions */ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 0); -} - - -/*==============================================================*/ -/* move pawn */ -/*==============================================================*/ - -/* - doppelschritt: nur von der grundlinie aus, beide (!) felder vor dem bauern mssen frei sein - en passant: nur unmittelbar nachdem ein doppelschritt ausgefhrt wurde. -*/ -void ce_LoopPawnSideCapture(uint8_t loop_pos) -{ - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* get the piece from the board */ - /* if the field is NOT empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - { - /* normal capture */ - ce_LoopRecur(loop_pos); - /* TODO: check for pawn conversion/promotion */ - } - else - { - /* check conditions for en passant capture */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - if ( lrc_obj.pawn_dbl_move[COLOR_BLACK]+16 == loop_pos ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - else - { - if ( lrc_obj.pawn_dbl_move[COLOR_WHITE] == loop_pos+16 ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - } - } -} - -void ce_LoopPawn(void) -{ - uint8_t initial_pos = stack_GetCurrElement()->current_pos; - uint8_t my_color = stack_GetCurrElement()->current_color; - - uint8_t loop_pos; - uint8_t line; - - /* one step forward */ - - loop_pos = initial_pos; - line = initial_pos; - line >>= 4; - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* if the field is empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* TODO: check for and loop through piece conversion/promotion */ - ce_LoopRecur(loop_pos); - - /* second step forward */ - - /* if pawn is on his starting line */ - if ( (my_color == COLOR_WHITE && line == 1) || (my_color == COLOR_BLACK && line == 6 ) ) - { - /* the place before the pawn is not occupied, so we can do double moves, see above */ - - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* this is a special case, other promotions of the pawn can not occur */ - ce_LoopRecur(loop_pos); - } - } - } - } - - /* capture */ - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 15; - else - loop_pos -= 15; - ce_LoopPawnSideCapture(loop_pos); - - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 17; - else - loop_pos -= 17; - ce_LoopPawnSideCapture(loop_pos); -} - -/*==============================================================*/ -/* attacked */ -/*==============================================================*/ - -/* - from a starting position, search for a piece, that might jump to that postion. - return: - the two global variables - lrc_obj.find_piece_weight[0]; - lrc_obj.find_piece_weight[1]; - will be increased by the weight of the attacked pieces of that color. - it is usually required to reset these global variables to zero, before using - this function. -*/ - -void ce_FindPieceByStep(uint8_t start_pos, uint8_t piece, const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos, cp; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = start_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* check if the board boundary has been crossed */ - if ( (loop_pos & 0x088) != 0 ) - break; - - /* get the colored piece from the board */ - cp = cp_GetFromBoard(loop_pos); - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - /* if it is the piece we are looking for, then add the weight */ - if ( cp_GetPiece(cp) == piece ) - { - lrc_obj.find_piece_weight[cp_GetColor(cp)] += ce_piece_weight[piece]; - lrc_obj.find_piece_cnt[cp_GetColor(cp)]++; - } - /* in any case, break out of the inner loop */ - break; - } - } while( is_multi_step ); - d++; - } -} - -void ce_FindPawnPiece(uint8_t dest_pos, uint8_t color) -{ - uint8_t cp; - /* check if the board boundary has been crossed */ - if ( (dest_pos & 0x088) == 0 ) - { - /* get the colored piece from the board */ - cp = cp_GetFromBoard(dest_pos); - /* only if there is a pawn of the matching color */ - if ( cp_GetPiece(cp) == PIECE_PAWN ) - { - if ( cp_GetColor(cp) == color ) - { - /* the weight of the PAWN */ - lrc_obj.find_piece_weight[color] += 1; - lrc_obj.find_piece_cnt[color]++; - } - } - } -} - - -/* - find out, which pieces do attack a specified field - used to - - check if the KING can do castling - - check if the KING must move - - may be used in the eval procedure ... once... - - the result is stored in the global array - uint8_t lrc_obj.find_piece_weight[2]; - which is indexed with the color. - lrc_obj.find_piece_weight[COLOR_WHITE] is the sum of all white pieces - which can directly move to this field. - - example: - if the black KING is at "pos" and lrc_obj.find_piece_weight[COLOR_WHITE] is not zero - (after executing ce_CalculatePositionWeight(pos)) then the KING must be protected or moveed, because - the KING was given check. -*/ - -void ce_CalculatePositionWeight(uint8_t pos) -{ - - lrc_obj.find_piece_weight[0] = 0; - lrc_obj.find_piece_weight[1] = 0; - lrc_obj.find_piece_cnt[0] = 0; - lrc_obj.find_piece_cnt[1] = 0; - - if ( (pos & 0x088) != 0 ) - return; - - ce_FindPieceByStep(pos, PIECE_ROOK, ce_dir_offset_rook, 1); - ce_FindPieceByStep(pos, PIECE_BISHOP, ce_dir_offset_bishop, 1); - ce_FindPieceByStep(pos, PIECE_QUEEN, ce_dir_offset_queen, 1); - ce_FindPieceByStep(pos, PIECE_KNIGHT, ce_dir_offset_knight, 0); - ce_FindPieceByStep(pos, PIECE_KING, ce_dir_offset_queen, 0); - - ce_FindPawnPiece(pos+17, COLOR_BLACK); - ce_FindPawnPiece(pos+15, COLOR_BLACK); - ce_FindPawnPiece(pos-17, COLOR_WHITE); - ce_FindPawnPiece(pos-15, COLOR_WHITE); -} - -/* - calculate the summed weight of pieces with specified color which can move to a specified position - - argument: - pos: the position which should be analysed - color: the color of those pieces which should be analysed - e.g. if a black piece is at 'pos' and 'color' is white then this procedure returns the white atting count -*/ -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_weight[color]; -} - -uint8_t ce_GetPositionAttackCount(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_cnt[color]; -} - - -/*==============================================================*/ -/* depth search starts here: loop over all pieces of the current color on the board */ -/*==============================================================*/ - -void ce_LoopPieces(void) -{ - stack_element_p e = stack_GetCurrElement(); - /* start with lower left position (A1) */ - e->current_pos = 0; - do - { - e->current_cp = cp_GetFromBoard(e->current_pos); - /* check if the position on the board is empty */ - if ( e->current_cp != 0 ) - { - /* only generate moves for the current color */ - if ( e->current_color == cp_GetColor(e->current_cp) ) - { - chess_Thinking(); - - /* find out which piece is used */ - switch(cp_GetPiece(e->current_cp)) - { - case PIECE_NONE: - break; - case PIECE_PAWN: - ce_LoopPawn(); - break; - case PIECE_KNIGHT: - ce_LoopKnight(); - break; - case PIECE_BISHOP: - ce_LoopBishop(); - break; - case PIECE_ROOK: - ce_LoopRook(); - break; - case PIECE_QUEEN: - ce_LoopQueen(); - break; - case PIECE_KING: - ce_LoopKing(); - break; - } - } - } - e->current_pos = cu_NextPos(e->current_pos); - } while( e->current_pos != 0 ); -} - -/*==============================================================*/ -/* user interface */ -/*==============================================================*/ - -/* -eval_t chess_EvalCurrBoard(uint8_t color) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = color; - ce_LoopPieces(); - return stack_GetCurrElement()->best_eval; -} -*/ - -/* clear any marks on the board */ -void chess_ClearMarks(void) -{ - uint8_t i; - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] &= ~CP_MARK_MASK; -} - -/* - Mark all pieces which can do moves. This is done by setting flags on the global board -*/ -void chess_MarkMovable(void) -{ - stack_Init(0); - //stack_GetCurrElement()->current_color = color; - lrc_obj.check_mode = CHECK_MODE_MOVEABLE; - ce_LoopPieces(); -} - -/* - Checks, if the piece can move from src_pos to dest_pos - - src_pos: The game position of a piece on the chess board -*/ -void chess_MarkTargetMoves(uint8_t src_pos) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = cp_GetColor(cp_GetFromBoard(src_pos)); - lrc_obj.check_src_pos = src_pos; - lrc_obj.check_mode = CHECK_MODE_TARGET_MOVE; - ce_LoopPieces(); -} - -/* - first call should start with 255 - this procedure will return 255 if - - there are no marks at all - - it has looped over all marks once -*/ -uint8_t chess_GetNextMarked(uint8_t arg, uint8_t is_prev) -{ - uint8_t i; - uint8_t pos = arg; - for(i = 0; i < 64; i++) - { - if ( is_prev != 0 ) - pos = cu_PrevPos(pos); - else - pos = cu_NextPos(pos); - if ( arg != 255 && pos == 0 ) - return 255; - if ( cp_IsMarked(cp_GetFromBoard(pos)) ) - return pos; - } - return 255; -} - - -/* make a manual move: this is a little bit more than cu_Move() */ -void chess_ManualMove(uint8_t src, uint8_t dest) -{ - uint8_t cp; - - /* printf("chess_ManualMove %02x -> %02x\n", src, dest); */ - - /* if all other things fail, this is the place where the game is to be decided: */ - /* ... if the KING is captured */ - cp = cp_GetFromBoard(dest); - if ( cp_GetPiece(cp) == PIECE_KING ) - { - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = cp_GetColor(cp); - } - - /* clear ply history here, to avoid memory overflow */ - /* may be the last X moves can be kept here */ - cu_ReduceHistoryByFullMove(); - /* perform the move on the board */ - cu_Move(src, dest); - - /* update en passant double move positions: en passant position is removed after two half moves */ - lrc_obj.pawn_dbl_move[lrc_obj.ply_count&1] = ILLEGAL_POSITION; - - /* update the global half move counter */ - lrc_obj.ply_count++; - - - /* make a small check about the end of the game */ - /* use at least depth 1, because we must know if the king can still move */ - /* this is: King moves at level 0 and will be captured at level 1 */ - /* so we check if the king can move and will not be captured at search level 1 */ - - stack_Init(1); - ce_LoopPieces(); - - /* printf("chess_ManualMove/analysis best_from_pos %02x -> best_to_pos %02x\n", stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); */ - - /* analyse the eval result */ - - /* check if the other player has any moves left */ - if ( stack_GetCurrElement()->best_from_pos == ILLEGAL_POSITION ) - { - uint8_t color; - /* conditions: */ - /* 1. no King, should never happen, opposite color has won */ - /* this is already checked above at the beginning if this procedure */ - /* 2. King is under attack, opposite color has won */ - /* 3. King is not under attack, game is a draw */ - - uint8_t i = 0; - color = lrc_obj.ply_count; - color &= 1; - do - { - cp = cp_GetFromBoard(i); - /* look for the King */ - if ( cp_GetPiece(cp) == PIECE_KING ) - { - if ( cp_GetColor(cp) == color ) - { - /* check if KING is attacked */ - if ( ce_GetPositionAttackCount(i, color^1) != 0 ) - { - /* KING is under attack (check) and can not move: Game is lost */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = color; - } - else - { - /* KING is NOT under attack (check) but can not move: Game is a draw */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = 2; - } - /* break out of the loop */ - break; - } - } - i = cu_NextPos(i); - } while( i != 0 ); - } -} - -/* let the computer do a move */ -void chess_ComputerMove(uint8_t depth) -{ - stack_Init(depth); - - //stack_GetCurrElement()->current_color = lrc_obj.ply_count; - //stack_GetCurrElement()->current_color &= 1; - - cu_ReduceHistoryByFullMove(); - ce_LoopPieces(); - - chess_ManualMove(stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); -} - - -/*==============================================================*/ -/* unix code */ -/*==============================================================*/ - -#ifdef UNIX_MAIN - -#include -#include - -char *piece_str[] = { - /* 0x00 */ - " ", - "wP", - "wN", - "wB", - - /* 0x04 */ - "wR", - "wQ", - "wK", - "w?", - - /* 0x08 */ - "w?", - "w?", - "w?", - "w?", - - /* 0x0c */ - "w?", - "w?", - "w?", - "w?", - - /* 0x10 */ - "b ", - "bP", - "bN", - "bB", - "bR", - "bQ", - "bK", - "b?", - - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?" -}; - -void chess_Thinking(void) -{ - uint8_t i; - uint8_t cp = cp_GetPiece(stack_GetCurrElement()->current_cp); - - printf("Thinking: ", piece_str[cp], stack_GetCurrElement()->current_pos); - - for( i = 0; i <= lrc_obj.curr_depth; i++ ) - printf("%s ", piece_str[(lrc_obj.stack_memory+i)->current_cp]); - - printf(" \r"); -} - -void board_Show(void) -{ - uint8_t i, j, cp; - char buf[10]; - for ( i = 0; i < 8; i++ ) - { - printf("%1d ", 7-i); - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - cp = lrc_obj.board[(7-i)*8+j]; - strcpy(buf, piece_str[cp&COLOR_PIECE_MASK]); - - if ( (cp & CP_MARK_MASK) != 0 ) - { - buf[0] = '#'; - } - - /* mask out any bits except color and piece index */ - cp &= COLOR_PIECE_MASK; - printf("%s %02x ", buf, cp); - - } - printf("\n"); - } -} - -int main(void) -{ - uint8_t depth = 3; - chess_SetupBoard(); - board_Show(); - puts(""); - - - /* - chess_ClearMarks(); - chess_MarkMovable(COLOR_WHITE); - board_Show(); - */ - - chess_ManualMove(0x006, 0x066); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - chess_ComputerMove(2); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - board_Show(); - -} - - - -#else - -/*==============================================================*/ -/* display menu */ -/*==============================================================*/ - -//#define MNU_FONT font_5x7 -#define MNU_FONT u8g_font_5x8r -//#define MNU_FONT font_6x9 -#define MNU_ENTRY_HEIGHT 9 - -char *mnu_title = "Little Rook Chess"; -char *mnu_list[] = { "New Game (White)", "New Game (Black)", "Undo Move", "Return" }; -uint8_t mnu_pos = 0; -uint8_t mnu_max = 4; - -void mnu_DrawHome(uint8_t is_highlight) -{ - uint8_t x = lrc_u8g->width - 35; - uint8_t y = (lrc_u8g->height-1); - uint8_t t; - - u8g_SetFont(lrc_u8g, u8g_font_5x7r); - u8g_SetDefaultForegroundColor(lrc_u8g); - t = u8g_DrawStrP(lrc_u8g, x, y -1, U8G_PSTR("Options")); - - if ( is_highlight ) - u8g_DrawFrame(lrc_u8g, x-1, y - MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); -} - -void mnu_DrawEntry(uint8_t y, char *str, uint8_t is_clr_background, uint8_t is_highlight) -{ - uint8_t t, x; - u8g_SetFont(lrc_u8g, MNU_FONT); - t = u8g_GetStrWidth(lrc_u8g, str); - x = u8g_GetWidth(lrc_u8g); - x -= t; - x >>= 1; - - if ( is_clr_background ) - { - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x-3, (lrc_u8g->height-1) - (y+MNU_ENTRY_HEIGHT-1+2), t+5, MNU_ENTRY_HEIGHT+4); - } - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawStr(lrc_u8g, x, (lrc_u8g->height-1) - y, str); - - if ( is_highlight ) - { - u8g_DrawFrame(lrc_u8g, x-1, (lrc_u8g->height-1) - y -MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); - } -} - -void mnu_Draw(void) -{ - uint8_t i; - uint8_t t,y; - /* calculate hight of the complete menu */ - y = mnu_max; - y++; /* consider also some space for the title */ - y++; /* consider also some space for the title */ - y *= MNU_ENTRY_HEIGHT; - - /* calculate how much space will be left */ - t = u8g_GetHeight(lrc_u8g); - t -= y; - - /* topmost pos start half of that empty space from the top */ - t >>= 1; - y = u8g_GetHeight(lrc_u8g); - y -= t; - - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_title, 0, 0); - - y -= MNU_ENTRY_HEIGHT; - - - for( i = 0; i < mnu_max; i++ ) - { - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_list[i], 0, i == mnu_pos); - } -} - -void mnu_Step(uint8_t key_cmd) -{ - if ( key_cmd == CHESS_KEY_NEXT ) - { - if ( mnu_pos+1 < mnu_max ) - mnu_pos++; - } - else if ( key_cmd == CHESS_KEY_PREV ) - { - if ( mnu_pos > 0 ) - mnu_pos--; - } -} - - - - -uint8_t chess_key_code = 0; -uint8_t chess_key_cmd = 0; -#define CHESS_STATE_MENU 0 -#define CHESS_STATE_SELECT_START 1 -#define CHESS_STATE_SELECT_PIECE 2 -#define CHESS_STATE_SELECT_TARGET_POS 3 -#define CHESS_STATE_THINKING 4 -#define CHESS_STATE_GAME_END 5 -uint8_t chess_state = CHESS_STATE_MENU; -uint8_t chess_source_pos = 255; -uint8_t chess_target_pos = 255; - -const uint8_t chess_pieces_body_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, */ - /* KNIGHT */ 0x00, 0x00, 0x1c, 0x2c, 0x04, 0x04, 0x0e, 0x00, - /* BISHOP */ 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x08, 0x00, 0x00, /* 0x00, 0x00, 0x08, 0x1c, 0x1c, 0x08, 0x00, 0x00, */ - /* ROOK */ 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, - /* QUEEN */ 0x00, 0x00, 0x14, 0x1c, 0x08, 0x1c, 0x08, 0x00, - /* KING */ 0x00, 0x00, 0x00, 0x08, 0x3e, 0x1c, 0x08, 0x00, -}; - -#ifdef NOT_REQUIRED -/* white pieces are constructed by painting black pieces and cutting out the white area */ -const uint8_t chess_white_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x0c, 0x12, 0x12, 0x0c, 0x1e, 0x00, - /* KNIGHT */ 0x00, 0x1c, 0x22, 0x52, 0x6a, 0x0a, 0x11, 0x1f, - /* BISHOP */ 0x00, 0x08, 0x14, 0x22, 0x22, 0x14, 0x08, 0x7f, - /* ROOK */ 0x00, 0x55, 0x7f, 0x22, 0x22, 0x22, 0x22, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x2a, 0x22, 0x14, 0x22, 0x14, 0x7f, - /* KING */ 0x08, 0x1c, 0x49, 0x77, 0x41, 0x22, 0x14, 0x7f, -}; -#endif - -const uint8_t chess_black_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x3c, 0x00, /* 0x00, 0x00, 0x0c, 0x1e, 0x1e, 0x0c, 0x1e, 0x00, */ - /* KNIGHT */ 0x00, 0x1c, 0x3e, 0x7e, 0x6e, 0x0e, 0x1f, 0x1f, - /* BISHOP */ 0x00, 0x1c, 0x2e, 0x3e, 0x3e, 0x1c, 0x08, 0x7f, /*0x00, 0x08, 0x1c, 0x3e, 0x3e, 0x1c, 0x08, 0x7f,*/ - /* ROOK */ 0x00, 0x55, 0x7f, 0x3e, 0x3e, 0x3e, 0x3e, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x3e, 0x3e, 0x1c, 0x3e, 0x1c, 0x7f, - /* KING -*/ 0x08, 0x1c, 0x49, 0x7f, 0x7f, 0x3e, 0x1c, 0x7f, -}; - - -#if defined(DOGXL160_HW_GR) -#define BOXSIZE 13 -#define BOXOFFSET 3 -#else -#define BOXSIZE 8 -#define BOXOFFSET 1 -#endif - -u8g_uint_t chess_low_edge; -uint8_t chess_boxsize = 8; -uint8_t chess_boxoffset = 1; - - -void chess_DrawFrame(uint8_t pos, uint8_t is_bold) -{ - u8g_uint_t x0, y0; - - x0 = pos; - x0 &= 15; - if ( lrc_obj.orientation != COLOR_WHITE ) - x0 ^= 7; - - y0 = pos; - y0>>= 4; - if ( lrc_obj.orientation != COLOR_WHITE ) - y0 ^= 7; - - x0 *= chess_boxsize; - y0 *= chess_boxsize; - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize+1, chess_boxsize, chess_boxsize); - - - if ( is_bold ) - { - x0--; - y0++; - - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize +1, chess_boxsize+2, chess_boxsize+2); - } -} - - -void chess_DrawBoard(void) -{ - uint8_t i, j, cp; - const uint8_t *ptr; /* pointer into PROGMEM */ - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) > 1 ) - { - for( i = 0; i < 8; i++ ) - for( j = 0; j < 8; j++ ) - { - uint8_t x,y; - x = i; - x*=chess_boxsize; - y = j; - y*=chess_boxsize; - if ( ((i^j) & 1) == 0 ) - u8g_SetDefaultMidColor(lrc_u8g); - else - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x,chess_low_edge-y-chess_boxsize+1,chess_boxsize,chess_boxsize); - } - //u8g_SetDefaultForegroundColor(lrc_u8g); - } - else - { - uint8_t x_offset = 1; - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < 8*8; i+=8 ) - { - for( j = 0; j < 8*8; j+=8 ) - { - if ( ((i^j) & 8) == 0 ) - { - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-6); - } - } - } - } - - for ( i = 0; i < 8; i++ ) - { - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - if ( lrc_obj.orientation == COLOR_WHITE ) - { - cp = lrc_obj.board[i*8+j]; - } - else - { - cp = lrc_obj.board[(7-i)*8+7-j]; - } - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - ptr = chess_black_pieces_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - - if ( cp_GetColor(cp) == lrc_obj.strike_out_color ) - { - ptr = chess_pieces_body_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - } - } - } - } - - if ( (chess_source_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_source_pos, 1); - } - - if ( (chess_target_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_target_pos, 0); - } - -} - - -void chess_Thinking(void) -{ -} - -void chess_Init(u8g_t *u8g, uint8_t body_color) -{ - lrc_u8g = u8g; - - chess_low_edge = u8g_GetHeight(lrc_u8g); - chess_low_edge--; - - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) == 1 ) - { - - chess_boxsize = 8; - chess_boxoffset = 1; - } - else - { - - /* - if ( u8g_GetHeight(lrc_u8g) >= 12*8 ) - { - chess_boxsize = 12; - chess_boxoffset = 3; - } - else */ if ( u8g_GetHeight(lrc_u8g) >= 11*8 ) - { - chess_boxsize = 10; - chess_boxoffset = 2; - } - else - { - chess_boxsize = 8; - chess_boxoffset = 1; - } - - if ( u8g_GetHeight(lrc_u8g) > 64 ) - chess_low_edge -= (u8g_GetHeight(lrc_u8g)-chess_boxsize*8) / 2; - - } - - lrc_obj.strike_out_color = body_color; - chess_SetupBoard(); -} - - - -void chess_Draw(void) -{ - if ( chess_state == CHESS_STATE_MENU ) - { - if ( lrc_obj.ply_count == 0) - mnu_max = 2; - else - mnu_max = 4; - mnu_Draw(); - } - else - { - chess_DrawBoard(); - - { - uint8_t i; - uint8_t entries = lrc_obj.chm_pos; - if ( entries > 4 ) - entries = 4; - - u8g_SetFont(lrc_u8g, u8g_font_5x7); - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < entries; i++ ) - { - -#if defined(DOGXL160_HW_GR) || defined(DOGXL160_HW_BW) - dog_DrawStr(u8g_GetWidth(lrc_u8g)-35, u8g_GetHeight(lrc_u8g)-8*(i+1), font_5x7, cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#else - u8g_DrawStr(lrc_u8g, u8g_GetWidth(lrc_u8g)-35, 8*(i+1), cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#endif - - } - - } - - if ( chess_state == CHESS_STATE_SELECT_PIECE ) - mnu_DrawHome(chess_source_pos == 255); - else if ( chess_state == CHESS_STATE_SELECT_TARGET_POS ) - mnu_DrawHome(chess_target_pos == 255); - else - mnu_DrawHome(0); - - if ( chess_state == CHESS_STATE_GAME_END ) - { - switch( lrc_obj.lost_side_color ) - { - case COLOR_WHITE: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Black wins", 1, 1); - break; - case COLOR_BLACK: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "White wins", 1, 1); - break; - default: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Stalemate", 1, 1); - break; - } - } - } -} - - -void chess_Step(uint8_t keycode) -{ - if ( keycode == CHESS_KEY_NONE ) - { - chess_key_cmd = chess_key_code; - chess_key_code = CHESS_KEY_NONE; - } - else - { - chess_key_cmd = CHESS_KEY_NONE; - chess_key_code = keycode; - } - //chess_ComputerMove(2); - switch(chess_state) - { - case CHESS_STATE_MENU: - mnu_Step(chess_key_cmd); - if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( mnu_pos == 0 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 0; - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 1 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 1; - chess_state = CHESS_STATE_THINKING; - } - else if ( mnu_pos == 2 ) - { - if ( lrc_obj.ply_count >= 2 ) - { - cu_UndoHalfMove(); - cu_UndoHalfMove(); - lrc_obj.ply_count-=2; - if ( lrc_obj.ply_count == 0 ) - mnu_pos = 0; - } - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 3 ) - { - chess_state = CHESS_STATE_SELECT_START; - } - } - break; - case CHESS_STATE_SELECT_START: - chess_ClearMarks(); - chess_MarkMovable(); - chess_source_pos = chess_GetNextMarked(255, 0); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - break; - - case CHESS_STATE_SELECT_PIECE: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( chess_source_pos == 255 ) - { - chess_state = CHESS_STATE_MENU; - } - else - { - chess_ClearMarks(); - chess_MarkTargetMoves(chess_source_pos); - chess_target_pos = chess_GetNextMarked(255, 0); - chess_state = CHESS_STATE_SELECT_TARGET_POS; - } - } - break; - case CHESS_STATE_SELECT_TARGET_POS: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_BACK ) - { - chess_ClearMarks(); - chess_MarkMovable(); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - chess_ManualMove(chess_source_pos, chess_target_pos); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_THINKING; - /* clear marks as some kind of feedback to the user... it simply looks better */ - chess_source_pos = ILLEGAL_POSITION; - chess_target_pos = ILLEGAL_POSITION; - chess_ClearMarks(); - } - break; - case CHESS_STATE_THINKING: - chess_ComputerMove(2); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_SELECT_START; - break; - case CHESS_STATE_GAME_END: - if ( chess_key_cmd != CHESS_KEY_NONE ) - { - chess_state = CHESS_STATE_MENU; - chess_SetupBoard(); - } - break; - } - -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h deleted file mode 100644 index afe161fc6c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g.h +++ /dev/null @@ -1,1977 +0,0 @@ -/* - - u8g.h - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _U8G_H -#define _U8G_H - -/* uncomment the following line to support displays larger than 240x240 */ -//#define U8G_16BIT 1 - -/* comment the following line to generate more compact but interrupt unsafe code */ -#define U8G_INTERRUPT_SAFE 1 - - -#include - -#ifdef __18CXX -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -#else -#include -#endif - -#if defined(__AVR__) -#include -#endif - -/* - use the com interface directly on any systems which are not AVR or ARDUINO -*/ -#if defined(__AVR__) || defined(ARDUINO) -#define U8G_WITH_PINLIST -#endif -#define U8G_WITH_PINLIST - - -#ifdef __cplusplus -extern "C" { -#endif - - -/*===============================================================*/ -#ifdef __GNUC__ -# define U8G_NOINLINE __attribute__((noinline)) -# define U8G_PURE __attribute__ ((pure)) -# define U8G_NOCOMMON __attribute__ ((nocommon)) -# define U8G_SECTION(name) __attribute__ ((section (name))) -# if defined(__MSPGCC__) -/* mspgcc does not have .progmem sections. Use -fdata-sections. */ -# define U8G_FONT_SECTION(name) -# endif -# if defined(__AVR__) -# define U8G_FONT_SECTION(name) U8G_SECTION(".progmem." name) -# endif -#else -# define U8G_NOINLINE -# define U8G_PURE -# define U8G_NOCOMMON -# define U8G_SECTION(name) -# define U8G_FONT_SECTION(name) -#endif - -#ifndef U8G_FONT_SECTION -# define U8G_FONT_SECTION(name) -#endif - - -/*===============================================================*/ -/* flash memory access */ - -#if defined(__AVR__) -/* U8G_PROGMEM is used by the XBM example */ -#define U8G_PROGMEM U8G_SECTION(".progmem.data") -typedef uint8_t PROGMEM u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) pgm_read_byte_near(adr) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) - -#else - -#define U8G_PROGMEM -#define PROGMEM -typedef uint8_t u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) - -#endif - -/*===============================================================*/ -/* interrupt safe code */ -#if defined(U8G_INTERRUPT_SAFE) -# if defined(__AVR__) -extern uint8_t global_SREG_backup; /* u8g_state.c */ -# define U8G_ATOMIC_START() do { global_SREG_backup = SREG; cli(); } while(0) -# define U8G_ATOMIC_END() SREG = global_SREG_backup -# define U8G_ATOMIC_OR(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) |= (val)); SREG = tmpSREG; } while(0) -# define U8G_ATOMIC_AND(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) &= (val)); SREG = tmpSREG; } while(0) -# else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -# endif /* __AVR__ */ -#else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -#endif /* U8G_INTERRUPT_SAFE */ - - -/*===============================================================*/ -/* forward */ -typedef struct _u8g_t u8g_t; -typedef struct _u8g_dev_t u8g_dev_t; - -typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; -typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; -typedef struct _u8g_box_t u8g_box_t; -typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; - - -/*===============================================================*/ -/* generic */ -#if defined(U8G_16BIT) -typedef uint16_t u8g_uint_t; -typedef int16_t u8g_int_t; -#else -typedef uint8_t u8g_uint_t; -typedef int8_t u8g_int_t; -#endif - -#ifdef OBSOLETE -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -typedef struct _u8g_box_t u8g_box_t; -#endif /* OBSOLETE */ - - -/*===============================================================*/ -/* device structure */ - -#ifdef __XC8 -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#else -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#endif - - - -struct _u8g_dev_t -{ - u8g_dev_fnptr dev_fn; /* device procedure */ - void *dev_mem; /* device memory */ - u8g_com_fnptr com_fn; /* communication procedure */ -}; - - -/*===============================================================*/ -/* device list */ - -/* Size: 128x64 SDL, u8g_dev_sdl.c */ -extern u8g_dev_t u8g_dev_sdl_1bit; -extern u8g_dev_t u8g_dev_sdl_1bit_h; -extern u8g_dev_t u8g_dev_sdl_2bit; -extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; -extern u8g_dev_t u8g_dev_sdl_8bit; -extern u8g_dev_t u8g_dev_sdl_hicolor; -extern u8g_dev_t u8g_dev_sdl_fullcolor; -int u8g_sdl_get_key(void); - -/* Size: 70x30 monochrom, stdout */ -extern u8g_dev_t u8g_dev_stdout; - -/* Size: monochrom, writes "u8g.pbm" */ -extern u8g_dev_t u8g_dev_pbm; -extern u8g_dev_t u8g_dev_pbm_8h1; -extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ - -/* Size: 128x64 monochrom, no output, used for performance measure */ -extern u8g_dev_t u8g_dev_gprof; - -/* Display: EA DOGS102, Size: 102x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi; - -/* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi; - -/* Display: EA DOGM132, Size: 128x32 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; - -/* Display: EA DOGM128, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_parallel; - -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel; - -/* EA DOGM 240-6 */ -extern u8g_dev_t u8g_dev_uc1611_dogm240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogm240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogm240_sw_spi; - -/* EA DOGXL 240 */ -extern u8g_dev_t u8g_dev_uc1611_dogxl240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_sw_spi; - -/* Display: Topway LM6059 128x64 (Adafruit) */ -extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi; -/* Display: Topway LM6063 128x64 */ -extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi; -/* Display: Newhaven NHD-C12864 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi; - -/* Display: Newhaven NHD-C12832 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_usart_spi; - -/* Display: Displaytech 64128N */ -extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_parallel; - -extern u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_parallel; - -/* Display: LCD-AG-C128032R-DIW W/KK E6 PBF */ -extern u8g_dev_t u8g_dev_uc1601_c128032_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_hw_spi; - -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi; - -/* East Rising/buy-display.com ERC24064-1 */ -extern u8g_dev_t u8g_dev_uc1608_240x64_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi; - -/* UC1608 240x128 */ -extern u8g_dev_t u8g_dev_uc1608_240x128_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi; - -/* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ -extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_custom; - -extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_custom; - -/* NHD-19232WG */ -extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; - -/* CrystalFontz CFAG20232 */ -extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; - -/* LC7981 160x80 display */ -extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; -/* LC7981 240x64 display */ -extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; -/* LC7981 240x128 display */ -extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; -/* LC7981 320x64 display */ -extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; - -/* T6963, all t6963 devices have double page (2x) */ -extern u8g_dev_t u8g_dev_t6963_240x128_8bit; -extern u8g_dev_t u8g_dev_t6963_128x128_8bit; -extern u8g_dev_t u8g_dev_t6963_240x64_8bit; -extern u8g_dev_t u8g_dev_t6963_128x64_8bit; - -/* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; - -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; - -/* Display: Generic KS0108b, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ -extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ - -/* Nokia 84x48 Display with PCD8544 */ -extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; -extern u8g_dev_t u8g_dev_pcd8544_84x48_hw_spi; -extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; - -/* Nokia 96x65 Display with PCF8812 */ -extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; -extern u8g_dev_t u8g_dev_pcf8812_96x65_hw_spi; - -/* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; - -/* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; - -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; - -/* NHD-3.12-25664 OLED Display with SSD1322 Controller */ -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; - -/* OLED 128x64 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c; - -/* OLED 128x64 Display with SH1106 Controller */ -extern u8g_dev_t u8g_dev_sh1106_128x64_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_i2c; - -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c; - -/* OLED 128x64 Display with SSD1309 Controller */ -extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; - -/* OLED 128x32 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c; - -/* OLED 60x32 Display with LD7032 Controller */ -extern u8g_dev_t u8g_dev_ld7032_60x32_sw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_hw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_parallel; - -/* experimental 65K TFT with st7687 controller */ -extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; -extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; - -/* SBN1661/SED1520 display with 122x32 */ -extern u8g_dev_t u8g_dev_sbn1661_122x32; - -/* flip disc matrix */ -extern u8g_dev_t u8g_dev_flipdisc_2x7; -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); - -/* ILI9325D based TFT */ -extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; - - -/* SSD1351 OLED (breakout board from http://www.kickstarter.com/projects/ilsoftltd/colour-oled-breakout-board) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi; - -/* SSD1351 OLED (Freetronics, GPIOs set to high level) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi; - -/* HT1632 */ -extern u8g_dev_t u8g_dev_ht1632_24x16; - -/* A2 Micro Printer */ -extern u8g_dev_t u8g_dev_a2_micro_printer_384x240; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x120_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x360_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x720_ds; - -/* u8g_virtual_screen.c */ -extern u8g_dev_t u8g_dev_vs; - - -/*===============================================================*/ -/* device messages */ - -struct _u8g_dev_arg_pixel_t -{ - u8g_uint_t x, y; /* will be modified */ - uint8_t pixel; /* will be modified, pixel sequence or transparency value */ - uint8_t dir; - uint8_t color; /* color or index value, red value for true color mode */ - uint8_t hi_color; /* high byte for 64K color mode, low byte is in "color", green value for true color mode */ - uint8_t blue; /* blue value in true color mode */ -}; -/* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ - -/* range for r,g,b: 0..255 */ -#define U8G_GET_HICOLOR_BY_RGB(r,g,b) (((uint16_t)((r)&0x0f8))<<8)|(((uint16_t)((g)&0x0fc))<<3)|(((uint16_t)((b)>>3))) - -struct _u8g_dev_arg_bbx_t -{ - u8g_uint_t x, y, w, h; -}; -/* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ - -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -/* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ - -struct _u8g_dev_arg_irgb_t -{ - u8g_uint_t idx, r, g, b; /* index with rgb value */ -}; -/* typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; */ /* forward decl */ - - - -#define U8G_DEV_MSG_INIT 10 -#define U8G_DEV_MSG_STOP 11 - -/* arg: pointer to uint8_t, contranst value between 0 and 255 */ -#define U8G_DEV_MSG_CONTRAST 15 - -#define U8G_DEV_MSG_SLEEP_ON 16 -#define U8G_DEV_MSG_SLEEP_OFF 17 - -#define U8G_DEV_MSG_PAGE_FIRST 20 -#define U8G_DEV_MSG_PAGE_NEXT 21 - -/* arg: u8g_dev_arg_bbx_t * */ -/* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ -/* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ - -/* arg: u8g_box_t *, fill structure with current page properties */ -#define U8G_DEV_MSG_GET_PAGE_BOX 23 - -/* -#define U8G_DEV_MSG_PRIMITIVE_START 30 -#define U8G_DEV_MSG_PRIMITIVE_END 31 -*/ - -/* arg: u8g_dev_arg_pixel_t * */ -#define U8G_DEV_MSG_SET_TPIXEL 44 -#define U8G_DEV_MSG_SET_4TPIXEL 45 - -#define U8G_DEV_MSG_SET_PIXEL 50 -#define U8G_DEV_MSG_SET_8PIXEL 59 - -#define U8G_DEV_MSG_SET_COLOR_ENTRY 60 - -#define U8G_DEV_MSG_SET_XY_CB 61 - -#define U8G_DEV_MSG_GET_WIDTH 70 -#define U8G_DEV_MSG_GET_HEIGHT 71 -#define U8G_DEV_MSG_GET_MODE 72 - -/*===============================================================*/ -/* device modes */ -#define U8G_MODE(is_index_mode, is_color, bits_per_pixel) (((is_index_mode)<<6) | ((is_color)<<5)|(bits_per_pixel)) - -#define U8G_MODE_UNKNOWN 0 -#define U8G_MODE_BW U8G_MODE(0, 0, 1) -#define U8G_MODE_GRAY2BIT U8G_MODE(0, 0, 2) -#define U8G_MODE_R3G3B2 U8G_MODE(0, 1, 8) -#define U8G_MODE_INDEX U8G_MODE(1, 1, 8) -/* hicolor is R5G6B5 */ -#define U8G_MODE_HICOLOR U8G_MODE(0, 1, 16) -/* truecolor */ -#define U8G_MODE_TRUECOLOR U8G_MODE(0, 1, 24) - - -#define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&31) -#define U8G_MODE_IS_COLOR(mode) (((mode)&32)==0?0:1) -#define U8G_MODE_IS_INDEX_MODE(mode) (((mode)&64)==0?0:1) - - -/*===============================================================*/ -/* com options */ - -/* uncomment the following line for Atmega HW SPI double speed, issue 89 */ -/* #define U8G_HW_SPI_2X 1 */ - -/* com messages */ - -#define U8G_COM_MSG_STOP 0 -#define U8G_COM_MSG_INIT 1 - -#define U8G_COM_MSG_ADDRESS 2 - -/* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ -#define U8G_COM_MSG_CHIP_SELECT 3 - -#define U8G_COM_MSG_RESET 4 - -#define U8G_COM_MSG_WRITE_BYTE 5 -#define U8G_COM_MSG_WRITE_SEQ 6 -#define U8G_COM_MSG_WRITE_SEQ_P 7 - - -/* com driver */ -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_usart_spi.c */ -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_arduino_ATTiny85_std_hw_spi.c */ -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_custom.c */ -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ - - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_rasperrypi_hw_spi.c */ -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_raspberrypi_ssd_i2c.c */ - - -/* - Translation of system specific com drives to generic com names - At the moment, the following generic com drives are available - U8G_COM_HW_SPI - U8G_COM_SW_SPI - U8G_COM_PARALLEL - U8G_COM_T6963 - U8G_COM_FAST_PARALLEL - U8G_COM_SSD_I2C - U8G_COM_UC_I2C - -defined(__18CXX) || defined(__PIC32MX) - -*/ - -/* ==== HW SPI, Raspberry PI ====*/ -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_HW_SPI u8g_com_raspberrypi_hw_spi_fn -#define U8G_COM_SW_SPI u8g_com_null_fn - -/* I'm sure there must be some mad reason for needing this */ -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif - -/* ==== HW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) - -#if defined(__AVR_ATtiny85__) -#define U8G_COM_HW_SPI u8g_com_arduino_ATtiny85_std_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#else - -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#if defined(__AVR_ATmega32U4__) -#define U8G_COM_HW_USART_SPI u8g_com_arduino_hw_usart_spi_fn -#endif /* __AVR_ATmega32U4__ */ -#define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn -#endif /* __AVR_ATtiny85__ */ - -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#endif -/* ==== HW SPI, not Arduino ====*/ -#ifndef U8G_COM_HW_SPI -#if defined(__AVR__) -#define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn -#endif -#endif -#ifndef U8G_COM_HW_SPI -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#ifndef U8G_COM_HW_USART_SPI -#define U8G_COM_HW_USART_SPI u8g_com_null_fn -#endif - - -/* ==== SW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -//#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__arm__) /* Teensy */ -#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#endif -#endif - -#ifndef U8G_COM_SW_SPI -/* ==== SW SPI, not Arduino ====*/ -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn -#endif -#endif -#ifndef U8G_COM_SW_SPI -#define U8G_COM_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#endif - -/* ==== Parallel interface, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn -#define U8G_COM_T6963 u8g_com_arduino_t6963_fn -#else /* Arduino Due, Chipkit PIC32 */ -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#define U8G_COM_PARALLEL u8g_com_null_fn -#define U8G_COM_FAST_PARALLEL u8g_com_null_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif - -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(__AVR__) || defined(__SAM3X8E__) -/* AVR variant and also DUE can use the arduino version at the moment */ -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_SSD_I2C u8g_com_raspberrypi_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#define U8G_COM_SSD_I2C u8g_com_null_fn -#endif - -#ifndef U8G_COM_UC_I2C -#if defined(__AVR__) -/* AVR variant can use the arduino version at the moment */ -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif -#ifndef U8G_COM_UC_I2C -#define U8G_COM_UC_I2C u8g_com_null_fn -#endif - - -/*===============================================================*/ -/* com api */ - -#define U8G_SPI_CLK_CYCLE_50NS 1 -#define U8G_SPI_CLK_CYCLE_300NS 2 -#define U8G_SPI_CLK_CYCLE_400NS 3 -#define U8G_SPI_CLK_CYCLE_NONE 255 - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time); -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); -void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); - - - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -//uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); - - -/* u8g_com_api_16gr.c */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); - - -/*===============================================================*/ -/* u8g_arduino_common.c */ -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); - -/*===============================================================*/ -/* u8g_com_io.c */ - -/* create internal number from port and pin */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); -#define PN(port,bitpos) u8g_Pin(port,bitpos) - -/* low level procedures */ -void u8g_SetPinOutput(uint8_t internal_pin_number); -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); -void u8g_SetPinInput(uint8_t internal_pin_number); -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); - -/* u8g level procedures, expect U8G_PI_xxx macro */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); - - -/*===============================================================*/ -/* page */ -struct _u8g_page_t -{ - u8g_uint_t page_height; - u8g_uint_t total_height; - u8g_uint_t page_y0; - u8g_uint_t page_y1; - uint8_t page; -}; -typedef struct _u8g_page_t u8g_page_t; - -void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ -uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ - -/*===============================================================*/ -/* page buffer (pb) */ - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; /* pixel width */ - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -/* u8g_pb.c */ -void u8g_pb_Clear(u8g_pb_t *b); -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -/* - note on __attribute__ ((nocommon)) - AVR scripts often use --gc-sections on the linker to remove unused section. - This works fine for initialed data and text sections. In principle .bss is also - handled, but the name##_pb definition is not removed. Reason is, that - array definitions are placed in the COMMON section, by default - The attribute "nocommon" removes this automatic assignment to the - COMMON section and directly puts it into .bss. As a result, if more - than one buffer is defined in one file, then it will be removed with --gc-sections - - .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is - redundant. -*/ -#define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ -uint8_t name##_buf[width] U8G_NOCOMMON ; \ -u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ -u8g_dev_t name = { dev_fn, &name##_pb, com_fn } - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; - -uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v1.c */ -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb14v1.c */ -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8v2.c */ -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v2.c (double memory of pb8v2) */ -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h1.c */ -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h1.c */ -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb32h1.c */ -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h2.c */ -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - - -/* u8g_pb8h1f.c */ -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8h8.c */ -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh16.c */ -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh24.c */ -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/*===============================================================*/ -/* u8g_ll_api.c */ - -/* cursor draw callback */ -typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); - -/* vertical reference point calculation callback */ -typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); - -/* state backup and restore procedure */ -typedef void (*u8g_state_cb)(uint8_t msg); - - -/* PI = Pin Index */ - -/* reset pin, usually optional */ -#define U8G_PI_RESET 0 - -/* address / data or instruction */ -#define U8G_PI_A0 1 -#define U8G_PI_DI 1 - -/* chip select line */ -#define U8G_PI_CS 2 -#define U8G_PI_CS1 2 -#define U8G_PI_CS2 3 -/* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ -#define U8G_PI_A0_STATE 3 - -/* enable / clock signal */ -#define U8G_PI_EN 4 -#define U8G_PI_CS_STATE 4 -#define U8G_PI_SCK 4 -#define U8G_PI_SCL 4 -#define U8G_PI_RD 4 - - -/* data pins, shared with SPI and I2C pins */ -#define U8G_PI_D0 5 -#define U8G_PI_MOSI 5 -#define U8G_PI_SDA 5 -#define U8G_PI_D1 6 -#define U8G_PI_MISO 6 -#define U8G_PI_D2 7 -#define U8G_PI_D3 8 -#define U8G_PI_SET_A0 8 -#define U8G_PI_D4 9 -#define U8G_PI_D5 10 -#define U8G_PI_I2C_OPTION 11 -#define U8G_PI_D6 11 -#define U8G_PI_D7 12 - -/* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ -#define U8G_PI_WR 13 -#define U8G_PI_RW 13 - -#define U8G_PIN_LIST_LEN 14 - - -#define U8G_PIN_DUMMY 254 -#define U8G_PIN_NONE 255 - -#define U8G_FONT_HEIGHT_MODE_TEXT 0 -#define U8G_FONT_HEIGHT_MODE_XTEXT 1 -#define U8G_FONT_HEIGHT_MODE_ALL 2 - -struct _u8g_t -{ - u8g_uint_t width; - u8g_uint_t height; - - - u8g_dev_t *dev; /* first device in the device chain */ - const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ - const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ - uint8_t cursor_fg_color, cursor_bg_color; - uint8_t cursor_encoding; - uint8_t mode; /* display mode, one of U8G_MODE_xxx */ - u8g_uint_t cursor_x; - u8g_uint_t cursor_y; - u8g_draw_cursor_fn cursor_fn; - - int8_t glyph_dx; - int8_t glyph_x; - int8_t glyph_y; - uint8_t glyph_width; - uint8_t glyph_height; - - u8g_font_calc_vref_fnptr font_calc_vref; - uint8_t font_height_mode; - int8_t font_ref_ascent; - int8_t font_ref_descent; - uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ - uint8_t line_spacing; - - u8g_dev_arg_pixel_t arg_pixel; - /* uint8_t color_index; */ - -#ifdef U8G_WITH_PINLIST - uint8_t pin_list[U8G_PIN_LIST_LEN]; -#endif - - u8g_state_cb state_cb; - - u8g_box_t current_page; /* current box of the visible page */ - -}; - -#define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) -#define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) -#define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); /* obsolete */ -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); - -void u8g_UpdateDimension(u8g_t *u8g); -uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn); /* Init procedure for anything which is not Arduino or AVR (e.g. ARM, but not Due, which is Arduino) */ -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); -void u8g_FirstPage(u8g_t *u8g); -uint8_t u8g_NextPage(u8g_t *u8g); -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); -void u8g_SleepOn(u8g_t *u8g); -void u8g_SleepOff(u8g_t *u8g); -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); - -uint8_t u8g_Stop(u8g_t *u8g); -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb); -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -uint8_t u8g_GetColorIndex(u8g_t *u8g); - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); -void u8g_SetDefaultForegroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); -void u8g_SetDefaultBackgroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); -void u8g_SetDefaultMidColor(u8g_t *u8g); - -#define u8g_GetWidth(u8g) ((u8g)->width) -#define u8g_GetHeight(u8g) ((u8g)->height) -#define u8g_GetMode(u8g) ((u8g)->mode) -/* - U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) - U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) -*/ - -/* u8g_state.c */ -#define U8G_STATE_ENV_IDX 0 -#define U8G_STATE_U8G_IDX 1 -#define U8G_STATE_RESTORE 0 -#define U8G_STATE_BACKUP 1 -#define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) - -#define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) -#define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) - -#define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) -#define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) - - - -void u8g_state_dummy_cb(uint8_t msg); -void u8g_backup_spi(uint8_t msg); /* backup SPI state controller */ -/* backward compatible definition */ -#define u8g_backup_avr_spi u8g_backup_spi - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); - -/* u8g_clip.c */ - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); - - -/* u8g_rot.c */ - -void u8g_UndoRotation(u8g_t *u8g); -void u8g_SetRot90(u8g_t *u8g); -void u8g_SetRot180(u8g_t *u8g); -void u8g_SetRot270(u8g_t *u8g); - -/* u8g_scale.c */ - -void u8g_UndoScale(u8g_t *u8g); -void u8g_SetScale2x2(u8g_t *u8g); - - -/* u8g_font.c */ - -size_t u8g_font_GetSize(const void *font); -uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; -uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); -int8_t u8g_GetFontBBXOffX(u8g_t *u8g); -int8_t u8g_GetFontBBXOffY(u8g_t *u8g); -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ - -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); - - -void u8g_SetFontRefHeightText(u8g_t *u8g); -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); -void u8g_SetFontRefHeightAll(u8g_t *u8g); -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); - -void u8g_SetFontPosBaseline(u8g_t *u8g); -void u8g_SetFontPosBottom(u8g_t *u8g); -void u8g_SetFontPosCenter(u8g_t *u8g); -void u8g_SetFontPosTop(u8g_t *u8g); - - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -int8_t u8g_GetStrX(u8g_t *u8g, const char *s); -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) U8G_NOINLINE; -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -/* u8g_rect.c */ - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; - -/* u8g_bitmap.c */ - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - - -/* u8g_line.c */ -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); - - -/* u8g_circle.c */ - -/* the following, commented code has been rewritten or is not yet finished -#define U8G_CIRC_UPPER_RIGHT 0x01 -#define U8G_CIRC_UPPER_LEFT 0x02 -#define U8G_CIRC_LOWER_LEFT 0x04 -#define U8G_CIRC_LOWER_RIGHT 0x08 -#define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); -*/ - -#define U8G_DRAW_UPPER_RIGHT 0x01 -#define U8G_DRAW_UPPER_LEFT 0x02 -#define U8G_DRAW_LOWER_LEFT 0x04 -#define U8G_DRAW_LOWER_RIGHT 0x08 -#define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); - -/* u8g_ellipse.c */ -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); - -/* u8g_clip.c */ -uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); - - -/* u8g_cursor.c */ -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); -void u8g_EnableCursor(u8g_t *u8g); -void u8g_DisableCursor(u8g_t *u8g); -void u8g_DrawCursor(u8g_t *u8g); - -/* u8g_polygon.c */ - -typedef int16_t pg_word_t; - -#define PG_NOINLINE U8G_NOINLINE - -struct pg_point_struct -{ - pg_word_t x; - pg_word_t y; -}; - -typedef struct _pg_struct pg_struct; /* forward declaration */ - -struct pg_edge_struct -{ - pg_word_t x_direction; /* 1, if x2 is greater than x1, -1 otherwise */ - pg_word_t height; - pg_word_t current_x_offset; - pg_word_t error_offset; - - /* --- line loop --- */ - pg_word_t current_y; - pg_word_t max_y; - pg_word_t current_x; - pg_word_t error; - - /* --- outer loop --- */ - uint8_t (*next_idx_fn)(pg_struct *pg, uint8_t i); - uint8_t curr_idx; -}; - -/* maximum number of points in the polygon */ -/* can be redefined, but highest possible value is 254 */ -#define PG_MAX_POINTS 6 - -/* index numbers for the pge structures below */ -#define PG_LEFT 0 -#define PG_RIGHT 1 - - -struct _pg_struct -{ - struct pg_point_struct list[PG_MAX_POINTS]; - uint8_t cnt; - uint8_t is_min_y_not_flat; - pg_word_t total_scan_line_cnt; - struct pg_edge_struct pge[2]; /* left and right line draw structures */ -}; - -void pg_ClearPolygonXY(pg_struct *pg); -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y); -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g); -void u8g_ClearPolygonXY(void); -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y); -void u8g_DrawPolygon(u8g_t *u8g); -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2); - - -/*===============================================================*/ -/* u8g_virtual_screen.c */ -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); - -/*===============================================================*/ -void st_Draw(uint8_t fps); -void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); - -/*===============================================================*/ -/* u8g_com_i2c.c */ - -/* options for u8g_i2c_init() */ -#define U8G_I2C_OPT_NONE 0 -#define U8G_I2C_OPT_NO_ACK 2 -#define U8G_I2C_OPT_DEV_0 0 -#define U8G_I2C_OPT_DEV_1 4 -#define U8G_I2C_OPT_FAST 16 - -/* retrun values from u8g_twi_get_error() */ -#define U8G_I2C_ERR_NONE 0x00 -/* the following values are bit masks */ -#define U8G_I2C_ERR_TIMEOUT 0x01 -#define U8G_I2C_ERR_BUS 0x02 - -void u8g_i2c_clear_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; -void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; -uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; -uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; -uint8_t u8g_i2c_send_mode(uint8_t mode) U8G_NOINLINE; -void u8g_i2c_stop(void) U8G_NOINLINE; - - -/*===============================================================*/ -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d); - -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d); - -/*===============================================================*/ -/* u8g_delay.c */ - -/* delay by the specified number of milliseconds */ -void u8g_Delay(uint16_t val); - -/* delay by one microsecond */ -void u8g_MicroDelay(void); - -/* delay by 10 microseconds */ -void u8g_10MicroDelay(void); - -/*===============================================================*/ -/* chessengine.c */ -#define CHESS_KEY_NONE 0 -#define CHESS_KEY_NEXT 1 -#define CHESS_KEY_PREV 2 -#define CHESS_KEY_SELECT 3 -#define CHESS_KEY_BACK 4 - -void chess_Init(u8g_t *u8g, uint8_t empty_body_color); -void chess_Draw(void); -void chess_Step(uint8_t keycode); - -/*===============================================================*/ -/* font definitions */ -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_FONT_SECTION("u8g_font_m2icon_5"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_FONT_SECTION("u8g_font_m2icon_7"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_FONT_SECTION("u8g_font_m2icon_9"); - -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_FONT_SECTION("u8g_font_u8glib_4"); -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_FONT_SECTION("u8g_font_u8glib_4r"); - - -extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_FONT_SECTION("u8g_font_6x12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_FONT_SECTION("u8g_font_6x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_FONT_SECTION("u8g_font_7x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_FONT_SECTION("u8g_font_8x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_FONT_SECTION("u8g_font_9x15_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_FONT_SECTION("u8g_font_9x18_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_FONT_SECTION("u8g_font_cu12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_FONT_SECTION("u8g_font_unifont_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_FONT_SECTION("u8g_font_10x20_75r"); - -extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_FONT_SECTION("u8g_font_10x20_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_FONT_SECTION("u8g_font_10x20_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_FONT_SECTION("u8g_font_10x20"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_FONT_SECTION("u8g_font_10x20r"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_FONT_SECTION("u8g_font_4x6"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_FONT_SECTION("u8g_font_4x6r"); -//extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_FONT_SECTION("u8g_font_4x6n"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_FONT_SECTION("u8g_font_5x7"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_FONT_SECTION("u8g_font_5x7r"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_FONT_SECTION("u8g_font_5x8"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_FONT_SECTION("u8g_font_5x8r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_FONT_SECTION("u8g_font_6x10"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_FONT_SECTION("u8g_font_6x10r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_FONT_SECTION("u8g_font_6x12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_FONT_SECTION("u8g_font_6x12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_FONT_SECTION("u8g_font_6x12"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_FONT_SECTION("u8g_font_6x12r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_FONT_SECTION("u8g_font_6x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_FONT_SECTION("u8g_font_6x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_FONT_SECTION("u8g_font_6x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_FONT_SECTION("u8g_font_6x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_FONT_SECTION("u8g_font_6x13"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_FONT_SECTION("u8g_font_6x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_FONT_SECTION("u8g_font_6x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_FONT_SECTION("u8g_font_6x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_FONT_SECTION("u8g_font_7x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_FONT_SECTION("u8g_font_7x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_FONT_SECTION("u8g_font_7x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_FONT_SECTION("u8g_font_7x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_FONT_SECTION("u8g_font_7x13"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_FONT_SECTION("u8g_font_7x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_FONT_SECTION("u8g_font_7x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_FONT_SECTION("u8g_font_7x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_FONT_SECTION("u8g_font_7x14B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_FONT_SECTION("u8g_font_7x14Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_FONT_SECTION("u8g_font_7x14"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_FONT_SECTION("u8g_font_7x14r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_FONT_SECTION("u8g_font_8x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_FONT_SECTION("u8g_font_8x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_FONT_SECTION("u8g_font_8x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_FONT_SECTION("u8g_font_8x13"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_FONT_SECTION("u8g_font_8x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_FONT_SECTION("u8g_font_8x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_FONT_SECTION("u8g_font_8x13Or"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_FONT_SECTION("u8g_font_9x15_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_FONT_SECTION("u8g_font_9x15_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_FONT_SECTION("u8g_font_9x15B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_FONT_SECTION("u8g_font_9x15Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_FONT_SECTION("u8g_font_9x15"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_FONT_SECTION("u8g_font_9x15r"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_FONT_SECTION("u8g_font_9x18_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_FONT_SECTION("u8g_font_9x18_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_FONT_SECTION("u8g_font_9x18B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_FONT_SECTION("u8g_font_9x18"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_FONT_SECTION("u8g_font_9x18Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_FONT_SECTION("u8g_font_9x18r"); - -extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_FONT_SECTION("u8g_font_cursor"); -extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_FONT_SECTION("u8g_font_cursorr"); -extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_FONT_SECTION("u8g_font_micro"); - -extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_FONT_SECTION("u8g_font_cu12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_FONT_SECTION("u8g_font_cu12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_FONT_SECTION("u8g_font_cu12"); - -/* - Free-Universal Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_FONT_SECTION("u8g_font_fub11"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_FONT_SECTION("u8g_font_fub11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_FONT_SECTION("u8g_font_fub11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_FONT_SECTION("u8g_font_fub14"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_FONT_SECTION("u8g_font_fub14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_FONT_SECTION("u8g_font_fub14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_FONT_SECTION("u8g_font_fub17"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_FONT_SECTION("u8g_font_fub17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_FONT_SECTION("u8g_font_fub17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_FONT_SECTION("u8g_font_fub20"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_FONT_SECTION("u8g_font_fub20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_FONT_SECTION("u8g_font_fub20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_FONT_SECTION("u8g_font_fub25"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_FONT_SECTION("u8g_font_fub25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_FONT_SECTION("u8g_font_fub25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_FONT_SECTION("u8g_font_fub30"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_FONT_SECTION("u8g_font_fub30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_FONT_SECTION("u8g_font_fub30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_FONT_SECTION("u8g_font_fub35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_FONT_SECTION("u8g_font_fub42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_FONT_SECTION("u8g_font_fub49n"); - -/* - Free-Universal Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_FONT_SECTION("u8g_font_fur11"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_FONT_SECTION("u8g_font_fur11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_FONT_SECTION("u8g_font_fur11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_FONT_SECTION("u8g_font_fur14"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_FONT_SECTION("u8g_font_fur14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_FONT_SECTION("u8g_font_fur14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_FONT_SECTION("u8g_font_fur17"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_FONT_SECTION("u8g_font_fur17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_FONT_SECTION("u8g_font_fur17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_FONT_SECTION("u8g_font_fur20"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_FONT_SECTION("u8g_font_fur20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_FONT_SECTION("u8g_font_fur20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_FONT_SECTION("u8g_font_fur25"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_FONT_SECTION("u8g_font_fur25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_FONT_SECTION("u8g_font_fur25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_FONT_SECTION("u8g_font_fur30"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_FONT_SECTION("u8g_font_fur30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_FONT_SECTION("u8g_font_fur30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_FONT_SECTION("u8g_font_fur35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_FONT_SECTION("u8g_font_fur42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_FONT_SECTION("u8g_font_fur49n"); - -/* - Gentium Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_FONT_SECTION("u8g_font_gdb11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_FONT_SECTION("u8g_font_gdb12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_FONT_SECTION("u8g_font_gdb14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_FONT_SECTION("u8g_font_gdb17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_FONT_SECTION("u8g_font_gdb20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_FONT_SECTION("u8g_font_gdb25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_FONT_SECTION("u8g_font_gdb30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_FONT_SECTION("u8g_font_gdb11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_FONT_SECTION("u8g_font_gdb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_FONT_SECTION("u8g_font_gdb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_FONT_SECTION("u8g_font_gdb17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_FONT_SECTION("u8g_font_gdb20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_FONT_SECTION("u8g_font_gdb25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_FONT_SECTION("u8g_font_gdb30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_FONT_SECTION("u8g_font_gdb11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_FONT_SECTION("u8g_font_gdb12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_FONT_SECTION("u8g_font_gdb14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_FONT_SECTION("u8g_font_gdb17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_FONT_SECTION("u8g_font_gdb20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_FONT_SECTION("u8g_font_gdb25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_FONT_SECTION("u8g_font_gdb30n"); - -/* - Gentium Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_FONT_SECTION("u8g_font_gdr9"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_FONT_SECTION("u8g_font_gdr10"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_FONT_SECTION("u8g_font_gdr11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_FONT_SECTION("u8g_font_gdr12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_FONT_SECTION("u8g_font_gdr14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_FONT_SECTION("u8g_font_gdr17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_FONT_SECTION("u8g_font_gdr20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_FONT_SECTION("u8g_font_gdr25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_FONT_SECTION("u8g_font_gdr30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_FONT_SECTION("u8g_font_gdr9r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_FONT_SECTION("u8g_font_gdr10r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_FONT_SECTION("u8g_font_gdr11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_FONT_SECTION("u8g_font_gdr12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_FONT_SECTION("u8g_font_gdr14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_FONT_SECTION("u8g_font_gdr17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_FONT_SECTION("u8g_font_gdr20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_FONT_SECTION("u8g_font_gdr25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_FONT_SECTION("u8g_font_gdr30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_FONT_SECTION("u8g_font_gdr9n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_FONT_SECTION("u8g_font_gdr10n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_FONT_SECTION("u8g_font_gdr11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_FONT_SECTION("u8g_font_gdr12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_FONT_SECTION("u8g_font_gdr14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_FONT_SECTION("u8g_font_gdr17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_FONT_SECTION("u8g_font_gdr20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_FONT_SECTION("u8g_font_gdr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_FONT_SECTION("u8g_font_gdr30n"); - -/* - Old-Standard Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_FONT_SECTION("u8g_font_osb18"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_FONT_SECTION("u8g_font_osb21"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_FONT_SECTION("u8g_font_osb26"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_FONT_SECTION("u8g_font_osb29"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_FONT_SECTION("u8g_font_osb35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_FONT_SECTION("u8g_font_osb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_FONT_SECTION("u8g_font_osb21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_FONT_SECTION("u8g_font_osb26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_FONT_SECTION("u8g_font_osb29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_FONT_SECTION("u8g_font_osb35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_FONT_SECTION("u8g_font_osb18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_FONT_SECTION("u8g_font_osb21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_FONT_SECTION("u8g_font_osb26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_FONT_SECTION("u8g_font_osb29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_FONT_SECTION("u8g_font_osb35n"); - -/* - Old-Standard Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_FONT_SECTION("u8g_font_osr18"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_FONT_SECTION("u8g_font_osr21"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_FONT_SECTION("u8g_font_osr26"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_FONT_SECTION("u8g_font_osr29"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_FONT_SECTION("u8g_font_osr35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_FONT_SECTION("u8g_font_osr18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_FONT_SECTION("u8g_font_osr21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_FONT_SECTION("u8g_font_osr26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_FONT_SECTION("u8g_font_osr29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_FONT_SECTION("u8g_font_osr35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_FONT_SECTION("u8g_font_osr18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_FONT_SECTION("u8g_font_osr21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_FONT_SECTION("u8g_font_osr26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_FONT_SECTION("u8g_font_osr29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_FONT_SECTION("u8g_font_osr35n"); - -//extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_FONT_SECTION("u8g_font_osr41"); - -/* GNU unifont */ - -extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_FONT_SECTION("u8g_font_unifont_18_19"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_FONT_SECTION("u8g_font_unifont_72_73"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_FONT_SECTION("u8g_font_unifont_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_FONT_SECTION("u8g_font_unifont_76"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_FONT_SECTION("u8g_font_unifont_77"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_FONT_SECTION("u8g_font_unifont_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_FONT_SECTION("u8g_font_unifont_86"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_FONT_SECTION("u8g_font_unifont"); -extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_FONT_SECTION("u8g_font_unifontr"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_FONT_SECTION("u8g_font_unifont_0_8"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_FONT_SECTION("u8g_font_unifont_2_3"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_FONT_SECTION("u8g_font_unifont_4_5"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_FONT_SECTION("u8g_font_unifont_8_9"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_FONT_SECTION("u8g_font_unifont_12_13"); - - -/* 04b fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_FONT_SECTION("u8g_font_04b_03b"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_FONT_SECTION("u8g_font_04b_03bn"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_FONT_SECTION("u8g_font_04b_03br"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_FONT_SECTION("u8g_font_04b_03"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_FONT_SECTION("u8g_font_04b_03n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_FONT_SECTION("u8g_font_04b_03r"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_FONT_SECTION("u8g_font_04b_24"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_FONT_SECTION("u8g_font_04b_24n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_FONT_SECTION("u8g_font_04b_24r"); - -/* orgdot fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_FONT_SECTION("u8g_font_orgv01"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_FONT_SECTION("u8g_font_orgv01r"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_FONT_SECTION("u8g_font_orgv01n"); - -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_FONT_SECTION("u8g_font_fixed_v0"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_FONT_SECTION("u8g_font_fixed_v0r"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_FONT_SECTION("u8g_font_fixed_v0n"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_FONT_SECTION("u8g_font_tpssb"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_FONT_SECTION("u8g_font_tpssbr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_FONT_SECTION("u8g_font_tpssbn"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_FONT_SECTION("u8g_font_tpss"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_FONT_SECTION("u8g_font_tpssr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_FONT_SECTION("u8g_font_tpssn"); - -/* contributed */ - -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_FONT_SECTION("u8g_font_freedoomr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_FONT_SECTION("u8g_font_freedoomr10r"); - -/* adobe X11 */ -extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_FONT_SECTION("u8g_font_courB08"); -extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_FONT_SECTION("u8g_font_courB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_FONT_SECTION("u8g_font_courB10"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_FONT_SECTION("u8g_font_courB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_FONT_SECTION("u8g_font_courB12"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_FONT_SECTION("u8g_font_courB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_FONT_SECTION("u8g_font_courB14"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_FONT_SECTION("u8g_font_courB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_FONT_SECTION("u8g_font_courB18"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_FONT_SECTION("u8g_font_courB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_FONT_SECTION("u8g_font_courB24"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_FONT_SECTION("u8g_font_courB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_FONT_SECTION("u8g_font_courB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_FONT_SECTION("u8g_font_courR08"); -extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_FONT_SECTION("u8g_font_courR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_FONT_SECTION("u8g_font_courR10"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_FONT_SECTION("u8g_font_courR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_FONT_SECTION("u8g_font_courR12"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_FONT_SECTION("u8g_font_courR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_FONT_SECTION("u8g_font_courR14"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_FONT_SECTION("u8g_font_courR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_FONT_SECTION("u8g_font_courR18"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_FONT_SECTION("u8g_font_courR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_FONT_SECTION("u8g_font_courR24"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_FONT_SECTION("u8g_font_courR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_FONT_SECTION("u8g_font_courR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_FONT_SECTION("u8g_font_helvB08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_FONT_SECTION("u8g_font_helvB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08n[] U8G_FONT_SECTION("u8g_font_helvB08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_FONT_SECTION("u8g_font_helvB10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_FONT_SECTION("u8g_font_helvB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10n[] U8G_FONT_SECTION("u8g_font_helvB10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_FONT_SECTION("u8g_font_helvB12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_FONT_SECTION("u8g_font_helvB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12n[] U8G_FONT_SECTION("u8g_font_helvB12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_FONT_SECTION("u8g_font_helvB14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_FONT_SECTION("u8g_font_helvB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14n[] U8G_FONT_SECTION("u8g_font_helvB14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_FONT_SECTION("u8g_font_helvB18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_FONT_SECTION("u8g_font_helvB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18n[] U8G_FONT_SECTION("u8g_font_helvB18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_FONT_SECTION("u8g_font_helvB24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_FONT_SECTION("u8g_font_helvB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_FONT_SECTION("u8g_font_helvB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_FONT_SECTION("u8g_font_helvR08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_FONT_SECTION("u8g_font_helvR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08n[] U8G_FONT_SECTION("u8g_font_helvR08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_FONT_SECTION("u8g_font_helvR10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_FONT_SECTION("u8g_font_helvR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10n[] U8G_FONT_SECTION("u8g_font_helvR10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_FONT_SECTION("u8g_font_helvR12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_FONT_SECTION("u8g_font_helvR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12n[] U8G_FONT_SECTION("u8g_font_helvR12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_FONT_SECTION("u8g_font_helvR14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_FONT_SECTION("u8g_font_helvR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14n[] U8G_FONT_SECTION("u8g_font_helvR14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_FONT_SECTION("u8g_font_helvR18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_FONT_SECTION("u8g_font_helvR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18n[] U8G_FONT_SECTION("u8g_font_helvR18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_FONT_SECTION("u8g_font_helvR24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_FONT_SECTION("u8g_font_helvR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_FONT_SECTION("u8g_font_helvR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_FONT_SECTION("u8g_font_ncenB08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_FONT_SECTION("u8g_font_ncenB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_FONT_SECTION("u8g_font_ncenB10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_FONT_SECTION("u8g_font_ncenB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_FONT_SECTION("u8g_font_ncenB12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_FONT_SECTION("u8g_font_ncenB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_FONT_SECTION("u8g_font_ncenB14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_FONT_SECTION("u8g_font_ncenB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_FONT_SECTION("u8g_font_ncenB18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_FONT_SECTION("u8g_font_ncenB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_FONT_SECTION("u8g_font_ncenB24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_FONT_SECTION("u8g_font_ncenB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_FONT_SECTION("u8g_font_ncenB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_FONT_SECTION("u8g_font_ncenR08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_FONT_SECTION("u8g_font_ncenR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_FONT_SECTION("u8g_font_ncenR10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_FONT_SECTION("u8g_font_ncenR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_FONT_SECTION("u8g_font_ncenR12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_FONT_SECTION("u8g_font_ncenR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_FONT_SECTION("u8g_font_ncenR14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_FONT_SECTION("u8g_font_ncenR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_FONT_SECTION("u8g_font_ncenR18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_FONT_SECTION("u8g_font_ncenR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_FONT_SECTION("u8g_font_ncenR24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_FONT_SECTION("u8g_font_ncenR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_FONT_SECTION("u8g_font_ncenR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_FONT_SECTION("u8g_font_symb08"); -extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_FONT_SECTION("u8g_font_symb08r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_FONT_SECTION("u8g_font_symb10"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_FONT_SECTION("u8g_font_symb10r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_FONT_SECTION("u8g_font_symb12"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_FONT_SECTION("u8g_font_symb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_FONT_SECTION("u8g_font_symb14"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_FONT_SECTION("u8g_font_symb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_FONT_SECTION("u8g_font_symb18"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_FONT_SECTION("u8g_font_symb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_FONT_SECTION("u8g_font_symb24"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_FONT_SECTION("u8g_font_symb24r"); - -extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_FONT_SECTION("u8g_font_timB08"); -extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_FONT_SECTION("u8g_font_timB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_FONT_SECTION("u8g_font_timB10"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_FONT_SECTION("u8g_font_timB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_FONT_SECTION("u8g_font_timB12"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_FONT_SECTION("u8g_font_timB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_FONT_SECTION("u8g_font_timB14"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_FONT_SECTION("u8g_font_timB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_FONT_SECTION("u8g_font_timB18"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_FONT_SECTION("u8g_font_timB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_FONT_SECTION("u8g_font_timB24"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_FONT_SECTION("u8g_font_timB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_FONT_SECTION("u8g_font_timB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_FONT_SECTION("u8g_font_timR08"); -extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_FONT_SECTION("u8g_font_timR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_FONT_SECTION("u8g_font_timR10"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_FONT_SECTION("u8g_font_timR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_FONT_SECTION("u8g_font_timR12"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_FONT_SECTION("u8g_font_timR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_FONT_SECTION("u8g_font_timR14"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_FONT_SECTION("u8g_font_timR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_FONT_SECTION("u8g_font_timR18"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_FONT_SECTION("u8g_font_timR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_FONT_SECTION("u8g_font_timR24"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_FONT_SECTION("u8g_font_timR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_FONT_SECTION("u8g_font_timR24n"); - -/* fontstruct */ - -extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_FONT_SECTION("u8g_font_p01type"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_FONT_SECTION("u8g_font_p01typer"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_FONT_SECTION("u8g_font_p01typen"); - -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_FONT_SECTION("u8g_font_lucasfont_alternate"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_FONT_SECTION("u8g_font_lucasfont_alternater"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten"); - -extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_FONT_SECTION("u8g_font_chikita"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_FONT_SECTION("u8g_font_chikitar"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_FONT_SECTION("u8g_font_chikitan"); - -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_FONT_SECTION("u8g_font_pixelle_micro"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_FONT_SECTION("u8g_font_pixelle_micror"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_FONT_SECTION("u8g_font_pixelle_micron"); - -extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_FONT_SECTION("u8g_font_trixel_square"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_FONT_SECTION("u8g_font_trixel_squarer"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_FONT_SECTION("u8g_font_trixel_squaren"); - -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_FONT_SECTION("u8g_font_robot_de_niro"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_FONT_SECTION("u8g_font_robot_de_niror"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_FONT_SECTION("u8g_font_robot_de_niron"); - -extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_FONT_SECTION("u8g_font_baby"); -extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_FONT_SECTION("u8g_font_babyr"); -extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_FONT_SECTION("u8g_font_babyn"); - -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_FONT_SECTION("u8g_font_blipfest_07"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_FONT_SECTION("u8g_font_blipfest_07r"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_FONT_SECTION("u8g_font_blipfest_07n"); - -/* profont */ - -extern const u8g_fntpgm_uint8_t u8g_font_profont10[] U8G_FONT_SECTION("u8g_font_profont10"); -extern const u8g_fntpgm_uint8_t u8g_font_profont10r[] U8G_FONT_SECTION("u8g_font_profont10r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11[] U8G_FONT_SECTION("u8g_font_profont11"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11r[] U8G_FONT_SECTION("u8g_font_profont11r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12[] U8G_FONT_SECTION("u8g_font_profont12"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12r[] U8G_FONT_SECTION("u8g_font_profont12r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15[] U8G_FONT_SECTION("u8g_font_profont15"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15r[] U8G_FONT_SECTION("u8g_font_profont15r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17[] U8G_FONT_SECTION("u8g_font_profont17"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17r[] U8G_FONT_SECTION("u8g_font_profont17r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22[] U8G_FONT_SECTION("u8g_font_profont22"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22r[] U8G_FONT_SECTION("u8g_font_profont22r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29[] U8G_FONT_SECTION("u8g_font_profont29"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29r[] U8G_FONT_SECTION("u8g_font_profont29r"); - - -#ifdef __cplusplus -} -#endif - -#endif /* _U8G_H */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c deleted file mode 100644 index dc742d1d78..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_bitmap.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_bitmap.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, *bitmap); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmap(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - - -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, u8g_pgm_read(bitmap)); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmapP(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - -/*=========================================================================*/ - -static void u8g_DrawHXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, *bitmap); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = *bitmap; - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - while( h > 0 ) - { - u8g_DrawHXBM(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} - -static void u8g_DrawHXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const u8g_pgm_uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, u8g_pgm_read(bitmap)); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = u8g_pgm_read(bitmap); - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHXBMP(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c deleted file mode 100644 index 8f4a0525d8..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_circle.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - - u8g_circle.c - - Utility to draw empty and filled circles. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - u8g_DrawCircle & u8g_DrawDisc by olikraus@gmail.com - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library 02/25/12 - - -*/ - -#include "u8g.h" - -#ifdef OLD_CODE - -void circ_upperRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); -} - -void circ_upperLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); -} - -void circ_lowerRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); -} - -void circ_lowerLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); -} - -void circ_all(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - circ_upperRight(u8g, x, y, x0, y0); - circ_upperLeft(u8g, x, y, x0, y0); - circ_lowerRight(u8g, x, y, x0, y0); - circ_lowerLeft(u8g, x, y, x0, y0); -} - -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - void ( *circ_util )(u8g_t *, u8g_uint_t, u8g_uint_t, u8g_uint_t, u8g_uint_t); - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_upperRight; - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_upperLeft; - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_lowerRight; - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_lowerLeft; - break; - default: - case U8G_CIRC_ALL: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_all; - break; - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - circ_util(u8g, x, y, x0, y0); - } -} - - -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - // Draw vertical diameter at the horiz. center - // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - - if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); - } - else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0, rad+1); - } - else { - u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - //Draw vertical lines from one point to another - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - break; - case U8G_CIRC_ALL: - u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); - u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); - break; - } - } -} - -#endif - -/*=========================================================================*/ - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); - } -} - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw circle */ - u8g_draw_circle(u8g, x0, y0, rad, option); -} - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - } -} - -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw disc */ - u8g_draw_disc(u8g, x0, y0, rad, option); -} - - - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c deleted file mode 100644 index 1ca223e431..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_clip.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - - u8g_clip.c - - procedures for clipping - taken over from procs in u8g_pb.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Notes - - This is one of the most critical parts of u8glib. It must be fast, but still reliable. - Based on the intersection program (see tools folder), there is minimized version of - the condition for the intersaction test: - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - It includes the assumption, that a1 <= a2 is always true (correct, because - a1, a2 are the page dimensions. - - The direct implementation of the above result is done in: - uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - However, this is slower than a decision tree version: - static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - Also suprising is, that the macro implementation is slower than the inlined version. - - The decision tree is based on the expansion of the truth table. - -*/ - -#include "u8g.h" - -#ifdef __GNUC__ -#define U8G_ALWAYS_INLINE __inline__ __attribute__((always_inline)) -#else -#define U8G_ALWAYS_INLINE - #endif - -/* - intersection assumptions: - a1 <= a2 is always true - - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ - -#ifdef OLD_CODE_WHICH_IS_TOO_SLOW -static uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= a1; - c2 = v1 >= a0; - c3 = v0 > v1; - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} -#endif - -#define U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1) ((uint8_t)( (v0) <= (a1) ) ? ( ( (v1) >= (a0) ) ? ( 1 ) : ( (v0) > (v1) ) ) : ( ( (v1) >= (a0) ) ? ( (v0) > (v1) ) : ( 0 ) )) - -//static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) U8G_ALWAYS_INLINE; -static uint8_t U8G_ALWAYS_INLINE u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - /* surprisingly the macro leads to larger code */ - /* return U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1); */ - if ( v0 <= a1 ) - { - if ( v1 >= a0 ) - { - return 1; - } - else - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - } - else - { - if ( v1 >= a0 ) - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - else - { - return 0; - } - } -} - - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - register u8g_uint_t tmp; - tmp = y; - tmp += h; - tmp--; - if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) - return 0; - - tmp = x; - tmp += w; - tmp--; - return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c deleted file mode 100644 index 0201808d71..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - - u8g_com_api.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time) -{ - return dev->com_fn(u8g, U8G_COM_MSG_INIT, clk_cycle_time, NULL); -} - -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_STOP, 0, NULL); -} - -/* cs contains the chip number, which should be enabled */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs) -{ - dev->com_fn(u8g, U8G_COM_MSG_CHIP_SELECT, cs, NULL); -} - -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 0, NULL); -} - -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 1, NULL); -} - - -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address) -{ - dev->com_fn(u8g, U8G_COM_MSG_ADDRESS, address, NULL); -} - -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, val, NULL); -} - -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, cnt, seq); -} - -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ_P, cnt, (void *)seq); -} - -/* - sequence := { direct_value | escape_sequence } - direct_value := 0..254 - escape_sequence := value_255 | sequence_end | delay | adr | cs | not_used - value_255 := 255 255 - sequence_end = 255 254 - delay := 255 0..127 - adr := 255 0x0e0 .. 0x0ef - cs := 255 0x0d0 .. 0x0df - not_used := 255 101..254 - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) - -*/ -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) -{ - uint8_t is_escape = 0; - uint8_t value; - for(;;) - { - value = u8g_pgm_read(esc_seq); - if ( is_escape == 0 ) - { - if ( value != 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else - { - is_escape = 1; - } - } - else - { - if ( value == 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else if ( value == 254 ) - { - break; - } - else if ( value >= 0x0f0 ) - { - /* not yet used, do nothing */ - } - else if ( value >= 0xe0 ) - { - u8g_SetAddress(u8g, dev, value & 0x0f); - } - else if ( value >= 0xd0 ) - { - u8g_SetChipSelect(u8g, dev, value & 0x0f); - } - else if ( value >= 0xc0 ) - { - u8g_SetResetLow(u8g, dev); - value &= 0x0f; - value <<= 4; - value+=2; - u8g_Delay(value); - u8g_SetResetHigh(u8g, dev); - u8g_Delay(value); - } - else if ( value >= 0xbe ) - { - /* not yet implemented */ - /* u8g_SetVCC(u8g, dev, value & 0x01); */ - } - else if ( value <= 127 ) - { - u8g_Delay(value); - } - is_escape = 0; - } - esc_seq++; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c deleted file mode 100644 index 7ff03d8656..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_api_16gr.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - - u8g_com_api_16gr.c - - Extension of the com api for devices with 16 graylevels (4 bit per pixel). - This should fit to the 8h and 16h architectures (pb8v1, pb8v2, pb16v1, pb16v2), - mainly intended for SSD OLEDs - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* interpret b as a monochrome bit pattern, write value 15 for high bit and value 0 for a low bit */ -/* topbit (msb) is sent last */ -/* example: b = 0x083 will send 0xff, 0x00, 0x00, 0xf0 */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - static uint8_t buf[4]; - static uint8_t map[4] = { 0, 0x00f, 0x0f0, 0x0ff }; - buf [3] = map[b & 3]; - b>>=2; - buf [2] = map[b & 3]; - b>>=2; - buf [1] = map[b & 3]; - b>>=2; - buf [0] = map[b & 3]; - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, 4, buf); -} - -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByteBWTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} - -/* interpret b as a 4L bit pattern, write values 0x000, 0x004, 0x008, 0x00c */ -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - //static uint8_t map[16] = { 0x000, 0x004, 0x008, 0x00c, 0x040, 0x044, 0x048, 0x04c, 0x080, 0x084, 0x088, 0x08c, 0x0c0, 0x0c4, 0x0c8, 0x0cc}; - //static uint8_t map[16] = { 0x000, 0x004, 0x00a, 0x00f, 0x040, 0x044, 0x04a, 0x04f, 0x0a0, 0x0a4, 0x0aa, 0x0af, 0x0f0, 0x0f4, 0x0fa, 0x0ff}; - static uint8_t map[16] = { 0x000, 0x040, 0x0a0, 0x0f0, 0x004, 0x044, 0x0a4, 0x0f4, 0x00a, 0x04a, 0x0aa, 0x0fa, 0x00f, 0x04f, 0x0af, 0x0ff}; - uint8_t bb; - bb = b; - bb &= 15; - b>>=4; - dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[bb], NULL); - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[b], NULL); -} - -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByte4LTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c deleted file mode 100644 index 9d0191eae5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - - u8g_arduino_ATtiny85_std_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Uses code from tinySPI Written by Nick Gammon -// March 2013 - -// ATMEL ATTINY45 / ARDUINO pin mappings -// -// +-\/-+ -// RESET Ain0 (D 5) PB5 1| |8 Vcc -// CLK1 Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1 SCK / USCK / SCL -// CLK0 Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 MISO / DO -// GND 4| |5 PB0 (D 0) pwm0 MOSI / DI / SDA -// +----+ - - -#include "u8g.h" - - -#if defined(ARDUINO) && defined(__AVR_ATtiny85__) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -const byte DI = 0; // D0, pin 5 Data In -const byte DO = 1; // D1, pin 6 Data Out (this is *not* MOSI) -const byte USCK = 2; // D2, pin 7 Universal Serial Interface clock - -uint8_t u8g_arduino_ATtiny85_spi_out(uint8_t val) -{ - USIDR = val; // byte to output - USISR = _BV (USIOIF); // clear Counter Overflow Interrupt Flag, set count to zero - do - { - USICR = _BV (USIWM0) // 3-wire mode - | _BV (USICS1) | _BV (USICLK) // Software clock strobe - | _BV (USITC); // Toggle Clock Port Pin - } - while ((USISR & _BV (USIOIF)) == 0); // until Counter Overflow Interrupt Flag set - - return USIDR; // return read data -} - -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); // ensure SS stays high until needed - pinMode (USCK, OUTPUT); - pinMode (DO, OUTPUT); - pinMode (u8g->pin_list[U8G_PI_CS], OUTPUT); - pinMode (u8g->pin_list[U8G_PI_A0], OUTPUT); - USICR = _BV (USIWM0); // 3-wire mode - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - u8g_MicroDelay(); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - u8g_MicroDelay(); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_arduino_ATtiny85_spi_out(arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_ATtiny85_spi_out(*ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_ATtiny85_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - u8g_MicroDelay(); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c deleted file mode 100644 index ef0b2366ee..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_common.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - - u8g_com_arduino_common.c - - shared procedures for the arduino communication procedures - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value) -{ - uint8_t pin; - pin = u8g->pin_list[pin_index]; - if ( pin != U8G_PIN_NONE ) - digitalWrite(pin, value); -} - -/* this procedure does not set the RW pin */ -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g) -{ - uint8_t i; - /* skip the RW pin, which is the last pin in the list */ - for( i = 0; i < U8G_PIN_LIST_LEN-1; i++ ) - { - if ( u8g->pin_list[i] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[i], OUTPUT); - digitalWrite(u8g->pin_list[i], HIGH); - } - } -} - - -#endif - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c deleted file mode 100644 index 57d4410af1..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - - u8g_arduino_fast_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#define PIN_D0 8 -#define PIN_D1 9 -#define PIN_D2 10 -#define PIN_D3 11 -#define PIN_D4 4 -#define PIN_D5 5 -#define PIN_D6 6 -#define PIN_D7 7 - -#define PIN_CS1 14 -#define PIN_CS2 15 -#define PIN_RW 16 -#define PIN_DI 17 -#define PIN_EN 18 - -//#define PIN_RESET - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_fast_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -/* atomic protection must be done by calling function */ -static void u8g_com_arduino_fast_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - *u8g_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; -} - - -void u8g_com_arduino_fast_parallel_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - u8g_com_arduino_fast_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_fast_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - /* EN cycle time must be 1 micro second */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_fast_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_fast_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c deleted file mode 100644 index 3c0d34a48c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c +++ /dev/null @@ -1,438 +0,0 @@ -/* - - u8g_com_arduino_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SPI Clock Cycle Type - - SSD1351 50ns 20 MHz - SSD1322 300ns 3.3 MHz - SSD1327 300ns - SSD1306 300ns - ST7565 400ns 2.5 MHz - ST7920 400ns - - Arduino DUE - - PA25 MISO - PA26 MOSI 75 - PA27 SCLK 76 - - -typedef struct { - WoReg SPI_CR; (Spi Offset: 0x00) Control Register - RwReg SPI_MR; (Spi Offset: 0x04) Mode Register - RoReg SPI_RDR; (Spi Offset: 0x08) Receive Data Register - WoReg SPI_TDR; (Spi Offset: 0x0C) Transmit Data Register - RoReg SPI_SR; (Spi Offset: 0x10) Status Register - WoReg SPI_IER; (Spi Offset: 0x14) Interrupt Enable Register - WoReg SPI_IDR; (Spi Offset: 0x18) Interrupt Disable Register - RoReg SPI_IMR; (Spi Offset: 0x1C) Interrupt Mask Register - RoReg Reserved1[4]; - RwReg SPI_CSR[4]; (Spi Offset: 0x30) Chip Select Register - RoReg Reserved2[41]; - RwReg SPI_WPMR; (Spi Offset: 0xE4) Write Protection Control Register - RoReg SPI_WPSR; (Spi Offset: 0xE8) Write Protection Status Register -} Spi; - - Power Management Controller (PMC) - arduino-1.5.2/hardware/arduino/sam/system/CMSIS/Device/ATMEL/sam3xa/include/instance/instance_pmc.h - - enable PIO - - REG_PMC_PCER0 = 1UL << ID_PIOA - - enable SPI - REG_PMC_PCER0 = 1UL << ID_SPI0 - - - - enable PIOA and SPI0 - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - - Parallel Input/Output Controller (PIO) - arduino-1.5.2/hardware/arduino/sam/system/CMSIS/Device/ATMEL/sam3xa/include/instance/instance_pioa.h - - enable special function of the pin: disable PIO on A26 and A27: - REG_PIOA_PDR = 0x0c000000 - PIOA->PIO_PDR = 0x0c000000 - - SPI - SPI0->SPI_CR = SPI_CR_SPIDIS - SPI0->SPI_CR = SPI_CR_SWRST ; - SPI0->SPI_CR = SPI_CR_SWRST ; - SPI0->SPI_CR = SPI_CR_SPIEN - - Bit 0: Master Mode = 1 (active) - Bit 1: Peripheral Select = 0 (fixed) - Bit 2: Chip Select Decode Mode = 1 (4 to 16) - Bit 4: Mode Fault Detection = 1 (disabled) - Bit 5: Wait Data Read = 0 (disabled) - Bit 7: Loop Back Mode = 0 (disabled) - Bit 16-19: Peripheral Chip Select = 0 (chip select 0) - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS - - Bit 0: Clock Polarity = 0 - Bit 1: Clock Phase = 0 - Bit 4-7: Bits = 0 (8 Bit) - Bit 8-15: SCBR = 1 - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(x) Serial Baud Rate - SCBR / 84000000 > 50 / 1000000000 - SCBR / 84 > 5 / 100 - SCBR > 50 *84 / 1000 --> SCBR=5 - SCBR > 300*84 / 1000 --> SCBR=26 - SCBR > 400*84 / 1000 --> SCBR=34 - - Arduino Due test code: - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - REG_PIOA_PDR = 0x0c000000; - SPI0->SPI_CR = SPI_CR_SPIDIS; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SPIEN; - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS; - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(30); - - for(;;) - { - while( (SPI0->SPI_SR & SPI_SR_TDRE) == 0 ) - ; - SPI0->SPI_TDR = 0x050; - } - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if defined(__AVR__) -#define U8G_ARDUINO_ATMEGA_HW_SPI -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) - -#include -#include - -#if ARDUINO < 100 -#include - -/* fixed pins */ -#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board -#define PIN_SCK 7 -#define PIN_MISO 6 -#define PIN_MOSI 5 -#define PIN_CS 4 -#else // Arduino Board -#define PIN_SCK 13 -#define PIN_MISO 12 -#define PIN_MOSI 11 -#define PIN_CS 10 -#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) - -#else - -#include - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - -#endif - - - -//static uint8_t u8g_spi_out(uint8_t data) U8G_NOINLINE; -static uint8_t u8g_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_spi_out(arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -/* #elif defined(__18CXX) || defined(__PIC32MX) */ - -#elif defined(__SAM3X8E__) // Arduino Due, maybe we should better check for __SAM3X8E__ - -#include - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - - -static uint8_t u8g_spi_out(uint8_t data) -{ - /* wait until tx register is empty */ - while( (SPI0->SPI_SR & SPI_SR_TDRE) == 0 ) - ; - /* send data */ - SPI0->SPI_TDR = (uint32_t)data; - return data; -} - - -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - - /* Arduino Due specific code */ - - /* enable PIOA and SPI0 */ - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - - /* disable PIO on A26 and A27 */ - REG_PIOA_PDR = 0x0c000000; - - /* reset SPI0 (from sam lib) */ - SPI0->SPI_CR = SPI_CR_SPIDIS; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SPIEN; - u8g_MicroDelay(); - - /* master mode, no fault detection, chip select 0 */ - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS; - - /* Polarity, Phase, 8 Bit data transfer, baud rate */ - /* x * 1000 / 84 --> clock cycle in ns - 5 * 1000 / 84 = 58 ns - SCBR > 50 *84 / 1000 --> SCBR=5 - SCBR > 300*84 / 1000 --> SCBR=26 - SCBR > 400*84 / 1000 --> SCBR=34 - */ - - if ( arg_val <= U8G_SPI_CLK_CYCLE_50NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(5) | 1; - } - else if ( arg_val <= U8G_SPI_CLK_CYCLE_300NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(26) | 1; - } - else if ( arg_val <= U8G_SPI_CLK_CYCLE_400NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(34) | 1; - } - else - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(84) | 1; - } - - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_MicroDelay(); /* this delay is required to avoid that the display is switched off too early --> DOGS102 with DUE */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - u8g_MicroDelay(); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - u8g_MicroDelay(); - } - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_spi_out(arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - - - -#else /* U8G_ARDUINO_ATMEGA_HW_SPI */ - -#endif /* U8G_ARDUINO_ATMEGA_HW_SPI */ - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c deleted file mode 100644 index 27fd8d01c9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - - u8g_com_arduino_hw_usart_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SPI Clock Cycle Type - - SSD1351 50ns 20 MHz - SSD1322 300ns 3.3 MHz - SSD1327 300ns - SSD1306 300ns - ST7565 400ns 2.5 MHz - ST7920 400ns - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if defined(__AVR_ATmega32U4__ ) - -#include -#include - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - -static uint8_t u8g_usart_spi_out(uint8_t data) -{ - /* send data */ - UDR1 = data; - /* wait for empty transmit buffer */ - while(!(UCSR1A & (1 << UDRE1))); - - return UDR1; -} - - -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - /* SCK is already an output as we overwrite TXLED */ - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - - // Init interface at 2MHz - UBRR1 = 0x00; - UCSR1C = (1 << UMSEL11) | (1 << UMSEL10); - UCSR1B = (1 << TXEN1); - UBRR1 = 3; - - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_usart_spi_out(arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_usart_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_usart_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -/* #elif defined(__18CXX) || defined(__PIC32MX) */ -/* #elif defined(__arm__) // Arduino Due, maybe we should better check for __SAM3X8E__ */ - -#else /* __AVR_ATmega32U4__ */ - -#endif /* __AVR_ATmega32U4__ */ - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c deleted file mode 100644 index 4edb30a464..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - - u8g_arduino_no_en_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - Update for ATOMIC operation done (01 Jun 2013) - - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - -//#define PIN_RESET - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_no_en_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -/* No atomic protcetion. This is done by caller */ -static void u8g_com_arduino_no_en_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - { - *u8g_data_port[pin] |= u8g_data_mask[pin]; - } - else - { - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; - } -} - - -void u8g_com_arduino_no_en_parallel_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - u8g_com_arduino_no_en_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_no_en_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - if ( u8g->pin_list[U8G_PI_CS_STATE] == 1 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_MicroDelay(); - } - else if ( u8g->pin_list[U8G_PI_CS_STATE] == 2 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - u8g_MicroDelay(); - } -} - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_no_en_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - /* - 0: nothing selected - 1: CS1 will be used as enable line - 2: CS2 will be used as enable line - this will be used in the u8g_com_arduino_no_en_parallel_write() procedure - */ - u8g->pin_list[U8G_PI_CS_STATE] = arg_val; - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_no_en_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c deleted file mode 100644 index d5d5dd7557..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_parallel.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_com_arduino_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -void u8g_com_arduino_parallel_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c deleted file mode 100644 index 64a8229e12..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_arduino_port_d_wr.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes PORTD for 8 bit data transfer. - EN is assumed to be a low active write signal (WR) - - ILI9325D_320x240 from iteadstudio.com - RS=19, WR=18, CS=17, RST=16 - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) && defined(PORTD) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -static void u8g_com_arduino_port_d_8bit_wr(u8g_t *u8g, uint8_t val) -{ - PORTD = val; - - /* WR cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); -} - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - - switch(msg) - { - case U8G_COM_MSG_INIT: - -#ifdef UCSR0B - UCSR0B = 0; // disable USART 0 -#endif - U8G_ATOMIC_START(); - DDRD = 0x0ff; - PORTD = 0x0ff; - U8G_ATOMIC_END(); - - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, HIGH); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_port_d_8bit_wr(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO && PORTD */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c deleted file mode 100644 index 84b24daadb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - - u8g_com_arduino_ssd_i2c.c - - com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant - I2C protocol - - ToDo: Rename this to u8g_com_avr_ssd_i2c.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_WITH_PINLIST) - - -#define I2C_SLA (0x3c*2) -//#define I2C_CMD_MODE 0x080 -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - -uint8_t u8g_com_arduino_ssd_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); - //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); - //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ - - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_arduino_ssd_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c deleted file mode 100644 index d157b93632..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - - u8g_com_arduino_st7920_custom.c - - Additional COM device, initially introduced for 3D Printer community - Implements a fast SW SPI com subsystem - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -static uint8_t u8g_bitData, u8g_bitNotData; -static uint8_t u8g_bitClock, u8g_bitNotClock; -static volatile uint8_t *u8g_outData; -static volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - - - U8G_ATOMIC_START(); - bitData |= *outData; - bitNotData &= *outData; - do - { - if ( val & 128 ) - *outData = bitData; - else - *outData = bitNotData; - - /* - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - */ - - val <<= 1; - *outClock &= bitNotClock; - cnt--; - // removed micro delays, because AVRs are too slow and the delay is not required - //u8g_MicroDelay(); - *outClock |= bitClock; - //u8g_MicroDelay(); - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - //u8g_MicroDelay(); - //*dog_outClock |= dog_bitClock; - *dog_outClock &= dog_bitNotClock; - cnt--; - u8g_MicroDelay(); - //*dog_outClock &= dog_bitNotClock; - *dog_outClock |= dog_bitClock; - u8g_MicroDelay(); - - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#else - -/* default interface, Arduino DUE (__arm__) */ - -uint8_t u8g_data_custom_pin; -uint8_t u8g_clock_custom_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_data_custom_pin = dataPin; - u8g_clock_custom_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - digitalWrite(u8g_data_custom_pin, HIGH); - else - digitalWrite(u8g_data_custom_pin, LOW); - val <<= 1; - //u8g_MicroDelay(); - digitalWrite(u8g_clock_custom_pin, LOW); - cnt--; - u8g_MicroDelay(); - digitalWrite(u8g_clock_custom_pin, HIGH); - u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#endif - - -static void u8g_com_arduino_st7920_write_byte_seq(uint8_t rs, uint8_t *ptr, uint8_t len) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - while( len > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(*ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); - -} - - -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_seq(u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c deleted file mode 100644 index af44c7f860..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - - u8g_com_arduino_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special HW SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) -#define U8G_ARDUINO_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif - -#endif - - -#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) - -#include -#include - - -#if ARDUINO < 100 - -/* fixed pins */ -#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board -#define PIN_SCK 7 -#define PIN_MISO 6 -#define PIN_MOSI 5 -#define PIN_CS 4 -#else // Arduino Board -#define PIN_SCK 13 -#define PIN_MISO 12 -#define PIN_MOSI 11 -#define PIN_CS 10 -#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) - -#else - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - -#endif - - -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1< 0 ) - { - u8g_arduino_st7920_hw_spi_shift_out(u8g, *ptr & 0x0f0); - u8g_arduino_st7920_hw_spi_shift_out(u8g, *ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte_hw_spi(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_st7920_write_byte_hw_spi(u8g_t *u8g, uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_arduino_st7920_hw_spi_shift_out(u8g, 0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_arduino_st7920_hw_spi_shift_out(u8g, 0x0fa); - } - else - { - /* do nothing, keep same state */ - } - - u8g_arduino_st7920_hw_spi_shift_out(u8g, val & 0x0f0); - u8g_arduino_st7920_hw_spi_shift_out(u8g, val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - - - /* code from u8g_com-arduino_hw_spi.c */ - pinMode(PIN_SCK, OUTPUT); - digitalWrite(PIN_SCK, LOW); - pinMode(PIN_MOSI, OUTPUT); - digitalWrite(PIN_MOSI, LOW); - /* pinMode(PIN_MISO, INPUT); */ - - pinMode(PIN_CS, OUTPUT); /* system chip select for the atmega board */ - digitalWrite(PIN_CS, HIGH); - - - //u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - -#ifdef OBSOLETE - DDRB |= _BV(3); /* D0, MOSI */ - DDRB |= _BV(5); /* SCK */ - DDRB |= _BV(2); /* slave select */ - - PORTB &= ~_BV(3); /* D0, MOSI = 0 */ - PORTB &= ~_BV(5); /* SCK = 0 */ -#endif - - /* - SPR1 SPR0 - 0 0 fclk/4 - 0 1 fclk/16 - 1 0 fclk/64 - 1 1 fclk/128 - */ - SPCR = 0; - - /* 20 Dez 2012: set CPOL and CPHA to 1 !!! */ - SPCR = (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_hw_spi_seq(u8g, u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - /* - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - arg_val--; - } - } - */ - - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} -#endif - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c deleted file mode 100644 index 9a5c2bef35..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - - u8g_com_arduino_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -static uint8_t u8g_bitData, u8g_bitNotData; -static uint8_t u8g_bitClock, u8g_bitNotClock; -static volatile uint8_t *u8g_outData; -static volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - - - U8G_ATOMIC_START(); - bitData |= *outData; - bitNotData &= *outData; - do - { - if ( val & 128 ) - *outData = bitData; - else - *outData = bitNotData; - - /* - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - */ - - val <<= 1; - *outClock &= bitNotClock; - cnt--; - // removed micro delays, because AVRs are too slow and the delay is not required - //u8g_MicroDelay(); - *outClock |= bitClock; - //u8g_MicroDelay(); - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - //u8g_MicroDelay(); - //*dog_outClock |= dog_bitClock; - *dog_outClock &= dog_bitNotClock; - cnt--; - u8g_MicroDelay(); - //*dog_outClock &= dog_bitNotClock; - *dog_outClock |= dog_bitClock; - u8g_MicroDelay(); - - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#else - -/* default interface, Arduino DUE (__arm__) */ - -uint8_t u8g_data_pin; -uint8_t u8g_clock_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_data_pin = dataPin; - u8g_clock_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - digitalWrite(u8g_data_pin, HIGH); - else - digitalWrite(u8g_data_pin, LOW); - val <<= 1; - //u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, LOW); - cnt--; - u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, HIGH); - u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#endif - - -static void u8g_com_arduino_st7920_write_byte_seq(uint8_t rs, uint8_t *ptr, uint8_t len) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - while( len > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(*ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); - -} - - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - /* 28 Dec 2013 reassign pins, fixes issue with more than one display */ - /* issue 227 */ - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_seq(u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c deleted file mode 100644 index 048ac1af36..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - - u8g_arduino_std_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_arduino_sw_spi_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) -{ - uint8_t i = 8; - do - { - if ( val & 128 ) - digitalWrite(dataPin, HIGH); - else - digitalWrite(dataPin, LOW); - val <<= 1; - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, HIGH); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, LOW); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c deleted file mode 100644 index 7752adc829..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - - u8g_arduino_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -/*=========================================================*/ -/* Arduino, AVR */ - -#if defined(__AVR__) - -uint8_t u8g_bitData, u8g_bitNotData; -uint8_t u8g_bitClock, u8g_bitNotClock; -volatile uint8_t *u8g_outData; -volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *outData |= bitData; - else - *outData &= bitNotData; - - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -/*=========================================================*/ -/* Arduino, Chipkit */ -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - /* - There must be some delay here. However - fetching the adress dog_outClock is enough delay, so - do not place dog_outClock in a local variable. This will - break the procedure - */ - *dog_outClock |= dog_bitClock; - cnt--; - *dog_outClock &= dog_bitNotClock; - /* - little additional delay after clk pulse, done by 3x32bit reads - from I/O. Optimized for PIC32 with 80 MHz. - */ - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -/*=========================================================*/ -/* Arduino Due */ -#elif defined(__SAM3X8E__) - -/* Due */ - -void u8g_digital_write_sam_high(uint8_t pin) -{ - PIO_Set( g_APinDescription[pin].pPort, g_APinDescription[pin].ulPin) ; -} - -void u8g_digital_write_sam_low(uint8_t pin) -{ - PIO_Clear( g_APinDescription[pin].pPort, g_APinDescription[pin].ulPin) ; -} - -static uint8_t u8g_sam_data_pin; -static uint8_t u8g_sam_clock_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_sam_data_pin = dataPin; - u8g_sam_clock_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t i = 8; - do - { - if ( val & 128 ) - u8g_digital_write_sam_high(u8g_sam_data_pin); - else - u8g_digital_write_sam_low(u8g_sam_data_pin); - val <<= 1; - //u8g_MicroDelay(); - u8g_digital_write_sam_high(u8g_sam_clock_pin); - u8g_MicroDelay(); - u8g_digital_write_sam_low(u8g_sam_clock_pin); - u8g_MicroDelay(); - i--; - } while( i != 0 ); -} - - -#else -/* empty interface */ - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ -} - -#endif - - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - /* issue 227 */ - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_do_shift_out_msb_first( arg_val ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr++); - // u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first( u8g_pgm_read(ptr) ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c deleted file mode 100644 index 50e5e93ac4..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_t6963.c +++ /dev/null @@ -1,403 +0,0 @@ -/* - - u8g_com_arduino_t6963.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_output_data_port[8]; -static volatile uint32_t *u8g_input_data_port[8]; -static volatile uint32_t *u8g_mode_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_output_data_port[8]; -static volatile uint8_t *u8g_input_data_port[8]; -static volatile uint8_t *u8g_mode_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_t6963_init(u8g_t *u8g) -{ - u8g_output_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_input_data_port[0] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_mode_port[0] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - - u8g_output_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_input_data_port[1] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_mode_port[1] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - - u8g_output_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_input_data_port[2] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_mode_port[2] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - - u8g_output_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_input_data_port[3] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_mode_port[3] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_output_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_input_data_port[4] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_mode_port[4] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - - u8g_output_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_input_data_port[5] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_mode_port[5] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - - u8g_output_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_input_data_port[6] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_mode_port[6] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - - u8g_output_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_input_data_port[7] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_mode_port[7] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - - -static void u8g_com_arduino_t6963_write_data_pin(uint8_t pin, uint8_t val) -{ - /* no ATOMIC protection required here, this is done by calling procedure */ - if ( val != 0 ) - *u8g_output_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_output_data_port[pin] &= ~u8g_data_mask[pin]; -} - -static void u8g_com_arduino_t6963_set_port_output(void) -{ - uint8_t i; - U8G_ATOMIC_START(); - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#elif defined(__AVR__) - *u8g_mode_port[i] |= u8g_data_mask[i]; -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#endif - - } - U8G_ATOMIC_END(); -} - -static void u8g_com_arduino_t6963_set_port_input(void) -{ - uint8_t i; - U8G_ATOMIC_START(); - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; -#elif defined(__AVR__) -/* avr */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#endif - } - U8G_ATOMIC_END(); -} - - -static void u8g_com_arduino_t6963_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - - u8g_com_arduino_t6963_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_t6963_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 0); - u8g_MicroDelay(); /* 80ns, reference: t6963 datasheet */ - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ -} - -static uint8_t u8g_com_arduino_t6963_read(u8g_t *u8g) -{ - uint8_t val = 0; - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 0); - u8g_MicroDelay(); /* 150ns, reference: t6963 datasheet */ - - U8G_ATOMIC_START(); - /* only read bits 0, 1 and 3 */ - if ( (*u8g_input_data_port[3] & u8g_data_mask[3]) != 0 ) - val++; - val <<= 1; - val <<= 1; - if ( (*u8g_input_data_port[1] & u8g_data_mask[1]) != 0 ) - val++; - val <<= 1; - if ( (*u8g_input_data_port[0] & u8g_data_mask[0]) != 0 ) - val++; - U8G_ATOMIC_END(); - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ - - return val; -} - -#define U8G_STATUS_TIMEOUT 50 - -static uint8_t u8g_com_arduino_t6963_until_01_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 3) == 3 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_until_3_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 8) == 8 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_cmd(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_auto_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_3_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g_com_arduino_t6963_init(u8g); - /* setup the RW (equal to WR) pin as output and force it to high */ - if ( u8g->pin_list[U8G_PI_WR] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_WR], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, HIGH); - } - /* set all pins (except WR pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, active low chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - u8g_com_arduino_t6963_write_data(u8g, arg_val); - } - else - { - u8g_com_arduino_t6963_write_cmd(u8g, arg_val); - } - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, *ptr++) == 0 ) - break; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, u8g_pgm_read(ptr)) == 0 ) - break; - ptr++; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 1) or data mode (arg_val = 0) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - //u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c deleted file mode 100644 index 263766818f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c +++ /dev/null @@ -1,206 +0,0 @@ -/* - - u8g_com_arduino_uc_i2c.c - - com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant - I2C protocol - - ToDo: Rename this to u8g_com_avr_ssd_i2c.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_WITH_PINLIST) - -#define DOGM240_SLA_CMD (0x38*2) -#define DOGM240_SLA_DATA (0x39*2) - -uint8_t u8g_com_arduino_uc_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_start(DOGM240_SLA_CMD) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_start(DOGM240_SLA_DATA) == 0 ) - return 0; - } - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); - //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); - //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ - - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_arduino_uc_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c deleted file mode 100644 index 71e378b55c..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_com_atmega_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - - -*/ - -#include "u8g.h" - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - - -static uint8_t u8g_atmega_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1< 0 ) - { - u8g_atmega_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c deleted file mode 100644 index 2b49b04fd0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_parallel.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - - u8g_com_atmega_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) -{ - - u8g_SetPILevel(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second */ - u8g_SetPILevel(u8g, U8G_PI_EN, 1); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_SetPILevel(u8g, U8G_PI_EN, 0); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - u8g_SetPIOutput(u8g, U8G_PI_RW); - u8g_SetPILevel(u8g, U8G_PI_RW, 0); - - u8g_SetPIOutput(u8g, U8G_PI_D0); - u8g_SetPIOutput(u8g, U8G_PI_D1); - u8g_SetPIOutput(u8g, U8G_PI_D2); - u8g_SetPIOutput(u8g, U8G_PI_D3); - u8g_SetPIOutput(u8g, U8G_PI_D4); - u8g_SetPIOutput(u8g, U8G_PI_D5); - u8g_SetPIOutput(u8g, U8G_PI_D6); - u8g_SetPIOutput(u8g, U8G_PI_D7); - u8g_SetPIOutput(u8g, U8G_PI_EN); - u8g_SetPIOutput(u8g, U8G_PI_CS1); - u8g_SetPIOutput(u8g, U8G_PI_CS2); - u8g_SetPIOutput(u8g, U8G_PI_DI); - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - else - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c deleted file mode 100644 index dd0fd4e15a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - - u8g_com_atmega_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller with HW SPI Support - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif - -#endif - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c deleted file mode 100644 index 24e06028a5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - - u8g_com_atmega_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0fa); - } - - u8g_atmega_st7920_sw_spi_shift_out(u8g, val & 0x0f0); - u8g_atmega_st7920_sw_spi_shift_out(u8g, val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - /* u8g_SetPIOutput(u8g, U8G_PI_A0); */ - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 0 ); - /* u8g_SetPILevel(u8g, U8G_PI_A0, 0); */ - - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c deleted file mode 100644 index fde3153a57..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_com_atmega_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - u8g_SetPIOutput(u8g, U8G_PI_A0); - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 1 ); - u8g_SetPILevel(u8g, U8G_PI_A0, 0); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); - } - else - { - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); /* CS = 0 (low active) */ - } - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_atmega_sw_spi_shift_out(u8g, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c deleted file mode 100644 index 8e16bead3d..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_i2c.c +++ /dev/null @@ -1,642 +0,0 @@ -/* - - u8g_com_i2c.c - - generic i2c interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -//#define U8G_I2C_WITH_NO_ACK - -static uint8_t u8g_i2c_err_code; -static uint8_t u8g_i2c_opt; /* U8G_I2C_OPT_NO_ACK, SAM: U8G_I2C_OPT_DEV_1 */ -/* - position values - 1: start condition - 2: sla transfer -*/ -static uint8_t u8g_i2c_err_pos; - - -void u8g_i2c_clear_error(void) -{ - u8g_i2c_err_code = U8G_I2C_ERR_NONE; - u8g_i2c_err_pos = 0; -} - -uint8_t u8g_i2c_get_error(void) -{ - return u8g_i2c_err_code; -} - -uint8_t u8g_i2c_get_err_pos(void) -{ - return u8g_i2c_err_pos; -} - -static void u8g_i2c_set_error(uint8_t code, uint8_t pos) -{ - if ( u8g_i2c_err_code > 0 ) - return; - u8g_i2c_err_code |= code; - u8g_i2c_err_pos = pos; -} - - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_TWI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_TWI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_TWI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_TWI) - -#include -#include - - - -void u8g_i2c_init(uint8_t options) -{ - /* - TWBR: bit rate register - TWSR: status register (contains preselector bits) - - prescalar - 0 1 - 1 4 - 2 16 - 3 64 - - f = F_CPU/(16+2*TWBR*prescalar) - - F_CPU = 16MHz - TWBR = 152; - TWSR = 0; - --> 50KHz - - TWBR = 72; - TWSR = 0; - --> 100KHz - - TWBR = 12; - TWSR = 0; - --> 400KHz - - F_CPU/(2*100000)-8 --> calculate TWBR value for 100KHz -*/ - u8g_i2c_opt = options; - TWSR = 0; - if ( options & U8G_I2C_OPT_FAST ) - { - TWBR = F_CPU/(2*400000)-8; - } - else - { - TWBR = F_CPU/(2*100000)-8; - } - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - volatile uint16_t cnt = 2000; /* timout value should be > 280 for 50KHz Bus and 16 Mhz CPU, however the start condition might need longer */ - while( !(TWCR & mask) ) - { - if ( cnt == 0 ) - { - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - return 1; /* all ok */ - } - else - { - u8g_i2c_set_error(U8G_I2C_ERR_TIMEOUT, pos); - return 0; /* error */ - } - } - cnt--; - } - return 1; /* all ok */ -} - -/* sla includes all 8 bits (with r/w bit), assums master transmit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - register uint8_t status; - - /* send start */ - TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 1) == 0 ) - return 0; - - status = TW_STATUS; - - /* check status after start */ - if ( status != TW_START && status != TW_REP_START ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 1); - return 0; - } - - /* set slave address */ - TWDR = sla; - - /* enable sla transfer */ - TWCR = _BV(TWINT) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 2) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - /* check status after sla */ - if ( status != TW_MT_SLA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 2); - return 0; - } - } - - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - register uint8_t status; - TWDR = data; - TWCR = _BV(TWINT) | _BV(TWEN); - if ( u8g_i2c_wait(_BV(TWINT), 3) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - if ( status != TW_MT_DATA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 3); - return 0; - } - } - - return 1; -} - -void u8g_i2c_stop(void) -{ - /* write stop */ - TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO); - - /* no error is checked for the stop condition */ - u8g_i2c_wait(_BV(TWSTO), 4); - -} - -/* -void twi_send(uint8_t adr, uint8_t data1, uint8_t data2) -{ - u8g_i2c_start(adr<<1); - u8g_i2c_send_byte(data1); - u8g_i2c_send_byte(data2); - u8g_i2c_stop(); -} -*/ - -#elif defined(ARDUINO) && defined(__SAM3X8E__) -/* Arduino Due */ -#include "Arduino.h" -#include "sam.h" - -/* - -Controller - -TWI0 TWCK0 PA18 A DUE PCB: SCL1 -TWI0 TWD0 PA17 A DUE PCB: SDA1 -TWI1 TWCK1 PB13 A DUE PCB: SCL 21 -TWI1 TWD1 PB12 A DUE PCB: SDA 20 - -Arduino definitions - -#define PIN_WIRE_SDA (20u) -#define PIN_WIRE_SCL (21u) -#define WIRE_INTERFACE TWI1 -#define WIRE_INTERFACE_ID ID_TWI1 -#define WIRE_ISR_HANDLER TWI1_Handler - -#define PIN_WIRE1_SDA (70u) -#define PIN_WIRE1_SCL (71u) -#define WIRE1_INTERFACE TWI0 -#define WIRE1_INTERFACE_ID ID_TWI0 -#define WIRE1_ISR_HANDLER TWI0_Handler - - -*/ - -static void i2c_400KHz_delay(void) -{ - /* should be at least 4 */ - /* should be 5 for 100KHz transfer speed */ - - - /* - Arduino Due - 0x NOP: 470KHz - 4x NOP: 450KHz - 8x NOP: 430KHz - 16x NOP: 400KHz - */ - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); -} - -static void i2c_100KHz_delay(void) -{ - /* - 1x u8g_MicroDelay() ca. 130KHz - 2x u8g_MicroDelay() ca. 80KHz - */ - u8g_MicroDelay(); - u8g_MicroDelay(); -} - - -uint32_t i2c_started = 0; -uint32_t i2c_scl_pin = 0; -uint32_t i2c_sda_pin = 0; -void (*i2c_delay)(void) = i2c_100KHz_delay; - -const PinDescription *i2c_scl_pin_desc; -const PinDescription *i2c_sda_pin_desc; - - -/* maybe this can be optimized */ -static void i2c_init(void) -{ - i2c_sda_pin_desc = &(g_APinDescription[i2c_sda_pin]); - i2c_scl_pin_desc = &(g_APinDescription[i2c_scl_pin]); - pinMode(i2c_sda_pin, OUTPUT); - digitalWrite(i2c_sda_pin, HIGH); - pinMode(i2c_scl_pin, OUTPUT); - digitalWrite(i2c_scl_pin, HIGH); - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; - PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - i2c_delay(); -} - -/* actually, the scl line is not observed, so this procedure does not return a value */ -static void i2c_read_scl_and_delay(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_scl_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask ; - - i2c_delay(); -} - -static void i2c_clear_scl(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_scl_pin_desc->pPort->PIO_MDER = dwMask; - i2c_scl_pin_desc->pPort->PIO_CODR = dwMask; - i2c_scl_pin_desc->pPort->PIO_OER = dwMask; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask; - - //PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; -} - -static uint8_t i2c_read_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_sda_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - - return 1; -} - -static void i2c_clear_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_sda_pin_desc->pPort->PIO_MDER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_CODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_OER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - //PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; -} - -static void i2c_start(void) -{ - if ( i2c_started != 0 ) - { - /* if already started: do restart */ - i2c_read_sda(); /* SDA = 1 */ - i2c_delay(); - i2c_read_scl_and_delay(); - } - i2c_read_sda(); - /* - if (i2c_read_sda() == 0) - { - // do something because arbitration is lost - } - */ - /* send the start condition, both lines go from 1 to 0 */ - i2c_clear_sda(); - i2c_delay(); - i2c_clear_scl(); - i2c_started = 1; -} - - -static void i2c_stop(void) -{ - /* set SDA to 0 */ - i2c_clear_sda(); - i2c_delay(); - - /* now release all lines */ - i2c_read_scl_and_delay(); - - /* set SDA to 1 */ - i2c_read_sda(); - i2c_delay(); - i2c_started = 0; -} - -static void i2c_write_bit(uint8_t val) -{ - if (val) - i2c_read_sda(); - else - i2c_clear_sda(); - - i2c_delay(); - i2c_read_scl_and_delay(); - i2c_clear_scl(); -} - -static uint8_t i2c_read_bit(void) -{ - uint8_t val; - /* do not drive SDA */ - i2c_read_sda(); - i2c_delay(); - i2c_read_scl_and_delay(); - val = i2c_read_sda(); - i2c_delay(); - i2c_clear_scl(); - return val; -} - -static uint8_t i2c_write_byte(uint8_t b) -{ - i2c_write_bit(b & 128); - i2c_write_bit(b & 64); - i2c_write_bit(b & 32); - i2c_write_bit(b & 16); - i2c_write_bit(b & 8); - i2c_write_bit(b & 4); - i2c_write_bit(b & 2); - i2c_write_bit(b & 1); - - /* read ack from client */ - /* 0: ack was given by client */ - /* 1: nothing happend during ack cycle */ - return i2c_read_bit(); -} - - - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_opt = options; - u8g_i2c_clear_error(); - - if ( u8g_i2c_opt & U8G_I2C_OPT_FAST ) - { - i2c_delay = i2c_400KHz_delay; - } - else - { - i2c_delay = i2c_100KHz_delay; - } - - - if ( u8g_i2c_opt & U8G_I2C_OPT_DEV_1 ) - { - i2c_scl_pin = PIN_WIRE1_SCL; - i2c_sda_pin = PIN_WIRE1_SDA; - - //REG_PIOA_PDR = PIO_PB12A_TWD1 | PIO_PB13A_TWCK1; - } - else - { - - i2c_scl_pin = PIN_WIRE_SCL; - i2c_sda_pin = PIN_WIRE_SDA; - - //REG_PIOA_PDR = PIO_PA17A_TWD0 | PIO_PA18A_TWCK0; - } - - i2c_init(); - -} - -/* sla includes also the r/w bit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - i2c_start(); - i2c_write_byte(sla); - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return i2c_write_byte(data); -} - -void u8g_i2c_stop(void) -{ - i2c_stop(); -} - - -#elif defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -#define I2C_SLA 0x3c - -static int fd=-1; -static uint8_t i2cMode = 0; - -void u8g_i2c_init(uint8_t options) { - u8g_i2c_clear_error(); - u8g_i2c_opt = options; - - if (wiringPiSetup() == -1) { - printf("wiringPi-Error\n"); - exit(1); - } - - fd = wiringPiI2CSetup(I2C_SLA); - if (fd < 0) { - printf ("Unable to open I2C device 0: %s\n", strerror (errno)) ; - exit (1) ; - } - //u8g_SetPIOutput(u8g, U8G_PI_RESET); - //u8g_SetPIOutput(u8g, U8G_PI_A0); -} -uint8_t u8g_i2c_start(uint8_t sla) { - u8g_i2c_send_mode(0); - - return 1; -} - -void u8g_i2c_stop(void) { -} - -uint8_t u8g_i2c_send_mode(uint8_t mode) { - i2cMode = mode; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) { - wiringPiI2CWriteReg8(fd, i2cMode, data); - - return 1; -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -#else - -/* empty interface */ - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -uint8_t u8g_i2c_start(uint8_t sla) -{ - return 1; -} -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return 1; -} - -void u8g_i2c_stop(void) -{ -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c deleted file mode 100644 index 38a88a0fab..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_io.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - - u8g_com_io.c - - abstraction layer for low level i/o - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) Convert to internal number: AVR: port*8+bitpos, ARM: port*16+bitpos - void u8g_SetPinOutput(uint8_t internal_pin_number) - void u8g_SetPinInput(uint8_t internal_pin_number) - void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) - uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -#include -#include - -typedef volatile uint8_t * IO_PTR; - -/* create internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -const IO_PTR u8g_avr_ddr_P[] PROGMEM = { -#ifdef DDRA - &DDRA, -#else - 0, -#endif - &DDRB, -#ifdef DDRC - &DDRC, -#ifdef DDRD - &DDRD, -#ifdef DDRE - &DDRE, -#ifdef DDRF - &DDRF, -#ifdef DDRG - &DDRG, -#ifdef DDRH - &DDRH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - - -const IO_PTR u8g_avr_port_P[] PROGMEM = { -#ifdef PORTA - &PORTA, -#else - 0, -#endif - &PORTB, -#ifdef PORTC - &PORTC, -#ifdef PORTD - &PORTD, -#ifdef PORTE - &PORTE, -#ifdef PORTF - &PORTF, -#ifdef PORTG - &PORTG, -#ifdef PORTH - &PORTH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -const IO_PTR u8g_avr_pin_P[] PROGMEM = { -#ifdef PINA - &PINA, -#else - 0, -#endif - &PINB, -#ifdef PINC - &PINC, -#ifdef PIND - &PIND, -#ifdef PINE - &PINE, -#ifdef PINF - &PINF, -#ifdef PING - &PING, -#ifdef PINH - &PINH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -static volatile uint8_t *u8g_get_avr_io_ptr(const IO_PTR *base, uint8_t offset) -{ - volatile uint8_t * tmp; - base += offset; - memcpy_P(&tmp, base, sizeof(volatile uint8_t * PROGMEM)); - return tmp; -} - -/* set direction to output of the specified pin (internal pin number) */ -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) |= _BV(internal_pin_number&7); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) &= ~_BV(internal_pin_number&7); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_port_P, internal_pin_number>>3); - - if ( level == 0 ) - { - U8G_ATOMIC_AND(tmp, ~_BV(internal_pin_number&7)); - // *tmp &= ~_BV(internal_pin_number&7); - } - else - { - U8G_ATOMIC_OR(tmp, _BV(internal_pin_number&7)); - //*tmp |= _BV(internal_pin_number&7); - } - -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_pin_P, internal_pin_number>>3); - if ( ((*tmp) & _BV(internal_pin_number&7)) != 0 ) - return 1; - return 0; -} - -#elif defined(U8G_RASPBERRY_PI) - -#include -//#include "/usr/local/include/wiringPi.h" - -void u8g_SetPinOutput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, OUTPUT); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, INPUT); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) { - digitalWrite(internal_pin_number, level); -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) { - return digitalRead(internal_pin_number); -} - - -#else - -/* convert "port" and "bitpos" to internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - return 0; -} - -#endif - - -#if defined(U8G_WITH_PINLIST) - -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinOutput(pin); -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinLevel(pin, level); -} - -#else /* defined(U8G_WITH_PINLIST) */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ -} - -#endif /* defined(U8G_WITH_PINLIST) */ diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c deleted file mode 100644 index 1d9deebff6..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_null.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - - u8g_com_null.c - - communication null device - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - break; - case U8G_COM_MSG_STOP: - break; - - - case U8G_COM_MSG_CHIP_SELECT: - /* arg_val contains the chip number, which should be enabled */ - break; - - - case U8G_COM_MSG_WRITE_BYTE: - break; - case U8G_COM_MSG_WRITE_SEQ: - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c deleted file mode 100644 index 611391f54b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - - u8g_com_raspberrypi_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - - -*/ - -#include "u8g.h" - - - -#if defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - // check wiringPi setup - if (wiringPiSetup() == -1) - { - printf("wiringPi-Error\n"); - exit(1); - } - - if (wiringPiSPISetup (0, 100000) < 0) - { - printf ("Unable to open SPI device 0: %s\n", strerror (errno)) ; - exit (1) ; - } - - u8g_SetPIOutput(u8g, U8G_PI_RESET); - u8g_SetPIOutput(u8g, U8G_PI_A0); - - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - /* Done by the SPI hardware */ - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - wiringPiSPIDataRW (0, &arg_val, 1) ; - break; - - case U8G_COM_MSG_WRITE_SEQ: - wiringPiSPIDataRW (0, arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - wiringPiSPIDataRW (0, arg_ptr, arg_val); - break; - } - return 1; -} - -#else - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c deleted file mode 100644 index 88d85ded21..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -#define I2C_SLA 0x3c -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - -#if defined(U8G_WITH_PINLIST) - -uint8_t u8g_com_raspberrypi_ssd_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_send_mode(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_send_mode(I2C_DATA_MODE) == 0 ) - return 0; - } - - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - u8g_SetPIOutput(u8g, U8G_PI_A0); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = (uint8_t *)arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = (uint8_t *)arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_raspberrypi_ssd_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c deleted file mode 100644 index 62075ba6ef..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_cursor.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - - u8g_cursor.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font) -{ - u8g->cursor_font = cursor_font; -} - -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding) -{ - u8g->cursor_encoding = encoding; -} - -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg) -{ - u8g->cursor_bg_color = bg; - u8g->cursor_fg_color = fg; -} - -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y) -{ - u8g->cursor_x = cursor_x; - u8g->cursor_y = cursor_y; -} - -void u8g_EnableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = u8g_DrawCursor; -} - -void u8g_DisableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = (u8g_draw_cursor_fn)0; -} - -void u8g_DrawCursor(u8g_t *u8g) -{ - const u8g_pgm_uint8_t *font; - uint8_t color; - uint8_t encoding = u8g->cursor_encoding; - - /* get current values */ - color = u8g_GetColorIndex(u8g); - font = u8g->font; - - /* draw cursor */ - u8g->font = u8g->cursor_font; - encoding++; - u8g_SetColorIndex(u8g, u8g->cursor_bg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - encoding--; - u8g_SetColorIndex(u8g, u8g->cursor_fg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - /* u8g_DrawGlyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - - /* restore previous values */ - u8g->font = font; - u8g_SetColorIndex(u8g, color); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c deleted file mode 100644 index a1329da1dd..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_delay.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - - u8g_delay.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - void u8g_Delay(uint16_t val) Delay by "val" milliseconds - void u8g_MicroDelay(void) Delay be one microsecond - void u8g_10MicroDelay(void) Delay by 10 microseconds - - -*/ - - -#include "u8g.h" - -/*==== Part 1: Derive suitable delay procedure ====*/ - -#if defined(ARDUINO) - -# if ARDUINO < 100 -# include -# else -# include -# endif - -# if defined(__AVR__) -# define USE_AVR_DELAY -# elif defined(__PIC32MX) -# define USE_PIC32_DELAY -# elif defined(__arm__) /* Arduino Due & Teensy */ -# define USE_ARDUINO_DELAY -# else -# define USE_ARDUINO_DELAY -# endif -#elif defined(U8G_RASPBERRY_PI) -# define USE_RASPBERRYPI_DELAY -#elif defined(__AVR__) -# define USE_AVR_DELAY -#elif defined(__18CXX) -# define USE_PIC18_DELAY -#elif defined(__arm__) -/* do not define anything, all procedures are expected to be defined outside u8glib */ - -/* -void u8g_Delay(uint16_t val); -void u8g_MicroDelay(void); -void u8g_10MicroDelay(void); -*/ - -#else -# define USE_DUMMY_DELAY -#endif - - - -/*==== Part 2: Definition of the delay procedures ====*/ - -/*== Raspberry Pi Delay ==*/ -#if defined (USE_RASPBERRYPI_DELAY) -#include -//#include "/usr/local/include/wiringPi.h" -void u8g_Delay(uint16_t val) { - //delay(val); - //usleep((uint32_t)val*(uint32_t)1000); - delayMicroseconds((uint32_t)val*(uint32_t)1000); -} -void u8g_MicroDelay(void) -{ - usleep(1); -} -void u8g_10MicroDelay(void) -{ - usleep(10); -} -#endif - - -/*== AVR Delay ==*/ - -#if defined(USE_AVR_DELAY) -#include -#include -#include - -/* - Delay by the provided number of milliseconds. - Thus, a 16 bit value will allow a delay of 0..65 seconds - Makes use of the _delay_loop_2 - - _delay_loop_2 will do a delay of n * 4 prozessor cycles. - with f = F_CPU cycles per second, - n = f / (1000 * 4 ) - with f = 16000000 the result is 4000 - with f = 1000000 the result is 250 - - the millisec loop, gcc requires the following overhead: - - movev 1 - - subwi 2x2 - - bne i 2 - ==> 7 cycles - ==> must be devided by 4, rounded up 7/4 = 2 -*/ -void u8g_Delay(uint16_t val) -{ - /* old version did a call to the arduino lib: delay(val); */ - while( val != 0 ) - { - _delay_loop_2( (F_CPU / 4000 ) -2); - val--; - } -} - -/* delay by one micro second */ -void u8g_MicroDelay(void) -{ -#if (F_CPU / 4000000 ) > 0 - _delay_loop_2( (F_CPU / 4000000 ) ); -#endif -} - -/* delay by 10 micro seconds */ -void u8g_10MicroDelay(void) -{ -#if (F_CPU / 400000 ) > 0 - _delay_loop_2( (F_CPU / 400000 ) ); -#endif -} - -#endif - - -/*== Delay for PIC18 (not tested) ==*/ - -#if defined(USE_PIC18_DELAY) -#include -#define GetSystemClock() (64000000ul) // Hz -#define GetInstructionClock() (GetSystemClock()/4) - -void u8g_Delay(uint16_t val) -{/* - unsigned int _iTemp = (val); - while(_iTemp--) - Delay1KTCYx((GetInstructionClock()+999999)/1000000); - */ -} -void u8g_MicroDelay(void) -{ - /* not implemented */ -} -void u8g_10MicroDelay(void) -{ - /* not implemented */ -} -#endif - - -/*== Arduino Delay ==*/ -#if defined(USE_ARDUINO_DELAY) -void u8g_Delay(uint16_t val) -{ -#if defined(__arm__) - delayMicroseconds((uint32_t)val*(uint32_t)1000); -#else - delay(val); -#endif -} -void u8g_MicroDelay(void) -{ - delayMicroseconds(1); -} -void u8g_10MicroDelay(void) -{ - delayMicroseconds(10); -} -#endif - -#if defined(USE_PIC32_DELAY) -/* - Assume chipkit here with F_CPU correctly defined - The problem was, that u8g_Delay() is called within the constructor. - It seems that the chipkit is not fully setup at this time, so a - call to delay() will not work. So here is my own implementation. - -*/ -#define CPU_COUNTS_PER_SECOND (F_CPU/2UL) -#define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL) -#include "plib.h" -void u8g_Delay(uint16_t val) -{ - uint32_t d; - uint32_t s; - d = val; - d *= TICKS_PER_MILLISECOND; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/1000; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_10MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/100; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -#endif - -/*== Any other systems: Dummy Delay ==*/ -#if defined(USE_DUMMY_DELAY) -void u8g_Delay(uint16_t val) -{ - /* do not know how to delay... */ -} -void u8g_MicroDelay(void) -{ -} -void u8g_10MicroDelay(void) -{ -} -#endif diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c deleted file mode 100644 index 8968a26da5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - - u8g_dev_a2_micro_printer_ds.c - - Use DC2 bitmap command of the A2 Micro panel termal printer - double stroke - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define LINE_DELAY 40 - - -uint8_t u8g_dev_a2_micro_printer_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height ); - u8g_WriteByte(u8g, dev, pb->width/8 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, *ptr); - ptr++; - } - u8g_Delay(LINE_DELAY); - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_expand4(uint8_t val) -{ - uint8_t a,b,c,d; - a = val&1; - b = (val&2)<<1; - c = (val&4)<<2; - d = (val&8)<<3; - a |=b; - a |=c; - a |=d; - a |= a<<1; - return a; -} - -uint8_t u8g_dev_a2_micro_printer_double_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - { - //u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 42 ); /* * */ - //u8g_WriteByte(u8g, dev, pb->p.total_height*2 ); - //u8g_WriteByte(u8g, dev, pb->width/8*2 ); - } - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - uint8_t *p2; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 35 ); /* # */ - //u8g_WriteByte(u8g, dev, 0x0ff ); /* max */ - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height*2 ); - u8g_WriteByte(u8g, dev, pb->width/8*2 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(LINE_DELAY); - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(LINE_DELAY); - ptr += pb->width/8; - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -#if defined(U8G_16BIT) -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 384, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 360, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 720, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#else -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 240, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#endif - -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x120_ds, 192, 120, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c deleted file mode 100644 index d86d08e050..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - - u8g_dev_flipdisc.c - - 1-Bit (BW) Driver for flip disc matrix - 2x 7 pixel height - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -#define WIDTH 28 -#define HEIGHT 14 -#define PAGE_HEIGHT 14 - -/* - Write data to the flip disc matrix. - This procedure must be implemented by the user. - Arguments: - id: Id for the matrix. Currently always 0. - page: A page has a height of 14 pixel. For a matrix with HEIGHT == 14 this will be always 0 - width: The width of the flip disc matrix. Always equal to WIDTH - row1: first data line (7 pixel per byte) - row2: first data line (7 pixel per byte) -*/ -void writeFlipDiscMatrix(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - - - -void (*u8g_write_flip_disc_matrix)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)) -{ - u8g_write_flip_disc_matrix = cb; -} - -uint8_t u8g_dev_flipdisc_2x7_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - - (*u8g_write_flip_disc_matrix)(0, pb->p.page, WIDTH, pb->buf, (uint8_t *)(pb->buf)+WIDTH); - } - break; - case U8G_DEV_MSG_CONTRAST: - return 1; - } - return u8g_dev_pb14v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_flipdisc_2x7_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_flipdisc_2x7_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_flipdisc_2x7_bw_buf}; -u8g_dev_t u8g_dev_flipdisc_2x7 = { u8g_dev_flipdisc_2x7_bw_fn, &u8g_dev_flipdisc_2x7_bw_pb, u8g_com_null_fn }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c deleted file mode 100644 index cb2342ac4a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_gprof.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - - u8g_dev_gprof.c - - Device for performance measurement with gprof. - Does not write any data, but uses a buffer. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -*/ - -#include "u8g.h" - - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_pb_dev_gprof_buf[WIDTH]; -u8g_pb_t u8g_pb_dev_gprof = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_pb_dev_gprof_buf }; - -u8g_dev_t u8g_dev_gprof = { u8g_dev_gprof_fn, &u8g_pb_dev_gprof, NULL }; - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - /* - { - uint8_t i, j; - uint8_t page_height; - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - printf("%02d ", j); - for( i = 0; i < WIDTH; i++ ) - { - if ( (u8g_pb_dev_stdout_buf[i] & (1<p)) == 0 ) - { - //printf("\n"); - return 0; - } - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x2, y2; - - y2 = bbx->y; - y2 += bbx->h; - y2--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, y2) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - x2 = bbx->x; - x2 += bbx->w; - x2--; - - if ( u8g_pb_IsXIntersection(pb, bbx->x, x2) == 0 ) - return 0; - } - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ht1632.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ht1632.c deleted file mode 100644 index 4977793f1e..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ht1632.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - - u8g_dev_ht1632.c - - 1-Bit (BW) Driver for HT1632 controller - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - U8G_PIN_NONE can be used as argument - - uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { - ... - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - -mapping - -#define DATA_PIN --> U8G_PI_MOSI -#define WR_PIN --> U8G_PI_SCK -#define CS_PIN --> U8G_PI_CS - U8G_PI_A0 --> not used - U8G_PI_RESET --> not used - -Usage: - - u8g_InitSPI(&u8g, &u8g_dev_ht1632_24x16, WR_PIN, DATA_IN, CS_PIN, U8G_PIN_NONE, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 24 -#define HEIGHT 16 -#define PAGE_HEIGHT 16 - -/* http://forum.arduino.cc/index.php?topic=168537.0 */ - -#define HT1632_CMD_SYSDIS 0x00 // CMD= 0000-0000-x Turn off oscil -#define HT1632_CMD_SYSON 0x01 // CMD= 0000-0001-x Enable system oscil -#define HT1632_CMD_LEDOFF 0x02 // CMD= 0000-0010-x LED duty cycle gen off -#define HT1632_CMD_LEDON 0x03 // CMD= 0000-0011-x LEDs ON -#define HT1632_CMD_BLOFF 0x08 // CMD= 0000-1000-x Blink OFF -#define HT1632_CMD_BLON 0x09 // CMD= 0000-1001-x Blink On -#define HT1632_CMD_SLVMD 0x10 // CMD= 0001-00xx-x Slave Mode -#define HT1632_CMD_MSTMD 0x14 // CMD= 0001-01xx-x Master Mode -#define HT1632_CMD_RCCLK 0x18 // CMD= 0001-10xx-x Use on-chip clock -#define HT1632_CMD_EXTCLK 0x1C // CMD= 0001-11xx-x Use external clock -#define HT1632_CMD_COMS00 0x20 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS01 0x24 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS10 0x28 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS11 0x2C // P-MOS OUTPUT AND 16COMMON OPTION -#define HT1632_CMD_PWM 0xA0 // CMD= 101x-PPPP-x PWM duty cycle - -#define HT1632_ID_CMD 4 /* ID = 100 - Commands */ -#define HT1632_ID_RD 6 /* ID = 110 - Read RAM */ -#define HT1632_ID_WR 5 /* ID = 101 - Write RAM */ - -#define HT1632_ID_LEN 3 // IDs are 3 bits -#define HT1632_CMD_LEN 8 // CMDs are 8 bits -#define HT1632_DATA_LEN 8 // Data are 4*2 bits -#define HT1632_ADDR_LEN 7 // Address are 7 bits - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -//#define WR_PIN 3 -//#define DATA_PIN 2 -//#define CS_PIN 4 - -void ht1632_write_data_MSB(u8g_t *u8g, uint8_t cnt, uint8_t data, uint8_t extra) -{ - int8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - - for(i = cnt - 1; i >= 0; i--) - { - if ((data >> i) & 1) - { - digitalWrite(data_pin, HIGH); - } - else - { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } - - // Send an extra bit - if (extra) - { - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - -void ht1632_write_data(u8g_t *u8g, uint8_t cnt, uint8_t data) -{ - uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - for (i = 0; i < cnt; i++) - { - - if ((data >> i) & 1) { - digitalWrite(data_pin, HIGH); - } - else { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - - -void ht1632_init(u8g_t *u8g) -{ - //uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - pinMode(data_pin, OUTPUT); - pinMode(wr_pin, OUTPUT); - pinMode(cs_pin, OUTPUT); - - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, HIGH); - digitalWrite(cs_pin, HIGH); - - digitalWrite(cs_pin, LOW); - /* init display once after startup */ - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); // IDs are 3 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSDIS, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_COMS11, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_LEDON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_BLOFF, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM+15, true); // 8 bits - digitalWrite(cs_pin, HIGH); - - /* removed following (debug) code */ - /* - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, 0, false); - for(i = 0; i<48; ++i) - { - ht1632_write_data(u8g, 8, 0xFF); - } - digitalWrite(cs_pin, HIGH); - */ -} - -/* - page: 0=data contain lines 0..16, 1=data contain lines 16..32 (a 24x16 display will only have page 0) - cnt: width of the display - data: pointer to a buffer with 2*cnt bytes. -*/ -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ - uint8_t addr; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - /* send data to the ht1632 */ - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, page*2*cnt, false); - - // Operating in progressive addressing mode - for (addr = 0; addr < cnt; addr++) - { - ht1632_write_data(u8g, 8, data[addr]); - ht1632_write_data(u8g, 8, data[addr+cnt]); - } - digitalWrite(cs_pin, HIGH); -} - -/* value is between 0...15 */ -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM + value, false); - digitalWrite(cs_pin, HIGH); -} - -#else -void ht1632_init(u8g_t *u8g) -{ -} - -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ -} - -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ -} - -#endif /* ARDUINO */ - - -uint8_t u8g_dev_ht1632_24x16_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - ht1632_init(u8g); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - ht1632_transfer_data(u8g, pb->p.page, WIDTH, pb->buf); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* values passed to SetContrast() are between 0 and 255, scale down to 0...15 */ - ht1632_set_contrast(u8g, (*(uint8_t *)arg) >> 4); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ht1632_24x16_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ht1632_24x16_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ht1632_24x16_buf}; -u8g_dev_t u8g_dev_ht1632_24x16 = { u8g_dev_ht1632_24x16_fn, &u8g_dev_ht1632_24x16_pb, u8g_com_null_fn }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c deleted file mode 100644 index 35db466b27..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - - u8g_dev_ili9325d_320x240.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Color format - Red: 5 Bit - Green: 6 Bit - Blue: 5 Bit - - -*/ - -#include "u8g.h" - -#define WIDTH 240 - -#if defined(U8G_16BIT) -#define HEIGHT 320 -#else -/* if the user tries to compile the 8Bit version of the lib, then restrict the height to something which fits to 8Bit */ -#define HEIGHT 240 -#endif -#define PAGE_HEIGHT 4 - - -/* - reference board for this device: - http://iteadstudio.com/store/index.php?main_page=product_info&cPath=57_58&products_id=55 - documentation: - http://iteadstudio.com/Downloadfile/ITDB02_material.rar - datasheet - http://www.newhavendisplay.com/app_notes/ILI9325D.pdf - other libs - http://henningkarlsen.com/electronics/library.php - init sequence - http://code.google.com/p/itdb02/, ITDB02.cpp, iteadstudio.com -*/ - -static const uint8_t u8g_dev_ili9325d_320x240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - //U8G_ESC_ADR(0), 0x000, 0x0E5, /* only used for none D version: set SRAM internal timing */ - //U8G_ESC_ADR(1), 0x078, 0x0f0, - U8G_ESC_ADR(0), 0x000, 0x001, /* Driver Output Control, bits 8 & 10 */ - U8G_ESC_ADR(1), 0x001, 0x000, - U8G_ESC_ADR(0), 0x000, 0x002, /* LCD Driving Wave Control, bit 9: Set line inversion */ - U8G_ESC_ADR(1), 0x002, 0x000, /* ITDB02 none D verion: 0x007, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x003, /* Entry Mode, GRAM write direction and BGR=1 */ - U8G_ESC_ADR(1), 0x010, 0x030, - U8G_ESC_ADR(0), 0x000, 0x004, /* Resize register */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x008, /* Display Control 2: set the back porch and front porch */ - U8G_ESC_ADR(1), 0x002, 0x007, - - U8G_ESC_ADR(0), 0x000, 0x009, /* Display Control 3 */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x00a, /* Display Control 4: FMARK */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00c, /* RGB Display Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00d, /* Frame Maker Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00f, /* RGB Display Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: DC1[2:0], DC0[2:0], VC[2:0] */ - U8G_ESC_ADR(1), 0x000, 0x007, - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VREG1OUT voltage */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, but do not display */ - U8G_ESC_ADR(1), 0x000, 0x001, - - U8G_ESC_DLY(100), /* delay 100 ms */ /* ITDB02 none D verion: 50ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x016, 0x090, /* ITDB02 none D verion: 0x010, 0x090 */ - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x002, 0x027, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VCI: External, VCI*1.80 */ - U8G_ESC_ADR(1), 0x000, 0x00d, /* ITDB02 none D verion: 0x000, 0x01f */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x012, 0x000, /* ITDB02 none D verion: 0x015, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x029, /* Power Control 7 */ - U8G_ESC_ADR(1), 0x000, 0x00a, /* ITDB02 none D verion: 0x000, 0x027 */ - U8G_ESC_ADR(0), 0x000, 0x02b, /* Frame Rate: 83 */ - U8G_ESC_ADR(1), 0x000, 0x00d, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - - /* gamma control */ - U8G_ESC_ADR(0), 0x000, 0x030, - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x031, - U8G_ESC_ADR(1), 0x004, 0x004, - U8G_ESC_ADR(0), 0x000, 0x032, - U8G_ESC_ADR(1), 0x000, 0x003, - U8G_ESC_ADR(0), 0x000, 0x035, - U8G_ESC_ADR(1), 0x004, 0x005, - U8G_ESC_ADR(0), 0x000, 0x036, - U8G_ESC_ADR(1), 0x008, 0x008, - U8G_ESC_ADR(0), 0x000, 0x037, - U8G_ESC_ADR(1), 0x004, 0x007, - U8G_ESC_ADR(0), 0x000, 0x038, - U8G_ESC_ADR(1), 0x003, 0x003, - U8G_ESC_ADR(0), 0x000, 0x039, - U8G_ESC_ADR(1), 0x007, 0x007, - U8G_ESC_ADR(0), 0x000, 0x03c, - U8G_ESC_ADR(1), 0x005, 0x004, - U8G_ESC_ADR(0), 0x000, 0x03d, - U8G_ESC_ADR(1), 0x008, 0x008, - - U8G_ESC_ADR(0), 0x000, 0x050, /* Horizontal GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x051, /* Horizontal GRAM End Address: 239 */ - U8G_ESC_ADR(1), 0x000, 0x0EF, - U8G_ESC_ADR(0), 0x000, 0x052, /* Vertical GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x053, /* Vertical GRAM End Address: 319 */ - U8G_ESC_ADR(1), 0x001, 0x03F, - - U8G_ESC_ADR(0), 0x000, 0x060, /* Driver Output Control 2 */ - U8G_ESC_ADR(1), 0x0a7, 0x000, - U8G_ESC_ADR(0), 0x000, 0x061, /* Base Image Display Control: NDL,VLE, REV */ - U8G_ESC_ADR(1), 0x000, 0x001, - U8G_ESC_ADR(0), 0x000, 0x06a, /* Vertical Scroll Control */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x080, /* Partial Image 1 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x081, /* Partial Image 1 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x082, /* Partial Image 1 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x083, /* Partial Image 2 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x084, /* Partial Image 2 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x085, /* Partial Image 2 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x090, /* Panel Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x092, /* Panel Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, /* 0x006, 0x000 */ - - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, display ON */ - U8G_ESC_ADR(1), 0x001, 0x033, - - U8G_ESC_DLY(10), /* delay 10 ms */ - - /* write test pattern */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x022, /* Write Data to GRAM */ - U8G_ESC_ADR(1), 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_ili9325d_320x240_page_seq[] PROGMEM = { - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_high_byte(uint8_t color) -{ - uint8_t h; - h = color; - h &= 0x0e0; - h |= h>>3; - h &= 0x0f8; - color>>=2; - color &= 7; - h |= color; - return h; -} - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_low_byte(uint8_t color) -{ - uint8_t l; - l = color; - l <<= 3; - color &= 3; - color <<= 1; - l |= color; - return l; -} - - -uint8_t u8g_dev_ili9325d_320x240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - //for(;;) - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_init_seq); - - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - uint16_t y, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < pb->p.page_height; i ++ ) - { - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_page_seq); - u8g_WriteByte(u8g, dev, y >> 8 ); /* display ram (cursor) address high byte */ - u8g_WriteByte(u8g, dev, y & 255 ); /* display ram (cursor) address low byte */ - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0 ); - u8g_WriteByte(u8g, dev, 0x022 ); /* start gram data */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( j = 0; j < pb->width; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_high_byte(*ptr) ); - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_low_byte(*ptr) ); - - ptr++; - } - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_ili9325d_320x240_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_ili9325d_320x240_8h8_pb U8G_NOCOMMON = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_ili9325d_320x240_8h8_buf}; -u8g_dev_t u8g_dev_ili9325d_320x240_8bit U8G_NOCOMMON = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_port_d_wr_fn }; -//u8g_dev_t u8g_dev_ili9325d_320x240_8bit = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_parallel_fn }; - -//U8G_PB_DEV(u8g_dev_ili9325d_320x240_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ili9325d_320x240_fn, U8G_COM_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c deleted file mode 100644 index f30f8a38ce..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - - u8g_dev_ks0108_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - ADDRESS = 0 (Command Mode) - 0x03f Display On - 0x0c0 Start Display at line 0 - 0x040 | y write to y address (y:0..63) - 0x0b8 | x write to page [0..7] - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ks0108_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(0), /* disable all chips */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ks0108_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ks0108_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, 64+(uint8_t *)pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ks0108_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ks0108_128x64_fast, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c deleted file mode 100644 index e05fa03a9a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - - u8g_dev_lc7981_160x80.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 80 -#define PAGE_HEIGHT 8 - - -/* - code ideas: - https://github.com/vsergeev/embedded-drivers/tree/master/avr-lc7981 - data sheets: - http://www.lcd-module.de/eng/pdf/zubehoer/lc7981.pdf - http://www.lcd-module.de/pdf/grafik/w160-6.pdf -*/ - -static const uint8_t u8g_dev_lc7981_160x80_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_160x80_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_160x80_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_160x80_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c deleted file mode 100644 index f0b9c31485..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x128.c - - Hitachi Display SP14N002 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x128%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x128_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c deleted file mode 100644 index 9464b52aec..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x64.c - - Tested with Nan Ya LM_J6_003_ - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c deleted file mode 100644 index fe28f942e8..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_lc7981_320x64.c - - Note: Requires 16 bit mode (Must be enabled in u8g.h) - - Tested with Varitronix MGLS32064-03.pdf - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#ifdef U8G_16BIT -#define WIDTH 320 -#else -#define WIDTH 240 -#endif - -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS32064-03.pdf -*/ - -static const uint8_t u8g_dev_lc7981_320x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_320x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_320x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_320x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_320x64_fn, U8G_COM_FAST_PARALLEL); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c deleted file mode 100644 index 596d95898b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ld7032_60x32.c - - 60x32 OLED display - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* define width as 64, so that it is a multiple of 8 */ -#define WIDTH 64 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ld7032_60x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(1), /* delay 1 ms */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x014, /* Dot Matrix Display Stand-by ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01a, /* Dot Matrix Frame Rate */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* special value for this OLED from manual */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01d, /* Graphics Memory Writing Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (right down, horizontal) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x009, /* Display Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (x,y: min --> max) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x030, /* Display Size X */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Column Start Output */ - 0x03b, /* Column End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x032, /* Display Size Y */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Row Start Output */ - 0x01f, /* Row End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x010, /* Peak Pulse Width Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x016, /* Peak Pulse Delay Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x012, /* Dot Matrix Current Level Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* 0x050 * 1 uA = 80 uA */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x018, /* Pre-Charge Pulse Width */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* 3 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x044, /* Pre-Charge Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* Every Time */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x048, /* Row overlap timing */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* Pre-Charge + Peak Delay + Peak boot Timing */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03f, /* VCC_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x011, /* ??? */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03d, /* VSS selection */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 2.8V */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x008, /* write data */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* use box commands to set start adr */ -static const uint8_t u8g_dev_ld7032_60x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x034, /* box x start */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x035, /* box x end */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x037, /* box y end */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x036, /* box y start */ - U8G_ESC_ADR(1), /* data mode */ - - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ld7032_60x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_data_start); - u8g_WriteByte(u8g, dev, pb->p.page_y0); /* y start */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x008); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ld7032_60x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_USART_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c deleted file mode 100644 index c41380e8c5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_null.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - - u8g_dev_null.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_null(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: /* most often used command */ - break; - case U8G_DEV_MSG_SET_PIXEL: - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - break; - case U8G_DEV_MSG_PAGE_NEXT: - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return 1; -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c deleted file mode 100644 index dbebd7cd02..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_dev_pcd8544_84x48.c - - Display: Nokia 84x48 - - Status: Tested with PCF8812 Display - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcd8544_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_pcd8544_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_pcd8544_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x008, /* display blank */ - 0x024, /* power down (PD=1), horizontal increment (V=0), enter normal command set (H=0) */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_pcd8544_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_pcd8544_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcd8544_84x48_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c deleted file mode 100644 index 3801284468..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - - u8g_dev_pcf8812_96x65.c - - Display: Nokia 96x65 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - om6206 comaptible to pcf8812 ? - - Status: Tested - - - Display Controller Seen in - LPH7366 (9 pins, 84x48) PCD8544 Nokia 5110 / 5120 / 5130 / 5160 / 6110 / 6150 - LPH7677 (8 pins, 84x48) PCD8544 Nokia 3210 - LPH7779 (8 pins, 84x48) PCD8544 Nokia 3310 / 3315 / 3330 / 3110, also 3410? - ??? PCD8544 Nokia 5110 / 6110 - LPH7690 ? (96x65) PCF8455/OM6202 Nokia 3410 - LPH7690 ? (96x65?) SED1565/S1D15605 Nokia 7110 / 3510? - LPH7690 ??? Nokia 6210 - - - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 65 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcf8812_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x080 | 0x040, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_pcf8812_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcf8812_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - - /* mirrored output, not tested*/ - /* - { - uint8_t i = pb->width; - while( i > 0 ) - { - i--; - u8g_WriteByte(u8g, dev, ((unsigned char *)pb->buf)[i] ); - } - } - */ - - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_pcf8812_96x65_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcf8812_96x65_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c deleted file mode 100644 index a8552cb40e..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - - u8g_dev_sbn1661_122x32.c - - WG12232 display with 2xSBN1661 / SED1520 controller (122x32 display) - At the moment only available in the Arduino Environment - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 122 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_sbn1661_122x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - - U8G_ESC_CS(0), /* disable chip */ - - - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_sbn1661_122x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sbn1661_122x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, pb->buf); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, WIDTH/2+(uint8_t *)pb->buf); - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_sbn1661_122x32 , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sbn1661_122x32_fn, u8g_com_arduino_no_en_parallel_fn); diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c deleted file mode 100644 index 3052d6bcaf..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - - u8g_dev_ssd1306_128x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - 23 Feb 2013: Fixed, Issue 147 - -*/ - - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (TESTED - WORKING 23.02.13), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x01f, /* Feb 23, 2013: 128x32 OLED: 0x01f, 128x32 OLED 0x03f */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 128x32 OLED: 0x002, 128x32 OLED 0x012 */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* select one init sequence here */ -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_univision_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit1_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit2_init_seq -#define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr. to 0 */ - 0x000, /* set lower 4 bit of the col adr. to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; -} - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_128x32_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_128x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_ssd1306_128x32_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x32_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x32_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SSD_I2C }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c deleted file mode 100644 index bd55e90e82..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c +++ /dev/null @@ -1,412 +0,0 @@ -/* - - u8g_dev_ssd1306_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* 2012-05-27: page addressing mode */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_univision_init_seq -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit1_init_seq -// 26. Apr 2014: in this thead: http://forum.arduino.cc/index.php?topic=234930.msg1696754;topicseen#msg1696754 -// it is mentiond, that adafruit2_init_seq works better --> this will be used by the ssd1306_adafruit device -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit2_init_seq - -#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -/* the sh1106 is compatible to the ssd1306, but is 132x64. display seems to be centered */ -static const uint8_t u8g_dev_sh1106_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x002, /* set lower 4 bit of the col adr to 2 (centered display with sh1106) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_adafruit2_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_adafruit_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1306_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - - - - -U8G_PB_DEV(u8g_dev_ssd1306_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SSD_I2C); - -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SSD_I2C); - - -uint8_t u8g_dev_ssd1306_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x64_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SSD_I2C }; - - -U8G_PB_DEV(u8g_dev_sh1106_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_sh1106_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_sh1106_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_sh1106_128x64_2x_buf}; -u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c deleted file mode 100644 index 4a6411e607..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - - u8g_dev_ssd1309_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* ssd1309 ini sequence*/ -static const uint8_t u8g_dev_ssd1309_128x64_init_seq[] PROGMEM={ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0xfd,0x12, /*Command Lock */ - 0xae, /*Set Display Off */ - 0xd5,0xa0, /*set Display Clock Divide Ratio/Oscillator Frequency */ - 0xa8,0x3f, /*Set Multiplex Ratio */ - 0x3d,0x00, /*Set Display Offset*/ - 0x40, /*Set Display Start Line*/ - 0xa1, /*Set Segment Re-Map*/ - 0xc8, /*Set COM Output Scan Direction*/ - 0xda,0x12, /*Set COM Pins Hardware Configuration*/ - 0x81,0xdf, /*Set Current Control */ - 0xd9,0x82, /*Set Pre-Charge Period */ - 0xdb,0x34, /*Set VCOMH Deselect Level */ - 0xa4, /*Set Entire Display On/Off */ - 0xa6, /*Set Normal/Inverse Display*/ - U8G_ESC_VCC(1), /*Power up VCC & Stabilized */ - U8G_ESC_DLY(50), - 0xaf, /*Set Display On */ - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ - #define u8g_dev_ssd1309_128x64_init_seq u8g_dev_ssd1309_128x64_init_seq - - - static const uint8_t u8g_dev_ssd1309_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1309_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1309_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SSD_I2C); - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c deleted file mode 100644 index 4db96270d2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_bw.c - - 1-Bit (BW) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_1bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ssd1322_nhd31oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x0c1); /* 21 May 2013, fixed contrast command */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_FAST_PARALLEL); - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c deleted file mode 100644 index 61f0b1922f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_gr.c - - 2-Bit (4L) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -//#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_2bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1322_nhd31oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; /* 23 Oct 2013, changed to 2 */ - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_parallel , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_FAST_PARALLEL); - - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_gr_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c deleted file mode 100644 index d8895391e9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_1bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_1bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -#ifdef OLD -static void _OLD_u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - cnt = 8; - do - { - d = 0; - if ( left & 1 ) - d |= 0x0f0; - if ( right & 1 ) - d |= 0x00f; - u8g_WriteByte(u8g, dev, d); - left >>= 1; - right >>= 1; - cnt--; - }while ( cnt > 0 ); -} -#endif - -static void u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - static uint8_t buf[8]; - cnt = 8; - do - { - d = 0; - if ( left & 128 ) - d |= 0x0f0; - if ( right & 128 ) - d |= 0x00f; - cnt--; - buf[cnt] = d; - left <<= 1; - right <<= 1; - }while ( cnt > 0 ); - u8g_WriteSequence(u8g, dev, 8, buf); -} - -static void u8g_dev_ssd1325_1bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_1bit_write_16_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -/* disabled, see bw_new.c */ -/* -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); -*/ - -/* -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; -*/ - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c deleted file mode 100644 index 7d26b2fee3..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Horizontal architecture, completly rewritten - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_nhd_27_12864_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_prepare_row_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_prepare_row_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -static uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - //case U8G_DEV_MSG_IS_BBX_INTERSECTION: - // return u8g_pb_IsIntersection((u8g_pb_t *)(dev->dev_mem), (u8g_dev_arg_bbx_t *)arg); - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c deleted file mode 100644 index 6ab48135f7..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1325_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - cnt = 4; - do - { - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - u8g_WriteByte(u8g, dev, d); - left >>= 2; - right >>= 2; - cnt--; - }while ( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -//uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -//u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; - - -#endif /* OBSOLETE_CODE */ diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c deleted file mode 100644 index 9ac51f2ff0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Rewritten with new architecture - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1), old values: 0x0a0 0x0a6 */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_gr_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c deleted file mode 100644 index 3a11e29425..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - - u8g_dev_ssd1327_96x96_gr.c - - 2-Bit (graylevel) Driver for SSD1327 Controller (OLED Display) - Tested with Seedstudio 96x96 Oled (LY120) - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 96 -#define XOFFSET 8 - -/* - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 -*/ -static const uint8_t u8g_dev_ssd1327_2bit_96x96_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0fd, 0x012, /* unlock display, usually not required because the display is unlocked after reset */ - 0x0ae, /* display off, sleep mode */ - 0x0a8, 0x05f, /* multiplex ratio: 0x05f * 1/64 duty */ - 0x0a1, 0x000, /* display start line */ - 0x0a2, 0x060, /* display offset, shift mapping ram counter */ - //0x0a2, 0x04c, /* NHD: display offset, shift mapping ram counter */ - 0x0a0, 0x046, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - //0x0a0, 0x056, /* NHD: remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x0ab, 0x001, /* Enable internal VDD regulator (RESET) */ - 0x081, 0x053, /* contrast, brightness, 0..128, Newhaven: 0x040, LY120 0x053, 0x070 seems also ok */ - 0x0b1, 0x051, /* phase length */ - 0x0b3, 0x001, /* set display clock divide ratio/oscillator frequency */ - 0x0b9, /* use linear lookup table */ -#if 0 - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 -#endif - 0x0bc, 0x008, /* pre-charge voltage level */ - 0x0be, 0x007, /* VCOMH voltage */ - 0x0b6, 0x001, /* second precharge */ - 0x0d5, 0x062, /* enable second precharge, internal vsl (bit0 = 0) */ - -#if 0 - // the following commands are not used by the SeeedGrayOLED sequence */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ -#endif - - 0x0a5, /* all pixel on */ - //0x02e, /* no scroll (according to SeeedGrayOLED sequence) */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - - 0x015, /* column address... */ - 0x008, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - - 0x075, /* row address... */ - 0x008, - 0x05f, - - U8G_ESC_ADR(1), /* data mode */ - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1327_2bit_96x96_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - XOFFSET, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1327_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1327_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1327_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - static uint8_t buf[4]; - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = 0; - cnt = 0; - do - { - if ( left == 0 && right == 0 ) - break; - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - buf[cnt] = d; - left >>= 2; - right >>= 2; - cnt++; - }while ( cnt < 4 ); - u8g_WriteSequence(u8g, dev, 4, buf); -} - -static void u8g_dev_ssd1327_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1327_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1327_96x96_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1327_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1327_96x96_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_i2c , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SSD_I2C); - -#define DWIDTH (2*WIDTH) -uint8_t u8g_dev_ssd1327_96x96_2x_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1327_96x96_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1327_96x96_2x_buf}; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c deleted file mode 100644 index 5c82b9b30a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c +++ /dev/null @@ -1,787 +0,0 @@ -/* - - u8g_dev_ssd1351_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, jamjardavies@gmail.com - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - History: - Initial version 20 May 2013 jamjardavies@gmail.com - indexed device 22 May 2013 olikraus@gmail.com - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ssd1351_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x00, /* Set GPIO */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - - -/* set gpio to high */ -static const uint8_t u8g_dev_ssd1351_128x128gh_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x03, /* Set GPIO to High Level */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -#define u8g_dev_ssd1351_128x128_init_seq u8g_dev_ssd1351_128x128_init_seq - -static const uint8_t u8g_dev_ssd1351_128x128_column_seq[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0x15, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x75, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x5c, - U8G_ESC_ADR(1), - U8G_ESC_CS(0), - U8G_ESC_END -}; - -#define RGB332_STREAM_BYTES 8 -static uint8_t u8g_ssd1351_stream_bytes[RGB332_STREAM_BYTES*3]; - -void u8g_ssd1351_to_stream(uint8_t *ptr) -{ - uint8_t cnt = RGB332_STREAM_BYTES; - uint8_t val; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - val = *ptr++; - *dest++ = ((val & 0xe0) >> 2); - *dest++ = ((val & 0x1c) << 1); - *dest++ = ((val & 0x03) << 4); - } -} - - -#ifdef OBSOLETE -// Convert the internal RGB 332 to R -static uint8_t u8g_ssd1351_get_r(uint8_t colour) -{ - //return ((colour & 0xe0) >> 5) * 9; - //return ((colour & 0xe0) >> 5) * 8; - return ((colour & 0xe0) >> 2) ; -} - -// Convert the internal RGB 332 to G -static uint8_t u8g_ssd1351_get_g(uint8_t colour) -{ - //return ((colour & 0x1c) >> 2) * 9; - //return ((colour & 0x1c) >> 2) * 8; - return ((colour & 0x1c) << 1); -} - -// Convert the internal RGB 332 to B -static uint8_t u8g_ssd1351_get_b(uint8_t colour) -{ - //return (colour & 0x03) * 21; - return (colour & 0x03) * 16; -} -#endif - - -uint8_t u8g_dev_ssd1351_128x128_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1351_128x128_r[256]; -static uint8_t u8g_dev_ssd1351_128x128_g[256]; -static uint8_t u8g_dev_ssd1351_128x128_b[256]; - -uint8_t u8g_dev_ssd1351_128x128_idx_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_SET_COLOR_ENTRY: - u8g_dev_ssd1351_128x128_r[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->r; - u8g_dev_ssd1351_128x128_g[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->g; - u8g_dev_ssd1351_128x128_b[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->b; - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - int x; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - for (x = 0; x < pb->width; x++) - { - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_r[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_g[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_b[(*ptr)>>2]); - - ptr++; - } - - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_INDEX; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -void u8g_ssd1351_hicolor_to_stream(uint8_t *ptr) -{ - register uint8_t cnt = RGB332_STREAM_BYTES; - register uint8_t low, high, r, g, b; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - low = *ptr++; - high = *ptr++; - - r = high & ~7; - r >>= 2; - b = low & 31; - b <<= 1; - g = high & 7; - g <<= 3; - g |= (low>>5)&7; - - *dest++ = r; - *dest++ = g; - *dest++ = b; - } -} - - -uint8_t u8g_dev_ssd1351_128x128_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1351_128x128_byte_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_byte_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - - -/* only half of the height, because two bytes are needed for one pixel */ -u8g_pb_t u8g_dev_ssd1351_128x128_hicolor_byte_pb = { {PAGE_HEIGHT/2, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -uint8_t u8g_dev_ssd1351_128x128_4x_byte_buf[WIDTH*PAGE_HEIGHT*4] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_332_byte_pb = { {PAGE_HEIGHT*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb = { {PAGE_HEIGHT/2*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -/* -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_HW_SPI); -*/ - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c deleted file mode 100644 index ff909c5e9b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_64128n.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - - u8g_dev_st7565_64128n.c (Displaytech) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_64128n_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0A2, /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ - 0x0A0, /* Normal ADC Select (according to Displaytech 64128N datasheet) */ - - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* Display start line for Displaytech 64128N */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x010, /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x01e, /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ - - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0x10 */ - 0x000, /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_64128n_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_64128n_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_64128n_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_PARALLEL); - -uint8_t u8g_dev_st7565_64128n_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_64128n_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_64128n_2x_buf}; -u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_parallel = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c deleted file mode 100644 index e73f061537..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - - u8g_dev_st7565_dogm128.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_dogm128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal (none reverse) */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0a4, /* normal display (not all on) */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_dogm128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm128_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_PARALLEL); - - -uint8_t u8g_dev_st7565_dogm128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_dogm128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_dogm128_2x_buf}; -u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c deleted file mode 100644 index 26de539247..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_st7565_dogm132.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 132 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_dogm132_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x01f, /* contrast value, EA default: 0x01f */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - -#ifdef OBSOLETE_DOGM128 - 0x040, /* set display start line */ - 0x0c8, /* set scan direction inverse operation */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ -#endif - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm132_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm132_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm132_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c deleted file mode 100644 index 165c390978..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - - u8g_dev_st7565_lm6059.c (Adafruit display) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6059_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit, 0x0a2 does not work */ - /* the LM6059 vs LM6063, ADC and SHL have inverted settings */ - 0x0a0, /* 0x0a1: ADC set to normal (suggested for the LM6059), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x060, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x001, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6059_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6059_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6059_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6059_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_lm6059_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6059_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6059_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c deleted file mode 100644 index d0b8c816df..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - - u8g_dev_st7565_lm6063.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -#ifdef OLD_ADAFRUIT_CODE -static const uint8_t OLD_u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select / 17 Jan: seems to be a bug, must be 0x0c0 */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - /*0x0f8,*/ /* set booster ratio to */ - /*0x000, */ /* 4x */ - /*0x027,*/ /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; -#endif - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit */ - 0x0a1, /* 0x0a1: ADC set to reverse (suggested for the LM6063), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c0, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6063_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6063_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6063_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6063_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6063_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_st7565_lm6063_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6063_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6063_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c deleted file mode 100644 index ed8dca2e03..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12832.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_c12832_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set, values: a0=normal, a1=reverse */ - 0x0c8, /* common output mode: c0=normal, c8=reverse */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x00a, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_c12832_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_USART_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c deleted file mode 100644 index eeb5c09876..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12864.c - - Support for the NHD-C12864A1Z-FSB-FBW (Newhaven Display) - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_nhd_c12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(10), /* do reset low pulse with (10*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x008, /* contrast: 0x008 is a good value for NHD C12864, Nov 2012: User reports that 0x1a is much better */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_nhd_c12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr to 4 (NHD C12864) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_nhd_c12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_nhd_c12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_nhd_c12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_nhd_c12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_nhd_c12864_2x_buf}; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c deleted file mode 100644 index a11d3bc7d0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - - u8g_dev_st7687_c144mvgd.c (1.44" TFT) - - Status: Started, but not finished - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -#ifdef FIRST_VERSION -/* -see also: read.pudn.com/downloads115/sourcecode/app/484503/LCM_Display.c__.htm -http://en.pudn.com/downloads115/sourcecode/app/detail484503_en.html -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x001, /* A0=0, SW reset */ - U8G_ESC_DLY(200), /* delay 200 ms */ - - 0x0d7, /* EEPROM data auto re-load control */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, /* ARD = 1 */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e0, /* EEPROM control in */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - -#ifdef NOT_REQUIRED - 0x0fa, /* EEPROM function selection 8.1.66 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#endif - - 0x0e3, /* Read from EEPROM, 8.1.55 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e1, /* EEPROM control out, 8.1.53 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - //0x028, /* display off */ - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c0, /* Vop setting, 8.1.42 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x001, /* 3.6 + 256*0.04 = 13.84 Volt */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c3, /* Bias selection, 8.1.45 */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c4, /* Booster setting 8.1.46 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* ??? */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0cb, /* FV3 with Booster x2 control, 8.1.47 */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* Memory data access control, 8.1.28 */ - U8G_ESC_ADR(1), /* data mode */ - 0x080, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b5, /* N-line control, 8.1.37 */ - U8G_ESC_ADR(1), /* data mode */ - 0x089, - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0d0, /* Analog circuit setting, 8.1.49 */ - U8G_ESC_ADR(1), /* data mode */ - 0x01d, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b7, /* Com/Seg Scan Direction, 8.1.38 */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x025, /* Write contrast, 8.1.17 */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b0, /* Display Duty setting, 8.1.34 */ - U8G_ESC_ADR(1), /* data mode */ - 0x07f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f0, /* Frame Freq. in Temp range A,B,C and D, 8.1.59 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - 0x00c, - 0x00c, - 0x015, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x005, - 0x008, - 0x00a, - 0x00c, - 0x00e, - 0x010, - 0x011, - 0x012, - 0x013, - 0x014, - 0x015, - 0x016, - 0x018, - 0x01a, - 0x01b, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x000, - 0x000, - 0x000, - 0x033, - 0x055, - 0x055, - 0x055, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x029, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#else - -/* -http://www.waitingforfriday.com/images/e/e3/FTM144D01N_test.zip -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(5), /* delay 5 ms */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x026, /* SET_GAMMA_CURVE */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f2, /* GAM_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* enable gamma adj */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0e0, /* POSITIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x3f, - 0x25, - 0x1c, - 0x1e, - 0x20, - 0x12, - 0x2a, - 0x90, - 0x24, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0e1, /* NEGATIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x20, - 0x20, - 0x20, - 0x20, - 0x05, - 0x00, - 0x15, - 0xa7, - 0x3d, - 0x18, - 0x25, - 0x2a, - 0x2b, - 0x2b, - 0x3a, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b1, /* FRAME_RATE_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, /* DIVA = 8 */ - 0x008, /* VPA = 8 */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0b4, /* DISPLAY_INVERSION */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* NLA = 1, NLB = 1, NLC = 1 (all on Frame Inversion) */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c0, /* POWER_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x00a, /* VRH = 10: GVDD = 4.30 */ - 0x002, /* VC = 2: VCI1 = 2.65 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c1, /* POWER_CONTROL2 */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* BT = 2: AVDD = 2xVCI1, VCL = -1xVCI1, VGH = 5xVCI1, VGL = -2xVCI1 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* VCOM_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* VMH = 80: VCOMH voltage = 4.5 */ - 0x05b, /* VML = 91: VCOML voltage = -0.225 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c7, /* VCOM_OFFSET_CONTROL */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, /* nVM = 0, VMF = 64: VCOMH output = VMH, VCOML output = VML */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02a, /* SET_COLUMN_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02b, /* SET_PAGE_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* SET_ADDRESS_MODE */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Select display orientation */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x029, /* display on */ - - 0x02c, /* write start */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#endif - - - - -/* calculate bytes for Type B 4096 color display */ -static uint8_t get_byte_1(uint8_t v) -{ - v >>= 4; - v &= 0x0e; - return v; -} - -static uint8_t get_byte_2(uint8_t v) -{ - uint8_t w; - w = v; - w &= 3; - w = (w<<2) | w; - v <<= 3; - v &= 0x0e0; - w |= v; - return w; -} - -uint8_t u8g_dev_st7687_c144mvgd_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7687_c144mvgd_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02a ); /* Column address set 8.1.20 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, 0x000 ); /* x0 */ - u8g_WriteByte(u8g, dev, WIDTH-1 ); /* x1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02b ); /* Row address set 8.1.21 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, y ); /* y0 */ - u8g_WriteByte(u8g, dev, y+PAGE_HEIGHT-1 ); /* y1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02c ); /* Memory write 8.1.22 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - - for( j = 0; j < WIDTH; j ++ ) - { - u8g_WriteByte(u8g, dev, get_byte_1(*ptr) ); - u8g_WriteByte(u8g, dev, get_byte_2(*ptr) ); - ptr++; - } - } - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_st7687_c144mvgd_8h8_buf[WIDTH*8] U8G_NOCOMMON ; -u8g_pb_t u8g_st7687_c144mvgd_8h8_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_st7687_c144mvgd_8h8_buf}; - -u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, u8g_com_arduino_sw_spi_fn }; - -u8g_dev_t u8g_dev_st7687_c144mvgd_8bit = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c deleted file mode 100644 index 29e63134c0..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_128x64.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - - u8g_dev_st7920_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_128x64_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7920_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_FAST_PARALLEL); -U8G_PB_DEV(u8g_dev_st7920_128x64_custom, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, u8g_com_arduino_st7920_custom_fn); - - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_128x64_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_128x64_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_128x64_4x_buf}; -u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_8bit = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_FAST_PARALLEL }; -u8g_dev_t u8g_dev_st7920_128x64_4x_custom = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, u8g_com_arduino_st7920_custom_fn }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c deleted file mode 100644 index 736b082895..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_192x32.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_st7920_192x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 192 -#define HEIGHT 32 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_192x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_192x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_192x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_192x32_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_8bit, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_FAST_PARALLEL); - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_192x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_192x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_192x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_8bit = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c deleted file mode 100644 index b36b7abca5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_st7920_202x32.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - - u8g_dev_st7920_202x32.c - tested with CFAG20232 - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 202 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_202x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_202x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_202x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_202x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_FAST_PARALLEL); - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_202x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_202x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_202x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_8bit = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_FAST_PARALLEL }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x128.c deleted file mode 100644 index 15f618c5f8..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x128.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - - u8g_dev_t6963_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 128x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x128_8bit = { u8g_dev_t6963_128x128_fn, &u8g_dev_t6963_128x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c deleted file mode 100644 index 97e1583320..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_128x64.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_dev_t6963_128x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x64_8bit = { u8g_dev_t6963_128x64_fn, &u8g_dev_t6963_128x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c deleted file mode 100644 index 7373f38884..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x128.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x128.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x128_8bit = { u8g_dev_t6963_240x128_fn, &u8g_dev_t6963_240x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c deleted file mode 100644 index d0c4fd2307..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_t6963_240x64.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x64_8bit = { u8g_dev_t6963_240x64_fn, &u8g_dev_t6963_240x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c deleted file mode 100644 index d8f423666f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - - u8g_dev_tls8204_84x48.c - - Display: Nokia 84x48 - - Status: Tested with TLS8204V12 Display by Olimex MOD-LCD3310 - - Contributed: http://code.google.com/p/u8glib/issues/detail?id=126 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_tls8204_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x04 | !!((66-1)&(1u<<6)), - 0x40 | ((66-2) & ((1u<<6)-1)), - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_tls8204_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_tls8204_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_WriteByte(u8g, dev, 0x020); /* command mode, extended function set */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_tls8204_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tls8204_fn, U8G_COM_SW_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c deleted file mode 100644 index 0151566760..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - - u8g_dev_uc1601_c128032.c - - LCD-AG-C128032R-DIW W/KK E6 PBF from http://www.artronic.pl/o_produkcie.php?id=1343 - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -/* init sequence */ -static const uint8_t u8g_dev_uc1601_c128032_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a3: LCD bias 1/7 , 0x0a2: LCD bias 1/9 */ - 0x0a0, /* 0x0a0: ADC set to normal, 0x0a1 ADC set to inverted */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x0c2, /* 22 May 2013: mirror x */ - - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(10), /* delay 10 ms */ - - 0x020| 0x06, /* set V0 voltage resistor ratio to 6 */ - - 0x0af, /* display on */ - - //0x081, /* set contrast */ - //0x018, /* contrast value*/ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_uc1601_c128032_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1601_c128032_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1601_c128032_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1601_c128032_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1601_c128032_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1601_c128032_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1601_c128032_2x_buf}; -u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c deleted file mode 100644 index d43d78e112..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - - - u8g_dev_uc1608_240x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com (original 240x64 library) - Modified by thieringpeti@gmail.com for Raystar rx240128 family displays - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -/* -Display: http://www.tme.eu/en/details/rx240128a-ghw/lcd-graphic-displays/raystar-optronics/ -Connection: HW / SW SPI. -To get this display working, You need some extra capacitors: - -connect 4.7uF caps between: - PIN1 & PIN2 VB1 +- - PIN3 & PIN4 VB0 -+ -connect 0.1uF caps between: - VLCD and VSS - VBIAS and VSS -You can find some schematics with a 10M resistor parallellized with the VLCD capacitor. - -Select 4-bit SPI mode. - -Connect D7 (PIN9) To VDD (+3.3V) -Connect D1, D2, D4, D5, D6 to GND (PINS 10,11,12,14,15) -Connect WR0, WR1, BM0, BM1 to GND (PINS 17,18,22,23) - -D0: (PIN16) AVR's SCK pin (HW SPI) -D3: (PIN13) AVR's MOSI pin (HW SPI) -CD: (PIN19) used as A0 in the library -CS: (PIN21) Connect to the defined CS pin, and You can re-use the HW SPI in different routines. -RST: (PIN20) optional reset, can be defined in the function, resets on initialization. - -Adjust contrast if necessary. Default: 0x072. - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x026, /* MUX rate and temperature compensation */ - - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - - 0x0eb, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - /* default 0x0ea for 240x128 */ - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x072, /* default for 240x128 displays: 0x072*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - // 0x0a7, /* inverse display */ - 0x0a6, /* normal display */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x128_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x128_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x128_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c deleted file mode 100644 index 6a99c6ba88..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - - u8g_dev_uc1608_240x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#if HEIGHT <= 96 - 0x023, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#else - /* 30 Nov 2013: not tested */ - 0x027, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#endif - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - 0x0e8, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x014, /* ECR24064-1 default: 0x040*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x64_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x64_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x64_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c deleted file mode 100644 index 4f361664dd..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - - u8g_dev_uc1610_dogxl160.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 104 - -static const uint8_t u8g_dev_uc1610_dogxl160_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0f1, /* set display height-1 */ - 0x067, /* */ - 0x0c0, /* SEG & COM normal */ - 0x040, /* set display start line */ - 0x050, /* */ - 0x02b, /* set panelloading */ - 0x0eb, /* set bias 1/2 */ - 0x081, /* set contrast */ - 0x05f, /* */ - 0x089, /* set auto increment */ - 0x0a6, /* normal pixel mode */ - 0x0d3, /* 0xd3=40% RMS separation for gray levels */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1610_dogxl160_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_1to2(uint8_t n) -{ - register uint8_t a,b,c; - a = n; - a &= 1; - n <<= 1; - b = n; - b &= 4; - n <<= 1; - c = n; - c &= 16; - n <<= 1; - n &= 64; - n |= a; - n |= b; - n |= c; - n |= n << 1; - return n; -} - -uint8_t u8g_dev_uc1610_dogxl160_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+3) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf) == 0 ) - return 0; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, (uint8_t *)(pb->buf)+WIDTH) == 0 ) - return 0; - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_sw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_hw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_bw_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_HW_SPI }; - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_gr_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c deleted file mode 100644 index 52bf451d94..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - - u8g_dev_uc1611_dogm240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogm240_init_seq[] PROGMEM = { - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - 0xF1, // set last COM electrode - 0x3F, // 64-1=63 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x3F, // 64-1=63 - 0x81, // set contrast (0-255) - 0xB7, // 183 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void setPage(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogm240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1611_dogm240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_data_start); - setPage(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogm240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c deleted file mode 100644 index 44242ecdfb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - - u8g_dev_uc1611_dogxl240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@gmail.com, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogxl240_init_seq[] PROGMEM = { - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - 0xF1, // set last COM electrode - 0x7F, // DOGXL240 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x7F, // DOGXL240 - 0x81, // set contrast (0-255) - 0xAA, // DOGXL240 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void u8g_dev_dogxl240_set_page(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogxl240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_uc1611_dogxl240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_data_start); - u8g_dev_dogxl240_set_page(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c deleted file mode 100644 index 5161ef95f2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_uc1701_dogs102.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 102 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_dogs102_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x027, /* regulator, booster and follower */ - 0x081, /* set contrast */ - 0x00e, /* contrast value, EA default: 0x010, previous value for S102: 0x0e */ - 0x0fa, /* Set Temp compensation */ - 0x090, /* 0.11 deg/c WP Off WC Off*/ - 0x0a4, /* normal display */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_dogs102_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_dogs102_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_dogs102_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_dogs102_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_dogs102_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_dogs102_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_dogs102_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_dogs102_2x_buf}; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c deleted file mode 100644 index 209a7b930d..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - - u8g_dev_uc1701_mini12864.c (dealextreme) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_uc1701_mini12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set to reverse */ - 0x0c8, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x027, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1701_mini12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1701_mini12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_mini12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_mini12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_mini12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_mini12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_mini12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_mini12864_2x_buf}; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c deleted file mode 100644 index 57ff4675bc..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ellipse.c +++ /dev/null @@ -1,393 +0,0 @@ -/* - - u8g_ellipse.c - - Utility to draw empty and filled ellipses. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library as of 02/29/12 - Adapted from Bresenham's Algorithm and the following websites: - http://free.pages.at/easyfilter/bresenham.html - http://homepage.smc.edu/kennedy_john/belipse.pdf - -*/ - -#include "u8g.h" - - -#ifdef WORK_IN_PROGRESS - -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1) -{ - int a = abs(x1 - x0); - int b = abs(y1 - y0); //get diameters - int b1 = b&1; - long dx = 4*(1-a)*b*b; - long dy = 4*(b1+1)*a*a; - long err = dx+dy+b1*a*a; - long e2; - - if (x0 > x1) { x0 = x1; x1 += a; } - if (y0 > y1) { y0 = y1; } - y0 += (b+1)/2; - y1 = y0-b1; - a *= 8*a; - b1 = 8*b*b; - - do { - u8g_DrawPixel(u8g, x1, y0); - u8g_DrawPixel(u8g, x0, y0); - u8g_DrawPixel(u8g, x0, y1); - u8g_DrawPixel(u8g, x1, y1); - e2 = 2*err; - if (e2 >= dx) { - x0++; - x1--; - err += dx += b1; - } - if (e2 <= dy) { - y0++; - y1--; - err += dy += a; - } - } while (x0 <= x1); - - while (y0-y1 < b) { - u8g_DrawPixel(u8g, x0-1, y0); - u8g_DrawPixel(u8g, x1+1, y0++); - u8g_DrawPixel(u8g, x0-1, y1); - u8g_DrawPixel(u8g, x1+1, y1--); - } -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t xr, u8g_uint_t yr) -{ - u8g_DrawPixel(u8g, x0, y0+yr); - u8g_DrawPixel(u8g, x0, y0-yr); - u8g_DrawPixel(u8g, x0+xr, y0); - u8g_DrawPixel(u8g, x0-xr, y0); -} - -#endif - -#if defined(U8G_16BIT) -typedef int32_t u8g_long_t; -#else -typedef int16_t u8g_long_t; -#endif - - -/* - Source: - ftp://pc.fk0.name/pub/books/programming/bezier-ellipse.pdf - Foley, Computer Graphics, p 90 -*/ -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - } -} - -void u8g_draw_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_ellipse(u8g, x0, y0, rx, ry, option); -} - -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - } -} - -void u8g_draw_filled_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_filled_ellipse(u8g, x0, y0, rx, ry, option); -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c deleted file mode 100644 index f3c1eda4c1..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font.c +++ /dev/null @@ -1,1500 +0,0 @@ -/* - - u8g_font.c - - U8G Font High Level Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -/* font api */ - -/* pointer to the start adress of the glyph, points to progmem area */ -typedef void * u8g_glyph_t; - -/* size of the font data structure, there is no struct or class... */ -#define U8G_FONT_DATA_STRUCT_SIZE 17 - -/* - ... instead the fields of the font data structure are accessed directly by offset - font information - offset - 0 font format - 1 FONTBOUNDINGBOX width unsigned - 2 FONTBOUNDINGBOX height unsigned - 3 FONTBOUNDINGBOX x-offset signed - 4 FONTBOUNDINGBOX y-offset signed - 5 capital A height unsigned - 6 start 'A' - 8 start 'a' - 10 encoding start - 11 encoding end - 12 descent 'g' negative: below baseline - 13 font max ascent - 14 font min decent negative: below baseline - 15 font xascent - 16 font xdecent negative: below baseline - -*/ - -/* use case: What is the width and the height of the minimal box into which string s fints? */ -void u8g_font_GetStrSize(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); -void u8g_font_GetStrSizeP(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); - -/* use case: lower left edge of a minimal box is known, what is the correct x, y position for the string draw procedure */ -void u8g_font_AdjustXYToDraw(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); -void u8g_font_AdjustXYToDrawP(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); - -/* use case: Baseline origin known, return minimal box */ -void u8g_font_GetStrMinBox(u8g_t *u8g, const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - -/* procedures */ - -/*========================================================================*/ -/* low level byte and word access */ - -/* removed NOINLINE, because it leads to smaller code, might also be faster */ -//static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - font += offset; - return u8g_pgm_read( (u8g_pgm_uint8_t *)font ); -} - -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - uint16_t pos; - font += offset; - pos = u8g_pgm_read( (u8g_pgm_uint8_t *)font ); - font++; - pos <<= 8; - pos += u8g_pgm_read( (u8g_pgm_uint8_t *)font); - return pos; -} - -/*========================================================================*/ -/* direct access on the font */ - -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) -{ - return u8g_font_get_byte(font, 0); -} - -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) -{ - switch(u8g_font_GetFormat(font)) - { - case 0: return 6; - case 1: return 3; - case 2: return 6; - } - return 3; -} - -static uint8_t u8g_font_GetBBXWidth(const void *font) -{ - return u8g_font_get_byte(font, 1); -} - -static uint8_t u8g_font_GetBBXHeight(const void *font) -{ - return u8g_font_get_byte(font, 2); -} - -static int8_t u8g_font_GetBBXOffX(const void *font) -{ - return u8g_font_get_byte(font, 3); -} - -static int8_t u8g_font_GetBBXOffY(const void *font) -{ - return u8g_font_get_byte(font, 4); -} - -uint8_t u8g_font_GetCapitalAHeight(const void *font) -{ - return u8g_font_get_byte(font, 5); -} - -uint16_t u8g_font_GetEncoding65Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding65Pos(const void *font) -{ - return u8g_font_get_word(font, 6); -} - -uint16_t u8g_font_GetEncoding97Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding97Pos(const void *font) -{ - return u8g_font_get_word(font, 8); -} - -uint8_t u8g_font_GetFontStartEncoding(const void *font) -{ - return u8g_font_get_byte(font, 10); -} - -uint8_t u8g_font_GetFontEndEncoding(const void *font) -{ - return u8g_font_get_byte(font, 11); -} - -int8_t u8g_font_GetLowerGDescent(const void *font) -{ - return u8g_font_get_byte(font, 12); -} - -int8_t u8g_font_GetFontAscent(const void *font) -{ - return u8g_font_get_byte(font, 13); -} - -int8_t u8g_font_GetFontDescent(const void *font) -{ - return u8g_font_get_byte(font, 14); -} - -int8_t u8g_font_GetFontXAscent(const void *font) -{ - return u8g_font_get_byte(font, 15); -} - -int8_t u8g_font_GetFontXDescent(const void *font) -{ - return u8g_font_get_byte(font, 16); -} - - -/* return the data start for a font and the glyph pointer */ -static uint8_t *u8g_font_GetGlyphDataStart(const void *font, u8g_glyph_t g) -{ - return ((u8g_fntpgm_uint8_t *)g) + u8g_font_GetFontGlyphStructureSize(font); -} - -/* calculate the overall length of the font, only used to create the picture for the google wiki */ -size_t u8g_font_GetSize(const void *font) -{ - uint8_t *p = (uint8_t *)(font); - uint8_t font_format = u8g_font_GetFormat(font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(font); - uint8_t start, end; - uint8_t i; - uint8_t mask = 255; - - start = u8g_font_GetFontStartEncoding(font); - end = u8g_font_GetFontEndEncoding(font); - - if ( font_format == 1 ) - mask = 15; - - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - - i = start; - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - - return p - (uint8_t *)font; -} - -/*========================================================================*/ -/* u8g interface, font access */ - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g) -{ - return u8g_font_GetBBXWidth(u8g->font); -} - -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g) -{ - return u8g_font_GetBBXHeight(u8g->font); -} - -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) -{ - return u8g_font_GetBBXOffX(u8g->font); -} - -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) -{ - return u8g_font_GetBBXOffY(u8g->font); -} - -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) U8G_NOINLINE; -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) -{ - return u8g_font_GetCapitalAHeight(u8g->font); -} - -/*========================================================================*/ -/* glyph handling */ - -static void u8g_CopyGlyphDataToCache(u8g_t *u8g, u8g_glyph_t g) -{ - uint8_t tmp; - switch( u8g_font_GetFormat(u8g->font) ) - { - case 0: - case 2: - /* - format 0 - glyph information - offset - 0 BBX width unsigned - 1 BBX height unsigned - 2 data size unsigned (BBX width + 7)/8 * BBX height - 3 DWIDTH signed - 4 BBX xoffset signed - 5 BBX yoffset signed - byte 0 == 255 indicates empty glyph - */ - u8g->glyph_width = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_height = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_dx = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 3 ); - u8g->glyph_x = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 4 ); - u8g->glyph_y = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 5 ); - break; - case 1: - default: - /* -format 1 - 0 BBX xoffset signed --> upper 4 Bit - 0 BBX yoffset signed --> lower 4 Bit - 1 BBX width unsigned --> upper 4 Bit - 1 BBX height unsigned --> lower 4 Bit - 2 data size unsigned -(BBX width + 7)/8 * BBX height --> lower 4 Bit - 2 DWIDTH signed --> upper 4 Bit - byte 0 == 255 indicates empty glyph - */ - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_y = tmp & 15; - u8g->glyph_y-=2; - tmp >>= 4; - u8g->glyph_x = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_height = tmp & 15; - tmp >>= 4; - u8g->glyph_width = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 2 ); - tmp >>= 4; - u8g->glyph_dx = tmp; - - - break; - } -} - -//void u8g_FillEmptyGlyphCache(u8g_t *u8g) U8G_NOINLINE; -static void u8g_FillEmptyGlyphCache(u8g_t *u8g) -{ - u8g->glyph_dx = 0; - u8g->glyph_width = 0; - u8g->glyph_height = 0; - u8g->glyph_x = 0; - u8g->glyph_y = 0; -} - -/* - Find (with some speed optimization) and return a pointer to the glyph data structure - Also uncompress (format 1) and copy the content of the data structure to the u8g structure -*/ -u8g_glyph_t u8g_GetGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - uint8_t *p = (uint8_t *)(u8g->font); - uint8_t font_format = u8g_font_GetFormat(u8g->font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(u8g->font); - uint8_t start, end; - uint16_t pos; - uint8_t i; - uint8_t mask = 255; - - if ( font_format == 1 ) - mask = 15; - - start = u8g_font_GetFontStartEncoding(u8g->font); - end = u8g_font_GetFontEndEncoding(u8g->font); - - pos = u8g_font_GetEncoding97Pos(u8g->font); - if ( requested_encoding >= 97 && pos > 0 ) - { - p+= pos; - start = 97; - } - else - { - pos = u8g_font_GetEncoding65Pos(u8g->font); - if ( requested_encoding >= 65 && pos > 0 ) - { - p+= pos; - start = 65; - } - else - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - } - - if ( requested_encoding > end ) - { - u8g_FillEmptyGlyphCache(u8g); - return NULL; /* not found */ - } - - i = start; - if ( i <= end ) - { - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - if ( i == requested_encoding ) - { - u8g_CopyGlyphDataToCache(u8g, p); - return p; - } - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - } - - u8g_FillEmptyGlyphCache(u8g); - - return NULL; -} - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) != NULL ) - return 1; - return 0; -} - -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) == NULL ) - return 0; /* should never happen, so return something */ - return u8g->glyph_dx; -} - - -/*========================================================================*/ -/* glyph drawing procedures */ - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: left baseline position of the glyph -*/ -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - u8g_glyph_t g; - uint8_t w, h, i, j; - const u8g_pgm_uint8_t *data; - uint8_t bytes_per_line; - u8g_uint_t ix, iy; - - g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - w = u8g->glyph_width; - h = u8g->glyph_height; - - bytes_per_line = w; - bytes_per_line += 7; - bytes_per_line /= 8; - - data = u8g_font_GetGlyphDataStart(u8g->font, g); - - switch(dir) - { - case 0: - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - //u8g_DrawFrame(u8g, x, y-h+1, w, h); - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - break; - case 1: - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - //printf("enc %d, dir %d, x %d, y %d, w %d, h %d\n", encoding, dir, x, y, w, h); - //u8g_DrawFrame(u8g, x, y, h, w); - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - break; - case 2: - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - if ( u8g_IsBBXIntersection(u8g, x-w-1, y, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - break; - case 3: - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-h-1, y-w-1, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - break; - } - return u8g->glyph_dx; -} -#endif - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_glyph(u8g, x, y, encoding); -} - -int8_t u8g_draw_glyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 1, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph90(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - - if ( u8g_IsBBXIntersection(u8g, x-(w-1), y, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 2, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph180(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-(h-1), y-(w-1), h, w) == 0 ) - return u8g->glyph_dx; - - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 3, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x += u8g->font_calc_vref(u8g); - return u8g_draw_glyph270(u8g, x, y, encoding); -} - - - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: lower left corner of the font bounding box -*/ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - /* TODO: apply "dir" */ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawGlyphDir(u8g, x, y, dir, encoding); -} -#endif - -/*========================================================================*/ -/* string drawing procedures */ - - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph90(u8g, x, y, *s); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph180(u8g, x, y, *s); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph270(u8g, x, y, *s); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - switch(dir) - { - case 0: - return u8g_DrawStr(u8g, x, y, s); - case 1: - return u8g_DrawStr90(u8g, x, y, s); - case 2: - return u8g_DrawStr180(u8g, x, y, s); - case 3: - return u8g_DrawStr270(u8g, x, y, s); - } - return 0; -} - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - y += u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_draw_glyph(u8g, x, y, c); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph90(u8g, x, y, u8g_pgm_read(s)); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph180(u8g, x, y, u8g_pgm_read(s)); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph270(u8g, x, y, u8g_pgm_read(s)); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawStrDir(u8g, x, y, dir, s); -} - -/* still used by picgen.c, dir argument is ignored */ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - u8g_draw_glyph(u8g, x, y, encoding); - return 0; -} - - -/*========================================================================*/ -/* set ascent/descent for reference point calculation */ - -void u8g_UpdateRefHeight(u8g_t *u8g) -{ - uint16_t ls; - if ( u8g->font == NULL ) - return; - if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_TEXT ) - { - u8g->font_ref_ascent = u8g_font_GetCapitalAHeight(u8g->font); - u8g->font_ref_descent = u8g_font_GetLowerGDescent(u8g->font); - } - else if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_XTEXT ) - { - u8g->font_ref_ascent = u8g_font_GetFontXAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontXDescent(u8g->font); - } - else - { - u8g->font_ref_ascent = u8g_font_GetFontAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontDescent(u8g->font); - } - - ls = u8g->font_ref_ascent - u8g->font_ref_descent; - if ( u8g->font_line_spacing_factor != 64 ) - { - ls &= 255; - ls *= u8g->font_line_spacing_factor; - ls >>= 6; - } - u8g->line_spacing = ls; -} - -void u8g_SetFontRefHeightText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_TEXT; - u8g_UpdateRefHeight(u8g); -} - -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g_UpdateRefHeight(u8g); -} - - -void u8g_SetFontRefHeightAll(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_ALL; - u8g_UpdateRefHeight(u8g); -} - -/* factor = 64: linespaceing == ascent and descent */ -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor) -{ - u8g->font_line_spacing_factor = factor; - u8g_UpdateRefHeight(u8g); -} - - - -/*========================================================================*/ -/* callback procedures to correct the y position */ - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetFontPosBaseline(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_font; -} - - -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g) -{ - /* y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); */ - return (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); -} - -void u8g_SetFontPosBottom(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_bottom; -} - -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g) -{ - u8g_uint_t tmp; - /* reference pos is one pixel above the upper edge of the reference glyph */ - - /* - y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - y++; - */ - tmp = (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - tmp++; - return tmp; -} - -void u8g_SetFontPosTop(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_top; -} - -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g) -{ - int8_t tmp; - tmp = u8g->font_ref_ascent; - tmp -= u8g->font_ref_descent; - tmp /= 2; - tmp += u8g->font_ref_descent; - /* y += (u8g_uint_t)(u8g_int_t)(tmp); */ - return tmp; -} - -void u8g_SetFontPosCenter(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_center; -} - -/*========================================================================*/ -/* string pixel width calculation */ - -char u8g_font_get_char(const void *s) -{ - return *(const char *)(s); -} - -char u8g_font_get_charP(const void *s) -{ - return u8g_pgm_read(s); -} - -typedef char (*u8g_font_get_char_fn)(const void *s); - - -u8g_uint_t u8g_font_calc_str_pixel_width(u8g_t *u8g, const char *s, u8g_font_get_char_fn get_char ) -{ - u8g_uint_t w; - uint8_t enc; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - w = 0; - - enc = get_char(s); - - /* check for empty string, width is already 0 */ - if ( enc == '\0' ) - { - return w; - } - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - /* if *s is not inside the font, then the cached parameters of the glyph are all zero */ - u8g_GetGlyph(u8g, enc); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - w = -u8g->glyph_x; - for(;;) - { - - /* check and stop if the end of the string is reached */ - s++; - if ( get_char(s) == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - w += u8g->glyph_dx; - - /* store the encoding in a local variable, used also after the for(;;) loop */ - enc = get_char(s); - - /* load the next glyph information */ - u8g_GetGlyph(u8g, enc); - } - - /* finally calculate the width of the last char */ - /* here is another exception, if the last char is a black, use the dx value instead */ - if ( enc != ' ' ) - { - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - w += u8g->glyph_width; - w += u8g->glyph_x; - } - else - { - w += u8g->glyph_dx; - } - - - return w; -} - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s) -{ - return u8g_font_calc_str_pixel_width(u8g, s, u8g_font_get_char); -} - -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - return u8g_font_calc_str_pixel_width(u8g, (const char *)s, u8g_font_get_charP); -} - -int8_t u8g_GetStrX(u8g_t *u8g, const char *s) -{ - u8g_GetGlyph(u8g, *s); - return u8g->glyph_x; -} - -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_GetGlyph(u8g, u8g_pgm_read(s)); - return u8g->glyph_x; -} - -/*========================================================================*/ -/* string width calculation */ - -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = *s; - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = u8g_pgm_read(s); - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -/*========================================================================*/ -/* calculation of font/glyph/string characteristics */ - - -/* - Description: - Calculate parameter for the minimal bounding box on a given string - Output - buf->y_min extend of the lower left edge if the string below (y_min<0) or above (y_min>0) baseline (descent) - buf->y_max extend of the upper left edge if the string below (y_min<0) or above (y_min>0) baseline (ascent) - buf->w the width of the string -*/ -struct u8g_str_size_struct -{ - int8_t y_min; /* descent */ - int8_t y_max; /* ascent */ - int8_t x, y; /* the reference point of the font (negated!) */ - u8g_uint_t w; /* width of the overall string */ -}; -typedef struct u8g_str_size_struct u8g_str_size_t; - -static void u8g_font_calc_str_min_box(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - /* u8g_glyph_t g; */ - int8_t tmp; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - buf->w = 0; - - /* check for empty string, width is already 0, but also reset y_min and y_max to 0 */ - if ( *s == '\0' ) - { - buf->y_min = 0; - buf->y_max = 0; - buf->x = 0; - buf->y = 0; - return; - } - - /* reset y_min to the largest possible value. Later we search for the smallest value */ - /* y_min contains the position [pixel] of the lower left edge of the glyph above (y_min>0) or below (y_min<0) baseline */ - buf->y_min = 127; - /* reset y_max to the smallest possible value. Later we search for the highest value */ - /* y_max contains the position [pixel] of the upper left edge of the glyph above (y_max>0) or below (y_max<0) baseline */ - buf->y_max = -128; - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - u8g_GetGlyph(u8g, *s); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - // buf->w = - u8g_font_GetGlyphBBXOffX(u8g->font, g); - buf->w = - u8g->glyph_x; - - /* Also copy the position of the first glyph. This is the reference point of the string (negated) */ - buf->x = u8g->glyph_x; - buf->y = u8g->glyph_y; - - for(;;) - { - - /* calculated y position of the upper left corner (y_max) and lower left corner (y_min) of the string */ - /* relative to the base line */ - - tmp = u8g->glyph_y; - if ( buf->y_min > tmp ) - buf->y_min = tmp; - - tmp +=u8g->glyph_height; - if ( buf->y_max < tmp ) - buf->y_max = tmp; - - /* check and stop if the end of the string is reached */ - s++; - if ( *s == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - buf->w += u8g->glyph_dx; - - /* load the next glyph information */ - u8g_GetGlyph(u8g, *s); - } - - /* finally calculate the width of the last char */ - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - buf->w += u8g->glyph_width; - // buf->w += u8g_font_GetGlyphBBXOffX(u8g->font, g); - - buf->w += u8g->glyph_x; -} - -/* calculate minimal box */ -void u8g_font_box_min(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - u8g_font_calc_str_min_box(u8g, s, buf); -} - -/* calculate gA box, but do not calculate the overall width */ -void u8g_font_box_left_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - -/* calculate gA box, including overall width */ -void u8g_font_box_all_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - - -static void u8g_font_get_str_box_fill_args(u8g_t *u8g, const char *s, u8g_str_size_t *buf, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - /* - u8g_glyph_t g; - g = - */ - u8g_GetGlyph(u8g, *s); - *x += u8g->glyph_x; - *width = buf->w; - *y -= buf->y_max; - /* +1 because y_max is a height, this compensates the next step */ - //*y += 1; - /* because the reference point is one below the string, this compensates the previous step */ - //*y -= 1; - *height = buf->y_max; - *height -= buf->y_min; -} - - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - u8g_font_calc_str_min_box(u8g, s, &buf); - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - - -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - uint8_t cap_a; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - cap_a = u8g_font_GetCapitalAHeight(u8g->font); - u8g_font_calc_str_min_box(u8g, s, &buf); - if ( buf.y_max < cap_a ) - buf.y_max = cap_a; - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font) -{ - if ( u8g->font != font ) - { - u8g->font = font; - u8g_UpdateRefHeight(u8g); - u8g_SetFontPosBaseline(u8g); - } -} - -/*========================================================================*/ -/* anti aliasing fonts */ - -int8_t u8g_draw_aa_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 3; - w /= 4; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw4TPixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=4; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawAAGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_aa_glyph(u8g, x, y, encoding); -} - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - if ( u8g_font_GetFormat(u8g->font) != 2 ) - return 0; - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_aa_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c deleted file mode 100644 index 0910808979..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_font_data.c +++ /dev/null @@ -1,88464 +0,0 @@ -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03b[826] U8G_FONT_SECTION("u8g_font_04b_03b") = { - 1,5,6,0,255,5,0,250,1,240,32,255,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,2,0,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03bn[136] U8G_FONT_SECTION("u8g_font_04b_03bn") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,240,144,144,144,240,2,37,53,192,64,64, - 64,64,2,69,85,240,16,240,128,240,2,69,85,240,16,240, - 16,240,2,69,85,144,144,144,240,16,2,69,85,240,128,240, - 16,240,2,69,85,224,128,240,144,240,2,69,85,240,16,32, - 64,64,2,69,85,240,144,240,144,240,2,69,85,240,144,240, - 16,112,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03br[696] U8G_FONT_SECTION("u8g_font_04b_03br") = { - 1,5,6,0,255,5,0,250,1,240,32,127,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03[859] U8G_FONT_SECTION("u8g_font_04b_03") = { - 1,5,7,0,254,5,0,251,1,242,32,255,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,0,64,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03n[136] U8G_FONT_SECTION("u8g_font_04b_03n") = { - 1,5,7,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,96,144,144,144,96,2,37,53,192,64,64, - 64,64,2,69,85,224,16,96,128,240,2,69,85,224,16,96, - 16,224,2,69,85,32,96,160,240,32,2,69,85,240,128,224, - 16,224,2,69,85,96,128,224,144,96,2,69,85,240,16,32, - 64,64,2,69,85,96,144,96,144,96,2,69,85,96,144,112, - 16,96,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03r[729] U8G_FONT_SECTION("u8g_font_04b_03r") = { - 1,5,7,0,254,5,0,251,1,242,32,127,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24[912] U8G_FONT_SECTION("u8g_font_04b_24") = { - 1,5,6,0,255,5,0,250,1,241,32,255,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,37,53,128,64,64,64,64,2,53,69,160,160,160,96,32, - 2,53,69,192,32,192,32,192,255,255,255,2,53,69,128,192, - 160,160,64,255,255,2,53,69,64,160,160,96,32,255,255,255, - 255,255,255,255,255,255,255,255,2,53,69,224,32,32,64,128, - 255,255,255,2,53,69,64,160,160,160,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 - }; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24n[136] U8G_FONT_SECTION("u8g_font_04b_24n") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,53,69,32,32,64, - 128,128,2,53,69,224,160,160,160,224,2,37,53,192,64,64, - 64,64,2,53,69,224,32,224,128,224,2,53,69,224,32,224, - 32,224,2,53,69,160,160,160,224,32,2,53,69,224,128,224, - 32,224,2,53,69,128,224,160,160,224,2,53,69,224,32,32, - 64,128,2,53,69,224,160,224,160,224,2,53,69,224,160,160, - 224,32,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24r[735] U8G_FONT_SECTION("u8g_font_04b_24r") = { - 1,5,6,0,255,5,0,250,1,241,32,127,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 13 - Calculated Max Values w=10 h=20 x= 9 y=13 dx=10 dy= 0 ascent=16 len=40 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[4734] U8G_FONT_SECTION("u8g_font_10x20_67_75") = { - 0,10,20,0,252,5,2,211,5,193,32,255,0,16,252,13, - 0,9,6,12,10,0,3,54,0,27,0,255,128,255,128,27, - 0,54,0,8,13,13,10,1,0,24,24,24,24,153,219,126, - 60,153,219,126,60,24,9,8,16,10,0,2,25,128,51,0, - 102,0,252,0,252,0,102,0,51,0,25,128,9,8,16,10, - 0,2,204,0,102,0,51,0,31,128,31,128,51,0,102,0, - 204,0,9,8,16,10,0,2,25,128,49,128,97,128,255,128, - 255,128,97,128,49,128,25,128,8,13,13,10,1,0,24,60, - 126,219,153,24,24,24,24,24,24,255,255,9,8,16,10,0, - 2,204,0,198,0,195,0,255,128,255,128,195,0,198,0,204, - 0,8,13,13,10,1,0,255,255,24,24,24,24,24,24,153, - 219,126,60,24,8,13,13,10,1,0,24,60,126,219,153,24, - 153,219,126,60,24,255,255,9,8,16,10,0,2,27,0,51, - 128,97,128,255,128,255,0,96,0,48,0,24,0,9,8,16, - 10,0,2,108,0,230,0,195,0,255,128,127,128,3,0,6, - 0,12,0,9,8,16,10,0,2,25,0,51,128,98,128,255, - 128,255,0,98,0,50,0,24,0,9,8,16,10,0,2,76, - 0,230,0,163,0,255,128,127,128,35,0,38,0,12,0,10, - 8,16,10,0,2,18,0,51,0,109,128,255,192,243,192,97, - 128,51,0,18,0,10,8,16,10,0,2,18,0,55,0,101, - 128,255,192,255,192,105,128,59,0,18,0,10,15,30,10,0, - 0,1,192,3,128,7,0,14,0,28,0,63,192,127,192,3, - 128,7,0,206,0,220,0,248,0,240,0,252,0,252,0,8, - 13,13,10,1,0,48,96,255,255,99,51,3,3,3,3,3, - 3,3,8,13,13,10,1,0,12,6,255,255,198,204,192,192, - 192,192,192,192,192,8,13,13,10,1,0,3,3,3,3,3, - 3,3,51,99,255,255,96,48,8,13,13,10,1,0,192,192, - 192,192,192,192,192,204,198,255,255,6,12,8,13,13,10,1, - 0,252,252,12,12,12,12,12,12,12,45,63,30,12,8,9, - 9,10,1,1,3,3,3,51,99,255,255,96,48,9,8,16, - 10,0,0,14,0,31,0,59,128,49,128,181,128,253,128,121, - 128,49,128,9,8,16,10,0,0,56,0,124,0,238,0,198, - 0,214,128,223,128,207,0,198,0,9,13,26,10,0,0,255, - 128,255,128,32,0,124,0,127,0,122,0,216,0,204,0,140, - 0,6,0,6,0,3,0,3,0,9,13,26,10,0,0,204, - 0,216,0,255,128,255,128,216,0,204,0,0,0,25,128,13, - 128,255,128,255,128,13,128,25,128,9,10,20,10,0,2,31, - 0,31,0,30,0,31,0,219,128,193,128,193,128,227,128,127, - 0,62,0,9,10,20,10,0,2,124,0,124,0,60,0,124, - 0,237,128,193,128,193,128,227,128,127,0,62,0,9,5,10, - 10,0,5,24,0,48,0,96,0,255,128,255,128,9,5,10, - 10,0,2,255,128,255,128,96,0,48,0,24,0,5,13,13, - 10,4,0,192,224,240,216,200,192,192,192,192,192,192,192,192, - 5,13,13,10,1,0,24,56,120,216,152,24,24,24,24,24, - 24,24,24,9,5,10,10,0,5,12,0,6,0,3,0,255, - 128,255,128,9,5,10,10,0,2,255,128,255,128,3,0,6, - 0,12,0,5,13,13,10,4,0,192,192,192,192,192,192,192, - 192,200,216,240,224,192,5,13,13,10,1,0,24,24,24,24, - 24,24,24,24,152,216,120,56,24,9,11,22,10,0,1,6, - 0,3,0,255,128,255,128,3,0,54,0,96,0,255,128,255, - 128,96,0,48,0,10,13,26,10,0,0,51,0,123,0,255, - 0,183,0,51,0,51,0,51,0,51,0,51,0,59,64,63, - 192,55,128,51,0,9,11,22,10,0,1,48,0,96,0,255, - 128,255,128,96,0,54,0,3,0,255,128,255,128,3,0,6, - 0,9,11,22,10,0,1,48,0,96,0,255,128,255,128,96, - 0,48,0,96,0,255,128,255,128,96,0,48,0,9,13,26, - 10,0,0,34,0,119,0,170,128,34,0,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,9,11,22, - 10,0,1,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,13,26,10,0,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,34,0,170,128,119,0,34,0,8,9,9,10,1,2,48, - 96,255,255,0,255,255,6,12,8,9,9,10,1,2,12,6, - 255,255,0,255,255,96,48,8,7,7,10,1,2,2,34,127, - 132,127,40,8,10,7,14,10,0,2,4,0,37,0,127,128, - 140,64,127,128,41,0,8,0,8,7,7,10,1,2,16,20, - 254,33,254,68,64,9,9,18,10,0,2,12,0,24,0,63, - 128,127,128,192,0,127,128,63,128,24,0,12,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,54,0,54,0,54,0,54,0,54,0,54,0,9,9,18, - 10,0,2,24,0,12,0,254,0,255,0,1,128,255,0,254, - 0,12,0,24,0,9,13,26,10,0,0,54,0,54,0,54, - 0,54,0,54,0,54,0,54,0,182,128,247,128,119,0,54, - 0,28,0,8,0,10,9,18,10,0,2,18,0,51,0,127, - 128,255,192,128,192,255,192,127,128,51,0,18,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,182,128,247,128,119,0,54,0,28,0,8,0,9,9,18, - 10,0,2,254,0,254,0,204,0,198,0,227,0,241,128,216, - 128,12,0,6,0,9,9,18,10,0,2,63,128,63,128,25, - 128,49,128,99,128,199,128,141,128,24,0,48,0,9,9,18, - 10,0,2,48,0,24,0,141,128,199,128,99,128,49,128,25, - 128,63,128,63,128,9,9,18,10,0,2,6,0,12,0,216, - 128,241,128,227,0,198,0,204,0,254,0,254,0,9,11,22, - 10,0,1,4,0,8,0,16,0,63,128,64,0,255,128,64, - 0,63,128,16,0,8,0,4,0,9,11,22,10,0,1,16, - 0,8,0,4,0,254,0,1,0,255,128,1,0,254,0,4, - 0,8,0,16,0,9,5,10,10,0,3,32,0,66,0,245, - 128,72,0,32,0,9,5,10,10,0,3,2,0,33,0,215, - 128,9,0,2,0,8,13,13,10,1,0,24,60,126,219,153, - 24,126,126,24,126,126,24,24,8,13,13,10,1,0,24,24, - 126,126,24,126,126,24,153,219,126,60,24,9,8,16,10,0, - 2,24,0,48,0,96,0,237,128,237,128,96,0,48,0,24, - 0,8,13,13,10,1,0,24,60,126,219,129,24,24,0,24, - 24,0,24,24,9,8,16,10,0,2,12,0,6,0,3,0, - 219,128,219,128,3,0,6,0,12,0,8,13,13,10,1,0, - 24,24,0,24,24,0,24,24,129,219,126,60,24,9,8,16, - 10,0,2,198,0,204,0,216,0,255,128,255,128,216,0,204, - 0,198,0,9,8,16,10,0,2,49,128,25,128,13,128,255, - 128,255,128,13,128,25,128,49,128,9,8,16,10,0,2,24, - 0,40,0,79,128,128,128,128,128,79,128,40,0,24,0,8, - 13,13,10,1,0,24,36,66,129,231,36,36,36,36,36,36, - 36,60,9,8,16,10,0,2,12,0,10,0,249,0,128,128, - 128,128,249,0,10,0,12,0,8,13,13,10,1,0,60,36, - 36,36,36,36,36,36,231,129,66,36,24,8,13,13,10,1, - 0,24,36,66,129,231,36,36,60,0,60,36,36,60,8,13, - 13,10,1,0,24,36,66,129,231,36,36,36,36,36,231,129, - 255,8,13,13,10,1,0,24,36,126,129,231,36,36,36,36, - 36,231,129,255,9,14,28,10,0,0,8,0,28,0,42,0, - 73,0,136,128,235,128,42,0,42,0,42,0,42,0,42,0, - 235,128,136,128,255,128,8,13,13,10,1,0,24,36,90,231, - 66,231,36,36,36,36,36,36,60,8,13,13,10,1,0,24, - 36,90,231,66,231,36,36,36,36,231,129,255,9,8,16,10, - 0,2,236,0,170,0,185,0,128,128,128,128,185,0,170,0, - 236,0,8,8,8,10,1,2,255,128,188,168,184,164,130,129, - 8,8,8,10,1,2,129,65,37,29,21,61,1,255,8,13, - 13,10,1,0,24,36,66,231,36,36,36,36,36,231,66,36, - 24,9,6,12,10,0,3,38,0,83,0,255,128,255,128,83, - 0,38,0,10,13,26,10,0,0,51,0,55,128,63,192,59, - 64,51,0,51,0,51,0,51,0,51,0,183,0,255,0,123, - 0,51,0,9,16,32,10,0,254,6,0,3,0,255,128,255, - 128,3,0,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,8,16,10,0,2,22, - 0,54,0,102,0,255,128,255,128,102,0,54,0,22,0,9, - 8,16,10,0,2,52,0,54,0,51,0,255,128,255,128,51, - 0,54,0,52,0,10,6,12,10,0,3,45,0,109,128,255, - 192,255,192,109,128,45,0,9,6,12,10,0,3,42,0,106, - 0,255,128,255,128,106,0,42,0,9,6,12,10,0,3,42, - 0,43,0,255,128,255,128,43,0,42,0,9,6,12,10,0, - 3,85,0,213,128,255,128,255,128,213,128,85,0,9,8,16, - 10,0,2,16,0,48,0,112,0,223,128,223,128,112,0,48, - 0,16,0,9,8,16,10,0,2,4,0,6,0,7,0,253, - 128,253,128,7,0,6,0,4,0,10,8,16,10,0,2,18, - 0,51,0,115,128,222,192,222,192,115,128,51,0,18,0,10, - 10,20,10,0,6,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,10,3,6,10,0,252,255, - 192,255,192,255,192,10,5,10,10,0,252,255,192,255,192,255, - 192,255,192,255,192,10,8,16,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,10,10,20,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,12,24,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,15,30,10,0,252,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,10,17,34,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,10, - 20,40,10,0,252,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,9,20,40, - 10,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,7,20,20,10,0, - 252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, - 254,254,254,254,254,6,20,20,10,0,252,252,252,252,252,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 20,20,10,0,252,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,4,20,20,10,0,252,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,3,20,20,10,0,252,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,1,20,20, - 10,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,5,20,20,10,5,252,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,10,19,38,10,0,253,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,10,20,40, - 10,0,252,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,10,20,40,10,0, - 252,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,10,3,6,10,0,13,255, - 192,255,192,255,192,1,20,20,10,9,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,5, - 10,10,10,0,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,5,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,0,6,248,248,248,248,248,248,248,248,248,248,10, - 20,40,10,0,252,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,10,20,40, - 10,0,252,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,10,20,40,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,10,20,40,10,0,252,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,5,10,10,10,5,6,248,248,248, - 248,248,248,248,248,248,248,10,20,40,10,0,252,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,10,20,40,10,0,252,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,8,8,8,10,1,1,255,255,255,255,255,255,255, - 255,8,8,8,10,1,1,255,129,129,129,129,129,129,255,8, - 8,8,10,1,1,126,129,129,129,129,129,129,126,8,8,8, - 10,1,1,255,129,189,189,189,189,129,255,9,9,18,10,0, - 0,255,128,128,128,255,128,128,128,255,128,128,128,255,128,128, - 128,255,128,9,9,18,10,0,0,255,128,170,128,170,128,170, - 128,170,128,170,128,170,128,170,128,255,128,9,9,18,10,0, - 0,255,128,170,128,255,128,170,128,255,128,170,128,255,128,170, - 128,255,128,8,8,8,10,1,1,255,201,165,147,201,165,147, - 255,8,8,8,10,1,1,255,147,165,201,147,165,201,255,8, - 8,8,10,1,1,255,171,197,171,145,171,197,255,4,4,4, - 10,3,3,240,240,240,240,4,4,4,10,3,3,240,144,144, - 240,8,6,6,10,1,3,255,255,255,255,255,255,8,6,6, - 10,1,3,255,129,129,129,129,255,6,13,13,10,2,0,252, - 252,252,252,252,252,252,252,252,252,252,252,252,6,13,13,10, - 2,0,252,132,132,132,132,132,132,132,132,132,132,132,252,8, - 4,4,10,1,3,31,62,124,248,8,4,4,10,1,3,31, - 34,68,248,8,8,8,10,1,2,24,24,60,60,126,126,255, - 255,8,8,8,10,1,2,24,24,36,36,66,66,129,255,5, - 5,5,10,3,3,32,112,112,248,248,5,5,5,10,3,3, - 32,80,80,136,248,8,8,8,10,1,2,192,240,252,255,255, - 252,240,192,8,8,8,10,1,2,192,176,140,131,131,140,176, - 192,5,5,5,10,3,3,192,240,248,240,192,5,5,5,10, - 3,3,192,176,136,176,192,8,5,5,10,1,4,224,252,255, - 252,224,8,5,5,10,1,4,224,156,131,156,224,8,8,8, - 10,1,2,255,255,126,126,60,60,24,24,8,8,8,10,1, - 2,255,129,66,66,36,36,24,24,5,5,5,10,3,3,248, - 248,112,112,32,5,5,5,10,3,3,248,136,80,80,32,8, - 8,8,10,1,2,3,15,63,255,255,63,15,3,8,8,8, - 10,1,2,3,13,49,193,193,49,13,3,5,5,5,10,3, - 3,24,120,248,120,24,5,5,5,10,3,3,24,104,136,104, - 24,8,5,5,10,1,4,7,63,255,63,7,8,5,5,10, - 1,4,7,57,193,57,7,8,8,8,10,1,2,24,60,126, - 255,255,126,60,24,8,8,8,10,1,2,24,36,66,129,129, - 66,36,24,8,8,8,10,1,2,24,36,90,189,189,90,36, - 24,8,8,8,10,1,1,60,66,153,189,189,153,66,60,9, - 15,30,10,1,255,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,65,0,65,0,34,0,34,0,20,0,20, - 0,8,0,8,8,8,10,1,1,60,66,129,129,129,129,66, - 60,7,7,7,10,1,2,40,0,130,0,130,0,40,7,7, - 7,10,1,2,56,108,170,170,170,108,56,8,8,8,10,1, - 1,60,66,153,165,165,153,66,60,8,8,8,10,1,1,60, - 126,255,255,255,255,126,60,8,8,8,10,1,1,60,114,241, - 241,241,241,114,60,8,8,8,10,1,1,60,78,143,143,143, - 143,78,60,8,8,8,10,1,1,60,66,129,129,255,255,126, - 60,8,8,8,10,1,1,60,126,255,255,129,129,66,60,8, - 8,8,10,1,1,60,78,143,143,129,129,66,60,8,8,8, - 10,1,1,60,78,143,143,255,255,126,60,4,8,8,10,1, - 1,48,112,240,240,240,240,112,48,4,8,8,10,5,1,192, - 224,240,240,240,240,224,192,10,20,40,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,225,192,192,192,128,64,128, - 64,128,64,128,64,192,192,225,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,20,40,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,225,192,222,192,191,64,191,64,191, - 64,191,64,222,192,225,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,10,20,10,0,6,255,192,255,192,255,192,255, - 192,255,192,255,192,225,192,222,192,191,64,191,64,10,10,20, - 10,0,252,191,64,191,64,222,192,225,192,255,192,255,192,255, - 192,255,192,255,192,255,192,4,4,4,10,1,5,48,64,128, - 128,4,4,4,10,5,5,192,32,16,16,4,4,4,10,5, - 1,16,16,32,192,4,4,4,10,1,1,128,128,64,48,8, - 4,4,10,1,5,60,66,129,129,8,4,4,10,1,1,129, - 129,66,60,10,19,38,10,0,252,0,64,0,64,0,192,0, - 192,1,192,1,192,3,192,3,192,7,192,7,192,15,192,15, - 192,31,192,31,192,63,192,63,192,127,192,127,192,255,192,10, - 19,38,10,0,252,128,0,128,0,192,0,192,0,224,0,224, - 0,240,0,240,0,248,0,248,0,252,0,252,0,254,0,254, - 0,255,0,255,0,255,128,255,128,255,192,10,19,38,10,0, - 253,255,192,255,128,255,128,255,0,255,0,254,0,254,0,252, - 0,252,0,248,0,248,0,240,0,240,0,224,0,224,0,192, - 0,192,0,128,0,128,0,10,19,38,10,0,253,255,192,127, - 192,127,192,63,192,63,192,31,192,31,192,15,192,15,192,7, - 192,7,192,3,192,3,192,1,192,1,192,0,192,0,192,0, - 64,0,64,5,5,5,10,3,4,112,136,136,136,112,8,8, - 8,10,1,1,255,241,241,241,241,241,241,255,8,8,8,10, - 1,1,255,143,143,143,143,143,143,255,8,8,8,10,1,1, - 255,253,249,241,225,193,129,255,8,8,8,10,1,1,255,129, - 131,135,143,159,191,255,9,9,18,10,0,0,255,128,136,128, - 136,128,136,128,136,128,136,128,136,128,136,128,255,128,8,8, - 8,10,1,2,24,24,36,36,90,90,129,255,8,8,8,10, - 1,2,24,24,52,52,114,114,241,255,8,8,8,10,1,2, - 24,24,44,44,78,78,143,255,10,10,20,10,0,0,30,0, - 33,0,64,128,128,64,128,64,128,64,128,64,64,128,33,0, - 30,0,9,9,18,10,0,0,255,128,136,128,136,128,136,128, - 248,128,128,128,128,128,128,128,255,128,9,9,18,10,0,0, - 255,128,128,128,128,128,128,128,248,128,136,128,136,128,136,128, - 255,128,9,9,18,10,0,0,255,128,128,128,128,128,128,128, - 143,128,136,128,136,128,136,128,255,128,9,9,18,10,0,0, - 255,128,136,128,136,128,136,128,143,128,128,128,128,128,128,128, - 255,128,9,9,18,10,0,0,62,0,73,0,136,128,136,128, - 248,128,128,128,128,128,65,0,62,0,9,9,18,10,0,0, - 62,0,65,0,128,128,128,128,248,128,136,128,136,128,73,0, - 62,0,9,9,18,10,0,0,62,0,65,0,128,128,128,128, - 143,128,136,128,136,128,73,0,62,0,9,9,18,10,0,0, - 62,0,73,0,136,128,136,128,143,128,128,128,128,128,65,0, - 62,0,6,6,6,10,2,2,252,136,144,160,192,128,6,6, - 6,10,2,2,252,68,36,20,12,4,6,6,6,10,2,2, - 128,192,160,144,136,252,6,6,6,10,2,2,252,132,132,132, - 132,252,6,6,6,10,2,2,252,252,252,252,252,252,4,4, - 4,10,3,3,240,144,144,240,4,4,4,10,3,3,240,240, - 240,240,6,6,6,10,2,2,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 8, '1' Height: 4 - Calculated Max Values w= 9 h=15 x= 3 y= 4 dx=10 dy= 0 ascent=14 len=30 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =14 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_75r[693] U8G_FONT_SECTION("u8g_font_10x20_75r") = { - 0,10,20,0,252,8,1,219,0,0,32,79,0,14,255,9, - 0,8,8,8,10,1,1,255,255,255,255,255,255,255,255,8, - 8,8,10,1,1,255,129,129,129,129,129,129,255,8,8,8, - 10,1,1,126,129,129,129,129,129,129,126,8,8,8,10,1, - 1,255,129,189,189,189,189,129,255,9,9,18,10,0,0,255, - 128,128,128,255,128,128,128,255,128,128,128,255,128,128,128,255, - 128,9,9,18,10,0,0,255,128,170,128,170,128,170,128,170, - 128,170,128,170,128,170,128,255,128,9,9,18,10,0,0,255, - 128,170,128,255,128,170,128,255,128,170,128,255,128,170,128,255, - 128,8,8,8,10,1,1,255,201,165,147,201,165,147,255,8, - 8,8,10,1,1,255,147,165,201,147,165,201,255,8,8,8, - 10,1,1,255,171,197,171,145,171,197,255,4,4,4,10,3, - 3,240,240,240,240,4,4,4,10,3,3,240,144,144,240,8, - 6,6,10,1,3,255,255,255,255,255,255,8,6,6,10,1, - 3,255,129,129,129,129,255,6,13,13,10,2,0,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,10,2,0, - 252,132,132,132,132,132,132,132,132,132,132,132,252,8,4,4, - 10,1,3,31,62,124,248,8,4,4,10,1,3,31,34,68, - 248,8,8,8,10,1,2,24,24,60,60,126,126,255,255,8, - 8,8,10,1,2,24,24,36,36,66,66,129,255,5,5,5, - 10,3,3,32,112,112,248,248,5,5,5,10,3,3,32,80, - 80,136,248,8,8,8,10,1,2,192,240,252,255,255,252,240, - 192,8,8,8,10,1,2,192,176,140,131,131,140,176,192,5, - 5,5,10,3,3,192,240,248,240,192,5,5,5,10,3,3, - 192,176,136,176,192,8,5,5,10,1,4,224,252,255,252,224, - 8,5,5,10,1,4,224,156,131,156,224,8,8,8,10,1, - 2,255,255,126,126,60,60,24,24,8,8,8,10,1,2,255, - 129,66,66,36,36,24,24,5,5,5,10,3,3,248,248,112, - 112,32,5,5,5,10,3,3,248,136,80,80,32,8,8,8, - 10,1,2,3,15,63,255,255,63,15,3,8,8,8,10,1, - 2,3,13,49,193,193,49,13,3,5,5,5,10,3,3,24, - 120,248,120,24,5,5,5,10,3,3,24,104,136,104,24,8, - 5,5,10,1,4,7,63,255,63,7,8,5,5,10,1,4, - 7,57,193,57,7,8,8,8,10,1,2,24,60,126,255,255, - 126,60,24,8,8,8,10,1,2,24,36,66,129,129,66,36, - 24,8,8,8,10,1,2,24,36,90,189,189,90,36,24,8, - 8,8,10,1,1,60,66,153,189,189,153,66,60,9,15,30, - 10,1,255,8,0,20,0,20,0,34,0,34,0,65,0,65, - 0,128,128,65,0,65,0,34,0,34,0,20,0,20,0,8, - 0,8,8,8,10,1,1,60,66,129,129,129,129,66,60,7, - 7,7,10,1,2,40,0,130,0,130,0,40,7,7,7,10, - 1,2,56,108,170,170,170,108,56,8,8,8,10,1,1,60, - 66,153,165,165,153,66,60,8,8,8,10,1,1,60,126,255, - 255,255,255,126,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 4 y= 5 dx=10 dy= 0 ascent=13 len=24 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[2638] U8G_FONT_SECTION("u8g_font_10x20_78_79") = { - 0,10,20,0,252,9,1,212,2,205,32,255,0,13,0,11, - 0,9,9,18,10,0,0,54,0,28,0,136,128,201,128,119, - 0,201,128,136,128,28,0,54,0,9,9,18,10,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,10,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,127,0,255, - 128,127,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,10,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,10,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,10,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,127,0,119,0,99,0,255,255,255,255, - 255,8,9,9,10,0,0,24,219,255,126,24,126,255,219,24, - 8,9,9,10,0,0,24,219,255,102,36,102,255,219,24,9, - 9,18,10,0,0,8,0,73,0,42,0,28,0,255,128,28, - 0,42,0,73,0,8,0,9,9,18,10,0,0,8,0,73, - 0,62,0,62,0,255,128,62,0,62,0,73,0,8,0,7, - 7,7,10,1,0,16,146,124,56,124,146,16,9,9,18,10, - 0,0,34,0,20,0,148,128,127,0,28,0,127,0,148,128, - 20,0,34,0,255,255,255,255,9,11,22,10,0,0,28,0, - 28,0,201,128,201,128,62,0,28,0,62,0,201,128,201,128, - 28,0,28,0,9,11,22,10,0,0,28,0,28,0,201,128, - 201,128,62,0,28,0,62,0,201,128,201,128,28,0,28,0, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 9,8,16,10,0,1,62,0,67,0,129,128,129,128,129,128, - 129,128,67,0,62,0,255,9,9,18,10,0,0,254,0,130, - 0,131,128,131,128,131,128,131,128,255,128,63,128,63,128,9, - 9,18,10,0,0,63,128,63,128,255,128,131,128,131,128,131, - 128,131,128,130,0,254,0,8,8,8,10,0,0,254,131,131, - 131,131,131,255,127,8,8,8,10,0,0,127,255,131,131,131, - 131,131,254,255,255,255,9,9,18,10,0,0,8,0,28,0, - 28,0,107,0,247,128,107,0,28,0,28,0,8,0,255,1, - 10,10,10,4,0,128,128,128,128,128,128,128,128,128,128,2, - 10,10,10,3,0,192,192,192,192,192,192,192,192,192,192,3, - 10,10,10,3,0,224,224,224,224,224,224,224,224,224,224,4, - 6,6,10,3,5,112,128,224,240,240,96,4,6,6,10,3, - 5,96,240,240,112,16,224,9,6,12,10,0,5,115,128,132, - 0,231,0,247,128,247,128,99,0,9,6,12,10,0,5,99, - 0,247,128,247,128,115,128,16,128,231,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,227,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,237,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,241,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,152,128, - 136,128,136,128,156,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,152,128,132,128,132,128,136,128,156,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,152,128,132,128, - 136,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,152,128,168,128,188,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,144,128, - 152,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,140,128,144,128,152,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,132,128, - 136,128,136,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,148,128,136,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,148,128, - 140,128,132,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,164,128,170,128,170,128,170,128,164,128,128,128, - 127,0,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,239,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,251,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,7,8,8,10,1,1,48,24,12,254,254,12,24,48, - 255,255,255,7,5,5,10,1,1,224,250,62,14,30,8,7, - 7,10,1,1,8,12,230,255,230,12,8,7,5,5,10,1, - 1,30,14,62,250,224,9,7,14,10,0,0,48,0,28,0, - 31,0,255,128,31,0,28,0,48,0,9,9,18,10,0,0, - 28,0,30,0,15,0,255,128,255,128,255,128,15,0,30,0, - 28,0,9,5,10,10,0,1,2,0,3,0,255,128,3,0, - 2,0,9,7,14,10,0,0,4,0,6,0,255,0,255,128, - 255,0,6,0,4,0,9,5,10,10,0,1,2,0,183,0, - 183,128,183,0,2,0,9,5,10,10,0,1,2,0,171,0, - 171,128,171,0,2,0,9,5,10,10,0,1,2,0,255,0, - 255,128,255,0,2,0,9,8,16,10,0,1,128,0,112,0, - 78,0,33,128,31,128,62,0,112,0,128,0,9,8,16,10, - 0,1,128,0,112,0,62,0,31,128,33,128,78,0,112,0, - 128,0,9,8,16,10,0,1,128,0,112,0,62,0,31,128, - 31,128,62,0,112,0,128,0,9,7,14,10,0,0,132,0, - 134,0,255,0,255,128,127,0,6,0,4,0,9,7,14,10, - 0,0,4,0,6,0,127,0,255,128,255,0,134,0,132,0, - 6,9,9,10,2,0,16,16,248,248,252,248,248,16,16,8, - 9,9,10,0,1,4,4,254,254,255,254,254,4,4,9,9, - 18,10,0,0,24,0,28,0,22,0,243,0,129,128,243,0, - 22,0,28,0,24,0,9,9,18,10,0,0,24,0,28,0, - 26,0,249,0,192,128,249,0,26,0,28,0,24,0,9,9, - 18,10,0,0,0,128,1,128,62,128,64,128,129,128,243,0, - 238,0,60,0,56,0,9,9,18,10,0,0,56,0,60,0, - 238,0,243,0,129,128,64,128,62,128,1,128,0,128,8,9, - 9,10,0,1,16,24,20,242,129,243,118,28,24,8,9,9, - 10,0,1,24,28,118,243,129,242,20,24,16,9,8,16,10, - 0,1,4,0,250,0,129,0,64,128,129,128,251,0,6,0, - 4,0,255,9,8,16,10,0,2,4,0,6,0,251,0,129, - 128,64,128,129,0,250,0,4,0,9,9,18,10,0,1,28, - 0,127,0,251,128,1,128,0,128,1,128,251,128,127,0,28, - 0,9,5,10,10,0,3,210,0,43,0,127,128,43,0,210, - 0,9,9,18,10,0,0,16,0,56,0,92,0,236,0,116, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,7,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,116,0,236,0,92,0,56,0,16, - 0,9,9,18,10,0,0,16,0,24,0,28,0,252,0,124, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,127,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,124,0,252,0,28,0,24,0,16, - 0,255,255,255,255,9,7,14,10,0,1,20,0,10,0,253, - 0,0,128,253,0,10,0,20,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,9, - 12,24,10,0,0,224,128,49,128,49,128,42,128,42,128,36, - 128,36,128,42,128,42,128,49,128,49,128,224,128,9,12,24, - 10,0,0,131,128,198,0,198,0,170,0,170,0,146,0,146, - 0,170,0,170,0,198,0,198,0,131,128,9,12,24,10,0, - 0,193,128,99,0,99,0,85,0,85,0,73,0,73,0,85, - 0,85,0,99,0,99,0,193,128,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,8,13,13,10,1,0,255,216,216, - 216,216,216,216,216,216,216,216,216,255,8,13,13,10,1,0, - 255,27,27,27,27,27,27,27,27,27,27,27,255,4,13,13, - 10,4,0,16,48,32,96,64,192,128,192,64,96,32,48,16, - 4,13,13,10,4,0,128,192,64,96,32,48,16,48,32,96, - 64,192,128,7,13,13,10,1,0,18,54,36,108,72,216,144, - 216,72,108,36,54,18,7,13,13,10,2,0,144,216,72,108, - 36,54,18,54,36,108,72,216,144,255,255,255,255,255,255,255, - 255,255,10,8,16,10,0,2,24,0,48,0,96,0,255,192, - 255,192,96,0,48,0,24,0,10,8,16,10,0,2,6,0, - 3,0,1,128,255,192,255,192,1,128,3,0,6,0,10,8, - 16,10,0,2,18,0,51,0,97,128,255,192,255,192,97,128, - 51,0,18,0,10,9,18,10,0,2,12,0,24,0,63,192, - 127,192,192,0,127,192,63,192,24,0,12,0,10,9,18,10, - 0,2,12,0,6,0,255,0,255,128,0,192,255,128,255,0, - 6,0,12,0,10,9,18,10,0,2,18,0,51,0,127,128, - 255,192,128,192,255,192,127,128,51,0,18,0,10,8,16,10, - 0,2,24,192,48,192,96,192,255,192,255,192,96,192,48,192, - 24,192,10,8,16,10,0,2,198,0,195,0,193,128,255,192, - 255,192,193,128,195,0,198,0,10,9,18,10,0,2,12,64, - 24,64,63,192,127,192,192,64,127,192,63,192,24,64,12,64, - 10,9,18,10,0,2,140,0,134,0,255,0,255,128,128,192, - 255,128,255,0,134,0,140,0,10,8,16,10,0,2,6,0, - 3,0,171,128,170,192,85,192,85,128,3,0,6,0}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20[3453] U8G_FONT_SECTION("u8g_font_10x20") = { - 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, - 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, - 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, - 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, - 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, - 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, - 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, - 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, - 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, - 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, - 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, - 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, - 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, - 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, - 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, - 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, - 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, - 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, - 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, - 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, - 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, - 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, - 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, - 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, - 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, - 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, - 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, - 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, - 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, - 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, - 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, - 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, - 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, - 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, - 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, - 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, - 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, - 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, - 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, - 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, - 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, - 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, - 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, - 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, - 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, - 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, - 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, - 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, - 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, - 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, - 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, - 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, - 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, - 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, - 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, - 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, - 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, - 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, - 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, - 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, - 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, - 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, - 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, - 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, - 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, - 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, - 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, - 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, - 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, - 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, - 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, - 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, - 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, - 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, - 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, - 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, - 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, - 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, - 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, - 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, - 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, - 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, - 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, - 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, - 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, - 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, - 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, - 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, - 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, - 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, - 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, - 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, - 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, - 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, - 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, - 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, - 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, - 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, - 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, - 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, - 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, - 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, - 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, - 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, - 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, - 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, - 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, - 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, - 0,195,195,195,195,195,195,103,59,3,195,102,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=15 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20r[1667] U8G_FONT_SECTION("u8g_font_10x20r") = { - 0,10,20,0,252,13,2,74,4,153,32,127,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6[1500] U8G_FONT_SECTION("u8g_font_4x6") = { - 1,4,6,0,255,5,1,3,1,250,32,255,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0, - 64,18,21,69,128,0,128,128,128,2,53,69,64,224,128,224, - 64,2,53,69,32,64,96,64,160,2,68,68,144,96,96,144, - 2,53,69,160,64,224,64,64,18,21,69,128,128,0,128,128, - 1,54,70,96,192,160,96,32,192,6,49,65,160,1,70,70, - 96,144,208,208,144,96,2,53,69,96,160,96,0,224,3,67, - 67,80,160,80,3,50,66,224,32,4,49,65,224,3,68,68, - 96,240,208,96,6,49,65,224,4,51,67,64,160,64,2,53, - 69,64,224,64,0,224,3,36,68,192,64,128,192,2,37,69, - 192,64,128,64,128,21,34,66,64,128,1,53,69,160,160,160, - 192,128,2,69,69,112,208,208,80,80,20,17,65,128,18,34, - 66,64,128,3,36,68,64,192,64,64,2,53,69,64,160,64, - 0,224,3,67,67,160,80,160,1,70,70,128,128,128,80,112, - 16,1,70,70,128,128,176,16,32,48,1,70,70,192,64,128, - 80,176,16,2,53,69,64,0,64,128,96,2,53,69,128,64, - 160,224,160,2,53,69,32,64,160,224,160,2,53,69,192,64, - 160,224,160,2,53,69,96,192,160,224,160,2,53,69,160,64, - 160,224,160,2,53,69,64,64,160,224,160,2,69,69,112,160, - 240,160,176,1,54,70,64,160,128,160,64,128,2,53,69,128, - 224,192,128,224,2,53,69,32,224,192,128,224,2,53,69,96, - 224,192,128,224,2,53,69,160,224,192,128,224,2,53,69,128, - 224,64,64,224,2,53,69,32,224,64,64,224,2,53,69,64, - 224,64,64,224,2,53,69,160,64,64,64,224,2,69,69,224, - 80,208,80,224,2,69,69,80,160,224,224,160,2,53,69,128, - 64,160,160,64,2,53,69,32,64,160,160,64,2,53,69,64, - 64,160,160,64,2,69,69,112,224,160,160,64,2,53,69,160, - 64,160,160,64,3,51,67,160,64,160,2,53,69,96,160,224, - 160,192,2,53,69,128,64,160,160,224,2,53,69,32,64,160, - 160,224,2,53,69,64,0,160,160,224,2,53,69,160,0,160, - 160,224,2,53,69,32,0,160,64,64,2,53,69,128,192,160, - 192,128,1,54,70,64,160,192,160,224,128,2,53,69,128,64, - 96,160,96,2,53,69,32,64,96,160,96,2,53,69,96,0, - 96,160,96,2,69,69,80,160,96,160,96,2,53,69,160,0, - 96,160,96,2,53,69,64,0,96,160,96,2,68,68,112,176, - 160,112,1,53,69,64,160,128,96,64,2,53,69,128,64,160, - 192,96,2,53,69,32,64,160,192,96,2,53,69,192,64,160, - 192,96,2,53,69,160,64,160,192,96,2,53,69,128,64,64, - 64,224,2,53,69,32,192,64,64,224,2,53,69,64,160,64, - 64,224,2,53,69,160,0,192,64,224,2,53,69,160,64,96, - 160,64,2,69,69,80,160,192,160,160,2,53,69,128,64,64, - 160,64,2,53,69,32,64,64,160,64,2,53,69,64,0,64, - 160,64,2,53,69,224,0,64,160,64,2,53,69,160,0,64, - 160,64,2,53,69,64,0,224,0,64,2,52,68,96,160,160, - 192,2,53,69,128,64,160,160,96,2,53,69,32,64,160,160, - 96,2,53,69,64,0,160,160,96,2,53,69,160,0,160,160, - 96,1,54,70,32,64,160,224,32,192,1,54,70,128,128,192, - 160,192,128,1,54,70,160,0,160,224,32,192}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6r[734] U8G_FONT_SECTION("u8g_font_4x6r") = { - 1,4,6,0,255,5,1,3,1,250,32,127,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7[1624] U8G_FONT_SECTION("u8g_font_5x7") = { - 1,5,7,0,255,6,1,21,2,39,32,255,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,8,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,69,85,48,64,224, - 64,176,2,85,85,136,112,80,112,136,18,54,86,160,160,64, - 224,64,64,34,21,85,128,128,0,128,128,17,55,87,96,128, - 192,160,96,32,192,23,49,81,160,1,87,87,112,136,168,200, - 168,136,112,5,51,83,96,160,96,3,83,83,72,144,72,3, - 66,82,240,16,20,49,81,224,1,87,87,112,136,232,200,200, - 136,112,7,65,81,240,21,51,83,64,160,64,2,86,86,32, - 32,248,32,32,248,20,36,84,192,64,128,192,20,36,84,192, - 192,64,192,22,34,82,64,128,1,69,85,144,144,144,224,128, - 2,70,86,112,208,208,80,80,80,20,34,82,192,192,17,34, - 82,64,128,20,52,84,64,192,64,224,5,51,83,64,160,64, - 3,83,83,144,72,144,1,71,87,128,128,128,144,48,112,16, - 1,71,87,128,128,128,176,16,32,48,1,71,87,192,192,64, - 208,48,112,16,18,54,86,64,0,64,128,160,64,2,70,86, - 96,144,144,240,144,144,2,70,86,96,144,144,240,144,144,2, - 70,86,96,144,144,240,144,144,2,70,86,96,144,144,240,144, - 144,2,70,86,144,96,144,240,144,144,2,70,86,96,96,144, - 240,144,144,2,70,86,112,160,176,224,160,176,1,71,87,96, - 144,128,128,144,96,64,2,70,86,240,128,224,128,128,240,2, - 70,86,240,128,224,128,128,240,2,70,86,240,128,224,128,128, - 240,2,70,86,240,128,224,128,128,240,18,54,86,224,64,64, - 64,64,224,18,54,86,224,64,64,64,64,224,18,54,86,224, - 64,64,64,64,224,18,54,86,224,64,64,64,64,224,2,70, - 86,224,80,208,80,80,224,2,70,86,176,144,208,176,176,144, - 2,70,86,96,144,144,144,144,96,2,70,86,96,144,144,144, - 144,96,2,70,86,96,144,144,144,144,96,2,70,86,96,144, - 144,144,144,96,2,70,86,144,96,144,144,144,96,2,68,84, - 144,96,96,144,2,70,86,112,176,176,208,208,224,2,70,86, - 144,144,144,144,144,96,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,144,96,2,70,86,144,0,144,144,144, - 96,18,54,86,160,160,160,64,64,64,2,70,86,128,224,144, - 224,128,128,2,70,86,96,144,160,144,144,160,2,70,86,64, - 32,112,144,176,80,2,70,86,32,64,112,144,176,80,2,70, - 86,32,80,112,144,176,80,2,70,86,80,160,112,144,176,80, - 2,70,86,80,0,112,144,176,80,2,70,86,96,96,112,144, - 176,80,2,68,84,112,176,160,112,17,53,85,96,128,128,96, - 64,2,70,86,64,32,96,176,192,96,2,70,86,32,64,96, - 176,192,96,2,70,86,64,160,96,176,192,96,2,70,86,160, - 0,96,176,192,96,18,54,86,128,64,192,64,64,224,18,54, - 86,64,128,192,64,64,224,18,54,86,64,160,192,64,64,224, - 18,54,86,160,0,192,64,64,224,2,70,86,64,48,96,144, - 144,96,2,70,86,80,160,224,144,144,144,2,70,86,64,32, - 96,144,144,96,2,70,86,32,64,96,144,144,96,2,70,86, - 96,0,96,144,144,96,2,70,86,80,160,96,144,144,96,2, - 70,86,80,0,96,144,144,96,2,69,85,96,0,240,0,96, - 2,68,84,112,176,208,224,2,70,86,64,32,144,144,144,112, - 2,70,86,32,64,144,144,144,112,2,70,86,96,0,144,144, - 144,112,2,70,86,80,0,144,144,144,112,1,71,87,32,64, - 144,144,80,32,64,1,70,86,128,224,144,144,224,128,1,71, - 87,80,0,144,144,80,32,64}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7r[789] U8G_FONT_SECTION("u8g_font_5x7r") = { - 1,5,7,0,255,6,1,21,2,39,32,127,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_FONT_SECTION("u8g_font_5x8") = { - 1,5,8,0,255,6,1,33,2,53,32,255,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,9,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,70,86,32,80,224, - 64,80,160,2,85,85,136,112,80,112,136,2,86,86,136,80, - 248,32,248,32,34,23,87,128,128,128,0,128,128,128,2,71, - 87,112,128,224,144,112,16,224,23,49,81,160,2,86,86,112, - 168,200,200,168,112,20,53,85,96,160,96,0,224,3,67,83, - 80,160,80,18,51,83,224,32,32,20,49,81,224,2,86,86, - 112,232,216,232,216,112,23,49,81,224,21,51,83,64,160,64, - 18,53,85,64,224,64,0,224,20,53,85,64,160,32,64,224, - 20,53,85,192,32,192,32,192,22,34,82,64,128,1,69,85, - 144,144,144,224,128,2,86,86,120,232,232,104,40,40,36,17, - 81,128,17,34,82,64,128,20,53,85,64,192,64,64,224,20, - 53,85,64,160,64,0,224,3,67,83,160,80,160,2,71,87, - 128,128,128,160,96,240,32,2,71,87,128,128,160,208,16,32, - 112,2,71,87,128,64,128,96,160,240,32,18,54,86,64,0, - 64,128,160,64,2,71,87,64,32,96,144,240,144,144,2,71, - 87,32,64,96,144,240,144,144,2,71,87,96,144,96,144,240, - 144,144,2,71,87,80,160,96,144,240,144,144,2,71,87,144, - 0,96,144,240,144,144,2,71,87,96,144,96,144,240,144,144, - 2,70,86,112,160,160,240,160,176,1,71,87,96,144,128,128, - 144,96,64,2,71,87,64,32,240,128,224,128,240,2,71,87, - 32,64,240,128,224,128,240,2,71,87,96,144,240,128,224,128, - 240,2,71,87,144,0,240,128,224,128,240,18,55,87,128,64, - 224,64,64,64,224,18,55,87,32,64,224,64,64,64,224,18, - 55,87,64,160,224,64,64,64,224,18,55,87,160,0,224,64, - 64,64,224,2,86,86,112,72,232,72,72,112,2,71,87,80, - 160,144,208,176,144,144,2,71,87,64,32,96,144,144,144,96, - 2,71,87,32,64,96,144,144,144,96,2,71,87,96,144,96, - 144,144,144,96,2,71,87,80,160,96,144,144,144,96,2,71, - 87,144,0,96,144,144,144,96,18,51,83,160,64,160,2,70, - 86,112,176,176,208,208,224,2,71,87,64,32,144,144,144,144, - 96,2,71,87,32,64,144,144,144,144,96,2,71,87,96,144, - 144,144,144,144,96,2,71,87,144,0,144,144,144,144,96,2, - 87,87,16,32,136,80,32,32,32,2,70,86,128,224,144,144, - 224,128,2,70,86,96,144,160,160,144,160,2,71,87,64,32, - 0,112,144,144,112,2,71,87,32,64,0,112,144,144,112,2, - 71,87,32,80,0,112,144,144,112,2,71,87,80,160,0,112, - 144,144,112,2,70,86,80,0,112,144,144,112,2,71,87,96, - 144,96,112,144,144,112,2,84,84,240,104,176,120,17,53,85, - 96,128,128,96,64,2,71,87,64,32,0,96,176,192,96,2, - 71,87,32,64,0,96,176,192,96,2,71,87,96,144,0,96, - 176,192,96,2,70,86,80,0,96,176,192,96,18,55,87,128, - 64,0,192,64,64,224,18,55,87,32,64,0,192,64,64,224, - 18,55,87,64,160,0,192,64,64,224,18,54,86,160,0,192, - 64,64,224,2,71,87,160,64,160,16,112,144,96,2,71,87, - 80,160,0,224,144,144,144,2,71,87,64,32,0,96,144,144, - 96,2,71,87,32,64,0,96,144,144,96,2,71,87,96,144, - 0,96,144,144,96,2,71,87,80,160,0,96,144,144,96,2, - 70,86,144,0,96,144,144,96,18,53,85,64,0,224,0,64, - 2,68,84,112,176,208,224,2,71,87,64,32,0,144,144,144, - 112,2,71,87,32,64,0,144,144,144,112,2,71,87,96,144, - 0,144,144,144,112,2,70,86,144,0,144,144,144,112,1,72, - 88,32,64,0,144,144,112,144,96,1,71,87,128,128,224,144, - 224,128,128,1,71,87,144,0,144,144,112,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8r[805] U8G_FONT_SECTION("u8g_font_5x8r") = { - 1,5,8,0,255,6,1,33,2,53,32,127,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10[1866] U8G_FONT_SECTION("u8g_font_6x10") = { - 1,6,10,0,254,7,1,54,2,104,32,255,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,0,96,34,23,103,128, - 0,128,128,128,128,128,1,87,103,32,120,160,160,160,120,32, - 2,87,103,48,72,64,224,64,72,176,2,85,101,136,112,80, - 112,136,1,88,104,136,136,80,32,248,32,32,32,34,23,103, - 128,128,128,0,128,128,128,1,88,104,112,128,224,144,72,56, - 8,112,25,49,97,160,2,87,103,112,136,168,200,168,136,112, - 19,70,102,112,144,176,80,0,240,2,101,101,36,72,144,72, - 36,20,66,98,240,16,21,65,97,240,2,87,103,112,136,232, - 200,200,136,112,9,81,97,248,22,51,99,64,160,64,2,86, - 102,32,32,248,32,32,248,21,69,101,96,144,32,64,240,21, - 69,101,224,16,96,16,224,40,34,98,64,128,1,86,102,136, - 136,136,200,176,128,2,87,103,120,232,232,104,40,40,40,37, - 17,97,128,32,34,98,64,128,21,53,101,64,192,64,64,224, - 19,70,102,96,144,144,96,0,240,2,101,101,144,72,36,72, - 144,1,105,105,64,192,64,64,228,12,20,60,4,1,105,105, - 64,192,64,64,232,20,4,8,28,1,89,105,192,32,64,32, - 200,24,40,120,8,2,87,103,32,0,32,32,64,136,112,2, - 88,104,64,32,112,136,136,248,136,136,2,88,104,16,32,112, - 136,136,248,136,136,2,88,104,32,80,112,136,136,248,136,136, - 2,88,104,72,176,112,136,136,248,136,136,2,88,104,80,0, - 112,136,136,248,136,136,2,88,104,32,80,112,136,136,248,136, - 136,2,103,103,60,80,144,156,240,144,156,0,89,105,112,136, - 128,128,128,136,112,32,64,2,88,104,64,248,128,128,240,128, - 128,248,2,88,104,16,248,128,128,240,128,128,248,2,88,104, - 32,248,128,128,240,128,128,248,2,88,104,80,248,128,128,240, - 128,128,248,18,56,104,128,64,224,64,64,64,64,224,18,56, - 104,32,64,224,64,64,64,64,224,18,56,104,64,160,224,64, - 64,64,64,224,18,56,104,160,0,224,64,64,64,64,224,2, - 87,103,240,72,72,232,72,72,240,2,88,104,40,80,136,200, - 168,152,136,136,2,88,104,64,32,112,136,136,136,136,112,2, - 88,104,16,32,112,136,136,136,136,112,2,88,104,32,80,112, - 136,136,136,136,112,2,88,104,40,80,112,136,136,136,136,112, - 2,88,104,80,0,112,136,136,136,136,112,2,85,101,136,80, - 32,80,136,2,87,103,112,152,152,168,200,200,112,2,88,104, - 64,32,136,136,136,136,136,112,2,88,104,16,32,136,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,88, - 104,80,0,136,136,136,136,136,112,2,88,104,16,32,136,136, - 80,32,32,32,2,87,103,128,240,136,240,128,128,128,2,87, - 103,112,136,144,160,144,136,176,2,88,104,64,32,0,112,8, - 120,136,120,2,88,104,16,32,0,112,8,120,136,120,2,88, - 104,32,80,0,112,8,120,136,120,2,88,104,40,80,0,112, - 8,120,136,120,2,87,103,80,0,112,8,120,136,120,2,88, - 104,32,80,32,112,8,120,136,120,2,101,101,120,20,124,144, - 124,0,87,103,112,136,128,136,112,32,64,2,88,104,64,32, - 0,112,136,248,128,112,2,88,104,16,32,0,112,136,248,128, - 112,2,88,104,32,80,0,112,136,248,128,112,2,87,103,80, - 0,112,136,248,128,112,18,56,104,128,64,0,192,64,64,64, - 224,18,56,104,64,128,0,192,64,64,64,224,18,56,104,64, - 160,0,192,64,64,64,224,18,55,103,160,0,192,64,64,64, - 224,2,87,103,192,48,112,136,136,136,112,2,88,104,40,80, - 0,176,200,136,136,136,2,88,104,64,32,0,112,136,136,136, - 112,2,88,104,16,32,0,112,136,136,136,112,2,88,104,32, - 80,0,112,136,136,136,112,2,88,104,40,80,0,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,120,152,168,200,240,2,88,104,64, - 32,0,136,136,136,152,104,2,88,104,16,32,0,136,136,136, - 152,104,2,88,104,32,80,0,136,136,136,152,104,2,87,103, - 80,0,136,136,136,152,104,0,89,105,16,32,136,136,152,104, - 8,136,112,0,88,104,128,240,136,136,136,240,128,128,0,89, - 105,80,0,136,136,152,104,8,136,112}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10r[889] U8G_FONT_SECTION("u8g_font_6x10r") = { - 1,6,10,0,254,7,1,54,2,104,32,127,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 3, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 5 y= 8 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[2382] U8G_FONT_SECTION("u8g_font_6x12_67_75") = { - 1,6,12,0,254,3,2,41,3,99,0,255,0,10,254,8, - 0,2,87,103,168,0,136,0,136,0,168,2,87,103,240,136, - 232,168,232,136,240,2,87,103,112,168,248,168,248,168,112,2, - 87,103,112,136,8,8,8,136,112,18,69,101,96,144,16,144, - 96,1,88,104,112,136,128,128,136,120,8,8,2,87,103,32, - 32,32,32,168,112,32,2,103,103,248,252,252,156,252,252,248, - 2,87,103,112,248,248,168,248,248,112,255,255,255,255,255,255, - 255,3,85,101,32,64,248,64,32,2,87,103,32,112,168,32, - 32,32,32,3,85,101,32,16,248,16,32,2,87,103,32,32, - 32,32,168,112,32,4,83,99,80,248,80,2,87,103,32,112, - 168,32,168,112,32,2,89,105,192,240,224,160,32,16,16,8, - 8,2,89,105,24,120,56,40,32,64,64,128,128,2,89,105, - 128,128,64,64,32,40,56,120,24,2,89,105,8,8,16,16, - 32,160,224,240,192,3,101,101,40,72,252,80,48,3,101,101, - 48,40,252,72,80,4,99,99,192,216,100,4,99,99,12,108, - 152,3,101,101,40,80,252,80,40,2,88,104,32,112,168,112, - 168,32,32,32,3,101,101,80,40,252,40,80,2,88,104,32, - 32,32,168,112,168,112,32,3,101,101,36,72,240,72,36,3, - 101,101,144,72,60,72,144,3,85,101,40,72,248,72,40,2, - 87,103,32,112,168,32,32,32,248,3,85,101,160,144,248,144, - 160,2,87,103,248,32,32,32,168,112,32,2,87,103,32,112, - 168,32,168,112,248,3,101,101,40,68,248,64,32,3,101,101, - 80,136,124,8,16,3,101,101,32,76,252,72,40,3,101,101, - 16,200,252,72,80,3,100,100,72,220,236,72,3,101,101,8, - 88,252,104,64,2,87,103,128,144,176,208,144,56,16,2,88, - 104,32,64,248,72,40,8,8,8,2,88,104,32,16,248,144, - 160,128,128,128,2,88,104,8,8,8,40,72,248,64,32,2, - 87,103,128,128,160,144,248,16,32,3,84,100,240,16,56,16, - 3,85,101,8,8,72,248,64,3,85,101,48,72,72,232,72, - 3,85,101,96,144,144,184,16,2,88,104,248,128,224,192,160, - 32,16,16,2,89,105,160,192,248,192,168,24,248,24,40,2, - 86,102,56,48,168,136,136,112,2,86,102,224,96,168,136,136, - 112,5,83,99,32,64,248,3,83,99,248,64,32,34,56,104, - 128,192,160,128,128,128,128,128,2,56,104,32,96,160,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 56,104,128,128,128,128,128,160,192,128,2,56,104,32,32,32, - 32,32,160,96,32,2,89,105,32,16,248,16,32,64,248,64, - 32,2,88,104,80,240,80,80,80,80,120,80,2,89,105,32, - 64,248,64,32,16,248,16,32,2,89,105,32,64,248,64,32, - 64,248,64,32,2,88,104,80,248,80,80,80,80,80,80,2, - 89,105,32,16,248,16,32,16,248,16,32,2,88,104,80,80, - 80,80,80,80,248,80,2,87,103,32,64,248,0,248,16,32, - 2,87,103,32,16,248,0,248,64,32,2,103,103,20,40,124, - 144,124,32,80,2,103,103,8,88,252,164,252,104,64,2,103, - 103,160,80,248,36,248,16,40,3,85,101,32,120,128,120,32, - 2,87,103,32,80,216,80,80,80,80,3,85,101,32,240,8, - 240,32,2,87,103,80,80,80,80,216,80,32,3,101,101,72, - 252,132,252,72,2,88,104,32,80,216,80,80,216,80,32,2, - 102,102,248,160,208,168,148,8,2,102,102,124,20,44,84,164, - 64,2,102,102,64,164,84,44,20,124,2,102,102,8,148,168, - 208,160,248,2,103,103,16,60,64,252,64,60,16,2,103,103, - 32,240,8,252,8,240,32,3,100,100,64,232,212,64,3,100, - 100,8,92,172,8,2,88,104,32,112,168,32,112,32,112,32, - 2,88,104,32,112,32,112,32,168,112,32,3,101,101,32,64, - 212,64,32,2,88,104,32,112,136,32,0,32,0,32,3,101, - 101,16,8,172,8,16,2,88,104,32,0,32,0,32,136,112, - 32,3,85,101,160,192,248,192,160,3,85,101,40,24,248,24, - 40,3,85,101,32,120,136,120,32,2,88,104,32,80,216,80, - 80,80,80,112,3,85,101,32,240,136,240,32,2,88,104,112, - 80,80,80,80,216,80,32,2,89,105,32,80,216,80,112,0, - 112,80,112,2,89,105,32,80,216,80,80,80,216,136,248,2, - 89,105,32,80,248,136,80,80,216,136,248,2,89,105,32,112, - 248,112,112,112,248,168,248,2,89,105,32,80,216,80,216,80, - 80,80,112,2,89,105,32,80,216,80,216,80,216,136,248,3, - 85,101,160,240,136,240,160,2,88,104,248,128,176,160,144,16, - 8,8,2,88,104,128,128,64,72,40,104,8,248,2,88,104, - 32,80,216,80,80,216,80,32,3,101,101,16,104,252,104,16, - 2,88,104,80,120,80,80,80,80,240,80,2,89,105,16,248, - 16,16,248,16,16,248,16,3,101,101,40,72,252,72,40,3, - 101,101,80,72,252,72,80,3,101,101,48,120,252,120,48,3, - 101,101,56,88,252,88,56,3,101,101,112,104,252,104,112,3, - 101,101,48,120,252,120,48,3,85,101,32,96,184,96,32,3, - 85,101,32,48,232,48,32,3,101,101,48,120,180,120,48,6, - 102,102,252,252,252,252,252,252,0,98,98,252,252,0,99,99, - 252,252,252,0,101,101,252,252,252,252,252,0,102,102,252,252, - 252,252,252,252,0,104,104,252,252,252,252,252,252,252,252,0, - 105,105,252,252,252,252,252,252,252,252,252,0,107,107,252,252, - 252,252,252,252,252,252,252,252,252,0,108,108,252,252,252,252, - 252,252,252,252,252,252,252,252,0,92,108,248,248,248,248,248, - 248,248,248,248,248,248,248,0,76,108,240,240,240,240,240,240, - 240,240,240,240,240,240,0,76,108,240,240,240,240,240,240,240, - 240,240,240,240,240,0,60,108,224,224,224,224,224,224,224,224, - 224,224,224,224,0,44,108,192,192,192,192,192,192,192,192,192, - 192,192,192,0,44,108,192,192,192,192,192,192,192,192,192,192, - 192,192,0,28,108,128,128,128,128,128,128,128,128,128,128,128, - 128,48,60,108,224,224,224,224,224,224,224,224,224,224,224,224, - 1,107,107,168,0,84,0,168,0,84,0,168,0,84,0,108, - 108,168,84,168,84,168,84,168,84,168,84,168,84,0,108,108, - 84,252,168,252,84,252,168,252,84,252,168,252,10,98,98,252, - 252,80,28,108,128,128,128,128,128,128,128,128,128,128,128,128, - 0,54,102,224,224,224,224,224,224,48,54,102,224,224,224,224, - 224,224,6,54,102,224,224,224,224,224,224,0,108,108,224,224, - 224,224,224,224,252,252,252,252,252,252,0,108,108,224,224,224, - 224,224,224,28,28,28,28,28,28,0,108,108,252,252,252,252, - 252,252,224,224,224,224,224,224,0,108,108,252,252,252,252,252, - 252,28,28,28,28,28,28,54,54,102,224,224,224,224,224,224, - 0,108,108,28,28,28,28,28,28,224,224,224,224,224,224,0, - 108,108,28,28,28,28,28,28,252,252,252,252,252,252,2,85, - 101,248,248,248,248,248,2,85,101,248,136,136,136,248,2,85, - 101,112,136,136,136,112,2,85,101,248,136,168,136,248,2,85, - 101,248,136,248,136,248,2,85,101,248,168,168,168,248,2,85, - 101,248,168,248,168,248,2,85,101,248,200,168,152,248,2,85, - 101,248,152,168,200,248,2,85,101,248,216,168,216,248,20,51, - 99,224,224,224,20,51,99,224,160,224,3,101,101,252,252,252, - 252,252,3,101,101,252,132,132,132,252,17,74,106,240,240,240, - 240,240,240,240,240,240,240,17,74,106,240,144,144,144,144,144, - 144,144,144,240,4,99,99,60,120,240,4,99,99,60,72,240, - 2,87,103,32,32,112,112,248,248,248,2,87,103,32,32,80, - 80,136,136,248,3,85,101,32,32,112,112,248,3,85,101,32, - 32,80,80,248,18,71,103,128,192,224,240,224,192,128,18,71, - 103,128,192,160,144,160,192,128,19,53,101,128,192,224,192,128, - 19,53,101,128,192,160,192,128,3,101,101,192,240,252,240,192, - 3,101,101,192,176,140,176,192,2,87,103,248,248,248,112,112, - 32,32,2,87,103,248,136,136,80,80,32,32,2,85,101,248, - 112,112,32,32,2,85,101,248,80,80,32,32,18,71,103,16, - 48,112,240,112,48,16,18,71,103,16,48,80,144,80,48,16, - 19,53,101,32,96,224,96,32,19,53,101,32,96,160,96,32, - 3,101,101,12,60,252,60,12,3,101,101,12,52,196,52,12, - 3,85,101,32,112,248,112,32,3,85,101,32,80,136,80,32, - 3,85,101,32,80,168,80,32,2,102,102,48,72,180,180,72, - 48,2,87,103,32,80,80,136,80,80,32,2,102,102,48,72, - 132,132,72,48,2,102,102,32,8,128,4,64,16,2,85,101, - 112,168,168,168,112,2,87,103,112,136,168,216,168,136,112,2, - 102,102,48,120,252,252,120,48,2,102,102,48,104,228,228,104, - 48,2,102,102,48,88,156,156,88,48,2,102,102,48,72,132, - 252,120,48,2,102,102,48,120,252,132,72,48,2,102,102,48, - 88,156,132,72,48,2,102,102,48,104,228,132,72,48,18,89, - 105,8,56,120,120,248,120,120,56,8,2,89,105,128,224,240, - 240,248,240,240,224,128,0,108,108,252,252,252,252,204,132,132, - 204,252,252,252,252,0,108,108,252,252,252,204,180,120,120,180, - 204,252,252,252,6,102,102,252,252,252,204,180,120,0,102,102, - 120,180,204,252,252,252,5,51,99,32,64,128,53,51,99,128, - 64,32,50,51,99,32,64,128,2,51,99,128,64,32,5,99, - 99,48,72,132,2,99,99,132,72,48,2,85,101,8,24,56, - 120,248,2,85,101,128,192,224,240,248,2,85,101,248,240,224, - 192,128,2,85,101,248,120,56,24,8,2,85,101,112,136,136, - 136,112,2,85,101,248,232,232,232,248,2,85,101,248,184,184, - 184,248,2,85,101,248,248,232,200,248,2,85,101,248,152,184, - 248,248,2,85,101,248,168,168,168,248,2,87,103,32,32,80, - 112,168,136,248,2,87,103,32,32,112,112,232,232,248,2,87, - 103,32,32,112,112,184,184,248,2,103,103,48,72,132,132,132, - 72,48,2,85,101,248,168,232,136,248,2,85,101,248,136,232, - 168,248,2,85,101,248,136,184,168,248,2,85,101,248,168,184, - 136,248,2,85,101,112,168,232,136,112,2,85,101,112,136,232, - 168,112,2,85,101,112,136,184,168,112,2,85,101,112,168,184, - 136,112,3,85,101,248,144,160,192,128,3,85,101,248,72,40, - 24,8,3,85,101,128,192,160,144,248,20,68,100,240,144,144, - 240,19,68,100,240,240,240,240,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 3 - Calculated Max Values w= 6 h=10 x= 1 y= 2 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_75r[427] U8G_FONT_SECTION("u8g_font_6x12_75r") = { - 1,6,12,0,254,7,1,41,0,0,32,79,0,9,255,7, - 0,2,85,101,248,248,248,248,248,2,85,101,248,136,136,136, - 248,2,85,101,112,136,136,136,112,2,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,20,51,99,224,224,224,20,51,99,224,160,224,3,101,101, - 252,252,252,252,252,3,101,101,252,132,132,132,252,17,74,106, - 240,240,240,240,240,240,240,240,240,240,17,74,106,240,144,144, - 144,144,144,144,144,144,240,4,99,99,60,120,240,4,99,99, - 60,72,240,2,87,103,32,32,112,112,248,248,248,2,87,103, - 32,32,80,80,136,136,248,3,85,101,32,32,112,112,248,3, - 85,101,32,32,80,80,248,18,71,103,128,192,224,240,224,192, - 128,18,71,103,128,192,160,144,160,192,128,19,53,101,128,192, - 224,192,128,19,53,101,128,192,160,192,128,3,101,101,192,240, - 252,240,192,3,101,101,192,176,140,176,192,2,87,103,248,248, - 248,112,112,32,32,2,87,103,248,136,136,80,80,32,32,2, - 85,101,248,112,112,32,32,2,85,101,248,80,80,32,32,18, - 71,103,16,48,112,240,112,48,16,18,71,103,16,48,80,144, - 80,48,16,19,53,101,32,96,224,96,32,19,53,101,32,96, - 160,96,32,3,101,101,12,60,252,60,12,3,101,101,12,52, - 196,52,12,3,85,101,32,112,248,112,32,3,85,101,32,80, - 136,80,32,3,85,101,32,80,168,80,32,2,102,102,48,72, - 180,180,72,48,2,87,103,32,80,80,136,80,80,32,2,102, - 102,48,72,132,132,72,48,2,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,2,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 6 h=12 x= 2 y= 4 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[2316] U8G_FONT_SECTION("u8g_font_6x12_78_79") = { - 1,6,12,0,254,6,2,80,3,53,0,255,0,10,254,9, - 0,2,87,103,168,0,136,0,136,0,168,3,101,101,144,252, - 32,64,96,3,101,101,196,200,48,200,196,3,101,101,96,64, - 32,252,144,2,103,103,204,148,232,48,232,148,204,255,1,105, - 105,120,132,180,180,164,180,180,132,120,1,105,105,120,132,180, - 132,180,132,204,132,120,3,101,101,32,176,252,176,32,2,101, - 101,252,204,180,132,252,255,255,18,72,104,144,144,80,112,240, - 240,240,112,3,102,102,4,56,124,124,64,128,2,102,102,64, - 224,80,40,20,12,3,99,99,248,140,248,2,102,102,12,20, - 40,80,224,64,3,100,100,248,132,132,248,4,99,99,248,244, - 248,2,87,103,8,8,16,16,160,224,64,2,103,103,12,12, - 28,216,248,112,48,2,85,101,136,80,32,80,136,3,85,101, - 216,248,32,248,216,2,86,102,136,80,32,80,136,128,1,103, - 103,204,204,120,112,252,204,192,1,103,103,120,204,164,244,164, - 204,120,2,102,102,48,48,252,252,48,48,3,85,101,32,32, - 216,32,32,2,102,102,48,48,204,204,48,48,2,87,103,32, - 32,248,32,32,32,32,1,90,106,112,80,216,136,216,80,80, - 80,80,112,2,105,105,120,220,188,220,88,88,88,120,120,2, - 87,103,112,32,168,248,168,32,112,2,87,103,32,248,80,80, - 80,248,32,3,85,101,32,32,248,32,32,3,102,102,48,48, - 252,252,48,48,2,104,104,48,120,48,252,252,48,120,48,2, - 87,103,32,112,168,248,168,112,32,3,85,101,32,112,248,112, - 32,3,85,101,32,112,216,112,32,255,3,85,101,32,216,80, - 32,80,2,87,103,112,216,136,216,168,248,112,3,86,102,32, - 32,248,80,112,136,3,86,102,32,32,216,32,80,136,3,86, - 102,32,32,248,112,112,136,3,86,102,32,32,248,112,112,136, - 3,86,102,32,32,232,48,80,136,2,102,102,48,88,140,88, - 172,88,2,86,102,32,168,112,112,168,32,2,87,103,32,168, - 112,80,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,2,87,103,32,168,112,248, - 112,168,32,2,86,102,32,168,112,112,168,32,1,88,104,80, - 32,168,112,112,168,32,80,1,88,104,80,32,168,112,112,168, - 32,80,2,103,103,80,248,124,248,124,248,80,2,103,103,80, - 168,116,248,116,168,80,2,86,102,32,168,112,112,168,32,2, - 87,103,32,168,112,80,112,168,32,2,86,102,32,168,112,112, - 168,32,2,103,103,168,216,80,168,116,168,32,3,87,103,32, - 112,248,216,112,248,216,3,87,103,32,112,216,168,80,248,216, - 3,86,102,32,112,216,112,248,32,2,87,103,112,248,168,216, - 168,248,112,2,86,102,32,168,112,112,168,32,2,86,102,32, - 168,112,112,168,32,2,86,102,32,168,112,112,168,32,2,86, - 102,32,168,112,112,168,32,2,87,103,32,168,112,248,112,168, - 32,2,87,103,32,168,112,248,112,168,32,2,87,103,32,168, - 112,248,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,255,3,101,101,120,140,140, - 140,120,255,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,2,102,102,248,140,140,140,252,124,2,102, - 102,124,252,140,140,140,248,255,255,255,2,103,103,16,56,84, - 236,84,56,16,255,34,23,103,128,128,128,128,128,128,128,18, - 39,103,192,192,192,192,192,192,192,18,71,103,240,240,240,240, - 240,240,240,22,69,101,96,128,224,240,96,22,69,101,96,240, - 112,16,96,6,101,101,72,144,216,252,72,6,101,101,72,252, - 108,36,72,255,255,1,106,106,8,124,200,200,200,120,8,200, - 136,112,2,89,105,112,248,248,112,32,0,32,112,32,2,88, - 104,216,248,112,32,0,32,112,32,2,85,101,216,248,248,112, - 32,2,87,103,96,240,240,120,240,240,96,2,104,104,100,184, - 32,216,248,240,228,120,2,102,102,128,88,120,220,152,64,18, - 56,104,32,64,192,192,192,192,64,32,18,56,104,128,64,96, - 96,96,96,64,128,18,40,104,64,192,192,192,192,192,192,64, - 18,40,104,128,192,192,192,192,192,192,128,17,73,105,48,48, - 96,96,192,96,96,48,48,17,73,105,192,192,96,96,48,96, - 96,192,192,2,87,103,24,48,96,192,96,48,24,2,87,103, - 192,96,48,24,48,96,192,1,89,105,56,56,112,112,224,112, - 112,56,56,1,89,105,224,224,112,112,56,112,112,224,224,17, - 57,105,32,64,128,128,128,128,128,64,32,17,57,105,128,64, - 32,32,32,32,32,64,128,17,73,105,48,96,96,96,192,96, - 96,96,48,17,73,105,192,96,96,96,48,96,96,96,192,2, - 89,105,112,248,216,152,216,216,136,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,2,89,105,112,136,168,232,168,168, - 248,136,112,2,89,105,112,136,168,216,152,168,248,136,112,2, - 89,105,112,136,232,152,168,152,232,136,112,2,89,105,112,136, - 200,200,232,248,168,136,112,2,89,105,112,136,248,200,232,152, - 232,136,112,2,89,105,112,136,184,200,232,216,168,136,112,2, - 89,105,112,136,248,152,168,168,168,136,112,2,89,105,112,136, - 168,216,168,216,168,136,112,2,89,105,112,136,168,216,184,152, - 232,136,112,2,105,105,120,132,212,236,236,236,212,132,120,2, - 89,105,112,248,216,152,216,216,216,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,3,101,101,48,24,252,24,48,255, - 255,255,2,85,101,128,64,40,24,56,3,85,101,32,48,248, - 48,32,2,85,101,56,24,40,64,128,3,101,101,64,48,252, - 48,64,2,102,102,48,56,252,252,56,48,4,99,99,8,252, - 8,2,102,102,16,24,252,252,24,16,3,99,99,8,188,8, - 2,102,102,16,24,188,188,24,16,3,101,101,16,248,252,248, - 16,2,103,103,192,176,72,60,120,240,192,2,103,103,192,240, - 120,60,72,176,192,3,101,101,224,120,60,120,224,3,102,102, - 128,144,248,252,120,16,2,102,102,16,120,252,248,144,128,2, - 103,103,32,240,248,252,248,240,32,3,101,101,32,240,252,240, - 32,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,2,102,102,16,232,132,132,232,16,2,102,102,16,232,132, - 132,232,16,3,101,101,16,232,132,232,16,255,3,101,101,16, - 232,132,232,16,2,103,103,120,220,12,4,12,220,120,3,99, - 99,232,124,232,2,102,102,64,224,96,16,12,12,3,99,99, - 232,124,232,2,102,102,12,12,16,96,224,64,2,102,102,96, - 224,224,20,12,28,2,101,101,192,232,124,232,192,2,102,102, - 28,12,20,224,224,96,2,101,101,16,200,252,200,16,2,101, - 101,16,200,252,200,16,3,99,99,232,124,232,3,100,100,232, - 252,252,232,2,101,101,80,232,4,232,80,255,2,85,101,136, - 144,160,192,248,2,86,102,32,32,80,112,168,248,2,86,102, - 32,32,32,32,32,248,2,87,103,120,128,144,168,144,128,120, - 2,87,103,240,8,72,168,72,8,240,18,73,105,64,160,160, - 32,32,64,64,64,48,18,73,105,32,80,80,64,64,32,32, - 32,192,2,87,103,136,168,136,80,80,32,32,2,104,104,128, - 156,160,160,160,92,64,64,2,104,104,4,228,20,20,20,232, - 8,8,18,55,103,64,64,64,224,64,64,64,255,2,103,103, - 252,64,32,32,32,32,64,255,255,255,3,85,101,32,80,168, - 80,32,2,87,103,32,32,80,80,136,168,136,2,87,103,168, - 168,168,168,168,168,112,3,85,101,8,8,40,8,248,3,85, - 101,248,128,160,128,128,3,101,101,196,108,84,108,196,3,101, - 101,140,216,168,216,140,2,101,101,204,120,72,120,204,2,87, - 103,32,32,32,32,32,32,248,2,87,103,248,32,32,32,32, - 32,32,3,85,101,80,216,80,216,80,3,85,101,80,80,216, - 80,80,4,99,99,64,188,64,4,99,99,128,252,128,4,99, - 99,4,252,4,18,55,103,64,160,64,64,64,64,224,3,85, - 101,32,80,248,80,32,3,85,101,32,80,136,80,32,3,101, - 101,16,40,196,40,16,3,101,101,32,80,140,80,32,3,101, - 101,124,68,196,68,124,3,101,101,248,136,140,136,248,1,90, - 106,248,160,160,160,160,160,160,160,160,248,1,90,106,248,40, - 40,40,40,40,40,40,40,248,17,57,105,32,32,64,64,128, - 64,64,32,32,17,57,105,128,128,64,64,32,64,64,128,128, - 0,107,107,20,40,40,80,80,160,80,80,40,40,20,0,107, - 107,160,80,80,40,40,20,40,40,80,80,160,16,75,107,16, - 32,96,160,160,160,160,160,96,32,16,16,76,108,128,64,96, - 80,80,80,80,80,80,96,64,128,17,41,105,128,64,64,64, - 64,64,64,64,128,17,41,105,64,128,128,128,128,128,128,128, - 64,2,87,103,32,112,168,168,168,168,168,2,87,103,168,168, - 168,168,168,112,32,2,103,103,56,68,228,68,4,68,56,2, - 103,103,112,136,156,136,128,136,112,4,99,99,104,252,104,3, - 101,101,32,64,252,64,32,3,101,101,16,8,252,8,16,4, - 99,99,72,252,72,2,103,103,16,32,124,128,124,32,16,2, - 103,103,32,16,248,4,248,16,32,3,101,101,72,252,132,252, - 72,3,101,101,36,68,252,68,36,3,101,101,144,136,252,136, - 144,2,103,103,20,36,124,132,124,36,20,2,103,103,160,144, - 248,132,248,144,160,3,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y=10 dx= 6 dy= 0 ascent=10 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12[1933] U8G_FONT_SECTION("u8g_font_6x12") = { - 1,6,12,0,254,7,1,53,2,107,32,255,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,12,0,96,34,23,103,128,0,128,128,128,128,128,1, - 87,103,32,112,168,160,168,112,32,2,87,103,48,72,64,224, - 64,72,176,2,85,101,168,80,136,80,168,2,87,103,136,80, - 248,32,248,32,32,34,23,103,128,128,128,0,128,128,128,18, - 72,104,112,128,96,144,144,96,16,224,25,49,97,160,2,103, - 103,120,132,148,164,148,132,120,22,53,101,96,160,96,0,224, - 2,85,101,40,80,160,80,40,3,83,99,248,8,8,21,49, - 97,224,2,103,103,120,132,180,164,164,132,120,9,81,97,248, - 23,68,100,96,144,144,96,2,87,103,32,32,248,32,32,0, - 248,23,53,101,64,160,32,64,224,23,53,101,192,32,64,32, - 192,23,51,99,32,64,128,0,87,103,136,136,136,152,232,128, - 128,2,88,104,120,232,232,232,104,40,40,40,37,34,98,192, - 192,16,50,98,32,192,23,53,101,64,192,64,64,224,23,53, - 101,64,160,64,0,224,2,85,101,160,80,40,80,160,2,90, - 106,64,192,64,64,80,48,80,120,16,16,2,90,106,64,192, - 64,64,80,40,8,16,32,56,2,90,106,192,32,64,32,208, - 48,80,120,16,16,2,87,103,32,0,32,32,64,136,112,2, - 90,106,64,32,0,112,136,136,248,136,136,136,2,90,106,16, - 32,0,112,136,136,248,136,136,136,2,90,106,32,80,0,112, - 136,136,248,136,136,136,2,90,106,104,176,0,112,136,136,248, - 136,136,136,2,89,105,80,0,112,136,136,248,136,136,136,2, - 90,106,32,80,32,112,136,136,248,136,136,136,2,87,103,120, - 160,160,240,160,160,184,0,89,105,112,136,128,128,128,136,112, - 16,96,2,90,106,64,32,0,248,128,128,240,128,128,248,2, - 90,106,16,32,0,248,128,128,240,128,128,248,2,90,106,32, - 80,0,248,128,128,240,128,128,248,2,89,105,80,0,248,128, - 128,240,128,128,248,18,58,106,128,64,0,224,64,64,64,64, - 64,224,18,58,106,32,64,0,224,64,64,64,64,64,224,18, - 58,106,64,160,0,224,64,64,64,64,64,224,18,57,105,160, - 0,224,64,64,64,64,64,224,2,87,103,112,72,72,232,72, - 72,112,2,90,106,104,176,0,136,136,200,168,152,136,136,2, - 90,106,64,32,0,112,136,136,136,136,136,112,2,90,106,16, - 32,0,112,136,136,136,136,136,112,2,90,106,32,80,0,112, - 136,136,136,136,136,112,2,90,106,104,176,0,112,136,136,136, - 136,136,112,2,89,105,80,0,112,136,136,136,136,136,112,3, - 85,101,136,80,32,80,136,1,89,105,8,112,152,168,168,168, - 200,112,128,2,90,106,64,32,0,136,136,136,136,136,136,112, - 2,90,106,16,32,0,136,136,136,136,136,136,112,2,90,106, - 32,80,0,136,136,136,136,136,136,112,2,89,105,80,0,136, - 136,136,136,136,136,112,2,90,106,16,32,0,136,136,80,32, - 32,32,32,18,71,103,128,224,144,144,144,224,128,2,87,103, - 112,136,144,160,144,136,176,2,88,104,64,32,0,112,8,120, - 136,120,2,88,104,16,32,0,112,8,120,136,120,2,88,104, - 32,80,0,112,8,120,136,120,2,88,104,104,176,0,112,8, - 120,136,120,2,87,103,80,0,112,8,120,136,120,2,88,104, - 32,80,32,112,8,120,136,120,2,85,101,112,40,112,160,120, - 0,87,103,112,136,128,136,112,16,96,2,88,104,64,32,0, - 112,136,240,128,112,2,88,104,16,32,0,112,136,240,128,112, - 2,88,104,32,80,0,112,136,240,128,112,2,87,103,80,0, - 112,136,240,128,112,18,56,104,128,64,0,192,64,64,64,224, - 18,56,104,32,64,0,192,64,64,64,224,18,56,104,64,160, - 0,192,64,64,64,224,18,55,103,160,0,192,64,64,64,224, - 2,89,105,80,32,80,8,120,136,136,136,112,2,88,104,104, - 176,0,176,200,136,136,136,2,88,104,64,32,0,112,136,136, - 136,112,2,88,104,16,32,0,112,136,136,136,112,2,88,104, - 32,80,0,112,136,136,136,112,2,88,104,104,176,0,112,136, - 136,136,112,2,87,103,80,0,112,136,136,136,112,3,85,101, - 32,0,248,0,32,2,85,101,120,152,168,200,240,2,88,104, - 64,32,0,136,136,136,136,112,2,88,104,16,32,0,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,0,90,106,16,32,0,136,136, - 136,80,32,64,128,0,89,105,128,128,240,136,136,136,240,128, - 128,0,89,105,80,0,136,136,136,80,32,64,128}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y=10 dx= 6 dy= 0 ascent=10 len= 9 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12r[898] U8G_FONT_SECTION("u8g_font_6x12r") = { - 1,6,12,0,254,7,1,53,2,107,32,127,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w= 6 h=13 x= 5 y= 9 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[2236] U8G_FONT_SECTION("u8g_font_6x13_67_75") = { - 1,6,13,0,254,3,1,73,2,147,32,255,0,11,254,9, - 0,3,101,101,80,40,252,40,80,2,89,105,32,32,32,32, - 168,112,168,112,32,3,101,101,36,72,240,72,36,3,101,101, - 144,72,60,72,144,3,85,101,32,72,248,72,32,2,89,105, - 32,112,168,32,32,32,32,32,248,3,85,101,32,144,248,144, - 32,2,89,105,248,32,32,32,32,32,168,112,32,2,89,105, - 32,112,168,32,32,168,112,32,248,3,101,101,40,68,248,64, - 32,3,101,101,80,136,124,8,16,3,101,101,32,76,252,72, - 40,3,101,101,16,200,252,72,80,4,100,100,72,220,236,72, - 3,101,101,8,88,252,104,64,2,89,105,128,128,144,176,208, - 144,16,56,16,2,89,105,32,64,248,72,40,8,8,8,8, - 2,89,105,32,16,248,144,160,128,128,128,128,2,89,105,8, - 8,8,8,40,72,248,64,32,2,89,105,128,128,128,128,160, - 144,248,16,32,3,85,101,240,16,16,56,16,3,86,102,8, - 8,8,72,248,64,3,85,101,48,72,72,232,72,3,85,101, - 96,144,144,184,144,2,89,105,248,128,224,192,160,32,16,16, - 8,2,89,105,160,192,248,192,168,24,248,24,40,3,86,102, - 56,48,168,136,136,112,3,86,102,224,96,168,136,136,112,5, - 83,99,32,64,248,3,83,99,248,64,32,34,57,105,128,192, - 160,128,128,128,128,128,128,2,57,105,32,96,160,32,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 57,105,128,128,128,128,128,128,160,192,128,2,57,105,32,32, - 32,32,32,32,160,96,32,2,89,105,32,16,248,16,32,64, - 248,64,32,2,89,105,80,240,80,80,80,80,80,120,80,2, - 89,105,32,64,248,64,32,16,248,16,32,2,89,105,32,64, - 248,64,32,64,248,64,32,2,89,105,80,248,80,80,80,80, - 80,80,80,2,89,105,32,16,248,16,32,16,248,16,32,2, - 89,105,80,80,80,80,80,80,80,248,80,2,87,103,32,64, - 248,0,248,16,32,2,87,103,32,16,248,0,248,64,32,2, - 103,103,20,40,124,144,124,32,80,2,103,103,8,88,252,164, - 252,104,64,2,103,103,160,80,248,36,248,16,40,2,103,103, - 16,32,124,128,124,32,16,2,89,105,32,80,216,80,80,80, - 80,80,80,2,103,103,32,16,248,4,248,16,32,2,89,105, - 80,80,80,80,80,80,216,80,32,3,101,101,72,252,132,252, - 72,2,89,105,32,80,216,80,80,80,216,80,32,3,102,102, - 248,160,208,168,148,8,3,102,102,124,20,44,84,164,64,3, - 102,102,64,164,84,44,20,124,3,102,102,8,148,168,208,160, - 248,2,103,103,16,60,64,252,64,60,16,2,103,103,32,240, - 8,252,8,240,32,4,100,100,64,232,212,64,4,100,100,8, - 92,172,8,2,89,105,32,112,168,32,112,32,112,32,32,2, - 89,105,32,32,112,32,112,32,168,112,32,3,85,101,32,64, - 168,64,32,2,89,105,32,112,168,0,32,32,0,32,32,3, - 85,101,32,16,168,16,32,2,89,105,32,32,0,32,32,0, - 168,112,32,3,85,101,160,192,248,192,160,3,85,101,40,24, - 248,24,40,3,85,101,32,120,136,120,32,2,89,105,32,80, - 216,80,80,80,80,80,112,3,85,101,32,240,136,240,32,2, - 89,105,112,80,80,80,80,80,216,80,32,2,90,106,32,80, - 216,80,80,112,0,112,80,112,2,89,105,32,80,216,80,80, - 80,216,136,248,2,89,105,32,80,248,136,80,80,216,136,248, - 2,89,105,32,112,248,112,112,112,248,168,248,2,89,105,32, - 80,216,80,216,80,80,80,112,2,89,105,32,80,216,80,216, - 80,216,136,248,3,85,101,160,240,136,240,160,3,88,104,248, - 128,176,224,144,16,8,8,2,88,104,128,128,64,72,56,104, - 8,248,2,89,105,32,80,216,80,80,80,216,80,32,3,101, - 101,16,104,252,104,16,2,89,105,80,120,80,80,80,80,80, - 240,80,2,89,105,16,248,16,16,248,16,16,248,16,3,101, - 101,40,72,252,72,40,3,101,101,80,72,252,72,80,4,101, - 101,48,120,252,120,48,3,101,101,56,88,252,88,56,3,101, - 101,112,104,252,104,112,4,101,101,48,120,252,120,48,3,85, - 101,32,96,184,96,32,3,85,101,32,48,232,48,32,4,101, - 101,48,120,180,120,48,7,102,102,252,252,252,252,252,252,0, - 98,98,252,252,0,99,99,252,252,252,0,101,101,252,252,252, - 252,252,0,103,103,252,252,252,252,252,252,252,0,104,104,252, - 252,252,252,252,252,252,252,0,106,106,252,252,252,252,252,252, - 252,252,252,252,0,107,107,252,252,252,252,252,252,252,252,252, - 252,252,0,109,109,252,252,252,252,252,252,252,252,252,252,252, - 252,252,0,93,109,248,248,248,248,248,248,248,248,248,248,248, - 248,248,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,29,109,128,128,128,128,128,128,128,128,128,128,128, - 128,128,48,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,109,109,168,0,84,0,168,0,84,0,168,0,84, - 0,168,0,109,109,168,84,168,84,168,84,168,84,168,84,168, - 84,168,0,109,109,84,252,168,252,84,252,168,252,84,252,168, - 252,84,11,98,98,252,252,80,29,109,128,128,128,128,128,128, - 128,128,128,128,128,128,128,0,55,103,224,224,224,224,224,224, - 224,48,55,103,224,224,224,224,224,224,224,7,54,102,224,224, - 224,224,224,224,0,109,109,224,224,224,224,224,224,252,252,252, - 252,252,252,252,0,109,109,224,224,224,224,224,224,28,28,28, - 28,28,28,28,0,109,109,252,252,252,252,252,252,224,224,224, - 224,224,224,224,0,109,109,252,252,252,252,252,252,28,28,28, - 28,28,28,28,55,54,102,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,224,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,252,252,252,252,252,252,252,3,85,101, - 248,248,248,248,248,3,85,101,248,136,136,136,248,3,85,101, - 112,136,136,136,112,3,85,101,248,136,168,136,248,2,85,101, - 248,136,248,136,248,2,85,101,248,168,168,168,248,2,85,101, - 248,168,248,168,248,2,85,101,248,200,168,152,248,2,85,101, - 248,152,168,200,248,2,85,101,248,216,168,216,248,21,51,99, - 224,224,224,21,51,99,224,160,224,4,101,101,252,252,252,252, - 252,4,101,101,252,132,132,132,252,17,75,107,240,240,240,240, - 240,240,240,240,240,240,240,17,75,107,240,144,144,144,144,144, - 144,144,144,144,240,5,99,99,60,120,240,5,99,99,60,72, - 240,2,89,105,32,32,32,112,112,112,248,248,248,2,89,105, - 32,32,32,80,80,80,136,136,248,4,85,101,32,32,112,112, - 248,4,85,101,32,32,80,80,248,2,89,105,128,192,224,240, - 248,240,224,192,128,2,89,105,128,192,160,144,136,144,160,192, - 128,20,53,101,128,192,224,192,128,20,53,101,128,192,160,192, - 128,4,101,101,192,240,252,240,192,4,101,101,192,176,140,176, - 192,2,89,105,248,248,248,112,112,112,32,32,32,2,89,105, - 248,136,136,80,80,80,32,32,32,3,85,101,248,112,112,32, - 32,3,85,101,248,80,80,32,32,2,89,105,8,24,56,120, - 248,120,56,24,8,2,89,105,8,24,40,72,136,72,40,24, - 8,20,53,101,32,96,224,96,32,20,53,101,32,96,160,96, - 32,4,101,101,12,60,252,60,12,4,101,101,12,52,196,52, - 12,4,85,101,32,112,248,112,32,4,85,101,32,80,136,80, - 32,4,85,101,32,80,168,80,32,3,102,102,48,72,180,180, - 72,48,2,89,105,32,32,80,80,136,80,80,32,32,3,102, - 102,48,72,132,132,72,48,3,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,3,102,102,48,120,252,252,120,48,3,102,102,48,104, - 228,228,104,48,3,102,102,48,88,156,156,88,48,3,102,102, - 48,72,132,252,120,48,3,102,102,48,120,252,132,72,48,3, - 102,102,48,88,156,132,72,48,3,102,102,48,88,156,252,120, - 48,18,90,106,8,56,120,120,248,248,120,120,56,8,2,90, - 106,128,224,240,240,248,248,240,240,224,128,0,109,109,252,252, - 252,252,252,204,132,132,204,252,252,252,252,0,109,109,252,252, - 252,252,204,180,120,120,180,204,252,252,252,6,103,103,252,252, - 252,252,204,180,120,0,102,102,120,180,204,252,252,252,6,51, - 99,32,64,128,54,51,99,128,64,32,51,51,99,32,64,128, - 3,51,99,128,64,32,6,99,99,48,72,132,3,99,99,132, - 72,48,3,85,101,8,24,56,120,248,3,85,101,128,192,224, - 240,248,3,85,101,248,240,224,192,128,3,85,101,248,120,56, - 24,8,4,85,101,112,136,136,136,112,3,85,101,248,232,232, - 232,248,3,85,101,248,184,184,184,248,3,85,101,248,248,232, - 200,248,3,85,101,248,152,184,248,248,3,85,101,248,168,168, - 168,248,2,89,105,32,32,32,80,80,112,168,136,248,2,89, - 105,32,32,32,112,112,112,232,232,248,2,89,105,32,32,32, - 112,112,112,184,184,248,2,103,103,48,72,132,132,132,72,48, - 3,85,101,248,168,232,136,248,3,85,101,248,136,232,168,248, - 3,85,101,248,136,184,168,248,3,85,101,248,168,184,136,248, - 3,85,101,112,168,232,136,112,3,85,101,112,136,232,168,112, - 3,85,101,112,136,184,168,112,3,85,101,112,168,184,136,112, - 3,85,101,248,144,160,192,128,3,85,101,248,72,40,24,8, - 3,85,101,128,192,160,144,248,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,20,68,100,240,144,144,240,20,68,100, - 240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 3 - Calculated Max Values w= 6 h=11 x= 1 y= 3 dx= 6 dy= 0 ascent=10 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_75r[447] U8G_FONT_SECTION("u8g_font_6x13_75r") = { - 1,6,13,0,254,9,1,57,0,0,32,79,0,10,255,9, - 0,3,85,101,248,248,248,248,248,3,85,101,248,136,136,136, - 248,3,85,101,112,136,136,136,112,3,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,21,51,99,224,224,224,21,51,99,224,160,224,4,101,101, - 252,252,252,252,252,4,101,101,252,132,132,132,252,17,75,107, - 240,240,240,240,240,240,240,240,240,240,240,17,75,107,240,144, - 144,144,144,144,144,144,144,144,240,5,99,99,60,120,240,5, - 99,99,60,72,240,2,89,105,32,32,32,112,112,112,248,248, - 248,2,89,105,32,32,32,80,80,80,136,136,248,4,85,101, - 32,32,112,112,248,4,85,101,32,32,80,80,248,2,89,105, - 128,192,224,240,248,240,224,192,128,2,89,105,128,192,160,144, - 136,144,160,192,128,20,53,101,128,192,224,192,128,20,53,101, - 128,192,160,192,128,4,101,101,192,240,252,240,192,4,101,101, - 192,176,140,176,192,2,89,105,248,248,248,112,112,112,32,32, - 32,2,89,105,248,136,136,80,80,80,32,32,32,3,85,101, - 248,112,112,32,32,3,85,101,248,80,80,32,32,2,89,105, - 8,24,56,120,248,120,56,24,8,2,89,105,8,24,40,72, - 136,72,40,24,8,20,53,101,32,96,224,96,32,20,53,101, - 32,96,160,96,32,4,101,101,12,60,252,60,12,4,101,101, - 12,52,196,52,12,4,85,101,32,112,248,112,32,4,85,101, - 32,80,136,80,32,4,85,101,32,80,168,80,32,3,102,102, - 48,72,180,180,72,48,2,89,105,32,32,80,80,136,80,80, - 32,32,3,102,102,48,72,132,132,72,48,3,102,102,32,8, - 128,4,64,16,2,85,101,112,168,168,168,112,2,87,103,112, - 136,168,216,168,136,112,3,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 6 h=13 x= 2 y= 5 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[1470] U8G_FONT_SECTION("u8g_font_6x13_78_79") = { - 1,6,13,0,254,7,1,42,2,11,32,255,0,11,254,10, - 0,2,87,103,112,32,168,248,168,32,112,255,2,104,104,48, - 48,48,252,252,48,48,48,2,89,105,32,112,32,168,248,168, - 32,112,32,2,89,105,32,112,32,168,248,168,32,112,32,2, - 89,105,32,112,32,168,248,168,32,112,32,4,85,101,32,112, - 248,112,32,4,85,101,32,80,136,80,32,255,4,86,102,32, - 32,248,80,112,136,2,89,105,112,216,216,0,136,136,112,248, - 112,4,86,102,32,32,248,80,112,136,4,86,102,32,32,248, - 112,112,136,4,86,102,32,32,248,112,112,136,4,86,102,32, - 32,248,112,112,136,4,86,102,32,32,248,112,112,136,4,102, - 102,48,48,252,88,120,204,3,87,103,32,168,112,112,112,168, - 32,3,87,103,32,168,112,80,112,168,32,3,87,103,32,168, - 112,248,112,168,32,3,87,103,32,168,112,248,112,168,32,3, - 87,103,32,168,112,248,112,168,32,3,87,103,32,168,112,112, - 112,168,32,3,87,103,80,80,248,32,248,80,80,3,87,103, - 80,112,248,112,248,112,80,255,255,3,87,103,32,168,168,112, - 168,168,32,3,87,103,32,168,168,80,168,168,32,3,87,103, - 32,168,168,112,168,168,32,3,87,103,32,168,168,80,168,168, - 32,4,85,101,32,248,80,112,216,255,255,255,3,87,103,32, - 168,168,112,168,168,32,3,87,103,32,168,168,112,168,168,32, - 3,87,103,32,168,168,112,168,168,32,3,87,103,32,168,168, - 112,168,168,32,3,87,103,32,168,112,248,112,168,32,3,87, - 103,32,168,112,248,112,168,32,3,87,103,32,168,168,112,168, - 168,32,3,87,103,32,168,112,248,112,168,32,3,87,103,32, - 168,112,248,112,168,32,255,2,102,102,120,140,140,140,140,120, - 255,2,102,102,248,136,140,140,252,60,2,102,102,60,252,140, - 140,136,248,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,255,255,255,2,89,105,32,112,32,80,248, - 80,32,112,32,255,34,25,105,128,128,128,128,128,128,128,128, - 128,18,57,105,224,224,224,224,224,224,224,224,224,2,89,105, - 248,248,248,248,248,248,248,248,248,23,53,101,96,128,224,224, - 64,23,53,101,64,224,224,32,192,7,101,101,108,144,252,252, - 72,7,101,101,72,252,252,36,216,255,255,2,106,106,8,124, - 232,232,120,8,104,104,72,48,18,57,105,64,224,224,64,64, - 0,64,224,64,2,89,105,80,248,248,112,32,0,32,112,32, - 2,87,103,80,248,248,248,112,32,32,2,103,103,96,240,248, - 124,248,240,96,2,89,105,104,176,16,216,248,240,96,104,48, - 2,104,104,64,144,184,124,92,188,184,80,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,89,105,112,248,216,152, - 216,216,136,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,2,89,105,112,136,168,232,168,168,168,136,112,2,89,105, - 112,136,168,216,152,168,248,136,112,2,89,105,112,136,168,216, - 168,152,232,136,112,2,89,105,112,136,200,200,232,248,168,136, - 112,2,89,105,112,136,248,200,232,152,232,136,112,2,89,105, - 112,136,184,200,232,216,168,136,112,2,89,105,112,136,248,152, - 168,168,168,136,112,2,89,105,112,136,168,216,168,216,168,136, - 112,2,89,105,112,136,168,216,184,152,232,136,112,2,105,105, - 120,132,212,236,236,236,212,132,120,2,89,105,112,248,216,152, - 216,216,216,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,4,102,102,48,24,252,252,24,48,255,255,255,4,85,101, - 128,64,40,24,56,4,85,101,32,48,248,48,32,4,85,101, - 56,24,40,64,128,3,103,103,64,32,48,252,48,32,64,3, - 104,104,32,48,24,252,252,24,48,32,4,101,101,16,24,252, - 24,16,4,102,102,16,24,252,252,24,16,4,102,102,16,24, - 188,188,24,16,3,103,103,32,48,184,188,184,48,32,3,103, - 103,32,48,248,252,248,48,32,255,255,4,101,101,192,112,60, - 112,192,3,103,103,32,176,248,252,120,48,32,3,103,103,32, - 48,120,252,248,176,32,0,109,109,32,32,48,240,248,248,252, - 248,248,240,48,32,32,255,255,255,255,255,255,255,255,255,255, - 1,107,107,120,252,220,204,4,0,4,204,220,248,120,255,4, - 102,102,32,32,224,20,12,28,4,101,101,144,200,124,200,144, - 4,102,102,28,12,20,224,32,32,4,102,102,32,32,224,20, - 12,28,4,101,101,144,200,124,200,144,4,102,102,28,12,20, - 224,32,32,4,101,101,16,8,252,8,16,4,101,101,16,200, - 252,200,16,5,99,99,232,124,232,4,101,101,208,216,124,216, - 208,2,105,105,160,80,40,244,4,244,40,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,1,91,107,248,160,160,160,160,160,160,160,160, - 160,248,1,91,107,248,40,40,40,40,40,40,40,40,40,248, - 17,75,107,16,32,32,64,64,128,64,64,32,32,16,17,75, - 107,128,64,64,32,32,16,32,32,64,64,128,1,107,107,20, - 40,40,80,80,160,80,80,40,40,20,1,107,107,160,80,80, - 40,40,20,40,40,80,80,160,255,255,255,255,255,255,255,255, - 255,3,101,101,32,64,252,64,32,3,101,101,16,8,252,8, - 16,4,99,99,72,252,72,2,103,103,16,32,124,128,124,32, - 16,2,103,103,32,16,248,4,248,16,32,3,101,101,72,252, - 132,252,72,3,101,101,36,68,252,68,36,3,101,101,144,136, - 252,136,144,2,103,103,20,36,124,132,124,36,20,2,103,103, - 160,144,248,132,248,144,160,4,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13B[2171] U8G_FONT_SECTION("u8g_font_6x13B") = { - 1,6,13,0,254,9,1,99,2,211,32,255,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 13,0,96,34,42,106,192,192,0,192,192,192,192,192,192,192, - 3,104,104,16,120,212,208,208,212,120,16,2,105,105,56,108, - 96,96,248,96,96,100,248,3,102,102,204,252,72,72,252,204, - 2,105,105,204,204,120,120,252,48,252,48,48,34,42,106,192, - 192,192,192,0,0,192,192,192,192,2,106,106,120,204,192,120, - 204,204,120,12,204,120,9,98,98,204,204,2,105,105,120,204, - 180,236,228,236,180,204,120,4,103,103,248,12,252,140,252,0, - 252,3,103,103,52,104,208,160,208,104,52,4,100,100,252,252, - 4,4,22,65,97,240,2,105,105,120,204,188,172,188,180,172, - 204,120,9,82,98,248,248,7,100,100,120,204,204,120,2,105, - 105,48,48,252,252,48,48,0,252,252,6,70,102,224,176,48, - 96,192,240,6,70,102,224,176,96,48,176,224,26,50,98,96, - 192,0,104,104,204,204,204,204,204,252,128,128,2,105,105,124, - 252,244,244,244,116,52,52,52,38,34,98,192,192,16,50,98, - 96,192,6,70,102,96,224,96,96,96,240,5,87,103,112,248, - 136,248,112,0,248,3,103,103,176,88,44,20,44,88,176,2, - 106,106,96,224,96,96,100,252,28,52,60,12,2,106,106,96, - 224,96,96,120,236,12,24,48,60,2,106,106,224,176,96,48, - 180,236,28,52,60,12,2,106,106,48,48,0,48,48,96,192, - 204,204,120,2,106,106,96,48,0,48,120,204,204,252,204,204, - 2,106,106,24,48,0,48,120,204,204,252,204,204,2,106,106, - 56,108,0,48,120,204,204,252,204,204,2,106,106,52,88,0, - 48,120,204,204,252,204,204,2,106,106,204,204,0,48,120,204, - 204,252,204,204,2,106,106,48,72,120,48,120,204,204,252,204, - 204,2,105,105,124,176,176,176,184,240,240,176,188,0,107,107, - 120,204,192,192,192,192,192,204,120,48,96,2,106,106,96,48, - 0,252,192,192,248,192,192,252,2,106,106,24,48,0,252,192, - 192,248,192,192,252,2,106,106,56,108,0,252,192,192,248,192, - 192,252,2,106,106,204,204,0,252,192,192,248,192,192,252,18, - 74,106,192,96,0,240,96,96,96,96,96,240,18,74,106,48, - 96,0,240,96,96,96,96,96,240,2,90,106,112,216,0,120, - 48,48,48,48,48,120,2,106,106,204,204,0,120,48,48,48, - 48,48,120,2,105,105,248,108,108,108,236,108,108,108,248,2, - 106,106,52,88,0,204,236,236,252,220,220,204,2,106,106,96, - 48,0,120,204,204,204,204,204,120,2,106,106,24,48,0,120, - 204,204,204,204,204,120,2,106,106,56,108,0,120,204,204,204, - 204,204,120,2,106,106,52,88,0,120,204,204,204,204,204,120, - 2,106,106,204,204,0,120,204,204,204,204,204,120,3,101,101, - 204,120,48,120,204,1,105,105,4,120,220,220,204,236,236,120, - 128,2,106,106,96,48,0,204,204,204,204,204,204,120,2,106, - 106,24,48,0,204,204,204,204,204,204,120,2,106,106,56,108, - 0,204,204,204,204,204,204,120,2,106,106,108,108,0,204,204, - 204,204,204,204,120,2,106,106,24,48,0,204,72,120,48,48, - 48,48,2,105,105,192,248,204,204,204,248,192,192,192,1,105, - 105,120,204,204,248,204,204,204,248,128,2,105,105,96,48,0, - 120,12,124,204,220,108,2,105,105,24,48,0,120,12,124,204, - 220,108,2,105,105,56,108,0,120,12,124,204,220,108,2,105, - 105,52,88,0,120,12,124,204,220,108,2,105,105,108,108,0, - 120,12,124,204,220,108,2,106,106,56,40,56,0,120,12,124, - 204,220,108,2,102,102,120,52,120,176,180,104,0,104,104,120, - 204,192,192,204,120,48,96,2,105,105,96,48,0,120,204,252, - 192,192,120,2,105,105,24,48,0,120,204,252,192,192,120,2, - 105,105,56,108,0,120,204,252,192,192,120,2,105,105,108,108, - 0,120,204,252,192,192,120,18,73,105,192,96,0,224,96,96, - 96,96,240,18,73,105,48,96,0,224,96,96,96,96,240,2, - 89,105,112,216,0,112,48,48,48,48,120,2,89,105,216,216, - 0,112,48,48,48,48,120,2,106,106,216,112,240,152,120,204, - 204,204,204,120,2,105,105,52,88,0,216,236,204,204,204,204, - 2,105,105,96,48,0,120,204,204,204,204,120,2,105,105,24, - 48,0,120,204,204,204,204,120,2,105,105,56,108,0,120,204, - 204,204,204,120,2,105,105,52,88,0,120,204,204,204,204,120, - 2,105,105,204,204,0,120,204,204,204,204,120,3,103,103,48, - 48,0,252,0,48,48,1,105,105,4,120,204,220,204,236,204, - 120,128,2,105,105,96,48,0,204,204,204,204,220,108,2,105, - 105,24,48,0,204,204,204,204,220,108,2,105,105,56,108,0, - 204,204,204,204,220,108,2,105,105,204,204,0,204,204,204,204, - 220,108,0,107,107,24,48,0,204,204,204,220,108,12,204,120, - 0,106,106,192,192,216,236,204,236,216,192,192,192,0,107,107, - 204,204,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Br[1040] U8G_FONT_SECTION("u8g_font_6x13Br") = { - 1,6,13,0,254,9,1,99,2,211,32,127,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255 - }; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13[2160] U8G_FONT_SECTION("u8g_font_6x13") = { - 1,6,13,0,254,9,1,102,2,214,32,255,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,96,34,25,105,128,0,128,128,128,128,128,128,128, - 3,88,104,32,112,168,160,160,168,112,32,2,89,105,48,72, - 64,64,224,64,64,72,176,3,86,102,136,112,80,80,112,136, - 2,89,105,136,136,80,80,248,32,248,32,32,34,25,105,128, - 128,128,128,0,128,128,128,128,18,74,106,96,144,128,96,144, - 144,96,16,144,96,26,50,98,160,160,3,89,105,112,136,168, - 216,200,216,168,136,112,4,87,103,112,8,120,136,120,0,248, - 3,86,102,40,80,160,160,80,40,4,83,99,248,8,8,22, - 49,97,224,3,89,105,112,136,232,216,216,232,216,136,112,10, - 81,97,248,23,68,100,96,144,144,96,3,87,103,32,32,248, - 32,32,0,248,7,53,101,64,160,32,64,224,7,53,101,64, - 160,64,32,192,42,34,98,64,128,0,88,104,136,136,136,136, - 152,232,128,128,2,89,105,120,232,232,232,232,104,40,40,40, - 38,33,97,192,32,34,98,64,128,7,53,101,64,192,64,64, - 224,4,87,103,112,136,136,136,112,0,248,3,86,102,160,80, - 40,40,80,160,2,90,106,64,192,64,64,224,8,24,40,56, - 8,2,90,106,64,192,64,64,224,16,40,8,16,56,2,90, - 106,64,160,64,32,160,72,24,40,56,8,2,89,105,32,0, - 32,32,64,128,136,136,112,2,90,106,64,32,0,32,80,136, - 136,248,136,136,2,90,106,16,32,0,32,80,136,136,248,136, - 136,2,90,106,48,72,0,32,80,136,136,248,136,136,2,90, - 106,40,80,0,32,80,136,136,248,136,136,2,90,106,80,80, - 0,32,80,136,136,248,136,136,2,90,106,32,80,32,32,80, - 136,136,248,136,136,2,89,105,88,160,160,160,176,224,160,160, - 184,0,91,107,112,136,128,128,128,128,128,136,112,32,64,2, - 90,106,64,32,0,248,128,128,240,128,128,248,2,90,106,16, - 32,0,248,128,128,240,128,128,248,2,90,106,48,72,0,248, - 128,128,240,128,128,248,2,90,106,80,80,0,248,128,128,240, - 128,128,248,18,58,106,128,64,0,224,64,64,64,64,64,224, - 18,58,106,32,64,0,224,64,64,64,64,64,224,18,74,106, - 96,144,0,224,64,64,64,64,64,224,18,58,106,160,160,0, - 224,64,64,64,64,64,224,2,89,105,240,72,72,72,232,72, - 72,72,240,2,90,106,40,80,0,136,136,200,168,152,136,136, - 2,90,106,64,32,0,112,136,136,136,136,136,112,2,90,106, - 16,32,0,112,136,136,136,136,136,112,2,90,106,48,72,0, - 112,136,136,136,136,136,112,2,90,106,40,80,0,112,136,136, - 136,136,136,112,2,90,106,80,80,0,112,136,136,136,136,136, - 112,3,85,101,136,80,32,80,136,1,91,107,8,112,152,152, - 168,168,168,200,200,112,128,2,90,106,64,32,0,136,136,136, - 136,136,136,112,2,90,106,16,32,0,136,136,136,136,136,136, - 112,2,90,106,48,72,0,136,136,136,136,136,136,112,2,90, - 106,80,80,0,136,136,136,136,136,136,112,2,90,106,16,32, - 0,136,136,80,32,32,32,32,2,89,105,128,240,136,136,136, - 240,128,128,128,2,89,105,96,144,144,160,160,144,136,136,176, - 2,89,105,64,32,0,112,8,120,136,152,104,2,89,105,16, - 32,0,112,8,120,136,152,104,2,89,105,48,72,0,112,8, - 120,136,152,104,2,89,105,40,80,0,112,8,120,136,152,104, - 2,89,105,80,80,0,112,8,120,136,152,104,2,90,106,48, - 72,48,0,112,8,120,136,152,104,2,86,102,112,40,112,160, - 168,80,0,88,104,112,136,128,128,136,112,32,64,2,89,105, - 64,32,0,112,136,248,128,136,112,2,89,105,16,32,0,112, - 136,248,128,136,112,2,89,105,48,72,0,112,136,248,128,136, - 112,2,89,105,80,80,0,112,136,248,128,136,112,18,57,105, - 128,64,0,192,64,64,64,64,224,18,57,105,32,64,0,192, - 64,64,64,64,224,18,73,105,96,144,0,192,64,64,64,64, - 224,18,57,105,160,160,0,192,64,64,64,64,224,2,90,106, - 80,32,96,16,112,136,136,136,136,112,2,89,105,40,80,0, - 176,200,136,136,136,136,2,89,105,64,32,0,112,136,136,136, - 136,112,2,89,105,16,32,0,112,136,136,136,136,112,2,89, - 105,48,72,0,112,136,136,136,136,112,2,89,105,40,80,0, - 112,136,136,136,136,112,2,89,105,80,80,0,112,136,136,136, - 136,112,3,87,103,32,32,0,248,0,32,32,1,88,104,8, - 112,152,168,168,200,112,128,2,89,105,64,32,0,136,136,136, - 136,152,104,2,89,105,16,32,0,136,136,136,136,152,104,2, - 89,105,48,72,0,136,136,136,136,152,104,2,89,105,80,80, - 0,136,136,136,136,152,104,0,91,107,16,32,0,136,136,136, - 152,104,8,136,112,0,90,106,128,128,176,200,136,136,200,176, - 128,128,0,91,107,80,80,0,136,136,136,152,104,8,136,112 - }; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13O[2162] U8G_FONT_SECTION("u8g_font_6x13O") = { - 1,6,13,0,254,9,1,104,2,216,32,255,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,96,34,41,105,64,0,64,64,64,128,128, - 128,128,3,104,104,16,56,84,80,160,168,112,32,2,105,105, - 24,36,32,32,112,32,64,72,176,3,102,102,68,56,40,80, - 112,136,2,105,105,68,68,40,40,124,32,248,32,32,34,41, - 105,64,64,64,64,0,128,128,128,128,18,90,106,48,72,64, - 48,72,72,48,16,144,96,58,50,98,160,160,2,105,105,56, - 68,84,108,100,216,168,136,112,4,103,103,56,4,124,136,120, - 0,248,19,86,102,40,80,160,160,160,80,20,83,99,248,8, - 16,38,49,97,224,3,105,105,56,68,116,108,108,232,216,136, - 112,26,81,97,248,23,68,100,96,144,144,96,19,71,103,32, - 32,240,64,64,0,240,23,69,101,32,80,32,64,224,23,69, - 101,96,16,96,32,192,58,34,98,64,128,0,104,104,36,36, - 68,72,88,168,128,128,18,89,105,120,232,232,232,232,80,80, - 80,80,54,33,97,192,32,34,98,64,128,23,53,101,32,96, - 64,64,224,4,103,103,56,68,68,136,112,0,248,19,86,102, - 80,40,40,40,80,160,18,90,106,32,96,64,64,224,8,56, - 80,112,16,18,90,106,32,96,64,64,224,16,40,16,32,112, - 18,90,106,96,16,96,32,192,8,56,80,112,16,2,89,105, - 16,0,16,16,32,64,136,136,112,2,106,106,32,16,0,16, - 40,68,68,248,136,136,2,106,106,8,16,0,16,40,68,68, - 248,136,136,2,106,106,24,36,0,16,40,68,68,248,136,136, - 2,106,106,20,40,0,16,40,68,68,248,136,136,2,106,106, - 40,40,0,16,40,68,68,248,136,136,2,106,106,16,40,16, - 16,40,68,68,248,136,136,2,105,105,44,80,80,80,88,224, - 160,160,184,0,107,107,56,68,64,64,64,128,128,136,112,32, - 64,2,106,106,32,16,0,124,64,64,120,128,128,248,2,106, - 106,8,16,0,124,64,64,120,128,128,248,2,106,106,24,36, - 0,124,64,64,120,128,128,248,2,106,106,40,40,0,124,64, - 64,120,128,128,248,18,74,106,64,32,0,112,32,32,32,64, - 64,224,18,74,106,16,32,0,112,32,32,32,64,64,224,18, - 90,106,48,72,0,112,32,32,32,64,64,224,18,74,106,80, - 80,0,112,32,32,32,64,64,224,2,105,105,120,36,36,36, - 116,36,72,72,240,2,106,106,20,40,0,68,68,100,88,136, - 136,136,2,106,106,32,16,0,56,68,68,68,136,136,112,2, - 106,106,8,16,0,56,68,68,68,136,136,112,2,106,106,24, - 36,0,56,68,68,68,136,136,112,2,106,106,20,40,0,56, - 68,68,68,136,136,112,2,106,106,40,40,0,56,68,68,68, - 136,136,112,3,101,101,68,40,48,80,136,1,107,107,4,60, - 76,76,84,84,168,232,232,112,128,2,106,106,32,16,0,68, - 68,68,136,136,136,112,2,106,106,8,16,0,68,68,68,136, - 136,136,112,2,106,106,24,36,0,68,68,68,136,136,136,112, - 2,106,106,40,40,0,68,68,68,136,136,136,112,18,90,106, - 16,32,0,136,136,80,32,64,64,64,2,105,105,64,120,68, - 68,72,240,128,128,128,2,89,105,48,72,72,80,80,144,136, - 136,176,2,105,105,32,16,0,56,4,124,136,152,104,2,105, - 105,8,16,0,56,4,124,136,152,104,2,105,105,24,36,0, - 56,4,124,136,152,104,2,105,105,20,40,0,56,4,124,136, - 152,104,2,105,105,40,40,0,56,4,124,136,152,104,2,106, - 106,24,36,24,0,56,4,124,136,152,104,2,102,102,56,20, - 120,160,168,80,0,104,104,56,68,64,128,136,112,32,64,2, - 105,105,32,16,0,56,68,124,128,136,112,2,105,105,8,16, - 0,56,68,124,128,136,112,2,105,105,24,36,0,56,68,124, - 128,136,112,2,105,105,40,40,0,56,68,124,128,136,112,18, - 57,105,64,32,0,96,32,32,64,64,224,18,73,105,16,32, - 0,96,32,32,64,64,224,18,89,105,48,72,0,96,32,32, - 64,64,224,18,73,105,80,80,0,96,32,32,64,64,224,2, - 106,106,32,24,48,8,56,68,68,136,136,112,2,105,105,20, - 40,0,88,100,68,136,136,136,2,105,105,32,16,0,56,68, - 68,136,136,112,2,105,105,8,16,0,56,68,68,136,136,112, - 2,105,105,24,36,0,56,68,68,136,136,112,2,105,105,20, - 40,0,56,68,68,136,136,112,2,105,105,40,40,0,56,68, - 68,136,136,112,19,87,103,32,32,0,248,0,64,64,1,104, - 104,4,56,76,84,168,200,112,128,2,105,105,32,16,0,68, - 68,68,136,152,104,2,105,105,8,16,0,68,68,68,136,152, - 104,2,105,105,24,36,0,68,68,68,136,152,104,2,105,105, - 40,40,0,68,68,68,136,152,104,0,107,107,8,16,0,68, - 68,136,152,104,8,144,96,0,106,106,64,64,88,100,68,136, - 200,176,128,128,0,107,107,40,40,0,68,68,136,152,104,8, - 144,96}; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Or[1043] U8G_FONT_SECTION("u8g_font_6x13Or") = { - 1,6,13,0,254,9,1,104,2,216,32,127,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13r[1041] U8G_FONT_SECTION("u8g_font_6x13r") = { - 1,6,13,0,254,9,1,102,2,214,32,127,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 6 y= 9 dx= 7 dy= 0 ascent=11 len=13 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[2197] U8G_FONT_SECTION("u8g_font_7x13_67_75") = { - 1,7,13,0,254,3,1,91,2,178,32,255,0,11,254,10, - 0,4,117,117,72,36,254,36,72,18,89,121,32,32,32,168, - 112,32,168,112,32,4,101,117,36,72,248,72,36,4,101,117, - 144,72,124,72,144,4,101,117,36,68,252,68,36,18,89,121, - 32,112,168,32,32,32,32,32,248,4,101,117,144,136,252,136, - 144,18,89,121,248,32,32,32,32,32,168,112,32,18,89,121, - 32,112,168,32,32,168,112,32,248,4,117,117,36,66,252,64, - 32,4,117,117,72,132,126,4,8,4,117,117,36,74,252,72, - 40,4,117,117,72,164,126,36,40,4,117,117,40,84,238,68, - 40,4,117,117,40,84,254,84,40,2,106,122,64,64,128,152, - 104,8,16,84,56,16,2,106,122,32,64,252,68,36,4,4, - 4,4,4,2,106,122,16,8,252,136,144,128,128,128,128,128, - 2,106,122,4,4,4,4,4,36,68,252,64,32,2,106,122, - 128,128,128,128,128,144,136,252,8,16,2,104,120,240,16,16, - 16,16,84,56,16,2,90,122,8,8,8,8,8,40,72,248, - 64,32,4,119,119,28,34,34,34,170,112,32,4,119,119,112, - 136,136,136,170,28,8,2,120,120,254,0,224,192,160,16,8, - 4,2,121,121,144,160,254,160,146,10,254,10,18,4,119,119, - 72,156,170,136,136,136,112,4,119,119,36,114,170,34,34,34, - 28,6,99,115,32,64,252,4,99,115,252,64,32,50,57,121, - 128,192,160,128,128,128,128,128,128,18,57,121,32,96,160,32, - 32,32,32,32,32,6,99,115,16,8,252,4,99,115,252,8, - 16,50,57,121,128,128,128,128,128,128,160,192,128,18,57,121, - 32,32,32,32,32,32,160,96,32,2,105,121,16,8,252,8, - 48,64,252,64,32,2,122,122,40,120,168,40,40,40,40,42, - 60,40,2,105,121,32,64,252,64,48,8,252,8,16,2,105, - 121,32,64,252,64,32,64,252,64,32,2,121,121,68,238,68, - 68,68,68,68,68,68,2,105,121,16,8,252,8,16,8,252, - 8,16,2,122,122,68,68,68,68,68,68,68,68,238,68,3, - 103,119,32,64,252,0,252,8,16,3,103,119,16,8,252,0, - 252,64,32,3,119,119,16,34,126,132,126,40,16,4,117,117, - 40,124,146,124,40,3,119,119,16,40,252,66,252,136,16,3, - 119,119,16,32,126,128,126,32,16,2,121,121,16,40,108,170, - 40,40,40,40,40,3,119,119,16,8,252,2,252,8,16,2, - 121,121,40,40,40,40,40,170,108,40,16,4,117,117,40,124, - 130,124,40,2,122,122,16,40,108,170,40,40,170,108,40,16, - 2,119,119,252,144,136,196,162,144,8,2,119,119,126,18,34, - 70,138,18,32,2,119,119,32,18,138,70,34,18,126,2,119, - 119,8,144,162,196,136,144,252,2,121,121,8,16,62,64,254, - 64,62,16,8,2,121,121,32,16,248,4,254,4,248,16,32, - 4,117,117,32,72,254,68,32,4,117,117,8,36,254,68,8, - 18,89,121,32,112,168,32,248,32,248,32,32,18,89,121,32, - 32,248,32,248,32,168,112,32,3,119,119,16,32,64,182,64, - 32,16,2,122,122,16,40,84,146,0,16,16,0,16,16,3, - 119,119,16,8,4,218,4,8,16,2,122,122,16,16,0,16, - 16,0,146,84,40,16,4,117,117,144,160,254,160,144,4,117, - 117,18,10,254,10,18,3,119,119,16,48,94,130,94,48,16, - 2,121,121,16,40,68,238,40,40,40,40,56,3,119,119,16, - 24,244,130,244,24,16,2,121,121,56,40,40,40,40,238,68, - 40,16,1,124,124,16,40,68,238,40,40,40,56,0,56,40, - 56,1,122,122,16,40,68,238,40,40,40,108,68,124,1,122, - 122,16,40,68,254,40,40,40,108,68,124,1,122,122,16,40, - 68,254,56,56,56,124,68,124,2,121,121,16,40,68,238,68, - 238,40,40,56,1,122,122,16,40,68,238,68,238,40,108,68, - 124,3,119,119,144,152,244,130,244,152,144,2,119,119,254,128, - 188,176,168,164,130,2,119,119,130,74,42,26,122,2,254,2, - 121,121,16,40,68,238,40,238,68,40,16,255,255,255,255,255, - 255,255,255,255,255,255,255,7,118,118,254,254,254,254,254,254, - 0,114,114,254,254,0,115,115,254,254,254,0,117,117,254,254, - 254,254,254,0,119,119,254,254,254,254,254,254,254,0,120,120, - 254,254,254,254,254,254,254,254,0,122,122,254,254,254,254,254, - 254,254,254,254,254,0,123,123,254,254,254,254,254,254,254,254, - 254,254,254,0,125,125,254,254,254,254,254,254,254,254,254,254, - 254,254,254,0,109,125,252,252,252,252,252,252,252,252,252,252, - 252,252,252,0,93,125,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,0,45,125,192,192,192,192,192,192,192,192,192,192, - 192,192,192,0,29,125,128,128,128,128,128,128,128,128,128,128, - 128,128,128,64,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,1,123,123,84,0,170,0,84,0,170,0,84,0, - 170,0,125,125,170,84,170,84,170,84,170,84,170,84,170,84, - 170,0,125,125,254,84,254,170,254,84,254,170,254,84,254,170, - 254,11,114,114,254,254,96,29,125,128,128,128,128,128,128,128, - 128,128,128,128,128,128,0,71,119,240,240,240,240,240,240,240, - 64,55,119,224,224,224,224,224,224,224,7,70,118,240,240,240, - 240,240,240,0,125,125,240,240,240,240,240,240,254,254,254,254, - 254,254,254,0,125,125,240,240,240,240,240,240,14,14,14,14, - 14,14,14,0,125,125,254,254,254,254,254,254,240,240,240,240, - 240,240,240,0,125,125,254,254,254,254,254,254,14,14,14,14, - 14,14,14,71,54,118,224,224,224,224,224,224,0,125,125,14, - 14,14,14,14,14,240,240,240,240,240,240,240,0,125,125,14, - 14,14,14,14,14,254,254,254,254,254,254,254,3,119,119,254, - 254,254,254,254,254,254,3,119,119,254,130,130,130,130,130,254, - 3,119,119,124,130,130,130,130,130,124,3,119,119,254,130,186, - 186,186,130,254,3,119,119,254,130,254,130,254,130,254,3,119, - 119,254,170,170,170,170,170,254,3,119,119,254,170,254,170,254, - 170,254,3,119,119,254,146,138,198,162,146,254,3,119,119,254, - 146,162,198,138,146,254,3,119,119,254,214,170,214,170,214,254, - 20,85,117,248,248,248,248,248,20,85,117,248,136,136,136,248, - 4,117,117,254,254,254,254,254,4,117,117,254,130,130,130,254, - 19,87,119,248,248,248,248,248,248,248,19,87,119,248,136,136, - 136,136,136,248,4,117,117,62,126,254,252,248,4,117,117,62, - 66,130,132,248,2,120,120,16,16,56,56,124,124,254,254,2, - 120,120,16,16,40,40,68,68,130,254,19,86,118,32,32,112, - 112,248,248,19,86,118,32,32,80,80,136,248,3,119,119,128, - 224,248,254,248,224,128,3,119,119,128,224,152,134,152,224,128, - 4,101,117,192,240,252,240,192,4,101,117,192,176,140,176,192, - 4,117,117,128,240,254,240,128,4,117,117,128,240,142,240,128, - 2,120,120,254,254,124,124,56,56,16,16,2,120,120,254,130, - 68,68,40,40,16,16,19,86,118,248,248,112,112,32,32,19, - 86,118,248,136,80,80,32,32,3,119,119,2,14,62,254,62, - 14,2,3,119,119,2,14,50,194,50,14,2,4,101,117,12, - 60,252,60,12,4,101,117,12,52,196,52,12,4,117,117,2, - 30,254,30,2,4,117,117,2,30,226,30,2,2,119,119,16, - 56,124,254,124,56,16,2,119,119,16,40,68,130,68,40,16, - 2,119,119,16,40,84,186,84,40,16,3,119,119,56,68,146, - 186,146,68,56,18,89,121,32,32,80,80,136,80,80,32,32, - 3,119,119,56,68,130,130,130,68,56,3,119,119,40,0,130, - 0,130,0,40,3,119,119,56,108,170,170,170,108,56,3,119, - 119,56,68,146,170,146,68,56,3,119,119,56,124,254,254,254, - 124,56,3,119,119,56,116,242,242,242,116,56,3,119,119,56, - 92,158,158,158,92,56,3,119,119,56,68,130,254,254,124,56, - 3,119,119,56,124,254,254,130,68,56,3,119,119,56,92,158, - 158,130,68,56,3,119,119,56,76,142,142,254,124,56,51,71, - 119,192,224,240,240,240,224,192,3,71,119,48,112,240,240,240, - 112,48,0,125,125,254,254,254,254,198,130,130,130,198,254,254, - 254,254,0,125,125,254,254,254,254,198,186,186,186,198,254,254, - 254,254,6,119,119,254,254,254,254,198,186,186,0,119,119,186, - 186,198,254,254,254,254,6,68,116,48,64,128,128,54,68,116, - 192,32,16,16,51,68,116,16,16,32,192,3,68,116,128,128, - 64,48,6,116,116,56,68,130,130,3,116,116,130,130,68,56, - 3,119,119,2,6,14,30,62,126,254,3,119,119,128,192,224, - 240,248,252,254,3,119,119,254,252,248,240,224,192,128,3,119, - 119,254,126,62,30,14,6,2,20,85,117,112,136,136,136,112, - 3,119,119,254,226,226,226,226,226,254,3,119,119,254,142,142, - 142,142,142,254,3,119,119,254,254,250,242,226,194,254,3,119, - 119,254,134,142,158,190,254,254,3,119,119,254,146,146,146,146, - 146,254,2,120,120,16,16,40,40,84,124,146,254,2,120,120, - 16,16,56,56,116,116,242,254,2,120,120,16,16,56,56,92, - 92,158,254,3,119,119,56,68,130,130,130,68,56,2,119,119, - 254,146,146,242,130,130,254,2,119,119,254,130,130,242,146,146, - 254,2,119,119,254,130,130,158,146,146,254,2,119,119,254,146, - 146,158,130,130,254,2,119,119,56,84,146,242,130,68,56,2, - 119,119,56,68,130,242,146,84,56,2,119,119,56,68,130,158, - 146,84,56,2,119,119,56,84,146,158,130,68,56,255,255,255, - 255,255,255,255,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 7, '1' Height: 5 - Calculated Max Values w= 7 h= 9 x= 1 y= 2 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_75r[471] U8G_FONT_SECTION("u8g_font_7x13_75r") = { - 1,7,13,0,254,7,1,71,0,0,32,79,0,9,0,8, - 0,3,119,119,254,254,254,254,254,254,254,3,119,119,254,130, - 130,130,130,130,254,3,119,119,124,130,130,130,130,130,124,3, - 119,119,254,130,186,186,186,130,254,3,119,119,254,130,254,130, - 254,130,254,3,119,119,254,170,170,170,170,170,254,3,119,119, - 254,170,254,170,254,170,254,3,119,119,254,146,138,198,162,146, - 254,3,119,119,254,146,162,198,138,146,254,3,119,119,254,214, - 170,214,170,214,254,20,85,117,248,248,248,248,248,20,85,117, - 248,136,136,136,248,4,117,117,254,254,254,254,254,4,117,117, - 254,130,130,130,254,19,87,119,248,248,248,248,248,248,248,19, - 87,119,248,136,136,136,136,136,248,4,117,117,62,126,254,252, - 248,4,117,117,62,66,130,132,248,2,120,120,16,16,56,56, - 124,124,254,254,2,120,120,16,16,40,40,68,68,130,254,19, - 86,118,32,32,112,112,248,248,19,86,118,32,32,80,80,136, - 248,3,119,119,128,224,248,254,248,224,128,3,119,119,128,224, - 152,134,152,224,128,4,101,117,192,240,252,240,192,4,101,117, - 192,176,140,176,192,4,117,117,128,240,254,240,128,4,117,117, - 128,240,142,240,128,2,120,120,254,254,124,124,56,56,16,16, - 2,120,120,254,130,68,68,40,40,16,16,19,86,118,248,248, - 112,112,32,32,19,86,118,248,136,80,80,32,32,3,119,119, - 2,14,62,254,62,14,2,3,119,119,2,14,50,194,50,14, - 2,4,101,117,12,60,252,60,12,4,101,117,12,52,196,52, - 12,4,117,117,2,30,254,30,2,4,117,117,2,30,226,30, - 2,2,119,119,16,56,124,254,124,56,16,2,119,119,16,40, - 68,130,68,40,16,2,119,119,16,40,84,186,84,40,16,3, - 119,119,56,68,146,186,146,68,56,18,89,121,32,32,80,80, - 136,80,80,32,32,3,119,119,56,68,130,130,130,68,56,3, - 119,119,40,0,130,0,130,0,40,3,119,119,56,108,170,170, - 170,108,56,3,119,119,56,68,146,170,146,68,56,3,119,119, - 56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13B[2172] U8G_FONT_SECTION("u8g_font_7x13B") = { - 1,7,13,0,254,9,1,105,2,216,32,255,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,112,34,42,122,192,192,0,192,192,192,192,192,192, - 192,3,104,120,16,124,212,208,208,212,124,16,2,105,121,56, - 108,96,96,248,96,96,108,184,3,102,118,204,252,72,72,252, - 204,2,105,121,204,204,120,120,252,48,252,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,106,122,120,204,192, - 120,204,204,120,12,204,120,26,82,114,216,216,2,106,122,120, - 204,132,180,228,228,180,132,204,120,20,87,119,240,24,248,152, - 248,0,248,3,103,119,52,104,208,160,208,104,52,3,100,116, - 252,12,12,12,21,65,113,240,2,106,122,120,204,132,188,172, - 188,180,172,204,120,27,81,113,248,7,100,116,120,204,204,120, - 3,103,119,48,48,252,48,48,0,252,6,70,118,224,176,48, - 96,192,240,6,70,118,224,176,96,48,176,224,25,67,115,48, - 96,192,1,103,119,204,204,204,204,204,252,128,2,105,121,124, - 252,244,244,244,116,52,52,52,38,34,114,192,192,16,50,114, - 96,192,6,70,118,96,224,96,96,96,240,21,87,119,112,248, - 136,248,112,0,248,3,103,119,176,88,44,20,44,88,176,2, - 106,122,96,224,96,96,100,252,28,52,60,12,2,106,122,96, - 224,96,96,120,236,12,24,48,60,2,106,122,224,176,96,48, - 180,236,28,52,60,12,2,106,122,48,48,0,48,48,96,192, - 204,204,120,2,106,122,96,48,0,48,120,204,204,252,204,204, - 2,106,122,24,48,0,48,120,204,204,252,204,204,2,106,122, - 56,108,0,48,120,204,204,252,204,204,2,106,122,52,88,0, - 48,120,204,204,252,204,204,2,106,122,204,204,0,48,120,204, - 204,252,204,204,2,106,122,120,72,120,48,120,204,204,252,204, - 204,2,105,121,124,248,216,216,220,248,216,216,220,0,107,123, - 120,204,192,192,192,192,192,204,120,48,96,2,106,122,96,48, - 0,252,192,192,240,192,192,252,2,106,122,24,48,0,252,192, - 192,240,192,192,252,2,106,122,56,108,0,252,192,192,240,192, - 192,252,2,106,122,204,204,0,252,192,192,240,192,192,252,2, - 106,122,96,48,0,252,48,48,48,48,48,252,2,106,122,24, - 48,0,252,48,48,48,48,48,252,2,106,122,56,108,0,252, - 48,48,48,48,48,252,2,106,122,204,204,0,252,48,48,48, - 48,48,252,2,105,121,248,108,108,108,236,108,108,108,248,2, - 106,122,52,88,0,204,204,236,252,220,204,204,2,106,122,96, - 48,0,120,204,204,204,204,204,120,2,106,122,24,48,0,120, - 204,204,204,204,204,120,2,106,122,56,108,0,120,204,204,204, - 204,204,120,2,106,122,52,88,0,120,204,204,204,204,204,120, - 2,106,122,204,204,0,120,204,204,204,204,204,120,3,101,117, - 204,120,48,120,204,1,106,122,4,120,220,220,220,236,236,236, - 120,128,2,106,122,96,48,0,204,204,204,204,204,204,120,2, - 106,122,24,48,0,204,204,204,204,204,204,120,2,106,122,56, - 108,0,204,204,204,204,204,204,120,2,106,122,204,204,0,204, - 204,204,204,204,204,120,2,106,122,24,48,0,204,72,120,48, - 48,48,48,2,105,121,192,248,204,204,204,248,192,192,192,2, - 105,121,120,204,204,216,216,204,204,204,216,2,105,121,48,24, - 0,120,12,124,204,220,124,2,105,121,24,48,0,120,12,124, - 204,220,124,2,105,121,56,108,0,120,12,124,204,220,124,2, - 105,121,52,88,0,120,12,124,204,220,124,2,105,121,108,108, - 0,120,12,124,204,220,124,2,106,122,56,40,56,0,120,12, - 124,204,220,124,2,102,118,120,52,124,176,180,104,0,104,120, - 120,204,192,192,204,120,48,96,2,105,121,48,24,0,120,204, - 252,192,204,120,2,105,121,24,48,0,120,204,252,192,204,120, - 2,105,121,56,108,0,120,204,252,192,204,120,2,105,121,108, - 108,0,120,204,252,192,204,120,18,73,121,192,96,0,224,96, - 96,96,96,240,18,73,121,48,96,0,224,96,96,96,96,240, - 2,89,121,112,216,0,112,48,48,48,48,120,18,89,121,216, - 216,0,224,96,96,96,96,240,2,106,122,104,48,120,12,124, - 204,204,204,204,120,2,105,121,52,88,0,248,236,204,204,204, - 204,2,105,121,96,48,0,120,204,204,204,204,120,2,105,121, - 24,48,0,120,204,204,204,204,120,2,105,121,56,108,0,120, - 204,204,204,204,120,2,105,121,52,88,0,120,204,204,204,204, - 120,2,105,121,108,108,0,120,204,204,204,204,120,3,103,119, - 48,48,0,252,0,48,48,1,105,121,4,120,204,220,204,236, - 204,120,128,2,105,121,96,48,0,204,204,204,204,220,124,2, - 105,121,24,48,0,204,204,204,204,220,124,2,105,121,56,108, - 0,204,204,204,204,220,124,2,105,121,108,108,0,204,204,204, - 204,220,124,0,107,123,24,48,0,204,204,204,220,124,12,204, - 120,0,106,122,192,192,216,236,204,204,236,216,192,192,0,107, - 123,108,108,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Br[1041] U8G_FONT_SECTION("u8g_font_7x13Br") = { - 1,7,13,0,254,9,1,105,2,216,32,127,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13[2157] U8G_FONT_SECTION("u8g_font_7x13") = { - 1,7,13,0,254,9,1,95,2,207,32,255,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,13,0,112,50,25,121, - 128,0,128,128,128,128,128,128,128,19,88,120,32,112,168,160, - 160,168,112,32,2,105,121,56,68,64,64,224,64,64,68,184, - 3,102,118,132,120,72,72,120,132,2,89,121,136,136,80,80, - 248,32,248,32,32,50,25,121,128,128,128,128,0,128,128,128, - 128,18,74,122,96,144,128,96,144,144,96,16,144,96,25,66, - 114,144,144,2,105,121,120,132,180,164,164,164,180,132,120,20, - 87,119,112,8,120,136,120,0,248,3,103,119,20,40,80,160, - 80,40,20,20,83,115,248,8,8,22,65,113,240,2,105,121, - 120,132,180,172,172,180,172,132,120,26,81,113,248,23,68,116, - 96,144,144,96,19,87,119,32,32,248,32,32,0,248,22,54, - 118,64,160,32,64,128,224,22,54,118,224,32,64,32,160,64, - 42,34,114,64,128,1,103,119,132,132,132,132,204,180,128,2, - 105,121,124,232,232,232,104,40,40,40,40,38,33,113,192,32, - 34,114,64,128,22,54,118,64,192,64,64,64,224,21,70,118, - 96,144,144,96,0,240,3,103,119,160,80,40,20,40,80,160, - 2,106,122,64,192,64,64,68,236,20,20,28,4,2,106,122, - 64,192,64,64,72,244,4,8,16,28,2,106,122,224,32,64, - 32,164,76,20,20,28,4,2,105,121,32,0,32,32,64,128, - 132,132,120,2,106,122,32,16,0,48,72,132,132,252,132,132, - 2,106,122,16,32,0,48,72,132,132,252,132,132,2,106,122, - 48,72,0,48,72,132,132,252,132,132,2,106,122,100,152,0, - 48,72,132,132,252,132,132,2,106,122,72,72,0,48,72,132, - 132,252,132,132,2,106,122,48,72,48,48,72,132,132,252,132, - 132,2,105,121,92,160,160,160,184,224,160,160,188,0,107,123, - 120,132,128,128,128,128,128,132,120,16,32,2,106,122,32,16, - 0,252,128,128,240,128,128,252,2,106,122,16,32,0,252,128, - 128,240,128,128,252,2,106,122,48,72,0,252,128,128,240,128, - 128,252,2,106,122,72,72,0,252,128,128,240,128,128,252,18, - 90,122,64,32,0,248,32,32,32,32,32,248,18,90,122,32, - 64,0,248,32,32,32,32,32,248,18,90,122,32,80,0,248, - 32,32,32,32,32,248,18,90,122,136,136,0,248,32,32,32, - 32,32,248,2,105,121,248,68,68,68,228,68,68,68,248,2, - 106,122,100,152,0,132,196,164,164,148,140,132,2,106,122,32, - 16,0,120,132,132,132,132,132,120,2,106,122,16,32,0,120, - 132,132,132,132,132,120,2,106,122,48,72,0,120,132,132,132, - 132,132,120,2,106,122,100,152,0,120,132,132,132,132,132,120, - 2,106,122,72,72,0,120,132,132,132,132,132,120,3,102,118, - 132,72,48,48,72,132,1,107,123,4,120,140,148,148,164,164, - 164,196,120,128,2,106,122,32,16,0,132,132,132,132,132,132, - 120,2,106,122,16,32,0,132,132,132,132,132,132,120,2,106, - 122,48,72,0,132,132,132,132,132,132,120,2,106,122,72,72, - 0,132,132,132,132,132,132,120,18,90,122,16,32,0,136,136, - 80,32,32,32,32,2,105,121,128,248,132,132,132,248,128,128, - 128,18,89,121,96,144,144,160,160,144,136,136,176,2,105,121, - 32,16,0,120,4,124,132,140,116,2,105,121,16,32,0,120, - 4,124,132,140,116,2,105,121,48,72,0,120,4,124,132,140, - 116,2,105,121,100,152,0,120,4,124,132,140,116,2,105,121, - 72,72,0,120,4,124,132,140,116,2,106,122,48,72,48,0, - 120,4,124,132,140,116,2,102,118,104,20,124,144,148,104,0, - 104,120,120,132,128,128,132,120,16,32,2,105,121,32,16,0, - 120,132,252,128,132,120,2,105,121,16,32,0,120,132,252,128, - 132,120,2,105,121,48,72,0,120,132,252,128,132,120,2,105, - 121,72,72,0,120,132,252,128,132,120,18,89,121,64,32,0, - 96,32,32,32,32,248,18,89,121,32,64,0,96,32,32,32, - 32,248,18,89,121,96,144,0,96,32,32,32,32,248,18,89, - 121,144,144,0,96,32,32,32,32,248,2,106,122,72,48,80, - 8,120,132,132,132,132,120,2,105,121,100,152,0,184,196,132, - 132,132,132,2,105,121,32,16,0,120,132,132,132,132,120,2, - 105,121,16,32,0,120,132,132,132,132,120,2,105,121,48,72, - 0,120,132,132,132,132,120,2,105,121,100,152,0,120,132,132, - 132,132,120,2,105,121,72,72,0,120,132,132,132,132,120,19, - 87,119,32,32,0,248,0,32,32,1,104,120,4,120,140,148, - 164,196,120,128,2,105,121,32,16,0,132,132,132,132,140,116, - 2,105,121,16,32,0,132,132,132,132,140,116,2,105,121,48, - 72,0,132,132,132,132,140,116,2,105,121,72,72,0,132,132, - 132,132,140,116,0,107,123,16,32,0,132,132,132,140,116,4, - 132,120,0,106,122,128,128,184,196,132,132,196,184,128,128,0, - 107,123,72,72,0,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13O[2158] U8G_FONT_SECTION("u8g_font_7x13O") = { - 1,7,13,0,254,9,1,96,2,208,32,255,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,13,0,112,34,41, - 121,64,0,64,64,64,128,128,128,128,3,104,120,16,56,84, - 80,160,168,112,32,2,121,121,28,34,32,32,112,32,64,68, - 184,3,118,118,66,60,36,72,120,132,2,105,121,68,68,40, - 40,124,16,248,32,32,34,41,121,64,64,64,64,0,128,128, - 128,128,2,106,122,24,36,32,48,72,72,48,16,144,96,25, - 66,114,144,144,2,121,121,60,66,90,82,82,164,180,132,120, - 4,103,119,56,4,60,68,60,0,248,3,103,119,20,40,80, - 160,160,80,40,20,83,115,248,16,16,22,65,113,240,2,121, - 121,60,66,90,86,172,180,172,132,120,26,81,113,248,23,68, - 116,96,144,144,96,19,87,119,16,16,120,32,32,0,248,22, - 70,118,32,80,16,96,128,224,22,70,118,96,16,96,32,160, - 64,42,34,114,64,128,1,119,119,66,66,66,132,204,180,128, - 2,105,121,124,232,232,232,40,80,80,80,80,38,33,113,192, - 32,34,114,64,128,38,54,118,32,96,32,64,64,224,21,86, - 118,48,72,72,48,0,240,3,103,119,80,40,20,20,40,80, - 160,2,106,122,32,96,32,64,68,236,20,40,56,8,2,106, - 122,32,96,32,64,72,244,4,24,32,56,2,106,122,96,16, - 96,32,164,76,20,40,56,8,2,105,121,16,0,16,16,32, - 64,132,132,120,2,122,122,16,8,0,24,36,66,66,124,132, - 132,2,122,122,8,16,0,24,36,66,66,124,132,132,2,122, - 122,24,36,0,24,36,66,66,124,132,132,2,122,122,50,76, - 0,24,36,66,66,124,132,132,2,122,122,36,36,0,24,36, - 66,66,124,132,132,2,122,122,24,36,24,24,36,66,66,124, - 132,132,2,121,121,46,80,80,80,124,160,160,160,188,0,123, - 123,60,66,64,64,64,128,128,132,120,16,32,2,122,122,16, - 8,0,126,64,64,112,128,128,252,2,122,122,8,16,0,126, - 64,64,112,128,128,252,2,122,122,24,36,0,126,64,64,112, - 128,128,252,2,122,122,36,36,0,126,64,64,112,128,128,252, - 2,106,122,32,16,0,124,16,16,32,32,32,248,2,106,122, - 16,32,0,124,16,16,32,32,32,248,2,106,122,16,40,0, - 124,16,16,32,32,32,248,2,106,122,68,68,0,124,16,16, - 32,32,32,248,2,121,121,124,34,34,34,242,68,68,68,248, - 2,122,122,50,76,0,66,98,82,82,140,140,132,2,122,122, - 16,8,0,60,66,66,132,132,132,120,2,122,122,8,16,0, - 60,66,66,132,132,132,120,2,122,122,24,36,0,60,66,66, - 132,132,132,120,2,122,122,50,76,0,60,66,66,132,132,132, - 120,2,122,122,36,36,0,60,66,66,132,132,132,120,3,118, - 118,66,36,24,48,72,132,1,123,123,2,60,70,74,74,82, - 164,164,196,120,128,2,122,122,16,8,0,66,66,66,132,132, - 132,120,2,122,122,8,16,0,66,66,66,132,132,132,120,2, - 122,122,24,36,0,66,66,66,132,132,132,120,2,122,122,36, - 36,0,66,66,66,132,132,132,120,18,90,122,16,32,0,136, - 136,80,32,32,64,64,2,121,121,64,124,66,66,66,124,128, - 128,128,18,89,121,48,72,72,80,80,144,136,136,176,2,121, - 121,16,8,0,60,2,124,132,140,116,2,121,121,8,16,0, - 60,2,124,132,140,116,2,121,121,24,36,0,60,2,124,132, - 140,116,2,121,121,50,76,0,60,2,124,132,140,116,2,121, - 121,36,36,0,60,2,124,132,140,116,2,122,122,24,36,24, - 0,60,2,124,132,140,116,2,118,118,52,10,124,144,148,104, - 0,120,120,60,66,128,128,132,120,16,32,2,121,121,16,8, - 0,60,66,124,128,132,120,2,121,121,8,16,0,60,66,124, - 128,132,120,2,121,121,24,36,0,60,66,124,128,132,120,2, - 121,121,36,36,0,60,66,124,128,132,120,18,89,121,32,16, - 0,48,16,32,32,32,248,18,89,121,16,32,0,48,16,32, - 32,32,248,18,89,121,48,72,0,48,16,32,32,32,248,18, - 89,121,72,72,0,48,16,32,32,32,248,2,122,122,36,24, - 40,4,60,66,66,132,132,120,2,121,121,50,76,0,92,98, - 66,132,132,132,2,121,121,16,8,0,60,66,66,132,132,120, - 2,121,121,8,16,0,60,66,66,132,132,120,2,121,121,24, - 36,0,60,66,66,132,132,120,2,121,121,50,76,0,60,66, - 66,132,132,120,2,121,121,36,36,0,60,66,66,132,132,120, - 19,71,119,32,32,0,240,0,64,64,1,120,120,2,60,74, - 82,164,196,120,128,2,121,121,16,8,0,66,66,66,132,140, - 116,2,121,121,8,16,0,66,66,66,132,140,116,2,121,121, - 24,36,0,66,66,66,132,140,116,2,121,121,36,36,0,66, - 66,66,132,140,116,0,123,123,8,16,0,66,66,132,140,116, - 4,132,120,0,122,122,64,64,92,98,66,132,196,184,128,128, - 0,123,123,36,36,0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Or[1035] U8G_FONT_SECTION("u8g_font_7x13Or") = { - 1,7,13,0,254,9,1,96,2,208,32,127,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13r[1034] U8G_FONT_SECTION("u8g_font_7x13r") = { - 1,7,13,0,254,9,1,95,2,207,32,127,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14B[2390] U8G_FONT_SECTION("u8g_font_7x14B") = { - 1,7,14,0,254,10,1,137,3,30,32,255,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,34,42,122,192,192,0,192,192,192,192,192,192,192,1, - 105,121,48,124,180,176,176,176,180,124,48,2,105,121,56,108, - 96,96,240,96,96,248,108,4,102,118,204,120,104,88,120,204, - 2,106,122,132,204,120,252,48,48,252,48,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,107,123,120,204,96, - 48,120,204,120,48,24,204,120,27,82,114,216,216,2,107,123, - 120,204,252,236,236,236,236,236,252,204,120,21,88,120,112,216, - 120,216,216,120,0,248,2,103,119,28,60,120,240,120,60,28, - 2,101,117,252,252,12,12,12,22,65,113,240,2,107,123,120, - 204,252,236,236,252,236,236,236,204,120,28,81,113,248,25,84, - 116,112,216,216,112,2,102,118,48,48,252,48,48,252,22,87, - 119,112,216,24,48,96,192,248,22,87,119,112,216,24,112,24, - 216,112,26,67,115,48,96,192,0,104,120,204,204,204,204,220, - 252,192,192,0,108,124,124,236,236,236,236,108,44,44,44,44, - 44,60,39,34,114,192,192,32,51,115,96,96,192,22,54,118, - 96,224,96,96,96,96,22,86,118,112,216,216,112,0,248,2, - 103,119,224,112,56,28,56,112,224,2,106,122,100,236,104,120, - 120,52,108,92,220,140,2,106,122,100,236,104,120,120,56,116, - 76,216,156,2,106,122,196,108,232,120,240,60,108,220,156,12, - 0,107,123,96,96,0,96,96,96,96,96,204,204,120,2,108, - 124,96,48,0,120,252,204,204,204,252,204,204,204,2,108,124, - 24,48,0,120,252,204,204,204,252,204,204,204,2,108,124,48, - 120,0,120,252,204,204,204,252,204,204,204,2,108,124,104,176, - 0,120,252,204,204,204,252,204,204,204,2,108,124,204,204,0, - 120,252,204,204,204,252,204,204,204,2,108,124,48,72,48,0, - 120,252,204,204,252,204,204,204,2,122,122,126,216,216,216,220, - 248,216,216,216,222,0,108,124,120,204,204,192,192,192,192,204, - 204,120,48,96,2,108,124,96,48,0,252,192,192,192,248,192, - 192,192,252,2,108,124,24,48,0,252,192,192,192,248,192,192, - 192,252,2,108,124,48,120,0,252,192,192,192,248,192,192,192, - 252,2,108,124,204,204,0,252,192,192,192,248,192,192,192,252, - 2,108,124,96,48,0,252,48,48,48,48,48,48,48,252,2, - 108,124,24,48,0,252,48,48,48,48,48,48,48,252,2,108, - 124,48,120,0,252,48,48,48,48,48,48,48,252,2,108,124, - 204,204,0,252,48,48,48,48,48,48,48,252,2,122,122,120, - 108,102,102,254,102,102,102,108,120,2,108,124,104,176,0,204, - 236,236,236,220,220,220,204,204,2,108,124,96,48,0,120,204, - 204,204,204,204,204,204,120,2,108,124,24,48,0,120,204,204, - 204,204,204,204,204,120,2,108,124,48,120,0,120,204,204,204, - 204,204,204,204,120,2,108,124,104,176,0,120,204,204,204,204, - 204,204,204,120,2,108,124,204,204,0,120,204,204,204,204,204, - 204,204,120,2,119,119,198,108,56,56,108,198,130,0,110,126, - 4,4,120,220,220,220,220,236,236,236,236,120,128,128,2,108, - 124,96,48,0,204,204,204,204,204,204,204,204,120,2,108,124, - 24,48,0,204,204,204,204,204,204,204,204,120,2,108,124,48, - 120,0,204,204,204,204,204,204,204,204,120,2,108,124,204,204, - 0,204,204,204,204,204,204,204,204,120,2,108,124,24,48,0, - 204,204,204,120,120,120,48,48,48,2,106,122,192,192,248,204, - 204,204,204,248,192,192,2,106,122,56,108,108,108,120,108,108, - 108,108,248,2,106,122,96,48,0,120,204,60,108,204,204,124, - 2,106,122,24,48,0,120,204,60,108,204,204,124,2,106,122, - 48,120,0,120,204,60,108,204,204,124,2,106,122,104,176,0, - 120,204,60,108,204,204,124,2,106,122,204,204,0,120,204,60, - 108,204,204,124,2,107,123,48,72,48,0,120,204,60,108,204, - 204,124,2,119,119,124,218,58,94,216,222,124,0,105,121,120, - 204,192,192,192,204,120,48,96,2,106,122,96,48,0,120,204, - 204,252,192,204,120,2,106,122,24,48,0,120,204,204,252,192, - 204,120,2,106,122,48,120,0,120,204,204,252,192,204,120,2, - 106,122,204,204,0,120,204,204,252,192,204,120,34,58,122,192, - 96,0,96,96,96,96,96,96,96,34,58,122,96,192,0,192, - 192,192,192,192,192,192,18,74,122,96,240,0,96,96,96,96, - 96,96,96,2,106,122,204,204,0,48,48,48,48,48,48,48, - 2,107,123,216,112,240,152,12,124,204,204,204,204,120,2,106, - 122,104,176,0,248,204,204,204,204,204,204,2,106,122,96,48, - 0,120,204,204,204,204,204,120,2,106,122,24,48,0,120,204, - 204,204,204,204,120,2,106,122,48,120,0,120,204,204,204,204, - 204,120,2,106,122,104,176,0,120,204,204,204,204,204,120,2, - 106,122,204,204,0,120,204,204,204,204,204,120,2,104,120,48, - 48,0,252,252,0,48,48,0,107,123,4,8,120,220,220,236, - 236,204,120,128,128,2,106,122,96,48,0,204,204,204,204,204, - 204,124,2,106,122,24,48,0,204,204,204,204,204,204,124,2, - 106,122,48,120,0,204,204,204,204,204,204,124,2,106,122,204, - 204,0,204,204,204,204,204,204,124,0,108,124,24,48,0,204, - 204,204,120,56,56,48,240,96,0,108,124,192,192,192,248,204, - 204,204,204,204,248,192,192,0,108,124,204,204,0,204,204,204, - 120,56,56,48,240,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 6 h=13 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14Br[1151] U8G_FONT_SECTION("u8g_font_7x14Br") = { - 1,7,14,0,254,10,1,137,3,30,32,127,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14[2374] U8G_FONT_SECTION("u8g_font_7x14") = { - 1,7,14,0,254,10,1,138,3,30,32,255,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,50,26,122,128,128,0,128,128,128,128,128,128,128,1, - 105,121,32,120,164,160,160,160,164,120,32,18,89,121,48,72, - 64,64,240,64,64,240,72,4,102,118,132,120,72,72,120,132, - 18,90,122,136,80,80,32,248,32,248,32,32,32,50,26,122, - 128,128,128,128,0,0,128,128,128,128,2,107,123,120,132,64, - 48,72,132,72,48,8,132,120,27,66,114,144,144,2,107,123, - 120,132,180,204,196,196,196,204,180,132,120,21,88,120,112,136, - 120,136,152,104,0,248,2,103,119,20,40,80,160,80,40,20, - 18,84,116,248,8,8,8,22,65,113,240,2,107,123,120,132, - 244,204,204,244,204,204,204,132,120,27,81,113,248,25,68,116, - 96,144,144,96,18,86,118,32,32,248,32,32,248,22,71,119, - 96,144,16,32,64,128,240,22,71,119,96,144,16,96,16,144, - 96,42,51,115,32,64,128,16,88,120,136,136,136,136,216,168, - 128,128,16,92,124,120,168,168,168,168,104,40,40,40,40,40, - 56,55,17,113,128,32,35,115,64,64,128,38,55,119,64,192, - 64,64,64,64,224,22,70,118,96,144,144,96,0,240,2,103, - 119,160,80,40,20,40,80,160,2,106,122,64,196,72,72,80, - 36,44,84,156,132,2,106,122,64,196,72,72,80,40,52,68, - 136,156,2,106,122,196,36,72,48,208,36,76,84,156,4,0, - 107,123,32,32,0,32,32,32,32,64,132,132,120,2,108,124, - 32,16,0,48,72,132,132,252,132,132,132,132,2,108,124,16, - 32,0,48,72,132,132,252,132,132,132,132,2,108,124,48,72, - 0,48,72,132,132,252,132,132,132,132,2,108,124,100,152,0, - 48,72,132,132,252,132,132,132,132,2,107,123,72,0,48,72, - 132,132,252,132,132,132,132,2,107,123,48,72,48,72,132,132, - 252,132,132,132,132,2,106,122,60,80,144,144,252,144,144,144, - 144,156,0,108,124,120,132,132,128,128,128,128,132,132,120,16, - 32,2,108,124,32,16,0,252,128,128,128,248,128,128,128,252, - 2,108,124,16,32,0,252,128,128,128,248,128,128,128,252,2, - 108,124,48,72,0,252,128,128,128,248,128,128,128,252,2,107, - 123,72,0,252,128,128,128,248,128,128,128,252,18,92,124,64, - 32,0,248,32,32,32,32,32,32,32,248,18,92,124,16,32, - 0,248,32,32,32,32,32,32,32,248,18,92,124,32,80,0, - 248,32,32,32,32,32,32,32,248,18,91,123,80,0,248,32, - 32,32,32,32,32,32,248,2,122,122,120,68,66,66,242,66, - 66,66,68,120,2,108,124,100,152,0,196,196,164,164,148,148, - 148,140,140,2,108,124,32,16,0,120,132,132,132,132,132,132, - 132,120,2,108,124,16,32,0,120,132,132,132,132,132,132,132, - 120,2,108,124,48,72,0,120,132,132,132,132,132,132,132,120, - 2,108,124,100,152,0,120,132,132,132,132,132,132,132,120,2, - 107,123,72,0,120,132,132,132,132,132,132,132,120,2,119,119, - 130,68,40,16,40,68,130,0,110,126,4,4,120,140,148,148, - 148,164,164,164,196,120,128,128,2,108,124,32,16,0,132,132, - 132,132,132,132,132,132,120,2,108,124,16,32,0,132,132,132, - 132,132,132,132,132,120,2,108,124,48,72,0,132,132,132,132, - 132,132,132,132,120,2,107,123,72,0,132,132,132,132,132,132, - 132,132,120,18,92,124,16,32,0,136,136,80,80,32,32,32, - 32,32,2,106,122,128,128,248,132,132,132,132,248,128,128,2, - 106,122,48,72,72,72,112,72,68,68,68,248,2,106,122,32, - 16,0,120,132,4,124,132,132,124,2,106,122,8,16,0,120, - 132,4,124,132,132,124,2,106,122,48,72,0,120,132,4,124, - 132,132,124,2,106,122,100,152,0,120,132,4,124,132,132,124, - 2,105,121,72,0,120,132,4,124,132,132,124,2,107,123,48, - 72,48,0,120,132,4,124,132,132,124,2,119,119,124,146,50, - 94,144,146,124,0,105,121,120,132,128,128,128,132,120,16,32, - 2,106,122,32,16,0,120,132,132,252,128,132,120,2,106,122, - 16,32,0,120,132,132,252,128,132,120,2,106,122,48,72,0, - 120,132,132,252,128,132,120,2,105,121,72,0,120,132,132,252, - 128,132,120,18,90,122,64,32,0,96,32,32,32,32,32,248, - 18,90,122,16,32,0,96,32,32,32,32,32,248,18,90,122, - 96,144,0,96,32,32,32,32,32,248,18,89,121,80,0,96, - 32,32,32,32,32,248,18,91,123,80,32,80,8,120,136,136, - 136,136,136,112,2,106,122,100,152,0,184,196,132,132,132,132, - 132,2,106,122,32,16,0,120,132,132,132,132,132,120,2,106, - 122,16,32,0,120,132,132,132,132,132,120,2,106,122,48,72, - 0,120,132,132,132,132,132,120,2,106,122,100,152,0,120,132, - 132,132,132,132,120,2,105,121,72,0,120,132,132,132,132,132, - 120,2,101,117,48,0,252,0,48,0,107,123,4,8,120,148, - 148,164,164,196,120,128,128,2,106,122,32,16,0,132,132,132, - 132,132,140,116,2,106,122,16,32,0,132,132,132,132,132,140, - 116,2,106,122,48,72,0,132,132,132,132,132,140,116,2,105, - 121,72,0,132,132,132,132,132,140,116,0,108,124,16,32,0, - 132,132,68,72,40,56,16,144,96,0,108,124,128,128,128,184, - 196,132,132,132,196,184,128,128,0,107,123,72,0,132,132,68, - 72,40,56,16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14r[1151] U8G_FONT_SECTION("u8g_font_7x14r") = { - 1,7,14,0,254,10,1,138,3,30,32,127,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 7 y= 9 dx= 8 dy= 0 ascent=11 len=13 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[2420] U8G_FONT_SECTION("u8g_font_8x13_67_75") = { - 1,8,13,0,254,3,1,94,2,193,32,255,0,11,254,10, - 0,3,133,133,36,18,255,18,36,18,88,136,32,32,168,112, - 32,168,112,32,2,119,135,16,34,68,248,68,34,16,18,119, - 135,16,136,68,62,68,136,16,3,133,133,32,65,255,65,32, - 18,89,137,32,112,168,32,32,32,32,32,112,3,133,133,4, - 130,255,130,4,18,89,137,112,32,32,32,32,32,168,112,32, - 2,122,138,16,56,84,16,16,16,84,56,16,254,3,133,133, - 34,65,254,64,32,3,133,133,68,130,127,2,4,3,133,133, - 34,69,254,68,36,3,133,133,68,162,127,34,36,3,133,133, - 36,90,231,66,36,3,133,133,36,82,255,82,36,18,106,138, - 64,64,128,152,104,8,16,84,56,16,18,106,138,32,64,252, - 68,36,4,4,4,4,4,18,106,138,16,8,252,136,144,128, - 128,128,128,128,18,106,138,4,4,4,4,4,36,68,252,64, - 32,18,106,138,128,128,128,128,128,144,136,252,8,16,18,104, - 136,240,16,16,16,16,84,56,16,18,90,138,8,8,8,8, - 8,40,72,248,64,32,4,135,135,12,18,33,33,169,112,32, - 4,135,135,48,72,132,132,149,14,4,2,136,136,255,0,112, - 96,80,8,4,2,2,136,136,136,144,190,144,9,125,9,17, - 4,135,135,100,142,149,132,132,72,48,4,135,135,38,113,169, - 33,33,18,12,5,131,131,32,64,255,3,131,131,255,64,32, - 50,57,137,128,192,160,128,128,128,128,128,128,34,57,137,32, - 96,160,32,32,32,32,32,32,5,131,131,4,2,255,3,131, - 131,255,2,4,50,57,137,128,128,128,128,128,128,160,192,128, - 34,57,137,32,32,32,32,32,32,160,96,32,2,121,137,8, - 4,254,4,40,64,254,64,32,2,138,138,36,116,172,36,36, - 36,36,53,46,36,2,121,137,32,64,254,64,40,4,254,4, - 8,2,139,139,32,64,255,64,32,0,32,64,255,64,32,2, - 122,138,68,238,68,68,68,68,68,68,68,68,2,139,139,4, - 2,255,2,4,0,4,2,255,2,4,2,122,138,68,68,68, - 68,68,68,68,68,238,68,2,119,135,32,64,254,0,254,4, - 8,2,119,135,8,4,254,0,254,64,32,2,135,135,16,33, - 127,130,127,36,16,3,133,133,36,126,153,126,36,2,135,135, - 8,36,254,65,254,132,8,2,135,135,16,32,127,128,127,32, - 16,18,121,137,16,40,108,170,40,40,40,40,40,2,135,135, - 8,4,254,1,254,4,8,2,121,137,40,40,40,40,40,170, - 108,40,16,3,133,133,36,126,129,126,36,2,123,139,16,40, - 108,170,40,40,40,170,108,40,16,2,119,135,252,144,136,196, - 162,144,8,18,119,135,126,18,34,70,138,18,32,18,119,135, - 32,18,138,70,34,18,126,2,119,135,8,144,162,196,136,144, - 252,2,137,137,8,16,63,64,255,64,63,16,8,2,137,137, - 16,8,252,2,255,2,252,8,16,2,135,135,16,32,72,245, - 66,32,16,2,135,135,8,4,18,175,66,4,8,2,122,138, - 16,56,84,146,16,124,16,124,16,16,2,122,138,16,16,124, - 16,124,16,146,84,56,16,2,119,135,16,32,64,182,64,32, - 16,2,122,138,16,40,84,146,0,16,16,0,16,16,18,119, - 135,16,8,4,218,4,8,16,2,122,138,16,16,0,16,16, - 0,146,84,40,16,3,117,133,144,160,254,160,144,19,117,133, - 18,10,254,10,18,2,135,135,16,48,95,129,95,48,16,2, - 121,137,16,40,68,238,40,40,40,40,56,2,135,135,8,12, - 250,129,250,12,8,2,121,137,56,40,40,40,40,238,68,40, - 16,1,123,139,16,40,68,238,40,40,56,0,56,40,56,1, - 122,138,16,40,68,238,40,40,40,108,68,124,1,122,138,16, - 40,68,254,40,40,40,108,68,124,1,122,138,16,40,68,254, - 56,56,56,124,68,124,2,121,137,16,40,68,238,68,238,40, - 40,56,1,122,138,16,40,68,238,68,238,40,108,68,124,2, - 135,135,136,140,250,129,250,140,136,2,119,135,254,128,188,176, - 168,164,130,2,119,135,130,74,42,26,122,2,254,2,121,137, - 16,40,68,238,40,238,68,40,16,4,133,133,36,82,255,82, - 36,2,138,138,36,46,53,36,36,36,36,172,116,36,0,141, - 141,4,2,255,2,4,2,255,2,4,2,255,2,4,4,117, - 133,40,72,254,72,40,20,117,133,40,36,254,36,40,4,117, - 133,16,84,254,84,16,4,133,133,42,74,255,74,42,4,133, - 133,84,82,255,82,84,4,133,133,24,90,255,90,24,3,135, - 135,16,48,80,159,80,48,16,3,135,135,8,12,10,249,10, - 12,8,4,133,133,36,102,189,102,36,7,134,134,255,255,255, - 255,255,255,0,130,130,255,255,0,131,131,255,255,255,0,133, - 133,255,255,255,255,255,0,135,135,255,255,255,255,255,255,255, - 0,136,136,255,255,255,255,255,255,255,255,0,138,138,255,255, - 255,255,255,255,255,255,255,255,0,139,139,255,255,255,255,255, - 255,255,255,255,255,255,0,141,141,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,125,141,254,254,254,254,254,254,254, - 254,254,254,254,254,254,0,109,141,252,252,252,252,252,252,252, - 252,252,252,252,252,252,0,93,141,248,248,248,248,248,248,248, - 248,248,248,248,248,248,0,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,0,61,141,224,224,224,224,224,224,224, - 224,224,224,224,224,224,0,45,141,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,29,141,128,128,128,128,128,128,128, - 128,128,128,128,128,128,64,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,1,139,139,85,0,170,0,85,0,170, - 0,85,0,170,0,141,141,170,85,170,85,170,85,170,85,170, - 85,170,85,170,0,141,141,255,85,255,170,255,85,255,170,255, - 85,255,170,255,11,130,130,255,255,112,29,141,128,128,128,128, - 128,128,128,128,128,128,128,128,128,0,71,135,240,240,240,240, - 240,240,240,64,71,135,240,240,240,240,240,240,240,7,70,134, - 240,240,240,240,240,240,0,141,141,240,240,240,240,240,240,255, - 255,255,255,255,255,255,0,141,141,240,240,240,240,240,240,15, - 15,15,15,15,15,15,0,141,141,255,255,255,255,255,255,240, - 240,240,240,240,240,240,0,141,141,255,255,255,255,255,255,15, - 15,15,15,15,15,15,71,70,134,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,240,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,255,255,255,255,255,255,255,2, - 119,135,254,254,254,254,254,254,254,2,119,135,254,130,130,130, - 130,130,254,2,119,135,124,130,130,130,130,130,124,2,119,135, - 254,130,186,186,186,130,254,2,119,135,254,130,254,130,254,130, - 254,2,119,135,254,170,170,170,170,170,254,2,119,135,254,170, - 254,170,254,170,254,2,119,135,254,146,138,198,162,146,254,2, - 119,135,254,146,162,198,138,146,254,2,119,135,254,214,170,214, - 170,214,254,37,51,131,224,224,224,37,51,131,224,160,224,21, - 100,132,252,252,252,252,21,100,132,252,132,132,252,18,89,137, - 248,248,248,248,248,248,248,248,248,18,89,137,248,136,136,136, - 136,136,136,136,248,5,132,132,31,62,124,248,5,132,132,31, - 34,68,248,2,136,136,24,24,60,60,126,126,255,255,2,136, - 136,24,24,36,36,66,66,129,255,18,102,134,48,48,120,120, - 252,252,18,102,134,48,48,72,72,132,252,18,107,139,128,192, - 224,240,248,252,248,240,224,192,128,18,107,139,128,192,160,144, - 136,132,136,144,160,192,128,20,101,133,192,240,252,240,192,20, - 101,133,192,176,140,176,192,3,119,135,128,224,248,254,248,224, - 128,3,119,135,128,224,152,134,152,224,128,2,136,136,255,255, - 126,126,60,60,24,24,2,136,136,255,129,66,66,36,36,24, - 24,18,102,134,252,252,120,120,48,48,18,102,134,252,132,72, - 72,48,48,18,107,139,4,12,28,60,124,252,124,60,28,12, - 4,18,107,139,4,12,20,36,68,132,68,36,20,12,4,20, - 101,133,12,60,252,60,12,20,101,133,12,52,196,52,12,3, - 119,135,2,14,62,254,62,14,2,3,119,135,2,14,50,194, - 50,14,2,3,119,135,16,56,124,254,124,56,16,3,119,135, - 16,40,68,130,68,40,16,3,119,135,16,40,84,186,84,40, - 16,3,119,135,56,68,146,186,146,68,56,18,105,137,48,48, - 72,72,132,72,72,48,48,2,136,136,60,66,129,129,129,129, - 66,60,2,136,136,24,66,0,129,129,0,66,24,2,136,136, - 60,106,171,171,171,171,106,60,2,136,136,60,66,153,165,165, - 153,66,60,2,136,136,60,126,255,255,255,255,126,60,2,136, - 136,60,114,241,241,241,241,114,60,2,136,136,60,78,143,143, - 143,143,78,60,2,136,136,60,66,129,129,255,255,126,60,2, - 136,136,60,126,255,255,129,129,66,60,2,136,136,60,78,143, - 143,129,129,66,60,2,136,136,60,78,143,143,255,255,126,60, - 2,72,136,48,112,240,240,240,240,112,48,66,72,136,192,224, - 240,240,240,240,224,192,0,141,141,255,255,255,255,195,129,129, - 129,129,195,255,255,255,0,141,141,255,255,255,255,195,153,189, - 189,153,195,255,255,255,6,135,135,255,255,255,255,195,153,189, - 0,134,134,189,153,195,255,255,255,6,68,132,48,64,128,128, - 70,68,132,192,32,16,16,66,68,132,16,16,32,192,2,68, - 132,128,128,64,48,6,132,132,60,66,129,129,2,132,132,129, - 129,66,60,2,136,136,1,3,7,15,31,63,127,255,2,136, - 136,128,192,224,240,248,252,254,255,2,136,136,255,254,252,248, - 240,224,192,128,2,136,136,255,127,63,31,15,7,3,1,20, - 85,133,112,136,136,136,112,2,120,136,254,226,226,226,226,226, - 226,254,2,120,136,254,142,142,142,142,142,142,254,2,120,136, - 254,254,250,242,226,194,130,254,2,120,136,254,130,134,142,158, - 190,254,254,2,120,136,254,146,146,146,146,146,146,254,2,122, - 138,16,16,40,40,68,84,124,146,130,254,2,122,138,16,16, - 56,56,116,116,116,242,242,254,2,122,138,16,16,56,56,92, - 92,92,158,158,254,2,136,136,60,66,129,129,129,129,66,60, - 2,119,135,254,146,146,242,130,130,254,2,119,135,254,130,130, - 242,146,146,254,2,119,135,254,130,130,158,146,146,254,2,119, - 135,254,146,146,158,130,130,254,2,119,135,124,146,146,242,130, - 130,124,2,119,135,124,130,130,242,146,146,124,2,119,135,124, - 130,130,158,146,146,124,2,119,135,124,146,146,158,130,130,124, - 19,102,134,252,136,144,160,192,128,19,102,134,252,68,36,20, - 12,4,19,102,134,128,192,160,144,136,252,19,102,134,252,132, - 132,132,132,252,19,102,134,252,252,252,252,252,252,37,68,132, - 240,144,144,240,37,68,132,240,240,240,240,19,102,134,4,12, - 20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 11, '1' Height: 4 - Calculated Max Values w= 8 h=11 x= 2 y= 3 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_75r[496] U8G_FONT_SECTION("u8g_font_8x13_75r") = { - 1,8,13,0,254,11,1,83,0,0,32,79,0,11,0,11, - 0,2,119,135,254,254,254,254,254,254,254,2,119,135,254,130, - 130,130,130,130,254,2,119,135,124,130,130,130,130,130,124,2, - 119,135,254,130,186,186,186,130,254,2,119,135,254,130,254,130, - 254,130,254,2,119,135,254,170,170,170,170,170,254,2,119,135, - 254,170,254,170,254,170,254,2,119,135,254,146,138,198,162,146, - 254,2,119,135,254,146,162,198,138,146,254,2,119,135,254,214, - 170,214,170,214,254,37,51,131,224,224,224,37,51,131,224,160, - 224,21,100,132,252,252,252,252,21,100,132,252,132,132,252,18, - 89,137,248,248,248,248,248,248,248,248,248,18,89,137,248,136, - 136,136,136,136,136,136,248,5,132,132,31,62,124,248,5,132, - 132,31,34,68,248,2,136,136,24,24,60,60,126,126,255,255, - 2,136,136,24,24,36,36,66,66,129,255,18,102,134,48,48, - 120,120,252,252,18,102,134,48,48,72,72,132,252,18,107,139, - 128,192,224,240,248,252,248,240,224,192,128,18,107,139,128,192, - 160,144,136,132,136,144,160,192,128,20,101,133,192,240,252,240, - 192,20,101,133,192,176,140,176,192,3,119,135,128,224,248,254, - 248,224,128,3,119,135,128,224,152,134,152,224,128,2,136,136, - 255,255,126,126,60,60,24,24,2,136,136,255,129,66,66,36, - 36,24,24,18,102,134,252,252,120,120,48,48,18,102,134,252, - 132,72,72,48,48,18,107,139,4,12,28,60,124,252,124,60, - 28,12,4,18,107,139,4,12,20,36,68,132,68,36,20,12, - 4,20,101,133,12,60,252,60,12,20,101,133,12,52,196,52, - 12,3,119,135,2,14,62,254,62,14,2,3,119,135,2,14, - 50,194,50,14,2,3,119,135,16,56,124,254,124,56,16,3, - 119,135,16,40,68,130,68,40,16,3,119,135,16,40,84,186, - 84,40,16,3,119,135,56,68,146,186,146,68,56,18,105,137, - 48,48,72,72,132,72,72,48,48,2,136,136,60,66,129,129, - 129,129,66,60,2,136,136,24,66,0,129,129,0,66,24,2, - 136,136,60,106,171,171,171,171,106,60,2,136,136,60,66,153, - 165,165,153,66,60,2,136,136,60,126,255,255,255,255,126,60 - }; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=12 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=12 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13B[2302] U8G_FONT_SECTION("u8g_font_8x13B") = { - 1,8,13,0,254,10,1,127,3,12,32,255,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,128,50,42,138,192,192,0,192,192,192,192, - 192,192,192,3,104,136,16,124,212,208,208,212,124,16,1,123, - 139,60,102,96,96,252,96,96,96,240,190,224,3,119,135,198, - 254,108,68,108,254,198,18,106,138,204,204,204,120,120,252,48, - 252,48,48,50,42,138,192,192,192,192,0,0,192,192,192,192, - 18,106,138,120,204,192,120,204,204,120,12,204,120,26,82,130, - 216,216,3,121,137,124,198,186,234,226,234,186,198,124,21,87, - 135,240,24,248,152,248,0,248,3,119,135,54,108,216,176,216, - 108,54,3,101,133,252,252,4,4,4,22,81,129,248,3,121, - 137,124,198,186,170,186,178,170,198,124,28,97,129,252,24,100, - 132,120,204,204,120,19,103,135,48,48,252,48,48,0,252,22, - 70,134,224,176,48,96,192,240,22,70,134,224,176,96,48,176, - 224,41,67,131,48,96,192,0,121,137,198,198,198,198,198,238, - 252,192,192,1,123,139,62,122,202,202,202,122,58,10,10,10, - 14,54,34,130,192,192,16,67,131,48,144,96,22,70,134,96, - 224,96,96,96,240,21,87,135,112,248,136,248,112,0,248,3, - 119,135,216,108,54,26,54,108,216,2,122,138,96,224,96,96, - 98,246,14,26,30,6,2,122,138,96,224,96,96,124,246,6, - 12,24,30,2,122,138,224,176,96,48,178,230,14,26,30,6, - 18,106,138,48,48,0,48,48,96,192,204,204,120,2,122,138, - 48,24,0,56,124,198,198,254,198,198,2,122,138,24,48,0, - 56,124,198,198,254,198,198,2,122,138,56,108,0,56,124,198, - 198,254,198,198,2,122,138,52,88,0,56,124,198,198,254,198, - 198,2,122,138,108,108,0,56,124,198,198,254,198,198,2,123, - 139,24,36,24,0,56,124,198,198,254,198,198,2,122,138,126, - 248,216,216,216,252,216,216,216,222,0,124,140,124,230,192,192, - 192,192,192,230,124,24,72,48,2,122,138,48,24,0,254,192, - 192,248,192,192,254,2,122,138,24,48,0,254,192,192,248,192, - 192,254,2,122,138,56,108,0,254,192,192,248,192,192,254,2, - 122,138,108,108,0,254,192,192,248,192,192,254,34,74,138,192, - 96,0,240,96,96,96,96,96,240,34,74,138,48,96,0,240, - 96,96,96,96,96,240,34,90,138,112,216,0,240,96,96,96, - 96,96,240,34,90,138,216,216,0,240,96,96,96,96,96,240, - 2,120,136,252,102,102,246,102,102,102,252,2,122,138,52,88, - 0,198,230,246,214,222,206,198,2,123,139,48,24,0,124,198, - 198,198,198,198,198,124,2,123,139,24,48,0,124,198,198,198, - 198,198,198,124,2,123,139,56,108,0,124,198,198,198,198,198, - 198,124,2,123,139,52,88,0,124,198,198,198,198,198,198,124, - 2,123,139,108,108,0,124,198,198,198,198,198,198,124,2,119, - 135,198,198,124,56,124,198,198,1,122,138,2,124,206,214,214, - 214,214,230,124,128,2,122,138,48,24,0,198,198,198,198,198, - 198,124,2,122,138,24,48,0,198,198,198,198,198,198,124,2, - 122,138,56,108,0,198,198,198,198,198,198,124,2,122,138,108, - 108,0,198,198,198,198,198,198,124,18,106,138,24,48,0,204, - 72,120,48,48,48,48,2,121,137,192,252,198,198,198,252,192, - 192,192,2,122,138,60,102,102,108,236,108,102,102,102,108,2, - 122,138,48,24,0,124,6,126,198,198,206,118,2,122,138,24, - 48,0,124,6,126,198,198,206,118,2,122,138,56,108,0,124, - 6,126,198,198,206,118,2,122,138,52,88,0,124,6,126,198, - 198,206,118,2,122,138,108,108,0,124,6,126,198,198,206,118, - 2,123,139,24,36,24,0,124,6,126,198,198,206,118,2,119, - 135,108,218,26,124,216,218,108,0,122,138,124,230,192,192,192, - 230,124,24,72,48,2,122,138,48,24,0,124,198,198,254,192, - 198,124,2,122,138,24,48,0,124,198,198,254,192,198,124,2, - 122,138,56,108,0,124,198,198,254,192,198,124,2,122,138,108, - 108,0,124,198,198,254,192,198,124,34,74,138,192,96,0,224, - 96,96,96,96,96,240,34,74,138,96,192,0,224,96,96,96, - 96,96,240,18,90,138,112,216,0,112,48,48,48,48,48,120, - 18,90,138,216,216,0,112,48,48,48,48,48,120,2,122,138, - 108,56,120,12,126,198,198,198,198,124,2,122,138,52,88,0, - 220,230,198,198,198,198,198,2,122,138,48,24,0,124,198,198, - 198,198,198,124,2,122,138,24,48,0,124,198,198,198,198,198, - 124,2,122,138,56,108,0,124,198,198,198,198,198,124,2,122, - 138,52,88,0,124,198,198,198,198,198,124,2,122,138,108,108, - 0,124,198,198,198,198,198,124,19,103,135,48,48,0,252,0, - 48,48,1,121,137,2,124,206,214,214,214,230,124,128,2,122, - 138,48,24,0,198,198,198,198,198,206,118,2,122,138,24,48, - 0,198,198,198,198,198,206,118,2,122,138,56,108,0,198,198, - 198,198,198,206,118,2,122,138,108,108,0,198,198,198,198,198, - 206,118,0,124,140,24,48,0,198,198,198,198,206,118,6,198, - 124,0,123,139,192,192,220,230,198,198,198,230,220,192,192,0, - 124,140,108,108,0,198,198,198,198,206,118,6,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Br[1123] U8G_FONT_SECTION("u8g_font_8x13Br") = { - 1,8,13,0,254,10,1,127,3,12,32,127,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13[2152] U8G_FONT_SECTION("u8g_font_8x13") = { - 1,8,13,0,254,9,1,97,2,205,32,255,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,13,0,128,50,25,137,128,0,128,128,128,128, - 128,128,128,19,88,136,32,112,168,160,160,168,112,32,2,121, - 137,28,34,32,112,32,32,32,98,220,19,102,134,132,120,72, - 72,120,132,2,121,137,130,130,68,40,124,16,124,16,16,50, - 25,137,128,128,128,128,0,128,128,128,128,34,74,138,96,144, - 128,96,144,144,96,16,144,96,42,66,130,144,144,3,121,137, - 56,68,146,170,162,170,146,68,56,20,87,135,112,8,120,136, - 120,0,248,3,119,135,18,36,72,144,72,36,18,19,100,132, - 252,4,4,4,38,65,129,240,3,121,137,56,68,146,170,170, - 178,170,68,56,26,97,129,252,39,68,132,96,144,144,96,19, - 87,135,32,32,248,32,32,0,248,22,70,134,96,144,16,96, - 128,240,22,70,134,96,144,32,16,144,96,58,34,130,64,128, - 17,103,135,132,132,132,132,204,180,128,18,105,137,124,232,232, - 232,104,40,40,40,40,54,33,129,192,48,34,130,64,192,22, - 54,134,64,192,64,64,64,224,21,70,134,96,144,144,96,0, - 240,3,119,135,144,72,36,18,36,72,144,2,122,138,64,192, - 64,64,66,230,10,18,26,6,2,122,138,64,192,64,64,76, - 242,2,12,16,30,2,122,138,96,144,32,16,146,102,10,18, - 26,6,18,105,137,32,0,32,32,64,128,132,132,120,18,106, - 138,32,16,0,48,72,132,132,252,132,132,18,106,138,16,32, - 0,48,72,132,132,252,132,132,18,106,138,48,72,0,48,72, - 132,132,252,132,132,18,106,138,100,152,0,48,72,132,132,252, - 132,132,18,106,138,72,72,0,48,72,132,132,252,132,132,18, - 106,138,48,72,48,48,72,132,132,252,132,132,2,121,137,110, - 144,144,144,156,240,144,144,158,16,107,139,120,132,128,128,128, - 128,128,132,120,16,32,18,106,138,32,16,0,252,128,128,240, - 128,128,252,18,106,138,16,32,0,252,128,128,240,128,128,252, - 18,106,138,48,72,0,252,128,128,240,128,128,252,18,106,138, - 72,72,0,252,128,128,240,128,128,252,18,90,138,64,32,0, - 248,32,32,32,32,32,248,18,90,138,16,32,0,248,32,32, - 32,32,32,248,18,90,138,48,72,0,248,32,32,32,32,32, - 248,18,90,138,136,136,0,248,32,32,32,32,32,248,2,121, - 137,120,68,66,66,226,66,66,68,120,2,122,138,100,152,0, - 130,194,162,146,138,134,130,2,122,138,32,16,0,124,130,130, - 130,130,130,124,2,122,138,8,16,0,124,130,130,130,130,130, - 124,2,122,138,24,36,0,124,130,130,130,130,130,124,2,122, - 138,100,152,0,124,130,130,130,130,130,124,2,122,138,68,68, - 0,124,130,130,130,130,130,124,19,102,134,132,72,48,48,72, - 132,17,107,139,4,120,140,148,148,164,164,164,196,120,128,18, - 106,138,64,32,0,132,132,132,132,132,132,120,18,106,138,16, - 32,0,132,132,132,132,132,132,120,18,106,138,48,72,0,132, - 132,132,132,132,132,120,18,106,138,72,72,0,132,132,132,132, - 132,132,120,18,90,138,16,32,0,136,136,80,32,32,32,32, - 18,105,137,128,248,132,132,132,248,128,128,128,18,105,137,112, - 136,136,144,160,152,132,132,184,18,105,137,32,16,0,120,4, - 124,132,140,116,18,105,137,8,16,0,120,4,124,132,140,116, - 18,105,137,48,72,0,120,4,124,132,140,116,18,105,137,100, - 152,0,120,4,124,132,140,116,18,105,137,72,72,0,120,4, - 124,132,140,116,18,106,138,48,72,48,0,120,4,124,132,140, - 116,2,118,134,108,18,124,144,146,108,16,104,136,120,132,128, - 128,132,120,16,32,18,105,137,32,16,0,120,132,252,128,132, - 120,18,105,137,16,32,0,120,132,252,128,132,120,18,105,137, - 48,72,0,120,132,252,128,132,120,18,105,137,72,72,0,120, - 132,252,128,132,120,18,89,137,64,32,0,96,32,32,32,32, - 248,18,89,137,32,64,0,96,32,32,32,32,248,18,89,137, - 96,144,0,96,32,32,32,32,248,18,89,137,144,144,0,96, - 32,32,32,32,248,18,106,138,72,48,80,8,120,132,132,132, - 132,120,18,105,137,100,152,0,184,196,132,132,132,132,18,105, - 137,64,32,0,120,132,132,132,132,120,18,105,137,16,32,0, - 120,132,132,132,132,120,18,105,137,48,72,0,120,132,132,132, - 132,120,18,105,137,100,152,0,120,132,132,132,132,120,18,105, - 137,72,72,0,120,132,132,132,132,120,19,87,135,32,32,0, - 248,0,32,32,17,104,136,4,120,140,148,164,196,120,128,18, - 105,137,64,32,0,136,136,136,136,136,116,18,105,137,16,32, - 0,136,136,136,136,136,116,18,105,137,48,72,0,136,136,136, - 136,136,116,18,105,137,80,80,0,136,136,136,136,136,116,16, - 107,139,16,32,0,132,132,132,140,116,4,132,120,16,106,138, - 128,128,184,196,132,132,196,184,128,128,16,107,139,72,72,0, - 132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13O[2153] U8G_FONT_SECTION("u8g_font_8x13O") = { - 1,8,13,0,254,9,1,98,2,206,32,255,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,13,0,128,50,41,137,64,0,64,64,64, - 128,128,128,128,19,104,136,16,56,84,80,160,168,112,32,2, - 137,137,14,17,16,56,16,32,32,98,220,3,118,134,66,60, - 36,72,120,132,2,121,137,130,130,68,40,124,16,248,32,32, - 50,41,137,64,64,64,64,0,128,128,128,128,18,90,138,48, - 72,64,48,72,144,96,16,144,96,42,66,130,144,144,2,137, - 137,28,34,73,85,162,170,146,68,56,20,103,135,56,4,120, - 136,120,0,248,3,119,135,18,36,72,144,144,72,36,19,100, - 132,252,4,8,8,38,65,129,240,2,137,137,28,34,89,85, - 170,178,170,68,56,26,97,129,252,39,68,132,96,144,144,96, - 19,103,135,16,16,124,32,32,0,248,22,86,134,48,72,8, - 112,128,240,22,86,134,112,8,48,16,144,96,58,34,130,64, - 128,1,119,135,66,66,66,132,204,180,128,18,105,137,124,232, - 232,232,104,80,80,80,80,54,33,129,192,48,34,130,64,192, - 38,54,134,32,96,32,64,64,224,21,102,134,24,36,72,48, - 0,240,3,119,135,72,36,18,18,36,72,144,18,106,138,32, - 96,32,64,68,236,20,40,60,8,2,122,138,32,96,32,64, - 76,242,4,24,32,60,18,106,138,112,8,48,16,148,108,20, - 40,60,8,18,105,137,16,0,16,16,32,64,132,136,112,2, - 122,138,16,8,0,24,36,66,66,124,132,132,2,122,138,8, - 16,0,24,36,66,66,124,132,132,2,122,138,24,36,0,24, - 36,66,66,124,132,132,2,122,138,50,76,0,24,36,66,66, - 124,132,132,2,122,138,36,36,0,24,36,66,66,124,132,132, - 2,122,138,24,36,24,24,36,66,66,124,132,132,2,137,137, - 55,72,72,72,78,112,144,144,158,0,123,139,60,66,64,64, - 64,128,128,132,120,16,32,2,122,138,16,8,0,126,64,64, - 112,128,128,252,2,122,138,8,16,0,126,64,64,112,128,128, - 252,2,122,138,24,36,0,126,64,64,112,128,128,252,2,122, - 138,36,36,0,126,64,64,112,128,128,252,18,106,138,32,16, - 0,124,16,16,32,32,32,248,18,106,138,8,16,0,124,16, - 16,32,32,32,248,18,106,138,24,36,0,124,16,16,32,32, - 32,248,18,106,138,68,68,0,124,16,16,32,32,32,248,2, - 121,137,120,68,66,66,226,68,132,136,240,2,138,138,50,76, - 0,65,97,81,146,138,134,130,2,138,138,16,8,0,62,65, - 65,130,130,130,124,2,138,138,4,8,0,62,65,65,130,130, - 130,124,2,138,138,12,18,0,62,65,65,130,130,130,124,2, - 138,138,50,76,0,62,65,65,130,130,130,124,2,138,138,34, - 34,0,62,65,65,130,130,130,124,3,118,134,66,36,24,48, - 72,132,1,123,139,2,60,70,74,74,82,164,164,196,120,128, - 2,122,138,32,16,0,66,66,66,132,132,132,120,2,122,138, - 8,16,0,66,66,66,132,132,132,120,2,122,138,24,36,0, - 66,66,66,132,132,132,120,2,122,138,36,36,0,66,66,66, - 132,132,132,120,18,90,138,16,32,0,136,136,80,96,64,64, - 64,2,121,137,64,124,66,66,66,124,128,128,128,18,105,137, - 56,68,68,72,80,136,132,132,184,2,121,137,16,8,0,60, - 2,124,132,140,116,2,121,137,4,8,0,60,2,124,132,140, - 116,2,121,137,24,36,0,60,2,124,132,140,116,2,121,137, - 50,76,0,60,2,124,132,140,116,2,121,137,36,36,0,60, - 2,124,132,140,116,2,122,138,24,36,24,0,60,2,124,132, - 140,116,2,134,134,54,9,126,144,146,108,0,120,136,60,66, - 128,128,132,120,16,32,2,121,137,16,8,0,60,66,124,128, - 132,120,2,121,137,8,16,0,60,66,124,128,132,120,2,121, - 137,24,36,0,60,66,124,128,132,120,2,121,137,36,36,0, - 60,66,124,128,132,120,18,89,137,32,16,0,48,16,16,32, - 32,248,18,89,137,16,32,0,48,16,16,32,32,248,18,89, - 137,48,72,0,48,16,16,32,32,248,18,89,137,72,72,0, - 48,16,16,32,32,248,2,122,138,36,24,40,4,60,66,66, - 132,132,120,2,121,137,50,76,0,92,98,66,132,132,132,2, - 121,137,32,16,0,60,66,66,132,132,120,2,121,137,8,16, - 0,60,66,66,132,132,120,2,121,137,24,36,0,60,66,66, - 132,132,120,2,121,137,50,76,0,60,66,66,132,132,120,2, - 121,137,36,36,0,60,66,66,132,132,120,19,103,135,16,16, - 0,252,0,32,32,1,120,136,2,60,70,90,164,196,120,128, - 18,105,137,32,16,0,68,68,68,136,136,116,18,105,137,8, - 16,0,68,68,68,136,136,116,18,105,137,24,36,0,68,68, - 68,136,136,116,18,105,137,40,40,0,68,68,68,136,136,116, - 0,123,139,8,16,0,66,66,132,140,116,4,132,120,0,122, - 138,64,64,92,98,66,132,196,184,128,128,0,123,139,36,36, - 0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Or[1029] U8G_FONT_SECTION("u8g_font_8x13Or") = { - 1,8,13,0,254,9,1,98,2,206,32,127,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13r[1028] U8G_FONT_SECTION("u8g_font_8x13r") = { - 1,8,13,0,254,9,1,97,2,205,32,127,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=15 x= 8 y=10 dx= 9 dy= 0 ascent=12 len=30 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[3804] U8G_FONT_SECTION("u8g_font_9x15_67_75") = { - 0,9,15,0,253,4,1,255,4,34,32,255,0,12,253,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,11,11,9,1,255,16,40,68,238,68,238,40,40,40, - 40,56,7,11,11,9,1,255,16,40,68,238,68,238,40,40, - 108,68,124,9,7,14,9,0,1,132,0,134,0,253,0,128, - 128,253,0,134,0,132,0,7,7,7,9,1,0,254,128,188, - 176,168,164,130,7,7,7,9,1,0,130,74,42,26,122,2, - 254,7,11,11,9,1,255,16,40,68,238,40,40,40,238,68, - 40,16,9,7,14,9,0,1,4,0,50,0,73,0,255,128, - 73,0,50,0,4,0,9,10,20,9,0,0,34,0,39,0, - 42,128,34,0,34,0,34,0,34,0,170,0,114,0,34,0, - 7,13,13,9,1,254,8,4,254,4,8,4,254,4,8,4, - 254,4,8,8,5,5,9,0,2,36,68,255,68,36,8,5, - 5,9,0,2,36,34,255,34,36,9,5,10,9,0,2,42, - 0,73,0,255,128,73,0,42,0,8,5,5,9,0,2,42, - 74,255,74,42,8,5,5,9,0,2,84,82,255,82,84,9, - 5,10,9,0,2,85,0,148,128,255,128,148,128,85,0,7, - 7,7,9,1,1,16,48,80,158,80,48,16,7,7,7,9, - 1,1,16,24,20,242,20,24,16,8,5,5,9,0,2,36, - 102,189,102,36,9,7,14,9,0,5,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,2,4,9,0,253,255,128, - 255,128,9,4,8,9,0,253,255,128,255,128,255,128,255,128, - 9,6,12,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,9,8,16,9,0,253,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,9,18,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,11,22,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,13,26,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,15,30,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 8,15,15,9,0,253,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,15,15,9,0,253,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,6,15,15,9,0,253, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 15,15,9,0,253,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,3,15,15,9,0,253,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,2,15,15,9,0,253,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,1,15, - 15,9,0,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,15,15,9,5,253,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,15,30,9,0,253,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,0,0,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,9,15,30,9, - 0,253,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 85,0,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 9,15,30,9,0,253,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,170,128,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,9,2,4,9,0,10,255,128,255,128,1,15, - 15,9,8,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,8,8,9,0,253,248,248,248,248,248,248,248, - 248,4,8,8,9,5,253,240,240,240,240,240,240,240,240,5, - 7,7,9,0,5,248,248,248,248,248,248,248,9,15,30,9, - 0,253,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,15,30,9,0,253,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,9,15,30,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,4,7,7,9, - 5,5,240,240,240,240,240,240,240,9,15,30,9,0,253,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,9,15,30, - 9,0,253,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56,7,7,7,9,1,1,56,116, - 242,242,242,116,56,7,7,7,9,1,1,56,92,158,158,158, - 92,56,7,7,7,9,1,1,56,68,130,254,254,124,56,7, - 7,7,9,1,1,56,124,254,254,130,68,56,7,7,7,9, - 1,1,56,92,158,158,130,68,56,7,7,7,9,1,1,56, - 92,158,254,254,124,56,4,7,7,9,1,1,48,112,240,240, - 240,112,48,4,7,7,9,4,1,192,224,240,240,240,224,192, - 9,15,30,9,0,253,255,128,255,128,255,128,255,128,255,128, - 227,128,193,128,193,128,193,128,227,128,255,128,255,128,255,128, - 255,128,255,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,227,128,221,128,190,128,190,128,190,128,221,128,227,128, - 255,128,255,128,255,128,255,128,9,8,16,9,0,4,255,128, - 255,128,255,128,255,128,227,128,221,128,190,128,190,128,9,8, - 16,9,0,253,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,4,4,4,9,1,4,48,64,128,128,4,4, - 4,9,4,4,192,32,16,16,4,4,4,9,4,1,16,16, - 32,192,4,4,4,9,1,1,128,128,64,48,7,4,4,9, - 1,4,56,68,130,130,7,4,4,9,1,1,130,130,68,56, - 7,7,7,9,1,1,2,6,14,30,62,126,254,7,7,7, - 9,1,1,128,192,224,240,248,252,254,7,7,7,9,1,1, - 254,252,248,240,224,192,128,7,7,7,9,1,1,254,126,62, - 30,14,6,2,5,5,5,9,2,2,112,136,136,136,112,7, - 7,7,9,1,1,254,242,242,242,242,242,254,7,7,7,9, - 1,1,254,158,158,158,158,158,254,7,7,7,9,1,1,254, - 254,250,242,226,194,254,7,7,7,9,1,1,254,134,142,158, - 190,254,254,7,7,7,9,1,1,254,146,146,146,146,146,254, - 9,10,20,9,0,0,8,0,8,0,20,0,20,0,34,0, - 42,0,93,0,73,0,128,128,255,128,9,10,20,9,0,0, - 8,0,8,0,28,0,28,0,58,0,58,0,121,0,121,0, - 248,128,255,128,9,10,20,9,0,0,8,0,8,0,28,0, - 28,0,46,0,46,0,79,0,79,0,143,128,255,128,9,9, - 18,9,0,0,62,0,65,0,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,7,7,7,9,1,1,254,146,146,242, - 130,130,254,7,7,7,9,1,1,254,130,130,242,146,146,254, - 7,7,7,9,1,1,254,130,130,158,146,146,254,7,7,7, - 9,1,1,254,146,146,158,130,130,254,7,7,7,9,1,1, - 124,146,146,242,130,130,124,7,7,7,9,1,1,124,130,130, - 242,146,146,124,7,7,7,9,1,1,124,130,130,158,146,146, - 124,7,7,7,9,1,1,124,146,146,158,130,130,124,6,6, - 6,9,1,1,252,136,144,160,192,128,6,6,6,9,1,1, - 252,68,36,20,12,4,6,6,6,9,1,1,128,192,160,144, - 136,252,6,6,6,9,1,1,252,132,132,132,132,252,6,6, - 6,9,1,1,252,252,252,252,252,252,5,5,5,9,2,1, - 248,136,136,136,248,5,5,5,9,2,1,248,248,248,248,248, - 6,6,6,9,1,1,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_75r[792] U8G_FONT_SECTION("u8g_font_9x15_75r") = { - 0,9,15,0,253,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[3795] U8G_FONT_SECTION("u8g_font_9x15_78_79") = { - 0,9,15,0,253,9,2,231,4,175,32,255,0,12,254,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,7,7,7,9,1,0,130,132,136,144,160, - 192,254,9,10,20,9,0,0,8,0,8,0,20,0,20,0, - 42,0,42,0,85,0,93,0,128,128,255,128,7,10,10,9, - 1,0,16,16,16,16,16,16,16,16,16,254,7,7,7,9, - 1,1,62,64,132,138,132,64,62,7,7,7,9,1,1,248, - 4,66,162,66,4,248,5,12,12,9,2,255,112,136,136,16, - 16,32,32,64,64,128,128,112,5,12,12,9,2,255,112,136, - 136,64,64,32,32,16,16,8,8,112,7,8,8,9,1,0, - 130,146,84,68,40,40,16,16,8,10,10,9,0,255,128,143, - 144,80,80,80,80,47,32,32,8,10,10,9,0,255,1,241, - 9,10,10,10,10,244,4,4,3,10,10,9,3,0,64,64, - 64,64,224,64,64,64,64,64,255,255,255,255,255,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,136,128,65,0,34, - 0,20,0,8,0,7,8,8,9,1,0,16,16,40,40,68, - 84,146,130,7,7,7,9,1,1,146,146,146,146,146,84,56, - 7,7,7,9,1,1,2,2,2,18,2,2,254,7,7,7, - 9,1,1,254,128,128,144,128,128,128,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,9,13,26,9,0,254,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,9,13,26,9,0,254,255,128, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,7,7,7,9,1,1,40,40, - 238,40,238,40,40,7,7,7,9,1,1,40,40,40,238,40, - 40,40,7,3,3,9,1,3,64,190,64,9,5,10,9,0, - 2,128,0,128,0,255,128,128,0,128,0,9,5,10,9,0, - 2,0,128,0,128,255,128,0,128,0,128,5,10,10,9,2, - 0,32,80,32,32,32,32,32,32,32,248,5,9,9,9,2, - 0,32,32,80,80,248,80,80,32,32,7,9,9,9,1,0, - 16,16,16,40,198,40,16,16,16,8,9,9,9,0,0,8, - 8,8,20,227,20,8,8,8,8,9,9,9,1,0,16,16, - 16,40,199,40,16,16,16,8,7,7,9,0,1,127,65,65, - 193,65,65,127,8,7,7,9,1,1,254,130,130,131,130,130, - 254,5,12,12,9,2,255,248,160,160,160,160,160,160,160,160, - 160,160,248,5,12,12,9,2,255,248,40,40,40,40,40,40, - 40,40,40,40,248,3,10,10,9,3,0,32,32,64,64,128, - 128,64,64,32,32,3,10,10,9,3,0,128,128,64,64,32, - 32,64,64,128,128,6,10,10,9,1,0,36,36,72,72,144, - 144,72,72,36,36,6,10,10,9,2,0,144,144,72,72,36, - 36,72,72,144,144,255,255,255,255,9,11,22,9,0,0,8, - 0,20,0,54,0,85,0,213,128,85,0,85,0,85,0,85, - 0,85,0,85,0,9,11,22,9,0,255,85,0,85,0,85, - 0,85,0,85,0,85,0,213,128,85,0,54,0,20,0,8, - 0,8,8,8,9,0,0,28,34,169,113,33,1,34,28,8, - 8,8,9,0,0,56,68,149,142,132,128,68,56,9,5,10, - 9,0,2,114,0,169,0,255,128,169,0,114,0,9,5,10, - 9,0,2,32,0,64,0,255,128,64,0,32,0,9,5,10, - 9,0,2,2,0,1,0,255,128,1,0,2,0,9,5,10, - 9,0,2,34,0,65,0,255,128,65,0,34,0,9,7,14, - 9,0,1,16,0,32,0,127,128,128,0,127,128,32,0,16, - 0,9,7,14,9,0,1,4,0,2,0,255,0,0,128,255, - 0,2,0,4,0,9,7,14,9,0,1,20,0,34,0,127, - 0,128,128,127,0,34,0,20,0,9,5,10,9,0,2,32, - 128,64,128,255,128,64,128,32,128,9,5,10,9,0,2,130, - 0,129,0,255,128,129,0,130,0,9,7,14,9,0,1,16, - 128,32,128,127,128,128,128,127,128,32,128,16,128,9,7,14, - 9,0,1,132,0,130,0,255,0,128,128,255,0,130,0,132, - 0,9,6,12,9,0,1,2,0,1,0,85,128,170,128,1, - 0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15B[2990] U8G_FONT_SECTION("u8g_font_9x15B") = { - 0,9,15,0,253,10,1,232,3,214,32,255,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,12,2,10,10,9,4,0,192,0,192,192,192, - 192,192,192,192,192,7,8,8,9,1,0,4,124,206,208,208, - 230,124,64,8,10,10,9,0,255,30,51,48,48,124,48,48, - 248,191,224,7,7,7,9,1,2,198,254,108,68,108,254,198, - 8,10,10,9,0,0,195,195,102,60,126,24,126,24,24,24, - 2,11,11,9,4,255,192,192,192,192,192,0,0,192,192,192, - 192,6,11,11,9,1,255,120,204,192,120,204,204,204,120,12, - 204,120,6,2,2,9,1,9,204,204,8,11,11,9,0,0, - 60,126,195,189,165,161,165,189,195,126,60,5,7,7,9,1, - 3,240,24,248,152,248,0,248,8,8,8,9,0,1,27,54, - 108,216,216,108,54,27,7,5,5,9,1,2,254,254,6,6, - 6,6,1,1,9,1,4,252,8,11,11,9,0,0,60,126, - 195,189,165,189,169,173,195,126,60,6,2,2,9,1,9,252, - 252,6,4,4,9,2,6,120,204,204,120,8,10,10,9,0, - 0,24,24,24,255,255,24,24,24,255,255,5,7,7,9,1, - 4,112,152,24,48,96,192,248,5,7,7,9,1,4,112,152, - 24,48,24,152,112,4,3,3,9,2,8,48,96,192,7,10, - 10,9,1,253,198,198,198,198,198,238,250,192,192,192,7,10, - 10,9,1,0,126,254,246,246,246,118,54,54,54,54,3,3, - 3,9,3,3,64,224,64,5,3,3,9,2,253,24,216,112, - 4,7,7,9,1,4,96,224,96,96,96,96,240,5,6,6, - 9,1,4,112,216,216,112,0,248,8,8,8,9,0,1,216, - 108,54,27,27,54,108,216,8,11,11,9,0,0,96,224,96, - 96,97,99,247,15,27,31,3,8,11,11,9,0,0,96,224, - 96,96,110,115,243,6,12,24,31,8,11,11,9,0,0,112, - 152,24,48,25,155,119,15,27,31,3,7,10,10,9,1,0, - 24,24,0,24,48,96,192,198,198,124,8,12,12,9,0,0, - 96,48,24,0,60,102,195,195,255,195,195,195,8,12,12,9, - 0,0,6,12,24,0,60,102,195,195,255,195,195,195,8,12, - 12,9,0,0,24,60,102,0,60,102,195,195,255,195,195,195, - 8,12,12,9,0,0,50,126,76,0,60,102,195,195,255,195, - 195,195,8,11,11,9,0,0,102,102,0,60,102,195,195,255, - 195,195,195,8,12,12,9,0,0,24,36,36,24,60,102,195, - 195,255,195,195,195,8,10,10,9,0,0,31,60,108,108,204, - 255,204,204,204,207,8,13,13,9,0,253,62,99,193,192,192, - 192,192,193,99,62,12,108,56,7,12,12,9,1,0,96,48, - 24,0,254,192,192,252,192,192,192,254,7,12,12,9,1,0, - 12,24,48,0,254,192,192,252,192,192,192,254,7,12,12,9, - 1,0,24,60,102,0,254,192,192,252,192,192,192,254,7,11, - 11,9,1,0,102,102,0,254,192,192,252,192,192,192,254,6, - 12,12,9,1,0,192,96,48,0,252,48,48,48,48,48,48, - 252,6,12,12,9,1,0,24,48,96,0,252,48,48,48,48, - 48,48,252,6,12,12,9,1,0,48,120,204,0,252,48,48, - 48,48,48,48,252,6,11,11,9,1,0,204,204,0,252,48, - 48,48,48,48,48,252,9,10,20,9,0,0,126,0,99,0, - 97,128,97,128,249,128,249,128,97,128,97,128,99,0,126,0, - 8,12,12,9,0,0,50,126,76,0,195,227,243,251,223,207, - 199,195,8,12,12,9,0,0,96,48,24,0,60,102,195,195, - 195,195,102,60,8,12,12,9,0,0,6,12,24,0,60,102, - 195,195,195,195,102,60,8,12,12,9,0,0,24,60,102,0, - 60,102,195,195,195,195,102,60,8,12,12,9,0,0,50,126, - 76,0,60,102,195,195,195,195,102,60,8,11,11,9,0,0, - 102,102,0,60,102,195,195,195,195,102,60,7,8,8,9,1, - 0,130,198,108,56,56,108,198,130,8,12,12,9,0,255,1, - 63,102,199,203,203,211,211,227,102,252,128,8,12,12,9,0, - 0,96,48,24,0,195,195,195,195,195,195,102,60,8,12,12, - 9,0,0,6,12,24,0,195,195,195,195,195,195,102,60,8, - 12,12,9,0,0,24,60,102,0,195,195,195,195,195,195,102, - 60,8,11,11,9,0,0,102,102,0,195,195,195,195,195,195, - 102,60,8,12,12,9,0,0,6,12,24,0,195,102,60,24, - 24,24,24,24,7,10,10,9,1,0,240,96,124,102,102,102, - 124,96,96,240,7,10,10,9,1,0,60,102,198,204,216,204, - 198,198,198,220,8,11,11,9,0,0,96,48,24,0,62,67, - 3,127,195,199,123,8,11,11,9,0,0,12,24,48,0,62, - 67,3,127,195,199,123,8,11,11,9,0,0,24,60,102,0, - 62,67,3,127,195,199,123,8,11,11,9,0,0,50,126,76, - 0,62,67,3,127,195,199,123,8,10,10,9,0,0,102,102, - 0,62,67,3,127,195,199,123,8,11,11,9,0,0,24,36, - 36,24,62,67,3,127,195,199,123,8,7,7,9,0,0,118, - 155,27,126,216,217,110,8,10,10,9,0,253,62,99,192,192, - 192,99,62,12,108,56,8,11,11,9,0,0,96,48,24,0, - 60,102,195,255,192,99,62,8,11,11,9,0,0,12,24,48, - 0,60,102,195,255,192,99,62,8,11,11,9,0,0,24,60, - 102,0,60,102,195,255,192,99,62,8,10,10,9,0,0,102, - 102,0,60,102,195,255,192,99,62,6,11,11,9,1,0,192, - 96,48,0,112,48,48,48,48,48,252,6,11,11,9,1,0, - 24,48,96,0,112,48,48,48,48,48,252,6,11,11,9,1, - 0,48,120,204,0,112,48,48,48,48,48,252,6,10,10,9, - 1,0,204,204,0,112,48,48,48,48,48,252,8,12,12,9, - 0,0,136,216,112,112,216,140,62,103,195,195,102,60,8,11, - 11,9,0,0,50,126,76,0,220,230,195,195,195,195,195,8, - 11,11,9,0,0,96,48,24,0,60,102,195,195,195,102,60, - 8,11,11,9,0,0,12,24,48,0,60,102,195,195,195,102, - 60,8,11,11,9,0,0,24,60,102,0,60,102,195,195,195, - 102,60,8,11,11,9,0,0,50,126,76,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,102,102,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,24,24,0,0,255,255,0, - 0,24,24,8,9,9,9,0,255,1,63,102,207,219,243,102, - 252,128,8,11,11,9,0,0,96,48,24,0,195,195,195,195, - 195,103,59,8,11,11,9,0,0,12,24,48,0,195,195,195, - 195,195,103,59,8,11,11,9,0,0,24,60,102,0,195,195, - 195,195,195,103,59,8,10,10,9,0,0,102,102,0,195,195, - 195,195,195,103,59,8,14,14,9,0,253,12,24,48,0,195, - 195,195,195,195,103,59,3,198,124,7,12,12,9,1,253,224, - 96,96,124,102,102,102,102,124,96,96,224,8,13,13,9,0, - 253,102,102,0,195,195,195,195,195,103,59,3,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 3 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15Br[1423] U8G_FONT_SECTION("u8g_font_9x15Br") = { - 0,9,15,0,253,10,1,232,3,214,32,127,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=14 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15[2959] U8G_FONT_SECTION("u8g_font_9x15") = { - 0,9,15,0,253,10,1,232,3,216,32,255,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,12,1,11,11,9,4,0,128, - 128,0,0,128,128,128,128,128,128,128,6,8,8,9,1,0, - 8,120,148,144,160,164,120,64,7,10,10,9,1,0,28,34, - 32,32,248,32,32,96,162,92,7,6,6,9,1,3,130,124, - 68,68,124,130,7,10,10,9,1,0,130,130,68,40,124,16, - 124,16,16,16,1,11,11,9,4,255,128,128,128,128,128,0, - 128,128,128,128,128,4,11,11,9,2,255,96,144,128,96,144, - 144,144,96,16,144,96,5,2,2,9,2,9,136,136,8,9, - 9,9,0,1,60,66,153,165,161,165,153,66,60,5,7,7, - 9,1,3,96,144,112,144,120,0,248,7,8,8,9,1,1, - 18,36,72,144,144,72,36,18,6,4,4,9,1,2,252,4, - 4,4,5,1,1,9,2,4,248,8,9,9,9,0,1,60, - 66,185,165,185,169,165,66,60,6,1,1,9,1,9,252,4, - 4,4,9,3,6,96,144,144,96,7,9,9,9,1,1,16, - 16,16,254,16,16,16,0,254,4,6,6,9,1,4,96,144, - 16,96,128,240,4,6,6,9,1,4,96,144,32,16,144,96, - 3,3,3,9,3,8,32,64,128,7,9,9,9,1,254,130, - 130,130,130,130,198,186,128,128,7,10,10,9,1,0,126,138, - 138,138,122,10,10,10,10,10,2,2,2,9,4,4,192,192, - 4,3,3,9,2,253,48,144,96,3,6,6,9,1,4,64, - 192,64,64,64,224,5,6,6,9,1,4,112,136,136,112,0, - 248,7,8,8,9,1,1,144,72,36,18,18,36,72,144,7, - 10,10,9,1,0,64,192,64,64,66,230,10,18,26,6,7, - 10,10,9,1,0,64,192,64,64,76,242,2,12,16,30,7, - 10,10,9,1,0,96,144,32,16,146,102,10,18,26,6,7, - 10,10,9,1,0,16,0,16,16,32,64,128,130,130,124,7, - 12,12,9,1,0,64,32,16,0,56,68,130,130,254,130,130, - 130,7,12,12,9,1,0,4,8,16,0,56,68,130,130,254, - 130,130,130,7,12,12,9,1,0,16,40,68,0,56,68,130, - 130,254,130,130,130,7,11,11,9,1,0,98,156,0,56,68, - 130,130,254,130,130,130,7,11,11,9,1,0,68,68,0,56, - 68,130,130,254,130,130,130,7,11,11,9,1,0,56,68,56, - 40,68,130,130,254,130,130,130,7,10,10,9,1,0,110,144, - 144,144,144,252,144,144,144,158,7,13,13,9,1,253,124,130, - 128,128,128,128,128,128,130,124,24,72,48,7,12,12,9,1, - 0,64,32,16,0,254,64,64,120,64,64,64,254,7,12,12, - 9,1,0,4,8,16,0,254,64,64,120,64,64,64,254,7, - 12,12,9,1,0,16,40,68,0,254,64,64,120,64,64,64, - 254,7,11,11,9,1,0,68,68,0,254,64,64,120,64,64, - 64,254,5,12,12,9,2,0,128,64,32,0,248,32,32,32, - 32,32,32,248,5,12,12,9,2,0,8,16,32,0,248,32, - 32,32,32,32,32,248,5,12,12,9,2,0,32,80,136,0, - 248,32,32,32,32,32,32,248,5,11,11,9,2,0,136,136, - 0,248,32,32,32,32,32,32,248,8,10,10,9,0,0,124, - 66,65,65,225,65,65,65,66,124,7,11,11,9,1,0,98, - 156,0,130,194,162,146,146,138,134,130,7,12,12,9,1,0, - 64,32,16,0,124,130,130,130,130,130,130,124,7,12,12,9, - 1,0,4,8,16,0,124,130,130,130,130,130,130,124,7,12, - 12,9,1,0,16,40,68,0,124,130,130,130,130,130,130,124, - 7,11,11,9,1,0,98,156,0,124,130,130,130,130,130,130, - 124,7,11,11,9,1,0,68,68,0,124,130,130,130,130,130, - 130,124,7,7,7,9,1,1,130,68,40,16,40,68,130,7, - 12,12,9,1,255,2,124,134,138,138,146,146,162,162,194,124, - 128,7,12,12,9,1,0,64,32,16,0,130,130,130,130,130, - 130,130,124,7,12,12,9,1,0,4,8,16,0,130,130,130, - 130,130,130,130,124,7,12,12,9,1,0,16,40,68,0,130, - 130,130,130,130,130,130,124,7,11,11,9,1,0,68,68,0, - 130,130,130,130,130,130,130,124,7,12,12,9,1,0,4,8, - 16,0,130,130,68,40,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,4,8,16,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,50,76,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,68,68,0,124,2,2,126,130,134,122,7,11,11, - 9,1,0,24,36,24,0,124,2,2,126,130,134,122,7,7, - 7,9,1,0,108,146,18,124,144,146,110,7,10,10,9,1, - 253,124,130,128,128,128,130,124,24,72,48,7,11,11,9,1, - 0,64,32,16,0,124,130,130,254,128,128,124,7,11,11,9, - 1,0,4,8,16,0,124,130,130,254,128,128,124,7,11,11, - 9,1,0,16,40,68,0,124,130,130,254,128,128,124,7,10, - 10,9,1,0,68,68,0,124,130,130,254,128,128,124,5,11, - 11,9,2,0,128,64,32,0,224,32,32,32,32,32,248,5, - 11,11,9,2,0,16,32,64,0,224,32,32,32,32,32,248, - 6,11,11,9,1,0,32,80,136,0,112,16,16,16,16,16, - 124,5,10,10,9,2,0,144,144,0,224,32,32,32,32,32, - 248,7,11,11,9,1,0,72,48,80,8,124,130,130,130,130, - 130,124,7,10,10,9,1,0,98,156,0,188,194,130,130,130, - 130,130,7,11,11,9,1,0,64,32,16,0,124,130,130,130, - 130,130,124,7,11,11,9,1,0,4,8,16,0,124,130,130, - 130,130,130,124,7,11,11,9,1,0,16,40,68,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,98,156,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,68,68,0,124,130, - 130,130,130,130,124,7,9,9,9,1,0,16,56,16,0,254, - 0,16,56,16,7,9,9,9,1,255,2,124,138,138,146,162, - 162,124,128,7,11,11,9,1,0,64,32,16,0,132,132,132, - 132,132,132,122,7,11,11,9,1,0,4,8,16,0,132,132, - 132,132,132,132,122,7,11,11,9,1,0,16,40,68,0,132, - 132,132,132,132,132,122,7,10,10,9,1,0,72,72,0,132, - 132,132,132,132,132,122,6,14,14,9,1,253,8,16,32,0, - 132,132,132,132,132,140,116,4,132,120,7,12,12,9,1,253, - 128,128,128,188,194,130,130,194,188,128,128,128,6,13,13,9, - 1,253,72,72,0,132,132,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15r[1427] U8G_FONT_SECTION("u8g_font_9x15r") = { - 0,9,15,0,253,10,1,232,3,216,32,127,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=18 x= 8 y=12 dx= 9 dy= 0 ascent=14 len=36 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[3936] U8G_FONT_SECTION("u8g_font_9x18_67_75") = { - 0,9,18,0,252,4,1,255,4,34,32,255,0,14,252,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,10,10,9,1,0,16,40,68,238,68,238,40,40,40, - 56,7,11,11,9,1,255,16,40,68,238,68,238,40,40,108, - 68,124,9,7,14,9,0,1,132,0,134,0,253,0,128,128, - 253,0,134,0,132,0,7,7,7,9,1,0,252,128,184,176, - 168,132,2,7,7,7,9,1,0,128,66,42,26,58,2,126, - 7,11,11,9,1,255,16,40,68,238,40,40,40,238,68,40, - 16,9,7,14,9,0,1,4,0,50,0,73,0,255,128,73, - 0,50,0,4,0,9,10,20,9,0,0,34,0,39,0,42, - 128,34,0,34,0,34,0,34,0,170,0,114,0,34,0,7, - 13,13,9,1,254,8,4,254,4,8,4,254,4,8,4,254, - 4,8,8,5,5,9,0,2,36,68,255,68,36,8,5,5, - 9,0,2,36,34,255,34,36,9,5,10,9,0,2,42,0, - 73,0,255,128,73,0,42,0,8,5,5,9,0,2,42,74, - 255,74,42,8,5,5,9,0,2,84,82,255,82,84,9,5, - 10,9,0,2,85,0,148,128,255,128,148,128,85,0,7,7, - 7,9,1,1,16,48,80,158,80,48,16,7,7,7,9,1, - 1,16,24,20,242,20,24,16,8,5,5,9,0,2,36,102, - 189,102,36,9,9,18,9,0,5,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,2,4,9,0, - 252,255,128,255,128,9,4,8,9,0,252,255,128,255,128,255, - 128,255,128,9,7,14,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,9,9,18,9,0,252,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,9, - 11,22,9,0,252,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,14,28,9,0, - 252,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,9,16,32, - 9,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,9,18,36,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,8,18,18, - 9,0,252,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,18,18,9,0,252,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,254,254,254,6,18,18, - 9,0,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,5,18,18,9,0,252,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,3,18,18, - 9,0,252,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,2,18,18,9,0,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,1,18,18, - 9,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,18,18,9,5,252,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,9,17,34, - 9,0,253,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,9,18,36,9,0,252,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,9, - 18,36,9,0,252,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,9,2,4,9,0,12,255, - 128,255,128,1,18,18,9,8,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,9,9,9,0, - 252,248,248,248,248,248,248,248,248,248,4,9,9,9,5,252, - 240,240,240,240,240,240,240,240,240,5,9,9,9,0,5,248, - 248,248,248,248,248,248,248,248,9,18,36,9,0,252,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,9,18,36,9,0,252,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,9,18,36,9,0,252,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 4,9,9,9,5,5,240,240,240,240,240,240,240,240,240,9, - 18,36,9,0,252,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,9,18,36,9,0,252,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,7,7,7,9,1,1,254,254,254,254,254,254,254, - 7,7,7,9,1,1,254,130,130,130,130,130,254,7,7,7, - 9,1,1,124,130,130,130,130,130,124,7,7,7,9,1,1, - 254,130,186,186,186,130,254,7,7,7,9,1,1,254,130,254, - 130,254,130,254,7,7,7,9,1,1,254,170,170,170,170,170, - 254,7,7,7,9,1,1,254,170,254,170,254,170,254,7,7, - 7,9,1,1,254,146,138,198,162,146,254,7,7,7,9,1, - 1,254,146,162,198,138,146,254,7,7,7,9,1,1,254,214, - 138,214,162,214,254,3,3,3,9,3,3,224,224,224,3,3, - 3,9,3,3,224,160,224,9,5,10,9,0,2,255,128,255, - 128,255,128,255,128,255,128,9,5,10,9,0,2,255,128,128, - 128,128,128,128,128,255,128,5,9,9,9,2,0,248,248,248, - 248,248,248,248,248,248,5,9,9,9,2,0,248,136,136,136, - 136,136,136,136,248,9,5,10,9,0,2,127,128,127,128,255, - 128,255,0,255,0,9,5,10,9,0,2,127,128,64,128,128, - 128,129,0,255,0,9,10,20,9,0,0,8,0,8,0,28, - 0,28,0,62,0,62,0,127,0,127,0,255,128,255,128,9, - 10,20,9,0,0,8,0,8,0,20,0,20,0,34,0,34, - 0,65,0,65,0,128,128,255,128,7,7,7,9,1,1,16, - 16,56,56,124,124,254,7,7,7,9,1,1,16,16,40,40, - 68,68,254,9,9,18,9,0,0,192,0,240,0,252,0,255, - 0,255,128,255,0,252,0,240,0,192,0,9,9,18,9,0, - 0,192,0,176,0,140,0,131,0,128,128,131,0,140,0,176, - 0,192,0,7,7,7,9,1,1,128,224,248,254,248,224,128, - 7,7,7,9,1,1,128,224,152,134,152,224,128,9,5,10, - 9,0,2,224,0,252,0,255,128,252,0,224,0,9,5,10, - 9,0,2,224,0,156,0,131,128,156,0,224,0,9,10,20, - 9,0,0,255,128,255,128,127,0,127,0,62,0,62,0,28, - 0,28,0,8,0,8,0,9,10,20,9,0,0,255,128,128, - 128,65,0,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,7,7,9,1,1,254,124,124,56,56,16,16,7,7, - 7,9,1,1,254,68,68,40,40,16,16,9,9,18,9,0, - 0,1,128,7,128,31,128,127,128,255,128,127,128,31,128,7, - 128,1,128,9,9,18,9,0,0,1,128,6,128,24,128,96, - 128,128,128,96,128,24,128,6,128,1,128,7,7,7,9,1, - 1,2,14,62,254,62,14,2,7,7,7,9,1,1,2,14, - 50,194,50,14,2,9,5,10,9,0,2,3,128,31,128,255, - 128,31,128,3,128,9,5,10,9,0,2,3,128,28,128,224, - 128,28,128,3,128,9,9,18,9,0,0,8,0,28,0,62, - 0,127,0,255,128,127,0,62,0,28,0,8,0,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,128,128,65,0,34, - 0,20,0,8,0,9,9,18,9,0,0,8,0,20,0,34, - 0,73,0,156,128,73,0,34,0,20,0,8,0,7,7,7, - 9,1,1,56,68,146,186,146,68,56,5,9,9,9,2,0, - 32,32,80,80,136,80,80,32,32,7,7,7,9,1,1,56, - 68,130,130,130,68,56,7,7,7,9,1,1,16,68,0,130, - 0,68,16,7,7,7,9,1,1,56,108,170,170,170,108,56, - 7,7,7,9,1,1,56,68,146,170,146,68,56,7,7,7, - 9,1,1,56,124,254,254,254,124,56,7,7,7,9,1,1, - 56,116,242,242,242,116,56,7,7,7,9,1,1,56,92,158, - 158,158,92,56,7,7,7,9,1,1,56,68,130,254,254,124, - 56,7,7,7,9,1,1,56,124,254,254,130,68,56,7,7, - 7,9,1,1,56,92,158,158,130,68,56,7,7,7,9,1, - 1,56,92,158,254,254,124,56,4,7,7,9,1,1,48,112, - 240,240,240,112,48,4,7,7,9,4,1,192,224,240,240,240, - 224,192,9,18,36,9,0,252,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,227,128,193,128,193,128,193,128,227,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,227,128, - 221,128,190,128,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,255,128,9,10,20,9,0,4,255,128,255,128, - 255,128,255,128,255,128,255,128,227,128,221,128,190,128,190,128, - 9,9,18,9,0,252,190,128,190,128,221,128,227,128,255,128, - 255,128,255,128,255,128,255,128,4,4,4,9,1,4,48,64, - 128,128,4,4,4,9,4,4,192,32,16,16,4,4,4,9, - 4,1,16,16,32,192,4,4,4,9,1,1,128,128,64,48, - 7,4,4,9,1,4,56,68,130,130,7,4,4,9,1,1, - 130,130,68,56,7,7,7,9,1,1,2,6,14,30,62,126, - 254,7,7,7,9,1,1,128,192,224,240,248,252,254,7,7, - 7,9,1,1,254,252,248,240,224,192,128,7,7,7,9,1, - 1,254,126,62,30,14,6,2,5,5,5,9,2,2,112,136, - 136,136,112,7,7,7,9,1,1,254,242,242,242,242,242,254, - 7,7,7,9,1,1,254,158,158,158,158,158,254,7,7,7, - 9,1,1,254,254,250,242,226,194,254,7,7,7,9,1,1, - 254,134,142,158,190,254,254,7,7,7,9,1,1,254,146,146, - 146,146,146,254,9,10,20,9,0,0,8,0,8,0,20,0, - 20,0,34,0,42,0,93,0,73,0,128,128,255,128,9,10, - 20,9,0,0,8,0,8,0,28,0,28,0,58,0,58,0, - 121,0,121,0,248,128,255,128,9,10,20,9,0,0,8,0, - 8,0,28,0,28,0,46,0,46,0,79,0,79,0,143,128, - 255,128,9,9,18,9,0,0,62,0,65,0,128,128,128,128, - 128,128,128,128,128,128,65,0,62,0,7,7,7,9,1,1, - 254,146,146,242,130,130,254,7,7,7,9,1,1,254,130,130, - 242,146,146,254,7,7,7,9,1,1,254,130,130,158,146,146, - 254,7,7,7,9,1,1,254,146,146,158,130,130,254,7,7, - 7,9,1,1,124,146,146,242,130,130,124,7,7,7,9,1, - 1,124,130,130,242,146,146,124,7,7,7,9,1,1,124,130, - 130,158,146,146,124,7,7,7,9,1,1,124,146,146,158,130, - 130,124,6,6,6,9,1,1,252,136,144,160,192,128,6,6, - 6,9,1,1,252,68,36,20,12,4,6,6,6,9,1,1, - 128,192,160,144,136,252,6,6,6,9,1,1,252,132,132,132, - 132,252,6,6,6,9,1,1,252,252,252,252,252,252,5,5, - 5,9,2,1,248,136,136,136,248,5,5,5,9,2,1,248, - 248,248,248,248,6,6,6,9,1,1,4,12,20,36,68,252 - }; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_75r[792] U8G_FONT_SECTION("u8g_font_9x18_75r") = { - 0,9,18,0,252,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=12 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[3336] U8G_FONT_SECTION("u8g_font_9x18_78_79") = { - 0,9,18,0,252,9,2,231,4,175,32,255,0,12,255,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,5,12,12,9,2,255,248,160,160,160, - 160,160,160,160,160,160,160,248,5,12,12,9,2,255,248,40, - 40,40,40,40,40,40,40,40,40,248,3,10,10,9,3,0, - 32,32,64,64,128,128,64,64,32,32,3,10,10,9,3,0, - 128,128,64,64,32,32,64,64,128,128,6,10,10,9,1,0, - 36,36,72,72,144,144,72,72,36,36,6,10,10,9,2,0, - 144,144,72,72,36,36,72,72,144,144,255,255,255,255,9,11, - 22,9,0,0,8,0,20,0,54,0,85,0,213,128,85,0, - 85,0,85,0,85,0,85,0,85,0,9,11,22,9,0,255, - 85,0,85,0,85,0,85,0,85,0,85,0,213,128,85,0, - 54,0,20,0,8,0,8,8,8,9,0,0,28,34,169,113, - 33,1,34,28,8,8,8,9,0,0,56,68,149,142,132,128, - 68,56,9,5,10,9,0,2,114,0,169,0,255,128,169,0, - 114,0,9,5,10,9,0,2,32,0,64,0,255,128,64,0, - 32,0,9,5,10,9,0,2,2,0,1,0,255,128,1,0, - 2,0,9,5,10,9,0,2,34,0,65,0,255,128,65,0, - 34,0,9,7,14,9,0,1,16,0,32,0,127,128,128,0, - 127,128,32,0,16,0,9,7,14,9,0,1,4,0,2,0, - 255,0,0,128,255,0,2,0,4,0,9,7,14,9,0,1, - 20,0,34,0,127,0,128,128,127,0,34,0,20,0,9,5, - 10,9,0,2,32,128,64,128,255,128,64,128,32,128,9,5, - 10,9,0,2,130,0,129,0,255,128,129,0,130,0,9,7, - 14,9,0,1,16,128,32,128,127,128,128,128,127,128,32,128, - 16,128,9,7,14,9,0,1,132,0,130,0,255,0,128,128, - 255,0,130,0,132,0,9,6,12,9,0,1,2,0,1,0, - 85,128,170,128,1,0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18B[3026] U8G_FONT_SECTION("u8g_font_9x18B") = { - 0,9,18,0,252,10,1,242,3,225,32,255,253,14,252,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,9,0,14, - 2,10,10,9,4,0,192,0,192,192,192,192,192,192,192,192, - 7,8,8,9,1,0,4,124,206,208,208,230,124,64,8,10, - 10,9,0,255,30,51,48,48,124,48,48,248,191,224,7,7, - 7,9,1,2,198,254,108,68,108,254,198,8,10,10,9,0, - 0,195,195,102,60,126,24,126,24,24,24,2,11,11,9,3, - 255,192,192,192,192,192,0,192,192,192,192,192,6,11,11,9, - 1,255,120,204,192,120,204,204,204,120,12,204,120,5,2,2, - 9,2,11,216,216,8,11,11,9,0,0,60,126,195,189,165, - 161,165,189,195,126,60,5,7,7,9,1,3,112,24,120,216, - 120,0,248,8,8,8,9,0,1,27,54,108,216,216,108,54, - 27,7,5,5,9,1,2,254,254,6,6,6,6,1,1,9, - 1,4,252,8,11,11,9,0,0,60,126,195,189,165,189,169, - 173,195,126,60,6,2,2,9,1,9,252,252,5,4,4,9, - 1,8,112,216,216,112,6,9,9,9,1,1,48,48,48,252, - 48,48,48,0,252,5,6,6,9,1,4,112,216,24,48,96, - 248,5,6,6,9,1,4,112,216,48,24,216,112,4,3,3, - 9,2,10,48,96,192,7,9,9,9,1,254,198,198,198,198, - 206,222,246,192,192,7,10,10,9,1,0,126,246,246,246,118, - 54,54,54,54,54,3,2,2,9,3,4,224,224,6,3,3, - 9,1,253,24,204,120,4,6,6,9,1,4,96,224,96,96, - 96,240,5,7,7,9,1,3,112,216,216,216,112,0,248,8, - 8,8,9,0,1,216,108,54,27,27,54,108,216,8,11,11, - 9,0,0,96,224,96,96,97,99,247,15,27,31,3,8,11, - 11,9,0,0,96,224,96,96,110,115,243,6,12,24,31,8, - 11,11,9,0,0,112,152,24,48,25,155,119,15,27,31,3, - 7,10,10,9,1,0,24,24,0,24,48,96,192,198,198,124, - 7,14,14,9,1,0,96,48,24,0,16,56,56,56,108,124, - 108,198,198,198,7,14,14,9,1,0,12,24,48,0,16,56, - 56,56,108,124,108,198,198,198,7,14,14,9,1,0,16,56, - 108,0,16,56,56,56,108,124,108,198,198,198,7,13,13,9, - 1,0,118,220,0,16,56,56,56,108,124,108,198,198,198,7, - 13,13,9,1,0,108,108,0,16,56,56,56,108,124,108,198, - 198,198,7,14,14,9,1,0,56,108,108,56,16,56,56,56, - 108,124,108,198,198,198,7,10,10,9,1,0,62,60,108,108, - 110,252,204,204,204,206,7,14,14,9,1,252,60,102,192,192, - 192,192,192,192,102,60,24,12,108,56,7,14,14,9,1,0, - 96,48,24,0,254,192,192,192,248,192,192,192,192,254,7,14, - 14,9,1,0,12,24,48,0,254,192,192,192,248,192,192,192, - 192,254,7,14,14,9,1,0,16,56,108,0,254,192,192,192, - 248,192,192,192,192,254,7,13,13,9,1,0,108,108,0,254, - 192,192,192,248,192,192,192,192,254,6,14,14,9,1,0,96, - 48,24,0,252,48,48,48,48,48,48,48,48,252,6,14,14, - 9,1,0,12,24,48,0,252,48,48,48,48,48,48,48,48, - 252,6,14,14,9,1,0,16,56,108,0,252,48,48,48,48, - 48,48,48,48,252,6,13,13,9,1,0,108,108,0,252,48, - 48,48,48,48,48,48,48,252,8,10,10,9,0,0,124,102, - 99,99,243,99,99,99,102,124,7,13,13,9,1,0,118,220, - 0,198,198,230,246,222,206,198,198,198,198,7,14,14,9,1, - 0,96,48,24,0,124,198,198,198,198,198,198,198,198,124,7, - 14,14,9,1,0,12,24,48,0,124,198,198,198,198,198,198, - 198,198,124,7,14,14,9,1,0,16,56,108,0,124,198,198, - 198,198,198,198,198,198,124,7,13,13,9,1,0,118,220,0, - 124,198,198,198,198,198,198,198,198,124,7,13,13,9,1,0, - 108,108,0,124,198,198,198,198,198,198,198,198,124,8,7,7, - 9,0,1,195,102,60,24,60,102,195,7,12,12,9,1,255, - 6,126,206,206,222,222,246,246,230,230,252,192,7,14,14,9, - 1,0,96,48,24,0,198,198,198,198,198,198,198,198,108,56, - 7,14,14,9,1,0,12,24,48,0,198,198,198,198,198,198, - 198,198,108,56,7,14,14,9,1,0,16,56,108,0,198,198, - 198,198,198,198,198,198,108,56,7,13,13,9,1,0,108,108, - 0,198,198,198,198,198,198,198,198,108,56,8,14,14,9,0, - 0,12,24,48,0,195,195,102,60,24,24,24,24,24,24,7, - 10,10,9,1,0,192,192,252,198,198,198,252,192,192,192,7, - 10,10,9,1,0,60,102,102,102,236,102,102,102,102,108,7, - 11,11,9,1,0,96,48,24,0,124,6,6,126,198,198,126, - 7,11,11,9,1,0,12,24,48,0,124,6,6,126,198,198, - 126,7,11,11,9,1,0,16,56,108,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,118,220,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,108,108,0,124,6,6,126,198, - 198,126,7,11,11,9,1,0,56,108,56,0,124,6,6,126, - 198,198,126,8,7,7,9,0,0,118,27,27,127,216,219,118, - 7,11,11,9,1,252,124,198,192,192,192,198,124,24,12,108, - 56,7,11,11,9,1,0,96,48,24,0,124,198,198,254,192, - 198,124,7,11,11,9,1,0,12,24,48,0,124,198,198,254, - 192,198,124,7,11,11,9,1,0,16,56,108,0,124,198,198, - 254,192,198,124,7,10,10,9,1,0,108,108,0,124,198,198, - 254,192,198,124,6,11,11,9,1,0,192,96,48,0,240,48, - 48,48,48,48,252,6,11,11,9,1,0,12,24,48,0,240, - 48,48,48,48,48,252,6,11,11,9,1,0,32,112,216,0, - 240,48,48,48,48,48,252,6,10,10,9,1,0,108,108,0, - 240,48,48,48,48,48,252,7,11,11,9,1,0,108,56,56, - 108,12,126,198,198,198,198,124,7,10,10,9,1,0,118,220, - 0,220,230,198,198,198,198,198,7,11,11,9,1,0,96,48, - 24,0,56,108,198,198,198,108,56,7,11,11,9,1,0,12, - 24,48,0,56,108,198,198,198,108,56,7,11,11,9,1,0, - 16,56,108,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,118,220,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,108,108,0,56,108,198,198,198,108,56,8,7,7,9,0, - 1,24,24,0,255,0,24,24,8,9,9,9,0,255,1,63, - 102,207,219,243,102,252,128,7,11,11,9,1,0,96,48,24, - 0,198,198,198,198,198,198,126,7,11,11,9,1,0,12,24, - 48,0,198,198,198,198,198,198,126,7,11,11,9,1,0,16, - 56,108,0,198,198,198,198,198,198,126,7,10,10,9,1,0, - 108,108,0,198,198,198,198,198,198,126,7,14,14,9,1,253, - 12,24,48,0,198,198,108,108,108,56,56,48,176,96,7,11, - 11,9,1,254,192,192,248,204,198,198,198,204,248,192,192,7, - 13,13,9,1,253,108,108,0,198,198,108,108,108,56,56,48, - 176,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18Br[1434] U8G_FONT_SECTION("u8g_font_9x18Br") = { - 0,9,18,0,252,10,1,242,3,225,32,127,253,14,253,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=14 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18[3011] U8G_FONT_SECTION("u8g_font_9x18") = { - 0,9,18,0,252,10,1,232,3,215,32,255,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,14,1,11,11,9,4,0,128,128,0,0, - 128,128,128,128,128,128,128,6,8,8,9,1,0,8,120,148, - 144,160,164,120,64,7,10,10,9,1,0,28,34,32,32,248, - 32,32,96,162,92,7,6,6,9,1,3,130,124,68,68,124, - 130,7,10,10,9,1,0,130,130,68,40,124,16,124,16,16, - 16,1,11,11,9,4,255,128,128,128,128,128,0,128,128,128, - 128,128,4,11,11,9,2,255,96,144,128,96,144,144,144,96, - 16,144,96,3,2,2,9,3,11,160,160,8,9,9,9,0, - 1,60,66,153,165,161,165,153,66,60,5,7,7,9,1,3, - 96,144,112,144,120,0,248,7,8,8,9,1,1,18,36,72, - 144,144,72,36,18,6,4,4,9,1,2,252,4,4,4,5, - 1,1,9,2,4,248,8,9,9,9,0,1,60,66,185,165, - 189,169,165,66,60,6,1,1,9,1,9,252,4,4,4,9, - 3,6,96,144,144,96,7,9,9,9,1,1,16,16,16,254, - 16,16,16,0,254,4,6,6,9,1,4,96,144,16,96,128, - 240,4,6,6,9,1,4,96,144,32,16,144,96,3,3,3, - 9,3,10,32,64,128,7,9,9,9,1,254,130,130,130,130, - 130,198,186,128,128,7,10,10,9,1,0,126,138,138,138,122, - 10,10,10,10,10,2,2,2,9,4,4,192,192,4,3,3, - 9,2,253,32,144,96,3,6,6,9,1,4,64,192,64,64, - 64,224,5,6,6,9,1,4,112,136,136,112,0,248,7,8, - 8,9,1,1,144,72,36,18,18,36,72,144,7,10,10,9, - 1,0,64,192,64,64,66,230,10,18,26,6,7,10,10,9, - 1,0,64,192,64,64,76,242,2,12,16,30,7,10,10,9, - 1,0,96,144,32,16,146,102,10,18,26,6,7,10,10,9, - 1,0,16,0,16,16,32,64,128,130,130,124,7,14,14,9, - 1,0,32,16,8,0,16,40,40,40,68,124,68,130,130,130, - 7,14,14,9,1,0,8,16,32,0,16,40,40,40,68,124, - 68,130,130,130,7,14,14,9,1,0,16,40,68,0,16,40, - 40,40,68,124,68,130,130,130,7,13,13,9,1,0,52,88, - 0,16,40,40,40,68,124,68,130,130,130,7,13,13,9,1, - 0,40,40,0,16,40,40,40,68,124,68,130,130,130,7,14, - 14,9,1,0,16,40,40,16,16,40,40,40,68,124,68,130, - 130,130,7,10,10,9,1,0,30,40,40,40,78,120,72,136, - 136,142,7,13,13,9,1,253,60,66,128,128,128,128,128,128, - 66,60,8,36,24,7,14,14,9,1,0,32,16,8,0,254, - 128,128,128,248,128,128,128,128,254,7,14,14,9,1,0,8, - 16,32,0,254,128,128,128,248,128,128,128,128,254,7,14,14, - 9,1,0,16,40,68,0,254,128,128,128,248,128,128,128,128, - 254,7,13,13,9,1,0,40,40,0,254,128,128,128,248,128, - 128,128,128,254,5,14,14,9,2,0,64,32,16,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,9,2,0,16,32, - 64,0,248,32,32,32,32,32,32,32,32,248,5,14,14,9, - 2,0,32,80,136,0,248,32,32,32,32,32,32,32,32,248, - 5,13,13,9,2,0,80,80,0,248,32,32,32,32,32,32, - 32,32,248,7,10,10,9,1,0,120,68,66,66,242,66,66, - 66,68,120,7,13,13,9,1,0,52,88,0,130,130,194,162, - 146,138,134,130,130,130,7,14,14,9,1,0,32,16,8,0, - 124,130,130,130,130,130,130,130,130,124,7,14,14,9,1,0, - 8,16,32,0,124,130,130,130,130,130,130,130,130,124,7,14, - 14,9,1,0,16,40,68,0,124,130,130,130,130,130,130,130, - 130,124,7,13,13,9,1,0,52,88,0,124,130,130,130,130, - 130,130,130,130,124,7,13,13,9,1,0,40,40,0,124,130, - 130,130,130,130,130,130,130,124,7,7,7,9,1,1,130,68, - 40,16,40,68,130,7,12,12,9,1,255,2,124,134,138,138, - 146,146,162,162,194,124,128,7,14,14,9,1,0,32,16,8, - 0,130,130,130,130,130,130,130,130,68,56,7,14,14,9,1, - 0,8,16,32,0,130,130,130,130,130,130,130,130,68,56,7, - 14,14,9,1,0,16,40,68,0,130,130,130,130,130,130,130, - 130,68,56,7,13,13,9,1,0,40,40,0,130,130,130,130, - 130,130,130,130,68,56,7,14,14,9,1,0,8,16,32,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,8,16,32,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,52,88,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,40,40,0,124,2,2,126,130,134,122,7,12,12, - 9,1,0,16,40,40,16,0,124,2,2,126,130,134,122,7, - 7,7,9,1,0,108,18,18,126,144,146,108,7,10,10,9, - 1,253,124,130,128,128,128,130,124,16,72,48,7,11,11,9, - 1,0,32,16,8,0,124,130,130,254,128,130,124,7,11,11, - 9,1,0,8,16,32,0,124,130,130,254,128,130,124,7,11, - 11,9,1,0,16,40,68,0,124,130,130,254,128,130,124,7, - 10,10,9,1,0,40,40,0,124,130,130,254,128,130,124,5, - 12,12,9,2,0,128,64,32,0,0,224,32,32,32,32,32, - 248,5,12,12,9,2,0,16,32,64,0,0,224,32,32,32, - 32,32,248,5,12,12,9,2,0,32,80,136,0,0,224,32, - 32,32,32,32,248,5,11,11,9,2,0,80,80,0,0,224, - 32,32,32,32,32,248,7,11,11,9,1,0,72,48,80,8, - 60,68,130,130,130,68,56,7,10,10,9,1,0,52,88,0, - 188,194,130,130,130,130,130,7,11,11,9,1,0,32,16,8, - 0,124,130,130,130,130,130,124,7,11,11,9,1,0,8,16, - 32,0,124,130,130,130,130,130,124,7,11,11,9,1,0,16, - 40,68,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 52,88,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 40,40,0,124,130,130,130,130,130,124,7,9,9,9,1,0, - 16,56,16,0,254,0,16,56,16,7,9,9,9,1,255,2, - 124,138,138,146,162,162,124,128,7,11,11,9,1,0,64,32, - 16,0,130,130,130,130,130,134,122,7,11,11,9,1,0,8, - 16,32,0,130,130,130,130,130,134,122,7,11,11,9,1,0, - 16,40,68,0,130,130,130,130,130,134,122,7,10,10,9,1, - 0,40,40,0,130,130,130,130,130,134,122,7,14,14,9,1, - 253,4,8,16,0,66,66,36,36,36,24,24,16,144,96,7, - 11,11,9,1,254,128,128,184,196,130,130,130,196,184,128,128, - 7,13,13,9,1,253,36,36,0,66,66,36,36,36,24,24, - 16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=13 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18r[1424] U8G_FONT_SECTION("u8g_font_9x18r") = { - 0,9,18,0,252,10,1,232,3,215,32,127,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255 - }; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 9 x= 1 y= 5 dx=10 dy= 0 ascent= 8 len=12 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_baby[2227] U8G_FONT_SECTION("u8g_font_baby") = { - 0,10,10,255,254,5,1,108,2,200,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,1,6,6,3,1,255,128,0,128,128,128,128,4,6,6, - 5,0,255,16,112,160,160,112,64,4,6,6,5,0,0,96, - 208,64,224,64,240,4,4,4,5,0,1,240,144,144,240,5, - 7,7,6,0,255,136,80,32,112,32,112,32,1,7,7,2, - 0,255,128,128,128,0,128,128,128,4,7,7,5,0,255,112, - 128,96,144,96,16,224,3,1,1,4,0,5,160,7,7,7, - 8,0,255,56,68,154,162,154,68,56,3,3,3,4,0,4, - 96,160,224,4,3,3,5,0,1,80,160,80,5,3,3,6, - 0,1,248,8,8,2,1,1,3,0,2,192,7,7,7,8, - 0,255,56,68,178,186,170,68,56,4,1,1,5,0,5,240, - 3,3,3,4,0,4,64,160,64,3,5,5,4,0,0,64, - 224,64,0,224,3,4,4,4,0,4,192,32,64,224,3,4, - 4,4,0,4,224,32,96,224,2,2,2,3,0,5,64,128, - 5,6,6,6,0,254,144,144,144,248,128,128,5,6,6,6, - 0,0,120,232,232,104,40,40,1,1,1,3,1,2,128,3, - 3,3,4,0,254,64,32,192,3,4,4,4,0,4,64,192, - 64,224,4,4,4,5,0,4,96,144,144,96,4,3,3,5, - 0,1,160,80,160,7,6,6,8,0,0,136,144,160,42,78, - 130,7,6,6,8,0,0,136,144,164,42,68,142,9,6,12, - 10,0,0,226,0,100,0,232,0,10,128,19,128,32,128,4, - 6,6,5,0,255,32,0,32,64,144,96,4,8,8,5,0, - 0,64,32,0,96,144,144,240,144,4,8,8,5,0,0,32, - 64,0,96,144,144,240,144,4,8,8,5,0,0,96,144,0, - 96,144,144,240,144,4,8,8,5,0,0,80,160,0,96,144, - 144,240,144,4,7,7,5,0,0,80,0,96,144,144,240,144, - 4,7,7,5,0,0,96,0,96,144,144,240,144,7,5,5, - 8,0,0,126,144,156,240,158,4,7,7,5,0,254,96,144, - 128,144,96,32,64,4,8,8,5,0,0,64,32,0,240,128, - 224,128,240,4,8,8,5,0,0,32,64,0,240,128,224,128, - 240,4,8,8,5,0,0,96,144,0,240,128,224,128,240,4, - 7,7,5,0,0,80,0,240,128,224,128,240,3,8,8,4, - 0,0,128,64,0,224,64,64,64,224,3,8,8,4,0,0, - 32,64,0,224,64,64,64,224,3,8,8,4,0,0,64,160, - 0,224,64,64,64,224,3,7,7,4,0,0,160,0,224,64, - 64,64,224,5,5,5,6,0,0,112,72,232,72,112,4,8, - 8,5,0,0,80,160,0,144,144,208,176,144,4,8,8,5, - 0,0,64,32,0,96,144,144,144,96,4,8,8,5,0,0, - 32,64,0,96,144,144,144,96,4,8,8,5,0,0,96,144, - 0,96,144,144,144,96,4,8,8,5,0,0,80,160,0,96, - 144,144,144,96,4,7,7,5,0,0,80,0,96,144,144,144, - 96,3,3,3,4,0,1,160,64,160,6,5,5,7,0,0, - 48,76,120,200,48,4,8,8,5,0,0,64,32,0,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,144,144, - 96,4,8,8,5,0,0,96,144,0,144,144,144,144,96,4, - 7,7,5,0,0,80,0,144,144,144,144,96,4,9,9,5, - 0,255,32,64,0,144,144,144,112,16,96,4,6,6,5,0, - 0,128,224,144,144,224,128,4,5,5,5,0,0,96,144,160, - 144,160,4,7,7,5,0,0,64,32,0,96,144,144,112,4, - 7,7,5,0,0,32,64,0,96,144,144,112,4,7,7,5, - 0,0,96,144,0,96,144,144,112,4,7,7,5,0,0,80, - 160,0,96,144,144,112,4,6,6,5,0,0,80,0,96,144, - 144,112,4,7,7,5,0,0,96,96,0,96,144,144,112,7, - 4,4,8,0,0,108,146,148,126,3,6,6,4,0,254,96, - 128,128,96,32,64,4,7,7,5,0,0,64,32,0,96,144, - 160,112,4,7,7,5,0,0,32,64,0,96,144,160,112,4, - 7,7,5,0,0,96,144,0,96,144,160,112,4,6,6,5, - 0,0,80,0,96,144,160,112,2,6,6,3,0,0,128,64, - 0,64,64,64,2,6,6,3,0,0,64,128,0,128,128,128, - 3,6,6,4,0,0,64,160,0,64,64,64,3,5,5,4, - 0,0,160,0,64,64,64,5,6,6,6,0,0,96,24,112, - 144,144,96,4,7,7,5,0,0,80,160,0,224,144,144,144, - 4,7,7,5,0,0,64,32,0,96,144,144,96,4,7,7, - 5,0,0,32,64,0,96,144,144,96,4,7,7,5,0,0, - 96,144,0,96,144,144,96,4,7,7,5,0,0,80,160,0, - 96,144,144,96,4,6,6,5,0,0,80,0,96,144,144,96, - 5,5,5,6,0,0,32,0,248,0,32,4,4,4,5,0, - 0,96,176,208,96,4,7,7,5,0,0,64,32,0,144,144, - 144,112,4,7,7,5,0,0,32,64,0,144,144,144,112,4, - 7,7,5,0,0,96,144,0,144,144,144,112,4,6,6,5, - 0,0,80,0,144,144,144,112,4,9,9,5,0,254,32,64, - 0,144,144,144,112,16,96,4,8,8,5,0,254,128,128,224, - 144,144,224,128,128,4,8,8,5,0,254,80,0,144,144,144, - 112,16,96}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 3 dx= 5 dy= 0 ascent= 6 len= 6 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyn[189] U8G_FONT_SECTION("u8g_font_babyn") = { - 0,10,10,255,254,5,0,0,0,0,42,58,0,6,254,5, - 0,3,3,3,4,0,3,160,64,160,3,3,3,5,1,1, - 64,224,64,2,3,3,3,0,254,192,64,128,3,1,1,4, - 0,2,224,1,1,1,2,0,0,128,3,6,6,4,0,255, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,160,160, - 64,2,5,5,3,0,0,64,192,64,64,64,4,5,5,5, - 0,0,96,144,32,64,240,4,5,5,5,0,0,224,16,96, - 16,224,4,5,5,5,0,0,144,144,144,112,16,4,5,5, - 5,0,0,240,128,224,16,224,4,5,5,5,0,0,96,128, - 224,144,96,4,5,5,5,0,0,240,16,32,64,128,4,5, - 5,5,0,0,96,144,96,144,96,4,5,5,5,0,0,96, - 144,112,16,96,1,3,3,3,1,0,128,0,128}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 1 y= 5 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyr[1040] U8G_FONT_SECTION("u8g_font_babyr") = { - 0,10,10,255,254,5,1,108,2,200,32,127,254,7,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255 - }; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07[948] U8G_FONT_SECTION("u8g_font_blipfest_07") = { - 0,5,6,0,255,5,1,5,2,47,32,255,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[169] U8G_FONT_SECTION("u8g_font_blipfest_07n") = { - 0,5,6,0,255,5,0,0,0,0,42,58,0,5,0,5, - 0,255,3,3,3,4,0,1,64,224,64,1,2,2,2,0, - 0,128,128,3,1,1,4,0,2,224,1,1,1,2,0,0, - 128,255,3,5,5,4,0,0,224,160,160,160,224,2,5,5, - 3,0,0,192,64,64,64,64,3,5,5,4,0,0,224,32, - 224,128,224,3,5,5,4,0,0,224,32,224,32,224,3,5, - 5,4,0,0,160,160,224,32,32,3,5,5,4,0,0,224, - 128,224,32,224,3,5,5,4,0,0,224,128,224,160,224,3, - 5,5,4,0,0,224,32,32,32,32,3,5,5,4,0,0, - 224,160,224,160,224,3,5,5,4,0,0,224,160,224,32,224, - 1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[820] U8G_FONT_SECTION("u8g_font_blipfest_07r") = { - 0,5,6,0,255,5,1,5,2,47,32,127,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 8 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=10 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikita[2236] U8G_FONT_SECTION("u8g_font_chikita") = { - 0,9,10,0,254,5,1,107,2,195,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,1,7,7,2,0,255,128, - 0,128,128,128,128,128,3,5,5,4,0,0,64,224,128,224, - 64,5,6,6,6,0,0,112,136,72,224,64,248,5,5,5, - 6,0,0,136,112,80,112,136,5,6,6,6,0,0,136,80, - 32,112,112,32,1,5,5,2,0,0,128,128,0,128,128,4, - 7,7,5,0,254,112,128,96,144,96,16,224,3,1,1,4, - 0,6,160,7,7,7,8,0,255,124,130,186,162,186,130,124, - 3,4,4,4,0,4,96,224,160,96,6,5,5,7,0,0, - 36,72,144,72,36,5,3,3,6,0,2,248,8,8,3,1, - 1,5,1,2,224,7,7,7,8,0,255,124,130,186,178,170, - 130,124,5,1,1,6,0,6,248,4,4,4,5,0,3,96, - 144,144,96,3,5,5,5,1,0,64,224,64,0,224,4,5, - 5,5,0,2,96,144,32,64,240,4,5,5,5,0,2,224, - 16,96,16,224,2,2,2,3,0,5,64,128,5,6,6,6, - 0,254,136,136,216,168,128,128,6,7,7,7,0,254,124,232, - 232,104,40,40,40,3,3,3,5,1,1,224,224,224,3,3, - 3,5,1,254,64,32,224,2,5,5,3,0,2,64,192,64, - 64,64,4,5,5,5,0,2,96,144,144,144,96,6,5,5, - 7,0,0,144,72,36,72,144,7,8,8,8,0,254,66,196, - 72,80,38,74,142,2,7,8,8,8,0,254,66,196,72,80, - 44,66,132,14,7,8,8,8,0,254,226,68,40,208,38,74, - 142,2,5,7,7,6,0,255,32,0,32,32,72,136,112,5, - 8,8,6,0,0,64,32,0,112,136,136,248,136,5,8,8, - 6,0,0,16,32,0,112,136,136,248,136,5,8,8,6,0, - 0,32,80,0,112,136,136,248,136,5,8,8,6,0,0,40, - 80,0,112,136,136,248,136,5,7,7,6,0,0,80,0,112, - 136,136,248,136,5,8,8,6,0,0,32,80,32,112,136,136, - 248,136,9,5,10,10,0,0,63,128,72,0,143,0,248,0, - 143,128,5,7,7,6,0,254,112,136,128,136,112,16,112,5, - 8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,8, - 6,0,0,16,32,0,248,128,240,128,248,5,8,8,6,0, - 0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,80, - 0,248,128,240,128,248,3,8,8,4,0,0,128,64,0,224, - 64,64,64,224,3,8,8,4,0,0,32,64,0,224,64,64, - 64,224,3,8,8,4,0,0,64,160,0,224,64,64,64,224, - 3,7,7,4,0,0,160,0,224,64,64,64,224,5,5,5, - 6,0,0,112,72,232,72,112,5,8,8,6,0,0,40,80, - 0,136,200,168,152,136,5,8,8,6,0,0,64,32,0,112, - 136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136, - 136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112, - 5,8,8,6,0,0,64,168,16,112,136,136,136,112,5,7, - 7,6,0,0,80,0,112,136,136,136,112,3,3,3,4,0, - 1,160,64,160,5,5,5,6,0,0,120,152,168,200,240,5, - 8,8,6,0,0,64,32,0,136,136,136,136,112,5,8,8, - 6,0,0,16,32,0,136,136,136,136,112,5,8,8,6,0, - 0,32,80,0,136,136,136,136,112,5,7,7,6,0,0,80, - 0,136,136,136,136,112,5,8,8,6,0,0,16,32,0,136, - 136,80,32,32,5,5,5,6,0,0,128,240,136,240,128,4, - 5,5,5,0,0,96,144,160,144,160,4,7,7,5,0,0, - 64,32,0,112,144,144,240,4,7,7,5,0,0,32,64,0, - 112,144,144,240,4,7,7,5,0,0,32,80,0,112,144,144, - 240,4,7,7,5,0,0,80,160,0,112,144,144,240,4,6, - 6,5,0,0,80,0,112,144,144,240,4,7,7,5,0,0, - 32,80,32,112,144,144,240,7,5,5,8,0,0,236,18,126, - 144,238,4,6,6,5,0,254,112,128,128,112,32,96,4,7, - 7,5,0,0,64,32,0,96,144,224,112,4,7,7,5,0, - 0,32,64,0,96,144,224,112,4,7,7,5,0,0,32,80, - 0,96,144,224,112,4,6,6,5,0,0,80,0,96,144,224, - 112,2,7,7,3,0,0,128,64,0,64,64,64,64,2,7, - 7,3,0,0,64,128,0,128,128,128,128,3,7,7,4,0, - 0,64,160,0,64,64,64,64,3,6,6,4,0,0,160,0, - 64,64,64,64,4,6,6,5,0,0,64,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,96,144,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,5,5,5, - 6,0,0,32,0,248,0,32,4,4,4,5,0,0,112,176, - 208,224,4,7,7,5,0,0,64,32,0,144,144,144,112,4, - 7,7,5,0,0,32,64,0,144,144,144,112,4,7,7,5, - 0,0,32,80,0,144,144,144,112,4,6,6,5,0,0,80, - 0,144,144,144,112,4,8,8,5,0,254,32,64,0,144,144, - 112,16,224,4,6,6,5,0,254,128,224,144,144,224,128,4, - 7,7,5,0,254,80,0,144,144,112,16,224}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitan[189] U8G_FONT_SECTION("u8g_font_chikitan") = { - 0,9,10,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,5,1,1,160,64,160,5,5,5,6,0,0, - 32,32,248,32,32,2,2,2,3,0,255,64,128,5,1,1, - 6,0,2,248,1,1,1,2,0,0,128,3,5,5,5,1, - 0,32,32,64,128,128,4,5,5,5,0,0,96,144,144,144, - 96,2,5,5,3,0,0,64,192,64,64,64,5,5,5,6, - 0,0,112,136,48,64,248,5,5,5,6,0,0,240,8,112, - 8,240,5,5,5,6,0,0,48,80,144,248,16,5,5,5, - 6,0,0,248,128,240,8,240,5,5,5,6,0,0,120,128, - 240,136,112,5,5,5,6,0,0,248,8,16,32,64,5,5, - 5,6,0,0,112,136,112,136,112,5,5,5,6,0,0,112, - 136,120,8,240,1,3,3,2,0,1,128,0,128}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 7 h= 7 x= 1 y= 4 dx= 8 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitar[1032] U8G_FONT_SECTION("u8g_font_chikitar") = { - 0,9,10,0,254,5,1,107,2,195,32,127,254,6,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08[2425] U8G_FONT_SECTION("u8g_font_courB08") = { - 0,12,16,253,252,6,1,146,3,13,32,255,254,9,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,1,2, - 7,7,6,1,254,192,0,192,192,192,192,192,5,8,8,6, - 0,255,32,32,120,200,192,120,32,32,6,7,7,6,0,0, - 56,104,32,248,32,100,248,5,5,5,6,0,1,136,112,80, - 112,136,6,7,7,6,0,0,204,72,252,48,252,48,120,1, - 9,9,6,2,254,128,128,128,128,0,128,128,128,128,5,8, - 8,6,0,255,120,72,96,144,72,48,144,240,3,1,1,6, - 1,5,160,6,7,7,6,0,0,48,72,180,164,180,72,48, - 4,5,5,6,1,2,224,16,208,0,240,7,5,5,6,255, - 0,54,108,216,108,54,5,3,3,6,0,2,248,8,8,5, - 1,1,6,0,3,248,7,7,7,6,0,0,56,68,186,178, - 170,68,56,4,1,1,6,0,5,240,4,3,3,6,0,4, - 96,144,96,5,6,6,6,0,0,32,32,248,32,0,248,3, - 4,4,6,1,3,96,160,64,224,3,4,4,6,1,3,224, - 64,32,192,2,2,2,6,2,5,64,128,7,7,7,6,255, - 254,236,108,108,108,126,64,64,6,8,8,6,0,255,124,168, - 168,104,40,40,40,108,2,1,1,6,1,3,192,3,3,3, - 6,1,254,64,32,192,3,4,4,6,1,3,192,64,64,224, - 4,5,5,6,1,2,96,144,96,0,240,7,5,5,6,255, - 0,216,108,54,108,216,7,7,7,6,255,0,192,68,72,244, - 44,94,4,7,7,7,6,255,0,192,68,72,246,42,68,14, - 7,7,7,6,255,0,224,68,40,212,44,94,4,5,7,7, - 6,0,254,48,0,48,48,96,200,112,7,9,9,6,255,0, - 32,16,0,120,56,40,124,108,238,7,9,9,6,255,0,16, - 32,0,120,56,40,124,108,238,7,9,9,6,255,0,16,40, - 0,120,56,40,124,108,238,7,9,9,6,255,0,52,72,0, - 120,56,40,124,108,238,7,8,8,6,255,0,40,0,120,56, - 40,124,108,238,7,9,9,6,255,0,48,72,48,120,56,40, - 124,108,238,7,6,6,6,255,0,126,58,108,120,218,222,5, - 8,8,6,0,254,120,216,192,192,216,112,16,96,6,9,9, - 6,255,0,32,16,0,252,100,120,96,108,252,6,9,9,6, - 255,0,16,32,0,252,100,120,96,108,252,6,9,9,6,255, - 0,32,80,0,252,100,120,96,108,252,6,8,8,6,255,0, - 80,0,252,100,120,96,108,252,4,9,9,6,0,0,64,32, - 0,240,96,96,96,96,240,4,9,9,6,0,0,32,64,0, - 240,96,96,96,96,240,4,9,9,6,0,0,64,160,0,240, - 96,96,96,96,240,4,8,8,6,0,0,160,0,240,96,96, - 96,96,240,6,6,6,6,255,0,248,108,244,100,108,248,7, - 9,9,6,255,0,52,72,0,238,100,116,124,108,236,5,9, - 9,6,0,0,64,32,0,112,216,216,216,216,112,5,9,9, - 6,0,0,32,64,0,112,216,216,216,216,112,5,9,9,6, - 0,0,32,80,0,112,216,216,216,216,112,5,9,9,6,0, - 0,104,144,0,112,216,216,216,216,112,5,8,8,6,0,0, - 80,0,112,216,216,216,216,112,5,5,5,6,0,1,136,80, - 32,80,136,7,6,6,6,255,0,58,108,124,108,108,184,7, - 9,9,6,255,0,32,16,0,238,108,108,108,108,56,7,9, - 9,6,255,0,8,16,0,238,108,108,108,108,56,7,9,9, - 6,255,0,16,40,0,238,108,108,108,108,56,7,8,8,6, - 255,0,40,0,238,108,108,108,108,56,7,9,9,6,255,0, - 4,8,0,230,102,60,24,24,60,6,6,6,6,255,0,224, - 120,108,108,120,224,7,6,6,6,255,0,56,104,124,102,102, - 236,6,8,8,6,0,0,32,16,0,112,152,120,216,252,6, - 8,8,6,0,0,16,32,0,112,152,120,216,252,6,8,8, - 6,0,0,32,80,0,112,152,120,216,252,6,8,8,6,0, - 0,104,144,0,112,152,120,216,252,6,7,7,6,0,0,80, - 0,112,152,120,216,252,6,9,9,6,0,0,48,72,48,0, - 112,152,120,216,252,6,5,5,6,255,0,108,180,124,176,220, - 5,7,7,6,0,254,112,216,192,216,112,16,96,5,8,8, - 6,0,0,64,32,0,112,216,248,192,120,5,8,8,6,0, - 0,32,64,0,112,216,248,192,120,5,8,8,6,0,0,32, - 80,0,112,216,248,192,120,5,7,7,6,0,0,80,0,112, - 216,248,192,120,6,8,8,6,0,0,32,16,0,112,48,48, - 48,252,6,8,8,6,0,0,16,32,0,112,48,48,48,252, - 6,8,8,6,0,0,32,80,0,112,48,48,48,252,6,7, - 7,6,0,0,80,0,112,48,48,48,252,5,8,8,6,0, - 0,208,96,176,120,216,216,216,112,7,8,8,6,255,0,52, - 72,0,216,108,108,108,110,5,8,8,6,0,0,64,32,0, - 112,216,216,216,112,5,8,8,6,0,0,32,64,0,112,216, - 216,216,112,5,8,8,6,0,0,32,80,0,112,216,216,216, - 112,5,8,8,6,0,0,104,144,0,112,216,216,216,112,5, - 7,7,6,0,0,80,0,112,216,216,216,112,5,5,5,6, - 0,1,32,0,248,0,32,5,7,7,6,0,255,8,112,216, - 248,216,112,128,7,8,8,6,255,0,32,16,0,236,108,108, - 108,62,7,8,8,6,255,0,16,32,0,236,108,108,108,62, - 7,8,8,6,255,0,16,40,0,236,108,108,108,62,7,7, - 7,6,255,0,40,0,236,108,108,108,62,7,10,10,6,255, - 254,8,16,0,238,108,108,40,56,48,240,6,9,9,6,255, - 254,224,96,120,108,108,108,120,96,240,7,9,9,6,255,254, - 40,0,238,108,108,40,56,48,240}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08r[1145] U8G_FONT_SECTION("u8g_font_courB08r") = { - 0,12,16,253,252,6,1,146,3,13,32,127,254,8,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10[3355] U8G_FONT_SECTION("u8g_font_courB10") = { - 0,13,21,254,250,9,1,222,4,32,32,255,253,12,252,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,1,2,9,9,9,3,254,192,192,0,128,192, - 192,192,192,192,6,10,10,9,1,255,48,48,124,204,192,192, - 204,120,48,48,7,9,9,9,1,0,60,102,96,96,248,96, - 96,102,252,7,6,6,9,1,1,198,124,198,198,124,198,10, - 9,18,9,0,0,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,2,11,11,9,3,254,192,192,192, - 192,192,0,192,192,192,192,192,8,11,11,9,0,255,62,98, - 96,240,140,227,57,15,6,70,124,4,2,2,9,2,8,144, - 144,9,8,16,9,0,1,28,0,99,0,205,128,209,128,209, - 128,205,128,99,0,28,0,5,7,7,9,2,2,112,24,120, - 216,104,0,248,7,5,5,9,1,1,54,108,216,108,54,7, - 3,3,9,1,2,254,2,2,6,1,1,9,1,4,252,9, - 8,16,9,0,1,62,0,99,0,217,128,213,128,217,128,213, - 128,99,0,62,0,4,1,1,9,2,8,240,4,4,4,9, - 2,5,96,144,144,96,7,7,7,9,1,1,16,16,254,16, - 16,0,254,5,6,6,9,2,4,112,152,24,48,96,248,5, - 6,6,9,2,4,112,152,48,24,152,112,3,2,2,9,3, - 7,96,192,9,10,20,9,0,253,231,0,99,0,99,0,99, - 0,99,0,103,0,123,128,96,0,96,0,96,0,7,11,11, - 9,1,255,126,212,148,148,212,116,20,20,20,20,126,2,2, - 2,9,3,3,192,192,3,4,4,9,2,253,64,96,32,224, - 4,6,6,9,3,4,96,224,96,96,96,240,5,7,7,9, - 2,2,112,216,136,216,112,0,248,7,5,5,9,1,1,216, - 108,54,108,216,9,10,20,9,0,0,96,0,224,128,97,0, - 98,0,101,0,251,0,23,0,43,0,79,128,131,0,9,10, - 20,9,0,0,96,0,224,128,97,0,98,0,103,0,253,128, - 17,128,35,0,70,0,15,128,10,10,20,9,255,0,112,0, - 152,64,48,128,25,0,154,128,117,128,11,128,21,128,39,192, - 65,128,6,9,9,9,1,254,48,48,0,48,112,192,196,204, - 124,9,12,24,9,0,0,24,0,12,0,0,0,124,0,28, - 0,54,0,54,0,34,0,99,0,127,0,99,0,247,128,9, - 12,24,9,0,0,12,0,24,0,0,0,124,0,28,0,54, - 0,54,0,34,0,99,0,127,0,99,0,247,128,9,12,24, - 9,0,0,28,0,54,0,0,0,124,0,28,0,54,0,54, - 0,34,0,99,0,127,0,99,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,124,0,28,0,54,0,54,0,34, - 0,99,0,127,0,99,0,247,128,9,12,24,9,0,0,36, - 0,36,0,0,0,124,0,28,0,54,0,54,0,34,0,99, - 0,127,0,99,0,247,128,9,12,24,9,0,0,24,0,36, - 0,24,0,126,0,28,0,54,0,54,0,34,0,99,0,127, - 0,99,0,247,128,9,9,18,9,0,0,63,128,28,128,28, - 0,61,0,47,0,109,0,124,0,76,128,223,128,7,13,13, - 9,1,252,58,110,198,192,192,192,192,102,60,16,24,8,56, - 8,12,12,9,0,0,24,12,0,255,99,99,104,120,104,99, - 99,255,8,12,12,9,0,0,12,24,0,255,99,99,104,120, - 104,99,99,255,8,12,12,9,0,0,28,54,0,255,99,99, - 104,120,104,99,99,255,8,12,12,9,0,0,36,36,0,255, - 99,99,104,120,104,99,99,255,6,12,12,9,1,0,96,48, - 0,252,48,48,48,48,48,48,48,252,6,12,12,9,1,0, - 24,48,0,252,48,48,48,48,48,48,48,252,6,12,12,9, - 1,0,56,108,0,252,48,48,48,48,48,48,48,252,6,12, - 12,9,1,0,72,72,0,252,48,48,48,48,48,48,48,252, - 8,9,9,9,0,0,252,102,99,99,243,99,99,102,252,9, - 12,24,9,0,0,26,0,44,0,0,0,231,128,99,0,115, - 0,115,0,107,0,107,0,103,0,103,0,243,0,8,12,12, - 9,0,0,48,24,0,60,102,195,195,195,195,195,102,60,8, - 12,12,9,0,0,12,24,0,60,102,195,195,195,195,195,102, - 60,8,12,12,9,0,0,56,108,0,60,102,195,195,195,195, - 195,102,60,8,12,12,9,0,0,52,88,0,60,102,195,195, - 195,195,195,102,60,8,12,12,9,0,0,36,36,0,60,102, - 195,195,195,195,195,102,60,6,7,7,9,1,1,132,204,120, - 48,120,204,132,8,10,10,9,0,0,1,62,102,203,203,211, - 211,227,102,188,9,12,24,9,0,0,24,0,12,0,0,0, - 247,128,99,0,99,0,99,0,99,0,99,0,99,0,99,0, - 62,0,9,12,24,9,0,0,12,0,24,0,0,0,247,128, - 99,0,99,0,99,0,99,0,99,0,99,0,99,0,62,0, - 9,12,24,9,0,0,28,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,99,0,99,0,99,0,62,0,9,12, - 24,9,0,0,18,0,18,0,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,10,12,24,9, - 255,0,6,0,12,0,0,0,243,192,97,128,51,0,51,0, - 30,0,12,0,12,0,12,0,63,0,8,9,9,9,0,0, - 240,96,126,99,99,102,124,96,240,8,9,9,9,0,0,60, - 102,102,108,102,99,99,107,238,8,10,10,9,0,0,48,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,12,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,56,108, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,52,88, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,36,36, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,24,36, - 24,124,6,6,126,198,206,119,9,7,14,9,0,0,119,0, - 29,128,8,128,127,128,200,0,205,128,119,0,8,11,11,9, - 0,252,61,103,195,192,192,99,62,16,24,8,56,8,10,10, - 9,0,0,48,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,12,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,28,54,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,36,36,0,60,102,195,255,192,103,62,6,10,10, - 9,1,0,96,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,24,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,112,216,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,72,72,0,240,48,48,48,48,48,252,8,10,10, - 9,0,0,236,56,204,62,102,195,195,195,102,60,9,10,20, - 9,0,0,26,0,44,0,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,247,128,8,10,10,9,0,0,48,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,12,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,28,54,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,52,88,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,36,36,0, - 60,102,195,195,195,102,60,8,7,7,9,0,1,24,24,0, - 255,0,24,24,8,7,7,9,0,0,61,102,207,219,243,102, - 188,9,10,20,9,0,0,24,0,12,0,0,0,231,0,99, - 0,99,0,99,0,99,0,103,0,59,128,9,10,20,9,0, - 0,12,0,24,0,0,0,231,0,99,0,99,0,99,0,99, - 0,103,0,59,128,9,10,20,9,0,0,28,0,54,0,0, - 0,231,0,99,0,99,0,99,0,99,0,103,0,59,128,9, - 10,20,9,0,0,36,0,36,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,13,26,9,0,253,6, - 0,12,0,0,0,227,128,99,0,99,0,54,0,54,0,28, - 0,28,0,24,0,24,0,124,0,8,12,12,9,0,253,224, - 96,110,115,99,99,99,115,110,96,96,240,9,13,26,9,0, - 253,18,0,18,0,0,0,227,128,99,0,99,0,54,0,54, - 0,28,0,28,0,24,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 7 dx= 9 dy= 0 ascent=11 len=20 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10r[1551] U8G_FONT_SECTION("u8g_font_courB10r") = { - 0,13,21,254,250,9,1,222,4,32,32,127,253,11,253,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=11 h=14 x= 4 y= 9 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12[3959] U8G_FONT_SECTION("u8g_font_courB12") = { - 0,16,24,253,250,10,2,51,4,246,32,255,253,14,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,1,2,10,10,10,4,253,192,192,0, - 192,192,192,192,192,192,192,7,10,10,10,1,0,24,24,62, - 102,192,192,102,60,24,24,8,10,10,10,1,0,30,51,48, - 48,252,252,48,51,227,254,8,7,7,10,1,1,195,126,102, - 66,102,126,195,10,10,20,10,0,0,243,192,97,128,51,0, - 51,0,30,0,63,0,12,0,63,0,12,0,63,0,2,13, - 13,10,4,254,192,192,192,192,192,192,0,192,192,192,192,192, - 192,10,12,24,10,0,255,31,128,49,128,49,128,120,0,206, - 0,195,128,112,192,28,192,7,128,99,0,99,0,126,0,5, - 2,2,10,3,8,216,216,10,10,20,10,0,0,12,0,63, - 0,97,128,78,128,216,192,216,192,78,128,97,128,63,0,12, - 0,6,7,7,10,2,3,120,12,124,204,124,0,252,9,7, - 14,10,0,0,25,128,51,0,102,0,204,0,102,0,51,0, - 25,128,8,5,5,10,1,2,255,255,3,3,3,7,2,2, - 10,1,4,254,254,10,10,20,10,0,0,12,0,63,0,97, - 128,92,128,214,192,220,192,82,128,97,128,63,0,12,0,5, - 1,1,10,2,9,248,5,5,5,10,2,6,112,216,136,216, - 112,8,9,9,10,1,0,24,24,255,255,24,24,0,255,255, - 5,6,6,10,2,5,112,216,48,96,200,248,5,6,6,10, - 2,5,112,216,48,24,216,112,4,3,3,10,3,8,48,96, - 192,9,10,20,10,0,253,231,0,99,0,99,0,99,0,99, - 0,103,0,123,128,96,0,96,0,96,0,9,12,24,10,0, - 255,63,128,91,0,219,0,219,0,219,0,91,0,59,0,27, - 0,27,0,27,0,27,0,63,128,3,2,2,10,3,4,224, - 224,4,4,4,10,3,253,32,96,48,240,6,6,6,10,2, - 5,48,240,48,48,48,252,6,7,7,10,2,3,120,204,204, - 204,120,0,252,9,7,14,10,0,0,204,0,102,0,51,0, - 25,128,51,0,102,0,204,0,10,11,22,10,0,0,32,0, - 225,0,99,0,98,0,102,0,252,128,25,128,19,128,54,128, - 111,192,65,128,10,11,22,10,0,0,32,0,224,128,97,128, - 99,0,102,0,255,128,10,192,25,128,51,0,102,64,71,192, - 11,11,22,10,0,0,112,0,216,128,49,128,27,0,218,0, - 118,64,12,192,9,192,27,64,55,224,32,192,7,10,10,10, - 1,253,24,24,0,24,24,112,192,198,198,124,10,14,28,10, - 0,0,48,0,24,0,12,0,0,0,60,0,12,0,30,0, - 18,0,51,0,51,0,63,0,97,128,97,128,243,192,10,14, - 28,10,0,0,6,0,12,0,24,0,0,0,60,0,12,0, - 30,0,18,0,51,0,51,0,63,0,97,128,97,128,243,192, - 10,14,28,10,0,0,12,0,30,0,51,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,59,0,110,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,54,0,54,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,14,28,10,0,0,28,0,54,0,54,0,28,0, - 60,0,12,0,30,0,18,0,51,0,51,0,63,0,97,128, - 97,128,243,192,10,10,20,10,0,0,127,192,60,192,44,0, - 45,0,111,0,77,0,124,0,76,192,204,192,255,192,9,13, - 26,10,0,253,30,128,115,128,97,128,192,0,192,0,192,0, - 192,0,97,128,115,128,30,0,24,0,12,0,60,0,8,14, - 14,10,1,0,48,24,12,0,255,99,96,100,124,100,96,99, - 99,255,8,14,14,10,1,0,6,12,24,0,255,99,96,100, - 124,100,96,99,99,255,8,14,14,10,1,0,24,60,102,0, - 255,99,96,100,124,100,96,99,99,255,8,13,13,10,1,0, - 54,54,0,255,99,96,100,124,100,96,99,99,255,8,14,14, - 10,1,0,48,24,12,0,255,24,24,24,24,24,24,24,24, - 255,8,14,14,10,1,0,12,24,48,0,255,24,24,24,24, - 24,24,24,24,255,8,14,14,10,1,0,24,60,102,0,255, - 24,24,24,24,24,24,24,24,255,8,13,13,10,1,0,54, - 54,0,255,24,24,24,24,24,24,24,24,255,9,10,20,10, - 0,0,252,0,103,0,99,0,97,128,249,128,97,128,97,128, - 99,0,103,0,252,0,10,13,26,10,0,0,59,0,110,0, - 0,0,247,192,113,128,121,128,105,128,109,128,109,128,101,128, - 103,128,99,128,251,128,9,14,28,10,0,0,48,0,24,0, - 12,0,0,0,62,0,99,0,99,0,193,128,193,128,193,128, - 193,128,99,0,99,0,62,0,9,14,28,10,0,0,6,0, - 12,0,24,0,0,0,62,0,99,0,99,0,193,128,193,128, - 193,128,193,128,99,0,99,0,62,0,9,14,28,10,0,0, - 12,0,30,0,51,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,59,0,110,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,54,0,54,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,8,7,7,10, - 1,1,227,118,60,24,60,110,199,9,12,24,10,0,255,0, - 128,63,128,99,0,103,0,197,128,205,128,217,128,209,128,115, - 0,99,0,254,0,128,0,10,14,28,10,0,0,48,0,24, - 0,12,0,0,0,243,192,97,128,97,128,97,128,97,128,97, - 128,97,128,97,128,51,0,30,0,10,14,28,10,0,0,3, - 0,6,0,12,0,0,0,243,192,97,128,97,128,97,128,97, - 128,97,128,97,128,97,128,51,0,30,0,10,14,28,10,0, - 0,12,0,30,0,51,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,13,26, - 10,0,0,27,0,27,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,14,28, - 10,0,0,3,0,6,0,12,0,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,9, - 10,20,10,0,0,240,0,96,0,126,0,99,0,97,128,99, - 0,126,0,96,0,96,0,240,0,8,11,11,10,0,0,60, - 102,102,100,108,102,99,99,99,122,236,8,11,11,10,1,0, - 48,24,12,0,60,102,6,126,198,198,123,8,11,11,10,1, - 0,6,12,24,0,60,102,6,126,198,198,123,8,11,11,10, - 1,0,24,60,102,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,59,110,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,54,54,0,60,102,6,126,198,198,123,8,12,12, - 10,1,0,28,54,54,28,0,60,102,6,126,198,198,123,10, - 7,14,10,255,0,59,128,108,192,12,192,127,192,204,0,204, - 192,119,128,8,10,10,10,1,253,61,103,195,192,192,227,126, - 24,12,60,8,11,11,10,1,0,48,24,12,0,60,102,195, - 255,192,99,62,8,11,11,10,1,0,6,12,24,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,24,60,102,0,60, - 102,195,255,192,99,62,8,10,10,10,1,0,54,54,0,60, - 102,195,255,192,99,62,8,11,11,10,1,0,96,48,24,0, - 120,24,24,24,24,24,255,8,11,11,10,1,0,6,12,24, - 0,120,24,24,24,24,24,255,8,11,11,10,1,0,24,60, - 102,0,120,24,24,24,24,24,255,8,10,10,10,1,0,108, - 108,0,120,24,24,24,24,24,255,8,12,12,10,1,0,224, - 118,28,60,198,62,103,227,195,195,102,60,9,10,20,10,0, - 0,59,0,110,0,0,0,238,0,115,0,99,0,99,0,99, - 0,99,0,247,128,8,11,11,10,1,0,48,24,12,0,60, - 102,195,195,195,102,60,8,11,11,10,1,0,12,24,48,0, - 60,102,195,195,195,102,60,8,11,11,10,1,0,24,60,102, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,59,110, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,108,108, - 0,60,102,195,195,195,102,60,8,8,8,10,1,1,24,24, - 0,255,255,0,24,24,8,9,9,10,1,255,3,63,102,207, - 219,243,102,252,192,9,11,22,10,0,0,48,0,24,0,12, - 0,0,0,231,0,99,0,99,0,99,0,99,0,103,0,59, - 128,9,11,22,10,0,0,12,0,24,0,48,0,0,0,231, - 0,99,0,99,0,99,0,99,0,103,0,59,128,9,11,22, - 10,0,0,24,0,60,0,102,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,10,20,10,0,0,54, - 0,54,0,0,0,231,0,99,0,99,0,99,0,99,0,103, - 0,59,128,10,14,28,10,0,253,6,0,12,0,24,0,0, - 0,243,192,97,128,51,0,51,0,30,0,30,0,12,0,24, - 0,24,0,124,0,9,14,28,10,0,253,224,0,96,0,96, - 0,96,0,110,0,115,0,97,128,97,128,97,128,115,0,110, - 0,96,0,96,0,248,0,10,13,26,10,0,253,54,0,54, - 0,0,0,243,192,97,128,51,0,51,0,30,0,30,0,12, - 0,12,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12r[1857] U8G_FONT_SECTION("u8g_font_courB12r") = { - 0,16,24,253,250,10,2,51,4,246,32,127,253,12,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=17 x= 4 y= 9 dx=11 dy= 0 ascent=15 len=34 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14[4784] U8G_FONT_SECTION("u8g_font_courB14") = { - 0,17,26,252,249,11,2,101,5,155,32,255,252,15,251,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,11,0,1,3,12,12, - 11,4,252,192,192,0,192,192,224,224,224,224,224,224,224,8, - 13,13,11,1,0,24,24,24,63,127,227,192,192,227,127,62, - 24,24,10,11,22,11,0,0,62,0,127,0,99,0,96,0, - 48,0,252,0,252,0,48,0,96,192,255,192,255,128,8,9, - 9,11,1,1,195,255,126,195,195,195,126,255,195,10,11,22, - 11,0,0,243,192,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,63,0,2,16,16,11,4,253,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,8, - 14,14,11,1,254,63,115,99,96,248,222,199,227,123,31,6, - 198,206,252,6,2,2,11,2,9,204,204,11,12,24,11,0, - 0,14,0,63,128,113,192,110,192,219,96,216,96,216,96,219, - 96,110,192,113,192,63,128,14,0,6,8,8,11,2,3,112, - 24,120,216,216,108,0,252,9,7,14,11,0,1,25,128,51, - 0,102,0,204,0,102,0,51,0,25,128,9,4,8,11,1, - 4,255,128,255,128,1,128,1,128,8,2,2,11,1,4,255, - 255,11,12,24,11,0,0,14,0,63,128,113,192,126,192,219, - 96,219,96,222,96,223,96,123,224,112,192,63,128,14,0,5, - 2,2,11,2,9,248,248,5,5,5,11,2,6,112,136,136, - 136,112,10,10,20,11,0,0,12,0,12,0,12,0,255,192, - 255,192,12,0,12,0,0,0,255,192,255,192,6,7,7,11, - 2,5,120,204,12,24,48,100,252,6,7,7,11,2,5,120, - 204,12,56,12,204,120,4,3,3,11,4,9,48,96,192,10, - 13,26,11,0,252,231,128,231,128,97,128,97,128,97,128,97, - 128,99,128,127,192,125,192,96,0,96,0,96,0,96,0,8, - 14,14,11,1,254,63,106,202,202,202,106,58,10,10,10,10, - 10,10,59,2,3,3,11,4,3,192,192,192,4,5,5,11, - 3,252,64,96,48,240,224,6,7,7,11,2,5,48,240,48, - 48,48,48,252,6,8,8,11,2,3,120,204,132,132,204,120, - 0,252,9,7,14,11,1,1,204,0,102,0,51,0,25,128, - 51,0,102,0,204,0,11,12,24,11,0,0,48,0,240,32, - 48,96,48,192,49,128,51,64,254,192,13,192,26,192,52,192, - 103,224,64,192,11,12,24,11,0,0,48,0,240,32,48,96, - 48,192,49,128,51,192,255,96,12,96,24,192,49,128,99,32, - 71,224,11,12,24,11,0,0,120,0,204,32,12,96,56,192, - 13,128,207,64,126,192,13,192,26,192,52,192,103,224,64,192, - 7,12,12,11,2,252,24,24,0,24,24,24,120,224,192,198, - 254,124,12,15,30,11,255,0,24,0,12,0,6,0,0,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,12,15,30,11,255,0,3,0,6,0, - 12,0,0,0,62,0,63,0,15,0,15,0,25,128,25,128, - 63,192,63,192,48,192,249,240,249,240,12,15,30,11,255,0, - 6,0,15,0,25,128,0,0,62,0,63,0,15,0,15,0, - 25,128,25,128,63,192,63,192,48,192,249,240,249,240,12,14, - 28,11,255,0,29,128,55,0,0,0,62,0,63,0,15,0, - 15,0,25,128,25,128,63,192,63,192,48,192,249,240,249,240, - 12,14,28,11,255,0,25,128,25,128,0,0,62,0,63,0, - 15,0,15,0,25,128,25,128,63,192,63,192,48,192,249,240, - 249,240,12,15,30,11,255,0,6,0,9,0,9,0,6,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,11,11,22,11,0,0,63,224,63,224, - 30,96,54,0,55,192,39,192,126,0,126,0,102,96,239,224, - 239,224,10,16,32,11,0,251,30,192,127,192,97,192,192,192, - 192,0,192,0,192,0,192,0,96,192,127,192,63,0,8,0, - 12,0,2,0,30,0,28,0,10,15,30,11,0,0,24,0, - 12,0,6,0,0,0,255,192,255,192,48,192,54,192,62,0, - 62,0,54,0,48,192,48,192,255,192,255,192,10,15,30,11, - 0,0,3,0,6,0,12,0,0,0,255,192,255,192,48,192, - 54,192,62,0,62,0,54,0,48,192,48,192,255,192,255,192, - 10,15,30,11,0,0,12,0,30,0,51,0,0,0,255,192, - 255,192,48,192,54,192,62,0,62,0,54,0,48,192,48,192, - 255,192,255,192,10,14,28,11,0,0,51,0,51,0,0,0, - 255,192,255,192,48,192,54,192,62,0,62,0,54,0,48,192, - 48,192,255,192,255,192,8,15,15,11,1,0,96,48,24,0, - 255,255,24,24,24,24,24,24,24,255,255,8,15,15,11,1, - 0,6,12,24,0,255,255,24,24,24,24,24,24,24,255,255, - 8,15,15,11,1,0,24,60,102,0,255,255,24,24,24,24, - 24,24,24,255,255,8,14,14,11,1,0,102,102,0,255,255, - 24,24,24,24,24,24,24,255,255,10,11,22,11,0,0,254, - 0,255,128,97,128,96,192,248,192,248,192,96,192,96,192,97, - 128,255,128,254,0,10,14,28,11,0,0,59,0,110,0,0, - 0,231,192,247,192,113,128,121,128,105,128,109,128,101,128,103, - 128,99,128,251,128,249,128,10,15,30,11,0,0,24,0,12, - 0,6,0,0,0,30,0,127,128,97,128,192,192,192,192,192, - 192,192,192,192,192,97,128,127,128,30,0,10,15,30,11,0, - 0,3,0,6,0,12,0,0,0,30,0,127,128,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,127,128,30,0,10, - 15,30,11,0,0,12,0,30,0,51,0,0,0,30,0,127, - 128,97,128,192,192,192,192,192,192,192,192,192,192,97,128,127, - 128,30,0,10,14,28,11,0,0,59,0,110,0,0,0,30, - 0,127,128,97,128,192,192,192,192,192,192,192,192,192,192,97, - 128,127,128,30,0,10,14,28,11,0,0,51,0,51,0,0, - 0,30,0,127,128,97,128,192,192,192,192,192,192,192,192,192, - 192,97,128,127,128,30,0,10,10,20,11,0,0,64,128,225, - 192,115,128,55,0,30,0,30,0,59,0,115,128,225,192,64, - 128,12,13,26,11,255,255,0,48,15,96,63,192,49,192,99, - 96,102,96,102,96,108,96,120,96,48,192,63,192,111,0,192, - 0,10,15,30,11,0,0,48,0,24,0,12,0,0,0,251, - 192,251,192,97,128,97,128,97,128,97,128,97,128,97,128,115, - 128,63,0,30,0,10,15,30,11,0,0,3,0,6,0,12, - 0,0,0,251,192,251,192,97,128,97,128,97,128,97,128,97, - 128,97,128,115,128,63,0,30,0,10,15,30,11,0,0,12, - 0,30,0,51,0,0,0,251,192,251,192,97,128,97,128,97, - 128,97,128,97,128,97,128,115,128,63,0,30,0,10,14,28, - 11,0,0,51,0,51,0,0,0,251,192,251,192,97,128,97, - 128,97,128,97,128,97,128,97,128,115,128,63,0,30,0,10, - 15,30,11,0,0,3,0,6,0,12,0,0,0,243,192,243, - 192,97,128,51,0,63,0,30,0,12,0,12,0,12,0,63, - 0,63,0,10,11,22,11,0,0,240,0,224,0,127,0,127, - 128,97,192,96,192,97,192,127,128,127,0,224,0,240,0,9, - 12,24,11,1,0,60,0,126,0,99,0,99,0,103,0,110, - 0,103,0,97,128,97,128,105,128,239,128,231,0,10,13,26, - 11,0,0,24,0,12,0,6,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,3,0,6,0,12,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,12,0,30,0,51,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,12,24, - 11,0,0,59,0,110,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,12,24,11,0, - 0,51,0,51,0,0,0,63,0,127,128,97,128,1,128,127, - 128,255,128,193,128,255,192,125,192,10,14,28,11,0,0,12, - 0,18,0,18,0,12,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,9,18,11,0, - 0,123,128,255,192,204,192,12,192,127,192,255,192,204,0,255, - 192,123,128,10,14,28,11,0,251,61,128,127,128,227,128,193, - 128,192,0,192,0,225,192,127,192,63,0,8,0,12,0,6, - 0,30,0,28,0,10,13,26,11,0,0,24,0,12,0,6, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,3,0,6,0,12, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,12,0,30,0,51, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,12,24,11,0,0,51,0,51,0,0, - 0,30,0,127,128,225,192,192,192,255,192,255,192,224,0,127, - 192,31,192,8,13,13,11,1,0,48,24,12,0,248,248,24, - 24,24,24,24,255,255,8,13,13,11,1,0,12,24,48,0, - 248,248,24,24,24,24,24,255,255,8,13,13,11,1,0,24, - 60,102,0,248,248,24,24,24,24,24,255,255,8,12,12,11, - 1,0,204,204,0,248,248,24,24,24,24,24,255,255,10,13, - 26,11,0,0,225,128,251,128,62,0,119,0,195,128,63,128, - 97,192,192,192,192,192,192,192,225,192,127,128,30,0,10,12, - 24,11,0,0,59,0,110,0,0,0,239,0,255,128,113,128, - 97,128,97,128,97,128,97,128,243,192,243,192,10,13,26,11, - 0,0,24,0,12,0,6,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,3,0,6,0,12,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,12,0,30,0,51,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,12,24,11, - 0,0,59,0,110,0,0,0,30,0,127,128,225,192,192,192, - 192,192,192,192,225,192,127,128,30,0,10,12,24,11,0,0, - 51,0,51,0,0,0,30,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,30,0,10,10,20,11,0,0,12,0, - 12,0,0,0,0,0,255,192,255,192,0,0,0,0,12,0, - 12,0,12,11,22,11,255,255,0,48,15,96,63,192,113,224, - 99,96,102,96,108,96,120,224,63,192,111,0,192,0,10,13, - 26,11,0,0,24,0,12,0,6,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,6,0,12,0,24,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,12,0,30,0,51,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,12, - 24,11,0,0,51,0,51,0,0,0,231,128,231,128,97,128, - 97,128,97,128,97,128,99,128,127,192,61,192,10,17,34,11, - 0,252,3,0,6,0,12,0,0,0,243,192,243,192,97,128, - 97,128,51,0,51,0,30,0,30,0,12,0,24,0,56,0, - 252,0,252,0,10,16,32,11,0,252,224,0,224,0,96,0, - 111,0,127,128,113,192,96,192,96,192,96,192,113,192,127,128, - 111,0,96,0,96,0,248,0,248,0,10,16,32,11,0,252, - 51,0,51,0,0,0,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0 - }; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=16 x= 4 y= 9 dx=11 dy= 0 ascent=13 len=32 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14r[2167] U8G_FONT_SECTION("u8g_font_courB14r") = { - 0,17,26,252,249,11,2,101,5,155,32,127,252,13,252,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=13 dx=15 dy= 0 ascent=21 len=42 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18[6429] U8G_FONT_SECTION("u8g_font_courB18") = { - 0,22,35,252,247,15,3,223,8,17,32,255,251,21,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,15,0,1,4, - 16,16,15,4,251,96,96,96,0,96,96,96,96,96,240,240, - 240,240,240,240,96,9,16,32,15,2,0,12,0,12,0,12, - 0,61,128,127,128,227,128,193,128,192,0,192,0,192,0,225, - 128,127,128,63,0,12,0,12,0,12,0,12,15,30,15,1, - 0,15,128,31,192,56,192,48,0,48,0,48,0,48,0,255, - 0,255,0,24,0,24,0,56,0,112,48,255,240,255,224,10, - 11,22,15,2,2,192,192,255,192,127,128,225,192,192,192,192, - 192,192,192,225,192,127,128,255,192,192,192,12,15,30,15,1, - 0,249,240,249,240,112,224,48,192,57,192,25,128,15,0,15, - 0,63,192,6,0,63,192,6,0,6,0,63,192,63,192,2, - 18,18,15,6,254,192,192,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,192,192,12,18,36,15,1,254,15,224,31, - 224,56,96,48,96,56,0,126,0,207,128,195,224,240,240,124, - 48,31,48,7,240,1,224,0,192,96,192,97,192,127,128,127, - 0,7,3,3,15,3,12,198,198,198,14,14,28,15,0,1, - 7,128,31,224,56,112,103,152,111,216,220,204,216,12,216,12, - 220,204,111,216,103,152,56,112,31,224,7,128,8,11,11,15, - 3,4,60,102,6,126,198,198,207,123,0,255,255,13,9,18, - 15,1,1,14,56,28,112,56,224,113,192,227,128,113,192,56, - 224,28,112,14,56,12,6,12,15,1,4,255,240,255,240,0, - 48,0,48,0,48,0,48,11,2,4,15,2,6,255,224,255, - 224,14,14,28,15,0,1,7,128,31,224,56,112,111,152,111, - 216,204,204,204,204,207,140,205,140,108,216,108,216,56,112,31, - 224,7,128,7,2,2,15,3,13,254,254,8,7,7,15,3, - 9,60,102,195,195,195,102,60,12,14,28,15,1,0,6,0, - 6,0,6,0,6,0,255,240,255,240,6,0,6,0,6,0, - 6,0,0,0,0,0,255,240,255,240,7,9,9,15,4,7, - 124,198,198,12,24,48,96,198,254,7,9,9,15,4,7,124, - 198,198,12,60,6,198,198,124,6,4,4,15,4,12,28,56, - 112,224,14,16,32,15,0,251,240,240,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,63,252,63,188,48,0, - 48,0,48,0,48,0,48,0,12,18,36,15,1,254,31,240, - 127,240,230,192,230,192,230,192,230,192,230,192,126,192,30,192, - 6,192,6,192,6,192,6,192,6,192,6,192,6,192,62,240, - 62,240,3,3,3,15,5,6,224,224,224,5,6,6,15,4, - 251,48,48,120,24,248,112,8,9,9,15,3,7,24,248,24, - 24,24,24,24,24,255,8,11,11,15,3,4,60,126,195,195, - 195,195,126,60,0,255,255,13,9,18,15,1,1,227,128,113, - 192,56,224,28,112,14,56,28,112,56,224,113,192,227,128,16, - 16,32,15,255,0,24,0,248,1,24,3,24,6,24,12,24, - 24,24,48,24,100,255,204,1,156,3,44,6,76,12,140,24, - 254,48,12,32,30,16,16,32,15,255,0,24,0,248,1,24, - 3,24,6,24,12,24,24,24,48,24,126,255,243,1,163,3, - 6,6,12,12,24,24,48,48,99,32,127,15,16,32,15,0, - 0,124,0,198,2,198,6,12,12,60,24,6,48,198,96,198, - 200,125,152,3,56,6,88,12,152,25,24,49,252,96,24,64, - 60,9,15,30,15,2,252,12,0,12,0,12,0,0,0,12, - 0,12,0,28,0,120,0,224,0,192,0,193,128,193,128,225, - 128,127,128,63,0,14,20,40,15,0,0,56,0,28,0,14, - 0,7,0,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,14,20,40,15,0,0,0,224,1,192,3,128,7, - 0,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,21,42,15,0,0,6,0,15,0,31,128,57,192,112, - 224,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,19,38,15,0,0,14,96,31,192,51,128,0,0,63, - 0,63,0,7,128,7,128,12,192,12,192,28,224,24,96,24, - 96,63,240,63,240,112,56,96,24,252,252,252,252,14,19,38, - 15,0,0,24,192,24,192,24,192,0,0,63,0,63,0,7, - 128,7,128,12,192,12,192,28,224,24,96,24,96,63,240,63, - 240,112,56,96,24,252,252,252,252,14,20,40,15,0,0,7, - 0,13,128,8,128,13,128,7,0,63,0,63,0,7,128,7, - 128,12,192,12,192,28,224,24,96,24,96,63,240,63,240,112, - 56,96,24,252,252,252,252,15,15,30,15,0,0,15,254,15, - 254,3,134,7,134,7,128,13,152,9,248,25,248,31,152,63, - 128,49,128,97,134,97,134,247,254,247,254,12,20,40,15,1, - 251,15,176,63,240,112,112,96,48,224,48,192,0,192,0,192, - 0,192,0,192,0,224,0,96,16,112,48,63,224,15,192,6, - 0,15,0,3,0,31,0,14,0,13,20,40,15,1,0,56, - 0,28,0,14,0,7,0,0,0,255,240,255,240,48,48,48, - 48,49,176,49,128,63,128,63,128,49,128,49,128,48,24,48, - 24,48,24,255,248,255,248,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,19,38,15,1,0,24,192,24,192,24, - 192,0,0,255,240,255,240,48,48,48,48,49,176,49,128,63, - 128,63,128,49,128,49,128,48,24,48,24,48,24,255,248,255, - 248,10,20,40,15,2,0,112,0,56,0,28,0,14,0,0, - 0,255,192,255,192,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 20,40,15,2,0,3,128,7,0,14,0,28,0,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,21,42, - 15,2,0,12,0,30,0,63,0,115,128,225,192,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,19,38, - 15,2,0,51,0,51,0,51,0,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,14,15,30,15,0,0,255, - 192,255,240,48,56,48,24,48,28,48,12,254,12,254,12,48, - 12,48,12,48,12,48,24,48,56,255,240,255,224,13,19,38, - 15,1,0,14,96,31,192,51,128,0,0,240,248,240,248,120, - 48,120,48,108,48,108,48,102,48,102,48,99,48,99,48,97, - 176,97,176,96,240,248,240,248,112,13,20,40,15,1,0,28, - 0,14,0,7,0,3,128,0,0,15,128,63,224,112,112,96, - 48,224,56,192,24,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,19,38,15,1,0,14,96,31,192,51, - 128,0,0,15,128,63,224,112,112,96,48,224,56,192,24,192, - 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, - 128,13,19,38,15,1,0,24,192,24,192,24,192,0,0,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,192,24,224,56,96,48,112,112,63,224,15,128,12,12,24, - 15,1,1,64,32,224,112,112,224,57,192,31,128,15,0,15, - 0,31,128,57,192,112,224,224,112,64,32,13,18,36,15,1, - 255,0,24,0,48,15,224,63,224,112,112,96,240,225,184,193, - 24,195,24,198,24,196,24,204,24,232,56,120,48,112,112,63, - 224,111,128,192,0,13,20,40,15,1,0,56,0,28,0,14, - 0,7,0,0,0,248,248,248,248,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,48,96,63, - 224,31,192,13,20,40,15,1,0,0,224,1,192,3,128,7, - 0,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,21,42,15,1,0,3,0,7,128,15,192,28,224,56, - 112,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,19,38,15,1,0,24,192,24,192,24,192,0,0,248, - 248,248,248,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,48,96,63,224,31,192,14,20,40, - 15,0,0,0,224,1,192,3,128,7,0,0,0,252,252,252, - 252,112,56,56,112,24,96,12,192,15,192,7,128,3,0,3, - 0,3,0,3,0,3,0,31,224,31,224,13,15,30,15,1, - 0,252,0,252,0,48,0,63,192,63,240,48,56,48,24,48, - 24,48,24,48,56,63,240,63,192,48,0,252,0,252,0,12, - 16,32,15,1,0,15,0,31,128,57,192,48,192,48,192,49, - 192,55,128,55,192,48,224,48,112,48,48,48,48,48,48,51, - 112,251,224,249,192,12,16,32,15,1,0,112,0,56,0,28, - 0,14,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,16,32,15,1, - 0,1,192,3,128,7,0,14,0,0,0,63,0,127,128,97, - 192,0,192,31,192,127,192,224,192,192,192,193,192,255,240,126, - 240,12,16,32,15,1,0,14,0,31,0,59,128,113,192,0, - 0,63,0,127,128,97,192,0,192,31,192,127,192,224,192,192, - 192,193,192,255,240,126,240,12,15,30,15,1,0,28,192,63, - 128,103,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,15,30,15,1, - 0,49,128,49,128,49,128,0,0,63,0,127,128,97,192,0, - 192,31,192,127,192,224,192,192,192,193,192,255,240,126,240,12, - 16,32,15,1,0,14,0,27,0,17,0,27,0,14,0,63, - 0,127,128,97,192,0,192,31,192,127,192,224,192,192,192,193, - 192,255,240,126,240,14,11,22,15,0,0,60,240,127,248,103, - 156,3,12,31,12,127,252,227,252,195,0,199,140,255,252,124, - 240,11,16,32,15,1,251,31,96,127,224,112,224,224,96,192, - 96,192,0,192,0,224,0,112,96,127,224,31,192,6,0,15, - 0,3,0,31,0,14,0,12,16,32,15,1,0,56,0,28, - 0,14,0,7,0,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,12,16,32, - 15,1,0,1,192,3,128,7,0,14,0,0,0,31,128,127, - 224,112,224,224,112,192,48,255,240,255,240,224,0,112,112,127, - 240,31,192,12,16,32,15,1,0,7,0,15,128,29,192,56, - 224,0,0,31,128,127,224,112,224,224,112,192,48,255,240,255, - 240,224,0,112,112,127,240,31,192,12,15,30,15,1,0,49, - 128,49,128,49,128,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,10,16,32, - 15,2,0,224,0,112,0,56,0,28,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,10,16,32,15,2,0,3,128,7,0,14,0,28, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,10,16,32,15,2,0,28, - 0,62,0,119,0,227,128,0,0,124,0,124,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 15,30,15,2,0,99,0,99,0,99,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,17,34,15,0,0,240,0,252,112,15,240,31, - 128,125,192,112,224,15,240,63,240,56,120,112,56,96,24,96, - 24,96,24,112,56,56,112,63,240,15,192,14,15,30,15,0, - 0,14,96,31,192,51,128,0,0,243,192,247,224,60,112,56, - 48,48,48,48,48,48,48,48,48,48,48,252,252,252,252,12, - 16,32,15,1,0,56,0,28,0,14,0,7,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,16,32,15,1,0,1,192,3,128,7, - 0,14,0,0,0,31,128,127,224,112,224,224,112,192,48,192, - 48,192,48,224,112,112,224,127,224,31,128,12,16,32,15,1, - 0,14,0,31,0,59,128,113,192,0,0,31,128,127,224,112, - 224,224,112,192,48,192,48,192,48,224,112,112,224,127,224,31, - 128,12,15,30,15,1,0,28,192,63,128,103,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,15,30,15,1,0,49,128,49,128,49, - 128,0,0,31,128,127,224,112,224,224,112,192,48,192,48,192, - 48,224,112,112,224,127,224,31,128,13,12,24,15,0,1,7, - 0,7,0,7,0,0,0,0,0,255,248,255,248,0,0,0, - 0,7,0,7,0,7,0,14,14,28,15,0,254,0,12,15, - 216,63,240,56,112,112,216,97,152,99,24,102,24,108,56,56, - 112,63,240,63,192,96,0,192,0,14,16,32,15,0,0,56, - 0,28,0,14,0,7,0,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,14, - 16,32,15,0,0,1,192,3,128,7,0,14,0,0,0,240, - 240,240,240,48,48,48,48,48,48,48,48,48,48,48,48,56, - 112,31,252,15,188,14,16,32,15,0,0,7,0,15,128,29, - 192,56,224,0,0,240,240,240,240,48,48,48,48,48,48,48, - 48,48,48,48,48,56,112,31,252,15,188,14,15,30,15,0, - 0,24,192,24,192,24,192,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,12, - 21,42,15,1,251,0,224,1,192,3,128,7,0,0,0,249, - 240,249,240,96,96,112,224,48,192,57,192,25,128,27,128,15, - 0,15,0,6,0,14,0,12,0,28,0,254,0,254,0,13, - 21,42,15,1,251,240,0,240,0,48,0,48,0,48,0,55, - 192,63,240,60,112,56,56,48,24,48,24,48,24,56,56,60, - 112,63,240,55,192,48,0,48,0,48,0,254,0,254,0,12, - 20,40,15,1,251,49,128,49,128,49,128,0,0,249,240,249, - 240,96,96,112,224,48,192,57,192,25,128,27,128,15,0,15, - 0,6,0,14,0,12,0,28,0,254,0,254,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=11 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18r[3001] U8G_FONT_SECTION("u8g_font_courB18r") = { - 0,22,35,252,247,15,3,223,8,17,32,127,251,17,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=29 x= 8 y=17 dx=20 dy= 0 ascent=26 len=87 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24[10502] U8G_FONT_SECTION("u8g_font_courB24") = { - 0,30,44,249,245,20,5,57,12,115,32,255,249,26,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,21,21, - 20,7,249,112,248,248,112,0,0,112,112,112,112,112,112,112, - 112,248,248,248,248,248,112,32,13,23,46,20,3,255,7,0, - 7,0,7,0,7,0,7,0,15,216,63,248,127,248,120,120, - 240,56,224,56,224,0,224,0,224,0,240,56,120,120,127,248, - 63,240,15,192,7,0,7,0,7,0,7,0,16,20,40,20, - 1,0,3,224,7,240,15,248,30,56,28,56,28,0,28,0, - 28,0,14,0,255,224,255,224,255,224,14,0,14,0,14,0, - 14,2,30,7,127,255,127,255,127,254,15,15,30,20,2,2, - 224,14,247,222,255,254,127,252,60,120,120,60,112,28,112,28, - 112,28,120,60,60,120,127,252,255,254,247,222,224,14,17,20, - 60,20,1,0,254,63,128,254,63,128,254,63,128,56,14,0, - 28,28,0,30,60,0,14,56,0,15,120,0,7,112,0,3, - 224,0,31,252,0,31,252,0,1,192,0,31,252,0,31,252, - 0,1,192,0,1,192,0,31,252,0,31,252,0,31,252,0, - 3,26,26,20,8,251,224,224,224,224,224,224,224,224,224,224, - 224,224,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 16,24,48,20,2,253,1,254,7,254,15,254,28,6,24,6, - 24,6,60,0,127,0,231,128,193,224,96,240,112,60,60,14, - 15,6,7,131,1,231,0,254,0,60,48,24,48,24,48,56, - 63,240,63,224,63,128,11,4,8,20,4,17,96,192,241,224, - 241,224,96,192,21,20,60,20,255,0,0,252,0,3,255,0, - 15,255,192,30,3,224,56,96,224,113,246,112,115,254,112,231, - 158,56,231,14,56,206,14,56,206,0,56,206,0,56,206,6, - 56,231,15,120,231,254,112,115,252,240,120,241,224,62,7,192, - 31,255,0,7,252,0,11,14,28,20,4,6,31,0,127,128, - 97,128,1,128,63,128,127,128,225,128,193,128,195,128,255,224, - 125,224,0,0,255,224,255,224,15,14,28,20,1,0,3,6, - 7,14,14,28,28,56,56,112,112,224,225,192,225,192,112,224, - 56,112,28,56,14,28,7,14,3,6,16,8,16,20,2,5, - 255,255,255,255,255,255,0,7,0,7,0,7,0,7,0,7, - 15,3,6,20,2,8,255,254,255,254,255,254,21,20,60,20, - 255,0,1,248,0,7,254,0,31,255,128,60,3,192,59,241, - 224,115,252,224,115,254,240,227,158,112,227,142,120,227,142,56, - 227,254,56,227,252,56,227,184,56,243,188,120,115,158,112,123, - 143,240,60,3,224,31,255,192,15,255,0,3,252,0,10,2, - 4,20,5,17,255,192,255,192,9,9,18,20,5,11,28,0, - 119,0,193,128,128,128,128,128,128,128,193,128,119,0,28,0, - 17,18,54,20,1,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,8,14,14,20, - 5,7,60,126,231,195,3,7,14,12,24,56,112,225,255,255, - 9,14,28,20,5,7,62,0,127,0,99,0,3,0,7,0, - 30,0,31,0,3,128,1,128,1,128,193,128,227,0,127,0, - 60,0,8,6,6,20,6,15,6,15,62,120,224,64,18,22, - 66,20,1,249,252,63,0,252,63,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,15,0,30,31,0,31,255,192,31,247,192,29,231, - 192,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,15,24,48,20,2,253,15,254,63,254, - 123,24,243,24,227,24,227,24,227,24,227,24,227,24,115,24, - 63,24,31,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,31,62,31,62,31,62,5,4,4,20, - 7,8,112,248,248,112,5,7,7,20,6,250,48,48,48,24, - 248,248,112,8,13,13,20,6,7,56,248,216,24,24,24,24, - 24,24,24,24,255,255,11,14,28,20,4,6,14,0,63,128, - 113,192,224,224,192,96,192,96,192,96,224,224,113,192,63,128, - 14,0,0,0,255,224,255,224,15,14,28,20,2,0,193,128, - 225,192,112,224,56,112,28,56,14,28,7,14,7,14,14,28, - 28,56,56,112,112,224,225,192,193,128,19,20,60,20,0,0, - 56,0,0,248,0,0,216,0,128,24,1,192,24,1,128,24, - 3,0,24,6,0,24,12,0,24,28,192,24,25,192,255,51, - 192,255,114,192,0,102,192,0,206,192,1,140,192,3,159,224, - 7,31,224,2,0,192,0,1,224,0,1,224,19,20,60,20, - 0,0,56,0,0,248,0,0,216,2,0,24,7,0,24,14, - 0,24,12,0,24,24,0,24,56,0,24,112,0,24,103,128, - 254,239,192,255,220,224,1,152,96,3,0,224,7,1,192,14, - 7,128,4,14,0,0,28,96,0,31,224,0,31,224,19,21, - 63,20,0,0,62,0,0,127,0,0,99,0,0,3,1,0, - 3,3,128,30,7,0,31,6,0,3,142,0,1,156,0,195, - 152,192,227,49,192,127,115,192,28,98,192,0,198,192,1,206, - 192,3,140,192,7,31,224,2,31,224,0,0,192,0,3,224, - 0,3,224,13,21,42,20,3,250,7,0,15,128,15,128,7, - 0,0,0,0,0,0,0,7,0,7,0,7,0,31,0,63, - 0,124,0,240,0,224,0,224,56,224,56,240,56,127,248,63, - 248,31,224,21,26,78,20,255,0,3,0,0,7,128,0,1, - 224,0,0,240,0,0,48,0,0,0,0,31,240,0,31,248, - 0,31,248,0,1,252,0,1,220,0,1,220,0,3,222,0, - 3,142,0,3,142,0,7,7,0,7,7,0,7,7,0,15, - 255,128,15,255,128,31,255,192,28,1,192,28,1,192,255,143, - 248,255,143,248,255,143,248,21,26,78,20,255,0,0,3,0, - 0,15,0,0,30,0,0,120,0,0,96,0,0,0,0,31, - 240,0,31,248,0,31,248,0,1,252,0,1,220,0,1,220, - 0,3,222,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,21,26,78,20,255, - 0,0,64,0,0,224,0,3,184,0,7,28,0,14,14,0, - 0,0,0,31,240,0,31,248,0,31,248,0,1,252,0,1, - 220,0,1,220,0,3,222,0,3,142,0,3,142,0,7,7, - 0,7,7,0,7,7,0,15,255,128,15,255,128,31,255,192, - 28,1,192,28,1,192,255,143,248,255,143,248,255,143,248,21, - 25,75,20,255,0,3,134,0,7,230,0,6,118,0,6,28, - 0,0,0,0,31,240,0,31,248,0,31,248,0,1,252,0, - 1,220,0,1,220,0,3,222,0,3,142,0,3,142,0,7, - 7,0,7,7,0,7,7,0,15,255,128,15,255,128,31,255, - 192,28,1,192,28,1,192,255,143,248,255,143,248,255,143,248, - 21,25,75,20,255,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,31,240,0,31,248,0,31,248,0,1,252, - 0,1,220,0,1,220,0,3,222,0,3,142,0,3,142,0, - 7,7,0,7,7,0,7,7,0,15,255,128,15,255,128,31, - 255,192,28,1,192,28,1,192,255,143,248,255,143,248,255,143, - 248,21,26,78,20,255,0,0,240,0,1,152,0,1,8,0, - 1,152,0,0,240,0,0,0,0,31,240,0,31,248,0,31, - 248,0,1,252,0,1,220,0,1,220,0,3,222,0,3,142, - 0,3,142,0,7,7,0,7,7,0,7,7,0,15,255,128, - 15,255,128,31,255,192,28,1,192,28,1,192,255,143,248,255, - 143,248,255,143,248,20,20,60,20,0,0,31,255,224,31,255, - 224,31,255,224,7,112,224,7,112,224,6,112,224,14,112,224, - 14,115,0,14,115,0,14,127,0,28,127,0,28,115,0,31, - 243,0,31,243,0,56,112,112,56,112,112,56,112,112,255,255, - 240,255,255,240,255,255,240,17,26,78,20,1,250,3,227,0, - 15,255,0,31,255,0,62,31,0,120,15,0,112,7,0,240, - 7,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,240,0,0,112,1,0,120,3,128,62,15,128, - 63,255,0,15,254,0,3,248,0,0,192,0,0,192,0,0, - 224,0,4,112,0,7,240,0,3,224,0,17,26,78,20,1, - 0,3,0,0,7,128,0,1,224,0,0,240,0,0,48,0, - 0,0,0,255,255,0,255,255,0,255,255,0,28,7,0,28, - 7,0,28,7,0,28,119,0,28,112,0,31,240,0,31,240, - 0,31,240,0,28,112,0,28,112,0,28,3,128,28,3,128, - 28,3,128,28,3,128,255,255,128,255,255,128,255,255,128,17, - 26,78,20,1,0,0,12,0,0,60,0,0,120,0,1,224, - 0,1,128,0,0,0,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,26,78,20,1,0,0,128,0,1,192,0,7, - 112,0,14,56,0,28,28,0,0,0,0,255,255,0,255,255, - 0,255,255,0,28,7,0,28,7,0,28,7,0,28,119,0, - 28,112,0,31,240,0,31,240,0,31,240,0,28,112,0,28, - 112,0,28,3,128,28,3,128,28,3,128,28,3,128,255,255, - 128,255,255,128,255,255,128,17,25,75,20,1,0,6,12,0, - 15,30,0,15,30,0,6,12,0,0,0,0,255,255,0,255, - 255,0,255,255,0,28,7,0,28,7,0,28,7,0,28,119, - 0,28,112,0,31,240,0,31,240,0,31,240,0,28,112,0, - 28,112,0,28,3,128,28,3,128,28,3,128,28,3,128,255, - 255,128,255,255,128,255,255,128,13,26,52,20,3,0,24,0, - 60,0,15,0,7,128,1,128,0,0,255,248,255,248,255,248, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,26,52,20,3,0,0,48,0,240,1,224,7,128, - 6,0,0,0,255,248,255,248,255,248,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,13,26,52,20, - 3,0,2,0,7,0,29,192,56,224,112,112,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 255,248,255,248,255,248,13,25,50,20,3,0,48,96,120,240, - 120,240,48,96,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,17,20, - 60,20,2,0,255,224,0,255,248,0,255,252,0,56,62,0, - 56,15,0,56,7,0,56,7,0,56,3,128,255,131,128,255, - 131,128,255,131,128,56,3,128,56,3,128,56,3,128,56,7, - 0,56,7,0,56,30,0,255,254,0,255,252,0,255,240,0, - 20,25,75,20,255,0,3,134,0,7,230,0,6,118,0,6, - 28,0,0,0,0,252,31,240,254,31,240,255,31,240,31,1, - 192,31,129,192,31,129,192,29,193,192,29,225,192,28,225,192, - 28,241,192,28,121,192,28,57,192,28,61,192,28,29,192,28, - 15,192,28,15,192,28,7,192,127,199,192,127,195,192,127,193, - 192,17,26,78,20,1,0,6,0,0,15,0,0,3,192,0, - 1,224,0,0,96,0,0,0,0,7,240,0,15,252,0,31, - 252,0,60,30,0,120,15,0,112,7,0,112,7,0,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 112,7,0,120,7,0,56,14,0,62,62,0,31,252,0,15, - 248,0,3,224,0,17,26,78,20,1,0,0,24,0,0,120, - 0,0,240,0,3,192,0,3,0,0,0,0,0,7,240,0, - 15,252,0,31,252,0,60,30,0,120,15,0,112,7,0,112, - 7,0,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,112,7,0,120,7,0,56,14,0,62,62,0, - 31,252,0,15,248,0,3,224,0,17,26,78,20,1,0,0, - 128,0,1,192,0,7,112,0,14,56,0,28,28,0,0,0, - 0,7,240,0,15,252,0,31,252,0,60,30,0,120,15,0, - 112,7,0,112,7,0,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,112,7,0,120,7,0,56,14, - 0,62,62,0,31,252,0,15,248,0,3,224,0,17,25,75, - 20,1,0,7,12,0,15,204,0,12,236,0,12,56,0,0, - 0,0,7,240,0,15,252,0,31,252,0,60,30,0,120,15, - 0,112,7,0,112,7,0,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,112,7,0,120,7,0,56, - 14,0,62,62,0,31,252,0,15,248,0,3,224,0,17,25, - 75,20,1,0,12,24,0,30,60,0,30,60,0,12,24,0, - 0,0,0,7,240,0,15,252,0,31,252,0,60,30,0,120, - 15,0,112,7,0,112,7,0,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,112,7,0,120,7,0, - 56,14,0,62,62,0,31,252,0,15,248,0,3,224,0,15, - 16,32,20,2,0,224,14,240,30,248,62,120,60,60,120,30, - 240,15,224,7,192,7,192,15,224,30,240,60,120,120,60,248, - 62,240,30,224,14,17,23,69,20,1,254,0,3,128,3,227, - 128,15,255,128,31,255,0,62,62,0,56,30,0,120,63,0, - 112,127,0,224,123,128,224,243,128,225,227,128,225,195,128,227, - 195,128,231,131,128,255,7,128,126,7,0,126,15,0,60,30, - 0,127,252,0,127,248,0,247,240,0,224,0,0,224,0,0, - 19,26,78,20,0,0,3,0,0,7,128,0,1,224,0,0, - 240,0,0,48,0,0,0,0,255,31,224,255,31,224,255,31, - 224,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,28,7,128,31,31,0,15,254,0,7,252, - 0,1,248,0,19,26,78,20,0,0,0,28,0,0,60,0, - 0,240,0,1,224,0,1,128,0,0,0,0,255,31,224,255, - 31,224,255,31,224,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,28,7,128,31,31,0,15, - 254,0,7,252,0,1,248,0,19,26,78,20,0,0,0,64, - 0,0,224,0,3,184,0,7,28,0,14,14,0,0,0,0, - 255,31,224,255,31,224,255,31,224,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,28,7,128, - 31,31,0,15,254,0,7,252,0,1,248,0,19,26,78,20, - 0,0,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,255,191,224,255,191,224,255,191,224,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,28,7,128,31,31,0,15,254,0,7,252,0,1,248,0, - 17,26,78,20,1,0,0,24,0,0,120,0,0,240,0,3, - 192,0,3,0,0,0,0,0,254,63,128,254,63,128,254,63, - 128,60,30,0,28,28,0,30,60,0,14,56,0,15,120,0, - 7,240,0,3,224,0,3,224,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,31,252,0,31,252, - 0,31,252,0,18,20,60,20,1,0,255,128,0,255,128,0, - 255,128,0,28,0,0,31,248,0,31,254,0,31,255,0,28, - 15,128,28,3,128,28,3,192,28,3,192,28,3,128,28,15, - 128,31,255,0,31,254,0,31,248,0,28,0,0,255,128,0, - 255,128,0,255,128,0,17,22,66,20,0,255,3,224,0,7, - 240,0,15,248,0,30,60,0,28,28,0,28,28,0,28,28, - 0,28,60,0,29,248,0,29,248,0,29,254,0,28,31,0, - 28,15,0,28,7,128,28,3,128,28,3,128,29,195,128,29, - 195,128,255,255,0,254,255,0,254,126,0,0,24,0,17,22, - 66,20,2,0,24,0,0,60,0,0,15,0,0,7,128,0, - 1,128,0,0,0,0,0,0,0,15,224,0,63,240,0,63, - 248,0,56,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,124,0,255,255,128, - 127,255,128,63,159,128,17,22,66,20,2,0,0,32,0,0, - 112,0,0,240,0,3,192,0,7,128,0,6,0,0,0,0, - 0,15,224,0,63,240,0,63,248,0,56,60,0,0,28,0, - 0,28,0,15,252,0,63,252,0,127,252,0,120,28,0,224, - 60,0,224,124,0,255,255,128,127,223,128,63,159,128,17,22, - 66,20,1,0,0,128,0,1,192,0,7,112,0,14,56,0, - 28,28,0,0,0,0,0,0,0,7,224,0,63,240,0,63, - 248,0,60,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,60,0,255,255,128, - 127,255,128,63,159,128,17,21,63,20,1,0,14,24,0,31, - 152,0,25,248,0,24,112,0,0,0,0,0,0,0,15,224, - 0,63,240,0,63,248,0,56,60,0,0,28,0,0,28,0, - 15,252,0,63,252,0,127,252,0,120,28,0,240,28,0,224, - 124,0,255,255,128,127,223,128,63,159,128,17,21,63,20,2, - 0,12,24,0,30,60,0,30,60,0,12,24,0,0,0,0, - 0,0,0,15,224,0,63,240,0,63,248,0,56,60,0,0, - 28,0,0,28,0,15,252,0,63,252,0,127,252,0,120,28, - 0,240,28,0,224,124,0,255,255,128,127,223,128,63,159,128, - 17,21,63,20,1,0,3,192,0,6,96,0,4,32,0,6, - 96,0,3,192,0,0,0,0,15,224,0,63,240,0,63,248, - 0,56,60,0,0,28,0,0,28,0,15,252,0,63,252,0, - 127,252,0,120,28,0,240,28,0,224,124,0,255,255,128,127, - 223,128,63,159,128,20,15,45,20,255,0,15,135,0,63,255, - 192,63,255,192,56,253,224,0,112,112,3,240,112,31,255,240, - 127,255,240,255,255,240,240,112,0,224,120,0,241,248,112,127, - 255,240,63,255,240,31,39,128,16,21,42,20,2,250,7,230, - 31,254,63,254,124,62,112,14,240,14,224,14,224,0,224,0, - 224,0,240,6,124,15,63,254,31,252,7,240,1,128,1,128, - 1,192,8,224,15,192,3,128,16,21,42,20,1,0,6,0, - 15,0,3,192,1,224,0,96,0,0,7,224,31,248,63,252, - 124,62,112,14,240,15,255,255,255,255,255,255,224,0,112,0, - 124,15,63,255,31,254,7,240,16,22,44,20,1,0,0,16, - 0,56,0,120,1,224,3,192,3,0,0,0,7,224,31,248, - 63,252,124,62,112,14,240,15,255,255,255,255,255,255,224,0, - 112,0,124,14,63,255,31,254,7,240,16,22,44,20,1,0, - 0,128,1,192,7,112,14,56,28,28,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,16,21,42,20, - 1,0,12,24,30,60,30,60,12,24,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,15,22,44,20, - 2,0,24,0,60,0,15,0,7,128,1,128,0,0,0,0, - 127,128,127,128,127,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,254,255,254,255,254,15,23, - 46,20,2,0,0,128,1,192,3,192,15,0,30,0,24,0, - 0,0,0,0,127,128,127,128,127,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,15,22,44,20,2,0,2,0,7,0,29,192,56,224, - 112,112,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,15,21,42,20,2,0,48,96,120,240,120,240, - 48,96,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,16,21,42,20,2,0,126,14,255,191,255,252, - 3,240,15,240,127,248,124,56,112,60,7,220,31,254,127,254, - 120,30,240,15,224,7,224,7,224,15,240,15,248,62,127,252, - 63,248,31,224,17,21,63,20,1,0,14,24,0,31,152,0, - 25,248,0,24,112,0,0,0,0,0,0,0,249,240,0,251, - 252,0,255,254,0,60,30,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,254,63,128,254,63,128,17,21,63,20,1,0,6, - 0,0,15,0,0,3,192,0,1,224,0,0,96,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,22, - 66,20,1,0,0,16,0,0,56,0,0,120,0,1,224,0, - 3,192,0,3,0,0,0,0,0,7,240,0,15,248,0,63, - 254,0,60,30,0,120,15,0,240,7,128,224,3,128,224,3, - 128,224,3,128,240,7,128,120,15,0,124,31,0,63,254,0, - 31,252,0,7,240,0,17,22,66,20,1,0,0,128,0,1, - 192,0,7,112,0,14,56,0,28,28,0,0,0,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,21, - 63,20,1,0,7,12,0,15,204,0,12,252,0,12,56,0, - 0,0,0,0,0,0,7,240,0,15,248,0,63,254,0,60, - 30,0,120,15,0,240,7,128,224,3,128,224,3,128,224,3, - 128,240,7,128,120,15,0,124,31,0,63,254,0,31,252,0, - 7,240,0,17,21,63,20,1,0,12,24,0,30,60,0,30, - 60,0,12,24,0,0,0,0,0,0,0,7,240,0,15,248, - 0,63,254,0,60,30,0,120,15,0,240,7,128,224,3,128, - 224,3,128,224,3,128,240,7,128,120,15,0,124,31,0,63, - 254,0,31,252,0,7,240,0,15,15,30,20,2,2,3,128, - 7,192,7,192,3,128,0,0,0,0,255,254,255,254,255,254, - 0,0,0,0,3,128,7,192,7,192,3,128,17,18,54,20, - 1,254,0,3,128,3,227,128,15,255,128,63,255,0,62,62, - 0,120,63,0,112,127,0,224,243,128,225,227,128,227,195,128, - 231,131,128,127,7,0,126,31,0,63,254,0,127,252,0,247, - 240,0,224,0,0,224,0,0,18,22,66,20,0,0,3,0, - 0,7,128,0,1,224,0,0,240,0,0,48,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,22,66,20,0,0,0,8,0,0,28,0,0,60,0,0, - 240,0,1,224,0,1,128,0,0,0,0,252,63,0,252,63, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,15,0,28,31,0,31, - 255,192,15,247,192,7,231,192,18,22,66,20,0,0,0,128, - 0,1,192,0,7,112,0,14,56,0,28,28,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,21,63,20,0,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,0,0,0,252,63,0,252,63,0,252,63, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,15,0,28,31,0,31,255,192,15, - 247,192,7,231,192,17,29,87,20,1,249,0,16,0,0,56, - 0,0,120,0,1,224,0,3,192,0,3,0,0,0,0,0, - 254,63,128,254,63,128,254,63,128,120,15,0,56,14,0,60, - 30,0,28,28,0,30,60,0,14,56,0,15,120,0,7,112, - 0,7,240,0,3,224,0,3,224,0,1,192,0,1,192,0, - 3,128,0,3,128,0,7,0,0,255,224,0,255,224,0,255, - 224,0,19,28,84,20,0,249,252,0,0,252,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,252,0,31,255,0, - 31,255,128,31,135,192,31,3,192,30,1,224,28,0,224,28, - 0,224,28,0,224,30,1,224,30,1,192,31,135,192,31,255, - 128,31,255,0,28,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,255,192,0,255,192,0,255,192,0,17,28,84,20, - 1,249,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,254,63,128,254,63,128,254,63,128,120,15,0, - 56,14,0,60,30,0,28,28,0,30,60,0,14,56,0,15, - 120,0,7,112,0,7,240,0,3,224,0,3,224,0,1,192, - 0,1,192,0,3,128,0,3,128,0,7,0,0,255,224,0, - 255,224,0,255,224,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=28 x= 8 y=16 dx=20 dy= 0 ascent=23 len=75 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24r[4775] U8G_FONT_SECTION("u8g_font_courB24r") = { - 0,30,44,249,245,20,5,57,12,115,32,127,249,23,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=17 h=27 x= 7 y= 8 dx=20 dy= 0 ascent=23 len=54 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =23 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24n[707] U8G_FONT_SECTION("u8g_font_courB24n") = { - 0,30,44,249,245,21,0,0,0,0,42,58,0,23,251,21, - 0,15,14,28,20,3,7,3,128,3,128,3,128,3,128,99, - 140,251,190,127,252,31,240,15,224,15,224,30,240,60,120,120, - 60,48,24,17,17,51,20,1,1,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,255,255, - 128,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,7,10,10,20, - 5,251,30,30,60,60,56,112,112,224,224,192,15,3,6,20, - 2,8,255,254,255,254,255,254,5,4,4,20,7,0,112,248, - 248,112,13,27,54,20,3,252,0,56,0,56,0,120,0,112, - 0,112,0,224,0,224,1,224,1,192,1,192,3,128,3,128, - 7,128,7,0,15,0,14,0,14,0,28,0,28,0,60,0, - 56,0,56,0,112,0,112,0,240,0,224,0,224,0,13,21, - 42,20,3,0,15,128,63,224,127,240,112,112,240,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,240,120,112,112,127,240,63,224,15,128,13,21, - 42,20,4,0,3,0,15,0,127,0,255,0,255,0,103,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,14,21, - 42,20,2,0,7,192,31,240,63,248,120,60,112,28,112,28, - 112,28,0,28,0,56,0,120,0,240,1,224,3,192,7,128, - 15,0,30,0,60,0,120,0,255,252,255,252,255,252,15,21, - 42,20,2,0,7,224,31,240,127,248,120,60,112,28,0,28, - 0,28,0,60,7,248,7,240,7,248,0,124,0,28,0,14, - 0,14,0,14,0,30,224,60,255,252,255,248,63,224,14,21, - 42,20,2,0,0,240,1,240,1,240,3,240,7,240,7,112, - 15,112,14,112,30,112,28,112,56,112,120,112,112,112,255,252, - 255,252,255,252,0,112,0,112,3,252,3,252,3,252,15,21, - 42,20,2,0,63,252,63,252,63,252,56,0,56,0,56,0, - 56,0,63,224,63,248,63,252,56,124,0,30,0,14,0,14, - 0,14,0,14,64,30,240,60,255,248,127,248,31,224,14,21, - 42,20,3,0,1,248,7,248,15,248,31,0,60,0,120,0, - 112,0,112,0,227,192,239,240,255,240,248,120,240,60,224,28, - 224,28,240,28,112,60,120,120,127,248,63,240,15,192,14,21, - 42,20,2,0,255,252,255,252,255,252,224,60,224,56,224,56, - 0,56,0,120,0,112,0,112,0,240,0,224,0,224,1,224, - 1,192,1,192,3,192,3,128,7,128,7,0,7,0,14,21, - 42,20,3,0,15,128,63,224,127,240,112,112,224,56,224,56, - 224,56,112,112,127,240,63,224,63,240,124,248,240,60,224,28, - 224,28,224,28,224,28,248,124,127,248,63,240,15,192,14,21, - 42,20,3,0,15,128,63,224,127,240,120,240,240,120,224,56, - 224,60,224,60,224,60,240,124,120,252,63,220,63,156,15,60, - 0,56,0,120,0,112,97,240,255,224,255,128,126,0,5,15, - 15,20,7,0,112,248,248,112,0,0,0,0,0,0,0,112, - 248,248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08[2433] U8G_FONT_SECTION("u8g_font_courR08") = { - 0,10,16,254,252,6,1,151,3,21,32,255,254,9,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,1,7,7,6,2, - 254,128,0,128,128,128,128,128,4,8,8,6,1,255,32,32, - 112,128,128,112,32,32,6,7,7,6,0,0,56,64,248,32, - 32,68,252,5,5,5,6,0,1,136,112,80,112,136,5,7, - 7,6,0,0,136,80,248,32,248,32,112,1,9,9,6,2, - 254,128,128,128,0,0,128,128,128,128,4,8,8,6,1,255, - 112,128,96,144,144,96,16,224,3,1,1,6,2,5,160,6, - 7,7,6,0,0,48,72,180,164,180,72,48,4,5,5,6, - 1,1,224,16,208,0,240,6,3,3,6,0,1,108,216,108, - 5,3,3,6,0,2,248,8,8,4,1,1,6,1,3,240, - 6,7,7,6,0,0,48,72,188,180,172,72,48,4,1,1, - 6,1,5,240,4,3,3,6,1,4,96,144,96,5,6,6, - 6,0,0,32,32,248,32,0,248,3,4,4,6,2,3,96, - 160,64,224,3,4,4,6,2,3,224,64,32,192,2,2,2, - 6,2,5,64,128,6,7,7,6,0,254,216,72,72,72,116, - 64,64,6,8,8,6,0,255,124,168,168,104,40,40,40,108, - 1,2,2,6,2,2,128,128,3,3,3,6,1,254,64,32, - 192,3,4,4,6,2,3,192,64,64,224,4,5,5,6,1, - 1,96,144,96,0,240,6,3,3,6,1,1,216,108,216,6, - 7,7,6,0,0,192,68,72,244,44,92,132,6,7,7,6, - 0,0,192,68,72,252,52,72,156,6,7,7,6,0,0,224, - 68,40,212,44,92,132,4,7,7,6,0,254,32,0,32,32, - 64,144,96,6,9,9,6,0,0,32,16,0,112,40,72,120, - 72,204,6,9,9,6,0,0,16,32,0,112,40,72,120,72, - 204,6,9,9,6,0,0,32,80,0,112,40,72,120,72,204, - 6,9,9,6,0,0,40,80,0,112,40,72,120,72,204,6, - 8,8,6,0,0,80,0,112,40,72,120,72,204,6,9,9, - 6,0,0,16,40,16,112,40,72,120,72,204,6,6,6,6, - 0,0,124,48,92,112,144,156,4,8,8,6,1,254,96,144, - 128,128,144,96,32,192,5,9,9,6,0,0,32,16,0,248, - 72,112,64,72,248,5,9,9,6,0,0,16,32,0,248,72, - 112,64,72,248,5,9,9,6,0,0,32,80,0,248,72,112, - 64,72,248,5,8,8,6,0,0,80,0,248,72,112,64,72, - 248,5,9,9,6,0,0,64,32,0,248,32,32,32,32,248, - 5,9,9,6,0,0,16,32,0,248,32,32,32,32,248,5, - 9,9,6,0,0,32,80,0,248,32,32,32,32,248,5,8, - 8,6,0,0,80,0,248,32,32,32,32,248,5,6,6,6, - 0,0,240,72,232,72,72,240,6,9,9,6,0,0,40,80, - 0,220,72,104,88,72,200,4,9,9,6,1,0,64,32,0, - 96,144,144,144,144,96,4,9,9,6,1,0,32,64,0,96, - 144,144,144,144,96,4,9,9,6,1,0,32,80,0,96,144, - 144,144,144,96,4,9,9,6,1,0,80,160,0,96,144,144, - 144,144,96,4,8,8,6,1,0,160,0,96,144,144,144,144, - 96,5,5,5,6,0,1,136,80,32,80,136,6,6,6,6, - 0,0,52,72,88,104,72,176,6,9,9,6,0,0,32,16, - 0,204,72,72,72,72,48,6,9,9,6,0,0,16,32,0, - 204,72,72,72,72,48,6,9,9,6,0,0,16,40,0,204, - 72,72,72,72,48,6,8,8,6,0,0,80,0,204,72,72, - 72,72,48,5,9,9,6,0,0,16,32,0,216,136,80,32, - 32,112,5,6,6,6,0,0,192,112,72,112,64,224,6,6, - 6,6,0,0,48,72,88,68,84,200,5,8,8,6,0,0, - 64,32,0,96,16,112,144,104,5,8,8,6,0,0,16,32, - 0,96,16,112,144,104,5,8,8,6,0,0,32,80,0,96, - 16,112,144,104,5,8,8,6,0,0,80,160,0,96,16,112, - 144,104,5,7,7,6,0,0,80,0,96,16,112,144,104,5, - 9,9,6,0,0,32,80,32,0,96,16,112,144,104,6,5, - 5,6,0,0,108,148,124,144,236,4,7,7,6,1,254,96, - 144,128,144,96,32,192,4,8,8,6,1,0,64,32,0,96, - 144,240,128,112,4,8,8,6,1,0,32,64,0,96,144,240, - 128,112,4,8,8,6,1,0,64,160,0,96,144,240,128,112, - 4,7,7,6,1,0,160,0,96,144,240,128,112,5,8,8, - 6,0,0,64,32,0,96,32,32,32,248,5,8,8,6,0, - 0,16,32,0,96,32,32,32,248,5,8,8,6,0,0,32, - 80,0,96,32,32,32,248,5,7,7,6,0,0,80,0,96, - 32,32,32,248,4,8,8,6,1,0,208,96,160,112,144,144, - 144,96,6,8,8,6,0,0,40,80,0,176,72,72,72,236, - 4,8,8,6,1,0,64,32,0,96,144,144,144,96,4,8, - 8,6,1,0,16,32,0,96,144,144,144,96,4,8,8,6, - 1,0,64,160,0,96,144,144,144,96,4,8,8,6,1,0, - 80,160,0,96,144,144,144,96,4,7,7,6,1,0,160,0, - 96,144,144,144,96,5,5,5,6,0,1,32,0,248,0,32, - 6,6,6,6,0,0,4,56,88,104,72,176,6,8,8,6, - 0,0,32,16,0,216,72,72,72,52,6,8,8,6,0,0, - 16,32,0,216,72,72,72,52,6,8,8,6,0,0,32,80, - 0,216,72,72,72,52,6,7,7,6,0,0,80,0,216,72, - 72,72,52,5,10,10,6,0,254,16,32,0,216,72,72,72, - 48,32,192,5,9,9,6,0,254,192,64,112,72,72,72,112, - 64,224,5,9,9,6,0,254,80,0,216,72,72,72,48,32, - 192}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08r[1157] U8G_FONT_SECTION("u8g_font_courR08r") = { - 0,10,16,254,252,6,1,151,3,21,32,127,254,8,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10[3052] U8G_FONT_SECTION("u8g_font_courR10") = { - 0,14,20,253,251,9,1,224,3,220,32,255,253,12,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,1,1,9,9,9,4,254,128, - 128,0,128,128,128,128,128,128,5,9,9,9,2,0,32,32, - 120,136,128,136,112,32,32,7,9,9,9,1,0,24,36,32, - 32,120,32,32,66,252,6,6,6,9,1,1,180,72,132,132, - 72,180,7,9,9,9,1,0,238,68,68,40,124,16,124,16, - 56,1,11,11,9,3,254,128,128,128,128,0,0,128,128,128, - 128,128,6,10,10,9,1,255,60,68,64,240,136,68,60,8, - 136,240,5,1,1,9,2,8,216,8,9,9,9,0,0,60, - 66,153,165,161,165,153,66,60,4,6,6,9,2,3,192,32, - 224,176,0,240,8,7,7,9,0,0,17,34,68,204,68,34, - 17,7,3,3,9,1,3,254,2,2,6,1,1,9,1,4, - 252,8,9,9,9,0,0,60,66,185,165,185,169,165,66,60, - 4,1,1,9,2,8,240,4,4,4,9,2,6,96,144,144, - 96,7,7,7,9,1,1,16,16,254,16,16,0,254,4,6, - 6,9,2,4,96,144,16,32,64,240,4,6,6,9,2,4, - 96,144,96,16,144,96,4,2,2,9,2,8,48,192,8,10, - 10,9,0,253,198,66,66,66,66,70,123,64,64,64,7,10, - 10,9,1,255,126,148,148,148,116,20,20,20,20,62,2,2, - 2,9,3,3,192,192,3,3,3,9,2,253,64,32,224,3, - 6,6,9,3,4,64,192,64,64,64,224,4,6,6,9,2, - 3,96,144,144,96,0,240,8,7,7,9,0,0,136,68,34, - 51,34,68,136,10,10,20,9,255,0,64,0,193,0,66,0, - 68,0,68,128,233,128,18,128,20,128,39,192,64,128,10,10, - 20,9,255,0,64,0,193,0,66,0,68,0,69,128,234,64, - 16,64,16,128,33,0,67,192,10,10,20,9,255,0,96,0, - 145,0,98,0,20,0,148,128,105,128,18,128,20,128,39,192, - 64,128,5,9,9,9,2,254,32,32,0,32,96,128,128,136, - 112,9,12,24,9,0,0,48,0,12,0,0,0,56,0,8, - 0,20,0,20,0,34,0,62,0,65,0,65,0,247,128,9, - 12,24,9,0,0,12,0,48,0,0,0,56,0,8,0,20, - 0,20,0,34,0,62,0,65,0,65,0,247,128,9,12,24, - 9,0,0,8,0,20,0,0,0,56,0,8,0,20,0,20, - 0,34,0,62,0,65,0,65,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,56,0,8,0,20,0,20,0,34, - 0,62,0,65,0,65,0,247,128,9,11,22,9,0,0,54, - 0,0,0,56,0,8,0,20,0,20,0,34,0,62,0,65, - 0,65,0,247,128,9,12,24,9,0,0,24,0,36,0,24, - 0,56,0,8,0,20,0,20,0,34,0,62,0,65,0,65, - 0,247,128,9,9,18,9,255,0,31,128,12,128,20,0,20, - 128,39,128,60,128,68,0,68,128,239,128,7,12,12,9,1, - 253,58,70,130,128,128,128,128,66,60,16,8,56,7,12,12, - 9,1,0,96,24,0,254,66,66,72,120,72,66,66,254,7, - 12,12,9,1,0,12,48,0,254,66,66,72,120,72,66,66, - 254,7,12,12,9,1,0,16,40,0,254,66,66,72,120,72, - 66,66,254,7,11,11,9,1,0,108,0,254,66,66,72,120, - 72,66,66,254,5,12,12,9,2,0,192,48,0,248,32,32, - 32,32,32,32,32,248,5,12,12,9,2,0,24,96,0,248, - 32,32,32,32,32,32,32,248,5,12,12,9,2,0,32,80, - 0,248,32,32,32,32,32,32,32,248,5,11,11,9,2,0, - 216,0,248,32,32,32,32,32,32,32,248,8,9,9,9,0, - 0,252,66,65,65,241,65,65,66,252,8,12,12,9,0,0, - 26,44,0,231,98,82,82,74,74,70,70,226,8,12,12,9, - 0,0,48,12,0,60,66,129,129,129,129,129,66,60,8,12, - 12,9,0,0,12,48,0,60,66,129,129,129,129,129,66,60, - 8,12,12,9,0,0,16,40,0,60,66,129,129,129,129,129, - 66,60,8,12,12,9,0,0,26,44,0,60,66,129,129,129, - 129,129,66,60,8,11,11,9,0,0,102,0,60,66,129,129, - 129,129,129,66,60,7,7,7,9,1,1,130,68,40,16,40, - 68,130,9,9,18,9,255,0,30,128,33,0,66,128,68,128, - 72,128,80,128,32,128,97,0,158,0,8,12,12,9,0,0, - 48,12,0,231,66,66,66,66,66,66,66,60,8,12,12,9, - 0,0,12,48,0,231,66,66,66,66,66,66,66,60,8,12, - 12,9,0,0,16,40,0,231,66,66,66,66,66,66,66,60, - 8,11,11,9,0,0,102,0,231,66,66,66,66,66,66,66, - 60,7,12,12,9,1,0,12,48,0,238,68,68,40,40,16, - 16,16,124,7,9,9,9,0,0,224,64,124,66,66,66,124, - 64,224,7,9,9,9,0,0,56,68,68,88,68,66,66,82, - 204,7,10,10,9,1,0,96,24,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,24,96,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,16,40,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,52,88,0,120,132,4,124,132,140, - 118,7,9,9,9,1,0,108,0,120,132,4,124,132,140,118, - 7,10,10,9,1,0,48,72,48,120,132,4,124,132,140,118, - 8,7,7,9,0,0,118,137,9,127,136,137,118,7,10,10, - 9,1,253,58,70,130,128,128,66,60,16,8,56,7,10,10, - 9,1,0,96,24,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,12,48,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,16,40,0,56,68,130,254,128,66,60,7,9,9, - 9,1,0,108,0,56,68,130,254,128,66,60,5,10,10,9, - 2,0,192,48,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,48,192,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,32,80,0,224,32,32,32,32,32,248,5,9,9,9, - 2,0,216,0,224,32,32,32,32,32,248,8,12,12,9,0, - 0,2,228,24,40,68,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,220,98,66,66,66,66,231,8,10,10, - 9,0,0,48,12,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,12,48,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,16,40,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,60,66,129,129,129,66,60,8,9,9, - 9,0,0,108,0,60,66,129,129,129,66,60,8,7,7,9, - 0,1,24,24,0,255,0,24,24,8,7,7,9,0,0,61, - 70,137,145,161,66,188,8,10,10,9,0,0,48,12,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,12,48,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,16,40,0,198, - 66,66,66,66,70,59,8,9,9,9,0,0,108,0,198,66, - 66,66,66,70,59,8,13,13,9,0,253,6,24,0,231,66, - 66,36,36,24,8,16,16,120,8,12,12,9,0,253,192,64, - 92,98,65,65,65,98,92,64,64,240,8,12,12,9,0,253, - 54,0,231,66,66,36,36,24,8,16,16,120}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=11 len=18 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10r[1443] U8G_FONT_SECTION("u8g_font_courR10r") = { - 0,14,20,253,251,9,1,224,3,220,32,127,253,11,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12[3471] U8G_FONT_SECTION("u8g_font_courR12") = { - 0,15,24,253,250,10,2,12,4,92,32,255,253,14,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,10,0,1,1,10, - 10,10,4,253,128,128,0,128,128,128,128,128,128,128,5,10, - 10,10,2,0,32,32,120,136,128,128,136,112,32,32,8,10, - 10,10,1,0,28,34,32,32,248,32,32,32,65,255,7,7, - 7,10,1,1,130,124,68,68,68,124,130,9,10,20,10,0, - 0,227,128,65,0,34,0,34,0,20,0,62,0,8,0,62, - 0,8,0,62,0,1,12,12,10,4,254,128,128,128,128,128, - 0,0,128,128,128,128,128,9,12,24,10,0,255,31,0,33, - 0,33,0,112,0,140,0,131,0,96,128,24,128,7,0,66, - 0,66,0,124,0,4,2,2,10,3,8,144,144,10,10,20, - 10,0,0,30,0,33,0,64,128,142,64,144,64,144,64,142, - 64,64,128,33,0,30,0,5,7,7,10,2,3,112,8,120, - 136,120,0,248,7,7,7,10,1,0,18,36,72,144,72,36, - 18,7,4,4,10,1,2,254,2,2,2,7,1,1,10,1, - 4,254,10,10,20,10,0,0,30,0,33,0,64,128,156,64, - 146,64,156,64,146,64,64,128,33,0,30,0,5,1,1,10, - 2,8,248,5,5,5,10,2,6,112,136,136,136,112,7,9, - 9,10,1,0,16,16,16,254,16,16,16,0,254,4,6,6, - 10,2,5,96,144,32,64,144,240,4,6,6,10,3,5,96, - 144,32,16,144,96,3,3,3,10,4,8,32,64,128,8,10, - 10,10,1,253,198,66,66,66,66,70,123,64,64,64,7,12, - 12,10,1,255,62,84,148,148,148,84,52,20,20,20,20,62, - 2,2,2,10,4,4,192,192,3,4,4,10,3,253,64,64, - 32,224,5,6,6,10,2,5,32,224,32,32,32,248,5,7, - 7,10,2,3,112,136,136,136,112,0,248,7,7,7,10,1, - 0,144,72,36,18,36,72,144,10,11,22,10,0,0,32,0, - 224,64,32,128,33,0,34,0,252,128,9,128,18,128,36,128, - 71,192,0,128,10,11,22,10,0,0,32,0,224,64,32,128, - 33,0,34,0,253,128,10,64,16,128,33,0,66,64,3,192, - 10,11,22,10,0,0,96,0,144,64,32,128,17,0,146,0, - 100,128,9,128,18,128,36,128,71,192,0,128,6,10,10,10, - 1,253,16,16,0,16,16,96,128,132,132,120,9,14,28,10, - 0,0,32,0,16,0,8,0,0,0,120,0,20,0,20,0, - 34,0,34,0,34,0,62,0,65,0,65,0,227,128,9,14, - 28,10,0,0,4,0,8,0,16,0,0,0,120,0,20,0, - 20,0,34,0,34,0,34,0,62,0,65,0,65,0,227,128, - 9,14,28,10,0,0,8,0,20,0,34,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,50,0,76,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,36,0,36,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,14,28,10,0,0,24,0,36,0,36,0,24,0, - 120,0,20,0,20,0,34,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,10,20,10,0,0,127,128,40,128,40,128, - 74,0,78,0,122,0,72,128,136,128,136,128,223,128,8,13, - 13,10,1,253,29,99,65,128,128,128,128,65,99,28,16,8, - 56,7,14,14,10,1,0,32,16,8,0,254,66,66,72,120, - 72,64,66,66,254,7,14,14,10,1,0,4,8,16,0,254, - 66,66,72,120,72,64,66,66,254,7,14,14,10,1,0,16, - 40,68,0,254,66,66,72,120,72,64,66,66,254,7,13,13, - 10,1,0,36,36,0,254,66,66,72,120,72,64,66,66,254, - 7,14,14,10,1,0,32,16,8,0,254,16,16,16,16,16, - 16,16,16,254,7,14,14,10,1,0,8,16,32,0,254,16, - 16,16,16,16,16,16,16,254,7,14,14,10,1,0,16,40, - 68,0,254,16,16,16,16,16,16,16,16,254,7,13,13,10, - 1,0,68,68,0,254,16,16,16,16,16,16,16,16,254,8, - 10,10,10,1,0,248,70,66,65,241,65,65,66,70,248,9, - 13,26,10,0,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,243,0,8, - 14,14,10,1,0,32,16,8,0,60,66,66,129,129,129,129, - 66,66,60,8,14,14,10,1,0,4,8,16,0,60,66,66, - 129,129,129,129,66,66,60,8,14,14,10,1,0,8,20,34, - 0,60,66,66,129,129,129,129,66,66,60,8,13,13,10,1, - 0,50,76,0,60,66,66,129,129,129,129,66,66,60,8,13, - 13,10,1,0,36,36,0,60,66,66,129,129,129,129,66,66, - 60,7,7,7,10,1,1,130,68,40,16,40,68,130,8,10, - 10,10,1,0,61,66,66,133,137,145,161,66,66,188,9,14, - 28,10,0,0,16,0,8,0,4,0,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,14,28,10,0,0,2,0,4,0,8,0,0,0,247,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 28,0,9,14,28,10,0,0,8,0,20,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,13,26,10,0,0,34,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,14,28,10,0,0,2,0,4,0,8,0, - 0,0,227,128,65,0,34,0,34,0,20,0,8,0,8,0, - 8,0,8,0,62,0,8,10,10,10,1,0,224,64,124,66, - 65,66,124,64,64,224,7,11,11,10,1,0,56,68,68,72, - 88,68,66,66,66,82,204,7,11,11,10,1,0,32,16,8, - 0,56,68,4,124,132,132,122,7,11,11,10,1,0,4,8, - 16,0,56,68,4,124,132,132,122,7,11,11,10,1,0,16, - 40,68,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 50,76,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 36,36,0,56,68,4,124,132,132,122,7,12,12,10,1,0, - 24,36,36,24,0,56,68,4,124,132,132,122,9,7,14,10, - 0,0,55,0,72,128,8,128,127,128,136,0,136,128,119,0, - 7,10,10,10,1,253,58,70,130,128,128,66,60,16,8,56, - 7,11,11,10,1,0,32,16,8,0,56,68,130,254,128,66, - 60,7,11,11,10,1,0,4,8,16,0,56,68,130,254,128, - 66,60,7,11,11,10,1,0,16,40,68,0,56,68,130,254, - 128,66,60,7,10,10,10,1,0,36,36,0,56,68,130,254, - 128,66,60,7,11,11,10,1,0,32,16,8,0,112,16,16, - 16,16,16,254,7,11,11,10,1,0,8,16,32,0,112,16, - 16,16,16,16,254,7,11,11,10,1,0,16,40,68,0,112, - 16,16,16,16,16,254,7,10,10,10,1,0,72,72,0,112, - 16,16,16,16,16,254,7,11,11,10,1,0,230,24,104,4, - 60,66,130,130,130,68,56,8,10,10,10,1,0,50,76,0, - 220,98,66,66,66,66,231,7,11,11,10,1,0,32,16,8, - 0,56,68,130,130,130,68,56,7,11,11,10,1,0,8,16, - 32,0,56,68,130,130,130,68,56,7,11,11,10,1,0,16, - 40,68,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 50,76,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 68,68,0,56,68,130,130,130,68,56,8,7,7,10,1,1, - 24,24,0,255,0,24,24,7,9,9,10,1,255,2,58,68, - 138,146,162,68,184,128,8,11,11,10,1,0,32,16,8,0, - 198,66,66,66,66,70,59,8,11,11,10,1,0,4,8,16, - 0,198,66,66,66,66,70,59,8,11,11,10,1,0,16,40, - 68,0,198,66,66,66,66,70,59,8,10,10,10,1,0,36, - 36,0,198,66,66,66,66,70,59,9,14,28,10,0,253,2, - 0,4,0,8,0,0,0,227,128,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,120,0,8,14,14,10,1, - 253,192,64,64,64,92,98,65,65,65,98,92,64,64,240,9, - 13,26,10,0,253,18,0,18,0,0,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,16,0,120,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12r[1592] U8G_FONT_SECTION("u8g_font_courR12r") = { - 0,15,24,253,250,10,2,12,4,92,32,127,253,12,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y=10 dx=11 dy= 0 ascent=15 len=32 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14[4276] U8G_FONT_SECTION("u8g_font_courR14") = { - 0,16,26,253,249,11,2,74,5,74,32,255,252,15,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,11,0,1,2,12,12,11,4,252, - 192,192,0,0,128,128,192,192,192,192,192,192,6,12,12,11, - 2,0,16,16,16,60,68,132,128,128,68,56,16,16,8,11, - 11,11,2,0,28,34,32,32,16,252,16,32,33,65,126,6, - 7,7,11,2,2,132,120,132,132,132,120,132,9,11,22,11, - 1,0,227,128,65,0,34,0,34,0,20,0,20,0,127,0, - 8,0,127,0,8,0,62,0,1,15,15,11,5,253,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,7,14,14, - 11,2,254,62,66,66,64,112,140,130,98,28,6,130,130,132, - 252,4,2,2,11,3,10,144,144,11,11,22,11,0,0,31, - 0,96,192,79,64,145,32,160,32,160,32,160,32,145,32,78, - 64,96,192,31,0,6,8,8,11,2,3,112,8,120,136,152, - 236,0,252,10,8,16,11,1,0,24,192,49,128,99,0,198, - 0,198,0,99,0,49,128,24,192,9,4,8,11,1,3,255, - 128,0,128,0,128,0,128,8,1,1,11,1,5,255,11,11, - 22,11,0,0,31,0,96,192,94,64,145,32,145,32,158,32, - 148,32,146,32,81,64,96,128,31,0,5,1,1,11,3,10, - 248,5,5,5,11,3,6,112,136,136,136,112,9,9,18,11, - 1,1,8,0,8,0,8,0,255,128,8,0,8,0,8,0, - 0,0,255,128,5,7,7,11,3,5,112,136,8,16,32,64, - 248,5,7,7,11,3,5,112,136,8,48,8,136,112,3,3, - 3,11,4,9,32,64,128,9,12,24,11,1,252,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,125,128,64,0,64, - 0,64,0,64,0,8,14,14,11,1,254,63,74,138,138,138, - 74,58,10,10,10,10,10,10,59,2,2,2,11,4,5,192, - 192,3,3,3,11,4,253,64,32,192,5,7,7,11,3,5, - 32,224,32,32,32,32,248,6,8,8,11,2,3,120,132,132, - 132,132,120,0,252,10,8,16,11,0,0,198,0,99,0,49, - 128,24,192,24,192,49,128,99,0,198,0,11,12,24,11,0, - 0,32,0,224,64,32,128,33,0,33,0,34,64,252,192,9, - 64,10,64,19,224,32,64,0,224,11,12,24,11,0,0,32, - 0,224,64,32,128,33,0,33,0,34,192,253,32,8,32,8, - 64,16,128,33,0,3,224,11,12,24,11,0,0,112,0,136, - 64,8,128,49,0,9,0,138,64,116,192,9,64,10,64,19, - 224,32,64,0,224,6,11,11,11,2,253,24,24,0,16,16, - 112,128,128,132,132,120,11,15,30,11,0,0,16,0,8,0, - 4,0,0,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,15,30,11,0,0, - 1,0,2,0,4,0,0,0,60,0,4,0,10,0,10,0, - 17,0,17,0,32,128,63,128,64,64,64,64,241,224,11,15, - 30,11,0,0,12,0,18,0,33,0,0,0,60,0,4,0, - 10,0,10,0,17,0,17,0,32,128,63,128,64,64,64,64, - 241,224,11,14,28,11,0,0,25,0,38,0,0,0,60,0, - 4,0,10,0,10,0,17,0,17,0,32,128,63,128,64,64, - 64,64,241,224,11,14,28,11,0,0,18,0,18,0,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,11,15,30,11,0,0,12,0,18,0, - 18,0,12,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,11,22,11,255,0, - 31,224,6,32,10,32,10,0,18,64,19,192,62,64,34,0, - 66,32,66,32,231,224,9,14,28,11,1,253,30,128,97,128, - 64,128,128,0,128,0,128,0,128,0,128,0,64,128,97,0, - 30,0,8,0,4,0,24,0,8,15,15,11,1,0,32,16, - 8,0,255,65,65,65,72,120,72,65,65,65,255,8,15,15, - 11,1,0,4,8,16,0,255,65,65,65,72,120,72,65,65, - 65,255,8,15,15,11,1,0,24,36,66,0,255,65,65,65, - 72,120,72,65,65,65,255,8,14,14,11,1,0,36,36,0, - 255,65,65,65,72,120,72,65,65,65,255,7,15,15,11,2, - 0,32,16,8,0,254,16,16,16,16,16,16,16,16,16,254, - 7,15,15,11,2,0,8,16,32,0,254,16,16,16,16,16, - 16,16,16,16,254,7,15,15,11,2,0,24,36,66,0,254, - 16,16,16,16,16,16,16,16,16,254,7,14,14,11,2,0, - 36,36,0,254,16,16,16,16,16,16,16,16,16,254,8,11, - 11,11,1,0,252,66,65,65,65,241,65,65,65,66,252,9, - 14,28,11,1,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,15,30,11,1,0,16,0,8,0,4,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,9,15,30,11,1,0,4,0,8,0,16, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,11,1,0,12, - 0,18,0,33,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,25,0,38,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,18,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,9,18,11,1,1,128,128,65,0,34,0,20,0,8, - 0,20,0,34,0,65,0,128,128,11,11,22,11,0,0,14, - 32,49,192,32,128,65,64,66,64,68,64,72,64,80,64,32, - 128,113,128,142,0,10,15,30,11,0,0,16,0,8,0,4, - 0,0,0,243,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,10,15,30,11,0,0,2, - 0,4,0,8,0,0,0,243,192,64,128,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,33,0,30,0,10,15,30, - 11,0,0,12,0,18,0,33,0,0,0,243,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,33,0,30, - 0,10,14,28,11,0,0,18,0,18,0,0,0,243,192,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,9,15,30,11,1,0,2,0,4,0,8,0,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,8,0,8,0,62,0,9,11,22,11,1,0,224,0,64, - 0,126,0,65,0,64,128,64,128,65,0,126,0,64,0,64, - 0,224,0,8,11,11,11,1,0,60,66,66,68,88,70,65, - 65,65,73,230,9,12,24,11,1,0,32,0,16,0,8,0, - 0,0,60,0,66,0,2,0,126,0,130,0,130,0,134,0, - 123,128,9,12,24,11,1,0,4,0,8,0,16,0,0,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,24,0,36,0,66,0,0,0,60,0, - 66,0,2,0,126,0,130,0,130,0,134,0,123,128,9,11, - 22,11,1,0,50,0,76,0,0,0,60,0,66,0,2,0, - 126,0,130,0,130,0,134,0,123,128,9,11,22,11,1,0, - 36,0,36,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,9,13,26,11,1,0,24,0,36,0, - 36,0,24,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,11,8,16,11,0,0,113,128,138,64, - 4,32,127,224,132,0,132,0,138,32,113,192,8,11,11,11, - 1,253,61,67,129,128,128,128,67,60,16,8,48,8,12,12, - 11,1,0,32,16,8,0,60,66,129,255,128,128,67,60,8, - 12,12,11,1,0,2,4,8,0,60,66,129,255,128,128,67, - 60,8,12,12,11,1,0,24,36,66,0,60,66,129,255,128, - 128,67,60,8,11,11,11,1,0,36,36,0,60,66,129,255, - 128,128,67,60,7,12,12,11,2,0,32,16,8,0,112,16, - 16,16,16,16,16,254,7,12,12,11,2,0,8,16,32,0, - 112,16,16,16,16,16,16,254,7,12,12,11,2,0,48,72, - 132,0,112,16,16,16,16,16,16,254,7,11,11,11,2,0, - 72,72,0,112,16,16,16,16,16,16,254,8,12,12,11,1, - 0,114,140,52,66,62,67,129,129,129,129,66,60,9,11,22, - 11,1,0,50,0,76,0,0,0,222,0,97,0,65,0,65, - 0,65,0,65,0,65,0,227,128,8,12,12,11,1,0,32, - 16,8,0,60,66,129,129,129,129,66,60,8,12,12,11,1, - 0,4,8,16,0,60,66,129,129,129,129,66,60,8,12,12, - 11,1,0,24,36,66,0,60,66,129,129,129,129,66,60,8, - 11,11,11,1,0,50,76,0,60,66,129,129,129,129,66,60, - 8,11,11,11,1,0,36,36,0,60,66,129,129,129,129,66, - 60,8,9,9,11,1,1,24,24,0,0,255,0,0,24,24, - 8,8,8,11,1,0,61,66,133,137,145,161,66,188,9,12, - 24,11,1,0,32,0,16,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,11, - 1,0,2,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,11,1,0, - 24,0,36,0,66,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,11,1,0,36,0, - 36,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,9,16,32,11,1,252,2,0,4,0,8,0, - 0,0,227,128,65,0,65,0,34,0,34,0,20,0,20,0, - 8,0,8,0,16,0,16,0,248,0,9,16,32,11,1,252, - 192,0,64,0,64,0,64,0,94,0,97,0,64,128,64,128, - 64,128,64,128,97,0,94,0,64,0,64,0,64,0,240,0, - 9,15,30,11,1,252,36,0,36,0,0,0,227,128,65,0, - 65,0,34,0,34,0,20,0,20,0,8,0,8,0,16,0, - 16,0,248,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y= 9 dx=11 dy= 0 ascent=13 len=26 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14r[1988] U8G_FONT_SECTION("u8g_font_courR14r") = { - 0,16,26,253,249,11,2,74,5,74,32,127,252,13,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=19 len=42 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18[6152] U8G_FONT_SECTION("u8g_font_courR18") = { - 0,23,32,251,248,14,3,161,7,151,32,255,251,19,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,15,0,1,2,16,16,15,6,251,192,192,0,0,0,128, - 128,128,192,192,192,192,192,192,192,192,8,16,16,15,3,0, - 8,8,8,8,29,99,65,128,128,128,64,99,28,8,8,8, - 10,14,28,15,2,0,14,0,17,128,32,0,32,0,32,0, - 32,0,254,0,16,0,16,0,16,0,16,0,32,64,64,64, - 255,128,10,10,20,15,2,2,128,64,94,128,33,0,64,128, - 64,128,64,128,64,128,33,0,94,128,128,64,11,14,28,15, - 2,0,241,224,64,64,32,128,32,128,17,0,17,0,10,0, - 127,192,4,0,4,0,127,192,4,0,4,0,63,128,1,19, - 19,15,7,253,128,128,128,128,128,128,128,128,0,0,0,128, - 128,128,128,128,128,128,128,10,18,36,15,2,254,15,192,16, - 64,32,64,32,64,32,0,112,0,140,0,130,0,65,0,32, - 128,16,64,12,64,3,128,1,0,129,0,129,0,130,0,252, - 0,7,2,2,15,4,12,198,198,13,13,26,15,1,1,15, - 128,48,96,64,16,70,144,137,136,144,136,144,8,144,8,136, - 136,71,16,64,16,48,96,15,128,7,9,9,15,4,5,120, - 132,60,68,132,140,118,0,254,12,11,22,15,1,0,6,48, - 12,96,24,192,49,128,99,0,198,0,99,0,49,128,24,192, - 12,96,6,48,11,4,8,15,2,5,255,224,0,32,0,32, - 0,32,10,1,2,15,2,7,255,192,13,13,26,15,1,1, - 15,128,48,96,64,16,79,16,136,136,136,136,143,8,137,8, - 136,136,72,144,64,16,48,96,15,128,7,1,1,15,4,12, - 254,7,7,7,15,4,9,56,68,130,130,130,68,56,11,13, - 26,15,2,1,4,0,4,0,4,0,4,0,4,0,255,224, - 4,0,4,0,4,0,4,0,4,0,0,0,255,224,6,9, - 9,15,4,7,56,68,132,4,8,16,32,68,252,6,9,9, - 15,4,7,120,132,4,8,56,4,4,132,120,5,4,4,15, - 5,12,24,48,96,192,12,16,32,15,1,251,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,48,160, - 47,48,32,0,32,0,32,0,32,0,32,0,11,18,36,15, - 2,254,31,224,100,128,196,128,196,128,196,128,196,128,196,128, - 100,128,28,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,128,4,128,60,224,3,3,3,15,6,6,224,224,224,4, - 5,5,15,5,252,32,32,16,144,96,7,9,9,15,4,7, - 48,208,16,16,16,16,16,16,254,7,9,9,15,4,5,56, - 68,130,130,130,68,56,0,254,12,11,22,15,1,0,198,0, - 99,0,49,128,24,192,12,96,6,48,12,96,24,192,49,128, - 99,0,198,0,14,16,32,15,0,0,48,0,208,0,16,8, - 16,16,16,32,16,32,16,64,16,152,255,40,2,72,4,72, - 4,136,9,8,17,252,0,8,0,28,14,16,32,15,0,0, - 48,0,208,0,16,8,16,16,16,32,16,32,16,64,16,184, - 255,68,2,132,4,4,4,8,8,16,16,32,0,68,0,252, - 14,16,32,15,0,0,120,0,132,0,4,8,8,16,56,32, - 4,32,4,64,132,152,121,40,2,72,4,72,4,136,9,8, - 17,252,0,8,0,28,8,14,14,15,3,253,24,24,0,0, - 8,8,48,64,128,128,128,129,65,62,13,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,63,0,5,0,8,128, - 8,128,8,128,16,64,16,64,16,64,63,224,32,32,32,32, - 64,16,64,16,240,120,13,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,13,18, - 36,15,1,0,28,64,54,192,35,128,0,0,63,0,5,0, - 8,128,8,128,8,128,16,64,16,64,16,64,63,224,32,32, - 32,32,64,16,64,16,240,120,13,18,36,15,1,0,24,192, - 24,192,0,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,7,0,8,128,8,128,8,128, - 7,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,15,14, - 28,15,255,0,15,254,2,130,4,130,4,130,4,136,8,136, - 8,248,8,136,31,136,16,130,16,130,32,130,32,130,243,254, - 11,18,36,15,2,252,15,32,48,224,96,96,64,32,128,0, - 128,0,128,0,128,0,128,0,128,0,64,32,96,96,48,192, - 15,0,4,0,2,0,18,0,12,0,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,255,224,32,32,32,32, - 32,32,34,0,34,0,62,0,34,0,34,0,32,16,32,16, - 32,16,32,16,255,240,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,255,224,32,32,32,32,32,32,34,0, - 34,0,62,0,34,0,34,0,32,16,32,16,32,16,32,16, - 255,240,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,255,224,32,32,32,32,32,32,34,0,34,0,62,0, - 34,0,34,0,32,16,32,16,32,16,32,16,255,240,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,255,224,32,32, - 32,32,32,32,34,0,34,0,62,0,34,0,34,0,32,16, - 32,16,32,16,32,16,255,240,9,19,38,15,3,0,96,0, - 48,0,24,0,12,0,0,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,255,128,9,19,38,15,3,0,3,0,6,0,12,0, - 24,0,0,0,255,128,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,19,38,15,3,0,24,0,60,0,102,0,195,0,0,0, - 255,128,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,255,128,9,18,36,15, - 3,0,99,0,99,0,0,0,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,13,14,28,15,0,0,127,192,32,48, - 32,16,32,8,32,8,32,8,252,8,32,8,32,8,32,8, - 32,8,32,16,32,48,127,192,14,18,36,15,0,0,14,32, - 27,96,17,192,0,0,240,252,48,16,40,16,36,16,36,16, - 34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48, - 252,48,13,19,38,15,1,0,24,0,12,0,6,0,3,0, - 0,0,15,128,48,96,96,48,64,16,128,8,128,8,128,8, - 128,8,128,8,128,8,64,16,96,48,48,96,15,128,13,19, - 38,15,1,0,0,96,0,192,1,128,3,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,13,19,38,15,1,0, - 3,0,7,128,12,192,24,96,0,0,15,128,48,96,96,48, - 64,16,128,8,128,8,128,8,128,8,128,8,128,8,64,16, - 96,48,48,96,15,128,13,18,36,15,1,0,14,32,27,96, - 17,192,0,0,15,128,48,96,96,48,64,16,128,8,128,8, - 128,8,128,8,128,8,128,8,64,16,96,48,48,96,15,128, - 13,18,36,15,1,0,24,192,24,192,0,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,11,11,22,15,2,2, - 128,32,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,128,32,14,15,30,15,0,0,0,4,7,200, - 24,48,48,48,32,72,64,136,64,136,65,8,66,8,68,8, - 72,8,48,16,48,48,88,96,135,128,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,249,240,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,32,64,31,128,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,249,240,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,32,64, - 31,128,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,249,240,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,32,64,31,128,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,249,240,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,32,64,31,128,13,19,38,15,1,0,0,192, - 1,128,3,0,6,0,0,0,240,120,32,32,16,64,16,64, - 8,128,8,128,5,0,2,0,2,0,2,0,2,0,2,0, - 2,0,31,192,11,14,28,15,2,0,248,0,32,0,32,0, - 63,128,32,64,32,32,32,32,32,32,32,32,32,64,63,128, - 32,0,32,0,248,0,11,16,32,15,2,0,14,0,17,0, - 32,128,32,128,32,128,32,128,33,0,39,0,32,192,32,64, - 32,32,32,32,32,32,36,32,36,64,243,128,11,16,32,15, - 2,0,48,0,24,0,12,0,6,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,16,32,15,2,0,1,128,3,0,6,0,12,0, - 0,0,30,0,97,0,0,128,0,128,0,128,63,128,64,128, - 128,128,128,128,129,128,126,224,11,16,32,15,2,0,12,0, - 30,0,51,0,97,128,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,11,15, - 30,15,2,0,56,128,109,128,71,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,15,30,15,2,0,49,128,49,128,0,0,0,0, - 30,0,97,0,0,128,0,128,0,128,63,128,64,128,128,128, - 128,128,129,128,126,224,11,17,34,15,2,0,14,0,17,0, - 17,0,17,0,14,0,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,15,11, - 22,15,0,0,28,112,98,140,65,4,1,2,1,2,63,254, - 65,0,129,0,129,2,130,132,124,120,11,15,30,15,2,252, - 31,64,96,192,64,64,128,64,128,0,128,0,128,0,128,0, - 64,96,96,192,31,0,4,0,2,0,18,0,12,0,11,16, - 32,15,2,0,48,0,24,0,12,0,6,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,11,16,32,15,2,0,1,128,3,0,6,0, - 12,0,0,0,31,0,96,192,64,64,128,32,128,32,255,224, - 128,0,128,0,64,0,96,96,31,128,11,16,32,15,2,0, - 12,0,30,0,51,0,97,128,0,0,31,0,96,192,64,64, - 128,32,128,32,255,224,128,0,128,0,64,0,96,96,31,128, - 11,15,30,15,2,0,49,128,49,128,0,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,9,16,32,15,3,0,96,0,48,0,24,0, - 12,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,9,16,32,15,3,0, - 3,0,6,0,12,0,24,0,0,0,120,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,16,32,15,3,0,24,0,60,0,102,0,195,0,0,0, - 120,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,9,15,30,15,3,0,99,0,99,0, - 0,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,12,16,32,15,1,0, - 124,192,135,0,13,0,48,128,0,64,15,224,48,96,32,48, - 64,16,64,16,64,16,64,16,64,16,32,32,48,96,15,128, - 13,15,30,15,1,0,28,64,54,192,35,128,0,0,231,128, - 40,64,48,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,248,248,11,16,32,15,2,0,24,0,12,0,6,0, - 3,0,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,16,32,15,2,0, - 1,128,3,0,6,0,12,0,0,0,31,0,96,192,64,64, - 128,32,128,32,128,32,128,32,128,32,64,64,96,192,31,0, - 11,16,32,15,2,0,12,0,30,0,51,0,97,128,0,0, - 31,0,96,192,64,64,128,32,128,32,128,32,128,32,128,32, - 64,64,96,192,31,0,11,15,30,15,2,0,28,64,54,192, - 35,128,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,15,30,15,2,0, - 49,128,49,128,0,0,0,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,11,9, - 18,15,2,3,14,0,14,0,0,0,0,0,255,224,0,0, - 0,0,14,0,14,0,12,12,24,15,1,0,0,16,15,160, - 48,64,32,160,65,16,66,16,68,16,72,16,80,16,32,32, - 80,96,143,128,12,16,32,15,1,0,24,0,12,0,6,0, - 3,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,16,32,15,1,0, - 0,192,1,128,3,0,6,0,0,0,224,224,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,96,16,160,15,48, - 12,16,32,15,1,0,6,0,15,0,25,128,48,192,0,0, - 224,224,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,96,16,160,15,48,12,15,30,15,1,0,25,128,25,128, - 0,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,21,42,15,1,251, - 0,192,1,128,3,0,6,0,0,0,240,240,64,32,64,32, - 32,64,32,64,32,128,16,128,17,0,9,0,10,0,6,0, - 4,0,4,0,8,0,8,0,254,0,13,21,42,15,1,251, - 224,0,32,0,32,0,32,0,32,0,39,192,56,48,48,16, - 32,8,32,8,32,8,32,8,32,8,48,16,56,48,39,192, - 32,0,32,0,32,0,32,0,252,0,12,20,40,15,1,251, - 25,128,25,128,0,0,0,0,240,240,64,32,64,32,32,64, - 32,64,32,128,16,128,17,0,9,0,10,0,6,0,4,0, - 4,0,8,0,8,0,254,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18r[2862] U8G_FONT_SECTION("u8g_font_courR18r") = { - 0,23,32,251,248,14,3,161,7,151,32,127,251,17,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=28 x= 9 y=17 dx=20 dy= 0 ascent=26 len=81 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =26 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24[8729] U8G_FONT_SECTION("u8g_font_courR24") = { - 0,28,42,250,246,19,4,184,10,129,32,255,250,26,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,20,20, - 20,7,250,112,248,112,0,0,0,0,32,32,32,32,32,32, - 32,112,112,112,112,112,32,11,20,40,20,4,0,4,0,4, - 0,4,0,4,0,31,128,48,224,96,32,192,32,128,0,128, - 0,128,0,128,0,192,0,96,32,48,224,31,128,4,0,4, - 0,4,0,4,0,14,19,38,20,2,0,3,224,12,48,8, - 24,24,0,16,0,16,0,16,0,24,0,8,0,255,128,8, - 0,8,0,8,0,8,0,8,0,24,0,16,4,48,12,127, - 248,13,13,26,20,3,3,192,24,111,176,56,224,32,32,96, - 48,64,16,64,16,64,16,96,48,32,32,56,224,111,176,192, - 24,15,19,38,20,2,0,248,62,96,12,48,24,16,16,24, - 48,8,32,12,96,6,192,2,128,3,128,63,248,1,0,1, - 0,63,248,1,0,1,0,1,0,1,0,31,240,1,25,25, - 20,9,252,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,128,128,128,128,128,128,128,128,128,128,14,23,46,20, - 3,254,7,248,28,8,16,8,16,8,16,0,24,0,124,0, - 198,0,131,0,129,192,192,96,112,56,24,12,12,4,7,4, - 1,132,0,252,0,96,0,32,64,32,64,32,64,224,127,128, - 10,3,6,20,5,17,97,128,243,192,97,128,19,19,57,20, - 0,0,1,240,0,7,28,0,28,7,0,48,1,128,33,232, - 128,99,24,192,70,8,64,204,8,96,136,0,32,136,0,32, - 136,0,32,140,0,32,198,12,96,67,24,64,97,240,192,48, - 1,128,24,3,0,15,30,0,1,240,0,9,12,24,20,5, - 7,60,0,102,0,2,0,2,0,126,0,198,0,130,0,206, - 0,123,128,0,0,0,0,255,128,16,14,28,20,2,0,1, - 131,3,6,6,12,12,24,24,48,48,96,96,192,225,192,96, - 192,48,96,24,48,12,24,6,12,3,6,14,6,12,20,3, - 6,255,252,0,4,0,4,0,4,0,4,0,4,15,1,2, - 20,2,9,255,254,19,19,57,20,0,0,3,248,0,14,14, - 0,24,3,0,48,1,128,103,224,192,66,48,64,194,24,96, - 130,8,32,130,8,32,130,24,32,130,48,32,131,224,32,194, - 48,96,66,24,64,103,12,192,48,1,128,24,3,0,14,14, - 0,3,248,0,9,2,4,20,5,17,255,128,255,128,9,10, - 20,20,5,11,62,0,99,0,65,0,193,128,128,128,128,128, - 193,128,65,0,99,0,62,0,15,16,32,20,2,1,1,0, - 1,0,1,0,1,0,1,0,1,0,255,254,1,0,1,0, - 1,0,1,0,1,0,1,0,0,0,0,0,255,254,8,14, - 14,20,5,7,60,102,67,193,3,2,6,12,24,16,48,96, - 193,255,8,14,14,20,6,7,60,102,195,1,1,6,28,6, - 3,1,1,195,102,60,6,5,5,20,9,17,12,24,48,96, - 192,16,20,40,20,1,250,240,60,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,24,12,24,28,28, - 52,23,231,16,0,16,0,16,0,16,0,16,0,16,0,15, - 23,46,20,2,254,15,254,57,16,113,16,97,16,225,16,193, - 16,193,16,225,16,97,16,113,16,61,16,15,16,1,16,1, - 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, - 16,31,190,5,4,4,20,7,7,112,248,248,112,5,5,5, - 20,7,251,32,32,48,152,240,7,14,14,20,6,7,112,208, - 16,16,16,16,16,16,16,16,16,16,16,254,9,12,24,20, - 5,7,28,0,119,0,65,0,193,128,128,128,193,128,65,0, - 119,0,28,0,0,0,0,0,255,128,16,14,28,20,2,0, - 193,128,96,192,48,96,24,48,12,24,6,12,3,6,3,135, - 3,6,6,12,12,24,24,48,48,96,96,192,18,21,63,20, - 1,0,48,0,192,240,0,128,16,1,128,16,3,0,16,2, - 0,16,6,0,16,12,0,16,8,0,16,24,0,16,48,0, - 16,35,0,16,103,0,254,197,0,0,141,0,1,153,0,3, - 17,0,2,49,0,6,63,128,12,1,0,8,1,0,24,7, - 128,18,21,63,20,1,0,48,0,128,240,1,128,16,3,0, - 16,6,0,16,4,0,16,12,0,16,24,0,16,16,0,16, - 48,0,16,96,0,16,71,128,16,204,192,253,152,64,3,0, - 192,2,0,128,6,1,128,12,7,0,8,12,0,24,24,0, - 48,48,0,96,63,192,19,21,63,20,0,0,60,0,0,102, - 0,96,3,0,192,3,1,128,6,3,0,28,6,0,6,12, - 0,3,8,0,1,24,0,1,48,0,195,33,128,102,99,128, - 60,194,128,1,134,128,1,12,128,3,8,128,6,24,128,12, - 31,192,24,0,128,48,0,128,0,3,192,11,20,40,20,4, - 250,14,0,31,0,14,0,0,0,0,0,0,0,0,0,4, - 0,4,0,12,0,24,0,112,0,64,0,192,0,128,0,128, - 0,192,32,96,32,49,224,31,0,19,26,78,20,0,0,6, - 0,0,3,0,0,1,128,0,0,192,0,0,96,0,0,0, - 0,0,0,0,31,224,0,0,160,0,1,176,0,1,16,0, - 1,16,0,3,24,0,2,8,0,2,8,0,6,12,0,4, - 4,0,4,4,0,12,6,0,15,254,0,8,2,0,24,3, - 0,16,1,0,16,1,0,48,1,128,254,15,224,19,26,78, - 20,0,0,0,12,0,0,24,0,0,48,0,0,96,0,0, - 192,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,64,0,0,224,0,1,176,0, - 3,24,0,6,12,0,0,0,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,19,24,72,20,0,0,3,132,0,6,236, - 0,4,56,0,0,0,0,0,0,0,31,224,0,0,160,0, - 1,176,0,1,16,0,1,16,0,3,24,0,2,8,0,2, - 8,0,6,12,0,4,4,0,4,4,0,12,6,0,15,254, - 0,8,2,0,24,3,0,16,1,0,16,1,0,48,1,128, - 254,15,224,19,24,72,20,0,0,6,12,0,15,30,0,6, - 12,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,224,0,1,176,0,1,16,0, - 1,16,0,1,176,0,0,224,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,18,19,57,20,1,0,31,255,128,2,64, - 128,2,64,128,6,64,128,4,64,128,4,64,128,4,64,0, - 12,68,0,8,68,0,8,124,0,8,68,0,24,68,0,31, - 192,0,16,64,0,48,64,64,32,64,64,32,64,64,32,64, - 64,251,255,192,15,24,48,20,2,251,7,196,28,116,48,12, - 96,12,64,4,192,4,128,0,128,0,128,0,128,0,128,0, - 128,0,128,0,192,0,64,2,96,4,48,28,28,112,7,192, - 1,0,1,0,1,128,4,192,7,128,15,26,52,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,255,252, - 16,4,16,4,16,4,16,4,16,4,16,64,16,64,16,64, - 31,192,16,64,16,64,16,0,16,2,16,2,16,2,16,2, - 16,2,255,254,15,26,52,20,1,0,0,48,0,96,0,192, - 1,128,3,0,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,15,26, - 52,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,255,252,16,4,16,4,16,4,16,4,16,4,16,64, - 16,64,16,64,31,192,16,64,16,64,16,0,16,2,16,2, - 16,2,16,2,16,2,255,254,15,24,48,20,1,0,12,48, - 30,120,12,48,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,11,26, - 52,20,4,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,255,224,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,255,224,11,26,52,20,4,0,0,192, - 1,128,3,0,6,0,12,0,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,11,26,52,20,4,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,255,224,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,255,224,11,24,48,20, - 4,0,96,192,241,224,96,192,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,15,19,38,20,1,0,255,192,32,112,32,24,32,12, - 32,4,32,6,32,2,32,2,32,2,254,2,32,2,32,2, - 32,2,32,6,32,4,32,12,32,24,32,112,255,192,18,24, - 72,20,0,0,3,132,0,6,236,0,4,56,0,0,0,0, - 0,0,0,248,31,192,28,1,0,20,1,0,22,1,0,18, - 1,0,19,1,0,17,129,0,16,129,0,16,193,0,16,65, - 0,16,97,0,16,33,0,16,49,0,16,25,0,16,9,0, - 16,13,0,16,5,0,16,7,0,127,3,0,15,26,52,20, - 2,0,24,0,12,0,6,0,3,0,1,128,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,15,26,52,20,2,0,0,24,0,48, - 0,96,0,192,1,128,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,26,52,20,2,0,1,0,3,128,6,192,12,96,24,48, - 0,0,0,0,7,192,28,112,48,24,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,32,8,48,24,28,112,7,192,15,24,48,20,2,0, - 14,16,27,176,16,224,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,24,48,20,2,0,48,48,120,120,48,48,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,13,14,28,20,3,1,128,8,192,24, - 96,48,48,96,24,192,13,128,7,0,7,0,13,128,24,192, - 48,96,96,48,192,24,128,8,16,21,42,20,2,255,0,1, - 7,195,28,118,48,28,32,24,96,60,64,36,192,102,128,194, - 129,130,129,2,131,2,134,2,204,6,72,4,120,12,48,8, - 48,24,124,48,199,224,128,0,17,26,78,20,1,0,6,0, - 0,3,0,0,1,128,0,0,192,0,0,96,0,0,0,0, - 0,0,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,17,26,78,20, - 1,0,0,24,0,0,48,0,0,96,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,48,6,0,16,4,0,24,12,0,14,56,0,3,224,0, - 17,26,78,20,1,0,0,128,0,1,192,0,3,96,0,6, - 48,0,12,24,0,0,0,0,0,0,0,254,63,128,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,48,6,0,16,4,0,24,12,0,14,56, - 0,3,224,0,17,24,72,20,1,0,12,24,0,30,60,0, - 12,24,0,0,0,0,0,0,0,254,63,128,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,48,6,0,16,4,0,24,12,0,14,56,0,3, - 224,0,15,26,52,20,2,0,0,48,0,96,0,192,1,128, - 3,0,0,0,0,0,248,62,96,12,48,24,16,16,24,48, - 8,32,12,96,6,192,2,128,3,128,1,0,1,0,1,0, - 1,0,1,0,1,0,1,0,1,0,31,240,16,19,38,20, - 1,0,254,0,16,0,16,0,16,0,31,224,16,60,16,6, - 16,2,16,3,16,3,16,2,16,6,16,60,31,224,16,0, - 16,0,16,0,16,0,254,0,15,21,42,20,1,0,7,192, - 12,96,8,32,24,48,16,16,16,16,16,16,16,48,16,96, - 17,192,16,112,16,24,16,4,16,6,16,2,16,2,16,2, - 17,6,17,4,17,140,248,248,15,22,44,20,2,0,24,0, - 12,0,6,0,3,0,1,128,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,22,44,20,2,0, - 0,96,0,192,1,128,3,0,6,0,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,22,44,20, - 2,0,1,0,3,128,6,192,12,96,24,48,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,20,40,20, - 2,0,48,192,121,224,48,192,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,23,46,20,2,0, - 7,0,13,128,8,128,8,128,13,128,7,0,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,19,14, - 42,20,0,0,31,15,128,113,152,192,0,240,64,0,96,96, - 0,96,32,30,64,32,115,255,224,192,192,0,128,64,0,128, - 96,0,128,224,0,193,80,96,99,88,192,62,79,128,14,19, - 38,20,3,251,15,200,56,104,96,24,64,24,192,8,128,8, - 128,0,128,0,128,0,192,0,64,4,96,28,56,112,15,192, - 2,0,2,0,3,0,9,128,15,0,14,22,44,20,2,0, - 24,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0, - 15,192,56,112,96,24,64,8,192,12,128,4,255,252,128,0, - 128,0,128,0,192,0,96,12,56,56,15,224,14,22,44,20, - 2,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,14,22, - 44,20,2,0,1,0,3,128,6,192,12,96,24,48,0,0, - 0,0,0,0,15,192,56,112,96,24,64,8,192,12,128,4, - 255,252,128,0,128,0,128,0,192,0,96,12,56,56,15,224, - 14,20,40,20,2,0,48,96,120,240,48,96,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,13,22, - 44,20,3,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 13,22,44,20,3,0,0,192,1,128,3,0,6,0,12,0, - 0,0,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,21,42,20,3,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,20,40,20,3,0,97,128,243,192,97,128,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 15,20,40,20,2,0,124,12,79,56,1,224,3,192,14,96, - 56,48,32,24,0,12,15,228,56,54,96,14,192,6,128,2, - 128,2,128,2,192,6,64,4,96,12,24,56,15,224,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 227,192,46,112,56,16,48,24,32,8,32,8,32,8,32,8, - 32,8,32,8,32,8,32,8,32,8,248,62,15,22,44,20, - 2,0,12,0,6,0,3,0,1,128,0,192,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,15,22, - 44,20,2,0,0,48,0,96,0,192,1,128,3,0,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,22,44,20,2,0,1,128,3,192,6,96,12,48,24,24, - 0,0,0,0,0,0,15,224,56,56,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,56,56, - 15,224,15,20,40,20,2,0,14,16,27,176,16,224,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,20,40,20,2,0,24,96,60,240,24,96,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,14,16, - 32,20,2,1,3,0,7,128,3,0,0,0,0,0,0,0, - 0,0,0,0,255,252,0,0,0,0,0,0,0,0,3,0, - 7,128,3,0,15,16,32,20,2,255,0,2,7,230,28,60, - 48,24,64,52,192,102,128,194,129,130,131,2,134,2,204,6, - 88,4,112,24,120,112,207,192,128,0,16,22,44,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,16,22,44,20, - 1,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,21, - 42,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,20, - 40,20,1,0,24,48,60,120,24,48,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,15,28,56,20, - 2,250,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,248,62,64,4,96,12,32,8,48,24,16,16,24,48, - 8,32,12,96,4,64,6,192,2,128,3,128,1,0,3,0, - 2,0,2,0,6,0,4,0,127,128,17,27,81,20,0,250, - 240,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,17,248,0,23,14,0,28,3,0,24,1, - 0,24,1,128,16,0,128,16,0,128,16,0,128,16,0,128, - 24,1,128,24,1,0,28,3,0,23,14,0,17,248,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,255,0, - 0,15,25,50,20,2,250,24,24,60,60,24,24,0,0,0, - 0,248,62,64,4,96,12,32,8,48,24,16,16,24,48,8, - 32,12,96,4,64,6,192,2,128,3,128,1,0,3,0,2, - 0,2,0,6,0,4,0,127,128}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=15 h=25 x= 7 y= 9 dx=20 dy= 0 ascent=22 len=50 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =22 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24n[658] U8G_FONT_SECTION("u8g_font_courR24n") = { - 0,28,42,250,246,20,0,0,0,0,42,58,0,22,252,20, - 0,11,13,26,20,4,8,4,0,4,0,4,0,4,0,132, - 32,245,224,31,0,14,0,10,0,27,0,49,128,32,128,96, - 192,15,17,34,20,2,1,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,255,254,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,6,9,9,20,5,252,60, - 60,120,120,96,224,192,192,128,15,1,2,20,2,9,255,254, - 5,4,4,20,7,0,112,248,248,112,11,25,50,20,4,253, - 0,32,0,96,0,64,0,64,0,192,0,128,1,128,1,0, - 3,0,2,0,2,0,6,0,4,0,12,0,8,0,8,0, - 24,0,16,0,48,0,32,0,96,0,64,0,64,0,192,0, - 128,0,11,20,40,20,4,0,31,0,49,128,96,192,64,64, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,192,96,64,64,64,64,96,192,49,128,31,0, - 11,20,40,20,4,0,12,0,60,0,228,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,255,224,13,20, - 40,20,3,0,15,192,48,96,96,16,64,16,64,16,0,16, - 0,48,0,32,0,96,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,0,192,0,128,8,255,248,13,20,40,20, - 3,0,15,128,56,224,96,48,0,16,0,16,0,16,0,16, - 0,32,0,64,7,128,0,96,0,16,0,8,0,8,0,8, - 0,8,0,24,192,48,112,224,31,128,13,20,40,20,3,0, - 0,192,1,64,1,64,2,64,6,64,4,64,8,64,24,64, - 16,64,32,64,96,64,64,64,128,64,255,248,0,64,0,64, - 0,64,0,64,0,64,3,248,13,20,40,20,3,0,63,240, - 32,0,32,0,32,0,32,0,32,0,32,0,39,128,60,224, - 32,48,0,16,0,24,0,8,0,8,0,8,0,24,192,16, - 96,48,56,224,15,128,12,20,40,20,4,0,7,192,28,32, - 48,0,32,0,96,0,64,0,192,0,143,128,184,224,160,32, - 192,48,192,16,192,16,192,16,192,16,64,16,96,48,32,32, - 56,224,15,128,11,20,40,20,4,0,255,224,128,32,128,32, - 0,96,0,64,0,64,0,192,0,128,0,128,1,128,1,0, - 1,0,3,0,2,0,2,0,2,0,6,0,4,0,4,0, - 4,0,11,20,40,20,4,0,31,0,96,192,64,64,192,96, - 128,32,128,32,192,96,64,64,49,128,31,0,113,192,64,64, - 192,96,128,32,128,32,128,32,192,96,64,64,113,192,31,0, - 12,20,40,20,4,0,31,0,112,192,64,96,192,32,128,48, - 128,48,128,48,128,48,192,80,64,208,115,144,30,16,0,32, - 0,32,0,32,0,64,0,192,1,128,14,0,120,0,5,14, - 14,20,7,0,112,248,248,112,0,0,0,0,0,0,112,248, - 248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=26 x= 9 y=17 dx=20 dy= 0 ascent=22 len=60 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24r[3991] U8G_FONT_SECTION("u8g_font_courR24r") = { - 0,28,42,250,246,19,4,184,10,129,32,127,250,22,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 3, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 7 y= 6 dx=19 dy= 0 ascent=17 len=34 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =17 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[3981] U8G_FONT_SECTION("u8g_font_cu12_67_75") = { - 0,40,30,247,246,3,2,98,5,14,32,255,1,17,254,12, - 0,11,5,10,12,1,4,2,128,1,64,255,224,1,64,2, - 128,5,11,11,6,1,1,32,32,32,32,32,32,168,112,168, - 112,32,11,5,10,12,1,4,32,96,65,128,255,0,65,128, - 32,96,11,5,10,12,1,4,192,128,48,64,31,224,48,64, - 192,128,11,7,14,12,1,3,0,32,32,32,64,32,255,224, - 64,32,32,32,0,32,7,11,11,8,1,1,16,56,84,16, - 16,16,16,16,16,16,254,11,7,14,12,1,3,128,0,128, - 128,128,64,255,224,128,64,128,128,128,0,7,11,11,8,1, - 1,254,16,16,16,16,16,16,16,84,56,16,7,11,11,8, - 1,1,16,56,84,16,16,16,16,16,84,56,254,11,7,14, - 12,1,4,1,192,0,32,32,32,64,32,255,192,64,0,32, - 0,11,7,14,12,1,4,112,0,128,0,128,128,128,64,127, - 224,0,64,0,128,11,7,14,12,1,4,1,192,2,32,34, - 32,66,32,255,192,66,0,34,0,11,7,14,12,1,4,112, - 0,136,0,136,128,136,64,127,224,8,64,8,128,12,5,10, - 13,1,4,38,64,73,32,233,112,80,160,32,64,12,5,10, - 13,1,4,33,64,66,32,255,240,68,32,40,64,4,11,11, - 5,1,1,16,16,32,64,176,208,32,160,160,192,240,6,11, - 11,7,1,1,32,64,252,68,36,4,4,4,4,4,4,6, - 11,11,7,1,1,16,8,252,136,144,128,128,128,128,128,128, - 6,11,11,7,1,1,4,4,4,4,4,4,36,68,252,64, - 32,6,11,11,7,1,1,128,128,128,128,128,128,144,136,252, - 8,16,8,6,6,9,1,2,252,4,4,21,14,4,6,8, - 8,7,1,1,4,4,4,36,68,252,64,32,11,8,16,11, - 1,1,15,128,16,64,32,32,32,32,32,32,168,32,112,0, - 32,0,11,8,16,11,1,1,62,0,65,0,128,128,128,128, - 128,128,130,160,1,192,0,128,9,11,22,10,1,1,255,128, - 0,0,240,0,192,0,160,0,144,0,8,0,4,0,2,0, - 1,0,0,128,12,13,26,13,1,0,128,0,144,0,160,0, - 255,240,160,0,144,0,128,16,0,144,0,80,255,240,0,80, - 0,144,0,16,10,7,14,11,1,2,3,192,67,0,130,128, - 130,128,128,128,65,0,62,0,10,7,14,11,1,2,240,0, - 48,128,80,64,80,64,64,64,32,128,31,0,11,3,6,12, - 1,6,32,0,64,0,255,224,11,3,6,12,1,6,255,224, - 64,0,32,0,3,11,11,4,1,1,128,192,160,128,128,128, - 128,128,128,128,128,3,11,11,4,1,1,32,96,160,32,32, - 32,32,32,32,32,32,11,3,6,12,1,6,0,128,0,64, - 255,224,11,3,6,12,1,6,255,224,0,64,0,128,3,11, - 11,4,1,1,128,128,128,128,128,128,128,128,160,192,128,3, - 11,11,4,1,1,32,32,32,32,32,32,32,32,160,96,32, - 11,11,22,12,1,1,0,128,0,64,255,224,0,64,0,128, - 0,0,32,0,64,0,255,224,64,0,32,0,11,11,22,12, - 1,1,32,128,112,128,168,128,32,128,32,128,32,128,32,128, - 32,128,34,160,33,192,32,128,11,11,22,12,1,1,32,0, - 64,0,255,224,64,0,32,0,0,0,0,128,0,64,255,224, - 0,64,0,128,11,11,22,12,1,1,32,0,64,0,255,224, - 64,0,32,0,0,0,32,0,64,0,255,224,64,0,32,0, - 11,11,22,12,1,1,32,128,113,192,170,160,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,11,11,22,12, - 1,1,0,128,0,64,255,224,0,64,0,128,0,0,0,128, - 0,64,255,224,0,64,0,128,11,11,22,12,1,1,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,170,160, - 113,192,32,128,11,8,16,12,1,3,32,0,64,0,255,224, - 0,0,0,0,255,224,0,64,0,128,11,8,16,12,1,3, - 0,128,0,64,255,224,0,0,0,0,255,224,64,0,32,0, - 11,7,14,12,1,3,16,128,32,128,127,224,129,0,127,224, - 34,0,18,0,13,7,14,14,1,3,17,64,33,32,127,240, - 130,8,127,240,36,32,20,64,11,7,14,12,1,3,9,0, - 8,128,255,192,16,32,255,192,32,128,33,0,11,7,14,12, - 1,3,16,0,32,0,127,224,128,0,127,224,32,0,16,0, - 7,11,11,8,1,1,16,40,108,170,40,40,40,40,40,40, - 40,11,7,14,12,1,3,1,0,0,128,255,192,0,32,255, - 192,0,128,1,0,7,11,11,8,1,1,40,40,40,40,40, - 40,40,170,108,40,16,12,7,14,12,1,3,16,128,32,64, - 127,224,128,16,127,224,32,64,16,128,7,12,12,8,1,0, - 16,40,108,170,40,40,40,40,170,108,40,16,10,10,20,11, - 1,1,248,0,144,0,136,0,196,0,162,0,17,0,8,128, - 4,64,2,0,1,0,10,10,20,11,1,1,7,192,2,64, - 4,64,8,192,17,64,34,0,68,0,136,0,16,0,32,0, - 10,10,20,11,1,1,32,0,16,0,136,0,68,0,34,0, - 17,64,8,192,4,64,2,64,7,192,10,10,20,11,1,1, - 1,0,2,0,4,64,8,128,17,0,162,0,196,0,136,0, - 144,0,248,0,11,7,14,12,1,3,16,0,63,224,64,0, - 255,224,64,0,63,224,16,0,11,7,14,12,1,3,1,0, - 255,128,0,64,255,224,0,64,255,128,1,0,12,5,10,13, - 1,4,32,0,72,128,245,80,66,32,32,0,12,5,10,13, - 1,4,0,64,17,32,170,240,68,32,0,64,5,11,11,6, - 1,1,32,112,168,32,32,248,32,248,32,32,32,5,11,11, - 6,1,1,32,32,32,248,32,248,32,32,168,112,32,11,5, - 10,12,1,4,32,0,64,0,238,224,64,0,32,0,5,11, - 11,6,1,1,32,112,168,0,32,32,32,0,32,32,32,11, - 5,10,12,1,4,0,128,0,64,238,224,0,64,0,128,5, - 11,11,6,1,1,32,32,32,0,32,32,32,0,168,112,32, - 12,7,14,13,1,3,128,0,144,0,160,0,255,240,160,0, - 144,0,128,0,12,7,14,13,1,3,0,16,0,144,0,80, - 255,240,0,80,0,144,0,16,12,9,18,13,1,2,8,0, - 24,0,47,240,64,16,128,16,64,16,47,240,24,0,8,0, - 9,12,24,10,1,1,8,0,20,0,34,0,65,0,227,128, - 34,0,34,0,34,0,34,0,34,0,34,0,62,0,12,9, - 18,13,1,2,1,0,1,128,255,64,128,32,128,16,128,32, - 255,64,1,128,1,0,9,12,24,10,1,1,62,0,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,9,17,34,10,1,0,8,0,20,0,34,0, - 65,0,227,128,34,0,34,0,34,0,34,0,34,0,34,0, - 62,0,0,0,62,0,34,0,34,0,62,0,9,14,28,10, - 1,0,8,0,20,0,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,9,14, - 28,10,1,0,8,0,20,0,62,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,128,128,255,128, - 9,14,28,10,1,0,8,0,28,0,42,0,73,0,235,128, - 42,0,42,0,42,0,42,0,42,0,42,0,235,128,136,128, - 255,128,9,15,30,10,1,2,8,0,20,0,34,0,73,0, - 213,128,34,0,65,0,227,128,34,0,34,0,34,0,34,0, - 34,0,34,0,62,0,9,17,34,10,1,0,8,0,20,0, - 34,0,73,0,213,128,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,14,9, - 18,16,2,2,224,64,160,96,191,208,128,24,128,20,128,24, - 191,208,160,96,224,64,11,11,22,12,1,1,255,224,128,0, - 188,0,176,0,168,0,164,0,130,0,129,0,128,128,128,64, - 128,32,11,11,22,12,1,1,128,32,64,32,32,32,16,32, - 8,32,4,160,2,160,1,160,7,160,0,32,255,224,9,16, - 32,10,1,0,8,0,20,0,34,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 11,11,22,14,2,1,255,224,255,224,255,224,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,11,11,22,14, - 2,1,255,224,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,128,32,255,224,11,11,22,14,2,1,63,128, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 64,64,63,128,11,11,22,14,2,1,255,224,128,32,191,160, - 191,160,191,160,191,160,191,160,191,160,191,160,128,32,255,224, - 11,11,22,14,2,1,255,224,128,32,255,224,128,32,255,224, - 128,32,255,224,128,32,255,224,128,32,255,224,11,11,22,14, - 2,1,255,224,170,160,170,160,170,160,170,160,170,160,170,160, - 170,160,170,160,170,160,255,224,11,11,22,14,2,1,255,224, - 170,160,255,224,170,160,255,224,170,160,255,224,170,160,255,224, - 170,160,255,224,11,11,22,14,2,1,255,224,201,32,164,160, - 146,96,201,32,164,160,146,96,201,32,164,160,146,96,255,224, - 11,11,22,14,2,1,255,224,146,96,164,160,201,32,146,96, - 164,160,201,32,146,96,164,160,201,32,255,224,11,11,22,14, - 2,1,255,224,213,96,170,160,213,96,170,160,213,96,170,160, - 213,96,170,160,213,96,255,224,7,7,7,12,3,3,254,254, - 254,254,254,254,254,7,7,7,12,3,3,254,130,130,130,130, - 130,254,13,6,12,16,2,3,255,248,255,248,255,248,255,248, - 255,248,255,248,13,6,12,16,2,3,255,248,128,8,128,8, - 128,8,128,8,255,248,6,13,13,9,2,254,252,252,252,252, - 252,252,252,252,252,252,252,252,252,6,13,13,9,2,254,252, - 132,132,132,132,132,132,132,132,132,132,132,252,16,6,12,19, - 2,3,31,255,63,254,63,254,127,252,127,252,255,248,16,6, - 12,19,2,3,31,255,32,2,32,2,64,4,64,4,255,248, - 11,12,24,14,2,1,4,0,4,0,14,0,14,0,31,0, - 31,0,63,128,63,128,127,192,127,192,255,224,255,224,11,12, - 24,14,2,1,4,0,4,0,10,0,10,0,17,0,17,0, - 32,128,32,128,64,64,64,64,128,32,255,224,7,8,8,12, - 3,1,16,16,56,56,124,124,254,254,7,8,8,12,3,1, - 16,16,40,40,68,68,130,254,12,11,22,15,2,1,192,0, - 240,0,252,0,255,0,255,192,255,240,255,192,255,0,252,0, - 240,0,192,0,12,11,22,15,2,1,192,0,176,0,140,0, - 131,0,128,192,128,48,128,192,131,0,140,0,176,0,192,0, - 8,7,7,13,3,1,192,240,252,255,252,240,192,8,7,7, - 13,3,1,192,176,140,131,140,176,192,12,7,14,15,2,1, - 192,0,252,0,255,192,255,240,255,192,252,0,192,0,12,7, - 14,15,2,1,192,0,188,0,131,192,128,48,131,192,188,0, - 192,0,11,12,24,14,2,1,255,224,255,224,127,192,127,192, - 63,128,63,128,31,0,31,0,14,0,14,0,4,0,4,0, - 11,12,24,14,2,1,255,224,128,32,64,64,64,64,32,128, - 32,128,17,0,17,0,10,0,10,0,4,0,4,0,7,8, - 8,12,3,1,254,254,124,124,56,56,16,16,7,8,8,12, - 3,1,254,130,68,68,40,40,16,16,12,11,22,15,2,1, - 0,48,0,240,3,240,15,240,63,240,255,240,63,240,15,240, - 3,240,0,240,0,48,12,11,22,15,2,1,0,48,0,208, - 3,16,12,16,48,16,192,16,48,16,12,16,3,16,0,208, - 0,48,8,7,7,13,3,1,3,15,63,255,63,15,3,8, - 7,7,13,3,1,3,13,49,193,49,13,3,12,7,14,15, - 2,1,0,48,3,240,63,240,255,240,63,240,3,240,0,48, - 12,7,14,15,2,1,0,48,3,208,60,16,192,16,60,16, - 3,208,0,48,11,11,22,14,2,1,4,0,14,0,31,0, - 63,128,127,192,255,224,127,192,63,128,31,0,14,0,4,0, - 11,11,22,14,2,1,4,0,10,0,17,0,32,128,64,64, - 128,32,64,64,32,128,17,0,10,0,4,0,11,11,22,14, - 2,1,4,0,10,0,17,0,36,128,78,64,159,32,78,64, - 36,128,17,0,10,0,4,0,11,11,22,14,2,1,31,0, - 96,192,64,64,142,32,159,32,159,32,159,32,142,32,64,64, - 96,192,31,0,7,12,12,8,1,0,16,40,40,68,68,130, - 130,68,68,40,40,16,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,128,32,128,32,64,64,96,192, - 31,0,11,11,22,14,2,1,14,0,32,128,64,64,0,0, - 128,32,128,32,128,32,0,0,64,64,32,128,14,0,11,11, - 22,14,2,1,31,0,106,192,106,192,170,160,170,160,170,160, - 170,160,170,160,106,192,106,192,31,0,11,11,22,14,2,1, - 31,0,96,192,64,64,142,32,145,32,145,32,145,32,142,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,127,192, - 127,192,255,224,255,224,255,224,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,120,192,120,64,248,32, - 248,32,248,32,248,32,248,32,120,64,120,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 131,224,131,224,67,192,99,192,31,0,11,11,22,14,2,1, - 31,0,127,192,127,192,255,224,255,224,128,32,128,32,128,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,103,192,71,192,135,224, - 135,224,135,224,128,32,128,32,64,64,96,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 255,224,255,224,127,192,127,192,31,0,6,11,11,8,2,1, - 28,124,124,252,252,252,252,252,124,124,28,6,11,11,9,2, - 1,224,248,248,252,252,252,252,252,248,248,224,7,12,12,10, - 2,1,254,254,254,254,254,198,130,130,130,198,254,254,13,13, - 26,16,2,0,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,191,232,191,232,223,216,207,152,240,120,255,248,13,7, - 14,16,2,6,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,13,7,14,16,2,0,191,232,191,232,191,232,223,216, - 207,152,240,120,255,248,6,6,6,8,2,6,28,96,64,128, - 128,128,6,6,6,13,7,6,224,24,8,4,4,4,6,6, - 6,13,7,1,4,4,4,8,24,224,6,6,6,8,2,1, - 128,128,128,64,96,28,11,6,12,14,2,6,31,0,96,192, - 64,64,128,32,128,32,128,32,11,6,12,14,2,1,128,32, - 128,32,128,32,64,64,96,192,31,0,12,12,24,15,2,1, - 0,16,0,48,0,112,0,240,1,240,3,240,7,240,15,240, - 31,240,63,240,127,240,255,240,12,12,24,15,2,1,128,0, - 192,0,224,0,240,0,248,0,252,0,254,0,255,0,255,128, - 255,192,255,224,255,240,12,12,24,15,2,1,255,240,255,224, - 255,192,255,128,255,0,254,0,252,0,248,0,240,0,224,0, - 192,0,128,0,12,12,24,15,2,1,255,240,127,240,63,240, - 31,240,15,240,7,240,3,240,1,240,0,240,0,112,0,48, - 0,16,7,7,7,8,1,2,56,68,130,130,130,68,56,11, - 11,22,14,2,1,255,224,248,32,248,32,248,32,248,32,248, - 32,248,32,248,32,248,32,248,32,255,224,11,11,22,14,2, - 1,255,224,131,224,131,224,131,224,131,224,131,224,131,224,131, - 224,131,224,131,224,255,224,11,11,22,14,2,1,255,224,255, - 224,255,160,255,32,254,32,252,32,248,32,240,32,224,32,192, - 32,255,224,11,11,22,14,2,1,255,224,128,96,128,224,129, - 224,131,224,135,224,143,224,159,224,191,224,255,224,255,224,11, - 11,22,14,2,1,255,224,132,32,132,32,132,32,132,32,132, - 32,132,32,132,32,132,32,132,32,255,224,11,12,24,14,2, - 1,4,0,4,0,10,0,10,0,17,0,17,0,32,128,36, - 128,78,64,68,64,128,32,255,224,11,12,24,14,2,1,4, - 0,4,0,14,0,14,0,29,0,29,0,60,128,60,128,124, - 64,124,64,252,32,255,224,11,12,24,14,2,1,4,0,4, - 0,14,0,14,0,23,0,23,0,39,128,39,128,71,192,71, - 192,135,224,255,224,13,13,26,16,2,0,31,192,32,32,64, - 16,128,8,128,8,128,8,128,8,128,8,128,8,128,8,64, - 16,32,32,31,192,11,11,22,14,2,1,255,224,132,32,132, - 32,132,32,132,32,252,32,128,32,128,32,128,32,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,128,32,128,32,128, - 32,252,32,132,32,132,32,132,32,132,32,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,135,224,132, - 32,132,32,132,32,132,32,255,224,11,11,22,14,2,1,255, - 224,132,32,132,32,132,32,132,32,135,224,128,32,128,32,128, - 32,128,32,255,224,11,11,22,14,2,1,31,0,100,192,68, - 64,132,32,132,32,252,32,128,32,128,32,64,64,96,192,31, - 0,11,11,22,14,2,1,31,0,96,192,64,64,128,32,128, - 32,252,32,132,32,132,32,68,64,100,192,31,0,11,11,22, - 14,2,1,31,0,96,192,64,64,128,32,128,32,135,224,132, - 32,132,32,68,64,100,192,31,0,11,11,22,14,2,1,31, - 0,100,192,68,64,132,32,132,32,135,224,128,32,128,32,64, - 64,96,192,31,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 6 - Calculated Max Values w=16 h=13 x= 3 y= 3 dx=19 dy= 0 ascent=13 len=24 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_75r[1123] U8G_FONT_SECTION("u8g_font_cu12_75r") = { - 0,40,30,247,246,11,2,247,0,0,32,79,0,13,254,12, - 0,11,11,22,14,2,1,255,224,255,224,255,224,255,224,255, - 224,255,224,255,224,255,224,255,224,255,224,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,32,255,224,11,11,22,14,2,1,63, - 128,64,64,128,32,128,32,128,32,128,32,128,32,128,32,128, - 32,64,64,63,128,11,11,22,14,2,1,255,224,128,32,191, - 160,191,160,191,160,191,160,191,160,191,160,191,160,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,255,224,128,32,255, - 224,128,32,255,224,128,32,255,224,128,32,255,224,11,11,22, - 14,2,1,255,224,170,160,170,160,170,160,170,160,170,160,170, - 160,170,160,170,160,170,160,255,224,11,11,22,14,2,1,255, - 224,170,160,255,224,170,160,255,224,170,160,255,224,170,160,255, - 224,170,160,255,224,11,11,22,14,2,1,255,224,201,32,164, - 160,146,96,201,32,164,160,146,96,201,32,164,160,146,96,255, - 224,11,11,22,14,2,1,255,224,146,96,164,160,201,32,146, - 96,164,160,201,32,146,96,164,160,201,32,255,224,11,11,22, - 14,2,1,255,224,213,96,170,160,213,96,170,160,213,96,170, - 160,213,96,170,160,213,96,255,224,7,7,7,12,3,3,254, - 254,254,254,254,254,254,7,7,7,12,3,3,254,130,130,130, - 130,130,254,13,6,12,16,2,3,255,248,255,248,255,248,255, - 248,255,248,255,248,13,6,12,16,2,3,255,248,128,8,128, - 8,128,8,128,8,255,248,6,13,13,9,2,254,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,9,2,254, - 252,132,132,132,132,132,132,132,132,132,132,132,252,16,6,12, - 19,2,3,31,255,63,254,63,254,127,252,127,252,255,248,16, - 6,12,19,2,3,31,255,32,2,32,2,64,4,64,4,255, - 248,11,12,24,14,2,1,4,0,4,0,14,0,14,0,31, - 0,31,0,63,128,63,128,127,192,127,192,255,224,255,224,11, - 12,24,14,2,1,4,0,4,0,10,0,10,0,17,0,17, - 0,32,128,32,128,64,64,64,64,128,32,255,224,7,8,8, - 12,3,1,16,16,56,56,124,124,254,254,7,8,8,12,3, - 1,16,16,40,40,68,68,130,254,12,11,22,15,2,1,192, - 0,240,0,252,0,255,0,255,192,255,240,255,192,255,0,252, - 0,240,0,192,0,12,11,22,15,2,1,192,0,176,0,140, - 0,131,0,128,192,128,48,128,192,131,0,140,0,176,0,192, - 0,8,7,7,13,3,1,192,240,252,255,252,240,192,8,7, - 7,13,3,1,192,176,140,131,140,176,192,12,7,14,15,2, - 1,192,0,252,0,255,192,255,240,255,192,252,0,192,0,12, - 7,14,15,2,1,192,0,188,0,131,192,128,48,131,192,188, - 0,192,0,11,12,24,14,2,1,255,224,255,224,127,192,127, - 192,63,128,63,128,31,0,31,0,14,0,14,0,4,0,4, - 0,11,12,24,14,2,1,255,224,128,32,64,64,64,64,32, - 128,32,128,17,0,17,0,10,0,10,0,4,0,4,0,7, - 8,8,12,3,1,254,254,124,124,56,56,16,16,7,8,8, - 12,3,1,254,130,68,68,40,40,16,16,12,11,22,15,2, - 1,0,48,0,240,3,240,15,240,63,240,255,240,63,240,15, - 240,3,240,0,240,0,48,12,11,22,15,2,1,0,48,0, - 208,3,16,12,16,48,16,192,16,48,16,12,16,3,16,0, - 208,0,48,8,7,7,13,3,1,3,15,63,255,63,15,3, - 8,7,7,13,3,1,3,13,49,193,49,13,3,12,7,14, - 15,2,1,0,48,3,240,63,240,255,240,63,240,3,240,0, - 48,12,7,14,15,2,1,0,48,3,208,60,16,192,16,60, - 16,3,208,0,48,11,11,22,14,2,1,4,0,14,0,31, - 0,63,128,127,192,255,224,127,192,63,128,31,0,14,0,4, - 0,11,11,22,14,2,1,4,0,10,0,17,0,32,128,64, - 64,128,32,64,64,32,128,17,0,10,0,4,0,11,11,22, - 14,2,1,4,0,10,0,17,0,36,128,78,64,159,32,78, - 64,36,128,17,0,10,0,4,0,11,11,22,14,2,1,31, - 0,96,192,64,64,142,32,159,32,159,32,159,32,142,32,64, - 64,96,192,31,0,7,12,12,8,1,0,16,40,40,68,68, - 130,130,68,68,40,40,16,11,11,22,14,2,1,31,0,96, - 192,64,64,128,32,128,32,128,32,128,32,128,32,64,64,96, - 192,31,0,11,11,22,14,2,1,14,0,32,128,64,64,0, - 0,128,32,128,32,128,32,0,0,64,64,32,128,14,0,11, - 11,22,14,2,1,31,0,106,192,106,192,170,160,170,160,170, - 160,170,160,170,160,106,192,106,192,31,0,11,11,22,14,2, - 1,31,0,96,192,64,64,142,32,145,32,145,32,145,32,142, - 32,64,64,96,192,31,0,11,11,22,14,2,1,31,0,127, - 192,127,192,255,224,255,224,255,224,255,224,255,224,127,192,127, - 192,31,0}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 3 y=11 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12[3993] U8G_FONT_SECTION("u8g_font_cu12") = { - 0,40,30,247,246,11,2,90,5,94,32,255,252,16,252,12, - 252,0,0,0,5,0,0,2,12,12,5,1,0,192,192,192, - 192,192,192,192,0,0,0,192,192,4,5,5,7,2,7,144, - 144,144,144,144,10,15,30,12,1,253,4,128,4,128,9,0, - 9,0,9,0,255,192,18,0,18,0,18,0,255,192,36,0, - 36,0,36,0,72,0,72,0,5,14,14,8,1,255,32,112, - 168,168,168,160,96,48,40,168,168,168,112,32,11,13,26,14, - 1,255,96,64,152,128,151,128,145,0,146,0,98,0,4,0, - 8,192,9,32,17,32,33,32,33,32,64,192,10,12,24,13, - 1,0,24,0,36,0,36,0,36,0,40,0,51,192,49,0, - 81,0,138,0,138,0,196,64,123,128,1,5,5,4,2,7, - 128,128,128,128,128,4,15,15,6,2,253,16,32,64,64,128, - 128,128,128,128,128,128,64,64,32,16,4,15,15,6,1,253, - 128,64,32,32,16,16,16,16,16,16,16,32,32,64,128,7, - 7,7,7,0,5,16,146,84,56,84,146,16,9,9,18,11, - 2,255,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,5,5,5,1,253,192,192,64,64,128,4, - 1,1,7,2,3,240,2,2,2,5,1,0,192,192,5,16, - 16,8,2,252,8,8,16,16,16,16,32,32,32,32,64,64, - 64,64,128,128,5,11,11,7,1,0,112,80,136,136,136,136, - 136,136,136,80,112,5,11,11,7,1,0,32,224,32,32,32, - 32,32,32,32,32,248,5,11,11,7,1,0,112,136,136,136, - 8,16,16,32,72,72,248,5,11,11,7,1,0,112,136,136, - 8,8,48,8,8,136,136,112,7,11,11,9,1,0,24,24, - 40,40,72,200,254,8,8,8,62,5,11,11,7,1,0,136, - 240,128,128,240,200,8,8,136,144,96,5,11,11,7,1,0, - 48,72,64,128,240,136,136,136,136,80,112,6,12,12,8,1, - 0,128,252,132,136,16,16,16,32,32,32,32,32,5,11,11, - 7,1,0,112,136,136,136,80,112,136,136,136,136,112,5,11, - 11,7,1,0,112,80,136,136,136,136,120,8,16,144,96,2, - 7,7,7,3,0,192,192,0,0,0,192,192,2,10,10,5, - 1,253,192,192,0,0,0,192,192,64,64,128,5,9,9,6, - 1,1,8,16,32,64,128,64,32,16,8,10,5,10,13,2, - 2,255,192,0,0,0,0,0,0,255,192,5,9,9,6,1, - 1,128,64,32,16,8,16,32,64,128,5,12,12,8,1,0, - 112,136,136,16,32,32,96,0,0,0,96,96,10,12,24,12, - 1,0,30,0,33,0,76,128,147,64,161,64,161,64,161,64, - 161,64,147,64,77,128,32,192,31,0,11,11,22,11,0,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,10,11,22,10,0,0,255,0,32,128, - 32,64,32,64,32,128,63,0,32,128,32,64,32,64,32,128, - 255,0,9,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,10,11, - 22,10,0,0,254,0,33,128,32,128,32,64,32,64,32,64, - 32,64,32,64,32,128,33,128,254,0,10,11,22,10,1,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,9,11,22,9,1,0,255,128,32,128, - 32,128,34,128,34,0,62,0,34,0,34,0,32,0,32,0, - 248,0,10,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,131,192,128,128,64,128,32,128,31,128,11,11, - 22,11,1,0,251,224,32,128,32,128,32,128,32,128,63,128, - 32,128,32,128,32,128,32,128,251,224,5,11,11,5,1,0, - 248,32,32,32,32,32,32,32,32,32,248,6,11,11,6,1, - 0,124,16,16,16,16,16,16,16,16,144,224,11,11,22,11, - 1,0,249,224,32,128,33,0,34,0,36,0,46,0,50,0, - 33,0,33,0,32,128,249,224,8,11,11,8,0,0,248,32, - 32,32,32,32,33,33,33,35,255,14,11,22,14,1,0,240, - 60,48,48,48,48,40,80,40,80,40,144,36,144,36,144,35, - 16,35,16,251,124,11,11,22,11,1,0,227,224,48,128,48, - 128,40,128,40,128,36,128,34,128,34,128,33,128,33,128,248, - 128,10,11,22,10,1,0,30,0,33,0,64,128,128,64,128, - 64,128,64,128,64,128,64,64,128,33,0,30,0,9,11,22, - 9,1,0,255,0,33,128,32,128,32,128,33,128,63,0,32, - 0,32,0,32,0,32,0,248,0,10,14,28,10,1,253,30, - 0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,92, - 128,51,0,30,0,2,0,2,64,1,128,11,11,22,11,1, - 0,254,0,33,0,32,128,32,128,33,0,62,0,35,0,33, - 0,33,0,33,0,248,224,6,11,11,7,1,0,124,132,132, - 128,64,48,8,4,132,132,248,9,11,22,9,1,0,255,128, - 136,128,136,128,136,128,8,0,8,0,8,0,8,0,8,0, - 8,0,62,0,11,11,22,11,1,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,11,22,11,1,0,241,224,32,128,32,128,17,0,17,0, - 17,0,10,0,10,0,10,0,4,0,4,0,16,11,22,16, - 1,0,241,207,33,132,33,132,34,68,18,72,18,72,18,72, - 20,40,12,48,12,48,8,16,11,11,22,11,1,0,243,192, - 17,0,18,0,10,0,12,0,4,0,10,0,26,0,17,0, - 32,128,241,224,11,11,22,11,1,0,241,224,32,128,17,0, - 17,0,10,0,14,0,4,0,4,0,4,0,4,0,31,0, - 7,11,11,7,1,0,254,196,132,136,8,16,34,34,66,70, - 254,3,16,16,5,1,252,224,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,224,5,16,16,8,2,252,128,128,64, - 64,64,64,32,32,32,32,16,16,16,16,8,8,3,16,16, - 5,0,252,224,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,224,5,3,3,6,1,9,32,112,136,11,1,2,12, - 1,254,255,224,3,4,4,6,3,8,128,192,64,32,6,7, - 7,7,1,0,112,136,8,120,136,136,124,6,12,12,7,1, - 0,192,64,64,64,64,120,68,68,68,68,68,120,5,7,7, - 6,1,0,112,136,128,128,128,136,112,6,12,12,7,1,0, - 24,8,8,8,8,120,136,136,136,136,136,124,5,7,7,6, - 1,0,112,136,248,128,128,136,112,5,12,12,6,1,0,56, - 72,64,64,64,240,64,64,64,64,64,224,7,11,11,8,1, - 252,62,68,68,68,120,64,124,130,130,130,124,7,12,12,8, - 1,0,192,64,64,64,64,120,68,68,68,68,68,238,3,11, - 11,4,1,0,192,192,0,0,192,64,64,64,64,64,224,4, - 14,14,5,0,253,48,48,0,0,48,16,16,16,16,16,16, - 16,144,224,7,12,12,8,1,0,192,64,64,64,64,94,72, - 80,112,88,72,238,3,12,12,4,1,0,192,64,64,64,64, - 64,64,64,64,64,64,224,11,7,14,12,1,0,251,128,68, - 64,68,64,68,64,68,64,68,64,238,224,7,7,7,8,1, - 0,248,68,68,68,68,68,238,5,7,7,6,1,0,112,136, - 136,136,136,136,112,6,10,10,7,1,253,248,68,68,68,68, - 68,120,64,64,224,6,10,10,7,1,253,120,136,136,136,136, - 136,120,8,8,28,5,7,7,6,1,0,208,104,64,64,64, - 64,240,5,7,7,6,1,0,120,136,128,112,8,136,240,6, - 10,10,7,1,0,32,32,32,248,32,32,32,36,36,24,7, - 7,7,8,1,0,204,68,68,68,68,68,62,8,7,7,9, - 1,0,231,36,36,36,24,24,24,11,7,14,11,0,0,238, - 224,36,128,42,128,42,128,42,128,27,0,17,0,8,7,7, - 9,1,0,231,36,24,24,24,36,231,8,10,10,8,1,253, - 231,36,36,36,24,24,24,16,144,224,5,7,7,6,1,0, - 248,144,144,32,72,72,248,5,16,16,6,1,252,24,32,32, - 32,32,32,32,192,32,32,32,32,32,32,32,24,1,16,16, - 3,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,16,16,5,0,252,192,32,32,32,32,32,32, - 24,32,32,32,32,32,32,32,192,5,3,3,8,1,9,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,0,2,12,12,5,1,253,192, - 192,0,0,0,192,192,192,192,192,192,192,5,11,11,7,1, - 254,16,16,112,168,160,160,160,200,112,64,64,8,12,12,9, - 1,0,6,9,17,16,16,124,16,16,16,81,178,204,7,7, - 7,9,1,3,130,124,68,68,68,124,130,11,11,22,12,0, - 0,241,224,32,128,17,0,10,0,127,192,14,0,4,0,127, - 192,4,0,4,0,31,0,1,16,16,3,2,252,128,128,128, - 128,128,128,128,0,0,128,128,128,128,128,128,128,4,13,13, - 6,1,0,96,144,128,128,96,144,144,144,96,16,16,144,96, - 5,2,2,6,1,11,216,216,9,10,20,10,1,3,62,0, - 65,0,158,128,162,128,162,128,160,128,162,128,156,128,65,0, - 62,0,4,6,6,5,1,7,96,16,112,144,112,240,7,7, - 7,9,1,0,18,36,108,216,108,36,18,6,4,4,8,1, - 2,252,4,4,4,3,1,1,5,0,3,224,9,10,20,10, - 1,3,62,0,65,0,188,128,146,128,146,128,156,128,146,128, - 186,128,65,0,62,0,5,1,1,7,1,11,248,4,4,4, - 6,2,8,96,144,144,96,7,9,9,9,2,1,16,16,16, - 254,16,16,16,0,254,4,7,7,5,1,6,96,144,16,16, - 32,64,240,4,7,7,5,1,6,96,144,16,32,16,144,96, - 3,4,4,6,3,11,32,96,64,128,7,10,10,8,1,253, - 136,136,136,136,136,218,164,128,128,128,7,15,15,8,1,252, - 62,116,244,244,244,116,52,20,20,20,20,20,20,20,20,2, - 2,2,4,2,5,192,192,3,3,3,7,2,253,64,32,224, - 3,7,7,4,1,6,64,192,64,64,64,64,224,4,6,6, - 5,1,7,96,144,144,144,96,240,7,7,7,8,1,0,144, - 72,108,54,108,72,144,11,11,22,12,1,0,64,0,196,0, - 68,0,68,0,68,64,232,192,9,64,10,64,11,224,16,64, - 16,224,11,11,22,12,1,0,64,0,196,0,68,0,68,0, - 68,0,232,192,9,32,8,32,8,64,16,128,17,224,12,11, - 22,13,1,0,96,0,146,0,18,0,34,0,18,32,148,96, - 100,160,5,32,5,240,8,32,8,112,5,12,12,8,1,253, - 48,48,0,0,0,48,32,32,64,128,136,112,11,16,32,11, - 0,0,8,0,12,0,4,0,2,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,16,32,11,0,0,2,0,6,0,4,0,8,0, - 0,0,4,0,4,0,10,0,10,0,10,0,17,0,17,0, - 31,0,32,128,32,128,241,224,11,15,30,11,0,0,4,0, - 14,0,17,0,0,0,4,0,4,0,10,0,10,0,10,0, - 17,0,17,0,31,0,32,128,32,128,241,224,11,15,30,11, - 0,0,9,0,21,0,18,0,0,0,4,0,4,0,10,0, - 10,0,10,0,17,0,17,0,31,0,32,128,32,128,241,224, - 11,14,28,11,0,0,27,0,27,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,15,30,11,0,0,6,0,9,0,9,0,6,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,14,11,22,15,0,0,15,248,10,24, - 10,8,10,40,18,32,31,224,18,36,18,36,34,8,34,8, - 247,248,9,14,28,10,1,253,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,8,0, - 4,0,28,0,10,16,32,11,0,0,16,0,24,0,8,0, - 4,0,0,0,255,128,32,128,32,128,34,128,34,0,62,0, - 34,64,34,64,32,128,32,128,255,128,10,16,32,11,0,0, - 4,0,12,0,8,0,16,0,0,0,255,128,32,128,32,128, - 34,128,34,0,62,0,34,64,34,64,32,128,32,128,255,128, - 10,15,30,11,0,0,8,0,28,0,34,0,0,0,255,128, - 32,128,32,128,34,128,34,0,62,0,34,64,34,64,32,128, - 32,128,255,128,10,14,28,11,0,0,54,0,54,0,0,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,5,16,16,6,1,0,64,96,32,16, - 0,248,32,32,32,32,32,32,32,32,32,248,5,16,16,6, - 1,0,16,48,32,64,0,248,32,32,32,32,32,32,32,32, - 32,248,5,15,15,6,1,0,32,112,136,0,248,32,32,32, - 32,32,32,32,32,32,248,5,14,14,6,1,0,216,216,0, - 248,32,32,32,32,32,32,32,32,32,248,10,11,22,11,0, - 0,254,0,33,128,32,128,32,64,32,64,248,64,32,64,32, - 64,32,128,33,128,254,0,11,15,30,12,0,0,9,0,21, - 0,18,0,0,0,227,224,48,128,48,128,40,128,40,128,36, - 128,34,128,34,128,33,128,33,128,248,128,10,16,32,12,1, - 0,16,0,24,0,8,0,4,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,10,16,32,12,1,0,2,0,6,0,4,0,8,0,0, - 0,30,0,33,0,64,128,128,64,128,64,128,64,128,64,128, - 64,64,128,33,0,30,0,10,15,30,12,1,0,8,0,28, - 0,34,0,0,0,30,0,33,0,64,128,128,64,128,64,128, - 64,128,64,128,64,64,128,33,0,30,0,10,15,30,12,1, - 0,18,0,42,0,36,0,0,0,30,0,33,0,64,128,128, - 64,128,64,128,64,128,64,128,64,64,128,33,0,30,0,10, - 14,28,12,1,0,54,0,54,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,7,7,7,9,1,0,130,68,40,16,40,68,130,10,13, - 26,12,1,255,0,128,31,0,33,0,66,128,130,64,132,64, - 140,64,136,64,144,64,80,128,33,0,62,0,64,0,11,16, - 32,12,1,0,8,0,12,0,4,0,2,0,0,0,251,224, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128, - 17,0,14,0,11,16,32,12,1,0,2,0,6,0,4,0, - 8,0,0,0,251,224,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,17,0,14,0,11,15,30,12,1,0, - 4,0,14,0,17,0,0,0,251,224,32,128,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,17,0,14,0,11,14, - 28,12,1,0,27,0,27,0,0,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,16,32,12,0,0,2,0,6,0,4,0,8,0,0,0, - 241,224,32,128,17,0,17,0,10,0,14,0,4,0,4,0, - 4,0,4,0,31,0,9,11,22,10,0,0,248,0,32,0, - 62,0,33,0,32,128,32,128,32,128,33,0,62,0,32,0, - 248,0,6,12,12,7,1,0,48,72,72,72,72,216,72,68, - 68,68,68,216,6,12,12,7,1,0,64,96,32,16,0,112, - 136,8,120,136,136,124,6,12,12,7,1,0,16,48,32,64, - 0,112,136,8,120,136,136,124,6,11,11,7,1,0,32,112, - 136,0,112,136,8,120,136,136,124,6,11,11,7,1,0,72, - 168,144,0,112,136,8,120,136,136,124,6,10,10,7,1,0, - 216,216,0,112,136,8,120,136,136,124,6,11,11,7,1,0, - 48,72,72,48,112,136,8,120,136,136,124,10,7,14,11,1, - 0,115,128,140,64,15,192,120,0,136,0,140,64,115,128,5, - 10,10,6,1,253,112,136,128,128,128,136,112,32,16,112,5, - 12,12,6,1,0,64,96,32,16,0,112,136,248,128,128,136, - 112,5,12,12,6,1,0,16,48,32,64,0,112,136,248,128, - 128,136,112,5,11,11,6,1,0,32,112,136,0,112,136,248, - 128,128,136,112,5,10,10,6,1,0,216,216,0,112,136,248, - 128,128,136,112,4,12,12,4,0,0,128,192,64,32,0,96, - 32,32,32,32,32,112,4,12,12,4,1,0,16,48,32,64, - 0,192,64,64,64,64,64,224,5,11,11,5,0,0,32,112, - 136,0,96,32,32,32,32,32,112,5,10,10,6,0,0,216, - 216,0,96,32,32,32,32,32,112,5,12,12,6,1,0,80, - 112,224,16,16,120,136,136,136,136,136,112,7,11,11,8,1, - 0,72,168,144,0,248,68,68,68,68,68,238,5,12,12,6, - 1,0,64,96,32,16,0,112,136,136,136,136,136,112,5,12, - 12,6,1,0,16,48,32,64,0,112,136,136,136,136,136,112, - 5,11,11,6,1,0,32,112,136,0,112,136,136,136,136,136, - 112,5,11,11,6,1,0,72,168,144,0,112,136,136,136,136, - 136,112,5,10,10,6,1,0,216,216,0,112,136,136,136,136, - 136,112,9,7,14,11,1,0,8,0,8,0,0,0,255,128, - 0,0,8,0,8,0,5,11,11,6,1,254,8,16,112,152, - 168,168,168,200,112,64,128,7,12,12,8,1,0,64,96,32, - 16,0,204,68,68,68,68,68,62,7,12,12,8,1,0,8, - 24,16,32,0,204,68,68,68,68,68,62,7,11,11,8,1, - 0,16,56,68,0,204,68,68,68,68,68,62,7,10,10,8, - 1,0,108,108,0,204,68,68,68,68,68,62,8,15,15,8, - 1,253,4,12,8,16,0,231,36,36,36,24,24,24,16,144, - 224,6,15,15,7,1,253,192,64,64,64,64,120,68,68,68, - 68,68,120,64,64,224,8,13,13,8,1,253,54,54,0,231, - 36,36,36,24,24,24,16,144,224}; -/* - Fontname: cursor - Copyright: These glyphs are unencumbered - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=16 x= 1 y= 0 dx=17 dy= 0 ascent=15 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-15 y=-16 dx= 0 dy= 0 - Pure Font ascent =15 descent=-8 - X Font ascent =16 descent=-16 - Max Font ascent =15 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursor[5286] U8G_FONT_SECTION("u8g_font_cursor") = { - 0,31,31,241,240,15,4,101,8,211,32,255,248,15,240,16, - 240,14,14,28,17,250,248,224,28,240,60,248,124,124,248,63, - 240,31,224,15,192,15,192,31,224,63,240,124,248,248,124,240, - 60,224,28,16,16,32,17,249,247,240,15,248,31,252,63,254, - 127,127,254,63,252,31,248,15,240,15,240,31,248,63,252,127, - 254,254,127,252,63,248,31,240,15,14,14,28,17,243,242,0, - 12,0,60,0,248,3,248,15,240,63,240,3,224,7,224,14, - 192,28,192,56,128,112,128,224,0,64,0,16,16,32,17,242, - 241,0,7,0,31,0,127,1,254,7,254,31,252,63,252,63, - 248,7,248,15,240,31,240,62,224,124,224,248,64,112,0,32, - 0,8,10,10,17,253,255,255,0,255,24,24,24,24,90,60, - 24,10,12,24,17,252,254,255,192,255,192,255,192,255,192,255, - 192,30,0,30,0,127,128,127,128,127,128,63,0,30,0,8, - 10,10,17,253,255,24,60,90,24,24,24,24,255,0,255,10, - 12,24,17,252,254,12,0,30,0,127,128,127,128,127,128,30, - 0,30,0,255,192,255,192,255,192,255,192,255,192,16,8,16, - 17,242,251,1,0,7,192,136,96,255,255,0,24,0,32,0, - 64,255,192,16,9,18,17,242,251,7,0,15,192,159,224,255, - 255,255,255,255,255,255,248,255,224,255,192,13,14,28,17,250, - 248,226,56,34,32,34,32,34,32,255,248,162,40,162,40,162, - 40,162,40,255,248,34,32,34,32,34,32,226,56,15,16,32, - 17,249,247,251,190,251,190,251,190,59,184,255,254,255,254,255, - 254,251,190,251,190,255,254,255,254,255,254,59,184,251,190,251, - 190,251,190,14,14,28,17,0,255,192,0,192,0,196,16,196, - 32,196,64,196,128,197,0,198,0,199,240,192,0,192,0,192, - 0,255,252,255,252,16,16,32,17,255,254,240,0,240,0,247, - 12,247,28,247,56,247,112,247,224,247,192,247,252,247,252,247, - 252,240,0,255,255,255,255,255,255,255,255,14,14,28,17,243, - 255,0,12,0,12,32,140,16,140,8,140,4,140,2,140,1, - 140,63,140,0,12,0,12,0,12,255,252,255,252,16,16,32, - 17,242,254,0,15,0,15,48,239,56,239,28,239,14,239,7, - 239,3,239,63,239,63,239,63,239,0,15,255,255,255,255,255, - 255,255,255,13,14,28,17,250,255,2,0,2,0,2,0,2, - 0,2,0,2,0,34,32,18,64,10,128,7,0,2,0,0, - 0,255,248,255,248,15,16,32,17,249,254,3,128,3,128,3, - 128,3,128,3,128,3,128,51,152,59,184,31,240,15,224,7, - 192,3,128,255,254,255,254,255,254,255,254,14,10,20,17,249, - 255,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,16,12,24,17,248,254,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,255,255,255,255,255, - 255,255,255,15,16,32,17,248,248,255,254,128,0,191,254,160, - 2,175,250,168,10,171,234,170,42,170,170,171,170,168,42,175, - 234,160,10,191,250,128,2,255,254,16,16,32,17,248,248,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 14,28,17,252,242,12,0,12,0,30,0,30,0,63,0,63, - 0,127,128,127,128,204,192,140,64,12,0,12,0,12,0,12, - 0,12,16,32,17,251,241,15,0,15,0,31,128,31,128,63, - 192,63,192,127,224,127,224,255,240,255,240,255,240,239,112,15, - 0,15,0,15,0,15,0,14,14,28,17,249,249,7,128,31, - 224,63,240,120,120,112,56,224,28,224,28,224,28,224,28,112, - 56,120,120,63,240,31,224,7,128,16,16,32,17,248,248,7, - 224,31,248,63,252,127,254,127,254,252,63,248,31,248,31,248, - 31,248,31,252,63,127,254,127,254,63,252,31,248,7,224,14, - 16,32,17,250,243,63,240,103,152,200,204,147,36,158,36,136, - 68,199,140,127,248,83,40,83,40,83,40,87,168,211,44,240, - 60,255,252,255,252,15,16,32,17,250,243,127,248,239,156,219, - 238,183,182,191,246,159,102,207,206,255,252,215,172,215,172,215, - 172,223,236,215,174,243,62,255,254,255,254,15,16,32,17,249, - 249,31,240,32,8,96,6,80,26,79,226,192,2,192,2,64, - 2,64,2,89,26,106,170,235,170,218,154,64,2,64,2,63, - 252,16,16,32,17,249,249,31,240,63,248,127,255,127,255,255, - 255,255,255,255,255,255,255,127,255,127,255,255,255,255,255,255, - 255,255,255,127,255,63,252,16,15,30,17,249,248,2,128,2, - 128,2,128,2,128,2,128,2,128,254,255,0,0,254,255,2, - 128,2,128,2,128,2,128,2,128,2,128,16,16,32,17,249, - 247,7,192,7,192,7,192,7,192,7,192,255,255,255,255,255, - 255,255,255,255,255,7,192,7,192,7,192,7,192,7,192,7, - 192,16,15,30,17,249,248,66,132,162,138,82,148,42,168,22, - 208,10,160,253,127,2,128,253,127,10,160,22,208,42,168,82, - 148,162,138,66,132,16,15,30,17,249,248,102,204,182,219,222, - 246,110,236,54,216,250,191,252,127,1,0,252,127,250,191,54, - 216,110,236,222,246,182,219,102,204,16,15,30,17,249,248,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,254,255,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,16,16,32, - 17,249,247,3,128,3,128,3,128,3,128,3,128,3,128,255, - 255,255,255,255,255,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,15,15,30,17,249,248,2,128,6,192,10,160,18, - 144,34,136,66,132,254,254,0,0,254,254,66,132,34,136,18, - 144,10,160,6,192,2,128,16,16,32,17,249,247,7,192,15, - 224,31,240,59,184,115,156,227,142,255,255,254,255,255,255,227, - 142,115,156,59,184,31,240,15,224,7,192,3,128,10,10,20, - 17,251,251,30,0,127,128,127,128,255,192,255,192,255,192,255, - 192,127,128,127,128,30,0,12,12,24,17,250,250,31,128,127, - 224,127,224,255,240,255,240,255,240,255,240,255,240,255,240,127, - 224,127,224,31,128,12,12,24,17,250,249,255,240,128,16,128, - 16,128,16,128,16,134,16,134,16,128,16,128,16,128,16,128, - 16,255,240,14,14,28,17,249,248,255,252,255,252,255,252,224, - 28,224,28,231,156,231,156,231,156,231,156,224,28,224,28,255, - 252,255,252,255,252,10,14,28,17,251,249,12,0,30,0,63, - 0,109,128,204,192,12,0,12,0,12,0,12,0,204,192,109, - 128,63,0,30,0,12,0,12,16,32,17,250,248,15,0,31, - 128,63,192,127,224,255,240,255,240,255,240,15,0,15,0,255, - 240,255,240,255,240,127,224,63,192,31,128,15,0,15,15,30, - 17,242,241,0,2,0,12,0,60,0,248,3,248,15,240,63, - 240,1,224,2,224,4,192,8,192,16,128,32,128,64,0,128, - 0,15,16,32,17,242,240,0,6,0,30,0,126,1,252,7, - 248,31,248,127,240,127,240,7,224,15,224,29,192,57,192,113, - 128,225,128,192,0,128,0,15,15,30,17,242,241,0,2,0, - 12,0,60,0,248,3,248,0,112,0,176,1,32,2,32,4, - 0,8,0,16,0,32,0,64,0,128,0,15,15,30,17,242, - 241,0,6,0,30,0,124,1,252,7,248,7,248,1,240,3, - 240,7,96,14,64,28,0,56,0,112,0,224,0,192,0,12, - 12,24,17,250,249,255,240,137,16,153,144,176,208,224,112,134, - 16,134,16,224,112,176,208,153,144,137,16,255,240,14,14,28, - 17,249,248,255,252,255,252,207,204,223,236,252,252,251,124,247, - 188,247,188,251,124,252,252,223,236,207,204,255,252,255,252,14, - 14,28,17,250,248,143,192,223,224,248,48,144,16,152,0,252, - 0,0,0,0,0,0,252,0,100,32,36,48,124,31,236,15, - 196,16,16,32,17,249,247,199,224,239,240,255,248,255,252,252, - 28,255,12,255,0,255,0,0,255,0,255,48,127,56,63,63, - 255,31,255,15,247,7,227,14,14,28,17,249,249,3,0,7, - 128,15,192,3,0,35,16,99,24,255,252,255,252,99,24,35, - 16,3,0,15,192,7,128,3,0,16,16,32,17,248,248,3, - 192,3,224,7,224,15,240,23,232,59,220,255,255,255,255,255, - 255,255,255,59,220,23,232,15,240,7,224,3,192,3,192,16, - 15,30,17,242,243,0,120,0,112,128,51,159,176,255,240,254, - 48,252,48,96,56,0,240,31,224,8,0,8,0,8,0,8, - 0,30,0,16,16,32,17,242,243,0,252,0,252,192,255,255, - 255,255,255,255,252,255,252,255,252,255,252,255,252,127,248,31, - 240,28,0,28,0,63,0,63,0,16,16,32,17,254,240,63, - 0,16,128,200,64,234,160,200,32,203,160,248,60,56,63,8, - 39,8,39,9,47,9,39,9,32,17,16,33,8,62,248,16, - 16,32,17,254,240,63,0,223,128,239,192,255,224,239,224,239, - 252,255,254,255,255,63,239,15,239,15,255,15,239,15,231,31, - 240,63,248,62,248,13,16,32,17,244,240,0,24,0,120,1, - 224,3,192,7,128,15,192,31,224,95,192,255,224,191,224,15, - 192,15,128,148,0,196,0,104,0,48,0,13,16,32,17,244, - 240,0,56,0,248,3,240,7,224,15,192,31,224,127,240,255, - 240,255,240,255,240,255,224,255,192,255,128,254,0,252,0,120, - 0,15,14,28,17,0,242,127,128,128,64,126,32,16,16,14, - 16,16,16,14,40,16,68,12,130,3,4,2,72,1,16,0, - 160,0,64,16,16,32,17,0,241,127,128,255,192,255,224,255, - 240,127,248,31,248,63,248,31,252,63,254,31,255,15,254,7, - 252,3,248,1,240,0,224,0,64,15,14,28,17,250,250,62, - 248,99,140,193,6,128,2,128,2,128,2,128,2,192,6,96, - 12,48,24,24,48,12,96,6,192,3,128,15,14,28,17,250, - 250,62,248,127,252,227,142,193,6,192,6,192,6,194,134,225, - 14,112,28,56,56,28,112,15,224,7,192,3,128,16,16,32, - 17,248,248,255,255,213,85,170,171,213,85,160,11,208,5,160, - 11,208,5,160,11,208,5,160,11,208,5,170,171,213,85,170, - 171,255,255,16,16,32,17,248,248,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,14,14,28,17,249,248,127, - 248,63,240,159,228,207,204,231,156,243,60,255,252,255,252,243, - 60,231,156,207,204,159,228,63,240,127,248,16,16,32,17,248, - 247,63,252,127,254,127,254,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,127,254,127,254,63, - 252,8,14,14,17,0,242,128,192,224,240,248,252,254,255,248, - 216,140,12,6,6,10,16,32,17,255,241,192,0,224,0,240, - 0,248,0,252,0,254,0,255,0,255,128,255,192,255,192,254, - 0,239,0,207,0,7,128,7,128,3,0,14,13,26,17,0, - 249,192,0,192,0,193,0,194,0,196,0,200,0,223,252,200, - 0,196,0,194,0,193,0,192,0,192,0,16,15,30,17,255, - 248,240,0,240,0,240,192,241,192,243,128,247,0,255,255,255, - 255,255,255,247,0,243,128,241,192,240,192,240,0,240,0,10, - 14,28,17,0,249,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,12,16,32,17,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,240,0,240,0,240, - 0,240,0,240,0,240,0,16,16,32,17,248,248,128,3,127, - 253,127,253,68,69,69,85,69,85,69,85,69,85,68,69,127, - 253,127,253,127,253,127,253,127,253,127,253,128,3,15,16,32, - 17,248,248,127,252,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,127,252,10,10,20,17,0,255,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,12,12,24, - 17,255,254,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,10,10,20,17,247, - 255,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,255,192,255,192,12,12,24,17,246,254,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,255,240,255,240,255, - 240,255,240,16,16,32,17,242,245,3,128,30,240,2,128,129, - 0,67,135,36,75,29,112,5,64,4,64,2,128,4,64,9, - 32,18,144,20,80,120,60,248,63,16,16,32,17,242,245,31, - 224,63,240,63,248,195,130,231,199,127,255,63,251,31,240,7, - 224,7,192,15,224,31,240,63,248,126,252,252,127,252,127,16, - 16,32,17,248,248,128,3,127,253,127,253,68,69,84,85,84, - 85,84,85,84,85,68,69,127,253,127,253,127,253,127,253,127, - 253,127,253,128,3,15,16,32,17,248,248,127,252,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,127,252,15,14,28,17,252, - 243,7,0,12,0,6,0,3,0,127,248,128,4,179,54,179, - 54,179,54,128,6,128,6,96,28,24,96,7,128,16,16,32, - 17,252,241,15,128,30,0,15,0,7,0,127,248,255,252,255, - 255,255,255,255,255,255,255,255,255,255,255,63,247,31,224,15, - 192,7,128,11,16,32,17,246,255,112,0,136,0,140,0,74, - 0,122,0,33,0,17,0,16,128,8,128,12,64,4,64,2, - 32,1,224,0,224,0,96,0,32,13,16,32,17,245,255,252, - 0,254,0,255,0,127,0,63,128,63,128,31,192,15,192,15, - 224,7,224,7,240,3,248,1,248,0,248,0,120,0,56,15, - 16,32,17,249,252,7,128,15,192,31,224,51,48,51,48,31, - 224,15,192,7,128,135,132,135,134,67,8,56,112,7,128,31, - 226,240,62,128,4,16,16,32,17,249,252,15,192,31,224,63, - 240,127,248,127,248,63,240,31,224,143,193,143,199,207,207,247, - 156,120,120,7,128,127,227,255,255,240,62,10,10,20,17,252, - 251,12,0,12,0,12,0,12,0,255,192,255,192,12,0,12, - 0,12,0,12,0,12,12,24,17,251,250,15,0,15,0,15, - 0,15,0,255,240,255,240,255,240,255,240,15,0,15,0,15, - 0,15,0,9,15,30,17,252,248,62,0,127,0,227,128,193, - 128,225,128,99,128,7,0,30,0,28,0,20,0,20,0,119, - 0,54,0,28,0,8,0,11,16,32,17,251,248,31,0,63, - 128,127,192,255,224,241,224,249,224,123,224,63,192,31,128,31, - 0,31,0,63,128,127,192,63,128,31,0,14,0,8,14,14, - 17,249,242,1,3,7,15,31,63,127,255,31,27,49,48,96, - 96,10,16,32,17,248,241,0,192,1,192,3,192,7,192,15, - 192,31,192,63,192,127,192,255,192,255,192,31,192,61,192,60, - 192,120,0,120,0,48,0,14,13,26,17,243,249,0,12,0, - 12,2,12,1,12,0,140,0,76,255,236,0,76,0,140,1, - 12,2,12,0,12,0,12,16,15,30,17,242,248,0,15,0, - 15,3,15,3,143,1,207,0,239,255,255,255,255,255,255,0, - 239,1,207,3,143,3,15,0,15,0,15,10,14,28,17,247, - 249,0,192,0,192,0,192,0,192,0,192,0,192,255,192,255, - 192,0,192,0,192,0,192,0,192,0,192,0,192,12,16,32, - 17,246,248,0,240,0,240,0,240,0,240,0,240,0,240,255, - 240,255,240,255,240,255,240,0,240,0,240,0,240,0,240,0, - 240,0,240,16,16,32,17,248,248,128,3,127,253,127,253,68, - 69,85,69,85,69,85,69,85,69,68,69,127,253,127,253,127, - 253,127,253,127,253,127,253,128,3,15,16,32,17,248,248,127, - 252,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,127,252,14, - 14,28,17,250,248,255,252,128,68,128,68,128,68,255,196,136, - 68,136,68,136,68,136,68,143,252,136,4,136,4,136,4,255, - 252,16,16,32,17,249,247,255,255,255,255,255,255,224,119,255, - 247,255,247,255,247,238,119,238,119,239,255,239,255,239,255,238, - 7,255,255,255,255,255,255,12,13,26,17,250,242,1,0,1, - 0,5,128,5,128,13,128,13,192,29,192,29,192,61,224,61, - 224,125,224,125,240,248,224,16,16,32,17,248,240,0,192,0, - 224,1,224,3,240,3,240,7,240,7,248,15,248,15,248,31, - 252,31,252,63,252,63,255,127,255,255,248,127,224,7,15,15, - 17,253,0,40,40,40,40,40,40,40,40,40,40,40,254,124, - 56,16,9,16,32,17,252,255,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,255,128,255,128, - 127,0,62,0,28,0,8,0,15,7,14,17,249,252,16,16, - 48,24,127,252,240,30,127,252,48,24,16,16,15,9,18,17, - 249,251,24,48,56,56,127,252,255,254,255,254,255,254,127,252, - 56,56,24,48,15,7,14,17,1,252,16,0,48,0,127,254, - 240,0,127,254,48,0,16,0,16,9,18,17,0,251,12,0, - 28,0,63,255,127,255,255,255,127,255,63,255,28,0,12,0, - 15,7,14,17,241,252,0,16,0,24,255,252,0,30,255,252, - 0,24,0,16,16,9,18,17,241,251,0,48,0,56,255,252, - 255,254,255,255,255,254,255,252,0,56,0,48,7,15,15,17, - 253,240,16,56,124,254,40,40,40,40,40,40,40,40,40,40, - 40,9,16,32,17,252,240,8,0,28,0,62,0,127,0,255, - 128,255,128,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,7,15,15,17,253,248,16,56,124, - 254,40,40,40,40,40,40,40,254,124,56,16,9,15,30,17, - 252,248,28,0,62,0,127,0,255,128,255,128,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,127,0,62,0,28,0, - 15,16,32,17,246,240,0,32,0,112,0,248,1,222,5,222, - 9,222,17,222,17,222,17,222,17,222,49,222,113,222,253,222, - 24,136,0,120,0,48,16,16,32,17,245,240,0,56,0,124, - 0,254,0,255,6,255,14,255,30,255,30,255,30,255,30,255, - 62,255,126,255,254,255,126,254,12,126,0,60,14,14,28,17, - 249,249,255,0,128,0,128,0,128,0,143,192,136,64,136,68, - 136,68,8,68,15,196,0,36,0,20,0,12,3,252,16,16, - 32,17,248,248,255,192,255,192,255,192,224,0,239,240,239,240, - 239,247,238,119,238,119,239,247,15,247,15,255,0,31,3,255, - 3,255,3,255,16,16,32,17,250,247,32,16,16,32,16,32, - 8,64,8,64,135,135,103,152,31,224,31,224,103,152,135,135, - 8,64,8,64,16,32,16,32,32,16,16,16,32,17,250,247, - 96,24,48,48,16,32,24,96,143,193,207,207,111,220,63,240, - 63,224,111,248,207,207,143,193,24,64,24,96,48,48,96,24, - 11,16,32,17,247,242,0,96,1,0,52,96,121,0,104,96, - 252,0,132,0,228,0,164,0,228,0,164,0,228,0,228,0, - 132,0,132,0,252,0,12,16,32,17,246,242,0,48,24,176, - 62,176,62,176,126,176,255,0,255,0,255,0,255,0,255,0, - 255,0,255,0,255,0,255,0,255,0,255,0,15,16,32,17, - 249,247,1,0,2,128,2,128,2,128,4,64,4,64,4,64, - 57,56,192,6,56,56,9,32,18,144,36,72,40,40,48,24, - 32,8,16,16,32,17,249,247,1,0,3,128,3,128,6,192, - 6,192,12,96,28,120,249,62,192,7,248,62,57,56,51,152, - 102,204,108,108,120,60,112,28,15,13,26,17,249,249,3,128, - 15,224,28,112,48,24,96,12,193,6,194,134,193,6,96,12, - 48,24,28,112,15,224,3,128,16,14,28,17,249,249,7,192, - 15,224,31,240,60,120,112,28,225,14,195,135,198,199,195,135, - 225,14,112,28,60,120,31,240,7,192,13,13,26,16,250,249, - 2,0,2,0,2,0,2,0,2,0,2,0,255,248,2,0, - 2,0,2,0,2,0,2,0,2,0,15,15,30,16,249,248, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,3,128,3,128,3,128,3,128,3,128,3,128,14,14, - 28,17,0,242,192,0,240,0,124,0,127,0,63,192,63,240, - 31,0,31,0,12,128,12,64,4,32,4,16,0,8,0,4, - 16,16,32,17,255,241,224,0,248,0,254,0,127,128,127,224, - 63,252,63,252,31,252,31,192,15,224,15,112,7,56,7,28, - 7,14,0,7,0,3,14,14,28,17,0,242,255,252,255,252, - 192,0,192,0,192,0,199,240,198,0,197,0,196,128,196,64, - 196,32,196,16,192,0,192,0,16,16,32,17,255,241,255,255, - 255,255,255,255,255,255,240,0,247,252,247,252,247,252,247,192, - 247,224,247,112,247,56,247,28,247,12,240,0,240,0,14,14, - 28,17,243,242,255,252,255,252,0,12,0,12,0,12,63,140, - 1,140,2,140,4,140,8,140,16,140,32,140,0,12,0,12, - 16,16,32,17,242,241,255,255,255,255,255,255,255,255,0,15, - 63,239,63,239,63,239,3,239,7,239,14,239,28,239,56,239, - 48,239,0,15,0,15,13,14,28,17,250,242,255,248,255,248, - 0,0,2,0,7,0,10,128,18,64,34,32,2,0,2,0, - 2,0,2,0,2,0,2,0,15,16,32,17,249,241,255,254, - 255,254,255,254,255,254,3,128,7,192,15,224,31,240,59,184, - 51,152,3,128,3,128,3,128,3,128,3,128,3,128,14,10, - 20,17,249,246,255,252,255,252,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,16,12,24,17,248,245,255,255, - 255,255,255,255,255,255,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,7,16,16,17,253,240,16,0,56,124, - 254,238,254,124,56,16,186,214,146,130,130,130,9,16,32,17, - 252,240,28,0,28,0,62,0,127,0,255,128,255,128,255,128, - 127,0,62,0,93,0,255,128,255,128,255,128,235,128,235,128, - 227,128,10,10,20,17,0,246,255,192,255,192,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,12,12,24,17, - 255,245,255,240,255,240,255,240,255,240,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,14,14,28,17,249,244, - 17,32,4,80,147,76,79,144,50,96,194,24,2,0,2,0, - 2,0,2,0,2,0,2,128,2,128,1,0,16,16,32,17, - 248,242,23,110,223,251,191,252,127,255,255,252,255,255,243,158, - 3,128,3,128,3,128,3,128,3,224,3,224,3,224,3,224, - 1,192,10,10,20,17,247,246,255,192,255,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,12,12,24,17, - 246,245,255,240,255,240,255,240,255,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,16,16,32,17,241,249, - 31,224,31,224,31,224,63,240,97,24,193,12,129,7,131,135, - 131,135,132,7,200,12,96,24,63,240,31,224,31,224,31,224, - 16,16,32,17,241,249,63,240,63,240,63,240,127,248,255,252, - 255,255,255,255,255,255,255,255,255,255,255,255,255,252,127,248, - 63,240,63,240,63,240,7,14,14,10,253,249,238,56,16,16, - 16,16,16,16,16,16,16,16,56,238,9,16,32,10,252,248, - 247,128,255,128,255,128,62,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,255,128,247,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; -/* - Fontname: cursor - Copyright: These - Capital A Height: 0, '1' Height: 0 - Calculated Max Values w=16 h=16 x= 0 y= 0 dx=17 dy= 0 ascent= 7 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-14 y=-16 dx= 0 dy= 0 - Pure Font ascent = 0 descent= 0 - X Font ascent = 0 descent= 0 - Max Font ascent = 7 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursorr[492] U8G_FONT_SECTION("u8g_font_cursorr") = { - 0,31,31,241,240,0,1,6,0,0,32,80,0,7,240,0, - 0,255,255,14,14,28,17,243,242,0,12,0,60,0,248,3, - 248,15,240,63,240,3,224,7,224,14,192,28,192,56,128,112, - 128,224,0,64,0,16,16,32,17,242,241,0,7,0,31,0, - 127,1,254,7,254,31,252,63,252,63,248,7,248,15,240,31, - 240,62,224,124,224,248,64,112,0,32,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,10,14,28, - 17,252,242,12,0,12,0,30,0,30,0,63,0,63,0,127, - 128,127,128,204,192,140,64,12,0,12,0,12,0,12,0,12, - 16,32,17,251,241,15,0,15,0,31,128,31,128,63,192,63, - 192,127,224,127,224,255,240,255,240,255,240,239,112,15,0,15, - 0,15,0,15,0,255,255,255,255,255,255,16,15,30,17,249, - 248,2,128,2,128,2,128,2,128,2,128,2,128,254,255,0, - 0,254,255,2,128,2,128,2,128,2,128,2,128,2,128,16, - 16,32,17,249,247,7,192,7,192,7,192,7,192,7,192,255, - 255,255,255,255,255,255,255,255,255,7,192,7,192,7,192,7, - 192,7,192,7,192,255,255,16,15,30,17,249,248,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,254,255,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,17,249, - 247,3,128,3,128,3,128,3,128,3,128,3,128,255,255,255, - 255,255,255,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,255,255,255,255,255,255,255,255,15,15,30,17,242,241,0, - 2,0,12,0,60,0,248,3,248,15,240,63,240,1,224,2, - 224,4,192,8,192,16,128,32,128,64,0,128,0,15,16,32, - 17,242,240,0,6,0,30,0,126,1,252,7,248,31,248,127, - 240,127,240,7,224,15,224,29,192,57,192,113,128,225,128,192, - 0,128,0,15,15,30,17,242,241,0,2,0,12,0,60,0, - 248,3,248,0,112,0,176,1,32,2,32,4,0,8,0,16, - 0,32,0,64,0,128,0,15,15,30,17,242,241,0,6,0, - 30,0,124,1,252,7,248,7,248,1,240,3,240,7,96,14, - 64,28,0,56,0,112,0,224,0,192,0,255}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0[1702] U8G_FONT_SECTION("u8g_font_fixed_v0") = { - 1,7,9,0,254,7,1,46,2,94,32,255,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2, - 87,103,48,0,248,32,32,32,248,2,87,103,32,112,168,160, - 168,112,32,2,87,103,64,64,64,240,64,72,120,3,85,101, - 136,112,80,112,136,2,87,103,136,136,80,248,32,248,32,34, - 23,103,128,128,128,0,128,128,128,2,87,103,120,128,120,136, - 240,8,240,5,81,97,248,2,87,103,112,136,168,200,168,136, - 112,2,87,103,112,8,120,136,120,0,248,4,83,99,72,144, - 72,4,82,98,248,8,255,2,87,103,112,136,248,200,200,136, - 112,8,81,97,248,20,51,99,64,160,64,2,87,103,32,32, - 248,32,32,0,248,255,255,255,255,255,255,255,255,255,4,83, - 99,144,72,144,255,255,255,255,2,87,103,64,32,112,136,248, - 136,136,2,87,103,16,32,112,136,248,136,136,2,87,103,32, - 80,112,136,248,136,136,2,87,103,72,176,112,136,248,136,136, - 2,87,103,80,0,112,136,248,136,136,2,87,103,112,0,112, - 136,248,136,136,2,87,103,120,160,160,240,160,160,184,0,89, - 105,112,136,128,128,128,136,112,32,96,2,87,103,64,32,248, - 128,224,128,248,2,87,103,16,32,248,128,224,128,248,2,87, - 103,32,80,248,128,224,128,248,2,87,103,80,0,248,128,224, - 128,248,2,87,103,64,32,248,32,32,32,248,2,87,103,16, - 32,248,32,32,32,248,2,87,103,32,80,248,32,32,32,248, - 2,87,103,80,0,248,32,32,32,248,2,87,103,240,136,136, - 232,136,136,240,2,87,103,72,176,136,200,168,152,136,2,87, - 103,64,32,112,136,136,136,112,2,87,103,16,32,112,136,136, - 136,112,2,87,103,32,80,112,136,136,136,112,2,87,103,72, - 176,112,136,136,136,112,2,87,103,80,0,112,136,136,136,112, - 20,51,99,160,64,160,2,87,103,112,136,152,168,200,136,112, - 2,87,103,64,32,136,136,136,136,112,2,87,103,16,32,136, - 136,136,136,112,2,87,103,32,80,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,2,87,103,16,32,136,136,80, - 32,32,2,87,103,128,128,240,136,240,128,128,0,89,105,240, - 136,136,176,136,136,176,128,128,2,87,103,64,32,112,8,120, - 136,120,2,87,103,16,32,112,8,120,136,120,2,87,103,32, - 80,112,8,120,136,120,2,87,103,72,176,112,8,120,136,120, - 2,87,103,80,0,112,8,120,136,120,2,87,103,48,0,112, - 8,120,136,120,2,85,101,240,40,120,160,120,0,87,103,112, - 136,128,136,112,32,96,2,87,103,64,32,112,136,248,128,120, - 2,87,103,16,32,112,136,248,128,120,2,87,103,32,80,112, - 136,248,128,120,2,87,103,80,0,112,136,248,128,120,2,87, - 103,64,32,248,32,32,32,248,2,87,103,16,32,248,32,32, - 32,248,2,87,103,32,80,248,32,32,32,248,2,87,103,80, - 0,248,32,32,32,248,2,87,103,8,56,8,120,136,136,120, - 2,87,103,72,176,176,200,136,136,136,2,87,103,64,32,112, - 136,136,136,112,2,87,103,16,32,112,136,136,136,112,2,87, - 103,32,80,112,136,136,136,112,2,87,103,72,176,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,112,152,168,200,112,2,87,103,64, - 32,136,136,136,136,112,2,87,103,16,32,136,136,136,136,112, - 2,87,103,32,80,136,136,136,136,112,2,87,103,80,0,136, - 136,136,136,112,0,89,105,16,32,136,136,136,136,120,8,112, - 2,87,103,128,128,240,136,240,128,128,0,89,105,80,0,136, - 136,136,136,120,8,112}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 5 h= 7 x= 1 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[167] U8G_FONT_SECTION("u8g_font_fixed_v0n") = { - 1,7,9,0,254,7,0,0,0,0,42,58,0,7,0,7, - 0,2,87,103,32,168,112,32,112,168,32,3,85,101,32,32, - 248,32,32,18,34,98,64,128,5,81,97,248,18,18,98,128, - 128,2,87,103,8,16,16,32,64,64,128,2,87,103,112,136, - 136,136,136,136,112,2,87,103,32,96,32,32,32,32,248,2, - 87,103,112,136,8,16,32,64,248,2,87,103,240,8,8,48, - 8,8,240,2,87,103,16,144,144,248,16,16,16,2,87,103, - 248,128,128,240,8,8,240,2,87,103,112,128,128,240,136,136, - 112,2,87,103,248,8,8,8,8,8,8,2,87,103,112,136, - 136,112,136,136,112,2,87,103,112,136,136,248,8,8,112,18, - 21,101,128,128,0,128,128}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[878] U8G_FONT_SECTION("u8g_font_fixed_v0r") = { - 1,7,9,0,254,7,1,46,2,94,32,127,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO8859-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=10 x= 4 y=10 dx= 8 dy= 0 ascent=12 len=10 - Font Bounding box w= 7 h=12 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =10 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[1042] U8G_FONT_SECTION("u8g_font_freedoomr10r") = { - 0,7,12,0,0,10,1,113,3,88,32,127,1,12,0,12, - 0,0,0,0,7,0,1,0,0,0,7,0,1,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,3,10,10,7,0,2,96,128,128,128,128,128,128,128,128, - 96,3,10,10,7,3,2,192,32,32,32,32,32,32,32,32, - 192,5,5,5,8,1,7,168,112,32,112,168,7,7,7,8, - 0,4,16,16,16,254,16,16,16,2,2,2,7,2,10,64, - 128,7,1,1,8,0,7,254,2,2,2,7,2,2,192,192, - 7,10,10,8,0,2,2,4,4,8,16,16,32,64,64,128, - 6,10,10,7,0,2,252,132,132,132,132,132,132,132,132,252, - 2,10,10,7,4,2,192,64,64,64,64,64,64,64,64,64, - 6,10,10,7,0,2,252,4,4,4,4,252,128,128,128,252, - 6,10,10,7,0,2,252,4,4,4,60,4,4,4,4,252, - 6,10,10,7,0,2,132,132,132,132,132,252,4,4,4,4, - 6,10,10,7,0,2,252,128,128,128,252,4,4,4,4,252, - 6,10,10,7,0,2,252,128,128,128,252,132,132,132,132,252, - 6,10,10,7,0,2,252,4,4,4,4,4,4,4,4,4, - 6,10,10,7,0,2,252,132,132,132,252,132,132,132,132,252, - 6,10,10,7,0,2,252,132,132,132,252,4,4,4,4,252, - 2,7,7,7,2,2,192,192,0,0,0,192,192,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,7,10,10,8,0,2,254,130,130,130,130,254,130,130,130, - 130,7,10,10,8,0,2,254,130,130,130,252,130,130,130,130, - 254,7,10,10,8,0,2,254,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,252,130,130,130,130,130,130,130,130, - 252,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 254,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 128,7,10,10,8,0,2,254,128,128,128,158,130,130,130,130, - 254,7,10,10,8,0,2,130,130,130,130,254,130,130,130,130, - 130,1,10,10,8,3,2,128,128,128,128,128,128,128,128,128, - 128,7,10,10,8,0,2,30,2,2,2,2,2,130,130,130, - 124,7,10,10,8,0,2,130,132,136,144,224,160,144,136,132, - 130,7,10,10,8,0,2,128,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,130,198,170,146,130,130,130,130,130, - 130,7,10,10,8,0,2,194,194,162,162,146,146,138,138,134, - 134,7,10,10,8,0,2,124,130,130,130,130,130,130,130,130, - 124,7,10,10,8,0,2,254,130,130,130,254,128,128,128,128, - 128,7,10,10,8,0,2,120,132,132,132,132,132,132,132,132, - 126,7,10,10,8,0,2,254,130,130,130,254,160,144,136,132, - 130,7,10,10,8,0,2,254,128,128,128,128,254,2,2,2, - 254,7,9,9,8,0,3,254,16,16,16,16,16,16,16,16, - 7,10,10,8,0,2,130,130,130,130,130,130,130,130,130,254, - 7,10,10,8,0,2,130,130,130,68,68,108,40,40,16,16, - 7,10,10,8,0,2,130,130,130,130,130,146,146,170,170,198, - 7,10,10,8,0,2,130,68,68,40,16,16,40,68,68,130, - 7,10,10,8,0,2,130,130,130,130,254,16,16,16,16,16, - 7,10,10,8,0,2,254,2,6,12,24,48,96,192,128,254, - 4,10,10,7,0,2,240,128,128,128,128,128,128,128,128,240, - 6,10,10,7,0,2,128,64,64,32,32,16,16,8,8,4, - 4,10,10,7,2,2,240,16,16,16,16,16,16,16,16,240, - 5,3,3,7,1,9,32,80,136,6,1,1,7,0,2,252, - 2,2,2,7,2,10,128,64,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 7 y=13 dx=19 dy= 0 ascent=26 len=72 - Font Bounding box w=18 h=26 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[943] U8G_FONT_SECTION("u8g_font_freedoomr25n") = { - 0,18,26,0,0,24,3,112,3,144,32,127,0,26,0,24, - 0,0,0,0,11,0,0,255,255,255,255,255,255,255,255,255, - 255,17,16,48,19,1,6,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,7,8,8,11,3,2,62,62,62, - 62,62,240,240,240,9,2,4,11,1,13,255,128,255,128,5, - 5,5,11,5,2,248,248,248,248,248,255,17,24,72,19,1, - 2,255,255,128,255,255,128,192,3,128,192,3,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,192,3,128,192,3,128, - 255,255,128,255,255,128,255,255,128,6,24,24,19,7,2,252, - 252,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,17,24,72,19,1,2,255,255,128, - 255,255,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,255,255, - 128,255,255,128,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,255,255,128,255, - 255,128,255,255,128,17,24,72,19,1,2,255,255,128,255,255, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,0,3,128,0,3,128,31,255,128,31, - 255,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,255,255,128,255,255,128, - 255,255,128,17,24,72,19,1,2,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,17, - 24,72,19,1,2,255,255,128,255,255,128,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,255,255,128,255,255,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,255,255,128,255,255,128,255,255,128,16,24,48, - 19,2,2,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,17,24,72,19,1,2,255,255,128,255,255,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,255,255, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,5, - 16,16,11,5,2,248,248,248,248,248,0,0,0,0,0,0, - 248,248,248,248,248,7,16,16,11,3,2,62,62,62,62,62, - 0,0,0,62,62,62,62,62,240,240,240,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 4 y=10 dx=17 dy= 0 ascent=17 len=34 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11[3948] U8G_FONT_SECTION("u8g_font_fub11") = { - 0,24,21,255,252,11,2,82,5,55,32,255,253,17,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,5,0,0,2,11,11,6,2, - 253,192,0,0,192,192,192,192,192,192,192,192,7,12,12,9, - 1,254,4,4,60,110,206,208,208,214,110,60,32,64,8,11, - 11,10,1,0,62,119,96,96,252,96,96,96,96,96,255,9, - 8,16,10,1,2,128,128,93,0,34,0,65,0,65,0,34, - 0,93,0,128,128,9,11,22,11,1,0,195,128,99,0,103, - 0,247,128,62,0,60,0,255,128,24,0,24,0,24,0,24, - 0,1,14,14,5,2,253,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,6,14,14,8,1,253,120,236,192,224,120, - 124,204,204,248,120,28,12,156,248,5,1,1,5,0,10,216, - 12,11,22,14,1,0,31,128,57,192,111,96,217,176,152,16, - 152,16,153,144,143,16,64,32,48,192,31,128,5,8,8,7, - 1,3,112,216,120,216,216,120,0,248,8,6,6,10,1,1, - 103,102,238,206,102,103,9,4,8,10,0,3,255,128,0,128, - 0,128,0,128,255,12,11,22,14,1,0,31,128,57,192,111, - 96,201,176,136,144,143,16,137,144,136,144,72,160,48,192,31, - 128,5,1,1,5,0,10,248,4,4,4,6,1,7,96,208, - 144,240,9,10,20,16,3,0,8,0,8,0,8,0,255,128, - 8,0,8,0,8,0,0,0,0,0,255,128,5,6,6,7, - 1,5,112,216,24,48,192,248,5,7,7,7,1,4,112,216, - 24,112,24,216,112,3,3,3,4,1,9,96,192,128,255,7, - 14,14,9,1,253,126,244,244,244,244,116,20,20,20,20,20, - 20,20,20,2,2,2,4,1,4,192,192,4,4,4,3,0, - 252,64,48,176,224,3,6,6,5,1,5,96,224,96,96,96, - 96,6,8,8,8,1,3,120,252,204,204,204,120,0,252,8, - 6,6,10,1,1,204,102,103,103,102,204,12,11,22,13,1, - 0,224,128,97,128,99,0,99,0,102,0,108,224,12,224,25, - 224,25,96,51,240,96,96,11,11,22,13,1,0,97,0,227, - 0,98,0,102,0,100,0,109,224,27,96,24,96,49,192,35, - 0,99,224,12,11,22,13,1,0,120,192,216,128,113,128,217, - 0,115,0,6,96,4,224,13,224,25,96,25,240,48,96,7, - 11,11,9,1,253,24,0,24,24,56,112,224,192,194,254,60, - 11,16,32,11,0,0,24,0,12,0,4,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,16,32,11,0,0,3,0,2,0, - 4,0,0,0,0,0,14,0,14,0,15,0,27,0,27,128, - 57,128,49,128,63,192,127,192,96,224,224,96,11,16,32,11, - 0,0,6,0,14,0,25,0,0,0,0,0,14,0,14,0, - 15,0,27,0,27,128,57,128,49,128,63,192,127,192,96,224, - 224,96,11,15,30,11,0,0,13,0,23,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,15,30,11,0,0,27,0,0,0, - 0,0,0,0,14,0,14,0,15,0,27,0,27,0,59,128, - 49,128,63,192,127,192,96,224,224,96,10,17,34,12,1,0, - 12,0,18,0,18,0,30,0,0,0,0,0,12,0,30,0, - 30,0,63,0,51,0,51,0,99,128,127,128,255,192,192,192, - 192,192,15,11,22,16,0,0,3,254,7,128,7,128,13,128, - 29,128,25,254,57,128,63,128,97,128,97,128,193,254,10,15, - 30,12,1,252,31,0,119,128,97,192,192,0,192,0,192,0, - 192,0,193,192,97,192,115,128,62,0,8,0,14,0,2,0, - 28,0,8,16,16,10,1,0,96,48,24,0,0,255,192,192, - 192,192,255,192,192,192,192,255,8,16,16,10,1,0,12,8, - 16,0,0,255,192,192,192,192,255,192,192,192,192,255,8,16, - 16,10,1,0,24,60,36,0,0,255,192,192,192,192,255,192, - 192,192,192,255,8,15,15,10,1,0,102,0,0,0,255,192, - 192,192,192,255,192,192,192,192,255,4,16,16,4,255,0,192, - 96,48,0,0,48,48,48,48,48,48,48,48,48,48,48,4, - 16,16,4,1,0,112,96,192,0,0,192,192,192,192,192,192, - 192,192,192,192,192,4,16,16,4,0,0,96,240,144,0,0, - 96,96,96,96,96,96,96,96,96,96,96,5,15,15,5,0, - 0,216,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 11,11,22,12,0,0,127,0,99,128,96,192,96,224,96,96, - 252,96,96,96,96,224,96,192,99,128,127,0,10,15,30,12, - 1,0,25,0,22,0,0,0,0,0,240,192,240,192,248,192, - 216,192,220,192,204,192,206,192,198,192,199,192,195,192,195,192, - 11,16,32,13,1,0,24,0,8,0,12,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,123,192,31,0,11,16,32,13,1,0,3,0,2,0, - 4,0,0,0,0,0,31,0,123,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,0,11,16,32,13, - 1,0,14,0,27,0,17,0,0,0,0,0,31,0,123,192, - 96,192,192,96,192,96,192,96,192,96,192,96,96,192,123,192, - 31,0,11,15,30,13,1,0,31,0,0,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,224,224, - 96,192,127,192,31,0,11,15,30,13,1,0,27,0,0,0, - 0,0,0,0,31,0,123,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,123,192,31,0,8,8,8,16,4,0, - 129,195,102,24,24,36,66,129,11,11,22,13,1,0,31,160, - 59,192,96,192,193,96,194,96,196,96,200,96,208,96,224,192, - 123,128,191,0,10,16,32,12,1,0,48,0,24,0,8,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,62,0,10,16,32,12,1,0, - 3,0,6,0,4,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,62,0, - 10,16,32,12,1,0,28,0,30,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,62,0,10,15,30,12,1,0,51,0,0,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,115,128,62,0,10,16,32,10,0,0, - 6,0,6,0,4,0,0,0,0,0,225,192,113,128,51,128, - 59,0,31,0,30,0,12,0,12,0,12,0,12,0,12,0, - 8,11,11,10,1,0,192,192,254,199,195,195,199,254,192,192, - 192,8,11,11,10,1,0,124,238,198,206,220,216,206,199,195, - 219,222,7,12,12,9,1,0,96,48,16,0,60,110,6,126, - 230,198,238,118,7,12,12,9,1,0,12,24,16,0,60,110, - 6,126,230,198,238,118,7,12,12,9,1,0,56,44,68,0, - 60,110,6,126,230,198,238,118,7,11,11,9,1,0,60,0, - 0,60,110,6,126,230,198,238,118,7,11,11,9,1,0,108, - 0,0,60,230,6,126,230,198,238,118,7,13,13,9,1,0, - 24,36,36,60,0,60,102,6,126,230,198,238,126,13,8,16, - 15,1,0,60,224,103,176,7,24,127,248,231,0,199,24,237, - 184,120,240,7,12,12,9,1,252,60,110,198,192,192,198,110, - 60,16,28,4,56,7,13,13,9,1,0,96,32,48,16,0, - 60,110,198,254,192,198,110,60,7,13,13,9,1,0,12,12, - 24,16,0,60,110,198,254,192,198,110,60,7,13,13,9,1, - 0,24,56,44,68,0,60,110,198,254,192,198,110,60,7,12, - 12,9,1,0,108,0,0,0,60,110,198,254,192,206,110,60, - 3,12,12,4,0,0,192,96,32,0,96,96,96,96,96,96, - 96,96,3,12,12,4,1,0,96,192,128,0,192,192,192,192, - 192,192,192,192,5,12,12,4,0,0,96,208,136,0,96,96, - 96,96,96,96,96,96,5,11,11,5,0,0,216,0,0,48, - 48,48,48,48,48,48,48,8,11,11,10,1,0,51,28,102, - 62,103,195,195,195,195,103,60,7,11,11,9,1,0,60,0, - 0,220,238,198,198,198,198,198,198,8,13,13,10,1,0,96, - 48,16,8,0,60,102,195,195,195,195,102,60,8,13,13,10, - 1,0,6,12,8,16,0,60,102,195,195,195,195,102,60,8, - 13,13,10,1,0,24,28,36,34,0,60,102,195,195,195,195, - 102,60,8,11,11,10,1,0,60,0,0,60,102,195,195,195, - 195,102,60,8,12,12,10,1,0,102,0,0,0,60,102,195, - 195,195,195,102,60,10,6,12,16,3,2,12,0,0,0,255, - 192,0,0,0,0,12,0,8,10,10,10,1,255,1,62,102, - 207,203,211,227,118,252,128,7,12,12,9,1,0,96,48,16, - 0,198,198,198,198,198,198,238,118,7,12,12,9,1,0,12, - 24,16,0,198,198,198,198,198,198,238,118,7,12,12,9,1, - 0,56,40,68,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,108,0,0,198,198,198,198,198,198,238,118,9,16, - 32,9,0,253,7,0,6,0,12,0,8,0,0,0,99,128, - 99,0,115,0,54,0,54,0,30,0,28,0,28,0,28,0, - 248,0,112,0,8,14,14,10,1,253,192,192,192,220,230,195, - 195,195,199,230,220,192,192,192,8,14,14,9,1,253,108,0, - 0,199,198,238,108,108,60,56,56,56,48,48}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=16 dy= 0 ascent=11 len=18 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11n[280] U8G_FONT_SECTION("u8g_font_fub11n") = { - 0,24,21,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,120,48,252,48,120,9,9,18,16, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,3,4,4,5,1,254,96,96,192,192,4,2, - 2,6,1,3,240,240,2,2,2,5,2,0,192,192,5,12, - 12,7,1,255,24,24,16,48,48,32,32,96,96,64,192,192, - 8,11,11,9,1,0,60,102,195,195,195,195,195,195,195,102, - 60,4,11,11,9,2,0,48,240,240,48,48,48,48,48,48, - 48,48,8,11,11,9,1,0,62,119,99,3,7,6,30,60, - 112,224,255,8,11,11,9,1,0,124,238,198,6,60,6,3, - 195,199,126,60,8,11,11,9,1,0,14,30,30,54,102,102, - 198,255,255,6,6,8,11,11,9,1,0,254,192,192,192,254, - 231,3,3,199,254,124,8,11,11,9,1,0,60,118,67,192, - 222,231,195,195,195,102,60,8,11,11,9,1,0,255,3,7, - 6,14,12,28,24,56,56,112,8,11,11,9,1,0,126,231, - 195,231,60,102,195,195,195,231,60,8,11,11,9,1,0,60, - 102,195,195,231,127,3,3,198,110,60,2,8,8,5,2,0, - 192,192,0,0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=12 len=28 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11r[1829] U8G_FONT_SECTION("u8g_font_fub11r") = { - 0,24,21,255,252,11,2,82,5,55,32,127,253,12,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=21 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14[5788] U8G_FONT_SECTION("u8g_font_fub14") = { - 0,31,26,254,251,14,3,116,7,95,32,255,252,21,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,0,3,14, - 14,9,3,252,224,224,0,0,224,224,224,224,224,224,224,224, - 224,224,9,14,28,11,1,254,2,0,2,0,62,0,127,0, - 231,128,231,128,232,0,232,0,235,128,243,128,127,0,62,0, - 32,0,32,0,10,14,28,12,1,0,31,0,63,192,113,192, - 112,0,112,0,254,0,254,0,112,0,112,0,112,0,112,0, - 112,0,255,192,255,192,10,10,20,12,1,3,128,64,94,128, - 33,0,64,128,64,128,64,128,64,128,33,0,94,128,128,64, - 11,14,28,13,1,0,224,224,225,192,113,192,113,128,251,224, - 251,224,31,0,255,224,255,224,14,0,14,0,14,0,14,0, - 14,0,1,18,18,7,3,252,128,128,128,128,128,128,128,128, - 0,0,128,128,128,128,128,128,128,128,8,18,18,10,1,252, - 62,126,224,224,112,60,126,231,231,231,254,124,30,7,7,135, - 254,56,7,2,2,7,0,12,238,238,15,14,28,17,1,0, - 7,192,31,240,55,152,111,204,204,228,156,2,156,2,156,226, - 140,226,207,198,71,132,32,24,28,112,15,192,7,9,9,8, - 1,5,120,204,124,204,204,252,36,0,254,10,8,16,12,1, - 1,57,192,113,128,115,128,231,0,231,0,115,128,113,128,57, - 192,11,5,10,13,1,4,255,224,255,224,0,32,0,32,0, - 32,255,15,14,28,17,1,0,7,192,31,240,63,152,111,236, - 204,100,140,98,143,194,143,194,140,98,204,102,76,100,32,24, - 28,112,15,192,6,2,2,6,0,12,252,252,5,5,5,7, - 1,9,112,136,136,136,112,12,12,24,20,4,0,2,0,2, - 0,2,0,255,240,255,240,2,0,2,0,2,0,0,0,0, - 0,255,240,255,240,6,8,8,8,1,6,120,204,12,24,48, - 224,252,252,6,7,7,8,1,7,120,204,12,48,12,204,120, - 4,4,4,4,1,12,48,96,96,192,255,9,17,34,11,1, - 253,63,128,121,0,249,0,249,0,249,0,249,0,121,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9, - 0,9,0,3,3,3,6,2,5,224,224,224,5,5,5,5, - 1,251,64,112,24,24,240,4,8,8,6,1,6,48,240,48, - 48,48,48,48,48,7,9,9,9,1,5,56,68,198,198,198, - 68,56,0,254,10,8,16,12,1,1,231,0,99,128,115,128, - 57,192,57,192,115,128,99,128,231,0,14,14,28,16,1,0, - 112,48,240,48,48,96,48,192,48,192,49,128,49,156,51,60, - 6,60,6,108,12,204,24,252,24,12,48,12,15,14,28,17, - 1,0,112,48,240,32,48,96,48,192,48,192,49,128,51,60, - 51,102,6,6,12,14,12,28,24,48,48,126,48,126,14,14, - 28,16,1,0,120,24,204,48,12,48,48,96,12,192,204,192, - 121,156,1,188,3,60,6,108,6,204,12,252,8,12,24,12, - 9,14,28,11,1,252,14,0,14,0,0,0,14,0,14,0, - 14,0,60,0,112,0,224,0,224,0,225,128,225,128,127,128, - 62,0,14,20,40,14,0,0,12,0,14,0,6,0,3,0, - 0,0,0,0,7,128,7,128,7,192,15,192,14,192,28,224, - 28,224,28,96,56,112,63,240,63,248,112,56,112,56,224,28, - 14,20,40,14,0,0,0,192,1,192,1,128,3,0,0,0, - 0,0,7,128,7,128,7,192,15,192,14,192,28,224,28,224, - 28,96,56,112,63,240,63,248,112,56,112,56,224,28,14,20, - 40,14,0,0,3,128,7,128,6,192,12,192,0,0,0,0, - 7,128,7,128,7,192,15,192,14,192,28,224,28,224,28,96, - 56,112,63,240,63,248,112,56,112,56,224,28,14,19,38,14, - 0,0,6,64,15,192,8,128,0,0,0,0,7,128,7,128, - 7,192,15,192,14,192,28,224,28,224,28,96,56,112,63,240, - 63,248,112,56,112,56,224,28,14,19,38,15,0,0,14,224, - 14,224,0,0,0,0,0,0,3,128,7,128,7,192,7,192, - 14,192,14,224,28,224,28,112,28,112,63,248,63,248,112,56, - 112,28,224,28,13,21,42,15,1,0,7,0,8,128,8,128, - 8,128,7,0,0,0,0,0,7,0,15,128,15,128,29,192, - 29,192,29,192,56,224,56,224,48,96,127,240,127,240,224,56, - 224,56,224,56,19,14,42,20,0,0,0,255,224,1,255,224, - 3,240,0,3,112,0,7,112,0,7,112,0,14,127,192,14, - 127,192,28,112,0,31,240,0,63,240,0,112,112,0,112,127, - 224,224,127,224,13,18,36,15,1,252,15,128,63,224,112,240, - 96,112,224,0,224,0,224,0,224,0,224,0,224,120,96,112, - 112,240,63,224,31,128,4,0,7,128,1,128,15,0,10,20, - 40,12,1,0,48,0,56,0,24,0,12,0,0,0,0,0, - 255,192,255,192,224,0,224,0,224,0,224,0,255,128,255,128, - 224,0,224,0,224,0,224,0,255,192,255,192,10,20,40,12, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,255,192, - 255,192,224,0,224,0,224,0,224,0,255,128,255,128,224,0, - 224,0,224,0,224,0,255,192,255,192,10,20,40,12,1,0, - 28,0,30,0,54,0,35,0,0,0,0,0,255,192,255,192, - 224,0,224,0,224,0,224,0,255,128,255,128,224,0,224,0, - 224,0,224,0,255,192,255,192,10,19,38,12,1,0,119,0, - 119,0,0,0,0,0,0,0,255,192,255,192,224,0,224,0, - 224,0,224,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,192,255,192,5,20,20,5,255,0,224,96,48,16,0,0, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,4,20, - 20,5,1,0,48,112,96,192,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,5,20,20,5,0,0,112,112, - 216,136,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,7,19,19,7,0,0,238,238,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,13,14,28,14,0, - 0,127,128,127,224,112,240,112,112,112,56,112,56,254,56,254, - 56,112,56,112,56,112,112,112,240,127,224,127,128,13,19,38, - 15,1,0,12,64,31,128,17,0,0,0,0,0,240,56,248, - 56,248,56,252,56,238,56,238,56,231,56,231,56,227,184,227, - 184,225,248,225,248,224,248,224,248,14,20,40,16,1,0,28, - 0,12,0,6,0,2,0,0,0,0,0,15,192,63,240,112, - 112,96,56,224,24,224,28,224,28,224,28,224,28,224,24,96, - 56,112,112,63,240,15,192,14,20,40,16,1,0,0,224,1, - 192,1,128,3,0,0,0,0,0,15,192,63,240,112,112,96, - 56,224,24,224,28,224,28,224,28,224,28,224,24,96,56,112, - 112,63,240,15,192,14,20,40,16,1,0,7,0,7,128,13, - 192,8,192,0,0,0,0,15,192,63,240,112,112,96,56,224, - 24,224,28,224,28,224,28,224,28,224,24,96,56,112,112,63, - 240,15,192,14,19,38,16,1,0,7,192,15,192,0,0,0, - 0,0,0,15,192,63,240,112,48,96,56,224,24,224,28,224, - 28,224,28,224,28,224,24,112,56,120,240,63,240,15,192,14, - 19,38,16,1,0,29,192,29,192,0,0,0,0,0,0,15, - 192,63,240,112,112,96,56,224,24,224,28,224,28,224,28,224, - 28,224,24,96,56,112,112,63,240,15,192,10,10,20,20,5, - 1,128,64,192,192,97,128,51,0,12,0,12,0,18,0,33, - 0,64,128,128,64,15,16,32,16,0,255,0,2,7,230,31, - 252,56,60,48,60,112,108,112,238,113,206,115,142,119,14,126, - 12,124,28,56,56,63,240,239,224,64,0,12,20,40,14,1, - 0,56,0,24,0,12,0,6,0,0,0,0,0,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,113,224,63,192,31,128,12,20,40,14,1,0,1, - 192,3,128,3,0,6,0,0,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,113,224,63,192,31,128,12,20,40,14,1,0,14,0,15, - 0,27,0,17,128,0,0,0,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,113, - 224,63,192,31,128,12,19,38,14,1,0,29,192,29,192,0, - 0,0,0,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,63,192,31, - 128,12,19,38,13,0,0,1,128,3,0,2,0,0,0,0, - 0,240,112,112,240,56,224,56,224,29,192,29,192,15,128,15, - 0,7,0,7,0,7,0,7,0,7,0,7,0,11,14,28, - 13,1,0,224,0,224,0,255,0,255,192,225,192,224,224,224, - 224,224,224,225,192,255,128,254,0,224,0,224,0,224,0,10, - 14,28,12,1,0,62,0,127,128,227,128,227,128,227,0,231, - 0,238,0,238,0,231,128,227,192,225,192,253,192,255,192,239, - 128,9,16,32,11,1,0,112,0,48,0,24,0,8,0,0, - 0,0,0,62,0,127,128,227,128,31,128,127,128,227,128,227, - 128,227,128,255,128,57,128,9,16,32,11,1,0,7,0,6, - 0,12,0,12,0,0,0,0,0,62,0,127,128,227,128,3, - 128,63,128,251,128,227,128,227,128,255,128,121,128,9,16,32, - 11,1,0,28,0,30,0,54,0,35,0,0,0,0,0,62, - 0,127,128,227,128,31,128,127,128,227,128,227,128,227,128,255, - 128,57,128,9,14,28,11,1,0,63,0,62,0,0,0,0, - 0,62,0,127,128,227,128,31,128,127,128,227,128,227,128,227, - 128,255,128,57,128,9,15,30,11,1,0,119,0,119,0,0, - 0,0,0,0,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,9,17,34,11,1,0,28, - 0,34,0,34,0,34,0,28,0,0,0,0,0,62,0,127, - 128,227,128,31,128,127,128,227,128,227,128,227,128,255,128,57, - 128,16,10,20,18,1,0,62,124,127,254,227,135,31,255,127, - 255,227,128,227,128,227,199,254,254,60,124,9,14,28,11,1, - 252,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,16,0,30,0,6,0,62,0,9,16,32, - 11,1,0,112,0,48,0,24,0,8,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,9,16,32,11,1,0,7,0,6,0,12,0,8, - 0,0,0,0,0,30,0,127,0,227,128,227,128,255,128,255, - 128,224,0,227,128,127,128,62,0,9,16,32,11,1,0,28, - 0,30,0,54,0,35,0,0,0,0,0,30,0,127,0,227, - 128,227,128,255,128,255,128,224,0,227,128,127,128,62,0,9, - 15,30,11,1,0,119,0,119,0,0,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,4,15,15,5,0,0,192,224,96,48,0,112,112, - 112,112,112,112,112,112,112,112,4,15,15,4,1,0,112,96, - 192,128,0,224,224,224,224,224,224,224,224,224,224,7,15,15, - 5,255,0,56,124,76,198,0,56,56,56,56,56,56,56,56, - 56,56,7,14,14,6,0,0,238,238,0,0,56,56,56,56, - 56,56,56,56,56,56,10,14,28,12,1,0,57,128,15,0, - 31,0,99,0,31,128,127,128,97,192,225,192,225,192,225,192, - 225,192,97,192,127,128,31,0,9,14,28,11,1,0,62,0, - 60,0,0,0,0,0,239,0,255,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,16,32,12,1,0, - 48,0,24,0,24,0,12,0,0,0,0,0,30,0,127,128, - 97,128,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 10,16,32,12,1,0,3,0,6,0,6,0,12,0,0,0, - 0,0,30,0,127,128,97,128,225,192,225,192,225,192,225,192, - 97,128,127,128,30,0,10,16,32,12,1,0,12,0,30,0, - 26,0,51,0,0,0,0,0,30,0,127,128,97,128,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,10,14,28,12, - 1,0,31,0,62,0,0,0,0,0,30,0,127,128,97,128, - 225,192,225,192,225,192,225,192,97,128,127,128,30,0,10,15, - 30,12,1,0,59,128,59,128,0,0,0,0,0,0,30,0, - 127,128,97,128,225,192,225,192,225,192,225,192,97,128,127,128, - 30,0,12,8,16,20,4,2,6,0,14,0,0,0,255,240, - 255,240,0,0,6,0,14,0,10,12,24,12,1,0,0,192, - 31,128,127,128,99,128,231,192,237,192,233,192,241,192,113,128, - 127,128,222,0,128,0,9,16,32,11,1,0,112,0,48,0, - 24,0,8,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,9,16,32,11, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,227,128, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,255,128, - 123,128,9,16,32,11,1,0,28,0,28,0,54,0,34,0, - 0,0,0,0,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,255,128,123,128,9,15,30,11,1,0,119,0, - 119,0,0,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,11,19,38,11, - 0,252,1,128,3,0,2,0,4,0,0,0,112,224,113,192, - 113,192,57,192,59,128,27,128,31,128,31,0,15,0,14,0, - 14,0,78,0,252,0,120,0,10,18,36,12,1,252,224,0, - 224,0,224,0,224,0,239,0,255,128,225,128,225,192,225,192, - 225,192,225,192,225,192,255,128,255,0,224,0,224,0,224,0, - 224,0,11,18,36,11,0,252,59,128,59,128,0,0,0,0, - 225,224,113,192,113,192,115,128,59,128,59,128,31,0,31,0, - 31,0,14,0,14,0,12,0,28,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=12 h=15 x= 4 y= 7 dx=20 dy= 0 ascent=14 len=28 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14n[452] U8G_FONT_SECTION("u8g_font_fub14n") = { - 0,31,26,254,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,102,60,24,255,24,60,102,12,12, - 24,20,4,0,2,0,2,0,2,0,2,0,2,0,255,240, - 255,240,2,0,2,0,2,0,2,0,2,0,4,5,5,6, - 1,254,112,112,96,224,192,5,3,3,7,1,4,248,248,248, - 3,3,3,6,2,0,224,224,224,6,15,15,9,1,255,12, - 12,12,12,24,24,24,48,48,48,96,96,96,96,192,10,14, - 28,11,1,0,30,0,127,0,97,128,225,192,225,192,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 6,14,14,11,2,0,28,124,252,220,28,28,28,28,28,28, - 28,28,28,28,10,14,28,11,1,0,31,0,127,128,97,192, - 225,192,1,192,1,192,3,128,7,128,15,0,30,0,56,0, - 112,0,255,192,255,192,10,14,28,11,1,0,62,0,127,0, - 227,128,3,128,3,128,31,0,31,0,3,128,1,192,1,192, - 225,192,243,128,127,0,62,0,11,14,28,11,1,0,7,128, - 15,128,15,128,27,128,59,128,51,128,115,128,99,128,227,128, - 255,224,255,224,3,128,3,128,3,128,10,14,28,11,1,0, - 255,128,255,128,224,0,224,0,224,0,255,0,255,128,225,128, - 1,192,1,192,225,192,227,128,127,0,62,0,10,14,28,11, - 1,0,30,0,63,128,97,128,96,0,224,0,223,0,255,128, - 225,128,225,192,225,192,225,192,97,128,127,128,30,0,10,14, - 28,11,1,0,255,192,255,192,1,192,3,128,3,128,7,128, - 7,0,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 10,14,28,11,1,0,63,0,127,128,225,192,225,192,225,128, - 127,0,63,0,115,128,225,192,225,192,225,192,225,192,127,128, - 63,0,10,14,28,11,1,0,30,0,127,0,225,128,225,128, - 225,192,225,192,243,192,127,192,25,192,1,128,225,128,99,128, - 127,0,62,0,3,10,10,7,3,0,224,224,224,0,0,0, - 0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=16 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14r[2680] U8G_FONT_SECTION("u8g_font_fub14r") = { - 0,31,26,254,251,14,3,116,7,95,32,127,252,16,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=15 dx=24 dy= 0 ascent=25 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17[6938] U8G_FONT_SECTION("u8g_font_fub17") = { - 0,34,31,254,250,17,4,8,8,209,32,255,251,25,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,7,0,0,3,17,17,9, - 3,251,224,224,224,0,0,224,224,224,224,224,224,224,224,224, - 224,224,224,10,18,36,13,1,253,1,0,1,0,3,0,31, - 0,127,128,115,192,231,192,228,0,228,0,236,0,233,192,233, - 192,123,192,127,128,31,0,16,0,48,0,32,0,11,17,34, - 13,1,0,15,128,31,224,56,224,56,224,56,0,56,0,255, - 0,255,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,255,224,255,224,11,12,24,13,1,4,128,32,95,64,113, - 128,96,128,64,64,64,64,64,64,64,64,96,192,49,128,95, - 64,128,32,13,17,34,15,1,0,224,120,240,120,112,112,120, - 240,56,224,253,248,253,248,31,192,15,128,255,248,255,248,7, - 0,7,0,7,0,7,0,7,0,7,0,1,22,22,8,4, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,128,128, - 128,128,128,128,128,128,128,9,21,42,11,1,252,63,0,127, - 0,241,0,224,0,224,0,120,0,62,0,63,0,119,128,227, - 128,227,128,231,128,255,0,126,0,31,0,7,128,3,128,3, - 128,135,128,255,0,124,0,8,3,3,8,0,15,231,231,231, - 17,17,51,19,1,0,3,224,0,15,248,0,60,30,0,51, - 230,0,103,243,0,103,59,0,206,57,128,206,1,128,206,1, - 128,206,1,128,206,57,128,78,57,0,103,243,0,51,230,0, - 56,14,0,15,248,0,3,224,0,8,11,11,10,1,6,60, - 102,6,126,230,198,198,126,0,0,255,11,9,18,14,1,1, - 60,224,56,224,121,224,113,192,243,192,113,192,121,224,56,224, - 60,224,12,5,10,14,1,5,255,240,0,16,0,16,0,16, - 0,16,255,17,17,51,19,1,0,3,224,0,15,248,0,60, - 30,0,55,246,0,103,251,0,102,27,0,198,25,128,199,241, - 128,199,241,128,198,57,128,198,25,128,70,25,0,102,27,0, - 48,6,0,56,14,0,15,248,0,3,224,0,7,2,2,7, - 0,15,254,254,5,5,5,7,1,12,112,136,136,136,112,14, - 14,28,24,5,0,2,0,2,0,2,0,2,0,255,252,255, - 252,2,0,2,0,2,0,2,0,0,0,0,0,255,252,255, - 252,7,9,9,9,1,8,124,230,6,14,28,56,224,254,254, - 7,9,9,9,1,8,124,206,6,14,56,14,6,206,124,5, - 4,4,5,1,14,56,112,96,192,255,11,20,40,14,2,253, - 63,224,125,128,253,128,253,128,253,128,253,128,253,128,125,128, - 13,128,13,128,13,128,13,128,13,128,13,128,13,128,13,128, - 13,128,13,128,13,128,13,128,3,3,3,7,2,6,224,224, - 224,6,5,5,6,1,251,32,56,12,12,248,4,9,9,6, - 1,8,48,240,176,48,48,48,48,48,48,8,11,11,10,1, - 6,60,102,195,195,195,195,231,126,60,0,255,12,9,18,14, - 1,1,227,128,113,192,121,224,56,224,60,240,56,224,121,224, - 113,192,227,128,16,17,34,18,1,0,48,24,240,24,176,48, - 48,112,48,96,48,224,48,192,49,128,49,142,3,14,3,30, - 6,54,14,54,12,102,24,127,24,6,48,6,16,17,34,18, - 1,0,48,24,240,48,176,48,48,96,48,224,48,192,49,192, - 49,128,51,62,3,119,6,3,6,7,12,14,28,28,24,112, - 48,127,48,127,17,17,51,19,1,0,124,6,0,198,12,0, - 6,12,0,56,24,0,14,56,0,6,48,0,206,112,0,124, - 96,0,0,199,0,1,199,0,1,143,0,3,155,0,3,27, - 0,7,51,0,6,63,128,12,3,0,28,3,0,10,17,34, - 12,1,251,14,0,14,0,0,0,0,0,14,0,14,0,14, - 0,28,0,56,0,112,0,240,0,224,0,224,128,224,192,115, - 192,127,128,31,0,16,24,48,16,0,0,14,0,7,0,3, - 0,3,128,1,128,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,24,48,16,0, - 0,0,112,0,96,0,224,0,192,1,128,0,0,0,0,3, - 192,3,192,3,224,7,224,7,240,15,112,14,112,14,120,30, - 56,28,56,28,60,63,252,63,252,127,254,120,14,112,15,240, - 7,16,24,48,16,0,0,1,192,3,192,3,224,6,96,4, - 48,0,0,0,0,3,192,3,192,3,224,7,224,7,240,15, - 112,14,112,14,120,30,56,28,56,28,60,63,252,63,252,127, - 254,120,14,112,15,240,7,16,23,46,16,0,0,0,16,7, - 240,7,224,0,0,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,23,46,17,0, - 0,14,112,14,112,14,112,0,0,0,0,0,0,3,192,3, - 192,7,224,7,224,7,224,15,112,14,112,30,120,30,56,28, - 56,60,60,63,252,127,254,127,254,112,14,240,15,224,7,15, - 25,50,16,1,0,3,128,6,192,4,64,4,64,4,192,3, - 128,0,0,0,0,3,128,7,192,7,192,15,192,14,224,14, - 224,30,224,28,112,28,112,60,112,56,120,63,248,127,252,127, - 252,112,28,240,30,224,14,21,17,51,23,1,0,0,255,248, - 0,255,248,1,248,0,1,248,0,3,184,0,3,184,0,7, - 56,0,7,63,248,14,63,248,14,56,0,30,56,0,31,248, - 0,63,248,0,120,56,0,112,56,0,240,63,248,224,63,248, - 14,22,44,16,1,251,15,192,31,240,63,248,120,56,112,60, - 240,28,224,0,224,0,224,0,224,0,224,0,224,0,112,28, - 112,60,56,120,31,240,15,192,3,0,3,192,0,96,0,96, - 7,192,11,24,48,15,2,0,56,0,24,0,28,0,12,0, - 6,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,11,24,48,15,2,0,3,128, - 3,0,7,0,6,0,12,0,0,0,0,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,11,24, - 48,15,2,0,14,0,31,0,27,0,59,128,49,128,0,0, - 0,0,255,224,255,224,255,224,224,0,224,0,224,0,224,0, - 255,224,255,224,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,255,224,11,23,46,15,2,0,59,128,59,128,59,128, - 0,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,5,24,24,7,0,0,224,224, - 96,48,16,0,0,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,5,24,24,5,1,0,56,48,112,96, - 192,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,7,24,24,7,0,0,56,56,108,108,198,0, - 0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,8,23,23,8,0,0,231,231,231,0,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,15, - 17,34,16,0,0,63,192,63,240,63,248,56,60,56,28,56, - 30,56,14,56,14,255,14,255,14,56,14,56,30,56,28,56, - 60,63,248,63,240,63,192,14,23,46,18,2,0,0,32,15, - 192,15,192,0,0,0,0,0,0,248,28,248,28,252,28,252, - 28,238,28,238,28,231,28,231,28,231,156,227,156,227,220,225, - 220,225,220,224,252,224,252,224,124,224,124,15,24,48,17,1, - 0,28,0,14,0,6,0,3,0,1,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,240,14,112,28,120,60,63,248,31,240,7, - 224,15,24,48,17,1,0,0,112,0,224,0,192,1,128,1, - 0,0,0,0,0,7,192,31,240,63,248,120,60,112,28,240, - 30,224,14,224,14,224,14,224,14,224,14,240,14,112,28,120, - 60,63,248,31,240,7,224,15,24,48,17,1,0,3,128,7, - 192,6,192,12,96,8,32,0,0,0,0,7,192,31,240,63, - 248,120,60,112,28,240,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,60,63,248,31,240,7,224,15,23,46, - 17,1,0,7,32,15,224,8,192,0,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,120,60,63,248,31,240,7, - 224,15,23,46,17,1,0,14,112,14,112,14,112,0,0,0, - 0,0,0,7,192,31,240,63,248,120,60,112,28,240,30,224, - 14,224,14,224,14,224,14,224,14,240,14,112,28,120,60,63, - 248,31,240,7,224,13,12,24,23,5,1,192,24,96,48,48, - 96,24,192,13,128,7,0,7,0,13,128,24,192,48,96,96, - 48,192,24,17,19,57,17,0,255,0,1,0,3,241,128,15, - 251,0,31,254,0,60,30,0,56,30,0,120,63,0,112,119, - 0,112,231,0,113,199,0,115,135,0,119,7,0,126,7,0, - 60,14,0,60,30,0,63,252,0,111,248,0,227,224,0,64, - 0,0,14,24,48,18,2,0,28,0,12,0,14,0,6,0, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,56,127,248,63,240,15,192,14,24,48,18,2,0,0,224, - 0,192,1,192,1,128,3,0,0,0,0,0,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,240,60,112,56,127,248,63,240,15,192,14,24, - 48,18,2,0,7,128,7,128,15,192,12,192,24,96,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,240,60,112,56,127,248, - 63,240,15,192,14,23,46,16,1,0,28,224,28,224,28,224, - 0,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 120,120,127,248,63,240,15,192,13,23,46,15,1,0,1,192, - 1,128,3,0,2,0,0,0,0,0,224,56,240,120,112,112, - 120,240,56,224,61,224,29,192,31,192,15,128,15,128,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,12,17,34,15, - 1,0,224,0,224,0,224,0,255,128,255,224,255,224,224,240, - 224,112,224,112,224,240,255,224,255,224,255,128,224,0,224,0, - 224,0,224,0,12,17,34,14,1,0,63,0,127,128,241,192, - 225,192,225,192,227,128,231,0,238,0,238,0,239,128,231,192, - 225,224,224,112,238,112,238,112,239,224,231,192,10,19,38,13, - 1,0,112,0,56,0,24,0,12,0,4,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,19,38,13,1,0,3,128, - 3,0,6,0,6,0,12,0,0,0,0,0,31,0,127,128, - 113,192,1,192,31,192,127,192,241,192,225,192,225,192,243,192, - 127,192,60,192,10,19,38,13,1,0,14,0,30,0,27,0, - 51,0,33,128,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 10,17,34,13,1,0,31,128,63,0,0,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,63,0,127,128,241,192, - 1,192,31,192,127,192,241,192,225,192,225,192,243,192,127,192, - 60,192,10,20,40,13,1,0,14,0,27,0,17,0,19,0, - 31,0,14,0,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 18,12,36,20,1,0,31,31,0,127,191,128,113,243,128,0, - 225,192,31,255,192,127,255,192,240,224,0,224,224,0,224,225, - 192,241,243,192,127,63,128,62,31,0,10,17,34,12,1,251, - 31,0,127,128,115,192,225,192,224,0,224,0,224,0,224,0, - 225,192,115,192,127,128,63,0,8,0,14,0,3,0,3,0, - 30,0,11,19,38,13,1,0,112,0,56,0,24,0,12,0, - 4,0,0,0,0,0,31,0,63,128,113,192,225,224,255,224, - 255,224,224,0,224,0,225,192,113,192,127,192,31,0,11,19, - 38,13,1,0,3,128,3,0,7,0,6,0,12,0,0,0, - 0,0,31,0,63,128,113,192,225,224,255,224,255,224,224,0, - 224,0,225,192,113,192,127,192,31,0,11,19,38,13,1,0, - 14,0,31,0,27,0,49,128,33,128,0,0,0,0,31,0, - 63,128,113,192,225,224,255,224,255,224,224,0,224,0,225,192, - 113,192,127,192,31,0,11,18,36,13,1,0,115,128,115,128, - 115,128,0,0,0,0,0,0,31,0,63,128,115,192,225,192, - 255,224,255,224,224,0,224,0,225,192,115,192,127,128,31,0, - 5,18,18,6,255,0,224,112,48,24,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,4,18,18,5,1,0,112,96, - 224,192,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 7,18,18,6,255,0,56,124,108,198,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,8,18,18,7,255,0,231,231, - 231,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56, - 12,17,34,14,1,0,28,96,15,192,15,128,59,128,33,192, - 31,224,63,224,112,224,240,240,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,11,17,34,13,1,0,31,128, - 63,0,0,0,0,0,0,0,239,128,255,192,241,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 12,19,38,14,1,0,56,0,28,0,12,0,6,0,6,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,19,38,14, - 1,0,1,192,3,128,3,0,6,0,4,0,0,0,0,0, - 31,128,63,192,112,224,240,224,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,12,19,38,14,1,0,15,0, - 15,0,31,128,25,128,48,192,0,0,0,0,31,128,63,192, - 112,224,240,224,224,112,224,112,224,112,224,112,240,240,112,224, - 63,192,31,128,12,17,34,14,1,0,31,192,63,128,0,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,18,36,14, - 1,0,57,192,57,192,57,192,0,0,0,0,0,0,31,128, - 63,192,112,224,240,224,224,112,224,112,224,112,224,112,240,240, - 112,224,63,192,31,128,14,10,20,24,5,2,7,0,7,0, - 6,0,0,0,255,252,255,252,0,0,2,0,7,0,7,0, - 12,15,30,14,1,254,0,32,0,48,31,224,63,192,113,224, - 241,240,227,112,230,112,236,112,248,112,248,240,112,224,127,192, - 223,128,192,0,11,19,38,13,1,0,112,0,56,0,28,0, - 12,0,6,0,0,0,0,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,241,224,127,224,62,224, - 11,19,38,13,1,0,3,128,3,128,7,0,6,0,12,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,241,224,127,224,62,224,11,19,38,13, - 1,0,14,0,31,0,27,0,49,128,32,128,0,0,0,0, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,241,224,127,224,62,224,11,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,241,224,127,224, - 62,224,11,23,46,13,1,251,1,128,3,128,3,0,6,0, - 0,0,0,0,224,224,224,224,241,224,113,192,121,192,59,192, - 59,128,63,128,31,128,31,0,31,0,15,0,14,0,14,0, - 254,0,252,0,120,0,12,22,44,15,2,251,224,0,224,0, - 224,0,224,0,224,0,239,128,255,192,248,224,240,240,224,112, - 224,112,224,112,224,112,240,240,241,224,255,192,239,128,224,0, - 224,0,224,0,224,0,224,0,12,22,44,14,1,251,57,192, - 57,192,57,192,0,0,0,0,240,112,240,240,112,240,120,224, - 121,224,57,192,61,192,31,192,31,128,31,128,15,128,15,0, - 15,0,15,0,14,0,30,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17n[530] U8G_FONT_SECTION("u8g_font_fub17n") = { - 0,34,31,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,54,0,54,0,54,0,156,128,255, - 128,156,128,54,0,54,0,54,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,255,252,2, - 0,2,0,2,0,2,0,2,0,2,0,5,6,6,7,1, - 253,56,112,112,96,96,224,6,3,3,8,1,4,252,252,252, - 3,3,3,7,2,0,224,224,224,8,18,18,10,1,255,7, - 6,6,14,12,12,12,28,24,24,56,48,48,48,112,96,96, - 224,11,17,34,13,1,0,31,0,63,128,113,192,112,192,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,112,192,113,192,63,128,31,0,7,17,17,13,2,0,14, - 62,254,254,206,14,14,14,14,14,14,14,14,14,14,14,14, - 12,17,34,13,1,0,15,128,63,224,120,224,112,112,0,112, - 0,112,0,240,1,224,3,224,7,192,15,128,30,0,60,0, - 248,0,255,240,255,240,255,240,11,17,34,13,1,0,31,0, - 127,192,241,224,224,224,0,224,0,224,1,192,15,128,15,128, - 1,192,0,224,0,224,224,224,241,224,255,192,127,128,31,0, - 12,17,34,13,1,0,3,192,7,192,7,192,15,192,29,192, - 29,192,57,192,113,192,113,192,225,192,255,240,255,240,255,240, - 1,192,1,192,1,192,1,192,11,17,34,13,1,0,255,192, - 255,192,255,192,224,0,224,0,224,0,239,128,255,192,241,224, - 224,224,0,224,0,224,224,224,225,224,255,192,127,128,63,0, - 11,17,34,13,1,0,15,0,63,192,57,224,112,224,96,0, - 224,0,239,128,255,192,241,224,224,224,224,224,224,224,224,224, - 96,224,113,192,63,128,31,0,11,17,34,13,1,0,255,224, - 255,224,255,224,0,224,1,224,1,192,3,192,3,128,7,128, - 7,128,7,0,15,0,14,0,30,0,28,0,60,0,60,0, - 11,17,34,13,1,0,31,0,127,192,241,224,224,224,224,224, - 224,224,113,192,63,128,63,128,113,192,224,224,224,224,224,224, - 224,224,241,224,127,192,31,0,11,17,34,13,1,0,31,0, - 63,128,113,192,224,192,224,224,224,224,224,224,241,224,127,224, - 62,224,0,224,0,224,224,224,225,192,113,192,127,128,30,0, - 3,12,12,7,3,0,224,224,224,0,0,0,0,0,0,224, - 224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17r[3222] U8G_FONT_SECTION("u8g_font_fub17r") = { - 0,34,31,254,250,17,4,8,8,209,32,127,251,19,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=18 dx=28 dy= 0 ascent=29 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =29 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20[8916] U8G_FONT_SECTION("u8g_font_fub20") = { - 0,40,36,254,249,20,4,242,11,37,32,255,251,29,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,8,0,0,4,19,19,10, - 3,251,240,240,240,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,12,20,40,16,2,253,0,192,0,192,0, - 128,15,128,63,224,125,224,115,240,243,240,242,0,242,0,246, - 0,244,0,244,240,124,240,121,224,63,224,31,128,24,0,16, - 0,48,0,14,20,40,15,1,0,7,224,31,248,62,120,60, - 60,60,60,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,255,252,255, - 252,15,14,28,17,1,5,192,6,99,204,55,248,28,48,24, - 24,48,12,48,12,48,12,48,12,24,24,28,48,63,248,99, - 204,192,6,15,20,40,17,1,0,240,30,240,62,120,60,120, - 124,56,120,60,120,252,254,254,254,31,224,15,224,15,192,255, - 254,255,254,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,1,25,25,9,4,251,128,128,128,128,128,128,128,128,128, - 128,128,0,0,0,128,128,128,128,128,128,128,128,128,128,128, - 11,24,48,13,1,252,31,128,63,192,121,192,240,64,240,0, - 248,0,124,0,63,0,63,128,127,192,243,224,225,224,225,192, - 243,192,255,128,126,0,31,128,7,192,3,224,1,224,1,192, - 195,192,255,128,127,0,9,3,6,9,0,17,227,128,227,128, - 227,128,20,20,60,24,2,0,1,248,0,7,254,0,31,15, - 128,60,3,192,49,252,192,99,254,224,103,158,96,199,15,48, - 207,0,48,207,0,48,207,0,48,207,15,48,199,14,48,103, - 158,96,99,252,96,49,248,192,56,1,192,30,7,128,7,254, - 0,1,248,0,9,13,26,11,1,7,62,0,127,128,99,128, - 3,128,63,128,115,128,227,128,227,128,255,128,125,128,0,0, - 0,0,255,128,14,11,22,16,1,2,30,60,28,56,60,120, - 120,240,120,240,241,224,120,240,56,240,60,120,28,56,30,60, - 15,6,12,17,1,6,255,254,255,254,0,6,0,6,0,6, - 0,6,255,20,20,60,24,2,0,1,248,0,7,254,0,31, - 15,128,60,3,192,51,252,192,99,254,224,99,14,96,195,6, - 48,195,28,48,195,248,48,195,252,48,195,12,48,195,14,48, - 99,6,96,99,6,96,51,6,192,56,1,192,30,7,128,7, - 254,0,1,248,0,9,2,4,9,0,18,255,128,255,128,6, - 6,6,8,1,14,120,204,132,132,204,120,16,16,32,26,5, - 0,1,128,1,128,1,128,1,128,255,255,255,255,1,128,1, - 128,1,128,1,128,1,128,0,0,0,0,0,0,255,255,255, - 255,9,11,22,11,1,9,62,0,127,0,227,128,3,128,7, - 0,15,0,30,0,56,0,112,0,255,0,255,0,8,11,11, - 10,1,9,60,254,231,7,30,30,7,7,231,254,124,6,5, - 5,6,1,16,60,56,112,96,192,255,13,24,48,15,1,252, - 31,248,62,96,126,96,254,96,254,96,254,96,254,96,126,96, - 126,96,30,96,6,96,6,96,6,96,6,96,6,96,6,96, - 6,96,6,96,6,96,6,96,6,96,6,96,6,96,6,96, - 4,4,4,8,2,8,240,240,240,240,7,6,6,7,1,249, - 32,60,14,6,254,252,5,11,11,8,2,9,56,248,248,56, - 56,56,56,56,56,56,56,10,13,26,12,1,7,30,0,127, - 128,115,128,225,192,225,192,225,192,225,192,99,128,127,128,30, - 0,0,0,0,0,255,192,13,11,22,16,2,2,225,192,241, - 224,112,224,120,240,120,240,60,120,120,240,120,240,113,224,241, - 224,225,192,19,20,60,22,2,0,56,7,0,248,14,0,184, - 14,0,56,28,0,56,28,0,56,56,0,56,48,0,56,112, - 0,56,224,0,56,227,192,57,195,192,1,199,192,3,143,192, - 3,13,192,7,29,192,14,57,192,14,63,224,28,63,224,28, - 1,192,56,1,192,19,20,60,21,1,0,56,6,0,248,14, - 0,184,12,0,56,28,0,56,24,0,56,48,0,56,112,0, - 56,96,0,56,224,0,56,199,128,57,207,224,3,156,224,3, - 0,224,7,1,224,6,1,192,14,3,128,28,7,0,28,30, - 0,56,31,224,48,31,224,20,20,60,22,1,0,124,1,192, - 230,3,128,231,3,0,7,7,0,30,14,0,30,14,0,7, - 28,0,231,24,0,231,56,0,126,49,224,24,115,224,0,227, - 224,0,199,224,1,198,224,1,140,224,3,156,224,3,31,240, - 7,31,240,14,0,224,12,0,224,12,19,38,15,1,251,7, - 128,7,128,7,128,0,0,0,0,7,0,7,0,7,0,14, - 0,28,0,56,0,112,0,240,0,240,0,240,112,240,112,127, - 240,63,224,15,128,19,28,84,19,0,0,7,0,0,3,128, - 0,1,128,0,1,192,0,0,192,0,0,96,0,0,0,0, - 0,0,0,1,240,0,1,240,0,1,248,0,3,248,0,3, - 248,0,3,188,0,7,188,0,7,156,0,15,30,0,15,30, - 0,15,30,0,30,15,0,30,15,0,31,255,128,63,255,128, - 63,255,128,56,3,192,120,3,192,120,3,192,240,1,224,19, - 28,84,19,0,0,0,28,0,0,56,0,0,56,0,0,112, - 0,0,96,0,0,192,0,0,0,0,0,0,0,1,240,0, - 1,240,0,1,248,0,3,248,0,3,248,0,3,188,0,7, - 188,0,7,156,0,15,30,0,15,30,0,15,30,0,30,15, - 0,30,15,0,31,255,128,63,255,128,63,255,128,56,3,192, - 120,3,192,120,3,192,240,1,224,19,28,84,19,0,0,0, - 224,0,1,240,0,1,240,0,3,184,0,3,24,0,6,12, - 0,0,0,0,0,0,0,1,240,0,1,240,0,1,248,0, - 3,248,0,3,248,0,3,188,0,7,188,0,7,156,0,15, - 30,0,15,30,0,15,30,0,30,15,0,30,15,0,31,255, - 128,63,255,128,63,255,128,56,3,192,120,3,192,120,3,192, - 240,1,224,19,26,78,19,0,0,1,204,0,3,248,0,6, - 120,0,0,0,0,0,0,0,0,0,0,1,240,0,1,240, - 0,1,248,0,3,248,0,3,248,0,3,188,0,7,188,0, - 7,156,0,15,30,0,15,30,0,15,30,0,30,15,0,30, - 15,0,31,255,128,63,255,128,63,255,128,56,3,192,120,3, - 192,120,3,192,240,1,224,19,26,78,19,0,0,7,28,0, - 7,28,0,7,28,0,0,0,0,0,0,0,0,0,0,1, - 240,0,1,240,0,3,248,0,3,248,0,3,248,0,7,188, - 0,7,188,0,7,60,0,15,30,0,15,30,0,30,31,0, - 30,15,0,30,15,0,63,255,128,63,255,128,63,255,128,120, - 3,192,120,3,192,112,3,192,240,1,224,19,29,87,19,0, - 0,0,224,0,1,240,0,3,24,0,3,24,0,3,24,0, - 1,240,0,0,224,0,0,0,0,0,0,0,1,240,0,1, - 240,0,3,240,0,3,248,0,3,248,0,7,188,0,7,188, - 0,7,60,0,15,30,0,15,30,0,30,30,0,30,15,0, - 30,15,0,63,255,128,63,255,128,63,255,128,120,3,192,120, - 3,192,240,3,192,240,1,224,25,20,80,26,0,0,0,63, - 255,128,0,63,255,128,0,127,0,0,0,127,0,0,0,255, - 0,0,1,239,0,0,1,239,0,0,3,207,0,0,3,207, - 255,128,7,143,255,128,7,143,255,128,15,15,0,0,15,255, - 0,0,31,255,0,0,31,255,0,0,60,15,0,0,56,15, - 0,0,120,15,255,128,112,15,255,128,240,15,255,128,17,27, - 81,19,1,249,7,240,0,15,252,0,63,254,0,60,31,0, - 120,31,0,112,15,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,15,128,112,15, - 0,120,31,0,60,63,0,63,254,0,15,252,0,3,240,0, - 0,128,0,0,224,0,0,240,0,0,48,0,0,48,0,3, - 240,0,0,128,0,13,28,56,17,2,0,60,0,28,0,14, - 0,6,0,7,0,3,0,0,0,0,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,240,0,255,248,255, - 248,255,248,13,28,56,17,2,0,1,224,1,192,3,128,3, - 0,6,0,6,0,0,0,0,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,13,28,56,17,2,0,15,0,15,128,13,128,29,192,24, - 192,48,96,0,0,0,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,13, - 26,52,17,2,0,56,224,56,224,56,224,0,0,0,0,0, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,248,255,248,255,248,7,28,28,8,255,0,240, - 112,56,24,28,12,0,0,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,6,28,28,7,2, - 0,28,56,48,112,96,192,0,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,8,28,28, - 8,0,0,60,60,126,102,198,195,0,0,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,9, - 26,52,9,0,0,227,128,227,128,227,128,0,0,0,0,0, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,18,20,60,19,0,0,63, - 224,0,63,252,0,63,254,0,60,31,0,60,15,128,60,7, - 128,60,3,192,60,3,192,60,3,192,255,195,192,255,195,192, - 60,3,192,60,3,192,60,3,192,60,7,128,60,15,128,60, - 31,0,63,254,0,63,252,0,63,224,0,17,26,78,21,2, - 0,7,152,0,7,248,0,12,240,0,0,0,0,0,0,0, - 0,0,0,252,7,128,252,7,128,254,7,128,254,7,128,255, - 7,128,255,7,128,247,135,128,247,135,128,243,199,128,243,199, - 128,241,231,128,241,231,128,240,247,128,240,247,128,240,127,128, - 240,127,128,240,63,128,240,63,128,240,31,128,240,31,128,18, - 28,84,20,1,0,14,0,0,7,0,0,3,128,0,1,128, - 0,0,192,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,31,254,0,62,31,0,120,7,128,120,7,128,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,120,7,128,120,7,128,62,31,0, - 31,254,0,15,252,0,3,240,0,18,28,84,20,1,0,0, - 60,0,0,56,0,0,112,0,0,96,0,0,192,0,0,0, - 0,0,0,0,0,0,0,3,240,0,15,252,0,31,254,0, - 62,31,0,120,7,128,120,7,128,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,120,7,128,120,7,128,62,31,0,31,254,0,15,252,0, - 3,240,0,18,28,84,20,1,0,1,224,0,3,240,0,3, - 240,0,7,56,0,6,24,0,0,0,0,0,0,0,0,0, - 0,3,240,0,15,252,0,31,254,0,62,31,0,120,7,128, - 120,7,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,120,7,128,120,7, - 128,62,31,0,31,254,0,15,252,0,3,240,0,18,27,81, - 20,1,0,0,8,0,7,248,0,7,248,0,4,0,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,31,254, - 0,62,31,0,120,7,128,120,7,128,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,120,7,128,120,7,128,62,31,0,31,254,0,15,252, - 0,3,240,0,18,27,81,20,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 240,0,15,252,0,31,254,0,62,31,0,120,7,128,120,7, - 128,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,120,7,128,120,7,128,62, - 31,0,31,254,0,15,252,0,3,240,0,15,14,28,27,6, - 2,192,6,96,12,48,24,24,48,12,96,6,192,3,128,3, - 128,6,192,12,96,24,48,48,24,96,12,64,4,20,22,66, - 20,0,255,0,0,32,1,252,112,7,255,224,15,255,192,31, - 15,128,60,3,192,60,7,192,120,15,224,120,29,224,120,57, - 224,120,113,224,120,225,224,121,193,224,123,129,224,127,1,224, - 62,3,192,60,3,192,31,15,128,63,255,0,127,254,0,227, - 248,0,64,0,0,17,28,84,21,2,0,30,0,0,14,0, - 0,7,0,0,3,128,0,1,128,0,0,0,0,0,0,0, - 0,0,0,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,0,240,15,0, - 120,15,0,124,30,0,63,254,0,31,248,0,7,224,0,17, - 28,84,21,2,0,0,60,0,0,120,0,0,112,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,0,240,15,0,120,15,0,124,30,0, - 63,254,0,31,248,0,7,224,0,17,28,84,21,2,0,3, - 192,0,3,224,0,7,224,0,14,112,0,12,56,0,0,0, - 0,0,0,0,0,0,0,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 0,240,15,0,120,15,0,124,30,0,63,254,0,31,248,0, - 7,224,0,17,27,81,20,2,0,14,56,0,14,56,0,14, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,0,240,15,0,120,15,0,124,30, - 0,63,254,0,31,248,0,7,224,0,16,27,54,17,1,0, - 0,112,0,224,0,192,1,128,0,0,0,0,0,0,240,31, - 248,30,120,30,124,60,60,60,60,120,30,120,30,240,15,240, - 15,224,7,224,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,14,20,40,17,1,0,240,0,240,0, - 240,0,240,0,255,192,255,240,255,248,240,124,240,60,240,60, - 240,60,240,124,255,248,255,240,255,192,240,0,240,0,240,0, - 240,0,240,0,14,20,40,16,1,0,31,128,127,224,121,240, - 240,240,240,240,240,240,241,224,243,192,247,128,247,128,247,128, - 243,224,241,240,240,248,240,60,240,60,255,60,255,188,247,248, - 243,240,12,22,44,15,1,0,120,0,56,0,28,0,12,0, - 6,0,2,0,0,0,0,0,31,128,63,224,121,240,112,240, - 0,240,63,240,127,240,248,240,240,240,240,240,240,240,251,240, - 127,112,62,112,12,22,44,15,1,0,1,224,1,192,3,128, - 3,0,7,0,6,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,31,240,127,240,120,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,22,44,15,1,0,15,0,15,128, - 31,128,25,192,56,192,48,96,0,0,0,0,31,128,63,224, - 121,240,112,240,0,240,63,240,127,240,248,240,240,240,240,240, - 240,240,251,240,127,112,62,112,12,20,40,15,1,0,31,192, - 63,192,48,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,21,42,15,1,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,23,46,15,1,0,7,0,31,128, - 24,192,24,192,31,128,15,0,0,0,0,0,0,0,31,128, - 63,224,121,240,112,240,0,240,63,240,127,240,248,240,240,240, - 240,240,240,240,251,240,127,112,62,112,22,14,42,24,1,0, - 15,135,192,63,207,240,124,252,248,112,120,56,0,120,56,31, - 255,252,127,255,252,120,120,0,240,120,0,240,120,0,240,252, - 56,249,222,248,127,143,240,30,7,224,12,21,42,14,1,249, - 31,128,63,224,121,224,112,224,240,240,240,0,240,0,240,0, - 240,0,240,240,240,224,121,224,63,192,31,128,4,0,7,0, - 7,128,0,192,0,192,31,128,4,0,13,22,44,15,1,0, - 56,0,56,0,28,0,12,0,6,0,2,0,0,0,0,0, - 15,128,63,224,121,240,112,240,240,240,255,240,255,248,240,0, - 240,0,240,240,112,240,121,240,63,224,31,128,13,22,44,15, - 1,0,1,224,1,192,3,128,3,0,6,0,6,0,0,0, - 0,0,15,128,63,224,121,240,112,240,240,240,255,240,255,248, - 240,0,240,0,240,240,112,240,121,240,63,224,31,128,13,22, - 44,15,1,0,15,0,15,0,31,128,25,128,56,192,48,192, - 0,0,0,0,15,128,63,224,121,240,112,240,240,240,255,240, - 255,248,240,0,240,0,240,240,112,240,121,240,63,224,31,128, - 13,21,42,15,1,0,56,224,56,224,56,224,0,0,0,0, - 0,0,0,0,15,128,63,224,121,240,112,112,240,112,255,240, - 255,248,240,0,240,0,240,112,112,112,125,240,63,224,31,128, - 6,22,22,7,0,0,224,240,112,56,24,12,0,0,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,6,22,22,6, - 2,0,60,56,112,96,192,192,0,0,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,22,44,7,255,0,30,0, - 62,0,63,0,115,0,99,128,193,128,0,0,0,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,9,20,40,7,255,0, - 227,128,227,128,227,128,0,0,0,0,0,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,14,20,40,16,1,0,14,24, - 15,240,3,192,15,192,60,224,48,240,15,240,63,248,124,248, - 120,60,240,60,240,60,240,60,240,60,240,60,240,60,120,56, - 124,248,63,240,15,192,13,20,40,16,2,0,30,96,63,192, - 55,128,0,0,0,0,0,0,247,192,255,240,253,240,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,14,22,44,16,1,0,60,0,28,0,14,0, - 6,0,3,0,3,0,0,0,0,0,15,192,63,224,124,240, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,120,120, - 124,248,63,240,15,192,14,22,44,16,1,0,0,240,0,224, - 1,192,1,128,3,0,3,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,22,44,16,1,0,7,128, - 7,128,15,192,12,192,24,96,24,96,0,0,0,0,15,192, - 63,224,124,240,120,120,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,124,248,63,240,15,192,14,20,40,16,1,0, - 15,224,31,224,24,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,21,42,16,1,0,28,224, - 28,224,28,224,0,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,16,12,24,26,5,2,1,192, - 3,192,1,192,0,0,0,0,255,255,255,255,0,0,0,0, - 1,192,3,192,1,192,14,18,36,16,1,254,0,8,0,28, - 15,248,63,240,124,240,120,248,241,252,241,188,243,60,246,60, - 254,60,252,60,120,120,60,248,127,240,239,192,192,0,128,0, - 13,22,44,16,2,0,56,0,60,0,28,0,14,0,6,0, - 3,0,0,0,0,0,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,248,249,248,127,248, - 62,120,13,22,44,16,2,0,1,224,1,192,3,128,3,0, - 7,0,6,0,0,0,0,0,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,248,249,248, - 127,248,62,120,13,22,44,16,2,0,15,0,15,128,31,128, - 29,192,56,192,48,96,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,13,21,42,16,2,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,14,27,54,15,0,251,0,112,0,240, - 0,224,0,192,1,128,0,0,0,0,0,0,120,28,120,60, - 60,60,60,56,60,120,30,120,30,112,14,240,15,240,15,224, - 7,224,7,224,3,192,3,192,3,128,39,128,255,128,127,0, - 62,0,14,25,50,17,2,251,240,0,240,0,240,0,240,0, - 240,0,240,0,247,192,255,240,253,240,248,120,240,56,240,60, - 240,60,240,60,240,60,240,120,240,120,253,240,255,240,247,192, - 240,0,240,0,240,0,240,0,240,0,15,26,52,15,0,251, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,248,30, - 120,60,120,60,60,56,60,120,60,120,30,112,30,240,15,240, - 15,224,15,224,7,224,7,192,3,192,7,128,7,128,7,128, - 15,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=16 h=21 x= 5 y= 9 dx=26 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20n[603] U8G_FONT_SECTION("u8g_font_fub20n") = { - 0,40,36,254,249,20,0,0,0,0,42,58,0,20,252,20, - 0,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=16 dx=28 dy= 0 ascent=22 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20r[4022] U8G_FONT_SECTION("u8g_font_fub20r") = { - 0,40,36,254,249,20,4,242,11,37,32,127,251,22,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=14 h=20 x= 4 y= 0 dx=15 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20t[477] U8G_SECTION(".progmem.u8g_font_fub20t") = { - 0,40,36,254,249,20,0,0,0,0,48,58,0,20,0,20, - 0,14,20,40,15,1,0,15,128,31,224,60,240,120,112,112, - 56,240,56,240,56,240,60,240,60,240,60,240,60,240,60,240, - 60,240,56,240,56,112,56,120,120,60,240,31,224,15,128,8, - 20,20,15,3,0,15,63,127,255,239,207,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,14,20,40,15,1,0,7, - 192,31,240,63,248,124,120,120,60,120,60,0,60,0,120,0, - 120,0,240,1,240,3,224,7,192,15,128,31,0,124,0,248, - 0,255,252,255,252,255,252,13,20,40,15,1,0,15,128,63, - 224,127,240,248,240,240,120,0,120,0,120,0,240,15,224,15, - 128,15,224,0,240,0,120,0,120,240,120,240,120,248,240,127, - 240,63,224,31,128,14,20,40,15,1,0,1,240,3,240,3, - 240,7,240,7,240,14,240,30,240,28,240,60,240,56,240,120, - 240,112,240,240,240,255,252,255,252,255,252,0,240,0,240,0, - 240,0,240,13,20,40,15,1,0,255,240,255,240,255,240,240, - 0,240,0,240,0,240,0,247,192,255,224,253,240,240,120,240, - 120,0,120,0,120,0,120,240,120,240,240,127,240,63,224,31, - 128,13,20,40,15,1,0,15,192,31,224,63,240,120,120,120, - 120,112,0,240,0,247,192,239,224,253,240,248,120,240,120,240, - 120,240,120,240,120,112,120,120,240,63,240,63,224,15,128,13, - 20,40,15,1,0,255,248,255,248,255,248,0,120,0,120,0, - 240,0,240,1,224,1,224,1,224,3,192,3,192,7,128,7, - 128,15,128,15,0,31,0,30,0,30,0,62,0,14,20,40, - 15,1,0,31,192,63,240,127,240,120,248,240,120,240,120,240, - 120,120,240,63,224,31,192,63,240,120,120,240,56,240,60,240, - 60,240,60,248,120,127,248,63,240,31,192,13,20,40,15,1, - 0,15,128,63,192,127,224,120,240,240,112,240,120,240,120,240, - 120,240,120,120,248,127,184,63,56,0,120,0,120,0,112,240, - 240,120,240,127,224,63,192,15,128,4,14,14,9,4,0,240, - 240,240,240,0,0,0,0,0,0,240,240,240,240}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=22 dx=35 dy= 0 ascent=37 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =37 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25[12908] U8G_FONT_SECTION("u8g_font_fub25") = { - 0,50,46,254,247,25,7,111,16,148,32,255,249,37,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,10,0,0,5,25,25,13,4,249,248,248,248,248, - 0,0,0,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,15,26,52,19,2,252,0,48,0,48,0, - 48,0,32,7,224,31,248,63,252,124,252,120,254,248,254,249, - 128,249,128,249,128,249,0,251,0,251,62,251,62,126,62,126, - 124,63,252,31,248,15,224,12,0,24,0,24,0,24,0,17, - 25,75,20,2,1,7,254,0,15,255,0,31,255,0,31,15, - 128,62,15,128,62,0,0,62,0,0,62,0,0,62,0,0, - 255,240,0,255,240,0,255,240,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,255,128,255,255,128,255,255,128, - 18,19,57,20,1,6,64,0,128,224,1,192,115,227,128,63, - 255,0,30,30,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 30,30,0,63,255,0,115,243,128,224,1,192,64,0,128,19, - 25,75,21,1,0,248,3,224,248,7,224,124,7,192,124,7, - 192,62,15,128,62,15,128,31,31,0,255,31,224,255,191,224, - 15,190,0,7,252,0,7,252,0,3,248,0,255,255,224,255, - 255,224,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,14,31,62,16,1,251,31,240,63, - 248,127,248,124,24,248,0,248,0,124,0,126,0,63,128,31, - 192,31,240,63,248,124,248,248,124,240,60,240,120,240,120,253, - 240,127,224,63,192,31,224,7,240,1,248,0,252,0,124,0, - 124,128,248,225,248,255,240,255,224,63,128,11,4,8,11,0, - 22,241,224,241,224,241,224,241,224,25,25,100,29,2,1,0, - 255,192,0,3,255,224,0,15,0,120,0,30,0,60,0,24, - 63,14,0,56,127,134,0,112,255,199,0,97,227,195,0,225, - 193,227,128,195,193,225,128,195,192,1,128,195,192,1,128,195, - 192,1,128,195,192,1,128,195,193,225,128,227,193,227,128,97, - 227,195,0,113,255,195,0,48,255,135,0,56,62,14,0,28, - 0,28,0,15,0,120,0,7,193,240,0,1,255,224,0,0, - 127,0,0,12,17,34,14,1,8,15,128,63,192,56,224,112, - 224,0,224,15,224,63,224,120,224,112,224,112,224,121,224,63, - 224,30,96,0,0,0,0,255,240,255,240,17,14,42,21,2, - 2,31,15,128,30,31,0,62,31,0,60,62,0,124,62,0, - 124,124,0,248,124,0,248,124,0,124,124,0,124,62,0,60, - 62,0,62,31,0,30,15,0,31,15,128,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,25,25,100,29,2,1, - 0,255,192,0,3,255,224,0,15,0,120,0,30,0,60,0, - 25,255,142,0,57,255,198,0,113,255,231,0,97,193,227,0, - 225,192,227,128,193,193,225,128,193,255,129,128,193,255,129,128, - 193,255,193,128,193,193,193,128,193,193,193,128,225,192,227,128, - 97,192,227,0,113,192,227,0,49,192,231,0,56,0,14,0, - 28,0,28,0,15,0,120,0,7,193,240,0,1,255,224,0, - 0,127,0,0,11,3,6,11,0,22,255,224,255,224,255,224, - 7,7,7,11,2,18,56,196,130,130,130,196,120,20,21,63, - 34,7,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,255,255,240,255,255,240,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,240,255, - 255,240,11,13,26,13,1,13,63,128,127,192,241,224,1,224, - 1,224,3,192,7,192,15,128,30,0,124,0,240,0,255,192, - 255,192,11,14,28,13,1,12,127,128,255,128,227,192,3,192, - 7,192,31,128,31,128,3,192,1,224,1,224,225,224,243,192, - 127,128,63,0,7,7,7,8,2,21,62,60,56,120,112,224, - 192,255,16,31,62,19,2,250,15,255,63,255,127,24,255,24, - 255,24,255,24,255,24,255,24,255,24,255,24,127,24,63,24, - 31,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,5,5,5,10,3,10,248,248,248,248, - 248,9,8,16,9,1,247,48,0,48,0,63,0,7,128,3, - 128,3,128,255,0,254,0,6,14,14,9,1,12,28,124,252, - 220,28,28,28,28,28,28,28,28,28,28,12,17,34,14,1, - 8,31,128,63,192,121,224,112,224,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,31,128,0,0,0,0,255, - 240,255,240,16,14,28,21,2,2,240,120,248,124,124,60,124, - 62,62,30,62,31,31,31,31,31,62,31,62,30,124,62,124, - 60,248,124,240,120,25,26,104,27,1,0,28,0,120,0,124, - 0,112,0,252,0,240,0,156,0,224,0,28,1,192,0,28, - 1,192,0,28,3,128,0,28,7,128,0,28,7,0,0,28, - 14,0,0,28,14,0,0,28,28,0,0,28,28,30,0,28, - 56,30,0,0,120,62,0,0,112,126,0,0,224,126,0,0, - 224,238,0,1,193,206,0,1,193,206,0,3,131,142,0,7, - 3,255,128,7,3,255,128,14,0,14,0,14,0,14,0,28, - 0,14,0,25,26,104,27,1,0,28,0,112,0,124,0,224, - 0,252,0,224,0,220,1,192,0,28,3,192,0,28,3,128, - 0,28,7,0,0,28,7,0,0,28,14,0,0,28,14,0, - 0,28,28,0,0,28,56,0,0,28,56,124,0,28,113,255, - 0,0,115,199,128,0,227,199,128,0,192,7,128,1,192,15, - 128,3,128,15,0,3,128,30,0,7,0,60,0,6,0,248, - 0,14,1,240,0,12,3,192,0,28,3,255,0,24,3,255, - 0,25,25,100,27,1,1,127,128,60,0,255,192,56,0,227, - 192,112,0,3,192,112,0,31,128,224,0,31,129,224,0,3, - 193,192,0,1,227,192,0,225,227,128,0,227,231,128,0,127, - 207,0,0,63,14,30,0,0,30,62,0,0,28,62,0,0, - 60,126,0,0,56,110,0,0,120,238,0,0,241,206,0,0, - 241,206,0,1,227,142,0,1,227,255,128,3,195,255,128,3, - 128,14,0,7,128,14,0,15,0,14,0,16,25,50,18,1, - 249,3,224,3,224,3,224,3,224,0,0,0,0,0,0,1, - 192,1,192,1,192,3,192,7,128,15,0,30,0,60,0,124, - 0,248,0,248,0,248,0,248,14,248,31,124,62,63,254,31, - 248,7,224,23,35,105,24,1,0,3,192,0,3,192,0,1, - 224,0,0,224,0,0,112,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,0,252,0,0,254,0, - 0,254,0,1,254,0,1,255,0,3,255,0,3,207,0,3, - 207,128,7,207,128,7,135,192,7,135,192,15,135,192,15,3, - 224,31,3,224,31,3,240,31,255,240,63,255,240,63,255,248, - 127,255,248,124,0,248,124,0,252,248,0,124,248,0,126,240, - 0,62,23,35,105,24,1,0,0,15,0,0,15,0,0,30, - 0,0,28,0,0,56,0,0,48,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,124,0,0,252,0,0,254,0,0, - 254,0,1,254,0,1,255,0,3,255,0,3,207,0,3,207, - 128,7,207,128,7,135,192,7,135,192,15,135,192,15,3,224, - 31,3,224,31,3,240,31,255,240,63,255,240,63,255,248,127, - 255,248,124,0,248,124,0,252,248,0,124,248,0,126,240,0, - 62,23,35,105,24,1,0,0,252,0,0,252,0,0,254,0, - 1,206,0,1,199,0,3,135,0,3,3,128,0,0,0,0, - 0,0,0,0,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 23,34,102,24,1,0,0,1,128,1,255,0,3,255,0,3, - 254,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,0,252,0,0,254,0,0,254,0,1,254,0, - 1,255,0,3,255,0,3,207,0,3,207,128,7,207,128,7, - 135,192,7,135,192,15,135,192,15,3,224,31,3,224,31,3, - 240,31,255,240,63,255,240,63,255,248,127,255,248,124,0,248, - 124,0,252,248,0,124,248,0,126,240,0,62,23,34,102,25, - 1,0,3,199,128,3,199,128,3,199,128,3,199,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 0,124,0,0,254,0,0,254,0,1,255,0,1,255,0,1, - 239,0,3,239,128,3,239,128,3,199,128,7,199,192,7,199, - 192,15,131,224,15,131,224,15,131,224,31,1,240,31,255,240, - 31,255,240,63,255,248,63,255,248,124,0,252,124,0,124,124, - 0,124,248,0,62,248,0,62,23,37,111,24,1,0,0,120, - 0,0,252,0,1,206,0,1,134,0,1,134,0,1,206,0, - 0,252,0,0,120,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,0,252,0,0,252,0,0,254,0,1,254, - 0,1,255,0,3,255,0,3,207,0,3,207,128,7,207,128, - 7,135,192,7,135,192,15,135,192,15,3,224,31,3,224,31, - 3,224,31,255,240,63,255,240,63,255,248,127,255,248,124,0, - 248,124,0,252,248,0,124,248,0,126,240,0,62,32,25,100, - 34,1,0,0,7,255,254,0,15,255,254,0,15,255,254,0, - 31,240,0,0,31,240,0,0,63,240,0,0,61,240,0,0, - 121,240,0,0,249,240,0,0,241,240,0,1,241,255,254,1, - 225,255,254,3,225,255,254,3,193,255,254,7,193,240,0,7, - 255,240,0,15,255,240,0,15,255,240,0,31,255,240,0,30, - 1,240,0,62,1,240,0,60,1,255,255,124,1,255,255,248, - 1,255,255,248,1,255,255,21,33,99,25,2,249,3,255,0, - 15,255,192,31,255,224,63,255,240,62,3,240,124,1,240,120, - 1,248,120,0,248,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,248, - 120,1,248,124,1,248,124,3,240,63,7,240,31,255,224,31, - 255,192,7,255,128,1,252,0,0,96,0,0,120,0,0,126, - 0,0,15,0,0,7,0,0,7,0,1,254,0,1,252,0, - 17,35,105,21,2,0,30,0,0,15,0,0,7,0,0,7, - 128,0,3,128,0,1,192,0,0,192,0,0,0,0,0,0, - 0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,128,255,255,128,255,255,128,255,255,128,17, - 35,105,21,2,0,0,120,0,0,240,0,0,224,0,1,192, - 0,1,128,0,3,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,0,255,255,0,255,255,0,255,255,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,17,35, - 105,21,2,0,7,224,0,7,224,0,15,240,0,14,112,0, - 14,56,0,28,56,0,24,28,0,0,0,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,128,255,255,128,255,255,128,255,255,128,17,34,102, - 21,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 0,255,255,0,255,255,0,255,255,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,0,255, - 255,0,255,255,0,255,255,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,128, - 255,255,128,255,255,128,255,255,128,8,35,35,9,255,0,240, - 120,56,60,28,12,6,0,0,0,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,7,35,35,8,2,0,30,28,60,56,112,96,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,11,35,70,9,255, - 0,31,0,63,0,63,128,59,128,113,192,97,192,192,224,0, - 0,0,0,0,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,11,34,68,11,0,0,241,224,241, - 224,241,224,241,224,0,0,0,0,0,0,0,0,0,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,23,25,75,24,0,0,63,252,0,63,255,128,63,255,192, - 63,255,224,62,7,240,62,1,248,62,0,248,62,0,124,62, - 0,124,62,0,60,62,0,60,255,240,62,255,240,62,255,240, - 62,62,0,60,62,0,60,62,0,124,62,0,124,62,0,248, - 62,1,248,62,7,240,63,255,224,63,255,192,63,255,128,63, - 252,0,21,34,102,25,2,0,0,3,0,1,255,0,3,254, - 0,7,252,0,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,0,248,255,0,248,255,0,248,255,128,248,255, - 128,248,255,192,248,255,192,248,251,224,248,251,224,248,249,224, - 248,249,240,248,248,240,248,248,248,248,248,120,248,248,124,248, - 248,60,248,248,62,248,248,30,248,248,31,248,248,31,248,248, - 15,248,248,15,248,248,7,248,248,7,248,248,3,248,23,36, - 108,27,2,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,56,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,36,108,27,2,0,0,7,192,0,7,128,0,15,0,0, - 14,0,0,28,0,0,24,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,255,128,7,255,192,31,255,240, - 31,255,240,63,1,248,126,0,252,124,0,124,120,0,60,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,124,0,124,124,0,124, - 62,0,248,63,131,248,31,255,240,15,255,224,7,255,192,0, - 254,0,23,36,108,27,2,0,0,124,0,0,254,0,0,254, - 0,1,239,0,1,199,0,3,131,128,3,1,128,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,128,7,255,192,31, - 255,240,31,255,240,63,1,248,126,0,252,124,0,124,120,0, - 60,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,124,0,124,124, - 0,124,62,0,248,63,131,248,31,255,240,15,255,224,7,255, - 192,0,254,0,23,34,102,27,2,0,0,241,128,1,255,128, - 3,255,0,3,30,0,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,34,102,27,2,0,3,199,128,3,199,128,3,199,128,3, - 199,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,255,128,7,255,192,31,255,240,31,255,240,63,1,248, - 126,0,252,124,0,124,120,0,60,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,62,0,248,63,131,248, - 31,255,240,15,255,224,7,255,192,0,254,0,18,19,57,34, - 8,1,64,0,0,224,0,192,112,1,128,56,3,0,28,6, - 0,14,12,0,6,24,0,3,48,0,1,224,0,0,192,0, - 1,224,0,3,48,0,6,24,0,12,12,0,24,6,0,48, - 3,0,112,1,128,224,1,192,64,0,128,25,28,112,27,1, - 255,0,0,1,0,0,0,3,128,1,255,195,128,3,255,247, - 0,15,255,254,0,15,255,252,0,31,128,252,0,63,0,126, - 0,62,0,254,0,60,1,254,0,124,3,223,0,124,7,159, - 0,124,15,31,0,124,30,31,0,124,60,31,0,124,120,31, - 0,124,240,31,0,125,224,31,0,127,192,31,0,63,128,62, - 0,63,0,62,0,63,0,124,0,31,193,252,0,63,255,248, - 0,127,255,240,0,243,255,224,0,224,127,0,0,64,0,0, - 0,21,36,108,25,2,0,15,0,0,7,128,0,3,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,120,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,36,108,25,2,0,0,15,128,0,15,0,0, - 30,0,0,60,0,0,56,0,0,112,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,240,248,0,240, - 120,1,240,124,3,240,127,7,224,63,255,192,31,255,128,15, - 255,0,3,252,0,21,36,108,25,2,0,0,248,0,1,248, - 0,1,252,0,3,220,0,7,142,0,7,14,0,14,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,240,248, - 0,240,120,1,240,124,3,240,127,7,224,63,255,192,31,255, - 128,15,255,0,3,252,0,21,34,102,25,2,0,7,143,0, - 7,143,0,7,143,0,7,143,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,124,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,35,105,22,1,0,0,30,0,0,30,0,0, - 28,0,0,56,0,0,48,0,0,112,0,0,0,0,0,0, - 0,0,0,0,0,0,0,252,1,248,252,1,240,126,3,224, - 126,3,224,63,7,192,31,7,192,31,143,128,15,143,128,15, - 223,0,7,223,0,7,254,0,3,254,0,3,252,0,1,248, - 0,1,248,0,0,240,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,18,25,75,22,2,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,240,0,255,254,0,255,255,0,255,255,128, - 248,15,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,255,255,128,255,255,0,255,254,0,255,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,18,25,75,19,1,1,31,240,0,63,252,0,127, - 252,0,248,62,0,248,62,0,248,62,0,248,62,0,248,124, - 0,248,248,0,248,240,0,249,240,0,251,224,0,251,224,0, - 249,248,0,249,252,0,248,127,0,248,63,128,248,15,128,248, - 7,128,248,7,192,251,199,192,251,199,128,249,255,128,249,255, - 0,248,126,0,15,28,56,19,2,0,60,0,30,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,7,224, - 63,248,127,252,124,62,120,62,0,62,15,254,63,254,127,254, - 124,62,248,62,248,62,248,62,248,62,252,126,127,254,63,222, - 31,30,15,28,56,19,2,0,0,120,0,240,0,240,1,224, - 1,192,1,128,3,0,0,0,0,0,0,0,7,224,63,248, - 127,252,124,62,120,62,0,62,15,254,63,254,127,254,124,62, - 248,62,248,62,248,62,248,62,252,126,127,254,63,222,31,30, - 15,28,56,19,2,0,7,192,7,224,15,224,14,240,28,112, - 24,56,56,24,0,0,0,0,0,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,15,26, - 52,19,2,0,0,24,15,248,31,240,31,224,48,0,0,0, - 0,0,0,0,7,224,63,248,127,252,124,62,120,62,0,62, - 15,254,63,254,127,254,124,62,248,62,248,62,248,62,248,62, - 252,126,127,254,63,222,31,30,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 15,224,63,248,127,252,124,62,120,62,0,62,15,254,63,254, - 127,254,124,62,248,62,248,62,248,62,248,62,252,126,127,254, - 63,222,31,30,15,30,60,19,2,0,3,192,7,224,14,112, - 12,48,12,48,14,112,7,224,3,192,0,0,0,0,0,0, - 0,0,7,224,31,248,63,252,124,62,120,62,0,62,15,254, - 63,254,127,254,124,62,248,62,248,62,248,62,248,62,252,126, - 127,254,63,222,31,30,27,18,72,31,2,0,7,224,124,0, - 31,249,255,0,127,253,255,128,124,63,135,192,120,31,3,192, - 0,31,3,224,7,255,255,224,63,255,255,224,127,255,255,224, - 124,31,0,0,248,31,0,0,248,31,0,0,248,31,131,224, - 248,31,131,192,252,59,199,192,127,241,255,192,63,224,255,128, - 15,128,126,0,15,26,52,18,2,248,7,224,31,248,63,252, - 124,124,120,60,248,62,248,62,248,0,248,0,248,0,248,0, - 248,62,248,62,120,60,124,124,63,252,31,248,15,224,3,0, - 3,128,3,224,0,240,0,112,0,112,15,224,15,192,15,28, - 56,19,2,0,62,0,30,0,15,0,7,0,7,128,3,128, - 1,192,0,0,0,0,0,0,7,224,31,248,63,252,124,60, - 120,62,248,30,248,30,255,254,255,254,255,254,248,0,248,0, - 248,30,120,62,124,62,63,252,31,248,7,224,15,28,56,19, - 2,0,0,120,0,112,0,240,0,224,1,192,1,128,3,0, - 0,0,0,0,0,0,7,224,31,248,63,252,124,60,120,62, - 248,30,248,30,255,254,255,254,255,254,248,0,248,0,248,30, - 120,62,124,62,63,252,31,248,7,224,15,28,56,19,2,0, - 7,224,7,224,15,224,14,112,28,112,28,56,56,24,0,0, - 0,0,0,0,7,224,31,248,63,252,124,60,120,62,248,30, - 248,30,255,254,255,254,255,254,248,0,248,0,248,30,120,62, - 124,62,63,252,31,248,7,224,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 7,224,31,248,63,252,124,124,120,62,248,62,248,62,255,254, - 255,254,255,254,248,0,248,0,248,62,120,62,124,126,63,252, - 31,248,7,224,8,28,28,9,255,0,240,120,120,60,28,14, - 6,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,7,28,28,8,2,0,30,60,56,120, - 112,224,192,0,0,0,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,10,28,56,9,255,0,31,0, - 63,0,63,128,123,128,115,192,97,192,224,192,0,0,0,0, - 0,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,11,26,52,9,255,0,241,224,241,224, - 241,224,241,224,0,0,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 18,26,78,21,2,0,0,1,0,15,135,0,3,254,0,1, - 248,0,3,248,0,15,252,0,60,60,0,16,30,0,7,255, - 0,31,255,0,63,255,0,126,31,128,124,15,128,248,15,128, - 248,7,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,128,120,15,128,124,15,128,126,31,0,63,255,0,31,252, - 0,3,240,0,16,26,52,20,2,0,0,24,15,248,31,248, - 31,240,48,0,0,0,0,0,0,0,249,248,251,252,255,254, - 252,63,252,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,18,28, - 84,21,2,0,31,0,0,15,0,0,7,128,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,63,254,0,62,31,0,124,15, - 128,120,15,128,248,7,128,248,7,128,248,7,192,248,7,192, - 248,7,192,248,7,128,120,15,128,124,15,128,62,31,0,63, - 254,0,15,252,0,3,240,0,18,28,84,21,2,0,0,60, - 0,0,56,0,0,120,0,0,112,0,0,224,0,0,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,63,254,0,62,31,0,124,15,128,120,15,128,248,7, - 128,248,7,128,248,7,192,248,7,192,248,7,192,248,7,128, - 120,15,128,124,15,128,62,31,0,63,254,0,15,252,0,3, - 240,0,18,28,84,21,2,0,3,224,0,3,240,0,7,240, - 0,7,56,0,14,56,0,14,28,0,28,12,0,0,0,0, - 0,0,0,0,0,0,3,240,0,15,252,0,63,254,0,62, - 31,0,124,15,128,120,15,128,248,7,128,248,7,128,248,7, - 192,248,7,192,248,7,192,248,7,128,120,15,128,124,15,128, - 62,31,0,63,254,0,15,252,0,3,240,0,18,27,81,21, - 2,0,0,4,0,0,12,0,7,252,0,15,248,0,15,240, - 0,24,0,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,63,254,0,62,31,0,124,15,128,120,15,128,248, - 7,128,248,7,128,248,7,192,248,7,192,248,7,192,248,7, - 128,120,15,128,124,15,128,62,31,0,63,254,0,15,252,0, - 3,240,0,18,27,81,21,2,0,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,63,254,0,62,31,0, - 124,15,128,120,15,128,248,7,128,248,7,128,248,7,192,248, - 7,192,248,7,192,248,7,128,120,15,128,124,15,128,62,31, - 0,63,254,0,15,252,0,3,240,0,20,15,45,34,7,3, - 0,112,0,0,248,0,0,248,0,0,112,0,0,0,0,0, - 0,0,0,0,0,255,255,240,255,255,240,0,0,0,0,0, - 0,0,112,0,0,248,0,0,248,0,0,112,0,18,23,69, - 21,2,254,0,1,0,0,1,128,0,3,128,3,247,0,15, - 255,0,63,254,0,62,31,0,124,63,128,120,55,128,248,119, - 128,248,231,128,249,199,192,251,135,192,251,135,192,255,7,128, - 126,15,128,124,15,128,62,31,0,63,254,0,127,252,0,227, - 240,0,224,0,0,192,0,0,16,28,56,20,2,0,62,0, - 30,0,15,0,7,0,3,128,3,128,1,192,0,0,0,0, - 0,0,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,252,63, - 127,255,63,223,31,159,16,28,56,20,2,0,0,120,0,240, - 0,240,0,224,1,192,1,128,3,0,0,0,0,0,0,0, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,252,63,127,255, - 63,223,31,159,16,28,56,20,2,0,7,224,7,224,15,240, - 14,112,28,56,28,56,56,28,0,0,0,0,0,0,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,252,63,127,255,63,223, - 31,159,16,27,54,20,2,0,60,120,60,120,60,120,60,120, - 0,0,0,0,0,0,0,0,0,0,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,252,63,127,255,63,223,31,159,17,35, - 105,19,1,249,0,30,0,0,60,0,0,56,0,0,120,0, - 0,112,0,0,224,0,0,192,0,0,0,0,0,0,0,0, - 0,0,248,15,128,248,15,128,252,15,128,124,31,0,126,31, - 0,62,31,0,62,62,0,63,62,0,31,60,0,31,124,0, - 15,252,0,15,248,0,15,248,0,7,248,0,7,240,0,3, - 240,0,3,240,0,3,224,0,3,224,0,3,192,0,103,192, - 0,255,192,0,255,192,0,127,128,0,62,0,0,17,32,96, - 21,2,249,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,249,240,0,255,252,0,255,254, - 0,254,63,0,252,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,254,63,0,255,254,0,255,252,0,251,240,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,17,33,99,19,1,249,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,248,15,128,248,15,128,252,15,128,124,31,0,124,31,0, - 126,31,0,62,62,0,63,62,0,31,62,0,31,124,0,31, - 252,0,15,248,0,15,248,0,7,248,0,7,240,0,7,240, - 0,3,240,0,3,224,0,3,224,0,3,224,0,7,192,0, - 7,192,0,7,192,0,15,128,0,15,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=13 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25n[981] U8G_FONT_SECTION("u8g_font_fub25n") = { - 0,50,46,254,247,25,0,0,0,0,42,58,0,26,251,25, - 0,14,13,26,22,4,13,28,224,60,240,28,224,15,192,135, - 132,255,252,255,252,231,156,15,192,30,224,28,224,60,240,8, - 64,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,7,9,9,11,2,251,62,60,60,120, - 120,112,240,240,224,9,5,10,11,1,7,255,128,255,128,255, - 128,255,128,255,128,5,5,5,10,3,0,248,248,248,248,248, - 11,28,56,15,2,254,0,224,0,224,1,192,1,192,1,192, - 3,128,3,128,3,128,3,128,7,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,28,0,56,0,56,0,56,0, - 56,0,112,0,112,0,112,0,224,0,224,0,224,0,17,25, - 75,19,1,1,7,224,0,31,252,0,63,254,0,60,30,0, - 120,15,0,120,15,0,120,15,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,60,30,0,31,252,0,15,248,0,7,224,0,11, - 25,50,19,3,1,3,224,15,224,31,224,127,224,255,224,251, - 224,243,224,195,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,17,25,75,19,1,1,7,248,0, - 31,254,0,31,255,0,63,255,0,126,31,128,124,15,128,124, - 15,128,0,15,128,0,15,128,0,31,0,0,31,0,0,62, - 0,0,126,0,0,252,0,1,248,0,3,240,0,7,224,0, - 15,192,0,63,0,0,126,0,0,252,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,16,25,50,19,2,1,31,240, - 63,252,127,254,255,254,248,62,248,31,0,31,0,30,0,126, - 7,252,7,240,7,248,7,252,0,62,0,31,0,31,0,31, - 248,31,248,31,248,31,252,62,127,254,127,252,31,248,15,224, - 18,25,75,19,1,1,0,126,0,0,254,0,0,254,0,1, - 254,0,3,254,0,3,254,0,7,190,0,15,190,0,15,62, - 0,30,62,0,30,62,0,60,62,0,124,62,0,120,62,0, - 240,62,0,255,255,192,255,255,192,255,255,192,255,255,192,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,17,25,75,19,1,1,255,254,0,255,254,0,255,254,0, - 255,254,0,248,0,0,248,0,0,248,0,0,248,0,0,249, - 240,0,255,252,0,255,254,0,252,63,0,248,31,0,248,15, - 0,0,15,128,0,15,128,0,15,128,0,15,0,248,15,0, - 248,31,0,252,63,0,127,254,0,127,252,0,63,248,0,15, - 224,0,17,25,75,19,1,1,3,240,0,15,252,0,31,254, - 0,63,255,0,62,31,0,126,15,128,124,0,0,124,0,0, - 252,0,0,248,248,0,251,254,0,255,254,0,255,31,0,254, - 15,128,252,15,128,252,15,128,252,15,128,252,15,128,124,15, - 128,126,15,128,127,31,0,63,255,0,31,254,0,15,252,0, - 3,240,0,16,25,50,19,2,1,255,255,255,255,255,255,255, - 255,0,15,0,31,0,30,0,62,0,62,0,124,0,124,0, - 248,0,248,0,240,1,240,1,240,3,224,3,224,7,192,7, - 192,15,128,15,128,15,128,31,0,31,0,17,25,75,19,1, - 1,7,240,0,31,252,0,127,255,0,127,255,0,252,31,128, - 248,15,128,248,15,128,120,15,0,124,31,0,63,254,0,15, - 248,0,31,248,0,63,254,0,124,63,0,248,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,252,31,128, - 127,255,0,127,255,0,31,252,0,7,240,0,17,25,75,19, - 1,1,7,240,0,31,252,0,63,254,0,127,254,0,124,63, - 0,248,31,0,248,31,0,248,31,128,248,31,128,248,31,128, - 248,63,128,124,63,128,127,255,128,63,239,128,15,207,128,0, - 15,128,0,31,0,0,31,0,248,31,0,120,63,0,124,126, - 0,63,254,0,63,252,0,31,248,0,7,224,0,5,18,18, - 11,5,0,248,248,248,248,248,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=21 dx=35 dy= 0 ascent=28 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25r[5936] U8G_FONT_SECTION("u8g_font_fub25r") = { - 0,50,46,254,247,25,7,111,16,148,32,127,249,28,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255 - }; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=26 dx=42 dy= 0 ascent=43 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30[16953] U8G_FONT_SECTION("u8g_font_fub30") = { - 0,59,54,253,245,30,9,163,21,182,32,255,249,43,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,12,0,0,5,28,28,16, - 5,248,248,248,248,248,248,0,0,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,18,30, - 90,24,3,250,0,6,0,0,14,0,0,12,0,0,12,0, - 0,28,0,7,252,0,31,255,0,63,255,128,63,63,128,124, - 63,192,124,127,192,252,103,192,248,96,0,248,96,0,248,192, - 0,248,192,0,248,192,0,253,192,0,253,143,192,125,143,192, - 127,143,192,127,31,128,63,255,128,31,255,0,7,252,0,6, - 0,0,14,0,0,12,0,0,12,0,0,28,0,0,20,31, - 93,23,2,0,0,16,0,3,255,128,7,255,192,15,255,224, - 15,199,240,31,131,240,31,131,240,31,1,240,31,0,0,31, - 0,0,31,0,0,31,0,0,255,252,0,255,252,0,255,252, - 0,255,252,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,255,255,240,255,255,240,255,255,240,255,255, - 240,21,21,63,25,2,8,192,0,24,224,0,56,113,252,112, - 63,255,224,31,7,192,28,1,192,24,1,192,56,0,224,48, - 0,96,48,0,96,48,0,96,48,0,96,48,0,224,56,0, - 224,28,1,192,30,3,192,31,143,192,63,255,224,113,252,112, - 224,0,56,192,0,24,22,30,90,24,1,0,252,0,252,252, - 0,252,124,1,248,126,1,248,62,3,240,63,3,240,63,7, - 224,31,135,224,255,135,252,255,143,252,255,207,252,7,223,128, - 7,255,0,3,255,0,3,255,0,1,254,0,255,255,252,255, - 255,252,255,255,252,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,2,38,38,14,6,248,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,16,36,72,19,1,251,15,252,31,254,63,254,126,14, - 124,2,124,0,124,0,126,0,127,0,63,192,31,224,15,248, - 31,252,63,254,126,127,124,63,248,31,248,31,248,31,252,62, - 254,252,127,248,63,240,31,248,7,252,1,254,0,127,0,63, - 0,63,0,31,0,63,64,126,127,254,127,252,127,240,31,192, - 13,5,10,13,0,26,240,120,240,120,240,120,240,120,240,120, - 30,30,120,34,2,1,0,63,240,0,0,255,252,0,3,248, - 127,0,7,192,15,128,15,0,3,192,30,0,1,224,60,31, - 240,240,56,63,248,112,120,127,252,120,112,248,124,56,112,248, - 62,56,225,240,62,28,225,240,62,28,225,240,0,28,225,240, - 0,28,225,240,0,28,225,240,0,28,225,240,62,28,225,240, - 62,28,112,248,62,56,112,248,124,56,112,127,252,120,56,63, - 248,112,60,31,224,240,30,0,1,224,15,0,3,192,7,128, - 15,128,3,240,63,0,1,255,252,0,0,63,240,0,14,20, - 40,16,1,10,15,192,63,240,120,240,120,120,0,120,15,248, - 63,248,124,120,240,120,240,120,240,120,240,248,255,248,127,248, - 63,56,0,0,0,0,0,0,255,252,255,252,20,16,48,24, - 2,2,15,193,240,15,131,224,31,135,224,31,7,192,63,15, - 192,126,15,192,126,31,128,252,31,128,252,31,128,126,31,128, - 126,15,192,63,15,192,31,7,192,31,135,224,15,131,224,15, - 193,240,21,9,27,25,2,8,255,255,248,255,255,248,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,255,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,248,127,0,7,192,15,128,15,0,3,192,30,0, - 1,224,60,255,192,240,56,255,240,112,120,255,248,120,112,240, - 124,56,112,240,60,56,224,240,60,28,224,240,60,28,224,240, - 120,28,224,255,240,28,224,255,224,28,224,255,248,28,224,240, - 120,28,224,240,120,28,112,240,56,56,112,240,60,56,112,240, - 60,120,56,240,60,112,60,240,60,240,30,0,1,224,15,0, - 3,192,7,128,15,128,3,240,63,0,1,255,252,0,0,63, - 240,0,13,4,8,13,0,26,255,248,255,248,255,248,255,248, - 9,9,18,13,2,21,62,0,127,0,227,128,193,128,193,128, - 193,128,227,128,127,0,62,0,24,24,72,40,8,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,255,255,255,255,255,255,255,255,255,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 255,255,255,255,255,255,13,16,32,15,1,15,63,224,127,240, - 248,120,240,120,0,120,0,248,1,240,3,224,7,192,15,128, - 31,0,60,0,240,0,255,240,255,240,255,240,12,15,30,14, - 1,16,63,192,127,224,240,240,240,240,0,240,1,224,15,192, - 15,192,1,224,0,240,0,240,240,240,249,240,127,224,63,128, - 8,8,8,9,2,25,31,31,62,60,120,112,240,224,255,18, - 36,108,22,2,250,7,255,192,31,255,192,63,199,0,127,199, - 0,255,199,0,255,199,0,255,199,0,255,199,0,255,199,0, - 255,199,0,255,199,0,255,199,0,127,199,0,63,199,0,15, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,1,199,0,1,199,0,1,199,0,1,199,0,1,199,0, - 1,199,0,1,199,0,1,199,0,1,199,0,1,199,0,1, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,5,5,5,12,3,11,248,248,248,248,248,9,10,20,10, - 2,246,48,0,48,0,60,0,63,0,7,128,3,128,3,128, - 135,128,255,0,252,0,7,16,16,11,2,14,30,62,254,254, - 158,30,30,30,30,30,30,30,30,30,30,30,14,19,38,16, - 1,11,15,192,31,224,60,240,120,120,112,56,240,60,240,60, - 240,60,240,60,240,60,112,56,120,120,60,240,31,224,15,192, - 0,0,0,0,255,252,255,252,20,16,48,24,2,2,252,31, - 0,124,31,0,126,15,128,62,15,192,63,15,192,31,7,224, - 31,135,224,31,131,240,31,131,240,31,135,224,31,7,224,63, - 15,192,62,15,192,126,15,128,124,31,0,252,31,0,28,31, - 124,32,2,255,30,0,15,0,62,0,30,0,254,0,30,0, - 254,0,60,0,158,0,124,0,30,0,120,0,30,0,248,0, - 30,0,240,0,30,1,240,0,30,1,224,0,30,3,192,0, - 30,3,192,0,30,7,128,0,30,15,128,0,30,15,0,0, - 30,31,3,224,0,30,7,224,0,60,15,224,0,60,15,224, - 0,120,31,224,0,120,61,224,0,240,121,224,0,240,121,224, - 1,224,241,224,3,193,225,224,3,193,255,240,7,129,255,240, - 7,128,1,224,15,0,1,224,15,0,1,224,30,0,1,224, - 28,30,120,31,2,0,30,0,30,0,62,0,60,0,254,0, - 56,0,222,0,120,0,158,0,240,0,30,0,240,0,30,1, - 224,0,30,1,224,0,30,3,192,0,30,3,192,0,30,7, - 128,0,30,7,128,0,30,15,0,0,30,30,0,0,30,30, - 31,128,30,60,63,224,0,60,125,224,0,120,240,240,0,120, - 240,240,0,240,0,240,0,240,1,240,1,224,3,224,1,192, - 7,192,3,192,15,128,7,128,31,0,7,128,62,0,15,0, - 124,0,15,0,240,0,30,0,255,240,30,0,255,240,29,30, - 120,31,1,1,63,192,3,192,127,224,7,192,240,240,7,128, - 240,240,15,0,0,240,15,0,1,224,30,0,15,192,30,0, - 15,192,60,0,1,224,124,0,0,240,120,0,0,240,240,0, - 240,240,240,0,249,241,224,0,127,225,224,0,63,131,193,240, - 0,3,195,240,0,7,135,240,0,15,7,240,0,15,15,240, - 0,30,30,240,0,30,60,240,0,60,60,240,0,60,120,240, - 0,120,240,240,0,240,255,248,0,240,255,248,1,224,0,240, - 1,224,0,240,3,192,0,240,3,192,0,240,19,28,84,23, - 2,248,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,0,0,0,0,0,0,0,0,0,240,0,0,240,0, - 0,240,0,0,240,0,1,224,0,7,224,0,15,128,0,31, - 0,0,62,0,0,124,0,0,252,0,0,252,0,0,248,1, - 0,252,3,128,252,7,224,126,15,192,127,255,192,63,255,128, - 15,254,0,3,248,0,27,41,164,28,1,0,1,240,0,0, - 1,240,0,0,0,248,0,0,0,120,0,0,0,60,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,63,128,0, - 0,127,128,0,0,127,128,0,0,127,192,0,0,255,192,0, - 0,255,224,0,0,255,224,0,1,251,224,0,1,243,240,0, - 3,243,240,0,3,241,240,0,3,225,248,0,7,225,248,0, - 7,224,248,0,7,192,252,0,15,192,252,0,15,192,126,0, - 15,128,126,0,31,255,254,0,31,255,255,0,63,255,255,0, - 63,255,255,0,63,255,255,128,126,0,31,128,126,0,31,128, - 126,0,15,192,252,0,15,192,252,0,7,192,248,0,7,224, - 27,41,164,28,1,0,0,3,240,0,0,3,224,0,0,3, - 192,0,0,7,128,0,0,7,0,0,0,15,0,0,0,14, - 0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,127, - 128,0,0,127,192,0,0,255,192,0,0,255,224,0,0,255, - 224,0,1,251,224,0,1,243,240,0,3,243,240,0,3,241, - 240,0,3,225,248,0,7,225,248,0,7,224,248,0,7,192, - 252,0,15,192,252,0,15,192,126,0,15,128,126,0,31,255, - 254,0,31,255,255,0,63,255,255,0,63,255,255,0,63,255, - 255,128,126,0,31,128,126,0,31,128,126,0,15,192,252,0, - 15,192,252,0,7,192,248,0,7,224,27,41,164,28,1,0, - 0,63,0,0,0,63,128,0,0,127,128,0,0,123,192,0, - 0,243,192,0,0,225,224,0,1,192,224,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0, - 0,63,128,0,0,127,128,0,0,127,128,0,0,127,192,0, - 0,255,192,0,0,255,224,0,0,255,224,0,1,251,224,0, - 1,243,240,0,3,243,240,0,3,241,240,0,3,225,248,0, - 7,225,248,0,7,224,248,0,7,192,252,0,15,192,252,0, - 15,192,126,0,15,128,126,0,31,255,254,0,31,255,255,0, - 63,255,255,0,63,255,255,0,63,255,255,128,126,0,31,128, - 126,0,31,128,126,0,15,192,252,0,15,192,252,0,7,192, - 248,0,7,224,27,39,156,28,1,0,0,120,112,0,0,255, - 224,0,1,255,224,0,1,255,192,0,1,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,63,128,0,0,127,128,0,0,127,128,0,0,127, - 192,0,0,255,192,0,0,255,224,0,0,255,224,0,1,251, - 224,0,1,243,240,0,3,243,240,0,3,241,240,0,3,225, - 248,0,7,225,248,0,7,224,248,0,7,192,252,0,15,192, - 252,0,15,192,126,0,15,128,126,0,31,255,254,0,31,255, - 255,0,63,255,255,0,63,255,255,0,63,255,255,128,126,0, - 31,128,126,0,31,128,126,0,15,192,252,0,15,192,252,0, - 7,192,248,0,7,224,27,40,160,29,1,0,1,224,240,0, - 1,224,240,0,1,224,240,0,1,224,240,0,1,224,240,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,63,128,0,0,63,128,0,0,127,192,0, - 0,127,192,0,0,127,192,0,0,255,224,0,0,255,224,0, - 1,251,240,0,1,251,240,0,1,251,240,0,3,241,248,0, - 3,241,248,0,3,224,248,0,7,224,252,0,7,224,252,0, - 7,192,124,0,15,192,126,0,15,192,126,0,15,128,62,0, - 31,255,255,0,31,255,255,0,31,255,255,0,63,255,255,128, - 63,255,255,128,126,0,31,128,126,0,15,192,126,0,15,192, - 252,0,7,224,252,0,7,224,252,0,7,224,27,43,172,28, - 0,0,0,31,0,0,0,63,128,0,0,113,192,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,113,192,0,0,63, - 128,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,63,128,0,0,63,128,0,0,63, - 128,0,0,127,192,0,0,127,192,0,0,127,192,0,0,255, - 224,0,0,251,224,0,0,251,240,0,1,251,240,0,1,241, - 240,0,1,241,248,0,3,241,248,0,3,224,248,0,7,224, - 252,0,7,224,252,0,7,192,124,0,15,192,126,0,15,192, - 126,0,15,255,254,0,31,255,255,0,31,255,255,0,31,255, - 255,128,63,255,255,128,63,0,31,128,62,0,15,192,126,0, - 15,192,126,0,15,192,252,0,7,224,252,0,7,224,38,30, - 150,40,0,0,0,1,255,255,248,0,1,255,255,248,0,3, - 255,255,248,0,3,255,255,248,0,7,255,0,0,0,7,223, - 0,0,0,15,223,0,0,0,15,159,0,0,0,31,159,0, - 0,0,31,31,0,0,0,63,31,0,0,0,62,31,0,0, - 0,126,31,255,248,0,124,31,255,248,0,252,31,255,248,0, - 248,31,255,248,1,248,31,255,248,1,240,31,0,0,3,255, - 255,0,0,7,255,255,0,0,7,255,255,0,0,15,255,255, - 0,0,15,255,255,0,0,31,128,63,0,0,31,128,63,0, - 0,63,0,63,255,252,63,0,63,255,252,126,0,63,255,252, - 126,0,63,255,252,252,0,63,255,252,24,40,120,29,2,247, - 1,255,192,3,255,240,15,255,248,15,255,252,31,255,254,63, - 128,254,62,0,127,126,0,127,124,0,63,124,0,63,252,0, - 0,252,0,0,252,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,252,0,0,124,0,63,124, - 0,127,126,0,127,62,0,255,63,0,254,31,255,254,31,255, - 252,15,255,248,7,255,240,1,255,192,0,24,0,0,24,0, - 0,31,0,0,31,128,0,3,192,0,1,192,0,1,192,0, - 195,192,0,255,128,0,254,0,20,41,123,25,3,0,15,128, - 0,15,128,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,20,41,123,25,3,0,0, - 63,0,0,62,0,0,124,0,0,120,0,0,240,0,0,224, - 0,1,224,0,1,192,0,0,0,0,0,0,0,0,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,224,255,255,224,255,255,224, - 255,255,224,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,20,41,123,25,3,0, - 3,248,0,3,248,0,7,252,0,7,188,0,7,30,0,14, - 14,0,14,7,0,28,7,0,0,0,0,0,0,0,0,0, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,224,255,255,224,255,255, - 224,255,255,224,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,20,40,120,25,3, - 0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,9,41,82,11,255,0,248, - 0,124,0,60,0,30,0,14,0,15,0,7,0,3,0,0, - 0,0,0,0,0,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,8,41,41,10,3,0,15,31,30,60,56,120,112,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 12,41,82,11,0,0,31,128,63,128,63,128,123,192,121,192, - 112,224,224,224,192,112,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,13,40,80,13,0,0,240,120, - 240,120,240,120,240,120,240,120,0,0,0,0,0,0,0,0, - 0,0,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,26,30, - 120,29,0,0,31,255,0,0,31,255,224,0,31,255,248,0, - 31,255,252,0,31,255,254,0,31,1,255,0,31,0,127,0, - 31,0,31,128,31,0,31,128,31,0,15,192,31,0,15,192, - 31,0,7,192,31,0,7,192,255,252,7,192,255,252,7,192, - 255,252,7,192,255,252,7,192,31,0,7,192,31,0,7,192, - 31,0,15,192,31,0,15,192,31,0,31,128,31,0,31,128, - 31,0,127,0,31,1,255,0,31,255,254,0,31,255,252,0, - 31,255,248,0,31,255,224,0,31,255,0,0,25,39,156,31, - 3,0,0,248,96,0,1,255,224,0,1,255,192,0,3,255, - 128,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,128,15,128,255,128,15,128,255,128, - 15,128,255,192,15,128,255,192,15,128,255,224,15,128,251,224, - 15,128,251,240,15,128,249,240,15,128,249,248,15,128,248,248, - 15,128,248,252,15,128,248,252,15,128,248,126,15,128,248,126, - 15,128,248,63,15,128,248,63,15,128,248,31,143,128,248,31, - 143,128,248,15,143,128,248,15,207,128,248,7,207,128,248,7, - 239,128,248,3,239,128,248,3,255,128,248,1,255,128,248,1, - 255,128,248,0,255,128,248,0,255,128,248,0,127,128,27,41, - 164,31,2,0,1,240,0,0,1,240,0,0,0,248,0,0, - 0,120,0,0,0,60,0,0,0,28,0,0,0,28,0,0, - 0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,27,41,164,31,2,0,0,1, - 240,0,0,1,224,0,0,3,224,0,0,3,192,0,0,7, - 128,0,0,7,0,0,0,14,0,0,0,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,41,164,31,2,0,0,63,0,0,0,63,128,0, - 0,63,128,0,0,123,192,0,0,113,192,0,0,240,224,0, - 0,224,224,0,1,192,112,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,224,0,3,255,248,0,7,255,252,0, - 15,255,254,0,31,255,255,0,63,192,127,128,63,0,31,128, - 127,0,31,192,126,0,15,192,126,0,15,192,252,0,15,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,15,224,126,0,15,192,126,0,15,192,127,0,31,192, - 63,0,31,128,63,192,127,128,31,255,255,0,15,255,254,0, - 7,255,252,0,3,255,248,0,0,255,224,0,27,40,160,31, - 2,0,0,0,48,0,0,124,112,0,0,255,224,0,0,255, - 224,0,1,255,192,0,1,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,40,160,31,2,0,0,240,240,0,0,240,240,0, - 0,240,240,0,0,240,240,0,0,240,240,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,22,22,66,40,9,1,96,0, - 24,240,0,60,112,0,56,56,0,112,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,96,0,24,64,0,8, - 29,34,136,31,1,254,0,0,0,16,0,0,0,56,0,127, - 240,120,1,255,252,240,3,255,255,240,7,255,255,224,15,255, - 255,192,31,224,63,192,31,128,15,192,63,128,31,224,63,0, - 63,224,63,0,127,224,126,0,251,240,126,1,243,240,126,1, - 227,240,126,3,195,240,126,7,131,240,126,15,3,240,126,30, - 3,240,126,60,3,240,126,124,3,240,126,248,7,240,63,240, - 7,224,63,224,7,224,63,192,15,224,31,128,15,192,31,224, - 63,192,31,255,255,128,63,255,255,0,127,255,254,0,249,255, - 252,0,240,127,240,0,224,0,0,0,64,0,0,0,24,41, - 123,30,3,0,7,192,0,3,224,0,1,224,0,1,240,0, - 0,240,0,0,120,0,0,56,0,0,28,0,0,0,0,0, - 0,0,0,0,0,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,252,0, - 31,252,0,31,252,0,63,124,0,63,126,0,126,127,0,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,30,3,0,0,3,224,0,3,224,0,7,192,0,15, - 128,0,15,0,0,30,0,0,28,0,0,56,0,0,0,0, - 0,0,0,0,0,0,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,252, - 0,31,252,0,31,252,0,63,124,0,63,126,0,126,127,0, - 254,63,255,252,31,255,252,31,255,248,7,255,224,1,255,192, - 24,41,123,30,3,0,0,126,0,0,255,0,0,255,0,1, - 247,128,1,231,128,3,195,192,3,129,192,7,0,224,0,0, - 0,0,0,0,0,0,0,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 252,0,31,252,0,31,252,0,63,124,0,63,126,0,126,127, - 0,254,63,255,252,31,255,252,31,255,248,7,255,224,1,255, - 192,24,40,120,30,3,0,3,193,224,3,193,224,3,193,224, - 3,193,224,3,193,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,252,0,31,252,0,31,252,0,31,252,0,31, - 252,0,31,252,0,31,252,0,31,252,0,31,252,0,31,252, - 0,31,252,0,31,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,254,0,63,126,0,63,127,0,126,127,128,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,25,1,0,0,7,192,0,15,128,0,15,0,0,14, - 0,0,30,0,0,28,0,0,56,0,0,0,0,0,0,0, - 0,0,0,0,0,0,252,0,127,254,0,126,126,0,254,127, - 0,252,63,1,252,63,1,248,31,131,248,31,131,240,15,195, - 240,15,199,224,7,231,224,7,239,192,3,255,192,3,255,128, - 1,255,128,1,255,0,0,255,0,0,254,0,0,126,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 21,30,90,26,2,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,252,0,255,255,128,255,255,192,255,255, - 224,255,255,240,248,7,240,248,1,248,248,1,248,248,0,248, - 248,0,248,248,1,248,248,1,248,248,7,240,255,255,240,255, - 255,224,255,255,192,255,255,128,255,252,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 21,30,90,24,2,1,15,252,0,63,255,0,127,255,128,126, - 31,192,252,15,192,252,7,192,248,7,192,248,15,192,248,15, - 128,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 248,248,0,248,252,0,248,254,0,248,127,128,248,63,192,248, - 31,224,248,7,240,248,3,240,248,1,248,248,1,248,251,224, - 248,251,225,248,251,241,248,249,255,240,249,255,224,248,255,192, - 19,32,96,22,2,0,31,0,0,31,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,1,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,31,255,0, - 63,255,128,126,15,128,124,15,192,0,7,192,0,127,192,15, - 255,192,63,255,192,127,255,192,127,7,192,252,7,192,252,7, - 192,248,15,192,248,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,227,224,19,32,96,22,2,0,0,31,0,0, - 62,0,0,60,0,0,120,0,0,120,0,0,240,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,31,255,0,63,255,128,126,15,128,124,15,192,0, - 7,192,0,127,192,15,255,192,63,255,192,127,255,192,127,7, - 192,252,7,192,252,7,192,248,15,192,248,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,227,224,19,32,96,22, - 2,0,3,240,0,3,248,0,7,248,0,7,188,0,15,28, - 0,14,30,0,28,14,0,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,30,90,22,2,0,7,135,0,15,254,0,15,254, - 0,31,252,0,24,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,31,93,23,2,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,15,254,0,31,255,0,63, - 255,128,126,15,128,124,15,192,0,7,192,0,127,192,15,255, - 192,63,255,192,127,255,192,127,7,192,252,7,192,252,7,192, - 248,15,192,248,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,224,19,34,102,22,2,0,1,240,0,3,248, - 0,7,28,0,6,12,0,6,12,0,6,12,0,7,28,0, - 3,248,0,1,240,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,254,0,31,255,0,63,255,128,126,15, - 128,124,15,192,0,7,192,0,127,192,15,255,192,63,255,192, - 127,255,192,127,7,192,252,7,192,252,7,192,248,15,192,248, - 15,192,252,15,192,254,31,192,127,255,192,63,247,192,31,231, - 224,32,20,80,36,2,1,15,252,31,224,31,254,127,248,63, - 255,127,252,126,15,240,126,124,7,224,62,0,7,224,62,0, - 7,192,31,7,255,255,255,31,255,255,255,63,255,255,255,127, - 255,255,255,252,7,192,0,252,7,224,0,248,7,224,0,248, - 15,224,63,252,15,240,62,254,30,248,126,127,252,127,252,63, - 248,63,248,31,224,31,240,17,30,90,21,2,247,15,252,0, - 31,254,0,63,255,0,126,63,0,124,31,128,124,31,128,252, - 15,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,252,15,128,252,31,128,124,31,128,126,63,0, - 63,255,0,31,254,0,15,252,0,1,128,0,1,128,0,1, - 224,0,1,248,0,0,60,0,0,28,0,0,28,0,6,60, - 0,7,248,0,7,224,0,19,32,96,22,2,0,31,0,0, - 31,0,0,15,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,252,0,31,255,0,63,255,0,62,31,128,124,15,192, - 124,7,192,252,7,192,255,255,192,255,255,192,255,255,224,255, - 255,224,248,0,0,248,0,0,252,0,0,124,7,192,124,15, - 192,126,31,128,63,255,128,31,255,0,7,252,0,19,32,96, - 22,2,0,0,31,0,0,62,0,0,60,0,0,120,0,0, - 120,0,0,240,0,0,224,0,1,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,7,252,0,31,255,0,63,255,0, - 62,31,128,124,15,192,124,7,192,252,7,192,255,255,192,255, - 255,192,255,255,224,255,255,224,248,0,0,248,0,0,252,0, - 0,124,7,192,124,15,192,126,31,128,63,255,128,31,255,0, - 7,252,0,19,32,96,22,2,0,3,240,0,3,248,0,7, - 248,0,7,188,0,15,28,0,14,30,0,28,14,0,28,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,252,0, - 31,255,0,63,255,0,62,31,128,124,15,192,124,7,192,252, - 7,192,255,255,192,255,255,192,255,255,224,255,255,224,248,0, - 0,248,0,0,252,0,0,124,7,192,124,15,192,126,31,128, - 63,255,128,31,255,0,7,252,0,19,31,93,22,2,0,30, - 30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 15,192,252,15,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,15,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,8,32,32,11, - 0,0,248,120,124,60,30,14,7,7,0,0,0,0,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,9,32,64,10,2,0,15,128,31,0,30,0,62,0, - 60,0,120,0,112,0,224,0,0,0,0,0,0,0,0,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,13,32,64,11,255,0,15,192, - 31,192,31,224,61,224,56,240,120,112,112,56,224,56,0,0, - 0,0,0,0,0,0,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,13,31, - 62,11,255,0,240,120,240,120,240,120,240,120,240,120,0,0, - 0,0,0,0,0,0,0,0,0,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,20,31,93,24,2,0,0,0,96,7,193,224,3,247, - 224,1,255,128,0,254,0,0,254,0,3,254,0,15,159,0, - 30,15,128,24,15,128,0,7,192,7,255,192,15,255,224,63, - 255,224,63,15,240,126,3,240,124,3,240,252,1,240,252,1, - 240,252,1,240,248,1,240,248,1,240,252,1,240,252,1,240, - 252,1,240,124,3,240,126,3,224,63,15,224,31,255,192,15, - 255,128,7,254,0,18,30,90,24,3,0,7,134,0,15,254, - 0,15,254,0,31,252,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,32,96,24,2,0,15,128,0,7,128, - 0,7,192,0,3,192,0,1,224,0,0,224,0,0,112,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 254,0,15,255,0,31,255,192,63,15,192,126,3,224,124,3, - 240,252,1,240,252,1,240,252,1,240,248,1,240,248,1,240, - 248,1,240,252,1,240,252,1,240,124,3,240,126,3,224,63, - 15,192,31,255,192,15,255,0,3,254,0,20,32,96,24,2, - 0,0,15,128,0,31,0,0,30,0,0,60,0,0,56,0, - 0,120,0,0,112,0,0,224,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,254,0,15,255,0,31,255,192,63,15, - 192,126,3,224,124,3,240,252,1,240,252,1,240,252,1,240, - 248,1,240,248,1,240,248,1,240,252,1,240,252,1,240,124, - 3,240,126,3,224,63,15,192,31,255,192,15,255,0,3,254, - 0,20,32,96,24,2,0,1,248,0,1,252,0,3,252,0, - 3,222,0,7,158,0,7,15,0,14,7,0,14,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,31,93,24,2,0,0,1,128, - 3,195,0,7,255,0,7,255,0,15,254,0,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,254, - 0,15,255,0,31,255,192,63,15,192,126,3,224,124,3,240, - 252,1,240,252,1,240,252,1,240,248,1,240,248,1,240,248, - 1,240,252,1,240,252,1,240,124,3,240,126,3,224,63,15, - 192,31,255,192,15,255,0,3,254,0,20,31,93,24,2,0, - 15,7,128,15,7,128,15,7,128,15,7,128,15,7,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,254,0,15,255,0,31,255,192,63,15,192,126,3,224, - 124,3,240,252,1,240,252,1,240,252,1,240,248,1,240,248, - 1,240,248,1,240,252,1,240,252,1,240,124,3,240,126,3, - 224,63,15,192,31,255,192,15,255,0,3,254,0,24,19,57, - 40,8,2,0,16,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,56,0, - 0,124,0,0,124,0,0,124,0,0,56,0,21,26,78,24, - 1,254,0,0,56,0,0,120,0,0,112,1,255,224,7,255, - 224,15,255,224,31,135,224,63,7,240,62,15,248,126,14,248, - 126,28,248,126,56,248,124,120,248,124,112,248,126,224,248,127, - 192,248,63,193,248,63,129,248,63,3,240,31,135,224,31,255, - 224,31,255,192,57,255,0,120,0,0,240,0,0,96,0,0, - 18,32,96,24,3,0,31,0,0,15,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,252,7,192,252,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,231,192,18,32,96,24,3,0,0,62,0,0, - 60,0,0,124,0,0,120,0,0,240,0,0,224,0,1,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,252,7,192,252,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,231,192,18,32,96,24, - 3,0,3,240,0,3,248,0,7,248,0,7,188,0,15,60, - 0,14,30,0,30,14,0,28,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 231,192,18,31,93,24,3,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 252,7,192,252,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,192,21,41,123,22,1,248,0,7,192,0,15, - 128,0,15,0,0,30,0,0,30,0,0,60,0,0,56,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,1,248,252,3,240,126,3,240,126,3,224,63,7, - 224,63,7,224,63,7,192,31,143,192,31,143,192,15,143,128, - 15,223,128,15,223,128,7,223,0,7,255,0,3,255,0,3, - 254,0,3,254,0,1,252,0,1,252,0,0,252,0,0,248, - 0,1,248,0,33,248,0,115,240,0,255,240,0,255,224,0, - 127,192,0,31,128,0,20,38,114,25,3,248,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,249,254,0,251,255,128, - 251,255,192,255,15,192,254,7,224,252,3,224,252,3,240,252, - 3,240,252,3,240,248,1,240,248,1,240,252,3,240,252,3, - 240,252,3,240,252,3,224,254,7,224,255,15,192,255,255,192, - 251,255,128,249,254,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,21,39, - 117,21,0,248,15,7,128,15,7,128,15,7,128,15,7,128, - 15,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,1,248,252,1,248,126,1,240,126,3, - 240,63,3,224,63,3,224,63,7,224,31,135,192,31,143,192, - 15,207,192,15,207,128,15,223,128,7,255,128,7,255,0,3, - 255,0,3,255,0,3,254,0,1,254,0,1,252,0,0,252, - 0,0,252,0,1,248,0,1,248,0,1,248,0,3,240,0, - 3,240,0,7,240,0,7,224,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=32 x= 8 y=14 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30n[1205] U8G_FONT_SECTION("u8g_font_fub30n") = { - 0,59,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,16,32,26,5,14,4,32,28,56,30,120,30,120,15, - 240,7,224,227,199,255,255,255,255,243,207,7,224,15,240,30, - 120,30,120,28,56,4,32,24,25,75,40,8,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,255,255, - 255,255,255,255,255,255,255,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,8,10,10,12,2,251,31,31, - 62,62,60,124,120,120,240,240,10,5,10,14,2,8,255,192, - 255,192,255,192,255,192,255,192,5,5,5,12,4,0,248,248, - 248,248,248,13,32,64,17,2,254,0,120,0,120,0,120,0, - 240,0,240,0,240,1,224,1,224,1,224,3,192,3,192,3, - 192,3,192,7,128,7,128,7,128,15,0,15,0,15,0,14, - 0,30,0,30,0,30,0,60,0,60,0,60,0,120,0,120, - 0,120,0,120,0,240,0,240,0,20,30,90,23,1,1,3, - 252,0,15,255,0,31,255,128,63,15,128,62,7,192,124,3, - 192,124,3,224,124,3,224,124,3,224,248,1,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,124,3, - 224,124,3,224,124,3,224,124,3,224,62,7,192,63,15,128, - 31,255,128,15,255,0,3,252,0,12,30,60,23,4,0,1, - 240,3,240,15,240,63,240,255,240,255,240,253,240,249,240,225, - 240,129,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,20,30,90,23,1, - 1,3,255,0,7,255,128,31,255,192,31,255,224,63,255,240, - 63,3,240,126,1,240,126,1,240,124,1,240,0,1,240,0, - 3,240,0,3,240,0,7,224,0,15,224,0,15,192,0,31, - 128,0,63,0,0,254,0,1,252,0,3,248,0,7,240,0, - 15,224,0,63,128,0,127,0,0,252,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,19,30,90,23,2, - 1,7,252,0,31,255,0,63,255,128,127,255,128,127,255,192, - 252,15,192,252,7,192,248,7,192,0,7,192,0,7,192,0, - 15,192,0,63,192,3,255,128,3,254,0,3,252,0,3,255, - 0,3,255,128,0,31,192,0,7,224,0,7,224,0,7,224, - 0,3,224,248,7,224,252,7,224,252,7,192,126,15,192,127, - 255,128,63,255,128,31,255,0,15,252,0,21,30,90,23,1, - 0,0,63,128,0,63,128,0,127,128,0,255,128,0,255,128, - 1,255,128,1,255,128,3,239,128,3,207,128,7,207,128,15, - 143,128,15,143,128,31,15,128,31,15,128,62,15,128,62,15, - 128,124,15,128,252,15,128,248,15,128,255,255,248,255,255,248, - 255,255,248,255,255,248,255,255,248,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,19,30,90,23,2, - 0,127,255,192,127,255,192,127,255,192,127,255,192,127,255,192, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,252,0,125,255,0,127,255,128,127,255,192,127,15, - 224,126,7,224,124,3,224,0,3,224,0,3,224,0,3,224, - 0,3,224,0,3,224,248,7,224,252,7,224,252,15,192,127, - 255,128,127,255,128,63,254,0,15,252,0,20,30,90,23,1, - 1,3,254,0,7,255,0,15,255,128,31,255,192,63,255,192, - 63,7,224,126,3,224,126,3,224,124,0,0,124,0,0,252, - 0,0,248,0,0,249,255,0,251,255,128,255,255,192,255,15, - 224,254,7,224,254,3,240,252,3,240,252,3,240,252,1,240, - 252,1,240,124,3,240,124,3,240,126,3,224,63,7,224,63, - 255,192,31,255,128,15,255,0,3,254,0,19,30,90,23,2, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 0,7,224,0,7,224,0,7,192,0,15,192,0,15,192,0, - 31,128,0,31,128,0,63,0,0,63,0,0,63,0,0,126, - 0,0,126,0,0,252,0,0,252,0,1,252,0,1,248,0, - 1,248,0,3,240,0,3,240,0,7,240,0,7,224,0,15, - 224,0,15,192,0,15,192,0,31,192,0,20,30,90,23,1, - 1,7,254,0,31,255,128,63,255,192,127,255,224,127,255,224, - 126,7,224,124,3,224,124,3,224,124,3,224,124,3,224,126, - 7,224,127,15,192,63,255,128,15,255,0,7,252,0,31,255, - 0,63,255,192,127,15,224,124,7,224,252,3,240,252,3,240, - 248,1,240,248,3,240,252,3,240,252,3,240,254,7,240,127, - 255,224,63,255,192,31,255,128,15,255,0,20,30,90,23,1, - 1,3,252,0,15,255,0,31,255,128,63,255,192,127,255,192, - 126,7,224,252,7,224,252,3,224,252,3,240,248,3,240,248, - 3,240,252,3,240,252,7,240,124,7,240,127,15,240,63,255, - 240,63,253,240,31,249,240,7,225,240,0,3,240,0,3,224, - 0,3,224,0,3,224,124,7,224,124,7,192,126,15,192,63, - 255,128,31,255,0,15,254,0,7,252,0,5,20,20,12,5, - 0,248,248,248,248,248,0,0,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=25 dx=42 dy= 0 ascent=33 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30r[7686] U8G_FONT_SECTION("u8g_font_fub30r") = { - 0,59,54,253,245,30,9,163,21,182,32,127,249,33,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--49-490-72-72-P-242-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=17 dx=49 dy= 0 ascent=36 len=140 - Font Bounding box w=72 h=65 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub35n[1697] U8G_FONT_SECTION("u8g_font_fub35n") = { - 0,72,65,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,20,18,54,32,6,17,7,14,0,31,15,128,31,159,128, - 15,159,0,7,158,0,3,252,0,129,248,16,254,247,240,255, - 255,240,255,255,240,249,249,240,1,248,0,3,252,0,7,158, - 0,15,159,0,31,143,128,31,15,128,7,14,0,29,29,116, - 49,10,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,255,255,255,248,255,255,255,248,255, - 255,255,248,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,11,12,24,15,2,250,15,224,15, - 192,31,192,31,128,31,128,63,0,63,0,62,0,126,0,124, - 0,124,0,248,0,13,6,12,17,2,9,255,248,255,248,255, - 248,255,248,255,248,255,248,7,6,6,15,5,0,254,254,254, - 254,254,254,17,39,117,21,2,253,0,15,128,0,15,0,0, - 31,0,0,31,0,0,30,0,0,62,0,0,62,0,0,62, - 0,0,124,0,0,124,0,0,124,0,0,120,0,0,248,0, - 0,248,0,0,240,0,1,240,0,1,240,0,1,240,0,3, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,128,0,31,0,0, - 31,0,0,31,0,0,62,0,0,62,0,0,62,0,0,60, - 0,0,124,0,0,124,0,0,124,0,0,248,0,0,25,35, - 140,28,2,1,1,255,128,0,7,255,224,0,15,255,240,0, - 31,255,248,0,31,255,252,0,63,129,252,0,63,0,254,0, - 127,0,126,0,126,0,126,0,126,0,63,0,126,0,63,0, - 254,0,63,0,254,0,63,0,254,0,63,0,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,128,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,0,254,0,63,0, - 254,0,63,0,126,0,63,0,126,0,63,0,126,0,127,0, - 127,0,126,0,63,0,254,0,63,129,252,0,31,255,252,0, - 31,255,248,0,15,255,240,0,7,255,224,0,1,255,128,0, - 15,35,70,28,5,0,0,254,1,254,7,254,15,254,63,254, - 255,254,255,254,254,254,252,254,240,254,192,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,25,35,140,28, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,255,255,0,63,192,255,0,63,128,63,128,63,0, - 63,128,127,0,63,128,0,0,63,128,0,0,63,128,0,0, - 63,128,0,0,127,0,0,0,127,0,0,0,255,0,0,1, - 254,0,0,3,252,0,0,7,252,0,0,15,248,0,0,31, - 240,0,0,63,224,0,0,127,192,0,1,255,0,0,3,254, - 0,0,7,252,0,0,15,240,0,0,63,224,0,0,127,128, - 0,0,255,0,0,0,255,255,255,128,255,255,255,128,255,255, - 255,128,255,255,255,128,255,255,255,128,255,255,255,128,24,35, - 105,28,2,1,3,255,128,15,255,224,31,255,240,63,255,248, - 127,255,252,127,3,252,254,1,252,254,0,252,254,0,254,0, - 0,254,0,0,254,0,1,252,0,1,252,0,15,248,0,255, - 240,0,255,192,0,255,128,0,255,224,0,255,248,0,3,252, - 0,0,254,0,0,254,0,0,126,0,0,127,0,0,127,254, - 0,127,254,0,127,254,0,254,255,0,254,127,1,252,127,255, - 252,63,255,248,31,255,240,15,255,224,3,255,128,26,35,140, - 28,1,0,0,7,252,0,0,15,252,0,0,31,252,0,0, - 31,252,0,0,63,252,0,0,63,252,0,0,127,252,0,0, - 253,252,0,0,253,252,0,1,249,252,0,1,249,252,0,3, - 241,252,0,7,241,252,0,7,225,252,0,15,193,252,0,15, - 193,252,0,31,129,252,0,63,129,252,0,63,1,252,0,126, - 1,252,0,254,1,252,0,252,1,252,0,255,255,255,192,255, - 255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,0,1,252,0,0,1,252,0,0,1,252,0,0, - 1,252,0,0,1,252,0,0,1,252,0,0,1,252,0,24, - 35,105,28,2,0,127,255,252,127,255,252,127,255,252,127,255, - 252,127,255,252,127,255,252,127,0,0,127,0,0,127,0,0, - 127,0,0,127,0,0,127,0,0,127,31,192,127,127,240,127, - 255,248,127,255,252,127,255,252,127,193,254,127,0,254,127,0, - 127,126,0,127,0,0,127,0,0,127,0,0,127,0,0,127, - 0,0,127,254,0,127,254,0,254,254,0,254,255,1,252,127, - 255,252,127,255,248,63,255,240,15,255,192,7,255,128,25,35, - 140,28,2,1,0,255,192,0,3,255,240,0,7,255,248,0, - 15,255,252,0,31,255,254,0,31,224,254,0,63,192,127,0, - 63,128,127,0,127,0,0,0,127,0,0,0,127,0,0,0, - 126,0,0,0,254,31,192,0,254,127,240,0,254,255,248,0, - 254,255,252,0,255,255,254,0,255,225,254,0,255,192,255,0, - 255,128,127,0,255,0,63,0,255,0,63,128,255,0,63,128, - 255,0,63,128,255,0,63,128,127,0,63,0,127,0,63,0, - 127,128,127,0,127,128,127,0,63,192,254,0,31,255,252,0, - 31,255,252,0,15,255,248,0,7,255,224,0,1,255,128,0, - 24,35,105,28,2,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,127,0,0,127,0,0, - 254,0,0,254,0,1,254,0,1,252,0,3,252,0,3,248, - 0,7,248,0,7,240,0,15,240,0,15,240,0,31,224,0, - 31,224,0,63,192,0,63,192,0,63,128,0,127,128,0,127, - 0,0,255,0,0,255,0,1,254,0,1,254,0,3,252,0, - 3,252,0,7,248,0,7,248,0,15,248,0,15,240,0,25, - 35,140,28,2,1,3,255,192,0,15,255,240,0,31,255,252, - 0,63,255,254,0,63,255,254,0,127,193,255,0,127,128,255, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,63,128,254,0,63,193,252,0,15,255,248, - 0,7,255,224,0,1,255,192,0,15,255,240,0,31,255,248, - 0,63,193,254,0,127,128,254,0,127,0,127,0,254,0,63, - 0,254,0,63,0,254,0,63,128,254,0,63,128,254,0,63, - 128,255,0,127,128,255,0,127,0,127,128,255,0,127,255,255, - 0,63,255,254,0,63,255,252,0,15,255,248,0,3,255,224, - 0,25,35,140,28,2,1,1,255,192,0,7,255,224,0,15, - 255,248,0,31,255,252,0,63,255,252,0,127,129,254,0,127, - 0,254,0,126,0,255,0,254,0,127,0,254,0,127,0,254, - 0,127,128,254,0,127,128,254,0,127,128,254,0,127,128,254, - 0,255,128,127,0,255,128,127,131,255,128,63,255,255,128,63, - 255,191,128,31,255,191,128,15,255,63,128,1,248,63,128,0, - 0,63,0,0,0,127,0,0,0,127,0,0,0,127,0,127, - 0,254,0,127,0,254,0,127,1,254,0,63,131,252,0,31, - 255,252,0,31,255,248,0,15,255,240,0,7,255,224,0,1, - 255,128,0,7,24,24,16,7,0,254,254,254,254,254,254,0, - 0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,254, - 254}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--58-580-72-72-P-286-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=176 - Font Bounding box w=87 h=77 x=-5 y=-15 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub42n[2270] U8G_FONT_SECTION("u8g_font_fub42n") = { - 0,87,77,251,241,42,0,0,0,0,42,58,0,43,248,42, - 0,23,23,69,37,7,20,0,130,0,3,131,128,15,131,224, - 31,199,224,15,199,224,7,199,192,3,239,128,1,239,0,0, - 254,0,248,254,62,255,255,254,255,255,254,255,255,254,254,124, - 254,128,254,2,1,239,0,3,239,128,7,239,192,7,199,192, - 15,199,224,31,131,240,7,131,192,1,131,0,35,35,175,59, - 12,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,255,255,255,255,224,255,255,255,255,224,255,255,255,255, - 224,255,255,255,255,224,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,12,15,30,18,3,248,15,240,15,240,15,224,31,224,31, - 192,31,192,63,128,63,128,63,0,127,0,126,0,126,0,124, - 0,252,0,252,0,15,8,16,19,2,11,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,8,8,8,18,6, - 0,255,255,255,255,255,255,255,255,19,46,138,25,3,253,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,248,0,1,248,0,1,248, - 0,1,240,0,3,240,0,3,240,0,3,240,0,7,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,63,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,29,44,176,33,2,255,0, - 31,192,0,0,255,248,0,3,255,252,0,7,255,255,0,15, - 255,255,128,15,255,255,128,31,240,255,192,63,192,63,192,63, - 192,63,224,63,128,31,224,127,128,31,240,127,0,31,240,127, - 0,15,240,127,0,15,240,255,0,15,240,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,127,0,15,240,127,0,15,240,127,0,15,240,127, - 0,31,240,127,128,31,240,63,128,31,224,63,192,63,224,63, - 192,63,192,31,240,255,192,15,255,255,128,15,255,255,0,7, - 255,255,0,3,255,254,0,0,255,248,0,0,31,192,0,18, - 42,126,33,6,0,0,63,192,0,127,192,0,255,192,3,255, - 192,15,255,192,63,255,192,255,255,192,255,255,192,255,255,192, - 255,63,192,254,63,192,248,63,192,224,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,0,63,192,0,63,192,0,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,29,43,172,33,2,0,0,15,240,0,0,127,254, - 0,1,255,255,0,3,255,255,128,7,255,255,192,15,255,255, - 224,31,248,63,240,31,240,31,240,31,224,15,240,63,192,7, - 248,63,192,7,248,63,192,7,248,0,0,7,248,0,0,7, - 248,0,0,15,248,0,0,15,240,0,0,31,240,0,0,31, - 240,0,0,63,224,0,0,127,224,0,0,255,192,0,1,255, - 128,0,3,255,128,0,7,255,0,0,15,254,0,0,31,252, - 0,0,63,248,0,0,127,240,0,0,255,224,0,1,255,128, - 0,3,255,0,0,15,254,0,0,31,252,0,0,63,240,0, - 0,127,224,0,0,255,192,0,0,255,255,255,248,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,255,255,255,248,28,44,176,33,3,255,0,127,192,0,3, - 255,248,0,7,255,252,0,31,255,255,0,63,255,255,0,63, - 255,255,128,127,224,255,192,127,192,127,192,255,128,63,192,255, - 0,31,224,255,0,31,224,255,0,31,224,0,0,31,224,0, - 0,31,224,0,0,31,224,0,0,63,192,0,0,127,192,0, - 3,255,128,0,127,255,0,0,127,252,0,0,127,240,0,0, - 127,248,0,0,127,254,0,0,127,255,128,0,0,255,192,0, - 0,63,224,0,0,31,224,0,0,31,224,0,0,15,240,0, - 0,15,240,0,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,31,224,255,128,31,224,127,192,63,224,127, - 224,255,192,63,255,255,128,63,255,255,0,31,255,254,0,15, - 255,252,0,3,255,248,0,0,127,192,0,31,42,168,33,1, - 0,0,1,255,192,0,1,255,192,0,3,255,192,0,7,255, - 192,0,7,255,192,0,15,255,192,0,15,255,192,0,31,255, - 192,0,63,255,192,0,63,191,192,0,127,63,192,0,255,63, - 192,0,254,63,192,1,254,63,192,1,252,63,192,3,248,63, - 192,7,248,63,192,7,240,63,192,15,240,63,192,31,224,63, - 192,31,192,63,192,63,192,63,192,63,128,63,192,127,128,63, - 192,255,0,63,192,255,0,63,192,255,255,255,254,255,255,255, - 254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255, - 254,255,255,255,254,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,29,43,172,33,2,255,127, - 255,255,224,127,255,255,224,127,255,255,224,127,255,255,224,127, - 255,255,224,127,255,255,224,127,255,255,224,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,135,248,0,127, - 159,254,0,127,255,255,128,127,255,255,192,127,255,255,192,127, - 255,255,224,127,240,63,240,127,192,31,240,127,128,15,240,127, - 128,15,248,127,0,7,248,0,0,7,248,0,0,7,248,0, - 0,7,248,0,0,7,248,0,0,7,248,0,0,7,240,255, - 0,15,240,255,0,15,240,255,0,31,240,255,128,63,224,127, - 224,255,192,127,255,255,192,63,255,255,128,31,255,255,0,15, - 255,252,0,3,255,248,0,0,127,192,0,29,44,176,33,2, - 255,0,15,240,0,0,127,252,0,0,255,255,0,3,255,255, - 128,7,255,255,192,7,255,255,224,15,252,63,224,31,240,15, - 240,31,224,15,240,63,192,7,248,63,192,7,248,63,128,0, - 0,127,128,0,0,127,128,0,0,127,128,0,0,127,0,0, - 0,255,3,248,0,255,31,254,0,255,63,255,0,255,127,255, - 128,255,255,255,192,255,255,255,224,255,248,63,240,255,224,31, - 240,255,192,15,240,255,192,15,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,127,128,7, - 248,127,128,7,248,127,128,7,240,127,192,15,240,63,192,15, - 240,63,224,31,224,31,248,63,224,31,255,255,192,15,255,255, - 128,7,255,255,0,3,255,254,0,0,255,248,0,0,63,192, - 0,28,42,168,33,3,0,255,255,255,240,255,255,255,240,255, - 255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255, - 255,255,240,0,0,15,240,0,0,15,240,0,0,31,240,0, - 0,31,224,0,0,63,224,0,0,63,192,0,0,127,192,0, - 0,127,192,0,0,255,128,0,0,255,128,0,1,255,0,0, - 1,255,0,0,1,254,0,0,3,254,0,0,3,254,0,0, - 7,252,0,0,7,252,0,0,15,248,0,0,15,248,0,0, - 31,248,0,0,31,240,0,0,31,240,0,0,63,224,0,0, - 63,224,0,0,127,192,0,0,127,192,0,0,255,192,0,0, - 255,128,0,1,255,128,0,1,255,0,0,3,255,0,0,3, - 255,0,0,3,254,0,0,7,254,0,0,7,252,0,0,29, - 44,176,33,2,255,0,63,240,0,1,255,254,0,7,255,255, - 128,15,255,255,192,31,255,255,224,63,255,255,240,63,248,127, - 240,127,224,31,240,127,224,31,248,127,192,15,248,127,192,15, - 248,127,192,15,248,127,192,15,248,127,192,15,248,63,224,31, - 240,63,224,31,240,31,248,127,224,15,255,255,192,7,255,255, - 0,1,255,252,0,0,255,248,0,3,255,254,0,15,255,255, - 128,31,255,255,192,63,240,63,224,127,224,31,224,127,192,15, - 240,127,192,15,240,255,128,7,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,255,192,15, - 248,255,192,15,248,127,224,31,240,127,240,63,240,127,255,255, - 224,63,255,255,224,31,255,255,192,15,255,255,128,3,255,254, - 0,0,127,240,0,29,44,176,33,2,255,0,31,192,0,0, - 255,248,0,3,255,254,0,7,255,255,0,15,255,255,128,31, - 255,255,128,63,224,255,192,63,192,63,224,127,128,31,224,127, - 128,31,224,127,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,128,31,248,127,128,31,248,127,192,63,248,127, - 224,255,248,63,255,255,248,31,255,255,248,31,255,247,248,15, - 255,231,248,3,255,199,248,0,254,7,240,0,0,7,240,0, - 0,15,240,0,0,15,240,0,0,15,240,0,0,15,224,127, - 128,31,224,127,128,31,224,63,128,63,192,63,192,127,192,63, - 224,255,128,31,255,255,128,15,255,255,0,7,255,254,0,3, - 255,252,0,1,255,240,0,0,63,192,0,8,29,29,19,8, - 0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--68-680-72-72-P-335-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=255 - Font Bounding box w=100 h=91 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub49n[3148] U8G_FONT_SECTION("u8g_font_fub49n") = { - 0,100,91,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,27,108,43,8,23,0,64,64,0,1,192,112,0,7, - 224,252,0,15,224,254,0,7,241,252,0,7,241,252,0,3, - 241,248,0,1,251,240,0,0,251,224,0,0,127,192,0,224, - 127,192,224,255,191,191,224,255,255,255,224,255,255,255,224,255, - 255,255,224,255,63,159,224,192,127,192,96,0,123,192,0,0, - 251,224,0,1,251,240,0,3,241,248,0,7,241,252,0,15, - 241,252,0,15,224,254,0,7,224,252,0,1,192,112,0,0, - 64,64,0,41,41,246,69,14,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,255,255,255,255,255,128,255,255,255, - 255,255,128,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,15, - 17,34,21,3,247,7,254,7,252,7,252,7,248,15,248,15, - 240,15,240,31,224,31,224,31,192,63,192,63,128,63,128,127, - 0,127,0,126,0,254,0,17,9,27,23,3,13,255,255,128, - 255,255,128,255,255,128,255,255,128,255,255,128,255,255,128,255, - 255,128,255,255,128,255,255,128,9,9,18,21,7,0,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 23,54,162,29,3,252,0,0,254,0,0,254,0,0,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 248,0,7,240,0,7,240,0,7,240,0,7,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,192,0, - 63,128,0,63,128,0,63,128,0,63,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,254,0,0,254,0,1,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 240,0,7,240,0,7,240,0,7,240,0,15,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,128,0, - 63,128,0,63,128,0,63,0,0,127,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,34,51,255,39,2,255,0,7, - 248,0,0,0,63,255,0,0,0,255,255,192,0,1,255,255, - 224,0,3,255,255,240,0,7,255,255,248,0,15,255,255,252, - 0,15,254,31,252,0,31,248,7,254,0,31,240,3,254,0, - 63,240,3,255,0,63,224,1,255,0,63,224,1,255,0,127, - 224,1,255,128,127,192,0,255,128,127,192,0,255,128,127,192, - 0,255,128,255,192,0,255,128,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,192,0,255,192,255,192,0,255,192,255,192,0,255,192, - 255,192,0,255,192,255,192,0,255,192,255,192,0,255,192,255, - 192,0,255,192,255,192,0,255,192,255,192,0,255,192,255,192, - 0,255,192,255,192,0,255,128,127,192,0,255,128,127,192,0, - 255,128,127,192,0,255,128,127,224,1,255,128,63,224,1,255, - 0,63,224,1,255,0,63,240,3,255,0,31,240,3,254,0, - 31,248,7,254,0,15,254,31,252,0,15,255,255,252,0,7, - 255,255,248,0,3,255,255,240,0,1,255,255,224,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,20,49,147, - 39,7,0,0,31,240,0,63,240,0,127,240,1,255,240,3, - 255,240,15,255,240,63,255,240,255,255,240,255,255,240,255,255, - 240,255,223,240,255,159,240,254,31,240,248,31,240,224,31,240, - 128,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,34,50,250,39,2,0,0,3,254,0, - 0,0,31,255,192,0,0,127,255,240,0,0,255,255,248,0, - 3,255,255,254,0,7,255,255,254,0,7,255,255,255,0,15, - 255,255,255,128,31,255,7,255,128,31,252,1,255,192,31,248, - 0,255,192,63,248,0,255,192,63,240,0,127,192,63,240,0, - 127,192,63,240,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,255,192,0,0,0,255,128,0,0,1,255,128, - 0,0,1,255,128,0,0,3,255,0,0,0,7,255,0,0, - 0,15,254,0,0,0,31,254,0,0,0,63,252,0,0,0, - 127,248,0,0,0,255,240,0,0,1,255,224,0,0,3,255, - 192,0,0,7,255,128,0,0,15,255,0,0,0,31,254,0, - 0,0,63,252,0,0,0,255,248,0,0,1,255,224,0,0, - 3,255,192,0,0,7,255,128,0,0,31,254,0,0,0,63, - 252,0,0,0,127,248,0,0,0,255,224,0,0,0,255,255, - 255,255,192,255,255,255,255,192,255,255,255,255,192,255,255,255, - 255,192,255,255,255,255,192,255,255,255,255,192,255,255,255,255, - 192,255,255,255,255,192,32,51,204,39,3,255,0,31,248,0, - 0,255,255,0,3,255,255,128,7,255,255,224,15,255,255,240, - 31,255,255,248,63,255,255,248,127,255,255,252,127,248,31,252, - 127,224,15,254,255,192,7,254,255,192,3,254,255,128,3,254, - 255,128,3,254,0,0,3,254,0,0,3,254,0,0,3,254, - 0,0,7,254,0,0,15,252,0,0,127,252,0,63,255,248, - 0,63,255,224,0,63,255,192,0,63,254,0,0,63,255,0, - 0,63,255,192,0,63,255,240,0,63,255,248,0,0,63,252, - 0,0,7,254,0,0,3,254,0,0,3,255,0,0,1,255, - 0,0,1,255,0,0,1,255,0,0,1,255,255,128,1,255, - 255,128,1,255,255,128,1,255,255,192,3,255,255,192,3,254, - 127,224,7,254,127,224,15,254,127,248,31,252,63,255,255,248, - 63,255,255,240,31,255,255,240,15,255,255,192,3,255,255,128, - 1,255,254,0,0,31,240,0,36,50,250,39,2,0,0,0, - 63,252,0,0,0,127,252,0,0,0,127,252,0,0,0,255, - 252,0,0,0,255,252,0,0,1,255,252,0,0,3,255,252, - 0,0,3,255,252,0,0,7,255,252,0,0,7,255,252,0, - 0,15,247,252,0,0,31,247,252,0,0,31,231,252,0,0, - 63,199,252,0,0,127,199,252,0,0,127,135,252,0,0,255, - 135,252,0,0,255,7,252,0,1,255,7,252,0,3,254,7, - 252,0,3,252,7,252,0,7,252,7,252,0,7,248,7,252, - 0,15,248,7,252,0,31,240,7,252,0,31,240,7,252,0, - 63,224,7,252,0,63,192,7,252,0,127,192,7,252,0,255, - 128,7,252,0,255,128,7,252,0,255,255,255,255,240,255,255, - 255,255,240,255,255,255,255,240,255,255,255,255,240,255,255,255, - 255,240,255,255,255,255,240,255,255,255,255,240,255,255,255,255, - 240,0,0,7,252,0,0,0,7,252,0,0,0,7,252,0, - 0,0,7,252,0,0,0,7,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,252,0,0,0,7,252,0,0,0, - 7,252,0,0,0,7,252,0,33,50,250,39,3,255,127,255, - 255,254,0,127,255,255,254,0,127,255,255,254,0,127,255,255, - 254,0,127,255,255,254,0,127,255,255,254,0,127,255,255,254, - 0,127,255,255,254,0,127,192,0,0,0,127,192,0,0,0, - 127,192,0,0,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,127,192,0,0,0,127,192,0,0,0,127,192, - 0,0,0,127,193,255,0,0,127,199,255,192,0,127,223,255, - 240,0,127,255,255,248,0,127,255,255,252,0,127,255,255,254, - 0,127,255,255,254,0,127,252,15,255,0,127,240,3,255,0, - 127,224,3,255,0,127,192,1,255,128,127,192,1,255,128,0, - 0,0,255,128,0,0,0,255,128,0,0,0,255,128,0,0, - 0,255,128,0,0,0,255,128,0,0,0,255,128,0,0,0, - 255,128,0,0,0,255,128,255,128,1,255,128,255,128,1,255, - 0,255,192,3,255,0,255,192,3,254,0,127,224,15,254,0, - 127,248,63,252,0,127,255,255,252,0,63,255,255,248,0,31, - 255,255,240,0,15,255,255,224,0,7,255,255,128,0,1,255, - 254,0,0,0,63,240,0,0,34,51,255,39,2,255,0,3, - 252,0,0,0,31,255,128,0,0,127,255,224,0,0,255,255, - 240,0,1,255,255,248,0,3,255,255,252,0,7,255,255,254, - 0,7,255,255,254,0,15,255,7,255,0,31,252,3,255,0, - 31,248,1,255,128,31,248,0,255,128,63,240,0,255,128,63, - 224,0,0,0,63,224,0,0,0,127,224,0,0,0,127,192, - 0,0,0,127,192,0,0,0,127,192,127,0,0,127,195,255, - 224,0,255,199,255,240,0,255,207,255,248,0,255,223,255,252, - 0,255,191,255,254,0,255,255,255,255,0,255,254,15,255,0, - 255,248,3,255,128,255,248,3,255,128,255,240,1,255,128,255, - 240,1,255,192,255,224,0,255,192,255,224,0,255,192,255,224, - 0,255,192,255,224,0,255,192,255,224,0,255,192,127,224,0, - 255,192,127,224,0,255,192,127,224,0,255,192,127,224,0,255, - 128,63,240,1,255,128,63,240,1,255,128,63,248,3,255,0, - 31,248,3,255,0,31,254,15,254,0,15,255,255,254,0,7, - 255,255,252,0,3,255,255,248,0,1,255,255,240,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,33,49,245, - 39,3,0,255,255,255,255,128,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,255,255,255,255,128,0,0,0,255,128, - 0,0,1,255,128,0,0,1,255,128,0,0,3,255,0,0, - 0,3,255,0,0,0,7,254,0,0,0,7,254,0,0,0, - 15,254,0,0,0,15,252,0,0,0,31,252,0,0,0,31, - 248,0,0,0,31,248,0,0,0,63,240,0,0,0,63,240, - 0,0,0,127,240,0,0,0,127,224,0,0,0,255,224,0, - 0,0,255,192,0,0,1,255,192,0,0,1,255,192,0,0, - 3,255,128,0,0,3,255,128,0,0,3,255,0,0,0,7, - 255,0,0,0,7,254,0,0,0,15,254,0,0,0,15,254, - 0,0,0,31,252,0,0,0,31,252,0,0,0,63,248,0, - 0,0,63,248,0,0,0,63,248,0,0,0,127,240,0,0, - 0,127,240,0,0,0,255,224,0,0,0,255,224,0,0,1, - 255,192,0,0,1,255,192,0,0,3,255,192,0,0,3,255, - 128,0,0,7,255,128,0,0,34,51,255,39,2,255,0,15, - 252,0,0,0,255,255,192,0,3,255,255,240,0,7,255,255, - 248,0,15,255,255,252,0,31,255,255,254,0,63,255,255,255, - 0,63,255,255,255,0,63,252,15,255,0,127,248,7,255,128, - 127,240,3,255,128,127,224,1,255,128,127,224,1,255,128,127, - 224,1,255,128,127,224,1,255,128,127,224,1,255,128,127,224, - 1,255,128,63,240,3,255,0,63,248,7,255,0,31,252,15, - 254,0,15,255,255,252,0,7,255,255,240,0,1,255,255,192, - 0,0,63,255,0,0,0,255,255,128,0,3,255,255,224,0, - 7,255,255,248,0,31,255,255,252,0,63,252,15,254,0,63, - 248,7,255,0,127,240,3,255,0,127,224,1,255,128,127,224, - 1,255,128,255,192,0,255,192,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,224,1,255,192,255,224,1,255,192,255,240,3,255,192, - 127,240,7,255,128,127,252,15,255,128,63,255,255,255,0,63, - 255,255,255,0,31,255,255,254,0,15,255,255,252,0,3,255, - 255,240,0,0,255,255,192,0,0,15,252,0,0,34,51,255, - 39,2,255,0,7,248,0,0,0,63,255,0,0,0,255,255, - 192,0,3,255,255,224,0,7,255,255,240,0,15,255,255,248, - 0,31,255,255,252,0,31,255,255,254,0,63,248,31,254,0, - 63,240,7,255,0,127,224,7,255,0,127,192,3,255,0,127, - 192,3,255,128,255,192,1,255,128,255,128,1,255,128,255,128, - 1,255,128,255,128,1,255,192,255,128,1,255,192,255,128,1, - 255,192,255,192,1,255,192,255,192,3,255,192,255,192,3,255, - 192,127,224,7,255,192,127,240,7,255,192,127,248,31,255,192, - 63,255,255,255,192,31,255,255,127,192,31,255,254,255,192,15, - 255,252,255,192,3,255,252,255,192,1,255,240,255,192,0,127, - 192,255,128,0,0,0,255,128,0,0,0,255,128,0,0,1, - 255,128,0,0,1,255,128,0,0,1,255,0,0,0,1,255, - 0,127,192,3,255,0,127,192,3,254,0,127,224,7,254,0, - 63,224,15,254,0,63,240,15,252,0,31,248,63,252,0,31, - 255,255,248,0,15,255,255,240,0,7,255,255,224,0,3,255, - 255,192,0,1,255,255,128,0,0,127,254,0,0,0,15,240, - 0,0,9,34,68,21,9,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y=10 dx=15 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11[3712] U8G_FONT_SECTION("u8g_font_fur11") = { - 0,20,20,255,252,11,2,81,4,211,32,255,253,16,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,5,0,0,1,11,11,5,2,253,128,0,0, - 128,128,128,128,128,128,128,128,6,12,12,8,1,254,8,8, - 120,220,148,144,160,164,236,120,64,64,7,11,11,9,1,0, - 60,102,64,64,248,64,64,64,64,64,254,8,9,9,10,1, - 2,129,90,36,66,66,66,36,90,129,8,11,11,9,0,0, - 65,99,34,231,20,28,255,8,8,8,8,1,14,14,6,3, - 253,128,128,128,128,128,128,0,0,128,128,128,128,128,128,5, - 14,14,7,1,253,120,136,128,192,112,216,136,152,240,48,24, - 8,24,240,4,1,1,4,0,10,144,11,11,22,13,1,0, - 31,0,127,128,115,64,225,96,160,32,160,32,161,32,179,96, - 94,64,96,128,31,0,6,8,8,6,0,3,56,72,120,72, - 88,104,0,252,6,6,6,8,1,1,36,72,216,216,72,36, - 8,3,3,10,1,4,255,1,1,255,11,11,22,13,1,0, - 31,0,127,128,81,64,209,96,158,32,147,32,145,32,209,96, - 64,64,97,128,31,0,4,1,1,4,0,10,240,3,4,4, - 5,1,7,224,160,160,224,9,10,20,15,3,0,8,0,8, - 0,8,0,255,128,8,0,8,0,8,0,0,0,0,0,255, - 128,4,6,6,6,1,5,112,144,48,96,192,240,5,6,6, - 6,0,5,120,200,24,48,136,112,3,3,3,3,1,9,96, - 64,128,255,7,14,14,9,1,253,126,244,244,244,244,116,20, - 20,20,20,20,20,20,20,1,2,2,4,2,4,128,128,4, - 3,3,5,1,253,48,16,224,3,6,6,5,1,5,96,160, - 32,32,32,32,5,8,8,7,1,3,112,216,136,136,216,112, - 0,248,6,6,6,8,1,1,216,72,36,36,72,216,10,11, - 22,12,1,0,97,0,162,0,34,0,36,0,36,0,41,128, - 9,128,18,128,51,192,32,128,96,128,11,11,22,13,1,0, - 96,128,161,0,34,0,34,0,36,0,37,192,9,32,24,96, - 16,192,33,128,97,224,11,11,22,12,0,0,120,128,9,128, - 49,0,27,0,138,0,116,192,4,192,9,64,11,224,16,64, - 48,64,6,11,11,8,1,253,16,0,16,16,48,96,192,128, - 132,236,120,11,16,32,11,0,0,24,0,8,0,4,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,16,32,11,0,0,3, - 0,2,0,4,0,0,0,0,0,6,0,14,0,10,0,27, - 0,25,0,49,128,49,128,63,192,96,192,64,64,192,96,11, - 16,32,11,0,0,4,0,14,0,9,0,0,0,0,0,6, - 0,14,0,10,0,27,0,25,0,49,128,49,128,63,192,96, - 192,64,64,192,96,11,15,30,11,0,0,13,0,22,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,14,28,11,0,0,9, - 0,0,0,0,0,6,0,14,0,11,0,27,0,25,0,17, - 128,48,128,63,192,96,192,64,96,192,96,11,16,32,11,0, - 0,14,0,10,0,14,0,0,0,0,0,4,0,12,0,10, - 0,10,0,17,0,17,0,49,128,63,128,96,192,64,64,192, - 96,13,11,22,14,0,0,3,248,5,0,13,0,13,0,25, - 0,25,248,49,0,63,0,97,0,65,0,193,248,8,15,15, - 10,1,252,62,97,193,128,128,128,128,128,193,67,62,12,6, - 2,28,6,16,16,9,1,0,64,32,16,0,0,252,128,128, - 128,128,252,128,128,128,128,252,6,16,16,9,1,0,8,16, - 16,0,0,252,128,128,128,128,252,128,128,128,128,252,6,16, - 16,9,1,0,48,48,72,0,0,252,128,128,128,128,252,128, - 128,128,128,252,6,15,15,8,1,0,72,0,0,0,252,128, - 128,128,128,252,128,128,128,128,252,3,16,16,3,255,0,192, - 64,32,0,0,32,32,32,32,32,32,32,32,32,32,32,3, - 16,16,3,1,0,96,192,128,0,0,128,128,128,128,128,128, - 128,128,128,128,128,3,16,16,3,0,0,64,224,160,0,0, - 64,64,64,64,64,64,64,64,64,64,64,4,14,14,4,0, - 0,144,0,0,64,64,64,64,64,64,64,64,64,64,64,10, - 11,22,11,0,0,62,0,33,128,32,128,32,192,32,64,248, - 64,32,64,32,192,32,128,33,128,62,0,8,15,15,10,1, - 0,52,44,0,0,193,225,225,177,177,153,137,141,133,135,131, - 9,16,32,11,1,0,48,0,16,0,8,0,0,0,0,0, - 62,0,99,0,193,128,129,128,128,128,128,128,128,128,129,128, - 193,0,99,0,62,0,9,16,32,11,1,0,4,0,12,0, - 8,0,0,0,0,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,9,16,32,11, - 1,0,8,0,28,0,20,0,0,0,0,0,62,0,99,0, - 193,128,129,128,128,128,128,128,128,128,129,128,193,0,99,0, - 62,0,9,15,30,11,1,0,24,0,44,0,0,0,0,0, - 62,0,99,0,193,128,128,128,128,128,128,128,128,128,129,128, - 193,0,119,0,62,0,9,15,30,11,1,0,18,0,0,0, - 0,0,0,0,62,0,99,0,193,128,129,128,128,128,128,128, - 128,128,129,128,193,0,99,0,62,0,7,7,7,15,4,1, - 130,68,40,16,40,68,130,9,13,26,11,1,255,0,128,63, - 0,99,0,195,128,134,128,140,128,136,128,152,128,177,128,225, - 0,99,0,254,0,128,0,8,16,16,10,1,0,32,16,24, - 0,0,129,129,129,129,129,129,129,129,195,230,60,8,16,16, - 10,1,0,12,8,16,0,0,129,129,129,129,129,129,129,129, - 195,230,60,8,16,16,10,1,0,24,24,36,0,0,129,129, - 129,129,129,129,129,129,195,230,60,8,15,15,10,1,0,36, - 0,0,0,129,129,129,129,129,129,129,129,131,194,60,9,16, - 32,10,1,0,6,0,4,0,8,0,0,0,0,0,193,128, - 65,0,99,0,38,0,52,0,28,0,8,0,8,0,8,0, - 8,0,8,0,7,11,11,9,1,0,128,128,252,134,130,130, - 134,252,128,128,128,7,11,11,8,1,0,120,204,132,140,144, - 144,156,134,130,178,156,6,12,12,8,1,0,32,16,16,0, - 120,204,4,124,196,132,140,116,6,13,13,8,1,0,24,16, - 48,32,0,120,204,4,124,196,132,140,116,6,12,12,8,1, - 0,48,104,72,0,120,204,4,124,196,132,140,116,6,11,11, - 8,1,0,120,0,0,120,204,4,124,196,132,140,116,6,11, - 11,8,1,0,72,0,0,120,204,4,124,196,132,140,116,6, - 13,13,8,1,0,48,72,72,48,0,120,196,4,124,196,132, - 140,116,12,8,16,13,1,0,251,192,138,32,4,48,127,240, - 196,0,140,48,202,96,113,192,6,12,12,8,1,252,120,204, - 132,128,128,132,204,120,48,24,8,48,6,13,13,8,1,0, - 64,32,32,16,0,120,196,132,252,128,132,204,120,6,13,13, - 8,1,0,8,16,16,32,0,120,196,132,252,128,132,204,120, - 6,12,12,8,1,0,48,104,72,0,120,196,132,252,128,132, - 204,120,6,11,11,8,1,0,72,0,0,120,204,132,252,128, - 132,204,120,2,12,12,3,0,0,128,64,64,0,64,64,64, - 64,64,64,64,64,3,12,12,3,0,0,32,64,128,0,64, - 64,64,64,64,64,64,64,5,12,12,3,255,0,112,80,136, - 0,32,32,32,32,32,32,32,32,4,11,11,4,0,0,144, - 0,0,64,64,64,64,64,64,64,64,7,11,11,9,1,0, - 104,112,136,124,198,134,130,130,134,196,120,6,11,11,8,1, - 0,120,0,0,184,204,132,132,132,132,132,132,7,13,13,9, - 1,0,96,32,16,16,0,120,196,134,130,130,134,196,120,7, - 13,13,9,1,0,12,24,16,32,0,120,196,134,130,130,134, - 196,120,7,12,12,9,1,0,56,40,68,0,120,196,134,130, - 130,134,196,120,7,11,11,9,1,0,120,0,0,120,196,134, - 130,130,134,196,120,7,11,11,9,1,0,72,0,0,120,196, - 134,130,130,134,196,120,9,7,14,15,3,1,8,0,8,0, - 0,0,255,128,0,0,8,0,8,0,8,10,10,9,0,255, - 1,62,98,71,73,89,83,98,124,192,6,13,13,8,1,0, - 64,32,32,16,0,132,132,132,132,132,132,204,116,6,13,13, - 8,1,0,24,16,48,32,0,132,132,132,132,132,132,204,116, - 6,12,12,8,1,0,48,80,72,0,132,132,132,132,132,132, - 204,116,6,11,11,8,1,0,72,0,0,132,132,132,132,132, - 132,204,116,8,15,15,8,0,253,4,8,16,0,195,66,102, - 38,52,60,24,24,24,80,112,7,14,14,9,1,253,128,128, - 128,188,198,134,130,130,134,198,188,128,128,128,8,14,14,8, - 0,253,36,0,0,195,66,102,36,36,60,24,24,24,16,48 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=15 dy= 0 ascent=11 len=18 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11n[279] U8G_FONT_SECTION("u8g_font_fur11n") = { - 0,20,20,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,72,48,252,48,120,9,9,18,15, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,192,192,128,128,4,1, - 1,6,1,3,240,1,2,2,4,2,0,128,128,4,12,12, - 6,1,255,16,16,16,32,32,32,64,64,64,64,128,128,6, - 11,11,8,1,0,120,200,140,132,132,132,132,132,140,200,120, - 4,11,11,8,2,0,48,112,208,16,16,16,16,16,16,16, - 16,6,11,11,8,1,0,120,204,196,4,12,24,16,48,96, - 192,252,7,11,11,8,0,0,60,70,194,6,24,4,6,2, - 194,70,60,7,11,11,8,1,0,12,28,20,36,100,68,196, - 254,4,4,4,6,11,11,8,1,0,248,128,128,184,204,132, - 4,4,140,200,112,7,11,11,8,1,0,60,198,134,128,188, - 198,130,130,130,198,60,7,11,11,8,1,0,254,6,6,4, - 12,8,24,24,16,48,48,6,11,11,8,1,0,120,204,132, - 204,112,200,132,132,132,204,120,7,11,11,8,1,0,124,198, - 130,130,198,122,2,6,134,204,120,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y= 9 dx=15 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11r[1729] U8G_FONT_SECTION("u8g_font_fur11r") = { - 0,20,20,255,252,11,2,81,4,211,32,127,253,13,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=13 dx=19 dy= 0 ascent=21 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14[5349] U8G_FONT_SECTION("u8g_font_fur14") = { - 0,26,26,255,251,14,3,59,6,250,32,255,252,21,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,0,2, - 14,14,7,3,252,192,192,0,0,192,192,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,2,4,60,102,203,200,200, - 208,208,211,102,60,32,64,10,14,28,11,1,0,31,0,49, - 128,96,192,96,0,96,0,252,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,255,128,10,10,20,12,1,3,128, - 64,94,128,51,0,65,128,64,128,64,128,64,128,33,0,94, - 128,128,64,10,14,28,12,1,0,192,192,96,128,97,128,49, - 0,243,192,27,0,30,0,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,1,18,18,7,3,252,128,128,128,128,128, - 128,128,128,0,0,128,128,128,128,128,128,128,128,7,17,17, - 9,1,253,60,100,192,192,96,56,124,198,198,206,124,60,14, - 6,6,140,248,6,1,1,6,0,13,204,14,14,28,16,1, - 0,15,192,28,224,39,144,76,200,216,108,152,4,152,4,152, - 4,152,100,140,204,71,200,32,16,16,32,15,192,7,10,10, - 8,1,4,120,204,4,124,196,132,124,0,0,254,7,8,8, - 11,2,1,38,100,204,216,152,204,100,38,10,5,10,12,1, - 3,255,192,0,64,0,64,0,64,0,64,255,14,14,28,16, - 1,0,15,192,28,224,47,208,76,104,204,108,140,100,143,132, - 140,68,140,100,204,108,76,104,32,16,28,224,15,192,6,1, - 1,6,0,13,252,4,5,5,6,1,9,96,240,144,144,96, - 11,12,24,19,4,0,6,0,6,0,6,0,6,0,255,224, - 6,0,6,0,6,0,0,0,0,0,0,0,255,224,6,8, - 8,7,1,6,120,220,12,12,24,48,192,252,6,8,8,7, - 1,6,120,204,12,48,24,140,204,120,4,4,4,4,1,12, - 48,96,64,192,255,9,18,36,11,1,252,63,128,121,0,249, - 0,249,0,249,0,249,0,121,0,25,0,9,0,9,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,2, - 2,2,5,2,5,192,192,6,5,5,5,0,251,64,120,12, - 12,248,4,7,7,6,1,7,112,240,48,48,48,48,48,6, - 10,10,8,1,4,120,72,132,132,132,132,204,120,0,252,7, - 8,8,11,2,1,152,204,100,102,102,100,204,152,13,14,28, - 15,1,0,112,64,240,192,48,128,49,128,49,0,51,0,50, - 48,54,112,12,112,8,176,25,176,17,248,48,48,32,48,13, - 14,28,15,1,0,112,64,240,192,48,128,49,128,49,0,50, - 0,50,112,52,216,12,24,8,24,24,48,16,96,48,192,32, - 248,14,14,28,16,1,0,120,48,204,32,12,96,48,192,12, - 128,141,128,121,24,3,56,2,120,4,88,12,152,8,252,24, - 24,16,24,8,14,14,10,1,252,12,12,0,12,12,12,24, - 48,96,192,192,193,127,62,14,20,40,14,0,0,12,0,6, - 0,2,0,3,0,0,0,0,0,3,0,7,128,7,128,4, - 192,12,192,12,192,24,96,24,96,31,240,63,240,48,24,96, - 24,96,24,192,12,14,20,40,14,0,0,0,192,0,128,1, - 128,1,0,0,0,0,0,3,0,7,128,7,128,4,192,12, - 192,12,192,24,96,24,96,31,240,63,240,48,24,96,24,96, - 24,192,12,14,20,40,14,0,0,3,0,3,128,6,128,4, - 192,0,0,0,0,3,0,7,128,7,128,4,192,12,192,12, - 192,24,96,24,96,31,240,63,240,48,24,96,24,96,24,192, - 12,14,18,36,14,0,0,7,192,0,0,0,0,0,0,3, - 0,7,128,7,128,4,192,12,192,12,192,24,96,24,96,31, - 240,63,240,48,24,96,24,96,24,192,12,13,18,36,15,1, - 0,12,192,0,0,0,0,0,0,7,0,7,0,13,128,13, - 128,12,192,24,192,24,192,48,96,63,224,63,240,96,48,96, - 24,192,24,192,24,13,21,42,14,1,0,6,0,13,0,9, - 0,9,0,6,0,0,0,0,0,6,0,7,0,15,0,13, - 0,25,128,25,128,16,192,48,192,63,224,127,224,96,32,192, - 48,192,48,192,24,17,14,42,19,1,0,1,255,128,3,192, - 0,2,192,0,6,192,0,14,192,0,12,192,0,28,255,128, - 24,192,0,56,192,0,63,192,0,96,192,0,96,192,0,192, - 192,0,192,255,128,11,18,36,13,1,252,31,128,57,192,96, - 96,64,96,192,0,192,0,192,0,192,0,192,0,192,0,64, - 96,96,96,49,192,31,0,4,0,7,0,1,128,15,128,9, - 20,40,12,2,0,96,0,48,0,24,0,8,0,0,0,0, - 0,255,128,192,0,192,0,192,0,192,0,192,0,255,128,192, - 0,192,0,192,0,192,0,192,0,192,0,255,128,9,20,40, - 12,2,0,6,0,4,0,12,0,24,0,0,0,0,0,255, - 128,192,0,192,0,192,0,192,0,192,0,255,128,192,0,192, - 0,192,0,192,0,192,0,192,0,255,128,9,20,40,12,2, - 0,24,0,28,0,52,0,38,0,0,0,0,0,255,128,192, - 0,192,0,192,0,192,0,192,0,255,128,192,0,192,0,192, - 0,192,0,192,0,192,0,255,128,9,18,36,12,2,0,102, - 0,0,0,0,0,0,0,255,128,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,255,128,4,20,20,5,0,0,192,96,32,48,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,4,20,20, - 5,2,0,48,96,64,128,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,5,20,20,5,0,0,48,112,88, - 200,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,6,18,18,6,0,0,204,0,0,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,13,14,28,14,0,0,127, - 128,97,224,96,112,96,48,96,16,96,24,254,24,96,24,96, - 24,96,16,96,48,96,96,97,224,127,128,11,18,36,14,2, - 0,31,0,0,0,0,0,0,0,224,96,224,96,240,96,248, - 96,216,96,220,96,204,96,198,96,198,96,195,96,195,96,193, - 224,193,224,192,224,12,20,40,14,1,0,24,0,12,0,6, - 0,2,0,0,0,0,0,31,128,57,192,96,96,64,32,192, - 48,192,48,192,48,192,48,192,48,192,48,64,32,96,96,57, - 192,15,0,12,20,40,14,1,0,1,128,3,0,6,0,4, - 0,0,0,0,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,12,20,40,14,1,0,6,0,15,0,9,0,16,128,0, - 0,0,0,31,128,57,192,96,96,64,32,192,48,192,48,192, - 48,192,48,192,48,192,48,64,32,96,96,57,192,15,0,12, - 19,38,14,1,0,12,128,31,0,0,0,0,0,0,0,31, - 128,57,192,96,96,64,32,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,112,224,63,192,15,0,12,18,36,14,1, - 0,13,128,0,0,0,0,0,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,0,11,10,20,19,4,1,192,96,96,192,49, - 128,27,0,14,0,14,0,27,0,49,128,96,192,64,96,12, - 16,32,14,1,255,0,48,31,224,56,224,96,224,65,176,193, - 176,195,48,198,48,198,48,204,48,220,48,88,32,112,96,57, - 192,127,0,192,0,11,20,40,15,2,0,24,0,8,0,4, - 0,6,0,0,0,0,0,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, - 192,31,0,11,20,40,15,2,0,3,0,2,0,4,0,12, - 0,0,0,0,0,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,96,192,127,192,31, - 0,11,20,40,15,2,0,14,0,14,0,27,0,17,0,0, - 0,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, - 18,36,15,2,0,25,128,0,0,0,0,0,0,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,96,192,113,192,31,0,12,20,40,12,0,0,1, - 128,3,0,2,0,4,0,0,0,0,0,224,112,96,96,112, - 192,48,192,25,128,25,128,15,0,14,0,6,0,6,0,6, - 0,6,0,6,0,6,0,9,14,28,12,2,0,192,0,192, - 0,192,0,254,0,195,0,193,128,193,128,193,128,195,128,254, - 0,192,0,192,0,192,0,192,0,10,14,28,11,1,0,62, - 0,103,0,195,0,195,0,198,0,204,0,204,0,206,0,199, - 128,193,128,192,192,216,192,220,128,199,128,8,15,15,10,1, - 0,48,24,8,0,0,62,103,195,3,63,99,195,195,231,123, - 8,16,16,10,1,0,6,12,24,16,0,0,62,103,195,3, - 63,99,195,195,231,123,8,16,16,10,1,0,24,28,36,38, - 0,0,62,103,195,3,63,99,195,195,231,123,8,14,14,10, - 1,0,62,0,0,0,62,103,195,3,63,115,195,195,231,123, - 8,14,14,10,1,0,102,0,0,0,62,103,195,3,63,99, - 195,195,231,123,8,16,16,10,1,0,28,34,34,28,0,0, - 62,99,193,1,63,113,193,193,231,61,16,10,20,18,1,0, - 62,124,227,198,193,131,1,131,63,255,225,128,193,128,195,131, - 230,238,124,60,8,14,14,10,1,252,62,103,195,192,192,192, - 192,195,102,60,16,28,6,62,9,16,32,11,1,0,48,0, - 48,0,24,0,8,0,0,0,0,0,62,0,99,0,193,0, - 193,128,255,128,192,0,192,0,67,0,103,0,62,0,9,16, - 32,11,1,0,6,0,12,0,8,0,24,0,0,0,0,0, - 62,0,99,0,193,0,193,128,255,128,192,0,192,0,67,0, - 103,0,62,0,9,16,32,11,1,0,24,0,28,0,52,0, - 34,0,0,0,0,0,62,0,99,0,193,0,193,128,255,128, - 192,0,192,0,67,0,103,0,62,0,9,14,28,11,1,0, - 102,0,0,0,0,0,0,0,62,0,99,0,193,0,193,128, - 255,128,192,0,192,0,67,0,103,0,62,0,3,15,15,4, - 0,0,128,192,96,32,0,96,96,96,96,96,96,96,96,96, - 96,3,15,15,4,1,0,96,64,192,128,0,192,192,192,192, - 192,192,192,192,192,192,6,15,15,4,255,0,48,120,72,132, - 0,48,48,48,48,48,48,48,48,48,48,6,14,14,5,0, - 0,204,0,0,0,48,48,48,48,48,48,48,48,48,48,9, - 14,28,11,1,0,102,0,24,0,108,0,6,0,63,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,8,14,14,10,1,0,52,124,0,0,222,231,195,195,195, - 195,195,195,195,195,9,16,32,11,1,0,48,0,16,0,24, - 0,8,0,0,0,0,0,62,0,99,0,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,16,32,11,1, - 0,6,0,4,0,12,0,8,0,0,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,16,32,11,1,0,8,0,28,0,20,0,34,0,0, - 0,0,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,62,0,0, - 0,0,0,0,0,62,0,99,0,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,9,14,28,11,1,0,51, - 0,0,0,0,0,0,0,62,0,115,0,193,128,192,128,192, - 128,192,128,192,128,193,128,115,0,62,0,11,8,16,19,4, - 2,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,9,12,24,11,1,0,1,128,63,0,99,0,199,128,197, - 128,201,128,217,128,209,128,225,128,99,0,254,0,128,0,8, - 16,16,10,1,0,96,48,16,8,0,0,195,195,195,195,195, - 195,195,195,231,123,8,16,16,10,1,0,4,12,8,16,0, - 0,195,195,195,195,195,195,195,195,231,123,8,16,16,10,1, - 0,24,24,52,36,0,0,195,195,195,195,195,195,195,195,231, - 123,8,14,14,10,1,0,102,0,0,0,195,195,195,195,195, - 195,195,195,231,123,10,19,38,10,0,252,3,0,6,0,4, - 0,8,0,0,0,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,120,0,120, - 0,9,18,36,11,1,252,192,0,192,0,192,0,192,0,222, - 0,227,0,193,128,193,128,193,128,193,128,193,128,193,128,227, - 0,222,0,192,0,192,0,192,0,192,0,10,18,36,10,0, - 252,51,0,0,0,0,0,0,0,192,192,97,128,97,128,97, - 0,51,0,51,0,30,0,30,0,30,0,12,0,12,0,24, - 0,24,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=15 x= 4 y= 7 dx=19 dy= 0 ascent=14 len=28 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14n[421] U8G_FONT_SECTION("u8g_font_fur14n") = { - 0,26,26,255,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=12 dx=19 dy= 0 ascent=16 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14r[2489] U8G_FONT_SECTION("u8g_font_fur14r") = { - 0,26,26,255,251,14,3,59,6,250,32,127,252,16,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=15 dx=24 dy= 0 ascent=24 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17[6799] U8G_FONT_SECTION("u8g_font_fur17") = { - 0,31,30,254,250,17,4,5,8,170,32,255,251,24,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,7,0,0, - 2,17,17,8,3,251,192,192,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,10,18,36,14,2,253,1,0,1, - 0,1,0,31,0,127,128,98,192,198,192,196,0,196,0,204, - 0,200,0,200,192,121,192,127,128,31,0,32,0,32,0,32, - 0,11,17,34,13,1,0,15,128,29,192,48,96,48,0,48, - 0,48,0,254,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,255,224,11,14,28,13,1,3,0, - 32,128,32,95,64,123,128,96,128,64,64,64,64,64,64,64, - 64,96,128,113,128,95,64,128,32,0,32,12,17,34,14,1, - 0,192,48,96,96,96,96,48,224,48,192,249,240,25,128,15, - 128,15,0,255,240,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,1,22,22,8,4,251,128,128,128,128,128,128,128, - 128,128,0,0,0,0,128,128,128,128,128,128,128,128,128,8, - 21,21,10,1,252,62,126,192,192,192,112,120,62,119,227,195, - 199,238,124,30,7,3,3,3,142,252,7,2,2,7,0,15, - 198,198,17,17,51,19,1,0,3,224,0,15,120,0,56,14, - 0,35,242,0,71,57,0,78,25,0,140,0,128,140,0,128, - 140,0,128,140,0,128,140,24,128,70,57,0,67,241,0,32, - 2,0,48,6,0,12,24,0,3,224,0,9,11,22,9,0, - 6,62,0,127,0,97,0,1,0,63,0,113,0,65,0,67, - 0,61,0,0,0,255,128,9,9,18,13,2,1,49,128,51, - 0,99,0,230,0,204,0,230,0,99,0,51,0,17,128,12, - 5,10,14,1,5,255,240,0,16,0,16,0,16,0,16,255, - 17,17,51,19,1,0,3,224,0,15,120,0,56,14,0,39, - 242,0,70,57,0,70,25,0,134,24,128,135,224,128,134,48, - 128,134,16,128,134,24,128,70,25,0,70,25,0,32,2,0, - 56,14,0,15,120,0,3,224,0,7,1,1,7,0,15,254, - 5,6,6,7,1,11,112,216,136,136,216,112,14,14,28,24, - 5,0,2,0,2,0,2,0,2,0,255,252,2,0,2,0, - 2,0,2,0,2,0,0,0,0,0,0,0,255,252,7,9, - 9,9,1,8,60,126,198,6,12,24,48,224,254,7,9,9, - 9,1,8,60,126,198,14,24,14,6,206,124,3,4,4,5, - 2,14,96,96,192,128,255,10,21,42,13,1,252,31,192,60, - 128,124,128,252,128,252,128,252,128,124,128,124,128,60,128,4, - 128,4,128,4,128,4,128,4,128,4,128,4,128,4,128,4, - 128,4,128,4,128,4,128,2,3,3,6,2,7,192,192,192, - 6,5,5,6,1,250,64,120,12,12,252,3,9,9,7,2, - 8,96,224,32,32,32,32,32,32,32,8,11,11,10,1,6, - 60,126,195,193,193,193,195,98,124,0,255,9,9,18,13,2, - 1,204,0,102,0,99,0,51,0,57,128,51,0,99,0,102, - 0,204,0,15,17,34,18,2,0,96,48,224,32,32,96,32, - 64,32,192,32,128,33,0,35,0,34,24,6,24,4,40,12, - 72,8,200,16,254,48,8,32,8,96,8,16,17,34,19,2, - 0,96,16,224,48,32,32,32,96,32,192,32,128,33,128,33, - 0,35,62,6,119,4,99,12,3,8,6,24,28,16,48,32, - 96,96,127,17,17,51,19,1,0,124,4,0,254,12,0,6, - 8,0,24,16,0,30,48,0,6,32,0,198,96,0,206,64, - 0,124,198,0,1,134,0,1,10,0,3,26,0,2,50,0, - 6,63,128,4,2,0,8,2,0,24,2,0,10,17,34,12, - 1,251,6,0,6,0,0,0,0,0,6,0,6,0,6,0, - 14,0,28,0,112,0,96,0,192,0,192,0,192,192,241,192, - 127,128,31,0,16,23,46,17,1,0,14,0,6,0,3,0, - 1,0,0,0,0,0,3,128,3,128,7,192,6,192,14,224, - 12,96,12,112,24,48,24,48,56,56,63,248,63,252,96,12, - 96,12,224,6,192,6,192,7,16,23,46,17,1,0,0,96, - 0,192,0,128,1,0,0,0,0,0,3,128,3,128,7,192, - 6,192,14,224,12,96,12,112,24,48,24,48,56,56,63,248, - 63,252,96,12,96,12,224,6,192,6,192,7,16,23,46,17, - 1,0,3,128,3,192,6,192,4,96,0,0,0,0,3,128, - 3,128,7,192,6,192,14,224,12,96,12,112,24,48,24,48, - 56,56,63,248,63,252,96,12,96,12,224,6,192,6,192,7, - 16,22,44,17,1,0,7,96,13,192,0,0,0,0,0,0, - 3,128,3,128,7,192,6,192,14,224,12,96,12,112,24,48, - 24,48,56,56,63,248,63,252,96,12,96,12,224,6,192,6, - 192,7,16,22,44,18,1,0,6,48,6,48,0,0,0,0, - 0,0,1,192,3,192,3,224,7,96,6,96,6,112,12,48, - 12,56,28,24,24,28,63,252,63,252,48,6,96,6,96,7, - 224,3,192,3,16,24,48,17,1,0,3,128,6,192,4,64, - 4,64,3,128,0,0,0,0,3,128,3,128,7,192,6,192, - 6,224,12,96,12,112,28,48,24,48,24,24,63,248,63,252, - 96,12,96,12,224,6,192,6,192,7,21,17,51,23,1,0, - 0,255,248,0,240,0,1,240,0,1,176,0,3,176,0,3, - 48,0,7,48,0,6,48,0,14,63,248,12,48,0,28,48, - 0,31,240,0,56,48,0,48,48,0,112,48,0,96,48,0, - 192,63,248,13,22,44,15,1,251,15,192,63,240,48,56,96, - 24,96,24,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,24,112,48,63,240,15,192,2,0,3,192,0, - 224,0,96,7,224,11,23,46,14,2,0,48,0,24,0,12, - 0,4,0,0,0,0,0,255,224,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,224,11,23,46,14,2,0,3, - 0,6,0,6,0,12,0,0,0,0,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,11,23,46, - 14,2,0,30,0,30,0,51,0,33,0,0,0,0,0,255, - 224,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 192,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,11,22,44,14,2,0,51,0,51,0,0,0,0,0,0, - 0,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,224,4,23,23,6,0,0,192,96,48,16,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 4,23,23,6,2,0,48,96,64,192,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,6,23,23, - 6,0,0,56,120,76,196,0,0,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,7,22,22,7,0,0, - 198,198,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,15,17,34,17,0,0,63,192,49,240, - 48,56,48,12,48,12,48,6,48,6,48,6,255,6,48,6, - 48,6,48,6,48,12,48,28,48,56,49,240,63,192,13,22, - 44,17,2,0,14,192,31,128,0,0,0,0,0,0,224,24, - 240,24,248,24,248,24,220,24,220,24,206,24,198,24,199,24, - 195,24,195,152,193,216,193,216,192,248,192,248,192,120,192,56, - 15,24,48,17,1,0,14,0,6,0,3,0,1,0,1,128, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,15,24,48,17,1,0,0,224,0,192, - 1,128,1,0,3,0,0,0,0,0,7,192,30,240,48,24, - 96,12,96,12,192,6,192,6,192,6,192,6,192,6,192,6, - 224,14,96,12,96,12,48,24,30,240,7,192,15,24,48,17, - 1,0,3,128,3,128,6,192,4,64,12,32,0,0,0,0, - 7,192,30,240,48,24,96,12,96,12,192,6,192,6,192,6, - 192,6,192,6,192,6,224,14,96,12,96,12,48,24,30,240, - 7,192,15,22,44,17,1,0,7,96,13,192,0,0,0,0, - 0,0,7,192,30,240,48,24,96,12,96,12,192,6,192,6, - 192,6,192,6,192,6,192,6,224,14,96,12,112,28,56,56, - 31,240,7,192,15,22,44,17,1,0,6,96,6,96,0,0, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,13,12,24,23,5,1,192,24,96,48, - 48,96,24,192,13,128,7,0,7,0,13,128,24,192,48,96, - 96,48,192,24,15,21,42,17,1,254,0,4,0,14,7,236, - 30,248,48,60,96,60,96,110,192,230,192,198,193,198,195,134, - 195,6,199,6,238,14,108,12,124,12,120,24,62,240,111,192, - 224,0,64,0,13,24,48,17,2,0,28,0,12,0,6,0, - 2,0,1,0,0,0,0,0,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 224,24,96,56,112,112,63,224,31,192,13,24,48,17,2,0, - 1,192,1,128,3,0,2,0,6,0,0,0,0,0,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,224,24,96,56,112,112,63,224,31,192, - 13,24,48,17,2,0,7,0,7,0,13,128,8,128,24,64, - 0,0,0,0,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,224,24,96,56, - 112,112,63,224,31,192,13,22,44,17,2,0,12,192,12,192, - 0,0,0,0,0,0,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 96,56,96,48,61,224,31,192,14,23,46,15,0,0,0,192, - 1,128,1,128,3,0,0,0,0,0,224,28,112,24,112,56, - 56,48,24,112,28,96,12,192,14,192,7,128,3,128,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,11,17,34,14, - 2,0,192,0,192,0,192,0,192,0,255,128,193,192,192,224, - 192,96,192,96,192,96,193,192,255,128,192,0,192,0,192,0, - 192,0,192,0,12,17,34,13,1,0,31,0,127,128,224,192, - 192,192,193,192,195,128,199,0,198,0,198,0,195,128,193,224, - 192,112,192,48,192,48,204,48,207,96,195,192,10,18,36,13, - 1,0,24,0,12,0,4,0,6,0,0,0,0,0,31,0, - 123,128,96,192,96,192,0,192,63,192,120,192,224,192,192,192, - 193,192,119,192,60,192,10,19,38,13,1,0,3,0,6,0, - 6,0,12,0,8,0,0,0,0,0,31,0,123,128,96,192, - 96,192,0,192,63,192,120,192,224,192,192,192,193,192,119,192, - 60,192,10,19,38,13,1,0,14,0,14,0,27,0,51,0, - 33,128,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,17, - 34,13,1,0,29,128,63,0,0,0,0,0,0,0,31,0, - 123,128,96,192,0,192,7,192,63,192,112,192,192,192,193,192, - 193,192,119,192,60,192,10,17,34,13,1,0,49,128,49,128, - 0,0,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,20, - 40,13,1,0,14,0,27,0,17,0,17,0,27,0,14,0, - 0,0,0,0,31,0,123,128,96,192,96,192,0,192,63,192, - 120,192,224,192,192,192,193,192,119,192,62,192,18,12,36,20, - 1,0,30,31,0,127,191,128,97,225,128,0,224,192,0,192, - 192,63,255,192,120,192,0,224,192,0,192,224,192,193,225,128, - 127,63,128,62,31,0,10,17,34,12,1,251,31,0,127,128, - 97,192,192,192,192,0,192,0,192,0,192,0,192,192,97,192, - 127,128,31,0,8,0,15,0,3,128,1,128,31,0,10,19, - 38,13,1,0,48,0,24,0,8,0,12,0,6,0,0,0, - 0,0,31,0,127,128,96,192,192,192,192,192,255,192,192,0, - 192,0,192,192,96,192,63,128,31,0,10,19,38,13,1,0, - 3,0,7,0,6,0,12,0,8,0,0,0,0,0,31,0, - 127,128,96,192,192,192,192,192,255,192,192,0,192,0,192,192, - 96,192,63,128,31,0,10,19,38,13,1,0,12,0,30,0, - 26,0,51,0,33,0,0,0,0,0,31,0,127,128,96,192, - 192,192,192,192,255,192,192,0,192,0,192,192,96,192,63,128, - 31,0,11,17,34,13,1,0,49,128,49,128,0,0,0,0, - 0,0,31,0,59,192,96,192,224,96,192,96,255,224,192,0, - 192,0,192,96,96,192,59,192,31,0,4,18,18,6,0,0, - 192,96,48,16,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,4,18,18,6,2,0,48,96,192,128,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,6,18,18,6,0,0, - 120,120,204,132,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,6,17,17,5,255,0,204,204,0,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,11,17,34,13,1,0,97, - 128,63,0,30,0,119,0,3,128,31,192,127,192,96,224,224, - 96,192,96,192,96,192,96,192,96,224,96,96,192,63,192,31, - 0,10,17,34,14,2,0,25,0,63,0,0,0,0,0,0, - 0,223,0,255,128,225,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,11,19,38,13,1,0,56, - 0,24,0,12,0,4,0,2,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,19,38,13,1,0,3,128,3,0,6, - 0,4,0,12,0,0,0,0,0,31,0,63,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,63,192,31, - 0,11,19,38,13,1,0,14,0,14,0,27,0,17,0,49, - 128,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,11,17,34, - 13,1,0,29,128,63,0,0,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,17,34,13,1,0,49,128,49,128,0, - 0,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,14,10,20, - 24,5,2,3,0,3,0,3,0,0,0,0,0,255,252,0, - 0,3,0,3,0,3,0,11,15,30,13,1,254,0,32,0, - 96,31,192,63,192,97,192,227,224,194,96,198,96,204,96,216, - 96,248,224,112,192,123,192,95,0,192,0,10,19,38,14,2, - 0,48,0,24,0,24,0,12,0,4,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,119,192,60,192,10,19,38,14,2,0,3,0,6, - 0,6,0,12,0,8,0,0,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,119, - 192,60,192,10,19,38,14,2,0,12,0,30,0,30,0,51, - 0,33,0,0,0,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,225,192,119,192,60,192,10, - 17,34,14,2,0,51,0,51,0,0,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,11,23,46,12,1,251,3,0,3, - 0,6,0,12,0,0,0,0,0,192,96,192,192,224,192,97, - 192,113,128,49,128,51,128,59,0,27,0,30,0,14,0,14, - 0,12,0,12,0,220,0,248,0,112,0,11,22,44,14,2, - 251,192,0,192,0,192,0,192,0,192,0,207,0,251,192,224, - 192,224,224,192,96,192,96,192,96,192,96,224,224,224,192,251, - 192,207,0,192,0,192,0,192,0,192,0,192,0,11,22,44, - 13,1,251,49,128,49,128,0,0,0,0,0,0,192,96,224, - 96,96,224,96,192,113,192,49,128,57,128,27,128,27,0,31, - 0,14,0,14,0,14,0,12,0,12,0,28,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17n[528] U8G_FONT_SECTION("u8g_font_fur17n") = { - 0,31,30,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,34,0,54,0,22,0,28,0,255, - 128,156,128,20,0,54,0,34,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,4,6,6,6,1, - 253,112,112,96,96,192,192,6,1,1,8,1,5,252,2,3, - 3,6,2,0,192,192,192,7,18,18,9,1,255,6,6,4, - 12,12,8,8,24,24,16,48,48,32,32,96,96,64,192,10, - 17,34,13,1,0,30,0,63,128,97,128,96,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,97, - 192,97,128,63,128,30,0,5,17,17,13,3,0,56,120,248, - 216,24,24,24,24,24,24,24,24,24,24,24,24,24,10,17, - 34,13,1,0,30,0,127,128,97,128,224,192,224,192,0,192, - 1,192,3,128,3,128,7,0,14,0,28,0,56,0,112,0, - 96,0,224,0,255,192,10,17,34,13,1,0,31,0,127,128, - 96,192,224,192,0,192,0,192,3,128,14,0,7,128,1,192, - 0,192,0,192,192,192,224,192,97,192,127,128,30,0,11,17, - 34,13,1,0,3,128,3,128,7,128,13,128,13,128,25,128, - 57,128,49,128,97,128,97,128,193,128,255,224,255,224,1,128, - 1,128,1,128,1,128,10,17,34,13,1,0,127,128,96,0, - 96,0,96,0,96,0,111,0,127,128,97,128,64,192,0,192, - 0,192,0,192,0,192,192,192,225,128,127,0,30,0,11,17, - 34,13,1,0,31,0,59,128,96,192,224,192,192,0,192,0, - 207,0,223,192,241,192,224,224,192,96,192,96,192,96,192,96, - 96,192,59,192,31,0,10,17,34,13,1,0,255,192,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,56,0,11,17, - 34,13,1,0,31,0,59,128,96,192,96,192,96,192,96,192, - 49,128,31,0,59,128,96,192,192,96,192,96,192,96,192,96, - 96,224,123,192,31,0,11,17,34,13,1,0,31,0,127,192, - 96,192,192,224,192,96,192,96,192,224,224,224,113,224,63,96, - 0,96,0,96,0,224,96,192,97,192,127,128,31,0,2,12, - 12,6,2,0,192,192,192,0,0,0,0,0,0,192,192,192 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17r[3146] U8G_FONT_SECTION("u8g_font_fur17r") = { - 0,31,30,254,250,17,4,5,8,170,32,127,251,19,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=17 dx=29 dy= 0 ascent=28 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =28 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20[8654] U8G_FONT_SECTION("u8g_font_fur20") = { - 0,38,35,254,249,20,5,12,11,23,32,255,251,28,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,3,19, - 19,10,4,251,224,224,224,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,12,20,40,16,2,253,0,192,0, - 128,0,128,31,128,63,192,113,96,227,96,226,0,226,0,230, - 0,228,0,228,0,236,112,232,96,120,224,63,192,31,128,16, - 0,48,0,48,0,14,20,40,16,1,0,7,224,31,248,60, - 60,56,28,56,0,56,0,56,0,255,128,255,128,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,255, - 248,255,248,16,14,28,18,1,4,192,3,97,134,55,236,28, - 56,24,24,48,12,48,12,48,12,48,12,24,24,28,56,63, - 252,115,198,192,3,15,20,40,17,1,0,224,14,224,28,112, - 28,48,56,56,56,24,112,252,126,252,254,14,224,7,192,255, - 254,255,254,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,1,25,25,9,4,251,128,128,128,128,128,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,128,128,128, - 128,128,10,25,50,12,1,251,31,0,63,128,112,0,224,0, - 224,0,112,0,120,0,62,0,31,0,127,128,113,192,225,192, - 225,192,225,128,247,128,126,0,31,0,7,128,3,192,1,192, - 1,192,1,192,131,128,255,0,60,0,8,3,3,8,0,17, - 231,231,231,21,20,60,25,2,0,1,252,0,7,255,0,28, - 3,128,56,112,192,35,254,96,103,142,48,199,7,16,134,7, - 24,142,0,8,142,0,8,142,0,8,134,0,8,134,7,24, - 199,7,16,67,254,16,32,248,32,48,0,64,28,1,128,7, - 143,0,1,252,0,10,13,26,12,1,7,63,0,127,128,97, - 128,1,128,31,128,127,128,225,128,193,128,227,128,127,128,24, - 0,0,0,255,192,11,11,22,16,2,2,12,96,24,224,56, - 192,113,128,99,128,227,0,99,128,113,128,56,192,24,224,12, - 96,15,6,12,18,2,6,255,254,255,254,0,6,0,6,0, - 6,0,6,255,21,20,60,25,2,0,1,252,0,7,255,0, - 28,3,128,59,252,192,35,254,96,99,3,48,195,3,16,131, - 3,24,131,254,8,131,252,8,131,6,8,131,6,8,131,3, - 24,195,3,16,67,3,48,35,3,96,56,0,192,28,3,128, - 7,255,0,1,252,0,8,2,2,8,0,17,255,255,6,6, - 6,8,1,14,120,204,132,132,204,120,17,17,51,29,6,0, - 1,128,0,1,128,0,1,128,0,1,128,0,1,128,0,255, - 255,128,255,255,128,1,128,0,1,128,0,1,128,0,1,128, - 0,1,128,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,9,11,22,11,1,9,62,0,127,0,227,128,3, - 128,3,0,7,0,28,0,56,0,112,0,255,128,255,128,8, - 11,11,10,1,9,62,127,195,3,30,30,7,3,195,126,60, - 5,5,5,6,2,16,56,48,96,224,192,255,13,24,48,16, - 1,252,15,248,62,32,126,32,126,32,254,32,254,32,254,32, - 126,32,62,32,30,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,3,3,3,7,2,8,224,224,224,7,7,7,7,1, - 249,32,32,60,14,6,254,248,4,10,10,8,2,10,112,240, - 176,48,48,48,48,48,48,48,10,12,24,12,1,8,30,0, - 99,128,193,128,192,192,192,192,192,192,192,192,193,128,99,128, - 30,0,0,0,255,192,12,11,22,16,2,2,227,0,99,128, - 49,128,56,192,24,224,28,112,24,224,56,192,49,128,99,128, - 227,0,18,20,60,22,2,0,112,12,0,240,12,0,176,24, - 0,48,24,0,48,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,131,0,49,7,0,3,15,0,6,31,0,6, - 27,0,12,51,0,12,99,0,24,127,192,16,3,0,48,3, - 0,96,3,0,18,20,60,22,2,0,112,12,0,240,24,0, - 176,24,0,48,48,0,48,48,0,48,96,0,48,64,0,48, - 192,0,48,128,0,49,143,0,51,31,128,3,49,192,6,1, - 192,6,1,192,12,3,128,8,7,0,24,14,0,16,24,0, - 48,63,192,96,63,192,20,20,60,22,1,0,62,1,128,127, - 3,0,195,3,0,3,6,0,28,6,0,30,12,0,3,24, - 0,195,24,0,199,48,0,126,48,192,56,97,192,0,99,192, - 0,198,192,1,134,192,1,140,192,3,24,192,3,31,240,6, - 0,192,12,0,192,12,0,192,12,19,38,15,2,251,7,0, - 7,0,7,0,0,0,0,0,7,0,7,0,7,0,15,0, - 30,0,56,0,112,0,224,0,224,0,224,0,224,112,127,224, - 63,224,31,128,19,27,81,21,1,0,7,0,0,3,128,0, - 1,128,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 224,0,1,240,0,1,240,0,3,176,0,3,184,0,3,56, - 0,7,28,0,7,28,0,14,14,0,14,14,0,30,15,0, - 28,7,0,28,7,0,63,255,128,63,255,128,112,1,192,112, - 1,192,224,0,224,224,0,224,224,0,224,19,27,81,21,1, - 0,0,28,0,0,56,0,0,48,0,0,96,0,0,192,0, - 0,0,0,0,0,0,0,224,0,1,240,0,1,240,0,3, - 176,0,3,184,0,3,56,0,7,28,0,7,28,0,14,14, - 0,14,14,0,30,15,0,28,7,0,28,7,0,63,255,128, - 63,255,128,112,1,192,112,1,192,224,0,224,224,0,224,224, - 0,224,19,27,81,21,1,0,0,224,0,1,240,0,1,176, - 0,3,24,0,6,12,0,0,0,0,0,0,0,0,224,0, - 1,240,0,1,240,0,3,176,0,3,184,0,3,56,0,7, - 28,0,7,28,0,14,14,0,14,14,0,30,15,0,28,7, - 0,28,7,0,63,255,128,63,255,128,112,1,192,112,1,192, - 224,0,224,224,0,224,224,0,224,19,26,78,21,1,0,1, - 140,0,3,248,0,6,112,0,0,0,0,0,0,0,0,0, - 0,0,224,0,1,240,0,1,240,0,3,176,0,3,184,0, - 3,56,0,7,28,0,7,28,0,14,14,0,14,14,0,30, - 15,0,28,7,0,28,7,0,63,255,128,63,255,128,112,1, - 192,112,1,192,224,0,224,224,0,224,224,0,224,19,26,78, - 21,1,0,3,156,0,3,156,0,3,156,0,0,0,0,0, - 0,0,0,0,0,0,224,0,0,240,0,1,240,0,1,184, - 0,3,184,0,3,152,0,7,28,0,7,28,0,7,14,0, - 14,14,0,14,15,0,28,7,0,28,7,0,63,255,128,63, - 255,128,56,1,192,112,1,192,112,0,224,224,0,224,224,0, - 224,20,28,84,21,0,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,0,0,0, - 240,0,0,240,0,0,248,0,1,248,0,1,220,0,3,156, - 0,3,158,0,7,14,0,7,14,0,7,7,0,14,7,0, - 14,7,128,30,3,128,31,255,192,31,255,192,56,1,192,56, - 0,224,112,0,224,112,0,112,224,0,112,25,20,80,28,1, - 0,0,63,255,128,0,127,255,128,0,126,0,0,0,238,0, - 0,0,238,0,0,1,206,0,0,1,206,0,0,3,206,0, - 0,3,142,0,0,7,143,255,128,7,15,255,128,15,14,0, - 0,14,14,0,0,31,254,0,0,63,254,0,0,56,14,0, - 0,120,14,0,0,112,14,0,0,224,15,255,128,224,15,255, - 128,16,27,54,19,2,249,7,240,31,252,60,14,48,6,112, - 7,96,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,96,0,96,7,48,6,56,14,31,252,7,240,0, - 128,0,224,0,248,0,24,0,24,3,248,1,224,13,27,54, - 17,2,0,24,0,28,0,14,0,6,0,3,0,0,0,0, - 0,255,248,255,248,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,255,240,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,248,255,248,13,27,54,17,2,0,1, - 192,1,128,3,0,6,0,4,0,0,0,0,0,255,248,255, - 248,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,248,255,248,13,27,54,17,2,0,15,0,15,0,25, - 128,16,192,48,192,0,0,0,0,255,248,255,248,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,240,255,240,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,248,255, - 248,13,26,52,17,2,0,56,224,56,224,56,224,0,0,0, - 0,0,0,255,248,255,248,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,248,255,248,5,27,27,7,0, - 0,224,96,48,48,24,0,0,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,27,27,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,8,27,27, - 7,255,0,28,62,118,99,193,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,8,26, - 26,8,0,0,227,227,227,0,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,19,20, - 60,20,0,0,63,240,0,63,254,0,56,31,0,56,7,128, - 56,3,128,56,1,192,56,1,192,56,0,192,56,0,224,255, - 192,224,255,192,224,56,0,224,56,0,192,56,1,192,56,1, - 192,56,3,128,56,7,128,56,31,0,63,254,0,63,240,0, - 16,26,52,20,2,0,6,48,15,224,9,224,0,0,0,0, - 0,0,240,7,248,7,248,7,252,7,252,7,238,7,238,7, - 231,7,231,135,227,135,227,199,225,199,224,231,224,231,224,119, - 224,119,224,63,224,63,224,31,224,31,18,28,84,22,2,0, - 7,0,0,3,128,0,1,128,0,0,192,0,0,64,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,62,31, - 0,56,7,0,112,3,128,96,1,128,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,96, - 1,192,112,3,128,112,3,128,56,7,0,30,30,0,15,252, - 0,3,240,0,18,28,84,22,2,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,62,31,0,56,7,0,112,3, - 128,96,1,128,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,96,1,192,112,3,128,112, - 3,128,56,7,0,30,30,0,15,252,0,3,240,0,18,28, - 84,22,2,0,1,224,0,1,224,0,3,240,0,3,48,0, - 6,24,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,62,31,0,56,7,0,112,3,128,96,1,128,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,96,1,192,112,3,128,112,3,128,56,7,0,30, - 30,0,15,252,0,3,240,0,18,26,78,22,2,0,3,152, - 0,7,248,0,6,112,0,0,0,0,0,0,0,0,0,0, - 3,240,0,15,252,0,62,31,0,56,7,0,112,3,128,96, - 1,128,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,96,1,192,112,3,128,112,3,128, - 56,7,0,31,62,0,15,252,0,3,240,0,18,26,78,22, - 2,0,7,28,0,7,28,0,7,28,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,62,31,0,56,7,0, - 112,3,128,96,1,128,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,96,1,192,112,3, - 128,112,3,128,56,7,0,30,30,0,15,252,0,3,240,0, - 16,15,30,28,6,1,64,2,224,7,112,14,56,28,12,56, - 6,96,3,192,1,128,3,192,6,96,12,48,24,24,48,12, - 96,6,64,2,18,24,72,22,2,254,0,0,128,0,1,192, - 3,251,128,15,255,0,62,31,0,56,15,128,112,31,128,96, - 29,128,224,57,192,224,113,192,224,113,192,224,225,192,225,193, - 192,227,193,192,227,129,192,231,1,128,111,3,128,126,3,128, - 60,7,0,62,30,0,63,252,0,115,240,0,224,0,0,96, - 0,0,16,28,56,20,2,0,14,0,7,0,3,0,1,128, - 0,128,0,0,0,0,0,0,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,96,14,112,14,62,124,31,248,15,224, - 16,28,56,20,2,0,0,112,0,224,0,192,1,128,1,0, - 0,0,0,0,0,0,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,96,14,112,14,62,124,31,248,15,224,16,28, - 56,20,2,0,3,192,3,192,7,224,6,96,12,48,0,0, - 0,0,0,0,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,96,14,112,14,62,124,31,248,15,224,16,26,52,20, - 2,0,14,56,14,56,14,56,0,0,0,0,0,0,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,96,6,112,14, - 60,60,31,248,15,224,17,27,81,19,1,0,0,112,0,0, - 96,0,0,192,0,0,128,0,1,128,0,0,0,0,0,0, - 0,224,3,128,240,7,0,112,7,0,56,14,0,60,28,0, - 28,28,0,14,56,0,14,48,0,7,112,0,7,96,0,3, - 224,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,14,20,40, - 17,2,0,224,0,224,0,224,0,224,0,255,192,255,240,224, - 120,224,56,224,28,224,28,224,28,224,56,224,120,255,240,255, - 192,224,0,224,0,224,0,224,0,224,0,14,20,40,15,1, - 0,15,128,63,224,112,112,224,112,224,112,224,112,225,224,227, - 128,231,0,231,0,227,128,227,224,224,248,224,56,224,28,224, - 28,238,28,230,28,231,248,225,240,12,21,42,15,1,0,12, - 0,14,0,6,0,3,0,1,128,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,22,44,15,1,0,1, - 192,1,128,3,0,3,0,6,0,12,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,22,44,15,1, - 0,7,0,15,0,13,128,29,128,24,192,48,64,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,12,20,40, - 15,1,0,30,64,31,192,49,128,0,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,20,40,15,1, - 0,56,224,56,224,56,224,0,0,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,23,46,15,1,0,15, - 0,25,128,16,128,16,128,25,128,15,0,0,0,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,23,14,42, - 25,1,0,31,131,240,63,207,248,112,108,28,112,56,12,0, - 56,14,15,255,254,63,255,254,120,56,0,224,56,0,224,56, - 14,224,120,12,240,236,28,127,199,248,31,3,240,12,21,42, - 14,1,249,31,128,63,224,112,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,112,224,112,112,224,63,224,31,128,4, - 0,7,128,7,192,0,96,0,96,31,192,15,0,13,22,44, - 15,1,0,56,0,28,0,12,0,6,0,6,0,3,0,0, - 0,0,0,15,128,63,224,112,112,96,48,224,56,255,248,255, - 248,224,0,224,0,224,56,96,112,112,112,63,224,15,128,13, - 22,44,15,1,0,1,192,1,128,3,128,3,0,6,0,4, - 0,0,0,0,0,15,128,63,224,112,112,96,48,224,56,255, - 248,255,248,224,0,224,0,224,56,96,112,112,112,63,224,15, - 128,13,22,44,15,1,0,7,0,15,0,15,128,25,128,24, - 192,48,64,0,0,0,0,15,128,63,224,112,112,96,48,224, - 56,255,248,255,248,224,0,224,0,224,56,96,112,112,112,63, - 224,15,128,13,20,40,15,1,0,56,224,56,224,56,224,0, - 0,0,0,0,0,15,192,63,224,112,112,96,56,224,56,255, - 248,255,248,224,0,224,0,224,56,96,56,112,112,63,224,15, - 128,5,21,21,7,0,0,224,96,48,48,24,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,21,21,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,8,21,21,7,255,0,60,62,118, - 99,193,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,8,20,20,7,255,0,227,227,227,0,0,0,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,14,20,40,16, - 1,0,48,32,57,224,15,0,31,128,113,192,0,224,15,240, - 63,240,120,120,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,96,56,112,112,63,224,15,192,12,20,40,16,2,0, - 28,192,63,192,51,128,0,0,0,0,0,0,239,128,255,224, - 240,240,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,14,22,44,16,1,0,28,0, - 12,0,14,0,6,0,3,0,1,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,14,22,44,16,1,0, - 0,224,1,192,1,128,3,0,3,0,6,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,22,44,16, - 1,0,7,0,7,128,15,128,12,192,24,192,24,96,0,0, - 0,0,15,192,63,224,112,112,112,56,224,24,224,28,224,28, - 224,28,224,28,224,24,112,56,112,112,63,224,15,192,14,20, - 40,16,1,0,14,96,31,192,17,128,0,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,20,40,16, - 1,0,28,224,28,224,28,224,0,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,17,12,36,29,6,2, - 1,192,0,1,192,0,1,192,0,0,0,0,0,0,0,255, - 255,128,255,255,128,0,0,0,0,0,0,1,192,0,1,192, - 0,1,192,0,14,18,36,16,1,254,0,8,0,24,15,248, - 63,240,112,112,112,248,225,216,225,152,227,28,230,28,238,28, - 236,24,120,56,112,112,127,224,111,192,192,0,128,0,12,22, - 44,16,2,0,56,0,24,0,12,0,12,0,6,0,3,0, - 0,0,0,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,240,240,127,240,63,112, - 12,22,44,16,2,0,1,192,1,128,3,0,7,0,6,0, - 12,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,12,22,44,16,2,0,6,0,15,0,15,0,25,128, - 16,128,48,192,0,0,0,0,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,240,240, - 127,240,63,112,12,20,40,16,2,0,57,192,57,192,57,192, - 0,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,13,27,54,15,1,251,0,224,1,192,1,128,3,0, - 2,0,0,0,0,0,0,0,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,7,128, - 7,128,7,0,7,0,6,0,238,0,252,0,120,0,14,25, - 50,17,2,251,224,0,224,0,224,0,224,0,224,0,224,0, - 231,192,255,240,240,112,240,56,224,24,224,28,224,28,224,28, - 224,28,224,24,224,56,240,112,255,240,231,192,224,0,224,0, - 224,0,224,0,224,0,14,25,50,14,0,251,28,224,28,224, - 28,224,0,0,0,0,0,0,224,28,112,24,112,56,48,56, - 56,112,56,112,28,96,28,224,14,224,14,192,7,192,7,128, - 3,128,3,128,3,0,7,0,6,0,6,0,14,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=17 h=21 x= 6 y= 9 dx=29 dy= 0 ascent=20 len=48 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20n[616] U8G_FONT_SECTION("u8g_font_fur20n") = { - 0,38,35,254,249,20,0,0,0,0,42,58,0,20,253,20, - 0,11,11,22,19,4,9,17,0,49,128,27,0,27,0,14, - 0,255,224,142,32,27,0,27,0,49,128,17,0,17,16,48, - 29,6,0,1,128,0,1,128,0,1,128,0,1,128,0,1, - 128,0,1,128,0,1,128,0,255,255,128,255,255,128,1,128, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,5,7,7,8,1,253,56,56,112,112,96,96,224, - 7,2,2,9,1,6,254,254,3,3,3,8,3,0,224,224, - 224,8,21,21,11,2,255,3,6,6,6,4,12,12,12,24, - 24,24,48,48,48,96,96,96,64,192,192,192,13,20,40,16, - 1,0,15,128,63,192,112,224,96,112,96,112,224,48,224,48, - 224,56,224,56,224,56,224,56,224,56,224,56,224,48,224,48, - 96,112,112,112,48,224,63,192,15,128,7,20,20,16,4,0, - 30,62,126,254,206,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,12,20,40,16,2,0,31,128,63,192,112,96, - 112,112,224,112,0,112,0,112,0,112,0,224,1,224,3,192, - 3,128,7,0,14,0,28,0,60,0,120,0,240,0,255,240, - 255,240,13,20,40,16,1,0,15,128,63,224,112,112,112,48, - 224,56,0,56,0,48,0,224,7,192,7,192,0,224,0,112, - 0,56,0,56,224,56,224,56,224,56,112,112,63,224,31,128, - 14,20,40,16,1,0,0,240,1,240,1,240,3,240,7,112, - 6,112,14,112,28,112,24,112,56,112,112,112,96,112,224,112, - 255,252,255,252,0,112,0,112,0,112,0,112,0,112,13,20, - 40,16,1,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,239,128,255,224,240,112,224,112,224,48,0,56,0,56, - 0,56,224,48,224,112,112,224,127,192,31,128,13,20,40,16, - 1,0,15,192,63,224,120,112,112,48,224,56,224,0,224,0, - 231,192,255,224,248,240,224,56,224,56,224,56,224,56,224,56, - 224,56,96,48,48,112,63,224,15,128,12,20,40,16,2,0, - 255,240,255,240,0,112,0,112,0,96,0,224,0,224,1,192, - 1,192,1,128,3,128,3,128,3,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,13,20,40,16,1,0,15,128, - 63,224,112,112,224,48,224,56,224,56,96,48,112,112,31,192, - 31,192,56,96,96,48,224,56,224,56,224,56,224,56,224,56, - 112,112,63,224,15,128,13,20,40,16,1,0,31,192,63,224, - 112,112,224,56,224,56,224,56,224,56,224,56,224,56,112,120, - 63,248,31,56,0,56,0,56,0,56,96,48,96,112,112,224, - 63,192,31,128,3,14,14,8,3,0,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=16 dx=29 dy= 0 ascent=22 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20r[3976] U8G_FONT_SECTION("u8g_font_fur20r") = { - 0,38,35,254,249,20,5,12,11,23,32,127,251,22,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=22 dx=34 dy= 0 ascent=36 len=132 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =36 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25[11949] U8G_FONT_SECTION("u8g_font_fur25") = { - 0,46,45,254,247,25,6,119,15,27,32,255,249,36,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 10,0,0,3,25,25,13,5,249,224,224,224,0,0,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,14,26,52,19,2,252,0,48,0,48,0,32,0,96, - 15,224,63,240,124,248,112,220,112,156,241,156,225,128,225,128, - 227,0,227,0,227,0,226,0,246,28,118,28,124,60,60,120, - 63,240,15,192,24,0,24,0,16,0,48,0,17,26,78,19, - 1,0,0,64,0,7,252,0,15,254,0,30,15,0,60,7, - 128,56,3,128,56,0,0,56,0,0,56,0,0,56,0,0, - 255,224,0,255,224,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,255,255,0,255,255,0, - 18,19,57,20,1,6,64,0,128,224,1,192,113,227,128,63, - 255,0,31,62,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 31,62,0,55,251,0,113,225,128,224,1,192,64,0,128,18, - 25,75,20,1,0,240,1,192,112,3,192,120,3,128,56,7, - 128,60,7,0,28,15,0,30,14,0,254,15,192,255,31,192, - 7,28,0,7,184,0,3,184,0,3,240,0,255,255,192,255, - 255,192,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,12,31,62,16,2,251,31,224,63, - 224,56,32,112,0,112,0,112,0,120,0,124,0,62,0,31, - 128,15,192,63,224,120,240,240,112,224,112,224,112,224,240,241, - 224,127,192,63,128,31,128,7,224,1,224,0,240,0,112,0, - 112,0,112,0,240,65,224,127,192,63,128,10,3,6,10,0, - 22,225,192,225,192,225,192,26,25,100,30,2,1,0,255,192, - 0,3,255,240,0,7,128,120,0,14,0,28,0,28,127,14, - 0,57,255,135,0,115,227,195,0,99,129,225,128,103,128,225, - 128,199,0,0,192,199,0,0,192,199,0,0,192,199,0,0, - 192,199,0,0,192,199,0,0,192,199,0,224,128,99,129,225, - 128,99,195,193,128,49,255,131,0,48,127,7,0,24,0,14, - 0,14,0,28,0,7,128,120,0,1,255,224,0,0,127,128, - 0,12,17,34,14,1,8,31,128,63,192,120,224,96,96,0, - 96,7,224,63,224,56,96,96,96,96,96,96,224,113,224,63, - 96,30,96,0,0,0,0,255,240,13,14,28,19,3,2,14, - 56,28,56,56,112,56,224,112,224,113,192,227,192,227,192,113, - 192,112,224,56,224,24,112,28,56,14,56,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,26,25,100,30,2,1, - 0,255,192,0,3,255,240,0,7,128,120,0,14,255,156,0, - 24,255,206,0,48,193,231,0,112,192,99,0,96,192,97,128, - 96,192,97,128,192,192,192,192,192,255,128,192,192,255,128,192, - 192,193,192,192,192,192,192,192,192,192,192,192,192,192,225,128, - 96,192,97,128,96,192,97,128,48,192,99,0,56,0,7,0, - 28,0,14,0,15,0,60,0,7,193,248,0,1,255,224,0, - 0,127,128,0,10,2,4,10,0,22,255,192,255,192,7,7, - 7,11,2,18,56,196,130,130,130,196,120,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,240,255,255,240, - 10,13,26,12,1,13,63,128,127,128,97,192,225,192,1,192, - 3,128,7,128,14,0,28,0,56,0,240,0,255,192,255,192, - 10,14,28,13,2,12,127,128,255,192,193,192,1,192,7,128, - 14,0,15,128,3,192,0,192,192,192,192,192,227,128,127,128, - 62,0,6,6,6,8,2,21,28,60,56,112,96,192,255,16, - 31,62,20,2,250,7,255,31,140,63,140,127,140,255,140,255, - 140,255,140,255,140,255,140,127,140,127,140,31,140,7,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,3,4,4,9,3,10,224,224,224,224,8,9,9, - 9,2,247,32,32,60,62,7,3,135,255,252,5,13,13,10, - 2,12,56,120,248,152,24,24,24,24,24,24,24,24,24,12, - 16,32,14,1,9,31,128,63,192,112,224,224,96,192,112,192, - 48,192,48,192,48,192,112,224,112,112,224,63,192,31,128,0, - 0,0,0,255,240,13,14,28,19,3,2,227,128,225,192,112, - 192,56,224,56,112,28,112,28,56,30,56,28,112,56,112,56, - 224,112,192,225,192,227,128,23,27,81,27,2,0,56,0,192, - 120,1,192,248,1,128,216,3,128,24,3,0,24,7,0,24, - 6,0,24,14,0,24,12,0,24,24,0,24,24,0,24,48, - 0,24,112,0,24,96,112,0,224,112,0,192,240,1,193,176, - 1,129,48,3,131,48,3,6,48,7,12,48,6,15,254,14, - 15,254,12,0,48,24,0,48,24,0,48,48,0,48,23,27, - 81,27,2,0,56,0,224,120,1,192,248,1,128,216,3,128, - 24,3,0,24,7,0,24,6,0,24,14,0,24,12,0,24, - 28,0,24,24,0,24,56,0,24,48,0,24,112,248,0,227, - 252,0,195,142,1,199,6,1,128,6,3,128,14,3,0,12, - 7,0,56,6,0,112,14,0,224,12,3,192,28,7,128,24, - 7,254,48,7,254,24,26,78,27,2,0,0,0,24,127,128, - 56,255,192,112,193,192,96,3,128,224,14,0,192,15,129,192, - 3,193,128,0,195,128,192,199,0,192,198,0,227,142,0,127, - 140,28,62,28,60,0,24,60,0,48,108,0,112,204,0,97, - 204,0,227,140,0,195,12,1,199,255,1,135,255,3,0,12, - 7,0,12,6,0,12,14,0,12,15,25,50,18,2,249,1, - 192,1,192,1,192,0,0,0,0,0,0,1,192,1,192,1, - 192,1,192,3,192,7,128,15,0,62,0,124,0,120,0,240, - 0,224,0,224,0,224,8,240,14,120,60,63,252,31,248,7, - 224,24,35,105,26,1,0,1,192,0,1,224,0,0,224,0, - 0,112,0,0,48,0,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,124,0,0,126,0,0,254, - 0,0,238,0,0,239,0,1,231,0,1,199,128,3,195,128, - 3,131,192,7,131,192,7,1,192,7,1,224,15,0,224,14, - 0,240,31,255,240,31,255,240,31,255,248,60,0,56,56,0, - 60,120,0,28,112,0,30,112,0,30,240,0,14,224,0,15, - 24,35,105,26,1,0,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,60,0,0,124,0,0,126,0,0,254,0, - 0,238,0,0,239,0,1,231,0,1,199,128,3,195,128,3, - 131,192,7,131,192,7,1,192,7,1,224,15,0,224,14,0, - 240,31,255,240,31,255,240,31,255,248,60,0,56,56,0,60, - 120,0,28,112,0,30,112,0,30,240,0,14,224,0,15,24, - 35,105,26,1,0,0,60,0,0,124,0,0,110,0,0,230, - 0,0,195,0,1,131,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,60,0,0,124,0,0,126,0,0,254,0,0, - 238,0,0,239,0,1,231,0,1,199,128,3,195,128,3,131, - 192,7,131,192,7,1,192,7,1,224,15,0,224,14,0,240, - 31,255,240,31,255,240,31,255,248,60,0,56,56,0,60,120, - 0,28,112,0,30,112,0,30,240,0,14,224,0,15,24,33, - 99,26,1,0,0,241,128,1,255,0,1,159,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, - 124,0,0,126,0,0,254,0,0,238,0,0,239,0,1,231, - 0,1,199,128,3,195,128,3,131,192,7,131,192,7,1,192, - 7,1,224,15,0,224,14,0,240,31,255,240,31,255,240,31, - 255,248,60,0,56,56,0,60,120,0,28,112,0,30,112,0, - 30,240,0,14,224,0,15,25,33,132,25,0,0,0,225,192, - 0,0,225,192,0,0,225,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0, - 0,0,62,0,0,0,62,0,0,0,127,0,0,0,119,0, - 0,0,247,128,0,0,227,128,0,0,227,192,0,1,227,192, - 0,1,193,192,0,3,193,224,0,3,128,224,0,7,128,240, - 0,7,0,112,0,7,0,112,0,15,255,248,0,15,255,248, - 0,31,255,252,0,28,0,28,0,28,0,30,0,60,0,14, - 0,56,0,14,0,120,0,15,0,112,0,7,0,240,0,7, - 128,24,36,108,25,1,0,0,56,0,0,196,0,0,130,0, - 0,130,0,0,130,0,0,196,0,0,124,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,60,0,0,124,0,0,126, - 0,0,254,0,0,238,0,0,239,0,1,231,0,1,199,128, - 3,195,128,3,131,128,7,131,192,7,129,192,7,1,224,15, - 0,224,14,0,240,31,255,240,31,255,240,31,255,248,60,0, - 56,56,0,60,120,0,60,120,0,28,112,0,30,240,0,14, - 224,0,15,31,25,100,34,1,0,0,7,255,252,0,15,255, - 252,0,15,255,252,0,31,192,0,0,29,192,0,0,61,192, - 0,0,57,192,0,0,121,192,0,0,241,192,0,0,241,192, - 0,1,225,192,0,1,225,255,252,3,193,255,252,3,193,255, - 252,7,129,192,0,7,255,192,0,15,255,192,0,15,255,192, - 0,30,1,192,0,28,1,192,0,60,1,192,0,56,1,192, - 0,120,1,255,254,112,1,255,254,240,1,255,254,19,33,99, - 23,2,249,3,254,0,15,255,128,30,3,192,60,1,192,56, - 0,224,112,0,224,112,0,0,112,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,112,0,0,112,0,224,112,0,224,56, - 1,224,60,1,192,31,7,128,15,255,0,3,252,0,0,64, - 0,0,120,0,0,124,0,0,30,0,0,6,0,0,6,0, - 1,254,0,1,252,0,16,35,70,21,3,0,28,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,16,35,70,21,3,0,0,112,0,240,0,224,1,192, - 1,128,3,0,0,0,0,0,0,0,0,0,255,254,255,254, - 255,254,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,254,255,254,255,254,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,255,255,255,255,255,16,35, - 70,21,3,0,7,192,7,192,14,224,12,96,28,112,24,48, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,254, - 255,254,255,254,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,255,255,255,255,255,16,33,66,21,3,0, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,6,35,35,9,0,0,240,112,56,24,28,12,0,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,6,35,35,9,3, - 0,28,56,48,112,224,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,9,35,70,9,0,0,30,0,62,0,55,0, - 115,0,99,128,193,128,0,0,0,0,0,0,0,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 10,33,66,10,0,0,225,192,225,192,225,192,0,0,0,0, - 0,0,0,0,0,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,22,25,75,24,0,0,31,252, - 0,31,255,128,31,255,192,28,7,224,28,0,240,28,0,120, - 28,0,120,28,0,60,28,0,60,28,0,28,28,0,28,255, - 240,28,255,240,28,255,240,28,28,0,28,28,0,28,28,0, - 60,28,0,56,28,0,120,28,0,120,28,0,240,28,7,224, - 31,255,192,31,255,128,31,252,0,19,33,99,25,3,0,3, - 204,0,7,252,0,14,248,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,248,0,224,248,0,224,252,0,224, - 254,0,224,254,0,224,239,0,224,239,0,224,231,128,224,231, - 128,224,227,192,224,227,192,224,225,224,224,224,224,224,224,240, - 224,224,120,224,224,120,224,224,60,224,224,60,224,224,30,224, - 224,30,224,224,15,224,224,15,224,224,7,224,224,3,224,224, - 3,224,22,36,108,26,2,0,3,192,0,1,192,0,0,224, - 0,0,96,0,0,112,0,0,56,0,0,24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,0,15,255,192,31, - 255,224,62,1,240,56,0,112,120,0,120,112,0,56,240,0, - 56,240,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,240,0,60,112,0,56,112,0,56,120, - 0,120,56,0,112,60,0,240,31,3,224,15,255,192,7,255, - 128,0,252,0,22,36,108,26,2,0,0,15,0,0,14,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,96,0,0, - 0,0,0,0,0,0,0,0,0,0,0,3,255,0,15,255, - 192,31,255,224,62,1,240,56,0,112,120,0,120,112,0,56, - 240,0,56,240,0,28,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,240,0,60,112,0,56,112,0, - 56,120,0,120,56,0,112,60,0,240,31,3,224,15,255,192, - 7,255,128,0,252,0,22,36,108,26,2,0,0,120,0,0, - 120,0,0,252,0,0,206,0,1,206,0,3,135,0,3,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,255,0, - 15,255,192,31,255,224,62,1,240,56,0,112,120,0,120,112, - 0,56,240,0,56,240,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,240,0,60,112,0,56, - 112,0,56,120,0,120,56,0,112,60,0,240,31,3,224,15, - 255,192,7,255,128,0,252,0,22,33,99,26,2,0,1,243, - 0,3,255,0,3,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,255,0,15,255,192,31,255,224,62, - 1,240,56,0,112,120,0,120,112,0,56,240,0,56,240,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,240,0,60,112,0,56,112,0,56,120,0,120,56, - 0,112,60,0,240,31,3,224,15,255,192,7,255,128,0,252, - 0,22,33,99,26,2,0,1,195,128,1,195,128,1,195,128, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 255,0,15,255,192,31,255,224,62,1,240,56,0,112,120,0, - 120,112,0,56,240,0,56,240,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,224,0,28,224,0,28,240,0,60,112, - 0,56,112,0,56,120,0,120,56,0,112,60,0,240,31,3, - 224,15,255,192,7,255,128,0,252,0,18,19,57,34,8,1, - 64,0,128,224,1,192,112,3,128,56,7,0,24,6,0,12, - 12,0,6,24,0,3,48,0,1,224,0,0,192,0,1,224, - 0,3,48,0,6,24,0,12,12,0,24,6,0,48,3,0, - 96,1,128,224,1,192,64,0,128,22,31,93,26,2,253,0, - 0,24,0,0,60,0,0,56,3,255,120,15,255,240,31,255, - 240,62,1,240,56,1,240,120,3,248,112,7,184,240,15,60, - 240,15,60,224,30,28,224,60,28,224,60,28,224,120,28,224, - 240,28,224,224,28,241,224,60,115,192,56,115,128,56,127,128, - 120,63,0,112,62,0,240,31,3,224,63,255,192,63,255,128, - 121,252,0,240,0,0,224,0,0,32,0,0,19,36,108,25, - 3,0,7,0,0,3,128,0,3,128,0,1,192,0,0,224, - 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, - 0,0,0,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,240,0,224,240,1,224,112,1,192,120, - 3,192,62,7,192,63,255,128,31,255,0,3,248,0,19,36, - 108,25,3,0,0,28,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,1,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,240,0,224,240,1,224,112,1, - 192,120,3,192,62,7,192,63,255,128,31,255,0,3,248,0, - 19,36,108,25,3,0,0,224,0,1,240,0,1,240,0,3, - 184,0,3,28,0,6,12,0,6,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,240,0,224,240,1,224, - 112,1,192,120,3,192,62,7,192,63,255,128,31,255,0,3, - 248,0,19,33,99,25,3,0,7,14,0,7,14,0,7,14, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,240,0,224,240,1,224,112,1,192,120,3,192,62, - 7,192,63,255,128,31,255,0,3,248,0,21,35,105,23,1, - 0,0,14,0,0,30,0,0,28,0,0,56,0,0,48,0, - 0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 0,120,120,0,112,120,0,240,60,1,224,30,1,224,30,3, - 192,15,3,128,15,7,128,7,135,0,3,143,0,3,206,0, - 1,252,0,1,252,0,0,248,0,0,120,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,16,25,50,21,3,0, - 224,0,224,0,224,0,224,0,255,224,255,252,255,254,224,62, - 224,15,224,7,224,7,224,7,224,7,224,7,224,15,224,62, - 255,254,255,252,255,224,224,0,224,0,224,0,224,0,224,0, - 224,0,17,25,75,19,2,0,7,224,0,31,248,0,126,124, - 0,112,60,0,240,28,0,224,28,0,224,28,0,224,56,0, - 224,248,0,225,224,0,225,192,0,225,192,0,225,224,0,225, - 240,0,224,252,0,224,63,0,224,15,0,224,7,128,224,3, - 128,224,3,128,231,3,128,227,131,128,227,231,128,225,255,0, - 224,124,0,15,27,54,19,2,0,14,0,7,0,3,128,3, - 128,1,192,0,192,0,0,0,0,0,0,15,240,63,252,60, - 60,120,30,112,14,0,14,0,14,15,254,63,254,124,14,112, - 14,224,14,224,30,224,30,240,62,120,238,63,238,15,142,15, - 28,56,19,2,0,0,112,0,224,0,224,1,192,3,128,3, - 0,6,0,0,0,0,0,0,0,15,240,63,252,60,60,120, - 30,112,14,0,14,0,14,15,254,63,254,124,14,112,14,224, - 14,224,30,224,30,240,62,120,238,63,238,15,142,15,28,56, - 19,2,0,3,192,7,192,7,224,14,224,12,112,28,48,24, - 24,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,25,50,19,2, - 0,15,152,31,240,25,224,0,0,0,0,0,0,0,0,15, - 240,63,252,60,60,120,30,112,14,0,14,0,14,15,254,63, - 254,124,14,112,14,224,14,224,30,224,30,240,62,120,238,63, - 238,15,142,15,25,50,19,2,0,28,56,28,56,28,56,0, - 0,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,29,58,19,2, - 0,3,128,12,64,8,32,8,32,8,32,12,64,7,192,0, - 0,0,0,0,0,0,0,15,240,63,252,60,124,120,30,112, - 30,0,30,0,30,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,27,18,72,31,2, - 0,15,224,126,0,63,241,255,0,124,121,199,128,112,31,129, - 192,112,15,1,192,0,15,0,224,0,14,0,224,15,255,255, - 224,63,255,255,224,124,14,0,0,240,14,0,0,224,14,0, - 0,224,31,0,224,224,27,1,192,240,59,131,192,124,241,239, - 128,63,225,255,128,31,192,126,0,14,26,52,18,2,248,15, - 224,63,248,60,120,112,60,112,28,240,28,224,0,224,0,224, - 0,224,0,224,0,224,0,240,28,112,28,112,60,60,120,31, - 240,7,224,1,0,1,224,1,240,0,120,0,24,0,24,7, - 240,7,224,16,28,56,19,2,0,28,0,14,0,14,0,7, - 0,3,128,1,128,0,192,0,0,0,0,0,0,7,224,31, - 248,60,124,120,30,112,14,240,14,224,14,255,254,255,255,224, - 0,224,0,224,0,112,14,112,14,120,30,62,124,31,248,7, - 224,16,28,56,19,2,0,0,120,0,240,0,224,1,192,1, - 128,3,128,3,0,0,0,0,0,0,0,7,224,31,248,60, - 124,120,30,112,14,240,14,224,14,255,254,255,255,224,0,224, - 0,224,0,112,14,112,14,120,30,62,124,31,248,7,224,16, - 28,56,19,2,0,3,192,7,192,7,224,14,224,12,112,24, - 48,24,24,0,0,0,0,0,0,7,224,31,248,60,124,120, - 30,112,14,240,14,224,14,255,254,255,255,224,0,224,0,224, - 0,112,14,112,14,120,30,62,124,31,248,7,224,16,25,50, - 19,2,0,28,56,28,56,28,56,0,0,0,0,0,0,0, - 0,7,224,31,248,60,60,120,14,112,14,240,14,224,6,255, - 254,255,255,224,0,224,0,224,0,112,14,112,14,120,30,62, - 60,31,248,7,224,6,27,27,8,255,0,240,112,56,24,28, - 12,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,6,27,27,8,2,0,28,56,112,112, - 224,192,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,9,27,54,8,255,0,62,0,62, - 0,119,0,115,0,227,128,193,128,0,0,0,0,0,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,10,25,50,8,255,0,227,192,227,192,227,192,0, - 0,0,0,0,0,0,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,17,26,78,21,2, - 0,16,4,0,56,28,0,30,248,0,7,192,0,15,192,0, - 60,240,0,112,120,0,0,60,0,7,252,0,31,254,0,62, - 63,0,120,15,0,112,7,0,240,7,128,240,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,240,7,0, - 112,7,0,120,15,0,62,62,0,31,252,0,7,240,0,15, - 25,50,19,2,0,15,48,31,240,27,224,0,0,0,0,0, - 0,0,0,227,240,239,248,252,124,248,30,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,17,28,84,21,2,0,14,0,0, - 15,0,0,7,0,0,3,128,0,1,128,0,0,192,0,0, - 224,0,0,0,0,0,0,0,0,0,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,17,28,84,21,2,0,0,56,0,0,120,0,0,112,0, - 0,224,0,0,192,0,1,128,0,3,0,0,0,0,0,0, - 0,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,0,240,7,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,7,128,240,7,128,112,7,0,120, - 15,0,62,62,0,31,252,0,7,240,0,17,28,84,21,2, - 0,1,192,0,3,224,0,3,224,0,7,112,0,14,56,0, - 12,24,0,28,28,0,0,0,0,0,0,0,0,0,0,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 0,240,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 240,7,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,25,75,21,2,0,7,152,0,15,248, - 0,12,240,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,240,0,31,252,0,62,62,0,120,15,0,112,7,0,240, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,240,7,128,240,7,128,112,7,0,120,15,0,62,62,0, - 31,252,0,7,240,0,17,25,75,21,2,0,28,56,0,28, - 56,0,28,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,240,7,128,240,7,128,112,7,0,120,15,0,62,62, - 0,31,252,0,7,240,0,20,15,45,34,7,3,0,96,0, - 0,240,0,0,240,0,0,96,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,0,0,0,0,0,0,0,96, - 0,0,240,0,0,240,0,0,96,0,17,23,69,21,2,254, - 0,1,0,0,1,128,0,3,128,7,247,0,31,254,0,62, - 62,0,120,31,0,112,63,0,240,55,128,240,119,128,224,227, - 128,225,195,128,225,131,128,227,131,128,231,7,128,254,7,128, - 124,7,0,124,15,0,62,62,0,127,252,0,103,240,0,224, - 0,0,192,0,0,15,28,56,19,2,0,28,0,30,0,14, - 0,7,0,3,0,1,128,1,128,0,0,0,0,0,0,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,240,30,124,126,63, - 238,31,142,15,28,56,19,2,0,0,112,0,240,0,224,1, - 192,1,128,3,0,7,0,0,0,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,30,124,126,63,238,31, - 142,15,28,56,19,2,0,3,128,7,192,7,192,14,224,12, - 96,24,48,24,48,0,0,0,0,0,0,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,240,30,124,126,63,238,31,142,15, - 25,50,19,2,0,56,112,56,112,56,112,0,0,0,0,0, - 0,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,240,30,240, - 62,124,126,63,238,31,142,16,34,68,18,1,249,0,56,0, - 112,0,96,0,224,1,192,1,128,0,0,0,0,0,0,224, - 7,240,7,112,15,112,14,120,14,56,30,60,28,28,28,28, - 60,30,56,14,120,15,112,7,112,7,240,7,224,3,224,3, - 224,1,192,1,192,3,128,3,128,231,128,255,0,127,0,62, - 0,16,32,64,20,2,249,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,227,240,231,248,254,60,248,30,240,14,240, - 15,224,7,224,7,224,7,224,7,224,7,224,7,240,15,240, - 14,248,30,254,124,239,248,227,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,16,32,64,18,1,249,28,56,28, - 56,28,56,0,0,0,0,0,0,0,0,224,7,224,7,240, - 15,112,14,120,14,56,30,60,28,60,28,28,56,30,56,14, - 120,15,112,15,112,7,240,7,224,3,224,3,192,3,192,3, - 192,3,128,3,128,7,128,7,0,7,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=12 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25n[798] U8G_FONT_SECTION("u8g_font_fur25n") = { - 0,46,45,254,247,25,0,0,0,0,42,58,0,26,252,25, - 0,14,13,26,22,4,12,24,96,28,224,28,224,12,192,7, - 128,243,60,255,252,231,156,7,128,12,192,28,224,60,224,24, - 96,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,6,9,9,9,2,252,60,120,120,112, - 112,224,224,224,192,8,3,3,10,1,7,255,255,255,3,4, - 4,9,3,0,224,224,224,224,10,28,56,13,2,254,0,192, - 1,192,1,128,1,128,3,128,3,0,3,0,3,0,7,0, - 6,0,6,0,14,0,12,0,12,0,28,0,28,0,24,0, - 24,0,56,0,48,0,48,0,112,0,112,0,96,0,96,0, - 224,0,192,0,192,0,15,25,50,19,2,1,15,224,63,248, - 62,248,120,60,112,28,112,30,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,240,14, - 112,30,112,28,120,28,60,60,63,248,31,240,7,192,8,25, - 25,19,5,0,15,31,63,127,255,231,135,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,15,25,50, - 19,2,1,15,240,63,248,62,252,120,28,120,30,112,14,240, - 14,0,14,0,30,0,28,0,60,0,120,0,120,0,240,1, - 224,3,192,7,128,15,0,31,0,62,0,60,0,120,0,240, - 0,255,254,255,254,16,25,50,19,2,1,15,240,63,248,60, - 28,120,14,112,14,112,14,0,14,0,14,0,28,0,120,3, - 240,3,240,0,248,0,30,0,14,0,15,0,7,0,7,240, - 7,240,7,240,14,120,30,60,124,31,248,7,224,17,25,75, - 19,1,0,0,60,0,0,124,0,0,124,0,0,252,0,1, - 220,0,1,220,0,3,156,0,7,28,0,7,28,0,14,28, - 0,28,28,0,60,28,0,56,28,0,112,28,0,240,28,0, - 224,28,0,255,255,128,255,255,128,255,255,128,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,15,25, - 50,19,2,0,127,252,127,252,127,252,112,0,112,0,112,0, - 112,0,112,0,115,240,127,248,124,60,120,28,112,30,96,14, - 0,14,0,14,0,14,0,14,0,14,224,30,240,28,112,60, - 124,120,63,240,15,192,16,25,50,19,1,1,15,240,31,252, - 60,28,120,30,112,14,240,14,224,0,224,0,224,0,227,240, - 231,252,239,252,252,30,248,14,240,15,240,7,240,7,240,7, - 240,7,112,7,120,14,56,14,62,60,15,248,7,224,15,25, - 50,19,2,0,255,254,255,254,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,240,0,240,0,224, - 1,224,1,224,1,192,3,192,3,128,7,128,7,128,7,0, - 15,0,15,0,14,0,16,25,50,19,1,1,15,240,63,252, - 60,60,120,30,112,14,112,14,112,14,112,14,56,28,60,60, - 15,240,15,240,62,56,56,28,112,14,224,7,224,7,224,7, - 224,7,224,7,240,15,120,14,60,60,31,248,7,224,16,25, - 50,19,2,1,31,248,63,252,120,30,112,14,240,15,224,15, - 224,15,224,15,224,15,240,15,112,31,120,63,63,247,15,231, - 0,7,0,7,0,7,0,14,112,14,112,14,112,30,112,60, - 60,120,31,240,15,224,3,18,18,9,3,0,224,224,224,224, - 0,0,0,0,0,0,0,0,0,0,224,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=21 dx=34 dy= 0 ascent=28 len=120 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25r[5389] U8G_FONT_SECTION("u8g_font_fur25r") = { - 0,46,45,254,247,25,6,119,15,27,32,127,249,28,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=26 dx=40 dy= 0 ascent=43 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30[16505] U8G_FONT_SECTION("u8g_font_fur30") = { - 0,54,54,253,245,30,9,94,20,223,32,255,249,43,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,12,0,0,4,28,28,14,5,248, - 240,240,240,240,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,17,31,93,23, - 3,250,0,12,0,0,12,0,0,24,0,0,24,0,0,24, - 0,15,248,0,63,254,0,62,63,0,120,119,0,120,103,0, - 240,103,128,240,96,0,240,192,0,240,192,0,240,192,0,241, - 128,0,241,128,0,241,128,0,243,7,128,243,7,128,123,7, - 0,126,15,0,62,30,0,31,254,0,15,248,0,12,0,0, - 12,0,0,28,0,0,24,0,0,24,0,0,8,0,0,20, - 31,93,23,2,0,0,16,0,1,255,0,7,255,192,15,135, - 224,15,1,224,30,0,240,30,0,240,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,248,0,255,248,0,255, - 248,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,255,224,255,255,224,255, - 255,224,21,22,66,25,2,7,192,0,24,224,0,56,96,48, - 48,51,254,96,63,255,224,31,7,192,28,1,192,24,0,192, - 56,0,224,48,0,96,48,0,96,48,0,96,48,0,96,56, - 0,224,24,0,192,28,1,192,14,3,128,31,255,192,59,254, - 224,112,248,112,224,0,56,192,0,24,21,30,90,23,1,0, - 240,0,120,248,0,120,120,0,240,124,0,240,60,1,240,62, - 1,224,30,1,224,30,3,192,15,3,192,15,7,128,255,135, - 248,255,143,248,255,207,248,3,207,0,1,254,0,1,252,0, - 255,255,248,255,255,248,255,255,248,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,2,38,38,14,6,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,15,37,74,19,2,250,15,248,31,248, - 62,24,60,0,120,0,120,0,120,0,120,0,60,0,63,0, - 31,128,15,224,15,240,63,248,124,124,120,62,240,30,240,30, - 240,30,240,60,248,120,127,240,63,224,31,224,7,240,1,248, - 0,124,0,60,0,30,0,30,0,30,0,28,0,60,96,248, - 127,240,127,224,3,0,12,4,8,12,0,26,240,240,240,240, - 240,240,240,240,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,240,63,0,7,128,7,128,15,0,3,192,28,3, - 0,224,56,63,240,112,56,127,248,112,112,248,124,56,97,240, - 30,24,97,224,30,24,225,224,30,28,195,192,0,12,195,192, - 0,12,195,192,0,12,195,192,0,12,195,192,0,12,195,192, - 0,12,193,192,30,12,97,224,30,24,97,224,30,24,96,240, - 60,56,48,255,252,48,56,63,248,112,28,15,224,224,14,0, - 1,192,7,0,3,128,3,192,15,0,1,255,252,0,0,63, - 240,0,14,19,38,16,1,11,15,192,63,240,56,120,112,56, - 0,56,0,56,15,248,63,248,120,56,224,56,224,56,224,120, - 240,248,127,184,31,56,0,0,0,0,255,252,255,252,16,16, - 32,22,3,2,7,7,15,14,14,14,28,28,60,60,56,120, - 120,112,240,240,240,240,120,112,56,120,60,60,28,28,14,14, - 15,14,7,7,21,10,30,25,2,8,255,255,248,255,255,248, - 255,255,248,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,255,30,30,120,34,2,1,0, - 63,240,0,0,255,252,0,3,240,63,0,7,128,7,128,14, - 0,1,192,28,127,240,224,56,127,248,112,48,127,252,48,112, - 112,30,56,96,112,14,24,96,112,14,24,192,112,14,12,192, - 112,28,12,192,127,248,12,192,127,240,12,192,127,248,12,192, - 112,28,12,192,112,28,12,192,112,28,12,96,112,12,24,96, - 112,12,24,112,112,14,56,48,112,14,48,56,112,14,112,28, - 0,0,224,14,0,1,192,7,128,7,128,3,240,63,0,1, - 255,252,0,0,63,240,0,12,3,6,12,0,26,255,240,255, - 240,255,240,9,9,18,13,2,21,62,0,127,0,227,128,193, - 128,193,128,193,128,227,128,127,0,62,0,24,24,72,40,8, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,255,255,255,255,255,255,255,255,255,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,255,255,255,255,12,16,32,14,1,15,31, - 192,127,224,120,240,112,112,224,112,0,112,0,224,1,224,3, - 192,7,128,14,0,60,0,120,0,255,240,255,240,255,240,12, - 16,32,14,1,15,63,192,127,224,112,240,96,112,0,112,0, - 240,7,224,7,128,7,224,0,240,0,112,224,112,224,112,127, - 224,127,192,31,128,8,7,7,9,2,25,15,30,28,56,56, - 112,224,255,18,36,108,22,2,250,3,255,192,15,255,192,63, - 195,0,127,195,0,127,195,0,255,195,0,255,195,0,255,195, - 0,255,195,0,255,195,0,255,195,0,127,195,0,127,195,0, - 63,195,0,15,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,0,195,0,0,195,0,0,195,0,0,195, - 0,0,195,0,0,195,0,0,195,0,0,195,0,0,195,0, - 0,195,0,0,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,4,5,5,10,3,11,240,240,240,240,240, - 10,10,20,10,2,246,48,0,48,0,62,0,63,128,7,128, - 1,192,1,192,3,192,255,128,254,0,7,16,16,12,2,14, - 30,62,254,238,142,14,14,14,14,14,14,14,14,14,14,14, - 14,19,38,16,1,10,15,192,63,224,120,112,112,56,224,56, - 224,28,224,28,224,28,224,28,224,28,224,56,112,56,56,112, - 31,224,7,128,0,0,0,0,255,252,255,252,16,16,32,22, - 3,2,224,224,112,112,120,120,56,56,28,60,30,30,15,14, - 15,15,15,15,15,14,30,30,28,60,56,56,120,120,112,112, - 224,224,28,30,120,32,2,0,30,0,12,0,62,0,28,0, - 254,0,56,0,238,0,56,0,142,0,112,0,14,0,112,0, - 14,0,224,0,14,0,192,0,14,1,192,0,14,3,128,0, - 14,3,128,0,14,7,0,0,14,7,0,0,14,14,0,0, - 14,12,7,128,14,28,7,128,0,56,15,128,0,56,31,128, - 0,112,27,128,0,112,59,128,0,224,115,128,0,224,99,128, - 1,192,195,128,1,129,195,128,3,129,255,240,7,1,255,240, - 7,0,3,128,14,0,3,128,14,0,3,128,28,0,3,128, - 28,30,120,32,2,0,30,0,28,0,62,0,28,0,254,0, - 56,0,238,0,56,0,142,0,112,0,14,0,112,0,14,0, - 224,0,14,0,224,0,14,1,192,0,14,3,128,0,14,3, - 128,0,14,7,0,0,14,7,0,0,14,14,0,0,14,14, - 31,128,14,28,63,224,0,56,121,224,0,56,112,112,0,112, - 240,112,0,112,0,112,0,224,0,240,0,224,0,224,1,192, - 3,192,1,128,7,128,3,128,15,0,7,0,60,0,7,0, - 120,0,14,0,255,240,14,0,255,240,28,0,255,240,30,31, - 124,32,1,0,0,0,1,192,63,192,3,128,127,224,3,128, - 112,240,7,0,96,112,6,0,0,112,14,0,0,240,28,0, - 7,224,28,0,7,128,56,0,7,224,56,0,0,240,112,0, - 0,112,112,0,224,112,224,0,224,113,192,0,127,225,192,0, - 127,195,129,224,31,131,129,224,0,7,3,224,0,7,7,224, - 0,14,6,224,0,12,12,224,0,28,28,224,0,56,24,224, - 0,56,48,224,0,112,112,224,0,112,127,252,0,224,127,252, - 0,224,0,224,1,192,0,224,1,128,0,224,3,128,0,224, - 17,28,84,21,2,248,0,240,0,0,240,0,0,240,0,0, - 240,0,0,0,0,0,0,0,0,0,0,0,240,0,0,240, - 0,0,240,0,0,240,0,1,240,0,1,224,0,7,192,0, - 15,128,0,31,0,0,60,0,0,120,0,0,240,0,0,240, - 0,0,240,0,0,240,3,0,240,3,128,124,15,128,127,255, - 0,63,254,0,31,252,0,3,240,0,28,41,164,30,1,0, - 0,240,0,0,0,240,0,0,0,120,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,7,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0, - 0,31,128,0,0,31,128,0,0,63,192,0,0,63,192,0, - 0,127,192,0,0,121,224,0,0,121,224,0,0,241,240,0, - 0,240,240,0,1,240,240,0,1,224,248,0,1,224,120,0, - 3,224,124,0,3,192,60,0,7,192,60,0,7,128,62,0, - 7,128,30,0,15,128,31,0,15,255,255,0,31,255,255,128, - 31,255,255,128,30,0,7,128,60,0,3,192,60,0,3,192, - 124,0,3,224,120,0,1,224,120,0,1,224,240,0,0,240, - 240,0,0,240,28,41,164,30,1,0,0,0,240,0,0,0, - 240,0,0,1,224,0,0,1,192,0,0,3,128,0,0,7, - 0,0,0,7,0,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,15,0,0,0,31,128,0,0,31, - 128,0,0,63,192,0,0,63,192,0,0,127,192,0,0,121, - 224,0,0,121,224,0,0,241,240,0,0,240,240,0,1,240, - 240,0,1,224,248,0,1,224,120,0,3,224,124,0,3,192, - 60,0,7,192,60,0,7,128,62,0,7,128,30,0,15,128, - 31,0,15,255,255,0,31,255,255,128,31,255,255,128,30,0, - 7,128,60,0,3,192,60,0,3,192,124,0,3,224,120,0, - 1,224,120,0,1,224,240,0,0,240,240,0,0,240,28,41, - 164,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,57,192,0,0,112,224,0,0,96,96,0, - 0,224,112,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,15,0,0,0,31,128,0,0,31,128,0,0,63,192,0, - 0,63,192,0,0,127,192,0,0,121,224,0,0,121,224,0, - 0,241,240,0,0,240,240,0,1,240,240,0,1,224,248,0, - 1,224,120,0,3,224,124,0,3,192,60,0,7,192,60,0, - 7,128,62,0,7,128,30,0,15,128,31,0,15,255,255,0, - 31,255,255,128,31,255,255,128,30,0,7,128,60,0,3,192, - 60,0,3,192,124,0,3,224,120,0,1,224,120,0,1,224, - 240,0,0,240,240,0,0,240,28,39,156,30,1,0,0,16, - 48,0,0,126,112,0,0,127,224,0,0,231,224,0,0,192, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,15,0,0,0,31,128,0,0,31,128,0,0,63, - 192,0,0,63,192,0,0,127,192,0,0,121,224,0,0,121, - 224,0,0,241,240,0,0,240,240,0,1,240,240,0,1,224, - 248,0,1,224,120,0,3,224,124,0,3,192,60,0,7,192, - 60,0,7,128,62,0,7,128,30,0,15,128,31,0,15,255, - 255,0,31,255,255,128,31,255,255,128,30,0,7,128,60,0, - 3,192,60,0,3,192,124,0,3,224,120,0,1,224,120,0, - 1,224,240,0,0,240,240,0,0,240,29,39,156,30,1,0, - 0,120,120,0,0,120,120,0,0,120,120,0,0,120,120,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,128,0,0,15,128,0,0,31,128,0, - 0,31,192,0,0,63,192,0,0,61,224,0,0,125,224,0, - 0,121,240,0,0,120,240,0,0,240,240,0,0,240,248,0, - 1,240,120,0,1,224,124,0,1,224,60,0,3,224,60,0, - 3,192,62,0,7,192,30,0,7,128,31,0,7,128,15,0, - 15,255,255,128,15,255,255,128,31,255,255,128,30,0,3,192, - 30,0,3,192,60,0,3,224,60,0,1,224,120,0,1,224, - 120,0,0,240,120,0,0,240,240,0,0,248,28,43,172,30, - 1,0,0,14,0,0,0,63,0,0,0,49,128,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,96,192,0,0,49, - 128,0,0,63,128,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,31,0,0,0,31,0,0,0,31, - 128,0,0,63,128,0,0,63,192,0,0,123,192,0,0,123, - 192,0,0,121,224,0,0,241,224,0,0,241,240,0,1,224, - 240,0,1,224,248,0,1,224,120,0,3,192,120,0,3,192, - 124,0,7,192,60,0,7,128,62,0,15,128,30,0,15,0, - 30,0,15,255,255,0,31,255,255,0,31,255,255,128,60,0, - 7,128,60,0,7,192,60,0,3,192,120,0,3,192,120,0, - 1,224,240,0,1,224,240,0,1,240,240,0,0,240,37,30, - 150,39,0,0,0,1,255,255,240,0,1,255,255,240,0,3, - 255,255,240,0,3,255,255,240,0,7,252,0,0,0,7,188, - 0,0,0,15,188,0,0,0,15,60,0,0,0,31,60,0, - 0,0,30,60,0,0,0,62,60,0,0,0,60,60,0,0, - 0,124,60,0,0,0,120,63,255,240,0,248,63,255,240,0, - 240,63,255,240,1,240,63,255,240,1,224,60,0,0,3,224, - 60,0,0,3,255,252,0,0,7,255,252,0,0,7,255,252, - 0,0,15,0,60,0,0,31,0,60,0,0,30,0,60,0, - 0,62,0,60,0,0,60,0,63,255,248,124,0,63,255,248, - 120,0,63,255,248,248,0,63,255,248,22,40,120,26,2,247, - 1,255,128,7,255,224,15,255,240,31,0,248,62,0,120,60, - 0,60,120,0,60,120,0,60,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,112, - 0,0,120,0,60,120,0,60,60,0,60,60,0,120,31,0, - 248,15,255,240,7,255,224,3,255,128,0,48,0,0,48,0, - 0,62,0,0,63,128,0,63,192,0,1,192,0,1,192,0, - 1,192,0,255,128,0,254,0,19,41,123,24,3,0,30,0, - 0,15,0,0,7,0,0,3,128,0,3,128,0,1,192,0, - 0,224,0,0,96,0,0,0,0,0,0,0,0,0,0,255, - 255,192,255,255,192,255,255,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,255,255,192,255,255,192,255,255,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,255,255,224, - 255,255,224,255,255,224,255,255,224,19,41,123,24,3,0,0, - 30,0,0,60,0,0,56,0,0,120,0,0,240,0,0,224, - 0,1,192,0,1,128,0,0,0,0,0,0,0,0,0,0, - 255,255,192,255,255,192,255,255,192,255,255,192,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 255,255,192,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,19,41,123,24,3,0, - 1,224,0,3,240,0,7,240,0,7,120,0,15,56,0,14, - 28,0,28,28,0,24,14,0,0,0,0,0,0,0,0,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,255,255,192,255,255,192,255,255, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,19,39,117,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,192,255, - 255,192,255,255,192,255,255,192,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,255,255,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,255,255,224,255,255,224, - 255,255,224,255,255,224,8,41,41,10,255,0,240,120,56,28, - 30,14,7,3,0,0,0,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,7,41,41,10,3,0,30,30,60,56,112, - 112,224,192,0,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,12,41,82,10,255,0,15,0,31,0,31,128, - 63,128,57,192,112,224,96,224,224,112,0,0,0,0,0,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,12,39,78,11, - 0,0,240,240,240,240,240,240,240,240,0,0,0,0,0,0, - 0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 26,30,120,28,0,0,31,255,0,0,31,255,224,0,31,255, - 248,0,31,255,252,0,30,0,254,0,30,0,63,0,30,0, - 31,0,30,0,15,128,30,0,7,128,30,0,7,128,30,0, - 3,192,30,0,3,192,30,0,3,192,30,0,3,192,255,252, - 3,192,255,252,3,192,255,252,3,192,30,0,3,192,30,0, - 3,192,30,0,3,192,30,0,7,128,30,0,7,128,30,0, - 15,128,30,0,31,0,30,0,63,0,30,0,254,0,31,255, - 252,0,31,255,248,0,31,255,224,0,31,255,0,0,22,39, - 117,28,3,0,0,131,0,3,243,0,7,255,0,7,62,0, - 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,60,252,0,60,254,0,60,254,0,60,255,0,60,255,0, - 60,255,128,60,247,128,60,247,192,60,243,192,60,243,224,60, - 241,224,60,241,240,60,240,240,60,240,248,60,240,120,60,240, - 124,60,240,60,60,240,62,60,240,30,60,240,31,60,240,15, - 60,240,15,188,240,7,188,240,3,252,240,3,252,240,1,252, - 240,1,252,240,0,252,240,0,252,26,41,164,30,2,0,1, - 224,0,0,0,240,0,0,0,120,0,0,0,56,0,0,0, - 28,0,0,0,28,0,0,0,14,0,0,0,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,1,255,224,0,3, - 255,240,0,15,255,252,0,31,255,254,0,31,0,62,0,62, - 0,31,0,60,0,15,0,120,0,7,128,120,0,7,128,112, - 0,3,128,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,112,0,3,128,120,0,7,128,120, - 0,7,128,120,0,15,128,60,0,15,0,62,0,31,0,31, - 128,126,0,15,255,252,0,7,255,248,0,3,255,240,0,0, - 255,192,0,26,41,164,30,2,0,0,1,224,0,0,3,192, - 0,0,7,128,0,0,7,0,0,0,15,0,0,0,14,0, - 0,0,28,0,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,255,224,0,3,255,240,0,15,255,252, - 0,31,255,254,0,31,0,62,0,62,0,31,0,60,0,15, - 0,120,0,7,128,120,0,7,128,112,0,3,128,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,112,0,3,128,120,0,7,128,120,0,7,128,120,0,15, - 128,60,0,15,0,62,0,31,0,31,128,126,0,15,255,252, - 0,7,255,248,0,3,255,240,0,0,255,192,0,26,41,164, - 30,2,0,0,30,0,0,0,63,0,0,0,63,0,0,0, - 127,128,0,0,115,128,0,0,225,192,0,0,192,224,0,1, - 192,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 255,224,0,3,255,240,0,15,255,252,0,31,255,254,0,31, - 0,62,0,62,0,31,0,60,0,15,0,120,0,7,128,120, - 0,7,128,112,0,3,128,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,112,0,3,128,120, - 0,7,128,120,0,7,128,120,0,15,128,60,0,15,0,62, - 0,31,0,31,128,126,0,15,255,252,0,7,255,248,0,3, - 255,240,0,0,255,192,0,26,39,156,30,2,0,0,32,96, - 0,0,252,224,0,0,255,224,0,1,207,192,0,1,129,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,255,224,0,3,255,240,0,15,255,252,0,31,255,254, - 0,31,0,62,0,62,0,31,0,60,0,15,0,120,0,7, - 128,120,0,7,128,112,0,3,128,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,112,0,3, - 128,120,0,7,128,120,0,7,128,120,0,15,128,60,0,15, - 0,62,0,31,0,31,128,126,0,15,255,252,0,7,255,248, - 0,3,255,240,0,0,255,192,0,26,39,156,30,2,0,0, - 240,240,0,0,240,240,0,0,240,240,0,0,240,240,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,255,224,0,3,255,240,0,15,255,252,0,31, - 255,254,0,31,0,62,0,62,0,31,0,60,0,15,0,120, - 0,7,128,120,0,7,128,112,0,3,128,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,112, - 0,3,128,120,0,7,128,120,0,7,128,120,0,15,128,60, - 0,15,0,62,0,31,0,31,128,126,0,15,255,252,0,7, - 255,248,0,3,255,240,0,0,255,192,0,22,22,66,40,9, - 1,96,0,24,240,0,60,120,0,120,56,0,112,28,0,224, - 14,1,192,7,3,128,3,135,0,1,206,0,0,252,0,0, - 120,0,0,120,0,0,252,0,1,206,0,3,135,0,7,3, - 128,14,1,192,28,0,224,56,0,112,112,0,56,96,0,24, - 64,0,8,26,38,152,30,2,252,0,0,1,0,0,0,3, - 128,0,0,3,192,0,0,7,128,0,255,199,128,3,255,255, - 0,15,255,255,0,31,255,254,0,31,0,62,0,62,0,127, - 0,124,0,127,0,120,0,255,128,120,1,247,128,240,1,227, - 128,240,3,195,192,240,7,195,192,240,7,131,192,240,15,3, - 192,240,31,3,192,240,30,3,192,240,60,3,192,240,124,3, - 192,240,248,3,192,112,240,3,192,121,240,7,128,123,224,7, - 128,127,192,15,128,63,192,15,0,63,128,31,0,31,128,126, - 0,31,255,252,0,31,255,248,0,63,255,240,0,124,255,192, - 0,120,0,0,0,240,0,0,0,112,0,0,0,32,0,0, - 0,23,41,123,29,3,0,3,192,0,1,192,0,1,224,0, - 0,240,0,0,112,0,0,56,0,0,24,0,0,28,0,0, - 0,0,0,0,0,0,0,0,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,120,0,60,120,0,60, - 124,0,124,62,0,248,63,255,248,31,255,240,15,255,224,3, - 255,128,23,41,123,29,3,0,0,7,128,0,7,0,0,15, - 0,0,30,0,0,28,0,0,56,0,0,48,0,0,112,0, - 0,0,0,0,0,0,0,0,0,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,120,0,60,120,0, - 60,124,0,124,62,0,248,63,255,248,31,255,240,15,255,224, - 3,255,128,23,41,123,29,3,0,0,124,0,0,124,0,0, - 254,0,0,238,0,1,199,0,1,199,0,3,131,128,7,1, - 128,0,0,0,0,0,0,0,0,0,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,120,0,60,120, - 0,60,124,0,124,62,0,248,63,255,248,31,255,240,15,255, - 224,3,255,128,23,38,114,29,3,0,3,195,192,3,195,192, - 3,195,192,3,195,192,0,0,0,0,0,0,0,0,0,0, - 0,0,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,120,0,60,120,0,60,124,0,124,62,0,248, - 63,255,248,31,255,240,15,255,224,3,255,128,24,41,123,26, - 1,0,0,3,192,0,7,128,0,7,0,0,15,0,0,14, - 0,0,28,0,0,24,0,0,48,0,0,0,0,0,0,0, - 0,0,0,248,0,15,248,0,31,124,0,30,124,0,60,62, - 0,124,30,0,120,31,0,248,15,0,240,15,129,224,7,129, - 224,3,195,192,3,227,192,1,231,128,1,247,0,0,255,0, - 0,254,0,0,126,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,19,30,90, - 24,3,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,255,248,0,255,255,0,255,255,128,255,255, - 192,240,15,192,240,3,224,240,1,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,3,224,240,15,192,255,255,192,255, - 255,128,255,255,0,255,248,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,20,30,90, - 22,2,0,3,248,0,15,254,0,63,255,0,124,15,0,248, - 7,128,240,7,128,240,7,128,240,7,128,240,15,0,240,31, - 0,240,62,0,240,124,0,240,248,0,240,240,0,240,240,0, - 240,248,0,240,126,0,240,63,0,240,31,192,240,15,224,240, - 3,224,240,1,240,240,0,240,240,0,240,243,192,240,243,192, - 240,241,224,240,241,241,224,240,255,224,240,63,128,18,31,93, - 23,2,0,7,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,0,0, - 0,0,0,0,15,254,0,63,255,0,62,15,128,120,7,128, - 120,3,192,0,3,192,0,3,192,3,255,192,15,255,192,63, - 255,192,126,3,192,120,3,192,240,3,192,240,3,192,240,7, - 192,240,7,192,248,15,192,124,63,192,63,251,192,31,227,192, - 18,32,96,23,2,0,0,60,0,0,60,0,0,120,0,0, - 240,0,0,224,0,1,192,0,1,128,0,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,63,255,0, - 62,15,128,120,7,128,120,3,192,0,3,192,0,3,192,3, - 255,192,15,255,192,63,255,192,126,3,192,120,3,192,240,3, - 192,240,3,192,240,7,192,240,7,192,248,15,192,124,63,192, - 63,251,192,31,227,192,18,32,96,23,2,0,1,224,0,3, - 240,0,3,240,0,7,184,0,7,60,0,14,28,0,12,14, - 0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,30,90,23, - 2,0,7,134,0,15,206,0,15,254,0,28,124,0,24,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,243,192,18,30,90,23, - 2,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,34,102,23, - 2,0,1,224,0,3,240,0,6,24,0,12,12,0,12,12, - 0,12,12,0,12,12,0,6,24,0,3,240,0,1,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,15,254,0,63, - 255,0,62,15,128,120,7,128,120,3,192,0,3,192,0,3, - 192,3,255,192,15,255,192,63,255,192,126,3,192,120,3,192, - 240,3,192,240,3,192,240,7,192,240,7,192,248,15,192,124, - 63,192,63,251,192,31,227,192,32,20,80,36,2,1,15,248, - 31,240,63,254,63,248,124,30,120,60,120,7,112,30,120,7, - 224,14,0,3,224,15,0,3,192,15,0,127,255,255,31,255, - 255,255,63,255,255,255,126,3,192,0,120,3,192,0,240,3, - 192,0,240,3,192,15,240,7,224,14,240,7,224,30,248,14, - 112,30,126,62,124,124,63,252,63,248,31,240,15,240,17,30, - 90,21,2,247,15,252,0,31,254,0,62,31,0,120,15,128, - 120,7,128,240,7,128,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,7,128,112,7, - 128,120,7,128,120,15,0,62,31,0,31,254,0,15,252,0, - 1,128,0,1,128,0,1,240,0,1,252,0,1,254,0,0, - 14,0,0,14,0,0,14,0,7,252,0,7,240,0,18,32, - 96,22,2,0,30,0,0,15,0,0,7,0,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,96,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,252,0,31,254,0,62,31, - 0,60,7,128,120,3,128,112,3,192,240,3,192,240,3,192, - 255,255,192,255,255,192,255,255,192,240,0,0,240,0,0,240, - 0,0,112,3,192,120,7,128,56,7,128,62,31,0,31,254, - 0,7,252,0,18,32,96,22,2,0,0,30,0,0,60,0, - 0,120,0,0,112,0,0,224,0,0,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,31,254,0,62,31,0,60,7,128,120,3,128,112,3,192, - 240,3,192,240,3,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,112,3,192,120,7,128,56,7, - 128,62,31,0,31,254,0,7,252,0,18,32,96,22,2,0, - 1,224,0,3,240,0,3,240,0,7,248,0,7,56,0,14, - 28,0,12,12,0,28,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,31,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,7,128,56,7,128,62,31,0,31,254,0,7,252,0, - 18,30,90,22,2,0,30,30,0,30,30,0,30,30,0,30, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,15,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,3,128,60,7,128,62,15,0,31,254,0,7,252,0, - 8,32,32,10,255,0,240,120,56,28,30,14,7,3,0,0, - 0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,9,32,64,10,2,0,15,128,15,0, - 30,0,28,0,56,0,56,0,112,0,224,0,0,0,0,0, - 0,0,0,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,12,32,64,10, - 255,0,15,0,31,128,31,128,59,192,57,192,112,224,224,96, - 192,112,0,0,0,0,0,0,0,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,12,30,60,10,255,0,240,240,240,240,240,240,240,240, - 0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,20,30,90,24,2,0,16,1,0,60,7,0, - 30,31,0,7,252,0,3,240,0,7,240,0,62,120,0,120, - 60,0,96,30,0,0,15,0,7,255,128,31,255,192,63,15, - 192,60,3,192,120,1,224,120,1,224,240,1,224,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 1,224,120,1,224,120,3,224,60,3,192,63,15,128,31,255, - 0,7,254,0,18,30,90,24,3,0,7,14,0,15,204,0, - 31,252,0,28,248,0,24,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,243,254,0,247,255,0,254,31, - 128,248,7,128,248,7,128,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,20,32,96,24,2,0,15,0,0,7,128,0, - 3,128,0,1,192,0,1,192,0,0,224,0,0,112,0,0, - 48,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,15,255,0,63,15,128,60,3,192,120,3,224,120,1,224, - 240,1,224,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,1,224,120,1,224,120,3,224,60,3, - 192,63,15,128,15,255,0,7,254,0,20,32,96,24,2,0, - 0,30,0,0,30,0,0,60,0,0,56,0,0,112,0,0, - 96,0,0,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,15,255,0,63,15,128,60,3,192, - 120,3,224,120,1,224,240,1,224,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,1,224,120,1, - 224,120,3,224,60,3,192,63,15,128,15,255,0,7,254,0, - 20,32,96,24,2,0,0,240,0,1,248,0,1,248,0,3, - 188,0,3,156,0,7,14,0,6,6,0,12,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,3,135,0,7, - 230,0,15,254,0,14,124,0,12,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,15,15,0,15, - 15,0,15,15,0,15,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,24,19,57,40,8,2,0,16,0,0, - 56,0,0,124,0,0,124,0,0,124,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,56,0,21,26,78,24,1,254,0,0,56,0,0, - 120,0,0,112,3,255,224,7,255,192,31,135,192,30,3,224, - 60,7,240,60,15,240,120,14,240,120,28,120,120,56,120,120, - 120,120,120,112,120,120,224,120,121,192,120,123,192,240,63,128, - 240,63,1,240,30,1,224,15,135,192,31,255,128,59,255,0, - 112,0,0,240,0,0,96,0,0,18,32,96,24,3,0,30, - 0,0,15,0,0,7,0,0,3,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,0,0,0,0,0,0,0,0, - 0,0,0,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,7,192,120,7,192,124,31,192,63,251,192,31,243,192,18, - 32,96,24,3,0,0,62,0,0,60,0,0,120,0,0,112, - 0,0,224,0,0,224,0,1,192,0,3,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,7,192,120,7,192,124,31,192,63, - 251,192,31,243,192,18,32,96,24,3,0,1,224,0,3,240, - 0,3,240,0,7,120,0,7,56,0,14,28,0,28,12,0, - 24,14,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 7,192,124,31,192,63,251,192,31,243,192,18,30,90,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,40,120,21,1, - 248,0,15,0,0,30,0,0,28,0,0,56,0,0,112,0, - 0,112,0,0,224,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,240,1,224,120,1,224,120,1, - 192,60,3,192,60,3,192,62,7,128,30,7,128,30,7,0, - 15,15,0,15,15,0,15,158,0,7,158,0,7,156,0,3, - 252,0,3,252,0,1,248,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,224,0,1,224,0,33,224,0,243,192,0, - 127,192,0,127,128,0,31,0,0,19,38,114,24,3,248,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,243,254,0, - 247,255,0,254,15,128,252,7,192,248,3,192,248,3,192,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,248,3,192,248,3,192,252,7,192, - 254,15,128,247,255,0,243,254,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,20,38,114,22,1,248,15,15,0,15,15,0,15,15,0, - 15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,248,0,224,120,1,224,120,1, - 224,60,3,192,60,3,192,62,3,128,30,7,128,30,7,128, - 15,15,0,15,15,0,7,143,0,7,158,0,7,222,0,3, - 252,0,3,252,0,1,252,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=33 x= 8 y=15 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30n[1201] U8G_FONT_SECTION("u8g_font_fur30n") = { - 0,54,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=25 dx=40 dy= 0 ascent=33 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30r[7380] U8G_FONT_SECTION("u8g_font_fur30r") = { - 0,54,54,253,245,30,9,94,20,223,32,127,249,33,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--48-480-72-72-P-226-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=16 dx=49 dy= 0 ascent=36 len=116 - Font Bounding box w=65 h=64 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur35n[1447] U8G_FONT_SECTION("u8g_font_fur35n") = { - 0,65,64,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,19,19,57,31,6,16,6,12,0,30,15,0,15,30,0, - 15,30,0,7,28,0,3,184,0,1,176,0,193,240,96,255, - 255,224,255,255,224,248,227,224,1,240,0,3,184,0,7,188, - 0,7,28,0,15,30,0,30,15,0,14,14,0,2,8,0, - 29,29,116,49,10,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,255,255,255,248,255,255, - 255,248,255,255,255,248,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,9,12,24,13,2,250, - 31,128,31,0,31,0,62,0,62,0,62,0,60,0,124,0, - 120,0,120,0,112,0,240,0,12,4,8,16,2,10,255,240, - 255,240,255,240,255,240,5,6,6,13,5,0,248,248,248,248, - 248,248,15,39,78,19,2,253,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,112,0,112,0,240, - 0,224,0,224,1,224,1,192,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,15,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,56,0,120,0, - 112,0,112,0,240,0,22,35,105,27,2,1,3,255,0,7, - 255,128,31,255,224,31,255,224,62,3,240,62,1,240,124,0, - 248,120,0,248,120,0,120,248,0,120,248,0,124,248,0,124, - 248,0,124,248,0,124,248,0,124,248,0,124,248,0,124,248, - 0,124,248,0,124,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,120,0,124,120,0,120,120,0,120,124,0,248, - 60,0,248,62,1,240,63,3,240,31,255,224,15,255,192,7, - 255,128,1,255,0,12,35,70,27,7,0,3,240,7,240,15, - 240,31,240,127,240,255,240,253,240,241,240,193,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,21,35,105,27,3,1,3,255,0,15,255,128,31,255,192, - 63,255,224,63,1,240,126,0,240,124,0,248,124,0,248,124, - 0,248,124,0,248,0,0,248,0,0,248,0,0,240,0,1, - 240,0,3,224,0,7,224,0,7,192,0,15,128,0,31,128, - 0,63,0,0,126,0,0,252,0,1,248,0,3,240,0,7, - 224,0,15,192,0,31,192,0,31,128,0,63,0,0,126,0, - 0,252,0,0,255,255,248,255,255,248,255,255,248,255,255,248, - 22,35,105,27,2,1,3,255,0,15,255,192,31,255,224,31, - 255,240,63,1,248,62,0,248,124,0,120,124,0,120,124,0, - 124,0,0,120,0,0,120,0,0,248,0,1,240,0,15,224, - 0,255,192,0,255,0,0,255,128,0,255,192,0,15,224,0, - 1,240,0,0,248,0,0,248,0,0,124,0,0,124,0,0, - 124,248,0,124,248,0,124,252,0,124,252,0,120,124,0,248, - 127,3,248,63,255,240,31,255,224,15,255,192,3,255,0,24, - 35,105,27,1,0,0,3,240,0,7,240,0,7,240,0,15, - 240,0,31,240,0,63,240,0,61,240,0,121,240,0,249,240, - 0,241,240,1,225,240,3,225,240,3,193,240,7,129,240,15, - 129,240,15,1,240,30,1,240,62,1,240,60,1,240,120,1, - 240,248,1,240,240,1,240,255,255,255,255,255,255,255,255,255, - 255,255,255,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,21,35, - 105,27,3,0,127,255,224,127,255,224,127,255,224,127,255,224, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,254,0,125,255,128,127,255, - 192,127,131,224,126,1,240,124,0,240,120,0,248,120,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,248,0,120,248,0,248,248,0,240,248,1,240,126,3, - 224,63,255,224,63,255,192,15,255,128,7,254,0,23,35,105, - 27,2,1,1,255,128,7,255,192,15,255,224,31,193,240,31, - 0,248,62,0,248,62,0,120,124,0,120,124,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,127,0,120,255,192, - 249,255,240,251,255,240,255,131,248,254,0,248,252,0,124,252, - 0,124,248,0,60,248,0,60,248,0,60,248,0,62,248,0, - 60,248,0,60,120,0,60,124,0,124,124,0,120,63,1,248, - 31,255,240,15,255,224,7,255,192,1,255,0,21,35,105,27, - 3,0,255,255,248,255,255,248,255,255,248,255,255,248,0,0, - 120,0,0,248,0,0,240,0,1,240,0,1,240,0,1,224, - 0,3,224,0,3,224,0,7,192,0,7,192,0,7,128,0, - 15,128,0,15,128,0,15,0,0,31,0,0,31,0,0,62, - 0,0,62,0,0,62,0,0,124,0,0,124,0,0,248,0, - 0,248,0,0,248,0,1,240,0,1,240,0,3,240,0,3, - 224,0,3,224,0,7,192,0,7,192,0,22,35,105,27,2, - 1,3,255,128,15,255,224,31,255,240,63,255,248,63,1,248, - 126,0,252,124,0,124,124,0,124,124,0,124,124,0,124,124, - 0,124,60,0,120,62,0,248,31,131,240,15,255,224,3,255, - 128,7,255,128,15,255,224,31,3,240,62,0,248,124,0,120, - 120,0,124,248,0,60,248,0,60,248,0,60,248,0,60,248, - 0,60,248,0,60,248,0,124,124,0,124,126,1,248,63,255, - 248,31,255,240,15,255,224,3,255,128,22,35,105,27,2,1, - 3,255,128,15,255,192,31,255,224,63,255,240,126,1,248,124, - 0,248,120,0,248,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,248,0,124,248,0,124,248,0,252,120,0,252, - 124,1,252,127,3,252,63,255,252,31,255,124,15,254,124,3, - 248,124,0,0,124,0,0,124,0,0,120,0,0,120,0,0, - 248,120,0,248,120,1,240,124,1,240,62,3,224,63,255,224, - 31,255,192,15,255,128,7,254,0,5,24,24,13,5,0,248, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,0, - 0,248,248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--58-580-72-72-P-271-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=175 - Font Bounding box w=78 h=76 x=-4 y=-15 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur42n[2194] U8G_FONT_SECTION("u8g_font_fur42n") = { - 0,78,76,252,241,42,0,0,0,0,42,58,0,43,249,42, - 0,23,22,66,37,7,20,3,1,128,7,131,192,15,131,224, - 7,131,192,7,199,192,3,199,128,1,239,0,0,238,0,0, - 254,0,254,124,254,255,255,254,255,255,254,254,124,254,0,124, - 0,0,238,0,1,239,0,3,199,128,3,199,128,7,195,192, - 15,131,224,15,131,224,3,1,128,35,35,175,59,12,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,255,255,255,255,224,255, - 255,255,255,224,255,255,255,255,224,255,255,255,255,224,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,10,15, - 30,16,3,249,31,192,31,192,31,128,63,128,63,0,63,0, - 62,0,62,0,126,0,124,0,124,0,120,0,248,0,248,0, - 240,0,14,5,10,18,2,12,255,252,255,252,255,252,255,252, - 255,252,6,7,7,16,6,0,252,252,252,252,252,252,252,17, - 46,138,23,3,253,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,240, - 0,1,224,0,1,224,0,1,224,0,3,192,0,3,192,0, - 3,192,0,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,62,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,26, - 43,172,32,3,0,0,255,224,0,3,255,240,0,7,255,252, - 0,15,255,254,0,31,255,254,0,31,128,127,0,63,0,63, - 0,62,0,31,128,126,0,31,128,124,0,15,128,124,0,15, - 192,124,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,252,0,7,192,252,0,7,192,252,0,7, - 192,252,0,7,192,252,0,7,192,124,0,15,192,124,0,15, - 192,124,0,15,192,126,0,15,128,126,0,31,128,62,0,31, - 128,63,0,63,0,31,128,127,0,31,224,254,0,15,255,254, - 0,7,255,252,0,3,255,248,0,1,255,224,0,0,63,128, - 0,14,42,84,32,8,0,0,252,1,252,3,252,7,252,15, - 252,63,252,127,252,255,124,254,124,248,124,224,124,128,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,25,42,168,32,4, - 1,1,255,192,0,7,255,240,0,15,255,248,0,31,255,252, - 0,31,255,254,0,63,128,127,0,63,0,63,0,127,0,31, - 128,126,0,31,128,126,0,31,128,126,0,15,128,126,0,15, - 128,0,0,31,128,0,0,31,128,0,0,31,0,0,0,63, - 0,0,0,63,0,0,0,126,0,0,0,252,0,0,1,252, - 0,0,3,248,0,0,7,240,0,0,7,224,0,0,15,224, - 0,0,31,192,0,0,63,128,0,0,127,0,0,0,254,0, - 0,1,252,0,0,3,248,0,0,7,240,0,0,15,224,0, - 0,31,224,0,0,63,192,0,0,63,128,0,0,127,0,0, - 0,254,0,0,0,255,255,255,128,255,255,255,128,255,255,255, - 128,255,255,255,128,255,255,255,128,26,43,172,32,3,0,1, - 255,192,0,7,255,240,0,15,255,252,0,31,255,254,0,31, - 255,255,0,63,128,127,0,63,0,63,128,127,0,31,128,126, - 0,15,128,126,0,15,128,252,0,15,128,0,0,15,128,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,63,0,0, - 0,126,0,0,3,252,0,0,127,248,0,0,127,240,0,0, - 127,224,0,0,127,240,0,0,127,252,0,0,3,254,0,0, - 0,127,0,0,0,63,128,0,0,31,192,0,0,15,192,0, - 0,7,192,0,0,7,192,0,0,7,192,252,0,7,192,252, - 0,7,192,252,0,7,192,254,0,15,192,254,0,31,192,127, - 0,63,128,127,192,255,0,63,255,255,0,31,255,254,0,15, - 255,248,0,3,255,240,0,0,255,128,0,29,42,168,32,2, - 0,0,0,127,0,0,0,127,0,0,0,255,0,0,1,255, - 0,0,3,255,0,0,3,255,0,0,7,223,0,0,15,223, - 0,0,15,159,0,0,31,31,0,0,63,31,0,0,62,31, - 0,0,124,31,0,0,252,31,0,0,248,31,0,1,240,31, - 0,3,240,31,0,3,224,31,0,7,192,31,0,15,192,31, - 0,15,128,31,0,31,0,31,0,63,0,31,0,126,0,31, - 0,124,0,31,0,252,0,31,0,248,0,31,0,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,26,43,172,32,3,255,127, - 255,255,0,127,255,255,0,127,255,255,0,127,255,255,0,127, - 255,255,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,31,192,0,124,127,240,0,124, - 255,252,0,125,255,252,0,127,224,254,0,127,128,63,0,127, - 0,31,0,126,0,31,128,126,0,15,128,124,0,15,128,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,7,192,0, - 0,7,192,0,0,15,192,0,0,15,192,0,0,15,192,252, - 0,15,128,252,0,31,128,254,0,31,128,126,0,63,0,127, - 0,127,0,127,192,254,0,63,255,252,0,31,255,248,0,15, - 255,240,0,3,255,224,0,0,127,0,0,27,43,172,32,3, - 0,0,127,240,0,1,255,252,0,3,255,254,0,7,255,255, - 0,15,240,63,0,31,192,31,128,31,128,15,128,63,0,15, - 192,63,0,15,192,126,0,7,192,126,0,0,0,126,0,0, - 0,124,0,0,0,124,0,0,0,124,0,0,0,124,0,0, - 0,124,15,224,0,124,63,248,0,124,255,254,0,124,255,255, - 0,125,255,255,128,127,224,127,128,127,192,31,192,255,128,15, - 192,255,0,7,192,255,0,7,224,254,0,7,224,254,0,7, - 224,254,0,3,224,254,0,3,224,254,0,3,224,254,0,7, - 224,254,0,7,224,126,0,7,224,127,0,7,192,63,0,15, - 192,63,192,31,128,31,224,127,128,15,255,255,0,7,255,254, - 0,3,255,252,0,0,255,240,0,0,63,192,0,26,42,168, - 32,3,0,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,255,255,255,192,0,0,7,192,0,0,15,192,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,31,0,0, - 0,63,0,0,0,63,0,0,0,126,0,0,0,126,0,0, - 0,124,0,0,0,252,0,0,0,252,0,0,1,248,0,0, - 1,248,0,0,1,248,0,0,3,240,0,0,3,240,0,0, - 7,224,0,0,7,224,0,0,15,224,0,0,15,192,0,0, - 15,192,0,0,31,128,0,0,31,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,127,0,0,0,126,0,0,0, - 254,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,3,240,0,0,27,43,172,32,2, - 0,0,255,224,0,3,255,252,0,15,255,254,0,31,255,255, - 0,63,255,255,128,63,128,63,192,127,0,31,192,126,0,15, - 192,126,0,7,192,126,0,7,192,124,0,7,192,124,0,7, - 192,126,0,7,192,62,0,15,192,63,0,15,128,31,128,31, - 0,15,224,127,0,7,255,254,0,3,255,248,0,0,255,240, - 0,3,255,248,0,15,255,254,0,31,224,127,0,63,128,31, - 128,62,0,15,128,126,0,7,192,124,0,7,224,124,0,3, - 224,252,0,3,224,248,0,3,224,248,0,3,224,252,0,3, - 224,252,0,3,224,252,0,7,224,254,0,7,224,126,0,15, - 224,127,0,31,192,63,192,127,192,63,255,255,128,31,255,255, - 0,7,255,254,0,1,255,248,0,0,63,192,0,27,43,172, - 32,3,0,1,255,240,0,7,255,252,0,15,255,254,0,31, - 255,255,0,63,255,255,128,63,128,63,128,126,0,31,192,126, - 0,15,192,124,0,15,192,252,0,15,224,252,0,7,224,252, - 0,7,224,248,0,7,224,248,0,7,224,248,0,7,224,252, - 0,7,224,252,0,7,224,124,0,15,224,124,0,15,224,126, - 0,31,224,63,0,63,224,63,192,251,224,31,255,243,224,15, - 255,243,224,3,255,195,224,0,255,7,224,0,0,7,224,0, - 0,7,224,0,0,7,192,0,0,7,192,0,0,7,192,0, - 0,15,192,124,0,15,192,124,0,15,128,62,0,31,128,62, - 0,63,128,63,0,127,0,31,193,254,0,31,255,254,0,15, - 255,252,0,7,255,248,0,3,255,224,0,0,127,128,0,6, - 29,29,16,6,0,252,252,252,252,252,252,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,252,252,252,252,252, - 252,252}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--68-680-72-72-P-317-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=250 - Font Bounding box w=92 h=89 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur49n[2683] U8G_FONT_SECTION("u8g_font_fur49n") = { - 0,92,89,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,26,104,45,9,23,0,192,96,0,3,192,120,0,15, - 192,126,0,7,224,252,0,3,224,248,0,1,241,240,0,1, - 241,240,0,0,251,224,0,0,123,192,0,0,59,128,0,224, - 63,128,224,255,255,255,224,255,255,255,224,255,255,255,224,255, - 159,63,224,128,63,128,32,0,123,192,0,0,123,192,0,0, - 241,224,0,1,241,240,0,3,241,248,0,3,224,248,0,7, - 224,252,0,15,192,124,0,3,192,120,0,0,128,32,0,41, - 41,246,69,14,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,255,255,255,255,255,128,255,255,255, - 255,255,128,255,255,255,255,255,128,255,255,255,255,255,128,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,12,17,34,19,3, - 247,15,240,15,240,15,224,15,224,31,224,31,192,31,192,31, - 128,63,128,63,0,63,0,62,0,126,0,126,0,124,0,124, - 0,248,0,16,6,12,22,3,14,255,255,255,255,255,255,255, - 255,255,255,255,255,7,8,8,19,7,0,254,254,254,254,254, - 254,254,254,21,54,162,27,3,252,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,31,51,204,38,3, - 255,0,31,240,0,0,127,252,0,1,255,255,0,3,255,255, - 128,7,255,255,192,15,255,255,224,31,240,31,240,31,192,15, - 240,63,128,7,248,63,128,3,248,63,0,1,248,127,0,1, - 252,126,0,1,252,126,0,0,252,126,0,0,252,254,0,0, - 252,254,0,0,254,252,0,0,254,252,0,0,254,252,0,0, - 254,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,254,254,0,0,254,254,0,0, - 254,254,0,0,254,254,0,0,254,126,0,0,254,126,0,0, - 252,126,0,0,252,127,0,1,252,127,0,1,252,63,0,1, - 252,63,128,3,248,63,128,3,248,31,192,7,248,31,224,15, - 240,15,248,63,240,15,255,255,224,7,255,255,192,3,255,255, - 128,1,255,255,0,0,127,252,0,0,15,240,0,16,49,98, - 38,9,0,0,127,0,255,1,255,3,255,7,255,31,255,63, - 255,127,255,255,255,255,63,252,63,240,63,192,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,29,50,200,38,4,0,0,31,224,0,0, - 255,252,0,3,255,255,0,7,255,255,128,15,255,255,192,31, - 255,255,224,31,240,31,224,63,224,7,240,63,192,3,240,63, - 128,3,248,127,128,3,248,127,0,1,248,127,0,1,248,127, - 0,1,248,127,0,1,248,0,0,1,248,0,0,1,248,0, - 0,3,248,0,0,3,248,0,0,7,240,0,0,7,240,0, - 0,15,224,0,0,31,224,0,0,63,192,0,0,127,128,0, - 0,127,0,0,0,255,0,0,1,254,0,0,3,252,0,0, - 7,248,0,0,15,240,0,0,31,240,0,0,63,224,0,0, - 127,192,0,0,127,128,0,0,255,0,0,1,254,0,0,3, - 252,0,0,7,248,0,0,15,248,0,0,31,240,0,0,63, - 224,0,0,127,192,0,0,255,128,0,0,255,0,0,0,255, - 255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255, - 255,255,248,31,51,204,38,3,255,0,31,240,0,0,255,254, - 0,1,255,255,128,3,255,255,192,7,255,255,224,15,248,31, - 240,31,224,7,248,31,192,3,248,63,192,1,252,63,128,0, - 252,63,128,0,252,127,0,0,252,127,0,0,252,127,0,0, - 252,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,7,240,0,0,31,224,0,0,255, - 192,0,31,255,128,0,31,254,0,0,31,252,0,0,31,255, - 0,0,31,255,192,0,0,255,224,0,0,15,240,0,0,7, - 248,0,0,3,252,0,0,1,252,0,0,0,254,0,0,0, - 254,0,0,0,126,0,0,0,126,0,0,0,126,254,0,0, - 126,254,0,0,126,255,0,0,126,255,0,0,254,127,0,0, - 254,127,128,1,252,127,128,3,252,63,224,7,248,31,248,31, - 240,15,255,255,224,7,255,255,192,3,255,255,128,0,255,254, - 0,0,31,240,0,34,50,250,38,2,0,0,0,15,240,0, - 0,0,15,240,0,0,0,31,240,0,0,0,63,240,0,0, - 0,63,240,0,0,0,127,240,0,0,0,255,240,0,0,0, - 255,240,0,0,1,251,240,0,0,3,251,240,0,0,3,243, - 240,0,0,7,227,240,0,0,15,227,240,0,0,15,195,240, - 0,0,31,131,240,0,0,63,131,240,0,0,63,3,240,0, - 0,126,3,240,0,0,254,3,240,0,1,252,3,240,0,1, - 248,3,240,0,3,248,3,240,0,7,240,3,240,0,7,224, - 3,240,0,15,224,3,240,0,31,192,3,240,0,31,128,3, - 240,0,63,128,3,240,0,127,0,3,240,0,126,0,3,240, - 0,252,0,3,240,0,252,0,3,240,0,255,255,255,255,192, - 255,255,255,255,192,255,255,255,255,192,255,255,255,255,192,255, - 255,255,255,192,255,255,255,255,192,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,240,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,3,240,0,0,0,3,240,0, - 0,0,3,240,0,30,50,200,38,4,255,63,255,255,224,63, - 255,255,224,63,255,255,224,63,255,255,224,63,255,255,224,63, - 255,255,224,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,3,248,0,63, - 31,254,0,63,63,255,128,63,127,255,192,63,255,255,224,63, - 248,31,224,63,224,7,240,63,192,3,240,63,128,3,248,63, - 0,1,248,63,0,1,252,62,0,1,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,254, - 0,1,252,254,0,1,248,254,0,1,248,255,0,3,248,127, - 0,3,240,127,128,7,224,127,192,15,224,63,240,63,192,31, - 255,255,128,15,255,255,0,7,255,254,0,1,255,248,0,0, - 31,224,0,31,51,204,38,3,255,0,7,248,0,0,63,255, - 0,0,255,255,192,1,255,255,224,3,255,255,240,7,252,15, - 240,15,248,7,248,31,224,3,248,31,192,1,252,63,192,1, - 252,63,128,0,252,63,0,0,252,127,0,0,252,127,0,0, - 0,127,0,0,0,126,0,0,0,126,0,0,0,126,0,0, - 0,126,0,0,0,126,0,0,0,126,7,252,0,126,31,255, - 0,126,63,255,192,126,127,255,224,126,255,255,240,127,252,15, - 248,127,240,3,248,255,192,1,252,255,192,1,252,255,128,0, - 254,255,128,0,254,255,0,0,126,255,0,0,126,255,0,0, - 126,255,0,0,126,255,0,0,126,255,0,0,126,255,0,0, - 126,127,0,0,126,127,0,0,126,127,128,0,254,63,128,0, - 252,63,128,1,252,31,192,1,252,31,224,3,248,15,248,15, - 240,7,255,255,224,3,255,255,192,1,255,255,128,0,127,254, - 0,0,15,248,0,30,49,196,38,4,0,255,255,255,252,255, - 255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,0, - 0,0,252,0,0,1,252,0,0,1,252,0,0,1,248,0, - 0,3,248,0,0,3,240,0,0,7,240,0,0,7,240,0, - 0,7,224,0,0,15,224,0,0,15,224,0,0,31,192,0, - 0,31,192,0,0,31,128,0,0,63,128,0,0,63,128,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,254,0,0, - 0,254,0,0,0,254,0,0,1,252,0,0,1,252,0,0, - 3,248,0,0,3,248,0,0,3,248,0,0,7,240,0,0, - 7,240,0,0,15,240,0,0,15,224,0,0,15,224,0,0, - 31,192,0,0,31,192,0,0,63,192,0,0,63,128,0,0, - 63,128,0,0,127,128,0,0,127,0,0,0,127,0,0,0, - 254,0,0,0,254,0,0,1,254,0,0,1,252,0,0,32, - 51,204,38,3,255,0,15,248,0,0,127,255,0,1,255,255, - 128,3,255,255,224,7,255,255,240,15,248,31,248,31,224,7, - 252,31,192,1,252,63,128,1,252,63,128,0,254,63,0,0, - 254,63,0,0,254,63,0,0,126,63,0,0,126,63,0,0, - 126,63,0,0,254,63,0,0,252,31,128,0,252,31,128,1, - 248,15,192,3,248,15,224,7,240,7,248,31,224,3,255,255, - 192,0,255,255,128,0,127,254,0,1,255,255,128,3,255,255, - 192,15,248,15,240,31,192,3,248,31,128,1,248,63,0,0, - 252,127,0,0,126,126,0,0,126,126,0,0,126,254,0,0, - 127,252,0,0,63,252,0,0,63,252,0,0,63,254,0,0, - 127,254,0,0,127,254,0,0,127,254,0,0,127,127,0,0, - 254,127,128,1,254,63,192,3,252,63,240,15,252,31,255,255, - 248,15,255,255,240,3,255,255,192,0,255,255,0,0,15,248, - 0,31,51,204,38,3,255,0,31,248,0,0,255,255,0,3, - 255,255,192,7,255,255,224,15,255,255,240,31,240,31,248,63, - 192,7,248,63,128,3,252,127,0,1,252,126,0,1,252,126, - 0,0,254,254,0,0,254,254,0,0,254,252,0,0,254,252, - 0,0,254,252,0,0,254,252,0,0,254,252,0,0,254,254, - 0,0,254,254,0,0,254,254,0,0,254,126,0,1,254,127, - 0,1,254,63,128,3,254,63,192,7,254,31,240,31,254,31, - 255,255,126,15,255,254,126,7,255,252,126,1,255,248,126,0, - 63,224,126,0,0,0,126,0,0,0,126,0,0,0,126,0, - 0,0,254,0,0,0,252,0,0,0,252,0,0,0,252,126, - 0,0,252,127,0,1,248,63,0,1,248,63,0,3,248,63, - 0,7,240,63,128,7,240,31,192,31,224,31,224,63,224,15, - 255,255,192,7,255,255,128,3,255,255,0,1,255,252,0,0, - 63,224,0,7,34,34,19,7,0,254,254,254,254,254,254,254, - 254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,254,254,254,254,254,254,254}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=11 dx=16 dy= 0 ascent=16 len=34 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11[4313] U8G_FONT_SECTION("u8g_font_gdb11") = { - 0,27,26,247,250,11,2,67,5,71,32,255,252,16,251,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,4,0,0,3,13,13,6,1,251,96,224,64, - 64,64,64,96,96,96,96,96,96,192,7,11,11,9,1,0, - 16,24,126,148,144,144,144,210,124,16,16,8,11,11,9,1, - 0,30,34,98,96,96,252,96,96,97,127,158,7,7,7,9, - 1,2,132,126,68,68,68,68,254,10,11,22,9,255,0,227, - 192,113,0,51,0,58,0,26,0,30,0,12,0,127,128,12, - 0,12,0,30,0,1,19,19,4,2,252,128,128,128,128,128, - 128,128,128,0,0,0,128,128,128,128,128,128,128,128,7,13, - 13,9,1,0,112,152,144,240,252,158,130,98,60,12,68,100, - 124,6,3,3,7,0,9,196,204,140,11,12,24,13,1,0, - 31,0,32,128,79,64,147,32,146,32,144,32,144,32,144,32, - 137,32,78,64,32,128,31,0,5,6,6,5,0,5,112,208, - 176,144,248,240,7,8,8,9,1,0,18,38,108,220,220,108, - 38,18,7,4,4,9,1,1,254,2,2,2,6,1,1,6, - 0,4,252,6,7,7,6,0,6,120,72,188,188,180,104,120, - 7,1,1,9,1,11,254,4,4,4,6,1,7,112,144,144, - 224,7,8,8,7,0,1,16,16,254,16,16,16,0,254,4, - 7,7,6,1,5,112,208,16,32,64,144,240,4,7,7,6, - 1,5,48,80,144,48,16,144,224,4,4,4,6,2,9,112, - 96,192,128,9,12,24,10,1,252,227,0,99,0,99,0,99, - 0,99,0,99,0,127,128,91,0,64,0,64,0,96,0,112, - 0,10,13,26,11,0,254,63,192,98,128,194,128,194,128,98, - 128,62,128,2,128,2,128,2,128,2,128,2,128,2,128,7, - 192,3,3,3,4,0,5,224,224,192,2,4,4,4,2,252, - 192,64,64,192,4,7,7,6,1,5,32,224,32,32,32,32, - 240,4,6,6,5,0,5,96,144,144,144,96,240,8,8,8, - 9,1,0,136,76,102,55,55,102,76,136,10,11,22,11,1, - 0,192,192,65,128,65,0,66,0,68,0,172,0,8,128,19, - 128,50,128,99,192,197,192,9,11,22,11,1,0,192,128,65, - 0,66,0,66,0,68,0,168,0,25,128,18,128,33,0,98, - 128,199,128,11,11,22,11,0,0,96,96,80,192,32,128,17, - 0,146,0,230,0,4,64,9,192,25,64,49,224,98,224,6, - 13,13,8,1,251,56,56,48,16,16,16,32,96,192,196,204, - 204,112,11,16,32,11,0,0,16,0,24,0,12,0,6,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,16,32,11,0,0,1,0, - 3,128,6,0,12,0,0,0,6,0,14,0,14,0,11,0, - 19,0,19,0,63,128,33,128,33,192,96,192,241,224,11,16, - 32,11,0,0,4,0,14,0,31,0,17,0,0,128,6,0, - 14,0,14,0,11,0,19,0,19,0,63,128,33,128,33,192, - 96,192,241,224,11,15,30,11,0,0,12,128,31,128,39,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,15,30,11,0,0,16,128, - 49,128,49,128,0,0,6,0,14,0,14,0,11,0,19,0, - 19,0,63,128,33,128,33,192,96,192,241,224,11,16,32,11, - 0,0,6,0,10,0,10,0,14,0,0,0,6,0,14,0, - 14,0,11,0,19,0,19,0,63,128,33,128,33,192,96,192, - 241,224,14,11,22,15,0,0,15,252,7,140,5,136,13,128, - 9,128,31,248,25,128,17,128,49,132,33,132,243,252,9,15, - 30,10,0,252,31,0,99,0,64,0,192,0,192,0,192,0, - 192,0,192,0,96,0,112,128,31,0,4,0,2,0,6,0, - 28,0,9,16,32,9,0,0,32,0,48,0,24,0,4,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,9,16,32,9,0,0,2,0, - 7,0,14,0,24,0,0,0,255,0,49,0,49,0,48,0, - 48,0,63,0,48,0,48,0,48,128,48,128,255,128,9,16, - 32,9,0,0,8,0,28,0,30,0,35,0,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,15,30,9,0,0,33,0,97,0,99,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,5,16,16,6,0,0,64,224, - 112,16,8,120,48,48,48,48,48,48,48,48,48,120,5,16, - 16,6,1,0,16,56,112,192,0,240,96,96,96,96,96,96, - 96,96,96,240,6,16,16,6,0,0,48,112,120,204,0,120, - 48,48,48,48,48,48,48,48,48,120,7,15,15,6,255,0, - 66,194,194,0,60,24,24,24,24,24,24,24,24,24,60,9, - 11,22,11,1,0,254,0,99,0,97,0,97,128,97,128,249, - 128,97,128,97,128,97,0,99,0,252,0,10,15,30,12,1, - 0,25,0,63,0,46,0,0,0,225,192,96,128,112,128,120, - 128,92,128,76,128,70,128,71,128,67,128,65,128,225,128,10, - 16,32,11,0,0,16,0,24,0,12,0,2,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,16,32,11,0,0,1,0,3,128,6, - 0,12,0,0,0,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,10,16,32,11,0, - 0,4,0,14,0,31,0,17,128,0,0,30,0,33,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,0,30, - 0,10,15,30,11,0,0,12,128,31,128,39,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,15,30,11,0,0,16,128,49,128,49, - 128,0,0,30,0,33,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,0,30,0,6,6,6,8,1,2,140, - 216,112,112,216,140,10,11,22,11,0,0,31,192,35,128,99, - 128,195,192,198,192,204,192,216,192,240,192,113,128,113,0,254, - 0,10,16,32,12,1,0,16,0,56,0,28,0,6,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,12,1,0,2,0,7, - 0,14,0,24,0,0,0,241,192,96,128,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,49,0,30,0,10,16,32, - 12,1,0,12,0,14,0,30,0,51,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,49, - 0,30,0,10,15,30,12,1,0,33,0,33,128,33,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,11,1,0,4,0,7, - 0,12,0,24,0,0,0,227,192,113,128,49,0,59,0,26, - 0,14,0,12,0,12,0,12,0,12,0,30,0,8,11,11, - 10,1,0,240,96,126,99,99,99,99,98,124,96,240,9,13, - 26,11,1,0,14,0,49,128,33,128,97,128,97,0,102,0, - 104,0,100,0,103,0,97,128,104,128,104,128,239,0,8,13, - 13,9,1,0,96,48,16,8,0,60,102,198,30,102,198,207, - 118,8,13,13,9,1,0,12,28,24,48,0,60,102,198,30, - 102,198,207,118,8,13,13,9,1,0,16,56,108,198,0,60, - 102,198,30,102,198,207,118,8,12,12,9,1,0,114,252,0, - 0,60,102,198,30,102,198,207,118,8,12,12,9,1,0,194, - 198,134,0,60,102,198,30,102,198,207,118,8,13,13,9,1, - 0,24,40,40,48,0,60,102,198,30,102,198,207,118,11,8, - 16,13,1,0,61,192,102,32,196,32,63,224,68,0,198,32, - 255,192,115,128,7,12,12,8,1,252,62,70,196,192,192,192, - 102,56,16,8,24,48,7,13,13,9,1,0,96,48,24,8, - 0,60,70,198,254,192,192,98,60,7,13,13,9,1,0,12, - 14,24,48,0,60,70,198,254,192,192,98,60,7,13,13,9, - 1,0,24,56,108,66,0,60,70,198,254,192,192,98,60,7, - 12,12,9,1,0,66,198,194,0,60,70,198,254,192,192,98, - 60,5,13,13,5,0,0,224,96,48,16,0,48,112,48,48, - 48,48,48,120,5,13,13,5,1,0,48,56,96,64,128,96, - 224,96,96,96,96,96,240,6,13,13,5,0,0,48,112,216, - 132,0,48,112,48,48,48,48,48,120,7,12,12,5,255,0, - 66,194,194,0,24,56,24,24,24,24,24,60,7,13,13,9, - 1,0,112,62,56,108,4,62,78,198,198,198,196,76,56,9, - 12,24,10,1,0,57,0,126,0,0,0,0,0,110,0,255, - 0,115,0,99,0,99,0,99,0,99,0,247,128,7,13,13, - 9,1,0,112,48,24,8,0,56,68,198,198,198,198,68,56, - 7,13,13,9,1,0,14,12,24,16,0,56,68,198,198,198, - 198,68,56,7,13,13,9,1,0,24,60,44,66,0,56,68, - 198,198,198,198,68,56,7,12,12,9,1,0,50,124,128,0, - 56,68,198,198,198,198,68,56,7,12,12,9,1,0,66,194, - 66,0,56,68,198,198,198,198,68,56,7,6,6,8,0,2, - 16,16,0,126,144,16,7,9,9,9,1,0,2,58,68,206, - 214,230,230,68,248,10,13,26,10,0,0,24,0,56,0,12, - 0,4,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,7,0,6,0,12, - 0,8,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,12,0,30,0,18, - 0,33,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,12,24,10,0,0,33,0,33,128,33, - 0,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,10,17,34,9,255,252,3,0,3,128,6,0,4, - 0,8,0,121,192,48,128,25,128,25,0,15,0,14,0,14, - 0,6,0,4,0,12,0,120,0,240,0,8,18,18,10,1, - 252,96,224,96,96,96,96,110,127,97,97,97,97,98,124,96, - 96,96,240,10,16,32,9,255,252,16,128,48,128,48,128,0, - 0,121,192,48,128,25,128,25,0,15,0,14,0,14,0,6, - 0,4,0,12,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx=10 dy= 0 ascent=14 len=17 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11n[278] U8G_FONT_SECTION("u8g_font_gdb11n") = { - 0,27,26,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=32 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11r[2001] U8G_FONT_SECTION("u8g_font_gdb11r") = { - 0,27,26,247,250,11,2,67,5,71,32,127,252,15,252,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12[4626] U8G_FONT_SECTION("u8g_font_gdb12") = { - 0,29,28,246,249,12,2,113,5,210,32,255,252,17,251,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,5,0,0,3,14,14,6,1,251,96,224,64,0,96,96, - 96,96,96,96,96,96,96,64,7,12,12,10,2,0,16,16, - 62,86,144,144,144,144,86,124,16,16,9,11,22,10,0,0, - 15,128,49,128,49,0,112,0,112,0,254,0,112,0,112,0, - 96,128,123,128,255,0,8,7,7,10,1,2,255,66,66,66, - 66,102,255,10,11,22,10,0,0,227,192,113,0,51,0,26, - 0,26,0,12,0,127,128,12,0,12,0,12,0,30,0,1, - 20,20,4,2,252,128,128,128,128,128,128,128,128,128,0,0, - 128,128,128,128,128,128,128,128,128,8,13,13,10,1,0,120, - 152,136,240,190,135,193,113,62,14,34,50,62,6,3,3,7, - 0,10,236,252,220,12,13,26,14,1,0,15,0,48,192,64, - 32,143,32,145,16,145,16,144,16,144,16,144,16,136,160,79, - 32,32,64,31,128,5,7,7,5,0,5,112,208,112,144,248, - 0,240,8,9,9,10,1,0,17,34,102,204,220,204,102,34, - 17,8,4,4,10,1,2,255,1,1,1,6,1,1,7,0, - 4,252,7,7,7,7,0,7,56,68,186,170,178,108,56,8, - 2,2,9,1,11,255,254,5,5,5,7,1,7,112,136,136, - 136,112,8,9,9,8,0,1,8,8,8,127,8,8,8,0, - 255,4,7,7,7,2,6,112,208,16,32,64,144,240,5,7, - 7,6,0,6,56,104,8,24,8,136,112,4,4,4,6,2, - 10,48,96,192,128,10,13,26,11,1,252,99,0,227,0,99, - 0,99,0,99,0,99,0,103,0,127,128,91,64,64,0,64, - 0,96,0,112,0,9,14,28,11,1,254,63,128,101,0,197, - 0,197,0,197,0,101,0,61,0,5,0,5,0,5,0,5, - 0,5,0,5,0,15,128,3,3,3,4,0,5,224,224,192, - 3,4,4,4,1,252,64,96,96,192,5,7,7,7,1,6, - 32,224,32,32,32,32,248,4,7,7,5,0,5,96,144,144, - 144,96,0,240,8,9,9,10,1,0,136,76,102,55,51,55, - 102,76,136,11,11,22,12,1,0,64,64,192,128,65,0,67, - 0,70,0,228,0,8,192,25,64,50,64,35,224,192,224,10, - 11,22,12,1,0,64,64,192,128,65,0,65,0,66,0,228, - 192,9,64,26,128,16,128,33,64,99,192,11,11,22,11,0, - 0,96,32,208,64,32,128,145,128,227,0,2,0,4,192,13, - 64,25,64,19,224,96,224,7,14,14,9,1,251,56,56,48, - 0,16,16,16,32,96,192,194,198,196,120,12,16,32,12,0, - 0,24,0,28,0,3,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,12,16,32,12,0,0,1,0,7,128,12,0,0,0,6, - 0,14,0,15,0,11,0,27,0,19,128,17,128,63,128,33, - 192,32,192,96,224,241,240,12,16,32,12,0,0,6,0,15, - 0,16,128,0,0,6,0,14,0,15,0,11,0,27,0,19, - 128,17,128,63,128,33,192,32,192,96,224,241,240,12,16,32, - 12,0,0,12,192,31,128,35,0,0,0,6,0,14,0,15, - 0,11,0,27,0,19,128,17,128,63,128,33,192,32,192,96, - 224,241,240,12,16,32,12,0,0,27,0,27,128,27,0,0, - 0,6,0,14,0,15,0,11,0,27,0,19,128,17,128,63, - 128,33,192,32,192,96,224,241,240,12,17,34,12,0,0,6, - 0,9,0,17,0,14,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,15,12,24,15,0,0,31,252,5,132,5,132,13,128,9, - 128,31,248,17,144,17,128,49,128,33,130,97,132,243,252,9, - 16,32,11,1,252,31,0,99,128,65,0,192,0,192,0,192, - 0,192,0,192,0,192,0,96,128,59,128,30,0,8,0,6, - 0,14,0,28,0,10,16,32,10,0,0,48,0,56,0,6, - 0,0,0,255,128,48,128,48,128,48,0,48,0,63,0,50, - 0,48,0,48,0,48,64,48,128,255,128,10,16,32,10,0, - 0,3,0,7,0,24,0,0,0,255,128,48,128,48,128,48, - 0,48,0,63,0,50,0,48,0,48,0,48,64,48,128,255, - 128,10,16,32,10,0,0,12,0,30,0,33,0,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,10,16,32,10,0,0,51,0,63, - 0,54,0,0,0,255,128,48,128,48,128,48,0,48,0,63, - 0,50,0,48,0,48,0,48,64,48,128,255,128,5,16,16, - 6,0,0,192,224,24,0,120,48,48,48,48,48,48,48,48, - 48,48,120,5,16,16,6,1,0,24,56,192,0,240,96,96, - 96,96,96,96,96,96,96,96,240,6,16,16,6,0,0,48, - 120,132,0,120,48,48,48,48,48,48,48,48,48,48,120,6, - 16,16,6,0,0,204,252,216,0,120,48,48,48,48,48,48, - 48,48,48,48,120,10,12,24,12,1,0,254,0,99,128,97, - 128,96,192,96,192,248,192,96,192,96,192,96,192,97,128,99, - 0,254,0,11,16,32,13,1,0,28,128,63,0,39,0,0, - 0,224,224,112,64,112,64,120,64,92,64,78,64,78,64,71, - 64,67,192,65,192,65,192,224,192,10,16,32,12,1,0,48, - 0,56,0,6,0,0,0,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,128,96,128,97,0,30,0,10, - 16,32,12,1,0,2,0,15,0,24,0,0,0,30,0,33, - 128,65,128,64,192,192,192,192,192,192,192,192,192,192,128,96, - 128,97,0,30,0,10,16,32,12,1,0,12,0,30,0,33, - 0,0,0,30,0,33,128,65,128,64,192,192,192,192,192,192, - 192,192,192,192,128,96,128,97,0,30,0,10,16,32,12,1, - 0,25,128,63,0,70,0,0,0,30,0,33,128,65,128,64, - 192,192,192,192,192,192,192,192,192,192,128,96,128,97,0,30, - 0,10,16,32,12,1,0,55,0,55,0,54,0,0,0,30, - 0,33,128,65,128,64,192,192,192,192,192,192,192,192,192,192, - 128,96,128,97,0,30,0,6,6,6,8,1,2,132,72,48, - 48,72,132,10,12,24,12,1,0,30,192,33,128,97,128,67, - 192,198,192,196,192,200,192,216,192,240,128,97,128,97,0,222, - 0,11,16,32,13,1,0,16,0,60,0,6,0,0,0,240, - 224,96,64,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,128,48,128,31,0,11,16,32,13,1,0,3,0,7, - 128,12,0,0,0,240,224,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,128,48,128,31,0,11,16,32, - 13,1,0,12,0,30,0,49,0,0,128,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,128,48, - 128,31,0,11,16,32,13,1,0,27,0,63,0,51,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,128,48,128,31,0,11,16,32,12,0,0,1, - 0,7,128,12,0,0,0,241,224,48,192,24,128,29,128,13, - 0,15,0,6,0,6,0,6,0,6,0,6,0,15,0,9, - 12,24,11,1,0,248,0,96,0,126,0,99,0,97,128,97, - 128,97,128,97,128,113,0,110,0,96,0,248,0,9,14,28, - 12,1,0,14,0,51,0,33,128,97,128,97,128,103,0,108, - 0,108,0,102,0,99,0,97,128,104,128,104,128,239,0,8, - 14,14,9,1,0,112,48,24,8,0,60,102,198,14,126,198, - 198,207,118,8,14,14,9,1,0,14,12,24,48,0,60,102, - 198,14,126,198,198,207,118,8,14,14,9,1,0,24,60,108, - 66,0,60,102,198,14,126,198,198,207,118,8,13,13,9,1, - 0,114,126,140,0,60,102,198,14,126,198,198,207,118,8,13, - 13,9,1,0,108,110,108,0,60,102,198,14,126,198,198,207, - 118,8,14,14,9,1,0,56,68,72,56,0,60,102,198,14, - 126,198,198,207,118,12,9,18,14,1,0,29,192,111,32,198, - 48,166,48,63,240,70,0,199,16,251,224,113,192,8,13,13, - 9,1,252,62,70,196,192,192,192,194,127,60,16,12,28,48, - 7,14,14,9,1,0,112,48,24,8,0,60,100,198,198,254, - 192,226,124,56,7,14,14,9,1,0,14,12,24,16,0,60, - 100,198,198,254,192,226,124,56,7,14,14,9,1,0,24,60, - 100,66,0,60,100,198,198,254,192,226,124,56,7,13,13,9, - 1,0,110,126,108,0,60,100,198,198,254,192,226,124,56,5, - 14,14,6,0,0,224,96,48,16,0,48,112,48,48,48,48, - 48,48,120,5,14,14,6,1,0,56,48,96,64,0,96,224, - 96,96,96,96,96,96,240,6,14,14,6,0,0,48,120,200, - 132,0,48,112,48,48,48,48,48,48,120,6,13,13,6,0, - 0,220,220,216,0,48,112,48,48,48,48,48,48,120,8,14, - 14,10,1,0,48,255,28,102,6,63,71,195,195,195,195,194, - 102,60,9,13,26,11,1,0,57,0,63,0,78,0,0,0, - 102,0,255,0,115,0,99,0,99,0,99,0,99,0,99,0, - 247,128,8,14,14,10,1,0,48,112,24,12,0,60,70,195, - 195,195,195,194,98,60,8,14,14,10,1,0,6,12,24,16, - 0,60,70,195,195,195,195,194,98,60,8,14,14,10,1,0, - 24,60,38,66,0,60,70,195,195,195,195,194,98,60,8,13, - 13,10,1,0,57,126,76,0,60,70,195,195,195,195,194,98, - 60,8,13,13,10,1,0,118,126,108,0,60,70,195,195,195, - 195,194,98,60,8,7,7,8,0,2,8,8,0,127,128,8, - 8,8,9,9,10,1,0,63,102,71,203,219,211,226,102,252, - 10,14,28,11,0,0,24,0,60,0,12,0,6,0,0,0, - 227,128,97,128,97,128,97,128,97,128,97,128,99,128,127,192, - 57,128,10,14,28,11,0,0,3,0,7,0,4,0,8,0, - 0,0,227,128,97,128,97,128,97,128,97,128,97,128,99,128, - 127,192,57,128,10,14,28,11,0,0,12,0,14,0,27,0, - 33,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,10,13,26,11,0,0,27,0,63,0, - 51,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,11,18,36,10,255,252,3,128,3,0, - 6,0,4,0,0,0,121,224,56,128,24,128,25,128,13,0, - 13,0,14,0,6,0,6,0,4,0,12,0,120,0,240,0, - 9,18,36,11,1,252,96,0,224,0,96,0,96,0,96,0, - 103,0,111,0,113,128,97,128,97,128,97,128,97,0,127,0, - 110,0,96,0,96,0,96,0,248,0,11,17,34,10,255,252, - 25,128,31,128,27,0,0,0,121,224,56,128,24,128,25,128, - 13,0,13,0,14,0,6,0,6,0,4,0,12,0,120,0, - 240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=18 x= 1 y= 7 dx=10 dy= 0 ascent=15 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12n[301] U8G_FONT_SECTION("u8g_font_gdb12n") = { - 0,29,28,246,249,12,0,0,0,0,42,58,0,15,252,12, - 0,7,7,7,8,1,7,48,180,222,48,222,148,48,7,7, - 7,8,1,2,16,16,16,254,16,16,16,3,6,6,5,1, - 252,96,224,96,96,64,128,6,1,1,7,0,4,252,3,3, - 3,5,1,0,224,224,192,9,18,36,9,0,253,1,128,3, - 0,3,0,3,0,6,0,6,0,4,0,12,0,12,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,192, - 0,8,11,11,10,1,0,60,102,66,195,195,195,195,195,66, - 98,60,7,12,12,10,1,0,8,120,152,24,24,24,24,24, - 24,24,24,254,7,11,11,9,1,0,60,102,230,6,4,8, - 16,34,66,126,254,7,11,11,9,1,0,60,102,230,6,8, - 28,6,6,6,140,120,8,12,12,9,0,0,6,14,14,22, - 22,38,102,70,255,6,6,31,7,11,11,10,1,0,126,124, - 64,64,124,134,6,6,6,134,124,8,12,12,10,1,0,14, - 56,112,96,192,254,195,195,195,195,98,60,8,11,11,10,1, - 0,255,254,130,6,4,12,8,24,24,48,96,8,11,11,10, - 1,0,60,102,102,102,124,62,71,195,195,195,60,8,11,11, - 10,1,0,60,70,195,195,195,195,63,2,6,12,112,3,9, - 9,5,1,0,224,224,192,0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12r[2190] U8G_FONT_SECTION("u8g_font_gdb12r") = { - 0,29,28,246,249,12,2,113,5,210,32,127,252,16,252,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14[6044] U8G_FONT_SECTION("u8g_font_gdb14") = { - 0,36,33,244,248,14,3,134,7,177,32,255,251,20,250,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,6,0,0, - 4,16,16,7,1,250,112,240,96,0,32,32,32,112,112,112, - 112,112,112,112,112,96,10,14,28,12,1,0,12,0,12,0, - 31,128,125,192,108,128,204,0,204,0,204,0,204,0,236,192, - 127,128,63,0,12,0,12,0,11,14,28,12,0,0,7,192, - 12,224,24,64,24,64,56,0,56,0,56,0,127,0,184,0, - 56,0,56,32,48,32,127,224,255,224,10,9,18,12,1,2, - 128,64,94,128,51,0,97,128,97,128,97,128,51,128,94,128, - 128,64,12,14,28,12,0,0,241,240,120,192,56,192,29,128, - 29,128,13,0,15,0,6,0,63,192,6,0,6,0,6,0, - 6,0,31,128,2,24,24,5,2,251,192,192,192,192,192,192, - 192,192,192,192,128,0,0,64,192,192,192,192,192,192,192,192, - 192,192,9,16,32,11,1,0,62,0,99,0,99,0,112,0, - 60,0,127,0,199,128,195,128,225,128,121,128,63,0,31,0, - 71,0,67,0,99,0,126,0,7,3,3,9,1,12,198,238, - 198,15,15,30,17,1,0,7,192,24,48,48,24,99,204,108, - 236,200,70,216,6,216,6,216,6,216,6,108,44,103,204,48, - 24,24,48,7,192,6,7,7,6,0,7,120,216,24,248,216, - 252,248,9,10,20,12,1,0,8,128,17,128,51,0,103,0, - 238,0,238,0,103,0,51,0,17,128,8,128,10,5,10,12, - 1,2,255,192,0,192,0,192,0,192,0,192,7,1,1,8, - 1,5,254,8,8,8,8,0,8,60,66,157,149,153,153,86, - 60,9,2,4,11,1,13,255,128,255,128,6,5,5,8,1, - 9,56,76,204,200,112,8,10,10,9,1,2,24,24,24,24, - 255,24,24,24,0,255,6,8,8,8,1,7,120,204,140,24, - 16,32,68,252,6,8,8,8,1,7,56,204,140,56,12,12, - 140,120,6,5,5,7,2,12,56,60,112,96,192,12,15,30, - 13,1,251,96,192,225,192,96,192,96,192,96,192,96,192,96, - 192,113,192,127,240,110,192,96,0,96,0,112,0,112,0,96, - 0,14,17,34,14,0,253,31,252,113,176,225,176,225,176,225, - 176,225,176,113,176,31,176,1,176,1,176,1,176,1,176,1, - 176,1,176,1,176,1,176,7,252,4,3,3,5,0,6,96, - 240,224,4,5,5,5,1,251,32,96,48,48,224,6,8,8, - 8,1,7,48,240,48,48,48,48,48,252,5,7,7,6,0, - 7,112,216,216,216,216,112,248,10,10,20,12,1,0,196,0, - 102,0,99,0,51,128,57,192,61,192,49,128,99,0,102,0, - 196,0,12,14,28,14,1,0,48,16,240,48,48,96,48,192, - 48,128,49,128,255,0,6,96,4,224,13,224,25,96,19,240, - 48,96,96,240,12,14,28,14,1,0,48,48,240,96,48,192, - 48,192,49,128,51,0,254,0,6,240,13,48,26,48,16,96, - 48,192,97,144,195,240,14,14,28,15,0,0,56,8,76,24, - 40,48,60,96,12,64,140,192,121,128,3,24,2,56,6,88, - 12,88,8,252,24,24,48,60,9,16,32,11,1,250,28,0, - 30,0,12,0,0,0,12,0,12,0,12,0,24,0,56,0, - 112,0,96,0,224,0,227,128,227,128,231,0,126,0,14,20, - 40,14,0,0,8,0,28,0,15,0,3,128,0,0,0,0, - 1,0,7,128,7,128,5,128,13,192,12,192,8,224,24,224, - 31,224,16,112,48,112,48,48,32,56,248,124,14,20,40,14, - 0,0,0,128,0,224,3,192,7,0,0,0,0,0,1,0, - 7,128,7,128,5,128,13,192,12,192,8,224,24,224,31,224, - 16,112,48,112,48,48,32,56,248,124,14,20,40,14,0,0, - 3,0,7,128,15,192,12,96,16,0,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,14,19,38,14,0,0,4,32, - 15,240,27,192,0,0,0,0,1,0,7,128,7,128,5,128, - 13,192,12,192,8,224,24,224,31,224,16,112,48,112,48,48, - 32,56,248,124,14,19,38,14,0,0,8,64,28,224,24,224, - 0,0,0,0,1,0,7,128,7,128,5,128,13,192,12,192, - 8,224,24,224,31,224,16,112,48,112,48,48,32,56,248,124, - 14,20,40,14,0,0,1,128,6,192,6,192,7,128,0,0, - 0,0,1,0,7,128,7,128,5,128,13,192,12,192,8,224, - 24,224,31,224,16,112,48,112,48,48,32,56,248,124,18,14, - 42,19,0,0,7,255,128,1,225,128,3,96,128,3,96,128, - 6,96,0,6,96,0,7,255,0,12,98,0,12,96,0,24, - 96,0,24,96,0,48,96,64,48,96,192,249,255,128,11,19, - 38,13,1,251,15,192,49,192,96,128,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,112,96,63,192,31,128, - 4,0,6,0,3,0,3,0,12,0,12,20,40,12,0,0, - 16,0,56,0,30,0,7,0,0,0,0,0,255,224,56,96, - 56,96,56,64,56,0,56,0,63,192,56,128,56,0,56,0, - 56,0,56,48,56,32,255,224,12,20,40,12,0,0,1,0, - 1,192,7,128,14,0,0,0,0,0,255,224,56,96,56,96, - 56,64,56,0,56,0,63,192,56,128,56,0,56,0,56,0, - 56,48,56,32,255,224,12,20,40,12,0,0,6,0,15,0, - 31,128,48,192,0,0,0,0,255,224,56,96,56,96,56,64, - 56,0,56,0,63,192,56,128,56,0,56,0,56,0,56,48, - 56,32,255,224,12,19,38,12,0,0,16,128,49,192,49,192, - 0,0,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 7,20,20,8,0,0,64,224,112,24,4,0,126,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,20,20,8,1,0, - 8,30,60,96,128,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,252,7,20,20,8,0,0,16,56,124,198,0,0, - 126,24,24,24,24,24,24,24,24,24,24,24,24,126,8,19, - 19,8,255,0,65,99,227,0,0,63,12,12,12,12,12,12, - 12,12,12,12,12,12,63,14,14,28,15,0,0,127,192,240, - 240,48,56,48,24,48,28,48,28,254,28,48,28,48,28,48, - 28,48,24,48,56,48,240,255,192,15,19,38,15,0,0,2, - 32,15,240,11,224,16,0,0,0,248,126,56,24,60,24,62, - 24,54,24,55,24,51,152,49,152,49,216,48,248,48,120,48, - 56,48,56,252,24,12,20,40,14,1,0,16,0,60,0,30, - 0,3,0,0,0,0,0,15,128,48,192,96,96,64,96,192, - 48,192,48,192,48,192,48,192,48,192,48,96,96,96,64,48, - 128,31,0,12,20,40,14,1,0,1,0,1,192,7,128,14, - 0,0,0,0,0,15,128,48,192,96,96,64,96,192,48,192, - 48,192,48,192,48,192,48,192,48,96,96,96,64,48,128,31, - 0,12,20,40,14,1,0,6,0,15,0,15,128,24,192,32, - 0,0,0,15,128,48,192,96,96,64,96,192,48,192,48,192, - 48,192,48,192,48,192,48,96,96,96,64,48,128,31,0,12, - 19,38,14,1,0,8,64,31,224,55,128,0,0,0,0,15, - 128,48,192,96,96,64,96,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,96,64,48,128,31,0,12,19,38,14,1, - 0,16,128,57,192,49,192,0,0,0,0,15,128,48,192,96, - 96,64,96,192,48,192,48,192,48,192,48,192,48,192,48,96, - 96,96,64,48,128,31,0,8,7,7,10,1,3,195,102,60, - 24,60,102,195,12,15,30,14,1,255,15,176,16,224,32,224, - 96,224,193,240,195,112,195,48,198,48,204,48,232,32,120,96, - 112,64,112,128,223,0,128,0,15,20,40,15,0,0,4,0, - 14,0,7,0,1,192,0,0,0,0,252,126,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,24, - 24,48,24,32,7,192,15,20,40,15,0,0,0,64,0,240, - 1,224,3,0,0,0,0,0,252,126,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,24,48, - 24,32,7,192,15,20,40,15,0,0,1,128,3,128,7,192, - 12,96,0,16,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,19,38,15,0,0,4,32,12,112,12,96,0,0, - 0,0,252,126,48,24,48,24,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,24,48,24,32,7,192,13,20, - 40,14,0,0,0,128,0,224,3,192,7,0,0,0,0,0, - 240,120,56,48,28,96,28,96,14,192,6,128,7,128,3,0, - 3,0,3,0,3,0,3,0,3,0,15,192,12,14,28,13, - 0,0,252,0,48,0,48,0,63,192,48,96,48,48,48,48, - 48,48,48,48,48,96,55,192,48,0,48,0,252,0,11,17, - 34,14,1,0,15,128,16,192,32,96,32,96,96,96,96,96, - 97,192,99,0,99,0,99,0,99,192,97,192,96,224,104,96, - 104,96,108,64,239,128,10,17,34,11,1,0,48,0,120,0, - 24,0,12,0,6,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,17, - 34,11,1,0,7,0,7,0,14,0,12,0,24,0,0,0, - 0,0,62,0,99,0,227,0,3,0,63,0,99,0,195,0, - 195,0,255,192,123,0,10,17,34,11,1,0,12,0,30,0, - 62,0,115,0,65,128,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,16, - 32,11,1,0,56,128,124,128,127,0,198,0,0,0,0,0, - 62,0,99,0,227,0,3,0,63,0,99,0,195,0,195,0, - 255,192,123,0,10,15,30,11,1,0,99,0,99,128,99,0, - 0,0,0,0,62,0,99,0,227,0,3,0,63,0,99,0, - 195,0,195,0,255,192,123,0,10,16,32,11,1,0,14,0, - 27,0,26,0,28,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,15,10, - 20,17,1,0,30,120,119,140,227,6,131,6,31,252,99,0, - 195,0,199,132,253,252,112,240,9,15,30,10,1,251,31,0, - 99,128,65,0,192,0,192,0,192,0,192,0,225,0,126,0, - 60,0,16,0,28,0,12,0,12,0,48,0,9,17,34,11, - 1,0,56,0,56,0,28,0,12,0,6,0,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,17,34,11,1,0,7,0,7,128,14,0, - 12,0,24,0,0,0,0,0,30,0,99,0,65,128,193,128, - 255,128,192,0,192,0,225,128,127,0,62,0,9,17,34,11, - 1,0,12,0,30,0,63,0,51,0,96,128,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,15,30,11,1,0,97,128,99,128,99,0, - 0,0,0,0,30,0,99,0,65,128,193,128,255,128,192,0, - 192,0,225,128,127,0,62,0,6,17,17,7,0,0,224,112, - 48,24,8,0,0,56,120,24,24,24,24,24,24,24,124,6, - 17,17,7,1,0,28,60,56,96,64,0,0,112,240,48,48, - 48,48,48,48,48,248,7,17,17,7,0,0,56,56,124,198, - 130,0,0,56,120,24,24,24,24,24,24,24,124,8,15,15, - 7,255,0,99,227,195,0,0,28,60,12,12,12,12,12,12, - 12,62,10,17,34,12,1,0,24,0,125,192,15,128,31,0, - 51,128,3,128,1,192,31,192,97,192,64,192,192,192,192,192, - 192,192,192,128,225,128,113,0,30,0,12,16,32,13,1,0, - 28,64,62,64,63,128,99,0,0,0,0,0,51,128,247,192, - 56,192,48,192,48,192,48,192,48,192,48,192,48,192,249,240, - 10,17,34,12,1,0,56,0,56,0,28,0,6,0,2,0, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,17,34,12,1,0,3,128, - 7,0,6,0,12,0,8,0,0,0,0,0,30,0,33,128, - 65,128,192,192,192,192,192,192,192,192,96,128,113,0,30,0, - 10,17,34,12,1,0,12,0,30,0,31,0,49,128,96,128, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,16,32,12,1,0,24,64, - 60,128,127,128,71,0,0,0,0,0,30,0,33,128,65,128, - 192,192,192,192,192,192,192,192,96,128,113,0,30,0,10,15, - 30,12,1,0,49,128,115,128,97,128,0,0,0,0,30,0, - 33,128,65,128,192,192,192,192,192,192,192,192,96,128,113,0, - 30,0,8,8,8,10,1,2,24,24,16,255,0,24,24,24, - 10,12,24,12,1,255,0,64,30,192,51,128,99,192,199,192, - 196,192,200,192,248,192,113,128,113,0,94,0,128,0,12,17, - 34,13,1,0,56,0,28,0,12,0,6,0,2,0,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,17,34,13,1,0,3,128,7,128, - 6,0,12,0,8,0,0,0,0,0,97,192,224,192,96,192, - 96,192,96,192,96,192,96,192,97,192,127,240,60,192,12,17, - 34,13,1,0,14,0,14,0,31,0,49,128,32,128,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,15,30,13,1,0,49,128,113,128, - 97,128,0,0,0,0,97,192,224,192,96,192,96,192,96,192, - 96,192,96,192,97,192,127,240,60,192,13,22,44,12,255,251, - 0,192,1,224,1,128,3,0,6,0,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0,11,22,44,13, - 1,251,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 51,128,63,192,56,224,48,96,48,96,48,96,48,96,48,192, - 63,128,55,0,48,0,48,0,48,0,48,0,252,0,13,20, - 40,12,255,251,24,96,28,224,24,192,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14n[464] U8G_FONT_SECTION("u8g_font_gdb14n") = { - 0,36,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,219,0,255,128,60, - 0,62,0,255,0,219,0,24,0,24,0,8,8,8,10,1, - 2,24,24,24,255,24,24,24,24,4,7,7,6,1,252,48, - 240,48,48,32,96,64,7,1,1,8,1,5,254,4,3,3, - 6,1,0,96,240,224,11,22,44,11,0,252,0,96,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,12,0,12,0,28,0,24,0,24,0,56,0,48,0, - 48,0,96,0,96,0,192,0,10,14,28,12,1,0,30,0, - 51,0,97,128,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,97,128,97,128,51,0,30,0,8,14,14,12,2,0, - 8,120,248,24,24,24,24,24,24,24,24,24,24,255,8,14, - 14,11,2,0,62,103,227,195,3,6,4,12,24,48,33,65, - 255,255,9,14,28,11,1,0,30,0,99,0,227,0,67,0, - 3,0,6,0,31,0,7,128,3,128,1,128,1,128,1,128, - 67,0,190,0,10,14,28,12,1,0,1,0,7,0,7,0, - 15,0,27,0,19,0,51,0,99,0,99,0,255,192,3,0, - 3,0,3,0,15,192,9,14,28,12,1,0,63,128,63,0, - 32,0,96,0,96,0,126,0,67,0,1,128,1,128,1,128, - 1,128,1,128,195,0,62,0,10,14,28,12,1,0,7,0, - 28,0,48,0,96,0,64,0,223,0,225,128,192,192,192,192, - 192,192,192,192,96,128,49,128,30,0,10,14,28,12,1,0, - 127,192,255,128,129,128,129,128,3,0,3,0,2,0,6,0, - 6,0,12,0,12,0,24,0,56,0,48,0,9,14,28,11, - 1,0,62,0,113,128,241,128,241,128,249,128,127,0,63,0, - 63,128,99,128,193,128,193,128,193,128,99,0,62,0,10,14, - 28,12,1,0,31,0,35,128,65,128,192,192,192,192,192,192, - 192,192,97,192,62,192,0,128,1,128,3,0,14,0,56,0, - 4,10,10,6,1,0,224,240,96,0,0,0,0,96,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14r[2842] U8G_FONT_SECTION("u8g_font_gdb14r") = { - 0,36,33,244,248,14,3,134,7,177,32,127,251,19,251,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17[7600] U8G_FONT_SECTION("u8g_font_gdb17") = { - 0,42,39,242,246,17,4,81,9,172,32,255,250,23,249,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,7,0,0,4,19,19,8,2,249, - 112,240,240,224,32,96,96,96,96,96,96,112,112,112,240,240, - 240,240,192,10,17,34,14,2,255,12,0,12,0,15,128,63, - 192,109,192,108,192,204,0,204,0,204,0,204,0,204,0,236, - 64,125,192,63,128,30,0,12,0,12,0,13,16,32,14,0, - 0,3,240,6,56,12,16,28,16,28,16,60,0,60,0,60, - 0,255,192,60,0,60,0,60,16,56,24,56,24,127,248,255, - 240,12,11,22,14,1,2,192,48,239,112,112,224,96,96,96, - 96,96,96,96,96,112,224,111,96,192,48,128,16,15,16,32, - 14,255,0,248,126,120,56,60,48,30,48,30,96,15,96,7, - 192,7,192,7,192,3,128,63,248,3,128,3,128,3,128,3, - 128,15,224,2,27,27,6,2,251,192,192,192,192,192,192,192, - 192,192,192,192,192,128,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,10,19,38,13,2,0,31,0,35,128,97,0, - 113,0,120,0,62,0,127,128,207,128,195,192,225,192,240,192, - 124,192,63,128,31,128,7,128,65,128,65,128,97,0,126,0, - 9,4,8,11,1,14,115,128,247,128,247,128,231,0,18,18, - 54,20,1,0,3,240,0,14,28,0,24,6,0,48,3,0, - 97,241,128,102,57,128,198,16,192,204,0,192,204,0,192,204, - 0,192,204,0,192,204,0,192,102,1,128,103,25,128,49,243, - 0,24,6,0,12,12,0,3,240,0,6,9,9,7,1,8, - 120,216,24,120,216,216,252,0,252,11,12,24,14,1,0,4, - 32,8,96,24,192,49,192,115,128,231,128,231,128,115,128,49, - 192,24,192,8,96,4,32,12,6,12,14,1,2,127,240,128, - 48,0,48,0,48,0,48,0,32,8,1,1,10,1,6,255, - 10,9,18,10,255,10,30,0,97,128,255,128,219,192,222,192, - 220,192,251,192,97,128,30,0,11,2,4,13,1,16,127,224, - 255,224,6,7,7,10,2,10,56,76,204,204,204,200,112,10, - 12,24,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,0,0,0,0,255,192,7,10,10, - 9,1,8,60,102,230,6,12,24,16,50,98,254,7,10,10, - 9,1,8,60,102,70,6,28,6,6,6,142,120,6,6,6, - 9,3,14,56,60,112,96,192,128,15,18,36,15,0,250,24, - 24,248,120,56,56,56,56,56,56,56,56,56,56,56,56,60, - 120,63,248,63,190,55,24,48,0,48,0,56,0,56,0,60, - 0,48,0,15,20,40,17,1,253,15,254,49,248,113,152,225, - 152,225,152,225,152,225,152,113,152,121,152,31,152,1,152,1, - 152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,7, - 254,4,4,4,6,1,7,112,240,240,224,5,6,6,6,1, - 250,32,96,120,56,112,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,7,9,9,8,0,8,56,76,198, - 198,198,228,120,0,254,11,12,24,14,2,0,132,0,198,0, - 99,0,115,128,57,192,61,224,61,224,57,192,115,128,99,0, - 198,0,132,0,15,16,32,17,1,0,48,6,240,12,48,24, - 48,48,48,48,48,96,48,192,253,128,1,140,3,28,6,44, - 12,44,12,76,24,254,48,12,96,62,15,16,32,17,1,0, - 48,6,240,12,48,24,48,24,48,48,48,96,48,192,252,192, - 1,188,3,102,6,70,6,12,12,8,24,16,48,34,112,126, - 15,16,32,17,1,0,56,6,204,12,12,24,56,48,12,48, - 12,96,140,192,121,128,1,140,3,28,6,60,12,44,12,76, - 24,254,48,12,96,62,10,19,38,12,1,249,14,0,30,0, - 30,0,28,0,0,0,6,0,6,0,6,0,14,0,12,0, - 24,0,56,0,112,0,224,0,224,192,225,192,225,192,243,128, - 62,0,17,23,69,17,0,0,6,0,0,15,0,0,7,128, - 0,1,192,0,0,96,0,0,0,0,0,192,0,1,192,0, - 3,192,0,3,224,0,2,224,0,6,240,0,6,112,0,6, - 112,0,12,120,0,12,56,0,15,248,0,24,28,0,24,28, - 0,16,28,0,48,14,0,48,14,0,252,63,128,17,23,69, - 17,0,0,0,48,0,0,120,0,1,224,0,3,128,0,2, - 0,0,0,0,0,0,192,0,1,192,0,3,192,0,3,224, - 0,2,224,0,6,240,0,6,112,0,6,112,0,12,120,0, - 12,56,0,15,248,0,24,28,0,24,28,0,16,28,0,48, - 14,0,48,14,0,252,63,128,17,23,69,17,0,0,1,192, - 0,3,224,0,7,240,0,14,48,0,8,24,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,22,66,17,0,0,7,140,0,15,248,0,15, - 240,0,16,96,0,0,0,0,0,192,0,1,192,0,3,192, - 0,3,224,0,2,224,0,6,240,0,6,112,0,6,112,0, - 12,120,0,12,56,0,15,248,0,24,28,0,24,28,0,16, - 28,0,48,14,0,48,14,0,252,63,128,17,22,66,17,0, - 0,7,56,0,15,120,0,15,120,0,6,48,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,23,69,17,0,0,3,224,0,6,96,0,6, - 96,0,7,96,0,3,128,0,0,0,0,0,192,0,1,192, - 0,3,192,0,3,224,0,2,224,0,6,240,0,6,112,0, - 6,112,0,12,120,0,12,56,0,15,248,0,24,28,0,24, - 28,0,16,28,0,48,14,0,48,14,0,252,63,128,21,17, - 51,22,0,0,7,255,240,1,248,48,1,248,48,3,184,48, - 3,184,48,3,56,0,7,56,0,6,56,0,7,255,224,12, - 56,64,12,56,0,28,56,0,24,56,0,24,56,8,48,56, - 24,48,56,24,248,255,248,14,23,46,15,1,250,7,240,24, - 120,48,48,112,0,96,0,96,0,224,0,224,0,224,0,224, - 0,224,0,240,0,112,0,120,8,60,60,63,240,15,192,1, - 0,3,128,3,192,1,192,3,128,6,0,13,23,46,14,1, - 0,24,0,60,0,94,0,7,0,1,128,0,0,255,240,120, - 48,120,48,120,32,120,32,120,0,120,0,120,0,127,192,120, - 128,120,0,120,0,120,0,120,16,120,24,120,48,255,240,13, - 23,46,14,1,0,1,192,3,224,7,128,14,0,24,0,0, - 0,255,240,120,48,120,48,120,32,120,32,120,0,120,0,120, - 0,127,192,120,128,120,0,120,0,120,0,120,16,120,24,120, - 48,255,240,13,23,46,14,1,0,7,0,15,0,31,128,56, - 192,32,96,0,0,255,240,120,48,120,48,120,32,120,32,120, - 0,120,0,120,0,127,192,120,128,120,0,120,0,120,0,120, - 16,120,24,120,48,255,240,13,22,44,14,1,0,28,224,61, - 224,61,224,24,192,0,0,255,240,120,48,120,48,120,32,120, - 32,120,0,120,0,120,0,127,192,120,128,120,0,120,0,120, - 0,120,16,120,24,120,48,255,240,8,23,23,9,0,0,96, - 240,120,28,6,0,127,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,127,8,23,23,9,1,0,6,31,60,112, - 64,0,254,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,9,23,46,9,0,0,28,0,62,0,126,0,227, - 0,129,128,0,0,127,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,127,0,9,22,44,9,0,0,115,128,247, - 128,247,128,99,0,0,0,127,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,127,0,16,17,34,17,0,0,63, - 224,248,120,56,60,56,30,56,30,56,15,56,15,56,15,255, - 143,56,15,56,15,56,15,56,30,56,30,56,60,56,120,255, - 224,18,22,66,18,0,0,3,204,0,7,248,0,15,248,0, - 8,112,0,0,0,0,248,15,192,124,3,0,60,3,0,62, - 3,0,63,3,0,55,131,0,51,195,0,51,195,0,49,227, - 0,48,243,0,48,123,0,48,123,0,48,63,0,48,31,0, - 48,15,0,48,7,0,252,3,0,15,23,46,17,1,0,12, - 0,30,0,15,0,3,128,0,64,0,0,7,192,24,112,48, - 56,48,28,96,28,96,14,224,14,224,14,224,14,224,14,224, - 14,224,12,112,28,112,24,56,24,28,32,7,192,15,23,46, - 17,1,0,0,96,0,240,3,224,7,0,4,0,0,0,7, - 192,24,112,48,56,48,28,96,28,96,14,224,14,224,14,224, - 14,224,14,224,14,224,12,112,28,112,24,56,24,28,32,7, - 192,15,23,46,17,1,0,3,128,7,192,15,224,28,96,16, - 48,0,0,7,192,24,112,48,56,48,28,96,28,96,14,224, - 14,224,14,224,14,224,14,224,14,224,12,112,28,112,24,56, - 24,28,32,7,192,15,22,44,17,1,0,15,24,31,240,31, - 224,48,192,0,0,7,192,24,112,48,56,48,28,96,28,96, - 14,224,14,224,14,224,14,224,14,224,14,224,12,112,28,112, - 24,56,24,28,32,7,192,15,22,44,17,1,0,14,112,30, - 240,30,240,12,96,0,0,7,192,24,112,48,56,48,28,96, - 28,96,14,224,14,224,14,224,14,224,14,224,14,224,12,112, - 28,112,24,56,24,28,32,7,192,9,9,18,11,1,3,193, - 128,227,128,119,0,62,0,28,0,62,0,119,0,227,128,193, - 128,15,18,36,17,1,255,7,238,8,124,56,56,48,60,112, - 124,96,254,224,238,225,206,227,142,227,14,231,14,254,12,124, - 28,124,24,56,48,124,32,239,192,128,0,17,23,69,18,0, - 0,3,0,0,7,128,0,3,192,0,0,224,0,0,48,0, - 0,0,0,254,31,128,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,4,0,28,12,0, - 14,24,0,3,224,0,17,23,69,18,0,0,0,56,0,0, - 124,0,0,240,0,1,192,0,3,0,0,0,0,0,254,31, - 128,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,4,0,28,12,0,14,24,0,3,224, - 0,17,23,69,18,0,0,0,224,0,1,224,0,3,240,0, - 7,24,0,4,12,0,0,0,0,254,31,128,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,4,0,28,12,0,14,24,0,3,224,0,17,22,66,18, - 0,0,3,156,0,7,188,0,7,188,0,3,24,0,0,0, - 0,254,31,128,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,4,0,28,12,0,14,24, - 0,3,224,0,16,23,46,17,0,0,0,48,0,248,1,224, - 3,128,2,0,0,0,248,31,60,14,28,12,14,24,15,24, - 7,48,7,48,3,224,3,224,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,7,240,14,17,34,15,0,0,254,0, - 56,0,56,0,63,192,56,112,56,56,56,28,56,28,56,28, - 56,28,56,56,56,112,59,224,56,0,56,0,56,0,254,0, - 15,20,40,17,0,0,1,240,6,60,12,28,24,14,24,14, - 56,14,56,28,56,56,56,96,56,192,56,192,56,224,56,120, - 56,60,56,30,56,14,57,6,57,134,57,132,249,248,12,20, - 40,13,1,0,56,0,60,0,28,0,14,0,6,0,3,0, - 0,0,0,0,31,128,113,192,241,192,129,192,3,192,63,192, - 113,192,225,192,225,192,227,240,253,224,121,128,12,20,40,13, - 1,0,3,192,3,192,7,128,7,0,14,0,12,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,12,20,40,13,1,0, - 6,0,15,0,31,0,59,128,48,192,96,64,0,0,0,0, - 31,128,113,192,241,192,129,192,3,192,63,192,113,192,225,192, - 225,192,227,240,253,224,121,128,12,19,38,13,1,0,0,32, - 28,96,63,192,71,192,67,128,0,0,0,0,31,128,113,192, - 241,192,129,192,3,192,63,192,113,192,225,192,225,192,227,240, - 253,224,121,128,12,18,36,13,1,0,57,192,61,224,57,192, - 57,192,0,0,0,0,31,128,113,192,241,192,129,192,3,192, - 63,192,113,192,225,192,225,192,227,240,253,224,121,128,12,19, - 38,13,1,0,15,0,27,0,25,128,27,0,30,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,18,12,36,20,1,0, - 7,158,0,31,227,0,56,225,128,112,193,128,64,193,128,15, - 255,0,56,192,0,96,192,0,224,224,128,227,241,192,254,127, - 0,124,62,0,11,18,36,12,1,250,15,224,48,192,112,192, - 96,64,224,0,224,0,224,0,224,0,240,64,120,192,63,128, - 31,0,4,0,14,0,15,0,7,0,14,0,24,0,11,20, - 40,13,1,0,60,0,60,0,30,0,14,0,7,0,1,0, - 0,0,0,0,15,0,49,192,112,192,96,224,224,224,255,192, - 224,0,224,0,240,64,120,224,63,192,31,0,11,20,40,13, - 1,0,1,192,3,192,3,128,7,0,6,0,12,0,0,0, - 0,0,15,0,49,192,112,192,96,224,224,224,255,192,224,0, - 224,0,240,64,120,224,63,192,31,0,11,20,40,13,1,0, - 6,0,15,0,31,128,29,128,48,192,32,96,0,0,0,0, - 15,0,49,192,112,192,96,224,224,224,255,192,224,0,224,0, - 240,64,120,224,63,192,31,0,11,18,36,13,1,0,24,192, - 61,224,61,224,57,192,0,0,0,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,8,20,20,8,0,0,240,240,120,24,12,4,0,0, - 28,124,28,28,28,28,28,28,28,28,28,127,7,20,20,8, - 1,0,14,30,28,56,48,96,0,0,56,248,56,56,56,56, - 56,56,56,56,56,254,9,20,40,8,0,0,24,0,60,0, - 126,0,118,0,195,0,129,128,0,0,0,0,28,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,127,0,9,18,36,8,0,0,115,128,247,128,247,128, - 231,0,0,0,0,0,28,0,124,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,127,0,12,19, - 38,14,1,0,12,0,126,112,15,224,15,128,61,192,0,224, - 0,224,15,224,49,240,96,240,96,112,224,112,224,112,224,112, - 224,96,224,96,112,192,56,128,31,0,15,19,38,16,1,0, - 0,16,14,48,31,224,51,224,33,192,0,0,0,0,24,240, - 251,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,12,20,40,14,1,0,28,0,60,0, - 14,0,6,0,3,0,1,128,0,0,0,0,15,128,49,192, - 112,224,96,112,224,112,224,112,224,112,224,112,224,96,112,96, - 56,192,31,0,12,20,40,14,1,0,1,192,3,224,3,128, - 7,0,6,0,12,0,0,0,0,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,12,20,40,14,1,0,7,0,15,0,15,128,29,192, - 56,192,32,96,0,0,0,0,15,128,49,192,112,224,96,112, - 224,112,224,112,224,112,224,112,224,96,112,96,56,192,31,0, - 12,19,38,14,1,0,0,48,30,32,63,224,39,192,65,128, - 0,0,0,0,15,128,49,192,112,224,96,112,224,112,224,112, - 224,112,224,112,224,96,112,96,56,192,31,0,12,18,36,14, - 1,0,28,224,61,224,61,224,24,192,0,0,0,0,15,128, - 49,192,112,224,96,112,224,112,224,112,224,112,224,112,224,96, - 112,96,56,192,31,0,10,10,20,11,1,2,12,0,12,0, - 12,0,0,0,255,192,0,0,0,0,12,0,12,0,12,0, - 12,14,28,14,1,255,0,16,15,176,49,224,112,224,97,240, - 227,112,230,112,230,112,236,112,248,96,112,224,120,192,95,0, - 128,0,15,20,40,15,0,0,14,0,15,0,7,0,3,128, - 1,128,0,192,0,0,0,0,56,56,248,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,250,63,190,30,56, - 15,20,40,15,0,0,0,224,0,240,1,192,1,128,3,0, - 2,0,0,0,0,0,56,56,248,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,250,63,190,30,56,15,20, - 40,15,0,0,3,128,3,192,7,192,14,224,28,112,24,16, - 0,0,0,0,56,56,248,248,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,250,63,190,30,56,15,18,36,15, - 0,0,14,112,14,112,30,240,14,112,0,0,0,0,56,56, - 248,248,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,250,63,190,30,56,15,26,52,14,255,250,0,112,0,240, - 0,224,1,192,1,128,3,0,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0, - 13,26,52,15,1,250,24,0,248,0,56,0,56,0,56,0, - 56,0,56,0,56,0,57,224,63,240,60,112,56,56,56,24, - 56,24,56,24,56,24,56,16,60,48,63,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,15,24,48,14,255,250, - 7,56,15,120,15,120,14,112,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=12 h=25 x= 2 y= 9 dx=14 dy= 0 ascent=21 len=50 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17n[561] U8G_FONT_SECTION("u8g_font_gdb17n") = { - 0,42,39,242,246,16,0,0,0,0,42,58,0,21,251,16, - 0,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=14 dx=23 dy= 0 ascent=22 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17r[3540] U8G_FONT_SECTION("u8g_font_gdb17r") = { - 0,42,39,242,246,17,4,81,9,172,32,127,250,22,250,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=18 dx=28 dy= 0 ascent=28 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20[10077] U8G_FONT_SECTION("u8g_font_gdb20") = { - 0,49,47,240,244,20,5,86,12,137,32,255,248,28,247,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,5,24, - 24,10,2,247,112,248,248,248,112,0,0,48,48,48,48,112, - 112,112,112,120,120,120,120,120,120,120,120,96,13,20,40,16, - 2,255,3,0,3,0,3,0,15,248,31,248,59,56,115,16, - 227,0,227,0,227,0,227,0,227,0,227,0,115,24,123,48, - 63,224,31,192,3,0,3,0,3,0,14,19,38,16,1,0, - 1,252,6,60,14,28,28,12,28,8,60,0,60,0,60,0, - 60,0,255,224,60,0,60,0,60,0,60,4,56,4,56,12, - 127,252,255,252,128,48,12,13,26,16,2,3,192,48,239,112, - 112,224,48,192,96,96,96,96,96,96,96,96,112,224,57,192, - 111,96,192,48,128,16,18,19,57,16,255,0,248,31,192,252, - 15,128,62,6,0,30,14,0,31,12,0,15,156,0,7,152, - 0,7,248,0,3,240,0,3,240,0,3,240,0,1,224,0, - 63,255,0,1,224,0,1,224,0,1,224,0,1,224,0,3, - 240,0,7,248,0,2,32,32,7,3,250,64,192,192,192,192, - 192,192,192,192,192,192,192,192,192,128,0,0,64,192,192,192, - 192,192,192,192,192,192,192,192,192,192,128,12,22,44,16,2, - 0,15,192,49,224,112,224,112,64,124,0,126,0,63,128,127, - 192,99,224,225,240,224,240,240,112,252,112,127,112,63,224,31, - 192,7,224,65,224,64,224,224,224,240,192,127,0,11,5,10, - 13,1,17,112,224,241,224,241,224,241,224,225,192,21,21,63, - 23,1,0,1,252,0,7,7,0,12,1,128,24,0,192,48, - 126,96,96,199,48,97,134,48,195,2,24,199,0,24,199,0, - 24,199,0,24,199,0,24,199,0,24,199,128,24,99,199,48, - 97,252,48,48,248,96,16,0,64,8,1,128,6,3,0,1, - 252,0,7,11,11,9,1,9,60,204,140,60,108,204,206,252, - 0,0,254,14,15,30,16,1,0,2,8,6,28,12,56,28, - 112,56,112,120,224,241,224,243,192,241,224,120,224,56,112,28, - 112,12,56,6,24,2,12,13,7,14,16,2,3,255,248,255, - 248,0,24,0,24,0,24,0,24,0,16,10,2,4,11,1, - 7,255,192,255,128,12,11,22,11,0,11,31,128,48,192,126, - 96,219,48,219,48,222,48,219,48,217,48,100,224,48,192,31, - 128,14,3,6,16,1,18,127,248,127,252,255,248,7,8,8, - 11,2,12,60,126,70,198,198,204,252,120,12,15,30,13,1, - 2,6,0,6,0,6,0,6,0,6,0,127,240,255,224,6, - 0,6,0,6,0,6,0,4,0,0,0,255,240,255,224,8, - 11,11,11,2,10,62,115,227,3,6,6,12,24,49,97,255, - 9,11,22,11,1,10,62,0,231,0,231,0,7,0,28,0, - 63,0,7,128,3,128,3,128,199,0,126,0,8,8,8,10, - 3,16,28,30,63,60,120,112,224,192,18,23,69,19,1,248, - 28,6,0,252,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,62,62,0,63,255,128,63,223,192,51,142,0,48,0,0, - 48,0,0,56,0,0,56,0,0,56,0,0,60,0,0,62, - 0,0,48,0,0,17,24,72,19,1,252,15,255,128,60,127, - 0,120,102,0,112,102,0,240,102,0,240,102,0,240,102,0, - 240,102,0,120,102,0,120,102,0,60,102,0,15,230,0,0, - 102,0,0,102,0,0,102,0,0,102,0,0,102,0,0,102, - 0,0,102,0,0,102,0,0,102,0,0,102,0,0,255,0, - 1,255,128,5,5,5,7,1,8,112,248,248,248,112,7,7, - 7,7,0,249,24,48,60,62,30,60,240,8,11,11,11,2, - 10,8,248,24,24,24,24,24,24,24,24,255,7,11,11,9, - 1,9,56,76,198,198,198,198,198,108,56,0,254,13,15,30, - 16,2,0,129,0,195,128,97,128,112,192,56,224,60,112,30, - 120,30,120,30,120,60,112,56,224,112,192,97,192,193,128,131, - 0,17,19,57,20,2,0,48,3,128,240,3,0,48,6,0, - 48,12,0,48,28,0,48,24,0,48,48,0,48,96,0,120, - 224,0,132,193,0,1,135,0,3,15,0,7,11,0,6,19, - 0,12,51,0,24,63,128,56,67,0,48,3,0,224,15,128, - 17,19,57,20,2,0,48,1,128,240,3,0,48,7,0,48, - 6,0,48,12,0,48,24,0,48,56,0,48,48,0,120,96, - 0,132,192,0,1,207,0,1,153,128,3,49,128,7,1,0, - 14,3,0,12,6,0,24,12,0,56,24,128,112,63,128,18, - 19,57,20,1,0,60,1,192,102,1,128,70,3,0,12,6, - 0,28,14,0,6,12,0,6,24,0,134,48,0,124,112,0, - 0,96,128,0,195,128,1,135,128,3,133,128,3,9,128,6, - 25,128,12,31,192,28,33,128,24,1,128,112,7,192,13,23, - 46,15,1,248,7,0,15,128,15,128,15,128,7,0,0,0, - 0,0,3,0,3,0,3,0,7,0,6,0,14,0,28,0, - 60,0,120,0,112,0,240,24,240,120,240,120,240,120,120,240, - 63,192,20,28,84,20,0,0,3,0,0,7,128,0,7,192, - 0,15,224,0,1,224,0,0,112,0,0,24,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,20,28,84,20, - 0,0,0,8,0,0,30,0,0,62,0,0,124,0,0,240, - 0,1,224,0,1,128,0,0,0,0,0,32,0,0,240,0, - 0,240,0,1,248,0,1,248,0,1,248,0,3,188,0,3, - 60,0,3,60,0,7,30,0,6,30,0,14,31,0,15,255, - 0,12,7,0,28,7,128,24,7,128,24,3,128,56,3,192, - 56,3,192,254,15,240,20,27,81,20,0,0,0,224,0,0, - 240,0,1,248,0,3,252,0,7,14,0,4,6,0,0,0, - 0,0,32,0,0,240,0,0,240,0,1,248,0,1,248,0, - 1,248,0,3,188,0,3,60,0,3,60,0,7,30,0,6, - 30,0,14,31,0,15,255,0,12,7,0,28,7,128,24,7, - 128,24,3,128,56,3,192,56,3,192,254,15,240,20,26,78, - 20,0,0,3,195,0,7,254,0,7,254,0,12,124,0,8, - 0,0,0,0,0,0,32,0,0,240,0,0,240,0,1,248, - 0,1,248,0,1,248,0,3,188,0,3,60,0,3,60,0, - 7,30,0,6,30,0,14,31,0,15,255,0,12,7,0,28, - 7,128,24,7,128,24,3,128,56,3,192,56,3,192,254,15, - 240,20,26,78,20,0,0,6,12,0,15,30,0,15,30,0, - 15,30,0,14,28,0,0,0,0,0,32,0,0,240,0,0, - 240,0,1,248,0,1,248,0,1,248,0,3,188,0,3,60, - 0,3,60,0,7,30,0,6,30,0,14,31,0,15,255,0, - 12,7,0,28,7,128,24,7,128,24,3,128,56,3,192,56, - 3,192,254,15,240,20,27,81,20,0,0,0,112,0,1,152, - 0,1,152,0,1,144,0,0,224,0,0,0,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,25,20,80,26, - 0,0,3,255,255,0,0,255,3,0,0,255,3,0,0,239, - 3,0,0,239,3,0,1,207,0,0,1,207,0,0,3,143, - 0,0,3,143,0,0,3,255,254,0,7,15,4,0,6,15, - 0,0,14,15,0,0,14,15,0,0,12,15,0,0,28,15, - 0,0,24,15,0,128,24,15,1,128,56,31,1,128,254,63, - 255,128,16,27,54,18,1,249,1,254,6,31,28,14,56,4, - 56,0,112,0,112,0,240,0,240,0,240,0,240,0,240,0, - 240,0,248,0,120,0,124,1,126,7,63,254,31,252,15,240, - 0,192,1,192,1,240,0,240,0,240,1,224,3,128,15,28, - 56,17,1,0,8,0,28,0,62,0,31,0,7,128,1,192, - 0,64,0,0,255,252,124,12,60,12,60,12,60,12,60,0, - 60,0,60,0,60,0,63,240,60,32,60,0,60,0,60,0, - 60,0,60,0,60,2,60,6,124,14,255,254,15,28,56,17, - 1,0,0,96,0,240,1,248,1,240,3,192,7,0,12,0, - 0,0,255,252,124,12,60,12,60,12,60,12,60,0,60,0, - 60,0,60,0,63,240,60,32,60,0,60,0,60,0,60,0, - 60,0,60,2,60,6,124,14,255,254,15,27,54,17,1,0, - 3,128,7,192,15,192,31,224,28,112,48,24,0,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,2, - 60,6,124,14,255,254,15,26,52,17,1,0,56,112,56,112, - 120,240,120,240,48,96,0,0,255,252,124,12,60,12,60,12, - 60,12,60,0,60,0,60,0,60,0,63,240,60,32,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 9,28,56,10,0,0,32,0,240,0,248,0,124,0,30,0, - 15,0,3,0,0,0,127,128,63,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,127,128,10,28, - 56,10,1,0,2,0,7,128,15,192,31,0,62,0,120,0, - 96,0,0,0,255,0,126,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,10,27,54,10, - 0,0,12,0,30,0,63,0,127,128,225,192,192,64,0,0, - 127,128,63,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,127,128,11,26,52,10,255,0,112,224, - 241,224,241,224,241,224,96,192,0,0,63,192,31,128,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,31,128, - 63,192,18,20,60,20,1,0,63,240,0,252,60,0,60,14, - 0,60,15,0,60,7,128,60,7,128,60,3,192,60,3,192, - 60,3,192,255,195,192,60,3,192,60,3,192,60,3,192,60, - 3,128,60,7,128,60,7,128,60,15,0,60,14,0,124,28, - 0,255,240,0,19,26,78,21,1,0,3,195,0,7,254,0, - 15,252,0,12,120,0,24,0,0,0,0,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,28,84,20,1,0,2,0, - 0,15,0,0,15,128,0,7,192,0,3,224,0,0,240,0, - 0,48,0,0,0,0,3,240,0,12,28,0,28,14,0,56, - 7,0,56,7,128,112,7,128,112,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,248,3,128, - 120,7,128,120,7,0,60,15,0,30,30,0,15,248,0,3, - 224,0,18,28,84,20,1,0,0,16,0,0,60,0,0,124, - 0,0,248,0,1,224,0,3,192,0,3,0,0,0,0,0, - 3,240,0,12,28,0,28,14,0,56,7,0,56,7,128,112, - 7,128,112,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,248,3,128,120,7,128,120,7,0, - 60,15,0,30,30,0,15,248,0,3,224,0,18,27,81,20, - 1,0,0,192,0,1,224,0,3,240,0,7,248,0,14,28, - 0,8,12,0,0,0,0,3,240,0,12,28,0,28,14,0, - 56,7,0,56,7,128,112,7,128,112,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,248,3, - 128,120,7,128,120,7,0,60,15,0,30,30,0,15,248,0, - 3,224,0,18,26,78,20,1,0,3,198,0,15,252,0,15, - 252,0,24,120,0,16,0,0,0,0,0,3,240,0,12,28, - 0,28,14,0,56,7,0,56,7,128,112,7,128,112,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,248,3,128,120,7,128,120,7,0,60,15,0,30,30, - 0,15,248,0,3,224,0,18,26,78,20,1,0,14,28,0, - 30,60,0,30,60,0,30,60,0,28,56,0,0,0,0,3, - 240,0,12,28,0,28,14,0,56,7,0,56,7,128,112,7, - 128,112,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,248,3,128,120,7,128,120,7,0,60, - 15,0,30,30,0,15,248,0,3,224,0,11,10,20,13,1, - 4,96,96,240,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,96,18,21,63,20,1,255,3,241,192,12,31, - 128,28,15,0,56,15,0,56,31,128,112,63,128,112,63,192, - 240,123,192,240,243,192,240,227,192,241,195,192,241,195,192,243, - 131,192,247,3,128,126,7,128,126,7,0,60,7,0,62,14, - 0,127,248,0,227,224,0,128,0,0,19,28,84,21,1,0, - 3,0,0,7,128,0,15,192,0,7,192,0,1,224,0,0, - 112,0,0,24,0,0,0,0,255,7,224,126,3,192,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,3,0,30,3,0,15,6,0,7,252, - 0,3,240,0,19,28,84,21,1,0,0,8,0,0,30,0, - 0,62,0,0,124,0,0,240,0,1,192,0,1,128,0,0, - 0,0,255,7,224,126,3,192,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 3,0,30,3,0,15,6,0,7,252,0,3,240,0,19,27, - 81,21,1,0,0,224,0,0,240,0,1,248,0,3,252,0, - 7,14,0,12,6,0,0,0,0,255,7,224,126,3,192,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,3,0,30,3,0,15,6,0,7, - 252,0,3,240,0,19,26,78,21,1,0,6,12,0,15,30, - 0,15,30,0,15,30,0,14,28,0,0,0,0,255,7,224, - 126,3,192,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,3,0,30,3,0, - 15,6,0,7,252,0,3,240,0,19,28,84,20,0,0,0, - 8,0,0,30,0,0,62,0,0,124,0,0,240,0,1,192, - 0,1,128,0,0,0,0,252,7,224,60,3,192,30,3,128, - 15,3,0,15,7,0,7,134,0,3,142,0,3,204,0,1, - 220,0,1,248,0,0,248,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,1,248,0, - 3,252,0,16,20,40,18,1,0,255,128,126,0,60,0,60, - 0,63,240,60,60,60,30,60,15,60,15,60,15,60,15,60, - 14,60,30,60,60,63,240,60,0,60,0,60,0,126,0,255, - 128,18,24,72,21,1,0,0,248,0,3,254,0,15,31,0, - 14,15,128,28,7,128,28,7,128,60,7,128,60,7,128,60, - 15,0,60,60,0,60,112,0,60,224,0,60,224,0,60,240, - 0,60,252,0,60,127,0,60,63,128,60,15,192,60,7,192, - 61,3,192,60,129,192,60,193,128,124,225,128,252,254,0,14, - 24,48,16,1,0,28,0,62,0,30,0,15,0,7,0,3, - 128,1,128,0,192,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,14,24,48,16,1,0,0,224,1,240,1, - 224,3,192,3,128,3,0,7,0,6,0,0,0,31,192,112, - 224,240,240,192,240,0,240,3,240,31,240,63,240,120,240,240, - 240,240,240,240,240,251,252,126,248,56,96,14,23,46,16,1, - 0,3,128,7,128,15,192,31,224,28,224,56,48,32,16,0, - 0,31,192,112,224,240,240,192,240,0,240,3,240,31,240,63, - 240,120,240,240,240,240,240,240,240,251,252,126,248,56,96,14, - 22,44,16,1,0,14,8,31,24,63,240,99,240,64,224,0, - 0,0,0,31,192,112,224,240,240,192,240,0,240,3,240,31, - 240,63,240,120,240,240,240,240,240,240,240,251,252,126,248,56, - 96,14,22,44,16,1,0,56,112,120,240,120,240,120,240,48, - 96,0,0,0,0,31,192,112,224,240,240,192,240,0,240,3, - 240,31,240,63,240,120,240,240,240,240,240,240,240,251,252,126, - 248,56,96,14,22,44,16,1,0,3,128,4,192,12,192,12, - 192,7,128,0,0,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,22,15,45,23,1,0,3,227,224,31,252, - 112,60,252,56,120,120,60,112,120,60,128,120,60,7,255,248, - 28,120,0,120,120,0,112,120,0,240,124,8,249,254,28,255, - 191,248,127,31,240,60,7,192,14,22,44,15,1,249,3,248, - 12,120,56,48,112,16,112,0,240,0,240,0,240,0,240,0, - 240,0,248,8,124,28,63,248,31,240,15,192,3,0,3,192, - 3,224,5,224,1,224,3,192,14,0,13,24,48,15,1,0, - 14,0,30,0,31,0,15,0,7,128,3,128,1,192,0,192, - 0,0,7,192,24,224,56,112,112,120,112,120,240,120,255,240, - 240,0,240,0,240,0,248,8,124,56,127,240,63,224,15,128, - 13,24,48,15,1,0,0,224,0,240,1,240,1,224,3,192, - 3,128,7,0,6,0,0,0,7,192,24,224,56,112,112,120, - 112,120,240,120,255,240,240,0,240,0,240,0,248,8,124,56, - 127,240,63,224,15,128,13,23,46,15,1,0,3,128,7,192, - 15,192,15,224,28,112,56,48,48,24,0,0,7,192,24,224, - 56,112,112,120,112,120,240,120,255,240,240,0,240,0,240,0, - 248,8,124,56,127,240,63,224,15,128,13,22,44,15,1,0, - 56,112,56,112,120,240,120,240,48,96,0,0,0,0,7,192, - 24,224,56,112,112,120,112,120,240,120,255,240,240,0,240,0, - 240,0,248,8,124,56,127,240,63,224,15,128,9,24,48,10, - 0,0,112,0,248,0,120,0,60,0,28,0,14,0,6,0, - 2,0,0,0,14,0,126,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,63,0, - 127,128,9,24,48,10,1,0,7,0,15,128,15,0,30,0, - 28,0,56,0,48,0,32,0,0,0,28,0,252,0,124,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,0,10,23,46,10,0,0,28,0, - 30,0,63,0,127,0,115,128,193,192,128,64,0,0,14,0, - 126,0,62,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,63,0,127,128,11,22,44,10, - 255,0,112,224,241,224,241,224,241,224,225,192,0,0,0,0, - 7,0,63,0,31,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,31,128,63,192,14,23, - 46,16,1,0,14,0,63,28,95,248,3,224,15,224,60,224, - 0,112,0,56,15,248,24,248,56,124,112,60,112,60,240,60, - 240,60,240,60,240,60,240,56,240,56,120,112,120,112,60,96, - 15,128,17,22,66,19,1,0,7,6,0,15,204,0,31,252, - 0,17,248,0,48,112,0,0,0,0,0,0,0,12,60,0, - 252,252,0,127,254,0,63,30,0,62,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,126,63,0,255,127,128,15,24,48,17,1,0, - 14,0,31,0,15,0,7,0,3,128,1,128,0,192,0,192, - 0,0,7,224,24,112,56,56,112,60,112,30,240,30,240,30, - 240,30,240,30,240,30,240,28,120,28,56,56,28,48,15,192, - 15,24,48,17,1,0,0,240,0,248,0,240,1,224,1,192, - 3,128,3,0,6,0,0,0,7,224,24,112,56,56,112,60, - 112,30,240,30,240,30,240,30,240,30,240,30,240,28,120,28, - 56,56,28,48,15,192,15,23,46,17,1,0,3,128,3,192, - 7,224,15,224,30,112,24,56,48,24,0,0,7,224,24,112, - 56,56,112,60,112,30,240,30,240,30,240,30,240,30,240,30, - 240,28,120,28,56,56,28,48,15,192,15,22,44,17,1,0, - 14,12,31,136,31,248,49,240,32,224,0,0,0,0,7,224, - 24,112,56,56,112,60,112,30,240,30,240,30,240,30,240,30, - 240,30,240,28,120,28,56,56,28,48,15,192,15,22,44,17, - 1,0,24,48,60,120,60,120,56,112,56,112,0,0,0,0, - 7,224,24,112,56,56,112,60,112,30,240,30,240,30,240,30, - 240,30,240,30,240,28,120,28,56,56,28,48,15,192,12,12, - 24,13,1,3,6,0,14,0,14,0,12,0,0,0,255,240, - 255,224,0,0,6,0,14,0,14,0,12,0,15,16,32,17, - 1,255,7,238,24,124,56,60,112,124,112,254,240,254,241,222, - 243,158,243,158,247,30,254,28,124,28,124,56,124,48,111,192, - 128,0,17,24,72,18,0,0,7,0,0,15,128,0,7,128, - 0,3,192,0,1,192,0,0,224,0,0,96,0,0,48,0, - 0,0,0,28,14,0,252,126,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,126,0,63,255,128,31,223,0,15,12,0, - 17,24,72,18,0,0,0,56,0,0,124,0,0,120,0,0, - 240,0,0,224,0,0,192,0,1,128,0,1,128,0,0,0, - 0,28,14,0,252,126,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,126,0,63,255,128,31,223,0,15,12,0,17,23, - 69,18,0,0,0,192,0,1,224,0,3,240,0,7,248,0, - 7,56,0,14,12,0,8,4,0,0,0,0,28,14,0,252, - 126,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,126,0, - 63,255,128,31,223,0,15,12,0,17,22,66,18,0,0,14, - 28,0,30,60,0,30,60,0,30,60,0,12,24,0,0,0, - 0,0,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,17,32,96,16,255,248,0,56,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,224,0,0,192,0,1,128,0,0, - 0,0,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,16,32,64,18,1,248,12,0,252, - 0,124,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 120,61,252,63,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,63,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,30,90, - 16,255,248,6,12,0,15,30,0,15,30,0,14,28,0,14, - 28,0,0,0,0,0,0,0,127,15,128,62,7,0,30,6, - 0,30,6,0,15,14,0,15,12,0,7,140,0,7,152,0, - 7,152,0,3,248,0,3,240,0,1,240,0,1,240,0,1, - 224,0,0,224,0,0,192,0,0,192,0,1,192,0,1,128, - 0,39,128,0,127,0,0,254,0,0,120,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=14 h=30 x= 2 y=11 dx=17 dy= 0 ascent=25 len=60 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20n[646] U8G_FONT_SECTION("u8g_font_gdb20n") = { - 0,49,47,240,244,19,0,0,0,0,42,58,0,25,250,19, - 0,12,13,26,14,1,11,3,0,15,0,70,64,102,112,246, - 240,63,192,15,0,63,224,254,240,230,112,70,32,7,0,14, - 0,12,12,24,13,1,3,6,0,6,0,6,0,6,0,6, - 0,127,240,255,224,6,0,6,0,6,0,6,0,6,0,6, - 10,10,9,2,250,56,252,252,60,60,56,56,112,96,192,10, - 2,4,11,1,7,255,192,255,128,5,5,5,9,2,255,112, - 248,248,248,112,14,30,60,15,1,251,0,28,0,56,0,56, - 0,120,0,112,0,112,0,224,0,224,0,224,1,192,1,192, - 3,128,3,128,3,128,7,0,7,0,7,0,14,0,14,0, - 28,0,28,0,28,0,56,0,56,0,120,0,112,0,112,0, - 224,0,224,0,192,0,14,18,36,16,1,0,7,192,24,224, - 56,112,112,120,112,120,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,240,56,112,56,120,56,56,112,28,96,15,128, - 13,19,38,16,2,0,1,128,15,128,127,128,239,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,63,224,127,248,13,19,38,16, - 1,0,15,224,56,240,120,120,240,120,112,120,0,120,0,240, - 0,240,1,224,1,192,3,128,7,0,14,0,28,8,28,8, - 56,24,127,248,255,248,255,248,13,19,38,16,1,0,31,128, - 121,224,112,240,240,240,64,240,0,240,1,224,7,192,15,192, - 3,240,0,240,0,120,0,120,0,120,0,120,128,240,192,240, - 127,224,31,128,14,19,38,17,1,0,0,48,1,240,1,240, - 3,240,7,240,6,240,12,240,12,240,24,240,56,240,48,240, - 96,240,255,252,255,248,0,240,0,240,0,240,1,248,7,252, - 13,19,38,16,1,0,63,248,63,240,63,224,112,0,112,0, - 96,0,96,0,127,128,127,224,97,240,0,248,0,120,0,120, - 0,120,0,120,0,112,128,240,193,224,127,128,14,20,40,16, - 1,0,0,112,3,240,7,128,15,0,28,0,60,0,120,0, - 120,0,115,224,255,240,252,120,240,124,240,60,240,60,240,60, - 112,60,120,56,56,56,28,112,7,192,13,19,38,16,2,0, - 255,248,255,248,255,240,192,48,128,96,128,96,0,224,0,192, - 1,192,1,128,3,128,3,128,7,0,7,0,14,0,14,0, - 30,0,28,0,56,0,14,19,38,16,1,0,15,192,24,240, - 48,120,112,120,112,120,120,120,126,240,63,192,31,224,15,240, - 63,248,120,252,248,124,240,60,240,60,240,56,112,56,56,112, - 31,192,14,20,40,16,1,255,7,192,24,240,56,120,112,120, - 240,60,240,60,240,60,240,60,248,60,124,124,63,252,31,60, - 0,56,0,120,0,112,0,240,1,224,7,128,63,0,56,0, - 5,16,16,9,2,255,112,248,248,248,112,0,0,0,0,0, - 0,112,248,248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=28 dy= 0 ascent=26 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20r[4680] U8G_FONT_SECTION("u8g_font_gdb20r") = { - 0,49,47,240,244,20,5,86,12,137,32,127,248,26,248,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 4 y=23 dx=35 dy= 0 ascent=34 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25[14643] U8G_FONT_SECTION("u8g_font_gdb25") = { - 0,61,57,236,242,25,7,167,18,92,32,255,247,34,245,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,10,0, - 0,6,29,29,12,3,245,120,252,252,252,248,112,0,16,48, - 56,56,120,120,120,120,120,120,120,120,120,120,120,124,124,252, - 252,252,248,192,16,25,50,20,2,255,0,192,1,192,1,192, - 1,248,7,255,31,255,61,223,121,198,121,198,113,192,241,192, - 241,192,241,192,241,192,241,192,241,192,121,195,125,199,63,206, - 31,252,15,248,3,192,1,192,1,192,1,128,19,25,75,20, - 1,255,0,127,0,1,255,192,3,199,192,7,131,192,7,1, - 192,15,1,128,15,1,128,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,127,252,0,255,248,0,31,0,0,31, - 0,0,31,0,0,31,0,0,30,0,96,30,0,192,30,0, - 192,63,255,192,127,255,192,255,255,192,64,31,128,17,16,48, - 20,1,4,64,0,128,224,1,128,115,243,128,63,255,0,30, - 30,0,28,14,0,56,7,0,56,7,0,56,7,0,56,7, - 0,56,7,0,28,14,0,62,31,0,127,255,128,243,243,128, - 96,1,128,22,24,72,20,254,0,254,3,252,255,3,252,31, - 0,240,31,128,224,15,193,192,7,193,192,7,227,128,3,227, - 128,3,247,128,1,247,0,0,255,0,0,254,0,0,254,0, - 0,124,0,31,255,240,31,255,224,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,3,41,41,9,3,248,96,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,128,0,0,0,64,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192, - 16,28,56,20,2,0,7,224,31,252,60,124,120,56,120,24, - 124,24,127,0,63,192,63,240,127,248,243,252,240,254,240,63, - 240,31,248,15,126,15,127,15,63,206,15,254,3,252,0,254, - 48,126,48,62,48,30,56,30,60,60,63,248,15,224,14,6, - 12,16,1,21,112,56,120,60,248,124,248,124,240,120,112,56, - 27,26,104,30,1,0,0,63,128,0,1,255,240,0,7,192, - 124,0,15,0,30,0,30,0,15,0,60,31,135,128,56,127, - 227,128,112,225,193,192,113,193,193,192,225,192,193,224,227,128, - 128,224,227,128,0,224,227,128,0,224,227,128,0,224,227,128, - 0,224,227,128,0,224,225,192,1,224,113,224,33,192,112,240, - 113,192,56,127,227,128,60,31,7,128,30,0,15,0,15,0, - 30,0,7,192,124,0,1,255,240,0,0,63,128,0,9,14, - 28,11,1,11,30,0,62,0,103,0,231,0,7,0,63,0, - 103,0,231,0,231,0,255,128,119,0,0,0,255,128,255,128, - 17,18,54,21,1,0,0,128,128,1,129,128,3,3,0,7, - 7,0,14,14,0,30,30,0,60,60,0,124,124,0,248,248, - 0,252,248,0,124,124,0,60,60,0,30,30,0,14,14,0, - 7,7,0,3,3,0,1,129,128,0,128,128,17,9,27,20, - 2,3,255,255,128,255,255,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,0,12,2,4, - 14,1,9,127,240,255,240,13,15,30,14,1,14,15,128,31, - 192,48,96,96,48,95,16,137,136,137,136,143,136,139,8,137, - 8,73,144,124,240,48,96,31,192,15,128,16,3,6,20,2, - 23,255,255,255,255,255,254,10,10,20,14,2,15,15,0,63, - 128,115,192,97,192,225,192,225,192,225,128,243,128,127,0,60, - 0,15,18,36,16,1,3,1,128,3,128,3,128,3,128,3, - 128,3,128,127,254,255,252,3,128,3,128,3,128,3,128,3, - 128,3,0,0,0,0,0,127,254,255,252,11,15,30,13,1, - 12,7,192,31,224,56,224,120,224,112,224,0,192,1,192,3, - 128,3,0,6,0,12,0,24,32,48,96,127,224,255,224,11, - 15,30,13,0,12,7,128,31,224,56,224,56,224,32,224,1, - 192,3,128,7,192,0,224,0,224,0,224,128,224,225,192,127, - 192,31,0,9,10,20,13,4,20,14,0,31,128,31,128,63, - 0,62,0,60,0,120,0,112,0,224,0,64,0,22,27,81, - 23,1,247,14,0,96,254,7,224,254,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,63,7,224,63,143,224,63,255,228, - 63,251,252,59,241,248,57,225,224,56,0,0,56,0,0,60, - 0,0,60,0,0,60,0,0,62,0,0,63,0,0,62,0, - 0,48,0,0,22,30,90,24,1,251,3,255,252,31,255,252, - 63,29,240,124,28,224,124,28,224,248,28,224,248,28,224,248, - 28,224,248,28,224,248,28,224,124,28,224,126,28,224,63,28, - 224,31,252,224,3,252,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,127, - 248,0,255,252,6,6,6,8,1,11,56,124,252,252,252,120, - 8,9,9,9,1,247,24,56,60,63,127,31,30,252,224,10, - 15,30,14,2,12,6,0,62,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63, - 0,255,192,9,14,28,11,1,11,30,0,63,0,119,0,227, - 128,227,128,227,128,227,128,227,128,119,0,126,0,60,0,0, - 0,255,128,255,128,17,18,54,21,2,0,64,64,0,224,224, - 0,112,112,0,56,56,0,60,60,0,30,30,0,31,31,0, - 15,143,128,15,143,128,15,143,128,15,143,128,31,31,0,30, - 30,0,60,60,0,56,56,0,112,112,0,96,96,0,192,192, - 0,22,24,72,25,2,0,12,0,24,252,0,56,28,0,112, - 28,0,224,28,1,192,28,1,192,28,3,128,28,7,0,28, - 6,0,28,14,0,62,28,0,255,184,0,0,56,112,0,112, - 240,0,225,240,1,193,112,1,195,112,3,134,112,7,4,112, - 14,15,252,14,31,248,28,0,112,56,0,112,112,1,252,21, - 24,72,25,2,0,12,0,56,252,0,112,28,0,112,28,0, - 224,28,1,192,28,3,128,28,3,128,28,7,0,28,14,0, - 28,28,0,62,28,0,255,184,0,0,113,240,0,227,248,0, - 230,56,1,206,56,3,128,48,7,0,96,7,0,224,14,0, - 192,28,1,136,60,7,8,56,15,248,112,15,248,23,24,72, - 25,1,0,31,0,12,63,128,28,115,128,56,227,128,112,7, - 0,224,31,0,224,3,129,192,3,131,128,3,131,0,135,135, - 0,255,14,0,60,28,0,0,28,56,0,56,120,0,112,248, - 0,224,184,0,225,184,1,195,56,3,130,56,7,7,254,7, - 15,252,14,0,56,28,0,56,56,0,254,16,29,58,18,1, - 245,3,192,7,224,7,224,7,224,7,192,3,128,0,0,0, - 0,1,192,1,192,1,192,1,192,3,192,3,128,7,128,15, - 0,31,0,62,0,60,0,124,0,248,0,248,7,248,31,248, - 31,248,31,252,30,126,60,63,248,15,224,25,34,136,25,0, - 0,0,192,0,0,3,224,0,0,3,240,0,0,3,248,0, - 0,0,252,0,0,0,62,0,0,0,15,0,0,0,2,0, - 0,0,0,0,0,0,4,0,0,0,30,0,0,0,62,0, - 0,0,126,0,0,0,127,0,0,0,111,0,0,0,239,128, - 0,0,239,128,0,0,199,128,0,1,199,192,0,1,199,192, - 0,1,131,192,0,3,131,224,0,3,131,224,0,3,255,224, - 0,7,255,240,0,7,0,240,0,6,0,248,0,14,0,248, - 0,14,0,120,0,12,0,124,0,28,0,124,0,28,0,124, - 0,255,129,255,0,255,129,255,128,25,34,136,25,0,0,0, - 1,128,0,0,3,192,0,0,7,224,0,0,15,192,0,0, - 31,0,0,0,124,0,0,0,240,0,0,0,64,0,0,0, - 0,0,0,0,4,0,0,0,30,0,0,0,62,0,0,0, - 126,0,0,0,127,0,0,0,111,0,0,0,239,128,0,0, - 239,128,0,0,199,128,0,1,199,192,0,1,199,192,0,1, - 131,192,0,3,131,224,0,3,131,224,0,3,255,224,0,7, - 255,240,0,7,0,240,0,6,0,248,0,14,0,248,0,14, - 0,120,0,12,0,124,0,28,0,124,0,28,0,124,0,255, - 129,255,0,255,129,255,128,25,34,136,25,0,0,0,28,0, - 0,0,62,0,0,0,127,0,0,0,255,128,0,1,255,128, - 0,1,227,192,0,3,128,224,0,2,0,64,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,33,132,25,0,0,0,248,48,0,1, - 254,240,0,3,255,224,0,3,255,192,0,6,31,128,0,6, - 3,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, - 30,0,0,0,62,0,0,0,126,0,0,0,127,0,0,0, - 111,0,0,0,239,128,0,0,239,128,0,0,199,128,0,1, - 199,192,0,1,199,192,0,1,131,192,0,3,131,224,0,3, - 131,224,0,3,255,224,0,7,255,240,0,7,0,240,0,6, - 0,248,0,14,0,248,0,14,0,120,0,12,0,124,0,28, - 0,124,0,28,0,124,0,255,129,255,0,255,129,255,128,25, - 32,128,25,0,0,1,192,224,0,3,193,224,0,7,195,224, - 0,7,195,224,0,3,193,224,0,1,129,192,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,34,136,25,0,0,0,30,0,0,0, - 127,0,0,0,119,0,0,0,103,0,0,0,231,0,0,0, - 119,0,0,0,126,0,0,0,56,0,0,0,0,0,0,0, - 4,0,0,0,30,0,0,0,62,0,0,0,126,0,0,0, - 127,0,0,0,111,0,0,0,239,128,0,0,239,128,0,0, - 199,128,0,1,199,192,0,1,199,192,0,1,131,192,0,3, - 131,224,0,3,131,224,0,3,255,224,0,7,255,240,0,7, - 0,240,0,6,0,248,0,14,0,248,0,14,0,120,0,12, - 0,124,0,28,0,124,0,28,0,124,0,255,129,255,0,255, - 129,255,128,32,25,100,32,0,0,0,255,255,252,0,255,255, - 252,0,31,240,28,0,61,240,12,0,61,240,12,0,57,240, - 12,0,121,240,12,0,113,240,0,0,241,240,0,0,225,240, - 0,0,225,240,0,1,255,255,240,1,255,255,240,3,193,240, - 32,3,129,240,0,3,129,240,0,7,129,240,0,7,1,240, - 0,15,1,240,0,14,1,240,3,14,1,240,3,30,1,240, - 6,28,1,240,14,255,7,255,254,255,15,255,254,20,34,102, - 22,1,247,0,127,128,3,255,240,7,135,224,15,1,224,30, - 0,192,60,0,64,60,0,0,124,0,0,120,0,0,120,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,124,0,0,126,0,0,127, - 0,96,63,129,224,31,255,192,15,255,0,7,254,0,1,240, - 0,0,224,0,0,248,0,0,252,0,1,252,0,0,124,0, - 0,120,0,1,240,0,1,192,0,19,34,102,21,1,0,6, - 0,0,31,0,0,31,128,0,31,192,0,7,224,0,1,240, - 0,0,120,0,0,16,0,0,0,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,19,34,102,21,1,0,0,12,0,0,31, - 0,0,63,0,0,126,0,0,248,0,1,224,0,3,128,0, - 2,0,0,0,0,0,255,255,192,255,255,192,62,1,192,30, - 1,192,30,1,128,30,1,128,30,0,128,30,0,0,30,0, - 0,30,0,0,30,0,0,31,255,0,31,254,0,30,6,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,96,30,0,96,30,0,224,63,1,224,255,255,224,255,255, - 192,19,34,102,21,1,0,0,224,0,1,240,0,3,248,0, - 7,252,0,15,252,0,15,30,0,28,7,0,16,2,0,0, - 0,0,255,255,192,255,255,192,62,1,192,30,1,192,30,1, - 128,30,1,128,30,0,128,30,0,0,30,0,0,30,0,0, - 30,0,0,31,255,0,31,254,0,30,6,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,96,30,0, - 96,30,0,224,63,1,224,255,255,224,255,255,192,19,32,96, - 21,1,0,14,7,0,30,15,0,31,15,128,30,15,0,30, - 15,0,12,6,0,0,0,0,255,255,192,255,255,192,62,1, - 192,30,1,192,30,1,128,30,1,128,30,0,128,30,0,0, - 30,0,0,30,0,0,30,0,0,31,255,0,31,254,0,30, - 6,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,96,30,0,96,30,0,224,63,1,224,255,255,224, - 255,255,192,12,34,68,13,0,0,48,0,248,0,252,0,254, - 0,63,0,15,128,3,192,0,128,0,0,127,240,63,240,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,63,224,127,240,12,34,68, - 13,1,0,0,192,1,224,3,240,7,224,31,128,62,0,120, - 0,32,0,0,0,255,224,127,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,255,224,13,34,68,13,0,0,7,0,15, - 128,31,192,63,224,127,224,248,240,224,56,128,16,0,0,127, - 240,63,240,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,63,224,127, - 240,14,32,64,13,255,0,56,28,120,60,248,124,248,124,120, - 60,112,56,0,0,63,248,31,248,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,31,240,63,248,22,25,75,25,1,0,15,252,0, - 255,255,128,255,15,192,31,3,224,31,1,240,31,1,248,31, - 0,248,31,0,248,31,0,124,31,0,124,31,0,124,255,248, - 124,255,248,124,31,0,124,31,0,124,31,0,124,31,0,120, - 31,0,248,31,0,248,31,1,240,31,1,240,31,3,224,31, - 7,192,127,255,128,255,252,0,25,33,132,27,1,0,0,240, - 48,0,1,254,224,0,3,255,224,0,3,255,192,0,6,31, - 128,0,6,3,0,0,4,0,0,0,0,0,0,0,254,0, - 255,128,255,0,127,0,31,0,28,0,31,128,28,0,31,192, - 28,0,31,192,28,0,31,224,28,0,29,240,28,0,29,248, - 28,0,28,248,28,0,28,124,28,0,28,126,28,0,28,62, - 28,0,28,31,28,0,28,15,156,0,28,15,156,0,28,7, - 220,0,28,3,252,0,28,3,252,0,28,1,252,0,28,0, - 252,0,28,0,252,0,28,0,124,0,127,0,60,0,255,128, - 12,0,23,34,102,25,1,0,1,128,0,7,192,0,7,224, - 0,7,240,0,1,248,0,0,124,0,0,30,0,0,4,0, - 0,0,0,0,126,0,3,255,192,7,135,224,14,1,240,30, - 0,248,60,0,248,60,0,124,124,0,124,120,0,126,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,252,0,60,124,0,124,124,0,120,62,0,120,62, - 0,240,31,1,224,15,195,192,7,255,0,0,252,0,23,34, - 102,25,1,0,0,3,0,0,7,192,0,15,192,0,31,128, - 0,62,0,0,120,0,0,224,0,0,128,0,0,0,0,0, - 126,0,3,255,192,7,135,224,14,1,240,30,0,248,60,0, - 248,60,0,124,124,0,124,120,0,126,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,252, - 0,60,124,0,124,124,0,120,62,0,120,62,0,240,31,1, - 224,15,195,192,7,255,0,0,252,0,23,34,102,25,1,0, - 0,56,0,0,124,0,0,254,0,1,255,0,3,255,0,3, - 199,128,7,1,192,4,0,128,0,0,0,0,126,0,3,255, - 192,7,135,224,14,1,240,30,0,248,60,0,248,60,0,124, - 124,0,124,120,0,126,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,252,0,60,124,0, - 124,124,0,120,62,0,120,62,0,240,31,1,224,15,195,192, - 7,255,0,0,252,0,23,33,99,25,1,0,1,240,96,3, - 252,224,7,255,192,7,255,128,14,63,128,12,6,0,8,0, - 0,0,0,0,0,126,0,3,255,192,7,135,224,14,1,240, - 30,0,248,60,0,248,60,0,124,124,0,124,120,0,126,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,252,0,60,124,0,124,124,0,120,62,0,120, - 62,0,240,31,1,224,15,195,192,7,255,0,0,252,0,23, - 32,96,25,1,0,3,129,192,7,131,192,7,195,224,7,131, - 192,7,131,192,3,1,128,0,0,0,0,126,0,3,255,192, - 7,135,224,14,1,240,30,0,248,60,0,248,60,0,124,124, - 0,124,120,0,126,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,252,0,60,124,0,124, - 124,0,120,62,0,120,62,0,240,31,1,224,15,195,192,7, - 255,0,0,252,0,13,12,24,17,2,5,96,48,240,120,120, - 240,61,224,31,192,15,128,15,128,31,192,57,224,120,240,240, - 120,96,48,23,26,78,25,1,255,0,126,30,3,255,252,7, - 135,248,14,3,240,30,1,248,60,1,252,60,3,252,124,7, - 252,120,15,254,248,15,126,248,30,62,248,62,62,248,60,62, - 248,120,62,248,240,62,248,240,62,253,224,60,127,192,124,127, - 128,120,127,128,120,63,0,240,31,129,224,63,195,192,127,255, - 0,240,252,0,192,0,0,25,34,136,27,1,0,0,192,0, - 0,3,224,0,0,3,240,0,0,3,248,0,0,0,252,0, - 0,0,30,0,0,0,7,0,0,0,2,0,0,0,0,0, - 0,255,224,255,128,127,224,255,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,24,0,15,128,56, - 0,15,128,56,0,7,192,112,0,3,224,224,0,1,255,192, - 0,0,127,0,0,25,34,136,27,1,0,0,1,128,0,0, - 3,224,0,0,7,224,0,0,15,192,0,0,31,0,0,0, - 60,0,0,0,112,0,0,0,64,0,0,0,0,0,0,255, - 224,255,128,127,224,255,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,24,0,15,128,56,0,15, - 128,56,0,7,192,112,0,3,224,224,0,1,255,192,0,0, - 127,0,0,25,34,136,27,1,0,0,28,0,0,0,62,0, - 0,0,127,0,0,0,255,128,0,1,255,192,0,1,227,192, - 0,3,128,224,0,2,0,64,0,0,0,0,0,255,224,255, - 128,127,224,255,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,24,0,15,128,56,0,15,128,56, - 0,7,192,112,0,3,224,224,0,1,255,192,0,0,127,0, - 0,25,32,128,27,1,0,1,192,224,0,3,225,240,0,3, - 225,240,0,3,193,224,0,3,193,224,0,1,128,192,0,0, - 0,0,0,255,224,255,128,127,224,255,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,24,0,15, - 128,56,0,15,128,56,0,7,192,112,0,3,224,224,0,1, - 255,192,0,0,127,0,0,24,34,102,25,0,0,0,1,128, - 0,3,192,0,7,224,0,31,192,0,63,0,0,124,0,0, - 240,0,0,64,0,0,0,0,126,0,255,255,0,255,31,0, - 56,15,128,56,15,192,112,7,192,112,3,224,224,3,224,224, - 1,241,192,1,241,192,0,251,128,0,251,128,0,127,0,0, - 127,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,1,255,192, - 1,255,192,21,25,75,23,1,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,254,0,31,255,192,31,7, - 224,31,3,240,31,1,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,1,240,31,1,240,31,135,224,31, - 127,128,31,62,0,31,0,0,31,0,0,31,0,0,127,224, - 0,255,224,0,23,30,90,25,0,0,0,31,128,0,255,224, - 1,195,240,3,128,248,7,128,248,15,0,124,15,0,124,15, - 0,124,31,0,124,31,0,248,31,1,248,31,7,240,31,15, - 128,31,31,0,31,30,0,31,30,0,31,31,0,31,31,128, - 31,15,224,31,7,248,31,3,252,31,0,252,31,0,126,31, - 48,62,31,48,30,31,48,30,31,56,28,31,60,60,127,63, - 248,255,15,224,19,30,90,20,1,0,7,0,0,31,128,0, - 15,128,0,15,192,0,7,192,0,3,224,0,1,224,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,30,90,20,1,0,0,56,0,0,62,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,1, - 192,0,3,128,0,1,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,29,87,20,1,0,1,224,0,1,224,0, - 3,240,0,7,248,0,7,252,0,15,60,0,30,30,0,56, - 7,0,16,2,0,0,0,0,0,0,0,1,248,0,15,254, - 0,62,63,0,124,31,0,124,31,0,112,31,0,0,31,0, - 1,255,0,15,255,0,63,31,0,124,31,0,120,31,0,248, - 31,0,248,31,32,248,127,224,255,223,192,127,159,128,62,14, - 0,19,27,81,20,1,0,7,129,128,15,227,0,31,255,0, - 63,254,0,49,252,0,96,56,0,0,0,0,0,0,0,0, - 0,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,19,27,81,20,1,0,12,6, - 0,30,15,0,62,31,0,62,31,0,62,31,0,28,14,0, - 0,0,0,0,0,0,0,0,0,1,248,0,15,254,0,62, - 63,0,124,31,0,124,31,0,112,31,0,0,31,0,1,255, - 0,15,255,0,63,31,0,124,31,0,120,31,0,248,31,0, - 248,31,32,248,127,224,255,223,192,127,159,128,62,14,0,19, - 28,84,20,1,0,0,240,0,3,248,0,3,184,0,7,56, - 0,7,56,0,7,56,0,3,240,0,1,224,0,0,0,0, - 0,0,0,1,248,0,15,254,0,62,63,0,124,31,0,124, - 31,0,112,31,0,0,31,0,1,255,0,15,255,0,63,31, - 0,124,31,0,120,31,0,248,31,0,248,31,32,248,127,224, - 255,223,192,127,159,128,62,14,0,27,18,72,29,1,0,0, - 252,62,0,7,254,255,128,15,191,199,128,30,15,131,192,62, - 15,129,192,124,15,1,224,0,15,1,224,0,255,255,224,15, - 255,255,192,31,15,0,0,124,15,0,0,120,15,0,0,248, - 15,128,0,248,31,128,96,252,127,225,224,255,227,255,192,127, - 193,255,0,63,0,124,0,17,27,81,18,1,247,1,252,0, - 7,255,0,31,31,0,60,15,0,60,7,0,120,6,0,120, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,252,0,0,126,1,0,127,7,128,63,254,0,31,252,0, - 7,240,0,1,192,0,1,192,0,1,240,0,3,248,0,0, - 248,0,0,248,0,1,240,0,3,224,0,7,0,0,17,30, - 90,19,1,0,3,128,0,15,128,0,31,192,0,7,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,48,0,0, - 56,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,30, - 90,19,1,0,0,60,0,0,63,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,240,0,1,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,19,1,0,0,224,0,1,240,0,3,248,0,3,248,0, - 7,252,0,15,30,0,14,14,0,28,7,0,24,3,0,0, - 0,0,0,0,0,1,240,0,15,252,0,30,62,0,60,31, - 0,120,15,0,120,15,128,248,15,128,255,255,128,255,254,0, - 248,0,0,248,0,0,248,0,0,252,0,0,126,1,128,127, - 7,0,63,254,0,31,252,0,7,240,0,17,27,81,19,1, - 0,14,7,0,30,15,0,31,15,128,30,15,0,30,15,0, - 28,14,0,0,0,0,0,0,0,0,0,0,1,240,0,15, - 252,0,30,62,0,60,31,0,120,15,0,120,15,128,248,15, - 128,255,255,128,255,254,0,248,0,0,248,0,0,248,0,0, - 252,0,0,126,1,128,127,7,0,63,254,0,31,252,0,7, - 240,0,11,30,60,12,0,0,56,0,252,0,124,0,62,0, - 62,0,31,0,15,0,7,128,3,128,1,128,0,0,0,0, - 7,0,127,0,127,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 127,192,127,224,11,30,60,12,1,0,3,128,3,224,7,224, - 7,192,15,128,15,0,30,0,28,0,24,0,48,0,0,0, - 0,0,14,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,192,14,29,58,12,255,0,7,128,7,192, - 15,192,31,224,31,240,60,240,120,120,112,28,192,8,0,0, - 0,0,3,128,63,128,63,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,63,224,63,240,14,27,54,12,255,0,48,24,120,60, - 248,124,248,124,248,124,112,56,0,0,0,0,0,0,3,128, - 63,128,63,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,63,224, - 63,240,18,29,87,20,1,0,3,0,0,31,192,0,63,231, - 192,3,255,0,0,252,0,3,252,0,15,252,0,30,30,0, - 0,31,0,0,15,0,0,15,128,3,231,128,15,255,128,30, - 63,192,60,31,192,124,15,192,120,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,128,248,7,128,124,15,128, - 124,15,0,126,14,0,63,28,0,15,248,0,3,224,0,22, - 27,81,23,1,0,1,192,64,3,248,224,7,255,192,15,255, - 128,12,127,0,24,30,0,0,0,0,0,0,0,0,0,0, - 14,15,128,254,63,192,254,255,224,63,255,224,63,199,224,63, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 255,143,248,255,223,252,19,30,90,21,1,0,3,128,0,15, - 192,0,15,192,0,7,192,0,3,224,0,1,224,0,0,240, - 0,0,112,0,0,56,0,0,16,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,30,90,21,1,0,0,28,0,0, - 63,0,0,63,0,0,62,0,0,124,0,0,120,0,0,240, - 0,0,224,0,1,192,0,0,128,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,29,87,21,1,0,0,240,0,0, - 240,0,1,248,0,3,252,0,7,252,0,7,158,0,15,15, - 0,28,3,0,8,1,128,0,0,0,0,0,0,1,248,0, - 7,254,0,30,31,128,60,15,128,124,7,192,120,7,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 192,124,3,192,124,7,128,62,7,128,63,15,0,15,252,0, - 3,240,0,19,27,81,21,1,0,3,128,128,7,241,192,15, - 255,128,31,255,0,24,254,0,48,60,0,0,0,0,0,0, - 0,0,0,0,1,248,0,7,254,0,30,31,128,60,15,128, - 124,7,192,120,7,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,192,124,3,192,124,7,128,62,7, - 128,63,15,0,15,252,0,3,240,0,19,27,81,21,1,0, - 14,7,0,15,7,128,31,15,128,31,15,128,30,15,0,14, - 7,0,0,0,0,0,0,0,0,0,0,1,248,0,7,254, - 0,30,31,128,60,15,128,124,7,192,120,7,192,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,192,124, - 3,192,124,7,128,62,7,128,63,15,0,15,252,0,3,240, - 0,15,15,30,17,1,3,3,0,7,0,7,0,7,0,6, - 0,0,0,127,254,255,252,0,0,0,0,3,0,7,0,7, - 0,7,0,6,0,19,20,60,21,1,255,0,0,32,1,248, - 224,7,255,192,30,31,128,60,15,192,60,31,192,120,31,224, - 120,59,224,248,115,224,248,227,224,249,227,224,249,195,224,251, - 131,192,127,3,192,126,7,128,62,7,128,63,15,0,63,252, - 0,99,240,0,192,0,0,22,30,90,23,1,0,3,128,0, - 7,192,0,15,192,0,3,224,0,1,224,0,0,240,0,0, - 240,0,0,120,0,0,56,0,0,24,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,30,90,23,1,0,0,30,0, - 0,31,0,0,63,128,0,62,0,0,124,0,0,120,0,0, - 112,0,0,224,0,0,224,0,1,192,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,29,87,23,1,0,0,112,0, - 0,248,0,1,248,0,3,252,0,3,254,0,7,158,0,15, - 7,0,14,3,128,8,1,0,0,0,0,0,0,0,14,0, - 224,254,31,224,126,7,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,7,224,63,31,252,31,251,252,31,243, - 240,15,193,192,22,27,81,23,1,0,7,3,128,15,7,128, - 31,15,128,31,15,128,31,15,128,14,7,0,0,0,0,0, - 0,0,0,0,0,14,0,224,254,31,224,126,7,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,7,224,63, - 31,252,31,251,252,31,243,240,15,193,192,21,39,117,20,255, - 247,0,7,0,0,15,192,0,15,128,0,31,0,0,31,0, - 0,62,0,0,60,0,0,120,0,0,112,0,0,96,0,0, - 0,0,0,0,0,127,193,248,63,129,248,31,0,224,15,128, - 224,15,129,192,7,193,192,7,193,128,7,195,128,3,227,128, - 3,231,0,1,247,0,1,246,0,0,254,0,0,254,0,0, - 252,0,0,124,0,0,120,0,0,56,0,0,56,0,0,112, - 0,0,112,0,0,224,0,33,224,0,127,192,0,127,128,0, - 255,0,0,124,0,0,20,39,117,22,1,247,6,0,0,254, - 0,0,254,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,31,0,62,127,128,62,255,192,63,135,224,63,3,224,62, - 1,240,62,0,240,62,0,240,62,0,240,62,0,240,62,0, - 240,62,0,224,62,0,224,62,1,192,63,195,192,63,255,128, - 62,255,0,62,60,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,255,192,0,255,192, - 0,21,36,108,20,255,247,3,129,192,7,195,224,7,195,224, - 7,195,224,7,131,192,7,3,128,0,0,0,0,0,0,0, - 0,0,127,193,248,63,129,248,31,0,224,15,128,224,15,129, - 192,7,193,192,7,193,128,7,195,128,3,227,128,3,231,0, - 1,247,0,1,246,0,0,254,0,0,254,0,0,252,0,0, - 124,0,0,120,0,0,56,0,0,56,0,0,112,0,0,112, - 0,0,224,0,33,224,0,127,192,0,127,128,0,255,0,0, - 124,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=18 h=38 x= 3 y=14 dx=21 dy= 0 ascent=31 len=114 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25n[985] U8G_FONT_SECTION("u8g_font_gdb25n") = { - 0,61,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,0,192,3,192,3,192,99,140,123, - 158,125,191,127,252,15,224,7,224,63,252,253,190,249,158,51, - 142,3,192,3,192,3,0,15,14,28,17,1,4,1,128,3, - 128,3,128,3,128,3,128,3,128,127,254,255,252,3,128,3, - 128,3,128,3,128,3,128,3,0,8,12,12,11,2,249,30, - 127,255,127,31,31,30,30,60,56,112,96,12,2,4,14,1, - 9,127,240,255,240,6,6,6,11,3,255,56,124,252,252,252, - 120,17,38,114,19,1,249,0,1,128,0,7,128,0,7,128, - 0,15,0,0,15,0,0,15,0,0,30,0,0,30,0,0, - 28,0,0,60,0,0,60,0,0,120,0,0,120,0,0,120, - 0,0,240,0,0,240,0,0,224,0,1,224,0,1,224,0, - 3,192,0,3,192,0,3,192,0,7,128,0,7,128,0,7, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,120,0,0, - 240,0,0,240,0,0,192,0,0,18,24,72,20,1,0,3, - 240,0,7,252,0,30,62,0,28,31,0,60,15,0,120,15, - 128,120,15,128,120,7,128,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,120, - 7,128,124,7,128,124,15,128,60,15,0,62,14,0,31,30, - 0,15,248,0,3,224,0,16,24,48,20,2,0,0,96,3, - 224,31,224,255,224,99,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,7,240,127,255,127,255,16,24,48, - 20,2,0,3,248,15,252,60,62,124,63,120,31,248,31,112, - 31,0,31,0,62,0,60,0,124,0,120,0,240,1,224,3, - 224,3,192,7,128,15,1,30,3,60,3,120,3,127,255,255, - 255,255,255,16,24,48,20,2,0,7,240,31,248,60,124,120, - 62,248,62,248,62,64,62,0,60,0,124,0,240,7,240,7, - 252,0,254,0,62,0,63,0,31,0,31,0,31,0,31,0, - 30,192,62,240,124,127,248,15,192,17,24,72,20,1,0,0, - 12,0,0,124,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,188,0,7,188,0,7,60,0,14,60,0,14,60,0, - 28,60,0,56,60,0,56,60,0,112,60,0,255,255,128,255, - 255,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,3,255,128,3,255,128,17,24,72,20,1,0,31,255,0, - 31,255,128,31,254,0,31,252,0,24,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,63,240,0,63,252,0,48,126, - 0,96,31,0,0,31,0,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,0,31,0,96,31,0,248,126,0,63, - 252,0,7,224,0,17,24,72,20,2,0,0,14,0,0,126, - 0,1,240,0,7,192,0,15,128,0,30,0,0,62,0,0, - 60,0,0,124,0,0,121,248,0,127,254,0,254,63,0,252, - 31,0,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,124,15,128,124,15,0,60,31,0,31,30,0,15,252,0, - 3,240,0,17,24,72,20,2,0,127,255,128,127,255,0,255, - 255,0,255,255,0,224,6,0,192,14,0,128,12,0,0,28, - 0,0,28,0,0,56,0,0,56,0,0,112,0,0,112,0, - 0,240,0,0,224,0,1,224,0,1,192,0,3,192,0,3, - 192,0,7,128,0,7,128,0,15,128,0,31,0,0,28,0, - 0,17,24,72,21,2,0,3,240,0,15,252,0,28,62,0, - 24,31,0,56,31,0,56,31,0,56,31,0,60,62,0,63, - 60,0,31,248,0,15,240,0,7,252,0,14,254,0,62,63, - 0,124,31,128,120,31,128,248,15,128,248,15,128,248,15,128, - 248,15,0,124,31,0,126,62,0,63,252,0,7,224,0,17, - 25,75,20,2,255,3,240,0,15,252,0,30,62,0,60,30, - 0,120,31,0,120,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,128,126,63,128,63,255,128,15, - 207,0,0,15,0,0,31,0,0,30,0,0,62,0,0,124, - 0,0,248,0,1,240,0,15,192,0,63,0,0,56,0,0, - 6,19,19,11,3,255,56,124,252,252,252,120,0,0,0,0, - 0,0,0,56,124,252,252,252,120}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 3 y=20 dx=35 dy= 0 ascent=33 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25r[6779] U8G_FONT_SECTION("u8g_font_gdb25r") = { - 0,61,57,236,242,25,7,167,18,92,32,127,247,33,247,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 5 y=27 dx=42 dy= 0 ascent=42 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30[19508] U8G_FONT_SECTION("u8g_font_gdb30") = { - 0,74,69,232,239,30,10,50,24,78,32,255,245,42,243,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,12,0,0,8,35, - 35,15,3,243,62,127,255,255,255,254,124,0,0,12,28,28, - 28,60,60,60,60,60,62,62,62,62,62,62,62,62,126,126, - 126,126,126,127,126,120,96,21,30,90,24,2,255,0,24,0, - 0,56,0,0,56,0,0,56,0,0,127,192,3,255,240,7, - 255,248,31,187,240,62,56,240,60,56,96,124,56,32,120,56, - 0,248,56,0,248,56,0,248,56,0,248,56,0,248,56,0, - 248,56,0,252,56,0,124,56,16,126,56,56,63,56,240,31, - 251,224,15,255,192,7,255,128,1,252,0,0,56,0,0,56, - 0,0,56,0,0,48,0,22,29,87,24,1,0,0,31,192, - 0,255,248,1,225,248,3,192,248,7,192,120,7,128,112,15, - 128,48,15,128,48,15,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,255,0,255,255,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,16,31,0,12,31, - 0,24,30,0,56,62,0,120,63,255,248,127,255,248,255,255, - 248,128,15,240,20,20,60,24,2,4,64,0,32,224,0,96, - 113,248,240,63,255,192,31,15,128,30,7,128,28,3,128,56, - 1,192,56,1,192,56,1,192,56,1,192,56,1,192,60,3, - 192,30,7,128,31,15,128,31,255,128,57,249,192,112,0,224, - 224,0,112,64,0,32,27,28,112,24,254,0,127,0,127,224, - 255,128,127,224,127,192,15,0,15,224,30,0,15,224,30,0, - 7,240,60,0,3,240,60,0,3,248,56,0,1,252,120,0, - 0,252,112,0,0,254,240,0,0,126,224,0,0,127,224,0, - 0,63,192,0,0,63,192,0,0,31,192,0,0,31,128,0, - 15,255,255,0,15,255,254,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,63,192,0,1,255,248,0,1,255,248,0,4,49,49,11, - 4,246,48,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,224,0,0,0,0,0,112,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,192,18,34,102,23,3,0,3,252,0,15,255,0,30, - 31,0,60,15,0,124,7,0,124,6,0,126,2,0,127,128, - 0,63,224,0,63,240,0,63,252,0,127,254,0,123,255,0, - 240,255,128,240,63,128,240,31,192,240,7,192,248,7,192,124, - 3,192,127,3,192,63,195,192,31,243,128,15,255,128,7,255, - 0,1,255,0,0,127,128,96,63,128,96,31,128,112,15,128, - 112,15,128,120,15,0,126,30,0,127,252,0,15,240,0,17, - 7,21,19,1,26,56,7,0,124,15,128,252,31,128,252,31, - 128,252,31,128,248,31,0,112,14,0,31,31,124,35,2,0, - 0,31,224,0,0,127,252,0,1,240,31,0,7,192,7,128, - 15,0,1,224,30,0,0,224,28,3,240,112,56,31,254,56, - 56,60,124,56,112,120,60,28,112,240,28,28,240,240,24,28, - 224,224,0,14,225,224,0,14,225,224,0,14,225,224,0,14, - 225,224,0,14,225,224,0,14,225,240,0,14,240,240,0,30, - 112,248,6,28,112,126,30,28,56,127,252,56,56,31,240,56, - 28,7,192,112,14,0,0,224,15,0,1,224,7,192,7,128, - 1,240,31,0,0,127,252,0,0,31,240,0,12,16,32,13, - 1,14,15,0,63,128,99,192,227,192,131,192,7,192,63,192, - 123,192,243,192,243,192,247,224,255,240,115,128,0,0,255,224, - 255,224,20,22,66,25,2,0,0,192,32,1,192,112,1,192, - 224,3,129,224,7,131,192,15,7,192,31,15,128,62,15,128, - 126,31,0,252,63,0,252,126,0,252,126,0,252,63,0,126, - 31,0,62,15,128,31,15,128,15,7,192,7,131,192,3,129, - 224,1,192,224,0,192,112,0,192,32,21,11,33,24,2,4, - 127,255,248,255,255,248,255,255,248,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 96,15,3,6,17,1,11,127,254,127,252,255,252,17,17,51, - 17,0,17,3,224,0,15,248,0,60,30,0,48,6,0,103, - 227,0,99,51,0,195,49,128,195,49,128,195,225,128,195,65, - 128,195,97,128,99,35,0,99,51,0,55,158,0,60,30,0, - 15,248,0,3,224,0,20,4,12,24,2,27,127,255,240,255, - 255,240,255,255,224,255,255,224,11,13,26,17,3,17,15,0, - 31,192,63,192,123,224,113,224,241,224,241,224,241,224,241,192, - 251,192,127,128,127,0,30,0,18,22,66,20,1,3,0,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,127,255,192,255,255,192,255,255,128,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,192, - 0,0,0,0,0,0,0,127,255,192,127,255,192,255,255,128, - 13,17,34,17,2,15,7,224,31,240,120,248,120,120,248,120, - 0,120,0,240,0,224,1,224,3,192,7,128,15,0,30,8, - 60,8,120,24,255,248,255,248,13,18,36,17,1,14,7,224, - 31,240,60,248,120,120,124,120,0,120,0,240,1,224,7,240, - 5,240,0,120,0,120,0,120,0,120,128,120,224,240,127,224, - 31,128,11,11,22,15,5,24,15,0,15,192,31,224,31,128, - 63,0,62,0,124,0,120,0,240,0,224,0,64,0,27,33, - 132,28,1,245,3,0,6,0,255,128,254,0,255,128,126,0, - 63,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,192,254,0,31,227,254,0,31,255,254,64,31,255,127,224, - 30,254,127,192,30,124,63,128,30,56,28,0,30,0,0,0, - 30,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0, - 31,0,0,0,31,128,0,0,31,128,0,0,31,192,0,0, - 31,0,0,0,24,0,0,0,26,36,144,29,1,250,1,255, - 255,192,7,255,255,192,31,195,255,0,63,3,222,0,126,3, - 222,0,124,3,222,0,252,3,222,0,252,3,222,0,252,3, - 222,0,252,3,222,0,252,3,222,0,126,3,222,0,127,3, - 222,0,63,3,222,0,31,195,222,0,7,255,222,0,1,255, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,7,255,0,0,31,255,192,0,31,255,192,7,7, - 7,10,1,13,60,126,254,254,254,252,120,10,10,20,11,1, - 246,14,0,28,0,30,0,63,128,63,192,15,192,15,192,31, - 128,254,0,112,0,13,17,34,17,2,15,1,128,15,128,255, - 128,71,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,240,127,248,11,16,32, - 13,1,14,15,0,63,128,123,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,192,123,192,63,128,30,0,0,0,255, - 224,255,224,20,22,66,25,3,0,64,32,0,224,112,0,112, - 56,0,120,28,0,56,30,0,60,15,0,30,15,128,31,7, - 192,31,135,224,15,199,240,15,227,240,15,227,240,15,199,240, - 31,135,224,31,7,192,30,15,128,60,15,0,56,30,0,120, - 28,0,112,56,0,224,48,0,64,96,0,27,29,116,30,2, - 0,3,0,1,192,63,0,3,128,255,0,7,128,15,0,15, - 0,15,0,14,0,15,0,28,0,15,0,60,0,15,0,120, - 0,15,0,112,0,15,0,240,0,15,1,224,0,15,1,192, - 0,31,131,128,0,255,231,128,0,0,15,0,0,0,14,1, - 0,0,28,15,128,0,60,15,128,0,120,31,128,0,112,55, - 128,0,224,55,128,1,224,103,128,3,192,199,128,3,129,199, - 128,7,129,255,224,15,3,255,192,30,0,7,128,28,0,7, - 128,60,0,63,224,26,29,116,30,2,0,3,0,1,192,63, - 0,7,128,255,0,7,128,15,0,15,0,15,0,30,0,15, - 0,60,0,15,0,60,0,15,0,120,0,15,0,240,0,15, - 0,224,0,15,1,224,0,15,3,192,0,31,135,128,0,255, - 231,0,0,0,15,0,0,0,30,63,0,0,60,127,192,0, - 56,231,192,0,121,195,192,0,241,131,192,1,224,3,128,1, - 192,7,0,3,192,14,0,7,128,28,0,15,0,56,0,14, - 0,112,64,30,0,224,64,60,1,255,192,120,3,255,192,28, - 29,116,30,1,0,15,128,0,224,63,192,1,192,115,224,3, - 192,241,224,7,128,129,192,7,0,3,128,14,0,15,192,30, - 0,15,224,60,0,1,240,56,0,0,240,120,0,0,240,240, - 0,0,240,224,0,225,225,192,0,127,195,192,0,31,7,128, - 0,0,7,0,128,0,14,7,192,0,30,7,192,0,60,11, - 192,0,56,27,192,0,112,19,192,0,240,51,192,1,224,99, - 192,1,192,227,192,3,192,255,240,7,129,255,224,15,0,3, - 192,14,0,3,192,30,0,31,240,18,35,105,22,2,243,0, - 248,0,1,252,0,3,252,0,3,252,0,3,252,0,3,248, - 0,1,240,0,0,0,0,0,0,0,0,0,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,0,1,240,0,1, - 224,0,3,224,0,7,192,0,15,192,0,15,128,0,31,0, - 0,63,0,0,126,0,0,126,0,0,252,0,0,252,3,192, - 252,15,192,252,15,192,252,15,192,252,15,128,126,31,128,127, - 31,0,63,254,0,15,240,0,30,42,168,30,0,0,0,32, - 0,0,0,112,0,0,0,248,0,0,1,252,0,0,1,254, - 0,0,0,255,0,0,0,63,128,0,0,15,192,0,0,3, - 224,0,0,0,224,0,0,0,64,0,0,0,0,0,0,1, - 128,0,0,7,128,0,0,15,192,0,0,31,192,0,0,31, - 224,0,0,31,224,0,0,63,224,0,0,63,240,0,0,59, - 240,0,0,121,240,0,0,121,248,0,0,113,248,0,0,240, - 252,0,0,240,252,0,0,224,252,0,1,224,126,0,1,224, - 126,0,1,192,126,0,3,255,255,0,3,255,255,0,3,128, - 31,0,7,128,31,128,7,0,31,128,7,0,15,192,15,0, - 15,192,14,0,15,192,14,0,7,224,30,0,7,224,255,192, - 63,252,255,192,63,252,30,42,168,30,0,0,0,0,32,0, - 0,0,48,0,0,0,124,0,0,0,254,0,0,1,254,0, - 0,3,248,0,0,7,224,0,0,15,128,0,0,31,0,0, - 0,60,0,0,0,16,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,41,164,30,0,0,0,7,0,0,0,7, - 128,0,0,15,192,0,0,31,224,0,0,63,240,0,0,127, - 248,0,0,248,248,0,1,240,60,0,1,192,14,0,1,0, - 8,0,0,0,0,0,0,1,128,0,0,7,128,0,0,15, - 192,0,0,31,192,0,0,31,224,0,0,31,224,0,0,63, - 224,0,0,63,240,0,0,59,240,0,0,121,240,0,0,121, - 248,0,0,113,248,0,0,240,252,0,0,240,252,0,0,224, - 252,0,1,224,126,0,1,224,126,0,1,192,126,0,3,255, - 255,0,3,255,255,0,3,128,31,0,7,128,31,128,7,0, - 31,128,7,0,15,192,15,0,15,192,14,0,15,192,14,0, - 7,224,30,0,7,224,255,192,63,252,255,192,63,252,30,40, - 160,30,0,0,0,16,4,0,0,127,7,0,0,255,254,0, - 1,255,254,0,1,255,252,0,3,255,248,0,3,3,240,0, - 2,0,64,0,0,0,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,40,160,30,0,0,0,64,16,0,0,240, - 60,0,1,248,126,0,1,248,126,0,1,248,126,0,1,240, - 124,0,1,240,124,0,0,64,32,0,0,0,0,0,0,0, - 0,0,0,1,128,0,0,7,128,0,0,15,192,0,0,31, - 192,0,0,31,224,0,0,31,224,0,0,63,224,0,0,63, - 240,0,0,59,240,0,0,121,240,0,0,121,248,0,0,113, - 248,0,0,240,252,0,0,240,252,0,0,224,252,0,1,224, - 126,0,1,224,126,0,1,192,126,0,3,255,255,0,3,255, - 255,0,3,128,31,0,7,128,31,128,7,0,31,128,7,0, - 15,192,15,0,15,192,14,0,15,192,14,0,7,224,30,0, - 7,224,255,192,63,252,255,192,63,252,30,42,168,30,0,0, - 0,1,0,0,0,15,224,0,0,31,224,0,0,28,240,0, - 0,60,240,0,0,60,240,0,0,60,224,0,0,63,224,0, - 0,31,128,0,0,4,0,0,0,0,0,0,0,0,0,0, - 0,1,128,0,0,7,128,0,0,15,192,0,0,31,192,0, - 0,31,224,0,0,31,224,0,0,63,224,0,0,63,240,0, - 0,59,240,0,0,121,240,0,0,121,248,0,0,113,248,0, - 0,240,252,0,0,240,252,0,0,224,252,0,1,224,126,0, - 1,224,126,0,1,192,126,0,3,255,255,0,3,255,255,0, - 3,128,31,0,7,128,31,128,7,0,31,128,7,0,15,192, - 15,0,15,192,14,0,15,192,14,0,7,224,30,0,7,224, - 255,192,63,252,255,192,63,252,38,30,150,39,0,0,0,127, - 255,255,240,0,127,255,255,248,0,15,255,0,112,0,7,255, - 0,112,0,15,63,0,112,0,15,63,0,48,0,15,63,0, - 48,0,30,63,0,48,0,30,63,0,0,0,60,63,0,0, - 0,60,63,0,0,0,60,63,0,0,0,120,63,0,0,0, - 127,255,255,192,0,255,255,255,128,0,240,63,1,128,0,224, - 63,0,0,1,224,63,0,0,1,224,63,0,0,3,192,63, - 0,0,3,192,63,0,0,3,128,63,0,0,7,128,63,0, - 0,7,128,63,0,12,15,0,63,0,12,15,0,63,0,28, - 14,0,63,0,28,31,0,127,128,124,255,193,255,255,248,255, - 193,255,255,248,24,40,120,27,1,246,0,31,224,0,255,252, - 1,255,254,7,224,254,15,192,126,31,128,60,31,0,28,62, - 0,0,62,0,0,126,0,0,124,0,0,124,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,0,63, - 128,2,63,128,7,31,224,15,15,252,254,7,255,248,3,255, - 240,0,255,192,0,30,0,0,28,0,0,31,0,0,63,192, - 0,63,192,0,15,192,0,15,128,0,31,128,0,254,0,0, - 112,0,23,42,126,25,1,0,1,0,0,3,128,0,15,192, - 0,15,224,0,31,240,0,7,248,0,1,252,0,0,126,0, - 0,31,0,0,7,0,0,2,0,0,0,0,255,255,248,255, - 255,252,63,128,56,31,128,56,31,128,24,31,128,24,31,128, - 24,31,128,24,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,255,224,31,255,224,31,128,192,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,6,31,128,6,31,128,14,31,128,14,63,192,30, - 255,255,254,255,255,252,23,42,126,25,1,0,0,2,0,0, - 3,128,0,7,224,0,15,240,0,31,240,0,63,192,0,127, - 0,0,252,0,1,240,0,1,192,0,1,0,0,0,0,0, - 255,255,248,255,255,252,63,128,56,31,128,56,31,128,24,31, - 128,24,31,128,24,31,128,24,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,255,224,31,255,224,31,128,192, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,6,31,128,6,31,128,14,31,128, - 14,63,192,30,255,255,254,255,255,252,23,41,123,25,1,0, - 0,56,0,0,124,0,0,254,0,0,255,0,1,255,0,3, - 255,128,7,199,192,15,1,224,14,0,224,8,0,64,0,0, - 0,255,255,248,255,255,252,63,128,56,31,128,56,31,128,24, - 31,128,24,31,128,24,31,128,24,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,255,224,31,255,224,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,6,31,128,6,31,128,14,31, - 128,14,63,192,30,255,255,254,255,255,252,23,40,120,25,1, - 0,2,0,128,7,129,224,15,195,240,15,195,240,15,195,240, - 15,131,224,15,3,192,4,1,0,0,0,0,0,0,0,255, - 255,248,255,255,252,63,128,56,31,128,56,31,128,24,31,128, - 24,31,128,24,31,128,24,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,255,224,31,255,224,31,128,192,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,6,31,128,6,31,128,14,31,128,14, - 63,192,30,255,255,254,255,255,252,15,42,84,16,255,0,8, - 0,28,0,62,0,127,0,127,128,191,192,15,224,3,240,0, - 248,0,56,0,16,0,0,31,254,31,254,7,248,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,7,248,31, - 254,31,254,14,42,84,16,2,0,0,128,0,224,1,248,3, - 252,7,252,15,240,31,192,63,0,124,0,112,0,32,0,0, - 0,255,240,255,240,63,192,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,63,192,255,240,255,240,16,41,82, - 16,0,0,3,128,7,192,15,224,15,240,31,240,63,248,124, - 124,240,30,224,15,128,4,0,0,63,252,63,252,15,240,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,15, - 240,63,252,63,252,16,40,80,16,0,0,32,8,120,30,252, - 63,252,63,252,63,248,62,240,60,64,16,0,0,0,0,63, - 252,63,252,15,240,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,15,240,63,252,63,252,29,30,120,31,0, - 0,3,255,192,0,255,255,248,0,127,192,254,0,143,192,63, - 128,15,192,31,192,15,192,15,192,15,192,7,224,15,192,7, - 240,15,192,3,240,15,192,3,240,15,192,3,248,15,192,1, - 248,15,192,1,248,127,255,1,248,255,255,1,248,15,192,1, - 248,15,192,1,248,15,192,1,248,15,192,1,248,15,192,1, - 240,15,192,3,240,15,192,3,240,15,192,7,224,15,192,7, - 224,15,192,15,192,15,192,31,128,15,192,63,0,31,224,254, - 0,127,255,248,0,127,255,192,0,30,40,160,32,1,0,0, - 16,4,0,0,127,7,0,0,255,255,0,0,255,254,0,1, - 255,252,0,3,255,252,0,3,3,248,0,2,0,64,0,0, - 0,0,0,0,0,0,0,255,0,15,252,255,128,15,252,63, - 192,3,240,31,192,1,224,31,224,1,224,31,240,1,224,31, - 240,1,224,31,248,1,224,31,252,1,224,30,254,1,224,30, - 126,1,224,30,63,1,224,30,63,129,224,30,31,129,224,30, - 15,193,224,30,7,225,224,30,7,225,224,30,3,241,224,30, - 1,249,224,30,1,253,224,30,0,253,224,30,0,127,224,30, - 0,63,224,30,0,63,224,30,0,31,224,30,0,15,224,30, - 0,7,224,63,0,7,224,255,192,3,224,255,192,0,224,27, - 42,168,30,1,0,0,64,0,0,0,224,0,0,1,240,0, - 0,3,248,0,0,3,252,0,0,1,254,0,0,0,127,0, - 0,0,31,128,0,0,7,192,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,31,192,0,0,255,240,0,3,225,252, - 0,7,128,126,0,15,0,63,0,31,0,31,0,30,0,31, - 128,62,0,15,128,126,0,15,192,124,0,15,192,124,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,254,0,7,192,126,0,15,192,126,0,15,128,127,0,15, - 128,63,0,31,0,31,128,31,0,31,192,62,0,15,240,252, - 0,7,255,240,0,1,255,224,0,0,127,0,0,27,42,168, - 30,1,0,0,0,64,0,0,0,96,0,0,0,248,0,0, - 1,252,0,0,3,252,0,0,7,240,0,0,15,192,0,0, - 31,128,0,0,62,0,0,0,120,0,0,0,32,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,41,164,30,1, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,127,224,0,0,255,240,0,1,249,248,0,3,224,120, - 0,3,128,28,0,2,0,8,0,0,0,0,0,0,31,192, - 0,0,255,240,0,3,225,252,0,7,128,126,0,15,0,63, - 0,31,0,31,0,30,0,31,128,62,0,15,128,126,0,15, - 192,124,0,15,192,124,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,254,0,7,192,126,0,15, - 192,126,0,15,128,127,0,15,128,63,0,31,0,31,128,31, - 0,31,192,62,0,15,240,252,0,7,255,240,0,1,255,224, - 0,0,127,0,0,27,40,160,30,1,0,0,32,8,0,0, - 254,14,0,1,255,254,0,1,255,252,0,3,255,248,0,7, - 255,248,0,6,7,240,0,2,0,128,0,0,0,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,40,160,30,1, - 0,0,128,32,0,1,240,124,0,1,240,124,0,3,240,252, - 0,3,240,252,0,3,240,252,0,3,224,248,0,0,128,32, - 0,0,0,0,0,0,0,0,0,0,31,192,0,0,255,240, - 0,3,225,252,0,7,128,126,0,15,0,63,0,31,0,31, - 0,30,0,31,128,62,0,15,128,126,0,15,192,124,0,15, - 192,124,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,254,0,7,192,126,0,15,192,126,0,15, - 128,127,0,15,128,63,0,31,0,31,128,31,0,31,192,62, - 0,15,240,252,0,7,255,240,0,1,255,224,0,0,127,0, - 0,16,15,30,20,2,6,96,6,240,15,120,31,60,62,30, - 124,15,248,7,240,3,192,7,224,15,248,30,124,60,62,120, - 31,240,15,96,6,27,31,124,30,1,255,0,31,195,224,0, - 255,247,192,3,225,255,128,7,128,127,0,15,0,63,0,31, - 0,63,128,30,0,127,128,62,0,255,192,126,0,255,192,124, - 1,255,192,124,3,239,224,252,3,231,224,252,7,199,224,252, - 15,135,224,252,15,7,224,252,31,7,224,252,62,7,224,252, - 60,7,224,252,120,7,192,254,248,7,192,127,240,15,192,127, - 224,15,128,127,192,15,128,63,128,31,0,63,128,31,0,31, - 192,62,0,31,240,252,0,63,255,240,0,121,255,224,0,248, - 127,0,0,192,0,0,0,29,42,168,32,1,0,0,32,0, - 0,0,48,0,0,0,248,0,0,1,252,0,0,1,254,0, - 0,0,127,0,0,0,31,128,0,0,15,192,0,0,3,224, - 0,0,0,240,0,0,0,64,0,0,0,0,0,255,240,31, - 248,255,240,31,248,63,192,7,224,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,128,31,192,7,128,15,192,7,128,15,224,7, - 0,7,224,15,0,3,248,62,0,1,255,252,0,0,255,240, - 0,0,31,192,0,29,42,168,32,1,0,0,0,32,0,0, - 0,56,0,0,0,124,0,0,0,254,0,0,1,254,0,0, - 3,252,0,0,7,240,0,0,15,192,0,0,31,0,0,0, - 28,0,0,0,16,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,41,164,32,1,0,0,3,128,0,0,7,128, - 0,0,15,192,0,0,31,224,0,0,63,240,0,0,127,248, - 0,0,124,124,0,0,240,62,0,1,192,14,0,0,128,4, - 0,0,0,0,0,255,240,31,248,255,240,31,248,63,192,7, - 224,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,128,31,192,7, - 128,15,192,7,128,15,224,7,0,7,224,15,0,3,248,62, - 0,1,255,252,0,0,255,240,0,0,31,192,0,29,40,160, - 32,1,0,0,32,8,0,0,248,62,0,0,248,62,0,1, - 248,126,0,1,248,126,0,1,248,126,0,0,240,60,0,0, - 64,16,0,0,0,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,42,168,29,0,0,0,0,32,0,0,0,48, - 0,0,0,124,0,0,1,254,0,0,3,254,0,0,7,248, - 0,0,15,224,0,0,31,128,0,0,62,0,0,0,60,0, - 0,0,16,0,0,0,0,0,0,127,0,31,248,255,128,31, - 248,31,192,3,192,15,192,3,128,7,224,7,128,3,240,7, - 0,3,240,15,0,1,248,14,0,1,248,30,0,0,252,28, - 0,0,124,60,0,0,126,56,0,0,63,120,0,0,63,240, - 0,0,31,240,0,0,31,224,0,0,15,224,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,31,224,0,0,255,252,0,0,255,252, - 0,24,30,90,27,1,0,255,248,0,255,248,0,63,192,0, - 31,128,0,31,128,0,31,128,0,31,255,128,31,255,240,31, - 131,248,31,128,252,31,128,126,31,128,127,31,128,63,31,128, - 63,31,128,63,31,128,63,31,128,63,31,128,62,31,128,126, - 31,128,252,31,129,248,31,191,240,31,191,128,31,128,0,31, - 128,0,31,128,0,31,128,0,63,192,0,255,248,0,255,248, - 0,28,36,144,31,1,0,0,7,240,0,0,63,252,0,0, - 255,254,0,1,240,255,0,3,224,63,128,7,192,31,128,7, - 192,31,192,15,128,15,192,15,128,15,192,31,128,15,192,31, - 128,15,192,31,128,31,128,31,128,63,0,31,128,126,0,31, - 129,248,0,31,135,224,0,31,135,128,0,31,143,128,0,31, - 143,128,0,31,143,192,0,31,143,224,0,31,135,248,0,31, - 135,254,0,31,131,255,128,31,128,255,192,31,128,63,224,31, - 128,31,240,31,128,7,240,31,140,3,240,31,142,1,240,31, - 142,1,240,31,142,1,240,31,143,1,224,63,143,195,192,255, - 143,255,128,255,129,254,0,23,35,105,24,1,0,1,192,0, - 15,192,0,15,224,0,7,240,0,3,240,0,1,248,0,0, - 248,0,0,124,0,0,60,0,0,30,0,0,12,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,35,105,24,1,0,0,15,0,0, - 15,192,0,31,224,0,31,128,0,63,0,0,62,0,0,124, - 0,0,120,0,0,240,0,0,224,0,0,192,0,0,0,0, - 0,0,0,0,255,0,15,255,128,31,15,192,62,7,224,126, - 7,224,252,7,224,96,7,224,0,7,224,0,31,224,1,255, - 224,7,255,224,31,231,224,63,135,224,63,7,224,126,7,224, - 126,7,224,126,7,224,126,31,228,127,63,252,63,247,254,63, - 231,240,15,131,128,23,35,105,24,1,0,0,120,0,0,252, - 0,0,252,0,1,254,0,3,255,0,3,255,0,7,207,128, - 15,135,192,15,1,192,28,0,224,8,0,64,0,0,0,0, - 0,0,0,255,0,15,255,128,31,15,192,62,7,224,126,7, - 224,252,7,224,96,7,224,0,7,224,0,31,224,1,255,224, - 7,255,224,31,231,224,63,135,224,63,7,224,126,7,224,126, - 7,224,126,7,224,126,31,228,127,63,252,63,247,254,63,231, - 240,15,131,128,23,33,99,24,1,0,3,192,48,7,240,48, - 15,252,96,31,255,224,31,255,192,56,127,128,48,15,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,0,15,255, - 128,31,15,192,62,7,224,126,7,224,252,7,224,96,7,224, - 0,7,224,0,31,224,1,255,224,7,255,224,31,231,224,63, - 135,224,63,7,224,126,7,224,126,7,224,126,7,224,126,31, - 228,127,63,252,63,247,254,63,231,240,15,131,128,23,33,99, - 24,1,0,7,1,192,15,131,224,31,135,224,31,135,224,31, - 135,224,31,7,192,14,3,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,34,102,24,1,0,0,60,0,0, - 254,0,1,239,0,3,207,0,3,207,0,3,207,0,3,238, - 0,1,252,0,0,248,0,0,0,0,0,0,0,0,0,0, - 0,255,0,15,255,128,31,15,192,62,7,224,126,7,224,252, - 7,224,96,7,224,0,7,224,0,31,224,1,255,224,7,255, - 224,31,231,224,63,135,224,63,7,224,126,7,224,126,7,224, - 126,7,224,126,31,228,127,63,252,63,247,254,63,231,240,15, - 131,128,33,22,110,35,1,0,0,63,3,224,0,1,255,159, - 248,0,7,255,252,62,0,15,135,248,30,0,31,3,240,31, - 0,63,3,240,15,0,127,3,224,15,128,120,3,224,15,128, - 0,3,224,15,128,0,127,255,255,128,3,255,255,254,0,15, - 195,224,0,0,63,3,224,0,0,126,3,224,0,0,124,3, - 240,0,0,252,3,240,1,0,252,7,248,7,0,254,31,252, - 31,0,255,252,255,254,0,127,248,127,252,0,127,224,63,240, - 0,31,128,15,192,0,20,32,96,22,2,246,0,127,128,1, - 255,240,7,135,224,15,3,224,30,1,224,62,0,192,124,0, - 192,124,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,96,127, - 129,224,63,255,192,31,255,128,15,254,0,3,252,0,0,240, - 0,0,224,0,0,252,0,1,254,0,0,254,0,0,126,0, - 0,124,0,0,252,0,3,240,0,1,128,0,19,35,105,23, - 2,0,3,128,0,15,192,0,31,224,0,7,224,0,3,240, - 0,1,240,0,0,248,0,0,120,0,0,60,0,0,28,0, - 0,8,0,0,0,0,0,0,0,0,252,0,7,255,0,15, - 31,128,30,15,128,62,15,192,124,7,192,124,7,224,124,7, - 224,252,7,224,255,255,224,255,255,128,252,0,0,252,0,0, - 252,0,0,254,0,0,126,0,64,127,0,224,63,131,192,63, - 255,128,31,255,0,15,254,0,3,248,0,19,35,105,23,2, - 0,0,14,0,0,31,192,0,31,192,0,63,128,0,63,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,0, - 192,0,0,0,0,0,0,0,0,252,0,7,255,0,15,31, - 128,30,15,128,62,15,192,124,7,192,124,7,224,124,7,224, - 252,7,224,255,255,224,255,255,128,252,0,0,252,0,0,252, - 0,0,254,0,0,126,0,64,127,0,224,63,131,192,63,255, - 128,31,255,0,15,254,0,3,248,0,19,35,105,23,2,0, - 0,120,0,0,248,0,1,252,0,1,254,0,3,254,0,7, - 255,0,15,223,128,15,7,128,30,3,192,60,1,224,24,0, - 64,0,0,0,0,0,0,0,252,0,7,255,0,15,31,128, - 30,15,128,62,15,192,124,7,192,124,7,224,124,7,224,252, - 7,224,255,255,224,255,255,128,252,0,0,252,0,0,252,0, - 0,254,0,0,126,0,64,127,0,224,63,131,192,63,255,128, - 31,255,0,15,254,0,3,248,0,19,33,99,23,2,0,15, - 3,192,31,7,192,31,135,224,31,135,224,31,7,192,31,7, - 192,14,3,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,252,0,7,255,0,15,31,128,30,15,128,62,15,192,124, - 7,192,124,7,224,124,7,224,252,7,224,255,255,224,255,255, - 128,252,0,0,252,0,0,252,0,0,254,0,0,126,0,64, - 127,0,224,63,131,192,63,255,128,31,255,0,15,254,0,3, - 248,0,13,35,70,14,0,0,28,0,126,0,254,0,127,0, - 31,0,15,128,7,128,3,192,1,192,0,224,0,64,0,0, - 0,0,1,192,63,192,127,192,63,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,31,224,127,248,127,248,14,35, - 70,14,1,0,0,224,1,252,1,252,3,248,3,240,7,224, - 7,192,15,128,15,0,30,0,8,0,0,0,0,0,3,128, - 127,128,255,128,127,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,16,35,70,14,255,0, - 3,192,3,224,7,240,15,240,15,248,31,252,62,124,60,30, - 120,15,240,7,64,3,0,0,0,0,0,224,31,224,63,224, - 31,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 15,240,63,252,63,252,16,33,66,14,255,0,56,14,124,31, - 124,31,252,63,252,63,124,31,120,30,0,0,0,0,0,0, - 0,0,0,224,31,224,63,224,31,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,240,63,252,63,252,21,34, - 102,25,2,0,1,192,0,15,224,0,63,240,248,31,255,248, - 0,255,192,0,126,0,1,255,0,7,239,128,31,143,128,2, - 7,192,0,3,224,0,3,224,1,251,240,7,253,240,15,255, - 240,31,15,248,62,7,248,62,3,248,124,3,248,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,240,252, - 1,240,252,1,240,126,3,224,126,3,224,63,3,192,63,7, - 128,31,143,0,7,254,0,1,248,0,26,33,132,28,1,0, - 0,240,12,0,1,252,12,0,3,255,28,0,3,255,248,0, - 7,255,240,0,14,31,224,0,12,3,192,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,1,240,0, - 127,135,252,0,255,159,252,0,63,191,254,0,31,248,254,0, - 31,224,126,0,31,192,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,63,192,255,0,255,243,255,192, - 255,243,255,192,21,35,105,25,2,0,1,192,0,15,224,0, - 15,224,0,7,240,0,3,240,0,1,248,0,0,248,0,0, - 124,0,0,60,0,0,30,0,0,12,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,21,35,105,25,2,0,0,15,0,0,15,192,0, - 31,224,0,31,128,0,63,0,0,62,0,0,124,0,0,120, - 0,0,240,0,0,224,0,0,192,0,0,0,0,0,0,0, - 0,252,0,3,255,0,15,15,192,30,7,224,62,7,224,62, - 3,240,124,3,240,124,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,252,1,248,252,1,240,126,1,240, - 126,3,224,62,3,224,63,3,192,31,135,128,7,254,0,1, - 248,0,21,35,105,25,2,0,0,120,0,0,252,0,0,252, - 0,1,254,0,3,255,0,3,255,0,7,207,128,15,135,192, - 15,1,192,28,0,224,8,0,64,0,0,0,0,0,0,0, - 252,0,3,255,0,15,15,192,30,7,224,62,7,224,62,3, - 240,124,3,240,124,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,248,252,1,240,126,1,240,126, - 3,224,62,3,224,63,3,192,31,135,128,7,254,0,1,248, - 0,21,33,99,25,2,0,3,192,48,7,240,48,15,252,96, - 31,255,224,31,255,192,56,127,128,48,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,252,0,3,255,0,15,15, - 192,30,7,224,62,7,224,62,3,240,124,3,240,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,248,252, - 1,248,252,1,240,126,1,240,126,3,224,62,3,224,63,3, - 192,31,135,128,7,254,0,1,248,0,21,33,99,25,2,0, - 7,1,192,15,131,224,31,135,224,31,135,224,31,135,224,31, - 7,192,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,18,18,54,20,1,4,0,192,0,1,224,0,1, - 224,0,1,224,0,1,224,0,0,192,0,0,0,0,127,255, - 192,127,255,192,255,255,128,0,0,0,0,0,0,0,192,0, - 1,224,0,1,224,0,1,224,0,1,224,0,0,192,0,21, - 24,72,25,2,255,0,0,24,0,252,56,3,255,240,15,15, - 224,30,7,224,62,3,240,60,7,240,124,15,240,124,31,248, - 252,29,248,252,57,248,252,121,248,252,241,248,252,225,248,253, - 193,248,255,193,240,127,129,240,127,1,224,62,3,224,63,3, - 192,63,135,128,127,254,0,113,248,0,192,0,0,26,35,140, - 27,1,0,0,224,0,0,3,240,0,0,7,240,0,0,1, - 248,0,0,0,248,0,0,0,124,0,0,0,62,0,0,0, - 30,0,0,0,15,0,0,0,7,0,0,0,2,0,0,0, - 0,0,0,0,0,0,0,3,128,28,0,255,135,252,0,255, - 135,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,129,252,0,31,199,252,128,31, - 255,255,128,15,254,255,192,7,248,126,0,3,224,112,0,26, - 35,140,27,1,0,0,3,128,0,0,7,240,0,0,7,240, - 0,0,15,224,0,0,15,192,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,60,0,0,0,120,0,0,0,48,0, - 0,0,0,0,0,0,0,0,0,3,128,28,0,255,135,252, - 0,255,135,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,129,252,0,31,199,252, - 128,31,255,255,128,15,254,255,192,7,248,126,0,3,224,112, - 0,26,35,140,27,1,0,0,30,0,0,0,62,0,0,0, - 127,0,0,0,255,128,0,0,255,128,0,1,255,192,0,3, - 247,224,0,3,193,224,0,7,128,240,0,15,0,112,0,6, - 0,48,0,0,0,0,0,0,0,0,0,3,128,28,0,255, - 135,252,0,255,135,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,129,252,0,31, - 199,252,128,31,255,255,128,15,254,255,192,7,248,126,0,3, - 224,112,0,26,33,132,27,1,0,3,192,240,0,7,193,240, - 0,7,225,248,0,7,225,248,0,7,193,240,0,7,193,240, - 0,7,129,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,128,28,0,255,135,252,0,255,135,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,129,252,0,31,199,252,128,31,255,255, - 128,15,254,255,192,7,248,126,0,3,224,112,0,25,46,184, - 24,255,245,0,1,224,0,0,3,248,0,0,3,248,0,0, - 3,240,0,0,7,224,0,0,7,192,0,0,15,128,0,0, - 15,0,0,0,30,0,0,0,28,0,0,0,56,0,0,0, - 0,0,0,0,0,0,0,127,240,127,128,127,240,127,128,31, - 192,30,0,15,192,28,0,15,192,28,0,7,224,60,0,7, - 224,56,0,3,240,56,0,3,240,112,0,1,240,112,0,1, - 248,240,0,1,248,224,0,0,252,224,0,0,253,224,0,0, - 125,192,0,0,127,192,0,0,127,128,0,0,63,128,0,0, - 63,128,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,30,0,0,0,28,0,0,0,60,0,0,0, - 120,0,0,32,248,0,0,63,240,0,0,127,224,0,0,255, - 192,0,0,255,128,0,0,126,0,0,0,24,47,141,27,1, - 245,3,0,0,63,128,0,255,128,0,255,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,131,224,31,143, - 248,31,191,252,31,255,252,31,240,254,31,192,126,31,128,63, - 31,128,63,31,128,31,31,128,31,31,128,31,31,128,31,31, - 128,31,31,128,30,31,128,30,31,128,62,31,192,60,31,240, - 124,31,255,248,31,255,240,31,159,224,31,135,128,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,63,192,0,255,248,0,255,248,0,25,44, - 176,24,255,245,0,224,56,0,1,240,124,0,3,240,252,0, - 3,240,252,0,3,240,252,0,3,224,248,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 127,240,127,128,127,240,127,128,31,192,30,0,15,192,28,0, - 15,192,28,0,7,224,60,0,7,224,56,0,3,240,56,0, - 3,240,112,0,1,240,112,0,1,248,240,0,1,248,224,0, - 0,252,224,0,0,253,224,0,0,125,192,0,0,127,192,0, - 0,127,128,0,0,63,128,0,0,63,128,0,0,31,0,0, - 0,31,0,0,0,14,0,0,0,14,0,0,0,30,0,0, - 0,28,0,0,0,60,0,0,0,120,0,0,32,248,0,0, - 63,240,0,0,127,224,0,0,255,192,0,0,255,128,0,0, - 126,0,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=22 h=46 x= 3 y=17 dx=25 dy= 0 ascent=38 len=138 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30n[1304] U8G_FONT_SECTION("u8g_font_gdb30n") = { - 0,74,69,232,239,29,0,0,0,0,42,58,0,38,247,29, - 0,19,20,60,21,1,17,0,48,0,1,240,0,1,240,0, - 32,240,0,112,225,128,120,227,192,126,231,224,127,255,224,31, - 255,0,3,248,0,3,248,0,31,255,0,127,255,192,254,231, - 192,124,227,192,48,225,192,0,240,128,0,240,0,1,240,0, - 0,192,0,18,18,54,20,1,4,0,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,127,255, - 192,255,255,192,255,255,128,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,192,0,10, - 15,30,13,1,247,7,0,63,128,255,192,127,192,63,192,15, - 192,15,192,15,128,15,128,15,0,31,0,30,0,60,0,120, - 0,48,0,15,3,6,17,1,11,127,254,127,252,255,252,8, - 7,7,13,3,255,62,127,255,255,255,254,124,21,46,138,23, - 1,248,0,0,56,0,0,248,0,0,240,0,1,240,0,1, - 240,0,1,224,0,3,224,0,3,224,0,3,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,0,0,31,0,0, - 31,0,0,30,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,120,0,0,248,0,0,248,0,0,240,0,1,240,0, - 1,224,0,3,224,0,3,224,0,3,192,0,7,192,0,7, - 192,0,7,128,0,15,128,0,15,0,0,31,0,0,31,0, - 0,30,0,0,62,0,0,62,0,0,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,192,0,0,22,29,87,24, - 1,0,0,252,0,3,255,0,7,143,192,15,7,224,30,3, - 224,62,1,240,62,1,240,124,1,248,124,1,248,124,0,248, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,126,0,248,62,1,240,62,1,240,31,1,224,31,3,192, - 15,135,128,3,255,0,0,252,0,19,29,87,24,3,0,0, - 16,0,0,248,0,7,248,0,63,248,0,255,248,0,225,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,15,255,0, - 127,255,224,127,255,224,20,29,87,24,1,0,0,255,0,7, - 255,192,15,143,224,63,7,224,62,3,240,126,3,240,126,3, - 240,120,3,240,0,3,240,0,7,224,0,7,224,0,15,192, - 0,15,128,0,31,128,0,31,0,0,62,0,0,124,0,0, - 248,0,0,248,0,1,240,0,3,224,32,7,192,48,15,128, - 48,15,0,48,30,0,112,63,255,240,127,255,240,255,255,240, - 127,255,240,20,29,87,24,1,0,1,254,0,7,255,128,31, - 31,192,63,15,192,62,7,224,126,7,224,60,7,224,0,7, - 224,0,7,192,0,15,192,0,31,128,0,127,0,1,254,0, - 1,255,128,2,63,192,0,15,224,0,7,224,0,3,240,0, - 3,240,0,3,240,0,3,240,0,3,240,0,3,240,64,7, - 224,96,15,224,252,31,192,63,255,128,31,254,0,3,248,0, - 21,29,87,25,2,0,0,1,128,0,15,128,0,31,128,0, - 63,128,0,63,128,0,127,128,0,255,128,0,239,128,1,239, - 128,3,207,128,3,143,128,7,143,128,7,15,128,14,15,128, - 30,15,128,28,15,128,56,15,128,56,15,128,127,255,248,255, - 255,240,255,255,224,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,31,192,1,255,240,1,255,240,20,29,87, - 24,2,0,0,0,32,31,255,240,31,255,192,31,255,192,31, - 255,128,28,0,0,28,0,0,28,0,0,60,0,0,60,0, - 0,56,0,0,59,252,0,63,255,0,63,255,128,120,31,192, - 32,15,224,0,7,224,0,7,240,0,3,240,0,3,240,0, - 3,240,0,3,240,0,3,240,0,7,224,64,7,224,224,15, - 192,252,31,128,63,254,0,7,248,0,20,29,87,24,2,0, - 0,1,128,0,31,192,0,127,0,1,252,0,3,240,0,7, - 192,0,15,128,0,31,128,0,63,0,0,62,0,0,126,0, - 0,124,126,0,125,255,128,255,255,192,255,15,224,254,7,224, - 252,7,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,240,126,3,224,126,3,224,62,3,192,31,7,192,15,143, - 128,7,255,0,1,248,0,21,28,84,24,2,0,127,255,240, - 127,255,248,127,255,240,127,255,224,112,1,224,224,1,224,192, - 1,192,64,3,192,0,3,128,0,7,128,0,7,0,0,15, - 0,0,15,0,0,30,0,0,30,0,0,60,0,0,60,0, - 0,124,0,0,120,0,0,248,0,0,240,0,1,240,0,1, - 240,0,3,224,0,3,224,0,7,224,0,15,192,0,6,0, - 0,20,29,87,24,2,0,0,252,0,7,255,128,15,31,192, - 30,15,192,28,7,224,60,7,224,60,7,224,60,7,224,62, - 15,192,63,143,128,31,255,0,31,254,0,15,252,0,3,255, - 0,7,255,128,15,255,192,31,31,224,62,15,240,126,7,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,224,126, - 3,224,126,7,192,63,15,128,31,254,0,3,248,0,20,29, - 87,24,2,255,1,252,0,7,255,0,15,31,128,30,15,192, - 62,7,224,124,7,224,124,7,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,254,3,240,126,7,240,127,15, - 240,63,255,240,31,251,224,7,227,224,0,7,224,0,7,192, - 0,7,192,0,15,128,0,31,0,0,62,0,0,252,0,3, - 248,0,15,224,0,63,128,0,56,0,0,8,23,23,13,3, - 255,62,127,255,255,255,254,124,0,0,0,0,0,0,0,0, - 0,62,127,255,255,255,254,124}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 4 y=24 dx=42 dy= 0 ascent=39 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30r[9112] U8G_FONT_SECTION("u8g_font_gdb30r") = { - 0,74,69,232,239,30,10,50,24,78,32,127,245,39,245,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=15 len=30 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10[3670] U8G_FONT_SECTION("u8g_font_gdr10") = { - 0,25,24,247,250,10,2,30,4,177,32,255,252,15,251,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,4,0, - 0,2,13,13,5,1,251,64,64,0,0,64,64,64,64,64, - 64,64,192,192,6,10,10,8,1,0,16,28,116,144,144,144, - 144,116,56,16,7,11,11,8,1,255,60,68,68,64,64,240, - 64,64,66,134,252,4,6,6,8,2,2,144,240,144,144,240, - 144,9,10,20,8,255,0,231,128,34,0,22,0,20,0,8, - 0,62,0,8,0,8,0,8,0,28,0,1,17,17,4,2, - 253,128,128,128,128,128,128,128,128,0,128,128,128,128,128,128, - 128,128,6,12,12,8,1,0,112,152,128,96,184,140,196,100, - 24,136,200,112,5,2,2,7,1,9,136,136,10,10,20,12, - 1,0,30,0,127,128,114,128,160,64,160,64,160,64,176,64, - 94,128,97,128,30,0,4,6,6,4,0,5,96,160,96,160, - 240,240,6,8,8,8,1,0,36,72,72,144,144,72,72,36, - 7,3,3,8,0,2,254,2,2,4,1,1,6,1,4,240, - 6,6,6,6,0,6,120,132,180,180,180,120,6,1,1,8, - 1,9,252,4,4,4,6,1,6,112,144,144,224,6,8,8, - 7,1,1,32,32,32,252,32,32,64,248,4,7,7,6,1, - 5,112,144,16,32,64,144,240,4,7,7,5,0,5,112,144, - 16,48,16,144,224,3,3,3,5,2,9,96,64,128,9,12, - 24,9,0,252,195,0,65,0,65,0,65,0,65,0,65,0, - 99,0,125,128,64,0,64,0,96,0,96,0,8,12,12,10, - 1,254,63,202,138,138,202,122,10,10,10,10,10,31,1,2, - 2,2,1,5,128,128,2,4,4,4,1,252,128,192,64,128, - 4,6,6,6,0,5,96,160,32,32,32,112,4,6,6,5, - 0,5,96,144,144,144,96,240,7,8,8,8,1,0,144,72, - 108,36,54,108,72,144,9,10,20,10,1,0,193,0,66,0, - 66,0,68,0,72,0,169,0,23,0,37,0,39,128,67,128, - 8,10,10,10,1,0,193,66,68,68,72,171,21,34,37,79, - 10,11,22,10,0,0,112,0,80,128,33,0,18,0,18,0, - 228,0,8,128,11,128,18,128,19,192,33,192,6,13,13,8, - 1,251,32,32,0,32,32,32,64,64,128,128,132,136,112,10, - 15,30,10,0,0,32,0,24,0,12,0,0,0,0,0,4, - 0,12,0,20,0,18,0,18,0,30,0,33,0,33,0,65, - 128,227,192,10,15,30,10,0,0,2,0,7,0,12,0,16, - 0,0,0,4,0,12,0,20,0,18,0,18,0,30,0,33, - 0,33,0,65,128,227,192,10,15,30,10,0,0,12,0,12, - 0,18,0,33,0,0,0,4,0,12,0,20,0,18,0,18, - 0,30,0,33,0,33,0,65,128,227,192,10,14,28,10,0, - 0,10,0,25,0,38,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,13,26, - 10,0,0,34,0,34,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,15,30, - 10,0,0,12,0,20,0,28,0,0,0,0,0,4,0,12, - 0,20,0,18,0,18,0,30,0,33,0,33,0,65,128,227, - 192,12,10,20,13,1,0,31,224,10,32,10,0,18,0,31, - 224,50,0,34,0,34,0,66,16,231,240,7,14,14,9,1, - 252,62,66,128,128,128,128,128,128,66,102,24,24,8,16,7, - 15,15,8,1,0,64,224,16,8,0,252,68,64,64,124,64, - 64,64,66,254,7,15,15,8,1,0,8,28,48,0,0,252, - 68,64,64,124,64,64,64,66,254,7,15,15,8,1,0,16, - 56,72,4,0,252,68,64,64,124,64,64,64,66,254,7,13, - 13,8,1,0,136,136,0,252,68,64,64,124,64,64,64,66, - 254,4,15,15,5,0,0,128,192,32,16,0,112,32,32,32, - 32,32,32,32,32,112,4,15,15,5,1,0,32,48,64,128, - 0,224,64,64,64,64,64,64,64,64,224,5,15,15,5,0, - 0,32,112,136,0,0,112,32,32,32,32,32,32,32,32,112, - 5,13,13,5,0,0,136,136,0,112,32,32,32,32,32,32, - 32,32,112,8,10,10,10,1,0,252,70,65,65,241,65,65, - 66,66,252,9,14,28,11,1,0,18,0,58,0,4,0,0, - 0,195,128,97,0,97,0,81,0,73,0,77,0,69,0,67, - 0,67,0,225,0,8,15,15,10,1,0,32,112,8,4,0, - 60,66,129,129,129,129,129,130,66,60,8,15,15,10,1,0, - 4,14,24,0,0,60,66,129,129,129,129,129,130,66,60,8, - 15,15,10,1,0,8,28,36,66,0,60,66,129,129,129,129, - 129,130,66,60,8,14,14,10,1,0,18,50,76,0,60,66, - 129,129,129,129,129,130,66,60,8,13,13,10,1,0,68,68, - 0,60,66,129,129,129,129,129,130,66,60,5,5,5,7,1, - 2,136,80,32,80,136,8,10,10,10,1,0,29,98,131,133, - 137,145,161,194,66,188,9,15,30,11,1,0,32,0,48,0, - 12,0,0,0,0,0,227,128,65,0,65,0,65,0,65,0, - 65,0,65,0,65,0,34,0,60,0,9,15,30,11,1,0, - 2,0,6,0,8,0,16,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,65,0,34,0,60,0,9,15, - 30,11,1,0,8,0,28,0,34,0,0,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,13,26,11,1,0,34,0,34,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,15,30,10,1,0,4,0,14,0,24,0,0,0, - 0,0,195,128,97,0,50,0,22,0,28,0,8,0,8,0, - 8,0,8,0,28,0,7,10,10,9,1,0,224,64,124,70, - 66,66,66,124,64,224,8,13,13,10,1,0,28,38,66,66, - 68,72,80,88,78,67,81,81,206,7,12,12,8,1,0,64, - 32,16,0,28,100,4,28,100,132,140,118,7,12,12,8,1, - 0,8,16,32,0,28,100,4,28,100,132,140,118,7,12,12, - 8,1,0,48,72,136,4,28,100,4,28,100,132,140,118,7, - 11,11,8,1,0,100,152,0,28,100,4,28,100,132,140,118, - 7,11,11,8,1,0,136,136,0,28,100,4,28,100,132,140, - 118,7,12,12,8,1,0,48,80,112,0,28,100,4,28,100, - 132,140,118,10,8,16,12,1,0,59,128,204,64,136,64,63, - 192,72,0,136,0,156,192,231,0,6,12,12,7,1,252,60, - 72,128,128,128,128,196,120,32,48,16,32,6,12,12,8,1, - 0,96,32,16,0,56,68,132,252,128,128,68,120,6,12,12, - 8,1,0,12,24,32,0,56,68,132,252,128,128,68,120,6, - 12,12,8,1,0,48,72,132,0,56,68,132,252,128,128,68, - 120,6,11,11,8,1,0,132,136,0,56,68,132,252,128,128, - 68,120,4,12,12,5,0,0,192,64,32,0,32,96,32,32, - 32,32,32,112,4,12,12,5,1,0,48,96,64,0,64,192, - 64,64,64,64,64,224,5,12,12,5,0,0,32,80,136,0, - 32,96,32,32,32,32,32,112,5,11,11,5,0,0,136,136, - 0,32,96,32,32,32,32,32,112,6,12,12,8,1,0,104, - 28,120,8,52,204,132,132,132,132,72,112,8,11,11,9,1, - 0,54,76,0,78,210,98,66,66,66,66,231,7,12,12,9, - 1,0,96,32,16,0,56,68,130,130,130,130,68,56,7,12, - 12,9,1,0,12,8,16,0,56,68,130,130,130,130,68,56, - 7,12,12,9,1,0,16,40,68,0,56,68,130,130,130,130, - 68,56,7,11,11,9,1,0,52,216,0,56,68,130,130,130, - 130,68,56,7,11,11,9,1,0,132,132,0,56,68,130,130, - 130,130,68,56,5,6,6,7,1,2,32,32,0,248,32,32, - 7,8,8,9,1,0,62,68,142,146,146,226,68,248,9,12, - 24,9,0,0,48,0,24,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,9, - 0,0,6,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,9,0,0, - 8,0,20,0,34,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,9,0,0,34,0, - 66,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,8,16,16,8,0,252,6,12,8,0,231,98, - 34,36,52,20,24,8,8,16,160,192,7,17,17,9,1,252, - 64,192,64,64,64,92,102,66,66,66,66,100,120,64,64,64, - 224,8,15,15,8,0,252,66,66,0,231,98,34,36,52,20, - 24,8,8,16,160,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 10 - Calculated Max Values w= 8 h=16 x= 2 y= 6 dx= 8 dy= 0 ascent=13 len=16 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10n[263] U8G_FONT_SECTION("u8g_font_gdr10n") = { - 0,25,24,247,250,10,0,0,0,0,42,58,0,13,253,10, - 0,6,7,7,8,1,6,32,168,236,48,252,164,32,6,6, - 6,7,1,2,32,32,32,252,32,32,2,4,4,4,1,253, - 192,64,64,128,4,1,1,6,1,4,240,1,2,2,4,2, - 0,128,128,8,16,16,8,0,253,3,2,6,4,4,12,8, - 8,16,16,48,32,32,96,64,192,6,10,10,8,1,0,56, - 72,132,132,132,132,132,132,72,112,5,10,10,8,2,0,32, - 224,32,32,32,32,32,32,32,248,5,10,10,8,2,0,56, - 200,136,8,16,32,32,64,136,248,6,10,10,8,1,0,112, - 136,136,16,48,8,4,4,140,120,6,10,10,8,1,0,8, - 24,40,40,72,136,252,8,8,60,6,10,10,8,1,0,124, - 64,64,120,140,4,4,4,132,120,6,10,10,8,1,0,24, - 32,64,128,248,132,132,132,72,56,6,10,10,8,1,0,252, - 132,8,8,8,16,16,32,32,64,6,10,10,8,1,0,120, - 196,196,200,56,204,132,132,132,120,6,10,10,8,1,0,56, - 200,132,132,132,124,4,8,16,96,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10r[1723] U8G_FONT_SECTION("u8g_font_gdr10r") = { - 0,25,24,247,250,10,2,30,4,177,32,127,252,14,252,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=10 dx=15 dy= 0 ascent=16 len=34 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11[3977] U8G_FONT_SECTION("u8g_font_gdr11") = { - 0,26,25,247,250,11,2,61,5,21,32,255,252,16,251,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,4, - 0,0,2,13,13,5,1,251,64,192,0,64,64,64,64,64, - 64,64,64,64,64,7,11,11,8,1,0,16,24,118,144,144, - 144,144,212,126,16,16,7,11,11,8,1,0,60,68,68,64, - 64,240,64,64,66,130,254,6,6,6,8,1,2,248,76,72, - 72,120,132,9,11,22,8,0,0,231,128,98,0,50,0,20, - 0,28,0,8,0,127,0,8,0,8,0,8,0,28,0,1, - 19,19,4,2,252,128,128,128,128,128,128,128,128,0,0,0, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,248,142,130,66,60,12,132,196,120,5,2,2,7,1, - 10,136,136,11,11,22,13,1,0,31,0,32,128,94,64,162, - 32,160,32,160,32,160,32,177,32,94,64,32,128,31,0,5, - 6,6,5,0,5,48,80,112,144,248,240,7,8,8,9,1, - 0,38,36,72,152,152,72,36,38,7,3,3,8,1,2,254, - 2,2,5,1,1,6,1,4,248,6,7,7,6,0,6,120, - 72,188,188,180,104,120,6,1,1,9,1,10,252,4,4,4, - 6,1,7,112,144,144,224,7,8,8,7,0,1,16,16,254, - 16,16,16,0,126,4,7,7,6,1,5,112,144,16,32,64, - 144,240,5,7,7,6,0,5,56,72,8,24,8,136,112,3, - 4,4,6,2,9,32,96,64,128,8,12,12,10,1,252,198, - 66,66,66,66,66,102,123,64,64,64,96,8,13,13,10,1, - 254,63,202,138,138,138,202,122,10,10,10,10,10,31,1,2, - 2,3,1,5,128,128,2,4,4,4,1,252,192,64,192,128, - 4,7,7,6,1,5,32,224,32,32,32,32,240,4,6,6, - 5,0,5,96,144,144,144,96,240,7,8,8,9,1,0,144, - 72,100,54,54,100,72,144,10,11,22,11,1,0,192,128,65, - 0,65,0,66,0,70,0,164,0,8,128,27,128,18,128,35, - 192,101,192,9,11,22,11,1,0,193,0,65,0,66,0,68, - 0,68,0,168,0,11,128,20,128,33,0,34,128,71,128,10, - 11,22,10,0,0,96,128,144,128,33,0,17,0,18,0,228, - 0,4,128,11,128,18,128,19,192,37,192,6,13,13,8,1, - 251,16,48,0,16,16,16,32,64,128,132,132,136,112,11,15, - 30,11,0,0,16,0,56,0,4,0,2,0,4,0,12,0, - 14,0,18,0,18,0,19,0,31,0,33,0,33,128,32,128, - 241,224,11,15,30,11,0,0,1,0,7,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,11,15,30,11,0,0,4,0,14,0, - 17,0,32,0,4,0,12,0,14,0,18,0,18,0,19,0, - 31,0,33,0,33,128,32,128,241,224,11,15,30,11,0,0, - 9,0,29,0,34,0,0,0,4,0,12,0,14,0,18,0, - 18,0,19,0,31,0,33,0,33,128,32,128,241,224,11,14, - 28,11,0,0,33,0,33,0,0,0,4,0,12,0,14,0, - 18,0,18,0,19,0,31,0,33,0,33,128,32,128,241,224, - 11,16,32,11,0,0,4,0,10,0,18,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,13,11,22,14,0,0,15,248,5,8, - 5,0,9,0,15,240,17,0,17,0,17,0,33,8,33,8, - 243,248,9,15,30,10,1,252,62,0,66,0,128,0,128,0, - 128,0,128,0,128,0,128,0,192,0,97,128,62,0,8,0, - 12,0,4,0,8,0,7,15,15,9,1,0,64,224,24,0, - 254,66,64,64,124,64,64,64,66,66,254,7,15,15,9,1, - 0,4,12,48,0,254,66,64,64,124,64,64,64,66,66,254, - 7,15,15,9,1,0,16,40,68,0,254,66,64,64,124,64, - 64,64,66,66,254,7,14,14,9,1,0,68,68,0,254,66, - 64,64,124,64,64,64,66,66,254,4,15,15,5,0,0,128, - 192,48,0,112,32,32,32,32,32,32,32,32,32,112,5,15, - 15,5,1,0,16,56,192,0,224,64,64,64,64,64,64,64, - 64,64,224,5,15,15,5,0,0,32,80,136,0,112,32,32, - 32,32,32,32,32,32,32,112,5,14,14,5,0,0,136,136, - 0,112,32,32,32,32,32,32,32,32,32,112,9,11,22,11, - 1,0,252,0,67,0,65,0,64,128,64,128,240,128,64,128, - 64,128,65,0,67,0,252,0,10,15,30,12,1,0,25,0, - 57,0,38,0,0,0,193,192,96,128,112,128,80,128,72,128, - 76,128,70,128,66,128,65,128,65,128,224,128,9,15,30,11, - 1,0,32,0,112,0,12,0,0,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,65,0,98,0,60,0, - 9,15,30,11,1,0,2,0,6,0,24,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,9,15,30,11,1,0,8,0,20,0,34,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,65,0,98,0,60,0,9,15,30,11,1,0,18,0, - 58,0,68,0,0,0,30,0,99,0,129,0,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,14,28,11, - 1,0,34,0,34,0,0,0,30,0,99,0,129,0,128,128, - 128,128,128,128,128,128,128,128,65,0,98,0,60,0,6,6, - 6,7,1,2,140,88,48,48,88,140,9,11,22,11,1,0, - 30,128,35,0,67,0,134,128,132,128,136,128,144,128,176,128, - 97,0,98,0,188,0,10,15,30,12,1,0,32,0,24,0, - 4,0,2,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,1,0, - 2,0,7,0,8,0,16,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,15, - 30,12,1,0,12,0,30,0,34,0,1,0,225,192,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,33,0, - 30,0,10,14,28,12,1,0,34,0,34,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 33,0,30,0,10,15,30,11,0,0,1,0,7,0,12,0, - 0,0,225,192,48,128,17,0,25,0,10,0,14,0,4,0, - 4,0,4,0,4,0,14,0,7,11,11,9,1,0,240,64, - 124,70,66,66,66,68,124,64,240,8,14,14,10,1,0,28, - 38,66,66,66,76,80,80,76,71,65,81,81,222,7,13,13, - 8,1,0,64,96,48,16,0,60,68,132,28,100,132,140,118, - 7,13,13,8,1,0,12,8,16,32,0,60,68,132,28,100, - 132,140,118,7,13,13,8,1,0,48,56,72,132,0,60,68, - 132,28,100,132,140,118,7,12,12,8,1,0,116,152,0,0, - 60,68,132,28,100,132,140,118,7,12,12,8,1,0,132,132, - 0,0,60,68,132,28,100,132,140,118,7,13,13,8,1,0, - 48,72,72,48,0,60,68,132,28,100,132,140,118,11,8,16, - 12,1,0,29,192,102,32,68,32,159,224,100,0,132,0,142, - 32,115,192,7,12,12,8,1,252,60,68,128,128,128,128,194, - 124,16,24,8,16,6,13,13,8,1,0,96,32,16,16,0, - 56,68,132,252,128,128,68,120,6,13,13,8,1,0,12,8, - 16,16,0,56,68,132,252,128,128,68,120,6,13,13,8,1, - 0,16,56,108,68,0,56,68,132,252,128,128,68,120,6,12, - 12,8,1,0,68,68,0,0,56,68,132,252,128,128,68,120, - 4,13,13,5,0,0,192,64,32,32,16,32,96,32,32,32, - 32,32,112,4,13,13,5,1,0,48,32,64,64,0,64,192, - 64,64,64,64,64,224,5,13,13,5,0,0,32,112,216,136, - 0,32,96,32,32,32,32,32,112,5,12,12,5,0,0,136, - 136,0,0,32,96,32,32,32,32,32,112,7,13,13,9,1, - 0,96,30,56,68,4,62,198,130,130,130,132,68,56,8,12, - 12,10,1,0,50,76,0,0,78,210,98,66,66,66,66,231, - 7,13,13,9,1,0,96,32,16,8,0,56,196,130,130,130, - 130,68,56,7,13,13,9,1,0,4,12,24,16,0,56,196, - 130,130,130,130,68,56,7,13,13,9,1,0,16,56,36,68, - 0,56,196,130,130,130,130,68,56,7,12,12,9,1,0,50, - 92,0,0,56,196,130,130,130,130,68,56,7,12,12,9,1, - 0,68,68,0,0,56,196,130,130,130,130,68,56,6,6,6, - 7,1,2,32,32,0,252,32,32,7,9,9,9,1,0,2, - 62,68,138,146,162,226,68,248,8,13,13,10,1,0,96,48, - 16,8,0,198,66,66,66,66,66,70,59,8,13,13,10,1, - 0,4,12,8,16,0,198,66,66,66,66,66,70,59,8,13, - 13,10,1,0,24,56,36,66,0,198,66,66,66,66,66,70, - 59,8,12,12,10,1,0,68,68,0,0,198,66,66,66,66, - 66,70,59,9,17,34,9,0,252,2,0,4,0,12,0,8, - 0,0,0,243,128,97,0,34,0,50,0,20,0,20,0,28, - 0,8,0,8,0,16,0,176,0,224,0,8,18,18,10,1, - 252,64,192,64,64,64,64,78,115,65,65,65,65,98,124,64, - 64,64,240,9,16,32,9,0,252,34,0,34,0,0,0,0, - 0,243,128,97,0,34,0,50,0,20,0,20,0,28,0,8, - 0,8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx= 9 dy= 0 ascent=14 len=17 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11n[276] U8G_FONT_SECTION("u8g_font_gdr11n") = { - 0,26,25,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,16,164,120,120,164,16,48,7, - 6,6,7,0,2,16,16,16,254,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,2,2, - 4,1,0,192,128,8,17,17,8,0,253,1,2,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,11,11,8, - 1,0,48,72,132,132,132,132,132,132,132,72,48,6,11,11, - 8,1,0,16,240,16,16,16,16,16,16,16,16,124,6,11, - 11,8,1,0,28,100,68,4,8,8,16,32,68,68,252,6, - 11,11,7,0,0,56,68,68,4,24,12,4,4,4,140,120, - 7,11,11,8,0,0,4,12,12,20,36,36,68,254,4,4, - 30,6,11,11,8,1,0,124,64,64,64,120,132,4,4,4, - 132,120,6,11,11,8,1,0,12,48,64,192,184,196,132,132, - 132,72,56,7,11,11,8,1,0,254,132,4,8,8,8,16, - 16,32,32,96,7,11,11,9,1,0,120,196,196,196,120,60, - 194,130,130,130,124,6,11,11,8,1,0,56,200,132,132,132, - 132,124,4,8,16,224,2,8,8,4,1,0,192,128,0,0, - 0,0,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11r[1868] U8G_FONT_SECTION("u8g_font_gdr11r") = { - 0,26,25,247,250,11,2,61,5,21,32,127,252,15,252,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12[4200] U8G_FONT_SECTION("u8g_font_gdr12") = { - 0,28,28,246,249,12,2,80,5,85,32,255,252,17,251,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,0,2,14, - 14,5,2,251,64,192,64,128,128,128,128,128,128,128,128,128, - 128,128,7,12,12,9,1,0,16,16,62,212,144,144,144,144, - 210,124,16,16,7,12,12,9,1,0,60,70,68,64,64,64, - 240,64,64,66,66,254,7,6,6,9,1,3,132,126,68,68, - 68,254,9,11,22,9,0,0,231,128,99,0,50,0,20,0, - 28,0,8,0,127,0,8,0,8,0,8,0,62,0,1,20, - 20,4,2,252,128,128,128,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,184,134,130,98,60,12,132,196,120,5,2,2,7,1, - 10,136,136,12,12,24,14,1,0,15,0,48,192,94,32,146, - 32,160,16,160,16,160,16,160,16,144,160,79,32,32,64,31, - 128,5,7,7,5,0,5,48,208,112,208,176,72,240,7,8, - 8,9,1,0,34,36,76,216,216,76,36,34,8,4,4,9, - 0,2,255,1,1,1,5,1,1,6,1,4,248,7,6,6, - 7,0,7,56,238,170,178,238,56,6,1,1,9,2,11,252, - 5,5,5,7,1,7,112,136,136,136,112,7,9,9,8,0, - 1,16,16,16,254,16,16,16,0,126,4,7,7,6,1,6, - 112,144,16,32,64,144,240,5,8,8,6,0,5,56,72,8, - 16,8,8,136,112,4,4,4,6,2,10,48,96,64,128,8, - 13,13,10,1,252,194,70,66,66,66,66,102,126,91,64,64, - 64,96,8,14,14,10,1,254,63,70,134,134,134,70,62,6, - 6,6,6,6,6,15,1,2,2,3,1,5,128,128,2,4, - 4,4,2,252,192,192,64,128,5,7,7,6,1,6,32,224, - 32,32,32,32,248,4,7,7,5,0,5,96,144,144,144,144, - 96,240,7,8,8,9,1,0,136,72,36,50,50,36,72,136, - 10,11,22,11,1,0,192,128,65,0,65,0,66,0,68,0, - 228,0,9,128,18,128,18,128,39,192,65,192,9,11,22,11, - 1,0,192,128,65,0,66,0,66,0,68,0,239,128,12,128, - 17,0,49,0,34,128,71,128,10,12,24,11,1,0,96,0, - 144,128,33,0,18,0,146,0,228,0,8,0,9,128,18,128, - 50,128,39,192,65,192,6,14,14,8,1,251,16,48,16,16, - 16,16,32,32,64,128,132,132,136,112,11,16,32,11,0,0, - 16,0,60,0,2,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,16,32,11,0,0,1,0,7,128,8,0,0,0,4,0, - 6,0,14,0,10,0,11,0,17,0,17,0,31,128,33,128, - 32,128,32,192,241,224,11,16,32,11,0,0,4,0,10,0, - 17,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,11,15,30,11, - 0,0,29,128,39,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,15,30,11,0,0,33,0,33,0,0,0,4,0,6,0, - 14,0,10,0,11,0,17,0,17,0,31,128,33,128,32,128, - 32,192,241,224,11,17,34,11,0,0,14,0,18,0,18,0, - 12,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,14,12,24,15, - 0,0,31,248,5,8,5,0,9,0,9,0,31,240,17,32, - 17,0,33,0,33,8,97,12,243,248,9,16,32,10,1,252, - 30,0,99,0,128,0,128,0,128,0,128,0,128,0,128,0, - 128,0,65,0,97,128,62,0,8,0,12,0,4,0,8,0, - 8,16,16,9,1,0,64,48,8,0,254,66,64,64,64,124, - 72,64,64,66,67,254,8,16,16,9,1,0,4,14,48,0, - 254,66,64,64,64,124,72,64,64,66,67,254,8,16,16,9, - 1,0,24,44,68,2,254,66,64,64,64,124,72,64,64,66, - 67,254,8,15,15,9,1,0,132,132,0,254,66,64,64,64, - 124,72,64,64,66,67,254,4,16,16,6,0,0,128,96,16, - 0,112,32,32,32,32,32,32,32,32,32,32,112,5,16,16, - 6,1,0,24,48,192,0,224,64,64,64,64,64,64,64,64, - 64,64,224,6,16,16,6,0,0,48,88,132,0,112,32,32, - 32,32,32,32,32,32,32,32,112,6,15,15,6,0,0,132, - 136,0,112,32,32,32,32,32,32,32,32,32,32,112,10,12, - 24,11,0,0,126,0,33,128,32,128,32,64,32,64,124,64, - 160,64,32,64,32,64,32,128,33,0,126,0,10,15,30,12, - 1,0,25,0,38,0,0,0,193,192,96,128,112,128,80,128, - 88,128,76,128,68,128,70,128,67,128,65,128,65,128,224,128, - 9,16,32,11,1,0,32,0,24,0,4,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,16,32,11,1,0,3,0,6,0, - 24,0,0,0,30,0,99,0,129,0,128,128,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,16,32,11, - 1,0,12,0,22,0,34,0,1,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,128,128,65,0,98,0, - 60,0,9,15,30,11,1,0,25,0,110,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,15,30,11,1,0,66,0,66,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,128,128,65,0,98,0,60,0,6,6,6,8,1,2, - 132,72,48,48,72,132,9,12,24,11,1,0,30,128,35,0, - 67,0,131,128,132,128,136,128,136,128,144,128,225,0,97,0, - 98,0,188,0,10,16,32,12,1,0,48,0,24,0,6,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,16,32,12,1,0, - 1,0,6,0,8,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 10,16,32,12,1,0,12,0,26,0,33,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,1,0,33,0,33,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,11,16,32,11,0,0, - 1,0,3,128,12,0,0,0,225,224,48,128,49,128,25,0, - 10,0,14,0,4,0,4,0,4,0,4,0,4,0,31,0, - 8,12,12,10,1,0,240,64,124,66,65,65,65,65,98,92, - 64,240,9,14,28,11,1,0,30,0,35,0,65,0,65,0, - 65,0,70,0,72,0,72,0,70,0,67,128,64,128,72,128, - 72,128,207,0,7,14,14,9,1,0,96,32,16,16,8,60, - 68,132,4,60,196,132,140,118,7,14,14,9,1,0,12,8, - 16,16,0,60,68,132,4,60,196,132,140,118,7,14,14,9, - 1,0,16,56,76,132,0,60,68,132,4,60,196,132,140,118, - 7,13,13,9,1,0,34,116,152,0,60,68,132,4,60,196, - 132,140,118,7,12,12,9,1,0,132,132,0,60,68,132,4, - 60,196,132,140,118,7,14,14,9,1,0,56,72,72,48,0, - 60,68,132,4,60,196,132,140,118,11,9,18,13,1,0,57, - 192,70,64,196,32,4,32,31,224,100,0,132,0,142,32,115, - 192,7,13,13,8,1,252,60,68,128,128,128,128,128,98,60, - 16,24,8,16,7,14,14,9,1,0,96,32,16,8,0,60, - 68,130,130,254,128,128,66,60,7,14,14,9,1,0,4,14, - 8,16,0,60,68,130,130,254,128,128,66,60,7,14,14,9, - 1,0,24,56,36,66,0,60,68,130,130,254,128,128,66,60, - 7,12,12,9,1,0,130,132,0,60,68,130,130,254,128,128, - 66,60,4,14,14,5,0,0,192,64,32,16,0,32,96,32, - 32,32,32,32,32,112,4,14,14,5,1,0,16,48,96,64, - 0,64,192,64,64,64,64,64,64,224,6,14,14,5,0,0, - 32,112,200,132,0,32,96,32,32,32,32,32,32,112,6,12, - 12,5,255,0,132,132,0,16,48,16,16,16,16,16,16,56, - 7,13,13,9,1,0,96,30,56,68,60,70,130,130,130,130, - 132,68,56,8,13,13,10,1,0,51,58,76,0,76,210,98, - 66,66,66,66,66,231,8,14,14,10,1,0,96,48,16,8, - 0,60,66,129,129,129,129,130,66,60,8,14,14,10,1,0, - 6,12,8,16,0,60,66,129,129,129,129,130,66,60,8,14, - 14,10,1,0,24,56,36,66,0,60,66,129,129,129,129,130, - 66,60,8,13,13,10,1,0,50,122,76,0,60,66,129,129, - 129,129,130,66,60,8,12,12,10,1,0,130,130,0,60,66, - 129,129,129,129,130,66,60,6,6,6,8,1,2,32,32,252, - 0,32,32,8,9,9,10,1,0,29,102,135,137,153,145,226, - 98,252,8,14,14,10,1,0,96,48,16,8,0,198,66,66, - 66,66,66,66,70,59,8,14,14,10,1,0,6,12,8,16, - 0,198,66,66,66,66,66,66,70,59,8,14,14,10,1,0, - 24,28,36,66,0,198,66,66,66,66,66,66,70,59,8,12, - 12,10,1,0,130,130,0,198,66,66,66,66,66,66,70,59, - 9,18,36,9,0,252,3,0,6,0,4,0,8,0,0,0, - 243,128,97,0,33,0,50,0,18,0,20,0,28,0,12,0, - 8,0,8,0,16,0,176,0,224,0,8,18,18,10,1,252, - 64,192,64,64,64,78,114,65,65,65,65,66,98,124,64,64, - 64,240,9,16,32,9,0,252,65,0,65,0,0,0,243,128, - 97,0,33,0,50,0,18,0,20,0,28,0,12,0,8,0, - 8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=18 x= 2 y= 7 dx= 9 dy= 0 ascent=15 len=18 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12n[286] U8G_FONT_SECTION("u8g_font_gdr12n") = { - 0,28,28,246,249,12,0,0,0,0,42,58,0,15,253,12, - 0,7,7,7,8,1,7,16,148,222,48,252,146,16,7,7, - 7,8,0,2,16,16,16,254,16,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,3,3, - 4,1,255,192,192,128,8,18,18,9,0,253,1,1,3,2, - 6,4,4,12,8,8,24,16,48,32,32,96,64,192,7,11, - 11,9,1,0,56,68,130,130,130,130,130,130,132,68,56,6, - 12,12,9,1,0,16,112,144,16,16,16,16,16,16,16,16, - 252,6,12,12,8,1,0,60,68,196,4,4,8,16,16,32, - 68,132,252,7,12,12,8,0,0,28,38,98,2,4,28,2, - 2,2,2,134,124,7,12,12,9,1,0,4,12,12,20,20, - 36,68,68,254,4,4,30,6,11,11,9,2,0,124,64,64, - 64,120,132,4,4,4,132,120,7,12,12,9,1,0,12,48, - 64,64,128,252,198,130,130,130,68,56,7,11,11,9,1,0, - 254,130,4,4,8,8,24,16,48,32,96,7,12,12,9,1, - 0,120,196,196,196,232,60,78,130,130,130,194,124,7,11,11, - 9,1,0,56,68,130,130,130,198,122,2,4,8,112,2,10, - 10,4,1,255,128,192,128,0,0,0,0,192,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=30 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12r[1992] U8G_FONT_SECTION("u8g_font_gdr12r") = { - 0,28,28,246,249,12,2,80,5,85,32,127,252,16,252,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14[5942] U8G_FONT_SECTION("u8g_font_gdr14") = { - 0,35,33,244,248,14,3,95,7,136,32,255,251,20,250,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,0,2,16,16, - 6,2,250,192,192,128,64,192,192,192,192,192,192,192,192,192, - 192,192,128,9,14,28,11,1,0,12,0,12,0,31,128,109, - 128,76,0,204,0,204,0,204,0,204,0,236,128,125,128,63, - 0,12,0,12,0,10,14,28,11,0,0,7,128,24,192,16, - 128,48,128,48,0,48,0,48,0,126,0,48,0,48,0,48, - 0,32,64,32,64,255,192,9,7,14,11,1,3,221,128,119, - 0,99,0,99,0,115,0,127,0,128,128,12,14,28,11,255, - 0,225,240,48,64,48,192,25,128,29,128,15,0,7,0,6, - 0,63,192,6,0,6,0,6,0,6,0,31,128,2,24,24, - 5,2,251,192,192,192,192,192,192,192,192,192,192,128,0,0, - 64,192,192,192,192,192,192,192,192,192,192,9,16,32,11,1, - 0,30,0,99,0,98,0,112,0,56,0,94,0,199,0,195, - 128,225,128,113,128,63,0,15,0,7,0,67,0,99,0,62, - 0,7,3,3,9,1,12,198,198,198,15,14,28,16,0,0, - 7,192,24,48,49,248,98,44,198,6,204,6,204,6,204,6, - 204,6,206,38,102,76,51,152,24,48,7,192,6,8,8,6, - 0,6,112,152,24,56,120,124,0,124,9,10,20,11,1,0, - 17,128,17,0,34,0,102,0,204,0,204,0,102,0,34,0, - 17,0,17,128,10,5,10,11,0,2,255,192,0,192,0,192, - 0,192,0,192,6,1,1,8,1,5,252,8,8,8,8,0, - 8,60,66,189,149,153,153,86,60,7,1,1,11,2,13,254, - 4,5,5,8,2,9,96,240,240,240,96,8,10,10,9,1, - 2,24,24,24,24,255,24,24,24,0,255,6,8,8,8,1, - 7,120,140,140,8,16,32,68,252,7,8,8,7,255,7,60, - 102,6,28,6,6,134,120,5,5,5,7,2,12,24,48,32, - 64,192,12,15,30,13,1,251,96,192,224,192,96,192,96,192, - 96,192,96,192,96,192,113,192,127,208,92,224,64,0,64,0, - 96,0,96,0,112,0,13,17,34,14,0,253,31,248,99,96, - 195,96,195,96,195,96,227,96,115,96,63,96,3,96,3,96, - 3,96,3,96,3,96,3,96,3,96,3,96,15,248,2,3, - 3,3,1,6,192,192,192,4,5,5,5,1,251,96,96,112, - 48,192,6,8,8,8,1,7,48,240,48,48,48,48,48,252, - 4,8,8,6,1,6,96,240,240,240,240,96,0,240,8,10, - 10,11,2,0,136,140,68,98,51,51,102,68,140,136,12,14, - 28,13,0,0,24,96,120,192,24,192,25,128,27,0,27,0, - 126,0,4,96,12,224,25,96,18,96,51,240,96,96,192,240, - 13,14,28,14,0,0,48,16,240,32,48,96,48,64,48,128, - 48,128,249,0,3,120,2,152,4,24,12,48,8,32,16,72, - 49,248,12,14,28,14,1,0,112,32,152,64,24,64,56,128, - 77,128,141,0,114,0,6,96,4,224,9,96,25,96,19,240, - 32,96,96,240,8,16,16,10,1,250,24,24,16,4,12,12, - 12,24,48,96,96,192,195,195,230,124,13,20,40,14,0,0, - 16,0,28,0,14,0,3,0,0,128,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,13,20,40,14,0,0,0,128, - 0,192,3,160,6,0,0,0,0,0,2,0,3,0,5,0, - 5,128,5,128,8,128,8,192,8,192,31,192,16,96,16,96, - 32,48,32,48,248,120,13,20,40,14,0,0,2,0,7,0, - 13,128,8,64,16,0,0,0,2,0,3,0,5,0,5,128, - 5,128,8,128,8,192,8,192,31,192,16,96,16,96,32,48, - 32,48,248,120,13,19,38,14,0,0,4,64,14,96,19,192, - 0,0,0,0,2,0,3,0,5,0,5,128,5,128,8,128, - 8,192,8,192,31,192,16,96,16,96,32,48,32,48,248,120, - 13,18,36,14,0,0,8,64,12,96,8,64,0,0,2,0, - 3,0,5,0,5,128,5,128,8,128,8,192,8,192,31,192, - 16,96,16,96,32,48,32,48,248,120,13,20,40,14,0,0, - 2,0,7,0,7,128,7,0,0,0,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,18,14,42,18,0,0,7,255, - 128,1,96,128,3,96,128,2,96,0,6,96,0,6,96,0, - 7,255,0,12,98,0,8,96,0,24,96,0,16,96,0,16, - 96,64,48,96,64,249,255,128,11,19,38,12,1,251,7,192, - 24,96,32,0,96,0,64,0,192,0,192,0,192,0,192,0, - 192,0,224,0,96,128,113,192,62,0,8,0,4,0,14,0, - 6,0,24,0,11,20,40,11,0,0,32,0,56,0,28,0, - 6,0,1,0,0,0,255,192,48,64,48,64,48,0,48,0, - 48,0,63,128,49,0,48,0,48,0,48,0,48,32,48,96, - 255,192,11,20,40,11,0,0,1,0,1,128,7,0,12,0, - 0,0,0,0,255,192,48,64,48,64,48,0,48,0,48,0, - 63,128,49,0,48,0,48,0,48,0,48,32,48,96,255,192, - 11,20,40,11,0,0,4,0,14,0,27,0,48,128,0,0, - 0,0,255,192,48,64,48,64,48,0,48,0,48,0,63,128, - 49,0,48,0,48,0,48,0,48,32,48,96,255,192,11,18, - 36,11,0,0,16,128,49,128,49,128,0,0,255,192,48,64, - 48,64,48,0,48,0,48,0,63,128,49,0,48,0,48,0, - 48,0,48,32,48,96,255,192,6,20,20,7,0,0,128,192, - 112,24,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,252,7,20,20,7,0,0,4,14,28,48,64,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,252,7,20,20,7, - 0,0,16,56,108,134,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,252,7,18,18,7,0,0,66,198,198,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,13,14, - 28,14,0,0,127,128,176,224,48,112,48,48,48,24,48,24, - 254,24,48,24,48,24,48,24,48,48,48,112,48,224,255,128, - 15,19,38,15,0,0,2,32,7,32,9,192,0,0,0,0, - 240,126,48,24,56,24,60,24,52,24,50,24,51,24,49,152, - 48,152,48,216,48,120,48,56,48,56,252,24,12,20,40,14, - 1,0,16,0,56,0,12,0,2,0,1,0,0,0,15,128, - 48,192,32,96,96,96,192,48,192,48,192,48,192,48,192,48, - 192,48,96,96,96,64,48,128,31,0,12,20,40,14,1,0, - 1,0,1,192,3,0,12,0,0,0,0,0,15,128,48,192, - 32,96,96,96,192,48,192,48,192,48,192,48,192,48,192,48, - 96,96,96,64,48,128,31,0,12,20,40,14,1,0,6,0, - 14,0,11,0,16,128,32,0,0,0,15,128,48,192,32,96, - 96,96,192,48,192,48,192,48,192,48,192,48,192,48,96,96, - 96,64,48,128,31,0,12,19,38,14,1,0,8,128,28,64, - 55,128,0,0,0,0,15,128,48,192,32,96,96,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,64,48,128, - 31,0,12,18,36,14,1,0,16,128,24,192,16,128,0,0, - 15,128,48,192,32,96,96,96,192,48,192,48,192,48,192,48, - 192,48,192,48,96,96,96,64,48,128,31,0,7,7,7,9, - 1,3,194,102,60,24,60,102,194,12,15,30,14,1,255,15, - 48,48,224,32,224,64,224,193,176,195,48,194,48,198,48,204, - 48,200,48,88,32,112,64,112,128,207,0,128,0,15,20,40, - 15,0,0,8,0,14,0,7,0,1,128,0,64,0,0,252, - 126,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,24,48,28,96,7,192,15,20,40,15,0, - 0,0,64,0,96,1,192,3,0,0,0,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,24,48,28,96,7,192,15,20,40,15,0,0,1, - 0,3,128,6,192,12,96,0,0,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,15,18,36,15,0,0,4,32,12, - 96,12,96,0,0,252,126,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,24,48,28,96,7, - 192,14,20,40,14,0,0,0,128,0,224,1,128,6,0,0, - 0,0,0,224,124,48,48,24,32,24,96,12,64,6,192,7, - 128,3,0,3,0,3,0,3,0,3,0,3,0,15,192,11, - 14,28,12,0,0,252,0,48,0,48,0,63,128,48,192,48, - 96,48,96,48,96,48,96,48,192,63,128,48,0,48,0,252, - 0,13,17,34,13,0,0,7,128,8,192,16,96,48,96,48, - 96,48,224,51,192,55,0,54,0,55,0,51,192,48,240,48, - 56,48,24,52,24,50,16,243,224,10,17,34,11,1,0,96, - 0,48,0,16,0,8,0,4,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,17,34,11,1,0,3,0,6,0,12,0,8,0,16, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,17,34,11,1,0,24, - 0,28,0,54,0,98,0,65,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,15,30,11,1,0,57,0,78,0,0,0,0,0,0, - 0,30,0,99,0,195,0,3,0,31,0,99,0,195,0,195, - 0,199,0,123,192,10,15,30,11,1,0,33,0,99,0,99, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,16,32,11,1,0,28, - 0,60,0,60,0,24,0,0,0,0,0,30,0,99,0,195, - 0,3,0,31,0,99,0,195,0,195,0,199,0,123,192,14, - 10,20,16,1,0,30,112,99,152,195,12,131,12,31,252,115, - 0,195,0,195,0,197,132,120,248,9,15,30,10,1,251,15, - 0,49,128,96,0,192,0,192,0,192,0,192,0,192,0,99, - 0,124,0,16,0,8,0,28,0,12,0,48,0,9,17,34, - 11,1,0,48,0,112,0,24,0,8,0,4,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,17,34,11,1,0,3,0,6,0,6, - 0,12,0,8,0,0,0,0,0,30,0,33,0,65,128,255, - 128,192,0,192,0,192,0,224,0,113,128,62,0,9,17,34, - 11,1,0,12,0,28,0,54,0,35,0,65,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,15,30,11,1,0,33,0,49,128,33, - 0,0,0,0,0,30,0,33,0,65,128,255,128,192,0,192, - 0,192,0,224,0,113,128,62,0,6,17,17,6,0,0,192, - 96,32,48,16,0,0,48,240,48,48,48,48,48,48,48,252, - 7,17,17,6,0,0,12,14,24,16,32,0,0,48,240,48, - 48,48,48,48,48,48,252,7,17,17,6,0,0,48,56,104, - 196,130,0,0,48,240,48,48,48,48,48,48,48,252,7,15, - 15,6,0,0,198,198,198,0,0,48,240,48,48,48,48,48, - 48,48,252,9,16,32,11,1,0,48,0,91,128,12,0,50, - 0,3,0,1,0,31,128,99,128,67,128,193,128,193,128,193, - 128,193,0,227,0,98,0,60,0,13,15,30,13,0,0,14, - 64,19,128,0,0,0,0,0,0,113,192,182,96,56,96,48, - 96,48,96,48,96,48,96,48,96,48,96,253,248,10,17,34, - 12,1,0,48,0,48,0,24,0,12,0,4,0,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,17,34,12,1,0,3,0,3,0,6, - 0,4,0,8,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,10,17,34, - 12,1,0,12,0,30,0,18,0,33,0,64,128,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,15,30,12,1,0,56,128,71,0,0, - 0,0,0,0,0,30,0,35,128,65,128,192,192,192,192,192, - 192,192,192,224,128,113,0,30,0,10,15,30,12,1,0,49, - 128,49,128,33,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,8,7,7, - 9,1,3,24,24,0,255,0,24,24,10,12,24,12,1,255, - 0,64,30,192,35,128,67,192,194,192,196,192,200,192,216,192, - 240,128,113,0,222,0,128,0,11,17,34,12,1,0,48,0, - 24,0,24,0,12,0,4,0,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,17,34,12,1,0,3,0,3,128,6,0,4,0,8,0, - 0,0,0,0,97,128,231,128,97,128,97,128,97,128,97,128, - 97,128,97,128,103,160,57,192,11,17,34,12,1,0,12,0, - 14,0,26,0,49,0,32,128,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,15,30,12,1,0,49,128,49,128,49,128,0,0,0,0, - 97,128,231,128,97,128,97,128,97,128,97,128,97,128,97,128, - 103,160,57,192,12,22,44,11,255,251,0,192,0,192,1,128, - 3,0,2,0,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0,11,22,44,12,0,251,48,0,240,0, - 48,0,48,0,48,0,48,0,48,0,51,128,60,192,56,224, - 48,96,48,96,48,96,48,96,48,64,56,128,55,0,48,0, - 48,0,48,0,48,0,252,0,12,20,40,11,255,251,12,96, - 12,96,8,64,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=10 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14n[462] U8G_FONT_SECTION("u8g_font_gdr14n") = { - 0,35,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,137,0,235,128,60, - 0,60,0,235,0,137,0,24,0,24,0,8,8,8,9,1, - 2,24,24,24,255,24,24,24,24,4,6,6,5,0,253,112, - 240,48,48,32,64,6,1,1,8,1,5,252,2,3,3,5, - 2,0,192,192,192,9,22,44,11,1,252,0,128,1,128,1, - 0,3,0,3,0,2,0,6,0,6,0,12,0,12,0,8, - 0,24,0,24,0,16,0,48,0,48,0,96,0,96,0,64, - 0,192,0,192,0,128,0,9,14,28,11,1,0,28,0,39, - 0,99,0,67,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,0,97,0,98,0,28,0,8,14,14,11,2,0,24, - 120,152,24,24,24,24,24,24,24,24,24,24,255,8,14,14, - 11,1,0,60,103,195,131,3,6,6,12,24,24,48,97,193, - 255,9,14,28,12,1,0,30,0,103,0,195,0,3,0,2, - 0,4,0,30,0,3,0,1,128,1,128,1,128,1,128,195, - 0,60,0,10,14,28,11,0,0,3,0,7,0,7,0,11, - 0,27,0,19,0,35,0,99,0,67,0,255,192,3,0,3, - 0,3,0,15,192,9,14,28,11,0,0,0,128,63,0,32, - 0,32,0,96,0,126,0,67,0,1,128,1,128,1,128,1, - 128,1,0,195,0,60,0,9,14,28,11,1,0,3,0,12, - 0,48,0,32,0,96,0,222,0,227,0,193,128,193,128,193, - 128,193,128,97,0,99,0,30,0,9,13,26,11,1,0,127, - 128,129,0,129,0,3,0,2,0,6,0,4,0,12,0,8, - 0,24,0,24,0,48,0,32,0,9,14,28,11,1,0,62, - 0,71,0,195,0,195,0,195,0,118,0,30,0,39,0,99, - 128,193,128,193,128,193,128,99,0,60,0,9,14,28,11,1, - 0,30,0,99,0,67,0,193,128,193,128,193,128,193,128,99, - 128,61,128,1,0,3,0,6,0,8,0,112,0,2,11,11, - 5,2,0,192,192,192,0,0,0,0,0,192,192,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14r[2791] U8G_FONT_SECTION("u8g_font_gdr14r") = { - 0,35,33,244,248,14,3,95,7,136,32,127,251,19,251,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17[7056] U8G_FONT_SECTION("u8g_font_gdr17") = { - 0,40,38,242,247,17,4,64,9,46,32,255,250,23,249,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,6,0,0,3,19,19,7,2,249, - 96,224,224,192,64,64,64,64,64,96,96,96,96,224,224,224, - 224,224,192,11,17,34,13,1,255,6,0,6,0,7,128,31, - 224,38,64,102,0,198,0,198,0,198,0,198,0,198,0,230, - 32,118,64,63,128,15,0,6,0,6,0,11,16,32,13,1, - 0,7,192,24,224,16,64,48,64,48,0,48,0,48,0,48, - 0,255,0,48,0,48,0,48,0,48,32,32,32,96,96,255, - 224,9,8,16,13,2,4,128,128,93,0,119,0,99,0,99, - 0,119,0,93,0,128,128,14,16,32,13,255,0,240,124,48, - 48,24,96,28,96,12,192,14,192,7,128,3,128,3,0,63, - 240,3,0,3,0,3,0,3,0,3,0,15,192,2,27,27, - 6,2,251,192,192,192,192,192,192,192,192,192,192,192,192,128, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,31,0,35,128,97,0,96,0,112,0,60,0, - 127,0,199,128,195,192,193,192,224,192,120,192,63,128,15,0, - 3,128,65,128,65,128,97,0,62,0,9,3,6,11,1,15, - 193,128,193,128,193,128,17,17,51,19,1,0,3,224,0,12, - 24,0,48,6,0,48,246,0,99,27,0,102,1,0,204,1, - 128,204,1,128,204,1,128,204,1,128,204,1,128,70,19,0, - 103,19,0,49,230,0,48,6,0,12,24,0,3,224,0,7, - 8,8,7,0,8,56,76,140,60,108,108,126,126,10,12,24, - 13,1,0,8,64,24,192,16,128,49,128,99,0,230,0,231, - 0,99,0,49,128,16,128,8,192,8,64,11,6,12,13,1, - 2,255,224,0,96,0,96,0,96,0,96,0,96,7,1,1, - 9,1,6,254,9,9,18,10,0,10,62,0,99,0,255,128, - 146,128,156,128,152,128,213,128,107,0,62,0,9,1,2,13, - 2,16,255,128,6,6,6,10,2,10,56,76,204,204,200,112, - 10,12,24,11,1,2,12,0,12,0,12,0,12,0,255,192, - 12,0,12,0,12,0,12,0,0,0,0,0,255,128,7,10, - 10,9,1,8,60,70,198,6,12,24,16,32,66,254,8,10, - 10,9,255,8,30,35,67,2,14,3,3,3,198,60,5,6, - 6,9,3,14,24,56,48,96,192,128,14,18,36,14,0,250, - 48,48,240,112,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,240,63,188,55,56,48,0,48,0,48,0,48,0, - 56,0,48,0,13,20,40,15,1,253,31,248,49,224,97,224, - 193,224,193,224,193,224,193,224,97,224,113,224,31,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 7,248,2,3,3,4,1,8,192,192,192,5,6,6,6,0, - 250,48,32,56,88,16,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,6,8,8,8,1,8,56,76,204, - 204,204,200,112,252,10,12,24,13,2,0,132,0,198,0,98, - 0,35,0,49,128,24,192,25,192,49,128,35,0,98,0,198, - 0,132,0,14,16,32,16,1,0,48,24,240,56,48,48,48, - 96,48,192,48,192,49,128,255,0,3,24,6,56,12,88,12, - 88,24,152,17,252,48,24,96,60,13,16,32,15,1,0,48, - 8,240,16,48,48,48,32,48,96,48,192,48,128,253,128,3, - 112,2,152,7,24,4,16,8,48,24,96,16,200,49,248,14, - 16,32,16,1,0,56,24,204,16,12,48,56,32,12,64,12, - 192,140,128,113,128,3,24,2,56,6,88,12,88,8,152,25, - 252,16,24,48,60,10,19,38,12,1,249,6,0,14,0,14, - 0,12,0,2,0,6,0,6,0,6,0,12,0,28,0,56, - 0,112,0,96,0,192,0,192,192,192,192,192,192,97,128,62, - 0,16,23,46,16,0,0,12,0,30,0,7,0,1,128,0, - 64,0,0,0,128,1,128,3,128,3,192,2,192,6,192,6, - 96,4,96,12,112,12,48,15,240,24,24,24,24,16,24,48, - 12,48,12,248,63,16,23,46,16,0,0,0,48,0,112,1, - 192,3,128,2,0,0,0,0,128,1,128,3,128,3,192,2, - 192,6,192,6,96,4,96,12,112,12,48,15,240,24,24,24, - 24,16,24,48,12,48,12,248,63,16,22,44,16,0,0,3, - 128,6,192,12,32,8,16,0,0,0,128,1,128,3,128,3, - 192,2,192,6,192,6,96,4,96,12,112,12,48,15,240,24, - 24,24,24,16,24,48,12,48,12,248,63,16,22,44,16,0, - 0,0,16,7,176,9,224,16,192,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,21,42, - 16,0,0,12,48,12,48,8,32,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,23,46, - 16,0,0,1,192,3,96,3,96,3,192,1,128,0,0,0, - 128,1,128,3,128,3,192,2,192,6,192,6,96,4,96,12, - 112,12,48,15,240,24,24,24,24,16,24,48,12,48,12,248, - 63,20,17,51,21,0,0,7,255,224,1,176,32,1,176,32, - 1,48,0,3,48,0,3,48,0,6,48,0,7,255,192,4, - 48,128,12,48,0,12,48,0,24,48,0,24,48,0,16,48, - 0,48,48,16,48,48,48,248,255,240,12,23,46,14,1,250, - 7,224,24,112,48,0,32,0,96,0,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,224,0,96,32,112,32,61,192, - 31,128,4,0,4,0,7,0,3,0,2,0,28,0,12,23, - 46,13,1,0,48,0,120,0,28,0,6,0,1,0,0,0, - 255,224,48,32,48,32,48,0,48,0,48,0,48,0,63,192, - 48,128,48,0,48,0,48,0,48,0,48,0,48,16,48,48, - 255,224,12,23,46,13,1,0,0,192,3,192,7,0,12,0, - 16,0,0,0,255,224,48,32,48,32,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,16,48,48,255,224,12,22,44,13,1,0,14,0,27,0, - 48,128,64,64,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,12,21,42,13,1,0,32,128, - 97,128,32,128,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,8,23,23,8,255,0,96,240, - 56,12,2,0,63,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,63,7,23,23,8,1,0,6,14,56,112,64, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,8,22,22,8,0,0,56,108,194,129,0,126,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,126,8,21, - 21,8,0,0,195,195,130,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,126,14,17,34,16,1,0,127, - 128,176,224,48,48,48,24,48,24,48,12,48,12,48,12,255, - 12,48,12,48,12,48,12,48,24,48,24,48,48,48,96,255, - 128,16,22,44,18,1,0,0,16,7,176,9,224,16,192,0, - 0,240,63,48,12,56,12,60,12,52,12,54,12,51,12,51, - 12,49,140,48,204,48,204,48,108,48,60,48,60,48,28,48, - 28,252,12,14,23,46,16,1,0,24,0,28,0,7,0,3, - 128,0,128,0,0,7,192,24,96,48,48,96,24,96,24,64, - 12,192,12,192,12,192,12,192,12,192,12,192,8,96,24,96, - 16,48,48,24,96,15,128,14,23,46,16,1,0,0,96,0, - 240,1,192,3,0,4,0,0,0,7,192,24,96,48,48,96, - 24,96,24,64,12,192,12,192,12,192,12,192,12,192,12,192, - 8,96,24,96,16,48,48,24,96,15,128,14,22,44,16,1, - 0,3,128,4,192,8,96,16,32,0,0,7,192,24,96,48, - 48,96,24,96,24,64,12,192,12,192,12,192,12,192,12,192, - 12,192,8,96,24,96,16,48,48,24,96,15,128,14,22,44, - 16,1,0,0,32,15,48,19,224,32,128,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,14, - 21,42,16,1,0,24,96,24,96,16,64,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,9, - 9,18,11,1,3,193,128,99,0,54,0,28,0,28,0,28, - 0,54,0,99,0,193,128,14,18,36,16,1,255,7,204,24, - 120,48,48,32,120,96,120,64,220,193,204,193,140,195,12,199, - 12,198,12,204,8,104,24,120,16,48,48,120,96,207,128,128, - 0,16,23,46,18,1,0,12,0,30,0,7,0,1,192,0, - 64,0,0,252,63,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,24,24, - 24,12,48,7,224,16,23,46,18,1,0,0,48,0,112,1, - 192,3,128,2,0,0,0,252,63,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,24,24,24,12,48,7,224,16,22,44,18,1,0,1, - 128,2,64,4,32,8,16,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,16,21,42,18,1, - 0,12,48,12,48,8,32,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,15,23,46,16,0, - 0,0,48,0,112,0,192,3,128,2,0,0,0,240,62,56, - 12,24,24,28,24,14,48,6,32,7,96,3,192,3,192,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,7,224,12, - 17,34,14,1,0,252,0,48,0,48,0,63,128,48,224,48, - 96,48,48,48,48,48,48,48,48,48,48,48,96,56,192,55, - 128,48,0,48,0,252,0,14,20,40,15,1,0,3,192,12, - 224,24,112,16,48,48,48,48,48,48,96,49,192,51,0,54, - 0,54,0,55,128,51,224,48,248,48,60,48,28,50,12,50, - 12,51,24,243,240,11,20,40,12,1,0,48,0,120,0,24, - 0,12,0,4,0,2,0,0,0,0,0,31,0,97,128,225, - 128,1,128,1,128,31,128,121,128,225,128,193,128,193,128,199, - 128,121,224,11,20,40,12,1,0,1,128,3,128,3,0,6, - 0,4,0,8,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,12,0,30,0,19,0,33,128,64, - 192,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,11,18,36, - 12,1,0,24,64,60,128,71,0,0,0,0,0,0,0,31, - 0,97,128,225,128,1,128,1,128,31,128,121,128,225,128,193, - 128,193,128,199,128,121,224,11,18,36,12,1,0,97,128,97, - 128,97,128,0,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,14,0,11,0,27,0,27,0,14, - 0,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,17,12,36, - 19,1,0,31,62,0,97,195,0,97,193,128,193,129,128,15, - 255,128,57,128,0,97,128,0,193,128,0,193,128,0,193,193, - 0,198,227,0,120,124,0,10,18,36,12,1,250,15,192,48, - 192,96,128,64,0,192,0,192,0,192,0,192,0,224,0,96, - 64,120,192,63,0,12,0,4,0,7,0,3,0,2,0,28, - 0,10,20,40,12,1,0,48,0,56,0,24,0,12,0,6, - 0,2,0,0,0,0,0,15,0,49,128,96,192,64,192,255, - 192,192,0,192,0,192,0,224,0,96,64,48,128,31,0,10, - 20,40,12,1,0,1,192,1,128,3,0,2,0,4,0,12, - 0,0,0,0,0,15,0,49,128,96,192,64,192,255,192,192, - 0,192,0,192,0,224,0,96,64,48,128,31,0,10,19,38, - 12,1,0,6,0,15,0,25,0,48,128,32,64,0,0,0, - 0,15,0,49,128,96,192,64,192,255,192,192,0,192,0,192, - 0,224,0,96,64,48,128,31,0,10,18,36,12,1,0,32, - 128,48,192,32,128,0,0,0,0,0,0,15,0,49,128,96, - 192,64,192,255,192,192,0,192,0,192,0,224,0,96,64,48, - 128,31,0,7,20,20,7,0,0,192,224,112,48,24,8,0, - 0,24,120,24,24,24,24,24,24,24,24,24,126,7,20,20, - 7,1,0,14,12,24,16,48,96,0,0,48,240,48,48,48, - 48,48,48,48,48,48,252,8,19,19,7,0,0,24,60,100, - 194,129,0,0,24,120,24,24,24,24,24,24,24,24,24,126, - 8,18,18,7,0,0,130,195,130,0,0,0,24,120,24,24, - 24,24,24,24,24,24,24,126,11,19,38,13,1,0,24,0, - 60,224,7,128,31,0,49,128,0,192,0,192,15,192,49,224, - 96,224,64,96,192,96,192,96,192,96,192,64,224,192,96,192, - 49,128,30,0,14,18,36,15,1,0,12,32,31,64,35,128, - 0,0,0,0,0,0,113,224,178,48,52,48,56,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,12,20, - 40,14,1,0,56,0,24,0,12,0,4,0,6,0,3,0, - 0,0,0,0,15,128,48,192,96,96,64,112,192,48,192,48, - 192,48,192,48,224,32,96,96,48,192,31,0,12,20,40,14, - 1,0,0,192,1,128,3,128,3,0,6,0,4,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,12,19,38,14,1,0, - 6,0,15,0,25,128,16,128,32,64,0,0,0,0,15,128, - 48,192,96,96,64,112,192,48,192,48,192,48,192,48,224,32, - 96,96,48,192,31,0,12,18,36,14,1,0,28,96,62,64, - 35,128,0,0,0,0,0,0,15,128,48,192,96,96,64,112, - 192,48,192,48,192,48,192,48,224,32,96,96,48,192,31,0, - 12,18,36,14,1,0,48,192,48,192,48,192,0,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,9,9,18,11,1,3, - 12,0,12,0,0,0,0,0,255,128,0,0,0,0,12,0, - 12,0,12,14,28,14,1,255,0,16,15,176,49,224,96,224, - 65,240,195,48,198,48,198,48,204,48,248,32,112,96,120,192, - 223,0,128,0,14,20,40,14,0,0,28,0,12,0,6,0, - 3,0,1,0,1,128,0,0,0,0,48,48,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,112,56,188, - 31,48,14,20,40,14,0,0,0,96,0,224,0,192,1,128, - 3,0,2,0,0,0,0,0,48,48,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,112,56,188,31,48, - 14,19,38,14,0,0,3,0,7,128,4,192,8,96,16,32, - 0,0,0,0,48,48,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,112,56,188,31,48,14,18,36,14, - 0,0,24,96,24,96,24,96,0,0,0,0,0,0,48,48, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,112,56,188,31,48,14,26,52,13,255,250,0,112,0,96, - 0,224,0,192,1,128,1,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0, - 12,26,52,14,1,250,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,224,56,96,48,48,48,48, - 48,48,48,48,48,48,48,32,48,96,56,64,55,128,48,0, - 48,0,48,0,48,0,48,0,252,0,14,24,48,13,255,250, - 12,48,12,48,8,32,0,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=11 h=25 x= 2 y= 9 dx=13 dy= 0 ascent=21 len=50 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17n[559] U8G_FONT_SECTION("u8g_font_gdr17n") = { - 0,40,38,242,247,16,0,0,0,0,42,58,0,21,252,16, - 0,10,12,24,12,1,9,12,0,12,0,140,0,204,192,119, - 128,30,0,30,0,119,128,204,192,12,128,12,0,12,0,10, - 9,18,11,1,3,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,4,7,7,6,1,252,112,240,48, - 48,32,96,64,7,1,1,9,1,6,254,3,4,4,6,2, - 255,96,224,224,192,11,25,50,13,1,252,0,96,0,96,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,6,0,6, - 0,6,0,12,0,12,0,12,0,24,0,24,0,48,0,48, - 0,48,0,96,0,96,0,224,0,192,0,192,0,11,16,32, - 13,1,0,15,0,49,128,96,192,64,192,64,224,192,96,192, - 96,192,96,192,96,192,96,192,96,192,64,96,64,96,192,49, - 128,30,0,9,16,32,13,2,0,12,0,60,0,252,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,255,128,10,16,32,13,1,0,15, - 0,49,128,96,192,96,192,0,192,0,192,1,128,1,128,3, - 0,6,0,12,0,28,0,24,0,48,64,96,64,255,192,10, - 16,32,13,1,0,30,0,99,0,97,128,193,128,1,128,3, - 0,6,0,31,0,3,128,1,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,1,128,3,128,7, - 128,5,128,13,128,25,128,17,128,49,128,97,128,65,128,255, - 224,1,128,1,128,1,128,1,128,15,224,10,16,32,13,1, - 0,63,192,32,0,32,0,32,0,96,0,96,0,127,0,67, - 128,1,192,0,192,0,192,0,192,0,192,1,128,193,128,62, - 0,11,16,32,13,1,0,3,128,14,0,24,0,48,0,96, - 0,96,0,207,0,241,192,192,224,192,96,192,96,192,96,96, - 96,96,64,48,128,31,0,11,16,32,13,1,0,127,224,64, - 192,128,192,0,128,1,128,1,128,3,0,3,0,6,0,6, - 0,4,0,12,0,12,0,24,0,24,0,48,0,11,16,32, - 13,1,0,31,0,113,128,224,192,224,192,224,192,241,128,63, - 0,15,128,51,192,96,224,192,96,192,96,192,96,192,64,96, - 128,31,0,11,17,34,13,1,255,31,0,49,128,96,192,192, - 192,192,96,192,96,192,96,224,96,113,224,30,96,0,224,0, - 192,0,192,1,128,3,0,14,0,48,0,3,14,14,6,2, - 255,64,224,224,224,0,0,0,0,0,0,96,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 2 y=14 dx=23 dy= 0 ascent=22 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17r[3380] U8G_FONT_SECTION("u8g_font_gdr17r") = { - 0,40,38,242,247,17,4,64,9,46,32,127,250,22,250,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=19 dx=27 dy= 0 ascent=27 len=81 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =27 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20[9119] U8G_FONT_SECTION("u8g_font_gdr20") = { - 0,47,44,240,246,20,4,220,11,144,32,255,248,27,247,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,0,4,24, - 24,9,2,247,112,240,240,224,0,0,32,96,96,96,96,96, - 96,96,96,96,112,112,112,112,112,112,112,64,12,20,40,15, - 2,255,6,0,6,0,6,0,15,224,54,224,102,96,102,0, - 198,0,198,0,198,0,198,0,198,0,198,0,230,32,118,48, - 63,192,31,128,6,0,6,0,6,0,13,19,38,15,1,0, - 7,224,8,112,16,48,16,32,48,32,48,0,48,0,48,0, - 48,0,255,0,48,0,48,0,48,0,48,0,48,8,32,24, - 96,48,127,240,131,240,11,10,20,15,2,4,192,96,127,192, - 49,192,96,192,96,192,96,192,113,192,63,128,64,64,128,32, - 16,19,38,15,255,0,240,63,56,28,28,24,28,56,14,48, - 6,112,7,96,3,192,3,192,1,128,1,128,63,252,1,128, - 1,128,1,128,1,128,1,128,1,128,15,240,2,32,32,7, - 3,250,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 128,0,0,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,22,44,15,2,0,31,128,49,192,96,128,96,0, - 112,0,120,0,62,0,111,128,199,192,193,224,192,224,224,96, - 240,96,124,96,63,192,15,128,3,192,1,192,64,192,64,192, - 96,128,63,0,9,4,8,13,2,17,97,128,227,128,227,128, - 195,0,21,20,60,24,1,0,1,252,0,6,3,0,24,0, - 192,48,0,96,48,124,96,97,134,48,99,0,48,194,0,24, - 198,0,24,198,0,24,198,0,24,198,0,24,199,0,24,99, - 0,48,97,198,48,48,248,96,48,0,96,24,0,192,6,3, - 0,1,252,0,7,10,10,8,1,9,56,204,140,28,108,204, - 220,238,0,254,12,14,28,16,1,0,6,16,4,48,8,96, - 24,96,48,192,113,192,227,128,227,128,113,192,48,192,24,96, - 8,96,4,48,6,16,13,6,12,15,1,3,255,248,0,24, - 0,24,0,24,0,24,0,24,9,1,2,11,1,8,255,128, - 10,11,22,11,1,11,30,0,97,0,126,128,147,64,151,64, - 156,64,148,64,146,64,105,128,33,0,30,0,10,1,2,16, - 3,19,255,192,7,7,7,11,2,12,60,110,198,198,198,236, - 120,12,14,28,13,1,2,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,4,0,0,0,0, - 0,255,224,8,11,11,10,1,10,62,99,195,3,6,6,12, - 24,50,97,255,9,12,24,11,0,9,31,0,51,128,97,128, - 1,128,3,0,15,0,1,128,1,128,1,128,1,128,195,0, - 62,0,7,7,7,10,3,16,12,30,24,48,48,96,192,15, - 23,46,17,1,248,48,8,240,56,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,56,56,56,120,63,248,55, - 222,51,152,48,0,48,0,48,0,48,0,56,0,56,0,56, - 0,48,0,15,24,48,18,1,252,15,254,48,252,96,216,64, - 216,192,216,192,216,192,216,192,216,224,216,112,216,56,216,15, - 216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0, - 216,0,216,0,216,0,216,3,254,3,4,4,5,1,9,96, - 224,224,192,5,7,7,7,1,249,48,32,48,120,24,48,224, - 8,11,11,11,2,10,24,248,24,24,24,24,24,24,24,24, - 255,7,10,10,9,1,9,56,108,198,198,198,198,108,56,0, - 254,12,14,28,16,2,0,130,0,65,0,97,128,48,192,56, - 224,28,96,12,112,28,112,30,96,56,224,48,192,97,128,65, - 0,130,0,16,19,38,19,2,0,48,6,240,14,48,12,48, - 24,48,56,48,48,48,96,48,224,48,192,205,130,1,142,3, - 30,6,22,6,38,12,70,24,127,24,134,48,6,96,31,15, - 19,38,18,2,0,48,6,240,12,48,8,48,24,48,48,48, - 48,48,96,48,192,48,192,205,128,1,28,3,102,6,70,4, - 6,12,12,24,24,24,48,48,98,96,254,17,19,57,19,1, - 0,60,3,0,70,6,0,6,4,0,28,12,0,6,24,0, - 6,16,0,6,48,0,142,96,0,120,96,0,0,193,0,1, - 135,0,1,143,0,3,11,0,2,19,0,6,35,0,12,63, - 128,12,67,0,24,3,0,48,15,128,10,24,48,13,2,247, - 14,0,30,0,30,0,28,0,0,0,0,0,0,0,12,0, - 12,0,12,0,12,0,28,0,24,0,48,0,48,0,96,0, - 96,0,192,0,192,64,192,192,192,192,224,128,97,128,62,0, - 19,27,81,19,0,0,6,0,0,15,0,0,7,128,0,1, - 192,0,0,96,0,0,16,0,0,0,0,0,64,0,0,224, - 0,0,224,0,1,224,0,1,240,0,1,176,0,3,48,0, - 3,56,0,3,24,0,6,28,0,6,28,0,6,12,0,15, - 254,0,12,6,0,8,6,0,24,7,0,24,3,0,16,3, - 0,48,3,128,254,15,224,19,27,81,19,0,0,0,8,0, - 0,30,0,0,60,0,0,112,0,1,192,0,1,0,0,0, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,19,27, - 81,19,0,0,0,224,0,1,224,0,1,240,0,3,56,0, - 6,12,0,12,4,0,0,0,0,0,64,0,0,224,0,0, - 224,0,1,224,0,1,240,0,1,176,0,3,48,0,3,56, - 0,3,24,0,6,28,0,6,28,0,6,12,0,15,254,0, - 12,6,0,8,6,0,24,7,0,24,3,0,16,3,0,48, - 3,128,254,15,224,19,26,78,19,0,0,3,132,0,7,230, - 0,4,252,0,8,56,0,0,0,0,0,0,0,0,64,0, - 0,224,0,0,224,0,1,224,0,1,240,0,1,176,0,3, - 48,0,3,56,0,3,24,0,6,28,0,6,28,0,6,12, - 0,15,254,0,12,6,0,8,6,0,24,7,0,24,3,0, - 16,3,0,48,3,128,254,15,224,19,25,75,19,0,0,6, - 12,0,6,12,0,14,28,0,6,12,0,0,0,0,0,64, - 0,0,224,0,0,224,0,1,224,0,1,240,0,1,176,0, - 3,48,0,3,56,0,3,24,0,6,28,0,6,28,0,6, - 12,0,15,254,0,12,6,0,8,6,0,24,7,0,24,3, - 0,16,3,0,48,3,128,254,15,224,19,27,81,19,0,0, - 0,224,0,1,176,0,1,48,0,3,48,0,1,176,0,1, - 224,0,0,0,0,0,64,0,0,224,0,0,224,0,1,224, - 0,1,240,0,1,176,0,3,48,0,3,56,0,3,24,0, - 6,28,0,6,28,0,6,12,0,15,254,0,12,6,0,8, - 6,0,24,7,0,24,3,0,16,3,0,48,3,128,254,15, - 224,23,20,60,25,0,0,3,255,252,0,124,4,0,108,4, - 0,236,4,0,204,0,1,204,0,1,140,0,1,140,0,3, - 140,0,3,255,248,7,12,16,6,12,0,6,12,0,12,12, - 0,12,12,0,28,12,0,24,12,2,24,12,2,48,12,6, - 252,63,254,15,27,54,17,1,249,3,248,12,28,16,8,48, - 0,96,0,96,0,64,0,192,0,192,0,192,0,192,0,192, - 0,192,0,224,0,96,0,112,0,120,2,60,12,31,248,15, - 240,0,128,0,128,1,224,0,224,0,96,0,192,3,0,13, - 27,54,16,1,0,16,0,56,0,28,0,15,0,3,128,0, - 192,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,13,27,54,16,1, - 0,0,32,0,240,1,224,3,128,7,0,12,0,0,0,255, - 240,48,16,48,16,48,16,48,0,48,0,48,0,48,0,48, - 0,63,224,48,64,48,0,48,0,48,0,48,0,48,0,48, - 8,48,8,48,24,255,248,13,27,54,16,1,0,3,0,7, - 128,15,192,28,192,56,96,32,48,0,0,255,240,48,16,48, - 16,48,16,48,0,48,0,48,0,48,0,48,0,63,224,48, - 64,48,0,48,0,48,0,48,0,48,0,48,8,48,8,48, - 24,255,248,13,25,50,16,1,0,24,48,56,112,56,112,48, - 96,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,9,27,54,10,255, - 0,96,0,240,0,120,0,28,0,7,0,1,0,0,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,31,128,8,27,27,10,2,0,6,15,30, - 56,96,128,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,10,27,54,10,0,0,28,0, - 30,0,62,0,115,0,193,128,128,192,0,0,63,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,63,0,10,25,50,10,0,0,193,128,225,192,225,192, - 193,128,0,0,63,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,63,0,18,20,60,19, - 0,0,31,240,0,120,28,0,24,6,0,24,3,0,24,1, - 128,24,1,128,24,1,192,24,0,192,24,0,192,255,128,192, - 24,0,192,24,0,192,24,0,192,24,1,128,24,1,128,24, - 1,128,24,3,0,24,6,0,24,28,0,127,240,0,19,26, - 78,21,1,0,3,132,0,7,230,0,4,124,0,8,56,0, - 0,0,0,0,0,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,27,81,19,1,0,12,0,0,30,0,0,15,0, - 0,3,128,0,0,224,0,0,32,0,0,0,0,3,240,0, - 12,24,0,16,12,0,48,6,0,32,3,0,96,3,0,64, - 3,128,192,1,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,224,1,0,96,3,0,96,2,0,48,6,0, - 56,4,0,12,24,0,7,224,0,17,27,81,19,1,0,0, - 24,0,0,60,0,0,120,0,0,224,0,1,128,0,2,0, - 0,0,0,0,3,240,0,12,24,0,16,12,0,48,6,0, - 32,3,0,96,3,0,64,3,128,192,1,128,192,1,128,192, - 1,128,192,1,128,192,1,128,192,1,128,224,1,0,96,3, - 0,96,2,0,48,6,0,56,4,0,12,24,0,7,224,0, - 17,27,81,19,1,0,1,192,0,1,224,0,3,224,0,7, - 48,0,12,24,0,8,12,0,0,0,0,3,240,0,12,24, - 0,16,12,0,48,6,0,32,3,0,96,3,0,64,3,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,192, - 1,128,224,1,0,96,3,0,96,2,0,48,6,0,56,4, - 0,12,24,0,7,224,0,17,26,78,19,1,0,3,4,0, - 7,204,0,8,248,0,16,112,0,0,0,0,0,0,0,3, - 240,0,12,24,0,16,12,0,48,6,0,32,3,0,96,3, - 0,64,3,128,192,1,128,192,1,128,192,1,128,192,1,128, - 192,1,128,192,1,128,224,1,0,96,3,0,96,2,0,48, - 6,0,56,4,0,12,24,0,7,224,0,17,25,75,19,1, - 0,12,24,0,14,28,0,14,28,0,12,24,0,0,0,0, - 3,240,0,12,24,0,16,12,0,48,6,0,32,3,0,96, - 3,0,64,3,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,0,96,3,0,96,2,0, - 48,6,0,56,4,0,12,24,0,7,224,0,11,10,20,13, - 1,4,192,96,96,192,49,128,27,0,14,0,14,0,27,0, - 49,128,96,192,192,96,17,21,63,19,1,255,3,241,128,4, - 31,0,24,14,0,48,30,0,32,31,0,96,63,0,64,59, - 128,192,115,128,192,225,128,192,225,128,193,193,128,195,129,128, - 195,1,128,231,1,0,110,3,0,124,2,0,124,6,0,56, - 4,0,124,24,0,199,224,0,128,0,0,19,27,81,21,1, - 0,6,0,0,15,0,0,7,128,0,1,192,0,0,96,0, - 0,16,0,0,0,0,252,7,224,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,0,24,3,0,28,6,0,14,12,0,3, - 240,0,19,27,81,21,1,0,0,12,0,0,30,0,0,60, - 0,0,112,0,0,192,0,1,0,0,0,0,0,252,7,224, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,0,24,3,0, - 28,6,0,14,12,0,3,240,0,19,27,81,21,1,0,0, - 224,0,0,240,0,1,240,0,3,152,0,6,12,0,4,6, - 0,0,0,0,252,7,224,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,0,24,3,0,28,6,0,14,12,0,3,240,0, - 19,25,75,21,1,0,6,12,0,7,14,0,7,14,0,6, - 12,0,0,0,0,252,7,224,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,0,24,3,0,28,6,0,14,12,0,3,240, - 0,18,27,81,19,0,0,0,12,0,0,30,0,0,60,0, - 0,112,0,0,192,0,1,0,0,0,0,0,240,31,192,56, - 7,0,28,6,0,12,12,0,14,12,0,7,24,0,7,24, - 0,3,48,0,3,176,0,1,224,0,1,224,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,7,248,0,15,20,40,17,1,0,254,0, - 48,0,48,0,48,0,63,224,48,120,48,28,48,14,48,6, - 48,6,48,6,48,6,48,12,48,12,52,56,51,224,48,0, - 48,0,48,0,254,0,16,24,48,18,1,0,1,224,6,56, - 8,24,16,28,16,12,48,12,48,12,48,28,48,56,48,240, - 49,192,49,128,49,128,49,192,48,240,48,124,48,62,48,15, - 48,7,48,3,49,3,49,3,49,134,241,248,13,23,46,15, - 1,0,56,0,56,0,28,0,14,0,6,0,3,0,1,0, - 0,0,15,192,48,224,112,96,96,96,0,96,0,96,15,224, - 63,224,126,96,240,96,224,96,192,96,192,96,65,224,62,120, - 13,23,46,15,1,0,0,224,0,224,1,192,1,128,3,0, - 2,0,4,0,0,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,13,23,46,15,1,0,7,0,7,0,15,128, - 29,192,24,192,48,96,32,32,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,28,16, - 63,32,35,192,64,0,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,48,96, - 56,112,48,96,48,96,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,22,44,15,1,0,7,128, - 13,128,12,192,12,128,13,128,15,0,0,0,15,192,48,224, - 112,96,96,96,0,96,0,96,15,224,63,224,126,96,240,96, - 224,96,192,96,192,96,65,224,62,120,19,15,45,22,2,0, - 31,143,0,113,176,192,96,224,192,224,224,96,128,192,96,0, - 192,96,7,255,192,28,192,0,112,192,0,96,192,0,192,192, - 0,192,224,0,193,96,64,194,112,224,124,31,0,12,22,44, - 14,1,249,7,224,24,96,32,32,96,0,64,0,192,0,192, - 0,192,0,192,0,192,0,224,0,112,16,120,96,63,192,31, - 128,2,0,2,0,7,128,3,128,1,128,3,0,12,0,13, - 23,46,15,1,0,24,0,60,0,12,0,6,0,3,0,1, - 0,1,128,0,0,7,192,24,96,32,48,96,24,64,24,192, - 24,255,240,192,0,192,0,192,0,224,0,96,0,112,8,56, - 48,15,192,13,23,46,15,1,0,0,96,0,240,0,192,1, - 128,1,128,3,0,6,0,0,0,7,192,24,96,32,48,96, - 24,64,24,192,24,255,240,192,0,192,0,192,0,224,0,96, - 0,112,8,56,48,15,192,13,23,46,15,1,0,3,0,7, - 128,15,128,12,192,24,96,16,32,32,16,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,13,21,42,15,1, - 0,24,48,56,112,56,112,48,96,0,0,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,7,23,23,9,0, - 0,224,224,112,48,24,12,4,0,24,120,24,24,24,24,24, - 24,24,24,24,24,24,24,126,8,23,23,9,1,0,7,7, - 14,12,24,48,32,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,252,9,23,46,9,0,0,28,0,28,0,62, - 0,119,0,99,0,193,128,128,128,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,10,21,42,9,0,0,193, - 128,193,128,227,192,193,128,0,0,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,14,23,46,16,1,0,12, - 0,62,24,3,240,3,192,30,224,48,96,0,112,0,56,7, - 152,24,120,32,60,96,28,64,12,192,12,192,12,192,12,192, - 12,192,8,224,24,96,16,112,48,56,96,15,128,16,21,42, - 18,1,0,7,8,15,144,24,224,16,0,0,0,0,0,112, - 112,177,136,54,12,56,12,56,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,252,63,14,23,46, - 16,1,0,28,0,28,0,14,0,6,0,3,0,1,128,0, - 128,0,0,7,192,24,112,32,56,96,24,64,28,192,12,192, - 12,192,12,192,12,192,12,224,8,96,24,112,16,56,32,15, - 192,14,23,46,16,1,0,0,112,0,112,0,224,1,192,1, - 128,3,0,2,0,0,0,7,192,24,112,32,56,96,24,64, - 28,192,12,192,12,192,12,192,12,192,12,224,8,96,24,112, - 16,56,32,15,192,14,23,46,16,1,0,3,128,3,128,7, - 192,14,192,12,96,24,48,48,16,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,14, - 8,31,144,17,224,32,0,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,24, - 48,24,48,56,112,24,48,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,11,10,20,13,1,4,6, - 0,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,6,0,14,16,32,16,1,255,7,204,24,120,32,120,96, - 120,64,252,193,220,193,140,195,140,199,12,198,12,236,8,124, - 24,120,16,120,32,207,192,128,0,15,23,46,17,1,0,28, - 0,28,0,14,0,7,0,3,0,1,128,0,128,0,0,48, - 24,240,120,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,56,24,222,15,24,15,23,46, - 17,1,0,0,112,0,112,0,224,0,192,1,128,1,0,2, - 0,0,0,48,24,240,120,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,56,24,222,15, - 24,15,23,46,17,1,0,3,128,3,128,7,192,14,224,12, - 96,24,48,16,16,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,15,21,42,17,1,0,24,48,28,56,24, - 48,24,48,0,0,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,16,31,62,16,255,248,0,28,0,28,0, - 56,0,112,0,96,0,192,0,128,0,0,126,31,28,6,28, - 4,12,12,14,12,14,8,6,24,7,24,3,16,3,48,3, - 176,1,160,1,224,1,224,0,192,0,192,0,128,1,128,1, - 128,3,0,126,0,124,0,248,0,15,32,64,17,1,248,16, - 0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,240,51,24,52,28,56,12,48,14,48,6,48,6,48, - 6,48,6,48,6,48,4,48,12,56,8,60,16,55,224,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,254,0,16, - 29,58,16,255,248,6,12,14,28,14,28,6,12,0,0,0, - 0,126,31,28,6,28,4,12,12,14,12,14,8,6,24,7, - 24,3,16,3,48,3,176,1,160,1,224,1,224,0,192,0, - 192,0,128,1,128,1,128,3,0,126,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=13 h=30 x= 2 y=11 dx=15 dy= 0 ascent=25 len=60 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20n[640] U8G_FONT_SECTION("u8g_font_gdr20n") = { - 0,47,44,240,246,19,0,0,0,0,42,58,0,25,251,19, - 0,12,13,26,14,1,11,6,0,6,0,134,0,102,48,242, - 240,27,128,6,0,27,128,114,240,230,48,6,32,6,0,6, - 0,12,11,22,13,1,3,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,6,0,4,8,8, - 7,2,251,112,240,48,48,48,32,64,192,9,1,2,11,1, - 8,255,128,4,4,4,7,2,0,112,240,240,224,13,30,60, - 15,1,251,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,1,192,1,128,1,128,3,128,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,24,0,56, - 0,48,0,48,0,112,0,96,0,96,0,224,0,192,0,13, - 19,38,15,1,0,7,128,24,192,32,96,96,48,64,48,64, - 56,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 16,96,16,96,48,48,32,24,64,15,128,11,19,38,15,2, - 0,2,0,30,0,126,0,134,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,15,0,127,224,11,19,38,15,2,0,15,128,48, - 192,96,96,96,96,96,96,0,96,0,96,0,192,0,192,1, - 128,3,0,7,0,6,0,12,0,24,0,48,32,112,32,224, - 32,255,224,11,19,38,15,2,0,31,0,113,128,96,192,224, - 192,0,192,0,192,1,128,3,0,15,0,3,192,0,192,0, - 224,0,96,0,96,0,96,0,96,128,192,193,128,127,0,12, - 19,38,15,1,0,0,64,1,192,3,192,3,192,6,192,12, - 192,12,192,24,192,48,192,48,192,96,192,224,192,255,240,0, - 192,0,192,0,192,0,192,0,192,7,240,11,19,38,15,2, - 0,63,224,32,0,32,0,96,0,96,0,96,0,96,0,127, - 0,97,192,0,192,0,96,0,96,0,96,0,96,0,96,0, - 64,128,192,193,128,63,0,12,20,40,15,2,0,0,192,7, - 0,14,0,24,0,48,0,112,0,96,0,96,0,207,128,240, - 224,224,96,192,112,192,48,192,48,192,48,96,48,96,32,32, - 96,48,64,15,128,12,19,38,15,2,0,255,240,128,96,128, - 96,0,224,0,192,0,192,1,128,1,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,56,0,48, - 0,12,19,38,15,2,0,31,128,48,192,96,96,224,96,224, - 96,224,96,248,192,127,128,31,128,31,192,49,224,96,112,192, - 112,192,48,192,48,192,32,96,32,112,64,31,128,12,20,40, - 15,2,255,15,128,49,192,32,224,64,96,192,112,192,48,192, - 48,192,48,192,48,96,112,48,176,31,48,0,96,0,96,0, - 96,0,192,1,128,7,0,30,0,48,0,4,15,15,7,2, - 0,112,240,240,96,0,0,0,0,0,0,0,112,240,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=27 dy= 0 ascent=26 len=80 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20r[4232] U8G_FONT_SECTION("u8g_font_gdr20r") = { - 0,47,44,240,246,20,4,220,11,144,32,127,248,26,248,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 4 y=23 dx=34 dy= 0 ascent=34 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25[13042] U8G_FONT_SECTION("u8g_font_gdr25") = { - 0,59,57,236,242,25,6,209,16,163,32,255,247,34,245,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,0,5,29,29,11,3,245,112,248,248,248,112, - 0,0,96,96,96,96,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,240,240,240,192,15,25,50,19,2,255,1,128, - 1,128,1,128,1,240,7,252,31,254,57,140,113,132,113,128, - 97,128,225,128,225,128,225,128,225,128,225,128,241,128,113,128, - 121,134,61,140,63,248,31,240,3,192,1,128,1,128,1,128, - 17,25,75,19,1,255,0,252,0,3,255,0,7,15,0,14, - 7,0,12,6,0,12,2,0,28,2,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,127,224,0,255,224,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,24, - 0,128,24,1,0,24,3,0,63,223,0,127,255,0,192,255, - 0,13,13,26,19,3,5,192,24,239,184,127,240,56,224,96, - 112,96,48,96,48,96,48,120,240,63,224,111,176,192,24,128, - 8,21,24,72,19,255,0,120,7,248,252,1,248,62,1,224, - 31,3,128,15,3,128,7,135,0,7,135,0,3,206,0,1, - 206,0,1,252,0,0,248,0,0,248,0,0,112,0,0,112, - 0,15,255,192,31,255,128,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,248,0,3,254,0,3, - 41,41,9,3,248,96,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,128,0,0,0,64,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,192,15,28, - 56,19,2,0,7,224,15,248,28,120,56,24,56,8,56,0, - 60,0,31,0,31,128,63,224,99,248,224,252,224,124,224,30, - 240,30,120,14,62,14,31,14,15,220,3,248,0,248,0,60, - 32,28,32,28,48,28,60,56,63,240,7,192,12,5,10,16, - 2,22,96,48,224,112,224,112,224,112,192,96,25,25,100,29, - 2,0,0,127,0,0,3,255,224,0,7,128,240,0,14,0, - 56,0,28,31,28,0,56,127,206,0,112,225,199,0,97,192, - 131,0,99,128,3,0,195,0,1,128,199,0,1,128,199,0, - 1,128,199,0,1,128,199,0,1,128,199,0,1,128,199,128, - 1,128,99,128,3,0,99,192,67,0,113,241,135,0,56,255, - 14,0,28,60,28,0,14,0,56,0,7,128,240,0,3,255, - 224,0,0,127,0,0,8,14,14,10,1,11,28,60,70,198, - 6,30,102,198,198,206,119,0,255,255,15,18,36,19,2,0, - 2,6,6,4,12,12,12,24,24,56,56,112,112,224,241,224, - 225,192,225,192,241,224,112,240,56,112,24,56,12,24,12,12, - 6,4,2,6,17,8,24,19,1,4,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,0,11,2,4,13,1,9,127,224,255,224,13,14,28,14, - 1,14,15,128,63,224,112,96,127,48,200,152,136,136,143,8, - 138,8,137,8,201,152,92,240,112,112,63,224,15,128,13,2, - 4,20,3,23,127,248,255,248,8,9,9,14,3,15,28,62, - 103,231,231,231,230,124,56,15,18,36,16,1,3,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,0,0,0,0,0,127,252,255, - 252,11,15,30,14,1,12,15,128,31,192,49,224,96,224,64, - 224,0,192,1,192,1,128,3,0,6,0,12,0,24,32,48, - 32,127,224,255,224,11,16,32,13,1,11,31,0,63,128,99, - 192,225,192,1,192,1,128,7,0,31,128,1,192,0,224,0, - 224,0,224,0,224,193,192,127,128,30,0,8,9,9,13,4, - 20,7,15,30,28,56,48,112,96,192,20,27,81,21,1,247, - 12,1,128,252,7,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,30,7,128,31,31,128,31,251,144, - 27,243,224,25,225,128,24,0,0,24,0,0,24,0,0,28, - 0,0,28,0,0,28,0,0,30,0,0,30,0,0,24,0, - 0,20,30,90,22,1,251,3,255,240,28,63,192,48,59,128, - 112,59,128,96,59,128,224,59,128,224,59,128,224,59,128,224, - 59,128,240,59,128,112,59,128,120,59,128,62,59,128,31,251, - 128,7,251,128,0,59,128,0,59,128,0,59,128,0,59,128, - 0,59,128,0,59,128,0,59,128,0,59,128,0,59,128,0, - 59,128,0,59,128,0,59,128,0,59,128,0,127,192,1,255, - 240,3,5,5,6,1,11,96,224,224,224,192,7,9,9,9, - 1,247,24,16,56,60,62,14,12,56,224,10,15,30,13,2, - 12,6,0,62,0,254,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,255,192,9, - 14,28,11,1,11,30,0,63,0,103,0,67,128,193,128,193, - 128,193,128,193,128,225,0,115,0,126,0,60,0,255,128,255, - 128,15,18,36,19,3,0,129,0,193,128,96,192,112,96,48, - 112,56,48,28,56,30,28,15,30,15,30,30,28,28,56,56, - 56,48,112,112,224,96,192,193,128,129,0,19,24,72,23,2, - 0,12,0,192,252,1,224,28,1,128,28,3,128,28,3,0, - 28,6,0,28,14,0,28,12,0,28,24,0,28,56,0,28, - 48,0,255,224,0,0,224,0,0,192,192,1,193,192,1,130, - 192,3,2,192,7,4,192,6,8,192,12,16,192,28,31,224, - 24,63,224,48,0,192,112,3,224,20,24,72,24,2,0,12, - 0,96,252,0,192,28,0,192,28,1,128,28,3,0,28,3, - 0,28,6,0,28,14,0,28,12,0,28,24,0,28,56,0, - 255,176,0,0,97,224,0,99,240,0,196,112,1,204,112,1, - 128,96,3,0,224,7,0,192,6,1,128,12,3,32,28,6, - 16,24,15,240,48,31,240,20,25,75,23,1,0,30,0,0, - 63,0,48,103,128,96,195,128,224,3,0,192,6,1,128,31, - 129,128,3,195,0,0,231,0,0,230,0,97,204,0,63,220, - 0,15,24,0,0,48,0,0,48,96,0,96,224,0,225,96, - 0,195,96,1,130,96,3,132,96,3,12,112,6,31,240,14, - 0,96,12,0,96,24,1,240,14,29,58,18,2,245,3,128, - 7,192,7,192,7,192,3,128,0,0,0,0,3,128,3,128, - 3,128,3,128,3,128,7,0,7,0,14,0,28,0,60,0, - 56,0,112,0,112,0,224,0,224,12,224,28,224,28,224,28, - 240,56,120,112,63,224,31,128,23,34,102,24,0,0,3,0, - 0,7,128,0,7,224,0,1,240,0,0,120,0,0,60,0, - 0,14,0,0,2,0,0,0,0,0,8,0,0,56,0,0, - 60,0,0,60,0,0,108,0,0,110,0,0,110,0,0,198, - 0,0,199,0,0,199,0,1,131,0,1,131,128,1,131,128, - 3,1,128,3,255,192,3,255,192,6,0,224,6,0,224,6, - 0,224,12,0,112,12,0,112,12,0,112,24,0,56,28,0, - 120,255,1,254,23,34,102,24,0,0,0,1,128,0,3,192, - 0,7,192,0,15,0,0,30,0,0,56,0,0,96,0,0, - 192,0,0,0,0,0,8,0,0,56,0,0,60,0,0,60, - 0,0,108,0,0,110,0,0,110,0,0,198,0,0,199,0, - 0,199,0,1,131,0,1,131,128,1,131,128,3,1,128,3, - 255,192,3,255,192,6,0,224,6,0,224,6,0,224,12,0, - 112,12,0,112,12,0,112,24,0,56,28,0,120,255,1,254, - 23,33,99,24,0,0,0,56,0,0,124,0,0,254,0,1, - 231,0,1,131,128,3,1,192,6,0,128,0,0,0,0,8, - 0,0,56,0,0,60,0,0,60,0,0,108,0,0,110,0, - 0,110,0,0,198,0,0,199,0,0,199,0,1,131,0,1, - 131,128,1,131,128,3,1,128,3,255,192,3,255,192,6,0, - 224,6,0,224,6,0,224,12,0,112,12,0,112,12,0,112, - 24,0,56,28,0,120,255,1,254,23,32,96,24,0,0,0, - 224,64,1,248,192,3,253,128,6,31,0,4,6,0,0,0, - 0,0,0,0,0,8,0,0,56,0,0,60,0,0,60,0, - 0,108,0,0,110,0,0,110,0,0,198,0,0,199,0,0, - 199,0,1,131,0,1,131,128,1,131,128,3,1,128,3,255, - 192,3,255,192,6,0,224,6,0,224,6,0,224,12,0,112, - 12,0,112,12,0,112,24,0,56,28,0,120,255,1,254,23, - 31,93,24,0,0,3,129,192,3,129,192,3,129,192,3,1, - 128,3,1,128,0,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,23,34,102,24,0,0,0,62,0,0,126,0,0,199, - 0,0,195,0,0,195,0,0,230,0,0,252,0,0,48,0, - 0,0,0,0,8,0,0,56,0,0,60,0,0,60,0,0, - 108,0,0,110,0,0,110,0,0,198,0,0,199,0,0,199, - 0,1,131,0,1,131,128,1,131,128,3,1,128,3,255,192, - 3,255,192,6,0,224,6,0,224,6,0,224,12,0,112,12, - 0,112,12,0,112,24,0,56,28,0,120,255,1,254,30,25, - 100,31,0,0,1,255,255,240,0,63,255,240,0,25,192,48, - 0,25,192,16,0,57,192,16,0,49,192,0,0,113,192,0, - 0,97,192,0,0,97,192,0,0,225,192,0,0,255,255,192, - 1,255,255,192,1,193,192,128,1,129,192,0,3,129,192,0, - 3,1,192,0,7,1,192,0,7,1,192,0,6,1,192,0, - 14,1,192,0,12,1,192,4,28,1,192,12,28,1,192,24, - 60,3,255,248,255,15,255,248,18,34,102,21,1,247,0,126, - 0,3,255,192,7,7,192,14,1,128,28,0,0,56,0,0, - 48,0,0,112,0,0,112,0,0,96,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,0,112,0,0,120,0,0,56,0,64,60,0,192, - 30,3,128,15,254,0,7,252,0,1,240,0,0,64,0,0, - 96,0,0,240,0,0,120,0,0,56,0,0,48,0,0,224, - 0,3,128,0,18,34,102,20,1,0,12,0,0,62,0,0, - 63,0,0,15,128,0,3,192,0,0,224,0,0,112,0,0, - 16,0,0,0,0,255,255,0,63,255,0,28,3,0,28,1, - 0,28,1,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,31,252,0,31,252,0,28,8,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,64,28,0,192,28,1,128,63,255,128,255,255,128, - 18,34,102,20,1,0,0,12,0,0,30,0,0,62,0,0, - 120,0,0,240,0,1,192,0,3,0,0,6,0,0,0,0, - 0,255,255,0,63,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,31, - 252,0,31,252,0,28,8,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,64, - 28,0,192,28,1,128,63,255,128,255,255,128,18,33,99,20, - 1,0,1,192,0,3,224,0,7,240,0,7,56,0,12,28, - 0,24,14,0,16,2,0,0,0,0,255,255,0,63,255,0, - 28,3,0,28,1,0,28,1,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,31,252,0,31,252,0,28,8, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,64,28,0,192,28,1,128,63, - 255,128,255,255,128,18,31,93,20,1,0,28,14,0,28,14, - 0,28,14,0,28,14,0,24,12,0,0,0,0,255,255,0, - 63,255,0,28,3,0,28,1,0,28,1,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,31,252,0,31,252, - 0,28,8,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,64,28,0,192,28, - 1,128,63,255,128,255,255,128,11,34,68,12,255,0,96,0, - 248,0,252,0,62,0,15,0,3,128,1,192,0,64,0,0, - 63,224,15,128,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 63,224,11,34,68,12,1,0,0,192,1,224,3,224,7,128, - 15,0,28,0,48,0,96,0,0,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,12,33,66,12, - 0,0,14,0,31,0,63,128,57,192,96,224,192,112,128,32, - 0,0,127,192,31,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,127,192,12,31,62,12,0,0,224,112,224,112,224,112, - 224,112,192,96,0,0,127,192,31,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,31,0,127,192,21,25,75,24,1,0,31,248, - 0,255,255,0,28,15,128,28,3,192,28,1,224,28,0,240, - 28,0,112,28,0,112,28,0,120,28,0,56,28,0,56,255, - 240,56,255,224,56,28,0,56,28,0,56,28,0,56,28,0, - 112,28,0,112,28,0,112,28,0,224,28,1,224,28,3,192, - 28,15,128,63,254,0,255,248,0,24,32,96,26,1,0,0, - 240,64,1,248,96,3,252,192,2,31,128,6,6,0,0,0, - 0,0,0,0,248,1,255,60,0,124,30,0,56,30,0,56, - 31,0,56,31,128,56,29,128,56,29,192,56,28,224,56,28, - 96,56,28,112,56,28,56,56,28,28,56,28,28,56,28,14, - 56,28,7,56,28,7,56,28,3,184,28,3,248,28,1,248, - 28,0,248,28,0,248,28,0,120,62,0,56,255,128,24,21, - 34,102,24,1,0,3,0,0,7,128,0,15,192,0,3,224, - 0,0,240,0,0,56,0,0,28,0,0,4,0,0,0,0, - 0,252,0,3,255,0,7,7,128,12,3,192,24,1,224,56, - 0,224,112,0,112,112,0,112,96,0,120,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,224,0,56,224,0,56, - 240,0,48,112,0,112,112,0,96,120,0,224,60,0,192,30, - 1,128,15,7,0,7,254,0,1,248,0,21,34,102,24,1, - 0,0,3,0,0,7,128,0,15,192,0,31,0,0,60,0, - 0,112,0,0,224,0,0,128,0,0,0,0,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,96,120,0,224,60,0,192,30,1,128,15,7, - 0,7,254,0,1,248,0,21,33,99,24,1,0,0,120,0, - 0,252,0,0,252,0,1,206,0,3,135,0,6,1,128,4, - 0,128,0,0,0,0,252,0,3,255,0,7,7,128,12,3, - 192,24,1,224,56,0,224,112,0,112,112,0,112,96,0,120, - 224,0,56,224,0,56,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,240,0,48,112,0,112,112,0,96,120,0, - 224,60,0,192,30,1,128,15,7,0,7,254,0,1,248,0, - 21,32,96,24,1,0,1,224,128,3,240,192,7,249,128,6, - 63,0,12,12,0,0,0,0,0,0,0,0,252,0,3,255, - 0,7,7,128,12,3,192,24,1,224,56,0,224,112,0,112, - 112,0,112,96,0,120,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,240,0,48,112,0, - 112,112,0,96,120,0,224,60,0,192,30,1,128,15,7,0, - 7,254,0,1,248,0,21,31,93,24,1,0,3,1,128,7, - 3,128,7,3,128,7,3,128,2,1,0,0,0,0,0,252, - 0,3,255,0,7,7,128,12,3,192,24,1,224,56,0,224, - 112,0,112,112,0,112,96,0,120,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,224,0,56,240,0, - 48,112,0,112,112,0,96,120,0,224,60,0,192,30,1,128, - 15,7,0,7,254,0,1,248,0,13,12,24,16,2,5,192, - 48,224,120,112,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,112,192,56,21,26,78,24,1,255,0,252,56, - 3,255,112,7,7,224,12,3,224,24,1,224,56,3,240,48, - 7,240,112,7,112,96,14,120,224,28,56,224,28,56,224,56, - 56,224,112,56,224,112,56,224,224,56,225,192,56,243,128,48, - 115,128,112,119,0,96,126,0,224,60,0,192,62,1,128,63, - 7,0,119,254,0,225,248,0,128,0,0,24,34,102,26,1, - 0,1,128,0,3,192,0,3,224,0,0,240,0,0,120,0, - 0,28,0,0,6,0,0,3,0,0,0,0,255,129,255,62, - 0,124,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,112,14,0,112,14,0,112,15,0,224,7,193, - 192,3,255,128,0,126,0,24,34,102,26,1,0,0,1,128, - 0,3,224,0,7,224,0,15,128,0,30,0,0,56,0,0, - 112,0,0,64,0,0,0,0,255,129,255,62,0,124,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 112,14,0,112,14,0,112,15,0,224,7,193,192,3,255,128, - 0,126,0,24,33,99,26,1,0,0,28,0,0,62,0,0, - 127,0,0,231,0,1,193,128,3,128,192,2,0,64,0,0, - 0,255,129,255,62,0,124,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,112,14,0,112,14,0,112, - 15,0,224,7,193,192,3,255,128,0,126,0,24,31,93,26, - 1,0,1,128,192,3,129,192,3,129,192,3,129,192,1,0, - 128,0,0,0,255,129,255,62,0,124,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,14,0,112, - 14,0,112,15,0,224,7,193,192,3,255,128,0,126,0,23, - 34,102,24,0,0,0,1,128,0,3,192,0,7,192,0,15, - 0,0,30,0,0,56,0,0,96,0,0,192,0,0,0,0, - 248,1,254,60,0,120,30,0,96,14,0,224,7,0,192,7, - 129,192,3,129,128,3,195,128,1,195,0,0,231,0,0,238, - 0,0,126,0,0,124,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,124,0,1,255,0,18,25,75,21,1, - 0,255,128,0,60,0,0,28,0,0,28,0,0,31,248,0, - 31,254,0,28,31,0,28,7,128,28,3,128,28,3,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 128,28,7,128,28,15,0,29,254,0,28,248,0,28,0,0, - 28,0,0,28,0,0,62,0,0,255,128,0,20,30,90,23, - 1,0,0,124,0,1,255,0,3,15,128,6,3,128,14,3, - 192,12,1,192,12,1,192,28,1,192,28,1,192,28,3,128, - 28,7,128,28,31,0,28,120,0,28,240,0,28,224,0,28, - 224,0,28,240,0,28,124,0,28,63,0,28,31,192,28,7, - 224,28,1,224,28,0,240,28,0,112,28,128,112,28,128,112, - 28,192,96,28,224,224,60,255,192,252,63,0,16,29,58,18, - 2,0,56,0,60,0,28,0,14,0,14,0,7,0,3,128, - 1,128,0,192,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,0,56,0,120,0,112,0,224,0,192,1,192,3,128, - 3,0,6,0,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,3,128,7,128,7,192,15,224,30,224,28,112,56,56, - 48,24,96,12,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,27,54,18, - 2,0,14,4,31,12,63,152,99,240,64,224,0,0,0,0, - 0,0,0,0,3,224,31,240,56,120,112,56,240,56,192,56, - 0,56,0,120,7,248,28,56,112,56,96,56,224,56,224,56, - 224,120,241,185,127,63,60,24,16,27,54,18,2,0,48,24, - 48,24,112,56,112,56,48,24,0,0,0,0,0,0,0,0, - 3,224,31,240,56,120,112,56,240,56,192,56,0,56,0,120, - 7,248,28,56,112,56,96,56,224,56,224,56,224,120,241,185, - 127,63,60,24,16,28,56,18,2,0,3,192,7,224,12,96, - 12,96,24,96,12,96,15,192,7,128,0,0,0,0,3,224, - 31,240,56,120,112,56,240,56,192,56,0,56,0,120,7,248, - 28,56,112,56,96,56,224,56,224,56,224,120,241,185,127,63, - 60,24,24,18,54,28,2,0,3,225,240,15,243,252,56,119, - 30,112,60,14,224,60,7,240,56,7,192,56,7,1,255,255, - 15,255,254,30,56,0,120,56,0,112,56,0,224,56,0,224, - 60,2,224,92,3,241,159,14,127,15,248,60,3,224,15,27, - 54,17,2,247,1,248,7,254,28,28,56,12,48,4,112,0, - 96,0,224,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,8,120,24,63,240,31,224,15,128,2,0,2,0,3,128, - 7,192,1,192,1,128,7,0,28,0,14,29,58,18,2,0, - 28,0,60,0,30,0,14,0,7,0,3,128,1,128,0,192, - 0,64,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 0,56,0,60,0,120,0,112,0,224,0,192,1,128,1,0, - 3,0,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 1,128,3,192,7,224,7,224,14,112,28,56,24,24,48,12, - 32,4,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,27,54,18,2,0, - 24,12,56,28,56,28,56,28,48,24,0,0,0,0,0,0, - 0,0,3,192,15,240,28,120,48,56,112,28,96,28,224,28, - 255,252,255,248,224,0,224,0,224,0,240,0,112,4,120,12, - 60,56,31,240,7,192,10,29,58,11,0,0,224,0,240,0, - 120,0,56,0,28,0,12,0,14,0,6,0,3,0,0,0, - 0,0,6,0,126,0,30,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,30,0,127,192,10,29,58,11,1,0,1,192,3,192, - 3,128,7,128,7,0,14,0,12,0,24,0,16,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,13,29,58,11,255,0,7,0,7,128, - 15,128,31,192,29,192,56,224,112,112,96,48,192,24,0,0, - 0,0,3,0,63,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,15,0,63,224,12,27,54,11,0,0,192,96,224,112, - 224,112,192,96,192,96,0,0,0,0,0,0,0,0,6,0, - 126,0,30,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,30,0, - 127,192,16,28,56,20,2,0,6,0,63,6,7,159,1,248, - 3,224,15,112,28,56,0,28,0,28,0,14,3,206,15,254, - 28,127,48,31,112,15,96,15,224,7,224,7,224,7,224,7, - 224,6,224,6,240,14,112,12,120,28,60,56,31,240,7,192, - 21,27,81,22,1,0,1,192,128,7,225,0,7,243,0,12, - 126,0,8,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,12,15,0,252,63,128,60,99,192,29,129,192,29,1,192, - 30,1,192,30,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,62,3,192,255,143,248,16,29,58,20,2,0,28,0,30, - 0,14,0,7,0,3,128,3,128,1,192,0,192,0,96,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,0,28,0, - 60,0,56,0,112,0,112,0,224,0,192,1,128,3,0,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,1,192,3, - 192,3,224,7,240,7,112,14,56,28,28,24,12,48,6,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,27,54,20,2,0,7,2,15, - 134,31,204,49,248,32,112,0,0,0,0,0,0,0,0,3, - 224,15,248,28,60,48,30,112,14,96,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,6,112,14,120,12,62,56,31, - 240,7,192,16,27,54,20,2,0,24,12,24,12,28,14,24, - 12,24,12,0,0,0,0,0,0,0,0,3,224,15,248,28, - 60,48,30,112,14,96,15,224,7,224,7,224,7,224,7,224, - 7,224,7,240,6,112,14,120,12,62,56,31,240,7,192,14, - 14,28,16,1,4,1,128,3,128,3,128,3,0,0,0,0, - 0,127,252,255,252,0,0,0,0,1,128,3,128,3,128,3, - 0,16,20,40,20,2,255,0,1,3,227,15,254,28,60,48, - 30,112,30,96,63,224,103,224,199,224,135,225,135,227,7,230, - 7,252,6,120,14,120,12,60,56,127,240,199,192,128,0,21, - 29,87,21,0,0,7,0,0,7,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,48,0,0,24,0, - 0,0,0,0,0,0,12,0,192,252,15,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,3,192, - 28,7,192,30,29,200,15,241,240,7,192,192,21,29,87,21, - 0,0,0,7,0,0,15,128,0,14,0,0,30,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,64,0,0,0,0, - 0,0,0,12,0,192,252,15,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,3,192,28,7,192, - 30,29,200,15,241,240,7,192,192,21,29,87,21,0,0,0, - 112,0,0,120,0,0,248,0,1,252,0,1,222,0,3,142, - 0,7,7,0,6,3,0,12,1,128,0,0,0,0,0,0, - 12,0,192,252,15,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,3,192,28,7,192,30,29,200, - 15,241,240,7,192,192,21,27,81,21,0,0,6,3,0,7, - 3,128,7,3,128,6,3,0,6,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,12,0,192,252,15,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 192,28,7,192,30,29,200,15,241,240,7,192,192,20,38,114, - 20,255,247,0,3,128,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,56,0,0,48,0,0,96,0,0,0, - 0,0,0,0,127,131,240,30,0,224,14,0,192,14,0,192, - 7,1,128,7,1,128,7,3,0,3,131,0,3,131,0,1, - 198,0,1,198,0,1,198,0,0,236,0,0,236,0,0,120, - 0,0,120,0,0,120,0,0,48,0,0,48,0,0,96,0, - 0,96,0,0,224,0,1,192,0,67,128,0,127,0,0,254, - 0,0,124,0,0,18,39,117,21,1,247,12,0,0,252,0, - 0,60,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 60,0,28,255,0,29,143,0,31,7,128,30,3,128,28,3, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,1,192, - 28,1,128,28,1,128,28,3,128,30,3,0,31,134,0,31, - 252,0,28,240,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,62,0,0,255,128,0, - 20,36,108,20,255,247,3,1,128,3,1,128,7,3,128,7, - 3,128,3,1,128,0,0,0,0,0,0,0,0,0,0,0, - 0,127,131,240,30,0,224,14,0,192,14,0,192,7,1,128, - 7,1,128,7,3,0,3,131,0,3,131,0,1,198,0,1, - 198,0,1,198,0,0,236,0,0,236,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,48,0,0,96,0,0,96,0, - 0,224,0,1,192,0,67,128,0,127,0,0,254,0,0,124, - 0,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=38 x= 3 y=14 dx=19 dy= 0 ascent=31 len=114 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25n[835] U8G_FONT_SECTION("u8g_font_gdr25n") = { - 0,59,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,1,128,1,128,1,128,97,132,113, - 142,121,159,31,248,7,192,3,192,31,248,121,158,241,142,33, - 134,1,128,1,128,1,128,15,14,28,16,1,4,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,6,10,10,9,2,250,60, - 252,60,28,28,24,24,48,32,64,11,2,4,13,1,9,127, - 224,255,224,5,5,5,9,2,255,112,248,248,248,112,17,38, - 114,19,1,249,0,1,128,0,7,0,0,7,0,0,7,0, - 0,14,0,0,14,0,0,14,0,0,28,0,0,28,0,0, - 56,0,0,56,0,0,56,0,0,112,0,0,112,0,0,112, - 0,0,224,0,0,224,0,1,192,0,1,192,0,1,192,0, - 3,128,0,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,28,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,192,0,0,17,24,72,19,1,0,3,224,0,15, - 248,0,28,60,0,56,30,0,48,14,0,112,7,0,96,7, - 0,96,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,3,0,112, - 7,0,112,7,0,120,6,0,60,14,0,30,28,0,15,248, - 0,7,224,0,14,24,48,19,3,0,1,128,7,128,63,128, - 255,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,15,224,127,252,14,24,48,19,2,0, - 3,224,15,248,24,120,48,60,112,28,96,28,224,28,0,28, - 0,24,0,56,0,48,0,112,0,224,1,192,1,128,3,128, - 7,0,14,0,28,0,24,4,48,4,112,12,255,252,255,252, - 15,24,48,19,1,0,3,224,15,248,28,120,56,60,112,28, - 112,28,0,28,0,24,0,48,0,96,3,224,3,248,0,60, - 0,28,0,14,0,14,0,14,0,14,0,14,0,28,64,28, - 240,120,63,240,15,192,16,24,48,19,1,0,0,24,0,120, - 0,120,0,248,1,248,1,184,3,56,7,56,6,56,12,56, - 28,56,24,56,48,56,112,56,96,56,255,255,255,254,0,56, - 0,56,0,56,0,56,0,56,0,124,3,255,15,24,48,19, - 1,0,0,4,31,252,31,248,24,0,24,0,24,0,48,0, - 48,0,48,0,63,224,63,248,48,124,64,28,0,30,0,14, - 0,14,0,14,0,14,0,14,0,28,64,28,240,120,63,240, - 15,192,15,24,48,19,2,0,0,56,0,240,3,192,7,0, - 14,0,28,0,56,0,112,0,112,0,99,224,239,248,248,60, - 240,28,224,30,224,14,224,14,224,14,224,14,112,14,112,12, - 56,28,60,56,31,240,7,192,15,23,46,19,2,0,127,254, - 255,254,192,12,192,12,128,28,0,24,0,56,0,48,0,112, - 0,96,0,96,0,224,0,192,1,192,1,128,3,128,3,0, - 7,0,7,0,14,0,14,0,28,0,56,0,15,24,48,19, - 2,0,15,192,63,240,120,120,112,60,240,28,224,28,224,28, - 240,24,120,48,62,96,31,192,7,240,24,120,48,60,112,30, - 96,14,224,14,224,14,224,14,224,12,112,28,124,56,63,240, - 15,192,15,25,50,19,2,255,7,192,15,240,56,120,48,60, - 112,28,96,28,224,14,224,14,224,14,224,14,240,14,112,30, - 120,62,63,238,15,140,0,28,0,28,0,24,0,56,0,112, - 0,224,1,192,7,128,30,0,48,0,5,19,19,9,2,255, - 120,248,248,248,96,0,0,0,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 3 y=20 dx=34 dy= 0 ascent=33 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25r[6239] U8G_FONT_SECTION("u8g_font_gdr25r") = { - 0,59,57,236,242,25,6,209,16,163,32,127,247,33,247,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 5 y=28 dx=41 dy= 0 ascent=42 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30[18369] U8G_FONT_SECTION("u8g_font_gdr30") = { - 0,71,68,232,239,30,9,231,23,124,32,255,245,42,243,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,11, - 0,0,6,35,35,13,3,243,56,124,252,252,252,248,112,0, - 16,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 120,120,120,120,120,124,124,124,124,120,96,18,30,90,23,2, - 255,0,96,0,0,96,0,0,96,0,0,96,0,0,255,0, - 3,255,128,15,255,192,30,99,128,60,97,128,56,97,0,120, - 96,0,112,96,0,240,96,0,240,96,0,240,96,0,240,96, - 0,240,96,0,240,96,0,248,96,0,120,96,0,124,96,192, - 62,97,128,63,231,128,31,255,0,15,252,0,3,248,0,0, - 96,0,0,96,0,0,96,0,0,96,0,19,29,87,23,2, - 0,0,127,0,1,255,224,3,131,224,7,1,192,6,0,192, - 14,0,192,14,0,192,30,0,64,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,255,248,0,255,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 28,0,0,28,0,32,28,0,32,24,0,96,56,0,224,63, - 255,224,127,255,224,192,255,224,15,15,30,23,4,7,128,2, - 192,6,103,204,63,248,56,56,112,28,96,12,96,12,96,12, - 96,12,48,24,56,56,127,252,231,206,192,6,25,28,112,23, - 254,0,126,0,255,128,254,0,63,128,31,0,30,0,15,128, - 60,0,7,192,120,0,3,192,112,0,3,224,240,0,1,224, - 224,0,0,241,224,0,0,241,192,0,0,123,192,0,0,127, - 128,0,0,63,0,0,0,63,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,15,255,252,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,127,128,0,1,255, - 224,0,4,49,49,11,4,246,112,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,224,0,0, - 0,0,0,112,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,224,19,34,102,24,2,0,1, - 248,0,7,254,0,30,31,0,60,7,0,60,6,0,60,0, - 0,62,0,0,63,0,0,31,128,0,31,224,0,31,248,0, - 63,252,0,121,255,0,240,127,128,240,63,192,240,15,192,240, - 7,224,248,3,224,124,1,224,126,1,224,63,129,192,31,225, - 192,7,251,128,3,255,0,0,255,0,0,63,128,0,15,128, - 16,7,128,16,7,128,24,7,128,28,7,0,30,15,0,31, - 254,0,3,240,0,15,5,10,19,2,27,112,14,240,30,240, - 30,240,30,224,28,30,30,120,34,2,0,0,31,224,0,0, - 255,252,0,1,224,30,0,7,128,7,128,14,0,1,192,28, - 3,240,224,24,15,252,96,48,60,60,48,112,112,8,56,96, - 224,0,24,97,224,0,24,193,224,0,12,195,192,0,12,195, - 192,0,12,195,192,0,12,195,192,0,12,195,192,0,12,195, - 192,0,12,195,224,0,12,97,224,0,24,97,240,8,24,112, - 248,12,56,48,124,48,48,24,63,224,96,28,15,128,224,14, - 0,1,192,7,128,7,128,1,224,30,0,0,255,252,0,0, - 31,224,0,11,15,30,12,1,14,15,0,31,0,51,128,97, - 128,97,128,3,128,29,128,97,128,193,128,193,128,239,128,253, - 224,121,128,255,192,255,192,18,21,63,23,2,0,0,128,64, - 1,128,192,3,1,128,7,3,0,14,7,0,14,14,0,28, - 30,0,60,60,0,120,60,0,240,120,0,240,120,0,248,120, - 0,120,60,0,60,60,0,28,30,0,14,14,0,14,7,0, - 7,3,0,3,1,128,1,128,192,0,128,64,20,10,30,23, - 1,4,127,255,240,255,255,240,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,96, - 14,2,4,16,1,11,127,252,255,248,15,17,34,17,1,17, - 7,192,31,240,56,56,96,12,79,132,196,70,132,66,132,194, - 135,130,133,130,132,130,196,198,68,100,106,60,56,56,31,240, - 7,192,16,2,4,24,4,28,127,255,255,254,11,11,22,17, - 3,18,15,0,63,192,113,224,96,224,224,224,224,224,224,224, - 224,192,241,128,127,0,62,0,17,22,66,20,1,3,0,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,0,0,0,0,0,0,0,0,0,127,255,128,255,255,128, - 13,17,34,17,2,15,7,192,31,240,112,248,96,120,224,120, - 0,120,0,112,0,224,1,224,3,192,7,128,15,0,30,0, - 60,8,120,24,255,248,255,248,14,18,36,16,1,14,15,128, - 63,224,113,240,224,240,192,240,0,240,1,224,7,128,15,224, - 1,240,0,120,0,60,0,60,0,60,128,120,224,248,63,224, - 15,128,10,10,20,15,5,25,7,128,7,192,15,0,15,0, - 30,0,60,0,56,0,112,0,96,0,192,0,25,33,132,26, - 1,245,6,0,24,0,254,0,248,0,126,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,31,0, - 248,0,31,1,248,0,31,131,248,0,31,255,121,0,27,254, - 127,128,25,252,126,0,24,240,56,0,24,0,0,0,24,0, - 0,0,24,0,0,0,28,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,30,0,0,0,31,0,0,0,31,0, - 0,0,24,0,0,0,23,36,108,26,1,250,1,255,254,15, - 255,254,31,7,252,60,7,112,120,7,112,120,7,112,240,7, - 112,240,7,112,240,7,112,240,7,112,240,7,112,248,7,112, - 120,7,112,124,7,112,62,7,112,31,135,112,15,255,112,1, - 255,112,0,7,112,0,7,112,0,7,112,0,7,112,0,7, - 112,0,7,112,0,7,112,0,7,112,0,7,112,0,7,112, - 0,7,112,0,7,112,0,7,112,0,7,112,0,7,112,0, - 7,112,0,31,248,0,63,254,4,5,5,7,2,14,112,240, - 240,240,224,8,10,10,11,2,246,24,56,48,62,127,15,15, - 30,120,224,13,17,34,16,2,15,3,128,31,128,255,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,15,192,127,248,12,15,30,14,1, - 14,15,128,63,192,49,224,96,96,192,112,192,48,192,48,192, - 48,224,48,224,96,120,192,63,128,31,0,255,240,255,240,18, - 21,63,23,3,0,64,64,0,224,96,0,96,48,0,48,24, - 0,56,28,0,28,14,0,14,15,0,15,7,128,7,135,128, - 7,195,192,3,195,192,7,195,192,7,135,128,15,7,128,30, - 15,0,28,14,0,56,28,0,48,56,0,112,48,0,96,96, - 0,192,64,0,24,29,87,28,2,0,4,0,4,60,0,14, - 204,0,24,12,0,56,12,0,48,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,12,6, - 0,127,142,0,0,28,0,0,24,4,0,56,28,0,112,28, - 0,96,44,0,224,108,1,192,76,1,192,140,3,129,12,3, - 3,12,7,3,255,14,7,254,12,0,12,28,0,12,56,0, - 127,24,29,87,28,2,0,4,0,6,60,0,14,204,0,28, - 12,0,24,12,0,56,12,0,112,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,127,142, - 0,0,14,0,0,28,60,0,24,255,0,57,199,0,115,131, - 0,99,3,0,224,2,1,192,4,1,128,8,3,128,16,7, - 0,32,7,0,65,14,0,129,12,1,255,28,1,255,25,29, - 116,28,1,0,15,128,3,0,31,192,7,0,49,192,14,0, - 112,192,12,0,0,192,28,0,1,128,24,0,15,0,56,0, - 1,192,112,0,0,192,96,0,0,192,224,0,0,193,192,0, - 0,193,128,0,193,195,128,0,127,135,0,0,30,7,0,0, - 0,14,2,0,0,12,14,0,0,28,14,0,0,56,22,0, - 0,48,38,0,0,112,102,0,0,224,198,0,0,224,134,0, - 1,193,134,128,3,131,255,0,3,128,6,0,7,0,6,0, - 6,0,6,0,14,0,63,128,17,35,105,21,2,243,0,224, - 0,1,240,0,3,240,0,3,240,0,3,224,0,1,192,0, - 0,0,0,0,0,0,0,0,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,7,0,0,15,0,0,30,0,0,60,0,0, - 60,0,0,120,0,0,120,0,0,240,0,0,240,3,128,240, - 7,128,240,7,128,240,7,128,248,15,0,120,15,0,126,30, - 0,63,248,0,15,224,0,28,41,164,29,0,0,0,128,0, - 0,1,192,0,0,3,240,0,0,1,248,0,0,0,124,0, - 0,0,31,0,0,0,7,128,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, - 0,0,15,0,0,0,15,0,0,0,31,128,0,0,31,128, - 0,0,27,128,0,0,59,192,0,0,57,192,0,0,49,224, - 0,0,113,224,0,0,112,224,0,0,96,240,0,0,224,240, - 0,0,224,112,0,0,192,120,0,1,192,120,0,1,192,56, - 0,1,255,252,0,3,255,252,0,3,128,30,0,3,0,30, - 0,7,0,30,0,7,0,15,0,6,0,15,0,14,0,15, - 0,14,0,7,128,12,0,7,128,62,0,7,192,255,192,63, - 240,28,41,164,29,0,0,0,0,32,0,0,0,56,0,0, - 0,252,0,0,1,248,0,0,3,224,0,0,15,128,0,0, - 30,0,0,0,56,0,0,0,32,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,7,0,0,0,15,0,0,0, - 15,0,0,0,31,128,0,0,31,128,0,0,27,128,0,0, - 59,192,0,0,57,192,0,0,49,224,0,0,113,224,0,0, - 112,224,0,0,96,240,0,0,224,240,0,0,224,112,0,0, - 192,120,0,1,192,120,0,1,192,56,0,1,255,252,0,3, - 255,252,0,3,128,30,0,3,0,30,0,7,0,30,0,7, - 0,15,0,6,0,15,0,14,0,15,0,14,0,7,128,12, - 0,7,128,62,0,7,192,255,192,63,240,28,41,164,29,0, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,121,224,0,0,240,240,0,1,192,56,0,1,128,24, - 0,1,0,16,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,39,156,29,0,0,0,16,8,0,0, - 124,12,0,0,254,28,0,1,255,248,0,1,135,240,0,3, - 3,224,0,2,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0, - 31,128,0,0,31,128,0,0,27,128,0,0,59,192,0,0, - 57,192,0,0,49,224,0,0,113,224,0,0,112,224,0,0, - 96,240,0,0,224,240,0,0,224,112,0,0,192,120,0,1, - 192,120,0,1,192,56,0,1,255,252,0,3,255,252,0,3, - 128,30,0,3,0,30,0,7,0,30,0,7,0,15,0,6, - 0,15,0,14,0,15,0,14,0,7,128,12,0,7,128,62, - 0,7,192,255,192,63,240,28,38,152,29,0,0,0,128,32, - 0,0,224,56,0,1,224,120,0,1,224,120,0,1,224,120, - 0,0,128,32,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,42,168,29,0,0,0,2,0,0,0, - 15,128,0,0,31,192,0,0,24,192,0,0,48,192,0,0, - 48,192,0,0,48,192,0,0,63,128,0,0,31,0,0,0, - 8,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 7,0,0,0,15,0,0,0,15,0,0,0,31,128,0,0, - 31,128,0,0,27,128,0,0,59,192,0,0,57,192,0,0, - 49,224,0,0,113,224,0,0,112,224,0,0,96,240,0,0, - 224,240,0,0,224,112,0,0,192,120,0,1,192,120,0,1, - 192,56,0,1,255,252,0,3,255,252,0,3,128,30,0,3, - 0,30,0,7,0,30,0,7,0,15,0,6,0,15,0,14, - 0,15,0,14,0,7,128,12,0,7,128,62,0,7,192,255, - 192,63,240,36,30,150,37,0,0,0,127,255,255,192,0,31, - 255,255,224,0,7,252,0,192,0,7,60,0,192,0,7,60, - 0,192,0,14,60,0,192,0,14,60,0,0,0,30,60,0, - 0,0,28,60,0,0,0,28,60,0,0,0,60,60,0,0, - 0,56,60,0,0,0,120,60,0,0,0,127,255,255,0,0, - 127,255,255,0,0,240,60,6,0,0,224,60,0,0,1,224, - 60,0,0,1,192,60,0,0,1,192,60,0,0,3,128,60, - 0,0,3,128,60,0,0,7,128,60,0,0,7,0,60,0, - 0,7,0,60,0,16,14,0,60,0,48,14,0,60,0,48, - 30,0,62,0,112,62,0,127,255,224,255,193,255,255,224,22, - 40,120,26,2,246,0,31,224,0,255,252,1,192,252,7,128, - 56,14,0,16,14,0,0,28,0,0,56,0,0,56,0,0, - 120,0,0,112,0,0,112,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,248,0,0,120,0,0,124,0,0,60,0,0,62,0,8, - 31,0,60,15,128,240,15,255,224,3,255,128,0,254,0,0, - 24,0,0,16,0,0,28,0,0,62,0,0,63,0,0,15, - 0,0,15,0,0,30,0,0,120,0,1,192,0,21,41,123, - 24,1,0,4,0,0,14,0,0,31,0,0,15,192,0,3, - 224,0,0,240,0,0,60,0,0,14,0,0,4,0,0,0, - 0,0,0,0,255,255,224,127,255,240,30,0,96,30,0,96, - 30,0,96,30,0,96,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,128,31,255, - 128,30,3,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,8,30, - 0,24,30,0,24,31,0,56,127,255,240,255,255,240,21,41, - 123,24,1,0,0,1,0,0,3,192,0,7,224,0,15,192, - 0,63,0,0,124,0,0,240,0,1,192,0,1,0,0,0, - 0,0,0,0,0,255,255,224,127,255,240,30,0,96,30,0, - 96,30,0,96,30,0,96,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,31,255,128,31, - 255,128,30,3,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,8, - 30,0,24,30,0,24,31,0,56,127,255,240,255,255,240,21, - 41,123,24,1,0,0,48,0,0,120,0,0,252,0,1,254, - 0,3,207,0,7,7,0,14,1,128,28,0,192,16,0,128, - 0,0,0,0,0,0,255,255,224,127,255,240,30,0,96,30, - 0,96,30,0,96,30,0,96,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,31,255,128, - 31,255,128,30,3,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 8,30,0,24,30,0,24,31,0,56,127,255,240,255,255,240, - 21,38,114,24,1,0,4,1,0,15,3,192,15,3,192,15, - 3,192,14,3,128,4,1,0,0,0,0,0,0,0,255,255, - 224,127,255,240,30,0,96,30,0,96,30,0,96,30,0,96, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,31,255,128,31,255,128,30,3,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,8,30,0,24,30,0,24,31, - 0,56,127,255,240,255,255,240,13,41,82,14,255,0,32,0, - 112,0,252,0,126,0,31,0,7,128,1,224,0,112,0,32, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 13,41,82,14,2,0,0,64,0,112,1,248,3,240,7,192, - 31,0,60,0,112,0,64,0,0,0,0,0,255,192,127,128, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,127,128,255,192,15,41,82,14,255,0,1,128, - 3,192,7,224,15,240,30,120,56,60,112,12,224,6,64,4, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 14,38,76,14,0,0,64,16,112,28,240,60,240,60,224,56, - 64,16,0,0,0,0,63,240,31,224,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,31,224, - 63,240,25,30,120,28,1,0,7,254,0,0,255,255,192,0, - 127,3,240,0,15,0,248,0,15,0,124,0,15,0,62,0, - 15,0,30,0,15,0,31,0,15,0,15,0,15,0,15,0, - 15,0,15,128,15,0,7,128,15,0,7,128,15,0,7,128, - 255,254,7,128,255,252,7,128,15,0,7,128,15,0,7,128, - 15,0,7,128,15,0,7,0,15,0,15,0,15,0,15,0, - 15,0,30,0,15,0,30,0,15,0,60,0,15,0,124,0, - 15,0,248,0,15,3,224,0,31,255,192,0,127,254,0,0, - 27,39,156,31,2,0,0,32,16,0,0,124,12,0,0,254, - 24,0,1,255,240,0,3,15,240,0,3,3,224,0,2,1, - 0,0,0,0,0,0,0,0,0,0,252,0,63,224,124,0, - 15,128,30,0,7,0,31,0,7,0,31,0,7,0,31,128, - 7,0,31,192,7,0,29,192,7,0,28,224,7,0,28,240, - 7,0,28,120,7,0,28,56,7,0,28,60,7,0,28,30, - 7,0,28,14,7,0,28,15,7,0,28,7,135,0,28,7, - 135,0,28,3,199,0,28,1,231,0,28,1,231,0,28,0, - 247,0,28,0,127,0,28,0,127,0,28,0,63,0,28,0, - 31,0,28,0,31,0,28,0,15,0,62,0,7,0,255,128, - 3,0,25,41,164,29,2,0,2,0,0,0,3,128,0,0, - 7,192,0,0,7,224,0,0,1,248,0,0,0,124,0,0, - 0,30,0,0,0,7,128,0,0,1,0,0,0,0,0,0, - 0,0,0,0,0,63,0,0,0,255,224,0,3,193,240,0, - 7,0,248,0,14,0,124,0,28,0,62,0,60,0,30,0, - 56,0,31,0,120,0,15,0,120,0,15,0,112,0,15,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 248,0,7,0,120,0,15,0,120,0,15,0,124,0,14,0, - 60,0,28,0,62,0,28,0,31,0,56,0,15,128,112,0, - 7,193,224,0,3,255,128,0,0,254,0,0,25,41,164,29, - 2,0,0,0,128,0,0,0,224,0,0,1,240,0,0,7, - 240,0,0,15,192,0,0,30,0,0,0,56,0,0,0,224, - 0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,255,224,0,3,193,240,0,7,0,248,0,14,0, - 124,0,28,0,62,0,60,0,30,0,56,0,31,0,120,0, - 15,0,120,0,15,0,112,0,15,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,248,0,7,0,120,0, - 15,0,120,0,15,0,124,0,14,0,60,0,28,0,62,0, - 28,0,31,0,56,0,15,128,112,0,7,193,224,0,3,255, - 128,0,0,254,0,0,25,41,164,29,2,0,0,28,0,0, - 0,62,0,0,0,126,0,0,0,127,0,0,0,227,128,0, - 1,193,192,0,3,128,224,0,6,0,112,0,4,0,32,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 25,39,156,29,2,0,0,64,32,0,1,248,48,0,3,252, - 48,0,3,255,224,0,6,31,192,0,4,15,128,0,12,2, - 0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,255, - 224,0,3,193,240,0,7,0,248,0,14,0,124,0,28,0, - 62,0,60,0,30,0,56,0,31,0,120,0,15,0,120,0, - 15,0,112,0,15,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,248,0,7,0,120,0,15,0,120,0, - 15,0,124,0,14,0,60,0,28,0,62,0,28,0,31,0, - 56,0,15,128,112,0,7,193,224,0,3,255,128,0,0,254, - 0,0,25,38,152,29,2,0,1,0,64,0,3,128,224,0, - 3,128,224,0,7,129,224,0,3,128,224,0,2,0,128,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 15,14,28,20,2,6,96,6,240,14,120,28,60,56,30,112, - 15,224,7,192,7,192,15,224,30,112,60,56,120,28,240,14, - 96,6,25,31,124,29,2,255,0,63,7,128,1,255,207,0, - 3,193,254,0,7,0,126,0,14,0,60,0,28,0,126,0, - 56,0,126,0,56,0,255,0,120,1,239,0,120,1,239,0, - 112,3,207,128,240,7,135,128,240,7,7,128,240,15,7,128, - 240,30,7,128,240,60,7,128,240,60,7,128,240,120,7,128, - 240,240,7,128,240,224,7,0,121,224,7,0,123,192,15,0, - 123,128,14,0,63,128,12,0,63,0,28,0,30,0,56,0, - 31,0,112,0,63,193,224,0,121,255,128,0,240,126,0,0, - 192,0,0,0,27,41,164,31,2,0,0,128,0,0,1,192, - 0,0,3,240,0,0,1,248,0,0,0,124,0,0,0,30, - 0,0,0,7,128,0,0,1,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,192,127,224,127,128,63,192,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 30,0,15,0,30,0,15,0,30,0,7,128,60,0,7,192, - 120,0,3,224,240,0,1,255,224,0,0,63,128,0,27,41, - 164,31,2,0,0,0,32,0,0,0,120,0,0,0,252,0, - 0,1,248,0,0,3,224,0,0,15,128,0,0,30,0,0, - 0,56,0,0,0,32,0,0,0,0,0,0,0,0,0,0, - 255,192,127,224,127,128,63,192,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,30,0,15,0,30,0, - 15,0,30,0,7,128,60,0,7,192,120,0,3,224,240,0, - 1,255,224,0,0,63,128,0,27,41,164,31,2,0,0,6, - 0,0,0,15,0,0,0,31,128,0,0,63,192,0,0,121, - 224,0,0,224,240,0,1,192,48,0,3,128,24,0,1,0, - 16,0,0,0,0,0,0,0,0,0,255,192,127,224,127,128, - 63,192,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,30,0,15,0,30,0,15,0,30,0,7,128, - 60,0,7,192,120,0,3,224,240,0,1,255,224,0,0,63, - 128,0,27,38,152,31,2,0,0,128,32,0,0,224,56,0, - 1,224,120,0,1,224,120,0,1,192,112,0,0,128,32,0, - 0,0,0,0,0,0,0,0,255,192,127,224,127,128,63,192, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,30,0,15,0,30,0,15,0,30,0,7,128,60,0, - 7,192,120,0,3,224,240,0,1,255,224,0,0,63,128,0, - 28,41,164,29,0,0,0,0,32,0,0,0,56,0,0,0, - 252,0,0,1,248,0,0,3,224,0,0,7,128,0,0,30, - 0,0,0,56,0,0,0,32,0,0,0,0,0,0,0,0, - 0,0,252,0,63,240,254,0,63,240,31,0,15,128,15,0, - 7,0,15,128,14,0,7,192,14,0,3,192,28,0,3,224, - 60,0,1,224,56,0,0,240,120,0,0,248,112,0,0,120, - 224,0,0,125,224,0,0,61,192,0,0,63,192,0,0,31, - 128,0,0,31,128,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,63,192,0,0,255,240,0,21,30,90,25,2,0, - 255,224,0,127,128,0,30,0,0,30,0,0,30,0,0,30, - 0,0,31,254,0,31,255,128,30,15,192,30,3,224,30,1, - 240,30,0,248,30,0,120,30,0,120,30,0,120,30,0,120, - 30,0,120,30,0,120,30,0,240,30,0,240,30,1,224,31, - 7,192,30,255,128,30,124,0,30,0,0,30,0,0,30,0, - 0,30,0,0,127,128,0,255,224,0,25,36,144,27,1,0, - 0,31,128,0,0,127,224,0,1,195,240,0,3,128,248,0, - 7,0,120,0,7,0,124,0,14,0,60,0,14,0,60,0, - 14,0,60,0,30,0,60,0,30,0,60,0,30,0,120,0, - 30,1,248,0,30,7,240,0,30,15,192,0,30,31,0,0, - 30,60,0,0,30,60,0,0,30,60,0,0,30,62,0,0, - 30,63,0,0,30,31,192,0,30,15,240,0,30,3,252,0, - 30,0,254,0,30,0,127,0,30,0,31,128,30,0,15,128, - 30,0,7,128,30,32,7,128,30,48,7,128,30,48,7,0, - 30,56,15,0,30,60,30,0,62,63,252,0,254,7,224,0, - 20,35,105,22,2,0,30,0,0,62,0,0,31,0,0,15, - 0,0,7,128,0,3,192,0,1,192,0,0,224,0,0,96, - 0,0,48,0,0,0,0,0,0,0,0,0,0,1,248,0, - 15,254,0,28,30,0,120,15,0,112,15,0,240,15,0,128, - 15,0,0,15,0,0,15,0,0,255,0,7,255,0,31,143, - 0,62,15,0,120,15,0,248,15,0,240,15,0,240,15,0, - 240,31,0,240,63,0,120,239,32,127,143,240,30,7,128,20, - 35,105,22,2,0,0,15,0,0,31,0,0,30,0,0,60, - 0,0,56,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,1,248,0,15, - 254,0,28,30,0,120,15,0,112,15,0,240,15,0,128,15, - 0,0,15,0,0,15,0,0,255,0,7,255,0,31,143,0, - 62,15,0,120,15,0,248,15,0,240,15,0,240,15,0,240, - 31,0,240,63,0,120,239,32,127,143,240,30,7,128,20,34, - 102,22,2,0,0,224,0,1,240,0,3,240,0,7,56,0, - 6,28,0,12,14,0,24,6,0,48,3,0,32,1,128,0, - 0,0,0,0,0,0,0,0,1,248,0,15,254,0,28,30, - 0,120,15,0,112,15,0,240,15,0,128,15,0,0,15,0, - 0,15,0,0,255,0,7,255,0,31,143,0,62,15,0,120, - 15,0,248,15,0,240,15,0,240,15,0,240,31,0,240,63, - 0,120,239,32,127,143,240,30,7,128,20,32,96,22,2,0, - 7,0,128,15,193,128,31,193,0,63,243,0,48,254,0,96, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,28,30,0,120,15,0,112,15,0,240,15,0, - 128,15,0,0,15,0,0,15,0,0,255,0,7,255,0,31, - 143,0,62,15,0,120,15,0,248,15,0,240,15,0,240,15, - 0,240,31,0,240,63,0,120,239,32,127,143,240,30,7,128, - 20,32,96,22,2,0,28,7,0,28,7,0,60,15,0,60, - 15,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,248,0,15,254,0,28,30,0,120,15,0, - 112,15,0,240,15,0,128,15,0,0,15,0,0,15,0,0, - 255,0,7,255,0,31,143,0,62,15,0,120,15,0,248,15, - 0,240,15,0,240,15,0,240,31,0,240,63,0,120,239,32, - 127,143,240,30,7,128,20,34,102,22,2,0,0,240,0,1, - 248,0,3,24,0,3,24,0,6,24,0,6,24,0,7,56, - 0,3,240,0,1,192,0,0,0,0,0,0,0,0,0,0, - 1,248,0,15,254,0,28,30,0,120,15,0,112,15,0,240, - 15,0,128,15,0,0,15,0,0,15,0,0,255,0,7,255, - 0,31,143,0,62,15,0,120,15,0,248,15,0,240,15,0, - 240,15,0,240,31,0,240,63,0,120,239,32,127,143,240,30, - 7,128,29,22,88,33,2,0,1,248,31,128,7,252,127,192, - 28,62,225,224,56,31,192,240,112,15,128,112,240,15,128,120, - 240,15,0,120,192,15,0,120,0,127,255,248,3,255,255,240, - 15,143,0,0,30,15,0,0,60,15,0,0,120,15,0,0, - 240,15,0,0,240,15,128,0,240,31,128,24,240,63,192,48, - 248,243,224,240,127,227,255,192,127,128,255,128,30,0,126,0, - 18,32,96,21,2,246,0,127,0,1,255,192,7,7,192,14, - 1,128,28,0,128,56,0,0,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,248,0,0,120,1,0,124,3,128,62,7,0,31, - 254,0,31,248,0,7,240,0,0,192,0,0,128,0,0,224, - 0,0,240,0,1,248,0,0,120,0,0,120,0,0,240,0, - 3,192,0,14,0,0,18,35,105,22,2,0,14,0,0,31, - 0,0,15,128,0,7,128,0,3,192,0,1,192,0,0,224, - 0,0,112,0,0,48,0,0,24,0,0,0,0,0,0,0, - 0,0,0,0,248,0,7,254,0,14,15,0,28,7,128,56, - 7,128,56,3,192,112,3,192,112,3,192,255,255,192,255,255, - 128,240,0,0,240,0,0,240,0,0,240,0,0,248,0,0, - 120,0,0,120,0,0,124,0,192,62,1,128,31,7,0,15, - 254,0,3,248,0,18,35,105,22,2,0,0,7,0,0,15, - 128,0,15,0,0,30,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,0,248,0,7,254,0,14,15,0,28,7,128,56,7, - 128,56,3,192,112,3,192,112,3,192,255,255,192,255,255,128, - 240,0,0,240,0,0,240,0,0,240,0,0,248,0,0,120, - 0,0,120,0,0,124,0,192,62,1,128,31,7,0,15,254, - 0,3,248,0,18,34,102,22,2,0,0,240,0,0,240,0, - 1,248,0,3,156,0,7,14,0,14,6,0,12,3,0,24, - 1,128,16,0,128,0,0,0,0,0,0,0,0,0,0,248, - 0,7,254,0,14,15,0,28,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,255,255,192,255,255,128,240,0,0,240, - 0,0,240,0,0,240,0,0,248,0,0,120,0,0,120,0, - 0,124,0,192,62,1,128,31,7,0,15,254,0,3,248,0, - 18,32,96,22,2,0,14,3,128,30,7,128,30,7,128,30, - 7,128,28,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,248,0,7,254,0,14,15,0,28,7,128, - 56,7,128,56,3,192,112,3,192,112,3,192,255,255,192,255, - 255,128,240,0,0,240,0,0,240,0,0,240,0,0,248,0, - 0,120,0,0,120,0,0,124,0,192,62,1,128,31,7,0, - 15,254,0,3,248,0,12,35,70,13,0,0,240,0,248,0, - 120,0,60,0,28,0,14,0,7,0,3,0,1,128,0,128, - 0,0,0,0,0,0,1,128,31,128,63,128,15,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,15,192, - 63,240,12,35,70,13,2,0,0,224,1,240,3,224,3,192, - 7,128,7,0,14,0,28,0,24,0,48,0,0,0,0,0, - 0,0,6,0,126,0,254,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,255,192,15,34, - 68,13,255,0,3,128,7,192,7,224,14,240,28,112,56,56, - 112,12,96,6,192,2,0,0,0,0,0,0,0,192,15,192, - 31,192,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,7,224,31,248,14,32,64,13,0,0,96,24, - 240,60,240,60,224,56,224,56,0,0,0,0,0,0,0,0, - 0,0,1,128,31,128,63,128,15,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,15,192,63,240,20,34, - 102,24,2,0,3,0,0,31,192,128,31,225,224,1,255,192, - 0,126,0,0,252,0,3,254,0,15,143,0,4,7,128,0, - 3,128,0,3,192,0,1,192,1,241,224,7,255,224,14,31, - 224,28,7,240,56,3,240,56,1,240,120,1,240,112,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 0,224,248,1,224,120,1,192,124,1,192,124,3,128,62,7, - 0,31,14,0,15,252,0,3,240,0,23,32,96,26,2,0, - 1,224,32,3,240,48,7,248,96,7,252,192,14,63,128,8, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7, - 192,254,15,224,62,49,224,30,96,240,30,192,240,30,128,240, - 31,0,240,31,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,127,131,248,255,199,254, - 20,35,105,24,2,0,15,0,0,15,0,0,7,128,0,3, - 192,0,1,192,0,0,224,0,0,112,0,0,112,0,0,56, - 0,0,24,0,0,0,0,0,0,0,0,0,0,0,252,0, - 7,255,0,14,15,128,28,7,192,56,3,192,56,3,224,112, - 1,224,112,1,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,0,240,240,0,240,248,0,224,120,1,224,124,1,192, - 60,1,192,62,3,128,31,7,0,15,254,0,3,240,0,20, - 35,105,24,2,0,0,7,128,0,7,192,0,15,128,0,15, - 0,0,30,0,0,60,0,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,0,0,0,0,252,0,7, - 255,0,14,15,128,28,7,192,56,3,192,56,3,224,112,1, - 224,112,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,248,0,224,120,1,224,124,1,192,60, - 1,192,62,3,128,31,7,0,15,254,0,3,240,0,20,34, - 102,24,2,0,0,112,0,0,248,0,1,252,0,1,220,0, - 3,142,0,7,7,0,14,3,128,12,1,192,24,0,192,0, - 0,0,0,0,0,0,0,0,0,252,0,7,255,0,14,15, - 128,28,7,192,56,3,192,56,3,224,112,1,224,112,1,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,248,0,224,120,1,224,124,1,192,60,1,192,62,3, - 128,31,7,0,15,254,0,3,240,0,20,32,96,24,2,0, - 3,192,64,7,224,96,15,240,192,15,249,128,28,127,0,16, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,7,255,0,14,15,128,28,7,192,56,3,192,56,3,224, - 112,1,224,112,1,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,248,0,224,120,1,224,124,1, - 192,60,1,192,62,3,128,31,7,0,15,254,0,3,240,0, - 20,32,96,24,2,0,6,1,128,15,3,192,15,3,192,14, - 3,128,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,7,255,0,14,15,128,28,7,192, - 56,3,192,56,3,224,112,1,224,112,1,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,248,0, - 224,120,1,224,124,1,192,60,1,192,62,3,128,31,7,0, - 15,254,0,3,240,0,17,15,45,20,1,6,0,224,0,1, - 224,0,1,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,127,255,128,255,255,128,0,0,0,0,0,0,0,224,0, - 1,224,0,1,224,0,1,192,0,20,24,72,24,2,255,0, - 0,48,1,248,112,7,254,224,14,15,192,28,7,192,56,3, - 224,56,7,224,112,15,224,112,28,240,240,24,240,240,56,240, - 240,112,240,240,224,240,240,192,240,241,192,240,243,128,224,255, - 0,224,126,1,192,126,1,192,62,3,128,63,7,0,119,254, - 0,225,248,0,128,0,0,24,35,105,25,1,0,3,128,0, - 7,192,0,3,192,0,1,224,0,0,240,0,0,112,0,0, - 56,0,0,24,0,0,12,0,0,4,0,0,0,0,0,0, - 0,0,0,0,6,0,112,254,7,240,126,7,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,1,240,31,2,240,15,12,255, - 15,248,252,3,224,112,24,35,105,25,1,0,0,1,192,0, - 3,224,0,7,192,0,7,128,0,15,0,0,14,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,0,0,0,0,0, - 0,0,0,6,0,112,254,7,240,126,7,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,1,240,31,2,240,15,12,255,15, - 248,252,3,224,112,24,34,102,25,1,0,0,56,0,0,124, - 0,0,126,0,0,231,0,1,195,0,3,129,128,3,0,192, - 6,0,96,12,0,32,0,0,0,0,0,0,0,0,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,24,32,96,25,1,0,3,0,192,7,129,224,7,129,224, - 7,129,224,7,1,192,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,6,0,112,254,7,240,126,7,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,1,240,31,2,240,15,12, - 255,15,248,252,3,224,112,24,46,138,24,255,245,0,0,240, - 0,0,248,0,1,224,0,3,224,0,3,192,0,7,128,0, - 7,0,0,14,0,0,12,0,0,24,0,0,0,0,0,0, - 0,0,0,0,127,224,255,31,0,62,15,0,28,15,0,24, - 7,128,56,7,128,56,3,128,48,3,192,112,3,192,96,1, - 224,224,1,224,224,0,224,192,0,241,192,0,241,192,0,121, - 128,0,123,128,0,59,0,0,63,0,0,63,0,0,30,0, - 0,30,0,0,12,0,0,12,0,0,28,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,224,0,63,192,0,127,128, - 0,255,0,0,124,0,0,21,47,141,25,2,245,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,15,0,28,63,192,28,99,224, - 28,193,224,29,129,240,31,0,240,31,0,248,30,0,248,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,120,30,0, - 120,30,0,112,30,0,112,30,0,224,30,0,224,31,129,192, - 31,195,128,31,255,0,30,124,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,63,0,0,255,224,0,24,43,129,24,255,245, - 0,192,48,1,192,112,1,224,120,3,192,240,1,128,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,224, - 255,31,0,62,15,0,28,15,0,24,7,128,56,7,128,56, - 3,128,48,3,192,112,3,192,96,1,224,224,1,224,224,0, - 224,192,0,241,192,0,241,192,0,121,128,0,123,128,0,59, - 0,0,63,0,0,63,0,0,30,0,0,30,0,0,12,0, - 0,12,0,0,28,0,0,24,0,0,56,0,0,112,0,0, - 112,0,0,224,0,63,192,0,127,128,0,255,0,0,124,0, - 0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=20 h=46 x= 3 y=17 dx=23 dy= 0 ascent=38 len=138 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30n[1281] U8G_FONT_SECTION("u8g_font_gdr30n") = { - 0,71,68,232,239,29,0,0,0,0,42,58,0,38,248,29, - 0,18,20,60,21,2,17,0,192,0,1,192,0,1,192,0, - 1,192,0,193,193,0,240,195,192,248,207,192,124,223,0,15, - 252,0,3,224,0,3,224,0,15,252,0,60,223,0,248,207, - 128,240,195,128,64,193,128,1,192,0,1,192,0,1,192,0, - 1,128,0,17,17,51,20,1,5,0,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,128,0,7,13,13,11, - 2,249,8,60,254,254,30,30,30,28,28,56,48,96,64,14, - 2,4,16,1,11,127,252,255,248,6,6,6,11,3,255,56, - 124,252,252,248,112,20,46,138,23,1,248,0,0,48,0,0, - 240,0,0,240,0,0,224,0,1,224,0,1,192,0,1,192, - 0,3,192,0,3,128,0,7,128,0,7,128,0,7,0,0, - 15,0,0,15,0,0,14,0,0,30,0,0,28,0,0,28, - 0,0,60,0,0,56,0,0,120,0,0,120,0,0,112,0, - 0,240,0,0,224,0,0,224,0,1,224,0,1,192,0,3, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,14,0,0,30,0,0,30,0,0,28,0,0, - 60,0,0,60,0,0,56,0,0,120,0,0,112,0,0,240, - 0,0,192,0,0,19,29,87,23,2,0,1,248,0,7,252, - 0,14,30,0,28,15,0,24,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,112,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,192,120,1,192,120,3,192,120,3,128, - 60,3,128,60,3,0,30,7,0,15,14,0,7,252,0,3, - 240,0,17,29,87,23,3,0,0,96,0,1,224,0,15,224, - 0,127,224,0,255,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,3,240,0,63,254,0,127,255,128,17, - 29,87,22,2,0,1,248,0,7,254,0,28,31,0,56,15, - 0,120,15,128,112,7,128,240,7,128,224,7,128,0,7,128, - 0,7,128,0,15,0,0,15,0,0,30,0,0,30,0,0, - 60,0,0,120,0,0,240,0,0,240,0,1,224,0,3,192, - 0,7,128,0,15,0,0,15,0,0,30,0,128,60,0,128, - 120,0,128,240,1,128,255,255,128,255,255,128,18,29,87,22, - 1,0,1,248,0,7,254,0,30,31,0,60,15,0,56,7, - 128,120,7,128,112,7,128,0,7,128,0,7,0,0,15,0, - 0,30,0,0,60,0,0,248,0,3,254,0,0,63,0,0, - 15,128,0,7,128,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,7,128,128,7,128,224,15,0, - 120,62,0,63,252,0,7,224,0,19,29,87,23,1,0,0, - 3,0,0,15,0,0,31,0,0,63,0,0,127,0,0,127, - 0,0,239,0,0,207,0,1,207,0,3,143,0,3,143,0, - 7,15,0,14,15,0,14,15,0,28,15,0,24,15,0,56, - 15,0,112,15,0,112,15,0,255,255,224,255,255,192,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,63,128,1,255,224,18,29,87,23,2,0,0,0,128,0, - 1,128,31,255,0,31,254,0,24,0,0,24,0,0,24,0, - 0,24,0,0,56,0,0,56,0,0,56,0,0,63,240,0, - 63,252,0,120,63,0,32,15,0,0,7,128,0,7,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 128,0,7,128,128,7,128,224,15,0,120,62,0,63,252,0, - 7,240,0,18,29,87,23,3,0,0,7,0,0,63,0,0, - 248,0,1,224,0,3,192,0,15,0,0,14,0,0,30,0, - 0,60,0,0,56,0,0,120,0,0,120,248,0,119,254,0, - 254,31,0,248,15,128,240,7,128,240,7,192,240,3,192,240, - 3,192,240,3,192,240,3,192,248,3,192,120,3,128,120,3, - 128,60,7,128,60,7,0,31,14,0,15,252,0,3,240,0, - 19,27,81,23,2,0,127,255,192,127,255,224,96,1,192,64, - 3,192,192,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,28,0,0,28,0,0,56,0,0,56,0, - 0,56,0,0,112,0,0,112,0,0,224,0,0,224,0,1, - 192,0,1,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,15,0,0,28,0,0,18,29,87,22,2,0,3,248,0, - 15,254,0,28,31,0,56,15,0,48,7,128,112,7,128,112, - 7,128,112,7,128,112,7,0,120,15,0,62,30,0,31,188, - 0,15,240,0,3,252,0,7,254,0,30,63,0,60,15,128, - 120,7,192,112,7,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,128,120,7,128,124,7,0,62,14,0,31,252, - 0,7,224,0,19,30,90,23,2,255,1,248,0,7,254,0, - 14,31,0,28,15,128,56,7,128,120,3,192,112,3,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,248,1, - 224,120,3,224,124,7,224,62,13,224,31,249,224,7,225,192, - 0,3,192,0,3,192,0,7,128,0,7,128,0,15,0,0, - 30,0,0,60,0,0,120,0,0,240,0,3,224,0,31,128, - 0,56,0,0,6,23,23,11,3,255,56,124,252,252,248,112, - 0,0,0,0,0,0,0,0,0,0,0,56,124,252,252,248, - 112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 4 y=25 dx=41 dy= 0 ascent=39 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30r[8588] U8G_FONT_SECTION("u8g_font_gdr30r") = { - 0,71,68,232,239,30,9,231,23,124,32,127,245,39,245,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 2 y= 8 dx=13 dy= 0 ascent=13 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9[3248] U8G_FONT_SECTION("u8g_font_gdr9") = { - 0,23,21,248,251,9,1,255,4,54,32,255,252,13,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,3,0,0,2,11,11,4,1,252,128,128,0, - 128,128,128,192,192,192,192,192,5,9,9,7,1,0,32,56, - 232,160,160,160,232,112,32,6,9,9,7,1,0,56,68,72, - 64,240,64,64,68,252,3,5,5,7,2,2,160,224,160,160, - 224,7,9,9,7,0,0,206,100,40,56,16,124,16,16,56, - 1,15,15,3,1,253,128,128,128,128,128,128,128,0,128,128, - 128,128,128,128,128,6,11,11,8,1,0,112,144,128,224,184, - 132,68,56,136,136,112,4,2,2,6,1,8,144,144,9,9, - 18,11,1,0,62,0,93,0,166,128,160,128,160,128,160,128, - 182,128,93,0,62,0,4,5,5,4,0,4,96,160,224,224, - 240,5,7,7,7,1,0,104,72,144,176,144,72,104,6,4, - 4,7,1,1,252,4,4,4,5,1,1,5,0,3,248,5, - 6,6,5,0,5,112,136,184,168,168,112,5,1,1,7,1, - 8,248,3,4,4,5,1,5,96,160,160,192,6,7,7,6, - 0,1,16,16,124,16,16,0,252,4,6,6,5,0,4,48, - 208,32,32,80,240,4,6,6,5,0,4,48,80,32,16,144, - 96,3,3,3,5,2,8,96,128,128,8,11,11,8,0,252, - 198,66,66,66,66,70,123,64,64,64,96,8,11,11,9,0, - 254,127,138,138,202,122,10,10,10,10,10,31,1,2,2,2, - 1,4,128,128,2,3,3,3,1,253,128,64,192,3,5,5, - 5,1,5,192,64,64,64,224,3,5,5,4,0,4,96,160, - 160,192,224,6,7,7,7,1,0,160,80,72,44,72,80,160, - 8,9,9,9,1,0,194,68,68,72,178,22,42,79,199,7, - 9,9,9,1,0,194,68,72,72,182,26,36,74,206,9,9, - 18,9,0,0,49,0,82,0,52,0,20,0,233,0,11,0, - 21,0,39,128,99,128,5,11,11,7,1,252,32,32,32,32, - 32,64,128,128,136,136,112,9,12,24,9,0,0,48,0,12, - 0,0,0,8,0,8,0,20,0,20,0,36,0,62,0,34, - 0,67,0,227,128,9,12,24,9,0,0,6,0,24,0,0, - 0,8,0,8,0,20,0,20,0,36,0,62,0,34,0,67, - 0,227,128,9,12,24,9,0,0,28,0,34,0,0,0,8, - 0,8,0,20,0,20,0,36,0,62,0,34,0,67,0,227, - 128,9,12,24,9,0,0,58,0,60,0,0,0,8,0,8, - 0,20,0,20,0,36,0,62,0,34,0,67,0,227,128,9, - 11,22,9,0,0,36,0,36,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,9,13,26,9,0, - 0,12,0,20,0,20,0,8,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,11,9,18,12,0, - 0,31,224,10,32,18,0,31,192,18,0,34,0,34,0,34, - 32,231,224,6,12,12,8,1,253,60,68,128,128,128,128,128, - 68,120,32,16,48,6,12,12,7,1,0,224,16,0,252,68, - 64,120,64,64,64,68,252,6,12,12,7,1,0,24,96,0, - 252,68,64,120,64,64,64,68,252,6,12,12,7,1,0,112, - 136,0,252,68,64,120,64,64,64,68,252,6,11,11,7,1, - 0,144,144,124,68,64,120,64,64,64,68,252,4,12,12,4, - 0,0,192,32,0,112,32,32,32,32,32,32,32,112,4,12, - 12,4,1,0,112,128,0,224,64,64,64,64,64,64,64,224, - 4,12,12,4,0,0,96,144,0,112,32,32,32,32,32,32, - 32,112,4,11,11,4,0,0,144,144,96,32,32,32,32,32, - 32,32,112,8,9,9,9,0,0,252,66,65,65,241,65,65, - 66,252,10,12,24,10,0,0,26,0,60,0,0,0,193,192, - 96,128,80,128,88,128,76,128,70,128,67,128,65,128,224,128, - 7,12,12,9,1,0,96,24,0,56,68,130,130,130,130,130, - 68,56,7,12,12,9,1,0,12,48,0,56,68,130,130,130, - 130,130,68,56,7,12,12,9,1,0,56,68,0,56,68,130, - 130,130,130,130,68,56,7,12,12,9,1,0,52,120,0,56, - 68,130,130,130,130,130,68,56,7,11,11,9,1,0,72,72, - 56,68,130,130,130,130,130,68,56,4,4,4,6,1,2,144, - 96,96,144,7,9,9,9,1,0,58,68,138,138,146,162,194, - 68,184,9,12,24,10,0,0,56,0,4,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,98,0,60,0, - 9,12,24,10,0,0,6,0,24,0,0,0,227,128,65,0, - 65,0,65,0,65,0,65,0,65,0,98,0,60,0,9,12, - 24,10,0,0,28,0,34,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,11,22,10, - 0,0,34,0,36,0,195,128,65,0,65,0,65,0,65,0, - 65,0,65,0,98,0,60,0,9,12,24,9,0,0,6,0, - 24,0,0,0,227,128,98,0,50,0,20,0,28,0,8,0, - 8,0,8,0,28,0,7,9,9,8,0,0,224,124,70,66, - 66,66,100,92,224,8,11,11,8,0,0,28,34,66,66,68, - 72,76,67,65,73,206,6,11,11,7,1,0,192,96,32,0, - 56,72,136,56,200,136,252,6,11,11,7,1,0,24,16,32, - 0,56,72,136,56,200,136,252,6,11,11,7,1,0,32,80, - 136,0,56,72,136,56,200,136,252,6,10,10,7,1,0,104, - 176,0,56,72,136,56,200,136,252,6,10,10,7,1,0,144, - 144,0,56,72,136,56,200,136,252,6,11,11,7,1,0,48, - 80,80,48,56,72,136,56,200,136,252,9,7,14,10,1,0, - 63,0,76,128,136,128,63,128,200,0,136,128,247,0,5,10, - 10,7,1,253,120,136,128,128,128,200,112,32,16,48,5,11, - 11,7,1,0,64,32,32,16,112,72,136,248,128,200,112,5, - 11,11,7,1,0,24,16,32,0,112,72,136,248,128,200,112, - 5,11,11,7,1,0,32,80,136,0,112,72,136,248,128,200, - 112,5,10,10,7,1,0,144,152,0,112,72,136,248,128,200, - 112,4,11,11,4,0,0,128,64,32,0,96,32,32,32,32, - 32,112,3,11,11,4,1,0,32,64,128,0,192,64,64,64, - 64,64,224,4,11,11,4,0,0,96,80,144,0,96,32,32, - 32,32,32,112,4,10,10,4,0,0,144,144,0,96,32,32, - 32,32,32,112,5,11,11,7,1,0,200,48,80,16,120,136, - 136,136,136,144,112,8,10,10,8,0,0,18,108,0,78,242, - 66,66,66,66,231,6,11,11,8,1,0,64,32,16,0,56, - 204,132,132,132,200,112,6,11,11,8,1,0,8,16,32,0, - 56,204,132,132,132,200,112,6,11,11,8,1,0,48,80,136, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,104,152, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,136,136, - 0,56,204,132,132,132,200,112,6,4,4,6,0,2,16,124, - 128,16,6,7,7,8,1,0,60,204,148,164,164,200,240,8, - 11,11,8,0,0,32,16,8,0,198,66,66,66,66,70,59, - 8,11,11,8,0,0,4,8,16,0,198,66,66,66,66,70, - 59,8,11,11,8,0,0,24,24,36,0,198,66,66,66,66, - 70,59,8,10,10,8,0,0,36,68,0,198,66,66,66,66, - 70,59,7,15,15,7,0,252,4,8,16,0,230,68,36,36, - 40,24,16,16,16,32,192,7,15,15,8,0,252,192,64,64, - 64,76,114,66,66,66,68,120,64,64,64,224,7,14,14,7, - 0,252,68,68,0,230,68,36,36,40,24,16,16,16,32,192 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 7 h=14 x= 1 y= 5 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9n[248] U8G_FONT_SECTION("u8g_font_gdr9n") = { - 0,23,21,248,251,9,0,0,0,0,42,58,0,12,254,9, - 0,5,6,6,7,1,5,32,168,112,112,168,32,5,5,5, - 6,1,2,32,32,248,32,32,2,4,4,3,1,254,64,192, - 64,128,5,1,1,5,0,3,248,1,2,2,3,1,0,128, - 128,7,14,14,7,0,254,6,4,4,8,8,8,16,16,32, - 32,32,64,64,192,5,9,9,7,1,0,112,144,136,136,136, - 136,136,80,112,5,9,9,7,1,0,32,224,32,32,32,32, - 32,32,248,5,9,9,7,1,0,56,72,136,8,16,32,64, - 136,248,6,9,9,7,0,0,48,72,136,16,120,4,4,132, - 120,6,9,9,7,0,0,8,24,40,40,72,72,252,8,60, - 5,9,9,7,1,0,120,128,128,240,136,8,8,136,112,5, - 9,9,7,1,0,24,96,64,176,200,136,136,136,112,5,9, - 9,7,1,0,248,136,8,16,16,32,32,96,64,5,9,9, - 7,1,0,112,200,136,208,112,136,136,136,112,5,9,9,7, - 1,0,112,152,136,136,136,120,16,16,224,1,7,7,3,1, - 0,128,128,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 1 y= 8 dx=13 dy= 0 ascent=12 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9r[1553] U8G_FONT_SECTION("u8g_font_gdr9r") = { - 0,23,21,248,251,9,1,255,4,54,32,127,252,12,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08[2677] U8G_FONT_SECTION("u8g_font_helvB08") = { - 0,12,19,255,251,8,1,182,3,122,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,3,0,1,2,8,8, - 4,1,254,192,0,64,64,192,192,192,192,5,8,8,6,0, - 255,16,112,216,160,160,216,112,64,5,8,8,6,0,0,56, - 104,96,240,96,96,104,216,6,6,6,6,0,1,132,120,72, - 72,120,132,6,8,8,7,0,0,132,132,204,72,252,48,252, - 48,1,10,10,3,1,254,128,128,128,128,0,0,128,128,128, - 128,5,10,10,6,0,254,112,200,224,112,152,200,112,56,152, - 112,3,1,1,3,0,7,160,8,8,8,10,1,0,60,66, - 153,165,161,157,66,60,3,5,5,5,1,3,224,32,160,0, - 224,6,3,3,7,0,1,108,216,108,5,3,3,7,1,2, - 248,8,8,4,1,1,5,0,3,240,8,8,8,10,1,0, - 60,66,189,165,185,165,66,60,3,1,1,3,0,7,224,3, - 3,3,4,0,5,96,160,192,6,7,7,6,0,0,48,48, - 252,48,48,0,252,3,4,4,3,0,4,96,160,64,224,3, - 4,4,3,0,4,224,64,32,192,2,2,2,3,0,7,64, - 128,5,8,8,6,0,254,216,216,216,216,216,232,192,192,6, - 10,10,6,0,254,124,232,232,232,104,40,40,40,40,40,2, - 1,1,3,0,3,192,2,2,2,3,0,254,64,192,2,4, - 4,3,0,4,64,192,64,64,3,5,5,5,1,3,224,160, - 224,0,224,6,3,3,7,0,1,216,108,216,8,8,8,9, - 0,0,68,196,72,72,18,38,47,66,7,8,8,9,0,0, - 68,196,72,72,22,42,36,78,8,8,8,9,0,0,228,68, - 40,200,18,38,47,66,5,8,8,6,0,254,48,0,48,48, - 96,192,216,112,7,11,11,8,0,0,32,16,0,56,56,108, - 108,108,254,198,198,7,11,11,8,0,0,8,16,0,56,56, - 108,108,108,254,198,198,7,11,11,8,0,0,16,40,0,56, - 56,108,108,108,254,198,198,7,11,11,8,0,0,20,40,0, - 56,56,108,108,108,254,198,198,7,10,10,8,0,0,40,0, - 56,56,108,108,108,254,198,198,7,11,11,8,0,0,16,40, - 16,56,56,108,108,108,254,198,198,9,8,16,10,0,0,63, - 128,60,0,108,0,111,128,108,0,252,0,204,0,207,128,7, - 10,10,8,0,254,60,102,194,192,192,194,102,60,16,48,5, - 11,11,6,0,0,64,32,0,248,192,192,248,192,192,192,248, - 5,11,11,6,0,0,16,32,0,248,192,192,248,192,192,192, - 248,5,11,11,6,0,0,32,80,0,248,192,192,248,192,192, - 192,248,5,10,10,6,0,0,80,0,248,192,192,248,192,192, - 192,248,2,11,11,3,0,0,128,64,0,192,192,192,192,192, - 192,192,192,2,11,11,3,0,0,64,128,0,192,192,192,192, - 192,192,192,192,3,11,11,3,255,0,64,160,0,96,96,96, - 96,96,96,96,96,4,10,10,3,255,0,144,0,96,96,96, - 96,96,96,96,96,7,8,8,7,255,0,120,108,102,246,102, - 102,108,120,7,11,11,8,0,0,20,40,0,198,230,230,214, - 214,206,206,198,7,11,11,8,0,0,16,8,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,8,16,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,16,40,0,56, - 108,198,198,198,198,108,56,7,11,11,8,0,0,20,40,0, - 56,108,198,198,198,198,108,56,7,10,10,8,0,0,40,0, - 56,108,198,198,198,198,108,56,6,5,5,6,0,1,204,120, - 48,120,204,7,8,8,8,0,0,58,108,206,214,214,230,108, - 184,6,11,11,7,0,0,32,16,0,204,204,204,204,204,204, - 204,120,6,11,11,7,0,0,8,16,0,204,204,204,204,204, - 204,204,120,6,11,11,7,0,0,32,80,0,204,204,204,204, - 204,204,204,120,6,10,10,7,0,0,72,0,204,204,204,204, - 204,204,204,120,8,11,11,9,0,0,4,8,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,192,248,204,204,204, - 248,192,192,5,8,8,6,0,0,112,200,200,208,200,200,200, - 208,6,9,9,6,0,0,32,16,0,112,152,120,216,216,108, - 6,9,9,6,0,0,16,32,0,112,152,120,216,216,108,6, - 9,9,6,0,0,32,80,0,112,152,120,216,216,108,6,9, - 9,6,0,0,40,80,0,112,152,120,216,216,108,6,8,8, - 6,0,0,80,0,112,152,120,216,216,108,6,9,9,6,0, - 0,32,80,32,112,152,120,216,216,108,8,6,6,9,0,0, - 126,155,127,216,219,110,4,8,8,5,0,254,112,208,192,192, - 208,112,32,96,5,9,9,6,0,0,64,32,0,112,216,248, - 192,216,112,5,9,9,6,0,0,16,32,0,112,216,248,192, - 216,112,5,9,9,6,0,0,32,80,0,112,216,248,192,216, - 112,5,8,8,6,0,0,80,0,112,216,248,192,216,112,2, - 9,9,3,0,0,128,64,0,192,192,192,192,192,192,2,9, - 9,3,0,0,64,128,0,192,192,192,192,192,192,3,9,9, - 3,0,0,64,160,0,192,192,192,192,192,192,3,8,8,3, - 0,0,160,0,192,192,192,192,192,192,5,9,9,6,0,0, - 80,96,160,112,216,216,216,216,112,5,9,9,6,0,0,80, - 160,0,176,216,216,216,216,216,5,9,9,6,0,0,64,32, - 0,112,216,216,216,216,112,5,9,9,6,0,0,16,32,0, - 112,216,216,216,216,112,5,9,9,6,0,0,32,80,0,112, - 216,216,216,216,112,5,9,9,6,0,0,80,160,0,112,216, - 216,216,216,112,5,8,8,6,0,0,80,0,112,216,216,216, - 216,112,6,5,5,6,0,1,48,0,252,0,48,7,6,6, - 6,255,0,58,108,124,108,108,184,5,9,9,6,0,0,64, - 32,0,216,216,216,216,216,104,5,9,9,6,0,0,16,32, - 0,216,216,216,216,216,104,5,9,9,6,0,0,32,80,0, - 216,216,216,216,216,104,5,8,8,6,0,0,80,0,216,216, - 216,216,216,104,5,11,11,6,0,254,16,32,0,216,216,216, - 216,120,48,48,96,5,10,10,6,0,254,192,192,240,216,200, - 200,216,240,192,192,5,10,10,6,0,254,80,0,216,216,216, - 216,120,48,48,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 8 - Calculated Max Values w= 6 h= 8 x= 1 y= 5 dx= 6 dy= 0 ascent= 8 len= 8 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08n[228] U8G_FONT_SECTION("u8g_font_helvB08n") = { - 0,12,19,255,251,8,0,0,0,0,42,58,0,8,254,8, - 0,3,3,3,4,0,5,160,64,160,6,5,5,6,0,1, - 48,48,252,48,48,2,4,4,3,0,254,192,192,64,128,4, - 1,1,5,0,3,240,2,2,2,3,0,0,192,192,4,8, - 8,4,0,0,16,16,32,32,64,64,128,128,5,8,8,6, - 0,0,112,216,216,216,216,216,216,112,3,8,8,6,1,0, - 96,224,96,96,96,96,96,96,5,8,8,6,0,0,112,216, - 24,24,48,96,192,248,5,8,8,6,0,0,112,216,24,48, - 24,24,216,112,6,8,8,6,0,0,8,24,56,88,152,252, - 24,24,5,8,8,6,0,0,248,192,192,240,24,152,216,112, - 5,8,8,6,0,0,112,216,192,240,216,216,216,112,5,8, - 8,6,0,0,248,24,24,48,48,96,96,96,5,8,8,6, - 0,0,112,216,216,112,216,216,216,112,5,8,8,6,0,0, - 112,216,216,216,120,24,216,112,2,6,6,3,0,0,192,192, - 0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08r[1287] U8G_FONT_SECTION("u8g_font_helvB08r") = { - 0,12,19,255,251,8,1,182,3,122,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=15 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10[3692] U8G_FONT_SECTION("u8g_font_helvB10") = { - 0,17,23,255,250,11,2,27,4,205,32,255,253,14,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,2,11, - 11,4,1,253,192,192,0,64,64,192,192,192,192,192,192,7, - 10,10,8,0,255,4,60,110,200,208,208,230,102,124,64,8, - 11,11,8,0,0,60,102,102,96,252,48,48,48,96,251,222, - 7,7,7,8,0,2,130,124,108,108,108,124,130,8,11,11, - 9,0,0,195,195,195,102,102,60,126,24,126,24,24,1,14, - 14,4,2,253,128,128,128,128,128,128,0,0,128,128,128,128, - 128,128,6,14,14,8,1,253,120,204,204,224,120,220,204,204, - 236,120,28,204,204,120,5,2,2,5,0,9,216,216,10,11, - 22,12,1,0,30,0,97,128,76,128,210,192,144,64,144,64, - 144,64,146,64,76,128,97,128,30,0,5,7,7,6,0,4, - 112,144,112,208,248,0,248,7,5,5,9,1,2,54,108,216, - 108,54,7,4,4,9,1,2,254,254,2,2,3,1,1,4, - 0,4,224,10,11,22,12,1,0,30,0,97,128,92,128,146, - 64,146,64,156,64,146,64,146,64,82,128,97,128,30,0,5, - 1,1,5,0,9,248,4,4,4,6,1,7,96,144,144,96, - 8,9,9,9,0,0,24,24,24,255,24,24,24,0,255,4, - 6,6,5,0,5,96,176,48,96,192,240,4,6,6,5,0, - 5,96,176,96,48,176,96,3,2,2,5,1,9,96,192,7, - 11,11,9,1,253,198,198,198,198,198,198,238,246,192,192,192, - 8,14,14,8,0,253,63,122,250,250,250,122,58,10,10,10, - 10,10,10,10,2,2,2,4,1,3,192,192,5,3,3,5, - 0,253,24,216,112,3,6,6,4,0,5,96,224,96,96,96, - 96,5,7,7,6,0,4,112,216,216,216,112,0,248,7,5, - 5,9,1,2,216,108,54,108,216,12,11,22,12,0,0,97, - 128,225,128,99,0,99,0,102,0,102,32,6,96,12,224,13, - 96,25,240,24,96,11,11,22,12,0,0,97,128,225,128,99, - 0,99,0,102,0,102,192,7,96,12,96,12,192,25,128,25, - 224,12,11,22,12,0,0,97,128,177,128,99,0,51,0,182, - 0,102,32,6,96,12,224,13,96,25,240,24,96,7,11,11, - 9,1,253,24,24,0,24,24,48,96,192,198,198,124,10,14, - 28,10,0,0,24,0,12,0,0,0,12,0,12,0,30,0, - 18,0,51,0,51,0,97,128,127,128,97,128,192,192,192,192, - 10,14,28,10,0,0,6,0,12,0,0,0,12,0,12,0, - 30,0,18,0,51,0,51,0,97,128,127,128,97,128,192,192, - 192,192,10,14,28,10,0,0,14,0,27,0,0,0,12,0, - 12,0,30,0,18,0,51,0,51,0,97,128,127,128,97,128, - 192,192,192,192,10,14,28,10,0,0,13,0,22,0,0,0, - 12,0,12,0,30,0,18,0,51,0,51,0,97,128,127,128, - 97,128,192,192,192,192,10,14,28,10,0,0,51,0,51,0, - 0,0,12,0,12,0,30,0,18,0,51,0,51,0,97,128, - 127,128,97,128,192,192,192,192,10,14,28,10,0,0,12,0, - 18,0,12,0,12,0,12,0,30,0,18,0,51,0,51,0, - 97,128,127,128,97,128,192,192,192,192,14,11,22,15,0,0, - 15,252,15,0,27,0,19,0,51,0,51,248,99,0,127,0, - 99,0,195,0,195,252,9,14,28,11,1,253,31,0,123,128, - 96,128,192,0,192,0,192,0,192,0,192,0,96,128,123,128, - 31,0,6,0,54,0,28,0,7,14,14,9,1,0,48,24, - 0,254,192,192,192,192,254,192,192,192,192,254,7,14,14,9, - 1,0,12,24,0,254,192,192,192,192,254,192,192,192,192,254, - 7,14,14,9,1,0,28,54,0,254,192,192,192,192,254,192, - 192,192,192,254,7,14,14,9,1,0,108,108,0,254,192,192, - 192,192,254,192,192,192,192,254,3,14,14,4,0,0,192,96, - 0,96,96,96,96,96,96,96,96,96,96,96,3,14,14,4, - 1,0,96,192,0,192,192,192,192,192,192,192,192,192,192,192, - 5,14,14,4,0,0,112,216,0,96,96,96,96,96,96,96, - 96,96,96,96,5,14,14,4,0,0,216,216,0,96,96,96, - 96,96,96,96,96,96,96,96,10,11,22,11,0,0,126,0, - 99,128,97,128,96,192,96,192,248,192,96,192,96,192,97,128, - 99,128,126,0,9,14,28,11,1,0,26,0,44,0,0,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,14,28,12,1,0,24,0,12,0, - 0,0,30,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,14,28,12,1,0,6,0, - 12,0,0,0,30,0,115,128,97,128,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,10,14,28,12,1,0, - 14,0,27,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,97,128,115,128,30,0,10,14,28,12, - 1,0,13,0,22,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,14, - 28,12,1,0,51,0,51,0,0,0,30,0,115,128,97,128, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 8,7,7,9,0,1,195,102,60,24,60,102,195,12,11,22, - 12,0,0,15,48,57,224,48,192,97,224,99,96,102,96,108, - 96,120,96,48,192,121,192,207,0,9,14,28,11,1,0,24, - 0,12,0,0,0,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,14,28,11,1, - 0,6,0,12,0,0,0,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,99,0,62,0,9,14,28, - 11,1,0,28,0,54,0,0,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,99,0,62,0,9, - 14,28,11,1,0,99,0,99,0,0,0,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,10,0,0,6,0,12,0,0,0,192,192,97, - 128,97,128,51,0,51,0,30,0,30,0,12,0,12,0,12, - 0,12,0,8,11,11,10,1,0,192,192,254,199,195,195,199, - 254,192,192,192,6,11,11,8,1,0,120,204,204,204,216,216, - 204,204,204,204,216,7,11,11,8,1,0,48,24,0,120,204, - 12,124,204,204,220,118,7,11,11,8,1,0,24,48,0,120, - 204,12,124,204,204,220,118,7,11,11,8,1,0,56,108,0, - 120,204,12,124,204,204,220,118,7,11,11,8,1,0,52,88, - 0,120,204,12,124,204,204,220,118,7,11,11,8,1,0,108, - 108,0,120,204,12,124,204,204,220,118,7,11,11,8,1,0, - 48,72,48,120,204,12,124,204,204,220,118,11,8,16,13,1, - 0,123,192,206,96,12,96,127,224,204,0,204,0,222,96,119, - 192,7,11,11,9,1,253,60,102,198,192,192,198,102,60,24, - 88,112,6,11,11,8,1,0,96,48,0,120,204,204,252,192, - 192,236,120,6,11,11,8,1,0,24,48,0,120,204,204,252, - 192,192,236,120,6,11,11,8,1,0,56,108,0,120,204,204, - 252,192,192,236,120,6,11,11,8,1,0,108,108,0,120,204, - 204,252,192,192,236,120,3,11,11,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,3,11,11,4,1,0,96,192,0, - 192,192,192,192,192,192,192,192,5,11,11,4,0,0,112,216, - 0,96,96,96,96,96,96,96,96,5,11,11,4,0,0,216, - 216,0,96,96,96,96,96,96,96,96,7,11,11,9,1,0, - 108,56,72,60,108,198,198,198,198,108,56,7,11,11,9,1, - 0,52,88,0,220,238,198,198,198,198,198,198,7,11,11,9, - 1,0,48,24,0,56,108,198,198,198,198,108,56,7,11,11, - 9,1,0,24,48,0,56,108,198,198,198,198,108,56,7,11, - 11,9,1,0,56,108,0,56,108,198,198,198,198,108,56,7, - 11,11,9,1,0,52,88,0,56,108,198,198,198,198,108,56, - 7,11,11,9,1,0,108,108,0,56,108,198,198,198,198,108, - 56,8,7,7,9,0,1,24,24,0,255,0,24,24,7,8, - 8,9,1,0,58,108,206,214,214,230,108,184,7,11,11,9, - 1,0,48,24,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,12,24,0,198,198,198,198,198,198,238,118,7,11, - 11,9,1,0,56,108,0,198,198,198,198,198,198,238,118,7, - 11,11,9,1,0,108,108,0,198,198,198,198,198,198,238,118, - 8,14,14,8,0,253,12,24,0,195,195,102,102,36,60,24, - 24,24,48,112,7,14,14,9,1,253,192,192,192,216,236,198, - 198,198,198,236,216,192,192,192,8,14,14,8,0,253,54,54, - 0,195,195,102,102,36,60,24,24,24,48,112}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=11 x= 2 y= 7 dx= 9 dy= 0 ascent=11 len=11 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10n[265] U8G_FONT_SECTION("u8g_font_helvB10n") = { - 0,17,23,255,250,11,0,0,0,0,42,58,0,11,255,11, - 0,5,4,4,6,0,7,32,248,112,216,8,7,7,9,0, - 1,24,24,24,255,24,24,24,3,3,3,4,0,255,96,96, - 192,3,1,1,4,0,4,224,2,2,2,4,1,0,192,192, - 4,11,11,4,0,0,16,16,48,32,32,96,64,64,192,128, - 128,7,11,11,8,0,0,56,108,198,198,198,198,198,198,198, - 108,56,4,11,11,8,1,0,48,240,48,48,48,48,48,48, - 48,48,48,7,11,11,8,0,0,124,198,198,6,14,12,24, - 48,96,192,254,7,11,11,8,0,0,124,198,198,6,6,60, - 6,6,198,198,124,8,11,11,8,0,0,6,14,30,54,102, - 198,198,255,6,6,6,7,11,11,8,0,0,126,96,96,192, - 252,14,6,6,198,204,120,7,11,11,8,0,0,60,102,102, - 192,220,230,198,198,198,198,124,7,11,11,8,0,0,254,6, - 12,12,24,24,48,48,96,96,96,7,11,11,8,0,0,124, - 198,198,198,198,124,198,198,198,198,124,7,11,11,8,0,0, - 124,198,198,198,198,198,126,6,198,204,120,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10r[1720] U8G_FONT_SECTION("u8g_font_helvB10r") = { - 0,17,23,255,250,11,2,27,4,205,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12[4077] U8G_FONT_SECTION("u8g_font_helvB12") = { - 0,20,27,254,249,12,2,74,5,106,32,255,252,16,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,1,253,192,192,0,64,64,64,192,192,192,192, - 192,192,8,11,11,9,0,255,4,60,126,239,200,216,208,247, - 126,60,32,8,12,12,9,0,0,28,62,99,99,96,48,124, - 48,48,32,127,255,7,7,7,9,1,2,186,124,198,198,198, - 124,186,8,12,12,9,0,0,195,195,102,102,60,24,126,24, - 126,24,24,24,1,16,16,5,2,252,128,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,128,8,15,15,9,0,253, - 60,126,102,96,120,126,199,195,243,126,30,6,102,126,60,5, - 2,2,6,0,10,216,216,12,12,24,12,0,0,15,0,57, - 192,96,96,79,32,217,176,144,16,144,16,217,176,79,32,96, - 32,57,192,15,0,5,7,7,6,1,5,96,144,112,144,120, - 0,248,8,6,6,9,0,2,51,102,204,204,102,51,8,5, - 5,10,0,2,255,255,3,3,3,4,2,2,5,0,3,240, - 240,12,12,24,12,0,0,15,0,57,192,96,96,95,32,217, - 176,153,144,158,16,219,48,91,32,96,96,57,192,15,0,5, - 1,1,6,0,10,248,4,5,5,7,1,7,96,144,144,144, - 96,8,11,11,10,1,0,24,24,24,255,255,24,24,24,0, - 255,255,5,7,7,6,0,5,112,216,216,48,96,248,248,5, - 7,7,6,0,5,112,216,24,48,24,216,112,3,3,3,6, - 1,10,32,96,128,8,12,12,10,1,253,195,195,195,195,195, - 195,199,255,251,192,192,192,8,15,15,9,0,253,127,242,242, - 242,242,242,114,18,18,18,18,18,18,18,18,2,2,2,5, - 1,4,192,192,5,4,4,6,0,252,32,48,152,112,4,7, - 7,6,1,5,48,240,240,48,48,48,48,5,7,7,6,0, - 5,112,216,136,216,112,0,248,8,6,6,9,1,2,204,102, - 51,51,102,204,13,12,24,14,1,0,48,192,240,128,241,128, - 49,0,51,48,50,112,54,240,4,176,13,176,9,248,24,48, - 16,48,12,12,24,14,0,0,48,128,241,128,241,0,51,0, - 50,0,54,224,53,176,13,176,8,96,24,192,17,240,49,240, - 13,12,24,14,0,0,112,64,216,192,24,128,49,128,25,48, - 219,112,114,240,6,176,5,176,13,248,8,48,24,48,7,12, - 12,10,1,253,48,48,0,48,48,96,224,192,198,198,254,124, - 11,16,32,12,0,0,16,0,24,0,4,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,16,32,12,0,0,2,0,6,0, - 8,0,0,0,14,0,14,0,31,0,27,0,59,128,49,128, - 113,192,96,192,127,192,255,224,192,96,192,96,11,16,32,12, - 0,0,4,0,14,0,17,0,0,0,14,0,14,0,31,0, - 27,0,59,128,49,128,113,192,96,192,127,192,255,224,192,96, - 192,96,11,15,30,12,0,0,14,128,23,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,15,30,12,0,0,49,128,49,128, - 0,0,14,0,14,0,31,0,27,0,59,128,49,128,113,192, - 96,192,127,192,255,224,192,96,192,96,11,16,32,12,0,0, - 12,0,18,0,18,0,12,0,14,0,14,0,31,0,27,0, - 59,128,49,128,113,192,96,192,127,192,255,224,192,96,192,96, - 14,12,24,15,0,0,31,252,31,252,27,0,51,0,51,0, - 51,248,99,248,127,0,127,0,195,0,195,252,195,252,10,16, - 32,12,1,252,31,0,63,128,113,192,96,192,224,0,192,0, - 192,0,224,0,96,192,113,192,63,128,31,0,4,0,6,0, - 19,0,14,0,8,16,16,10,1,0,32,48,8,0,255,255, - 192,192,192,254,254,192,192,192,255,255,8,16,16,10,1,0, - 4,12,16,0,255,255,192,192,192,254,254,192,192,192,255,255, - 8,16,16,10,1,0,8,28,34,0,255,255,192,192,192,254, - 254,192,192,192,255,255,8,15,15,10,1,0,102,102,0,255, - 255,192,192,192,254,254,192,192,192,255,255,3,16,16,4,0, - 0,128,192,32,0,96,96,96,96,96,96,96,96,96,96,96, - 96,3,16,16,4,1,0,32,96,128,0,192,192,192,192,192, - 192,192,192,192,192,192,192,5,16,16,4,0,0,32,112,136, - 0,96,96,96,96,96,96,96,96,96,96,96,96,6,15,15, - 4,255,0,204,204,0,48,48,48,48,48,48,48,48,48,48, - 48,48,12,12,24,12,0,0,63,0,63,192,48,224,48,96, - 48,112,252,48,252,48,48,112,48,96,48,224,63,192,63,0, - 10,15,30,12,1,0,29,0,46,0,0,0,224,192,240,192, - 240,192,216,192,216,192,204,192,204,192,198,192,198,192,195,192, - 195,192,193,192,11,16,32,13,1,0,8,0,12,0,2,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,16,32,13,1,0, - 1,0,3,0,4,0,0,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 11,16,32,13,1,0,4,0,14,0,17,0,0,0,31,0, - 63,128,113,192,96,192,224,224,192,96,192,96,224,224,96,192, - 113,192,63,128,31,0,11,15,30,13,1,0,14,128,23,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,15,30,13,1,0, - 25,128,25,128,0,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,224,224,96,192,113,192,63,128,31,0,9,9, - 18,10,0,0,65,0,227,128,119,0,62,0,28,0,62,0, - 119,0,227,128,65,0,11,12,24,13,1,0,31,32,63,192, - 112,192,97,192,227,96,198,96,204,96,216,224,112,192,97,192, - 127,128,159,0,10,16,32,12,1,0,16,0,24,0,4,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,12,1,0, - 2,0,6,0,8,0,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,16,32,12,1,0,4,0,14,0,17,0,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,15,30,12,1,0,51,0,51,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,192,192,225,192,97,128,51,0, - 51,0,30,0,30,0,12,0,12,0,12,0,12,0,12,0, - 9,12,24,11,1,0,192,0,254,0,255,0,195,128,193,128, - 193,128,195,128,255,0,254,0,192,0,192,0,192,0,8,12, - 12,10,1,0,124,254,198,198,220,222,195,195,195,195,222,220, - 8,13,13,9,1,0,32,48,8,0,124,254,198,14,126,230, - 198,254,119,8,13,13,9,1,0,4,12,16,0,124,254,198, - 14,126,230,198,254,119,8,13,13,9,1,0,16,56,68,0, - 124,254,198,14,126,230,198,254,119,8,12,12,9,1,0,58, - 92,0,124,254,198,14,126,230,198,254,119,8,12,12,9,1, - 0,108,108,0,124,254,198,14,126,230,198,254,119,8,13,13, - 9,1,0,24,36,36,24,124,254,198,14,126,230,198,254,119, - 13,9,18,15,1,0,125,224,255,240,198,24,15,248,127,248, - 230,0,207,56,255,240,121,224,8,13,13,9,1,252,60,126, - 231,192,192,192,231,126,60,16,24,76,56,8,13,13,10,1, - 0,32,48,8,0,60,126,195,255,255,192,231,126,60,8,13, - 13,10,1,0,4,12,16,0,60,126,195,255,255,192,231,126, - 60,8,13,13,10,1,0,8,28,34,0,60,126,195,255,255, - 192,231,126,60,8,12,12,10,1,0,54,54,0,60,126,195, - 255,255,192,231,126,60,3,13,13,4,0,0,128,192,32,0, - 96,96,96,96,96,96,96,96,96,3,13,13,4,1,0,32, - 96,128,0,192,192,192,192,192,192,192,192,192,5,13,13,4, - 0,0,32,112,136,0,96,96,96,96,96,96,96,96,96,5, - 12,12,4,0,0,216,216,0,96,96,96,96,96,96,96,96, - 96,8,12,12,10,1,0,96,124,248,28,126,231,195,195,195, - 231,126,60,8,12,12,10,1,0,58,92,0,222,255,227,195, - 195,195,195,195,195,8,13,13,10,1,0,32,48,8,0,60, - 126,231,195,195,195,231,126,60,8,13,13,10,1,0,8,24, - 32,0,60,126,231,195,195,195,231,126,60,8,13,13,10,1, - 0,16,56,68,0,60,126,231,195,195,195,231,126,60,8,12, - 12,10,1,0,58,92,0,60,126,231,195,195,195,231,126,60, - 8,12,12,10,1,0,108,108,0,60,126,231,195,195,195,231, - 126,60,8,8,8,10,1,0,24,24,0,255,255,0,24,24, - 8,9,9,10,1,0,61,127,231,207,219,243,231,254,188,8, - 13,13,10,1,0,32,48,8,0,195,195,195,195,195,195,199, - 255,123,8,13,13,10,1,0,8,24,32,0,195,195,195,195, - 195,195,199,255,123,8,13,13,10,1,0,16,56,68,0,195, - 195,195,195,195,195,199,255,123,8,12,12,10,1,0,108,108, - 0,195,195,195,195,195,195,199,255,123,8,17,17,9,0,252, - 4,12,16,0,195,195,99,102,54,54,60,28,24,24,24,112, - 96,8,16,16,10,1,252,192,192,192,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,16,16,9,0,252,54,54,0, - 195,195,99,102,54,54,60,28,24,24,24,112,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=12 x= 2 y= 7 dx=10 dy= 0 ascent=12 len=12 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12n[281] U8G_FONT_SECTION("u8g_font_helvB12n") = { - 0,20,27,254,249,12,0,0,0,0,42,58,0,12,253,12, - 0,5,5,5,6,0,7,32,168,112,112,136,8,8,8,10, - 1,0,24,24,24,255,255,24,24,24,2,5,5,4,1,253, - 192,192,64,64,128,4,2,2,5,0,3,240,240,2,2,2, - 4,1,0,192,192,4,12,12,5,0,0,16,16,48,32,32, - 96,64,64,192,128,128,128,8,12,12,9,0,0,60,126,231, - 195,195,195,195,195,195,231,126,60,5,12,12,9,1,0,8, - 24,248,248,24,24,24,24,24,24,24,24,8,12,12,9,0, - 0,60,126,231,195,195,7,14,28,56,112,255,255,8,12,12, - 9,0,0,60,126,231,195,7,30,30,7,195,231,126,60,8, - 12,12,9,0,0,14,30,54,54,102,102,198,255,255,6,6, - 6,8,12,12,9,0,0,63,63,48,48,124,126,71,3,3, - 231,126,60,8,12,12,9,0,0,60,126,231,192,220,254,231, - 195,195,231,126,60,8,12,12,9,0,0,255,255,6,6,12, - 12,24,24,24,48,48,48,8,12,12,9,0,0,60,126,231, - 195,102,60,126,231,195,231,126,60,8,12,12,9,0,0,60, - 126,231,195,195,231,127,59,3,231,126,60,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 2 y=10 dx=16 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12r[1914] U8G_FONT_SECTION("u8g_font_helvB12r") = { - 0,20,27,254,249,12,2,74,5,106,32,127,252,13,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=19 x= 2 y=12 dx=18 dy= 0 ascent=18 len=38 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14[5489] U8G_FONT_SECTION("u8g_font_helvB14") = { - 0,22,29,254,249,14,3,23,6,234,32,255,252,18,251,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,5,0,1,3,14,14,6,2,252, - 224,224,224,0,96,96,224,224,224,224,224,224,224,224,8,14, - 14,10,1,254,2,2,62,127,231,200,200,208,208,227,127,126, - 64,64,10,13,26,11,0,0,31,0,63,192,113,192,112,0, - 112,0,56,0,127,0,28,0,28,0,56,0,112,192,255,192, - 239,128,9,8,16,11,1,2,193,128,255,128,119,0,99,0, - 99,0,119,0,255,128,193,128,9,13,26,10,0,0,227,128, - 227,128,227,128,119,0,119,0,62,0,255,128,28,0,255,128, - 28,0,28,0,28,0,28,0,2,18,18,5,1,252,192,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,192, - 9,18,36,10,0,252,62,0,127,0,227,128,227,128,240,0, - 124,0,254,0,199,0,195,128,225,128,113,128,63,128,15,0, - 7,128,227,128,227,128,127,0,62,0,5,2,2,7,1,12, - 216,216,14,14,28,15,1,0,15,192,56,112,96,24,199,140, - 207,204,152,196,152,4,152,4,152,68,207,204,199,140,96,24, - 56,112,15,192,6,9,9,8,1,5,120,140,124,204,204,116, - 0,252,252,10,8,16,11,0,1,29,192,59,128,119,0,238, - 0,238,0,119,0,59,128,29,192,9,5,10,11,1,3,255, - 128,255,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,14,28,15,1,0,15,128,48,96,96,16,95,144, - 153,200,152,200,153,200,159,8,153,136,153,136,88,208,96,48, - 56,224,15,128,5,2,2,7,1,12,248,248,6,6,6,7, - 0,7,120,252,204,204,252,120,9,9,18,11,1,0,28,0, - 28,0,255,128,255,128,28,0,28,0,0,0,255,128,255,128, - 6,8,8,6,0,5,120,252,204,28,120,224,252,252,6,8, - 8,6,0,5,120,252,204,56,60,204,252,120,5,3,3,5, - 0,11,56,112,224,9,14,28,11,1,252,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,251,128,224, - 0,224,0,224,0,224,0,9,18,36,10,0,252,63,128,123, - 0,251,0,251,0,251,0,251,0,251,0,123,0,59,0,27, - 0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27, - 0,2,2,2,5,1,6,192,192,5,5,5,7,1,251,96, - 112,24,248,240,4,8,8,6,0,5,48,240,240,48,48,48, - 48,48,6,9,9,8,1,5,120,204,204,204,204,120,0,252, - 252,10,8,16,11,0,1,238,0,119,0,59,128,29,192,29, - 192,59,128,119,0,238,0,14,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,152,51,56,54,56,6,120,12, - 216,12,252,24,24,24,24,15,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,188,51,126,54,102,6,14,12, - 60,12,112,24,126,24,126,14,13,26,15,0,0,120,48,252, - 48,204,96,56,96,60,192,204,216,253,184,123,56,3,120,6, - 216,6,252,12,24,12,24,8,14,14,10,1,252,28,28,28, - 0,28,28,28,56,120,112,231,231,255,126,12,18,36,14,1, - 0,56,0,28,0,6,0,0,0,15,0,15,0,31,128,25, - 128,25,128,57,192,57,192,48,192,112,224,127,224,127,224,224, - 112,224,112,224,112,12,18,36,14,1,0,1,192,3,128,6, - 0,0,0,15,0,15,0,31,128,25,128,25,128,57,192,57, - 192,48,192,112,224,127,224,127,224,224,112,224,112,224,112,12, - 18,36,14,1,0,7,0,15,128,29,192,0,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,12,18,36,14,1,0,14, - 32,31,192,35,128,0,0,15,0,15,0,31,128,25,128,25, - 128,57,192,57,192,48,192,112,224,127,224,127,224,224,112,224, - 112,224,112,12,18,36,14,1,0,25,128,25,128,25,128,0, - 0,15,0,15,0,31,128,25,128,25,128,57,192,57,192,48, - 192,112,224,127,224,127,224,224,112,224,112,224,112,12,18,36, - 14,1,0,15,0,25,128,25,128,15,0,15,0,15,0,31, - 128,25,128,25,128,57,192,57,192,48,192,112,224,127,224,127, - 224,224,112,224,112,224,112,16,14,28,18,1,0,15,255,15, - 255,31,128,27,128,59,128,59,128,51,254,115,254,115,128,127, - 128,255,128,227,128,227,255,227,255,12,19,38,14,1,251,15, - 128,63,224,120,224,112,112,240,112,224,0,224,0,224,0,224, - 0,240,112,112,112,120,224,63,224,15,128,12,0,14,0,3, - 0,31,0,30,0,10,18,36,13,2,0,56,0,28,0,6, - 0,0,0,255,192,255,192,224,0,224,0,224,0,224,0,255, - 128,255,128,224,0,224,0,224,0,224,0,255,192,255,192,10, - 18,36,13,2,0,3,128,7,0,12,0,0,0,255,192,255, - 192,224,0,224,0,224,0,224,0,255,128,255,128,224,0,224, - 0,224,0,224,0,255,192,255,192,10,18,36,13,2,0,14, - 0,31,0,59,128,0,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,255, - 192,255,192,10,18,36,13,2,0,51,0,51,0,51,0,0, - 0,255,192,255,192,224,0,224,0,224,0,224,0,255,128,255, - 128,224,0,224,0,224,0,224,0,255,192,255,192,5,18,18, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,5,18,18,5,1,0,56,112,192,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,7,18,18, - 5,255,0,56,124,238,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,6,18,18,5,0,0,204,204,204,0,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,14,14,28, - 14,255,0,63,192,63,240,56,120,56,56,56,28,56,28,255, - 28,255,28,56,28,56,28,56,56,56,120,63,240,63,192,12, - 18,36,14,1,0,14,32,31,192,35,128,0,0,224,112,240, - 112,240,112,248,112,252,112,236,112,238,112,230,112,231,112,227, - 112,225,240,225,240,224,240,224,112,13,18,36,15,1,0,28, - 0,14,0,3,0,0,0,15,128,63,224,120,240,112,112,240, - 120,224,56,224,56,224,56,224,56,240,120,112,112,120,240,63, - 224,15,128,13,18,36,15,1,0,1,192,3,128,6,0,0, - 0,15,128,63,224,120,240,112,112,240,120,224,56,224,56,224, - 56,224,56,240,120,112,112,120,240,63,224,15,128,13,18,36, - 15,1,0,7,0,15,128,29,192,0,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,13,18,36,15,1,0,7,16,15, - 224,17,192,0,0,15,128,63,224,120,240,112,112,240,120,224, - 56,224,56,224,56,224,56,240,120,112,112,120,240,63,224,15, - 128,13,18,36,15,1,0,12,192,12,192,12,192,0,0,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,240,120,112,112,120,240,63,224,15,128,10,8,16,11,0, - 1,225,192,115,128,63,0,30,0,30,0,63,0,115,128,225, - 192,15,14,28,15,0,0,7,198,31,252,60,56,56,120,120, - 220,113,156,113,28,115,28,118,28,124,60,56,56,60,120,127, - 240,199,192,12,18,36,14,1,0,28,0,14,0,3,0,0, - 0,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,127,224,31,128,12,18,36, - 14,1,0,1,192,3,128,6,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,127,224,31,128,12,18,36,14,1,0,7,0,15, - 128,29,192,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,127,224,31, - 128,12,18,36,14,1,0,25,128,25,128,25,128,0,0,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,13,18,36,13,0, - 0,1,192,3,128,6,0,0,0,224,56,224,56,112,112,56, - 224,56,224,29,192,29,192,15,128,7,0,7,0,7,0,7, - 0,7,0,7,0,11,14,28,13,1,0,224,0,224,0,224, - 0,255,0,255,192,225,224,224,224,224,224,225,224,255,192,255, - 0,224,0,224,0,224,0,8,14,14,10,1,0,60,126,231, - 231,231,231,238,238,231,231,231,231,239,238,10,14,28,11,1, - 0,112,0,56,0,12,0,0,0,62,0,127,0,115,128,7, - 128,63,128,123,128,227,128,231,128,251,128,123,192,10,14,28, - 11,1,0,3,128,7,0,12,0,0,0,62,0,127,0,115, - 128,7,128,63,128,123,128,227,128,231,128,251,128,123,192,10, - 14,28,11,1,0,28,0,62,0,119,0,0,0,62,0,127, - 0,115,128,7,128,63,128,123,128,227,128,231,128,251,128,123, - 192,10,14,28,11,1,0,59,0,127,0,110,0,0,0,62, - 0,127,0,115,128,7,128,63,128,123,128,227,128,231,128,251, - 128,123,192,10,14,28,11,1,0,51,0,51,0,51,0,0, - 0,62,0,127,0,115,128,7,128,63,128,123,128,227,128,231, - 128,251,128,123,192,10,14,28,11,1,0,60,0,102,0,102, - 0,60,0,62,0,127,0,115,128,7,128,63,128,123,128,227, - 128,231,128,251,128,123,192,14,10,20,16,1,0,61,240,127, - 248,103,28,15,28,63,252,119,0,231,0,239,156,255,252,121, - 240,9,15,30,10,1,251,30,0,127,128,115,128,224,0,224, - 0,224,0,224,0,115,128,127,128,30,0,24,0,28,0,6, - 0,62,0,60,0,9,14,28,11,1,0,112,0,56,0,12, - 0,0,0,30,0,127,0,115,128,225,128,255,128,255,128,224, - 0,115,128,127,128,30,0,9,14,28,11,1,0,3,128,7, - 0,12,0,0,0,30,0,127,0,115,128,225,128,255,128,255, - 128,224,0,115,128,127,128,30,0,9,14,28,11,1,0,28, - 0,62,0,119,0,0,0,30,0,127,0,115,128,225,128,255, - 128,255,128,224,0,115,128,127,128,30,0,9,14,28,11,1, - 0,51,0,51,0,51,0,0,0,30,0,127,0,115,128,225, - 128,255,128,255,128,224,0,115,128,127,128,30,0,5,14,14, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,5,14,14,5,1,0,56,112,192,0,224,224,224,224,224, - 224,224,224,224,224,7,14,14,5,255,0,56,124,238,0,56, - 56,56,56,56,56,56,56,56,56,5,14,14,5,0,0,216, - 216,216,0,112,112,112,112,112,112,112,112,112,112,10,14,28, - 12,1,0,96,0,55,0,60,0,102,0,31,0,127,128,115, - 128,225,192,225,192,225,192,225,192,115,128,127,128,30,0,9, - 14,28,11,1,0,59,0,127,0,110,0,0,0,239,0,255, - 128,243,128,227,128,227,128,227,128,227,128,227,128,227,128,227, - 128,10,14,28,12,1,0,112,0,56,0,12,0,0,0,30, - 0,127,128,115,128,225,192,225,192,225,192,225,192,115,128,127, - 128,30,0,10,14,28,12,1,0,3,128,7,0,12,0,0, - 0,30,0,127,128,115,128,225,192,225,192,225,192,225,192,115, - 128,127,128,30,0,10,14,28,12,1,0,28,0,62,0,119, - 0,0,0,30,0,127,128,115,128,225,192,225,192,225,192,225, - 192,115,128,127,128,30,0,10,14,28,12,1,0,59,0,127, - 0,110,0,0,0,30,0,127,128,115,128,225,192,225,192,225, - 192,225,192,115,128,127,128,30,0,10,14,28,12,1,0,51, - 0,51,0,51,0,0,0,30,0,127,128,115,128,225,192,225, - 192,225,192,225,192,115,128,127,128,30,0,9,8,16,11,1, - 1,28,0,28,0,0,0,255,128,255,128,0,0,28,0,28, - 0,12,10,20,12,0,0,15,48,63,224,57,192,115,224,119, - 224,126,224,124,224,57,192,127,192,207,0,9,14,28,11,1, - 0,112,0,56,0,12,0,0,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,231,128,255,128,123,128,9,14,28, - 11,1,0,3,128,7,0,12,0,0,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 14,28,11,1,0,28,0,62,0,119,0,0,0,227,128,227, - 128,227,128,227,128,227,128,227,128,227,128,231,128,255,128,123, - 128,9,14,28,11,1,0,51,0,51,0,51,0,0,0,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,231,128,255, - 128,123,128,9,18,36,11,1,252,7,0,14,0,24,0,0, - 0,227,128,227,128,227,128,119,0,119,0,119,0,62,0,62, - 0,28,0,28,0,28,0,24,0,120,0,112,0,10,18,36, - 12,1,252,224,0,224,0,224,0,224,0,239,0,255,128,243, - 128,225,192,225,192,225,192,225,192,243,128,255,128,239,0,224, - 0,224,0,224,0,224,0,9,18,36,11,1,252,51,0,51, - 0,51,0,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,28,0,24,0,120,0,112, - 0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 13 - Calculated Max Values w= 9 h=14 x= 1 y= 8 dx=11 dy= 0 ascent=14 len=26 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =13 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14n[416] U8G_FONT_SECTION("u8g_font_helvB14n") = { - 0,22,29,254,249,13,0,0,0,0,42,58,0,14,253,13, - 0,7,6,6,9,1,8,16,214,124,56,108,68,8,8,8, - 11,1,1,24,24,24,255,255,24,24,24,3,6,6,5,1, - 253,224,224,224,96,192,128,5,3,3,6,0,4,248,248,248, - 3,3,3,5,1,0,224,224,224,5,14,14,5,0,0,24, - 24,24,56,48,48,48,112,96,96,224,192,192,192,9,13,26, - 10,0,0,28,0,127,0,119,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,119,0,127,0,28,0,6,13,13, - 10,1,0,28,60,252,252,28,28,28,28,28,28,28,28,28, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,3,128, - 7,0,31,0,62,0,120,0,112,0,224,0,255,128,255,128, - 9,13,26,10,0,0,62,0,127,0,231,0,227,0,7,0, - 30,0,31,0,7,128,3,128,227,128,231,128,127,0,62,0, - 9,13,26,10,0,0,7,0,15,0,31,0,63,0,55,0, - 119,0,103,0,231,0,255,128,255,128,7,0,7,0,7,0, - 9,13,26,10,0,0,255,0,255,0,224,0,224,0,254,0, - 255,0,231,128,3,128,3,128,227,128,231,128,255,0,126,0, - 9,13,26,10,0,0,63,0,127,128,113,128,224,0,238,0, - 255,0,243,128,225,128,225,128,225,128,243,128,127,0,62,0, - 9,13,26,10,0,0,255,128,255,128,3,128,7,0,14,0, - 14,0,28,0,28,0,56,0,56,0,112,0,112,0,112,0, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,227,128, - 127,0,62,0,119,0,227,128,227,128,227,128,127,0,62,0, - 9,13,26,10,0,0,62,0,127,0,231,128,195,128,195,128, - 195,128,231,128,127,128,59,128,3,128,199,0,255,0,126,0, - 3,10,10,6,1,0,224,224,224,0,0,0,0,224,224,224 - }; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14r[2548] U8G_FONT_SECTION("u8g_font_helvB14r") = { - 0,22,29,254,249,14,3,23,6,234,32,127,252,14,252,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=17 dx=24 dy= 0 ascent=24 len=72 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18[7527] U8G_FONT_SECTION("u8g_font_helvB18") = { - 0,28,37,254,248,19,4,35,9,107,32,255,251,24,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 6,0,1,3,19,19,7,2,251,224,224,224,0,0,96,96, - 96,224,224,224,224,224,224,224,224,224,224,224,11,18,36,14, - 1,254,1,128,1,128,31,128,63,192,123,224,115,96,227,0, - 230,0,230,0,230,0,230,0,236,0,236,224,125,224,127,192, - 63,128,24,0,24,0,13,18,36,14,1,0,31,128,63,192, - 112,224,112,224,112,0,120,0,56,0,28,0,255,192,255,192, - 28,0,28,0,28,0,56,0,56,0,127,56,255,248,241,240, - 12,12,24,14,1,3,192,48,239,112,127,224,57,192,112,224, - 112,224,112,224,112,224,57,192,127,224,239,112,192,48,13,18, - 36,14,0,0,224,56,224,56,112,112,112,112,56,224,56,224, - 29,192,29,192,127,240,127,240,7,0,127,240,127,240,7,0, - 7,0,7,0,7,0,7,0,2,24,24,7,3,251,192,192, - 192,192,192,192,192,192,192,192,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,12,24,48,14,1,251,31,128,63,192, - 121,224,112,224,120,224,60,0,30,0,127,0,247,128,227,192, - 225,224,224,224,112,112,120,112,60,112,30,224,15,192,7,128, - 3,192,113,224,112,224,121,224,63,192,31,128,7,2,2,9, - 1,16,238,238,19,19,57,19,0,0,1,240,0,15,254,0, - 30,15,0,56,3,128,112,1,192,97,240,192,227,184,224,198, - 12,96,198,0,96,198,0,96,198,0,96,198,12,96,227,184, - 224,97,240,192,112,1,192,56,3,128,30,15,0,15,254,0, - 1,240,0,8,12,12,10,1,7,124,254,198,30,126,230,198, - 255,123,0,255,255,10,8,16,13,1,3,29,192,59,128,119, - 0,238,0,238,0,119,0,59,128,29,192,12,7,14,15,1, - 4,255,240,255,240,0,48,0,48,0,48,0,48,0,48,7, - 3,3,8,0,6,254,254,254,19,19,57,19,0,0,3,248, - 0,15,254,0,28,15,0,56,3,128,115,249,192,99,28,192, - 227,12,224,195,12,96,195,24,96,195,240,96,195,48,96,195, - 24,96,227,24,96,99,12,224,112,0,192,56,1,192,30,3, - 128,15,254,0,3,248,0,7,2,2,9,1,17,254,254,8, - 7,7,9,0,11,60,102,195,195,195,102,60,11,13,26,15, - 2,0,14,0,14,0,14,0,14,0,255,224,255,224,14,0, - 14,0,14,0,14,0,0,0,255,224,255,224,6,10,10,7, - 0,8,120,252,204,12,28,120,224,192,252,252,6,10,10,7, - 0,8,120,252,204,12,56,56,12,204,252,120,6,4,4,8, - 1,15,28,56,112,224,11,19,38,15,2,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 225,224,243,224,254,224,236,224,224,0,224,0,224,0,224,0, - 224,0,11,24,48,13,1,251,15,224,63,224,124,192,124,192, - 252,192,252,192,252,192,252,192,252,192,124,192,124,192,60,192, - 28,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,3,3,3,7,2,6,224,224, - 224,6,6,6,8,1,251,112,120,28,28,252,120,4,10,10, - 7,1,8,48,48,240,240,48,48,48,48,48,48,8,12,12, - 10,1,7,60,126,231,195,195,195,231,126,60,0,255,255,10, - 8,16,13,1,3,238,0,119,0,59,128,29,192,29,192,59, - 128,119,0,238,0,17,18,54,19,1,0,48,24,0,48,24, - 0,240,48,0,240,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,134,0,49,142,0,3,30,0,3,30,0,6, - 54,0,6,102,0,12,127,128,12,127,128,24,6,0,24,6, - 0,16,18,36,19,1,0,48,24,48,24,240,48,240,48,48, - 96,48,96,48,192,48,192,49,158,49,191,3,51,3,3,6, - 7,6,30,12,56,12,48,24,63,24,63,17,18,54,19,1, - 0,120,24,0,252,24,0,204,48,0,12,48,0,56,96,0, - 56,96,0,12,192,0,204,192,0,253,134,0,121,142,0,3, - 30,0,3,30,0,6,54,0,6,102,0,12,127,128,12,127, - 128,24,6,0,24,6,0,11,19,38,15,2,251,14,0,14, - 0,14,0,0,0,0,0,14,0,14,0,14,0,14,0,28, - 0,60,0,120,0,112,0,240,224,224,224,225,224,243,192,127, - 192,63,0,16,24,48,18,1,0,14,0,7,0,3,128,1, - 192,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,24,48,18,1,0,0, - 112,0,224,1,192,3,128,0,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,16, - 24,48,18,1,0,1,192,3,224,7,112,14,56,0,0,3, - 192,3,192,7,224,7,224,14,96,14,112,14,112,28,56,28, - 56,28,56,56,28,56,28,63,252,127,254,112,14,112,14,224, - 7,224,7,224,7,16,23,46,18,1,0,7,152,15,248,12, - 240,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,23,46,18,1,0,14, - 112,14,112,0,0,0,0,3,192,3,192,7,224,7,224,14, - 96,14,112,14,112,28,56,28,56,28,56,56,28,56,28,63, - 252,127,254,112,14,112,14,224,7,224,7,224,7,16,24,48, - 18,1,0,3,192,6,96,4,32,6,96,3,192,3,192,3, - 192,7,224,7,224,14,96,14,112,14,112,28,56,28,56,28, - 56,56,28,56,28,63,252,127,254,112,14,112,14,224,7,224, - 7,224,7,22,19,57,24,1,0,3,255,248,3,255,248,7, - 112,0,7,112,0,14,112,0,14,112,0,14,112,0,28,112, - 0,28,127,240,28,127,240,56,112,0,56,112,0,63,240,0, - 127,240,0,112,112,0,112,112,0,224,112,0,224,127,252,224, - 127,252,16,24,48,18,1,251,7,240,31,252,62,62,120,15, - 112,7,240,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,240,7,112,7,120,15,62,62,31,252,7,240,3,192, - 0,224,0,224,7,224,3,192,13,24,48,16,2,0,56,0, - 28,0,14,0,7,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,13,24, - 48,16,2,0,1,192,3,128,7,0,14,0,0,0,255,240, - 255,240,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,248,255,248,13,24,48,16,2,0,7,0,15,128,29,192, - 56,224,0,0,255,240,255,240,224,0,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,248,255,248,13,23,46,16,2,0, - 56,224,56,224,0,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,6,24, - 24,7,0,0,224,112,56,28,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,6,24,24,7, - 1,0,28,56,112,224,0,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,112,112,9,24,48,7,255,0, - 28,0,62,0,119,0,227,128,0,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 7,23,23,7,0,0,238,238,0,0,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,19,19,57, - 19,255,0,31,252,0,31,255,0,28,15,128,28,3,192,28, - 1,192,28,1,224,28,0,224,28,0,224,255,192,224,255,192, - 224,28,0,224,28,0,224,28,0,224,28,1,224,28,1,192, - 28,3,192,28,15,128,31,255,0,31,252,0,15,23,46,19, - 2,0,15,48,31,240,25,224,0,0,224,14,240,14,240,14, - 248,14,248,14,252,14,238,14,238,14,231,14,227,142,227,142, - 225,206,224,206,224,238,224,126,224,62,224,62,224,30,224,14, - 17,24,72,19,1,0,14,0,0,7,0,0,3,128,0,1, - 192,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,112, - 7,0,120,15,0,62,62,0,31,252,0,7,240,0,17,24, - 72,19,1,0,0,56,0,0,112,0,0,224,0,1,192,0, - 0,0,0,7,240,0,31,252,0,62,62,0,120,15,0,112, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,7,128,112,7,0, - 120,15,0,62,62,0,31,252,0,7,240,0,17,24,72,19, - 1,0,1,192,0,3,224,0,7,112,0,14,56,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,128,224,3,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,240,7,128,112,7,0,120,15, - 0,62,62,0,31,252,0,7,240,0,17,23,69,19,1,0, - 7,152,0,15,248,0,12,240,0,0,0,0,7,240,0,31, - 252,0,62,62,0,120,15,0,112,7,0,240,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,23,69,19,1,0,14,56,0,14,56, - 0,0,0,0,0,0,0,7,240,0,31,252,0,62,62,0, - 120,15,0,112,7,0,240,7,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,240,7, - 128,112,7,0,120,15,0,62,62,0,31,252,0,7,240,0, - 12,12,24,15,1,1,64,32,224,112,112,224,57,192,31,128, - 15,0,15,0,31,128,57,192,112,224,224,112,64,32,19,19, - 57,19,0,0,3,248,96,15,254,224,31,31,192,60,3,128, - 56,7,128,120,15,192,112,29,192,112,57,192,112,113,192,112, - 225,192,113,193,192,115,129,192,119,1,192,126,3,192,60,3, - 128,60,7,128,127,31,0,239,254,0,195,248,0,15,24,48, - 19,2,0,14,0,7,0,3,128,1,192,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,19,2,0,0,112,0,224,1,192,3, - 128,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,112,28,124,124,63,248,15,224,15,24,48,19,2,0,3, - 128,7,192,14,224,28,112,0,0,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,112,28,124,124,63,248,15,224,15, - 23,46,19,2,0,28,112,28,112,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,17,1,0,0,112,0,224,1,192,3, - 128,0,0,224,14,240,30,112,28,120,60,56,56,60,120,28, - 112,30,240,14,224,15,224,7,192,7,192,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,14,19,38,17,2,0,224, - 0,224,0,224,0,224,0,255,224,255,248,224,56,224,28,224, - 28,224,28,224,28,224,56,255,248,255,240,224,0,224,0,224, - 0,224,0,224,0,11,19,38,14,2,0,30,0,127,128,243, - 128,225,192,225,192,225,192,225,192,227,128,239,0,239,128,227, - 192,225,192,224,224,224,224,224,224,224,224,225,192,239,192,239, - 128,12,19,38,14,1,0,28,0,14,0,7,0,3,128,0, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 14,1,0,1,192,3,128,7,0,14,0,0,0,31,128,63, - 192,113,224,112,224,0,224,7,224,63,224,124,224,240,224,224, - 224,225,224,243,224,127,240,62,112,12,19,38,14,1,0,7, - 0,15,128,29,192,56,224,0,0,31,128,63,192,113,224,112, - 224,0,224,7,224,63,224,124,224,240,224,224,224,225,224,243, - 224,127,240,62,112,12,19,38,14,1,0,60,192,127,192,103, - 128,0,0,0,0,31,128,63,192,113,224,112,224,0,224,7, - 224,63,224,124,224,240,224,224,224,225,224,243,224,127,240,62, - 112,12,18,36,14,1,0,57,192,57,192,0,0,0,0,31, - 128,63,192,113,224,112,224,0,224,7,224,63,224,124,224,240, - 224,224,224,225,224,243,224,127,240,62,112,12,19,38,14,1, - 0,7,0,13,128,8,128,13,128,7,0,31,128,63,192,113, - 224,112,224,0,224,7,224,63,224,124,224,240,224,224,224,225, - 224,243,224,127,240,62,112,20,14,42,22,1,0,31,143,0, - 63,255,192,113,249,224,112,240,224,0,224,112,7,224,112,63, - 255,240,124,255,240,240,224,0,224,224,0,225,240,112,243,248, - 240,127,63,224,62,15,128,11,19,38,13,1,251,31,128,63, - 192,121,224,112,224,224,0,224,0,224,0,224,0,224,0,224, - 0,112,224,121,224,63,192,31,128,30,0,7,0,7,0,63, - 0,30,0,12,19,38,14,1,0,28,0,14,0,7,0,3, - 128,0,0,15,0,63,192,121,224,112,224,224,112,224,112,255, - 240,255,240,224,0,224,0,112,112,120,240,63,224,15,128,12, - 19,38,14,1,0,3,128,7,0,14,0,28,0,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,255,240,255,240,224, - 0,224,0,112,112,120,240,63,224,15,128,12,19,38,14,1, - 0,7,0,15,128,29,192,56,224,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,255,240,255,240,224,0,224,0,112, - 112,120,240,63,224,15,128,12,18,36,14,1,0,57,192,57, - 192,0,0,0,0,15,0,63,192,121,224,112,224,224,112,224, - 112,255,240,255,240,224,0,224,0,112,112,120,240,63,224,15, - 128,6,19,19,7,0,0,224,112,56,28,0,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,6,19,19,7,1,0, - 28,56,112,224,0,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,9,19,38,7,255,0,28,0,62,0,119,0,227, - 128,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,7, - 18,18,7,0,0,238,238,0,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,12,19,38,14,1,0,112,0,29, - 192,7,0,31,0,97,128,15,192,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,11,19,38,15,2,0,60,192,127,192,103,128,0, - 0,0,0,239,128,255,192,241,192,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,12, - 19,38,14,1,0,28,0,14,0,7,0,3,128,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,15,0,12,19,38,14,1, - 0,3,128,7,0,14,0,28,0,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,121,224,63,192,15,0,12,19,38,14,1,0,14,0,31, - 0,59,128,113,192,0,0,15,0,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,12,19,38,14,1,0,60,192,127,192,103,128,0, - 0,0,0,15,0,63,192,121,224,112,224,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,121,224,63,192,15,0,12, - 18,36,14,1,0,57,192,57,192,0,0,0,0,15,0,63, - 192,121,224,112,224,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,121,224,63,192,15,0,11,12,24,15,2,1,14, - 0,14,0,14,0,0,0,0,0,255,224,255,224,0,0,0, - 0,14,0,14,0,14,0,14,14,28,14,0,0,7,140,31, - 252,60,248,56,112,112,248,113,248,115,184,119,56,126,56,124, - 56,56,112,124,240,255,224,199,128,11,19,38,15,2,0,56, - 0,28,0,14,0,7,0,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,225,224,115, - 224,126,224,28,224,11,19,38,15,2,0,3,128,7,0,14, - 0,28,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,225,224,115,224,126,224,28, - 224,11,19,38,15,2,0,14,0,31,0,59,128,113,192,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,225,224,115,224,126,224,28,224,11,18,36, - 15,2,0,57,192,57,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225, - 224,115,224,126,224,28,224,13,24,48,15,1,251,0,224,1, - 192,3,128,7,0,0,0,224,56,224,56,112,56,120,112,56, - 112,60,240,28,224,28,224,15,192,15,192,7,192,7,128,3, - 128,3,128,7,0,7,0,14,0,62,0,60,0,12,24,48, - 15,2,251,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,224,0,224,0,224,0,224, - 0,224,0,13,23,46,15,1,251,28,224,28,224,0,0,0, - 0,224,56,224,56,112,56,120,112,56,112,60,240,28,224,28, - 224,15,192,15,192,7,192,7,128,3,128,3,128,7,0,7, - 0,14,0,62,0,60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=12 h=19 x= 2 y=12 dx=15 dy= 0 ascent=19 len=36 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =19 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18n[537] U8G_FONT_SECTION("u8g_font_helvB18n") = { - 0,28,37,254,248,18,0,0,0,0,42,58,0,19,253,18, - 0,8,7,7,10,1,12,24,24,219,255,60,102,102,12,12, - 24,15,1,1,6,0,6,0,6,0,6,0,6,0,255,240, - 255,240,6,0,6,0,6,0,6,0,6,0,3,6,6,7, - 2,253,224,224,224,96,96,192,7,3,3,8,0,6,254,254, - 254,3,3,3,7,2,0,224,224,224,7,19,19,8,1,0, - 6,6,6,12,12,12,24,24,24,24,48,48,48,96,96,96, - 192,192,192,12,18,36,13,0,0,31,128,63,192,121,224,112, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,112,224,121,224,63,192,31,128,7,18,18, - 13,2,0,14,14,30,254,254,14,14,14,14,14,14,14,14, - 14,14,14,14,14,12,18,36,13,0,0,31,0,127,192,113, - 224,224,224,224,112,224,112,0,112,0,224,1,224,3,192,7, - 128,31,0,60,0,120,0,240,0,224,0,255,240,255,240,12, - 18,36,13,0,0,31,0,127,192,113,192,224,224,224,224,224, - 224,0,224,1,192,15,128,15,224,0,224,0,112,0,112,224, - 112,224,240,113,224,127,224,31,128,12,18,36,13,0,0,1, - 192,3,192,3,192,7,192,7,192,13,192,29,192,25,192,49, - 192,113,192,97,192,225,192,255,240,255,240,1,192,1,192,1, - 192,1,192,12,18,36,13,0,0,127,224,127,224,112,0,112, - 0,112,0,112,0,127,128,127,192,113,224,0,224,0,112,0, - 112,0,112,224,112,224,240,241,224,127,192,31,128,12,18,36, - 13,0,0,15,128,63,224,120,224,112,112,224,112,224,0,224, - 0,239,0,255,192,249,224,240,224,224,112,224,112,224,112,112, - 224,121,224,63,192,31,128,12,18,36,13,0,0,255,240,255, - 240,0,240,0,224,1,192,1,192,3,128,3,128,7,0,7, - 0,14,0,14,0,30,0,28,0,28,0,60,0,56,0,56, - 0,12,18,36,13,0,0,15,0,63,192,57,192,112,224,112, - 224,112,224,112,224,57,192,31,128,63,192,112,224,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,12,18,36,13,0, - 0,31,128,127,192,121,224,240,224,224,112,224,112,224,112,224, - 112,240,240,121,240,127,240,31,112,0,112,0,112,224,224,243, - 224,127,192,31,0,3,14,14,7,2,0,224,224,224,0,0, - 0,0,0,0,0,0,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18r[3453] U8G_FONT_SECTION("u8g_font_helvB18r") = { - 0,28,37,254,248,19,4,35,9,107,32,127,251,19,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=31 h=32 x= 4 y=21 dx=33 dy= 0 ascent=31 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24[11554] U8G_FONT_SECTION("u8g_font_helvB24") = { - 0,40,49,250,244,25,5,252,14,144,32,255,249,31,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,9,0,1,5,24,24,11,2,250,248,248,248,248,248,0, - 0,112,112,112,112,112,112,248,248,248,248,248,248,248,248,248, - 248,248,15,24,48,18,1,253,0,32,0,32,0,96,7,240, - 31,248,63,252,127,252,124,190,248,158,249,158,241,128,241,128, - 243,0,243,0,243,30,250,30,126,62,127,252,63,248,31,240, - 15,192,12,0,8,0,8,0,17,24,72,18,0,0,3,240, - 0,31,252,0,63,254,0,63,255,0,126,31,0,124,15,128, - 124,15,128,124,7,128,124,0,0,126,0,0,62,0,0,255, - 240,0,255,240,0,31,0,0,15,0,0,15,0,0,15,0, - 0,31,0,0,30,0,0,61,227,0,127,255,128,255,255,128, - 255,255,0,96,126,0,15,15,30,18,1,4,224,14,247,222, - 255,254,127,252,60,120,120,60,112,28,112,28,112,28,120,60, - 60,120,127,252,255,254,247,222,224,14,18,24,72,18,0,0, - 248,7,192,248,7,192,124,15,128,60,15,0,30,30,0,30, - 30,0,15,60,0,15,60,0,7,248,0,7,248,0,3,240, - 0,1,224,0,63,255,0,63,255,0,1,224,0,1,224,0, - 63,255,0,63,255,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,31,31,9,3,250,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,16,32,64, - 18,1,249,15,240,31,248,63,248,126,124,124,60,124,60,126, - 0,127,0,63,192,31,224,63,248,127,252,113,254,240,255,240, - 63,248,31,252,15,127,15,127,159,63,254,31,248,7,252,1, - 254,0,126,0,62,120,30,120,30,124,62,63,252,63,252,31, - 248,7,224,10,4,8,11,0,21,243,192,243,192,243,192,243, - 192,26,25,100,24,0,0,0,127,128,0,3,255,224,0,7, - 128,248,0,31,0,60,0,28,0,14,0,56,0,7,0,112, - 63,3,0,112,127,131,128,224,243,193,128,225,192,225,192,193, - 192,224,192,195,128,0,192,195,128,0,192,195,128,0,192,195, - 128,0,192,193,192,224,192,225,192,225,192,224,243,195,128,96, - 127,131,128,112,63,7,0,56,0,14,0,30,0,60,0,15, - 128,248,0,7,255,224,0,1,255,128,0,9,16,32,12,1, - 9,62,0,127,0,227,128,195,128,31,128,127,128,243,128,227, - 128,227,128,255,128,123,128,0,0,0,0,255,128,255,128,255, - 128,12,13,26,18,3,2,8,16,24,48,56,112,120,240,241, - 224,225,192,225,192,241,224,249,240,120,240,56,112,24,48,8, - 16,16,10,20,19,1,4,255,255,255,255,255,255,255,255,0, - 15,0,15,0,15,0,15,0,15,0,15,9,5,10,11,1, - 7,255,128,255,128,255,128,255,128,255,128,26,25,100,24,0, - 0,0,255,128,0,3,255,224,0,7,128,248,0,30,0,60, - 0,28,0,14,0,56,255,135,0,112,255,195,0,112,225,227, - 128,224,224,225,128,224,224,225,128,192,224,225,192,192,225,193, - 192,192,255,129,192,192,255,1,192,192,227,129,192,192,227,193, - 192,224,225,193,128,224,224,227,128,112,224,243,128,112,224,119, - 0,56,0,14,0,30,0,28,0,15,128,120,0,7,255,224, - 0,1,255,128,0,10,3,6,11,0,21,255,192,255,192,255, - 192,9,10,20,13,2,14,62,0,127,0,99,0,193,128,193, - 128,193,128,193,128,99,0,127,0,62,0,16,22,44,19,1, - 0,3,192,3,192,3,192,3,192,3,192,3,192,255,255,255, - 255,255,255,255,255,3,192,3,192,3,192,3,192,3,192,3, - 192,0,0,0,0,255,255,255,255,255,255,255,255,10,15,30, - 11,0,9,63,0,127,128,243,192,225,192,225,192,1,192,3, - 192,7,128,15,0,62,0,120,0,112,0,255,192,255,192,255, - 192,10,15,30,11,0,9,30,0,127,128,243,192,225,192,225, - 192,3,192,15,128,15,128,3,192,1,192,225,192,225,192,243, - 192,127,128,62,0,6,5,5,11,4,20,60,120,112,224,224, - 15,25,50,20,2,249,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,255,254,255,222,247,158,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,17,31,93,18,0,250,15,255, - 128,31,255,128,63,140,0,127,140,0,127,140,0,255,140,0, - 255,140,0,255,140,0,255,140,0,255,140,0,127,140,0,127, - 140,0,63,140,0,63,140,0,15,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,4,5,5,9,2, - 11,96,240,240,240,96,7,8,8,11,2,249,48,48,48,124, - 30,14,252,248,6,15,15,11,2,9,28,60,252,252,28,28, - 28,28,28,28,28,28,28,28,28,10,16,32,12,1,9,63, - 0,127,128,115,128,225,192,225,192,225,192,225,192,225,192,115, - 128,127,128,63,0,0,0,0,0,255,192,255,192,255,192,12, - 12,24,18,3,3,129,0,193,128,225,192,241,224,120,240,56, - 112,56,112,120,240,241,224,225,192,193,128,129,0,26,24,96, - 28,0,0,0,0,56,0,6,0,112,0,30,0,112,0,254, - 0,224,0,254,1,192,0,14,1,192,0,14,3,128,0,14, - 3,128,0,14,7,0,0,14,7,0,0,14,14,7,0,14, - 28,15,0,14,28,31,0,14,56,31,0,0,56,55,0,0, - 112,103,0,0,112,231,0,0,224,199,0,1,193,135,0,1, - 193,255,192,3,129,255,192,3,128,7,0,7,0,7,0,7, - 0,7,0,25,24,96,28,1,0,0,0,224,0,12,1,192, - 0,28,1,192,0,252,3,128,0,252,3,128,0,28,7,0, - 0,28,14,0,0,28,14,0,0,28,28,0,0,28,28,0, - 0,28,56,126,0,28,48,255,0,28,113,231,128,28,225,195, - 128,0,225,195,128,1,192,7,128,1,192,15,0,3,128,30, - 0,7,0,60,0,7,0,120,0,14,0,240,0,14,1,255, - 128,28,1,255,128,28,1,255,128,25,24,96,27,1,0,63, - 0,28,0,127,128,56,0,243,192,56,0,225,192,112,0,225, - 192,224,0,3,192,224,0,15,129,192,0,15,129,192,0,15, - 195,128,0,1,199,0,0,225,199,14,0,225,206,30,0,243, - 206,30,0,127,156,62,0,63,28,126,0,0,56,238,0,0, - 112,206,0,0,113,142,0,0,227,142,0,0,227,255,128,1, - 195,255,128,1,192,14,0,3,128,14,0,3,128,14,0,16, - 24,48,20,1,250,3,224,3,224,3,224,3,224,0,0,0, - 0,3,192,3,192,3,192,7,192,31,128,63,128,127,0,126, - 0,252,0,248,15,248,15,248,15,252,31,126,127,127,254,63, - 254,63,252,15,240,22,31,93,23,0,0,3,192,0,1,224, - 0,0,240,0,0,120,0,0,60,0,0,0,0,0,252,0, - 0,252,0,1,254,0,1,254,0,1,254,0,3,255,0,3, - 255,0,3,255,0,7,207,128,7,207,128,7,207,128,15,135, - 128,15,135,192,15,135,192,31,3,192,31,3,224,31,255,224, - 31,255,224,63,255,240,63,255,240,62,1,240,124,0,248,124, - 0,248,252,0,252,248,0,124,22,31,93,23,0,0,0,15, - 0,0,30,0,0,60,0,0,120,0,0,240,0,0,0,0, - 0,252,0,0,252,0,1,254,0,1,254,0,1,254,0,3, - 255,0,3,255,0,3,255,0,7,207,128,7,207,128,7,207, - 128,15,135,128,15,135,192,15,135,192,31,3,192,31,3,224, - 31,255,224,31,255,224,63,255,240,63,255,240,62,1,240,124, - 0,248,124,0,248,252,0,252,248,0,124,22,31,93,23,0, - 0,0,48,0,0,120,0,0,252,0,1,206,0,3,135,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,30, - 90,23,0,0,0,241,128,1,255,128,3,255,0,3,30,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,31, - 93,23,0,0,3,207,0,3,207,0,3,207,0,3,207,0, - 0,0,0,0,0,0,0,252,0,0,252,0,1,254,0,1, - 254,0,1,254,0,3,255,0,3,255,0,3,255,0,7,207, - 128,7,207,128,7,207,128,15,135,128,15,135,192,15,135,192, - 31,3,192,31,3,224,31,255,224,31,255,224,63,255,240,63, - 255,240,62,1,240,124,0,248,124,0,248,252,0,252,248,0, - 124,22,31,93,23,0,0,0,120,0,0,204,0,0,132,0, - 0,132,0,0,204,0,0,120,0,0,0,0,0,252,0,1, - 254,0,1,254,0,1,254,0,3,255,0,3,255,0,3,255, - 0,7,207,128,7,207,128,7,207,128,15,135,128,15,135,192, - 15,135,192,31,3,192,31,3,224,31,255,224,31,255,224,63, - 255,240,63,255,240,62,1,240,124,0,248,124,0,248,252,0, - 252,248,0,124,31,25,100,32,0,0,0,255,255,252,0,255, - 255,252,0,255,255,252,1,255,255,252,1,243,192,0,1,227, - 192,0,3,227,192,0,3,227,192,0,3,195,192,0,7,195, - 192,0,7,195,192,0,7,195,255,248,15,131,255,248,15,131, - 255,248,15,131,255,248,31,3,192,0,31,255,192,0,31,255, - 192,0,63,255,192,0,63,255,192,0,62,3,192,0,124,3, - 255,254,124,3,255,254,248,3,255,254,248,3,255,254,21,32, - 96,23,1,249,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,240,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,252,0,0, - 96,0,0,96,0,0,248,0,0,28,0,0,28,0,1,248, - 0,1,240,0,18,31,93,22,2,0,30,0,0,15,0,0, - 7,128,0,3,192,0,1,224,0,0,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,0,255,255,0, - 255,255,0,255,255,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,18,31,93,22,2,0,0,120,0, - 0,240,0,1,224,0,3,192,0,7,128,0,0,0,0,255, - 255,128,255,255,128,255,255,128,255,255,128,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,0, - 255,255,0,255,255,0,255,255,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 192,255,255,192,255,255,192,255,255,192,18,31,93,22,2,0, - 0,192,0,1,224,0,3,240,0,7,56,0,14,28,0,0, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,18,31,93, - 22,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,192,255,255,192,255,255,192,255,255,192, - 8,31,31,9,0,0,240,120,60,30,15,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,8,31,31,9,2,0,15,30,60,120,240, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,10,31,62,9,0,0, - 12,0,30,0,63,0,115,128,225,192,0,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,10,31, - 62,9,0,0,243,192,243,192,243,192,243,192,0,0,0,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,23,25,75,23,255,0,31,255,128,31,255,224,31,255, - 240,31,255,248,31,7,248,31,0,252,31,0,252,31,0,124, - 31,0,126,31,0,62,31,0,62,255,240,62,255,240,62,255, - 240,62,31,0,62,31,0,62,31,0,124,31,0,124,31,0, - 124,31,0,248,31,3,248,31,255,240,31,255,240,31,255,192, - 31,255,128,19,30,90,24,2,0,3,198,0,7,254,0,15, - 252,0,12,120,0,0,0,0,248,3,224,252,3,224,252,3, - 224,254,3,224,254,3,224,255,3,224,255,3,224,255,131,224, - 255,195,224,251,195,224,251,227,224,249,227,224,249,243,224,248, - 243,224,248,251,224,248,123,224,248,63,224,248,63,224,248,31, - 224,248,31,224,248,15,224,248,15,224,248,7,224,248,7,224, - 248,3,224,23,31,93,25,1,0,1,224,0,0,240,0,0, - 120,0,0,60,0,0,30,0,0,0,0,1,255,0,7,255, - 192,15,255,224,31,255,240,63,199,248,63,1,248,126,0,252, - 124,0,124,124,0,124,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,126,0,252,63,1,248,63,199,248,31,255,240,15,255,224, - 7,255,192,1,255,0,23,31,93,25,1,0,0,7,128,0, - 15,0,0,30,0,0,60,0,0,120,0,0,0,0,1,255, - 0,7,255,192,15,255,224,31,255,240,63,199,248,63,1,248, - 126,0,252,124,0,124,124,0,124,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,124,0, - 124,124,0,124,126,0,252,63,1,248,63,199,248,31,255,240, - 15,255,224,7,255,192,1,255,0,23,31,93,25,1,0,0, - 24,0,0,60,0,0,126,0,0,231,0,1,195,128,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,30,90,25, - 1,0,0,120,192,0,255,192,1,255,128,1,143,0,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,31,93,25, - 1,0,1,231,128,1,231,128,1,231,128,1,231,128,0,0, - 0,0,0,0,1,255,0,7,255,192,15,255,224,31,255,240, - 63,199,248,63,1,248,126,0,252,124,0,124,124,0,124,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,126,0,252,63,1,248, - 63,199,248,31,255,240,15,255,224,7,255,192,1,255,0,15, - 16,32,19,2,0,32,8,112,28,248,62,252,126,126,252,63, - 248,31,240,15,224,15,224,31,240,63,248,126,252,252,126,248, - 62,112,28,32,8,24,25,75,25,1,0,1,255,7,7,255, - 206,15,255,252,31,255,248,63,199,248,63,0,248,126,1,252, - 124,3,252,124,7,188,248,7,62,248,14,62,248,28,62,248, - 56,62,248,112,62,248,224,62,248,224,62,125,192,124,127,128, - 124,127,0,252,63,1,248,63,199,248,63,255,240,63,255,224, - 119,255,192,225,255,0,19,31,93,24,2,0,7,128,0,3, - 192,0,1,224,0,0,240,0,0,120,0,0,0,0,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,252,7,224,127,31,192,127,255,192, - 63,255,128,31,255,0,7,252,0,19,31,93,24,2,0,0, - 30,0,0,60,0,0,120,0,0,240,0,1,224,0,0,0, - 0,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,252,7,224,127,31,192, - 127,255,192,63,255,128,31,255,0,7,252,0,19,31,93,24, - 2,0,0,96,0,0,240,0,1,248,0,3,156,0,7,14, - 0,0,0,0,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,252,7,224, - 127,31,192,127,255,192,63,255,128,31,255,0,7,252,0,19, - 31,93,24,2,0,15,30,0,15,30,0,15,30,0,15,30, - 0,0,0,0,0,0,0,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 252,7,224,127,31,192,127,255,192,63,255,128,31,255,0,7, - 252,0,20,31,93,22,1,0,0,30,0,0,60,0,0,120, - 0,0,240,0,1,224,0,0,0,0,252,3,240,252,3,240, - 126,7,224,62,7,192,63,15,192,63,15,128,31,15,128,31, - 159,0,15,159,0,15,254,0,7,254,0,7,252,0,3,252, - 0,3,248,0,3,248,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,18,25,75,22,2,0,248,0,0,248,0, - 0,248,0,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,254, - 0,255,252,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,20,2,0,15,192,0,63, - 240,0,127,252,0,255,252,0,248,126,0,248,62,0,240,62, - 0,240,62,0,240,124,0,240,252,0,241,248,0,241,252,0, - 241,254,0,240,127,0,240,31,0,240,31,128,240,15,128,240, - 15,128,240,15,128,240,31,128,240,63,0,241,255,0,241,254, - 0,241,252,0,241,240,0,15,25,50,18,1,0,15,0,7, - 128,3,128,1,192,0,224,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 25,50,18,1,0,0,120,0,240,0,224,1,192,3,128,0, - 0,0,0,15,240,63,252,127,252,124,62,248,30,248,30,1, - 254,15,254,63,254,127,30,248,30,240,30,240,62,248,126,255, - 254,255,254,127,222,63,30,15,25,50,18,1,0,1,128,3, - 192,7,224,14,112,28,56,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 24,48,18,1,0,7,140,15,252,31,248,24,240,0,0,0, - 0,15,240,63,252,127,252,124,62,248,30,248,30,1,254,15, - 254,63,254,127,30,248,30,240,30,240,62,248,126,255,254,255, - 254,127,222,63,30,15,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,15,240,63,252,127,252,124,62,248, - 30,248,30,1,254,15,254,63,254,127,30,248,30,240,30,240, - 62,248,126,255,254,255,254,127,222,63,30,15,25,50,18,1, - 0,3,192,6,96,4,32,4,32,6,96,3,192,0,0,15, - 240,63,252,127,252,124,62,248,30,248,30,1,254,15,254,63, - 254,127,30,248,30,248,30,240,62,248,126,255,254,255,254,127, - 222,63,30,26,19,76,29,1,0,7,224,248,0,31,251,254, - 0,63,255,255,0,63,255,255,0,124,63,15,128,120,30,7, - 128,120,30,7,192,0,62,7,192,7,255,255,192,63,255,255, - 192,127,255,255,192,124,30,0,0,248,30,0,0,248,30,7, - 192,252,63,15,192,255,255,255,128,127,247,255,0,63,227,254, - 0,15,129,248,0,15,25,50,18,1,249,7,224,31,248,63, - 252,63,252,124,62,120,30,248,30,240,0,240,0,240,0,240, - 0,248,30,248,30,124,62,127,252,63,248,31,248,7,224,3, - 0,3,0,7,192,0,224,0,224,15,192,15,128,16,25,50, - 18,1,0,15,0,7,128,3,128,1,192,0,224,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,25,50,18,1,0,0,120,0,240,0, - 224,1,192,3,128,0,0,0,0,7,224,31,248,63,252,127, - 254,124,62,248,30,240,31,255,255,255,255,255,255,240,0,240, - 0,248,30,124,62,127,254,63,252,31,240,7,192,16,25,50, - 18,1,0,1,128,3,192,7,224,14,112,28,56,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,7,224,31,248,63,252,127,254,124, - 62,248,30,240,31,255,255,255,255,255,255,240,0,240,0,248, - 30,124,62,127,254,63,252,31,240,7,192,7,25,25,9,1, - 0,240,120,56,28,14,0,0,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,6,25,25,9,2,0, - 60,56,112,112,224,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,10,25,50,9,255,0,12, - 0,30,0,63,0,115,128,225,192,0,0,0,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,10,24,48,9,255,0,243,192,243,192,243,192,243,192,0, - 0,0,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,17,26,78,20,1,0,48,0,0, - 120,32,0,124,240,0,63,224,0,31,192,0,63,224,0,115, - 240,0,33,248,0,7,252,0,31,254,0,63,254,0,127,255, - 0,124,31,0,248,15,128,248,15,128,240,7,128,240,7,128, - 240,7,128,248,15,128,248,15,128,252,31,128,126,63,0,127, - 255,0,63,254,0,31,252,0,7,240,0,15,24,48,20,2, - 0,15,24,31,248,63,240,49,224,0,0,0,0,243,240,247, - 248,255,252,255,254,252,62,248,62,240,30,240,30,240,30,240, - 30,240,30,240,30,240,30,240,30,240,30,240,30,240,30,240, - 30,17,25,75,20,1,0,7,128,0,3,192,0,1,192,0, - 1,224,0,0,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,25,75,20,1,0,0,120,0,0,240,0,0,224, - 0,1,192,0,3,192,0,0,0,0,0,0,0,7,240,0, - 31,252,0,63,254,0,127,255,0,124,31,0,248,15,128,248, - 15,128,240,7,128,240,7,128,240,7,128,240,7,128,248,15, - 128,248,15,128,124,31,0,127,255,0,63,254,0,31,252,0, - 7,240,0,17,25,75,20,1,0,0,192,0,1,224,0,3, - 240,0,7,56,0,14,28,0,0,0,0,0,0,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,17,24,72,20,1,0,7,140,0,15,252,0, - 31,248,0,24,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,24,72,20,1,0,30,60,0,30,60,0,30,60, - 0,30,60,0,0,0,0,0,0,0,7,240,0,31,252,0, - 63,254,0,127,255,0,124,31,0,248,15,128,248,15,128,240, - 7,128,240,7,128,240,7,128,240,7,128,248,15,128,248,15, - 128,124,31,0,127,255,0,63,254,0,31,252,0,7,240,0, - 16,16,32,19,1,0,3,192,3,192,3,192,3,192,0,0, - 0,0,255,255,255,255,255,255,255,255,0,0,0,0,3,192, - 3,192,3,192,3,192,21,18,54,20,255,0,1,252,56,7, - 255,112,15,255,224,31,255,192,31,143,192,62,7,224,62,15, - 224,60,29,224,60,57,224,60,113,224,62,227,224,63,131,224, - 63,7,224,31,143,192,31,255,192,63,255,128,119,255,0,225, - 252,0,15,25,50,20,2,0,30,0,15,0,7,0,3,128, - 1,192,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 0,240,1,224,1,192,3,128,7,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,15,25,50,20,2,0,3,0,7,128,15,192,28,224, - 56,112,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 60,120,60,120,60,120,60,120,0,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,16,32,64,19,1,249,0,120,0,240,1,224,1,192, - 3,128,0,0,0,0,248,31,248,31,248,31,120,30,124,62, - 124,60,60,60,60,60,62,120,62,120,30,120,31,240,31,240, - 15,240,15,224,7,224,7,224,7,192,7,192,7,192,15,128, - 63,128,63,0,63,0,60,0,16,32,64,20,2,249,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,243,240,247,252, - 255,254,255,254,252,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,252,62,255,254,255,252,247,248,241,240, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,31, - 62,19,1,249,30,120,30,120,30,120,30,120,0,0,0,0, - 248,31,248,31,248,31,120,62,124,62,124,60,124,60,62,124, - 62,120,62,120,30,120,31,240,31,240,15,240,15,224,7,224, - 7,224,7,192,7,192,7,192,15,128,63,128,63,0,63,0, - 60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=17 h=25 x= 3 y=13 dx=19 dy= 0 ascent=25 len=72 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24n[743] U8G_FONT_SECTION("u8g_font_helvB24n") = { - 0,40,49,250,244,23,0,0,0,0,42,58,0,25,250,23, - 0,10,11,22,13,1,13,12,0,12,0,76,128,237,192,255, - 192,127,128,30,0,63,0,127,128,115,128,33,0,16,16,32, - 19,1,0,3,192,3,192,3,192,3,192,3,192,3,192,255, - 255,255,255,255,255,255,255,3,192,3,192,3,192,3,192,3, - 192,3,192,5,11,11,9,2,250,248,248,248,248,248,24,24, - 56,112,224,128,9,5,10,11,1,7,255,128,255,128,255,128, - 255,128,255,128,5,5,5,9,2,0,248,248,248,248,248,8, - 25,25,9,0,0,3,3,3,3,6,6,6,14,12,12,12, - 28,24,24,24,48,48,48,112,96,96,96,192,192,192,15,24, - 48,18,1,0,15,224,31,240,63,248,127,252,124,124,248,62, - 248,62,248,62,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,248,62,248,62,248,62,124,124,127,252,63,248, - 31,240,15,224,10,23,46,18,2,0,1,192,3,192,7,192, - 31,192,255,192,255,192,255,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,16,24,48,18,1,0,15,224, - 63,248,127,252,127,254,252,126,248,63,248,31,240,31,240,31, - 0,63,0,62,0,126,0,252,1,248,7,240,15,224,31,128, - 63,0,126,0,252,0,255,255,255,255,255,255,255,255,16,24, - 48,18,1,0,15,224,63,248,127,252,127,252,248,62,240,62, - 240,30,240,30,0,62,0,124,3,248,3,240,3,252,0,126, - 0,63,0,31,240,31,240,31,240,63,248,62,127,254,127,252, - 63,248,15,224,16,24,48,18,1,0,0,248,0,248,1,248, - 3,248,3,248,7,248,15,120,14,120,30,120,28,120,60,120, - 120,120,112,120,240,120,224,120,255,255,255,255,255,255,255,255, - 0,120,0,120,0,120,0,120,0,120,15,24,48,18,1,0, - 63,252,63,252,63,252,63,252,56,0,120,0,120,0,120,0, - 123,224,127,248,127,252,127,252,120,126,0,62,0,62,0,30, - 0,30,240,62,240,62,248,124,127,252,127,248,63,240,15,192, - 15,24,48,18,1,0,7,224,31,248,63,252,63,254,124,62, - 120,30,240,0,240,0,243,224,247,248,255,252,255,252,252,126, - 248,62,240,30,240,30,240,30,240,30,248,62,124,124,127,252, - 63,248,31,240,7,192,16,24,48,18,1,0,255,255,255,255, - 255,255,255,255,0,30,0,62,0,60,0,120,0,248,0,240, - 1,240,1,224,3,224,3,192,7,192,7,192,7,128,15,128, - 15,128,15,128,31,0,31,0,31,0,31,0,17,24,72,18, - 0,0,7,240,0,31,252,0,63,254,0,62,62,0,124,31, - 0,120,15,0,120,15,0,120,15,0,124,31,0,62,62,0, - 31,252,0,31,252,0,63,254,0,124,31,0,248,15,128,240, - 7,128,240,7,128,240,7,128,248,15,128,126,63,0,127,254, - 0,63,254,0,31,252,0,7,240,0,15,24,48,18,1,0, - 7,192,31,240,63,248,127,252,124,124,248,62,240,30,240,30, - 240,30,240,30,248,62,252,126,127,254,127,254,63,222,7,158, - 0,30,0,30,240,60,248,124,127,248,127,248,31,240,7,192, - 5,17,17,11,3,0,248,248,248,248,248,0,0,0,0,0, - 0,0,248,248,248,248,248}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=29 h=32 x= 3 y=20 dx=33 dy= 0 ascent=25 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24r[5214] U8G_FONT_SECTION("u8g_font_helvB24r") = { - 0,40,49,250,244,25,5,252,14,144,32,127,249,25,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08[2687] U8G_FONT_SECTION("u8g_font_helvR08") = { - 0,13,18,254,252,8,1,178,3,111,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,3, - 0,1,1,8,8,3,1,254,128,0,128,128,128,128,128,128, - 5,8,8,6,1,255,16,112,168,160,160,168,112,64,5,8, - 8,6,0,0,48,72,64,224,64,64,72,176,4,6,6,5, - 0,1,144,96,144,144,96,144,5,8,8,6,0,0,136,136, - 136,80,248,32,248,32,1,10,10,3,1,254,128,128,128,128, - 0,0,128,128,128,128,5,10,10,6,0,254,112,136,192,112, - 152,200,112,24,136,112,3,1,1,3,0,7,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,5,5,4,0,3, - 224,32,160,0,224,5,5,5,6,0,0,40,80,160,80,40, - 5,3,3,7,1,2,248,8,8,3,1,1,4,0,3,224, - 7,7,7,9,1,0,56,68,186,178,170,68,56,3,1,1, - 3,0,7,224,4,4,4,4,0,4,96,144,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 4,96,160,64,224,3,4,4,3,0,4,224,64,32,192,2, - 2,2,3,0,7,64,128,4,8,8,5,0,254,144,144,144, - 144,144,240,128,128,6,10,10,6,0,254,124,232,232,232,104, - 40,40,40,40,40,2,1,1,3,0,3,192,2,2,2,3, - 0,254,64,192,2,4,4,3,0,4,64,192,64,64,3,5, - 5,4,0,3,224,160,224,0,224,5,5,5,6,0,0,160, - 80,40,80,160,9,8,16,9,0,0,68,0,196,0,72,0, - 72,0,17,0,19,0,39,128,33,0,8,8,8,9,0,0, - 68,196,72,72,19,21,34,39,9,8,16,9,0,0,224,0, - 68,0,36,0,200,0,9,0,19,0,23,128,33,0,4,8, - 8,6,1,254,32,0,32,32,64,128,144,96,7,11,11,7, - 0,0,32,16,0,16,16,40,40,68,124,130,130,7,11,11, - 7,0,0,8,16,0,16,16,40,40,68,124,130,130,7,11, - 11,7,0,0,16,40,0,16,16,40,40,68,124,130,130,7, - 11,11,7,0,0,20,40,0,16,16,40,40,68,124,130,130, - 7,10,10,7,0,0,40,0,16,16,40,40,68,124,130,130, - 7,11,11,7,0,0,16,40,16,16,16,40,40,68,124,130, - 130,9,8,16,10,0,0,31,128,24,0,40,0,47,128,72, - 0,120,0,136,0,143,128,6,10,10,8,1,254,120,132,128, - 128,128,128,132,120,16,48,5,11,11,7,1,0,64,32,0, - 248,128,128,248,128,128,128,248,5,11,11,7,1,0,16,32, - 0,248,128,128,248,128,128,128,248,5,11,11,7,1,0,32, - 80,0,248,128,128,248,128,128,128,248,5,10,10,7,1,0, - 80,0,248,128,128,248,128,128,128,248,2,11,11,3,0,0, - 128,64,0,64,64,64,64,64,64,64,64,2,11,11,3,1, - 0,64,128,0,128,128,128,128,128,128,128,128,3,11,11,3, - 0,0,64,160,0,64,64,64,64,64,64,64,64,3,10,10, - 3,0,0,160,0,64,64,64,64,64,64,64,64,7,8,8, - 8,0,0,120,68,66,242,66,66,68,120,6,11,11,8,1, - 0,40,80,0,196,196,164,164,148,148,140,140,6,11,11,8, - 1,0,32,16,0,120,132,132,132,132,132,132,120,6,11,11, - 8,1,0,8,16,0,120,132,132,132,132,132,132,120,6,11, - 11,8,1,0,32,80,0,120,132,132,132,132,132,132,120,6, - 11,11,8,1,0,40,80,0,120,132,132,132,132,132,132,120, - 6,10,10,8,1,0,72,0,120,132,132,132,132,132,132,120, - 5,5,5,6,0,1,136,80,32,80,136,6,10,10,8,1, - 255,4,120,140,148,148,164,164,196,120,128,6,11,11,8,1, - 0,32,16,0,132,132,132,132,132,132,132,120,6,11,11,8, - 1,0,8,16,0,132,132,132,132,132,132,132,120,6,11,11, - 8,1,0,32,80,0,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,72,0,132,132,132,132,132,132,132,120,7,11, - 11,7,0,0,8,16,0,130,68,68,40,40,16,16,16,5, - 8,8,7,1,0,128,128,240,136,136,240,128,128,4,8,8, - 5,0,0,96,144,144,160,144,144,144,160,5,9,9,5,0, - 0,64,32,0,224,16,112,144,144,104,5,9,9,5,0,0, - 32,64,0,224,16,112,144,144,104,5,9,9,5,0,0,32, - 80,0,224,16,112,144,144,104,5,9,9,5,0,0,80,160, - 0,224,16,112,144,144,104,5,8,8,5,0,0,80,0,224, - 16,112,144,144,104,5,9,9,5,0,0,32,80,32,224,16, - 112,144,144,104,7,6,6,8,0,0,236,18,126,144,146,108, - 4,8,8,5,0,254,96,144,128,128,144,96,32,96,4,9, - 9,5,0,0,64,32,0,96,144,240,128,144,96,4,9,9, - 5,0,0,32,64,0,96,144,240,128,144,96,4,9,9,5, - 0,0,64,160,0,96,144,240,128,144,96,4,8,8,5,0, - 0,160,0,96,144,240,128,144,96,2,9,9,2,255,0,128, - 64,0,64,64,64,64,64,64,2,9,9,2,0,0,64,128, - 0,128,128,128,128,128,128,3,9,9,2,255,0,64,160,0, - 64,64,64,64,64,64,3,8,8,2,255,0,160,0,64,64, - 64,64,64,64,5,9,9,6,0,0,64,120,144,120,136,136, - 136,136,112,4,9,9,5,0,0,80,160,0,224,144,144,144, - 144,144,5,9,9,6,0,0,64,32,0,112,136,136,136,136, - 112,5,9,9,6,0,0,16,32,0,112,136,136,136,136,112, - 5,9,9,6,0,0,32,80,0,112,136,136,136,136,112,5, - 9,9,6,0,0,40,80,0,112,136,136,136,136,112,5,8, - 8,6,0,0,80,0,112,136,136,136,136,112,5,5,5,6, - 0,1,32,0,248,0,32,7,6,6,6,255,0,58,76,84, - 100,68,184,4,9,9,5,0,0,64,32,0,144,144,144,144, - 144,112,4,9,9,5,0,0,16,32,0,144,144,144,144,144, - 112,4,9,9,5,0,0,64,160,0,144,144,144,144,144,112, - 4,8,8,5,0,0,160,0,144,144,144,144,144,112,5,11, - 11,5,255,254,8,16,0,72,72,80,80,48,32,32,192,5, - 10,10,6,0,254,128,128,176,200,136,136,200,176,128,128,5, - 10,10,5,255,254,80,0,72,72,80,80,48,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 8 - Calculated Max Values w= 5 h= 8 x= 1 y= 5 dx= 6 dy= 0 ascent= 8 len= 8 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08n[226] U8G_FONT_SECTION("u8g_font_helvR08n") = { - 0,13,18,254,252,8,0,0,0,0,42,58,0,8,254,8, - 0,3,3,3,4,0,5,160,64,160,5,5,5,6,0,1, - 32,32,248,32,32,2,3,3,3,0,254,64,64,128,3,1, - 1,4,0,3,224,1,1,1,3,1,0,128,3,8,8,3, - 0,0,32,32,64,64,64,64,128,128,5,8,8,6,0,0, - 112,136,136,136,136,136,136,112,2,8,8,6,1,0,64,192, - 64,64,64,64,64,64,5,8,8,6,0,0,112,136,8,8, - 48,64,128,248,5,8,8,6,0,0,112,136,8,48,8,8, - 136,112,5,8,8,6,0,0,16,48,80,80,144,248,16,16, - 5,8,8,6,0,0,120,64,64,112,8,8,136,112,5,8, - 8,6,0,0,112,136,128,240,136,136,136,112,5,8,8,6, - 0,0,248,8,16,32,32,64,64,64,5,8,8,6,0,0, - 112,136,136,112,136,136,136,112,5,8,8,6,0,0,112,136, - 136,136,120,8,136,112,1,6,6,3,1,0,128,0,0,0, - 0,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08r[1276] U8G_FONT_SECTION("u8g_font_helvR08r") = { - 0,13,18,254,252,8,1,178,3,111,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10[3527] U8G_FONT_SECTION("u8g_font_helvR10") = { - 0,17,22,254,251,11,2,10,4,133,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,4,0,1,1,11,11,4,1,253,128,128,0,128, - 128,128,128,128,128,128,128,6,10,10,8,1,255,4,120,204, - 144,144,160,164,204,120,128,7,11,11,8,0,0,56,68,64, - 64,248,32,32,32,64,98,220,6,6,6,8,1,2,132,120, - 72,72,120,132,7,11,11,7,0,0,130,130,130,68,68,40, - 254,16,254,16,16,1,14,14,3,1,253,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,5,14,14,8,2,253,112, - 216,136,192,112,152,136,136,200,112,24,136,216,112,5,1,1, - 5,0,9,216,10,11,22,12,1,0,30,0,97,128,92,128, - 162,192,162,64,160,64,162,64,156,64,64,128,97,128,30,0, - 4,7,7,6,1,4,224,16,112,144,208,0,240,6,5,5, - 8,1,2,36,72,144,72,36,7,4,4,9,1,2,254,2, - 2,2,3,1,1,4,0,4,224,10,11,22,12,1,0,30, - 0,97,128,92,128,146,64,146,64,156,64,146,64,146,64,64, - 128,97,128,30,0,4,1,1,4,0,9,240,4,4,4,6, - 1,7,96,144,144,96,7,9,9,9,1,0,16,16,16,254, - 16,16,16,0,254,4,6,6,5,0,5,96,144,16,32,64, - 240,4,6,6,5,0,5,96,144,32,16,144,96,2,2,2, - 5,2,9,64,128,6,11,11,8,1,253,132,132,132,132,132, - 132,204,180,128,128,128,7,14,14,8,0,253,62,116,244,244, - 244,116,52,20,20,20,20,20,20,20,2,1,1,4,1,4, - 192,4,3,3,5,0,253,32,144,96,2,6,6,5,1,5, - 64,192,64,64,64,64,4,7,7,6,1,4,96,144,144,144, - 96,0,240,6,5,5,8,1,2,144,72,36,72,144,10,11, - 22,12,1,0,66,0,194,0,68,0,68,0,72,0,72,128, - 9,128,18,128,20,128,39,192,32,128,9,11,22,12,1,0, - 66,0,194,0,68,0,68,0,72,0,75,0,20,128,16,128, - 17,0,34,0,39,128,11,11,22,12,0,0,97,0,145,0, - 34,0,18,0,148,0,100,64,4,192,9,64,10,64,19,224, - 16,64,6,11,11,8,1,253,16,16,0,16,32,64,128,132, - 132,204,48,9,14,28,9,0,0,16,0,8,0,0,0,8, - 0,28,0,20,0,20,0,34,0,34,0,65,0,127,0,65, - 0,128,128,128,128,9,14,28,9,0,0,4,0,8,0,0, - 0,8,0,28,0,20,0,20,0,34,0,34,0,65,0,127, - 0,65,0,128,128,128,128,9,14,28,9,0,0,12,0,18, - 0,0,0,8,0,28,0,20,0,20,0,34,0,34,0,65, - 0,127,0,65,0,128,128,128,128,9,14,28,9,0,0,26, - 0,44,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,13,26,9,0, - 0,54,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,14,28,9,0, - 0,12,0,18,0,18,0,12,0,12,0,20,0,20,0,34, - 0,34,0,65,0,127,0,65,0,128,128,128,128,12,11,22, - 14,1,0,31,240,18,0,18,0,34,0,34,0,35,240,126, - 0,66,0,66,0,130,0,131,240,8,14,14,10,1,253,28, - 99,65,128,128,128,128,128,65,99,28,8,36,24,7,14,14, - 9,1,0,32,16,0,254,128,128,128,128,252,128,128,128,128, - 254,7,14,14,9,1,0,8,16,0,254,128,128,128,128,252, - 128,128,128,128,254,7,14,14,9,1,0,24,36,0,254,128, - 128,128,128,252,128,128,128,128,254,7,13,13,9,1,0,108, - 0,254,128,128,128,128,252,128,128,128,128,254,2,14,14,4, - 1,0,128,64,0,64,64,64,64,64,64,64,64,64,64,64, - 2,14,14,4,2,0,64,128,0,128,128,128,128,128,128,128, - 128,128,128,128,4,14,14,4,1,0,96,144,0,64,64,64, - 64,64,64,64,64,64,64,64,5,13,13,4,0,0,216,0, - 32,32,32,32,32,32,32,32,32,32,32,9,11,22,10,0, - 0,124,0,67,0,65,0,64,128,64,128,240,128,64,128,64, - 128,65,0,67,0,124,0,8,14,14,10,1,0,26,44,0, - 193,161,161,145,145,137,137,133,133,131,131,9,14,28,11,1, - 0,16,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,4,0,8,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,12,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,11,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,13,26,11,1,0,51,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,7,7,7,9,1,1,130,68,40,16,40,68,130, - 11,11,22,11,0,0,14,32,49,192,32,128,65,64,66,64, - 68,64,72,64,80,64,32,128,113,128,142,0,8,14,14,10, - 1,0,16,8,0,129,129,129,129,129,129,129,129,129,66,60, - 8,14,14,10,1,0,4,8,0,129,129,129,129,129,129,129, - 129,129,66,60,8,14,14,10,1,0,24,36,0,129,129,129, - 129,129,129,129,129,129,66,60,8,13,13,10,1,0,102,0, - 129,129,129,129,129,129,129,129,129,66,60,9,14,28,9,0, - 0,4,0,8,0,0,0,128,128,193,128,65,0,34,0,34, - 0,20,0,28,0,8,0,8,0,8,0,8,0,7,11,11, - 9,1,0,128,128,252,134,130,130,134,252,128,128,128,5,11, - 11,7,1,0,112,136,136,136,176,144,136,136,136,136,176,7, - 11,11,8,1,0,32,16,0,120,204,4,124,196,132,204,118, - 7,11,11,8,1,0,16,32,0,120,204,4,124,196,132,204, - 118,7,11,11,8,1,0,48,72,0,120,204,4,124,196,132, - 204,118,7,11,11,8,1,0,52,88,0,120,204,4,124,196, - 132,204,118,7,11,11,8,1,0,72,72,0,120,204,4,124, - 196,132,204,118,7,12,12,8,1,0,48,72,48,0,120,204, - 4,124,196,132,204,118,11,8,16,13,1,0,123,192,198,96, - 4,32,127,224,196,0,132,0,206,96,123,192,6,11,11,8, - 1,253,120,204,128,128,128,132,204,120,16,72,48,6,11,11, - 8,1,0,32,16,0,120,204,132,252,128,128,204,120,6,11, - 11,8,1,0,16,32,0,120,204,132,252,128,128,204,120,6, - 11,11,8,1,0,48,72,0,120,204,132,252,128,128,204,120, - 6,11,11,8,1,0,72,72,0,120,204,132,252,128,128,204, - 120,2,11,11,3,1,0,128,64,0,128,128,128,128,128,128, - 128,128,2,11,11,3,1,0,64,128,0,128,128,128,128,128, - 128,128,128,4,11,11,3,0,0,96,144,0,64,64,64,64, - 64,64,64,64,3,11,11,3,0,0,160,160,0,64,64,64, - 64,64,64,64,64,6,11,11,8,1,0,216,112,144,120,204, - 132,132,132,132,204,120,6,11,11,8,1,0,104,176,0,184, - 204,132,132,132,132,132,132,6,11,11,8,1,0,32,16,0, - 120,204,132,132,132,132,204,120,6,11,11,8,1,0,16,32, - 0,120,204,132,132,132,132,204,120,6,11,11,8,1,0,48, - 72,0,120,204,132,132,132,132,204,120,6,11,11,8,1,0, - 104,176,0,120,204,132,132,132,132,204,120,6,11,11,8,1, - 0,72,72,0,120,204,132,132,132,132,204,120,7,7,7,9, - 1,1,16,16,0,254,0,16,16,8,8,8,8,0,0,61, - 98,70,74,82,98,70,188,6,11,11,8,1,0,32,16,0, - 132,132,132,132,132,132,204,116,6,11,11,8,1,0,16,32, - 0,132,132,132,132,132,132,204,116,6,11,11,8,1,0,48, - 72,0,132,132,132,132,132,132,204,116,6,11,11,8,1,0, - 72,72,0,132,132,132,132,132,132,204,116,7,14,14,7,0, - 253,8,16,0,130,194,68,68,36,40,24,16,16,48,96,6, - 14,14,8,1,253,128,128,128,184,204,132,132,132,132,204,184, - 128,128,128,7,14,14,7,0,253,36,36,0,130,194,68,68, - 36,40,24,16,16,48,96}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 7 h=11 x= 2 y= 6 dx= 9 dy= 0 ascent=11 len=11 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10n[267] U8G_FONT_SECTION("u8g_font_helvR10n") = { - 0,17,22,254,251,11,0,0,0,0,42,58,0,11,254,11, - 0,5,5,5,7,1,6,32,168,112,168,32,7,7,7,9, - 1,1,16,16,16,254,16,16,16,2,4,4,3,0,254,64, - 64,64,128,3,1,1,4,0,4,224,1,2,2,3,1,0, - 128,128,4,11,11,4,0,0,16,16,32,32,32,64,64,64, - 128,128,128,6,11,11,8,1,0,120,132,132,132,132,132,132, - 132,132,132,120,3,11,11,8,2,0,32,224,32,32,32,32, - 32,32,32,32,32,6,11,11,8,1,0,120,132,132,4,8, - 16,32,64,128,128,252,6,11,11,8,1,0,120,132,132,4, - 4,56,4,4,132,132,120,7,11,11,8,1,0,4,12,20, - 36,68,132,132,254,4,4,4,6,11,11,8,1,0,252,128, - 128,128,248,4,4,4,132,132,120,6,11,11,8,1,0,120, - 132,128,128,184,196,132,132,132,132,120,6,11,11,8,1,0, - 252,4,8,8,16,16,32,32,64,64,64,6,11,11,8,1, - 0,120,132,132,132,132,120,132,132,132,132,120,6,11,11,8, - 1,0,120,132,132,132,132,124,4,4,132,132,120,1,8,8, - 3,1,0,128,128,0,0,0,0,128,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=13 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10r[1648] U8G_FONT_SECTION("u8g_font_helvR10r") = { - 0,17,22,254,251,11,2,10,4,133,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255 - }; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 3 y=10 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12[4077] U8G_FONT_SECTION("u8g_font_helvR12") = { - 0,20,26,254,250,12,2,91,5,99,32,255,252,16,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,1,1,12,12,6,2,253,128, - 128,0,128,128,128,128,128,128,128,128,128,7,13,13,9,1, - 254,4,4,56,76,138,144,144,144,162,100,56,64,64,8,12, - 12,9,0,0,14,17,33,32,32,16,126,8,16,32,121,134, - 8,7,7,9,0,3,189,102,66,66,66,102,189,9,12,24, - 9,0,0,128,128,65,0,65,0,34,0,34,0,20,0,127, - 0,8,0,127,0,8,0,8,0,8,0,1,16,16,4,1, - 252,128,128,128,128,128,128,0,0,0,0,128,128,128,128,128, - 128,7,15,15,9,1,253,56,68,70,96,152,140,134,194,98, - 50,28,4,196,68,56,3,2,2,5,1,10,160,160,12,12, - 24,12,0,0,15,0,48,192,71,32,72,160,144,16,144,16, - 144,16,144,16,72,160,71,32,48,192,15,0,5,7,7,6, - 1,5,96,144,112,144,120,0,248,6,6,6,9,1,2,36, - 72,144,144,72,36,8,5,5,10,0,1,255,1,1,1,1, - 4,1,1,5,0,4,240,12,12,24,12,0,0,15,0,48, - 192,64,32,79,32,136,144,136,144,143,16,138,16,73,32,72, - 160,48,192,15,0,5,1,1,6,0,10,248,5,5,5,7, - 1,7,112,136,136,136,112,9,11,22,10,0,0,8,0,8, - 0,8,0,8,0,255,128,8,0,8,0,8,0,8,0,0, - 0,255,128,5,7,7,6,0,5,112,136,136,16,96,128,248, - 5,7,7,6,0,5,112,136,8,48,8,136,112,3,3,3, - 6,1,10,32,96,128,7,13,13,9,1,252,130,130,130,130, - 130,130,130,134,250,128,128,128,128,7,15,15,9,1,253,62, - 116,244,244,244,244,116,52,20,20,20,20,20,20,20,1,2, - 2,5,2,4,128,128,4,4,4,6,0,252,32,32,144,96, - 3,7,7,6,0,5,32,224,32,32,32,32,32,4,7,7, - 6,1,5,96,144,144,144,96,0,240,6,6,6,9,1,2, - 144,72,36,36,72,144,12,12,24,14,0,0,32,64,224,128, - 32,128,33,0,34,0,34,32,36,96,4,160,9,32,17,240, - 16,32,32,32,12,13,26,14,0,0,0,64,32,128,224,128, - 33,0,34,0,34,0,36,224,37,16,9,16,8,32,16,192, - 33,0,33,240,13,12,24,14,0,0,112,64,136,64,8,128, - 48,128,9,0,137,16,114,48,2,80,4,144,4,248,8,16, - 8,16,7,12,12,10,1,253,16,16,0,16,16,32,64,128, - 130,130,68,56,10,16,32,11,0,0,16,0,24,0,4,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,12,0,12,0,18,0,18,0, - 18,0,33,0,33,0,127,128,64,128,64,128,128,64,128,64, - 10,16,32,11,0,0,4,0,14,0,17,0,0,0,12,0, - 12,0,18,0,18,0,18,0,33,0,33,0,127,128,64,128, - 64,128,128,64,128,64,10,15,30,11,0,0,26,0,44,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,15,30,11,0,0, - 18,0,18,0,0,0,12,0,12,0,18,0,18,0,18,0, - 33,0,33,0,127,128,64,128,64,128,128,64,128,64,10,15, - 30,11,0,0,12,0,18,0,18,0,12,0,12,0,18,0, - 18,0,18,0,33,0,33,0,127,128,64,128,64,128,128,64, - 128,64,14,12,24,16,0,0,7,252,9,0,9,0,17,0, - 17,0,33,252,33,0,127,0,65,0,65,0,129,0,129,252, - 10,16,32,12,1,252,15,0,48,128,64,64,64,0,128,0, - 128,0,128,0,128,0,64,0,64,64,48,128,15,0,4,0, - 4,0,18,0,12,0,8,16,16,11,1,0,32,48,8,0, - 255,128,128,128,128,255,128,128,128,128,128,255,8,16,16,11, - 1,0,4,12,16,0,255,128,128,128,128,255,128,128,128,128, - 128,255,8,16,16,11,1,0,16,56,68,0,255,128,128,128, - 128,255,128,128,128,128,128,255,8,15,15,11,1,0,36,36, - 0,255,128,128,128,128,255,128,128,128,128,128,255,3,16,16, - 4,0,0,128,192,32,0,64,64,64,64,64,64,64,64,64, - 64,64,64,3,16,16,4,0,0,32,96,128,0,64,64,64, - 64,64,64,64,64,64,64,64,64,5,16,16,4,255,0,32, - 112,136,0,32,32,32,32,32,32,32,32,32,32,32,32,3, - 15,15,4,0,0,160,160,0,64,64,64,64,64,64,64,64, - 64,64,64,64,12,12,24,12,0,0,63,0,32,192,32,32, - 32,32,32,16,248,16,32,16,32,16,32,32,32,32,32,192, - 63,0,9,15,30,12,1,0,26,0,44,0,0,0,128,128, - 192,128,160,128,160,128,144,128,136,128,136,128,132,128,130,128, - 130,128,129,128,128,128,11,16,32,13,1,0,8,0,12,0, - 2,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,16,32,13, - 1,0,1,0,3,0,4,0,0,0,14,0,49,128,64,64, - 64,64,128,32,128,32,128,32,128,32,64,64,64,64,49,128, - 14,0,11,16,32,13,1,0,4,0,14,0,17,0,0,0, - 14,0,49,128,64,64,64,64,128,32,128,32,128,32,128,32, - 64,64,64,64,49,128,14,0,11,15,30,13,1,0,13,0, - 22,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,15,30,13, - 1,0,17,0,17,0,0,0,14,0,49,128,64,64,64,64, - 128,32,128,32,128,32,128,32,64,64,64,64,49,128,14,0, - 8,8,8,10,1,0,129,66,36,24,24,36,66,129,11,14, - 28,13,1,255,0,64,14,128,49,128,65,64,66,64,130,32, - 132,32,132,32,136,32,72,64,80,64,49,128,46,0,64,0, - 9,16,32,12,1,0,32,0,48,0,8,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,12,1,0,2,0,6,0, - 8,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,65,0,62,0,9,16,32,12, - 1,0,8,0,28,0,34,0,0,0,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 62,0,9,15,30,12,1,0,34,0,34,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,11,1,0,2,0,6,0, - 8,0,0,0,128,128,65,0,65,0,34,0,34,0,20,0, - 28,0,8,0,8,0,8,0,8,0,8,0,8,12,12,11, - 2,0,128,128,252,130,129,129,130,252,128,128,128,128,7,12, - 12,10,2,0,120,132,130,130,132,188,134,130,130,130,132,184, - 8,13,13,9,1,0,32,48,8,0,124,130,2,6,122,130, - 130,134,123,8,13,13,9,1,0,4,12,16,0,124,130,2, - 6,122,130,130,134,123,8,13,13,9,1,0,16,56,68,0, - 124,130,2,6,122,130,130,134,123,8,12,12,9,1,0,52, - 88,0,124,130,2,6,122,130,130,134,123,8,12,12,9,1, - 0,40,40,0,124,130,2,6,122,130,130,134,123,8,13,13, - 9,1,0,16,40,16,0,124,130,2,6,122,130,130,134,123, - 13,9,18,15,1,0,124,224,131,16,2,8,6,8,123,248, - 130,0,130,8,135,16,120,224,7,13,13,8,1,252,56,68, - 130,128,128,128,130,68,56,16,16,72,48,7,13,13,9,1, - 0,64,96,16,0,56,68,130,130,254,128,130,68,56,7,13, - 13,9,1,0,8,24,32,0,56,68,130,130,254,128,130,68, - 56,7,13,13,9,1,0,16,56,68,0,56,68,130,130,254, - 128,130,68,56,7,12,12,9,1,0,40,40,0,56,68,130, - 130,254,128,130,68,56,3,13,13,4,1,0,128,192,32,0, - 64,64,64,64,64,64,64,64,64,3,13,13,4,1,0,32, - 96,128,0,64,64,64,64,64,64,64,64,64,5,13,13,4, - 0,0,32,112,136,0,32,32,32,32,32,32,32,32,32,3, - 12,12,4,1,0,160,160,0,64,64,64,64,64,64,64,64, - 64,7,12,12,9,1,0,72,48,88,60,68,130,130,130,130, - 130,68,56,7,12,12,9,1,0,52,88,0,188,194,130,130, - 130,130,130,130,130,7,13,13,9,1,0,32,48,8,0,56, - 68,130,130,130,130,130,68,56,7,13,13,9,1,0,8,24, - 32,0,56,68,130,130,130,130,130,68,56,7,13,13,9,1, - 0,16,56,68,0,56,68,130,130,130,130,130,68,56,7,12, - 12,9,1,0,52,88,0,56,68,130,130,130,130,130,68,56, - 7,12,12,9,1,0,40,40,0,56,68,130,130,130,130,130, - 68,56,7,9,9,10,1,0,16,16,0,0,254,0,0,16, - 16,7,10,10,10,1,0,2,60,68,138,146,146,162,162,68, - 184,7,13,13,9,1,0,32,48,8,0,130,130,130,130,130, - 130,130,134,122,7,13,13,9,1,0,4,12,16,0,130,130, - 130,130,130,130,130,134,122,7,13,13,9,1,0,16,56,68, - 0,130,130,130,130,130,130,130,134,122,7,12,12,9,1,0, - 40,40,0,130,130,130,130,130,130,130,134,122,7,16,16,8, - 0,253,8,24,32,0,130,130,68,68,40,40,56,16,16,32, - 32,192,7,16,16,9,1,252,128,128,128,184,196,130,130,130, - 130,130,196,184,128,128,128,128,7,15,15,8,0,253,40,40, - 0,130,130,68,68,40,40,56,16,16,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=12 x= 3 y= 7 dx=10 dy= 0 ascent=12 len=18 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12n[290] U8G_FONT_SECTION("u8g_font_helvR12n") = { - 0,20,26,254,250,12,0,0,0,0,42,58,0,12,254,12, - 0,5,5,5,6,0,7,32,168,112,80,136,9,9,18,10, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,64,64,64,128,4,1, - 1,5,0,4,240,1,2,2,4,2,0,128,128,4,12,12, - 5,0,0,16,16,32,32,32,32,64,64,64,128,128,128,7, - 12,12,9,1,0,56,68,68,130,130,130,130,130,130,68,68, - 56,3,12,12,9,3,0,32,32,96,160,32,32,32,32,32, - 32,32,32,7,12,12,9,1,0,56,68,130,130,2,4,8, - 48,64,128,128,254,7,12,12,9,1,0,56,68,130,130,4, - 56,4,2,130,130,68,56,8,12,12,9,0,0,12,20,20, - 36,36,68,68,132,255,4,4,4,7,12,12,9,1,0,62, - 32,32,64,120,68,2,2,2,130,68,56,7,12,12,9,1, - 0,60,66,130,128,184,196,130,130,130,130,68,56,8,12,12, - 9,0,0,255,1,2,4,4,8,8,16,16,16,32,32,7, - 12,12,9,1,0,56,68,130,130,68,56,68,130,130,130,68, - 56,7,12,12,9,1,0,56,68,130,130,130,130,70,58,2, - 130,132,120,1,9,9,4,2,0,128,128,0,0,0,0,0, - 128,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=13 h=16 x= 3 y=10 dx=17 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12r[1907] U8G_FONT_SECTION("u8g_font_helvR12r") = { - 0,20,26,254,250,12,2,91,5,99,32,127,252,13,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=18 len=36 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14[4920] U8G_FONT_SECTION("u8g_font_helvR14") = { - 0,22,29,254,249,14,2,149,6,82,32,255,252,18,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,5,0,1,2, - 14,14,6,2,252,192,192,0,0,64,64,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,4,4,62,127,107,200,200, - 200,200,107,127,62,16,16,9,13,26,10,0,0,30,0,63, - 0,97,128,97,128,96,0,48,0,126,0,24,0,24,0,48, - 0,96,128,255,128,223,0,8,7,7,10,1,3,195,255,102, - 102,102,255,195,8,13,13,10,1,0,195,195,102,102,102,60, - 255,24,255,24,24,24,24,2,18,18,5,1,252,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,8, - 18,18,10,1,252,60,126,195,195,240,124,110,199,195,227,115, - 62,14,7,195,195,126,60,5,2,2,6,0,12,216,216,13, - 14,28,15,1,0,15,128,48,96,64,16,71,16,136,136,144, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,7,1,6,112,152,56,72,216,104,0,248,7, - 6,6,9,1,2,54,108,216,216,108,54,9,5,10,11,1, - 3,255,128,255,128,1,128,1,128,1,128,5,1,1,6,0, - 5,248,13,14,28,14,0,0,15,128,48,96,64,16,79,144, - 136,72,136,72,136,72,143,136,137,8,136,136,72,80,64,16, - 48,96,15,128,5,1,1,5,0,12,248,5,5,5,7,1, - 8,112,216,136,216,112,8,11,11,10,1,0,24,24,24,255, - 255,24,24,24,0,255,255,5,8,8,6,0,5,112,248,152, - 24,48,96,248,248,5,8,8,6,0,5,112,248,152,48,48, - 152,248,112,4,3,3,4,0,11,48,96,192,8,14,14,10, - 1,252,195,195,195,195,195,195,195,231,255,219,192,192,192,192, - 8,18,18,10,1,252,63,114,242,242,242,242,242,114,50,18, - 18,18,18,18,18,18,18,18,2,2,2,4,1,4,192,192, - 5,5,5,5,0,252,96,112,24,216,240,4,8,8,6,0, - 5,48,240,240,48,48,48,48,48,5,8,8,7,1,6,112, - 216,136,136,216,112,0,248,7,6,6,9,1,2,216,108,54, - 54,108,216,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,136,49,24,51,56,6,120,6,216,12,252,24, - 24,24,24,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,184,49,124,51,76,6,12,6,24,12,48,24, - 124,24,124,14,13,26,15,0,0,112,48,248,48,152,96,48, - 192,48,192,153,136,249,24,115,56,6,120,6,216,12,252,24, - 24,24,24,7,14,14,10,1,252,24,24,0,0,24,24,24, - 56,112,224,198,198,254,124,12,18,36,13,0,0,24,0,12, - 0,6,0,0,0,6,0,6,0,15,0,15,0,25,128,25, - 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, - 48,12,18,36,13,0,0,1,128,3,0,6,0,0,0,6, - 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, - 192,127,224,96,96,96,96,192,48,192,48,12,18,36,13,0, - 0,6,0,15,0,25,128,0,0,6,0,6,0,15,0,15, - 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, - 96,192,48,192,48,12,18,36,13,0,0,12,128,22,128,19, - 0,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, - 17,34,13,0,0,25,128,25,128,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,12,17,34,13,0,0,6,0,9, - 0,9,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,16, - 14,28,18,1,0,7,255,7,255,13,128,13,128,25,128,25, - 128,49,254,49,254,63,128,127,128,97,128,97,128,193,255,193, - 255,12,18,36,14,1,252,15,128,63,224,112,112,96,48,224, - 0,192,0,192,0,192,0,192,0,224,0,96,48,112,112,63, - 224,15,128,6,0,3,0,27,0,30,0,10,18,36,13,2, - 0,48,0,24,0,12,0,0,0,255,192,255,192,192,0,192, - 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,192,255,192,10,18,36,13,2,0,3,0,6,0,12, - 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, - 18,36,13,2,0,12,0,30,0,51,0,0,0,255,192,255, - 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, - 0,192,0,192,0,255,192,255,192,10,17,34,13,2,0,51, - 0,51,0,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,128,255,128,192,0,192,0,192,0,192,0,255,192,255, - 192,4,18,18,6,0,0,192,96,48,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,4,18,18,6,2,0,48, - 96,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,6,18,18,6,0,0,48,120,132,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,6,17,17,6,0,0,204, - 204,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 14,14,28,14,255,0,63,224,63,240,48,56,48,24,48,12, - 48,12,254,12,254,12,48,12,48,12,48,24,48,56,63,240, - 63,224,11,18,36,14,1,0,12,128,22,128,19,0,0,0, - 192,96,224,96,240,96,240,96,216,96,204,96,204,96,198,96, - 198,96,195,96,193,224,193,224,192,224,192,96,13,18,36,15, - 1,0,24,0,12,0,6,0,0,0,15,128,63,224,112,112, - 96,48,224,56,192,24,192,24,192,24,192,24,224,56,96,48, - 112,112,63,224,15,128,13,18,36,15,1,0,1,128,3,0, - 6,0,0,0,15,128,63,224,112,112,96,48,224,56,192,24, - 192,24,192,24,192,24,224,56,96,48,112,112,63,224,15,128, - 13,18,36,15,1,0,3,0,7,128,12,192,0,0,15,128, - 63,224,112,112,96,48,224,56,192,24,192,24,192,24,192,24, - 224,56,96,48,112,112,63,224,15,128,13,18,36,15,1,0, - 6,64,11,64,9,128,0,0,15,128,63,224,112,112,96,48, - 224,56,192,24,192,24,192,24,192,24,224,56,96,48,112,112, - 63,224,15,128,13,17,34,15,1,0,12,192,12,192,0,0, - 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, - 192,24,224,56,96,48,112,112,63,224,15,128,10,9,18,10, - 0,0,192,192,97,128,51,0,30,0,12,0,30,0,51,0, - 97,128,192,192,14,14,28,15,0,0,7,204,31,248,56,48, - 48,120,112,220,97,140,99,12,98,12,102,12,108,28,56,24, - 56,56,111,240,199,192,11,18,36,14,1,0,24,0,12,0, - 6,0,0,0,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,96,192,127,192,31,0, - 11,18,36,14,1,0,3,0,6,0,12,0,0,0,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,14,1,0, - 6,0,15,0,25,128,0,0,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,96,192, - 127,192,31,0,11,17,34,14,1,0,49,128,49,128,0,0, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,96,192,127,192,31,0,12,18,36,13, - 0,0,1,128,3,0,6,0,0,0,192,48,192,48,96,96, - 96,96,48,192,57,192,25,128,15,0,6,0,6,0,6,0, - 6,0,6,0,6,0,10,14,28,12,1,0,192,0,192,0, - 192,0,255,0,255,128,193,192,192,192,192,192,193,192,255,128, - 255,0,192,0,192,0,192,0,7,14,14,9,1,0,56,124, - 198,198,198,198,220,220,198,198,198,198,222,220,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,126,0,231,0,195,0, - 7,0,127,0,227,0,195,0,195,0,231,128,121,128,9,14, - 28,11,1,0,12,0,24,0,48,0,0,0,126,0,231,0, - 195,0,7,0,127,0,227,0,195,0,195,0,231,128,121,128, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,126,0, - 231,0,195,0,7,0,127,0,227,0,195,0,195,0,231,128, - 121,128,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 126,0,231,0,195,0,7,0,127,0,227,0,195,0,195,0, - 231,128,121,128,9,14,28,11,1,0,102,0,102,0,0,0, - 0,0,126,0,231,0,195,0,7,0,127,0,227,0,195,0, - 195,0,231,128,121,128,9,14,28,11,1,0,24,0,36,0, - 36,0,24,0,126,0,231,0,195,0,7,0,127,0,227,0, - 195,0,195,0,231,128,121,128,14,10,20,17,2,0,126,240, - 231,248,195,12,7,12,127,252,227,0,195,0,195,140,231,252, - 122,240,8,14,14,10,1,252,62,127,99,192,192,192,192,99, - 127,62,24,12,108,120,8,14,14,10,1,0,48,24,12,0, - 60,126,195,195,255,192,192,227,127,60,8,14,14,10,1,0, - 12,24,48,0,60,126,195,195,255,192,192,227,127,60,8,14, - 14,10,1,0,24,60,102,0,60,126,195,195,255,192,192,227, - 127,60,8,14,14,10,1,0,102,102,0,0,60,126,195,195, - 255,192,192,227,127,60,4,14,14,4,0,0,192,96,48,0, - 96,96,96,96,96,96,96,96,96,96,4,14,14,4,0,0, - 48,96,192,0,96,96,96,96,96,96,96,96,96,96,6,14, - 14,4,255,0,48,120,204,0,48,48,48,48,48,48,48,48, - 48,48,5,14,14,4,0,0,216,216,0,0,96,96,96,96, - 96,96,96,96,96,96,9,14,28,11,1,0,96,0,54,0, - 56,0,76,0,62,0,127,0,99,0,193,128,193,128,193,128, - 193,128,99,0,127,0,62,0,8,14,14,10,1,0,50,90, - 76,0,222,255,227,195,195,195,195,195,195,195,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,62,0,127,0,99,0, - 193,128,193,128,193,128,193,128,99,0,127,0,62,0,9,14, - 28,11,1,0,6,0,12,0,24,0,0,0,62,0,127,0, - 99,0,193,128,193,128,193,128,193,128,99,0,127,0,62,0, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 62,0,127,0,99,0,193,128,193,128,193,128,193,128,99,0, - 127,0,62,0,9,14,28,11,1,0,51,0,51,0,0,0, - 0,0,62,0,127,0,99,0,193,128,193,128,193,128,193,128, - 99,0,127,0,62,0,8,8,8,10,1,1,24,24,0,255, - 255,0,24,24,11,10,20,11,0,0,14,96,63,192,49,128, - 99,192,102,192,108,192,120,192,49,128,127,128,206,0,8,14, - 14,10,1,0,48,24,12,0,195,195,195,195,195,195,195,199, - 255,123,8,14,14,10,1,0,6,12,24,0,195,195,195,195, - 195,195,195,199,255,123,8,14,14,10,1,0,24,60,102,0, - 195,195,195,195,195,195,195,199,255,123,8,14,14,10,1,0, - 102,102,0,0,195,195,195,195,195,195,195,199,255,123,8,18, - 18,10,1,252,6,12,24,0,195,195,195,102,102,102,36,60, - 24,24,24,24,112,112,9,18,36,11,1,252,192,0,192,0, - 192,0,192,0,222,0,255,0,227,0,193,128,193,128,193,128, - 193,128,227,0,255,0,222,0,192,0,192,0,192,0,192,0, - 8,18,18,10,1,252,102,102,0,0,195,195,195,102,102,102, - 36,60,24,24,24,24,112,112}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 13 - Calculated Max Values w= 9 h=14 x= 2 y= 7 dx=10 dy= 0 ascent=14 len=26 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =13 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14n[311] U8G_FONT_SECTION("u8g_font_helvR14n") = { - 0,22,29,254,249,13,0,0,0,0,42,58,0,14,253,13, - 0,5,7,7,7,1,7,32,168,248,32,248,168,32,8,10, - 10,10,1,0,24,24,24,24,255,255,24,24,24,24,2,5, - 5,5,1,253,192,192,64,64,128,5,1,1,6,0,5,248, - 2,2,2,5,1,0,192,192,5,14,14,5,0,0,24,24, - 24,24,48,48,48,96,96,96,192,192,192,192,8,13,13,10, - 1,0,60,126,102,195,195,195,195,195,195,195,102,126,60,5, - 13,13,10,2,0,24,248,248,24,24,24,24,24,24,24,24, - 24,24,8,13,13,10,1,0,60,254,195,3,7,14,28,56, - 112,224,192,255,255,8,13,13,10,1,0,62,127,195,195,6, - 28,30,7,3,195,199,126,60,9,13,26,10,0,0,3,0, - 7,0,15,0,27,0,51,0,51,0,99,0,195,0,255,128, - 255,128,3,0,3,0,3,0,8,13,13,10,1,0,254,254, - 192,192,252,254,199,3,3,195,199,254,124,8,13,13,10,1, - 0,60,127,99,192,192,220,254,195,195,195,227,126,60,8,13, - 13,10,1,0,255,255,3,6,12,12,24,24,48,48,96,96, - 96,8,13,13,10,1,0,60,126,231,195,195,102,126,231,195, - 195,231,126,60,8,13,13,10,1,0,60,126,199,195,195,195, - 127,59,3,3,198,254,124,2,10,10,5,1,0,192,192,0, - 0,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14r[2281] U8G_FONT_SECTION("u8g_font_helvR14r") = { - 0,22,29,254,249,14,2,149,6,82,32,127,252,14,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18[7307] U8G_FONT_SECTION("u8g_font_helvR18") = { - 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, - 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, - 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, - 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, - 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, - 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, - 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, - 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, - 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, - 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, - 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, - 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, - 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, - 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, - 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, - 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, - 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, - 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, - 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, - 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, - 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, - 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, - 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, - 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, - 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, - 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, - 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, - 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, - 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, - 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, - 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, - 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, - 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, - 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, - 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, - 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, - 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, - 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, - 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, - 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, - 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, - 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, - 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, - 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, - 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, - 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, - 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, - 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, - 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, - 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, - 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, - 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, - 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, - 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, - 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, - 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, - 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, - 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, - 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, - 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, - 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, - 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, - 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, - 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, - 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, - 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, - 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, - 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, - 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, - 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, - 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, - 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, - 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, - 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, - 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, - 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, - 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, - 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, - 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, - 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, - 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, - 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, - 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, - 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, - 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, - 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, - 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, - 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, - 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, - 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, - 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, - 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, - 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, - 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, - 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, - 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, - 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, - 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, - 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, - 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, - 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, - 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, - 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, - 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, - 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, - 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, - 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, - 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, - 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, - 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, - 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, - 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, - 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, - 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, - 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, - 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, - 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, - 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, - 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, - 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, - 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, - 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, - 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, - 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, - 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, - 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, - 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, - 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, - 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, - 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, - 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, - 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, - 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, - 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, - 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, - 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, - 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, - 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, - 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, - 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, - 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, - 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, - 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, - 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, - 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, - 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, - 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, - 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, - 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, - 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, - 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, - 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, - 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, - 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, - 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, - 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, - 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, - 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, - 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, - 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, - 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, - 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, - 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, - 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, - 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, - 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, - 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, - 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, - 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, - 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, - 0,6,0,6,0,12,0,60,0,56,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=12 h=19 x= 2 y=12 dx=14 dy= 0 ascent=19 len=36 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =19 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18n[536] U8G_FONT_SECTION("u8g_font_helvR18n") = { - 0,28,37,253,248,18,0,0,0,0,42,58,0,19,253,18, - 0,7,7,7,10,1,12,16,16,214,124,56,108,68,12,12, - 24,14,1,1,6,0,6,0,6,0,6,0,6,0,255,240, - 255,240,6,0,6,0,6,0,6,0,6,0,2,6,6,6, - 2,253,192,192,192,64,64,128,6,2,2,8,1,6,252,252, - 2,3,3,6,2,0,192,192,192,7,19,19,7,0,0,6, - 4,12,12,8,24,24,16,16,48,48,32,96,96,64,192,192, - 128,128,11,18,36,13,1,0,31,0,63,128,113,192,96,192, - 96,192,224,224,192,96,192,96,192,96,192,96,192,96,192,96, - 224,224,96,192,96,192,113,192,63,128,31,0,6,18,18,13, - 2,0,12,12,28,252,252,12,12,12,12,12,12,12,12,12, - 12,12,12,12,11,18,36,13,1,0,30,0,127,128,97,192, - 192,192,192,96,192,96,0,224,0,192,1,192,3,128,15,0, - 28,0,56,0,112,0,224,0,192,0,255,224,255,224,11,18, - 36,13,1,0,31,0,127,128,97,128,192,192,192,192,192,192, - 0,192,1,128,15,0,15,192,0,192,0,96,0,96,192,96, - 192,192,97,192,127,128,31,0,11,18,36,13,1,0,1,128, - 3,128,3,128,7,128,15,128,13,128,25,128,57,128,49,128, - 97,128,225,128,193,128,255,224,255,224,1,128,1,128,1,128, - 1,128,11,18,36,13,1,0,127,192,127,192,96,0,96,0, - 96,0,96,0,126,0,127,128,113,192,0,192,0,224,0,96, - 0,96,192,224,192,192,225,192,127,128,30,0,11,18,36,13, - 1,0,15,0,63,192,112,192,96,96,224,96,192,0,192,0, - 207,0,223,128,241,192,224,192,192,96,192,96,192,96,224,224, - 113,192,127,192,31,0,11,18,36,13,1,0,255,224,255,224, - 0,224,0,192,1,128,1,128,3,0,3,0,6,0,6,0, - 12,0,12,0,28,0,24,0,24,0,56,0,48,0,48,0, - 11,18,36,13,1,0,14,0,63,128,49,128,96,192,96,192, - 96,192,49,128,31,0,63,128,113,192,96,192,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,13,1,0, - 31,0,127,192,113,192,224,192,192,96,192,96,192,96,192,96, - 224,224,113,224,127,96,30,96,0,96,0,224,192,192,225,192, - 127,128,30,0,2,14,14,6,2,0,192,192,192,0,0,0, - 0,0,0,0,0,192,192,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=25 dy= 0 ascent=20 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18r[3381] U8G_FONT_SECTION("u8g_font_helvR18r") = { - 0,28,37,253,248,19,4,37,9,49,32,127,251,20,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=22 dx=34 dy= 0 ascent=31 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24[10931] U8G_FONT_SECTION("u8g_font_helvR24") = { - 0,39,48,251,245,25,5,215,14,105,32,255,249,31,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,1,3,25,25,11,4,249,224,224,224,224, - 0,0,64,64,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,14,25,50,19,2,252,0,32,0,96,0, - 64,7,224,31,240,60,248,120,188,112,156,112,156,225,128,225, - 0,225,0,227,0,227,0,226,12,226,28,118,28,124,60,60, - 120,31,240,15,224,8,0,24,0,16,0,16,0,15,24,48, - 19,1,0,3,192,15,248,31,252,60,60,120,30,112,14,112, - 14,112,0,112,0,56,0,56,0,255,192,255,192,12,0,14, - 0,14,0,12,0,28,0,24,0,56,0,115,134,255,254,255, - 254,96,124,12,13,26,18,3,5,230,48,255,240,127,240,112, - 224,96,96,224,112,224,112,224,112,96,96,112,224,127,240,255, - 240,230,48,16,24,48,18,1,0,224,7,224,7,112,14,112, - 14,56,28,56,28,28,56,28,56,14,112,14,112,7,224,127, - 254,127,254,127,254,1,192,1,192,127,254,127,254,127,254,1, - 192,1,192,1,192,1,192,1,192,2,32,32,9,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,15, - 32,64,18,1,249,3,192,15,240,31,248,28,120,56,60,56, - 28,56,28,60,0,30,0,31,128,63,224,113,240,224,248,224, - 124,224,28,224,30,112,14,124,14,62,14,31,28,15,156,3, - 248,1,240,0,240,0,120,112,56,112,56,120,56,56,112,63, - 240,31,224,7,128,8,3,3,11,1,22,231,231,231,24,25, - 75,25,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,24,48,126,12,96,255,134,97,193,198,195,128,195,195, - 0,3,199,0,3,134,0,1,134,0,1,134,0,1,134,0, - 1,199,0,3,195,128,195,97,225,198,96,255,134,48,62,12, - 24,0,24,28,0,56,7,1,224,3,255,128,0,254,0,10, - 15,30,12,1,10,63,0,119,128,97,128,1,128,7,128,127, - 128,225,128,193,128,195,128,231,128,125,192,0,0,0,0,255, - 192,255,192,12,9,18,18,3,5,28,112,56,224,113,192,227, - 128,195,0,227,128,113,192,56,224,28,112,16,9,18,19,1, - 3,255,255,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,8,2,2,11,1,8,255,255,24,25,75,25,0, - 0,0,126,0,3,255,128,7,1,224,12,0,112,24,0,24, - 48,0,12,97,255,6,97,255,134,193,129,195,193,128,195,193, - 128,195,129,129,129,129,255,1,129,252,1,129,142,1,193,134, - 3,193,131,3,97,129,134,97,129,198,48,0,12,24,0,24, - 28,0,56,7,1,224,3,255,128,0,126,0,9,2,4,11, - 1,22,255,128,255,128,9,9,18,13,2,15,62,0,127,0, - 227,128,193,128,193,128,193,128,227,128,127,0,62,0,17,21, - 63,19,1,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,255,255,128,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,0,0,0,0,0,0,255,255,128,255,255,128, - 255,255,128,9,15,30,11,1,9,30,0,127,0,99,0,193, - 128,193,128,1,128,3,0,7,0,30,0,56,0,112,0,224, - 0,192,0,255,128,255,128,9,15,30,11,1,9,62,0,127, - 0,227,128,193,128,193,128,3,128,15,0,15,0,3,128,1, - 128,193,128,193,128,227,128,127,0,62,0,7,5,5,11,3, - 22,30,60,56,112,224,14,24,48,19,2,250,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,240,124,255,252,255,220,255,28, - 224,0,224,0,224,0,224,0,224,0,224,0,16,30,60,17, - 1,251,7,255,31,255,63,140,63,140,127,140,127,140,255,140, - 255,140,255,140,255,140,127,140,127,140,63,140,63,140,31,140, - 3,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, - 1,140,1,140,1,140,1,140,1,140,1,140,1,140,4,4, - 4,9,3,11,96,240,240,96,7,7,7,11,2,249,24,24, - 60,14,6,206,124,5,15,15,11,2,9,24,56,248,248,24, - 24,24,24,24,24,24,24,24,24,24,10,15,30,12,1,10, - 30,0,127,128,97,128,225,192,192,192,192,192,192,192,192,192, - 225,192,97,128,127,128,30,0,0,0,255,192,255,192,12,9, - 18,18,3,5,227,128,113,192,56,224,28,112,12,48,28,112, - 56,224,113,192,227,128,25,25,100,28,1,0,0,0,48,0, - 24,0,112,0,56,0,96,0,248,0,224,0,248,1,192,0, - 24,1,128,0,24,3,128,0,24,3,0,0,24,7,0,0, - 24,14,0,0,24,12,0,0,24,28,6,0,24,24,14,0, - 24,56,30,0,24,112,62,0,24,96,118,0,0,224,102,0, - 1,192,198,0,1,129,198,0,3,131,134,0,3,3,255,128, - 7,3,255,128,6,0,6,0,14,0,6,0,12,0,6,0, - 25,25,100,28,1,0,0,0,96,0,24,0,224,0,56,0, - 192,0,248,1,128,0,248,3,128,0,24,3,0,0,24,6, - 0,0,24,14,0,0,24,12,0,0,24,28,0,0,24,24, - 0,0,24,56,60,0,24,48,255,0,24,112,195,128,24,97, - 129,128,24,193,129,128,1,192,3,128,1,128,7,0,3,128, - 14,0,3,0,60,0,6,0,112,0,14,0,224,0,12,1, - 192,0,28,1,255,128,24,1,255,128,25,24,96,28,1,0, - 62,0,14,0,127,0,12,0,99,128,24,0,193,128,56,0, - 193,128,48,0,3,128,96,0,15,0,224,0,15,128,192,0, - 1,193,128,0,0,195,128,0,192,195,6,0,192,199,14,0, - 97,206,30,0,127,140,62,0,30,24,118,0,0,56,102,0, - 0,48,198,0,0,97,198,0,0,227,134,0,1,195,255,128, - 1,131,255,128,3,0,6,0,7,0,6,0,6,0,6,0, - 14,25,50,19,3,249,3,128,3,128,3,128,3,128,0,0, - 0,0,3,128,3,128,3,128,7,128,7,0,15,0,30,0, - 60,0,120,0,112,0,240,0,224,28,224,28,224,28,240,60, - 120,120,127,240,63,224,7,128,20,31,93,22,1,0,3,192, - 0,1,224,0,0,224,0,0,112,0,0,56,0,0,0,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,3, - 252,0,3,156,0,3,156,0,7,158,0,7,14,0,7,14, - 0,15,15,0,14,15,0,14,7,0,30,7,128,31,255,128, - 31,255,128,63,255,192,60,3,192,56,1,192,120,1,224,120, - 1,224,112,0,224,240,0,240,240,0,240,20,31,93,22,1, - 0,0,60,0,0,120,0,0,112,0,0,224,0,1,192,0, - 0,0,0,0,240,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,3,156,0,7,158,0,7,14, - 0,7,14,0,15,15,0,15,15,0,14,7,0,30,7,128, - 31,255,128,31,255,128,63,255,192,60,3,192,120,1,192,120, - 1,224,120,1,224,112,0,224,240,0,240,240,0,240,20,31, - 93,22,1,0,0,64,0,0,224,0,1,240,0,3,184,0, - 7,28,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,1,198,0,3,254,0,7,252,0, - 6,56,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,3,156,0,3,156,0,3,156,0, - 0,0,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,31,93,22,1,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,240,0,0, - 240,0,1,248,0,1,248,0,3,252,0,3,156,0,3,156, - 0,7,158,0,7,14,0,7,14,0,15,15,0,14,15,0, - 14,7,0,30,7,128,31,255,128,31,255,128,63,255,192,60, - 3,192,56,1,192,120,1,224,120,1,224,112,0,224,240,0, - 240,240,0,240,29,25,100,32,1,0,0,127,255,248,0,127, - 255,248,0,255,255,248,0,227,128,0,1,195,128,0,1,195, - 128,0,3,195,128,0,3,131,128,0,3,131,128,0,7,131, - 128,0,7,3,128,0,7,3,255,240,15,3,255,240,14,3, - 255,240,30,3,128,0,31,255,128,0,31,255,128,0,63,255, - 128,0,56,3,128,0,120,3,128,0,120,3,128,0,112,3, - 128,0,240,3,255,248,224,3,255,248,224,3,255,248,20,32, - 96,23,2,249,1,248,0,7,254,0,15,255,128,31,7,128, - 60,3,192,120,1,224,112,0,224,112,0,224,240,0,0,240, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,112,240,0,112,112,0,240,112,0,224,120,1,224, - 60,3,192,31,7,192,15,255,128,7,254,0,1,248,0,0, - 96,0,0,96,0,0,240,0,0,56,0,0,24,0,3,56, - 0,1,240,0,17,31,93,22,3,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,224,0,0,0,0,255,255,0,255, - 255,0,255,255,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,255,255,0, - 255,255,0,255,255,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,255,255, - 128,255,255,128,255,255,128,17,31,93,22,3,0,0,120,0, - 0,240,0,0,224,0,1,192,0,3,128,0,0,0,0,255, - 255,0,255,255,0,255,255,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 255,255,0,255,255,0,255,255,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,255,255,128,255,255,128,255,255,128,17,31,93,22,3,0, - 0,128,0,1,192,0,3,224,0,7,112,0,14,56,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,17,30,90, - 22,3,0,28,56,0,28,56,0,28,56,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,7,31,31, - 9,0,0,240,120,56,28,14,0,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,7,31,31,9,2,0,30,60,56,112,224,0,112,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,9,31,62,9,0,0,8,0,28, - 0,62,0,119,0,227,128,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,9,30,60,9,0, - 0,227,128,227,128,227,128,0,0,0,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,21,25,75, - 23,0,0,31,254,0,31,255,128,31,255,192,28,3,224,28, - 0,224,28,0,240,28,0,112,28,0,112,28,0,56,28,0, - 56,28,0,56,255,192,56,255,192,56,28,0,56,28,0,56, - 28,0,56,28,0,120,28,0,112,28,0,112,28,0,240,28, - 0,224,28,3,192,31,255,192,31,255,128,31,254,0,19,30, - 90,24,2,0,1,198,0,3,254,0,7,252,0,6,56,0, - 0,0,0,240,0,224,248,0,224,248,0,224,252,0,224,252, - 0,224,254,0,224,239,0,224,231,0,224,231,128,224,227,192, - 224,227,192,224,225,224,224,224,224,224,224,240,224,224,120,224, - 224,56,224,224,60,224,224,28,224,224,30,224,224,15,224,224, - 7,224,224,7,224,224,3,224,224,1,224,224,1,224,23,31, - 93,25,1,0,0,240,0,0,120,0,0,56,0,0,28,0, - 0,14,0,0,0,0,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,248,60,0,120,120,0,60,112,0,28,112,0, - 28,240,0,30,224,0,14,224,0,14,224,0,14,224,0,14, - 224,0,14,240,0,30,240,0,30,112,0,28,120,0,60,60, - 0,120,62,0,248,31,1,240,15,255,224,3,255,128,0,254, - 0,23,31,93,25,1,0,0,15,0,0,30,0,0,28,0, - 0,56,0,0,112,0,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,23,31,93,25,1,0,0,16,0,0,56,0, - 0,124,0,0,238,0,1,199,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,30,90,25,1,0,0,113,128, - 0,255,128,1,255,0,1,142,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,29,87,25,1,0,1,195,128, - 1,195,128,1,195,128,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,15,15,30,19,2,1,64,4,224,14,240,30, - 120,60,60,120,31,240,15,224,7,192,7,192,15,224,30,240, - 60,120,120,60,240,30,96,12,23,25,75,25,1,0,0,254, - 6,3,255,140,15,255,248,31,1,240,62,0,248,60,0,248, - 120,1,188,112,3,28,112,6,28,240,6,30,224,12,14,224, - 24,14,224,48,14,224,96,14,224,192,14,225,128,30,243,0, - 30,118,0,28,124,0,60,60,0,120,62,0,248,63,1,240, - 111,255,224,195,255,128,0,254,0,18,31,93,24,3,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,112,0,0,0, - 0,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,240,3,192,120,7,128, - 124,15,128,63,255,0,31,254,0,3,240,0,18,31,93,24, - 3,0,0,120,0,0,240,0,0,224,0,1,192,0,3,128, - 0,0,0,0,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,240,3,192, - 120,7,128,124,15,128,63,255,0,31,254,0,3,240,0,18, - 31,93,24,3,0,0,64,0,0,224,0,1,240,0,3,184, - 0,7,28,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,18,30,90,24,3,0,14,28,0,14,28,0,14,28, - 0,0,0,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,31,93,22,1,0,0,60,0,0,120,0,0,112, - 0,0,224,0,1,192,0,0,0,0,224,0,224,240,1,224, - 112,1,192,120,3,192,56,3,128,60,7,128,28,15,0,30, - 15,0,15,30,0,7,28,0,7,188,0,3,184,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,17,25,75,22,3,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,255,248,0,255,254,0, - 255,255,0,224,15,0,224,7,0,224,7,128,224,3,128,224, - 3,128,224,7,128,224,7,0,224,15,0,255,254,0,255,252, - 0,255,248,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,14,25,50,20,4,0,15,128,63,224, - 127,240,120,240,240,120,224,56,224,56,224,56,224,120,224,240, - 227,224,227,224,227,240,224,120,224,60,224,28,224,28,224,28, - 224,28,224,28,224,56,224,120,231,240,231,224,231,128,16,25, - 50,18,1,0,15,0,7,128,3,128,1,192,0,224,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 121,252,127,223,63,143,16,25,50,18,1,0,0,240,1,224, - 1,192,3,128,7,0,0,0,0,0,15,224,63,248,60,124, - 112,28,112,28,0,28,0,28,0,252,31,252,127,156,120,28, - 240,28,224,28,224,60,224,124,120,252,127,223,63,143,16,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 120,252,127,223,63,143,16,24,48,18,1,0,7,24,15,248, - 31,240,24,224,0,0,0,0,15,224,63,248,60,124,112,28, - 112,28,0,28,0,28,0,252,31,252,127,156,120,28,240,28, - 224,28,224,60,224,124,120,252,127,223,63,143,16,23,46,18, - 1,0,14,112,14,112,14,112,0,0,0,0,15,224,63,248, - 60,252,112,28,112,28,0,28,0,28,0,252,31,252,127,156, - 120,28,240,28,224,28,224,60,224,124,121,252,127,223,63,143, - 16,25,50,18,1,0,3,128,6,192,4,64,4,64,6,192, - 3,128,0,0,15,224,63,248,60,124,112,28,112,28,0,28, - 0,28,0,252,31,252,127,156,120,28,240,28,224,28,224,60, - 224,124,120,252,127,223,63,143,26,18,72,29,1,0,7,192, - 248,0,31,241,254,0,60,127,143,0,112,62,3,128,112,30, - 3,128,0,28,1,192,0,28,1,192,0,252,1,192,15,255, - 255,192,63,255,255,192,126,31,255,192,240,28,0,0,224,28, - 1,192,224,30,1,192,224,126,3,128,248,247,143,0,127,231, - 255,0,63,129,252,0,14,25,50,17,1,249,7,192,31,240, - 63,248,56,56,112,28,112,28,224,0,224,0,224,0,224,0, - 224,0,224,28,224,28,112,56,120,120,63,240,31,224,7,128, - 3,0,3,0,7,128,1,192,0,192,25,192,15,128,15,25, - 50,18,1,0,30,0,15,0,7,0,3,128,1,192,0,0, - 0,0,7,192,31,240,62,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,15,224,15,25,50,18,1,0,1,224,3,192, - 3,128,7,0,14,0,0,0,0,0,7,192,31,240,60,120, - 120,28,112,28,240,14,224,14,224,14,255,254,255,254,224,0, - 224,0,224,14,112,14,120,28,60,124,31,240,15,224,15,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,7,192,31,240,60,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,7,192,15,23,46,18,1,0,28,112,28,112, - 28,112,0,0,0,0,7,192,31,240,60,120,120,28,112,28, - 240,14,224,14,224,14,255,254,255,254,224,0,224,0,224,14, - 112,14,120,28,60,124,31,240,7,192,7,25,25,9,0,0, - 240,120,56,28,14,0,0,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,7,25,25,9,2,0,30, - 60,56,112,224,0,0,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,9,25,50,9,0,0,8,0, - 28,0,62,0,119,0,227,128,0,0,0,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 8,23,23,9,1,0,231,231,231,0,0,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,15,25,50, - 19,1,0,120,64,60,224,31,192,15,128,31,128,59,192,17, - 224,7,240,31,248,63,248,120,60,112,28,112,28,224,14,224, - 14,224,14,224,14,224,14,224,14,112,28,112,28,120,60,63, - 248,31,240,7,192,14,24,48,18,2,0,14,48,31,240,63, - 224,49,192,0,0,0,0,3,192,239,240,255,248,248,60,240, - 28,240,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,15,25,50,19,1, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,25,50,19,1,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,7,192,31,240,63,248,120,60,112, - 28,112,28,224,14,224,14,224,14,224,14,224,14,224,14,112, - 28,112,28,120,60,63,248,31,240,7,192,15,25,50,19,1, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,24,48,19,1,0,14,48,31,240,63,224,49, - 192,0,0,0,0,7,192,31,240,63,248,120,60,112,28,112, - 28,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,120,60,63,248,31,240,7,192,15,23,46,19,1,0,28, - 112,28,112,28,112,0,0,0,0,7,192,31,240,63,248,120, - 60,112,28,112,28,224,14,224,14,224,14,224,14,224,14,224, - 14,112,28,112,28,120,60,63,248,31,240,7,192,15,15,30, - 19,2,1,3,128,3,128,3,128,0,0,0,0,0,0,255, - 254,255,254,255,254,0,0,0,0,0,0,3,128,3,128,3, - 128,16,18,36,19,2,0,7,195,31,246,63,252,120,120,112, - 28,112,60,224,110,224,206,225,142,227,14,230,14,236,14,120, - 28,112,28,56,60,127,248,223,240,135,192,14,25,50,19,2, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,25,50,19,2,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 60,224,60,240,252,127,252,63,220,15,0,14,25,50,19,2, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,23,46,19,2,0,28,224,28,224,28,224,0, - 0,0,0,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,60,224,60,240, - 252,127,252,63,220,15,0,14,32,64,17,1,249,0,240,1, - 224,1,192,3,128,7,0,0,0,0,0,224,28,224,28,224, - 60,112,56,112,56,112,56,120,112,56,112,56,240,60,224,28, - 224,29,192,29,192,15,192,15,128,15,128,7,0,7,0,7, - 0,14,0,14,0,30,0,124,0,124,0,112,0,15,31,62, - 19,2,250,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,231,224,239,240,255,248,248,60,240,28,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,240,28,240,28,248,60,255, - 248,239,240,227,192,224,0,224,0,224,0,224,0,224,0,224, - 0,14,30,60,17,1,249,28,112,28,112,28,112,0,0,0, - 0,224,28,224,28,224,60,112,56,112,56,112,120,120,112,56, - 112,56,240,60,224,28,224,29,192,29,192,15,192,15,128,15, - 128,7,0,7,0,7,0,14,0,14,0,30,0,124,0,124, - 0,112,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 4 y=15 dx=19 dy= 0 ascent=26 len=48 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24n[726] U8G_FONT_SECTION("u8g_font_helvR24n") = { - 0,39,48,251,245,24,0,0,0,0,42,58,0,26,251,24, - 0,10,11,22,13,1,15,12,0,12,0,76,128,237,192,127, - 128,63,0,30,0,63,0,115,128,225,192,64,128,17,16,48, - 19,1,1,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,3,9,9,9,3,251,224,224,224,224,32,96,96, - 192,128,8,2,2,11,1,8,255,255,3,4,4,9,3,0, - 224,224,224,224,9,24,48,9,0,0,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,8,0,24,0,24,0,24,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,15,24,48,18,1,0, - 7,192,31,240,63,248,60,120,120,60,112,28,112,28,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,112,28,112,28,112,60,60,120,63,248,31,240,7,192, - 8,24,24,18,3,0,3,7,7,15,63,255,255,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,24, - 48,18,1,0,7,192,31,240,63,248,120,60,112,28,240,14, - 224,14,224,14,0,14,0,28,0,60,0,120,0,240,3,224, - 7,192,31,0,60,0,120,0,112,0,224,0,224,0,255,254, - 255,254,255,254,15,24,48,18,1,0,7,192,31,240,63,248, - 56,56,112,28,112,28,112,28,112,28,0,28,0,56,3,248, - 3,240,3,248,0,60,0,30,0,14,224,14,224,14,224,14, - 112,28,120,60,63,248,31,240,7,192,16,24,48,18,0,0, - 0,24,0,56,0,120,0,120,0,248,1,248,3,184,3,184, - 7,56,14,56,14,56,28,56,56,56,56,56,112,56,224,56, - 255,255,255,255,255,255,0,56,0,56,0,56,0,56,0,56, - 15,24,48,18,1,0,63,252,63,252,63,252,56,0,56,0, - 56,0,112,0,112,0,119,192,127,240,127,248,120,124,112,28, - 0,30,0,14,0,14,0,14,224,14,224,30,240,28,120,124, - 127,248,63,240,15,128,15,24,48,18,1,0,3,192,15,240, - 31,248,60,56,56,28,112,28,112,0,112,0,96,0,227,192, - 239,240,255,248,248,60,240,28,240,14,224,14,224,14,96,14, - 112,14,112,28,56,60,63,248,31,240,7,192,15,24,48,18, - 1,0,255,254,255,254,255,254,0,14,0,28,0,24,0,56, - 0,112,0,112,0,224,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,7,0,14,0,14,0,14,0,28,0,28,0, - 28,0,15,24,48,18,1,0,7,192,31,240,63,248,56,60, - 112,28,112,28,112,28,112,28,120,60,60,120,31,240,15,224, - 63,248,120,60,112,28,224,14,224,14,224,14,224,14,240,28, - 120,60,63,248,31,240,7,192,15,24,48,18,1,0,7,192, - 31,240,63,248,120,124,112,60,240,28,224,30,224,14,224,14, - 224,14,224,30,224,30,112,62,127,254,63,238,15,206,0,14, - 0,28,224,28,240,60,120,120,63,240,63,224,15,128,3,18, - 18,9,4,0,224,224,224,224,0,0,0,0,0,0,0,0, - 0,0,224,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=20 dx=34 dy= 0 ascent=27 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24r[4992] U8G_FONT_SECTION("u8g_font_helvR24r") = { - 0,39,48,251,245,25,5,215,14,105,32,127,249,27,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255 - }; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 4 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[2193] U8G_FONT_SECTION("u8g_font_lucasfont_alternate") = { - 0,9,11,0,255,7,1,148,3,22,32,255,255,10,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,1,7,7,2,0,0,128,0,0,128,128,128,128, - 5,7,7,6,0,0,32,112,168,160,168,112,32,5,7,7, - 6,0,0,56,64,64,240,64,64,248,255,5,7,7,6,0, - 0,136,136,80,32,248,32,32,1,7,7,2,0,0,128,128, - 128,0,128,128,128,255,255,8,8,8,9,0,255,60,66,153, - 161,161,153,66,60,255,6,5,5,7,0,1,36,72,144,72, - 36,5,3,3,6,0,1,248,8,8,5,1,1,6,0,3, - 248,255,255,255,5,7,7,6,0,0,32,32,248,32,32,0, - 248,255,255,255,255,6,7,7,7,0,0,124,244,244,116,20, - 20,20,1,1,1,2,0,3,128,255,255,255,6,5,5,7, - 0,1,144,72,36,72,144,255,255,255,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,10,10,6,0,0,64,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,16,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,32,80,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,104,144,0, - 112,136,136,248,136,136,136,5,9,9,6,0,0,80,0,112, - 136,136,248,136,136,136,5,10,10,6,0,0,32,80,32,112, - 136,136,248,136,136,136,9,7,14,10,0,0,119,128,136,0, - 136,0,255,0,136,0,136,0,143,128,255,5,10,10,6,0, - 0,64,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,16,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,32,80,0,248,128,128,240,128,128,248,5,9,9,6,0, - 0,80,0,248,128,128,240,128,128,248,2,10,10,3,0,0, - 128,64,0,64,64,64,64,64,64,64,2,10,10,4,1,0, - 64,128,0,128,128,128,128,128,128,128,3,10,10,4,0,0, - 64,160,0,64,64,64,64,64,64,64,3,9,9,4,0,0, - 160,0,64,64,64,64,64,64,64,6,7,7,7,0,0,120, - 68,68,244,68,68,120,6,10,10,7,0,0,100,152,0,132, - 196,164,148,140,132,132,5,10,10,6,0,0,64,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,16,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,32,80,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,104,144,0,112, - 136,136,136,136,136,112,5,8,8,6,0,0,136,112,136,136, - 136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,255, - 5,10,10,6,0,0,64,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,16,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,32,80,0,136,136,136,136,136,136,112, - 5,8,8,6,0,0,136,0,136,136,136,136,136,112,5,10, - 10,6,0,0,16,32,0,136,136,136,80,32,32,32,255,4, - 8,8,5,0,255,96,144,144,160,144,144,160,128,5,8,8, - 6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,0, - 0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,32, - 80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,0, - 112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,120, - 136,120,5,9,9,6,0,0,32,80,32,0,112,8,120,136, - 120,9,5,10,10,0,0,119,0,8,128,127,0,136,0,119, - 128,255,5,8,8,6,0,0,64,32,0,112,136,240,128,120, - 5,8,8,6,0,0,16,32,0,112,136,240,128,120,5,8, - 8,6,0,0,32,80,0,112,136,240,128,120,5,7,7,6, - 0,0,80,0,112,136,240,128,120,2,7,7,3,0,0,128, - 64,0,64,64,64,64,2,7,7,3,0,0,64,128,0,128, - 128,128,128,3,7,7,4,0,0,64,160,0,64,64,64,64, - 3,6,6,4,0,0,160,0,64,64,64,64,255,5,8,8, - 6,0,0,104,144,0,240,136,136,136,136,5,8,8,6,0, - 0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,16, - 32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,0, - 112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,136, - 136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,112, - 5,5,5,6,0,1,32,0,248,0,32,255,5,8,8,6, - 0,0,64,32,0,136,136,136,136,120,5,8,8,6,0,0, - 16,32,0,136,136,136,136,120,5,8,8,6,0,0,32,80, - 0,136,136,136,136,120,5,7,7,6,0,0,80,0,136,136, - 136,136,120,5,9,9,6,0,255,16,32,0,136,136,136,120, - 8,112,255,5,8,8,6,0,255,80,0,136,136,136,120,8, - 112}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 3 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[216] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten") = { - 0,9,11,0,255,7,0,0,0,0,42,58,0,7,255,7, - 0,7,5,5,8,0,1,68,40,254,40,68,5,5,5,6, - 0,1,32,32,248,32,32,2,3,3,3,0,255,64,64,128, - 6,1,1,7,0,3,252,1,2,2,2,0,0,128,128,7, - 7,7,8,0,0,2,4,8,16,32,64,128,5,7,7,6, - 0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,32, - 96,32,32,32,32,248,5,7,7,6,0,0,112,136,8,16, - 32,64,248,5,7,7,6,0,0,240,8,8,120,8,8,240, - 5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7, - 6,0,0,248,128,112,8,8,136,112,5,7,7,6,0,0, - 112,136,128,240,136,136,112,5,7,7,6,0,0,248,8,16, - 32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136, - 112,5,7,7,6,0,0,112,136,136,120,8,136,112,1,4, - 4,2,0,1,128,0,0,128}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 4 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[1138] U8G_FONT_SECTION("u8g_font_lucasfont_alternater") = { - 0,9,11,0,255,7,1,148,3,22,32,127,255,7,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255}; -/* - Fontname: m2icon5 - Copyright: public domain - Capital A Height: 5, '1' Height: 0 - Calculated Max Values w= 9 h= 6 x= 0 y= 0 dx=10 dy= 0 ascent= 5 len=10 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_5[221] U8G_FONT_SECTION("u8g_font_m2icon_5") = { - 1,9,6,0,255,5,0,17,0,172,65,104,255,5,255,5, - 255,2,117,149,28,254,130,130,254,2,69,133,112,208,144,144, - 240,2,84,100,216,112,112,216,2,117,133,6,12,216,112,32, - 2,68,84,240,144,144,240,2,68,84,240,144,208,240,2,68, - 84,240,240,240,240,2,85,101,248,136,136,136,248,2,85,101, - 248,136,168,136,248,2,85,101,248,248,248,248,248,2,68,84, - 224,176,240,112,2,68,84,224,176,240,112,2,68,84,224,240, - 240,112,2,85,101,240,152,152,248,120,2,85,101,240,152,216, - 248,120,2,85,101,240,248,248,248,120,2,68,84,96,144,144, - 96,2,68,84,96,144,208,96,2,68,84,96,240,240,96,255, - 255,255,255,255,255,255,255,255,255,255,255,255,2,117,133,32, - 64,254,64,32,2,85,101,32,112,168,32,32,255,255,255,2, - 149,170,28,0,254,0,130,0,191,128,255,0,1,22,38,128, - 128,128,128,128,128,2,85,101,32,32,248,32,32}; -/* - Fontname: m2icon_7 - Copyright: public domain - Capital A Height: 7, '1' Height: 0 - Calculated Max Values w=12 h= 8 x= 0 y= 1 dx=13 dy= 0 ascent= 7 len=14 - Font Bounding box w=12 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_7[275] U8G_FONT_SECTION("u8g_font_m2icon_7") = { - 1,12,8,0,255,7,0,17,0,214,65,104,255,7,255,7, - 255,2,151,174,15,0,255,128,128,128,128,128,128,128,128,128, - 255,128,2,87,103,56,104,232,136,136,136,248,3,84,100,216, - 112,112,216,2,134,150,3,6,12,216,112,32,2,102,118,252, - 132,132,132,132,252,2,102,118,252,132,180,180,132,252,2,102, - 118,252,252,252,252,252,252,2,119,151,254,130,130,130,130,130, - 254,2,119,151,254,130,186,186,186,130,254,2,119,151,254,254, - 254,254,254,254,254,2,102,118,248,140,140,140,252,124,2,102, - 118,248,140,172,140,252,124,2,102,134,248,252,252,252,252,124, - 2,119,151,252,134,134,134,134,254,126,2,119,151,252,134,182, - 182,134,254,126,2,119,151,252,254,254,254,254,254,126,2,102, - 118,120,204,132,132,204,120,2,102,118,120,204,180,180,204,120, - 2,102,118,120,252,252,252,252,120,255,255,255,255,255,255,255, - 255,255,255,255,255,255,2,135,151,16,48,95,129,95,48,16, - 2,119,135,16,40,68,238,40,40,56,255,255,255,2,199,222, - 15,0,255,128,128,128,159,240,160,32,192,64,255,128,1,24, - 40,128,128,128,128,128,128,128,128,2,119,199,16,0,16,186, - 16,0,16}; -/* - Fontname: m2icon_9 - Copyright: public domain - Capital A Height: 8, '1' Height: 0 - Calculated Max Values w=13 h=11 x= 0 y= 1 dx=12 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_9[471] U8G_FONT_SECTION("u8g_font_m2icon_9") = { - 0,13,11,0,254,8,0,17,1,111,65,105,254,9,254,8, - 254,10,8,16,11,0,0,15,128,255,192,128,64,128,64,128, - 64,128,64,128,64,255,192,6,8,8,7,0,0,60,84,148, - 244,132,132,132,252,6,5,5,7,0,1,204,120,48,120,204, - 10,7,14,12,0,0,0,192,1,128,3,0,198,0,108,0, - 56,0,16,0,8,8,8,9,0,0,255,129,129,129,129,129, - 129,255,8,8,8,9,0,0,255,129,189,189,189,189,129,255, - 8,8,8,9,0,0,255,255,255,255,255,255,255,255,9,9, - 18,10,0,0,255,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,255,128,9,9,18,10,0,0,255,128,128,128, - 190,128,190,128,190,128,190,128,190,128,128,128,255,128,9,9, - 18,11,0,0,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,8,8,8,8,0,0,254,131,131,131, - 131,131,255,127,8,8,8,9,0,0,254,131,187,187,187,131, - 255,127,8,8,8,9,0,0,254,255,255,255,255,255,255,127, - 9,9,18,10,0,0,255,0,129,128,129,128,129,128,129,128, - 129,128,129,128,255,128,127,128,9,9,18,10,0,0,255,0, - 129,128,189,128,189,128,189,128,189,128,129,128,255,128,127,128, - 9,9,18,10,0,0,255,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,127,128,8,8,8,9,0,0,60,66, - 129,129,129,129,66,60,8,8,8,9,0,0,60,66,153,189, - 189,153,66,60,8,8,8,9,0,0,60,126,255,255,255,255, - 126,60,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 8,16,11,0,0,24,0,40,0,79,192,128,64,128,64,79, - 192,40,0,24,0,8,9,9,9,0,0,24,36,66,129,231, - 36,36,36,60,255,255,255,13,8,16,11,0,0,15,128,255, - 192,128,64,128,64,159,248,160,16,192,32,255,192,1,11,11, - 2,0,254,128,128,128,128,128,128,128,128,128,128,128,9,9, - 18,10,0,0,8,0,0,0,8,0,8,0,190,128,8,0, - 8,0,0,0,8,0,255}; -/* - Fontname: micro - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 4 h= 5 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_micro[855] U8G_FONT_SECTION("u8g_font_micro") = { - 1,4,5,0,0,5,0,255,1,245,32,255,0,5,0,5, - 0,7,0,64,2,37,69,192,192,192,0,192,5,50,66,160, - 160,2,53,69,160,224,160,224,160,2,53,69,64,224,192,96, - 224,3,52,68,160,96,192,160,2,53,69,64,64,224,192,64, - 21,34,66,64,192,18,37,69,64,128,128,128,64,2,37,69, - 128,64,64,64,128,2,53,69,160,64,224,64,160,3,51,67, - 64,224,64,2,34,66,64,192,4,49,65,224,2,34,66,192, - 192,2,53,69,32,32,64,64,128,2,53,69,64,160,160,160, - 64,2,37,69,64,192,64,64,64,2,53,69,192,32,64,128, - 224,2,53,69,192,32,96,32,224,2,53,69,160,160,160,224, - 32,2,53,69,224,128,192,32,192,2,53,69,96,128,224,160, - 224,2,53,69,224,32,32,64,64,2,53,69,224,160,224,160, - 224,2,53,69,224,160,224,32,192,2,37,69,192,192,0,192, - 192,2,37,69,192,192,0,64,192,2,53,69,32,64,128,64, - 32,3,51,67,224,0,224,2,53,69,128,64,32,64,128,2, - 53,69,224,32,96,0,64,2,53,69,96,160,192,128,96,2, - 53,69,224,160,224,160,160,2,53,69,224,160,192,160,224,2, - 53,69,224,128,128,128,224,2,53,69,192,160,160,160,192,2, - 53,69,224,128,224,128,224,2,53,69,224,128,224,128,128,2, - 53,69,224,128,160,160,224,2,53,69,160,160,224,160,160,2, - 53,69,224,64,64,64,224,2,53,69,32,32,32,160,224,2, - 53,69,160,160,192,160,160,2,53,69,128,128,128,128,224,2, - 53,69,160,224,160,160,160,2,53,69,224,160,160,160,160,2, - 53,69,224,160,160,160,224,2,53,69,224,160,224,128,128,2, - 53,69,224,160,160,192,96,2,53,69,224,160,192,160,160,2, - 53,69,224,128,224,32,224,2,53,69,224,64,64,64,64,2, - 53,69,160,160,160,160,224,2,53,69,160,160,160,160,64,2, - 53,69,160,160,160,224,160,2,53,69,160,224,64,224,160,2, - 53,69,160,160,224,64,64,2,53,69,224,32,64,128,224,18, - 37,69,192,128,128,128,192,2,53,69,128,128,64,64,32,2, - 37,69,192,64,64,64,192,5,50,66,64,160,2,49,65,224, - 21,34,66,128,192,2,52,68,224,96,160,224,2,53,69,128, - 224,160,160,224,2,52,68,224,128,128,224,2,53,69,32,224, - 160,160,224,2,52,68,224,160,192,224,2,53,69,96,128,192, - 128,128,2,52,68,224,160,96,224,2,53,69,128,224,160,160, - 160,18,20,68,128,128,128,128,2,52,68,32,32,160,224,2, - 53,69,128,160,192,192,160,2,37,69,192,64,64,64,64,2, - 52,68,160,224,160,160,2,52,68,224,160,160,160,2,52,68, - 224,160,160,224,2,52,68,224,160,224,128,2,52,68,224,160, - 224,32,2,52,68,224,160,128,128,2,52,68,224,192,96,224, - 2,53,69,64,224,64,64,96,2,52,68,160,160,160,224,2, - 52,68,160,160,160,64,2,52,68,160,160,224,160,2,52,68, - 160,64,64,160,2,52,68,160,160,96,192,2,52,68,224,96, - 192,224,2,53,69,96,64,192,64,96,18,21,69,128,128,128, - 128,128,2,53,69,192,64,96,64,192,4,50,66,192,96,2, - 53,69,96,64,64,64,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=22 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08[2760] U8G_FONT_SECTION("u8g_font_ncenB08") = { - 0,17,19,254,251,8,1,193,3,159,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,2,8,8,3,0,254,192, - 192,0,64,64,192,192,192,5,7,7,6,0,255,8,120,208, - 208,232,112,64,7,8,8,8,0,0,60,100,96,252,48,98, - 190,220,7,5,5,8,0,1,186,108,108,108,186,8,8,8, - 9,0,0,247,98,52,54,24,62,24,60,1,8,8,6,2, - 0,128,128,128,0,128,128,128,128,4,10,10,5,0,254,112, - 144,192,96,176,208,96,48,144,224,3,2,2,4,0,6,160, - 160,8,8,8,9,0,0,60,66,157,165,161,157,66,60,3, - 6,6,4,0,2,192,32,224,160,0,224,6,5,5,7,0, - 0,36,108,216,108,36,5,3,3,6,0,2,248,8,8,3, - 1,1,4,0,3,224,8,8,8,9,0,0,60,66,189,165, - 185,173,66,60,4,1,1,5,0,6,240,3,4,4,4,0, - 4,64,160,160,64,5,5,5,6,0,1,32,248,32,0,248, - 3,4,4,3,0,4,96,160,64,224,3,4,4,3,0,4, - 224,64,32,192,3,2,2,4,0,6,96,192,6,7,7,7, - 0,254,204,204,204,220,236,192,192,7,8,8,8,0,0,126, - 244,244,116,20,20,20,62,2,2,2,3,0,3,192,192,2, - 3,3,4,1,254,128,64,192,3,4,4,3,0,4,64,192, - 64,224,4,6,6,5,0,2,96,144,144,96,0,240,6,5, - 5,7,0,0,144,216,108,216,144,8,8,8,9,0,0,68, - 196,72,232,18,22,47,34,8,8,8,9,0,0,68,196,72, - 232,19,21,34,39,8,8,8,9,0,0,228,68,40,200,18, - 22,47,34,5,8,8,6,0,254,48,48,0,16,96,192,216, - 112,9,11,22,8,255,0,48,0,24,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,6,0,12,0,0,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,9,11,22,8,255,0,28, - 0,54,0,0,0,8,0,28,0,28,0,38,0,38,0,127, - 0,67,0,231,128,9,11,22,8,255,0,26,0,44,0,0, - 0,8,0,28,0,28,0,38,0,38,0,127,0,67,0,231, - 128,9,11,22,8,255,0,20,0,20,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,24,0,36,0,24,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,10,8,16,11,0,0,63, - 192,22,64,22,128,39,128,62,128,70,64,70,64,239,192,7, - 10,10,8,0,254,58,70,194,192,192,194,66,60,16,48,6, - 11,11,7,0,0,96,48,0,252,100,104,120,104,100,100,252, - 6,11,11,7,0,0,24,48,0,252,100,104,120,104,100,100, - 252,6,11,11,7,0,0,56,108,0,252,100,104,120,104,100, - 100,252,6,11,11,7,0,0,40,40,0,252,100,104,120,104, - 100,100,252,4,11,11,5,0,0,192,96,0,240,96,96,96, - 96,96,96,240,4,11,11,5,0,0,48,96,0,240,96,96, - 96,96,96,96,240,5,11,11,5,0,0,112,216,0,240,96, - 96,96,96,96,96,240,4,11,11,5,0,0,80,80,0,240, - 96,96,96,96,96,96,240,8,8,8,9,0,0,252,98,99, - 243,99,99,98,252,8,11,11,9,0,0,26,44,0,199,98, - 114,122,94,78,70,226,7,11,11,8,0,0,48,24,0,56, - 68,198,198,198,198,68,56,7,11,11,8,0,0,24,48,0, - 56,68,198,198,198,198,68,56,7,11,11,8,0,0,56,108, - 0,56,68,198,198,198,198,68,56,7,11,11,8,0,0,52, - 88,0,56,68,198,198,198,198,68,56,7,11,11,8,0,0, - 40,40,0,56,68,198,198,198,198,68,56,5,5,5,6,0, - 1,216,112,32,112,216,7,8,8,8,0,0,58,68,206,214, - 214,230,68,184,8,11,11,9,0,0,48,24,0,247,98,98, - 98,98,98,98,60,8,11,11,9,0,0,12,24,0,247,98, - 98,98,98,98,98,60,8,11,11,9,0,0,28,54,0,247, - 98,98,98,98,98,98,60,8,11,11,9,0,0,20,20,0, - 247,98,98,98,98,98,98,60,8,11,11,9,0,0,12,24, - 0,247,98,52,52,24,24,24,60,7,8,8,8,0,0,224, - 124,102,102,102,124,96,240,7,8,8,8,0,0,60,102,102, - 108,102,102,102,236,4,8,8,5,0,0,192,96,0,224,48, - 112,176,240,4,8,8,5,0,0,48,96,0,224,48,112,176, - 240,5,9,9,5,0,0,32,112,216,0,224,48,112,176,240, - 5,8,8,5,0,0,104,176,0,224,48,112,176,240,4,8, - 8,5,0,0,160,160,0,224,48,112,176,240,4,8,8,5, - 0,0,96,144,96,224,48,112,176,240,8,5,5,9,0,0, - 238,155,127,216,239,5,7,7,6,0,254,112,200,192,200,112, - 32,96,5,8,8,6,0,0,96,48,0,112,216,248,192,120, - 5,8,8,6,0,0,48,96,0,112,216,248,192,120,5,9, - 9,6,0,0,32,112,216,0,112,216,248,192,120,5,8,8, - 6,0,0,80,80,0,112,216,248,192,120,4,8,8,5,0, - 0,192,96,0,224,96,96,96,240,4,8,8,5,0,0,48, - 96,0,224,96,96,96,240,5,9,9,5,0,0,32,112,216, - 0,224,96,96,96,240,4,8,8,5,0,0,160,160,0,224, - 96,96,96,240,6,8,8,7,0,0,200,112,144,120,204,204, - 204,120,6,8,8,7,0,0,104,176,0,216,236,204,204,204, - 6,8,8,7,0,0,96,48,0,120,204,204,204,120,6,8, - 8,7,0,0,24,48,0,120,204,204,204,120,6,9,9,7, - 0,0,32,112,216,0,120,204,204,204,120,6,8,8,7,0, - 0,52,88,0,120,204,204,204,120,6,8,8,7,0,0,80, - 80,0,120,204,204,204,120,5,5,5,6,0,1,32,0,248, - 0,32,6,7,7,7,0,255,4,120,220,236,204,120,128,6, - 8,8,7,0,0,96,48,0,204,204,204,220,108,6,8,8, - 7,0,0,24,48,0,204,204,204,220,108,6,9,9,7,0, - 0,32,112,216,0,204,204,204,220,108,6,8,8,7,0,0, - 80,80,0,204,204,204,220,108,6,10,10,7,0,254,24,48, - 0,236,104,104,48,48,224,192,6,10,10,7,0,254,192,192, - 192,216,236,204,204,248,192,224,6,10,10,7,0,254,80,80, - 0,236,104,104,48,48,224,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=20 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08r[1315] U8G_FONT_SECTION("u8g_font_ncenB08r") = { - 0,17,19,254,251,8,1,193,3,159,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 3 y= 8 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10[4003] U8G_FONT_SECTION("u8g_font_ncenB10") = { - 0,20,25,254,250,11,2,24,5,41,32,255,253,15,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 4,0,1,2,11,11,5,1,253,192,192,192,0,64,64,192, - 192,192,192,192,7,9,9,8,0,255,4,60,110,206,208,210, - 118,60,32,8,11,11,9,0,0,28,38,102,96,252,48,48, - 32,225,191,222,8,8,8,9,0,2,153,126,102,195,195,102, - 126,153,10,11,22,11,0,0,241,192,96,128,49,0,49,0, - 26,0,26,0,63,0,12,0,63,0,12,0,30,0,1,11, - 11,8,3,0,128,128,128,128,0,0,128,128,128,128,128,6, - 13,13,7,0,254,56,108,76,96,120,156,204,228,120,28,204, - 200,112,5,2,2,7,1,8,216,216,11,11,22,12,0,0, - 14,0,49,128,64,64,79,64,153,32,144,32,153,32,78,64, - 64,64,49,128,14,0,5,7,7,6,0,4,224,48,112,176, - 216,0,248,7,5,5,8,0,1,54,108,216,108,54,7,4, - 4,8,0,2,254,2,2,2,4,2,2,5,0,3,240,240, - 11,11,22,12,0,0,14,0,49,128,64,64,94,64,137,32, - 142,32,138,32,91,64,64,64,49,128,14,0,5,1,1,7, - 1,8,248,4,4,4,6,1,7,96,144,144,96,7,7,7, - 8,0,1,16,16,254,16,16,0,254,5,6,6,5,255,5, - 112,152,24,48,96,248,5,6,6,5,255,5,112,152,48,24, - 152,112,4,3,3,6,1,8,48,96,128,9,10,20,10,0, - 253,247,0,99,0,99,0,99,0,99,0,103,0,123,128,64, - 0,96,0,96,0,9,11,22,10,0,0,127,128,251,0,251, - 0,251,0,251,0,123,0,27,0,27,0,27,0,27,0,63, - 128,2,2,2,5,1,4,192,192,3,3,3,5,1,253,64, - 32,224,4,6,6,5,0,5,96,224,96,96,96,240,5,7, - 7,6,0,4,112,216,216,216,112,0,248,7,5,5,8,0, - 1,216,108,54,108,216,11,11,22,12,0,0,97,0,227,0, - 98,0,102,0,100,0,252,192,9,192,26,192,20,192,55,224, - 32,192,11,11,22,12,0,0,97,0,227,0,98,0,102,0, - 100,0,253,192,10,96,24,96,16,192,49,128,35,224,12,11, - 22,12,255,0,112,128,153,128,49,0,27,0,154,0,118,96, - 4,224,13,96,10,96,27,240,16,96,6,11,11,7,0,253, - 48,48,48,0,16,48,96,192,204,204,120,10,15,30,11,0, - 0,48,0,24,0,4,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,10, - 15,30,11,0,0,3,0,6,0,8,0,0,0,12,0,12, - 0,22,0,22,0,18,0,35,0,35,0,63,0,65,128,65, - 128,227,192,10,15,30,11,0,0,4,0,14,0,17,0,0, - 0,12,0,12,0,22,0,22,0,18,0,35,0,35,0,63, - 0,65,128,65,128,227,192,10,14,28,11,0,0,29,0,46, - 0,0,0,12,0,12,0,22,0,22,0,18,0,35,0,35, - 0,63,0,65,128,65,128,227,192,10,14,28,11,0,0,51, - 0,51,0,0,0,12,0,12,0,22,0,22,0,18,0,35, - 0,35,0,63,0,65,128,65,128,227,192,10,15,30,11,0, - 0,12,0,18,0,12,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,15, - 11,22,15,255,0,15,254,5,134,5,130,9,146,9,144,17, - 240,31,144,33,146,33,130,65,134,227,254,10,14,28,11,0, - 253,31,64,112,192,96,64,192,64,192,0,192,0,192,0,192, - 0,96,64,112,192,31,0,4,0,2,0,14,0,9,15,30, - 10,0,0,24,0,12,0,2,0,0,0,255,128,97,128,96, - 128,100,128,100,0,124,0,100,0,100,128,96,128,97,128,255, - 128,9,15,30,10,0,0,3,0,6,0,8,0,0,0,255, - 128,97,128,96,128,100,128,100,0,124,0,100,0,100,128,96, - 128,97,128,255,128,9,15,30,10,0,0,4,0,14,0,17, - 0,0,0,255,128,97,128,96,128,100,128,100,0,124,0,100, - 0,100,128,96,128,97,128,255,128,9,14,28,10,0,0,51, - 0,51,0,0,0,255,128,97,128,96,128,100,128,100,0,124, - 0,100,0,100,128,96,128,97,128,255,128,4,15,15,7,1, - 0,192,96,16,0,240,96,96,96,96,96,96,96,96,96,240, - 5,15,15,7,1,0,24,48,64,0,240,96,96,96,96,96, - 96,96,96,96,240,5,15,15,7,1,0,32,112,136,0,240, - 96,96,96,96,96,96,96,96,96,240,6,14,14,7,0,0, - 204,204,0,120,48,48,48,48,48,48,48,48,48,120,11,11, - 22,12,0,0,255,0,97,192,96,192,96,96,96,96,248,96, - 96,96,96,96,96,192,97,192,255,0,11,14,28,12,0,0, - 14,128,23,0,0,0,224,224,112,64,120,64,92,64,76,64, - 70,64,71,64,67,192,65,192,64,192,224,64,11,15,30,12, - 0,0,24,0,12,0,2,0,0,0,31,0,113,192,96,192, - 192,96,192,96,192,96,192,96,192,96,96,192,113,192,31,0, - 11,15,30,12,0,0,0,192,1,128,2,0,0,0,31,0, - 113,192,96,192,192,96,192,96,192,96,192,96,192,96,96,192, - 113,192,31,0,11,15,30,12,0,0,4,0,14,0,17,0, - 0,0,31,0,113,192,96,192,192,96,192,96,192,96,192,96, - 192,96,96,192,113,192,31,0,11,14,28,12,0,0,14,128, - 23,0,0,0,31,0,113,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,113,192,31,0,11,14,28,12,0,0, - 25,128,25,128,0,0,31,0,113,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,113,192,31,0,8,7,7,8, - 0,1,195,102,60,24,60,102,195,11,11,22,12,0,0,31, - 32,113,192,96,192,193,96,194,96,196,96,200,96,208,96,96, - 192,113,192,159,0,11,15,30,12,0,0,12,0,6,0,1, - 0,0,0,240,224,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,48,128,31,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,48,128,31,0,11,15,30, - 12,0,0,4,0,14,0,17,0,0,0,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,48,128,31, - 0,11,14,28,12,0,0,25,128,25,128,0,0,240,224,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,64,48, - 128,31,0,10,15,30,11,0,0,1,128,3,0,4,0,0, - 0,241,192,96,128,49,0,49,0,26,0,26,0,12,0,12, - 0,12,0,12,0,30,0,9,11,22,10,0,0,240,0,96, - 0,127,0,99,128,97,128,97,128,99,128,126,0,96,0,96, - 0,240,0,8,11,11,9,0,0,30,35,99,98,108,98,99, - 99,99,99,238,8,11,11,9,0,0,48,24,4,0,60,102, - 6,62,198,206,119,8,11,11,9,0,0,12,24,32,0,60, - 102,6,62,198,206,119,8,11,11,9,0,0,16,56,108,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,52,88,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,108,108,0, - 60,102,6,62,198,206,119,8,11,11,9,0,0,24,36,24, - 0,60,102,6,62,198,206,119,13,7,14,14,0,0,57,224, - 103,48,6,24,63,248,198,0,199,24,121,240,7,10,10,8, - 0,253,60,102,198,192,194,102,60,16,8,56,8,11,11,9, - 0,0,48,24,4,0,60,102,195,255,192,99,62,8,11,11, - 9,0,0,12,24,32,0,60,102,195,255,192,99,62,8,11, - 11,9,0,0,16,56,108,0,60,102,195,255,192,99,62,8, - 10,10,9,0,0,108,108,0,60,102,195,255,192,99,62,4, - 11,11,5,0,0,192,96,16,0,224,96,96,96,96,96,240, - 4,11,11,5,0,0,48,96,128,0,224,96,96,96,96,96, - 240,5,11,11,5,0,0,32,112,216,0,224,96,96,96,96, - 96,240,5,10,10,5,0,0,216,216,0,224,96,96,96,96, - 96,240,8,11,11,9,0,0,198,56,120,140,62,102,195,195, - 195,102,60,9,10,20,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,247,128,8,11,11, - 9,0,0,48,24,4,0,60,102,195,195,195,102,60,8,11, - 11,9,0,0,12,24,32,0,60,102,195,195,195,102,60,8, - 11,11,9,0,0,16,56,108,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,52,88,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,108,108,0,60,102,195,195,195,102,60, - 8,7,7,8,0,1,24,24,0,255,0,24,24,8,9,9, - 9,0,255,2,60,110,203,211,211,102,60,64,9,11,22,10, - 0,0,48,0,24,0,4,0,0,0,247,128,99,0,99,0, - 99,0,99,0,103,0,59,128,9,11,22,10,0,0,12,0, - 24,0,32,0,0,0,247,128,99,0,99,0,99,0,99,0, - 103,0,59,128,9,11,22,10,0,0,8,0,28,0,54,0, - 0,0,247,128,99,0,99,0,99,0,99,0,103,0,59,128, - 9,10,20,10,0,0,54,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,103,0,59,128,8,14,14,7,255,253, - 6,12,16,0,247,98,98,52,52,24,24,16,208,224,9,14, - 28,10,0,253,224,0,96,0,96,0,96,0,110,0,115,0, - 97,128,97,128,97,128,115,0,110,0,96,0,96,0,240,0, - 8,13,13,7,255,253,54,54,0,247,98,98,52,52,24,24, - 16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 3 y= 8 dx=15 dy= 0 ascent=12 len=28 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10r[1853] U8G_FONT_SECTION("u8g_font_ncenB10r") = { - 0,20,25,254,250,11,2,24,5,41,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12[4735] U8G_FONT_SECTION("u8g_font_ncenB12") = { - 0,22,27,253,249,12,2,152,5,246,32,255,253,16,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,4,1,1,3,12,12,5,1,253,64,224, - 224,64,0,64,64,224,224,224,224,64,8,12,12,10,0,254, - 1,2,62,115,231,231,232,233,114,60,32,64,9,12,24,10, - 0,0,31,0,57,128,115,128,115,128,113,0,56,0,254,0, - 24,0,24,0,120,128,191,0,110,0,8,8,8,10,1,2, - 90,255,102,195,195,102,255,90,10,12,24,10,0,0,251,192, - 113,128,49,0,59,0,26,0,30,0,63,0,12,0,63,0, - 12,0,12,0,63,0,2,12,12,10,4,0,192,192,192,192, - 192,0,0,192,192,192,192,192,6,15,15,9,1,253,56,76, - 76,96,48,120,140,132,196,120,48,24,200,200,112,5,2,2, - 6,0,9,216,216,12,12,24,12,0,0,31,128,57,192,96, - 96,207,176,217,48,152,16,152,16,217,176,207,48,96,96,57, - 192,31,128,6,7,7,6,0,5,112,152,120,216,108,0,248, - 6,5,5,8,1,2,36,108,216,108,36,8,5,5,10,0, - 2,255,255,3,3,3,4,2,2,5,0,3,240,240,12,12, - 24,12,0,0,31,128,57,192,96,96,223,48,201,48,142,16, - 139,16,201,176,221,240,96,96,57,192,31,128,5,1,1,6, - 0,10,248,5,5,5,7,1,7,112,216,136,216,112,8,9, - 9,10,1,0,24,24,255,255,24,24,0,255,255,5,7,7, - 6,0,5,112,152,216,16,32,120,248,6,7,7,6,0,5, - 120,204,76,24,76,204,120,4,3,3,6,1,9,48,112,192, - 11,11,22,11,0,253,243,192,113,192,113,192,113,192,113,192, - 113,192,123,192,110,224,96,0,112,0,112,0,11,12,24,12, - 0,0,127,224,249,128,249,128,249,128,249,128,121,128,25,128, - 25,128,25,128,25,128,25,128,127,224,4,3,3,5,0,3, - 96,240,96,4,4,4,6,0,253,64,96,48,224,4,7,7, - 6,1,5,32,224,96,96,96,96,240,5,7,7,6,0,5, - 112,216,216,216,112,0,248,6,5,5,8,1,2,144,216,108, - 216,144,12,12,24,14,1,0,32,64,224,192,97,128,97,0, - 99,0,98,32,246,96,12,224,9,32,27,240,48,96,32,240, - 12,12,24,14,1,0,32,64,224,192,97,128,97,0,99,0, - 98,224,247,48,13,176,8,32,24,64,48,240,33,240,13,12, - 24,14,0,0,120,32,204,96,76,192,24,128,77,128,205,16, - 123,48,6,112,4,144,13,248,24,48,16,120,8,12,12,8, - 0,253,8,28,28,8,0,8,48,112,230,239,102,60,13,16, - 32,13,0,0,24,0,28,0,6,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,16,32,13,0,0,1,128,3,128,6,0, - 0,0,6,0,7,0,7,0,15,0,11,128,27,128,17,192, - 63,192,49,192,32,224,96,224,241,248,13,16,32,13,0,0, - 2,0,7,0,13,128,0,0,6,0,7,0,7,0,15,0, - 11,128,27,128,17,192,63,192,49,192,32,224,96,224,241,248, - 13,15,30,13,0,0,14,128,23,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,15,30,13,0,0,25,128,25,128,0,0, - 6,0,7,0,7,0,15,0,11,128,27,128,17,192,63,192, - 49,192,32,224,96,224,241,248,13,16,32,13,0,0,6,0, - 11,0,6,0,0,0,6,0,7,0,7,0,15,0,11,128, - 27,128,17,192,63,192,49,192,32,224,96,224,241,248,16,12, - 24,16,255,0,31,255,7,195,5,195,5,201,9,216,9,248, - 17,216,31,201,33,193,33,195,97,195,247,255,11,15,30,13, - 1,253,15,160,56,224,112,96,112,32,224,32,224,0,224,0, - 224,32,112,32,112,64,56,192,15,0,12,0,6,0,28,0, - 11,16,32,12,0,0,24,0,28,0,6,0,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,11,16,32,12,0,0,1,128,3,128, - 6,0,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,32,56,32,56,96,56,96,255,224,11,16,32,12, - 0,0,2,0,7,0,13,128,0,0,255,224,56,96,56,96, - 57,32,59,0,63,0,59,0,57,32,56,32,56,96,56,96, - 255,224,11,15,30,12,0,0,25,128,25,128,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,7,16,16,7,0,0,96,112,24,0, - 254,56,56,56,56,56,56,56,56,56,56,254,7,16,16,7, - 0,0,12,28,48,0,254,56,56,56,56,56,56,56,56,56, - 56,254,7,16,16,7,0,0,16,56,108,0,254,56,56,56, - 56,56,56,56,56,56,56,254,7,15,15,7,0,0,108,108, - 0,254,56,56,56,56,56,56,56,56,56,56,254,13,12,24, - 14,0,0,255,128,56,224,56,112,56,112,56,56,126,56,56, - 56,56,56,56,112,56,112,56,224,255,128,14,15,30,14,0, - 0,7,64,11,128,0,0,240,124,56,16,60,16,62,16,47, - 16,39,144,35,208,33,240,32,240,32,112,32,48,248,16,12, - 16,32,14,1,0,24,0,28,0,6,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,16,32,14,1,0,1,128,3,128,6, - 0,0,0,15,0,57,192,112,224,112,224,224,112,224,112,224, - 112,224,112,112,224,112,224,57,192,15,0,12,16,32,14,1, - 0,6,0,15,0,25,128,0,0,15,0,57,192,112,224,112, - 224,224,112,224,112,224,112,224,112,112,224,112,224,57,192,15, - 0,12,15,30,14,1,0,14,128,23,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,15,30,14,1,0,25,128,25,128,0, - 0,15,0,57,192,112,224,112,224,224,112,224,112,224,112,224, - 112,112,224,112,224,57,192,15,0,8,8,8,10,1,0,66, - 231,126,56,28,126,231,66,12,14,28,14,1,255,0,16,15, - 32,57,192,112,224,112,224,225,112,226,112,228,112,232,112,112, - 224,112,224,57,192,79,0,128,0,14,16,32,14,0,0,6, - 0,7,0,1,128,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,14, - 16,32,14,0,0,0,96,0,224,1,128,0,0,254,124,56, - 16,56,16,56,16,56,16,56,16,56,16,56,16,56,16,28, - 32,30,96,7,128,14,16,32,14,0,0,1,128,3,192,6, - 96,0,0,254,124,56,16,56,16,56,16,56,16,56,16,56, - 16,56,16,56,16,28,32,30,96,7,128,14,15,30,14,0, - 0,6,96,6,96,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,13, - 16,32,12,255,0,0,192,1,192,3,0,0,0,254,248,56, - 96,28,64,28,128,14,128,15,0,7,0,7,0,7,0,7, - 0,7,0,31,192,12,12,24,13,0,0,254,0,56,0,63, - 192,56,224,56,112,56,112,56,112,56,224,63,192,56,0,56, - 0,254,0,10,12,24,10,0,0,31,0,51,128,115,128,115, - 128,115,0,119,0,113,128,113,192,113,192,113,192,123,128,247, - 0,9,12,24,10,0,0,96,0,112,0,24,0,0,0,126, - 0,231,0,199,0,31,0,103,0,231,0,239,0,119,128,9, - 12,24,10,0,0,6,0,14,0,24,0,0,0,126,0,231, - 0,199,0,31,0,103,0,231,0,239,0,119,128,9,12,24, - 10,0,0,16,0,56,0,108,0,0,0,126,0,231,0,199, - 0,31,0,103,0,231,0,239,0,119,128,9,11,22,10,0, - 0,58,0,92,0,0,0,126,0,231,0,199,0,31,0,103, - 0,231,0,239,0,119,128,9,11,22,10,0,0,108,0,108, - 0,0,0,126,0,231,0,199,0,31,0,103,0,231,0,239, - 0,119,128,9,12,24,10,0,0,24,0,44,0,24,0,0, - 0,126,0,231,0,199,0,31,0,103,0,231,0,239,0,119, - 128,13,8,16,15,0,0,125,224,231,48,199,56,63,248,103, - 0,231,24,239,48,123,224,8,11,11,9,0,253,62,115,231, - 227,224,227,118,60,24,12,56,9,12,24,10,0,0,48,0, - 56,0,12,0,0,0,62,0,119,0,227,128,255,128,224,0, - 225,128,115,0,62,0,9,12,24,10,0,0,6,0,14,0, - 24,0,0,0,62,0,119,0,227,128,255,128,224,0,225,128, - 115,0,62,0,9,12,24,10,0,0,8,0,28,0,54,0, - 0,0,62,0,119,0,227,128,255,128,224,0,225,128,115,0, - 62,0,9,11,22,10,0,0,54,0,54,0,0,0,62,0, - 119,0,227,128,255,128,224,0,225,128,115,0,62,0,5,12, - 12,6,0,0,192,224,48,0,240,112,112,112,112,112,112,248, - 5,12,12,6,0,0,24,56,96,0,240,112,112,112,112,112, - 112,248,5,12,12,6,0,0,32,112,216,0,240,112,112,112, - 112,112,112,248,5,11,11,6,0,0,216,216,0,240,112,112, - 112,112,112,112,248,9,13,26,11,0,0,96,0,59,0,28, - 0,54,0,7,0,31,0,119,128,227,128,227,128,227,128,227, - 128,119,0,28,0,11,11,22,11,255,0,14,128,23,0,0, - 0,247,128,121,192,113,192,113,192,113,192,113,192,113,192,251, - 224,10,12,24,11,0,0,24,0,28,0,6,0,0,0,63, - 0,115,128,225,192,225,192,225,192,225,192,115,128,63,0,10, - 12,24,11,0,0,3,0,7,0,12,0,0,0,63,0,115, - 128,225,192,225,192,225,192,225,192,115,128,63,0,10,12,24, - 11,0,0,12,0,30,0,51,0,0,0,63,0,115,128,225, - 192,225,192,225,192,225,192,115,128,63,0,10,11,22,11,0, - 0,29,0,46,0,0,0,63,0,115,128,225,192,225,192,225, - 192,225,192,115,128,63,0,10,11,22,11,0,0,54,0,54, - 0,0,0,63,0,115,128,225,192,225,192,225,192,225,192,115, - 128,63,0,8,8,8,10,1,0,24,24,0,255,255,0,24, - 24,9,12,24,10,0,254,0,128,1,0,30,0,115,0,231, - 128,235,128,235,128,243,128,103,0,60,0,64,0,128,0,11, - 12,24,11,255,0,24,0,28,0,6,0,0,0,243,192,113, - 192,113,192,113,192,113,192,113,192,123,192,62,224,11,12,24, - 11,255,0,3,0,7,0,12,0,0,0,243,192,113,192,113, - 192,113,192,113,192,113,192,123,192,62,224,11,12,24,11,255, - 0,4,0,14,0,27,0,0,0,243,192,113,192,113,192,113, - 192,113,192,113,192,123,192,62,224,11,11,22,11,255,0,27, - 0,27,0,0,0,243,192,113,192,113,192,113,192,113,192,113, - 192,123,192,62,224,11,15,30,10,255,253,3,0,7,0,12, - 0,0,0,251,224,112,192,56,128,25,128,29,0,15,0,14, - 0,6,0,52,0,116,0,56,0,10,15,30,11,255,253,240, - 0,112,0,112,0,112,0,119,0,123,128,113,192,113,192,113, - 192,113,192,123,128,119,0,112,0,112,0,252,0,11,14,28, - 10,255,253,27,0,27,0,0,0,251,224,48,192,56,128,25, - 128,29,0,15,0,14,0,6,0,52,0,116,0,56,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=14 len=30 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12r[2194] U8G_FONT_SECTION("u8g_font_ncenB12r") = { - 0,22,27,253,249,12,2,152,5,246,32,127,253,14,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=21 dy= 0 ascent=19 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14[5558] U8G_FONT_SECTION("u8g_font_ncenB14") = { - 0,24,32,253,248,14,3,71,7,51,32,255,252,19,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,5,0, - 1,4,14,14,7,1,252,96,240,240,96,0,96,96,96,240, - 240,240,240,240,96,9,13,26,11,1,254,0,128,0,128,31, - 0,115,128,227,128,228,0,228,0,232,0,232,128,113,128,30, - 0,32,0,32,0,10,14,28,11,0,0,31,0,49,128,115, - 128,115,128,112,0,112,0,56,0,255,128,28,0,28,0,24, - 64,112,192,159,192,239,128,9,9,18,10,0,2,221,128,255, - 128,99,0,193,128,193,128,193,128,99,0,255,128,221,128,14, - 14,28,15,0,0,252,60,120,24,56,16,28,48,30,32,14, - 96,7,192,31,240,3,128,31,240,3,128,3,128,3,128,15, - 224,2,14,14,11,4,0,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,7,16,16,8,0,254,120,204,140,192,112, - 124,158,134,194,242,124,28,4,196,204,120,6,2,2,10,2, - 11,204,204,14,14,28,15,0,0,7,128,24,96,32,16,71, - 200,76,200,152,68,152,4,152,4,152,4,76,72,71,136,32, - 16,24,96,7,128,7,8,8,8,0,6,120,204,60,204,220, - 110,0,254,8,5,5,9,0,3,51,102,204,102,51,9,6, - 12,10,0,2,255,128,255,128,1,128,1,128,1,128,1,128, - 5,3,3,6,0,3,248,248,248,14,14,28,15,0,0,7, - 128,24,96,32,16,95,136,76,200,140,196,140,196,143,132,141, - 132,76,200,94,232,32,16,24,96,7,128,6,2,2,8,1, - 11,252,252,6,6,6,7,0,8,120,204,132,132,204,120,10, - 11,22,11,0,0,12,0,12,0,12,0,255,192,255,192,12, - 0,12,0,12,0,0,0,255,192,255,192,6,8,8,6,0, - 6,120,204,204,24,48,96,196,252,6,8,8,6,0,6,120, - 204,12,56,12,204,204,120,5,4,4,7,1,11,24,56,112, - 192,12,13,26,13,0,252,249,240,112,224,112,224,112,224,112, - 224,112,224,112,224,121,224,110,240,96,0,240,0,240,0,96, - 0,13,14,28,14,0,0,63,248,126,112,254,112,254,112,254, - 112,254,112,126,112,62,112,14,112,14,112,14,112,14,112,14, - 112,31,248,4,4,4,5,0,3,96,240,240,96,4,4,4, - 6,1,252,64,112,48,224,6,8,8,6,0,6,48,240,48, - 48,48,48,48,252,6,8,8,7,0,6,120,204,204,204,204, - 120,0,252,8,5,5,9,0,3,204,102,51,102,204,14,14, - 28,15,0,0,48,96,240,96,48,192,48,192,49,128,49,128, - 51,24,255,56,6,120,6,216,13,152,13,252,24,24,24,60, - 14,14,28,15,0,0,48,96,240,96,48,192,48,192,49,128, - 49,128,51,120,255,204,6,204,6,24,12,48,12,96,24,196, - 24,252,14,14,28,15,0,0,120,96,204,96,12,192,56,192, - 13,128,205,128,207,24,123,56,6,120,6,216,13,152,13,252, - 24,24,24,60,9,14,28,10,0,252,12,0,30,0,30,0, - 12,0,0,0,12,0,24,0,48,0,96,0,227,0,227,128, - 227,128,243,0,124,0,14,19,38,14,255,0,12,0,14,0, - 7,0,1,128,0,0,1,0,1,128,3,128,3,192,5,192, - 4,192,8,224,8,224,16,112,31,240,32,112,32,56,96,56, - 240,124,14,19,38,14,255,0,0,96,0,224,1,192,3,0, - 0,0,1,0,1,128,3,128,3,192,5,192,4,192,8,224, - 8,224,16,112,31,240,32,112,32,56,96,56,240,124,14,19, - 38,14,255,0,1,128,3,192,6,96,12,48,0,0,1,0, - 1,128,3,128,3,192,5,192,4,192,8,224,8,224,16,112, - 31,240,32,112,32,56,96,56,240,124,14,18,36,14,255,0, - 3,144,7,224,9,192,0,0,1,0,1,128,3,128,3,192, - 5,192,4,192,8,224,8,224,16,112,31,240,32,112,32,56, - 96,56,240,124,14,17,34,14,255,0,6,96,6,96,0,0, - 1,0,1,128,3,128,3,192,5,192,4,192,8,224,8,224, - 16,112,31,240,32,112,32,56,96,56,240,124,14,19,38,14, - 255,0,1,128,2,64,2,64,1,128,0,0,1,0,1,128, - 3,128,3,192,5,192,4,192,8,224,8,224,16,112,31,240, - 32,112,32,56,96,56,240,124,20,14,42,21,0,0,3,255, - 240,0,248,112,0,184,48,1,56,144,1,56,144,2,57,128, - 4,63,128,4,57,128,15,248,128,16,56,144,16,56,16,32, - 56,48,96,56,112,240,255,240,12,18,36,14,0,252,15,144, - 60,112,112,48,112,48,224,16,224,16,224,0,224,0,224,0, - 224,16,240,16,112,32,60,96,15,128,2,0,3,128,1,128, - 7,0,11,19,38,13,0,0,48,0,56,0,28,0,6,0, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,11,19, - 38,13,0,0,1,128,3,128,7,0,12,0,0,0,255,224, - 112,224,112,96,113,32,113,32,115,0,127,0,115,0,113,0, - 113,32,112,32,112,96,112,224,255,224,11,19,38,13,0,0, - 6,0,15,0,25,128,48,192,0,0,255,224,112,224,112,96, - 113,32,113,32,115,0,127,0,115,0,113,0,113,32,112,32, - 112,96,112,224,255,224,11,17,34,13,0,0,25,128,25,128, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,6,19, - 19,9,0,0,192,224,112,24,0,124,56,56,56,56,56,56, - 56,56,56,56,56,56,124,6,19,19,9,1,0,12,28,56, - 96,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 8,19,19,9,0,0,24,60,102,195,0,124,56,56,56,56, - 56,56,56,56,56,56,56,56,124,6,17,17,9,1,0,204, - 204,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 14,14,28,16,0,0,255,192,112,240,112,56,112,56,112,28, - 112,28,252,28,112,28,112,28,112,28,112,56,112,56,112,240, - 255,192,14,18,36,16,0,0,7,32,15,192,19,128,0,0, - 240,124,120,56,60,16,60,16,62,16,47,16,39,144,35,208, - 33,240,32,240,32,240,32,112,112,48,248,16,14,19,38,16, - 0,0,12,0,14,0,7,0,1,128,0,0,15,192,60,240, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,112,56,60,240,15,192,14,19,38,16,0,0,0,192, - 1,192,3,128,6,0,0,0,15,192,60,240,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 60,240,15,192,14,19,38,16,0,0,3,0,7,128,12,192, - 24,96,0,0,15,192,60,240,112,56,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,112,56,60,240,15,192, - 14,18,36,16,0,0,7,32,15,192,19,128,0,0,15,192, - 60,240,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,60,240,15,192,14,17,34,16,0,0, - 12,192,12,192,0,0,15,192,60,240,112,56,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,112,56,60,240, - 15,192,10,10,20,11,0,0,64,128,225,192,115,128,63,0, - 30,0,30,0,63,0,115,128,225,192,64,128,14,15,30,16, - 0,0,0,8,15,208,60,240,112,56,112,88,224,156,225,28, - 225,28,226,28,228,28,232,28,112,56,48,56,60,240,79,192, - 14,19,38,16,0,0,12,0,14,0,7,0,1,128,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,14,19,38,16, - 0,0,0,96,0,224,1,192,3,0,0,0,248,124,112,56, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,56,96,31,192,14,19,38,16,0,0,3,0, - 7,128,12,192,24,96,0,0,248,124,112,56,112,16,112,16, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 56,96,31,192,14,17,34,16,0,0,12,192,12,192,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,13,19,38,15, - 0,0,0,96,0,224,1,192,3,0,0,0,252,120,120,48, - 56,32,60,96,28,64,30,128,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,31,192,12,14,28,14,1,0,248,0, - 112,0,112,0,127,192,113,224,112,240,112,240,112,240,112,240, - 113,224,127,128,112,0,112,0,248,0,11,14,28,12,0,0, - 30,0,51,128,113,192,113,192,113,192,113,128,119,0,113,192, - 112,224,112,224,112,224,112,224,113,192,247,0,10,14,28,11, - 0,0,48,0,56,0,28,0,6,0,0,0,127,0,227,128, - 195,128,7,128,59,128,227,128,227,128,231,128,121,192,10,14, - 28,11,0,0,3,0,7,0,14,0,24,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,30,0,51,0,97,128,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,13,26,11,0,0,24,128,63,0,70,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,12,24,11,0,0,51,0,51,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,18,0,18,0,12,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,16,9,18,17,0,0,63,120,99,206,227,135,7,135, - 59,255,227,128,227,129,231,195,120,252,9,13,26,10,0,252, - 31,0,115,128,225,128,224,0,224,0,224,0,224,128,113,128, - 30,0,8,0,14,0,6,0,28,0,10,14,28,11,0,0, - 48,0,56,0,28,0,6,0,0,0,30,0,115,128,225,192, - 225,192,255,192,224,0,224,64,112,192,31,0,10,14,28,11, - 0,0,3,0,7,0,14,0,24,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,10,14, - 28,11,0,0,12,0,30,0,51,0,97,128,0,0,30,0, - 115,128,225,192,225,192,255,192,224,0,224,64,112,192,31,0, - 10,12,24,11,0,0,51,0,51,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,6,14, - 14,6,255,0,192,224,112,24,0,120,56,56,56,56,56,56, - 56,124,6,14,14,6,0,0,12,28,56,96,0,240,112,112, - 112,112,112,112,112,248,8,14,14,6,255,0,24,60,102,195, - 0,120,56,56,56,56,56,56,56,124,5,12,12,6,0,0, - 216,216,0,240,112,112,112,112,112,112,112,248,11,14,28,12, - 0,0,192,0,51,0,28,0,102,0,3,0,31,128,113,192, - 224,224,224,224,224,224,224,224,224,224,113,192,31,0,12,13, - 26,13,0,0,12,64,31,128,35,0,0,0,247,192,121,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,11,14, - 28,12,0,0,48,0,56,0,28,0,6,0,0,0,31,0, - 113,192,224,224,224,224,224,224,224,224,224,224,113,192,31,0, - 11,14,28,12,0,0,1,128,3,128,7,0,12,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,11,14,28,12,0,0,6,0,15,0,25,128,48,192, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,13,26,12,0,0,24,128,63,0,70,0, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,12,24,12,0,0,51,0,51,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,10,10,20,11,0,0,12,0,12,0,0,0,0,0, - 255,192,255,192,0,0,0,0,12,0,12,0,10,11,22,11, - 0,255,1,0,31,0,115,128,227,192,229,192,229,192,233,192, - 233,192,115,128,62,0,32,0,12,14,28,13,0,0,24,0, - 28,0,14,0,3,0,0,0,249,240,112,224,112,224,112,224, - 112,224,112,224,112,224,121,224,62,240,12,14,28,13,0,0, - 3,0,7,0,14,0,24,0,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,12,14,28,13, - 0,0,6,0,15,0,25,128,48,192,0,0,249,240,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,12,12, - 24,13,0,0,25,128,25,128,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,11,18,36,12, - 0,252,1,128,3,128,7,0,12,0,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,12,18,36,12,255,252,240,0,112,0, - 112,0,112,0,112,0,119,128,120,224,112,112,112,112,112,112, - 112,112,112,112,120,224,119,128,112,0,112,0,112,0,248,0, - 11,16,32,12,0,252,25,128,25,128,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=20 dy= 0 ascent=16 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14r[2603] U8G_FONT_SECTION("u8g_font_ncenB14r") = { - 0,24,32,253,248,14,3,71,7,51,32,127,252,16,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 6 y=15 dx=26 dy= 0 ascent=24 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18[8114] U8G_FONT_SECTION("u8g_font_ncenB18") = { - 0,33,40,252,246,18,4,68,10,106,32,255,251,24,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,1,5,18, - 18,7,1,251,112,248,248,112,0,0,32,32,112,112,112,112, - 112,112,248,248,248,112,12,15,30,14,1,255,0,32,0,64, - 15,192,56,240,121,240,113,96,242,0,242,0,244,0,244,0, - 120,16,120,16,60,96,47,192,64,0,14,18,36,15,0,0, - 3,224,15,48,14,120,30,120,30,48,30,0,30,0,30,0, - 127,224,15,0,15,0,15,0,7,0,7,4,126,12,207,252, - 207,248,113,240,12,12,24,14,1,2,207,48,255,240,127,224, - 112,224,224,112,224,112,224,112,224,112,112,224,127,224,255,240, - 207,48,19,18,54,19,0,0,255,143,224,62,3,0,62,3, - 0,31,6,0,31,6,0,15,140,0,15,140,0,7,216,0, - 7,248,0,31,254,0,1,224,0,1,224,0,31,254,0,1, - 224,0,1,224,0,1,224,0,3,240,0,15,252,0,3,18, - 18,14,6,0,224,224,224,224,224,224,224,0,0,0,224,224, - 224,224,224,224,224,224,11,20,40,13,1,254,31,0,35,128, - 99,128,99,0,120,0,62,0,63,128,71,192,193,224,224,224, - 240,96,124,96,63,64,15,128,3,128,1,128,48,128,112,128, - 113,0,62,0,10,4,8,12,1,14,97,128,243,192,243,192, - 97,128,19,18,54,21,1,0,3,248,0,15,254,0,60,7, - 128,48,1,128,97,248,192,103,24,192,198,8,96,206,0,96, - 206,0,96,206,0,96,206,0,96,199,4,96,103,136,192,97, - 240,192,48,1,128,60,7,128,15,254,0,3,248,0,8,10, - 10,10,1,8,120,206,6,126,198,206,119,0,0,255,11,7, - 14,13,1,3,28,224,57,192,115,128,231,0,115,128,57,192, - 28,224,11,6,12,13,1,4,255,224,255,224,0,96,0,96, - 0,96,0,96,6,3,3,8,1,5,252,252,252,19,18,54, - 21,1,0,3,248,0,15,254,0,60,7,128,48,1,128,103, - 240,192,99,24,192,195,24,96,195,24,96,195,240,96,195,96, - 96,195,48,96,195,48,96,99,24,192,103,156,192,48,1,128, - 60,7,128,15,254,0,3,248,0,8,2,2,10,1,15,255, - 255,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,1,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,206,198,198,14,12,24,48,98,254,254,7,11,11,8,0, - 7,124,206,198,6,12,60,14,6,198,206,124,5,5,5,7, - 1,14,24,56,112,96,192,17,17,51,18,0,251,254,63,128, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,63,222,0,39,159, - 128,48,0,0,48,0,0,120,0,0,120,0,0,48,0,0, - 16,18,36,18,1,0,31,255,127,156,127,156,255,156,255,156, - 255,156,127,156,127,156,31,156,3,156,3,156,3,156,3,156, - 3,156,3,156,3,156,3,156,15,255,3,4,4,7,2,5, - 224,224,224,224,5,6,6,7,1,251,16,32,112,56,24,240, - 6,11,11,8,0,7,48,240,48,48,48,48,48,48,48,48, - 252,9,10,20,11,1,8,28,0,99,0,227,128,227,128,227, - 128,99,0,28,0,0,0,0,0,255,128,11,7,14,13,1, - 3,231,0,115,128,57,192,28,224,57,192,115,128,231,0,18, - 18,54,21,1,0,48,6,0,240,6,0,48,12,0,48,24, - 0,48,24,0,48,48,0,48,96,0,48,99,0,48,199,0, - 49,135,0,253,143,0,3,27,0,6,19,0,6,51,0,12, - 99,0,24,127,192,24,3,0,48,7,128,18,18,54,21,1, - 0,48,6,0,240,6,0,48,12,0,48,24,0,48,24,0, - 48,48,0,48,96,0,48,111,128,48,201,192,49,152,192,253, - 152,192,3,1,192,6,1,128,6,3,0,12,6,0,24,12, - 64,24,31,192,48,31,192,19,18,54,21,0,0,124,3,0, - 206,3,0,198,6,0,6,12,0,12,12,0,56,24,0,12, - 48,0,6,49,128,198,99,128,206,195,128,124,197,128,1,141, - 128,3,25,128,3,25,128,6,49,128,12,63,224,12,1,128, - 24,3,192,11,18,36,13,1,251,7,0,15,128,15,128,7, - 0,0,0,0,0,3,0,3,0,6,0,28,0,56,0,112, - 0,240,0,240,192,241,224,241,224,120,192,31,128,19,24,72, - 19,0,0,6,0,0,7,0,0,3,128,0,1,192,0,0, - 96,0,0,0,0,0,96,0,0,96,0,0,240,0,0,240, - 0,1,120,0,1,120,0,3,60,0,2,60,0,2,60,0, - 6,30,0,4,30,0,7,254,0,12,15,0,8,15,0,8, - 15,0,24,7,128,56,7,128,254,31,224,19,24,72,19,0, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,240,0,0,240,0,1, - 120,0,1,120,0,3,60,0,2,60,0,2,60,0,6,30, - 0,4,30,0,7,254,0,12,15,0,8,15,0,8,15,0, - 24,7,128,56,7,128,254,31,224,19,23,69,19,0,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,0,96, - 0,0,96,0,0,240,0,0,240,0,1,120,0,1,120,0, - 3,60,0,2,60,0,2,60,0,6,30,0,4,30,0,7, - 254,0,12,15,0,8,15,0,8,15,0,24,7,128,56,7, - 128,254,31,224,19,22,66,19,0,0,0,226,0,1,252,0, - 2,56,0,0,0,0,0,96,0,0,96,0,0,240,0,0, - 240,0,1,120,0,1,120,0,3,60,0,2,60,0,2,60, - 0,6,30,0,4,30,0,7,254,0,12,15,0,8,15,0, - 8,15,0,24,7,128,56,7,128,254,31,224,19,23,69,19, - 0,0,3,156,0,3,156,0,3,156,0,0,0,0,0,0, - 0,0,96,0,0,96,0,0,240,0,0,240,0,1,120,0, - 1,120,0,3,60,0,2,60,0,2,60,0,6,30,0,4, - 30,0,7,254,0,12,15,0,8,15,0,8,15,0,24,7, - 128,56,7,128,254,31,224,19,24,72,19,0,0,0,240,0, - 1,152,0,1,8,0,1,152,0,0,240,0,0,0,0,0, - 96,0,0,96,0,0,240,0,0,240,0,1,120,0,1,120, - 0,3,60,0,2,60,0,2,60,0,6,30,0,4,30,0, - 7,254,0,12,15,0,8,15,0,8,15,0,24,7,128,56, - 7,128,254,31,224,25,18,72,26,0,0,1,255,255,128,0, - 111,3,128,0,111,1,128,0,207,0,128,0,207,0,128,1, - 143,8,128,1,143,8,0,3,15,24,0,3,15,248,0,6, - 15,24,0,7,255,8,0,12,15,8,0,12,15,0,128,24, - 15,0,128,24,15,0,128,48,15,1,128,112,15,3,128,252, - 63,255,128,17,23,69,19,1,251,3,249,128,15,15,128,60, - 3,128,60,1,128,120,1,128,120,0,128,248,0,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,120,0,128, - 120,0,128,60,1,0,60,1,0,15,6,0,3,248,0,0, - 128,0,1,192,0,0,224,0,0,96,0,3,192,0,15,24, - 48,18,1,0,12,0,14,0,7,0,1,128,0,192,0,0, - 255,254,60,30,60,6,60,2,60,2,60,34,60,32,60,96, - 63,224,60,96,60,32,60,32,60,2,60,2,60,2,60,6, - 60,30,255,254,15,24,48,18,1,0,0,24,0,56,0,112, - 0,192,1,128,0,0,255,254,60,30,60,6,60,2,60,2, - 60,34,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,2,60,6,60,30,255,254,15,23,46,18,1,0, - 1,128,3,192,6,96,12,48,0,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,23, - 46,18,1,0,14,112,14,112,14,112,0,0,0,0,255,254, - 60,30,60,6,60,2,60,2,60,34,60,32,60,96,63,224, - 60,96,60,32,60,32,60,2,60,2,60,2,60,6,60,30, - 255,254,8,24,24,10,1,0,192,224,112,24,12,0,255,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 8,24,24,10,1,0,3,7,14,24,48,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,255,8,23, - 23,10,1,0,24,60,102,195,0,255,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,8,23,23,10,1, - 0,231,231,231,0,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,255,135,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,20,22,66,22,1,0,0,226,0,1,252,0, - 2,56,0,0,0,0,252,7,240,62,1,192,31,0,128,31, - 128,128,31,192,128,23,224,128,19,240,128,17,240,128,16,248, - 128,16,124,128,16,126,128,16,63,128,16,31,128,16,15,128, - 16,7,128,16,3,128,56,1,128,254,0,128,19,24,72,21, - 1,0,6,0,0,7,0,0,3,128,0,0,192,0,0,96, - 0,0,0,0,3,248,0,15,30,0,60,7,128,60,7,128, - 120,3,192,120,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,120,3,192,120,3,192,60,7, - 128,60,7,128,15,30,0,3,248,0,19,23,69,21,1,0, - 0,24,0,0,56,0,0,96,0,0,192,0,0,0,0,3, - 248,0,15,30,0,60,7,128,60,7,128,120,3,192,120,3, - 192,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,120,3,192,120,3,192,60,7,128,60,7,128,15, - 30,0,3,248,0,19,23,69,21,1,0,0,96,0,0,240, - 0,1,152,0,3,12,0,0,0,0,3,248,0,15,30,0, - 60,7,128,60,7,128,120,3,192,120,3,192,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,120,3, - 192,120,3,192,60,7,128,60,7,128,15,30,0,3,248,0, - 19,22,66,21,1,0,0,226,0,1,252,0,2,56,0,0, - 0,0,3,248,0,15,30,0,60,7,128,60,7,128,120,3, - 192,120,3,192,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,120,3,192,120,3,192,60,7,128,60, - 7,128,15,30,0,3,248,0,19,23,69,21,1,0,7,28, - 0,7,28,0,7,28,0,0,0,0,0,0,0,3,248,0, - 15,30,0,60,7,128,60,7,128,120,3,192,120,3,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,120,3,192,120,3,192,60,7,128,60,7,128,15,30,0, - 3,248,0,12,12,24,14,1,1,192,48,224,112,112,224,57, - 192,31,128,15,0,15,0,31,128,57,192,112,224,224,112,192, - 48,20,18,54,21,0,0,1,252,48,7,143,96,30,3,192, - 30,3,192,60,7,224,60,13,224,124,25,240,124,49,240,124, - 97,240,124,193,240,125,129,240,127,1,240,62,1,224,60,1, - 224,62,3,192,126,3,192,199,143,0,129,252,0,19,24,72, - 21,1,0,3,0,0,3,128,0,1,192,0,0,96,0,0, - 48,0,0,0,0,255,15,224,60,3,128,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,30,2,0,31,142,0,7,248,0,19,24,72,21,1, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 30,2,0,31,142,0,7,248,0,19,23,69,21,1,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,30,2,0,31,142, - 0,7,248,0,19,23,69,21,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,30,2,0,31,142,0,7,248,0,18, - 24,72,18,0,0,0,6,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,255,15,192,60,3,0,30,6,0, - 30,6,0,15,12,0,15,12,0,7,152,0,7,152,0,3, - 240,0,3,240,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,7,248,0,16,18,36, - 18,1,0,255,128,60,0,60,0,60,0,63,248,60,62,60, - 30,60,31,60,31,60,31,60,31,60,30,60,62,63,240,60, - 0,60,0,60,0,255,128,15,18,36,15,255,0,7,224,30, - 120,28,60,60,60,60,60,60,56,60,112,61,224,60,60,60, - 30,60,30,60,30,60,30,60,30,60,30,60,28,61,60,253, - 240,14,18,36,15,0,0,12,0,14,0,7,0,3,0,1, - 128,0,0,127,128,241,224,240,240,96,240,1,240,14,240,120, - 240,240,240,240,240,240,240,249,252,126,56,14,18,36,15,0, - 0,1,128,3,128,7,0,6,0,12,0,0,0,127,128,241, - 224,240,240,96,240,1,240,14,240,120,240,240,240,240,240,240, - 240,249,252,126,56,14,18,36,15,0,0,2,0,7,0,15, - 128,24,192,48,96,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 17,34,15,0,0,14,32,31,192,35,128,0,0,0,0,127, - 128,241,224,240,240,96,240,1,240,14,240,120,240,240,240,240, - 240,240,240,249,252,126,56,14,17,34,15,0,0,56,224,56, - 224,56,224,0,0,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 18,36,15,0,0,7,0,13,128,8,128,13,128,7,0,0, - 0,127,128,241,224,240,240,96,240,1,240,14,240,120,240,240, - 240,240,240,240,240,249,252,126,56,22,12,36,23,0,0,31, - 207,192,121,248,112,112,248,120,112,240,56,1,240,60,14,255, - 252,120,240,0,240,240,0,240,248,8,240,248,8,249,188,48, - 126,15,224,13,17,34,14,0,251,15,240,56,120,120,120,112, - 48,240,0,240,0,240,0,240,0,120,8,120,8,60,48,31, - 224,2,0,7,0,3,128,1,128,15,0,14,18,36,15,0, - 0,12,0,14,0,7,0,3,0,1,128,0,0,15,192,56, - 112,120,120,112,56,240,60,255,252,240,0,240,0,120,8,120, - 8,60,48,15,224,14,18,36,15,0,0,0,96,0,224,1, - 192,3,128,6,0,0,0,15,192,56,112,120,120,112,56,240, - 60,255,252,240,0,240,0,120,8,120,8,60,48,15,224,14, - 18,36,15,0,0,2,0,7,0,15,128,24,192,48,96,0, - 0,15,192,56,112,120,120,112,56,240,60,255,252,240,0,240, - 0,120,8,120,8,60,48,15,224,14,17,34,15,0,0,28, - 112,28,112,28,112,0,0,0,0,15,192,56,112,120,120,112, - 56,240,60,255,252,240,0,240,0,120,8,120,8,60,48,15, - 224,8,18,18,9,0,0,96,112,56,24,12,0,252,60,60, - 60,60,60,60,60,60,60,60,255,8,18,18,9,0,0,12, - 28,56,48,96,0,252,60,60,60,60,60,60,60,60,60,60, - 255,9,18,36,9,0,0,8,0,28,0,62,0,99,0,193, - 128,0,0,252,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,255,0,8,17,17,9,0, - 0,231,231,231,0,0,252,60,60,60,60,60,60,60,60,60, - 60,255,14,18,36,15,0,0,192,0,57,192,15,0,15,0, - 49,192,0,224,15,240,56,112,120,120,112,56,240,60,240,60, - 240,60,240,60,112,56,120,120,56,112,15,192,17,17,51,18, - 0,0,3,136,0,7,240,0,8,224,0,0,0,0,0,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,18,36,15,0,0,12,0,14,0,7, - 0,3,0,1,128,0,0,15,192,56,112,120,120,112,56,240, - 60,240,60,240,60,240,60,112,56,120,120,56,112,15,192,14, - 18,36,15,0,0,0,96,0,224,1,192,3,0,6,0,0, - 0,15,192,56,112,120,120,112,56,240,60,240,60,240,60,240, - 60,112,56,120,120,56,112,15,192,14,18,36,15,0,0,2, - 0,7,0,15,128,24,192,48,96,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,14,17,34,15,0,0,7,16,15,224,17,192,0, - 0,0,0,15,192,56,112,120,120,112,56,240,60,240,60,240, - 60,240,60,112,56,120,120,56,112,15,192,14,17,34,15,0, - 0,56,224,56,224,56,224,0,0,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,12,12,24,14,1,1,6,0,6,0,6,0,0, - 0,0,0,255,240,255,240,0,0,0,0,6,0,6,0,6, - 0,14,18,36,15,0,253,0,16,0,16,0,32,15,224,56, - 112,120,120,112,184,240,188,241,60,241,60,242,60,114,56,124, - 120,60,112,15,192,8,0,16,0,16,0,17,18,54,18,0, - 0,3,0,0,3,128,0,1,192,0,0,192,0,0,96,0, - 0,0,0,254,63,128,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,62,62, - 0,31,222,0,15,159,128,17,18,54,18,0,0,0,96,0, - 0,224,0,1,192,0,1,128,0,3,0,0,0,0,0,254, - 63,128,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,62,62,0,31,222,0, - 15,159,128,17,18,54,18,0,0,0,128,0,1,192,0,3, - 224,0,6,48,0,12,24,0,0,0,0,254,63,128,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,62,62,0,31,222,0,15,159,128,17, - 17,51,18,0,0,14,56,0,14,56,0,14,56,0,0,0, - 0,0,0,0,254,63,128,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,62, - 62,0,31,222,0,15,159,128,16,23,46,15,255,251,0,48, - 0,112,0,224,0,192,1,128,0,0,254,63,60,12,30,8, - 30,24,15,16,15,48,7,160,7,224,3,192,3,192,1,192, - 1,128,1,128,97,0,243,0,254,0,120,0,16,23,46,16, - 255,251,252,0,60,0,60,0,60,0,60,0,60,0,61,240, - 63,28,60,30,60,14,60,15,60,15,60,15,60,15,60,14, - 62,30,63,28,61,240,60,0,60,0,60,0,60,0,255,0, - 16,22,44,15,255,251,14,56,14,56,14,56,0,0,0,0, - 254,63,60,12,30,8,30,24,15,16,15,48,7,160,7,224, - 3,192,3,192,1,192,1,128,1,128,97,0,243,0,254,0, - 120,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=23 x= 6 y=13 dx=26 dy= 0 ascent=20 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18r[3736] U8G_FONT_SECTION("u8g_font_ncenB18r") = { - 0,33,40,252,246,18,4,68,10,106,32,127,251,20,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=33 x= 8 y=18 dx=33 dy= 0 ascent=33 len=132 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =33 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24[12964] U8G_FONT_SECTION("u8g_font_ncenB24") = { - 0,39,53,252,243,25,6,143,16,147,32,255,249,33,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,9,1,1,6,25,25,10,2,249,120,252,252, - 252,252,120,0,0,48,48,48,48,48,48,120,120,120,120,124, - 252,252,252,252,252,120,15,22,44,19,1,253,0,6,0,6, - 0,12,3,252,14,124,60,62,124,62,120,126,248,126,248,220, - 248,192,249,128,253,128,255,2,255,6,126,6,63,28,31,248, - 15,224,24,0,24,0,48,0,17,24,72,19,1,0,1,248, - 0,7,252,0,15,142,0,15,15,0,31,31,0,31,31,0, - 31,31,0,31,14,0,15,0,0,15,0,0,7,128,0,127, - 248,0,127,248,0,7,128,0,7,128,0,7,128,0,3,128, - 0,3,129,128,123,3,128,255,199,0,199,255,0,199,254,0, - 253,254,0,120,124,0,16,16,32,19,1,3,99,198,247,239, - 255,254,127,252,60,62,120,30,112,14,112,14,112,14,112,14, - 120,30,60,60,127,254,255,255,247,239,99,198,19,24,72,19, - 0,0,255,31,224,255,31,224,124,7,128,62,7,0,62,7, - 0,31,6,0,31,14,0,15,140,0,15,140,0,7,216,0, - 7,216,0,3,240,0,31,254,0,31,254,0,1,224,0,1, - 224,0,31,254,0,31,254,0,1,224,0,1,224,0,1,224, - 0,1,224,0,15,252,0,15,252,0,4,25,25,20,8,0, - 240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,240, - 240,240,240,240,240,240,240,240,240,12,29,58,16,2,253,31, - 0,115,128,99,192,227,192,227,192,241,128,120,0,124,0,62, - 0,30,0,63,0,111,128,199,192,227,224,225,224,240,240,120, - 112,124,112,62,96,31,192,15,128,7,192,3,224,97,224,240, - 224,240,224,240,224,121,192,63,0,11,5,10,11,0,18,96, - 192,241,224,241,224,241,224,96,192,24,25,75,25,1,0,0, - 255,0,3,255,192,7,129,224,30,0,112,24,0,24,48,0, - 12,112,127,14,96,243,134,97,193,134,227,193,135,195,128,131, - 195,128,3,195,128,3,195,128,3,195,128,3,195,128,7,193, - 192,134,225,225,134,96,255,12,112,60,28,56,0,56,28,0, - 112,15,129,192,3,255,128,0,254,0,11,15,30,12,0,10, - 63,0,227,192,241,192,227,192,15,192,113,192,225,192,227,192, - 247,224,253,224,0,0,0,0,0,0,255,224,255,224,12,11, - 22,16,2,3,4,16,12,48,24,96,56,224,113,192,243,192, - 113,192,56,224,24,96,12,48,4,16,16,10,20,20,2,3, - 255,255,255,255,255,255,255,255,0,15,0,15,0,15,0,15, - 0,15,0,15,8,4,4,11,1,6,255,255,255,255,23,25, - 75,24,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,56,48,0,24,97,254,12,96,231,12,192,227,142,192, - 227,134,192,227,134,192,231,6,192,252,6,192,238,6,192,231, - 6,192,231,6,192,227,134,96,227,140,99,241,204,48,0,24, - 24,0,24,28,0,112,7,0,224,3,255,128,0,252,0,11, - 3,6,11,0,18,255,224,255,224,255,224,9,10,20,13,2, - 13,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,62,0,16,17,34,20,2,0,3,192,3,192,3, - 192,3,192,255,255,255,255,255,255,255,255,3,192,3,192,3, - 192,3,192,0,0,255,255,255,255,255,255,255,255,10,14,28, - 11,0,9,63,0,99,128,193,192,241,192,241,192,113,192,3, - 128,7,0,14,0,24,64,48,64,127,192,255,192,255,192,11, - 14,28,11,0,9,63,0,115,192,113,192,33,192,1,192,3, - 128,31,0,3,192,1,224,113,224,241,224,225,224,99,192,63, - 0,7,6,6,11,2,17,12,30,62,124,240,192,20,23,69, - 22,1,249,254,63,192,254,63,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,15,192,62,15,192,63,31,192,63,255,192,63,247,240, - 55,199,240,48,0,0,48,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,21,25,75,25,1,0,15,255, - 248,63,255,248,127,227,192,127,227,192,255,227,192,255,227,192, - 255,227,192,255,227,192,127,227,192,127,227,192,63,227,192,31, - 227,192,7,227,192,1,227,192,1,227,192,1,227,192,1,227, - 192,1,227,192,1,227,192,1,227,192,1,227,192,1,227,192, - 1,227,192,15,255,248,15,255,248,6,6,6,9,1,5,120, - 252,252,252,252,120,7,7,7,11,1,249,24,48,124,14,14, - 220,120,9,14,28,11,1,9,12,0,252,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,11,15,30,12,0,10,14,0,63,128,113,192, - 241,224,224,224,224,224,224,224,241,224,113,192,63,128,14,0, - 0,0,0,0,127,224,127,224,12,11,22,16,2,3,130,0, - 195,0,97,128,113,192,56,224,60,240,56,224,113,192,97,128, - 195,0,130,0,25,23,92,28,1,0,12,0,56,0,252,0, - 48,0,28,0,112,0,28,0,224,0,28,0,192,0,28,1, - 192,0,28,1,128,0,28,3,128,0,28,7,0,0,28,7, - 2,0,28,14,6,0,28,12,14,0,28,28,30,0,255,184, - 62,0,0,56,110,0,0,112,206,0,0,97,142,0,0,227, - 14,0,0,195,255,128,1,192,14,0,3,128,14,0,3,0, - 14,0,7,0,63,128,25,23,92,28,1,0,12,0,56,0, - 252,0,112,0,28,0,112,0,28,0,224,0,28,0,192,0, - 28,1,192,0,28,1,128,0,28,3,128,0,28,7,0,0, - 28,6,126,0,28,14,199,0,28,13,135,128,28,29,227,128, - 255,185,231,128,0,56,231,128,0,112,15,0,0,96,14,0, - 0,224,28,0,1,192,48,128,1,192,96,128,3,128,255,128, - 3,1,255,128,7,1,255,128,26,23,92,28,0,0,63,0, - 28,0,115,192,56,0,113,192,56,0,33,192,112,0,1,192, - 96,0,3,128,224,0,31,0,192,0,3,193,192,0,1,227, - 128,0,113,227,129,0,241,231,3,0,225,230,7,0,99,206, - 15,0,63,28,31,0,0,28,55,0,0,56,103,0,0,48, - 199,0,0,113,135,0,0,97,255,192,0,224,7,0,1,192, - 7,0,1,192,7,0,3,128,31,192,15,25,50,16,1,249, - 3,192,7,224,7,224,7,224,7,224,3,192,0,0,0,0, - 1,128,1,128,1,128,3,128,7,0,31,0,62,0,126,0, - 124,0,252,124,252,124,252,126,252,124,124,60,126,60,63,240, - 15,192,25,31,124,25,0,0,0,48,0,0,0,120,0,0, - 0,124,0,0,0,62,0,0,0,15,0,0,0,3,0,0, - 0,0,0,0,0,28,0,0,0,30,0,0,0,62,0,0, - 0,63,0,0,0,127,0,0,0,127,128,0,0,127,128,0, - 0,255,128,0,0,207,192,0,1,207,192,0,1,143,192,0, - 1,135,224,0,3,135,224,0,3,7,240,0,7,3,240,0, - 7,255,240,0,7,255,248,0,14,1,248,0,12,1,252,0, - 28,0,252,0,28,0,254,0,62,0,254,0,255,131,255,128, - 255,131,255,128,25,32,128,25,0,0,0,1,128,0,0,3, - 192,0,0,7,192,0,0,15,128,0,0,30,0,0,0,24, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,25,31,124,25,0,0, - 0,28,0,0,0,62,0,0,0,127,0,0,0,227,128,0, - 1,128,192,0,0,0,0,0,0,28,0,0,0,28,0,0, - 0,30,0,0,0,62,0,0,0,63,0,0,0,127,0,0, - 0,127,128,0,0,127,128,0,0,255,128,0,0,207,192,0, - 1,207,192,0,1,143,192,0,1,135,224,0,3,135,224,0, - 3,7,240,0,7,3,240,0,7,255,240,0,7,255,248,0, - 14,1,248,0,12,1,252,0,28,0,252,0,28,0,254,0, - 62,0,254,0,255,131,255,128,255,131,255,128,25,31,124,25, - 0,0,0,56,96,0,0,127,224,0,0,255,192,0,0,195, - 128,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28, - 0,0,0,30,0,0,0,62,0,0,0,63,0,0,0,127, - 0,0,0,127,128,0,0,127,128,0,0,255,128,0,0,207, - 192,0,1,207,192,0,1,143,192,0,1,135,224,0,3,135, - 224,0,3,7,240,0,7,3,240,0,7,255,240,0,7,255, - 248,0,14,1,248,0,12,1,252,0,28,0,252,0,28,0, - 254,0,62,0,254,0,255,131,255,128,255,131,255,128,25,31, - 124,25,0,0,0,193,128,0,1,227,192,0,1,227,192,0, - 1,227,192,0,0,193,128,0,0,0,0,0,0,28,0,0, - 0,28,0,0,0,30,0,0,0,62,0,0,0,63,0,0, - 0,127,0,0,0,127,128,0,0,127,128,0,0,255,128,0, - 0,207,192,0,1,207,192,0,1,143,192,0,1,135,224,0, - 3,135,224,0,3,7,240,0,7,3,240,0,7,255,240,0, - 7,255,248,0,14,1,248,0,12,1,252,0,28,0,252,0, - 28,0,254,0,62,0,254,0,255,131,255,128,255,131,255,128, - 25,33,132,25,0,0,0,62,0,0,0,119,0,0,0,99, - 0,0,0,99,0,0,0,119,0,0,0,62,0,0,0,0, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,31,25,100,33,255,0, - 1,255,255,254,1,255,255,254,0,123,240,126,0,59,240,62, - 0,51,240,30,0,51,240,14,0,115,240,6,0,99,240,198, - 0,227,240,198,0,195,241,194,1,195,241,192,1,131,243,192, - 3,131,255,192,3,3,255,192,7,255,243,192,7,255,241,192, - 14,3,240,198,14,3,240,198,12,3,240,198,28,3,240,14, - 24,3,240,14,56,3,240,30,124,3,240,126,255,31,255,254, - 255,31,255,254,22,32,96,24,1,249,0,126,24,3,255,184, - 7,193,248,31,128,248,31,0,120,62,0,56,126,0,56,126, - 0,24,254,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,254,0,0,254,0,12,254,0,28, - 126,0,24,126,0,56,63,0,48,31,128,112,15,193,224,7, - 255,192,0,255,0,0,48,0,0,96,0,0,248,0,0,28, - 0,0,28,0,1,184,0,0,240,0,21,32,96,23,1,0, - 0,192,0,1,224,0,1,240,0,0,248,0,0,60,0,0, - 12,0,0,0,0,255,255,248,255,255,248,31,129,248,31,128, - 248,31,128,120,31,128,56,31,128,56,31,134,24,31,134,24, - 31,142,0,31,142,0,31,158,0,31,254,0,31,254,0,31, - 158,0,31,142,0,31,134,24,31,134,24,31,134,24,31,128, - 56,31,128,56,31,128,120,31,129,248,255,255,248,255,255,248, - 21,32,96,23,1,0,0,3,0,0,7,128,0,15,128,0, - 31,0,0,60,0,0,48,0,0,0,0,255,255,248,255,255, - 248,31,129,248,31,128,248,31,128,120,31,128,56,31,128,56, - 31,134,24,31,134,24,31,142,0,31,142,0,31,158,0,31, - 254,0,31,254,0,31,158,0,31,142,0,31,134,24,31,134, - 24,31,134,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,21,32,96,23,1,0,0,56,0,0, - 124,0,0,254,0,1,199,0,3,1,128,0,0,0,0,0, - 0,255,255,248,255,255,248,31,129,248,31,128,248,31,128,120, - 31,128,56,31,128,56,31,134,24,31,134,24,31,142,0,31, - 142,0,31,158,0,31,254,0,31,254,0,31,158,0,31,142, - 0,31,134,24,31,134,24,31,134,24,31,128,56,31,128,56, - 31,128,120,31,129,248,255,255,248,255,255,248,21,32,96,23, - 1,0,1,131,0,3,199,128,3,199,128,3,199,128,1,131, - 0,0,0,0,0,0,0,255,255,248,255,255,248,31,129,248, - 31,128,248,31,128,120,31,128,56,31,128,56,31,134,24,31, - 134,24,31,142,0,31,142,0,31,158,0,31,254,0,31,254, - 0,31,158,0,31,142,0,31,134,24,31,134,24,31,134,24, - 31,128,56,31,128,56,31,128,120,31,129,248,255,255,248,255, - 255,248,12,33,66,14,1,0,48,0,120,0,124,0,62,0, - 15,0,3,0,0,0,0,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,12,33,66,14,1,0, - 0,192,1,224,3,224,7,192,15,0,12,0,0,0,0,0, - 255,240,255,240,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,255,240, - 255,240,12,32,64,14,1,0,7,0,15,128,31,192,56,224, - 96,48,0,0,0,0,255,240,255,240,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,240,255,240,12,32,64,14,1,0,48,96, - 120,240,120,240,120,240,48,96,0,0,0,0,255,240,255,240, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,255,240,255,240,24,25, - 75,26,1,0,255,255,0,255,255,224,31,131,240,31,129,248, - 31,128,252,31,128,124,31,128,126,31,128,126,31,128,127,31, - 128,63,31,128,63,31,128,63,255,248,63,255,248,63,31,128, - 63,31,128,63,31,128,63,31,128,127,31,128,126,31,128,126, - 31,128,252,31,128,248,31,131,240,255,255,224,255,255,0,27, - 31,124,27,0,0,0,56,96,0,0,127,224,0,0,255,192, - 0,0,195,128,0,0,0,0,0,0,0,0,0,255,128,127, - 224,255,192,127,224,63,224,15,0,15,224,6,0,15,240,6, - 0,15,248,6,0,15,252,6,0,13,254,6,0,12,254,6, - 0,12,255,6,0,12,127,134,0,12,63,198,0,12,31,230, - 0,12,15,230,0,12,15,246,0,12,7,254,0,12,3,254, - 0,12,1,254,0,12,0,254,0,12,0,126,0,12,0,126, - 0,12,0,62,0,30,0,30,0,255,192,14,0,255,192,6, - 0,24,32,96,26,1,0,1,128,0,3,192,0,3,224,0, - 1,240,0,0,120,0,0,24,0,0,0,0,0,126,0,3, - 255,192,15,193,240,31,128,248,63,0,252,62,0,124,126,0, - 126,126,0,126,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,126, - 0,126,126,0,126,62,0,124,63,0,252,31,128,248,15,193, - 240,3,255,192,0,126,0,24,32,96,26,1,0,0,0,192, - 0,1,224,0,3,224,0,7,192,0,15,0,0,12,0,0, - 0,0,0,126,0,3,255,192,15,193,240,31,128,248,63,0, - 252,62,0,124,126,0,126,126,0,126,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,126,0,126,126,0,126,62,0,124,63,0, - 252,31,128,248,15,193,240,3,255,192,0,126,0,24,32,96, - 26,1,0,0,28,0,0,62,0,0,127,0,0,227,128,1, - 128,192,0,0,0,0,0,0,0,126,0,3,255,192,15,193, - 240,31,128,248,63,0,252,62,0,124,126,0,126,126,0,126, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,126,0,126,126,0, - 126,62,0,124,63,0,252,31,128,248,15,193,240,3,255,192, - 0,126,0,24,31,93,26,1,0,0,112,192,0,255,192,1, - 255,128,1,135,0,0,0,0,0,0,0,0,126,0,3,255, - 192,15,193,240,31,128,248,63,0,252,62,0,124,126,0,126, - 126,0,126,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,126,0, - 126,126,0,126,62,0,124,63,0,252,31,128,248,15,193,240, - 3,255,192,0,126,0,24,32,96,26,1,0,0,193,128,1, - 227,192,1,227,192,1,227,192,0,193,128,0,0,0,0,0, - 0,0,126,0,3,255,192,15,193,240,31,128,248,63,0,252, - 62,0,124,126,0,126,126,0,126,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,252,0, - 63,252,0,63,126,0,126,126,0,126,62,0,124,63,0,252, - 31,128,248,15,193,240,3,255,192,0,126,0,16,17,34,20, - 2,0,32,4,112,14,248,31,252,63,126,126,63,252,31,248, - 15,240,7,224,15,240,31,248,63,252,126,126,252,63,248,31, - 112,14,32,4,24,27,81,26,1,255,0,0,12,0,126,24, - 3,255,248,7,195,240,31,128,248,31,0,248,62,0,252,126, - 1,254,126,3,126,254,7,127,252,6,63,252,12,63,252,28, - 63,252,24,63,252,48,63,252,96,63,252,224,63,254,192,127, - 127,128,126,127,128,126,63,0,124,31,0,248,31,128,248,15, - 193,224,27,255,192,48,126,0,48,0,0,26,32,128,28,1, - 0,0,48,0,0,0,120,0,0,0,124,0,0,0,62,0, - 0,0,15,0,0,0,3,0,0,0,0,0,0,255,240,255, - 192,255,240,255,192,31,128,30,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,28,0,15,192,24, - 0,15,224,56,0,7,248,240,0,3,255,224,0,0,255,192, - 0,26,32,128,28,1,0,0,0,96,0,0,0,240,0,0, - 1,240,0,0,3,224,0,0,7,128,0,0,6,0,0,0, - 0,0,0,255,240,255,192,255,240,255,192,31,128,30,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,28,0,15,192,24,0,15,224,56,0,7,248,240,0,3, - 255,224,0,0,255,192,0,26,32,128,28,1,0,0,14,0, - 0,0,31,0,0,0,63,128,0,0,113,192,0,0,192,96, - 0,0,0,0,0,0,0,0,0,255,240,255,192,255,240,255, - 192,31,128,30,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,28,0,15,192,24,0,15,224,56, - 0,7,248,240,0,3,255,224,0,0,255,192,0,26,32,128, - 28,1,0,0,48,96,0,0,120,240,0,0,120,240,0,0, - 120,240,0,0,48,96,0,0,0,0,0,0,0,0,0,255, - 240,255,192,255,240,255,192,31,128,30,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,28,0,15, - 192,24,0,15,224,56,0,7,248,240,0,3,255,224,0,0, - 255,192,0,24,33,99,24,0,0,0,0,96,0,0,240,0, - 1,240,0,3,224,0,7,128,0,6,0,0,0,0,0,0, - 0,255,241,255,255,241,255,63,128,124,31,192,56,31,192,112, - 15,224,112,15,224,224,7,240,192,3,241,192,3,249,128,1, - 251,128,1,255,0,0,255,0,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,3,255,192,3,255,192,22,25,75,24, - 1,0,255,240,0,255,240,0,31,128,0,31,128,0,31,128, - 0,31,255,128,31,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,255,240,0,18,25,75, - 20,0,0,3,252,0,7,190,0,15,15,0,15,15,0,31, - 15,128,31,15,128,31,15,128,31,15,0,31,15,0,31,14, - 0,31,28,0,31,126,0,31,15,128,31,15,128,31,7,192, - 31,7,192,31,7,192,31,7,192,31,7,192,31,7,192,31, - 7,128,31,7,128,31,79,0,255,254,0,255,120,0,18,23, - 69,20,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,15,240,0,63,252,0,120, - 62,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,18,23,69,20,1,0,0, - 96,0,0,240,0,1,240,0,3,224,0,7,128,0,6,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,22,66,20,1,0,1,192,0,3,224,0, - 7,240,0,14,56,0,24,12,0,0,0,0,15,240,0,63, - 252,0,120,62,0,124,62,0,124,62,0,56,62,0,0,62, - 0,3,254,0,31,190,0,126,62,0,124,62,0,252,62,0, - 252,62,0,252,127,64,127,255,192,63,143,128,18,22,66,20, - 1,0,7,12,0,15,252,0,31,248,0,24,112,0,0,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,23,69,20,1,0,12,24,0,30,60,0, - 30,60,0,30,60,0,12,24,0,0,0,0,0,0,0,15, - 240,0,63,252,0,120,62,0,124,62,0,124,62,0,56,62, - 0,0,62,0,3,254,0,31,190,0,126,62,0,124,62,0, - 252,62,0,252,62,0,252,127,64,127,255,192,63,143,128,18, - 23,69,20,1,0,3,224,0,7,112,0,6,48,0,6,48, - 0,7,112,0,3,224,0,0,0,0,15,240,0,63,252,0, - 120,62,0,124,62,0,124,62,0,56,62,0,0,62,0,3, - 254,0,31,190,0,126,62,0,124,62,0,252,62,0,252,62, - 0,252,127,64,127,255,192,63,143,128,26,16,64,28,1,0, - 7,224,248,0,30,123,222,0,56,63,15,0,124,63,15,128, - 124,62,7,128,120,62,7,192,49,254,7,192,15,255,255,192, - 63,255,255,192,126,62,0,0,252,62,0,0,248,63,0,192, - 248,127,1,128,252,239,131,128,127,199,255,0,63,1,252,0, - 15,23,46,17,1,249,3,240,14,60,62,62,124,62,124,62, - 248,28,248,0,248,0,248,0,248,0,252,2,252,6,126,6, - 63,28,31,248,7,240,1,128,3,0,7,192,0,224,0,224, - 13,192,7,128,16,23,46,18,1,0,6,0,15,0,15,128, - 7,192,1,224,0,96,0,0,3,224,14,120,60,60,124,30, - 124,30,248,31,248,31,255,255,255,255,248,0,248,0,252,3, - 124,6,63,14,31,252,7,240,16,23,46,18,1,0,0,48, - 0,120,0,248,1,240,3,192,3,0,0,0,3,224,14,120, - 60,60,124,30,124,30,248,31,248,31,255,255,255,255,248,0, - 248,0,252,3,124,6,63,14,31,252,7,240,16,22,44,18, - 1,0,1,192,3,224,7,240,14,56,24,12,0,0,3,224, - 14,120,60,60,124,30,124,30,248,31,248,31,255,255,255,255, - 248,0,248,0,252,3,124,6,63,14,31,252,7,240,16,23, - 46,18,1,0,12,24,30,60,30,60,30,60,12,24,0,0, - 0,0,3,224,14,120,60,60,124,30,124,30,248,31,248,31, - 255,255,255,255,248,0,248,0,252,3,124,6,63,14,31,252, - 7,240,9,23,46,11,1,0,96,0,240,0,248,0,124,0, - 30,0,6,0,0,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,128,9,23,46,11,1,0,6,0,15,0, - 31,0,62,0,120,0,96,0,0,0,254,0,254,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,11,22,44,11,255,0, - 14,0,31,0,63,128,113,192,192,96,0,0,63,128,63,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,63,224,63,224,11,23,46,11, - 0,0,96,192,241,224,241,224,241,224,96,192,0,0,0,0, - 127,0,127,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,127,192,127,192, - 17,26,78,20,1,0,0,4,0,14,14,0,15,156,0,3, - 248,0,1,240,0,3,248,0,7,120,0,14,60,0,4,62, - 0,0,30,0,3,255,0,15,63,0,60,31,0,124,31,128, - 120,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,124,31,0,124,31,0,62,62,0,15,248, - 0,3,224,0,20,22,66,22,1,0,3,134,0,7,254,0, - 15,252,0,12,56,0,0,0,0,0,0,0,254,62,0,254, - 255,128,63,255,128,63,143,192,63,7,192,63,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,7,192,62,7,192, - 62,7,192,62,7,192,255,159,240,255,159,240,17,23,69,19, - 1,0,6,0,0,15,0,0,15,128,0,7,192,0,1,224, - 0,0,96,0,0,0,0,3,224,0,15,248,0,62,62,0, - 124,31,0,124,31,0,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,124,31,0,124,31,0,62,62, - 0,15,248,0,3,224,0,17,23,69,19,1,0,0,24,0, - 0,60,0,0,124,0,0,248,0,1,224,0,1,128,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,22,66,19,1,0,1,192,0,3,224,0,7,240, - 0,14,56,0,24,12,0,0,0,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,17,22,66,19,1,0, - 3,134,0,7,254,0,15,252,0,12,56,0,0,0,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,23,69,19,1,0,12,24,0,30,60,0,30,60, - 0,30,60,0,12,24,0,0,0,0,0,0,0,3,224,0, - 15,248,0,62,62,0,124,31,0,124,31,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 0,124,31,0,62,62,0,15,248,0,3,224,0,17,17,51, - 20,2,0,1,192,0,3,224,0,3,224,0,3,224,0,1, - 192,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,0,0,0,0,0,0,1,192,0,3,224,0,3,224,0, - 3,224,0,1,192,0,17,22,66,19,1,253,0,2,0,0, - 6,0,0,12,0,3,236,0,15,248,0,62,62,0,124,63, - 0,124,111,0,248,79,128,248,207,128,248,143,128,249,143,128, - 251,15,128,250,15,128,126,31,0,124,31,0,62,62,0,31, - 248,0,27,224,0,48,0,0,48,0,0,32,0,0,20,23, - 69,22,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,254,31,192,254,31,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,15,192,62,15,192,63,31,192, - 31,255,192,31,247,240,7,199,240,20,23,69,22,1,0,0, - 24,0,0,60,0,0,124,0,0,248,0,1,224,0,1,128, - 0,0,0,0,254,31,192,254,31,192,62,7,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,15,192,62,15,192,63,31,192,31,255,192,31,247, - 240,7,199,240,20,22,66,22,1,0,0,224,0,1,240,0, - 3,248,0,7,28,0,12,6,0,0,0,0,254,31,192,254, - 31,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,15,192,62,15,192, - 63,31,192,31,255,192,31,247,240,7,199,240,20,23,69,22, - 1,0,6,12,0,15,30,0,15,30,0,15,30,0,6,12, - 0,0,0,0,0,0,0,254,31,192,254,31,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,15,192,62,15,192,63,31,192,31,255, - 192,31,247,240,7,199,240,19,30,90,19,0,249,0,12,0, - 0,30,0,0,62,0,0,124,0,0,240,0,0,192,0,0, - 0,0,255,143,224,255,143,224,63,3,128,63,3,128,31,3, - 0,31,135,0,15,134,0,15,198,0,7,204,0,7,236,0, - 3,248,0,3,248,0,1,248,0,1,240,0,0,240,0,0, - 224,0,0,96,0,112,192,0,248,192,0,249,128,0,255,0, - 0,127,0,0,60,0,0,20,29,87,22,0,249,255,0,0, - 255,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 63,0,31,127,192,31,199,224,31,131,224,31,131,240,31,3, - 240,31,3,240,31,1,240,31,1,240,31,1,240,31,3,240, - 31,131,224,31,131,224,31,199,192,31,255,128,31,63,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,127,224, - 0,127,224,0,19,30,90,19,0,249,3,6,0,7,143,0, - 7,143,0,7,143,0,3,6,0,0,0,0,0,0,0,255, - 143,224,255,143,224,63,3,128,63,3,128,31,3,0,31,135, - 0,15,134,0,15,198,0,7,204,0,7,236,0,3,248,0, - 3,248,0,1,248,0,1,240,0,0,240,0,0,224,0,0, - 96,0,112,192,0,248,192,0,249,128,0,255,0,0,127,0, - 0,60,0,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=25 x= 3 y=10 dx=20 dy= 0 ascent=25 len=72 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24n[868] U8G_FONT_SECTION("u8g_font_ncenB24n") = { - 0,39,53,252,243,24,0,0,0,0,42,58,0,25,251,24, - 0,12,15,30,17,2,10,6,0,14,0,14,0,230,112,230, - 112,246,240,63,192,15,0,127,224,246,240,230,112,230,112,7, - 0,7,0,6,0,16,16,32,20,2,1,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,6,11,11,9,2, - 251,120,248,252,252,252,124,28,24,48,112,224,8,4,4,11, - 1,6,255,255,255,255,6,6,6,9,1,0,120,252,252,252, - 252,120,10,25,50,9,255,0,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,7,0,6,0,14,0,14,0, - 12,0,28,0,28,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,224,0,224,0,192,0,16,24,48,19,1,0, - 3,192,15,240,30,120,60,60,124,62,120,30,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,120,30,120,30,124,62,60,60,30,120,15,240,3,192, - 13,24,48,19,3,0,1,128,7,128,255,128,255,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,255,248,255,248,17,24,72,19,1,0,15,240,0,63, - 252,0,120,126,0,240,63,0,248,31,0,252,31,0,252,31, - 0,252,31,0,124,63,0,56,62,0,0,124,0,0,248,0, - 0,240,0,1,224,0,3,192,0,3,129,128,7,1,128,14, - 1,128,28,3,128,63,255,128,127,255,0,127,255,0,255,255, - 0,255,255,0,16,24,48,19,1,0,15,224,63,248,120,124, - 248,62,252,62,252,62,252,62,120,62,0,124,0,112,7,224, - 7,192,0,248,0,126,0,62,0,63,120,31,252,31,252,31, - 252,63,248,62,120,126,63,248,7,224,17,24,72,19,0,0, - 0,4,0,0,12,0,0,28,0,0,60,0,0,124,0,0, - 252,0,1,252,0,1,252,0,3,124,0,6,124,0,12,124, - 0,28,124,0,56,124,0,112,124,0,224,124,0,192,124,0, - 255,255,128,255,255,128,0,124,0,0,124,0,0,124,0,0, - 124,0,3,255,128,3,255,128,16,24,48,19,1,0,31,255, - 63,254,63,254,63,252,63,240,48,0,48,0,48,0,48,0, - 55,224,63,248,56,124,48,62,32,62,0,31,0,31,56,31, - 124,31,252,31,252,62,120,62,112,252,63,240,15,192,17,24, - 72,19,1,0,3,240,0,15,252,0,31,30,0,62,62,0, - 60,62,0,124,62,0,120,28,0,248,0,0,248,0,0,248, - 0,0,249,248,0,255,254,0,255,127,0,252,31,0,248,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,124,31,0, - 124,31,0,62,62,0,31,252,0,7,240,0,16,24,48,19, - 2,0,255,255,255,254,255,254,255,252,255,252,192,24,192,24, - 192,56,128,112,0,112,0,240,0,224,1,224,1,224,3,224, - 3,192,7,192,7,192,15,192,15,192,15,192,15,192,15,192, - 7,128,17,24,72,19,1,0,7,240,0,15,252,0,60,62, - 0,56,31,0,120,15,0,120,15,0,120,15,0,124,15,0, - 126,30,0,127,252,0,63,240,0,31,252,0,15,254,0,63, - 255,0,120,127,0,248,31,128,240,15,128,240,15,128,240,15, - 0,240,15,0,248,30,0,124,60,0,63,240,0,7,192,0, - 17,24,72,19,1,0,3,192,0,31,248,0,62,124,0,124, - 62,0,252,31,0,248,31,0,248,15,128,248,15,128,248,15, - 128,252,31,128,252,63,128,127,111,128,63,207,128,31,143,128, - 0,15,128,0,15,128,112,15,0,248,31,0,252,31,0,248, - 30,0,248,62,0,112,252,0,63,240,0,15,192,0,6,16, - 16,9,2,0,120,252,252,252,252,120,0,0,0,0,120,252, - 252,252,252,120}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=32 x= 8 y=17 dx=32 dy= 0 ascent=26 len=124 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24r[5937] U8G_FONT_SECTION("u8g_font_ncenB24r") = { - 0,39,53,252,243,25,6,143,16,147,32,127,249,26,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08[2642] U8G_FONT_SECTION("u8g_font_ncenR08") = { - 0,14,18,254,252,8,1,180,3,120,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,3,0,1,1,8,8,4,1,254,128,128, - 0,128,128,128,128,128,5,7,7,6,0,255,16,120,168,160, - 200,112,64,6,8,8,7,0,0,56,72,64,248,32,32,68, - 248,6,6,6,7,0,1,132,120,72,72,120,132,7,8,8, - 8,0,0,198,68,40,108,16,124,16,56,1,8,8,6,2, - 0,128,128,128,0,0,128,128,128,4,10,10,5,0,254,112, - 144,128,96,144,144,96,16,144,224,3,1,1,4,0,6,160, - 9,8,16,10,0,0,62,0,65,0,156,128,164,128,160,128, - 156,128,65,0,62,0,4,6,6,5,0,2,224,32,96,176, - 0,240,5,3,3,6,0,1,72,144,72,5,3,3,6,0, - 1,248,8,8,3,1,1,4,0,2,224,9,8,16,10,0, - 0,62,0,65,0,188,128,148,128,152,128,182,128,65,0,62, - 0,4,1,1,5,0,6,240,3,4,4,4,0,4,64,160, - 160,64,5,5,5,6,0,0,32,248,32,0,248,3,4,4, - 3,0,4,96,160,64,224,3,4,4,3,0,4,224,64,32, - 192,2,2,2,3,0,6,64,128,5,7,7,6,0,254,144, - 144,144,144,232,128,128,6,10,10,7,0,254,124,168,168,168, - 104,40,40,40,40,124,1,2,2,4,1,2,128,128,2,3, - 3,3,0,254,128,64,192,3,4,4,3,0,4,64,192,64, - 224,4,6,6,5,0,2,96,144,144,96,0,240,5,3,3, - 6,0,1,144,72,144,7,8,8,7,0,0,72,200,80,240, - 36,44,94,68,6,8,8,7,0,0,72,200,80,240,44,52, - 72,92,7,8,8,7,0,0,232,72,48,208,36,44,94,68, - 4,8,8,5,0,254,32,32,0,32,64,128,144,96,7,11, - 11,8,0,0,32,16,0,16,16,40,40,68,124,68,238,7, - 11,11,8,0,0,8,16,0,16,16,40,40,68,124,68,238, - 7,11,11,8,0,0,16,40,0,16,16,40,40,68,124,68, - 238,7,11,11,8,0,0,20,40,0,16,16,40,40,68,124, - 68,238,7,10,10,8,0,0,40,0,16,16,40,40,68,124, - 68,238,7,11,11,8,0,0,16,40,16,16,16,40,40,68, - 124,68,238,10,8,16,11,0,0,31,192,12,64,21,64,23, - 0,61,0,36,64,68,64,231,192,6,10,10,7,0,254,60, - 68,128,128,128,128,68,56,16,48,6,11,11,7,0,0,32, - 16,0,252,68,84,112,80,68,68,252,6,11,11,7,0,0, - 8,16,0,252,68,84,112,80,68,68,252,6,11,11,7,0, - 0,16,40,0,252,68,84,112,80,68,68,252,6,10,10,7, - 0,0,40,0,252,68,84,112,80,68,68,252,3,11,11,4, - 0,0,128,64,0,224,64,64,64,64,64,64,224,3,11,11, - 4,0,0,32,64,0,224,64,64,64,64,64,64,224,3,11, - 11,4,0,0,64,160,0,224,64,64,64,64,64,64,224,3, - 10,10,4,0,0,160,0,224,64,64,64,64,64,64,224,7, - 8,8,8,0,0,248,68,66,226,66,66,68,248,8,11,11, - 9,0,0,20,40,0,231,98,82,82,74,74,70,230,7,11, - 11,8,0,0,32,16,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,8,16,0,56,68,130,130,130,130,68,56, - 7,11,11,8,0,0,16,40,0,56,68,130,130,130,130,68, - 56,7,11,11,8,0,0,20,40,0,56,68,130,130,130,130, - 68,56,7,10,10,8,0,0,40,0,56,68,130,130,130,130, - 68,56,5,5,5,6,0,0,136,80,32,80,136,8,8,8, - 8,255,0,29,34,69,73,81,97,98,156,7,11,11,8,0, - 0,32,16,0,238,68,68,68,68,68,68,56,7,11,11,8, - 0,0,8,16,0,238,68,68,68,68,68,68,56,7,11,11, - 8,0,0,16,40,0,238,68,68,68,68,68,68,56,7,10, - 10,8,0,0,40,0,238,68,68,68,68,68,68,56,7,11, - 11,8,0,0,8,16,0,198,68,40,40,16,16,16,56,6, - 8,8,7,0,0,192,120,68,68,68,120,64,224,6,8,8, - 7,0,0,48,72,72,88,68,68,84,216,5,8,8,6,0, - 0,64,32,0,96,144,112,144,248,5,8,8,6,0,0,32, - 64,0,96,144,112,144,248,5,8,8,6,0,0,32,80,0, - 96,144,112,144,248,5,8,8,6,0,0,80,160,0,96,144, - 112,144,248,5,7,7,6,0,0,80,0,96,144,112,144,248, - 5,8,8,6,0,0,32,80,32,96,144,112,144,248,7,5, - 5,8,0,0,108,146,126,144,238,4,7,7,5,0,254,112, - 144,128,144,96,32,96,4,8,8,5,0,0,64,32,0,96, - 144,240,128,112,4,8,8,5,0,0,32,64,0,96,144,240, - 128,112,4,8,8,5,0,0,32,80,0,96,144,240,128,112, - 4,7,7,5,0,0,80,0,96,144,240,128,112,3,8,8, - 4,0,0,128,64,0,192,64,64,64,224,3,8,8,4,0, - 0,32,64,0,192,64,64,64,224,3,8,8,4,0,0,64, - 160,0,192,64,64,64,224,3,7,7,4,0,0,160,0,192, - 64,64,64,224,4,8,8,5,0,0,80,96,160,96,144,144, - 144,96,6,8,8,7,0,0,40,80,0,176,72,72,72,236, - 4,8,8,5,0,0,64,32,0,96,144,144,144,96,4,8, - 8,5,0,0,32,64,0,96,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,7,7,5,0,0,80,0, - 96,144,144,144,96,5,5,5,6,0,0,32,0,248,0,32, - 5,6,6,5,0,255,104,144,176,208,96,128,5,8,8,6, - 0,0,64,32,0,144,144,144,144,104,5,8,8,6,0,0, - 32,64,0,144,144,144,144,104,5,8,8,6,0,0,32,80, - 0,144,144,144,144,104,5,7,7,6,0,0,80,0,144,144, - 144,144,104,6,10,10,6,0,254,16,32,0,220,136,80,80, - 32,32,192,5,10,10,5,255,254,192,64,64,112,72,72,72, - 112,64,224,6,9,9,6,0,254,80,0,220,136,80,80,32, - 32,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08r[1266] U8G_FONT_SECTION("u8g_font_ncenR08r") = { - 0,14,18,254,252,8,1,180,3,120,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=14 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10[3813] U8G_FONT_SECTION("u8g_font_ncenR10") = { - 0,18,24,254,250,11,2,24,5,38,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,4,0,1,1,11,11,4,1, - 253,128,128,0,128,128,128,128,128,128,128,128,6,11,11,8, - 1,254,4,4,120,204,144,144,160,228,120,128,128,7,11,11, - 8,0,0,60,98,70,64,32,252,16,16,96,178,206,7,7, - 7,8,0,2,186,68,130,130,130,68,186,9,11,22,8,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,62,0,8, - 0,62,0,8,0,28,0,1,11,11,9,4,0,128,128,128, - 128,0,0,128,128,128,128,128,5,13,13,7,1,254,120,136, - 128,192,112,152,136,200,112,24,8,136,240,4,2,2,6,1, - 8,144,144,12,11,22,14,1,0,15,0,48,192,79,32,89, - 32,144,16,144,16,152,144,79,32,64,32,48,192,15,0,5, - 7,7,6,0,4,96,144,112,144,248,0,248,6,5,5,7, - 0,1,36,72,144,72,36,7,4,4,9,0,1,254,2,2, - 2,4,1,1,5,0,3,240,12,11,22,14,1,0,15,0, - 48,192,94,32,73,32,137,16,142,16,139,16,89,160,64,32, - 48,192,15,0,5,1,1,5,0,8,248,4,4,4,6,1, - 7,96,144,144,96,7,7,7,9,1,0,16,16,254,16,16, - 0,254,4,6,6,5,0,5,96,144,32,64,144,240,4,6, - 6,5,0,5,96,144,32,16,144,96,3,3,3,5,1,8, - 32,64,128,8,10,10,9,0,253,231,66,66,66,66,102,123, - 64,96,64,7,13,13,9,1,254,126,212,212,212,212,116,20, - 20,20,20,20,20,62,2,2,2,4,1,3,192,192,3,4, - 4,5,0,253,64,64,32,192,3,6,6,5,1,5,64,192, - 64,64,64,224,4,7,7,5,0,4,96,144,144,144,96,0, - 240,6,5,5,7,0,1,144,72,36,72,144,10,11,22,12, - 0,0,65,0,193,0,66,0,66,0,68,0,228,128,9,128, - 18,128,20,128,39,192,32,128,10,11,22,12,0,0,65,0, - 193,0,66,0,66,0,68,0,229,128,10,64,16,128,17,0, - 34,64,35,192,10,11,22,12,0,0,97,0,145,0,34,0, - 18,0,148,0,100,128,9,128,18,128,20,128,39,192,32,128, - 5,11,11,6,0,253,32,32,0,32,32,32,64,128,136,200, - 112,11,14,28,10,255,0,8,0,4,0,0,0,4,0,4, - 0,10,0,10,0,10,0,17,0,17,0,63,128,32,128,32, - 128,251,224,11,14,28,10,255,0,2,0,4,0,0,0,4, - 0,4,0,10,0,10,0,10,0,17,0,17,0,63,128,32, - 128,32,128,251,224,11,14,28,10,255,0,4,0,10,0,17, - 0,4,0,4,0,10,0,10,0,10,0,17,0,17,0,63, - 128,32,128,32,128,251,224,11,14,28,10,255,0,12,128,19, - 0,0,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,13,26,10,255,0,17, - 0,17,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,14,28,10,255,0,12, - 0,18,0,12,0,4,0,4,0,10,0,10,0,10,0,17, - 0,17,0,63,128,32,128,32,128,251,224,14,11,22,15,0, - 0,15,252,5,4,9,4,9,32,17,32,17,224,63,32,33, - 32,65,4,65,4,227,252,9,14,28,11,1,253,30,128,97, - 128,64,128,192,128,128,0,128,0,128,0,192,128,64,128,97, - 0,30,0,8,0,4,0,24,0,9,14,28,10,0,0,16, - 0,8,0,0,0,255,128,32,128,32,128,36,0,36,0,60, - 0,36,0,36,0,32,128,32,128,255,128,9,14,28,10,0, - 0,4,0,8,0,0,0,255,128,32,128,32,128,36,0,36, - 0,60,0,36,0,36,0,32,128,32,128,255,128,9,14,28, - 10,0,0,12,0,18,0,0,0,255,128,32,128,32,128,36, - 0,36,0,60,0,36,0,36,0,32,128,32,128,255,128,9, - 14,28,10,0,0,18,0,18,0,0,0,255,128,32,128,32, - 128,36,0,36,0,60,0,36,0,36,0,32,128,32,128,255, - 128,5,14,14,6,0,0,64,32,0,248,32,32,32,32,32, - 32,32,32,32,248,5,14,14,6,0,0,16,32,0,248,32, - 32,32,32,32,32,32,32,32,248,5,14,14,6,0,0,48, - 72,0,248,32,32,32,32,32,32,32,32,32,248,5,14,14, - 6,0,0,80,80,0,248,32,32,32,32,32,32,32,32,32, - 248,10,11,22,11,0,0,255,0,32,128,32,192,32,64,32, - 64,248,64,32,64,32,64,32,192,32,128,255,0,12,14,28, - 13,0,0,12,128,19,0,0,0,225,240,48,64,48,64,40, - 64,44,64,38,64,35,64,33,64,32,192,32,64,248,64,10, - 14,28,11,0,0,8,0,4,0,0,0,30,0,97,128,64, - 128,192,192,128,64,128,64,128,64,192,192,64,128,97,128,30, - 0,10,14,28,11,0,0,2,0,4,0,0,0,30,0,97, - 128,64,128,192,192,128,64,128,64,128,64,192,192,64,128,97, - 128,30,0,10,14,28,11,0,0,12,0,18,0,0,0,30, - 0,97,128,64,128,192,192,128,64,128,64,128,64,192,192,64, - 128,97,128,30,0,10,14,28,11,0,0,25,0,38,0,0, - 0,30,0,97,128,64,128,192,192,128,64,128,64,128,64,192, - 192,64,128,97,128,30,0,10,14,28,11,0,0,18,0,18, - 0,0,0,30,0,97,128,64,128,192,192,128,64,128,64,128, - 64,192,192,64,128,97,128,30,0,7,7,7,9,1,0,130, - 68,40,16,40,68,130,11,11,22,11,255,0,15,32,48,192, - 32,192,97,96,66,32,68,32,72,32,112,96,32,64,112,192, - 143,0,12,14,28,13,0,0,8,0,4,0,0,0,249,240, - 32,64,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 48,128,31,0,12,14,28,13,0,0,1,0,2,0,0,0, - 249,240,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,48,128,31,0,12,14,28,13,0,0,6,0,9,0, - 0,0,249,240,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,48,128,31,0,12,14,28,13,0,0,9,0, - 9,0,0,0,249,240,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,48,128,31,0,11,14,28,10,255,0, - 2,0,4,0,0,0,251,224,96,128,49,0,17,0,26,0, - 10,0,4,0,4,0,4,0,4,0,31,0,9,11,22,10, - 0,0,248,0,32,0,63,0,33,128,32,128,32,128,33,0, - 62,0,32,0,32,0,248,0,7,11,11,8,0,0,56,100, - 68,76,88,68,66,66,66,86,220,7,11,11,8,0,0,32, - 16,8,0,56,76,4,60,196,140,118,7,11,11,8,0,0, - 8,16,32,0,56,76,4,60,196,140,118,7,11,11,8,0, - 0,16,40,68,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,50,76,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,72,72,0,56,76,4,60,196,140,118,7,11,11,8, - 0,0,48,72,48,0,56,76,4,60,196,140,118,11,7,14, - 12,0,0,59,192,78,96,4,32,63,224,196,0,142,32,115, - 192,6,10,10,7,0,253,120,204,128,128,128,196,120,32,16, - 96,6,11,11,7,0,0,64,32,16,0,120,204,132,252,128, - 196,120,6,11,11,7,0,0,8,16,32,0,120,204,132,252, - 128,196,120,6,11,11,7,0,0,16,40,68,0,120,204,132, - 252,128,196,120,6,10,10,7,0,0,72,72,0,120,204,132, - 252,128,196,120,3,11,11,4,0,0,128,64,32,0,192,64, - 64,64,64,64,224,3,11,11,4,0,0,32,64,128,0,192, - 64,64,64,64,64,224,5,11,11,4,255,0,32,80,136,0, - 96,32,32,32,32,32,112,4,10,10,4,255,0,144,144,0, - 96,32,32,32,32,32,112,7,11,11,7,255,0,76,48,208, - 8,60,102,66,66,66,102,60,8,10,10,9,0,0,50,76, - 0,220,102,66,66,66,66,231,6,11,11,7,0,0,64,32, - 16,0,120,204,132,132,132,204,120,6,11,11,7,0,0,16, - 32,64,0,120,204,132,132,132,204,120,6,11,11,7,0,0, - 32,80,136,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,100,152,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,72,72,0,120,204,132,132,132,204,120,7,7,7,9,1, - 0,16,16,0,254,0,16,16,6,9,9,7,0,255,8,120, - 220,148,164,164,204,120,64,8,11,11,9,0,0,32,16,8, - 0,231,66,66,66,66,102,59,8,11,11,9,0,0,2,4, - 8,0,231,66,66,66,66,102,59,8,11,11,9,0,0,8, - 20,34,0,231,66,66,66,66,102,59,8,10,10,9,0,0, - 36,36,0,231,66,66,66,66,102,59,7,14,14,8,0,253, - 4,8,16,0,238,68,68,40,40,16,16,32,160,192,7,14, - 14,8,0,253,192,64,64,64,92,102,66,66,66,102,92,64, - 64,224,7,13,13,8,0,253,72,72,0,238,68,68,40,40, - 16,16,32,160,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=12 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10r[1781] U8G_FONT_SECTION("u8g_font_ncenR10r") = { - 0,18,24,254,250,11,2,24,5,38,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12[4247] U8G_FONT_SECTION("u8g_font_ncenR12") = { - 0,21,26,253,250,12,2,59,5,140,32,255,253,16,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,1,1,2,12, - 12,5,1,253,192,192,0,64,64,64,64,192,192,192,192,192, - 6,12,12,9,1,254,4,4,56,76,204,144,144,228,100,56, - 64,64,9,12,24,9,0,0,30,0,49,0,35,0,35,0, - 48,0,16,0,254,0,16,0,16,0,112,128,191,0,78,0, - 7,8,8,9,1,2,186,108,198,130,130,198,108,186,9,12, - 24,9,0,0,243,128,97,0,34,0,50,0,20,0,20,0, - 62,0,8,0,62,0,8,0,8,0,62,0,1,12,12,10, - 4,0,128,128,128,128,128,0,0,128,128,128,128,128,6,15, - 15,8,1,253,56,72,64,96,48,88,140,132,196,104,48,24, - 8,72,112,5,2,2,5,0,9,216,216,12,12,24,12,0, - 0,31,128,48,192,71,32,205,176,152,144,144,16,144,16,152, - 144,205,176,71,32,48,192,31,128,5,7,7,6,0,5,224, - 144,112,144,232,0,240,6,5,5,7,0,1,36,72,216,72, - 36,8,5,5,10,1,1,255,1,1,1,1,4,1,1,5, - 0,3,240,12,12,24,12,0,0,31,128,48,192,95,32,201, - 176,137,144,143,16,137,16,137,144,200,176,92,224,48,192,31, - 128,5,1,1,5,0,9,248,5,5,5,7,1,7,112,136, - 136,136,112,7,9,9,10,1,0,16,16,16,254,16,16,16, - 0,254,5,7,7,6,0,5,112,216,136,16,32,72,248,5, - 7,7,6,0,5,112,216,136,48,136,216,112,3,3,3,5, - 0,9,32,96,128,10,11,22,10,0,253,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,125,192,96,0,96,0,96, - 0,8,15,15,10,0,253,127,234,202,202,202,234,122,10,10, - 10,10,10,10,10,31,2,2,2,5,1,3,192,192,3,4, - 4,5,1,253,64,64,32,192,3,7,7,6,1,5,64,192, - 64,64,64,64,224,4,7,7,5,0,5,96,144,144,144,96, - 0,240,6,5,5,7,0,1,144,72,108,72,144,11,12,24, - 14,1,0,64,64,192,192,65,128,65,0,66,0,70,64,236, - 192,9,64,18,64,51,224,96,64,64,224,11,12,24,13,1, - 0,64,128,193,128,67,0,66,0,68,0,77,192,251,96,18, - 32,32,192,97,0,195,32,131,224,13,12,24,14,0,0,112, - 24,216,48,136,96,48,192,136,128,217,144,115,48,6,80,4, - 144,12,248,24,16,48,56,7,12,12,7,0,253,24,24,0, - 16,16,48,96,192,196,206,100,56,11,16,32,12,0,0,24, - 0,12,0,2,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 16,32,12,0,0,3,0,6,0,8,0,0,0,4,0,4, - 0,14,0,14,0,22,0,19,0,19,0,63,128,33,128,65, - 128,64,192,243,224,11,16,32,12,0,0,4,0,14,0,17, - 0,0,0,4,0,4,0,14,0,14,0,22,0,19,0,19, - 0,63,128,33,128,65,128,64,192,243,224,11,15,30,12,0, - 0,29,0,46,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 15,30,12,0,0,18,0,18,0,0,0,4,0,4,0,14, - 0,14,0,22,0,19,0,19,0,63,128,33,128,65,128,64, - 192,243,224,11,16,32,12,0,0,12,0,18,0,12,0,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,16,12,24,17,0,0,15, - 255,2,195,2,193,4,193,4,200,8,248,8,216,31,201,16, - 193,32,193,32,195,251,255,10,15,30,12,1,253,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,8,0,4,0,24,0,10,16,32,12,0, - 0,24,0,12,0,2,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,10,16,32,12,0,0,3,0,6,0,8,0,0,0,255, - 192,48,192,48,64,48,64,50,0,62,0,54,0,50,0,48, - 64,48,64,48,192,255,192,10,16,32,12,0,0,4,0,14, - 0,17,0,0,0,255,192,48,192,48,64,48,64,50,0,62, - 0,54,0,50,0,48,64,48,64,48,192,255,192,10,15,30, - 12,0,0,17,0,17,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,6,16,16,7,0,0,192,96,16,0,252,48,48,48,48, - 48,48,48,48,48,48,252,6,16,16,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,252,6,16,16, - 7,0,0,32,112,136,0,252,48,48,48,48,48,48,48,48, - 48,48,252,6,15,15,7,0,0,72,72,0,252,48,48,48, - 48,48,48,48,48,48,48,252,12,12,24,13,0,0,255,0, - 49,192,48,96,48,96,48,48,124,48,48,48,48,48,48,96, - 48,96,49,192,255,0,13,15,30,13,0,0,14,64,19,128, - 0,0,240,248,56,32,60,32,44,32,46,32,39,32,35,160, - 33,160,32,224,32,224,32,96,248,32,11,16,32,13,1,0, - 24,0,12,0,2,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,16,32,13,1,0,1,128,3,0,4,0,0,0,14,0, - 49,128,96,192,96,192,192,96,192,96,192,96,192,96,96,192, - 96,192,49,128,14,0,11,16,32,13,1,0,4,0,14,0, - 17,0,0,0,14,0,49,128,96,192,96,192,192,96,192,96, - 192,96,192,96,96,192,96,192,49,128,14,0,11,15,30,13, - 1,0,14,128,23,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,15,30,13,1,0,17,0,17,0,0,0,14,0,49,128, - 96,192,96,192,192,96,192,96,192,96,192,96,96,192,96,192, - 49,128,14,0,8,8,8,10,1,0,129,66,36,24,24,36, - 66,129,11,14,28,13,1,255,0,32,14,64,49,128,97,192, - 97,64,194,96,196,96,196,96,200,96,80,192,112,192,49,128, - 78,0,128,0,13,16,32,13,0,0,12,0,6,0,1,0, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,13,16,32,13,0,0, - 0,192,1,128,2,0,0,0,252,248,48,32,48,32,48,32, - 48,32,48,32,48,32,48,32,48,32,48,32,24,64,15,128, - 13,16,32,13,0,0,2,0,7,0,8,128,0,0,252,248, - 48,32,48,32,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,24,64,15,128,13,15,30,13,0,0,8,128,8,128, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,12,16,32,12,0,0, - 1,128,3,0,4,0,0,0,252,240,48,64,24,128,24,128, - 13,0,13,0,6,0,6,0,6,0,6,0,6,0,31,128, - 11,12,24,11,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,192,63,128,48,0,48,0,252,0,8,12, - 12,10,1,0,60,102,99,99,102,124,102,99,99,99,118,236, - 7,12,12,9,1,0,64,96,16,0,120,204,204,28,108,204, - 204,118,7,12,12,9,1,0,4,12,16,0,120,204,204,28, - 108,204,204,118,7,12,12,9,1,0,16,56,68,0,120,204, - 204,28,108,204,204,118,7,11,11,9,1,0,52,88,0,120, - 204,204,28,108,204,204,118,7,11,11,9,1,0,72,72,0, - 120,204,204,28,108,204,204,118,7,13,13,9,1,0,48,72, - 72,48,0,120,204,204,28,108,204,204,118,12,8,16,13,0, - 0,121,192,206,32,198,48,31,240,102,0,198,16,207,32,121, - 192,6,11,11,7,0,253,56,108,204,192,192,196,108,56,32, - 16,96,7,12,12,8,0,0,32,48,8,0,56,68,198,254, - 192,192,102,60,7,12,12,8,0,0,4,12,16,0,56,68, - 198,254,192,192,102,60,7,12,12,8,0,0,16,56,68,0, - 56,68,198,254,192,192,102,60,7,11,11,8,0,0,36,36, - 0,56,68,198,254,192,192,102,60,4,12,12,5,0,0,128, - 192,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,16,48,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,4, - 11,11,5,0,0,144,144,0,224,96,96,96,96,96,96,240, - 7,13,13,8,0,0,64,38,24,104,12,60,110,198,198,198, - 198,108,56,9,11,22,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,99,0,247,128,7, - 12,12,8,0,0,64,96,16,0,56,108,198,198,198,198,108, - 56,7,12,12,8,0,0,4,12,16,0,56,108,198,198,198, - 198,108,56,7,12,12,8,0,0,16,56,68,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,52,88,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,72,72,0,56, - 108,198,198,198,198,108,56,8,7,7,10,1,1,24,24,0, - 255,0,24,24,7,10,10,8,0,255,2,60,100,206,214,214, - 230,76,120,128,9,12,24,10,0,0,32,0,48,0,8,0, - 0,0,231,0,99,0,99,0,99,0,99,0,99,0,99,0, - 61,128,9,12,24,10,0,0,2,0,6,0,8,0,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,61,128, - 9,12,24,10,0,0,8,0,28,0,34,0,0,0,231,0, - 99,0,99,0,99,0,99,0,99,0,99,0,61,128,9,11, - 22,10,0,0,36,0,36,0,0,0,231,0,99,0,99,0, - 99,0,99,0,99,0,99,0,61,128,8,15,15,9,0,253, - 2,6,8,0,247,98,54,52,28,24,8,24,16,208,224,8, - 14,14,9,0,253,224,96,96,124,102,99,99,99,99,102,124, - 96,96,240,8,14,14,9,0,253,36,36,0,247,98,54,52, - 28,24,8,24,16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=15 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12r[1976] U8G_FONT_SECTION("u8g_font_ncenR12r") = { - 0,21,26,253,250,12,2,59,5,140,32,127,253,13,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=19 dy= 0 ascent=19 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14[5319] U8G_FONT_SECTION("u8g_font_ncenR14") = { - 0,27,30,252,249,14,3,41,7,30,32,255,252,19,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,5,0,1,2,14,14,5, - 1,252,192,192,0,0,64,64,64,192,192,192,192,192,192,192, - 8,13,13,10,1,254,2,2,30,103,203,200,200,208,208,115, - 62,32,32,10,14,28,11,0,0,15,0,25,128,49,128,48, - 0,48,0,24,0,255,128,12,0,12,0,12,0,12,0,120, - 64,158,64,247,128,9,9,18,12,1,3,156,128,255,128,99, - 0,193,128,193,128,193,128,99,0,255,128,156,128,14,14,28, - 15,0,0,252,124,48,16,24,32,24,32,12,64,12,64,6, - 128,31,224,3,0,3,0,31,224,3,0,3,0,15,192,2, - 14,14,10,4,0,192,192,192,192,192,0,0,0,192,192,192, - 192,192,192,8,17,17,9,0,253,60,102,70,64,96,120,62, - 79,195,227,122,60,14,6,98,102,60,6,2,2,7,0,10, - 204,204,14,14,28,15,0,0,7,128,24,96,32,16,71,136, - 72,200,144,68,144,4,144,4,144,4,72,72,71,136,32,16, - 24,96,7,128,6,8,8,7,0,6,112,136,56,200,152,108, - 0,252,8,7,7,9,0,2,17,51,102,204,102,51,17,9, - 5,10,10,0,3,255,128,0,128,0,128,0,128,0,128,5, - 1,1,6,0,5,248,14,14,28,15,0,0,7,128,24,96, - 32,16,79,136,68,200,132,68,132,196,135,132,132,132,68,72, - 78,104,32,16,24,96,7,128,6,1,1,7,0,10,252,6, - 6,6,7,0,8,120,204,132,132,204,120,9,9,18,10,0, - 1,8,0,8,0,8,0,255,128,8,0,8,0,8,0,0, - 0,255,128,6,8,8,6,0,6,120,204,140,24,48,96,196, - 252,6,8,8,6,0,6,120,204,140,56,12,140,204,120,4, - 3,3,6,1,11,48,96,128,10,13,26,11,0,252,227,192, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,125,192, - 64,0,64,0,96,0,96,0,10,17,34,11,0,253,63,192, - 233,0,201,0,201,0,201,0,201,0,233,0,57,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,9,0,63,192, - 2,2,2,5,1,5,192,192,4,4,4,6,0,252,64,112, - 16,224,6,8,8,6,0,6,48,240,48,48,48,48,48,252, - 5,8,8,6,0,6,112,216,136,136,216,112,0,248,8,7, - 7,9,0,2,136,204,102,51,102,204,136,15,14,28,15,0, - 0,48,32,240,32,48,64,48,64,48,128,48,128,49,24,253, - 56,2,40,2,88,4,152,4,254,8,24,8,60,14,14,28, - 15,0,0,48,32,240,32,48,64,48,64,48,128,48,128,49, - 120,253,204,2,140,2,24,4,48,4,96,8,196,8,252,15, - 14,28,15,0,0,120,32,204,32,140,64,56,64,12,128,140, - 128,205,24,121,56,2,40,2,88,4,152,4,254,8,24,8, - 60,7,14,14,8,0,252,24,24,0,0,16,16,32,32,64, - 192,192,198,230,120,14,18,36,13,255,0,12,0,6,0,1, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,14, - 18,36,13,255,0,0,192,1,128,2,0,0,0,3,0,3, - 0,3,0,5,128,5,128,5,128,8,192,8,192,31,224,16, - 96,16,96,32,48,32,48,248,252,14,18,36,13,255,0,3, - 0,7,128,8,64,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,17,34,13,255,0,7,64,11,128,0,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,14,17,34,13,255, - 0,12,192,12,192,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,19,38,13,255,0,3,0,4,128,4,128,3, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,18, - 14,42,18,255,0,7,255,192,1,96,192,2,96,64,2,96, - 64,4,98,64,4,98,0,8,126,0,8,98,0,31,226,0, - 16,96,64,32,96,64,32,96,64,96,96,192,241,255,192,12, - 18,36,13,0,252,15,144,56,112,96,48,96,16,192,16,192, - 0,192,0,192,0,192,0,192,0,96,16,96,16,56,96,15, - 192,4,0,7,0,1,0,14,0,11,18,36,12,0,0,24, - 0,12,0,2,0,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,18,36,12,0,0,3,0,6,0,8,0,0, - 0,255,224,48,96,48,32,48,32,49,32,49,0,63,0,49, - 0,49,0,48,32,48,32,48,32,48,96,255,224,11,18,36, - 12,0,0,6,0,15,0,16,128,0,0,255,224,48,96,48, - 32,48,32,49,32,49,0,63,0,49,0,49,0,48,32,48, - 32,48,32,48,96,255,224,11,17,34,12,0,0,25,128,25, - 128,0,0,255,224,48,96,48,32,48,32,49,32,49,0,63, - 0,49,0,49,0,48,32,48,32,48,32,48,96,255,224,6, - 18,18,7,0,0,192,96,16,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,18,18,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,252,6, - 18,18,7,0,0,48,120,132,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,17,17,7,0,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,14,14, - 28,15,0,0,255,192,48,112,48,24,48,24,48,12,48,12, - 254,12,48,12,48,12,48,12,48,24,48,24,48,112,255,192, - 14,17,34,15,0,0,7,64,11,128,0,0,240,124,48,16, - 56,16,60,16,46,16,38,16,35,16,35,144,33,144,32,208, - 32,240,32,112,32,48,248,16,14,18,36,15,0,0,12,0, - 6,0,1,0,0,0,15,192,56,112,96,24,96,24,192,12, - 192,12,192,12,192,12,192,12,192,12,96,24,96,24,56,112, - 15,192,14,18,36,15,0,0,0,192,1,128,2,0,0,0, - 15,192,56,112,96,24,96,24,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,96,24,56,112,15,192,14,18,36,15, - 0,0,3,0,7,128,8,64,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,14,17,34,15,0,0,7,64,11,128, - 0,0,15,192,56,112,96,24,96,24,192,12,192,12,192,12, - 192,12,192,12,192,12,96,24,96,24,56,112,15,192,14,17, - 34,15,0,0,12,192,12,192,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,10,9,18,10,0,1,192,192,97,128, - 51,0,30,0,12,0,30,0,51,0,97,128,192,192,15,14, - 28,15,255,0,7,228,28,56,48,28,48,44,96,70,96,134, - 97,6,98,6,100,6,104,6,48,12,48,12,92,56,135,224, - 14,18,36,15,0,0,6,0,3,0,0,128,0,0,252,124, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,24,32,15,192,14,18,36,15,0,0, - 0,192,1,128,2,0,0,0,252,124,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 24,32,15,192,14,18,36,15,0,0,3,0,7,128,8,64, - 0,0,252,124,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,24,32,15,192,14,17, - 34,15,0,0,12,96,12,96,0,0,252,124,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,24,32,15,192,14,18,36,13,255,0,0,96,0,192, - 1,0,0,0,252,124,48,16,24,32,24,32,12,64,12,64, - 6,128,7,128,3,0,3,0,3,0,3,0,3,0,15,192, - 11,14,28,12,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,96,48,96,48,192,63,0,48,0,48,0, - 252,0,9,14,28,10,0,0,30,0,35,0,97,0,97,0, - 99,0,110,0,99,0,97,128,97,128,97,128,97,128,109,128, - 109,0,230,0,9,13,26,10,0,0,48,0,24,0,4,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,6,0,12,0,16,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,24,0,60,0,66,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,12,24,10,0,0,58,0,92,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,9,12,24,10,0,0,102,0,102,0,0,0,28,0, - 98,0,99,0,3,0,31,0,99,0,195,0,199,0,121,128, - 9,14,28,10,0,0,24,0,36,0,36,0,24,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,15,9,18,16,0,0,28,248,99,140,99,6,3,6, - 31,254,99,0,195,0,197,134,120,252,8,13,13,9,0,252, - 60,99,195,192,192,192,193,99,62,16,28,4,56,8,13,13, - 9,0,0,96,48,8,0,60,102,195,195,255,192,193,99,62, - 8,13,13,9,0,0,6,12,16,0,60,102,195,195,255,192, - 193,99,62,8,13,13,9,0,0,24,60,66,0,60,102,195, - 195,255,192,193,99,62,8,12,12,9,0,0,102,102,0,60, - 102,195,195,255,192,193,99,62,5,13,13,5,255,0,192,96, - 16,0,112,48,48,48,48,48,48,48,120,5,13,13,5,0, - 0,24,48,64,0,224,96,96,96,96,96,96,96,240,6,13, - 13,5,255,0,48,120,132,0,112,48,48,48,48,48,48,48, - 120,6,12,12,5,255,0,204,204,0,112,48,48,48,48,48, - 48,48,120,9,14,28,10,0,0,192,0,54,0,56,0,204, - 0,6,0,63,0,99,0,193,128,193,128,193,128,193,128,193, - 128,99,0,62,0,10,12,24,11,0,0,60,128,79,0,0, - 0,239,0,115,128,97,128,97,128,97,128,97,128,97,128,97, - 128,243,192,9,13,26,10,0,0,96,0,48,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,3,0,6,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,24,0,60,0,66,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,12,24,10,0,0,58,0,92,0,0,0,62, - 0,99,0,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,12,24,10,0,0,99,0,99,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,99,0,62,0,10, - 7,14,10,0,2,12,0,12,0,0,0,255,192,0,0,12, - 0,12,0,9,12,24,10,0,254,0,128,62,128,99,0,197, - 128,197,128,201,128,201,128,209,128,115,0,62,0,64,0,64, - 0,10,13,26,11,0,0,48,0,24,0,4,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,3,0,6,0,8,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,12,0,30,0,33,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,12,24,11,0,0,51,0,51,0,0,0,227,192,97, - 128,97,128,97,128,97,128,97,128,97,128,115,128,61,192,10, - 17,34,11,0,252,3,0,6,0,8,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0,10,18,36,11,0,252,224,0,96, - 0,96,0,96,0,96,0,111,0,113,128,96,192,96,192,96, - 192,96,192,96,192,113,128,111,0,96,0,96,0,96,0,240, - 0,10,16,32,11,0,252,51,0,51,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=19 dy= 0 ascent=15 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14r[2534] U8G_FONT_SECTION("u8g_font_ncenR14r") = { - 0,27,30,252,249,14,3,41,7,30,32,127,252,15,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=24 x= 6 y=15 dx=25 dy= 0 ascent=24 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18[7488] U8G_FONT_SECTION("u8g_font_ncenR18") = { - 0,31,37,253,248,18,4,33,9,197,32,255,251,24,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,7,0,1,3,19,19,7,2, - 251,224,224,224,0,0,64,64,64,224,224,224,224,224,224,224, - 224,224,224,64,10,18,36,14,2,253,0,64,0,64,0,128, - 31,128,113,192,97,192,226,192,194,0,196,0,196,0,200,0, - 232,0,112,64,112,192,63,0,32,0,64,0,64,0,13,18, - 36,14,0,0,3,192,14,48,12,112,28,112,28,32,28,0, - 28,0,14,0,127,192,7,0,7,0,7,0,7,0,7,0, - 118,8,140,8,143,240,115,224,13,12,24,15,1,4,71,16, - 255,248,112,112,32,32,96,48,96,48,96,48,96,48,32,32, - 112,112,255,248,71,16,16,18,36,17,0,0,252,63,56,12, - 24,8,28,24,12,16,14,48,6,32,7,96,3,64,3,192, - 31,248,1,128,1,128,31,248,1,128,1,128,1,128,15,240, - 2,18,18,15,6,0,192,192,192,192,192,192,192,0,0,0, - 192,192,192,192,192,192,192,192,10,22,44,12,1,252,31,0, - 35,128,97,128,97,128,120,0,60,0,31,0,47,128,67,192, - 193,192,192,192,224,192,240,192,124,128,63,0,15,0,3,128, - 1,128,97,128,97,128,113,0,62,0,6,2,2,8,1,15, - 204,204,18,18,54,20,1,0,3,240,0,12,12,0,16,2, - 0,32,1,0,67,240,128,70,24,128,140,8,64,140,0,64, - 140,0,64,140,0,64,140,0,64,140,8,64,70,24,128,67, - 224,128,32,1,0,16,2,0,12,12,0,3,240,0,7,10, - 10,9,1,8,120,76,4,124,196,204,118,0,0,254,10,7, - 14,12,1,3,24,192,49,128,99,0,198,0,99,0,49,128, - 24,192,12,7,14,14,1,3,255,240,255,240,0,48,0,48, - 0,48,0,48,0,48,6,2,2,8,1,6,252,252,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,32,1,0, - 71,240,128,67,24,128,131,24,64,131,24,64,131,16,64,131, - 224,64,131,48,64,131,24,64,67,12,128,71,142,128,32,1, - 0,16,2,0,12,12,0,3,240,0,7,1,1,9,1,15, - 254,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,2,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,198,198,6,12,24,48,96,192,194,254,7,11,11,8,0, - 7,124,198,198,6,12,60,6,6,198,198,124,5,4,4,8, - 2,15,24,56,96,128,14,17,34,14,0,251,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,112, - 63,176,46,60,32,0,32,0,112,0,112,0,32,0,13,22, - 44,15,1,252,31,248,115,48,227,48,227,48,227,48,227,48, - 227,48,227,48,115,48,31,48,3,48,3,48,3,48,3,48, - 3,48,3,48,3,48,3,48,3,48,3,48,3,48,7,248, - 3,3,3,7,2,5,224,224,224,4,4,4,7,1,252,64, - 112,16,224,6,11,11,8,1,7,16,48,240,48,48,48,48, - 48,48,48,252,7,10,10,9,1,8,56,68,198,198,198,68, - 56,0,0,254,10,7,14,12,1,3,198,0,99,0,49,128, - 24,192,49,128,99,0,198,0,18,18,54,19,0,0,16,4, - 0,48,12,0,240,8,0,48,24,0,48,16,0,48,48,0, - 48,32,0,48,99,0,48,71,0,48,207,0,252,139,0,1, - 155,0,1,19,0,3,51,0,2,99,0,6,127,192,4,3, - 0,12,7,128,18,18,54,19,0,0,16,8,0,48,24,0, - 240,16,0,48,48,0,48,32,0,48,96,0,48,64,0,48, - 207,128,48,152,192,49,152,192,253,0,192,3,1,128,2,3, - 0,6,6,0,4,12,0,12,24,0,8,24,64,24,31,192, - 18,18,54,19,0,0,124,4,0,198,12,0,198,8,0,6, - 24,0,12,16,0,60,48,0,6,32,0,6,99,0,198,71, - 0,198,207,0,124,139,0,1,155,0,1,19,0,3,51,0, - 2,99,0,6,127,192,4,3,0,12,7,128,10,18,36,12, - 1,252,7,0,7,0,7,0,0,0,0,0,2,0,2,0, - 6,0,12,0,28,0,56,0,112,0,224,0,225,192,225,192, - 224,192,113,128,30,0,19,23,69,19,0,0,3,0,0,3, - 128,0,0,192,0,0,32,0,0,0,0,0,64,0,0,96, - 0,0,224,0,0,240,0,1,48,0,1,56,0,2,24,0, - 2,28,0,4,12,0,4,12,0,8,14,0,15,254,0,16, - 6,0,16,7,0,32,3,0,32,3,128,96,3,128,248,15, - 224,19,23,69,19,0,0,0,24,0,0,56,0,0,96,0, - 0,128,0,0,0,0,0,64,0,0,96,0,0,224,0,0, - 240,0,1,48,0,1,56,0,2,24,0,2,28,0,4,12, - 0,4,12,0,8,14,0,15,254,0,16,6,0,16,7,0, - 32,3,0,32,3,128,96,3,128,248,15,224,19,23,69,19, - 0,0,0,96,0,0,240,0,1,152,0,2,4,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,22,66,19,0,0,1,196,0, - 3,248,0,4,112,0,0,0,0,0,64,0,0,96,0,0, - 224,0,0,240,0,1,48,0,1,56,0,2,24,0,2,28, - 0,4,12,0,4,12,0,8,14,0,15,254,0,16,6,0, - 16,7,0,32,3,0,32,3,128,96,3,128,248,15,224,19, - 22,66,19,0,0,3,24,0,3,24,0,0,0,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,24,72,19,0,0,0,224,0, - 1,16,0,1,16,0,1,16,0,0,224,0,0,0,0,0, - 64,0,0,96,0,0,224,0,0,240,0,1,48,0,1,56, - 0,2,24,0,2,28,0,4,12,0,4,12,0,8,14,0, - 15,254,0,16,6,0,16,7,0,32,3,0,32,3,128,96, - 3,128,248,15,224,24,18,54,25,0,0,1,255,255,0,38, - 7,0,102,3,0,70,1,0,198,1,0,134,17,1,134,16, - 1,6,48,3,7,240,2,6,48,7,254,16,4,6,16,12, - 6,1,8,6,1,24,6,1,16,6,3,48,6,7,252,31, - 255,15,23,46,17,1,251,7,242,28,30,56,6,48,2,112, - 2,96,2,224,0,224,0,224,0,224,0,224,0,224,0,96, - 2,112,2,48,6,56,4,28,28,7,240,3,224,1,0,1, - 192,0,64,3,128,13,23,46,16,1,0,24,0,28,0,6, - 0,1,0,0,0,255,248,48,56,48,24,48,8,48,8,48, - 136,48,128,49,128,63,128,49,128,48,128,48,128,48,8,48, - 8,48,8,48,24,48,56,255,248,13,23,46,16,1,0,0, - 96,0,224,1,128,2,0,0,0,255,248,48,56,48,24,48, - 8,48,8,48,136,48,128,49,128,63,128,49,128,48,128,48, - 128,48,8,48,8,48,8,48,24,48,56,255,248,13,23,46, - 16,1,0,3,0,7,128,12,192,16,32,0,0,255,248,48, - 56,48,24,48,8,48,8,48,136,48,128,49,128,63,128,49, - 128,48,128,48,128,48,8,48,8,48,8,48,24,48,56,255, - 248,13,22,44,16,1,0,12,96,12,96,0,0,0,0,255, - 248,48,56,48,24,48,8,48,8,48,136,48,128,49,128,63, - 128,49,128,48,128,48,128,48,8,48,8,48,8,48,24,48, - 56,255,248,6,23,23,9,2,0,192,224,48,8,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 7,23,23,9,2,0,6,14,24,32,0,252,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,8,23,23, - 9,1,0,24,60,102,129,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,22,22,9,2,0, - 198,198,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,16,18,36,20,2,0,255,224,48,56, - 48,12,48,12,48,6,48,6,48,7,48,7,254,7,48,7, - 48,7,48,7,48,6,48,6,48,12,48,12,48,56,255,224, - 19,22,66,21,1,0,1,196,0,3,248,0,4,112,0,0, - 0,0,248,15,224,60,3,128,28,1,0,30,1,0,23,1, - 0,19,129,0,17,129,0,16,193,0,16,225,0,16,97,0, - 16,49,0,16,57,0,16,29,0,16,15,0,16,7,0,16, - 7,0,56,3,0,254,1,0,17,23,69,19,1,0,12,0, - 0,14,0,0,3,0,0,0,128,0,0,0,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,17,23,69,19,1,0,0,24,0,0,56,0,0, - 96,0,0,128,0,0,0,0,7,240,0,28,28,0,48,6, - 0,48,6,0,112,7,0,96,3,0,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,96,3,0,112, - 7,0,48,6,0,48,6,0,28,28,0,7,240,0,17,23, - 69,19,1,0,0,192,0,1,224,0,3,48,0,4,8,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,17,22,66,19,1,0,3, - 136,0,7,240,0,8,224,0,0,0,0,7,240,0,28,28, - 0,48,6,0,48,6,0,112,7,0,96,3,0,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,224,3,128,96, - 3,0,112,7,0,48,6,0,48,6,0,28,28,0,7,240, - 0,17,22,66,19,1,0,6,48,0,6,48,0,0,0,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,13,12,24,14,1,1,192, - 24,96,48,48,96,24,192,13,128,7,0,7,0,13,128,24, - 192,48,96,96,48,192,24,17,19,57,19,1,0,0,3,0, - 7,246,0,28,28,0,48,14,0,48,30,0,96,51,0,96, - 99,0,224,67,128,224,195,128,225,131,128,227,3,128,226,3, - 128,230,3,128,108,3,0,120,3,0,48,6,0,48,6,0, - 124,28,0,199,240,0,16,23,46,19,2,0,6,0,7,0, - 1,128,0,64,0,0,252,31,48,14,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,56,12,24,8,30,56,7,224,16,23,46,19,2,0, - 0,48,0,112,0,192,1,0,0,0,252,31,48,14,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,56,12,24,8,30,56,7,224,16,23, - 46,19,2,0,1,128,3,192,6,96,8,16,0,0,252,31, - 48,14,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,56,12,24,8,30,56, - 7,224,16,22,44,19,2,0,6,48,6,48,0,0,0,0, - 252,31,48,14,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,56,12,24,8, - 30,56,7,224,16,23,46,17,0,0,0,48,0,112,0,192, - 1,0,0,0,252,63,56,12,24,8,28,24,12,16,14,48, - 6,32,7,96,3,64,3,192,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,7,224,13,18,36,16,2,0,252,0, - 48,0,48,0,48,0,63,128,48,224,48,48,48,56,48,56, - 48,56,48,56,48,48,48,224,63,128,48,0,48,0,48,0, - 252,0,12,18,36,14,1,0,15,128,24,192,48,96,48,96, - 48,96,48,96,48,192,51,192,48,96,48,48,48,48,48,48, - 48,48,48,48,54,48,54,48,54,96,243,192,12,18,36,13, - 1,0,24,0,28,0,6,0,1,0,0,0,0,0,31,0, - 113,128,112,192,96,192,0,192,7,192,56,192,96,192,192,192, - 192,192,225,240,126,96,12,18,36,13,1,0,1,128,3,128, - 6,0,8,0,0,0,0,0,31,0,113,128,112,192,96,192, - 0,192,7,192,56,192,96,192,192,192,192,192,225,240,126,96, - 12,18,36,13,1,0,6,0,15,0,25,128,32,64,0,0, - 0,0,31,0,113,128,112,192,96,192,0,192,7,192,56,192, - 96,192,192,192,192,192,225,240,126,96,12,17,34,13,1,0, - 28,64,63,128,71,0,0,0,0,0,31,0,113,128,112,192, - 96,192,0,192,7,192,56,192,96,192,192,192,192,192,225,240, - 126,96,12,16,32,13,1,0,25,128,25,128,0,0,0,0, - 31,0,113,128,112,192,96,192,0,192,7,192,56,192,96,192, - 192,192,192,192,225,240,126,96,12,19,38,13,1,0,14,0, - 17,0,17,0,17,0,14,0,0,0,0,0,31,0,113,128, - 112,192,96,192,0,192,7,192,56,192,96,192,192,192,192,192, - 225,240,126,96,19,12,36,21,1,0,31,31,0,113,241,192, - 96,224,192,0,224,224,0,192,96,7,255,224,56,192,0,96, - 192,0,192,224,0,192,224,64,227,112,192,124,31,128,10,16, - 32,12,1,252,31,0,113,192,97,192,224,192,192,0,192,0, - 192,0,192,0,224,0,96,64,112,192,31,128,8,0,14,0, - 2,0,28,0,11,18,36,13,1,0,24,0,28,0,6,0, - 1,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 255,224,192,0,192,0,224,0,96,64,112,192,31,128,11,18, - 36,13,1,0,1,128,3,128,6,0,8,0,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,11,18,36,13,1,0,6,0, - 15,0,25,128,32,64,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,255,224,192,0,192,0,224,0,96,64,112,192, - 31,128,11,16,32,13,1,0,49,128,49,128,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,6,18,18,8,1,0,192,224, - 48,8,0,0,240,48,48,48,48,48,48,48,48,48,48,252, - 6,18,18,8,1,0,24,56,96,128,0,0,240,48,48,48, - 48,48,48,48,48,48,48,252,8,18,18,8,0,0,24,60, - 102,129,0,0,120,24,24,24,24,24,24,24,24,24,24,126, - 6,16,16,8,1,0,204,204,0,0,240,48,48,48,48,48, - 48,48,48,48,48,252,11,18,36,13,1,0,192,0,51,0, - 28,0,28,0,102,0,3,0,31,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,31,0, - 14,17,34,14,0,0,7,16,15,224,17,192,0,0,0,0, - 241,192,55,224,56,112,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,252,11,18,36,13,1,0,24,0, - 28,0,6,0,1,0,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,192,96,192,96,192,96,224,224,96,192,113,192, - 31,0,11,18,36,13,1,0,1,128,3,128,6,0,8,0, - 0,0,0,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,11,18,36,13, - 1,0,14,0,31,0,49,128,64,64,0,0,0,0,31,0, - 113,192,96,192,224,224,192,96,192,96,192,96,192,96,224,224, - 96,192,113,192,31,0,11,17,34,13,1,0,28,64,63,128, - 71,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 192,96,192,96,192,96,224,224,96,192,113,192,31,0,11,16, - 32,13,1,0,49,128,49,128,0,0,0,0,31,0,113,192, - 96,192,224,224,192,96,192,96,192,96,192,96,224,224,96,192, - 113,192,31,0,12,10,20,14,1,2,6,0,6,0,0,0, - 0,0,255,240,255,240,0,0,0,0,6,0,6,0,11,16, - 32,13,1,254,0,64,0,128,31,128,113,192,98,192,226,224, - 196,96,196,96,196,96,200,96,200,224,80,192,113,192,63,0, - 32,0,64,0,14,18,36,14,0,0,12,0,14,0,3,0, - 0,128,0,0,0,0,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,31,176,14,60,14,18, - 36,14,0,0,0,192,1,192,3,0,4,0,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,14,18,36,14,0,0,3,0, - 7,128,12,192,16,32,0,0,0,0,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,56,112,31,176, - 14,60,14,16,32,14,0,0,12,192,12,192,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,13,23,46,12,255,251,0,96, - 0,224,1,128,2,0,0,0,0,0,120,56,48,16,56,48, - 24,32,24,32,12,96,12,64,6,192,6,128,7,128,3,0, - 3,0,2,0,2,0,196,0,236,0,120,0,13,23,46,14, - 0,251,240,0,48,0,48,0,48,0,48,0,48,0,55,192, - 60,112,56,48,48,56,48,24,48,24,48,24,48,24,48,56, - 56,48,60,112,55,192,48,0,48,0,48,0,48,0,252,0, - 13,21,42,12,255,251,12,96,12,96,0,0,0,0,120,56, - 48,16,56,48,24,32,24,32,12,96,12,64,6,192,6,128, - 7,128,3,0,3,0,2,0,2,0,196,0,236,0,120,0 - }; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=23 x= 6 y=14 dx=25 dy= 0 ascent=20 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18r[3477] U8G_FONT_SECTION("u8g_font_ncenR18r") = { - 0,31,37,253,248,18,4,33,9,197,32,127,251,20,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=32 x= 9 y=19 dx=32 dy= 0 ascent=32 len=128 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =32 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24[11729] U8G_FONT_SECTION("u8g_font_ncenR24") = { - 0,39,50,250,245,25,5,159,15,28,32,255,249,32,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,9,1,1,4,25,25, - 10,3,249,96,240,240,96,0,0,0,96,96,96,96,96,96, - 96,96,96,96,96,240,240,240,240,240,240,96,13,24,48,18, - 2,252,0,24,0,24,0,16,0,48,7,224,31,240,56,112, - 112,112,112,240,224,224,224,128,225,128,225,0,227,0,227,0, - 242,16,118,48,60,96,31,224,15,128,8,0,24,0,16,0, - 16,0,16,23,46,19,1,0,1,240,7,252,14,14,12,14, - 28,30,28,30,28,28,28,0,30,0,14,0,14,0,255,248, - 15,0,7,0,7,0,7,0,6,0,6,0,126,3,223,7, - 143,142,223,252,112,240,16,17,34,19,1,3,67,194,239,247, - 127,254,60,60,112,14,112,14,224,7,224,7,224,7,224,7, - 224,7,112,14,112,14,60,60,127,254,239,247,3,192,17,23, - 69,19,0,0,255,31,128,60,15,0,28,6,0,30,6,0, - 14,4,0,15,12,0,7,8,0,7,24,0,3,144,0,3, - 176,0,1,224,0,0,224,0,7,252,0,7,252,0,0,224, - 0,0,224,0,7,252,0,7,252,0,0,224,0,0,224,0, - 0,224,0,7,248,0,7,248,0,2,25,25,20,9,0,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,12,30,60,17,2,251,15,0, - 57,192,48,192,113,192,113,192,112,128,56,0,60,0,30,0, - 15,0,63,128,99,192,193,224,192,240,192,112,224,48,240,48, - 120,48,60,96,31,192,15,0,7,128,3,192,1,192,16,224, - 56,224,56,224,48,192,57,192,15,0,9,3,6,11,1,19, - 99,0,247,128,99,0,24,25,75,25,0,0,0,126,0,3, - 255,128,7,129,224,14,0,112,24,0,56,48,0,28,48,127, - 12,96,227,134,97,129,134,67,128,134,195,0,131,199,0,3, - 199,0,3,199,0,3,199,0,3,195,0,3,67,128,6,97, - 193,134,97,227,140,48,126,12,24,0,24,28,0,112,7,1, - 224,3,255,128,0,126,0,11,14,28,11,0,11,63,0,99, - 128,97,128,99,128,15,128,121,128,225,128,193,128,227,128,125, - 224,0,0,0,0,0,0,255,192,11,11,22,14,1,2,4, - 32,12,96,24,192,49,128,115,128,231,0,115,128,49,128,24, - 192,12,96,4,32,16,9,18,20,1,3,255,255,255,255,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,8,3,3, - 11,1,7,255,255,255,24,24,72,25,0,0,0,126,0,3, - 255,192,15,1,240,28,0,56,56,0,24,51,252,12,96,199, - 14,96,195,6,64,195,6,192,195,3,192,198,3,192,252,3, - 192,204,3,192,206,3,192,198,3,96,199,6,96,195,6,96, - 195,142,51,227,204,24,0,24,28,0,112,7,0,224,3,255, - 192,0,126,0,10,2,4,11,0,19,255,192,255,192,9,9, - 18,13,2,14,62,0,119,0,193,128,193,128,128,128,193,128, - 193,128,119,0,62,0,16,16,32,20,2,0,1,128,1,128, - 1,128,1,128,255,255,255,255,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,0,0,255,255,255,255,10,14,28,11, - 0,9,63,0,115,128,97,128,113,128,113,128,1,128,3,0, - 7,0,14,0,28,0,56,64,112,64,255,192,255,192,9,14, - 28,11,1,9,62,0,99,0,113,128,97,128,1,128,7,0, - 62,0,7,0,3,0,97,128,225,128,195,128,231,0,126,0, - 7,6,6,11,2,19,6,14,28,56,96,192,17,23,69,20, - 1,249,56,14,0,248,62,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,30,0,56,30,0,60,126,0,63,238,0,47, - 143,128,32,0,0,32,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,32,0,0,17,30,90,20,2,251,15,255,128, - 63,255,128,120,198,0,240,198,0,240,198,0,240,198,0,240, - 198,0,240,198,0,240,198,0,240,198,0,120,198,0,124,198, - 0,63,198,0,15,198,0,0,198,0,0,198,0,0,198,0, - 0,198,0,0,198,0,0,198,0,0,198,0,0,198,0,0, - 198,0,0,198,0,0,198,0,0,198,0,0,198,0,0,198, - 0,3,255,128,3,255,128,4,4,4,9,2,6,96,240,240, - 96,6,7,7,11,1,249,16,32,120,12,12,140,120,8,14, - 14,11,1,9,56,248,24,24,24,24,24,24,24,24,24,24, - 24,255,11,14,28,10,255,11,14,0,59,128,96,192,224,224, - 192,96,192,96,224,224,96,192,59,128,14,0,0,0,0,0, - 0,0,127,192,11,11,22,14,1,2,132,0,198,0,99,0, - 49,128,57,192,28,224,57,192,49,128,99,0,198,0,132,0, - 25,23,92,28,1,0,56,0,24,0,248,0,48,0,24,0, - 48,0,24,0,96,0,24,0,192,0,24,0,128,0,24,1, - 128,0,24,3,0,0,24,6,0,0,24,6,4,0,24,12, - 12,0,24,24,28,0,24,24,60,0,255,48,108,0,0,96, - 76,0,0,192,204,0,0,193,140,0,1,131,12,0,3,3, - 255,128,3,0,12,0,6,0,12,0,12,0,12,0,8,0, - 63,0,25,23,92,28,1,0,56,0,24,0,248,0,48,0, - 24,0,32,0,24,0,96,0,24,0,192,0,24,1,128,0, - 24,1,128,0,24,3,0,0,24,6,0,0,24,6,62,0, - 24,12,99,0,24,24,193,128,24,48,193,128,255,48,225,128, - 0,96,195,0,0,192,7,0,0,192,14,0,1,128,28,0, - 3,0,56,0,3,0,112,128,6,0,224,128,12,1,255,128, - 8,1,255,128,25,23,92,28,1,0,62,0,8,0,99,0, - 24,0,113,128,48,0,97,128,48,0,1,128,96,0,7,0, - 192,0,30,1,128,0,7,1,128,0,3,131,0,0,97,134, - 4,0,225,134,12,0,195,140,28,0,231,24,60,0,126,48, - 108,0,0,48,204,0,0,96,204,0,0,193,140,0,0,195, - 12,0,1,131,255,128,3,0,12,0,6,0,12,0,6,0, - 12,0,12,0,63,0,12,25,50,14,1,249,3,0,7,128, - 7,128,3,0,0,0,0,0,0,0,3,0,3,0,2,0, - 2,0,6,0,12,0,28,0,56,0,120,0,112,0,240,0, - 224,112,224,112,224,112,240,48,112,48,60,224,31,192,23,32, - 96,23,0,0,6,0,0,7,0,0,3,128,0,1,192,0, - 0,96,0,0,48,0,0,0,0,0,16,0,0,56,0,0, - 56,0,0,120,0,0,124,0,0,124,0,0,220,0,0,222, - 0,1,158,0,1,142,0,1,143,0,3,7,0,3,7,128, - 3,7,128,6,3,128,7,255,192,7,255,192,12,1,192,12, - 1,224,12,1,224,24,0,240,24,0,240,56,0,248,124,1, - 252,254,3,254,23,32,96,23,0,0,0,1,128,0,3,128, - 0,7,0,0,14,0,0,24,0,0,48,0,0,0,0,0, - 16,0,0,56,0,0,56,0,0,120,0,0,124,0,0,124, - 0,0,220,0,0,222,0,1,158,0,1,142,0,1,143,0, - 3,7,0,3,7,128,3,7,128,6,3,128,7,255,192,7, - 255,192,12,1,192,12,1,224,12,1,224,24,0,240,24,0, - 240,56,0,248,124,1,252,254,3,254,23,31,93,23,0,0, - 0,24,0,0,60,0,0,126,0,0,195,0,1,129,128,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,0,241,128,1,255,0,3,30,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,1,134,0,3,207,0,1,134,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,32,96, - 23,0,0,0,120,0,0,204,0,0,132,0,0,132,0,0, - 204,0,0,120,0,0,0,0,0,16,0,0,56,0,0,56, - 0,0,120,0,0,124,0,0,124,0,0,220,0,0,222,0, - 1,158,0,1,142,0,1,143,0,3,7,0,3,7,128,3, - 7,128,6,3,128,7,255,192,7,255,192,12,1,192,12,1, - 224,12,1,224,24,0,240,24,0,240,56,0,248,124,1,252, - 254,3,254,30,25,100,32,0,0,1,255,255,252,0,127,255, - 252,0,29,192,124,0,25,192,28,0,25,192,28,0,49,192, - 12,0,49,192,140,0,97,192,132,0,97,193,132,0,193,193, - 128,0,193,195,128,1,129,255,128,1,129,255,128,3,1,195, - 128,3,255,193,128,7,255,193,128,6,1,192,132,12,1,192, - 132,12,1,192,4,24,1,192,12,24,1,192,12,48,1,192, - 28,48,1,192,124,120,7,255,252,254,31,255,252,20,32,96, - 22,1,249,0,248,96,3,255,96,15,7,224,28,1,224,60, - 0,224,56,0,224,120,0,96,120,0,96,240,0,96,240,0, - 32,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,48,120,0,48,120,0,32,120,0,96,60, - 0,96,28,0,192,14,1,128,7,207,0,1,254,0,0,32, - 0,0,64,0,0,240,0,0,24,0,0,24,0,1,24,0, - 0,240,0,20,32,96,24,1,0,3,0,0,3,128,0,1, - 192,0,0,224,0,0,48,0,0,24,0,0,0,0,255,255, - 240,63,255,240,14,1,240,14,0,112,14,0,112,14,0,48, - 14,4,48,14,4,16,14,4,16,14,12,0,14,60,0,15, - 252,0,15,252,0,14,60,0,14,12,0,14,12,0,14,4, - 16,14,4,16,14,0,16,14,0,48,14,0,48,14,0,112, - 14,1,240,63,255,240,255,255,240,20,32,96,24,1,0,0, - 1,128,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,0,0,255,255,240,63,255,240,14,1,240,14,0,112, - 14,0,112,14,0,48,14,4,48,14,4,16,14,4,16,14, - 12,0,14,60,0,15,252,0,15,252,0,14,60,0,14,12, - 0,14,12,0,14,4,16,14,4,16,14,0,16,14,0,48, - 14,0,48,14,0,112,14,1,240,63,255,240,255,255,240,20, - 32,96,24,1,0,0,48,0,0,120,0,0,252,0,1,134, - 0,3,3,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,20,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,11,32,64,13,1,0,96,0,112,0,56, - 0,28,0,6,0,3,0,0,0,255,224,63,128,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,63,128,255,224,11,32,64,13,1, - 0,0,192,1,192,3,128,7,0,12,0,24,0,0,0,255, - 224,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,255, - 224,11,31,62,13,1,0,6,0,15,0,31,128,48,192,96, - 96,0,0,255,224,63,128,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,63,128,255,224,11,30,60,13,1,0,49,128,123,192,49, - 128,0,0,0,0,255,224,63,128,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,255,224,22,25,75,24,1,0,255,252,0, - 255,255,128,30,7,192,14,1,224,14,0,240,14,0,112,14, - 0,120,14,0,120,14,0,56,14,0,60,14,0,60,14,0, - 60,127,224,60,127,224,60,14,0,60,14,0,60,14,0,60, - 14,0,56,14,0,120,14,0,120,14,0,112,14,0,224,14, - 1,192,255,255,128,255,254,0,26,30,120,28,1,0,0,30, - 48,0,0,63,224,0,0,99,192,0,0,0,0,0,0,0, - 0,0,255,0,255,192,31,0,63,0,15,128,12,0,15,192, - 12,0,15,192,12,0,13,224,12,0,13,240,12,0,12,248, - 12,0,12,120,12,0,12,124,12,0,12,62,12,0,12,30, - 12,0,12,31,12,0,12,15,140,0,12,7,140,0,12,7, - 204,0,12,3,204,0,12,1,236,0,12,0,236,0,12,0, - 252,0,12,0,124,0,12,0,60,0,12,0,60,0,63,0, - 28,0,255,192,12,0,22,32,96,24,1,0,6,0,0,7, - 0,0,3,128,0,1,192,0,0,96,0,0,48,0,0,0, - 0,1,254,0,7,255,128,15,3,192,28,0,224,60,0,240, - 56,0,112,120,0,120,120,0,120,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,56,120,0,120,120,0,120,56,0,112,60,0,240, - 28,0,224,15,3,192,7,255,128,1,254,0,22,32,96,24, - 1,0,0,3,0,0,7,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,1,254,0,7,255,128,15,3,192, - 28,0,224,60,0,240,56,0,112,120,0,120,120,0,120,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,56,120,0,120,120,0,120, - 56,0,112,60,0,240,28,0,224,15,3,192,7,255,128,1, - 254,0,22,31,93,24,1,0,0,48,0,0,120,0,0,252, - 0,1,134,0,3,3,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,241,128,1,255, - 0,3,30,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,17,15,45,20,2,1,224,3,128,112,7, - 0,56,14,0,28,28,0,14,56,0,7,112,0,3,224,0, - 1,192,0,3,224,0,7,112,0,14,56,0,28,28,0,56, - 14,0,112,7,0,224,3,128,22,28,84,24,1,254,0,0, - 24,1,254,48,7,255,176,14,3,224,28,0,224,60,1,240, - 56,1,240,120,3,120,120,6,120,240,6,60,240,12,60,240, - 24,60,240,56,60,240,48,60,240,96,60,240,224,60,240,192, - 60,113,128,56,123,0,120,123,0,120,62,0,112,60,0,240, - 30,1,224,31,3,192,55,255,128,113,254,0,96,0,0,192, - 0,0,26,32,128,26,0,0,0,48,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,3,0,0,0,1,128,0, - 0,0,0,0,255,224,255,192,63,128,63,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 15,0,24,0,7,0,24,0,7,128,48,0,3,224,240,0, - 1,255,192,0,0,127,0,0,26,32,128,26,0,0,0,0, - 48,0,0,0,112,0,0,0,224,0,0,1,192,0,0,3, - 0,0,0,6,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,26,31, - 124,26,0,0,0,6,0,0,0,15,0,0,0,31,128,0, - 0,48,192,0,0,96,96,0,0,0,0,0,255,224,255,192, - 63,128,63,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,15,0,24,0,7,0,24,0, - 7,128,48,0,3,224,240,0,1,255,192,0,0,127,0,0, - 26,30,120,26,0,0,0,48,192,0,0,121,224,0,0,48, - 192,0,0,0,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,23,32, - 96,23,0,0,0,1,128,0,3,128,0,7,0,0,14,0, - 0,24,0,0,48,0,0,0,0,255,131,254,126,0,248,62, - 0,112,30,0,96,15,0,224,15,0,192,7,129,128,7,193, - 128,3,195,0,3,227,0,1,230,0,0,246,0,0,252,0, - 0,124,0,0,120,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,254, - 0,3,255,128,20,25,75,22,1,0,255,224,0,31,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,15,254,0,15, - 255,128,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,3,224,15,255,192, - 15,255,0,14,0,0,14,0,0,14,0,0,14,0,0,31, - 0,0,255,224,0,17,26,78,19,0,255,3,248,0,7,156, - 0,14,14,0,14,15,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,14,0,28,14,0,28,248,0,28,248,0,28, - 14,0,28,7,0,28,7,0,28,7,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,231,128,28,231,0, - 60,231,0,252,254,0,0,56,0,16,23,46,17,1,0,12, - 0,14,0,7,0,3,128,0,192,0,96,0,0,7,192,31, - 240,120,120,112,56,112,56,112,56,1,248,15,248,60,56,112, - 56,224,56,224,56,224,120,240,253,127,159,63,14,16,23,46, - 17,1,0,0,48,0,112,0,224,1,192,3,0,6,0,0, - 0,7,192,31,240,120,120,112,56,112,56,112,56,1,248,15, - 248,60,56,112,56,224,56,224,56,224,120,240,253,127,159,63, - 14,16,22,44,17,1,0,3,0,7,128,15,192,24,96,48, - 48,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,15,24,31,240,49,224,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,12,96,30,240,12,96,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,23,46,17,1,0,7,128,12,192,8,64,8, - 64,12,192,7,128,0,0,7,192,31,240,120,120,112,56,112, - 56,112,56,1,248,15,248,60,56,112,56,224,56,224,56,224, - 120,240,253,127,159,62,14,23,16,48,25,1,0,15,195,224, - 63,231,248,112,124,28,112,60,12,112,56,14,112,56,14,1, - 248,14,15,255,254,60,56,0,112,56,0,240,56,0,224,60, - 2,224,124,6,240,254,28,127,207,248,63,3,240,12,23,46, - 14,1,249,7,128,31,224,56,112,112,240,112,240,224,96,224, - 0,224,0,224,0,224,0,240,0,240,16,120,48,124,96,63, - 192,15,0,2,0,4,0,15,0,1,128,1,128,17,128,15, - 0,14,23,46,16,1,0,24,0,28,0,14,0,7,0,1, - 128,0,192,0,0,7,192,31,240,56,56,112,24,112,28,240, - 28,240,28,255,252,224,0,224,0,240,0,240,4,120,12,60, - 56,31,240,7,192,14,23,46,16,1,0,0,24,0,56,0, - 112,0,224,1,128,3,0,0,0,7,192,31,240,56,120,112, - 56,96,28,224,28,224,28,255,252,224,0,224,0,240,0,240, - 4,120,12,60,56,31,240,7,192,14,22,44,16,1,0,3, - 0,7,128,15,192,24,96,48,48,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,56,31,240,7,192,14,21,42,16,1, - 0,12,96,30,240,12,96,0,0,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,24,31,240,7,192,9,23,46,11,1, - 0,192,0,224,0,112,0,56,0,12,0,6,0,0,0,252, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,9, - 23,46,11,1,0,1,128,3,128,7,0,14,0,24,0,48, - 0,0,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,255,128,10,22,44,11,0,0,12,0,30,0,63,0,97, - 128,192,192,0,0,126,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,127,192,9,21,42,11,1,0,99,0,247,128,99, - 0,0,0,0,0,252,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,255,128,14,25,50,17,1,0,48,0,60,0,14, - 224,7,192,15,128,13,192,0,224,0,240,0,112,7,248,31, - 248,56,120,112,60,112,60,224,28,224,28,224,28,224,28,224, - 28,224,28,240,60,112,56,120,120,63,240,15,192,19,21,63, - 19,0,0,3,198,0,7,252,0,12,120,0,0,0,0,0, - 0,0,28,120,0,253,254,0,31,158,0,30,15,0,30,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,255, - 31,224,14,23,46,16,1,0,48,0,56,0,28,0,14,0, - 3,0,1,128,0,0,7,128,31,224,56,112,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,240,60,112,56, - 120,120,31,224,7,128,14,23,46,16,1,0,0,24,0,56, - 0,112,0,224,1,128,3,0,0,0,7,128,31,224,56,112, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,56,120,120,31,224,7,128,14,22,44,16,1,0, - 3,0,7,128,15,192,24,96,48,48,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,15,24,31,240,49,224,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,24,192,61,224,24,192,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,16,16,32,20, - 2,0,1,128,3,192,3,192,1,128,0,0,0,0,0,0, - 255,255,255,255,0,0,0,0,0,0,1,128,3,192,3,192, - 1,128,14,22,44,16,1,253,0,24,0,24,0,48,7,240, - 31,240,56,112,112,248,112,216,225,156,225,156,227,28,227,28, - 230,28,230,28,236,56,124,56,120,112,63,224,63,128,48,0, - 96,0,96,0,18,23,69,20,0,0,6,0,0,7,0,0, - 3,128,0,1,192,0,0,96,0,0,48,0,0,0,0,28, - 7,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,15,0,28,15,0,14,63,0,15,247,192,7,199,0,18, - 23,69,20,0,0,0,12,0,0,28,0,0,56,0,0,112, - 0,0,192,0,1,128,0,0,0,0,28,7,0,252,63,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,15,0,28,15, - 0,14,63,0,15,247,192,7,199,0,18,22,66,20,0,0, - 0,192,0,1,224,0,3,240,0,6,24,0,12,12,0,0, - 0,0,28,7,0,252,63,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,15,0,28,15,0,14,63,0,15,247,192,7, - 199,0,18,21,63,20,0,0,3,24,0,7,188,0,3,24, - 0,0,0,0,0,0,0,28,7,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,15,0,28,15,0,14,63, - 0,15,247,192,7,199,0,17,30,90,19,1,249,0,12,0, - 0,28,0,0,56,0,0,112,0,0,192,0,1,128,0,0, - 0,0,255,31,128,124,7,0,60,6,0,28,6,0,30,12, - 0,14,12,0,15,8,0,7,24,0,7,24,0,7,176,0, - 3,176,0,3,224,0,1,224,0,1,224,0,0,192,0,0, - 192,0,1,128,0,1,128,0,99,0,0,227,0,0,230,0, - 0,252,0,0,112,0,0,16,29,58,19,1,249,56,0,248, - 0,56,0,56,0,56,0,56,0,56,240,59,252,63,30,60, - 14,60,15,56,7,56,7,56,7,56,7,56,7,56,7,60, - 15,60,14,62,30,59,252,57,240,56,0,56,0,56,0,56, - 0,56,0,56,0,255,0,18,28,84,20,1,249,3,24,0, - 7,188,0,3,24,0,0,0,0,0,0,0,255,31,192,124, - 7,0,60,6,0,28,6,0,30,12,0,14,12,0,15,8, - 0,7,24,0,7,24,0,7,176,0,3,176,0,3,224,0, - 1,224,0,1,224,0,0,192,0,0,192,0,1,128,0,1, - 128,0,99,0,0,227,0,0,230,0,0,252,0,0,112,0, - 0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=16 h=25 x= 3 y=11 dx=20 dy= 0 ascent=25 len=50 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24n[744] U8G_FONT_SECTION("u8g_font_ncenR24n") = { - 0,39,50,250,245,24,0,0,0,0,42,58,0,25,250,24, - 0,12,14,28,17,2,11,6,0,6,0,6,0,198,112,230, - 112,127,224,31,128,31,0,127,192,230,112,198,112,6,0,6, - 0,6,0,16,17,34,20,2,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,255,255,255,255,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,5,10,10,9,2, - 250,112,248,248,120,24,24,48,96,224,128,8,3,3,11,1, - 7,255,255,255,4,4,4,9,2,0,96,240,240,96,10,25, - 50,9,255,0,0,192,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,48,0,48,0,48,0,96,0, - 96,0,96,0,192,0,16,24,48,18,2,0,3,192,15,240, - 28,56,24,24,56,28,120,30,112,14,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,112,14, - 120,30,56,28,24,24,28,56,15,240,3,192,13,24,48,18, - 3,0,3,0,7,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 255,248,15,24,48,18,1,0,7,224,31,248,56,28,96,30, - 112,14,120,14,120,14,120,14,48,30,0,28,0,28,0,56, - 0,120,0,112,0,224,1,192,3,128,7,2,14,2,28,6, - 56,6,127,254,255,254,255,254,15,24,48,18,1,0,7,224, - 31,248,56,56,112,28,120,28,120,28,48,28,0,28,0,56, - 0,112,1,224,15,240,0,248,0,60,0,28,0,30,96,14, - 240,14,240,14,240,30,224,28,120,124,63,240,15,192,16,24, - 48,18,1,0,0,48,0,48,0,112,0,240,1,240,1,240, - 3,112,6,112,6,112,12,112,24,112,24,112,48,112,96,112, - 96,112,192,112,255,255,255,255,0,112,0,112,0,112,0,112, - 0,248,3,254,14,24,48,18,2,0,56,8,63,248,63,240, - 63,224,48,0,48,0,32,0,96,0,99,192,111,240,124,120, - 112,56,96,60,0,28,0,28,0,28,96,28,240,28,240,28, - 240,60,224,56,112,120,127,240,31,128,15,24,48,18,1,0, - 3,240,15,252,28,62,56,30,56,30,48,12,112,0,112,0, - 112,0,241,224,247,248,254,60,252,28,248,30,240,14,240,14, - 240,14,112,14,112,14,112,30,56,28,56,60,31,240,7,192, - 13,24,48,18,3,0,255,248,255,248,255,248,192,16,192,48, - 128,32,128,96,128,64,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,7,0,7,0,7,0,15,0,15,0, - 15,0,15,0,6,0,15,24,48,18,1,0,7,224,31,248, - 60,56,56,28,112,28,112,12,112,12,120,24,60,56,63,112, - 31,224,7,240,7,248,29,252,56,124,112,30,112,30,224,14, - 224,14,224,14,112,28,120,60,63,248,15,224,15,24,48,18, - 1,0,15,192,63,240,120,120,112,56,240,60,224,28,224,28, - 224,30,224,30,240,30,240,62,120,126,120,126,63,222,31,158, - 0,30,0,28,0,28,96,56,240,56,240,112,241,224,127,192, - 63,0,4,16,16,9,3,0,96,240,240,96,0,0,0,0, - 0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=31 x= 9 y=17 dx=31 dy= 0 ascent=27 len=100 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24r[5367] U8G_FONT_SECTION("u8g_font_ncenR24r") = { - 0,39,50,250,245,25,5,159,15,28,32,127,249,27,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w=11 h= 9 x= 1 y= 4 dx=12 dy= 0 ascent= 9 len=10 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01[1535] U8G_FONT_SECTION("u8g_font_orgv01") = { - 1,11,11,0,254,5,0,249,1,238,32,255,255,9,254,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,20,36,128,0,128,128,2,85,101,32,248,160,248,32,2, - 85,101,64,224,64,72,120,2,85,101,136,112,80,112,136,2, - 85,101,136,248,32,112,32,2,21,37,128,128,0,128,128,2, - 86,102,248,128,248,248,8,248,4,81,97,248,18,85,117,248, - 168,200,168,248,2,181,202,251,224,138,0,251,224,136,32,139, - 224,19,83,115,72,144,72,3,66,82,240,16,255,2,85,101, - 248,248,200,200,248,6,81,97,248,2,0,112,2,0,112,2, - 0,112,2,0,112,2,0,112,2,0,112,2,0,112,2,0, - 112,2,0,112,2,0,112,2,0,112,4,83,99,144,72,144, - 2,0,112,2,0,112,2,0,112,18,85,117,32,0,224,128, - 248,2,88,104,64,32,0,248,136,248,136,136,2,88,104,16, - 32,0,248,136,248,136,136,2,88,104,32,80,0,248,136,248, - 136,136,2,89,105,8,248,128,0,248,136,248,136,136,2,87, - 103,80,0,248,136,248,136,136,2,87,103,32,0,248,136,248, - 136,136,2,85,101,248,160,248,160,184,0,87,103,248,128,128, - 128,248,16,48,2,88,104,64,32,0,248,128,248,128,248,2, - 88,104,16,32,0,248,128,248,128,248,2,88,104,32,80,0, - 248,128,248,128,248,2,86,102,80,248,128,248,128,248,2,88, - 104,64,32,0,248,32,32,32,248,2,88,104,16,32,0,248, - 32,32,32,248,2,88,104,32,80,0,248,32,32,32,248,2, - 87,103,80,0,248,32,32,32,248,2,85,101,240,136,232,136, - 240,2,89,105,8,248,128,0,248,136,136,136,136,2,88,104, - 64,32,0,248,136,136,136,248,2,88,104,16,32,0,248,136, - 136,136,248,2,88,104,32,80,0,248,136,136,136,248,2,89, - 105,8,248,128,0,248,136,136,136,248,2,87,103,80,0,248, - 136,136,136,248,3,51,67,160,64,160,2,85,101,248,152,168, - 200,248,2,87,103,64,32,136,136,136,136,248,2,87,103,16, - 32,136,136,136,136,248,2,86,102,32,80,136,136,136,248,2, - 86,102,80,0,136,136,136,248,2,88,104,16,32,0,136,136, - 80,32,32,18,85,117,128,240,136,240,128,1,86,102,240,136, - 176,136,176,128,2,68,84,240,16,240,240,2,71,87,64,32, - 0,240,16,240,240,2,71,87,32,64,0,240,16,240,240,2, - 71,87,96,144,0,240,16,240,240,2,70,86,144,0,240,16, - 240,240,2,70,86,32,0,240,16,240,240,2,116,132,254,30, - 240,254,0,70,86,240,128,128,240,32,96,2,71,87,64,32, - 0,240,240,128,240,2,71,87,32,64,0,240,240,128,240,2, - 71,87,96,144,0,240,240,128,240,2,70,86,144,0,240,240, - 128,240,2,39,39,128,64,0,64,64,64,64,2,39,39,64, - 128,0,128,128,128,128,2,55,39,64,160,0,64,64,64,64, - 2,54,38,160,0,64,64,64,64,2,85,85,56,16,240,144, - 240,2,71,87,80,160,0,240,144,144,144,2,71,87,64,32, - 0,240,144,144,240,2,71,87,32,64,0,240,144,144,240,2, - 71,87,96,144,0,240,144,144,240,2,71,87,80,160,0,240, - 144,144,240,2,70,86,144,0,240,144,144,240,2,85,101,32, - 0,248,0,32,2,68,84,240,176,208,240,2,71,87,64,32, - 0,144,144,144,240,2,71,87,32,64,0,144,144,144,240,2, - 71,87,96,144,0,144,144,144,240,2,70,86,144,0,144,144, - 144,240,1,72,88,32,64,0,144,144,144,240,16,18,85,117, - 128,240,136,240,128,1,71,87,144,0,144,144,144,240,16}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01n[137] U8G_FONT_SECTION("u8g_font_orgv01n") = { - 1,11,11,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,51,67,160,64,160,3,51,67,64,224,64,1,18,34, - 128,128,4,65,81,240,2,17,33,128,2,85,101,8,16,32, - 64,128,2,85,101,248,136,136,136,248,2,21,37,128,128,128, - 128,128,2,85,101,248,8,248,128,248,2,85,101,248,8,248, - 8,248,2,85,101,136,136,248,8,8,2,85,101,248,128,248, - 8,248,2,85,101,248,128,248,136,248,2,85,101,248,8,8, - 8,8,2,85,101,248,136,248,136,248,2,85,101,248,136,248, - 8,248,2,20,36,128,0,0,128}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01r[719] U8G_FONT_SECTION("u8g_font_orgv01r") = { - 1,11,11,0,254,5,0,249,1,238,32,127,255,5,255,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=14 dx=27 dy= 0 ascent=24 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18[7637] U8G_FONT_SECTION("u8g_font_osb18") = { - 0,70,31,234,249,18,4,190,10,54,32,255,250,24,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,7,0, - 0,4,18,18,6,1,250,96,240,240,96,0,0,64,96,96, - 96,96,96,240,240,240,240,240,96,9,18,36,15,3,253,4, - 0,4,0,4,0,30,0,53,0,117,128,231,128,231,128,228, - 0,228,0,228,0,228,0,100,128,116,128,31,0,4,0,4, - 0,4,0,16,18,36,19,2,0,0,248,1,132,3,6,7, - 14,7,14,7,0,7,0,63,0,7,240,7,128,3,128,3, - 128,3,128,3,1,123,2,143,204,135,252,120,240,12,12,24, - 14,1,3,132,16,223,176,112,224,96,96,192,48,192,48,192, - 48,192,48,64,96,96,96,127,224,207,48,14,18,36,14,0, - 0,254,124,56,16,60,16,60,32,30,32,30,64,14,64,15, - 128,7,128,127,240,7,0,127,240,7,0,7,0,7,0,7, - 0,7,0,31,224,2,22,22,8,3,252,192,192,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,192, - 192,11,23,46,15,1,251,15,0,48,128,96,192,97,192,97, - 192,112,128,124,0,63,0,223,128,143,192,129,224,192,96,248, - 32,126,32,63,64,15,128,3,192,49,192,112,192,112,192,96, - 128,33,128,30,0,8,3,3,12,2,14,231,231,231,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,33,201,0, - 67,56,128,70,24,128,142,8,64,142,8,64,142,0,64,142, - 0,64,142,8,64,142,8,64,70,8,128,67,16,128,33,225, - 0,16,2,0,12,12,0,3,240,0,7,9,9,10,1,9, - 120,204,204,60,76,204,206,126,254,7,10,10,12,3,1,32, - 100,68,204,204,204,204,196,100,34,13,7,14,15,1,4,255, - 248,255,248,0,24,0,24,0,24,0,24,0,24,6,3,3, - 8,1,5,252,252,252,18,18,54,20,1,0,3,240,0,12, - 12,0,16,2,0,47,225,0,71,48,128,71,56,128,135,56, - 64,135,48,64,135,192,64,135,48,64,135,56,64,135,56,64, - 71,58,128,71,58,128,47,157,0,16,2,0,12,12,0,3, - 240,0,7,2,2,11,2,14,254,254,8,7,7,14,3,11, - 60,102,131,129,129,194,126,21,18,54,23,1,254,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,0,0,255,255,248, - 255,255,248,7,11,11,11,2,7,124,206,206,238,28,48,98, - 66,254,190,8,8,11,11,12,2,7,60,198,231,231,6,56, - 6,103,231,199,60,4,4,4,11,5,13,48,112,96,192,13, - 18,36,15,1,250,97,128,225,192,225,192,225,192,225,192,225, - 192,225,192,64,136,64,136,65,248,127,120,94,48,64,0,96, - 0,96,0,112,0,112,0,112,0,13,21,42,15,1,253,31, - 248,126,96,126,96,254,96,254,96,254,96,254,96,126,96,62, - 96,14,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,4,4,4,8,2,6,96, - 240,240,96,5,5,5,11,3,250,32,96,24,24,240,6,11, - 11,11,3,7,48,240,112,112,112,112,112,112,112,112,252,7, - 9,9,9,1,9,56,68,198,198,198,198,68,56,254,7,10, - 10,13,3,1,152,140,68,102,102,102,102,70,76,136,18,18, - 54,22,3,0,48,8,0,240,8,0,112,16,0,112,48,0, - 112,32,0,112,96,0,112,64,0,112,195,0,112,135,0,113, - 143,0,253,15,0,3,23,0,2,39,0,4,39,0,12,63, - 192,8,7,0,24,7,0,16,31,192,18,18,54,23,3,0, - 48,4,0,240,8,0,112,24,0,112,16,0,112,48,0,112, - 32,0,112,96,0,112,79,0,112,147,192,113,177,192,253,57, - 192,3,3,128,2,6,0,6,8,0,4,16,64,8,63,192, - 24,47,192,16,39,128,20,18,54,23,2,0,124,2,0,199, - 6,0,231,4,0,6,12,0,56,8,0,6,16,0,7,16, - 0,231,33,192,231,97,192,198,67,192,60,133,192,0,133,192, - 1,9,192,1,9,192,2,31,240,6,1,192,4,1,192,8, - 7,240,8,18,18,12,2,250,48,120,120,48,56,68,68,4, - 8,24,48,114,97,225,225,225,114,60,17,23,69,19,1,1, - 7,0,0,7,0,0,1,128,0,0,128,0,0,0,0,0, - 192,0,0,192,0,1,192,0,1,224,0,1,224,0,3,224, - 0,2,240,0,2,240,0,4,240,0,4,120,0,4,120,0, - 8,56,0,15,252,0,8,60,0,16,28,0,16,30,0,48, - 30,0,252,255,128,17,23,69,19,1,1,0,56,0,0,48, - 0,0,96,0,0,192,0,0,0,0,0,192,0,0,192,0, - 0,192,0,1,224,0,1,224,0,1,224,0,2,240,0,2, - 240,0,4,112,0,4,120,0,4,120,0,8,56,0,15,252, - 0,8,60,0,16,28,0,16,30,0,48,30,0,252,127,128, - 17,23,69,19,1,0,0,192,0,1,192,0,3,96,0,6, - 24,0,0,0,0,0,192,0,0,192,0,0,192,0,1,224, - 0,1,224,0,1,224,0,2,240,0,2,240,0,4,112,0, - 4,120,0,4,120,0,8,56,0,15,252,0,8,60,0,16, - 28,0,16,30,0,48,30,0,252,127,128,17,23,69,19,1, - 0,1,8,0,7,240,0,4,240,0,0,0,0,0,0,0, - 0,192,0,0,192,0,1,192,0,1,224,0,1,224,0,3, - 224,0,2,240,0,2,240,0,4,240,0,4,120,0,4,120, - 0,8,56,0,15,252,0,8,60,0,16,28,0,16,30,0, - 48,30,0,252,255,128,16,23,46,18,1,0,14,112,14,112, - 14,112,0,0,0,0,1,128,1,128,1,128,3,192,3,192, - 3,192,5,224,5,224,4,224,8,240,8,240,8,112,31,248, - 16,120,16,60,48,60,48,60,252,255,18,23,69,19,1,0, - 1,224,0,2,16,0,2,16,0,1,224,0,0,0,0,0, - 192,0,0,192,0,0,224,0,1,224,0,1,224,0,1,240, - 0,2,240,0,2,240,0,4,120,0,4,120,0,4,120,0, - 8,60,0,15,252,0,8,28,0,16,30,0,16,30,0,48, - 30,0,252,127,192,23,18,54,25,1,0,0,127,254,0,60, - 14,0,60,6,0,124,6,0,92,2,0,220,34,0,156,32, - 1,156,96,1,28,96,3,31,224,2,28,96,6,28,34,7, - 252,34,8,28,2,8,28,2,24,28,6,56,28,14,254,127, - 254,13,24,48,17,2,250,7,136,24,120,48,56,112,24,112, - 24,240,8,240,8,240,8,240,0,240,0,240,0,240,8,240, - 8,112,8,112,8,56,16,24,32,7,192,2,0,3,128,0, - 192,0,192,8,192,7,128,14,23,46,18,2,1,28,0,12, - 0,6,0,1,0,0,0,255,252,56,28,56,12,56,12,56, - 4,56,68,56,64,56,192,56,192,63,192,56,192,56,68,56, - 68,56,4,56,4,56,12,56,28,255,252,14,23,46,18,2, - 1,0,224,0,192,1,128,2,0,0,0,255,252,56,28,56, - 12,56,12,56,4,56,68,56,64,56,192,56,192,63,192,56, - 192,56,68,56,68,56,4,56,4,56,12,56,28,255,252,14, - 23,46,18,2,0,3,0,7,128,12,192,16,32,0,0,255, - 252,56,28,56,12,56,12,56,4,56,68,56,64,56,192,56, - 192,63,192,56,192,56,68,56,68,56,4,56,4,56,12,56, - 28,255,252,14,23,46,18,2,0,28,224,28,224,28,224,0, - 0,0,0,255,252,56,28,56,12,56,12,56,4,56,68,56, - 64,56,192,56,192,63,192,56,192,56,68,56,68,56,4,56, - 12,56,12,56,28,255,252,8,23,23,11,2,1,192,96,48, - 16,0,255,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,255,8,23,23,11,2,1,7,14,8,16,0,255, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 255,8,23,23,11,2,0,16,56,108,130,0,255,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,255,8,23, - 23,11,2,0,231,231,231,0,0,255,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,255,16,18,36,19,2, - 0,255,224,56,56,56,28,56,14,56,14,56,14,56,15,56, - 15,255,15,56,15,56,15,56,15,56,14,56,14,56,12,56, - 28,56,56,255,224,17,23,69,18,1,0,3,136,0,3,240, - 0,4,96,0,0,0,0,0,0,0,252,63,128,60,14,0, - 62,4,0,31,4,0,31,4,0,23,132,0,23,196,0,19, - 196,0,17,228,0,17,244,0,16,244,0,16,124,0,16,124, - 0,16,60,0,16,28,0,16,28,0,56,12,0,254,4,0, - 15,24,48,18,2,0,12,0,12,0,14,0,3,0,1,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,24,48,18,2,0,0,96,0,96, - 0,224,1,128,1,0,0,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,24,48,18, - 2,0,1,0,3,128,7,128,14,192,24,48,0,0,7,192, - 8,32,56,48,48,24,112,28,112,28,240,30,240,30,240,30, - 240,30,240,30,240,30,112,28,112,28,48,24,48,56,8,32, - 7,192,15,23,46,18,2,0,7,32,15,224,16,192,0,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,23,46,18,2,0,28,224,28,224, - 28,224,0,0,0,0,7,192,8,32,56,48,48,24,112,28, - 112,28,240,30,240,30,240,30,240,30,240,30,240,30,112,28, - 112,28,48,24,48,56,8,32,7,192,16,15,30,24,4,0, - 192,3,96,6,48,12,24,24,12,48,6,96,3,192,1,128, - 3,192,6,96,12,48,56,24,112,12,224,6,192,3,15,18, - 36,18,2,0,7,194,8,116,48,60,48,56,112,60,112,124, - 240,94,240,222,241,158,243,30,246,30,244,30,124,28,120,28, - 56,24,120,24,92,32,135,192,18,24,72,20,2,0,6,0, - 0,7,0,0,3,0,0,1,128,0,0,0,0,0,0,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,18,24,72,20,2,0,0,24,0,0, - 56,0,0,112,0,0,192,0,0,128,0,0,0,0,255,31, - 192,56,7,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,24,2,0,28,4,0,14,8, - 0,3,240,0,18,24,72,20,2,0,0,128,0,1,192,0, - 1,224,0,6,48,0,8,8,0,0,0,0,255,31,192,56, - 7,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,24,2,0,28,4,0,14,8,0,3, - 240,0,18,23,69,20,2,0,7,56,0,7,56,0,7,56, - 0,0,0,0,0,0,0,255,31,192,56,7,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,24,2,0,28,4,0,14,8,0,3,240,0,16,23,46, - 19,2,1,0,112,0,96,0,192,1,0,0,0,254,127,60, - 12,60,8,30,16,30,16,30,16,15,32,15,32,7,64,7, - 192,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 240,15,18,36,18,2,0,255,128,56,0,56,0,63,224,56, - 56,56,28,56,30,56,30,56,30,56,30,56,28,56,56,63, - 224,56,0,56,0,56,0,56,0,255,128,12,18,36,13,0, - 0,7,128,12,192,24,224,56,224,56,224,56,224,56,192,59, - 0,56,192,56,96,56,112,56,112,56,112,56,112,56,112,63, - 112,63,96,251,192,11,18,36,13,1,0,32,0,48,0,48, - 0,24,0,4,0,0,0,30,0,99,0,99,128,115,128,7, - 128,27,128,115,128,227,128,227,160,227,160,247,160,121,192,11, - 18,36,13,1,0,3,0,3,0,6,0,4,0,8,0,0, - 0,30,0,99,0,99,128,115,128,35,128,31,128,115,128,227, - 128,227,160,227,160,247,160,121,192,11,18,36,13,1,0,12, - 0,12,0,30,0,50,0,65,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,17,34,13,1,0,57,0,127,0,70,0,0, - 0,0,0,30,0,99,0,99,128,115,128,35,128,31,128,115, - 128,227,128,227,160,227,160,247,160,121,192,11,17,34,13,1, - 0,119,0,119,0,119,0,0,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,18,36,13,1,0,28,0,38,0,34,0,34, - 0,28,0,0,0,30,0,99,0,99,128,115,128,35,128,31, - 128,115,128,227,128,227,160,227,160,231,160,121,192,15,12,24, - 18,1,0,62,248,99,140,99,142,115,142,7,142,27,254,115, - 128,227,128,227,130,227,130,247,196,120,120,9,18,36,12,1, - 250,30,0,49,0,113,128,227,128,227,128,224,0,224,0,224, - 0,224,128,112,128,49,0,30,0,8,0,8,0,6,0,6, - 0,6,0,28,0,9,18,36,12,1,0,32,0,112,0,48, - 0,24,0,4,0,0,0,30,0,51,0,99,128,227,128,227, - 128,255,128,224,0,224,0,224,128,112,128,49,0,30,0,9, - 18,36,12,1,0,3,0,7,0,6,0,12,0,8,0,0, - 0,30,0,51,0,99,128,227,128,227,128,255,128,224,0,224, - 0,224,128,112,128,49,0,30,0,9,18,36,12,1,0,12, - 0,28,0,28,0,50,0,65,0,0,0,30,0,51,0,99, - 128,227,128,227,128,255,128,224,0,224,0,224,128,112,128,49, - 0,30,0,9,17,34,12,1,0,115,128,115,128,115,128,0, - 0,0,0,30,0,51,0,99,128,227,128,227,128,255,128,224, - 0,224,0,224,0,112,128,49,0,30,0,7,18,18,8,1, - 0,192,224,112,16,8,0,120,56,56,56,56,56,56,56,56, - 56,56,126,6,18,18,8,1,0,12,28,24,48,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,7,18,18,7,0, - 0,56,56,108,198,0,0,120,56,56,56,56,56,56,56,56, - 56,56,126,7,17,17,8,1,0,238,238,238,0,0,120,56, - 56,56,56,56,56,56,56,56,56,126,10,18,36,12,1,0, - 57,128,30,0,14,0,31,0,39,0,3,128,31,128,51,192, - 97,192,225,192,225,192,225,192,225,192,225,192,225,192,97,128, - 51,128,30,0,11,17,34,13,1,0,24,128,63,128,39,0, - 0,0,0,0,243,128,125,192,121,192,113,192,113,192,113,192, - 113,192,113,192,113,192,113,192,113,192,251,224,10,18,36,12, - 1,0,48,0,48,0,24,0,12,0,4,0,0,0,30,0, - 51,0,97,128,225,192,225,192,225,192,225,192,225,192,225,192, - 97,128,51,0,30,0,10,18,36,12,1,0,3,0,3,0, - 7,0,4,0,8,0,0,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 10,18,36,12,1,0,12,0,14,0,30,0,51,0,96,128, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,10,17,34,12,1,0, - 56,128,63,0,70,0,0,0,0,0,30,0,51,0,97,128, - 225,192,225,192,225,192,225,192,225,192,225,192,97,128,51,0, - 30,0,10,17,34,12,1,0,115,128,115,128,115,128,0,0, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,21,17,51,23,1,254, - 0,48,0,0,120,0,0,120,0,0,48,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,248,255,255,248,0,0, - 0,0,0,0,0,0,0,0,48,0,0,120,0,0,120,0, - 0,48,0,10,12,24,12,1,0,30,64,51,128,97,128,225, - 192,227,192,229,192,233,192,241,192,241,192,97,128,115,0,158, - 0,12,18,36,13,0,0,24,0,24,0,12,0,6,0,2, - 0,0,0,249,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,224,57,224,58,224,28,240,12,18,36,13,0, - 0,1,128,1,128,3,0,2,0,0,0,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,18,36,13,0,0,6,0,6,0,15, - 0,25,128,0,0,0,0,249,224,56,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,57,224,58,224,28,240,12, - 17,34,13,0,0,57,192,57,192,57,192,0,0,0,0,249, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,57,224,58,224,28,240,12,24,48,12,0,250,1,128,1, - 128,3,0,6,0,4,0,0,0,252,240,112,64,56,64,56, - 128,28,128,28,128,29,0,15,0,15,0,7,0,6,0,6, - 0,2,0,4,0,116,0,116,0,104,0,56,0,12,23,46, - 13,0,250,24,0,120,0,184,0,56,0,56,0,57,224,58, - 240,60,112,60,112,56,112,56,96,56,224,56,192,56,128,57, - 0,58,0,60,0,56,0,56,0,56,0,56,0,96,0,128, - 0,13,23,46,13,0,250,28,224,28,224,28,224,0,0,0, - 0,254,120,56,32,60,64,28,64,30,64,14,64,14,128,7, - 128,7,128,7,0,3,0,3,0,2,0,2,0,58,0,60, - 0,52,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=21 h=23 x= 3 y= 8 dx=23 dy= 0 ascent=18 len=63 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18n[618] U8G_FONT_SECTION("u8g_font_osb18n") = { - 0,70,31,234,249,18,0,0,0,0,42,58,0,18,251,18, - 0,9,10,20,13,2,8,24,0,24,0,201,128,235,128,28, - 0,44,0,235,128,217,128,24,0,24,0,21,21,63,23,1, - 253,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 4,9,9,7,2,251,224,240,240,240,16,32,32,64,128,6, - 3,3,8,1,5,252,252,252,4,4,4,8,2,0,96,240, - 240,96,9,23,46,11,1,251,1,128,1,128,1,0,3,0, - 3,0,2,0,6,0,6,0,4,0,12,0,12,0,8,0, - 24,0,24,0,24,0,16,0,48,0,48,0,32,0,96,0, - 96,0,64,0,192,0,12,18,36,15,1,0,15,0,25,128, - 48,192,112,224,112,224,240,224,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,48,192,25,128,15,0, - 8,18,18,15,3,0,24,56,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,255,11,18,36,15,2,0,31,0, - 113,192,96,224,224,224,240,224,248,224,121,192,1,192,3,0, - 6,0,8,0,48,32,64,32,64,32,255,224,191,224,143,192, - 135,128,12,18,36,15,1,0,31,0,49,192,96,224,112,224, - 120,224,120,224,0,192,1,128,62,0,1,192,0,224,0,240, - 112,240,248,240,240,240,192,224,65,192,63,0,11,18,36,15, - 2,0,3,0,7,0,7,0,15,0,15,0,23,0,55,0, - 39,0,103,0,71,0,199,0,135,0,255,224,7,0,7,0, - 7,0,7,0,63,224,11,18,36,15,2,0,65,128,127,128, - 126,0,120,0,64,0,64,0,95,0,99,128,65,192,65,224, - 1,224,33,224,241,224,241,224,225,192,193,192,67,128,62,0, - 11,18,36,15,2,0,7,128,24,64,48,224,113,224,113,224, - 240,0,240,0,247,128,249,192,240,224,240,224,240,224,240,224, - 112,224,112,224,48,192,57,192,15,0,11,18,36,15,2,0, - 156,64,190,96,255,32,255,224,128,32,128,64,128,64,0,128, - 1,128,3,0,7,0,6,0,14,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,15,1,0,31,128,32,64,64,32, - 192,32,192,32,240,32,252,64,127,128,127,192,63,224,103,240, - 193,240,192,112,192,48,192,48,96,32,112,64,31,128,12,18, - 36,15,2,0,31,0,113,128,96,192,224,224,224,224,224,240, - 224,240,96,240,113,240,30,240,0,240,0,240,56,224,120,224, - 120,224,97,192,33,128,30,0,4,12,12,8,2,0,96,240, - 240,96,0,0,0,0,96,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=27 dy= 0 ascent=20 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18r[3611] U8G_FONT_SECTION("u8g_font_osb18r") = { - 0,70,31,234,249,18,4,190,10,54,32,127,250,20,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 5 y=17 dx=31 dy= 0 ascent=28 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21[9612] U8G_FONT_SECTION("u8g_font_osb21") = { - 0,77,36,232,248,21,5,141,12,241,32,255,249,28,248,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,8,0,0,5, - 21,21,9,2,249,112,248,248,112,0,0,32,32,32,32,32, - 112,112,112,112,248,248,248,248,248,112,10,21,42,16,3,253, - 2,0,2,0,2,0,15,0,26,128,50,192,114,192,243,192, - 243,192,242,0,242,0,242,0,242,0,242,64,114,64,50,64, - 30,128,15,0,2,0,2,0,2,0,17,21,63,20,2,1, - 0,254,0,1,131,0,3,131,0,3,135,128,7,135,128,7, - 135,0,7,128,0,7,128,0,7,128,0,31,128,0,39,248, - 0,7,128,0,7,192,0,3,192,0,3,128,0,3,128,0, - 3,128,128,123,1,128,143,135,0,135,254,0,121,252,0,13, - 13,26,17,2,3,207,152,255,248,112,112,96,48,192,24,192, - 24,192,24,192,24,192,24,96,48,112,112,255,248,207,152,15, - 21,42,16,1,0,254,126,124,24,124,24,60,16,60,16,30, - 32,30,32,30,64,15,64,15,128,7,128,127,248,7,128,127, - 248,7,128,7,128,7,128,7,128,7,128,7,128,63,240,2, - 26,26,8,3,251,192,192,192,192,192,192,192,192,192,192,0, - 0,0,0,0,0,192,192,192,192,192,192,192,192,192,192,13, - 27,54,18,1,250,15,128,16,64,32,96,96,224,97,224,97, - 224,112,128,124,0,63,0,95,192,79,240,195,240,192,248,224, - 56,248,24,126,16,127,144,31,224,7,224,1,224,48,224,120, - 96,120,96,112,96,96,192,48,128,31,0,9,4,8,13,2, - 16,99,0,247,128,247,128,99,0,20,21,63,22,1,1,3, - 252,0,12,3,0,16,0,128,32,0,64,32,244,64,65,140, - 32,67,132,32,131,132,16,135,132,16,135,132,16,135,128,16, - 135,128,16,135,128,16,135,130,16,67,132,32,67,132,32,33, - 136,64,32,240,64,16,0,128,12,3,0,3,252,0,8,11, - 11,10,1,10,56,76,108,108,60,204,205,205,118,0,255,7, - 11,11,13,3,2,34,68,196,204,204,204,204,204,68,98,34, - 14,8,16,16,1,4,255,252,255,252,0,12,0,12,0,12, - 0,12,0,12,0,12,7,3,3,11,2,6,254,254,254,20, - 21,63,22,1,1,3,252,0,12,3,0,16,0,128,32,0, - 64,47,248,64,67,206,32,67,206,32,131,207,16,131,206,16, - 131,206,16,131,240,16,131,204,16,131,206,16,131,206,16,67, - 206,160,67,206,160,35,206,192,47,231,64,16,0,128,12,3, - 0,3,252,0,7,2,2,13,3,17,254,254,9,10,20,17, - 4,12,8,0,62,0,119,0,193,128,193,128,193,128,193,128, - 99,0,127,0,28,0,24,22,66,26,1,254,0,24,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,255,255,255,255,255,255,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,0,0,0,0,0,255,255,255,255,255,255,9,12, - 24,13,2,9,62,0,71,0,199,128,231,0,111,0,12,0, - 24,0,33,0,65,128,255,0,159,0,142,0,10,13,26,13, - 2,8,62,0,67,0,195,128,227,128,99,128,3,0,60,0, - 7,0,3,128,243,192,227,128,199,128,62,0,5,5,5,12, - 5,16,24,56,112,96,192,14,22,44,17,2,248,96,192,224, - 224,241,224,241,224,225,224,225,224,224,224,224,224,96,192,64, - 196,64,196,65,252,127,124,78,56,64,0,64,0,96,0,224, - 0,240,0,240,0,112,0,96,0,13,25,50,17,2,252,31, - 248,126,96,254,96,254,96,254,96,254,96,254,96,254,96,254, - 96,126,96,62,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,4,4,4,8,2,7,96,240,240,96,5,6,6,13,4, - 249,32,64,48,24,24,240,7,12,12,13,3,9,28,252,60, - 60,60,60,60,60,60,60,60,254,8,11,11,11,2,10,60, - 102,230,231,231,231,230,102,60,0,255,7,11,11,13,3,2, - 136,68,102,102,102,102,102,102,68,140,136,22,21,63,26,3, - 0,12,1,128,28,1,0,252,3,0,60,2,0,60,6,0, - 60,12,0,60,12,0,60,24,0,60,16,0,60,48,112,60, - 32,240,60,97,240,254,65,240,0,194,240,0,130,240,1,132, - 240,3,8,240,3,15,252,6,0,240,4,0,240,12,3,248, - 21,22,66,26,3,0,0,1,128,28,1,0,252,3,0,60, - 2,0,60,6,0,60,4,0,60,12,0,60,24,0,60,24, - 0,60,51,224,60,36,112,60,108,120,60,78,120,254,206,120, - 0,134,112,1,128,192,1,1,0,3,2,8,2,4,8,6, - 15,248,4,11,240,12,8,224,22,21,63,25,2,0,62,0, - 128,67,1,128,195,129,0,227,131,0,99,130,0,3,6,0, - 60,4,0,7,8,0,3,152,0,243,208,112,227,176,112,199, - 160,240,62,97,240,0,65,240,0,194,240,0,130,240,1,132, - 240,1,7,252,3,0,240,2,0,240,6,3,252,9,22,44, - 13,2,249,24,0,60,0,60,0,60,0,24,0,0,0,28, - 0,34,0,34,0,34,0,6,0,12,0,28,0,56,0,112, - 0,113,0,240,128,240,128,240,128,240,128,113,0,62,0,19, - 27,81,22,2,1,3,0,0,3,128,0,1,128,0,0,192, - 0,0,64,0,0,0,0,0,64,0,0,96,0,0,224,0, - 0,224,0,0,240,0,1,240,0,1,240,0,1,248,0,2, - 120,0,2,120,0,2,124,0,4,60,0,4,60,0,4,62, - 0,15,254,0,8,30,0,8,31,0,16,15,0,16,15,0, - 48,15,128,254,127,224,19,27,81,21,2,1,0,24,0,0, - 56,0,0,48,0,0,96,0,0,64,0,0,0,0,0,64, - 0,0,96,0,0,224,0,0,224,0,0,240,0,1,240,0, - 1,240,0,1,248,0,2,120,0,2,120,0,2,124,0,4, - 60,0,4,60,0,8,60,0,15,254,0,8,30,0,16,30, - 0,16,15,0,16,15,0,48,15,128,254,127,224,19,27,81, - 22,2,0,0,64,0,0,224,0,1,240,0,3,24,0,4, - 4,0,0,0,0,0,64,0,0,96,0,0,224,0,0,224, - 0,0,240,0,1,240,0,1,240,0,1,248,0,2,120,0, - 2,120,0,2,124,0,4,60,0,4,60,0,4,62,0,15, - 254,0,8,30,0,8,31,0,16,15,0,16,15,0,48,15, - 128,254,127,224,19,27,81,21,2,0,0,4,0,1,200,0, - 3,248,0,4,112,0,0,0,0,0,0,0,0,64,0,0, - 96,0,0,224,0,0,224,0,0,240,0,1,240,0,1,240, - 0,1,248,0,2,120,0,2,120,0,2,124,0,4,60,0, - 4,60,0,4,60,0,15,254,0,8,30,0,24,30,0,16, - 15,0,16,15,0,48,15,128,254,127,224,19,27,81,22,2, - 0,3,12,0,7,158,0,7,158,0,3,12,0,0,0,0, - 0,0,0,0,96,0,0,96,0,0,224,0,0,240,0,0, - 240,0,1,240,0,1,248,0,1,120,0,2,120,0,2,124, - 0,2,60,0,4,60,0,4,62,0,4,30,0,15,254,0, - 8,31,0,8,15,0,16,15,0,16,15,0,48,15,128,254, - 127,224,19,27,81,21,1,0,0,240,0,1,8,0,1,8, - 0,1,8,0,0,240,0,0,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 120,0,1,120,0,2,124,0,2,60,0,2,60,0,4,62, - 0,4,30,0,7,254,0,8,31,0,8,15,0,8,15,0, - 24,15,0,24,15,128,254,63,224,26,21,84,28,0,0,0, - 63,255,192,0,15,131,192,0,15,129,192,0,31,128,192,0, - 23,128,192,0,55,128,64,0,39,132,64,0,103,132,0,0, - 71,140,0,0,199,156,0,0,135,252,0,1,135,156,0,1, - 7,140,0,3,7,132,64,3,255,132,64,6,7,128,64,4, - 7,128,64,12,7,128,192,12,7,129,192,28,7,131,192,255, - 63,255,192,15,28,56,18,2,250,15,230,28,30,56,30,56, - 14,120,14,120,6,248,6,248,6,248,2,248,0,248,0,248, - 0,248,0,248,2,120,2,120,2,120,4,56,4,60,12,28, - 8,6,48,1,192,1,0,1,192,0,96,0,96,4,96,3, - 192,16,27,54,19,1,1,6,0,7,0,3,0,1,128,0, - 0,0,0,255,255,30,15,30,7,30,3,30,3,30,1,30, - 17,30,16,30,48,30,48,31,240,30,48,30,48,30,17,30, - 17,30,1,30,1,30,3,30,7,30,15,255,255,16,27,54, - 19,1,1,0,56,0,120,0,96,0,192,0,0,0,0,255, - 255,30,15,30,7,30,3,30,3,30,1,30,17,30,16,30, - 48,30,48,31,240,30,48,30,48,30,17,30,17,30,1,30, - 1,30,3,30,7,30,15,255,255,16,27,54,19,1,0,0, - 128,1,192,3,96,6,56,8,0,0,0,255,255,30,15,30, - 7,30,3,30,3,30,1,30,17,30,16,30,48,30,48,31, - 240,30,48,30,48,30,17,30,17,30,1,30,1,30,3,30, - 7,30,15,255,255,16,27,54,19,1,0,6,24,15,60,15, - 60,6,24,0,0,0,0,255,255,30,15,30,7,30,3,30, - 3,30,1,30,17,30,16,30,48,30,48,31,240,30,48,30, - 48,30,17,30,17,30,1,30,1,30,3,30,7,30,15,255, - 255,9,27,54,11,1,1,96,0,112,0,56,0,8,0,0, - 0,0,0,255,128,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,255,128,10,27,54, - 12,1,1,3,128,3,128,6,0,12,0,8,0,0,0,255, - 192,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,255,192,9,27,54,11,1,0,12, - 0,28,0,62,0,99,0,0,128,0,0,255,128,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,255,128,10,27,54,13,2,0,97,128,243,192,243, - 192,97,128,0,0,0,0,255,192,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,255, - 192,19,21,63,22,2,0,255,248,0,30,14,0,30,7,0, - 30,3,128,30,3,192,30,3,192,30,3,192,30,3,224,30, - 3,224,30,3,224,255,131,224,30,3,224,30,3,224,30,3, - 224,30,3,192,30,3,192,30,3,128,30,3,128,30,7,0, - 30,14,0,255,248,0,21,26,78,22,1,1,0,226,0,1, - 254,0,2,28,0,0,0,0,0,0,0,254,15,248,31,1, - 192,31,0,128,15,128,128,15,192,128,15,192,128,11,224,128, - 11,240,128,9,248,128,8,248,128,8,252,128,8,126,128,8, - 62,128,8,31,128,8,31,128,8,15,128,8,7,128,8,7, - 128,8,3,128,28,1,128,255,129,128,17,27,81,20,2,1, - 14,0,0,7,0,0,3,0,0,1,128,0,0,0,0,0, - 128,0,7,112,0,12,24,0,24,12,0,56,14,0,120,14, - 0,120,15,0,120,15,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,120,15,0,120, - 15,0,120,15,0,56,14,0,24,12,0,12,24,0,7,112, - 0,17,27,81,20,2,1,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,128,0,7,112,0,12,24,0,24, - 12,0,56,14,0,120,14,0,120,15,0,120,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,120,15,0,120,15,0,120,15,0,56,14,0,24, - 12,0,12,24,0,7,112,0,17,27,81,20,2,0,0,128, - 0,1,192,0,3,96,0,6,48,0,8,8,0,0,128,0, - 7,112,0,12,24,0,24,12,0,56,14,0,120,14,0,120, - 15,0,120,15,0,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,56,14,0,24,12,0,12,24,0,7,112,0,17, - 27,81,20,2,0,0,8,0,7,136,0,7,240,0,8,224, - 0,0,0,0,0,128,0,7,112,0,12,24,0,24,12,0, - 56,14,0,120,14,0,120,15,0,120,15,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,120,15,0,120,15,0,120,15,0,56,14,0,24,12,0, - 12,24,0,7,112,0,17,27,81,20,2,0,12,48,0,30, - 120,0,30,120,0,12,48,0,0,0,0,0,128,0,7,112, - 0,12,24,0,24,12,0,56,14,0,120,14,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,120,15,0,120,15,0,120,15, - 0,56,14,0,24,12,0,12,24,0,7,112,0,18,19,57, - 26,4,254,64,0,64,224,0,192,112,1,128,56,3,0,28, - 6,0,14,12,0,7,24,0,3,176,0,1,224,0,0,224, - 0,1,240,0,3,56,0,6,28,0,12,12,0,24,6,0, - 48,3,0,112,1,128,224,0,192,64,0,0,17,22,66,20, - 2,0,0,128,0,7,113,128,12,27,0,24,14,0,56,14, - 0,56,14,0,120,31,0,120,31,0,248,47,128,248,111,128, - 248,79,128,248,143,128,249,15,128,251,15,128,250,15,128,124, - 15,0,124,15,0,120,14,0,56,14,0,56,12,0,108,24, - 0,199,112,0,19,27,81,22,2,1,7,0,0,3,128,0, - 1,128,0,0,192,0,0,0,0,0,0,0,255,15,224,60, - 3,128,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,28, - 1,0,28,2,0,14,4,0,7,248,0,19,27,81,22,2, - 1,0,28,0,0,56,0,0,48,0,0,96,0,0,0,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,28,1,0,28,2,0,14,4,0,7, - 248,0,19,27,81,22,2,0,0,192,0,0,224,0,1,240, - 0,6,24,0,0,4,0,0,0,0,255,15,224,60,3,128, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,28,3,0, - 28,2,0,14,4,0,7,248,0,19,27,81,22,2,0,3, - 12,0,7,158,0,7,158,0,3,12,0,0,0,0,0,0, - 0,255,143,224,60,3,128,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,28,1,0,28,2,0,14,4,0,7,248,0, - 19,27,81,21,2,1,0,28,0,0,60,0,0,48,0,0, - 96,0,0,0,0,0,0,0,255,31,224,62,7,0,30,6, - 0,30,6,0,31,4,0,15,4,0,15,136,0,7,136,0, - 7,144,0,7,208,0,3,240,0,3,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,7,248,0,17,21,63,19,1,0,255,192,0, - 30,0,0,30,0,0,30,0,0,31,248,0,30,14,0,30, - 15,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 128,30,15,0,30,14,0,31,248,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,192,0,14,21,42,16, - 1,0,7,192,12,96,28,112,28,112,60,112,60,112,60,112, - 60,96,61,128,60,96,60,48,60,56,60,56,60,56,60,60, - 60,60,60,56,63,184,63,184,63,48,253,224,12,21,42,14, - 1,0,96,0,112,0,56,0,24,0,12,0,4,0,0,0, - 30,0,99,128,99,192,243,192,115,192,7,192,27,192,115,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,1,128,3,128,3,0,6,0,12,0,8,0,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,12,0,12,0,30,0,19,0,33,128,64,128,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,20,40,14, - 1,0,56,128,127,128,71,0,0,0,0,0,0,0,30,0, - 99,128,99,192,243,192,115,192,3,192,31,192,51,192,115,192, - 243,192,243,208,243,208,245,208,121,224,12,20,40,14,1,0, - 97,128,243,192,243,192,97,128,0,0,0,0,30,0,99,128, - 99,192,243,192,115,192,35,192,15,192,51,192,115,192,243,192, - 243,208,243,208,243,208,125,224,12,21,42,14,1,1,30,0, - 33,0,33,0,33,0,50,0,12,0,0,0,31,0,99,128, - 97,192,241,192,113,192,33,192,15,192,49,192,97,192,225,192, - 225,208,225,208,227,208,124,224,17,14,42,19,1,0,62,60, - 0,99,230,0,99,199,0,243,199,128,115,199,128,7,199,128, - 27,255,128,115,192,0,115,192,0,243,192,128,243,192,128,243, - 225,0,242,225,0,124,62,0,10,21,42,13,1,249,15,0, - 56,128,112,192,113,192,243,192,243,128,240,0,240,0,240,0, - 240,0,112,64,112,64,56,128,31,0,4,0,8,0,6,0, - 3,0,3,0,3,0,30,0,11,21,42,13,1,0,48,0, - 48,0,56,0,24,0,12,0,0,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,1,128, - 3,128,3,128,6,0,4,0,8,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,12,0, - 14,0,30,0,27,0,49,128,64,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,20,40,13,1,0,49,128, - 123,192,123,192,49,128,0,0,0,0,15,0,51,128,113,192, - 113,192,241,192,241,224,255,224,240,0,240,0,240,32,112,64, - 112,64,56,128,15,0,7,21,21,9,1,0,192,224,112,48, - 24,8,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,6,21,21,9,2,0,12,12,28,56,32,0,0,248,120, - 120,120,120,120,120,120,120,120,120,120,120,252,8,21,21,8, - 1,0,56,56,124,110,131,0,0,252,60,60,60,60,60,60, - 60,60,60,60,60,60,254,8,20,20,9,1,0,102,255,255, - 102,0,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,12,21,42,14,1,0,60,64,31,128,15,0,15,0,55, - 128,3,128,3,192,31,192,49,224,113,224,112,224,240,224,240, - 240,240,240,240,240,240,224,240,224,112,224,113,192,49,192,15, - 0,13,19,38,16,2,1,30,64,63,192,35,128,0,0,0, - 0,251,192,124,224,120,224,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,253,248,12,21,42, - 14,1,0,48,0,56,0,56,0,12,0,6,0,2,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,1,128,1,192,3,128,3,0,6,0,4,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,6,0,14,0,15,0,27,0,48,128,32,64,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,20,40, - 14,1,0,28,64,63,192,71,128,0,0,0,0,0,0,15, - 0,49,128,112,192,112,224,240,224,240,224,240,240,240,240,240, - 224,240,224,112,224,112,192,49,128,15,0,12,20,40,14,1, - 0,49,128,123,192,123,192,49,128,0,0,0,0,15,0,49, - 128,112,192,112,224,240,224,240,224,240,240,240,240,240,224,240, - 224,112,224,112,192,49,128,15,0,24,19,57,26,1,254,0, - 24,0,0,60,0,0,60,0,0,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,0,0,0,24,0,0,60,0,0, - 60,0,0,60,0,0,24,0,12,14,28,14,1,0,15,16, - 49,160,113,192,112,224,241,224,243,224,242,240,244,240,248,224, - 240,224,112,224,112,192,121,128,143,0,14,21,42,15,0,0, - 24,0,28,0,12,0,6,0,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,60,248,29,120,14,124,14,21,42,15,0,0, - 0,192,0,192,1,192,1,128,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,21,42,15,0,0, - 3,0,7,0,7,128,12,128,24,64,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,20,40,15,0,0, - 24,192,61,224,61,224,24,192,0,0,0,0,253,248,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,29,120,14,124,13,28,56,15,1,249,0,192, - 0,192,1,192,3,128,2,0,0,0,0,0,252,248,120,32, - 56,32,60,64,28,64,28,64,30,64,14,128,15,128,7,128, - 7,0,7,0,3,0,3,0,2,0,2,0,50,0,124,0, - 116,0,116,0,56,0,13,26,52,15,1,250,28,0,124,0, - 188,0,60,0,60,0,60,0,60,240,63,120,60,120,60,120, - 60,120,60,120,60,112,60,112,60,96,60,192,60,128,61,0, - 62,0,60,0,60,0,60,0,60,0,60,0,48,0,192,0, - 13,27,54,15,1,249,24,96,60,240,60,240,24,96,0,0, - 0,0,254,120,120,48,56,32,60,32,28,32,30,64,30,64, - 14,64,15,128,7,128,7,128,7,0,3,0,3,0,1,0, - 2,0,50,0,122,0,116,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=27 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21n[723] U8G_FONT_SECTION("u8g_font_osb21n") = { - 0,77,36,232,248,21,0,0,0,0,42,58,0,22,250,21, - 0,11,12,24,14,2,9,14,0,14,0,78,192,228,224,245, - 192,14,0,14,0,245,192,228,192,78,192,14,0,14,0,24, - 25,75,26,1,252,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,255,255,255,255,255,255,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 5,10,10,7,1,251,112,248,248,248,120,8,16,16,32,192, - 7,3,3,11,2,6,254,254,254,4,4,4,8,2,0,96, - 240,240,96,9,27,54,13,2,250,1,128,1,128,1,128,3, - 0,3,0,3,0,2,0,6,0,6,0,6,0,12,0,12, - 0,12,0,24,0,24,0,24,0,16,0,48,0,48,0,48, - 0,96,0,96,0,96,0,192,0,192,0,192,0,128,0,14, - 21,42,16,1,1,15,192,24,96,56,112,56,112,120,120,120, - 120,248,120,248,124,248,124,248,124,248,124,248,124,248,124,248, - 124,248,120,120,120,120,120,56,112,56,112,24,96,15,192,9, - 21,42,16,3,0,6,0,14,0,30,0,254,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,255,128,12, - 21,42,16,2,1,63,192,97,224,96,224,224,240,224,240,240, - 240,248,240,121,224,49,224,3,192,7,128,14,0,28,0,48, - 16,96,16,64,16,192,16,255,240,255,224,143,224,135,192,13, - 21,42,16,2,1,63,192,96,224,96,224,224,240,240,240,248, - 240,120,240,112,240,0,224,1,192,31,0,0,224,0,240,0, - 112,112,120,248,120,248,120,240,120,224,112,96,240,59,192,13, - 21,42,16,1,0,1,192,1,192,3,192,3,192,7,192,7, - 192,15,192,27,192,27,192,51,192,35,192,99,192,67,192,195, - 192,255,248,3,192,3,192,3,192,3,192,3,192,31,248,13, - 21,42,16,2,0,96,224,127,192,127,128,127,0,120,0,64, - 0,64,0,64,0,79,0,113,224,64,240,64,240,0,248,0, - 248,112,248,248,248,248,248,240,240,224,240,97,224,59,192,13, - 21,42,16,2,1,15,224,24,32,56,48,48,240,112,240,112, - 240,240,96,240,0,240,0,247,128,248,224,240,112,240,112,240, - 112,240,120,112,120,112,112,112,112,48,112,56,96,13,192,11, - 21,42,16,3,0,156,64,190,96,255,32,255,32,199,224,129, - 160,128,64,128,64,0,128,0,128,1,0,3,0,7,0,6, - 0,14,0,14,0,30,0,30,0,30,0,30,0,30,0,14, - 21,42,16,2,1,31,192,48,32,96,48,96,16,224,16,240, - 16,248,32,254,32,127,192,63,192,31,240,31,248,99,248,64, - 248,192,60,192,24,192,24,192,24,96,16,112,48,31,192,13, - 21,42,16,2,1,31,128,48,192,112,96,112,112,240,112,240, - 112,240,120,240,120,240,120,112,120,112,120,56,248,15,120,0, - 120,0,120,56,112,120,112,120,96,112,224,96,192,63,128,4, - 14,14,8,2,0,96,240,240,240,96,0,0,0,0,0,96, - 240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 3 y=16 dx=31 dy= 0 ascent=23 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21r[4521] U8G_FONT_SECTION("u8g_font_osb21r") = { - 0,77,36,232,248,21,5,141,12,241,32,127,249,23,249,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 6 y=20 dx=36 dy= 0 ascent=34 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =34 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26[12640] U8G_FONT_SECTION("u8g_font_osb26") = { - 0,95,44,227,246,26,7,105,16,163,32,255,248,34,246,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,10,0,0,6,26,26,10,2,248,120,252,252,252,120,0, - 0,0,32,48,48,48,48,48,48,120,120,120,120,252,252,252, - 252,252,252,120,13,25,50,19,3,252,1,0,1,0,1,0, - 1,0,15,192,29,32,57,48,121,112,121,112,249,112,241,96, - 241,0,241,0,241,0,241,0,241,8,121,16,121,16,57,16, - 29,32,15,192,1,0,1,0,1,0,1,0,21,26,78,24, - 2,0,0,2,0,0,61,192,0,112,96,0,240,112,1,224, - 112,1,224,240,3,224,240,3,224,224,3,224,0,3,224,0, - 3,224,0,31,224,0,35,225,0,1,254,0,1,240,0,1, - 240,0,0,240,0,0,240,0,0,240,0,0,224,0,0,224, - 8,60,192,16,199,192,48,131,255,224,131,255,192,124,63,128, - 18,17,51,20,1,3,64,0,128,227,241,192,127,255,128,60, - 15,0,56,7,0,48,3,0,112,3,128,96,1,128,96,1, - 128,96,1,128,96,1,128,112,3,128,48,3,0,56,7,0, - 62,31,0,127,255,128,99,241,128,18,25,75,20,1,0,255, - 143,192,63,3,128,63,3,0,31,3,0,31,130,0,15,130, - 0,15,196,0,15,196,0,7,196,0,7,232,0,3,232,0, - 3,248,0,3,240,0,63,255,128,1,240,0,1,240,0,63, - 255,128,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,31,254,0,2,32,32,10,4,250, - 192,192,192,192,192,192,192,192,192,192,192,192,192,0,0,0, - 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 15,32,64,22,2,249,7,224,28,24,56,24,48,28,112,124, - 112,124,112,124,120,56,124,0,63,0,31,224,127,240,71,252, - 193,252,192,126,224,30,248,14,254,6,127,134,63,228,31,248, - 7,248,1,248,0,124,60,60,60,28,124,28,124,28,112,24, - 48,56,24,112,15,192,11,4,8,15,2,19,113,192,241,224, - 241,224,113,192,24,25,75,28,2,1,1,255,128,6,0,64, - 12,0,48,24,0,24,48,60,136,32,227,132,65,193,134,65, - 193,130,195,192,130,131,192,131,131,192,129,131,192,1,131,192, - 1,131,192,1,131,192,65,131,192,131,195,192,130,65,192,130, - 65,193,134,32,227,4,48,60,8,16,0,24,12,0,48,6, - 0,64,1,255,128,10,13,26,13,1,12,60,0,70,0,199, - 0,231,0,71,0,63,0,103,0,231,0,231,64,231,64,123, - 128,0,0,255,128,9,15,30,17,4,1,8,0,24,128,48, - 128,97,0,99,0,227,0,227,0,227,0,227,0,227,0,227, - 0,97,0,49,128,48,128,8,0,16,9,18,20,2,5,255, - 255,255,255,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,9,4,8,13,2,7,255,128,255,128,255,128,255,128,24, - 25,75,28,2,1,1,255,128,6,0,64,12,0,48,24,0, - 24,55,254,8,33,227,132,65,227,198,65,227,194,193,227,194, - 129,227,195,129,231,129,129,252,1,129,231,1,129,227,129,129, - 227,193,129,227,195,193,227,210,65,227,210,65,227,214,33,227, - 212,55,249,232,16,0,24,12,0,48,6,0,64,1,255,128, - 9,2,4,15,3,20,255,128,255,128,11,10,20,19,4,16, - 63,128,123,192,224,192,192,96,192,96,192,96,192,224,97,192, - 63,128,31,0,29,26,104,33,2,254,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,255,255,255,248,255,255,255,248,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,0,0,0,0,0,0,0,255,255,255,240,255,255, - 255,240,10,16,32,15,3,9,31,0,103,128,195,192,195,192, - 227,192,243,128,7,128,14,0,28,0,48,64,64,64,64,64, - 255,192,255,192,159,128,135,0,11,16,32,15,2,9,31,0, - 35,128,99,192,115,192,115,192,51,128,3,0,28,0,3,128, - 3,192,97,224,241,224,241,224,227,224,99,192,63,0,6,7, - 7,15,6,18,28,28,60,120,96,192,128,17,27,81,20,2, - 246,96,48,0,112,120,0,240,120,0,240,120,0,240,120,0, - 240,120,0,240,120,0,240,120,0,240,120,0,96,56,0,96, - 48,128,96,48,128,96,113,128,32,127,128,48,255,128,95,207, - 0,71,143,0,64,0,0,96,0,0,96,0,0,112,0,0, - 112,0,0,120,0,0,120,0,0,120,0,0,120,0,0,48, - 0,0,17,30,90,20,2,251,15,255,128,63,140,0,127,140, - 0,127,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 255,140,0,127,140,0,127,140,0,63,140,0,31,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,5,5,5,9,2,9,112,248,248,248,112,7,7,7, - 15,4,249,32,32,24,14,14,14,252,8,15,15,16,4,10, - 12,28,252,60,60,60,60,60,60,60,60,60,60,60,255,9, - 13,26,13,2,12,28,0,103,0,99,0,227,128,227,128,227, - 128,227,128,227,128,99,0,103,0,28,0,0,0,255,128,9, - 14,28,17,4,2,132,0,198,0,99,0,99,0,115,128,115, - 128,115,128,115,128,115,128,99,128,99,0,195,0,134,0,12, - 0,25,26,104,31,4,0,0,0,48,0,12,0,48,0,28, - 0,96,0,252,0,96,0,60,0,192,0,60,0,128,0,60, - 1,128,0,60,3,0,0,60,3,0,0,60,6,0,0,60, - 6,0,0,60,12,14,0,60,12,30,0,60,24,30,0,60, - 16,62,0,255,48,62,0,0,96,94,0,0,96,158,0,0, - 192,158,0,0,193,30,0,1,131,30,0,1,131,255,128,3, - 0,30,0,2,0,30,0,6,0,30,0,12,0,255,128,25, - 26,104,31,4,0,0,0,48,0,28,0,32,0,252,0,96, - 0,60,0,64,0,60,0,192,0,60,1,128,0,60,1,128, - 0,60,3,0,0,60,3,0,0,60,6,0,0,60,4,62, - 0,60,12,207,0,60,9,135,128,60,25,135,128,60,49,199, - 128,255,49,231,0,0,96,207,0,0,96,28,0,0,192,56, - 0,0,128,96,0,1,128,64,128,3,0,128,128,3,1,255, - 128,6,1,255,128,6,1,63,0,12,1,14,0,26,26,104, - 30,2,0,0,0,24,0,31,0,24,0,35,128,48,0,99, - 192,48,0,115,192,96,0,115,192,64,0,51,128,192,0,3, - 0,128,0,28,1,128,0,3,131,0,0,3,195,0,0,113, - 230,7,0,241,228,15,0,227,236,15,0,99,200,31,0,63, - 24,31,0,0,16,47,0,0,48,79,0,0,96,79,0,0, - 96,143,0,0,192,143,0,0,129,255,192,1,128,15,0,1, - 0,15,0,3,0,15,0,2,0,127,192,11,26,52,16,2, - 248,28,0,62,0,62,0,62,0,28,0,0,0,0,0,30, - 0,49,0,33,0,33,0,1,0,2,0,6,0,14,0,28, - 0,60,0,120,192,120,64,248,32,240,32,240,32,240,32,120, - 64,120,64,31,128,23,33,99,25,1,0,1,128,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,16,0,0,0,0, - 0,16,0,0,24,0,0,56,0,0,56,0,0,60,0,0, - 124,0,0,124,0,0,126,0,0,254,0,0,254,0,0,158, - 0,1,159,0,1,159,0,1,31,0,3,15,128,3,15,128, - 3,15,128,6,7,192,7,255,192,6,7,192,4,7,224,12, - 3,224,12,3,224,28,3,240,28,3,240,255,159,254,23,33, - 99,25,1,0,0,3,0,0,7,128,0,7,0,0,14,0, - 0,28,0,0,16,0,0,0,0,0,16,0,0,24,0,0, - 56,0,0,56,0,0,60,0,0,124,0,0,124,0,0,126, - 0,0,254,0,0,254,0,0,159,0,1,159,0,1,159,0, - 1,31,128,3,15,128,3,15,128,3,15,128,6,7,192,7, - 255,192,6,7,192,12,7,224,12,3,224,12,3,224,28,3, - 240,60,3,248,255,159,254,23,33,99,25,1,0,0,16,0, - 0,56,0,0,56,0,0,124,0,0,199,0,1,129,128,0, - 0,0,0,16,0,0,24,0,0,56,0,0,56,0,0,60, - 0,0,124,0,0,124,0,0,126,0,0,254,0,0,254,0, - 0,158,0,1,159,0,1,159,0,1,31,0,3,15,128,3, - 15,128,3,15,128,6,7,192,7,255,192,6,7,192,4,7, - 224,12,3,224,12,3,224,28,3,240,28,3,240,255,159,254, - 23,32,96,25,1,0,0,112,128,0,249,0,1,191,0,1, - 14,0,0,0,0,0,0,0,0,0,0,0,24,0,0,56, - 0,0,56,0,0,60,0,0,124,0,0,124,0,0,126,0, - 0,254,0,0,254,0,0,159,0,1,159,0,1,159,0,1, - 31,128,3,15,128,3,15,128,3,15,128,6,7,192,7,255, - 192,6,7,192,12,7,224,12,3,224,12,3,224,28,3,240, - 60,3,248,255,159,254,23,32,96,25,1,0,1,195,128,3, - 199,128,3,199,128,1,195,128,0,0,0,0,0,0,0,24, - 0,0,56,0,0,56,0,0,56,0,0,60,0,0,124,0, - 0,124,0,0,126,0,0,254,0,0,254,0,0,159,0,1, - 159,0,1,159,0,1,15,128,3,15,128,2,15,128,2,15, - 192,6,7,192,7,255,192,4,7,192,4,3,224,8,3,224, - 8,3,224,24,1,240,24,3,240,255,159,254,23,33,99,25, - 1,0,0,60,0,0,126,0,0,195,0,0,195,0,0,199, - 0,0,126,0,0,60,0,0,0,0,0,24,0,0,56,0, - 0,56,0,0,60,0,0,124,0,0,124,0,0,126,0,0, - 254,0,0,254,0,0,159,0,1,159,0,1,159,0,1,15, - 0,3,15,128,3,15,128,2,15,128,2,7,192,7,255,192, - 4,7,192,4,3,224,12,3,224,8,3,224,24,1,240,28, - 1,240,255,159,254,32,25,100,34,1,0,0,15,255,255,0, - 3,240,31,0,7,240,15,0,7,240,7,0,5,240,7,0, - 13,240,3,0,9,240,3,0,25,240,35,0,25,240,32,0, - 49,240,96,0,49,240,96,0,97,240,224,0,97,255,224,0, - 193,240,224,0,193,240,96,1,129,240,96,1,129,240,33,3, - 255,240,33,3,1,240,3,6,1,240,3,6,1,240,7,12, - 1,240,7,12,1,240,15,62,1,240,63,255,143,255,255,19, - 33,99,22,2,249,3,248,192,14,6,192,30,3,192,60,3, - 192,60,1,192,124,1,192,124,0,192,124,0,192,252,0,192, - 252,0,64,252,0,64,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,96,124,0,64,124,0,64,124,0, - 64,60,0,192,62,0,128,30,1,0,15,2,0,3,156,0, - 0,224,0,0,128,0,0,240,0,0,56,0,0,56,0,0, - 56,0,2,48,0,1,224,0,20,33,99,23,2,0,3,0, - 0,7,128,0,3,128,0,1,192,0,0,224,0,0,32,0, - 0,0,0,0,0,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,33,99,23,2,0,0,6,0,0,14,0,0,30,0, - 0,28,0,0,48,0,0,96,0,0,0,0,0,0,0,255, - 255,224,31,1,224,31,0,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,4,32,31,4,0,31,12,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,12,48,31, - 4,48,31,4,48,31,0,48,31,0,112,31,0,112,31,0, - 240,31,0,240,31,3,240,255,255,240,20,33,99,23,2,0, - 0,32,0,0,96,0,0,240,0,1,248,0,3,140,0,6, - 3,0,0,0,0,0,0,0,255,255,224,31,1,224,31,0, - 224,31,0,224,31,0,96,31,0,96,31,0,32,31,4,32, - 31,4,0,31,12,0,31,12,0,31,28,0,31,252,0,31, - 28,0,31,12,0,31,12,48,31,4,48,31,4,48,31,0, - 48,31,0,112,31,0,112,31,0,240,31,1,240,31,3,240, - 255,255,240,20,32,96,23,2,0,7,14,0,7,143,0,7, - 143,0,7,14,0,0,0,0,0,0,0,0,0,0,255,255, - 224,31,1,224,31,0,224,31,0,224,31,0,96,31,0,96, - 31,0,32,31,4,32,31,4,0,31,12,0,31,12,0,31, - 28,0,31,252,0,31,28,0,31,12,0,31,12,48,31,4, - 48,31,4,48,31,0,48,31,0,112,31,0,112,31,0,240, - 31,0,240,31,3,240,255,255,240,11,33,66,14,2,0,96, - 0,112,0,120,0,56,0,28,0,4,0,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,33,66,14,2,0,0,192,1,192,3,192,3,128,7, - 0,4,0,0,0,0,0,255,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,255,224,11,33,66,14,2,0,4, - 0,14,0,14,0,31,0,113,128,192,96,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,32,64,15,2,0,112,224,241,224,241,224,112,224,0, - 0,0,0,0,0,255,224,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,255,224,23,25,75,27,2,0,255,255,0, - 31,3,192,31,0,224,31,0,240,31,0,120,31,0,120,31, - 0,124,31,0,124,31,0,126,31,0,126,31,0,126,255,224, - 126,31,0,126,31,0,126,31,0,126,31,0,126,31,0,124, - 31,0,124,31,0,124,31,0,120,31,0,120,31,0,240,31, - 0,224,31,3,192,255,255,0,24,32,96,27,2,0,0,112, - 64,0,252,192,0,159,128,0,135,0,0,0,0,0,0,0, - 0,0,0,255,3,255,31,128,124,31,128,56,15,192,16,7, - 224,16,7,240,16,7,240,16,5,248,16,5,252,16,4,252, - 16,4,126,16,4,127,16,4,63,16,4,31,144,4,31,208, - 4,15,208,4,7,240,4,7,240,4,3,240,4,1,240,4, - 1,240,4,0,240,14,0,112,31,0,48,255,192,48,20,33, - 99,24,2,1,7,0,0,7,128,0,3,128,0,1,192,0, - 0,192,0,0,96,0,0,0,0,0,0,0,3,252,0,6, - 6,0,14,7,0,28,3,128,60,3,192,60,3,192,124,3, - 224,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,124,3,224,124, - 3,224,124,3,224,60,3,192,60,3,192,28,3,128,14,7, - 0,6,6,0,3,252,0,20,33,99,24,2,1,0,14,0, - 0,30,0,0,28,0,0,56,0,0,48,0,0,96,0,0, - 0,0,0,0,0,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,224,124,3,224,124,3,224,60,3, - 192,60,3,192,28,3,128,14,7,0,6,6,0,3,252,0, - 20,33,99,24,2,0,0,96,0,0,96,0,0,240,0,1, - 248,0,3,156,0,6,6,0,0,0,0,0,0,0,3,252, - 0,6,6,0,14,7,0,28,3,128,60,3,192,60,3,192, - 124,3,224,124,3,224,124,3,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 224,124,3,224,124,3,224,60,3,192,60,3,192,28,3,128, - 14,7,0,6,6,0,3,252,0,20,32,96,24,2,0,1, - 194,0,3,230,0,6,124,0,4,56,0,0,0,0,0,0, - 0,0,0,0,3,252,0,6,6,0,14,7,0,28,3,128, - 60,3,192,60,3,192,124,3,224,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,124,3,224,60,3,192, - 60,3,192,28,3,128,14,7,0,6,6,0,3,252,0,20, - 32,96,24,2,0,7,14,0,7,143,0,7,143,0,7,14, - 0,0,0,0,0,0,0,0,0,0,3,252,0,6,6,0, - 14,7,0,28,3,128,60,3,192,60,3,192,124,3,224,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,124,3,224,124,3,224, - 124,3,224,60,3,192,60,3,192,28,3,128,14,7,0,6, - 6,0,3,252,0,22,23,69,32,5,254,64,0,8,224,0, - 28,240,0,60,120,0,120,56,0,240,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,224,0,28,64,0,8, - 20,25,75,24,2,1,3,252,48,6,6,96,14,3,192,28, - 3,128,60,3,192,60,3,192,124,3,224,124,7,224,124,15, - 224,252,11,240,252,19,240,252,35,240,252,99,240,252,67,240, - 252,131,240,253,3,240,127,3,224,126,3,224,124,3,224,60, - 3,192,60,3,192,28,3,128,60,7,0,102,6,0,195,252, - 0,23,33,99,26,2,1,1,192,0,1,224,0,0,224,0, - 0,112,0,0,56,0,0,8,0,0,0,0,0,0,0,255, - 225,254,31,0,120,31,0,48,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,15,0,32,15,0, - 32,7,128,64,3,192,192,1,255,0,23,33,99,26,2,1, - 0,3,128,0,3,128,0,7,128,0,14,0,0,12,0,0, - 24,0,0,0,0,0,0,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,23,33,99,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,227,0,1,128,192,0,0,0,0,0, - 0,255,225,254,31,0,120,31,0,48,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,15,0,48, - 15,128,32,7,128,64,3,192,192,1,255,0,23,32,96,26, - 2,0,1,195,128,1,227,192,1,227,192,1,195,128,0,0, - 0,0,0,0,0,0,0,255,225,254,31,0,120,31,0,48, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,15,0,32,15,0,32,7,128,64,3,192,192,1, - 255,0,23,33,99,26,2,0,0,1,128,0,3,128,0,7, - 128,0,7,0,0,12,0,0,8,0,0,0,0,0,0,0, - 255,225,254,31,128,112,31,128,96,15,128,96,15,192,64,7, - 192,192,7,224,192,7,224,128,3,225,128,3,241,0,1,241, - 0,1,251,0,0,250,0,0,254,0,0,252,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,3,255,128,20,25,75,24,2, - 0,255,240,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,254,0,31,7,128,31,3,192,31,1,224,31,1,240,31, - 1,240,31,1,240,31,1,240,31,1,240,31,1,224,31,3, - 192,31,7,128,31,254,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,255,240,0,16,25,50,19, - 1,0,3,224,6,120,14,60,30,60,28,60,60,60,60,60, - 60,56,60,112,61,192,60,48,60,28,60,30,60,30,60,15, - 60,15,60,15,60,15,60,15,60,15,61,207,63,222,63,158, - 61,156,252,248,15,25,50,18,2,0,48,0,56,0,60,0, - 28,0,14,0,2,0,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,48,240,3,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,25,50,18, - 2,0,0,224,0,224,1,224,1,192,3,0,6,0,4,0, - 0,0,15,128,49,224,96,240,112,240,120,240,120,240,32,240, - 7,240,28,240,56,240,120,240,240,240,240,242,240,242,240,242, - 121,252,62,120,15,25,50,18,2,0,7,0,7,0,15,0, - 13,128,24,192,112,96,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,32,240,7,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,24,48,18, - 2,0,28,32,63,32,103,224,65,192,0,0,0,0,0,0, - 15,128,49,224,96,240,112,240,120,240,120,240,48,240,7,240, - 28,240,56,240,120,240,240,240,240,242,240,242,240,242,121,252, - 62,120,15,24,48,18,2,0,112,224,120,240,120,240,112,224, - 0,0,0,0,0,0,15,128,49,224,96,240,112,240,120,240, - 120,240,32,240,7,240,28,240,56,240,120,240,240,240,240,242, - 240,242,240,242,121,252,62,120,15,25,50,18,2,1,15,128, - 25,192,16,192,16,192,24,192,15,128,7,0,0,0,15,128, - 49,224,96,240,112,240,120,240,120,240,32,240,7,240,24,240, - 56,240,112,240,240,240,240,242,240,242,240,242,121,252,62,120, - 21,17,51,25,2,0,31,143,128,49,248,224,96,248,240,112, - 248,112,120,248,120,120,240,120,48,240,120,3,240,120,28,255, - 248,56,240,0,120,240,0,240,240,8,240,248,8,240,248,8, - 240,248,16,121,188,48,62,15,192,13,24,48,16,2,249,7, - 128,28,96,56,32,120,112,120,240,248,240,240,224,240,64,240, - 0,240,0,240,0,240,8,120,16,120,16,56,16,28,32,15, - 192,2,0,4,0,3,128,1,192,1,192,17,192,15,128,13, - 25,50,17,2,0,48,0,56,0,60,0,28,0,6,0,3, - 0,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,25,50,17,2,0,0,96,0, - 224,1,224,1,192,3,128,6,0,0,0,0,0,7,128,24, - 224,56,240,120,240,120,240,240,120,240,120,240,120,255,248,240, - 0,240,0,240,8,120,8,120,24,56,16,28,32,7,192,13, - 25,50,17,2,0,7,0,7,0,15,128,13,128,24,192,48, - 112,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,24,48,17,2,0,56,224,120, - 240,120,240,56,224,0,0,0,0,0,0,7,128,24,224,56, - 240,120,240,120,240,240,120,240,120,240,120,255,248,240,0,240, - 0,240,8,120,8,120,24,56,16,28,32,7,192,8,25,25, - 10,1,0,192,224,240,112,24,12,0,0,252,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,255,8,25,25,10, - 1,0,3,7,7,14,28,16,0,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,10,25,50,10,0, - 0,28,0,30,0,30,0,55,0,97,128,192,192,0,0,0, - 0,126,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,127,128,10,24,48,11,1,0,115,128,243,192,243,192,115, - 128,0,0,0,0,0,0,126,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,127,128,14,25,50,18,2,0,30, - 48,15,96,15,128,7,128,15,192,49,224,1,224,0,240,15, - 248,28,248,56,120,120,120,120,124,240,124,240,60,240,60,240, - 60,240,60,240,60,240,124,120,120,120,120,56,112,28,224,7, - 192,17,23,69,19,1,1,7,136,0,15,248,0,16,240,0, - 0,0,0,0,0,0,0,0,0,252,120,0,61,188,0,61, - 28,0,62,30,0,62,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,255,127,128,14,25,50,18, - 2,0,24,0,60,0,28,0,14,0,7,0,3,0,0,0, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,25,50,18,2,0,0,96,0,240,0,224, - 1,192,3,128,3,0,0,0,0,0,7,128,28,224,56,112, - 120,120,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,120,120,56,112,24,224,7,128,14,25,50,18, - 2,0,3,0,7,128,7,128,15,192,28,224,48,48,32,16, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,24,48,18,2,0,14,16,31,144,39,224, - 33,224,0,0,0,0,0,0,7,128,28,224,56,112,120,120, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,120,120,56,112,24,224,7,128,14,24,48,18,2,0, - 56,112,60,240,60,240,56,112,0,0,0,0,0,0,7,128, - 28,224,56,112,120,120,120,120,240,60,240,60,240,60,240,60, - 240,60,240,60,240,60,120,120,120,120,56,112,24,224,7,128, - 29,23,92,31,1,254,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,248,255,255,255,248,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7, - 0,0,0,15,128,0,0,15,128,0,0,15,128,0,0,7, - 0,0,14,17,34,18,2,0,7,132,24,232,56,120,120,120, - 120,120,240,124,240,188,241,188,243,60,246,60,244,60,248,60, - 120,120,120,120,120,112,92,96,135,128,17,25,75,19,1,0, - 12,0,0,30,0,0,14,0,0,7,0,0,3,0,0,0, - 128,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,25,75,19,1, - 0,0,48,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,0,0,0,0,0,0,0,0,252,126,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,62,0,60,62,0, - 60,62,0,60,94,0,30,158,0,15,31,128,17,25,75,19, - 1,0,1,128,0,3,192,0,3,192,0,7,224,0,12,48, - 0,24,24,0,0,0,0,0,0,0,252,126,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,62,0,60,62, - 0,60,62,0,60,94,0,30,158,0,15,31,128,17,24,72, - 19,1,0,28,112,0,30,120,0,30,120,0,28,112,0,0, - 0,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,33,99,18,0, - 248,0,28,0,0,28,0,0,60,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,255,159,128,62,6,0,30, - 4,0,31,4,0,15,4,0,15,8,0,15,136,0,7,136, - 0,7,152,0,3,208,0,3,208,0,3,240,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 64,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,15,32,64,18,1,247,12,0,28,0,124,0, - 188,0,60,0,60,0,60,0,60,120,60,252,61,30,63,30, - 62,30,62,30,62,30,60,30,60,28,60,28,60,56,60,56, - 60,48,60,96,60,192,61,0,62,0,60,0,60,0,60,0, - 60,0,60,0,60,0,48,0,192,0,17,32,96,18,0,248, - 14,28,0,15,60,0,15,60,0,14,28,0,0,0,0,0, - 0,0,0,0,0,255,159,128,62,6,0,30,4,0,30,4, - 0,15,8,0,15,8,0,15,8,0,7,136,0,7,144,0, - 3,208,0,3,208,0,3,224,0,1,224,0,1,224,0,0, - 224,0,0,192,0,0,192,0,0,64,0,0,128,0,28,128, - 0,60,128,0,61,0,0,57,0,0,59,0,0,30,0,0 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=29 h=33 x= 4 y=11 dx=31 dy= 0 ascent=26 len=120 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26n[903] U8G_FONT_SECTION("u8g_font_osb26n") = { - 0,95,44,227,246,25,0,0,0,0,42,58,0,26,249,25, - 0,12,14,28,17,3,11,14,0,14,0,14,0,196,112,228, - 240,245,224,14,0,14,0,245,224,228,240,196,112,14,0,14, - 0,14,0,29,30,120,31,1,251,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,255,255,255,248,255,255,255,248,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,7,11,11,10,2,249,120,252,254,254,126,6,4,12,8, - 48,224,9,4,8,13,2,7,255,128,255,128,255,128,255,128, - 5,5,5,9,2,0,112,248,248,248,112,12,33,66,15,2, - 249,0,112,0,96,0,96,0,224,0,192,0,192,1,192,1, - 192,1,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,56, - 0,56,0,48,0,48,0,112,0,96,0,96,0,224,0,192, - 0,192,0,16,25,50,20,2,1,7,224,14,112,28,56,60, - 60,60,60,124,62,124,62,124,62,252,63,252,63,252,63,252, - 63,252,63,252,63,252,63,252,63,252,63,124,62,124,62,124, - 62,60,60,60,60,28,56,14,112,7,224,12,25,50,20,4, - 0,7,0,7,0,31,0,255,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,255,240,15,25,50,20,2,1,31,240,48,120,96,60,96, - 62,224,62,240,62,248,62,252,62,124,124,56,124,0,248,1, - 240,1,224,3,128,7,0,12,2,24,2,48,2,32,2,76, - 6,127,254,127,252,71,252,67,252,65,248,15,26,52,20,2, - 0,1,0,14,240,56,120,48,60,112,62,120,62,124,62,124, - 62,60,62,24,60,0,120,0,112,31,192,0,240,0,120,0, - 60,0,60,56,62,124,62,252,62,252,62,248,62,224,60,96, - 124,96,120,31,224,16,25,50,20,2,0,0,120,0,120,0, - 248,1,248,1,248,3,248,3,248,6,248,6,248,12,248,12, - 248,24,248,56,248,48,248,96,248,96,248,192,248,255,255,0, - 248,0,248,0,248,0,248,0,248,0,248,15,255,15,26,52, - 20,3,0,0,8,48,56,63,240,63,224,63,128,62,0,32, - 0,32,0,32,0,32,0,39,192,56,112,48,120,32,60,32, - 60,0,62,0,62,56,62,120,62,252,62,248,62,248,60,224, - 60,96,120,112,112,31,224,16,25,50,20,2,1,7,240,12, - 8,28,12,56,60,56,124,120,124,120,120,120,48,248,0,248, - 0,251,224,252,56,252,60,248,30,248,31,248,31,248,31,248, - 31,120,31,120,31,120,31,56,30,28,30,12,60,7,240,15, - 25,50,20,3,0,79,28,95,156,127,198,127,230,127,254,224, - 246,192,4,192,12,128,12,128,24,0,16,0,48,0,96,0, - 224,1,192,1,192,3,192,7,128,7,128,15,128,15,128,15, - 128,15,128,15,128,7,0,17,25,75,20,2,1,7,240,0, - 24,12,0,48,12,0,48,6,0,112,6,0,112,6,0,120, - 6,0,124,4,0,127,12,0,127,152,0,63,224,0,31,248, - 0,15,252,0,15,254,0,49,255,0,96,127,0,64,31,0, - 192,15,128,192,7,0,192,7,0,192,3,0,96,6,0,96, - 6,0,56,12,0,14,240,0,15,25,50,20,2,1,31,192, - 60,112,120,48,120,56,248,60,248,60,248,60,248,62,248,62, - 248,62,248,62,120,62,124,126,60,126,15,190,0,62,0,62, - 12,60,30,60,62,60,62,56,60,56,48,112,16,96,15,192, - 5,17,17,9,2,0,112,248,248,248,112,0,0,0,0,0, - 0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 4 y=18 dx=36 dy= 0 ascent=28 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26r[5950] U8G_FONT_SECTION("u8g_font_osb26r") = { - 0,95,44,227,246,26,7,105,16,163,32,127,248,28,248,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 7 y=23 dx=41 dy= 0 ascent=38 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29[15818] U8G_FONT_SECTION("u8g_font_osb29") = { - 0,107,49,223,245,29,9,166,21,115,32,255,247,38,245,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,11,0,0,6, - 29,29,10,2,247,120,252,252,252,252,120,0,0,32,48,48, - 48,48,48,48,48,112,120,120,120,120,252,252,252,252,252,252, - 120,120,14,28,56,22,4,251,1,128,1,128,1,128,1,128, - 3,192,15,176,29,152,61,152,121,184,121,184,249,184,249,184, - 249,128,249,128,249,128,249,128,249,128,249,132,121,132,121,132, - 61,136,29,152,15,176,3,192,1,128,1,128,1,128,1,128, - 23,29,87,27,2,0,0,1,0,0,30,224,0,120,16,0, - 248,24,0,240,28,1,240,60,1,240,124,3,240,124,3,240, - 120,3,240,0,3,240,0,3,240,0,3,240,0,31,240,64, - 1,255,128,1,248,0,0,248,0,0,248,0,0,248,0,0, - 120,0,0,120,0,0,112,0,0,112,6,60,112,4,127,224, - 28,131,255,248,129,255,240,195,63,224,124,31,192,18,20,60, - 21,2,3,0,0,128,195,225,128,239,249,192,255,255,128,120, - 15,0,112,7,0,96,3,0,224,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,128,96,3,0,112,7,0, - 120,15,0,255,255,128,239,249,192,195,225,128,0,0,128,21, - 28,84,23,1,0,255,195,248,63,0,224,63,0,192,31,128, - 192,31,128,128,31,192,128,15,193,0,15,193,0,7,227,0, - 7,226,0,7,246,0,3,244,0,3,252,0,1,248,0,63, - 255,192,1,248,0,1,248,0,1,248,0,63,255,192,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,15,255,128,3,35,35,11,4,249,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,17,36,108,24,2,248,1,240,0,6,12,0,12,6, - 0,24,7,0,56,31,0,56,63,0,56,63,0,56,62,0, - 60,28,0,63,0,0,63,192,0,31,224,0,63,248,0,103, - 254,0,67,255,0,192,255,0,192,63,128,224,15,128,248,3, - 128,254,1,128,127,129,128,127,225,0,63,249,0,15,254,0, - 3,254,0,0,254,0,0,63,0,14,15,0,31,7,0,63, - 7,0,63,7,0,62,7,0,56,6,0,24,12,0,12,24, - 0,7,240,0,12,5,10,16,2,22,112,224,249,240,249,240, - 249,240,112,224,28,28,112,32,2,1,0,127,224,0,1,128, - 24,0,6,0,12,0,12,0,3,0,24,0,1,0,16,30, - 33,128,48,113,160,192,96,224,224,64,97,224,96,96,97,224, - 96,96,193,224,32,32,195,224,32,48,195,224,32,48,195,224, - 0,48,195,224,0,48,195,224,0,48,195,224,16,48,193,224, - 16,32,65,224,48,96,97,224,32,96,96,240,96,64,48,112, - 192,192,16,31,1,128,24,0,1,0,12,0,3,0,6,0, - 12,0,1,128,24,0,0,127,224,0,11,14,28,15,2,14, - 30,0,35,0,99,128,115,128,115,128,15,128,51,128,99,128, - 227,128,227,160,227,160,125,192,0,0,255,224,10,16,32,18, - 4,1,24,64,48,192,112,128,97,128,225,128,227,128,227,128, - 227,128,227,128,227,128,227,128,97,128,97,128,48,192,24,64, - 8,0,19,11,33,22,2,5,255,255,224,255,255,224,255,255, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,10,4,8,14,2,8,255, - 192,255,192,255,192,255,192,28,28,112,32,2,1,0,127,224, - 0,1,128,24,0,6,0,12,0,12,0,3,0,24,0,1, - 0,19,255,193,128,48,249,224,192,96,248,240,64,96,248,248, - 96,96,248,248,96,192,248,248,32,192,248,240,48,192,249,224, - 48,192,254,0,48,192,249,192,48,192,249,224,48,192,249,240, - 48,192,249,240,32,64,249,242,96,96,249,242,96,96,249,242, - 64,48,249,246,192,19,254,253,128,24,0,121,0,12,0,3, - 0,6,0,12,0,1,128,24,0,0,127,224,0,10,3,6, - 16,3,23,255,192,255,192,255,192,12,11,22,22,5,18,31, - 128,127,224,112,96,224,48,192,48,192,48,192,48,224,112,112, - 224,63,192,31,128,32,29,116,36,2,254,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,255,255,255,255,255,255,255,255,255,255,255,255,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,11, - 17,34,17,3,11,31,0,99,192,225,224,225,224,241,224,241, - 224,115,192,7,128,14,0,28,0,48,32,96,32,64,96,255, - 224,255,224,143,192,135,128,12,18,36,16,2,10,31,0,51, - 192,97,224,113,224,121,224,121,224,1,192,3,128,30,0,3, - 192,1,224,1,240,121,240,249,240,241,240,225,224,99,192,31, - 0,7,7,7,17,7,21,14,30,30,60,120,96,192,19,30, - 90,22,2,245,112,28,0,112,28,0,248,62,0,248,62,0, - 248,62,0,248,62,0,248,62,0,240,62,0,240,62,0,240, - 62,0,112,28,0,112,28,0,96,28,32,96,24,32,32,56, - 96,32,127,224,61,255,192,47,231,192,39,195,192,32,0,0, - 32,0,0,112,0,0,112,0,0,120,0,0,120,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,56,0,0,18,33, - 99,23,3,251,15,255,192,63,206,0,127,206,0,127,206,0, - 255,206,0,255,206,0,255,206,0,255,206,0,255,206,0,255, - 206,0,255,206,0,255,206,0,127,206,0,63,206,0,7,206, - 0,1,206,0,1,206,0,1,206,0,1,206,0,1,206,0, - 1,206,0,1,206,0,1,206,0,1,206,0,1,206,0,1, - 206,0,1,206,0,1,206,0,1,206,0,1,206,0,1,206, - 0,1,206,0,1,206,0,6,6,6,10,2,10,120,252,252, - 252,252,120,7,8,8,17,5,248,32,32,56,12,14,14,14, - 252,8,17,17,16,4,11,12,28,252,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,10,14,28,14,2,14,30,0, - 51,0,115,128,243,192,243,192,243,192,243,192,243,192,243,192, - 115,128,51,0,30,0,0,0,255,192,10,16,32,18,4,1, - 6,0,131,0,195,0,97,128,97,128,113,192,113,192,113,192, - 113,192,113,192,97,192,97,128,65,128,195,0,134,0,4,0, - 28,29,116,34,4,0,0,0,12,0,12,0,12,0,28,0, - 24,0,252,0,24,0,60,0,48,0,60,0,32,0,60,0, - 96,0,60,0,192,0,60,0,192,0,60,1,128,0,60,1, - 128,0,60,3,0,0,60,2,3,128,60,6,3,128,60,12, - 7,128,60,12,15,128,60,24,15,128,255,24,31,128,0,48, - 23,128,0,32,39,128,0,96,103,128,0,192,71,128,0,192, - 199,128,1,128,255,240,1,128,7,128,3,0,7,128,2,0, - 7,128,6,0,7,128,12,0,63,240,27,29,116,34,4,0, - 0,0,12,0,12,0,24,0,28,0,24,0,252,0,48,0, - 60,0,48,0,60,0,96,0,60,0,96,0,60,0,192,0, - 60,1,128,0,60,1,128,0,60,3,0,0,60,3,31,0, - 60,6,115,192,60,6,225,224,60,12,225,224,60,8,241,224, - 255,24,241,224,0,48,115,192,0,48,3,128,0,96,7,0, - 0,96,14,0,0,192,24,0,0,128,48,32,1,128,64,32, - 3,0,64,96,3,0,191,224,6,0,255,224,6,0,159,192, - 12,0,135,128,30,29,116,34,2,0,0,0,3,0,31,0, - 3,0,51,192,6,0,97,224,4,0,113,224,12,0,121,224, - 8,0,121,224,24,0,1,192,48,0,3,128,48,0,30,0, - 96,0,3,192,64,0,1,224,192,0,49,240,128,224,249,241, - 128,224,249,243,1,224,225,226,3,224,99,230,3,224,63,132, - 5,224,0,12,5,224,0,8,9,224,0,16,25,224,0,48, - 17,224,0,32,49,224,0,96,63,252,0,64,1,224,0,192, - 1,224,0,128,1,224,1,0,1,224,3,0,15,252,12,29, - 58,18,3,247,30,0,63,0,63,0,63,0,63,0,30,0, - 0,0,14,0,17,0,32,128,32,128,32,128,1,128,3,0, - 3,0,6,0,14,0,28,0,60,96,120,32,120,48,248,16, - 248,16,248,16,248,16,248,48,124,96,63,192,31,128,26,37, - 148,29,2,0,0,224,0,0,0,240,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,12,0,0,0,6,0,0, - 0,0,0,0,0,4,0,0,0,6,0,0,0,14,0,0, - 0,14,0,0,0,15,0,0,0,31,0,0,0,31,0,0, - 0,31,128,0,0,63,128,0,0,47,128,0,0,47,192,0, - 0,111,192,0,0,79,192,0,0,71,192,0,0,199,224,0, - 0,135,224,0,0,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,252,0,12,0,124,0, - 30,0,254,0,255,199,255,192,26,37,148,29,2,0,0,0, - 224,0,0,0,224,0,0,1,224,0,0,3,192,0,0,3, - 128,0,0,6,0,0,0,12,0,0,0,0,0,0,0,4, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,37,148,29,2,0,0,4,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,59,128,0,0,224,192,0, - 1,128,48,0,0,0,0,0,0,4,0,0,0,6,0,0, - 0,14,0,0,0,14,0,0,0,15,0,0,0,31,0,0, - 0,31,0,0,0,31,128,0,0,63,128,0,0,47,128,0, - 0,47,192,0,0,111,192,0,0,79,192,0,0,71,192,0, - 0,199,224,0,0,135,224,0,0,131,224,0,1,131,240,0, - 1,3,240,0,3,1,240,0,3,255,248,0,2,1,248,0, - 6,0,248,0,6,0,252,0,4,0,252,0,12,0,252,0, - 12,0,124,0,30,0,254,0,255,199,255,192,26,36,144,29, - 2,0,0,56,32,0,0,126,32,0,0,255,224,0,0,143, - 192,0,0,131,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,36,144,29,2,0,0,224,224,0,1,241,240,0, - 1,241,240,0,1,241,240,0,0,224,224,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,14,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,31,0,0,0,31,0,0, - 0,63,128,0,0,63,128,0,0,63,128,0,0,111,192,0, - 0,111,192,0,0,79,192,0,0,199,192,0,0,199,224,0, - 0,135,224,0,1,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,124,0,12,0,124,0, - 30,0,126,0,255,199,255,192,26,37,148,29,2,0,0,31, - 0,0,0,63,128,0,0,97,192,0,0,96,192,0,0,96, - 192,0,0,113,192,0,0,63,128,0,0,30,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,31,128,0,0,63, - 128,0,0,63,128,0,0,47,128,0,0,111,192,0,0,79, - 192,0,0,71,192,0,0,135,224,0,0,135,224,0,0,131, - 224,0,1,3,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,4,0,252,0,4,0, - 252,0,12,0,252,0,12,0,124,0,28,0,254,0,255,199, - 255,192,36,28,140,38,1,0,0,7,255,255,224,0,1,254, - 3,224,0,1,254,1,224,0,1,254,0,224,0,1,254,0, - 224,0,3,126,0,96,0,3,126,0,96,0,6,126,0,32, - 0,6,126,4,32,0,12,126,4,0,0,12,126,12,0,0, - 24,126,12,0,0,24,126,28,0,0,48,127,252,0,0,48, - 126,60,0,0,96,126,28,0,0,96,126,12,0,0,192,126, - 4,48,0,192,126,4,48,1,255,254,4,48,1,128,126,0, - 48,3,0,126,0,112,3,0,126,0,112,6,0,126,0,240, - 6,0,126,0,240,14,0,126,1,240,63,0,126,7,240,255, - 199,255,255,240,21,37,111,26,3,248,1,254,48,7,3,48, - 14,1,240,30,0,240,60,0,240,60,0,112,124,0,112,124, - 0,48,124,0,48,252,0,48,252,0,48,252,0,16,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,24, - 252,0,24,124,0,16,124,0,16,124,0,16,60,0,48,60, - 0,32,30,0,96,14,0,192,7,1,128,1,254,0,0,32, - 0,0,96,0,0,120,0,0,28,0,0,14,0,0,14,0, - 0,14,0,2,28,0,1,248,0,22,37,111,26,2,0,1, - 128,0,1,192,0,1,224,0,0,224,0,0,112,0,0,24, - 0,0,8,0,0,0,0,0,0,0,255,255,252,15,192,124, - 15,192,60,15,192,28,15,192,28,15,192,12,15,192,12,15, - 192,12,15,193,4,15,193,0,15,195,0,15,195,0,15,199, - 0,15,255,0,15,199,0,15,195,0,15,195,0,15,193,4, - 15,193,4,15,193,4,15,192,12,15,192,12,15,192,12,15, - 192,28,15,192,28,15,192,60,15,192,252,255,255,252,22,37, - 111,26,2,0,0,1,192,0,3,192,0,3,192,0,7,128, - 0,14,0,0,12,0,0,24,0,0,0,0,0,0,0,255, - 255,252,15,192,124,15,192,60,15,192,28,15,192,28,15,192, - 12,15,192,12,15,192,4,15,193,4,15,193,0,15,195,0, - 15,195,0,15,199,0,15,255,0,15,199,0,15,195,0,15, - 195,0,15,193,4,15,193,4,15,193,4,15,192,4,15,192, - 12,15,192,12,15,192,28,15,192,28,15,192,60,15,192,252, - 255,255,252,22,37,111,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,231,0,1,193,128,3,0,64,0,0, - 0,0,0,0,255,255,252,15,192,124,15,192,60,15,192,28, - 15,192,28,15,192,12,15,192,12,15,192,12,15,193,4,15, - 193,0,15,195,0,15,195,0,15,199,0,15,255,0,15,199, - 0,15,195,0,15,195,0,15,193,4,15,193,4,15,193,4, - 15,192,12,15,192,12,15,192,12,15,192,28,15,192,28,15, - 192,60,15,192,252,255,255,252,22,36,108,26,2,0,1,193, - 192,3,227,224,3,227,224,3,227,224,1,193,192,0,0,0, - 0,0,0,0,0,0,255,255,252,15,192,124,15,192,60,15, - 192,28,15,192,28,15,192,12,15,192,12,15,192,4,15,193, - 4,15,193,0,15,195,0,15,195,0,15,199,0,15,255,0, - 15,199,0,15,195,0,15,195,0,15,193,4,15,193,4,15, - 193,4,15,192,4,15,192,12,15,192,12,15,192,28,15,192, - 28,15,192,60,15,192,252,255,255,252,13,37,74,17,2,0, - 96,0,112,0,120,0,56,0,28,0,14,0,2,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 0,112,0,240,1,240,1,224,3,128,7,0,4,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 6,0,6,0,15,0,31,128,57,192,112,112,192,24,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,36,72,16,2,0, - 112,112,248,248,248,248,248,248,112,112,0,0,0,0,0,0, - 255,248,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,248,25,28,112,29,2,0,255,255, - 128,0,31,128,224,0,31,128,112,0,31,128,56,0,31,128, - 60,0,31,128,30,0,31,128,30,0,31,128,31,0,31,128, - 31,0,31,128,31,0,31,128,31,128,31,128,31,128,31,128, - 31,128,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,30,0,31,128,30,0,31,128,60,0,31,128, - 56,0,31,128,112,0,31,128,224,0,255,255,128,0,27,36, - 144,30,2,0,0,24,0,0,0,62,32,0,0,127,224,0, - 0,71,192,0,0,1,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,128,255,224,31,192,63,0,31,192,30,0, - 15,224,12,0,7,240,12,0,7,240,12,0,7,248,12,0, - 7,248,12,0,6,252,12,0,6,254,12,0,6,126,12,0, - 6,63,12,0,6,63,140,0,6,31,140,0,6,31,204,0, - 6,15,236,0,6,7,236,0,6,7,252,0,6,3,252,0, - 6,1,252,0,6,1,252,0,6,0,252,0,6,0,252,0, - 6,0,124,0,6,0,60,0,15,0,60,0,31,128,28,0, - 255,224,12,0,22,37,111,27,3,1,7,128,0,7,128,0, - 3,192,0,1,192,0,0,224,0,0,112,0,0,16,0,0, - 0,0,0,0,0,1,254,0,3,3,0,6,1,128,14,1, - 192,28,0,224,60,0,240,60,0,240,124,0,248,124,0,248, - 124,0,248,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,124,0,248,60,0,240,60,0,240,28,0,224,14,1,192, - 6,1,128,3,3,0,1,254,0,22,37,111,27,3,1,0, - 7,128,0,7,128,0,15,0,0,14,0,0,28,0,0,56, - 0,0,32,0,0,0,0,0,0,0,1,254,0,3,3,0, - 6,1,128,14,1,192,28,0,224,60,0,240,60,0,240,124, - 0,248,124,0,248,124,0,248,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 124,0,248,124,0,248,124,0,248,60,0,240,60,0,240,28, - 0,224,14,1,192,6,1,128,3,3,0,1,254,0,22,37, - 111,27,3,0,0,48,0,0,48,0,0,120,0,0,252,0, - 1,206,0,3,135,0,6,1,128,0,0,0,0,0,0,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,0, - 240,60,0,240,28,0,224,14,1,192,6,1,128,3,3,0, - 1,254,0,22,36,108,27,3,0,1,192,128,3,241,128,3, - 255,0,4,63,0,4,12,0,0,0,0,0,0,0,0,0, - 0,1,254,0,3,3,0,6,1,128,14,1,192,28,0,224, - 60,0,240,60,0,240,124,0,248,124,0,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,124,0,248,124,0,248,124,0,248, - 60,0,240,60,0,240,28,0,224,14,1,192,6,1,128,3, - 3,0,1,254,0,22,36,108,27,3,0,3,131,128,7,199, - 192,7,199,192,7,199,192,3,131,128,0,0,0,0,0,0, - 0,0,0,1,254,0,3,3,0,6,1,128,14,1,192,28, - 0,224,60,0,240,60,0,240,124,0,248,124,0,248,124,0, - 248,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 252,0,252,252,0,252,252,0,252,124,0,248,124,0,248,124, - 0,248,60,0,240,60,0,240,28,0,224,14,1,192,6,1, - 128,3,3,0,1,254,0,24,25,75,36,6,254,64,0,2, - 224,0,7,240,0,14,120,0,28,60,0,60,30,0,120,15, - 0,240,7,129,224,3,195,192,1,231,128,0,239,0,0,126, - 0,0,60,0,0,124,0,0,254,0,1,231,0,3,195,128, - 7,129,192,15,0,224,30,0,112,60,0,56,120,0,28,112, - 0,14,224,0,7,192,0,2,22,28,84,27,3,1,1,254, - 12,3,3,152,6,3,208,14,1,240,28,1,224,60,1,240, - 60,1,240,124,1,248,124,3,248,124,6,248,252,14,252,252, - 12,252,252,24,252,252,56,252,252,112,252,252,96,252,252,192, - 252,253,192,252,125,128,248,127,0,248,126,0,248,62,0,240, - 62,0,240,30,0,224,62,1,192,46,1,128,103,3,0,193, - 254,0,26,37,148,30,3,1,0,224,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,28,0,0,0,12,0,0, - 0,6,0,0,0,0,0,0,0,0,0,0,255,240,127,192, - 31,128,31,0,31,128,14,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,15,128,12,0,15,192,12,0,7,192,24,0, - 7,224,56,0,1,252,240,0,0,255,192,0,26,37,148,30, - 3,1,0,0,224,0,0,1,224,0,0,1,224,0,0,3, - 192,0,0,7,0,0,0,6,0,0,0,12,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,26,37,148,30,3,0,0,4,0,0, - 0,14,0,0,0,31,0,0,0,31,128,0,0,59,192,0, - 0,224,224,0,1,128,48,0,0,0,0,0,0,0,0,0, - 255,240,127,192,31,128,31,0,31,128,14,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,15,128,4,0,15,128,12,0, - 7,192,24,0,7,224,24,0,1,240,112,0,0,255,192,0, - 26,36,144,30,3,0,0,224,224,0,1,241,240,0,1,241, - 240,0,1,241,240,0,0,224,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,25,37,148,28,2,0,0,0,224,0, - 0,0,224,0,0,1,224,0,0,3,192,0,0,3,128,0, - 0,6,0,0,0,12,0,0,0,0,0,0,0,0,0,0, - 255,240,255,128,31,192,60,0,31,192,24,0,15,192,24,0, - 15,224,24,0,7,224,16,0,7,224,48,0,3,240,32,0, - 3,240,32,0,1,248,96,0,1,248,64,0,1,252,64,0, - 0,252,192,0,0,254,128,0,0,127,128,0,0,127,128,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,1,255,224,0, - 23,28,84,27,2,0,255,248,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,255,128,31,129,224,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,248,0,19,28,84,22,1,0, - 0,248,0,3,156,0,7,142,0,15,15,0,15,15,0,15, - 15,0,31,15,0,31,15,0,31,14,0,31,28,0,31,112, - 0,31,12,0,31,7,0,31,7,128,31,3,192,31,3,192, - 31,3,192,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,224,31,115,224,31,243,192,31,243,192,31,227,128,31,103, - 0,255,62,0,17,28,84,20,2,0,56,0,0,60,0,0, - 60,0,0,30,0,0,14,0,0,3,0,0,1,0,0,0, - 0,0,0,0,0,15,192,0,24,240,0,48,120,0,112,120, - 0,124,124,0,124,124,0,56,124,0,1,252,0,14,124,0, - 28,124,0,56,124,0,120,124,0,248,124,0,248,124,128,248, - 124,128,248,124,128,252,253,128,127,191,0,62,30,0,17,28, - 84,20,2,0,0,48,0,0,112,0,0,240,0,0,224,0, - 1,192,0,1,128,0,3,0,0,0,0,0,0,0,0,15, - 192,0,24,240,0,48,120,0,112,120,0,124,124,0,124,124, - 0,124,124,0,0,252,0,7,124,0,28,124,0,56,124,0, - 120,124,0,248,124,0,248,124,128,248,124,128,248,124,128,252, - 253,128,127,191,0,62,30,0,17,28,84,20,2,0,3,0, - 0,3,128,0,7,128,0,7,192,0,12,224,0,24,112,0, - 48,24,0,0,0,0,0,0,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,17,27,81,20,2,0,14,8,0,31,152,0,63,240, - 0,35,240,0,32,224,0,0,0,0,0,0,0,0,0,0, - 15,192,0,24,240,0,48,120,0,112,120,0,124,124,0,124, - 124,0,124,124,0,0,252,0,7,124,0,28,124,0,56,124, - 0,120,124,0,248,124,0,248,124,128,248,124,128,248,124,128, - 252,253,128,127,191,0,62,30,0,17,27,81,20,2,0,56, - 112,0,124,248,0,124,248,0,124,248,0,56,112,0,0,0, - 0,0,0,0,0,0,0,15,192,0,24,240,0,48,120,0, - 112,120,0,124,124,0,124,124,0,124,124,0,0,252,0,7, - 124,0,28,124,0,56,124,0,120,124,0,248,124,0,248,124, - 128,248,124,128,248,124,128,252,253,128,127,191,0,62,30,0, - 17,28,84,20,2,1,15,192,0,12,192,0,24,96,0,24, - 96,0,24,96,0,28,224,0,15,192,0,7,128,0,0,0, - 0,15,192,0,16,240,0,48,120,0,112,120,0,120,124,0, - 124,124,0,124,124,0,0,252,0,7,124,0,28,124,0,56, - 124,0,120,124,0,248,124,0,248,124,128,248,124,128,248,124, - 128,252,253,128,127,255,0,62,62,0,23,19,57,27,2,0, - 15,195,224,24,238,112,48,124,56,112,124,60,120,124,60,124, - 124,62,124,124,62,24,124,62,3,252,62,14,127,254,60,124, - 0,120,124,0,248,124,2,248,124,2,248,124,2,248,124,4, - 252,222,4,127,143,8,63,3,240,14,27,54,18,2,248,7, - 224,14,48,60,24,60,28,120,60,120,124,248,124,248,120,248, - 48,248,0,248,0,248,0,248,0,120,4,120,4,56,4,60, - 8,30,16,7,224,2,0,2,0,3,128,0,192,0,224,0, - 224,0,224,7,128,14,28,56,18,2,0,56,0,56,0,60, - 0,30,0,14,0,7,0,1,0,0,0,0,0,7,192,28, - 224,56,112,56,120,120,120,120,124,248,124,248,124,248,124,255, - 252,248,0,248,0,248,4,120,4,120,4,56,8,60,24,30, - 48,7,192,14,28,56,18,2,0,0,112,0,112,0,240,1, - 224,1,192,3,128,2,0,0,0,0,0,7,192,28,224,56, - 112,56,120,120,120,120,124,248,124,248,124,255,252,248,0,248, - 0,248,0,248,4,120,4,120,12,56,8,60,24,30,48,7, - 192,14,28,56,18,2,0,3,0,7,128,7,128,15,192,12, - 192,24,96,48,56,0,0,0,0,7,192,28,224,56,112,56, - 120,120,120,120,124,248,124,248,124,248,124,255,252,248,0,248, - 0,248,0,120,4,120,4,56,8,60,8,30,16,7,224,14, - 27,54,18,2,0,56,112,124,248,124,248,124,248,56,112,0, - 0,0,0,0,0,7,192,28,224,56,112,56,120,120,120,120, - 124,248,124,248,124,248,124,255,252,248,0,248,0,248,0,120, - 4,120,12,56,8,60,24,30,48,7,192,10,28,56,12,1, - 0,224,0,240,0,248,0,120,0,28,0,14,0,2,0,0, - 0,0,0,127,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,127,192,9,28,56,12,2,0,1, - 128,3,128,7,128,15,0,14,0,28,0,16,0,0,0,0, - 0,254,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,11,28,56,11,1,0,14,0,30, - 0,31,0,63,0,115,128,224,192,128,96,0,0,0,0,127, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,11,27,54,12,1,0,113,192,251,224,251, - 224,251,224,113,192,0,0,0,0,0,0,127,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,127, - 192,16,28,56,20,2,0,31,8,15,184,7,224,7,224,7, - 224,13,240,16,248,0,248,0,124,7,252,30,126,60,62,56, - 62,120,30,120,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,30,120,30,120,30,56,60,60,60,12,112,7,224,19, - 27,81,22,2,0,0,2,0,7,194,0,15,254,0,15,252, - 0,8,120,0,0,0,0,0,0,0,0,0,0,254,60,0, - 62,222,0,63,15,0,63,15,128,63,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,255,191,224,16,28,56,20,2,0,24,0,28,0, - 30,0,15,0,7,0,3,128,0,192,0,0,0,0,7,192, - 12,112,28,56,56,60,120,30,120,30,248,30,248,31,248,31, - 248,31,248,31,248,31,248,30,120,30,120,30,56,60,28,56, - 12,112,7,192,16,28,56,20,2,0,0,56,0,56,0,120, - 0,240,0,224,1,192,3,0,0,0,0,0,7,192,12,112, - 28,56,56,60,120,30,120,30,248,30,248,31,248,31,248,31, - 248,31,248,31,248,30,120,30,120,30,56,60,28,56,12,112, - 7,192,16,28,56,20,2,0,3,128,3,192,3,192,7,224, - 14,112,28,56,48,12,0,0,0,0,7,192,12,112,28,56, - 56,60,120,30,120,30,248,30,248,31,248,31,248,31,248,31, - 248,31,248,30,120,30,120,30,56,60,28,56,12,112,7,192, - 16,27,54,20,2,0,14,4,31,140,31,248,35,248,32,112, - 0,0,0,0,0,0,7,192,12,112,28,56,56,60,120,30, - 120,30,248,30,248,31,248,31,248,31,248,31,248,31,248,30, - 120,30,120,30,56,60,28,56,12,112,7,192,16,27,54,20, - 2,0,28,56,62,124,62,124,62,124,28,56,0,0,0,0, - 0,0,7,192,12,112,28,56,56,60,120,30,120,30,248,30, - 248,31,248,31,248,31,248,31,248,31,248,30,120,30,120,30, - 56,60,28,56,12,112,7,192,33,26,130,37,2,253,0,3, - 192,0,0,0,7,224,0,0,0,7,224,0,0,0,7,224, - 0,0,0,7,224,0,0,0,3,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,255,128,255,255,255,255,128,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,192,0,0,0,7,224,0,0,0,7,224,0, - 0,0,7,224,0,0,0,7,224,0,0,0,3,192,0,0, - 16,19,38,20,2,0,7,225,12,114,28,60,56,60,120,62, - 120,62,248,126,248,95,248,223,249,159,251,31,254,31,252,30, - 124,30,120,30,60,28,124,56,78,48,135,192,19,28,84,21, - 1,0,12,0,0,30,0,0,15,0,0,7,0,0,3,128, - 0,1,192,0,0,64,0,0,0,0,0,0,0,254,63,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,31,128,62,31,128,30,47,128, - 31,79,128,7,143,224,19,28,84,21,1,0,0,28,0,0, - 60,0,0,60,0,0,120,0,0,224,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,31,128,62,31,128,30,47,128,30,79,128,7,143,224, - 19,28,84,21,1,0,1,192,0,1,224,0,3,224,0,3, - 240,0,7,56,0,12,28,0,24,4,0,0,0,0,0,0, - 0,254,63,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,31,128,62,31, - 128,30,47,128,30,79,128,7,143,224,19,27,81,21,1,0, - 28,28,0,62,62,0,62,62,0,62,62,0,28,28,0,0, - 0,0,0,0,0,0,0,0,254,63,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,31,128,62,31,128,30,47,128,30,79,128,7,143, - 224,18,37,111,19,0,247,0,14,0,0,30,0,0,30,0, - 0,60,0,0,48,0,0,96,0,0,192,0,0,0,0,0, - 0,0,255,207,192,63,3,0,31,3,0,31,2,0,15,2, - 0,15,130,0,15,132,0,7,196,0,7,196,0,3,196,0, - 3,232,0,3,232,0,1,248,0,1,240,0,0,240,0,0, - 240,0,0,96,0,0,96,0,0,96,0,0,32,0,0,64, - 0,12,64,0,30,64,0,62,128,0,62,128,0,60,128,0, - 29,0,0,14,0,0,18,36,108,20,0,247,3,0,0,15, - 0,0,63,0,0,223,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,31,0,31,63,128,31,71,128,31,135,192, - 31,135,192,31,7,192,31,7,192,31,7,192,31,7,128,31, - 7,128,31,15,0,31,15,0,31,14,0,31,12,0,31,24, - 0,31,48,0,31,96,0,31,128,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,30, - 0,0,56,0,0,224,0,0,19,36,108,20,0,247,7,14, - 0,15,159,0,15,159,0,15,159,0,7,14,0,0,0,0, - 0,0,0,0,0,0,255,207,224,63,3,0,31,3,0,31, - 2,0,15,2,0,15,130,0,15,132,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,248,0,1,240,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 32,0,0,64,0,12,64,0,30,64,0,62,64,0,62,128, - 0,60,128,0,29,0,0,14,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=33 h=37 x= 5 y=12 dx=37 dy= 0 ascent=29 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =29 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29n[1257] U8G_FONT_SECTION("u8g_font_osb29n") = { - 0,107,49,223,245,28,0,0,0,0,42,58,0,29,248,28, - 0,14,16,32,19,3,12,3,0,7,128,7,128,199,24,227, - 60,242,124,122,248,7,128,7,128,250,248,242,124,227,60,199, - 24,7,128,7,128,3,0,33,33,165,37,2,251,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,7,13,13,10,2,249,120,252,252,254,254,126,6,4, - 4,8,24,96,192,10,4,8,14,2,8,255,192,255,192,255, - 192,255,192,6,6,6,10,2,0,120,252,252,252,252,120,13, - 37,74,17,2,248,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,96,0,224,0,224,0,192,1,192,1,192,1, - 128,3,128,3,128,3,128,3,0,7,0,7,0,6,0,14, - 0,14,0,12,0,12,0,28,0,28,0,24,0,56,0,56, - 0,48,0,112,0,112,0,112,0,96,0,224,0,224,0,18, - 28,84,22,2,1,3,240,0,14,28,0,14,28,0,28,14, - 0,60,15,0,60,15,0,124,15,128,124,15,128,124,15,128, - 252,15,192,252,15,192,252,15,192,252,15,192,252,15,192,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,124,15, - 128,124,15,128,124,15,128,60,15,0,60,15,0,28,14,0, - 12,28,0,14,28,0,3,240,0,13,28,56,22,5,0,3, - 128,7,128,15,128,255,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,248,17,28,84,22,2,1,15,248,0, - 24,62,0,48,63,0,112,31,0,240,31,128,240,31,128,252, - 31,128,252,31,128,254,31,128,126,63,0,60,63,0,0,126, - 0,0,252,0,0,248,0,1,224,0,3,128,0,6,0,0, - 12,0,128,24,0,128,16,0,128,32,0,128,47,1,128,127, - 255,128,127,255,128,71,255,0,67,255,0,65,254,0,64,252, - 0,17,28,84,22,2,1,15,248,0,24,62,0,48,63,0, - 48,31,0,112,31,128,120,31,128,124,31,128,124,31,128,124, - 31,128,60,31,0,0,31,0,0,62,0,0,120,0,15,192, - 0,0,120,0,0,62,0,0,63,0,0,31,0,16,31,128, - 124,31,128,252,31,128,252,31,128,252,31,128,248,31,128,240, - 63,0,112,62,0,56,124,0,31,248,0,18,28,84,22,2, - 0,0,124,0,0,124,0,0,252,0,0,252,0,1,252,0, - 1,252,0,3,252,0,3,252,0,6,252,0,6,252,0,12, - 252,0,12,252,0,24,252,0,24,252,0,48,252,0,48,252, - 0,96,252,0,96,252,0,192,252,0,255,255,192,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,15,255,192,17,29,87,22,3,0,0,6,0,112,28, - 0,127,252,0,127,248,0,127,224,0,127,192,0,126,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,120, - 120,0,112,62,0,96,62,0,96,31,0,0,31,0,0,31, - 128,0,31,128,56,31,128,124,31,128,252,31,128,252,31,128, - 248,31,0,240,31,0,224,30,0,96,62,0,48,124,0,31, - 240,0,18,29,87,22,3,0,0,32,0,3,220,0,7,6, - 0,14,6,0,30,15,0,60,31,0,60,63,0,124,63,0, - 124,62,0,124,28,0,252,0,0,252,0,0,252,0,0,253, - 248,0,255,30,0,254,31,0,252,15,128,252,15,128,252,15, - 192,252,15,192,252,15,192,124,15,192,124,15,192,124,15,192, - 60,15,128,28,15,128,30,15,0,14,30,0,3,252,0,17, - 28,84,22,3,0,103,135,0,111,199,0,127,227,128,127,241, - 128,127,249,128,127,255,128,96,125,128,64,1,0,64,3,0, - 64,3,0,192,6,0,0,4,0,0,12,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,240,0,1,240,0,3,224, - 0,3,224,0,3,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,3,192,0,19,29,87,22,2,0,0, - 64,0,7,184,0,28,6,0,56,3,0,112,1,0,112,1, - 128,240,1,128,240,1,128,248,1,128,252,3,0,255,2,0, - 127,196,0,127,248,0,63,252,0,31,255,0,15,255,128,27, - 255,128,48,255,192,96,63,192,96,15,192,224,3,224,224,1, - 192,224,1,192,224,1,192,224,1,192,112,1,128,56,1,0, - 28,6,0,15,252,0,18,28,84,22,3,1,15,240,0,30, - 28,0,60,30,0,124,14,0,124,15,0,252,15,128,252,15, - 128,252,15,128,252,15,128,252,15,192,252,15,192,124,15,192, - 124,15,192,62,31,192,30,63,192,7,239,192,0,15,192,0, - 15,192,0,15,192,30,15,128,31,15,128,63,15,128,63,15, - 0,62,15,0,56,30,0,24,28,0,24,56,0,15,240,0, - 6,19,19,10,2,0,120,252,252,252,252,120,0,0,0,0, - 0,0,0,120,252,252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 5 y=21 dx=41 dy= 0 ascent=31 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29r[7481] U8G_FONT_SECTION("u8g_font_osb29r") = { - 0,107,49,223,245,29,9,166,21,115,32,127,247,31,247,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 9 y=28 dx=52 dy= 0 ascent=45 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-12 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =45 descent=-12 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35[22097] U8G_FONT_SECTION("u8g_font_osb35") = { - 0,133,60,215,242,35,12,220,29,224,32,255,246,45,244,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,13,0,0,8,35,35, - 14,3,245,60,126,255,255,255,126,60,0,0,0,24,24,24, - 24,24,24,24,24,60,60,60,60,126,126,126,126,254,255,255, - 255,255,255,255,126,60,18,34,102,28,5,250,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,1,240,0,7,236, - 0,15,103,0,30,99,0,62,99,128,126,103,128,126,111,128, - 124,111,128,252,111,128,252,103,0,252,96,0,252,96,0,252, - 96,0,252,96,0,252,96,0,252,96,0,124,96,192,124,96, - 192,62,96,128,62,97,128,30,97,0,15,99,0,7,252,0, - 0,248,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,29,34,136,34,3,1,0,1,255,0,0,7,129,192, - 0,31,0,224,0,31,0,224,0,63,0,240,0,126,1,240, - 0,126,3,240,0,254,3,240,0,254,3,224,0,254,1,192, - 0,254,0,0,0,254,0,0,0,254,0,0,0,254,0,0, - 15,254,0,0,24,126,6,0,0,127,252,0,0,127,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,31,0,0,0,31,0,0,0,30,0,0,0,30,0,24, - 30,28,0,56,127,220,0,112,195,248,0,224,128,255,255,224, - 128,127,255,192,128,255,255,128,193,207,255,0,127,3,252,0, - 24,22,66,28,2,5,96,126,6,243,255,207,127,255,254,63, - 129,252,30,0,120,60,0,60,56,0,28,56,0,28,112,0, - 14,112,0,14,112,0,14,112,0,14,112,0,14,112,0,14, - 56,0,28,56,0,28,60,0,60,30,0,120,63,129,252,127, - 255,254,243,255,207,96,126,6,26,34,136,28,1,0,255,248, - 63,192,63,224,15,0,31,224,14,0,31,224,12,0,31,224, - 12,0,15,240,8,0,15,240,8,0,7,240,24,0,7,248, - 16,0,3,248,48,0,3,252,32,0,3,252,96,0,1,254, - 64,0,1,254,192,0,0,254,128,0,0,255,128,0,0,255, - 0,0,63,255,254,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,63,255,254,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,7,255,248,0,3,42,42,13,5,248,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,22,43,129,30,2,248,1,255,0,7, - 1,192,14,0,224,28,0,224,28,1,240,60,3,240,60,7, - 240,60,7,240,62,7,224,62,3,192,63,0,0,31,192,0, - 31,248,0,15,254,0,31,255,128,55,255,192,97,255,240,96, - 127,248,224,31,248,224,7,252,240,1,252,252,0,124,255,0, - 60,255,192,28,127,240,24,63,252,24,31,255,16,15,255,160, - 3,255,192,0,255,224,0,63,224,0,15,240,6,3,240,31, - 129,240,63,128,240,63,128,240,63,128,240,63,0,240,62,0, - 224,28,1,192,28,3,192,15,7,0,3,252,0,15,6,12, - 21,3,26,120,60,252,126,252,126,252,126,252,126,120,60,35, - 34,170,39,2,1,0,15,254,0,0,0,112,3,192,0,0, - 192,0,96,0,3,128,0,56,0,6,0,0,28,0,12,0, - 0,6,0,24,3,225,134,0,24,15,25,131,0,48,30,15, - 129,128,48,62,7,129,128,96,60,3,128,192,96,124,3,128, - 192,96,124,1,128,192,192,252,1,128,96,192,252,1,128,96, - 192,252,0,0,96,192,252,0,0,96,192,252,0,0,96,192, - 252,0,0,96,192,252,0,128,96,192,252,0,128,96,64,124, - 0,128,192,96,124,1,128,192,96,60,1,0,192,48,62,3, - 1,128,48,30,2,1,128,24,15,12,3,0,24,3,248,6, - 0,12,0,0,6,0,6,0,0,12,0,3,128,0,56,0, - 0,192,0,96,0,0,112,1,192,0,0,15,254,0,0,14, - 17,34,18,2,17,31,0,51,192,97,224,113,224,121,224,57, - 224,7,224,57,224,113,224,241,224,241,228,241,228,241,228,126, - 248,0,0,127,252,127,252,13,20,40,23,5,1,4,0,28, - 24,24,48,56,112,112,96,112,224,241,224,241,224,241,224,241, - 224,241,224,241,224,241,224,112,224,112,224,112,96,56,48,24, - 16,12,0,4,0,23,13,39,27,2,6,255,255,254,255,255, - 254,255,255,254,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,12,5,10,18,3,10,255,240,255,240,255,240,255,240, - 255,240,35,34,170,39,2,1,0,15,254,0,0,0,112,3, - 192,0,0,192,0,96,0,3,128,0,56,0,6,0,0,28, - 0,12,0,0,6,0,24,255,252,6,0,24,62,31,3,0, - 48,62,15,129,128,48,62,15,193,128,96,62,15,192,192,96, - 62,15,192,192,96,62,15,192,192,192,62,15,128,96,192,62, - 31,0,96,192,63,248,0,96,192,62,60,0,96,192,62,30, - 0,96,192,62,15,0,96,192,62,15,128,96,192,62,15,128, - 96,64,62,15,128,192,96,62,15,136,192,96,62,15,136,192, - 48,62,15,137,128,48,62,15,145,128,24,255,231,243,0,24, - 0,3,230,0,12,0,0,6,0,6,0,0,12,0,3,128, - 0,56,0,0,192,0,96,0,0,112,1,192,0,0,15,254, - 0,0,12,3,6,20,4,28,255,240,255,240,255,240,16,15, - 30,28,6,20,15,240,31,248,62,124,120,30,240,14,224,7, - 224,7,224,7,224,7,224,14,112,14,124,60,63,252,31,240, - 3,192,41,36,216,45,2,253,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,255,255,255,255,255,128,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,255,255,0,255,255,255,255,255,0,255,255,255,255,255,0, - 14,21,42,21,4,14,31,240,48,248,96,124,224,124,240,124, - 248,124,248,120,120,248,1,240,1,224,3,128,6,0,12,4, - 16,4,32,4,32,12,127,252,127,252,79,248,71,248,1,224, - 16,21,42,22,3,14,31,224,48,248,112,124,112,124,124,124, - 124,124,60,124,0,120,0,224,15,128,0,240,0,124,0,62, - 16,63,124,63,252,63,252,63,240,63,112,126,112,252,31,240, - 8,9,9,21,9,25,6,15,31,62,60,120,240,192,128,24, - 35,105,29,3,244,120,3,192,124,3,192,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 248,7,224,248,7,224,120,7,192,112,3,192,112,3,193,112, - 3,129,48,3,131,48,7,135,48,7,255,56,15,254,62,62, - 254,47,252,126,35,248,60,32,0,0,48,0,0,112,0,0, - 112,0,0,120,0,0,124,0,0,124,0,0,124,0,0,126, - 0,0,126,0,0,126,0,0,62,0,0,28,0,0,23,41, - 123,28,3,249,3,255,254,15,240,224,63,240,224,127,240,224, - 127,240,224,255,240,224,255,240,224,255,240,224,255,240,224,255, - 240,224,255,240,224,255,240,224,255,240,224,255,240,224,127,240, - 224,63,240,224,31,240,224,7,240,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,112, - 224,0,112,224,0,112,224,0,112,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,8, - 7,7,14,3,12,60,126,255,255,255,126,60,10,10,20,21, - 5,246,8,0,8,0,24,0,15,0,7,128,3,192,3,192, - 3,192,199,128,63,0,11,20,40,21,5,14,7,0,15,0, - 255,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,255,224,13,17,34,19,3,17,15,128,24,192,56,224, - 112,112,112,112,240,120,240,120,240,120,240,120,240,120,240,120, - 112,112,112,224,56,224,15,128,0,0,255,248,13,20,40,23, - 5,1,1,0,193,128,96,192,112,224,48,112,56,112,56,120, - 60,120,60,120,60,120,60,120,60,120,60,120,56,112,56,112, - 48,112,96,224,64,192,1,128,1,0,36,36,180,44,5,255, - 0,0,0,48,0,7,0,0,48,0,7,0,0,96,0,31, - 0,0,224,0,255,0,0,192,0,31,0,1,192,0,31,0, - 1,128,0,31,0,3,0,0,31,0,7,0,0,31,0,6, - 0,0,31,0,14,0,0,31,0,12,0,0,31,0,24,0, - 0,31,0,24,0,0,31,0,48,0,0,31,0,112,15,0, - 31,0,96,31,0,31,0,224,31,0,31,0,192,63,0,31, - 1,128,127,0,255,227,128,127,0,0,3,0,223,0,0,7, - 1,159,0,0,6,1,159,0,0,12,3,31,0,0,12,2, - 31,0,0,24,6,31,0,0,56,12,31,0,0,48,15,255, - 240,0,112,0,31,0,0,96,0,31,0,0,192,0,31,0, - 1,192,0,31,0,1,128,0,31,0,3,128,1,255,224,3, - 0,0,0,0,35,36,180,43,5,255,0,0,0,56,0,7, - 0,0,48,0,7,0,0,112,0,31,0,0,224,0,255,0, - 0,192,0,31,0,1,192,0,31,0,1,128,0,31,0,3, - 128,0,31,0,3,0,0,31,0,7,0,0,31,0,14,0, - 0,31,0,12,0,0,31,0,28,0,0,31,0,24,0,0, - 31,0,56,126,0,31,0,113,143,128,31,0,99,7,192,31, - 0,231,3,224,31,0,199,3,224,31,1,199,131,224,255,227, - 135,195,224,0,3,3,199,192,0,7,1,135,128,0,6,0, - 15,0,0,14,0,30,0,0,12,0,56,0,0,24,0,96, - 0,0,56,0,128,32,0,48,1,0,32,0,112,2,0,32, - 0,96,2,255,224,0,192,7,255,224,1,192,6,255,192,1, - 128,4,127,192,3,128,4,63,128,3,0,0,0,0,38,36, - 180,44,3,255,0,0,0,12,0,31,224,0,12,0,48,248, - 0,24,0,112,124,0,56,0,112,124,0,48,0,124,124,0, - 112,0,124,124,0,96,0,60,124,0,192,0,0,120,1,192, - 0,0,224,1,128,0,15,128,3,128,0,0,240,3,0,0, - 0,124,7,0,0,0,62,6,0,0,16,63,12,0,0,124, - 63,28,3,192,252,63,24,7,192,252,63,56,7,192,240,63, - 48,15,192,112,126,112,31,192,112,252,224,31,192,31,240,192, - 55,192,0,1,192,103,192,0,1,128,103,192,0,3,128,199, - 192,0,3,0,135,192,0,6,1,135,192,0,14,3,7,192, - 0,12,3,255,252,0,28,0,7,192,0,24,0,7,192,0, - 56,0,7,192,0,112,0,7,192,0,96,0,7,192,0,224, - 0,127,248,0,192,0,0,0,16,35,70,23,3,245,7,0, - 15,128,31,192,31,192,31,192,15,128,7,0,0,0,0,0, - 7,128,12,224,16,48,16,48,16,48,16,48,0,96,0,224, - 0,192,3,192,7,128,15,128,31,0,31,4,62,4,126,6, - 124,2,252,3,252,3,252,3,252,3,252,6,126,6,63,12, - 31,248,7,224,33,45,225,36,2,0,0,56,0,0,0,0, - 60,0,0,0,0,62,0,0,0,0,62,0,0,0,0,31, - 0,0,0,0,7,0,0,0,0,3,128,0,0,0,1,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,192,0, - 0,0,1,192,0,0,0,1,224,0,0,0,1,224,0,0, - 0,3,224,0,0,0,3,240,0,0,0,3,240,0,0,0, - 7,240,0,0,0,7,248,0,0,0,7,248,0,0,0,15, - 248,0,0,0,15,252,0,0,0,15,252,0,0,0,25,252, - 0,0,0,25,254,0,0,0,25,254,0,0,0,48,254,0, - 0,0,48,255,0,0,0,32,255,0,0,0,96,127,0,0, - 0,96,127,128,0,0,64,127,128,0,0,192,63,128,0,0, - 192,63,192,0,0,255,255,192,0,1,255,255,192,0,1,128, - 31,224,0,1,0,31,224,0,3,0,15,224,0,3,0,15, - 240,0,2,0,15,240,0,6,0,7,240,0,15,0,7,248, - 0,31,0,15,252,0,255,240,255,255,128,33,45,225,36,2, - 0,0,0,14,0,0,0,0,15,0,0,0,0,31,0,0, - 0,0,62,0,0,0,0,60,0,0,0,0,120,0,0,0, - 0,240,0,0,0,0,192,0,0,0,0,128,0,0,0,0, - 0,0,0,0,0,192,0,0,0,1,192,0,0,0,1,224, - 0,0,0,1,224,0,0,0,3,224,0,0,0,3,240,0, - 0,0,3,240,0,0,0,7,240,0,0,0,7,248,0,0, - 0,7,248,0,0,0,15,248,0,0,0,15,252,0,0,0, - 15,252,0,0,0,25,252,0,0,0,25,254,0,0,0,25, - 254,0,0,0,48,254,0,0,0,48,255,0,0,0,32,255, - 0,0,0,96,127,0,0,0,96,127,128,0,0,64,127,128, - 0,0,192,63,128,0,0,192,63,192,0,0,255,255,192,0, - 1,255,255,192,0,1,128,31,224,0,1,0,31,224,0,3, - 0,15,224,0,3,0,15,240,0,6,0,15,240,0,6,0, - 7,240,0,15,0,7,248,0,255,240,255,255,128,255,240,255, - 255,128,33,44,220,36,2,0,0,1,192,0,0,0,1,224, - 0,0,0,3,224,0,0,0,7,240,0,0,0,15,120,0, - 0,0,30,30,0,0,0,120,7,0,0,0,64,1,128,0, - 0,0,0,0,0,0,0,192,0,0,0,1,192,0,0,0, - 1,224,0,0,0,1,224,0,0,0,3,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,7,240,0,0,0,7,248, - 0,0,0,7,248,0,0,0,15,248,0,0,0,15,252,0, - 0,0,15,252,0,0,0,25,252,0,0,0,25,254,0,0, - 0,25,254,0,0,0,48,254,0,0,0,48,255,0,0,0, - 32,255,0,0,0,96,127,0,0,0,96,127,128,0,0,64, - 127,128,0,0,192,63,128,0,0,192,63,192,0,0,255,255, - 192,0,1,255,255,192,0,1,128,31,224,0,1,0,31,224, - 0,3,0,15,224,0,3,0,15,240,0,2,0,15,240,0, - 6,0,7,240,0,15,0,7,248,0,31,0,15,252,0,255, - 240,255,255,128,33,43,215,36,2,0,0,15,1,0,0,0, - 31,227,0,0,0,63,254,0,0,0,33,254,0,0,0,32, - 124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,6,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,255,240,255,255,128,255,240,255,255, - 128,33,43,215,36,2,0,0,60,15,0,0,0,126,31,128, - 0,0,126,31,128,0,0,126,31,128,0,0,126,31,128,0, - 0,60,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,7,248,0,0,0,7,248,0, - 0,0,7,248,0,0,0,15,252,0,0,0,15,252,0,0, - 0,25,252,0,0,0,25,254,0,0,0,24,254,0,0,0, - 48,254,0,0,0,48,255,0,0,0,48,127,0,0,0,96, - 127,0,0,0,96,127,128,0,0,96,63,128,0,0,192,63, - 128,0,0,192,63,192,0,0,255,255,192,0,1,255,255,192, - 0,1,128,31,224,0,1,128,15,224,0,3,0,15,224,0, - 3,0,15,240,0,3,0,7,240,0,7,0,7,240,0,15, - 0,7,248,0,31,128,15,252,0,255,240,255,255,128,33,45, - 225,36,2,0,0,1,224,0,0,0,7,248,0,0,0,14, - 28,0,0,0,12,12,0,0,0,12,12,0,0,0,12,12, - 0,0,0,14,28,0,0,0,7,248,0,0,0,3,240,0, - 0,0,0,0,0,0,0,0,192,0,0,0,1,192,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,224,0,0,0, - 3,240,0,0,0,3,240,0,0,0,7,240,0,0,0,7, - 248,0,0,0,7,248,0,0,0,15,248,0,0,0,13,252, - 0,0,0,13,252,0,0,0,29,252,0,0,0,25,254,0, - 0,0,24,254,0,0,0,56,254,0,0,0,48,255,0,0, - 0,48,127,0,0,0,112,127,0,0,0,96,127,128,0,0, - 96,63,128,0,0,224,63,128,0,0,192,63,192,0,0,255, - 255,192,0,1,255,255,192,0,1,128,31,224,0,1,128,31, - 224,0,3,0,15,224,0,3,0,15,240,0,3,0,15,240, - 0,7,0,7,240,0,15,0,7,248,0,31,128,15,252,0, - 255,240,255,255,128,45,34,204,48,1,0,0,0,127,255,255, - 240,0,0,31,248,7,240,0,0,15,248,1,240,0,0,15, - 248,0,240,0,0,31,248,0,240,0,0,27,248,0,112,0, - 0,59,248,0,112,0,0,51,248,0,48,0,0,115,248,0, - 48,0,0,99,248,12,48,0,0,227,248,12,16,0,0,195, - 248,12,0,0,1,195,248,28,0,0,1,131,248,28,0,0, - 3,131,248,60,0,0,3,3,248,124,0,0,7,3,255,252, - 0,0,6,3,248,124,0,0,14,3,248,60,0,0,12,3, - 248,28,0,0,28,3,248,28,0,0,24,3,248,12,24,0, - 56,3,248,12,24,0,63,255,248,12,24,0,96,3,248,0, - 56,0,224,3,248,0,56,0,192,3,248,0,56,1,192,3, - 248,0,120,1,128,3,248,0,120,3,128,3,248,0,248,7, - 128,3,248,1,248,15,128,3,248,3,248,255,248,127,255,255, - 248,255,248,127,255,255,248,26,45,180,31,3,246,0,127,193, - 128,1,224,241,128,3,192,63,128,7,128,31,128,15,128,15, - 128,31,0,15,128,63,0,7,128,63,0,7,128,63,0,3, - 128,127,0,3,128,127,0,1,128,127,0,1,128,255,0,1, - 128,255,0,1,128,255,0,1,128,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,192,127,0,0,192,127,0,0,192,127,0,0, - 128,63,0,0,128,63,0,1,128,63,0,1,128,31,128,3, - 0,15,128,3,0,7,128,6,0,3,192,12,0,1,224,56, - 0,0,127,224,0,0,12,0,0,0,8,0,0,0,30,0, - 0,0,31,128,0,0,3,192,0,0,1,224,0,0,1,224, - 0,0,1,224,0,0,129,192,0,0,199,192,0,0,63,0, - 0,27,45,180,33,3,0,0,224,0,0,1,240,0,0,1, - 240,0,0,0,248,0,0,0,124,0,0,0,60,0,0,0, - 14,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,45,180,33,3, - 0,0,0,56,0,0,0,120,0,0,0,248,0,0,0,248, - 0,0,1,240,0,0,3,192,0,0,3,128,0,0,6,0, - 0,0,4,0,0,0,0,0,0,0,0,0,0,255,255,255, - 224,15,224,31,224,15,224,7,224,15,224,3,224,15,224,1, - 224,15,224,1,224,15,224,0,224,15,224,0,224,15,224,0, - 96,15,224,48,96,15,224,48,96,15,224,48,0,15,224,112, - 0,15,224,112,0,15,224,240,0,15,225,240,0,15,255,240, - 0,15,225,240,0,15,224,240,0,15,224,112,0,15,224,112, - 32,15,224,48,96,15,224,48,96,15,224,48,96,15,224,0, - 96,15,224,0,224,15,224,0,224,15,224,0,224,15,224,1, - 224,15,224,3,224,15,224,3,224,15,224,15,224,255,255,255, - 224,255,255,255,224,27,44,176,33,3,0,0,6,0,0,0, - 15,0,0,0,15,128,0,0,31,192,0,0,57,224,0,0, - 240,112,0,3,192,28,0,0,0,4,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,43,172,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,224,15,224,31,224,15,224,7, - 224,15,224,3,224,15,224,1,224,15,224,1,224,15,224,0, - 224,15,224,0,224,15,224,0,224,15,224,48,96,15,224,48, - 96,15,224,48,0,15,224,112,0,15,224,112,0,15,224,240, - 0,15,225,240,0,15,255,240,0,15,225,240,0,15,224,240, - 0,15,224,112,0,15,224,112,96,15,224,48,96,15,224,48, - 96,15,224,48,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,0,224,15,224,1,224,15,224,3,224,15,224,3, - 224,15,224,15,224,255,255,255,224,255,255,255,224,16,45,90, - 21,3,0,56,0,124,0,124,0,62,0,31,0,15,0,3, - 128,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,45,90, - 21,3,0,0,14,0,30,0,62,0,60,0,120,0,240,0, - 224,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,44,88, - 21,3,0,1,192,3,192,3,224,7,240,31,120,60,28,240, - 7,0,1,0,0,0,0,255,255,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,255,255,255,255,16,43,86,21,3, - 0,120,30,252,63,252,63,252,63,252,63,120,30,0,0,0, - 0,0,0,255,255,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,255,255,32,34,136,37,3,0,255,255,248, - 0,7,240,31,0,7,240,7,128,7,240,3,224,7,240,1, - 240,7,240,1,240,7,240,0,248,7,240,0,252,7,240,0, - 252,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,255,255,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,7,240,0, - 255,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 254,7,240,0,252,7,240,0,252,7,240,0,248,7,240,1, - 240,7,240,1,224,7,240,3,192,7,240,7,128,7,240,31, - 0,255,255,248,0,34,44,220,37,2,255,0,7,128,128,0, - 0,15,241,128,0,0,31,255,0,0,0,16,255,0,0,0, - 16,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,224,15,255,192,31,240,3, - 255,0,15,240,0,252,0,15,248,0,120,0,7,252,0,48, - 0,3,254,0,48,0,3,254,0,48,0,3,255,0,48,0, - 3,255,128,48,0,3,255,128,48,0,3,127,192,48,0,3, - 63,224,48,0,3,31,224,48,0,3,31,240,48,0,3,15, - 248,48,0,3,7,248,48,0,3,7,252,48,0,3,3,254, - 48,0,3,1,255,48,0,3,1,255,48,0,3,0,255,176, - 0,3,0,127,240,0,3,0,127,240,0,3,0,63,240,0, - 3,0,31,240,0,3,0,15,240,0,3,0,15,240,0,3, - 0,7,240,0,3,0,3,240,0,3,0,3,240,0,7,128, - 1,240,0,15,192,0,240,0,63,240,0,240,0,255,252,0, - 112,0,0,0,0,48,0,28,45,180,33,3,0,0,192,0, - 0,1,224,0,0,1,240,0,0,0,248,0,0,0,120,0, - 0,0,60,0,0,0,28,0,0,0,6,0,0,0,2,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,28,45,180,33,3,0,0,0,48,0,0,0,120,0,0, - 0,248,0,0,1,240,0,0,1,224,0,0,3,192,0,0, - 3,128,0,0,6,0,0,0,4,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,45,180,33,3, - 0,0,6,0,0,0,14,0,0,0,15,0,0,0,31,128, - 0,0,63,192,0,0,121,224,0,0,240,240,0,3,192,60, - 0,3,0,12,0,0,0,0,0,0,0,0,0,0,63,192, - 0,0,224,112,0,3,192,56,0,7,128,30,0,15,128,30, - 0,15,0,15,0,31,0,15,128,63,0,15,192,63,0,15, - 192,127,0,15,192,127,0,15,224,127,0,15,224,127,0,15, - 224,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,127,0,15,224,127,0,15,224,127,0,15,224,127,0,15, - 192,63,0,15,192,63,0,15,192,31,0,15,128,15,0,15, - 0,15,128,31,0,7,128,30,0,3,192,60,0,0,224,112, - 0,0,63,192,0,28,44,176,33,3,0,0,0,8,0,0, - 126,24,0,0,255,248,0,1,255,240,0,1,7,224,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,44,176,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,31,30,120,45,7,253,32,0,0,0,112,0,0,12,248, - 0,0,30,124,0,0,60,62,0,0,120,31,0,1,240,15, - 128,3,224,7,192,7,192,3,224,15,128,1,240,31,0,0, - 248,62,0,0,124,124,0,0,62,248,0,0,31,240,0,0, - 15,224,0,0,7,192,0,0,15,224,0,0,31,240,0,0, - 62,248,0,0,124,60,0,0,248,30,0,1,240,15,0,3, - 224,7,128,7,192,3,192,15,128,1,224,31,0,0,240,62, - 0,0,120,124,0,0,60,248,0,0,30,112,0,0,12,28, - 34,136,33,3,1,0,63,224,48,0,224,112,96,1,192,60, - 192,7,128,31,192,15,128,31,128,15,0,15,0,31,0,15, - 128,63,0,15,192,63,0,31,192,63,0,31,224,127,0,63, - 224,127,0,111,224,127,0,239,224,255,0,207,240,255,1,143, - 240,255,3,15,240,255,7,15,240,255,14,15,240,255,12,15, - 240,255,24,15,240,255,48,15,240,255,112,15,224,127,96,15, - 224,127,192,15,224,127,128,15,192,63,128,15,192,63,0,15, - 192,31,0,15,128,15,0,15,0,31,128,30,0,63,128,30, - 0,51,192,56,0,96,224,112,0,192,127,192,0,33,45,225, - 38,3,0,0,24,0,0,0,0,60,0,0,0,0,62,0, - 0,0,0,31,0,0,0,0,15,128,0,0,0,7,128,0, - 0,0,1,192,0,0,0,0,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,33,45,225,38,3,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,31,0,0,0,0, - 60,0,0,0,0,56,0,0,0,0,112,0,0,0,0,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,7,255,128,15,224,1,254,0,15,224,0,120,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,7,224,0,48,0,7,224,0,96,0,7,240,0, - 96,0,3,240,0,192,0,1,248,1,192,0,0,252,3,128, - 0,0,127,159,0,0,0,31,252,0,0,33,45,225,38,3, - 0,0,0,64,0,0,0,0,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,7,248,0,0,0,15,28,0,0,0, - 30,15,0,0,0,112,3,128,0,0,0,0,128,0,0,0, - 0,0,0,0,0,0,0,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,33,44,220,38,3,0,0,60,15,0,0,0,126,31, - 128,0,0,126,31,128,0,0,126,31,128,0,0,126,31,128, - 0,0,60,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,254,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,32,45,180,35,2,0,0,0,7,0,0,0, - 15,0,0,0,31,0,0,0,31,0,0,0,60,0,0,0, - 120,0,0,0,112,0,0,0,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,254,15,255,31,248,1,248,15,248, - 0,240,7,248,0,224,7,248,0,192,3,252,0,192,3,252, - 0,192,1,252,1,128,1,254,1,128,0,254,3,0,0,255, - 3,0,0,255,3,0,0,127,134,0,0,127,134,0,0,63, - 196,0,0,63,204,0,0,31,204,0,0,31,248,0,0,15, - 248,0,0,15,248,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,255,255,0,29,34, - 136,34,3,0,255,255,128,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,255,248,0, - 7,240,63,0,7,240,15,192,7,240,15,224,7,240,15,240, - 7,240,7,240,7,240,7,248,7,240,7,248,7,240,7,248, - 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,240, - 7,240,15,240,7,240,15,224,7,240,15,192,7,240,31,0, - 7,255,252,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,255,255,128,0,23,34,102,27, - 2,0,0,127,0,1,227,128,3,195,224,7,193,224,7,193, - 240,15,129,240,15,129,240,15,129,240,31,129,240,31,129,224, - 31,129,224,31,129,192,31,131,128,31,188,0,31,131,0,31, - 129,192,31,128,240,31,128,248,31,128,248,31,128,124,31,128, - 124,31,128,126,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,184,126,31,252,124,31,252,124,31,248,252,31, - 248,248,31,184,240,255,159,224,21,34,102,24,2,0,24,0, - 0,60,0,0,62,0,0,30,0,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,192,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,60,31,128,0,127,128,3,223,128, - 15,31,128,30,31,128,62,31,128,124,31,128,252,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,127, - 240,63,143,224,21,34,102,24,2,0,0,12,0,0,30,0, - 0,62,0,0,62,0,0,124,0,0,120,0,0,224,0,0, - 192,0,1,128,0,0,0,0,0,0,0,0,0,0,15,248, - 0,24,62,0,56,63,0,120,31,0,124,31,128,126,31,128, - 126,31,128,62,31,128,8,63,128,1,255,128,7,159,128,30, - 31,128,62,31,128,124,31,128,124,31,128,252,31,128,252,31, - 136,252,31,136,252,31,152,254,63,144,127,127,240,63,143,224, - 21,34,102,24,2,0,1,192,0,1,224,0,3,224,0,3, - 224,0,7,240,0,7,56,0,14,28,0,28,14,0,48,7, - 0,0,0,0,0,0,0,0,0,0,15,248,0,24,62,0, - 56,63,0,120,31,0,124,31,128,126,31,128,126,31,128,62, - 31,128,8,63,128,1,255,128,7,159,128,30,31,128,62,31, - 128,124,31,128,124,31,128,252,31,128,252,31,136,252,31,136, - 252,31,152,254,63,144,127,127,240,63,143,224,21,32,96,24, - 2,0,15,3,0,31,195,0,63,254,0,49,252,0,32,120, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, - 31,128,126,31,128,62,31,128,8,63,128,1,255,128,7,159, - 128,30,31,128,62,31,128,124,31,128,124,31,128,252,31,128, - 252,31,136,252,31,136,252,31,152,254,63,144,127,127,240,63, - 143,224,21,32,96,24,2,0,60,30,0,126,63,0,126,63, - 0,126,63,0,126,63,0,60,30,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,21,34,102,24,2,1,3,240, - 0,7,248,0,14,28,0,12,12,0,12,12,0,12,12,0, - 14,28,0,7,248,0,1,224,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,62,31,128,8,63,128,1,255,128, - 7,31,128,30,31,128,62,31,128,124,31,128,124,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,111, - 240,63,199,224,29,22,88,34,2,1,15,240,255,128,24,63, - 195,192,56,63,195,224,120,31,131,240,124,31,129,240,126,31, - 129,240,126,31,129,248,62,31,129,248,0,63,129,248,1,255, - 129,248,7,31,255,248,30,31,128,0,62,31,128,0,124,31, - 128,0,124,31,128,8,252,31,128,8,252,31,128,24,252,31, - 192,16,252,31,192,16,254,51,192,32,127,97,240,64,63,192, - 255,128,18,32,96,22,2,247,3,252,0,15,6,0,31,7, - 0,62,7,128,62,7,128,126,15,128,124,31,128,252,31,128, - 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,1, - 128,30,1,0,15,130,0,3,252,0,0,128,0,0,128,0, - 1,128,0,0,240,0,0,56,0,0,60,0,0,60,0,0, - 60,0,4,120,0,3,240,0,18,34,102,23,2,0,28,0, - 0,30,0,0,30,0,0,31,0,0,15,128,0,7,128,0, - 3,192,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 0,0,3,252,0,14,30,0,30,31,0,62,15,128,60,15, - 128,124,15,128,124,15,192,252,15,192,252,15,192,252,15,192, - 255,255,192,252,0,0,252,0,0,252,0,0,252,0,64,124, - 0,64,124,0,192,62,0,192,62,1,128,31,1,0,15,135, - 0,3,252,0,18,34,102,23,2,0,0,14,0,0,31,0, - 0,31,0,0,62,0,0,60,0,0,120,0,0,240,0,0, - 224,0,1,128,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,23,2,0,1,224,0,1,224,0,1,240,0,3, - 240,0,3,248,0,7,56,0,14,28,0,28,14,0,56,3, - 0,0,0,0,0,0,0,0,0,0,3,252,0,14,30,0, - 30,31,0,62,15,128,60,15,128,124,15,128,124,15,192,252, - 15,192,252,15,192,252,15,192,255,255,192,252,0,0,252,0, - 0,252,0,0,252,0,64,124,0,64,124,0,192,62,0,192, - 62,0,128,31,1,0,15,131,0,3,252,0,18,32,96,23, - 2,0,30,15,0,63,31,128,63,31,128,63,31,128,63,31, - 128,30,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,14,30,0,30,31,0,62,15,128,60,15,128,124, - 15,128,124,15,192,252,15,192,252,15,192,252,15,192,255,255, - 192,252,0,0,252,0,0,252,0,0,252,0,64,124,0,64, - 124,0,192,62,0,192,62,0,128,31,1,0,15,131,0,3, - 252,0,12,34,68,15,1,0,96,0,240,0,248,0,248,0, - 124,0,28,0,14,0,7,0,3,0,0,0,0,0,0,0, - 127,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,127,240,12,34,68,15, - 2,0,0,224,1,240,1,240,3,224,7,192,7,128,15,0, - 28,0,24,0,0,0,0,0,0,0,255,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,255,224,14,34,68,14,0,0,7,128,15,128, - 15,128,15,192,31,224,60,224,56,112,112,60,192,12,0,0, - 0,0,0,0,63,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,63,248, - 14,32,64,14,1,0,120,120,252,252,252,252,252,252,252,252, - 120,120,0,0,0,0,0,0,0,0,63,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,63,248,20,34,102,24,2,0,15,193,128,15, - 227,0,7,254,0,3,248,0,1,248,0,1,252,0,3,254, - 0,14,126,0,24,63,0,0,63,128,0,31,128,0,15,192, - 7,255,192,15,15,224,30,7,224,62,7,224,62,7,224,124, - 7,240,124,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,7,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,23,32,96,27,2,0,3,224,96,7,248,64,15,255, - 192,12,127,128,8,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,31,192,63,35,224,63,65,240,63, - 65,248,63,129,248,63,129,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,255,199,254,20,34,102,24,2,0,14,0, - 0,31,0,0,31,0,0,15,128,0,7,192,0,3,192,0, - 1,224,0,0,96,0,0,48,0,0,0,0,0,0,0,0, - 0,0,3,252,0,15,15,0,30,7,128,62,7,192,62,7, - 192,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,224,124,3,224,62,7,192,62,7,192,30,7,128,15,15, - 0,3,252,0,20,34,102,24,2,0,0,7,0,0,15,128, - 0,15,128,0,31,0,0,62,0,0,60,0,0,120,0,0, - 224,0,0,192,0,0,0,0,0,0,0,0,0,0,3,252, - 0,15,15,0,30,7,128,62,7,192,62,7,192,124,3,224, - 124,3,224,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,3, - 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, - 20,34,102,24,2,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,7,14,0,14,7,0,24,1, - 128,0,0,0,0,0,0,0,0,0,3,252,0,15,15,0, - 30,7,128,62,7,192,62,7,192,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,124,3,224,124,3,224,62,7,192, - 62,7,192,30,7,128,15,15,0,3,252,0,20,32,96,24, - 2,0,7,192,128,15,240,128,31,255,128,16,255,0,16,62, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,15,15,0,30,7,128,62,7,192,62,7,192,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,3,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,20,32,96,24,2,0,30,15,0,63,31,128,63,31, - 128,63,31,128,63,31,128,30,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,252,0,15,15,0,30,7,128,62, - 7,192,62,7,192,124,3,224,124,3,224,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,62,7,192,62,7,192,30, - 7,128,15,15,0,3,252,0,41,32,192,45,2,253,0,0, - 28,0,0,0,0,0,62,0,0,0,0,0,127,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,62,0, - 0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,28,0,0,0,0,0,62,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0, - 0,0,0,0,62,0,0,0,0,0,28,0,0,0,20,22, - 66,24,2,1,3,252,48,15,15,96,30,15,192,62,7,192, - 62,7,192,124,7,224,124,7,224,252,15,240,252,27,240,252, - 51,240,252,115,240,252,227,240,252,195,240,253,131,240,255,3, - 240,126,3,224,126,3,224,62,7,192,62,7,192,63,7,128, - 111,15,0,195,252,0,24,34,102,26,1,0,7,0,0,7, - 128,0,7,192,0,7,192,0,3,224,0,1,224,0,0,112, - 0,0,48,0,0,24,0,0,0,0,0,0,0,0,0,0, - 255,143,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,131,248,31,131,248,31,133,248,15,133,248,15,201,248,7, - 241,255,24,34,102,26,1,0,0,3,128,0,3,128,0,7, - 128,0,15,128,0,15,0,0,30,0,0,28,0,0,56,0, - 0,48,0,0,0,0,0,0,0,0,0,0,255,143,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,131,248,31, - 131,248,31,133,248,15,133,248,15,201,248,7,241,255,24,34, - 102,26,1,0,0,56,0,0,120,0,0,124,0,0,252,0, - 0,254,0,1,206,0,3,135,0,7,3,128,14,0,192,0, - 0,0,0,0,0,0,0,0,255,143,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,131,248,31,131,248,31,133, - 248,15,133,248,15,201,248,7,241,255,24,32,96,26,1,0, - 7,131,192,15,199,224,15,199,224,15,199,224,15,199,224,7, - 131,192,0,0,0,0,0,0,0,0,0,0,0,0,255,135, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,131, - 248,31,131,248,31,133,248,15,133,248,15,201,248,7,241,255, - 23,45,135,25,1,245,0,1,192,0,1,224,0,3,224,0, - 7,192,0,7,128,0,15,0,0,14,0,0,28,0,0,24, - 0,0,0,0,0,0,0,0,0,0,255,241,254,63,192,120, - 31,128,48,15,192,32,15,192,32,15,192,96,7,224,64,7, - 224,64,3,240,192,3,240,128,1,248,128,1,249,128,0,249, - 0,0,253,0,0,253,0,0,126,0,0,126,0,0,62,0, - 0,60,0,0,28,0,0,28,0,0,12,0,0,8,0,0, - 8,0,0,8,0,15,16,0,31,16,0,63,144,0,63,32, - 0,62,32,0,62,64,0,31,192,0,15,0,0,22,44,132, - 25,1,244,3,128,0,15,128,0,63,128,0,255,128,0,223, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,135,240,31,159,248,31,177,248,31,160,252,31,192,252, - 31,192,252,31,192,252,31,128,252,31,128,252,31,128,248,31, - 129,248,31,129,240,31,129,240,31,129,224,31,131,192,31,131, - 128,31,135,128,31,134,0,31,140,0,31,152,0,31,224,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,30,0,0,120,0, - 0,224,0,0,128,0,0,23,44,132,25,1,245,3,193,224, - 7,227,240,7,227,240,7,227,240,7,227,240,3,193,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,241, - 254,63,192,120,31,128,48,15,192,32,15,192,32,15,192,96, - 7,224,64,7,224,64,3,240,192,3,240,128,1,240,128,1, - 249,128,0,249,0,0,253,0,0,253,0,0,126,0,0,126, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,12,0, - 0,8,0,0,8,0,0,8,0,15,16,0,31,16,0,63, - 144,0,63,32,0,62,32,0,62,64,0,31,192,0,15,0, - 0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=44 x= 6 y=13 dx=45 dy= 0 ascent=35 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =35 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35n[1567] U8G_FONT_SECTION("u8g_font_osb35n") = { - 0,133,60,215,242,34,0,0,0,0,42,58,0,35,247,34, - 0,17,19,57,24,4,13,1,128,0,3,192,0,3,192,0, - 227,195,0,241,135,128,248,143,128,252,159,128,126,191,0,3, - 192,0,3,192,0,126,191,0,252,159,128,248,143,128,241,135, - 128,225,195,0,3,192,0,3,192,0,3,192,0,1,128,0, - 41,41,246,45,2,249,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,255,255,255,255,255,128,255,255, - 255,255,255,128,255,255,255,255,255,128,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,9,15,30,13, - 2,248,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,2,0,6,0,28,0,56,0,96,0, - 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, - 8,6,6,14,3,1,126,255,255,255,255,126,16,44,88,22, - 3,247,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,1,224,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,14,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,120,0,112,0, - 112,0,240,0,224,0,224,0,224,0,23,35,105,28,2,0, - 0,16,0,0,254,0,3,199,128,7,131,192,15,1,224,15, - 1,224,31,1,240,63,1,248,63,1,248,127,1,248,127,1, - 252,127,1,252,127,1,252,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,255,1,254,127,1,252,127,1,252,127,1,252,127,1, - 252,63,1,248,63,1,248,31,1,240,15,1,224,15,1,224, - 7,131,192,3,199,128,0,254,0,16,34,68,28,6,0,0, - 240,0,240,1,240,7,240,255,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,255, - 255,255,255,21,34,102,28,3,1,7,255,0,14,15,192,28, - 7,224,56,7,240,120,3,240,120,3,248,248,3,248,252,3, - 248,255,3,248,255,3,248,255,7,248,127,7,240,63,15,240, - 12,15,224,0,31,192,0,63,128,0,127,0,0,252,0,1, - 240,0,3,192,0,7,128,0,14,0,24,12,0,24,24,0, - 24,48,0,24,96,0,24,111,192,56,127,255,248,255,255,240, - 239,255,240,195,255,240,193,255,224,192,255,192,192,63,128,22, - 34,102,28,3,1,7,255,0,14,15,192,28,7,224,56,7, - 240,120,3,240,124,3,248,126,3,248,127,3,248,127,3,248, - 127,3,248,63,3,240,30,3,240,0,7,224,0,7,192,0, - 15,0,7,248,0,0,31,128,0,15,192,0,7,224,0,7, - 240,0,3,248,0,3,248,62,3,252,127,3,252,255,3,252, - 255,3,252,255,3,252,254,3,252,252,3,248,248,7,248,120, - 7,240,56,15,224,30,31,192,15,255,0,23,34,102,28,2, - 0,0,7,192,0,15,192,0,15,192,0,31,192,0,63,192, - 0,63,192,0,127,192,0,127,192,0,255,192,0,223,192,1, - 223,192,1,159,192,3,159,192,7,31,192,6,31,192,14,31, - 192,12,31,192,28,31,192,24,31,192,56,31,192,112,31,192, - 96,31,192,224,31,192,255,255,254,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,0,31, - 192,7,255,252,7,255,252,21,34,102,28,4,0,32,0,192, - 60,7,128,63,255,128,63,255,0,63,254,0,63,248,0,63, - 224,0,63,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,49,252,0,54,63,0,60,15,192,56,15,224, - 48,15,224,32,7,240,0,7,240,0,7,248,0,7,248,8, - 7,248,62,7,248,126,7,248,254,7,248,254,7,248,254,7, - 240,248,7,240,240,7,224,112,15,192,48,15,192,28,31,0, - 15,252,0,22,34,102,28,3,1,0,255,128,3,192,192,7, - 192,96,15,128,240,31,131,240,31,7,240,63,15,240,63,15, - 240,127,15,224,127,7,192,127,3,0,127,0,0,255,0,0, - 255,0,0,255,63,0,255,255,192,255,195,224,255,131,240,255, - 3,248,255,1,248,255,1,252,255,1,252,255,1,252,127,1, - 252,127,1,252,127,1,252,127,1,252,63,1,248,63,1,248, - 31,1,248,15,129,240,7,131,224,3,195,192,1,255,0,20, - 34,102,28,5,1,71,224,224,207,240,224,223,248,112,255,252, - 48,255,254,48,255,255,240,255,255,240,224,31,176,192,0,32, - 192,0,96,128,0,96,128,0,192,128,1,192,0,1,128,0, - 3,128,0,7,0,0,15,0,0,14,0,0,30,0,0,60, - 0,0,124,0,0,252,0,1,252,0,1,248,0,3,248,0, - 3,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,7,248,0,3,248,0,3,240,0,23,34,102,28,3, - 1,1,255,128,7,0,192,12,0,96,28,0,48,56,0,24, - 56,0,24,120,0,24,120,0,24,124,0,24,126,0,24,127, - 0,48,127,192,32,127,240,96,63,255,128,63,255,0,31,255, - 192,15,255,240,7,255,248,15,255,248,24,63,252,48,15,252, - 112,3,254,96,0,254,224,0,126,224,0,62,224,0,30,224, - 0,30,224,0,12,240,0,28,112,0,24,56,0,24,28,0, - 48,15,0,192,3,255,0,22,34,102,28,3,1,3,254,0, - 15,15,0,31,7,128,62,7,192,126,3,224,126,3,240,126, - 3,240,254,3,248,254,3,248,254,3,248,254,3,248,254,3, - 252,254,3,252,254,3,252,126,3,252,127,7,252,63,7,252, - 31,15,252,15,255,252,3,243,252,0,3,252,0,3,252,0, - 3,248,7,3,248,31,131,248,31,195,248,63,195,240,63,195, - 240,63,131,224,62,7,224,60,7,192,28,15,128,14,31,0, - 7,252,0,8,22,22,14,3,1,126,255,255,255,255,126,0, - 0,0,0,0,0,0,0,0,0,126,255,255,255,255,126}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=25 dx=52 dy= 0 ascent=38 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35r[10247] U8G_FONT_SECTION("u8g_font_osb35r") = { - 0,133,60,215,242,35,12,220,29,224,32,127,246,38,245,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=15 dx=28 dy= 0 ascent=25 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18[7816] U8G_FONT_SECTION("u8g_font_osr18") = { - 0,68,33,235,248,18,4,197,10,125,32,255,250,25,249,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,7,0,0,3,18,18,7,2,250,224, - 224,224,0,64,64,64,64,64,64,64,64,224,224,224,224,224, - 224,9,18,36,15,3,253,4,0,4,0,4,0,31,0,53, - 0,100,128,229,128,197,128,196,0,196,0,196,0,228,128,100, - 128,53,0,31,0,4,0,4,0,4,0,14,18,36,19,2, - 0,0,248,1,132,3,4,2,12,6,0,6,0,6,0,62, - 0,7,224,6,0,6,0,6,0,6,0,6,0,116,4,140, - 4,139,248,112,240,11,11,22,15,2,2,159,32,113,192,64, - 64,128,96,128,32,128,32,128,32,128,32,64,64,96,192,159, - 32,15,18,36,15,0,0,252,126,56,24,24,16,28,16,12, - 32,14,64,6,64,7,128,3,128,63,240,3,0,3,0,63, - 240,3,0,3,0,3,0,3,0,31,224,1,23,23,7,3, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,0,128, - 128,128,128,128,128,128,128,128,10,23,46,17,3,251,30,0, - 33,0,35,0,35,0,32,0,48,0,28,0,46,0,71,0, - 131,128,129,192,192,192,224,64,112,64,56,128,29,0,6,0, - 3,0,3,0,49,0,49,0,34,0,28,0,7,2,2,11, - 2,15,198,198,19,18,54,21,1,0,3,248,0,12,6,0, - 16,225,0,33,28,128,67,12,64,70,4,64,134,4,32,134, - 0,32,134,0,32,134,0,32,134,0,32,134,8,32,67,8, - 64,67,8,64,32,240,128,16,1,0,12,6,0,3,248,0, - 7,8,8,11,2,10,240,200,24,104,136,154,100,252,6,10, - 10,12,3,1,32,68,136,136,136,136,136,136,68,32,13,6, - 12,15,1,3,255,248,0,8,0,8,0,8,0,8,0,8, - 7,1,1,11,2,6,254,19,18,54,21,1,0,3,248,0, - 12,6,0,31,225,0,35,24,128,67,24,64,67,24,64,131, - 24,32,131,24,32,131,224,32,131,16,32,131,24,32,131,24, - 32,67,26,64,67,26,64,47,142,128,16,1,0,12,6,0, - 3,248,0,7,1,1,11,2,15,254,7,7,7,15,4,11, - 56,68,130,130,130,68,56,22,18,54,24,1,255,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,255,255,252,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,0,0,0,0,0, - 255,255,252,7,10,10,11,2,8,124,134,134,230,6,8,16, - 96,66,254,7,11,11,12,3,7,120,132,198,198,4,120,14, - 70,198,134,120,4,4,4,11,5,13,48,48,96,128,14,19, - 38,17,2,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,64,192,64,128,64,132,163,252,158,56,128,0,128,0, - 192,0,192,0,192,0,224,0,64,0,11,22,44,14,2,252, - 63,224,120,128,248,128,248,128,248,128,248,128,248,128,120,128, - 8,128,8,128,8,128,8,128,8,128,8,128,8,128,8,128, - 8,128,8,128,8,128,8,128,8,128,8,128,3,3,3,7, - 2,7,224,224,224,5,5,5,11,3,251,64,48,24,24,240, - 6,11,11,12,3,7,16,16,240,48,48,48,48,48,48,48, - 252,6,9,9,10,2,9,112,136,132,132,132,132,72,48,252, - 7,10,10,13,3,1,8,68,68,34,34,34,34,68,68,136, - 18,18,54,23,3,0,16,4,0,240,12,0,48,8,0,48, - 16,0,48,16,0,48,32,0,48,96,0,48,67,0,48,135, - 0,48,139,0,253,11,0,3,19,0,2,19,0,6,35,0, - 4,63,192,8,3,0,24,3,0,16,15,192,17,18,54,22, - 3,0,16,4,0,240,8,0,48,8,0,48,16,0,48,16, - 0,48,32,0,48,64,0,48,78,0,48,179,128,48,161,128, - 253,49,128,3,17,128,2,3,0,4,6,0,4,8,0,8, - 16,128,24,49,128,16,63,128,18,18,54,23,3,0,120,4, - 0,134,12,0,198,8,0,4,16,0,120,16,0,12,32,0, - 6,96,0,198,67,0,198,135,0,142,139,0,121,11,0,2, - 19,0,2,19,0,4,35,0,12,63,192,8,3,0,16,3, - 0,16,15,192,9,18,36,12,1,250,28,0,28,0,28,0, - 0,0,28,0,34,0,34,0,6,0,4,0,24,0,48,0, - 96,0,227,0,195,128,192,128,224,128,97,0,62,0,18,24, - 72,20,2,0,6,0,0,6,0,0,3,0,0,0,128,0, - 0,0,0,0,0,0,0,128,0,0,192,0,1,192,0,1, - 192,0,1,224,0,3,224,0,2,96,0,2,112,0,6,112, - 0,4,48,0,4,56,0,12,24,0,15,248,0,24,28,0, - 16,12,0,16,14,0,48,14,0,254,63,192,18,24,72,20, - 2,0,0,16,0,0,48,0,0,96,0,0,64,0,0,128, - 0,0,0,0,0,128,0,0,192,0,1,192,0,1,192,0, - 1,224,0,3,224,0,2,96,0,2,112,0,6,112,0,4, - 48,0,4,56,0,12,56,0,15,248,0,24,28,0,16,12, - 0,16,14,0,48,14,0,254,63,192,18,24,72,20,2,0, - 0,128,0,0,192,0,1,96,0,2,48,0,4,8,0,0, - 0,0,0,128,0,0,192,0,1,192,0,1,192,0,1,224, - 0,3,224,0,2,96,0,2,112,0,6,112,0,4,48,0, - 4,56,0,12,56,0,15,248,0,24,28,0,16,12,0,16, - 12,0,48,14,0,254,63,192,18,23,69,20,2,0,3,144, - 0,5,240,0,0,0,0,0,0,0,0,0,0,0,128,0, - 0,128,0,1,192,0,1,192,0,1,224,0,3,224,0,2, - 96,0,2,112,0,6,112,0,4,48,0,12,56,0,12,56, - 0,15,248,0,24,28,0,16,28,0,16,12,0,48,14,0, - 254,63,192,18,23,69,20,1,0,6,24,0,6,24,0,2, - 16,0,0,0,0,0,0,0,0,192,0,0,192,0,0,192, - 0,1,224,0,1,224,0,1,96,0,2,112,0,2,112,0, - 2,48,0,4,56,0,4,24,0,12,24,0,15,252,0,8, - 12,0,24,12,0,24,14,0,56,6,0,254,63,192,17,24, - 72,20,2,0,1,192,0,2,32,0,2,32,0,2,32,0, - 1,192,0,0,0,0,0,128,0,0,128,0,1,192,0,1, - 192,0,1,192,0,2,224,0,2,96,0,2,96,0,4,112, - 0,4,112,0,12,48,0,8,56,0,15,248,0,24,28,0, - 16,28,0,16,12,0,48,14,0,254,127,128,24,18,54,26, - 0,0,0,127,255,0,28,7,0,28,3,0,44,1,0,44, - 1,0,76,17,0,76,16,0,140,48,0,143,240,1,12,48, - 3,12,16,2,12,17,7,252,17,4,12,1,8,12,1,8, - 12,3,24,12,7,254,63,255,14,24,48,18,2,250,7,132, - 24,108,32,60,96,28,96,12,192,12,192,4,192,0,192,0, - 192,0,192,0,192,4,96,4,96,4,96,8,48,24,24,48, - 7,192,2,0,3,128,0,192,0,192,8,192,7,128,15,24, - 48,18,1,0,4,0,6,0,3,0,1,128,0,0,0,0, - 255,254,24,6,24,2,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,15,24,48,18,1,0,0,48,0,48,0,96, - 0,192,0,0,0,0,255,254,24,14,24,6,24,2,24,2, - 24,34,24,32,24,96,31,224,24,96,24,32,24,32,24,34, - 24,2,24,2,24,6,24,14,255,254,15,24,48,18,1,0, - 0,128,1,192,3,64,6,48,8,8,0,0,255,254,24,6, - 24,2,24,2,24,2,24,34,24,32,24,96,31,224,24,96, - 24,32,24,32,24,34,24,2,24,2,24,6,24,14,255,254, - 15,23,46,18,1,0,6,48,6,48,4,16,0,0,0,0, - 255,254,24,14,24,6,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,8,24,24,10,1,0,64,96,48,16,8,0, - 255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,255,8,24,24,10,1,0,3,3,6,8,0,0,255,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,255, - 8,24,24,10,1,0,8,24,52,66,129,0,255,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,255,8,23, - 23,10,1,0,195,195,66,0,0,255,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,255,17,18,54,19,1, - 0,255,240,0,24,12,0,24,6,0,24,3,0,24,3,0, - 24,1,128,24,1,128,24,1,128,127,1,128,24,1,128,24, - 1,128,24,1,128,24,1,128,24,3,0,24,3,0,24,6, - 0,24,12,0,255,240,0,18,24,72,19,1,0,3,200,0, - 2,248,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 15,192,28,2,0,30,2,0,22,2,0,23,2,0,19,130, - 0,17,130,0,17,194,0,16,226,0,16,226,0,16,114,0, - 16,50,0,16,58,0,16,30,0,16,14,0,16,14,0,16, - 6,0,252,2,0,15,24,48,18,2,1,28,0,12,0,6, - 0,2,0,1,0,0,0,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,96,12,32,8,48,24,24,48,7,192,15,24,48,18,2, - 1,0,112,0,96,0,192,0,128,1,0,0,0,7,192,24, - 48,48,24,32,8,96,12,96,12,192,6,192,6,192,6,192, - 6,192,6,192,6,96,12,96,12,32,8,48,24,24,48,7, - 192,15,24,48,18,2,0,1,0,3,128,6,192,12,96,16, - 16,0,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,24,48,18,2,0,15,16,19, - 224,0,0,0,0,0,0,0,0,7,192,24,48,48,24,32, - 8,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,96,12,96,12,32,8,48,24,24,48,7,192,15,24,48, - 18,2,0,8,0,12,96,12,96,0,0,0,0,0,0,7, - 192,24,48,48,24,32,8,96,12,96,12,192,6,192,6,192, - 6,192,6,192,6,192,6,96,12,96,12,32,8,48,24,24, - 48,7,192,16,16,32,24,4,255,0,1,64,3,32,6,16, - 12,8,24,4,48,2,96,1,192,1,128,3,64,6,32,12, - 16,24,8,48,4,96,2,192,1,15,18,36,18,2,0,7, - 194,24,52,48,28,32,12,96,28,96,44,192,70,192,198,193, - 134,195,6,198,6,196,6,232,12,112,12,96,8,112,24,88, - 48,135,192,19,24,72,21,1,1,3,0,0,3,128,0,0, - 128,0,0,64,0,0,0,0,0,0,0,255,15,224,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,12,1,0,12,2,0,6,4,0,1,248, - 0,19,24,72,21,1,1,0,28,0,0,24,0,0,48,0, - 0,32,0,0,64,0,0,0,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,19, - 24,72,21,1,0,0,96,0,0,224,0,1,176,0,3,8, - 0,0,4,0,0,0,0,255,15,224,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,12,1,0,12,2,0,6,4,0,1,248,0,19,23,69, - 21,1,1,3,24,0,3,24,0,0,0,0,0,0,0,0, - 0,0,255,15,224,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,12,1,0,12, - 2,0,6,4,0,1,248,0,17,24,72,19,1,0,0,24, - 0,0,56,0,0,48,0,0,64,0,0,0,0,0,0,0, - 255,31,128,28,6,0,28,4,0,14,4,0,6,8,0,7, - 8,0,3,144,0,3,160,0,1,224,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,7,252,0,15,18,36,17,1,0,255,0,24,0, - 24,0,31,224,24,24,24,12,24,6,24,6,24,6,24,14, - 24,12,24,24,31,240,24,0,24,0,24,0,24,0,255,0, - 12,18,36,14,1,0,7,128,24,224,24,96,48,96,48,192, - 48,128,55,0,49,128,48,64,48,96,48,112,48,48,48,48, - 48,48,54,48,54,112,52,96,243,192,11,18,36,13,1,0, - 96,0,96,0,48,0,24,0,8,0,0,0,30,0,99,0, - 65,128,97,128,33,128,15,128,113,128,193,128,195,160,195,160, - 197,160,121,192,11,18,36,13,1,0,1,128,3,128,3,0, - 4,0,8,0,0,0,62,0,65,0,65,128,97,128,33,128, - 15,128,113,128,193,128,193,160,195,160,197,160,120,192,11,18, - 36,13,1,0,8,0,12,0,28,0,50,0,65,0,0,0, - 30,0,99,0,65,128,97,128,33,128,15,128,113,128,193,128, - 195,160,195,160,197,160,121,192,11,17,34,13,1,0,56,128, - 79,0,0,0,0,0,0,0,30,0,99,0,65,128,97,128, - 33,128,15,128,113,128,193,128,195,160,195,160,197,160,121,192, - 11,17,34,13,1,0,99,0,99,0,1,0,0,0,0,0, - 60,0,67,0,67,0,99,0,3,0,15,0,115,0,195,0, - 195,32,199,32,203,32,121,192,11,18,36,13,1,0,28,0, - 34,0,34,0,34,0,28,0,0,0,60,0,67,0,67,0, - 99,0,35,0,15,0,115,0,195,0,195,32,199,32,199,32, - 121,192,16,12,24,18,1,0,30,120,99,198,65,134,97,131, - 1,131,31,255,97,128,193,128,195,129,195,130,196,194,120,124, - 9,18,36,11,1,250,30,0,33,0,96,128,193,128,193,128, - 192,0,192,0,192,0,192,0,96,128,33,0,30,0,8,0, - 12,0,2,0,3,0,3,0,30,0,9,18,36,12,1,0, - 96,0,112,0,48,0,8,0,0,0,0,0,30,0,35,0, - 97,128,193,128,193,128,255,128,192,0,192,0,192,128,96,128, - 33,0,30,0,9,18,36,12,1,0,1,0,3,0,2,0, - 4,0,8,0,0,0,30,0,35,0,97,128,193,128,193,128, - 255,128,192,0,192,0,192,128,96,128,33,0,30,0,9,18, - 36,12,1,0,8,0,12,0,28,0,18,0,33,0,0,0, - 30,0,35,0,97,128,193,128,193,128,255,128,192,0,192,0, - 192,128,96,128,33,0,30,0,9,17,34,12,1,0,51,0, - 51,0,1,0,0,0,0,0,30,0,35,0,97,128,193,128, - 193,128,255,128,192,0,192,0,192,128,96,128,33,0,30,0, - 7,18,18,8,0,0,192,224,96,16,8,0,120,24,24,24, - 24,24,24,24,24,24,24,126,6,18,18,7,1,0,4,12, - 24,16,32,0,240,48,48,48,48,48,48,48,48,48,48,252, - 8,17,17,8,0,0,24,56,36,195,0,120,24,24,24,24, - 24,24,24,24,24,24,126,7,17,17,9,1,0,4,198,198, - 0,0,120,24,24,24,24,24,24,24,24,24,24,124,10,18, - 36,13,1,0,56,128,27,0,12,0,22,0,35,0,3,0, - 31,128,33,128,97,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,33,128,30,0,13,17,34,15,1,0,14,64, - 19,192,0,0,0,0,0,0,243,192,52,192,56,96,56,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,253,248, - 10,18,36,13,1,0,96,0,48,0,16,0,8,0,4,0, - 0,0,30,0,33,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,33,128,30,0,10,18,36,13,1,0, - 1,128,3,128,3,0,4,0,0,0,0,0,30,0,33,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 33,128,30,0,10,18,36,13,1,0,4,0,12,0,14,0, - 18,0,33,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,10,17, - 34,13,1,0,60,128,47,0,0,0,0,0,0,0,30,0, - 33,128,97,128,192,192,192,192,192,192,192,192,192,192,192,192, - 97,128,33,128,30,0,10,17,34,13,1,0,49,128,49,128, - 1,0,0,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,22,16, - 48,24,1,255,0,112,0,0,112,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,255,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,112, - 0,0,112,0,10,12,24,13,1,0,30,64,33,128,96,128, - 193,192,194,192,196,192,200,192,208,192,208,192,97,128,97,128, - 158,0,13,18,36,14,0,0,16,0,24,0,12,0,4,0, - 2,0,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,18,36,14, - 0,0,0,192,0,192,1,128,2,0,0,0,0,0,241,224, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,224, - 48,224,57,96,30,120,13,18,36,14,0,0,2,0,6,0, - 5,0,8,128,16,0,0,0,241,224,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,224,48,224,57,96,30,120, - 13,17,34,14,0,0,24,192,24,192,0,0,0,0,0,0, - 240,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,224,48,224,57,96,30,120,13,24,48,14,0,250,0,96, - 0,224,0,192,1,0,0,0,0,0,252,248,56,32,24,32, - 24,64,12,64,12,64,12,128,6,128,6,128,7,0,3,0, - 3,0,3,0,2,0,34,0,98,0,100,0,56,0,11,24, - 48,14,1,250,48,0,240,0,48,0,48,0,48,0,48,0, - 49,192,54,224,52,96,56,96,56,96,48,96,48,192,48,192, - 49,128,49,0,50,0,60,0,48,0,48,0,48,0,48,0, - 48,0,96,0,13,23,46,14,0,250,8,64,12,96,12,96, - 0,0,0,0,252,120,24,32,24,32,24,64,12,64,12,64, - 14,128,6,128,6,128,7,0,3,0,3,0,2,0,2,0, - 34,0,114,0,100,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y= 8 dx=24 dy= 0 ascent=18 len=66 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18n[613] U8G_FONT_SECTION("u8g_font_osr18n") = { - 0,68,33,235,248,18,0,0,0,0,42,58,0,18,250,18, - 0,10,10,20,14,2,8,12,0,12,0,204,192,201,192,43, - 0,28,0,123,128,201,192,12,0,12,0,22,22,66,24,1, - 252,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,255, - 255,252,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,3,8,8,7,2,252,192,224,224,32,32,64,64, - 128,7,1,1,11,2,6,254,3,3,3,7,2,0,224,224, - 224,8,24,24,12,2,250,1,1,2,2,2,4,4,4,12, - 8,8,24,16,16,16,32,32,32,64,64,64,128,128,128,12, - 18,36,15,1,0,15,0,16,192,32,64,96,96,96,32,192, - 48,192,48,192,48,192,48,192,48,192,48,192,48,192,48,96, - 32,96,96,32,64,16,192,15,0,9,18,36,15,3,0,8, - 0,8,0,24,0,248,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,255,128,10,18,36,15,2,0,30,0,99,128,129,192,128, - 192,128,192,224,192,240,192,32,192,1,128,3,0,6,0,8, - 0,16,0,32,0,64,64,192,64,255,192,255,192,11,18,36, - 15,2,0,63,0,97,128,192,192,224,192,240,192,0,192,0, - 192,1,128,62,0,1,128,0,192,0,96,96,96,240,96,240, - 96,192,192,65,128,63,0,12,18,36,15,2,0,1,0,3, - 0,3,0,7,0,15,0,11,0,19,0,51,0,35,0,67, - 0,195,0,131,0,255,224,3,0,3,0,3,0,3,0,31, - 240,11,18,36,15,2,0,96,192,127,128,126,0,64,0,64, - 0,64,0,95,0,97,128,64,192,64,224,0,96,0,96,96, - 96,240,96,224,192,192,192,65,128,62,0,11,18,36,15,2, - 0,15,0,24,128,48,64,96,192,96,192,64,0,192,0,207, - 0,209,192,224,192,224,224,224,96,224,96,224,96,96,224,96, - 192,49,128,15,0,10,18,36,15,3,0,255,192,255,192,128, - 64,128,64,128,128,0,128,1,0,1,0,2,0,6,0,6, - 0,12,0,12,0,30,0,30,0,30,0,30,0,14,0,12, - 18,36,15,2,0,31,128,48,224,96,96,192,48,192,48,224, - 48,240,32,124,64,63,128,55,224,96,240,192,112,192,48,192, - 48,192,48,96,96,112,192,31,128,11,18,36,15,2,0,30, - 0,49,128,96,192,224,192,192,64,192,96,192,96,192,224,96, - 224,113,96,30,96,0,96,0,64,96,192,96,192,64,128,65, - 0,62,0,3,12,12,7,2,0,224,224,224,0,0,0,0, - 0,0,224,224,224}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=28 dy= 0 ascent=20 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18r[3683] U8G_FONT_SECTION("u8g_font_osr18r") = { - 0,68,33,235,248,18,4,197,10,125,32,127,250,20,250,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 6 y=17 dx=32 dy= 0 ascent=28 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21[9530] U8G_FONT_SECTION("u8g_font_osr21") = { - 0,76,38,232,247,21,5,131,12,189,32,255,249,28,248,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,0,4,21,21,8,2,249,96,240,240,96,0,64,64,96, - 96,96,96,96,96,96,96,240,240,240,240,240,96,10,21,42, - 17,3,253,4,0,4,0,4,0,4,0,31,0,52,128,100, - 64,100,192,229,192,228,128,228,0,228,0,228,0,228,0,100, - 64,100,64,52,128,31,0,4,0,4,0,4,0,16,21,42, - 21,2,0,0,60,0,194,0,131,1,135,1,135,3,130,3, - 128,3,128,3,128,63,128,3,240,3,128,3,128,3,128,3, - 0,3,0,123,1,142,1,135,3,135,254,120,252,13,13,26, - 17,2,4,143,136,112,112,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,64,16,96,48,112,112,143,136,16,21,42, - 17,1,0,252,63,56,8,56,8,24,16,28,16,28,32,14, - 32,14,64,6,64,7,128,3,128,63,248,3,128,3,128,63, - 248,3,128,3,128,3,128,3,128,3,128,31,240,1,27,27, - 8,4,251,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,0,128,128,128,128,128,128,128,128,128,128,128,11,27, - 54,19,3,250,30,0,49,0,97,128,99,128,97,0,112,0, - 56,0,60,0,62,0,79,0,131,128,129,192,128,224,192,96, - 224,32,112,32,56,64,28,128,15,0,7,0,3,0,1,128, - 33,128,113,128,97,128,35,0,28,0,8,3,3,12,2,16, - 195,231,195,21,22,66,23,1,0,0,32,0,3,222,0,12, - 1,128,24,0,192,48,114,96,33,142,32,67,6,16,67,2, - 16,135,2,8,135,0,8,135,0,8,135,0,8,135,0,8, - 135,0,8,135,2,8,67,2,16,67,4,16,33,132,32,48, - 120,96,24,0,192,12,1,128,3,222,0,8,9,9,12,2, - 12,120,196,12,52,68,197,205,118,254,7,12,12,14,3,1, - 16,34,98,68,196,196,196,196,196,66,34,16,14,6,12,16, - 1,5,255,252,0,4,0,4,0,4,0,4,0,4,7,2, - 2,11,2,7,254,254,21,22,66,23,1,0,0,32,0,3, - 222,0,12,1,128,24,0,192,63,248,96,35,140,32,67,142, - 16,67,142,16,131,142,8,131,140,8,131,240,8,131,140,8, - 131,140,8,131,142,8,131,142,72,67,142,80,67,134,80,47, - 195,160,48,0,96,24,0,192,12,1,128,3,222,0,8,1, - 1,14,3,17,255,8,8,8,16,4,13,60,66,129,129,129, - 129,66,60,24,21,63,26,1,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,255,255,255,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0, - 0,0,0,0,0,255,255,255,8,13,13,13,3,8,60,198, - 135,199,231,6,12,24,48,65,193,255,255,9,13,26,13,3, - 8,60,0,70,0,67,0,99,0,3,0,6,0,120,0,7, - 0,3,0,227,128,227,0,135,0,124,0,5,5,5,13,6, - 16,24,56,48,96,128,15,22,44,18,2,248,192,64,192,96, - 224,224,192,224,192,224,192,96,192,96,192,96,64,96,64,64, - 64,66,192,194,177,190,143,28,128,0,128,0,192,0,192,0, - 192,0,224,0,224,0,96,0,12,26,52,16,2,251,31,240, - 124,64,252,64,252,64,252,64,252,64,252,64,124,64,60,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,4,4,8,2,8,96,240,240,96,6,7,7,13, - 3,250,32,32,48,8,12,140,120,6,12,12,13,4,9,16, - 48,240,48,48,48,48,48,48,48,48,252,7,10,10,11,2, - 11,56,68,198,198,198,198,198,68,56,254,8,12,12,14,3, - 1,8,132,70,66,35,35,35,35,34,70,68,8,19,21,63, - 25,4,0,16,3,0,48,2,0,240,4,0,48,4,0,48, - 8,0,48,8,0,48,16,0,48,48,0,48,32,0,48,65, - 128,48,67,128,48,131,128,252,133,128,1,9,128,3,9,128, - 2,17,128,4,31,224,4,1,128,8,1,128,8,1,128,16, - 7,224,19,21,63,25,4,0,16,2,0,48,2,0,240,4, - 0,48,4,0,48,8,0,48,16,0,48,16,0,48,32,0, - 48,39,128,48,72,192,48,80,224,48,144,224,252,156,224,1, - 12,192,2,0,192,2,1,0,4,6,0,4,12,32,8,8, - 32,8,31,224,16,31,224,20,21,63,25,3,0,60,1,0, - 70,1,0,67,2,0,99,2,0,3,4,0,6,12,0,120, - 8,0,7,16,0,3,16,0,227,160,192,227,33,192,135,65, - 192,124,130,192,0,132,192,1,4,192,1,8,192,2,15,240, - 2,0,192,4,0,192,8,0,192,8,3,240,11,21,42,14, - 1,249,12,0,30,0,30,0,12,0,0,0,14,0,17,0, - 17,0,17,0,2,0,6,0,28,0,56,0,112,0,224,192, - 225,224,225,224,224,32,96,32,112,64,31,128,20,28,84,22, - 1,0,3,0,0,3,128,0,1,128,0,0,192,0,0,64, - 0,0,0,0,0,0,0,0,32,0,0,96,0,0,96,0, - 0,112,0,0,240,0,0,240,0,0,184,0,1,56,0,1, - 56,0,3,28,0,3,28,0,2,28,0,6,14,0,6,14, - 0,7,254,0,12,7,0,12,7,0,8,7,0,24,3,128, - 24,3,128,255,31,240,20,28,84,22,1,0,0,4,0,0, - 12,0,0,24,0,0,48,0,0,32,0,0,0,0,0,0, - 0,0,32,0,0,96,0,0,96,0,0,112,0,0,240,0, - 0,240,0,1,184,0,1,56,0,1,56,0,3,28,0,3, - 28,0,2,28,0,6,14,0,6,14,0,7,254,0,12,7, - 0,12,7,0,8,7,0,24,3,128,24,3,128,255,31,240, - 20,28,84,22,1,0,0,32,0,0,96,0,0,240,0,1, - 152,0,3,4,0,0,0,0,0,0,0,0,32,0,0,96, - 0,0,96,0,0,112,0,0,240,0,0,240,0,0,184,0, - 1,56,0,1,56,0,3,28,0,3,28,0,2,28,0,6, - 14,0,6,14,0,7,254,0,12,7,0,12,7,0,8,7, - 0,24,3,128,24,3,128,255,31,240,20,27,81,22,1,0, - 1,228,0,3,252,0,2,56,0,0,0,0,0,0,0,0, - 0,0,0,32,0,0,96,0,0,96,0,0,112,0,0,240, - 0,0,240,0,0,184,0,1,184,0,1,56,0,3,28,0, - 3,28,0,2,28,0,6,14,0,6,14,0,7,254,0,12, - 7,0,12,7,0,8,7,0,24,3,128,24,3,128,255,31, - 240,19,27,81,22,2,0,6,24,0,7,28,0,6,24,0, - 0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0, - 224,0,0,224,0,1,224,0,1,224,0,1,112,0,3,112, - 0,2,48,0,2,56,0,6,56,0,4,24,0,4,28,0, - 12,28,0,15,252,0,8,14,0,24,14,0,24,6,0,24, - 7,0,56,7,0,254,31,224,20,28,84,23,2,0,0,96, - 0,1,152,0,1,8,0,1,8,0,1,152,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,96,0,0,240,0,0, - 240,0,0,240,0,1,184,0,1,56,0,1,56,0,3,28, - 0,2,28,0,2,28,0,6,14,0,4,14,0,15,254,0, - 8,7,0,8,7,0,24,7,0,24,3,128,56,3,128,255, - 31,240,27,21,84,30,1,0,0,63,255,224,0,15,0,224, - 0,15,0,96,0,31,0,96,0,23,0,32,0,55,0,32, - 0,39,8,32,0,103,8,0,0,71,8,0,0,199,24,0, - 0,135,248,0,1,7,24,0,3,7,8,0,2,7,8,32, - 7,255,8,32,4,7,0,32,12,7,0,32,8,7,0,96, - 24,7,0,96,56,7,1,224,255,63,255,224,15,28,56,19, - 2,250,15,226,16,54,48,30,32,14,96,6,96,6,224,6, - 224,2,224,0,224,0,224,0,224,0,224,0,224,2,96,2, - 96,2,96,4,32,4,48,12,24,8,6,112,1,128,1,0, - 1,192,0,96,0,112,8,96,7,192,17,28,84,20,2,0, - 4,0,0,6,0,0,3,0,0,1,0,0,0,128,0,0, - 0,0,0,0,0,255,255,128,28,3,128,28,3,128,28,1, - 128,28,1,128,28,0,128,28,32,128,28,32,0,28,32,0, - 28,96,0,31,224,0,28,96,0,28,32,0,28,32,128,28, - 32,128,28,0,128,28,1,128,28,1,128,28,3,128,28,7, - 128,255,255,128,17,28,84,20,2,0,0,24,0,0,56,0, - 0,48,0,0,96,0,0,128,0,0,0,0,0,0,0,255, - 255,128,28,3,128,28,3,128,28,1,128,28,1,128,28,0, - 128,28,32,128,28,32,0,28,32,0,28,96,0,31,224,0, - 28,96,0,28,32,0,28,32,128,28,32,128,28,0,128,28, - 1,128,28,1,128,28,3,128,28,7,128,255,255,128,17,28, - 84,20,2,0,0,128,0,0,192,0,1,192,0,2,32,0, - 4,24,0,0,0,0,0,0,0,255,255,128,28,3,128,28, - 3,128,28,1,128,28,1,128,28,0,128,28,32,128,28,32, - 0,28,32,0,28,96,0,31,224,0,28,96,0,28,32,0, - 28,32,128,28,32,128,28,0,128,28,1,128,28,1,128,28, - 3,128,28,7,128,255,255,128,17,27,81,20,2,0,6,48, - 0,7,56,0,6,48,0,0,0,0,0,0,0,0,0,0, - 255,255,128,28,7,128,28,3,128,28,1,128,28,1,128,28, - 1,128,28,32,128,28,32,0,28,32,0,28,96,0,31,224, - 0,28,96,0,28,32,0,28,32,128,28,32,128,28,1,0, - 28,1,128,28,1,128,28,3,128,28,7,128,255,255,128,8, - 28,28,12,2,0,192,224,96,48,24,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,28,56,12,2,0,1,0,3,0,6,0,4,0,8, - 0,0,0,0,0,255,128,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,8, - 28,28,12,2,0,8,24,28,38,193,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,27,54,11,2,0,195,0,227,128,195,0,0,0,0, - 0,0,0,255,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,0,19,21,63, - 22,2,0,255,248,0,28,6,0,28,3,0,28,1,128,28, - 1,192,28,0,192,28,0,192,28,0,224,28,0,224,255,128, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,192, - 28,0,192,28,1,128,28,1,128,28,3,0,28,6,0,255, - 248,0,20,27,81,23,2,0,1,226,0,3,254,0,2,28, - 0,0,0,0,0,0,0,0,0,0,252,7,240,28,0,128, - 30,0,128,31,0,128,23,0,128,19,128,128,19,192,128,17, - 192,128,16,224,128,16,240,128,16,112,128,16,56,128,16,56, - 128,16,28,128,16,30,128,16,14,128,16,7,128,16,7,128, - 16,3,128,16,1,128,254,1,128,17,28,84,20,2,0,12, - 0,0,14,0,0,6,0,0,3,0,0,1,128,0,0,0, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,28,84,20,2,0,0,24,0,0,56,0,0, - 112,0,0,64,0,0,128,0,0,0,0,0,128,0,7,112, - 0,24,8,0,16,12,0,48,6,0,96,6,0,96,3,0, - 96,3,0,224,3,0,224,3,0,224,3,0,224,3,128,224, - 3,128,224,3,0,224,3,0,96,3,0,96,3,0,96,6, - 0,48,6,0,16,12,0,24,8,0,7,240,0,17,28,84, - 20,2,0,0,128,0,1,128,0,3,192,0,6,32,0,12, - 16,0,0,8,0,0,128,0,7,112,0,24,8,0,16,12, - 0,48,6,0,96,6,0,96,3,0,96,3,0,224,3,0, - 224,3,0,224,3,0,224,3,128,224,3,128,224,3,0,224, - 3,0,96,3,0,96,3,0,96,6,0,48,6,0,16,12, - 0,24,8,0,7,240,0,17,27,81,20,2,0,7,136,0, - 15,248,0,8,112,0,0,0,0,0,0,0,0,128,0,7, - 112,0,24,8,0,16,12,0,48,6,0,96,6,0,96,3, - 0,96,3,0,224,3,0,224,3,0,224,3,0,224,3,128, - 224,3,128,224,3,0,224,3,0,96,3,0,96,3,0,96, - 6,0,48,6,0,16,12,0,24,8,0,7,240,0,17,27, - 81,20,2,0,12,48,0,14,56,0,12,48,0,0,0,0, - 0,0,0,0,128,0,7,112,0,24,8,0,16,12,0,48, - 6,0,96,6,0,96,3,0,96,3,0,224,3,0,224,3, - 0,224,3,0,224,3,128,224,3,128,224,3,0,224,3,0, - 96,3,0,96,3,0,96,6,0,48,6,0,16,12,0,24, - 8,0,7,240,0,18,18,54,27,5,255,128,0,192,192,1, - 128,96,3,0,48,6,0,24,12,0,12,24,0,6,48,0, - 3,96,0,1,192,0,1,192,0,3,96,0,6,48,0,12, - 24,0,24,12,0,48,6,0,96,3,0,64,1,128,128,0, - 192,17,21,63,20,2,1,7,241,0,8,15,0,16,14,0, - 48,6,0,96,14,0,96,27,0,96,19,0,224,35,0,224, - 99,0,224,195,128,225,131,128,225,3,0,226,3,0,230,3, - 0,236,3,0,104,3,0,112,6,0,112,6,0,112,12,0, - 88,8,0,143,240,0,20,28,84,23,2,0,3,0,0,3, - 128,0,1,128,0,0,192,0,0,32,0,0,0,0,0,0, - 0,255,7,240,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,12,0,128,12,1,0,6,2,0,3,252,0, - 20,28,84,23,2,0,0,4,0,0,12,0,0,24,0,0, - 16,0,0,32,0,0,0,0,0,0,0,255,7,240,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,12,0, - 128,12,1,0,6,2,0,3,252,0,20,28,84,23,2,0, - 0,32,0,0,96,0,0,112,0,0,136,0,3,4,0,0, - 0,0,0,0,0,255,7,240,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,12,1,128,12,1,0,6,2, - 0,3,252,0,20,27,81,23,2,0,1,134,0,3,142,0, - 1,134,0,0,0,0,0,0,0,0,0,0,255,131,240,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,12, - 0,128,12,1,0,6,2,0,3,252,0,19,28,84,21,1, - 0,0,4,0,0,12,0,0,24,0,0,16,0,0,32,0, - 0,0,0,0,0,0,255,143,224,30,3,128,14,3,0,14, - 2,0,7,2,0,7,4,0,3,132,0,1,200,0,1,200, - 0,0,240,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,254,0,17,21,63,20,2,0,255,128,0,28,0, - 0,28,0,0,31,240,0,28,12,0,28,6,0,28,3,0, - 28,3,0,28,3,128,28,3,128,28,3,0,28,3,0,28, - 6,0,28,12,0,31,240,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,255,128,0,13,21,42,15,1,0, - 7,192,12,96,24,112,56,112,56,112,56,96,56,192,59,0, - 56,192,56,96,56,48,56,48,56,56,56,56,56,56,56,56, - 58,56,63,56,62,48,60,48,251,192,13,21,42,15,1,0, - 96,0,96,0,48,0,24,0,8,0,4,0,0,0,31,0, - 97,128,65,192,97,192,113,192,1,192,15,192,49,192,97,192, - 193,192,193,200,195,200,196,216,56,240,13,21,42,15,1,0, - 0,192,1,192,1,128,3,0,6,0,4,0,0,0,31,0, - 33,128,96,192,112,192,112,192,0,192,7,192,56,192,96,192, - 224,192,224,200,225,200,226,216,60,112,13,21,42,15,1,0, - 4,0,12,0,14,0,26,0,17,0,32,128,0,0,31,0, - 33,128,97,192,113,192,113,192,1,192,15,192,49,192,97,192, - 225,192,225,200,225,200,226,216,60,240,13,20,40,15,1,0, - 24,0,63,128,71,128,0,0,0,0,0,0,31,0,33,128, - 97,192,113,192,113,192,1,192,15,192,49,192,97,192,225,192, - 225,200,225,200,226,216,60,240,13,20,40,15,1,0,97,128, - 97,192,97,128,0,0,0,0,0,0,30,0,97,128,64,128, - 96,128,96,192,0,192,15,192,48,192,96,192,192,192,193,200, - 194,200,194,216,60,112,13,21,42,15,1,0,14,0,49,0, - 33,0,33,0,19,0,14,0,0,0,30,0,33,128,97,128, - 97,128,113,192,1,192,15,192,113,192,97,192,225,192,225,200, - 227,200,229,216,120,240,18,14,42,20,1,0,31,30,0,97, - 227,0,65,227,0,97,193,128,113,193,128,1,193,128,15,255, - 192,113,192,0,65,192,0,193,192,128,193,192,128,194,224,128, - 194,97,0,60,62,0,10,20,40,12,1,250,31,0,48,128, - 96,192,96,192,225,192,224,128,224,0,224,0,224,0,224,64, - 96,64,96,128,48,128,31,0,8,0,12,0,3,0,3,0, - 3,0,30,0,10,21,42,13,1,0,96,0,112,0,56,0, - 24,0,4,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,0,192,1,192,1,128, - 3,0,6,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,4,0,4,0,14,0, - 11,0,17,0,32,128,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,20,40,13,1,0,49,128,113,192,49,128, - 0,0,0,0,0,0,30,0,49,128,97,128,96,192,224,192, - 224,192,255,192,224,0,224,0,224,64,96,64,96,64,48,128, - 31,0,7,21,21,8,0,0,192,192,96,48,24,0,0,124, - 28,28,28,28,28,28,28,28,28,28,28,28,126,7,21,21, - 8,1,0,6,14,12,24,16,0,0,248,56,56,56,56,56, - 56,56,56,56,56,56,56,252,7,20,20,9,1,0,48,48, - 104,132,2,0,248,56,56,56,56,56,56,56,56,56,56,56, - 56,252,8,19,19,9,1,0,198,231,198,0,0,124,28,28, - 28,28,28,28,28,28,28,28,28,28,126,12,21,42,14,1, - 0,56,64,29,128,14,0,15,0,19,0,33,128,1,192,15, - 192,48,224,96,224,96,96,224,96,224,112,224,112,224,96,224, - 96,224,96,96,96,96,192,48,128,15,0,14,20,40,16,1, - 0,14,32,15,32,19,192,16,192,0,0,0,0,249,192,62, - 96,60,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,252,252,12,21,42,14,1,0,32, - 0,48,0,24,0,8,0,4,0,0,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,0, - 192,1,192,1,128,3,0,2,0,4,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,4, - 0,6,0,14,0,11,0,16,128,32,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,20,40,14,1,0,28, - 64,63,192,39,128,0,0,0,0,0,0,15,0,48,128,96, - 192,96,96,224,96,224,96,224,112,224,112,224,96,224,96,96, - 96,96,192,48,128,15,0,12,20,40,14,1,0,48,192,57, - 192,48,192,0,0,0,0,0,0,15,0,48,128,96,192,96, - 96,224,96,224,96,224,112,224,112,224,96,224,96,96,96,96, - 192,48,128,15,0,24,19,57,26,1,254,0,24,0,0,60, - 0,0,60,0,0,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,24,0,0,60,0,0,60, - 0,0,24,0,12,14,28,14,1,0,15,32,48,160,96,192, - 96,224,225,96,227,96,226,112,228,112,232,96,240,96,96,96, - 96,192,112,128,143,0,14,21,42,16,1,0,24,0,24,0, - 12,0,6,0,2,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,0,96,0,224, - 0,192,1,128,1,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,2,0,3,0, - 7,0,4,128,8,64,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,20,40,16,1,0,24,96,28,224, - 24,96,0,0,0,0,0,0,248,240,56,112,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,240, - 25,112,14,124,14,28,56,15,0,249,0,48,0,112,0,96, - 0,192,1,128,0,0,0,0,254,124,24,16,24,16,28,16, - 12,32,12,32,14,32,6,64,6,64,6,64,3,128,3,128, - 3,128,1,128,1,0,1,0,1,0,98,0,114,0,100,0, - 56,0,12,28,56,14,1,249,56,0,248,0,56,0,56,0, - 56,0,56,0,56,0,57,224,62,112,60,112,56,112,56,112, - 56,112,56,96,56,96,56,192,56,128,57,128,58,0,60,0, - 56,0,56,0,56,0,56,0,56,0,56,0,48,0,192,0, - 14,26,52,15,0,249,12,48,14,112,12,48,0,0,0,0, - 254,60,24,16,24,16,28,32,12,32,12,32,14,32,6,64, - 6,64,7,64,3,128,3,128,3,128,1,0,1,0,1,0, - 1,0,114,0,114,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=28 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21n[722] U8G_FONT_SECTION("u8g_font_osr21n") = { - 0,76,38,232,247,21,0,0,0,0,42,58,0,22,250,21, - 0,10,12,24,14,2,9,12,0,14,0,204,64,228,192,117, - 192,14,0,30,0,229,192,196,192,12,0,14,0,12,0,24, - 25,75,26,1,252,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,255,255,255,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 4,8,8,8,2,251,224,240,240,16,16,16,32,64,7,2, - 2,11,2,7,254,254,4,4,4,8,2,0,96,240,240,96, - 9,28,56,13,2,250,0,128,0,128,1,128,1,0,1,0, - 1,0,2,0,2,0,2,0,6,0,4,0,4,0,12,0, - 8,0,8,0,24,0,16,0,16,0,16,0,32,0,32,0, - 32,0,64,0,64,0,64,0,192,0,128,0,128,0,14,21, - 42,17,1,0,7,128,24,64,48,32,32,48,96,16,96,24, - 96,24,224,24,224,24,224,24,224,28,224,28,224,24,224,24, - 224,24,96,24,96,24,96,48,48,32,16,96,15,192,10,21, - 42,17,3,0,2,0,6,0,6,0,14,0,254,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,12,21, - 42,17,2,0,31,0,32,192,64,96,128,112,128,112,192,112, - 240,112,112,112,32,96,0,224,0,192,1,0,6,0,12,0, - 24,0,48,16,96,16,64,16,224,112,255,240,255,240,12,21, - 42,17,2,0,31,0,97,192,192,224,224,96,240,96,112,112, - 0,96,0,96,0,224,48,192,63,0,0,192,0,96,0,112, - 0,112,96,112,240,112,240,112,192,96,192,192,127,128,14,21, - 42,17,2,0,0,64,0,192,1,192,1,192,3,192,7,192, - 5,192,13,192,9,192,17,192,49,192,33,192,65,192,193,192, - 255,252,1,192,1,192,1,192,1,192,1,192,15,252,12,21, - 42,17,2,0,96,64,127,128,127,0,64,0,64,0,64,0, - 64,0,95,0,96,192,64,96,64,96,0,112,0,112,0,112, - 96,112,240,112,240,112,224,96,192,224,64,192,63,128,12,21, - 42,17,2,0,7,128,24,64,16,96,48,224,96,224,96,192, - 96,0,224,0,231,128,232,192,240,96,240,96,224,112,224,112, - 224,112,224,112,96,112,96,96,112,96,48,192,31,128,11,21, - 42,17,3,0,255,224,255,224,192,32,128,32,128,64,128,64, - 0,64,0,128,1,0,1,0,2,0,6,0,6,0,12,0, - 12,0,12,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,17,2,0,15,128,48,96,96,48,224,24,224,24,224,24, - 224,24,240,16,124,32,63,192,15,224,51,240,96,248,224,56, - 224,28,224,28,224,24,224,24,96,24,112,48,31,192,12,21, - 42,17,2,0,15,0,48,128,96,64,96,96,224,96,224,96, - 224,112,224,112,224,112,96,112,96,240,49,176,14,48,0,48, - 0,32,48,96,112,96,112,64,96,192,96,128,63,0,4,14, - 14,8,2,0,96,240,240,96,0,0,0,0,0,0,96,240, - 240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 4 y=17 dx=32 dy= 0 ascent=23 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21r[4396] U8G_FONT_SECTION("u8g_font_osr21r") = { - 0,76,38,232,247,21,5,131,12,189,32,127,249,23,249,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=35 x= 7 y=21 dx=38 dy= 0 ascent=35 len=140 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =35 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26[13186] U8G_FONT_SECTION("u8g_font_osr26") = { - 0,94,46,227,245,26,7,96,17,82,32,255,248,35,246,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,0,4,25,25,10,3,248,96,240,240, - 240,96,64,64,96,96,96,96,96,96,96,96,96,96,240,240, - 240,240,240,240,240,96,12,25,50,21,4,252,1,0,1,0, - 1,0,1,0,7,192,25,32,57,48,113,48,113,112,225,112, - 225,32,225,0,225,0,225,0,225,0,225,0,113,16,113,16, - 57,16,29,32,7,192,1,0,1,0,1,0,1,0,20,25, - 75,25,2,0,0,15,128,0,24,96,0,48,32,0,96,112, - 0,192,240,0,192,240,1,192,224,1,192,0,1,192,0,1, - 192,0,1,192,0,63,192,0,1,254,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,57,128,16, - 199,128,16,131,128,48,131,224,96,134,255,192,120,63,128,18, - 16,48,22,2,5,195,241,192,124,15,128,48,7,0,32,3, - 0,96,1,0,64,1,128,64,0,128,64,0,128,64,0,128, - 64,0,128,64,1,128,96,1,0,32,3,0,48,7,0,124, - 15,128,227,241,192,20,25,75,22,1,0,255,7,240,60,1, - 192,28,1,128,30,1,0,14,3,0,15,2,0,7,6,0, - 7,132,0,3,140,0,3,136,0,1,216,0,1,208,0,1, - 224,0,31,255,0,0,224,0,0,224,0,31,255,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,15,254,0,2,33,33,10,4,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,13,32,64, - 23,4,249,7,128,24,64,16,96,48,224,48,224,48,64,56, - 0,28,0,30,0,15,0,23,128,99,192,129,224,128,240,128, - 120,128,24,192,24,224,8,120,8,60,16,30,32,15,64,7, - 128,3,192,1,192,0,224,16,96,56,96,56,96,48,64,16, - 192,15,0,10,4,8,16,3,20,96,192,225,192,225,192,96, - 192,26,26,104,30,2,1,0,255,192,0,3,0,48,0,4, - 0,8,0,8,0,4,0,16,30,2,0,32,113,225,0,32, - 224,225,0,65,192,96,128,65,192,96,128,129,128,32,64,131, - 128,32,64,131,128,0,64,131,128,0,64,131,128,0,64,131, - 128,0,64,131,128,0,64,131,128,32,64,65,192,64,128,65, - 192,64,128,32,224,65,0,32,112,129,0,16,31,2,0,8, - 0,4,0,4,0,8,0,3,0,48,0,0,255,192,0,9, - 13,26,13,2,12,120,0,132,0,198,0,198,0,14,0,54, - 0,70,0,198,0,198,128,206,128,115,0,0,0,255,0,10, - 14,28,18,4,2,16,64,48,128,97,128,97,0,195,0,195, - 0,195,0,195,0,195,0,67,0,97,0,32,128,16,192,8, - 0,18,7,21,22,2,6,255,255,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,9,2,4,13, - 2,8,255,128,255,128,26,26,104,30,2,1,0,255,192,0, - 3,0,48,0,4,0,8,0,8,0,4,0,19,255,2,0, - 32,225,193,0,32,224,225,0,64,224,224,128,64,224,224,128, - 128,224,224,64,128,224,224,64,128,225,192,64,128,254,0,64, - 128,225,128,64,128,224,192,64,128,224,224,64,128,224,224,64, - 64,224,228,128,64,224,228,128,32,224,233,0,35,248,121,0, - 16,0,2,0,8,0,4,0,4,0,8,0,3,0,48,0, - 0,255,192,0,9,1,2,15,3,21,255,128,10,9,18,22, - 6,16,30,0,97,128,192,128,128,64,128,64,128,64,64,128, - 97,128,30,0,30,25,100,34,2,255,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,255,255,255,252,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,255,252,10,15, - 30,16,3,10,63,0,67,128,129,192,129,192,225,192,225,192, - 1,128,3,0,6,0,8,0,48,0,64,64,64,64,255,192, - 255,192,10,16,32,16,4,9,62,0,67,0,193,128,225,128, - 225,128,1,128,3,0,124,0,3,128,1,192,1,192,225,192, - 225,192,129,192,131,128,126,0,6,6,6,16,7,19,12,28, - 56,48,96,192,19,27,81,22,2,246,96,24,0,224,60,0, - 224,60,0,224,60,0,224,60,0,224,60,0,224,60,0,224, - 60,0,224,60,0,192,24,0,64,24,0,64,24,0,64,56, - 0,96,48,32,112,124,96,95,231,224,71,195,192,128,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,224,0,0,224, - 0,0,224,0,0,240,0,0,96,0,0,15,31,62,19,2, - 251,31,254,62,16,126,16,254,16,254,16,254,16,254,16,254, - 16,254,16,126,16,62,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4, - 5,5,10,3,9,96,240,240,240,96,7,7,7,16,4,248, - 16,32,28,6,6,134,124,8,15,15,16,4,10,8,24,248, - 24,24,24,24,24,24,24,24,24,24,24,255,9,13,26,15, - 3,12,28,0,99,0,67,0,193,128,193,128,193,128,193,128, - 193,128,67,0,99,0,28,0,0,0,255,128,9,14,28,17, - 4,2,132,0,66,0,99,0,33,0,49,128,49,128,49,128, - 49,128,49,128,33,128,99,0,67,0,134,0,4,0,24,25, - 75,31,4,0,8,0,16,24,0,48,248,0,32,24,0,64, - 24,0,64,24,0,128,24,1,128,24,1,0,24,2,0,24, - 6,0,24,4,12,24,8,28,24,8,28,24,16,44,255,48, - 76,0,32,76,0,64,140,0,192,140,0,129,12,1,2,12, - 1,3,255,2,0,12,6,0,12,4,0,12,8,0,127,24, - 25,75,31,4,0,8,0,32,24,0,96,248,0,64,24,0, - 192,24,0,128,24,1,0,24,1,0,24,2,0,24,6,0, - 24,4,0,24,12,248,24,9,14,24,18,15,24,18,7,255, - 35,135,0,97,135,0,64,14,0,128,12,0,128,24,1,0, - 32,3,0,193,2,1,1,6,1,1,4,3,255,8,3,254, - 24,25,75,31,4,0,62,0,32,67,0,32,193,128,64,225, - 128,192,1,128,128,3,1,128,124,1,0,3,130,0,1,194, - 0,1,196,0,225,204,24,225,200,24,129,208,56,131,144,88, - 126,32,88,0,96,152,0,64,152,0,193,24,0,129,24,1, - 2,24,3,3,255,2,0,24,6,0,24,4,0,24,8,0, - 127,13,25,50,17,1,248,6,0,15,0,15,0,15,0,6, - 0,7,0,8,192,16,64,16,64,16,192,0,128,1,0,7, - 0,14,0,28,0,56,0,112,0,240,112,224,120,224,120,224, - 24,224,24,112,16,56,96,15,192,25,34,136,28,2,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,48,0,0,0, - 24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,12,0,0,0,28,0,0,0,28,0,0,0, - 30,0,0,0,62,0,0,0,46,0,0,0,47,0,0,0, - 103,0,0,0,103,0,0,0,71,128,0,0,195,128,0,0, - 195,128,0,0,131,192,0,1,129,192,0,1,129,192,0,3, - 1,224,0,3,255,224,0,2,0,224,0,6,0,240,0,6, - 0,112,0,6,0,112,0,12,0,120,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,34,136,28,2,0,0,0,192, - 0,0,1,192,0,0,3,128,0,0,7,0,0,0,6,0, - 0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0, - 0,0,12,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,46,0,0,0,47,0,0,0,103,0, - 0,0,103,0,0,0,71,128,0,0,195,128,0,0,195,128, - 0,1,131,192,0,1,129,192,0,1,129,192,0,3,1,224, - 0,3,255,224,0,2,0,224,0,6,0,240,0,6,0,112, - 0,4,0,112,0,12,0,120,0,12,0,56,0,30,0,124, - 0,255,195,255,128,25,34,136,28,2,0,0,8,0,0,0, - 28,0,0,0,30,0,0,0,51,0,0,0,65,128,0,1, - 128,64,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 12,0,0,0,28,0,0,0,28,0,0,0,30,0,0,0, - 62,0,0,0,46,0,0,0,47,0,0,0,103,0,0,0, - 103,0,0,0,71,128,0,0,195,128,0,0,195,128,0,0, - 131,192,0,1,129,192,0,1,129,192,0,3,1,224,0,3, - 255,224,0,2,0,224,0,6,0,240,0,6,0,112,0,6, - 0,112,0,12,0,120,0,12,0,120,0,30,0,120,0,255, - 195,255,128,25,33,132,28,2,0,0,112,64,0,0,252,64, - 0,0,159,192,0,1,7,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,12,0,0,0,28,0, - 0,0,28,0,0,0,30,0,0,0,62,0,0,0,46,0, - 0,0,47,0,0,0,103,0,0,0,103,0,0,0,71,128, - 0,0,195,128,0,0,195,128,0,1,131,192,0,1,129,192, - 0,1,129,192,0,3,1,224,0,3,255,224,0,2,0,224, - 0,6,0,240,0,6,0,112,0,4,0,112,0,12,0,120, - 0,12,0,56,0,30,0,124,0,255,195,255,128,25,33,132, - 28,2,0,0,193,128,0,1,193,192,0,1,193,192,0,0, - 193,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,24,0,0,0,28,0,0,0,28,0,0,0, - 60,0,0,0,62,0,0,0,62,0,0,0,110,0,0,0, - 79,0,0,0,71,0,0,0,199,0,0,0,199,128,0,0, - 131,128,0,1,131,128,0,1,129,192,0,1,1,192,0,3, - 1,192,0,3,255,224,0,2,0,224,0,6,0,224,0,6, - 0,112,0,4,0,112,0,12,0,112,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,35,140,28,2,0,0,28,0, - 0,0,34,0,0,0,65,0,0,0,65,0,0,0,65,0, - 0,0,65,0,0,0,34,0,0,0,28,0,0,0,0,0, - 0,0,8,0,0,0,12,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,62,0,0,0,46,0,0,0,47,0, - 0,0,111,0,0,0,71,0,0,0,71,128,0,0,199,128, - 0,0,131,128,0,1,131,192,0,1,131,192,0,1,1,192, - 0,3,1,224,0,3,255,224,0,2,0,224,0,6,0,240, - 0,6,0,240,0,4,0,112,0,12,0,120,0,12,0,120, - 0,28,0,120,0,255,195,255,128,33,26,130,36,1,0,0, - 7,255,255,128,0,1,224,7,128,0,1,224,3,128,0,3, - 224,1,128,0,2,224,1,128,0,6,224,0,128,0,4,224, - 0,128,0,12,224,32,128,0,8,224,32,0,0,24,224,32, - 0,0,16,224,96,0,0,48,224,96,0,0,48,255,224,0, - 0,96,224,96,0,0,96,224,96,0,0,192,224,32,0,0, - 192,224,32,128,1,255,224,32,128,1,0,224,0,128,3,0, - 224,0,128,2,0,224,1,128,6,0,224,1,128,6,0,224, - 1,128,14,0,224,3,128,30,0,224,15,128,255,199,255,255, - 128,19,34,102,24,3,249,3,252,64,14,6,96,28,3,224, - 24,1,224,56,0,224,120,0,224,112,0,96,112,0,96,240, - 0,96,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,32,112,0,32, - 120,0,96,56,0,64,56,0,64,24,0,128,12,0,128,6, - 3,0,3,204,0,0,112,0,0,64,0,0,240,0,0,28, - 0,0,28,0,0,28,0,2,28,0,1,240,0,21,34,102, - 25,2,0,3,0,0,3,128,0,1,192,0,0,192,0,0, - 96,0,0,16,0,0,0,0,0,0,0,255,255,248,14,0, - 120,14,0,56,14,0,24,14,0,24,14,0,8,14,0,8, - 14,4,8,14,4,0,14,4,0,14,12,0,14,12,0,15, - 252,0,14,12,0,14,4,0,14,4,0,14,4,8,14,4, - 8,14,0,8,14,0,8,14,0,24,14,0,24,14,0,56, - 14,0,56,14,0,248,255,255,248,21,34,102,25,2,0,0, - 3,0,0,7,128,0,7,0,0,12,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,255,248,14,0,120,14,0,56, - 14,0,24,14,0,24,14,0,8,14,0,8,14,4,8,14, - 4,0,14,4,0,14,12,0,14,12,0,15,252,0,14,12, - 0,14,4,0,14,4,0,14,4,8,14,4,8,14,0,8, - 14,0,8,14,0,24,14,0,24,14,0,56,14,0,56,14, - 0,248,255,255,248,21,34,102,25,2,0,0,48,0,0,48, - 0,0,120,0,0,204,0,1,134,0,2,1,128,0,0,0, - 0,0,0,255,255,248,14,0,120,14,0,56,14,0,24,14, - 0,24,14,0,8,14,0,8,14,4,8,14,4,0,14,4, - 0,14,12,0,14,12,0,15,252,0,14,12,0,14,4,0, - 14,4,0,14,4,8,14,4,8,14,0,8,14,0,8,14, - 0,24,14,0,24,14,0,56,14,0,56,14,0,248,255,255, - 248,21,33,99,25,2,0,1,131,0,3,135,0,3,135,0, - 1,131,0,0,0,0,0,0,0,0,0,0,255,255,248,14, - 0,120,14,0,56,14,0,24,14,0,24,14,0,8,14,0, - 8,14,4,8,14,4,0,14,4,0,14,12,0,14,12,0, - 15,252,0,14,12,0,14,4,0,14,4,0,14,4,8,14, - 4,8,14,0,8,14,0,8,14,0,24,14,0,24,14,0, - 56,14,0,56,14,0,248,255,255,248,10,34,68,14,2,0, - 192,0,224,0,112,0,56,0,8,0,4,0,0,0,0,0, - 255,192,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,192,10,34,68,14,2,0,0,192,1,192,1,128, - 3,0,6,0,4,0,0,0,0,0,255,192,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,10,34, - 68,14,2,0,4,0,14,0,30,0,59,0,97,128,128,64, - 0,0,0,0,255,192,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,255,192,11,33,66,14,2,0,96,192, - 224,224,224,224,96,192,0,0,0,0,0,0,127,224,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,127,224, - 24,26,78,27,2,0,255,255,0,14,0,192,14,0,112,14, - 0,56,14,0,60,14,0,28,14,0,30,14,0,30,14,0, - 14,14,0,15,14,0,15,14,0,15,255,224,15,14,0,15, - 14,0,15,14,0,15,14,0,15,14,0,14,14,0,30,14, - 0,30,14,0,28,14,0,56,14,0,56,14,0,112,14,0, - 192,255,255,0,25,33,132,28,2,0,0,120,32,0,0,254, - 96,0,0,143,192,0,0,131,128,0,0,0,0,0,0,0, - 0,0,0,0,0,0,254,0,255,128,15,0,28,0,15,128, - 8,0,15,128,8,0,11,192,8,0,11,192,8,0,9,224, - 8,0,8,240,8,0,8,240,8,0,8,120,8,0,8,60, - 8,0,8,60,8,0,8,30,8,0,8,30,8,0,8,15, - 8,0,8,7,136,0,8,7,136,0,8,3,200,0,8,1, - 232,0,8,1,232,0,8,0,248,0,8,0,120,0,8,0, - 120,0,8,0,56,0,28,0,24,0,255,128,24,0,21,34, - 102,26,3,0,3,0,0,7,0,0,3,128,0,1,192,0, - 0,64,0,0,32,0,0,0,0,0,32,0,3,220,0,6, - 3,0,12,1,128,28,1,192,56,0,224,56,0,224,120,0, - 240,112,0,112,112,0,112,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,240,0,120,112, - 0,112,112,0,112,120,0,240,56,0,224,56,0,224,28,1, - 192,12,1,128,6,3,0,3,254,0,21,34,102,26,3,0, - 0,6,0,0,7,0,0,14,0,0,28,0,0,16,0,0, - 32,0,0,0,0,0,32,0,3,220,0,6,3,0,12,1, - 128,28,1,192,56,0,224,56,0,224,120,0,240,112,0,112, - 112,0,112,240,0,120,240,0,120,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,112,0,112,112,0, - 112,120,0,240,56,0,224,56,0,224,28,1,192,12,1,128, - 6,3,0,3,254,0,21,34,102,26,3,0,0,32,0,0, - 112,0,0,112,0,0,216,0,1,4,0,6,3,0,0,0, - 0,0,32,0,3,220,0,6,3,0,12,1,128,28,1,192, - 56,0,224,56,0,224,120,0,240,112,0,112,112,0,112,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,112,0,112,112,0,112,120,0,240, - 56,0,224,56,0,224,28,1,192,12,1,128,6,3,0,3, - 254,0,21,33,99,26,3,0,3,225,0,3,255,0,4,62, - 0,0,0,0,0,0,0,0,0,0,0,32,0,3,220,0, - 6,3,0,12,1,128,28,1,192,56,0,224,56,0,224,120, - 0,240,112,0,112,112,0,112,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 112,0,112,112,0,112,120,0,240,56,0,224,56,0,224,28, - 1,192,12,1,128,6,3,0,3,254,0,21,33,99,26,3, - 0,3,6,0,7,7,0,7,7,0,3,6,0,0,0,0, - 0,0,0,0,32,0,3,220,0,6,3,0,12,1,128,28, - 1,192,56,0,224,56,0,224,120,0,240,112,0,112,112,0, - 112,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,112,0,112,112,0,112,120, - 0,240,56,0,224,56,0,224,28,1,192,12,1,128,6,3, - 0,3,254,0,22,23,69,34,6,254,128,0,4,192,0,12, - 96,0,24,48,0,48,24,0,96,12,0,192,6,1,128,3, - 3,0,1,134,0,0,204,0,0,120,0,0,48,0,0,120, - 0,0,204,0,1,134,0,3,3,0,6,1,128,12,0,192, - 24,0,96,48,0,48,96,0,24,192,0,12,128,0,0,21, - 27,81,26,3,0,0,32,0,3,222,24,6,3,48,12,1, - 224,28,1,192,56,0,224,56,1,224,120,3,240,112,2,112, - 112,6,112,240,12,120,240,24,120,240,16,120,240,48,120,240, - 96,120,240,192,120,240,192,120,241,128,120,115,0,112,114,0, - 112,126,0,240,60,0,224,56,0,224,28,1,192,60,1,128, - 102,3,0,195,222,0,25,34,136,29,2,0,0,192,0,0, - 0,224,0,0,0,224,0,0,0,48,0,0,0,16,0,0, - 0,8,0,0,0,0,0,0,0,0,0,0,255,192,255,128, - 14,0,14,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 6,0,8,0,7,0,8,0,3,0,16,0,1,192,32,0, - 0,127,192,0,25,34,136,29,2,0,0,0,192,0,0,1, - 192,0,0,3,128,0,0,7,0,0,0,4,0,0,0,8, - 0,0,0,0,0,0,0,0,0,0,255,192,255,128,14,0, - 14,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,6,0, - 8,0,7,0,8,0,3,0,16,0,1,192,32,0,0,127, - 192,0,25,34,136,29,2,0,0,8,0,0,0,28,0,0, - 0,30,0,0,0,55,0,0,0,65,128,0,1,128,96,0, - 0,0,0,0,0,0,0,0,255,192,255,128,14,0,14,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,6,0,8,0, - 7,0,8,0,3,128,16,0,1,192,96,0,0,127,192,0, - 25,33,132,29,2,0,0,192,192,0,0,225,192,0,0,225, - 192,0,0,192,192,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,192,255,128,14,0,14,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,6,0,8,0,7,0,8,0,3,0, - 16,0,1,192,32,0,0,127,192,0,24,34,102,27,2,0, - 0,0,192,0,1,192,0,3,128,0,7,0,0,4,0,0, - 8,0,0,0,0,0,0,0,255,225,255,31,0,56,15,0, - 48,7,128,48,7,128,32,3,192,96,3,192,64,1,224,128, - 0,224,128,0,241,0,0,113,0,0,122,0,0,58,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,1,255,224,21,26,78,25,2,0,255,224,0,14, - 0,0,14,0,0,14,0,0,14,0,0,15,255,0,14,1, - 192,14,0,224,14,0,240,14,0,120,14,0,120,14,0,120, - 14,0,120,14,0,120,14,0,240,14,0,224,14,1,192,15, - 255,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,255,224,0,16,26,52,19,1,0, - 1,240,3,28,6,14,14,14,28,14,28,14,28,12,28,28, - 28,48,29,192,28,48,28,24,28,12,28,14,28,6,28,7, - 28,7,28,7,28,7,28,7,28,135,29,199,29,199,29,142, - 29,140,252,120,16,25,50,19,2,1,112,0,112,0,56,0, - 28,0,12,0,2,0,0,0,0,0,15,128,48,224,32,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,25,50,19, - 2,1,0,112,0,240,0,224,1,128,3,0,2,0,0,0, - 0,0,15,128,48,224,96,112,96,112,120,112,120,112,0,112, - 1,240,30,112,112,112,96,112,224,112,224,113,224,241,225,113, - 113,126,62,60,16,25,50,19,2,0,6,0,7,0,7,0, - 13,128,24,192,48,96,0,0,0,0,15,128,48,224,96,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,24,48,19, - 2,0,30,48,63,224,35,192,0,0,0,0,0,0,0,0, - 15,128,48,224,96,112,96,112,120,112,120,112,0,112,1,240, - 30,112,112,112,96,112,224,112,224,113,224,241,225,113,113,126, - 62,60,16,24,48,19,2,0,48,96,112,224,112,224,48,96, - 0,0,0,0,0,0,15,0,48,192,96,96,96,96,112,96, - 112,96,0,96,1,224,30,96,112,96,96,96,224,96,224,97, - 224,225,225,99,113,126,62,60,16,25,50,19,2,0,7,0, - 24,192,16,64,16,64,24,192,7,0,0,0,0,0,15,128, - 48,224,96,112,96,112,120,112,120,112,0,112,1,240,30,112, - 112,112,96,112,224,112,224,113,224,241,225,113,113,126,62,60, - 22,17,51,26,2,0,15,135,192,48,236,112,96,120,48,112, - 120,56,120,112,24,56,112,28,0,112,28,7,255,252,56,112, - 0,112,112,0,224,112,0,224,112,4,224,248,8,224,184,8, - 225,56,16,113,28,48,62,7,192,12,24,48,16,2,249,15, - 128,24,96,48,48,112,48,96,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,0,96,16,112,16,48,32,24,96,15, - 128,2,0,6,0,1,128,0,192,0,192,16,192,15,128,13, - 25,50,17,2,1,48,0,56,0,28,0,12,0,6,0,3, - 0,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,16,24,96,7,128,13,25,50,17,2,1,0,112,0, - 112,0,224,0,192,1,128,3,0,0,0,0,0,15,128,24, - 224,48,96,112,112,96,48,224,56,224,56,255,248,224,0,224, - 0,224,0,224,8,112,16,112,16,48,16,24,96,7,128,13, - 25,50,17,2,0,3,0,3,0,7,128,5,128,8,64,16, - 32,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,32,24,96,7,128,13,24,48,17,2,0,24,96,56, - 112,56,112,24,96,0,0,0,0,0,0,15,128,24,224,48, - 96,112,48,96,48,224,56,224,56,255,248,224,0,224,0,224, - 0,224,8,112,16,112,16,48,32,24,96,7,128,9,25,50, - 11,0,0,192,0,224,0,112,0,56,0,8,0,4,0,0, - 0,0,0,62,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,8,25,25,10,2,0,3,7,7,12,24, - 48,0,0,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,9,25,50,11,1,0,24,0,28,0,60,0, - 54,0,99,0,128,128,0,0,0,0,124,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,127,0,9,24,48,11, - 1,0,97,128,227,128,227,128,97,128,0,0,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 127,128,14,26,52,18,2,0,28,16,14,48,15,192,7,128, - 7,128,13,192,48,224,0,224,0,112,7,240,24,120,48,56, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,24,112,56,48,48,24,96,7,128,17,24,72,21, - 2,0,7,4,0,15,204,0,9,248,0,8,112,0,0,0, - 0,0,0,0,0,0,0,248,248,0,57,28,0,58,14,0, - 60,14,0,60,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,254,63,128,14,25,50,18,2,1, - 56,0,56,0,28,0,12,0,6,0,3,0,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,25,50,18,2,1,0,48,0,112,0,224,0,192, - 1,128,1,0,0,0,0,0,7,128,24,96,48,48,112,56, - 112,24,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,24,112,56,48,48,24,96,7,128,14,25,50,18,2,0, - 3,0,3,0,7,128,4,128,8,64,16,32,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,24,48,18,2,0,30,16,31,240,33,224,0,0, - 0,0,0,0,0,0,7,128,24,96,48,48,112,56,112,24, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,24, - 112,56,48,48,24,96,7,128,14,24,48,18,2,0,24,48, - 56,112,56,112,24,48,0,0,0,0,0,0,7,128,24,96, - 48,48,112,56,112,24,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,24,112,56,48,48,24,96,7,128,30,23, - 92,34,2,254,0,3,0,0,0,7,128,0,0,7,128,0, - 0,7,128,0,0,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,252,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,7,128,0,0,7,128,0,0,7,128,0,0,3,0,0, - 14,17,34,18,2,0,7,132,24,104,48,56,112,56,112,56, - 224,92,224,156,225,156,227,28,226,28,228,28,232,28,120,24, - 112,56,48,48,88,96,135,192,17,25,75,20,1,1,28,0, - 0,28,0,0,14,0,0,3,0,0,1,0,0,0,128,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,17,25,75,20,1,1,0, - 28,0,0,60,0,0,48,0,0,96,0,0,192,0,0,128, - 0,0,0,0,0,0,0,248,62,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,30,0,56,30, - 0,56,46,0,28,78,0,15,143,128,17,25,75,20,1,0, - 0,128,0,1,192,0,1,192,0,3,96,0,4,48,0,8, - 8,0,0,0,0,0,0,0,248,62,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,30,0,56, - 30,0,56,46,0,28,78,0,15,143,128,17,24,72,20,1, - 0,12,48,0,28,56,0,28,56,0,12,48,0,0,0,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,18,33,99,19,1,249,0, - 12,0,0,28,0,0,24,0,0,48,0,0,96,0,0,64, - 0,0,0,0,0,0,0,255,31,192,28,6,0,28,4,0, - 12,4,0,14,4,0,14,4,0,6,8,0,7,8,0,7, - 8,0,3,16,0,3,144,0,3,144,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,113,128,0,113,0,0,114,0,0,60, - 0,0,16,34,68,19,1,247,12,0,60,0,92,0,28,0, - 28,0,28,0,28,0,28,0,28,60,28,126,28,143,29,7, - 30,7,30,7,30,7,28,6,28,14,28,14,28,12,28,24, - 28,16,28,32,28,64,29,128,31,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,224,0,17,32,96,19, - 1,248,6,12,0,7,28,0,7,28,0,6,12,0,0,0, - 0,0,0,0,0,0,0,255,31,128,28,6,0,28,4,0, - 14,4,0,14,4,0,14,8,0,7,8,0,7,8,0,7, - 16,0,3,144,0,3,144,0,3,160,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,121,0,0,121,0,0,114,0,0,60, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=30 h=34 x= 4 y=10 dx=34 dy= 0 ascent=27 len=124 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26n[955] U8G_FONT_SECTION("u8g_font_osr26n") = { - 0,94,46,227,245,25,0,0,0,0,42,58,0,27,249,25, - 0,13,15,30,18,3,10,7,0,7,0,7,0,195,24,226, - 56,242,120,58,224,7,0,7,128,122,240,242,120,226,56,7, - 0,7,0,7,0,30,31,124,34,2,250,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,255,255,255,252,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,5,11,11,10,2,250,112,248,248, - 120,8,8,8,16,16,32,64,9,2,4,13,2,8,255,128, - 255,128,4,5,5,10,3,0,96,240,240,240,96,12,34,68, - 16,2,249,0,16,0,48,0,48,0,32,0,96,0,96,0, - 64,0,192,0,192,0,128,0,128,1,128,1,0,1,0,3, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,24,0,16,0,48,0,48,0,32,0,96,0,96, - 0,64,0,192,0,192,0,17,25,75,21,2,0,3,224,0, - 14,56,0,28,28,0,24,12,0,56,14,0,112,7,0,112, - 7,0,112,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 112,7,0,112,7,0,112,7,0,56,14,0,56,14,0,24, - 12,0,12,24,0,7,112,0,12,25,50,21,4,0,1,0, - 3,0,3,0,15,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,240, - 15,25,50,21,3,0,15,192,48,112,96,56,64,60,192,30, - 192,30,224,30,248,30,248,30,120,28,0,60,0,56,0,112, - 0,224,1,192,3,0,14,0,28,4,56,4,48,4,96,4, - 96,12,255,252,255,252,255,252,15,25,50,21,3,0,15,192, - 48,112,32,56,96,28,112,28,120,28,120,28,48,28,0,28, - 0,56,0,112,31,192,24,112,0,56,0,60,0,30,0,30, - 112,30,248,30,248,30,248,30,192,60,192,56,96,112,63,224, - 17,25,75,21,2,0,0,16,0,0,48,0,0,112,0,0, - 112,0,0,240,0,1,240,0,1,112,0,3,112,0,6,112, - 0,6,112,0,12,112,0,8,112,0,24,112,0,48,112,0, - 32,112,0,96,112,0,192,112,0,255,255,128,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,7,255, - 128,15,26,52,21,3,0,32,0,48,56,63,240,63,192,47, - 0,32,0,32,0,32,0,32,0,39,192,56,112,48,56,32, - 60,32,28,0,30,0,30,0,30,0,30,120,30,248,30,248, - 28,240,60,224,60,96,56,112,112,63,192,15,25,50,21,3, - 0,3,224,6,24,12,12,24,28,56,60,48,60,112,16,112, - 0,112,0,243,224,246,56,252,28,248,28,248,14,240,14,240, - 14,240,14,240,14,112,14,112,14,112,12,56,28,56,24,24, - 56,14,224,14,25,50,21,3,0,255,252,255,252,255,252,192, - 12,128,8,128,8,128,8,128,16,0,16,0,32,0,96,0, - 64,0,128,1,128,1,128,3,0,3,0,7,0,7,0,15, - 128,15,128,15,128,15,128,15,128,7,128,17,25,75,21,2, - 0,7,240,0,28,28,0,48,14,0,112,6,0,224,3,0, - 224,3,0,224,3,0,240,3,0,240,6,0,124,6,0,127, - 140,0,31,240,0,7,252,0,25,254,0,48,63,0,96,15, - 128,224,7,128,224,3,128,224,3,128,224,3,128,224,3,0, - 96,7,0,112,6,0,56,12,0,15,248,0,15,25,50,21, - 3,0,7,192,24,96,48,48,112,56,112,28,224,28,224,28, - 224,30,224,30,224,30,224,30,112,62,112,62,56,94,15,158, - 0,30,0,28,0,28,56,28,120,28,120,56,112,56,96,112, - 48,224,31,192,4,17,17,10,3,0,96,240,240,240,96,0, - 0,0,0,0,0,0,96,240,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=34 x= 4 y=20 dx=38 dy= 0 ascent=28 len=130 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26r[6049] U8G_FONT_SECTION("u8g_font_osr26r") = { - 0,94,46,227,245,26,7,96,17,82,32,127,248,28,248,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=39 x= 8 y=23 dx=44 dy= 0 ascent=39 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29[16232] U8G_FONT_SECTION("u8g_font_osr29") = { - 0,107,51,223,244,29,9,148,21,166,32,255,247,39,245,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,11,0,0,5,28,28,11,3, - 247,112,248,248,248,112,0,32,32,32,32,32,32,112,112,112, - 112,112,112,112,112,248,248,248,248,248,248,248,112,14,28,56, - 24,5,252,0,128,0,128,0,128,0,128,0,128,7,224,12, - 152,24,136,56,140,112,156,112,188,240,188,240,152,240,128,240, - 128,240,128,240,128,240,132,112,132,112,132,56,132,24,136,14, - 144,3,224,0,128,0,128,0,128,0,128,23,28,84,30,3, - 0,0,3,240,0,6,24,0,28,12,0,24,14,0,48,62, - 0,112,62,0,112,62,0,112,24,0,112,0,0,240,0,0, - 240,0,0,240,0,31,240,0,32,255,128,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,224,0, - 0,224,0,62,224,2,67,192,2,128,224,4,129,127,60,194, - 63,248,60,15,240,20,20,60,24,2,4,64,0,32,225,248, - 112,119,254,224,62,7,192,24,1,128,48,0,192,48,0,192, - 96,0,96,96,0,96,96,0,96,96,0,96,96,0,96,96, - 0,96,48,0,192,48,0,192,24,1,128,62,7,192,119,254, - 224,225,248,112,64,0,32,22,28,84,24,1,0,255,131,252, - 62,0,112,30,0,96,14,0,64,15,0,64,15,0,128,7, - 128,128,7,129,0,3,193,0,3,194,0,1,226,0,1,228, - 0,0,252,0,0,248,0,0,120,0,31,255,192,0,120,0, - 0,120,0,31,255,192,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,7,255, - 128,2,37,37,12,5,249,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,0,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,15,36,72,26, - 4,248,7,192,12,32,24,48,48,120,48,120,48,112,56,0, - 56,0,28,0,30,0,15,0,31,192,35,224,97,240,64,248, - 192,60,192,30,192,14,224,6,240,6,120,6,60,4,31,12, - 15,152,7,224,3,224,0,224,0,112,0,112,0,56,56,56, - 60,56,56,48,48,48,24,96,7,128,12,4,8,18,3,22, - 96,96,240,240,240,240,96,96,30,29,116,34,2,1,0,127, - 248,0,1,192,14,0,3,0,3,0,4,0,0,128,8,0, - 0,64,16,7,196,32,32,24,108,16,32,48,60,16,64,112, - 28,8,64,224,12,8,192,224,12,8,129,224,4,4,129,224, - 0,4,129,224,0,4,129,224,0,4,129,224,0,4,129,224, - 0,4,129,224,4,4,192,224,4,8,64,224,8,8,64,112, - 8,8,32,112,24,16,48,24,48,48,16,15,192,32,8,0, - 0,64,4,0,0,128,3,0,3,0,1,192,14,0,0,127, - 248,0,11,14,28,16,3,14,60,0,102,0,67,0,99,0, - 99,0,7,0,27,0,99,0,195,0,195,32,231,32,121,192, - 0,0,127,192,10,16,32,19,4,1,24,64,48,192,32,128, - 97,128,97,0,195,0,195,0,195,0,195,0,195,0,195,0, - 97,128,97,128,48,128,16,64,8,0,20,8,24,24,2,7, - 255,255,240,255,255,240,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,10,2,4,14,2,9,255,192, - 255,192,30,29,116,34,2,1,0,127,248,0,1,192,14,0, - 3,0,3,0,4,0,0,128,8,0,0,64,19,255,192,32, - 32,112,240,48,32,112,120,16,64,112,120,8,64,112,120,8, - 192,112,120,8,128,112,112,4,128,112,224,4,128,127,128,4, - 128,112,224,4,128,112,112,4,128,112,112,4,128,112,120,4, - 128,112,120,8,64,112,120,136,64,112,120,136,32,112,56,144, - 32,112,57,16,19,252,30,32,8,0,0,64,4,0,0,128, - 3,0,3,0,1,192,14,0,0,127,248,0,11,2,4,19, - 4,23,255,224,255,224,11,10,20,23,6,18,31,0,96,128, - 64,64,128,32,128,32,128,32,128,32,64,64,96,128,31,0, - 35,28,140,39,2,254,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,192,255,255,255, - 255,192,11,17,34,18,4,11,31,0,99,192,129,192,128,224, - 192,224,224,224,112,224,1,192,1,128,3,0,12,0,24,0, - 32,32,64,32,64,96,255,224,255,224,11,17,34,18,5,11, - 31,0,97,192,192,192,224,224,240,224,0,224,0,192,97,128, - 126,0,1,128,0,192,0,224,224,224,240,224,224,192,129,192, - 127,0,7,7,7,18,8,21,6,14,28,56,48,96,128,21, - 30,90,25,3,245,96,6,0,224,15,0,240,15,0,240,15, - 0,240,15,0,224,15,0,224,15,0,224,15,0,224,15,0, - 224,15,0,224,6,0,64,6,0,64,6,0,64,6,0,96, - 12,8,96,14,24,88,57,248,79,241,248,67,224,112,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,224,0,0, - 224,0,0,240,0,0,240,0,0,112,0,0,112,0,0,17, - 35,105,23,3,250,15,255,128,63,140,0,127,140,0,127,140, - 0,255,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 127,140,0,127,140,0,63,140,0,7,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,5,5, - 5,11,3,10,112,248,248,248,112,8,8,8,18,5,248,48, - 32,60,6,7,7,15,252,9,17,34,19,5,11,4,0,12, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,10, - 14,28,16,3,14,30,0,51,0,97,128,192,192,192,192,192, - 192,192,192,192,192,193,192,97,128,35,0,30,0,0,0,255, - 192,10,16,32,20,5,1,134,0,195,0,65,0,97,128,32, - 192,48,192,48,192,48,192,48,192,48,192,48,192,97,128,97, - 128,67,0,130,0,4,0,27,28,112,35,5,0,4,0,12, - 0,12,0,8,0,28,0,24,0,252,0,16,0,28,0,32, - 0,28,0,96,0,28,0,64,0,28,0,192,0,28,0,128, - 0,28,1,128,0,28,3,0,0,28,2,0,0,28,6,7, - 0,28,4,15,0,28,12,15,0,28,24,23,0,255,144,23, - 0,0,48,39,0,0,32,71,0,0,96,71,0,0,192,135, - 0,0,129,7,0,1,129,255,224,1,0,7,0,3,0,7, - 0,6,0,7,0,6,0,7,0,12,0,63,224,27,28,112, - 35,5,0,4,0,4,0,12,0,12,0,28,0,8,0,252, - 0,16,0,28,0,48,0,28,0,32,0,28,0,96,0,28, - 0,64,0,28,0,128,0,28,1,128,0,28,1,0,0,28, - 3,31,0,28,6,99,192,28,4,129,192,28,12,128,224,28, - 8,192,224,255,152,224,224,0,48,240,224,0,32,1,192,0, - 96,1,128,0,64,3,0,0,192,12,0,1,128,24,0,1, - 0,32,32,3,0,64,32,2,0,64,96,6,0,255,224,12, - 0,255,224,28,28,112,36,5,0,31,0,6,0,97,192,4, - 0,192,224,8,0,224,224,24,0,240,224,16,0,0,192,48, - 0,1,128,96,0,126,0,64,0,97,128,192,0,0,192,128, - 0,0,225,128,0,96,227,3,128,240,226,3,128,224,230,7, - 128,129,196,7,128,67,136,11,128,62,24,19,128,0,16,19, - 128,0,48,35,128,0,96,99,128,0,64,67,128,0,192,131, - 128,0,128,255,240,1,128,3,128,3,0,3,128,2,0,3, - 128,6,0,3,128,4,0,31,240,15,28,56,19,1,247,3, - 128,7,192,7,192,7,192,3,128,0,0,3,128,4,64,8, - 32,8,32,8,96,0,96,0,192,1,128,7,0,14,0,28, - 0,56,0,120,0,240,60,240,62,240,62,240,6,240,6,112, - 6,120,12,28,24,7,224,29,38,152,32,2,0,0,224,0, - 0,0,240,0,0,0,112,0,0,0,56,0,0,0,12,0, - 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,15,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,240, - 0,0,192,120,0,0,128,120,0,1,128,120,0,1,255,252, - 0,1,0,60,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,30,0,15, - 128,255,224,255,248,29,38,152,32,2,0,0,0,48,0,0, - 0,112,0,0,0,240,0,0,0,224,0,0,1,128,0,0, - 3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0, - 15,128,0,0,15,128,0,0,15,128,0,0,31,192,0,0, - 19,192,0,0,51,192,0,0,49,224,0,0,33,224,0,0, - 97,224,0,0,96,240,0,0,64,240,0,0,192,240,0,0, - 192,120,0,0,128,120,0,1,128,120,0,1,255,252,0,3, - 0,60,0,3,0,30,0,3,0,30,0,6,0,30,0,6, - 0,15,0,6,0,15,0,14,0,15,0,31,0,31,192,255, - 224,255,248,29,38,152,32,2,0,0,6,0,0,0,7,0, - 0,0,15,128,0,0,29,128,0,0,56,192,0,0,96,48, - 0,0,128,8,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,6,0,0,0,7,0,0,0,7,0,0,0,15,128, - 0,0,15,128,0,0,15,128,0,0,31,192,0,0,19,192, - 0,0,51,192,0,0,49,224,0,0,33,224,0,0,97,224, - 0,0,96,240,0,0,64,240,0,0,192,240,0,0,192,120, - 0,0,128,120,0,1,128,120,0,1,255,252,0,1,0,60, - 0,3,0,28,0,3,0,30,0,6,0,30,0,6,0,15, - 0,6,0,15,0,14,0,15,0,30,0,15,128,255,224,255, - 248,29,37,148,32,2,0,0,60,8,0,0,127,24,0,0, - 207,240,0,0,129,240,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0, - 7,0,0,0,7,0,0,0,15,128,0,0,15,128,0,0, - 15,128,0,0,31,192,0,0,19,192,0,0,51,192,0,0, - 49,224,0,0,33,224,0,0,97,224,0,0,96,240,0,0, - 64,240,0,0,192,240,0,0,192,120,0,0,128,120,0,1, - 128,120,0,1,255,252,0,3,0,60,0,3,0,30,0,3, - 0,30,0,6,0,30,0,6,0,15,0,6,0,15,0,14, - 0,15,0,31,0,31,192,255,224,255,248,29,37,148,32,2, - 0,0,96,48,0,0,240,120,0,0,240,120,0,0,96,48, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,31,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,112, - 0,0,192,120,0,0,128,120,0,1,128,56,0,1,255,252, - 0,1,0,28,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,31,0,15, - 128,255,224,255,248,29,39,156,32,2,0,0,15,0,0,0, - 16,128,0,0,32,64,0,0,32,64,0,0,32,64,0,0, - 32,64,0,0,16,128,0,0,15,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0, - 7,0,0,0,15,128,0,0,15,128,0,0,31,128,0,0, - 31,192,0,0,19,192,0,0,51,192,0,0,51,224,0,0, - 33,224,0,0,97,224,0,0,97,240,0,0,64,240,0,0, - 192,240,0,0,192,248,0,0,128,120,0,1,128,120,0,1, - 255,252,0,1,0,60,0,3,0,60,0,2,0,62,0,6, - 0,30,0,6,0,31,0,6,0,31,0,14,0,15,0,30, - 0,15,128,255,224,255,248,37,29,145,41,1,0,0,3,255, - 255,248,0,0,124,0,248,0,0,124,0,56,0,0,124,0, - 56,0,0,252,0,24,0,1,188,0,24,0,1,188,0,8, - 0,3,60,0,8,0,3,60,4,8,0,6,60,4,0,0, - 6,60,4,0,0,12,60,4,0,0,12,60,12,0,0,24, - 60,28,0,0,24,63,252,0,0,48,60,28,0,0,48,60, - 12,0,0,96,60,4,0,0,96,60,4,8,0,255,252,4, - 8,0,128,60,4,8,1,128,60,0,8,1,0,60,0,24, - 3,0,60,0,24,2,0,60,0,24,6,0,60,0,56,14, - 0,60,0,120,31,0,60,1,248,255,225,255,255,248,22,38, - 114,28,3,248,1,255,12,7,1,140,14,0,252,28,0,124, - 24,0,60,56,0,60,56,0,28,112,0,28,112,0,12,112, - 0,12,240,0,8,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,112,0,4, - 112,0,4,120,0,12,56,0,8,56,0,8,28,0,16,12, - 0,16,14,0,32,3,0,192,1,247,128,0,56,0,0,32, - 0,0,56,0,0,14,0,0,7,0,0,7,0,0,7,0, - 1,14,0,0,252,0,23,38,114,29,3,0,1,128,0,1, - 192,0,1,224,0,0,224,0,0,48,0,0,24,0,0,12, - 0,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,38, - 114,29,3,0,0,0,192,0,1,224,0,3,192,0,3,128, - 0,6,0,0,12,0,0,8,0,0,0,0,0,0,0,255, - 255,254,15,0,62,15,0,14,15,0,14,15,0,6,15,0, - 6,15,0,2,15,0,2,15,1,2,15,1,0,15,1,0, - 15,1,0,15,3,0,15,7,0,15,255,0,15,7,0,15, - 3,0,15,1,0,15,1,2,15,1,2,15,1,2,15,0, - 2,15,0,6,15,0,6,15,0,6,15,0,14,15,0,30, - 15,0,126,255,255,254,23,38,114,29,3,0,0,8,0,0, - 28,0,0,62,0,0,55,0,0,99,128,1,128,192,2,0, - 32,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,37, - 111,29,3,0,1,128,192,3,193,224,3,193,224,1,128,192, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,15, - 0,62,15,0,14,15,0,14,15,0,6,15,0,6,15,0, - 2,15,0,2,15,1,2,15,1,0,15,1,0,15,3,0, - 15,3,0,15,7,0,15,255,0,15,7,0,15,3,0,15, - 3,0,15,1,2,15,1,2,15,1,2,15,0,2,15,0, - 6,15,0,6,15,0,6,15,0,14,15,0,30,15,0,126, - 255,255,254,12,38,76,17,3,0,192,0,224,0,112,0,56, - 0,24,0,12,0,2,0,0,0,0,0,255,240,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,255,240,12,38,76,17,3,0,0,48,0,112,0, - 224,1,192,3,128,2,0,4,0,0,0,0,0,255,240,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,255,240,12,38,76,17,3,0,6,0,14, - 0,15,0,27,128,48,192,96,96,128,16,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,12,37,74,15,2,0,96, - 96,240,240,240,240,96,96,0,0,0,0,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,27,29,116,32,3,0,255, - 255,192,0,15,0,112,0,15,0,28,0,15,0,14,0,15, - 0,7,0,15,0,7,128,15,0,3,128,15,0,3,192,15, - 0,3,192,15,0,1,192,15,0,1,224,15,0,1,224,15, - 0,1,224,255,240,1,224,15,0,1,224,15,0,1,224,15, - 0,1,224,15,0,1,224,15,0,1,224,15,0,3,192,15, - 0,3,192,15,0,3,192,15,0,3,128,15,0,7,0,15, - 0,7,0,15,0,14,0,15,0,28,0,15,0,112,0,255, - 255,192,0,28,37,148,32,3,0,0,60,8,0,0,127,152, - 0,0,71,240,0,0,65,240,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,63,240,15,128,7, - 128,15,128,3,0,15,192,3,0,15,224,3,0,13,224,3, - 0,13,240,3,0,12,248,3,0,12,120,3,0,12,124,3, - 0,12,60,3,0,12,30,3,0,12,31,3,0,12,15,3, - 0,12,7,131,0,12,7,131,0,12,3,195,0,12,3,227, - 0,12,1,227,0,12,0,243,0,12,0,251,0,12,0,123, - 0,12,0,63,0,12,0,63,0,12,0,31,0,12,0,31, - 0,12,0,15,0,30,0,7,0,255,192,7,0,24,38,114, - 29,3,1,3,128,0,3,192,0,1,192,0,0,224,0,0, - 112,0,0,48,0,0,8,0,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,38,114,29,3,1,0,1,192,0,3, - 192,0,3,128,0,7,0,0,14,0,0,12,0,0,16,0, - 0,0,0,0,0,0,0,255,0,3,0,192,6,0,96,12, - 0,48,28,0,56,56,0,28,56,0,28,120,0,30,112,0, - 14,112,0,14,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,112, - 0,14,112,0,14,120,0,30,56,0,28,56,0,28,28,0, - 56,12,0,48,6,0,96,3,0,192,0,255,0,24,38,114, - 29,3,0,0,24,0,0,24,0,0,60,0,0,126,0,0, - 195,0,1,129,128,6,0,96,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,37,111,29,3,0,1,240,32,3,252, - 64,2,63,192,2,7,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,0,3,0,192,6,0,96,12,0,48,28, - 0,56,56,0,28,56,0,28,120,0,30,112,0,14,112,0, - 14,240,0,15,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,112,0,14,112, - 0,14,120,0,30,56,0,28,56,0,28,28,0,56,12,0, - 48,6,0,96,3,0,192,0,255,0,24,37,111,29,3,0, - 1,129,128,3,195,192,3,195,192,1,129,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,3,0,192,6,0, - 96,12,0,48,28,0,56,56,0,28,56,0,28,120,0,30, - 112,0,14,112,0,14,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,112,0,14,112,0,14,120,0,30,56,0,28,56,0,28, - 28,0,56,12,0,48,6,0,96,3,0,192,0,255,0,25, - 25,100,39,7,254,192,0,1,128,224,0,3,0,112,0,6, - 0,56,0,12,0,28,0,24,0,14,0,48,0,7,0,96, - 0,3,128,192,0,1,193,128,0,0,227,0,0,0,118,0, - 0,0,60,0,0,0,28,0,0,0,62,0,0,0,103,0, - 0,0,195,128,0,1,129,192,0,3,0,224,0,6,0,112, - 0,12,0,56,0,24,0,28,0,48,0,14,0,96,0,7, - 0,192,0,3,128,128,0,1,0,24,29,87,29,3,1,0, - 255,131,3,0,230,6,0,124,12,0,60,28,0,56,56,0, - 60,56,0,124,120,0,254,112,0,206,112,1,142,240,3,15, - 240,6,15,240,14,15,240,12,15,240,24,15,240,48,15,240, - 96,15,240,224,15,240,192,15,113,128,14,115,0,14,126,0, - 30,62,0,28,60,0,28,28,0,56,60,0,48,62,0,96, - 103,0,192,193,255,0,29,38,152,34,3,1,0,112,0,0, - 0,112,0,0,0,56,0,0,0,28,0,0,0,14,0,0, - 0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 255,240,31,248,15,0,3,192,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,7,0,1,0, - 7,0,3,0,3,128,2,0,1,192,6,0,0,224,24,0, - 0,63,240,0,29,38,152,34,3,1,0,0,56,0,0,0, - 120,0,0,0,240,0,0,0,224,0,0,1,128,0,0,3, - 0,0,0,2,0,0,0,0,0,0,0,0,0,0,255,240, - 31,248,15,0,3,192,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,7,0,1,0,7,0, - 3,0,3,128,2,0,1,192,6,0,0,224,24,0,0,63, - 240,0,29,38,152,34,3,0,0,3,0,0,0,7,0,0, - 0,7,128,0,0,13,192,0,0,24,96,0,0,96,48,0, - 0,192,8,0,0,0,0,0,0,0,0,0,255,240,31,248, - 15,0,3,192,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,7,0,3,0,7,0,3,0, - 3,128,6,0,1,192,14,0,0,224,24,0,0,63,240,0, - 29,37,148,34,3,0,0,48,48,0,0,120,120,0,0,120, - 120,0,0,48,48,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,31,248,15,0,3,192,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,7,0,1,0,7,0,3,0,3,128,2,0,1,192, - 6,0,0,224,24,0,0,63,240,0,27,38,152,30,2,0, - 0,0,48,0,0,0,112,0,0,0,224,0,0,0,192,0, - 0,1,128,0,0,3,0,0,0,2,0,0,0,0,0,0, - 0,0,0,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,23,29,87,28,3,0,255,248, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,255,128, - 15,0,224,15,0,120,15,0,60,15,0,60,15,0,30,15, - 0,30,15,0,30,15,0,30,15,0,30,15,0,60,15,0, - 60,15,0,120,15,0,224,15,255,128,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,255,248,0,19,29,87,22,1,0,0,252,0,3,14, - 0,6,7,0,14,7,128,12,7,128,28,7,128,28,7,128, - 28,7,0,28,14,0,28,28,0,28,224,0,28,24,0,28, - 6,0,28,7,0,28,3,128,28,3,128,28,1,192,28,1, - 192,28,1,192,28,1,224,28,1,224,28,1,224,28,1,224, - 28,225,192,29,225,192,29,225,192,28,131,128,28,199,0,252, - 60,0,18,28,84,21,2,1,112,0,0,120,0,0,60,0, - 0,28,0,0,6,0,0,3,0,0,1,0,0,0,0,0, - 0,0,0,15,192,0,56,112,0,32,56,0,96,28,0,120, - 28,0,120,28,0,56,28,0,0,28,0,0,252,0,15,28, - 0,56,28,0,112,28,0,224,28,0,224,28,64,224,60,64, - 224,60,64,224,92,192,112,159,128,31,15,0,18,28,84,21, - 2,1,0,28,0,0,60,0,0,120,0,0,112,0,0,192, - 0,1,128,0,1,0,0,0,0,0,0,0,0,15,192,0, - 56,112,0,32,56,0,96,28,0,120,28,0,120,28,0,56, - 28,0,0,28,0,0,252,0,15,28,0,56,28,0,112,28, - 0,224,28,0,224,28,64,224,60,64,224,60,64,224,92,192, - 112,159,128,31,15,0,18,28,84,21,2,0,3,128,0,3, - 128,0,7,128,0,6,192,0,12,96,0,24,48,0,32,24, - 0,0,0,0,0,0,0,15,192,0,56,112,0,32,56,0, - 96,28,0,120,28,0,120,28,0,56,28,0,0,28,0,0, - 252,0,15,28,0,56,28,0,112,28,0,224,28,0,224,28, - 64,224,60,64,224,60,64,224,92,192,112,159,128,31,15,0, - 18,27,81,21,2,0,30,8,0,63,136,0,39,248,0,64, - 240,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192, - 0,56,112,0,32,56,0,96,28,0,120,28,0,120,28,0, - 56,28,0,0,28,0,0,252,0,15,28,0,56,28,0,112, - 28,0,224,28,0,224,28,64,224,60,64,224,60,64,224,92, - 192,112,159,128,31,15,0,18,27,81,21,2,0,56,48,0, - 120,120,0,120,120,0,56,48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,192,0,24,112,0,32,56,0,96,28, - 0,112,28,0,120,28,0,56,28,0,0,28,0,0,252,0, - 15,28,0,56,28,0,112,28,0,224,28,0,224,28,64,224, - 60,64,224,60,64,224,92,192,112,159,128,31,15,0,18,28, - 84,21,2,0,7,128,0,8,64,0,16,32,0,16,32,0, - 16,32,0,8,64,0,7,128,0,0,0,0,0,0,0,15, - 192,0,56,112,0,32,56,0,96,28,0,112,28,0,120,28, - 0,56,28,0,0,28,0,0,252,0,15,28,0,56,28,0, - 112,28,0,224,28,0,224,28,64,224,60,64,224,92,64,224, - 156,192,112,159,128,31,15,0,25,19,76,29,2,0,15,193, - 240,0,56,115,28,0,32,30,14,0,96,30,7,0,120,28, - 7,0,120,28,7,0,56,28,7,128,0,28,7,128,3,255, - 255,128,28,28,0,0,112,28,0,0,112,28,0,0,224,28, - 1,128,224,28,1,0,224,62,1,0,224,46,1,0,224,70, - 2,0,112,131,4,0,31,0,248,0,15,27,54,18,2,248, - 7,224,28,16,56,8,48,12,112,28,112,60,240,60,240,24, - 240,0,240,0,240,0,240,0,240,6,112,4,112,4,48,12, - 56,8,28,48,7,224,1,0,2,0,1,192,0,96,0,112, - 0,112,8,240,7,192,15,28,56,19,2,1,56,0,60,0, - 28,0,14,0,7,0,3,0,0,128,0,0,0,0,7,192, - 12,112,56,56,48,28,112,28,112,28,240,30,240,30,255,254, - 240,0,240,0,240,0,240,2,112,4,112,4,56,4,56,8, - 28,16,7,224,15,28,56,19,2,1,0,28,0,60,0,56, - 0,112,0,224,0,192,1,0,0,0,0,0,7,192,12,112, - 56,56,48,28,112,28,112,28,240,30,240,30,255,254,240,0, - 240,0,240,0,240,2,112,4,112,4,56,4,56,8,28,16, - 7,224,15,28,56,19,2,0,1,128,3,128,3,192,7,192, - 6,96,8,48,16,8,0,0,0,0,7,192,12,112,56,56, - 48,28,112,28,112,28,240,30,240,30,255,254,240,0,240,0, - 240,0,240,6,112,4,112,4,56,4,56,8,28,16,7,224, - 15,27,54,19,2,0,24,24,60,60,60,60,24,24,0,0, - 0,0,0,0,0,0,7,192,12,112,56,56,48,28,112,28, - 112,28,240,14,240,14,255,254,240,0,240,0,240,0,240,2, - 112,4,112,4,56,4,56,8,28,16,7,224,10,28,56,11, - 0,0,192,0,224,0,224,0,112,0,24,0,12,0,4,0, - 0,0,0,0,126,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,127,192,10,28,56,11,1,0, - 0,192,1,192,3,128,7,0,6,0,12,0,16,0,0,0, - 0,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,255,128,11,28,56,11,0,0,12,0, - 12,0,30,0,31,0,51,0,96,128,128,96,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,127,192,11,26,52,13,1,0,96,192,241,224, - 241,224,96,192,0,0,0,0,0,0,62,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,192, - 17,29,87,21,2,0,30,4,0,15,12,0,7,176,0,3, - 224,0,1,224,0,6,224,0,12,240,0,16,120,0,0,56, - 0,0,28,0,3,254,0,12,62,0,24,30,0,56,15,0, - 112,15,0,112,7,0,240,7,0,240,7,128,240,7,128,240, - 7,128,240,7,0,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,20,26,78, - 22,1,0,3,225,0,7,254,0,4,126,0,0,0,0,0, - 0,0,0,0,0,0,0,0,252,60,0,28,199,0,29,3, - 0,31,3,128,30,3,128,30,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,159, - 240,17,28,84,21,2,1,56,0,0,60,0,0,30,0,0, - 14,0,0,3,0,0,1,128,0,0,128,0,0,0,0,0, - 0,0,3,224,0,12,56,0,24,28,0,56,14,0,112,14, - 0,112,7,0,240,7,0,240,7,0,240,7,128,240,7,128, - 240,7,128,240,7,0,240,7,0,112,7,0,112,14,0,56, - 14,0,24,28,0,12,56,0,3,224,0,17,28,84,21,2, - 1,0,28,0,0,28,0,0,56,0,0,112,0,0,96,0, - 0,192,0,1,128,0,0,0,0,0,0,0,3,224,0,12, - 56,0,24,28,0,56,14,0,112,14,0,112,7,0,240,7, - 0,240,7,0,240,7,128,240,7,128,240,7,128,240,7,0, - 240,7,0,112,7,0,112,14,0,56,14,0,24,28,0,12, - 56,0,3,224,0,17,28,84,21,2,0,1,128,0,1,192, - 0,3,192,0,3,96,0,6,32,0,12,16,0,16,12,0, - 0,0,0,0,0,0,3,224,0,12,56,0,24,28,0,56, - 14,0,112,14,0,112,7,0,240,7,0,240,7,0,240,7, - 128,240,7,128,240,7,128,240,7,0,240,7,0,112,7,0, - 112,14,0,56,14,0,24,28,0,12,56,0,3,224,0,17, - 27,81,21,2,0,15,4,0,31,204,0,19,248,0,16,240, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,224,0, - 12,56,0,24,28,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 0,240,7,0,112,7,0,112,14,0,56,14,0,24,28,0, - 12,56,0,3,224,0,17,27,81,21,2,0,24,24,0,60, - 60,0,60,60,0,24,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,35,26,130, - 39,2,254,0,0,224,0,0,0,1,240,0,0,0,1,240, - 0,0,0,1,240,0,0,0,0,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0, - 0,0,1,240,0,0,0,1,240,0,0,0,1,240,0,0, - 0,0,224,0,0,17,19,57,21,2,0,3,225,0,12,59, - 0,24,30,0,56,14,0,112,14,0,112,31,0,240,55,0, - 240,103,0,240,199,128,240,135,128,241,7,128,242,7,0,244, - 7,0,124,7,0,120,14,0,56,14,0,120,28,0,76,56, - 0,131,224,0,20,28,84,22,1,1,14,0,0,15,0,0, - 7,0,0,3,128,0,1,192,0,0,64,0,0,32,0,0, - 0,0,0,0,0,252,31,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,7,128,28, - 7,128,28,15,128,12,11,128,14,51,128,3,195,240,20,28, - 84,22,1,1,0,7,0,0,15,0,0,30,0,0,24,0, - 0,48,0,0,96,0,0,64,0,0,0,0,0,0,0,252, - 31,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,7,128,28,7,128,28,15,128,12, - 11,128,14,51,128,3,195,240,20,28,84,22,1,0,0,96, - 0,0,224,0,0,240,0,1,176,0,3,24,0,2,4,0, - 4,2,0,0,0,0,0,0,0,252,31,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,128,28,15,128,12,11,128,14,51,128,3, - 195,240,20,27,81,22,1,0,6,6,0,15,15,0,15,15, - 0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 252,15,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,7,128,28,7,128,28,15,128, - 12,11,128,14,51,128,3,195,240,20,37,111,22,1,248,0, - 3,0,0,7,0,0,15,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,0,0,0,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,18,38, - 114,21,1,246,12,0,0,60,0,0,252,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 30,0,28,127,0,28,199,128,29,3,128,31,3,192,30,3, - 192,30,3,128,28,3,128,28,3,128,28,7,0,28,7,0, - 28,6,0,28,12,0,28,28,0,28,24,0,28,48,0,28, - 192,0,29,128,0,30,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 56,0,0,192,0,0,19,36,108,21,1,247,3,6,0,7, - 143,0,7,143,0,3,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,143,224,30,3,128,30,1,0,14,3,0, - 14,2,0,7,2,0,7,2,0,7,6,0,3,132,0,3, - 132,0,3,140,0,1,200,0,1,200,0,1,200,0,0,240, - 0,0,240,0,0,240,0,0,96,0,0,96,0,0,96,0, - 0,64,0,0,64,0,48,64,0,120,64,0,120,128,0,121, - 128,0,59,0,0,30,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=35 h=38 x= 5 y=11 dx=39 dy= 0 ascent=30 len=170 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =30 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29n[1226] U8G_FONT_SECTION("u8g_font_osr29n") = { - 0,107,51,223,244,28,0,0,0,0,42,58,0,30,248,28, - 0,15,17,34,21,3,11,3,128,3,192,3,128,3,128,225, - 142,241,30,249,62,29,112,3,192,3,192,29,120,249,62,241, - 30,227,142,3,128,3,192,3,128,35,34,170,39,2,250,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,5,12,12,11,3,249,112, - 240,248,248,24,8,8,16,16,32,32,64,10,2,4,14,2, - 9,255,192,255,192,5,5,5,11,3,0,112,248,248,248,112, - 14,38,76,18,2,248,0,12,0,12,0,12,0,8,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,64, - 0,192,0,192,0,128,1,128,1,128,1,0,3,0,3,0, - 2,0,6,0,6,0,4,0,12,0,12,0,8,0,24,0, - 24,0,16,0,48,0,48,0,32,0,96,0,96,0,64,0, - 192,0,20,28,84,24,2,0,1,248,0,7,12,0,12,7, - 0,28,3,128,24,1,128,56,1,192,56,1,192,112,0,224, - 112,0,224,112,0,224,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,112,0,224,112,0,224,112,0,224,56,1,192,56,1,192, - 24,1,128,12,3,0,6,6,0,3,252,0,14,28,56,24, - 5,0,1,128,1,128,3,128,7,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,255,252,17,28,84,24,3,0, - 7,224,0,24,60,0,32,30,0,64,15,0,192,15,0,192, - 7,128,192,7,128,240,7,128,252,7,128,252,7,128,124,7, - 128,24,15,0,0,14,0,0,28,0,0,56,0,0,112,0, - 0,224,0,1,192,0,3,0,0,6,0,0,12,0,128,24, - 0,128,48,0,128,48,1,128,112,1,128,127,255,128,127,255, - 128,127,255,128,17,28,84,24,3,0,15,224,0,48,56,0, - 96,28,0,96,14,0,240,15,0,248,15,0,248,15,0,120, - 15,0,0,15,0,0,15,0,0,14,0,0,28,0,28,56, - 0,31,224,0,0,60,0,0,30,0,0,15,0,0,7,0, - 0,7,128,0,7,128,120,7,128,248,7,128,248,7,128,248, - 7,0,192,15,0,192,14,0,96,28,0,31,240,0,19,28, - 84,24,2,0,0,12,0,0,12,0,0,28,0,0,60,0, - 0,60,0,0,124,0,0,252,0,0,252,0,1,188,0,3, - 60,0,3,60,0,6,60,0,12,60,0,12,60,0,24,60, - 0,48,60,0,32,60,0,96,60,0,192,60,0,255,255,224, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,7,255,224,17,29,87,24,4,0,0,2, - 0,120,12,0,127,248,0,127,240,0,111,192,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, - 60,0,112,30,0,96,14,0,96,15,0,96,7,0,0,7, - 128,0,7,128,0,7,128,16,7,128,120,7,128,252,7,128, - 252,7,128,248,15,0,224,15,0,224,14,0,96,28,0,48, - 56,0,31,240,0,17,28,84,24,3,0,1,248,0,3,12, - 0,12,6,0,28,7,0,24,15,0,56,31,0,48,31,0, - 112,14,0,112,0,0,112,0,0,240,0,0,241,240,0,246, - 28,0,252,14,0,248,7,0,248,7,0,240,7,128,240,7, - 128,240,7,128,240,7,128,112,7,128,112,7,128,112,7,0, - 48,7,0,56,7,0,24,14,0,12,28,0,7,248,0,16, - 28,56,24,4,0,255,255,255,255,255,255,192,3,128,2,128, - 2,128,6,128,4,0,12,0,8,0,24,0,48,0,32,0, - 96,0,192,0,192,1,128,3,128,3,128,7,128,7,128,7, - 128,15,192,15,192,15,192,15,192,15,192,7,192,20,28,84, - 24,2,0,3,248,0,14,14,0,56,7,0,112,3,128,112, - 1,192,240,1,192,240,1,192,240,1,192,240,1,192,248,1, - 128,126,3,128,127,131,0,63,252,0,15,252,0,7,255,0, - 24,127,192,48,15,224,112,3,224,224,1,240,224,0,240,224, - 0,240,224,0,224,224,0,224,224,0,224,112,1,192,48,1, - 128,28,7,0,15,252,0,17,28,84,24,3,0,7,224,0, - 12,56,0,56,12,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,112,15,128,112,15,128,56,27,128,28,51,128,7,199,128, - 0,7,128,0,7,0,0,7,0,56,7,0,124,7,0,124, - 14,0,120,14,0,112,12,0,112,24,0,48,48,0,31,224, - 0,5,19,19,11,3,0,112,248,248,248,112,0,0,0,0, - 0,0,0,0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=38 x= 5 y=22 dx=44 dy= 0 ascent=31 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29r[7573] U8G_FONT_SECTION("u8g_font_osr29r") = { - 0,107,51,223,244,29,9,148,21,166,32,127,247,31,247,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=47 x=10 y=28 dx=52 dy= 0 ascent=47 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-13 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =47 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35[22370] U8G_FONT_SECTION("u8g_font_osr35") = { - 0,128,62,216,241,35,12,236,30,116,32,255,246,47,243,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,14,0,0,6,33,33,14,4,246,120, - 252,252,252,120,0,0,48,48,48,48,48,48,48,48,48,48, - 48,120,120,120,120,120,120,248,252,252,252,252,252,252,252,120, - 17,34,102,28,5,250,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,7,252,0,14,198,0,28,195, - 0,56,195,128,120,195,128,120,207,128,120,207,128,248,207,128, - 240,199,0,240,192,0,240,192,0,240,192,0,240,192,0,240, - 192,0,248,192,128,120,192,128,120,192,128,120,193,128,56,193, - 0,28,195,0,14,198,0,7,252,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,28,34,136,35, - 3,0,0,0,126,0,0,1,227,128,0,3,128,192,0,7, - 0,192,0,14,0,224,0,14,1,224,0,28,3,224,0,28, - 3,224,0,60,3,192,0,60,0,128,0,60,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,31,252, - 0,0,0,127,248,0,0,124,0,0,0,124,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,0,60, - 0,0,0,56,0,0,0,56,0,16,62,56,0,32,99,240, - 0,32,193,240,0,96,128,120,0,64,128,254,0,192,128,159, - 255,128,193,7,255,0,126,1,254,0,24,24,72,28,2,5, - 64,0,2,224,126,7,115,255,206,63,129,252,30,0,120,28, - 0,56,56,0,24,48,0,12,48,0,12,96,0,6,96,0, - 6,96,0,6,96,0,6,96,0,6,96,0,6,112,0,12, - 48,0,12,56,0,28,28,0,56,30,0,120,63,129,252,115, - 255,206,224,126,7,64,0,2,27,33,132,29,1,0,255,224, - 127,224,31,0,15,0,15,0,6,0,15,128,6,0,7,128, - 12,0,7,192,12,0,3,192,24,0,3,224,24,0,1,224, - 48,0,1,240,32,0,0,240,96,0,0,248,64,0,0,248, - 192,0,0,124,128,0,0,125,128,0,0,63,0,0,0,63, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,31,0,0,3,255, - 240,0,2,44,44,14,6,248,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,18,43,129,31,5,247,1,240,0,6,24,0, - 12,12,0,24,30,0,56,62,0,56,62,0,56,62,0,56, - 8,0,60,0,0,30,0,0,31,0,0,15,128,0,7,192, - 0,15,224,0,25,240,0,48,252,0,96,126,0,64,63,0, - 192,15,128,192,7,128,192,3,192,224,1,192,240,0,192,120, - 0,192,124,0,192,62,0,128,31,1,128,15,131,0,7,198, - 0,3,248,0,1,240,0,0,248,0,0,124,0,0,60,0, - 0,30,0,0,14,0,30,14,0,62,14,0,62,14,0,60, - 12,0,24,28,0,12,56,0,7,224,0,14,5,10,22,4, - 27,112,56,248,124,248,124,248,124,112,56,35,36,180,40,3, - 0,0,7,252,0,0,0,60,7,128,0,0,224,0,192,0, - 1,128,0,48,0,3,0,0,24,0,4,0,0,12,0,8, - 0,0,6,0,24,1,240,131,0,48,7,28,129,0,32,30, - 7,128,128,96,28,3,128,128,64,56,1,128,64,64,120,1, - 128,64,192,120,0,128,64,128,120,0,128,96,128,248,0,0, - 32,128,240,0,0,32,128,240,0,0,32,128,240,0,0,32, - 128,240,0,0,32,128,240,0,0,32,128,240,0,0,32,128, - 248,0,128,96,64,120,0,128,64,64,120,0,128,64,96,56, - 1,128,192,32,60,1,0,128,48,30,3,1,128,16,15,14, - 3,0,24,3,248,2,0,12,0,0,6,0,6,0,0,12, - 0,3,128,0,56,0,0,192,0,96,0,0,120,3,192,0, - 0,31,254,0,0,13,17,34,19,3,17,62,0,99,0,193, - 128,225,128,225,128,3,128,13,128,49,128,113,128,225,128,225, - 136,225,136,247,152,120,240,0,0,0,0,255,240,13,19,38, - 23,5,1,4,0,12,24,24,48,48,32,112,96,96,96,96, - 192,224,192,224,192,224,192,224,192,224,192,224,192,96,192,112, - 96,48,96,56,48,24,16,12,0,23,10,30,29,3,8,255, - 255,254,255,255,254,0,0,6,0,0,6,0,0,6,0,0, - 6,0,0,6,0,0,6,0,0,6,0,0,6,12,3,6, - 18,3,11,255,240,255,240,255,240,35,36,180,40,3,0,0, - 7,252,0,0,0,60,7,128,0,0,224,0,192,0,1,128, - 0,48,0,3,0,0,24,0,4,0,0,12,0,8,0,0, - 6,0,25,255,248,3,0,48,60,30,1,0,32,60,15,0, - 128,96,60,7,128,128,64,60,7,128,64,64,60,7,128,64, - 192,60,7,128,64,128,60,7,128,96,128,60,15,0,32,128, - 60,30,0,32,128,63,240,0,32,128,60,28,0,32,128,60, - 14,0,32,128,60,7,0,32,128,60,7,0,32,128,60,7, - 128,96,64,60,7,128,64,64,60,7,132,64,64,60,7,132, - 192,32,60,7,136,128,48,60,3,201,128,17,255,129,241,0, - 24,0,0,2,0,12,0,0,6,0,6,0,0,12,0,3, - 0,0,24,0,0,192,0,96,0,0,112,1,192,0,0,31, - 254,0,0,13,2,4,21,4,28,255,248,255,248,14,13,26, - 29,8,21,15,192,56,96,112,48,96,24,192,8,192,12,192, - 12,192,12,192,12,96,24,96,24,56,112,15,192,41,34,204, - 45,2,254,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,255,255,255,255,255,128,255,255,255,255,255,128,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,128,255,255,255,255,255,128,14, - 21,42,22,4,13,15,192,49,240,96,120,192,124,192,60,224, - 60,248,60,120,60,48,120,0,112,0,224,1,192,3,128,6, - 0,12,0,48,4,32,4,96,12,127,248,255,248,255,248,14, - 21,42,22,5,13,15,192,56,224,96,112,96,56,112,56,120, - 56,48,56,0,112,0,224,63,128,56,224,0,120,0,56,0, - 60,112,60,248,60,240,60,192,56,192,120,96,240,31,192,8, - 9,9,22,10,25,7,15,15,30,60,48,96,192,128,25,36, - 144,29,3,243,112,1,192,0,240,3,192,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,224,3,224,0, - 224,1,192,0,224,1,192,0,96,1,192,0,96,1,192,0, - 96,1,192,0,96,1,128,0,96,3,129,128,112,7,193,128, - 88,15,127,128,79,254,63,128,67,252,31,0,64,0,0,0, - 192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,240,0,0,0, - 240,0,0,0,240,0,0,0,248,0,0,0,120,0,0,0, - 120,0,0,0,20,42,126,26,3,249,7,255,240,31,193,128, - 63,193,128,127,193,128,127,193,128,255,193,128,255,193,128,255, - 193,128,255,193,128,255,193,128,255,193,128,127,193,128,127,193, - 128,63,193,128,15,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,0,193,128,0,193,128,0,193, - 128,0,193,128,0,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,6,6,6,14,4,12,120,252, - 252,252,252,120,10,10,20,21,5,246,8,0,8,0,24,0, - 15,0,3,128,1,192,1,192,1,192,195,128,63,0,11,20, - 40,21,5,14,2,0,6,0,14,0,254,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,255,224,12,17,34,18, - 3,17,15,0,57,192,112,192,96,224,224,96,224,112,224,112, - 224,112,224,112,224,112,96,96,112,224,49,192,31,0,0,0, - 0,0,255,240,13,19,38,23,5,1,1,0,193,128,96,192, - 32,96,48,112,48,48,24,48,24,56,24,56,24,56,24,56, - 24,56,24,56,24,48,48,112,48,96,96,224,64,192,1,128, - 33,35,175,42,5,255,2,0,0,96,0,6,0,0,64,0, - 14,0,0,192,0,254,0,1,128,0,14,0,1,0,0,14, - 0,3,0,0,14,0,2,0,0,14,0,6,0,0,14,0, - 12,0,0,14,0,8,0,0,14,0,24,0,0,14,0,16, - 0,0,14,0,48,0,0,14,0,96,0,0,14,0,96,56, - 0,14,0,192,120,0,14,0,128,120,0,14,1,128,248,0, - 14,3,0,184,0,255,227,1,56,0,0,6,1,56,0,0, - 4,2,56,0,0,12,2,56,0,0,8,4,56,0,0,24, - 12,56,0,0,48,8,56,0,0,32,24,56,0,0,96,31, - 255,128,0,64,0,56,0,0,192,0,56,0,1,128,0,56, - 0,1,128,0,56,0,3,0,0,56,0,2,0,1,255,128, - 6,0,0,0,0,33,35,175,42,5,255,2,0,0,96,0, - 6,0,0,64,0,6,0,0,192,0,14,0,1,128,0,254, - 0,1,128,0,14,0,3,0,0,14,0,2,0,0,14,0, - 6,0,0,14,0,4,0,0,14,0,12,0,0,14,0,24, - 0,0,14,0,16,0,0,14,0,48,0,0,14,0,33,248, - 0,14,0,102,62,0,14,0,204,15,0,14,0,152,15,128, - 14,1,152,7,128,14,1,24,7,128,255,227,31,7,128,0, - 6,31,7,128,0,4,15,7,0,0,12,0,14,0,0,8, - 0,28,0,0,24,0,56,0,0,48,0,112,0,0,48,0, - 192,0,0,96,1,128,0,0,64,2,0,128,0,192,4,0, - 128,1,128,12,1,128,1,128,15,255,0,3,0,15,255,0, - 2,0,31,255,0,6,0,0,0,0,33,35,175,42,5,255, - 15,192,0,48,0,56,224,0,96,0,96,112,0,96,0,96, - 56,0,192,0,112,56,0,128,0,120,56,1,128,0,48,56, - 3,0,0,0,112,3,0,0,0,224,6,0,0,63,128,4, - 0,0,56,224,12,0,0,0,120,24,0,0,0,56,24,0, - 0,0,60,48,0,0,112,60,32,28,0,248,60,96,28,0, - 240,60,192,60,0,192,120,192,92,0,96,241,128,92,0,63, - 193,0,156,0,0,3,1,156,0,0,6,1,28,0,0,6, - 2,28,0,0,12,6,28,0,0,8,4,28,0,0,24,8, - 28,0,0,48,24,28,0,0,48,31,255,128,0,96,0,28, - 0,0,64,0,28,0,0,192,0,28,0,1,128,0,28,0, - 1,128,0,28,0,3,0,1,255,128,2,0,0,0,0,18, - 33,99,24,2,246,1,224,0,3,240,0,3,240,0,3,240, - 0,1,224,0,0,0,0,0,0,0,1,224,0,2,48,0, - 4,24,0,4,24,0,4,24,0,4,24,0,0,48,0,0, - 112,0,0,224,0,1,192,0,7,128,0,15,0,0,30,0, - 0,60,0,0,124,0,0,120,15,0,248,31,128,240,31,192, - 240,15,192,240,0,192,240,0,192,120,0,192,120,1,128,60, - 3,0,15,14,0,3,248,0,34,46,230,37,2,0,0,56, - 0,0,0,0,60,0,0,0,0,60,0,0,0,0,30,0, - 0,0,0,15,0,0,0,0,3,128,0,0,0,1,128,0, - 0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,224,0,0,0,1,224,0,0,0,1,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,6,248, - 0,0,0,6,248,0,0,0,6,248,0,0,0,12,124,0, - 0,0,12,124,0,0,0,12,124,0,0,0,24,62,0,0, - 0,24,62,0,0,0,24,30,0,0,0,48,31,0,0,0, - 48,31,0,0,0,48,15,0,0,0,96,15,128,0,0,96, - 15,128,0,0,96,7,128,0,0,255,255,192,0,0,255,255, - 192,0,0,192,3,192,0,1,128,3,224,0,1,128,3,224, - 0,3,128,1,224,0,3,0,1,240,0,3,0,1,240,0, - 7,0,0,240,0,7,0,0,248,0,31,128,1,252,0,255, - 248,31,255,192,34,46,230,37,2,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,30,0,0,0,0, - 60,0,0,0,0,48,0,0,0,0,96,0,0,0,0,192, - 0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,6,248,0,0,0,6, - 248,0,0,0,6,248,0,0,0,12,124,0,0,0,12,124, - 0,0,0,12,124,0,0,0,24,62,0,0,0,24,62,0, - 0,0,24,30,0,0,0,48,31,0,0,0,48,31,0,0, - 0,48,15,0,0,0,96,15,128,0,0,96,15,128,0,0, - 224,7,128,0,0,255,255,192,0,0,255,255,192,0,1,192, - 3,192,0,1,128,3,224,0,1,128,3,224,0,3,128,1, - 224,0,3,0,1,240,0,3,0,1,240,0,7,0,0,240, - 0,15,128,0,248,0,255,248,31,255,192,255,248,31,255,192, - 34,45,225,37,2,0,0,0,192,0,0,0,1,224,0,0, - 0,3,240,0,0,0,7,56,0,0,0,14,28,0,0,0, - 28,14,0,0,0,48,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,3,240,0,0,0,3,240,0,0,0,3,240,0,0, - 0,6,248,0,0,0,6,248,0,0,0,6,248,0,0,0, - 12,124,0,0,0,12,124,0,0,0,12,124,0,0,0,24, - 62,0,0,0,24,62,0,0,0,24,30,0,0,0,48,31, - 0,0,0,48,31,0,0,0,48,15,0,0,0,96,15,128, - 0,0,96,15,128,0,0,96,7,128,0,0,255,255,192,0, - 0,255,255,192,0,0,192,3,192,0,1,128,3,224,0,1, - 128,3,224,0,3,128,1,224,0,3,0,1,240,0,3,0, - 1,240,0,7,0,0,240,0,7,0,0,248,0,31,128,1, - 252,0,255,248,31,255,192,34,45,225,37,2,0,0,15,0, - 128,0,0,31,225,128,0,0,63,255,0,0,0,33,255,0, - 0,0,32,62,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,192,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,6,248,0,0,0,6,248,0, - 0,0,6,248,0,0,0,12,124,0,0,0,12,124,0,0, - 0,12,124,0,0,0,24,62,0,0,0,24,62,0,0,0, - 24,30,0,0,0,48,31,0,0,0,48,31,0,0,0,112, - 15,0,0,0,96,15,128,0,0,96,15,128,0,0,224,7, - 128,0,0,255,255,192,0,0,255,255,192,0,1,192,3,192, - 0,1,128,3,224,0,1,128,3,224,0,3,128,1,224,0, - 3,0,1,240,0,3,0,1,240,0,7,0,0,240,0,15, - 128,0,248,0,255,248,31,255,192,255,248,31,255,192,34,44, - 220,37,2,0,0,28,7,0,0,0,62,15,128,0,0,62, - 15,128,0,0,62,15,128,0,0,28,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,64,0,0,0,0,192,0,0,0,0,224,0,0, - 0,0,224,0,0,0,1,224,0,0,0,1,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,248,0,0,0,7, - 248,0,0,0,6,120,0,0,0,6,124,0,0,0,14,60, - 0,0,0,12,60,0,0,0,12,62,0,0,0,28,30,0, - 0,0,24,30,0,0,0,24,31,0,0,0,48,15,0,0, - 0,48,15,0,0,0,112,15,128,0,0,96,7,128,0,0, - 96,7,128,0,0,255,255,192,0,0,255,255,192,0,0,192, - 3,192,0,1,192,3,224,0,1,192,1,224,0,1,128,1, - 224,0,3,128,1,240,0,3,128,0,240,0,7,128,0,240, - 0,7,128,0,248,0,31,192,1,252,0,255,248,31,255,192, - 34,47,235,37,2,0,0,1,224,0,0,0,6,24,0,0, - 0,4,8,0,0,0,8,4,0,0,0,8,4,0,0,0, - 8,4,0,0,0,8,4,0,0,0,4,8,0,0,0,6, - 24,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,7,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,1, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,44,35,210,48,1,0,0,0,127,255,255,240,0,0,15, - 224,3,240,0,0,15,192,0,240,0,0,15,192,0,112,0, - 0,15,192,0,112,0,0,27,192,0,48,0,0,27,192,0, - 48,0,0,51,192,0,48,0,0,51,192,0,16,0,0,99, - 192,0,16,0,0,99,192,16,16,0,0,195,192,16,16,0, - 1,195,192,16,0,0,1,131,192,48,0,0,3,131,192,48, - 0,0,3,3,192,48,0,0,7,3,192,112,0,0,6,3, - 255,240,0,0,14,3,192,240,0,0,12,3,192,48,0,0, - 24,3,192,48,0,0,24,3,192,16,0,0,48,3,192,16, - 16,0,63,255,192,16,16,0,96,3,192,16,16,0,96,3, - 192,0,16,0,192,3,192,0,16,0,192,3,192,0,48,1, - 128,3,192,0,48,1,128,3,192,0,112,3,128,3,192,0, - 112,7,128,3,192,0,240,15,128,3,192,1,240,255,248,127, - 255,255,240,255,248,127,255,255,240,26,47,188,32,3,245,0, - 63,0,128,0,225,225,128,3,128,113,128,7,0,63,128,14, - 0,31,128,30,0,15,128,28,0,7,128,60,0,7,128,60, - 0,3,128,124,0,3,128,120,0,1,128,120,0,1,128,120, - 0,0,128,248,0,0,128,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,120,0,0,192,120, - 0,0,192,120,0,0,192,124,0,0,192,60,0,0,128,60, - 0,1,128,28,0,1,128,30,0,3,0,14,0,3,0,7, - 0,6,0,3,128,12,0,1,192,56,0,0,127,224,0,0, - 8,0,0,0,8,0,0,0,28,0,0,0,15,128,0,0, - 3,192,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 129,224,0,0,199,192,0,0,63,0,0,28,46,184,34,3, - 0,0,224,0,0,0,240,0,0,0,240,0,0,0,120,0, - 0,0,60,0,0,0,14,0,0,0,6,0,0,0,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 240,255,255,255,240,7,128,1,240,7,128,0,240,7,128,0, - 112,7,128,0,112,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,16,7,128,32,16,7,128,32,16,7,128,32, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,224, - 0,7,255,224,0,7,129,224,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,32,16,7,128,32,16,7,128,32, - 16,7,128,0,16,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,112,7,128,0,112,7,128,0,240,7,128,1, - 240,255,255,255,240,255,255,255,240,28,46,184,34,3,0,0, - 0,28,0,0,0,60,0,0,0,60,0,0,0,120,0,0, - 0,240,0,0,0,192,0,0,1,128,0,0,3,0,0,0, - 2,0,0,0,0,0,0,0,0,0,0,255,255,255,240,255, - 255,255,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,96,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,96,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,28,45,180,34,3,0,0,3,0, - 0,0,7,128,0,0,15,192,0,0,12,224,0,0,24,112, - 0,0,112,24,0,0,192,12,0,0,0,2,0,0,0,0, - 0,0,0,0,0,255,255,255,240,255,255,255,240,7,128,1, - 240,7,128,0,240,7,128,0,112,7,128,0,112,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,16,7,128,32, - 16,7,128,32,16,7,128,32,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,224,0,7,255,224,0,7,129,224, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,32, - 16,7,128,32,16,7,128,32,16,7,128,0,16,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,112,7,128,0, - 112,7,128,0,240,7,128,1,240,255,255,255,240,255,255,255, - 240,28,44,176,34,3,0,0,112,28,0,0,248,62,0,0, - 248,62,0,0,248,62,0,0,112,28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,255,255,240,7, - 192,7,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,32,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,32,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,14,46,92,19,3,0,224,0,240, - 0,240,0,120,0,60,0,12,0,6,0,3,0,1,0,0, - 0,0,0,255,252,255,252,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,15,128,255,252,14,46,92,19,3,0,0, - 28,0,60,0,60,0,120,0,240,0,192,1,128,3,0,0, - 0,0,0,0,0,255,252,255,252,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,192,255,252,14,45,90,19,3, - 0,3,0,7,128,7,192,14,192,24,96,112,56,192,12,0, - 0,0,0,0,0,255,252,7,192,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,255,252,255,252,15,44,88,20,3, - 0,112,28,248,62,248,62,248,62,112,28,0,0,0,0,0, - 0,0,0,127,254,7,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,7,192,127,254,32,35,140,38,4,0,255, - 255,248,0,15,128,15,0,7,128,3,128,7,128,1,192,7, - 128,0,224,7,128,0,240,7,128,0,120,7,128,0,124,7, - 128,0,60,7,128,0,62,7,128,0,62,7,128,0,30,7, - 128,0,30,7,128,0,31,7,128,0,31,7,128,0,31,255, - 254,0,31,7,128,0,31,7,128,0,31,7,128,0,31,7, - 128,0,31,7,128,0,31,7,128,0,30,7,128,0,62,7, - 128,0,62,7,128,0,60,7,128,0,60,7,128,0,120,7, - 128,0,120,7,128,0,240,7,128,0,224,7,128,1,192,7, - 128,3,128,15,128,30,0,255,255,248,0,33,46,230,38,3, - 255,0,7,1,128,0,0,31,225,128,0,0,31,255,0,0, - 0,16,255,0,0,0,48,62,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,192,7,255,128,255,192,7,255,128,7,224,0, - 120,0,7,240,0,48,0,7,240,0,48,0,7,248,0,48, - 0,6,248,0,48,0,6,252,0,48,0,6,126,0,48,0, - 6,62,0,48,0,6,63,0,48,0,6,31,0,48,0,6, - 15,128,48,0,6,15,192,48,0,6,7,192,48,0,6,7, - 224,48,0,6,3,224,48,0,6,1,240,48,0,6,1,248, - 48,0,6,0,248,48,0,6,0,252,48,0,6,0,124,48, - 0,6,0,62,48,0,6,0,63,48,0,6,0,31,48,0, - 6,0,15,176,0,6,0,15,176,0,6,0,7,240,0,6, - 0,7,240,0,6,0,3,240,0,6,0,1,240,0,6,0, - 1,240,0,15,0,0,240,0,31,128,0,240,0,255,240,0, - 112,0,0,0,0,48,0,28,46,184,33,3,1,1,192,0, - 0,1,224,0,0,1,240,0,0,0,112,0,0,0,56,0, - 0,0,28,0,0,0,12,0,0,0,6,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,255,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,30,0,7,128,60,0,3,192,60,0,3,192,124,0,3, - 224,124,0,3,224,120,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,120,0,3,224,124,0,3, - 192,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,7,0,7,0,14,0,3,128,28,0,0,192,48, - 0,0,127,224,0,28,46,184,33,3,1,0,0,56,0,0, - 0,120,0,0,0,248,0,0,0,224,0,0,1,192,0,0, - 3,128,0,0,3,0,0,0,6,0,0,0,0,0,0,0, - 0,0,0,0,31,128,0,0,255,240,0,1,192,56,0,3, - 128,28,0,7,0,14,0,14,0,7,0,30,0,7,128,30, - 0,7,128,60,0,3,192,60,0,3,192,124,0,3,224,124, - 0,3,224,120,0,1,224,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,120, - 0,1,224,120,0,1,224,120,0,3,224,124,0,3,192,60, - 0,3,192,60,0,3,192,30,0,7,128,14,0,7,0,14, - 0,7,0,7,0,14,0,3,128,28,0,0,192,48,0,0, - 127,224,0,28,46,184,33,3,0,0,6,0,0,0,15,0, - 0,0,15,0,0,0,31,128,0,0,57,192,0,0,112,224, - 0,0,192,48,0,3,128,28,0,0,0,0,0,0,0,0, - 0,0,31,128,0,0,255,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,30,0,7, - 128,60,0,3,192,60,0,3,192,124,0,3,224,124,0,3, - 224,120,0,1,224,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,120,0,3,224,124,0,3,192,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,7, - 0,7,0,14,0,3,128,28,0,0,192,48,0,0,127,224, - 0,28,45,180,33,3,0,0,120,12,0,0,255,8,0,1, - 255,248,0,1,143,248,0,1,1,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0, - 255,240,0,1,192,56,0,3,128,28,0,7,0,14,0,14, - 0,7,0,30,0,7,128,30,0,7,128,60,0,3,192,60, - 0,3,192,124,0,3,224,124,0,3,224,120,0,1,224,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,120,0,1,224,120,0,1,224,120, - 0,3,224,124,0,3,192,60,0,3,192,60,0,3,192,30, - 0,7,128,14,0,7,0,14,0,7,0,7,0,14,0,3, - 128,28,0,0,192,48,0,0,127,224,0,28,45,180,33,3, - 0,0,224,56,0,1,240,124,0,1,240,124,0,1,240,124, - 0,0,224,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,240,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,28,0,3,128,60,0,3,192,60,0,3,192,124,0,3, - 224,120,0,1,224,120,0,1,224,248,0,1,224,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,124,0,3,224,124,0,3, - 224,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,15,0,7,0,14,0,3,128,28,0,0,224,112, - 0,0,127,224,0,30,30,120,46,8,254,192,0,0,12,224, - 0,0,28,112,0,0,56,56,0,0,112,28,0,0,224,14, - 0,1,192,7,0,3,128,3,128,7,0,1,192,14,0,0, - 224,28,0,0,112,56,0,0,56,112,0,0,28,224,0,0, - 15,192,0,0,7,128,0,0,7,128,0,0,15,192,0,0, - 28,224,0,0,56,112,0,0,112,56,0,0,224,28,0,1, - 192,14,0,3,128,7,0,7,0,3,128,14,0,1,192,28, - 0,0,224,56,0,0,112,112,0,0,56,224,0,0,28,192, - 0,0,12,28,36,144,33,3,0,0,31,128,32,0,240,240, - 96,1,192,56,224,3,128,30,192,7,0,15,128,14,0,7, - 128,30,0,7,128,28,0,7,128,60,0,15,192,60,0,31, - 192,124,0,59,224,120,0,49,224,120,0,97,224,248,0,225, - 240,248,1,193,240,248,1,129,240,248,3,1,240,248,7,1, - 240,248,6,1,240,248,12,1,240,248,28,1,240,248,56,1, - 240,248,48,1,240,120,96,1,224,120,224,1,224,121,192,3, - 224,125,128,3,192,63,0,3,192,63,0,3,192,30,0,7, - 128,30,0,7,0,30,0,15,0,63,0,14,0,51,128,28, - 0,97,192,112,0,192,127,224,0,34,46,230,39,3,1,0, - 28,0,0,0,0,28,0,0,0,0,30,0,0,0,0,15, - 0,0,0,0,7,0,0,0,0,1,128,0,0,0,0,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0, - 0,255,252,3,255,192,255,252,3,255,192,7,192,0,126,0, - 7,128,0,60,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,3,192,0, - 24,0,3,192,0,48,0,1,192,0,48,0,1,224,0,96, - 0,0,224,0,96,0,0,112,0,192,0,0,60,3,128,0, - 0,15,254,0,0,34,46,230,39,3,1,0,0,7,0,0, - 0,0,15,0,0,0,0,30,0,0,0,0,28,0,0,0, - 0,56,0,0,0,0,112,0,0,0,0,96,0,0,0,0, - 128,0,0,0,0,0,0,0,0,0,0,0,0,255,252,3, - 255,192,255,252,3,255,192,7,192,0,126,0,7,128,0,60, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,3,192,0,24,0,3,192, - 0,48,0,1,192,0,48,0,1,224,0,96,0,0,224,0, - 96,0,0,112,0,192,0,0,60,3,128,0,0,15,254,0, - 0,34,46,230,39,3,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,3,240,0,0,0,3,56,0,0, - 0,6,28,0,0,0,28,6,0,0,0,48,3,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,252, - 3,255,192,7,192,0,126,0,7,128,0,60,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,3,192,0,24,0,3,192,0,48,0,3, - 192,0,48,0,1,224,0,96,0,0,240,0,224,0,0,120, - 1,192,0,0,62,7,128,0,0,15,254,0,0,34,45,225, - 39,3,0,0,28,7,0,0,0,62,15,128,0,0,62,15, - 128,0,0,62,15,128,0,0,28,7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,32,46,184,35,2,0,0,0,3,0,0,0, - 7,128,0,0,15,0,0,0,30,0,0,0,60,0,0,0, - 56,0,0,0,96,0,0,0,192,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,254,15,255,255,254,15,255,7,224, - 0,240,7,224,0,96,3,224,0,96,3,240,0,64,1,240, - 0,192,0,248,0,128,0,252,1,128,0,124,1,0,0,62, - 3,0,0,62,2,0,0,31,6,0,0,31,12,0,0,15, - 136,0,0,7,152,0,0,7,208,0,0,3,240,0,0,3, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,240,0,0,127, - 255,192,28,35,140,33,3,0,255,254,0,0,7,192,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,255,240,0,7,192,30,0,7,128,7,128,7,128,7,192, - 7,128,3,224,7,128,3,224,7,128,1,240,7,128,1,240, - 7,128,1,240,7,128,1,240,7,128,1,240,7,128,1,240, - 7,128,3,224,7,128,3,224,7,128,7,192,7,128,7,128, - 7,128,30,0,7,255,248,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,192,0,0, - 255,254,0,0,22,35,105,26,1,0,0,63,128,0,243,224, - 1,192,240,3,128,240,7,128,248,7,0,120,15,0,120,15, - 0,120,15,0,248,15,0,240,15,0,224,15,1,192,15,3, - 0,15,60,0,15,6,0,15,1,128,15,0,192,15,0,224, - 15,0,112,15,0,120,15,0,120,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,60,15,56, - 60,15,120,60,15,120,60,15,112,120,15,96,112,15,48,224, - 255,31,192,21,33,99,24,2,1,56,0,0,60,0,0,30, - 0,0,14,0,0,7,0,0,3,128,0,1,128,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,21,33,99,24, - 2,1,0,7,0,0,15,128,0,15,0,0,30,0,0,60, - 0,0,48,0,0,96,0,0,192,0,0,0,0,0,0,0, - 0,0,0,7,248,0,24,30,0,16,15,0,48,7,0,56, - 7,128,60,7,128,62,7,128,28,7,128,0,7,128,0,31, - 128,3,247,128,31,7,128,60,7,128,120,7,128,248,7,128, - 240,7,128,240,15,136,240,15,136,240,23,136,248,23,152,120, - 39,240,63,195,240,21,33,99,24,2,0,0,192,0,0,224, - 0,1,224,0,1,240,0,3,48,0,6,24,0,12,12,0, - 24,2,0,0,0,0,0,0,0,0,0,0,7,248,0,24, - 30,0,16,15,0,48,7,0,56,7,128,60,7,128,62,7, - 128,28,7,128,0,7,128,0,31,128,3,247,128,31,7,128, - 60,7,128,120,7,128,248,7,128,240,7,128,240,15,136,240, - 15,136,240,23,136,248,23,152,120,39,240,63,195,240,21,32, - 96,24,2,0,15,129,0,31,227,0,31,255,0,16,254,0, - 32,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,7,248,0,24,30,0,16,15,0,48,7,0,56,7, - 128,60,7,128,62,7,128,28,7,128,0,7,128,0,31,128, - 3,247,128,31,7,128,60,7,128,120,7,128,248,7,128,240, - 7,128,240,15,136,240,15,136,240,23,136,248,23,152,120,39, - 240,63,195,240,21,32,96,24,2,0,28,14,0,62,31,0, - 62,31,0,62,31,0,28,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,248,0,24,30,0,16,15, - 0,48,7,0,56,7,128,60,7,128,62,7,128,28,7,128, - 0,7,128,0,31,128,3,247,128,31,7,128,60,7,128,120, - 7,128,248,7,128,240,7,128,240,15,136,240,15,136,240,23, - 136,248,23,152,120,39,240,63,195,240,21,34,102,24,2,0, - 1,224,0,2,24,0,4,8,0,8,4,0,8,4,0,8, - 4,0,4,12,0,6,24,0,1,240,0,0,0,0,0,0, - 0,0,0,0,7,248,0,24,30,0,16,15,0,48,7,0, - 56,7,128,60,7,128,60,7,128,28,7,128,0,7,128,0, - 31,128,3,247,128,31,7,128,60,7,128,120,7,128,248,7, - 128,240,7,128,240,15,136,240,15,136,240,31,136,248,23,152, - 120,39,240,63,195,240,30,22,88,34,2,1,7,248,63,128, - 24,30,97,224,16,15,224,224,48,7,192,112,56,7,192,120, - 60,7,128,120,62,7,128,120,30,7,128,60,0,7,128,60, - 0,15,128,60,1,247,255,252,15,7,128,0,60,7,128,0, - 120,7,128,0,248,7,128,0,240,7,128,8,240,15,128,8, - 240,11,192,8,240,27,192,16,248,17,224,48,120,32,240,96, - 63,192,127,192,17,32,96,21,2,247,7,252,0,14,6,0, - 28,3,0,56,3,0,56,3,128,120,15,128,120,15,128,240, - 15,128,240,7,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,0, - 56,1,0,28,2,0,14,6,0,7,248,0,0,128,0,0, - 128,0,1,128,0,0,240,0,0,56,0,0,28,0,0,28, - 0,0,28,0,12,56,0,3,240,0,18,33,99,22,2,1, - 60,0,0,60,0,0,30,0,0,15,0,0,7,0,0,3, - 128,0,0,192,0,0,64,0,0,0,0,0,0,0,0,0, - 0,7,248,0,14,28,0,28,14,0,56,15,0,56,7,128, - 120,7,128,120,7,128,240,7,192,240,7,192,240,7,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,120,1,128,56,1,0,28,3,0,14,6,0, - 7,252,0,18,33,99,22,2,1,0,7,0,0,15,0,0, - 15,0,0,30,0,0,60,0,0,48,0,0,96,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,14,28,0, - 28,14,0,56,15,0,56,7,128,120,7,128,120,7,128,240, - 7,192,240,7,192,240,7,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,128, - 56,1,0,28,3,0,14,6,0,7,252,0,18,33,99,22, - 2,0,0,192,0,0,224,0,1,224,0,1,240,0,3,184, - 0,7,24,0,4,12,0,24,2,0,0,0,0,0,0,0, - 0,0,0,7,248,0,14,28,0,28,14,0,56,15,0,56, - 7,128,120,7,128,120,7,128,240,7,192,240,7,192,240,7, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,128, - 120,0,128,120,0,128,120,1,128,56,1,0,28,3,0,14, - 6,0,7,252,0,18,32,96,22,2,0,28,7,0,62,15, - 128,62,15,128,62,15,128,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,7,248,0,14,12,0,28, - 14,0,60,7,0,56,7,128,120,3,128,120,3,128,240,3, - 192,240,3,192,240,3,192,255,255,192,240,0,0,240,0,0, - 240,0,0,240,0,64,120,0,128,120,0,128,120,0,128,56, - 1,128,28,1,0,14,6,0,7,252,0,12,33,66,14,0, - 1,224,0,240,0,240,0,120,0,60,0,12,0,6,0,3, - 0,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,11,33,66,13,2,1,0,224,1,224,1,224,3, - 192,7,128,6,0,12,0,24,0,0,0,0,0,0,0,254, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,255,192,13,33,66,14,0, - 0,7,0,7,0,7,128,15,128,29,192,24,96,48,48,192, - 24,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,13,32,64,15,1,0,112,112,248,248,248,248,248, - 248,112,112,0,0,0,0,0,0,0,0,0,0,63,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,63,240,19,35,105,24,2,0,31, - 0,0,15,131,128,7,198,0,3,252,0,1,240,0,0,240, - 0,1,248,0,7,124,0,12,60,0,24,30,0,0,31,0, - 0,15,0,0,7,128,3,255,128,14,15,192,28,7,192,60, - 3,192,56,3,224,120,3,224,120,1,224,248,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 240,1,224,120,1,192,120,3,192,56,3,192,60,3,128,28, - 7,0,14,14,0,3,252,0,23,32,96,27,2,0,1,224, - 64,3,248,192,7,255,192,6,63,128,4,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,31,128,30, - 97,224,30,192,224,30,128,240,31,0,240,31,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,255,199,254,19,33, - 99,24,2,1,28,0,0,30,0,0,30,0,0,15,0,0, - 7,128,0,1,128,0,0,192,0,0,96,0,0,0,0,0, - 0,0,0,0,0,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,19,33,99,24,2,1,0,7,0, - 0,7,128,0,15,0,0,30,0,0,28,0,0,56,0,0, - 96,0,0,64,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,14,0,28,7,0,60,3,128,56,3,192,120,3,192, - 120,1,224,248,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,3, - 192,56,3,192,60,3,128,28,7,0,14,14,0,3,252,0, - 19,33,99,24,2,0,0,96,0,0,224,0,0,240,0,1, - 240,0,1,184,0,3,24,0,6,4,0,8,3,0,0,0, - 0,0,0,0,0,0,0,3,252,0,14,14,0,28,7,0, - 60,3,128,56,3,192,120,3,192,120,1,224,248,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,120,1,224,120,3,192,56,3,192,60,3,128, - 28,7,0,14,14,0,3,252,0,19,32,96,24,2,0,7, - 129,0,15,225,0,31,255,0,24,254,0,16,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,252,0, - 14,14,0,28,7,0,60,3,128,56,3,192,120,3,192,120, - 1,224,248,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,120,1,224,120,3,192, - 56,3,192,60,3,128,28,7,0,14,14,0,3,252,0,19, - 32,96,24,2,0,14,7,0,31,15,128,31,15,128,31,15, - 128,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,252,0,14,14,0,28,7,0,60,3,128,56, - 3,192,120,3,192,120,1,224,248,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 120,1,224,120,3,192,56,3,192,60,3,128,28,7,0,14, - 14,0,3,252,0,41,31,186,45,2,253,0,0,30,0,0, - 0,0,0,63,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,255,128,255,255,255,255,255,128,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,30,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,63,0,0,0,0, - 0,30,0,0,0,19,22,66,24,2,1,3,252,96,14,14, - 64,28,7,192,60,3,128,56,3,192,120,7,192,120,13,224, - 248,9,224,240,25,224,240,49,224,240,97,224,240,193,224,240, - 129,224,241,129,224,243,1,224,126,1,224,124,3,192,56,3, - 192,60,3,128,60,7,0,110,14,0,195,252,0,23,33,99, - 27,2,1,14,0,0,15,0,0,7,128,0,3,192,0,1, - 192,0,0,224,0,0,48,0,0,16,0,0,0,0,0,0, - 0,0,0,0,254,7,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,1,240,30,1,240,30,1,240,30,2,240,14,6,240, - 15,12,240,3,240,254,23,33,99,27,2,1,0,1,192,0, - 3,192,0,3,192,0,7,128,0,14,0,0,12,0,0,24, - 0,0,48,0,0,0,0,0,0,0,0,0,0,254,7,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,1,240,30,1,240, - 30,1,240,30,2,240,14,6,240,15,12,240,3,240,254,23, - 33,99,27,2,0,0,48,0,0,56,0,0,120,0,0,124, - 0,0,204,0,1,134,0,3,3,0,6,0,128,0,0,0, - 0,0,0,0,0,0,254,7,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,1,240,30,1,240,30,1,240,30,2,240,14, - 6,240,15,12,240,3,240,254,23,32,96,27,2,0,7,3, - 128,15,135,192,15,135,192,15,135,192,7,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,7,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,1,240,30,1,240,30, - 1,240,30,2,240,14,6,240,15,12,240,3,240,254,24,45, - 135,26,1,246,0,0,240,0,0,240,0,1,224,0,1,192, - 0,3,128,0,7,0,0,6,0,0,12,0,0,24,0,0, - 0,0,0,0,0,0,0,0,255,225,255,31,0,120,15,0, - 48,15,0,48,7,0,32,7,128,96,7,128,96,3,192,64, - 3,192,192,3,192,192,1,224,128,1,225,128,0,225,128,0, - 241,128,0,241,0,0,115,0,0,123,0,0,122,0,0,62, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,24,0, - 0,24,0,0,24,0,24,48,0,60,48,0,60,48,0,60, - 96,0,56,96,0,31,192,0,15,0,0,20,46,138,25,2, - 243,30,0,0,126,0,0,254,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,15,192,30,63,224,30,97,240,30,192,240,30,128, - 240,31,128,240,31,0,240,31,0,240,30,0,240,30,0,240, - 30,1,224,30,1,224,30,1,192,30,3,128,30,3,128,30, - 7,0,30,6,0,30,12,0,30,24,0,30,48,0,30,192, - 0,31,128,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,60,0,0,240,0,0,128,0,0,24,43,129,26,1, - 245,1,192,224,3,225,240,3,225,240,3,225,240,1,192,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 225,255,31,128,120,15,0,48,15,0,48,7,128,32,7,128, - 96,7,128,96,3,192,64,3,192,64,3,192,192,1,224,128, - 1,224,128,0,225,128,0,241,128,0,241,0,0,115,0,0, - 123,0,0,122,0,0,62,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,24,0,0,24,0,0,24,0,24,48,0, - 60,48,0,60,48,0,60,96,0,56,96,0,31,192,0,15, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=46 x= 6 y=14 dx=45 dy= 0 ascent=36 len=246 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x= 0 y=-10 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =36 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35n[1588] U8G_FONT_SECTION("u8g_font_osr35n") = { - 0,128,62,216,241,34,0,0,0,0,42,58,0,36,246,34, - 0,18,20,60,25,4,14,0,224,0,1,224,0,1,224,0, - 1,224,0,224,195,128,240,135,192,248,143,192,60,159,128,3, - 248,0,1,224,0,3,240,0,30,190,0,124,143,128,248,135, - 192,240,195,192,97,193,128,1,224,0,1,224,0,1,224,0, - 0,224,0,41,41,246,45,2,248,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,7, - 15,15,14,4,247,120,252,252,254,126,6,6,6,4,12,8, - 24,48,96,64,12,3,6,18,3,11,255,240,255,240,255,240, - 6,5,5,14,4,1,120,252,252,252,120,16,46,92,22,3, - 246,0,3,0,3,0,3,0,6,0,6,0,6,0,12,0, - 12,0,12,0,24,0,24,0,24,0,48,0,48,0,48,0, - 48,0,96,0,96,0,96,0,192,0,192,0,192,1,128,1, - 128,1,128,3,0,3,0,3,0,6,0,6,0,6,0,12, - 0,12,0,12,0,24,0,24,0,24,0,48,0,48,0,48, - 0,96,0,96,0,96,0,96,0,192,0,192,0,23,34,102, - 28,2,0,0,124,0,1,199,0,7,1,128,6,0,192,14, - 0,224,28,0,112,60,0,120,60,0,120,56,0,56,120,0, - 60,120,0,60,120,0,60,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,120,0,60,120,0,60,120,0,60,120,0, - 60,60,0,120,60,0,120,28,0,112,28,0,112,14,0,224, - 7,1,192,3,131,128,0,254,0,17,34,102,28,6,0,0, - 64,0,0,64,0,0,192,0,0,192,0,1,192,0,7,192, - 0,255,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,255, - 255,128,255,255,128,21,34,102,28,4,0,3,252,0,14,31, - 0,16,7,192,32,3,224,96,1,240,64,1,240,192,0,240, - 192,0,248,224,0,248,252,0,248,254,0,248,126,0,248,126, - 0,240,62,1,240,0,1,224,0,3,192,0,3,128,0,7, - 0,0,14,0,0,28,0,0,112,0,0,224,0,1,192,0, - 3,0,0,6,0,16,12,0,16,24,0,16,16,0,16,48, - 0,48,48,0,112,127,255,240,127,255,240,127,255,240,127,255, - 240,21,34,102,28,4,0,3,248,0,14,31,0,24,7,128, - 48,3,192,112,3,192,120,1,224,124,1,224,126,1,224,126, - 1,224,60,1,224,0,1,224,0,3,192,0,3,192,0,7, - 128,0,14,0,15,248,0,31,143,0,14,3,128,0,3,224, - 0,1,224,0,1,240,0,0,248,0,0,248,0,0,248,60, - 0,248,126,0,248,254,0,248,254,0,248,252,1,240,224,1, - 240,224,3,224,96,3,192,48,15,0,15,254,0,23,34,102, - 28,3,0,0,1,128,0,1,128,0,3,128,0,7,128,0, - 7,128,0,15,128,0,31,128,0,31,128,0,55,128,0,119, - 128,0,231,128,0,199,128,1,199,128,3,135,128,3,7,128, - 6,7,128,14,7,128,12,7,128,24,7,128,56,7,128,48, - 7,128,96,7,128,224,7,128,255,255,254,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,3,255,254,3,255,254,21,35,105,28,4,0,48, - 0,64,60,3,192,63,255,128,63,255,0,63,252,0,55,240, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,0, - 48,0,0,48,0,0,51,254,0,60,7,128,56,3,192,48, - 1,224,48,1,240,48,1,240,0,0,240,0,0,248,0,0, - 248,0,0,248,0,0,248,60,0,248,126,0,248,254,0,248, - 254,0,240,252,1,240,248,1,224,240,1,224,112,3,192,112, - 7,128,60,31,0,15,252,0,21,34,102,28,4,0,0,126, - 0,1,193,128,3,128,192,7,0,64,14,0,224,28,1,224, - 28,3,224,56,3,224,56,3,192,120,0,0,120,0,0,120, - 0,0,120,0,0,240,126,0,241,255,128,243,131,192,247,1, - 224,254,1,240,252,0,240,252,0,240,248,0,248,248,0,120, - 248,0,120,248,0,120,120,0,120,120,0,120,120,0,248,120, - 0,240,56,0,240,60,0,224,28,1,224,14,3,192,7,7, - 128,1,254,0,19,34,102,28,5,0,255,255,224,255,255,224, - 255,255,224,255,255,224,224,0,224,192,0,64,128,0,64,128, - 0,192,128,0,128,128,1,128,0,1,128,0,3,0,0,2, - 0,0,6,0,0,12,0,0,24,0,0,24,0,0,48,0, - 0,112,0,0,112,0,0,224,0,0,224,0,1,224,0,1, - 224,0,3,224,0,3,224,0,3,224,0,7,240,0,7,240, - 0,7,240,0,7,240,0,7,240,0,3,240,0,3,224,0, - 23,34,102,28,3,0,1,254,0,7,135,128,30,1,192,56, - 0,224,120,0,112,112,0,112,240,0,56,240,0,56,240,0, - 56,240,0,56,248,0,56,252,0,112,126,0,112,127,192,224, - 63,241,192,31,255,0,7,255,128,7,255,224,12,63,248,56, - 7,252,112,1,252,112,0,126,224,0,62,224,0,62,224,0, - 62,224,0,30,224,0,30,224,0,28,96,0,60,112,0,56, - 48,0,120,24,0,240,14,1,192,3,255,0,21,34,102,28, - 4,0,1,248,0,7,142,0,14,3,0,28,1,128,56,1, - 192,120,1,224,120,0,224,120,0,240,240,0,240,240,0,240, - 240,0,240,240,0,248,240,0,248,248,0,248,120,1,248,120, - 1,248,120,3,248,60,7,120,30,14,120,15,252,120,3,240, - 120,0,0,240,0,0,240,0,0,240,0,0,240,60,0,224, - 124,0,224,124,1,192,124,1,192,120,3,128,112,3,0,56, - 6,0,28,28,0,15,248,0,6,22,22,14,4,1,120,252, - 252,252,120,0,0,0,0,0,0,0,0,0,0,0,0,120, - 252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=26 dx=52 dy= 0 ascent=37 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =37 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35r[10371] U8G_FONT_SECTION("u8g_font_osr35r") = { - 0,128,62,216,241,35,12,236,30,116,32,127,246,37,245,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01type[1163] U8G_FONT_SECTION("u8g_font_p01type") = { - 0,5,6,0,254,4,1,81,2,129,32,255,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,1,5,5,2,0, - 255,128,0,128,128,128,255,255,255,255,1,5,5,3,1,255, - 128,128,0,128,128,255,255,255,255,5,5,5,6,0,255,40, - 80,160,80,40,3,2,2,4,0,0,224,32,3,1,1,4, - 0,1,224,255,255,255,3,5,5,4,0,255,64,224,64,0, - 224,255,255,255,255,255,1,1,1,2,0,1,128,255,255,255, - 5,5,5,6,0,255,160,80,40,80,160,255,255,255,4,5, - 5,5,0,255,32,0,96,128,112,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 3,3,3,4,0,0,160,64,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,5,5,4,0,255,64,0, - 224,0,64,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 1 dx= 5 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 4 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typen[186] U8G_FONT_SECTION("u8g_font_p01typen") = { - 0,5,6,0,254,5,0,0,0,0,42,58,0,4,255,5, - 0,3,3,3,4,0,0,160,64,160,3,3,3,4,0,0, - 64,224,64,2,2,2,3,0,255,64,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,4,4,4,5,0,255,16, - 32,64,128,3,5,5,4,0,255,96,160,160,160,192,1,5, - 5,2,0,255,128,128,128,128,128,3,5,5,4,0,255,192, - 32,224,128,96,3,5,5,4,0,255,192,32,192,32,192,3, - 5,5,4,0,255,160,160,224,32,32,3,5,5,4,0,255, - 96,128,224,32,192,3,5,5,4,0,255,96,128,224,160,192, - 3,5,5,4,0,255,224,32,32,64,64,3,5,5,4,0, - 255,96,160,224,160,192,3,5,5,4,0,255,96,160,224,32, - 192,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typer[938] U8G_FONT_SECTION("u8g_font_p01typer") = { - 0,5,6,0,254,4,1,81,2,129,32,127,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[1140] U8G_FONT_SECTION("u8g_font_pixelle_micro") = { - 0,6,8,255,254,5,1,97,2,188,32,255,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 6 x= 0 y= 1 dx= 4 dy= 0 ascent= 6 len= 6 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[189] U8G_FONT_SECTION("u8g_font_pixelle_micron") = { - 0,6,8,255,254,5,0,0,0,0,42,58,0,6,255,5, - 0,3,4,4,4,0,0,64,224,64,160,3,3,3,4,0, - 0,64,224,64,1,2,2,2,0,255,128,128,3,1,1,4, - 0,1,224,1,1,1,2,0,0,128,3,6,6,4,0,0, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,224,160, - 64,3,5,5,4,0,0,192,64,64,64,224,3,5,5,4, - 0,0,64,160,32,64,224,3,5,5,4,0,0,192,32,64, - 32,192,3,5,5,4,0,0,160,160,224,32,32,3,5,5, - 4,0,0,224,128,224,32,192,3,5,5,4,0,0,64,160, - 192,160,64,3,5,5,4,0,0,224,32,64,64,128,3,5, - 5,4,0,0,64,160,64,160,64,3,5,5,4,0,0,64, - 160,96,160,64,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[1012] U8G_FONT_SECTION("u8g_font_pixelle_micror") = { - 0,6,8,255,254,5,1,97,2,188,32,127,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255}; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10[2560] U8G_FONT_SECTION("u8g_font_profont10") = { - 0,5,9,0,254,6,1,126,2,248,32,255,254,8,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0,0,0,0,5,0,0,0,0,0,5,0,0,2,3, - 3,5,0,255,64,64,128,3,9,9,5,1,254,32,64,64, - 224,64,64,64,64,128,4,3,3,5,0,255,80,80,160,5, - 1,1,5,0,0,168,3,5,5,5,1,1,64,224,64,64, - 64,3,5,5,5,1,1,64,224,64,224,64,3,2,2,5, - 1,5,64,160,5,6,6,5,0,0,120,208,224,112,248,112, - 4,8,8,5,0,0,80,32,112,128,96,16,144,96,2,3, - 3,5,0,0,64,128,64,4,6,6,5,0,0,112,160,176, - 160,160,112,0,0,0,5,0,0,0,0,0,5,0,0,0, - 0,0,5,0,0,0,0,0,5,0,0,2,3,3,5,2, - 3,64,128,128,2,3,3,5,1,3,64,64,128,4,3,3, - 5,0,3,80,160,160,4,3,3,5,0,3,80,80,160,4, - 4,4,5,0,1,96,240,240,96,2,1,1,5,1,2,192, - 5,1,1,5,0,2,248,4,2,2,5,0,5,80,160,5, - 3,3,5,0,3,248,88,88,4,7,7,5,0,0,80,32, - 0,112,224,16,224,2,3,3,5,0,0,128,64,128,4,4, - 4,5,0,0,112,176,160,80,0,0,0,5,0,0,0,0, - 0,5,0,0,4,8,8,5,0,0,80,0,144,144,160,64, - 64,64,0,0,0,5,0,0,1,6,6,5,2,0,128,0, - 128,128,128,128,4,6,6,5,0,255,32,96,176,192,112,64, - 4,6,6,5,0,0,96,128,192,128,144,224,4,4,4,5, - 0,0,144,96,96,144,3,6,6,5,1,0,160,64,224,64, - 224,64,1,8,8,5,2,255,128,128,128,0,0,128,128,128, - 4,8,8,5,0,255,96,144,64,160,80,32,144,96,2,1, - 1,5,1,5,192,4,6,6,5,0,0,192,32,208,208,32, - 192,3,5,5,5,1,2,96,160,96,0,224,5,3,3,5, - 0,0,72,144,72,4,2,2,5,0,1,240,16,3,1,1, - 5,0,2,224,4,5,5,5,0,1,192,32,208,208,176,2, - 1,1,5,1,5,192,3,3,3,5,1,3,64,160,64,3, - 4,4,5,0,0,64,224,64,224,2,3,3,5,1,4,128, - 64,192,2,3,3,5,1,4,192,64,192,2,1,1,5,2, - 5,192,4,5,5,5,0,255,160,160,160,208,128,4,6,6, - 5,0,0,112,176,176,112,48,48,1,1,1,5,2,2,128, - 2,2,2,5,1,254,192,192,2,3,3,5,1,4,192,64, - 64,3,5,5,5,1,2,64,160,64,0,224,5,3,3,5, - 0,0,144,72,144,5,7,7,5,0,0,192,72,80,32,72, - 152,8,5,7,7,5,0,0,192,72,80,32,80,136,24,5, - 7,7,5,0,0,192,72,208,32,72,152,8,4,6,6,5, - 0,0,32,0,32,64,144,96,4,8,8,5,0,0,64,32, - 96,144,144,240,144,144,4,8,8,5,0,0,32,64,96,144, - 144,240,144,144,4,8,8,5,0,0,32,80,0,96,144,240, - 144,144,4,8,8,5,0,0,80,160,0,96,144,240,144,144, - 4,8,8,5,0,0,80,0,96,144,144,240,144,144,4,8, - 8,5,0,0,32,80,32,96,144,240,144,144,4,6,6,5, - 0,0,112,160,240,160,160,176,4,8,8,5,0,254,96,144, - 128,128,144,96,32,64,4,8,8,5,0,0,64,32,240,128, - 224,128,128,240,4,8,8,5,0,0,32,64,240,128,224,128, - 128,240,4,8,8,5,0,0,32,80,240,128,224,128,128,240, - 4,8,8,5,0,0,80,0,240,128,224,128,128,240,3,8, - 8,5,1,0,128,64,224,64,64,64,64,224,3,8,8,5, - 1,0,32,64,224,64,64,64,64,224,3,8,8,5,1,0, - 64,160,0,224,64,64,64,224,3,8,8,5,1,0,160,0, - 224,64,64,64,64,224,4,6,6,5,0,0,96,80,208,80, - 80,96,4,8,8,5,0,0,80,160,144,208,176,144,144,144, - 4,8,8,5,0,0,64,32,96,144,144,144,144,96,4,8, - 8,5,0,0,32,64,96,144,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,8,8,5,0,0,80,0, - 96,144,144,144,144,96,3,3,3,5,0,1,160,64,160,4, - 6,6,5,0,0,96,144,176,208,144,96,4,8,8,5,0, - 0,64,32,144,144,144,144,144,96,4,8,8,5,0,0,32, - 64,144,144,144,144,144,96,4,8,8,5,0,0,32,80,0, - 144,144,144,144,96,4,8,8,5,0,0,80,0,144,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,160,64, - 64,4,6,6,5,0,0,128,224,144,224,128,128,4,7,7, - 5,0,255,96,144,160,160,144,160,128,4,7,7,5,0,0, - 64,32,0,112,144,176,80,4,7,7,5,0,0,32,64,0, - 112,144,176,80,4,7,7,5,0,0,32,80,0,112,144,176, - 80,4,7,7,5,0,0,80,160,0,112,144,176,80,4,6, - 6,5,0,0,80,0,112,144,176,80,4,7,7,5,0,0, - 32,80,32,112,144,176,80,4,4,4,5,0,0,112,176,160, - 112,4,6,6,5,0,254,96,144,128,112,32,64,4,7,7, - 5,0,0,64,32,0,96,240,128,112,4,7,7,5,0,0, - 32,64,0,96,240,128,112,4,7,7,5,0,0,32,80,0, - 96,240,128,112,4,6,6,5,0,0,80,0,96,240,128,112, - 3,7,7,5,1,0,128,64,0,192,64,64,224,3,7,7, - 5,1,0,64,128,0,192,64,64,224,3,7,7,5,1,0, - 64,160,0,192,64,64,224,3,6,6,5,1,0,160,0,192, - 64,64,224,4,7,7,5,0,0,192,192,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,32,80,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,3,5,5, - 5,0,0,64,0,224,0,64,4,4,4,5,0,0,96,176, - 208,96,4,7,7,5,0,0,64,32,0,144,144,176,80,4, - 7,7,5,0,0,32,64,0,144,144,176,80,4,7,7,5, - 0,0,32,80,0,144,144,176,80,4,6,6,5,0,0,80, - 0,144,144,176,80,4,9,9,5,0,254,16,32,0,144,144, - 144,112,16,96,4,8,8,5,0,254,128,128,224,144,144,224, - 128,128,4,8,8,5,0,254,80,0,144,144,144,112,16,96 - }; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10r[1106] U8G_FONT_SECTION("u8g_font_profont10r") = { - 0,5,9,0,254,6,1,126,2,248,32,127,254,7,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0}; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 3 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11[2768] U8G_FONT_SECTION("u8g_font_profont11") = { - 0,6,10,0,254,7,1,158,3,55,32,255,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0, - 0,0,0,6,0,0,0,0,0,6,0,0,2,3,3,6, - 0,255,64,64,128,5,11,11,6,0,254,24,32,32,32,112, - 32,32,32,32,32,192,4,3,3,6,0,255,80,80,160,5, - 1,1,6,0,0,168,3,5,5,6,1,2,64,224,64,64, - 64,3,5,5,6,1,2,64,224,64,224,64,3,2,2,6, - 1,6,64,160,6,8,8,6,0,0,124,168,176,96,104,212, - 84,40,5,9,9,6,0,0,80,32,112,136,128,112,8,136, - 112,2,4,4,6,0,0,64,128,128,64,5,7,7,6,0, - 0,120,160,160,176,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,4,64,128,128,2,3,3,6,2,4,64, - 64,128,4,3,3,6,1,4,80,160,160,4,3,3,6,1, - 4,80,80,160,5,5,5,6,0,1,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,6,104,176,6,3,3,6,0,4,244,92,92,5,8, - 8,6,0,0,80,32,0,120,128,112,8,240,2,4,4,6, - 0,0,128,64,64,128,5,5,5,6,0,0,80,168,184,160, - 88,0,0,0,6,0,0,0,0,0,6,0,0,5,9,9, - 6,0,0,80,0,136,136,136,80,32,32,32,0,0,0,6, - 0,0,1,7,7,6,3,0,128,0,128,128,128,128,128,5, - 7,7,6,0,255,32,112,168,160,160,120,32,5,8,8,6, - 0,0,96,144,128,224,128,128,136,240,5,5,5,6,0,0, - 136,112,80,112,136,5,7,7,6,0,0,136,80,248,32,248, - 32,32,1,9,9,6,2,255,128,128,128,128,0,128,128,128, - 128,5,10,10,6,0,255,112,136,72,160,144,72,40,144,136, - 112,3,1,1,6,1,6,160,5,7,7,6,0,0,224,16, - 104,136,104,16,224,4,6,6,6,1,3,112,144,144,112,0, - 240,5,4,4,6,0,0,72,144,144,72,5,3,3,6,0, - 1,248,8,8,5,1,1,6,0,3,248,5,6,6,6,0, - 1,224,16,200,168,200,176,3,1,1,6,1,6,224,4,4, - 4,6,1,4,96,144,144,96,5,6,6,6,0,0,32,32, - 248,32,32,248,3,4,4,6,1,5,192,32,64,224,3,5, - 5,6,1,4,192,32,96,32,192,3,2,2,6,2,6,96, - 192,5,7,7,6,0,254,144,144,144,144,232,128,128,5,8, - 8,6,0,0,120,168,168,168,120,40,40,40,2,2,2,6, - 2,2,192,192,3,3,3,6,1,254,224,96,192,3,4,4, - 6,1,5,192,64,64,224,4,6,6,6,1,3,96,144,144, - 96,0,240,5,4,4,6,0,0,144,72,72,144,6,9,9, - 6,0,0,192,64,68,232,16,40,88,184,8,6,9,9,6, - 0,0,192,64,68,232,16,56,68,136,28,6,9,9,6,0, - 0,192,32,100,40,208,40,88,184,8,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,9,9,6,0,0,64,32,32, - 80,80,136,248,136,136,5,9,9,6,0,0,16,32,32,80, - 80,136,248,136,136,5,9,9,6,0,0,32,80,0,32,80, - 136,248,136,136,5,9,9,6,0,0,104,176,32,80,80,136, - 248,136,136,5,9,9,6,0,0,80,0,32,80,80,136,248, - 136,136,5,9,9,6,0,0,32,80,32,80,136,136,248,136, - 136,5,7,7,6,0,0,120,160,160,240,160,160,184,5,9, - 9,6,0,254,112,136,128,128,128,136,112,32,64,5,9,9, - 6,0,0,64,32,248,128,128,240,128,128,248,5,9,9,6, - 0,0,16,32,248,128,128,240,128,128,248,5,9,9,6,0, - 0,32,80,248,128,128,240,128,128,248,5,9,9,6,0,0, - 80,0,248,128,128,240,128,128,248,5,9,9,6,0,0,64, - 32,248,32,32,32,32,32,248,5,9,9,6,0,0,16,32, - 248,32,32,32,32,32,248,5,9,9,6,0,0,32,80,0, - 248,32,32,32,32,248,5,9,9,6,0,0,80,0,248,32, - 32,32,32,32,248,5,7,7,6,0,0,112,72,72,232,72, - 72,112,5,9,9,6,0,0,104,176,136,200,168,152,136,136, - 136,5,9,9,6,0,0,64,32,112,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,112,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,112,136,136,136,136,112,5,9, - 9,6,0,0,104,176,112,136,136,136,136,136,112,5,9,9, - 6,0,0,80,0,112,136,136,136,136,136,112,5,5,5,6, - 0,1,136,80,32,80,136,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,9,9,6,0,0,64,32,136,136,136,136, - 136,136,112,5,9,9,6,0,0,16,32,136,136,136,136,136, - 136,112,5,9,9,6,0,0,32,80,0,136,136,136,136,136, - 112,5,9,9,6,0,0,80,0,136,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,136,136,136,80,32,32,32,5, - 7,7,6,0,0,128,240,136,136,240,128,128,5,9,9,6, - 0,255,48,72,136,144,144,136,136,176,128,5,8,8,6,0, - 0,32,16,0,120,136,136,152,104,5,8,8,6,0,0,16, - 32,0,120,136,136,152,104,5,8,8,6,0,0,32,80,0, - 120,136,136,152,104,5,8,8,6,0,0,104,176,0,120,136, - 136,152,104,5,7,7,6,0,0,80,0,120,136,136,152,104, - 5,8,8,6,0,0,32,80,32,120,136,136,152,104,5,5, - 5,6,0,0,112,168,184,160,120,5,7,7,6,0,254,112, - 136,128,128,120,32,64,5,8,8,6,0,0,64,32,0,112, - 136,248,128,120,5,8,8,6,0,0,16,32,0,112,136,248, - 128,120,5,8,8,6,0,0,32,80,0,112,136,248,128,120, - 5,7,7,6,0,0,80,0,112,136,248,128,120,3,8,8, - 6,1,0,128,64,0,192,64,64,64,224,3,8,8,6,1, - 0,32,64,0,192,64,64,64,224,3,8,8,6,1,0,64, - 160,0,192,64,64,64,224,3,7,7,6,1,0,160,0,192, - 64,64,64,224,5,8,8,6,0,0,96,96,16,120,136,136, - 136,112,5,8,8,6,0,0,104,176,0,176,200,136,136,136, - 5,8,8,6,0,0,64,32,0,112,136,136,136,112,5,8, - 8,6,0,0,16,32,0,112,136,136,136,112,5,8,8,6, - 0,0,32,80,0,112,136,136,136,112,5,8,8,6,0,0, - 104,176,0,112,136,136,136,112,5,7,7,6,0,0,80,0, - 112,136,136,136,112,5,5,5,6,0,1,32,0,248,0,32, - 5,5,5,6,0,0,112,152,168,200,112,5,8,8,6,0, - 0,64,32,0,136,136,136,152,104,5,8,8,6,0,0,16, - 32,0,136,136,136,152,104,5,8,8,6,0,0,32,80,0, - 136,136,136,152,104,5,7,7,6,0,0,80,0,136,136,136, - 152,104,5,10,10,6,0,254,16,32,0,136,136,136,136,120, - 8,112,5,9,9,6,0,254,128,128,240,136,136,136,240,128, - 128,5,9,9,6,0,254,80,0,136,136,136,136,120,8,112 - }; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11r[1200] U8G_FONT_SECTION("u8g_font_profont11r") = { - 0,6,10,0,254,7,1,158,3,55,32,127,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0 - }; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 3 y= 7 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12[2907] U8G_FONT_SECTION("u8g_font_profont12") = { - 0,6,11,0,254,8,1,178,3,103,32,255,254,10,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0,0,0,0,6,0,0, - 0,0,0,6,0,0,2,3,3,6,0,255,64,64,128,5, - 12,12,6,0,254,24,32,32,32,32,112,32,32,32,32,32, - 192,4,3,3,6,0,255,80,80,160,5,1,1,6,0,0, - 168,3,6,6,6,1,2,64,224,64,64,64,64,3,6,6, - 6,1,2,64,224,64,64,224,64,3,2,2,6,1,7,64, - 160,6,9,9,6,0,0,124,164,168,80,32,104,212,84,40, - 5,10,10,6,0,0,80,32,112,136,128,112,8,8,136,112, - 2,4,4,6,0,0,64,128,128,64,5,8,8,6,0,0, - 120,160,160,176,160,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,5,64,128,128,2,3,3,6,2,5,64, - 64,128,4,3,3,6,1,5,80,160,160,4,3,3,6,1, - 5,80,80,160,5,5,5,6,0,2,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,7,104,176,6,3,3,6,0,5,244,92,92,5,9, - 9,6,0,0,80,32,0,0,120,128,112,8,240,2,4,4, - 6,0,0,128,64,64,128,5,5,5,6,0,0,80,168,184, - 160,88,0,0,0,6,0,0,0,0,0,6,0,0,5,10, - 10,6,0,0,80,0,0,136,136,136,80,32,32,32,0,0, - 0,6,0,0,1,8,8,6,3,0,128,0,128,128,128,128, - 128,128,5,7,7,6,0,255,32,112,168,160,160,120,32,5, - 9,9,6,0,0,96,144,128,224,128,128,128,136,240,5,5, - 5,6,0,1,136,112,80,112,136,5,8,8,6,0,0,136, - 80,248,32,248,32,32,32,1,10,10,6,2,255,128,128,128, - 128,0,0,128,128,128,128,5,11,11,6,0,255,112,136,72, - 160,144,136,72,40,144,136,112,3,1,1,6,1,7,160,5, - 8,8,6,0,0,224,16,104,136,136,104,16,224,4,7,7, - 6,1,3,112,144,144,112,0,0,240,5,4,4,6,0,0, - 72,144,144,72,5,3,3,6,0,2,248,8,8,5,1,1, - 6,0,3,248,5,7,7,6,0,1,224,16,200,168,168,200, - 176,3,1,1,6,1,7,224,4,4,4,6,1,5,96,144, - 144,96,5,6,6,6,0,1,32,32,248,32,32,248,3,4, - 4,6,1,6,192,32,64,224,3,5,5,6,1,5,192,32, - 96,32,192,4,2,2,6,2,7,112,224,5,7,7,6,0, - 254,144,144,144,144,232,128,128,5,9,9,6,0,0,120,168, - 168,168,120,40,40,40,40,2,2,2,6,2,3,192,192,4, - 3,3,6,1,254,240,112,224,3,4,4,6,1,6,192,64, - 64,224,4,7,7,6,1,3,96,144,144,96,0,0,240,5, - 4,4,6,0,0,144,72,72,144,6,10,10,6,0,0,192, - 64,68,232,16,32,72,152,56,8,6,10,10,6,0,0,192, - 64,68,232,16,32,88,132,8,28,6,10,10,6,0,0,192, - 32,100,40,208,32,72,152,56,8,5,8,8,6,0,0,32, - 0,32,64,128,128,136,112,5,10,10,6,0,0,64,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,16,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,0, - 32,80,80,136,248,136,136,5,10,10,6,0,0,104,176,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,80,0,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,32, - 80,80,136,136,248,136,136,5,8,8,6,0,0,120,160,160, - 240,160,160,160,184,5,10,10,6,0,254,112,136,128,128,128, - 128,136,112,32,64,5,10,10,6,0,0,64,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,16,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,32,80,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,80,0,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,64,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,16,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,32,80,0,248,32, - 32,32,32,32,248,5,10,10,6,0,0,80,0,248,32,32, - 32,32,32,32,248,6,8,8,6,0,0,120,68,68,228,68, - 68,68,120,5,10,10,6,0,0,104,176,136,200,168,152,136, - 136,136,136,5,10,10,6,0,0,64,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,16,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,32,80,0,112,136,136,136, - 136,136,112,5,10,10,6,0,0,104,176,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,80,0,112,136,136,136,136, - 136,136,112,5,5,5,6,0,2,136,80,32,80,136,5,8, - 8,6,0,0,112,136,152,168,200,136,136,112,5,10,10,6, - 0,0,64,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,32,80,0,136,136,136,136,136,136,112,5,10,10,6, - 0,0,80,0,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,80,32,32,32,5,8,8,6, - 0,0,128,240,136,136,136,240,128,128,5,10,10,6,0,255, - 48,72,136,144,144,136,136,136,176,128,5,9,9,6,0,0, - 32,16,0,0,120,136,136,152,104,5,9,9,6,0,0,16, - 32,0,0,120,136,136,152,104,5,9,9,6,0,0,32,80, - 0,0,120,136,136,152,104,5,9,9,6,0,0,104,176,0, - 0,120,136,136,152,104,5,8,8,6,0,0,80,0,0,120, - 136,136,152,104,5,9,9,6,0,0,32,80,32,0,120,136, - 136,152,104,5,5,5,6,0,0,112,168,184,160,120,5,7, - 7,6,0,254,112,136,128,128,120,32,64,5,9,9,6,0, - 0,64,32,0,0,112,136,248,128,120,5,9,9,6,0,0, - 16,32,0,0,112,136,248,128,120,5,9,9,6,0,0,32, - 80,0,0,112,136,248,128,120,5,8,8,6,0,0,80,0, - 0,112,136,248,128,120,3,9,9,6,1,0,128,64,0,0, - 192,64,64,64,224,3,9,9,6,1,0,32,64,0,0,192, - 64,64,64,224,3,9,9,6,1,0,64,160,0,0,192,64, - 64,64,224,3,8,8,6,1,0,160,0,0,192,64,64,64, - 224,5,9,9,6,0,0,96,96,16,8,120,136,136,136,112, - 5,9,9,6,0,0,104,176,0,0,176,200,136,136,136,5, - 9,9,6,0,0,64,32,0,0,112,136,136,136,112,5,9, - 9,6,0,0,16,32,0,0,112,136,136,136,112,5,9,9, - 6,0,0,32,80,0,0,112,136,136,136,112,5,9,9,6, - 0,0,104,176,0,0,112,136,136,136,112,5,8,8,6,0, - 0,80,0,0,112,136,136,136,112,5,5,5,6,0,1,32, - 0,248,0,32,5,5,5,6,0,0,112,152,168,200,112,5, - 9,9,6,0,0,64,32,0,0,136,136,136,152,104,5,9, - 9,6,0,0,16,32,0,0,136,136,136,152,104,5,9,9, - 6,0,0,32,80,0,0,136,136,136,152,104,5,8,8,6, - 0,0,80,0,0,136,136,136,152,104,5,11,11,6,0,254, - 16,32,0,0,136,136,136,136,120,8,112,5,10,10,6,0, - 254,128,128,128,240,136,136,136,240,128,128,5,10,10,6,0, - 254,80,0,0,136,136,136,136,120,8,112}; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=11 x= 2 y= 7 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12r[1258] U8G_FONT_SECTION("u8g_font_profont12r") = { - 0,6,11,0,254,8,1,178,3,103,32,127,254,9,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 4 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15[3186] U8G_FONT_SECTION("u8g_font_profont15") = { - 0,7,14,0,253,9,1,217,3,175,32,255,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0,0,0,0,7, - 0,0,0,0,0,7,0,0,2,4,4,7,0,255,64,64, - 64,128,7,14,14,7,0,254,6,8,16,16,16,56,16,16, - 16,16,16,16,32,192,5,4,4,7,0,255,72,72,72,144, - 7,1,1,7,0,0,146,3,6,6,7,2,3,64,224,64, - 64,64,64,3,6,6,7,2,3,64,224,64,64,224,64,5, - 3,3,7,1,8,32,80,136,7,10,10,7,0,0,126,164, - 168,176,96,84,170,42,42,20,6,12,12,7,0,0,68,40, - 16,120,132,128,128,120,4,4,132,120,2,5,5,7,0,0, - 64,128,128,128,64,6,9,9,7,0,0,124,144,144,144,152, - 144,144,144,124,0,0,0,7,0,0,0,0,0,7,0,0, - 0,0,0,7,0,0,0,0,0,7,0,0,2,4,4,7, - 3,5,64,128,128,128,2,4,4,7,3,5,64,64,64,128, - 5,4,4,7,1,5,72,144,144,144,5,4,4,7,1,5, - 72,72,72,144,6,6,6,7,0,2,48,120,252,252,120,48, - 4,1,1,7,1,3,240,7,1,1,7,0,3,254,6,2, - 2,7,0,8,100,152,7,4,4,7,0,5,242,94,82,82, - 6,11,11,7,0,0,68,40,16,0,0,124,128,120,4,4, - 248,2,5,5,7,0,0,128,64,64,64,128,6,6,6,7, - 0,0,104,148,156,144,144,108,0,0,0,7,0,0,0,0, - 0,7,0,0,7,12,12,7,0,0,68,0,0,130,130,130, - 68,40,16,16,16,16,0,0,0,7,0,0,1,9,9,7, - 4,0,128,0,128,128,128,128,128,128,128,5,10,10,7,0, - 254,32,32,112,168,160,160,160,120,32,32,6,11,11,7,0, - 0,96,144,128,128,240,128,128,128,132,136,240,7,7,7,7, - 0,0,130,68,56,40,56,68,130,7,10,10,7,0,0,130, - 68,40,254,16,16,254,16,16,16,1,13,13,7,3,254,128, - 128,128,128,128,0,0,0,128,128,128,128,128,6,13,13,7, - 0,255,120,132,132,68,160,144,72,36,20,136,132,132,120,4, - 1,1,7,1,8,144,6,9,9,7,0,0,240,8,116,132, - 132,132,116,8,240,5,8,8,7,1,4,120,136,136,136,120, - 0,0,248,6,5,5,7,0,0,68,136,136,136,68,6,4, - 4,7,0,1,252,4,4,4,5,1,1,7,0,3,248,6, - 8,8,7,0,1,240,8,100,148,148,228,148,136,4,1,1, - 7,1,8,240,5,5,5,7,1,6,112,136,136,136,112,5, - 6,6,7,0,1,32,32,248,32,32,248,4,5,5,7,1, - 7,96,144,32,64,240,4,5,5,7,1,7,96,144,32,144, - 96,3,3,3,7,3,8,96,224,192,6,9,9,7,0,253, - 136,136,136,136,136,244,128,128,128,6,10,10,7,0,0,60, - 84,148,148,84,60,20,20,20,20,2,2,2,7,3,3,192, - 192,2,3,3,7,2,254,192,64,128,3,5,5,7,2,7, - 192,64,64,64,224,5,8,8,7,1,4,112,136,136,136,112, - 0,0,248,6,5,5,7,0,0,136,68,68,68,136,7,12, - 12,7,0,0,96,32,32,34,116,8,16,36,76,148,30,4, - 7,12,12,7,0,0,96,32,32,34,116,8,16,44,82,132, - 8,30,7,12,12,7,0,0,96,144,32,146,100,8,16,36, - 76,148,30,4,6,9,9,7,0,0,16,0,16,32,64,128, - 128,132,120,6,12,12,7,0,0,64,32,16,48,48,72,72, - 132,252,132,132,132,6,12,12,7,0,0,8,16,32,48,48, - 72,72,132,252,132,132,132,6,12,12,7,0,0,16,40,68, - 48,48,72,72,132,252,132,132,132,6,12,12,7,0,0,100, - 152,0,48,48,72,72,132,252,132,132,132,6,12,12,7,0, - 0,72,0,0,48,48,72,72,132,252,132,132,132,6,12,12, - 7,0,0,48,72,72,48,48,72,72,132,252,132,132,132,6, - 9,9,7,0,0,124,144,144,144,248,144,144,144,156,6,11, - 11,7,0,254,120,132,128,128,128,128,128,132,120,16,32,6, - 12,12,7,0,0,64,32,16,252,128,128,128,248,128,128,128, - 252,6,12,12,7,0,0,8,16,32,252,128,128,128,248,128, - 128,128,252,6,12,12,7,0,0,16,40,68,252,128,128,128, - 248,128,128,128,252,6,12,12,7,0,0,72,0,0,252,128, - 128,128,248,128,128,128,252,7,12,12,7,0,0,64,32,16, - 254,16,16,16,16,16,16,16,254,7,12,12,7,0,0,4, - 8,16,254,16,16,16,16,16,16,16,254,7,12,12,7,0, - 0,16,40,68,254,16,16,16,16,16,16,16,254,7,12,12, - 7,0,0,72,0,0,254,16,16,16,16,16,16,16,254,6, - 9,9,7,0,0,120,68,68,68,228,68,68,68,120,6,12, - 12,7,0,0,100,152,0,132,196,164,148,140,132,132,132,132, - 6,12,12,7,0,0,64,32,16,120,132,132,132,132,132,132, - 132,120,6,12,12,7,0,0,8,16,32,120,132,132,132,132, - 132,132,132,120,6,12,12,7,0,0,16,40,68,120,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,100,152,0,120, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,72,0, - 0,120,132,132,132,132,132,132,132,120,5,5,5,7,0,2, - 136,80,32,80,136,6,9,9,7,0,0,120,132,140,148,164, - 196,132,132,120,6,12,12,7,0,0,64,32,16,132,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,8,16,32,132, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,16,40, - 68,0,132,132,132,132,132,132,132,120,6,12,12,7,0,0, - 72,0,0,132,132,132,132,132,132,132,132,120,7,12,12,7, - 0,0,4,8,16,130,130,130,68,40,16,16,16,16,6,9, - 9,7,0,0,128,248,132,132,132,248,128,128,128,6,11,11, - 7,0,255,56,68,132,136,144,144,136,132,132,152,128,6,11, - 11,7,0,0,64,32,16,0,0,124,132,132,140,148,100,6, - 11,11,7,0,0,4,8,16,0,0,124,132,132,140,148,100, - 6,11,11,7,0,0,16,40,68,0,0,124,132,132,140,148, - 100,6,10,10,7,0,0,100,152,0,0,124,132,132,140,148, - 100,6,9,9,7,0,0,72,0,0,124,132,132,140,148,100, - 6,10,10,7,0,0,48,72,72,48,124,132,132,140,148,100, - 6,6,6,7,0,0,120,164,188,160,160,124,6,8,8,7, - 0,254,120,132,128,128,128,124,16,32,6,11,11,7,0,0, - 64,32,16,0,0,120,132,252,128,128,124,6,11,11,7,0, - 0,4,8,16,0,0,120,132,252,128,128,124,6,11,11,7, - 0,0,16,40,68,0,0,120,132,252,128,128,124,6,9,9, - 7,0,0,72,0,0,120,132,252,128,128,124,4,11,11,7, - 1,0,128,64,32,0,0,96,32,32,32,32,112,4,11,11, - 7,2,0,16,32,64,0,0,192,64,64,64,64,224,5,11, - 11,7,1,0,32,80,136,0,0,96,32,32,32,32,112,4, - 9,9,7,1,0,144,0,0,96,32,32,32,32,112,6,11, - 11,7,0,0,80,32,80,8,4,124,132,132,132,132,120,6, - 10,10,7,0,0,100,152,0,0,152,164,196,132,132,132,6, - 11,11,7,0,0,64,32,16,0,0,120,132,132,132,132,120, - 6,11,11,7,0,0,4,8,16,0,0,120,132,132,132,132, - 120,6,11,11,7,0,0,16,40,68,0,0,120,132,132,132, - 132,120,6,10,10,7,0,0,100,152,0,0,120,132,132,132, - 132,120,6,9,9,7,0,0,72,0,0,120,132,132,132,132, - 120,5,5,5,7,0,1,32,0,248,0,32,6,6,6,7, - 0,0,120,140,148,164,196,120,6,11,11,7,0,0,64,32, - 16,0,0,132,132,132,140,148,100,6,11,11,7,0,0,4, - 8,16,0,0,132,132,132,140,148,100,6,11,11,7,0,0, - 16,40,68,0,0,132,132,132,140,148,100,6,9,9,7,0, - 0,72,0,0,132,132,132,140,148,100,6,14,14,7,0,253, - 4,8,16,0,0,132,132,132,132,132,124,4,4,120,6,12, - 12,7,0,253,128,128,128,248,132,132,132,132,248,128,128,128, - 6,12,12,7,0,253,72,0,0,132,132,132,132,132,124,4, - 4,120}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 3 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15r[1372] U8G_FONT_SECTION("u8g_font_profont15r") = { - 0,7,14,0,253,9,1,217,3,175,32,127,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 5 y=10 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17[3681] U8G_FONT_SECTION("u8g_font_profont17") = { - 0,14,16,0,253,11,2,35,4,78,32,255,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,4,5,5,14,0,254,48,48,48,96,192,8,17,17, - 14,0,253,7,15,24,24,24,24,60,60,24,24,24,24,24, - 24,24,240,224,7,5,5,14,0,254,54,54,54,108,216,8, - 2,2,14,0,0,219,219,4,9,9,14,2,2,96,96,240, - 240,96,96,96,96,96,4,9,9,14,2,2,96,96,240,240, - 96,240,240,96,96,6,3,3,14,1,10,48,120,204,9,13, - 26,14,0,0,63,128,127,128,217,128,219,0,222,0,124,0, - 56,0,63,0,127,128,214,128,150,128,31,128,15,0,8,14, - 14,14,0,0,102,60,24,60,126,195,192,124,62,7,195,195, - 126,60,4,7,7,14,0,0,48,96,192,192,192,96,48,8, - 11,11,14,0,0,63,127,216,216,220,220,216,216,216,127,63, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,0,0,0,14,0,0,4,5,5,14,3,6,48,96, - 192,192,192,4,5,5,14,3,6,48,48,48,96,192,7,5, - 5,14,1,6,54,108,216,216,216,7,5,5,14,1,6,54, - 54,54,108,216,7,7,7,14,0,2,56,124,254,254,254,124, - 56,5,2,2,14,2,5,248,248,9,2,4,14,0,5,255, - 128,255,128,8,3,3,14,0,9,113,219,142,9,5,10,14, - 0,6,252,128,39,128,39,128,36,128,36,128,8,13,13,14, - 0,0,102,60,24,0,0,63,255,192,252,63,3,255,252,4, - 7,7,14,0,0,192,96,48,48,48,96,192,8,8,8,14, - 0,0,36,126,219,223,223,216,127,39,0,0,0,14,0,0, - 0,0,0,14,0,0,8,14,14,14,0,0,102,102,0,195, - 195,195,195,231,126,60,24,24,24,24,0,0,0,14,0,0, - 2,11,11,14,5,0,192,192,0,192,192,192,192,192,192,192, - 192,8,12,12,14,0,254,24,24,60,126,219,219,216,216,127, - 63,24,24,8,12,12,14,0,0,120,252,204,192,240,240,192, - 192,192,199,254,252,8,8,8,14,0,0,129,66,60,36,36, - 60,66,129,8,11,11,14,0,0,195,102,60,255,255,24,255, - 255,24,24,24,2,15,15,14,3,254,192,192,192,192,192,192, - 0,0,0,192,192,192,192,192,192,8,16,16,14,0,254,60, - 126,99,99,51,216,204,198,99,51,27,204,198,198,126,60,4, - 2,2,14,2,9,144,240,8,11,11,14,0,0,120,252,134, - 123,251,195,251,123,134,252,120,6,9,9,14,2,5,60,124, - 204,204,124,60,0,252,252,8,7,7,14,0,0,51,102,204, - 204,204,102,51,8,4,4,14,0,2,255,255,3,3,8,2, - 2,14,0,4,255,255,8,10,10,14,0,1,248,252,6,243, - 251,219,243,251,222,204,5,2,2,14,2,9,248,248,6,6, - 6,14,2,6,48,120,204,204,120,48,8,9,9,14,0,0, - 24,24,24,255,255,24,24,255,255,4,6,6,14,2,8,96, - 144,16,32,64,240,4,6,6,14,2,8,96,144,32,16,144, - 96,4,4,4,14,3,9,48,112,224,192,8,11,11,14,0, - 253,204,204,204,204,204,204,255,243,192,192,192,8,13,13,14, - 0,0,63,127,219,219,219,219,127,63,27,27,27,27,27,3, - 3,3,14,3,4,224,224,224,4,5,5,14,1,253,112,112, - 48,96,192,3,6,6,14,3,8,192,64,64,64,64,224,6, - 9,9,14,2,5,48,120,204,204,120,48,0,252,252,8,7, - 7,14,0,0,204,102,51,51,51,102,204,9,14,28,14,0, - 0,96,0,32,0,32,0,32,128,33,0,114,0,4,0,8, - 0,17,0,35,0,69,0,137,0,15,128,1,0,9,14,28, - 14,0,0,96,0,32,0,32,0,32,128,33,0,114,0,4, - 0,8,0,19,0,36,128,64,128,129,0,2,0,7,128,9, - 14,28,14,0,0,48,0,72,0,16,0,8,128,73,0,50, - 0,4,0,8,0,17,0,35,0,69,0,137,0,15,128,1, - 0,8,11,11,14,0,0,24,24,0,8,24,48,96,195,195, - 126,60,8,14,14,14,0,0,96,48,24,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,6,12,24,24, - 60,60,102,102,195,255,255,195,195,195,8,14,14,14,0,0, - 24,60,102,24,60,60,102,102,195,255,255,195,195,195,8,14, - 14,14,0,0,115,219,142,24,60,60,102,102,195,255,255,195, - 195,195,8,14,14,14,0,0,102,102,0,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,24,60,36,60, - 24,60,102,102,195,255,255,195,195,195,8,11,11,14,0,0, - 63,127,216,216,252,252,216,216,216,223,223,8,14,14,14,0, - 253,60,126,195,195,192,192,192,195,195,126,60,24,48,96,8, - 14,14,14,0,0,96,48,24,255,255,192,192,252,252,192,192, - 192,255,255,8,14,14,14,0,0,6,12,24,255,255,192,192, - 252,252,192,192,192,255,255,8,14,14,14,0,0,24,60,102, - 255,255,192,192,252,252,192,192,192,255,255,8,14,14,14,0, - 0,102,102,0,255,255,192,192,252,252,192,192,192,255,255,8, - 14,14,14,0,0,96,48,24,255,255,24,24,24,24,24,24, - 24,255,255,8,14,14,14,0,0,6,12,24,255,255,24,24, - 24,24,24,24,24,255,255,8,14,14,14,0,0,24,60,102, - 255,255,24,24,24,24,24,24,24,255,255,8,14,14,14,0, - 0,102,102,0,255,255,24,24,24,24,24,24,24,255,255,8, - 11,11,14,0,0,124,126,99,99,243,243,99,99,99,126,124, - 8,14,14,14,0,0,113,219,142,195,227,243,219,207,199,195, - 195,195,195,195,8,14,14,14,0,0,96,48,24,60,126,195, - 195,195,195,195,195,195,126,60,8,14,14,14,0,0,6,12, - 24,60,126,195,195,195,195,195,195,195,126,60,8,14,14,14, - 0,0,24,60,102,0,60,126,195,195,195,195,195,195,126,60, - 8,14,14,14,0,0,113,219,142,60,126,195,195,195,195,195, - 195,195,126,60,8,14,14,14,0,0,102,102,0,60,126,195, - 195,195,195,195,195,195,126,60,8,7,7,14,0,2,195,102, - 60,24,60,102,195,8,11,11,14,0,0,60,126,195,199,207, - 219,243,227,195,126,60,8,14,14,14,0,0,96,48,24,195, - 195,195,195,195,195,195,195,195,126,60,8,14,14,14,0,0, - 6,12,24,195,195,195,195,195,195,195,195,195,126,60,8,14, - 14,14,0,0,24,60,102,0,195,195,195,195,195,195,195,195, - 126,60,8,14,14,14,0,0,102,102,0,195,195,195,195,195, - 195,195,195,195,126,60,8,14,14,14,0,0,6,12,24,195, - 195,195,195,231,126,60,24,24,24,24,8,11,11,14,0,0, - 192,192,252,254,195,195,254,252,192,192,192,8,15,15,14,0, - 254,28,62,99,195,195,198,204,204,198,195,195,222,220,192,192, - 8,13,13,14,0,0,16,24,12,4,0,63,127,195,195,199, - 207,123,51,8,13,13,14,0,0,4,12,24,16,0,63,127, - 195,195,199,207,123,51,8,12,12,14,0,0,24,60,102,0, - 63,127,195,195,199,207,123,51,8,12,12,14,0,0,113,219, - 142,0,63,127,195,195,199,207,123,51,8,11,11,14,0,0, - 102,102,0,63,127,195,195,199,207,123,51,8,12,12,14,0, - 0,24,36,36,24,63,127,195,195,199,207,123,51,8,8,8, - 14,0,0,60,126,219,223,223,216,127,63,8,11,11,14,0, - 253,60,126,195,195,192,192,127,63,24,48,96,8,13,13,14, - 0,0,32,48,24,8,0,60,126,195,255,255,192,127,63,8, - 13,13,14,0,0,4,12,24,16,0,60,126,195,255,255,192, - 127,63,8,12,12,14,0,0,24,60,102,0,60,126,195,255, - 255,192,127,63,8,11,11,14,0,0,102,102,0,60,126,195, - 255,255,192,127,63,6,13,13,14,1,0,128,192,96,32,0, - 240,240,48,48,48,48,252,252,6,13,13,14,1,0,8,24, - 48,32,0,240,240,48,48,48,48,252,252,6,12,12,14,1, - 0,48,120,204,0,240,240,48,48,48,48,252,252,6,11,11, - 14,1,0,204,204,0,240,240,48,48,48,48,252,252,8,13, - 13,14,0,0,72,48,48,72,4,62,127,195,195,195,195,126, - 60,8,12,12,14,0,0,113,219,142,0,204,222,243,227,195, - 195,195,195,8,13,13,14,0,0,32,48,24,8,0,60,126, - 195,195,195,195,126,60,8,13,13,14,0,0,4,12,24,16, - 0,60,126,195,195,195,195,126,60,8,12,12,14,0,0,24, - 60,102,0,60,126,195,195,195,195,126,60,8,12,12,14,0, - 0,113,219,142,0,60,126,195,195,195,195,126,60,8,11,11, - 14,0,0,102,102,0,60,126,195,195,195,195,126,60,8,8, - 8,14,0,2,24,24,0,255,255,0,24,24,8,8,8,14, - 0,0,60,126,199,207,243,227,126,60,8,13,13,14,0,0, - 32,48,24,8,0,195,195,195,195,199,207,123,51,8,13,13, - 14,0,0,4,12,24,16,0,195,195,195,195,199,207,123,51, - 8,12,12,14,0,0,24,60,102,0,195,195,195,195,199,207, - 123,51,8,11,11,14,0,0,102,102,0,195,195,195,195,199, - 207,123,51,8,16,16,14,0,253,4,12,24,16,0,195,195, - 195,195,195,195,127,63,3,62,60,8,14,14,14,0,253,192, - 192,192,252,254,195,195,195,195,254,252,192,192,192,8,14,14, - 14,0,253,102,102,0,195,195,195,195,195,195,127,63,3,62, - 60}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 3 y= 9 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17r[1590] U8G_FONT_SECTION("u8g_font_profont17r") = { - 0,14,16,0,253,11,2,35,4,78,32,127,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 6 y=12 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22[6454] U8G_FONT_SECTION("u8g_font_profont22") = { - 0,12,21,0,252,14,3,117,7,113,32,255,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,4,7,7,12,0, - 253,48,48,48,48,112,224,64,10,22,44,12,0,252,3,192, - 7,192,14,0,12,0,12,0,12,0,12,0,12,0,63,0, - 63,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,28,0,248,0,240,0,8,7,7,12,0,253, - 51,51,51,51,119,238,68,10,2,4,12,0,0,204,192,204, - 192,6,10,10,12,2,4,48,48,252,252,48,48,48,48,48, - 48,6,10,10,12,2,4,48,48,252,252,48,48,252,252,48, - 48,6,4,4,12,2,12,48,120,252,204,12,16,32,12,0, - 0,63,240,127,240,204,224,205,192,207,128,207,0,126,0,60, - 0,60,192,127,224,243,48,243,48,179,48,51,48,31,224,12, - 192,10,18,36,12,0,0,51,0,63,0,30,0,12,0,63, - 0,127,128,225,192,192,192,192,0,224,0,127,0,63,128,1, - 192,0,192,192,192,225,192,127,128,63,0,4,10,10,12,0, - 255,48,112,96,224,192,192,224,96,112,48,10,14,28,12,0, - 0,63,192,127,192,236,0,204,0,204,0,204,0,207,0,207, - 0,204,0,204,0,204,0,236,0,127,192,63,192,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,4,7,7,12,4,8,32,112,224,192,192, - 192,192,4,7,7,12,4,7,48,48,48,48,112,224,64,8, - 7,7,12,2,8,34,119,238,204,204,204,204,8,7,7,12, - 2,7,51,51,51,51,119,238,68,10,10,20,12,0,2,30, - 0,127,128,127,128,255,192,255,192,255,192,255,192,127,128,127, - 128,30,0,6,2,2,12,2,6,252,252,12,2,4,12,0, - 6,255,240,255,240,10,4,8,12,0,12,48,192,124,192,207, - 128,195,0,12,6,12,12,0,8,255,48,255,240,51,240,51, - 240,51,48,51,48,10,16,32,12,0,0,51,0,63,0,30, - 0,12,0,0,0,0,0,63,192,127,192,192,0,192,0,127, - 0,63,128,0,192,0,192,255,128,255,0,4,10,10,12,0, - 255,192,224,96,112,48,48,112,96,224,192,10,10,20,12,0, - 0,51,0,127,128,204,192,204,192,207,192,207,192,204,0,204, - 0,127,192,51,192,0,0,0,12,0,0,0,0,0,12,0, - 0,10,18,36,12,0,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,0,0,0,12,0, - 0,2,14,14,12,6,0,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,254,12,0,12,0,63, - 0,127,128,237,192,204,192,204,0,204,0,204,0,236,0,127, - 192,63,192,12,0,12,0,10,16,32,12,0,0,60,0,126, - 0,231,0,195,0,192,0,192,0,252,0,252,0,192,0,192, - 0,192,0,192,0,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,64,128,225,192,127,128,63,0,51,0,51,0,63, - 0,127,128,225,192,64,128,10,14,28,12,0,0,192,192,225, - 192,115,128,63,0,255,192,255,192,12,0,12,0,255,192,255, - 192,12,0,12,0,12,0,12,0,2,18,18,12,4,254,192, - 192,192,192,192,192,192,192,0,0,192,192,192,192,192,192,192, - 192,10,20,40,12,0,254,31,0,127,128,97,192,224,192,112, - 192,56,192,220,0,206,0,199,0,227,128,113,192,56,192,28, - 192,14,192,199,0,195,128,193,192,225,128,127,128,62,0,6, - 2,2,12,2,12,204,204,10,14,28,12,0,0,120,0,254, - 0,135,0,1,128,61,128,124,192,192,192,192,192,124,192,61, - 128,1,128,135,0,254,0,120,0,8,12,12,12,2,6,63, - 127,227,195,195,227,127,63,0,0,255,255,10,10,20,12,0, - 255,48,192,113,192,97,128,227,128,195,0,195,0,227,128,97, - 128,113,192,48,192,10,6,12,12,0,2,255,192,255,192,0, - 192,0,192,0,192,0,192,10,2,4,12,0,6,255,192,255, - 192,10,12,24,12,0,2,120,0,254,0,135,0,1,128,241, - 128,248,192,204,192,204,192,248,192,249,192,223,128,207,0,6, - 2,2,12,2,12,252,252,8,8,8,12,2,8,60,126,231, - 195,195,231,126,60,10,12,24,12,0,0,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,255, - 192,255,192,5,7,7,12,3,11,112,136,8,16,32,64,248, - 5,7,7,12,3,11,112,136,8,48,8,136,112,4,4,4, - 12,4,12,48,112,224,192,10,14,28,12,0,252,195,0,195, - 0,195,0,195,0,195,0,195,0,195,0,199,128,255,192,252, - 192,192,0,192,0,192,0,192,0,10,16,32,12,0,0,31, - 192,127,192,124,192,236,192,204,192,204,192,236,192,124,192,127, - 192,31,192,12,192,12,192,12,192,12,192,12,192,12,192,4, - 4,4,12,4,4,96,240,240,96,4,6,6,12,2,252,240, - 240,48,112,224,64,5,7,7,12,3,11,32,224,32,32,32, - 32,248,8,12,12,12,2,6,60,126,231,195,195,231,126,60, - 0,0,255,255,10,10,20,12,0,255,195,0,227,128,97,128, - 113,192,48,192,48,192,113,192,97,128,227,128,195,0,12,18, - 36,12,0,0,16,0,112,0,16,0,16,0,16,16,16,32, - 124,64,0,128,1,0,2,0,4,0,8,64,16,192,33,64, - 66,64,131,224,0,64,0,224,12,18,36,12,0,0,16,0, - 112,0,16,0,16,0,16,16,16,32,124,64,0,128,1,0, - 2,0,4,0,9,192,18,32,32,32,64,64,128,128,1,0, - 3,224,12,18,36,12,0,0,56,0,68,0,4,0,24,0, - 4,16,68,32,56,64,0,128,1,0,2,0,4,0,8,64, - 16,192,33,64,66,64,131,224,0,64,0,224,10,14,28,12, - 0,0,12,0,12,0,0,0,0,0,12,0,28,0,56,0, - 112,0,224,0,192,0,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,12,0,30,0, - 30,0,51,0,51,0,97,128,97,128,192,192,255,192,255,192, - 192,192,192,192,192,192,192,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,12,0,30,0,30,0,51,0,51,0, - 97,128,97,128,192,192,255,192,255,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 12,0,30,0,30,0,51,0,51,0,97,128,97,128,192,192, - 255,192,255,192,192,192,192,192,192,192,192,192,10,18,36,12, - 0,0,48,192,124,192,207,128,195,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,255,192,255,192,192,192, - 192,192,192,192,192,192,10,18,36,12,0,0,51,0,51,0, - 0,0,0,0,12,0,30,0,30,0,51,0,51,0,97,128, - 97,128,192,192,255,192,255,192,192,192,192,192,192,192,192,192, - 10,18,36,12,0,0,12,0,30,0,51,0,51,0,30,0, - 30,0,30,0,51,0,51,0,97,128,97,128,192,192,255,192, - 255,192,192,192,192,192,192,192,192,192,10,14,28,12,0,0, - 63,192,127,192,236,0,204,0,204,0,204,0,255,0,255,0, - 204,0,204,0,204,0,204,0,207,192,207,192,10,18,36,12, - 0,252,63,0,127,128,225,192,192,192,192,0,192,0,192,0, - 192,0,192,0,192,0,192,192,225,192,127,128,63,0,12,0, - 28,0,56,0,16,0,10,18,36,12,0,0,48,0,56,0, - 28,0,12,0,255,192,255,192,192,0,192,0,192,0,192,0, - 255,0,255,0,192,0,192,0,192,0,192,0,255,192,255,192, - 10,18,36,12,0,0,3,0,7,0,14,0,12,0,255,192, - 255,192,192,0,192,0,192,0,192,0,255,0,255,0,192,0, - 192,0,192,0,192,0,255,192,255,192,10,18,36,12,0,0, - 12,0,30,0,63,0,51,0,255,192,255,192,192,0,192,0, - 192,0,192,0,255,0,255,0,192,0,192,0,192,0,192,0, - 255,192,255,192,10,18,36,12,0,0,51,0,51,0,0,0, - 0,0,255,192,255,192,192,0,192,0,192,0,192,0,255,0, - 255,0,192,0,192,0,192,0,192,0,255,192,255,192,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,255,192,255,192, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,255,192,255,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,255,192,255,192,10,18,36,12, - 0,0,51,0,51,0,0,0,0,0,255,192,255,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,255,192,255,192,10,14,28,12,0,0,63,0,63,128, - 49,192,48,192,48,192,48,192,252,192,252,192,48,192,48,192, - 48,192,49,192,63,128,63,0,10,18,36,12,0,0,48,192, - 124,192,207,128,199,0,192,192,224,192,240,192,248,192,220,192, - 206,192,199,192,195,192,193,192,192,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,48,0,56,0,28,0,12,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,18,36,12, - 0,0,3,0,7,0,14,0,12,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,18,36,12,0,0,12,0,30,0, - 63,0,51,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,192,124,192,207,128,199,0,63,0, - 127,128,225,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,10,20,12,0,2,64,128,225,192,115,128, - 63,0,30,0,30,0,63,0,115,128,225,192,64,128,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,0,56,0,28,0,12,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 3,0,7,0,14,0,12,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,18,36,12,0,0,12,0,30,0,63,0, - 51,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,51,0,51,0,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,192,192,192,192,192,192,192,192,192,192, - 225,192,115,128,63,0,30,0,12,0,12,0,12,0,12,0, - 12,0,10,14,28,12,0,0,192,0,192,0,255,0,255,128, - 193,192,192,192,192,192,193,192,255,128,255,0,192,0,192,0, - 192,0,192,0,10,18,36,12,0,254,15,0,31,128,57,192, - 112,192,224,192,193,192,195,128,195,0,195,0,195,128,193,192, - 192,192,192,192,193,192,207,128,207,0,192,0,192,0,10,16, - 32,12,0,0,12,0,14,0,7,0,3,0,0,0,0,0, - 63,192,127,192,224,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,16,32,12,0,0,3,0,7,0,14,0, - 12,0,0,0,0,0,63,192,127,192,224,192,192,192,192,192, - 193,192,195,192,231,192,126,192,60,192,10,16,32,12,0,0, - 12,0,30,0,63,0,51,0,0,0,0,0,63,192,127,192, - 224,192,192,192,192,192,193,192,195,192,231,192,126,192,60,192, - 10,16,32,12,0,0,48,192,124,192,207,128,199,0,0,0, - 0,0,63,192,127,192,224,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,14,28,12,0,0,51,0,51,0, - 0,0,0,0,63,192,127,192,224,192,192,192,192,192,193,192, - 195,192,231,192,126,192,60,192,10,16,32,12,0,0,12,0, - 30,0,51,0,51,0,30,0,12,0,63,192,127,192,224,192, - 192,192,192,192,193,192,195,192,231,192,126,192,60,192,10,10, - 20,12,0,0,63,0,127,128,237,192,204,192,207,192,207,192, - 204,0,236,0,127,192,63,192,10,14,28,12,0,252,63,0, - 127,128,225,192,192,192,192,0,192,0,192,0,224,0,127,192, - 63,192,12,0,28,0,56,0,16,0,10,16,32,12,0,0, - 48,0,56,0,28,0,12,0,0,0,0,0,63,0,127,128, - 225,192,192,192,255,192,255,192,192,0,224,0,127,192,63,192, - 10,16,32,12,0,0,3,0,7,0,14,0,12,0,0,0, - 0,0,63,0,127,128,225,192,192,192,255,192,255,192,192,0, - 224,0,127,192,63,192,10,16,32,12,0,0,12,0,30,0, - 63,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 255,192,255,192,192,0,224,0,127,192,63,192,10,14,28,12, - 0,0,51,0,51,0,0,0,0,0,63,0,127,128,225,192, - 192,192,255,192,255,192,192,0,224,0,127,192,63,192,6,16, - 16,12,2,0,192,224,112,48,0,0,240,240,48,48,48,48, - 48,48,252,252,6,16,16,12,2,0,12,28,56,48,0,0, - 240,240,48,48,48,48,48,48,252,252,6,16,16,12,2,0, - 48,120,252,204,0,0,240,240,48,48,48,48,48,48,252,252, - 6,14,14,12,2,0,204,204,0,0,240,240,48,48,48,48, - 48,48,252,252,10,17,34,12,0,0,36,0,126,0,60,0, - 60,0,126,0,39,0,3,128,63,192,127,192,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,16,32,12, - 0,0,48,192,124,192,207,128,199,0,0,0,0,0,207,0, - 223,128,249,192,240,192,224,192,192,192,192,192,192,192,192,192, - 192,192,10,16,32,12,0,0,48,0,56,0,28,0,12,0, - 0,0,0,0,63,0,127,128,225,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,12,0,0,3,0, - 7,0,14,0,12,0,0,0,0,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,16, - 32,12,0,0,12,0,30,0,63,0,51,0,0,0,0,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,16,32,12,0,0,48,192,124,192,207,128, - 199,0,0,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,10,20,12, - 0,2,12,0,12,0,0,0,0,0,255,192,255,192,0,0, - 0,0,12,0,12,0,10,10,20,12,0,0,63,0,127,128, - 227,192,199,192,206,192,220,192,248,192,241,192,127,128,63,0, - 10,16,32,12,0,0,48,0,56,0,28,0,12,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,16,32,12,0,0,3,0,7,0, - 14,0,12,0,0,0,0,0,192,192,192,192,192,192,192,192, - 192,192,193,192,195,192,231,192,126,192,60,192,10,16,32,12, - 0,0,12,0,30,0,63,0,51,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,193,192,195,192,231,192,126,192, - 60,192,10,14,28,12,0,0,51,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,20,40,12,0,252,3,0,7,0,14,0, - 12,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,10,18,36,12,0,252,192,0,192,0,192,0,192,0, - 255,0,255,128,193,192,192,192,192,192,192,192,192,192,193,192, - 255,128,255,0,192,0,192,0,192,0,192,0,10,18,36,12, - 0,252,51,0,51,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,224,192,127,192,63,192,0,192, - 1,192,63,128,63,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 4 y=12 dx=12 dy= 0 ascent=18 len=40 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22r[2719] U8G_FONT_SECTION("u8g_font_profont22r") = { - 0,12,21,0,252,14,3,117,7,113,32,127,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 8 y=16 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29[8666] U8G_FONT_SECTION("u8g_font_profont29") = { - 0,16,28,0,251,19,4,198,9,234,32,255,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0,0,0,0,16,0,0,0,0,0, - 16,0,0,5,8,8,16,0,253,56,56,56,56,56,120,240, - 96,13,29,58,16,0,251,0,120,1,248,3,248,3,128,7, - 0,7,0,7,0,7,0,7,0,7,0,31,192,31,192,31, - 192,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,0,254,0,252,0,240, - 0,11,8,16,16,0,253,56,224,56,224,56,224,56,224,56, - 224,121,224,243,192,97,128,13,3,6,16,0,0,231,56,231, - 56,231,56,9,14,28,16,2,5,28,0,28,0,28,0,255, - 128,255,128,255,128,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,9,14,28,16,2,5,28,0,28,0,28, - 0,255,128,255,128,255,128,28,0,28,0,255,128,255,128,255, - 128,28,0,28,0,28,0,10,6,12,16,2,16,12,0,30, - 0,63,0,127,128,243,192,97,128,15,22,44,16,0,0,31, - 254,63,254,127,254,119,30,227,60,227,120,227,240,247,224,127, - 192,127,128,63,0,15,56,63,252,127,252,253,238,248,198,216, - 198,152,198,29,238,15,252,15,252,7,56,14,24,48,16,0, - 0,24,192,61,224,31,192,15,128,7,0,15,192,63,240,127, - 248,112,56,224,28,224,28,224,0,112,0,127,192,63,240,15, - 248,0,56,0,28,224,28,224,28,112,56,127,248,63,240,15, - 192,5,13,13,16,0,255,48,56,112,112,224,224,224,224,224, - 112,112,56,48,14,19,38,16,0,0,15,252,63,252,127,252, - 119,0,231,0,231,0,231,0,231,0,231,224,231,224,231,224, - 231,0,231,0,231,0,231,0,119,0,127,252,63,252,15,252, - 0,0,0,16,0,0,0,0,0,16,0,0,0,0,0,16, - 0,0,0,0,0,16,0,0,5,8,8,16,5,11,48,120, - 240,224,224,224,224,224,5,8,8,16,6,11,56,56,56,56, - 56,120,240,96,11,8,16,16,2,11,48,192,121,224,243,192, - 227,128,227,128,227,128,227,128,227,128,11,8,16,16,3,11, - 56,224,56,224,56,224,56,224,56,224,121,224,243,192,97,128, - 13,13,26,16,0,3,15,128,63,224,127,240,127,240,255,248, - 255,248,255,248,255,248,255,248,127,240,127,240,63,224,15,128, - 8,3,3,16,3,8,255,255,255,16,3,6,16,0,8,255, - 255,255,255,255,255,13,5,10,16,0,16,60,56,127,56,255, - 248,231,240,225,224,15,8,16,16,0,11,255,206,255,254,255, - 254,57,254,57,254,57,206,57,206,57,206,14,22,44,16,0, - 0,24,96,60,240,31,224,15,192,7,128,3,0,0,0,0, - 0,15,252,63,252,127,252,240,0,224,0,255,192,127,240,31, - 248,0,60,0,28,0,60,255,248,255,240,255,192,5,13,13, - 16,0,255,96,224,112,112,56,56,56,56,56,120,112,224,96, - 14,14,28,16,0,0,60,240,127,248,127,248,231,28,231,28, - 231,28,231,252,231,252,231,252,231,0,231,0,127,252,127,252, - 60,252,0,0,0,16,0,0,0,0,0,16,0,0,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,240,120,120,240, - 61,224,31,192,15,128,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,0,0,0,16,0,0,3,19,19,16,8,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,13,20,40,16,0,253,7,0,7,0,7,0,15, - 128,63,224,127,240,119,112,231,56,231,56,231,0,231,0,231, - 0,231,0,119,0,127,248,63,248,15,248,7,0,7,0,7, - 0,13,22,44,16,0,0,14,0,63,128,127,128,113,192,224, - 224,224,224,224,0,224,0,255,0,255,0,255,0,224,0,224, - 0,224,0,224,0,224,0,224,56,224,56,224,112,255,240,255, - 224,255,128,13,13,26,16,0,0,64,16,224,56,112,112,63, - 224,31,192,29,192,24,192,29,192,31,192,63,224,112,112,224, - 56,64,16,15,19,38,16,0,0,96,12,240,30,120,60,60, - 120,30,240,127,252,127,252,127,252,3,128,3,128,3,128,127, - 252,127,252,127,252,3,128,3,128,3,128,3,128,3,128,3, - 25,25,16,5,253,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,14,27, - 54,16,0,253,15,192,63,240,63,248,112,56,112,28,120,28, - 60,28,30,28,239,0,231,128,227,192,225,224,240,240,120,120, - 60,60,30,28,15,28,7,156,3,220,225,224,224,240,224,120, - 224,56,112,56,127,240,63,240,15,128,8,3,3,16,3,16, - 231,231,231,14,19,38,16,0,0,28,0,255,128,255,224,193, - 240,0,112,31,56,127,56,127,24,224,28,224,28,224,28,127, - 24,127,56,31,56,0,112,193,240,255,224,255,128,28,0,12, - 16,32,16,2,8,15,240,63,240,127,240,112,112,224,112,224, - 112,224,112,112,112,127,240,63,240,15,240,0,0,0,0,255, - 240,255,240,255,240,13,13,26,16,0,255,48,48,56,56,112, - 112,112,112,224,224,224,224,224,224,224,224,224,224,112,112,112, - 112,56,56,48,48,14,8,16,16,0,3,255,252,255,252,255, - 252,0,28,0,28,0,28,0,28,0,28,13,3,6,16,0, - 8,255,248,255,248,255,248,14,17,34,16,0,2,28,0,255, - 128,255,224,193,240,0,112,248,56,254,56,254,24,231,28,231, - 28,231,28,254,24,254,56,254,56,239,240,231,240,227,192,8, - 3,3,16,3,16,255,255,255,12,12,24,16,2,10,15,0, - 63,192,127,224,112,224,224,112,224,112,224,112,224,112,112,224, - 127,224,63,192,15,0,13,16,32,16,0,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,6,9,9,16, - 4,15,120,132,4,4,8,16,32,64,252,6,9,9,16,4, - 15,120,132,4,8,48,8,4,132,120,7,6,6,16,5,16, - 12,30,60,120,240,96,14,18,36,16,0,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,225,240, - 255,252,255,188,254,12,224,0,224,0,224,0,224,0,224,0, - 14,22,44,16,0,0,7,252,31,252,63,252,127,28,119,28, - 231,28,231,28,231,28,231,28,119,28,127,28,63,252,31,252, - 7,252,7,28,7,28,7,28,7,28,7,28,7,28,7,28, - 7,28,5,5,5,16,5,6,112,248,248,248,112,6,8,8, - 16,3,251,252,252,252,60,124,248,240,96,7,9,9,16,4, - 15,16,112,16,16,16,16,16,16,254,11,16,32,16,3,8, - 14,0,63,128,127,192,113,192,224,224,224,224,224,224,113,192, - 127,192,63,128,14,0,0,0,0,0,255,224,255,224,255,224, - 13,13,26,16,0,255,96,96,224,224,112,112,112,112,56,56, - 56,56,56,56,56,56,56,56,112,112,112,112,224,224,96,96, - 15,24,48,16,0,0,8,0,56,0,8,0,8,0,8,0, - 8,0,8,2,8,4,127,8,0,16,0,32,0,64,0,128, - 1,0,2,0,4,8,8,24,16,40,32,72,64,136,128,254, - 0,8,0,8,0,62,15,24,48,16,0,0,8,0,56,0, - 8,0,8,0,8,0,8,0,8,2,8,4,127,8,0,16, - 0,32,0,64,0,128,1,0,2,0,4,120,8,132,16,4, - 32,4,64,8,128,16,0,32,0,64,0,252,15,24,48,16, - 0,0,30,0,33,0,1,0,2,0,12,0,2,0,1,2, - 33,4,30,8,0,16,0,32,0,64,0,128,1,0,2,0, - 4,8,8,24,16,40,32,72,64,136,128,254,0,8,0,8, - 0,62,14,19,38,16,0,0,3,128,3,128,3,128,0,0, - 0,0,3,128,7,128,15,0,30,0,60,0,120,0,240,0, - 224,0,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,24,0,60,0,30,0,15,0,7,128,7,128, - 7,128,15,192,15,192,28,224,28,224,56,112,56,112,112,56, - 112,56,224,28,255,252,255,252,255,252,224,28,224,28,224,28, - 224,28,224,28,14,24,48,16,0,0,0,96,0,240,1,224, - 3,192,7,128,7,128,7,128,15,192,15,192,28,224,28,224, - 56,112,56,112,112,56,112,56,224,28,255,252,255,252,255,252, - 224,28,224,28,224,28,224,28,224,28,14,24,48,16,0,0, - 3,0,7,128,15,192,31,224,28,224,11,64,7,128,15,192, - 15,192,28,224,28,224,56,112,56,112,112,56,112,56,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 7,128,7,128,15,192,15,192,28,224,28,224,56,112,56,112, - 112,56,112,56,224,28,255,252,255,252,255,252,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,7,128,7,128,15,192,15,192,28,224, - 28,224,56,112,56,112,112,56,112,56,224,28,255,252,255,252, - 255,252,224,28,224,28,224,28,224,28,224,28,14,24,48,16, - 0,0,7,128,15,192,28,224,24,96,28,224,15,192,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,15,252,63,252,127,252,119,0, - 231,0,231,0,231,0,231,0,255,224,255,224,255,224,231,0, - 231,0,231,0,231,0,231,0,231,252,231,252,231,252,14,24, - 48,16,0,251,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,7,0,15,0,30,0, - 60,0,24,0,14,24,48,16,0,0,24,0,60,0,30,0, - 15,0,7,128,255,252,255,252,255,252,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,255,224,224,0,224,0,224,0, - 224,0,224,0,255,252,255,252,255,252,14,24,48,16,0,0, - 0,96,0,240,1,224,3,192,7,128,255,252,255,252,255,252, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,252,255,252,255,252, - 14,24,48,16,0,0,3,0,7,128,15,192,31,224,28,224, - 255,252,255,252,255,252,224,0,224,0,224,0,224,0,224,0, - 255,224,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,255,252,255,252,255,252,224,0,224,0, - 224,0,224,0,224,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,255,252,255,252,255,252,13,24,48,16, - 0,0,24,0,60,0,30,0,15,0,7,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,24,48,16,0,0,0,192,1,224,3,192,7,128, - 7,0,255,248,255,248,255,248,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,248,255,248,255,248,13,24,48,16,0,0,2,0, - 7,0,15,128,31,192,56,224,255,248,255,248,255,248,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,248, - 255,248,255,248,14,19,38,16,0,0,31,192,31,240,31,248, - 28,56,28,28,28,28,28,28,28,28,255,156,255,156,255,156, - 28,28,28,28,28,28,28,28,28,56,31,248,31,240,31,192, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 224,28,240,28,248,28,252,28,254,28,239,28,231,156,227,220, - 225,252,224,252,224,124,224,60,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,12,0,30,0, - 15,0,7,128,3,128,15,192,63,240,127,248,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,0,192,1,224,3,192,7,128,7,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,3,0,7,128,15,192,31,224, - 60,240,24,96,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,24,48,16,0,0,60,56, - 127,56,255,248,231,240,225,224,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,56,112,56,112,56,112,0,0,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,13,26,16,0,3,96,24,240,60,120,120, - 60,240,31,224,15,192,7,128,15,192,31,224,60,240,120,120, - 240,60,96,24,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,60,224,124,224,252,225,252,227,220,231,156,239,28, - 254,28,252,28,248,28,240,28,112,56,127,248,63,240,15,192, - 14,24,48,16,0,0,24,0,60,0,30,0,15,0,7,128, - 227,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,24,48,16,0,0,0,96,0,240, - 1,224,3,192,7,128,227,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,3,0,7,128,15,192,31,224,60,240,24,96,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,56,112,56,112,56,112,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,13,24,48,16,0,0,0,96, - 0,240,1,224,3,192,7,128,227,56,224,56,224,56,224,56, - 224,56,224,56,224,56,240,120,120,240,61,224,31,192,15,128, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,14,19, - 38,16,0,0,224,0,224,0,224,0,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,56,255,248,255,240,255,192, - 224,0,224,0,224,0,224,0,224,0,13,25,50,16,0,253, - 3,192,7,224,15,240,30,120,60,56,120,56,240,56,224,56, - 224,112,224,224,224,224,224,224,224,224,224,112,224,56,224,56, - 224,56,224,56,224,120,227,240,227,224,227,192,224,0,224,0, - 224,0,14,22,44,16,0,0,6,0,15,0,7,128,3,192, - 1,224,0,192,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,21,42,16,0,0,60,56, - 127,56,255,248,231,240,225,224,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,21,42,16,0,0,7,192,15,224,12,96, - 12,96,12,96,15,224,7,192,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,14,28,16,0,0,15,192,63,240,127,248, - 119,120,231,60,231,28,231,252,231,252,231,252,231,0,119,0, - 127,252,63,252,15,252,14,19,38,16,0,251,15,192,63,240, - 127,248,112,56,224,28,224,28,224,0,224,0,224,0,224,0, - 112,0,127,252,63,252,15,252,7,0,15,0,30,0,60,0, - 24,0,14,22,44,16,0,0,24,0,60,0,30,0,15,0, - 7,128,3,0,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,255,252,255,252,255,252,224,0,112,0, - 127,252,63,252,15,252,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,9,22,44,16,2,0,96,0,240,0,120,0, - 60,0,30,0,12,0,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,9,22,44,16,2,0,3,0,7,128, - 15,0,30,0,60,0,24,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,10,22,44,16,2,0,12,0, - 30,0,63,0,127,128,243,192,97,128,0,0,0,0,252,0, - 252,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,128,255,128,255,128,9,19,38,16,2,0, - 227,128,227,128,227,128,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,14,23,46,16,0,0,49,128,123,192, - 63,128,31,0,31,0,63,128,123,192,49,224,0,240,15,248, - 63,252,127,252,112,60,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,21,42,16,0,0, - 60,56,127,56,255,248,231,240,225,224,0,0,0,0,225,192, - 231,240,239,248,254,56,248,28,240,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,14,22,44,16,0,0, - 24,0,60,0,30,0,15,0,7,128,3,0,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,22,44,16, - 0,0,0,96,0,240,1,224,3,192,7,128,3,0,0,0, - 0,0,15,192,63,240,127,248,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,22, - 44,16,0,0,3,0,7,128,15,192,31,224,60,240,24,96, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,21,42,16,0,0,60,56,127,56,255,248,231,240,225,224, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,19,38,16,0,0,56,112,56,112,56,112,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,13,14,28,16, - 0,2,7,0,7,0,7,0,0,0,0,0,255,248,255,248, - 255,248,0,0,0,0,0,0,7,0,7,0,7,0,14,14, - 28,16,0,0,15,192,63,240,127,248,112,120,224,252,225,220, - 227,156,231,28,238,28,252,28,120,56,127,248,63,240,15,192, - 14,22,44,16,0,0,24,0,60,0,30,0,15,0,7,128, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,22,44,16,0,0,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,3,0,7,128,15,192, - 31,224,60,240,24,96,0,0,0,0,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,19,38,16,0,0,56,112,56,112, - 56,112,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,27,54,16,0,251,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,28,127,252, - 63,252,15,252,0,28,0,56,31,248,31,240,31,192,14,24, - 48,16,0,251,224,0,224,0,224,0,224,0,224,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,56,255,248,255,240,255,192,224,0,224,0,224,0, - 224,0,224,0,14,24,48,16,0,251,56,112,56,112,56,112, - 0,0,0,0,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,28,127,252,63,252,31,252, - 0,28,0,56,31,248,31,240,31,224}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 5 y=15 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29r[3719] U8G_FONT_SECTION("u8g_font_profont29r") = { - 0,16,28,0,251,19,4,198,9,234,32,127,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 7 h= 8 x= 0 y= 6 dx= 8 dy= 0 ascent=10 len= 8 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[1376] U8G_FONT_SECTION("u8g_font_robot_de_niro") = { - 0,10,10,255,0,6,1,97,2,193,32,255,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,4,7,7,5,0,2,96,144,64,224,64,128, - 240,255,255,255,4,7,7,5,0,2,96,128,96,144,96,16, - 96,255,7,8,8,8,0,2,124,130,154,170,162,154,130,124, - 255,255,255,255,7,8,8,8,0,2,124,130,186,170,178,170, - 130,124,255,255,255,255,255,255,255,6,5,5,7,0,3,108, - 232,104,40,40,255,255,255,255,255,255,255,255,255,255,255,255, - 255,4,8,8,4,255,2,80,0,48,80,112,80,80,128,255, - 255,3,7,7,4,0,1,96,128,128,160,96,64,32,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,3,7,7,4, - 0,3,160,0,96,160,160,160,64,4,4,4,5,0,4,144, - 96,96,144,255,255,255,255,4,7,7,5,0,3,80,0,160, - 160,160,160,80,255,255,4,7,7,4,255,1,32,80,96,80, - 96,64,128,255,255,255,255,4,6,6,5,0,3,80,0,96, - 160,160,80,255,255,255,4,6,6,5,0,3,96,0,96,160, - 208,96,4,6,6,5,0,3,96,0,96,160,208,96,4,7, - 7,5,0,3,64,160,0,96,160,208,96,255,255,255,255,255, - 255,255,255,255,255,255,3,6,6,4,0,3,160,0,96,160, - 160,192,5,5,5,6,0,3,32,0,248,0,32,255,255,255, - 255,4,6,6,5,0,3,80,0,160,160,160,80,255,255,255 - }; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 6 dx= 5 dy= 0 ascent= 9 len= 5 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[187] U8G_FONT_SECTION("u8g_font_robot_de_niron") = { - 0,10,10,255,0,5,0,0,0,0,42,58,0,9,0,5, - 0,3,3,3,4,0,6,160,64,160,3,3,3,4,0,4, - 64,224,64,2,2,2,3,0,2,64,128,3,1,1,4,0, - 5,224,1,1,1,2,0,3,128,3,5,5,4,0,3,32, - 32,64,128,128,3,5,5,4,0,3,64,160,160,160,64,3, - 5,5,4,0,3,192,64,64,64,224,3,5,5,4,0,3, - 192,32,96,128,224,3,5,5,4,0,3,192,32,224,32,224, - 3,5,5,4,0,3,160,160,224,32,32,3,5,5,4,0, - 3,96,128,224,32,224,3,5,5,4,0,3,96,128,224,160, - 64,4,5,5,5,0,3,224,32,112,32,32,3,5,5,4, - 0,3,96,160,224,160,192,3,5,5,4,0,3,96,160,224, - 32,192,1,3,3,2,0,4,128,0,128}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 6 h= 7 x= 0 y= 6 dx= 7 dy= 0 ascent=10 len= 7 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[1041] U8G_FONT_SECTION("u8g_font_robot_de_niror") = { - 0,10,10,255,0,6,1,97,2,193,32,127,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=15 x= 3 y= 9 dx=11 dy= 0 ascent=11 len=15 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =11 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08[2612] U8G_FONT_SECTION("u8g_font_symb08") = { - 0,11,15,255,252,7,1,152,3,60,32,255,254,11,252,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,6,7,7,7, - 0,0,140,212,112,32,32,32,112,3,3,3,3,0,5,32, - 64,128,5,7,7,6,0,0,8,48,192,48,8,0,248,4, - 7,7,3,255,0,16,16,32,32,64,64,128,7,3,3,7, - 0,1,108,146,108,5,9,9,5,0,254,24,32,112,32,32, - 32,32,32,192,5,5,5,7,1,0,112,112,248,248,32,5, - 5,5,7,1,0,32,112,248,112,32,5,5,5,7,1,0, - 216,248,248,112,32,5,5,5,7,1,0,32,112,248,248,32, - 10,5,10,10,0,0,33,0,64,128,255,192,64,128,33,0, - 10,5,10,10,0,0,32,0,64,0,255,192,64,0,32,0, - 5,14,14,6,0,252,32,112,168,32,32,32,32,32,32,32, - 32,32,32,32,10,5,10,10,0,0,1,0,0,128,255,192, - 0,128,1,0,5,13,13,6,0,254,32,32,32,32,32,32, - 32,32,32,32,168,112,32,3,4,4,4,0,3,64,160,160, - 64,5,7,7,6,0,0,32,32,248,32,32,0,248,5,3, - 3,4,0,5,40,80,160,5,7,7,6,0,0,128,96,24, - 96,128,0,248,5,5,5,6,0,0,136,80,32,80,136,6, - 3,3,7,0,1,108,144,108,4,8,8,5,0,0,96,144, - 16,16,112,144,144,96,4,3,3,5,0,1,96,240,96,5, - 5,5,6,0,0,32,0,248,0,32,5,5,5,6,0,0, - 16,248,32,248,64,5,5,5,6,0,1,248,0,248,0,248, - 5,5,5,6,0,0,104,176,0,104,176,7,1,1,9,1, - 0,146,1,15,15,6,2,252,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,10,1,2,10,0,2,255,192,6, - 6,6,7,0,0,4,4,4,68,252,64,7,7,7,8,0, - 0,204,102,52,92,76,38,98,6,9,9,7,0,255,124,132, - 200,24,12,4,68,232,48,8,8,8,8,0,0,108,146,146, - 92,20,18,82,163,7,8,8,9,1,254,16,36,74,82,106, - 108,160,96,7,7,7,8,0,0,56,68,170,146,170,68,56, - 7,7,7,8,0,0,56,68,146,186,146,68,56,7,9,9, - 8,0,255,2,60,76,138,146,162,100,120,128,7,5,5,8, - 0,0,56,68,130,130,130,7,5,5,8,0,0,130,130,130, - 68,56,7,5,5,7,0,0,248,4,2,4,248,7,7,7, - 7,0,254,248,4,2,4,248,0,254,7,7,7,7,0,255, - 4,62,72,136,80,62,32,7,5,5,7,0,0,62,64,128, - 64,62,7,7,7,7,0,254,62,64,128,64,62,0,254,5, - 5,5,7,1,0,120,128,248,128,120,5,7,7,7,1,255, - 16,120,144,248,160,120,64,7,7,7,8,0,0,2,4,8, - 16,32,64,254,6,7,7,7,0,0,252,132,132,72,72,48, - 48,7,8,8,8,0,255,56,68,250,170,178,174,68,56,7, - 8,8,8,0,255,56,68,154,170,162,154,68,56,10,5,10, - 10,0,2,253,0,170,128,42,128,42,128,122,192,8,9,9, - 9,0,255,255,66,66,66,66,66,66,66,231,6,10,10,6, - 0,0,4,4,8,8,72,208,80,80,32,32,1,1,1,3, - 1,2,128,6,3,3,7,0,0,252,4,4,5,5,5,6, - 0,0,32,80,80,136,136,5,5,5,6,0,0,136,136,80, - 80,32,10,5,10,11,0,0,33,0,127,128,128,64,127,128, - 33,0,9,5,10,10,0,0,32,0,127,128,128,0,127,128, - 32,0,5,10,10,6,0,0,32,112,216,80,80,80,80,80, - 80,80,9,5,10,10,0,0,2,0,255,0,0,128,255,0, - 2,0,5,10,10,6,0,0,80,80,80,80,80,80,80,216, - 80,32,7,7,7,7,0,0,16,40,68,198,68,40,16,3, - 9,9,3,0,254,32,32,64,64,128,64,64,32,32,7,8, - 8,8,0,255,56,68,186,170,178,170,68,56,7,8,8,8, - 0,255,56,68,154,162,162,154,68,56,8,5,5,9,0,2, - 250,85,85,85,85,6,9,9,7,0,255,252,132,64,32,16, - 32,64,132,252,3,14,14,4,1,252,32,64,64,128,128,128, - 128,128,128,128,128,128,128,128,1,15,15,4,1,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,3,15,15, - 4,1,252,128,128,128,128,128,128,128,128,128,128,128,128,64, - 64,32,3,14,14,4,1,252,224,128,128,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,4,1,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,4,1, - 254,128,128,128,128,128,128,128,128,128,128,128,128,224,3,14, - 14,5,2,252,96,128,128,128,128,128,128,128,128,128,128,128, - 128,128,3,15,15,5,0,252,32,32,32,32,32,64,128,64, - 32,32,32,32,32,32,32,3,13,13,5,2,254,128,128,128, - 128,128,128,128,128,128,128,128,128,96,1,15,15,5,2,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,255, - 3,9,9,3,0,254,128,128,64,64,32,64,64,128,128,3, - 12,12,3,0,254,32,64,64,64,64,64,64,64,64,64,64, - 128,4,14,14,7,3,252,48,80,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,7,0,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,13,13,7,0,254, - 16,16,16,16,16,16,16,16,16,16,16,160,192,3,14,14, - 4,0,252,128,64,64,32,32,32,32,32,32,32,32,32,32, - 32,1,15,15,4,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,3,15,15,4,0,252,32,32,32,32, - 32,32,32,32,32,32,32,32,64,64,128,3,14,14,4,0, - 252,224,32,32,32,32,32,32,32,32,32,32,32,32,32,1, - 15,15,4,2,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,13,13,4,0,254,32,32,32,32,32,32, - 32,32,32,32,32,32,224,3,14,14,5,0,252,192,32,32, - 32,32,32,32,32,32,32,32,32,32,32,3,15,15,5,2, - 252,128,128,128,128,128,64,32,64,128,128,128,128,128,128,128, - 3,13,13,5,0,254,32,32,32,32,32,32,32,32,32,32, - 32,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 9 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08r[1211] U8G_FONT_SECTION("u8g_font_symb08r") = { - 0,11,15,255,252,7,1,152,3,60,32,127,254,10,253,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=15 x= 7 y=11 dx=15 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10[3433] U8G_FONT_SECTION("u8g_font_symb10") = { - 0,16,15,255,253,10,2,6,4,121,32,255,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,8,10,10,9,0,0,198,105,43,16,16,16,16,16, - 16,56,4,3,3,4,0,7,48,96,128,7,9,9,8,0, - 0,2,12,48,192,48,12,2,0,254,5,10,10,4,255,0, - 8,8,16,16,32,32,64,64,128,128,9,4,8,10,0,2, - 119,0,152,128,140,128,119,0,7,13,13,7,0,253,6,10, - 8,8,60,16,16,16,32,32,32,160,192,9,7,14,11,1, - 0,28,0,28,0,28,0,235,128,255,128,235,128,8,0,7, - 7,7,11,2,0,16,56,124,254,124,56,16,7,7,7,11, - 2,0,108,254,254,254,124,56,16,9,7,14,11,1,0,8, - 0,28,0,62,0,127,0,255,128,107,0,8,0,13,7,14, - 15,1,0,16,64,32,32,64,16,255,248,64,16,32,32,16, - 64,14,7,14,14,0,0,16,0,32,0,64,0,255,252,64, - 0,32,0,16,0,7,15,15,9,1,253,16,56,84,146,16, - 16,16,16,16,16,16,16,16,16,16,14,7,14,14,0,0, - 0,32,0,16,0,8,255,252,0,8,0,16,0,32,7,15, - 15,9,1,253,16,16,16,16,16,16,16,16,16,16,16,146, - 84,56,16,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,7,3,3,6, - 0,7,54,108,144,7,9,9,8,0,0,128,96,24,6,24, - 96,128,0,254,7,7,7,8,0,0,130,68,40,16,40,68, - 130,8,4,4,10,0,2,119,136,136,119,6,11,11,7,0, - 0,112,136,4,4,4,116,204,132,132,200,112,5,5,5,7, - 1,1,112,248,248,248,112,7,7,7,8,0,0,16,16,0, - 254,0,16,16,7,7,7,8,0,0,4,8,254,16,254,32, - 64,7,5,5,8,0,1,254,0,254,0,254,7,5,5,8, - 0,2,114,156,0,114,156,11,2,4,15,2,0,132,32,132, - 32,1,15,15,9,4,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,15,1,2,15,0,3,255,254,8,9, - 9,10,0,0,1,1,1,1,1,1,65,255,64,8,10,10, - 12,2,0,136,206,102,36,116,156,140,70,99,225,8,12,12, - 10,1,255,63,97,66,70,36,6,3,1,97,241,26,12,10, - 11,22,12,1,0,115,0,157,128,137,128,139,0,206,0,106, - 0,41,0,9,0,9,0,105,0,176,192,9,12,24,12,1, - 253,16,0,35,0,69,128,72,128,144,128,212,128,105,0,107, - 0,182,0,144,0,144,0,96,0,9,9,18,11,1,0,28, - 0,99,0,99,0,148,128,136,128,148,128,99,0,99,0,28, - 0,9,9,18,11,1,0,28,0,99,0,73,0,136,128,190, - 128,136,128,73,0,99,0,28,0,11,11,22,12,0,0,31, - 32,96,192,64,192,129,32,130,32,132,32,136,32,144,32,96, - 64,96,192,159,0,10,7,14,10,0,0,30,0,97,128,64, - 128,128,64,128,64,128,64,128,64,10,7,14,10,0,0,128, - 64,128,64,128,64,128,64,64,128,97,128,30,0,9,7,14, - 10,0,0,254,0,1,0,0,128,0,128,0,128,1,0,254, - 0,9,9,18,10,1,254,254,0,1,0,0,128,0,128,0, - 128,1,0,254,0,0,0,255,128,9,9,18,10,0,255,1, - 0,63,128,66,0,130,0,132,0,132,0,72,0,63,128,16, - 0,9,7,14,10,1,0,63,128,64,0,128,0,128,0,128, - 0,64,0,63,128,9,9,18,10,0,254,63,128,64,0,128, - 0,128,0,128,0,64,0,63,128,0,0,255,128,7,7,7, - 10,1,0,62,64,128,254,128,64,62,7,9,9,10,0,255, - 4,62,72,144,254,144,96,62,64,11,10,20,11,0,0,0, - 64,0,128,1,0,2,0,4,0,8,0,16,0,32,0,64, - 0,255,224,9,11,22,10,0,0,255,128,128,128,65,0,65, - 0,34,0,34,0,34,0,20,0,20,0,8,0,8,0,10, - 10,20,12,1,0,30,0,33,0,124,128,146,64,146,64,156, - 64,146,64,121,128,33,0,30,0,10,10,20,12,1,0,30, - 0,33,0,78,128,146,64,144,64,144,64,146,64,76,128,33, - 0,30,0,11,6,12,11,0,4,250,128,170,128,38,192,37, - 64,37,64,118,224,10,12,24,12,1,255,255,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,64, - 128,225,192,8,12,12,8,0,0,1,1,1,2,2,98,164, - 36,20,20,8,8,1,2,2,4,1,3,128,128,9,5,10, - 10,0,0,255,128,0,128,0,128,0,128,0,128,8,7,7, - 9,0,0,24,24,36,36,66,66,129,8,7,7,9,0,0, - 129,66,66,36,36,24,24,13,7,14,15,1,0,16,64,32, - 32,127,240,192,24,127,240,32,32,16,64,13,7,14,14,0, - 0,16,0,32,0,127,248,192,0,127,248,32,0,16,0,7, - 12,12,9,1,0,16,56,108,170,40,40,40,40,40,40,40, - 40,13,7,14,14,1,0,0,64,0,32,255,240,0,24,255, - 240,0,32,0,64,7,12,12,9,1,0,40,40,40,40,40, - 40,40,40,170,108,56,16,7,11,11,7,0,0,16,40,40, - 68,68,130,68,68,40,40,16,4,15,15,5,0,253,16,32, - 32,64,64,64,128,128,128,64,64,64,32,32,16,10,10,20, - 12,1,0,30,0,33,0,92,128,146,64,146,64,156,64,146, - 64,82,128,33,0,30,0,10,10,20,12,1,0,30,0,33, - 0,76,128,146,64,144,64,144,64,146,64,76,128,33,0,30, - 0,10,6,12,11,0,4,250,128,34,128,38,192,37,64,37, - 64,36,64,9,12,24,10,0,255,255,0,129,0,64,0,32, - 0,16,0,8,0,8,0,16,0,32,0,64,0,128,128,255, - 128,4,15,15,6,1,253,16,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,6,1,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,128,128,128,128,128,128,128,128,128,128,128,64,64,32,16, - 4,15,15,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,6,1,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,15,15,6,1,253, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,240,4, - 15,15,7,3,253,48,64,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,15,15,7,1,253,32,32,32,32,32,32, - 64,128,64,32,32,32,32,32,32,4,15,15,7,3,253,128, - 128,128,128,128,128,128,128,128,128,128,128,128,64,48,1,15, - 15,7,3,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,255,4,15,15,5,1,253,128,64,64,32,32,32, - 16,16,16,32,32,32,64,64,128,5,13,13,4,0,255,24, - 40,32,32,32,32,32,32,32,32,32,160,192,5,15,15,10, - 5,253,56,88,64,128,128,128,128,128,128,128,128,128,128,128, - 128,1,15,15,10,5,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,5,15,15,10,1,253,8,8,8,8, - 8,8,8,8,8,8,8,8,16,208,224,4,15,15,6,1, - 253,128,64,32,32,16,16,16,16,16,16,16,16,16,16,16, - 1,15,15,6,4,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,15,15,6,1,253,16,16,16,16,16, - 16,16,16,16,16,16,32,32,64,128,4,15,15,6,1,253, - 240,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1, - 15,15,6,4,253,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,4,15,15,6,1,253,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,240,4,15,15,7,0,253,192, - 32,16,16,16,16,16,16,16,16,16,16,16,16,16,3,15, - 15,7,3,253,128,128,128,128,128,128,64,32,64,128,128,128, - 128,128,128,4,15,15,7,0,253,16,16,16,16,16,16,16, - 16,16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=11 h=15 x= 7 y=11 dx=13 dy= 0 ascent=12 len=20 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10r[1633] U8G_FONT_SECTION("u8g_font_symb10r") = { - 0,16,15,255,253,10,2,6,4,121,32,127,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=16 h=17 x= 7 y=12 dx=17 dy= 0 ascent=13 len=30 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12[4136] U8G_FONT_SECTION("u8g_font_symb12") = { - 0,20,17,253,252,11,2,70,5,85,32,255,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,10,11,22,10,255,0,225,128,18,192,10,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,30,0,3,4, - 4,4,1,8,96,96,192,128,8,11,11,9,0,0,1,6, - 24,96,128,96,24,6,1,0,255,8,11,11,3,253,0,1, - 2,2,4,8,16,16,32,64,64,128,11,5,10,12,0,2, - 113,192,138,32,132,32,138,32,113,192,7,15,15,8,0,253, - 6,10,8,8,8,126,16,16,16,16,32,32,32,160,192,9, - 10,20,12,1,255,28,0,62,0,62,0,28,0,107,0,255, - 128,255,128,107,0,8,0,28,0,7,9,9,12,2,0,16, - 56,124,124,254,124,124,56,16,8,9,9,12,2,0,102,255, - 255,255,126,60,60,24,24,9,10,20,12,2,255,8,0,28, - 0,28,0,62,0,127,0,127,0,255,128,107,0,8,0,28, - 0,15,9,18,17,0,0,8,32,16,16,32,8,64,4,255, - 254,64,4,32,8,16,16,8,32,16,9,18,16,0,0,8, - 0,16,0,32,0,64,0,255,255,64,0,32,0,16,0,8, - 0,9,15,30,10,0,254,8,0,28,0,42,0,73,0,136, - 128,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,15,9,18,16,0,0,0,32,0,16,0, - 8,0,4,255,254,0,4,0,8,0,16,0,32,9,15,30, - 10,0,254,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,136,128,73,0,42,0,28,0,8, - 0,5,5,5,6,0,6,112,136,136,136,112,9,11,22,9, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,0,0,255,128,6,4,4,7,1,8,108,108, - 216,144,8,11,11,9,0,0,128,96,24,6,1,6,24,96, - 128,0,255,9,9,18,9,0,0,128,128,65,0,34,0,20, - 0,8,0,20,0,34,0,65,0,128,128,10,5,10,11,0, - 2,113,192,138,0,132,0,138,0,113,192,7,14,14,8,0, - 255,120,196,4,2,2,2,58,102,194,194,130,196,68,56,6, - 6,6,8,1,2,120,252,252,252,252,120,8,7,7,9,0, - 1,24,24,0,255,0,24,24,9,10,20,9,0,255,2,0, - 2,0,4,0,255,128,8,0,8,0,255,128,16,0,32,0, - 32,0,8,7,7,9,0,1,255,0,0,255,0,0,255,8, - 5,5,9,0,2,113,142,0,113,142,13,3,6,16,1,0, - 66,16,231,56,66,16,1,17,17,10,4,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,16,1,2, - 16,0,4,255,255,9,11,22,10,0,255,0,128,0,128,0, - 128,0,128,0,128,0,128,32,128,96,128,255,128,96,0,32, - 0,9,11,22,13,2,0,68,0,231,0,103,0,50,0,26, - 0,60,0,108,0,102,0,99,0,51,128,113,0,9,14,28, - 11,0,255,30,0,63,128,67,128,65,0,66,0,34,0,19, - 0,1,0,1,128,0,128,0,128,112,128,191,0,28,0,12, - 13,26,13,0,0,113,128,138,192,140,96,196,64,100,128,37, - 0,7,128,5,128,12,192,12,192,8,208,104,96,48,64,12, - 13,26,16,2,252,12,0,17,224,34,48,36,16,72,48,114, - 32,102,96,100,192,115,0,144,0,144,0,144,0,96,0,11, - 11,22,12,1,0,14,0,49,128,64,64,81,64,138,32,132, - 32,138,32,81,64,64,64,49,128,14,0,11,11,22,12,1, - 0,14,0,49,128,68,64,68,64,132,32,191,160,132,32,68, - 64,68,64,49,128,14,0,12,12,24,13,1,0,15,16,48, - 224,64,96,64,160,129,16,130,16,132,16,136,16,80,32,96, - 32,112,192,159,0,11,9,18,12,1,0,14,0,49,128,64, - 64,64,64,128,32,128,32,128,32,128,32,128,32,11,9,18, - 12,1,0,128,32,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,10,8,16,11,0,0,255,0,0,128,0, - 64,0,64,0,64,0,64,0,128,255,0,10,10,20,11,0, - 253,255,0,0,128,0,64,0,64,0,64,0,64,0,128,255, - 0,0,0,255,192,11,10,20,11,0,255,0,128,63,224,65, - 0,129,0,130,0,130,0,132,0,68,0,63,224,8,0,10, - 8,16,11,0,0,63,192,64,0,128,0,128,0,128,0,128, - 0,64,0,63,192,10,10,20,11,0,254,63,192,64,0,128, - 0,128,0,128,0,128,0,64,0,63,192,0,0,255,192,7, - 7,7,11,0,0,62,64,128,254,128,64,62,7,9,9,11, - 0,255,4,62,72,136,254,144,80,62,32,11,11,22,12,1, - 0,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16, - 0,32,0,64,0,255,192,10,11,22,11,1,1,255,192,192, - 128,96,128,97,0,49,0,50,0,50,0,28,0,28,0,8, - 0,8,0,11,11,22,13,1,0,14,0,49,128,94,64,73, - 64,137,32,142,32,138,32,73,64,93,192,49,128,14,0,11, - 11,22,13,1,0,14,0,49,128,70,64,73,64,145,32,144, - 32,144,32,73,64,70,64,49,128,14,0,13,6,12,14,0, - 5,255,24,171,16,34,176,34,176,34,80,119,88,12,15,30, - 13,1,254,255,240,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,240, - 240,7,16,16,9,1,253,2,2,2,2,2,4,68,196,36, - 36,20,20,20,8,8,8,2,2,2,4,1,3,192,192,11, - 5,10,12,0,0,255,224,0,32,0,32,0,32,0,32,9, - 8,16,10,0,0,8,0,8,0,20,0,34,0,34,0,65, - 0,128,128,128,128,9,8,16,10,0,0,128,128,128,128,65, - 0,34,0,34,0,20,0,8,0,8,0,16,9,18,17,0, - 0,8,16,16,8,63,252,64,2,128,1,64,2,63,252,16, - 8,8,16,15,9,18,16,0,0,8,0,16,0,63,254,64, - 0,128,0,64,0,63,254,16,0,8,0,9,15,30,10,0, - 254,8,0,20,0,34,0,99,0,162,128,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,15, - 9,18,16,0,0,0,32,0,16,255,248,0,4,0,2,0, - 4,255,248,0,16,0,32,9,15,30,10,0,254,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,162,128,99,0,34,0,20,0,8,0,7,12,12,8,0, - 0,16,40,40,68,68,130,130,68,68,40,40,16,4,15,15, - 5,0,254,16,16,32,32,64,64,128,128,128,64,64,32,32, - 16,16,11,11,22,13,1,0,14,0,49,128,94,64,81,64, - 145,32,158,32,145,32,81,64,81,64,49,128,14,0,11,11, - 22,13,1,0,14,0,49,128,70,64,73,64,144,32,144,32, - 144,32,73,64,70,64,49,128,14,0,11,6,12,13,0,5, - 252,32,38,96,38,96,37,160,37,160,36,32,11,15,30,11, - 0,254,255,192,112,64,56,64,24,0,12,0,14,0,7,0, - 3,0,2,0,4,0,8,0,16,32,32,64,127,192,255,128, - 6,17,17,6,1,252,4,8,16,32,32,64,64,64,64,128, - 128,128,128,128,128,128,128,1,17,17,6,1,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,6,17, - 17,6,1,252,128,128,128,128,128,128,128,128,64,64,64,64, - 32,32,16,8,4,5,17,17,6,0,252,248,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,1,17,17,6, - 0,252,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,17,17,6,0,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,248,4,17,17,8,3,252, - 48,64,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,4,17,17,8,0,252,16,16,16,16,16,16,16,32,192, - 32,16,16,16,16,16,16,16,4,17,17,8,3,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,64,48,1, - 17,17,8,3,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,255,4,15,15,5,0,254,128,128,64, - 64,32,32,16,16,16,32,32,64,64,128,128,5,17,17,5, - 0,252,24,40,32,32,32,32,32,32,32,32,32,32,32,32, - 32,160,192,6,17,17,11,5,252,24,44,72,64,128,128,128, - 128,128,128,128,128,128,128,128,128,128,1,17,17,11,5,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,11,0,252,4,4,4,4,4,4,4,4,4, - 4,4,4,4,8,72,208,96,6,17,17,7,1,252,128,64, - 32,16,16,8,8,8,8,4,4,4,4,4,4,4,4,1, - 17,17,6,5,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,6,17,17,6,0,252,4,4,4,4, - 4,4,4,4,8,8,8,8,16,16,32,64,128,5,17,17, - 6,1,252,248,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,1,17,17,6,5,252,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,17,17,6,1, - 252,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,248,4,17,17,8,0,252,192,32,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,4,17,17,8,3,252,128, - 128,128,128,128,128,128,64,48,64,128,128,128,128,128,128,128, - 4,17,17,8,0,252,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=13 h=17 x= 7 y=12 dx=14 dy= 0 ascent=13 len=26 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12r[1985] U8G_FONT_SECTION("u8g_font_symb12r") = { - 0,20,17,253,252,11,2,70,5,85,32,127,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=19 h=19 x= 9 y=13 dx=19 dy= 0 ascent=14 len=34 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14[4665] U8G_FONT_SECTION("u8g_font_symb14") = { - 0,20,19,255,251,13,2,127,6,16,32,255,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,11,13,26,12,0,0,225,192,115,32, - 58,96,28,96,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,30,0,4,5,5,5,1,9,48,112,96,192, - 128,9,12,24,10,0,0,3,128,15,0,60,0,240,0,192, - 0,240,0,60,0,15,0,3,128,0,0,255,128,255,128,8, - 13,13,5,255,0,3,6,6,12,12,24,24,48,48,96,96, - 192,192,12,5,10,13,0,3,121,224,207,48,134,16,207,48, - 121,224,9,17,34,9,0,252,3,128,5,128,12,0,12,0, - 12,0,127,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,208,0,224,0,10,9,18,14,2,0, - 12,0,30,0,30,0,30,0,109,128,255,192,255,192,109,128, - 12,0,9,9,18,13,2,0,8,0,28,0,62,0,127,0, - 255,128,127,0,62,0,28,0,8,0,9,9,18,13,2,0, - 99,0,247,128,255,128,255,128,127,0,127,0,62,0,28,0, - 8,0,10,9,18,14,2,0,12,0,30,0,63,0,127,128, - 255,192,255,192,109,128,12,0,12,0,17,8,24,19,1,1, - 24,12,0,48,6,0,96,3,0,255,255,128,255,255,128,96, - 3,0,48,6,0,24,12,0,18,8,24,18,0,1,24,0, - 0,48,0,0,96,0,0,255,255,192,255,255,192,96,0,0, - 48,0,0,24,0,0,8,19,19,10,1,251,24,60,126,219, - 153,24,24,24,24,24,24,24,24,24,24,24,24,24,24,18, - 8,24,18,0,1,0,6,0,0,3,0,0,1,128,255,255, - 192,255,255,192,0,1,128,0,3,0,0,6,0,8,19,19, - 10,1,251,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,153,219,126,60,24,5,6,6,7,1,7,112,248,216,216, - 248,112,8,11,11,10,1,0,24,24,24,255,255,24,24,24, - 0,255,255,8,5,5,8,0,9,51,119,102,204,136,9,12, - 24,10,0,0,224,0,120,0,30,0,7,128,1,128,7,128, - 30,0,120,0,224,0,0,0,255,128,255,128,10,9,18,10, - 0,0,225,192,115,128,51,0,30,0,12,0,30,0,51,0, - 115,128,225,192,11,5,10,12,0,3,121,224,207,0,134,0, - 207,0,121,224,7,14,14,9,1,0,120,204,134,6,6,6, - 62,102,198,198,198,196,236,120,5,6,6,9,2,2,112,248, - 248,248,248,112,8,8,8,10,1,1,24,24,0,255,255,0, - 24,24,8,9,9,10,1,0,12,12,255,255,24,255,255,48, - 48,8,8,8,10,1,1,255,255,0,255,255,0,255,255,8, - 7,7,10,1,2,115,255,206,0,115,255,206,14,2,4,18, - 2,0,195,12,195,12,2,19,19,10,4,251,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,19, - 2,6,19,0,4,255,255,224,255,255,224,9,12,24,12,1, - 0,1,128,1,128,1,128,1,128,1,128,1,128,33,128,97, - 128,255,128,255,128,96,0,32,0,11,13,26,13,1,0,194, - 0,227,192,113,224,56,224,57,128,125,0,207,0,199,0,227, - 0,115,128,49,192,112,192,240,64,10,15,30,13,1,255,31, - 192,63,192,96,128,65,0,66,0,34,0,19,0,3,128,1, - 192,0,192,0,192,112,192,248,128,31,0,14,0,13,14,28, - 15,1,0,121,192,254,224,142,112,134,48,198,96,118,128,54, - 64,38,96,6,96,6,96,6,96,6,96,108,120,184,48,12, - 15,30,14,1,252,12,0,24,0,49,224,103,48,204,48,216, - 48,214,48,246,96,100,224,119,192,179,128,152,0,152,0,216, - 0,112,0,12,13,26,14,1,0,31,128,57,192,96,96,217, - 176,221,176,143,16,134,16,143,16,219,176,217,176,96,96,57, - 192,31,128,12,13,26,14,1,0,31,128,57,192,102,96,198, - 48,198,48,191,208,191,208,134,16,198,48,198,48,96,96,57, - 192,31,128,12,13,26,14,1,0,31,176,57,240,96,96,192, - 240,193,176,131,16,134,16,140,16,216,48,240,48,96,96,249, - 192,223,128,12,9,18,14,1,0,31,128,57,192,96,96,224, - 112,192,48,192,48,192,48,192,48,192,48,12,9,18,14,1, - 0,192,48,192,48,192,48,192,48,192,48,224,112,96,96,57, - 192,31,128,12,9,18,13,1,0,255,128,255,224,0,96,0, - 48,0,48,0,48,0,96,255,224,255,128,12,12,24,13,0, - 253,255,128,255,224,0,96,0,48,0,48,0,48,0,96,255, - 224,255,128,0,0,255,240,255,240,12,13,26,13,0,254,0, - 96,0,192,31,240,127,240,97,128,195,0,195,0,198,0,102, - 0,127,240,31,240,24,0,48,0,12,9,18,13,0,0,31, - 240,127,240,96,0,192,0,192,0,192,0,96,0,127,240,31, - 240,12,12,24,13,0,253,31,240,127,240,96,0,192,0,192, - 0,192,0,96,0,127,240,31,240,0,0,255,240,255,240,9, - 9,18,12,1,0,31,128,127,128,224,0,192,0,255,128,192, - 0,224,0,127,128,31,128,10,11,22,12,1,255,0,128,31, - 192,127,192,226,0,196,0,255,128,200,0,240,0,127,192,63, - 192,64,0,13,13,26,14,0,0,0,24,0,48,0,96,0, - 192,1,128,3,0,6,0,12,0,24,0,48,0,96,0,192, - 0,255,248,11,13,26,13,1,0,255,224,224,32,96,96,96, - 64,112,192,48,128,48,128,57,128,25,0,27,0,14,0,14, - 0,4,0,13,13,26,15,1,0,31,192,56,224,96,48,223, - 24,205,152,205,152,205,152,207,24,205,152,220,216,96,48,56, - 224,31,192,13,13,26,15,1,0,31,192,56,224,96,48,199, - 152,205,152,204,152,204,24,204,24,204,152,199,24,96,48,56, - 224,31,192,14,8,16,16,1,5,251,28,171,24,35,24,34, - 168,34,168,34,168,34,72,119,92,14,16,32,15,0,254,255, - 252,120,120,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,120,120,252,252,9, - 14,28,10,0,0,0,128,0,128,0,128,0,128,48,128,113, - 0,217,0,25,0,25,0,13,0,14,0,6,0,6,0,6, - 0,2,2,2,4,1,4,192,192,11,6,12,13,1,0,255, - 224,255,224,0,96,0,96,0,96,0,96,10,9,18,11,0, - 0,12,0,12,0,30,0,51,0,51,0,97,128,97,128,192, - 192,192,192,10,9,18,11,0,0,192,192,192,192,97,128,97, - 128,51,0,51,0,30,0,12,0,12,0,18,9,27,18,0, - 0,8,4,0,24,6,0,63,255,0,127,255,128,224,1,192, - 127,255,128,63,255,0,24,6,0,8,4,0,16,9,18,18, - 1,0,8,0,24,0,63,255,127,255,224,0,127,255,63,255, - 24,0,8,0,9,17,34,11,1,253,8,0,28,0,54,0, - 119,0,247,128,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,16,9,18,18, - 1,0,0,16,0,24,255,252,255,254,0,7,255,254,255,252, - 0,24,0,16,9,17,34,11,1,253,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,247,128,119,0,54,0,28,0,8,0,9,14,28,9, - 0,0,28,0,28,0,54,0,54,0,99,0,99,0,193,128, - 193,128,99,0,99,0,54,0,54,0,28,0,28,0,5,17, - 17,6,0,253,24,24,48,48,96,96,192,192,128,192,192,96, - 96,48,48,24,24,13,13,26,15,1,0,31,192,56,224,96, - 48,207,24,205,152,205,152,207,24,205,152,205,152,205,152,96, - 48,56,224,31,192,13,13,26,15,1,0,31,192,56,224,96, - 48,199,24,204,152,204,24,204,24,204,24,204,152,199,24,96, - 48,56,224,31,192,13,8,16,15,1,5,251,24,35,24,35, - 24,34,168,34,168,34,168,34,72,34,72,12,16,32,13,0, - 254,255,224,224,96,112,32,56,0,28,0,14,0,7,0,3, - 0,6,0,12,0,24,0,48,0,96,16,192,48,255,240,255, - 240,6,19,19,7,1,251,4,12,24,24,48,48,96,96,96, - 96,192,192,192,192,192,192,192,192,192,2,19,19,7,1,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,6,19,19,7,1,251,192,192,192,192,192,192,192, - 192,192,224,96,96,96,48,48,24,24,12,4,5,19,19,7, - 1,251,248,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,7,1,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,19, - 19,7,1,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,5,19,19,9,4,251,56,96,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,19,19,9,1,251,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,5,19,19,9,4,251,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 96,56,2,19,19,9,4,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,255,5,17,17,6, - 0,253,192,192,96,96,48,48,24,24,8,24,24,48,48,96, - 96,192,192,6,19,19,6,0,251,28,28,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,224,224,7,19,19,13, - 5,251,28,126,102,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,13,5,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,7,19, - 19,13,0,251,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,204,252,112,6,19,19,7,0,251,128,192,96, - 96,48,48,24,24,24,24,12,12,12,12,12,12,12,12,12, - 2,19,19,7,4,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,6,19,19,7,0,251,12, - 12,12,12,12,12,12,12,12,24,24,24,24,48,48,96,96, - 192,128,5,19,19,7,1,251,248,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,2,19,19,7,4, - 251,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,5,19,19,7,1,251,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,5,19,19, - 9,1,251,224,48,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,5,19,19,9,4,251,192,192,192,192, - 192,192,64,96,48,24,48,96,64,192,192,192,192,192,192,5, - 19,19,9,1,251,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,48,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=14 h=19 x= 9 y=13 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14r[2261] U8G_FONT_SECTION("u8g_font_symb14r") = { - 0,20,19,255,251,13,2,127,6,16,32,127,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=25 h=24 x=13 y=18 dx=26 dy= 0 ascent=19 len=63 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18[6604] U8G_FONT_SECTION("u8g_font_symb18") = { - 0,27,24,255,251,17,3,215,8,151,32,255,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,13,17,34,15,1,0,224,112, - 112,216,57,184,27,48,14,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 5,6,6,6,1,12,24,56,112,96,192,128,12,15,30,14, - 0,0,0,112,1,224,7,128,30,0,120,0,224,0,224,0, - 120,0,30,0,3,192,0,240,0,48,0,0,255,240,255,240, - 8,17,17,4,255,0,3,3,6,6,12,12,24,24,24,48, - 48,96,96,96,192,192,192,15,7,14,17,1,4,56,56,124, - 124,198,198,195,134,199,198,124,124,56,56,13,22,44,13,0, - 251,0,240,1,152,1,152,3,0,3,0,3,0,31,192,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,204,0,204,0,120,0,14,13,26, - 18,2,0,7,128,15,192,15,192,15,192,15,192,119,184,251, - 124,255,252,255,252,251,124,115,56,3,0,7,128,10,13,26, - 18,4,0,12,0,30,0,63,0,63,0,127,128,127,128,255, - 192,127,128,127,128,63,0,30,0,30,0,12,0,12,13,26, - 18,3,0,112,224,249,240,255,240,255,240,255,240,255,240,127, - 224,127,224,63,192,31,128,31,128,15,0,6,0,12,13,26, - 18,3,0,6,0,15,0,31,128,31,128,63,192,127,224,127, - 224,255,240,255,240,246,240,102,96,6,0,6,0,24,12,36, - 26,1,1,6,0,96,12,0,48,24,0,24,48,0,12,96, - 0,6,255,255,255,255,255,255,96,0,6,48,0,12,24,0, - 24,12,0,48,6,0,96,25,12,48,25,0,1,6,0,0, - 0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0, - 0,255,255,255,128,255,255,255,128,96,0,0,0,48,0,0, - 0,24,0,0,0,12,0,0,0,6,0,0,0,12,24,48, - 14,1,251,6,0,15,0,31,128,54,192,102,96,198,48,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,25,12,48,25,0,1,0,0,48,0,0,0,24, - 0,0,0,12,0,0,0,6,0,0,0,3,0,255,255,255, - 128,255,255,255,128,0,0,3,0,0,0,6,0,0,0,12, - 0,0,0,24,0,0,0,48,0,12,24,48,14,1,251,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,198,48,102,96,54,192,31,128,15,0,6,0,7, - 7,7,9,1,10,56,108,198,198,198,108,56,10,14,28,12, - 1,0,12,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,12,0,0,0,0,0,255,192,255,192,9,6, - 12,10,1,12,25,128,59,128,119,0,102,0,204,0,136,0, - 12,15,30,14,0,0,224,0,120,0,30,0,7,128,1,224, - 0,112,0,112,1,224,7,128,62,0,240,0,192,0,0,0, - 255,240,255,240,11,10,20,13,1,2,192,96,96,192,49,128, - 27,0,14,0,14,0,27,0,49,128,96,192,192,96,14,7, - 14,16,1,4,56,56,124,124,198,192,195,128,199,192,124,124, - 56,56,10,19,38,12,1,0,62,0,99,0,193,128,1,128, - 0,192,0,192,0,192,0,192,30,192,115,192,97,192,192,192, - 192,192,193,128,193,128,193,128,227,0,119,0,62,0,8,8, - 8,12,2,3,60,126,255,255,255,255,126,60,10,8,16,12, - 1,3,12,0,12,0,0,0,255,192,255,192,0,0,12,0, - 12,0,10,13,26,14,2,0,1,128,1,128,3,0,3,0, - 255,192,255,192,12,0,255,192,255,192,48,0,48,0,96,0, - 96,0,11,8,16,13,1,3,255,224,255,224,0,0,255,224, - 255,224,0,0,255,224,255,224,11,8,16,13,1,3,56,32, - 124,96,199,192,131,128,56,32,124,96,199,192,131,128,18,2, - 6,24,3,0,192,192,192,192,192,192,2,24,24,14,6,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,25,2,8,25,0,6,255,255, - 255,128,255,255,255,128,14,16,32,16,1,0,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 32,12,96,12,255,252,255,252,96,0,32,0,12,16,32,14, - 1,0,129,128,195,0,227,240,113,240,56,96,28,192,60,128, - 110,128,199,128,195,128,227,128,241,192,112,224,48,112,112,48, - 224,16,14,19,38,16,1,255,15,128,63,252,112,248,96,48, - 64,96,64,192,96,192,48,224,28,112,0,56,0,56,0,28, - 0,28,0,12,48,12,120,12,222,24,15,240,3,192,17,18, - 54,19,1,0,30,24,0,63,60,0,99,206,0,193,135,0, - 129,131,0,193,134,0,225,140,0,113,184,0,57,176,0,25, - 152,0,17,152,0,1,152,0,1,156,0,1,140,0,1,140, - 0,25,134,128,63,7,128,78,7,0,15,20,40,19,2,251, - 6,0,12,0,24,60,48,254,49,134,99,6,102,6,108,6, - 104,12,121,156,115,152,114,48,122,112,91,224,221,128,140,0, - 140,0,140,0,216,0,112,0,16,17,34,18,1,0,7,224, - 30,120,56,28,96,6,104,22,204,51,198,99,195,195,193,131, - 195,195,198,99,204,51,104,22,96,6,56,28,30,120,7,224, - 16,17,34,18,1,0,7,224,30,120,56,28,97,134,97,134, - 193,131,193,131,207,243,207,243,193,131,193,131,193,131,97,134, - 96,6,56,28,30,120,7,224,18,17,51,20,1,0,3,240, - 192,15,253,128,28,15,0,48,7,0,48,15,0,96,25,128, - 96,49,128,96,97,128,96,193,128,97,129,128,99,1,128,102, - 1,128,60,3,0,56,3,0,60,14,0,111,252,0,195,240, - 0,16,13,26,18,1,0,7,224,31,248,56,28,96,6,96, - 6,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,16,13,26,18,1,0,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,96,6,96,6,56,28,31,248,7, - 224,15,12,24,17,1,0,255,224,255,248,0,28,0,12,0, - 6,0,6,0,6,0,6,0,12,0,28,255,248,255,224,15, - 15,30,17,1,253,255,224,255,248,0,28,0,12,0,6,0, - 6,0,6,0,6,0,12,0,28,255,248,255,224,0,0,255, - 254,255,254,15,16,32,17,1,254,0,12,0,12,15,254,63, - 254,112,48,96,48,192,96,192,96,192,192,192,192,97,128,113, - 128,63,254,15,254,6,0,6,0,15,12,24,17,1,0,15, - 254,63,254,112,0,96,0,192,0,192,0,192,0,192,0,96, - 0,112,0,63,254,15,254,15,15,30,17,1,253,15,254,63, - 254,112,0,96,0,192,0,192,0,192,0,192,0,96,0,112, - 0,63,254,15,254,0,0,255,254,255,254,12,13,26,16,2, - 0,31,240,127,240,96,0,192,0,192,0,192,0,255,240,192, - 0,192,0,192,0,96,0,127,240,31,240,12,15,30,16,2, - 255,0,192,31,240,127,240,97,128,193,128,195,0,195,0,255, - 240,198,0,198,0,204,0,108,0,127,240,31,240,24,0,17, - 16,48,19,1,0,0,1,128,0,3,0,0,6,0,0,12, - 0,0,24,0,0,48,0,0,96,0,0,192,0,1,128,0, - 3,0,0,6,0,0,12,0,0,24,0,0,48,0,0,127, - 255,128,255,255,128,16,18,36,18,1,0,255,255,192,3,192, - 2,96,6,96,4,48,12,48,8,48,24,24,16,24,48,12, - 32,12,32,6,96,6,64,3,192,3,192,1,128,1,128,16, - 17,34,18,1,0,7,224,30,120,56,28,96,6,111,230,198, - 115,198,51,198,115,199,227,198,195,198,99,198,51,111,62,96, - 6,56,28,30,120,7,224,16,17,34,18,1,0,7,224,30, - 120,56,28,96,6,99,230,198,99,204,35,204,3,204,3,204, - 3,204,3,206,51,103,230,99,198,56,28,30,120,7,224,20, - 10,30,22,1,7,255,96,112,153,96,96,24,112,224,24,112, - 224,24,89,96,24,89,96,24,78,96,24,78,96,24,70,96, - 60,230,240,17,21,63,19,1,253,255,255,128,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,252,31,128,14,19,38,14,0,0,0,12, - 0,12,0,8,0,8,0,24,48,24,112,16,216,16,24,16, - 12,48,12,48,6,32,6,32,3,32,3,96,1,192,1,192, - 0,192,0,192,2,2,2,6,2,6,192,192,15,8,16,17, - 1,0,255,254,255,254,0,6,0,6,0,6,0,6,0,6, - 0,6,13,12,24,15,1,0,7,0,7,0,13,128,13,128, - 24,192,24,192,48,96,48,96,96,48,96,48,192,24,192,24, - 13,12,24,15,1,0,192,24,192,24,96,48,96,48,48,96, - 48,96,24,192,24,192,13,128,13,128,7,0,7,0,23,12, - 36,25,1,0,6,0,192,12,0,96,24,0,48,63,255,248, - 127,255,252,224,0,14,224,0,14,127,255,252,63,255,248,24, - 0,48,12,0,96,6,0,192,23,12,36,25,1,0,6,0, - 0,12,0,0,24,0,0,63,255,254,127,255,254,224,0,0, - 224,0,0,127,255,254,63,255,254,24,0,0,12,0,0,6, - 0,0,12,19,38,14,1,0,6,0,15,0,31,128,57,192, - 121,224,217,176,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,23,12, - 36,25,1,0,0,0,192,0,0,96,0,0,48,255,255,248, - 255,255,252,0,0,14,0,0,14,255,255,252,255,255,248,0, - 0,48,0,0,96,0,0,192,12,19,38,14,1,0,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,217,176,121,224,57,192,31,128, - 15,0,6,0,10,18,36,12,1,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 97,128,97,128,51,0,51,0,30,0,30,0,12,0,7,22, - 22,8,0,251,6,6,12,12,24,24,48,48,96,96,192,192, - 96,96,48,48,24,24,12,12,6,6,16,17,34,18,1,0, - 7,224,30,120,56,28,96,6,103,230,198,51,198,51,198,51, - 199,227,198,99,198,51,198,51,102,50,96,6,56,28,30,120, - 7,224,16,17,34,18,1,0,7,224,30,120,56,28,96,6, - 99,198,198,99,204,35,204,3,200,3,200,3,204,3,204,35, - 102,102,99,198,56,28,30,120,7,224,18,10,30,20,1,7, - 254,192,192,24,192,192,24,225,192,24,225,192,24,243,192,24, - 210,192,24,222,192,24,204,192,24,204,192,24,204,192,14,20, - 40,18,2,254,255,248,224,24,112,8,56,0,28,0,14,0, - 7,0,3,128,1,192,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,4,192,12,255,252,255,252,9,24,48,10, - 1,251,1,128,3,0,6,0,12,0,24,0,24,0,48,0, - 48,0,96,0,96,0,96,0,96,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,2,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 9,24,48,10,1,251,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,96,0,96,0,48,0,48,0,24,0,24,0,12,0, - 6,0,3,0,1,128,7,24,24,10,1,251,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,2,24,24,10,1,251,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,7,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,254, - 7,24,24,12,5,251,30,48,96,96,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,24, - 24,12,2,251,24,24,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,24,24,24,7,24,24,12, - 5,251,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,96,96,48,30,2,24,24,12,5,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,255,7,22,22,8,1,251,192, - 192,96,96,48,48,24,24,12,12,6,6,12,12,24,24,48, - 48,96,96,192,192,8,24,24,8,0,251,7,15,27,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 216,240,224,8,24,24,17,8,251,14,27,51,32,96,64,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,2,24,24,17,8,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,8, - 24,24,17,2,251,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,2,6,204,216,112,9,24,48, - 10,0,251,192,0,96,0,48,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,3,0,3,0,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,2,24,24,10,7,251,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,9,24,48,10,0,251,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,3, - 0,3,0,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,48,0,96,0,192,0,7,24,24,10,2,251,254,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,2,24,24,10,7,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,7,24,24,10,2,251,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 254,7,24,24,12,0,251,240,24,12,12,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5, - 24,24,12,5,251,192,192,192,192,192,192,192,192,64,96,48, - 24,48,96,64,192,192,192,192,192,192,192,192,192,7,24,24, - 12,0,251,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,12,12,24,240,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=20 h=24 x=13 y=18 dx=22 dy= 0 ascent=19 len=51 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18r[3303] U8G_FONT_SECTION("u8g_font_symb18r") = { - 0,27,24,255,251,17,3,215,8,151,32,127,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=34 x=15 y=26 dx=34 dy= 0 ascent=27 len=108 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-5 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24[10727] U8G_FONT_SECTION("u8g_font_symb24") = { - 0,40,34,251,249,23,5,133,13,247,32,255,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,20,23,69,20,0,0,240,1, - 192,124,7,224,15,12,112,7,12,240,3,152,224,1,208,224, - 1,208,0,1,240,0,1,240,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,1,240,0, - 7,252,0,6,9,9,8,1,16,24,60,60,120,112,96,224, - 192,128,16,21,42,18,1,0,0,7,0,31,0,124,1,240, - 7,192,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,120,0,30,0,7,0,1,0,0,0,0,255,255, - 255,255,15,23,46,6,251,0,0,2,0,6,0,12,0,12, - 0,24,0,48,0,48,0,96,0,192,0,192,1,128,3,0, - 3,0,6,0,12,0,12,0,24,0,48,0,48,0,96,0, - 192,0,192,0,128,0,21,10,30,23,1,4,28,3,192,127, - 15,224,99,158,48,193,248,24,192,240,24,192,240,24,192,248, - 24,99,156,48,127,15,240,28,3,192,16,29,58,16,0,250, - 0,30,0,51,0,103,0,98,0,224,0,224,0,192,0,192, - 0,192,15,252,1,192,1,192,1,192,1,192,1,128,1,128, - 1,128,3,128,3,128,3,128,3,0,3,0,3,0,3,0, - 2,0,102,0,230,0,236,0,120,0,18,18,54,24,3,0, - 1,224,0,3,240,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,240,0,1,224,0,124,207,128,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,252,207,192,120,199,128, - 0,192,0,1,224,0,14,18,36,24,5,0,3,0,7,128, - 7,192,15,192,31,224,63,240,127,248,127,248,255,252,255,252, - 127,248,127,248,63,240,31,224,15,192,7,192,7,128,3,0, - 16,18,36,24,4,0,124,62,254,127,254,127,255,255,255,255, - 255,255,255,255,127,254,127,254,63,252,63,252,31,248,15,240, - 15,240,7,224,3,192,1,128,1,128,16,18,36,24,4,0, - 1,128,1,192,3,192,7,224,7,240,15,240,31,248,63,252, - 63,252,127,254,255,255,255,255,255,255,253,191,249,159,249,159, - 113,142,3,192,32,16,64,34,1,0,1,128,1,128,3,0, - 0,192,7,0,0,224,14,0,0,112,28,0,0,56,56,0, - 0,28,112,0,0,14,255,255,255,255,255,255,255,255,112,0, - 0,14,56,0,0,28,28,0,0,56,14,0,0,112,7,0, - 0,224,3,0,0,192,1,128,1,128,29,16,64,32,1,0, - 1,128,0,0,3,0,0,0,6,0,0,0,14,0,0,0, - 28,0,0,0,56,0,0,0,112,0,0,0,255,255,255,248, - 255,255,255,248,112,0,0,0,56,0,0,0,28,0,0,0, - 14,0,0,0,6,0,0,0,3,0,0,0,1,128,0,0, - 16,27,54,20,2,0,1,128,3,192,7,224,15,240,29,184, - 57,156,113,142,225,135,193,131,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,29,16,64,32, - 2,0,0,0,12,0,0,0,14,0,0,0,7,0,0,0, - 3,128,0,0,1,192,0,0,0,224,0,0,0,112,255,255, - 255,248,255,255,255,248,0,0,0,112,0,0,0,224,0,0, - 1,192,0,0,3,128,0,0,7,0,0,0,14,0,0,0, - 12,0,16,27,54,20,2,0,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,193,131,225,135, - 113,142,57,156,29,184,15,240,7,224,3,192,1,128,9,10, - 20,13,2,13,28,0,99,0,65,0,128,128,128,128,128,128, - 128,128,65,0,99,0,28,0,16,22,44,18,1,0,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,255,255,255,255,12,9,18,13,1,15, - 28,112,28,112,60,240,56,224,113,192,113,192,227,128,195,0, - 130,0,16,21,42,18,1,0,224,0,248,0,62,0,15,128, - 1,224,0,120,0,30,0,7,0,7,0,30,0,120,1,224, - 7,128,30,0,120,0,224,0,128,0,0,0,0,0,255,255, - 255,255,16,16,32,18,1,1,192,3,224,7,112,14,56,28, - 28,56,14,112,7,224,3,192,3,192,7,224,14,112,28,56, - 56,28,112,14,224,7,192,3,19,10,30,23,1,4,28,3, - 192,63,15,224,99,156,0,193,248,0,192,240,0,192,240,0, - 193,248,0,99,156,0,127,15,224,28,3,192,14,27,54,16, - 1,0,30,0,63,128,32,224,0,112,0,48,0,24,0,24, - 0,24,0,28,0,28,0,28,15,28,31,252,56,124,120,60, - 112,60,240,56,224,56,224,56,224,56,224,112,224,112,96,96, - 112,224,57,192,31,128,15,0,11,12,24,15,2,4,14,0, - 63,128,127,192,127,192,255,224,255,224,255,224,255,224,127,192, - 127,192,63,128,14,0,16,13,26,18,1,2,1,128,3,192, - 3,192,1,128,0,0,255,255,255,255,0,0,0,0,1,128, - 3,192,3,192,1,128,17,19,57,18,1,255,0,12,0,0, - 24,0,0,24,0,0,48,0,0,48,0,255,255,128,255,255, - 128,0,192,0,0,192,0,1,128,0,1,128,0,3,0,0, - 255,255,128,255,255,128,6,0,0,12,0,0,12,0,0,24, - 0,0,24,0,0,17,12,36,18,0,3,255,255,128,255,255, - 128,0,0,0,0,0,0,0,0,0,255,255,128,255,255,128, - 0,0,0,0,0,0,0,0,0,255,255,128,255,255,128,16, - 9,18,18,1,4,28,0,127,135,225,254,64,56,0,0,28, - 0,127,135,225,254,192,56,26,4,16,33,3,0,96,12,1, - 128,240,30,3,192,240,30,3,192,96,12,1,128,2,34,34, - 20,9,249,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,32,2,8,32,0,7,255,255,255,255,255, - 255,255,255,18,21,63,21,1,0,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,16,0,192,112,0,192,255,255,192,255, - 255,192,112,0,0,16,0,0,16,22,44,27,5,0,0,32, - 96,96,240,126,240,127,248,127,124,63,60,15,62,12,31,24, - 31,152,55,240,115,240,97,240,225,240,240,248,240,124,120,62, - 124,30,124,31,60,15,124,7,252,6,18,27,81,22,1,254, - 7,240,0,31,254,0,63,255,128,56,63,128,96,7,0,96, - 7,0,64,6,0,64,12,0,64,12,0,96,28,0,48,28, - 0,28,14,0,14,14,0,0,15,0,0,7,0,0,7,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,192,60, - 1,128,255,1,128,159,195,0,7,254,0,3,248,0,0,240, - 0,23,24,72,26,1,0,15,128,192,63,225,240,97,247,248, - 192,252,124,128,120,62,128,120,28,128,56,56,192,56,112,224, - 56,192,120,57,192,62,59,192,14,57,224,6,56,224,6,56, - 224,0,56,240,0,56,240,0,56,112,0,112,112,0,112,112, - 0,96,120,30,192,122,63,128,62,47,128,60,6,0,16,23, - 26,78,32,5,249,0,192,0,1,192,0,3,0,112,6,3, - 252,6,14,30,12,24,30,28,48,14,24,96,14,56,192,30, - 57,128,30,59,0,30,62,0,28,62,48,60,60,120,56,30, - 112,120,62,64,240,47,65,224,111,99,192,71,63,0,199,0, - 0,135,0,0,131,0,0,131,0,0,199,0,0,102,0,0, - 60,0,0,22,23,69,25,1,0,0,252,0,3,255,0,15, - 3,192,28,0,224,56,0,112,50,1,48,103,3,152,99,135, - 24,193,134,8,192,204,12,192,120,12,192,48,12,192,120,12, - 192,204,12,193,134,12,99,135,24,103,3,152,50,1,48,56, - 0,112,28,0,224,15,3,192,3,255,0,0,252,0,22,23, - 69,25,1,0,0,252,0,3,255,0,15,3,192,28,48,224, - 24,48,96,48,48,48,96,48,24,96,48,24,96,48,24,192, - 48,12,192,48,12,223,255,236,223,255,236,192,48,12,192,48, - 12,96,48,24,96,48,24,48,48,48,56,48,112,28,48,224, - 15,3,192,3,255,0,0,252,0,24,24,72,27,1,0,0, - 126,2,3,255,198,7,129,238,14,0,124,24,0,56,48,0, - 124,112,0,238,96,1,198,96,3,134,192,7,3,192,14,3, - 192,28,3,192,56,3,192,112,3,192,224,3,97,192,6,99, - 128,6,119,0,14,62,0,12,28,0,24,62,0,112,119,129, - 224,227,255,192,192,126,0,22,17,51,25,1,0,0,252,0, - 3,255,0,15,3,192,28,0,224,56,0,112,48,0,48,96, - 0,24,96,0,24,192,0,12,192,0,12,192,0,12,192,0, - 12,192,0,12,192,0,12,192,0,12,192,0,12,192,0,12, - 22,17,51,25,1,0,192,0,12,192,0,12,192,0,12,192, - 0,12,192,0,12,192,0,12,192,0,12,192,0,12,192,0, - 12,96,0,24,96,0,24,48,0,48,56,0,112,28,0,224, - 15,3,192,3,255,0,0,252,0,21,16,48,23,1,0,255, - 255,0,255,255,192,0,1,224,0,0,112,0,0,48,0,0, - 56,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,48,0,0,112,0,0,224,255,255,192,255,255,0,21, - 20,60,23,1,252,255,255,0,255,255,192,0,0,224,0,0, - 112,0,0,48,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,48,0,0,112,0,0,224,255, - 255,192,255,255,0,0,0,0,0,0,0,255,255,240,255,255, - 240,21,20,60,23,1,254,0,0,96,0,0,192,7,255,248, - 15,255,248,56,1,128,112,3,0,96,3,0,224,6,0,192, - 6,0,192,12,0,192,12,0,192,24,0,224,24,0,96,48, - 0,112,48,0,60,96,0,31,255,248,7,255,248,0,192,0, - 1,128,0,21,16,48,23,1,0,7,255,248,31,255,248,56, - 0,0,112,0,0,96,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,224,0,0,96,0,0,112,0,0, - 60,0,0,31,255,248,7,255,248,21,20,60,23,1,252,7, - 255,248,31,255,248,56,0,0,112,0,0,96,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 96,0,0,112,0,0,56,0,0,31,255,248,7,255,248,0, - 0,0,0,0,0,127,255,248,127,255,248,15,16,32,23,1, - 0,7,254,31,254,56,0,112,0,96,0,192,0,192,0,255, - 254,255,254,192,0,192,0,96,0,112,0,56,0,31,254,7, - 254,15,20,40,23,1,254,0,24,0,24,7,254,31,254,56, - 96,112,96,96,192,64,192,193,128,255,254,255,254,195,0,70, - 0,110,0,124,0,60,0,31,254,55,254,48,0,32,0,22, - 22,66,25,1,0,0,0,12,0,0,28,0,0,56,0,0, - 112,0,0,224,0,1,192,0,3,128,0,7,0,0,14,0, - 0,28,0,0,56,0,0,112,0,0,96,0,0,192,0,1, - 128,0,3,0,0,7,0,0,14,0,0,28,0,0,56,0, - 0,127,255,248,255,255,248,20,24,72,23,1,0,255,255,240, - 127,255,240,120,0,48,120,0,32,60,0,96,60,0,64,28, - 0,192,30,0,192,30,1,128,15,1,128,15,1,0,7,3, - 0,7,130,0,7,134,0,3,196,0,3,204,0,3,204,0, - 1,248,0,1,248,0,0,240,0,0,240,0,0,224,0,0, - 96,0,0,64,0,21,22,66,25,2,0,1,252,0,7,7, - 0,12,1,192,24,0,192,51,248,96,97,142,48,65,134,16, - 193,134,24,193,134,24,129,140,8,129,248,8,129,184,8,129, - 152,8,193,156,24,193,142,24,65,135,16,103,195,176,48,0, - 96,24,0,192,28,1,192,7,7,0,1,252,0,21,23,69, - 25,2,0,1,252,0,7,207,0,14,1,128,24,0,192,48, - 0,96,48,0,48,96,125,48,65,199,16,195,3,24,195,1, - 24,134,0,8,134,0,8,134,0,8,134,0,8,134,0,8, - 199,0,24,67,3,24,97,199,16,32,252,48,48,0,96,28, - 0,192,7,135,128,1,254,0,27,13,52,29,1,10,255,220, - 1,224,204,206,3,128,140,78,3,128,12,15,7,128,12,11, - 5,128,12,11,141,128,12,9,141,128,12,9,201,128,12,8, - 217,128,12,8,241,128,12,8,113,128,12,8,97,128,62,30, - 39,224,25,27,108,27,1,0,255,255,255,128,63,255,254,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,63,0,126,0, - 255,193,255,128,17,27,81,18,0,0,0,0,128,0,0,128, - 0,0,128,0,0,128,0,1,128,0,1,0,0,1,0,0, - 3,0,0,2,0,8,2,0,56,2,0,236,6,0,12,4, - 0,6,4,0,6,4,0,3,4,0,3,12,0,1,140,0, - 1,136,0,0,200,0,0,200,0,0,104,0,0,120,0,0, - 56,0,0,48,0,0,16,0,0,16,0,3,3,3,8,2, - 7,224,224,224,21,10,30,23,1,0,255,255,248,255,255,248, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,16,15,30,20,2,0,1,128, - 1,128,3,192,3,192,6,96,14,112,12,48,28,56,24,24, - 48,12,48,12,96,6,224,7,192,3,128,1,16,15,30,20, - 2,0,128,1,192,3,224,7,96,6,48,12,48,12,24,24, - 28,56,12,48,6,96,6,96,3,192,3,192,1,128,1,128, - 32,18,72,34,1,0,0,128,1,0,1,128,1,128,3,0, - 0,192,6,0,0,96,15,255,255,240,31,255,255,248,56,0, - 0,28,112,0,0,14,224,0,0,7,224,0,0,7,112,0, - 0,14,56,0,0,28,31,255,255,248,15,255,255,240,6,0, - 0,96,3,0,0,192,1,128,1,128,0,128,1,0,29,17, - 68,32,1,0,0,128,0,0,1,128,0,0,3,0,0,0, - 6,0,0,0,15,255,255,248,31,255,255,248,56,0,0,0, - 112,0,0,0,224,0,0,0,112,0,0,0,56,0,0,0, - 31,255,255,248,15,255,255,248,6,0,0,0,3,0,0,0, - 1,128,0,0,0,128,0,0,17,27,81,20,1,0,0,128, - 0,1,192,0,3,224,0,7,112,0,14,56,0,28,28,0, - 60,30,0,124,31,0,236,27,128,12,24,0,12,24,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,29, - 17,68,32,2,0,0,0,8,0,0,0,12,0,0,0,6, - 0,0,0,3,0,255,255,255,128,255,255,255,192,0,0,0, - 224,0,0,0,112,0,0,0,56,0,0,0,112,0,0,0, - 224,255,255,255,192,255,255,255,128,0,0,3,0,0,0,6, - 0,0,0,12,0,0,0,8,0,17,27,81,20,1,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,12, - 24,0,12,24,0,236,27,128,124,31,0,60,30,0,28,28, - 0,14,56,0,7,112,0,3,224,0,1,192,0,0,128,0, - 14,25,50,16,1,0,3,0,7,128,7,128,12,192,12,192, - 24,96,24,96,48,48,48,48,96,24,96,24,192,12,192,12, - 224,28,96,24,96,24,48,48,48,48,24,96,24,96,12,192, - 12,192,7,128,7,128,3,0,9,30,60,11,1,250,1,128, - 3,0,3,0,6,0,6,0,14,0,12,0,28,0,24,0, - 56,0,48,0,48,0,96,0,96,0,192,0,192,0,96,0, - 96,0,48,0,48,0,56,0,24,0,28,0,12,0,14,0, - 6,0,6,0,3,0,3,0,1,128,21,22,66,26,2,0, - 1,252,0,7,15,0,12,1,128,24,0,192,48,0,96,99, - 254,48,67,6,16,195,3,24,195,3,24,195,3,24,131,6, - 8,131,252,8,131,6,8,195,3,24,195,3,24,67,3,16, - 99,3,48,32,0,32,48,0,96,28,1,192,7,15,0,3, - 252,0,21,23,69,26,2,0,1,252,0,7,223,0,14,3, - 128,24,0,192,48,0,96,32,0,32,96,252,48,65,206,16, - 195,6,24,195,3,24,194,0,8,134,0,8,134,0,8,134, - 0,8,134,3,24,195,3,24,67,6,24,97,206,48,32,248, - 48,48,0,96,28,0,192,15,135,128,3,254,0,22,13,39, - 25,1,10,255,56,28,24,56,28,24,56,28,24,60,60,24, - 60,60,24,52,44,24,54,108,24,54,108,24,50,76,24,51, - 204,24,51,204,24,49,140,24,49,140,21,28,84,23,1,255, - 255,255,224,120,3,224,124,0,96,60,0,96,30,0,32,15, - 0,0,15,128,0,7,128,0,3,192,0,3,224,0,1,240, - 0,0,240,0,0,120,0,0,120,0,0,56,0,0,48,0, - 0,96,0,0,192,0,1,128,0,3,128,0,3,0,0,6, - 0,8,12,0,24,24,0,24,48,0,48,127,255,240,127,255, - 240,255,255,240,13,34,68,13,1,249,0,24,0,120,0,224, - 1,192,3,128,3,0,6,0,12,0,12,0,24,0,24,0, - 56,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0, - 96,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,2,34, - 34,13,1,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,34,68,13,1,249,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,0,96,0,96,0, - 96,0,48,0,48,0,48,0,56,0,24,0,24,0,12,0, - 12,0,6,0,3,0,3,128,1,192,0,224,0,120,0,24, - 11,34,68,13,0,249,255,224,255,224,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,2,34,34,13,0,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,34,68,13,0,249,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,255,224,255,224,8,34,34,16, - 6,249,7,31,56,112,96,96,224,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,9,34,68,16,255,249,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 3,0,3,0,6,0,12,0,56,0,224,0,120,0,12,0, - 6,0,3,0,3,0,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,8,34, - 34,16,6,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 96,96,112,56,31,7,2,34,34,16,6,249,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,9, - 30,60,11,1,250,192,0,96,0,96,0,48,0,48,0,56, - 0,24,0,28,0,12,0,14,0,6,0,6,0,3,0,3, - 0,1,128,1,128,3,0,3,0,6,0,6,0,14,0,12, - 0,28,0,24,0,56,0,48,0,48,0,96,0,96,0,192, - 0,9,33,66,9,0,250,3,0,7,128,7,128,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,248,0,248,0,112,0,12,34,68,23,10,249,1, - 224,3,240,6,112,12,240,8,96,24,0,24,0,48,0,48, - 0,48,0,112,0,96,0,96,0,96,0,96,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,3,34,34,22,10,249,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,12,34,68,22,1, - 249,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,96,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,1,128,1,128,97,0,243,0,230, - 0,252,0,120,0,13,34,68,13,0,249,192,0,240,0,56, - 0,24,0,12,0,6,0,3,0,1,0,1,128,0,192,0, - 192,0,192,0,96,0,96,0,96,0,48,0,48,0,48,0, - 48,0,48,0,16,0,16,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,2, - 34,34,13,11,249,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,13,34,68,13,0,249,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,16,0,16,0,48,0,48,0,48,0, - 48,0,48,0,96,0,96,0,96,0,192,0,192,0,192,1, - 128,1,0,3,0,6,0,12,0,28,0,56,0,240,0,192, - 0,11,34,68,13,1,249,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,2,34,34,13,10, - 249,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,11,34,68,13,1,249,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,255,224,255,224,8,34,34, - 16,0,249,224,120,28,14,6,6,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,9,34,68,16,6,249,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,0,48,0,24,0,14,0,3,128,14,0,24, - 0,48,0,96,0,96,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,8, - 33,33,16,0,250,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 6,6,14,28,120,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=27 h=33 x=15 y=26 dx=29 dy= 0 ascent=27 len=92 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24r[5335] U8G_FONT_SECTION("u8g_font_symb24r") = { - 0,40,34,251,249,23,5,133,13,247,32,127,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=11 x= 1 y= 6 dx=11 dy= 0 ascent=10 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08[2551] U8G_FONT_SECTION("u8g_font_timB08") = { - 0,13,18,254,251,7,1,164,3,77,32,255,253,10,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,2,0,1,2,7,7,4,1, - 253,192,192,0,192,192,192,192,5,7,7,6,0,255,16,120, - 208,208,224,120,32,5,7,7,6,0,0,56,104,96,248,96, - 232,216,5,5,5,6,0,1,136,112,80,112,136,5,7,7, - 6,0,0,216,216,112,32,112,32,112,1,7,7,3,1,0, - 128,128,128,0,128,128,128,4,9,9,5,0,254,96,176,192, - 160,208,112,48,208,96,3,1,1,4,0,5,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,6,6,4,0,1, - 192,32,224,160,0,224,5,5,5,6,0,0,40,80,160,80, - 40,5,3,3,7,1,1,248,8,8,3,1,1,3,0,2, - 224,7,7,7,9,1,0,56,68,186,178,170,68,56,3,1, - 1,4,0,5,224,4,3,3,4,0,4,96,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 3,96,160,64,224,3,4,4,3,0,3,224,64,32,192,2, - 2,2,4,1,5,64,128,5,8,8,5,0,253,216,208,208, - 208,240,128,192,192,6,10,10,6,0,253,124,232,232,232,104, - 40,40,40,40,40,1,2,2,3,1,2,128,128,2,3,3, - 3,1,253,128,64,192,3,4,4,3,0,3,64,192,64,224, - 3,6,6,4,0,1,64,160,160,64,0,224,5,5,5,6, - 0,0,160,80,40,80,160,7,7,7,7,0,0,68,200,72, - 244,44,62,68,7,7,7,7,0,0,68,200,72,246,42,36, - 78,7,7,7,7,0,0,228,72,40,212,44,62,68,4,7, - 7,6,1,253,96,96,0,64,208,208,96,8,10,10,7,255, - 0,32,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,8,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,16,40,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,52,88,0,16,24,56,44,124,78,239,8,9,9,7,255, - 0,36,0,16,24,56,44,124,78,239,8,10,10,7,255,0, - 24,36,24,16,24,56,44,124,78,239,9,7,14,9,255,0, - 63,128,28,128,44,0,47,0,124,0,76,128,239,128,6,10, - 10,7,0,253,124,204,192,192,192,236,120,32,16,48,6,10, - 10,7,0,0,32,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,8,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,48,72,0,252,100,96,120,96,100,252,6,9, - 9,7,0,0,40,0,252,100,96,120,96,100,252,4,10,10, - 5,0,0,64,32,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,32,64,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,96,144,0,240,96,96,96,96,96,240,4,9,9, - 5,0,0,144,0,240,96,96,96,96,96,240,7,7,7,8, - 0,0,252,102,102,246,102,102,252,7,10,10,8,0,0,52, - 88,0,238,100,116,92,92,76,228,6,10,10,7,0,0,32, - 16,0,120,204,204,204,204,204,120,6,10,10,7,0,0,16, - 32,0,120,204,204,204,204,204,120,6,10,10,7,0,0,48, - 72,0,120,204,204,204,204,204,120,6,10,10,7,0,0,52, - 88,0,120,204,204,204,204,204,120,6,9,9,7,0,0,72, - 0,120,204,204,204,204,204,120,6,5,5,6,0,0,204,120, - 48,120,204,6,9,9,8,1,255,4,120,204,220,236,236,204, - 120,128,7,10,10,7,0,0,32,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,8,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,24,36,0,246,100,100,100,100, - 100,56,7,9,9,7,0,0,36,0,246,100,100,100,100,100, - 56,8,10,10,8,0,0,4,8,0,247,98,52,56,24,24, - 60,6,7,7,6,0,0,224,120,108,108,120,96,240,5,7, - 7,6,0,0,112,200,200,208,200,200,216,5,8,8,5,0, - 0,64,32,0,96,176,112,176,248,5,8,8,5,0,0,16, - 32,0,96,176,112,176,248,5,8,8,5,0,0,32,80,0, - 96,176,112,176,248,5,8,8,5,0,0,104,176,0,96,176, - 112,176,248,5,7,7,5,0,0,80,0,96,176,112,176,248, - 5,8,8,5,0,0,32,80,32,96,176,112,176,248,7,5, - 5,8,0,0,110,186,126,184,238,4,8,8,5,0,253,112, - 208,192,208,112,64,32,96,4,8,8,5,0,0,64,32,0, - 112,208,240,192,112,4,8,8,5,0,0,16,32,0,112,208, - 240,192,112,5,8,8,5,0,0,32,80,136,112,208,240,192, - 112,4,7,7,5,0,0,80,0,112,208,240,192,112,2,8, - 8,3,0,0,128,64,0,192,192,192,192,192,2,8,8,3, - 0,0,64,128,0,192,192,192,192,192,3,8,8,3,0,0, - 64,160,0,192,192,192,192,192,3,7,7,3,0,0,160,0, - 192,192,192,192,192,5,9,9,6,0,0,128,112,96,176,24, - 120,216,216,112,6,8,8,6,0,0,104,176,0,176,216,216, - 216,220,5,8,8,6,0,0,64,32,0,112,216,216,216,112, - 5,8,8,6,0,0,16,32,0,112,216,216,216,112,5,8, - 8,6,0,0,32,80,0,112,216,216,216,112,5,8,8,6, - 0,0,104,176,0,112,216,216,216,112,5,7,7,6,0,0, - 80,0,112,216,216,216,112,5,5,5,6,0,0,32,0,248, - 0,32,5,7,7,6,0,255,16,112,216,216,216,112,64,5, - 8,8,5,0,0,64,32,0,216,208,208,208,112,5,8,8, - 5,0,0,16,32,0,216,208,208,208,112,5,8,8,5,0, - 0,32,80,0,216,208,208,208,112,5,7,7,5,0,0,80, - 0,216,208,208,208,112,5,11,11,5,0,253,16,32,0,216, - 216,112,112,32,32,192,192,5,10,10,5,255,253,224,96,112, - 104,104,104,112,96,96,224,5,10,10,5,0,253,80,0,216, - 216,112,112,32,32,192,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=10 x= 1 y= 6 dx=11 dy= 0 ascent= 8 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08r[1221] U8G_FONT_SECTION("u8g_font_timB08r") = { - 0,13,18,254,251,7,1,164,3,77,32,127,253,8,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=14 x= 1 y= 8 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10[3539] U8G_FONT_SECTION("u8g_font_timB10") = { - 0,17,24,254,250,10,2,6,4,148,32,255,253,14,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,3,0,1,2,10,10,4,1,253,192,192,0,192, - 192,192,192,192,192,192,6,11,11,7,0,254,8,8,120,212, - 208,208,240,228,120,32,32,7,10,10,8,0,0,60,118,102, - 96,48,248,48,48,246,222,7,6,6,8,0,2,56,238,68, - 68,238,56,8,10,10,8,0,0,247,98,118,52,60,24,60, - 24,24,60,1,12,12,3,1,254,128,128,128,128,128,0,0, - 128,128,128,128,128,5,12,12,7,1,254,112,216,200,96,240, - 152,200,120,48,152,216,112,3,2,2,5,1,8,160,160,10, - 10,20,12,1,0,30,0,97,128,78,128,146,64,144,64,144, - 64,146,64,76,128,97,128,30,0,4,7,7,5,0,3,96, - 16,112,144,112,0,240,7,5,5,9,1,1,54,108,216,108, - 54,7,4,4,9,1,1,254,2,2,2,3,1,1,4,0, - 3,224,10,10,20,12,1,0,30,0,97,128,92,128,146,64, - 146,64,156,64,148,64,82,128,97,128,30,0,4,1,1,5, - 0,8,240,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,4,6,6,4, - 0,4,96,176,48,96,192,240,4,6,6,4,0,4,96,176, - 96,48,176,96,3,3,3,5,1,8,32,96,128,8,10,10, - 7,255,253,238,102,102,102,102,102,123,64,96,96,7,13,13, - 8,0,253,126,244,244,244,244,116,20,20,20,20,20,20,20, - 2,2,2,4,0,4,192,192,3,3,3,5,1,253,64,32, - 224,4,6,6,4,0,4,32,224,96,96,96,240,4,7,7, - 5,0,3,96,144,144,144,96,0,240,7,5,5,9,1,1, - 216,108,54,108,216,10,10,20,10,0,0,33,0,226,0,98, - 0,100,0,100,128,249,128,11,128,22,128,23,192,33,128,10, - 10,20,10,0,0,33,0,226,0,98,0,100,0,101,128,250, - 192,8,192,17,128,19,0,35,192,10,10,20,10,0,0,97, - 0,178,0,98,0,52,0,180,128,105,128,11,128,22,128,23, - 192,33,128,5,10,10,7,1,253,48,48,0,48,48,96,192, - 216,216,112,10,14,28,10,0,0,16,0,24,0,4,0,0, - 0,12,0,12,0,30,0,22,0,51,0,35,0,63,0,97, - 128,65,128,227,192,10,14,28,10,0,0,2,0,6,0,8, - 0,0,0,12,0,12,0,30,0,22,0,51,0,35,0,63, - 0,97,128,65,128,227,192,10,14,28,10,0,0,8,0,28, - 0,34,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,26, - 0,44,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,18, - 0,18,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,14,28,10,0,0,12, - 0,18,0,12,0,0,0,12,0,12,0,30,0,22,0,51, - 0,35,0,63,0,97,128,65,128,227,192,13,10,20,14,0, - 0,31,248,15,24,11,8,27,32,19,224,63,32,35,40,99, - 8,67,24,231,248,8,13,13,10,1,253,61,99,193,193,192, - 192,192,193,99,62,16,8,56,8,14,14,9,0,0,32,48, - 8,0,255,99,97,100,124,100,101,97,99,255,8,14,14,9, - 0,0,4,12,16,0,255,99,97,100,124,100,101,97,99,255, - 8,14,14,9,0,0,8,28,34,0,255,99,97,100,124,100, - 101,97,99,255,8,13,13,9,0,0,36,36,0,255,99,97, - 100,124,100,101,97,99,255,4,14,14,5,0,0,128,192,32, - 0,240,96,96,96,96,96,96,96,96,240,4,14,14,5,0, - 0,16,48,64,0,240,96,96,96,96,96,96,96,96,240,5, - 14,14,5,0,0,32,112,136,0,240,96,96,96,96,96,96, - 96,96,240,4,13,13,5,0,0,144,144,0,240,96,96,96, - 96,96,96,96,96,240,9,10,20,11,1,0,254,0,99,0, - 97,128,97,128,241,128,97,128,97,128,97,128,99,0,254,0, - 10,13,26,10,0,0,26,0,44,0,0,0,225,192,112,128, - 112,128,88,128,76,128,76,128,70,128,67,128,67,128,225,128, - 9,14,28,11,1,0,16,0,24,0,4,0,0,0,62,0, - 99,0,193,128,193,128,193,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,11,1,0,4,0,12,0,16,0,0,0, - 62,0,99,0,193,128,193,128,193,128,193,128,193,128,193,128, - 99,0,62,0,9,14,28,11,1,0,8,0,28,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,26,0,44,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,34,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,8,7,7,8,0,0,195,102,60,24, - 60,102,195,9,12,24,11,1,255,0,128,61,0,99,0,195, - 128,197,128,201,128,201,128,209,128,225,128,99,0,94,0,128, - 0,9,14,28,10,0,0,16,0,24,0,4,0,0,0,243, - 128,97,0,97,0,97,0,97,0,97,0,97,0,97,0,115, - 0,62,0,9,14,28,10,0,0,4,0,12,0,16,0,0, - 0,243,128,97,0,97,0,97,0,97,0,97,0,97,0,97, - 0,115,0,62,0,9,14,28,10,0,0,8,0,28,0,34, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,9,13,26,10,0,0,18,0,18, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,10,14,28,10,0,0,1,0,3, - 0,4,0,0,0,249,192,112,128,49,0,57,0,26,0,30, - 0,12,0,12,0,12,0,30,0,8,10,10,9,0,0,240, - 96,126,103,99,99,99,126,96,240,7,10,10,8,0,0,56, - 108,100,108,120,108,102,102,102,236,7,11,11,7,0,0,32, - 48,8,0,120,204,12,124,204,204,118,7,11,11,7,0,0, - 8,24,32,0,120,204,12,124,204,204,118,7,11,11,7,0, - 0,16,56,68,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,52,88,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,40,40,0,120,204,12,124,204,204,118,7,11,11,7, - 0,0,48,72,48,0,120,204,12,124,204,204,118,10,7,14, - 11,0,0,123,128,204,192,204,192,63,192,204,0,204,192,119, - 128,6,10,10,7,0,253,56,76,204,192,192,228,120,32,16, - 112,6,11,11,7,0,0,64,96,16,0,56,76,204,252,192, - 228,120,6,11,11,7,0,0,8,24,32,0,56,76,204,252, - 192,228,120,6,11,11,7,0,0,16,56,68,0,56,76,204, - 252,192,228,120,6,10,10,7,0,0,80,80,0,56,76,204, - 252,192,228,120,4,11,11,4,0,0,128,192,32,0,224,96, - 96,96,96,96,240,4,11,11,4,0,0,32,96,128,0,224, - 96,96,96,96,96,240,5,11,11,4,0,0,32,112,136,0, - 224,96,96,96,96,96,240,4,10,10,4,0,0,160,160,0, - 224,96,96,96,96,96,240,6,10,10,7,0,0,204,112,152, - 120,204,204,204,204,204,120,8,10,10,8,0,0,52,88,0, - 236,118,102,102,102,102,231,6,11,11,7,0,0,32,48,8, - 0,120,204,204,204,204,204,120,6,11,11,7,0,0,8,24, - 32,0,120,204,204,204,204,204,120,6,11,11,7,0,0,32, - 112,136,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 104,176,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 80,80,0,120,204,204,204,204,204,120,6,7,7,8,0,0, - 48,48,0,252,0,48,48,6,9,9,7,0,255,4,120,204, - 220,236,236,204,120,128,8,11,11,7,255,0,32,48,8,0, - 238,102,102,102,102,102,59,8,11,11,7,255,0,4,12,16, - 0,238,102,102,102,102,102,59,8,11,11,7,255,0,16,56, - 68,0,238,102,102,102,102,102,59,8,10,10,7,255,0,40, - 40,0,238,102,102,102,102,102,59,8,14,14,7,255,253,2, - 6,8,0,247,98,50,52,28,28,8,8,56,48,7,13,13, - 8,0,253,224,96,96,108,118,102,102,102,102,124,96,96,240, - 8,13,13,7,255,253,34,34,0,247,98,50,52,28,28,8, - 8,56,48}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=13 x= 1 y= 8 dx=14 dy= 0 ascent=11 len=26 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10r[1632] U8G_FONT_SECTION("u8g_font_timB10r") = { - 0,17,24,254,250,10,2,6,4,148,32,127,253,11,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255 - }; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=16 x= 2 y= 9 dx=17 dy= 0 ascent=16 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12[3887] U8G_FONT_SECTION("u8g_font_timB12") = { - 0,19,27,254,249,11,2,42,5,41,32,255,252,16,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,2,252,192,192,0,0,64,64,64,192,192,192, - 192,192,6,12,12,8,1,254,4,4,56,76,204,208,208,224, - 100,56,64,64,8,11,11,8,0,0,28,38,38,48,48,124, - 48,16,113,158,110,6,7,7,8,1,1,180,120,204,132,204, - 120,180,8,11,11,8,0,0,227,98,50,52,28,126,24,126, - 24,24,126,1,15,15,4,1,253,128,128,128,128,128,128,0, - 0,0,128,128,128,128,128,128,6,15,15,8,1,252,56,76, - 76,96,48,120,156,204,228,120,56,24,200,200,112,5,2,2, - 6,0,9,216,216,12,11,22,12,255,0,15,0,48,192,71, - 32,72,160,152,16,152,16,152,16,72,160,71,32,48,192,15, - 0,5,7,7,5,0,4,96,144,112,176,216,0,248,7,7, - 7,8,0,0,18,54,108,216,108,54,18,7,6,6,9,1, - 1,254,254,2,2,2,2,4,2,2,5,0,3,240,240,12, - 11,22,12,0,0,15,0,48,192,78,32,73,32,137,16,142, - 16,138,16,73,32,93,32,48,192,15,0,5,1,1,6,0, - 9,248,4,5,5,7,1,6,96,144,144,144,96,7,9,9, - 9,1,0,16,16,254,254,16,16,0,254,254,4,7,7,5, - 0,4,96,240,176,32,64,240,240,4,7,7,5,0,4,96, - 176,48,96,48,176,96,3,3,3,6,1,9,96,64,128,8, - 11,11,9,0,253,238,102,102,102,102,102,111,118,64,96,96, - 7,15,15,9,1,252,62,116,244,244,244,244,116,52,20,20, - 20,20,20,20,20,2,2,2,4,1,4,192,192,5,4,4, - 6,0,252,32,48,136,112,4,7,7,5,1,4,96,224,96, - 96,96,96,240,4,7,7,6,1,4,96,144,144,144,96,0, - 240,7,7,7,8,0,0,144,216,108,54,108,216,144,11,11, - 22,12,0,0,96,128,225,0,97,0,98,0,100,64,100,192, - 249,192,10,192,19,224,32,192,32,192,10,11,22,12,0,0, - 97,0,225,0,98,0,98,0,100,0,107,128,254,192,16,128, - 17,0,35,192,39,192,11,11,22,12,0,0,96,128,177,0, - 49,0,98,0,52,64,180,192,105,192,10,192,19,224,32,192, - 32,192,6,11,11,8,1,253,24,24,0,16,32,64,192,192, - 204,204,112,11,15,30,12,0,0,48,0,24,0,4,0,0, - 0,4,0,14,0,14,0,27,0,19,0,51,0,33,128,127, - 128,64,192,192,192,225,224,11,15,30,12,0,0,1,128,3, - 0,4,0,0,0,4,0,14,0,14,0,27,0,19,0,51, - 0,33,128,127,128,64,192,192,192,225,224,11,15,30,12,0, - 0,4,0,14,0,17,0,0,0,4,0,14,0,14,0,27, - 0,19,0,51,0,33,128,127,128,64,192,192,192,225,224,11, - 14,28,12,0,0,29,0,46,0,0,0,4,0,14,0,14, - 0,27,0,19,0,51,0,33,128,127,128,64,192,192,192,225, - 224,11,14,28,12,0,0,27,0,27,0,0,0,4,0,14, - 0,14,0,27,0,19,0,51,0,33,128,127,128,64,192,192, - 192,225,224,11,16,32,12,0,0,6,0,9,0,9,0,6, - 0,0,0,4,0,14,0,14,0,27,0,19,0,51,0,33, - 128,127,128,64,192,192,192,225,224,14,11,22,16,1,0,15, - 248,7,24,11,8,11,0,19,32,31,224,35,32,35,0,67, - 4,67,12,231,252,9,15,30,11,1,252,30,128,99,128,65, - 128,192,128,192,0,192,0,192,0,192,0,96,128,115,0,62, - 0,8,0,12,0,34,0,28,0,8,15,15,10,1,0,96, - 48,8,0,255,99,97,96,98,126,98,96,97,99,255,8,15, - 15,10,1,0,6,12,16,0,255,99,97,96,98,126,98,96, - 97,99,255,8,15,15,10,1,0,8,28,34,0,255,99,97, - 96,98,126,98,96,97,99,255,8,14,14,10,1,0,102,102, - 0,255,99,97,96,98,126,98,96,97,99,255,5,15,15,6, - 0,0,192,96,16,0,120,48,48,48,48,48,48,48,48,48, - 120,4,15,15,6,1,0,48,96,128,0,240,96,96,96,96, - 96,96,96,96,96,240,5,15,15,6,0,0,32,112,136,0, - 120,48,48,48,48,48,48,48,48,48,120,6,14,14,6,0, - 0,204,204,0,120,48,48,48,48,48,48,48,48,48,120,9, - 11,22,11,1,0,252,0,102,0,99,0,97,128,97,128,249, - 128,97,128,97,128,99,0,102,0,252,0,10,14,28,12,1, - 0,29,0,46,0,0,0,241,192,112,128,88,128,88,128,76, - 128,70,128,71,128,67,128,65,128,65,128,224,128,10,15,30, - 12,1,0,48,0,24,0,4,0,0,0,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,30, - 0,10,15,30,12,1,0,3,0,6,0,8,0,0,0,30, - 0,97,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,128,30,0,10,15,30,12,1,0,4,0,14,0,17, - 0,0,0,30,0,97,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,128,30,0,10,14,28,12,1,0,29, - 0,46,0,0,0,30,0,97,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,128,30,0,10,14,28,12,1, - 0,51,0,51,0,0,0,30,0,97,128,64,128,192,192,192, - 192,192,192,192,192,192,192,64,128,97,128,30,0,7,8,8, - 9,1,0,130,198,108,56,56,108,198,130,10,13,26,13,1, - 255,0,64,30,128,97,128,65,128,194,192,194,192,196,192,200, - 192,200,192,80,128,97,128,62,0,64,0,10,15,30,12,1, - 0,48,0,24,0,4,0,0,0,241,192,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,96,128,33,0,30,0,10, - 15,30,12,1,0,3,0,6,0,8,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,33, - 0,30,0,10,15,30,12,1,0,4,0,14,0,17,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,33,0,30,0,10,14,28,12,1,0,51,0,51, - 0,0,0,241,192,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,96,128,33,0,30,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,248,224,112,64,56,128,24,128,29, - 0,15,0,6,0,6,0,6,0,6,0,15,0,8,11,11, - 10,1,0,240,96,126,103,99,99,103,126,96,96,240,8,11, - 11,9,0,0,24,38,102,102,108,98,99,99,99,98,236,8, - 12,12,8,0,0,48,16,8,0,56,204,204,28,108,204,205, - 118,8,12,12,8,0,0,24,16,32,0,56,204,204,28,108, - 204,205,118,8,12,12,8,0,0,16,56,68,0,56,204,204, - 28,108,204,205,118,8,11,11,8,0,0,52,88,0,56,204, - 204,28,108,204,205,118,8,11,11,8,0,0,108,108,0,56, - 204,204,28,108,204,205,118,8,13,13,8,0,0,16,40,40, - 16,0,56,204,204,28,108,204,205,118,10,8,16,12,1,0, - 51,128,206,192,204,192,31,192,108,0,204,0,214,64,99,128, - 6,12,12,7,0,252,56,108,204,192,192,192,100,56,32,48, - 136,112,6,12,12,7,0,0,48,16,8,0,56,108,204,252, - 192,192,100,56,6,12,12,7,0,0,24,16,32,0,56,108, - 204,252,192,192,100,56,6,12,12,7,0,0,16,56,68,0, - 56,108,204,252,192,192,100,56,6,11,11,7,0,0,108,108, - 0,56,108,204,252,192,192,100,56,4,12,12,5,0,0,192, - 64,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,48,32,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,5, - 11,11,5,255,0,216,216,0,112,48,48,48,48,48,48,120, - 7,11,11,8,0,0,108,48,216,60,108,198,198,198,198,108, - 56,8,11,11,9,0,0,52,88,0,236,126,102,102,102,102, - 102,247,7,12,12,8,0,0,48,16,8,0,56,108,198,198, - 198,198,108,56,7,12,12,8,0,0,24,16,32,0,56,108, - 198,198,198,198,108,56,7,12,12,8,0,0,16,56,68,0, - 56,108,198,198,198,198,108,56,7,11,11,8,0,0,52,88, - 0,56,108,198,198,198,198,108,56,7,11,11,8,0,0,108, - 108,0,56,108,198,198,198,198,108,56,8,8,8,9,0,0, - 24,24,0,255,255,0,24,24,7,10,10,8,0,255,2,60, - 108,206,214,214,230,108,120,128,8,12,12,9,0,0,48,16, - 8,0,238,102,102,102,102,102,111,54,8,12,12,9,0,0, - 12,8,16,0,238,102,102,102,102,102,111,54,8,12,12,9, - 0,0,16,56,68,0,238,102,102,102,102,102,111,54,8,11, - 11,9,0,0,108,108,0,238,102,102,102,102,102,111,54,8, - 16,16,8,0,252,12,8,16,0,247,98,98,52,52,28,24, - 24,16,16,224,192,8,15,15,9,0,252,224,96,96,108,118, - 99,99,99,99,114,108,96,96,96,240,8,15,15,8,0,252, - 108,108,0,247,98,98,52,52,28,24,24,16,16,224,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=15 x= 2 y= 9 dx=17 dy= 0 ascent=12 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12r[1834] U8G_FONT_SECTION("u8g_font_timB12r") = { - 0,19,27,254,249,11,2,42,5,41,32,127,252,12,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=11 dx=19 dy= 0 ascent=17 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14[4851] U8G_FONT_SECTION("u8g_font_timB14") = { - 0,22,28,254,249,13,2,178,6,78,32,255,252,17,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,1,3,13,13, - 6,1,252,224,224,224,0,64,64,224,224,224,224,224,224,64, - 8,13,13,9,0,254,1,3,62,119,239,236,216,216,240,115, - 62,96,64,14,13,26,9,0,0,31,0,59,0,59,0,56, - 0,56,0,56,0,254,0,56,4,56,0,48,0,240,128,191, - 128,239,0,8,8,8,9,0,2,219,255,102,195,195,102,255, - 219,9,13,26,9,0,0,251,128,113,0,115,0,58,0,58, - 0,28,0,127,0,28,0,127,0,28,0,28,0,28,0,127, - 0,2,16,16,4,1,253,192,192,192,192,192,192,0,0,0, - 0,192,192,192,192,192,192,7,16,16,9,1,253,60,102,70, - 96,48,120,220,206,230,118,60,28,12,196,204,120,6,2,2, - 6,0,10,204,204,13,13,26,15,1,0,15,128,56,224,96, - 48,79,208,220,216,152,72,152,8,152,8,220,216,79,144,96, - 48,56,224,15,128,6,8,8,6,0,5,112,216,56,216,216, - 236,0,252,9,7,14,11,1,1,25,128,51,0,102,0,204, - 0,102,0,51,0,25,128,9,6,12,11,1,1,255,128,255, - 128,1,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,13,26,15,1,0,15,128,56,224,96,48,95,144, - 204,216,140,200,143,136,141,136,204,216,94,240,96,48,56,224, - 15,128,6,1,1,6,0,11,252,6,5,5,7,0,8,120, - 204,204,204,120,8,11,11,11,1,0,24,24,24,255,255,24, - 24,24,0,255,255,5,8,8,5,0,5,112,152,24,48,32, - 64,248,240,5,8,8,5,0,5,112,152,24,112,56,24,152, - 112,5,3,3,6,0,10,56,112,192,10,13,26,11,0,252, - 247,128,115,128,115,128,115,128,115,128,115,128,115,128,127,128, - 125,192,96,0,224,0,240,0,96,0,9,17,34,10,0,252, - 63,128,127,128,251,0,251,0,251,0,251,0,123,0,59,0, - 27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, - 27,0,3,3,3,5,1,4,224,224,224,5,4,4,6,1, - 252,32,24,152,112,6,8,8,5,0,5,48,240,48,48,48, - 48,48,252,6,8,8,6,0,5,120,204,204,204,204,120,0, - 252,9,7,14,11,1,1,204,0,102,0,51,0,25,128,51, - 0,102,0,204,0,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,16,51,48,254,112,6,176,13,176,13, - 248,24,48,24,48,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,112,51,152,254,24,6,48,12,32,12, - 64,24,248,24,240,13,13,26,13,0,0,112,96,152,192,24, - 192,113,128,57,128,27,16,155,48,118,112,6,176,13,176,13, - 248,24,48,24,48,7,13,13,9,1,252,56,56,56,0,16, - 16,48,96,228,238,238,230,124,14,17,34,14,0,0,14,0, - 7,0,1,128,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,3,128,7,0,12,0,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,17,34,14,0,0,3,0, - 7,128,12,192,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,6,64,15,192,9,128,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,16,32,14,0,0,12,192, - 12,192,0,0,3,0,3,128,7,128,5,192,13,192,8,192, - 24,224,16,96,31,240,48,112,32,56,96,56,248,252,14,17, - 34,14,0,0,7,0,13,128,13,128,7,0,3,0,3,128, - 7,128,5,192,13,192,8,192,24,224,16,96,31,240,48,112, - 32,56,96,56,248,252,17,13,39,19,0,0,7,255,128,3, - 225,128,2,224,128,6,224,0,4,224,0,12,226,0,8,254, - 0,31,226,0,16,224,0,48,224,0,32,224,128,96,225,128, - 249,255,128,12,17,34,14,1,252,15,144,56,240,112,112,112, - 48,224,0,224,0,224,0,224,0,224,0,112,0,112,48,60, - 224,15,128,4,0,3,0,19,0,14,0,10,17,34,13,2, - 0,56,0,28,0,6,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,17,34,13,2,0,14,0,28,0,48,0,0, - 0,255,192,112,192,112,64,112,0,112,0,113,0,127,0,113, - 0,112,0,112,0,112,64,112,192,255,192,10,17,34,13,2, - 0,12,0,30,0,51,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,16,32,13,2,0,51,0,51,0,0,0,255, - 192,112,192,112,64,112,0,112,0,113,0,127,0,113,0,112, - 0,112,0,112,64,112,192,255,192,5,17,17,7,1,0,224, - 112,24,0,248,112,112,112,112,112,112,112,112,112,112,112,248, - 5,17,17,7,1,0,56,112,192,0,248,112,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,48,120,204, - 0,248,112,112,112,112,112,112,112,112,112,112,112,248,6,16, - 16,7,1,0,204,204,0,248,112,112,112,112,112,112,112,112, - 112,112,112,248,13,13,26,14,0,0,127,128,56,224,56,112, - 56,48,56,56,56,56,254,56,56,56,56,56,56,48,56,112, - 56,224,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,240,112,120,32,120,32,124,32,94,32,78,32,79,32, - 71,160,67,160,67,224,65,224,64,224,224,224,13,17,34,15, - 1,0,14,0,7,0,1,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,3,128,7,0,12,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,17,34,15, - 1,0,6,0,15,0,25,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,12,128,31,128,19,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,16,32,15, - 1,0,25,128,25,128,0,0,15,128,56,224,112,112,112,112, - 224,56,224,56,224,56,224,56,224,56,112,112,112,112,56,224, - 15,128,9,8,16,11,1,1,193,128,99,0,54,0,28,0, - 28,0,54,0,99,0,193,128,13,15,30,15,1,255,0,96, - 15,192,56,224,112,176,113,176,225,56,227,56,226,56,230,56, - 228,56,108,112,104,112,56,224,31,128,48,0,12,17,34,14, - 1,0,28,0,14,0,3,0,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,17,34,14,1,0,1,192,3,128,6,0, - 0,0,248,240,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,32,112,96,56,192,31,128,12,17,34,14, - 1,0,6,0,15,0,25,128,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,16,32,14,1,0,25,128,25,128,0,0, - 248,240,112,32,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,96,56,192,31,128,13,17,34,14,1,0, - 0,224,1,192,3,0,0,0,252,120,120,48,56,96,60,64, - 30,192,14,128,15,128,7,0,7,0,7,0,7,0,7,0, - 31,192,10,13,26,11,1,0,248,0,112,0,112,0,127,0, - 115,128,113,192,113,192,113,192,115,128,127,0,112,0,112,0, - 248,0,9,13,26,10,0,0,30,0,59,0,115,128,115,128, - 115,128,119,0,114,0,115,0,115,128,115,128,115,128,115,128, - 247,0,8,13,13,9,0,0,112,56,12,0,124,206,206,30, - 110,206,206,254,119,8,13,13,9,0,0,14,28,48,0,124, - 206,206,30,110,206,206,254,119,8,13,13,9,0,0,24,60, - 102,0,124,206,206,30,110,206,206,254,119,8,13,13,9,0, - 0,50,126,76,0,124,206,206,30,110,206,206,254,119,8,12, - 12,9,0,0,102,102,0,124,206,206,30,110,206,206,254,119, - 8,13,13,9,0,0,56,108,108,56,124,206,206,30,110,206, - 206,254,119,12,9,18,13,0,0,125,224,231,176,199,48,15, - 240,127,0,231,0,199,0,239,176,121,224,7,13,13,8,0, - 252,62,118,230,224,224,224,224,118,60,16,12,76,56,7,13, - 13,8,0,0,112,56,12,0,60,118,230,254,224,224,224,118, - 60,8,13,13,8,0,0,7,14,24,0,60,118,230,254,224, - 224,224,118,60,7,13,13,8,0,0,24,60,102,0,60,118, - 230,254,224,224,224,118,60,7,12,12,8,0,0,102,102,0, - 60,118,230,254,224,224,224,118,60,5,13,13,5,0,0,224, - 112,24,0,240,112,112,112,112,112,112,112,248,5,13,13,5, - 0,0,56,112,192,0,240,112,112,112,112,112,112,112,248,6, - 13,13,5,0,0,48,120,204,0,240,112,112,112,112,112,112, - 112,248,6,12,12,5,0,0,204,204,0,240,112,112,112,112, - 112,112,112,248,8,13,13,9,0,0,96,54,56,76,62,102, - 231,231,231,231,231,102,60,10,13,26,11,0,0,25,0,63, - 0,38,0,0,0,231,0,127,128,115,128,115,128,115,128,115, - 128,115,128,115,128,251,192,8,13,13,9,0,0,112,56,12, - 0,60,102,231,231,231,231,231,102,60,8,13,13,9,0,0, - 7,14,24,0,60,102,231,231,231,231,231,102,60,8,13,13, - 9,0,0,24,60,102,0,60,102,231,231,231,231,231,102,60, - 8,13,13,9,0,0,50,126,76,0,60,102,231,231,231,231, - 231,102,60,8,12,12,9,0,0,102,102,0,60,102,231,231, - 231,231,231,102,60,8,8,8,11,1,1,24,24,0,255,255, - 0,24,24,10,11,22,9,255,255,0,64,30,128,51,0,115, - 128,115,128,119,128,123,128,113,128,51,0,94,0,128,0,10, - 13,26,11,0,0,56,0,28,0,6,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,14,0,28,0,48,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,12,0,30,0,51,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 12,24,11,0,0,51,0,51,0,0,0,247,128,115,128,115, - 128,115,128,115,128,115,128,115,128,127,128,61,192,10,17,34, - 9,255,252,3,128,7,0,12,0,0,0,251,192,113,128,121, - 0,59,0,58,0,30,0,30,0,12,0,12,0,12,0,8, - 0,216,0,240,0,9,17,34,10,0,252,240,0,112,0,112, - 0,112,0,118,0,127,0,115,128,115,128,115,128,115,128,115, - 128,123,0,118,0,112,0,112,0,112,0,248,0,10,16,32, - 9,255,252,51,0,51,0,0,0,251,192,113,128,121,0,59, - 0,58,0,30,0,30,0,12,0,12,0,12,0,8,0,216, - 0,240,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=19 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14r[2295] U8G_FONT_SECTION("u8g_font_timB14r") = { - 0,22,28,254,249,13,2,178,6,78,32,127,252,14,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=23 x= 3 y=14 dx=25 dy= 0 ascent=23 len=69 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18[7223] U8G_FONT_SECTION("u8g_font_timB18") = { - 0,27,38,254,246,17,4,47,9,109,32,255,251,23,250,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,6,0, - 1,4,17,17,8,2,251,96,240,240,96,0,0,96,96,96, - 96,96,240,240,240,240,240,96,10,18,36,13,1,253,0,128, - 1,128,1,0,31,128,115,192,115,192,230,128,228,0,228,0, - 236,0,232,0,248,0,120,128,127,128,62,0,48,0,96,0, - 96,0,11,17,34,13,0,0,15,192,30,96,60,224,60,224, - 60,64,28,0,28,0,255,128,255,128,28,0,28,0,28,0, - 12,32,124,96,207,224,255,224,115,192,11,12,24,13,0,3, - 192,96,238,224,127,192,59,128,113,192,96,192,96,192,113,192, - 59,128,127,192,238,224,192,96,14,17,34,13,0,0,254,124, - 56,48,60,32,28,96,30,64,14,192,15,128,7,128,7,0, - 31,192,7,0,31,192,7,0,7,0,7,0,7,0,31,192, - 2,22,22,6,2,251,192,192,192,192,192,192,192,192,192,0, - 0,0,0,192,192,192,192,192,192,192,192,192,7,20,20,11, - 2,253,60,110,206,198,224,112,120,92,142,134,194,226,116,60, - 28,14,198,230,236,120,6,2,2,8,1,14,204,204,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 97,243,0,99,51,0,198,17,128,198,1,128,198,1,128,198, - 1,128,198,1,128,99,51,0,97,227,0,48,6,0,60,30, - 0,15,248,0,3,224,0,7,10,10,8,0,7,120,220,12, - 124,236,204,126,0,254,254,11,10,20,13,1,1,12,96,24, - 192,49,128,115,128,231,0,231,0,115,128,49,128,24,192,12, - 96,11,7,14,15,2,2,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,6,3,3,8,1,5,252,252,252,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 103,227,0,99,51,0,195,49,128,195,49,128,195,225,128,195, - 97,128,195,49,128,99,51,0,103,187,0,48,6,0,60,30, - 0,15,248,0,3,224,0,6,1,1,8,1,14,252,8,7, - 7,9,0,10,60,102,195,195,195,102,60,12,13,26,14,1, - 0,6,0,6,0,6,0,6,0,255,240,255,240,6,0,6, - 0,6,0,6,0,0,0,255,240,255,240,6,10,10,7,0, - 7,56,124,140,12,24,16,32,64,252,252,6,10,10,7,0, - 7,56,124,140,12,56,28,12,140,248,112,5,4,4,8,2, - 13,56,112,96,192,12,17,34,14,1,251,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,108,224,96,0,96,0,224,0,240,0,96,0,11,22,44, - 14,1,251,31,224,127,224,126,64,254,64,254,64,254,64,254, - 64,254,64,254,64,126,64,126,64,30,64,2,64,2,64,2, - 64,2,64,2,64,2,64,2,64,2,64,2,64,2,64,3, - 3,3,6,1,6,224,224,224,6,6,6,8,1,250,16,48, - 56,12,140,120,6,10,10,7,0,7,48,240,48,48,48,48, - 48,48,48,252,7,10,10,8,0,7,56,108,198,198,198,108, - 56,0,254,254,11,10,20,13,1,1,198,0,99,0,49,128, - 57,192,28,224,28,224,57,192,51,128,99,0,198,0,17,17, - 51,18,0,0,48,4,0,240,12,0,48,24,0,48,24,0, - 48,48,0,48,32,0,48,96,0,48,66,0,48,198,0,252, - 142,0,1,142,0,1,22,0,3,54,0,6,38,0,6,127, - 128,12,6,0,8,6,0,17,17,51,18,0,0,48,4,0, - 240,12,0,48,24,0,48,24,0,48,48,0,48,32,0,48, - 96,0,48,71,0,48,207,128,252,145,128,1,129,128,1,3, - 0,3,2,0,6,4,0,6,8,0,12,31,128,8,31,128, - 17,17,51,18,1,0,56,4,0,124,12,0,140,24,0,12, - 24,0,56,48,0,28,32,0,12,96,0,140,66,0,248,198, - 0,113,14,0,3,14,0,2,22,0,6,54,0,12,38,0, - 12,127,128,24,6,0,16,6,0,9,17,34,12,1,251,12, - 0,30,0,30,0,12,0,0,0,0,0,12,0,12,0,28, - 0,56,0,120,0,240,0,241,0,243,128,243,128,123,0,62, - 0,17,22,66,18,0,0,3,128,0,1,192,0,0,192,0, - 0,96,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,22,66,18,0,0,0, - 224,0,1,192,0,1,128,0,3,0,0,0,0,0,1,128, - 0,1,192,0,3,192,0,3,224,0,3,224,0,6,224,0, - 6,240,0,4,112,0,12,112,0,8,120,0,8,56,0,31, - 248,0,16,60,0,48,60,0,48,30,0,112,30,0,248,127, - 128,17,22,66,18,0,0,1,128,0,3,192,0,6,96,0, - 0,0,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,21,63,18,0,0,3, - 16,0,7,224,0,8,192,0,0,0,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,17,21, - 63,18,0,0,6,96,0,6,96,0,0,0,0,0,0,0, - 1,128,0,1,192,0,3,192,0,3,224,0,3,224,0,6, - 224,0,6,240,0,4,112,0,12,112,0,8,120,0,8,56, - 0,31,248,0,16,60,0,48,60,0,48,30,0,112,30,0, - 248,127,128,17,23,69,18,0,0,1,128,0,3,192,0,6, - 96,0,6,96,0,3,192,0,1,128,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,23,17, - 51,25,0,0,1,255,252,0,124,28,0,252,12,0,188,4, - 1,188,4,1,60,32,3,60,32,2,60,96,6,63,224,7, - 252,96,12,60,32,8,60,32,24,60,2,16,60,2,48,60, - 6,112,60,14,248,255,254,15,23,46,18,1,250,3,242,30, - 62,60,14,120,6,120,2,240,2,240,0,240,0,240,0,240, - 0,240,0,240,0,120,0,120,2,60,14,31,60,7,240,1, - 0,3,0,3,128,0,192,8,192,7,128,15,22,44,17,1, - 0,7,0,3,128,1,128,0,192,0,0,255,252,60,28,60, - 12,60,4,60,4,60,32,60,32,60,96,63,224,60,96,60, - 32,60,32,60,2,60,2,60,6,60,14,255,254,15,22,44, - 17,1,0,1,192,3,128,3,0,6,0,0,0,255,252,60, - 28,60,12,60,4,60,4,60,32,60,32,60,96,63,224,60, - 96,60,32,60,32,60,2,60,2,60,6,60,14,255,254,15, - 22,44,17,1,0,3,0,7,128,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,15,21,42,17,1,0,12,192,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,8,22,22,10,0,0,112,56,24,12,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,8,22,22, - 10,0,0,14,28,24,48,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,8,22,22,10,0,0,24, - 60,102,0,0,255,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,255,8,21,21,10,0,0,102,102,0,0,255, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 16,17,34,18,1,0,255,224,60,120,60,60,60,30,60,30, - 60,15,60,15,255,143,255,143,60,15,60,15,60,14,60,30, - 60,28,60,60,60,120,255,224,17,22,66,18,0,0,1,136, - 0,3,240,0,4,96,0,0,0,0,0,0,0,248,15,128, - 124,7,0,62,2,0,63,2,0,63,130,0,47,194,0,39, - 226,0,35,226,0,33,242,0,32,250,0,32,126,0,32,62, - 0,32,30,0,32,14,0,32,14,0,96,6,0,248,2,0, - 16,22,44,19,1,0,7,0,3,128,1,128,0,192,0,0, - 7,224,30,120,60,60,120,30,120,30,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,120,30,120,30,60,60,30,120, - 7,224,16,22,44,19,1,0,0,112,0,224,0,192,1,128, - 0,0,7,224,30,120,60,60,120,30,120,30,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,120,30,120,30,60,60, - 30,120,7,224,16,22,44,19,1,0,1,128,3,192,6,96, - 0,0,0,0,7,224,30,120,60,60,120,30,120,30,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,120,30,120,30, - 60,60,30,120,7,224,16,22,44,19,1,0,3,16,7,224, - 8,192,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,16,21,42,19,1,0,12,96, - 12,96,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,12,12,24,14,1,0,192,48, - 224,112,112,224,57,192,31,128,15,0,15,0,31,128,57,192, - 112,224,224,112,192,48,16,19,38,19,1,255,0,4,7,236, - 30,120,56,28,120,62,120,62,240,111,240,207,240,207,241,143, - 243,15,243,15,246,15,124,30,124,30,56,28,62,120,55,224, - 96,0,17,22,66,18,0,0,3,128,0,1,192,0,0,192, - 0,0,96,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,22,66,18,0,0, - 0,56,0,0,112,0,0,96,0,0,192,0,0,0,0,255, - 15,128,62,6,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,6,0,30,4,0,31,28,0,7, - 248,0,17,22,66,18,0,0,0,96,0,0,240,0,1,152, - 0,0,0,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,21,63,18,0,0, - 3,24,0,3,24,0,0,0,0,0,0,0,255,15,128,62, - 6,0,60,2,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,6,0,30,4,0,31,28,0,7,248,0,18, - 23,69,18,0,0,0,14,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,143,192,62,3,0,30,2,0, - 15,6,0,15,12,0,7,140,0,7,152,0,3,208,0,3, - 240,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,7,248,0,14,17,34,15,0,0, - 255,0,60,0,60,0,60,0,63,224,60,120,60,60,60,60, - 60,60,60,60,60,60,60,120,63,224,60,0,60,0,60,0, - 255,0,11,17,34,14,1,0,31,0,57,128,113,192,113,192, - 113,192,113,192,115,128,119,0,115,128,113,192,112,224,112,224, - 112,224,112,224,112,224,112,192,243,128,10,17,34,12,1,0, - 56,0,28,0,12,0,6,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,14,0,28,0,24,0,48,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,17,34,12,1,0, - 12,0,30,0,51,0,0,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,24,128,63,0,70,0,0,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,16,32,12,1,0, - 51,0,51,0,0,0,0,0,62,0,119,0,227,128,227,128, - 67,128,15,128,115,128,227,128,227,128,231,128,255,192,113,128, - 10,18,36,12,1,0,12,0,30,0,51,0,51,0,30,0, - 12,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,15,12,24,17,1,0, - 62,120,119,204,227,206,99,142,3,142,31,254,115,128,227,128, - 227,192,231,226,254,252,124,120,9,18,36,11,1,250,30,0, - 115,0,115,128,227,128,225,0,224,0,224,0,224,0,240,0, - 120,128,127,0,30,0,8,0,24,0,28,0,6,0,70,0, - 60,0,9,17,34,11,1,0,56,0,28,0,12,0,6,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,17,34,11,1,0, - 14,0,28,0,24,0,48,0,0,0,30,0,115,0,115,128, - 227,128,227,128,255,128,224,0,224,0,240,0,120,128,127,0, - 30,0,9,17,34,11,1,0,24,0,60,0,102,0,0,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,16,32,11,1,0, - 51,0,51,0,0,0,0,0,30,0,115,0,115,128,227,128, - 227,128,255,128,224,0,224,0,240,0,120,128,127,0,30,0, - 5,17,17,7,1,0,224,112,48,24,0,240,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,28,56,48, - 96,0,240,112,112,112,112,112,112,112,112,112,112,248,6,17, - 17,7,1,0,48,120,204,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,6,16,16,7,1,0,204,204,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,11,17,34,13,1, - 0,96,0,56,192,15,0,30,0,99,0,31,128,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,12,17,34,14,1,0,12,64,31,128,35,0,0, - 0,0,0,243,192,119,224,120,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,249,240,11,17,34,13,1, - 0,28,0,14,0,6,0,3,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,3,128,7,0,6,0,12, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,17,34,13,1, - 0,12,0,30,0,51,0,0,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,24,128,63,0,70,0,0, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,16,32,13,1, - 0,49,128,49,128,0,0,0,0,31,0,123,192,113,192,224, - 224,224,224,224,224,224,224,224,224,224,224,113,192,123,192,31, - 0,12,12,24,14,1,0,6,0,6,0,6,0,0,0,0, - 0,255,240,255,240,0,0,0,0,6,0,6,0,6,0,11, - 16,32,13,1,254,0,64,0,64,30,128,121,192,113,192,226, - 224,226,224,228,224,228,224,232,224,232,224,113,192,123,192,63, - 0,64,0,64,0,12,17,34,14,1,0,28,0,14,0,6, - 0,3,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,17,34, - 14,1,0,7,0,14,0,12,0,24,0,0,0,241,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,113, - 224,126,240,60,224,12,17,34,14,1,0,6,0,15,0,25, - 128,0,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,16,32, - 14,1,0,25,128,25,128,0,0,0,0,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,60,224,12,22,44,12,0,251,1,192,3,128,3,0,6, - 0,0,0,253,240,120,96,56,64,56,192,60,128,28,128,29, - 128,31,0,15,0,15,0,6,0,6,0,6,0,100,0,236, - 0,248,0,112,0,12,22,44,14,1,251,240,0,112,0,112, - 0,112,0,112,0,115,128,119,224,124,224,120,112,112,112,112, - 112,112,112,112,112,112,112,120,224,119,224,115,128,112,0,112, - 0,112,0,112,0,252,0,12,21,42,12,0,251,25,128,25, - 128,0,0,0,0,253,240,120,96,56,64,56,192,60,128,28, - 128,29,128,31,0,15,0,15,0,6,0,6,0,6,0,100, - 0,236,0,248,0,112,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=22 x= 3 y=13 dx=25 dy= 0 ascent=18 len=66 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18r[3355] U8G_FONT_SECTION("u8g_font_timB18r") = { - 0,27,38,254,246,17,4,47,9,109,32,127,251,18,251,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=18 dx=33 dy= 0 ascent=30 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24[10820] U8G_FONT_SECTION("u8g_font_timB24") = { - 0,38,49,251,244,23,5,149,13,202,32,255,249,30,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,8,0, - 1,5,23,23,11,3,249,112,248,248,248,112,0,0,0,32, - 32,32,32,112,112,112,112,248,248,248,248,248,248,112,13,25, - 50,17,1,251,0,8,0,8,0,24,0,16,7,240,28,224, - 56,240,120,240,240,240,240,224,240,128,241,128,241,0,243,0, - 242,0,250,16,126,48,127,224,63,192,15,0,8,0,16,0, - 16,0,32,0,32,0,16,23,46,17,1,0,0,240,3,252, - 7,30,14,30,14,30,30,12,30,0,30,0,31,0,15,0, - 15,0,127,240,127,240,7,128,7,128,7,128,55,128,127,1, - 239,3,199,135,199,255,238,254,124,124,14,15,30,17,1,4, - 96,24,247,188,255,252,127,248,60,240,120,120,112,56,112,56, - 112,56,120,120,60,240,127,248,255,252,247,188,96,24,18,23, - 69,17,1,0,255,135,192,62,3,128,62,3,0,31,3,0, - 31,6,0,31,134,0,15,132,0,15,140,0,7,200,0,7, - 216,0,7,208,0,3,240,0,31,252,0,31,252,0,3,224, - 0,31,252,0,31,252,0,1,224,0,1,224,0,1,224,0, - 1,224,0,3,240,0,15,252,0,2,30,30,7,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,0,0,0,0,0, - 0,192,192,192,192,192,192,192,192,192,192,192,192,12,28,56, - 17,2,251,15,128,24,192,48,224,113,224,113,224,120,192,60, - 0,62,0,31,0,15,128,63,192,99,224,193,224,192,240,224, - 112,240,48,120,48,124,96,63,192,31,128,7,128,3,192,49, - 224,120,224,120,224,112,192,49,128,31,0,8,4,4,11,2, - 18,66,231,231,66,22,23,69,25,1,0,1,254,0,7,255, - 128,15,3,192,28,0,224,56,0,112,48,254,48,113,199,56, - 99,131,24,231,131,28,199,0,12,199,0,12,199,0,12,199, - 0,12,199,128,12,195,195,12,227,230,28,96,252,24,112,0, - 56,56,0,112,28,0,224,15,3,192,7,255,128,1,254,0, - 9,14,28,10,0,9,60,0,102,0,103,0,103,0,31,0, - 103,0,199,0,199,0,239,128,115,0,0,0,0,0,255,128, - 255,128,14,14,28,17,2,1,2,4,6,12,14,28,28,56, - 56,112,112,224,225,192,225,192,112,224,56,112,28,56,14,28, - 6,12,2,4,16,9,18,19,1,3,255,255,255,255,255,255, - 0,7,0,7,0,7,0,7,0,7,0,7,8,4,4,11, - 1,6,255,255,255,255,22,23,69,25,2,0,1,254,0,7, - 255,128,15,3,192,28,0,224,56,0,112,51,252,48,113,206, - 56,96,199,24,224,199,28,192,199,12,192,206,12,192,248,12, - 192,220,12,192,206,12,192,198,12,224,199,28,97,195,152,115, - 227,248,56,0,112,28,0,224,15,3,192,7,255,128,1,254, - 0,9,2,4,11,1,18,255,128,255,128,9,10,20,13,2, - 13,28,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,60,0,15,19,38,19,2,0,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,0,0,255,254,255,254,255, - 254,10,14,28,10,1,9,62,0,127,0,199,128,131,128,3, - 128,3,128,3,0,6,0,12,0,24,0,48,64,127,192,255, - 128,255,128,9,14,28,10,1,9,30,0,63,0,103,128,67, - 128,3,0,6,0,31,0,7,128,3,128,3,128,3,128,195, - 128,231,0,126,0,7,6,6,11,3,17,6,14,28,56,96, - 128,16,22,44,19,2,250,248,252,120,124,120,60,120,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 124,124,252,127,191,95,56,64,0,224,0,224,0,224,0,224, - 0,224,0,16,29,58,18,1,250,15,255,63,255,63,140,127, - 140,255,140,255,140,255,140,255,140,255,140,255,140,255,140,127, - 140,63,140,63,140,15,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,4,4,4,8,2,9,96,240,240,96,7,7,7, - 11,1,249,6,12,28,14,198,238,124,9,14,28,10,0,9, - 12,0,124,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,255,128,9,14,28,11, - 1,9,28,0,119,0,99,0,227,128,227,128,227,128,227,128, - 99,0,119,0,28,0,0,0,0,0,255,128,255,128,14,14, - 28,17,1,1,129,0,193,128,225,192,112,224,56,112,28,56, - 14,28,14,28,28,56,56,112,112,224,225,192,193,128,129,0, - 23,23,69,25,0,0,12,0,8,124,0,24,28,0,48,28, - 0,48,28,0,96,28,0,96,28,0,192,28,1,128,28,1, - 128,28,3,12,28,6,28,28,6,60,28,12,124,255,152,252, - 0,24,220,0,49,156,0,99,156,0,99,28,0,199,254,1, - 199,254,1,128,28,3,0,28,3,0,28,23,23,69,25,0, - 0,12,0,48,124,0,96,28,0,96,28,0,192,28,0,128, - 28,1,128,28,3,0,28,2,0,28,6,0,28,12,240,28, - 25,248,28,27,60,28,50,28,255,176,28,0,96,28,0,96, - 24,0,192,48,1,128,96,1,128,192,3,1,130,6,3,254, - 6,7,252,12,15,252,22,23,69,25,1,0,30,0,16,63, - 0,48,103,128,96,67,128,96,3,0,192,6,0,192,31,1, - 128,7,131,0,3,131,0,3,134,24,3,140,56,195,140,120, - 231,24,248,126,49,248,0,49,184,0,99,56,0,199,56,0, - 198,56,1,143,252,3,143,252,3,0,56,6,0,56,6,0, - 56,12,23,46,16,2,249,7,0,15,128,15,128,15,128,7, - 0,0,0,0,0,0,0,2,0,2,0,6,0,12,0,28, - 0,60,0,120,0,120,0,248,96,248,240,248,240,248,112,120, - 112,60,224,31,192,21,30,90,24,1,0,6,0,0,7,0, - 0,3,128,0,1,192,0,0,96,0,0,0,0,0,32,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,3,0,0,7, - 0,0,14,0,0,28,0,0,48,0,0,64,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,96,0,0,240, - 0,1,248,0,1,152,0,3,12,0,2,4,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,29,87,24,1,0,0,194,0,1,246, - 0,3,124,0,2,24,0,0,0,0,0,0,0,0,32,0, - 0,96,0,0,112,0,0,240,0,0,248,0,0,248,0,1, - 248,0,1,124,0,1,124,0,3,62,0,2,62,0,6,62, - 0,6,31,0,4,31,0,12,15,0,15,255,128,24,15,128, - 24,7,192,16,7,192,48,3,224,48,3,224,112,7,240,252, - 31,248,21,29,87,24,1,0,1,8,0,3,156,0,3,156, - 0,1,8,0,0,0,0,0,0,0,0,32,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,21, - 30,90,24,1,0,0,224,0,1,176,0,3,24,0,2,8, - 0,3,24,0,1,176,0,0,224,0,0,0,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,32, - 23,92,33,0,0,3,255,255,252,0,255,255,252,0,99,224, - 28,0,99,224,12,0,195,224,12,0,195,224,4,1,131,224, - 4,1,131,224,128,3,3,224,128,3,3,225,128,2,3,227, - 128,7,255,255,128,7,255,227,128,12,3,225,128,12,3,224, - 128,24,3,224,128,24,3,224,1,56,3,224,3,48,3,224, - 6,112,3,224,14,112,3,224,62,248,7,255,252,254,31,255, - 252,19,30,90,24,2,249,1,252,32,7,255,96,15,7,224, - 30,1,224,60,0,224,124,0,96,124,0,96,248,0,32,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,124,0,0,124,0,0,60,0,32, - 30,0,96,15,129,192,3,255,128,0,254,0,0,24,0,0, - 48,0,0,112,0,0,56,0,3,24,0,3,184,0,1,240, - 0,21,30,90,22,0,0,6,0,0,7,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,1,128,0,3,128,0,7,0, - 0,14,0,0,24,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,48,0,0,120,0,0,252,0, - 0,204,0,1,134,0,1,2,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,29,87,22,0,0,0,132,0,1,206,0,1,206,0, - 0,132,0,0,0,0,0,0,0,255,255,224,63,255,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,0,32,31,4, - 0,31,4,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,4,0,31,4,0,31,0,8,31,0,24,31, - 0,48,31,0,112,31,1,240,63,255,224,255,255,224,11,30, - 60,13,1,0,192,0,224,0,112,0,56,0,12,0,6,0, - 0,0,255,224,63,128,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,63,128,255,224, - 12,30,60,13,1,0,0,48,0,112,0,224,1,192,3,0, - 6,0,0,0,255,224,63,128,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,63,128, - 255,224,11,30,60,13,1,0,6,0,15,0,31,128,25,128, - 48,192,32,64,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,11,29,58,13,1,0,16,128,57,192,57,192, - 16,128,0,0,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,22,23,69,24,0,0,255,254,0,63,15,128, - 31,3,224,31,1,240,31,1,240,31,0,248,31,0,248,31, - 0,252,31,0,252,31,0,252,255,240,124,255,240,124,255,240, - 124,31,0,124,31,0,252,31,0,248,31,0,248,31,0,248, - 31,1,240,31,1,224,31,3,192,63,15,128,127,254,0,22, - 29,87,24,1,0,0,97,0,0,251,0,1,190,0,1,12, - 0,0,0,0,0,0,0,254,1,252,127,0,112,63,128,32, - 31,128,32,31,192,32,31,224,32,23,240,32,19,248,32,17, - 248,32,17,252,32,16,254,32,16,127,32,16,63,32,16,31, - 160,16,31,224,16,15,224,16,7,224,16,3,224,16,3,224, - 16,1,224,16,0,224,56,0,96,254,0,32,21,30,90,25, - 2,0,6,0,0,7,0,0,3,128,0,1,192,0,0,96, - 0,0,48,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,96,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,48,0,0,120,0,0,252,0,0,204,0,1,134, - 0,1,2,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,29,87,25, - 2,0,0,194,0,1,246,0,3,124,0,2,24,0,0,0, - 0,0,0,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,21,29,87,25,2,0,0, - 132,0,1,206,0,1,206,0,0,132,0,0,0,0,0,0, - 0,1,252,0,7,255,0,15,143,128,30,3,192,60,1,224, - 124,1,240,120,0,240,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,120,0,240,124,1,240,60,1,224,30,3,192,15,143,128, - 7,255,0,1,252,0,15,16,32,19,2,0,64,4,224,14, - 240,30,120,60,60,120,30,240,15,224,7,192,7,192,15,224, - 30,240,60,120,120,60,240,30,224,14,64,4,21,27,81,26, - 2,254,0,0,48,0,0,96,1,252,64,7,143,192,14,3, - 128,30,1,192,60,3,224,124,6,240,120,4,240,248,12,248, - 248,24,248,248,24,248,248,48,248,248,32,248,248,96,248,248, - 192,248,248,128,248,249,128,248,123,0,240,126,1,240,62,1, - 224,28,3,192,14,7,128,31,254,0,17,248,0,48,0,0, - 96,0,0,23,30,90,24,0,0,0,192,0,0,224,0,0, - 112,0,0,56,0,0,12,0,0,2,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,0,192,0,1,192,0, - 3,128,0,7,0,0,12,0,0,16,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,12,0,0,30,0,0, - 63,0,0,51,0,0,97,128,0,64,128,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,29,87,24,0,0,0,33,0,0,115,128,0, - 115,128,0,33,0,0,0,0,0,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 48,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,30,90,24,1,0,0,0,192,0,1,192,0,3,128,0, - 7,0,0,12,0,0,16,0,0,0,0,255,195,252,127,0, - 240,63,0,96,63,0,96,31,128,192,31,128,128,15,193,128, - 15,195,0,7,227,0,3,230,0,3,244,0,1,252,0,1, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,1,252,0,7,255,0, - 19,23,69,20,0,0,255,224,0,63,128,0,31,0,0,31, - 0,0,31,254,0,31,15,128,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,224,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,63,128,0,255,224,0,17,23,69,19,0, - 0,3,240,0,14,60,0,30,62,0,28,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,28,0,60,56,0,60, - 224,0,60,60,0,60,30,0,60,15,0,60,15,0,60,15, - 128,60,15,128,60,15,128,60,15,128,60,15,0,60,15,0, - 60,30,0,252,124,0,14,23,46,16,1,0,48,0,56,0, - 28,0,14,0,3,0,0,128,0,0,31,128,49,224,112,240, - 120,240,120,240,48,240,1,240,7,240,28,240,56,240,120,240, - 240,240,249,240,255,244,126,252,60,120,14,23,46,16,1,0, - 0,48,0,112,0,224,1,192,3,0,4,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,14,23, - 46,16,1,0,3,0,7,128,15,192,12,192,24,96,16,32, - 0,0,31,128,49,224,112,240,120,240,120,240,48,240,1,240, - 7,240,28,240,56,240,120,240,240,240,249,240,255,244,126,252, - 60,120,14,22,44,16,1,0,12,32,31,96,55,192,33,128, - 0,0,0,0,31,128,49,224,112,240,120,240,120,240,48,240, - 1,240,7,240,28,240,56,240,120,240,240,240,249,240,255,244, - 126,252,60,120,14,22,44,16,1,0,8,64,28,224,28,224, - 8,64,0,0,0,0,31,128,49,224,112,240,120,240,120,240, - 48,240,1,240,7,240,28,240,56,240,120,240,240,240,249,240, - 255,244,126,252,60,120,14,25,50,16,1,0,7,0,13,128, - 24,192,16,64,24,192,13,128,7,0,0,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,21,16, - 48,24,1,0,31,135,192,49,238,224,112,252,112,120,248,112, - 120,248,56,48,248,56,1,248,56,7,255,248,28,248,0,56, - 248,0,120,252,0,248,252,8,248,254,24,255,255,240,126,63, - 224,60,15,192,13,23,46,15,1,249,7,224,30,240,60,120, - 120,120,120,48,240,0,240,0,240,0,240,0,240,0,248,0, - 120,0,120,0,60,48,31,224,15,192,3,0,6,0,6,0, - 3,128,49,128,59,128,31,0,14,23,46,15,0,0,48,0, - 56,0,28,0,14,0,3,0,0,128,0,0,7,192,30,240, - 60,112,120,56,120,60,248,60,248,60,255,252,248,0,248,0, - 248,0,120,0,124,0,62,24,31,240,7,224,14,23,46,15, - 0,0,0,24,0,56,0,112,0,224,1,128,2,0,0,0, - 7,192,30,240,60,112,120,56,120,60,248,60,248,60,255,252, - 248,0,248,0,248,0,120,0,124,0,62,24,31,240,7,224, - 14,23,46,15,0,0,3,0,7,128,15,192,12,192,24,96, - 16,32,0,0,7,192,30,240,60,112,120,56,120,60,248,60, - 248,60,255,252,248,0,248,0,248,0,120,0,124,0,62,24, - 31,240,7,224,14,22,44,15,0,0,4,32,14,112,14,112, - 4,32,0,0,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,8,23,23,9,0,0,192,224,112,56, - 12,2,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,8,23,23,9,0,0,3,7,14,28,48,64,0, - 252,124,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 8,23,23,9,0,0,24,60,126,102,195,129,0,252,124,60, - 60,60,60,60,60,60,60,60,60,60,60,126,255,8,22,22, - 9,0,0,66,231,231,66,0,0,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,14,22,44,17,1,0,56, - 48,62,248,15,248,255,128,251,192,97,224,15,240,60,248,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,22,66,18,0, - 0,3,8,0,7,216,0,13,240,0,8,96,0,0,0,0, - 0,0,0,252,120,0,125,252,0,63,62,0,62,30,0,62, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,126,63,0, - 255,127,128,14,23,46,17,1,0,48,0,56,0,28,0,14, - 0,3,0,0,128,0,0,15,192,60,240,120,120,120,120,240, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,60,240,15,192,14,23,46,17,1,0,0,24,0, - 56,0,112,0,224,1,128,2,0,0,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,14,23,46,17,1, - 0,3,0,7,128,15,192,12,192,24,96,16,32,0,0,15, - 192,60,240,120,120,120,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,120,120,120,120,60,240,15,192,14, - 22,44,17,1,0,12,32,31,96,55,192,33,128,0,0,0, - 0,15,192,60,240,120,120,120,120,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,120,120,120,120,60,240,15, - 192,14,22,44,17,1,0,8,64,28,224,28,224,8,64,0, - 0,0,0,15,192,60,240,120,120,120,120,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,240,60,120,120,120,120,60, - 240,15,192,14,15,30,19,2,1,3,0,7,128,7,128,3, - 0,0,0,0,0,255,252,255,252,255,252,0,0,0,0,3, - 0,7,128,7,128,3,0,14,22,44,17,1,253,0,8,0, - 24,0,24,15,240,60,240,120,120,120,120,240,252,241,188,241, - 60,243,60,242,60,246,60,252,60,248,60,120,120,120,120,60, - 240,111,192,96,0,192,0,128,0,17,23,69,18,0,0,24, - 0,0,28,0,0,14,0,0,7,0,0,1,128,0,0,64, - 0,0,0,0,252,126,0,124,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,62,0,62,127,0,31,223, - 128,7,140,0,17,23,69,18,0,0,0,12,0,0,28,0, - 0,56,0,0,112,0,0,192,0,1,0,0,0,0,0,252, - 126,0,124,62,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,62,0,62,127,0,31,223,128,7,140,0,17, - 23,69,18,0,0,1,128,0,3,192,0,7,224,0,6,96, - 0,12,48,0,8,16,0,0,0,0,252,126,0,124,62,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,62, - 0,62,127,0,31,223,128,7,140,0,17,22,66,18,0,0, - 4,32,0,14,112,0,14,112,0,4,32,0,0,0,0,0, - 0,0,252,126,0,124,62,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,62,127,0,31,223,128,7, - 140,0,15,30,60,17,0,249,0,12,0,28,0,56,0,112, - 0,192,1,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0,15,29,58,19,1,249,252,0,124,0,60,0, - 60,0,60,0,60,0,60,224,63,248,62,124,60,60,60,62, - 60,30,60,30,60,30,60,30,60,30,60,30,60,30,60,60, - 62,60,63,248,60,224,60,0,60,0,60,0,60,0,60,0, - 126,0,255,0,15,29,58,17,0,249,4,32,14,112,14,112, - 4,32,0,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=25 x= 3 y= 9 dx=19 dy= 0 ascent=25 len=50 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24n[723] U8G_FONT_SECTION("u8g_font_timB24n") = { - 0,38,49,251,244,23,0,0,0,0,42,58,0,25,250,23, - 0,13,14,28,17,1,9,3,0,7,0,7,0,231,56,242, - 120,122,240,15,128,15,128,122,240,242,120,231,56,7,0,7, - 0,6,0,15,15,30,19,2,0,3,128,3,128,3,128,3, - 128,3,128,3,128,255,254,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,11,11,8,1,250,56,124,124, - 124,60,12,8,24,48,96,192,8,4,4,11,1,6,255,255, - 255,255,5,5,5,8,1,0,112,248,248,248,112,9,25,50, - 9,0,0,1,128,1,128,1,0,3,0,3,0,3,0,6, - 0,6,0,6,0,4,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,14,23,46,16,1,0,7,128,31,224,28, - 224,56,112,120,112,120,120,120,120,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,248,124,120,120,120,120,120, - 120,56,112,28,224,15,192,7,128,13,23,46,16,2,0,1, - 128,7,128,31,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,31,192,255,248,16,23,46, - 16,0,0,3,192,15,240,31,248,63,248,48,252,96,124,64, - 124,0,124,0,120,0,120,0,120,0,240,0,224,1,192,1, - 128,3,0,7,1,14,3,28,6,63,254,127,254,255,252,255, - 252,14,23,46,16,1,0,7,192,31,240,63,240,48,248,96, - 120,64,120,0,120,0,112,0,192,3,224,15,240,15,248,3, - 248,0,252,0,124,0,60,0,60,0,60,96,56,240,56,248, - 112,127,192,31,0,14,23,46,16,1,0,0,112,0,240,0, - 240,1,240,3,240,6,240,6,240,12,240,24,240,24,240,48, - 240,96,240,96,240,192,240,255,252,255,252,255,252,255,252,0, - 240,0,240,0,240,0,240,0,240,13,23,46,16,1,0,31, - 248,31,248,31,248,31,248,48,0,48,0,32,0,62,0,127, - 128,127,224,127,240,127,240,3,248,0,248,0,120,0,56,0, - 56,0,56,96,48,240,48,248,96,127,192,31,0,14,23,46, - 16,1,0,0,28,0,240,3,192,7,128,15,0,30,0,62, - 0,60,0,124,0,127,224,253,240,248,248,248,120,248,124,248, - 124,248,124,248,124,120,124,120,120,120,120,56,112,28,224,15, - 192,13,23,46,16,2,0,127,248,127,248,255,248,255,248,192, - 48,128,112,128,112,0,96,0,224,0,224,0,192,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,14,0,28,0,14,23,46,16,1,0,15,224,62,240,60, - 120,120,120,120,56,120,56,124,56,126,112,63,224,63,128,31, - 192,15,224,63,240,113,248,112,252,224,124,224,60,224,60,224, - 60,240,56,120,120,127,240,31,192,14,23,46,16,1,0,15, - 192,28,224,56,112,120,120,120,120,248,120,248,124,248,124,248, - 124,248,124,120,124,124,124,62,252,31,248,0,248,0,240,1, - 240,1,224,3,192,7,128,15,0,60,0,224,0,5,16,16, - 11,3,0,112,248,248,248,112,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=17 dx=33 dy= 0 ascent=26 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24r[5003] U8G_FONT_SECTION("u8g_font_timB24r") = { - 0,38,49,251,244,23,5,149,13,202,32,127,249,26,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h=10 x= 1 y= 6 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08[2512] U8G_FONT_SECTION("u8g_font_timR08") = { - 0,12,17,254,252,7,1,147,3,56,32,255,254,10,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,2,0,1,1,7,7,3,1,254,128,0,128,128,128,128, - 128,4,7,7,5,0,255,32,112,144,128,144,96,64,5,7, - 7,5,0,0,48,80,64,224,64,200,240,5,6,6,5,0, - 1,136,112,80,80,112,136,5,7,7,5,0,0,136,80,216, - 32,248,32,112,1,7,7,2,0,0,128,128,128,0,128,128, - 128,4,9,9,5,0,254,112,144,64,160,144,80,32,144,224, - 3,1,1,5,1,5,160,7,7,7,9,1,0,56,68,154, - 162,154,68,56,3,5,5,4,0,2,192,32,160,0,224,4, - 4,4,5,0,1,80,160,160,80,5,2,2,7,1,1,248, - 8,3,1,1,4,0,2,224,7,7,7,9,1,0,56,68, - 186,178,170,68,56,3,1,1,4,0,5,224,4,4,4,4, - 0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32, - 32,0,248,3,4,4,3,0,3,96,160,64,224,3,4,4, - 3,0,3,224,64,32,192,2,2,2,3,0,5,64,128,5, - 7,7,5,0,254,144,144,144,144,232,128,128,6,9,9,6, - 0,254,124,232,232,232,104,40,40,40,40,1,1,1,2,0, - 2,128,3,3,3,4,0,253,64,32,192,3,4,4,3,0, - 3,64,192,64,224,3,5,5,4,0,2,64,160,64,0,224, - 4,4,4,5,0,1,160,80,80,160,7,7,7,8,0,0, - 68,200,72,244,44,62,68,7,7,7,8,0,0,68,200,72, - 246,42,36,78,7,7,7,8,0,0,228,72,40,212,44,62, - 68,3,7,7,4,0,254,64,0,64,64,128,160,224,7,10, - 10,8,0,0,32,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,8,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,16,40,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,20,40,0,16,56,40,40,124,68,238,7,9, - 9,8,0,0,40,0,16,56,40,40,124,68,238,7,10,10, - 8,0,0,16,40,16,16,56,40,40,124,68,238,8,7,7, - 9,0,0,31,57,40,46,120,73,239,6,10,10,7,0,253, - 124,196,128,128,128,196,120,32,16,96,5,10,10,6,0,0, - 64,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 16,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 32,80,0,248,72,64,112,64,72,248,5,9,9,6,0,0, - 80,0,248,72,64,112,64,72,248,3,10,10,4,0,0,128, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,32, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,64, - 160,0,224,64,64,64,64,64,224,3,9,9,4,0,0,160, - 0,224,64,64,64,64,64,224,6,7,7,7,0,0,248,76, - 68,228,68,76,248,7,10,10,8,0,0,20,40,0,206,100, - 100,84,84,76,228,6,10,10,7,0,0,32,16,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,32,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,40,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,40,80,0,120,204, - 132,132,132,204,120,6,9,9,7,0,0,72,0,120,204,132, - 132,132,204,120,5,5,5,6,0,0,136,80,32,80,136,8, - 9,9,8,255,255,1,62,102,74,66,82,102,124,128,7,10, - 10,8,0,0,32,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,8,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,16,40,0,238,68,68,68,68,108,56,7,9, - 9,8,0,0,40,0,238,68,68,68,68,108,56,7,10,10, - 8,0,0,8,16,0,198,68,40,56,16,16,56,5,7,7, - 6,0,0,224,64,112,72,112,64,224,4,7,7,5,0,0, - 32,80,80,96,80,80,224,3,8,8,4,0,0,128,64,0, - 192,32,96,160,224,3,8,8,4,0,0,32,64,0,192,32, - 96,160,224,3,8,8,4,0,0,64,160,0,192,32,96,160, - 224,4,8,8,4,0,0,80,160,0,192,32,96,160,224,3, - 7,7,4,0,0,160,0,192,32,96,160,224,3,8,8,4, - 0,0,64,160,64,192,32,96,160,224,5,5,5,6,0,0, - 216,40,112,160,216,3,8,8,4,0,253,96,128,128,128,96, - 64,32,192,3,8,8,4,0,0,128,64,0,96,160,192,128, - 96,3,8,8,4,0,0,32,64,0,96,160,192,128,96,3, - 8,8,4,0,0,64,160,0,96,160,192,128,96,3,7,7, - 4,0,0,160,0,96,160,192,128,96,2,8,8,3,0,0, - 128,64,0,192,64,64,64,64,3,8,8,3,0,0,32,64, - 0,192,64,64,64,64,3,8,8,3,0,0,64,160,0,192, - 64,64,64,64,3,7,7,3,0,0,160,0,192,64,64,64, - 64,4,8,8,5,0,0,64,112,160,112,144,144,144,96,5, - 8,8,5,0,0,80,160,0,224,144,144,144,216,4,8,8, - 5,0,0,64,32,0,96,144,144,144,96,4,8,8,5,0, - 0,32,64,0,96,144,144,144,96,4,8,8,5,0,0,64, - 160,0,96,144,144,144,96,4,8,8,5,0,0,80,160,0, - 96,144,144,144,96,4,7,7,5,0,0,160,0,96,144,144, - 144,96,5,5,5,6,0,0,32,0,248,0,32,6,7,7, - 5,255,255,4,56,72,72,72,112,128,5,8,8,5,0,0, - 64,32,0,144,144,144,144,104,5,8,8,5,0,0,32,64, - 0,144,144,144,144,104,5,8,8,5,0,0,32,80,0,144, - 144,144,144,104,5,7,7,5,0,0,80,0,144,144,144,144, - 104,6,10,10,5,255,254,16,32,0,220,72,80,48,32,96, - 192,5,10,10,5,255,253,192,64,112,72,72,72,112,64,64, - 224,6,9,9,5,255,254,80,0,220,72,80,48,32,96,192 - }; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h= 9 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08r[1198] U8G_FONT_SECTION("u8g_font_timR08r") = { - 0,12,17,254,252,7,1,147,3,56,32,127,254,8,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=14 x= 2 y= 8 dx=13 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10[3359] U8G_FONT_SECTION("u8g_font_timR10") = { - 0,17,24,254,250,10,2,4,4,92,32,255,253,14,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,1,10,10,5,2,253,128, - 128,0,128,128,128,128,128,128,128,6,9,9,7,0,255,4, - 124,204,144,144,160,228,120,128,7,10,10,8,0,0,28,52, - 32,32,248,32,32,32,226,188,5,7,7,7,1,1,136,112, - 136,136,136,112,136,7,10,10,7,0,0,238,68,108,40,124, - 16,124,16,16,56,1,10,10,3,1,0,128,128,128,128,0, - 0,128,128,128,128,5,13,13,7,1,253,56,88,64,96,112, - 152,136,200,112,48,16,208,224,3,2,2,5,1,8,160,160, - 10,10,20,12,1,0,30,0,97,128,78,128,146,64,144,64, - 144,64,146,64,76,128,97,128,30,0,3,6,6,4,0,4, - 224,32,160,224,0,224,6,6,6,7,0,0,36,72,144,144, - 72,36,7,4,4,9,1,2,254,2,2,2,3,1,1,4, - 0,3,224,10,10,20,12,1,0,30,0,97,128,92,128,146, - 64,156,64,148,64,146,64,82,128,97,128,30,0,4,1,1, - 4,0,8,240,4,4,4,6,1,6,96,144,144,96,7,7, - 7,8,0,0,16,16,254,16,16,0,254,4,6,6,4,0, - 4,96,144,16,32,64,240,4,6,6,4,0,4,96,144,32, - 16,144,96,3,3,3,5,1,8,32,96,128,7,10,10,7, - 0,253,204,68,68,68,68,108,118,64,64,96,7,13,13,7, - 0,253,62,116,244,244,244,116,52,20,20,20,20,20,20,1, - 2,2,4,2,3,128,128,3,3,3,5,1,253,64,32,192, - 3,6,6,4,0,4,64,192,64,64,64,224,4,6,6,5, - 0,4,96,144,144,96,0,240,6,6,6,7,1,0,144,72, - 36,36,72,144,10,10,20,10,0,0,65,0,194,0,66,0, - 68,0,68,128,233,128,10,128,20,128,23,192,32,128,10,10, - 20,10,0,0,65,0,194,0,66,0,68,0,69,128,234,64, - 8,64,16,128,17,0,35,192,10,10,20,10,0,0,97,0, - 146,0,34,0,20,0,148,128,105,128,10,128,20,128,23,192, - 32,128,5,10,10,6,0,253,32,32,0,32,32,64,128,136, - 136,112,9,14,28,11,1,0,16,0,24,0,4,0,0,0, - 8,0,8,0,20,0,20,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,14,28,11,1,0,4,0,12,0,16,0, - 0,0,8,0,8,0,20,0,20,0,34,0,34,0,62,0, - 65,0,65,0,227,128,9,14,28,11,1,0,8,0,28,0, - 34,0,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 62,0,65,0,65,0,227,128,9,14,28,11,1,0,18,0, - 42,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,13,26,11,1,0, - 36,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,14,28,11,1,0, - 24,0,36,0,24,0,0,0,8,0,8,0,20,0,20,0, - 34,0,34,0,62,0,65,0,65,0,227,128,11,10,20,13, - 1,0,31,224,12,32,20,0,20,64,39,192,36,64,60,0, - 68,32,68,32,239,224,8,13,13,10,1,253,61,99,65,129, - 128,128,128,193,98,60,8,4,24,7,14,14,9,1,0,32, - 48,8,0,254,66,64,68,124,68,64,66,66,254,7,14,14, - 9,1,0,4,12,16,0,254,66,64,68,124,68,64,66,66, - 254,7,14,14,9,1,0,16,56,68,0,254,66,64,68,124, - 68,64,66,66,254,7,13,13,9,1,0,36,36,0,254,66, - 64,68,124,68,64,66,66,254,3,14,14,5,1,0,128,192, - 32,0,224,64,64,64,64,64,64,64,64,224,3,14,14,5, - 1,0,32,96,128,0,224,64,64,64,64,64,64,64,64,224, - 5,14,14,5,0,0,32,112,136,0,112,32,32,32,32,32, - 32,32,32,112,3,13,13,5,1,0,160,160,0,224,64,64, - 64,64,64,64,64,64,224,9,10,20,10,0,0,254,0,35, - 0,33,0,32,128,248,128,32,128,32,128,33,0,35,0,254, - 0,9,14,28,11,1,0,18,0,42,0,36,0,0,0,227, - 128,97,0,81,0,89,0,73,0,77,0,69,0,69,0,67, - 0,227,0,8,14,14,10,1,0,32,48,8,0,60,102,66, - 129,129,129,129,66,102,60,8,14,14,10,1,0,4,12,16, - 0,60,102,66,129,129,129,129,66,102,60,8,14,14,10,1, - 0,16,56,68,0,60,102,66,129,129,129,129,66,102,60,8, - 14,14,10,1,0,36,84,72,0,60,102,66,129,129,129,129, - 66,102,60,8,13,13,10,1,0,36,36,0,60,102,66,129, - 129,129,129,66,102,60,7,7,7,8,1,0,130,68,40,16, - 40,68,130,9,12,24,10,0,255,0,128,31,0,49,0,35, - 0,68,128,76,128,72,128,80,128,49,0,99,0,94,0,128, - 0,8,14,14,10,1,0,32,48,8,0,231,66,66,66,66, - 66,66,66,102,60,8,14,14,10,1,0,4,12,16,0,231, - 66,66,66,66,66,66,66,102,60,8,14,14,10,1,0,16, - 56,68,0,231,66,66,66,66,66,66,66,102,60,8,13,13, - 10,1,0,36,36,0,231,66,66,66,66,66,66,66,102,60, - 9,14,28,9,0,0,2,0,6,0,8,0,0,0,227,128, - 65,0,34,0,34,0,20,0,8,0,8,0,8,0,8,0, - 28,0,6,10,10,8,1,0,224,64,120,76,68,68,76,120, - 64,224,6,10,10,7,0,0,56,108,68,72,112,88,76,68, - 84,216,6,11,11,7,1,0,64,96,16,0,112,200,24,104, - 136,200,116,6,11,11,7,1,0,8,24,32,0,112,200,24, - 104,136,200,116,6,11,11,7,1,0,32,112,136,0,112,200, - 24,104,136,200,116,6,11,11,7,1,0,72,168,144,0,112, - 200,24,104,136,200,116,6,10,10,7,1,0,80,80,0,112, - 200,24,104,136,200,116,6,11,11,7,1,0,48,72,48,0, - 112,200,24,104,136,200,116,9,7,14,11,1,0,127,0,201, - 128,31,0,104,0,136,0,204,128,119,0,6,10,10,7,1, - 253,112,200,128,128,128,196,120,32,16,96,6,11,11,7,1, - 0,64,96,16,0,112,136,248,128,128,196,120,6,11,11,7, - 1,0,8,24,32,0,112,136,248,128,128,196,120,6,11,11, - 7,1,0,32,112,136,0,112,136,248,128,128,196,120,6,10, - 10,7,1,0,80,80,0,112,136,248,128,128,196,120,3,11, - 11,3,0,0,128,192,32,0,192,64,64,64,64,64,224,3, - 11,11,3,0,0,32,96,128,0,192,64,64,64,64,64,224, - 5,11,11,3,255,0,32,112,136,0,96,32,32,32,32,32, - 112,3,10,10,3,0,0,160,160,0,192,64,64,64,64,64, - 224,5,10,10,7,1,0,216,96,144,120,216,136,136,136,216, - 112,7,11,11,7,0,0,36,84,72,0,216,108,68,68,68, - 68,238,5,11,11,7,1,0,64,96,16,0,112,216,136,136, - 136,216,112,5,11,11,7,1,0,16,48,64,0,112,216,136, - 136,136,216,112,5,11,11,7,1,0,32,112,136,0,112,216, - 136,136,136,216,112,5,11,11,7,1,0,72,168,144,0,112, - 216,136,136,136,216,112,5,10,10,7,1,0,80,80,0,112, - 216,136,136,136,216,112,7,7,7,8,1,0,16,16,0,254, - 0,16,16,7,9,9,7,0,255,2,60,108,68,68,68,108, - 120,128,7,11,11,7,0,0,32,48,8,0,204,68,68,68, - 68,108,54,7,11,11,7,0,0,8,24,32,0,204,68,68, - 68,68,108,54,7,11,11,7,0,0,16,56,68,0,204,68, - 68,68,68,108,54,7,10,10,7,0,0,40,40,0,204,68, - 68,68,68,108,54,7,14,14,7,0,253,4,12,16,0,238, - 68,68,40,40,16,48,32,160,192,6,13,13,7,0,253,192, - 64,64,88,108,68,68,68,108,88,64,64,224,7,13,13,7, - 0,253,40,40,0,238,68,68,40,40,16,48,32,160,192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=13 x= 2 y= 8 dx=13 dy= 0 ascent=11 len=24 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10r[1571] U8G_FONT_SECTION("u8g_font_timR10r") = { - 0,17,24,254,250,10,2,4,4,92,32,127,253,11,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=16 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=30 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12[3905] U8G_FONT_SECTION("u8g_font_timR12") = { - 0,19,26,254,249,11,2,36,5,11,32,255,252,15,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,1,11, - 11,5,2,253,128,128,0,0,128,128,128,128,128,128,128,7, - 12,12,8,0,254,4,4,60,74,138,136,144,146,84,56,32, - 32,8,11,11,8,0,0,12,18,34,32,32,252,16,16,113, - 145,110,8,9,9,8,0,1,153,102,66,129,129,129,66,102, - 153,9,11,22,8,255,0,227,128,65,0,34,0,20,0,8, - 0,62,0,8,0,62,0,8,0,8,0,28,0,1,11,11, - 3,0,0,128,128,128,128,128,0,128,128,128,128,128,7,14, - 14,8,0,253,56,68,76,32,80,136,132,66,34,20,8,100, - 68,56,4,2,2,6,1,9,144,144,11,11,22,13,0,0, - 14,0,49,128,64,64,78,64,145,32,144,32,144,32,81,64, - 78,64,49,128,14,0,4,6,6,5,0,5,96,16,112,144, - 80,240,7,7,7,8,0,0,18,36,72,144,72,36,18,8, - 5,5,9,0,0,255,1,1,1,1,4,1,1,5,0,4, - 240,11,11,22,13,0,0,14,0,49,128,64,64,78,64,137, - 32,142,32,138,32,74,64,73,64,49,128,14,0,5,1,1, - 6,0,9,248,5,5,5,7,1,6,112,136,136,136,112,7, - 9,9,9,1,0,16,16,16,254,16,16,16,0,254,5,7, - 7,5,0,4,112,136,8,16,32,72,248,6,7,7,5,255, - 4,56,68,4,24,4,132,120,3,3,3,6,2,8,32,64, - 128,8,11,11,8,0,253,198,66,66,66,66,66,71,122,64, - 64,64,7,15,15,8,0,252,62,116,244,244,244,116,52,20, - 20,20,20,20,20,20,20,1,2,2,4,1,4,128,128,4, - 4,4,6,0,252,32,112,16,224,3,7,7,5,1,4,64, - 192,64,64,64,64,224,4,6,6,5,0,5,96,144,144,144, - 96,240,7,7,7,8,0,0,144,72,36,18,36,72,144,11, - 11,22,13,1,0,64,128,193,0,67,0,66,0,68,64,76, - 192,233,64,25,64,18,64,39,224,64,64,12,11,22,13,0, - 0,64,128,193,0,67,0,66,0,68,224,77,16,232,16,24, - 32,16,64,32,144,65,240,13,11,22,13,255,0,56,32,68, - 64,4,192,24,128,5,16,135,48,122,80,6,80,4,144,9, - 248,8,16,5,11,11,7,1,253,32,32,0,0,32,32,64, - 128,136,136,112,12,15,30,12,0,0,8,0,4,0,2,0, - 0,0,4,0,6,0,10,0,11,0,17,0,17,128,32,128, - 63,128,64,192,64,64,224,240,12,15,30,12,0,0,1,0, - 2,0,4,0,0,0,4,0,6,0,10,0,11,0,17,0, - 17,128,32,128,63,128,64,192,64,64,224,240,12,15,30,12, - 0,0,4,0,10,0,17,0,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 12,14,28,12,0,0,13,0,22,0,0,0,4,0,6,0, - 10,0,11,0,17,0,17,128,32,128,63,128,64,192,64,64, - 224,240,12,14,28,12,0,0,9,0,9,0,0,0,4,0, - 6,0,10,0,11,0,17,0,17,128,32,128,63,128,64,192, - 64,64,224,240,12,14,28,12,0,0,6,0,9,0,9,0, - 6,0,6,0,10,0,11,0,17,0,17,128,32,128,63,128, - 64,192,64,64,224,240,14,11,22,15,0,0,7,248,3,8, - 5,8,9,0,9,16,17,240,31,16,33,0,33,0,65,4, - 243,248,10,15,30,11,0,252,15,64,48,192,64,64,128,64, - 128,0,128,0,128,0,128,0,64,64,49,128,14,0,4,0, - 14,0,2,0,28,0,9,15,30,10,0,0,32,0,16,0, - 8,0,0,0,255,0,65,0,64,0,64,0,66,0,126,0, - 66,0,64,0,64,0,64,128,255,0,9,15,30,10,0,0, - 2,0,4,0,8,0,0,0,255,0,65,0,65,0,64,0, - 66,0,126,0,66,0,64,0,64,0,64,128,255,0,9,15, - 30,10,0,0,8,0,20,0,34,0,0,0,255,0,65,0, - 64,0,64,0,66,0,126,0,66,0,64,0,64,0,64,128, - 255,0,9,14,28,10,0,0,36,0,36,0,0,0,255,0, - 65,0,64,0,64,0,66,0,126,0,66,0,64,0,64,0, - 64,128,255,0,4,15,15,5,255,0,128,64,32,0,112,32, - 32,32,32,32,32,32,32,32,112,5,15,15,5,0,0,8, - 16,32,0,224,64,64,64,64,64,64,64,64,64,224,5,15, - 15,5,255,0,32,80,136,0,112,32,32,32,32,32,32,32, - 32,32,112,3,14,14,5,0,0,160,160,0,224,64,64,64, - 64,64,64,64,64,64,224,10,11,22,12,1,0,252,0,67, - 0,64,128,64,64,64,64,248,64,64,64,64,64,64,128,67, - 0,252,0,10,14,28,12,0,0,13,0,22,0,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,15,30,12,1,0,32,0,16,0,8, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,12,1,0,2, - 0,4,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,15,30, - 12,1,0,8,0,20,0,34,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,12,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,14,28,12,1,0,34,0,34,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,7,7,9,1,0,130,68,40,16,40, - 68,130,11,13,26,12,0,255,0,64,14,64,49,128,65,64, - 130,32,132,32,132,32,136,32,144,32,80,64,49,128,78,0, - 64,0,10,15,30,12,0,0,16,0,8,0,4,0,0,0, - 225,192,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,0,0,1,0,2,0, - 4,0,0,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,0,0, - 4,0,10,0,17,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,14, - 28,12,0,0,18,0,18,0,0,0,225,192,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 11,15,30,12,0,0,0,128,1,0,2,0,0,0,224,224, - 64,64,32,128,17,0,17,0,10,0,4,0,4,0,4,0, - 4,0,14,0,8,11,11,9,0,0,224,64,124,66,65,65, - 66,124,64,64,224,7,11,11,8,0,0,56,68,68,68,72, - 88,68,66,66,82,204,7,12,12,7,1,0,64,32,16,0, - 112,136,136,56,200,136,154,100,7,12,12,7,1,0,8,16, - 32,0,112,136,136,56,200,136,154,100,7,12,12,7,1,0, - 32,80,136,0,112,136,136,56,200,136,154,100,7,11,11,7, - 1,0,104,176,0,112,136,136,56,200,136,154,100,7,11,11, - 7,1,0,72,72,0,112,136,136,56,200,136,154,100,7,12, - 12,7,1,0,32,80,80,32,112,136,136,56,200,136,154,100, - 9,8,16,11,1,0,115,0,140,128,136,128,63,128,200,0, - 136,0,156,128,99,0,6,12,12,7,0,252,56,68,132,128, - 128,128,68,56,16,56,8,112,6,12,12,7,0,0,64,32, - 16,0,56,68,132,252,128,128,68,56,6,12,12,7,0,0, - 4,8,16,0,56,68,132,252,128,128,68,56,6,12,12,7, - 0,0,16,40,68,0,56,68,132,252,128,128,68,56,6,11, - 11,7,0,0,72,72,0,56,68,132,252,128,128,68,56,3, - 12,12,5,0,0,128,64,32,0,64,192,64,64,64,64,64, - 224,3,12,12,5,0,0,32,64,128,0,64,192,64,64,64, - 64,64,224,5,12,12,5,255,0,32,80,136,0,32,96,32, - 32,32,32,32,112,3,11,11,5,0,0,160,160,0,64,192, - 64,64,64,64,64,224,7,11,11,8,0,0,108,48,200,60, - 68,130,130,130,130,68,56,8,11,11,8,255,0,52,88,0, - 92,230,66,66,66,66,66,231,7,12,12,8,0,0,32,16, - 8,0,56,68,130,130,130,130,68,56,7,12,12,8,0,0, - 4,8,16,0,56,68,130,130,130,130,68,56,7,12,12,8, - 0,0,16,40,68,0,56,68,130,130,130,130,68,56,7,11, - 11,8,0,0,52,88,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,72,72,0,56,68,130,130,130,130,68,56, - 9,9,18,9,255,0,8,0,8,0,0,0,0,0,255,128, - 0,0,0,0,8,0,8,0,7,12,12,8,0,254,2,2, - 60,68,138,146,146,162,100,56,64,64,8,12,12,8,255,0, - 32,16,8,0,198,66,66,66,66,66,70,59,8,12,12,8, - 255,0,4,8,16,0,198,66,66,66,66,66,70,59,8,12, - 12,8,255,0,16,40,68,0,198,66,66,66,66,66,70,59, - 8,11,11,8,255,0,36,36,0,198,66,66,66,66,66,70, - 59,8,16,16,8,255,252,2,4,8,0,247,66,66,36,36, - 20,8,8,16,16,160,192,8,15,15,8,255,252,64,192,64, - 92,98,65,65,65,65,98,92,64,64,64,224,8,15,15,8, - 255,252,36,36,0,247,66,98,36,52,20,24,8,16,16,160, - 192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 2 y= 8 dx=16 dy= 0 ascent=12 len=28 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12r[1784] U8G_FONT_SECTION("u8g_font_timR12r") = { - 0,19,26,254,249,11,2,36,5,11,32,127,252,12,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=18 x= 2 y=10 dx=18 dy= 0 ascent=18 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14[4577] U8G_FONT_SECTION("u8g_font_timR14") = { - 0,22,29,253,249,13,2,131,6,16,32,255,252,18,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,5, - 0,1,2,13,13,4,1,252,192,192,0,0,128,128,128,192, - 192,192,192,192,192,7,14,14,9,1,253,6,4,60,110,200, - 216,208,208,240,114,124,64,192,128,10,13,26,11,0,0,15, - 0,25,128,25,128,24,0,24,0,24,0,126,0,24,0,24, - 0,16,0,120,64,191,192,231,128,9,7,14,11,1,3,221, - 128,247,128,99,0,65,0,99,0,247,128,221,128,8,13,13, - 9,0,0,247,98,98,118,52,52,126,24,126,24,24,24,126, - 1,13,13,3,1,0,128,128,128,128,128,0,0,0,128,128, - 128,128,128,8,16,16,10,1,253,60,102,102,112,56,124,142, - 199,227,113,62,28,14,102,102,60,5,2,2,5,0,10,216, - 216,13,13,26,15,1,0,15,128,48,96,64,16,71,144,136, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,5,0,5,96,144,16,112,144,232,0,248,8, - 7,7,10,1,1,17,51,102,204,102,51,17,9,5,10,11, - 1,2,255,128,255,128,1,128,1,128,1,128,5,2,2,6, - 0,3,248,248,13,13,26,15,1,0,15,128,48,96,64,16, - 95,16,136,136,136,136,143,8,137,8,136,136,92,208,64,16, - 48,96,15,128,5,2,2,5,0,10,248,248,5,5,5,7, - 1,8,112,136,136,136,112,8,11,11,10,1,0,24,24,24, - 255,255,24,24,24,0,255,255,5,8,8,6,0,5,112,152, - 24,16,32,32,64,248,5,8,8,6,0,5,112,136,24,112, - 24,8,136,112,4,3,3,4,0,10,48,96,128,9,13,26, - 9,255,252,231,0,99,0,99,0,99,0,99,0,99,0,99, - 0,119,0,123,128,64,0,64,0,96,0,96,0,7,17,17, - 8,1,252,62,116,244,244,244,244,244,116,20,20,20,20,20, - 20,20,20,20,2,2,2,4,1,4,192,192,4,5,5,6, - 1,252,32,32,16,176,112,3,8,8,6,1,5,64,192,64, - 64,64,64,64,224,5,8,8,6,0,5,112,216,136,136,216, - 112,0,248,8,7,7,10,1,1,136,204,102,51,102,204,136, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 68,64,76,192,233,64,27,64,50,64,39,224,96,64,64,64, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 69,192,78,96,232,96,24,64,48,128,32,128,97,0,67,224, - 13,13,26,13,255,0,112,32,136,96,24,64,112,192,25,128, - 9,16,139,48,114,80,6,208,12,144,9,248,24,16,16,16, - 6,13,13,8,1,252,48,48,0,16,16,48,96,96,192,204, - 140,196,120,13,17,34,14,1,0,24,0,12,0,2,0,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,0,192,1,128,2,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,17,34,14,1,0,2,0,7,0,13,128,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,12,128,31,128,19,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,16,32,14,1,0,13,128,13,128,0,0,2, - 0,7,0,7,0,5,0,13,128,9,128,25,192,16,192,31, - 192,48,224,32,96,96,112,240,248,13,18,36,14,1,0,6, - 0,9,0,9,0,6,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,15,13,26,17,1,0,15,252,7,140,5,132,5, - 128,13,128,9,136,25,248,31,136,17,128,49,128,33,130,97, - 134,247,254,11,17,34,13,1,252,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,4,0,2,0,22,0,14,0,9,17,34,12,1, - 0,48,0,24,0,4,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,17,34,12,1,0,3,0,6,0,8,0,0, - 0,255,128,97,128,96,128,96,0,96,0,97,0,127,0,97, - 0,96,0,96,0,96,128,97,128,255,128,9,17,34,12,1, - 0,8,0,28,0,54,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,16,32,12,1,0,54,0,54,0,0,0,255, - 128,97,128,96,128,96,0,96,0,97,0,127,0,97,0,96, - 0,96,0,96,128,97,128,255,128,6,17,17,6,255,0,192, - 96,16,0,60,24,24,24,24,24,24,24,24,24,24,24,60, - 6,17,17,6,1,0,12,24,32,0,240,96,96,96,96,96, - 96,96,96,96,96,96,240,5,17,17,6,1,0,32,112,216, - 0,240,96,96,96,96,96,96,96,96,96,96,96,240,5,16, - 16,6,1,0,216,216,0,240,96,96,96,96,96,96,96,96, - 96,96,96,240,12,13,26,13,0,0,127,128,49,192,48,96, - 48,96,48,48,48,48,252,48,48,48,48,48,48,96,48,96, - 49,192,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,224,112,96,32,112,32,120,32,92,32,76,32,78,32, - 71,32,67,160,65,224,64,224,64,96,224,32,12,17,34,14, - 1,0,48,0,24,0,4,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,0,192,1,128,2,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,17,34,14, - 1,0,4,0,14,0,27,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,16,32,14, - 1,0,27,0,27,0,0,0,15,0,48,192,96,96,96,96, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 15,0,8,7,7,10,1,1,195,102,60,24,60,102,195,12, - 15,30,14,1,255,0,48,15,96,48,192,96,224,97,160,195, - 48,195,48,198,48,204,48,204,48,88,96,112,96,48,192,111, - 0,192,0,11,17,34,14,2,0,48,0,24,0,4,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,17,34,14,2, - 0,0,192,1,128,2,0,0,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,112,192,57, - 128,31,0,11,17,34,14,2,0,4,0,14,0,27,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,16,32,14,2, - 0,27,0,27,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,112,192,57,128,31, - 0,12,17,34,14,1,0,0,192,1,128,2,0,0,0,240, - 240,112,96,48,192,24,128,25,0,15,0,6,0,6,0,6, - 0,6,0,6,0,6,0,15,0,9,13,26,10,1,0,240, - 0,96,0,96,0,127,0,99,128,97,128,97,128,97,128,99, - 0,126,0,96,0,96,0,240,0,8,13,13,9,0,0,28, - 50,99,99,102,110,124,102,99,99,107,111,238,7,13,13,9, - 1,0,192,96,16,0,120,200,204,28,108,204,204,252,102,7, - 13,13,9,1,0,12,24,32,0,120,200,204,28,108,204,204, - 252,102,7,13,13,9,1,0,16,56,108,0,120,200,204,28, - 108,204,204,252,102,7,13,13,9,1,0,100,252,152,0,120, - 200,204,28,108,204,204,252,102,7,12,12,9,1,0,108,108, - 0,120,200,204,28,108,204,204,252,102,7,14,14,9,1,0, - 48,72,72,48,0,120,200,204,28,108,204,204,252,102,11,9, - 18,12,0,0,123,192,206,96,204,32,31,224,108,0,204,0, - 204,0,254,96,99,192,7,13,13,8,0,252,60,102,192,192, - 192,192,192,102,60,16,8,88,56,7,13,13,8,0,0,192, - 96,16,0,60,102,194,254,192,192,192,102,60,7,13,13,8, - 0,0,6,12,16,0,60,102,194,254,192,192,192,102,60,7, - 13,13,8,0,0,16,56,108,0,60,102,194,254,192,192,192, - 102,60,7,12,12,8,0,0,108,108,0,60,102,194,254,192, - 192,192,102,60,6,13,13,5,254,0,192,96,16,0,24,56, - 24,24,24,24,24,24,60,6,13,13,5,0,0,12,24,32, - 0,96,224,96,96,96,96,96,96,240,5,13,13,5,0,0, - 32,112,216,0,96,224,96,96,96,96,96,96,240,5,12,12, - 5,0,0,216,216,0,96,224,96,96,96,96,96,96,240,8, - 13,13,9,0,0,96,54,56,76,62,102,195,195,195,195,195, - 102,60,9,13,26,10,0,0,50,0,126,0,76,0,0,0, - 102,0,239,0,115,0,99,0,99,0,99,0,99,0,99,0, - 243,128,8,13,13,9,0,0,48,24,4,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,0,6,12,16,0,60, - 102,195,195,195,195,195,102,60,8,13,13,9,0,0,16,56, - 108,0,60,102,195,195,195,195,195,102,60,8,13,13,9,0, - 0,50,126,76,0,60,102,195,195,195,195,195,102,60,8,12, - 12,9,0,0,108,108,0,60,102,195,195,195,195,195,102,60, - 8,8,8,10,1,1,24,24,0,255,255,0,24,24,8,11, - 11,9,0,255,1,63,102,207,203,219,211,243,102,124,192,9, - 13,26,10,0,0,96,0,48,0,8,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,6,0,12,0,16,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,8,0,28,0,54,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 12,24,10,0,0,54,0,54,0,0,0,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,119,0,59,128,8,17,17, - 8,255,252,3,6,8,0,243,99,114,50,54,28,28,12,8, - 24,16,240,224,8,17,17,9,0,252,96,224,96,96,110,119, - 99,99,99,99,99,118,124,96,96,96,240,8,16,16,9,0, - 252,54,54,0,243,99,114,50,54,28,28,12,8,24,16,240, - 224}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=18 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14r[2156] U8G_FONT_SECTION("u8g_font_timR14r") = { - 0,22,29,253,249,13,2,131,6,16,32,127,252,14,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=14 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18[6850] U8G_FONT_SECTION("u8g_font_timR18") = { - 0,29,37,252,247,17,4,9,8,241,32,255,250,23,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,1,3,17, - 17,8,3,251,96,96,0,0,0,64,64,64,64,224,224,224, - 224,224,224,224,64,9,16,32,12,1,254,2,0,2,0,15, - 0,51,128,101,128,196,0,196,0,200,0,200,0,200,0,208, - 0,112,128,113,0,62,0,64,0,64,0,10,17,34,12,1, - 0,15,0,25,128,49,128,48,0,48,0,48,0,48,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,64,190, - 192,231,128,11,12,24,13,1,3,192,96,238,224,127,192,49, - 128,96,192,96,192,96,192,96,192,49,128,127,192,238,224,192, - 96,14,17,34,14,0,0,248,124,112,48,48,32,24,96,24, - 64,12,192,12,128,7,128,3,0,31,224,3,0,31,224,3, - 0,3,0,3,0,3,0,15,192,2,17,17,6,2,0,192, - 192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192, - 8,20,20,12,2,253,28,38,70,96,112,56,60,78,135,131, - 195,226,116,56,28,14,6,98,100,56,6,2,2,8,1,14, - 204,204,17,17,51,19,1,0,7,240,0,28,28,0,48,6, - 0,97,227,0,71,49,0,196,25,128,140,0,128,136,0,128, - 136,0,128,136,0,128,140,0,128,196,25,128,71,113,0,97, - 195,0,48,6,0,28,28,0,7,240,0,7,9,9,8,0, - 8,120,204,12,124,204,204,118,0,254,9,10,20,13,1,1, - 8,128,25,128,51,0,102,0,204,0,204,0,102,0,51,0, - 25,128,8,128,11,7,14,15,2,1,255,224,255,224,0,96, - 0,96,0,96,0,96,0,96,6,2,2,8,0,5,252,252, - 17,17,51,19,1,0,7,240,0,28,28,0,48,6,0,103, - 227,0,66,49,0,194,17,128,130,16,128,130,48,128,131,224, - 128,130,64,128,130,32,128,194,49,128,71,25,0,96,3,0, - 48,6,0,28,28,0,7,240,0,7,2,2,8,1,14,254, - 254,7,7,7,9,1,10,56,68,130,130,130,68,56,10,11, - 22,14,2,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,0,0,255,192,255,192,6,10,10,7,0,7, - 56,76,140,12,8,16,48,32,68,252,6,10,10,7,0,7, - 56,76,140,8,48,8,12,140,136,112,5,4,4,8,2,13, - 24,56,112,192,11,17,34,13,1,251,225,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,113,192,126,192, - 92,224,64,0,192,0,192,0,224,0,64,0,9,21,42,11, - 1,252,31,128,57,0,121,0,121,0,249,0,249,0,249,0, - 121,0,121,0,57,0,25,0,9,0,9,0,9,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,2,3,3,6, - 2,5,192,192,192,6,6,6,8,1,250,16,48,60,12,204, - 120,5,10,10,7,1,7,32,96,160,32,32,32,32,32,32, - 248,7,9,9,8,0,8,56,68,198,198,198,68,56,0,254, - 9,10,20,12,2,1,136,0,204,0,102,0,51,0,25,128, - 25,128,51,0,102,0,204,0,136,0,16,17,34,18,1,0, - 32,24,96,24,160,48,32,96,32,96,32,192,32,192,33,132, - 35,12,251,28,6,20,6,36,12,100,24,68,24,255,48,4, - 48,4,15,17,34,18,1,0,32,24,96,24,160,48,32,96, - 32,96,32,192,32,192,33,156,35,38,251,70,6,6,6,4, - 12,8,24,24,24,16,48,34,48,126,17,17,51,18,0,0, - 56,12,0,76,12,0,140,24,0,8,48,0,48,48,0,8, - 96,0,12,96,0,140,194,0,137,134,0,113,142,0,3,10, - 0,3,18,0,6,50,0,12,34,0,12,127,128,24,2,0, - 24,2,0,8,17,17,11,1,251,12,12,0,0,8,8,24, - 24,56,48,112,224,195,195,193,99,62,17,22,66,17,0,0, - 12,0,0,14,0,0,7,0,0,1,128,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,22,66,17,0,0,0,24,0,0,56,0,0,112, - 0,0,192,0,0,0,0,0,128,0,1,192,0,1,192,0, - 1,96,0,2,96,0,2,48,0,6,48,0,4,48,0,4, - 24,0,12,24,0,15,248,0,8,12,0,24,12,0,16,12, - 0,16,6,0,48,6,0,252,31,128,17,22,66,17,0,0, - 1,128,0,3,192,0,6,96,0,4,32,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,21,63,17,0,0,3,32,0,7,224,0,4,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,17,21,63,17,0,0,6,96,0, - 6,96,0,0,0,0,0,0,0,0,128,0,1,192,0,1, - 192,0,1,96,0,2,96,0,2,48,0,6,48,0,4,48, - 0,4,24,0,12,24,0,15,248,0,8,12,0,24,12,0, - 16,12,0,16,6,0,48,6,0,252,31,128,17,23,69,17, - 0,0,1,192,0,2,32,0,2,32,0,2,32,0,1,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,21,17,51,22,0,0,3,255,240, - 0,240,48,1,176,16,1,48,16,3,48,0,2,48,0,6, - 48,64,4,48,64,4,63,192,12,48,64,15,240,64,8,48, - 0,24,48,0,16,48,8,48,48,8,32,48,24,248,255,248, - 14,23,46,16,1,250,7,228,28,60,56,12,96,4,96,4, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,4,56,8,30,56,7,224,1,0,3,0,3,192,0,192, - 12,192,7,128,13,22,44,15,1,0,24,0,28,0,14,0, - 3,0,0,0,255,240,48,48,48,16,48,16,48,0,48,0, - 48,64,48,64,63,192,48,64,48,64,48,0,48,0,48,8, - 48,8,48,24,255,248,13,22,44,15,1,0,0,96,0,224, - 1,192,3,0,0,0,255,240,48,48,48,16,48,16,48,0, - 48,0,48,64,48,64,63,192,48,64,48,64,48,0,48,0, - 48,8,48,8,48,24,255,248,13,22,44,15,1,0,6,0, - 15,0,25,128,16,128,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,13,21,42,15,1,0, - 25,128,25,128,0,0,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,7,22,22,8,0,0, - 192,224,112,24,0,126,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,126,7,22,22,8,1,0,6,14,28,48, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,6,22,22,8,1,0,48,120,204,132,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,6,21, - 21,8,1,0,204,204,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,16,17,34,17,0,0,127, - 224,24,56,24,28,24,6,24,6,24,3,24,3,255,3,255, - 3,24,3,24,3,24,3,24,6,24,6,24,28,24,56,127, - 224,16,21,42,18,1,0,3,32,7,224,4,192,0,0,240, - 31,48,4,56,4,56,4,44,4,38,4,38,4,35,4,33, - 132,33,132,32,196,32,100,32,100,32,52,32,28,32,28,248, - 12,16,22,44,18,1,0,12,0,14,0,7,0,1,128,0, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,16,22,44,18,1,0,0,48,0,112,0,224,1, - 128,0,0,7,224,28,56,56,28,96,6,96,6,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,96,6,96,6,56, - 28,28,56,7,224,16,22,44,18,1,0,1,128,3,192,6, - 96,4,32,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,3,32,7, - 224,4,192,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,6,96,6, - 96,0,0,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,10,9,18,12,1,1,192,192,97, - 128,51,0,30,0,12,0,30,0,51,0,97,128,192,192,16, - 19,38,18,1,255,0,4,7,228,28,56,56,28,96,38,96, - 70,192,67,192,131,192,131,193,3,193,3,194,3,194,3,100, - 6,104,6,56,28,28,56,39,224,32,0,16,22,44,18,1, - 0,6,0,7,0,3,128,0,192,0,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,16,22,44, - 18,1,0,0,48,0,112,0,224,1,128,0,0,252,31,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,8,24,8,28,48,7,224,16, - 22,44,18,1,0,1,128,3,192,6,96,4,32,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,21,42,18,1,0,6,96,6,96,0,0,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,22,44,18,1,0,0,48,0,112,0,224,1,128,0, - 0,252,63,48,12,56,8,24,24,28,16,12,48,6,32,6, - 96,3,64,3,192,1,128,1,128,1,128,1,128,1,128,1, - 128,7,224,13,17,34,15,1,0,252,0,48,0,48,0,48, - 0,63,192,48,112,48,48,48,24,48,24,48,24,48,48,48, - 112,63,192,48,0,48,0,48,0,252,0,10,17,34,12,1, - 0,30,0,51,0,97,128,97,128,97,128,97,128,99,0,108, - 0,103,0,99,128,97,128,97,192,96,192,96,192,108,192,108, - 128,231,0,9,17,34,11,1,0,96,0,112,0,56,0,12, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,17,34,11,1, - 0,3,0,7,0,14,0,24,0,0,0,62,0,103,0,99, - 0,3,0,15,0,59,0,99,0,195,0,195,0,199,0,251, - 0,113,128,9,17,34,11,1,0,12,0,30,0,51,0,33, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,16,32,11,1, - 0,50,0,126,0,76,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,9,16,32,11,1,0,102,0,102,0,0,0,0,0,62, - 0,103,0,99,0,3,0,15,0,59,0,99,0,195,0,195, - 0,199,0,251,0,113,128,9,18,36,11,1,0,28,0,34, - 0,34,0,34,0,28,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,14,12,24,16,1,0,60,240,103,152,99,12,3,12,15, - 252,59,0,99,0,195,0,195,0,199,132,251,248,112,240,9, - 18,36,11,1,250,31,0,99,128,65,128,192,0,192,0,192, - 0,192,0,192,0,224,0,112,128,127,0,30,0,8,0,24, - 0,30,0,6,0,102,0,60,0,9,17,34,11,1,0,96, - 0,112,0,56,0,12,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,17,34,11,1,0,3,0,7,0,14,0,24,0,0, - 0,30,0,99,0,65,128,193,128,255,128,192,0,192,0,192, - 0,224,0,112,128,127,0,30,0,9,17,34,11,1,0,12, - 0,30,0,51,0,33,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,16,32,11,1,0,51,0,51,0,0,0,0,0,30, - 0,99,0,65,128,193,128,255,128,192,0,192,0,192,0,224, - 0,112,128,127,0,30,0,6,17,17,6,255,0,192,224,112, - 24,0,56,24,24,24,24,24,24,24,24,24,24,60,5,17, - 17,6,1,0,24,56,112,192,0,96,224,96,96,96,96,96, - 96,96,96,96,240,6,17,17,6,0,0,48,120,204,132,0, - 48,112,48,48,48,48,48,48,48,48,48,120,6,16,16,6, - 0,0,204,204,0,0,112,48,48,48,48,48,48,48,48,48, - 48,120,10,17,34,12,1,0,192,0,113,128,30,0,60,0, - 198,0,31,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,11,16,32,13,1,0, - 25,0,63,0,38,0,0,0,103,0,239,128,113,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,241,224, - 10,17,34,12,1,0,96,0,112,0,56,0,12,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,17,34,12,1,0,3,0, - 7,0,14,0,24,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 10,17,34,12,1,0,12,0,30,0,51,0,33,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,16,32,12,1,0,25,0, - 63,0,38,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,16, - 32,12,1,0,51,0,51,0,0,0,0,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 115,128,30,0,10,10,20,12,1,1,12,0,12,0,0,0, - 0,0,255,192,255,192,0,0,0,0,12,0,12,0,10,14, - 28,12,1,255,0,192,30,192,115,128,99,128,198,192,196,192, - 204,192,200,192,216,192,208,192,113,128,115,128,222,0,192,0, - 11,17,34,13,1,0,96,0,112,0,56,0,12,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,17,34,13,1,0,1,128, - 3,128,7,0,12,0,0,0,225,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,192,62,192,28,224, - 11,17,34,13,1,0,12,0,30,0,51,0,33,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,16,32,13,1,0,51,0, - 51,0,0,0,0,0,225,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,113,192,62,192,28,224,11,22, - 44,11,0,251,1,128,3,128,7,0,12,0,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,12,0,8,0,24,0,240,0,224,0, - 10,22,44,12,1,251,96,0,224,0,96,0,96,0,96,0, - 110,0,115,128,97,128,96,192,96,192,96,192,96,192,96,192, - 96,192,97,128,115,128,110,0,96,0,96,0,96,0,96,0, - 240,0,11,21,42,11,0,251,51,0,51,0,0,0,0,0, - 241,224,96,192,96,128,48,128,48,128,49,0,25,0,25,0, - 26,0,14,0,14,0,4,0,12,0,8,0,24,0,240,0, - 224,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=13 dx=23 dy= 0 ascent=19 len=60 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18r[3208] U8G_FONT_SECTION("u8g_font_timR18r") = { - 0,29,37,252,247,17,4,9,8,241,32,127,250,19,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=18 dx=32 dy= 0 ascent=30 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24[10419] U8G_FONT_SECTION("u8g_font_timR24") = { - 0,38,48,251,245,23,5,140,13,213,32,255,249,30,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,1,4,22,22,11,3,249,96,240,240,96,0,0,96,96, - 96,96,96,96,96,96,96,96,96,240,240,240,240,96,12,23, - 46,17,2,252,0,64,0,64,0,128,0,128,15,128,56,224, - 113,112,97,112,225,48,195,0,194,0,194,0,230,0,228,0, - 116,16,124,48,63,224,31,192,31,0,16,0,48,0,32,0, - 32,0,15,23,46,17,1,0,1,240,3,152,6,28,6,28, - 14,24,14,0,14,0,14,0,14,0,14,0,255,224,255,224, - 15,0,7,0,7,0,7,0,7,0,6,0,6,2,126,6, - 199,252,207,248,120,240,16,17,34,17,0,3,199,227,255,255, - 62,124,120,30,112,14,224,7,224,7,192,3,192,3,192,3, - 224,7,224,7,112,14,120,30,62,124,255,255,199,227,17,23, - 69,17,0,0,254,31,128,120,7,0,56,6,0,60,4,0, - 28,12,0,30,8,0,14,24,0,15,16,0,7,48,0,7, - 160,0,3,224,0,3,192,0,63,254,0,1,192,0,1,192, - 0,1,192,0,63,254,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,7,240,0,2,23,23,7,2,0,192, - 192,192,192,192,192,192,192,192,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,12,28,56,17,2,251,31,128,49,192, - 97,192,97,192,113,128,56,0,60,0,30,0,15,0,63,128, - 99,192,193,224,192,224,192,112,224,48,112,48,120,48,60,96, - 31,192,15,0,7,128,3,192,1,192,24,224,56,96,56,96, - 56,192,31,128,9,3,6,11,1,18,227,128,227,128,227,128, - 22,23,69,25,1,0,0,252,0,3,255,0,14,1,192,24, - 0,96,48,0,48,96,0,24,96,127,24,193,199,12,195,131, - 12,195,1,12,199,0,12,199,0,12,199,0,12,199,0,12, - 199,128,12,67,129,24,97,230,24,96,124,48,48,0,48,24, - 0,96,14,1,192,7,255,0,1,252,0,9,13,26,9,0, - 10,60,0,78,0,198,0,198,0,30,0,102,0,198,0,198, - 0,239,128,123,0,0,0,0,0,255,0,13,13,26,17,1, - 1,2,8,6,24,12,48,24,96,56,224,113,192,227,128,113, - 192,56,224,24,96,12,48,6,24,2,8,16,9,18,18,1, - 4,255,255,255,255,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,8,2,2,11,1,7,255,255,22,23,69,25,1, - 0,0,254,0,3,255,0,14,1,192,24,0,96,48,0,48, - 35,252,24,96,199,24,192,195,12,192,195,12,192,195,12,192, - 198,12,192,248,12,192,220,12,192,204,12,192,206,12,64,198, - 8,96,199,24,35,227,208,48,0,48,24,0,96,14,1,192, - 3,255,0,0,252,0,10,2,4,11,0,18,255,192,255,192, - 10,10,20,13,1,13,30,0,63,0,97,128,192,192,192,192, - 192,192,192,192,97,128,63,0,30,0,16,20,40,19,1,0, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,255,255,255,255,9,14,28,10,0,9,60,0, - 78,0,135,0,3,0,3,0,7,0,6,0,12,0,24,0, - 16,0,32,0,64,128,255,0,254,0,9,14,28,10,0,9, - 62,0,71,0,131,0,3,0,3,0,6,0,60,0,7,0, - 3,128,1,128,1,128,193,128,227,0,126,0,7,6,6,11, - 3,17,6,14,28,48,96,192,16,22,44,17,0,249,248,124, - 56,28,56,28,56,28,56,28,56,28,56,28,56,28,56,28, - 56,28,56,28,56,60,60,124,63,223,47,152,32,0,112,0, - 112,0,112,0,112,0,112,0,32,0,13,29,58,15,1,250, - 7,248,30,32,62,32,126,32,126,32,254,32,254,32,254,32, - 254,32,126,32,126,32,62,32,30,32,14,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,4,4,4,8,2,7, - 96,240,240,96,6,7,7,11,2,249,32,96,120,28,12,28, - 248,6,14,14,10,2,9,48,240,48,48,48,48,48,48,48, - 48,48,48,48,252,9,13,26,10,0,10,62,0,99,0,195, - 128,193,128,193,128,193,128,193,128,225,128,99,0,62,0,0, - 0,0,0,255,128,13,13,26,16,2,1,130,0,195,0,97, - 128,48,192,56,224,28,112,14,56,28,112,56,224,48,192,97, - 128,195,0,130,0,22,23,69,25,2,0,48,0,96,240,0, - 96,48,0,192,48,1,192,48,1,128,48,3,0,48,3,0, - 48,6,0,48,14,0,48,12,16,48,24,48,48,24,112,48, - 48,112,252,96,240,0,97,176,0,193,48,1,194,48,1,134, - 48,3,12,48,3,31,252,6,0,48,12,0,48,12,0,48, - 23,23,69,25,1,0,48,0,192,240,0,192,48,1,128,48, - 3,128,48,3,0,48,6,0,48,6,0,48,12,0,48,28, - 0,48,24,240,48,49,56,48,50,28,48,96,12,252,224,12, - 0,192,28,1,128,24,3,128,48,3,0,96,6,0,64,6, - 0,128,12,1,2,24,3,252,24,3,248,24,23,69,25,0, - 0,62,0,24,71,0,24,131,0,48,3,0,112,3,0,96, - 6,0,192,60,0,192,7,1,128,3,131,128,1,131,4,1, - 134,12,193,134,28,227,12,28,126,24,60,0,24,108,0,48, - 76,0,112,140,0,97,140,0,195,12,0,199,255,1,128,12, - 3,0,12,3,0,12,11,22,44,14,1,249,6,0,15,0, - 15,0,6,0,0,0,2,0,2,0,6,0,4,0,12,0, - 24,0,56,0,48,0,112,0,112,0,224,192,224,224,224,224, - 112,96,112,96,57,192,31,0,22,30,90,24,1,0,6,0, - 0,7,0,0,3,128,0,0,192,0,0,96,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,1, - 128,0,3,128,0,7,0,0,12,0,0,24,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,48, - 0,0,120,0,0,252,0,1,206,0,3,3,0,2,1,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,28,84,24,1,0,0,224, - 128,1,249,128,3,63,0,2,14,0,0,0,0,0,48,0, - 0,48,0,0,112,0,0,120,0,0,120,0,0,252,0,0, - 220,0,0,156,0,1,142,0,1,14,0,3,15,0,3,7, - 0,2,7,0,6,7,128,6,3,128,15,255,192,12,3,192, - 24,1,192,24,1,224,48,1,224,48,0,240,112,0,240,252, - 3,252,22,28,84,24,1,0,1,199,0,1,199,0,1,199, - 0,0,0,0,0,0,0,0,48,0,0,48,0,0,112,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,22,30,90,24, - 1,0,0,112,0,0,248,0,1,140,0,1,4,0,1,140, - 0,0,248,0,0,112,0,0,0,0,0,48,0,0,48,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,28,23,92,30, - 1,0,0,255,255,224,0,31,129,224,0,31,0,96,0,55, - 0,32,0,55,0,32,0,103,0,0,0,103,0,0,0,71, - 0,128,0,199,0,128,0,199,1,128,1,135,3,128,1,135, - 255,128,3,7,3,128,3,7,1,128,7,255,0,128,6,7, - 0,128,12,7,0,0,12,7,0,16,24,7,0,16,24,7, - 0,48,48,7,0,96,48,15,129,224,254,63,255,224,20,30, - 90,22,1,249,1,255,16,7,131,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,16,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,56,0,0,56,0,16,28,0,48, - 14,0,96,7,131,192,1,255,0,0,64,0,0,192,0,0, - 240,0,0,56,0,0,24,0,0,56,0,1,240,0,19,30, - 90,20,1,0,3,0,0,3,128,0,1,192,0,0,96,0, - 0,48,0,0,24,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,6,0,0,14,0,0,28,0,0,48,0, - 0,96,0,0,192,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,48,0,0,120,0,0,252,0,1,206,0, - 3,3,0,2,1,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,28, - 84,20,1,0,3,142,0,3,142,0,3,142,0,0,0,0, - 0,0,0,255,255,192,62,3,192,28,0,192,28,0,64,28, - 0,64,28,0,0,28,0,0,28,0,0,28,1,0,28,1, - 0,28,3,0,31,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,32,28,0,32,28,0,96,28, - 0,192,62,3,192,255,255,192,9,30,60,11,1,0,96,0, - 112,0,56,0,12,0,6,0,3,0,0,0,255,128,62,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,62,0,255,128,9,30,60,11,1,0, - 1,128,3,128,7,0,12,0,24,0,48,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,10,30,60,11, - 1,0,12,0,30,0,63,0,115,128,192,192,128,64,0,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,9,28, - 56,11,1,0,227,128,227,128,227,128,0,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,22,23,69,24, - 1,0,255,254,0,62,7,128,28,1,192,28,0,224,28,0, - 112,28,0,112,28,0,56,28,0,56,28,0,60,28,0,60, - 28,0,60,255,192,60,255,192,60,28,0,60,28,0,60,28, - 0,56,28,0,56,28,0,112,28,0,112,28,0,224,28,1, - 192,62,7,128,255,254,0,22,29,87,24,1,0,0,224,128, - 1,249,128,3,63,0,2,14,0,0,0,0,0,0,0,248, - 1,252,60,0,112,30,0,32,31,0,32,31,0,32,23,128, - 32,19,192,32,19,192,32,17,224,32,16,240,32,16,248,32, - 16,120,32,16,60,32,16,30,32,16,31,32,16,15,32,16, - 7,160,16,3,224,16,1,224,16,1,224,16,0,224,56,0, - 96,254,0,32,22,30,90,24,1,0,3,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,24,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,1,128,0,3,128, - 0,7,0,0,12,0,0,24,0,0,48,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,48,0,0,120,0, - 0,252,0,1,206,0,3,3,0,2,1,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,28,84,24,1,0,0,224,128,1,249,128, - 3,63,0,2,14,0,0,0,0,1,254,0,7,135,128,14, - 1,192,28,0,224,56,0,112,56,0,112,112,0,56,112,0, - 56,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,112,0,56,112,0,56,56,0,112,56, - 0,112,28,0,224,14,1,192,7,135,128,1,254,0,22,28, - 84,24,1,0,1,199,0,1,199,0,1,199,0,0,0,0, - 0,0,0,1,254,0,7,135,128,14,1,192,28,0,224,56, - 0,112,56,0,112,112,0,56,112,0,56,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 112,0,56,112,0,56,56,0,112,56,0,112,28,0,224,14, - 1,192,7,135,128,1,254,0,16,16,32,19,1,0,64,2, - 224,7,112,14,56,28,28,56,14,112,7,224,3,192,3,192, - 7,224,14,112,28,56,56,28,112,14,224,7,64,2,22,27, - 81,24,1,254,0,0,16,0,0,48,1,254,96,7,135,192, - 14,1,192,28,1,224,56,3,112,56,2,112,112,6,56,112, - 12,56,240,8,60,240,24,60,240,48,60,240,96,60,240,64, - 60,240,192,60,240,128,60,113,128,56,115,0,56,58,0,112, - 62,0,112,28,0,224,30,1,192,55,135,128,33,254,0,96, - 0,0,64,0,0,22,30,90,24,1,0,0,192,0,0,224, - 0,0,112,0,0,24,0,0,12,0,0,6,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,1,128,0,3, - 128,0,7,0,0,12,0,0,24,0,0,48,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,24,0,0,60, - 0,0,126,0,0,231,0,1,129,128,1,0,128,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,28,84,24,1,0,1,199,0,1,199, - 0,1,199,0,0,0,0,0,0,0,255,129,252,62,0,112, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,96, - 30,0,96,14,0,64,15,0,192,7,195,128,1,254,0,22, - 30,90,24,1,0,0,0,192,0,1,192,0,3,128,0,6, - 0,0,12,0,0,24,0,0,0,0,255,192,252,63,0,56, - 30,0,48,15,0,96,15,128,192,7,128,128,3,193,128,3, - 195,0,1,227,0,0,246,0,0,252,0,0,124,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,124,0,1,255,0,18, - 23,69,19,1,0,255,128,0,62,0,0,28,0,0,28,0, - 0,28,0,0,31,252,0,28,31,0,28,7,128,28,3,128, - 28,3,192,28,1,192,28,1,192,28,1,192,28,3,192,28, - 3,128,28,7,128,28,31,0,31,252,0,28,0,0,28,0, - 0,28,0,0,62,0,0,255,128,0,15,23,46,17,1,0, - 7,192,12,112,24,56,24,56,56,56,56,56,56,56,56,56, - 56,48,56,96,57,192,56,120,56,28,56,30,56,14,56,14, - 56,14,56,14,56,14,59,12,59,156,59,152,249,240,13,23, - 46,15,1,0,24,0,28,0,14,0,3,0,1,128,0,192, - 0,0,0,0,31,128,49,192,112,224,112,224,96,224,3,224, - 14,224,24,224,48,224,96,224,224,224,225,224,242,232,126,248, - 60,112,13,23,46,15,1,0,0,192,1,192,3,128,6,0, - 12,0,24,0,0,0,0,0,31,128,49,192,112,224,112,224, - 96,224,3,224,14,224,24,224,48,224,96,224,224,224,225,224, - 242,232,126,248,60,112,13,23,46,15,1,0,6,0,15,0, - 31,128,57,192,96,96,64,32,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 28,16,62,48,99,224,65,192,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 56,224,56,224,56,224,0,0,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,23,46,15,1,0, - 7,0,15,128,24,192,16,64,24,192,15,128,7,0,0,0, - 31,128,49,192,112,224,112,224,96,224,3,224,14,224,24,224, - 48,224,96,224,224,224,225,224,242,232,126,248,60,112,19,15, - 45,22,1,0,31,159,0,49,249,192,112,224,192,112,224,224, - 96,224,224,3,255,224,14,224,0,24,224,0,48,224,0,96, - 224,0,224,224,32,225,240,96,243,120,192,126,63,128,60,31, - 0,12,22,44,15,1,249,15,128,56,192,112,224,96,224,224, - 96,192,0,192,0,192,0,192,0,224,0,224,16,112,48,124, - 96,63,192,15,0,4,0,12,0,15,0,3,128,1,128,3, - 128,31,0,12,23,46,15,1,0,48,0,56,0,28,0,6, - 0,3,0,1,128,0,0,0,0,15,128,57,192,96,224,96, - 112,192,112,255,240,192,0,192,0,192,0,224,0,224,16,112, - 48,124,96,63,192,15,0,12,23,46,15,1,0,1,128,3, - 128,7,0,12,0,24,0,48,0,0,0,0,0,15,128,57, - 192,96,224,96,112,192,112,255,240,192,0,192,0,192,0,224, - 0,224,16,112,48,124,96,63,192,15,0,12,23,46,15,1, - 0,6,0,15,0,31,128,57,192,96,96,64,32,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,12, - 21,42,15,1,0,56,224,56,224,56,224,0,0,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,7, - 23,23,9,1,0,192,224,112,24,12,6,0,0,24,248,56, - 56,56,56,56,56,56,56,56,56,56,56,254,7,23,23,9, - 1,0,6,14,28,48,96,192,0,0,24,248,56,56,56,56, - 56,56,56,56,56,56,56,56,254,10,23,46,9,0,0,12, - 0,30,0,63,0,115,128,192,192,128,64,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,9,21,42, - 9,0,0,227,128,227,128,227,128,0,0,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,14,23,46, - 17,1,0,16,0,56,0,28,112,15,240,15,0,127,128,49, - 192,0,224,7,240,24,240,48,120,112,56,96,60,224,28,224, - 28,224,28,224,28,224,28,112,24,112,56,56,48,28,96,7, - 128,16,21,42,16,0,0,14,8,31,24,49,240,32,224,0, - 0,0,0,24,240,251,248,62,60,60,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,254, - 127,14,23,46,16,1,0,24,0,28,0,14,0,3,0,1, - 128,0,192,0,0,0,0,7,128,24,224,48,112,112,56,96, - 56,224,28,224,28,224,28,224,28,224,28,112,24,112,56,56, - 48,28,96,7,128,14,23,46,16,1,0,0,192,1,192,3, - 128,6,0,12,0,24,0,0,0,0,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,112, - 24,112,56,56,48,28,96,7,128,14,23,46,16,1,0,3, - 0,7,128,15,192,28,224,48,48,32,16,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,28,16,62,48,99,224,65,192,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,56,224,56,224,56,224,0,0,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,16,17,34, - 19,1,0,1,128,3,192,3,192,1,128,0,0,0,0,0, - 0,255,255,255,255,0,0,0,0,0,0,0,0,1,128,3, - 192,3,192,1,128,14,21,42,17,1,253,0,24,0,16,0, - 48,7,160,24,224,48,240,112,184,97,184,225,28,225,28,227, - 28,226,28,230,28,116,24,116,56,60,48,28,96,31,128,48, - 0,32,0,96,0,16,23,46,17,0,0,12,0,14,0,7, - 0,1,128,0,192,0,96,0,0,0,0,248,124,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,60,60,124,31,223,15,152,16,23,46,17,0,0,0, - 96,0,224,1,192,3,0,6,0,12,0,0,0,0,0,248, - 124,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,60,60,124,31,223,15,152,16,23,46, - 17,0,0,1,128,3,192,7,224,14,112,24,24,16,8,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,16,21,42,17,0,0,28,112,28,112,28,112,0,0,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,15,30,60,17,0,249,0,24,0,56,0,112,0,192,1, - 128,3,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,128,1,0,3,0,2,0,62,0,124, - 0,56,0,15,30,60,17,0,249,24,0,248,0,56,0,56, - 0,56,0,56,0,56,0,56,0,57,240,59,248,62,124,60, - 28,56,30,56,14,56,14,56,14,56,14,56,14,56,12,56, - 28,60,24,62,48,59,224,56,0,56,0,56,0,56,0,56, - 0,56,0,255,0,15,28,56,17,1,249,28,112,28,112,28, - 112,0,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,0,1,0,3,0,2,0,62,0,124, - 0,56,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=26 x= 4 y=10 dx=19 dy= 0 ascent=23 len=52 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =23 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24n[717] U8G_FONT_SECTION("u8g_font_timR24n") = { - 0,38,48,251,245,23,0,0,0,0,42,58,0,23,253,23, - 0,12,13,26,17,2,10,6,0,15,0,6,0,198,48,246, - 240,118,224,15,0,118,224,246,240,198,48,6,0,15,0,6, - 0,16,16,32,19,1,1,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,4,7,7,8,2,253,96,240,240, - 112,16,32,64,8,2,2,11,1,7,255,255,4,4,4,8, - 2,0,96,240,240,96,10,26,52,9,0,253,0,192,0,192, - 1,128,1,128,3,128,3,0,3,0,3,0,6,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,24,0,24,0, - 48,0,48,0,48,0,112,0,96,0,96,0,192,0,192,0, - 14,23,46,16,1,0,7,128,28,224,56,112,48,48,112,56, - 112,56,96,24,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,24,112,56,112,56,48,48,56,112, - 28,224,7,128,9,23,46,16,4,0,12,0,28,0,124,0, - 220,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,15,23,46,16,0,0,7,224, - 15,240,28,248,48,60,32,60,96,28,64,28,0,28,0,28, - 0,24,0,56,0,48,0,96,0,96,0,192,1,128,3,0, - 6,0,12,2,24,6,63,252,127,248,255,248,12,23,46,16, - 2,0,15,128,63,192,97,224,192,224,128,224,0,224,0,192, - 0,192,1,128,3,0,7,192,31,224,1,240,0,112,0,112, - 0,48,0,48,0,48,0,112,0,96,224,192,243,128,127,0, - 14,23,46,16,1,0,0,96,0,224,0,224,1,224,1,96, - 3,96,6,96,4,96,12,96,24,96,16,96,48,96,96,96, - 64,96,255,252,255,252,255,252,0,96,0,96,0,96,0,96, - 0,96,0,96,13,23,46,16,1,0,15,248,31,240,31,224, - 16,0,48,0,32,0,126,0,127,128,127,192,7,224,1,224, - 0,240,0,112,0,112,0,48,0,48,0,48,0,48,0,96, - 0,96,224,192,243,128,126,0,14,23,46,16,1,0,0,120, - 1,192,3,128,15,0,30,0,28,0,56,0,120,0,112,0, - 115,192,247,240,248,120,224,56,224,60,224,28,224,28,224,28, - 224,28,112,28,112,24,56,56,28,96,7,192,14,23,46,16, - 1,0,63,252,127,252,96,24,192,24,128,56,0,48,0,48, - 0,48,0,96,0,96,0,96,0,224,0,192,0,192,1,192, - 1,128,1,128,1,128,3,0,3,0,3,0,7,0,6,0, - 13,23,46,16,2,0,31,128,56,224,112,112,224,48,224,48, - 224,48,224,112,240,96,124,192,63,0,31,128,15,192,27,224, - 113,240,96,240,224,120,192,120,192,56,192,56,224,56,96,112, - 112,224,31,192,14,23,46,16,1,0,7,128,24,224,48,112, - 112,56,96,56,224,28,224,28,224,28,224,28,224,28,240,28, - 112,28,120,60,62,252,15,184,0,56,0,112,0,112,0,224, - 1,192,3,128,15,0,120,0,4,15,15,9,2,0,96,240, - 240,96,0,0,0,0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=17 dx=32 dy= 0 ascent=25 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24r[4764] U8G_FONT_SECTION("u8g_font_timR24r") = { - 0,38,48,251,245,23,5,140,13,213,32,127,249,25,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=11 h=13 x= 1 y=10 dx=12 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssb[2656] U8G_FONT_SECTION("u8g_font_tpssb") = { - 0,11,17,0,252,9,1,205,3,159,32,255,252,13,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,2,9,9,3,0,0,192,192,0,192,192,192,192, - 192,192,5,7,7,7,1,0,32,112,168,160,168,112,32,6, - 9,9,7,0,0,192,192,248,192,192,192,204,204,252,5,5, - 5,7,1,1,136,112,80,112,136,6,9,9,8,1,0,204, - 204,120,48,48,120,48,120,48,2,9,9,4,1,0,192,192, - 192,0,0,0,192,192,192,8,10,10,10,1,0,124,192,126, - 195,126,3,3,3,195,62,5,1,1,7,1,3,216,9,7, - 14,11,1,0,62,0,65,0,221,128,209,128,221,128,65,0, - 62,0,7,8,8,9,1,0,120,204,204,204,204,126,0,254, - 7,3,3,9,1,2,102,204,102,5,3,3,7,1,1,248, - 248,24,255,9,7,14,11,1,0,62,0,65,0,221,128,209, - 128,209,128,65,0,62,0,5,1,1,6,0,6,248,3,3, - 3,5,1,2,224,160,224,5,7,7,7,1,0,32,32,248, - 32,32,0,248,255,255,255,255,255,255,255,255,255,7,3,3, - 9,1,2,204,102,204,255,255,255,255,6,12,12,7,0,0, - 96,48,0,120,204,204,252,204,204,204,204,204,6,12,12,7, - 0,0,24,48,0,120,204,204,252,204,204,204,204,204,6,12, - 12,7,0,0,48,72,0,120,204,204,252,204,204,204,204,204, - 6,12,12,7,0,0,232,184,0,120,204,204,252,204,204,204, - 204,204,6,11,11,7,0,0,72,0,120,204,204,252,204,204, - 204,204,204,6,13,13,7,0,0,48,72,48,0,120,204,204, - 252,204,204,204,204,204,11,9,18,12,0,0,127,224,206,0, - 206,0,255,192,206,0,206,0,206,0,206,0,207,224,6,11, - 11,7,0,254,120,204,192,192,192,192,192,204,120,48,96,6, - 12,12,7,0,0,96,48,0,252,192,192,248,192,192,192,192, - 252,6,12,12,7,0,0,24,48,0,252,192,192,248,192,192, - 192,192,252,6,12,12,7,0,0,48,72,0,252,192,192,248, - 192,192,192,192,252,6,11,11,7,0,0,204,0,252,192,192, - 248,192,192,192,192,252,3,12,12,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,96,3,12,12,4,0,0,96,192, - 0,192,192,192,192,192,192,192,192,192,4,12,12,5,0,0, - 96,144,0,96,96,96,96,96,96,96,96,96,6,11,11,7, - 0,0,204,0,48,48,48,48,48,48,48,48,48,6,9,9, - 7,0,0,248,204,204,236,204,204,204,204,248,6,12,12,7, - 0,0,232,184,0,204,236,252,220,204,204,204,204,204,6,12, - 12,7,0,0,96,48,0,120,204,204,204,204,204,204,204,120, - 6,12,12,7,0,0,24,48,0,120,204,204,204,204,204,204, - 204,120,6,12,12,7,0,0,48,72,0,120,204,204,204,204, - 204,204,204,120,6,12,12,7,0,0,232,184,0,120,204,204, - 204,204,204,204,204,120,6,11,11,7,0,0,204,0,120,204, - 204,204,204,204,204,204,120,3,3,3,6,1,2,160,64,160, - 6,9,9,7,0,0,120,204,220,220,236,236,236,204,120,6, - 12,12,7,0,0,96,48,0,204,204,204,204,204,204,204,204, - 120,6,12,12,7,0,0,24,48,0,204,204,204,204,204,204, - 204,204,120,6,12,12,7,0,0,48,72,0,204,204,204,204, - 204,204,204,204,120,6,11,11,7,0,0,204,0,204,204,204, - 204,204,204,204,204,120,6,12,12,7,0,0,24,48,0,204, - 204,120,48,48,48,48,48,48,7,9,9,8,0,0,192,192, - 252,198,252,192,192,192,192,7,11,11,8,0,254,252,198,220, - 198,198,198,220,192,192,192,192,6,9,9,7,0,0,96,48, - 0,120,204,204,204,204,124,6,9,9,7,0,0,24,48,0, - 120,204,204,204,204,124,6,9,9,7,0,0,48,72,0,120, - 204,204,204,204,124,6,9,9,7,0,0,232,184,0,120,204, - 204,204,204,124,6,8,8,7,0,0,204,0,120,204,204,204, - 204,124,6,10,10,7,0,0,48,72,48,0,120,204,204,204, - 204,124,9,6,12,11,1,0,127,128,136,128,143,128,136,0, - 136,128,127,128,6,8,8,7,0,254,120,204,192,192,204,120, - 48,96,6,9,9,7,0,0,96,48,0,120,204,252,192,204, - 120,6,9,9,7,0,0,24,48,0,120,204,252,192,204,120, - 6,9,9,7,0,0,48,72,0,120,204,252,192,204,120,6, - 8,8,7,0,0,204,0,120,204,252,192,204,120,3,12,12, - 4,0,0,192,96,0,96,96,96,96,96,96,96,96,96,3, - 12,12,4,0,0,96,192,0,192,192,192,192,192,192,192,192, - 192,4,12,12,5,0,0,96,144,0,96,96,96,96,96,96, - 96,96,96,6,11,11,7,0,0,204,0,48,48,48,48,48, - 48,48,48,48,6,9,9,7,0,0,12,60,12,124,204,204, - 204,204,124,6,9,9,7,0,0,232,184,0,248,236,204,204, - 204,204,6,9,9,7,0,0,96,48,0,120,204,204,204,204, - 120,6,9,9,7,0,0,24,48,0,120,204,204,204,204,120, - 6,9,9,7,0,0,48,72,0,120,204,204,204,204,120,6, - 9,9,7,0,0,232,184,0,120,204,204,204,204,120,6,8, - 8,7,0,0,204,0,120,204,204,204,204,120,6,6,6,7, - 0,1,48,0,252,252,0,48,6,6,6,7,0,0,120,220, - 220,236,236,120,6,9,9,7,0,0,96,48,0,204,204,204, - 204,204,120,6,9,9,7,0,0,24,48,0,204,204,204,204, - 204,120,6,9,9,7,0,0,48,72,0,204,204,204,204,204, - 120,6,8,8,7,0,0,204,0,204,204,204,204,204,120,6, - 13,13,7,0,252,24,48,0,204,204,204,204,204,124,12,12, - 204,120,6,6,6,7,0,0,192,248,204,248,192,192,6,12, - 12,7,0,252,204,0,204,204,204,204,204,124,12,12,204,120 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 6 h= 9 x= 1 y= 3 dx= 8 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbn[240] U8G_FONT_SECTION("u8g_font_tpssbn") = { - 0,11,17,0,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,6,6, - 6,8,1,1,48,48,252,252,48,48,3,2,2,5,1,255, - 96,192,5,2,2,7,1,3,248,248,2,1,1,4,1,0, - 192,6,9,9,8,1,0,12,24,24,48,48,48,96,96,192, - 6,9,9,7,0,0,120,204,204,204,204,204,204,204,120,6, - 9,9,7,0,0,48,112,240,48,48,48,48,48,252,6,9, - 9,7,0,0,120,204,204,12,24,48,96,192,252,6,9,9, - 7,0,0,120,204,12,56,12,12,12,204,120,6,9,9,7, - 0,0,12,204,204,252,12,12,12,12,12,6,9,9,7,0, - 0,252,192,192,248,12,12,12,204,120,6,9,9,7,0,0, - 120,204,192,248,204,204,204,204,120,6,9,9,7,0,0,252, - 12,24,48,96,96,96,96,96,6,9,9,7,0,0,120,204, - 204,120,204,204,204,204,120,6,9,9,7,0,0,120,204,204, - 204,124,12,12,204,120,2,4,4,4,1,0,192,0,0,192 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 1 y=10 dx=12 dy= 0 ascent=12 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbr[1346] U8G_FONT_SECTION("u8g_font_tpssbr") = { - 0,11,17,0,252,9,1,205,3,159,32,127,252,12,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpss[2605] U8G_FONT_SECTION("u8g_font_tpss") = { - 0,11,17,255,252,9,1,192,3,136,32,255,252,13,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,1,9,9,2,0,0,128,128,0,128, - 128,128,128,128,128,5,7,7,7,1,0,32,112,168,160,168, - 112,32,5,9,9,7,1,0,128,128,240,128,128,128,136,136, - 248,5,5,5,7,1,1,136,112,80,112,136,5,9,9,7, - 1,0,136,136,80,32,32,248,32,248,32,1,9,9,3,1, - 0,128,128,128,0,0,0,128,128,128,6,10,10,8,1,0, - 120,128,120,132,120,4,4,4,132,120,5,1,1,7,1,3, - 136,7,7,7,9,1,0,124,130,186,162,186,130,124,6,8, - 8,8,1,0,112,136,136,136,136,116,0,252,5,3,3,7, - 1,2,72,144,72,5,2,2,7,1,2,248,8,0,0,0, - 8,0,0,7,7,7,9,1,0,124,130,186,162,162,130,124, - 5,1,1,6,0,6,248,3,3,3,5,1,2,64,160,64, - 5,7,7,7,1,0,32,32,248,32,32,0,248,255,255,255, - 0,0,0,8,0,0,255,0,0,0,8,0,0,255,255,255, - 5,3,3,7,1,2,144,72,144,255,255,255,255,5,12,12, - 6,0,0,64,32,0,112,136,136,248,136,136,136,136,136,5, - 12,12,6,0,0,16,32,0,112,136,136,248,136,136,136,136, - 136,5,12,12,6,0,0,32,80,0,112,136,136,248,136,136, - 136,136,136,5,12,12,6,0,0,232,184,0,112,136,136,248, - 136,136,136,136,136,5,11,11,6,0,0,80,0,112,136,136, - 248,136,136,136,136,136,5,13,13,6,0,0,32,80,32,0, - 112,136,136,248,136,136,136,136,136,9,9,18,10,0,0,127, - 128,136,0,136,0,255,0,136,0,136,0,136,0,136,0,143, - 128,5,9,9,6,0,254,112,136,128,128,128,136,112,32,96, - 5,12,12,6,0,0,64,32,0,248,128,128,240,128,128,128, - 128,248,5,12,12,6,0,0,16,32,0,248,128,128,240,128, - 128,128,128,248,5,12,12,6,0,0,32,80,0,248,128,128, - 240,128,128,128,128,248,5,11,11,6,0,0,80,0,248,128, - 128,240,128,128,128,128,248,2,12,12,2,0,0,128,64,0, - 64,64,64,64,64,64,64,64,64,2,12,12,2,0,0,64, - 128,0,128,128,128,128,128,128,128,128,128,3,12,12,2,255, - 0,64,160,0,64,64,64,64,64,64,64,64,64,3,11,11, - 2,255,0,160,0,64,64,64,64,64,64,64,64,64,5,9, - 9,6,0,0,240,136,136,232,136,136,136,136,240,5,12,12, - 6,0,0,232,184,0,136,136,136,200,168,152,136,136,136,5, - 12,12,6,0,0,64,32,0,112,136,136,136,136,136,136,136, - 112,5,12,12,6,0,0,16,32,0,112,136,136,136,136,136, - 136,136,112,5,12,12,6,0,0,32,80,0,112,136,136,136, - 136,136,136,136,112,5,12,12,6,0,0,232,184,0,112,136, - 136,136,136,136,136,136,112,5,11,11,6,0,0,80,0,112, - 136,136,136,136,136,136,136,112,3,3,3,6,1,2,160,64, - 160,7,9,9,8,0,0,58,68,76,84,84,84,100,68,184, - 5,12,12,6,0,0,64,32,0,136,136,136,136,136,136,136, - 136,112,5,12,12,6,0,0,16,32,0,136,136,136,136,136, - 136,136,136,112,5,12,12,6,0,0,32,80,0,136,136,136, - 136,136,136,136,136,112,5,11,11,6,0,0,80,0,136,136, - 136,136,136,136,136,136,112,5,12,12,6,0,0,16,32,0, - 136,136,80,32,32,32,32,32,32,5,9,9,6,0,0,128, - 128,240,136,240,128,128,128,128,5,11,11,6,0,254,240,136, - 176,136,136,136,176,128,128,128,128,5,9,9,6,0,0,64, - 32,0,112,136,136,136,136,120,5,9,9,6,0,0,16,32, - 0,112,136,136,136,136,120,5,9,9,6,0,0,32,80,0, - 112,136,136,136,136,120,5,9,9,6,0,0,232,184,0,112, - 136,136,136,136,120,5,8,8,6,0,0,80,0,112,136,136, - 136,136,120,5,10,10,6,0,0,32,80,32,0,112,136,136, - 136,136,120,9,6,12,10,0,0,119,0,136,128,143,128,136, - 0,136,128,119,0,5,8,8,6,0,254,112,136,128,128,136, - 112,32,64,5,6,6,6,0,0,112,136,248,128,136,112,5, - 6,6,6,0,0,112,136,248,128,136,112,5,6,6,6,0, - 0,112,136,248,128,136,112,5,6,6,6,0,0,112,136,248, - 128,136,112,2,10,10,3,0,0,128,64,0,0,64,64,64, - 64,64,64,2,10,10,3,0,0,64,128,0,0,128,128,128, - 128,128,128,3,10,10,4,0,0,64,160,0,0,64,64,64, - 64,64,64,3,9,9,4,0,0,160,0,0,64,64,64,64, - 64,64,5,9,9,6,0,0,8,56,8,120,136,136,136,136, - 120,5,9,9,6,0,0,232,184,0,176,200,136,136,136,136, - 5,9,9,6,0,0,64,32,0,112,136,136,136,136,112,5, - 9,9,6,0,0,16,32,0,112,136,136,136,136,112,5,9, - 9,6,0,0,32,80,0,112,136,136,136,136,112,5,9,9, - 6,0,0,232,184,0,112,136,136,136,136,112,5,8,8,6, - 0,0,80,0,112,136,136,136,136,112,5,5,5,6,0,1, - 32,0,248,0,32,5,6,6,6,0,0,112,152,168,168,200, - 112,5,9,9,6,0,0,64,32,0,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,0,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,136,136,136,136,136,112,5,8, - 8,6,0,0,80,0,136,136,136,136,136,112,5,13,13,6, - 0,252,16,32,0,136,136,136,136,136,120,8,8,136,112,5, - 6,6,5,0,0,128,240,136,240,128,128,5,12,12,6,0, - 252,80,0,136,136,136,136,136,120,8,8,136,112}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 5 h= 9 x= 1 y= 3 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssn[238] U8G_FONT_SECTION("u8g_font_tpssn") = { - 0,11,17,255,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,5,5, - 5,7,1,1,32,32,248,32,32,2,2,2,4,1,255,64, - 128,5,1,1,7,1,3,248,1,1,1,3,1,0,128,5, - 9,9,7,1,0,8,16,16,32,32,32,64,64,128,5,9, - 9,6,0,0,112,136,136,136,136,136,136,136,112,5,9,9, - 6,0,0,32,96,160,32,32,32,32,32,248,5,9,9,6, - 0,0,112,136,136,8,16,32,64,128,248,5,9,9,6,0, - 0,112,136,8,48,8,8,8,136,112,5,9,9,6,0,0, - 8,136,136,248,8,8,8,8,8,5,9,9,6,0,0,248, - 128,128,248,8,8,8,136,112,5,9,9,6,0,0,112,136, - 128,240,136,136,136,136,112,5,9,9,6,0,0,248,8,16, - 32,64,64,64,64,64,5,9,9,6,0,0,112,136,136,112, - 136,136,136,136,112,5,9,9,6,0,0,112,136,136,136,120, - 8,8,136,112,1,4,4,3,1,0,128,0,0,128}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=12 len=16 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssr[1317] U8G_FONT_SECTION("u8g_font_tpssr") = { - 0,11,17,255,252,9,1,192,3,136,32,127,252,12,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_square[1236] U8G_FONT_SECTION("u8g_font_trixel_square") = { - 0,5,9,0,254,5,1,91,2,177,32,255,254,7,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,4,5,5,5,0,0,112,64,96,64,240, - 255,255,255,3,7,7,4,0,254,224,128,224,160,224,32,224, - 255,255,255,3,2,2,4,0,1,160,160,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,3,2,2,4,0,1, - 160,160,255,255,255,255,255,255,255,255,3,7,7,4,0,0, - 160,0,224,160,224,160,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,7,7,4,0,0,160,0, - 224,160,160,160,224,255,255,255,255,255,3,7,7,4,0,0, - 160,0,160,160,160,160,224,255,255,3,7,7,4,0,254,224, - 160,224,160,224,128,128,255,255,255,255,4,5,5,5,0,0, - 160,0,224,160,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,3,5,5,4,0,0,160,0,224,160, - 224,255,255,255,255,255,3,5,5,4,0,0,160,0,160,160, - 224,255,255,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[187] U8G_FONT_SECTION("u8g_font_trixel_squaren") = { - 0,5,9,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,4,0,2,160,64,160,3,3,3,4,0,0, - 64,224,64,1,2,2,2,0,255,128,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,3,5,5,4,0,0,32, - 96,64,192,128,3,5,5,4,0,0,224,160,160,160,224,2, - 5,5,3,0,0,64,192,64,64,64,3,5,5,4,0,0, - 224,160,96,192,224,3,5,5,4,0,0,224,32,96,32,224, - 3,5,5,4,0,0,160,160,224,32,32,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,128,224,160, - 224,3,5,5,4,0,0,224,32,32,32,32,3,5,5,4, - 0,0,224,160,224,160,224,3,5,5,4,0,0,224,160,224, - 32,224,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[994] U8G_FONT_SECTION("u8g_font_trixel_squarer") = { - 0,5,9,0,254,5,1,91,2,177,32,127,254,6,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 8 h= 7 x= 1 y= 4 dx= 9 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4[1660] U8G_FONT_SECTION("u8g_font_u8glib_4") = { - 1,9,6,0,255,4,0,233,1,198,32,255,255,6,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240,2,0,32,2,53,69,160,0, - 160,160,224,2,54,70,64,128,0,224,192,224,2,54,70,64, - 160,0,96,160,224,2,53,69,160,0,96,160,224,2,54,70, - 64,32,0,96,160,224,2,54,70,64,160,64,96,160,224,1, - 36,52,192,128,192,192,2,54,70,64,160,0,224,192,224,2, - 53,69,160,0,224,192,224,2,54,70,64,32,0,224,192,224, - 2,52,68,160,0,64,64,2,53,149,64,160,0,64,64,2, - 37,53,128,64,0,64,64,2,69,85,144,96,144,240,144,2, - 70,86,96,144,96,144,240,144,2,70,86,32,64,240,224,128, - 240,2,83,99,120,176,248,2,132,148,31,46,120,143,2,54, - 70,64,160,0,224,160,224,2,53,69,160,0,224,160,224,2, - 54,70,128,64,0,224,160,224,2,54,70,64,160,0,160,160, - 224,2,54,70,64,32,0,160,160,224,1,54,70,160,0,160, - 224,32,96,2,69,85,144,96,144,144,96,2,69,85,144,0, - 144,144,240,2,0,64,2,0,64,2,0,64,2,0,64,2, - 0,64,2,54,70,64,128,0,96,160,224,2,37,53,64,128, - 0,128,128,2,54,70,32,64,0,224,160,224,2,54,70,32, - 64,0,160,160,224,2,70,70,80,160,0,192,160,160,2,70, - 86,80,160,144,208,176,144,2,21,37,128,128,0,128,128,1, - 54,70,224,128,224,224,32,224,6,65,81,144,1,119,151,124, - 130,186,162,186,130,124,2,0,144,2,51,67,96,192,96,3, - 50,66,224,32,2,0,144,1,119,151,124,130,186,178,170,130, - 124,6,65,81,240,4,51,67,224,160,224,2,52,148,64,224, - 64,224,4,51,67,192,64,96,4,35,51,192,64,192,5,34, - 50,64,128,1,52,148,160,160,224,128,1,101,117,124,244,116, - 20,20,19,17,49,128,2,0,144,4,35,51,192,64,64,4, - 51,67,224,160,224,2,51,67,192,96,192,1,118,134,196,72, - 80,40,78,132,1,118,134,196,72,80,44,68,134,1,118,150, - 196,72,208,40,78,132,2,0,64,2,70,86,64,32,96,144, - 240,144,2,70,86,32,64,96,144,240,144,2,70,86,96,144, - 96,144,240,144,2,70,86,80,160,96,144,240,144,2,69,85, - 144,96,144,240,144,2,70,86,96,0,96,144,240,144,2,132, - 148,31,46,120,143,1,69,85,240,128,240,32,96,2,70,86, - 64,32,240,224,128,240,2,70,86,32,64,240,224,128,240,2, - 70,86,96,144,240,224,128,240,2,70,86,144,0,240,224,128, - 240,2,38,54,128,64,128,128,128,128,2,38,54,64,128,64, - 64,64,64,2,54,70,64,160,64,64,64,64,2,53,69,160, - 64,64,64,64,2,84,100,112,232,72,112,2,70,86,80,160, - 0,144,208,176,2,70,86,64,32,96,144,144,96,2,70,86, - 32,64,96,144,144,96,2,70,86,96,144,96,144,144,96,2, - 70,86,80,160,96,144,144,96,2,69,85,144,96,144,144,96, - 2,51,67,160,64,160,1,102,118,4,56,88,104,112,128,2, - 70,86,64,32,144,144,144,240,2,70,86,32,64,144,144,144, - 240,2,70,86,96,144,0,144,144,240,2,69,85,144,0,144, - 144,240,2,70,86,32,64,144,240,16,240,1,70,86,128,224, - 144,144,224,128,1,53,69,192,192,160,192,128,2,54,70,64, - 32,0,96,160,224,2,54,70,64,128,0,96,160,224,2,54, - 70,64,160,0,96,160,224,2,70,70,80,160,0,96,160,224, - 2,53,69,160,0,96,160,224,2,54,70,64,160,64,96,160, - 224,2,83,99,120,176,248,1,36,52,192,128,192,192,2,54, - 70,64,32,0,224,160,192,2,54,70,64,128,0,224,160,192, - 2,54,70,64,160,0,224,160,192,2,53,69,160,0,224,160, - 192,2,37,53,128,64,0,64,64,2,37,53,64,128,0,128, - 128,2,53,69,64,160,0,64,64,2,52,68,160,0,64,64, - 2,70,86,96,96,16,112,144,96,2,70,70,80,160,0,192, - 160,160,2,54,70,64,32,0,224,160,224,2,54,70,64,128, - 0,224,160,224,2,54,70,64,160,0,224,160,224,2,70,70, - 80,160,0,224,160,224,2,53,69,160,0,224,160,224,2,53, - 69,64,0,224,0,64,1,85,101,8,112,80,112,128,2,54, - 70,64,32,0,160,160,224,2,54,70,64,128,0,160,160,224, - 2,54,70,64,160,0,160,160,224,2,53,69,160,0,160,160, - 224,1,55,71,64,128,0,160,224,32,96,1,53,69,128,192, - 160,192,128,1,54,70,160,0,160,224,32,96}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 5 h= 6 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[664] U8G_FONT_SECTION("u8g_font_u8glib_4r") = { - 1,9,6,0,255,4,0,233,1,198,32,127,255,5,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_10[5136] U8G_FONT_SECTION("u8g_font_unifont_0_10") = { - 0,16,16,0,254,10,5,43,7,25,10,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,65,241,193,0,65,241,193,0,125,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,69,241,196,64,68,65,168,64,16, - 65,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,125,241,193, - 0,125,241,193,0,65,1,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,61,225,193,16,65,225,193,32,61,17,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,60,225,193,16,57,17,133, - 16,120,225,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,61, - 241,192,64,56,65,132,64,121,241,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,57,202,32,74,57,202,32,115,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,137,202,24,74, - 9,202,8,113,157,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,113,153,202,4,74,9,202,16,113,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,153,202,4,74,25,202,4,113, - 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,133,202, - 12,74,21,202,28,113,133,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,147,234,84,106,89,219,212,74,83,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,52,83,194,154,49,23,137, - 18,113,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,123, - 185,193,36,121,57,193,36,121,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,37,196,180,71,173,196,164,52,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,125,17,193,176,125, - 81,193,16,125,17,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,58,93,194,82,50,93,138,82,113,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,207,194,16,121,145,192,80,123, - 143,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,121,193,194, - 0,121,129,192,64,67,129,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,193,194,0,89,129,200,64,59,129,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,193,202,0,113,129,208, - 64,75,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 193,202,0,73,129,200,64,51,129,128,0,0,1,128,0,0, - 1,128,0,85,85,0,0,0,8,0,14,1,10,10,8,4, - 0,128,128,128,128,128,128,128,0,128,128,5,4,4,8,2, - 8,136,136,136,136,6,10,10,8,1,0,36,36,36,252,72, - 72,252,144,144,144,7,10,10,8,1,0,16,124,146,144,112, - 28,18,146,124,16,7,10,10,8,1,0,98,148,148,104,16, - 16,44,82,82,140,7,10,10,8,1,0,56,68,68,68,56, - 114,138,132,140,114,1,4,4,8,4,8,128,128,128,128,3, - 12,12,8,3,255,32,64,64,128,128,128,128,128,128,64,64, - 32,3,12,12,8,2,255,128,64,64,32,32,32,32,32,32, - 64,64,128,7,7,7,8,1,1,16,146,84,56,84,146,16, - 7,7,7,8,1,1,16,16,16,254,16,16,16,2,4,4, - 8,3,254,192,64,64,128,6,1,1,8,1,4,252,2,2, - 2,8,3,0,192,192,6,10,10,8,1,0,4,4,8,16, - 16,32,32,64,128,128,6,10,10,8,1,0,48,72,132,132, - 132,132,132,132,72,48,5,10,10,8,2,0,32,96,160,32, - 32,32,32,32,32,248,6,10,10,8,1,0,120,132,132,4, - 24,32,64,128,128,252,6,10,10,8,1,0,120,132,132,4, - 56,4,4,132,132,120,6,10,10,8,1,0,8,24,40,72, - 136,136,252,8,8,8,6,10,10,8,1,0,252,128,128,128, - 248,4,4,4,132,120,6,10,10,8,1,0,56,64,128,128, - 248,132,132,132,132,120,6,10,10,8,1,0,252,4,4,8, - 8,8,16,16,16,16,6,10,10,8,1,0,120,132,132,132, - 120,132,132,132,132,120,6,10,10,8,1,0,120,132,132,132, - 124,4,4,4,8,112,2,7,7,8,3,1,192,192,0,0, - 0,192,192,2,9,9,8,3,255,192,192,0,0,0,192,64, - 64,128,5,9,9,8,2,0,8,16,32,64,128,64,32,16, - 8,6,5,5,8,1,2,252,0,0,0,252,5,9,9,8, - 1,0,128,64,32,16,8,16,32,64,128,6,10,10,8,1, - 0,120,132,132,4,8,16,16,0,16,16,6,10,10,8,1, - 0,56,68,148,172,164,164,164,156,64,60,6,10,10,8,1, - 0,48,72,72,132,132,252,132,132,132,132,6,10,10,8,1, - 0,248,132,132,132,248,132,132,132,132,248,6,10,10,8,1, - 0,120,132,132,128,128,128,128,132,132,120,6,10,10,8,1, - 0,240,136,132,132,132,132,132,132,136,240,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,252,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,128,6,10,10,8,1, - 0,120,132,132,128,128,156,132,132,140,116,6,10,10,8,1, - 0,132,132,132,132,252,132,132,132,132,132,5,10,10,8,2, - 0,248,32,32,32,32,32,32,32,32,248,7,10,10,8,1, - 0,62,8,8,8,8,8,8,136,136,112,6,10,10,8,1, - 0,132,136,144,160,192,192,160,144,136,132,6,10,10,8,1, - 0,128,128,128,128,128,128,128,128,128,252,6,10,10,8,1, - 0,132,132,204,204,180,180,132,132,132,132,6,10,10,8,1, - 0,132,196,196,164,164,148,148,140,140,132,6,10,10,8,1, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,248,132,132,132,248,128,128,128,128,128,7,11,11,8,1, - 255,120,132,132,132,132,132,132,180,204,120,6,6,10,10,8, - 1,0,248,132,132,132,248,144,136,136,132,132,6,10,10,8, - 1,0,120,132,132,128,96,24,4,132,132,120,7,10,10,8, - 1,0,254,16,16,16,16,16,16,16,16,16,6,10,10,8, - 1,0,132,132,132,132,132,132,132,132,132,120,7,10,10,8, - 1,0,130,130,130,68,68,68,40,40,16,16,6,10,10,8, - 1,0,132,132,132,132,180,180,204,204,132,132,6,10,10,8, - 1,0,132,132,72,72,48,48,72,72,132,132,7,10,10,8, - 1,0,130,130,68,68,40,16,16,16,16,16,6,10,10,8, - 1,0,252,4,4,8,16,32,64,128,128,252,3,12,12,8, - 4,255,224,128,128,128,128,128,128,128,128,128,128,224,6,10, - 10,8,1,0,128,128,64,32,32,16,16,8,4,4,3,12, - 12,8,1,255,224,32,32,32,32,32,32,32,32,32,32,224, - 6,3,3,8,1,9,48,72,132,7,1,1,8,1,255,254, - 3,3,3,8,2,10,128,64,32,6,8,8,8,1,0,120, - 132,4,124,132,132,140,116,6,11,11,8,1,0,128,128,128, - 184,196,132,132,132,132,196,184,6,8,8,8,1,0,120,132, - 128,128,128,128,132,120,6,11,11,8,1,0,4,4,4,116, - 140,132,132,132,132,140,116,6,8,8,8,1,0,120,132,132, - 252,128,128,132,120,5,11,11,8,1,0,24,32,32,32,248, - 32,32,32,32,32,32,6,11,11,8,1,254,4,116,136,136, - 136,112,64,120,132,132,120,6,11,11,8,1,0,128,128,128, - 184,196,132,132,132,132,132,132,5,11,11,8,2,0,32,32, - 0,96,32,32,32,32,32,32,248,5,13,13,8,1,254,8, - 8,0,24,8,8,8,8,8,8,8,144,96,6,10,10,8, - 1,0,128,128,136,144,160,192,160,144,136,132,5,10,10,8, - 2,0,96,32,32,32,32,32,32,32,32,248,7,8,8,8, - 1,0,236,146,146,146,146,146,146,146,6,8,8,8,1,0, - 184,196,132,132,132,132,132,132,6,8,8,8,1,0,120,132, - 132,132,132,132,132,120,6,10,10,8,1,254,184,196,132,132, - 132,132,196,184,128,128,6,10,10,8,1,254,116,140,132,132, - 132,132,140,116,4,4,6,8,8,8,1,0,184,196,132,128, - 128,128,128,128,6,8,8,8,1,0,120,132,128,96,24,4, - 132,120,5,10,10,8,1,0,32,32,248,32,32,32,32,32, - 32,24,6,8,8,8,1,0,132,132,132,132,132,132,140,116, - 6,8,8,8,1,0,132,132,132,72,72,72,48,48,7,8, - 8,8,1,0,130,146,146,146,146,146,146,108,6,8,8,8, - 1,0,132,132,72,48,48,72,132,132,6,10,10,8,1,254, - 132,132,132,132,132,76,52,4,4,120,6,8,8,8,1,0, - 252,4,8,16,32,64,128,252,3,12,12,8,3,255,96,128, - 128,64,64,128,128,64,64,128,128,96,1,14,14,8,4,254, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,3,12, - 12,8,2,255,192,32,32,64,64,32,32,64,64,32,32,192, - 7,3,3,8,1,8,98,146,140,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,209,202,16,75,209,202, - 16,115,223,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,113, - 157,202,82,115,211,194,82,66,93,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,73,157,202,82,122,93,202,80,73,145,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,147,202,82,115, - 159,202,18,114,19,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,75,147,234,82,91,159,202,82,75,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,116,185,166,164,37,165,164,164,116, - 185,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,209,234, - 16,91,209,202,16,75,223,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,205,194,18,49,159,136,82,115,147,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,205,194,18,121,159,192, - 82,123,147,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 157,201,32,121,25,201,4,73,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,75,185,201,8,121,9,201,8,73,49,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,69,205,196,144,68, - 137,168,132,16,153,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,114,29,202,18,114,19,194,18,67,221,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,114,19,202,18,114,19,194,18,67, - 205,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,14,33,137, - 32,14,33,138,32,9,33,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,221,194,2,49,141,136,80,115,159,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,2,49,141,136, - 66,115,157,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,113, - 207,202,16,74,13,202,2,113,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,69,202,76,114,69,194,68,65,143,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,114,93,202,66,114, - 77,194,80,65,159,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,157,193,32,49,25,137,4,113,57,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,211,194,18,66,31,194,18,57, - 211,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,69,17,237, - 16,85,81,197,176,69,17,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,59,141,194,82,51,159,138,18,114,19,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,123,141,194,82,123,159,194, - 18,122,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 143,194,80,50,77,138,66,113,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,155,196,34,37,163,148,162,99,155,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,57,221,194,8,50, - 9,138,8,113,221,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,8,65,137,192,72,59,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,14,249,144,32,12,33,130,32,28, - 33,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,49,207,202, - 16,73,145,200,80,51,143,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,33,203,96,114,161,194,32,66,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,51,143,202,80,123,145,202, - 16,74,15,128,0,0,1,128,0,0,1,128,0,85,85,0, - 0,0,8,0,14,1,10,10,8,4,0,128,128,0,128,128, - 128,128,128,128,128,7,10,10,8,1,0,16,16,124,146,144, - 144,146,124,16,16,7,10,10,8,1,0,28,32,32,32,248, - 32,32,32,124,194,6,8,8,8,1,1,132,72,120,72,72, - 120,72,132,7,10,10,8,1,0,130,68,40,16,254,16,254, - 16,16,16,1,10,10,8,4,0,128,128,128,128,0,0,128, - 128,128,128,6,10,10,8,1,0,120,132,128,120,132,132,120, - 4,132,120,4,2,2,8,2,12,144,144,8,10,10,8,0, - 0,60,66,153,165,161,161,165,153,66,60,5,7,7,8,2, - 5,112,8,120,136,120,0,248,6,9,9,8,1,0,36,36, - 72,72,144,72,72,36,36,6,4,4,8,1,0,252,4,4, - 4,6,1,1,8,1,4,252,8,10,10,8,0,0,60,66, - 185,165,165,185,169,165,66,60,6,1,1,8,1,11,252,3, - 4,4,8,2,10,64,160,160,64,7,9,9,8,1,1,16, - 16,16,254,16,16,16,0,254,5,7,7,8,2,5,112,136, - 8,112,128,128,248,5,7,7,8,2,5,112,136,8,112,8, - 136,112,3,3,3,8,3,10,32,64,128,5,8,8,8,2, - 254,136,136,136,136,216,168,128,128,6,12,12,8,1,255,124, - 244,244,244,244,116,20,20,20,20,20,28,2,2,2,8,3, - 4,192,192,3,2,2,8,2,254,32,192,3,7,7,8,2, - 5,32,96,160,32,32,32,32,5,7,7,8,2,5,112,136, - 136,136,112,0,248,6,9,9,8,1,0,144,144,72,72,36, - 72,72,144,144,6,10,10,8,1,0,68,196,72,80,80,36, - 44,84,156,132,6,10,10,8,1,0,68,196,72,80,80,40, - 52,68,136,156,6,10,10,8,1,0,196,36,72,48,208,36, - 44,84,156,132,6,10,10,8,1,0,16,16,0,16,16,96, - 132,132,132,120,6,14,14,8,1,0,96,24,0,0,48,72, - 72,132,132,252,132,132,132,132,6,14,14,8,1,0,24,96, - 0,0,48,72,72,132,132,252,132,132,132,132,6,14,14,8, - 1,0,48,72,0,0,48,72,72,132,132,252,132,132,132,132, - 6,14,14,8,1,0,100,152,0,0,48,72,72,132,132,252, - 132,132,132,132,6,14,14,8,1,0,72,72,0,0,48,72, - 72,132,132,252,132,132,132,132,6,14,14,8,1,0,48,72, - 48,0,48,72,72,132,132,252,132,132,132,132,7,10,10,8, - 1,0,62,80,144,144,254,144,144,144,144,158,6,12,12,8, - 1,254,120,132,132,128,128,128,128,132,132,120,16,96,6,14, - 14,8,1,0,96,24,0,0,252,128,128,128,248,128,128,128, - 128,252,6,14,14,8,1,0,24,96,0,0,252,128,128,128, - 248,128,128,128,128,252,6,14,14,8,1,0,48,72,0,0, - 252,128,128,128,248,128,128,128,128,252,6,14,14,8,1,0, - 72,72,0,0,252,128,128,128,248,128,128,128,128,252,5,14, - 14,8,2,0,96,24,0,0,248,32,32,32,32,32,32,32, - 32,248,5,14,14,8,2,0,48,192,0,0,248,32,32,32, - 32,32,32,32,32,248,5,14,14,8,2,0,96,144,0,0, - 248,32,32,32,32,32,32,32,32,248,5,14,14,8,2,0, - 144,144,0,0,248,32,32,32,32,32,32,32,32,248,7,10, - 10,8,0,0,120,68,66,66,242,66,66,66,68,120,6,14, - 14,8,1,0,100,152,0,0,132,196,196,164,164,148,148,140, - 140,132,6,14,14,8,1,0,96,24,0,0,120,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,24,96,0,0, - 120,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 48,72,0,0,120,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,100,152,0,0,120,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,72,72,0,0,120,132,132,132, - 132,132,132,132,132,120,6,5,5,8,1,2,132,72,48,72, - 132,6,12,12,8,1,255,4,116,136,140,148,148,164,164,196, - 68,184,128,6,14,14,8,1,0,96,24,0,0,132,132,132, - 132,132,132,132,132,132,120,6,14,14,8,1,0,24,96,0, - 0,132,132,132,132,132,132,132,132,132,120,6,14,14,8,1, - 0,48,72,0,0,132,132,132,132,132,132,132,132,132,120,6, - 14,14,8,1,0,72,72,0,0,132,132,132,132,132,132,132, - 132,132,120,7,14,14,8,1,0,24,96,0,0,130,130,68, - 68,40,16,16,16,16,16,6,11,11,8,1,0,128,128,240, - 136,132,132,136,240,128,128,128,6,10,10,8,1,0,112,136, - 136,136,248,132,132,132,196,184,6,12,12,8,1,0,96,24, - 0,0,120,132,4,124,132,132,140,116,6,12,12,8,1,0, - 24,96,0,0,120,132,4,124,132,132,140,116,6,12,12,8, - 1,0,48,72,0,0,120,132,4,124,132,132,140,116,6,12, - 12,8,1,0,100,152,0,0,120,132,4,124,132,132,140,116, - 6,12,12,8,1,0,72,72,0,0,120,132,4,124,132,132, - 140,116,6,13,13,8,1,0,48,72,48,0,0,120,132,4, - 124,132,132,140,116,7,8,8,8,1,0,124,146,18,126,144, - 144,146,124,6,10,10,8,1,254,120,132,128,128,128,128,132, - 120,16,96,6,12,12,8,1,0,96,24,0,0,120,132,132, - 252,128,128,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,132,252,128,128,132,120,6,12,12,8,1,0,48,72,0, - 0,120,132,132,252,128,128,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,132,252,128,128,132,120,5,12,12,8,2, - 0,192,48,0,0,96,32,32,32,32,32,32,248,5,12,12, - 8,2,0,48,192,0,0,96,32,32,32,32,32,32,248,5, - 12,12,8,2,0,96,144,0,0,96,32,32,32,32,32,32, - 248,5,12,12,8,2,0,144,144,0,0,96,32,32,32,32, - 32,32,248,6,12,12,8,1,0,100,24,40,68,4,124,132, - 132,132,132,132,120,6,12,12,8,1,0,100,152,0,0,184, - 196,132,132,132,132,132,132,6,12,12,8,1,0,96,24,0, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,24, - 96,0,0,120,132,132,132,132,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,132,132,132,132,132,120,6,12,12, - 8,1,0,100,152,0,0,120,132,132,132,132,132,132,120,6, - 12,12,8,1,0,72,72,0,0,120,132,132,132,132,132,132, - 120,6,7,7,8,1,1,48,0,0,252,0,0,48,6,10, - 10,8,1,255,4,120,140,148,148,164,164,196,120,128,6,12, - 12,8,1,0,96,24,0,0,132,132,132,132,132,132,140,116, - 6,12,12,8,1,0,24,96,0,0,132,132,132,132,132,132, - 140,116,6,12,12,8,1,0,48,72,0,0,132,132,132,132, - 132,132,140,116,6,12,12,8,1,0,72,72,0,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,254,24,96,0,0, - 132,132,132,132,132,76,52,4,4,120,5,12,12,8,2,254, - 128,128,240,136,136,136,144,160,192,128,128,128,6,14,14,8, - 1,254,72,72,0,0,132,132,132,132,132,76,52,4,4,120 - }; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 5 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_11[3240] U8G_FONT_SECTION("u8g_font_unifont_0_11") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, - 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, - 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, - 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, - 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, - 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, - 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, - 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, - 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, - 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, - 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, - 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, - 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, - 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, - 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, - 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, - 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, - 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, - 0,0,1,128,0,0,1,128,0,85,85,6,10,10,8,1, - 254,184,196,132,132,132,132,132,132,128,128,6,10,10,8,1, - 254,116,140,132,132,132,140,116,4,132,120,4,8,8,8,3, - 0,192,64,64,64,64,64,64,112,7,12,12,8,1,254,16, - 16,148,154,146,146,146,146,178,82,16,16,7,11,11,8,1, - 0,28,34,32,32,248,32,32,32,32,32,32,6,8,8,8, - 1,0,120,132,132,132,132,132,132,120,7,12,12,8,1,254, - 112,144,144,112,28,18,18,18,146,124,16,16,7,10,10,8, - 1,0,128,128,128,136,136,136,136,136,136,118,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 2,7,7,8,3,1,192,192,0,0,0,192,192,6,2,2, - 8,1,1,196,120,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,5,4,4, - 8,2,255,32,32,112,136,6,3,3,8,1,9,48,0,204, - 4,6,6,8,2,8,48,192,48,192,48,192,2,3,3,8, - 3,10,192,0,192,4,3,3,8,2,10,176,128,176,3,3, - 3,8,3,255,128,128,96,5,5,5,8,2,9,32,112,248, - 112,32,6,4,4,8,1,9,72,164,148,72,3,3,3,8, - 0,9,192,32,32,2,3,3,8,5,255,64,128,64,4,4, - 4,8,1,254,208,208,16,224,3,3,3,8,3,10,96,128, - 128,3,3,3,8,5,9,96,128,128,5,5,5,8,3,9, - 48,64,152,160,32,8,4,4,8,0,9,66,165,66,36,3, - 4,4,8,5,9,64,160,64,128,4,3,3,8,0,8,80, - 96,128,5,3,3,8,1,254,136,112,32,3,3,3,8,2, - 255,32,32,224,2,3,3,8,3,255,64,128,64,3,3,3, - 8,2,255,32,32,192,5,4,4,8,1,254,40,200,16,96, - 4,5,5,8,2,254,96,128,96,16,96,3,3,3,8,2, - 9,192,32,32,3,4,4,8,1,9,64,160,64,32,5,4, - 4,8,2,254,136,112,32,32,2,3,3,8,2,10,64,128, - 64,3,3,3,8,3,10,32,32,224,3,3,3,8,5,255, - 128,128,96,5,4,4,8,0,9,72,168,168,144,4,4,4, - 8,2,9,96,144,144,96,2,3,3,8,3,255,192,0,192, - 5,3,3,8,2,255,168,0,72,5,3,3,8,2,255,232, - 0,8,5,3,3,8,2,255,232,64,72,2,2,2,8,3, - 0,192,192,6,2,2,8,1,0,204,204,6,3,3,8,1, - 254,204,0,48,4,1,1,8,2,0,240,5,3,3,8,2, - 254,248,32,32,2,2,2,8,2,10,192,192,2,2,2,8, - 1,10,192,192,5,3,3,8,2,255,128,32,8,2,1,1, - 8,3,5,192,1,3,3,8,4,255,128,128,128,6,2,2, - 8,1,10,124,248,4,1,1,8,2,10,240,1,9,9,8, - 4,0,128,128,128,128,128,128,128,128,128,2,2,2,8,5, - 10,192,192,2,2,2,8,1,10,192,192,3,8,8,8,3, - 0,64,224,64,0,0,64,224,64,2,2,2,8,3,10,192, - 192,2,2,2,8,3,10,192,192,4,9,9,8,2,0,224, - 128,128,128,128,128,128,128,240,5,4,4,8,2,254,248,32, - 32,32,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,9,9,8,1,0,132,132,68,36,88,144,136,132, - 132,7,9,9,8,1,0,248,8,8,8,8,8,8,8,254, - 6,9,9,8,1,0,96,16,16,16,8,24,40,68,132,6, - 9,9,8,1,0,252,8,8,8,8,8,8,8,8,6,9, - 9,8,1,0,252,4,4,68,68,68,68,68,68,3,9,9, - 8,2,0,224,32,32,32,32,32,32,32,32,5,9,9,8, - 2,0,192,48,40,32,32,32,32,32,32,6,9,9,8,1, - 0,252,68,68,68,68,68,68,68,68,6,9,9,8,1,0, - 140,148,132,132,132,132,132,132,252,3,4,4,8,2,5,224, - 32,32,32,6,11,11,8,1,254,252,4,4,4,4,4,4, - 4,4,4,4,6,9,9,8,1,0,252,4,4,4,4,4, - 4,4,248,5,11,11,8,2,0,128,128,248,8,8,8,8, - 16,16,32,192,7,9,9,8,0,0,254,34,34,34,34,34, - 34,34,62,7,9,9,8,1,0,156,98,66,130,130,130,130, - 130,142,3,11,11,8,2,254,224,32,32,32,32,32,32,32, - 32,32,32,4,9,9,8,2,0,112,16,16,16,16,16,16, - 16,240,6,9,9,8,1,0,252,132,132,132,132,132,132,136, - 240,7,9,9,8,0,0,18,18,18,18,18,18,18,18,254, - 6,11,11,8,1,254,252,132,132,132,228,4,4,4,4,4, - 4,6,9,9,8,1,0,252,132,132,132,228,4,4,4,252, - 5,11,11,8,2,254,136,136,144,160,192,128,128,128,128,128, - 128,6,9,9,8,1,0,132,132,72,48,16,8,4,4,252, - 6,11,11,8,1,254,252,68,68,72,72,80,64,64,64,64, - 64,6,9,9,8,1,0,252,4,4,4,4,4,4,4,4, - 7,9,9,8,1,0,146,146,146,146,146,146,146,146,254,6, - 9,9,8,1,0,124,68,68,68,68,68,68,68,196,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,7,9,9,8,1,0,238,34,34,34,34,34,34,34, - 34,7,9,9,8,1,0,238,34,34,34,2,2,2,2,2, - 7,4,4,8,1,5,238,34,34,34,3,3,3,8,4,9, - 32,64,128,6,3,3,8,1,9,36,72,144,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4249] U8G_FONT_SECTION("u8g_font_unifont_0_8") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,6,13,13, - 8,1,0,96,24,0,252,128,128,128,248,128,128,128,128,252, - 6,14,14,8,1,0,72,72,0,0,252,128,128,128,248,128, - 128,128,128,252,7,10,10,8,1,0,252,32,32,32,60,34, - 34,34,34,44,6,14,14,8,1,0,24,96,0,0,252,128, - 128,128,128,128,128,128,128,128,6,10,10,8,1,0,56,68, - 128,128,248,128,128,128,68,56,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,5,10,10,8,2,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,8,2,0,144,144, - 0,0,248,32,32,32,32,32,32,32,32,248,6,10,10,8, - 1,0,28,8,8,8,8,8,8,136,136,112,8,10,10,8, - 0,0,120,72,72,72,78,73,73,73,73,142,7,10,10,8, - 1,0,144,144,144,144,252,146,146,146,146,156,7,10,10,8, - 1,0,252,32,32,32,60,34,34,34,34,34,6,14,14,8, - 1,0,24,96,0,0,128,140,144,160,192,192,160,144,136,132, - 6,13,13,8,1,0,96,24,0,132,140,140,148,148,164,164, - 196,196,132,7,14,14,8,1,0,132,132,120,0,130,130,68, - 68,40,40,16,16,32,96,7,12,12,8,1,254,130,130,130, - 130,130,130,130,130,130,254,16,16,6,10,10,8,1,0,48, - 72,72,132,132,252,132,132,132,132,6,10,10,8,1,0,248, - 128,128,128,248,132,132,132,132,248,6,10,10,8,1,0,248, - 132,132,132,248,132,132,132,132,248,6,10,10,8,1,0,252, - 128,128,128,128,128,128,128,128,128,8,12,12,8,0,254,14, - 18,18,18,34,34,34,66,66,255,129,129,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,146,146,84,84,56,56,84,84,146,146,6,10,10,8,1, - 0,120,132,4,4,120,8,4,4,132,120,6,10,10,8,1, - 0,132,140,140,148,148,164,164,196,196,132,6,13,13,8,1, - 0,72,48,0,132,140,140,148,148,164,164,196,196,132,6,10, - 10,8,1,0,140,144,144,160,160,192,160,144,136,132,6,10, - 10,8,1,0,60,36,36,36,36,36,36,68,68,132,6,10, - 10,8,1,0,132,132,204,204,180,180,132,132,132,132,6,10, - 10,8,1,0,132,132,132,132,252,132,132,132,132,132,6,10, - 10,8,1,0,120,132,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,252,132,132,132,132,132,132,132,132,132,6,10, - 10,8,1,0,248,132,132,132,248,128,128,128,128,128,6,10, - 10,8,1,0,120,132,132,128,128,128,128,132,132,120,7,10, - 10,8,1,0,254,16,16,16,16,16,16,16,16,16,7,10, - 10,8,1,0,130,130,68,68,40,40,16,16,32,96,7,11, - 11,8,1,0,16,124,146,146,146,146,146,124,16,16,16,6, - 10,10,8,1,0,132,132,72,72,48,48,72,72,132,132,7, - 12,12,8,1,254,132,132,132,132,132,132,132,132,132,254,2, - 2,6,10,10,8,1,0,132,132,132,132,132,252,4,4,4, - 4,7,10,10,8,1,0,146,146,146,146,146,146,146,146,146, - 254,8,12,12,8,0,254,146,146,146,146,146,146,146,146,146, - 255,1,1,7,10,10,8,1,0,224,32,32,32,60,34,34, - 34,34,60,6,10,10,8,1,0,132,132,132,132,228,148,148, - 148,148,228,6,10,10,8,1,0,128,128,128,128,248,132,132, - 132,132,248,6,10,10,8,1,0,112,136,4,4,124,4,4, - 4,136,112,6,10,10,8,1,0,152,164,164,164,228,164,164, - 164,164,152,6,10,10,8,1,0,124,132,132,132,124,36,68, - 68,132,132,6,8,8,8,1,0,120,132,4,124,132,132,140, - 116,6,12,12,8,1,0,4,56,64,128,248,132,132,132,132, - 132,132,120,6,8,8,8,1,0,248,132,132,248,132,132,132, - 248,6,8,8,8,1,0,252,128,128,128,128,128,128,128,7, - 9,9,8,1,255,60,36,68,68,132,132,132,254,130,6,8, - 8,8,1,0,120,132,132,252,128,128,132,120,7,8,8,8, - 1,0,146,146,84,56,56,84,146,146,6,8,8,8,1,0, - 120,132,4,120,8,4,132,120,6,8,8,8,1,0,140,140, - 148,148,164,164,196,196,6,12,12,8,1,0,72,48,0,0, - 140,140,148,148,164,164,196,196,6,8,8,8,1,0,140,144, - 160,192,160,144,136,132,6,8,8,8,1,0,60,36,36,36, - 36,68,68,132,6,8,8,8,1,0,132,204,204,180,180,132, - 132,132,6,8,8,8,1,0,132,132,132,252,132,132,132,132, - 6,8,8,8,1,0,120,132,132,132,132,132,132,120,6,8, - 8,8,1,0,252,132,132,132,132,132,132,132,6,10,10,8, - 1,254,184,196,132,132,132,132,196,184,128,128,6,8,8,8, - 1,0,120,132,128,128,128,128,132,120,7,8,8,8,1,0, - 254,16,16,16,16,16,16,16,6,10,10,8,1,254,132,132, - 72,72,48,48,32,32,64,192,7,13,13,8,1,254,16,16, - 16,124,146,146,146,146,146,146,124,16,16,6,8,8,8,1, - 0,132,132,72,48,48,72,132,132,7,10,10,8,1,254,132, - 132,132,132,132,132,132,254,2,2,6,8,8,8,1,0,132, - 132,132,132,252,4,4,4,7,8,8,8,1,0,146,146,146, - 146,146,146,146,254,8,10,10,8,0,254,146,146,146,146,146, - 146,146,255,1,1,7,8,8,8,1,0,224,32,32,60,34, - 34,34,60,6,8,8,8,1,0,132,132,132,228,148,148,148, - 228,6,8,8,8,1,0,128,128,128,248,132,132,132,248,6, - 8,8,8,1,0,112,136,4,124,4,4,136,112,6,8,8, - 8,1,0,152,164,164,228,164,164,164,152,6,8,8,8,1, - 0,124,132,132,132,124,36,68,132,6,12,12,8,1,0,96, - 24,0,0,120,132,132,252,128,128,132,120,6,12,12,8,1, - 0,72,72,0,0,120,132,132,252,128,128,132,120,7,13,13, - 8,0,254,64,240,64,92,98,66,66,66,66,66,66,2,12, - 6,12,12,8,1,0,24,96,0,0,252,128,128,128,128,128, - 128,128,6,8,8,8,1,0,56,68,128,248,128,128,68,56, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,11, - 11,8,2,0,32,32,0,96,32,32,32,32,32,32,248,5, - 11,11,8,2,0,144,144,0,96,32,32,32,32,32,32,248, - 5,13,13,8,1,254,8,8,0,24,8,8,8,8,8,8, - 8,144,96,8,8,8,8,0,0,120,72,72,78,73,73,73, - 142,7,8,8,8,1,0,144,144,144,252,146,146,146,156,7, - 11,11,8,0,0,64,240,64,92,98,66,66,66,66,66,66, - 6,12,12,8,1,0,24,96,0,0,140,144,160,192,160,144, - 136,132,6,12,12,8,1,0,96,24,0,0,140,140,148,148, - 164,164,196,196,6,15,15,8,1,254,132,132,120,0,0,132, - 132,72,72,48,48,32,32,64,192,5,10,10,8,2,254,136, - 136,136,136,136,136,136,248,32,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 7 - Calculated Max Values w=16 h=16 x= 9 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 2 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[3987] U8G_FONT_SECTION("u8g_font_unifont_12_13") = { - 0,16,16,0,254,8,4,155,6,11,0,255,2,14,254,13, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,85,85,128, - 0,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 4,42,13,170,12,53,245,128,0,0,1,170,170,16,16,32, - 16,0,254,85,85,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,0,1,142,0,14,25,135,224,0,1,128,0,0, - 1,170,170,16,16,32,16,0,254,85,85,128,0,0,1,128, - 0,0,1,128,0,0,25,128,36,0,69,129,68,1,73,158, - 240,0,1,128,0,0,1,170,170,16,16,32,16,0,254,85, - 85,128,0,0,1,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,1,149,130,124,2,1,191,0,0,1,170,170,16, - 16,32,16,0,254,85,85,128,0,0,1,136,4,22,25,161, - 224,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 0,0,1,170,170,12,14,28,16,1,255,1,80,225,80,33, - 160,17,0,17,0,9,0,8,0,4,224,4,128,2,128,3, - 0,3,0,2,0,2,0,11,15,30,16,1,255,0,64,0, - 128,225,0,33,64,16,128,17,32,8,192,8,0,4,224,4, - 128,2,128,3,0,3,0,2,0,2,0,12,7,14,16,2, - 3,1,144,58,96,202,192,17,64,16,64,32,128,31,0,5, - 10,10,8,1,1,8,8,80,16,32,32,64,64,136,160,7, - 10,10,8,1,1,8,8,80,16,32,32,64,66,136,160,10, - 10,20,16,3,2,48,0,48,0,6,0,9,0,7,0,1, - 0,14,0,240,128,0,64,0,64,2,4,4,8,3,3,64, - 128,192,192,5,4,4,8,1,2,24,48,64,128,12,4,8, - 16,3,1,112,0,136,0,136,48,127,192,7,11,11,16,2, - 0,24,32,32,24,32,76,82,98,36,88,128,6,4,4,8, - 2,9,24,36,228,88,9,6,12,16,4,7,3,0,4,0, - 39,128,56,0,64,0,128,0,10,5,10,16,3,8,252,64, - 16,64,32,128,71,0,64,0,11,4,8,16,2,9,24,32, - 36,32,228,64,89,128,10,4,8,16,3,8,0,64,254,64, - 1,64,0,128,7,4,4,16,4,9,64,92,98,252,8,6, - 6,16,3,8,40,40,40,104,128,127,3,5,5,16,6,8, - 32,0,32,32,192,4,2,2,16,6,10,48,192,5,5,5, - 16,5,8,16,40,48,96,144,4,13,13,16,6,254,240,0, - 0,0,0,0,0,0,0,0,0,48,192,2,5,5,8,3, - 2,64,128,192,0,192,16,16,32,16,0,254,170,170,0,1, - 128,0,0,1,178,34,74,55,250,42,74,35,203,162,0,1, - 128,0,0,1,128,0,0,1,128,0,85,85,14,14,28,16, - 1,255,255,252,231,156,219,124,219,28,219,108,231,156,255,252, - 255,252,247,28,231,108,247,108,247,108,227,28,255,252,3,3, - 3,16,7,0,64,0,160,7,9,9,8,1,2,124,130,128, - 64,32,16,16,0,16,6,8,8,8,1,255,24,164,144,136, - 112,32,80,32,4,5,5,8,2,2,112,128,240,64,128,7, - 10,10,8,1,3,2,124,128,16,16,16,16,16,16,16,3, - 11,11,8,2,3,96,128,96,128,32,32,32,32,32,32,32, - 6,13,13,8,1,255,24,32,24,32,0,24,36,36,60,4, - 8,144,96,3,12,12,8,3,254,64,64,64,64,64,64,64, - 0,96,128,96,128,6,11,11,8,1,255,48,64,48,64,0, - 140,144,144,140,132,120,1,8,8,8,4,3,128,128,128,128, - 128,128,128,128,6,7,7,8,1,0,8,68,132,120,0,0, - 16,5,8,8,8,2,3,144,0,0,96,144,136,136,112,6, - 7,7,8,1,3,40,0,0,8,68,132,120,6,9,9,8, - 1,3,32,0,80,0,0,8,68,132,120,6,8,8,8,1, - 254,252,32,64,128,144,128,68,56,6,8,8,8,1,254,252, - 32,64,128,128,128,68,56,6,11,11,8,1,254,32,0,0, - 252,32,64,128,128,128,68,56,6,5,5,8,1,3,16,8, - 4,132,248,6,7,7,8,1,3,64,0,16,8,4,132,248, - 6,7,7,8,1,255,8,4,4,4,8,144,96,6,10,10, - 8,1,255,32,0,0,8,4,4,4,8,144,96,7,7,7, - 8,1,255,2,42,42,188,144,144,96,7,12,12,8,1,255, - 16,0,36,0,0,2,42,42,188,144,144,96,7,6,6,8, - 1,0,12,50,156,144,144,96,7,9,9,8,1,0,8,0, - 0,12,50,156,144,144,96,6,8,8,8,1,3,64,64,64, - 64,88,100,68,248,6,8,8,8,1,3,64,72,64,64,88, - 100,68,248,6,9,9,8,1,254,48,72,64,56,64,128,128, - 132,120,6,12,12,8,1,254,16,0,0,48,72,64,56,64, - 128,128,132,120,7,9,9,8,0,3,80,4,8,16,32,64, - 60,130,126,7,12,12,8,0,255,4,8,16,32,64,60,130, - 126,0,40,0,16,6,10,10,8,1,255,64,160,160,8,148, - 144,136,132,132,120,6,9,9,8,1,255,160,0,8,148,144, - 136,132,132,120,6,10,10,8,1,255,64,0,160,8,148,144, - 136,132,132,120,8,1,1,8,0,3,255,6,8,8,8,1, - 3,16,0,12,20,12,132,132,120,6,10,10,8,1,0,72, - 0,0,56,36,20,76,132,136,112,6,8,8,8,1,3,4, - 20,36,20,68,132,132,120,6,11,11,8,1,0,4,4,4, - 4,4,4,68,132,132,136,120,5,8,8,8,2,254,112,24, - 120,128,128,128,128,128,6,9,9,8,1,0,32,0,0,8, - 68,132,132,136,112,10,9,18,16,1,1,4,0,3,0,6, - 128,10,64,10,64,6,64,25,128,96,0,128,0,6,8,8, - 8,1,255,24,36,36,60,4,8,144,96,6,7,7,8,1, - 255,8,148,144,136,132,132,120,6,8,8,8,1,254,8,148, - 144,136,132,120,0,80,4,4,4,8,2,9,48,192,48,192, - 5,5,5,8,2,8,24,24,200,80,224,4,4,4,8,2, - 0,32,192,48,192,4,2,2,8,2,9,48,192,4,6,6, - 8,2,6,64,160,160,112,64,128,4,2,2,8,2,254,48, - 192,5,4,4,8,1,7,8,40,176,192,4,4,4,8,2, - 7,96,144,144,96,7,3,3,8,1,9,2,124,128,3,4, - 4,8,2,10,96,128,96,128,3,4,4,8,2,254,96,128, - 96,128,2,3,3,16,9,254,128,64,64,5,5,5,16,5, - 9,8,16,32,224,96,4,3,3,16,6,9,144,144,96,4, - 1,1,16,6,10,240,5,4,4,16,5,9,136,80,32,32, - 5,4,4,16,5,9,32,32,80,136,2,2,2,16,7,0, - 192,192,5,5,5,16,5,9,96,224,32,16,8,4,4,4, - 16,6,9,144,96,96,144,4,5,5,8,2,254,112,128,240, - 64,128,3,3,3,8,2,5,64,224,64,4,9,9,8,2, - 2,128,128,64,64,32,32,16,16,16,5,9,9,8,2,2, - 136,144,96,64,32,32,16,16,16,7,9,9,8,1,2,146, - 164,120,64,32,32,16,16,16,6,9,9,8,1,2,8,16, - 32,64,48,64,128,132,120,6,9,9,8,1,2,48,72,72, - 132,132,132,132,72,48,7,9,9,8,1,2,128,120,8,8, - 4,4,4,2,2,7,9,9,8,1,2,130,130,68,68,40, - 40,16,16,16,7,9,9,8,1,2,16,16,16,40,40,68, - 68,130,130,7,9,9,8,1,2,48,72,136,152,104,4,4, - 2,2,5,10,10,8,1,2,8,8,144,144,32,32,72,72, - 128,128,4,4,4,8,2,1,16,16,16,224,2,4,4,8, - 3,7,192,192,64,128,7,6,6,8,1,3,16,16,254,56, - 108,68,6,4,4,8,1,3,8,68,132,120,6,7,7,8, - 1,0,56,36,20,76,132,136,112,1,4,4,8,4,7,128, - 128,128,128,5,11,11,8,2,3,16,40,120,128,32,32,32, - 32,32,32,32,6,11,11,8,1,3,12,16,76,176,0,16, - 16,16,16,16,16,6,12,12,8,1,254,16,16,16,16,16, - 16,16,0,12,16,76,176,3,4,4,8,2,10,96,128,96, - 128,5,11,11,8,2,3,24,32,24,32,128,128,128,128,128, - 128,128,7,13,13,8,1,255,6,8,6,8,0,24,36,36, - 60,4,8,144,96,7,13,13,8,1,255,102,104,38,72,128, - 24,36,36,60,4,8,144,96,7,11,11,8,1,255,6,8, - 6,8,0,140,144,144,140,132,120,6,9,9,8,1,3,64, - 64,112,112,0,8,68,132,120,6,9,9,8,1,3,32,0, - 32,0,0,8,68,132,120,6,8,8,8,1,255,8,68,132, - 120,0,16,0,16,6,10,10,8,1,0,40,0,0,8,68, - 132,120,16,40,16,6,9,9,8,1,3,80,0,32,0,0, - 8,68,132,120,6,8,8,8,1,255,8,68,132,120,0,40, - 0,16,6,9,9,8,1,3,80,0,80,0,0,8,68,132, - 120,6,8,8,8,1,255,8,68,132,120,0,40,0,40,6, - 13,13,8,1,254,48,64,48,64,0,252,32,64,128,128,128, - 68,56,6,13,13,8,1,254,32,0,32,0,0,252,32,64, - 128,128,128,68,56,6,8,8,8,1,254,252,32,64,128,168, - 128,68,56,6,8,8,8,1,254,252,32,64,144,128,144,68, - 56,6,13,13,8,1,254,32,0,72,0,0,252,32,64,128, - 128,128,68,56,6,8,8,8,1,254,252,64,128,168,128,144, - 68,56,6,8,8,8,1,254,252,64,128,168,128,168,68,56, - 6,10,10,8,1,3,64,64,112,112,0,16,8,4,132,248, - 6,8,8,8,1,0,16,8,4,132,248,16,40,16,6,7, - 7,8,1,1,16,8,4,132,248,0,16,6,12,12,8,1, - 1,64,64,112,112,0,16,8,4,132,248,0,16,6,8,8, - 8,1,3,80,0,0,16,8,4,132,248,6,7,7,8,1, - 1,16,8,4,132,248,0,80,6,9,9,8,1,3,32,0, - 80,0,16,8,4,132,248,6,9,9,8,1,3,80,0,32, - 0,16,8,4,132,248,6,9,9,8,1,3,80,0,80,0, - 16,8,4,132,248,6,13,13,8,1,255,16,16,28,28,0, - 0,8,4,4,4,8,144,96,7,13,13,8,1,255,34,20, - 8,8,0,0,8,4,4,4,8,144,96,6,8,8,8,1, - 254,8,4,4,4,8,152,116,8,6,7,7,8,1,255,8, - 4,4,4,8,144,100,7,8,8,8,1,254,16,8,8,8, - 16,144,106,4,6,7,7,8,1,255,8,4,4,36,8,144, - 100,6,10,10,8,1,255,36,0,0,8,4,4,4,8,144, - 96,6,12,12,8,1,255,16,0,40,0,0,8,4,4,4, - 8,144,96,6,12,12,8,1,255,36,0,36,0,0,8,4, - 4,4,8,144,96,7,10,10,8,1,0,8,0,0,2,42, - 42,188,144,148,96,7,8,8,8,1,255,2,42,42,188,160, - 170,64,4,7,13,13,8,1,255,16,0,36,0,0,2,42, - 42,188,160,170,64,4,7,6,6,8,1,0,12,50,156,160, - 170,64,7,11,11,8,1,0,16,0,36,0,0,12,50,156, - 144,144,96,6,8,8,8,1,3,72,64,84,64,88,100,68, - 248,6,14,14,8,1,254,32,0,72,0,0,48,72,64,56, - 64,128,128,132,120,6,6,6,8,1,3,12,20,12,132,132, - 120,6,8,8,8,1,1,12,20,12,132,132,120,0,16,6, - 11,11,8,1,1,8,0,0,12,20,12,132,132,120,0,16, - 6,10,10,8,1,3,16,0,36,0,12,20,12,132,132,120, - 6,10,10,8,1,255,12,20,12,132,132,120,0,72,0,32, - 6,10,10,8,1,3,20,0,20,0,12,20,12,132,132,120, - 6,10,10,8,1,0,8,0,0,56,36,20,76,132,136,112, - 6,12,12,8,1,0,32,0,72,0,0,56,36,20,76,132, - 136,112,7,8,8,8,0,3,4,8,16,32,64,60,130,126, - 14,8,16,16,1,3,0,48,0,192,3,0,12,0,16,0, - 15,248,128,4,127,248,7,8,8,8,0,3,4,12,26,36, - 64,60,130,126,6,10,10,8,1,3,16,0,4,20,36,20, - 68,132,132,120,6,11,11,8,1,3,32,0,80,4,20,36, - 20,68,132,132,120,6,12,12,8,1,255,4,20,36,20,68, - 132,132,120,0,40,0,16,7,10,10,8,0,3,8,16,36, - 72,16,32,64,60,130,126,7,10,10,8,0,3,8,16,36, - 76,26,36,64,60,130,126,7,10,10,8,0,3,80,6,24, - 98,12,48,64,60,130,126,7,12,12,8,0,1,8,16,36, - 72,16,32,64,60,130,126,0,40,7,14,14,8,0,255,8, - 16,36,72,16,32,64,60,130,126,0,16,0,16,7,11,11, - 8,0,3,64,0,166,24,98,12,48,64,60,130,126,7,14, - 14,8,1,0,34,20,8,8,0,4,4,4,4,68,132,132, - 136,120,6,13,13,8,1,0,4,0,4,4,4,4,4,4, - 68,132,132,136,120,7,14,14,8,1,0,8,0,18,0,4, - 4,4,4,4,68,132,132,136,120,6,13,13,8,1,254,4, - 4,4,4,4,4,68,132,120,0,40,0,16,6,11,11,8, - 1,254,16,0,0,8,68,132,132,136,112,0,16,6,6,6, - 8,1,0,8,68,132,132,136,112,6,12,12,8,1,0,32, - 32,56,56,0,0,8,68,132,132,136,112,6,11,11,8,1, - 254,16,0,0,8,68,132,132,136,120,20,8,6,11,11,8, - 1,0,32,0,72,0,0,8,68,132,132,136,112,6,6,6, - 8,1,2,32,88,84,52,72,128,6,11,11,8,1,254,32, - 0,0,252,64,128,168,128,144,68,56,4,10,10,8,2,3, - 96,128,96,128,0,64,96,144,144,240,6,3,3,8,1,2, - 32,92,128,6,8,8,8,1,2,48,64,48,64,0,32,92, - 128,6,6,6,8,1,2,80,0,0,32,92,128,6,8,8, - 8,1,255,24,36,36,28,68,164,72,240,6,8,8,8,1, - 255,24,36,36,60,4,56,144,96,6,13,13,8,1,255,68, - 40,16,16,0,24,36,36,60,4,8,144,96,6,14,14,8, - 1,255,32,80,80,56,32,64,152,36,36,60,4,8,144,96, - 6,12,12,8,1,255,16,8,8,0,24,36,36,60,4,8, - 144,96,6,12,12,8,1,255,16,40,68,0,24,36,36,60, - 4,8,144,96,6,11,11,8,1,255,40,0,0,24,36,36, - 60,4,8,144,96,6,13,13,8,1,255,16,0,36,0,0, - 24,36,36,60,4,8,144,96,6,7,7,8,1,255,8,148, - 144,136,132,132,120,7,7,7,8,0,255,4,42,104,164,34, - 34,28,6,12,12,8,1,255,136,80,32,32,0,8,148,144, - 136,132,132,120,6,11,11,8,1,255,16,0,0,24,36,36, - 60,4,8,144,96,6,9,9,8,1,254,24,164,144,136,112, - 0,32,0,32,6,9,9,8,1,254,24,164,144,136,112,0, - 80,0,32,7,6,6,8,1,255,16,40,32,64,128,254,7, - 10,10,8,1,255,96,128,96,128,16,40,32,64,128,254,4, - 1,1,8,2,3,240,4,5,5,8,2,3,64,96,144,144, - 240,11,5,10,16,3,9,16,64,18,224,127,224,128,0,254, - 0,10,5,10,16,3,9,18,64,17,0,127,0,128,0,254, - 0,6,4,4,16,5,9,8,20,60,192,5,5,5,16,4, - 9,136,72,48,16,48,8,5,5,16,3,9,252,32,72,33, - 30,3,3,3,8,4,8,160,0,128,9,4,8,16,4,9, - 18,128,159,128,144,0,96,0,16,16,32,16,0,254,85,85, - 128,0,1,193,134,48,11,233,140,24,16,5,144,4,16,5, - 140,24,11,233,134,48,1,193,128,0,0,1,170,170,15,15, - 30,16,1,254,1,0,2,128,63,248,40,40,48,24,35,136, - 100,76,164,74,100,76,35,136,48,24,40,40,63,248,2,128, - 1,0,3,4,4,16,6,9,96,160,160,96,4,5,5,16, - 6,9,96,144,144,144,96,6,3,3,16,5,10,252,8,96, - 3,5,5,16,6,9,96,224,128,128,64,9,4,8,16,4, - 254,18,128,159,128,144,0,96,0,6,2,2,16,5,10,12, - 240,5,4,4,8,2,9,24,24,16,224,7,4,4,8,1, - 9,32,64,128,254,7,4,4,16,3,9,32,64,128,254,6, - 4,4,16,5,9,16,132,132,124,15,15,30,16,1,254,1, - 0,2,128,5,64,10,160,21,80,42,168,84,84,42,168,42, - 168,42,168,43,168,40,40,47,232,96,12,255,254,5,5,5, - 16,5,9,32,80,136,80,32,5,5,5,16,5,254,32,80, - 136,80,32,2,2,2,16,7,11,192,192,2,4,4,16,7, - 254,192,128,128,64,6,9,9,8,1,3,16,40,68,0,16, - 8,4,132,248,7,11,11,8,1,255,8,20,34,0,8,4, - 4,4,8,144,96,3,3,3,8,2,5,64,224,64,4,9, - 9,8,2,2,128,128,64,64,32,32,16,16,16,5,9,9, - 8,2,2,136,144,96,64,32,32,16,16,16,7,9,9,8, - 1,2,146,164,120,64,32,32,16,16,16,6,9,9,8,1, - 2,48,72,192,228,88,64,32,32,32,7,9,9,8,1,1, - 16,16,40,40,68,68,146,170,198,6,8,8,8,1,2,56, - 68,64,64,48,12,48,192,7,9,9,8,1,2,130,130,68, - 68,40,40,16,16,16,7,9,9,8,1,2,16,16,16,40, - 40,68,68,130,130,7,9,9,8,1,2,48,72,136,152,104, - 4,4,2,2,7,12,12,8,1,0,16,0,36,0,0,2, - 42,42,188,144,148,96,7,9,9,8,1,0,8,0,0,12, - 50,156,144,148,96,6,12,12,8,1,254,16,0,0,48,72, - 64,56,64,144,128,132,120,4,10,10,8,2,254,112,128,240, - 64,128,0,80,80,80,80,6,8,8,8,1,254,56,12,124, - 128,148,148,148,148,10,12,24,16,1,1,4,0,10,0,17, - 0,4,0,3,0,6,128,10,64,10,64,6,64,25,128,96, - 0,128,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 12 - Calculated Max Values w=16 h=16 x=12 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent=-2 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[7078] U8G_FONT_SECTION("u8g_font_unifont_18_19") = { - 0,16,16,0,254,3,7,121,9,233,0,255,254,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,8,4,4,16,4,9,152,91,35, - 28,2,2,2,16,7,11,192,192,2,5,5,16,12,3,192, - 192,0,192,192,14,15,30,16,2,255,32,0,31,0,0,128, - 57,252,68,192,4,192,12,192,56,192,8,192,135,192,134,192, - 78,192,60,192,0,192,0,64,15,12,24,16,1,255,57,254, - 68,192,4,192,12,192,56,192,8,192,135,192,134,192,78,192, - 60,192,0,192,0,64,15,12,24,16,1,255,57,254,68,204, - 4,204,12,204,56,204,8,204,135,204,134,204,78,204,60,204, - 0,204,0,68,16,13,26,16,0,254,255,255,0,192,0,192, - 15,192,24,0,24,0,15,224,0,48,3,48,5,176,7,224, - 0,64,0,32,16,16,32,16,0,254,3,192,6,32,1,0, - 255,255,0,192,0,192,15,192,24,0,24,0,15,224,0,48, - 3,48,5,176,7,224,0,64,0,32,16,12,24,16,0,255, - 255,255,1,128,0,192,0,192,1,192,15,128,65,128,64,192, - 32,192,16,192,9,192,7,128,16,12,24,16,0,255,255,255, - 1,128,0,192,0,192,1,192,15,156,65,178,64,226,32,194, - 16,198,9,196,7,128,16,13,26,16,0,254,255,255,1,128, - 57,128,101,152,3,152,7,248,31,136,57,136,33,156,1,184, - 1,160,0,160,0,30,16,12,24,16,0,255,255,255,0,32, - 0,32,56,32,116,248,99,204,99,12,48,12,16,120,12,192, - 2,128,0,124,16,16,32,16,0,254,0,152,0,112,0,0, - 255,255,12,48,12,48,12,48,12,48,12,96,4,0,2,0, - 1,128,0,96,0,16,0,24,0,24,16,16,32,16,0,254, - 16,0,15,224,0,16,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,13,26,16,0,254,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,16,32,16,0,254,15,0,0,128,0,64,255,255,12,48, - 12,48,12,48,12,48,12,96,4,0,2,0,1,128,0,96, - 0,16,0,24,0,24,15,15,30,16,1,255,0,76,0,60, - 0,0,57,254,68,204,4,204,12,204,56,204,8,204,135,204, - 134,204,78,204,60,204,0,204,0,68,15,15,30,16,1,255, - 2,0,1,240,0,8,57,254,68,204,4,204,12,204,56,204, - 8,204,135,204,134,204,78,204,60,204,0,204,0,68,15,15, - 30,16,1,255,1,192,0,32,0,16,57,254,68,204,4,204, - 12,204,56,204,8,204,135,204,134,204,78,204,60,204,0,204, - 0,68,15,15,30,16,1,255,0,224,1,208,0,40,57,254, - 68,204,4,204,12,204,56,204,8,204,135,204,134,204,78,204, - 60,204,0,204,0,68,16,12,24,16,0,255,255,255,1,128, - 1,128,29,128,51,224,35,144,39,152,29,152,1,152,1,152, - 1,128,0,128,16,12,24,16,0,255,255,255,8,24,8,24, - 9,216,59,56,58,24,18,56,17,216,8,24,6,24,1,152, - 0,8,16,12,24,16,0,255,255,255,1,152,1,152,1,152, - 1,152,7,152,3,152,1,152,0,152,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,12,24,12,24,7,216,2,24, - 4,24,4,56,4,120,3,216,0,24,0,24,0,8,16,11, - 22,16,0,0,255,255,0,96,0,96,15,224,24,0,24,4, - 15,206,0,100,16,96,8,96,7,192,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,31,248,3,24,6,56,6,120, - 3,216,0,24,0,24,0,8,16,13,26,16,0,254,255,255, - 0,16,0,16,60,120,112,228,96,196,32,68,31,44,12,24, - 24,56,24,100,7,134,0,6,16,12,24,16,0,255,255,255, - 0,24,0,24,0,24,3,248,17,152,8,216,8,216,7,152, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,3,24, - 3,24,31,24,48,24,48,24,31,248,1,24,13,24,22,24, - 29,24,0,136,16,12,24,16,0,255,255,255,0,24,0,24, - 7,24,5,152,33,184,33,248,33,216,19,152,15,24,0,24, - 0,8,16,11,22,16,0,0,255,255,0,192,0,192,0,192, - 7,192,12,0,24,0,24,0,24,0,12,16,7,224,16,12, - 24,16,0,255,255,255,1,128,1,128,1,128,3,128,7,96, - 12,16,8,24,8,24,8,56,4,112,3,224,16,11,22,16, - 0,0,255,255,0,24,0,24,3,248,6,0,6,0,3,240, - 0,24,4,24,2,24,1,240,16,12,24,16,0,255,255,255, - 0,96,0,96,7,224,12,0,24,0,24,192,25,160,9,16, - 5,16,3,48,1,224,16,12,24,16,0,255,255,255,25,152, - 25,152,25,152,25,152,25,152,9,152,7,24,0,24,0,24, - 0,24,0,8,16,12,24,16,0,255,255,255,0,24,0,24, - 0,24,7,248,14,24,12,24,12,24,6,24,2,24,1,24, - 0,136,13,12,24,16,3,255,227,248,216,192,204,192,76,192, - 28,192,120,192,97,192,35,192,30,192,0,192,0,192,0,64, - 16,12,24,16,0,255,255,255,0,24,0,24,0,24,1,248, - 2,0,6,0,6,24,2,40,1,240,0,8,0,4,13,12, - 24,16,3,255,115,248,200,192,192,192,192,192,96,192,28,192, - 48,192,96,192,97,192,99,192,30,192,0,64,16,12,24,16, - 0,255,255,255,0,24,0,24,0,24,7,248,6,24,6,24, - 2,24,0,24,0,24,0,24,0,8,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,7,248,6,24,6,24,2,24, - 0,24,1,24,3,152,1,8,16,12,24,16,0,255,255,255, - 6,24,6,24,6,24,6,24,6,24,2,56,1,216,0,24, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,49,128, - 49,128,49,128,49,240,49,200,19,132,15,132,1,132,1,140, - 1,140,0,128,16,12,24,16,0,255,255,255,0,24,0,24, - 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, - 0,8,14,12,24,16,2,255,227,252,216,96,200,96,76,96, - 60,96,12,96,31,224,28,96,12,96,0,96,0,96,0,32, - 16,12,24,16,0,255,255,255,6,24,6,24,6,24,6,24, - 6,24,15,248,6,24,2,24,0,24,0,24,0,8,16,12, - 24,16,0,255,255,255,3,24,3,24,3,24,3,24,6,24, - 4,56,4,120,3,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,0,192,0,192,0,192,3,192,3,128,3,128, - 1,0,0,128,0,64,0,32,0,24,16,12,24,16,0,255, - 255,255,0,192,0,192,0,192,3,192,3,128,3,128,1,0, - 0,128,4,64,14,32,4,24,16,12,24,16,0,255,255,255, - 0,24,0,24,28,56,58,248,49,216,49,152,24,24,8,24, - 4,24,3,24,0,8,16,11,22,16,0,0,255,255,0,48, - 0,48,0,112,14,200,25,140,49,140,49,140,49,152,19,112, - 14,0,16,13,26,16,0,254,255,255,0,48,0,48,0,112, - 14,200,25,140,49,140,49,140,49,152,19,112,14,0,0,192, - 0,192,16,12,24,16,0,255,255,255,0,24,0,24,3,216, - 15,56,12,24,12,56,4,120,3,216,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,6,24,6,24,31,24,1,152, - 1,152,25,152,21,24,30,24,2,24,1,24,0,136,16,12, - 24,16,0,255,255,255,12,24,14,24,13,24,12,152,12,88, - 12,56,6,56,1,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,3,24,3,24,3,24,11,24,15,24,14,248, - 4,24,4,24,2,24,1,24,0,136,16,12,24,16,0,255, - 255,255,0,24,0,24,7,248,12,0,12,0,6,240,1,152, - 3,16,3,0,1,128,0,252,2,4,4,16,7,10,192,192, - 192,192,6,16,16,16,10,254,48,48,48,252,48,48,48,48, - 48,48,48,48,48,48,48,16,2,2,2,16,7,255,192,192, - 9,11,22,16,7,0,63,128,64,0,64,0,96,0,48,0, - 24,0,8,0,12,0,12,0,156,0,120,0,6,13,13,16, - 10,254,252,48,48,48,48,48,48,48,48,48,48,48,16,8, - 14,14,16,0,0,60,98,49,252,48,48,48,48,48,48,48, - 48,48,16,9,16,32,16,7,254,120,0,132,0,132,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,2,0,6,3,3,16,4,255,152, - 68,56,6,3,3,16,6,255,112,136,100,4,3,3,16,6, - 255,96,128,112,3,5,5,16,6,255,96,128,96,128,96,5, - 3,3,16,5,10,136,72,48,5,3,3,16,4,10,128,112, - 8,5,3,3,16,4,10,224,16,8,6,4,4,16,3,9, - 112,8,228,28,6,16,16,16,10,254,136,120,0,252,48,48, - 48,48,48,48,48,48,48,48,48,16,8,16,16,16,8,254, - 128,120,4,63,12,12,12,12,12,12,12,12,12,12,12,4, - 8,16,16,16,8,254,240,8,4,63,12,12,12,12,12,12, - 12,12,12,12,12,4,9,16,32,16,7,254,120,0,244,0, - 10,0,31,128,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,2,0,5,3,3,16, - 6,255,224,16,8,4,13,13,16,2,254,240,192,192,192,192, - 192,192,192,192,192,192,192,128,9,15,30,16,7,255,32,0, - 30,0,129,0,125,128,3,0,31,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,1,0,14,12,24,16, - 1,1,4,192,2,216,57,24,68,224,4,0,12,56,56,76, - 8,204,135,156,134,120,78,0,60,0,1,3,3,16,8,10, - 128,128,128,4,1,1,16,6,0,240,3,3,3,16,6,10, - 128,64,32,3,3,3,16,7,10,32,64,128,5,5,5,16, - 5,8,136,72,48,0,248,6,2,2,16,3,254,132,120,8, - 4,4,16,2,254,66,60,129,126,16,13,26,16,0,254,255, - 255,0,192,0,192,14,192,25,248,17,200,19,204,14,204,0, - 204,0,204,4,192,14,64,4,0,16,13,26,16,0,254,255, - 255,8,24,8,24,9,216,59,56,58,24,18,56,17,216,8, - 24,4,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,1,152,1,152,1,152,1,152,7,152,3,152,1,152,0, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,3,248,6,0,6,0,3,240,0,24,4, - 24,3,240,0,0,0,192,0,192,16,13,26,16,0,254,255, - 255,0,96,0,96,7,224,12,0,24,224,25,144,25,16,13, - 48,7,224,0,0,1,128,1,128,16,13,26,16,0,254,255, - 255,49,128,49,128,49,128,49,240,49,200,19,132,15,132,1, - 132,1,140,9,140,28,128,8,0,16,13,26,16,0,254,255, - 255,3,24,3,24,3,24,3,24,6,24,4,56,4,120,3, - 216,0,24,1,24,3,136,1,0,16,13,26,16,0,254,255, - 255,3,0,3,0,51,24,75,40,7,240,15,24,51,8,67, - 24,3,48,3,28,1,16,0,14,16,13,26,16,0,254,255, - 255,0,32,0,32,30,112,49,152,49,152,16,48,8,96,4, - 192,0,60,0,192,0,192,0,60,8,5,5,16,4,255,72, - 146,130,68,3,8,6,6,16,4,254,72,146,132,67,4,3, - 2,12,12,16,7,255,128,192,192,192,192,192,192,192,192,192, - 192,64,5,12,12,16,6,255,144,216,216,216,216,216,216,216, - 216,216,216,72,8,7,7,16,4,2,60,78,199,195,227,114, - 60,6,13,13,16,5,254,112,232,204,204,76,60,24,48,96, - 32,16,8,4,9,13,26,16,4,254,252,0,226,0,1,0, - 1,0,1,0,3,0,54,0,44,0,56,0,4,0,2,0, - 1,0,0,128,8,13,13,16,4,254,252,226,2,2,60,2, - 1,51,46,60,4,2,1,12,12,24,16,2,255,128,16,64, - 48,32,96,16,192,9,128,7,0,6,0,13,0,9,128,9, - 128,9,128,7,0,8,13,13,16,4,254,192,195,195,67,62, - 12,12,104,88,120,4,2,1,8,13,13,16,4,254,60,192, - 128,192,124,16,32,35,51,15,4,4,2,11,11,22,16,3, - 0,128,0,135,0,142,192,140,64,68,96,67,224,64,32,32, - 32,32,64,24,192,7,0,10,10,20,16,3,1,255,192,32, - 0,64,0,128,0,128,0,131,0,135,128,124,128,56,128,0, - 128,8,12,12,16,4,255,56,100,98,97,32,56,72,192,192, - 192,32,31,5,4,4,16,6,3,112,136,136,112,2,2,2, - 16,8,6,192,192,15,15,30,16,1,255,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,192,0,64,15,15,30,16,1,255,0, - 192,0,192,0,192,57,254,68,192,4,192,12,192,56,192,8, - 192,135,192,134,192,78,192,60,192,0,192,0,64,15,15,30, - 16,1,255,0,12,0,12,0,12,57,254,68,204,4,204,12, - 204,56,204,8,204,135,204,134,204,78,204,60,204,0,204,0, - 68,15,15,30,16,1,255,0,128,0,120,2,4,57,246,68, - 12,4,124,12,204,56,204,8,204,135,204,134,204,78,204,60, - 204,0,204,0,68,15,16,32,16,1,254,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,64,33,0,30,0,15,16,32,16,1, - 254,2,0,1,32,0,192,57,254,68,192,4,192,12,192,56, - 192,8,192,135,192,78,192,60,192,33,192,30,0,64,128,63, - 0,16,12,24,16,0,255,255,255,24,0,24,0,24,0,63, - 224,56,112,0,48,0,48,0,48,0,48,0,96,0,64,16, - 12,24,16,0,255,255,255,0,24,0,24,0,24,3,248,17, - 152,8,216,8,216,7,152,0,24,8,152,2,8,16,12,24, - 16,0,255,255,255,3,24,3,24,3,24,3,152,6,88,4, - 56,4,120,3,216,0,24,0,24,0,8,16,12,24,16,0, - 255,255,255,1,152,1,152,1,152,1,152,7,152,3,152,1, - 152,0,152,0,24,0,24,15,248,16,12,24,16,0,255,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,24,31,248,8,13,13,16,4,254,124,226,193, - 1,1,3,62,60,48,48,48,48,16,16,13,26,16,0,254, - 255,255,0,24,0,24,3,248,6,0,6,0,3,240,0,24, - 4,24,2,24,1,240,0,0,15,254,16,12,24,16,0,255, - 255,255,0,24,0,24,7,216,14,120,13,24,12,152,12,120, - 7,248,0,24,0,24,15,248,11,12,24,16,2,255,30,0, - 55,0,97,128,193,128,193,128,89,128,57,128,1,128,1,128, - 1,160,1,160,0,192,6,4,4,16,5,9,48,180,132,120, - 5,8,8,16,11,0,96,144,96,0,192,96,48,8,4,7, - 7,16,11,1,96,144,96,0,96,144,96,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,231,108,219,108,231,12,219,236,231,236,255,252,16,12,24, - 16,0,255,255,255,0,12,64,12,67,140,71,204,71,236,99, - 44,32,108,48,124,24,220,15,140,0,4,16,13,26,16,0, - 255,0,6,255,247,0,110,64,102,70,102,79,102,79,102,69, - 102,65,102,97,102,51,230,30,102,0,34,16,15,30,16,0, - 255,32,0,31,192,0,32,255,255,0,0,15,192,24,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,16, - 15,30,16,0,255,32,0,31,240,0,8,255,255,30,0,63, - 12,59,30,25,56,1,248,1,240,3,144,79,16,60,16,16, - 24,0,14,16,15,30,16,0,255,16,0,15,224,0,16,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,15,30,16,0,255,16,0,15, - 224,0,16,255,255,3,0,3,0,83,0,83,16,83,56,83, - 108,73,204,40,12,36,12,18,24,15,240,15,14,28,16,1, - 255,64,0,228,0,230,206,133,204,121,204,3,204,14,204,120, - 204,96,236,120,252,14,220,3,204,1,204,0,68,14,14,28, - 16,1,255,64,0,128,0,128,0,64,0,127,192,31,240,0, - 56,15,12,24,140,56,76,56,76,56,76,16,216,3,240,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,231,28,219,108,231,108,219,108,231,28,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,231,12,219,124,231,28,219,124,231, - 12,255,252,14,13,26,16,1,255,0,48,0,248,1,140,3, - 12,135,140,135,140,131,12,128,12,192,12,64,108,96,156,51, - 12,14,4,14,15,30,16,1,255,0,8,0,16,0,16,0, - 216,3,236,6,52,140,52,158,52,158,52,140,56,192,48,65, - 176,98,112,60,48,24,16,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,231,220,219, - 156,227,220,251,220,231,140,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,231, - 12,219,236,227,12,251,124,231,12,255,252,14,13,26,16,1, - 255,0,240,3,24,6,12,14,12,142,12,134,120,192,248,64, - 120,96,12,48,12,24,12,12,24,7,240,14,15,30,16,1, - 255,0,8,0,16,0,16,7,216,8,108,28,52,28,52,156, - 52,137,228,131,248,193,224,64,48,96,48,48,112,31,224,16, - 12,24,16,0,255,255,255,0,96,0,96,1,248,7,100,60, - 98,48,98,60,110,7,108,1,224,0,224,0,32,14,13,26, - 16,2,255,64,0,226,60,227,48,197,48,121,48,1,48,6, - 48,120,48,126,48,1,176,0,112,0,48,0,16,14,12,24, - 16,2,255,62,124,113,96,224,224,224,96,252,96,70,96,6, - 96,6,96,28,96,120,96,32,96,0,32,16,12,24,16,0, - 255,255,255,24,24,48,24,56,24,31,152,1,152,6,24,12, - 24,31,24,1,216,0,56,0,8,12,13,26,16,2,255,32, - 0,35,192,22,64,12,64,15,128,140,0,136,32,136,112,199, - 176,64,48,96,48,48,96,31,128,16,12,24,16,0,255,255, - 255,24,0,24,0,28,0,27,0,24,252,24,12,24,12,24, - 12,24,24,28,48,15,192,16,12,24,16,0,255,255,255,24, - 0,24,0,28,0,27,224,24,56,24,104,28,200,15,16,0, - 96,1,248,0,14,16,12,24,16,0,255,255,255,1,240,3, - 28,70,15,76,2,76,196,79,36,102,44,32,44,48,100,24, - 196,15,131,16,12,24,16,0,255,255,231,0,102,0,102,1, - 230,7,102,60,102,48,102,60,102,7,126,1,238,0,230,0, - 34,14,13,26,16,1,255,7,0,13,128,25,176,49,248,57, - 204,185,140,145,184,129,140,193,204,199,248,111,176,121,128,48, - 128,16,15,30,16,0,255,16,0,15,192,0,32,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,16,15,30,16,0,255,16,0,15,0,0, - 128,255,255,0,128,0,128,0,192,1,192,1,96,35,48,58, - 24,20,24,24,24,12,48,7,224,16,12,24,16,0,255,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,12,24,16,0,255,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,13,13,26,16,3,255,28,96,62,120,97, - 96,192,224,192,224,224,96,224,96,64,96,0,96,0,96,0, - 96,0,96,0,32,16,12,24,16,0,255,255,255,0,0,65, - 248,67,12,67,132,67,134,99,134,33,6,48,6,24,12,12, - 28,7,240,15,13,26,16,1,255,60,0,98,62,241,48,241, - 48,97,48,1,48,6,48,120,48,126,48,1,176,0,112,0, - 48,0,16,16,12,24,16,0,255,255,255,12,0,12,0,12, - 120,12,240,13,224,13,96,15,96,14,96,14,96,12,48,8, - 28,12,13,26,16,4,255,96,0,240,240,224,192,128,192,99, - 192,30,192,56,192,224,192,248,192,14,192,3,192,1,192,0, - 64,16,12,24,16,0,255,255,255,0,24,0,24,0,24,0, - 24,30,24,63,152,60,216,56,120,0,56,0,24,0,8,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,156,219,108,195,140,219,236,219,156,255, - 252,15,13,26,16,1,255,14,48,31,190,48,240,96,112,240, - 240,155,176,14,48,24,48,32,48,0,48,0,48,0,48,0, - 16,16,12,24,16,0,255,255,255,16,0,56,120,12,100,6, - 98,12,98,24,110,48,108,63,96,1,224,0,96,0,32,16, - 12,24,16,0,255,255,255,0,24,0,24,0,120,3,216,7, - 24,28,24,31,24,1,216,0,120,0,56,0,8,16,12,24, - 16,0,255,255,255,0,0,66,16,71,8,71,12,70,20,99, - 230,32,6,48,6,24,12,12,28,7,240,16,12,24,16,0, - 255,255,255,12,24,28,24,14,24,3,24,3,24,3,24,15, - 216,30,120,12,56,0,24,0,8,16,12,24,16,0,255,255, - 255,8,48,28,48,6,48,3,48,6,48,12,48,24,48,31, - 176,0,240,0,48,0,16,16,12,24,16,0,255,255,255,0, - 24,0,120,3,216,7,24,28,24,31,24,1,216,2,120,7, - 56,7,24,2,8,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,220,219,156,199, - 220,219,220,199,140,255,252,16,12,24,16,0,255,255,255,0, - 6,0,6,28,22,62,62,99,102,65,198,65,198,64,134,124, - 6,60,6,24,2,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,199, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,199,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,199,12,219,236,199,12,255,252,15,13,26,16,1, - 255,112,204,249,238,143,60,143,28,31,140,63,204,25,140,0, - 12,0,12,0,12,0,12,0,12,0,4,16,12,24,16,0, - 255,255,255,28,24,14,24,7,152,1,216,6,120,28,24,31, - 24,1,216,0,120,0,56,0,8,16,12,24,16,0,255,255, - 255,16,12,56,12,28,12,6,12,2,204,1,236,3,28,102, - 12,60,12,24,12,0,4,16,12,24,16,0,255,255,255,0, - 0,15,192,24,96,60,48,60,48,24,48,0,96,63,192,7, - 0,1,192,0,124,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,12,219,108,199, - 12,219,108,199,108,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,28,219, - 108,199,28,219,108,199,28,255,252,2,2,2,16,7,255,192, - 192,14,12,24,16,0,255,240,0,8,0,15,192,28,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,5, - 10,10,16,11,255,48,184,112,48,48,48,48,48,48,16,13, - 14,28,16,0,255,15,128,63,224,96,16,96,8,32,0,248, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,16, - 0,12,14,28,16,4,255,63,0,65,128,128,192,190,64,65, - 64,1,240,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,64,6,5,5,16,5,254,4,104,144,104,4,6,5, - 5,16,6,254,96,128,112,8,4,5,5,5,16,5,254,24, - 96,128,96,24,3,5,5,16,6,255,96,128,96,128,64,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,227,12,223,124,223,12,223,236,227,12,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,227,156,223,124,223,28,223,108,227, - 156,255,252,5,9,9,16,0,255,248,24,48,96,64,64,64, - 88,56,5,12,12,16,0,255,128,112,8,248,24,48,96,64, - 64,64,88,56,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,227,156,223,108,223,140, - 223,236,227,156,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,227,12,223,108, - 223,12,223,108,227,108,255,252,16,10,20,16,0,255,0,6, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,16,13,26,16,0,255,0,128,0,112,0,8,0,4, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,5,3,3,16,6,0,192,48,8,8,12,12,16,4, - 255,56,92,204,236,216,192,96,56,12,6,3,1,14,14,28, - 16,1,255,255,252,231,156,219,108,219,140,219,236,231,156,255, - 252,255,252,227,12,223,124,223,28,223,124,227,124,255,252,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,199,156,219,108,219,108,219,108,199,156,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,199,220,219,156,219,220,219,220,199, - 140,255,252,14,14,28,16,1,255,255,252,231,156,219,108,219, - 140,219,236,231,156,255,252,255,252,199,12,219,236,219,12,219, - 124,199,12,255,252,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,219, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,219,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,219,12,219,236,199,12,255,252,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,199,156,219,124,219,28,219,108,199,156,255,252,8,13,13, - 16,8,255,128,112,8,4,23,14,6,6,6,6,6,6,2, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,199,156,219,108,219,156,219,108,199,156, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,199,156,219,108,219,140,219,236, - 199,156,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,199,12,219,108,219,12, - 219,108,199,108,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,199,28,219,108, - 219,28,219,108,199,28,255,252,16,13,26,16,0,254,255,255, - 3,0,67,16,67,56,99,108,35,204,49,140,24,12,14,24, - 3,240,0,0,0,192,0,192,16,13,26,16,0,254,255,255, - 12,0,12,0,12,0,12,48,12,120,12,56,12,48,7,224, - 3,192,0,0,1,128,1,128,14,14,28,16,1,255,255,252, - 231,156,219,108,219,140,219,236,231,156,255,252,255,252,199,12, - 219,124,219,28,219,124,199,12,255,252,16,13,26,16,0,254, - 255,255,4,24,14,24,3,24,1,152,3,24,6,24,12,24, - 15,216,0,120,1,24,3,136,1,0,15,15,30,16,1,254, - 64,0,228,0,230,206,133,204,121,204,3,204,14,204,120,204, - 96,236,120,252,14,220,123,204,97,204,120,68,14,0,8,14, - 14,16,4,255,128,124,3,121,197,205,158,128,124,3,121,197, - 205,158,7,5,5,16,5,255,124,2,114,202,220,10,6,12, - 16,5,255,3,128,112,64,10,64,77,64,173,128,176,0,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,108,223,108,199,12,223,236,195,236,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,195,12,223,124,199,12,223,236,195, - 12,255,252,10,11,22,16,3,0,30,0,63,0,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,63,0,30,0,9, - 12,24,16,4,0,64,0,64,0,96,0,56,0,14,0,3, - 0,1,128,97,128,225,128,225,128,195,0,126,0,10,11,22, - 16,3,0,224,0,56,0,14,0,3,0,3,0,227,0,126, - 0,28,0,6,0,1,128,0,64,12,12,24,16,2,255,131, - 192,132,96,136,48,140,48,142,48,142,48,134,48,64,48,64, - 96,32,96,17,192,15,0,11,13,26,16,2,255,31,0,63, - 128,96,192,64,64,96,192,49,128,31,0,96,192,192,96,192, - 96,224,224,127,192,31,0,11,13,26,16,2,255,7,0,30, - 0,57,96,112,192,97,128,195,0,198,0,198,0,198,0,198, - 0,99,96,48,192,31,128,12,12,24,16,2,255,28,0,12, - 0,12,0,140,0,140,96,140,160,141,176,199,48,64,48,96, - 48,48,96,31,192,9,13,26,16,4,255,60,0,126,0,195, - 0,195,0,199,0,127,0,59,0,3,0,3,0,3,0,3, - 0,3,0,1,128,13,13,26,16,1,255,224,0,96,0,96, - 0,96,8,103,240,127,192,112,96,96,96,96,96,96,96,112, - 192,63,128,30,0,12,15,30,16,2,254,128,0,128,0,96, - 0,60,0,15,0,3,192,0,224,0,48,60,48,66,48,225, - 48,225,48,225,96,65,192,1,0,16,12,24,16,0,255,255, - 255,0,24,0,24,0,120,3,216,7,152,28,120,31,24,1, - 216,0,120,0,56,0,8,16,13,26,16,0,254,255,255,0, - 24,0,24,0,120,3,216,7,24,28,24,31,24,1,216,28, - 120,7,56,1,136,0,64,9,8,16,16,3,3,224,0,248, - 0,124,0,14,0,3,0,1,0,0,128,0,128,12,13,26, - 16,1,255,48,0,120,0,204,0,12,0,31,240,12,0,12, - 96,12,240,12,240,12,48,12,96,7,192,3,128,9,8,16, - 16,3,2,0,128,0,128,1,0,3,0,14,0,124,0,248, - 0,224,0,12,9,18,16,2,2,56,16,124,16,226,32,242, - 96,242,192,98,192,7,128,15,0,14,0,12,13,26,16,2, - 255,0,16,0,16,0,16,56,16,124,16,126,16,62,16,6, - 48,12,96,248,224,193,192,127,128,30,0,2,13,13,16,8, - 255,128,192,192,192,192,192,192,192,192,192,192,192,64,11,13, - 26,16,2,255,224,0,96,0,96,192,97,192,99,192,98,192, - 102,192,108,192,120,192,112,192,96,192,0,192,0,96,11,10, - 20,16,3,1,31,0,63,128,96,192,192,96,192,96,192,96, - 192,96,96,192,63,128,31,0,14,9,18,16,1,255,0,4, - 2,4,135,8,135,8,66,16,96,48,48,96,31,192,15,0, - 6,8,8,16,5,254,96,128,128,64,32,16,8,4,14,14, - 28,16,1,255,255,252,231,156,219,108,219,140,219,236,231,156, - 255,252,255,252,195,140,223,124,199,124,223,124,223,140,255,252, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,195,28,223,108,199,108,223,108,223,28, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,195,12,223,124,199,28,223,124, - 223,12,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,195,12,223,124,199,28, - 223,124,223,124,255,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 4 y= 0 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[4633] U8G_FONT_SECTION("u8g_font_unifont_2_3") = { - 0,16,16,0,254,10,4,222,7,30,0,255,0,14,254,14, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,11,11,8,1,0,120,0,0, - 120,132,4,124,132,132,140,116,6,14,14,8,1,0,132,132, - 120,0,48,72,72,132,132,252,132,132,132,132,6,13,13,8, - 1,0,132,132,120,0,0,120,132,4,124,132,132,140,116,7, - 12,12,8,1,254,48,72,72,132,132,252,132,132,132,132,8, - 6,7,10,10,8,1,254,120,132,4,124,132,132,140,116,8, - 6,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, - 128,128,132,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,128,128,128,128,132,120,6,14,14,8,1,0,48,72,0, - 0,120,132,132,128,128,128,128,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,128,128,128,128,132,120,6,14,14, - 8,1,0,32,32,0,0,120,132,132,128,128,128,128,132,132, - 120,6,12,12,8,1,0,32,32,0,0,120,132,128,128,128, - 128,132,120,6,14,14,8,1,0,72,48,0,0,120,132,132, - 128,128,128,128,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,128,128,128,128,132,120,6,14,14,8,1,0,144, - 96,0,0,240,136,132,132,132,132,132,132,136,240,6,14,14, - 8,1,0,72,48,0,4,4,4,116,140,132,132,132,132,140, - 116,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,11,11,8,1,0,4,30,4,116,140,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,252,128,128,128,248, - 128,128,128,128,252,6,11,11,8,1,0,120,0,0,120,132, - 132,252,128,128,132,120,6,14,14,8,1,0,132,132,120,0, - 252,128,128,128,248,128,128,128,128,252,6,12,12,8,1,0, - 132,132,120,0,120,132,132,252,128,128,132,120,6,14,14,8, - 1,0,32,32,0,0,252,128,128,128,248,128,128,128,128,252, - 6,12,12,8,1,0,32,32,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,254,252,128,128,128,248,128,128,128, - 128,252,16,12,6,10,10,8,1,254,120,132,132,252,128,128, - 132,120,32,24,6,14,14,8,1,0,72,48,0,0,252,128, - 128,128,248,128,128,128,128,252,6,12,12,8,1,0,72,48, - 0,0,120,132,132,252,128,128,132,120,6,14,14,8,1,0, - 48,72,0,0,120,132,132,128,128,156,132,132,140,116,6,14, - 14,8,1,254,48,72,0,4,116,136,136,136,112,64,120,132, - 132,120,6,14,14,8,1,0,132,132,120,0,120,132,132,128, - 128,156,132,132,140,116,6,15,15,8,1,254,132,132,120,0, - 4,116,136,136,136,112,64,120,132,132,120,6,14,14,8,1, - 0,32,32,0,0,120,132,132,128,128,156,132,132,140,116,6, - 14,14,8,1,254,32,32,0,4,116,136,136,136,112,64,120, - 132,132,120,6,12,12,8,1,254,120,132,132,128,128,156,132, - 132,140,116,16,96,6,14,14,8,1,254,24,32,0,4,116, - 136,136,136,112,64,120,132,132,120,6,14,14,8,1,0,48, - 72,0,0,132,132,132,132,252,132,132,132,132,132,6,14,14, - 8,1,0,96,144,0,128,128,128,184,196,132,132,132,132,132, - 132,8,10,10,8,0,0,66,66,255,66,66,126,66,66,66, - 66,7,11,11,8,0,0,64,240,64,92,98,66,66,66,66, - 66,66,6,14,14,8,1,0,100,152,0,0,124,16,16,16, - 16,16,16,16,16,124,6,12,12,8,1,0,100,152,0,0, - 48,16,16,16,16,16,16,124,5,13,13,8,2,0,240,0, - 0,248,32,32,32,32,32,32,32,32,248,5,11,11,8,2, - 0,240,0,0,96,32,32,32,32,32,32,248,6,14,14,8, - 1,0,132,132,120,0,124,16,16,16,16,16,16,16,16,124, - 6,12,12,8,1,0,132,132,120,0,48,16,16,16,16,16, - 16,124,5,12,12,8,2,254,248,32,32,32,32,32,32,32, - 32,248,32,24,5,13,13,8,2,254,32,32,0,96,32,32, - 32,32,32,32,248,32,24,5,14,14,8,2,0,32,32,0, - 0,248,32,32,32,32,32,32,32,32,248,5,8,8,8,2, - 0,96,32,32,32,32,32,32,248,6,10,10,8,1,0,132, - 132,132,132,132,132,4,4,132,120,5,14,14,8,2,254,136, - 136,0,0,136,136,136,136,136,136,104,8,136,112,7,14,14, - 8,1,0,24,36,0,0,62,8,8,8,8,8,8,136,136, - 112,6,14,14,8,1,254,24,36,0,0,24,8,8,8,8, - 8,8,8,144,96,7,12,12,8,0,254,66,68,72,80,96, - 96,80,72,68,66,32,192,7,13,13,8,0,254,64,64,64, - 68,72,80,96,80,72,68,66,32,192,6,8,8,8,1,0, - 132,136,144,224,224,144,136,132,6,14,14,8,1,0,48,192, - 0,0,128,128,128,128,128,128,128,128,128,252,5,14,14,8, - 2,0,48,192,0,96,32,32,32,32,32,32,32,32,32,248, - 6,12,12,8,1,254,128,128,128,128,128,128,128,128,128,252, - 16,96,5,13,13,8,2,254,96,32,32,32,32,32,32,32, - 32,32,248,32,192,6,14,14,8,1,0,72,48,0,0,128, - 128,128,128,128,128,128,128,128,252,5,14,14,8,2,0,144, - 96,0,96,32,32,32,32,32,32,32,32,32,248,6,10,10, - 8,1,0,128,128,128,128,136,136,128,128,128,252,5,11,11, - 8,1,0,96,32,32,32,32,40,40,32,32,32,248,7,10, - 10,8,0,0,64,64,72,80,96,192,64,64,64,126,5,11, - 11,8,2,0,96,32,32,40,48,96,160,32,32,32,248,6, - 14,14,8,1,0,24,96,0,0,132,196,196,164,164,148,148, - 140,140,132,6,12,12,8,1,0,24,96,0,0,184,196,132, - 132,132,132,132,132,7,12,12,8,0,254,66,98,98,82,82, - 74,74,70,70,66,32,192,7,10,10,8,0,254,92,98,66, - 66,66,66,66,66,32,192,6,14,14,8,1,0,72,48,0, - 0,132,196,196,164,164,148,148,140,140,132,6,12,12,8,1, - 0,72,48,0,0,184,196,132,132,132,132,132,132,6,13,13, - 8,1,0,192,64,64,128,0,184,196,132,132,132,132,132,132, - 6,10,10,8,1,0,184,196,132,132,132,132,132,132,132,152, - 6,10,10,8,1,254,184,196,132,132,132,132,132,132,4,24, - 6,13,13,8,1,0,120,0,0,120,132,132,132,132,132,132, - 132,132,120,6,11,11,8,1,0,120,0,0,120,132,132,132, - 132,132,132,120,6,14,14,8,1,0,132,132,120,0,120,132, - 132,132,132,132,132,132,132,120,6,12,12,8,1,0,132,132, - 120,0,120,132,132,132,132,132,132,120,7,14,14,8,1,0, - 102,136,0,0,120,132,132,132,132,132,132,132,132,120,7,12, - 12,8,1,0,102,136,0,0,120,132,132,132,132,132,132,120, - 7,10,10,8,1,0,110,144,144,144,156,144,144,144,144,110, - 7,8,8,8,1,0,108,146,146,158,144,144,146,108,6,14, - 14,8,1,0,24,96,0,0,248,132,132,132,248,144,136,136, - 132,132,6,12,12,8,1,0,24,96,0,0,184,196,132,128, - 128,128,128,128,7,12,12,8,0,254,124,66,66,66,124,72, - 68,68,66,66,32,192,7,10,10,8,0,254,92,98,66,64, - 64,64,64,64,32,192,6,14,14,8,1,0,72,48,0,0, - 248,132,132,132,248,144,136,136,132,132,6,12,12,8,1,0, - 72,48,0,0,184,196,132,128,128,128,128,128,6,14,14,8, - 1,0,24,96,0,0,120,132,132,128,96,24,4,132,132,120, - 6,12,12,8,1,0,24,96,0,0,120,132,128,96,24,132, - 132,120,6,14,14,8,1,0,48,72,0,0,120,132,132,128, - 96,24,4,132,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,128,96,24,4,132,120,6,12,12,8,1,254,120,132, - 132,128,96,24,4,132,132,120,16,96,6,10,10,8,1,254, - 120,132,128,96,24,4,132,120,16,96,6,14,14,8,1,0, - 72,48,0,0,120,132,132,128,96,24,4,132,132,120,6,12, - 12,8,1,0,72,48,0,0,120,132,128,96,24,4,132,120, - 7,12,12,8,1,254,254,16,16,16,16,16,16,16,16,16, - 16,96,5,12,12,8,1,254,32,32,32,248,32,32,32,32, - 32,24,16,96,7,14,14,8,1,0,72,48,0,0,254,16, - 16,16,16,16,16,16,16,16,5,14,14,8,1,0,72,48, - 0,0,32,32,32,248,32,32,32,32,32,24,7,10,10,8, - 1,0,254,16,16,20,24,48,80,16,16,16,5,10,10,8, - 1,0,32,32,32,248,32,40,48,96,160,24,6,14,14,8, - 1,0,100,152,0,0,132,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,100,152,0,0,132,132,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,132,132,132,132,132, - 132,132,132,132,120,6,11,11,8,1,0,120,0,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,132,132,120,0, - 132,132,132,132,132,132,132,132,132,120,6,13,13,8,1,0, - 132,132,120,0,0,132,132,132,132,132,132,140,116,6,14,14, - 8,1,0,48,72,48,0,132,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,48,72,48,0,132,132,132,132,132, - 132,140,116,7,14,14,8,1,0,102,136,0,0,132,132,132, - 132,132,132,132,132,132,120,7,12,12,8,1,0,102,136,0, - 0,132,132,132,132,132,132,140,116,6,12,12,8,1,254,132, - 132,132,132,132,132,132,132,132,120,32,24,7,10,10,8,1, - 254,132,132,132,132,132,132,140,116,8,6,6,14,14,8,1, - 0,48,72,0,0,132,132,132,132,180,180,204,204,132,132,7, - 12,12,8,1,0,48,72,0,0,130,146,146,146,146,146,146, - 108,7,14,14,8,1,0,48,72,0,0,130,130,68,68,40, - 16,16,16,16,16,6,14,14,8,1,254,48,72,0,0,132, - 132,132,132,132,76,52,4,4,120,7,14,14,8,1,0,72, - 72,0,0,130,130,68,68,40,16,16,16,16,16,6,14,14, - 8,1,0,24,96,0,0,252,4,4,8,16,32,64,128,128, - 252,6,12,12,8,1,0,24,96,0,0,252,4,8,16,32, - 64,128,252,6,14,14,8,1,0,32,32,0,0,252,4,4, - 8,16,32,64,128,128,252,6,12,12,8,1,0,32,32,0, - 0,252,4,8,16,32,64,128,252,6,14,14,8,1,0,72, - 48,0,0,252,4,4,8,16,32,64,128,128,252,6,12,12, - 8,1,0,72,48,0,0,252,4,8,16,32,64,128,252,4, - 11,11,8,2,0,48,64,64,64,192,64,64,64,64,64,64, - 7,11,11,8,0,0,64,240,64,92,98,66,66,66,66,98, - 92,7,10,10,8,0,0,124,162,162,34,60,34,34,34,34, - 60,6,10,10,8,1,0,252,128,128,128,248,132,132,132,132, - 248,6,10,10,8,1,0,252,128,128,184,196,132,132,132,196, - 184,6,10,10,8,1,0,192,64,64,64,120,68,68,68,68, - 120,6,8,8,8,1,0,192,64,64,64,120,68,68,120,6, - 10,10,8,1,0,120,132,132,4,4,4,4,132,132,248,7, - 12,12,8,1,0,6,8,120,136,136,128,128,128,128,136,136, - 112,7,10,10,8,1,0,6,8,120,136,128,128,128,128,136, - 112,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,10,10,8,0,0,120,164,162,34,34,34,34,34,36, - 56,6,10,10,8,1,0,252,4,4,4,124,132,132,132,132, - 124,6,10,10,8,1,0,252,4,4,116,140,132,132,132,140, - 116,6,10,10,8,1,254,120,132,132,132,132,72,48,8,8, - 112,6,10,10,8,1,0,252,4,4,4,124,4,4,4,4, - 252,6,10,10,8,1,0,48,72,132,4,4,252,132,132,72, - 48,6,10,10,8,1,0,120,132,132,128,112,128,128,132,132, - 120,7,11,11,8,1,255,62,32,32,32,60,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,248,32,32,32, - 32,32,32,192,7,11,11,8,1,0,6,120,136,136,128,128, - 184,136,136,152,104,6,10,10,8,1,0,132,132,132,72,72, - 48,48,72,72,48,6,11,11,8,1,0,128,128,128,128,228, - 148,148,148,148,148,136,5,11,11,8,1,0,224,32,32,32, - 32,32,32,32,32,32,24,5,10,10,8,2,0,248,32,32, - 32,248,32,32,32,32,248,6,10,10,8,1,0,140,148,160, - 160,192,192,160,144,136,132,6,11,11,8,1,0,96,144,128, - 136,144,160,192,160,144,136,132,5,11,11,8,2,0,96,32, - 32,32,248,32,32,32,32,32,248,6,10,10,8,1,0,72, - 80,32,96,144,48,72,72,132,132,7,10,10,8,1,0,146, - 146,146,146,146,146,146,146,146,110,7,11,11,8,0,255,34, - 34,50,50,42,42,38,38,34,34,192,6,10,10,8,1,254, - 184,196,132,132,132,132,132,132,4,4,6,10,10,8,1,0, - 120,132,132,132,252,132,132,132,132,120,6,11,11,8,1,0, - 4,116,136,136,136,136,136,136,136,136,112,6,9,9,8,1, - 0,4,116,136,136,136,136,136,136,112,6,12,12,8,1,254, - 108,148,148,148,148,148,148,148,148,100,4,4,6,10,10,8, - 1,254,108,148,148,148,148,148,148,100,4,4,7,10,10,8, - 1,0,124,162,162,34,60,32,32,32,32,32,7,11,11,8, - 1,254,6,184,200,136,136,136,136,200,176,128,128,7,10,10, - 8,1,0,224,64,120,68,68,120,80,72,68,66,6,10,10, - 8,1,0,120,132,132,4,24,96,128,132,132,120,6,8,8, - 8,1,0,120,132,4,24,96,128,132,120,6,10,10,8,1, - 0,252,128,64,32,16,16,32,64,128,252,5,12,12,8,1, - 255,64,160,160,96,32,32,32,32,32,32,32,24,5,12,12, - 8,1,254,32,32,32,248,32,32,32,32,32,24,8,48,7, - 10,10,8,1,0,126,144,144,16,16,16,16,16,16,16,5, - 11,11,8,1,0,24,32,32,32,248,32,32,32,32,32,24, - 7,11,11,8,1,255,254,16,16,16,16,16,16,16,16,16, - 12,7,12,12,8,1,0,2,2,140,136,136,136,136,136,136, - 136,136,112,7,10,10,8,1,0,2,2,140,136,136,136,136, - 136,152,104,6,10,10,8,1,0,132,72,72,132,132,132,132, - 132,72,48,6,10,10,8,1,0,152,132,132,132,132,132,132, - 136,144,96,7,10,10,8,1,0,140,138,136,80,80,32,32, - 32,32,32,7,11,11,8,1,254,6,136,136,136,136,136,72, - 56,8,8,112,6,10,10,8,1,0,252,4,8,16,120,32, - 64,128,128,252,6,8,8,8,1,0,252,8,16,120,32,64, - 128,252,6,10,10,8,1,0,252,8,16,32,56,4,4,4, - 140,120,6,10,10,8,1,0,252,64,32,16,112,128,128,128, - 196,120,6,10,10,8,1,254,248,64,32,16,112,128,128,128, - 132,120,6,10,10,8,1,254,124,8,16,56,4,4,120,128, - 132,120,6,10,10,8,1,0,120,132,132,8,16,252,64,128, - 128,252,6,10,10,8,1,0,252,64,64,64,120,4,4,4, - 132,120,6,8,8,8,1,0,252,64,64,120,4,4,132,120, - 5,10,10,8,1,0,32,32,248,32,32,48,8,8,136,112, - 6,10,10,8,1,254,184,196,132,132,136,144,160,192,128,128, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,3,11,11,8,2,0,160,160,160,160,160,160,160,160,160, - 160,160,5,11,11,8,1,0,32,32,32,32,248,32,248,32, - 32,32,32,1,10,10,8,4,0,128,128,128,128,128,128,128, - 0,128,128,7,14,14,8,1,0,10,4,0,0,206,162,162, - 162,164,164,168,168,168,206,7,12,12,8,1,0,10,4,192, - 160,174,162,162,164,164,168,168,206,7,12,12,8,1,0,10, - 36,32,32,110,162,162,164,164,168,168,110,7,10,10,8,1, - 0,142,130,130,130,130,130,130,146,146,236,7,13,13,8,1, - 254,2,130,128,134,130,130,130,130,130,130,242,4,24,8,13, - 13,8,0,254,97,33,32,35,33,33,33,33,33,33,249,2, - 12,7,10,10,8,1,0,150,146,146,210,210,178,178,154,154, - 148,7,13,13,8,1,254,2,146,144,214,210,210,178,178,178, - 146,146,36,24,7,13,13,8,1,254,2,2,0,166,210,146, - 146,146,146,146,146,36,24,6,14,14,8,1,0,72,48,0, - 0,48,72,72,132,132,252,132,132,132,132,6,12,12,8,1, - 0,72,48,0,0,120,132,4,124,132,132,140,116,5,14,14, - 8,2,0,144,96,0,0,248,32,32,32,32,32,32,32,32, - 248,5,12,12,8,2,0,144,96,0,0,96,32,32,32,32, - 32,32,248,6,14,14,8,1,0,72,48,0,0,120,132,132, - 132,132,132,132,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,132,132,132,132,132,120,6,14,14,8,1,0,72, - 48,0,0,132,132,132,132,132,132,132,132,132,120,6,12,12, - 8,1,0,72,48,0,0,132,132,132,132,132,132,140,116,6, - 14,14,8,1,0,120,0,72,0,132,132,132,132,132,132,132, - 132,132,120,6,13,13,8,1,0,120,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,24,96,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 24,96,0,72,72,0,132,132,132,132,132,132,140,116,6,14, - 14,8,1,0,72,48,0,72,0,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,72,48,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,96,24,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 96,24,0,72,72,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,120,132,4,4,252,132,132,120,6,14,14,8, - 1,0,120,0,72,0,48,72,72,132,132,252,132,132,132,132, - 6,13,13,8,1,0,120,0,72,72,0,120,132,4,124,132, - 132,140,116,6,14,14,8,1,0,120,0,48,0,48,72,72, - 132,132,252,132,132,132,132,6,13,13,8,1,0,120,0,32, - 32,0,120,132,4,124,132,132,140,116,7,13,13,8,1,0, - 120,0,0,62,80,144,144,254,144,144,144,144,158,7,11,11, - 8,1,0,120,0,0,124,146,18,126,144,144,146,124,7,10, - 10,8,1,0,120,132,132,128,128,156,132,158,132,124,7,11, - 11,8,1,254,4,116,136,136,136,112,64,120,158,132,120,6, - 14,14,8,1,0,72,48,0,0,120,132,132,128,128,156,132, - 132,140,116,6,14,14,8,1,254,72,48,0,4,116,136,136, - 136,112,64,120,132,132,120,6,14,14,8,1,0,72,48,0, - 0,132,136,144,160,192,192,160,144,136,132,6,14,14,8,1, - 0,72,48,0,128,128,128,136,144,160,192,160,144,136,132,6, - 12,12,8,1,254,120,132,132,132,132,132,132,132,132,120,32, - 24,6,10,10,8,1,254,120,132,132,132,132,132,132,120,32, - 24,6,15,15,8,1,254,120,0,0,120,132,132,132,132,132, - 132,132,132,120,32,24,6,13,13,8,1,254,120,0,0,120, - 132,132,132,132,132,132,120,32,24,6,14,14,8,1,0,72, - 48,0,0,252,8,16,32,56,4,4,4,140,120,6,14,14, - 8,1,254,72,48,0,0,124,8,16,32,56,4,4,4,132, - 120,6,14,14,8,1,254,36,24,0,0,24,8,8,8,8, - 8,8,8,144,96,7,10,10,8,1,0,206,162,162,162,164, - 164,168,168,168,206,7,10,10,8,1,0,192,160,174,162,162, - 164,164,168,168,206,7,11,11,8,1,0,32,32,32,110,162, - 162,164,164,168,168,110,6,14,14,8,1,0,24,96,0,0, - 120,132,132,128,128,156,132,132,140,116,6,14,14,8,1,254, - 24,96,0,4,116,136,136,136,112,64,120,132,132,120,6,10, - 10,8,1,0,144,144,144,148,244,148,148,148,148,136,6,11, - 11,8,1,255,184,196,132,132,136,144,160,192,128,128,128,6, - 13,13,8,1,0,96,24,0,132,196,196,164,164,148,148,140, - 140,132,6,11,11,8,1,0,96,24,0,184,196,132,132,132, - 132,132,132,6,14,14,8,1,0,24,96,48,72,48,48,72, - 72,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 48,72,48,0,120,132,4,124,132,140,116,7,14,14,8,1, - 0,12,48,0,0,62,80,144,144,254,144,144,144,144,158,7, - 12,12,8,1,0,12,48,0,0,124,146,18,126,144,144,146, - 124,6,15,15,8,1,255,24,96,0,4,116,136,140,148,148, - 164,164,196,68,184,128,6,13,13,8,1,255,24,96,0,4, - 120,140,148,148,164,164,196,120,128}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[3791] U8G_FONT_SECTION("u8g_font_unifont_4_5") = { - 0,16,16,0,254,10,4,177,6,164,0,255,0,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,7,12,12,8,0,0,204,34,0, - 0,60,66,2,62,66,66,70,58,6,14,14,8,1,0,120, - 132,132,0,48,72,72,132,132,252,132,132,132,132,6,12,12, - 8,1,0,120,132,132,0,120,132,4,124,132,132,140,116,7, - 14,14,8,0,0,204,34,0,0,126,64,64,64,124,64,64, - 64,64,126,7,12,12,8,0,0,204,34,0,0,60,66,66, - 126,64,64,66,60,6,14,14,8,1,0,120,132,132,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,120, - 132,132,0,120,132,132,252,128,128,132,120,7,14,14,8,0, - 0,204,34,0,0,62,8,8,8,8,8,8,8,8,62,7, - 12,12,8,0,0,204,34,0,0,24,8,8,8,8,8,8, - 62,6,14,14,8,1,0,120,132,132,0,124,16,16,16,16, - 16,16,16,16,124,6,12,12,8,1,0,120,132,132,0,48, - 16,16,16,16,16,16,124,7,14,14,8,0,0,204,34,0, - 0,60,66,66,66,66,66,66,66,66,60,7,12,12,8,0, - 0,204,34,0,0,60,66,66,66,66,66,66,60,6,14,14, - 8,1,0,120,132,132,0,120,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,120,132,132,0,120,132,132,132,132, - 132,132,120,7,14,14,8,0,0,204,34,0,0,124,66,66, - 66,124,72,68,68,66,66,7,12,12,8,0,0,204,34,0, - 0,92,98,66,64,64,64,64,64,6,14,14,8,1,0,120, - 132,132,0,248,132,132,132,248,144,136,136,132,132,6,12,12, - 8,1,0,120,132,132,0,184,196,132,128,128,128,128,128,7, - 14,14,8,0,0,204,34,0,0,66,66,66,66,66,66,66, - 66,66,60,7,12,12,8,0,0,204,34,0,0,66,66,66, - 66,66,66,70,58,6,14,14,8,1,0,120,132,132,0,132, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,120, - 132,132,0,132,132,132,132,132,132,140,116,6,12,12,8,1, - 254,120,132,132,128,96,24,4,132,132,120,16,32,6,10,10, - 8,1,254,120,132,128,96,24,4,132,120,16,32,7,12,12, - 8,1,254,254,16,16,16,16,16,16,16,16,16,4,8,5, - 12,12,8,1,254,32,32,32,248,32,32,32,32,32,24,64, - 128,6,10,10,8,1,0,120,132,132,4,24,104,4,4,4, - 120,6,8,8,8,1,0,120,132,4,24,100,4,24,96,6, - 13,13,8,1,0,72,48,0,132,132,132,132,252,132,132,132, - 132,132,6,13,13,8,1,0,72,48,0,128,128,128,184,196, - 132,132,132,132,132,6,10,10,8,1,254,184,196,132,132,132, - 132,132,132,4,4,7,13,13,8,1,254,4,4,4,116,140, - 132,132,132,132,142,118,4,8,6,10,10,8,1,0,16,72, - 132,132,72,120,132,132,132,120,5,8,8,8,2,0,72,136, - 144,96,144,136,136,112,6,12,12,8,1,254,252,4,4,8, - 16,32,64,128,128,252,4,8,6,10,10,8,1,254,252,4, - 8,16,32,64,128,252,4,8,6,12,12,8,1,0,16,0, - 48,72,72,132,132,252,132,132,132,132,6,10,10,8,1,0, - 16,0,120,132,4,124,132,132,140,116,6,12,12,8,1,254, - 252,128,128,128,248,128,128,128,128,252,16,96,6,10,10,8, - 1,254,120,132,132,252,128,128,132,120,16,96,6,14,14,8, - 1,0,120,0,72,0,120,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,120,0,72,0,120,132,132,132,132,132, - 132,120,6,14,14,8,1,0,120,0,100,152,0,120,132,132, - 132,132,132,132,132,120,6,13,13,8,1,0,120,0,100,152, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,16, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,16,0,120,132,132,132,132,132,132,120,6,14,14,8,1, - 0,120,0,16,0,120,132,132,132,132,132,132,132,132,120,6, - 12,12,8,1,0,120,0,16,0,120,132,132,132,132,132,132, - 120,7,12,12,8,1,0,124,0,130,130,68,68,40,16,16, - 16,16,16,6,12,12,8,1,254,120,0,132,132,132,132,132, - 76,52,4,4,120,4,13,13,8,2,254,96,32,32,32,32, - 32,32,32,32,48,48,64,128,7,10,10,8,1,254,184,196, - 132,132,132,132,134,134,4,8,6,12,12,8,1,254,32,32, - 32,248,32,32,32,32,44,28,16,32,5,10,10,8,1,254, - 24,8,8,8,8,8,8,8,144,96,7,11,11,8,0,0, - 16,16,16,84,186,146,146,146,146,186,84,7,10,10,8,0, - 254,84,186,146,146,146,146,186,84,16,16,7,11,11,8,0, - 0,2,26,36,44,74,82,126,98,66,66,194,7,12,12,8, - 0,255,2,60,70,74,72,80,80,96,98,66,124,128,7,11, - 11,8,0,255,2,4,60,74,80,80,96,96,66,124,128,6, - 10,10,8,1,0,64,64,64,64,240,64,64,64,64,124,7, - 12,12,8,1,0,2,4,254,24,24,16,16,48,48,80,80, - 144,7,10,10,8,1,254,120,132,128,96,24,4,132,120,18, - 12,6,10,10,8,1,254,252,4,8,16,32,64,128,192,32, - 28,6,10,10,8,1,0,120,132,132,4,8,16,16,16,16, - 16,6,8,8,8,1,0,120,132,132,4,8,16,16,16,6, - 10,10,8,1,0,120,68,68,68,120,68,244,68,68,120,7, - 10,10,8,0,0,68,68,68,68,68,254,68,68,68,56,6, - 10,10,8,1,0,48,48,48,72,72,72,72,132,132,132,6, - 14,14,8,1,254,8,8,252,144,144,160,248,160,160,192,192, - 252,128,128,7,10,10,8,0,255,2,60,70,74,126,80,96, - 66,124,128,7,10,10,8,1,0,62,8,8,8,8,62,8, - 136,136,112,7,13,13,8,1,254,8,8,0,24,8,8,62, - 8,8,8,8,144,96,7,12,12,8,1,254,112,136,136,136, - 136,136,136,136,152,104,8,6,7,10,10,8,1,254,104,152, - 136,136,136,136,152,104,8,6,6,10,10,8,1,0,120,68, - 68,68,248,80,72,72,68,68,6,8,8,8,1,0,88,100, - 68,224,64,64,64,64,7,10,10,8,1,0,130,130,68,254, - 40,16,16,16,16,16,7,10,10,8,1,254,68,68,68,254, - 68,36,28,4,4,56,6,8,8,8,1,0,184,196,132,132, - 248,128,132,120,6,8,8,8,1,0,116,140,132,132,132,140, - 148,100,6,8,8,8,1,0,152,164,196,132,132,132,196,184, - 6,11,11,8,1,0,112,128,128,184,196,132,132,132,132,196, - 184,6,8,8,8,1,0,120,132,4,4,4,4,132,120,6, - 9,9,8,1,255,120,132,128,128,128,152,164,120,128,7,12, - 12,8,1,255,8,8,8,104,152,136,136,136,136,152,104,6, - 7,11,11,8,1,0,6,8,8,104,152,136,136,136,136,152, - 104,6,8,8,8,1,0,120,132,132,252,4,4,132,120,6, - 8,8,8,1,0,120,132,4,4,252,132,132,120,7,8,8, - 8,1,0,114,140,8,8,248,136,136,112,6,8,8,8,1, - 0,120,132,128,120,128,128,132,120,6,8,8,8,1,0,120, - 132,4,120,4,4,132,120,7,8,8,8,1,0,114,140,8, - 112,8,8,136,112,6,8,8,8,1,0,120,132,132,184,132, - 132,132,120,7,10,10,8,1,254,24,8,8,8,62,8,8, - 8,144,96,7,11,11,8,1,254,6,104,152,136,136,136,152, - 104,8,136,112,6,10,10,8,1,254,116,140,132,132,132,140, - 116,4,132,120,6,8,8,8,1,0,120,132,128,128,156,132, - 132,124,6,10,10,8,1,254,132,132,132,72,72,48,48,72, - 72,48,6,8,8,8,1,0,132,132,72,72,48,48,72,48, - 6,11,11,8,1,254,132,132,132,132,132,132,140,116,4,4, - 4,6,11,11,8,1,0,112,128,128,184,196,132,132,132,132, - 132,132,6,11,11,8,1,0,112,128,128,184,196,132,132,132, - 132,132,152,5,11,11,8,2,0,32,32,0,96,32,32,248, - 32,32,32,248,3,8,8,8,3,0,128,128,128,128,128,128, - 128,96,5,8,8,8,2,0,248,32,32,32,32,32,32,248, - 6,11,11,8,1,0,48,16,16,16,116,152,16,16,16,16, - 124,6,11,11,8,1,0,48,16,16,112,144,124,16,16,16, - 16,124,4,12,12,8,3,255,192,64,64,64,64,64,64,64, - 64,64,64,48,7,13,13,8,1,254,96,32,32,62,34,36, - 40,44,34,34,250,18,12,7,8,8,8,1,0,146,146,146, - 146,146,146,146,110,7,10,10,8,1,254,146,146,146,146,146, - 146,146,110,2,2,7,9,9,8,1,255,236,146,146,146,146, - 146,146,130,12,7,9,9,8,1,255,44,50,34,34,34,34, - 34,34,192,7,9,9,8,1,255,176,200,136,136,136,136,136, - 136,6,6,8,8,8,1,0,132,132,196,164,148,140,132,132, - 6,8,8,8,1,0,120,132,132,252,132,132,132,120,7,8, - 8,8,1,0,110,144,144,156,144,144,144,110,7,8,8,8, - 1,0,124,130,130,146,146,146,146,108,7,12,12,8,1,254, - 16,16,124,146,146,146,146,146,146,124,16,16,6,8,8,8, - 1,0,4,4,4,4,4,132,140,116,6,10,10,8,1,0, - 4,4,4,4,4,4,4,132,140,116,7,9,9,8,1,255, - 8,8,8,8,8,136,152,104,6,6,10,10,8,1,254,184, - 196,132,128,128,128,128,128,128,128,6,9,9,8,1,255,184, - 196,132,128,128,128,128,128,96,6,8,8,8,1,0,120,132, - 132,128,128,128,128,128,6,8,8,8,1,0,120,132,132,4, - 4,4,4,4,6,8,8,8,1,0,248,132,132,248,136,132, - 132,132,6,8,8,8,1,0,132,132,132,136,248,132,132,248, - 6,10,10,8,1,254,120,132,128,96,24,4,132,248,128,96, - 5,12,12,8,1,255,24,32,32,32,32,32,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,32,32,32,248, - 32,32,32,192,5,9,9,8,1,255,192,32,32,32,32,32, - 32,32,24,6,12,12,8,1,255,12,16,16,16,16,16,16, - 16,16,112,156,96,5,10,10,8,1,0,192,32,32,32,32, - 32,32,248,32,32,6,11,11,8,1,255,32,32,32,248,32, - 32,32,32,32,32,28,7,8,8,8,1,0,68,68,68,254, - 68,68,76,52,6,8,8,8,1,0,132,72,132,132,132,132, - 72,48,6,8,8,8,1,0,152,132,132,132,132,136,144,96, - 6,8,8,8,1,0,48,48,72,72,72,132,132,132,7,8, - 8,8,1,0,108,146,146,146,146,146,146,130,6,10,10,8, - 1,254,120,128,128,176,200,132,132,132,132,132,7,8,8,8, - 1,0,130,130,68,40,16,16,16,16,7,10,10,8,1,254, - 248,16,16,32,32,64,64,248,8,6,7,9,9,8,1,255, - 252,4,8,16,32,76,146,252,32,6,10,10,8,1,254,124, - 8,16,32,56,4,4,4,132,120,6,10,10,8,1,254,124, - 8,16,32,56,4,4,100,148,120,6,10,10,8,1,0,120, - 132,132,4,8,16,16,16,16,16,6,10,10,8,1,0,120, - 132,132,128,64,32,32,32,32,32,6,10,10,8,1,0,16, - 16,16,16,16,8,4,132,132,120,6,10,10,8,1,254,120, - 132,128,128,128,128,128,128,132,120,6,8,8,8,1,0,120, - 132,132,180,180,132,132,120,6,8,8,8,1,0,248,132,132, - 248,132,132,132,248,6,8,8,8,1,0,120,132,132,116,132, - 132,132,120,7,8,8,8,1,0,118,136,128,128,152,136,136, - 120,5,8,8,8,2,0,136,136,136,248,136,136,136,136,6, - 13,13,8,1,254,8,8,0,24,8,8,8,8,8,8,124, - 144,96,6,11,11,8,1,254,132,68,36,20,12,20,36,68, - 4,4,4,6,8,8,8,1,0,128,128,128,128,128,128,128, - 252,7,11,11,8,1,254,6,104,152,136,136,136,136,152,104, - 8,8,6,10,10,8,1,0,120,132,132,4,8,16,16,124, - 16,16,6,10,10,8,1,0,120,132,132,128,64,32,32,248, - 32,32,7,11,11,8,1,0,32,32,32,126,162,164,164,168, - 168,176,126,7,13,13,8,1,254,32,32,32,126,162,164,168, - 172,162,162,98,18,12,7,12,12,8,1,255,32,32,32,126, - 162,164,168,176,180,170,124,8,8,10,10,8,0,0,64,64, - 70,248,72,68,66,65,65,62,7,13,13,8,1,254,6,72, - 72,72,248,72,72,72,72,72,56,8,48,8,11,11,8,0, - 255,64,64,70,249,72,72,72,74,77,62,4,7,12,12,8, - 1,254,96,144,128,220,162,162,162,162,162,162,4,24,7,11, - 11,8,1,0,192,64,64,64,78,80,80,76,66,66,124,7, - 11,11,8,0,0,192,64,64,64,64,126,68,72,80,96,126, - 7,11,11,8,1,0,130,146,146,146,108,0,130,146,146,146, - 108,6,10,10,8,1,0,252,132,132,132,0,0,252,132,132, - 132,5,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 8,7,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 6,5,6,6,8,2,4,128,128,176,200,136,136,5,7,7, - 8,2,4,112,136,128,176,200,136,136,4,7,7,8,2,4, - 16,0,16,16,16,144,96,5,5,5,8,2,5,176,200,128, - 128,128,5,5,5,8,1,5,8,8,8,152,104,7,6,6, - 8,1,4,8,8,8,152,104,6,5,6,6,8,1,4,136, - 144,240,136,136,240,5,4,4,8,1,6,136,168,168,80,5, - 5,5,8,1,5,136,136,120,8,112,3,3,3,8,2,7, - 32,64,128,6,3,3,8,1,7,36,72,144,2,4,4,8, - 3,6,64,128,128,192,2,4,4,8,3,6,192,64,64,128, - 2,4,4,8,3,6,192,128,128,64,4,6,6,8,2,5, - 192,32,16,16,32,192,4,6,6,8,2,5,48,64,128,128, - 64,48,6,7,7,8,1,4,120,132,4,4,56,32,32,6, - 7,7,8,1,4,120,132,128,128,112,16,16,4,7,7,8, - 2,4,16,32,64,128,64,32,16,4,7,7,8,2,4,128, - 64,32,16,32,64,128,7,4,4,8,1,6,16,40,68,130, - 7,4,4,8,1,6,130,68,40,16,4,2,2,8,2,8, - 96,144,4,2,2,8,2,8,144,96,1,3,3,8,4,7, - 128,128,128,4,1,1,8,2,9,240,4,2,2,8,2,8, - 48,192,4,2,2,8,2,8,192,48,1,4,4,8,4,0, - 128,128,128,128,4,1,1,8,2,0,240,4,2,2,8,2, - 255,192,48,4,2,2,8,2,255,48,192,3,6,6,8,2, - 1,224,64,0,0,64,224,3,2,2,8,2,4,224,64,4, - 6,6,8,2,2,192,32,16,16,32,192,4,6,6,8,2, - 2,48,64,128,128,64,48,5,5,5,8,1,2,32,32,32, - 32,248,5,5,5,8,1,2,248,32,32,32,32,5,5,5, - 8,1,2,32,32,248,32,32,5,1,1,8,1,4,248,6, - 3,3,8,1,9,132,132,120,2,2,2,8,3,10,192,192, - 4,3,3,8,2,9,96,144,96,3,2,2,8,4,254,128, - 96,6,2,2,8,1,10,100,152,7,2,2,8,1,10,102, - 136,7,4,4,8,0,3,32,96,162,28,6,5,5,8,1, - 5,132,72,48,72,132,5,6,6,8,1,4,136,80,32,80, - 80,32,3,6,6,8,2,6,192,64,64,64,64,224,5,5, - 5,8,1,5,120,128,112,8,240,5,5,5,8,1,5,136, - 80,32,80,136,5,5,5,8,1,7,120,128,128,112,16,5, - 11,11,8,1,0,248,8,8,8,8,8,8,8,8,8,8, - 5,11,11,8,1,0,8,8,248,8,8,8,8,8,8,8, - 8,5,11,11,8,1,0,8,8,8,8,8,248,8,8,8, - 8,8,5,11,11,8,1,0,8,8,8,8,8,8,8,8, - 248,8,8,5,11,11,8,1,0,8,8,8,8,8,8,8, - 8,8,8,248,5,6,6,8,1,0,128,128,128,128,128,248, - 4,7,7,8,1,0,128,128,128,240,128,128,128,5,3,3, - 8,1,0,136,80,32,6,3,3,8,1,9,252,0,252,6, - 4,4,8,1,8,204,68,68,136,5,3,3,8,1,255,136, - 80,32,5,3,3,8,1,255,32,80,136,3,5,5,8,3, - 255,32,64,128,64,32,3,5,5,8,3,255,128,64,32,64, - 128,4,3,3,8,2,255,96,144,96,3,3,3,8,2,9, - 128,64,32,6,3,3,8,1,9,144,72,36,6,3,3,8, - 1,9,36,72,144,6,2,2,8,1,254,100,152,2,7,7, - 8,3,4,192,192,0,0,0,192,192,3,4,4,8,2,7, - 224,128,128,128,3,4,4,8,2,7,224,32,32,32,3,4, - 4,8,2,0,128,128,128,224,3,4,4,8,2,0,32,32, - 32,224,6,3,3,8,1,254,132,132,252,6,3,3,8,1, - 254,128,128,252,6,5,5,8,1,3,32,64,252,64,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w=15 h=16 x= 7 y=12 dx=16 dy= 0 ascent=14 len=16 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[3421] U8G_FONT_SECTION("u8g_font_unifont_67_75") = { - 0,16,16,0,254,3,2,188,4,152,16,255,0,14,254,12, - 0,7,5,5,8,1,2,32,64,254,64,32,5,14,14,8, - 2,254,32,112,168,32,32,32,32,32,32,32,32,32,32,32, - 7,5,5,8,0,2,8,4,254,4,8,5,14,14,8,2, - 0,32,32,32,32,32,32,32,32,32,32,32,168,112,32,8, - 5,5,8,0,2,36,66,255,66,36,5,12,12,8,2,0, - 32,112,168,32,32,32,32,32,32,168,112,32,6,6,6,8, - 1,3,240,192,160,144,8,4,6,6,6,8,1,3,60,12, - 20,36,64,128,6,6,6,8,1,3,128,64,36,20,12,60, - 6,6,6,8,1,2,4,8,144,160,192,240,7,9,9,8, - 1,0,8,8,40,72,254,72,40,8,8,7,9,9,8,0, - 0,32,32,40,36,254,36,40,32,32,7,5,5,8,1,2, - 32,76,242,64,32,7,5,5,8,0,2,8,100,158,4,8, - 8,5,5,8,0,3,36,72,255,72,36,5,14,14,8,2, - 254,32,112,168,32,112,168,32,32,32,32,32,32,32,32,8, - 5,5,8,0,2,36,18,255,18,36,5,15,15,8,2,255, - 32,32,32,32,32,32,32,32,32,168,112,32,168,112,32,7, - 5,5,8,1,2,34,68,248,68,34,7,5,5,8,0,2, - 136,68,62,68,136,6,5,5,8,1,2,36,68,252,68,36, - 5,12,12,8,2,0,32,112,168,32,32,32,32,32,32,32, - 32,248,6,5,5,8,1,2,144,136,252,136,144,5,12,12, - 8,2,0,248,32,32,32,32,32,32,32,32,168,112,32,5, - 12,12,8,2,0,32,112,168,32,32,32,32,32,168,112,32, - 248,7,6,6,8,1,2,4,34,66,252,64,32,7,6,6, - 8,1,2,64,136,132,126,4,8,7,6,6,8,1,2,4, - 42,74,252,72,40,7,6,6,8,1,2,64,168,164,126,36, - 40,8,5,5,8,0,2,36,90,231,66,36,8,9,9,8, - 0,0,8,8,44,74,255,74,44,8,8,6,12,12,8,1, - 0,128,128,128,144,176,208,144,16,16,84,56,16,5,9,9, - 8,1,254,32,64,240,72,40,8,8,8,8,5,9,9,8, - 2,254,32,16,120,144,160,128,128,128,128,5,12,12,8,1, - 2,8,8,8,8,8,8,8,40,72,240,64,32,5,12,12, - 8,2,2,128,128,128,128,128,128,128,160,144,120,16,32,8, - 5,5,8,0,0,252,4,21,14,4,5,12,12,8,1,2, - 8,8,8,8,8,8,8,40,72,248,64,32,8,5,5,8, - 0,1,30,33,169,113,32,8,5,5,8,0,1,120,132,149, - 142,4,6,8,8,8,1,3,252,0,240,192,160,144,8,4, - 6,11,11,8,1,0,160,192,252,192,160,0,20,12,252,12, - 20,6,6,6,8,1,1,92,152,148,132,132,120,6,6,6, - 8,1,1,232,100,164,132,132,120,7,3,3,8,1,4,32, - 64,254,7,3,3,8,1,2,254,64,32,3,14,14,8,4, - 254,128,192,160,128,128,128,128,128,128,128,128,128,128,128,3, - 14,14,8,2,254,32,96,160,32,32,32,32,32,32,32,32, - 32,32,32,7,3,3,8,0,4,8,4,254,7,3,3,8, - 0,2,254,4,8,3,14,14,8,4,0,128,128,128,128,128, - 128,128,128,128,128,128,160,192,128,3,14,14,8,2,0,32, - 32,32,32,32,32,32,32,32,32,32,160,96,32,6,11,11, - 8,1,0,16,8,252,8,16,0,32,64,252,64,32,8,12, - 12,8,0,0,36,116,172,36,36,36,36,36,36,53,46,36, - 6,11,11,8,1,0,32,64,252,64,32,0,16,8,252,8, - 16,6,11,11,8,1,0,32,64,252,64,32,0,32,64,252, - 64,32,8,12,12,8,0,0,36,126,165,36,36,36,36,36, - 36,36,36,36,6,11,11,8,1,0,16,8,252,8,16,0, - 16,8,252,8,16,8,12,12,8,0,0,36,36,36,36,36, - 36,36,36,36,165,126,36,6,7,7,8,1,1,32,64,252, - 0,252,8,16,6,7,7,8,1,1,16,8,252,0,252,64, - 32,7,9,9,8,0,0,8,8,40,126,136,126,40,8,8, - 8,9,9,8,0,0,8,8,44,126,137,126,44,8,8,7, - 9,9,8,1,0,32,32,40,252,34,252,40,32,32,6,5, - 5,8,1,2,32,124,128,124,32,5,12,12,8,2,0,32, - 80,216,80,80,80,80,80,80,80,80,80,6,5,5,8,1, - 2,16,248,4,248,16,5,12,12,8,2,0,80,80,80,80, - 80,80,80,80,80,216,80,32,8,5,5,8,0,2,36,126, - 129,126,36,5,12,12,8,2,0,32,80,216,80,80,80,80, - 80,80,216,80,32,6,6,6,8,1,3,240,160,208,168,20, - 8,6,6,6,8,1,3,60,20,44,84,160,64,6,6,6, - 8,1,3,8,20,168,208,160,240,6,6,6,8,1,3,64, - 160,84,44,20,60,7,7,7,8,0,1,16,62,64,254,64, - 62,16,7,7,7,8,1,1,16,248,4,254,4,248,16,8, - 5,5,8,0,2,32,66,245,72,32,8,5,5,8,0,2, - 4,66,175,18,4,5,14,14,8,2,254,32,112,168,32,32, - 32,248,32,248,32,32,32,32,32,5,14,14,8,2,0,32, - 32,32,32,32,248,32,248,32,32,32,168,112,32,7,5,5, - 8,1,2,32,64,238,64,32,5,14,14,8,2,254,32,112, - 168,32,32,0,32,32,32,32,0,32,32,32,8,5,5,8, - 0,2,4,2,239,2,4,5,14,14,8,2,0,32,32,32, - 0,32,32,32,32,0,32,32,168,112,32,7,5,5,8,1, - 2,160,192,254,192,160,7,5,5,8,0,2,10,6,254,6, - 10,8,7,7,8,0,1,16,48,95,129,95,48,16,7,12, - 12,8,1,0,16,40,68,238,40,40,40,40,40,40,40,56, - 8,7,7,8,0,2,8,12,250,129,250,12,8,7,12,12, - 8,1,0,56,40,40,40,40,40,40,40,238,68,40,16,7, - 12,12,8,1,0,16,40,68,238,40,40,40,56,0,56,40, - 56,7,12,12,8,1,0,16,40,68,198,68,68,68,68,68, - 198,130,254,7,12,12,8,1,0,16,40,124,198,68,68,68, - 68,68,198,130,254,7,12,12,8,1,0,16,56,84,214,84, - 84,84,84,84,214,146,254,7,13,13,8,1,0,16,40,84, - 238,68,198,68,68,68,68,68,68,124,7,13,13,8,1,0, - 16,40,84,238,68,198,68,68,68,68,198,130,254,7,7,7, - 8,1,1,16,216,244,130,244,216,16,7,9,9,8,1,0, - 254,128,184,176,168,132,130,128,128,7,9,9,8,1,0,2, - 2,130,66,42,26,58,2,254,5,12,12,8,2,0,32,80, - 216,80,80,80,80,80,80,216,80,32,13,5,10,16,1,2, - 14,32,17,16,255,248,17,16,14,32,8,12,12,8,0,0, - 36,46,53,36,36,36,36,36,36,172,116,36,8,15,15,8, - 0,254,4,2,255,2,4,4,2,255,2,4,4,2,255,2, - 4,8,5,5,8,0,2,36,68,255,68,36,8,5,5,8, - 0,2,36,34,255,34,36,11,5,10,16,2,2,36,128,68, - 64,255,224,68,64,36,128,15,5,10,16,1,2,34,128,66, - 128,255,254,66,128,34,128,15,5,10,16,0,2,2,136,2, - 132,255,254,2,132,2,136,13,5,10,16,1,2,37,32,69, - 16,255,248,69,16,37,32,8,5,5,8,0,2,32,96,191, - 96,32,8,5,5,8,0,2,4,6,253,6,4,12,5,10, - 16,2,2,32,64,96,96,191,208,96,96,32,64,8,8,8, - 8,0,6,255,255,255,255,255,255,255,255,8,2,2,8,0, - 254,255,255,8,4,4,8,0,254,255,255,255,255,8,6,6, - 8,0,254,255,255,255,255,255,255,8,8,8,8,0,254,255, - 255,255,255,255,255,255,255,8,10,10,8,0,254,255,255,255, - 255,255,255,255,255,255,255,8,12,12,8,0,254,255,255,255, - 255,255,255,255,255,255,255,255,255,8,14,14,8,0,254,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,8,16,16, - 8,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,7,16,16,8,0,254,254,254,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,6,16,16,8,0,254,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 16,16,8,0,254,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,4,16,16,8,0,254,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,3,16,16,8,0, - 254,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,2,16,16,8,0,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,1,16,16,8,0,254,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,4,16,16, - 8,4,254,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,7,16,16,8,0,254,136,34,136,34,136,34,136, - 34,136,34,136,34,136,34,136,34,8,16,16,8,0,254,170, - 85,170,85,170,85,170,85,170,85,170,85,170,85,170,85,8, - 16,16,8,0,254,238,187,238,187,238,187,238,187,238,187,238, - 187,238,187,238,187,8,2,2,8,0,12,255,255,1,16,16, - 8,7,254,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,8,8,8,0,254,240,240,240,240,240,240,240, - 240,4,8,8,8,4,254,240,240,240,240,240,240,240,240,4, - 8,8,8,0,6,240,240,240,240,240,240,240,240,8,16,16, - 8,0,254,240,240,240,240,240,240,240,240,255,255,255,255,255, - 255,255,255,8,16,16,8,0,254,240,240,240,240,240,240,240, - 240,15,15,15,15,15,15,15,15,8,16,16,8,0,254,255, - 255,255,255,255,255,255,255,240,240,240,240,240,240,240,240,8, - 16,16,8,0,254,255,255,255,255,255,255,255,255,15,15,15, - 15,15,15,15,15,4,8,8,8,4,6,240,240,240,240,240, - 240,240,240,8,16,16,8,0,254,15,15,15,15,15,15,15, - 15,240,240,240,240,240,240,240,240,8,16,16,8,0,254,15, - 15,15,15,15,15,15,15,255,255,255,255,255,255,255,255,7, - 7,7,8,1,1,254,254,254,254,254,254,254,7,7,7,8, - 1,1,254,130,130,130,130,130,254,7,7,7,8,1,1,124, - 130,130,130,130,130,124,7,7,7,8,1,1,254,130,186,186, - 186,130,254,7,7,7,8,1,1,254,130,254,130,254,130,254, - 7,7,7,8,1,1,254,170,170,170,170,170,254,7,7,7, - 8,1,1,254,170,254,170,254,170,254,7,7,7,8,1,1, - 254,166,146,202,166,146,254,7,7,7,8,1,1,254,202,146, - 166,202,146,254,7,7,7,8,1,1,254,170,214,170,214,170, - 254,4,4,4,8,2,4,240,240,240,240,4,4,4,8,2, - 4,240,144,144,240,7,4,4,8,1,4,254,254,254,254,7, - 4,4,8,1,4,254,130,130,254,4,7,7,8,2,2,240, - 240,240,240,240,240,240,4,7,7,8,2,2,240,144,144,144, - 144,144,240,8,3,3,8,0,4,63,126,252,8,3,3,8, - 0,4,63,66,252,6,6,6,8,1,3,48,48,120,120,252, - 252,6,6,6,8,1,3,48,48,72,72,132,252,6,3,3, - 8,1,3,48,120,252,6,3,3,8,1,3,48,72,252,6, - 6,6,8,1,3,192,240,252,252,240,192,6,6,6,8,1, - 3,192,176,140,140,176,192,4,4,4,8,2,4,192,240,240, - 192,4,4,4,8,2,4,192,176,176,192,6,5,5,8,1, - 3,192,240,252,240,192,6,5,5,8,1,3,192,176,140,176, - 192,6,6,6,8,1,3,252,252,120,120,48,48,6,6,6, - 8,1,3,252,132,72,72,48,48,6,3,3,8,1,3,252, - 120,48,6,3,3,8,1,3,252,72,48,6,6,6,8,1, - 3,12,60,252,252,60,12,6,6,6,8,1,3,12,52,196, - 196,52,12,4,4,4,8,2,4,48,240,240,48,4,4,4, - 8,2,4,48,208,208,48,6,5,5,8,1,3,12,60,252, - 60,12,6,5,5,8,1,3,12,52,196,52,12,7,7,7, - 8,1,2,16,56,124,254,124,56,16,7,7,7,8,1,2, - 16,40,68,130,68,40,16,7,7,7,8,1,2,16,40,84, - 186,84,40,16,7,7,7,8,1,2,56,68,178,186,154,68, - 56,6,10,10,8,1,1,48,48,72,72,132,132,72,72,48, - 48,7,7,7,8,1,2,56,68,130,130,130,68,56,7,7, - 7,8,1,2,40,0,130,0,130,0,40,7,7,7,8,1, - 2,56,108,170,170,170,108,56,7,7,7,8,1,2,56,68, - 146,170,146,68,56,7,7,7,8,1,2,56,124,254,254,254, - 124,56,7,7,7,8,1,2,56,100,226,226,226,100,56,7, - 7,7,8,1,2,56,76,142,142,142,76,56,7,7,7,8, - 1,2,56,68,130,130,254,124,56,7,7,7,8,1,2,56, - 124,254,130,130,68,56,7,7,7,8,1,2,56,92,158,158, - 130,68,56,7,7,7,8,1,2,56,76,142,142,254,124,56, - 4,7,7,8,1,2,48,112,240,240,240,112,48,4,7,7, - 8,4,2,192,224,240,240,240,224,192,8,16,16,8,0,254, - 255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255, - 8,16,16,8,0,254,255,255,255,255,255,231,219,189,189,219, - 231,255,255,255,255,255,8,8,8,8,0,6,255,255,255,255, - 255,231,219,189,8,8,8,8,0,254,189,219,231,255,255,255, - 255,255,4,4,4,8,1,5,48,64,128,128,4,4,4,8, - 4,5,192,32,16,16,4,4,4,8,4,2,16,16,32,192, - 4,4,4,8,1,2,128,128,64,48,7,4,4,8,1,5, - 56,68,130,130,7,4,4,8,1,2,130,130,68,56,6,6, - 6,8,1,255,4,12,28,60,124,252,6,6,6,8,1,255, - 128,192,224,240,248,252,6,6,6,8,1,6,252,248,240,224, - 192,128,6,6,6,8,1,6,252,124,60,28,12,4,5,5, - 5,8,1,2,112,136,136,136,112,6,6,6,8,1,3,252, - 228,228,228,228,252,6,6,6,8,1,3,252,156,156,156,156, - 252,6,6,6,8,1,3,252,244,228,196,132,252,6,6,6, - 8,1,3,252,132,140,156,188,252,7,6,6,8,1,3,254, - 146,146,146,146,254,7,7,7,8,1,2,16,40,40,68,84, - 130,254,6,6,6,8,1,2,48,48,104,104,228,252,6,7, - 7,8,1,2,48,48,88,88,156,156,252,8,8,8,8,0, - 2,60,66,129,129,129,129,66,60,6,6,6,8,1,0,252, - 164,228,132,132,252,6,6,6,8,1,0,252,132,132,228,164, - 252,6,6,6,8,1,0,252,132,132,156,148,252,6,6,6, - 8,1,0,252,148,156,132,132,252,8,8,8,8,0,0,60, - 82,145,241,129,129,66,60,8,8,8,8,0,0,60,66,129, - 129,241,145,82,60,8,8,8,8,0,0,60,66,129,129,143, - 137,74,60,8,8,8,8,0,0,60,74,137,143,129,129,66, - 60,6,6,6,8,1,6,252,136,144,160,192,128,6,6,6, - 8,1,6,252,68,36,20,12,4,6,6,6,8,1,255,128, - 192,160,144,136,252,6,6,6,8,1,255,252,132,132,132,132, - 252,6,6,6,8,1,255,252,252,252,252,252,252,4,4,4, - 8,2,0,240,144,144,240,4,4,4,8,2,0,240,240,240, - 240,6,6,6,8,1,255,4,12,20,36,68,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 14 - Calculated Max Values w=16 h=16 x= 5 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-1 - X Font ascent =14 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[7568] U8G_FONT_SECTION("u8g_font_unifont_72_73") = { - 0,16,16,0,254,10,5,238,9,116,0,255,255,14,254,14, - 255,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,14,5,10,16,1,4,115,36,132, - 164,100,188,20,164,227,36,13,5,10,16,1,4,119,72,130, - 72,98,48,18,72,226,72,13,5,10,16,1,4,247,72,130, - 72,242,48,130,72,242,72,14,5,10,16,1,4,243,124,132, - 144,244,144,132,144,243,16,14,5,10,16,1,4,244,152,132, - 164,246,164,133,172,244,156,13,5,10,16,1,4,99,72,148, - 80,244,96,148,80,147,72,14,5,10,16,1,4,231,160,148, - 32,231,160,148,32,231,188,10,5,10,16,3,4,241,192,138, - 0,241,128,136,64,243,128,11,5,10,16,2,4,139,224,136, - 128,248,128,136,128,136,128,11,5,10,16,2,4,131,224,130, - 0,131,224,130,0,250,0,11,5,10,16,2,4,139,224,136, - 128,136,128,80,128,32,128,11,5,10,16,2,4,251,224,130, - 0,251,224,130,0,130,0,11,5,10,16,2,4,123,192,130, - 32,131,192,130,64,122,32,11,5,10,16,2,4,121,192,130, - 32,114,32,10,32,241,192,11,5,10,16,2,4,123,224,128, - 128,112,128,8,128,243,224,12,5,10,16,2,4,228,112,148, - 64,148,112,148,64,231,112,13,5,10,16,1,4,227,16,148, - 48,148,16,148,16,227,56,13,5,10,16,1,4,227,48,148, - 8,148,16,148,32,227,56,13,5,10,16,1,4,227,48,148, - 8,148,48,148,8,227,48,13,5,10,16,1,4,227,8,148, - 24,148,40,148,56,227,8,14,5,10,16,1,4,147,36,212, - 168,212,176,183,168,148,164,14,5,10,16,1,4,104,164,133, - 52,98,44,18,36,226,36,13,5,10,16,1,4,247,112,130, - 72,242,112,130,72,242,112,13,5,10,16,1,4,102,72,137, - 104,143,88,137,72,105,72,11,5,10,16,2,4,250,32,131, - 96,250,160,130,32,250,32,14,5,10,16,1,4,116,184,132, - 164,100,184,20,164,227,56,14,5,10,16,1,4,243,156,132, - 32,243,32,128,160,247,28,9,5,10,16,3,4,243,128,132, - 0,243,0,128,128,135,0,9,5,10,16,3,4,115,128,132, - 0,179,0,144,128,119,0,9,5,10,16,3,4,227,128,148, - 0,227,0,160,128,151,0,9,5,10,16,3,4,147,128,148, - 0,147,0,144,128,103,0,9,5,10,16,1,4,119,0,132, - 128,103,0,20,0,228,0,14,5,10,16,1,4,231,160,148, - 32,151,160,148,32,231,188,6,10,10,8,1,0,40,48,32, - 96,184,36,36,36,36,56,6,2,2,8,1,0,132,252,6, - 9,9,8,1,1,144,208,176,144,0,32,32,32,60,7,7, - 7,8,1,2,2,20,42,84,168,80,128,6,11,11,8,1, - 0,120,132,132,128,64,32,16,16,0,16,16,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,236,195,220,223,188,195,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,156,251,108,195,156,223,108,195,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,251,108,195,140,223,236,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,12,251,108,195,12,223,108, - 195,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,28,251,108,195,28, - 223,108,195,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,140,251,124, - 195,124,223,124,195,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,28, - 251,108,195,108,223,108,195,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,251,124,195,28,223,124,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,124,195,28,223,124,195,124,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,108,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,220,251,156,227,220,251,220,199,140, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,236,227,12,251,124, - 199,12,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,236,227,140, - 251,236,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,108,251,108, - 227,12,251,236,199,236,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,12, - 251,124,227,12,251,236,199,12,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,156,251,124,227,28,251,108,199,156,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,236,227,220,251,188,199,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,156,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,156,251,108,227,140,251,236,199,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,108,227,12,251,108, - 199,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,108,227,28, - 251,108,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,140,251,124, - 227,124,251,124,199,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,28, - 251,108,227,108,251,108,199,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,12,251,124,227,28,251,124,199,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,124,227,28,251,124,199,124,255,252,5,10, - 10,8,2,0,56,40,40,40,32,32,160,160,160,224,5,10, - 10,8,2,0,8,8,8,8,8,248,136,136,136,136,5,10, - 10,8,2,0,136,136,136,136,136,248,32,32,32,32,5,10, - 10,8,2,0,32,32,32,32,32,248,136,136,136,136,5,10, - 10,8,2,0,248,168,168,168,32,32,168,168,168,248,5,5, - 5,8,2,5,136,216,168,216,136,6,8,8,8,1,1,28, - 220,220,192,192,220,220,28,8,10,10,8,0,0,3,3,3, - 27,24,24,216,192,192,192,7,10,10,8,1,0,14,174,174, - 160,160,160,160,160,160,160,7,9,9,8,1,0,218,218,218, - 218,218,218,218,218,218,8,10,10,8,0,0,160,160,80,40, - 40,20,20,10,5,5,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,219,28,219,108, - 195,28,251,108,251,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,219,140, - 219,124,195,124,251,124,251,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 219,28,219,108,195,108,251,108,251,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,219,12,219,124,195,28,251,124,251,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,219,12,219,124,195,28,251,124,251,124,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,108,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,220,223,156,195,220,251,220, - 195,140,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,236,195,12, - 251,124,195,12,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,236, - 195,140,251,236,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,108, - 223,108,195,12,251,236,195,236,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,223,124,195,12,251,236,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,156,223,124,195,28,251,108,195,156,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,236,195,220,251,188,195,188,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,156,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,156,223,108,195,140,251,236, - 195,156,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,108,195,12, - 251,108,195,108,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,108, - 195,28,251,108,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,140, - 223,124,195,124,251,124,195,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,28,223,108,195,108,251,108,195,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,223,124,195,28,251,124,195,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,124,195,28,251,124,195,124,255,252, - 15,15,30,16,0,255,7,192,24,48,32,8,65,4,67,4, - 133,2,129,2,129,2,129,2,129,2,65,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,128,66,128,130,129,2,130,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,132,68,68,132,66,128,66,129,130,128,66, - 132,66,68,68,67,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,132,65,132,130,130,132,130, - 136,130,143,194,128,130,64,132,64,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,68,4, - 132,2,132,2,135,130,128,66,128,66,68,68,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,132,66,4,132,2,132,2,135,130,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,128,130,128,130, - 129,2,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 131,130,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,67,132,68,68, - 132,66,132,66,131,194,128,66,128,66,64,132,67,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,146,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,140,194,149,66,132,66,132,66, - 132,66,95,244,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,100,140,146,148,18, - 132,34,132,66,132,130,95,244,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,100, - 140,146,148,18,132,34,132,18,132,146,95,100,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,20,140,50,148,82,132,146,132,250,132,18,95,20, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,244,140,130,148,130,132,226,132,18, - 132,146,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,116,140,130,148,130, - 132,226,132,146,132,146,95,100,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,244, - 140,18,148,18,132,34,132,34,132,66,95,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,98,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,100,140,146,148,146,132,114,132,18, - 132,18,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,76,100,146,146,130,146, - 132,146,136,146,144,146,94,100,64,4,32,8,24,48,7,192, - 14,12,24,16,1,0,32,16,65,8,67,8,133,4,129,4, - 129,4,129,4,129,4,129,4,65,8,71,200,32,16,14,12, - 24,16,1,0,32,16,71,136,72,72,136,68,128,68,129,132, - 130,4,132,4,136,4,72,8,79,200,32,16,14,12,24,16, - 1,0,32,16,71,136,72,72,136,68,128,68,131,132,128,68, - 128,68,136,68,72,72,71,136,32,16,14,12,24,16,1,0, - 32,16,64,136,65,136,130,132,132,132,136,132,136,132,143,196, - 128,132,64,136,64,136,32,16,14,12,24,16,1,0,32,16, - 79,200,72,8,136,4,136,4,143,132,128,68,128,68,128,68, - 72,72,71,136,32,16,14,12,24,16,1,0,32,16,67,136, - 68,8,136,4,136,4,143,132,136,68,136,68,136,68,72,72, - 71,136,32,16,14,12,24,16,1,0,32,16,79,200,64,72, - 128,68,128,132,128,132,128,132,129,4,129,4,65,8,65,8, - 32,16,14,12,24,16,1,0,32,16,71,136,72,72,136,68, - 136,68,135,132,136,68,136,68,136,68,72,72,71,136,32,16, - 14,12,24,16,1,0,32,16,71,136,72,72,136,68,136,68, - 135,196,128,68,128,68,128,68,64,136,71,8,32,16,16,12, - 24,16,0,0,64,2,136,49,152,73,168,133,136,133,136,133, - 136,133,136,133,136,133,136,73,190,49,64,2,16,12,24,16, - 0,0,64,2,136,17,152,49,168,81,136,17,136,17,136,17, - 136,17,136,17,136,17,190,125,64,2,16,12,24,16,0,0, - 64,2,136,121,152,133,168,133,136,5,136,25,136,33,136,65, - 136,129,136,129,190,253,64,2,16,12,24,16,0,0,64,2, - 136,121,152,133,168,133,136,5,136,57,136,5,136,5,136,133, - 136,133,190,121,64,2,16,12,24,16,0,0,64,2,136,9, - 152,25,168,41,136,73,136,137,136,137,136,253,136,9,136,9, - 190,9,64,2,16,12,24,16,0,0,64,2,136,253,152,129, - 168,129,136,129,136,249,136,5,136,5,136,5,136,133,190,121, - 64,2,16,12,24,16,0,0,64,2,136,57,152,65,168,129, - 136,129,136,249,136,133,136,133,136,133,136,133,190,121,64,2, - 16,12,24,16,0,0,64,2,137,249,152,9,168,9,136,17, - 136,17,136,17,136,33,136,33,136,33,190,33,64,2,16,12, - 24,16,0,0,64,2,136,121,152,133,168,133,136,133,136,121, - 136,133,136,133,136,133,136,133,190,121,64,2,16,12,24,16, - 0,0,64,2,136,121,152,133,168,133,136,133,136,125,136,5, - 136,5,136,5,136,9,190,113,64,2,16,12,24,16,0,0, - 64,2,156,49,162,73,162,133,130,133,132,133,136,133,144,133, - 160,133,160,73,190,49,64,2,7,10,10,16,5,0,32,96, - 160,32,32,32,32,32,32,250,8,10,10,16,4,0,120,132, - 132,4,24,32,64,128,128,253,8,10,10,16,4,0,120,132, - 132,4,56,4,4,132,132,121,8,10,10,16,4,0,8,24, - 40,72,136,136,252,8,8,9,8,10,10,16,4,0,252,128, - 128,128,248,4,4,4,132,121,8,10,10,16,4,0,56,64, - 128,128,248,132,132,132,132,121,8,10,10,16,4,0,252,4, - 4,8,8,8,16,16,16,17,8,10,10,16,4,0,120,132, - 132,132,120,132,132,132,132,121,8,10,10,16,4,0,120,132, - 132,132,124,4,4,4,8,113,14,10,20,16,1,0,32,192, - 97,32,162,16,34,16,34,16,34,16,34,16,34,16,33,32, - 248,196,14,10,20,16,1,0,32,64,96,192,161,64,32,64, - 32,64,32,64,32,64,32,64,32,64,249,244,14,10,20,16, - 1,0,33,224,98,16,162,16,32,16,32,96,32,128,33,0, - 34,0,34,0,251,244,14,10,20,16,1,0,33,224,98,16, - 162,16,32,16,32,224,32,16,32,16,34,16,34,16,249,228, - 14,10,20,16,1,0,32,32,96,96,160,160,33,32,34,32, - 34,32,35,240,32,32,32,32,248,36,14,10,20,16,1,0, - 35,240,98,0,162,0,34,0,35,224,32,16,32,16,32,16, - 34,16,249,228,14,10,20,16,1,0,32,224,97,0,162,0, - 34,0,35,224,34,16,34,16,34,16,34,16,249,228,14,10, - 20,16,1,0,35,240,96,16,160,16,32,32,32,32,32,32, - 32,64,32,64,32,64,248,68,14,10,20,16,1,0,33,224, - 98,16,162,16,34,16,33,224,34,16,34,16,34,16,34,16, - 249,228,14,10,20,16,1,0,33,224,98,16,162,16,34,16, - 33,240,32,16,32,16,32,16,32,32,249,196,15,10,20,16, - 1,0,120,96,132,144,133,8,5,8,25,8,33,8,65,8, - 129,8,128,144,252,98,14,12,24,16,1,0,32,16,64,8, - 71,136,136,68,128,68,135,196,136,68,136,68,136,196,71,72, - 64,8,32,16,14,12,24,16,1,0,40,16,72,8,72,8, - 139,132,140,68,136,68,136,68,136,68,136,68,76,72,75,136, - 32,16,14,12,24,16,1,0,32,16,64,8,71,136,136,68, - 136,4,136,4,136,4,136,4,136,68,71,136,64,8,32,16, - 14,12,24,16,1,255,32,80,64,72,64,72,135,68,136,196, - 136,68,136,68,136,68,136,68,72,200,71,72,32,16,14,12, - 24,16,1,0,32,16,64,8,71,136,136,68,136,68,143,196, - 136,4,136,4,136,68,71,136,64,8,32,16,14,12,24,16, - 1,255,33,144,66,8,66,8,130,4,143,132,130,4,130,4, - 130,4,130,4,66,8,66,8,32,16,14,12,24,16,1,0, - 32,16,64,72,71,72,136,132,136,132,136,132,135,4,132,4, - 135,132,72,72,72,72,39,144,14,12,24,16,1,255,40,16, - 72,8,72,8,139,132,140,68,136,68,136,68,136,68,136,68, - 72,72,72,72,32,16,13,12,24,16,1,0,34,32,66,16, - 64,16,134,8,130,8,130,8,130,8,130,8,130,8,66,16, - 79,144,32,32,13,13,26,16,1,255,32,160,64,144,64,16, - 129,136,128,136,128,136,128,136,128,136,128,136,64,144,64,144, - 41,32,6,0,14,12,24,16,1,255,32,16,72,8,72,8, - 136,132,137,4,138,4,140,4,138,4,137,4,72,136,72,72, - 32,16,13,12,24,16,1,0,32,32,70,16,66,16,130,8, - 130,8,130,8,130,8,130,8,130,8,66,16,79,144,32,32, - 15,12,24,16,1,0,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,137,34,73,36,64,4,32,8,14,12, - 24,16,1,255,32,16,64,8,75,136,140,68,136,68,136,68, - 136,68,136,68,136,68,72,72,64,8,32,16,14,12,24,16, - 1,0,32,16,64,8,71,136,136,68,136,68,136,68,136,68, - 136,68,136,68,71,136,64,8,32,16,14,12,24,16,1,0, - 32,16,64,8,75,136,140,68,136,68,136,68,136,68,136,68, - 140,68,75,136,72,8,40,16,14,12,24,16,1,255,32,16, - 64,8,71,72,136,196,136,68,136,68,136,68,136,68,136,196, - 71,72,64,72,32,80,14,12,24,16,1,0,32,16,64,8, - 75,136,140,68,136,68,136,4,136,4,136,4,136,4,72,8, - 64,8,32,16,14,12,24,16,1,0,32,16,64,8,71,136, - 136,68,136,4,134,4,129,132,128,68,136,68,71,136,64,8, - 32,16,14,12,24,16,1,255,32,16,66,8,66,8,143,132, - 130,4,130,4,130,4,130,4,130,4,66,8,65,136,32,16, - 14,12,24,16,1,0,32,16,64,8,72,72,136,68,136,68, - 136,68,136,68,136,68,136,196,71,72,64,8,32,16,14,12, - 24,16,1,255,32,16,64,8,72,72,136,68,136,68,132,132, - 132,132,132,132,131,4,67,8,64,8,32,16,15,12,24,16, - 1,0,32,8,64,4,72,36,137,34,137,34,137,34,137,34, - 137,34,137,34,70,196,64,4,32,8,14,12,24,16,1,255, - 32,16,64,8,72,72,136,68,132,132,131,4,131,4,132,132, - 136,68,72,72,64,8,32,16,14,12,24,16,1,0,32,16, - 64,8,72,72,136,68,136,68,136,68,136,68,132,196,131,68, - 64,72,64,72,39,144,14,12,24,16,1,0,32,16,64,8, - 79,200,128,68,128,132,129,4,130,4,132,4,136,4,79,200, - 64,8,32,16,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,130,130,132,66,132,66,135,194,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,132,66, - 132,66,68,68,71,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 132,2,132,2,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,4,68,132, - 132,66,132,66,132,66,132,66,132,66,68,132,71,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,68,4,132,2,132,2,135,130,132,2,132,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,68,4,132,2,132,2,135,130,132,2, - 132,2,68,4,68,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 133,194,132,66,132,66,68,196,67,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 132,66,132,66,135,194,132,66,132,66,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,65,4,129,2,129,2,129,2,129,2,129,2,65,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,228,64,132,128,130,128,130,128,130,128,130, - 132,130,68,132,67,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,130,133,2, - 134,2,133,2,132,130,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,4,68,4, - 132,2,132,2,132,2,132,2,132,2,68,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,134,194,134,194,133,66,133,66,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,134,66,134,66,133,66,133,66, - 132,194,68,196,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 132,66,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,132,68,68, - 132,66,132,66,135,130,132,2,132,2,68,4,68,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,132,66,132,66,132,66,133,66,70,196, - 67,132,32,104,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,133,2, - 132,130,68,132,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 131,130,128,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,79,228,65,4, - 129,2,129,2,129,2,129,2,129,2,65,4,65,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,132,66,132,66,132,66,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,72,36,72,36,132,66,132,66,132,66,130,130, - 130,130,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,66,133,66, - 133,66,134,194,134,194,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 130,130,130,130,129,2,130,130,130,130,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 72,36,72,36,132,66,132,66,130,130,129,2,129,2,65,4, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,129,2,130,2, - 132,2,68,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,128,66, - 131,194,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,36,8,68,4,68,4, - 133,130,134,66,132,66,132,66,132,66,70,68,69,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,132,2,132,2,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,72,64,68,64,68,131,66,132,194,132,66,132,66, - 132,66,68,196,67,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,132,66, - 135,194,132,2,132,66,67,132,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,196,65,4, - 129,2,129,2,135,194,129,2,129,2,65,4,65,4,33,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,68,67,68,132,130,132,130,131,2,130,2,131,130,68,68, - 68,68,35,136,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,36,8,68,4,68,4,133,130,134,66,132,66,132,66, - 132,66,68,68,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,33,8,65,4,64,4,131,2,129,2, - 129,2,129,2,129,2,65,4,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,72,64,68,64,4, - 128,194,128,66,128,66,128,66,128,66,64,68,68,132,35,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,4,68,4,132,130,133,2,134,2,134,2,133,2,68,132, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,4,65,4,129,2,129,2,129,2,129,2, - 129,2,65,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,73,36,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,66,132,66,132,66,68,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,66,132,66,132,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,69,132,134,66,132,66,132,66,132,66, - 134,66,69,132,68,4,36,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,68,132,194,132,66, - 132,66,132,66,132,66,68,196,67,68,32,72,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,2,132,2,132,2,68,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,131,130,128,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,65,4,65,4,135,194,129,2,129,2,129,2, - 129,2,65,4,64,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,68, - 132,66,130,130,130,130,130,130,129,2,65,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,72,36,137,34,137,34,137,34,137,34,137,34,70,196, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,132,66,130,130,129,2,130,130, - 132,66,68,68,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,130,194,129,66,64,68,64,68,35,136,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,71,196, - 128,66,128,130,129,2,130,2,132,2,71,196,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,132,66,132,66,132,66,132,66,132,66,66,132, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,188,243,62,234,190,251,190,251,190, - 251,190,96,12,127,252,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,238, - 251,222,251,190,251,126,96,12,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,123,156, - 243,110,235,238,251,222,251,238,251,110,96,156,127,252,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 127,252,123,236,243,206,235,174,251,110,251,6,251,238,96,236, - 127,252,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,12,243,126,235,126,251,30,251,238, - 251,110,96,156,127,252,63,248,31,240,7,192,13,13,26,16, - 1,0,15,128,63,224,127,240,119,16,230,248,214,248,246,56, - 246,216,246,216,65,48,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,118,16,231,216,215,216,247,184, - 247,184,247,120,65,112,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,119,48,230,216,214,216,247,56, - 246,216,246,216,65,48,127,240,63,224,15,128,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,110, - 251,142,251,238,251,238,96,156,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,115,156, - 237,110,253,110,251,110,247,110,239,110,97,156,127,252,63,248, - 31,240,7,192,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,144,137,161,133,160,133,160,133,145,201,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,160,69,160,133,161,5, - 145,201,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,137,160,69, - 161,133,160,69,145,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 146,137,162,133,163,197,160,133,144,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,201,161,5,161,133,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,162,5,163,133,162,69, - 145,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,201,160,69, - 160,69,160,133,144,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 145,137,162,69,161,133,162,69,145,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,137,162,69,161,197,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,146,105,166,149,162,149,162,149, - 151,105,80,10,76,50,35,196,24,24,7,224,15,15,30,16, - 0,255,7,192,31,240,63,248,126,252,125,124,251,190,251,190, - 251,190,251,190,251,190,125,124,126,252,63,248,31,240,7,192 - }; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 6, '1' Height: 3 - Calculated Max Values w= 8 h=10 x= 2 y= 4 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_75r[580] U8G_FONT_SECTION("u8g_font_unifont_75r") = { - 0,16,16,0,254,6,1,137,0,0,32,79,0,11,0,8, - 0,7,7,7,8,1,1,254,254,254,254,254,254,254,7,7, - 7,8,1,1,254,130,130,130,130,130,254,7,7,7,8,1, - 1,124,130,130,130,130,130,124,7,7,7,8,1,1,254,130, - 186,186,186,130,254,7,7,7,8,1,1,254,130,254,130,254, - 130,254,7,7,7,8,1,1,254,170,170,170,170,170,254,7, - 7,7,8,1,1,254,170,254,170,254,170,254,7,7,7,8, - 1,1,254,166,146,202,166,146,254,7,7,7,8,1,1,254, - 202,146,166,202,146,254,7,7,7,8,1,1,254,170,214,170, - 214,170,254,4,4,4,8,2,4,240,240,240,240,4,4,4, - 8,2,4,240,144,144,240,7,4,4,8,1,4,254,254,254, - 254,7,4,4,8,1,4,254,130,130,254,4,7,7,8,2, - 2,240,240,240,240,240,240,240,4,7,7,8,2,2,240,144, - 144,144,144,144,240,8,3,3,8,0,4,63,126,252,8,3, - 3,8,0,4,63,66,252,6,6,6,8,1,3,48,48,120, - 120,252,252,6,6,6,8,1,3,48,48,72,72,132,252,6, - 3,3,8,1,3,48,120,252,6,3,3,8,1,3,48,72, - 252,6,6,6,8,1,3,192,240,252,252,240,192,6,6,6, - 8,1,3,192,176,140,140,176,192,4,4,4,8,2,4,192, - 240,240,192,4,4,4,8,2,4,192,176,176,192,6,5,5, - 8,1,3,192,240,252,240,192,6,5,5,8,1,3,192,176, - 140,176,192,6,6,6,8,1,3,252,252,120,120,48,48,6, - 6,6,8,1,3,252,132,72,72,48,48,6,3,3,8,1, - 3,252,120,48,6,3,3,8,1,3,252,72,48,6,6,6, - 8,1,3,12,60,252,252,60,12,6,6,6,8,1,3,12, - 52,196,196,52,12,4,4,4,8,2,4,48,240,240,48,4, - 4,4,8,2,4,48,208,208,48,6,5,5,8,1,3,12, - 60,252,60,12,6,5,5,8,1,3,12,52,196,52,12,7, - 7,7,8,1,2,16,56,124,254,124,56,16,7,7,7,8, - 1,2,16,40,68,130,68,40,16,7,7,7,8,1,2,16, - 40,84,186,84,40,16,7,7,7,8,1,2,56,68,178,186, - 154,68,56,6,10,10,8,1,1,48,48,72,72,132,132,72, - 72,48,48,7,7,7,8,1,2,56,68,130,130,130,68,56, - 7,7,7,8,1,2,40,0,130,0,130,0,40,7,7,7, - 8,1,2,56,108,170,170,170,108,56,7,7,7,8,1,2, - 56,68,146,170,146,68,56,7,7,7,8,1,2,56,124,254, - 254,254,124,56}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 3 y= 6 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_76[2540] U8G_FONT_SECTION("u8g_font_unifont_76") = { - 0,16,16,0,254,10,2,62,4,228,32,159,0,14,254,10, - 0,7,12,12,8,1,0,16,146,68,0,56,124,124,56,0, - 68,146,16,8,4,4,8,0,6,32,118,255,126,7,8,8, - 8,1,2,56,124,254,16,16,16,16,32,16,16,32,16,0, - 254,139,200,3,192,47,241,4,36,138,80,40,18,10,80,73, - 148,4,33,71,224,8,16,16,136,120,30,16,136,8,16,7, - 224,7,11,11,8,1,0,68,68,72,72,80,82,4,96,144, - 144,96,7,6,6,8,1,3,16,16,254,56,108,68,7,7, - 7,8,1,3,16,16,238,68,84,108,68,5,9,9,8,2, - 0,8,16,32,64,128,64,40,24,56,6,8,8,8,1,0, - 252,132,136,144,160,148,140,156,8,8,8,8,0,0,60,66, - 129,153,153,129,66,60,8,6,6,8,0,2,24,36,36,102, - 165,66,8,6,6,8,0,2,66,165,102,36,36,24,5,6, - 6,8,1,2,8,16,96,144,144,96,7,9,9,8,1,0, - 12,18,18,12,16,96,144,144,96,7,6,6,8,1,1,124, - 198,0,84,198,254,7,7,7,8,1,1,124,130,186,124,146, - 130,254,7,7,7,8,1,0,254,130,130,130,130,130,254,7, - 8,8,8,1,0,8,254,138,138,202,178,130,254,7,7,7, - 8,1,0,254,130,170,146,170,130,254,5,10,10,8,2,0, - 136,136,80,80,32,32,80,80,136,136,7,12,12,8,1,2, - 10,160,8,130,56,124,254,16,16,16,16,32,12,13,26,16, - 2,0,36,128,73,0,73,0,36,128,36,128,73,0,0,0, - 127,32,255,208,191,80,128,80,128,224,127,0,11,13,26,16, - 2,0,4,0,10,0,17,0,32,128,64,64,128,32,128,32, - 128,32,128,32,128,32,128,32,128,32,255,224,11,13,26,16, - 2,0,4,0,14,0,31,0,63,128,127,192,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,13,13,26,16, - 1,255,5,0,15,128,15,128,103,48,242,120,127,240,242,120, - 98,48,4,0,4,0,4,0,8,0,16,0,13,12,24,16, - 1,0,0,8,3,144,71,208,143,208,159,208,255,176,127,184, - 31,200,15,200,7,200,3,136,0,16,7,4,4,8,1,2, - 252,62,62,28,7,4,4,8,1,2,126,248,248,112,7,4, - 4,8,1,2,252,34,50,28,4,7,7,8,2,2,16,16, - 112,208,144,144,96,7,4,4,8,1,2,126,136,152,112,4, - 7,7,8,2,0,96,144,144,208,112,16,16,8,12,12,8, - 0,0,231,165,126,129,165,165,129,90,90,66,189,231,4,10, - 10,8,2,0,224,16,16,32,32,64,64,128,128,112,16,16, - 32,16,0,254,7,224,24,24,36,36,92,58,92,58,190,125, - 190,125,190,125,129,129,129,129,131,193,67,194,71,226,35,196, - 24,24,7,224,15,13,26,16,0,255,4,64,8,32,16,16, - 16,16,19,144,12,96,62,248,68,68,133,66,131,130,2,128, - 4,64,24,48,13,15,30,16,1,254,6,0,2,0,255,248, - 71,16,63,224,2,0,26,192,34,32,31,192,18,64,15,128, - 10,128,7,0,10,128,2,0,5,8,8,8,2,0,112,136, - 80,32,248,32,32,32,5,9,9,8,2,0,32,112,32,248, - 32,96,48,32,32,6,10,10,8,1,0,56,36,36,56,32, - 168,112,32,112,168,5,9,9,8,2,0,32,112,32,248,32, - 32,32,32,32,7,7,7,8,1,0,56,16,146,254,146,16, - 56,8,9,9,8,0,1,30,33,64,194,199,194,64,33,30, - 11,11,22,16,2,0,21,0,27,0,0,0,85,64,164,160, - 164,160,164,160,149,32,78,64,31,0,4,0,11,12,24,16, - 3,255,4,0,21,0,36,128,78,64,213,96,213,96,206,96, - 228,224,223,96,142,32,21,0,4,0,8,8,8,8,0,0, - 12,2,57,121,13,62,99,193,7,8,8,8,1,0,124,146, - 146,146,186,214,146,124,16,16,32,16,0,254,7,224,24,24, - 32,4,64,2,64,2,156,49,190,49,255,3,231,131,231,199, - 255,255,127,254,127,254,63,252,31,248,7,224,13,10,20,16, - 1,0,255,248,255,248,0,0,0,0,255,248,255,248,0,0, - 0,0,255,248,255,248,13,10,20,16,1,0,248,248,248,248, - 0,0,0,0,255,248,255,248,0,0,0,0,255,248,255,248, - 13,10,20,16,1,0,255,248,255,248,0,0,0,0,248,248, - 248,248,0,0,0,0,255,248,255,248,13,10,20,16,1,0, - 248,248,248,248,0,0,0,0,248,248,248,248,0,0,0,0, - 255,248,255,248,13,10,20,16,1,0,255,248,255,248,0,0, - 0,0,255,248,255,248,0,0,0,0,248,248,248,248,13,10, - 20,16,1,0,248,248,248,248,0,0,0,0,255,248,255,248, - 0,0,0,0,248,248,248,248,13,10,20,16,1,0,255,248, - 255,248,0,0,0,0,248,248,248,248,0,0,0,0,248,248, - 248,248,13,10,20,16,1,0,248,248,248,248,0,0,0,0, - 248,248,248,248,0,0,0,0,248,248,248,248,7,7,7,8, - 1,0,146,124,124,238,124,124,146,8,10,10,8,0,1,60, - 66,129,165,129,153,165,129,66,60,8,9,9,8,0,1,60, - 66,129,165,129,165,153,66,60,8,9,9,8,0,1,60,126, - 255,219,255,219,231,126,60,7,7,7,8,1,2,146,84,56, - 238,56,84,146,6,10,10,8,2,0,224,48,24,20,20,20, - 20,24,48,224,6,10,10,8,1,0,28,48,96,160,160,160, - 160,96,48,28,5,11,11,8,2,0,136,136,112,136,136,136, - 112,32,248,32,32,5,9,9,8,2,0,112,136,136,136,112, - 32,248,32,32,5,10,10,8,2,1,32,32,248,32,32,112, - 136,136,136,112,7,8,8,8,1,1,14,6,10,112,136,136, - 136,112,6,10,10,8,1,0,4,4,4,116,140,12,20,252, - 4,4,6,10,10,8,1,0,64,64,224,64,88,100,68,72, - 72,72,7,9,9,8,1,0,214,84,124,84,214,16,56,40, - 56,8,11,11,8,0,255,8,89,203,73,73,73,62,8,62, - 8,8,6,10,10,8,1,0,248,132,132,132,248,128,128,128, - 128,252,7,10,10,8,1,0,68,170,40,40,16,16,16,16, - 16,16,7,7,7,8,1,0,130,68,56,68,68,68,56,7, - 10,10,8,1,0,130,124,40,40,40,40,40,40,124,130,7, - 8,8,8,1,0,124,146,144,96,12,18,146,124,8,9,9, - 8,0,0,28,34,34,18,116,148,148,101,2,7,10,10,8, - 1,0,168,248,170,174,170,170,170,170,12,248,7,6,6,8, - 1,1,56,68,68,238,0,254,7,10,10,8,1,0,168,248, - 168,168,168,168,168,168,170,6,7,7,7,8,1,0,30,6, - 138,82,32,80,136,8,10,10,8,0,0,49,78,132,8,16, - 60,98,162,162,28,6,6,6,8,1,2,84,168,0,0,84, - 168,6,9,9,8,1,0,132,132,72,72,252,72,72,132,132, - 7,13,13,8,1,0,16,56,146,186,198,130,68,68,68,130, - 130,130,254,7,11,11,8,1,0,16,56,198,130,68,68,68, - 130,130,130,254,7,9,9,8,1,0,170,254,130,130,68,68, - 130,130,254,7,10,10,8,1,0,16,40,68,68,68,68,40, - 238,130,254,6,11,11,8,1,0,4,60,68,132,132,116,36, - 68,132,132,252,6,8,8,8,1,0,48,72,72,48,72,72, - 132,252,7,13,13,8,1,0,16,56,146,186,254,254,124,124, - 124,254,254,254,254,7,11,11,8,1,0,16,56,254,238,124, - 124,124,254,254,254,254,7,8,8,8,1,0,170,254,254,124, - 124,254,254,254,7,10,10,8,1,0,16,56,108,68,108,124, - 56,254,254,254,6,11,11,8,1,0,4,60,108,252,252,124, - 60,124,252,252,252,6,8,8,8,1,0,48,120,120,48,120, - 120,252,252,7,10,10,8,1,0,16,16,56,124,254,254,254, - 124,16,56,7,9,9,8,1,0,108,146,130,130,130,68,40, - 16,16,5,10,10,8,2,0,32,32,80,80,136,136,80,80, - 32,32,7,10,10,8,1,0,56,56,56,16,254,254,214,16, - 16,56,7,10,10,8,1,0,16,16,40,68,130,130,130,124, - 16,56,7,9,9,8,1,0,108,254,254,254,254,124,56,16, - 16,5,10,10,8,2,0,32,32,112,112,248,248,112,112,32, - 32,7,10,10,8,1,0,56,40,56,16,238,186,214,16,16, - 56,8,11,11,8,0,0,8,81,146,146,146,73,73,73,82, - 129,126,4,10,10,8,1,0,16,16,16,16,16,16,16,112, - 240,224,6,10,10,8,1,0,16,24,20,20,16,16,16,112, - 240,224,8,11,11,8,0,0,28,23,17,17,17,17,113,241, - 231,15,14,8,11,11,8,0,0,28,23,17,29,23,17,113, - 241,231,15,14,6,12,12,8,1,0,128,128,128,128,128,184, - 204,140,136,144,160,192,6,11,11,8,1,0,128,128,156,252, - 228,132,156,252,228,4,4,6,13,13,8,1,255,8,72,76, - 124,248,200,72,76,124,248,200,72,64,7,10,10,8,1,0, - 40,16,16,146,124,146,16,16,16,40,7,10,10,8,1,0, - 56,40,16,214,186,214,16,16,40,16,16,16,32,16,0,254, - 3,192,5,32,10,152,18,72,10,208,4,48,48,4,72,10, - 140,17,80,9,160,5,174,38,82,88,82,134,30,92,0,32, - 15,16,32,16,0,254,3,128,4,64,4,64,8,32,0,40, - 57,24,27,56,41,0,33,8,67,132,64,4,128,34,128,66, - 126,252,0,64,0,32,15,16,32,16,0,254,3,128,4,64, - 4,64,8,32,0,40,59,24,24,184,41,0,34,8,67,132, - 64,4,128,34,128,66,126,252,0,64,0,32,15,16,32,16, - 0,254,3,128,4,64,4,64,8,32,0,40,57,24,24,184, - 43,0,32,136,67,4,64,4,128,34,128,66,126,252,0,64, - 0,32,15,16,32,16,0,254,3,128,4,64,4,64,8,32, - 0,40,58,152,26,184,43,128,32,136,64,132,64,4,128,34, - 128,66,126,252,0,64,0,32,15,16,32,16,0,254,3,128, - 4,64,4,64,8,32,0,40,59,152,26,56,43,0,32,136, - 67,4,64,4,128,34,128,66,126,252,0,64,0,32,15,16, - 32,16,0,254,3,128,4,64,4,64,8,32,0,40,57,152, - 26,56,43,128,34,72,65,132,64,4,128,34,128,66,126,252, - 0,64,0,32,15,16,32,16,0,254,3,128,4,64,4,64, - 8,32,0,40,59,152,24,184,41,0,33,8,65,4,64,4, - 128,34,128,66,126,252,0,64,0,32,15,16,32,16,0,254, - 3,128,4,64,4,64,8,32,0,40,56,24,24,56,40,0, - 32,8,64,4,64,4,128,34,128,66,126,252,0,64,0,32, - 16,16,32,16,0,254,3,192,5,224,14,248,30,120,14,240, - 4,48,48,4,120,14,252,31,112,15,224,7,238,38,94,120, - 94,254,30,124,0,32,16,16,32,16,0,254,7,224,31,248, - 62,124,125,190,123,222,255,143,247,223,231,255,243,239,247,239, - 239,247,111,182,113,14,63,188,31,248,7,224,16,16,32,16, - 0,254,7,224,24,24,33,132,66,66,68,34,128,113,136,33, - 152,1,140,17,136,17,144,9,80,74,78,242,32,68,24,24, - 7,224,13,12,24,16,0,255,7,0,24,192,32,32,64,16, - 77,144,146,72,146,72,77,144,64,16,32,32,24,192,7,0, - 12,11,22,16,2,0,24,0,24,0,16,0,30,0,16,0, - 95,128,128,128,128,64,129,64,66,48,60,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 4 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_77[1657] U8G_FONT_SECTION("u8g_font_unifont_77") = { - 0,16,16,0,254,11,3,133,6,29,32,99,0,14,254,11, - 255,9,9,18,16,3,1,255,128,128,128,128,128,128,128,136, - 128,128,128,128,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,128,128,160,128,128,128,130,128,128,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,160,128,128,128,136, - 128,128,128,130,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,128,128,128,128,162,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,162,128,128,128,136, - 128,128,128,162,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,162,128,128,128,162,128,128,128,255, - 128,13,12,24,16,0,255,7,0,24,192,32,32,64,16,64, - 16,128,200,128,200,64,16,64,16,32,32,24,192,7,0,13, - 12,24,16,0,255,7,0,24,192,32,32,64,16,64,16,152, - 200,152,200,64,16,64,16,32,32,24,192,7,0,13,12,24, - 16,0,255,7,0,31,192,63,224,127,240,127,240,255,56,255, - 56,127,240,127,240,63,224,15,128,7,0,13,12,24,16,0, - 255,7,0,31,192,63,224,127,240,127,240,231,56,231,56,127, - 240,127,240,63,224,15,128,7,0,13,2,4,16,1,4,255, - 248,255,248,13,2,4,16,1,4,248,248,248,248,13,6,12, - 16,1,2,255,248,255,248,0,0,0,0,255,248,255,248,13, - 6,12,16,1,2,248,248,248,248,0,0,0,0,255,248,255, - 248,13,6,12,16,1,2,255,248,255,248,0,0,0,0,248, - 248,248,248,13,6,12,16,1,2,248,248,248,248,0,0,0, - 0,248,248,248,248,6,11,11,8,1,0,224,156,132,132,228, - 156,128,128,128,128,128,6,11,11,8,1,0,224,252,252,252, - 252,156,128,128,128,128,128,16,14,28,16,0,255,7,50,95, - 124,62,126,124,31,248,39,116,67,34,129,1,0,2,128,4, - 64,8,32,16,16,32,8,64,4,14,12,24,16,1,0,3, - 128,4,64,4,64,3,128,1,0,7,192,1,0,65,8,225, - 28,65,8,33,16,31,224,13,13,26,16,1,0,128,8,64, - 16,32,32,16,64,8,128,5,0,2,0,5,0,8,128,80, - 80,32,32,80,80,128,8,9,14,28,16,3,255,8,0,8, - 0,127,128,137,128,136,0,126,0,9,0,9,0,62,0,72, - 0,60,0,10,0,28,0,8,0,15,11,22,16,0,0,1, - 0,17,16,127,252,57,56,84,84,84,84,146,146,146,146,254, - 254,124,124,56,56,11,8,16,16,2,0,63,128,95,192,143, - 192,135,128,128,0,15,128,18,64,34,32,11,13,26,16,2, - 255,14,0,17,0,17,0,17,0,14,0,4,0,228,224,245, - 224,117,192,53,128,14,0,4,0,4,0,13,13,26,16,1, - 255,2,0,66,16,47,160,16,64,32,32,32,32,226,56,32, - 32,32,32,16,64,47,160,66,16,2,0,15,13,26,16,0, - 0,1,0,2,128,57,56,127,252,253,126,5,64,3,128,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,16,0, - 254,1,128,2,64,2,64,116,46,142,113,133,161,78,114,53, - 172,53,172,78,114,133,161,142,113,116,46,2,64,2,64,1, - 128,15,16,32,16,0,254,1,0,2,128,4,64,52,88,76, - 100,132,66,178,154,202,166,26,176,16,16,27,176,10,160,58, - 184,38,200,25,48,1,0,15,15,30,16,0,255,1,0,2, - 128,4,64,4,64,8,0,107,252,136,2,136,34,96,36,24, - 16,6,80,0,136,33,8,38,72,24,48,12,15,30,16,2, - 255,192,0,48,0,12,0,3,0,0,192,0,48,0,0,255, - 240,0,0,0,48,0,192,3,0,12,0,48,0,192,0,12, - 15,30,16,2,255,0,48,0,192,3,0,12,0,48,0,192, - 0,0,0,255,240,0,0,192,0,48,0,12,0,3,0,0, - 192,0,48,13,14,28,16,1,255,2,0,5,0,5,0,8, - 128,8,128,18,64,18,64,34,32,34,32,66,16,64,16,130, - 8,128,8,255,248,6,11,11,8,1,255,4,8,16,32,64, - 252,8,16,32,64,128,11,9,18,16,2,0,59,128,68,64, - 138,32,138,32,68,64,59,128,17,0,59,128,17,0,11,11, - 22,16,2,0,7,0,3,0,5,0,56,224,68,96,142,160, - 149,0,104,128,48,128,17,0,14,0,10,14,28,16,3,255, - 1,192,0,192,1,64,14,0,17,0,56,128,84,128,139,0, - 134,0,68,0,56,0,16,0,56,0,16,0,8,12,12,16, - 4,254,7,3,5,56,68,130,130,68,56,16,56,16,11,10, - 20,16,2,0,0,224,0,96,2,160,1,0,58,128,68,0, - 130,0,130,0,68,0,56,0,15,13,26,16,0,254,224,14, - 192,6,168,10,16,16,43,160,4,64,8,32,8,32,4,64, - 3,128,1,0,3,128,1,0,7,12,12,8,0,0,16,56, - 84,16,56,16,56,68,130,130,68,56,14,7,14,16,0,255, - 56,0,68,16,130,136,131,252,130,136,68,16,56,0,7,7, - 7,8,0,255,56,68,130,130,130,68,56,7,7,7,8,0, - 255,56,124,254,254,254,124,56,5,5,5,8,2,0,112,136, - 136,136,112,11,6,12,16,2,0,59,128,68,64,138,32,138, - 32,68,64,59,128,11,7,14,16,3,255,4,0,117,192,142, - 32,142,32,142,32,117,192,4,0,13,5,10,16,1,0,112, - 112,136,136,143,136,136,136,112,112,14,10,20,16,2,0,24, - 0,39,128,64,124,128,0,128,0,128,0,128,0,64,124,39, - 128,24,0,11,13,26,16,2,0,31,0,10,0,63,128,64, - 64,128,32,128,32,64,64,64,64,64,64,32,128,32,128,32, - 128,31,0,7,9,9,8,0,254,56,68,130,130,68,56,16, - 16,16,6,9,9,8,0,254,112,136,4,4,8,48,32,248, - 32,7,10,10,8,0,254,16,40,68,130,68,40,16,16,124, - 16,7,10,10,8,0,254,146,84,56,254,56,84,146,16,124, - 16,13,11,22,16,1,0,2,0,2,0,2,0,2,0,114, - 112,8,128,5,0,242,120,8,128,5,0,2,0,6,11,11, - 8,1,0,36,40,48,40,36,32,112,136,136,136,112,6,10, - 10,8,1,254,56,112,224,224,224,112,56,16,124,16,8,7, - 7,8,0,3,66,36,24,255,24,36,66,7,8,8,8,0, - 0,68,68,68,40,40,40,16,254,7,8,8,8,0,0,254, - 16,40,40,40,68,68,68,6,8,8,8,1,0,252,132,132, - 132,148,252,64,252,13,13,26,16,0,255,7,0,28,192,60, - 224,92,240,64,16,135,8,143,136,231,56,112,112,96,48,39, - 32,31,192,7,0,13,13,26,16,0,255,7,0,24,192,48, - 96,72,144,64,16,133,8,128,8,133,8,64,16,72,144,48, - 96,24,192,7,0,13,13,26,16,1,255,255,248,128,8,135, - 8,136,136,136,136,135,8,130,8,130,8,130,8,131,136,130, - 8,128,8,255,248,12,9,18,16,2,0,31,128,96,96,134, - 16,134,16,224,112,191,208,169,80,105,96,31,128,12,12,24, - 16,2,0,31,128,96,96,134,16,134,16,224,112,191,208,169, - 80,233,112,191,208,169,80,105,96,31,128,14,11,22,16,1, - 255,31,224,112,56,207,204,188,244,188,244,143,196,160,20,171, - 84,203,76,112,56,31,224,14,14,28,16,1,255,31,224,112, - 56,207,204,188,244,188,244,143,196,160,20,171,84,139,68,160, - 20,171,84,203,76,112,56,31,224}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 15, '1' Height: 13 - Calculated Max Values w=16 h=16 x= 7 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =15 descent=-2 - X Font ascent =15 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[7084] U8G_FONT_SECTION("u8g_font_unifont_78_79") = { - 0,16,16,0,254,15,8,41,11,207,1,255,254,14,254,15, - 254,15,11,22,16,0,2,56,0,124,0,108,0,124,0,60, - 0,14,0,127,252,255,254,217,192,248,224,112,0,14,11,22, - 16,0,1,112,12,248,56,216,112,254,224,127,192,7,128,127, - 192,254,224,216,112,248,56,112,12,15,11,22,16,0,255,112, - 0,248,224,217,192,255,254,127,252,14,0,60,0,124,0,108, - 0,124,0,56,0,15,11,22,16,0,1,112,12,136,50,174, - 68,129,136,121,16,6,32,120,80,129,136,174,68,136,50,112, - 12,14,11,22,16,1,255,0,8,0,20,0,36,0,72,64, - 144,161,32,162,64,84,128,73,0,34,0,28,0,15,15,30, - 16,0,255,7,192,24,48,32,8,65,196,71,228,143,242,143, - 114,158,98,156,2,159,2,79,4,70,4,32,8,24,48,7, - 192,15,15,30,16,0,255,7,192,25,48,35,136,67,132,65, - 4,131,130,135,194,135,194,135,194,139,162,92,116,88,52,32, - 8,24,48,7,192,15,14,28,16,0,255,8,0,15,0,6, - 0,7,192,195,128,227,192,127,254,127,254,227,192,195,128,7, - 192,6,0,15,0,8,0,14,7,14,16,1,3,255,252,192, - 12,176,52,140,196,179,52,192,12,255,252,13,11,22,16,1, - 255,6,192,25,32,41,32,107,240,170,8,169,200,169,136,110, - 8,80,16,32,32,31,192,14,13,26,16,1,0,21,0,42, - 128,42,128,106,128,170,128,170,152,170,164,128,68,128,8,128, - 16,64,32,32,32,31,192,15,15,30,16,0,255,24,48,36, - 72,34,136,18,144,17,16,9,32,8,32,124,252,146,130,146, - 114,146,34,146,66,124,4,32,8,31,240,15,13,26,16,1, - 0,0,16,0,56,0,112,7,238,25,234,35,154,71,10,142, - 10,223,202,36,10,95,250,224,10,192,14,12,12,24,16,1, - 0,48,0,76,0,170,0,149,0,226,128,81,64,40,160,20, - 80,10,80,5,144,2,48,1,240,15,7,14,16,0,3,63, - 240,80,40,143,244,168,22,143,244,80,40,63,240,12,12,24, - 16,1,0,1,240,2,48,5,144,10,80,20,80,40,160,81, - 64,226,128,149,0,170,0,76,0,48,0,15,7,14,16,0, - 3,0,240,121,8,134,108,128,254,134,108,121,8,0,240,15, - 7,14,16,0,3,0,224,121,240,255,56,255,14,255,56,121, - 240,0,224,13,10,20,16,1,255,0,8,0,16,0,32,128, - 64,128,128,65,0,66,0,36,0,40,0,16,0,15,11,22, - 16,0,255,0,4,0,14,64,28,224,56,224,112,112,224,113, - 192,59,128,63,0,30,0,12,0,11,11,22,16,2,1,64, - 64,224,224,113,192,59,128,31,0,14,0,31,0,59,128,113, - 192,224,224,64,64,15,15,30,16,0,255,16,16,56,56,124, - 124,254,254,127,252,63,248,31,240,15,224,31,240,63,248,127, - 252,254,254,124,124,56,56,16,16,12,13,26,16,1,0,192, - 48,96,192,99,128,54,0,28,0,28,0,54,0,51,0,97, - 128,96,192,192,96,192,48,64,0,12,14,28,16,1,255,192, - 48,224,224,99,192,119,0,62,0,28,0,62,0,55,0,115, - 128,97,192,224,224,192,112,192,32,64,0,15,15,30,16,0, - 255,7,192,4,64,5,64,5,64,5,64,253,126,129,2,191, - 250,129,2,253,126,5,64,5,64,5,64,4,64,7,192,15, - 15,30,16,0,255,7,192,7,192,7,192,7,192,7,192,255, - 254,255,254,255,254,255,254,255,254,7,192,7,192,7,192,7, - 192,7,192,15,15,30,16,0,255,3,128,3,128,3,128,3, - 128,3,128,3,128,252,126,252,126,252,126,3,128,3,128,3, - 128,3,128,3,128,3,128,15,15,30,16,0,255,7,192,7, - 192,7,192,7,192,7,192,248,62,248,62,248,62,248,62,248, - 62,7,192,7,192,7,192,7,192,7,192,9,11,22,16,3, - 1,28,0,28,0,28,0,255,128,255,128,255,128,28,0,28, - 0,28,0,28,0,28,0,13,15,30,16,1,255,15,0,9, - 128,9,128,9,128,249,240,128,24,128,24,249,248,121,248,9, - 128,9,128,9,128,9,128,15,128,7,128,13,14,28,16,1, - 255,31,192,16,64,247,120,135,8,191,232,191,232,191,232,135, - 8,247,120,23,64,23,64,23,64,16,64,31,192,15,15,30, - 16,0,255,31,240,7,192,3,128,131,130,131,130,195,134,255, - 254,255,254,255,254,195,134,131,130,131,130,3,128,7,192,31, - 240,15,15,30,16,0,255,1,0,1,0,2,128,255,254,68, - 68,40,40,40,40,16,16,40,40,40,40,68,68,255,254,2, - 128,1,0,1,0,15,15,30,16,0,255,3,128,7,192,7, - 192,3,128,3,128,97,12,249,62,255,254,249,62,97,12,3, - 128,3,128,7,192,7,192,3,128,15,15,30,16,0,255,3, - 128,7,192,7,192,7,192,3,128,113,28,249,62,255,254,249, - 62,113,28,3,128,7,192,7,192,7,192,3,128,15,15,30, - 16,0,255,7,192,15,224,15,224,7,192,99,140,243,158,255, - 254,255,254,255,254,243,158,99,140,7,192,15,224,15,224,7, - 192,16,15,30,16,0,255,1,0,3,128,7,192,7,192,1, - 0,49,12,113,14,255,255,113,14,49,12,1,0,7,192,7, - 192,3,128,1,0,15,15,30,16,0,255,1,0,3,128,3, - 128,7,192,7,192,31,240,127,252,255,254,127,252,31,240,7, - 192,7,192,3,128,3,128,1,0,15,15,30,16,0,255,1, - 0,2,128,2,128,4,64,4,64,24,48,96,12,128,2,96, - 12,24,48,4,64,4,64,2,128,2,128,1,0,14,14,28, - 16,1,255,8,0,8,0,20,0,34,0,193,128,34,32,20, - 32,8,80,9,140,0,80,0,32,2,32,5,0,2,0,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,64,4,56, - 56,8,32,16,16,17,16,38,200,40,40,48,24,15,15,30, - 16,0,255,7,192,31,240,62,248,126,252,124,124,192,6,240, - 30,248,62,240,30,241,30,103,204,111,236,63,248,31,240,7, - 192,15,12,24,16,0,1,1,0,3,128,3,128,255,254,124, - 124,56,56,8,32,28,112,31,240,62,248,56,56,48,24,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,67,132,39, - 200,23,208,19,144,16,16,39,200,40,40,48,24,15,12,24, - 16,0,1,1,0,2,128,28,112,225,14,79,228,35,136,23, - 208,20,80,17,16,34,136,44,104,48,24,15,12,24,16,0, - 1,1,0,2,128,29,112,227,142,95,244,47,232,23,208,22, - 208,21,80,34,136,44,104,48,24,15,13,26,16,0,0,1, - 0,3,128,5,192,249,254,93,140,39,184,19,240,15,208,29, - 144,25,208,50,232,44,120,48,24,16,13,26,16,0,0,1, - 0,2,128,2,192,255,254,68,71,56,62,8,60,22,208,17, - 24,39,200,47,44,60,28,24,12,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,63,252,15,240,63,252,243, - 158,67,132,3,128,3,128,3,128,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,60,124,8,48,60,124,243, - 158,67,132,3,128,3,128,3,128,15,15,30,16,0,255,1, - 0,1,0,33,8,17,16,13,96,15,224,7,192,255,254,7, - 192,15,224,13,96,17,16,33,8,1,0,1,0,15,15,30, - 16,0,255,1,0,1,0,33,8,27,176,31,240,15,224,31, - 224,255,254,31,240,15,224,31,240,27,176,33,8,1,0,1, - 0,15,15,30,16,0,255,1,0,2,128,60,248,44,200,38, - 152,50,184,125,76,131,134,77,124,58,152,50,200,38,104,62, - 120,2,128,1,0,13,13,26,16,1,0,2,0,2,0,2, - 0,135,8,119,112,63,224,31,192,63,224,119,112,135,8,2, - 0,2,0,2,0,15,15,30,16,0,255,8,32,8,32,12, - 96,6,192,230,206,59,184,31,240,7,192,31,240,59,184,230, - 206,6,192,12,96,8,32,8,32,15,15,30,16,0,255,8, - 32,12,96,14,224,15,224,255,254,127,252,63,248,31,240,63, - 248,127,252,255,254,15,224,14,224,12,96,8,32,15,15,30, - 16,0,255,1,0,25,48,15,224,79,228,127,252,63,248,63, - 248,255,254,63,248,63,248,127,252,79,228,15,224,25,48,1, - 0,15,15,30,16,0,255,9,32,73,36,37,72,21,80,203, - 166,55,216,15,224,255,254,15,224,55,216,203,166,21,80,37, - 72,73,36,9,32,15,15,30,16,0,255,1,0,3,128,3, - 128,3,128,225,14,113,28,13,96,3,128,13,96,113,28,225, - 14,3,128,3,128,3,128,1,0,15,15,30,16,0,255,3, - 128,7,192,7,192,99,140,241,30,243,158,60,120,8,32,60, - 120,243,158,241,30,99,140,7,192,7,192,3,128,15,15,30, - 16,0,255,3,128,7,192,7,192,99,140,243,158,241,30,61, - 120,7,192,61,120,241,30,243,158,99,140,7,192,7,192,3, - 128,15,15,30,16,0,255,3,128,4,64,4,64,116,92,252, - 126,254,254,127,252,33,8,67,132,135,194,143,226,119,220,7, - 192,7,192,3,128,15,14,28,16,0,0,3,128,7,192,15, - 224,119,220,255,254,252,126,240,30,112,28,24,48,62,248,127, - 252,126,252,126,252,60,120,15,14,28,16,0,0,3,128,4, - 64,9,32,121,60,133,66,179,154,143,226,111,236,23,208,39, - 200,73,36,82,148,66,132,60,120,15,15,30,16,0,255,3, - 128,60,120,69,68,81,20,77,100,111,236,134,194,188,122,134, - 194,111,236,77,100,81,20,69,68,60,120,3,128,15,15,30, - 16,0,255,7,192,30,240,62,248,92,116,103,204,252,126,232, - 46,136,34,232,46,252,126,103,204,92,116,62,248,30,240,7, - 192,15,15,30,16,0,255,3,128,4,192,4,192,116,220,188, - 230,159,158,79,60,63,248,114,100,230,114,206,122,118,92,6, - 64,6,64,3,128,15,13,26,16,0,0,1,0,5,64,3, - 128,201,38,49,24,77,100,3,128,77,100,49,24,201,38,3, - 128,5,64,1,0,15,13,26,16,0,0,1,0,5,64,11, - 160,201,38,49,24,77,100,131,130,77,100,49,24,201,38,11, - 160,5,64,1,0,15,15,30,16,0,255,9,32,13,96,7, - 192,19,144,201,38,49,24,237,110,3,128,237,110,49,24,201, - 38,17,16,7,192,13,96,9,32,14,14,28,16,1,255,7, - 128,71,136,39,144,19,32,11,64,224,28,251,124,251,124,224, - 28,11,64,19,32,39,144,71,136,7,128,15,15,30,16,0, - 255,7,192,71,196,39,200,19,144,11,160,224,14,251,190,251, - 190,251,190,224,14,11,160,19,144,39,200,71,196,7,192,15, - 15,30,16,0,255,3,128,7,192,7,192,119,220,251,190,249, - 62,125,124,7,192,125,124,249,62,251,190,119,220,7,192,7, - 192,3,128,15,15,30,16,0,255,1,0,3,128,51,152,49, - 24,9,32,5,64,99,140,255,254,99,140,5,64,9,32,49, - 24,51,152,3,128,1,0,15,15,30,16,0,255,1,0,3, - 128,51,152,59,184,25,48,7,192,119,220,255,254,119,220,7, - 192,25,48,59,184,51,152,3,128,1,0,11,11,22,16,2, - 1,96,192,241,224,123,192,63,128,31,0,31,0,63,128,123, - 192,241,224,224,224,64,64,13,13,26,16,2,255,15,0,48, - 192,64,32,64,48,128,16,128,24,128,24,128,24,64,56,64, - 48,48,240,15,224,7,128,13,13,26,16,0,0,255,248,223, - 216,143,136,199,24,226,56,240,120,248,248,240,120,226,56,199, - 24,143,136,223,216,255,248,12,12,24,16,3,1,255,192,128, - 64,128,112,128,112,128,112,128,112,128,112,128,112,128,112,255, - 240,63,240,63,240,12,12,24,16,3,1,63,240,63,240,255, - 240,128,112,128,112,128,112,128,112,128,112,128,112,128,112,128, - 64,255,192,12,12,24,16,3,1,255,192,128,96,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,255,240,127,240,63, - 240,12,12,24,16,3,1,63,240,127,240,255,240,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,128,96,255,192,9, - 15,30,16,3,254,28,0,127,0,243,128,193,128,199,128,15, - 0,28,0,24,0,24,0,24,0,0,0,24,0,60,0,60, - 0,24,0,9,16,32,16,3,254,62,0,65,0,156,128,162, - 128,66,128,4,128,9,0,18,0,20,0,20,0,28,0,0, - 0,28,0,34,0,34,0,28,0,7,15,15,16,4,255,56, - 108,198,130,198,68,108,40,40,56,0,56,68,68,56,13,13, - 26,16,1,0,2,0,7,0,15,128,7,0,34,32,112,112, - 248,248,112,112,34,32,7,0,15,128,7,0,2,0,4,14, - 14,16,6,0,96,240,240,240,240,240,240,96,96,96,96,0, - 96,96,2,15,15,16,7,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,4,15,15,16,6,255,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,15,15,16, - 4,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,7,10,10,16,4,4,28,112,192,248,252,254,254,254,124, - 56,7,10,10,16,4,4,56,124,254,254,254,126,62,6,28, - 112,15,10,20,16,0,4,28,28,112,112,192,192,248,248,252, - 252,254,254,254,254,254,254,124,124,56,56,15,10,20,16,0, - 4,56,56,124,124,254,254,254,254,254,254,126,126,62,62,6, - 6,28,28,112,112,7,10,10,16,3,0,56,124,254,254,254, - 126,62,6,28,112,15,10,20,16,0,0,56,56,124,124,254, - 254,254,254,254,254,126,126,62,62,6,6,28,28,112,112,14, - 14,28,16,1,255,0,32,0,32,31,252,127,240,252,32,252, - 32,126,32,31,224,0,32,96,96,240,64,240,192,99,128,62, - 0,9,15,30,16,3,255,28,0,127,0,255,128,255,128,255, - 128,127,0,28,0,8,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,9,13,26,16,3,0,119,0,255,128,255, - 128,255,128,127,0,28,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,15,13,26,16,0,255,60,120,126,252,255, - 254,255,254,255,254,127,252,127,252,63,248,31,240,15,224,7, - 192,3,128,1,0,13,15,30,16,1,255,56,0,126,0,255, - 0,255,128,255,192,255,224,127,240,63,248,127,240,255,224,255, - 192,255,128,255,0,126,0,56,0,15,14,28,16,0,255,3, - 0,12,134,56,142,103,248,1,0,57,56,126,252,255,254,255, - 254,127,252,63,248,31,226,7,238,0,248,14,15,30,16,1, - 254,97,152,99,200,55,236,23,228,23,252,19,252,115,252,157, - 248,147,248,83,248,103,240,39,240,55,224,19,192,1,128,4, - 12,12,8,3,255,16,32,96,192,192,192,192,192,192,96,32, - 16,4,12,12,8,2,255,128,64,96,48,48,48,48,48,48, - 96,64,128,5,12,12,8,2,255,24,48,112,224,224,224,224, - 224,224,112,48,24,5,12,12,8,2,255,192,96,112,56,56, - 56,56,56,56,112,96,192,5,12,12,8,2,255,24,48,48, - 96,96,192,192,96,96,48,48,24,5,12,12,8,2,255,192, - 96,96,48,48,24,24,48,48,96,96,192,6,12,12,8,2, - 255,28,56,56,112,112,224,224,112,112,56,56,28,6,12,12, - 8,1,255,224,112,112,56,56,28,28,56,56,112,112,224,7, - 12,12,8,1,255,30,60,60,120,120,240,240,120,120,60,60, - 30,7,12,12,8,0,255,240,120,120,60,60,30,30,60,60, - 120,120,240,3,12,12,8,3,255,32,64,128,128,128,128,128, - 128,128,128,64,32,3,12,12,8,2,255,128,64,32,32,32, - 32,32,32,32,32,64,128,6,12,12,8,1,255,60,112,96, - 96,48,48,224,48,48,96,112,60,6,12,12,8,1,255,240, - 56,24,24,48,48,28,48,48,24,56,240,15,15,30,16,0, - 255,7,192,31,240,63,248,126,252,124,252,250,254,254,254,254, - 254,254,254,254,254,126,252,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,124,124,123,188,251, - 190,255,190,255,126,254,254,253,254,123,252,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,124, - 124,123,188,251,190,255,190,254,126,255,190,251,190,123,188,124, - 124,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,124,126,124,253,126,251,126,247,126,240,62,255, - 126,127,124,127,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,123,252,251,254,251,254,248, - 126,255,190,255,190,123,188,124,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,126,124,125,252,251, - 254,251,254,248,126,251,190,251,190,123,188,124,124,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,127,188,255,190,255,126,255,126,255,126,254,254,126,252,126, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,124,124,123,188,251,190,251,190,252,126,251,190,251, - 190,123,188,124,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,124,124,123,188,251,190,251,190,252, - 62,255,190,255,190,127,124,124,252,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,127,252,123,156,243, - 110,235,110,251,110,251,110,251,110,96,156,127,252,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,24,48,32,8,64, - 132,65,132,131,130,129,130,129,130,129,130,129,130,65,132,65, - 132,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,98,128,98,129,194,135,2,140, - 2,79,228,79,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,71,196,79,228,140,98,128,98,129, - 194,128,98,140,98,79,228,71,196,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,64,228,65,228,131, - 98,134,98,140,98,159,242,159,242,64,100,64,100,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,79, - 228,79,228,140,2,143,194,143,226,128,98,140,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,2,143,194,143,226,140,98,140, - 98,79,228,71,196,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,79,228,79,228,128,98,128,98,128, - 194,131,130,134,2,70,4,70,4,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,71,196,79,228,140, - 98,140,98,135,194,140,98,140,98,79,228,71,196,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,71, - 196,79,228,140,98,140,98,143,226,135,226,128,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,68,228,77,244,157,178,141,178,141,178,141,178,141, - 178,77,244,76,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,127,124,126,124,252,126,254,126,254, - 126,254,126,254,126,126,124,126,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 158,255,158,254,62,248,254,243,254,112,28,112,28,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,112,28,243,158,255,158,254,62,255,158,243,158,112,28,120, - 60,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,28,126,28,252,158,249,158,243,158,224,14,224, - 14,127,156,127,156,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,112,28,112,28,243,254,240,62,240, - 30,255,158,243,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 254,240,62,240,30,243,158,243,158,112,28,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,112, - 28,112,28,255,158,255,158,255,62,252,126,249,254,121,252,121, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,120,60,112,28,243,158,243,158,248,62,243,158,243, - 158,112,28,120,60,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,112,28,243,158,243,158,240, - 30,248,30,255,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,123,28,114,12,226, - 78,242,78,242,78,242,78,242,78,114,12,115,28,63,248,31, - 240,7,192,15,13,26,16,0,0,31,128,15,192,7,224,3, - 240,255,248,255,252,255,254,255,252,255,248,3,240,7,224,15, - 192,31,128,11,11,22,16,2,1,14,0,14,0,14,0,14, - 0,255,224,255,224,255,224,14,0,14,0,14,0,14,0,13, - 3,6,16,1,5,255,248,255,248,255,248,13,11,22,16,1, - 1,7,0,7,0,7,0,0,0,255,248,255,248,255,248,0, - 0,7,0,7,0,7,0,11,11,22,16,2,1,32,0,112, - 0,248,0,120,0,60,128,12,128,3,128,3,192,15,192,1, - 192,0,32,15,9,18,16,0,2,1,0,1,128,224,192,252, - 240,255,254,252,240,224,192,1,128,1,0,11,11,22,16,2, - 0,0,32,1,192,15,192,3,192,3,128,12,128,60,128,120, - 0,248,0,112,0,32,0,15,9,18,16,0,2,2,0,1, - 0,1,192,0,240,255,254,0,240,1,192,1,0,2,0,15, - 13,26,16,0,0,0,192,1,224,1,240,0,248,127,252,255, - 254,255,254,255,254,127,252,0,248,1,240,1,224,0,192,15, - 11,22,16,0,1,0,16,0,16,0,24,0,24,255,252,255, - 254,255,252,0,24,0,24,0,16,0,16,15,13,26,16,0, - 0,0,16,0,16,0,24,0,24,255,252,255,252,255,254,255, - 252,255,252,0,24,0,24,0,16,0,16,15,9,18,16,0, - 2,0,32,0,48,0,56,170,252,170,254,170,252,0,56,0, - 48,0,32,15,9,18,16,0,2,0,32,0,48,170,248,170, - 252,170,254,170,252,170,248,0,48,0,32,15,9,18,16,0, - 2,0,32,0,48,0,56,255,252,255,254,255,252,0,56,0, - 48,0,32,14,15,30,16,1,255,128,0,224,0,88,0,70, - 0,33,128,32,96,16,24,15,252,31,248,63,224,63,128,126, - 0,120,0,224,0,128,0,14,15,30,16,1,255,128,0,224, - 0,120,0,126,0,63,128,63,224,31,248,15,252,16,24,32, - 96,33,128,70,0,88,0,224,0,128,0,14,15,30,16,1, - 255,128,0,224,0,120,0,126,0,63,128,63,224,31,248,15, - 252,31,248,63,224,63,128,126,0,120,0,224,0,128,0,15, - 8,16,16,0,3,128,0,128,16,192,24,127,252,127,254,63, - 252,0,24,0,16,15,8,16,16,0,2,0,16,0,24,63, - 252,127,254,127,252,192,24,128,16,128,0,7,13,13,16,5, - 0,16,16,24,248,252,252,254,252,252,248,24,16,16,15,9, - 18,16,0,2,0,64,0,64,255,224,255,240,255,254,255,240, - 255,224,0,64,0,64,14,9,18,16,1,2,0,192,0,224, - 255,176,128,24,128,12,128,24,255,176,0,224,0,192,14,9, - 18,16,1,2,0,192,0,224,255,208,192,8,192,4,192,8, - 255,208,0,224,0,192,15,13,26,16,0,255,0,8,0,24, - 0,36,0,68,63,130,64,2,128,6,255,30,254,124,5,240, - 15,192,15,0,12,0,15,13,26,16,0,0,12,0,15,0, - 15,192,5,240,254,124,255,30,128,6,64,2,63,130,0,68, - 0,36,0,24,0,8,15,12,24,16,0,0,0,128,0,192, - 255,160,128,16,128,8,128,4,128,14,128,28,255,184,127,240, - 0,224,0,64,15,12,24,16,0,1,0,64,0,224,127,240, - 255,184,128,28,128,14,128,4,128,8,128,16,255,160,0,192, - 0,128,16,12,24,16,0,0,0,64,0,96,0,80,255,200, - 64,4,64,2,64,7,255,206,127,220,0,120,0,112,0,32, - 7,6,6,8,1,3,198,56,68,68,68,56,16,12,24,16, - 0,1,0,32,0,112,0,120,127,220,255,206,64,7,64,2, - 64,4,255,200,0,80,0,96,0,64,14,15,30,16,1,255, - 15,128,63,224,126,240,254,120,254,56,0,28,0,12,0,4, - 0,12,0,28,254,56,254,120,126,240,63,224,15,128,15,7, - 14,16,0,3,254,0,73,8,36,140,31,254,36,140,73,8, - 254,0,11,11,22,16,2,1,16,0,24,0,28,0,252,0, - 124,0,60,32,2,32,1,96,0,224,1,224,7,224,14,5, - 10,16,1,4,248,16,124,24,63,252,124,24,248,16,11,11, - 22,16,2,0,7,224,1,224,0,224,1,96,2,32,60,32, - 124,0,252,0,28,0,24,0,16,0,11,11,22,16,2,1, - 8,0,12,0,14,0,14,0,254,32,126,32,63,96,3,224, - 1,224,3,224,15,224,15,9,18,16,0,2,0,32,252,16, - 126,24,63,252,31,254,63,252,126,24,252,16,0,32,11,11, - 22,16,2,0,15,224,3,224,1,224,3,224,63,96,126,32, - 254,32,14,0,14,0,12,0,8,0,15,11,22,16,0,1, - 0,96,0,240,0,240,120,56,255,12,255,254,255,12,120,56, - 0,240,0,240,0,96,15,9,18,16,0,2,0,64,96,224, - 120,240,252,120,255,254,252,120,120,240,96,224,0,64,15,7, - 14,16,0,3,248,16,124,24,62,28,31,254,62,28,124,24, - 248,16,15,9,18,16,0,2,248,96,252,112,126,120,127,252, - 63,254,127,252,126,120,252,112,248,96,15,9,18,16,0,2, - 2,32,1,16,0,136,255,196,0,2,255,196,0,136,1,16, - 2,32,16,6,12,16,0,3,227,199,28,56,34,68,34,68, - 34,68,28,56,6,6,6,8,1,0,128,136,144,160,192,252, - 11,12,24,16,2,0,4,0,10,0,10,0,17,0,17,0, - 36,128,42,128,74,64,81,64,159,32,128,32,255,224,5,6, - 6,8,1,0,32,32,32,32,32,248,10,8,16,16,3,1, - 63,192,64,0,129,128,130,64,130,64,129,128,64,0,63,192, - 10,8,16,16,3,1,255,0,0,128,96,64,144,64,144,64, - 96,64,0,128,255,0,5,10,10,8,2,0,112,136,136,16, - 16,32,32,64,64,56,5,10,10,8,2,0,112,136,136,64, - 64,32,32,16,16,224,7,8,8,8,0,0,130,130,84,68, - 40,40,16,16,14,8,16,16,1,1,129,252,130,0,68,0, - 68,0,36,0,36,0,18,0,17,252,14,8,16,16,1,1, - 254,4,1,4,0,136,0,136,0,144,0,144,1,32,254,32, - 3,10,10,8,2,0,64,64,64,64,224,64,64,64,64,64, - 8,8,8,16,4,1,1,2,4,8,16,32,64,128,12,14, - 28,16,2,254,255,240,128,0,64,0,64,0,32,0,32,0, - 32,0,32,0,32,0,32,0,64,0,64,0,128,0,128,0, - 8,8,8,16,4,1,128,64,32,16,8,4,2,1,13,13, - 26,16,1,0,255,248,130,8,130,8,133,8,133,8,136,136, - 136,136,144,72,144,72,160,40,160,40,192,24,255,248,13,13, - 26,16,1,0,255,248,192,24,160,40,160,40,144,72,144,72, - 136,136,136,136,133,8,133,8,130,8,130,8,255,248,9,9, - 18,16,4,0,8,0,20,0,34,0,65,0,136,128,65,0, - 34,0,20,0,8,0,7,8,8,8,0,0,16,16,40,40, - 68,84,130,130,9,10,20,16,3,0,136,128,136,128,136,128, - 136,128,136,128,136,128,136,128,136,128,73,0,62,0,6,6, - 6,8,1,0,4,4,36,4,4,252,6,6,6,8,1,0, - 252,128,128,144,128,128,12,10,20,16,2,0,224,16,48,48, - 40,80,36,144,35,16,35,16,36,144,40,80,48,48,224,16, - 12,10,20,16,2,0,128,112,192,192,161,64,146,64,140,64, - 140,64,146,64,161,64,192,192,128,112,14,10,20,16,1,0, - 224,28,48,48,40,80,36,144,35,16,35,16,36,144,40,80, - 48,48,224,28,9,12,24,16,3,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 255,128,9,12,24,16,3,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 13,7,14,16,1,2,5,0,5,0,253,248,5,0,253,248, - 5,0,5,0,13,7,14,16,1,2,5,0,5,0,5,0, - 253,248,5,0,5,0,5,0,14,3,6,16,1,4,64,0, - 191,252,64,0,14,3,6,16,1,4,128,0,255,252,128,0, - 14,3,6,16,1,4,0,4,255,252,0,4,3,11,11,16, - 7,255,64,160,64,64,64,64,64,64,64,64,224,7,11,11, - 8,0,0,16,40,40,68,68,254,68,68,40,40,16,13,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,8,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,0,128,1,64,1,64,2,32,4,16,24,12, - 224,2,24,12,4,16,2,32,1,64,1,64,0,128,15,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,14,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,31,254,16,2,16,2,16,2,16,2,16,2, - 240,2,16,2,16,2,16,2,16,2,16,2,31,254,15,13, - 26,16,1,0,255,240,128,16,128,16,128,16,128,16,128,16, - 128,30,128,16,128,16,128,16,128,16,128,16,255,240,5,13, - 13,8,2,0,248,160,160,160,160,160,160,160,160,160,160,160, - 248,5,13,13,8,1,0,248,40,40,40,40,40,40,40,40, - 40,40,40,248,4,12,12,8,2,0,16,32,32,64,64,128, - 128,64,64,32,32,16,4,12,12,8,2,0,128,64,64,32, - 32,16,16,32,32,64,64,128,6,12,12,8,1,0,20,40, - 40,80,80,160,160,80,80,40,40,20,6,12,12,8,1,0, - 160,80,80,40,40,20,20,40,40,80,80,160,4,12,12,8, - 3,255,16,32,96,160,160,160,160,160,160,96,32,16,4,12, - 12,8,1,255,128,64,96,80,80,80,80,80,80,96,64,128, - 3,12,12,8,4,255,32,64,128,128,128,128,128,128,128,128, - 64,32,3,12,12,8,1,255,128,64,32,32,32,32,32,32, - 32,32,64,128,11,12,24,16,2,0,4,0,10,0,27,0, - 42,128,106,192,170,160,42,128,42,128,42,128,42,128,42,128, - 42,128,11,12,24,16,2,0,42,128,42,128,42,128,42,128, - 42,128,42,128,170,160,106,192,42,128,27,0,10,0,4,0, - 12,10,20,16,2,0,7,128,8,64,16,32,32,16,168,16, - 112,16,32,16,0,32,8,64,7,128,12,10,20,16,2,0, - 30,0,33,0,64,128,128,64,129,80,128,224,128,64,64,0, - 33,0,30,0,15,7,14,16,0,1,3,128,5,72,9,36, - 255,254,9,36,5,72,3,128,15,5,10,16,1,2,32,0, - 64,0,255,254,64,0,32,0,15,5,10,16,0,2,0,8, - 0,4,255,254,0,4,0,8,14,5,10,16,1,2,32,16, - 64,8,255,252,64,8,32,16,15,7,14,16,0,1,16,0, - 32,0,127,254,128,0,127,254,32,0,16,0,15,7,14,16, - 0,1,0,16,0,8,255,252,0,2,255,252,0,8,0,16, - 14,7,14,16,1,1,16,32,32,16,127,248,128,4,127,248, - 32,16,16,32,14,5,10,16,1,2,32,4,64,4,255,252, - 64,4,32,4,14,5,10,16,1,2,128,16,128,8,255,252, - 128,8,128,16,14,7,14,16,1,1,16,4,32,4,127,252, - 128,4,127,252,32,4,16,4,14,7,14,16,1,1,128,32, - 128,16,255,248,128,4,255,248,128,16,128,32,15,5,10,16, - 0,2,0,8,34,36,213,94,8,132,0,8}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 5 - Calculated Max Values w=15 h=15 x= 3 y= 4 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 2 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_86[1858] U8G_FONT_SECTION("u8g_font_unifont_86") = { - 0,16,16,0,254,11,3,31,5,100,32,116,2,13,254,11, - 0,11,11,22,16,2,0,7,224,4,32,2,32,4,32,8, - 160,17,96,34,0,68,0,136,0,80,0,32,0,11,11,22, - 16,2,0,252,0,132,0,136,0,132,0,162,0,209,0,8, - 128,4,64,2,32,1,64,0,128,11,11,22,16,2,0,32, - 0,80,0,136,0,68,0,34,0,17,96,8,160,4,32,2, - 32,4,32,7,224,11,11,22,16,2,0,0,128,1,64,2, - 32,4,64,8,128,209,0,162,0,132,0,136,0,132,0,252, - 0,14,7,14,16,1,1,16,32,48,48,95,232,128,4,95, - 232,48,48,16,32,13,7,14,16,1,1,16,0,48,0,127, - 248,255,248,127,248,48,0,16,0,7,12,12,8,0,0,16, - 56,124,254,56,56,56,56,56,56,56,56,7,12,12,8,0, - 0,56,56,56,56,56,56,56,56,254,124,56,16,11,11,22, - 16,2,0,7,224,7,224,3,224,7,224,15,224,31,96,62, - 0,124,0,248,0,112,0,32,0,11,11,22,16,2,0,252, - 0,252,0,248,0,252,0,254,0,223,0,15,128,7,192,3, - 224,1,192,0,128,11,11,22,16,2,0,32,0,112,0,248, - 0,124,0,62,0,31,96,15,224,7,224,3,224,7,224,7, - 224,11,11,22,16,2,0,0,128,1,192,3,224,7,192,15, - 128,223,0,254,0,252,0,248,0,252,0,252,0,14,7,14, - 16,1,1,16,32,48,48,127,248,255,252,127,248,48,48,16, - 32,7,12,12,8,0,0,16,56,124,254,56,56,56,56,254, - 124,56,16,15,5,10,16,0,0,255,248,0,8,0,42,0, - 28,0,8,15,5,10,16,0,4,0,8,0,28,0,42,0, - 8,255,248,15,5,10,16,1,0,63,254,32,0,168,0,112, - 0,32,0,15,5,10,16,1,4,32,0,112,0,168,0,32, - 0,63,254,10,10,20,16,3,255,255,192,255,192,255,192,255, - 192,255,192,128,64,128,64,128,64,128,64,255,192,10,10,20, - 16,3,255,255,192,128,64,128,64,128,64,128,64,255,192,255, - 192,255,192,255,192,255,192,10,10,20,16,3,255,255,192,255, - 192,191,192,159,192,143,192,135,192,131,192,129,192,128,192,255, - 192,10,10,20,16,3,255,255,192,192,64,224,64,240,64,248, - 64,252,64,254,64,255,64,255,192,255,192,10,10,20,16,3, - 255,12,0,26,0,57,0,120,128,248,64,248,64,120,128,57, - 0,26,0,12,0,10,10,20,16,3,255,12,0,22,0,39, - 0,71,128,135,192,135,192,71,128,39,0,22,0,12,0,10, - 10,20,16,3,255,12,0,30,0,63,0,127,128,255,192,128, - 64,64,128,33,0,18,0,12,0,10,10,20,16,3,255,12, - 0,18,0,33,0,64,128,128,64,255,192,127,128,63,0,30, - 0,12,0,11,11,22,16,2,0,170,160,0,0,128,32,0, - 0,128,32,0,0,128,32,0,0,128,32,0,0,170,160,14, - 14,28,16,1,255,255,252,255,252,255,252,255,252,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, - 252,14,14,28,16,1,255,255,252,128,4,128,4,128,4,128, - 4,128,4,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,255,252,4,4,4,8,2,2,240,240,240,240,4,4,4, - 8,2,2,240,144,144,240,12,11,22,16,2,0,6,0,15, - 0,31,128,63,192,127,224,255,240,127,224,127,224,63,192,63, - 192,31,128,12,11,22,16,2,0,6,0,9,0,16,128,32, - 64,64,32,128,16,64,32,64,32,32,64,32,64,31,128,11, - 11,22,16,2,255,4,0,27,0,96,192,128,32,128,32,128, - 32,128,32,128,32,96,192,27,0,4,0,11,11,22,16,2, - 255,4,0,31,0,127,192,255,224,255,224,255,224,255,224,255, - 224,127,192,31,0,4,0,14,10,20,16,1,0,15,192,31, - 224,63,240,127,248,255,252,255,252,127,248,63,240,31,224,15, - 192,14,13,26,16,1,254,31,224,63,240,127,248,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,127,248,63,240,31, - 224,7,7,7,8,0,0,16,56,124,254,124,56,16,7,7, - 7,8,0,0,16,40,68,130,68,40,16,7,11,11,8,0, - 0,16,56,56,124,124,254,124,124,56,56,16,7,11,11,8, - 0,0,16,40,40,68,68,130,68,68,40,40,16,5,5,5, - 8,1,3,32,112,248,112,32,5,7,7,8,1,0,32,112, - 112,248,112,112,32,5,7,7,8,1,0,32,80,80,136,80, - 80,32,15,6,12,16,0,0,15,224,127,252,255,254,255,254, - 127,252,15,224,15,6,12,16,0,0,15,224,112,28,128,2, - 128,2,112,28,15,224,6,13,13,8,1,0,48,120,120,120, - 252,252,252,252,252,120,120,120,48,6,13,13,8,1,0,48, - 72,72,72,132,132,132,132,132,72,72,72,48,15,5,10,16, - 1,2,33,192,66,32,255,254,66,32,33,192,14,15,30,16, - 1,254,32,0,64,0,255,252,64,0,32,0,32,0,64,0, - 255,252,64,0,32,0,32,0,64,0,255,252,64,0,32,0, - 15,5,10,16,1,2,33,192,66,160,255,254,66,160,33,192, - 15,5,10,16,1,2,34,32,69,80,245,94,72,128,32,0, - 15,5,10,16,1,2,40,64,80,64,255,254,80,64,40,64, - 15,5,10,16,1,2,40,160,80,160,255,254,80,160,40,160, - 14,5,10,16,1,2,40,4,80,4,255,252,80,4,40,4, - 14,5,10,16,1,2,40,4,80,8,253,176,80,8,40,4, - 14,5,10,16,1,2,32,0,64,0,213,84,64,0,32,0, - 14,5,10,16,1,2,32,132,64,136,255,240,64,136,32,132, - 14,5,10,16,1,2,33,68,65,72,255,240,65,72,33,68, - 14,5,10,16,1,2,40,4,80,8,255,240,80,8,40,4, - 14,5,10,16,1,2,40,132,80,136,255,240,80,136,40,132, - 14,5,10,16,1,2,41,68,81,72,255,240,81,72,41,68, - 15,5,10,16,1,2,40,144,80,96,255,254,80,96,40,144, - 15,5,10,16,1,2,32,120,64,132,255,2,64,0,32,0, - 15,7,14,16,1,2,3,240,0,0,35,240,64,0,255,254, - 64,0,32,0,15,7,14,16,1,2,0,56,4,68,35,128, - 64,0,255,254,64,0,32,0,15,9,18,16,1,254,32,0, - 64,0,255,254,64,56,36,68,3,128,0,56,4,68,3,128, - 14,9,18,16,1,0,224,0,24,0,6,16,1,8,31,252, - 1,8,6,16,24,0,224,0,14,11,22,16,1,255,252,0, - 2,0,1,0,0,144,0,136,255,252,0,136,0,144,1,0, - 2,0,252,0,15,11,22,16,0,255,4,0,8,0,31,254, - 32,0,127,254,128,0,127,254,32,0,31,254,8,0,4,0, - 15,11,22,16,0,255,0,64,0,32,255,240,0,8,255,252, - 0,2,255,252,0,8,255,240,0,32,0,64,15,7,14,16, - 0,2,3,128,68,64,56,8,0,4,255,254,0,4,0,8, - 15,9,18,16,0,254,0,8,0,4,255,254,3,132,68,72, - 56,0,3,128,68,64,56,0,15,7,14,16,1,2,3,128, - 4,68,32,56,64,0,255,254,64,0,32,0,15,9,18,16, - 1,254,32,0,64,0,255,254,67,128,36,68,0,56,3,128, - 4,68,0,56,15,7,14,16,1,0,32,0,64,0,255,254, - 64,0,32,56,4,68,3,128,15,7,14,16,0,0,0,8, - 0,4,255,254,0,4,3,136,68,64,56,0,10,12,24,16, - 3,0,4,0,8,0,16,0,32,0,64,0,255,192,0,128, - 1,0,2,0,20,0,24,0,28,0,4,6,6,8,2,0, - 112,48,80,64,128,128,4,6,6,8,2,0,128,128,64,80, - 48,112,13,13,26,16,1,0,2,0,2,0,5,0,5,0, - 248,248,64,16,32,32,16,64,8,128,16,64,34,32,77,144, - 112,112,11,10,20,16,2,1,4,0,14,0,14,0,255,224, - 127,192,63,128,63,128,123,192,241,224,192,96,11,10,20,16, - 2,1,4,0,10,0,10,0,241,224,64,64,32,128,36,128, - 74,64,177,160,192,96,11,12,24,16,3,0,4,0,30,0, - 127,0,255,128,255,192,255,224,255,224,255,192,255,128,127,0, - 30,0,4,0,11,12,24,16,3,0,4,0,26,0,97,0, - 128,128,128,64,128,32,128,32,128,64,128,128,97,0,26,0, - 4,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 3 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[4279] U8G_FONT_SECTION("u8g_font_unifont_8_9") = { - 0,16,16,0,254,8,4,67,6,64,0,255,0,14,254,12, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,14,14,8,1,0,72,72,0, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,252,32,32,32,60,34,34,34,34,44,6,14,14,8,1, - 0,24,96,0,0,252,128,128,128,128,128,128,128,128,128,6, - 10,10,8,1,0,56,68,128,128,248,128,128,128,68,56,6, - 10,10,8,1,0,120,132,132,128,96,24,4,132,132,120,5, - 10,10,8,2,0,248,32,32,32,32,32,32,32,32,248,5, - 14,14,8,2,0,144,144,0,0,248,32,32,32,32,32,32, - 32,32,248,6,10,10,8,1,0,28,8,8,8,8,8,8, - 136,136,112,8,10,10,8,0,0,120,72,72,72,78,73,73, - 73,73,142,7,10,10,8,1,0,144,144,144,144,252,146,146, - 146,146,156,7,10,10,8,1,0,252,32,32,32,60,34,34, - 34,34,34,6,14,14,8,1,0,24,96,0,0,128,140,144, - 160,192,192,160,144,136,132,6,13,13,8,1,0,96,24,0, - 132,140,140,148,148,164,164,196,196,132,7,14,14,8,1,0, - 132,132,120,0,130,130,68,68,40,40,16,16,32,96,7,12, - 12,8,1,254,130,130,130,130,130,130,130,130,130,254,16,16, - 6,10,10,8,1,0,48,72,72,132,132,252,132,132,132,132, - 6,10,10,8,1,0,248,128,128,128,248,132,132,132,132,248, - 6,10,10,8,1,0,248,132,132,132,248,132,132,132,132,248, - 6,10,10,8,1,0,252,128,128,128,128,128,128,128,128,128, - 8,12,12,8,0,254,14,18,18,18,34,34,34,66,66,255, - 129,129,6,10,10,8,1,0,252,128,128,128,248,128,128,128, - 128,252,7,10,10,8,1,0,146,146,84,84,56,56,84,84, - 146,146,6,10,10,8,1,0,120,132,4,4,120,8,4,4, - 132,120,6,10,10,8,1,0,132,140,140,148,148,164,164,196, - 196,132,6,13,13,8,1,0,72,48,0,132,140,140,148,148, - 164,164,196,196,132,6,10,10,8,1,0,140,144,144,160,160, - 192,160,144,136,132,6,10,10,8,1,0,60,36,36,36,36, - 36,36,68,68,132,6,10,10,8,1,0,132,132,204,204,180, - 180,132,132,132,132,6,10,10,8,1,0,132,132,132,132,252, - 132,132,132,132,132,6,10,10,8,1,0,120,132,132,132,132, - 132,132,132,132,120,6,10,10,8,1,0,252,132,132,132,132, - 132,132,132,132,132,6,10,10,8,1,0,248,132,132,132,248, - 128,128,128,128,128,6,10,10,8,1,0,120,132,132,128,128, - 128,128,132,132,120,7,10,10,8,1,0,254,16,16,16,16, - 16,16,16,16,16,7,10,10,8,1,0,130,130,68,68,40, - 40,16,16,32,96,7,11,11,8,1,0,16,124,146,146,146, - 146,146,124,16,16,16,6,10,10,8,1,0,132,132,72,72, - 48,48,72,72,132,132,7,12,12,8,1,254,132,132,132,132, - 132,132,132,132,132,254,2,2,6,10,10,8,1,0,132,132, - 132,132,132,252,4,4,4,4,7,10,10,8,1,0,146,146, - 146,146,146,146,146,146,146,254,8,12,12,8,0,254,146,146, - 146,146,146,146,146,146,146,255,1,1,7,10,10,8,1,0, - 224,32,32,32,60,34,34,34,34,60,6,10,10,8,1,0, - 132,132,132,132,228,148,148,148,148,228,6,10,10,8,1,0, - 128,128,128,128,248,132,132,132,132,248,6,10,10,8,1,0, - 112,136,4,4,124,4,4,4,136,112,6,10,10,8,1,0, - 152,164,164,164,228,164,164,164,164,152,6,10,10,8,1,0, - 124,132,132,132,124,36,68,68,132,132,6,8,8,8,1,0, - 120,132,4,124,132,132,140,116,6,12,12,8,1,0,4,56, - 64,128,248,132,132,132,132,132,132,120,6,8,8,8,1,0, - 248,132,132,248,132,132,132,248,6,8,8,8,1,0,252,128, - 128,128,128,128,128,128,7,9,9,8,1,255,60,36,68,68, - 132,132,132,254,130,6,8,8,8,1,0,120,132,132,252,128, - 128,132,120,7,8,8,8,1,0,146,146,84,56,56,84,146, - 146,6,8,8,8,1,0,120,132,4,120,8,4,132,120,6, - 8,8,8,1,0,140,140,148,148,164,164,196,196,6,12,12, - 8,1,0,72,48,0,0,140,140,148,148,164,164,196,196,6, - 8,8,8,1,0,140,144,160,192,160,144,136,132,6,8,8, - 8,1,0,60,36,36,36,36,68,68,132,6,8,8,8,1, - 0,132,204,204,180,180,132,132,132,6,8,8,8,1,0,132, - 132,132,252,132,132,132,132,6,8,8,8,1,0,120,132,132, - 132,132,132,132,120,6,8,8,8,1,0,252,132,132,132,132, - 132,132,132,6,10,10,8,1,254,184,196,132,132,132,132,196, - 184,128,128,6,8,8,8,1,0,120,132,128,128,128,128,132, - 120,7,8,8,8,1,0,254,16,16,16,16,16,16,16,6, - 10,10,8,1,254,132,132,72,72,48,48,32,32,64,192,7, - 13,13,8,1,254,16,16,16,124,146,146,146,146,146,146,124, - 16,16,6,8,8,8,1,0,132,132,72,48,48,72,132,132, - 7,10,10,8,1,254,132,132,132,132,132,132,132,254,2,2, - 6,8,8,8,1,0,132,132,132,132,252,4,4,4,7,8, - 8,8,1,0,146,146,146,146,146,146,146,254,8,10,10,8, - 0,254,146,146,146,146,146,146,146,255,1,1,7,8,8,8, - 1,0,224,32,32,60,34,34,34,60,6,8,8,8,1,0, - 132,132,132,228,148,148,148,228,6,8,8,8,1,0,128,128, - 128,248,132,132,132,248,6,8,8,8,1,0,112,136,4,124, - 4,4,136,112,6,8,8,8,1,0,152,164,164,228,164,164, - 164,152,6,8,8,8,1,0,124,132,132,132,124,36,68,132, - 6,12,12,8,1,0,96,24,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,0,72,72,0,0,120,132,132,252, - 128,128,132,120,7,13,13,8,0,254,64,240,64,92,98,66, - 66,66,66,66,66,2,12,6,12,12,8,1,0,24,96,0, - 0,252,128,128,128,128,128,128,128,6,8,8,8,1,0,56, - 68,128,248,128,128,68,56,6,8,8,8,1,0,120,132,128, - 96,24,4,132,120,5,11,11,8,2,0,32,32,0,96,32, - 32,32,32,32,32,248,5,11,11,8,2,0,144,144,0,96, - 32,32,32,32,32,32,248,5,13,13,8,1,254,8,8,0, - 24,8,8,8,8,8,8,8,144,96,8,8,8,8,0,0, - 120,72,72,78,73,73,73,142,7,8,8,8,1,0,144,144, - 144,252,146,146,146,156,7,11,11,8,0,0,64,240,64,92, - 98,66,66,66,66,66,66,6,12,12,8,1,0,24,96,0, - 0,140,144,160,192,160,144,136,132,6,12,12,8,1,0,96, - 24,0,0,140,140,148,148,164,164,196,196,6,15,15,8,1, - 254,132,132,120,0,0,132,132,72,72,48,48,32,32,64,192, - 5,10,10,8,2,254,136,136,136,136,136,136,136,248,32,32, - 7,10,10,8,1,0,146,146,146,146,146,146,146,146,180,72, - 7,8,8,8,1,0,68,130,130,146,146,146,146,108,7,10, - 10,8,1,0,32,248,32,32,60,34,34,34,34,60,6,10, - 10,8,1,0,64,64,240,64,64,120,68,68,68,120,7,10, - 10,8,1,0,140,146,160,160,252,160,160,160,146,140,7,8, - 8,8,1,0,140,146,160,252,160,160,146,140,7,10,10,8, - 1,0,16,16,40,40,68,108,84,146,146,146,7,8,8,8, - 1,0,16,40,40,68,108,146,146,146,7,10,10,8,1,0, - 144,144,168,168,164,236,212,146,146,146,7,8,8,8,1,0, - 144,168,168,164,236,146,146,146,7,10,10,8,1,0,124,68, - 68,40,16,56,84,146,146,146,7,8,8,8,1,0,124,68, - 40,16,124,146,146,146,7,10,10,8,1,0,190,162,162,148, - 232,156,170,170,170,170,7,8,8,8,1,0,190,162,148,232, - 156,170,170,170,6,14,14,8,1,254,72,48,120,132,4,4, - 120,8,4,4,4,120,128,128,6,13,13,8,1,254,72,48, - 0,120,132,4,120,8,4,4,120,128,128,7,10,10,8,1, - 0,146,146,146,146,146,124,16,16,16,16,7,8,8,8,1, - 254,146,146,146,146,146,124,16,16,6,10,10,8,1,0,120, - 132,132,132,252,132,132,132,132,120,6,8,8,8,1,0,120, - 132,132,252,132,132,132,120,7,10,10,8,1,0,134,136,136, - 136,80,80,80,32,32,32,6,8,8,8,1,0,140,144,144, - 80,80,80,32,32,7,14,14,8,1,0,204,34,0,0,134, - 136,136,136,80,80,80,32,32,32,7,12,12,8,1,0,204, - 34,0,0,140,144,144,80,80,80,32,32,7,12,12,8,1, - 254,64,160,178,178,178,170,172,168,168,72,16,16,7,10,10, - 8,1,254,82,178,178,170,172,168,168,72,16,16,7,12,12, - 8,1,255,16,124,146,130,130,130,130,130,130,146,124,16,7, - 10,10,8,1,255,16,124,146,130,130,130,130,146,124,16,7, - 14,14,8,1,0,120,134,48,8,16,0,108,130,130,146,146, - 146,146,108,7,11,11,8,1,0,120,134,48,8,16,0,108, - 130,146,146,108,7,13,13,8,1,0,254,16,0,146,146,146, - 146,146,146,146,146,180,72,7,10,10,8,1,0,254,16,0, - 146,146,146,146,146,180,72,6,12,12,8,1,254,120,132,132, - 128,128,128,128,128,120,8,8,8,6,10,10,8,1,254,120, - 132,132,128,128,128,120,8,8,8,7,7,7,8,1,1,36, - 24,136,84,34,48,72,4,3,3,8,1,10,16,240,128,5, - 4,4,8,0,9,16,40,72,128,4,3,3,8,1,10,112, - 128,96,4,3,3,8,2,10,224,16,96,8,3,3,8,0, - 10,48,76,131,14,14,28,16,0,254,1,0,2,128,16,16, - 40,40,0,0,0,0,64,8,160,20,0,0,0,0,0,0, - 16,16,41,40,2,128,14,14,28,16,1,254,1,0,33,8, - 19,16,24,96,0,0,0,0,0,16,224,28,32,0,0,0, - 0,0,25,176,17,16,33,8,7,15,15,8,1,254,72,48, - 0,132,140,140,148,148,164,164,196,196,134,4,8,7,14,14, - 8,1,254,72,48,0,0,140,140,148,148,164,164,196,198,4, - 8,6,10,10,8,1,0,64,224,64,64,64,120,68,68,76, - 120,6,7,7,8,1,0,64,224,64,120,68,68,120,6,10, - 10,8,1,0,248,132,148,136,244,128,128,128,128,128,6,10, - 10,8,1,254,184,196,132,132,132,148,200,180,128,128,6,12, - 12,8,1,0,4,4,252,128,128,128,128,128,128,128,128,128, - 6,10,10,8,1,0,4,4,252,128,128,128,128,128,128,128, - 7,10,10,8,1,0,62,32,32,32,32,248,32,32,32,32, - 7,8,8,8,1,0,62,32,32,32,248,32,32,32,6,11, - 11,8,1,255,252,128,128,128,128,248,132,132,132,132,24,6, - 9,9,8,1,255,252,128,128,128,248,132,132,132,24,7,12, - 12,8,1,254,146,146,84,84,56,56,84,84,146,146,2,2, - 7,10,10,8,1,254,146,146,84,56,56,84,146,146,2,2, - 6,12,12,8,1,254,120,132,4,4,120,8,4,4,132,120, - 16,96,6,10,10,8,1,254,120,132,4,120,8,4,132,120, - 16,96,6,12,12,8,1,254,128,140,144,160,192,192,160,144, - 136,132,4,4,6,10,10,8,1,254,140,144,160,192,160,144, - 136,132,4,4,7,10,10,8,1,0,128,134,168,168,240,168, - 168,168,132,130,7,8,8,8,1,0,134,168,168,240,168,168, - 132,130,7,10,10,8,1,0,64,230,72,80,96,96,80,72, - 68,66,7,8,8,8,1,0,70,232,80,96,80,72,68,66, - 8,10,10,8,0,0,224,35,36,40,48,48,40,36,34,33, - 8,8,8,8,0,0,227,36,40,48,40,36,34,33,7,12, - 12,8,1,254,132,132,132,132,252,132,132,132,132,134,2,2, - 7,10,10,8,1,254,132,132,132,252,132,132,132,134,2,2, - 7,10,10,8,1,0,142,136,136,136,248,136,136,136,136,136, - 7,8,8,8,1,0,142,136,136,248,136,136,136,136,7,12, - 12,8,1,254,240,144,144,144,144,156,146,146,146,146,2,12, - 7,10,10,8,1,254,240,144,144,144,156,146,146,146,2,12, - 6,12,12,8,1,255,64,152,164,164,164,164,164,164,164,88, - 48,12,6,9,9,8,1,255,64,152,164,164,164,164,88,48, - 12,6,12,12,8,1,254,120,132,132,128,128,128,128,132,132, - 120,32,24,6,10,10,8,1,254,120,132,132,128,128,132,132, - 120,32,24,7,12,12,8,1,254,254,16,16,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,254,254,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,0,130,130,68,68,40, - 16,16,16,16,16,5,10,10,8,2,254,136,136,136,80,80, - 32,32,32,32,32,7,10,10,8,1,0,130,130,68,68,40, - 16,16,124,16,16,5,8,8,8,2,0,136,136,136,80,32, - 32,248,32,7,12,12,8,1,254,132,132,72,72,48,48,72, - 72,132,134,2,2,7,10,10,8,1,254,132,132,72,48,48, - 72,132,134,2,2,8,12,12,8,0,254,250,34,34,34,34, - 34,34,34,34,63,1,1,8,10,10,8,0,254,250,34,34, - 34,34,34,34,63,1,1,7,12,12,8,1,254,132,132,132, - 132,132,140,116,4,4,6,2,2,7,10,10,8,1,254,132, - 132,132,132,140,116,4,6,2,2,6,10,10,8,1,0,132, - 132,132,132,164,172,116,36,36,4,6,8,8,8,1,0,132, - 132,132,164,172,116,36,4,6,10,10,8,1,0,128,128,128, - 184,196,132,132,132,132,132,6,8,8,8,1,0,128,128,184, - 196,132,132,132,132,6,10,10,8,1,0,152,164,164,164,124, - 32,32,36,36,24,6,8,8,8,1,0,152,164,164,124,32, - 32,36,24,6,12,12,8,1,254,152,164,164,164,124,32,32, - 36,36,24,16,16,6,12,12,8,1,254,152,164,164,164,124, - 32,32,36,36,24,16,16,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,14,14,8,1,0,130,130,124, - 0,146,146,84,84,56,56,84,84,146,146,7,13,13,8,1, - 0,68,68,56,0,0,146,146,84,56,56,84,146,146,6,12, - 12,8,1,254,128,140,144,160,192,248,132,132,132,132,4,24, - 6,10,10,8,1,254,140,144,160,192,248,132,132,132,4,24, - 7,12,12,8,1,254,60,36,36,36,36,36,36,68,68,134, - 4,8,7,10,10,8,1,254,60,36,36,36,36,68,68,134, - 4,8,6,12,12,8,1,254,132,132,132,132,252,132,132,132, - 132,132,4,24,6,10,10,8,1,254,132,132,132,252,132,132, - 132,132,4,24,7,12,12,8,1,254,132,132,132,132,252,132, - 132,132,132,134,4,8,7,10,10,8,1,254,132,132,132,252, - 132,132,132,134,4,8,6,12,12,8,1,254,132,132,132,132, - 132,140,116,4,4,12,8,8,6,10,10,8,1,254,132,132, - 132,132,140,116,4,12,8,8,7,12,12,8,1,254,132,132, - 204,204,180,180,132,132,132,134,4,8,7,10,10,8,1,254, - 132,204,204,180,180,132,132,134,4,8,3,10,10,8,3,0, - 224,64,64,64,64,64,64,64,64,224,6,14,14,8,1,0, - 132,132,120,0,48,72,72,132,132,252,132,132,132,132,6,13, - 13,8,1,0,132,132,120,0,0,120,132,4,124,132,132,140, - 116,6,14,14,8,1,0,72,72,0,0,48,72,72,132,132, - 252,132,132,132,132,6,12,12,8,1,0,72,72,0,0,120, - 132,4,124,132,132,140,116,7,10,10,8,1,0,62,80,144, - 144,254,144,144,144,144,158,7,8,8,8,1,0,124,146,18, - 126,144,144,146,124,6,14,14,8,1,0,132,132,120,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,132, - 132,120,0,120,132,132,252,128,128,132,120,6,10,10,8,1, - 0,48,72,132,4,4,252,132,132,72,48,6,8,8,8,1, - 0,120,132,4,4,252,132,132,120,6,14,14,8,1,0,72, - 72,0,0,48,72,132,4,4,252,132,132,72,48,6,12,12, - 8,1,0,72,72,0,0,120,132,4,4,252,132,132,120,7, - 14,14,8,1,0,72,72,0,0,146,146,84,84,56,56,84, - 84,146,146,7,12,12,8,1,0,72,72,0,0,146,146,84, - 56,56,84,146,146,6,14,14,8,1,0,72,72,0,0,120, - 132,4,4,120,8,4,4,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,4,120,8,4,132,120,6,10,10,8,1, - 0,252,8,16,32,56,4,4,4,140,120,6,10,10,8,1, - 254,124,8,16,32,56,4,4,4,132,120,6,13,13,8,1, - 0,120,0,0,132,140,140,148,148,164,164,196,196,132,6,11, - 11,8,1,0,120,0,0,140,140,148,148,164,164,196,196,6, - 14,14,8,1,0,72,72,0,0,132,140,140,148,148,164,164, - 196,196,132,6,12,12,8,1,0,72,72,0,0,140,140,148, - 148,164,164,196,196,6,14,14,8,1,0,72,72,0,0,120, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,132,132,132,132,132,120,6,10,10,8,1, - 0,120,132,132,132,252,132,132,132,132,120,6,8,8,8,1, - 0,120,132,132,252,132,132,132,120,6,14,14,8,1,0,72, - 72,0,0,120,132,132,132,252,132,132,132,132,120,6,12,12, - 8,1,0,72,72,0,0,120,132,132,252,132,132,132,120,6, - 12,12,8,1,0,72,0,120,132,4,4,124,4,4,4,132, - 120,6,10,10,8,1,0,72,0,120,132,4,60,4,4,132, - 120,7,13,13,8,1,0,124,0,0,130,130,68,68,40,40, - 16,16,32,96,6,13,13,8,1,254,120,0,0,132,132,72, - 72,48,48,32,32,64,192,7,14,14,8,1,0,72,72,0, - 0,130,130,68,68,40,40,16,16,32,96,6,14,14,8,1, - 254,72,72,0,0,132,132,72,72,48,48,32,32,64,192,7, - 14,14,8,1,0,102,136,0,0,130,130,68,68,40,40,16, - 16,32,96,7,14,14,8,1,254,102,136,0,0,132,132,72, - 72,48,48,32,32,64,192,6,14,14,8,1,0,72,72,0, - 0,132,132,132,132,132,140,116,4,4,4,6,12,12,8,1, - 0,72,72,0,0,132,132,132,132,140,116,4,4,6,12,12, - 8,1,254,252,128,128,128,128,128,128,128,128,224,96,32,6, - 10,10,8,1,254,252,128,128,128,128,128,128,224,96,32,6, - 14,14,8,1,0,72,72,0,0,132,132,132,132,228,148,148, - 148,148,228,6,12,12,8,1,0,72,72,0,0,132,132,132, - 228,148,148,148,228,6,12,12,8,1,254,252,128,128,128,248, - 128,128,128,128,192,64,192,5,10,10,8,1,254,248,128,128, - 240,128,128,128,192,64,192,6,12,12,8,1,254,132,132,72, - 72,48,48,72,72,132,132,4,8,6,10,10,8,1,254,132, - 132,72,48,48,72,132,132,4,8,6,10,10,8,1,0,132, - 132,72,72,48,252,72,72,132,132,6,8,8,8,1,0,132, - 132,72,48,252,72,132,132}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont[5551] U8G_FONT_SECTION("u8g_font_unifont") = { - 0,16,16,0,254,10,6,167,8,149,0,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,147,194,82,50,95,138,82,113, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,165,193, - 36,49,25,137,36,113,37,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,123,165,193,36,121,25,193,36,121,37,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,191,194,72,122,73,194, - 72,121,137,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,122, - 77,194,82,123,83,194,214,122,79,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,49,165,202,40,122,49,202,40,73,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,209,202,16,115, - 209,202,16,115,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,30,57,145,64,30,49,145,8,30,113,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,34,249,162,32,62,33,162,32,34, - 33,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,32,249,160, - 128,32,249,160,128,62,129,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,34,249,162,32,34,33,148,32,8,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,62,249,160,128,62,249,160, - 128,32,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,30, - 241,160,136,32,241,160,144,30,137,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,30,113,160,136,28,137,130,136,60,113,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,30,249,160,32,28, - 33,130,32,60,249,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,29,165,16,37,29,165,16,57,221,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,137,202,24,74,9,202,8,113, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,153,202, - 4,74,9,202,16,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,113,153,202,4,74,25,202,4,113,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,133,202,12,74,21,202, - 28,113,133,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 147,234,84,106,89,219,212,74,83,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,52,83,194,154,49,23,137,18,113,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,123,185,193,36,121, - 57,193,36,121,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,37,196,180,71,173,196,164,52,165,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,62,137,160,216,62,169,160,136,62, - 137,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,58,93,194, - 82,50,93,138,82,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,121,207,194,16,121,145,192,80,123,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,30,113,144,128,30,97,144, - 16,16,225,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,14, - 113,144,128,22,97,146,16,14,225,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,28,113,146,128,28,97,148,16,18,225,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,18,113,146,128,18, - 97,146,16,12,225,128,0,0,1,128,0,0,1,128,0,85, - 85,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,0,0,0, - 8,0,14,1,10,10,8,4,0,128,128,0,128,128,128,128, - 128,128,128,7,10,10,8,1,0,16,16,124,146,144,144,146, - 124,16,16,7,10,10,8,1,0,28,32,32,32,248,32,32, - 32,124,194,6,8,8,8,1,1,132,72,120,72,72,120,72, - 132,7,10,10,8,1,0,130,68,40,16,254,16,254,16,16, - 16,1,10,10,8,4,0,128,128,128,128,0,0,128,128,128, - 128,6,10,10,8,1,0,120,132,128,120,132,132,120,4,132, - 120,4,2,2,8,2,12,144,144,8,10,10,8,0,0,60, - 66,153,165,161,161,165,153,66,60,5,7,7,8,2,5,112, - 8,120,136,120,0,248,6,9,9,8,1,0,36,36,72,72, - 144,72,72,36,36,6,4,4,8,1,0,252,4,4,4,16, - 16,32,16,0,254,170,170,0,1,128,0,58,99,194,84,51, - 201,138,72,114,73,128,0,0,1,128,0,3,193,128,0,0, - 1,128,0,85,85,8,10,10,8,0,0,60,66,185,165,165, - 185,169,165,66,60,6,1,1,8,1,11,252,3,4,4,8, - 2,10,64,160,160,64,7,9,9,8,1,1,16,16,16,254, - 16,16,16,0,254,5,7,7,8,2,5,112,136,8,112,128, - 128,248,5,7,7,8,2,5,112,136,8,112,8,136,112,3, - 3,3,8,3,10,32,64,128,8,10,10,8,0,254,66,66, - 66,66,66,66,102,89,64,128,6,12,12,8,1,255,124,244, - 244,244,244,116,20,20,20,20,20,28,2,2,2,8,3,4, - 192,192,3,2,2,8,2,254,32,192,3,7,7,8,2,5, - 32,96,160,32,32,32,32,5,7,7,8,2,5,112,136,136, - 136,112,0,248,6,9,9,8,1,0,144,144,72,72,36,72, - 72,144,144,6,10,10,8,1,0,68,196,72,80,80,36,44, - 84,156,132,6,10,10,8,1,0,68,196,72,80,80,40,52, - 68,136,156,6,10,10,8,1,0,196,36,72,48,208,36,44, - 84,156,132,6,10,10,8,1,0,16,16,0,16,16,96,132, - 132,132,120,6,14,14,8,1,0,96,24,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 0,48,72,72,132,132,252,132,132,132,132,6,14,14,8,1, - 0,48,72,0,0,48,72,72,132,132,252,132,132,132,132,6, - 14,14,8,1,0,100,152,0,0,48,72,72,132,132,252,132, - 132,132,132,6,14,14,8,1,0,72,72,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,48,72,48, - 0,48,72,72,132,132,252,132,132,132,132,7,10,10,8,1, - 0,62,80,144,144,254,144,144,144,144,158,6,12,12,8,1, - 254,120,132,132,128,128,128,128,132,132,120,16,96,6,14,14, - 8,1,0,96,24,0,0,252,128,128,128,248,128,128,128,128, - 252,6,14,14,8,1,0,24,96,0,0,252,128,128,128,248, - 128,128,128,128,252,6,14,14,8,1,0,48,72,0,0,252, - 128,128,128,248,128,128,128,128,252,6,14,14,8,1,0,72, - 72,0,0,252,128,128,128,248,128,128,128,128,252,5,14,14, - 8,2,0,96,24,0,0,248,32,32,32,32,32,32,32,32, - 248,5,14,14,8,2,0,48,192,0,0,248,32,32,32,32, - 32,32,32,32,248,5,14,14,8,2,0,96,144,0,0,248, - 32,32,32,32,32,32,32,32,248,5,14,14,8,2,0,144, - 144,0,0,248,32,32,32,32,32,32,32,32,248,7,10,10, - 8,0,0,120,68,66,66,242,66,66,66,68,120,6,14,14, - 8,1,0,100,152,0,0,132,196,196,164,164,148,148,140,140, - 132,6,14,14,8,1,0,96,24,0,0,120,132,132,132,132, - 132,132,132,132,120,6,14,14,8,1,0,24,96,0,0,120, - 132,132,132,132,132,132,132,132,120,6,14,14,8,1,0,48, - 72,0,0,120,132,132,132,132,132,132,132,132,120,6,14,14, - 8,1,0,100,152,0,0,120,132,132,132,132,132,132,132,132, - 120,6,14,14,8,1,0,72,72,0,0,120,132,132,132,132, - 132,132,132,132,120,6,5,5,8,1,2,132,72,48,72,132, - 6,12,12,8,1,255,4,116,136,140,148,148,164,164,196,68, - 184,128,6,14,14,8,1,0,96,24,0,0,132,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,24,96,0,0, - 132,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 48,72,0,0,132,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,72,72,0,0,132,132,132,132,132,132,132,132, - 132,120,7,14,14,8,1,0,24,96,0,0,130,130,68,68, - 40,16,16,16,16,16,6,11,11,8,1,0,128,128,240,136, - 132,132,136,240,128,128,128,6,10,10,8,1,0,112,136,136, - 144,176,136,132,132,164,152,6,12,12,8,1,0,96,24,0, - 0,120,132,4,124,132,132,140,116,6,12,12,8,1,0,24, - 96,0,0,120,132,4,124,132,132,140,116,6,12,12,8,1, - 0,48,72,0,0,120,132,4,124,132,132,140,116,6,12,12, - 8,1,0,100,152,0,0,120,132,4,124,132,132,140,116,6, - 12,12,8,1,0,72,72,0,0,120,132,4,124,132,132,140, - 116,6,13,13,8,1,0,48,72,48,0,0,120,132,4,124, - 132,132,140,116,7,8,8,8,1,0,124,146,18,126,144,144, - 146,124,6,10,10,8,1,254,120,132,128,128,128,128,132,120, - 16,96,6,12,12,8,1,0,96,24,0,0,120,132,132,252, - 128,128,132,120,6,12,12,8,1,0,24,96,0,0,120,132, - 132,252,128,128,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,132,252,128,128,132,120,6,12,12,8,1,0,72,72, - 0,0,120,132,132,252,128,128,132,120,5,12,12,8,2,0, - 192,48,0,0,96,32,32,32,32,32,32,248,5,12,12,8, - 2,0,48,192,0,0,96,32,32,32,32,32,32,248,5,12, - 12,8,2,0,96,144,0,0,96,32,32,32,32,32,32,248, - 5,12,12,8,2,0,144,144,0,0,96,32,32,32,32,32, - 32,248,6,12,12,8,1,0,100,24,40,68,4,124,132,132, - 132,132,132,120,6,12,12,8,1,0,100,152,0,0,184,196, - 132,132,132,132,132,132,6,12,12,8,1,0,96,24,0,0, - 120,132,132,132,132,132,132,120,6,12,12,8,1,0,24,96, - 0,0,120,132,132,132,132,132,132,120,6,12,12,8,1,0, - 48,72,0,0,120,132,132,132,132,132,132,120,6,12,12,8, - 1,0,100,152,0,0,120,132,132,132,132,132,132,120,6,12, - 12,8,1,0,72,72,0,0,120,132,132,132,132,132,132,120, - 6,7,7,8,1,1,48,0,0,252,0,0,48,6,10,10, - 8,1,255,4,120,140,148,148,164,164,196,120,128,6,12,12, - 8,1,0,96,24,0,0,132,132,132,132,132,132,140,116,6, - 12,12,8,1,0,24,96,0,0,132,132,132,132,132,132,140, - 116,6,12,12,8,1,0,48,72,0,0,132,132,132,132,132, - 132,140,116,6,12,12,8,1,0,72,72,0,0,132,132,132, - 132,132,132,140,116,6,14,14,8,1,254,24,96,0,0,132, - 132,132,132,132,76,52,4,4,120,5,12,12,8,2,254,128, - 128,240,136,136,136,144,160,192,128,128,128,6,14,14,8,1, - 254,72,72,0,0,132,132,132,132,132,76,52,4,4,120}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=14 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifontr[1485] U8G_FONT_SECTION("u8g_font_unifontr") = { - 0,16,16,0,254,10,1,231,3,213,32,127,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85}; diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c deleted file mode 100644 index 30b3097234..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_line.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_line.h - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) -{ - u8g_uint_t tmp; - u8g_uint_t x,y; - u8g_uint_t dx, dy; - u8g_int_t err; - u8g_int_t ystep; - - uint8_t swapxy = 0; - - /* no BBX intersection check at the moment, should be added... */ - - if ( x1 > x2 ) dx = x1-x2; else dx = x2-x1; - if ( y1 > y2 ) dy = y1-y2; else dy = y2-y1; - - if ( dy > dx ) - { - swapxy = 1; - tmp = dx; dx =dy; dy = tmp; - tmp = x1; x1 =y1; y1 = tmp; - tmp = x2; x2 =y2; y2 = tmp; - } - if ( x1 > x2 ) - { - tmp = x1; x1 =x2; x2 = tmp; - tmp = y1; y1 =y2; y2 = tmp; - } - err = dx >> 1; - if ( y2 > y1 ) ystep = 1; else ystep = -1; - y = y1; - for( x = x1; x <= x2; x++ ) - { - if ( swapxy == 0 ) - u8g_DrawPixel(u8g, x, y); - else - u8g_DrawPixel(u8g, y, x); - err -= (uint8_t)dy; - if ( err < 0 ) - { - y += (u8g_uint_t)ystep; - err += (u8g_uint_t)dx; - } - } -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c deleted file mode 100644 index 856d77437d..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_ll_api.c +++ /dev/null @@ -1,573 +0,0 @@ -/* - - u8g_ll_api.c - - low level api - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include -#include "u8g.h" - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - return dev->dev_fn(u8g, dev, msg, arg); -} - -/*====================================================================*/ - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL); - u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); -} - -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL); - if ( r != 0 ) - { - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - } - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast); -} - -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg); -} - -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg); -} - -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_4TPIXEL, arg); -} - - -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg); -} -#endif - - - -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r); - return r; -} - -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r); - return r; -} - -u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL); -} - - - -/*====================================================================*/ - -void u8g_UpdateDimension(u8g_t *u8g) -{ - u8g->width = u8g_GetWidthLL(u8g, u8g->dev); - u8g->height = u8g_GetHeightLL(u8g, u8g->dev); - u8g->mode = u8g_GetModeLL(u8g, u8g->dev); - /* 9 Dec 2012: u8g_scale.c requires update of current page */ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); -} - -static void u8g_init_data(u8g_t *u8g) -{ - u8g->font = NULL; - u8g->cursor_font = NULL; - u8g->cursor_bg_color = 0; - u8g->cursor_fg_color = 1; - u8g->cursor_encoding = 34; - u8g->cursor_fn = (u8g_draw_cursor_fn)0; - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_NONE; - } -#endif - - u8g_SetColorIndex(u8g, 1); - - u8g_SetFontPosBaseline(u8g); - - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g->font_ref_ascent = 0; - u8g->font_ref_descent = 0; - u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */ - u8g->line_spacing = 0; - - u8g->state_cb = u8g_state_dummy_cb; - -} - -uint8_t u8g_Begin(u8g_t *u8g) -{ - /* call and init low level driver and com device */ - if ( u8g_InitLL(u8g, u8g->dev) == 0 ) - return 0; - /* fetch width and height from the low level */ - u8g_UpdateDimension(u8g); - return 1; -} - -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_init_data(u8g); - u8g->dev = dev; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -/* special init for pure ARM systems */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn) -{ - u8g_init_data(u8g); - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_DUMMY; - } -#endif - - u8g->dev = dev; - - /* replace the device procedure with a custom communication procedure */ - u8g->dev->com_fn = com_fn; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - - -#if defined(U8G_WITH_PINLIST) -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - - /* assign user pins */ - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - u8g->pin_list[U8G_PI_I2C_OPTION] = options; - - return u8g_Begin(u8g); -} - - -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS1] = cs1; - u8g->pin_list[U8G_PI_CS2] = cs2; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -/* - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - -*/ - -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_WR] = wr; - u8g->pin_list[U8G_PI_RD] = rd; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} -#endif /* defined(U8G_WITH_PINLIST) */ - -void u8g_FirstPage(u8g_t *u8g) -{ - u8g_FirstPageLL(u8g, u8g->dev); -} - -uint8_t u8g_NextPage(u8g_t *u8g) -{ - if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) - { - u8g->cursor_fn(u8g); - } - return u8g_NextPageLL(u8g, u8g->dev); -} - -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast) -{ - return u8g_SetContrastLL(u8g, u8g->dev, contrast); -} - -void u8g_SleepOn(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL); -} - -void u8g_SleepOff(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL); -} - - -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y) -{ - u8g_DrawPixelLL(u8g, u8g->dev, x, y); -} - -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw4TPixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - - -/* u8g_IsBBXIntersection() has been moved to u8g_clip.c */ -#ifdef OBSOLETE_CODE -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - /* new code */ - u8g_dev_arg_bbx_t arg; - arg.x = x; - arg.y = y; - arg.w = w; - arg.h = h; - return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg); - - /* old code */ - //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h); -} -#endif - -/* - idx: index for the palette entry (0..255) - r: value for red (0..255) - g: value for green (0..255) - b: value for blue (0..255) -*/ -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b) -{ - u8g_dev_arg_irgb_t irgb; - irgb.idx = idx; - irgb.r = r; - irgb.g = g; - irgb.b = b; - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_COLOR_ENTRY, &irgb); -} - -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx) -{ - u8g->arg_pixel.color = idx; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb) -{ - u8g->arg_pixel.color = rgb&255; - u8g->arg_pixel.hi_color = rgb>>8; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - - r &= ~7; - g >>= 2; - b >>= 3; - u8g->arg_pixel.color = b; - u8g->arg_pixel.color |= (g & 7) << 5; - u8g->arg_pixel.hi_color = r; - u8g->arg_pixel.hi_color |= (g>>3) & 7; - - //u8g_SetHiColor(u8g, U8G_GET_HICOLOR_BY_RGB(r,g,b)); -} - -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - if ( u8g->mode == U8G_MODE_R3G3B2 ) - { - r &= 0x0e0; - g &= 0x0e0; - g >>= 3; - b >>= 6; - u8g->arg_pixel.color = r | g | b; - } - else if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g_SetHiColorByRGB(u8g, r,g,b); - } - else - { - u8g->arg_pixel.color = r; - u8g->arg_pixel.hi_color = g; - u8g->arg_pixel.blue = b; - } -} - - -uint8_t u8g_GetColorIndex(u8g_t *u8g) -{ - return u8g->arg_pixel.color; -} - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 255; /* white */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 3; /* max intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; -} - -void u8g_SetDefaultForegroundColor(u8g_t *u8g) -{ - if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g->arg_pixel.color = 0x0ff; - u8g->arg_pixel.hi_color = 0x0ff; - } - else - { - u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g)); - } -} - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetDefaultBackgroundColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */ -} - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 0x06d; /* gray: 01101101 */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 1; /* low mid intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; /* default */ -} - -void u8g_SetDefaultMidColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g)); -} - - - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c deleted file mode 100644 index 1a3eb21ed5..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_page.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_page.c - - page helper functions, only called by the dev handler. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* - setup page count structure - conditions: page_height <= total_height -*/ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) -{ - p->page_height = page_height; - p->total_height = total_height; - p->page = 0; - u8g_page_First(p); -} - -void u8g_page_First(u8g_page_t *p) -{ - p->page_y0 = 0; - p->page_y1 = p->page_height; - p->page_y1--; - p->page = 0; -} - -uint8_t u8g_page_Next(u8g_page_t * p) -{ - register u8g_uint_t y1; - p->page_y0 += p->page_height; - if ( p->page_y0 >= p->total_height ) - return 0; - p->page++; - y1 = p->page_y1; - y1 += p->page_height; - if ( y1 >= p->total_height ) - { - y1 = p->total_height; - y1--; - } - p->page_y1 = y1; - - return 1; -} - - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c deleted file mode 100644 index a946473611..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_pb.c - - common procedures for the page buffer - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* the following procedure does not work. why? Can be checked with descpic */ -/* -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t cnt = b->width; - do - { - *ptr++ = 0; - cnt--; - } while( cnt != 0 ); -} -*/ - -/* - intersection assumptions: - a1 <= a2 is always true -*/ - /* - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ -/* -uint8_t u8g_pb8v1_IsYIntersection___Old(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c0, c1, c; - c0 = v0 <= b->p.page_y1; - c1 = v1 >= b->p.page_y0; - c = v0 > v1; - if ( c0 && c1 ) return 1; - if ( c0 && c ) return 1; - if ( c1 && c ) return 1; - return 0; -} -*/ - -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= pb->p.page_y1; - c2 = v1 >= pb->p.page_y0; - c3 = v0 > v1; - /* - if ( c1 && c2 ) - return 1; - if ( c1 && c3 ) - return 1; - if ( c2 && c3 ) - return 1; - return 0; - */ - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} - - -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t /*c0, c1, */ c2, c3; - /* - conditions: b->p.page_y0 < b->p.page_y1 - there are no restriction on v0 and v1. If v0 > v1, then warp around unsigned is assumed - */ - /* - c0 = v0 < 0; - c1 = v1 < 0; - */ - c2 = v0 > b->width; - c3 = v1 > b->width; - /*if ( c0 && c1 ) return 0;*/ - if ( c2 && c3 ) return 0; - /*if ( c1 && c2 ) return 0;*/ - return 1; -} - -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx) -{ - u8g_uint_t tmp; - - tmp = bbx->y; - tmp += bbx->h; - tmp--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, tmp) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - tmp = bbx->x; - tmp += bbx->w; - tmp--; - - return u8g_pb_IsXIntersection(pb, bbx->x, tmp); -} - -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box) -{ - box->x0 = 0; - box->y0 = pb->p.page_y0; - box->x1 = pb->width; - box->x1--; - box->y1 = pb->p.page_y1; -} - - -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - u8g_uint_t v0, v1; - v0 = arg_pixel->y; - v1 = v0; - switch( arg_pixel->dir ) - { - case 0: - break; - case 1: - v1 += 8; /* this is independent from the page height */ - break; - case 2: - break; - case 3: - v0 -= 8; - break; - } - return u8g_pb_IsYIntersection(b, v0, v1); -} - - - -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_WriteSequence(u8g, dev, b->width, b->buf); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c deleted file mode 100644 index d8667f35a9..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb14v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb14v1.c - - 14bit height monochrom (1 bit) page buffer, - byte has vertical orientation, 7 bits per byte - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb14v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb14v1_Clear(b); -} - -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 7 ) - { - ptr += b->width; - y -= 7; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb14v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb14v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb14v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb14v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb14v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb14v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb14v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb14v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c deleted file mode 100644 index d598633fa2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - - u8g_pb16h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb16h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c deleted file mode 100644 index 2d0523cf81..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16h2.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb16h2.c - - 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb16h2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h2_Clear(b); -} - -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) U8G_NOINLINE; -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - if ( is_or == 0 ) - { - mask = 3; - mask <<= tmp; - mask = ~mask; - *ptr &= mask; - } - color_index &= 3; - color_index <<= tmp; - *ptr |= color_index; -} - - -void u8g_pb16h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t is_or) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, is_or); -} - - -void u8g_pb16h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h2_SetPixel(b, arg_pixel, 0); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h2_Or4PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - arg_pixel->color = pixel & 0x0c0; - arg_pixel->color >>= 6; - u8g_pb16h2_SetPixel(b, arg_pixel, 1); - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 0); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pb16h2_Or4PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 1); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_page_First(&(pb->p)); - u8g_pb16h2_Clear(pb); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c deleted file mode 100644 index 3716411c11..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb16v1.c - - 16bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb16v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v1_Clear(b); -} - -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb16v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c deleted file mode 100644 index 94ef7e28ac..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb16v2.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - - u8g_pb16v2.c - - 16 bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16v2Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v2_Clear(b); -} - -void u8g_pb16v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - if ( y >= 4 ) - { - ptr += b->width; - } - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb16v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb16v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v2_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c deleted file mode 100644 index d40f7ce571..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb32h1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb32h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb32h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*4; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb32h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint16_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb32h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb32h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb32h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb32h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb32h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb32h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb32h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb32h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c deleted file mode 100644 index 80dc99b589..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - - u8g_pb8h1.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - 23. Sep 2012: Bug with down procedure, see FPS 1st page --> fixed (bug located in u8g_clip.c) - -*/ - -#include "u8g.h" -#include - -#ifdef __unix__ -#include -#endif - -/* NEW_CODE disabled, because the performance increase was too slow and not worth compared */ -/* to the increase of code size */ -/* #define NEW_CODE */ - -#ifdef __unix__ -void *u8g_buf_lower_limit; -void *u8g_buf_upper_limit; -#endif - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -#ifdef NEW_CODE -struct u8g_pb_h1_struct -{ - u8g_uint_t x; - u8g_uint_t y; - uint8_t *ptr; - uint8_t mask; - uint8_t line_byte_len; - uint8_t cnt; -}; - -static uint8_t u8g_pb8h1_bitmask[8] = { 0x080, 0x040, 0x020, 0x010, 0x008, 0x004, 0x002, 0x001 }; - -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) U8G_NOINLINE; -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x++; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 0 ) - s->ptr++; -} - -static void u8g_pb8h1_state_left(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x--; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 7 ) - s->ptr--; -} - -static void u8g_pb8h1_state_down(struct u8g_pb_h1_struct *s) -{ - s->y++; - s->ptr += s->line_byte_len; -} - -static void u8g_pb8h1_state_up(struct u8g_pb_h1_struct *s) -{ - s->y--; - s->ptr -= s->line_byte_len; -} - -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) U8G_NOINLINE; -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) -{ - u8g_uint_t tmp; - - uint8_t *ptr = b->buf; - - s->x = x; - s->y = y; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 3; - s->line_byte_len = tmp; - - /* assume negative y values, can be down to -7, subtract this from the pointer and add correction of 8 to y */ - ptr -= tmp*8; - y+=8; - /* it is important that the result of tmp*y can be 16 bit value also for 8 bit mode */ - ptr += tmp*y; - - s->mask = u8g_pb8h1_bitmask[x & 7]; - - /* assume negative x values (to -7), subtract 8 pixel from the pointer and add 8 to x */ - ptr--; - x += 8; - x >>= 3; - ptr += x; - s->ptr = ptr; -} - -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) -{ - -#ifdef __unix__ - assert( s->ptr >= u8g_buf_lower_limit ); - assert( s->ptr < u8g_buf_upper_limit ); -#endif - - if ( color_index ) - { - *s->ptr |= s->mask; - } - else - { - uint8_t mask = s->mask; - mask ^=0xff; - *s->ptr &= mask; - } -} -#endif - - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes */ -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ -#ifdef NEW_CODE - struct u8g_pb_h1_struct s; - u8g_pb8h1_state_init(&s, b, x, y); - u8g_pb8h1_state_set_pixel(&s, color_index); - -// u8g_pb8h1_state_up(&s); -// if ( s.y > b->p.page_y1 ) -// return; -// if ( s.x > b->width ) -// return; -// u8g_pb8h1_state_set_pixel(&s, color_index); -#else - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -#endif -} - - -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -#ifdef NEW_CODE -static void u8g_pb8h1_Set8PixelState(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - struct u8g_pb_h1_struct s; - uint8_t cnt; - u8g_pb8h1_state_init(&s, b, arg_pixel->x, arg_pixel->y); - cnt = 8; - switch( arg_pixel->dir ) - { - case 0: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_right(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 1: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_down(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 2: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_left(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 3: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_up(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - } -} -#endif - -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: -#ifdef NEW_CODE - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelState(pb, (u8g_dev_arg_pixel_t *)arg); -#else - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); -#endif - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c deleted file mode 100644 index c7be1fe10b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h1f.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_pb8h1f.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation, same as u8g_pb8h1, but byte is flipped - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes, 20 nov 2012: extended to >256 bytes */ -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - /*register uint8_t mask, tmp;*/ - register uint8_t mask; - register u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width >> 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 1; - mask <<= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1f_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1f_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1f_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1f_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1f_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1f_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c deleted file mode 100644 index aad6e42757..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h2.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - - u8g_pb8h2.c - - 8bit height 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - mask = 3; - mask <<= tmp; - mask = ~mask; - color_index &= 3; - color_index <<= tmp; - - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c deleted file mode 100644 index 49dbb86169..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8h8.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - - u8g_pb8h8.c - - 8 lines per page, horizontal, 8 bits per pixel - (22 May 2013: might also support any number of lines --> needs to be checked) - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_8h8_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_8h8_buff}; -u8g_dev_t name = { dev_fn, &u8g_index_color_8h8_pb, com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - end_ptr += b->width*cnt; - /* - do - { - end_ptr += b->width; - cnt--; - } while( cnt > 0 ); - */ - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb8h8_Clear(b); -} - -static void u8g_pb8h8_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - ptr += tmp; - *ptr = color_index; -} - -void u8g_pb8h8_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h8_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h8_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h8_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb8h8_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb8h8_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c deleted file mode 100644 index 28ac4e0ea2..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v1.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pb8v1.c - - 8bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - mask = 1; - y &= 0x07; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb8v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c deleted file mode 100644 index c8e8926b13..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pb8v2.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - - u8g_pb8v2.c - - 8bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8v2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); - -} - - - -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh16.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh16.c deleted file mode 100644 index 9e3455346e..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh16.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pbxh16.c - - x lines per page, horizontal, 16 bits per pixel (hi color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*2; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh16_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh16_Clear(b); -} - -static void u8g_pbxh16_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t low, uint8_t high) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp <<= 1; - ptr += tmp; - *ptr = low; - ptr++; - *ptr = high; -} - -void u8g_pbxh16_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh16_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color); -} - - -void u8g_pbxh16_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh16_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh16_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh16_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh16_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh16_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh24.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh24.c deleted file mode 100644 index 61ed011a1f..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_pbxh24.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - - u8g_pbxh24.c - - x lines per page, horizontal, 24 bits per pixel (true color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*3; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh24_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh24_Clear(b); -} - -#ifdef OBSOLETE -static void u8g_pbxh24_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t r, uint8_t g, uint8_t b) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - *ptr = r; - ptr++; - *ptr = g; - ptr++; - *ptr = b; -} -#endif - -/* - intensity - 0..3 intensity value - 4 replace color -*/ -static void u8g_pbxh24_set_tpixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t red, uint8_t green, uint8_t blue, uint8_t intensity) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - - if ( intensity == 0 ) - return; - - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - - if ( intensity == 4 ) - { - *ptr = red; - ptr++; - *ptr = green; - ptr++; - *ptr = blue; - return; - } - - if ( intensity == 2 ) - { - /* - red = red/4 + red/2; - green = green/4 + green/2; - blue = blue/4 + blue/2; - */ - red >>= 1; - green >>= 1; - blue >>= 1; - } - else if ( intensity == 1 ) - { - red >>= 2; - green >>= 2; - blue >>= 2; - } - - if ( *ptr >= 255-red ) *ptr = 255; - else *ptr += red; - ptr++; - - if ( *ptr >= 255-green ) *ptr = 255; - else *ptr += green; - ptr++; - - if ( *ptr >= 255-blue ) *ptr = 255; - else *ptr += blue; - - /* - if ( *ptr < red ) *ptr = red; - ptr++; - if ( *ptr < green ) *ptr = green; - ptr++; - if ( *ptr < blue ) *ptr = blue; - */ - - -} - -void u8g_pbxh24_SetTPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t intensity) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh24_set_tpixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color, arg_pixel->blue, intensity); -} - - -void u8g_pbxh24_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh24_SetTPixel(b, arg_pixel, 4); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pbxh24_Set4TPixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - u8g_pbxh24_SetTPixel(b, arg_pixel, pixel >> 6); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh24_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, 4); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pbxh24_Set4TPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, ((u8g_dev_arg_pixel_t *)arg)->pixel&3); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh24_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh24_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_TRUECOLOR; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_polygon.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_polygon.c deleted file mode 100644 index f7e9b65965..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_polygon.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - - u8g_polygon.c - - Implementation of a polygon draw algorithm for "convex" polygons. - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - See also: - http://www.angelfire.com/linux/myp/ConvexPolRas/ConvexPolRas.html - Computer Graphics, Principles and Practice, Foley, van Dam, Feiner, Hughes (pp 92) - Michael Abrash's Graphics Programming Black Book, Special Edition (Chapter 38 and 39) - - Optimized for embedded systems - - static memory usage only - - consistent data types - - low flash ROM consumption - -*/ - - -#include "u8g.h" - - - - -/*===========================================*/ -/* procedures, which should not be inlined (save as much flash ROM as possible */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) PG_NOINLINE; -static uint8_t pg_inc(pg_struct *pg, uint8_t i) PG_NOINLINE; -static uint8_t pg_dec(pg_struct *pg, uint8_t i) PG_NOINLINE; -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) PG_NOINLINE; -static void pg_line_init(pg_struct * const pg, uint8_t pge_index) PG_NOINLINE; - -/*===========================================*/ -/* line draw algorithm */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) -{ - if ( pge->current_y >= pge->max_y ) - return 0; - - pge->current_x += pge->current_x_offset; - pge->error += pge->error_offset; - if ( pge->error > 0 ) - { - pge->current_x += pge->x_direction; - pge->error -= pge->height; - } - - pge->current_y++; - return 1; -} - -/* assumes y2 > y1 */ -static void pge_Init(struct pg_edge_struct *pge, pg_word_t x1, pg_word_t y1, pg_word_t x2, pg_word_t y2) -{ - pg_word_t dx = x2 - x1; - pg_word_t width; - - pge->height = y2 - y1; - pge->max_y = y2; - pge->current_y = y1; - pge->current_x = x1; - - if ( dx >= 0 ) - { - pge->x_direction = 1; - width = dx; - pge->error = 0; - } - else - { - pge->x_direction = -1; - width = -dx; - pge->error = 1 - pge->height; - } - - pge->current_x_offset = dx / pge->height; - pge->error_offset = width % pge->height; -} - -/*===========================================*/ -/* convex polygon algorithm */ - -static uint8_t pg_inc(pg_struct *pg, uint8_t i) -{ - i++; - if ( i >= pg->cnt ) - i = 0; - return i; -} - -static uint8_t pg_dec(pg_struct *pg, uint8_t i) -{ - i--; - if ( i >= pg->cnt ) - i = pg->cnt-1; - return i; -} - -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) -{ - uint8_t i = pg->pge[pge_idx].curr_idx; - for(;;) - { - i = pg->pge[pge_idx].next_idx_fn(pg, i); - if ( pg->list[i].y != min_y ) - break; - pg->pge[pge_idx].curr_idx = i; - } -} - -static uint8_t pg_prepare(pg_struct *pg) -{ - pg_word_t max_y; - pg_word_t min_y; - uint8_t i; - - /* setup the next index procedures */ - pg->pge[PG_RIGHT].next_idx_fn = pg_inc; - pg->pge[PG_LEFT].next_idx_fn = pg_dec; - - /* search for highest and lowest point */ - max_y = pg->list[0].y; - min_y = pg->list[0].y; - pg->pge[PG_LEFT].curr_idx = 0; - for( i = 1; i < pg->cnt; i++ ) - { - if ( max_y < pg->list[i].y ) - { - max_y = pg->list[i].y; - } - if ( min_y > pg->list[i].y ) - { - pg->pge[PG_LEFT].curr_idx = i; - min_y = pg->list[i].y; - } - } - - /* calculate total number of scan lines */ - pg->total_scan_line_cnt = max_y; - pg->total_scan_line_cnt -= min_y; - - /* exit if polygon height is zero */ - if ( pg->total_scan_line_cnt == 0 ) - return 0; - - /* if the minimum y side is flat, try to find the lowest and highest x points */ - pg->pge[PG_RIGHT].curr_idx = pg->pge[PG_LEFT].curr_idx; - pg_expand_min_y(pg, min_y, PG_RIGHT); - pg_expand_min_y(pg, min_y, PG_LEFT); - - /* check if the min side is really flat (depends on the x values) */ - pg->is_min_y_not_flat = 1; - if ( pg->list[pg->pge[PG_LEFT].curr_idx].x != pg->list[pg->pge[PG_RIGHT].curr_idx].x ) - { - pg->is_min_y_not_flat = 0; - } - else - { - pg->total_scan_line_cnt--; - if ( pg->total_scan_line_cnt == 0 ) - return 0; - } - - return 1; -} - -static void pg_hline(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t x1, x2, y; - x1 = pg->pge[PG_LEFT].current_x; - x2 = pg->pge[PG_RIGHT].current_x; - y = pg->pge[PG_RIGHT].current_y; - - if ( y < 0 ) - return; - if ( y >= u8g_GetHeight(u8g) ) - return; - if ( x1 < x2 ) - { - if ( x2 < 0 ) - return; - if ( x1 >= u8g_GetWidth(u8g) ) - return; - if ( x1 < 0 ) - x1 = 0; - if ( x2 >= u8g_GetWidth(u8g) ) - x2 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x1, y, x2 - x1); - } - else - { - if ( x1 < 0 ) - return; - if ( x2 >= u8g_GetWidth(u8g) ) - return; - if ( x2 < 0 ) - x1 = 0; - if ( x1 >= u8g_GetWidth(u8g) ) - x1 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x2, y, x1 - x2); - } -} - -static void pg_line_init(pg_struct * pg, uint8_t pge_index) -{ - struct pg_edge_struct *pge = pg->pge+pge_index; - uint8_t idx; - pg_word_t x1; - pg_word_t y1; - pg_word_t x2; - pg_word_t y2; - - idx = pge->curr_idx; - y1 = pg->list[idx].y; - x1 = pg->list[idx].x; - idx = pge->next_idx_fn(pg, idx); - y2 = pg->list[idx].y; - x2 = pg->list[idx].x; - pge->curr_idx = idx; - - pge_Init(pge, x1, y1, x2, y2); -} - -static void pg_exec(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t i = pg->total_scan_line_cnt; - - /* first line is skipped if the min y line is not flat */ - pg_line_init(pg, PG_LEFT); - pg_line_init(pg, PG_RIGHT); - - if ( pg->is_min_y_not_flat != 0 ) - { - pge_Next(&(pg->pge[PG_LEFT])); - pge_Next(&(pg->pge[PG_RIGHT])); - } - - do - { - pg_hline(pg, u8g); - while ( pge_Next(&(pg->pge[PG_LEFT])) == 0 ) - { - pg_line_init(pg, PG_LEFT); - } - while ( pge_Next(&(pg->pge[PG_RIGHT])) == 0 ) - { - pg_line_init(pg, PG_RIGHT); - } - i--; - } while( i > 0 ); -} - -/*===========================================*/ -/* API procedures */ - -void pg_ClearPolygonXY(pg_struct *pg) -{ - pg->cnt = 0; -} - -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y) -{ - if ( pg->cnt < PG_MAX_POINTS ) - { - pg->list[pg->cnt].x = x; - pg->list[pg->cnt].y = y; - pg->cnt++; - } -} - -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g) -{ - if ( pg_prepare(pg) == 0 ) - return; - pg_exec(pg, u8g); -} - -pg_struct u8g_pg; - -void u8g_ClearPolygonXY(void) -{ - pg_ClearPolygonXY(&u8g_pg); -} - -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y) -{ - pg_AddPolygonXY(&u8g_pg, u8g, x, y); -} - -void u8g_DrawPolygon(u8g_t *u8g) -{ - pg_DrawPolygon(&u8g_pg, u8g); -} - -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2) -{ - u8g_ClearPolygonXY(); - u8g_AddPolygonXY(u8g, x0, y0); - u8g_AddPolygonXY(u8g, x1, y1); - u8g_AddPolygonXY(u8g, x2, y2); - u8g_DrawPolygon(u8g); -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c deleted file mode 100644 index 139a43a24a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rect.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_rect.c - - U8G high level interface for horizontal and vertical things - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_draw_hline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - uint8_t pixel = 0x0ff; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - w-=8; - x+=8; - } - if ( w != 0 ) - { - w ^=7; - w++; - pixel <<= w&7; - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - } -} - -void u8g_draw_vline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) -{ - uint8_t pixel = 0x0ff; - while( h >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - h-=8; - y+=8; - } - if ( h != 0 ) - { - h ^=7; - h++; - pixel <<= h&7; - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - } -} - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, 1) == 0 ) - return; - u8g_draw_hline(u8g, x, y, w); -} - -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, 1, w) == 0 ) - return; - u8g_draw_vline(u8g, x, y, w); -} - -/* restrictions: w > 0 && h > 0 */ -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - u8g_uint_t xtmp = x; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - - u8g_draw_hline(u8g, x, y, w); - u8g_draw_vline(u8g, x, y, h); - x+=w; - x--; - u8g_draw_vline(u8g, x, y, h); - y+=h; - y--; - u8g_draw_hline(u8g, xtmp, y, w); -} - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - do - { - u8g_draw_hline(u8g, x, y, w); - y++; - h--; - } while( h != 0 ); -} - -/* restrictions: h > 0 */ -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - u8g_draw_box(u8g, x, y, w, h); -} - - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - { - u8g_uint_t yl, xr; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_circle(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_circle(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_circle(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_circle(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - } - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - w--; - u8g_draw_hline(u8g, xl, y, ww); - u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_vline(u8g, x, yu, hh); - u8g_draw_vline(u8g, x+w, yu, hh); - } -} - -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - u8g_uint_t yl, xr; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_disc(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_disc(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_disc(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_disc(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - u8g_draw_box(u8g, xl, y, ww, r+1); - u8g_draw_box(u8g, xl, yl, ww, r+1); - //u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_box(u8g, x, yu, w, hh); - //u8g_draw_vline(u8g, x+w, yu, hh); - } -} diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c deleted file mode 100644 index 3791675b6a..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_rot.c +++ /dev/null @@ -1,409 +0,0 @@ -/* - - u8g_rot.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_dev_rot_dummy_fn(void *u8g, void *dev, uint8_t msg, void *arg) -{ - return 0; -} - -u8g_dev_t u8g_dev_rot = { u8g_dev_rot_dummy_fn, NULL, NULL }; - - -void u8g_UndoRotation(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - return; - u8g->dev = u8g_dev_rot.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot90(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot90_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot180(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot180_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot270(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot270_fn; - u8g_UpdateDimension(u8g); -} - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - y = bbx->x; - x = u8g->height; - /* x = u8g_GetWidthLL(u8g, rotation_chain); */ - x -= bbx->y; - x--; - - /* adjust point to be the uppler left corner again */ - x -= bbx->h; - x++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - //new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - //new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - - new_box.x0 = ((u8g_box_t *)arg)->y0; - new_box.x1 = ((u8g_box_t *)arg)->y1; - new_box.y0 = ((u8g_box_t *)arg)->x0; - new_box.y1 = ((u8g_box_t *)arg)->x1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - //uint16_t x,y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=1; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y; - - /* transform the reference point */ - //y = u8g_GetHeightLL(u8g, rotation_chain); - y = u8g->height; - y -= bbx->y; - y--; - - //x = u8g_GetWidthLL(u8g, rotation_chain); - x = u8g->width; - x -= bbx->x; - x--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->h; - y++; - - x -= bbx->w; - x++; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.x1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - new_box.y0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.y1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=2; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - x = bbx->y; - - y = u8g->width; - /* y = u8g_GetHeightLL(u8g, rotation_chain); */ - y -= bbx->x; - y--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->w; - y++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - new_box.y0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.y1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=3; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c deleted file mode 100644 index e5b4b634fb..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_scale.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_scale.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Scale screen by some constant factors. Usefull for making bigger fonts wiht less - memory consumption - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -u8g_dev_t u8g_dev_scale = { u8g_dev_scale_2x2_fn, NULL, NULL }; - -void u8g_UndoScale(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - return; - u8g->dev = u8g_dev_scale.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetScale2x2(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - { - u8g_dev_scale.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_scale; - } - u8g_dev_scale.dev_fn = u8g_dev_scale_2x2_fn; - u8g_UpdateDimension(u8g); -} - - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *chain = (u8g_dev_t *)(dev->dev_mem); - uint8_t pixel; - uint16_t scaled_pixel; - uint8_t i; - uint8_t dir; - u8g_uint_t x, y, xx,yy; - - switch(msg) - { - default: - return u8g_call_dev_fn(u8g, chain, msg, arg); - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, chain, msg, arg); - ((u8g_box_t *)arg)->x0 /= 2; - ((u8g_box_t *)arg)->x1 /= 2; - ((u8g_box_t *)arg)->y0 /= 2; - ((u8g_box_t *)arg)->y1 /= 2; - return 1; - case U8G_DEV_MSG_SET_PIXEL: - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - y++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - pixel = ((u8g_dev_arg_pixel_t *)arg)->pixel; - dir = ((u8g_dev_arg_pixel_t *)arg)->dir; - scaled_pixel = 0; - for( i = 0; i < 8; i++ ) - { - scaled_pixel<<=2; - if ( pixel & 128 ) - { - scaled_pixel |= 3; - } - pixel<<=1; - } - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - xx = x; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - yy = y; - if ( ((u8g_dev_arg_pixel_t *)arg)->dir & 1 ) - { - xx++; - } - else - { - yy++; - } - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel>>8; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel&255; - //((u8g_dev_arg_pixel_t *)arg)->pixel = 0x00; - switch(dir) - { - case 0: - x+=8; - xx+=8; - break; - case 1: - y+=8; - yy+=8; - break; - case 2: - x-=8; - xx-=8; - break; - case 3: - y-=8; - yy-=8; - break; - } - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c deleted file mode 100644 index 9573c8bf3b..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_state.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - - u8g_state.c - - backup and restore hardware state - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - device callback: DEV_MSG_INIT - state callback: backup u8g U8G_STATE_MSG_BACKUP_U8G - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - state callback: retore u8g U8G_STATE_MSG_RESTORE_U8G - DEV_MSG_PAGE_FIRST or DEV_MSG_PAGE_NEXT - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - -*/ - -#include -#include "u8g.h" - -void u8g_state_dummy_cb(uint8_t msg) -{ - /* the dummy procedure does nothing */ -} - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb) -{ - u8g->state_cb = backup_cb; - /* in most cases the init message was already sent, so this will backup the */ - /* current u8g state */ - backup_cb(U8G_STATE_MSG_BACKUP_U8G); -} - - -/*===============================================================*/ -/* register variable for restoring interrupt state */ - -#if defined(__AVR__) -uint8_t global_SREG_backup; -#endif - - - -/*===============================================================*/ -/* AVR */ - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_SPI) -#include -static uint8_t u8g_state_avr_spi_memory[2]; - -void u8g_backup_spi(uint8_t msg) -{ - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)] = SPCR; - } - else - { - uint8_t tmp = SREG; - cli(); - SPCR = 0; - SPCR = u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)]; - SREG = tmp; - } -} - -#elif defined (U8G_RASPBERRY_PI) - -#include - -void u8g_backup_spi(uint8_t msg) { - printf("u8g_backup_spi %d\r\n",msg); -} - -#elif defined(ARDUINO) && defined(__SAM3X8E__) // Arduino Due, maybe we should better check for __SAM3X8E__ - -#include "sam.h" - -struct sam_backup_struct -{ - uint32_t mr; - uint32_t sr; - uint32_t csr[4]; -} sam_backup[2]; - -void u8g_backup_spi(uint8_t msg) -{ - uint8_t idx = U8G_STATE_MSG_GET_IDX(msg); - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - sam_backup[idx].mr = SPI0->SPI_MR; - sam_backup[idx].sr = SPI0->SPI_SR; - sam_backup[idx].csr[0] = SPI0->SPI_CSR[0]; - sam_backup[idx].csr[1] = SPI0->SPI_CSR[1]; - sam_backup[idx].csr[2] = SPI0->SPI_CSR[2]; - sam_backup[idx].csr[3] = SPI0->SPI_CSR[3]; - } - else - { - SPI0->SPI_MR = sam_backup[idx].mr; - SPI0->SPI_CSR[0] = sam_backup[idx].csr[0]; - SPI0->SPI_CSR[1] = sam_backup[idx].csr[1]; - SPI0->SPI_CSR[2] = sam_backup[idx].csr[2]; - SPI0->SPI_CSR[3] = sam_backup[idx].csr[3]; - } -} - -#else - -void u8g_backup_spi(uint8_t msg) -{ -} - -#endif - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c deleted file mode 100644 index f1d1803cfa..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u16toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u16toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -const char *u8g_u16toap(char * dest, uint16_t v) -{ - uint8_t pos; - uint8_t d; - uint16_t c; - c = 10000; - for( pos = 0; pos < 5; pos++ ) - { - d = '0'; - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - c /= 10; - } - dest[5] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d) -{ - static char buf[6]; - d = 5-d; - return u8g_u16toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c deleted file mode 100644 index f3a2c06faf..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_u8toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u8toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -static const unsigned char u8g_u8toa_tab[3] = { 100, 10, 1 } ; -const char *u8g_u8toap(char * dest, uint8_t v) -{ - uint8_t pos; - uint8_t d; - uint8_t c; - for( pos = 0; pos < 3; pos++ ) - { - d = '0'; - c = *(u8g_u8toa_tab+pos); - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - } - dest[3] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d) -{ - static char buf[4]; - d = 3-d; - return u8g_u8toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c b/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c deleted file mode 100644 index 8000506b43..0000000000 --- a/ArduinoAddons/Arduino_1.0.x/libraries/U8glib/utility/u8g_virtual_screen.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_virtual_screen.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -struct _u8g_vs_t -{ - u8g_uint_t x; - u8g_uint_t y; - u8g_t *u8g; -}; -typedef struct _u8g_vs_t u8g_vs_t; - -#define U8g_VS_MAX 4 -uint8_t u8g_vs_cnt = 0; -u8g_vs_t u8g_vs_list[U8g_VS_MAX]; -uint8_t u8g_vs_current; -u8g_uint_t u8g_vs_width; -u8g_uint_t u8g_vs_height; - -uint8_t u8g_dev_vs_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - default: - { - uint8_t i; - for( i = 0; i < u8g_vs_cnt; i++ ) - { - u8g_call_dev_fn(u8g_vs_list[i].u8g, u8g_vs_list[i].u8g->dev, msg, arg); - } - } - return 1; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_vs_current = 0; - if ( u8g_vs_cnt != 0 ) - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - return 0; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t ret = 0; - if ( u8g_vs_cnt != 0 ) - ret = u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - if ( ret != 0 ) - return ret; - u8g_vs_current++; /* next device */ - if ( u8g_vs_current >= u8g_vs_cnt ) /* reached end? */ - return 0; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, U8G_DEV_MSG_PAGE_FIRST, arg); - } - return 0; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_vs_width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_vs_height; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - if ( u8g_vs_current < u8g_vs_cnt ) - { - u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - ((u8g_box_t *)arg)->x0 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->x1 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->y0 += u8g_vs_list[u8g_vs_current].y; - ((u8g_box_t *)arg)->y1 += u8g_vs_list[u8g_vs_current].y; - } - else - { - ((u8g_box_t *)arg)->x0 = 0; - ((u8g_box_t *)arg)->x1 = 0; - ((u8g_box_t *)arg)->y0 = 0; - ((u8g_box_t *)arg)->y1 = 0; - } - return 1; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_vs_current < u8g_vs_cnt ) - { - ((u8g_dev_arg_pixel_t *)arg)->x -= u8g_vs_list[u8g_vs_current].x; - ((u8g_dev_arg_pixel_t *)arg)->y -= u8g_vs_list[u8g_vs_current].y; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - } - break; - } - return 1; -} - - - -u8g_dev_t u8g_dev_vs = { u8g_dev_vs_fn, NULL, NULL }; - -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return; /* abort if there is no a virtual screen device */ - u8g_vs_width = width; - u8g_vs_height = height; -} - -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return 0; /* abort if there is no a virtual screen device */ - if ( u8g_vs_cnt >= U8g_VS_MAX ) - return 0; /* maximum number of child u8g's reached */ - u8g_vs_list[u8g_vs_cnt].u8g = child_u8g; - u8g_vs_list[u8g_vs_cnt].x = x; - u8g_vs_list[u8g_vs_cnt].y = y; - u8g_vs_cnt++; - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt deleted file mode 100644 index cbe7c7b430..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/boards.txt +++ /dev/null @@ -1,159 +0,0 @@ -# See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification -# See: http://code.google.com/p/arduino/wiki/Platforms - -############################################################## - -menu.cpu=Processor - -######################################## -## RAMBo -######################################## -rambo.name=RAMBo - -rambo.upload.tool=arduino:avrdude -rambo.upload.protocol=wiring -rambo.upload.maximum_size=258048 -rambo.upload.speed=115200 - -rambo.bootloader.low_fuses=0xFF -rambo.bootloader.high_fuses=0xD8 -rambo.bootloader.extended_fuses=0xFD -rambo.bootloader.path=stk500v2 -rambo.bootloader.file=stk500boot_v2_mega2560.hex -rambo.bootloader.unlock_bits=0x3F -rambo.bootloader.lock_bits=0x0F - -rambo.build.mcu=atmega2560 -rambo.build.f_cpu=16000000L -rambo.build.board=AVR_RAMBO -rambo.build.core=arduino:arduino -rambo.build.variant=rambo - -######################################## -## Sanguino -######################################## -sanguino.name=Sanguino - -sanguino.upload.tool=arduino:avrdude -sanguino.upload.protocol=stk500 -sanguino.upload.maximum_size=131072 -sanguino.upload.speed=57600 - -sanguino.bootloader.low_fuses=0xD6 -sanguino.bootloader.high_fuses=0xDA -sanguino.bootloader.extended_fuses=0xFD -sanguino.bootloader.path=atmega -sanguino.bootloader.unlock_bits=0x3F -sanguino.bootloader.lock_bits=0x0F - -sanguino.build.mcu=atmega1284p -sanguino.build.f_cpu=16000000L -sanguino.build.board=AVR_SANGUINO -sanguino.build.core=arduino:arduino -sanguino.build.variant=sanguino - -sanguino.menu.cpu.atmega644=ATmega644P -sanguino.menu.cpu.atmega644.upload.maximum_size=63488 -sanguino.menu.cpu.atmega644.bootloader.low_fuses=0xFF -sanguino.menu.cpu.atmega644.bootloader.high_fuses=0x9A -sanguino.menu.cpu.atmega644.bootloader.extended_fuses=0xFF -sanguino.menu.cpu.atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex -sanguino.menu.cpu.atmega644.build.mcu=atmega644p - -sanguino.menu.cpu.atmega12848m=ATmega1284p 8MHz -sanguino.menu.cpu.atmega12848m.upload.speed=19200 -sanguino.menu.cpu.atmega12848m.bootloader.file=ATmegaBOOT_168_atmega1284p_8m.hex -sanguino.menu.cpu.atmega12848m.build.f_cpu=8000000L - -sanguino.menu.cpu.atmega1284=ATmega1284p 16MHz -sanguino.menu.cpu.atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex - -sanguino.menu.cpu.atmega1284m=ATmega1284p 20MHz -sanguino.menu.cpu.atmega1284m.bootloader.file=ATmegaBOOT_168_atmega1284p.hex -sanguino.menu.cpu.atmega1284m.build.f_cpu=20000000L - -######################################## -## Brainwave -######################################## -Brainwave.name=Brainwave - -Brainwave.bootloader.tool=avrdude -Brainwave.bootloader.low_fuses=0xFF -Brainwave.bootloader.high_fuses=0x99 -Brainwave.bootloader.extended_fuses=0xF0 -Brainwave.bootloader.unlock_bits=0x3F -Brainwave.bootloader.lock_bits=0x02F -Brainwave.bootloader.path=brainwave -Brainwave.bootloader.file=Brainwave-646-LUFA.hex - -Brainwave.upload.tool=avrdude -Brainwave.upload.protocol=avr109 -Brainwave.upload.maximum_size=61440 -Brainwave.upload.speed=115200 -Brainwave.upload.disable_flushing=true - -Brainwave.build.mcu=at90usb646 -Brainwave.build.f_cpu=16000000L -Brainwave.build.core=brainwave -Brainwave.build.dependency=true -Brainwave.build.variant=brainwave -Brainwave.build.vid=0x16D0 -Brainwave.build.pid=0x076B - -######################################## -## BrainwavePro -######################################## -BrainwavePro.name=Brainwave Pro - -BrainwavePro.bootloader.tool=avrdude -BrainwavePro.bootloader.low_fuses=0xFF -BrainwavePro.bootloader.high_fuses=0x9B -BrainwavePro.bootloader.extended_fuses=0xF0 -BrainwavePro.bootloader.unlock_bits=0x3F -BrainwavePro.bootloader.lock_bits=0x02F -BrainwavePro.bootloader.path=brainwave -BrainwavePro.bootloader.file=BrainwavePro-1286-LUFA.hex - -BrainwavePro.upload.tool=avrdude -BrainwavePro.upload.protocol=avr109 -BrainwavePro.upload.maximum_size=126976 -BrainwavePro.upload.speed=115200 -BrainwavePro.upload.disable_flushing=true - -BrainwavePro.build.mcu=at90usb1286 -BrainwavePro.build.f_cpu=16000000L -BrainwavePro.build.core=brainwave -BrainwavePro.build.dependency=true -BrainwavePro.build.variant=brainwavepro -BrainwavePro.build.vid=0x16D0 -BrainwavePro.build.pid=0x076B -BrainwavePro.build.extra_flags=-DAT90USBxx_TEENSYPP_ASSIGNMENTS -DUSB_VID={build.vid} -DUSB_PID={build.pid} - -######################################## -## KosselPro -- BrainwavePro with HID boot -######################################## -KosselPro.name=Kossel Pro (HID Bootloader) - -KosselPro.bootloader.tool=avrdude -KosselPro.bootloader.low_fuses=0xFF -KosselPro.bootloader.high_fuses=0x9B -KosselPro.bootloader.extended_fuses=0xF0 -KosselPro.bootloader.unlock_bits=0x3F -KosselPro.bootloader.lock_bits=0x02F -KosselPro.bootloader.path=brainwave -KosselPro.bootloader.file=BootloaderHID.hex - -KosselPro.upload.tool=hidloader -KosselPro.upload.protocol=halfkay -KosselPro.upload.maximum_size=126976 -KosselPro.upload.speed=115200 -KosselPro.upload.disable_flushing=true - -KosselPro.build.mcu=at90usb1286 -KosselPro.build.f_cpu=16000000L -KosselPro.build.core=brainwave -KosselPro.build.dependency=true -KosselPro.build.variant=brainwavepro -KosselPro.build.vid=0x16D0 -KosselPro.build.pid=0x076B -KosselPro.build.extra_flags=-DAT90USBxx_TEENSYPP_ASSIGNMENTS -DUSB_VID={build.vid} -DUSB_PID={build.pid} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c deleted file mode 100644 index 1df3f03113..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c +++ /dev/null @@ -1,1071 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* */ -/* 20090308: integrated Mega changes into main bootloader */ -/* source by D. Mellis */ -/* 20080930: hacked for Arduino Mega (with the 1280 */ -/* processor, backwards compatible) */ -/* by D. Cuartielles */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU General */ -/* Public License as published by the Free Software */ -/* Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will */ -/* be useful, but WITHOUT ANY WARRANTY; without even the */ -/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ -/* PARTICULAR PURPOSE. See the GNU General Public */ -/* License for more details. */ -/* */ -/* You should have received a copy of the GNU General */ -/* Public License along with this program; if not, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) -#include -#endif - -/* Use the F_CPU defined in Makefile */ - -/* 20060803: hacked by DojoCorp */ -/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ -/* set the waiting time for the bootloader */ -/* get this from the Makefile instead */ -/* #define MAX_TIME_COUNT (F_CPU>>4) */ - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -//#define BAUD_RATE 115200 -#ifndef BAUD_RATE -#define BAUD_RATE 19200 -#endif - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#elif defined __AVR_ATmega1280__ -/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ -#elif defined __AVR_ATmega1284P_ || defined __AVR_ATmega644P__ - -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#elif defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 -#else -/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ -/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) -#define MONITOR 1 -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega1280__ -#define SIG2 0x97 -#define SIG3 0x03 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega1284P__ -#define SIG2 0x97 -#define SIG3 0x05 -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega1281__ -#define SIG2 0x97 -#define SIG3 0x04 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega644P__ -#define SIG2 0x96 -#define SIG3 0x0A -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega328P__ -#define SIG2 0x95 -#define SIG3 0x0F -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -uint8_t error_count = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - -#ifdef WATCHDOG_MODS - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if it's a not an external reset... - app_start(); // skip bootloader -#else - asm volatile("nop\n\t"); -#endif - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - /* We run the bootloader regardless of the state of this pin. Thus, don't - put it in a different state than the other pins. --DAM, 070709 - This also applies to Arduino Mega -- DC, 080930 - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); - */ -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - -#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ - /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ - /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ - bootuart = 1; -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - -#ifdef DOUBLE_SPEED - UCSR0A = (1<> 8; -#else - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; -#endif - - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - -#if defined __AVR_ATmega1280__ - /* Enable internal pull-up resistor on pin D0 (RX), in order - to supress line noise that prevents the bootloader from - timing out (DAM: 20070509) */ - /* feature added to the Arduino Mega --DC: 080930 */ - DDRE &= ~_BV(PINE0); - PORTE |= _BV(PINE0); -#endif - - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - /* flash onboard LED to signal entering of bootloader */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - // 4x for UART0, 5x for UART1 - flash_led(NUM_LED_FLASHES + bootuart); -#else - flash_led(NUM_LED_FLASHES); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* P: Enter programming mode */ - /* R: Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='P' || ch=='R') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); -#ifdef WATCHDOG_MODS - // autoreset via watchdog (sneaky!) - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - if (getch() == 0x30) { - getch(); - ch = getch(); - getch(); - if (ch == 0) { - byte_response(SIG1); - } else if (ch == 1) { - byte_response(SIG2); - } else { - byte_response(SIG3); - } - } else { - getNch(3); - byte_response(0x00); - } - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete -#else - while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete -#endif - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ || __AVR_ATmega1284P__ || __AVR_ATmega644P__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - address.word = address.word << 1; // address * 2 -> byte location - if (getch() == 'E') flags.eeprom = 1; - else flags.eeprom = 0; - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while(EECR & (1<= 'a') { - return (a - 'a' + 0x0a); - } else if(a >= '0') { - return(a - '0'); - } - return a; -} - - -char gethex(void) { - return (gethexnib() << 4) + gethexnib(); -} - - -void puthex(char ch) { - char ah; - - ah = ch >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - - ch &= 0x0f; - if(ch >= 0x0a) { - ch = ch - 0x0a + 'a'; - } else { - ch += '0'; - } - - putch(ah); - putch(ch); -} - - -void putch(char ch) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - uint32_t count = 0; - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR1; - } - return 0; -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - while(count--) { -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - UDR1; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - getch(); -#else - /* m8,16,32,169,8515,8535,163 */ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - //while(!(UCSRA & _BV(RXC))); - //UDR; - getch(); // need to handle time out -#endif - } -} - - -void byte_response(uint8_t val) -{ - if (getch() == ' ') { - putch(0x14); - putch(val); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - - -void nothing_response(void) -{ - if (getch() == ' ') { - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - -void flash_led(uint8_t count) -{ - while (count--) { - LED_PORT |= _BV(LED); - _delay_ms(100); - LED_PORT &= ~_BV(LED); - _delay_ms(100); - } -} - - -/* end of file ATmegaBOOT.c */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex deleted file mode 100644 index a63dc8dd04..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E4E81682E4E4 -:10F17000F8068FE0080780E0180770F3E0910401BB -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E4E81682E4F8068FE00807BE -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00031EE44E0215030404040E1F700C00000F2 -:10F2E00028982FEF31EE44E0215030404040E1F7C4 -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100080E18093C4001092C5001092C00086E086 -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex deleted file mode 100644 index 7f5f3f3d46..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E2E81681EAE1 -:10F17000F80687E0080780E0180770F3E0910401C3 -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E2E81681EAF80687E00807C3 -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00030E742E0215030404040E1F700C00000FC -:10F2E00028982FEF30E742E0215030404040E1F7CE -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100089E18093C4001092C5001092C00086E07D -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex deleted file mode 100644 index 2edf9c6773..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex +++ /dev/null @@ -1,126 +0,0 @@ -:10F800000C943E7C0C945B7C0C945B7C0C945B7C39 -:10F810000C945B7C0C945B7C0C945B7C0C945B7C0C -:10F820000C945B7C0C945B7C0C945B7C0C945B7CFC -:10F830000C945B7C0C945B7C0C945B7C0C945B7CEC -:10F840000C945B7C0C945B7C0C945B7C0C945B7CDC -:10F850000C945B7C0C945B7C0C945B7C0C945B7CCC -:10F860000C945B7C0C945B7C0C945B7C0C945B7CBC -:10F870000C945B7C0C945B7C0C945B7C11241FBE11 -:10F88000CFEFD0E1DEBFCDBF11E0A0E0B1E0EAEA0A -:10F89000FFEF02C005900D92A230B107D9F712E038 -:10F8A000A2E0B1E001C01D92AD30B107E1F70E94C6 -:10F8B000747D0C94D37F0C94007C90910201913064 -:10F8C00019F0923041F008959091C00095FFFCCF5F -:10F8D0008093C60008959091C80095FFFCCF809357 -:10F8E000CE0008951F93982F95959595959595958C -:10F8F000905D182F1F701A304CF4105D892F0E94F4 -:10F900005D7C812F0E945D7C1F910895195A892F7B -:10F910000E945D7C812F0E945D7C1F910895EF9273 -:10F92000FF920F931F9380910201813069F1823021 -:10F9300031F080E01F910F91FF90EF900895EE2439 -:10F94000FF2487018091C80087FD17C00894E11C3F -:10F95000F11C011D111D81E4E81682E4F8068FE018 -:10F96000080780E0180770F3E0910401F0910501A9 -:10F9700009958091C80087FFE9CF8091CE001F9143 -:10F980000F91FF90EF900895EE24FF24870180915E -:10F99000C00087FD17C00894E11CF11C011D111D5A -:10F9A00081E4E81682E4F8068FE0080780E0180793 -:10F9B00070F3E0910401F091050109958091C00078 -:10F9C00087FFE9CF8091C6001F910F91FF90EF90C4 -:10F9D00008951F930E948F7C182F0E945D7C113622 -:10F9E00034F410330CF01053812F1F9108951755E4 -:10F9F000812F1F9108951F930E94E97C182F0E9468 -:10FA0000E97C1295107F810F1F91089520910201CA -:10FA1000882339F0213031F0223061F08150882381 -:10FA2000C9F708959091C00097FFFCCF9091C60050 -:10FA30008150F5CF9091C80097FFFCCF9091CE00F8 -:10FA40008150EDCF1F93182F0E948F7C803281F060 -:10FA5000809103018F5F80930301853011F01F9126 -:10FA60000895E0910401F091050109951F91089511 -:10FA700084E10E945D7C812F0E945D7C80E10E9478 -:10FA80005D7CEDCF0E948F7C803271F0809103010C -:10FA90008F5F80930301853009F00895E0910401A0 -:10FAA000F09105010995089584E10E945D7C80E153 -:10FAB0000E945D7C089515C0289A2FEF31EE44E036 -:10FAC000215030404040E1F700C0000028982FEF5F -:10FAD00031EE44E0215030404040E1F700C00000EA -:10FAE0008150882349F70895EF92FF920F931F9357 -:10FAF000CF93DF93000081E08093020180E1809347 -:10FB0000C4001092C5001092C00086E08093C2002D -:10FB100088E18093C100209A81E00E945B7D0E9471 -:10FB20008F7C8033B1F18133B9F1803409F454C052 -:10FB3000813409F45AC0823409F469C0853409F467 -:10FB40006CC0803531F1823521F1813511F1853577 -:10FB500009F469C0863509F471C0843609F47AC0A5 -:10FB6000843709F4E1C0853709F439C1863709F4CF -:10FB70004AC0809103018F5F80930301853079F63D -:10FB8000E0910401F091050109950E948F7C80337A -:10FB900051F60E94427DC3CF0E948F7C803249F78C -:10FBA00084E10E945D7C81E40E945D7C86E50E9488 -:10FBB0005D7C82E50E945D7C80E20E945D7C89E440 -:10FBC0000E945D7C83E50E945D7C80E50E945D7CF7 -:10FBD00080E10E945D7CA3CF0E948F7C8638C8F2B2 -:10FBE0000E948F7C0E94427D9ACF0E948F7C803839 -:10FBF00009F40EC1813809F40FC1823809F410C12B -:10FC0000883909F401C180E00E94227D88CF84E117 -:10FC10000E94067D0E94427D82CF85E00E94067D83 -:10FC20000E94427D7CCF0E948F7C809306010E94BF -:10FC30008F7C809307010E94427D71CF0E948F7C50 -:10FC4000803309F4F1C083E00E94067D80E00E94C9 -:10FC5000227D65CF0E948F7C809309020E948F7C59 -:10FC60008093080280910C028E7F80930C020E9488 -:10FC70008F7C853409F4E9C08091080290910902D3 -:10FC80000097A1F068E0E62E61E0F62E00E010E0BB -:10FC90000E948F7CF70181937F010F5F1F4F80913E -:10FCA0000802909109020817190790F30E948F7CAF -:10FCB000803209F05ECF80910C0280FFE5C0809118 -:10FCC000060190910701880F991F90930701809377 -:10FCD0000601209108023091090221153105E9F051 -:10FCE00048E0E42E41E0F42E00E010E0F7016191DD -:10FCF0007F010E94C57F80910601909107010196C6 -:10FD000090930701809306010F5F1F4F2091080217 -:10FD1000309109020217130748F384E10E945D7CC9 -:10FD200080E10E945D7CFBCE0E948F7C8093090263 -:10FD30000E948F7C809308028091060190910701B8 -:10FD400097FD9CC020910C022D7F20930C02880F00 -:10FD5000991F90930701809306010E948F7C853440 -:10FD600009F486C080910C028E7F80930C020E9461 -:10FD70008F7C803209F0D3CE84E10E945D7C20919B -:10FD800008023091090221153105D1F100E010E09F -:10FD900080910601909107010CC041FF5CC0019663 -:10FDA00090930701809306010F5F1F4F02171307FF -:10FDB00038F540910C0240FFF0CF0E94BD7F0E94B9 -:10FDC0005D7C809106019091070101969093070157 -:10FDD000809306012091080230910902E5CF0E942C -:10FDE0008F7C803209F0C5CE84E10E945D7C8EE17B -:10FDF0000E945D7C86E90E945D7C8AE00E945D7CB9 -:10FE000080E10E945D7C8BCE83E00E94227D87CEC4 -:10FE100082E00E94227D83CE81E00E94227D7FCEFF -:10FE200080E10E94227D7BCE0E948F7C0E948F7C8D -:10FE3000082F0E948F7C002309F497C0013009F439 -:10FE400098C08AE00E94227D6ACE80910C02816077 -:10FE500080930C0211CFFC0184910E945D7C209163 -:10FE6000080230910902809106019091070197CF15 -:10FE700080910C02816080930C0279CF20910C025A -:10FE8000226020930C0263CF80910701880F880BBA -:10FE9000817080930B028091060190910701880F79 -:10FEA000991F90930701809306018091080280FFBB -:10FEB00009C080910802909109020196909309026D -:10FEC00080930802F894F999FECF1127E09106017A -:10FED000F0910701C8E0D1E08091080290910902F9 -:10FEE000103091F40091570001700130D9F303E014 -:10FEF00000935700E8950091570001700130D9F345 -:10FF000001E100935700E89509901990009157007E -:10FF100001700130D9F301E000935700E895139583 -:10FF2000103898F011270091570001700130D9F373 -:10FF300005E000935700E8950091570001700130EB -:10FF4000D9F301E100935700E8953296029709F042 -:10FF5000C7CF103011F00296E5CF112484E10E9442 -:10FF60005D7C80E10E945D7CDACD8EE10E94227D85 -:10FF7000D6CD86E90E94227DD2CDF999FECF92BDE1 -:10FF800081BDF89A992780B50895262FF999FECF5B -:10FF90001FBA92BD81BD20BD0FB6F894FA9AF99AA6 -:0AFFA0000FBE01960895F894FFCFFC -:02FFAA008000D5 -:040000030000F80001 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile deleted file mode 100644 index 3f2bb61567..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/atmega/Makefile +++ /dev/null @@ -1,254 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = ATmegaBOOT_168 - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTION = --section-start=.text=0x3800 - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x0f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - - -OBJ = $(PROGRAM).o -OPTIMIZE = -O2 - -DEFS = -LIBS = - -CC = avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = -Wl,$(LDSECTION) -#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: - -lilypad: TARGET = lilypad -lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -lilypad_isp: HFUSE = DD -lilypad_isp: LFUSE = E2 -lilypad_isp: EFUSE = 00 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -lilypad_resonator_isp: HFUSE = DD -lilypad_resonator_isp: LFUSE = C6 -lilypad_resonator_isp: EFUSE = 00 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -pro8_isp: HFUSE = DD -pro8_isp: LFUSE = C6 -pro8_isp: EFUSE = 00 -pro8_isp: isp - -pro16: TARGET = pro_16MHz -pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -pro16_isp: HFUSE = DD -pro16_isp: LFUSE = C6 -pro16_isp: EFUSE = 00 -pro16_isp: isp - -pro20: TARGET = pro_20mhz -pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -pro20_isp: HFUSE = DD -pro20_isp: LFUSE = C6 -pro20_isp: EFUSE = 00 -pro20_isp: isp - -diecimila: TARGET = diecimila -diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -diecimila_isp: HFUSE = DD -diecimila_isp: LFUSE = FF -diecimila_isp: EFUSE = 00 -diecimila_isp: isp - -ng: TARGET = ng -ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -ng: AVR_FREQ = 16000000L -ng: $(PROGRAM)_ng.hex - -ng_isp: ng -ng_isp: TARGET = ng -ng_isp: HFUSE = DD -ng_isp: LFUSE = FF -ng_isp: EFUSE = 00 -ng_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTION = --section-start=.text=0x7800 -atmega328: $(PROGRAM)_atmega328.hex - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -atmega328_isp: HFUSE = DA -atmega328_isp: LFUSE = FF -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTION = --section-start=.text=0x7800 -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -atmega328_pro8_isp: HFUSE = DA -atmega328_pro8_isp: LFUSE = FF -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' -DBAUD_RATE=57600 -mega: AVR_FREQ = 16000000L -mega: LDSECTION = --section-start=.text=0x1F000 -mega: $(PROGRAM)_atmega1280.hex - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -mega_isp: HFUSE = DA -mega_isp: LFUSE = FF -mega_isp: EFUSE = F5 -mega_isp: isp - -atmega1284p: TARGET = atmega1284p -atmega1284p: MCU_TARGET = atmega1284p -atmega1284p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega1284p: AVR_FREQ = 16000000L -atmega1284p: LDSECTION = --section-start=.text=0x1F000 -atmega1284p: $(PROGRAM)_atmega1284p.hex - -atmega1284p_8m: TARGET = atmega1284p -atmega1284p_8m: MCU_TARGET = atmega1284p -atmega1284p_8m: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=19200' -atmega1284p_8m: AVR_FREQ = 8000000L -atmega1284p_8m: LDSECTION = --section-start=.text=0x1F000 -atmega1284p_8m: $(PROGRAM)_atmega1284p_8m.hex - -atmega644p: TARGET = atmega644p -atmega644p: MCU_TARGET = atmega644p -atmega644p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega644p: AVR_FREQ = 16000000L -atmega644p: LDSECTION = --section-start=.text=0xF800 -atmega644p: $(PROGRAM)_atmega644p.hex - - -atmega1284p_isp: atmega1284p -atmega1284p_isp: TARGET = atmega1284p -atmega1284p_isp: MCU_TARGET = atmega1284p -atmega1284p_isp: HFUSE = DC -atmega1284p_isp: LFUSE = FF -atmega1284p_isp: EFUSE = FD -atmega1284p_isp: isp - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BootloaderHID.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BootloaderHID.hex deleted file mode 100644 index 31134c84e7..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BootloaderHID.hex +++ /dev/null @@ -1,139 +0,0 @@ -:020000021000EC -:10F000004BC0000077C0000075C0000073C0000056 -:10F0100071C000006FC000006DC000006BC0000038 -:10F0200069C0000067C0000028C2000063C0000083 -:10F0300061C000005FC000005DC000005BC0000058 -:10F0400059C0000057C0000055C0000053C0000068 -:10F0500051C000004FC000004DC000004BC0000078 -:10F0600049C0000047C0000045C0000043C0000088 -:10F0700041C000003FC000003DC000003BC0000098 -:10F0800039C0000037C0000035C0000033C00000A8 -:10F0900031C000002FC0000011241FBECFEFD0E20E -:10F0A000DEBFCDBF04B603FE0EC080915401909127 -:10F0B000550182349C4D39F410925501109254013F -:10F0C000E0E0F0E0099511E0A0E0B1E0E8E2F8EF5F -:10F0D00001E00BBF02C007900D92AA34B107D9F727 -:10F0E00021E0AAE4B1E001C01D92A435B207E1F726 -:10F0F00002D098C385CF84B7877F84BF88E10FB6DD -:10F10000F89480936000109260000FBE81E085BF8C -:10F1100082E085BF97D1789480910001882311F017 -:10F1200066D3FACF8091E00081608093E00082E4B2 -:10F130009CED90935501809354012CE088E190E080 -:10F140000FB6F894A895809360000FBE20936000DE -:10F15000FFCF42E361EC81E002C1CF92DF92EF92F8 -:10F16000FF921F93CF93DF9380914C018F77813271 -:10F1700009F075C080914D01893009F070C080910F -:10F18000E800877F8093E8008091E80082FFFCCF51 -:10F190009091F1008091F100492F582F60E070E0CC -:10F1A000B62FA52F942F88274F3F5F4F19F4109249 -:10F1B00000013EC023E0FC01A0935B0020935700B8 -:10F1C000E89507B600FCFDCF20E030E011E040916B -:10F1D000F2005091F300452B09F437C05091F10033 -:10F1E0004091F100C52FD42FA901440F551F6C0188 -:10F1F0007D01C40ED51EE11CF11C0E01F601E0924A -:10F200005B0010935700E89511242F5F3F4F203883 -:10F210003105E9F625E0FC01A0935B00209357003F -:10F22000E89507B600FCFDCF81E180935700E89593 -:10F230008091E8008B778093E800DF91CF911F9158 -:10F24000FF90EF90DF90CF909EC04091E8004B7709 -:10F250004093E8004091E80042FFFCCFBFCFDF9130 -:10F26000CF911F91FF90EF90DF90CF900895913054 -:10F2700049F0923061F0913279F489E090E023E135 -:10F2800031E00EC082E190E023E231E009C082E289 -:10F2900090E021E031E004C085E190E025E331E039 -:10F2A000FA01318320830895209152013091530156 -:10F2B0002617370748F06115710539F42091E800E9 -:10F2C0002E772093E80001C0B901FC0120E0611510 -:10F2D000710591F18EB38823E1F18530E1F18091E0 -:10F2E000E80083FD3AC08091E80082FF06C080916B -:10F2F000E80082FF24C080E008958091E80080FF4C -:10F30000E6CF8091F2009091F3006115710551F004 -:10F310008830910538F421912093F10061507109F2 -:10F320000196F3CF21E0089709F020E08091E800F2 -:10F330008E778093E800CBCF2111CCCFD8CF8EB37E -:10F34000882339F0853039F08091E80083FFCFCFF2 -:10F3500004C082E0089583E0089581E008958F70ED -:10F360008093E900EBEEF0E0808181608083EDEE38 -:10F37000F0E010826093EC0040838091EE00881FE3 -:10F380008827881F089580914C0187FD05C08091D2 -:10F39000E80080FF0DC010C08091E80082FD04C02D -:10F3A0008EB38111F9CF08958091E8008B7707C063 -:10F3B0008EB38111ECCF08958091E8008E77809311 -:10F3C000E80008950F931F93CF93DF9349D050D057 -:10F3D000C8EDD0E088818F778883888180688883B2 -:10F3E00088818F7D8883E7EDF0E08081806880836D -:10F3F00019BC1EBA10924A0100EE10E0F80180819B -:10F400008B7F808388818160888342E060E080E038 -:10F41000A6DFE1EEF0E080818E7F8083E2EEF0E017 -:10F42000808181608083808188608083F801808111 -:10F430008E7F8083888180618883DF91CF911F9147 -:10F440000F910895E8EDF0E080818F7E8083E7EDF5 -:10F45000F0E080818160808381E080934B01B2CFB6 -:10F46000E8EDF0E080818C7F80831092E2000895C7 -:10F470001092DA001092E10008951F920F920FB6D9 -:10F480000F9211240BB60F922F933F934F935F93DC -:10F490006F937F938F939F93AF93BF93EF93FF935C -:10F4A0008091DA0080FF1BC08091D80080FF17C0D8 -:10F4B0008091DA008E7F8093DA008091D90080FFFE -:10F4C0000BC084E189BD86E189BD09B400FEFDCF92 -:10F4D00081E08EBB8BD103C019BC1EBA87D180914D -:10F4E000E10080FF17C08091E20080FF13C080918F -:10F4F000E2008E7F8093E2008091E2008061809341 -:10F50000E2008091D80080628093D80019BC85E029 -:10F510008EBB6CD18091E10084FF2EC08091E2000F -:10F5200084FF2AC084E189BD86E189BD09B400FE5B -:10F53000FDCF8091D8008F7D8093D8008091E1002D -:10F540008F7E8093E1008091E2008F7E8093E200C5 -:10F550008091E20081608093E20080914A018823DB -:10F5600011F084E007C08091E30087FF02C083E0D0 -:10F5700001C081E08EBB3AD18091E10083FF21C0C0 -:10F580008091E20083FF1DC08091E100877F80931E -:10F59000E10082E08EBB10924A018091E1008E7FF3 -:10F5A0008093E1008091E2008E7F8093E200809161 -:10F5B000E20080618093E20042E060E080E0CFDE24 -:10F5C00015D1FF91EF91BF91AF919F918F917F9155 -:10F5D0006F915F914F913F912F910F900BBE0F90C4 -:10F5E0000FBE0F901F9018951F93CF93DF9300D0FD -:10F5F000CDB7DEB7ECE4F1E08091F100819381E0DA -:10F60000E435F807C9F7A9DD8091E80083FFDAC087 -:10F6100090914C0180914D01853009F465C030F422 -:10F62000813059F168F0833041F1CCC0883009F461 -:10F630009CC0893009F4ABC0863009F0C3C075C0E6 -:10F64000903881F0923809F0BDC0809150018F70E0 -:10F650008093E9009091EB0095FB992790F9109227 -:10F66000E90001C090E08091E800877F8093E80086 -:10F670009093F1001092F10083C0292F2D7F09F0A3 -:10F68000A1C0923009F09EC090914E01911126C008 -:10F69000209150012F7009F495C02093E9009091BA -:10F6A000EB0090FF1BC0833021F48091EB0080625F -:10F6B00013C08091EB0080618093EB0081E090E0CB -:10F6C000022E01C0880F0A94EAF78093EA00109294 -:10F6D000EA008091EB0088608093EB001092E900D3 -:10F6E0008091E800877F4FC091116CC010914E014E -:10F6F0001F778091E3008078812B8093E3008091D5 -:10F70000E800877F8093E8003EDE8091E80080FF7C -:10F71000FCCF8091E30080688093E300112311F017 -:10F7200083E001C082E08EBB4DC09058923008F05B -:10F7300049C0AE014F5F5F4F6091500180914E0113 -:10F7400090914F0194DD009709F43CC02091E800AE -:10F75000277F2093E800BC0189819A81A5DD8091F3 -:10F76000E8008B778093E8002DC0903859F58091A0 -:10F77000E800877F8093E80080914A018093F10040 -:10F780008091E8008E778093E800FDDD1BC0911129 -:10F7900019C090914E019230A8F48091E800877FC3 -:10F7A0008093E80090934A01EEDD80914A01811137 -:10F7B00004C08091E30087FF02C084E001C081E0C3 -:10F7C0008EBBC7DC8091E80083FF0AC08091E8000F -:10F7D000877F8093E8008091EB0080628093EB004C -:10F7E0000F900F90DF91CF911F9108950895CF93BF -:10F7F0008EB38823A9F08091E9008F709091EC007E -:10F8000090FF02C090E801C090E0C92FC82B109271 -:10F81000E9008091E80083FDE7DECF70C093E90046 -:08F82000CF910895F894FFCF89 -:10F8280001090222000101008032090400000103DD -:10F8380000000009211101000122150007058103BC -:10F848004000051201100100000008EB03672001C9 -:10F85800000000000106DCFF09FBA10109021500F8 -:0AF8680025FF75089602019102C009 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/Brainwave-646-LUFA.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/Brainwave-646-LUFA.hex deleted file mode 100644 index 6adb770023..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/Brainwave-646-LUFA.hex +++ /dev/null @@ -1,239 +0,0 @@ -:020000021000EC -:10F000004BC0000064C0000062C0000060C000008F -:10F010005EC000005CC000005AC0000058C0000084 -:10F0200056C0000054C000006FC4000050C0000073 -:10F030004EC000004CC000004AC0000048C00000A4 -:10F0400046C0000044C0000042C0000040C00000B4 -:10F050003EC000003CC000003AC0000038C00000C4 -:10F0600036C0000034C0000032C0000030C00000D4 -:10F070002EC000002CC000002AC0000028C00000E4 -:10F0800026C0000024C0000022C0000020C00000F4 -:10F090001EC000001CC0000011241FBECFEFD0E135 -:10F0A000DEBFCDBF11E0A0E0B1E0E2E2FEEF02C0C2 -:10F0B00005900D92AC38B107D9F711E0ACE8B1E09A -:10F0C00001C01D92AD39B107E1F7FCD2A8C698CFB7 -:10F0D00084E08093E9000DC08091E8008B778093F5 -:10F0E000E80003C08EB3882359F08091E80082FFC6 -:10F0F000F9CF8091E80085FFEFCF8091F10008956E -:10F1000080E0089593E09093E9009091E80095FDE8 -:10F110000DC09091E8009E779093E80003C09EB3E5 -:10F12000992331F09091E80090FFF9CF8093F1009E -:10F13000089584B7877F84BF88E10FB6F8948093E1 -:10F140006000109260000FBE90E080E80FB6F89467 -:10F1500080936100909361000FBE81E085BF82E0E3 -:10F1600085BFBCC382E061EC42E03ED383E061E84E -:10F1700042E13AD384E060E842E136C380919601EF -:10F180008032B1F0813239F580919501813A19F5DB -:10F190008091E800877F8093E80088E091E067E055 -:10F1A00070E07BD58091E8008B778093E80008952C -:10F1B00080919501813279F48091E800877F809376 -:10F1C000E80088E091E067E070E0C2D58091E80057 -:10F1D0008E778093E80008952F923F924F925F922E -:10F1E0006F927F929F92AF92BF92CF92DF92EF92F7 -:10F1F000FF920F931F93DF93CF930F92CDB7DEB79C -:10F2000084E08093E9008091E80082FF48C2109278 -:10F210008C015EDF182F8C3409F4EEC1803509F4BF -:10F22000EBC1843529F0853429F410920F01E4C133 -:10F230004FDFE2C1843711F484E448C0813611F411 -:10F2400089E503C28134F1F443DF382F330F20E026 -:10F2500079010027F7FC0095102FE0928F01F092C2 -:10F260009001009391011093920132DF90E0880F9A -:10F27000991FAA2797FDA095BA2F8E299F29A02B09 -:10F28000B12BB2C1803711F483E5DFC1833559F466 -:10F2900000E011E0F80181918F0134DFF1E00730E7 -:10F2A0001F07C1F7D3C1863521F481E32BDF80E34B -:10F2B000CCC1833731F482E825DF86E923DF8EE194 -:10F2C000C4C1823631F489E51DDF81E01BDF80E0B7 -:10F2D000BCC18536F9F480E090E0DC0133E025E044 -:10F2E000FC0130935700E89507B600FCFDCF209352 -:10F2F0005700E89507B600FCFDCF8F5F9E4FAF4FDC -:10F30000BF4F8F3E40EF940741E0A40740E0B407B1 -:10F3100039F772C18C3651F4DBDE809599E0E1E07B -:10F32000F0E0082E90935700E89566C1823719F4F3 -:10F33000E1E0F0E00EC0863419F4E0E0F0E009C04E -:10F340008E3419F4E3E0F0E004C0813539F4E2E0F2 -:10F35000F0E089E080935700849177C1833471F4A1 -:10F3600000918F0110919001B3DE90E021E0F8014F -:10F370000C0120935700E89511243EC1833679F49F -:10F3800000918F01109190010160A2DE90E021E0D8 -:10F39000F8010C0120935700E89511241AC18D360D -:10F3A00061F4E0918F01F091900185E08093570026 -:10F3B000E89507B600FCFDCF1FC1823419F08736EF -:10F3C00009F0E9C085DEE82E83DE082F81DEB82E45 -:10F3D0008554823008F038C13E2D20E0202E3324A1 -:10F3E000222A332A173609F054C081E1809357004E -:10F3F000E89510E001E048C0FB2DF63409F5E12F57 -:10F40000F0E080918F0190919001E82BF92B84918D -:10F4100079DE112399F080918F0190919001A09154 -:10F420009101B09192010296A11DB11D80938F01AF -:10F4300090939001A0939101B0939201102721C065 -:10F4400080918F0190919001A0919101B0919201D2 -:10F45000B695A79597958795CCD454DE80918F016A -:10F4600090919001A0919101B09192010296A11DFD -:10F47000B11D80938F0190939001A0939101B0935F -:10F4800092010894210831082114310409F0B4CF05 -:10F49000DDC040908F01509090016090910170907C -:10F4A00092012B2D263409F061C083E0F201809394 -:10F4B0005700E89507B600FCFDCF58C0FB2DF63489 -:10F4C00061F5222331F1E0908F01F090900100DE90 -:10F4D000D82ECC248A2D90E08C299D29F7010C018F -:10F4E00090925700E895112480918F01909190019E -:10F4F000A0919101B09192010296A11DB11D80933E -:10F500008F0190939001A0939101B093920120E01C -:10F5100029C0DEDDA82E21E025C0E0908F01F0900B -:10F520009001009191011091920116950795F79421 -:10F53000E7942983CDDD682FC70163D480918F01C3 -:10F5400090919001A0919101B09192010296A11D1C -:10F55000B11D80938F0190939001A0939101B0937E -:10F560009201298108942108310804C0AA2420E0CE -:10F57000992493942114310409F0A0CFFB2DF63483 -:10F5800009F03AC085E0F20180935700E89507B68C -:10F5900000FCFDCF31C0823551F4E0918F01F09134 -:10F5A000900105911491812FADDD802F4EC08434E0 -:10F5B00029F5E0908F01F090900100919101109158 -:10F5C000920116950795F794E79482DD682FC7019D -:10F5D00018D480918F0190919001A0919101B091E8 -:10F5E00092010296A11DB11D80938F01909390010D -:10F5F000A0939101B09392018DE027C0843611F55C -:10F6000080918F0190919001A0919101B091920110 -:10F61000B695A79597958795ECD374DD80918F016A -:10F6200090919001A0919101B09192010296A11D3B -:10F63000B11D80938F0190939001A0939101B0939D -:10F64000920104C08B3111F08FE35CDD83E0809385 -:10F65000E9009091E8008091E8008E778093E800BF -:10F6600095FF04C010C08EB38823C9F08091E800D4 -:10F6700080FFF9CF8091E8008E778093E80003C087 -:10F680008EB3882361F08091E80080FFF9CF84E099 -:10F690008093E9008091E8008B778093E8000F90D9 -:10F6A000CF91DF911F910F91FF90EF90DF90CF905E -:10F6B000BF90AF909F907F906F905F904F903F90E2 -:10F6C0002F900895EF92FF920F931F93DF93CF93A4 -:10F6D0000F92CDB7DEB784B714BE909160009861E9 -:10F6E000909360001092600010928C0190E0FC01F9 -:10F6F000E270F07081FD0BC0859194912FEF8F3FE8 -:10F70000920729F0E0918D01F0918E01099511DDAC -:10F710006F9A779A789481E010E000E0E0E0F0E002 -:10F72000E590F49025C0898357DD51D30F5F89811F -:10F73000002311F4180F779A011709F477981F3FE7 -:10F7400059F0112351F4813041F080918C018F5F89 -:10F7500080938C0181E001C08FEF90918C019530F6 -:10F7600038F09FEFE9169FEFF90611F010920F01A4 -:10F7700090910F019923B9F68091E0008160809308 -:10F78000E0002CE088E190E00FB6F894A895809313 -:10F7900060000FBE20936000FFCF923049F093309D -:10F7A00061F09130C1F020E030E080E090E017C0DF -:10F7B0002EE330E082E291E012C0882331F4209100 -:10F7C000600130E080E691E00AC02091640130E001 -:10F7D00084E691E004C022E130E080E191E0FA01AA -:10F7E00091838083C90108958093E900EBEEF0E0F6 -:10F7F000808181608083EDEEF0E010826093EC0008 -:10F8000040838091EE00881F8827881F089580918B -:10F81000950187FF11C003C08EB38823B1F080919A -:10F82000E80082FFF9CF8091E8008B778093E800B1 -:10F8300008958EB3882349F08091E80080FFF9CFC6 -:10F840008091E8008E778093E800089550D057D0DB -:10F850008091D800982F9F779093D80080688093EC -:10F86000D80088E189BD89B5826089BD09B400FEF0 -:10F87000FDCF8091D8008F7D8093D8008091D700F4 -:10F8800080688093D7001EBA109293018091E000A7 -:10F890008B7F8093E0008091D80081608093D800B6 -:10F8A00080E060E042E0A0DF8091E1008E7F809305 -:10F8B000E1008091E20081608093E2008091E200AB -:10F8C00088608093E2008091E0008E7F8093E0006A -:10F8D0008091D80080618093D8000895E7EDF0E032 -:10F8E00080818160808381E080939401AFCFE8EDD7 -:10F8F000F0E080818C7F80831092E2000895109266 -:10F90000DA001092E10008951F920F920FB60F9245 -:10F9100011242F933F934F935F936F937F938F9314 -:10F920009F93AF93BF93EF93FF938091DA0080FF93 -:10F9300013C08091D80080FF0FC08091DA008E7FC5 -:10F940008093DA008091D90080FF04C081E08EBBF3 -:10F95000A3D102C01EBAA0D18091E10080FF1CC0DB -:10F960008091E20080FF18C08091E1008E7F80933B -:10F97000E1008091E2008E7F8093E2008091E200BE -:10F9800080618093E2008091D80080628093D800EB -:10F9900019BC85E08EBB80D18091E10084FF2DC031 -:10F9A0008091E20084FF29C088E189BD89B5826029 -:10F9B00089BD09B400FEFDCF8091D8008F7D809372 -:10F9C000D8008091E1008F7E8093E1008091E20079 -:10F9D0008F7E8093E2008091E20081608093E2005C -:10F9E00080919301882321F48091E30087FF02C076 -:10F9F00084E001C081E08EBB4FD18091E10083FFA4 -:10FA000021C08091E20083FF1DC08091E100877FCB -:10FA10008093E10082E08EBB109293018091E1001F -:10FA20008E7F8093E1008091E2008E7F8093E200E0 -:10FA30008091E20080618093E20080E060E042E03B -:10FA4000D3DE2AD18091E10082FF0AC08091E200DA -:10FA500082FF06C08091E1008B7F8093E1001CD182 -:10FA6000FF91EF91BF91AF919F918F917F916F9196 -:10FA70005F914F913F912F910F900FBE0F901F906C -:10FA800018950F931F93DF93CF9300D0CDB7DEB7B8 -:10FA9000E5E9F1E08091F100819381E0ED39F8072B -:10FAA000C9F78091950190919601953009F46BC04A -:10FAB000963040F4913061F1913070F0933009F05C -:10FAC000D5C026C0983009F4A3C0993009F4B2C05B -:10FAD000963009F0CBC07CC0803809F4C8C08238A9 -:10FAE00009F0C4C08091990187708093E9009091DA -:10FAF000EB001092E9008091E800877F8093E80096 -:10FB000081E095FF80E08093F1001092F1008BC0BE -:10FB1000882319F0823009F0A9C08F71823009F072 -:10FB2000A6C080919701882341F520919901277003 -:10FB300009F49DC02093E9008091EB0080FF1DC077 -:10FB400080919601833021F48091EB00806213C094 -:10FB50008091EB0080618093EB0081E090E002C037 -:10FB6000880F991F2A95E2F78093EA001092EA0025 -:10FB70008091EB0088608093EB001092E900809107 -:10FB8000E800877F53C0882309F070C01091970167 -:10FB90001F770FB7F8948091E800877F8093E80083 -:10FBA00036DE8091E80080FFFCCF112311F083E066 -:10FBB00001C082E08EBB8091E3008078812B80932E -:10FBC000E3008091E30080688093E3000FBF4FC0A3 -:10FBD0008058823008F04AC0809197019091980136 -:10FBE00060919901AE014F5F5F4FD7DDBC01009777 -:10FBF00009F43DC08091E800877F8093E800898107 -:10FC00009A814BD08091E8008B778093E8002FC0D9 -:10FC1000803861F58091E800877F8093E8008091CB -:10FC200093018093F1008091E8008E778093E80043 -:10FC3000EEDD1DC08823D1F4909197019230B8F485 -:10FC40008091E800877F8093E80090939301DFDD47 -:10FC500080919301882321F48091E30087FF02C003 -:10FC600084E001C081E08EBB7DDA01C087DA80913B -:10FC7000E80083FF0AC08091EB0080628093EB0074 -:10FC80008091E800877F8093E8000F900F90CF91DC -:10FC9000DF911F910F9108950895282F392FF901B1 -:10FCA00080919B0190919C018617970718F4BC01E5 -:10FCB00020E035C061157105D9F78091E8008E7795 -:10FCC0008093E800F5CF8EB38823F1F18530C1F140 -:10FCD0008091E80083FD36C08091E80082FD2AC053 -:10FCE0008091E80080FF1BC08091F2009091F300AA -:10FCF00006C021912093F10061507040019661157A -:10FD0000710519F088309105A0F321E08830910544 -:10FD100009F020E08091E8008E778093E80061157B -:10FD2000710589F6222379F605C08EB3882361F028 -:10FD3000853061F08091E80082FFF7CF80E0089580 -:10FD400083E0089581E0089582E0089583E00895B6 -:10FD50006115710529F51FC02EB32223A1F12530AD -:10FD600071F12091E80023FD2CC02091E80022FFD2 -:10FD7000F3CFE82FF92F07C08091F1008193CF01D5 -:10FD80006150704041F0CF012091F2003091F300BA -:10FD90002115310589F72091E8002B772093E800A1 -:10FDA00061157105C9F605C08EB3882361F08530F1 -:10FDB00061F08091E80080FFF7CF80E0089583E054 -:10FDC000089581E0089582E0089583E008951F93E7 -:10FDD0008EB3882361F01091E90017701092E9004A -:10FDE0008091E80083FF01C04CDE1093E9001F9171 -:10FDF0000895F999FECF92BD81BDF89A992780B5F3 -:10FE00000895262FF999FECF1FBA92BD81BD20BD5E -:10FE10000FB6F894FA9AF99A0FBE01960895F894DD -:02FE2000FFCF12 -:10FE22004C554641434443000000000000000801D5 -:10FE320012011001020000089A23010001000001D2 -:10FE4200000109023E0002010080320904000001A3 -:10FE52000202010005240010010424020405240604 -:10FE620000010705820308000209040100020A00DA -:10FE720000000705040210000007058302100000BD -:10FE820004030904260341005600520020004300E7 -:10FE920044004300200042006F006F0074006C00B9 -:0CFEA2006F006100640065007200000049 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BrainwavePro-1286-LUFA.hex b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BrainwavePro-1286-LUFA.hex deleted file mode 100644 index 99f0f36b35..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/bootloaders/brainwave/BrainwavePro-1286-LUFA.hex +++ /dev/null @@ -1,247 +0,0 @@ -:020000021000EC -:10F000004BC0000066C0000064C0000062C0000089 -:10F0100060C000005EC000005CC000005AC000007C -:10F0200058C0000056C00000ACC4000052C0000030 -:10F0300050C000004EC000004CC000004AC000009C -:10F0400048C0000046C0000044C0000042C00000AC -:10F0500040C000003EC000003CC000003AC00000BC -:10F0600038C0000036C0000034C0000032C00000CC -:10F0700030C000002EC000002CC000002AC00000DC -:10F0800028C0000026C0000024C0000022C00000EC -:10F0900020C000001EC0000011241FBECFEFD0E230 -:10F0A000DEBFCDBF11E0A0E0B1E0E4EAFEEF01E099 -:10F0B0000BBF02C007900D92AC38B107D9F711E031 -:10F0C000ACE8B1E001C01D92AD39B107E1F72FD333 -:10F0D000E7C696CF84E08093E9000DC08091E800F8 -:10F0E0008B778093E80003C08EB3882359F080911A -:10F0F000E80082FFF9CF8091E80085FFEFCF809193 -:10F10000F100089580E0089593E09093E9009091D4 -:10F11000E80095FD0DC09091E8009E779093E8007F -:10F1200003C09EB3992331F09091E80090FFF9CF8E -:10F130008093F100089584B7877F84BF88E10FB67C -:10F14000F89480936000109260000FBE90E080E819 -:10F150000FB6F89480936100909361000FBE81E038 -:10F1600085BF82E085BFF7C382E061EC42E079D3DE -:10F1700083E061E842E175D384E060E842E171C375 -:10F18000809196018032B1F0813239F580919501FC -:10F19000813A19F58091E800877F8093E80088E044 -:10F1A00091E067E070E0BAD58091E8008B778093BA -:10F1B000E800089580919501813279F48091E8000A -:10F1C000877F8093E80088E091E067E070E001D6F7 -:10F1D0008091E8008E778093E80008952F923F9207 -:10F1E0005F926F927F928F929F92AF92BF92CF92D7 -:10F1F000DF92EF92FF920F931F93DF93CF930F92C3 -:10F20000CDB7DEB784E08093E9008091E80082FF0B -:10F210007BC210928C015EDF182F8C3409F421C25E -:10F22000803509F41EC2843529F0853429F4109202 -:10F230000F0117C24FDF15C2843711F484E448C0B0 -:10F24000813611F489E536C28134F1F443DF382F79 -:10F25000330F20E079010027F7FC0095102FE09292 -:10F260008F01F0929001009391011093920132DF8F -:10F2700090E0880F991FAA2797FDA095BA2F8E2995 -:10F280009F29A02BB12BE5C1803711F483E512C271 -:10F29000833559F400E011E0D8018D918D0134DF00 -:10F2A000B1E007301B07C1F706C2863521F481E3C0 -:10F2B0002BDF80E3FFC1833731F482E825DF87E964 -:10F2C00023DF8EE1F7C1823631F489E51DDF81E06D -:10F2D0001BDF80E0EFC1853621F580E090E0DC01A6 -:10F2E00033E025E0FC01A0935B0030935700E895E4 -:10F2F00007B600FCFDCFFC01A0935B0020935700F4 -:10F30000E89507B600FCFDCF8F5F9E4FAF4FBF4F14 -:10F310008F3EE0EF9E07E1E0AE07E0E0BE0711F7A9 -:10F32000A0C18C3651F4D6DE809599E0E1E0F0E0A2 -:10F33000082E90935700E89594C1823719F4E1E0C4 -:10F34000F0E00EC0863419F4E0E0F0E009C08E343D -:10F3500019F4E3E0F0E004C0813539F4E2E0F0E0D4 -:10F3600089E0809357008491A5C18334A1F4E09093 -:10F370008F01F09090010091910110919201AADE0D -:10F3800090E021E00C01F70100935B00209357000F -:10F39000E895112466C18336E1F4E0908F01F09086 -:10F3A0009001009191011091920181E090E0A0E024 -:10F3B000B0E0E82AF92A0A2B1B2B8CDE90E021E032 -:10F3C0000C01F70100935B0020935700E89511248E -:10F3D00035C18D3699F480918F0190919001A09163 -:10F3E0009101B091920125E0FC01A0935B00209374 -:10F3F0005700E89507B600FCFDCF33C1823419F001 -:10F40000873609F0F7C066DEE82E64DE082F62DE7C -:10F41000982E8554823008F04CC13E2D20E0202EDD -:10F420003324222A332A173609F058C081E1809309 -:10F430005700E89510E001E04CC020918F01309119 -:10F4400090014091910150919201992D963419F5B6 -:10F45000812F90E0A0E0B0E0822B932BA42BB52B62 -:10F46000ABBFFC01879150DE112399F080918F0191 -:10F4700090919001A0919101B09192010296A11DED -:10F48000B11D80938F0190939001A0939101B0934F -:10F49000920110271BC0DA01C901B695A79597956F -:10F4A0008795E8D431DE80918F0190919001A091F1 -:10F4B0009101B09192010296A11DB11D80938F011F -:10F4C00090939001A0939101B09392010894210828 -:10F4D00031082114310409F0B0CFEDC0A0908F01A4 -:10F4E000B0909001C0909101D0909201A92DA634C6 -:10F4F00009F069C083E0F501C0925B00809357007A -:10F50000E89507B600FCFDCF5EC0B92DB63491F585 -:10F51000222361F1E0908F01F09090010091910120 -:10F5200010919201D7DD782E6624282D30E026290F -:10F5300037290901F70100935B0050925700E895C5 -:10F54000112480918F0190919001A0919101B0912F -:10F5500092010296A11DB11D80938F01909390019D -:10F56000A0939101B093920120E029C0B3DD882ED1 -:10F5700021E025C0E0908F01F09090010091910171 -:10F580001091920116950795F794E7942983A2DDCF -:10F59000682FC70177D480918F0190919001A0913D -:10F5A0009101B09192010296A11DB11D80938F012E -:10F5B00090939001A0939101B093920129810894B6 -:10F5C0002108310804C0882420E0552453942114D4 -:10F5D000310409F09ACFE92DE63409F042C085E004 -:10F5E000F501C0925B0080935700E89507B600FCD8 -:10F5F000FDCF37C0823581F480918F0190919001C9 -:10F60000A0919101B0919201ABBFFC0107911691BD -:10F61000812F7ADD802F4EC0843429F5E0908F0150 -:10F62000F09090010091910110919201169507952B -:10F63000F794E7944FDD682FC70124D480918F01A0 -:10F6400090919001A0919101B09192010296A11D1B -:10F65000B11D80938F0190939001A0939101B0937D -:10F6600092018DE027C0843611F580918F01909131 -:10F670009001A0919101B0919201B695A7959795AF -:10F680008795F8D341DD80918F0190919001A091F1 -:10F690009101B09192010296A11DB11D80938F013D -:10F6A00090939001A0939101B093920104C08B318B -:10F6B00011F08FE329DD83E08093E9009091E80069 -:10F6C0008091E8008E778093E80095FF04C010C019 -:10F6D0008EB38823C9F08091E80080FFF9CF809134 -:10F6E000E8008E778093E80003C08EB3882361F032 -:10F6F0008091E80080FFF9CF84E08093E900809159 -:10F70000E8008B778093E8000F90CF91DF911F91F5 -:10F710000F91FF90EF90DF90CF90BF90AF909F90B0 -:10F720008F907F906F905F903F902F900895EF9211 -:10F73000FF920F931F93DF93CF930F92CDB7DEB756 -:10F7400084B714BE9091600098619093600010920D -:10F75000600010928C0190E0FC01E270F07081FD7D -:10F760000BC0859194912FEF8F3F920729F0E09184 -:10F770008D01F0918E010995209A289A6F9A779AB7 -:10F780006D9A759A3B9A439AD6DC6F9A779A7894D9 -:10F7900081E010E000E0E0E0F0E0E590F49025C0CA -:10F7A00089831CDD55D30F5F8981002311F4180F65 -:10F7B000779A011709F477981F3F59F0112351F4F4 -:10F7C000813041F080918C018F5F80938C0181E0CA -:10F7D00001C08FEF90918C01923338F09FEFE916C2 -:10F7E0009FEFF90611F010920F0190910F019923EC -:10F7F000B9F68091E00081608093E0002CE088E120 -:10F8000090E00FB6F894A895809360000FBE209307 -:10F810006000FFCF923049F0933061F09130C1F039 -:10F8200020E030E080E090E017C02EE330E082E29C -:10F8300091E012C0882331F42091600130E080E62D -:10F8400091E00AC02091640130E084E691E004C0B8 -:10F8500022E130E080E191E0FA0191838083C901E7 -:10F8600008958093E900EBEEF0E080818160808371 -:10F87000EDEEF0E010826093EC0040838091EE00AA -:10F88000881F8827881F08958091950187FF11C0E0 -:10F8900003C08EB38823B1F08091E80082FFF9CFD6 -:10F8A0008091E8008B778093E80008958EB38823D9 -:10F8B00049F08091E80080FFF9CF8091E8008E77D1 -:10F8C0008093E800089550D057D08091D800982FA9 -:10F8D0009F779093D80080688093D80084E189BD99 -:10F8E00089B5826089BD09B400FEFDCF8091D80042 -:10F8F0008F7D8093D8008091D70080688093D70057 -:10F900001EBA109293018091E0008B7F8093E000FB -:10F910008091D80081608093D80080E060E042E070 -:10F92000A0DF8091E1008E7F8093E1008091E20072 -:10F9300081608093E2008091E20088608093E20021 -:10F940008091E0008E7F8093E0008091D8008061FC -:10F950008093D8000895E7EDF0E080818160808396 -:10F9600081E080939401AFCFE8EDF0E080818C7F5F -:10F9700080831092E20008951092DA001092E10064 -:10F9800008951F920F920FB60F920BB60F9211248B -:10F990002F933F934F935F936F937F938F939F9397 -:10F9A000AF93BF93EF93FF938091DA0080FF13C072 -:10F9B0008091D80080FF0FC08091DA008E7F809305 -:10F9C000DA008091D90080FF04C081E08EBBA5D110 -:10F9D00002C01EBAA2D18091E10080FF1CC08091BC -:10F9E000E20080FF18C08091E1008E7F8093E100EB -:10F9F0008091E2008E7F8093E2008091E20080613E -:10FA00008093E2008091D80080628093D80019BC76 -:10FA100085E08EBB82D18091E10084FF2DC0809172 -:10FA2000E20084FF29C084E189BD89B5826089BD77 -:10FA300009B400FEFDCF8091D8008F7D8093D8005F -:10FA40008091E1008F7E8093E1008091E2008F7EC3 -:10FA50008093E2008091E20081608093E2008091D7 -:10FA60009301882321F48091E30087FF02C084E0A2 -:10FA700001C081E08EBB51D18091E10083FF21C0A4 -:10FA80008091E20083FF1DC08091E100877F809319 -:10FA9000E10082E08EBB109293018091E1008E7FA5 -:10FAA0008093E1008091E2008E7F8093E20080915C -:10FAB000E20080618093E20080E060E042E0D1DE1D -:10FAC0002CD18091E10082FF0AC08091E20082FF88 -:10FAD00006C08091E1008B7F8093E1001ED1FF91F1 -:10FAE000EF91BF91AF919F918F917F916F915F91B6 -:10FAF0004F913F912F910F900BBE0F900FBE0F9023 -:10FB00001F9018950F931F93DF93CF9300D0CDB71D -:10FB1000DEB7E5E9F1E08091F100819381E0ED3914 -:10FB2000F807C9F78091950190919601953009F4F5 -:10FB30006BC0963040F4913061F1913070F09330A9 -:10FB400009F0D5C026C0983009F4A3C0993009F453 -:10FB5000B2C0963009F0CBC07CC0803809F4C8C070 -:10FB6000823809F0C4C08091990187708093E900C0 -:10FB70009091EB001092E9008091E800877F8093DC -:10FB8000E80081E095FF80E08093F1001092F100A1 -:10FB90008BC0882319F0823009F0A9C08F718230A0 -:10FBA00009F0A6C080919701882341F52091990121 -:10FBB000277009F49DC02093E9008091EB0080FF3D -:10FBC0001DC080919601833021F48091EB0080620A -:10FBD00013C08091EB0080618093EB0081E090E0A6 -:10FBE00002C0880F991F2A95E2F78093EA001092CD -:10FBF000EA008091EB0088608093EB001092E900AE -:10FC00008091E800877F53C0882309F070C010916D -:10FC100097011F770FB7F8948091E800877F809352 -:10FC2000E80032DE8091E80080FFFCCF112311F064 -:10FC300083E001C082E08EBB8091E3008078812B5D -:10FC40008093E3008091E30080688093E3000FBF1E -:10FC50004FC08058823008F04AC08091970190913F -:10FC6000980160919901AE014F5F5F4FD3DDBC01F8 -:10FC7000009709F43DC08091E800877F8093E800F9 -:10FC800089819A814BD08091E8008B778093E8003E -:10FC90002FC0803861F58091E800877F8093E8006D -:10FCA000809193018093F1008091E8008E7780939A -:10FCB000E800EADD1DC08823D1F4909197019230CD -:10FCC000B8F48091E800877F8093E80090939301D7 -:10FCD000DBDD80919301882321F48091E30087FF8D -:10FCE00002C084E001C081E08EBB3EDA01C048DA88 -:10FCF0008091E80083FF0AC08091EB0080628093CE -:10FD0000EB008091E800877F8093E8000F900F90D0 -:10FD1000CF91DF911F910F9108950895282F392FCA -:10FD2000F90180919B0190919C018617970718F427 -:10FD3000BC0120E035C061157105D9F78091E8005C -:10FD40008E778093E800F5CF8EB38823F1F185306C -:10FD5000C1F18091E80083FD36C08091E80082FD0A -:10FD60002AC08091E80080FF1BC08091F200909132 -:10FD7000F30006C021912093F1006150704001967C -:10FD80006115710519F088309105A0F321E08830E4 -:10FD9000910509F020E08091E8008E778093E800DB -:10FDA0006115710589F6222379F605C08EB3882383 -:10FDB00061F0853061F08091E80082FFF7CF80E04C -:10FDC000089583E0089581E0089582E0089583E036 -:10FDD00008956115710529F51FC02EB32223A1F1E5 -:10FDE000253071F12091E80023FD2CC02091E8001E -:10FDF00022FFF3CFE82FF92F07C08091F100819304 -:10FE0000CF016150704041F0CF012091F20030915C -:10FE1000F3002115310589F72091E8002B77209315 -:10FE2000E80061157105C9F605C08EB3882361F03D -:10FE3000853061F08091E80080FFF7CF80E0089581 -:10FE400083E0089581E0089582E0089583E00895B5 -:10FE50001F938EB3882361F01091E9001770109200 -:10FE6000E9008091E80083FF01C04CDE1093E900B7 -:10FE70001F910895F999FECF92BD81BDF89A9927F7 -:10FE800080B50895262FF999FECF1FBA92BD81BD86 -:10FE900020BD0FB6F894FA9AF99A0FBE019608950C -:04FEA000F894FFCF04 -:10FEA4004C55464143444300000000000000080153 -:10FEB40012011001020000089A2301000100000150 -:10FEC400000109023E000201008032090400000121 -:10FED4000202010005240010010424020405240682 -:10FEE40000010705820308000209040100020A0058 -:10FEF400000007050402100000070583021000003B -:10FF04000403090426034100560052002000430064 -:10FF140044004300200042006F006F0074006C0036 -:0CFF24006F0061006400650072000000C6 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Arduino.h deleted file mode 100644 index 830c9952fb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Arduino.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define true 0x1 -#define false 0x0 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef uint8_t boolean; -typedef uint8_t byte; - -void init(void); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER4D 14 -#define TIMER5A 15 -#define TIMER5B 16 -#define TIMER5C 17 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/CDC.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/CDC.cpp deleted file mode 100644 index 5a49621cf5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/CDC.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -// Use a 128 byte buffer like Arduinos of old for maximum -// compatibility. -Hubbe 20120929 -#define SERIAL_BUFFER_SIZE 128 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile int head; - volatile int tail; -}; - -ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - return true; - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - if (1200 == _usbLineInfo.dwDTERate) { - // We check DTR state to determine if host port is open (bit 0 of lineState). - if ((_usbLineInfo.lineState & 0x01) == 0) { - *(uint16_t *)0x0800 = 0x7777; - wdt_enable(WDTO_120MS); - } else { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0800 = 0x0; - } - } - return true; - } - } - return false; -} - - -int _serialPeek = -1; -void Serial_::begin(uint16_t baud_count) -{ -} - -void Serial_::end(void) -{ -} - -void Serial_::accept(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - int c = USB_Recv(CDC_RX); - int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -int Serial_::available(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int Serial_::peek(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - if (buffer->head == buffer->tail) { - return -1; - } else { - return buffer->buffer[buffer->tail]; - } -} - -int Serial_::read(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - // if the head isn't ahead of the tail, we don't have any characters - if (buffer->head == buffer->tail) { - return -1; - } else { - unsigned char c = buffer->buffer[buffer->tail]; - buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - - /* Actually, let's ignore the line state for now since repetierHost - doens't work if we don't ignore it. -Hubbe 20120929 */ - /* if (_usbLineInfo.lineState > 0) */ { - int r = USB_Send(CDC_TX,&c,1); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Client.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Client.h deleted file mode 100644 index ea134838a2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Client.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HID.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HID.cpp deleted file mode 100644 index ac63608449..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HID.cpp +++ /dev/null @@ -1,520 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#if RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int i) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - uint8_t r = release(c); // Keyup - return (p); // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.cpp deleted file mode 100644 index f40ddee060..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include "Arduino.h" -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) - -#include "HardwareSerial.h" - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 16 -#else - #define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -#if defined(USBCON) - ring_buffer rx_buffer = { { 0 }, 0, 0}; - ring_buffer tx_buffer = { { 0 }, 0, 0}; -#endif -#if defined(UBRRH) || defined(UBRR0H) - ring_buffer rx_buffer = { { 0 }, 0, 0 }; - ring_buffer tx_buffer = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR1H) - ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR2H) - ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR3H) - ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; -#endif - -inline void store_char(unsigned char c, ring_buffer *buffer) -{ - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) - #error "Don't know what the Data Received vector is called for the first UART" -#else - void serialEvent() __attribute__((weak)); - void serialEvent() {} - #define serialEvent_implemented -#if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) -#elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) -#endif - { - #if defined(UDR0) - unsigned char c = UDR0; - #elif defined(UDR) - unsigned char c = UDR; - #else - #error UDR not defined - #endif - store_char(c, &rx_buffer); - } -#endif -#endif - -#if defined(USART1_RX_vect) - void serialEvent1() __attribute__((weak)); - void serialEvent1() {} - #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) - { - unsigned char c = UDR1; - store_char(c, &rx_buffer1); - } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV -#endif - -#if defined(USART2_RX_vect) && defined(UDR2) - void serialEvent2() __attribute__((weak)); - void serialEvent2() {} - #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) - { - unsigned char c = UDR2; - store_char(c, &rx_buffer2); - } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV -#endif - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) - { - unsigned char c = UDR3; - store_char(c, &rx_buffer3); - } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV -#endif - -void serialEventRun(void) -{ -#ifdef serialEvent_implemented - if (Serial.available()) serialEvent(); -#endif -#ifdef serialEvent1_implemented - if (Serial1.available()) serialEvent1(); -#endif -#ifdef serialEvent2_implemented - if (Serial2.available()) serialEvent2(); -#endif -#ifdef serialEvent3_implemented - if (Serial3.available()) serialEvent3(); -#endif -} - - -#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) - #error "Don't know what the Data Register Empty vector is called for the first UART" -#else -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#endif -{ - if (tx_buffer.head == tx_buffer.tail) { - // Buffer empty, so disable interrupts -#if defined(UCSR0B) - cbi(UCSR0B, UDRIE0); -#else - cbi(UCSRB, UDRIE); -#endif - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer.buffer[tx_buffer.tail]; - tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; - - #if defined(UDR0) - UDR0 = c; - #elif defined(UDR) - UDR = c; - #else - #error UDR not defined - #endif - } -} -#endif -#endif - -#ifdef USART1_UDRE_vect -ISR(USART1_UDRE_vect) -{ - if (tx_buffer1.head == tx_buffer1.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR1B, UDRIE1); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; - tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR1 = c; - } -} -#endif - -#ifdef USART2_UDRE_vect -ISR(USART2_UDRE_vect) -{ - if (tx_buffer2.head == tx_buffer2.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR2B, UDRIE2); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; - tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR2 = c; - } -} -#endif - -#ifdef USART3_UDRE_vect -ISR(USART3_UDRE_vect) -{ - if (tx_buffer3.head == tx_buffer3.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; - tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } -} -#endif - - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) -{ - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud) -{ - uint16_t baud_setting; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int HardwareSerial::available(void) -{ - return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void HardwareSerial::flush() -{ - while (_tx_buffer->head != _tx_buffer->tail) - ; -} - -size_t HardwareSerial::write(uint8_t c) -{ - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - - return 1; -} - -HardwareSerial::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); -#elif defined(UBRR0H) && defined(UBRR0L) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); -#elif defined(USBCON) - // do nothing - Serial object and buffers are initialized in CDC code -#else - #error no serial port defined (port 0) -#endif - -#if defined(UBRR1H) - HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); -#endif -#if defined(UBRR2H) - HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); -#endif -#if defined(UBRR3H) - HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); -#endif - -#endif // whole file - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.h deleted file mode 100644 index bf4924c6d4..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/HardwareSerial.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -struct ring_buffer; - -class HardwareSerial : public Stream -{ - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - public: - HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); - void begin(unsigned long); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; -#elif defined(USBCON) - #include "USBAPI.h" -// extern HardwareSerial Serial_; -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.cpp deleted file mode 100644 index fe3deb77a2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.cpp +++ /dev/null @@ -1,56 +0,0 @@ - -#include -#include - -IPAddress::IPAddress() -{ - memset(_address, 0, sizeof(_address)); -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address[0] = first_octet; - _address[1] = second_octet; - _address[2] = third_octet; - _address[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - memcpy(_address, &address, sizeof(_address)); -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - memcpy(_address, (const uint8_t *)&address, sizeof(_address)); - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) -{ - return memcmp(addr, _address, sizeof(_address)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address[i], DEC); - n += p.print('.'); - } - n += p.print(_address[3], DEC); - return n; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.h deleted file mode 100644 index 2585aec0e4..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/IPAddress.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * MIT License: - * Copyright (c) 2011 Adrian McEwen - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * adrianm@mcqn.com 1/1/2011 - */ - -#ifndef IPAddress_h -#define IPAddress_h - -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - uint8_t _address[4]; // IPv4 address - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() { return *((uint32_t*)_address); }; - bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; - bool operator==(const uint8_t* addr); - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address[index]; }; - uint8_t& operator[](int index) { return _address[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Platform.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Platform.h deleted file mode 100644 index 8b8f742771..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Platform.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __PLATFORM_H__ -#define __PLATFORM_H__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - #include "USBDesc.h" - #include "USBCore.h" - #include "USBAPI.h" -#endif /* if defined(USBCON) */ - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.cpp deleted file mode 100644 index e541a6ce71..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.cpp +++ /dev/null @@ -1,263 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - const char PROGMEM *p = (const char PROGMEM *)ifsh; - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - size_t n = 0; - for (uint16_t i = 0; i < s.length(); i++) { - n += write(s[i]); - } - return n; -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.h deleted file mode 100644 index 1af6b723fc..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Print.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); } - virtual size_t write(const uint8_t *buffer, size_t size); - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Printable.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Printable.h deleted file mode 100644 index d03c9af62c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Server.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Server.h deleted file mode 100644 index 9674c76269..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Server.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef server_h -#define server_h - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.cpp deleted file mode 100644 index aafb7fcf97..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, NULL); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - size_t index = 0; // maximum target string length is 64k bytes! - size_t termIndex = 0; - int c; - - if( *target == 0) - return true; // return true if target is a null string - while( (c = timedRead()) > 0){ - - if(c != target[index]) - index = 0; // reset index if any char does not match - - if( c == target[index]){ - //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); - if(++index >= targetLen){ // return true if all chars in the target match - return true; - } - } - - if(termLen > 0 && c == terminator[termIndex]){ - if(++termIndex >= termLen) - return false; // return false if terminate string found before target string - } - else - termIndex = 0; - } - return false; -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - boolean isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - boolean isNegative = false; - boolean isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - -String Stream::readString() -{ - String ret; - int c = timedRead(); - while (c >= 0) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -String Stream::readStringUntil(char terminator) -{ - String ret; - int c = timedRead(); - while (c >= 0 && c != terminator) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.h deleted file mode 100644 index 58bbf752f3..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Stream.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - private: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - String readString(); - String readStringUntil(char terminator); - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Tone.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Tone.cpp deleted file mode 100644 index 20eed3f483..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Tone.cpp +++ /dev/null @@ -1,601 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -// MLS: This does not make sense, the 3 options are the same -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(TIMSK3) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(TIMSK4) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) - case 3: - TIMSK3 = 0; - break; -#endif - -#if defined(TIMSK4) - case 4: - TIMSK4 = 0; - break; -#endif - -#if defined(TIMSK5) - case 5: - TIMSK5 = 0; - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#if 0 -#if !defined(__AVR_ATmega8__) -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} - - - -//#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#if 0 - -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBAPI.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBAPI.h deleted file mode 100644 index d5abdb690d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBAPI.h +++ /dev/null @@ -1,195 +0,0 @@ - - -#ifndef __USBAPI__ -#define __USBAPI__ - -#if defined(USBCON) - -//================================================================================ -//================================================================================ -// USB - -class USBDevice_ -{ -public: - USBDevice_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USBDevice_ USBDevice; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -class Serial_ : public Stream -{ -private: - ring_buffer *_cdc_rx_buffer; -public: - void begin(uint16_t baud_count); - void end(void); - - virtual int available(void); - virtual void accept(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - operator bool(); -}; -extern Serial_ Serial; - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBCore.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBCore.cpp deleted file mode 100644 index 545c88a7a9..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBCore.cpp +++ /dev/null @@ -1,670 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) - -#define EP_TYPE_CONTROL 0x00 -#define EP_TYPE_BULK_IN 0x81 -#define EP_TYPE_BULK_OUT 0x80 -#define EP_TYPE_INTERRUPT_IN 0xC1 -#define EP_TYPE_INTERRUPT_OUT 0xC0 -#define EP_TYPE_ISOCHRONOUS_IN 0x41 -#define EP_TYPE_ISOCHRONOUS_OUT 0x40 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u16 STRING_IPRODUCT[] PROGMEM; -extern const u16 STRING_IMANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -const u16 STRING_IPRODUCT[17] = { - (3<<8) | (2+2*16), - 'B','r','a','i','n','w','a','v','e',' ',' ',' ',' ',' ',' ',' ' -}; - -const u16 STRING_IMANUFACTURER[12] = { - (3<<8) | (2+2*11), - 'M','e','t','r','i','x',' ',' ',' ',' ',' ' -}; - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - len -= n; - { - LockEP lock(ep); - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - u8 desc_length = 0; - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) - desc_addr = (const u8*)&STRING_LANGUAGE; - else if (setup.wValueL == IPRODUCT) - desc_addr = (const u8*)&STRING_IPRODUCT; - else if (setup.wValueL == IMANUFACTURER) - desc_addr = (const u8*)&STRING_IMANUFACTURER; - else - return false; - } - - if (desc_addr == 0) - return false; - if (desc_length == 0) - desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBDesc.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBDesc.h deleted file mode 100644 index 094826433d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/USBDesc.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED - -// Disable HID, Brainwaves don't need to be mice. -Hubbe 20120929 -// #define HID_ENABLED - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Udp.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Udp.h deleted file mode 100644 index dc5644b9df..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WCharacter.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WCharacter.h deleted file mode 100644 index 79733b50a5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WInterrupts.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WInterrupts.c deleted file mode 100644 index 8f3ec847f1..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WInterrupts.c +++ /dev/null @@ -1,298 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.cpp deleted file mode 100644 index c6839fc0d9..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[9]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[18]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[17]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[34]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[33]; - ultoa(value, buf, base); - *this = buf; -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; - flags = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[4]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[7]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[6]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[12]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[11]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring( unsigned int left ) const -{ - return substring(left, len); -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left > len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.h deleted file mode 100644 index d76d2a33d4..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/WString.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast<__FlashStringHelper *>(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') - unsigned char flags; // unused, for future features -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/binary.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/binary.h deleted file mode 100644 index af1498033a..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/binary.h +++ /dev/null @@ -1,515 +0,0 @@ -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/main.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/main.cpp deleted file mode 100644 index 3d4e079d2a..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/main.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -int main(void) -{ - init(); - -#if defined(USBCON) - USBDevice.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.cpp deleted file mode 100644 index 0f6d4220ef..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void * operator new(size_t size) -{ - return malloc(size); -} - -void operator delete(void * ptr) -{ - free(ptr); -} - -int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; -void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; -void __cxa_guard_abort (__guard *) {}; - -void __cxa_pure_virtual(void) {}; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.h deleted file mode 100644 index cd940ce8b2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/new.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Header to define new/delete operators as they aren't provided by avr-gcc by default - Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 - */ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void operator delete(void * ptr); - -__extension__ typedef int __guard __attribute__((mode (__DI__))); - -extern "C" int __cxa_guard_acquire(__guard *); -extern "C" void __cxa_guard_release (__guard *); -extern "C" void __cxa_guard_abort (__guard *); - -extern "C" void __cxa_pure_virtual(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring.c deleted file mode 100644 index ac8bb6f9b4..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -SIGNAL(TIM0_OVF_vect) -#else -SIGNAL(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_analog.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_analog.c deleted file mode 100644 index 0e9881f6ac..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_analog.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(__AVR_ATmega32U4__) - pin = analogPinToChannel(pin); - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#elif defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - #if defined(COM4A0) // only used on 32U4 - cbi(TCCR4A, COM4A0); - #endif - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - #if defined(COM4D0) // only used on 32U4 - cbi(TCCR4C, COM4D0); - #endif - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_digital.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_digital.c deleted file mode 100644 index be323b1dfe..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_digital.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_private.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_private.h deleted file mode 100644 index f0ceb0cc4d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_private.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_pulse.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_pulse.c deleted file mode 100644 index 0d968865d2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_pulse.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. The loop has been determined - // to be 20 clock cycles long and have about 16 clocks between the edge - // and the start of the loop. There will be some error introduced by - // the interrupt handlers. - return clockCyclesToMicroseconds(width * 21 + 16); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_shift.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_shift.c deleted file mode 100644 index cfe786758c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/cores/brainwave/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/firmwares/Brainwave.inf b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/firmwares/Brainwave.inf deleted file mode 100644 index e48829420b..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/firmwares/Brainwave.inf +++ /dev/null @@ -1,106 +0,0 @@ -;************************************************************ -; Windows USB CDC ACM Setup File -; Copyright (c) 2000 Microsoft Corporation - - -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%MFGNAME% -LayoutFile=layout.inf -CatalogFile=%MFGFILENAME%.cat -DriverVer=11/15/2007,5.1.2600.0 - -[Manufacturer] -%MFGNAME%=DeviceList, NTamd64 - -[DestinationDirs] -DefaultDestDir=12 - - -;------------------------------------------------------------------------------ -; Windows 2000/XP/Vista-32bit Sections -;------------------------------------------------------------------------------ - -[DriverInstall.nt] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.nt -AddReg=DriverInstall.nt.AddReg - -[DriverCopyFiles.nt] -usbser.sys,,,0x20 - -[DriverInstall.nt.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,%DRIVERFILENAME%.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.nt.Services] -AddService=usbser, 0x00000002, DriverService.nt - -[DriverService.nt] -DisplayName=%SERVICE% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\%DRIVERFILENAME%.sys - -;------------------------------------------------------------------------------ -; Vista-64bit Sections -;------------------------------------------------------------------------------ - -[DriverInstall.NTamd64] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.NTamd64 -AddReg=DriverInstall.NTamd64.AddReg - -[DriverCopyFiles.NTamd64] -%DRIVERFILENAME%.sys,,,0x20 - -[DriverInstall.NTamd64.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,%DRIVERFILENAME%.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NTamd64.Services] -AddService=usbser, 0x00000002, DriverService.NTamd64 - -[DriverService.NTamd64] -DisplayName=%SERVICE% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\%DRIVERFILENAME%.sys - - -;------------------------------------------------------------------------------ -; Vendor and Product ID Definitions -;------------------------------------------------------------------------------ -; When developing your USB device, the VID and PID used in the PC side -; application program and the firmware on the microcontroller must match. -; Modify the below line to use your VID and PID. Use the format as shown below. -; Note: One INF file can be used for multiple devices with different VID and PIDs. -; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. -;------------------------------------------------------------------------------ -[SourceDisksFiles] -[SourceDisksNames] -[DeviceList] -%DESCRIPTION%=DriverInstall, USB\VID_16D0&PID_076B - -[DeviceList.NTamd64] -%DESCRIPTION%=DriverInstall, USB\VID_16D0&PID_204A - - -;------------------------------------------------------------------------------ -; String Definitions -;------------------------------------------------------------------------------ -;Modify these strings to customize your device -;------------------------------------------------------------------------------ -[Strings] -MFGFILENAME="CDC_vista" -DRIVERFILENAME ="usbser" -MFGNAME="Metrix Create Space" -INSTDISK="Brainwave Driver Installer" -DESCRIPTION="Communications Port" -SERVICE="USB RS-232 Emulation Driver" \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.cpp deleted file mode 100644 index 61efca46e0..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.cpp +++ /dev/null @@ -1,310 +0,0 @@ -#include "LiquidCrystal.h" - -#include -#include -#include -#include "Arduino.h" - -// When the display powers up, it is configured as follows: -// -// 1. Display clear -// 2. Function set: -// DL = 1; 8-bit interface data -// N = 0; 1-line display -// F = 0; 5x8 dot character font -// 3. Display on/off control: -// D = 0; Display off -// C = 0; Cursor off -// B = 0; Blinking off -// 4. Entry mode set: -// I/D = 1; Increment by 1 -// S = 0; No shift -// -// Note, however, that resetting the Arduino doesn't reset the LCD, so we -// can't assume that it's in that state when a sketch starts (and the -// LiquidCrystal constructor is called). - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - _rs_pin = rs; - _rw_pin = rw; - _enable_pin = enable; - - _data_pins[0] = d0; - _data_pins[1] = d1; - _data_pins[2] = d2; - _data_pins[3] = d3; - _data_pins[4] = d4; - _data_pins[5] = d5; - _data_pins[6] = d6; - _data_pins[7] = d7; - - pinMode(_rs_pin, OUTPUT); - // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# - if (_rw_pin != 255) { - pinMode(_rw_pin, OUTPUT); - } - pinMode(_enable_pin, OUTPUT); - - if (fourbitmode) - _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; - else - _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; - - begin(16, 1); -} - -void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { - if (lines > 1) { - _displayfunction |= LCD_2LINE; - } - _numlines = lines; - _currline = 0; - - // for some 1 line displays you can select a 10 pixel high font - if ((dotsize != 0) && (lines == 1)) { - _displayfunction |= LCD_5x10DOTS; - } - - // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! - // according to datasheet, we need at least 40ms after power rises above 2.7V - // before sending commands. Arduino can turn on way befer 4.5V so we'll wait 50 - delayMicroseconds(50000); - // Now we pull both RS and R/W low to begin commands - digitalWrite(_rs_pin, LOW); - digitalWrite(_enable_pin, LOW); - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - //put the LCD into 4 bit or 8 bit mode - if (! (_displayfunction & LCD_8BITMODE)) { - // this is according to the hitachi HD44780 datasheet - // figure 24, pg 46 - - // we start in 8bit mode, try to set 4 bit mode - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // second try - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // third go! - write4bits(0x03); - delayMicroseconds(150); - - // finally, set to 4-bit interface - write4bits(0x02); - } else { - // this is according to the hitachi HD44780 datasheet - // page 45 figure 23 - - // Send function set command sequence - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(4500); // wait more than 4.1ms - - // second try - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(150); - - // third go - command(LCD_FUNCTIONSET | _displayfunction); - } - - // finally, set # lines, font size, etc. - command(LCD_FUNCTIONSET | _displayfunction); - - // turn the display on with no cursor or blinking default - _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; - display(); - - // clear it off - clear(); - - // Initialize to default text direction (for romance languages) - _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; - // set the entry mode - command(LCD_ENTRYMODESET | _displaymode); - -} - -/********** high level commands, for the user! */ -void LiquidCrystal::clear() -{ - command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::home() -{ - command(LCD_RETURNHOME); // set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::setCursor(uint8_t col, uint8_t row) -{ - int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; - if ( row >= _numlines ) { - row = _numlines-1; // we count rows starting w/0 - } - - command(LCD_SETDDRAMADDR | (col + row_offsets[row])); -} - -// Turn the display on/off (quickly) -void LiquidCrystal::noDisplay() { - _displaycontrol &= ~LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::display() { - _displaycontrol |= LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turns the underline cursor on/off -void LiquidCrystal::noCursor() { - _displaycontrol &= ~LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::cursor() { - _displaycontrol |= LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turn on and off the blinking cursor -void LiquidCrystal::noBlink() { - _displaycontrol &= ~LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::blink() { - _displaycontrol |= LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// These commands scroll the display without changing the RAM -void LiquidCrystal::scrollDisplayLeft(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); -} -void LiquidCrystal::scrollDisplayRight(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); -} - -// This is for text that flows Left to Right -void LiquidCrystal::leftToRight(void) { - _displaymode |= LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This is for text that flows Right to Left -void LiquidCrystal::rightToLeft(void) { - _displaymode &= ~LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'right justify' text from the cursor -void LiquidCrystal::autoscroll(void) { - _displaymode |= LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'left justify' text from the cursor -void LiquidCrystal::noAutoscroll(void) { - _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// Allows us to fill the first 8 CGRAM locations -// with custom characters -void LiquidCrystal::createChar(uint8_t location, uint8_t charmap[]) { - location &= 0x7; // we only have 8 locations 0-7 - command(LCD_SETCGRAMADDR | (location << 3)); - for (int i=0; i<8; i++) { - write(charmap[i]); - } -} - -/*********** mid level commands, for sending data/cmds */ - -inline void LiquidCrystal::command(uint8_t value) { - send(value, LOW); -} - -inline size_t LiquidCrystal::write(uint8_t value) { - send(value, HIGH); - return 1; // assume sucess -} - -/************ low level data pushing commands **********/ - -// write either command or data, with automatic 4/8-bit selection -void LiquidCrystal::send(uint8_t value, uint8_t mode) { - digitalWrite(_rs_pin, mode); - - // if there is a RW pin indicated, set it low to Write - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - if (_displayfunction & LCD_8BITMODE) { - write8bits(value); - } else { - write4bits(value>>4); - write4bits(value); - } -} - -void LiquidCrystal::pulseEnable(void) { - digitalWrite(_enable_pin, LOW); - delayMicroseconds(1); - digitalWrite(_enable_pin, HIGH); - delayMicroseconds(1); // enable pulse must be >450ns - digitalWrite(_enable_pin, LOW); - delayMicroseconds(100); // commands need > 37us to settle -} - -void LiquidCrystal::write4bits(uint8_t value) { - for (int i = 0; i < 4; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} - -void LiquidCrystal::write8bits(uint8_t value) { - for (int i = 0; i < 8; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.h deleted file mode 100644 index 24ec5afdf5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/LiquidCrystal.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef LiquidCrystal_h -#define LiquidCrystal_h - -#include -#include "Print.h" - -// commands -#define LCD_CLEARDISPLAY 0x01 -#define LCD_RETURNHOME 0x02 -#define LCD_ENTRYMODESET 0x04 -#define LCD_DISPLAYCONTROL 0x08 -#define LCD_CURSORSHIFT 0x10 -#define LCD_FUNCTIONSET 0x20 -#define LCD_SETCGRAMADDR 0x40 -#define LCD_SETDDRAMADDR 0x80 - -// flags for display entry mode -#define LCD_ENTRYRIGHT 0x00 -#define LCD_ENTRYLEFT 0x02 -#define LCD_ENTRYSHIFTINCREMENT 0x01 -#define LCD_ENTRYSHIFTDECREMENT 0x00 - -// flags for display on/off control -#define LCD_DISPLAYON 0x04 -#define LCD_DISPLAYOFF 0x00 -#define LCD_CURSORON 0x02 -#define LCD_CURSOROFF 0x00 -#define LCD_BLINKON 0x01 -#define LCD_BLINKOFF 0x00 - -// flags for display/cursor shift -#define LCD_DISPLAYMOVE 0x08 -#define LCD_CURSORMOVE 0x00 -#define LCD_MOVERIGHT 0x04 -#define LCD_MOVELEFT 0x00 - -// flags for function set -#define LCD_8BITMODE 0x10 -#define LCD_4BITMODE 0x00 -#define LCD_2LINE 0x08 -#define LCD_1LINE 0x00 -#define LCD_5x10DOTS 0x04 -#define LCD_5x8DOTS 0x00 - -class LiquidCrystal : public Print { -public: - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - - void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - - void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); - - void clear(); - void home(); - - void noDisplay(); - void display(); - void noBlink(); - void blink(); - void noCursor(); - void cursor(); - void scrollDisplayLeft(); - void scrollDisplayRight(); - void leftToRight(); - void rightToLeft(); - void autoscroll(); - void noAutoscroll(); - - void createChar(uint8_t, uint8_t[]); - void setCursor(uint8_t, uint8_t); - virtual size_t write(uint8_t); - void command(uint8_t); - - using Print::write; -private: - void send(uint8_t, uint8_t); - void write4bits(uint8_t); - void write8bits(uint8_t); - void pulseEnable(); - - uint8_t _rs_pin; // LOW: command. HIGH: character. - uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. - uint8_t _enable_pin; // activated by a HIGH pulse. - uint8_t _data_pins[8]; - - uint8_t _displayfunction; - uint8_t _displaycontrol; - uint8_t _displaymode; - - uint8_t _initialized; - - uint8_t _numlines,_currline; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt deleted file mode 100644 index 132845cb65..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt +++ /dev/null @@ -1,37 +0,0 @@ -####################################### -# Syntax Coloring Map For LiquidCrystal -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -LiquidCrystal KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -clear KEYWORD2 -home KEYWORD2 -print KEYWORD2 -setCursor KEYWORD2 -cursor KEYWORD2 -noCursor KEYWORD2 -blink KEYWORD2 -noBlink KEYWORD2 -display KEYWORD2 -noDisplay KEYWORD2 -autoscroll KEYWORD2 -noAutoscroll KEYWORD2 -leftToRight KEYWORD2 -rightToLeft KEYWORD2 -scrollDisplayLeft KEYWORD2 -scrollDisplayRight KEYWORD2 -createChar KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.cpp deleted file mode 100644 index 5e48073f73..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#include "pins_arduino.h" -#include "SPI.h" - -SPIClass SPI; - -void SPIClass::begin() { - - // Set SS to high so a connected chip will be "deselected" by default - digitalWrite(SS, HIGH); - - // When the SS pin is set as OUTPUT, it can be used as - // a general purpose output port (it doesn't influence - // SPI operations). - pinMode(SS, OUTPUT); - - // Warning: if the SS pin ever becomes a LOW INPUT then SPI - // automatically switches to Slave, so the data direction of - // the SS pin MUST be kept as OUTPUT. - SPCR |= _BV(MSTR); - SPCR |= _BV(SPE); - - // Set direction register for SCK and MOSI pin. - // MISO pin automatically overrides to INPUT. - // By doing this AFTER enabling SPI, we avoid accidentally - // clocking in a single bit since the lines go directly - // from "input" to SPI control. - // http://code.google.com/p/arduino/issues/detail?id=888 - pinMode(SCK, OUTPUT); - pinMode(MOSI, OUTPUT); -} - - -void SPIClass::end() { - SPCR &= ~_BV(SPE); -} - -void SPIClass::setBitOrder(uint8_t bitOrder) -{ - if(bitOrder == LSBFIRST) { - SPCR |= _BV(DORD); - } else { - SPCR &= ~(_BV(DORD)); - } -} - -void SPIClass::setDataMode(uint8_t mode) -{ - SPCR = (SPCR & ~SPI_MODE_MASK) | mode; -} - -void SPIClass::setClockDivider(uint8_t rate) -{ - SPCR = (SPCR & ~SPI_CLOCK_MASK) | (rate & SPI_CLOCK_MASK); - SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((rate >> 2) & SPI_2XCLOCK_MASK); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.h deleted file mode 100644 index f647d5c891..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/SPI.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#ifndef _SPI_H_INCLUDED -#define _SPI_H_INCLUDED - -#include -#include -#include - -#define SPI_CLOCK_DIV4 0x00 -#define SPI_CLOCK_DIV16 0x01 -#define SPI_CLOCK_DIV64 0x02 -#define SPI_CLOCK_DIV128 0x03 -#define SPI_CLOCK_DIV2 0x04 -#define SPI_CLOCK_DIV8 0x05 -#define SPI_CLOCK_DIV32 0x06 -//#define SPI_CLOCK_DIV64 0x07 - -#define SPI_MODE0 0x00 -#define SPI_MODE1 0x04 -#define SPI_MODE2 0x08 -#define SPI_MODE3 0x0C - -#define SPI_MODE_MASK 0x0C // CPOL = bit 3, CPHA = bit 2 on SPCR -#define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR -#define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR - -class SPIClass { -public: - inline static byte transfer(byte _data); - - // SPI Configuration methods - - inline static void attachInterrupt(); - inline static void detachInterrupt(); // Default - - static void begin(); // Default - static void end(); - - static void setBitOrder(uint8_t); - static void setDataMode(uint8_t); - static void setClockDivider(uint8_t); -}; - -extern SPIClass SPI; - -byte SPIClass::transfer(byte _data) { - SPDR = _data; - while (!(SPSR & _BV(SPIF))) - ; - return SPDR; -} - -void SPIClass::attachInterrupt() { - SPCR |= _BV(SPIE); -} - -void SPIClass::detachInterrupt() { - SPCR &= ~_BV(SPIE); -} - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/keywords.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/keywords.txt deleted file mode 100644 index fa7616581a..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/SPI/keywords.txt +++ /dev/null @@ -1,36 +0,0 @@ -####################################### -# Syntax Coloring Map SPI -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -SPI KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### -begin KEYWORD2 -end KEYWORD2 -transfer KEYWORD2 -setBitOrder KEYWORD2 -setDataMode KEYWORD2 -setClockDivider KEYWORD2 - - -####################################### -# Constants (LITERAL1) -####################################### -SPI_CLOCK_DIV4 LITERAL1 -SPI_CLOCK_DIV16 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_CLOCK_DIV128 LITERAL1 -SPI_CLOCK_DIV2 LITERAL1 -SPI_CLOCK_DIV8 LITERAL1 -SPI_CLOCK_DIV32 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_MODE0 LITERAL1 -SPI_MODE1 LITERAL1 -SPI_MODE2 LITERAL1 -SPI_MODE3 LITERAL1 \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog deleted file mode 100644 index 1ee88d6cfc..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/ChangeLog +++ /dev/null @@ -1,114 +0,0 @@ - -u8glib ChangeLog - -2012-01-01 v0.01 Oliver Kraus - * first beta release for Arduino IDE with simple SSD1325 support -2012-01-04 v0.02 Oliver Kraus - * support for some more display types -2012-01-07 v0.03 Oliver Kraus - * fixed some bugs, added more examples -2012-01-07 v0.04 Oliver Kraus - * single font file -2012-01-08 v0.05 Oliver Kraus - * Cleanup - * More examples - * SSD1325 graylevel support -2012-01-15 v0.06 Oliver Kraus - * LM6063 support -2012-01-17 v0.07 Oliver Kraus - * LM6063 support (update) -2012-01-19 v0.08 Oliver Kraus - * ST7920 beta device -2012-01-21 v0.09 Oliver Kraus - * ST7920 fixed (192x32) - * fixed bug in com layer if pins are none - * str reference position -2012-01-22 v0.10 Oliver Kraus - * Experimental LM6059 -2012-01-24 v0.11 Oliver Kraus - * new st7920 memory layout for 128x64 lcd - * experimental st7920 SPI -2012-01-25 v0.12 Oliver Kraus - * fixed st7920 memory layout for 128x64 lcd - * ST7920 SPI performance improvement -2012-01-27 v0.13 Oliver Kraus - * LM6059 (Adafruit Display) fixed -2012-02-01 v0.14 Oliver Kraus - * undoRotation() - * setRot..() can be used without restrictions - * Class U8GLIB derived from Print class. New function "print" - * Fixed memory index bug in the page management procedures -2012-02-12 v1.00 Oliver Kraus - * XBM support - * F() macro support - * str-rotation commands support ref-height and ref-position -2012-03-17 v1.02 Oliver Kraus - * U8GLIB_ST7687_C144MVGD spi experimental - * U8GLIB_LC7981_160X80 8bit - * Intersection test for frame and box procedures - * 4L double memory architecture - * setContrast infrastructure implemented, but not available for all devices - * drawCircle, drawDisc - * Bugfix for drawStr270 - * New examples: Chess (ported from dogm128 lib) and GraphicsTest -2012-03-31 v1.03 Oliver Kraus - * experimental parallel mode atmega - * more unifont code pages - * double memory, for NHD OLED and DOGXL160 - * "Menu" example - * drawLine -2012-04-13 v1.04 Oliver Kraus - * Adjust U8grelease: Same version number with AVR and Arduino variant -2012-06-10 v1.05 Oliver Kraus - * m2icon font - * experimental lc7981_240x64 device - * experimental ssd1306 - * experimental ssd1322 - * Hardware state backup/restore procedure -2012-06-15 v1.06 Oliver Kraus - * SBN1661 (SED1520?) support - * SSD1306 support - * U8G_PROGMEM bugfix -2012-07-04 v1.07 Oliver Kraus - * Added Makefiles for AVR release (issue 77) - * Fixed examples for Arduino Environment (issue 78) -2012-10-02 v1.08 Oliver Kraus - * Improved delay calculation for strobe pulse (issue 20) - * Support Chipkit (issue 39) - * Improved speed for ST7920 parallel mode (issue 79) - * Overall speed optimization (new page intersection algorithm) - * Support for Displays Newhaven NHD-C12864, CrystalFontz GFAG20232, Seeedstudio 96x96 OLED - * Added SPI support for ST7920 with plain AVR (issue 85) - * Add more LC7981 devices -2012-12-23 v1.09 Oliver Kraus - * Support for Displaytech 64128n - * Support for MINI12864 - * HW SPI for ST7920 - * Add delay after sending a byte with (ST7920 com) - * Support ATTiny - * Support I2C for SSD1306 - * bdf2u8g, Windows executable released - * LC7981 320x64 - * Scalue up: u8g::setScale2x2 - * Added more bitmap fonts - * u8g::drawRBox(), u8g::drawRFrame() - * Support for CFAG20232 (st7920_202x32) - * Fixed ST7920 SW SPI for ChipKit - * Support for tls8204 -2013-02-02 v1.10 Oliver Kraus - * Support for SSD1309 - * Support for NHD-C12832A1Z - * Bugfix: Fixed reset controll in parallel modes - * Bugfix: Fixed calculation of cursor position - * Bugfix: ST7920 parallel mode -2013-03-2 v1.11 Oliver Kraus - * Support for T6963 - * Support for Arduino Due - * Sleep Mode - * 4x mode for ST7920 - * New C++ interface for ST7920 - - - - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT deleted file mode 100644 index d87f97128d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT +++ /dev/null @@ -1,21 +0,0 @@ - -U8GLIB -http://code.google.com/p/u8glib/ - - -Install instructions for the Arduino environment. - - 1. Unzip u8glib_arduino_vX.XX.zip into the "libraries" folder - 2. Start Arduino IDE - -Install instructions for the Chipkit (Arduino) environment. - - 1. cd /libraries - 2. unzip u8glib_arduino_vX.XX.zip - 3. cd ///hardware/pic32/libraries - 4. again: u8glib_arduino_vX.XX.zip - 5. Open hardware/pic32/cores/pic32/Print.h - Remove line - #define BYTE 0 - from the file, use PRINT_BYTE instead of BYTE. - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp deleted file mode 100644 index aa870b1147..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - - U8glib.cpp - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "U8glib.h" - - - -uint8_t U8GLIB::initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitSPI(&u8g, dev, sck, mosi, cs, a0, reset); -} - -uint8_t U8GLIB::initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitHWSPI(&u8g, dev, cs, a0, reset); -} - -uint8_t U8GLIB::initI2C(u8g_dev_t *dev, uint8_t options) -{ - prepare(); - return u8g_InitI2C(&u8g, dev, options); -} - -uint8_t U8GLIB::init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); -} - -uint8_t U8GLIB::init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8BitFixedPort(&u8g, dev, en, cs, di, rw, reset); -} - -uint8_t U8GLIB::initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - prepare(); - return u8g_InitRW8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h deleted file mode 100644 index a77444425d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/U8glib.h +++ /dev/null @@ -1,826 +0,0 @@ -/* - - U8glib.h - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _CPP_U8GLIB -#define _CPP_U8GLIB - -#include -#include "utility/u8g.h" - - -class U8GLIB : public Print -{ - private: - u8g_t u8g; - u8g_uint_t tx, ty; // current position for the Print base class procedures - uint8_t is_begin; - - void prepare(void) { tx = 0; ty = 0; is_begin = 0; } - void cbegin(void) { if ( is_begin == 0 ) { is_begin = 1; u8g_Begin(&u8g); } } - uint8_t initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initI2C(u8g_dev_t *dev, uint8_t options); - protected: - uint8_t init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); - private: - uint8_t init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE); - uint8_t initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); - public: - - /* constructor */ - U8GLIB(void) - { } - U8GLIB(u8g_dev_t *dev) - { prepare(); u8g_Init(&u8g, dev); } - U8GLIB(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { initSPI(dev, sck, mosi, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) - { initHWSPI(dev, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t options) - { initI2C(dev, options); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) - { init8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) - { initRW8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); } - - uint8_t begin(void) { is_begin = 1; return u8g_Begin(&u8g); } - - void setPrintPos(u8g_uint_t x, u8g_uint_t y) { tx = x; ty = y; } - u8g_t *getU8g(void) { return &u8g; } - - - /* implementation of the write interface to the print class */ -#if defined(ARDUINO) && ARDUINO >= 100 - size_t write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); return 1;} -#else - void write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); } -#endif - - /* screen rotation */ - void undoRotation(void) { u8g_UndoRotation(&u8g); } - void setRot90(void) { u8g_SetRot90(&u8g); } - void setRot180(void) { u8g_SetRot180(&u8g); } - void setRot270(void) { u8g_SetRot270(&u8g); } - - /* screen scaling */ - void undoScale(void) { u8g_UndoScale(&u8g); } - void setScale2x2(void) { u8g_SetScale2x2(&u8g); } - - /* picture loop */ - void firstPage(void) { cbegin(); u8g_FirstPage(&u8g); } - uint8_t nextPage(void) { return u8g_NextPage(&u8g); } - - /* system commands */ - uint8_t setContrast(uint8_t contrast) { cbegin(); return u8g_SetContrast(&u8g, contrast); } - void sleepOn(void) { u8g_SleepOn(&u8g); } - void sleepOff(void) { u8g_SleepOff(&u8g); } - - /* graphic primitives */ - void setColorIndex(uint8_t color_index) { u8g_SetColorIndex(&u8g, color_index); } - uint8_t getColorIndex(void) { return u8g_GetColorIndex(&u8g); } - - void setDefaultForegroundColor(void) { u8g_SetDefaultForegroundColor(&u8g); } - void setDefaultBackgroundColor(void) { u8g_SetDefaultBackgroundColor(&u8g); } - void setDefaultMidColor(void) { u8g_SetDefaultMidColor(&u8g); } - - u8g_uint_t getWidth(void) { return u8g_GetWidth(&u8g); } - u8g_uint_t getHeight(void) { return u8g_GetHeight(&u8g); } - uint8_t getMode(void) { return u8g_GetMode(&u8g); } - - void drawPixel(u8g_uint_t x, u8g_uint_t y) { return u8g_DrawPixel(&u8g, x, y); } - void drawHLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) { u8g_DrawHLine(&u8g, x, y, w); } - void drawVLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) { u8g_DrawVLine(&u8g, x, y, h); } - void drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) { u8g_DrawLine(&u8g, x1, y1, x2, y2); } - - void drawFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawFrame(&u8g, x, y, w, h); } - void drawRFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRFrame(&u8g, x, y, w, h,r); } - void drawBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawBox(&u8g, x, y, w, h); } - void drawRBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRBox(&u8g, x, y, w, h,r); } - - void drawCircle(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawCircle(&u8g, x0, y0, rad, opt); } - void drawDisc(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawDisc(&u8g, x0, y0, rad, opt); } - - /* bitmap handling */ - void drawBitmap(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawBitmap(&u8g, x, y, cnt, h, bitmap); } - void drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawBitmapP(&u8g, x, y, cnt, h, bitmap); } - - void drawXBM(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawXBM(&u8g, x, y, w, h, bitmap); } - void drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawXBMP(&u8g, x, y, w, h, bitmap); } - - - /* font handling */ - void setFont(const u8g_fntpgm_uint8_t *font) {u8g_SetFont(&u8g, font); } - int8_t getFontAscent(void) { return u8g_GetFontAscent(&u8g); } - int8_t getFontDescent(void) { return u8g_GetFontDescent(&u8g); } - int8_t getFontLineSpacing(void) { return u8g_GetFontLineSpacing(&u8g); } - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr90(&u8g, x, y, s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr180(&u8g, x, y, s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr270(&u8g, x, y, s); } - u8g_uint_t drawStrP(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStrP(&u8g, x, y, s); } - u8g_uint_t drawStr90P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr90P(&u8g, x, y, s); } - u8g_uint_t drawStr180P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr180P(&u8g, x, y, s); } - u8g_uint_t drawStr270P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr270P(&u8g, x, y, s); } - - void setFontPosBaseline(void) { u8g_SetFontPosBaseline(&u8g); } - void setFontPosBottom(void) { u8g_SetFontPosBottom(&u8g); } - void setFontPosCenter(void) { u8g_SetFontPosCenter(&u8g); } - void setFontPosTop(void) { u8g_SetFontPosTop(&u8g); } - - void setFontRefHeightText(void) { u8g_SetFontRefHeightText(&u8g); } - void setFontRefHeightExtendedText(void) { u8g_SetFontRefHeightExtendedText(&u8g); } - void setFontRefHeightAll(void) { u8g_SetFontRefHeightAll(&u8g); } - void setFontLineSpacingFactor(uint8_t factor) { u8g_SetFontLineSpacingFactor(&u8g, factor); } - - - u8g_uint_t getStrPixelWidth(const char *s) { return u8g_GetStrPixelWidth(&u8g, s); } - u8g_uint_t getStrPixelWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrPixelWidthP(&u8g, s); } - u8g_uint_t getStrWidth(const char *s) { return u8g_GetStrWidth(&u8g, s); } - u8g_uint_t getStrWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrWidthP(&u8g, s); } - - void setHardwareBackup(u8g_state_cb backup_cb) { u8g_SetHardwareBackup(&u8g, backup_cb); } - -#if defined(ARDUINO) && ARDUINO >= 100 - // support for the F() macro - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr90P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr180P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr270P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - - u8g_uint_t getStrPixelWidth(const __FlashStringHelper *s) { return u8g_GetStrPixelWidthP(&u8g, (u8g_pgm_uint8_t *)s); } - u8g_uint_t getStrWidth(const __FlashStringHelper *s) { return u8g_GetStrWidthP(&u8g, (u8g_pgm_uint8_t *)s); } -#endif - - /* cursor handling */ - void setCursorFont(const u8g_pgm_uint8_t *cursor_font) { u8g_SetCursorFont(&u8g, cursor_font); } - void setCursorStyle(uint8_t encoding) { u8g_SetCursorStyle(&u8g, encoding); } - void setCursorPos(u8g_uint_t cursor_x, u8g_uint_t cursor_y) { u8g_SetCursorPos(&u8g, cursor_x, cursor_y); } - void setCursorColor(uint8_t fg, uint8_t bg) { u8g_SetCursorColor(&u8g, fg, bg); } - void enableCursor(void) { u8g_EnableCursor(&u8g); } - void disableCursor(void) { u8g_DisableCursor(&u8g); } - void drawCursor(void) { u8g_DrawCursor(&u8g); } - - /* virtual screen */ - - void setVirtualScreenDimension(u8g_uint_t width, u8g_uint_t height) { u8g_SetVirtualScreenDimension(&u8g, width, height); } - uint8_t addToVirtualScreen(u8g_uint_t x, u8g_uint_t y, U8GLIB &child_u8g) { return u8g_AddToVirtualScreen(&u8g, x, y, &child_u8g.u8g); } - -}; - - -class U8GLIB_DOGS102 : public U8GLIB -{ - public: - U8GLIB_DOGS102(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGS102(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_MINI12864 : public U8GLIB -{ - public: - U8GLIB_MINI12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_MINI12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGM132 : public U8GLIB -{ - public: - U8GLIB_DOGM132(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM132(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12832 : public U8GLIB -{ - public: - U8GLIB_NHD_C12832(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_DOGM128 : public U8GLIB -{ - public: - U8GLIB_DOGM128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6059 : public U8GLIB -{ - public: - U8GLIB_LM6059(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6059(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6063 : public U8GLIB -{ - public: - U8GLIB_LM6063(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6063(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_64128N : public U8GLIB -{ - public: - U8GLIB_64128N(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_64128N(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12864 : public U8GLIB -{ - public: - U8GLIB_NHD_C12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_ST7920_128X64 : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } - // U8GLIB_ST7920_128X64(uint8_t cs) - // : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, cs, U8G_PIN_NONE, U8G_PIN_NONE) - // { } -}; - -class U8GLIB_ST7920_128X64_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - - -class U8GLIB_ST7920_192X32 : public U8GLIB // OBSOLETE, use U8GLIB_ST7920_192X32_1X instead -{ - public: - U8GLIB_ST7920_192X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_192X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_192X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_ST7920_202X32 : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_202X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_202X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_LC7981_160X80 : public U8GLIB -{ - public: - U8GLIB_LC7981_160X80(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_160x80_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X128 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -// 16 bit mode required: Remove comment from "#define U8G_16BIT 1" in utility/u8g.h -class U8GLIB_LC7981_320X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_320X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_320x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - - - -class U8GLIB_DOGXL160_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_NHD27OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD31OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_SSD1306_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_i2c, options) - { } - -}; - -class U8GLIB_SSD1309_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1309_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_i2c, options) - { } - -}; - -class U8GLIB_SSD1306_128X32 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_i2c, options) - { } - -}; - - -class U8GLIB_NHD27OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1327_96X96_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_i2c, options) - { } -}; - -class U8GLIB_SSD1327_96X96_2X_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_i2c, options) - { } -}; - -class U8GLIB_PCF8812 : public U8GLIB -{ - public: - U8GLIB_PCF8812(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcf8812_96x65_sw_spi, sck, mosi, cs, a0, reset) - { } -}; - -class U8GLIB_PCD8544 : public U8GLIB -{ - public: - U8GLIB_PCD8544(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcd8544_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } -}; - -class U8GLIB_TLS8204_84X48 : public U8GLIB -{ - public: - U8GLIB_TLS8204_84X48(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_tls8204_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } -}; - -class U8GLIB_KS0108_128 : public U8GLIB -{ - public: - U8GLIB_KS0108_128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_SBN1661_122X32 : public U8GLIB -{ - public: - U8GLIB_SBN1661_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sbn1661_122x32, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_T6963_240X128 : public U8GLIB -{ - public: - U8GLIB_T6963_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_240X64 : public U8GLIB -{ - public: - U8GLIB_T6963_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_128X64 : public U8GLIB -{ - public: - U8GLIB_T6963_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - - -class U8GLIB_ST7687_C144MVGD: public U8GLIB -{ - public: - U8GLIB_ST7687_C144MVGD(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7687_c144mvgd_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7687_C144MVGD(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs, uint8_t a0, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs, U8G_PIN_NONE, a0, rw, reset) - { } -}; - -class U8GLIB_ILI9325D_320x240 : public U8GLIB -{ - public: - /* - U8GLIB_ILI9325D_320x240(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ili9325d_320x240_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } - */ - U8GLIB_ILI9325D_320x240( uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - { init8BitFixedPort(&u8g_dev_ili9325d_320x240_8bit, en, cs1, di, rw, reset); } -}; - -class U8GLIB_FLIPDISC_2X7 : public U8GLIB -{ - public: - U8GLIB_FLIPDISC_2X7(void) : U8GLIB(&u8g_dev_flipdisc_2x7) - { } -}; - -class U8GLIB_VS : public U8GLIB -{ - public: - U8GLIB_VS(void) : U8GLIB(&u8g_dev_vs) - { } -}; - - -#endif /* _CPP_U8GLIB */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde deleted file mode 100644 index 53fbe1b211..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.pde +++ /dev/null @@ -1,130 +0,0 @@ -/* - - Bitmap.pde - - Show simple bitmap - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -const uint8_t rook_bitmap[] PROGMEM = { - 0x00, // 00000000 - 0x55, // 01010101 - 0x7f, // 01111111 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x7f // 01111111 -}; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawBitmapP( 0, 0, 1, 8, rook_bitmap); -} - -void setup(void) { -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(1000); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde deleted file mode 100644 index 3cef353982..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.pde +++ /dev/null @@ -1,180 +0,0 @@ -/* - - Chess.pde - - Little Rook Chess - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -// DOGS102 shield configuration values -uint8_t uiKeyPrev = 2; -uint8_t uiKeyNext = 4; -uint8_t uiKeySelect = 5; -uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -//uint8_t uiKeyPrev = 7; -//uint8_t uiKeyNext = 3; -//uint8_t uiKeySelect = 2; -//uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = CHESS_KEY_NONE; -uint8_t uiKeyCodeSecond = CHESS_KEY_NONE; -uint8_t uiKeyCode = CHESS_KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) -{ - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = CHESS_KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = CHESS_KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = CHESS_KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = CHESS_KEY_BACK; - else - uiKeyCodeFirst = CHESS_KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = CHESS_KEY_NONE; -} - - -void setup() { - // rotate screen, if required - u8g.setRot180(); - - uiSetup(); - chess_Init(u8g.getU8g(), 0); -} - -void loop() { - uint8_t keyCode = CHESS_KEY_NONE; - - u8g.firstPage(); - do { - chess_Draw(); - uiStep(); - if ( uiKeyCode != CHESS_KEY_NONE ) - keyCode = uiKeyCode; - } while( u8g.nextPage() ); - - u8g_Delay(10); - chess_Step(keyCode); - uiStep(); - keyCode = uiKeyCode; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde deleted file mode 100644 index fcf4b74c58..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.pde +++ /dev/null @@ -1,230 +0,0 @@ -/* - - Console.pde - - Read from serial monitor, output to display - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -// setup input buffer -#define LINE_MAX 30 -uint8_t line_buf[LINE_MAX] = "U8GLIB Console"; -uint8_t line_pos = 0; - -// setup a text screen to support scrolling -#define ROW_MAX 12 - - -uint8_t screen[ROW_MAX][LINE_MAX]; -uint8_t rows, cols; - -// line height, which matches the selected font (5x7) -#define LINE_PIXEL_HEIGHT 7 - -// clear entire screen, called during setup -void clear_screen(void) { - uint8_t i, j; - for( i = 0; i < ROW_MAX; i++ ) - for( j = 0; j < LINE_MAX; j++ ) - screen[i][j] = 0; -} - -// append a line to the screen, scroll up -void add_line_to_screen(void) { - uint8_t i, j; - for( j = 0; j < LINE_MAX; j++ ) - for( i = 0; i < rows-1; i++ ) - screen[i][j] = screen[i+1][j]; - - for( j = 0; j < LINE_MAX; j++ ) - screen[rows-1][j] = line_buf[j]; -} - -// U8GLIB draw procedure: output the screen -void draw(void) { - uint8_t i, y; - // graphic commands to redraw the complete screen are placed here - y = 0; // reference is the top left -1 position of the string - y--; // correct the -1 position of the drawStr - for( i = 0; i < rows; i++ ) - { - u8g.drawStr( 0, y, (char *)(screen[i])); - y += u8g.getFontLineSpacing(); - } -} - -void exec_line(void) { - // echo line to the serial monitor - Serial.println((const char *)line_buf); - - // add the line to the screen - add_line_to_screen(); - - // U8GLIB picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); -} - -// clear current input buffer -void reset_line(void) { - line_pos = 0; - line_buf[line_pos] = '\0'; -} - -// add a single character to the input buffer -void char_to_line(uint8_t c) { - line_buf[line_pos] = c; - line_pos++; - line_buf[line_pos] = '\0'; -} - -// check serial in and handle the character -void read_line(void) { - if ( Serial.available() ) - { - uint8_t c; - c = Serial.read(); - if ( line_pos >= cols-1 ) { - exec_line(); - reset_line(); - char_to_line(c); - } - else if ( c == '\n' ) { - // ignore '\n' - } - else if ( c == '\r' ) { - exec_line(); - reset_line(); - } - else { - char_to_line(c); - } - } -} - -// Arduino master setup -void setup(void) { - // set font for the console window - u8g.setFont(u8g_font_5x7); - //u8g.setFont(u8g_font_9x15); - - // set upper left position for the string draw procedure - u8g.setFontPosTop(); - - // calculate the number of rows for the display - rows = u8g.getHeight() / u8g.getFontLineSpacing(); - if ( rows > ROW_MAX ) - rows = ROW_MAX; - - // estimate the number of columns for the display - cols = u8g.getWidth() / u8g.getStrWidth("m"); - if ( cols > LINE_MAX-1 ) - cols = LINE_MAX-1; - - clear_screen(); // clear screen - delay(1000); // do some delay - Serial.begin(9600); // init serial - exec_line(); // place the input buffer into the screen - reset_line(); // clear input buffer -} - -// Arduino main loop -void loop(void) { - read_line(); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde deleted file mode 100644 index 4cb3b20b76..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.pde +++ /dev/null @@ -1,139 +0,0 @@ -/* - - F.pde - - Example code for the F() macro. - - >>> This example requires Arduino 1.0 and above. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - - // assign default font - u8g.setFont(u8g_font_unifont); - - // pointer to strings in flash memory can be stored in a special type - const __FlashStringHelper *flash_ptr; - - // the result of the F() macro can be assigned to this pointer - flash_ptr = F("Hello World!"); - - // this pointer can be used as argument to the draw procedures - u8g.drawStr( 0+1, 20+1, flash_ptr); - u8g.drawStr( 0, 20, flash_ptr); - - // of course, the F() macro can be used directly - u8g.drawStr( 0, 40, F("PROGMEM")); - -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde deleted file mode 100644 index 4e91352097..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.pde +++ /dev/null @@ -1,223 +0,0 @@ -/* - - GraphicsTest.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -void u8g_prepare(void) { - u8g.setFont(u8g_font_6x10); - u8g.setFontRefHeightExtendedText(); - u8g.setDefaultForegroundColor(); - u8g.setFontPosTop(); -} - -void u8g_box_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawBox"); - u8g.drawBox(5,10,20,10); - u8g.drawBox(10+a,15,30,7); - u8g.drawStr( 0, 30, "drawFrame"); - u8g.drawFrame(5,10+30,20,10); - u8g.drawFrame(10+a,15+30,30,7); -} - -void u8g_disc_circle(uint8_t a) { - u8g.drawStr( 0, 0, "drawDisc"); - u8g.drawDisc(10,18,9); - u8g.drawDisc(24+a,16,7); - u8g.drawStr( 0, 30, "drawCircle"); - u8g.drawCircle(10,18+30,9); - u8g.drawCircle(24+a,16+30,7); -} - -void u8g_r_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawRFrame/Box"); - u8g.drawRFrame(5, 10,40,30, a+1); - u8g.drawRBox(50, 10,25,40, a+1); -} - -void u8g_string(uint8_t a) { - u8g.drawStr(30+a,31, " 0"); - u8g.drawStr90(30,31+a, " 90"); - u8g.drawStr180(30-a,31, " 180"); - u8g.drawStr270(30,31-a, " 270"); -} - -void u8g_line(uint8_t a) { - u8g.drawStr( 0, 0, "drawLine"); - u8g.drawLine(7+a, 10, 40, 55); - u8g.drawLine(7+a*2, 10, 60, 55); - u8g.drawLine(7+a*3, 10, 80, 55); - u8g.drawLine(7+a*4, 10, 100, 55); -} - -void u8g_ascii_1() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 1"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 32; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - -void u8g_ascii_2() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 2"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 160; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - - -uint8_t draw_state = 0; - -void draw(void) { - u8g_prepare(); - switch(draw_state >> 3) { - case 0: u8g_box_frame(draw_state&7); break; - case 1: u8g_disc_circle(draw_state&7); break; - case 2: u8g_r_frame(draw_state&7); break; - case 3: u8g_string(draw_state&7); break; - case 4: u8g_line(draw_state&7); break; - case 5: u8g_ascii_1(); break; - case 6: u8g_ascii_2(); break; - } -} - -void setup(void) { - - // flip screen, if required - //u8g.setRot180(); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - u8g.setColorIndex(255); // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - u8g.setColorIndex(3); // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - u8g.setColorIndex(1); // pixel on - - //u8g.setContrast(0x30); - - pinMode(13, OUTPUT); - digitalWrite(13, HIGH); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // increase the state - draw_state++; - if ( draw_state >= 7*8 ) - draw_state = 0; - - // rebuild the picture after some delay - delay(150); - -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde deleted file mode 100644 index 5a00939a34..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.pde +++ /dev/null @@ -1,136 +0,0 @@ -/* - - HelloWorld.pde - - "Hello World!" example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - //u8g.setFont(u8g_font_osb21); - u8g.drawStr( 0, 22, "Hello World!"); -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - u8g.setColorIndex(255); // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - u8g.setColorIndex(3); // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde deleted file mode 100644 index fbb0af034c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.pde +++ /dev/null @@ -1,234 +0,0 @@ -/* - - Menu.pde - - Simple Menu Selection - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -#define KEY_NONE 0 -#define KEY_PREV 1 -#define KEY_NEXT 2 -#define KEY_SELECT 3 -#define KEY_BACK 4 - -// DOGS102 shield configuration values -//uint8_t uiKeyPrev = 2; -//uint8_t uiKeyNext = 4; -//uint8_t uiKeySelect = 5; -//uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -uint8_t uiKeyPrev = 7; -uint8_t uiKeyNext = 3; -uint8_t uiKeySelect = 2; -uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = KEY_NONE; -uint8_t uiKeyCodeSecond = KEY_NONE; -uint8_t uiKeyCode = KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) { - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = KEY_BACK; - else - uiKeyCodeFirst = KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = KEY_NONE; -} - - -#define MENU_ITEMS 4 -char *menu_strings[MENU_ITEMS] = { "First Line", "Second Item", "3333333", "abcdefg" }; - -uint8_t menu_current = 0; -uint8_t menu_redraw_required = 0; -uint8_t last_key_code = KEY_NONE; - - -void drawMenu(void) { - uint8_t i, h; - u8g_uint_t w, d; - - u8g.setFont(u8g_font_6x13); - u8g.setFontRefHeightText(); - u8g.setFontPosTop(); - - h = u8g.getFontAscent()-u8g.getFontDescent(); - w = u8g.getWidth(); - for( i = 0; i < MENU_ITEMS; i++ ) { - d = (w-u8g.getStrWidth(menu_strings[i]))/2; - u8g.setDefaultForegroundColor(); - if ( i == menu_current ) { - u8g.drawBox(0, i*h+1, w, h); - u8g.setDefaultBackgroundColor(); - } - u8g.drawStr(d, i*h, menu_strings[i]); - } -} - -void updateMenu(void) { - if ( uiKeyCode != KEY_NONE && last_key_code == uiKeyCode ) { - return; - } - last_key_code = uiKeyCode; - - switch ( uiKeyCode ) { - case KEY_NEXT: - menu_current++; - if ( menu_current >= MENU_ITEMS ) - menu_current = 0; - menu_redraw_required = 1; - break; - case KEY_PREV: - if ( menu_current == 0 ) - menu_current = MENU_ITEMS; - menu_current--; - menu_redraw_required = 1; - break; - } -} - - -void setup() { - // rotate screen, if required - // u8g.setRot180(); - - uiSetup(); // setup key detection and debounce algorithm - menu_redraw_required = 1; // force initial redraw -} - -void loop() { - - uiStep(); // check for key press - - if ( menu_redraw_required != 0 ) { - u8g.firstPage(); - do { - drawMenu(); - } while( u8g.nextPage() ); - menu_redraw_required = 0; - } - - updateMenu(); // update menu bar - -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde deleted file mode 100644 index 7535c22f19..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.pde +++ /dev/null @@ -1,124 +0,0 @@ -/* - - PrintTest.pde - - How to use the base class "Print" - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setPrintPos(0, 20); - // call procedure from base class, http://arduino.cc/en/Serial/Print - u8g.print("Hello World!"); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde deleted file mode 100644 index 424b7bfb61..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.pde +++ /dev/null @@ -1,152 +0,0 @@ -/* - - HelloWorld.pde - - "Hello World!" example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -uint8_t offset = 0; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.drawStr( 0+0, 20+0, "Hello!"); - u8g.drawStr( 0+2, 20+16, "Hello!"); - - u8g.drawBox(0, 0, 3, 3); - u8g.drawBox(u8g.getWidth()-6, 0, 6, 6); - u8g.drawBox(u8g.getWidth()-9, u8g.getHeight()-9, 9, 9); - u8g.drawBox(0, u8g.getHeight()-12, 12, 12); -} - -void setup(void) { -} - - -void rotate(void) { - static uint8_t dir = 0; - static unsigned long next_rotation = 0; - - if ( next_rotation < millis() ) - { - switch(dir) { - case 0: u8g.undoRotation(); break; - case 1: u8g.setRot90(); break; - case 2: u8g.setRot180(); break; - case 3: u8g.setRot270(); offset = ( offset + 1 ) & 0x0f; break; - } - - dir++; - dir &= 3; - next_rotation = millis(); - next_rotation += 1000; - } -} - -void loop(void) { - // screen rotation - rotate(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde deleted file mode 100644 index ce87c76fa1..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.pde +++ /dev/null @@ -1,141 +0,0 @@ -/* - - HelloWorld.pde - - "Hello World!" example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setFontPosTop(); - u8g.drawStr(0, 1, "Hello"); - u8g.drawHLine(0, 1+14, 40); - u8g.setScale2x2(); // Scale up all draw procedures - u8g.drawStr(0, 12, "Hello"); // actual display position is (0,24) - u8g.drawHLine(0, 12+14, 40); // All other procedures are also affected - u8g.undoScale(); // IMPORTANT: Switch back to normal mode -} - -void setup(void) { - - // flip screen, if required - u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - u8g.setColorIndex(255); // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - u8g.setColorIndex(3); // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde deleted file mode 100644 index 718fd821c8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.pde +++ /dev/null @@ -1,154 +0,0 @@ -/* - - TextRotX.pde - - Text rotation example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -// graphic commands to redraw the complete screen should be placed here -void draw(void) { - u8g_uint_t mx, my; - - mx = u8g.getWidth(); - mx >>= 1; - - my = u8g.getHeight(); - my >>= 1; - - u8g.drawStr( mx, my, "Ag"); - u8g.drawStr90( mx, my, "Ag"); - u8g.drawStr180( mx, my, "Ag"); - u8g.drawStr270( mx, my, "Ag"); -} - -void setup(void) { - u8g.setFont(u8g_font_9x18); -} - -void change_font_pos(void) { - static uint8_t dir = 0; - static unsigned long next = 0; - - if ( next < millis() ) - { - switch(dir) { - case 0: u8g.setFontPosBottom(); break; - case 1: u8g.setFontPosBaseline(); break; - case 2: u8g.setFontPosCenter(); break; - case 3: u8g.setFontPosTop(); break; - } - - dir++; - dir &= 3; - next = millis(); - next += 1000; - } -} - -void loop(void) { - // change the font position - change_font_pos(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde deleted file mode 100644 index 78c866f0fe..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.pde +++ /dev/null @@ -1,179 +0,0 @@ -/* - - U8gLogo.pde - - Put the U8GLIB logo on the display. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - - -void drawColorBox(void) -{ - u8g_uint_t w,h; - u8g_uint_t r, g, b; - - w = u8g.getWidth()/32; - h = u8g.getHeight()/8; - for( b = 0; b < 4; b++ ) - for( g = 0; g < 8; g++ ) - for( r = 0; r < 8; r++ ) - { - u8g.setColorIndex((r<<5) | (g<<2) | b ); - u8g.drawBox(g*w + b*w*8, r*h, w, h); - } -} - -void drawLogo(uint8_t d) -{ - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(0+d, 30+d, "U"); - u8g.setFont(u8g_font_gdr30n); - u8g.drawStr90(23+d,10+d,"8"); - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(53+d,30+d,"g"); - - u8g.drawHLine(2+d, 35+d, 47); - u8g.drawVLine(45+d, 32+d, 12); -} - -void drawURL(void) -{ - u8g.setFont(u8g_font_4x6); - if ( u8g.getHeight() < 59 ) - { - u8g.drawStr(53,9,"code.google.com"); - u8g.drawStr(77,18,"/p/u8glib"); - } - else - { - u8g.drawStr(1,54,"code.google.com/p/u8glib"); - } -} - - -void draw(void) { - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - drawColorBox(); - } - u8g.setColorIndex(1); - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) { - drawLogo(2); - u8g.setColorIndex(2); - drawLogo(1); - u8g.setColorIndex(3); - } - drawLogo(0); - drawURL(); - -} - -void setup(void) { - // flip screen, if required - //u8g.setRot180(); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - u8g.setColorIndex(1); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(200); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde deleted file mode 100644 index 44dd720d92..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.pde +++ /dev/null @@ -1,136 +0,0 @@ -/* - - XBM.pde - - drawXBM example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 - -#define u8g_logo_width 38 -#define u8g_logo_height 24 -//static unsigned char u8g_logo_bits[] = { -static unsigned char u8g_logo_bits[] U8G_PROGMEM = { - 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xe0, - 0xff, 0xff, 0x3f, 0xe3, 0xe1, 0xff, 0xff, 0x3f, 0xf3, 0xf1, 0xff, 0xff, - 0x3f, 0xf3, 0xf1, 0xfe, 0xbf, 0x37, 0xf3, 0x11, 0x1c, 0x1f, 0x30, 0xf3, - 0x01, 0x08, 0x8c, 0x20, 0xf3, 0x01, 0x00, 0xc0, 0x39, 0xf3, 0x81, 0xc7, - 0xc1, 0x39, 0xf3, 0xc1, 0xc7, 0xc9, 0x38, 0xf3, 0xc1, 0xc3, 0x19, 0x3c, - 0xe3, 0x89, 0x01, 0x98, 0x3f, 0xc7, 0x18, 0x00, 0x08, 0x3e, 0x0f, 0x3c, - 0x70, 0x1c, 0x30, 0x3f, 0xff, 0xfc, 0x87, 0x31, 0xff, 0xff, 0xbf, 0xc7, - 0x23, 0x01, 0x00, 0x00, 0xc6, 0x23, 0x03, 0x00, 0x00, 0x0e, 0x30, 0xff, - 0xff, 0x3f, 0x1f, 0x3c, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0xff, 0x3f, - 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f }; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawXBMP( 0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt deleted file mode 100644 index c9eea75c4d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/license.txt +++ /dev/null @@ -1,80 +0,0 @@ - -The U8glib code (http://code.google.com/p/u8glib/) is licensed under the terms of -the new-bsd license (two-clause bsd license). -See also: http://www.opensource.org/licenses/bsd-license.php - -The repository and optionally the releases contain icons, which are -derived from the WPZOOM Developer Icon Set: -http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/ -WPZOOM Developer Icon Set by WPZOOM is licensed under a Creative Commons -Attribution-ShareAlike 3.0 Unported License. - -Fonts are licensed under different conditions. -See http://code.google.com/p/u8glib/wiki/fontgroup for -detailed information on the licensing conditions for each font. - -============ X11 Fonts COUR, HELV, NCEN, TIM, SYMB ============ - -For fonts derived from the following files, the license below applies. -COURB08.BDF COURB10.BDF COURB12.BDF COURB14.BDF COURB18.BDF -COURB24.BDF COURR08.BDF COURR10.BDF COURR12.BDF COURR14.BDF -COURR18.BDF COURR24.BDF HELVB08.BDF HELVB10.BDF HELVB12.BDF HELVB14.BDF -HELVB18.BDF HELVB24.BDF HELVR08.BDF HELVR10.BDF HELVR12.BDF HELVR14.BDF -HELVR18.BDF HELVR24.BDF NCENB08.BDF NCENB10.BDF NCENB12.BDF -NCENB14.BDF NCENB18.BDF NCENB24.BDF NCENR08.BDF NCENR10.BDF -NCENR12.BDF NCENR14.BDF NCENR18.BDF NCENR24.BDF SYMB08.BDF SYMB10.BDF -SYMB12.BDF SYMB14.BDF SYMB18.BDF SYMB24.BDF TIMB08.BDF TIMB10.BDF -TIMB12.BDF TIMB14.BDF TIMB18.BDF TIMB24.BDF TIMR08.BDF TIMR10.BDF -TIMR12.BDF TIMR14.BDF TIMR18.BDF TIMR24.BDF - -Copyright 1984-1989, 1994 Adobe Systems Incorporated. -Copyright 1988, 1994 Digital Equipment Corporation. - -Adobe is a trademark of Adobe Systems Incorporated which may be -registered in certain jurisdictions. -Permission to use these trademarks is hereby granted only in -association with the images described in this file. - -Permission to use, copy, modify, distribute and sell this software -and its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notices appear in all -copies and that both those copyright notices and this permission -notice appear in supporting documentation, and that the names of -Adobe Systems and Digital Equipment Corporation not be used in -advertising or publicity pertaining to distribution of the software -without specific, written prior permission. Adobe Systems and -Digital Equipment Corporation make no representations about the -suitability of this software for any purpose. It is provided "as -is" without express or implied warranty. - - -============ BSD License for U8glib Code ============ - -Universal 8bit Graphics Library (http://code.google.com/p/u8glib/) - -Copyright (c) 2011, olikraus@gmail.com -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c deleted file mode 100644 index 4a8758c382..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c +++ /dev/null @@ -1,2392 +0,0 @@ -/* - chessengine.c - - "Little Rook Chess" (lrc) - - Port to u8g library - - chess for embedded 8-Bit controllers - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Note: - UNIX_MAIN --> unix console executable - - Current Rule Limitation - - no minor promotion, only "Queening" of the pawn - - threefold repetition is not detected (same board situation appears three times) - Note: Could be implemented, but requires tracking of the complete game - - Fifty-move rule is not checked (no pawn move, no capture within last 50 moves) - - Words - Ply a half move - - General Links - http://chessprogramming.wikispaces.com/ - - Arduino specific - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260055596 - - Prefixes - chess_ Generic Chess Application Interface - ce_ Chess engine, used internally, these function should not be called directly - cu_ Chess utility function - stack_ Internal function for stack handling - - Issues - 10.01.2011 - - castling to the right does not move the rook - --> done - - castling to the left: King can only move two squares - --> done - - 11.01.2011 - Next Steps: - - replace stack_NextCurrentPos with cu_NextPos, cleanup code according to the loop variable - --> done - - Castling: Need to check for fields under attack - --> done - - - Check for WIN / LOSE situation, perhaps call ce_Eval() once on the top-level board setup - just after the real move - - cleanup cu_Move - --> almost done - - add some heuristics to the eval procedure - - add right side menu - --> done - - clean up chess_ManualMove - --> done - - finish menu (consider is_game_end, undo move) - - end condition: if KING is under attack and if KING can not move to a field which is under attack... - then the game is lost. What will be returned by the Eval procedure? is it -INF? - --> finished - - - reduce the use of variable color, all should be reduced to board_orientation and ply&1 - - - chess_GetNextMarked shoud make use of cu_NextPos - --> done - - chess_ManualMove: again cleanup, solve draw issue (KING is not in check and no legal moves are available) - --> done - 22.01.2011 - - simplify eval_t ce_Eval(void) - - position eval does not work, still moves side pawn :-( - maybe because all pieces are considered - --> done - -*/ - -#include "u8g.h" - -//#ifndef __unix__ -//#else -//#include -//#define U8G_NOINLINE -//#endif - -/* -SAN identifies each piece by a single upper case letter. The standard English -values: pawn = "P", knight = "N", bishop = "B", rook = "R", queen = "Q", and -king = "K". -*/ - -/* numbers for the various pieces */ -#define PIECE_NONE 0 -#define PIECE_PAWN 1 -#define PIECE_KNIGHT 2 -#define PIECE_BISHOP 3 -#define PIECE_ROOK 4 -#define PIECE_QUEEN 5 -#define PIECE_KING 6 - -/* color definitions */ -#define COLOR_WHITE 0 -#define COLOR_BLACK 1 - -/* a mask, which includes COLOR and PIECE number */ -#define COLOR_PIECE_MASK 0x01f - -#define CP_MARK_MASK 0x20 - -#define ILLEGAL_POSITION 255 - -/* This is the build in upper limit of the search stack */ -/* This value defines the amount of memory allocated for the search stack */ -/* The search depth of this chess engine can never exceed this value */ -#define STACK_MAX_SIZE 5 - -/* chess half move stack: twice the number of undo's, a user can do */ -#define CHM_USER_SIZE 6 - -/* the CHM_LIST_SIZE must be larger than the maximum search depth */ -/* the overall size of ste half move stack */ -#define CHM_LIST_SIZE (STACK_MAX_SIZE+CHM_USER_SIZE+2) - -typedef int16_t eval_t; /* a variable type to store results from the evaluation */ -//#define EVAL_T_LOST -32768 -#define EVAL_T_MIN -32767 -#define EVAL_T_MAX 32767 -//#define EVAL_T_WIN 32767 - -/* for maintainance of our own stack: this is the definition of one element on the stack */ -struct _stack_element_struct -{ - /* the current source position which is investigated */ - uint8_t current_pos; - uint8_t current_cp; - uint8_t current_color; /* COLOR_WHITE or COLOR_BLACK: must be predefines */ - - /* the move which belongs to that value, both values are game positions */ - uint8_t best_from_pos; - uint8_t best_to_pos; - /* the best value, which has been dicovered so far */ - eval_t best_eval; -}; -typedef struct _stack_element_struct stack_element_t; -typedef struct _stack_element_struct *stack_element_p; - -/* chess half move history */ -struct _chm_struct -{ - uint8_t main_cp; /* the main piece, which is moved */ - uint8_t main_src; /* the source position of the main piece */ - uint8_t main_dest; /* the destination of the main piece */ - - uint8_t other_cp; /* another piece: the captured one, the ROOK in case of castling or PIECE_NONE */ - uint8_t other_src; /* the delete position of other_cp. Often identical to main_dest except for e.p. and castling */ - uint8_t other_dest; /* only used for castling: ROOK destination pos */ - - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - /* this is the condition BEFORE the move was done */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - /* this is the condition BEFORE the move was done */ - uint8_t castling_possible; -}; - -typedef struct _chm_struct chm_t; -typedef struct _chm_struct *chm_p; - -/* little rook chess, main structure */ -struct _lrc_struct -{ - /* half-move (ply) counter: Counts the number of half-moves so far. Starts with 0 */ - /* the lowest bit is used to derive the color of the current player */ - /* will be set to zero in chess_SetupBoard() */ - uint8_t ply_count; - - /* the half move stack position counter, counts the number of elements in chm_list */ - uint8_t chm_pos; - - /* each element contains a colored piece, empty fields have value 0 */ - /* the field with index 0 is black (lower left) */ - uint8_t board[64]; - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - uint8_t castling_possible; - - /* board orientation */ - /* 0: white is below COLOR_WHITE */ - /* 1: black is below COLOR_BLACK */ - /* bascially, this can be used as a color */ - uint8_t orientation; - - /* exchange colors of the pieces */ - /* 0: white has an empty body, use this for bright background color */ - /* 1: black has an empty body, use this for dark backround color */ - uint8_t strike_out_color; - - /* 0, when the game is ongoing */ - /* 1, when the game is stopped (lost or draw) */ - uint8_t is_game_end; - /* the color of the side which lost the game */ - /* this value is only valid, when is_game_end is not 0 */ - /* values 0 and 1 represent WHITE and BLACK, 2 means a draw */ - uint8_t lost_side_color; - - - - /* checks are executed in ce_LoopRecur */ - /* these checks will put some marks on the board */ - /* this will be used by the interface to find out */ - /* legal moves */ - uint8_t check_src_pos; - uint8_t check_mode; /* CHECK_MODE_NONE, CHECK_MODE_MOVEABLE, CHECK_MODE_TARGET_MOVE */ - - - /* count of the attacking pieces, indexed by color */ - uint8_t find_piece_cnt[2]; - - /* sum of the attacking pieces, indexed by color */ - uint8_t find_piece_weight[2]; - - /* points to the current element of the search stack */ - /* this stack is NEVER empty. The value 0 points to the first element of the stack */ - /* actually "curr_depth" represent half-moves (plies) */ - uint8_t curr_depth; - uint8_t max_depth; - stack_element_p curr_element; - - /* allocated memory for the search stack */ - stack_element_t stack_memory[STACK_MAX_SIZE]; - - /* the half move stack, used for move undo and depth search, size is stored in chm_pos */ - chm_t chm_list[CHM_LIST_SIZE]; -}; -typedef struct _lrc_struct lrc_t; - -#define CHECK_MODE_NONE 0 -#define CHECK_MODE_MOVEABLE 1 -#define CHECK_MODE_TARGET_MOVE 2 - - - -/*==============================================================*/ -/* global variables */ -/*==============================================================*/ - -u8g_t *lrc_u8g; - -lrc_t lrc_obj; - - -/*==============================================================*/ -/* forward declarations */ -/*==============================================================*/ - -/* - apply no inline to some of the functions: - avr-gcc very often inlines functions, however not inline saves a lot of program memory! - On the other hand there are some really short procedures which should be inlined (like cp_GetColor) - These procedures are marked static to prevent the generation of the expanded procedure, which - also saves space. -*/ - -uint8_t stack_Push(uint8_t color) U8G_NOINLINE; -void stack_Pop(void) U8G_NOINLINE; -void stack_InitCurrElement(void) U8G_NOINLINE; -void stack_Init(uint8_t max) U8G_NOINLINE; -void stack_SetMove(eval_t val, uint8_t to_pos) U8G_NOINLINE; -uint8_t cu_NextPos(uint8_t pos) U8G_NOINLINE; -static uint8_t cu_gpos2bpos(uint8_t gpos); -static uint8_t cp_Construct(uint8_t color, uint8_t piece); -static uint8_t cp_GetPiece(uint8_t cp); -static uint8_t cp_GetColor(uint8_t cp); -uint8_t cp_GetFromBoard(uint8_t pos) U8G_NOINLINE; -void cp_SetOnBoard(uint8_t pos, uint8_t cp) U8G_NOINLINE; - -void cu_ClearBoard(void) U8G_NOINLINE; -void chess_SetupBoard(void) U8G_NOINLINE; -eval_t ce_Eval(void); - -void cu_ClearMoveHistory(void) U8G_NOINLINE; -void cu_ReduceHistoryByFullMove(void) U8G_NOINLINE; -void cu_UndoHalfMove(void) U8G_NOINLINE; -chm_p cu_PushHalfMove(void) U8G_NOINLINE; - - -void ce_CalculatePositionWeight(uint8_t pos); -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color); - -void chess_Thinking(void); -void ce_LoopPieces(void); - - -/*==============================================================*/ -/* search stack */ -/*==============================================================*/ - -/* get current element from stack */ -stack_element_p stack_GetCurrElement(void) -{ - return lrc_obj.curr_element; -} - -uint8_t stack_Push(uint8_t color) -{ - if ( lrc_obj.curr_depth == lrc_obj.max_depth ) - return 0; - lrc_obj.curr_depth++; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; - - /* change view for the evaluation */ - color ^= 1; - stack_GetCurrElement()->current_color = color; - - return 1; -} - -void stack_Pop(void) -{ - lrc_obj.curr_depth--; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; -} - -/* reset the current element on the stack */ -void stack_InitCurrElement(void) -{ - stack_element_p e = stack_GetCurrElement(); - e->best_eval = EVAL_T_MIN; - e->best_from_pos = ILLEGAL_POSITION; - e->best_to_pos = ILLEGAL_POSITION; -} - -/* resets the search stack (and the check mode) */ -void stack_Init(uint8_t max) -{ - lrc_obj.curr_depth = 0; - lrc_obj.curr_element = lrc_obj.stack_memory; - lrc_obj.max_depth = max; - lrc_obj.check_mode = CHECK_MODE_NONE; - stack_InitCurrElement(); - stack_GetCurrElement()->current_color = lrc_obj.ply_count; - stack_GetCurrElement()->current_color &= 1; -} - -/* assign evaluation value and store the move, if this is the best move */ -/* assumes, that current_pos contains the source position */ -void stack_SetMove(eval_t val, uint8_t to_pos) -{ - stack_element_p e = stack_GetCurrElement(); - if ( e->best_eval < val ) - { - e->best_eval = val; - e->best_from_pos = e->current_pos; - e->best_to_pos = to_pos; - } -} - -/* - calculate next position on a 0x88 board - loop is constructed in this way: - i = 0; - do - { - ... - i = cu_NextPos(i); - } while( i != 0 ); - - next pos might be started with an illegal position like 255 -*/ -uint8_t cu_NextPos(uint8_t pos) -{ - /* calculate next gpos */ - pos++; - if ( ( pos & 0x08 ) != 0 ) - { - pos+= 0x10; - pos&= 0xf0; - } - if ( ( pos & 0x80 ) != 0 ) - pos = 0; - return pos; -} - -uint8_t cu_PrevPos(uint8_t pos) -{ - /* calculate prev gpos */ - pos--; - if ( ( pos & 0x80 ) != 0 ) - pos = 0x077; - else if ( ( pos & 0x08 ) != 0 ) - { - pos &= 0xf0; - pos |= 0x07; - } - return pos; -} - - -/*==============================================================*/ -/* position transltion */ -/*==============================================================*/ -/* - there are two positions - 1. game position (gpos): BCD encoded x-y values - 2. board position (bpos): a number between 0 and 63, only used to access the board. -*/ -/* - gpos: game position value - returns: board position - note: does not do any checks -*/ -static uint8_t cu_gpos2bpos(uint8_t gpos) -{ - uint8_t bpos = gpos; - bpos &= 0xf0; - bpos >>= 1; - gpos &= 0x0f; - bpos |= gpos; - return bpos; -} - -#define gpos_IsIllegal(gpos) ((gpos) & 0x088) - - -/*==============================================================*/ -/* colored piece handling */ -/*==============================================================*/ - -#define cp_IsMarked(cp) ((cp) & CP_MARK_MASK) - - -/* - piece: one of PIECE_xxx - color: COLOR_WHITE or COLOR_BLACK - - returns: A colored piece -*/ -static uint8_t cp_Construct(uint8_t color, uint8_t piece) -{ - color <<= 4; - color |= piece; - return color; -} - -/* inline is better than a macro */ -static uint8_t cp_GetPiece(uint8_t cp) -{ - cp &= 0x0f; - return cp; -} - -/* - we could use a macro: - #define cp_GetColor(cp) (((cp) >> 4)&1) - however, inlined functions are sometimes much better -*/ -static uint8_t cp_GetColor(uint8_t cp) -{ - cp >>= 4; - cp &= 1; - return cp; -} - -/* - pos: game position - returns the colored piece at the given position -*/ -uint8_t cp_GetFromBoard(uint8_t pos) -{ - return lrc_obj.board[cu_gpos2bpos(pos)]; -} - -/* - pos: game position - cp: colored piece -*/ -void cp_SetOnBoard(uint8_t pos, uint8_t cp) -{ - /*printf("cp_SetOnBoard gpos:%02x cp:%02x\n", pos, cp);*/ - lrc_obj.board[cu_gpos2bpos(pos)] = cp; -} - -/*==============================================================*/ -/* global board access */ -/*==============================================================*/ - -void cu_ClearBoard(void) -{ - uint8_t i; - /* clear the board */ - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] = PIECE_NONE; - - lrc_obj.ply_count = 0; - lrc_obj.orientation = COLOR_WHITE; - - lrc_obj.pawn_dbl_move[0] = ILLEGAL_POSITION; - lrc_obj.pawn_dbl_move[1] = ILLEGAL_POSITION; - - lrc_obj.castling_possible = 0x0f; - - lrc_obj.is_game_end = 0; - lrc_obj.lost_side_color = 0; - - /* clear half move history */ - cu_ClearMoveHistory(); - -} - -/* - test setup - white wins in one move -*/ -void chess_SetupBoardTest01(void) -{ - cu_ClearBoard(); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[7+5*8] = cp_Construct(COLOR_WHITE, PIECE_PAWN); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); -} - -/* setup the global board */ -void chess_SetupBoard(void) -{ - uint8_t i; - register uint8_t bp, wp; - - /* clear the board */ - cu_ClearBoard(); - - /* precronstruct pawns */ - wp = cp_Construct(COLOR_WHITE, PIECE_PAWN); - bp = cp_Construct(COLOR_BLACK, PIECE_PAWN); - - /* setup pawn */ - for( i = 0; i < 8; i++ ) - { - lrc_obj.board[i+8] = wp; - lrc_obj.board[i+6*8] = bp; - } - - /* assign remaining pieces */ - - lrc_obj.board[0] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - lrc_obj.board[1] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[2] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); - lrc_obj.board[4] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[5] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[7] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[1+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[2+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[3+7*8] = cp_Construct(COLOR_BLACK, PIECE_QUEEN); - lrc_obj.board[4+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[5+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[6+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - - //chess_SetupBoardTest01(); - -} - - - -/*==============================================================*/ -/* checks */ -/*==============================================================*/ - -/* - checks if the position is somehow illegal -*/ -uint8_t cu_IsIllegalPosition(uint8_t pos, uint8_t my_color) -{ - uint8_t board_cp; - /* check, if the position is offboard */ - if ( gpos_IsIllegal(pos) != 0 ) - return 1; - /* get the piece from the board */ - board_cp = cp_GetFromBoard(pos); - /* check if hit our own pieces */ - if ( board_cp != 0 ) - if ( cp_GetColor(board_cp) == my_color ) - return 1; - /* all ok, we could go to this position */ - return 0; -} - -/*==============================================================*/ -/* evaluation procedure */ -/*==============================================================*/ - -/* - basic idea is to return a value between EVAL_T_MIN and EVAL_T_MAX -*/ - -/* - the weight table uses the PIECE number as index: - #define PIECE_NONE 0 - #define PIECE_PAWN 1 - #define PIECE_KNIGHT 2 - #define PIECE_BISHOP 3 - #define PIECE_ROOK 4 - #define PIECE_QUEEN 5 - #define PIECE_KING 6 - the king itself is not counted -*/ -uint8_t ce_piece_weight[] = { 0, 1, 3, 3, 5, 9, 0 }; -uint8_t ce_pos_weight[] = { 0, 1, 1, 2, 2, 1, 1, 0}; -/* - evaluate the current situation on the global board -*/ -eval_t ce_Eval(void) -{ - uint8_t cp; - uint8_t is_my_king_present = 0; - uint8_t is_opposit_king_present = 0; - eval_t material_my_color = 0; - eval_t material_opposit_color = 0; - eval_t position_my_color = 0; - eval_t position_opposit_color = 0; - eval_t result; - uint8_t pos; - - pos = 0; - do - { - /* get colored piece from the board */ - cp = cp_GetFromBoard(pos); - - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - if ( stack_GetCurrElement()->current_color == cp_GetColor(cp) ) - { - /* this is our color */ - /* check if we found our king */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_my_king_present = 1; - material_my_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_my_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - else - { - /* this is the opposit color */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_opposit_king_present = 1; - material_opposit_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_opposit_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - } - pos = cu_NextPos(pos); - } while( pos != 0 ); - - - /* decide if we lost or won the game */ - if ( is_my_king_present == 0 ) - return EVAL_T_MIN; /*_LOST*/ - if ( is_opposit_king_present == 0 ) - return EVAL_T_MAX; /*_WIN*/ - - /* here is the evaluation function */ - - result = material_my_color - material_opposit_color; - result <<= 3; - result += position_my_color - position_opposit_color; - return result; -} - -/*==============================================================*/ -/* move backup and restore */ -/*==============================================================*/ - - -/* this procedure must be called to keep the size as low as possible */ -/* if the chm_list is large enough, it could hold the complete history */ -/* but for an embedded controler... it is deleted for every engine search */ -void cu_ClearMoveHistory(void) -{ - lrc_obj.chm_pos = 0; -} - -void cu_ReduceHistoryByFullMove(void) -{ - uint8_t i; - while( lrc_obj.chm_pos > CHM_USER_SIZE ) - { - i = 0; - for(;;) - { - if ( i+2 >= lrc_obj.chm_pos ) - break; - lrc_obj.chm_list[i] = lrc_obj.chm_list[i+2]; - i++; - } - lrc_obj.chm_pos -= 2; - } -} - -void cu_UndoHalfMove(void) -{ - chm_p chm; - - if ( lrc_obj.chm_pos == 0 ) - return; - - lrc_obj.chm_pos--; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - - lrc_obj.pawn_dbl_move[0] = chm->pawn_dbl_move[0]; - lrc_obj.pawn_dbl_move[1] = chm->pawn_dbl_move[1]; - lrc_obj.castling_possible = chm->castling_possible; - - cp_SetOnBoard(chm->main_src, chm->main_cp); - cp_SetOnBoard(chm->main_dest, PIECE_NONE); - - if ( chm->other_src != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_src, chm->other_cp); - if ( chm->other_dest != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_dest, PIECE_NONE); - -} - -/* - assumes, that the following members of the returned chm structure are filled - uint8_t main_cp; the main piece, which is moved - uint8_t main_src; the source position of the main piece - uint8_t main_dest; the destination of the main piece - - uint8_t other_cp; another piece: the captured one, the ROOK in case of castling or PIECE_NONE - uint8_t other_src; the delete position of other_cp. Often identical to main_dest except for e.p. and castling - uint8_t other_dest; only used for castling: ROOK destination pos - -*/ -chm_p cu_PushHalfMove(void) -{ - chm_p chm; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - if ( lrc_obj.chm_pos < CHM_LIST_SIZE-1) - lrc_obj.chm_pos++; - - chm->pawn_dbl_move[0] = lrc_obj.pawn_dbl_move[0]; - chm->pawn_dbl_move[1] = lrc_obj.pawn_dbl_move[1]; - chm->castling_possible = lrc_obj.castling_possible; - return chm; -} - - -char chess_piece_to_char[] = "NBRQK"; - -/* - simple moves on empty field: Ka1-b2 - capture moves: Ka1xb2 - castling: 0-0 or 0-0-0 -*/ - -static void cu_add_pos(char *s, uint8_t pos) U8G_NOINLINE; - -static void cu_add_pos(char *s, uint8_t pos) -{ - *s = pos; - *s >>= 4; - *s += 'a'; - s++; - *s = pos; - *s &= 15; - *s += '1'; -} - -const char *cu_GetHalfMoveStr(uint8_t idx) -{ - chm_p chm; - static char buf[7]; /*Ka1-b2*/ - char *p = buf; - chm = lrc_obj.chm_list+idx; - - if ( cp_GetPiece(chm->main_cp) != PIECE_NONE ) - { - if ( cp_GetPiece(chm->main_cp) > PIECE_PAWN ) - { - *p++ = chess_piece_to_char[cp_GetPiece(chm->main_cp)-2]; - } - cu_add_pos(p, chm->main_src); - p+=2; - if ( cp_GetPiece(chm->other_cp) == PIECE_NONE ) - *p++ = '-'; - else - *p++ = 'x'; - cu_add_pos(p, chm->main_dest); - p+=2; - } - *p = '\0'; - return buf; -} - - - - - -/*==============================================================*/ -/* move */ -/*==============================================================*/ - -/* - Move a piece from source position to a destination on the board - This function - - does not perform any checking - - however it processes "en passant" and casteling - - backup the move and allow 1x undo - - 2011-02-05: - - fill pawn_dbl_move[] for double pawn moves - --> done - - Implement casteling - --> done - - en passant - --> done - - pawn conversion/promotion - --> done - - half-move backup - --> done - - cleanup everything, minimize variables - --> done -*/ - -void cu_Move(uint8_t src, uint8_t dest) -{ - /* start backup structure */ - chm_p chm = cu_PushHalfMove(); - - /* these are the values from the board at the positions, provided as arguments to this function */ - uint8_t cp_src, cp_dest; - - /* Maybe a second position is cleared and one additional location is set */ - uint8_t clr_pos2; - uint8_t set_pos2; - uint8_t set_cp2; - - /* get values from board */ - cp_src = cp_GetFromBoard(src); - cp_dest = cp_GetFromBoard(dest); - - /* fill backup structure */ - - chm->main_cp = cp_src; - chm->main_src = src; - chm->main_dest = dest; - - chm->other_cp = cp_dest; /* prepace capture backup */ - chm->other_src = dest; - chm->other_dest = ILLEGAL_POSITION; - - /* setup results as far as possible with some suitable values */ - - clr_pos2 = ILLEGAL_POSITION; /* for en passant and castling, two positions might be cleared */ - set_pos2 = ILLEGAL_POSITION; /* only used for castling */ - set_cp2 = PIECE_NONE; /* ROOK for castling */ - - /* check for PAWN */ - if ( cp_GetPiece(cp_src) == PIECE_PAWN ) - { - - /* double step: is the distance 2 rows */ - if ( (src - dest == 32) || ( dest - src == 32 ) ) - { - /* remember the destination position */ - lrc_obj.pawn_dbl_move[cp_GetColor(cp_src)] = dest; - } - - /* check if the PAWN is able to promote */ - else if ( (dest>>4) == 0 || (dest>>4) == 7 ) - { - /* do simple "queening" */ - cp_src &= ~PIECE_PAWN; - cp_src |= PIECE_QUEEN; - } - - /* is it en passant capture? */ - /* check for side move */ - else if ( ((src + dest) & 1) != 0 ) - { - /* check, if target field is empty */ - if ( cp_GetPiece(cp_dest) == PIECE_NONE ) - { - /* this is en passant */ - /* no further checking required, because legal moves are assumed here */ - /* however... the captured pawn position must be valid */ - clr_pos2 = lrc_obj.pawn_dbl_move[cp_GetColor(cp_src) ^ 1]; - chm->other_src = clr_pos2; - chm->other_cp = cp_GetFromBoard(clr_pos2); - } - } - } - - /* check for the KING */ - else if ( cp_GetPiece(cp_src) == PIECE_KING ) - { - /* disallow castling, if the KING has moved */ - if ( cp_GetColor(cp_src) == COLOR_WHITE ) - { - /* if white KING has moved, disallow castling for white */ - lrc_obj.castling_possible &= 0x0c; - } - else - { - /* if black KING has moved, disallow castling for black */ - lrc_obj.castling_possible &= 0x03; - } - - /* has it been castling to the left? */ - if ( src - dest == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src-1; - set_cp2 = cp_GetFromBoard(src-4); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src-4; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - } - - /* has it been castling to the right? */ - else if ( dest - src == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src+1; - set_cp2 = cp_GetFromBoard(src+3); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src+3; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - - } - - } - - /* check for the ROOK */ - else if ( cp_GetPiece(cp_src) == PIECE_ROOK ) - { - /* disallow white left castling */ - if ( src == 0x00 ) - lrc_obj.castling_possible &= ~0x01; - /* disallow white right castling */ - if ( src == 0x07 ) - lrc_obj.castling_possible &= ~0x02; - /* disallow black left castling */ - if ( src == 0x70 ) - lrc_obj.castling_possible &= ~0x04; - /* disallow black right castling */ - if ( src == 0x77 ) - lrc_obj.castling_possible &= ~0x08; - } - - - /* apply new board situation */ - - cp_SetOnBoard(dest, cp_src); - - if ( set_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(set_pos2, set_cp2); - - cp_SetOnBoard(src, PIECE_NONE); - - if ( clr_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(clr_pos2, PIECE_NONE); - - -} - -/* - this subprocedure decides for evaluation of the current board situation or further (deeper) investigation - Argument pos is the new target position if the current piece - -*/ -uint8_t ce_LoopRecur(uint8_t pos) -{ - eval_t eval; - - /* 1. check if target position is occupied by the same player (my_color) */ - /* of if pos is somehow illegal or not valid */ - if ( cu_IsIllegalPosition(pos, stack_GetCurrElement()->current_color) != 0 ) - return 0; - - /* 2. move piece to the specified position, capture opponent piece if required */ - cu_Move(stack_GetCurrElement()->current_pos, pos); - - - /* 3. */ - /* if depth reached: evaluate */ - /* else: go down next level */ - /* no eval if there had been any valid half-moves, so the default value (MIN) will be returned. */ - if ( stack_Push(stack_GetCurrElement()->current_color) == 0 ) - { - eval = ce_Eval(); - } - else - { - /* init the element, which has been pushed */ - stack_InitCurrElement(); - /* start over with ntext level */ - ce_LoopPieces(); - /* get the best move from opponents view, so invert the result */ - eval = -stack_GetCurrElement()->best_eval; - stack_Pop(); - } - - /* 4. store result */ - stack_SetMove(eval, pos); - - /* 5. undo the move */ - cu_UndoHalfMove(); - - /* 6. check special modes */ - /* the purpose of these checks is to mark special pieces and positions on the board */ - /* these marks can be checked by the user interface to highlight special positions */ - if ( lrc_obj.check_mode != 0 ) - { - stack_element_p e = stack_GetCurrElement(); - if ( lrc_obj.check_mode == CHECK_MODE_MOVEABLE ) - { - cp_SetOnBoard(e->current_pos, e->current_cp | CP_MARK_MASK ); - } - else if ( lrc_obj.check_mode == CHECK_MODE_TARGET_MOVE ) - { - if ( e->current_pos == lrc_obj.check_src_pos ) - { - cp_SetOnBoard(pos, cp_GetFromBoard(pos) | CP_MARK_MASK ); - } - } - } - return 1; -} - -/*==============================================================*/ -/* move pieces which can move one or more steps into a direction */ -/*==============================================================*/ - -/* - subprocedure to generate various target positions for some pieces - special cases are handled in the piece specific sub-procedure - - Arguments: - d: a list of potential directions - is_multi_step: if the piece can only do one step (zero for KING and KNIGHT) -*/ -static const uint8_t ce_dir_offset_rook[] PROGMEM = { 1, 16, -16, -1, 0 }; -static const uint8_t ce_dir_offset_bishop[] PROGMEM = { 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_queen[] PROGMEM = { 1, 16, -16, -1, 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_knight[] PROGMEM = {14, -14, 18, -18, 31, -31, 33, -33, 0}; - -void ce_LoopDirsSingleMultiStep(const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = stack_GetCurrElement()->current_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* - go further to ce_LoopRecur() - 0 will be returned if the target position is illegal or a piece of the own color - this is used to stop walking into one direction - */ - if ( ce_LoopRecur(loop_pos) == 0 ) - break; - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - break; - } while( is_multi_step ); - d++; - } -} - -void ce_LoopRook(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_rook, 1); -} - -void ce_LoopBishop(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_bishop, 1); -} - -void ce_LoopQueen(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 1); -} - -void ce_LoopKnight(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_knight, 0); -} - - - -/*==============================================================*/ -/* move king */ -/*==============================================================*/ - -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) U8G_NOINLINE; - -/* - checks, if the king can do castling - - Arguments: - mask: the bit-mask for the global "castling possible" flag - direction: left castling: -1, right castling 1 - cnt: number of fields to be checked: 3 or 2 -*/ -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) -{ - uint8_t pos; - uint8_t opponent_color; - - /* check if the current board state allows castling */ - if ( (lrc_obj.castling_possible & mask) == 0 ) - return 0; /* castling not allowed */ - - /* get the position of the KING, could be white or black king */ - pos = stack_GetCurrElement()->current_pos; - - /* calculate the color of the opponent */ - opponent_color = 1; - opponent_color -= stack_GetCurrElement()->current_color; - - /* if the KING itself is given check... */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - - /* check if fields in the desired direction are emtpy */ - for(;;) - { - /* go to the next field */ - pos += direction; - /* check for a piece */ - if ( cp_GetPiece(cp_GetFromBoard(pos)) != PIECE_NONE ) - return 0; /* castling not allowed */ - - /* if some of the fields are under attack */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - cnt--; - if ( cnt == 0 ) - break; - } - return 1; /* castling allowed */ -} - -void ce_LoopKing(void) -{ - /* - there is an interessting timing problem in this procedure - it must be checked for castling first and as second step the normal - KING movement. If we would first check for normal moves, than - any marks might be overwritten by the ROOK in the case of castling. - */ - - /* castling (this must be done before checking normal moves (see above) */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - /* white left castling */ - if ( cu_IsKingCastling(1, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* white right castling */ - if ( cu_IsKingCastling(2, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - else - { - /* black left castling */ - if ( cu_IsKingCastling(4, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* black right castling */ - if ( cu_IsKingCastling(8, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - - /* reuse queen directions */ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 0); -} - - -/*==============================================================*/ -/* move pawn */ -/*==============================================================*/ - -/* - doppelschritt: nur von der grundlinie aus, beide (!) felder vor dem bauern mssen frei sein - en passant: nur unmittelbar nachdem ein doppelschritt ausgefhrt wurde. -*/ -void ce_LoopPawnSideCapture(uint8_t loop_pos) -{ - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* get the piece from the board */ - /* if the field is NOT empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - { - /* normal capture */ - ce_LoopRecur(loop_pos); - /* TODO: check for pawn conversion/promotion */ - } - else - { - /* check conditions for en passant capture */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - if ( lrc_obj.pawn_dbl_move[COLOR_BLACK]+16 == loop_pos ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - else - { - if ( lrc_obj.pawn_dbl_move[COLOR_WHITE] == loop_pos+16 ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - } - } -} - -void ce_LoopPawn(void) -{ - uint8_t initial_pos = stack_GetCurrElement()->current_pos; - uint8_t my_color = stack_GetCurrElement()->current_color; - - uint8_t loop_pos; - uint8_t line; - - /* one step forward */ - - loop_pos = initial_pos; - line = initial_pos; - line >>= 4; - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* if the field is empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* TODO: check for and loop through piece conversion/promotion */ - ce_LoopRecur(loop_pos); - - /* second step forward */ - - /* if pawn is on his starting line */ - if ( (my_color == COLOR_WHITE && line == 1) || (my_color == COLOR_BLACK && line == 6 ) ) - { - /* the place before the pawn is not occupied, so we can do double moves, see above */ - - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* this is a special case, other promotions of the pawn can not occur */ - ce_LoopRecur(loop_pos); - } - } - } - } - - /* capture */ - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 15; - else - loop_pos -= 15; - ce_LoopPawnSideCapture(loop_pos); - - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 17; - else - loop_pos -= 17; - ce_LoopPawnSideCapture(loop_pos); -} - -/*==============================================================*/ -/* attacked */ -/*==============================================================*/ - -/* - from a starting position, search for a piece, that might jump to that postion. - return: - the two global variables - lrc_obj.find_piece_weight[0]; - lrc_obj.find_piece_weight[1]; - will be increased by the weight of the attacked pieces of that color. - it is usually required to reset these global variables to zero, before using - this function. -*/ - -void ce_FindPieceByStep(uint8_t start_pos, uint8_t piece, const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos, cp; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = start_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* check if the board boundary has been crossed */ - if ( (loop_pos & 0x088) != 0 ) - break; - - /* get the colored piece from the board */ - cp = cp_GetFromBoard(loop_pos); - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - /* if it is the piece we are looking for, then add the weight */ - if ( cp_GetPiece(cp) == piece ) - { - lrc_obj.find_piece_weight[cp_GetColor(cp)] += ce_piece_weight[piece]; - lrc_obj.find_piece_cnt[cp_GetColor(cp)]++; - } - /* in any case, break out of the inner loop */ - break; - } - } while( is_multi_step ); - d++; - } -} - -void ce_FindPawnPiece(uint8_t dest_pos, uint8_t color) -{ - uint8_t cp; - /* check if the board boundary has been crossed */ - if ( (dest_pos & 0x088) == 0 ) - { - /* get the colored piece from the board */ - cp = cp_GetFromBoard(dest_pos); - /* only if there is a pawn of the matching color */ - if ( cp_GetPiece(cp) == PIECE_PAWN ) - { - if ( cp_GetColor(cp) == color ) - { - /* the weight of the PAWN */ - lrc_obj.find_piece_weight[color] += 1; - lrc_obj.find_piece_cnt[color]++; - } - } - } -} - - -/* - find out, which pieces do attack a specified field - used to - - check if the KING can do castling - - check if the KING must move - - may be used in the eval procedure ... once... - - the result is stored in the global array - uint8_t lrc_obj.find_piece_weight[2]; - which is indexed with the color. - lrc_obj.find_piece_weight[COLOR_WHITE] is the sum of all white pieces - which can directly move to this field. - - example: - if the black KING is at "pos" and lrc_obj.find_piece_weight[COLOR_WHITE] is not zero - (after executing ce_CalculatePositionWeight(pos)) then the KING must be protected or moveed, because - the KING was given check. -*/ - -void ce_CalculatePositionWeight(uint8_t pos) -{ - - lrc_obj.find_piece_weight[0] = 0; - lrc_obj.find_piece_weight[1] = 0; - lrc_obj.find_piece_cnt[0] = 0; - lrc_obj.find_piece_cnt[1] = 0; - - if ( (pos & 0x088) != 0 ) - return; - - ce_FindPieceByStep(pos, PIECE_ROOK, ce_dir_offset_rook, 1); - ce_FindPieceByStep(pos, PIECE_BISHOP, ce_dir_offset_bishop, 1); - ce_FindPieceByStep(pos, PIECE_QUEEN, ce_dir_offset_queen, 1); - ce_FindPieceByStep(pos, PIECE_KNIGHT, ce_dir_offset_knight, 0); - ce_FindPieceByStep(pos, PIECE_KING, ce_dir_offset_queen, 0); - - ce_FindPawnPiece(pos+17, COLOR_BLACK); - ce_FindPawnPiece(pos+15, COLOR_BLACK); - ce_FindPawnPiece(pos-17, COLOR_WHITE); - ce_FindPawnPiece(pos-15, COLOR_WHITE); -} - -/* - calculate the summed weight of pieces with specified color which can move to a specified position - - argument: - pos: the position which should be analysed - color: the color of those pieces which should be analysed - e.g. if a black piece is at 'pos' and 'color' is white then this procedure returns the white atting count -*/ -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_weight[color]; -} - -uint8_t ce_GetPositionAttackCount(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_cnt[color]; -} - - -/*==============================================================*/ -/* depth search starts here: loop over all pieces of the current color on the board */ -/*==============================================================*/ - -void ce_LoopPieces(void) -{ - stack_element_p e = stack_GetCurrElement(); - /* start with lower left position (A1) */ - e->current_pos = 0; - do - { - e->current_cp = cp_GetFromBoard(e->current_pos); - /* check if the position on the board is empty */ - if ( e->current_cp != 0 ) - { - /* only generate moves for the current color */ - if ( e->current_color == cp_GetColor(e->current_cp) ) - { - chess_Thinking(); - - /* find out which piece is used */ - switch(cp_GetPiece(e->current_cp)) - { - case PIECE_NONE: - break; - case PIECE_PAWN: - ce_LoopPawn(); - break; - case PIECE_KNIGHT: - ce_LoopKnight(); - break; - case PIECE_BISHOP: - ce_LoopBishop(); - break; - case PIECE_ROOK: - ce_LoopRook(); - break; - case PIECE_QUEEN: - ce_LoopQueen(); - break; - case PIECE_KING: - ce_LoopKing(); - break; - } - } - } - e->current_pos = cu_NextPos(e->current_pos); - } while( e->current_pos != 0 ); -} - -/*==============================================================*/ -/* user interface */ -/*==============================================================*/ - -/* -eval_t chess_EvalCurrBoard(uint8_t color) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = color; - ce_LoopPieces(); - return stack_GetCurrElement()->best_eval; -} -*/ - -/* clear any marks on the board */ -void chess_ClearMarks(void) -{ - uint8_t i; - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] &= ~CP_MARK_MASK; -} - -/* - Mark all pieces which can do moves. This is done by setting flags on the global board -*/ -void chess_MarkMovable(void) -{ - stack_Init(0); - //stack_GetCurrElement()->current_color = color; - lrc_obj.check_mode = CHECK_MODE_MOVEABLE; - ce_LoopPieces(); -} - -/* - Checks, if the piece can move from src_pos to dest_pos - - src_pos: The game position of a piece on the chess board -*/ -void chess_MarkTargetMoves(uint8_t src_pos) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = cp_GetColor(cp_GetFromBoard(src_pos)); - lrc_obj.check_src_pos = src_pos; - lrc_obj.check_mode = CHECK_MODE_TARGET_MOVE; - ce_LoopPieces(); -} - -/* - first call should start with 255 - this procedure will return 255 if - - there are no marks at all - - it has looped over all marks once -*/ -uint8_t chess_GetNextMarked(uint8_t arg, uint8_t is_prev) -{ - uint8_t i; - uint8_t pos = arg; - for(i = 0; i < 64; i++) - { - if ( is_prev != 0 ) - pos = cu_PrevPos(pos); - else - pos = cu_NextPos(pos); - if ( arg != 255 && pos == 0 ) - return 255; - if ( cp_IsMarked(cp_GetFromBoard(pos)) ) - return pos; - } - return 255; -} - - -/* make a manual move: this is a little bit more than cu_Move() */ -void chess_ManualMove(uint8_t src, uint8_t dest) -{ - uint8_t cp; - - /* printf("chess_ManualMove %02x -> %02x\n", src, dest); */ - - /* if all other things fail, this is the place where the game is to be decided: */ - /* ... if the KING is captured */ - cp = cp_GetFromBoard(dest); - if ( cp_GetPiece(cp) == PIECE_KING ) - { - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = cp_GetColor(cp); - } - - /* clear ply history here, to avoid memory overflow */ - /* may be the last X moves can be kept here */ - cu_ReduceHistoryByFullMove(); - /* perform the move on the board */ - cu_Move(src, dest); - - /* update en passant double move positions: en passant position is removed after two half moves */ - lrc_obj.pawn_dbl_move[lrc_obj.ply_count&1] = ILLEGAL_POSITION; - - /* update the global half move counter */ - lrc_obj.ply_count++; - - - /* make a small check about the end of the game */ - /* use at least depth 1, because we must know if the king can still move */ - /* this is: King moves at level 0 and will be captured at level 1 */ - /* so we check if the king can move and will not be captured at search level 1 */ - - stack_Init(1); - ce_LoopPieces(); - - /* printf("chess_ManualMove/analysis best_from_pos %02x -> best_to_pos %02x\n", stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); */ - - /* analyse the eval result */ - - /* check if the other player has any moves left */ - if ( stack_GetCurrElement()->best_from_pos == ILLEGAL_POSITION ) - { - uint8_t color; - /* conditions: */ - /* 1. no King, should never happen, opposite color has won */ - /* this is already checked above at the beginning if this procedure */ - /* 2. King is under attack, opposite color has won */ - /* 3. King is not under attack, game is a draw */ - - uint8_t i = 0; - color = lrc_obj.ply_count; - color &= 1; - do - { - cp = cp_GetFromBoard(i); - /* look for the King */ - if ( cp_GetPiece(cp) == PIECE_KING ) - { - if ( cp_GetColor(cp) == color ) - { - /* check if KING is attacked */ - if ( ce_GetPositionAttackCount(i, color^1) != 0 ) - { - /* KING is under attack (check) and can not move: Game is lost */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = color; - } - else - { - /* KING is NOT under attack (check) but can not move: Game is a draw */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = 2; - } - /* break out of the loop */ - break; - } - } - i = cu_NextPos(i); - } while( i != 0 ); - } -} - -/* let the computer do a move */ -void chess_ComputerMove(uint8_t depth) -{ - stack_Init(depth); - - //stack_GetCurrElement()->current_color = lrc_obj.ply_count; - //stack_GetCurrElement()->current_color &= 1; - - cu_ReduceHistoryByFullMove(); - ce_LoopPieces(); - - chess_ManualMove(stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); -} - - -/*==============================================================*/ -/* unix code */ -/*==============================================================*/ - -#ifdef UNIX_MAIN - -#include -#include - -char *piece_str[] = { - /* 0x00 */ - " ", - "wP", - "wN", - "wB", - - /* 0x04 */ - "wR", - "wQ", - "wK", - "w?", - - /* 0x08 */ - "w?", - "w?", - "w?", - "w?", - - /* 0x0c */ - "w?", - "w?", - "w?", - "w?", - - /* 0x10 */ - "b ", - "bP", - "bN", - "bB", - "bR", - "bQ", - "bK", - "b?", - - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?" -}; - -void chess_Thinking(void) -{ - uint8_t i; - uint8_t cp = cp_GetPiece(stack_GetCurrElement()->current_cp); - - printf("Thinking: ", piece_str[cp], stack_GetCurrElement()->current_pos); - - for( i = 0; i <= lrc_obj.curr_depth; i++ ) - printf("%s ", piece_str[(lrc_obj.stack_memory+i)->current_cp]); - - printf(" \r"); -} - -void board_Show(void) -{ - uint8_t i, j, cp; - char buf[10]; - for ( i = 0; i < 8; i++ ) - { - printf("%1d ", 7-i); - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - cp = lrc_obj.board[(7-i)*8+j]; - strcpy(buf, piece_str[cp&COLOR_PIECE_MASK]); - - if ( (cp & CP_MARK_MASK) != 0 ) - { - buf[0] = '#'; - } - - /* mask out any bits except color and piece index */ - cp &= COLOR_PIECE_MASK; - printf("%s %02x ", buf, cp); - - } - printf("\n"); - } -} - -int main(void) -{ - uint8_t depth = 3; - chess_SetupBoard(); - board_Show(); - puts(""); - - - /* - chess_ClearMarks(); - chess_MarkMovable(COLOR_WHITE); - board_Show(); - */ - - chess_ManualMove(0x006, 0x066); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - chess_ComputerMove(2); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - board_Show(); - -} - - - -#else - -/*==============================================================*/ -/* display menu */ -/*==============================================================*/ - -//#define MNU_FONT font_5x7 -#define MNU_FONT u8g_font_5x8r -//#define MNU_FONT font_6x9 -#define MNU_ENTRY_HEIGHT 9 - -char *mnu_title = "Little Rook Chess"; -char *mnu_list[] = { "New Game (White)", "New Game (Black)", "Undo Move", "Return" }; -uint8_t mnu_pos = 0; -uint8_t mnu_max = 4; - -void mnu_DrawHome(uint8_t is_highlight) -{ - uint8_t x = lrc_u8g->width - 35; - uint8_t y = (lrc_u8g->height-1); - uint8_t t; - - u8g_SetFont(lrc_u8g, u8g_font_5x7r); - u8g_SetDefaultForegroundColor(lrc_u8g); - t = u8g_DrawStrP(lrc_u8g, x, y -1, U8G_PSTR("Options")); - - if ( is_highlight ) - u8g_DrawFrame(lrc_u8g, x-1, y - MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); -} - -void mnu_DrawEntry(uint8_t y, char *str, uint8_t is_clr_background, uint8_t is_highlight) -{ - uint8_t t, x; - u8g_SetFont(lrc_u8g, MNU_FONT); - t = u8g_GetStrWidth(lrc_u8g, str); - x = u8g_GetWidth(lrc_u8g); - x -= t; - x >>= 1; - - if ( is_clr_background ) - { - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x-3, (lrc_u8g->height-1) - (y+MNU_ENTRY_HEIGHT-1+2), t+5, MNU_ENTRY_HEIGHT+4); - } - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawStr(lrc_u8g, x, (lrc_u8g->height-1) - y, str); - - if ( is_highlight ) - { - u8g_DrawFrame(lrc_u8g, x-1, (lrc_u8g->height-1) - y -MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); - } -} - -void mnu_Draw(void) -{ - uint8_t i; - uint8_t t,y; - /* calculate hight of the complete menu */ - y = mnu_max; - y++; /* consider also some space for the title */ - y++; /* consider also some space for the title */ - y *= MNU_ENTRY_HEIGHT; - - /* calculate how much space will be left */ - t = u8g_GetHeight(lrc_u8g); - t -= y; - - /* topmost pos start half of that empty space from the top */ - t >>= 1; - y = u8g_GetHeight(lrc_u8g); - y -= t; - - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_title, 0, 0); - - y -= MNU_ENTRY_HEIGHT; - - - for( i = 0; i < mnu_max; i++ ) - { - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_list[i], 0, i == mnu_pos); - } -} - -void mnu_Step(uint8_t key_cmd) -{ - if ( key_cmd == CHESS_KEY_NEXT ) - { - if ( mnu_pos+1 < mnu_max ) - mnu_pos++; - } - else if ( key_cmd == CHESS_KEY_PREV ) - { - if ( mnu_pos > 0 ) - mnu_pos--; - } -} - - - - -uint8_t chess_key_code = 0; -uint8_t chess_key_cmd = 0; -#define CHESS_STATE_MENU 0 -#define CHESS_STATE_SELECT_START 1 -#define CHESS_STATE_SELECT_PIECE 2 -#define CHESS_STATE_SELECT_TARGET_POS 3 -#define CHESS_STATE_THINKING 4 -#define CHESS_STATE_GAME_END 5 -uint8_t chess_state = CHESS_STATE_MENU; -uint8_t chess_source_pos = 255; -uint8_t chess_target_pos = 255; - -const uint8_t chess_pieces_body_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, */ - /* KNIGHT */ 0x00, 0x00, 0x1c, 0x2c, 0x04, 0x04, 0x0e, 0x00, - /* BISHOP */ 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x08, 0x00, 0x00, /* 0x00, 0x00, 0x08, 0x1c, 0x1c, 0x08, 0x00, 0x00, */ - /* ROOK */ 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, - /* QUEEN */ 0x00, 0x00, 0x14, 0x1c, 0x08, 0x1c, 0x08, 0x00, - /* KING */ 0x00, 0x00, 0x00, 0x08, 0x3e, 0x1c, 0x08, 0x00, -}; - -#ifdef NOT_REQUIRED -/* white pieces are constructed by painting black pieces and cutting out the white area */ -const uint8_t chess_white_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x0c, 0x12, 0x12, 0x0c, 0x1e, 0x00, - /* KNIGHT */ 0x00, 0x1c, 0x22, 0x52, 0x6a, 0x0a, 0x11, 0x1f, - /* BISHOP */ 0x00, 0x08, 0x14, 0x22, 0x22, 0x14, 0x08, 0x7f, - /* ROOK */ 0x00, 0x55, 0x7f, 0x22, 0x22, 0x22, 0x22, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x2a, 0x22, 0x14, 0x22, 0x14, 0x7f, - /* KING */ 0x08, 0x1c, 0x49, 0x77, 0x41, 0x22, 0x14, 0x7f, -}; -#endif - -const uint8_t chess_black_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x3c, 0x00, /* 0x00, 0x00, 0x0c, 0x1e, 0x1e, 0x0c, 0x1e, 0x00, */ - /* KNIGHT */ 0x00, 0x1c, 0x3e, 0x7e, 0x6e, 0x0e, 0x1f, 0x1f, - /* BISHOP */ 0x00, 0x1c, 0x2e, 0x3e, 0x3e, 0x1c, 0x08, 0x7f, /*0x00, 0x08, 0x1c, 0x3e, 0x3e, 0x1c, 0x08, 0x7f,*/ - /* ROOK */ 0x00, 0x55, 0x7f, 0x3e, 0x3e, 0x3e, 0x3e, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x3e, 0x3e, 0x1c, 0x3e, 0x1c, 0x7f, - /* KING -*/ 0x08, 0x1c, 0x49, 0x7f, 0x7f, 0x3e, 0x1c, 0x7f, -}; - - -#if defined(DOGXL160_HW_GR) -#define BOXSIZE 13 -#define BOXOFFSET 3 -#else -#define BOXSIZE 8 -#define BOXOFFSET 1 -#endif - -u8g_uint_t chess_low_edge; -uint8_t chess_boxsize = 8; -uint8_t chess_boxoffset = 1; - - -void chess_DrawFrame(uint8_t pos, uint8_t is_bold) -{ - u8g_uint_t x0, y0; - - x0 = pos; - x0 &= 15; - if ( lrc_obj.orientation != COLOR_WHITE ) - x0 ^= 7; - - y0 = pos; - y0>>= 4; - if ( lrc_obj.orientation != COLOR_WHITE ) - y0 ^= 7; - - x0 *= chess_boxsize; - y0 *= chess_boxsize; - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize+1, chess_boxsize, chess_boxsize); - - - if ( is_bold ) - { - x0--; - y0++; - - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize +1, chess_boxsize+2, chess_boxsize+2); - } -} - - -void chess_DrawBoard(void) -{ - uint8_t i, j, cp; - const uint8_t *ptr; /* pointer into PROGMEM */ - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) > 1 ) - { - for( i = 0; i < 8; i++ ) - for( j = 0; j < 8; j++ ) - { - uint8_t x,y; - x = i; - x*=chess_boxsize; - y = j; - y*=chess_boxsize; - if ( ((i^j) & 1) == 0 ) - u8g_SetDefaultMidColor(lrc_u8g); - else - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x,chess_low_edge-y-chess_boxsize+1,chess_boxsize,chess_boxsize); - } - //u8g_SetDefaultForegroundColor(lrc_u8g); - } - else - { - uint8_t x_offset = 1; - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < 8*8; i+=8 ) - { - for( j = 0; j < 8*8; j+=8 ) - { - if ( ((i^j) & 8) == 0 ) - { - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-6); - } - } - } - } - - for ( i = 0; i < 8; i++ ) - { - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - if ( lrc_obj.orientation == COLOR_WHITE ) - { - cp = lrc_obj.board[i*8+j]; - } - else - { - cp = lrc_obj.board[(7-i)*8+7-j]; - } - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - ptr = chess_black_pieces_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - - if ( cp_GetColor(cp) == lrc_obj.strike_out_color ) - { - ptr = chess_pieces_body_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - } - } - } - } - - if ( (chess_source_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_source_pos, 1); - } - - if ( (chess_target_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_target_pos, 0); - } - -} - - -void chess_Thinking(void) -{ -} - -void chess_Init(u8g_t *u8g, uint8_t body_color) -{ - lrc_u8g = u8g; - - chess_low_edge = u8g_GetHeight(lrc_u8g); - chess_low_edge--; - - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) == 1 ) - { - - chess_boxsize = 8; - chess_boxoffset = 1; - } - else - { - - /* - if ( u8g_GetHeight(lrc_u8g) >= 12*8 ) - { - chess_boxsize = 12; - chess_boxoffset = 3; - } - else */ if ( u8g_GetHeight(lrc_u8g) >= 11*8 ) - { - chess_boxsize = 10; - chess_boxoffset = 2; - } - else - { - chess_boxsize = 8; - chess_boxoffset = 1; - } - - if ( u8g_GetHeight(lrc_u8g) > 64 ) - chess_low_edge -= (u8g_GetHeight(lrc_u8g)-chess_boxsize*8) / 2; - - } - - lrc_obj.strike_out_color = body_color; - chess_SetupBoard(); -} - - - -void chess_Draw(void) -{ - if ( chess_state == CHESS_STATE_MENU ) - { - if ( lrc_obj.ply_count == 0) - mnu_max = 2; - else - mnu_max = 4; - mnu_Draw(); - } - else - { - chess_DrawBoard(); - - { - uint8_t i; - uint8_t entries = lrc_obj.chm_pos; - if ( entries > 4 ) - entries = 4; - - u8g_SetFont(lrc_u8g, u8g_font_5x7); - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < entries; i++ ) - { - -#if defined(DOGXL160_HW_GR) || defined(DOGXL160_HW_BW) - dog_DrawStr(u8g_GetWidth(lrc_u8g)-35, u8g_GetHeight(lrc_u8g)-8*(i+1), font_5x7, cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#else - u8g_DrawStr(lrc_u8g, u8g_GetWidth(lrc_u8g)-35, 8*(i+1), cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#endif - - } - - } - - if ( chess_state == CHESS_STATE_SELECT_PIECE ) - mnu_DrawHome(chess_source_pos == 255); - else if ( chess_state == CHESS_STATE_SELECT_TARGET_POS ) - mnu_DrawHome(chess_target_pos == 255); - else - mnu_DrawHome(0); - - if ( chess_state == CHESS_STATE_GAME_END ) - { - switch( lrc_obj.lost_side_color ) - { - case COLOR_WHITE: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Black wins", 1, 1); - break; - case COLOR_BLACK: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "White wins", 1, 1); - break; - default: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Stalemate", 1, 1); - break; - } - } - } -} - - -void chess_Step(uint8_t keycode) -{ - if ( keycode == CHESS_KEY_NONE ) - { - chess_key_cmd = chess_key_code; - chess_key_code = CHESS_KEY_NONE; - } - else - { - chess_key_cmd = CHESS_KEY_NONE; - chess_key_code = keycode; - } - //chess_ComputerMove(2); - switch(chess_state) - { - case CHESS_STATE_MENU: - mnu_Step(chess_key_cmd); - if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( mnu_pos == 0 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 0; - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 1 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 1; - chess_state = CHESS_STATE_THINKING; - } - else if ( mnu_pos == 2 ) - { - if ( lrc_obj.ply_count >= 2 ) - { - cu_UndoHalfMove(); - cu_UndoHalfMove(); - lrc_obj.ply_count-=2; - if ( lrc_obj.ply_count == 0 ) - mnu_pos = 0; - } - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 3 ) - { - chess_state = CHESS_STATE_SELECT_START; - } - } - break; - case CHESS_STATE_SELECT_START: - chess_ClearMarks(); - chess_MarkMovable(); - chess_source_pos = chess_GetNextMarked(255, 0); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - break; - - case CHESS_STATE_SELECT_PIECE: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( chess_source_pos == 255 ) - { - chess_state = CHESS_STATE_MENU; - } - else - { - chess_ClearMarks(); - chess_MarkTargetMoves(chess_source_pos); - chess_target_pos = chess_GetNextMarked(255, 0); - chess_state = CHESS_STATE_SELECT_TARGET_POS; - } - } - break; - case CHESS_STATE_SELECT_TARGET_POS: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_BACK ) - { - chess_ClearMarks(); - chess_MarkMovable(); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - chess_ManualMove(chess_source_pos, chess_target_pos); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_THINKING; - /* clear marks as some kind of feedback to the user... it simply looks better */ - chess_source_pos = ILLEGAL_POSITION; - chess_target_pos = ILLEGAL_POSITION; - chess_ClearMarks(); - } - break; - case CHESS_STATE_THINKING: - chess_ComputerMove(2); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_SELECT_START; - break; - case CHESS_STATE_GAME_END: - if ( chess_key_cmd != CHESS_KEY_NONE ) - { - chess_state = CHESS_STATE_MENU; - chess_SetupBoard(); - } - break; - } - -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h deleted file mode 100644 index f5a0230acb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h +++ /dev/null @@ -1,1607 +0,0 @@ -/* - - u8g.h - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _U8G_H -#define _U8G_H - -//#define U8G_16BIT 1 - -#include - -#ifdef __18CXX -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -#else -#include -#endif - -#if defined(__AVR__) -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/*===============================================================*/ -#ifdef __GNUC__ -#define U8G_NOINLINE __attribute__((noinline)) -#define U8G_PURE __attribute__ ((pure)) -#define U8G_NOCOMMON __attribute__ ((nocommon)) -#define U8G_SECTION(name) __attribute__ ((section (name))) -#else -#define U8G_NOINLINE -#define U8G_PURE -#define U8G_NOCOMMON -#define U8G_SECTION(name) -#endif - -/*===============================================================*/ -/* flash memory access */ - -#if defined(__AVR__) -/* U8G_PROGMEM is used by the XBM example */ -#define U8G_PROGMEM U8G_SECTION(".progmem.data") -typedef uint8_t PROGMEM u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) pgm_read_byte_near(adr) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) -#else -#define U8G_PROGMEM -#define PROGMEM -typedef uint8_t u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) -#endif - -/*===============================================================*/ -/* forward */ -typedef struct _u8g_t u8g_t; -typedef struct _u8g_dev_t u8g_dev_t; - -typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; -typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; -typedef struct _u8g_box_t u8g_box_t; - - -/*===============================================================*/ -/* generic */ -#if defined(U8G_16BIT) -typedef uint16_t u8g_uint_t; -typedef int16_t u8g_int_t; -#else -typedef uint8_t u8g_uint_t; -typedef int8_t u8g_int_t; -#endif - -#ifdef OBSOLETE -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -typedef struct _u8g_box_t u8g_box_t; -#endif /* OBSOLETE */ - - -/*===============================================================*/ -/* device structure */ - -#ifdef __XC8 -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#else -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#endif - - - -struct _u8g_dev_t -{ - u8g_dev_fnptr dev_fn; /* device procedure */ - void *dev_mem; /* device memory */ - u8g_com_fnptr com_fn; /* communication procedure */ -}; - - -/*===============================================================*/ -/* device list */ - -/* Size: 128x64 SDL, u8g_dev_sdl.c */ -extern u8g_dev_t u8g_dev_sdl_1bit; -extern u8g_dev_t u8g_dev_sdl_1bit_h; -extern u8g_dev_t u8g_dev_sdl_2bit; -extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; -extern u8g_dev_t u8g_dev_sdl_8bit; -int u8g_sdl_get_key(void); - -/* Size: 70x30 monochrom, stdout */ -extern u8g_dev_t u8g_dev_stdout; - -/* Size: monochrom, writes "u8g.pbm" */ -extern u8g_dev_t u8g_dev_pbm; -extern u8g_dev_t u8g_dev_pbm_8h1; -extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ - -/* Size: 128x64 monochrom, no output, used for performance measure */ -extern u8g_dev_t u8g_dev_gprof; - -/* Display: EA DOGS102, Size: 102x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; - -/* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; - -/* Display: EA DOGM132, Size: 128x32 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; - -/* Display: EA DOGM128, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; -/* Display: Topway LM6063 128x64 */ -extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; -/* Display: Topway LM6059 128x64 (Adafruit) */ -extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; -/* Display: Newhaven NHD-C12864 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; -/* Display: Newhaven NHD-C12832 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; -/* Display: Displaytech 64128N */ -extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; - -/* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ -extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_8bit; - -extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; - -/* NHD-19232WG */ -extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; - -/* CrystalFontz CFAG20232 */ -extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; - -/* LC7981 160x80 display */ -extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; -/* LC7981 240x64 display */ -extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; -/* LC7981 240x128 display */ -extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; -/* LC7981 320x64 display */ -extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; - -/* T6963, all t6963 devices have double page (2x) */ -extern u8g_dev_t u8g_dev_t6963_240x128_8bit; -extern u8g_dev_t u8g_dev_t6963_240x64_8bit; -extern u8g_dev_t u8g_dev_t6963_128x64_8bit; - -/* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; - -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; - -/* Display: Generic KS0108b, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ -extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ - -/* Nokia 84x48 Display with PCD8544 */ -extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; -extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; - -/* Nokia 96x65 Display with PCF8812 */ -extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; - -/* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; - -/* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; - -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; - -/* NHD-3.12-25664 OLED Display with SSD1322 Controller */ -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; - -/* OLED 128x64 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; - -/* OLED 128x64 Display with SSD1309 Controller */ -extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; - -/* OLED 128x32 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; - -/* experimental 65K TFT with st7687 controller */ -extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; -extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; - -/* SBN1661/SED1520 display with 122x32 */ -extern u8g_dev_t u8g_dev_sbn1661_122x32; - -/* flip disc matrix */ -extern u8g_dev_t u8g_dev_flipdisc_2x7; -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); - -/* ILI9325D based TFT */ -extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; - -/* u8g_virtual_screen.c */ -extern u8g_dev_t u8g_dev_vs; - - -/*===============================================================*/ -/* device messages */ - -struct _u8g_dev_arg_pixel_t -{ - u8g_uint_t x, y; /* will be modified */ - uint8_t pixel; /* will be modified */ - uint8_t dir; - uint8_t color; -}; -/* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ - -struct _u8g_dev_arg_bbx_t -{ - u8g_uint_t x, y, w, h; -}; -/* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ - -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -/* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ - - -#define U8G_DEV_MSG_INIT 10 -#define U8G_DEV_MSG_STOP 11 - -/* arg: pointer to uint8_t, contranst value between 0 and 255 */ -#define U8G_DEV_MSG_CONTRAST 15 - -#define U8G_DEV_MSG_SLEEP_ON 16 -#define U8G_DEV_MSG_SLEEP_OFF 17 - -#define U8G_DEV_MSG_PAGE_FIRST 20 -#define U8G_DEV_MSG_PAGE_NEXT 21 - -/* arg: u8g_dev_arg_bbx_t * */ -/* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ -/* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ - -/* arg: u8g_box_t *, fill structure with current page properties */ -#define U8G_DEV_MSG_GET_PAGE_BOX 23 - -/* -#define U8G_DEV_MSG_PRIMITIVE_START 30 -#define U8G_DEV_MSG_PRIMITIVE_END 31 -*/ - -/* arg: u8g_dev_arg_pixel_t * */ -#define U8G_DEV_MSG_SET_PIXEL 50 -#define U8G_DEV_MSG_SET_8PIXEL 59 - -#define U8G_DEV_MSG_SET_COLOR_INDEX 60 - -#define U8G_DEV_MSG_SET_XY_CB 61 - -#define U8G_DEV_MSG_GET_WIDTH 70 -#define U8G_DEV_MSG_GET_HEIGHT 71 -#define U8G_DEV_MSG_GET_MODE 72 - -/*===============================================================*/ -/* device modes */ -#define U8G_MODE(is_color, bits_per_pixel) (((is_color)<<4)|(bits_per_pixel)) - -#define U8G_MODE_UNKNOWN 0 -#define U8G_MODE_BW U8G_MODE(0, 1) -#define U8G_MODE_GRAY2BIT U8G_MODE(0, 2) -#define U8G_MODE_R3G3B2 U8G_MODE(1, 8) - -#define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&15) -#define U8G_MODE_IS_COLOR(mode) (((mode)&16)==0?0:1) - - -/*===============================================================*/ -/* com options */ - -/* uncomment the following line for Atmega HW SPI double speed, issue 89 */ -/* #define U8G_HW_SPI_2X 1 */ - -/* com messages */ - -#define U8G_COM_MSG_STOP 0 -#define U8G_COM_MSG_INIT 1 - -#define U8G_COM_MSG_ADDRESS 2 - -/* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ -#define U8G_COM_MSG_CHIP_SELECT 3 - -#define U8G_COM_MSG_RESET 4 - -#define U8G_COM_MSG_WRITE_BYTE 5 -#define U8G_COM_MSG_WRITE_SEQ 6 -#define U8G_COM_MSG_WRITE_SEQ_P 7 - - -/* com driver */ -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ - - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ - - -/* - Translation of system specific com drives to generic com names - At the moment, the following generic com drives are available - U8G_COM_HW_SPI - U8G_COM_SW_SPI - U8G_COM_PARALLEL - U8G_COM_T6963 - U8G_COM_FAST_PARALLEL - U8G_COM_SSD_I2C - -defined(__18CXX) || defined(__PIC32MX) - -*/ -/* ==== HW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#endif -/* ==== HW SPI, not Arduino ====*/ -#ifndef U8G_COM_HW_SPI -#if defined(__AVR__) -#define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn -#endif -#endif -#ifndef U8G_COM_HW_SPI -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif - -/* ==== SW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__arm__) /* Arduino Due */ -#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#endif -#endif - -#ifndef U8G_COM_SW_SPI -/* ==== SW SPI, not Arduino ====*/ -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn -#endif -#endif -#ifndef U8G_COM_SW_SPI -#define U8G_COM_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#endif - -/* ==== Parallel iinterface, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn -#define U8G_COM_T6963 u8g_com_arduino_t6963_fn -#else /* Arduino Due, Chipkit PIC32 */ -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#define U8G_COM_PARALLEL u8g_com_null_fn -#define U8G_COM_FAST_PARALLEL u8g_com_null_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif - -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(__AVR__) -/* AVR variant can use the arduino version at the moment */ -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#endif -#endif -#ifndef U8G_COM_SSD_I2C -#define U8G_COM_SSD_I2C u8g_com_null_fn -#endif - - - -/*===============================================================*/ -/* com api */ -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev); -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); -void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); - - - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -//uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); - - -/* u8g_com_api_16gr.c */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); - - -/*===============================================================*/ -/* u8g_arduino_common.c */ -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); - -/*===============================================================*/ -/* u8g_com_io.c */ - -/* create internal number from port and pin */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); -#define PN(port,bitpos) u8g_Pin(port,bitpos) - -/* low level procedures */ -void u8g_SetPinOutput(uint8_t internal_pin_number); -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); -void u8g_SetPinInput(uint8_t internal_pin_number); -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); - -/* u8g level procedures, expect U8G_PI_xxx macro */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); - - -/*===============================================================*/ -/* page */ -struct _u8g_page_t -{ - u8g_uint_t page_height; - u8g_uint_t total_height; - u8g_uint_t page_y0; - u8g_uint_t page_y1; - uint8_t page; -}; -typedef struct _u8g_page_t u8g_page_t; - -void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ -uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ - -/*===============================================================*/ -/* page buffer (pb) */ - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; /* pixel width */ - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -/* u8g_pb.c */ -void u8g_pb_Clear(u8g_pb_t *b); -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -/* - note on __attribute__ ((nocommon)) - AVR scripts often use --gc-sections on the linker to remove unused section. - This works fine for initialed data and text sections. In principle .bss is also - handled, but the name##_pb definition is not removed. Reason is, that - array definitions are placed in the COMMON section, by default - The attribute "nocommon" removes this automatic assignment to the - COMMON section and directly puts it into .bss. As a result, if more - than one buffer is defined in one file, then it will be removed with --gc-sections - - .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is - redundant. -*/ -#define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ -uint8_t name##_buf[width] U8G_NOCOMMON ; \ -u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ -u8g_dev_t name = { dev_fn, &name##_pb, com_fn } - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; - -uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v1.c */ -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb14v1.c */ -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8v2.c */ -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v2.c (double memory of pb8v2) */ -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h1.c */ -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h1.c */ -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb32h1.c */ -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h2.c */ -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - - -/* u8g_pb8h1f.c */ -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8h8.c */ -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - - -/*===============================================================*/ -/* u8g_ll_api.c */ - -/* cursor draw callback */ -typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); - -/* vertical reference point calculation callback */ -typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); - -/* state backup and restore procedure */ -typedef void (*u8g_state_cb)(uint8_t msg); - - -/* PI = Pin Index */ - -/* reset pin, usually optional */ -#define U8G_PI_RESET 0 - -/* address / data or instruction */ -#define U8G_PI_A0 1 -#define U8G_PI_DI 1 - -/* chip select line */ -#define U8G_PI_CS 2 -#define U8G_PI_CS1 2 -#define U8G_PI_CS2 3 -/* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ -#define U8G_PI_A0_STATE 3 - -/* enable / clock signal */ -#define U8G_PI_EN 4 -#define U8G_PI_CS_STATE 4 -#define U8G_PI_SCK 4 -#define U8G_PI_SCL 4 -#define U8G_PI_RD 4 - - -/* data pins, shared with SPI and I2C pins */ -#define U8G_PI_D0 5 -#define U8G_PI_MOSI 5 -#define U8G_PI_SDA 5 -#define U8G_PI_D1 6 -#define U8G_PI_MISO 6 -#define U8G_PI_D2 7 -#define U8G_PI_D3 8 -#define U8G_PI_SET_A0 8 -#define U8G_PI_D4 9 -#define U8G_PI_D5 10 -#define U8G_PI_I2C_OPTION 11 -#define U8G_PI_D6 11 -#define U8G_PI_D7 12 - -/* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ -#define U8G_PI_WR 13 -#define U8G_PI_RW 13 - -#define U8G_PIN_LIST_LEN 14 - - -#define U8G_PIN_NONE 255 - -#define U8G_FONT_HEIGHT_MODE_TEXT 0 -#define U8G_FONT_HEIGHT_MODE_XTEXT 1 -#define U8G_FONT_HEIGHT_MODE_ALL 2 - -struct _u8g_t -{ - u8g_uint_t width; - u8g_uint_t height; - - - u8g_dev_t *dev; /* first device in the device chain */ - const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ - const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ - uint8_t cursor_fg_color, cursor_bg_color; - uint8_t cursor_encoding; - uint8_t mode; /* display mode, one of U8G_MODE_xxx */ - u8g_uint_t cursor_x; - u8g_uint_t cursor_y; - u8g_draw_cursor_fn cursor_fn; - - int8_t glyph_dx; - int8_t glyph_x; - int8_t glyph_y; - uint8_t glyph_width; - uint8_t glyph_height; - - u8g_font_calc_vref_fnptr font_calc_vref; - uint8_t font_height_mode; - int8_t font_ref_ascent; - int8_t font_ref_descent; - uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ - uint8_t line_spacing; - - u8g_dev_arg_pixel_t arg_pixel; - /* uint8_t color_index; */ - - uint8_t pin_list[U8G_PIN_LIST_LEN]; - - u8g_state_cb state_cb; - - u8g_box_t current_page; /* current box of the visible page */ - -}; - -#define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) -#define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) -#define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); /* obsolete */ -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); - -void u8g_UpdateDimension(u8g_t *u8g); -uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); -void u8g_FirstPage(u8g_t *u8g); -uint8_t u8g_NextPage(u8g_t *u8g); -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); -void u8g_SleepOn(u8g_t *u8g); -void u8g_SleepOff(u8g_t *u8g); -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); - -uint8_t u8g_Stop(u8g_t *u8g); -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); -uint8_t u8g_GetColorIndex(u8g_t *u8g); - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); -void u8g_SetDefaultForegroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); -void u8g_SetDefaultBackgroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); -void u8g_SetDefaultMidColor(u8g_t *u8g); - -#define u8g_GetWidth(u8g) ((u8g)->width) -#define u8g_GetHeight(u8g) ((u8g)->height) -#define u8g_GetMode(u8g) ((u8g)->mode) -/* - U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) - U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) -*/ - -/* u8g_state.c */ -#define U8G_STATE_ENV_IDX 0 -#define U8G_STATE_U8G_IDX 1 -#define U8G_STATE_RESTORE 0 -#define U8G_STATE_BACKUP 1 -#define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) - -#define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) -#define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) - -#define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) -#define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) - - - -void u8g_state_dummy_cb(uint8_t msg); -void u8g_backup_avr_spi(uint8_t msg); /* backup SPI state on atmel avr controller */ - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); - -/* u8g_clip.c */ - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); - - -/* u8g_rot.c */ - -void u8g_UndoRotation(u8g_t *u8g); -void u8g_SetRot90(u8g_t *u8g); -void u8g_SetRot180(u8g_t *u8g); -void u8g_SetRot270(u8g_t *u8g); - -/* u8g_scale.c */ - -void u8g_UndoScale(u8g_t *u8g); -void u8g_SetScale2x2(u8g_t *u8g); - - -/* u8g_font.c */ - -size_t u8g_font_GetSize(const void *font); -uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; -uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); -int8_t u8g_GetFontBBXOffX(u8g_t *u8g); -int8_t u8g_GetFontBBXOffY(u8g_t *u8g); -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ - -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); - - -void u8g_SetFontRefHeightText(u8g_t *u8g); -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); -void u8g_SetFontRefHeightAll(u8g_t *u8g); -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); - -void u8g_SetFontPosBaseline(u8g_t *u8g); -void u8g_SetFontPosBottom(u8g_t *u8g); -void u8g_SetFontPosCenter(u8g_t *u8g); -void u8g_SetFontPosTop(u8g_t *u8g); - - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -int8_t u8g_GetStrX(u8g_t *u8g, const char *s); -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s); -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - -/* u8g_rect.c */ - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w); -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w); -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r); -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r); - -/* u8g_bitmap.c */ - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - - -/* u8g_line.c */ -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); - - -/* u8g_circle.c */ - -/* the following, commented code has been rewritten or is not yet finished -#define U8G_CIRC_UPPER_RIGHT 0x01 -#define U8G_CIRC_UPPER_LEFT 0x02 -#define U8G_CIRC_LOWER_LEFT 0x04 -#define U8G_CIRC_LOWER_RIGHT 0x08 -#define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); -*/ - -#define U8G_DRAW_UPPER_RIGHT 0x01 -#define U8G_DRAW_UPPER_LEFT 0x02 -#define U8G_DRAW_LOWER_LEFT 0x04 -#define U8G_DRAW_LOWER_RIGHT 0x08 -#define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); - -/* u8g_clip.c */ -uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); - - -/* u8g_cursor.c */ -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); -void u8g_EnableCursor(u8g_t *u8g); -void u8g_DisableCursor(u8g_t *u8g); -void u8g_DrawCursor(u8g_t *u8g); - - - -/*===============================================================*/ -/* u8g_virtual_screen.c */ -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); - -/*===============================================================*/ -void st_Draw(uint8_t fps); -void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); - -/*===============================================================*/ -/* u8g_com_i2c.c */ - -/* options for u8g_i2c_init() */ -#define U8G_I2C_OPT_NONE 0 - -/* retrun values from u8g_twi_get_error() */ -#define U8G_I2C_ERR_NONE 0x00 -/* the following values are bit masks */ -#define U8G_I2C_ERR_TIMEOUT 0x01 -#define U8G_I2C_ERR_BUS 0x02 - -void u8g_i2c_clear_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; -void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; -uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; -uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; -void u8g_i2c_stop(void) U8G_NOINLINE; - - -/*===============================================================*/ -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d); - -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d); - -/*===============================================================*/ -/* u8g_delay.c */ - -/* delay by the specified number of milliseconds */ -void u8g_Delay(uint16_t val); - -/* delay by one microsecond */ -void u8g_MicroDelay(void); - -/* delay by 10 microseconds */ -void u8g_10MicroDelay(void); - -/*===============================================================*/ -/* chessengine.c */ -#define CHESS_KEY_NONE 0 -#define CHESS_KEY_NEXT 1 -#define CHESS_KEY_PREV 2 -#define CHESS_KEY_SELECT 3 -#define CHESS_KEY_BACK 4 - -void chess_Init(u8g_t *u8g, uint8_t empty_body_color); -void chess_Draw(void); -void chess_Step(uint8_t keycode); - -/*===============================================================*/ -/* font definitions */ - -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_SECTION(".progmem.u8g_font_m2icon_5"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_SECTION(".progmem.u8g_font_m2icon_7"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_SECTION(".progmem.u8g_font_m2icon_9"); - -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_SECTION(".progmem.u8g_font_u8glib_4"); -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_SECTION(".progmem.u8g_font_u8glib_4r"); - - -extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_SECTION(".progmem.u8g_font_6x12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_SECTION(".progmem.u8g_font_6x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_SECTION(".progmem.u8g_font_7x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_SECTION(".progmem.u8g_font_8x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_SECTION(".progmem.u8g_font_9x15_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_SECTION(".progmem.u8g_font_9x18_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_SECTION(".progmem.u8g_font_cu12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_SECTION(".progmem.u8g_font_unifont_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_SECTION(".progmem.u8g_font_10x20_75r"); - -extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_SECTION(".progmem.u8g_font_10x20_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_SECTION(".progmem.u8g_font_10x20_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_SECTION(".progmem.u8g_font_10x20"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_SECTION(".progmem.u8g_font_10x20r"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_SECTION(".progmem.u8g_font_4x6"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_SECTION(".progmem.u8g_font_4x6r"); -//extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_SECTION(".progmem.u8g_font_4x6n"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_SECTION(".progmem.u8g_font_5x7"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_SECTION(".progmem.u8g_font_5x7r"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_SECTION(".progmem.u8g_font_5x8"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_SECTION(".progmem.u8g_font_5x8r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_SECTION(".progmem.u8g_font_6x10"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_SECTION(".progmem.u8g_font_6x10r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_SECTION(".progmem.u8g_font_6x12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_SECTION(".progmem.u8g_font_6x12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_SECTION(".progmem.u8g_font_6x12"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_SECTION(".progmem.u8g_font_6x12r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_SECTION(".progmem.u8g_font_6x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_SECTION(".progmem.u8g_font_6x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_SECTION(".progmem.u8g_font_6x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_SECTION(".progmem.u8g_font_6x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_SECTION(".progmem.u8g_font_6x13"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_SECTION(".progmem.u8g_font_6x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_SECTION(".progmem.u8g_font_6x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_SECTION(".progmem.u8g_font_6x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_SECTION(".progmem.u8g_font_7x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_SECTION(".progmem.u8g_font_7x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_SECTION(".progmem.u8g_font_7x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_SECTION(".progmem.u8g_font_7x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_SECTION(".progmem.u8g_font_7x13"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_SECTION(".progmem.u8g_font_7x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_SECTION(".progmem.u8g_font_7x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_SECTION(".progmem.u8g_font_7x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_SECTION(".progmem.u8g_font_7x14B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_SECTION(".progmem.u8g_font_7x14Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_SECTION(".progmem.u8g_font_7x14"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_SECTION(".progmem.u8g_font_7x14r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_SECTION(".progmem.u8g_font_8x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_SECTION(".progmem.u8g_font_8x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_SECTION(".progmem.u8g_font_8x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_SECTION(".progmem.u8g_font_8x13"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_SECTION(".progmem.u8g_font_8x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_SECTION(".progmem.u8g_font_8x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_SECTION(".progmem.u8g_font_8x13Or"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_SECTION(".progmem.u8g_font_9x15_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_SECTION(".progmem.u8g_font_9x15_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_SECTION(".progmem.u8g_font_9x15B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_SECTION(".progmem.u8g_font_9x15Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_SECTION(".progmem.u8g_font_9x15"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_SECTION(".progmem.u8g_font_9x15r"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_SECTION(".progmem.u8g_font_9x18_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_SECTION(".progmem.u8g_font_9x18_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_SECTION(".progmem.u8g_font_9x18B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_SECTION(".progmem.u8g_font_9x18"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_SECTION(".progmem.u8g_font_9x18Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_SECTION(".progmem.u8g_font_9x18r"); - -extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_SECTION(".progmem.u8g_font_cursor"); -extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_SECTION(".progmem.u8g_font_cursorr"); -extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_SECTION(".progmem.u8g_font_micro"); - -extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_SECTION(".progmem.u8g_font_cu12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_SECTION(".progmem.u8g_font_cu12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_SECTION(".progmem.u8g_font_cu12"); - -/* - Free-Universal Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_SECTION(".progmem.u8g_font_fub11"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_SECTION(".progmem.u8g_font_fub11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_SECTION(".progmem.u8g_font_fub11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_SECTION(".progmem.u8g_font_fub14"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_SECTION(".progmem.u8g_font_fub14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_SECTION(".progmem.u8g_font_fub14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_SECTION(".progmem.u8g_font_fub17"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_SECTION(".progmem.u8g_font_fub17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_SECTION(".progmem.u8g_font_fub17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_SECTION(".progmem.u8g_font_fub20"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_SECTION(".progmem.u8g_font_fub20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_SECTION(".progmem.u8g_font_fub20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_SECTION(".progmem.u8g_font_fub25"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_SECTION(".progmem.u8g_font_fub25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_SECTION(".progmem.u8g_font_fub25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_SECTION(".progmem.u8g_font_fub30"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_SECTION(".progmem.u8g_font_fub30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_SECTION(".progmem.u8g_font_fub30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_SECTION(".progmem.u8g_font_fub35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_SECTION(".progmem.u8g_font_fub42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_SECTION(".progmem.u8g_font_fub49n"); - -/* - Free-Universal Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_SECTION(".progmem.u8g_font_fur11"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_SECTION(".progmem.u8g_font_fur11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_SECTION(".progmem.u8g_font_fur11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_SECTION(".progmem.u8g_font_fur14"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_SECTION(".progmem.u8g_font_fur14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_SECTION(".progmem.u8g_font_fur14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_SECTION(".progmem.u8g_font_fur17"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_SECTION(".progmem.u8g_font_fur17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_SECTION(".progmem.u8g_font_fur17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_SECTION(".progmem.u8g_font_fur20"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_SECTION(".progmem.u8g_font_fur20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_SECTION(".progmem.u8g_font_fur20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_SECTION(".progmem.u8g_font_fur25"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_SECTION(".progmem.u8g_font_fur25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_SECTION(".progmem.u8g_font_fur25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_SECTION(".progmem.u8g_font_fur30"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_SECTION(".progmem.u8g_font_fur30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_SECTION(".progmem.u8g_font_fur30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_SECTION(".progmem.u8g_font_fur35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_SECTION(".progmem.u8g_font_fur42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_SECTION(".progmem.u8g_font_fur49n"); - -/* - Gentium Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_SECTION(".progmem.u8g_font_gdb11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_SECTION(".progmem.u8g_font_gdb12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_SECTION(".progmem.u8g_font_gdb14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_SECTION(".progmem.u8g_font_gdb17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_SECTION(".progmem.u8g_font_gdb20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_SECTION(".progmem.u8g_font_gdb25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_SECTION(".progmem.u8g_font_gdb30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_SECTION(".progmem.u8g_font_gdb11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_SECTION(".progmem.u8g_font_gdb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_SECTION(".progmem.u8g_font_gdb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_SECTION(".progmem.u8g_font_gdb17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_SECTION(".progmem.u8g_font_gdb20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_SECTION(".progmem.u8g_font_gdb25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_SECTION(".progmem.u8g_font_gdb30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_SECTION(".progmem.u8g_font_gdb11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_SECTION(".progmem.u8g_font_gdb12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_SECTION(".progmem.u8g_font_gdb14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_SECTION(".progmem.u8g_font_gdb17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_SECTION(".progmem.u8g_font_gdb20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_SECTION(".progmem.u8g_font_gdb25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_SECTION(".progmem.u8g_font_gdb30n"); - -/* - Gentium Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_SECTION(".progmem.u8g_font_gdr9"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_SECTION(".progmem.u8g_font_gdr10"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_SECTION(".progmem.u8g_font_gdr11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_SECTION(".progmem.u8g_font_gdr12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_SECTION(".progmem.u8g_font_gdr14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_SECTION(".progmem.u8g_font_gdr17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_SECTION(".progmem.u8g_font_gdr20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_SECTION(".progmem.u8g_font_gdr25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_SECTION(".progmem.u8g_font_gdr30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_SECTION(".progmem.u8g_font_gdr9r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_SECTION(".progmem.u8g_font_gdr10r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_SECTION(".progmem.u8g_font_gdr11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_SECTION(".progmem.u8g_font_gdr12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_SECTION(".progmem.u8g_font_gdr14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_SECTION(".progmem.u8g_font_gdr17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_SECTION(".progmem.u8g_font_gdr20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_SECTION(".progmem.u8g_font_gdr25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_SECTION(".progmem.u8g_font_gdr30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_SECTION(".progmem.u8g_font_gdr9n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_SECTION(".progmem.u8g_font_gdr10n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_SECTION(".progmem.u8g_font_gdr11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_SECTION(".progmem.u8g_font_gdr12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_SECTION(".progmem.u8g_font_gdr14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_SECTION(".progmem.u8g_font_gdr17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_SECTION(".progmem.u8g_font_gdr20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_SECTION(".progmem.u8g_font_gdr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_SECTION(".progmem.u8g_font_gdr30n"); - -/* - Old-Standard Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_SECTION(".progmem.u8g_font_osb18"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_SECTION(".progmem.u8g_font_osb21"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_SECTION(".progmem.u8g_font_osb26"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_SECTION(".progmem.u8g_font_osb29"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_SECTION(".progmem.u8g_font_osb35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_SECTION(".progmem.u8g_font_osb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_SECTION(".progmem.u8g_font_osb21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_SECTION(".progmem.u8g_font_osb26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_SECTION(".progmem.u8g_font_osb29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_SECTION(".progmem.u8g_font_osb35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_SECTION(".progmem.u8g_font_osb18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_SECTION(".progmem.u8g_font_osb21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_SECTION(".progmem.u8g_font_osb26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_SECTION(".progmem.u8g_font_osb29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_SECTION(".progmem.u8g_font_osb35n"); - -/* - Old-Standard Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_SECTION(".progmem.u8g_font_osr18"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_SECTION(".progmem.u8g_font_osr21"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_SECTION(".progmem.u8g_font_osr26"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_SECTION(".progmem.u8g_font_osr29"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_SECTION(".progmem.u8g_font_osr35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_SECTION(".progmem.u8g_font_osr18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_SECTION(".progmem.u8g_font_osr21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_SECTION(".progmem.u8g_font_osr26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_SECTION(".progmem.u8g_font_osr29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_SECTION(".progmem.u8g_font_osr35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_SECTION(".progmem.u8g_font_osr18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_SECTION(".progmem.u8g_font_osr21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_SECTION(".progmem.u8g_font_osr26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_SECTION(".progmem.u8g_font_osr29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_SECTION(".progmem.u8g_font_osr35n"); - -//extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_SECTION(".progmem.u8g_font_osr41"); - -/* GNU unifont */ - -extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_SECTION(".progmem.u8g_font_unifont_18_19"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_SECTION(".progmem.u8g_font_unifont_72_73"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_SECTION(".progmem.u8g_font_unifont_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_SECTION(".progmem.u8g_font_unifont_76"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_SECTION(".progmem.u8g_font_unifont_77"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_SECTION(".progmem.u8g_font_unifont_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_SECTION(".progmem.u8g_font_unifont_86"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_SECTION(".progmem.u8g_font_unifont"); -extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_SECTION(".progmem.u8g_font_unifontr"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_SECTION(".progmem.u8g_font_unifont_0_8"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_SECTION(".progmem.u8g_font_unifont_2_3"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_SECTION(".progmem.u8g_font_unifont_4_5"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_SECTION(".progmem.u8g_font_unifont_8_9"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_SECTION(".progmem.u8g_font_unifont_12_13"); - - -/* 04b fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_SECTION(".progmem.u8g_font_04b_03b"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_SECTION(".progmem.u8g_font_04b_03bn"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_SECTION(".progmem.u8g_font_04b_03br"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_SECTION(".progmem.u8g_font_04b_03"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_SECTION(".progmem.u8g_font_04b_03n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_SECTION(".progmem.u8g_font_04b_03r"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_SECTION(".progmem.u8g_font_04b_24"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_SECTION(".progmem.u8g_font_04b_24n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_SECTION(".progmem.u8g_font_04b_24r"); - -/* orgdot fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_SECTION(".progmem.u8g_font_orgv01"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_SECTION(".progmem.u8g_font_orgv01r"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_SECTION(".progmem.u8g_font_orgv01n"); - -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_SECTION(".progmem.u8g_font_fixed_v0"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_SECTION(".progmem.u8g_font_fixed_v0r"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_SECTION(".progmem.u8g_font_fixed_v0n"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_SECTION(".progmem.u8g_font_tpssb"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_SECTION(".progmem.u8g_font_tpssbr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_SECTION(".progmem.u8g_font_tpssbn"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_SECTION(".progmem.u8g_font_tpss"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_SECTION(".progmem.u8g_font_tpssr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_SECTION(".progmem.u8g_font_tpssn"); - -/* contributed */ - -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_SECTION(".progmem.u8g_font_freedoomr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_SECTION(".progmem.u8g_font_freedoomr10r"); - -/* adobe X11 */ -extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_SECTION(".progmem.u8g_font_courB08"); -extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_SECTION(".progmem.u8g_font_courB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_SECTION(".progmem.u8g_font_courB10"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_SECTION(".progmem.u8g_font_courB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_SECTION(".progmem.u8g_font_courB12"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_SECTION(".progmem.u8g_font_courB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_SECTION(".progmem.u8g_font_courB14"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_SECTION(".progmem.u8g_font_courB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_SECTION(".progmem.u8g_font_courB18"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_SECTION(".progmem.u8g_font_courB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_SECTION(".progmem.u8g_font_courB24"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_SECTION(".progmem.u8g_font_courB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_SECTION(".progmem.u8g_font_courB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_SECTION(".progmem.u8g_font_courR08"); -extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_SECTION(".progmem.u8g_font_courR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_SECTION(".progmem.u8g_font_courR10"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_SECTION(".progmem.u8g_font_courR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_SECTION(".progmem.u8g_font_courR12"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_SECTION(".progmem.u8g_font_courR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_SECTION(".progmem.u8g_font_courR14"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_SECTION(".progmem.u8g_font_courR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_SECTION(".progmem.u8g_font_courR18"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_SECTION(".progmem.u8g_font_courR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_SECTION(".progmem.u8g_font_courR24"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_SECTION(".progmem.u8g_font_courR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_SECTION(".progmem.u8g_font_courR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_SECTION(".progmem.u8g_font_helvB08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_SECTION(".progmem.u8g_font_helvB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_SECTION(".progmem.u8g_font_helvB10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_SECTION(".progmem.u8g_font_helvB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_SECTION(".progmem.u8g_font_helvB12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_SECTION(".progmem.u8g_font_helvB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_SECTION(".progmem.u8g_font_helvB14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_SECTION(".progmem.u8g_font_helvB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_SECTION(".progmem.u8g_font_helvB18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_SECTION(".progmem.u8g_font_helvB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_SECTION(".progmem.u8g_font_helvB24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_SECTION(".progmem.u8g_font_helvB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_SECTION(".progmem.u8g_font_helvB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_SECTION(".progmem.u8g_font_helvR08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_SECTION(".progmem.u8g_font_helvR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_SECTION(".progmem.u8g_font_helvR10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_SECTION(".progmem.u8g_font_helvR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_SECTION(".progmem.u8g_font_helvR12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_SECTION(".progmem.u8g_font_helvR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_SECTION(".progmem.u8g_font_helvR14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_SECTION(".progmem.u8g_font_helvR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_SECTION(".progmem.u8g_font_helvR18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_SECTION(".progmem.u8g_font_helvR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_SECTION(".progmem.u8g_font_helvR24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_SECTION(".progmem.u8g_font_helvR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_SECTION(".progmem.u8g_font_helvR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_SECTION(".progmem.u8g_font_ncenB08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_SECTION(".progmem.u8g_font_ncenB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_SECTION(".progmem.u8g_font_ncenB10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_SECTION(".progmem.u8g_font_ncenB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_SECTION(".progmem.u8g_font_ncenB12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_SECTION(".progmem.u8g_font_ncenB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_SECTION(".progmem.u8g_font_ncenB14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_SECTION(".progmem.u8g_font_ncenB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_SECTION(".progmem.u8g_font_ncenB18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_SECTION(".progmem.u8g_font_ncenB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_SECTION(".progmem.u8g_font_ncenB24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_SECTION(".progmem.u8g_font_ncenB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_SECTION(".progmem.u8g_font_ncenB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_SECTION(".progmem.u8g_font_ncenR08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_SECTION(".progmem.u8g_font_ncenR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_SECTION(".progmem.u8g_font_ncenR10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_SECTION(".progmem.u8g_font_ncenR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_SECTION(".progmem.u8g_font_ncenR12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_SECTION(".progmem.u8g_font_ncenR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_SECTION(".progmem.u8g_font_ncenR14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_SECTION(".progmem.u8g_font_ncenR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_SECTION(".progmem.u8g_font_ncenR18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_SECTION(".progmem.u8g_font_ncenR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_SECTION(".progmem.u8g_font_ncenR24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_SECTION(".progmem.u8g_font_ncenR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_SECTION(".progmem.u8g_font_ncenR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_SECTION(".progmem.u8g_font_symb08"); -extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_SECTION(".progmem.u8g_font_symb08r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_SECTION(".progmem.u8g_font_symb10"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_SECTION(".progmem.u8g_font_symb10r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_SECTION(".progmem.u8g_font_symb12"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_SECTION(".progmem.u8g_font_symb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_SECTION(".progmem.u8g_font_symb14"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_SECTION(".progmem.u8g_font_symb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_SECTION(".progmem.u8g_font_symb18"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_SECTION(".progmem.u8g_font_symb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_SECTION(".progmem.u8g_font_symb24"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_SECTION(".progmem.u8g_font_symb24r"); - -extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_SECTION(".progmem.u8g_font_timB08"); -extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_SECTION(".progmem.u8g_font_timB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_SECTION(".progmem.u8g_font_timB10"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_SECTION(".progmem.u8g_font_timB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_SECTION(".progmem.u8g_font_timB12"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_SECTION(".progmem.u8g_font_timB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_SECTION(".progmem.u8g_font_timB14"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_SECTION(".progmem.u8g_font_timB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_SECTION(".progmem.u8g_font_timB18"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_SECTION(".progmem.u8g_font_timB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_SECTION(".progmem.u8g_font_timB24"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_SECTION(".progmem.u8g_font_timB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_SECTION(".progmem.u8g_font_timB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_SECTION(".progmem.u8g_font_timR08"); -extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_SECTION(".progmem.u8g_font_timR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_SECTION(".progmem.u8g_font_timR10"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_SECTION(".progmem.u8g_font_timR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_SECTION(".progmem.u8g_font_timR12"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_SECTION(".progmem.u8g_font_timR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_SECTION(".progmem.u8g_font_timR14"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_SECTION(".progmem.u8g_font_timR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_SECTION(".progmem.u8g_font_timR18"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_SECTION(".progmem.u8g_font_timR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_SECTION(".progmem.u8g_font_timR24"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_SECTION(".progmem.u8g_font_timR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_SECTION(".progmem.u8g_font_timR24n"); - -/* fontstruct */ - -extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_SECTION(".progmem.u8g_font_p01type"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_SECTION(".progmem.u8g_font_p01typer"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_SECTION(".progmem.u8g_font_p01typen"); - -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternate"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternater"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_SECTION(".progmem.u8g_font_lucasfont_alternaten"); - -//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfont[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfont"); -//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfontr[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfontr"); -//extern const u8g_fntpgm_uint8_t u8g_font_fs_onebrickpixelfontn[] U8G_SECTION(".progmem.u8g_font_fs_onebrickpixelfontn"); - -extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_SECTION(".progmem.u8g_font_chikita"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_SECTION(".progmem.u8g_font_chikitar"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_SECTION(".progmem.u8g_font_chikitan"); - -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_SECTION(".progmem.u8g_font_pixelle_micro"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_SECTION(".progmem.u8g_font_pixelle_micror"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_SECTION(".progmem.u8g_font_pixelle_micron"); - -extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_SECTION(".progmem.u8g_font_trixel_square"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_SECTION(".progmem.u8g_font_trixel_squarer"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_SECTION(".progmem.u8g_font_trixel_squaren"); - -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_SECTION(".progmem.u8g_font_robot_de_niro"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_SECTION(".progmem.u8g_font_robot_de_niror"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_SECTION(".progmem.u8g_font_robot_de_niron"); - -extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_SECTION(".progmem.u8g_font_baby"); -extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_SECTION(".progmem.u8g_font_babyr"); -extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_SECTION(".progmem.u8g_font_babyn"); - -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_SECTION(".progmem.u8g_font_blipfest_07"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_SECTION(".progmem.u8g_font_blipfest_07r"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_SECTION(".progmem.u8g_font_blipfest_07n"); - -extern const u8g_fntpgm_uint8_t u8g_font_6x10_marlin[] U8G_SECTION(".progmem.u8g_font_6x10_marlin"); -extern const u8g_fntpgm_uint8_t u8g_font_6x9[] U8G_SECTION(".progmem.u8g_font_6x9"); - -#ifdef __cplusplus -} -#endif - -#endif /* _U8G_H */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c deleted file mode 100644 index dc742d1d78..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_bitmap.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, *bitmap); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmap(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - - -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, u8g_pgm_read(bitmap)); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmapP(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - -/*=========================================================================*/ - -static void u8g_DrawHXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, *bitmap); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = *bitmap; - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - while( h > 0 ) - { - u8g_DrawHXBM(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} - -static void u8g_DrawHXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const u8g_pgm_uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, u8g_pgm_read(bitmap)); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = u8g_pgm_read(bitmap); - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHXBMP(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c deleted file mode 100644 index 8f4a0525d8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - - u8g_circle.c - - Utility to draw empty and filled circles. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - u8g_DrawCircle & u8g_DrawDisc by olikraus@gmail.com - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library 02/25/12 - - -*/ - -#include "u8g.h" - -#ifdef OLD_CODE - -void circ_upperRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); -} - -void circ_upperLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); -} - -void circ_lowerRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); -} - -void circ_lowerLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); -} - -void circ_all(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - circ_upperRight(u8g, x, y, x0, y0); - circ_upperLeft(u8g, x, y, x0, y0); - circ_lowerRight(u8g, x, y, x0, y0); - circ_lowerLeft(u8g, x, y, x0, y0); -} - -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - void ( *circ_util )(u8g_t *, u8g_uint_t, u8g_uint_t, u8g_uint_t, u8g_uint_t); - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_upperRight; - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_upperLeft; - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_lowerRight; - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_lowerLeft; - break; - default: - case U8G_CIRC_ALL: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_all; - break; - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - circ_util(u8g, x, y, x0, y0); - } -} - - -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - // Draw vertical diameter at the horiz. center - // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - - if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); - } - else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0, rad+1); - } - else { - u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - //Draw vertical lines from one point to another - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - break; - case U8G_CIRC_ALL: - u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); - u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); - break; - } - } -} - -#endif - -/*=========================================================================*/ - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); - } -} - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw circle */ - u8g_draw_circle(u8g, x0, y0, rad, option); -} - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - } -} - -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw disc */ - u8g_draw_disc(u8g, x0, y0, rad, option); -} - - - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c deleted file mode 100644 index 71abef2e71..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - - u8g_clip.c - - procedures for clipping - taken over from procs in u8g_pb.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Notes - - This is one of the most critical parts of u8glib. It must be fast, but still reliable. - Based on the intersection program (see tools folder), there is minimized version of - the condition for the intersaction test: - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - It includes the assumption, that a1 <= a2 is always true (correct, because - a1, a2 are the page dimensions. - - The direct implementation of the above result is done in: - uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - However, this is slower than a decision tree version: - static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - Also suprising is, that he the macro implementation is slower than the inlined version. - - The decision tree is based on the expansion of the truth table. - -*/ - -#include "u8g.h" - -#ifdef __GNUC__ -#define U8G_ALWAYS_INLINE __attribute__((always_inline)) -#else -#define U8G_ALWAYS_INLINE - #endif - -/* - intersection assumptions: - a1 <= a2 is always true - - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ - -#ifdef OLD_CODE_WHICH_IS_TOO_SLOW -static uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= a1; - c2 = v1 >= a0; - c3 = v0 > v1; - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} -#endif - -#define U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1) ((uint8_t)( (v0) <= (a1) ) ? ( ( (v1) >= (a0) ) ? ( 1 ) : ( (v0) > (v1) ) ) : ( ( (v1) >= (a0) ) ? ( (v0) > (v1) ) : ( 0 ) )) - -static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) U8G_ALWAYS_INLINE; -static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - /* surprisingly the macro leads to larger code */ - /* return U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1); */ - if ( v0 <= a1 ) - { - if ( v1 >= a0 ) - { - return 1; - } - else - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - } - else - { - if ( v1 >= a0 ) - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - else - { - return 0; - } - } -} - - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - register u8g_uint_t tmp; - tmp = y; - tmp += h; - tmp--; - if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) - return 0; - - tmp = x; - tmp += w; - tmp--; - return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c deleted file mode 100644 index 2dd49b1260..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - - u8g_com_api.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev) -{ - return dev->com_fn(u8g, U8G_COM_MSG_INIT, 0, NULL); -} - -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_STOP, 0, NULL); -} - -/* cs contains the chip number, which should be enabled */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs) -{ - dev->com_fn(u8g, U8G_COM_MSG_CHIP_SELECT, cs, NULL); -} - -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 0, NULL); -} - -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 1, NULL); -} - - -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address) -{ - dev->com_fn(u8g, U8G_COM_MSG_ADDRESS, address, NULL); -} - -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, val, NULL); -} - -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, cnt, seq); -} - -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ_P, cnt, (void *)seq); -} - -/* - sequence := { direct_value | escape_sequence } - direct_value := 0..254 - escape_sequence := value_255 | sequence_end | delay | adr | cs | not_used - value_255 := 255 255 - sequence_end = 255 254 - delay := 255 0..127 - adr := 255 0x0e0 .. 0x0ef - cs := 255 0x0d0 .. 0x0df - not_used := 255 101..254 - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) - -*/ -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) -{ - uint8_t is_escape = 0; - uint8_t value; - for(;;) - { - value = u8g_pgm_read(esc_seq); - if ( is_escape == 0 ) - { - if ( value != 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else - { - is_escape = 1; - } - } - else - { - if ( value == 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else if ( value == 254 ) - { - break; - } - else if ( value >= 0x0f0 ) - { - /* not yet used, do nothing */ - } - else if ( value >= 0xe0 ) - { - u8g_SetAddress(u8g, dev, value & 0x0f); - } - else if ( value >= 0xd0 ) - { - u8g_SetChipSelect(u8g, dev, value & 0x0f); - } - else if ( value >= 0xc0 ) - { - u8g_SetResetLow(u8g, dev); - value &= 0x0f; - value <<= 4; - value+=2; - u8g_Delay(value); - u8g_SetResetHigh(u8g, dev); - u8g_Delay(value); - } - else if ( value >= 0xbe ) - { - /* not yet implemented */ - /* u8g_SetVCC(u8g, dev, value & 0x01); */ - } - else if ( value <= 127 ) - { - u8g_Delay(value); - } - is_escape = 0; - } - esc_seq++; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c deleted file mode 100644 index 7ff03d8656..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - - u8g_com_api_16gr.c - - Extension of the com api for devices with 16 graylevels (4 bit per pixel). - This should fit to the 8h and 16h architectures (pb8v1, pb8v2, pb16v1, pb16v2), - mainly intended for SSD OLEDs - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* interpret b as a monochrome bit pattern, write value 15 for high bit and value 0 for a low bit */ -/* topbit (msb) is sent last */ -/* example: b = 0x083 will send 0xff, 0x00, 0x00, 0xf0 */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - static uint8_t buf[4]; - static uint8_t map[4] = { 0, 0x00f, 0x0f0, 0x0ff }; - buf [3] = map[b & 3]; - b>>=2; - buf [2] = map[b & 3]; - b>>=2; - buf [1] = map[b & 3]; - b>>=2; - buf [0] = map[b & 3]; - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, 4, buf); -} - -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByteBWTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} - -/* interpret b as a 4L bit pattern, write values 0x000, 0x004, 0x008, 0x00c */ -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - //static uint8_t map[16] = { 0x000, 0x004, 0x008, 0x00c, 0x040, 0x044, 0x048, 0x04c, 0x080, 0x084, 0x088, 0x08c, 0x0c0, 0x0c4, 0x0c8, 0x0cc}; - //static uint8_t map[16] = { 0x000, 0x004, 0x00a, 0x00f, 0x040, 0x044, 0x04a, 0x04f, 0x0a0, 0x0a4, 0x0aa, 0x0af, 0x0f0, 0x0f4, 0x0fa, 0x0ff}; - static uint8_t map[16] = { 0x000, 0x040, 0x0a0, 0x0f0, 0x004, 0x044, 0x0a4, 0x0f4, 0x00a, 0x04a, 0x0aa, 0x0fa, 0x00f, 0x04f, 0x0af, 0x0ff}; - uint8_t bb; - bb = b; - bb &= 15; - b>>=4; - dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[bb], NULL); - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[b], NULL); -} - -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByte4LTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c deleted file mode 100644 index ef0b2366ee..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - - u8g_com_arduino_common.c - - shared procedures for the arduino communication procedures - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value) -{ - uint8_t pin; - pin = u8g->pin_list[pin_index]; - if ( pin != U8G_PIN_NONE ) - digitalWrite(pin, value); -} - -/* this procedure does not set the RW pin */ -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g) -{ - uint8_t i; - /* skip the RW pin, which is the last pin in the list */ - for( i = 0; i < U8G_PIN_LIST_LEN-1; i++ ) - { - if ( u8g->pin_list[i] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[i], OUTPUT); - digitalWrite(u8g->pin_list[i], HIGH); - } - } -} - - -#endif - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c deleted file mode 100644 index 91a32e6f0c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - - u8g_arduino_fast_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#define PIN_D0 8 -#define PIN_D1 9 -#define PIN_D2 10 -#define PIN_D3 11 -#define PIN_D4 4 -#define PIN_D5 5 -#define PIN_D6 6 -#define PIN_D7 7 - -#define PIN_CS1 14 -#define PIN_CS2 15 -#define PIN_RW 16 -#define PIN_DI 17 -#define PIN_EN 18 - -//#define PIN_RESET - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_fast_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -void u8g_com_arduino_fast_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - *u8g_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; -} - - -void u8g_com_arduino_fast_parallel_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_fast_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_fast_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 7, val&1 ); - val >>= 1; - - /* EN cycle time must be 1 micro second */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_fast_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_fast_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c deleted file mode 100644 index 7d7f91000c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_com_arduino_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if defined(__AVR__) - -#include -#include - -#if ARDUINO < 100 -#include - -/* fixed pins */ -#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board -#define PIN_SCK 7 -#define PIN_MISO 6 -#define PIN_MOSI 5 -#define PIN_CS 4 -#else // Arduino Board -#define PIN_SCK 13 -#define PIN_MISO 12 -#define PIN_MOSI 11 -#define PIN_CS 10 -#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) - -#else - -#include - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - -#endif - - - -//static uint8_t u8g_spi_out(uint8_t data) U8G_NOINLINE; -static uint8_t u8g_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_spi_out(arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -/* #elif defined(__18CXX) || defined(__PIC32MX) */ - -#else /* __AVR__ */ - -#endif /* __AVR__ */ - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c deleted file mode 100644 index 49038c36c8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - - u8g_arduino_no_en_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - -//#define PIN_RESET - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_no_en_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -void u8g_com_arduino_no_en_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - *u8g_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; -} - - -void u8g_com_arduino_no_en_parallel_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_no_en_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_no_en_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 7, val&1 ); - val >>= 1; - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - if ( u8g->pin_list[U8G_PI_CS_STATE] == 1 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_MicroDelay(); - } - else if ( u8g->pin_list[U8G_PI_CS_STATE] == 2 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - u8g_MicroDelay(); - } -} - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_no_en_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - /* - 0: nothing selected - 1: CS1 will be used as enable line - 2: CS2 will be used as enable line - this will be used in the u8g_com_arduino_no_en_parallel_write() procedure - */ - u8g->pin_list[U8G_PI_CS_STATE] = arg_val; - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_no_en_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c deleted file mode 100644 index a73bc0dbee..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - - u8g_arduino_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -void u8g_com_arduino_parallel_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - //u8g_Delay(1); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - //u8g_Delay(1); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - //u8g_Delay(2); -} - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c deleted file mode 100644 index cfaf71f9fa..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - - u8g_arduino_port_d_wr.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes PORTD for 8 bit data transfer. - EN is assumed to be a low active write signal (WR) - - ILI9325D_320x240 from iteadstudio.com - RS=19, WR=18, CS=17, RST=16 - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) && defined(PORTD) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -static void u8g_com_arduino_port_d_8bit_wr(u8g_t *u8g, uint8_t val) -{ - PORTD = val; - - /* WR cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); -} - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - - switch(msg) - { - case U8G_COM_MSG_INIT: - -#ifdef UCSR0B - UCSR0B = 0; // disable USART 0 -#endif - DDRD = 0x0ff; - PORTD = 0x0ff; - - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, HIGH); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_port_d_8bit_wr(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO && PORTD */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c deleted file mode 100644 index afcb4088a0..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - - u8g_com_arduino_ssd_i2c.c - - com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant - I2C protocol - - ToDo: Rename this to u8g_com_avr_ssd_i2c.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#define I2C_SLA (0x3c*2) -//#define I2C_CMD_MODE 0x080 -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - - -uint8_t u8g_com_arduino_ssd_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); - //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); - //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ - - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_arduino_ssd_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c deleted file mode 100644 index d5a041386a..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - - u8g_com_arduino_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special HW SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) -#define U8G_ARDUINO_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif - -#endif - - -#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) - -#include -#include - -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} -#endif - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c deleted file mode 100644 index a733988681..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c +++ /dev/null @@ -1,295 +0,0 @@ -/* - - u8g_com_arduino_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -uint8_t u8g_bitData, u8g_bitNotData; -uint8_t u8g_bitClock, u8g_bitNotClock; -volatile uint8_t *u8g_outData; -volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - do - { - if ( val & 128 ) - *outData |= bitData; - else - *outData &= bitNotData; - - /* - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - */ - - val <<= 1; - *outClock &= bitNotClock; - cnt--; - // removed micro delays, because AVRs are too slow and the delay is not required - //u8g_MicroDelay(); - *outClock |= bitClock; - //u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - //u8g_MicroDelay(); - //*dog_outClock |= dog_bitClock; - *dog_outClock &= dog_bitNotClock; - cnt--; - u8g_MicroDelay(); - //*dog_outClock &= dog_bitNotClock; - *dog_outClock |= dog_bitClock; - u8g_MicroDelay(); - - } while( cnt != 0 ); -} - -#else - -/* default interface, Arduino DUE (__arm__) */ - -uint8_t u8g_data_pin; -uint8_t u8g_clock_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_data_pin = dataPin; - u8g_clock_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - digitalWrite(u8g_data_pin, HIGH); - else - digitalWrite(u8g_data_pin, LOW); - val <<= 1; - //u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, LOW); - cnt--; - u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, HIGH); - u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#endif - - - - -static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); - -} - - - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c deleted file mode 100644 index 1251ef2e56..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - - u8g_arduino_std_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_arduino_sw_spi_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) -{ - uint8_t i = 8; - do - { - if ( val & 128 ) - digitalWrite(dataPin, HIGH); - else - digitalWrite(dataPin, LOW); - val <<= 1; - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, HIGH); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, LOW); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c deleted file mode 100644 index 846baeb908..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - - u8g_arduino_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -uint8_t u8g_bitData, u8g_bitNotData; -uint8_t u8g_bitClock, u8g_bitNotClock; -volatile uint8_t *u8g_outData; -volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - do - { - if ( val & 128 ) - *outData |= bitData; - else - *outData &= bitNotData; - - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - } while( cnt != 0 ); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - /* - There must be some delay here. However - fetching the adress dog_outClock is enough delay, so - do not place dog_outClock in a local variable. This will - break the procedure - */ - *dog_outClock |= dog_bitClock; - cnt--; - *dog_outClock &= dog_bitNotClock; - /* - little additional delay after clk pulse, done by 3x32bit reads - from I/O. Optimized for PIC32 with 80 MHz. - */ - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - } while( cnt != 0 ); -} - -#else -/* empty interface */ - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ -} - -#endif - - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_do_shift_out_msb_first( arg_val ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr++); - // u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first( u8g_pgm_read(ptr) ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c deleted file mode 100644 index d6a817867b..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c +++ /dev/null @@ -1,385 +0,0 @@ -/* - - u8g_com_arduino_t6963.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_output_data_port[8]; -static volatile uint32_t *u8g_input_data_port[8]; -static volatile uint32_t *u8g_mode_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_output_data_port[8]; -static volatile uint8_t *u8g_input_data_port[8]; -static volatile uint8_t *u8g_mode_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_t6963_init(u8g_t *u8g) -{ - u8g_output_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_input_data_port[0] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_mode_port[0] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - - u8g_output_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_input_data_port[1] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_mode_port[1] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - - u8g_output_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_input_data_port[2] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_mode_port[2] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - - u8g_output_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_input_data_port[3] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_mode_port[3] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_output_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_input_data_port[4] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_mode_port[4] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - - u8g_output_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_input_data_port[5] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_mode_port[5] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - - u8g_output_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_input_data_port[6] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_mode_port[6] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - - u8g_output_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_input_data_port[7] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_mode_port[7] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -static void u8g_com_arduino_t6963_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - *u8g_output_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_output_data_port[pin] &= ~u8g_data_mask[pin]; -} - -static void u8g_com_arduino_t6963_set_port_output(void) -{ - uint8_t i; - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#elif defined(__AVR__) - *u8g_mode_port[i] |= u8g_data_mask[i]; -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#endif - - } -} - -static void u8g_com_arduino_t6963_set_port_input(void) -{ - uint8_t i; - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; -#elif defined(__AVR__) -/* avr */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#endif - } -} - - -static void u8g_com_arduino_t6963_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_t6963_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_t6963_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 7, val&1 ); - val >>= 1; - - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 0); - u8g_MicroDelay(); /* 80ns, reference: t6963 datasheet */ - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ -} - -static uint8_t u8g_com_arduino_t6963_read(u8g_t *u8g) -{ - uint8_t val = 0; - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 0); - u8g_MicroDelay(); /* 150ns, reference: t6963 datasheet */ - - /* only read bits 0, 1 and 3 */ - if ( (*u8g_input_data_port[3] & u8g_data_mask[3]) != 0 ) - val++; - val <<= 1; - val <<= 1; - if ( (*u8g_input_data_port[1] & u8g_data_mask[1]) != 0 ) - val++; - val <<= 1; - if ( (*u8g_input_data_port[0] & u8g_data_mask[0]) != 0 ) - val++; - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ - - return val; -} - -#define U8G_STATUS_TIMEOUT 50 - -static uint8_t u8g_com_arduino_t6963_until_01_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 3) == 3 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_until_3_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 8) == 8 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_cmd(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_auto_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_3_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g_com_arduino_t6963_init(u8g); - /* setup the RW (equal to WR) pin as output and force it to high */ - if ( u8g->pin_list[U8G_PI_WR] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_WR], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, HIGH); - } - /* set all pins (except WR pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, active low chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - u8g_com_arduino_t6963_write_data(u8g, arg_val); - } - else - { - u8g_com_arduino_t6963_write_cmd(u8g, arg_val); - } - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, *ptr++) == 0 ) - break; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, u8g_pgm_read(ptr)) == 0 ) - break; - ptr++; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 1) or data mode (arg_val = 0) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - //u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c deleted file mode 100644 index 30ee808ea8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - - u8g_com_atmega_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - -*/ - -#include "u8g.h" - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - - -static uint8_t u8g_atmega_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1< 0 ) - { - u8g_atmega_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c deleted file mode 100644 index 603082da27..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - - u8g_atmega_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) -{ - - u8g_SetPILevel(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second */ - u8g_SetPILevel(u8g, U8G_PI_EN, 1); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_SetPILevel(u8g, U8G_PI_EN, 0); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - u8g_SetPIOutput(u8g, U8G_PI_RW); - u8g_SetPILevel(u8g, U8G_PI_RW, 0); - - u8g_SetPIOutput(u8g, U8G_PI_D0); - u8g_SetPIOutput(u8g, U8G_PI_D1); - u8g_SetPIOutput(u8g, U8G_PI_D2); - u8g_SetPIOutput(u8g, U8G_PI_D3); - u8g_SetPIOutput(u8g, U8G_PI_D4); - u8g_SetPIOutput(u8g, U8G_PI_D5); - u8g_SetPIOutput(u8g, U8G_PI_D6); - u8g_SetPIOutput(u8g, U8G_PI_D7); - u8g_SetPIOutput(u8g, U8G_PI_EN); - u8g_SetPIOutput(u8g, U8G_PI_CS1); - u8g_SetPIOutput(u8g, U8G_PI_CS2); - u8g_SetPIOutput(u8g, U8G_PI_DI); - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - else - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c deleted file mode 100644 index 52858a61ea..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - - u8g_com_atmega_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller with HW SPI Support - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif - -#endif - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c deleted file mode 100644 index 24e06028a5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - - u8g_com_atmega_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0fa); - } - - u8g_atmega_st7920_sw_spi_shift_out(u8g, val & 0x0f0); - u8g_atmega_st7920_sw_spi_shift_out(u8g, val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - /* u8g_SetPIOutput(u8g, U8G_PI_A0); */ - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 0 ); - /* u8g_SetPILevel(u8g, U8G_PI_A0, 0); */ - - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c deleted file mode 100644 index fde3153a57..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_com_atmega_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - u8g_SetPIOutput(u8g, U8G_PI_A0); - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 1 ); - u8g_SetPILevel(u8g, U8G_PI_A0, 0); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); - } - else - { - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); /* CS = 0 (low active) */ - } - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_atmega_sw_spi_shift_out(u8g, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c deleted file mode 100644 index 144c7d7200..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - - u8g_com_i2c.c - - generic i2c interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -static uint8_t u8g_i2c_err_code; - -/* - position values - 1: start condition - 2: sla transfer -*/ -static uint8_t u8g_i2c_err_pos; - - -void u8g_i2c_clear_error(void) -{ - u8g_i2c_err_code = U8G_I2C_ERR_NONE; - u8g_i2c_err_pos = 0; -} - -uint8_t u8g_i2c_get_error(void) -{ - return u8g_i2c_err_code; -} - -uint8_t u8g_i2c_get_err_pos(void) -{ - return u8g_i2c_err_pos; -} - -static void u8g_i2c_set_error(uint8_t code, uint8_t pos) -{ - if ( u8g_i2c_err_code > 0 ) - return; - u8g_i2c_err_code |= code; - u8g_i2c_err_pos = pos; -} - - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_TWI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_TWI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_TWI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_TWI) - -#include -#include - - - -void u8g_i2c_init(uint8_t options) -{ - /* - TWBR: bit rate register - TWSR: status register (contains preselector bits) - - prescalar - 0 1 - 1 4 - 2 16 - 3 64 - - f = F_CPU/(16+2*TWBR*prescalar) - - F_CPU = 16MHz - TWBR = 152; - TWSR = 0; - --> 50KHz - - TWBR = 72; - TWSR = 0; - --> 100KHz - - F_CPU/(2*100000)-8 --> calculate TWBR value for 100KHz -*/ - TWSR = 0; - TWBR = F_CPU/(2*100000)-8; - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - volatile uint16_t cnt = 2000; /* timout value should be > 280 for 50KHz Bus and 16 Mhz CPU, however the start condition might need longer */ - while( !(TWCR & mask) ) - { - if ( cnt == 0 ) - { - u8g_i2c_set_error(U8G_I2C_ERR_TIMEOUT, pos); - return 0; /* error */ - } - cnt--; - } - return 1; /* all ok */ -} - -/* sla includes all 8 bits (with r/w bit), assums master transmit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - register uint8_t status; - - /* send start */ - TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 1) == 0 ) - return 0; - - status = TW_STATUS; - - /* check status after start */ - if ( status != TW_START && status != TW_REP_START ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 1); - return 0; - } - - /* set slave address */ - TWDR = sla; - - /* enable sla transfer */ - TWCR = _BV(TWINT) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 2) == 0 ) - return 0; - status = TW_STATUS; - - /* check status after sla */ - if ( status != TW_MT_SLA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 2); - return 0; - } - - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - register uint8_t status; - TWDR = data; - TWCR = _BV(TWINT) | _BV(TWEN); - if ( u8g_i2c_wait(_BV(TWINT), 3) == 0 ) - return 0; - status = TW_STATUS; - - if ( status != TW_MT_DATA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 3); - return 0; - } - - return 1; -} - -void u8g_i2c_stop(void) -{ - /* write stop */ - TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO); - - /* no error is checked for the stop condition */ - u8g_i2c_wait(_BV(TWSTO), 4); - -} - -/* -void twi_send(uint8_t adr, uint8_t data1, uint8_t data2) -{ - u8g_i2c_start(adr<<1); - u8g_i2c_send_byte(data1); - u8g_i2c_send_byte(data2); - u8g_i2c_stop(); -} -*/ - -#else - -/* empty interface */ - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -uint8_t u8g_i2c_start(uint8_t sla) -{ - return 1; -} -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return 1; -} - -void u8g_i2c_stop(void) -{ -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c deleted file mode 100644 index 50d26c93d5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c +++ /dev/null @@ -1,218 +0,0 @@ -/* - - u8g_com_io.c - - abstraction layer for low level i/o - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -#include -#include - -typedef volatile uint8_t * IO_PTR; - -/* create internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -const IO_PTR u8g_avr_ddr_P[] PROGMEM = { -#ifdef DDRA - &DDRA, -#else - 0, -#endif - &DDRB, -#ifdef DDRC - &DDRC, -#ifdef DDRD - &DDRD, -#ifdef DDRE - &DDRE, -#ifdef DDRF - &DDRF, -#ifdef DDRG - &DDRG, -#ifdef DDRH - &DDRH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - - -const IO_PTR u8g_avr_port_P[] PROGMEM = { -#ifdef PORTA - &PORTA, -#else - 0, -#endif - &PORTB, -#ifdef PORTC - &PORTC, -#ifdef PORTD - &PORTD, -#ifdef PORTE - &PORTE, -#ifdef PORTF - &PORTF, -#ifdef PORTG - &PORTG, -#ifdef PORTH - &PORTH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -const IO_PTR u8g_avr_pin_P[] PROGMEM = { -#ifdef PINA - &PINA, -#else - 0, -#endif - &PINB, -#ifdef PINC - &PINC, -#ifdef PIND - &PIND, -#ifdef PINE - &PINE, -#ifdef PINF - &PINF, -#ifdef PING - &PING, -#ifdef PINH - &PINH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -static volatile uint8_t *u8g_get_avr_io_ptr(const IO_PTR *base, uint8_t offset) -{ - volatile uint8_t * tmp; - base += offset; - memcpy_P(&tmp, base, sizeof(volatile uint8_t * PROGMEM)); - return tmp; -} - -/* set direction to output of the specified pin (internal pin number) */ -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) |= _BV(internal_pin_number&7); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) &= ~_BV(internal_pin_number&7); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_port_P, internal_pin_number>>3); - - if ( level == 0 ) - *tmp &= ~_BV(internal_pin_number&7); - else - *tmp |= _BV(internal_pin_number&7); -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_pin_P, internal_pin_number>>3); - if ( ((*tmp) & _BV(internal_pin_number&7)) != 0 ) - return 1; - return 0; -} - -#else - -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - return 0; -} - -#endif - - -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinOutput(pin); -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinLevel(pin, level); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c deleted file mode 100644 index 1d9deebff6..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - - u8g_com_null.c - - communication null device - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - break; - case U8G_COM_MSG_STOP: - break; - - - case U8G_COM_MSG_CHIP_SELECT: - /* arg_val contains the chip number, which should be enabled */ - break; - - - case U8G_COM_MSG_WRITE_BYTE: - break; - case U8G_COM_MSG_WRITE_SEQ: - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c deleted file mode 100644 index 62075ba6ef..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - - u8g_cursor.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font) -{ - u8g->cursor_font = cursor_font; -} - -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding) -{ - u8g->cursor_encoding = encoding; -} - -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg) -{ - u8g->cursor_bg_color = bg; - u8g->cursor_fg_color = fg; -} - -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y) -{ - u8g->cursor_x = cursor_x; - u8g->cursor_y = cursor_y; -} - -void u8g_EnableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = u8g_DrawCursor; -} - -void u8g_DisableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = (u8g_draw_cursor_fn)0; -} - -void u8g_DrawCursor(u8g_t *u8g) -{ - const u8g_pgm_uint8_t *font; - uint8_t color; - uint8_t encoding = u8g->cursor_encoding; - - /* get current values */ - color = u8g_GetColorIndex(u8g); - font = u8g->font; - - /* draw cursor */ - u8g->font = u8g->cursor_font; - encoding++; - u8g_SetColorIndex(u8g, u8g->cursor_bg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - encoding--; - u8g_SetColorIndex(u8g, u8g->cursor_fg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - /* u8g_DrawGlyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - - /* restore previous values */ - u8g->font = font; - u8g_SetColorIndex(u8g, color); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c deleted file mode 100644 index e6a0661b3c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c +++ /dev/null @@ -1,215 +0,0 @@ -/* - - u8g_delay.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "u8g.h" - -/*==== Part 1: Derive suitable delay procedure ====*/ - -#if defined(ARDUINO) -# if defined(__AVR__) -# define USE_AVR_DELAY -# elif defined(__PIC32MX) -# define USE_PIC32_DELAY -# elif defined(__arm__) /* Arduino Due */ -# define USE_ARDUINO_DELAY -# else -# define USE_ARDUINO_DELAY -# endif -#elif defined(__AVR__) -# define USE_AVR_DELAY -#elif defined(__18CXX) -# define USE_PIC18_DELAY -#else -# define USE_DUMMY_DELAY -#endif - - - -/*==== Part 2: Definition of the delay procedures ====*/ - -/*== AVR Delay ==*/ - -#if defined(USE_AVR_DELAY) -#include -#include -#include - -/* - Delay by the provided number of milliseconds. - Thus, a 16 bit value will allow a delay of 0..65 seconds - Makes use of the _delay_loop_2 - - _delay_loop_2 will do a delay of n * 4 prozessor cycles. - with f = F_CPU cycles per second, - n = f / (1000 * 4 ) - with f = 16000000 the result is 4000 - with f = 1000000 the result is 250 - - the millisec loop, gcc requires the following overhead: - - movev 1 - - subwi 2x2 - - bne i 2 - ==> 7 cycles - ==> must be devided by 4, rounded up 7/4 = 2 -*/ -void u8g_Delay(uint16_t val) -{ - /* old version did a call to the arduino lib: delay(val); */ - while( val != 0 ) - { - _delay_loop_2( (F_CPU / 4000 ) -2); - val--; - } -} - -/* delay by one micro second */ -void u8g_MicroDelay(void) -{ -#if (F_CPU / 4000000 ) > 0 - _delay_loop_2( (F_CPU / 4000000 ) ); -#endif -} - -/* delay by 10 micro seconds */ -void u8g_10MicroDelay(void) -{ -#if (F_CPU / 400000 ) > 0 - _delay_loop_2( (F_CPU / 400000 ) ); -#endif -} - -#endif - - -/*== Delay for PIC18 (not tested) ==*/ - -#if defined(USE_PIC18_DELAY) -#include -#define GetSystemClock() (64000000ul) // Hz -#define GetInstructionClock() (GetSystemClock()/4) - -void u8g_Delay(uint16_t val) -{/* - unsigned int _iTemp = (val); - while(_iTemp--) - Delay1KTCYx((GetInstructionClock()+999999)/1000000); - */ -} -void u8g_MicroDelay(void) -{ - /* not implemented */ -} -void u8g_10MicroDelay(void) -{ - /* not implemented */ -} -#endif - - -/*== Arduino Delay ==*/ -#if defined(USE_ARDUINO_DELAY) -void u8g_Delay(uint16_t val) -{ - delay(val); -} -void u8g_MicroDelay(void) -{ - delayMicroseconds(1); -} -void u8g_10MicroDelay(void) -{ - delayMicroseconds(10); -} -#endif - -#if defined(USE_PIC32_DELAY) -/* - Assume chipkit here with F_CPU correctly defined - The problem was, that u8g_Delay() is called within the constructor. - It seems that the chipkit is not fully setup at this time, so a - call to delay() will not work. So here is my own implementation. - -*/ -#define CPU_COUNTS_PER_SECOND (F_CPU/2UL) -#define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL) -#include "plib.h" -void u8g_Delay(uint16_t val) -{ - uint32_t d; - uint32_t s; - d = val; - d *= TICKS_PER_MILLISECOND; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/1000; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_10MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/100; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -#endif - -/*== Any other systems: Dummy Delay ==*/ -#if defined(USE_DUMMY_DELAY) -void u8g_Delay(uint16_t val) -{ - /* do not know how to delay... */ -} -void u8g_MicroDelay(void) -{ -} -void u8g_10MicroDelay(void) -{ -} -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c deleted file mode 100644 index bb368de438..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - - u8g_dev_flipdisc.c - - 1-Bit (BW) Driver for flip disc matrix - 2x 7 pixel height - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -#define WIDTH 28 -#define HEIGHT 14 -#define PAGE_HEIGHT 14 - -/* - Write data to the flip disc matrix. - This procedure must be implemented by the user. - Arguments: - id: Id for the matrix. Currently always 0. - page: A page has a height of 14 pixel. For a matrix with HEIGHT == 14 this will be always 0 - width: The width of the flip disc matrix. Always equal to WIDTH - row1: first data line (7 pixel per byte) - row2: first data line (7 pixel per byte) -*/ -void writeFlipDiscMatrix(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - - - -void (*u8g_write_flip_disc_matrix)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)) -{ - u8g_write_flip_disc_matrix = cb; -} - -uint8_t u8g_dev_flipdisc_2x7_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - - (*u8g_write_flip_disc_matrix)(0, pb->p.page, WIDTH, pb->buf, pb->buf+WIDTH); - } - break; - case U8G_DEV_MSG_CONTRAST: - return 1; - } - return u8g_dev_pb14v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_flipdisc_2x7_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_flipdisc_2x7_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_flipdisc_2x7_bw_buf}; -u8g_dev_t u8g_dev_flipdisc_2x7 = { u8g_dev_flipdisc_2x7_bw_fn, &u8g_dev_flipdisc_2x7_bw_pb, u8g_com_null_fn }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c deleted file mode 100644 index a486a21433..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - - u8g_dev_gprof.c - - Device for performance measurement with gprof. - Does not write any data, but uses a buffer. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -*/ - -#include "u8g.h" - - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_pb_dev_gprof_buf[WIDTH]; -u8g_pb_t u8g_pb_dev_gprof = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_pb_dev_gprof_buf }; - -u8g_dev_t u8g_dev_gprof = { u8g_dev_gprof_fn, &u8g_pb_dev_gprof, NULL }; - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - /* - { - uint8_t i, j; - uint8_t page_height; - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - printf("%02d ", j); - for( i = 0; i < WIDTH; i++ ) - { - if ( (u8g_pb_dev_stdout_buf[i] & (1<p)) == 0 ) - { - //printf("\n"); - return 0; - } - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x2, y2; - - y2 = bbx->y; - y2 += bbx->h; - y2--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, y2) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - x2 = bbx->x; - x2 += bbx->w; - x2--; - - if ( u8g_pb_IsXIntersection(pb, bbx->x, x2) == 0 ) - return 0; - } - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c deleted file mode 100644 index e30ae6a71d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - - u8g_dev_ili9325d_320x240.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Color format - Red: 5 Bit - Green: 6 Bit - Blue: 5 Bit - - -*/ - -#include "u8g.h" - -#define WIDTH 240 - -#if defined(U8G_16BIT) -#define HEIGHT 320 -#else -/* if the user tries to compile the 8Bit version of the lib, then restrict the height to something which fits to 8Bit */ -#define HEIGHT 240 -#endif -#define PAGE_HEIGHT 4 - - -/* - reference board for this device: - http://iteadstudio.com/store/index.php?main_page=product_info&cPath=57_58&products_id=55 - documentation: - http://iteadstudio.com/Downloadfile/ITDB02_material.rar - datasheet - http://www.newhavendisplay.com/app_notes/ILI9325D.pdf - other libs - http://henningkarlsen.com/electronics/library.php - init sequence - http://code.google.com/p/itdb02/, ITDB02.cpp, iteadstudio.com -*/ - -static const uint8_t u8g_dev_ili9325d_320x240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - //U8G_ESC_ADR(0), 0x000, 0x0E5, /* only used for none D version: set SRAM internal timing */ - //U8G_ESC_ADR(1), 0x078, 0x0f0, - U8G_ESC_ADR(0), 0x000, 0x001, /* Driver Output Control, bits 8 & 10 */ - U8G_ESC_ADR(1), 0x001, 0x000, - U8G_ESC_ADR(0), 0x000, 0x002, /* LCD Driving Wave Control, bit 9: Set line inversion */ - U8G_ESC_ADR(1), 0x002, 0x000, /* ITDB02 none D verion: 0x007, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x003, /* Entry Mode, GRAM write direction and BGR=1 */ - U8G_ESC_ADR(1), 0x010, 0x030, - U8G_ESC_ADR(0), 0x000, 0x004, /* Resize register */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x008, /* Display Control 2: set the back porch and front porch */ - U8G_ESC_ADR(1), 0x002, 0x007, - - U8G_ESC_ADR(0), 0x000, 0x009, /* Display Control 3 */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x00a, /* Display Control 4: FMARK */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00c, /* RGB Display Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00d, /* Frame Maker Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00f, /* RGB Display Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: DC1[2:0], DC0[2:0], VC[2:0] */ - U8G_ESC_ADR(1), 0x000, 0x007, - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VREG1OUT voltage */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, but do not display */ - U8G_ESC_ADR(1), 0x000, 0x001, - - U8G_ESC_DLY(100), /* delay 100 ms */ /* ITDB02 none D verion: 50ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x016, 0x090, /* ITDB02 none D verion: 0x010, 0x090 */ - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x002, 0x027, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VCI: External, VCI*1.80 */ - U8G_ESC_ADR(1), 0x000, 0x00d, /* ITDB02 none D verion: 0x000, 0x01f */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x012, 0x000, /* ITDB02 none D verion: 0x015, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x029, /* Power Control 7 */ - U8G_ESC_ADR(1), 0x000, 0x00a, /* ITDB02 none D verion: 0x000, 0x027 */ - U8G_ESC_ADR(0), 0x000, 0x02b, /* Frame Rate: 83 */ - U8G_ESC_ADR(1), 0x000, 0x00d, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - - /* gamma control */ - U8G_ESC_ADR(0), 0x000, 0x030, - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x031, - U8G_ESC_ADR(1), 0x004, 0x004, - U8G_ESC_ADR(0), 0x000, 0x032, - U8G_ESC_ADR(1), 0x000, 0x003, - U8G_ESC_ADR(0), 0x000, 0x035, - U8G_ESC_ADR(1), 0x004, 0x005, - U8G_ESC_ADR(0), 0x000, 0x036, - U8G_ESC_ADR(1), 0x008, 0x008, - U8G_ESC_ADR(0), 0x000, 0x037, - U8G_ESC_ADR(1), 0x004, 0x007, - U8G_ESC_ADR(0), 0x000, 0x038, - U8G_ESC_ADR(1), 0x003, 0x003, - U8G_ESC_ADR(0), 0x000, 0x039, - U8G_ESC_ADR(1), 0x007, 0x007, - U8G_ESC_ADR(0), 0x000, 0x03c, - U8G_ESC_ADR(1), 0x005, 0x004, - U8G_ESC_ADR(0), 0x000, 0x03d, - U8G_ESC_ADR(1), 0x008, 0x008, - - U8G_ESC_ADR(0), 0x000, 0x050, /* Horizontal GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x051, /* Horizontal GRAM End Address: 239 */ - U8G_ESC_ADR(1), 0x000, 0x0EF, - U8G_ESC_ADR(0), 0x000, 0x052, /* Vertical GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x053, /* Vertical GRAM End Address: 319 */ - U8G_ESC_ADR(1), 0x001, 0x03F, - - U8G_ESC_ADR(0), 0x000, 0x060, /* Driver Output Control 2 */ - U8G_ESC_ADR(1), 0x0a7, 0x000, - U8G_ESC_ADR(0), 0x000, 0x061, /* Base Image Display Control: NDL,VLE, REV */ - U8G_ESC_ADR(1), 0x000, 0x001, - U8G_ESC_ADR(0), 0x000, 0x06a, /* Vertical Scroll Control */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x080, /* Partial Image 1 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x081, /* Partial Image 1 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x082, /* Partial Image 1 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x083, /* Partial Image 2 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x084, /* Partial Image 2 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x085, /* Partial Image 2 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x090, /* Panel Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x092, /* Panel Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, /* 0x006, 0x000 */ - - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, display ON */ - U8G_ESC_ADR(1), 0x001, 0x033, - - U8G_ESC_DLY(10), /* delay 10 ms */ - - /* write test pattern */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x022, /* Write Data to GRAM */ - U8G_ESC_ADR(1), 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_ili9325d_320x240_page_seq[] PROGMEM = { - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_high_byte(uint8_t color) -{ - uint8_t h; - h = color; - h &= 0x0e0; - h |= h>>3; - h &= 0x0f8; - color>>=2; - color &= 7; - h |= color; - return h; -} - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_low_byte(uint8_t color) -{ - uint8_t l; - l = color; - l <<= 3; - color &= 3; - color <<= 1; - l |= color; - return l; -} - - -uint8_t u8g_dev_ili9325d_320x240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - //for(;;) - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_init_seq); - - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - uint16_t y, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < pb->p.page_height; i ++ ) - { - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_page_seq); - u8g_WriteByte(u8g, dev, y >> 8 ); /* display ram (cursor) address high byte */ - u8g_WriteByte(u8g, dev, y & 255 ); /* display ram (cursor) address low byte */ - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0 ); - u8g_WriteByte(u8g, dev, 0x022 ); /* start gram data */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( j = 0; j < pb->width; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_high_byte(*ptr) ); - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_low_byte(*ptr) ); - - ptr++; - } - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_ili9325d_320x240_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_ili9325d_320x240_8h8_pb U8G_NOCOMMON = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_ili9325d_320x240_8h8_buf}; -u8g_dev_t u8g_dev_ili9325d_320x240_8bit U8G_NOCOMMON = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_port_d_wr_fn }; -//u8g_dev_t u8g_dev_ili9325d_320x240_8bit = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_parallel_fn }; - -//U8G_PB_DEV(u8g_dev_ili9325d_320x240_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ili9325d_320x240_fn, U8G_COM_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c deleted file mode 100644 index 47ba18d4e7..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - - u8g_dev_ks0108_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - ADDRESS = 0 (Command Mode) - 0x03f Display On - 0x0c0 Start Display at line 0 - 0x040 | y write to y address (y:0..63) - 0x0b8 | x write to page [0..7] - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ks0108_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(0), /* disable all chips */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ks0108_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ks0108_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, 64+(uint8_t *)pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ks0108_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ks0108_128x64_fast, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c deleted file mode 100644 index b7bf6755ed..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - - u8g_dev_lc7981_160x80.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 80 -#define PAGE_HEIGHT 8 - - -/* - code ideas: - https://github.com/vsergeev/embedded-drivers/tree/master/avr-lc7981 - data sheets: - http://www.lcd-module.de/eng/pdf/zubehoer/lc7981.pdf - http://www.lcd-module.de/pdf/grafik/w160-6.pdf -*/ - -static const uint8_t u8g_dev_lc7981_160x80_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_160x80_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_160x80_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_160x80_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c deleted file mode 100644 index 272b7c4cbd..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x128.c - - Hitachi Display SP14N002 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x128%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x128_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c deleted file mode 100644 index 781f1d90a7..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x64.c - - Tested with Nan Ya LM_J6_003_ - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c deleted file mode 100644 index d9ae9369fc..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_320x64.c - - Note: Requires 16 bit mode (Must be enabled in u8g.h) - - Tested with Varitronix MGLS32064-03.pdf - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 320 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS32064-03.pdf -*/ - -static const uint8_t u8g_dev_lc7981_320x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_320x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_320x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_320x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_320x64_fn, U8G_COM_FAST_PARALLEL); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c deleted file mode 100644 index 0e3907749c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - - u8g_dev_null.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_null(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: /* most often used command */ - break; - case U8G_DEV_MSG_SET_PIXEL: - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - break; - case U8G_DEV_MSG_PAGE_NEXT: - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return 1; -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c deleted file mode 100644 index 4cc0113797..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - - u8g_dev_pcd8544_84x48.c - - Display: Nokia 84x48 - - Status: Tested with PCF8812 Display - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcd8544_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_pcd8544_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_pcd8544_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_SW_SPI); - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c deleted file mode 100644 index 3ac57884f8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - - u8g_dev_pcf8812_96x65.c - - Display: Nokia 96x65 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - om6206 comaptible to pcf8812 ? - - Status: Tested - - - Display Controller Seen in - LPH7366 (9 pins, 84x48) PCD8544 Nokia 5110 / 5120 / 5130 / 5160 / 6110 / 6150 - LPH7677 (8 pins, 84x48) PCD8544 Nokia 3210 - LPH7779 (8 pins, 84x48) PCD8544 Nokia 3310 / 3315 / 3330 / 3110, also 3410? - ??? PCD8544 Nokia 5110 / 6110 - LPH7690 ? (96x65) PCF8455/OM6202 Nokia 3410 - LPH7690 ? (96x65?) SED1565/S1D15605 Nokia 7110 / 3510? - LPH7690 ??? Nokia 6210 - - - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 65 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcf8812_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x080 | 0x040, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_pcf8812_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcf8812_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_pcf8812_96x65_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_SW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c deleted file mode 100644 index 3b0bcd6253..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - - u8g_dev_sbn1661_122x32.c - - WG12232 display with 2xSBN1661 / SED1520 controller (122x32 display) - At the moment only available in the Arduino Environment - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 122 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_sbn1661_122x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - - U8G_ESC_CS(0), /* disable chip */ - - - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_sbn1661_122x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sbn1661_122x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, pb->buf); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, WIDTH/2+(uint8_t *)pb->buf); - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_sbn1661_122x32 , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sbn1661_122x32_fn, u8g_com_arduino_no_en_parallel_fn); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c deleted file mode 100644 index 8f294374b1..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - - u8g_dev_ssd1306_128x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - 23 Feb 2013: Fixed, Issue 147 - -*/ - - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (TESTED - WORKING 23.02.13), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x01f, /* Feb 23, 2013: 128x32 OLED: 0x01f, 128x64 OLED 0x03f */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 128x32 OLED: 0x002, 128x64 OLED 0x012 */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* select one init sequence here */ -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_univision_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit1_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit2_init_seq -#define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr. to 0 */ - 0x000, /* set lower 4 bit of the col adr. to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; -} - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_128x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SSD_I2C); - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c deleted file mode 100644 index a49b2d8064..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - - u8g_dev_ssd1306_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* 2012-05-27: page addressing mode */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_univision_init_seq -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit1_init_seq -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit2_init_seq -#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SSD_I2C); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c deleted file mode 100644 index d16013fb7c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - - u8g_dev_ssd1309_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* ssd1309 ini sequence*/ -static const uint8_t u8g_dev_ssd1309_128x64_init_seq[] PROGMEM={ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0xfd,0x12, /*Command Lock */ - 0xae, /*Set Display Off */ - 0xd5,0xa0, /*set Display Clock Divide Ratio/Oscillator Frequency */ - 0xa8,0x3f, /*Set Multiplex Ratio */ - 0x3d,0x00, /*Set Display Offset*/ - 0x40, /*Set Display Start Line*/ - 0xa1, /*Set Segment Re-Map*/ - 0xc8, /*Set COM Output Scan Direction*/ - 0xda,0x12, /*Set COM Pins Hardware Configuration*/ - 0x81,0xdf, /*Set Current Control */ - 0xd9,0x82, /*Set Pre-Charge Period */ - 0xdb,0x34, /*Set VCOMH Deselect Level */ - 0xa4, /*Set Entire Display On/Off */ - 0xa6, /*Set Normal/Inverse Display*/ - U8G_ESC_VCC(1), /*Power up VCC & Stabilized */ - U8G_ESC_DLY(50), - 0xaf, /*Set Display On */ - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ - #define u8g_dev_ssd1309_128x64_init_seq u8g_dev_ssd1309_128x64_init_seq - - - static const uint8_t u8g_dev_ssd1309_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1309_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1309_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SSD_I2C); - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c deleted file mode 100644 index 24b94ffc7e..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_bw.c - - 1-Bit (BW) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_1bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ssd1322_nhd31oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_HW_SPI); - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c deleted file mode 100644 index 5b509641c6..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_gr.c - - 2-Bit (4L) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_2bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1322_nhd31oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_HW_SPI); - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_gr_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_gr_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c deleted file mode 100644 index 95853bdf25..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_1bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_1bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -#ifdef OLD -static void _OLD_u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - cnt = 8; - do - { - d = 0; - if ( left & 1 ) - d |= 0x0f0; - if ( right & 1 ) - d |= 0x00f; - u8g_WriteByte(u8g, dev, d); - left >>= 1; - right >>= 1; - cnt--; - }while ( cnt > 0 ); -} -#endif - -static void u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - static uint8_t buf[8]; - cnt = 8; - do - { - d = 0; - if ( left & 128 ) - d |= 0x0f0; - if ( right & 128 ) - d |= 0x00f; - cnt--; - buf[cnt] = d; - left <<= 1; - right <<= 1; - }while ( cnt > 0 ); - u8g_WriteSequence(u8g, dev, 8, buf); -} - -static void u8g_dev_ssd1325_1bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_1bit_write_16_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -/* disabled, see bw_new.c */ -/* -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); -*/ - -/* -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; -*/ - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c deleted file mode 100644 index c9f4a51ad8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Horizontal architecture, completly rewritten - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_nhd_27_12864_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_prepare_row_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_prepare_row_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - //case U8G_DEV_MSG_IS_BBX_INTERSECTION: - // return u8g_pb_IsIntersection((u8g_pb_t *)(dev->dev_mem), (u8g_dev_arg_bbx_t *)arg); - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c deleted file mode 100644 index d00d18ec4f..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1325_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - cnt = 4; - do - { - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - u8g_WriteByte(u8g, dev, d); - left >>= 2; - right >>= 2; - cnt--; - }while ( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -//uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -//u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; - - -#endif /* OBSOLETE_CODE */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c deleted file mode 100644 index 2e61d9a57c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Rewritten with new architecture - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1), old values: 0x0a0 0x0a6 */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_gr_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c deleted file mode 100644 index 5e3b446749..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - - u8g_dev_ssd1327_96x96_gr.c - - 2-Bit (graylevel) Driver for SSD1327 Controller (OLED Display) - Tested with Seedstudio 96x96 Oled (LY120) - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 96 -#define XOFFSET 8 - -/* - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 -*/ -static const uint8_t u8g_dev_ssd1327_2bit_96x96_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0fd, 0x012, /* unlock display, usually not required because the display is unlocked after reset */ - 0x0ae, /* display off, sleep mode */ - 0x0a8, 0x05f, /* multiplex ratio: 0x05f * 1/64 duty */ - 0x0a1, 0x000, /* display start line */ - 0x0a2, 0x060, /* display offset, shift mapping ram counter */ - //0x0a2, 0x04c, /* NHD: display offset, shift mapping ram counter */ - 0x0a0, 0x046, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - //0x0a0, 0x056, /* NHD: remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x0ab, 0x001, /* Enable internal VDD regulator (RESET) */ - 0x081, 0x053, /* contrast, brightness, 0..128, Newhaven: 0x040, LY120 0x053, 0x070 seems also ok */ - 0x0b1, 0x051, /* phase length */ - 0x0b3, 0x001, /* set display clock divide ratio/oscillator frequency */ - 0x0b9, /* use linear lookup table */ -#if 0 - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 -#endif - 0x0bc, 0x008, /* pre-charge voltage level */ - 0x0be, 0x007, /* VCOMH voltage */ - 0x0b6, 0x001, /* second precharge */ - 0x0d5, 0x062, /* enable second precharge, internal vsl (bit0 = 0) */ - -#if 0 - // the following commands are not used by the SeeedGrayOLED sequence */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ -#endif - - 0x0a5, /* all pixel on */ - //0x02e, /* no scroll (according to SeeedGrayOLED sequence) */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - - 0x015, /* column address... */ - 0x008, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - - 0x075, /* row address... */ - 0x008, - 0x05f, - - U8G_ESC_ADR(1), /* data mode */ - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1327_2bit_96x96_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - XOFFSET, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1327_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1327_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1327_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - static uint8_t buf[4]; - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = 0; - cnt = 0; - do - { - if ( left == 0 && right == 0 ) - break; - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - buf[cnt] = d; - left >>= 2; - right >>= 2; - cnt++; - }while ( cnt < 4 ); - u8g_WriteSequence(u8g, dev, 4, buf); -} - -static void u8g_dev_ssd1327_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1327_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1327_96x96_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1327_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1327_96x96_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_i2c , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SSD_I2C); - -#define DWIDTH (2*WIDTH) -uint8_t u8g_dev_ssd1327_96x96_2x_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1327_96x96_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1327_96x96_2x_buf}; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c deleted file mode 100644 index 01fc9fc0cb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - - u8g_dev_st7565_64128n.c (Displaytech) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_64128n_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0A2, /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ - 0x0A0, /* Normal ADC Select (according to Displaytech 64128N datasheet) */ - - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* Display start line for Displaytech 64128N */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x010, /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x01e, /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ - - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0x10 */ - 0x000, /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_64128n_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_64128n_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c deleted file mode 100644 index 095ef369c1..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - - u8g_dev_st7565_dogm128.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_dogm128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal (none reverse) */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0a4, /* normal display (not all on) */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm128_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_HW_SPI); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c deleted file mode 100644 index a76d54b3fd..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_st7565_dogm132.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 132 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_dogm132_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x01f, /* contrast value, EA default: 0x01f */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - -#ifdef OBSOLETE_DOGM128 - 0x040, /* set display start line */ - 0x0c8, /* set scan direction inverse operation */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ -#endif - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm132_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm132_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm132_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c deleted file mode 100644 index ab8ed39b64..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_st7565_lm6059.c (Adafruit display) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6059_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit, 0x0a2 does not work */ - /* the LM6059 vs LM6063, ADC and SHL have inverted settings */ - 0x0a0, /* 0x0a1: ADC set to normal (suggested for the LM6059), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x060, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x001, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6059_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6059_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6059_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_HW_SPI); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c deleted file mode 100644 index 47ccb1ec70..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_dev_st7565_lm6063.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -#ifdef OLD_ADAFRUIT_CODE -static const uint8_t OLD_u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select / 17 Jan: seems to be a bug, must be 0x0c0 */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - /*0x0f8,*/ /* set booster ratio to */ - /*0x000, */ /* 4x */ - /*0x027,*/ /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; -#endif - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit */ - 0x0a1, /* 0x0a1: ADC set to reverse (suggested for the LM6063), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c0, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6063_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6063_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6063_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6063_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_HW_SPI); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c deleted file mode 100644 index ed80a06931..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12832.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_c12832_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set, values: a0=normal, a1=reverse */ - 0x0c8, /* common output mode: c0=normal, c8=reverse */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x00a, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_c12832_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_PARALLEL); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c deleted file mode 100644 index 5e3f8b9fe8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12864.c - - Support for the NHD-C12864A1Z-FSB-FBW (Newhaven Display) - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_nhd_c12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(10), /* do reset low pulse with (10*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x008, /* contrast: 0x008 is a good value for NHD C12864, Nov 2012: User reports that 0x1a is much better */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_nhd_c12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr to 4 (NHD C12864) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_nhd_c12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_HW_SPI); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c deleted file mode 100644 index 4851017aa6..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - - u8g_dev_st7687_c144mvgd.c (1.44" TFT) - - Status: Started, but not finished - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -#ifdef FIRST_VERSION -/* -see also: read.pudn.com/downloads115/sourcecode/app/484503/LCM_Display.c__.htm -http://en.pudn.com/downloads115/sourcecode/app/detail484503_en.html -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x001, /* A0=0, SW reset */ - U8G_ESC_DLY(200), /* delay 200 ms */ - - 0x0d7, /* EEPROM data auto re-load control */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, /* ARD = 1 */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e0, /* EEPROM control in */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - -#ifdef NOT_REQUIRED - 0x0fa, /* EEPROM function selection 8.1.66 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#endif - - 0x0e3, /* Read from EEPROM, 8.1.55 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e1, /* EEPROM control out, 8.1.53 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - //0x028, /* display off */ - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c0, /* Vop setting, 8.1.42 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x001, /* 3.6 + 256*0.04 = 13.84 Volt */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c3, /* Bias selection, 8.1.45 */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c4, /* Booster setting 8.1.46 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* ??? */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0cb, /* FV3 with Booster x2 control, 8.1.47 */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* Memory data access control, 8.1.28 */ - U8G_ESC_ADR(1), /* data mode */ - 0x080, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b5, /* N-line control, 8.1.37 */ - U8G_ESC_ADR(1), /* data mode */ - 0x089, - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0d0, /* Analog circuit setting, 8.1.49 */ - U8G_ESC_ADR(1), /* data mode */ - 0x01d, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b7, /* Com/Seg Scan Direction, 8.1.38 */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x025, /* Write contrast, 8.1.17 */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b0, /* Display Duty setting, 8.1.34 */ - U8G_ESC_ADR(1), /* data mode */ - 0x07f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f0, /* Frame Freq. in Temp range A,B,C and D, 8.1.59 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - 0x00c, - 0x00c, - 0x015, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x005, - 0x008, - 0x00a, - 0x00c, - 0x00e, - 0x010, - 0x011, - 0x012, - 0x013, - 0x014, - 0x015, - 0x016, - 0x018, - 0x01a, - 0x01b, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x000, - 0x000, - 0x000, - 0x033, - 0x055, - 0x055, - 0x055, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x029, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#else - -/* -http://www.waitingforfriday.com/images/e/e3/FTM144D01N_test.zip -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(5), /* delay 5 ms */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x026, /* SET_GAMMA_CURVE */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f2, /* GAM_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* enable gamma adj */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0e0, /* POSITIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x3f, - 0x25, - 0x1c, - 0x1e, - 0x20, - 0x12, - 0x2a, - 0x90, - 0x24, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0e1, /* NEGATIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x20, - 0x20, - 0x20, - 0x20, - 0x05, - 0x00, - 0x15, - 0xa7, - 0x3d, - 0x18, - 0x25, - 0x2a, - 0x2b, - 0x2b, - 0x3a, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b1, /* FRAME_RATE_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, /* DIVA = 8 */ - 0x008, /* VPA = 8 */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0b4, /* DISPLAY_INVERSION */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* NLA = 1, NLB = 1, NLC = 1 (all on Frame Inversion) */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c0, /* POWER_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x00a, /* VRH = 10: GVDD = 4.30 */ - 0x002, /* VC = 2: VCI1 = 2.65 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c1, /* POWER_CONTROL2 */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* BT = 2: AVDD = 2xVCI1, VCL = -1xVCI1, VGH = 5xVCI1, VGL = -2xVCI1 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* VCOM_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* VMH = 80: VCOMH voltage = 4.5 */ - 0x05b, /* VML = 91: VCOML voltage = -0.225 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c7, /* VCOM_OFFSET_CONTROL */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, /* nVM = 0, VMF = 64: VCOMH output = VMH, VCOML output = VML */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02a, /* SET_COLUMN_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02b, /* SET_PAGE_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* SET_ADDRESS_MODE */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Select display orientation */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x029, /* display on */ - - 0x02c, /* write start */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#endif - - - - -/* calculate bytes for Type B 4096 color display */ -static uint8_t get_byte_1(uint8_t v) -{ - v >>= 4; - v &= 0x0e; - return v; -} - -static uint8_t get_byte_2(uint8_t v) -{ - uint8_t w; - w = v; - w &= 3; - w = (w<<2) | w; - v <<= 3; - v &= 0x0e0; - w |= v; - return w; -} - -uint8_t u8g_dev_st7687_c144mvgd_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7687_c144mvgd_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02a ); /* Column address set 8.1.20 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, 0x000 ); /* x0 */ - u8g_WriteByte(u8g, dev, WIDTH-1 ); /* x1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02b ); /* Row address set 8.1.21 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, y ); /* y0 */ - u8g_WriteByte(u8g, dev, y+PAGE_HEIGHT-1 ); /* y1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02c ); /* Memory write 8.1.22 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - - for( j = 0; j < WIDTH; j ++ ) - { - u8g_WriteByte(u8g, dev, get_byte_1(*ptr) ); - u8g_WriteByte(u8g, dev, get_byte_2(*ptr) ); - ptr++; - } - } - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_st7687_c144mvgd_8h8_buf[WIDTH*8] U8G_NOCOMMON ; -u8g_pb_t u8g_st7687_c144mvgd_8h8_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_st7687_c144mvgd_8h8_buf}; - -u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, u8g_com_arduino_sw_spi_fn }; - -u8g_dev_t u8g_dev_st7687_c144mvgd_8bit = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c deleted file mode 100644 index b0b18d34d2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - - u8g_dev_st7565_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_128x64_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7920_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_FAST_PARALLEL); - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_128x64_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_128x64_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_128x64_4x_buf}; -u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_8bit = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_FAST_PARALLEL }; - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c deleted file mode 100644 index 28535e0cd2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_st7920_192x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 192 -#define HEIGHT 32 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_192x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_192x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_192x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_192x32_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_8bit, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_FAST_PARALLEL); - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_192x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_192x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_192x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_8bit = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c deleted file mode 100644 index 129fc748fb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - - u8g_dev_st7920_202x32.c - tested with CFAG20232 - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 202 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_202x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_202x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_202x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_202x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_FAST_PARALLEL); - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_202x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_202x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_202x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_8bit = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_FAST_PARALLEL }; - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c deleted file mode 100644 index c1626ccc18..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_dev_t6963_128x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x64_8bit = { u8g_dev_t6963_128x64_fn, &u8g_dev_t6963_128x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c deleted file mode 100644 index 4a28edbcfe..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x128.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x128_8bit = { u8g_dev_t6963_240x128_fn, &u8g_dev_t6963_240x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c deleted file mode 100644 index 6d209d2120..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x64_8bit = { u8g_dev_t6963_240x64_fn, &u8g_dev_t6963_240x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c deleted file mode 100644 index 17689dc4a4..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - - u8g_dev_tls8204_84x48.c - - Display: Nokia 84x48 - - Status: Tested with TLS8204V12 Display by Olimex MOD-LCD3310 - - Contributed: http://code.google.com/p/u8glib/issues/detail?id=126 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_tls8204_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x04 | !!((66-1)&(1u<<6)), - 0x40 | ((66-2) & ((1u<<6)-1)), - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_tls8204_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_tls8204_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_WriteByte(u8g, dev, 0x020); /* command mode, extended function set */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_tls8204_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tls8204_fn, U8G_COM_SW_SPI); - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c deleted file mode 100644 index b7111d5c89..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - - u8g_dev_uc1610_dogxl160.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 104 - -static const uint8_t u8g_dev_uc1610_dogxl160_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0f1, /* set display height-1 */ - 0x067, /* */ - 0x0c0, /* SEG & COM normal */ - 0x040, /* set display start line */ - 0x050, /* */ - 0x02b, /* set panelloading */ - 0x0eb, /* set bias 1/2 */ - 0x081, /* set contrast */ - 0x05f, /* */ - 0x089, /* set auto increment */ - 0x0a6, /* normal pixel mode */ - 0x0d3, /* 0xd3=40% RMS separation for gray levels */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1610_dogxl160_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_1to2(uint8_t n) -{ - register uint8_t a,b,c; - a = n; - a &= 1; - n <<= 1; - b = n; - b &= 4; - n <<= 1; - c = n; - c &= 16; - n <<= 1; - n &= 64; - n |= a; - n |= b; - n |= c; - n |= n << 1; - return n; -} - -uint8_t u8g_dev_uc1610_dogxl160_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf+WIDTH))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+3) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf+WIDTH))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf) == 0 ) - return 0; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf+WIDTH) == 0 ) - return 0; - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_sw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_hw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_bw_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_HW_SPI }; - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_gr_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c deleted file mode 100644 index 853d8c0344..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - - u8g_dev_uc1701_dogs102.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 102 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_dogs102_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x027, /* regulator, booster and follower */ - 0x081, /* set contrast */ - 0x00e, /* contrast value, EA default: 0x010, previous value for S102: 0x0e */ - 0x0fa, /* Set Temp compensation */ - 0x090, /* 0.11 deg/c WP Off WC Off*/ - 0x0a4, /* normal display */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_dogs102_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_dogs102_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_dogs102_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_dogs102_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_HW_SPI); - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c deleted file mode 100644 index 55b2f9b71f..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - - u8g_dev_uc1701_mini12864.c (dealextreme) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_uc1701_mini12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set to reverse */ - 0x0c8, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x027, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1701_mini12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1701_mini12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_mini12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_mini12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c deleted file mode 100644 index 6c35fdf237..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - - u8g_ellipse.c - - Utility to draw empty and filled ellipses. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library as of 02/29/12 - Adapted from Bresenham's Algorithm and the following websites: - http://free.pages.at/easyfilter/bresenham.html - http://homepage.smc.edu/kennedy_john/belipse.pdf - -*/ - -#include "u8g.h" - - -#ifdef WORK_IN_PROGRESS - -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1) -{ - int a = abs(x1 - x0); - int b = abs(y1 - y0); //get diameters - int b1 = b&1; - long dx = 4*(1-a)*b*b; - long dy = 4*(b1+1)*a*a; - long err = dx+dy+b1*a*a; - long e2; - - if (x0 > x1) { x0 = x1; x1 += a; } - if (y0 > y1) { y0 = y1; } - y0 += (b+1)/2; - y1 = y0-b1; - a *= 8*a; - b1 = 8*b*b; - - do { - u8g_DrawPixel(u8g, x1, y0); - u8g_DrawPixel(u8g, x0, y0); - u8g_DrawPixel(u8g, x0, y1); - u8g_DrawPixel(u8g, x1, y1); - e2 = 2*err; - if (e2 >= dx) { - x0++; - x1--; - err += dx += b1; - } - if (e2 <= dy) { - y0++; - y1--; - err += dy += a; - } - } while (x0 <= x1); - - while (y0-y1 < b) { - u8g_DrawPixel(u8g, x0-1, y0); - u8g_DrawPixel(u8g, x1+1, y0++); - u8g_DrawPixel(u8g, x0-1, y1); - u8g_DrawPixel(u8g, x1+1, y1--); - } -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t xr, u8g_uint_t yr) -{ - u8g_DrawPixel(u8g, x0, y0+yr); - u8g_DrawPixel(u8g, x0, y0-yr); - u8g_DrawPixel(u8g, x0+xr, y0); - u8g_DrawPixel(u8g, x0-xr, y0); -} - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c deleted file mode 100644 index bfdc0b28a3..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c +++ /dev/null @@ -1,1422 +0,0 @@ -/* - - u8g_font.c - - U8G Font High Level Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* font api */ - -/* pointer to the start adress of the glyph, points to progmem area */ -typedef void * u8g_glyph_t; - -/* size of the font data structure, there is no struct or class... */ -#define U8G_FONT_DATA_STRUCT_SIZE 17 - -/* - ... instead the fields of the font data structure are accessed directly by offset - font information - offset - 0 font format - 1 FONTBOUNDINGBOX width unsigned - 2 FONTBOUNDINGBOX height unsigned - 3 FONTBOUNDINGBOX x-offset signed - 4 FONTBOUNDINGBOX y-offset signed - 5 capital A height unsigned - 6 start 'A' - 8 start 'a' - 10 encoding start - 11 encoding end - 12 descent 'g' negative: below baseline - 13 font max ascent - 14 font min decent negative: below baseline - 15 font xascent - 16 font xdecent negative: below baseline - -*/ - -/* use case: What is the width and the height of the minimal box into which string s fints? */ -void u8g_font_GetStrSize(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); -void u8g_font_GetStrSizeP(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); - -/* use case: lower left edge of a minimal box is known, what is the correct x, y position for the string draw procedure */ -void u8g_font_AdjustXYToDraw(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); -void u8g_font_AdjustXYToDrawP(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); - -/* use case: Baseline origin known, return minimal box */ -void u8g_font_GetStrMinBox(u8g_t *u8g, const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - -/* procedures */ - -/*========================================================================*/ -/* low level byte and word access */ - -/* removed NOINLINE, because it leads to smaller code, might also be faster */ -//static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - font += offset; - return u8g_pgm_read( (u8g_pgm_uint8_t *)font ); -} - -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - uint16_t pos; - font += offset; - pos = u8g_pgm_read( (u8g_pgm_uint8_t *)font ); - font++; - pos <<= 8; - pos += u8g_pgm_read( (u8g_pgm_uint8_t *)font); - return pos; -} - -/*========================================================================*/ -/* direct access on the font */ - -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) -{ - return u8g_font_get_byte(font, 0); -} - -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) -{ - switch(u8g_font_GetFormat(font)) - { - case 0: return 6; - case 1: return 3; - } - return 3; -} - -static uint8_t u8g_font_GetBBXWidth(const void *font) -{ - return u8g_font_get_byte(font, 1); -} - -static uint8_t u8g_font_GetBBXHeight(const void *font) -{ - return u8g_font_get_byte(font, 2); -} - -static int8_t u8g_font_GetBBXOffX(const void *font) -{ - return u8g_font_get_byte(font, 3); -} - -static int8_t u8g_font_GetBBXOffY(const void *font) -{ - return u8g_font_get_byte(font, 4); -} - -uint8_t u8g_font_GetCapitalAHeight(const void *font) -{ - return u8g_font_get_byte(font, 5); -} - -uint16_t u8g_font_GetEncoding65Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding65Pos(const void *font) -{ - return u8g_font_get_word(font, 6); -} - -uint16_t u8g_font_GetEncoding97Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding97Pos(const void *font) -{ - return u8g_font_get_word(font, 8); -} - -uint8_t u8g_font_GetFontStartEncoding(const void *font) -{ - return u8g_font_get_byte(font, 10); -} - -uint8_t u8g_font_GetFontEndEncoding(const void *font) -{ - return u8g_font_get_byte(font, 11); -} - -int8_t u8g_font_GetLowerGDescent(const void *font) -{ - return u8g_font_get_byte(font, 12); -} - -int8_t u8g_font_GetFontAscent(const void *font) -{ - return u8g_font_get_byte(font, 13); -} - -int8_t u8g_font_GetFontDescent(const void *font) -{ - return u8g_font_get_byte(font, 14); -} - -int8_t u8g_font_GetFontXAscent(const void *font) -{ - return u8g_font_get_byte(font, 15); -} - -int8_t u8g_font_GetFontXDescent(const void *font) -{ - return u8g_font_get_byte(font, 16); -} - - -/* return the data start for a font and the glyph pointer */ -static uint8_t *u8g_font_GetGlyphDataStart(const void *font, u8g_glyph_t g) -{ - return ((u8g_fntpgm_uint8_t *)g) + u8g_font_GetFontGlyphStructureSize(font); -} - -/* calculate the overall length of the font, only used to create the picture for the google wiki */ -size_t u8g_font_GetSize(const void *font) -{ - uint8_t *p = (uint8_t *)(font); - uint8_t font_format = u8g_font_GetFormat(font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(font); - uint8_t start, end; - uint8_t i; - uint8_t mask = 255; - - start = u8g_font_GetFontStartEncoding(font); - end = u8g_font_GetFontEndEncoding(font); - - if ( font_format == 1 ) - mask = 15; - - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - - i = start; - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - - return p - (uint8_t *)font; -} - -/*========================================================================*/ -/* u8g interface, font access */ - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g) -{ - return u8g_font_GetBBXWidth(u8g->font); -} - -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g) -{ - return u8g_font_GetBBXHeight(u8g->font); -} - -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) -{ - return u8g_font_GetBBXOffX(u8g->font); -} - -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) -{ - return u8g_font_GetBBXOffY(u8g->font); -} - -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) U8G_NOINLINE; -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) -{ - return u8g_font_GetCapitalAHeight(u8g->font); -} - -/*========================================================================*/ -/* glyph handling */ - -static void u8g_CopyGlyphDataToCache(u8g_t *u8g, u8g_glyph_t g) -{ - uint8_t tmp; - switch( u8g_font_GetFormat(u8g->font) ) - { - case 0: - /* - format 0 - glyph information - offset - 0 BBX width unsigned - 1 BBX height unsigned - 2 data size unsigned (BBX width + 7)/8 * BBX height - 3 DWIDTH signed - 4 BBX xoffset signed - 5 BBX yoffset signed - byte 0 == 255 indicates empty glyph - */ - u8g->glyph_width = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_height = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_dx = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 3 ); - u8g->glyph_x = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 4 ); - u8g->glyph_y = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 5 ); - break; - case 1: - default: - /* -format 1 - 0 BBX xoffset signed --> upper 4 Bit - 0 BBX yoffset signed --> lower 4 Bit - 1 BBX width unsigned --> upper 4 Bit - 1 BBX height unsigned --> lower 4 Bit - 2 data size unsigned -(BBX width + 7)/8 * BBX height --> lower 4 Bit - 2 DWIDTH signed --> upper 4 Bit - byte 0 == 255 indicates empty glyph - */ - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_y = tmp & 15; - u8g->glyph_y-=2; - tmp >>= 4; - u8g->glyph_x = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_height = tmp & 15; - tmp >>= 4; - u8g->glyph_width = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 2 ); - tmp >>= 4; - u8g->glyph_dx = tmp; - - - break; - } -} - -//void u8g_FillEmptyGlyphCache(u8g_t *u8g) U8G_NOINLINE; -static void u8g_FillEmptyGlyphCache(u8g_t *u8g) -{ - u8g->glyph_dx = 0; - u8g->glyph_width = 0; - u8g->glyph_height = 0; - u8g->glyph_x = 0; - u8g->glyph_y = 0; -} - -/* - Find (with some speed optimization) and return a pointer to the glyph data structure - Also uncompress (format 1) and copy the content of the data structure to the u8g structure -*/ -u8g_glyph_t u8g_GetGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - uint8_t *p = (uint8_t *)(u8g->font); - uint8_t font_format = u8g_font_GetFormat(u8g->font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(u8g->font); - uint8_t start, end; - uint16_t pos; - uint8_t i; - uint8_t mask = 255; - - if ( font_format == 1 ) - mask = 15; - - start = u8g_font_GetFontStartEncoding(u8g->font); - end = u8g_font_GetFontEndEncoding(u8g->font); - - pos = u8g_font_GetEncoding97Pos(u8g->font); - if ( requested_encoding >= 97 && pos > 0 ) - { - p+= pos; - start = 97; - } - else - { - pos = u8g_font_GetEncoding65Pos(u8g->font); - if ( requested_encoding >= 65 && pos > 0 ) - { - p+= pos; - start = 65; - } - else - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - } - - if ( requested_encoding > end ) - { - u8g_FillEmptyGlyphCache(u8g); - return NULL; /* not found */ - } - - i = start; - if ( i <= end ) - { - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - if ( i == requested_encoding ) - { - u8g_CopyGlyphDataToCache(u8g, p); - return p; - } - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - } - - u8g_FillEmptyGlyphCache(u8g); - - return NULL; -} - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) != NULL ) - return 1; - return 0; -} - -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) == NULL ) - return 0; /* should never happen, so return something */ - return u8g->glyph_dx; -} - - -/*========================================================================*/ -/* glyph drawing procedures */ - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: left baseline position of the glyph -*/ -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - u8g_glyph_t g; - uint8_t w, h, i, j; - const u8g_pgm_uint8_t *data; - uint8_t bytes_per_line; - u8g_uint_t ix, iy; - - g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - w = u8g->glyph_width; - h = u8g->glyph_height; - - bytes_per_line = w; - bytes_per_line += 7; - bytes_per_line /= 8; - - data = u8g_font_GetGlyphDataStart(u8g->font, g); - - switch(dir) - { - case 0: - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - //u8g_DrawFrame(u8g, x, y-h+1, w, h); - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - break; - case 1: - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - //printf("enc %d, dir %d, x %d, y %d, w %d, h %d\n", encoding, dir, x, y, w, h); - //u8g_DrawFrame(u8g, x, y, h, w); - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - break; - case 2: - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - if ( u8g_IsBBXIntersection(u8g, x-w-1, y, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - break; - case 3: - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-h-1, y-w-1, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - break; - } - return u8g->glyph_dx; -} -#endif - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_glyph(u8g, x, y, encoding); -} - -int8_t u8g_draw_glyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 1, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph90(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - - if ( u8g_IsBBXIntersection(u8g, x-(w-1), y, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 2, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph180(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-(h-1), y-(w-1), h, w) == 0 ) - return u8g->glyph_dx; - - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 3, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x += u8g->font_calc_vref(u8g); - return u8g_draw_glyph270(u8g, x, y, encoding); -} - - - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: lower left corner of the font bounding box -*/ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - /* TODO: apply "dir" */ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawGlyphDir(u8g, x, y, dir, encoding); -} -#endif - -/*========================================================================*/ -/* string drawing procedures */ - - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph90(u8g, x, y, *s); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph180(u8g, x, y, *s); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph270(u8g, x, y, *s); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - switch(dir) - { - case 0: - return u8g_DrawStr(u8g, x, y, s); - case 1: - return u8g_DrawStr90(u8g, x, y, s); - case 2: - return u8g_DrawStr180(u8g, x, y, s); - case 3: - return u8g_DrawStr270(u8g, x, y, s); - } - return 0; -} - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - y += u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_draw_glyph(u8g, x, y, c); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph90(u8g, x, y, u8g_pgm_read(s)); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph180(u8g, x, y, u8g_pgm_read(s)); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph270(u8g, x, y, u8g_pgm_read(s)); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawStrDir(u8g, x, y, dir, s); -} - -/* still used by picgen.c, dir argument is ignored */ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - u8g_draw_glyph(u8g, x, y, encoding); -} - - -/*========================================================================*/ -/* set ascent/descent for reference point calculation */ - -void u8g_UpdateRefHeight(u8g_t *u8g) -{ - uint16_t ls; - if ( u8g->font == NULL ) - return; - if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_TEXT ) - { - u8g->font_ref_ascent = u8g_font_GetCapitalAHeight(u8g->font); - u8g->font_ref_descent = u8g_font_GetLowerGDescent(u8g->font); - } - else if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_XTEXT ) - { - u8g->font_ref_ascent = u8g_font_GetFontXAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontXDescent(u8g->font); - } - else - { - u8g->font_ref_ascent = u8g_font_GetFontAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontDescent(u8g->font); - } - - ls = u8g->font_ref_ascent - u8g->font_ref_descent; - if ( u8g->font_line_spacing_factor != 64 ) - { - ls &= 255; - ls *= u8g->font_line_spacing_factor; - ls >>= 6; - } - u8g->line_spacing = ls; -} - -void u8g_SetFontRefHeightText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_TEXT; - u8g_UpdateRefHeight(u8g); -} - -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g_UpdateRefHeight(u8g); -} - - -void u8g_SetFontRefHeightAll(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_ALL; - u8g_UpdateRefHeight(u8g); -} - -/* factor = 64: linespaceing == ascent and descent */ -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor) -{ - u8g->font_line_spacing_factor = factor; - u8g_UpdateRefHeight(u8g); -} - - - -/*========================================================================*/ -/* callback procedures to correct the y position */ - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetFontPosBaseline(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_font; -} - - -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g) -{ - /* y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); */ - return (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); -} - -void u8g_SetFontPosBottom(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_bottom; -} - -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g) -{ - u8g_uint_t tmp; - /* reference pos is one pixel above the upper edge of the reference glyph */ - - /* - y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - y++; - */ - tmp = (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - tmp++; - return tmp; -} - -void u8g_SetFontPosTop(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_top; -} - -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g) -{ - int8_t tmp; - tmp = u8g->font_ref_ascent; - tmp -= u8g->font_ref_descent; - tmp /= 2; - tmp += u8g->font_ref_descent; - /* y += (u8g_uint_t)(u8g_int_t)(tmp); */ - return tmp; -} - -void u8g_SetFontPosCenter(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_center; -} - -/*========================================================================*/ -/* string pixel width calculation */ - -char u8g_font_get_char(const void *s) -{ - return *(const char *)(s); -} - -char u8g_font_get_charP(const void *s) -{ - return u8g_pgm_read(s); -} - -typedef char (*u8g_font_get_char_fn)(const void *s); - - -u8g_uint_t u8g_font_calc_str_pixel_width(u8g_t *u8g, const char *s, u8g_font_get_char_fn get_char ) -{ - u8g_uint_t w; - uint8_t enc; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - w = 0; - - enc = get_char(s); - - /* check for empty string, width is already 0 */ - if ( enc == '\0' ) - { - return w; - } - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - /* if *s is not inside the font, then the cached parameters of the glyph are all zero */ - u8g_GetGlyph(u8g, enc); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - w = -u8g->glyph_x; - for(;;) - { - - /* check and stop if the end of the string is reached */ - s++; - if ( get_char(s) == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - w += u8g->glyph_dx; - - /* store the encoding in a local variable, used also after the for(;;) loop */ - enc = get_char(s); - - /* load the next glyph information */ - u8g_GetGlyph(u8g, enc); - } - - /* finally calculate the width of the last char */ - /* here is another exception, if the last char is a black, use the dx value instead */ - if ( enc != ' ' ) - { - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - w += u8g->glyph_width; - w += u8g->glyph_x; - } - else - { - w += u8g->glyph_dx; - } - - - return w; -} - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s) -{ - return u8g_font_calc_str_pixel_width(u8g, s, u8g_font_get_char); -} - -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - return u8g_font_calc_str_pixel_width(u8g, (const char *)s, u8g_font_get_charP); -} - -int8_t u8g_GetStrX(u8g_t *u8g, const char *s) -{ - u8g_GetGlyph(u8g, *s); - return u8g->glyph_x; -} - -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_GetGlyph(u8g, u8g_pgm_read(s)); - return u8g->glyph_x; -} - -/*========================================================================*/ -/* string width calculation */ - -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = *s; - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = u8g_pgm_read(s); - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -/*========================================================================*/ -/* calculation of font/glyph/string characteristics */ - - -/* - Description: - Calculate parameter for the minimal bounding box on a given string - Output - buf->y_min extend of the lower left edge if the string below (y_min<0) or above (y_min>0) baseline (descent) - buf->y_max extend of the upper left edge if the string below (y_min<0) or above (y_min>0) baseline (ascent) - buf->w the width of the string -*/ -struct u8g_str_size_struct -{ - int8_t y_min; /* descent */ - int8_t y_max; /* ascent */ - int8_t x, y; /* the reference point of the font (negated!) */ - u8g_uint_t w; /* width of the overall string */ -}; -typedef struct u8g_str_size_struct u8g_str_size_t; - -static void u8g_font_calc_str_min_box(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - /* u8g_glyph_t g; */ - int8_t tmp; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - buf->w = 0; - - /* check for empty string, width is already 0, but also reset y_min and y_max to 0 */ - if ( *s == '\0' ) - { - buf->y_min = 0; - buf->y_max = 0; - buf->x = 0; - buf->y = 0; - return; - } - - /* reset y_min to the largest possible value. Later we search for the smallest value */ - /* y_min contains the position [pixel] of the lower left edge of the glyph above (y_min>0) or below (y_min<0) baseline */ - buf->y_min = 127; - /* reset y_max to the smallest possible value. Later we search for the highest value */ - /* y_max contains the position [pixel] of the upper left edge of the glyph above (y_max>0) or below (y_max<0) baseline */ - buf->y_max = -128; - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - u8g_GetGlyph(u8g, *s); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - // buf->w = - u8g_font_GetGlyphBBXOffX(u8g->font, g); - buf->w = - u8g->glyph_x; - - /* Also copy the position of the first glyph. This is the reference point of the string (negated) */ - buf->x = u8g->glyph_x; - buf->y = u8g->glyph_y; - - for(;;) - { - - /* calculated y position of the upper left corner (y_max) and lower left corner (y_min) of the string */ - /* relative to the base line */ - - tmp = u8g->glyph_y; - if ( buf->y_min > tmp ) - buf->y_min = tmp; - - tmp +=u8g->glyph_height; - if ( buf->y_max < tmp ) - buf->y_max = tmp; - - /* check and stop if the end of the string is reached */ - s++; - if ( *s == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - buf->w += u8g->glyph_dx; - - /* load the next glyph information */ - u8g_GetGlyph(u8g, *s); - } - - /* finally calculate the width of the last char */ - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - buf->w += u8g->glyph_width; - // buf->w += u8g_font_GetGlyphBBXOffX(u8g->font, g); - - buf->w += u8g->glyph_x; -} - -/* calculate minimal box */ -void u8g_font_box_min(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - u8g_font_calc_str_min_box(u8g, s, buf); -} - -/* calculate gA box, but do not calculate the overall width */ -void u8g_font_box_left_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - -/* calculate gA box, including overall width */ -void u8g_font_box_all_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - - -static void u8g_font_get_str_box_fill_args(u8g_t *u8g, const char *s, u8g_str_size_t *buf, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - /* - u8g_glyph_t g; - g = - */ - u8g_GetGlyph(u8g, *s); - *x += u8g->glyph_x; - *width = buf->w; - *y -= buf->y_max; - /* +1 because y_max is a height, this compensates the next step */ - //*y += 1; - /* because the reference point is one below the string, this compensates the previous step */ - //*y -= 1; - *height = buf->y_max; - *height -= buf->y_min; -} - - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - u8g_font_calc_str_min_box(u8g, s, &buf); - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - - -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - uint8_t cap_a; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - cap_a = u8g_font_GetCapitalAHeight(u8g->font); - u8g_font_calc_str_min_box(u8g, s, &buf); - if ( buf.y_max < cap_a ) - buf.y_max = cap_a; - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font) -{ - if ( u8g->font != font ) - { - u8g->font = font; - u8g_UpdateRefHeight(u8g); - u8g_SetFontPosBaseline(u8g); - } -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c deleted file mode 100644 index dca21c5a3f..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c +++ /dev/null @@ -1,84486 +0,0 @@ -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03b[826] U8G_SECTION(".progmem.u8g_font_04b_03b") = { - 1,5,6,0,255,5,0,250,1,240,32,255,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,2,0,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03bn[130] U8G_SECTION(".progmem.u8g_font_04b_03bn") = { - 1,5,6,0,255,5,0,0,0,0,42,57,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,240,144,144,144,240,2,37,53,192,64,64, - 64,64,2,69,85,240,16,240,128,240,2,69,85,240,16,240, - 16,240,2,69,85,144,144,144,240,16,2,69,85,240,128,240, - 16,240,2,69,85,224,128,240,144,240,2,69,85,240,16,32, - 64,64,2,69,85,240,144,240,144,240,2,69,85,240,144,240, - 16,112}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03br[696] U8G_SECTION(".progmem.u8g_font_04b_03br") = { - 1,5,6,0,255,5,0,250,1,240,32,127,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03[859] U8G_SECTION(".progmem.u8g_font_04b_03") = { - 1,5,7,0,254,5,0,251,1,242,32,255,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,0,64,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03n[130] U8G_SECTION(".progmem.u8g_font_04b_03n") = { - 1,5,7,0,254,5,0,0,0,0,42,57,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,96,144,144,144,96,2,37,53,192,64,64, - 64,64,2,69,85,224,16,96,128,240,2,69,85,224,16,96, - 16,224,2,69,85,32,96,160,240,32,2,69,85,240,128,224, - 16,224,2,69,85,96,128,224,144,96,2,69,85,240,16,32, - 64,64,2,69,85,96,144,96,144,96,2,69,85,96,144,112, - 16,96}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03r[729] U8G_SECTION(".progmem.u8g_font_04b_03r") = { - 1,5,7,0,254,5,0,251,1,242,32,127,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24[912] U8G_SECTION(".progmem.u8g_font_04b_24") = { - 1,5,6,0,255,5,0,250,1,241,32,255,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,37,53,128,64,64,64,64,2,53,69,160,160,160,96,32, - 2,53,69,192,32,192,32,192,255,255,255,2,53,69,128,192, - 160,160,64,255,255,2,53,69,64,160,160,96,32,255,255,255, - 255,255,255,255,255,255,255,255,2,53,69,224,32,32,64,128, - 255,255,255,2,53,69,64,160,160,160,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 - }; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24n[130] U8G_SECTION(".progmem.u8g_font_04b_24n") = { - 1,5,6,0,255,5,0,0,0,0,42,57,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,53,69,32,32,64, - 128,128,2,53,69,224,160,160,160,224,2,37,53,192,64,64, - 64,64,2,53,69,224,32,224,128,224,2,53,69,224,32,224, - 32,224,2,53,69,160,160,160,224,32,2,53,69,224,128,224, - 32,224,2,53,69,128,224,160,160,224,2,53,69,224,32,32, - 64,128,2,53,69,224,160,224,160,224,2,53,69,224,160,160, - 224,32}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24r[735] U8G_SECTION(".progmem.u8g_font_04b_24r") = { - 1,5,6,0,255,5,0,250,1,241,32,127,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 13 - Calculated Max Values w=10 h=20 x= 9 y=13 dx=10 dy= 0 ascent=16 len=40 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[4734] U8G_SECTION(".progmem.u8g_font_10x20_67_75") = { - 0,10,20,0,252,5,2,211,5,193,32,255,0,16,252,13, - 0,9,6,12,10,0,3,54,0,27,0,255,128,255,128,27, - 0,54,0,8,13,13,10,1,0,24,24,24,24,153,219,126, - 60,153,219,126,60,24,9,8,16,10,0,2,25,128,51,0, - 102,0,252,0,252,0,102,0,51,0,25,128,9,8,16,10, - 0,2,204,0,102,0,51,0,31,128,31,128,51,0,102,0, - 204,0,9,8,16,10,0,2,25,128,49,128,97,128,255,128, - 255,128,97,128,49,128,25,128,8,13,13,10,1,0,24,60, - 126,219,153,24,24,24,24,24,24,255,255,9,8,16,10,0, - 2,204,0,198,0,195,0,255,128,255,128,195,0,198,0,204, - 0,8,13,13,10,1,0,255,255,24,24,24,24,24,24,153, - 219,126,60,24,8,13,13,10,1,0,24,60,126,219,153,24, - 153,219,126,60,24,255,255,9,8,16,10,0,2,27,0,51, - 128,97,128,255,128,255,0,96,0,48,0,24,0,9,8,16, - 10,0,2,108,0,230,0,195,0,255,128,127,128,3,0,6, - 0,12,0,9,8,16,10,0,2,25,0,51,128,98,128,255, - 128,255,0,98,0,50,0,24,0,9,8,16,10,0,2,76, - 0,230,0,163,0,255,128,127,128,35,0,38,0,12,0,10, - 8,16,10,0,2,18,0,51,0,109,128,255,192,243,192,97, - 128,51,0,18,0,10,8,16,10,0,2,18,0,55,0,101, - 128,255,192,255,192,105,128,59,0,18,0,10,15,30,10,0, - 0,1,192,3,128,7,0,14,0,28,0,63,192,127,192,3, - 128,7,0,206,0,220,0,248,0,240,0,252,0,252,0,8, - 13,13,10,1,0,48,96,255,255,99,51,3,3,3,3,3, - 3,3,8,13,13,10,1,0,12,6,255,255,198,204,192,192, - 192,192,192,192,192,8,13,13,10,1,0,3,3,3,3,3, - 3,3,51,99,255,255,96,48,8,13,13,10,1,0,192,192, - 192,192,192,192,192,204,198,255,255,6,12,8,13,13,10,1, - 0,252,252,12,12,12,12,12,12,12,45,63,30,12,8,9, - 9,10,1,1,3,3,3,51,99,255,255,96,48,9,8,16, - 10,0,0,14,0,31,0,59,128,49,128,181,128,253,128,121, - 128,49,128,9,8,16,10,0,0,56,0,124,0,238,0,198, - 0,214,128,223,128,207,0,198,0,9,13,26,10,0,0,255, - 128,255,128,32,0,124,0,127,0,122,0,216,0,204,0,140, - 0,6,0,6,0,3,0,3,0,9,13,26,10,0,0,204, - 0,216,0,255,128,255,128,216,0,204,0,0,0,25,128,13, - 128,255,128,255,128,13,128,25,128,9,10,20,10,0,2,31, - 0,31,0,30,0,31,0,219,128,193,128,193,128,227,128,127, - 0,62,0,9,10,20,10,0,2,124,0,124,0,60,0,124, - 0,237,128,193,128,193,128,227,128,127,0,62,0,9,5,10, - 10,0,5,24,0,48,0,96,0,255,128,255,128,9,5,10, - 10,0,2,255,128,255,128,96,0,48,0,24,0,5,13,13, - 10,4,0,192,224,240,216,200,192,192,192,192,192,192,192,192, - 5,13,13,10,1,0,24,56,120,216,152,24,24,24,24,24, - 24,24,24,9,5,10,10,0,5,12,0,6,0,3,0,255, - 128,255,128,9,5,10,10,0,2,255,128,255,128,3,0,6, - 0,12,0,5,13,13,10,4,0,192,192,192,192,192,192,192, - 192,200,216,240,224,192,5,13,13,10,1,0,24,24,24,24, - 24,24,24,24,152,216,120,56,24,9,11,22,10,0,1,6, - 0,3,0,255,128,255,128,3,0,54,0,96,0,255,128,255, - 128,96,0,48,0,10,13,26,10,0,0,51,0,123,0,255, - 0,183,0,51,0,51,0,51,0,51,0,51,0,59,64,63, - 192,55,128,51,0,9,11,22,10,0,1,48,0,96,0,255, - 128,255,128,96,0,54,0,3,0,255,128,255,128,3,0,6, - 0,9,11,22,10,0,1,48,0,96,0,255,128,255,128,96, - 0,48,0,96,0,255,128,255,128,96,0,48,0,9,13,26, - 10,0,0,34,0,119,0,170,128,34,0,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,9,11,22, - 10,0,1,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,13,26,10,0,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,34,0,170,128,119,0,34,0,8,9,9,10,1,2,48, - 96,255,255,0,255,255,6,12,8,9,9,10,1,2,12,6, - 255,255,0,255,255,96,48,8,7,7,10,1,2,2,34,127, - 132,127,40,8,10,7,14,10,0,2,4,0,37,0,127,128, - 140,64,127,128,41,0,8,0,8,7,7,10,1,2,16,20, - 254,33,254,68,64,9,9,18,10,0,2,12,0,24,0,63, - 128,127,128,192,0,127,128,63,128,24,0,12,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,54,0,54,0,54,0,54,0,54,0,54,0,9,9,18, - 10,0,2,24,0,12,0,254,0,255,0,1,128,255,0,254, - 0,12,0,24,0,9,13,26,10,0,0,54,0,54,0,54, - 0,54,0,54,0,54,0,54,0,182,128,247,128,119,0,54, - 0,28,0,8,0,10,9,18,10,0,2,18,0,51,0,127, - 128,255,192,128,192,255,192,127,128,51,0,18,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,182,128,247,128,119,0,54,0,28,0,8,0,9,9,18, - 10,0,2,254,0,254,0,204,0,198,0,227,0,241,128,216, - 128,12,0,6,0,9,9,18,10,0,2,63,128,63,128,25, - 128,49,128,99,128,199,128,141,128,24,0,48,0,9,9,18, - 10,0,2,48,0,24,0,141,128,199,128,99,128,49,128,25, - 128,63,128,63,128,9,9,18,10,0,2,6,0,12,0,216, - 128,241,128,227,0,198,0,204,0,254,0,254,0,9,11,22, - 10,0,1,4,0,8,0,16,0,63,128,64,0,255,128,64, - 0,63,128,16,0,8,0,4,0,9,11,22,10,0,1,16, - 0,8,0,4,0,254,0,1,0,255,128,1,0,254,0,4, - 0,8,0,16,0,9,5,10,10,0,3,32,0,66,0,245, - 128,72,0,32,0,9,5,10,10,0,3,2,0,33,0,215, - 128,9,0,2,0,8,13,13,10,1,0,24,60,126,219,153, - 24,126,126,24,126,126,24,24,8,13,13,10,1,0,24,24, - 126,126,24,126,126,24,153,219,126,60,24,9,8,16,10,0, - 2,24,0,48,0,96,0,237,128,237,128,96,0,48,0,24, - 0,8,13,13,10,1,0,24,60,126,219,129,24,24,0,24, - 24,0,24,24,9,8,16,10,0,2,12,0,6,0,3,0, - 219,128,219,128,3,0,6,0,12,0,8,13,13,10,1,0, - 24,24,0,24,24,0,24,24,129,219,126,60,24,9,8,16, - 10,0,2,198,0,204,0,216,0,255,128,255,128,216,0,204, - 0,198,0,9,8,16,10,0,2,49,128,25,128,13,128,255, - 128,255,128,13,128,25,128,49,128,9,8,16,10,0,2,24, - 0,40,0,79,128,128,128,128,128,79,128,40,0,24,0,8, - 13,13,10,1,0,24,36,66,129,231,36,36,36,36,36,36, - 36,60,9,8,16,10,0,2,12,0,10,0,249,0,128,128, - 128,128,249,0,10,0,12,0,8,13,13,10,1,0,60,36, - 36,36,36,36,36,36,231,129,66,36,24,8,13,13,10,1, - 0,24,36,66,129,231,36,36,60,0,60,36,36,60,8,13, - 13,10,1,0,24,36,66,129,231,36,36,36,36,36,231,129, - 255,8,13,13,10,1,0,24,36,126,129,231,36,36,36,36, - 36,231,129,255,9,14,28,10,0,0,8,0,28,0,42,0, - 73,0,136,128,235,128,42,0,42,0,42,0,42,0,42,0, - 235,128,136,128,255,128,8,13,13,10,1,0,24,36,90,231, - 66,231,36,36,36,36,36,36,60,8,13,13,10,1,0,24, - 36,90,231,66,231,36,36,36,36,231,129,255,9,8,16,10, - 0,2,236,0,170,0,185,0,128,128,128,128,185,0,170,0, - 236,0,8,8,8,10,1,2,255,128,188,168,184,164,130,129, - 8,8,8,10,1,2,129,65,37,29,21,61,1,255,8,13, - 13,10,1,0,24,36,66,231,36,36,36,36,36,231,66,36, - 24,9,6,12,10,0,3,38,0,83,0,255,128,255,128,83, - 0,38,0,10,13,26,10,0,0,51,0,55,128,63,192,59, - 64,51,0,51,0,51,0,51,0,51,0,183,0,255,0,123, - 0,51,0,9,16,32,10,0,254,6,0,3,0,255,128,255, - 128,3,0,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,8,16,10,0,2,22, - 0,54,0,102,0,255,128,255,128,102,0,54,0,22,0,9, - 8,16,10,0,2,52,0,54,0,51,0,255,128,255,128,51, - 0,54,0,52,0,10,6,12,10,0,3,45,0,109,128,255, - 192,255,192,109,128,45,0,9,6,12,10,0,3,42,0,106, - 0,255,128,255,128,106,0,42,0,9,6,12,10,0,3,42, - 0,43,0,255,128,255,128,43,0,42,0,9,6,12,10,0, - 3,85,0,213,128,255,128,255,128,213,128,85,0,9,8,16, - 10,0,2,16,0,48,0,112,0,223,128,223,128,112,0,48, - 0,16,0,9,8,16,10,0,2,4,0,6,0,7,0,253, - 128,253,128,7,0,6,0,4,0,10,8,16,10,0,2,18, - 0,51,0,115,128,222,192,222,192,115,128,51,0,18,0,10, - 10,20,10,0,6,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,10,3,6,10,0,252,255, - 192,255,192,255,192,10,5,10,10,0,252,255,192,255,192,255, - 192,255,192,255,192,10,8,16,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,10,10,20,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,12,24,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,15,30,10,0,252,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,10,17,34,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,10, - 20,40,10,0,252,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,9,20,40, - 10,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,7,20,20,10,0, - 252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, - 254,254,254,254,254,6,20,20,10,0,252,252,252,252,252,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 20,20,10,0,252,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,4,20,20,10,0,252,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,3,20,20,10,0,252,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,1,20,20, - 10,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,5,20,20,10,5,252,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,10,19,38,10,0,253,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,10,20,40, - 10,0,252,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,10,20,40,10,0, - 252,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,10,3,6,10,0,13,255, - 192,255,192,255,192,1,20,20,10,9,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,5, - 10,10,10,0,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,5,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,0,6,248,248,248,248,248,248,248,248,248,248,10, - 20,40,10,0,252,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,10,20,40, - 10,0,252,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,10,20,40,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,10,20,40,10,0,252,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,5,10,10,10,5,6,248,248,248, - 248,248,248,248,248,248,248,10,20,40,10,0,252,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,10,20,40,10,0,252,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,8,8,8,10,1,1,255,255,255,255,255,255,255, - 255,8,8,8,10,1,1,255,129,129,129,129,129,129,255,8, - 8,8,10,1,1,126,129,129,129,129,129,129,126,8,8,8, - 10,1,1,255,129,189,189,189,189,129,255,9,9,18,10,0, - 0,255,128,128,128,255,128,128,128,255,128,128,128,255,128,128, - 128,255,128,9,9,18,10,0,0,255,128,170,128,170,128,170, - 128,170,128,170,128,170,128,170,128,255,128,9,9,18,10,0, - 0,255,128,170,128,255,128,170,128,255,128,170,128,255,128,170, - 128,255,128,8,8,8,10,1,1,255,201,165,147,201,165,147, - 255,8,8,8,10,1,1,255,147,165,201,147,165,201,255,8, - 8,8,10,1,1,255,171,197,171,145,171,197,255,4,4,4, - 10,3,3,240,240,240,240,4,4,4,10,3,3,240,144,144, - 240,8,6,6,10,1,3,255,255,255,255,255,255,8,6,6, - 10,1,3,255,129,129,129,129,255,6,13,13,10,2,0,252, - 252,252,252,252,252,252,252,252,252,252,252,252,6,13,13,10, - 2,0,252,132,132,132,132,132,132,132,132,132,132,132,252,8, - 4,4,10,1,3,31,62,124,248,8,4,4,10,1,3,31, - 34,68,248,8,8,8,10,1,2,24,24,60,60,126,126,255, - 255,8,8,8,10,1,2,24,24,36,36,66,66,129,255,5, - 5,5,10,3,3,32,112,112,248,248,5,5,5,10,3,3, - 32,80,80,136,248,8,8,8,10,1,2,192,240,252,255,255, - 252,240,192,8,8,8,10,1,2,192,176,140,131,131,140,176, - 192,5,5,5,10,3,3,192,240,248,240,192,5,5,5,10, - 3,3,192,176,136,176,192,8,5,5,10,1,4,224,252,255, - 252,224,8,5,5,10,1,4,224,156,131,156,224,8,8,8, - 10,1,2,255,255,126,126,60,60,24,24,8,8,8,10,1, - 2,255,129,66,66,36,36,24,24,5,5,5,10,3,3,248, - 248,112,112,32,5,5,5,10,3,3,248,136,80,80,32,8, - 8,8,10,1,2,3,15,63,255,255,63,15,3,8,8,8, - 10,1,2,3,13,49,193,193,49,13,3,5,5,5,10,3, - 3,24,120,248,120,24,5,5,5,10,3,3,24,104,136,104, - 24,8,5,5,10,1,4,7,63,255,63,7,8,5,5,10, - 1,4,7,57,193,57,7,8,8,8,10,1,2,24,60,126, - 255,255,126,60,24,8,8,8,10,1,2,24,36,66,129,129, - 66,36,24,8,8,8,10,1,2,24,36,90,189,189,90,36, - 24,8,8,8,10,1,1,60,66,153,189,189,153,66,60,9, - 15,30,10,1,255,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,65,0,65,0,34,0,34,0,20,0,20, - 0,8,0,8,8,8,10,1,1,60,66,129,129,129,129,66, - 60,7,7,7,10,1,2,40,0,130,0,130,0,40,7,7, - 7,10,1,2,56,108,170,170,170,108,56,8,8,8,10,1, - 1,60,66,153,165,165,153,66,60,8,8,8,10,1,1,60, - 126,255,255,255,255,126,60,8,8,8,10,1,1,60,114,241, - 241,241,241,114,60,8,8,8,10,1,1,60,78,143,143,143, - 143,78,60,8,8,8,10,1,1,60,66,129,129,255,255,126, - 60,8,8,8,10,1,1,60,126,255,255,129,129,66,60,8, - 8,8,10,1,1,60,78,143,143,129,129,66,60,8,8,8, - 10,1,1,60,78,143,143,255,255,126,60,4,8,8,10,1, - 1,48,112,240,240,240,240,112,48,4,8,8,10,5,1,192, - 224,240,240,240,240,224,192,10,20,40,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,225,192,192,192,128,64,128, - 64,128,64,128,64,192,192,225,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,20,40,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,225,192,222,192,191,64,191,64,191, - 64,191,64,222,192,225,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,10,20,10,0,6,255,192,255,192,255,192,255, - 192,255,192,255,192,225,192,222,192,191,64,191,64,10,10,20, - 10,0,252,191,64,191,64,222,192,225,192,255,192,255,192,255, - 192,255,192,255,192,255,192,4,4,4,10,1,5,48,64,128, - 128,4,4,4,10,5,5,192,32,16,16,4,4,4,10,5, - 1,16,16,32,192,4,4,4,10,1,1,128,128,64,48,8, - 4,4,10,1,5,60,66,129,129,8,4,4,10,1,1,129, - 129,66,60,10,19,38,10,0,252,0,64,0,64,0,192,0, - 192,1,192,1,192,3,192,3,192,7,192,7,192,15,192,15, - 192,31,192,31,192,63,192,63,192,127,192,127,192,255,192,10, - 19,38,10,0,252,128,0,128,0,192,0,192,0,224,0,224, - 0,240,0,240,0,248,0,248,0,252,0,252,0,254,0,254, - 0,255,0,255,0,255,128,255,128,255,192,10,19,38,10,0, - 253,255,192,255,128,255,128,255,0,255,0,254,0,254,0,252, - 0,252,0,248,0,248,0,240,0,240,0,224,0,224,0,192, - 0,192,0,128,0,128,0,10,19,38,10,0,253,255,192,127, - 192,127,192,63,192,63,192,31,192,31,192,15,192,15,192,7, - 192,7,192,3,192,3,192,1,192,1,192,0,192,0,192,0, - 64,0,64,5,5,5,10,3,4,112,136,136,136,112,8,8, - 8,10,1,1,255,241,241,241,241,241,241,255,8,8,8,10, - 1,1,255,143,143,143,143,143,143,255,8,8,8,10,1,1, - 255,253,249,241,225,193,129,255,8,8,8,10,1,1,255,129, - 131,135,143,159,191,255,9,9,18,10,0,0,255,128,136,128, - 136,128,136,128,136,128,136,128,136,128,136,128,255,128,8,8, - 8,10,1,2,24,24,36,36,90,90,129,255,8,8,8,10, - 1,2,24,24,52,52,114,114,241,255,8,8,8,10,1,2, - 24,24,44,44,78,78,143,255,10,10,20,10,0,0,30,0, - 33,0,64,128,128,64,128,64,128,64,128,64,64,128,33,0, - 30,0,9,9,18,10,0,0,255,128,136,128,136,128,136,128, - 248,128,128,128,128,128,128,128,255,128,9,9,18,10,0,0, - 255,128,128,128,128,128,128,128,248,128,136,128,136,128,136,128, - 255,128,9,9,18,10,0,0,255,128,128,128,128,128,128,128, - 143,128,136,128,136,128,136,128,255,128,9,9,18,10,0,0, - 255,128,136,128,136,128,136,128,143,128,128,128,128,128,128,128, - 255,128,9,9,18,10,0,0,62,0,73,0,136,128,136,128, - 248,128,128,128,128,128,65,0,62,0,9,9,18,10,0,0, - 62,0,65,0,128,128,128,128,248,128,136,128,136,128,73,0, - 62,0,9,9,18,10,0,0,62,0,65,0,128,128,128,128, - 143,128,136,128,136,128,73,0,62,0,9,9,18,10,0,0, - 62,0,73,0,136,128,136,128,143,128,128,128,128,128,65,0, - 62,0,6,6,6,10,2,2,252,136,144,160,192,128,6,6, - 6,10,2,2,252,68,36,20,12,4,6,6,6,10,2,2, - 128,192,160,144,136,252,6,6,6,10,2,2,252,132,132,132, - 132,252,6,6,6,10,2,2,252,252,252,252,252,252,4,4, - 4,10,3,3,240,144,144,240,4,4,4,10,3,3,240,240, - 240,240,6,6,6,10,2,2,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 8, '1' Height: 4 - Calculated Max Values w= 9 h=15 x= 3 y= 4 dx=10 dy= 0 ascent=14 len=30 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =14 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_75r[693] U8G_SECTION(".progmem.u8g_font_10x20_75r") = { - 0,10,20,0,252,8,1,219,0,0,32,79,0,14,255,9, - 0,8,8,8,10,1,1,255,255,255,255,255,255,255,255,8, - 8,8,10,1,1,255,129,129,129,129,129,129,255,8,8,8, - 10,1,1,126,129,129,129,129,129,129,126,8,8,8,10,1, - 1,255,129,189,189,189,189,129,255,9,9,18,10,0,0,255, - 128,128,128,255,128,128,128,255,128,128,128,255,128,128,128,255, - 128,9,9,18,10,0,0,255,128,170,128,170,128,170,128,170, - 128,170,128,170,128,170,128,255,128,9,9,18,10,0,0,255, - 128,170,128,255,128,170,128,255,128,170,128,255,128,170,128,255, - 128,8,8,8,10,1,1,255,201,165,147,201,165,147,255,8, - 8,8,10,1,1,255,147,165,201,147,165,201,255,8,8,8, - 10,1,1,255,171,197,171,145,171,197,255,4,4,4,10,3, - 3,240,240,240,240,4,4,4,10,3,3,240,144,144,240,8, - 6,6,10,1,3,255,255,255,255,255,255,8,6,6,10,1, - 3,255,129,129,129,129,255,6,13,13,10,2,0,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,10,2,0, - 252,132,132,132,132,132,132,132,132,132,132,132,252,8,4,4, - 10,1,3,31,62,124,248,8,4,4,10,1,3,31,34,68, - 248,8,8,8,10,1,2,24,24,60,60,126,126,255,255,8, - 8,8,10,1,2,24,24,36,36,66,66,129,255,5,5,5, - 10,3,3,32,112,112,248,248,5,5,5,10,3,3,32,80, - 80,136,248,8,8,8,10,1,2,192,240,252,255,255,252,240, - 192,8,8,8,10,1,2,192,176,140,131,131,140,176,192,5, - 5,5,10,3,3,192,240,248,240,192,5,5,5,10,3,3, - 192,176,136,176,192,8,5,5,10,1,4,224,252,255,252,224, - 8,5,5,10,1,4,224,156,131,156,224,8,8,8,10,1, - 2,255,255,126,126,60,60,24,24,8,8,8,10,1,2,255, - 129,66,66,36,36,24,24,5,5,5,10,3,3,248,248,112, - 112,32,5,5,5,10,3,3,248,136,80,80,32,8,8,8, - 10,1,2,3,15,63,255,255,63,15,3,8,8,8,10,1, - 2,3,13,49,193,193,49,13,3,5,5,5,10,3,3,24, - 120,248,120,24,5,5,5,10,3,3,24,104,136,104,24,8, - 5,5,10,1,4,7,63,255,63,7,8,5,5,10,1,4, - 7,57,193,57,7,8,8,8,10,1,2,24,60,126,255,255, - 126,60,24,8,8,8,10,1,2,24,36,66,129,129,66,36, - 24,8,8,8,10,1,2,24,36,90,189,189,90,36,24,8, - 8,8,10,1,1,60,66,153,189,189,153,66,60,9,15,30, - 10,1,255,8,0,20,0,20,0,34,0,34,0,65,0,65, - 0,128,128,65,0,65,0,34,0,34,0,20,0,20,0,8, - 0,8,8,8,10,1,1,60,66,129,129,129,129,66,60,7, - 7,7,10,1,2,40,0,130,0,130,0,40,7,7,7,10, - 1,2,56,108,170,170,170,108,56,8,8,8,10,1,1,60, - 66,153,165,165,153,66,60,8,8,8,10,1,1,60,126,255, - 255,255,255,126,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 4 y= 5 dx=10 dy= 0 ascent=13 len=24 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[2638] U8G_SECTION(".progmem.u8g_font_10x20_78_79") = { - 0,10,20,0,252,9,1,212,2,205,32,255,0,13,0,11, - 0,9,9,18,10,0,0,54,0,28,0,136,128,201,128,119, - 0,201,128,136,128,28,0,54,0,9,9,18,10,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,10,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,127,0,255, - 128,127,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,10,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,10,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,10,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,127,0,119,0,99,0,255,255,255,255, - 255,8,9,9,10,0,0,24,219,255,126,24,126,255,219,24, - 8,9,9,10,0,0,24,219,255,102,36,102,255,219,24,9, - 9,18,10,0,0,8,0,73,0,42,0,28,0,255,128,28, - 0,42,0,73,0,8,0,9,9,18,10,0,0,8,0,73, - 0,62,0,62,0,255,128,62,0,62,0,73,0,8,0,7, - 7,7,10,1,0,16,146,124,56,124,146,16,9,9,18,10, - 0,0,34,0,20,0,148,128,127,0,28,0,127,0,148,128, - 20,0,34,0,255,255,255,255,9,11,22,10,0,0,28,0, - 28,0,201,128,201,128,62,0,28,0,62,0,201,128,201,128, - 28,0,28,0,9,11,22,10,0,0,28,0,28,0,201,128, - 201,128,62,0,28,0,62,0,201,128,201,128,28,0,28,0, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 9,8,16,10,0,1,62,0,67,0,129,128,129,128,129,128, - 129,128,67,0,62,0,255,9,9,18,10,0,0,254,0,130, - 0,131,128,131,128,131,128,131,128,255,128,63,128,63,128,9, - 9,18,10,0,0,63,128,63,128,255,128,131,128,131,128,131, - 128,131,128,130,0,254,0,8,8,8,10,0,0,254,131,131, - 131,131,131,255,127,8,8,8,10,0,0,127,255,131,131,131, - 131,131,254,255,255,255,9,9,18,10,0,0,8,0,28,0, - 28,0,107,0,247,128,107,0,28,0,28,0,8,0,255,1, - 10,10,10,4,0,128,128,128,128,128,128,128,128,128,128,2, - 10,10,10,3,0,192,192,192,192,192,192,192,192,192,192,3, - 10,10,10,3,0,224,224,224,224,224,224,224,224,224,224,4, - 6,6,10,3,5,112,128,224,240,240,96,4,6,6,10,3, - 5,96,240,240,112,16,224,9,6,12,10,0,5,115,128,132, - 0,231,0,247,128,247,128,99,0,9,6,12,10,0,5,99, - 0,247,128,247,128,115,128,16,128,231,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,227,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,237,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,241,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,152,128, - 136,128,136,128,156,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,152,128,132,128,132,128,136,128,156,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,152,128,132,128, - 136,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,152,128,168,128,188,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,144,128, - 152,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,140,128,144,128,152,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,132,128, - 136,128,136,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,148,128,136,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,148,128, - 140,128,132,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,164,128,170,128,170,128,170,128,164,128,128,128, - 127,0,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,239,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,251,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,7,8,8,10,1,1,48,24,12,254,254,12,24,48, - 255,255,255,7,5,5,10,1,1,224,250,62,14,30,8,7, - 7,10,1,1,8,12,230,255,230,12,8,7,5,5,10,1, - 1,30,14,62,250,224,9,7,14,10,0,0,48,0,28,0, - 31,0,255,128,31,0,28,0,48,0,9,9,18,10,0,0, - 28,0,30,0,15,0,255,128,255,128,255,128,15,0,30,0, - 28,0,9,5,10,10,0,1,2,0,3,0,255,128,3,0, - 2,0,9,7,14,10,0,0,4,0,6,0,255,0,255,128, - 255,0,6,0,4,0,9,5,10,10,0,1,2,0,183,0, - 183,128,183,0,2,0,9,5,10,10,0,1,2,0,171,0, - 171,128,171,0,2,0,9,5,10,10,0,1,2,0,255,0, - 255,128,255,0,2,0,9,8,16,10,0,1,128,0,112,0, - 78,0,33,128,31,128,62,0,112,0,128,0,9,8,16,10, - 0,1,128,0,112,0,62,0,31,128,33,128,78,0,112,0, - 128,0,9,8,16,10,0,1,128,0,112,0,62,0,31,128, - 31,128,62,0,112,0,128,0,9,7,14,10,0,0,132,0, - 134,0,255,0,255,128,127,0,6,0,4,0,9,7,14,10, - 0,0,4,0,6,0,127,0,255,128,255,0,134,0,132,0, - 6,9,9,10,2,0,16,16,248,248,252,248,248,16,16,8, - 9,9,10,0,1,4,4,254,254,255,254,254,4,4,9,9, - 18,10,0,0,24,0,28,0,22,0,243,0,129,128,243,0, - 22,0,28,0,24,0,9,9,18,10,0,0,24,0,28,0, - 26,0,249,0,192,128,249,0,26,0,28,0,24,0,9,9, - 18,10,0,0,0,128,1,128,62,128,64,128,129,128,243,0, - 238,0,60,0,56,0,9,9,18,10,0,0,56,0,60,0, - 238,0,243,0,129,128,64,128,62,128,1,128,0,128,8,9, - 9,10,0,1,16,24,20,242,129,243,118,28,24,8,9,9, - 10,0,1,24,28,118,243,129,242,20,24,16,9,8,16,10, - 0,1,4,0,250,0,129,0,64,128,129,128,251,0,6,0, - 4,0,255,9,8,16,10,0,2,4,0,6,0,251,0,129, - 128,64,128,129,0,250,0,4,0,9,9,18,10,0,1,28, - 0,127,0,251,128,1,128,0,128,1,128,251,128,127,0,28, - 0,9,5,10,10,0,3,210,0,43,0,127,128,43,0,210, - 0,9,9,18,10,0,0,16,0,56,0,92,0,236,0,116, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,7,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,116,0,236,0,92,0,56,0,16, - 0,9,9,18,10,0,0,16,0,24,0,28,0,252,0,124, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,127,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,124,0,252,0,28,0,24,0,16, - 0,255,255,255,255,9,7,14,10,0,1,20,0,10,0,253, - 0,0,128,253,0,10,0,20,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,9, - 12,24,10,0,0,224,128,49,128,49,128,42,128,42,128,36, - 128,36,128,42,128,42,128,49,128,49,128,224,128,9,12,24, - 10,0,0,131,128,198,0,198,0,170,0,170,0,146,0,146, - 0,170,0,170,0,198,0,198,0,131,128,9,12,24,10,0, - 0,193,128,99,0,99,0,85,0,85,0,73,0,73,0,85, - 0,85,0,99,0,99,0,193,128,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,8,13,13,10,1,0,255,216,216, - 216,216,216,216,216,216,216,216,216,255,8,13,13,10,1,0, - 255,27,27,27,27,27,27,27,27,27,27,27,255,4,13,13, - 10,4,0,16,48,32,96,64,192,128,192,64,96,32,48,16, - 4,13,13,10,4,0,128,192,64,96,32,48,16,48,32,96, - 64,192,128,7,13,13,10,1,0,18,54,36,108,72,216,144, - 216,72,108,36,54,18,7,13,13,10,2,0,144,216,72,108, - 36,54,18,54,36,108,72,216,144,255,255,255,255,255,255,255, - 255,255,10,8,16,10,0,2,24,0,48,0,96,0,255,192, - 255,192,96,0,48,0,24,0,10,8,16,10,0,2,6,0, - 3,0,1,128,255,192,255,192,1,128,3,0,6,0,10,8, - 16,10,0,2,18,0,51,0,97,128,255,192,255,192,97,128, - 51,0,18,0,10,9,18,10,0,2,12,0,24,0,63,192, - 127,192,192,0,127,192,63,192,24,0,12,0,10,9,18,10, - 0,2,12,0,6,0,255,0,255,128,0,192,255,128,255,0, - 6,0,12,0,10,9,18,10,0,2,18,0,51,0,127,128, - 255,192,128,192,255,192,127,128,51,0,18,0,10,8,16,10, - 0,2,24,192,48,192,96,192,255,192,255,192,96,192,48,192, - 24,192,10,8,16,10,0,2,198,0,195,0,193,128,255,192, - 255,192,193,128,195,0,198,0,10,9,18,10,0,2,12,64, - 24,64,63,192,127,192,192,64,127,192,63,192,24,64,12,64, - 10,9,18,10,0,2,140,0,134,0,255,0,255,128,128,192, - 255,128,255,0,134,0,140,0,10,8,16,10,0,2,6,0, - 3,0,171,128,170,192,85,192,85,128,3,0,6,0}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20[3453] U8G_SECTION(".progmem.u8g_font_10x20") = { - 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, - 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, - 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, - 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, - 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, - 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, - 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, - 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, - 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, - 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, - 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, - 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, - 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, - 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, - 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, - 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, - 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, - 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, - 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, - 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, - 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, - 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, - 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, - 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, - 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, - 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, - 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, - 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, - 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, - 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, - 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, - 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, - 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, - 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, - 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, - 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, - 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, - 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, - 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, - 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, - 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, - 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, - 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, - 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, - 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, - 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, - 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, - 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, - 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, - 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, - 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, - 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, - 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, - 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, - 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, - 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, - 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, - 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, - 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, - 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, - 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, - 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, - 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, - 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, - 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, - 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, - 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, - 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, - 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, - 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, - 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, - 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, - 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, - 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, - 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, - 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, - 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, - 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, - 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, - 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, - 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, - 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, - 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, - 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, - 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, - 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, - 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, - 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, - 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, - 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, - 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, - 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, - 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, - 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, - 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, - 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, - 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, - 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, - 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, - 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, - 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, - 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, - 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, - 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, - 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, - 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, - 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, - 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, - 0,195,195,195,195,195,195,103,59,3,195,102,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=15 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20r[1667] U8G_SECTION(".progmem.u8g_font_10x20r") = { - 0,10,20,0,252,13,2,74,4,153,32,127,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6[1500] U8G_SECTION(".progmem.u8g_font_4x6") = { - 1,4,6,0,255,5,1,3,1,250,32,255,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0, - 64,18,21,69,128,0,128,128,128,2,53,69,64,224,128,224, - 64,2,53,69,32,64,96,64,160,2,68,68,144,96,96,144, - 2,53,69,160,64,224,64,64,18,21,69,128,128,0,128,128, - 1,54,70,96,192,160,96,32,192,6,49,65,160,1,70,70, - 96,144,208,208,144,96,2,53,69,96,160,96,0,224,3,67, - 67,80,160,80,3,50,66,224,32,4,49,65,224,3,68,68, - 96,240,208,96,6,49,65,224,4,51,67,64,160,64,2,53, - 69,64,224,64,0,224,3,36,68,192,64,128,192,2,37,69, - 192,64,128,64,128,21,34,66,64,128,1,53,69,160,160,160, - 192,128,2,69,69,112,208,208,80,80,20,17,65,128,18,34, - 66,64,128,3,36,68,64,192,64,64,2,53,69,64,160,64, - 0,224,3,67,67,160,80,160,1,70,70,128,128,128,80,112, - 16,1,70,70,128,128,176,16,32,48,1,70,70,192,64,128, - 80,176,16,2,53,69,64,0,64,128,96,2,53,69,128,64, - 160,224,160,2,53,69,32,64,160,224,160,2,53,69,192,64, - 160,224,160,2,53,69,96,192,160,224,160,2,53,69,160,64, - 160,224,160,2,53,69,64,64,160,224,160,2,69,69,112,160, - 240,160,176,1,54,70,64,160,128,160,64,128,2,53,69,128, - 224,192,128,224,2,53,69,32,224,192,128,224,2,53,69,96, - 224,192,128,224,2,53,69,160,224,192,128,224,2,53,69,128, - 224,64,64,224,2,53,69,32,224,64,64,224,2,53,69,64, - 224,64,64,224,2,53,69,160,64,64,64,224,2,69,69,224, - 80,208,80,224,2,69,69,80,160,224,224,160,2,53,69,128, - 64,160,160,64,2,53,69,32,64,160,160,64,2,53,69,64, - 64,160,160,64,2,69,69,112,224,160,160,64,2,53,69,160, - 64,160,160,64,3,51,67,160,64,160,2,53,69,96,160,224, - 160,192,2,53,69,128,64,160,160,224,2,53,69,32,64,160, - 160,224,2,53,69,64,0,160,160,224,2,53,69,160,0,160, - 160,224,2,53,69,32,0,160,64,64,2,53,69,128,192,160, - 192,128,1,54,70,64,160,192,160,224,128,2,53,69,128,64, - 96,160,96,2,53,69,32,64,96,160,96,2,53,69,96,0, - 96,160,96,2,69,69,80,160,96,160,96,2,53,69,160,0, - 96,160,96,2,53,69,64,0,96,160,96,2,68,68,112,176, - 160,112,1,53,69,64,160,128,96,64,2,53,69,128,64,160, - 192,96,2,53,69,32,64,160,192,96,2,53,69,192,64,160, - 192,96,2,53,69,160,64,160,192,96,2,53,69,128,64,64, - 64,224,2,53,69,32,192,64,64,224,2,53,69,64,160,64, - 64,224,2,53,69,160,0,192,64,224,2,53,69,160,64,96, - 160,64,2,69,69,80,160,192,160,160,2,53,69,128,64,64, - 160,64,2,53,69,32,64,64,160,64,2,53,69,64,0,64, - 160,64,2,53,69,224,0,64,160,64,2,53,69,160,0,64, - 160,64,2,53,69,64,0,224,0,64,2,52,68,96,160,160, - 192,2,53,69,128,64,160,160,96,2,53,69,32,64,160,160, - 96,2,53,69,64,0,160,160,96,2,53,69,160,0,160,160, - 96,1,54,70,32,64,160,224,32,192,1,54,70,128,128,192, - 160,192,128,1,54,70,160,0,160,224,32,192}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6r[734] U8G_SECTION(".progmem.u8g_font_4x6r") = { - 1,4,6,0,255,5,1,3,1,250,32,127,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7[1624] U8G_SECTION(".progmem.u8g_font_5x7") = { - 1,5,7,0,255,6,1,21,2,39,32,255,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,8,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,69,85,48,64,224, - 64,176,2,85,85,136,112,80,112,136,18,54,86,160,160,64, - 224,64,64,34,21,85,128,128,0,128,128,17,55,87,96,128, - 192,160,96,32,192,23,49,81,160,1,87,87,112,136,168,200, - 168,136,112,5,51,83,96,160,96,3,83,83,72,144,72,3, - 66,82,240,16,20,49,81,224,1,87,87,112,136,232,200,200, - 136,112,7,65,81,240,21,51,83,64,160,64,2,86,86,32, - 32,248,32,32,248,20,36,84,192,64,128,192,20,36,84,192, - 192,64,192,22,34,82,64,128,1,69,85,144,144,144,224,128, - 2,70,86,112,208,208,80,80,80,20,34,82,192,192,17,34, - 82,64,128,20,52,84,64,192,64,224,5,51,83,64,160,64, - 3,83,83,144,72,144,1,71,87,128,128,128,144,48,112,16, - 1,71,87,128,128,128,176,16,32,48,1,71,87,192,192,64, - 208,48,112,16,18,54,86,64,0,64,128,160,64,2,70,86, - 96,144,144,240,144,144,2,70,86,96,144,144,240,144,144,2, - 70,86,96,144,144,240,144,144,2,70,86,96,144,144,240,144, - 144,2,70,86,144,96,144,240,144,144,2,70,86,96,96,144, - 240,144,144,2,70,86,112,160,176,224,160,176,1,71,87,96, - 144,128,128,144,96,64,2,70,86,240,128,224,128,128,240,2, - 70,86,240,128,224,128,128,240,2,70,86,240,128,224,128,128, - 240,2,70,86,240,128,224,128,128,240,18,54,86,224,64,64, - 64,64,224,18,54,86,224,64,64,64,64,224,18,54,86,224, - 64,64,64,64,224,18,54,86,224,64,64,64,64,224,2,70, - 86,224,80,208,80,80,224,2,70,86,176,144,208,176,176,144, - 2,70,86,96,144,144,144,144,96,2,70,86,96,144,144,144, - 144,96,2,70,86,96,144,144,144,144,96,2,70,86,96,144, - 144,144,144,96,2,70,86,144,96,144,144,144,96,2,68,84, - 144,96,96,144,2,70,86,112,176,176,208,208,224,2,70,86, - 144,144,144,144,144,96,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,144,96,2,70,86,144,0,144,144,144, - 96,18,54,86,160,160,160,64,64,64,2,70,86,128,224,144, - 224,128,128,2,70,86,96,144,160,144,144,160,2,70,86,64, - 32,112,144,176,80,2,70,86,32,64,112,144,176,80,2,70, - 86,32,80,112,144,176,80,2,70,86,80,160,112,144,176,80, - 2,70,86,80,0,112,144,176,80,2,70,86,96,96,112,144, - 176,80,2,68,84,112,176,160,112,17,53,85,96,128,128,96, - 64,2,70,86,64,32,96,176,192,96,2,70,86,32,64,96, - 176,192,96,2,70,86,64,160,96,176,192,96,2,70,86,160, - 0,96,176,192,96,18,54,86,128,64,192,64,64,224,18,54, - 86,64,128,192,64,64,224,18,54,86,64,160,192,64,64,224, - 18,54,86,160,0,192,64,64,224,2,70,86,64,48,96,144, - 144,96,2,70,86,80,160,224,144,144,144,2,70,86,64,32, - 96,144,144,96,2,70,86,32,64,96,144,144,96,2,70,86, - 96,0,96,144,144,96,2,70,86,80,160,96,144,144,96,2, - 70,86,80,0,96,144,144,96,2,69,85,96,0,240,0,96, - 2,68,84,112,176,208,224,2,70,86,64,32,144,144,144,112, - 2,70,86,32,64,144,144,144,112,2,70,86,96,0,144,144, - 144,112,2,70,86,80,0,144,144,144,112,1,71,87,32,64, - 144,144,80,32,64,1,70,86,128,224,144,144,224,128,1,71, - 87,80,0,144,144,80,32,64}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7r[789] U8G_SECTION(".progmem.u8g_font_5x7r") = { - 1,5,7,0,255,6,1,21,2,39,32,127,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_SECTION(".progmem.u8g_font_5x8") = { - 1,5,8,0,255,6,1,33,2,53,32,255,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,9,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,70,86,32,80,224, - 64,80,160,2,85,85,136,112,80,112,136,2,86,86,136,80, - 248,32,248,32,34,23,87,128,128,128,0,128,128,128,2,71, - 87,112,128,224,144,112,16,224,23,49,81,160,2,86,86,112, - 168,200,200,168,112,20,53,85,96,160,96,0,224,3,67,83, - 80,160,80,18,51,83,224,32,32,20,49,81,224,2,86,86, - 112,232,216,232,216,112,23,49,81,224,21,51,83,64,160,64, - 18,53,85,64,224,64,0,224,20,53,85,64,160,32,64,224, - 20,53,85,192,32,192,32,192,22,34,82,64,128,1,69,85, - 144,144,144,224,128,2,86,86,120,232,232,104,40,40,36,17, - 81,128,17,34,82,64,128,20,53,85,64,192,64,64,224,20, - 53,85,64,160,64,0,224,3,67,83,160,80,160,2,71,87, - 128,128,128,160,96,240,32,2,71,87,128,128,160,208,16,32, - 112,2,71,87,128,64,128,96,160,240,32,18,54,86,64,0, - 64,128,160,64,2,71,87,64,32,96,144,240,144,144,2,71, - 87,32,64,96,144,240,144,144,2,71,87,96,144,96,144,240, - 144,144,2,71,87,80,160,96,144,240,144,144,2,71,87,144, - 0,96,144,240,144,144,2,71,87,96,144,96,144,240,144,144, - 2,70,86,112,160,160,240,160,176,1,71,87,96,144,128,128, - 144,96,64,2,71,87,64,32,240,128,224,128,240,2,71,87, - 32,64,240,128,224,128,240,2,71,87,96,144,240,128,224,128, - 240,2,71,87,144,0,240,128,224,128,240,18,55,87,128,64, - 224,64,64,64,224,18,55,87,32,64,224,64,64,64,224,18, - 55,87,64,160,224,64,64,64,224,18,55,87,160,0,224,64, - 64,64,224,2,86,86,112,72,232,72,72,112,2,71,87,80, - 160,144,208,176,144,144,2,71,87,64,32,96,144,144,144,96, - 2,71,87,32,64,96,144,144,144,96,2,71,87,96,144,96, - 144,144,144,96,2,71,87,80,160,96,144,144,144,96,2,71, - 87,144,0,96,144,144,144,96,18,51,83,160,64,160,2,70, - 86,112,176,176,208,208,224,2,71,87,64,32,144,144,144,144, - 96,2,71,87,32,64,144,144,144,144,96,2,71,87,96,144, - 144,144,144,144,96,2,71,87,144,0,144,144,144,144,96,2, - 87,87,16,32,136,80,32,32,32,2,70,86,128,224,144,144, - 224,128,2,70,86,96,144,160,160,144,160,2,71,87,64,32, - 0,112,144,144,112,2,71,87,32,64,0,112,144,144,112,2, - 71,87,32,80,0,112,144,144,112,2,71,87,80,160,0,112, - 144,144,112,2,70,86,80,0,112,144,144,112,2,71,87,96, - 144,96,112,144,144,112,2,84,84,240,104,176,120,17,53,85, - 96,128,128,96,64,2,71,87,64,32,0,96,176,192,96,2, - 71,87,32,64,0,96,176,192,96,2,71,87,96,144,0,96, - 176,192,96,2,70,86,80,0,96,176,192,96,18,55,87,128, - 64,0,192,64,64,224,18,55,87,32,64,0,192,64,64,224, - 18,55,87,64,160,0,192,64,64,224,18,54,86,160,0,192, - 64,64,224,2,71,87,160,64,160,16,112,144,96,2,71,87, - 80,160,0,224,144,144,144,2,71,87,64,32,0,96,144,144, - 96,2,71,87,32,64,0,96,144,144,96,2,71,87,96,144, - 0,96,144,144,96,2,71,87,80,160,0,96,144,144,96,2, - 70,86,144,0,96,144,144,96,18,53,85,64,0,224,0,64, - 2,68,84,112,176,208,224,2,71,87,64,32,0,144,144,144, - 112,2,71,87,32,64,0,144,144,144,112,2,71,87,96,144, - 0,144,144,144,112,2,70,86,144,0,144,144,144,112,1,72, - 88,32,64,0,144,144,112,144,96,1,71,87,128,128,224,144, - 224,128,128,1,71,87,144,0,144,144,112,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8r[805] U8G_SECTION(".progmem.u8g_font_5x8r") = { - 1,5,8,0,255,6,1,33,2,53,32,127,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10[1866] U8G_SECTION(".progmem.u8g_font_6x10") = { - 1,6,10,0,254,7,1,54,2,104,32,255,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,0,96,34,23,103,128, - 0,128,128,128,128,128,1,87,103,32,120,160,160,160,120,32, - 2,87,103,48,72,64,224,64,72,176,2,85,101,136,112,80, - 112,136,1,88,104,136,136,80,32,248,32,32,32,34,23,103, - 128,128,128,0,128,128,128,1,88,104,112,128,224,144,72,56, - 8,112,25,49,97,160,2,87,103,112,136,168,200,168,136,112, - 19,70,102,112,144,176,80,0,240,2,101,101,36,72,144,72, - 36,20,66,98,240,16,21,65,97,240,2,87,103,112,136,232, - 200,200,136,112,9,81,97,248,22,51,99,64,160,64,2,86, - 102,32,32,248,32,32,248,21,69,101,96,144,32,64,240,21, - 69,101,224,16,96,16,224,40,34,98,64,128,1,86,102,136, - 136,136,200,176,128,2,87,103,120,232,232,104,40,40,40,37, - 17,97,128,32,34,98,64,128,21,53,101,64,192,64,64,224, - 19,70,102,96,144,144,96,0,240,2,101,101,144,72,36,72, - 144,1,105,105,64,192,64,64,228,12,20,60,4,1,105,105, - 64,192,64,64,232,20,4,8,28,1,89,105,192,32,64,32, - 200,24,40,120,8,2,87,103,32,0,32,32,64,136,112,2, - 88,104,64,32,112,136,136,248,136,136,2,88,104,16,32,112, - 136,136,248,136,136,2,88,104,32,80,112,136,136,248,136,136, - 2,88,104,72,176,112,136,136,248,136,136,2,88,104,80,0, - 112,136,136,248,136,136,2,88,104,32,80,112,136,136,248,136, - 136,2,103,103,60,80,144,156,240,144,156,0,89,105,112,136, - 128,128,128,136,112,32,64,2,88,104,64,248,128,128,240,128, - 128,248,2,88,104,16,248,128,128,240,128,128,248,2,88,104, - 32,248,128,128,240,128,128,248,2,88,104,80,248,128,128,240, - 128,128,248,18,56,104,128,64,224,64,64,64,64,224,18,56, - 104,32,64,224,64,64,64,64,224,18,56,104,64,160,224,64, - 64,64,64,224,18,56,104,160,0,224,64,64,64,64,224,2, - 87,103,240,72,72,232,72,72,240,2,88,104,40,80,136,200, - 168,152,136,136,2,88,104,64,32,112,136,136,136,136,112,2, - 88,104,16,32,112,136,136,136,136,112,2,88,104,32,80,112, - 136,136,136,136,112,2,88,104,40,80,112,136,136,136,136,112, - 2,88,104,80,0,112,136,136,136,136,112,2,85,101,136,80, - 32,80,136,2,87,103,112,152,152,168,200,200,112,2,88,104, - 64,32,136,136,136,136,136,112,2,88,104,16,32,136,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,88, - 104,80,0,136,136,136,136,136,112,2,88,104,16,32,136,136, - 80,32,32,32,2,87,103,128,240,136,240,128,128,128,2,87, - 103,112,136,144,160,144,136,176,2,88,104,64,32,0,112,8, - 120,136,120,2,88,104,16,32,0,112,8,120,136,120,2,88, - 104,32,80,0,112,8,120,136,120,2,88,104,40,80,0,112, - 8,120,136,120,2,87,103,80,0,112,8,120,136,120,2,88, - 104,32,80,32,112,8,120,136,120,2,101,101,120,20,124,144, - 124,0,87,103,112,136,128,136,112,32,64,2,88,104,64,32, - 0,112,136,248,128,112,2,88,104,16,32,0,112,136,248,128, - 112,2,88,104,32,80,0,112,136,248,128,112,2,87,103,80, - 0,112,136,248,128,112,18,56,104,128,64,0,192,64,64,64, - 224,18,56,104,64,128,0,192,64,64,64,224,18,56,104,64, - 160,0,192,64,64,64,224,18,55,103,160,0,192,64,64,64, - 224,2,87,103,192,48,112,136,136,136,112,2,88,104,40,80, - 0,176,200,136,136,136,2,88,104,64,32,0,112,136,136,136, - 112,2,88,104,16,32,0,112,136,136,136,112,2,88,104,32, - 80,0,112,136,136,136,112,2,88,104,40,80,0,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,120,152,168,200,240,2,88,104,64, - 32,0,136,136,136,152,104,2,88,104,16,32,0,136,136,136, - 152,104,2,88,104,32,80,0,136,136,136,152,104,2,87,103, - 80,0,136,136,136,152,104,0,89,105,16,32,136,136,152,104, - 8,136,112,0,88,104,128,240,136,136,136,240,128,128,0,89, - 105,80,0,136,136,152,104,8,136,112}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10r[889] U8G_SECTION(".progmem.u8g_font_6x10r") = { - 1,6,10,0,254,7,1,54,2,104,32,127,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 3, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 5 y= 8 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[2382] U8G_SECTION(".progmem.u8g_font_6x12_67_75") = { - 1,6,12,0,254,3,2,41,3,99,0,255,0,10,254,8, - 0,2,87,103,168,0,136,0,136,0,168,2,87,103,240,136, - 232,168,232,136,240,2,87,103,112,168,248,168,248,168,112,2, - 87,103,112,136,8,8,8,136,112,18,69,101,96,144,16,144, - 96,1,88,104,112,136,128,128,136,120,8,8,2,87,103,32, - 32,32,32,168,112,32,2,103,103,248,252,252,156,252,252,248, - 2,87,103,112,248,248,168,248,248,112,255,255,255,255,255,255, - 255,3,85,101,32,64,248,64,32,2,87,103,32,112,168,32, - 32,32,32,3,85,101,32,16,248,16,32,2,87,103,32,32, - 32,32,168,112,32,4,83,99,80,248,80,2,87,103,32,112, - 168,32,168,112,32,2,89,105,192,240,224,160,32,16,16,8, - 8,2,89,105,24,120,56,40,32,64,64,128,128,2,89,105, - 128,128,64,64,32,40,56,120,24,2,89,105,8,8,16,16, - 32,160,224,240,192,3,101,101,40,72,252,80,48,3,101,101, - 48,40,252,72,80,4,99,99,192,216,100,4,99,99,12,108, - 152,3,101,101,40,80,252,80,40,2,88,104,32,112,168,112, - 168,32,32,32,3,101,101,80,40,252,40,80,2,88,104,32, - 32,32,168,112,168,112,32,3,101,101,36,72,240,72,36,3, - 101,101,144,72,60,72,144,3,85,101,40,72,248,72,40,2, - 87,103,32,112,168,32,32,32,248,3,85,101,160,144,248,144, - 160,2,87,103,248,32,32,32,168,112,32,2,87,103,32,112, - 168,32,168,112,248,3,101,101,40,68,248,64,32,3,101,101, - 80,136,124,8,16,3,101,101,32,76,252,72,40,3,101,101, - 16,200,252,72,80,3,100,100,72,220,236,72,3,101,101,8, - 88,252,104,64,2,87,103,128,144,176,208,144,56,16,2,88, - 104,32,64,248,72,40,8,8,8,2,88,104,32,16,248,144, - 160,128,128,128,2,88,104,8,8,8,40,72,248,64,32,2, - 87,103,128,128,160,144,248,16,32,3,84,100,240,16,56,16, - 3,85,101,8,8,72,248,64,3,85,101,48,72,72,232,72, - 3,85,101,96,144,144,184,16,2,88,104,248,128,224,192,160, - 32,16,16,2,89,105,160,192,248,192,168,24,248,24,40,2, - 86,102,56,48,168,136,136,112,2,86,102,224,96,168,136,136, - 112,5,83,99,32,64,248,3,83,99,248,64,32,34,56,104, - 128,192,160,128,128,128,128,128,2,56,104,32,96,160,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 56,104,128,128,128,128,128,160,192,128,2,56,104,32,32,32, - 32,32,160,96,32,2,89,105,32,16,248,16,32,64,248,64, - 32,2,88,104,80,240,80,80,80,80,120,80,2,89,105,32, - 64,248,64,32,16,248,16,32,2,89,105,32,64,248,64,32, - 64,248,64,32,2,88,104,80,248,80,80,80,80,80,80,2, - 89,105,32,16,248,16,32,16,248,16,32,2,88,104,80,80, - 80,80,80,80,248,80,2,87,103,32,64,248,0,248,16,32, - 2,87,103,32,16,248,0,248,64,32,2,103,103,20,40,124, - 144,124,32,80,2,103,103,8,88,252,164,252,104,64,2,103, - 103,160,80,248,36,248,16,40,3,85,101,32,120,128,120,32, - 2,87,103,32,80,216,80,80,80,80,3,85,101,32,240,8, - 240,32,2,87,103,80,80,80,80,216,80,32,3,101,101,72, - 252,132,252,72,2,88,104,32,80,216,80,80,216,80,32,2, - 102,102,248,160,208,168,148,8,2,102,102,124,20,44,84,164, - 64,2,102,102,64,164,84,44,20,124,2,102,102,8,148,168, - 208,160,248,2,103,103,16,60,64,252,64,60,16,2,103,103, - 32,240,8,252,8,240,32,3,100,100,64,232,212,64,3,100, - 100,8,92,172,8,2,88,104,32,112,168,32,112,32,112,32, - 2,88,104,32,112,32,112,32,168,112,32,3,101,101,32,64, - 212,64,32,2,88,104,32,112,136,32,0,32,0,32,3,101, - 101,16,8,172,8,16,2,88,104,32,0,32,0,32,136,112, - 32,3,85,101,160,192,248,192,160,3,85,101,40,24,248,24, - 40,3,85,101,32,120,136,120,32,2,88,104,32,80,216,80, - 80,80,80,112,3,85,101,32,240,136,240,32,2,88,104,112, - 80,80,80,80,216,80,32,2,89,105,32,80,216,80,112,0, - 112,80,112,2,89,105,32,80,216,80,80,80,216,136,248,2, - 89,105,32,80,248,136,80,80,216,136,248,2,89,105,32,112, - 248,112,112,112,248,168,248,2,89,105,32,80,216,80,216,80, - 80,80,112,2,89,105,32,80,216,80,216,80,216,136,248,3, - 85,101,160,240,136,240,160,2,88,104,248,128,176,160,144,16, - 8,8,2,88,104,128,128,64,72,40,104,8,248,2,88,104, - 32,80,216,80,80,216,80,32,3,101,101,16,104,252,104,16, - 2,88,104,80,120,80,80,80,80,240,80,2,89,105,16,248, - 16,16,248,16,16,248,16,3,101,101,40,72,252,72,40,3, - 101,101,80,72,252,72,80,3,101,101,48,120,252,120,48,3, - 101,101,56,88,252,88,56,3,101,101,112,104,252,104,112,3, - 101,101,48,120,252,120,48,3,85,101,32,96,184,96,32,3, - 85,101,32,48,232,48,32,3,101,101,48,120,180,120,48,6, - 102,102,252,252,252,252,252,252,0,98,98,252,252,0,99,99, - 252,252,252,0,101,101,252,252,252,252,252,0,102,102,252,252, - 252,252,252,252,0,104,104,252,252,252,252,252,252,252,252,0, - 105,105,252,252,252,252,252,252,252,252,252,0,107,107,252,252, - 252,252,252,252,252,252,252,252,252,0,108,108,252,252,252,252, - 252,252,252,252,252,252,252,252,0,92,108,248,248,248,248,248, - 248,248,248,248,248,248,248,0,76,108,240,240,240,240,240,240, - 240,240,240,240,240,240,0,76,108,240,240,240,240,240,240,240, - 240,240,240,240,240,0,60,108,224,224,224,224,224,224,224,224, - 224,224,224,224,0,44,108,192,192,192,192,192,192,192,192,192, - 192,192,192,0,44,108,192,192,192,192,192,192,192,192,192,192, - 192,192,0,28,108,128,128,128,128,128,128,128,128,128,128,128, - 128,48,60,108,224,224,224,224,224,224,224,224,224,224,224,224, - 1,107,107,168,0,84,0,168,0,84,0,168,0,84,0,108, - 108,168,84,168,84,168,84,168,84,168,84,168,84,0,108,108, - 84,252,168,252,84,252,168,252,84,252,168,252,10,98,98,252, - 252,80,28,108,128,128,128,128,128,128,128,128,128,128,128,128, - 0,54,102,224,224,224,224,224,224,48,54,102,224,224,224,224, - 224,224,6,54,102,224,224,224,224,224,224,0,108,108,224,224, - 224,224,224,224,252,252,252,252,252,252,0,108,108,224,224,224, - 224,224,224,28,28,28,28,28,28,0,108,108,252,252,252,252, - 252,252,224,224,224,224,224,224,0,108,108,252,252,252,252,252, - 252,28,28,28,28,28,28,54,54,102,224,224,224,224,224,224, - 0,108,108,28,28,28,28,28,28,224,224,224,224,224,224,0, - 108,108,28,28,28,28,28,28,252,252,252,252,252,252,2,85, - 101,248,248,248,248,248,2,85,101,248,136,136,136,248,2,85, - 101,112,136,136,136,112,2,85,101,248,136,168,136,248,2,85, - 101,248,136,248,136,248,2,85,101,248,168,168,168,248,2,85, - 101,248,168,248,168,248,2,85,101,248,200,168,152,248,2,85, - 101,248,152,168,200,248,2,85,101,248,216,168,216,248,20,51, - 99,224,224,224,20,51,99,224,160,224,3,101,101,252,252,252, - 252,252,3,101,101,252,132,132,132,252,17,74,106,240,240,240, - 240,240,240,240,240,240,240,17,74,106,240,144,144,144,144,144, - 144,144,144,240,4,99,99,60,120,240,4,99,99,60,72,240, - 2,87,103,32,32,112,112,248,248,248,2,87,103,32,32,80, - 80,136,136,248,3,85,101,32,32,112,112,248,3,85,101,32, - 32,80,80,248,18,71,103,128,192,224,240,224,192,128,18,71, - 103,128,192,160,144,160,192,128,19,53,101,128,192,224,192,128, - 19,53,101,128,192,160,192,128,3,101,101,192,240,252,240,192, - 3,101,101,192,176,140,176,192,2,87,103,248,248,248,112,112, - 32,32,2,87,103,248,136,136,80,80,32,32,2,85,101,248, - 112,112,32,32,2,85,101,248,80,80,32,32,18,71,103,16, - 48,112,240,112,48,16,18,71,103,16,48,80,144,80,48,16, - 19,53,101,32,96,224,96,32,19,53,101,32,96,160,96,32, - 3,101,101,12,60,252,60,12,3,101,101,12,52,196,52,12, - 3,85,101,32,112,248,112,32,3,85,101,32,80,136,80,32, - 3,85,101,32,80,168,80,32,2,102,102,48,72,180,180,72, - 48,2,87,103,32,80,80,136,80,80,32,2,102,102,48,72, - 132,132,72,48,2,102,102,32,8,128,4,64,16,2,85,101, - 112,168,168,168,112,2,87,103,112,136,168,216,168,136,112,2, - 102,102,48,120,252,252,120,48,2,102,102,48,104,228,228,104, - 48,2,102,102,48,88,156,156,88,48,2,102,102,48,72,132, - 252,120,48,2,102,102,48,120,252,132,72,48,2,102,102,48, - 88,156,132,72,48,2,102,102,48,104,228,132,72,48,18,89, - 105,8,56,120,120,248,120,120,56,8,2,89,105,128,224,240, - 240,248,240,240,224,128,0,108,108,252,252,252,252,204,132,132, - 204,252,252,252,252,0,108,108,252,252,252,204,180,120,120,180, - 204,252,252,252,6,102,102,252,252,252,204,180,120,0,102,102, - 120,180,204,252,252,252,5,51,99,32,64,128,53,51,99,128, - 64,32,50,51,99,32,64,128,2,51,99,128,64,32,5,99, - 99,48,72,132,2,99,99,132,72,48,2,85,101,8,24,56, - 120,248,2,85,101,128,192,224,240,248,2,85,101,248,240,224, - 192,128,2,85,101,248,120,56,24,8,2,85,101,112,136,136, - 136,112,2,85,101,248,232,232,232,248,2,85,101,248,184,184, - 184,248,2,85,101,248,248,232,200,248,2,85,101,248,152,184, - 248,248,2,85,101,248,168,168,168,248,2,87,103,32,32,80, - 112,168,136,248,2,87,103,32,32,112,112,232,232,248,2,87, - 103,32,32,112,112,184,184,248,2,103,103,48,72,132,132,132, - 72,48,2,85,101,248,168,232,136,248,2,85,101,248,136,232, - 168,248,2,85,101,248,136,184,168,248,2,85,101,248,168,184, - 136,248,2,85,101,112,168,232,136,112,2,85,101,112,136,232, - 168,112,2,85,101,112,136,184,168,112,2,85,101,112,168,184, - 136,112,3,85,101,248,144,160,192,128,3,85,101,248,72,40, - 24,8,3,85,101,128,192,160,144,248,20,68,100,240,144,144, - 240,19,68,100,240,240,240,240,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 3 - Calculated Max Values w= 6 h=10 x= 1 y= 2 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_75r[427] U8G_SECTION(".progmem.u8g_font_6x12_75r") = { - 1,6,12,0,254,7,1,41,0,0,32,79,0,9,255,7, - 0,2,85,101,248,248,248,248,248,2,85,101,248,136,136,136, - 248,2,85,101,112,136,136,136,112,2,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,20,51,99,224,224,224,20,51,99,224,160,224,3,101,101, - 252,252,252,252,252,3,101,101,252,132,132,132,252,17,74,106, - 240,240,240,240,240,240,240,240,240,240,17,74,106,240,144,144, - 144,144,144,144,144,144,240,4,99,99,60,120,240,4,99,99, - 60,72,240,2,87,103,32,32,112,112,248,248,248,2,87,103, - 32,32,80,80,136,136,248,3,85,101,32,32,112,112,248,3, - 85,101,32,32,80,80,248,18,71,103,128,192,224,240,224,192, - 128,18,71,103,128,192,160,144,160,192,128,19,53,101,128,192, - 224,192,128,19,53,101,128,192,160,192,128,3,101,101,192,240, - 252,240,192,3,101,101,192,176,140,176,192,2,87,103,248,248, - 248,112,112,32,32,2,87,103,248,136,136,80,80,32,32,2, - 85,101,248,112,112,32,32,2,85,101,248,80,80,32,32,18, - 71,103,16,48,112,240,112,48,16,18,71,103,16,48,80,144, - 80,48,16,19,53,101,32,96,224,96,32,19,53,101,32,96, - 160,96,32,3,101,101,12,60,252,60,12,3,101,101,12,52, - 196,52,12,3,85,101,32,112,248,112,32,3,85,101,32,80, - 136,80,32,3,85,101,32,80,168,80,32,2,102,102,48,72, - 180,180,72,48,2,87,103,32,80,80,136,80,80,32,2,102, - 102,48,72,132,132,72,48,2,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,2,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 6 h=12 x= 2 y= 4 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[2316] U8G_SECTION(".progmem.u8g_font_6x12_78_79") = { - 1,6,12,0,254,6,2,80,3,53,0,255,0,10,254,9, - 0,2,87,103,168,0,136,0,136,0,168,3,101,101,144,252, - 32,64,96,3,101,101,196,200,48,200,196,3,101,101,96,64, - 32,252,144,2,103,103,204,148,232,48,232,148,204,255,1,105, - 105,120,132,180,180,164,180,180,132,120,1,105,105,120,132,180, - 132,180,132,204,132,120,3,101,101,32,176,252,176,32,2,101, - 101,252,204,180,132,252,255,255,18,72,104,144,144,80,112,240, - 240,240,112,3,102,102,4,56,124,124,64,128,2,102,102,64, - 224,80,40,20,12,3,99,99,248,140,248,2,102,102,12,20, - 40,80,224,64,3,100,100,248,132,132,248,4,99,99,248,244, - 248,2,87,103,8,8,16,16,160,224,64,2,103,103,12,12, - 28,216,248,112,48,2,85,101,136,80,32,80,136,3,85,101, - 216,248,32,248,216,2,86,102,136,80,32,80,136,128,1,103, - 103,204,204,120,112,252,204,192,1,103,103,120,204,164,244,164, - 204,120,2,102,102,48,48,252,252,48,48,3,85,101,32,32, - 216,32,32,2,102,102,48,48,204,204,48,48,2,87,103,32, - 32,248,32,32,32,32,1,90,106,112,80,216,136,216,80,80, - 80,80,112,2,105,105,120,220,188,220,88,88,88,120,120,2, - 87,103,112,32,168,248,168,32,112,2,87,103,32,248,80,80, - 80,248,32,3,85,101,32,32,248,32,32,3,102,102,48,48, - 252,252,48,48,2,104,104,48,120,48,252,252,48,120,48,2, - 87,103,32,112,168,248,168,112,32,3,85,101,32,112,248,112, - 32,3,85,101,32,112,216,112,32,255,3,85,101,32,216,80, - 32,80,2,87,103,112,216,136,216,168,248,112,3,86,102,32, - 32,248,80,112,136,3,86,102,32,32,216,32,80,136,3,86, - 102,32,32,248,112,112,136,3,86,102,32,32,248,112,112,136, - 3,86,102,32,32,232,48,80,136,2,102,102,48,88,140,88, - 172,88,2,86,102,32,168,112,112,168,32,2,87,103,32,168, - 112,80,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,2,87,103,32,168,112,248, - 112,168,32,2,86,102,32,168,112,112,168,32,1,88,104,80, - 32,168,112,112,168,32,80,1,88,104,80,32,168,112,112,168, - 32,80,2,103,103,80,248,124,248,124,248,80,2,103,103,80, - 168,116,248,116,168,80,2,86,102,32,168,112,112,168,32,2, - 87,103,32,168,112,80,112,168,32,2,86,102,32,168,112,112, - 168,32,2,103,103,168,216,80,168,116,168,32,3,87,103,32, - 112,248,216,112,248,216,3,87,103,32,112,216,168,80,248,216, - 3,86,102,32,112,216,112,248,32,2,87,103,112,248,168,216, - 168,248,112,2,86,102,32,168,112,112,168,32,2,86,102,32, - 168,112,112,168,32,2,86,102,32,168,112,112,168,32,2,86, - 102,32,168,112,112,168,32,2,87,103,32,168,112,248,112,168, - 32,2,87,103,32,168,112,248,112,168,32,2,87,103,32,168, - 112,248,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,255,3,101,101,120,140,140, - 140,120,255,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,2,102,102,248,140,140,140,252,124,2,102, - 102,124,252,140,140,140,248,255,255,255,2,103,103,16,56,84, - 236,84,56,16,255,34,23,103,128,128,128,128,128,128,128,18, - 39,103,192,192,192,192,192,192,192,18,71,103,240,240,240,240, - 240,240,240,22,69,101,96,128,224,240,96,22,69,101,96,240, - 112,16,96,6,101,101,72,144,216,252,72,6,101,101,72,252, - 108,36,72,255,255,1,106,106,8,124,200,200,200,120,8,200, - 136,112,2,89,105,112,248,248,112,32,0,32,112,32,2,88, - 104,216,248,112,32,0,32,112,32,2,85,101,216,248,248,112, - 32,2,87,103,96,240,240,120,240,240,96,2,104,104,100,184, - 32,216,248,240,228,120,2,102,102,128,88,120,220,152,64,18, - 56,104,32,64,192,192,192,192,64,32,18,56,104,128,64,96, - 96,96,96,64,128,18,40,104,64,192,192,192,192,192,192,64, - 18,40,104,128,192,192,192,192,192,192,128,17,73,105,48,48, - 96,96,192,96,96,48,48,17,73,105,192,192,96,96,48,96, - 96,192,192,2,87,103,24,48,96,192,96,48,24,2,87,103, - 192,96,48,24,48,96,192,1,89,105,56,56,112,112,224,112, - 112,56,56,1,89,105,224,224,112,112,56,112,112,224,224,17, - 57,105,32,64,128,128,128,128,128,64,32,17,57,105,128,64, - 32,32,32,32,32,64,128,17,73,105,48,96,96,96,192,96, - 96,96,48,17,73,105,192,96,96,96,48,96,96,96,192,2, - 89,105,112,248,216,152,216,216,136,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,2,89,105,112,136,168,232,168,168, - 248,136,112,2,89,105,112,136,168,216,152,168,248,136,112,2, - 89,105,112,136,232,152,168,152,232,136,112,2,89,105,112,136, - 200,200,232,248,168,136,112,2,89,105,112,136,248,200,232,152, - 232,136,112,2,89,105,112,136,184,200,232,216,168,136,112,2, - 89,105,112,136,248,152,168,168,168,136,112,2,89,105,112,136, - 168,216,168,216,168,136,112,2,89,105,112,136,168,216,184,152, - 232,136,112,2,105,105,120,132,212,236,236,236,212,132,120,2, - 89,105,112,248,216,152,216,216,216,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,3,101,101,48,24,252,24,48,255, - 255,255,2,85,101,128,64,40,24,56,3,85,101,32,48,248, - 48,32,2,85,101,56,24,40,64,128,3,101,101,64,48,252, - 48,64,2,102,102,48,56,252,252,56,48,4,99,99,8,252, - 8,2,102,102,16,24,252,252,24,16,3,99,99,8,188,8, - 2,102,102,16,24,188,188,24,16,3,101,101,16,248,252,248, - 16,2,103,103,192,176,72,60,120,240,192,2,103,103,192,240, - 120,60,72,176,192,3,101,101,224,120,60,120,224,3,102,102, - 128,144,248,252,120,16,2,102,102,16,120,252,248,144,128,2, - 103,103,32,240,248,252,248,240,32,3,101,101,32,240,252,240, - 32,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,2,102,102,16,232,132,132,232,16,2,102,102,16,232,132, - 132,232,16,3,101,101,16,232,132,232,16,255,3,101,101,16, - 232,132,232,16,2,103,103,120,220,12,4,12,220,120,3,99, - 99,232,124,232,2,102,102,64,224,96,16,12,12,3,99,99, - 232,124,232,2,102,102,12,12,16,96,224,64,2,102,102,96, - 224,224,20,12,28,2,101,101,192,232,124,232,192,2,102,102, - 28,12,20,224,224,96,2,101,101,16,200,252,200,16,2,101, - 101,16,200,252,200,16,3,99,99,232,124,232,3,100,100,232, - 252,252,232,2,101,101,80,232,4,232,80,255,2,85,101,136, - 144,160,192,248,2,86,102,32,32,80,112,168,248,2,86,102, - 32,32,32,32,32,248,2,87,103,120,128,144,168,144,128,120, - 2,87,103,240,8,72,168,72,8,240,18,73,105,64,160,160, - 32,32,64,64,64,48,18,73,105,32,80,80,64,64,32,32, - 32,192,2,87,103,136,168,136,80,80,32,32,2,104,104,128, - 156,160,160,160,92,64,64,2,104,104,4,228,20,20,20,232, - 8,8,18,55,103,64,64,64,224,64,64,64,255,2,103,103, - 252,64,32,32,32,32,64,255,255,255,3,85,101,32,80,168, - 80,32,2,87,103,32,32,80,80,136,168,136,2,87,103,168, - 168,168,168,168,168,112,3,85,101,8,8,40,8,248,3,85, - 101,248,128,160,128,128,3,101,101,196,108,84,108,196,3,101, - 101,140,216,168,216,140,2,101,101,204,120,72,120,204,2,87, - 103,32,32,32,32,32,32,248,2,87,103,248,32,32,32,32, - 32,32,3,85,101,80,216,80,216,80,3,85,101,80,80,216, - 80,80,4,99,99,64,188,64,4,99,99,128,252,128,4,99, - 99,4,252,4,18,55,103,64,160,64,64,64,64,224,3,85, - 101,32,80,248,80,32,3,85,101,32,80,136,80,32,3,101, - 101,16,40,196,40,16,3,101,101,32,80,140,80,32,3,101, - 101,124,68,196,68,124,3,101,101,248,136,140,136,248,1,90, - 106,248,160,160,160,160,160,160,160,160,248,1,90,106,248,40, - 40,40,40,40,40,40,40,248,17,57,105,32,32,64,64,128, - 64,64,32,32,17,57,105,128,128,64,64,32,64,64,128,128, - 0,107,107,20,40,40,80,80,160,80,80,40,40,20,0,107, - 107,160,80,80,40,40,20,40,40,80,80,160,16,75,107,16, - 32,96,160,160,160,160,160,96,32,16,16,76,108,128,64,96, - 80,80,80,80,80,80,96,64,128,17,41,105,128,64,64,64, - 64,64,64,64,128,17,41,105,64,128,128,128,128,128,128,128, - 64,2,87,103,32,112,168,168,168,168,168,2,87,103,168,168, - 168,168,168,112,32,2,103,103,56,68,228,68,4,68,56,2, - 103,103,112,136,156,136,128,136,112,4,99,99,104,252,104,3, - 101,101,32,64,252,64,32,3,101,101,16,8,252,8,16,4, - 99,99,72,252,72,2,103,103,16,32,124,128,124,32,16,2, - 103,103,32,16,248,4,248,16,32,3,101,101,72,252,132,252, - 72,3,101,101,36,68,252,68,36,3,101,101,144,136,252,136, - 144,2,103,103,20,36,124,132,124,36,20,2,103,103,160,144, - 248,132,248,144,160,3,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y=10 dx= 6 dy= 0 ascent=10 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12[1933] U8G_SECTION(".progmem.u8g_font_6x12") = { - 1,6,12,0,254,7,1,53,2,107,32,255,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,12,0,96,34,23,103,128,0,128,128,128,128,128,1, - 87,103,32,112,168,160,168,112,32,2,87,103,48,72,64,224, - 64,72,176,2,85,101,168,80,136,80,168,2,87,103,136,80, - 248,32,248,32,32,34,23,103,128,128,128,0,128,128,128,18, - 72,104,112,128,96,144,144,96,16,224,25,49,97,160,2,103, - 103,120,132,148,164,148,132,120,22,53,101,96,160,96,0,224, - 2,85,101,40,80,160,80,40,3,83,99,248,8,8,21,49, - 97,224,2,103,103,120,132,180,164,164,132,120,9,81,97,248, - 23,68,100,96,144,144,96,2,87,103,32,32,248,32,32,0, - 248,23,53,101,64,160,32,64,224,23,53,101,192,32,64,32, - 192,23,51,99,32,64,128,0,87,103,136,136,136,152,232,128, - 128,2,88,104,120,232,232,232,104,40,40,40,37,34,98,192, - 192,16,50,98,32,192,23,53,101,64,192,64,64,224,23,53, - 101,64,160,64,0,224,2,85,101,160,80,40,80,160,2,90, - 106,64,192,64,64,80,48,80,120,16,16,2,90,106,64,192, - 64,64,80,40,8,16,32,56,2,90,106,192,32,64,32,208, - 48,80,120,16,16,2,87,103,32,0,32,32,64,136,112,2, - 90,106,64,32,0,112,136,136,248,136,136,136,2,90,106,16, - 32,0,112,136,136,248,136,136,136,2,90,106,32,80,0,112, - 136,136,248,136,136,136,2,90,106,104,176,0,112,136,136,248, - 136,136,136,2,89,105,80,0,112,136,136,248,136,136,136,2, - 90,106,32,80,32,112,136,136,248,136,136,136,2,87,103,120, - 160,160,240,160,160,184,0,89,105,112,136,128,128,128,136,112, - 16,96,2,90,106,64,32,0,248,128,128,240,128,128,248,2, - 90,106,16,32,0,248,128,128,240,128,128,248,2,90,106,32, - 80,0,248,128,128,240,128,128,248,2,89,105,80,0,248,128, - 128,240,128,128,248,18,58,106,128,64,0,224,64,64,64,64, - 64,224,18,58,106,32,64,0,224,64,64,64,64,64,224,18, - 58,106,64,160,0,224,64,64,64,64,64,224,18,57,105,160, - 0,224,64,64,64,64,64,224,2,87,103,112,72,72,232,72, - 72,112,2,90,106,104,176,0,136,136,200,168,152,136,136,2, - 90,106,64,32,0,112,136,136,136,136,136,112,2,90,106,16, - 32,0,112,136,136,136,136,136,112,2,90,106,32,80,0,112, - 136,136,136,136,136,112,2,90,106,104,176,0,112,136,136,136, - 136,136,112,2,89,105,80,0,112,136,136,136,136,136,112,3, - 85,101,136,80,32,80,136,1,89,105,8,112,152,168,168,168, - 200,112,128,2,90,106,64,32,0,136,136,136,136,136,136,112, - 2,90,106,16,32,0,136,136,136,136,136,136,112,2,90,106, - 32,80,0,136,136,136,136,136,136,112,2,89,105,80,0,136, - 136,136,136,136,136,112,2,90,106,16,32,0,136,136,80,32, - 32,32,32,18,71,103,128,224,144,144,144,224,128,2,87,103, - 112,136,144,160,144,136,176,2,88,104,64,32,0,112,8,120, - 136,120,2,88,104,16,32,0,112,8,120,136,120,2,88,104, - 32,80,0,112,8,120,136,120,2,88,104,104,176,0,112,8, - 120,136,120,2,87,103,80,0,112,8,120,136,120,2,88,104, - 32,80,32,112,8,120,136,120,2,85,101,112,40,112,160,120, - 0,87,103,112,136,128,136,112,16,96,2,88,104,64,32,0, - 112,136,240,128,112,2,88,104,16,32,0,112,136,240,128,112, - 2,88,104,32,80,0,112,136,240,128,112,2,87,103,80,0, - 112,136,240,128,112,18,56,104,128,64,0,192,64,64,64,224, - 18,56,104,32,64,0,192,64,64,64,224,18,56,104,64,160, - 0,192,64,64,64,224,18,55,103,160,0,192,64,64,64,224, - 2,89,105,80,32,80,8,120,136,136,136,112,2,88,104,104, - 176,0,176,200,136,136,136,2,88,104,64,32,0,112,136,136, - 136,112,2,88,104,16,32,0,112,136,136,136,112,2,88,104, - 32,80,0,112,136,136,136,112,2,88,104,104,176,0,112,136, - 136,136,112,2,87,103,80,0,112,136,136,136,112,3,85,101, - 32,0,248,0,32,2,85,101,120,152,168,200,240,2,88,104, - 64,32,0,136,136,136,136,112,2,88,104,16,32,0,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,0,90,106,16,32,0,136,136, - 136,80,32,64,128,0,89,105,128,128,240,136,136,136,240,128, - 128,0,89,105,80,0,136,136,136,80,32,64,128}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y=10 dx= 6 dy= 0 ascent=10 len= 9 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12r[898] U8G_SECTION(".progmem.u8g_font_6x12r") = { - 1,6,12,0,254,7,1,53,2,107,32,127,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w= 6 h=13 x= 5 y= 9 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[2236] U8G_SECTION(".progmem.u8g_font_6x13_67_75") = { - 1,6,13,0,254,3,1,73,2,147,32,255,0,11,254,9, - 0,3,101,101,80,40,252,40,80,2,89,105,32,32,32,32, - 168,112,168,112,32,3,101,101,36,72,240,72,36,3,101,101, - 144,72,60,72,144,3,85,101,32,72,248,72,32,2,89,105, - 32,112,168,32,32,32,32,32,248,3,85,101,32,144,248,144, - 32,2,89,105,248,32,32,32,32,32,168,112,32,2,89,105, - 32,112,168,32,32,168,112,32,248,3,101,101,40,68,248,64, - 32,3,101,101,80,136,124,8,16,3,101,101,32,76,252,72, - 40,3,101,101,16,200,252,72,80,4,100,100,72,220,236,72, - 3,101,101,8,88,252,104,64,2,89,105,128,128,144,176,208, - 144,16,56,16,2,89,105,32,64,248,72,40,8,8,8,8, - 2,89,105,32,16,248,144,160,128,128,128,128,2,89,105,8, - 8,8,8,40,72,248,64,32,2,89,105,128,128,128,128,160, - 144,248,16,32,3,85,101,240,16,16,56,16,3,86,102,8, - 8,8,72,248,64,3,85,101,48,72,72,232,72,3,85,101, - 96,144,144,184,144,2,89,105,248,128,224,192,160,32,16,16, - 8,2,89,105,160,192,248,192,168,24,248,24,40,3,86,102, - 56,48,168,136,136,112,3,86,102,224,96,168,136,136,112,5, - 83,99,32,64,248,3,83,99,248,64,32,34,57,105,128,192, - 160,128,128,128,128,128,128,2,57,105,32,96,160,32,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 57,105,128,128,128,128,128,128,160,192,128,2,57,105,32,32, - 32,32,32,32,160,96,32,2,89,105,32,16,248,16,32,64, - 248,64,32,2,89,105,80,240,80,80,80,80,80,120,80,2, - 89,105,32,64,248,64,32,16,248,16,32,2,89,105,32,64, - 248,64,32,64,248,64,32,2,89,105,80,248,80,80,80,80, - 80,80,80,2,89,105,32,16,248,16,32,16,248,16,32,2, - 89,105,80,80,80,80,80,80,80,248,80,2,87,103,32,64, - 248,0,248,16,32,2,87,103,32,16,248,0,248,64,32,2, - 103,103,20,40,124,144,124,32,80,2,103,103,8,88,252,164, - 252,104,64,2,103,103,160,80,248,36,248,16,40,2,103,103, - 16,32,124,128,124,32,16,2,89,105,32,80,216,80,80,80, - 80,80,80,2,103,103,32,16,248,4,248,16,32,2,89,105, - 80,80,80,80,80,80,216,80,32,3,101,101,72,252,132,252, - 72,2,89,105,32,80,216,80,80,80,216,80,32,3,102,102, - 248,160,208,168,148,8,3,102,102,124,20,44,84,164,64,3, - 102,102,64,164,84,44,20,124,3,102,102,8,148,168,208,160, - 248,2,103,103,16,60,64,252,64,60,16,2,103,103,32,240, - 8,252,8,240,32,4,100,100,64,232,212,64,4,100,100,8, - 92,172,8,2,89,105,32,112,168,32,112,32,112,32,32,2, - 89,105,32,32,112,32,112,32,168,112,32,3,85,101,32,64, - 168,64,32,2,89,105,32,112,168,0,32,32,0,32,32,3, - 85,101,32,16,168,16,32,2,89,105,32,32,0,32,32,0, - 168,112,32,3,85,101,160,192,248,192,160,3,85,101,40,24, - 248,24,40,3,85,101,32,120,136,120,32,2,89,105,32,80, - 216,80,80,80,80,80,112,3,85,101,32,240,136,240,32,2, - 89,105,112,80,80,80,80,80,216,80,32,2,90,106,32,80, - 216,80,80,112,0,112,80,112,2,89,105,32,80,216,80,80, - 80,216,136,248,2,89,105,32,80,248,136,80,80,216,136,248, - 2,89,105,32,112,248,112,112,112,248,168,248,2,89,105,32, - 80,216,80,216,80,80,80,112,2,89,105,32,80,216,80,216, - 80,216,136,248,3,85,101,160,240,136,240,160,3,88,104,248, - 128,176,224,144,16,8,8,2,88,104,128,128,64,72,56,104, - 8,248,2,89,105,32,80,216,80,80,80,216,80,32,3,101, - 101,16,104,252,104,16,2,89,105,80,120,80,80,80,80,80, - 240,80,2,89,105,16,248,16,16,248,16,16,248,16,3,101, - 101,40,72,252,72,40,3,101,101,80,72,252,72,80,4,101, - 101,48,120,252,120,48,3,101,101,56,88,252,88,56,3,101, - 101,112,104,252,104,112,4,101,101,48,120,252,120,48,3,85, - 101,32,96,184,96,32,3,85,101,32,48,232,48,32,4,101, - 101,48,120,180,120,48,7,102,102,252,252,252,252,252,252,0, - 98,98,252,252,0,99,99,252,252,252,0,101,101,252,252,252, - 252,252,0,103,103,252,252,252,252,252,252,252,0,104,104,252, - 252,252,252,252,252,252,252,0,106,106,252,252,252,252,252,252, - 252,252,252,252,0,107,107,252,252,252,252,252,252,252,252,252, - 252,252,0,109,109,252,252,252,252,252,252,252,252,252,252,252, - 252,252,0,93,109,248,248,248,248,248,248,248,248,248,248,248, - 248,248,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,29,109,128,128,128,128,128,128,128,128,128,128,128, - 128,128,48,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,109,109,168,0,84,0,168,0,84,0,168,0,84, - 0,168,0,109,109,168,84,168,84,168,84,168,84,168,84,168, - 84,168,0,109,109,84,252,168,252,84,252,168,252,84,252,168, - 252,84,11,98,98,252,252,80,29,109,128,128,128,128,128,128, - 128,128,128,128,128,128,128,0,55,103,224,224,224,224,224,224, - 224,48,55,103,224,224,224,224,224,224,224,7,54,102,224,224, - 224,224,224,224,0,109,109,224,224,224,224,224,224,252,252,252, - 252,252,252,252,0,109,109,224,224,224,224,224,224,28,28,28, - 28,28,28,28,0,109,109,252,252,252,252,252,252,224,224,224, - 224,224,224,224,0,109,109,252,252,252,252,252,252,28,28,28, - 28,28,28,28,55,54,102,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,224,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,252,252,252,252,252,252,252,3,85,101, - 248,248,248,248,248,3,85,101,248,136,136,136,248,3,85,101, - 112,136,136,136,112,3,85,101,248,136,168,136,248,2,85,101, - 248,136,248,136,248,2,85,101,248,168,168,168,248,2,85,101, - 248,168,248,168,248,2,85,101,248,200,168,152,248,2,85,101, - 248,152,168,200,248,2,85,101,248,216,168,216,248,21,51,99, - 224,224,224,21,51,99,224,160,224,4,101,101,252,252,252,252, - 252,4,101,101,252,132,132,132,252,17,75,107,240,240,240,240, - 240,240,240,240,240,240,240,17,75,107,240,144,144,144,144,144, - 144,144,144,144,240,5,99,99,60,120,240,5,99,99,60,72, - 240,2,89,105,32,32,32,112,112,112,248,248,248,2,89,105, - 32,32,32,80,80,80,136,136,248,4,85,101,32,32,112,112, - 248,4,85,101,32,32,80,80,248,2,89,105,128,192,224,240, - 248,240,224,192,128,2,89,105,128,192,160,144,136,144,160,192, - 128,20,53,101,128,192,224,192,128,20,53,101,128,192,160,192, - 128,4,101,101,192,240,252,240,192,4,101,101,192,176,140,176, - 192,2,89,105,248,248,248,112,112,112,32,32,32,2,89,105, - 248,136,136,80,80,80,32,32,32,3,85,101,248,112,112,32, - 32,3,85,101,248,80,80,32,32,2,89,105,8,24,56,120, - 248,120,56,24,8,2,89,105,8,24,40,72,136,72,40,24, - 8,20,53,101,32,96,224,96,32,20,53,101,32,96,160,96, - 32,4,101,101,12,60,252,60,12,4,101,101,12,52,196,52, - 12,4,85,101,32,112,248,112,32,4,85,101,32,80,136,80, - 32,4,85,101,32,80,168,80,32,3,102,102,48,72,180,180, - 72,48,2,89,105,32,32,80,80,136,80,80,32,32,3,102, - 102,48,72,132,132,72,48,3,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,3,102,102,48,120,252,252,120,48,3,102,102,48,104, - 228,228,104,48,3,102,102,48,88,156,156,88,48,3,102,102, - 48,72,132,252,120,48,3,102,102,48,120,252,132,72,48,3, - 102,102,48,88,156,132,72,48,3,102,102,48,88,156,252,120, - 48,18,90,106,8,56,120,120,248,248,120,120,56,8,2,90, - 106,128,224,240,240,248,248,240,240,224,128,0,109,109,252,252, - 252,252,252,204,132,132,204,252,252,252,252,0,109,109,252,252, - 252,252,204,180,120,120,180,204,252,252,252,6,103,103,252,252, - 252,252,204,180,120,0,102,102,120,180,204,252,252,252,6,51, - 99,32,64,128,54,51,99,128,64,32,51,51,99,32,64,128, - 3,51,99,128,64,32,6,99,99,48,72,132,3,99,99,132, - 72,48,3,85,101,8,24,56,120,248,3,85,101,128,192,224, - 240,248,3,85,101,248,240,224,192,128,3,85,101,248,120,56, - 24,8,4,85,101,112,136,136,136,112,3,85,101,248,232,232, - 232,248,3,85,101,248,184,184,184,248,3,85,101,248,248,232, - 200,248,3,85,101,248,152,184,248,248,3,85,101,248,168,168, - 168,248,2,89,105,32,32,32,80,80,112,168,136,248,2,89, - 105,32,32,32,112,112,112,232,232,248,2,89,105,32,32,32, - 112,112,112,184,184,248,2,103,103,48,72,132,132,132,72,48, - 3,85,101,248,168,232,136,248,3,85,101,248,136,232,168,248, - 3,85,101,248,136,184,168,248,3,85,101,248,168,184,136,248, - 3,85,101,112,168,232,136,112,3,85,101,112,136,232,168,112, - 3,85,101,112,136,184,168,112,3,85,101,112,168,184,136,112, - 3,85,101,248,144,160,192,128,3,85,101,248,72,40,24,8, - 3,85,101,128,192,160,144,248,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,20,68,100,240,144,144,240,20,68,100, - 240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 3 - Calculated Max Values w= 6 h=11 x= 1 y= 3 dx= 6 dy= 0 ascent=10 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_75r[447] U8G_SECTION(".progmem.u8g_font_6x13_75r") = { - 1,6,13,0,254,9,1,57,0,0,32,79,0,10,255,9, - 0,3,85,101,248,248,248,248,248,3,85,101,248,136,136,136, - 248,3,85,101,112,136,136,136,112,3,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,21,51,99,224,224,224,21,51,99,224,160,224,4,101,101, - 252,252,252,252,252,4,101,101,252,132,132,132,252,17,75,107, - 240,240,240,240,240,240,240,240,240,240,240,17,75,107,240,144, - 144,144,144,144,144,144,144,144,240,5,99,99,60,120,240,5, - 99,99,60,72,240,2,89,105,32,32,32,112,112,112,248,248, - 248,2,89,105,32,32,32,80,80,80,136,136,248,4,85,101, - 32,32,112,112,248,4,85,101,32,32,80,80,248,2,89,105, - 128,192,224,240,248,240,224,192,128,2,89,105,128,192,160,144, - 136,144,160,192,128,20,53,101,128,192,224,192,128,20,53,101, - 128,192,160,192,128,4,101,101,192,240,252,240,192,4,101,101, - 192,176,140,176,192,2,89,105,248,248,248,112,112,112,32,32, - 32,2,89,105,248,136,136,80,80,80,32,32,32,3,85,101, - 248,112,112,32,32,3,85,101,248,80,80,32,32,2,89,105, - 8,24,56,120,248,120,56,24,8,2,89,105,8,24,40,72, - 136,72,40,24,8,20,53,101,32,96,224,96,32,20,53,101, - 32,96,160,96,32,4,101,101,12,60,252,60,12,4,101,101, - 12,52,196,52,12,4,85,101,32,112,248,112,32,4,85,101, - 32,80,136,80,32,4,85,101,32,80,168,80,32,3,102,102, - 48,72,180,180,72,48,2,89,105,32,32,80,80,136,80,80, - 32,32,3,102,102,48,72,132,132,72,48,3,102,102,32,8, - 128,4,64,16,2,85,101,112,168,168,168,112,2,87,103,112, - 136,168,216,168,136,112,3,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 6 h=13 x= 2 y= 5 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[1470] U8G_SECTION(".progmem.u8g_font_6x13_78_79") = { - 1,6,13,0,254,7,1,42,2,11,32,255,0,11,254,10, - 0,2,87,103,112,32,168,248,168,32,112,255,2,104,104,48, - 48,48,252,252,48,48,48,2,89,105,32,112,32,168,248,168, - 32,112,32,2,89,105,32,112,32,168,248,168,32,112,32,2, - 89,105,32,112,32,168,248,168,32,112,32,4,85,101,32,112, - 248,112,32,4,85,101,32,80,136,80,32,255,4,86,102,32, - 32,248,80,112,136,2,89,105,112,216,216,0,136,136,112,248, - 112,4,86,102,32,32,248,80,112,136,4,86,102,32,32,248, - 112,112,136,4,86,102,32,32,248,112,112,136,4,86,102,32, - 32,248,112,112,136,4,86,102,32,32,248,112,112,136,4,102, - 102,48,48,252,88,120,204,3,87,103,32,168,112,112,112,168, - 32,3,87,103,32,168,112,80,112,168,32,3,87,103,32,168, - 112,248,112,168,32,3,87,103,32,168,112,248,112,168,32,3, - 87,103,32,168,112,248,112,168,32,3,87,103,32,168,112,112, - 112,168,32,3,87,103,80,80,248,32,248,80,80,3,87,103, - 80,112,248,112,248,112,80,255,255,3,87,103,32,168,168,112, - 168,168,32,3,87,103,32,168,168,80,168,168,32,3,87,103, - 32,168,168,112,168,168,32,3,87,103,32,168,168,80,168,168, - 32,4,85,101,32,248,80,112,216,255,255,255,3,87,103,32, - 168,168,112,168,168,32,3,87,103,32,168,168,112,168,168,32, - 3,87,103,32,168,168,112,168,168,32,3,87,103,32,168,168, - 112,168,168,32,3,87,103,32,168,112,248,112,168,32,3,87, - 103,32,168,112,248,112,168,32,3,87,103,32,168,168,112,168, - 168,32,3,87,103,32,168,112,248,112,168,32,3,87,103,32, - 168,112,248,112,168,32,255,2,102,102,120,140,140,140,140,120, - 255,2,102,102,248,136,140,140,252,60,2,102,102,60,252,140, - 140,136,248,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,255,255,255,2,89,105,32,112,32,80,248, - 80,32,112,32,255,34,25,105,128,128,128,128,128,128,128,128, - 128,18,57,105,224,224,224,224,224,224,224,224,224,2,89,105, - 248,248,248,248,248,248,248,248,248,23,53,101,96,128,224,224, - 64,23,53,101,64,224,224,32,192,7,101,101,108,144,252,252, - 72,7,101,101,72,252,252,36,216,255,255,2,106,106,8,124, - 232,232,120,8,104,104,72,48,18,57,105,64,224,224,64,64, - 0,64,224,64,2,89,105,80,248,248,112,32,0,32,112,32, - 2,87,103,80,248,248,248,112,32,32,2,103,103,96,240,248, - 124,248,240,96,2,89,105,104,176,16,216,248,240,96,104,48, - 2,104,104,64,144,184,124,92,188,184,80,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,89,105,112,248,216,152, - 216,216,136,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,2,89,105,112,136,168,232,168,168,168,136,112,2,89,105, - 112,136,168,216,152,168,248,136,112,2,89,105,112,136,168,216, - 168,152,232,136,112,2,89,105,112,136,200,200,232,248,168,136, - 112,2,89,105,112,136,248,200,232,152,232,136,112,2,89,105, - 112,136,184,200,232,216,168,136,112,2,89,105,112,136,248,152, - 168,168,168,136,112,2,89,105,112,136,168,216,168,216,168,136, - 112,2,89,105,112,136,168,216,184,152,232,136,112,2,105,105, - 120,132,212,236,236,236,212,132,120,2,89,105,112,248,216,152, - 216,216,216,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,4,102,102,48,24,252,252,24,48,255,255,255,4,85,101, - 128,64,40,24,56,4,85,101,32,48,248,48,32,4,85,101, - 56,24,40,64,128,3,103,103,64,32,48,252,48,32,64,3, - 104,104,32,48,24,252,252,24,48,32,4,101,101,16,24,252, - 24,16,4,102,102,16,24,252,252,24,16,4,102,102,16,24, - 188,188,24,16,3,103,103,32,48,184,188,184,48,32,3,103, - 103,32,48,248,252,248,48,32,255,255,4,101,101,192,112,60, - 112,192,3,103,103,32,176,248,252,120,48,32,3,103,103,32, - 48,120,252,248,176,32,0,109,109,32,32,48,240,248,248,252, - 248,248,240,48,32,32,255,255,255,255,255,255,255,255,255,255, - 1,107,107,120,252,220,204,4,0,4,204,220,248,120,255,4, - 102,102,32,32,224,20,12,28,4,101,101,144,200,124,200,144, - 4,102,102,28,12,20,224,32,32,4,102,102,32,32,224,20, - 12,28,4,101,101,144,200,124,200,144,4,102,102,28,12,20, - 224,32,32,4,101,101,16,8,252,8,16,4,101,101,16,200, - 252,200,16,5,99,99,232,124,232,4,101,101,208,216,124,216, - 208,2,105,105,160,80,40,244,4,244,40,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,1,91,107,248,160,160,160,160,160,160,160,160, - 160,248,1,91,107,248,40,40,40,40,40,40,40,40,40,248, - 17,75,107,16,32,32,64,64,128,64,64,32,32,16,17,75, - 107,128,64,64,32,32,16,32,32,64,64,128,1,107,107,20, - 40,40,80,80,160,80,80,40,40,20,1,107,107,160,80,80, - 40,40,20,40,40,80,80,160,255,255,255,255,255,255,255,255, - 255,3,101,101,32,64,252,64,32,3,101,101,16,8,252,8, - 16,4,99,99,72,252,72,2,103,103,16,32,124,128,124,32, - 16,2,103,103,32,16,248,4,248,16,32,3,101,101,72,252, - 132,252,72,3,101,101,36,68,252,68,36,3,101,101,144,136, - 252,136,144,2,103,103,20,36,124,132,124,36,20,2,103,103, - 160,144,248,132,248,144,160,4,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13B[2171] U8G_SECTION(".progmem.u8g_font_6x13B") = { - 1,6,13,0,254,9,1,99,2,211,32,255,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 13,0,96,34,42,106,192,192,0,192,192,192,192,192,192,192, - 3,104,104,16,120,212,208,208,212,120,16,2,105,105,56,108, - 96,96,248,96,96,100,248,3,102,102,204,252,72,72,252,204, - 2,105,105,204,204,120,120,252,48,252,48,48,34,42,106,192, - 192,192,192,0,0,192,192,192,192,2,106,106,120,204,192,120, - 204,204,120,12,204,120,9,98,98,204,204,2,105,105,120,204, - 180,236,228,236,180,204,120,4,103,103,248,12,252,140,252,0, - 252,3,103,103,52,104,208,160,208,104,52,4,100,100,252,252, - 4,4,22,65,97,240,2,105,105,120,204,188,172,188,180,172, - 204,120,9,82,98,248,248,7,100,100,120,204,204,120,2,105, - 105,48,48,252,252,48,48,0,252,252,6,70,102,224,176,48, - 96,192,240,6,70,102,224,176,96,48,176,224,26,50,98,96, - 192,0,104,104,204,204,204,204,204,252,128,128,2,105,105,124, - 252,244,244,244,116,52,52,52,38,34,98,192,192,16,50,98, - 96,192,6,70,102,96,224,96,96,96,240,5,87,103,112,248, - 136,248,112,0,248,3,103,103,176,88,44,20,44,88,176,2, - 106,106,96,224,96,96,100,252,28,52,60,12,2,106,106,96, - 224,96,96,120,236,12,24,48,60,2,106,106,224,176,96,48, - 180,236,28,52,60,12,2,106,106,48,48,0,48,48,96,192, - 204,204,120,2,106,106,96,48,0,48,120,204,204,252,204,204, - 2,106,106,24,48,0,48,120,204,204,252,204,204,2,106,106, - 56,108,0,48,120,204,204,252,204,204,2,106,106,52,88,0, - 48,120,204,204,252,204,204,2,106,106,204,204,0,48,120,204, - 204,252,204,204,2,106,106,48,72,120,48,120,204,204,252,204, - 204,2,105,105,124,176,176,176,184,240,240,176,188,0,107,107, - 120,204,192,192,192,192,192,204,120,48,96,2,106,106,96,48, - 0,252,192,192,248,192,192,252,2,106,106,24,48,0,252,192, - 192,248,192,192,252,2,106,106,56,108,0,252,192,192,248,192, - 192,252,2,106,106,204,204,0,252,192,192,248,192,192,252,18, - 74,106,192,96,0,240,96,96,96,96,96,240,18,74,106,48, - 96,0,240,96,96,96,96,96,240,2,90,106,112,216,0,120, - 48,48,48,48,48,120,2,106,106,204,204,0,120,48,48,48, - 48,48,120,2,105,105,248,108,108,108,236,108,108,108,248,2, - 106,106,52,88,0,204,236,236,252,220,220,204,2,106,106,96, - 48,0,120,204,204,204,204,204,120,2,106,106,24,48,0,120, - 204,204,204,204,204,120,2,106,106,56,108,0,120,204,204,204, - 204,204,120,2,106,106,52,88,0,120,204,204,204,204,204,120, - 2,106,106,204,204,0,120,204,204,204,204,204,120,3,101,101, - 204,120,48,120,204,1,105,105,4,120,220,220,204,236,236,120, - 128,2,106,106,96,48,0,204,204,204,204,204,204,120,2,106, - 106,24,48,0,204,204,204,204,204,204,120,2,106,106,56,108, - 0,204,204,204,204,204,204,120,2,106,106,108,108,0,204,204, - 204,204,204,204,120,2,106,106,24,48,0,204,72,120,48,48, - 48,48,2,105,105,192,248,204,204,204,248,192,192,192,1,105, - 105,120,204,204,248,204,204,204,248,128,2,105,105,96,48,0, - 120,12,124,204,220,108,2,105,105,24,48,0,120,12,124,204, - 220,108,2,105,105,56,108,0,120,12,124,204,220,108,2,105, - 105,52,88,0,120,12,124,204,220,108,2,105,105,108,108,0, - 120,12,124,204,220,108,2,106,106,56,40,56,0,120,12,124, - 204,220,108,2,102,102,120,52,120,176,180,104,0,104,104,120, - 204,192,192,204,120,48,96,2,105,105,96,48,0,120,204,252, - 192,192,120,2,105,105,24,48,0,120,204,252,192,192,120,2, - 105,105,56,108,0,120,204,252,192,192,120,2,105,105,108,108, - 0,120,204,252,192,192,120,18,73,105,192,96,0,224,96,96, - 96,96,240,18,73,105,48,96,0,224,96,96,96,96,240,2, - 89,105,112,216,0,112,48,48,48,48,120,2,89,105,216,216, - 0,112,48,48,48,48,120,2,106,106,216,112,240,152,120,204, - 204,204,204,120,2,105,105,52,88,0,216,236,204,204,204,204, - 2,105,105,96,48,0,120,204,204,204,204,120,2,105,105,24, - 48,0,120,204,204,204,204,120,2,105,105,56,108,0,120,204, - 204,204,204,120,2,105,105,52,88,0,120,204,204,204,204,120, - 2,105,105,204,204,0,120,204,204,204,204,120,3,103,103,48, - 48,0,252,0,48,48,1,105,105,4,120,204,220,204,236,204, - 120,128,2,105,105,96,48,0,204,204,204,204,220,108,2,105, - 105,24,48,0,204,204,204,204,220,108,2,105,105,56,108,0, - 204,204,204,204,220,108,2,105,105,204,204,0,204,204,204,204, - 220,108,0,107,107,24,48,0,204,204,204,220,108,12,204,120, - 0,106,106,192,192,216,236,204,236,216,192,192,192,0,107,107, - 204,204,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Br[1040] U8G_SECTION(".progmem.u8g_font_6x13Br") = { - 1,6,13,0,254,9,1,99,2,211,32,127,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255 - }; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13[2160] U8G_SECTION(".progmem.u8g_font_6x13") = { - 1,6,13,0,254,9,1,102,2,214,32,255,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,96,34,25,105,128,0,128,128,128,128,128,128,128, - 3,88,104,32,112,168,160,160,168,112,32,2,89,105,48,72, - 64,64,224,64,64,72,176,3,86,102,136,112,80,80,112,136, - 2,89,105,136,136,80,80,248,32,248,32,32,34,25,105,128, - 128,128,128,0,128,128,128,128,18,74,106,96,144,128,96,144, - 144,96,16,144,96,26,50,98,160,160,3,89,105,112,136,168, - 216,200,216,168,136,112,4,87,103,112,8,120,136,120,0,248, - 3,86,102,40,80,160,160,80,40,4,83,99,248,8,8,22, - 49,97,224,3,89,105,112,136,232,216,216,232,216,136,112,10, - 81,97,248,23,68,100,96,144,144,96,3,87,103,32,32,248, - 32,32,0,248,7,53,101,64,160,32,64,224,7,53,101,64, - 160,64,32,192,42,34,98,64,128,0,88,104,136,136,136,136, - 152,232,128,128,2,89,105,120,232,232,232,232,104,40,40,40, - 38,33,97,192,32,34,98,64,128,7,53,101,64,192,64,64, - 224,4,87,103,112,136,136,136,112,0,248,3,86,102,160,80, - 40,40,80,160,2,90,106,64,192,64,64,224,8,24,40,56, - 8,2,90,106,64,192,64,64,224,16,40,8,16,56,2,90, - 106,64,160,64,32,160,72,24,40,56,8,2,89,105,32,0, - 32,32,64,128,136,136,112,2,90,106,64,32,0,32,80,136, - 136,248,136,136,2,90,106,16,32,0,32,80,136,136,248,136, - 136,2,90,106,48,72,0,32,80,136,136,248,136,136,2,90, - 106,40,80,0,32,80,136,136,248,136,136,2,90,106,80,80, - 0,32,80,136,136,248,136,136,2,90,106,32,80,32,32,80, - 136,136,248,136,136,2,89,105,88,160,160,160,176,224,160,160, - 184,0,91,107,112,136,128,128,128,128,128,136,112,32,64,2, - 90,106,64,32,0,248,128,128,240,128,128,248,2,90,106,16, - 32,0,248,128,128,240,128,128,248,2,90,106,48,72,0,248, - 128,128,240,128,128,248,2,90,106,80,80,0,248,128,128,240, - 128,128,248,18,58,106,128,64,0,224,64,64,64,64,64,224, - 18,58,106,32,64,0,224,64,64,64,64,64,224,18,74,106, - 96,144,0,224,64,64,64,64,64,224,18,58,106,160,160,0, - 224,64,64,64,64,64,224,2,89,105,240,72,72,72,232,72, - 72,72,240,2,90,106,40,80,0,136,136,200,168,152,136,136, - 2,90,106,64,32,0,112,136,136,136,136,136,112,2,90,106, - 16,32,0,112,136,136,136,136,136,112,2,90,106,48,72,0, - 112,136,136,136,136,136,112,2,90,106,40,80,0,112,136,136, - 136,136,136,112,2,90,106,80,80,0,112,136,136,136,136,136, - 112,3,85,101,136,80,32,80,136,1,91,107,8,112,152,152, - 168,168,168,200,200,112,128,2,90,106,64,32,0,136,136,136, - 136,136,136,112,2,90,106,16,32,0,136,136,136,136,136,136, - 112,2,90,106,48,72,0,136,136,136,136,136,136,112,2,90, - 106,80,80,0,136,136,136,136,136,136,112,2,90,106,16,32, - 0,136,136,80,32,32,32,32,2,89,105,128,240,136,136,136, - 240,128,128,128,2,89,105,96,144,144,160,160,144,136,136,176, - 2,89,105,64,32,0,112,8,120,136,152,104,2,89,105,16, - 32,0,112,8,120,136,152,104,2,89,105,48,72,0,112,8, - 120,136,152,104,2,89,105,40,80,0,112,8,120,136,152,104, - 2,89,105,80,80,0,112,8,120,136,152,104,2,90,106,48, - 72,48,0,112,8,120,136,152,104,2,86,102,112,40,112,160, - 168,80,0,88,104,112,136,128,128,136,112,32,64,2,89,105, - 64,32,0,112,136,248,128,136,112,2,89,105,16,32,0,112, - 136,248,128,136,112,2,89,105,48,72,0,112,136,248,128,136, - 112,2,89,105,80,80,0,112,136,248,128,136,112,18,57,105, - 128,64,0,192,64,64,64,64,224,18,57,105,32,64,0,192, - 64,64,64,64,224,18,73,105,96,144,0,192,64,64,64,64, - 224,18,57,105,160,160,0,192,64,64,64,64,224,2,90,106, - 80,32,96,16,112,136,136,136,136,112,2,89,105,40,80,0, - 176,200,136,136,136,136,2,89,105,64,32,0,112,136,136,136, - 136,112,2,89,105,16,32,0,112,136,136,136,136,112,2,89, - 105,48,72,0,112,136,136,136,136,112,2,89,105,40,80,0, - 112,136,136,136,136,112,2,89,105,80,80,0,112,136,136,136, - 136,112,3,87,103,32,32,0,248,0,32,32,1,88,104,8, - 112,152,168,168,200,112,128,2,89,105,64,32,0,136,136,136, - 136,152,104,2,89,105,16,32,0,136,136,136,136,152,104,2, - 89,105,48,72,0,136,136,136,136,152,104,2,89,105,80,80, - 0,136,136,136,136,152,104,0,91,107,16,32,0,136,136,136, - 152,104,8,136,112,0,90,106,128,128,176,200,136,136,200,176, - 128,128,0,91,107,80,80,0,136,136,136,152,104,8,136,112 - }; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13O[2162] U8G_SECTION(".progmem.u8g_font_6x13O") = { - 1,6,13,0,254,9,1,104,2,216,32,255,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,96,34,41,105,64,0,64,64,64,128,128, - 128,128,3,104,104,16,56,84,80,160,168,112,32,2,105,105, - 24,36,32,32,112,32,64,72,176,3,102,102,68,56,40,80, - 112,136,2,105,105,68,68,40,40,124,32,248,32,32,34,41, - 105,64,64,64,64,0,128,128,128,128,18,90,106,48,72,64, - 48,72,72,48,16,144,96,58,50,98,160,160,2,105,105,56, - 68,84,108,100,216,168,136,112,4,103,103,56,4,124,136,120, - 0,248,19,86,102,40,80,160,160,160,80,20,83,99,248,8, - 16,38,49,97,224,3,105,105,56,68,116,108,108,232,216,136, - 112,26,81,97,248,23,68,100,96,144,144,96,19,71,103,32, - 32,240,64,64,0,240,23,69,101,32,80,32,64,224,23,69, - 101,96,16,96,32,192,58,34,98,64,128,0,104,104,36,36, - 68,72,88,168,128,128,18,89,105,120,232,232,232,232,80,80, - 80,80,54,33,97,192,32,34,98,64,128,23,53,101,32,96, - 64,64,224,4,103,103,56,68,68,136,112,0,248,19,86,102, - 80,40,40,40,80,160,18,90,106,32,96,64,64,224,8,56, - 80,112,16,18,90,106,32,96,64,64,224,16,40,16,32,112, - 18,90,106,96,16,96,32,192,8,56,80,112,16,2,89,105, - 16,0,16,16,32,64,136,136,112,2,106,106,32,16,0,16, - 40,68,68,248,136,136,2,106,106,8,16,0,16,40,68,68, - 248,136,136,2,106,106,24,36,0,16,40,68,68,248,136,136, - 2,106,106,20,40,0,16,40,68,68,248,136,136,2,106,106, - 40,40,0,16,40,68,68,248,136,136,2,106,106,16,40,16, - 16,40,68,68,248,136,136,2,105,105,44,80,80,80,88,224, - 160,160,184,0,107,107,56,68,64,64,64,128,128,136,112,32, - 64,2,106,106,32,16,0,124,64,64,120,128,128,248,2,106, - 106,8,16,0,124,64,64,120,128,128,248,2,106,106,24,36, - 0,124,64,64,120,128,128,248,2,106,106,40,40,0,124,64, - 64,120,128,128,248,18,74,106,64,32,0,112,32,32,32,64, - 64,224,18,74,106,16,32,0,112,32,32,32,64,64,224,18, - 90,106,48,72,0,112,32,32,32,64,64,224,18,74,106,80, - 80,0,112,32,32,32,64,64,224,2,105,105,120,36,36,36, - 116,36,72,72,240,2,106,106,20,40,0,68,68,100,88,136, - 136,136,2,106,106,32,16,0,56,68,68,68,136,136,112,2, - 106,106,8,16,0,56,68,68,68,136,136,112,2,106,106,24, - 36,0,56,68,68,68,136,136,112,2,106,106,20,40,0,56, - 68,68,68,136,136,112,2,106,106,40,40,0,56,68,68,68, - 136,136,112,3,101,101,68,40,48,80,136,1,107,107,4,60, - 76,76,84,84,168,232,232,112,128,2,106,106,32,16,0,68, - 68,68,136,136,136,112,2,106,106,8,16,0,68,68,68,136, - 136,136,112,2,106,106,24,36,0,68,68,68,136,136,136,112, - 2,106,106,40,40,0,68,68,68,136,136,136,112,18,90,106, - 16,32,0,136,136,80,32,64,64,64,2,105,105,64,120,68, - 68,72,240,128,128,128,2,89,105,48,72,72,80,80,144,136, - 136,176,2,105,105,32,16,0,56,4,124,136,152,104,2,105, - 105,8,16,0,56,4,124,136,152,104,2,105,105,24,36,0, - 56,4,124,136,152,104,2,105,105,20,40,0,56,4,124,136, - 152,104,2,105,105,40,40,0,56,4,124,136,152,104,2,106, - 106,24,36,24,0,56,4,124,136,152,104,2,102,102,56,20, - 120,160,168,80,0,104,104,56,68,64,128,136,112,32,64,2, - 105,105,32,16,0,56,68,124,128,136,112,2,105,105,8,16, - 0,56,68,124,128,136,112,2,105,105,24,36,0,56,68,124, - 128,136,112,2,105,105,40,40,0,56,68,124,128,136,112,18, - 57,105,64,32,0,96,32,32,64,64,224,18,73,105,16,32, - 0,96,32,32,64,64,224,18,89,105,48,72,0,96,32,32, - 64,64,224,18,73,105,80,80,0,96,32,32,64,64,224,2, - 106,106,32,24,48,8,56,68,68,136,136,112,2,105,105,20, - 40,0,88,100,68,136,136,136,2,105,105,32,16,0,56,68, - 68,136,136,112,2,105,105,8,16,0,56,68,68,136,136,112, - 2,105,105,24,36,0,56,68,68,136,136,112,2,105,105,20, - 40,0,56,68,68,136,136,112,2,105,105,40,40,0,56,68, - 68,136,136,112,19,87,103,32,32,0,248,0,64,64,1,104, - 104,4,56,76,84,168,200,112,128,2,105,105,32,16,0,68, - 68,68,136,152,104,2,105,105,8,16,0,68,68,68,136,152, - 104,2,105,105,24,36,0,68,68,68,136,152,104,2,105,105, - 40,40,0,68,68,68,136,152,104,0,107,107,8,16,0,68, - 68,136,152,104,8,144,96,0,106,106,64,64,88,100,68,136, - 200,176,128,128,0,107,107,40,40,0,68,68,136,152,104,8, - 144,96}; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Or[1043] U8G_SECTION(".progmem.u8g_font_6x13Or") = { - 1,6,13,0,254,9,1,104,2,216,32,127,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13r[1041] U8G_SECTION(".progmem.u8g_font_6x13r") = { - 1,6,13,0,254,9,1,102,2,214,32,127,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 6 y= 9 dx= 7 dy= 0 ascent=11 len=13 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[2197] U8G_SECTION(".progmem.u8g_font_7x13_67_75") = { - 1,7,13,0,254,3,1,91,2,178,32,255,0,11,254,10, - 0,4,117,117,72,36,254,36,72,18,89,121,32,32,32,168, - 112,32,168,112,32,4,101,117,36,72,248,72,36,4,101,117, - 144,72,124,72,144,4,101,117,36,68,252,68,36,18,89,121, - 32,112,168,32,32,32,32,32,248,4,101,117,144,136,252,136, - 144,18,89,121,248,32,32,32,32,32,168,112,32,18,89,121, - 32,112,168,32,32,168,112,32,248,4,117,117,36,66,252,64, - 32,4,117,117,72,132,126,4,8,4,117,117,36,74,252,72, - 40,4,117,117,72,164,126,36,40,4,117,117,40,84,238,68, - 40,4,117,117,40,84,254,84,40,2,106,122,64,64,128,152, - 104,8,16,84,56,16,2,106,122,32,64,252,68,36,4,4, - 4,4,4,2,106,122,16,8,252,136,144,128,128,128,128,128, - 2,106,122,4,4,4,4,4,36,68,252,64,32,2,106,122, - 128,128,128,128,128,144,136,252,8,16,2,104,120,240,16,16, - 16,16,84,56,16,2,90,122,8,8,8,8,8,40,72,248, - 64,32,4,119,119,28,34,34,34,170,112,32,4,119,119,112, - 136,136,136,170,28,8,2,120,120,254,0,224,192,160,16,8, - 4,2,121,121,144,160,254,160,146,10,254,10,18,4,119,119, - 72,156,170,136,136,136,112,4,119,119,36,114,170,34,34,34, - 28,6,99,115,32,64,252,4,99,115,252,64,32,50,57,121, - 128,192,160,128,128,128,128,128,128,18,57,121,32,96,160,32, - 32,32,32,32,32,6,99,115,16,8,252,4,99,115,252,8, - 16,50,57,121,128,128,128,128,128,128,160,192,128,18,57,121, - 32,32,32,32,32,32,160,96,32,2,105,121,16,8,252,8, - 48,64,252,64,32,2,122,122,40,120,168,40,40,40,40,42, - 60,40,2,105,121,32,64,252,64,48,8,252,8,16,2,105, - 121,32,64,252,64,32,64,252,64,32,2,121,121,68,238,68, - 68,68,68,68,68,68,2,105,121,16,8,252,8,16,8,252, - 8,16,2,122,122,68,68,68,68,68,68,68,68,238,68,3, - 103,119,32,64,252,0,252,8,16,3,103,119,16,8,252,0, - 252,64,32,3,119,119,16,34,126,132,126,40,16,4,117,117, - 40,124,146,124,40,3,119,119,16,40,252,66,252,136,16,3, - 119,119,16,32,126,128,126,32,16,2,121,121,16,40,108,170, - 40,40,40,40,40,3,119,119,16,8,252,2,252,8,16,2, - 121,121,40,40,40,40,40,170,108,40,16,4,117,117,40,124, - 130,124,40,2,122,122,16,40,108,170,40,40,170,108,40,16, - 2,119,119,252,144,136,196,162,144,8,2,119,119,126,18,34, - 70,138,18,32,2,119,119,32,18,138,70,34,18,126,2,119, - 119,8,144,162,196,136,144,252,2,121,121,8,16,62,64,254, - 64,62,16,8,2,121,121,32,16,248,4,254,4,248,16,32, - 4,117,117,32,72,254,68,32,4,117,117,8,36,254,68,8, - 18,89,121,32,112,168,32,248,32,248,32,32,18,89,121,32, - 32,248,32,248,32,168,112,32,3,119,119,16,32,64,182,64, - 32,16,2,122,122,16,40,84,146,0,16,16,0,16,16,3, - 119,119,16,8,4,218,4,8,16,2,122,122,16,16,0,16, - 16,0,146,84,40,16,4,117,117,144,160,254,160,144,4,117, - 117,18,10,254,10,18,3,119,119,16,48,94,130,94,48,16, - 2,121,121,16,40,68,238,40,40,40,40,56,3,119,119,16, - 24,244,130,244,24,16,2,121,121,56,40,40,40,40,238,68, - 40,16,1,124,124,16,40,68,238,40,40,40,56,0,56,40, - 56,1,122,122,16,40,68,238,40,40,40,108,68,124,1,122, - 122,16,40,68,254,40,40,40,108,68,124,1,122,122,16,40, - 68,254,56,56,56,124,68,124,2,121,121,16,40,68,238,68, - 238,40,40,56,1,122,122,16,40,68,238,68,238,40,108,68, - 124,3,119,119,144,152,244,130,244,152,144,2,119,119,254,128, - 188,176,168,164,130,2,119,119,130,74,42,26,122,2,254,2, - 121,121,16,40,68,238,40,238,68,40,16,255,255,255,255,255, - 255,255,255,255,255,255,255,7,118,118,254,254,254,254,254,254, - 0,114,114,254,254,0,115,115,254,254,254,0,117,117,254,254, - 254,254,254,0,119,119,254,254,254,254,254,254,254,0,120,120, - 254,254,254,254,254,254,254,254,0,122,122,254,254,254,254,254, - 254,254,254,254,254,0,123,123,254,254,254,254,254,254,254,254, - 254,254,254,0,125,125,254,254,254,254,254,254,254,254,254,254, - 254,254,254,0,109,125,252,252,252,252,252,252,252,252,252,252, - 252,252,252,0,93,125,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,0,45,125,192,192,192,192,192,192,192,192,192,192, - 192,192,192,0,29,125,128,128,128,128,128,128,128,128,128,128, - 128,128,128,64,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,1,123,123,84,0,170,0,84,0,170,0,84,0, - 170,0,125,125,170,84,170,84,170,84,170,84,170,84,170,84, - 170,0,125,125,254,84,254,170,254,84,254,170,254,84,254,170, - 254,11,114,114,254,254,96,29,125,128,128,128,128,128,128,128, - 128,128,128,128,128,128,0,71,119,240,240,240,240,240,240,240, - 64,55,119,224,224,224,224,224,224,224,7,70,118,240,240,240, - 240,240,240,0,125,125,240,240,240,240,240,240,254,254,254,254, - 254,254,254,0,125,125,240,240,240,240,240,240,14,14,14,14, - 14,14,14,0,125,125,254,254,254,254,254,254,240,240,240,240, - 240,240,240,0,125,125,254,254,254,254,254,254,14,14,14,14, - 14,14,14,71,54,118,224,224,224,224,224,224,0,125,125,14, - 14,14,14,14,14,240,240,240,240,240,240,240,0,125,125,14, - 14,14,14,14,14,254,254,254,254,254,254,254,3,119,119,254, - 254,254,254,254,254,254,3,119,119,254,130,130,130,130,130,254, - 3,119,119,124,130,130,130,130,130,124,3,119,119,254,130,186, - 186,186,130,254,3,119,119,254,130,254,130,254,130,254,3,119, - 119,254,170,170,170,170,170,254,3,119,119,254,170,254,170,254, - 170,254,3,119,119,254,146,138,198,162,146,254,3,119,119,254, - 146,162,198,138,146,254,3,119,119,254,214,170,214,170,214,254, - 20,85,117,248,248,248,248,248,20,85,117,248,136,136,136,248, - 4,117,117,254,254,254,254,254,4,117,117,254,130,130,130,254, - 19,87,119,248,248,248,248,248,248,248,19,87,119,248,136,136, - 136,136,136,248,4,117,117,62,126,254,252,248,4,117,117,62, - 66,130,132,248,2,120,120,16,16,56,56,124,124,254,254,2, - 120,120,16,16,40,40,68,68,130,254,19,86,118,32,32,112, - 112,248,248,19,86,118,32,32,80,80,136,248,3,119,119,128, - 224,248,254,248,224,128,3,119,119,128,224,152,134,152,224,128, - 4,101,117,192,240,252,240,192,4,101,117,192,176,140,176,192, - 4,117,117,128,240,254,240,128,4,117,117,128,240,142,240,128, - 2,120,120,254,254,124,124,56,56,16,16,2,120,120,254,130, - 68,68,40,40,16,16,19,86,118,248,248,112,112,32,32,19, - 86,118,248,136,80,80,32,32,3,119,119,2,14,62,254,62, - 14,2,3,119,119,2,14,50,194,50,14,2,4,101,117,12, - 60,252,60,12,4,101,117,12,52,196,52,12,4,117,117,2, - 30,254,30,2,4,117,117,2,30,226,30,2,2,119,119,16, - 56,124,254,124,56,16,2,119,119,16,40,68,130,68,40,16, - 2,119,119,16,40,84,186,84,40,16,3,119,119,56,68,146, - 186,146,68,56,18,89,121,32,32,80,80,136,80,80,32,32, - 3,119,119,56,68,130,130,130,68,56,3,119,119,40,0,130, - 0,130,0,40,3,119,119,56,108,170,170,170,108,56,3,119, - 119,56,68,146,170,146,68,56,3,119,119,56,124,254,254,254, - 124,56,3,119,119,56,116,242,242,242,116,56,3,119,119,56, - 92,158,158,158,92,56,3,119,119,56,68,130,254,254,124,56, - 3,119,119,56,124,254,254,130,68,56,3,119,119,56,92,158, - 158,130,68,56,3,119,119,56,76,142,142,254,124,56,51,71, - 119,192,224,240,240,240,224,192,3,71,119,48,112,240,240,240, - 112,48,0,125,125,254,254,254,254,198,130,130,130,198,254,254, - 254,254,0,125,125,254,254,254,254,198,186,186,186,198,254,254, - 254,254,6,119,119,254,254,254,254,198,186,186,0,119,119,186, - 186,198,254,254,254,254,6,68,116,48,64,128,128,54,68,116, - 192,32,16,16,51,68,116,16,16,32,192,3,68,116,128,128, - 64,48,6,116,116,56,68,130,130,3,116,116,130,130,68,56, - 3,119,119,2,6,14,30,62,126,254,3,119,119,128,192,224, - 240,248,252,254,3,119,119,254,252,248,240,224,192,128,3,119, - 119,254,126,62,30,14,6,2,20,85,117,112,136,136,136,112, - 3,119,119,254,226,226,226,226,226,254,3,119,119,254,142,142, - 142,142,142,254,3,119,119,254,254,250,242,226,194,254,3,119, - 119,254,134,142,158,190,254,254,3,119,119,254,146,146,146,146, - 146,254,2,120,120,16,16,40,40,84,124,146,254,2,120,120, - 16,16,56,56,116,116,242,254,2,120,120,16,16,56,56,92, - 92,158,254,3,119,119,56,68,130,130,130,68,56,2,119,119, - 254,146,146,242,130,130,254,2,119,119,254,130,130,242,146,146, - 254,2,119,119,254,130,130,158,146,146,254,2,119,119,254,146, - 146,158,130,130,254,2,119,119,56,84,146,242,130,68,56,2, - 119,119,56,68,130,242,146,84,56,2,119,119,56,68,130,158, - 146,84,56,2,119,119,56,84,146,158,130,68,56,255,255,255, - 255,255,255,255,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 7, '1' Height: 5 - Calculated Max Values w= 7 h= 9 x= 1 y= 2 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_75r[471] U8G_SECTION(".progmem.u8g_font_7x13_75r") = { - 1,7,13,0,254,7,1,71,0,0,32,79,0,9,0,8, - 0,3,119,119,254,254,254,254,254,254,254,3,119,119,254,130, - 130,130,130,130,254,3,119,119,124,130,130,130,130,130,124,3, - 119,119,254,130,186,186,186,130,254,3,119,119,254,130,254,130, - 254,130,254,3,119,119,254,170,170,170,170,170,254,3,119,119, - 254,170,254,170,254,170,254,3,119,119,254,146,138,198,162,146, - 254,3,119,119,254,146,162,198,138,146,254,3,119,119,254,214, - 170,214,170,214,254,20,85,117,248,248,248,248,248,20,85,117, - 248,136,136,136,248,4,117,117,254,254,254,254,254,4,117,117, - 254,130,130,130,254,19,87,119,248,248,248,248,248,248,248,19, - 87,119,248,136,136,136,136,136,248,4,117,117,62,126,254,252, - 248,4,117,117,62,66,130,132,248,2,120,120,16,16,56,56, - 124,124,254,254,2,120,120,16,16,40,40,68,68,130,254,19, - 86,118,32,32,112,112,248,248,19,86,118,32,32,80,80,136, - 248,3,119,119,128,224,248,254,248,224,128,3,119,119,128,224, - 152,134,152,224,128,4,101,117,192,240,252,240,192,4,101,117, - 192,176,140,176,192,4,117,117,128,240,254,240,128,4,117,117, - 128,240,142,240,128,2,120,120,254,254,124,124,56,56,16,16, - 2,120,120,254,130,68,68,40,40,16,16,19,86,118,248,248, - 112,112,32,32,19,86,118,248,136,80,80,32,32,3,119,119, - 2,14,62,254,62,14,2,3,119,119,2,14,50,194,50,14, - 2,4,101,117,12,60,252,60,12,4,101,117,12,52,196,52, - 12,4,117,117,2,30,254,30,2,4,117,117,2,30,226,30, - 2,2,119,119,16,56,124,254,124,56,16,2,119,119,16,40, - 68,130,68,40,16,2,119,119,16,40,84,186,84,40,16,3, - 119,119,56,68,146,186,146,68,56,18,89,121,32,32,80,80, - 136,80,80,32,32,3,119,119,56,68,130,130,130,68,56,3, - 119,119,40,0,130,0,130,0,40,3,119,119,56,108,170,170, - 170,108,56,3,119,119,56,68,146,170,146,68,56,3,119,119, - 56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13B[2172] U8G_SECTION(".progmem.u8g_font_7x13B") = { - 1,7,13,0,254,9,1,105,2,216,32,255,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,112,34,42,122,192,192,0,192,192,192,192,192,192, - 192,3,104,120,16,124,212,208,208,212,124,16,2,105,121,56, - 108,96,96,248,96,96,108,184,3,102,118,204,252,72,72,252, - 204,2,105,121,204,204,120,120,252,48,252,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,106,122,120,204,192, - 120,204,204,120,12,204,120,26,82,114,216,216,2,106,122,120, - 204,132,180,228,228,180,132,204,120,20,87,119,240,24,248,152, - 248,0,248,3,103,119,52,104,208,160,208,104,52,3,100,116, - 252,12,12,12,21,65,113,240,2,106,122,120,204,132,188,172, - 188,180,172,204,120,27,81,113,248,7,100,116,120,204,204,120, - 3,103,119,48,48,252,48,48,0,252,6,70,118,224,176,48, - 96,192,240,6,70,118,224,176,96,48,176,224,25,67,115,48, - 96,192,1,103,119,204,204,204,204,204,252,128,2,105,121,124, - 252,244,244,244,116,52,52,52,38,34,114,192,192,16,50,114, - 96,192,6,70,118,96,224,96,96,96,240,21,87,119,112,248, - 136,248,112,0,248,3,103,119,176,88,44,20,44,88,176,2, - 106,122,96,224,96,96,100,252,28,52,60,12,2,106,122,96, - 224,96,96,120,236,12,24,48,60,2,106,122,224,176,96,48, - 180,236,28,52,60,12,2,106,122,48,48,0,48,48,96,192, - 204,204,120,2,106,122,96,48,0,48,120,204,204,252,204,204, - 2,106,122,24,48,0,48,120,204,204,252,204,204,2,106,122, - 56,108,0,48,120,204,204,252,204,204,2,106,122,52,88,0, - 48,120,204,204,252,204,204,2,106,122,204,204,0,48,120,204, - 204,252,204,204,2,106,122,120,72,120,48,120,204,204,252,204, - 204,2,105,121,124,248,216,216,220,248,216,216,220,0,107,123, - 120,204,192,192,192,192,192,204,120,48,96,2,106,122,96,48, - 0,252,192,192,240,192,192,252,2,106,122,24,48,0,252,192, - 192,240,192,192,252,2,106,122,56,108,0,252,192,192,240,192, - 192,252,2,106,122,204,204,0,252,192,192,240,192,192,252,2, - 106,122,96,48,0,252,48,48,48,48,48,252,2,106,122,24, - 48,0,252,48,48,48,48,48,252,2,106,122,56,108,0,252, - 48,48,48,48,48,252,2,106,122,204,204,0,252,48,48,48, - 48,48,252,2,105,121,248,108,108,108,236,108,108,108,248,2, - 106,122,52,88,0,204,204,236,252,220,204,204,2,106,122,96, - 48,0,120,204,204,204,204,204,120,2,106,122,24,48,0,120, - 204,204,204,204,204,120,2,106,122,56,108,0,120,204,204,204, - 204,204,120,2,106,122,52,88,0,120,204,204,204,204,204,120, - 2,106,122,204,204,0,120,204,204,204,204,204,120,3,101,117, - 204,120,48,120,204,1,106,122,4,120,220,220,220,236,236,236, - 120,128,2,106,122,96,48,0,204,204,204,204,204,204,120,2, - 106,122,24,48,0,204,204,204,204,204,204,120,2,106,122,56, - 108,0,204,204,204,204,204,204,120,2,106,122,204,204,0,204, - 204,204,204,204,204,120,2,106,122,24,48,0,204,72,120,48, - 48,48,48,2,105,121,192,248,204,204,204,248,192,192,192,2, - 105,121,120,204,204,216,216,204,204,204,216,2,105,121,48,24, - 0,120,12,124,204,220,124,2,105,121,24,48,0,120,12,124, - 204,220,124,2,105,121,56,108,0,120,12,124,204,220,124,2, - 105,121,52,88,0,120,12,124,204,220,124,2,105,121,108,108, - 0,120,12,124,204,220,124,2,106,122,56,40,56,0,120,12, - 124,204,220,124,2,102,118,120,52,124,176,180,104,0,104,120, - 120,204,192,192,204,120,48,96,2,105,121,48,24,0,120,204, - 252,192,204,120,2,105,121,24,48,0,120,204,252,192,204,120, - 2,105,121,56,108,0,120,204,252,192,204,120,2,105,121,108, - 108,0,120,204,252,192,204,120,18,73,121,192,96,0,224,96, - 96,96,96,240,18,73,121,48,96,0,224,96,96,96,96,240, - 2,89,121,112,216,0,112,48,48,48,48,120,18,89,121,216, - 216,0,224,96,96,96,96,240,2,106,122,104,48,120,12,124, - 204,204,204,204,120,2,105,121,52,88,0,248,236,204,204,204, - 204,2,105,121,96,48,0,120,204,204,204,204,120,2,105,121, - 24,48,0,120,204,204,204,204,120,2,105,121,56,108,0,120, - 204,204,204,204,120,2,105,121,52,88,0,120,204,204,204,204, - 120,2,105,121,108,108,0,120,204,204,204,204,120,3,103,119, - 48,48,0,252,0,48,48,1,105,121,4,120,204,220,204,236, - 204,120,128,2,105,121,96,48,0,204,204,204,204,220,124,2, - 105,121,24,48,0,204,204,204,204,220,124,2,105,121,56,108, - 0,204,204,204,204,220,124,2,105,121,108,108,0,204,204,204, - 204,220,124,0,107,123,24,48,0,204,204,204,220,124,12,204, - 120,0,106,122,192,192,216,236,204,204,236,216,192,192,0,107, - 123,108,108,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Br[1041] U8G_SECTION(".progmem.u8g_font_7x13Br") = { - 1,7,13,0,254,9,1,105,2,216,32,127,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13[2157] U8G_SECTION(".progmem.u8g_font_7x13") = { - 1,7,13,0,254,9,1,95,2,207,32,255,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,13,0,112,50,25,121, - 128,0,128,128,128,128,128,128,128,19,88,120,32,112,168,160, - 160,168,112,32,2,105,121,56,68,64,64,224,64,64,68,184, - 3,102,118,132,120,72,72,120,132,2,89,121,136,136,80,80, - 248,32,248,32,32,50,25,121,128,128,128,128,0,128,128,128, - 128,18,74,122,96,144,128,96,144,144,96,16,144,96,25,66, - 114,144,144,2,105,121,120,132,180,164,164,164,180,132,120,20, - 87,119,112,8,120,136,120,0,248,3,103,119,20,40,80,160, - 80,40,20,20,83,115,248,8,8,22,65,113,240,2,105,121, - 120,132,180,172,172,180,172,132,120,26,81,113,248,23,68,116, - 96,144,144,96,19,87,119,32,32,248,32,32,0,248,22,54, - 118,64,160,32,64,128,224,22,54,118,224,32,64,32,160,64, - 42,34,114,64,128,1,103,119,132,132,132,132,204,180,128,2, - 105,121,124,232,232,232,104,40,40,40,40,38,33,113,192,32, - 34,114,64,128,22,54,118,64,192,64,64,64,224,21,70,118, - 96,144,144,96,0,240,3,103,119,160,80,40,20,40,80,160, - 2,106,122,64,192,64,64,68,236,20,20,28,4,2,106,122, - 64,192,64,64,72,244,4,8,16,28,2,106,122,224,32,64, - 32,164,76,20,20,28,4,2,105,121,32,0,32,32,64,128, - 132,132,120,2,106,122,32,16,0,48,72,132,132,252,132,132, - 2,106,122,16,32,0,48,72,132,132,252,132,132,2,106,122, - 48,72,0,48,72,132,132,252,132,132,2,106,122,100,152,0, - 48,72,132,132,252,132,132,2,106,122,72,72,0,48,72,132, - 132,252,132,132,2,106,122,48,72,48,48,72,132,132,252,132, - 132,2,105,121,92,160,160,160,184,224,160,160,188,0,107,123, - 120,132,128,128,128,128,128,132,120,16,32,2,106,122,32,16, - 0,252,128,128,240,128,128,252,2,106,122,16,32,0,252,128, - 128,240,128,128,252,2,106,122,48,72,0,252,128,128,240,128, - 128,252,2,106,122,72,72,0,252,128,128,240,128,128,252,18, - 90,122,64,32,0,248,32,32,32,32,32,248,18,90,122,32, - 64,0,248,32,32,32,32,32,248,18,90,122,32,80,0,248, - 32,32,32,32,32,248,18,90,122,136,136,0,248,32,32,32, - 32,32,248,2,105,121,248,68,68,68,228,68,68,68,248,2, - 106,122,100,152,0,132,196,164,164,148,140,132,2,106,122,32, - 16,0,120,132,132,132,132,132,120,2,106,122,16,32,0,120, - 132,132,132,132,132,120,2,106,122,48,72,0,120,132,132,132, - 132,132,120,2,106,122,100,152,0,120,132,132,132,132,132,120, - 2,106,122,72,72,0,120,132,132,132,132,132,120,3,102,118, - 132,72,48,48,72,132,1,107,123,4,120,140,148,148,164,164, - 164,196,120,128,2,106,122,32,16,0,132,132,132,132,132,132, - 120,2,106,122,16,32,0,132,132,132,132,132,132,120,2,106, - 122,48,72,0,132,132,132,132,132,132,120,2,106,122,72,72, - 0,132,132,132,132,132,132,120,18,90,122,16,32,0,136,136, - 80,32,32,32,32,2,105,121,128,248,132,132,132,248,128,128, - 128,18,89,121,96,144,144,160,160,144,136,136,176,2,105,121, - 32,16,0,120,4,124,132,140,116,2,105,121,16,32,0,120, - 4,124,132,140,116,2,105,121,48,72,0,120,4,124,132,140, - 116,2,105,121,100,152,0,120,4,124,132,140,116,2,105,121, - 72,72,0,120,4,124,132,140,116,2,106,122,48,72,48,0, - 120,4,124,132,140,116,2,102,118,104,20,124,144,148,104,0, - 104,120,120,132,128,128,132,120,16,32,2,105,121,32,16,0, - 120,132,252,128,132,120,2,105,121,16,32,0,120,132,252,128, - 132,120,2,105,121,48,72,0,120,132,252,128,132,120,2,105, - 121,72,72,0,120,132,252,128,132,120,18,89,121,64,32,0, - 96,32,32,32,32,248,18,89,121,32,64,0,96,32,32,32, - 32,248,18,89,121,96,144,0,96,32,32,32,32,248,18,89, - 121,144,144,0,96,32,32,32,32,248,2,106,122,72,48,80, - 8,120,132,132,132,132,120,2,105,121,100,152,0,184,196,132, - 132,132,132,2,105,121,32,16,0,120,132,132,132,132,120,2, - 105,121,16,32,0,120,132,132,132,132,120,2,105,121,48,72, - 0,120,132,132,132,132,120,2,105,121,100,152,0,120,132,132, - 132,132,120,2,105,121,72,72,0,120,132,132,132,132,120,19, - 87,119,32,32,0,248,0,32,32,1,104,120,4,120,140,148, - 164,196,120,128,2,105,121,32,16,0,132,132,132,132,140,116, - 2,105,121,16,32,0,132,132,132,132,140,116,2,105,121,48, - 72,0,132,132,132,132,140,116,2,105,121,72,72,0,132,132, - 132,132,140,116,0,107,123,16,32,0,132,132,132,140,116,4, - 132,120,0,106,122,128,128,184,196,132,132,196,184,128,128,0, - 107,123,72,72,0,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13O[2158] U8G_SECTION(".progmem.u8g_font_7x13O") = { - 1,7,13,0,254,9,1,96,2,208,32,255,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,13,0,112,34,41, - 121,64,0,64,64,64,128,128,128,128,3,104,120,16,56,84, - 80,160,168,112,32,2,121,121,28,34,32,32,112,32,64,68, - 184,3,118,118,66,60,36,72,120,132,2,105,121,68,68,40, - 40,124,16,248,32,32,34,41,121,64,64,64,64,0,128,128, - 128,128,2,106,122,24,36,32,48,72,72,48,16,144,96,25, - 66,114,144,144,2,121,121,60,66,90,82,82,164,180,132,120, - 4,103,119,56,4,60,68,60,0,248,3,103,119,20,40,80, - 160,160,80,40,20,83,115,248,16,16,22,65,113,240,2,121, - 121,60,66,90,86,172,180,172,132,120,26,81,113,248,23,68, - 116,96,144,144,96,19,87,119,16,16,120,32,32,0,248,22, - 70,118,32,80,16,96,128,224,22,70,118,96,16,96,32,160, - 64,42,34,114,64,128,1,119,119,66,66,66,132,204,180,128, - 2,105,121,124,232,232,232,40,80,80,80,80,38,33,113,192, - 32,34,114,64,128,38,54,118,32,96,32,64,64,224,21,86, - 118,48,72,72,48,0,240,3,103,119,80,40,20,20,40,80, - 160,2,106,122,32,96,32,64,68,236,20,40,56,8,2,106, - 122,32,96,32,64,72,244,4,24,32,56,2,106,122,96,16, - 96,32,164,76,20,40,56,8,2,105,121,16,0,16,16,32, - 64,132,132,120,2,122,122,16,8,0,24,36,66,66,124,132, - 132,2,122,122,8,16,0,24,36,66,66,124,132,132,2,122, - 122,24,36,0,24,36,66,66,124,132,132,2,122,122,50,76, - 0,24,36,66,66,124,132,132,2,122,122,36,36,0,24,36, - 66,66,124,132,132,2,122,122,24,36,24,24,36,66,66,124, - 132,132,2,121,121,46,80,80,80,124,160,160,160,188,0,123, - 123,60,66,64,64,64,128,128,132,120,16,32,2,122,122,16, - 8,0,126,64,64,112,128,128,252,2,122,122,8,16,0,126, - 64,64,112,128,128,252,2,122,122,24,36,0,126,64,64,112, - 128,128,252,2,122,122,36,36,0,126,64,64,112,128,128,252, - 2,106,122,32,16,0,124,16,16,32,32,32,248,2,106,122, - 16,32,0,124,16,16,32,32,32,248,2,106,122,16,40,0, - 124,16,16,32,32,32,248,2,106,122,68,68,0,124,16,16, - 32,32,32,248,2,121,121,124,34,34,34,242,68,68,68,248, - 2,122,122,50,76,0,66,98,82,82,140,140,132,2,122,122, - 16,8,0,60,66,66,132,132,132,120,2,122,122,8,16,0, - 60,66,66,132,132,132,120,2,122,122,24,36,0,60,66,66, - 132,132,132,120,2,122,122,50,76,0,60,66,66,132,132,132, - 120,2,122,122,36,36,0,60,66,66,132,132,132,120,3,118, - 118,66,36,24,48,72,132,1,123,123,2,60,70,74,74,82, - 164,164,196,120,128,2,122,122,16,8,0,66,66,66,132,132, - 132,120,2,122,122,8,16,0,66,66,66,132,132,132,120,2, - 122,122,24,36,0,66,66,66,132,132,132,120,2,122,122,36, - 36,0,66,66,66,132,132,132,120,18,90,122,16,32,0,136, - 136,80,32,32,64,64,2,121,121,64,124,66,66,66,124,128, - 128,128,18,89,121,48,72,72,80,80,144,136,136,176,2,121, - 121,16,8,0,60,2,124,132,140,116,2,121,121,8,16,0, - 60,2,124,132,140,116,2,121,121,24,36,0,60,2,124,132, - 140,116,2,121,121,50,76,0,60,2,124,132,140,116,2,121, - 121,36,36,0,60,2,124,132,140,116,2,122,122,24,36,24, - 0,60,2,124,132,140,116,2,118,118,52,10,124,144,148,104, - 0,120,120,60,66,128,128,132,120,16,32,2,121,121,16,8, - 0,60,66,124,128,132,120,2,121,121,8,16,0,60,66,124, - 128,132,120,2,121,121,24,36,0,60,66,124,128,132,120,2, - 121,121,36,36,0,60,66,124,128,132,120,18,89,121,32,16, - 0,48,16,32,32,32,248,18,89,121,16,32,0,48,16,32, - 32,32,248,18,89,121,48,72,0,48,16,32,32,32,248,18, - 89,121,72,72,0,48,16,32,32,32,248,2,122,122,36,24, - 40,4,60,66,66,132,132,120,2,121,121,50,76,0,92,98, - 66,132,132,132,2,121,121,16,8,0,60,66,66,132,132,120, - 2,121,121,8,16,0,60,66,66,132,132,120,2,121,121,24, - 36,0,60,66,66,132,132,120,2,121,121,50,76,0,60,66, - 66,132,132,120,2,121,121,36,36,0,60,66,66,132,132,120, - 19,71,119,32,32,0,240,0,64,64,1,120,120,2,60,74, - 82,164,196,120,128,2,121,121,16,8,0,66,66,66,132,140, - 116,2,121,121,8,16,0,66,66,66,132,140,116,2,121,121, - 24,36,0,66,66,66,132,140,116,2,121,121,36,36,0,66, - 66,66,132,140,116,0,123,123,8,16,0,66,66,132,140,116, - 4,132,120,0,122,122,64,64,92,98,66,132,196,184,128,128, - 0,123,123,36,36,0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Or[1035] U8G_SECTION(".progmem.u8g_font_7x13Or") = { - 1,7,13,0,254,9,1,96,2,208,32,127,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13r[1034] U8G_SECTION(".progmem.u8g_font_7x13r") = { - 1,7,13,0,254,9,1,95,2,207,32,127,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14B[2390] U8G_SECTION(".progmem.u8g_font_7x14B") = { - 1,7,14,0,254,10,1,137,3,30,32,255,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,34,42,122,192,192,0,192,192,192,192,192,192,192,1, - 105,121,48,124,180,176,176,176,180,124,48,2,105,121,56,108, - 96,96,240,96,96,248,108,4,102,118,204,120,104,88,120,204, - 2,106,122,132,204,120,252,48,48,252,48,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,107,123,120,204,96, - 48,120,204,120,48,24,204,120,27,82,114,216,216,2,107,123, - 120,204,252,236,236,236,236,236,252,204,120,21,88,120,112,216, - 120,216,216,120,0,248,2,103,119,28,60,120,240,120,60,28, - 2,101,117,252,252,12,12,12,22,65,113,240,2,107,123,120, - 204,252,236,236,252,236,236,236,204,120,28,81,113,248,25,84, - 116,112,216,216,112,2,102,118,48,48,252,48,48,252,22,87, - 119,112,216,24,48,96,192,248,22,87,119,112,216,24,112,24, - 216,112,26,67,115,48,96,192,0,104,120,204,204,204,204,220, - 252,192,192,0,108,124,124,236,236,236,236,108,44,44,44,44, - 44,60,39,34,114,192,192,32,51,115,96,96,192,22,54,118, - 96,224,96,96,96,96,22,86,118,112,216,216,112,0,248,2, - 103,119,224,112,56,28,56,112,224,2,106,122,100,236,104,120, - 120,52,108,92,220,140,2,106,122,100,236,104,120,120,56,116, - 76,216,156,2,106,122,196,108,232,120,240,60,108,220,156,12, - 0,107,123,96,96,0,96,96,96,96,96,204,204,120,2,108, - 124,96,48,0,120,252,204,204,204,252,204,204,204,2,108,124, - 24,48,0,120,252,204,204,204,252,204,204,204,2,108,124,48, - 120,0,120,252,204,204,204,252,204,204,204,2,108,124,104,176, - 0,120,252,204,204,204,252,204,204,204,2,108,124,204,204,0, - 120,252,204,204,204,252,204,204,204,2,108,124,48,72,48,0, - 120,252,204,204,252,204,204,204,2,122,122,126,216,216,216,220, - 248,216,216,216,222,0,108,124,120,204,204,192,192,192,192,204, - 204,120,48,96,2,108,124,96,48,0,252,192,192,192,248,192, - 192,192,252,2,108,124,24,48,0,252,192,192,192,248,192,192, - 192,252,2,108,124,48,120,0,252,192,192,192,248,192,192,192, - 252,2,108,124,204,204,0,252,192,192,192,248,192,192,192,252, - 2,108,124,96,48,0,252,48,48,48,48,48,48,48,252,2, - 108,124,24,48,0,252,48,48,48,48,48,48,48,252,2,108, - 124,48,120,0,252,48,48,48,48,48,48,48,252,2,108,124, - 204,204,0,252,48,48,48,48,48,48,48,252,2,122,122,120, - 108,102,102,254,102,102,102,108,120,2,108,124,104,176,0,204, - 236,236,236,220,220,220,204,204,2,108,124,96,48,0,120,204, - 204,204,204,204,204,204,120,2,108,124,24,48,0,120,204,204, - 204,204,204,204,204,120,2,108,124,48,120,0,120,204,204,204, - 204,204,204,204,120,2,108,124,104,176,0,120,204,204,204,204, - 204,204,204,120,2,108,124,204,204,0,120,204,204,204,204,204, - 204,204,120,2,119,119,198,108,56,56,108,198,130,0,110,126, - 4,4,120,220,220,220,220,236,236,236,236,120,128,128,2,108, - 124,96,48,0,204,204,204,204,204,204,204,204,120,2,108,124, - 24,48,0,204,204,204,204,204,204,204,204,120,2,108,124,48, - 120,0,204,204,204,204,204,204,204,204,120,2,108,124,204,204, - 0,204,204,204,204,204,204,204,204,120,2,108,124,24,48,0, - 204,204,204,120,120,120,48,48,48,2,106,122,192,192,248,204, - 204,204,204,248,192,192,2,106,122,56,108,108,108,120,108,108, - 108,108,248,2,106,122,96,48,0,120,204,60,108,204,204,124, - 2,106,122,24,48,0,120,204,60,108,204,204,124,2,106,122, - 48,120,0,120,204,60,108,204,204,124,2,106,122,104,176,0, - 120,204,60,108,204,204,124,2,106,122,204,204,0,120,204,60, - 108,204,204,124,2,107,123,48,72,48,0,120,204,60,108,204, - 204,124,2,119,119,124,218,58,94,216,222,124,0,105,121,120, - 204,192,192,192,204,120,48,96,2,106,122,96,48,0,120,204, - 204,252,192,204,120,2,106,122,24,48,0,120,204,204,252,192, - 204,120,2,106,122,48,120,0,120,204,204,252,192,204,120,2, - 106,122,204,204,0,120,204,204,252,192,204,120,34,58,122,192, - 96,0,96,96,96,96,96,96,96,34,58,122,96,192,0,192, - 192,192,192,192,192,192,18,74,122,96,240,0,96,96,96,96, - 96,96,96,2,106,122,204,204,0,48,48,48,48,48,48,48, - 2,107,123,216,112,240,152,12,124,204,204,204,204,120,2,106, - 122,104,176,0,248,204,204,204,204,204,204,2,106,122,96,48, - 0,120,204,204,204,204,204,120,2,106,122,24,48,0,120,204, - 204,204,204,204,120,2,106,122,48,120,0,120,204,204,204,204, - 204,120,2,106,122,104,176,0,120,204,204,204,204,204,120,2, - 106,122,204,204,0,120,204,204,204,204,204,120,2,104,120,48, - 48,0,252,252,0,48,48,0,107,123,4,8,120,220,220,236, - 236,204,120,128,128,2,106,122,96,48,0,204,204,204,204,204, - 204,124,2,106,122,24,48,0,204,204,204,204,204,204,124,2, - 106,122,48,120,0,204,204,204,204,204,204,124,2,106,122,204, - 204,0,204,204,204,204,204,204,124,0,108,124,24,48,0,204, - 204,204,120,56,56,48,240,96,0,108,124,192,192,192,248,204, - 204,204,204,204,248,192,192,0,108,124,204,204,0,204,204,204, - 120,56,56,48,240,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 6 h=13 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14Br[1151] U8G_SECTION(".progmem.u8g_font_7x14Br") = { - 1,7,14,0,254,10,1,137,3,30,32,127,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14[2374] U8G_SECTION(".progmem.u8g_font_7x14") = { - 1,7,14,0,254,10,1,138,3,30,32,255,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,50,26,122,128,128,0,128,128,128,128,128,128,128,1, - 105,121,32,120,164,160,160,160,164,120,32,18,89,121,48,72, - 64,64,240,64,64,240,72,4,102,118,132,120,72,72,120,132, - 18,90,122,136,80,80,32,248,32,248,32,32,32,50,26,122, - 128,128,128,128,0,0,128,128,128,128,2,107,123,120,132,64, - 48,72,132,72,48,8,132,120,27,66,114,144,144,2,107,123, - 120,132,180,204,196,196,196,204,180,132,120,21,88,120,112,136, - 120,136,152,104,0,248,2,103,119,20,40,80,160,80,40,20, - 18,84,116,248,8,8,8,22,65,113,240,2,107,123,120,132, - 244,204,204,244,204,204,204,132,120,27,81,113,248,25,68,116, - 96,144,144,96,18,86,118,32,32,248,32,32,248,22,71,119, - 96,144,16,32,64,128,240,22,71,119,96,144,16,96,16,144, - 96,42,51,115,32,64,128,16,88,120,136,136,136,136,216,168, - 128,128,16,92,124,120,168,168,168,168,104,40,40,40,40,40, - 56,55,17,113,128,32,35,115,64,64,128,38,55,119,64,192, - 64,64,64,64,224,22,70,118,96,144,144,96,0,240,2,103, - 119,160,80,40,20,40,80,160,2,106,122,64,196,72,72,80, - 36,44,84,156,132,2,106,122,64,196,72,72,80,40,52,68, - 136,156,2,106,122,196,36,72,48,208,36,76,84,156,4,0, - 107,123,32,32,0,32,32,32,32,64,132,132,120,2,108,124, - 32,16,0,48,72,132,132,252,132,132,132,132,2,108,124,16, - 32,0,48,72,132,132,252,132,132,132,132,2,108,124,48,72, - 0,48,72,132,132,252,132,132,132,132,2,108,124,100,152,0, - 48,72,132,132,252,132,132,132,132,2,107,123,72,0,48,72, - 132,132,252,132,132,132,132,2,107,123,48,72,48,72,132,132, - 252,132,132,132,132,2,106,122,60,80,144,144,252,144,144,144, - 144,156,0,108,124,120,132,132,128,128,128,128,132,132,120,16, - 32,2,108,124,32,16,0,252,128,128,128,248,128,128,128,252, - 2,108,124,16,32,0,252,128,128,128,248,128,128,128,252,2, - 108,124,48,72,0,252,128,128,128,248,128,128,128,252,2,107, - 123,72,0,252,128,128,128,248,128,128,128,252,18,92,124,64, - 32,0,248,32,32,32,32,32,32,32,248,18,92,124,16,32, - 0,248,32,32,32,32,32,32,32,248,18,92,124,32,80,0, - 248,32,32,32,32,32,32,32,248,18,91,123,80,0,248,32, - 32,32,32,32,32,32,248,2,122,122,120,68,66,66,242,66, - 66,66,68,120,2,108,124,100,152,0,196,196,164,164,148,148, - 148,140,140,2,108,124,32,16,0,120,132,132,132,132,132,132, - 132,120,2,108,124,16,32,0,120,132,132,132,132,132,132,132, - 120,2,108,124,48,72,0,120,132,132,132,132,132,132,132,120, - 2,108,124,100,152,0,120,132,132,132,132,132,132,132,120,2, - 107,123,72,0,120,132,132,132,132,132,132,132,120,2,119,119, - 130,68,40,16,40,68,130,0,110,126,4,4,120,140,148,148, - 148,164,164,164,196,120,128,128,2,108,124,32,16,0,132,132, - 132,132,132,132,132,132,120,2,108,124,16,32,0,132,132,132, - 132,132,132,132,132,120,2,108,124,48,72,0,132,132,132,132, - 132,132,132,132,120,2,107,123,72,0,132,132,132,132,132,132, - 132,132,120,18,92,124,16,32,0,136,136,80,80,32,32,32, - 32,32,2,106,122,128,128,248,132,132,132,132,248,128,128,2, - 106,122,48,72,72,72,112,72,68,68,68,248,2,106,122,32, - 16,0,120,132,4,124,132,132,124,2,106,122,8,16,0,120, - 132,4,124,132,132,124,2,106,122,48,72,0,120,132,4,124, - 132,132,124,2,106,122,100,152,0,120,132,4,124,132,132,124, - 2,105,121,72,0,120,132,4,124,132,132,124,2,107,123,48, - 72,48,0,120,132,4,124,132,132,124,2,119,119,124,146,50, - 94,144,146,124,0,105,121,120,132,128,128,128,132,120,16,32, - 2,106,122,32,16,0,120,132,132,252,128,132,120,2,106,122, - 16,32,0,120,132,132,252,128,132,120,2,106,122,48,72,0, - 120,132,132,252,128,132,120,2,105,121,72,0,120,132,132,252, - 128,132,120,18,90,122,64,32,0,96,32,32,32,32,32,248, - 18,90,122,16,32,0,96,32,32,32,32,32,248,18,90,122, - 96,144,0,96,32,32,32,32,32,248,18,89,121,80,0,96, - 32,32,32,32,32,248,18,91,123,80,32,80,8,120,136,136, - 136,136,136,112,2,106,122,100,152,0,184,196,132,132,132,132, - 132,2,106,122,32,16,0,120,132,132,132,132,132,120,2,106, - 122,16,32,0,120,132,132,132,132,132,120,2,106,122,48,72, - 0,120,132,132,132,132,132,120,2,106,122,100,152,0,120,132, - 132,132,132,132,120,2,105,121,72,0,120,132,132,132,132,132, - 120,2,101,117,48,0,252,0,48,0,107,123,4,8,120,148, - 148,164,164,196,120,128,128,2,106,122,32,16,0,132,132,132, - 132,132,140,116,2,106,122,16,32,0,132,132,132,132,132,140, - 116,2,106,122,48,72,0,132,132,132,132,132,140,116,2,105, - 121,72,0,132,132,132,132,132,140,116,0,108,124,16,32,0, - 132,132,68,72,40,56,16,144,96,0,108,124,128,128,128,184, - 196,132,132,132,196,184,128,128,0,107,123,72,0,132,132,68, - 72,40,56,16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14r[1151] U8G_SECTION(".progmem.u8g_font_7x14r") = { - 1,7,14,0,254,10,1,138,3,30,32,127,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 7 y= 9 dx= 8 dy= 0 ascent=11 len=13 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[2420] U8G_SECTION(".progmem.u8g_font_8x13_67_75") = { - 1,8,13,0,254,3,1,94,2,193,32,255,0,11,254,10, - 0,3,133,133,36,18,255,18,36,18,88,136,32,32,168,112, - 32,168,112,32,2,119,135,16,34,68,248,68,34,16,18,119, - 135,16,136,68,62,68,136,16,3,133,133,32,65,255,65,32, - 18,89,137,32,112,168,32,32,32,32,32,112,3,133,133,4, - 130,255,130,4,18,89,137,112,32,32,32,32,32,168,112,32, - 2,122,138,16,56,84,16,16,16,84,56,16,254,3,133,133, - 34,65,254,64,32,3,133,133,68,130,127,2,4,3,133,133, - 34,69,254,68,36,3,133,133,68,162,127,34,36,3,133,133, - 36,90,231,66,36,3,133,133,36,82,255,82,36,18,106,138, - 64,64,128,152,104,8,16,84,56,16,18,106,138,32,64,252, - 68,36,4,4,4,4,4,18,106,138,16,8,252,136,144,128, - 128,128,128,128,18,106,138,4,4,4,4,4,36,68,252,64, - 32,18,106,138,128,128,128,128,128,144,136,252,8,16,18,104, - 136,240,16,16,16,16,84,56,16,18,90,138,8,8,8,8, - 8,40,72,248,64,32,4,135,135,12,18,33,33,169,112,32, - 4,135,135,48,72,132,132,149,14,4,2,136,136,255,0,112, - 96,80,8,4,2,2,136,136,136,144,190,144,9,125,9,17, - 4,135,135,100,142,149,132,132,72,48,4,135,135,38,113,169, - 33,33,18,12,5,131,131,32,64,255,3,131,131,255,64,32, - 50,57,137,128,192,160,128,128,128,128,128,128,34,57,137,32, - 96,160,32,32,32,32,32,32,5,131,131,4,2,255,3,131, - 131,255,2,4,50,57,137,128,128,128,128,128,128,160,192,128, - 34,57,137,32,32,32,32,32,32,160,96,32,2,121,137,8, - 4,254,4,40,64,254,64,32,2,138,138,36,116,172,36,36, - 36,36,53,46,36,2,121,137,32,64,254,64,40,4,254,4, - 8,2,139,139,32,64,255,64,32,0,32,64,255,64,32,2, - 122,138,68,238,68,68,68,68,68,68,68,68,2,139,139,4, - 2,255,2,4,0,4,2,255,2,4,2,122,138,68,68,68, - 68,68,68,68,68,238,68,2,119,135,32,64,254,0,254,4, - 8,2,119,135,8,4,254,0,254,64,32,2,135,135,16,33, - 127,130,127,36,16,3,133,133,36,126,153,126,36,2,135,135, - 8,36,254,65,254,132,8,2,135,135,16,32,127,128,127,32, - 16,18,121,137,16,40,108,170,40,40,40,40,40,2,135,135, - 8,4,254,1,254,4,8,2,121,137,40,40,40,40,40,170, - 108,40,16,3,133,133,36,126,129,126,36,2,123,139,16,40, - 108,170,40,40,40,170,108,40,16,2,119,135,252,144,136,196, - 162,144,8,18,119,135,126,18,34,70,138,18,32,18,119,135, - 32,18,138,70,34,18,126,2,119,135,8,144,162,196,136,144, - 252,2,137,137,8,16,63,64,255,64,63,16,8,2,137,137, - 16,8,252,2,255,2,252,8,16,2,135,135,16,32,72,245, - 66,32,16,2,135,135,8,4,18,175,66,4,8,2,122,138, - 16,56,84,146,16,124,16,124,16,16,2,122,138,16,16,124, - 16,124,16,146,84,56,16,2,119,135,16,32,64,182,64,32, - 16,2,122,138,16,40,84,146,0,16,16,0,16,16,18,119, - 135,16,8,4,218,4,8,16,2,122,138,16,16,0,16,16, - 0,146,84,40,16,3,117,133,144,160,254,160,144,19,117,133, - 18,10,254,10,18,2,135,135,16,48,95,129,95,48,16,2, - 121,137,16,40,68,238,40,40,40,40,56,2,135,135,8,12, - 250,129,250,12,8,2,121,137,56,40,40,40,40,238,68,40, - 16,1,123,139,16,40,68,238,40,40,56,0,56,40,56,1, - 122,138,16,40,68,238,40,40,40,108,68,124,1,122,138,16, - 40,68,254,40,40,40,108,68,124,1,122,138,16,40,68,254, - 56,56,56,124,68,124,2,121,137,16,40,68,238,68,238,40, - 40,56,1,122,138,16,40,68,238,68,238,40,108,68,124,2, - 135,135,136,140,250,129,250,140,136,2,119,135,254,128,188,176, - 168,164,130,2,119,135,130,74,42,26,122,2,254,2,121,137, - 16,40,68,238,40,238,68,40,16,4,133,133,36,82,255,82, - 36,2,138,138,36,46,53,36,36,36,36,172,116,36,0,141, - 141,4,2,255,2,4,2,255,2,4,2,255,2,4,4,117, - 133,40,72,254,72,40,20,117,133,40,36,254,36,40,4,117, - 133,16,84,254,84,16,4,133,133,42,74,255,74,42,4,133, - 133,84,82,255,82,84,4,133,133,24,90,255,90,24,3,135, - 135,16,48,80,159,80,48,16,3,135,135,8,12,10,249,10, - 12,8,4,133,133,36,102,189,102,36,7,134,134,255,255,255, - 255,255,255,0,130,130,255,255,0,131,131,255,255,255,0,133, - 133,255,255,255,255,255,0,135,135,255,255,255,255,255,255,255, - 0,136,136,255,255,255,255,255,255,255,255,0,138,138,255,255, - 255,255,255,255,255,255,255,255,0,139,139,255,255,255,255,255, - 255,255,255,255,255,255,0,141,141,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,125,141,254,254,254,254,254,254,254, - 254,254,254,254,254,254,0,109,141,252,252,252,252,252,252,252, - 252,252,252,252,252,252,0,93,141,248,248,248,248,248,248,248, - 248,248,248,248,248,248,0,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,0,61,141,224,224,224,224,224,224,224, - 224,224,224,224,224,224,0,45,141,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,29,141,128,128,128,128,128,128,128, - 128,128,128,128,128,128,64,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,1,139,139,85,0,170,0,85,0,170, - 0,85,0,170,0,141,141,170,85,170,85,170,85,170,85,170, - 85,170,85,170,0,141,141,255,85,255,170,255,85,255,170,255, - 85,255,170,255,11,130,130,255,255,112,29,141,128,128,128,128, - 128,128,128,128,128,128,128,128,128,0,71,135,240,240,240,240, - 240,240,240,64,71,135,240,240,240,240,240,240,240,7,70,134, - 240,240,240,240,240,240,0,141,141,240,240,240,240,240,240,255, - 255,255,255,255,255,255,0,141,141,240,240,240,240,240,240,15, - 15,15,15,15,15,15,0,141,141,255,255,255,255,255,255,240, - 240,240,240,240,240,240,0,141,141,255,255,255,255,255,255,15, - 15,15,15,15,15,15,71,70,134,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,240,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,255,255,255,255,255,255,255,2, - 119,135,254,254,254,254,254,254,254,2,119,135,254,130,130,130, - 130,130,254,2,119,135,124,130,130,130,130,130,124,2,119,135, - 254,130,186,186,186,130,254,2,119,135,254,130,254,130,254,130, - 254,2,119,135,254,170,170,170,170,170,254,2,119,135,254,170, - 254,170,254,170,254,2,119,135,254,146,138,198,162,146,254,2, - 119,135,254,146,162,198,138,146,254,2,119,135,254,214,170,214, - 170,214,254,37,51,131,224,224,224,37,51,131,224,160,224,21, - 100,132,252,252,252,252,21,100,132,252,132,132,252,18,89,137, - 248,248,248,248,248,248,248,248,248,18,89,137,248,136,136,136, - 136,136,136,136,248,5,132,132,31,62,124,248,5,132,132,31, - 34,68,248,2,136,136,24,24,60,60,126,126,255,255,2,136, - 136,24,24,36,36,66,66,129,255,18,102,134,48,48,120,120, - 252,252,18,102,134,48,48,72,72,132,252,18,107,139,128,192, - 224,240,248,252,248,240,224,192,128,18,107,139,128,192,160,144, - 136,132,136,144,160,192,128,20,101,133,192,240,252,240,192,20, - 101,133,192,176,140,176,192,3,119,135,128,224,248,254,248,224, - 128,3,119,135,128,224,152,134,152,224,128,2,136,136,255,255, - 126,126,60,60,24,24,2,136,136,255,129,66,66,36,36,24, - 24,18,102,134,252,252,120,120,48,48,18,102,134,252,132,72, - 72,48,48,18,107,139,4,12,28,60,124,252,124,60,28,12, - 4,18,107,139,4,12,20,36,68,132,68,36,20,12,4,20, - 101,133,12,60,252,60,12,20,101,133,12,52,196,52,12,3, - 119,135,2,14,62,254,62,14,2,3,119,135,2,14,50,194, - 50,14,2,3,119,135,16,56,124,254,124,56,16,3,119,135, - 16,40,68,130,68,40,16,3,119,135,16,40,84,186,84,40, - 16,3,119,135,56,68,146,186,146,68,56,18,105,137,48,48, - 72,72,132,72,72,48,48,2,136,136,60,66,129,129,129,129, - 66,60,2,136,136,24,66,0,129,129,0,66,24,2,136,136, - 60,106,171,171,171,171,106,60,2,136,136,60,66,153,165,165, - 153,66,60,2,136,136,60,126,255,255,255,255,126,60,2,136, - 136,60,114,241,241,241,241,114,60,2,136,136,60,78,143,143, - 143,143,78,60,2,136,136,60,66,129,129,255,255,126,60,2, - 136,136,60,126,255,255,129,129,66,60,2,136,136,60,78,143, - 143,129,129,66,60,2,136,136,60,78,143,143,255,255,126,60, - 2,72,136,48,112,240,240,240,240,112,48,66,72,136,192,224, - 240,240,240,240,224,192,0,141,141,255,255,255,255,195,129,129, - 129,129,195,255,255,255,0,141,141,255,255,255,255,195,153,189, - 189,153,195,255,255,255,6,135,135,255,255,255,255,195,153,189, - 0,134,134,189,153,195,255,255,255,6,68,132,48,64,128,128, - 70,68,132,192,32,16,16,66,68,132,16,16,32,192,2,68, - 132,128,128,64,48,6,132,132,60,66,129,129,2,132,132,129, - 129,66,60,2,136,136,1,3,7,15,31,63,127,255,2,136, - 136,128,192,224,240,248,252,254,255,2,136,136,255,254,252,248, - 240,224,192,128,2,136,136,255,127,63,31,15,7,3,1,20, - 85,133,112,136,136,136,112,2,120,136,254,226,226,226,226,226, - 226,254,2,120,136,254,142,142,142,142,142,142,254,2,120,136, - 254,254,250,242,226,194,130,254,2,120,136,254,130,134,142,158, - 190,254,254,2,120,136,254,146,146,146,146,146,146,254,2,122, - 138,16,16,40,40,68,84,124,146,130,254,2,122,138,16,16, - 56,56,116,116,116,242,242,254,2,122,138,16,16,56,56,92, - 92,92,158,158,254,2,136,136,60,66,129,129,129,129,66,60, - 2,119,135,254,146,146,242,130,130,254,2,119,135,254,130,130, - 242,146,146,254,2,119,135,254,130,130,158,146,146,254,2,119, - 135,254,146,146,158,130,130,254,2,119,135,124,146,146,242,130, - 130,124,2,119,135,124,130,130,242,146,146,124,2,119,135,124, - 130,130,158,146,146,124,2,119,135,124,146,146,158,130,130,124, - 19,102,134,252,136,144,160,192,128,19,102,134,252,68,36,20, - 12,4,19,102,134,128,192,160,144,136,252,19,102,134,252,132, - 132,132,132,252,19,102,134,252,252,252,252,252,252,37,68,132, - 240,144,144,240,37,68,132,240,240,240,240,19,102,134,4,12, - 20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 11, '1' Height: 4 - Calculated Max Values w= 8 h=11 x= 2 y= 3 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_75r[496] U8G_SECTION(".progmem.u8g_font_8x13_75r") = { - 1,8,13,0,254,11,1,83,0,0,32,79,0,11,0,11, - 0,2,119,135,254,254,254,254,254,254,254,2,119,135,254,130, - 130,130,130,130,254,2,119,135,124,130,130,130,130,130,124,2, - 119,135,254,130,186,186,186,130,254,2,119,135,254,130,254,130, - 254,130,254,2,119,135,254,170,170,170,170,170,254,2,119,135, - 254,170,254,170,254,170,254,2,119,135,254,146,138,198,162,146, - 254,2,119,135,254,146,162,198,138,146,254,2,119,135,254,214, - 170,214,170,214,254,37,51,131,224,224,224,37,51,131,224,160, - 224,21,100,132,252,252,252,252,21,100,132,252,132,132,252,18, - 89,137,248,248,248,248,248,248,248,248,248,18,89,137,248,136, - 136,136,136,136,136,136,248,5,132,132,31,62,124,248,5,132, - 132,31,34,68,248,2,136,136,24,24,60,60,126,126,255,255, - 2,136,136,24,24,36,36,66,66,129,255,18,102,134,48,48, - 120,120,252,252,18,102,134,48,48,72,72,132,252,18,107,139, - 128,192,224,240,248,252,248,240,224,192,128,18,107,139,128,192, - 160,144,136,132,136,144,160,192,128,20,101,133,192,240,252,240, - 192,20,101,133,192,176,140,176,192,3,119,135,128,224,248,254, - 248,224,128,3,119,135,128,224,152,134,152,224,128,2,136,136, - 255,255,126,126,60,60,24,24,2,136,136,255,129,66,66,36, - 36,24,24,18,102,134,252,252,120,120,48,48,18,102,134,252, - 132,72,72,48,48,18,107,139,4,12,28,60,124,252,124,60, - 28,12,4,18,107,139,4,12,20,36,68,132,68,36,20,12, - 4,20,101,133,12,60,252,60,12,20,101,133,12,52,196,52, - 12,3,119,135,2,14,62,254,62,14,2,3,119,135,2,14, - 50,194,50,14,2,3,119,135,16,56,124,254,124,56,16,3, - 119,135,16,40,68,130,68,40,16,3,119,135,16,40,84,186, - 84,40,16,3,119,135,56,68,146,186,146,68,56,18,105,137, - 48,48,72,72,132,72,72,48,48,2,136,136,60,66,129,129, - 129,129,66,60,2,136,136,24,66,0,129,129,0,66,24,2, - 136,136,60,106,171,171,171,171,106,60,2,136,136,60,66,153, - 165,165,153,66,60,2,136,136,60,126,255,255,255,255,126,60 - }; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=12 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=12 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13B[2302] U8G_SECTION(".progmem.u8g_font_8x13B") = { - 1,8,13,0,254,10,1,127,3,12,32,255,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,128,50,42,138,192,192,0,192,192,192,192, - 192,192,192,3,104,136,16,124,212,208,208,212,124,16,1,123, - 139,60,102,96,96,252,96,96,96,240,190,224,3,119,135,198, - 254,108,68,108,254,198,18,106,138,204,204,204,120,120,252,48, - 252,48,48,50,42,138,192,192,192,192,0,0,192,192,192,192, - 18,106,138,120,204,192,120,204,204,120,12,204,120,26,82,130, - 216,216,3,121,137,124,198,186,234,226,234,186,198,124,21,87, - 135,240,24,248,152,248,0,248,3,119,135,54,108,216,176,216, - 108,54,3,101,133,252,252,4,4,4,22,81,129,248,3,121, - 137,124,198,186,170,186,178,170,198,124,28,97,129,252,24,100, - 132,120,204,204,120,19,103,135,48,48,252,48,48,0,252,22, - 70,134,224,176,48,96,192,240,22,70,134,224,176,96,48,176, - 224,41,67,131,48,96,192,0,121,137,198,198,198,198,198,238, - 252,192,192,1,123,139,62,122,202,202,202,122,58,10,10,10, - 14,54,34,130,192,192,16,67,131,48,144,96,22,70,134,96, - 224,96,96,96,240,21,87,135,112,248,136,248,112,0,248,3, - 119,135,216,108,54,26,54,108,216,2,122,138,96,224,96,96, - 98,246,14,26,30,6,2,122,138,96,224,96,96,124,246,6, - 12,24,30,2,122,138,224,176,96,48,178,230,14,26,30,6, - 18,106,138,48,48,0,48,48,96,192,204,204,120,2,122,138, - 48,24,0,56,124,198,198,254,198,198,2,122,138,24,48,0, - 56,124,198,198,254,198,198,2,122,138,56,108,0,56,124,198, - 198,254,198,198,2,122,138,52,88,0,56,124,198,198,254,198, - 198,2,122,138,108,108,0,56,124,198,198,254,198,198,2,123, - 139,24,36,24,0,56,124,198,198,254,198,198,2,122,138,126, - 248,216,216,216,252,216,216,216,222,0,124,140,124,230,192,192, - 192,192,192,230,124,24,72,48,2,122,138,48,24,0,254,192, - 192,248,192,192,254,2,122,138,24,48,0,254,192,192,248,192, - 192,254,2,122,138,56,108,0,254,192,192,248,192,192,254,2, - 122,138,108,108,0,254,192,192,248,192,192,254,34,74,138,192, - 96,0,240,96,96,96,96,96,240,34,74,138,48,96,0,240, - 96,96,96,96,96,240,34,90,138,112,216,0,240,96,96,96, - 96,96,240,34,90,138,216,216,0,240,96,96,96,96,96,240, - 2,120,136,252,102,102,246,102,102,102,252,2,122,138,52,88, - 0,198,230,246,214,222,206,198,2,123,139,48,24,0,124,198, - 198,198,198,198,198,124,2,123,139,24,48,0,124,198,198,198, - 198,198,198,124,2,123,139,56,108,0,124,198,198,198,198,198, - 198,124,2,123,139,52,88,0,124,198,198,198,198,198,198,124, - 2,123,139,108,108,0,124,198,198,198,198,198,198,124,2,119, - 135,198,198,124,56,124,198,198,1,122,138,2,124,206,214,214, - 214,214,230,124,128,2,122,138,48,24,0,198,198,198,198,198, - 198,124,2,122,138,24,48,0,198,198,198,198,198,198,124,2, - 122,138,56,108,0,198,198,198,198,198,198,124,2,122,138,108, - 108,0,198,198,198,198,198,198,124,18,106,138,24,48,0,204, - 72,120,48,48,48,48,2,121,137,192,252,198,198,198,252,192, - 192,192,2,122,138,60,102,102,108,236,108,102,102,102,108,2, - 122,138,48,24,0,124,6,126,198,198,206,118,2,122,138,24, - 48,0,124,6,126,198,198,206,118,2,122,138,56,108,0,124, - 6,126,198,198,206,118,2,122,138,52,88,0,124,6,126,198, - 198,206,118,2,122,138,108,108,0,124,6,126,198,198,206,118, - 2,123,139,24,36,24,0,124,6,126,198,198,206,118,2,119, - 135,108,218,26,124,216,218,108,0,122,138,124,230,192,192,192, - 230,124,24,72,48,2,122,138,48,24,0,124,198,198,254,192, - 198,124,2,122,138,24,48,0,124,198,198,254,192,198,124,2, - 122,138,56,108,0,124,198,198,254,192,198,124,2,122,138,108, - 108,0,124,198,198,254,192,198,124,34,74,138,192,96,0,224, - 96,96,96,96,96,240,34,74,138,96,192,0,224,96,96,96, - 96,96,240,18,90,138,112,216,0,112,48,48,48,48,48,120, - 18,90,138,216,216,0,112,48,48,48,48,48,120,2,122,138, - 108,56,120,12,126,198,198,198,198,124,2,122,138,52,88,0, - 220,230,198,198,198,198,198,2,122,138,48,24,0,124,198,198, - 198,198,198,124,2,122,138,24,48,0,124,198,198,198,198,198, - 124,2,122,138,56,108,0,124,198,198,198,198,198,124,2,122, - 138,52,88,0,124,198,198,198,198,198,124,2,122,138,108,108, - 0,124,198,198,198,198,198,124,19,103,135,48,48,0,252,0, - 48,48,1,121,137,2,124,206,214,214,214,230,124,128,2,122, - 138,48,24,0,198,198,198,198,198,206,118,2,122,138,24,48, - 0,198,198,198,198,198,206,118,2,122,138,56,108,0,198,198, - 198,198,198,206,118,2,122,138,108,108,0,198,198,198,198,198, - 206,118,0,124,140,24,48,0,198,198,198,198,206,118,6,198, - 124,0,123,139,192,192,220,230,198,198,198,230,220,192,192,0, - 124,140,108,108,0,198,198,198,198,206,118,6,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Br[1123] U8G_SECTION(".progmem.u8g_font_8x13Br") = { - 1,8,13,0,254,10,1,127,3,12,32,127,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13[2152] U8G_SECTION(".progmem.u8g_font_8x13") = { - 1,8,13,0,254,9,1,97,2,205,32,255,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,13,0,128,50,25,137,128,0,128,128,128,128, - 128,128,128,19,88,136,32,112,168,160,160,168,112,32,2,121, - 137,28,34,32,112,32,32,32,98,220,19,102,134,132,120,72, - 72,120,132,2,121,137,130,130,68,40,124,16,124,16,16,50, - 25,137,128,128,128,128,0,128,128,128,128,34,74,138,96,144, - 128,96,144,144,96,16,144,96,42,66,130,144,144,3,121,137, - 56,68,146,170,162,170,146,68,56,20,87,135,112,8,120,136, - 120,0,248,3,119,135,18,36,72,144,72,36,18,19,100,132, - 252,4,4,4,38,65,129,240,3,121,137,56,68,146,170,170, - 178,170,68,56,26,97,129,252,39,68,132,96,144,144,96,19, - 87,135,32,32,248,32,32,0,248,22,70,134,96,144,16,96, - 128,240,22,70,134,96,144,32,16,144,96,58,34,130,64,128, - 17,103,135,132,132,132,132,204,180,128,18,105,137,124,232,232, - 232,104,40,40,40,40,54,33,129,192,48,34,130,64,192,22, - 54,134,64,192,64,64,64,224,21,70,134,96,144,144,96,0, - 240,3,119,135,144,72,36,18,36,72,144,2,122,138,64,192, - 64,64,66,230,10,18,26,6,2,122,138,64,192,64,64,76, - 242,2,12,16,30,2,122,138,96,144,32,16,146,102,10,18, - 26,6,18,105,137,32,0,32,32,64,128,132,132,120,18,106, - 138,32,16,0,48,72,132,132,252,132,132,18,106,138,16,32, - 0,48,72,132,132,252,132,132,18,106,138,48,72,0,48,72, - 132,132,252,132,132,18,106,138,100,152,0,48,72,132,132,252, - 132,132,18,106,138,72,72,0,48,72,132,132,252,132,132,18, - 106,138,48,72,48,48,72,132,132,252,132,132,2,121,137,110, - 144,144,144,156,240,144,144,158,16,107,139,120,132,128,128,128, - 128,128,132,120,16,32,18,106,138,32,16,0,252,128,128,240, - 128,128,252,18,106,138,16,32,0,252,128,128,240,128,128,252, - 18,106,138,48,72,0,252,128,128,240,128,128,252,18,106,138, - 72,72,0,252,128,128,240,128,128,252,18,90,138,64,32,0, - 248,32,32,32,32,32,248,18,90,138,16,32,0,248,32,32, - 32,32,32,248,18,90,138,48,72,0,248,32,32,32,32,32, - 248,18,90,138,136,136,0,248,32,32,32,32,32,248,2,121, - 137,120,68,66,66,226,66,66,68,120,2,122,138,100,152,0, - 130,194,162,146,138,134,130,2,122,138,32,16,0,124,130,130, - 130,130,130,124,2,122,138,8,16,0,124,130,130,130,130,130, - 124,2,122,138,24,36,0,124,130,130,130,130,130,124,2,122, - 138,100,152,0,124,130,130,130,130,130,124,2,122,138,68,68, - 0,124,130,130,130,130,130,124,19,102,134,132,72,48,48,72, - 132,17,107,139,4,120,140,148,148,164,164,164,196,120,128,18, - 106,138,64,32,0,132,132,132,132,132,132,120,18,106,138,16, - 32,0,132,132,132,132,132,132,120,18,106,138,48,72,0,132, - 132,132,132,132,132,120,18,106,138,72,72,0,132,132,132,132, - 132,132,120,18,90,138,16,32,0,136,136,80,32,32,32,32, - 18,105,137,128,248,132,132,132,248,128,128,128,18,105,137,112, - 136,136,144,160,152,132,132,184,18,105,137,32,16,0,120,4, - 124,132,140,116,18,105,137,8,16,0,120,4,124,132,140,116, - 18,105,137,48,72,0,120,4,124,132,140,116,18,105,137,100, - 152,0,120,4,124,132,140,116,18,105,137,72,72,0,120,4, - 124,132,140,116,18,106,138,48,72,48,0,120,4,124,132,140, - 116,2,118,134,108,18,124,144,146,108,16,104,136,120,132,128, - 128,132,120,16,32,18,105,137,32,16,0,120,132,252,128,132, - 120,18,105,137,16,32,0,120,132,252,128,132,120,18,105,137, - 48,72,0,120,132,252,128,132,120,18,105,137,72,72,0,120, - 132,252,128,132,120,18,89,137,64,32,0,96,32,32,32,32, - 248,18,89,137,32,64,0,96,32,32,32,32,248,18,89,137, - 96,144,0,96,32,32,32,32,248,18,89,137,144,144,0,96, - 32,32,32,32,248,18,106,138,72,48,80,8,120,132,132,132, - 132,120,18,105,137,100,152,0,184,196,132,132,132,132,18,105, - 137,64,32,0,120,132,132,132,132,120,18,105,137,16,32,0, - 120,132,132,132,132,120,18,105,137,48,72,0,120,132,132,132, - 132,120,18,105,137,100,152,0,120,132,132,132,132,120,18,105, - 137,72,72,0,120,132,132,132,132,120,19,87,135,32,32,0, - 248,0,32,32,17,104,136,4,120,140,148,164,196,120,128,18, - 105,137,64,32,0,136,136,136,136,136,116,18,105,137,16,32, - 0,136,136,136,136,136,116,18,105,137,48,72,0,136,136,136, - 136,136,116,18,105,137,80,80,0,136,136,136,136,136,116,16, - 107,139,16,32,0,132,132,132,140,116,4,132,120,16,106,138, - 128,128,184,196,132,132,196,184,128,128,16,107,139,72,72,0, - 132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13O[2153] U8G_SECTION(".progmem.u8g_font_8x13O") = { - 1,8,13,0,254,9,1,98,2,206,32,255,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,13,0,128,50,41,137,64,0,64,64,64, - 128,128,128,128,19,104,136,16,56,84,80,160,168,112,32,2, - 137,137,14,17,16,56,16,32,32,98,220,3,118,134,66,60, - 36,72,120,132,2,121,137,130,130,68,40,124,16,248,32,32, - 50,41,137,64,64,64,64,0,128,128,128,128,18,90,138,48, - 72,64,48,72,144,96,16,144,96,42,66,130,144,144,2,137, - 137,28,34,73,85,162,170,146,68,56,20,103,135,56,4,120, - 136,120,0,248,3,119,135,18,36,72,144,144,72,36,19,100, - 132,252,4,8,8,38,65,129,240,2,137,137,28,34,89,85, - 170,178,170,68,56,26,97,129,252,39,68,132,96,144,144,96, - 19,103,135,16,16,124,32,32,0,248,22,86,134,48,72,8, - 112,128,240,22,86,134,112,8,48,16,144,96,58,34,130,64, - 128,1,119,135,66,66,66,132,204,180,128,18,105,137,124,232, - 232,232,104,80,80,80,80,54,33,129,192,48,34,130,64,192, - 38,54,134,32,96,32,64,64,224,21,102,134,24,36,72,48, - 0,240,3,119,135,72,36,18,18,36,72,144,18,106,138,32, - 96,32,64,68,236,20,40,60,8,2,122,138,32,96,32,64, - 76,242,4,24,32,60,18,106,138,112,8,48,16,148,108,20, - 40,60,8,18,105,137,16,0,16,16,32,64,132,136,112,2, - 122,138,16,8,0,24,36,66,66,124,132,132,2,122,138,8, - 16,0,24,36,66,66,124,132,132,2,122,138,24,36,0,24, - 36,66,66,124,132,132,2,122,138,50,76,0,24,36,66,66, - 124,132,132,2,122,138,36,36,0,24,36,66,66,124,132,132, - 2,122,138,24,36,24,24,36,66,66,124,132,132,2,137,137, - 55,72,72,72,78,112,144,144,158,0,123,139,60,66,64,64, - 64,128,128,132,120,16,32,2,122,138,16,8,0,126,64,64, - 112,128,128,252,2,122,138,8,16,0,126,64,64,112,128,128, - 252,2,122,138,24,36,0,126,64,64,112,128,128,252,2,122, - 138,36,36,0,126,64,64,112,128,128,252,18,106,138,32,16, - 0,124,16,16,32,32,32,248,18,106,138,8,16,0,124,16, - 16,32,32,32,248,18,106,138,24,36,0,124,16,16,32,32, - 32,248,18,106,138,68,68,0,124,16,16,32,32,32,248,2, - 121,137,120,68,66,66,226,68,132,136,240,2,138,138,50,76, - 0,65,97,81,146,138,134,130,2,138,138,16,8,0,62,65, - 65,130,130,130,124,2,138,138,4,8,0,62,65,65,130,130, - 130,124,2,138,138,12,18,0,62,65,65,130,130,130,124,2, - 138,138,50,76,0,62,65,65,130,130,130,124,2,138,138,34, - 34,0,62,65,65,130,130,130,124,3,118,134,66,36,24,48, - 72,132,1,123,139,2,60,70,74,74,82,164,164,196,120,128, - 2,122,138,32,16,0,66,66,66,132,132,132,120,2,122,138, - 8,16,0,66,66,66,132,132,132,120,2,122,138,24,36,0, - 66,66,66,132,132,132,120,2,122,138,36,36,0,66,66,66, - 132,132,132,120,18,90,138,16,32,0,136,136,80,96,64,64, - 64,2,121,137,64,124,66,66,66,124,128,128,128,18,105,137, - 56,68,68,72,80,136,132,132,184,2,121,137,16,8,0,60, - 2,124,132,140,116,2,121,137,4,8,0,60,2,124,132,140, - 116,2,121,137,24,36,0,60,2,124,132,140,116,2,121,137, - 50,76,0,60,2,124,132,140,116,2,121,137,36,36,0,60, - 2,124,132,140,116,2,122,138,24,36,24,0,60,2,124,132, - 140,116,2,134,134,54,9,126,144,146,108,0,120,136,60,66, - 128,128,132,120,16,32,2,121,137,16,8,0,60,66,124,128, - 132,120,2,121,137,8,16,0,60,66,124,128,132,120,2,121, - 137,24,36,0,60,66,124,128,132,120,2,121,137,36,36,0, - 60,66,124,128,132,120,18,89,137,32,16,0,48,16,16,32, - 32,248,18,89,137,16,32,0,48,16,16,32,32,248,18,89, - 137,48,72,0,48,16,16,32,32,248,18,89,137,72,72,0, - 48,16,16,32,32,248,2,122,138,36,24,40,4,60,66,66, - 132,132,120,2,121,137,50,76,0,92,98,66,132,132,132,2, - 121,137,32,16,0,60,66,66,132,132,120,2,121,137,8,16, - 0,60,66,66,132,132,120,2,121,137,24,36,0,60,66,66, - 132,132,120,2,121,137,50,76,0,60,66,66,132,132,120,2, - 121,137,36,36,0,60,66,66,132,132,120,19,103,135,16,16, - 0,252,0,32,32,1,120,136,2,60,70,90,164,196,120,128, - 18,105,137,32,16,0,68,68,68,136,136,116,18,105,137,8, - 16,0,68,68,68,136,136,116,18,105,137,24,36,0,68,68, - 68,136,136,116,18,105,137,40,40,0,68,68,68,136,136,116, - 0,123,139,8,16,0,66,66,132,140,116,4,132,120,0,122, - 138,64,64,92,98,66,132,196,184,128,128,0,123,139,36,36, - 0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Or[1029] U8G_SECTION(".progmem.u8g_font_8x13Or") = { - 1,8,13,0,254,9,1,98,2,206,32,127,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13r[1028] U8G_SECTION(".progmem.u8g_font_8x13r") = { - 1,8,13,0,254,9,1,97,2,205,32,127,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=15 x= 8 y=10 dx= 9 dy= 0 ascent=12 len=30 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[3804] U8G_SECTION(".progmem.u8g_font_9x15_67_75") = { - 0,9,15,0,253,4,1,255,4,34,32,255,0,12,253,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,11,11,9,1,255,16,40,68,238,68,238,40,40,40, - 40,56,7,11,11,9,1,255,16,40,68,238,68,238,40,40, - 108,68,124,9,7,14,9,0,1,132,0,134,0,253,0,128, - 128,253,0,134,0,132,0,7,7,7,9,1,0,254,128,188, - 176,168,164,130,7,7,7,9,1,0,130,74,42,26,122,2, - 254,7,11,11,9,1,255,16,40,68,238,40,40,40,238,68, - 40,16,9,7,14,9,0,1,4,0,50,0,73,0,255,128, - 73,0,50,0,4,0,9,10,20,9,0,0,34,0,39,0, - 42,128,34,0,34,0,34,0,34,0,170,0,114,0,34,0, - 7,13,13,9,1,254,8,4,254,4,8,4,254,4,8,4, - 254,4,8,8,5,5,9,0,2,36,68,255,68,36,8,5, - 5,9,0,2,36,34,255,34,36,9,5,10,9,0,2,42, - 0,73,0,255,128,73,0,42,0,8,5,5,9,0,2,42, - 74,255,74,42,8,5,5,9,0,2,84,82,255,82,84,9, - 5,10,9,0,2,85,0,148,128,255,128,148,128,85,0,7, - 7,7,9,1,1,16,48,80,158,80,48,16,7,7,7,9, - 1,1,16,24,20,242,20,24,16,8,5,5,9,0,2,36, - 102,189,102,36,9,7,14,9,0,5,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,2,4,9,0,253,255,128, - 255,128,9,4,8,9,0,253,255,128,255,128,255,128,255,128, - 9,6,12,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,9,8,16,9,0,253,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,9,18,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,11,22,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,13,26,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,15,30,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 8,15,15,9,0,253,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,15,15,9,0,253,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,6,15,15,9,0,253, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 15,15,9,0,253,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,3,15,15,9,0,253,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,2,15,15,9,0,253,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,1,15, - 15,9,0,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,15,15,9,5,253,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,15,30,9,0,253,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,0,0,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,9,15,30,9, - 0,253,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 85,0,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 9,15,30,9,0,253,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,170,128,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,9,2,4,9,0,10,255,128,255,128,1,15, - 15,9,8,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,8,8,9,0,253,248,248,248,248,248,248,248, - 248,4,8,8,9,5,253,240,240,240,240,240,240,240,240,5, - 7,7,9,0,5,248,248,248,248,248,248,248,9,15,30,9, - 0,253,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,15,30,9,0,253,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,9,15,30,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,4,7,7,9, - 5,5,240,240,240,240,240,240,240,9,15,30,9,0,253,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,9,15,30, - 9,0,253,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56,7,7,7,9,1,1,56,116, - 242,242,242,116,56,7,7,7,9,1,1,56,92,158,158,158, - 92,56,7,7,7,9,1,1,56,68,130,254,254,124,56,7, - 7,7,9,1,1,56,124,254,254,130,68,56,7,7,7,9, - 1,1,56,92,158,158,130,68,56,7,7,7,9,1,1,56, - 92,158,254,254,124,56,4,7,7,9,1,1,48,112,240,240, - 240,112,48,4,7,7,9,4,1,192,224,240,240,240,224,192, - 9,15,30,9,0,253,255,128,255,128,255,128,255,128,255,128, - 227,128,193,128,193,128,193,128,227,128,255,128,255,128,255,128, - 255,128,255,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,227,128,221,128,190,128,190,128,190,128,221,128,227,128, - 255,128,255,128,255,128,255,128,9,8,16,9,0,4,255,128, - 255,128,255,128,255,128,227,128,221,128,190,128,190,128,9,8, - 16,9,0,253,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,4,4,4,9,1,4,48,64,128,128,4,4, - 4,9,4,4,192,32,16,16,4,4,4,9,4,1,16,16, - 32,192,4,4,4,9,1,1,128,128,64,48,7,4,4,9, - 1,4,56,68,130,130,7,4,4,9,1,1,130,130,68,56, - 7,7,7,9,1,1,2,6,14,30,62,126,254,7,7,7, - 9,1,1,128,192,224,240,248,252,254,7,7,7,9,1,1, - 254,252,248,240,224,192,128,7,7,7,9,1,1,254,126,62, - 30,14,6,2,5,5,5,9,2,2,112,136,136,136,112,7, - 7,7,9,1,1,254,242,242,242,242,242,254,7,7,7,9, - 1,1,254,158,158,158,158,158,254,7,7,7,9,1,1,254, - 254,250,242,226,194,254,7,7,7,9,1,1,254,134,142,158, - 190,254,254,7,7,7,9,1,1,254,146,146,146,146,146,254, - 9,10,20,9,0,0,8,0,8,0,20,0,20,0,34,0, - 42,0,93,0,73,0,128,128,255,128,9,10,20,9,0,0, - 8,0,8,0,28,0,28,0,58,0,58,0,121,0,121,0, - 248,128,255,128,9,10,20,9,0,0,8,0,8,0,28,0, - 28,0,46,0,46,0,79,0,79,0,143,128,255,128,9,9, - 18,9,0,0,62,0,65,0,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,7,7,7,9,1,1,254,146,146,242, - 130,130,254,7,7,7,9,1,1,254,130,130,242,146,146,254, - 7,7,7,9,1,1,254,130,130,158,146,146,254,7,7,7, - 9,1,1,254,146,146,158,130,130,254,7,7,7,9,1,1, - 124,146,146,242,130,130,124,7,7,7,9,1,1,124,130,130, - 242,146,146,124,7,7,7,9,1,1,124,130,130,158,146,146, - 124,7,7,7,9,1,1,124,146,146,158,130,130,124,6,6, - 6,9,1,1,252,136,144,160,192,128,6,6,6,9,1,1, - 252,68,36,20,12,4,6,6,6,9,1,1,128,192,160,144, - 136,252,6,6,6,9,1,1,252,132,132,132,132,252,6,6, - 6,9,1,1,252,252,252,252,252,252,5,5,5,9,2,1, - 248,136,136,136,248,5,5,5,9,2,1,248,248,248,248,248, - 6,6,6,9,1,1,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_75r[792] U8G_SECTION(".progmem.u8g_font_9x15_75r") = { - 0,9,15,0,253,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[3795] U8G_SECTION(".progmem.u8g_font_9x15_78_79") = { - 0,9,15,0,253,9,2,231,4,175,32,255,0,12,254,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,7,7,7,9,1,0,130,132,136,144,160, - 192,254,9,10,20,9,0,0,8,0,8,0,20,0,20,0, - 42,0,42,0,85,0,93,0,128,128,255,128,7,10,10,9, - 1,0,16,16,16,16,16,16,16,16,16,254,7,7,7,9, - 1,1,62,64,132,138,132,64,62,7,7,7,9,1,1,248, - 4,66,162,66,4,248,5,12,12,9,2,255,112,136,136,16, - 16,32,32,64,64,128,128,112,5,12,12,9,2,255,112,136, - 136,64,64,32,32,16,16,8,8,112,7,8,8,9,1,0, - 130,146,84,68,40,40,16,16,8,10,10,9,0,255,128,143, - 144,80,80,80,80,47,32,32,8,10,10,9,0,255,1,241, - 9,10,10,10,10,244,4,4,3,10,10,9,3,0,64,64, - 64,64,224,64,64,64,64,64,255,255,255,255,255,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,136,128,65,0,34, - 0,20,0,8,0,7,8,8,9,1,0,16,16,40,40,68, - 84,146,130,7,7,7,9,1,1,146,146,146,146,146,84,56, - 7,7,7,9,1,1,2,2,2,18,2,2,254,7,7,7, - 9,1,1,254,128,128,144,128,128,128,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,9,13,26,9,0,254,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,9,13,26,9,0,254,255,128, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,7,7,7,9,1,1,40,40, - 238,40,238,40,40,7,7,7,9,1,1,40,40,40,238,40, - 40,40,7,3,3,9,1,3,64,190,64,9,5,10,9,0, - 2,128,0,128,0,255,128,128,0,128,0,9,5,10,9,0, - 2,0,128,0,128,255,128,0,128,0,128,5,10,10,9,2, - 0,32,80,32,32,32,32,32,32,32,248,5,9,9,9,2, - 0,32,32,80,80,248,80,80,32,32,7,9,9,9,1,0, - 16,16,16,40,198,40,16,16,16,8,9,9,9,0,0,8, - 8,8,20,227,20,8,8,8,8,9,9,9,1,0,16,16, - 16,40,199,40,16,16,16,8,7,7,9,0,1,127,65,65, - 193,65,65,127,8,7,7,9,1,1,254,130,130,131,130,130, - 254,5,12,12,9,2,255,248,160,160,160,160,160,160,160,160, - 160,160,248,5,12,12,9,2,255,248,40,40,40,40,40,40, - 40,40,40,40,248,3,10,10,9,3,0,32,32,64,64,128, - 128,64,64,32,32,3,10,10,9,3,0,128,128,64,64,32, - 32,64,64,128,128,6,10,10,9,1,0,36,36,72,72,144, - 144,72,72,36,36,6,10,10,9,2,0,144,144,72,72,36, - 36,72,72,144,144,255,255,255,255,9,11,22,9,0,0,8, - 0,20,0,54,0,85,0,213,128,85,0,85,0,85,0,85, - 0,85,0,85,0,9,11,22,9,0,255,85,0,85,0,85, - 0,85,0,85,0,85,0,213,128,85,0,54,0,20,0,8, - 0,8,8,8,9,0,0,28,34,169,113,33,1,34,28,8, - 8,8,9,0,0,56,68,149,142,132,128,68,56,9,5,10, - 9,0,2,114,0,169,0,255,128,169,0,114,0,9,5,10, - 9,0,2,32,0,64,0,255,128,64,0,32,0,9,5,10, - 9,0,2,2,0,1,0,255,128,1,0,2,0,9,5,10, - 9,0,2,34,0,65,0,255,128,65,0,34,0,9,7,14, - 9,0,1,16,0,32,0,127,128,128,0,127,128,32,0,16, - 0,9,7,14,9,0,1,4,0,2,0,255,0,0,128,255, - 0,2,0,4,0,9,7,14,9,0,1,20,0,34,0,127, - 0,128,128,127,0,34,0,20,0,9,5,10,9,0,2,32, - 128,64,128,255,128,64,128,32,128,9,5,10,9,0,2,130, - 0,129,0,255,128,129,0,130,0,9,7,14,9,0,1,16, - 128,32,128,127,128,128,128,127,128,32,128,16,128,9,7,14, - 9,0,1,132,0,130,0,255,0,128,128,255,0,130,0,132, - 0,9,6,12,9,0,1,2,0,1,0,85,128,170,128,1, - 0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15B[2990] U8G_SECTION(".progmem.u8g_font_9x15B") = { - 0,9,15,0,253,10,1,232,3,214,32,255,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,12,2,10,10,9,4,0,192,0,192,192,192, - 192,192,192,192,192,7,8,8,9,1,0,4,124,206,208,208, - 230,124,64,8,10,10,9,0,255,30,51,48,48,124,48,48, - 248,191,224,7,7,7,9,1,2,198,254,108,68,108,254,198, - 8,10,10,9,0,0,195,195,102,60,126,24,126,24,24,24, - 2,11,11,9,4,255,192,192,192,192,192,0,0,192,192,192, - 192,6,11,11,9,1,255,120,204,192,120,204,204,204,120,12, - 204,120,6,2,2,9,1,9,204,204,8,11,11,9,0,0, - 60,126,195,189,165,161,165,189,195,126,60,5,7,7,9,1, - 3,240,24,248,152,248,0,248,8,8,8,9,0,1,27,54, - 108,216,216,108,54,27,7,5,5,9,1,2,254,254,6,6, - 6,6,1,1,9,1,4,252,8,11,11,9,0,0,60,126, - 195,189,165,189,169,173,195,126,60,6,2,2,9,1,9,252, - 252,6,4,4,9,2,6,120,204,204,120,8,10,10,9,0, - 0,24,24,24,255,255,24,24,24,255,255,5,7,7,9,1, - 4,112,152,24,48,96,192,248,5,7,7,9,1,4,112,152, - 24,48,24,152,112,4,3,3,9,2,8,48,96,192,7,10, - 10,9,1,253,198,198,198,198,198,238,250,192,192,192,7,10, - 10,9,1,0,126,254,246,246,246,118,54,54,54,54,3,3, - 3,9,3,3,64,224,64,5,3,3,9,2,253,24,216,112, - 4,7,7,9,1,4,96,224,96,96,96,96,240,5,6,6, - 9,1,4,112,216,216,112,0,248,8,8,8,9,0,1,216, - 108,54,27,27,54,108,216,8,11,11,9,0,0,96,224,96, - 96,97,99,247,15,27,31,3,8,11,11,9,0,0,96,224, - 96,96,110,115,243,6,12,24,31,8,11,11,9,0,0,112, - 152,24,48,25,155,119,15,27,31,3,7,10,10,9,1,0, - 24,24,0,24,48,96,192,198,198,124,8,12,12,9,0,0, - 96,48,24,0,60,102,195,195,255,195,195,195,8,12,12,9, - 0,0,6,12,24,0,60,102,195,195,255,195,195,195,8,12, - 12,9,0,0,24,60,102,0,60,102,195,195,255,195,195,195, - 8,12,12,9,0,0,50,126,76,0,60,102,195,195,255,195, - 195,195,8,11,11,9,0,0,102,102,0,60,102,195,195,255, - 195,195,195,8,12,12,9,0,0,24,36,36,24,60,102,195, - 195,255,195,195,195,8,10,10,9,0,0,31,60,108,108,204, - 255,204,204,204,207,8,13,13,9,0,253,62,99,193,192,192, - 192,192,193,99,62,12,108,56,7,12,12,9,1,0,96,48, - 24,0,254,192,192,252,192,192,192,254,7,12,12,9,1,0, - 12,24,48,0,254,192,192,252,192,192,192,254,7,12,12,9, - 1,0,24,60,102,0,254,192,192,252,192,192,192,254,7,11, - 11,9,1,0,102,102,0,254,192,192,252,192,192,192,254,6, - 12,12,9,1,0,192,96,48,0,252,48,48,48,48,48,48, - 252,6,12,12,9,1,0,24,48,96,0,252,48,48,48,48, - 48,48,252,6,12,12,9,1,0,48,120,204,0,252,48,48, - 48,48,48,48,252,6,11,11,9,1,0,204,204,0,252,48, - 48,48,48,48,48,252,9,10,20,9,0,0,126,0,99,0, - 97,128,97,128,249,128,249,128,97,128,97,128,99,0,126,0, - 8,12,12,9,0,0,50,126,76,0,195,227,243,251,223,207, - 199,195,8,12,12,9,0,0,96,48,24,0,60,102,195,195, - 195,195,102,60,8,12,12,9,0,0,6,12,24,0,60,102, - 195,195,195,195,102,60,8,12,12,9,0,0,24,60,102,0, - 60,102,195,195,195,195,102,60,8,12,12,9,0,0,50,126, - 76,0,60,102,195,195,195,195,102,60,8,11,11,9,0,0, - 102,102,0,60,102,195,195,195,195,102,60,7,8,8,9,1, - 0,130,198,108,56,56,108,198,130,8,12,12,9,0,255,1, - 63,102,199,203,203,211,211,227,102,252,128,8,12,12,9,0, - 0,96,48,24,0,195,195,195,195,195,195,102,60,8,12,12, - 9,0,0,6,12,24,0,195,195,195,195,195,195,102,60,8, - 12,12,9,0,0,24,60,102,0,195,195,195,195,195,195,102, - 60,8,11,11,9,0,0,102,102,0,195,195,195,195,195,195, - 102,60,8,12,12,9,0,0,6,12,24,0,195,102,60,24, - 24,24,24,24,7,10,10,9,1,0,240,96,124,102,102,102, - 124,96,96,240,7,10,10,9,1,0,60,102,198,204,216,204, - 198,198,198,220,8,11,11,9,0,0,96,48,24,0,62,67, - 3,127,195,199,123,8,11,11,9,0,0,12,24,48,0,62, - 67,3,127,195,199,123,8,11,11,9,0,0,24,60,102,0, - 62,67,3,127,195,199,123,8,11,11,9,0,0,50,126,76, - 0,62,67,3,127,195,199,123,8,10,10,9,0,0,102,102, - 0,62,67,3,127,195,199,123,8,11,11,9,0,0,24,36, - 36,24,62,67,3,127,195,199,123,8,7,7,9,0,0,118, - 155,27,126,216,217,110,8,10,10,9,0,253,62,99,192,192, - 192,99,62,12,108,56,8,11,11,9,0,0,96,48,24,0, - 60,102,195,255,192,99,62,8,11,11,9,0,0,12,24,48, - 0,60,102,195,255,192,99,62,8,11,11,9,0,0,24,60, - 102,0,60,102,195,255,192,99,62,8,10,10,9,0,0,102, - 102,0,60,102,195,255,192,99,62,6,11,11,9,1,0,192, - 96,48,0,112,48,48,48,48,48,252,6,11,11,9,1,0, - 24,48,96,0,112,48,48,48,48,48,252,6,11,11,9,1, - 0,48,120,204,0,112,48,48,48,48,48,252,6,10,10,9, - 1,0,204,204,0,112,48,48,48,48,48,252,8,12,12,9, - 0,0,136,216,112,112,216,140,62,103,195,195,102,60,8,11, - 11,9,0,0,50,126,76,0,220,230,195,195,195,195,195,8, - 11,11,9,0,0,96,48,24,0,60,102,195,195,195,102,60, - 8,11,11,9,0,0,12,24,48,0,60,102,195,195,195,102, - 60,8,11,11,9,0,0,24,60,102,0,60,102,195,195,195, - 102,60,8,11,11,9,0,0,50,126,76,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,102,102,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,24,24,0,0,255,255,0, - 0,24,24,8,9,9,9,0,255,1,63,102,207,219,243,102, - 252,128,8,11,11,9,0,0,96,48,24,0,195,195,195,195, - 195,103,59,8,11,11,9,0,0,12,24,48,0,195,195,195, - 195,195,103,59,8,11,11,9,0,0,24,60,102,0,195,195, - 195,195,195,103,59,8,10,10,9,0,0,102,102,0,195,195, - 195,195,195,103,59,8,14,14,9,0,253,12,24,48,0,195, - 195,195,195,195,103,59,3,198,124,7,12,12,9,1,253,224, - 96,96,124,102,102,102,102,124,96,96,224,8,13,13,9,0, - 253,102,102,0,195,195,195,195,195,103,59,3,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 3 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15Br[1423] U8G_SECTION(".progmem.u8g_font_9x15Br") = { - 0,9,15,0,253,10,1,232,3,214,32,127,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=14 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15[2959] U8G_SECTION(".progmem.u8g_font_9x15") = { - 0,9,15,0,253,10,1,232,3,216,32,255,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,12,1,11,11,9,4,0,128, - 128,0,0,128,128,128,128,128,128,128,6,8,8,9,1,0, - 8,120,148,144,160,164,120,64,7,10,10,9,1,0,28,34, - 32,32,248,32,32,96,162,92,7,6,6,9,1,3,130,124, - 68,68,124,130,7,10,10,9,1,0,130,130,68,40,124,16, - 124,16,16,16,1,11,11,9,4,255,128,128,128,128,128,0, - 128,128,128,128,128,4,11,11,9,2,255,96,144,128,96,144, - 144,144,96,16,144,96,5,2,2,9,2,9,136,136,8,9, - 9,9,0,1,60,66,153,165,161,165,153,66,60,5,7,7, - 9,1,3,96,144,112,144,120,0,248,7,8,8,9,1,1, - 18,36,72,144,144,72,36,18,6,4,4,9,1,2,252,4, - 4,4,5,1,1,9,2,4,248,8,9,9,9,0,1,60, - 66,185,165,185,169,165,66,60,6,1,1,9,1,9,252,4, - 4,4,9,3,6,96,144,144,96,7,9,9,9,1,1,16, - 16,16,254,16,16,16,0,254,4,6,6,9,1,4,96,144, - 16,96,128,240,4,6,6,9,1,4,96,144,32,16,144,96, - 3,3,3,9,3,8,32,64,128,7,9,9,9,1,254,130, - 130,130,130,130,198,186,128,128,7,10,10,9,1,0,126,138, - 138,138,122,10,10,10,10,10,2,2,2,9,4,4,192,192, - 4,3,3,9,2,253,48,144,96,3,6,6,9,1,4,64, - 192,64,64,64,224,5,6,6,9,1,4,112,136,136,112,0, - 248,7,8,8,9,1,1,144,72,36,18,18,36,72,144,7, - 10,10,9,1,0,64,192,64,64,66,230,10,18,26,6,7, - 10,10,9,1,0,64,192,64,64,76,242,2,12,16,30,7, - 10,10,9,1,0,96,144,32,16,146,102,10,18,26,6,7, - 10,10,9,1,0,16,0,16,16,32,64,128,130,130,124,7, - 12,12,9,1,0,64,32,16,0,56,68,130,130,254,130,130, - 130,7,12,12,9,1,0,4,8,16,0,56,68,130,130,254, - 130,130,130,7,12,12,9,1,0,16,40,68,0,56,68,130, - 130,254,130,130,130,7,11,11,9,1,0,98,156,0,56,68, - 130,130,254,130,130,130,7,11,11,9,1,0,68,68,0,56, - 68,130,130,254,130,130,130,7,11,11,9,1,0,56,68,56, - 40,68,130,130,254,130,130,130,7,10,10,9,1,0,110,144, - 144,144,144,252,144,144,144,158,7,13,13,9,1,253,124,130, - 128,128,128,128,128,128,130,124,24,72,48,7,12,12,9,1, - 0,64,32,16,0,254,64,64,120,64,64,64,254,7,12,12, - 9,1,0,4,8,16,0,254,64,64,120,64,64,64,254,7, - 12,12,9,1,0,16,40,68,0,254,64,64,120,64,64,64, - 254,7,11,11,9,1,0,68,68,0,254,64,64,120,64,64, - 64,254,5,12,12,9,2,0,128,64,32,0,248,32,32,32, - 32,32,32,248,5,12,12,9,2,0,8,16,32,0,248,32, - 32,32,32,32,32,248,5,12,12,9,2,0,32,80,136,0, - 248,32,32,32,32,32,32,248,5,11,11,9,2,0,136,136, - 0,248,32,32,32,32,32,32,248,8,10,10,9,0,0,124, - 66,65,65,225,65,65,65,66,124,7,11,11,9,1,0,98, - 156,0,130,194,162,146,146,138,134,130,7,12,12,9,1,0, - 64,32,16,0,124,130,130,130,130,130,130,124,7,12,12,9, - 1,0,4,8,16,0,124,130,130,130,130,130,130,124,7,12, - 12,9,1,0,16,40,68,0,124,130,130,130,130,130,130,124, - 7,11,11,9,1,0,98,156,0,124,130,130,130,130,130,130, - 124,7,11,11,9,1,0,68,68,0,124,130,130,130,130,130, - 130,124,7,7,7,9,1,1,130,68,40,16,40,68,130,7, - 12,12,9,1,255,2,124,134,138,138,146,146,162,162,194,124, - 128,7,12,12,9,1,0,64,32,16,0,130,130,130,130,130, - 130,130,124,7,12,12,9,1,0,4,8,16,0,130,130,130, - 130,130,130,130,124,7,12,12,9,1,0,16,40,68,0,130, - 130,130,130,130,130,130,124,7,11,11,9,1,0,68,68,0, - 130,130,130,130,130,130,130,124,7,12,12,9,1,0,4,8, - 16,0,130,130,68,40,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,4,8,16,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,50,76,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,68,68,0,124,2,2,126,130,134,122,7,11,11, - 9,1,0,24,36,24,0,124,2,2,126,130,134,122,7,7, - 7,9,1,0,108,146,18,124,144,146,110,7,10,10,9,1, - 253,124,130,128,128,128,130,124,24,72,48,7,11,11,9,1, - 0,64,32,16,0,124,130,130,254,128,128,124,7,11,11,9, - 1,0,4,8,16,0,124,130,130,254,128,128,124,7,11,11, - 9,1,0,16,40,68,0,124,130,130,254,128,128,124,7,10, - 10,9,1,0,68,68,0,124,130,130,254,128,128,124,5,11, - 11,9,2,0,128,64,32,0,224,32,32,32,32,32,248,5, - 11,11,9,2,0,16,32,64,0,224,32,32,32,32,32,248, - 6,11,11,9,1,0,32,80,136,0,112,16,16,16,16,16, - 124,5,10,10,9,2,0,144,144,0,224,32,32,32,32,32, - 248,7,11,11,9,1,0,72,48,80,8,124,130,130,130,130, - 130,124,7,10,10,9,1,0,98,156,0,188,194,130,130,130, - 130,130,7,11,11,9,1,0,64,32,16,0,124,130,130,130, - 130,130,124,7,11,11,9,1,0,4,8,16,0,124,130,130, - 130,130,130,124,7,11,11,9,1,0,16,40,68,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,98,156,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,68,68,0,124,130, - 130,130,130,130,124,7,9,9,9,1,0,16,56,16,0,254, - 0,16,56,16,7,9,9,9,1,255,2,124,138,138,146,162, - 162,124,128,7,11,11,9,1,0,64,32,16,0,132,132,132, - 132,132,132,122,7,11,11,9,1,0,4,8,16,0,132,132, - 132,132,132,132,122,7,11,11,9,1,0,16,40,68,0,132, - 132,132,132,132,132,122,7,10,10,9,1,0,72,72,0,132, - 132,132,132,132,132,122,6,14,14,9,1,253,8,16,32,0, - 132,132,132,132,132,140,116,4,132,120,7,12,12,9,1,253, - 128,128,128,188,194,130,130,194,188,128,128,128,6,13,13,9, - 1,253,72,72,0,132,132,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15r[1427] U8G_SECTION(".progmem.u8g_font_9x15r") = { - 0,9,15,0,253,10,1,232,3,216,32,127,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=18 x= 8 y=12 dx= 9 dy= 0 ascent=14 len=36 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[3936] U8G_SECTION(".progmem.u8g_font_9x18_67_75") = { - 0,9,18,0,252,4,1,255,4,34,32,255,0,14,252,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,10,10,9,1,0,16,40,68,238,68,238,40,40,40, - 56,7,11,11,9,1,255,16,40,68,238,68,238,40,40,108, - 68,124,9,7,14,9,0,1,132,0,134,0,253,0,128,128, - 253,0,134,0,132,0,7,7,7,9,1,0,252,128,184,176, - 168,132,2,7,7,7,9,1,0,128,66,42,26,58,2,126, - 7,11,11,9,1,255,16,40,68,238,40,40,40,238,68,40, - 16,9,7,14,9,0,1,4,0,50,0,73,0,255,128,73, - 0,50,0,4,0,9,10,20,9,0,0,34,0,39,0,42, - 128,34,0,34,0,34,0,34,0,170,0,114,0,34,0,7, - 13,13,9,1,254,8,4,254,4,8,4,254,4,8,4,254, - 4,8,8,5,5,9,0,2,36,68,255,68,36,8,5,5, - 9,0,2,36,34,255,34,36,9,5,10,9,0,2,42,0, - 73,0,255,128,73,0,42,0,8,5,5,9,0,2,42,74, - 255,74,42,8,5,5,9,0,2,84,82,255,82,84,9,5, - 10,9,0,2,85,0,148,128,255,128,148,128,85,0,7,7, - 7,9,1,1,16,48,80,158,80,48,16,7,7,7,9,1, - 1,16,24,20,242,20,24,16,8,5,5,9,0,2,36,102, - 189,102,36,9,9,18,9,0,5,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,2,4,9,0, - 252,255,128,255,128,9,4,8,9,0,252,255,128,255,128,255, - 128,255,128,9,7,14,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,9,9,18,9,0,252,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,9, - 11,22,9,0,252,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,14,28,9,0, - 252,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,9,16,32, - 9,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,9,18,36,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,8,18,18, - 9,0,252,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,18,18,9,0,252,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,254,254,254,6,18,18, - 9,0,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,5,18,18,9,0,252,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,3,18,18, - 9,0,252,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,2,18,18,9,0,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,1,18,18, - 9,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,18,18,9,5,252,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,9,17,34, - 9,0,253,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,9,18,36,9,0,252,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,9, - 18,36,9,0,252,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,9,2,4,9,0,12,255, - 128,255,128,1,18,18,9,8,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,9,9,9,0, - 252,248,248,248,248,248,248,248,248,248,4,9,9,9,5,252, - 240,240,240,240,240,240,240,240,240,5,9,9,9,0,5,248, - 248,248,248,248,248,248,248,248,9,18,36,9,0,252,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,9,18,36,9,0,252,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,9,18,36,9,0,252,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 4,9,9,9,5,5,240,240,240,240,240,240,240,240,240,9, - 18,36,9,0,252,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,9,18,36,9,0,252,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,7,7,7,9,1,1,254,254,254,254,254,254,254, - 7,7,7,9,1,1,254,130,130,130,130,130,254,7,7,7, - 9,1,1,124,130,130,130,130,130,124,7,7,7,9,1,1, - 254,130,186,186,186,130,254,7,7,7,9,1,1,254,130,254, - 130,254,130,254,7,7,7,9,1,1,254,170,170,170,170,170, - 254,7,7,7,9,1,1,254,170,254,170,254,170,254,7,7, - 7,9,1,1,254,146,138,198,162,146,254,7,7,7,9,1, - 1,254,146,162,198,138,146,254,7,7,7,9,1,1,254,214, - 138,214,162,214,254,3,3,3,9,3,3,224,224,224,3,3, - 3,9,3,3,224,160,224,9,5,10,9,0,2,255,128,255, - 128,255,128,255,128,255,128,9,5,10,9,0,2,255,128,128, - 128,128,128,128,128,255,128,5,9,9,9,2,0,248,248,248, - 248,248,248,248,248,248,5,9,9,9,2,0,248,136,136,136, - 136,136,136,136,248,9,5,10,9,0,2,127,128,127,128,255, - 128,255,0,255,0,9,5,10,9,0,2,127,128,64,128,128, - 128,129,0,255,0,9,10,20,9,0,0,8,0,8,0,28, - 0,28,0,62,0,62,0,127,0,127,0,255,128,255,128,9, - 10,20,9,0,0,8,0,8,0,20,0,20,0,34,0,34, - 0,65,0,65,0,128,128,255,128,7,7,7,9,1,1,16, - 16,56,56,124,124,254,7,7,7,9,1,1,16,16,40,40, - 68,68,254,9,9,18,9,0,0,192,0,240,0,252,0,255, - 0,255,128,255,0,252,0,240,0,192,0,9,9,18,9,0, - 0,192,0,176,0,140,0,131,0,128,128,131,0,140,0,176, - 0,192,0,7,7,7,9,1,1,128,224,248,254,248,224,128, - 7,7,7,9,1,1,128,224,152,134,152,224,128,9,5,10, - 9,0,2,224,0,252,0,255,128,252,0,224,0,9,5,10, - 9,0,2,224,0,156,0,131,128,156,0,224,0,9,10,20, - 9,0,0,255,128,255,128,127,0,127,0,62,0,62,0,28, - 0,28,0,8,0,8,0,9,10,20,9,0,0,255,128,128, - 128,65,0,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,7,7,9,1,1,254,124,124,56,56,16,16,7,7, - 7,9,1,1,254,68,68,40,40,16,16,9,9,18,9,0, - 0,1,128,7,128,31,128,127,128,255,128,127,128,31,128,7, - 128,1,128,9,9,18,9,0,0,1,128,6,128,24,128,96, - 128,128,128,96,128,24,128,6,128,1,128,7,7,7,9,1, - 1,2,14,62,254,62,14,2,7,7,7,9,1,1,2,14, - 50,194,50,14,2,9,5,10,9,0,2,3,128,31,128,255, - 128,31,128,3,128,9,5,10,9,0,2,3,128,28,128,224, - 128,28,128,3,128,9,9,18,9,0,0,8,0,28,0,62, - 0,127,0,255,128,127,0,62,0,28,0,8,0,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,128,128,65,0,34, - 0,20,0,8,0,9,9,18,9,0,0,8,0,20,0,34, - 0,73,0,156,128,73,0,34,0,20,0,8,0,7,7,7, - 9,1,1,56,68,146,186,146,68,56,5,9,9,9,2,0, - 32,32,80,80,136,80,80,32,32,7,7,7,9,1,1,56, - 68,130,130,130,68,56,7,7,7,9,1,1,16,68,0,130, - 0,68,16,7,7,7,9,1,1,56,108,170,170,170,108,56, - 7,7,7,9,1,1,56,68,146,170,146,68,56,7,7,7, - 9,1,1,56,124,254,254,254,124,56,7,7,7,9,1,1, - 56,116,242,242,242,116,56,7,7,7,9,1,1,56,92,158, - 158,158,92,56,7,7,7,9,1,1,56,68,130,254,254,124, - 56,7,7,7,9,1,1,56,124,254,254,130,68,56,7,7, - 7,9,1,1,56,92,158,158,130,68,56,7,7,7,9,1, - 1,56,92,158,254,254,124,56,4,7,7,9,1,1,48,112, - 240,240,240,112,48,4,7,7,9,4,1,192,224,240,240,240, - 224,192,9,18,36,9,0,252,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,227,128,193,128,193,128,193,128,227,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,227,128, - 221,128,190,128,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,255,128,9,10,20,9,0,4,255,128,255,128, - 255,128,255,128,255,128,255,128,227,128,221,128,190,128,190,128, - 9,9,18,9,0,252,190,128,190,128,221,128,227,128,255,128, - 255,128,255,128,255,128,255,128,4,4,4,9,1,4,48,64, - 128,128,4,4,4,9,4,4,192,32,16,16,4,4,4,9, - 4,1,16,16,32,192,4,4,4,9,1,1,128,128,64,48, - 7,4,4,9,1,4,56,68,130,130,7,4,4,9,1,1, - 130,130,68,56,7,7,7,9,1,1,2,6,14,30,62,126, - 254,7,7,7,9,1,1,128,192,224,240,248,252,254,7,7, - 7,9,1,1,254,252,248,240,224,192,128,7,7,7,9,1, - 1,254,126,62,30,14,6,2,5,5,5,9,2,2,112,136, - 136,136,112,7,7,7,9,1,1,254,242,242,242,242,242,254, - 7,7,7,9,1,1,254,158,158,158,158,158,254,7,7,7, - 9,1,1,254,254,250,242,226,194,254,7,7,7,9,1,1, - 254,134,142,158,190,254,254,7,7,7,9,1,1,254,146,146, - 146,146,146,254,9,10,20,9,0,0,8,0,8,0,20,0, - 20,0,34,0,42,0,93,0,73,0,128,128,255,128,9,10, - 20,9,0,0,8,0,8,0,28,0,28,0,58,0,58,0, - 121,0,121,0,248,128,255,128,9,10,20,9,0,0,8,0, - 8,0,28,0,28,0,46,0,46,0,79,0,79,0,143,128, - 255,128,9,9,18,9,0,0,62,0,65,0,128,128,128,128, - 128,128,128,128,128,128,65,0,62,0,7,7,7,9,1,1, - 254,146,146,242,130,130,254,7,7,7,9,1,1,254,130,130, - 242,146,146,254,7,7,7,9,1,1,254,130,130,158,146,146, - 254,7,7,7,9,1,1,254,146,146,158,130,130,254,7,7, - 7,9,1,1,124,146,146,242,130,130,124,7,7,7,9,1, - 1,124,130,130,242,146,146,124,7,7,7,9,1,1,124,130, - 130,158,146,146,124,7,7,7,9,1,1,124,146,146,158,130, - 130,124,6,6,6,9,1,1,252,136,144,160,192,128,6,6, - 6,9,1,1,252,68,36,20,12,4,6,6,6,9,1,1, - 128,192,160,144,136,252,6,6,6,9,1,1,252,132,132,132, - 132,252,6,6,6,9,1,1,252,252,252,252,252,252,5,5, - 5,9,2,1,248,136,136,136,248,5,5,5,9,2,1,248, - 248,248,248,248,6,6,6,9,1,1,4,12,20,36,68,252 - }; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_75r[792] U8G_SECTION(".progmem.u8g_font_9x18_75r") = { - 0,9,18,0,252,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=12 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[3336] U8G_SECTION(".progmem.u8g_font_9x18_78_79") = { - 0,9,18,0,252,9,2,231,4,175,32,255,0,12,255,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,5,12,12,9,2,255,248,160,160,160, - 160,160,160,160,160,160,160,248,5,12,12,9,2,255,248,40, - 40,40,40,40,40,40,40,40,40,248,3,10,10,9,3,0, - 32,32,64,64,128,128,64,64,32,32,3,10,10,9,3,0, - 128,128,64,64,32,32,64,64,128,128,6,10,10,9,1,0, - 36,36,72,72,144,144,72,72,36,36,6,10,10,9,2,0, - 144,144,72,72,36,36,72,72,144,144,255,255,255,255,9,11, - 22,9,0,0,8,0,20,0,54,0,85,0,213,128,85,0, - 85,0,85,0,85,0,85,0,85,0,9,11,22,9,0,255, - 85,0,85,0,85,0,85,0,85,0,85,0,213,128,85,0, - 54,0,20,0,8,0,8,8,8,9,0,0,28,34,169,113, - 33,1,34,28,8,8,8,9,0,0,56,68,149,142,132,128, - 68,56,9,5,10,9,0,2,114,0,169,0,255,128,169,0, - 114,0,9,5,10,9,0,2,32,0,64,0,255,128,64,0, - 32,0,9,5,10,9,0,2,2,0,1,0,255,128,1,0, - 2,0,9,5,10,9,0,2,34,0,65,0,255,128,65,0, - 34,0,9,7,14,9,0,1,16,0,32,0,127,128,128,0, - 127,128,32,0,16,0,9,7,14,9,0,1,4,0,2,0, - 255,0,0,128,255,0,2,0,4,0,9,7,14,9,0,1, - 20,0,34,0,127,0,128,128,127,0,34,0,20,0,9,5, - 10,9,0,2,32,128,64,128,255,128,64,128,32,128,9,5, - 10,9,0,2,130,0,129,0,255,128,129,0,130,0,9,7, - 14,9,0,1,16,128,32,128,127,128,128,128,127,128,32,128, - 16,128,9,7,14,9,0,1,132,0,130,0,255,0,128,128, - 255,0,130,0,132,0,9,6,12,9,0,1,2,0,1,0, - 85,128,170,128,1,0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18B[3026] U8G_SECTION(".progmem.u8g_font_9x18B") = { - 0,9,18,0,252,10,1,242,3,225,32,255,253,14,252,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,9,0,14, - 2,10,10,9,4,0,192,0,192,192,192,192,192,192,192,192, - 7,8,8,9,1,0,4,124,206,208,208,230,124,64,8,10, - 10,9,0,255,30,51,48,48,124,48,48,248,191,224,7,7, - 7,9,1,2,198,254,108,68,108,254,198,8,10,10,9,0, - 0,195,195,102,60,126,24,126,24,24,24,2,11,11,9,3, - 255,192,192,192,192,192,0,192,192,192,192,192,6,11,11,9, - 1,255,120,204,192,120,204,204,204,120,12,204,120,5,2,2, - 9,2,11,216,216,8,11,11,9,0,0,60,126,195,189,165, - 161,165,189,195,126,60,5,7,7,9,1,3,112,24,120,216, - 120,0,248,8,8,8,9,0,1,27,54,108,216,216,108,54, - 27,7,5,5,9,1,2,254,254,6,6,6,6,1,1,9, - 1,4,252,8,11,11,9,0,0,60,126,195,189,165,189,169, - 173,195,126,60,6,2,2,9,1,9,252,252,5,4,4,9, - 1,8,112,216,216,112,6,9,9,9,1,1,48,48,48,252, - 48,48,48,0,252,5,6,6,9,1,4,112,216,24,48,96, - 248,5,6,6,9,1,4,112,216,48,24,216,112,4,3,3, - 9,2,10,48,96,192,7,9,9,9,1,254,198,198,198,198, - 206,222,246,192,192,7,10,10,9,1,0,126,246,246,246,118, - 54,54,54,54,54,3,2,2,9,3,4,224,224,6,3,3, - 9,1,253,24,204,120,4,6,6,9,1,4,96,224,96,96, - 96,240,5,7,7,9,1,3,112,216,216,216,112,0,248,8, - 8,8,9,0,1,216,108,54,27,27,54,108,216,8,11,11, - 9,0,0,96,224,96,96,97,99,247,15,27,31,3,8,11, - 11,9,0,0,96,224,96,96,110,115,243,6,12,24,31,8, - 11,11,9,0,0,112,152,24,48,25,155,119,15,27,31,3, - 7,10,10,9,1,0,24,24,0,24,48,96,192,198,198,124, - 7,14,14,9,1,0,96,48,24,0,16,56,56,56,108,124, - 108,198,198,198,7,14,14,9,1,0,12,24,48,0,16,56, - 56,56,108,124,108,198,198,198,7,14,14,9,1,0,16,56, - 108,0,16,56,56,56,108,124,108,198,198,198,7,13,13,9, - 1,0,118,220,0,16,56,56,56,108,124,108,198,198,198,7, - 13,13,9,1,0,108,108,0,16,56,56,56,108,124,108,198, - 198,198,7,14,14,9,1,0,56,108,108,56,16,56,56,56, - 108,124,108,198,198,198,7,10,10,9,1,0,62,60,108,108, - 110,252,204,204,204,206,7,14,14,9,1,252,60,102,192,192, - 192,192,192,192,102,60,24,12,108,56,7,14,14,9,1,0, - 96,48,24,0,254,192,192,192,248,192,192,192,192,254,7,14, - 14,9,1,0,12,24,48,0,254,192,192,192,248,192,192,192, - 192,254,7,14,14,9,1,0,16,56,108,0,254,192,192,192, - 248,192,192,192,192,254,7,13,13,9,1,0,108,108,0,254, - 192,192,192,248,192,192,192,192,254,6,14,14,9,1,0,96, - 48,24,0,252,48,48,48,48,48,48,48,48,252,6,14,14, - 9,1,0,12,24,48,0,252,48,48,48,48,48,48,48,48, - 252,6,14,14,9,1,0,16,56,108,0,252,48,48,48,48, - 48,48,48,48,252,6,13,13,9,1,0,108,108,0,252,48, - 48,48,48,48,48,48,48,252,8,10,10,9,0,0,124,102, - 99,99,243,99,99,99,102,124,7,13,13,9,1,0,118,220, - 0,198,198,230,246,222,206,198,198,198,198,7,14,14,9,1, - 0,96,48,24,0,124,198,198,198,198,198,198,198,198,124,7, - 14,14,9,1,0,12,24,48,0,124,198,198,198,198,198,198, - 198,198,124,7,14,14,9,1,0,16,56,108,0,124,198,198, - 198,198,198,198,198,198,124,7,13,13,9,1,0,118,220,0, - 124,198,198,198,198,198,198,198,198,124,7,13,13,9,1,0, - 108,108,0,124,198,198,198,198,198,198,198,198,124,8,7,7, - 9,0,1,195,102,60,24,60,102,195,7,12,12,9,1,255, - 6,126,206,206,222,222,246,246,230,230,252,192,7,14,14,9, - 1,0,96,48,24,0,198,198,198,198,198,198,198,198,108,56, - 7,14,14,9,1,0,12,24,48,0,198,198,198,198,198,198, - 198,198,108,56,7,14,14,9,1,0,16,56,108,0,198,198, - 198,198,198,198,198,198,108,56,7,13,13,9,1,0,108,108, - 0,198,198,198,198,198,198,198,198,108,56,8,14,14,9,0, - 0,12,24,48,0,195,195,102,60,24,24,24,24,24,24,7, - 10,10,9,1,0,192,192,252,198,198,198,252,192,192,192,7, - 10,10,9,1,0,60,102,102,102,236,102,102,102,102,108,7, - 11,11,9,1,0,96,48,24,0,124,6,6,126,198,198,126, - 7,11,11,9,1,0,12,24,48,0,124,6,6,126,198,198, - 126,7,11,11,9,1,0,16,56,108,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,118,220,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,108,108,0,124,6,6,126,198, - 198,126,7,11,11,9,1,0,56,108,56,0,124,6,6,126, - 198,198,126,8,7,7,9,0,0,118,27,27,127,216,219,118, - 7,11,11,9,1,252,124,198,192,192,192,198,124,24,12,108, - 56,7,11,11,9,1,0,96,48,24,0,124,198,198,254,192, - 198,124,7,11,11,9,1,0,12,24,48,0,124,198,198,254, - 192,198,124,7,11,11,9,1,0,16,56,108,0,124,198,198, - 254,192,198,124,7,10,10,9,1,0,108,108,0,124,198,198, - 254,192,198,124,6,11,11,9,1,0,192,96,48,0,240,48, - 48,48,48,48,252,6,11,11,9,1,0,12,24,48,0,240, - 48,48,48,48,48,252,6,11,11,9,1,0,32,112,216,0, - 240,48,48,48,48,48,252,6,10,10,9,1,0,108,108,0, - 240,48,48,48,48,48,252,7,11,11,9,1,0,108,56,56, - 108,12,126,198,198,198,198,124,7,10,10,9,1,0,118,220, - 0,220,230,198,198,198,198,198,7,11,11,9,1,0,96,48, - 24,0,56,108,198,198,198,108,56,7,11,11,9,1,0,12, - 24,48,0,56,108,198,198,198,108,56,7,11,11,9,1,0, - 16,56,108,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,118,220,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,108,108,0,56,108,198,198,198,108,56,8,7,7,9,0, - 1,24,24,0,255,0,24,24,8,9,9,9,0,255,1,63, - 102,207,219,243,102,252,128,7,11,11,9,1,0,96,48,24, - 0,198,198,198,198,198,198,126,7,11,11,9,1,0,12,24, - 48,0,198,198,198,198,198,198,126,7,11,11,9,1,0,16, - 56,108,0,198,198,198,198,198,198,126,7,10,10,9,1,0, - 108,108,0,198,198,198,198,198,198,126,7,14,14,9,1,253, - 12,24,48,0,198,198,108,108,108,56,56,48,176,96,7,11, - 11,9,1,254,192,192,248,204,198,198,198,204,248,192,192,7, - 13,13,9,1,253,108,108,0,198,198,108,108,108,56,56,48, - 176,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18Br[1434] U8G_SECTION(".progmem.u8g_font_9x18Br") = { - 0,9,18,0,252,10,1,242,3,225,32,127,253,14,253,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=14 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18[3011] U8G_SECTION(".progmem.u8g_font_9x18") = { - 0,9,18,0,252,10,1,232,3,215,32,255,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,14,1,11,11,9,4,0,128,128,0,0, - 128,128,128,128,128,128,128,6,8,8,9,1,0,8,120,148, - 144,160,164,120,64,7,10,10,9,1,0,28,34,32,32,248, - 32,32,96,162,92,7,6,6,9,1,3,130,124,68,68,124, - 130,7,10,10,9,1,0,130,130,68,40,124,16,124,16,16, - 16,1,11,11,9,4,255,128,128,128,128,128,0,128,128,128, - 128,128,4,11,11,9,2,255,96,144,128,96,144,144,144,96, - 16,144,96,3,2,2,9,3,11,160,160,8,9,9,9,0, - 1,60,66,153,165,161,165,153,66,60,5,7,7,9,1,3, - 96,144,112,144,120,0,248,7,8,8,9,1,1,18,36,72, - 144,144,72,36,18,6,4,4,9,1,2,252,4,4,4,5, - 1,1,9,2,4,248,8,9,9,9,0,1,60,66,185,165, - 189,169,165,66,60,6,1,1,9,1,9,252,4,4,4,9, - 3,6,96,144,144,96,7,9,9,9,1,1,16,16,16,254, - 16,16,16,0,254,4,6,6,9,1,4,96,144,16,96,128, - 240,4,6,6,9,1,4,96,144,32,16,144,96,3,3,3, - 9,3,10,32,64,128,7,9,9,9,1,254,130,130,130,130, - 130,198,186,128,128,7,10,10,9,1,0,126,138,138,138,122, - 10,10,10,10,10,2,2,2,9,4,4,192,192,4,3,3, - 9,2,253,32,144,96,3,6,6,9,1,4,64,192,64,64, - 64,224,5,6,6,9,1,4,112,136,136,112,0,248,7,8, - 8,9,1,1,144,72,36,18,18,36,72,144,7,10,10,9, - 1,0,64,192,64,64,66,230,10,18,26,6,7,10,10,9, - 1,0,64,192,64,64,76,242,2,12,16,30,7,10,10,9, - 1,0,96,144,32,16,146,102,10,18,26,6,7,10,10,9, - 1,0,16,0,16,16,32,64,128,130,130,124,7,14,14,9, - 1,0,32,16,8,0,16,40,40,40,68,124,68,130,130,130, - 7,14,14,9,1,0,8,16,32,0,16,40,40,40,68,124, - 68,130,130,130,7,14,14,9,1,0,16,40,68,0,16,40, - 40,40,68,124,68,130,130,130,7,13,13,9,1,0,52,88, - 0,16,40,40,40,68,124,68,130,130,130,7,13,13,9,1, - 0,40,40,0,16,40,40,40,68,124,68,130,130,130,7,14, - 14,9,1,0,16,40,40,16,16,40,40,40,68,124,68,130, - 130,130,7,10,10,9,1,0,30,40,40,40,78,120,72,136, - 136,142,7,13,13,9,1,253,60,66,128,128,128,128,128,128, - 66,60,8,36,24,7,14,14,9,1,0,32,16,8,0,254, - 128,128,128,248,128,128,128,128,254,7,14,14,9,1,0,8, - 16,32,0,254,128,128,128,248,128,128,128,128,254,7,14,14, - 9,1,0,16,40,68,0,254,128,128,128,248,128,128,128,128, - 254,7,13,13,9,1,0,40,40,0,254,128,128,128,248,128, - 128,128,128,254,5,14,14,9,2,0,64,32,16,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,9,2,0,16,32, - 64,0,248,32,32,32,32,32,32,32,32,248,5,14,14,9, - 2,0,32,80,136,0,248,32,32,32,32,32,32,32,32,248, - 5,13,13,9,2,0,80,80,0,248,32,32,32,32,32,32, - 32,32,248,7,10,10,9,1,0,120,68,66,66,242,66,66, - 66,68,120,7,13,13,9,1,0,52,88,0,130,130,194,162, - 146,138,134,130,130,130,7,14,14,9,1,0,32,16,8,0, - 124,130,130,130,130,130,130,130,130,124,7,14,14,9,1,0, - 8,16,32,0,124,130,130,130,130,130,130,130,130,124,7,14, - 14,9,1,0,16,40,68,0,124,130,130,130,130,130,130,130, - 130,124,7,13,13,9,1,0,52,88,0,124,130,130,130,130, - 130,130,130,130,124,7,13,13,9,1,0,40,40,0,124,130, - 130,130,130,130,130,130,130,124,7,7,7,9,1,1,130,68, - 40,16,40,68,130,7,12,12,9,1,255,2,124,134,138,138, - 146,146,162,162,194,124,128,7,14,14,9,1,0,32,16,8, - 0,130,130,130,130,130,130,130,130,68,56,7,14,14,9,1, - 0,8,16,32,0,130,130,130,130,130,130,130,130,68,56,7, - 14,14,9,1,0,16,40,68,0,130,130,130,130,130,130,130, - 130,68,56,7,13,13,9,1,0,40,40,0,130,130,130,130, - 130,130,130,130,68,56,7,14,14,9,1,0,8,16,32,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,8,16,32,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,52,88,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,40,40,0,124,2,2,126,130,134,122,7,12,12, - 9,1,0,16,40,40,16,0,124,2,2,126,130,134,122,7, - 7,7,9,1,0,108,18,18,126,144,146,108,7,10,10,9, - 1,253,124,130,128,128,128,130,124,16,72,48,7,11,11,9, - 1,0,32,16,8,0,124,130,130,254,128,130,124,7,11,11, - 9,1,0,8,16,32,0,124,130,130,254,128,130,124,7,11, - 11,9,1,0,16,40,68,0,124,130,130,254,128,130,124,7, - 10,10,9,1,0,40,40,0,124,130,130,254,128,130,124,5, - 12,12,9,2,0,128,64,32,0,0,224,32,32,32,32,32, - 248,5,12,12,9,2,0,16,32,64,0,0,224,32,32,32, - 32,32,248,5,12,12,9,2,0,32,80,136,0,0,224,32, - 32,32,32,32,248,5,11,11,9,2,0,80,80,0,0,224, - 32,32,32,32,32,248,7,11,11,9,1,0,72,48,80,8, - 60,68,130,130,130,68,56,7,10,10,9,1,0,52,88,0, - 188,194,130,130,130,130,130,7,11,11,9,1,0,32,16,8, - 0,124,130,130,130,130,130,124,7,11,11,9,1,0,8,16, - 32,0,124,130,130,130,130,130,124,7,11,11,9,1,0,16, - 40,68,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 52,88,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 40,40,0,124,130,130,130,130,130,124,7,9,9,9,1,0, - 16,56,16,0,254,0,16,56,16,7,9,9,9,1,255,2, - 124,138,138,146,162,162,124,128,7,11,11,9,1,0,64,32, - 16,0,130,130,130,130,130,134,122,7,11,11,9,1,0,8, - 16,32,0,130,130,130,130,130,134,122,7,11,11,9,1,0, - 16,40,68,0,130,130,130,130,130,134,122,7,10,10,9,1, - 0,40,40,0,130,130,130,130,130,134,122,7,14,14,9,1, - 253,4,8,16,0,66,66,36,36,36,24,24,16,144,96,7, - 11,11,9,1,254,128,128,184,196,130,130,130,196,184,128,128, - 7,13,13,9,1,253,36,36,0,66,66,36,36,36,24,24, - 16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=13 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18r[1424] U8G_SECTION(".progmem.u8g_font_9x18r") = { - 0,9,18,0,252,10,1,232,3,215,32,127,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255 - }; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 9 x= 1 y= 5 dx=10 dy= 0 ascent= 8 len=12 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_baby[2227] U8G_SECTION(".progmem.u8g_font_baby") = { - 0,10,10,255,254,5,1,108,2,200,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,1,6,6,3,1,255,128,0,128,128,128,128,4,6,6, - 5,0,255,16,112,160,160,112,64,4,6,6,5,0,0,96, - 208,64,224,64,240,4,4,4,5,0,1,240,144,144,240,5, - 7,7,6,0,255,136,80,32,112,32,112,32,1,7,7,2, - 0,255,128,128,128,0,128,128,128,4,7,7,5,0,255,112, - 128,96,144,96,16,224,3,1,1,4,0,5,160,7,7,7, - 8,0,255,56,68,154,162,154,68,56,3,3,3,4,0,4, - 96,160,224,4,3,3,5,0,1,80,160,80,5,3,3,6, - 0,1,248,8,8,2,1,1,3,0,2,192,7,7,7,8, - 0,255,56,68,178,186,170,68,56,4,1,1,5,0,5,240, - 3,3,3,4,0,4,64,160,64,3,5,5,4,0,0,64, - 224,64,0,224,3,4,4,4,0,4,192,32,64,224,3,4, - 4,4,0,4,224,32,96,224,2,2,2,3,0,5,64,128, - 5,6,6,6,0,254,144,144,144,248,128,128,5,6,6,6, - 0,0,120,232,232,104,40,40,1,1,1,3,1,2,128,3, - 3,3,4,0,254,64,32,192,3,4,4,4,0,4,64,192, - 64,224,4,4,4,5,0,4,96,144,144,96,4,3,3,5, - 0,1,160,80,160,7,6,6,8,0,0,136,144,160,42,78, - 130,7,6,6,8,0,0,136,144,164,42,68,142,9,6,12, - 10,0,0,226,0,100,0,232,0,10,128,19,128,32,128,4, - 6,6,5,0,255,32,0,32,64,144,96,4,8,8,5,0, - 0,64,32,0,96,144,144,240,144,4,8,8,5,0,0,32, - 64,0,96,144,144,240,144,4,8,8,5,0,0,96,144,0, - 96,144,144,240,144,4,8,8,5,0,0,80,160,0,96,144, - 144,240,144,4,7,7,5,0,0,80,0,96,144,144,240,144, - 4,7,7,5,0,0,96,0,96,144,144,240,144,7,5,5, - 8,0,0,126,144,156,240,158,4,7,7,5,0,254,96,144, - 128,144,96,32,64,4,8,8,5,0,0,64,32,0,240,128, - 224,128,240,4,8,8,5,0,0,32,64,0,240,128,224,128, - 240,4,8,8,5,0,0,96,144,0,240,128,224,128,240,4, - 7,7,5,0,0,80,0,240,128,224,128,240,3,8,8,4, - 0,0,128,64,0,224,64,64,64,224,3,8,8,4,0,0, - 32,64,0,224,64,64,64,224,3,8,8,4,0,0,64,160, - 0,224,64,64,64,224,3,7,7,4,0,0,160,0,224,64, - 64,64,224,5,5,5,6,0,0,112,72,232,72,112,4,8, - 8,5,0,0,80,160,0,144,144,208,176,144,4,8,8,5, - 0,0,64,32,0,96,144,144,144,96,4,8,8,5,0,0, - 32,64,0,96,144,144,144,96,4,8,8,5,0,0,96,144, - 0,96,144,144,144,96,4,8,8,5,0,0,80,160,0,96, - 144,144,144,96,4,7,7,5,0,0,80,0,96,144,144,144, - 96,3,3,3,4,0,1,160,64,160,6,5,5,7,0,0, - 48,76,120,200,48,4,8,8,5,0,0,64,32,0,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,144,144, - 96,4,8,8,5,0,0,96,144,0,144,144,144,144,96,4, - 7,7,5,0,0,80,0,144,144,144,144,96,4,9,9,5, - 0,255,32,64,0,144,144,144,112,16,96,4,6,6,5,0, - 0,128,224,144,144,224,128,4,5,5,5,0,0,96,144,160, - 144,160,4,7,7,5,0,0,64,32,0,96,144,144,112,4, - 7,7,5,0,0,32,64,0,96,144,144,112,4,7,7,5, - 0,0,96,144,0,96,144,144,112,4,7,7,5,0,0,80, - 160,0,96,144,144,112,4,6,6,5,0,0,80,0,96,144, - 144,112,4,7,7,5,0,0,96,96,0,96,144,144,112,7, - 4,4,8,0,0,108,146,148,126,3,6,6,4,0,254,96, - 128,128,96,32,64,4,7,7,5,0,0,64,32,0,96,144, - 160,112,4,7,7,5,0,0,32,64,0,96,144,160,112,4, - 7,7,5,0,0,96,144,0,96,144,160,112,4,6,6,5, - 0,0,80,0,96,144,160,112,2,6,6,3,0,0,128,64, - 0,64,64,64,2,6,6,3,0,0,64,128,0,128,128,128, - 3,6,6,4,0,0,64,160,0,64,64,64,3,5,5,4, - 0,0,160,0,64,64,64,5,6,6,6,0,0,96,24,112, - 144,144,96,4,7,7,5,0,0,80,160,0,224,144,144,144, - 4,7,7,5,0,0,64,32,0,96,144,144,96,4,7,7, - 5,0,0,32,64,0,96,144,144,96,4,7,7,5,0,0, - 96,144,0,96,144,144,96,4,7,7,5,0,0,80,160,0, - 96,144,144,96,4,6,6,5,0,0,80,0,96,144,144,96, - 5,5,5,6,0,0,32,0,248,0,32,4,4,4,5,0, - 0,96,176,208,96,4,7,7,5,0,0,64,32,0,144,144, - 144,112,4,7,7,5,0,0,32,64,0,144,144,144,112,4, - 7,7,5,0,0,96,144,0,144,144,144,112,4,6,6,5, - 0,0,80,0,144,144,144,112,4,9,9,5,0,254,32,64, - 0,144,144,144,112,16,96,4,8,8,5,0,254,128,128,224, - 144,144,224,128,128,4,8,8,5,0,254,80,0,144,144,144, - 112,16,96}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 3 dx= 5 dy= 0 ascent= 6 len= 6 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyn[180] U8G_SECTION(".progmem.u8g_font_babyn") = { - 0,10,10,255,254,5,0,0,0,0,42,57,0,6,254,5, - 0,3,3,3,4,0,3,160,64,160,3,3,3,5,1,1, - 64,224,64,2,3,3,3,0,254,192,64,128,3,1,1,4, - 0,2,224,1,1,1,2,0,0,128,3,6,6,4,0,255, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,160,160, - 64,2,5,5,3,0,0,64,192,64,64,64,4,5,5,5, - 0,0,96,144,32,64,240,4,5,5,5,0,0,224,16,96, - 16,224,4,5,5,5,0,0,144,144,144,112,16,4,5,5, - 5,0,0,240,128,224,16,224,4,5,5,5,0,0,96,128, - 224,144,96,4,5,5,5,0,0,240,16,32,64,128,4,5, - 5,5,0,0,96,144,96,144,96,4,5,5,5,0,0,96, - 144,112,16,96}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 1 y= 5 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyr[1040] U8G_SECTION(".progmem.u8g_font_babyr") = { - 0,10,10,255,254,5,1,108,2,200,32,127,254,7,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255 - }; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07[948] U8G_SECTION(".progmem.u8g_font_blipfest_07") = { - 0,5,6,0,255,5,1,5,2,47,32,255,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[160] U8G_SECTION(".progmem.u8g_font_blipfest_07n") = { - 0,5,6,0,255,5,0,0,0,0,42,57,0,5,0,5, - 0,255,3,3,3,4,0,1,64,224,64,1,2,2,2,0, - 0,128,128,3,1,1,4,0,2,224,1,1,1,2,0,0, - 128,255,3,5,5,4,0,0,224,160,160,160,224,2,5,5, - 3,0,0,192,64,64,64,64,3,5,5,4,0,0,224,32, - 224,128,224,3,5,5,4,0,0,224,32,224,32,224,3,5, - 5,4,0,0,160,160,224,32,32,3,5,5,4,0,0,224, - 128,224,32,224,3,5,5,4,0,0,224,128,224,160,224,3, - 5,5,4,0,0,224,32,32,32,32,3,5,5,4,0,0, - 224,160,224,160,224,3,5,5,4,0,0,224,160,224,32,224 - }; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[820] U8G_SECTION(".progmem.u8g_font_blipfest_07r") = { - 0,5,6,0,255,5,1,5,2,47,32,127,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 8 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=10 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikita[2236] U8G_SECTION(".progmem.u8g_font_chikita") = { - 0,9,10,0,254,5,1,107,2,195,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,1,7,7,2,0,255,128, - 0,128,128,128,128,128,3,5,5,4,0,0,64,224,128,224, - 64,5,6,6,6,0,0,112,136,72,224,64,248,5,5,5, - 6,0,0,136,112,80,112,136,5,6,6,6,0,0,136,80, - 32,112,112,32,1,5,5,2,0,0,128,128,0,128,128,4, - 7,7,5,0,254,112,128,96,144,96,16,224,3,1,1,4, - 0,6,160,7,7,7,8,0,255,124,130,186,162,186,130,124, - 3,4,4,4,0,4,96,224,160,96,6,5,5,7,0,0, - 36,72,144,72,36,5,3,3,6,0,2,248,8,8,3,1, - 1,5,1,2,224,7,7,7,8,0,255,124,130,186,178,170, - 130,124,5,1,1,6,0,6,248,4,4,4,5,0,3,96, - 144,144,96,3,5,5,5,1,0,64,224,64,0,224,4,5, - 5,5,0,2,96,144,32,64,240,4,5,5,5,0,2,224, - 16,96,16,224,2,2,2,3,0,5,64,128,5,6,6,6, - 0,254,136,136,216,168,128,128,6,7,7,7,0,254,124,232, - 232,104,40,40,40,3,3,3,5,1,1,224,224,224,3,3, - 3,5,1,254,64,32,224,2,5,5,3,0,2,64,192,64, - 64,64,4,5,5,5,0,2,96,144,144,144,96,6,5,5, - 7,0,0,144,72,36,72,144,7,8,8,8,0,254,66,196, - 72,80,38,74,142,2,7,8,8,8,0,254,66,196,72,80, - 44,66,132,14,7,8,8,8,0,254,226,68,40,208,38,74, - 142,2,5,7,7,6,0,255,32,0,32,32,72,136,112,5, - 8,8,6,0,0,64,32,0,112,136,136,248,136,5,8,8, - 6,0,0,16,32,0,112,136,136,248,136,5,8,8,6,0, - 0,32,80,0,112,136,136,248,136,5,8,8,6,0,0,40, - 80,0,112,136,136,248,136,5,7,7,6,0,0,80,0,112, - 136,136,248,136,5,8,8,6,0,0,32,80,32,112,136,136, - 248,136,9,5,10,10,0,0,63,128,72,0,143,0,248,0, - 143,128,5,7,7,6,0,254,112,136,128,136,112,16,112,5, - 8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,8, - 6,0,0,16,32,0,248,128,240,128,248,5,8,8,6,0, - 0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,80, - 0,248,128,240,128,248,3,8,8,4,0,0,128,64,0,224, - 64,64,64,224,3,8,8,4,0,0,32,64,0,224,64,64, - 64,224,3,8,8,4,0,0,64,160,0,224,64,64,64,224, - 3,7,7,4,0,0,160,0,224,64,64,64,224,5,5,5, - 6,0,0,112,72,232,72,112,5,8,8,6,0,0,40,80, - 0,136,200,168,152,136,5,8,8,6,0,0,64,32,0,112, - 136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136, - 136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112, - 5,8,8,6,0,0,64,168,16,112,136,136,136,112,5,7, - 7,6,0,0,80,0,112,136,136,136,112,3,3,3,4,0, - 1,160,64,160,5,5,5,6,0,0,120,152,168,200,240,5, - 8,8,6,0,0,64,32,0,136,136,136,136,112,5,8,8, - 6,0,0,16,32,0,136,136,136,136,112,5,8,8,6,0, - 0,32,80,0,136,136,136,136,112,5,7,7,6,0,0,80, - 0,136,136,136,136,112,5,8,8,6,0,0,16,32,0,136, - 136,80,32,32,5,5,5,6,0,0,128,240,136,240,128,4, - 5,5,5,0,0,96,144,160,144,160,4,7,7,5,0,0, - 64,32,0,112,144,144,240,4,7,7,5,0,0,32,64,0, - 112,144,144,240,4,7,7,5,0,0,32,80,0,112,144,144, - 240,4,7,7,5,0,0,80,160,0,112,144,144,240,4,6, - 6,5,0,0,80,0,112,144,144,240,4,7,7,5,0,0, - 32,80,32,112,144,144,240,7,5,5,8,0,0,236,18,126, - 144,238,4,6,6,5,0,254,112,128,128,112,32,96,4,7, - 7,5,0,0,64,32,0,96,144,224,112,4,7,7,5,0, - 0,32,64,0,96,144,224,112,4,7,7,5,0,0,32,80, - 0,96,144,224,112,4,6,6,5,0,0,80,0,96,144,224, - 112,2,7,7,3,0,0,128,64,0,64,64,64,64,2,7, - 7,3,0,0,64,128,0,128,128,128,128,3,7,7,4,0, - 0,64,160,0,64,64,64,64,3,6,6,4,0,0,160,0, - 64,64,64,64,4,6,6,5,0,0,64,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,96,144,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,5,5,5, - 6,0,0,32,0,248,0,32,4,4,4,5,0,0,112,176, - 208,224,4,7,7,5,0,0,64,32,0,144,144,144,112,4, - 7,7,5,0,0,32,64,0,144,144,144,112,4,7,7,5, - 0,0,32,80,0,144,144,144,112,4,6,6,5,0,0,80, - 0,144,144,144,112,4,8,8,5,0,254,32,64,0,144,144, - 112,16,224,4,6,6,5,0,254,128,224,144,144,224,128,4, - 7,7,5,0,254,80,0,144,144,112,16,224}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitan[180] U8G_SECTION(".progmem.u8g_font_chikitan") = { - 0,9,10,0,254,5,0,0,0,0,42,57,0,5,255,5, - 0,3,3,3,5,1,1,160,64,160,5,5,5,6,0,0, - 32,32,248,32,32,2,2,2,3,0,255,64,128,5,1,1, - 6,0,2,248,1,1,1,2,0,0,128,3,5,5,5,1, - 0,32,32,64,128,128,4,5,5,5,0,0,96,144,144,144, - 96,2,5,5,3,0,0,64,192,64,64,64,5,5,5,6, - 0,0,112,136,48,64,248,5,5,5,6,0,0,240,8,112, - 8,240,5,5,5,6,0,0,48,80,144,248,16,5,5,5, - 6,0,0,248,128,240,8,240,5,5,5,6,0,0,120,128, - 240,136,112,5,5,5,6,0,0,248,8,16,32,64,5,5, - 5,6,0,0,112,136,112,136,112,5,5,5,6,0,0,112, - 136,120,8,240}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 7 h= 7 x= 1 y= 4 dx= 8 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitar[1032] U8G_SECTION(".progmem.u8g_font_chikitar") = { - 0,9,10,0,254,5,1,107,2,195,32,127,254,6,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08[2425] U8G_SECTION(".progmem.u8g_font_courB08") = { - 0,12,16,253,252,6,1,146,3,13,32,255,254,9,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,1,2, - 7,7,6,1,254,192,0,192,192,192,192,192,5,8,8,6, - 0,255,32,32,120,200,192,120,32,32,6,7,7,6,0,0, - 56,104,32,248,32,100,248,5,5,5,6,0,1,136,112,80, - 112,136,6,7,7,6,0,0,204,72,252,48,252,48,120,1, - 9,9,6,2,254,128,128,128,128,0,128,128,128,128,5,8, - 8,6,0,255,120,72,96,144,72,48,144,240,3,1,1,6, - 1,5,160,6,7,7,6,0,0,48,72,180,164,180,72,48, - 4,5,5,6,1,2,224,16,208,0,240,7,5,5,6,255, - 0,54,108,216,108,54,5,3,3,6,0,2,248,8,8,5, - 1,1,6,0,3,248,7,7,7,6,0,0,56,68,186,178, - 170,68,56,4,1,1,6,0,5,240,4,3,3,6,0,4, - 96,144,96,5,6,6,6,0,0,32,32,248,32,0,248,3, - 4,4,6,1,3,96,160,64,224,3,4,4,6,1,3,224, - 64,32,192,2,2,2,6,2,5,64,128,7,7,7,6,255, - 254,236,108,108,108,126,64,64,6,8,8,6,0,255,124,168, - 168,104,40,40,40,108,2,1,1,6,1,3,192,3,3,3, - 6,1,254,64,32,192,3,4,4,6,1,3,192,64,64,224, - 4,5,5,6,1,2,96,144,96,0,240,7,5,5,6,255, - 0,216,108,54,108,216,7,7,7,6,255,0,192,68,72,244, - 44,94,4,7,7,7,6,255,0,192,68,72,246,42,68,14, - 7,7,7,6,255,0,224,68,40,212,44,94,4,5,7,7, - 6,0,254,48,0,48,48,96,200,112,7,9,9,6,255,0, - 32,16,0,120,56,40,124,108,238,7,9,9,6,255,0,16, - 32,0,120,56,40,124,108,238,7,9,9,6,255,0,16,40, - 0,120,56,40,124,108,238,7,9,9,6,255,0,52,72,0, - 120,56,40,124,108,238,7,8,8,6,255,0,40,0,120,56, - 40,124,108,238,7,9,9,6,255,0,48,72,48,120,56,40, - 124,108,238,7,6,6,6,255,0,126,58,108,120,218,222,5, - 8,8,6,0,254,120,216,192,192,216,112,16,96,6,9,9, - 6,255,0,32,16,0,252,100,120,96,108,252,6,9,9,6, - 255,0,16,32,0,252,100,120,96,108,252,6,9,9,6,255, - 0,32,80,0,252,100,120,96,108,252,6,8,8,6,255,0, - 80,0,252,100,120,96,108,252,4,9,9,6,0,0,64,32, - 0,240,96,96,96,96,240,4,9,9,6,0,0,32,64,0, - 240,96,96,96,96,240,4,9,9,6,0,0,64,160,0,240, - 96,96,96,96,240,4,8,8,6,0,0,160,0,240,96,96, - 96,96,240,6,6,6,6,255,0,248,108,244,100,108,248,7, - 9,9,6,255,0,52,72,0,238,100,116,124,108,236,5,9, - 9,6,0,0,64,32,0,112,216,216,216,216,112,5,9,9, - 6,0,0,32,64,0,112,216,216,216,216,112,5,9,9,6, - 0,0,32,80,0,112,216,216,216,216,112,5,9,9,6,0, - 0,104,144,0,112,216,216,216,216,112,5,8,8,6,0,0, - 80,0,112,216,216,216,216,112,5,5,5,6,0,1,136,80, - 32,80,136,7,6,6,6,255,0,58,108,124,108,108,184,7, - 9,9,6,255,0,32,16,0,238,108,108,108,108,56,7,9, - 9,6,255,0,8,16,0,238,108,108,108,108,56,7,9,9, - 6,255,0,16,40,0,238,108,108,108,108,56,7,8,8,6, - 255,0,40,0,238,108,108,108,108,56,7,9,9,6,255,0, - 4,8,0,230,102,60,24,24,60,6,6,6,6,255,0,224, - 120,108,108,120,224,7,6,6,6,255,0,56,104,124,102,102, - 236,6,8,8,6,0,0,32,16,0,112,152,120,216,252,6, - 8,8,6,0,0,16,32,0,112,152,120,216,252,6,8,8, - 6,0,0,32,80,0,112,152,120,216,252,6,8,8,6,0, - 0,104,144,0,112,152,120,216,252,6,7,7,6,0,0,80, - 0,112,152,120,216,252,6,9,9,6,0,0,48,72,48,0, - 112,152,120,216,252,6,5,5,6,255,0,108,180,124,176,220, - 5,7,7,6,0,254,112,216,192,216,112,16,96,5,8,8, - 6,0,0,64,32,0,112,216,248,192,120,5,8,8,6,0, - 0,32,64,0,112,216,248,192,120,5,8,8,6,0,0,32, - 80,0,112,216,248,192,120,5,7,7,6,0,0,80,0,112, - 216,248,192,120,6,8,8,6,0,0,32,16,0,112,48,48, - 48,252,6,8,8,6,0,0,16,32,0,112,48,48,48,252, - 6,8,8,6,0,0,32,80,0,112,48,48,48,252,6,7, - 7,6,0,0,80,0,112,48,48,48,252,5,8,8,6,0, - 0,208,96,176,120,216,216,216,112,7,8,8,6,255,0,52, - 72,0,216,108,108,108,110,5,8,8,6,0,0,64,32,0, - 112,216,216,216,112,5,8,8,6,0,0,32,64,0,112,216, - 216,216,112,5,8,8,6,0,0,32,80,0,112,216,216,216, - 112,5,8,8,6,0,0,104,144,0,112,216,216,216,112,5, - 7,7,6,0,0,80,0,112,216,216,216,112,5,5,5,6, - 0,1,32,0,248,0,32,5,7,7,6,0,255,8,112,216, - 248,216,112,128,7,8,8,6,255,0,32,16,0,236,108,108, - 108,62,7,8,8,6,255,0,16,32,0,236,108,108,108,62, - 7,8,8,6,255,0,16,40,0,236,108,108,108,62,7,7, - 7,6,255,0,40,0,236,108,108,108,62,7,10,10,6,255, - 254,8,16,0,238,108,108,40,56,48,240,6,9,9,6,255, - 254,224,96,120,108,108,108,120,96,240,7,9,9,6,255,254, - 40,0,238,108,108,40,56,48,240}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08r[1145] U8G_SECTION(".progmem.u8g_font_courB08r") = { - 0,12,16,253,252,6,1,146,3,13,32,127,254,8,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10[3355] U8G_SECTION(".progmem.u8g_font_courB10") = { - 0,13,21,254,250,9,1,222,4,32,32,255,253,12,252,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,1,2,9,9,9,3,254,192,192,0,128,192, - 192,192,192,192,6,10,10,9,1,255,48,48,124,204,192,192, - 204,120,48,48,7,9,9,9,1,0,60,102,96,96,248,96, - 96,102,252,7,6,6,9,1,1,198,124,198,198,124,198,10, - 9,18,9,0,0,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,2,11,11,9,3,254,192,192,192, - 192,192,0,192,192,192,192,192,8,11,11,9,0,255,62,98, - 96,240,140,227,57,15,6,70,124,4,2,2,9,2,8,144, - 144,9,8,16,9,0,1,28,0,99,0,205,128,209,128,209, - 128,205,128,99,0,28,0,5,7,7,9,2,2,112,24,120, - 216,104,0,248,7,5,5,9,1,1,54,108,216,108,54,7, - 3,3,9,1,2,254,2,2,6,1,1,9,1,4,252,9, - 8,16,9,0,1,62,0,99,0,217,128,213,128,217,128,213, - 128,99,0,62,0,4,1,1,9,2,8,240,4,4,4,9, - 2,5,96,144,144,96,7,7,7,9,1,1,16,16,254,16, - 16,0,254,5,6,6,9,2,4,112,152,24,48,96,248,5, - 6,6,9,2,4,112,152,48,24,152,112,3,2,2,9,3, - 7,96,192,9,10,20,9,0,253,231,0,99,0,99,0,99, - 0,99,0,103,0,123,128,96,0,96,0,96,0,7,11,11, - 9,1,255,126,212,148,148,212,116,20,20,20,20,126,2,2, - 2,9,3,3,192,192,3,4,4,9,2,253,64,96,32,224, - 4,6,6,9,3,4,96,224,96,96,96,240,5,7,7,9, - 2,2,112,216,136,216,112,0,248,7,5,5,9,1,1,216, - 108,54,108,216,9,10,20,9,0,0,96,0,224,128,97,0, - 98,0,101,0,251,0,23,0,43,0,79,128,131,0,9,10, - 20,9,0,0,96,0,224,128,97,0,98,0,103,0,253,128, - 17,128,35,0,70,0,15,128,10,10,20,9,255,0,112,0, - 152,64,48,128,25,0,154,128,117,128,11,128,21,128,39,192, - 65,128,6,9,9,9,1,254,48,48,0,48,112,192,196,204, - 124,9,12,24,9,0,0,24,0,12,0,0,0,124,0,28, - 0,54,0,54,0,34,0,99,0,127,0,99,0,247,128,9, - 12,24,9,0,0,12,0,24,0,0,0,124,0,28,0,54, - 0,54,0,34,0,99,0,127,0,99,0,247,128,9,12,24, - 9,0,0,28,0,54,0,0,0,124,0,28,0,54,0,54, - 0,34,0,99,0,127,0,99,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,124,0,28,0,54,0,54,0,34, - 0,99,0,127,0,99,0,247,128,9,12,24,9,0,0,36, - 0,36,0,0,0,124,0,28,0,54,0,54,0,34,0,99, - 0,127,0,99,0,247,128,9,12,24,9,0,0,24,0,36, - 0,24,0,126,0,28,0,54,0,54,0,34,0,99,0,127, - 0,99,0,247,128,9,9,18,9,0,0,63,128,28,128,28, - 0,61,0,47,0,109,0,124,0,76,128,223,128,7,13,13, - 9,1,252,58,110,198,192,192,192,192,102,60,16,24,8,56, - 8,12,12,9,0,0,24,12,0,255,99,99,104,120,104,99, - 99,255,8,12,12,9,0,0,12,24,0,255,99,99,104,120, - 104,99,99,255,8,12,12,9,0,0,28,54,0,255,99,99, - 104,120,104,99,99,255,8,12,12,9,0,0,36,36,0,255, - 99,99,104,120,104,99,99,255,6,12,12,9,1,0,96,48, - 0,252,48,48,48,48,48,48,48,252,6,12,12,9,1,0, - 24,48,0,252,48,48,48,48,48,48,48,252,6,12,12,9, - 1,0,56,108,0,252,48,48,48,48,48,48,48,252,6,12, - 12,9,1,0,72,72,0,252,48,48,48,48,48,48,48,252, - 8,9,9,9,0,0,252,102,99,99,243,99,99,102,252,9, - 12,24,9,0,0,26,0,44,0,0,0,231,128,99,0,115, - 0,115,0,107,0,107,0,103,0,103,0,243,0,8,12,12, - 9,0,0,48,24,0,60,102,195,195,195,195,195,102,60,8, - 12,12,9,0,0,12,24,0,60,102,195,195,195,195,195,102, - 60,8,12,12,9,0,0,56,108,0,60,102,195,195,195,195, - 195,102,60,8,12,12,9,0,0,52,88,0,60,102,195,195, - 195,195,195,102,60,8,12,12,9,0,0,36,36,0,60,102, - 195,195,195,195,195,102,60,6,7,7,9,1,1,132,204,120, - 48,120,204,132,8,10,10,9,0,0,1,62,102,203,203,211, - 211,227,102,188,9,12,24,9,0,0,24,0,12,0,0,0, - 247,128,99,0,99,0,99,0,99,0,99,0,99,0,99,0, - 62,0,9,12,24,9,0,0,12,0,24,0,0,0,247,128, - 99,0,99,0,99,0,99,0,99,0,99,0,99,0,62,0, - 9,12,24,9,0,0,28,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,99,0,99,0,99,0,62,0,9,12, - 24,9,0,0,18,0,18,0,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,10,12,24,9, - 255,0,6,0,12,0,0,0,243,192,97,128,51,0,51,0, - 30,0,12,0,12,0,12,0,63,0,8,9,9,9,0,0, - 240,96,126,99,99,102,124,96,240,8,9,9,9,0,0,60, - 102,102,108,102,99,99,107,238,8,10,10,9,0,0,48,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,12,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,56,108, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,52,88, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,36,36, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,24,36, - 24,124,6,6,126,198,206,119,9,7,14,9,0,0,119,0, - 29,128,8,128,127,128,200,0,205,128,119,0,8,11,11,9, - 0,252,61,103,195,192,192,99,62,16,24,8,56,8,10,10, - 9,0,0,48,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,12,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,28,54,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,36,36,0,60,102,195,255,192,103,62,6,10,10, - 9,1,0,96,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,24,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,112,216,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,72,72,0,240,48,48,48,48,48,252,8,10,10, - 9,0,0,236,56,204,62,102,195,195,195,102,60,9,10,20, - 9,0,0,26,0,44,0,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,247,128,8,10,10,9,0,0,48,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,12,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,28,54,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,52,88,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,36,36,0, - 60,102,195,195,195,102,60,8,7,7,9,0,1,24,24,0, - 255,0,24,24,8,7,7,9,0,0,61,102,207,219,243,102, - 188,9,10,20,9,0,0,24,0,12,0,0,0,231,0,99, - 0,99,0,99,0,99,0,103,0,59,128,9,10,20,9,0, - 0,12,0,24,0,0,0,231,0,99,0,99,0,99,0,99, - 0,103,0,59,128,9,10,20,9,0,0,28,0,54,0,0, - 0,231,0,99,0,99,0,99,0,99,0,103,0,59,128,9, - 10,20,9,0,0,36,0,36,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,13,26,9,0,253,6, - 0,12,0,0,0,227,128,99,0,99,0,54,0,54,0,28, - 0,28,0,24,0,24,0,124,0,8,12,12,9,0,253,224, - 96,110,115,99,99,99,115,110,96,96,240,9,13,26,9,0, - 253,18,0,18,0,0,0,227,128,99,0,99,0,54,0,54, - 0,28,0,28,0,24,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 7 dx= 9 dy= 0 ascent=11 len=20 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10r[1551] U8G_SECTION(".progmem.u8g_font_courB10r") = { - 0,13,21,254,250,9,1,222,4,32,32,127,253,11,253,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=11 h=14 x= 4 y= 9 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12[3959] U8G_SECTION(".progmem.u8g_font_courB12") = { - 0,16,24,253,250,10,2,51,4,246,32,255,253,14,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,1,2,10,10,10,4,253,192,192,0, - 192,192,192,192,192,192,192,7,10,10,10,1,0,24,24,62, - 102,192,192,102,60,24,24,8,10,10,10,1,0,30,51,48, - 48,252,252,48,51,227,254,8,7,7,10,1,1,195,126,102, - 66,102,126,195,10,10,20,10,0,0,243,192,97,128,51,0, - 51,0,30,0,63,0,12,0,63,0,12,0,63,0,2,13, - 13,10,4,254,192,192,192,192,192,192,0,192,192,192,192,192, - 192,10,12,24,10,0,255,31,128,49,128,49,128,120,0,206, - 0,195,128,112,192,28,192,7,128,99,0,99,0,126,0,5, - 2,2,10,3,8,216,216,10,10,20,10,0,0,12,0,63, - 0,97,128,78,128,216,192,216,192,78,128,97,128,63,0,12, - 0,6,7,7,10,2,3,120,12,124,204,124,0,252,9,7, - 14,10,0,0,25,128,51,0,102,0,204,0,102,0,51,0, - 25,128,8,5,5,10,1,2,255,255,3,3,3,7,2,2, - 10,1,4,254,254,10,10,20,10,0,0,12,0,63,0,97, - 128,92,128,214,192,220,192,82,128,97,128,63,0,12,0,5, - 1,1,10,2,9,248,5,5,5,10,2,6,112,216,136,216, - 112,8,9,9,10,1,0,24,24,255,255,24,24,0,255,255, - 5,6,6,10,2,5,112,216,48,96,200,248,5,6,6,10, - 2,5,112,216,48,24,216,112,4,3,3,10,3,8,48,96, - 192,9,10,20,10,0,253,231,0,99,0,99,0,99,0,99, - 0,103,0,123,128,96,0,96,0,96,0,9,12,24,10,0, - 255,63,128,91,0,219,0,219,0,219,0,91,0,59,0,27, - 0,27,0,27,0,27,0,63,128,3,2,2,10,3,4,224, - 224,4,4,4,10,3,253,32,96,48,240,6,6,6,10,2, - 5,48,240,48,48,48,252,6,7,7,10,2,3,120,204,204, - 204,120,0,252,9,7,14,10,0,0,204,0,102,0,51,0, - 25,128,51,0,102,0,204,0,10,11,22,10,0,0,32,0, - 225,0,99,0,98,0,102,0,252,128,25,128,19,128,54,128, - 111,192,65,128,10,11,22,10,0,0,32,0,224,128,97,128, - 99,0,102,0,255,128,10,192,25,128,51,0,102,64,71,192, - 11,11,22,10,0,0,112,0,216,128,49,128,27,0,218,0, - 118,64,12,192,9,192,27,64,55,224,32,192,7,10,10,10, - 1,253,24,24,0,24,24,112,192,198,198,124,10,14,28,10, - 0,0,48,0,24,0,12,0,0,0,60,0,12,0,30,0, - 18,0,51,0,51,0,63,0,97,128,97,128,243,192,10,14, - 28,10,0,0,6,0,12,0,24,0,0,0,60,0,12,0, - 30,0,18,0,51,0,51,0,63,0,97,128,97,128,243,192, - 10,14,28,10,0,0,12,0,30,0,51,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,59,0,110,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,54,0,54,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,14,28,10,0,0,28,0,54,0,54,0,28,0, - 60,0,12,0,30,0,18,0,51,0,51,0,63,0,97,128, - 97,128,243,192,10,10,20,10,0,0,127,192,60,192,44,0, - 45,0,111,0,77,0,124,0,76,192,204,192,255,192,9,13, - 26,10,0,253,30,128,115,128,97,128,192,0,192,0,192,0, - 192,0,97,128,115,128,30,0,24,0,12,0,60,0,8,14, - 14,10,1,0,48,24,12,0,255,99,96,100,124,100,96,99, - 99,255,8,14,14,10,1,0,6,12,24,0,255,99,96,100, - 124,100,96,99,99,255,8,14,14,10,1,0,24,60,102,0, - 255,99,96,100,124,100,96,99,99,255,8,13,13,10,1,0, - 54,54,0,255,99,96,100,124,100,96,99,99,255,8,14,14, - 10,1,0,48,24,12,0,255,24,24,24,24,24,24,24,24, - 255,8,14,14,10,1,0,12,24,48,0,255,24,24,24,24, - 24,24,24,24,255,8,14,14,10,1,0,24,60,102,0,255, - 24,24,24,24,24,24,24,24,255,8,13,13,10,1,0,54, - 54,0,255,24,24,24,24,24,24,24,24,255,9,10,20,10, - 0,0,252,0,103,0,99,0,97,128,249,128,97,128,97,128, - 99,0,103,0,252,0,10,13,26,10,0,0,59,0,110,0, - 0,0,247,192,113,128,121,128,105,128,109,128,109,128,101,128, - 103,128,99,128,251,128,9,14,28,10,0,0,48,0,24,0, - 12,0,0,0,62,0,99,0,99,0,193,128,193,128,193,128, - 193,128,99,0,99,0,62,0,9,14,28,10,0,0,6,0, - 12,0,24,0,0,0,62,0,99,0,99,0,193,128,193,128, - 193,128,193,128,99,0,99,0,62,0,9,14,28,10,0,0, - 12,0,30,0,51,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,59,0,110,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,54,0,54,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,8,7,7,10, - 1,1,227,118,60,24,60,110,199,9,12,24,10,0,255,0, - 128,63,128,99,0,103,0,197,128,205,128,217,128,209,128,115, - 0,99,0,254,0,128,0,10,14,28,10,0,0,48,0,24, - 0,12,0,0,0,243,192,97,128,97,128,97,128,97,128,97, - 128,97,128,97,128,51,0,30,0,10,14,28,10,0,0,3, - 0,6,0,12,0,0,0,243,192,97,128,97,128,97,128,97, - 128,97,128,97,128,97,128,51,0,30,0,10,14,28,10,0, - 0,12,0,30,0,51,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,13,26, - 10,0,0,27,0,27,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,14,28, - 10,0,0,3,0,6,0,12,0,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,9, - 10,20,10,0,0,240,0,96,0,126,0,99,0,97,128,99, - 0,126,0,96,0,96,0,240,0,8,11,11,10,0,0,60, - 102,102,100,108,102,99,99,99,122,236,8,11,11,10,1,0, - 48,24,12,0,60,102,6,126,198,198,123,8,11,11,10,1, - 0,6,12,24,0,60,102,6,126,198,198,123,8,11,11,10, - 1,0,24,60,102,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,59,110,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,54,54,0,60,102,6,126,198,198,123,8,12,12, - 10,1,0,28,54,54,28,0,60,102,6,126,198,198,123,10, - 7,14,10,255,0,59,128,108,192,12,192,127,192,204,0,204, - 192,119,128,8,10,10,10,1,253,61,103,195,192,192,227,126, - 24,12,60,8,11,11,10,1,0,48,24,12,0,60,102,195, - 255,192,99,62,8,11,11,10,1,0,6,12,24,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,24,60,102,0,60, - 102,195,255,192,99,62,8,10,10,10,1,0,54,54,0,60, - 102,195,255,192,99,62,8,11,11,10,1,0,96,48,24,0, - 120,24,24,24,24,24,255,8,11,11,10,1,0,6,12,24, - 0,120,24,24,24,24,24,255,8,11,11,10,1,0,24,60, - 102,0,120,24,24,24,24,24,255,8,10,10,10,1,0,108, - 108,0,120,24,24,24,24,24,255,8,12,12,10,1,0,224, - 118,28,60,198,62,103,227,195,195,102,60,9,10,20,10,0, - 0,59,0,110,0,0,0,238,0,115,0,99,0,99,0,99, - 0,99,0,247,128,8,11,11,10,1,0,48,24,12,0,60, - 102,195,195,195,102,60,8,11,11,10,1,0,12,24,48,0, - 60,102,195,195,195,102,60,8,11,11,10,1,0,24,60,102, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,59,110, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,108,108, - 0,60,102,195,195,195,102,60,8,8,8,10,1,1,24,24, - 0,255,255,0,24,24,8,9,9,10,1,255,3,63,102,207, - 219,243,102,252,192,9,11,22,10,0,0,48,0,24,0,12, - 0,0,0,231,0,99,0,99,0,99,0,99,0,103,0,59, - 128,9,11,22,10,0,0,12,0,24,0,48,0,0,0,231, - 0,99,0,99,0,99,0,99,0,103,0,59,128,9,11,22, - 10,0,0,24,0,60,0,102,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,10,20,10,0,0,54, - 0,54,0,0,0,231,0,99,0,99,0,99,0,99,0,103, - 0,59,128,10,14,28,10,0,253,6,0,12,0,24,0,0, - 0,243,192,97,128,51,0,51,0,30,0,30,0,12,0,24, - 0,24,0,124,0,9,14,28,10,0,253,224,0,96,0,96, - 0,96,0,110,0,115,0,97,128,97,128,97,128,115,0,110, - 0,96,0,96,0,248,0,10,13,26,10,0,253,54,0,54, - 0,0,0,243,192,97,128,51,0,51,0,30,0,30,0,12, - 0,12,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12r[1857] U8G_SECTION(".progmem.u8g_font_courB12r") = { - 0,16,24,253,250,10,2,51,4,246,32,127,253,12,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=17 x= 4 y= 9 dx=11 dy= 0 ascent=15 len=34 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14[4784] U8G_SECTION(".progmem.u8g_font_courB14") = { - 0,17,26,252,249,11,2,101,5,155,32,255,252,15,251,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,11,0,1,3,12,12, - 11,4,252,192,192,0,192,192,224,224,224,224,224,224,224,8, - 13,13,11,1,0,24,24,24,63,127,227,192,192,227,127,62, - 24,24,10,11,22,11,0,0,62,0,127,0,99,0,96,0, - 48,0,252,0,252,0,48,0,96,192,255,192,255,128,8,9, - 9,11,1,1,195,255,126,195,195,195,126,255,195,10,11,22, - 11,0,0,243,192,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,63,0,2,16,16,11,4,253,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,8, - 14,14,11,1,254,63,115,99,96,248,222,199,227,123,31,6, - 198,206,252,6,2,2,11,2,9,204,204,11,12,24,11,0, - 0,14,0,63,128,113,192,110,192,219,96,216,96,216,96,219, - 96,110,192,113,192,63,128,14,0,6,8,8,11,2,3,112, - 24,120,216,216,108,0,252,9,7,14,11,0,1,25,128,51, - 0,102,0,204,0,102,0,51,0,25,128,9,4,8,11,1, - 4,255,128,255,128,1,128,1,128,8,2,2,11,1,4,255, - 255,11,12,24,11,0,0,14,0,63,128,113,192,126,192,219, - 96,219,96,222,96,223,96,123,224,112,192,63,128,14,0,5, - 2,2,11,2,9,248,248,5,5,5,11,2,6,112,136,136, - 136,112,10,10,20,11,0,0,12,0,12,0,12,0,255,192, - 255,192,12,0,12,0,0,0,255,192,255,192,6,7,7,11, - 2,5,120,204,12,24,48,100,252,6,7,7,11,2,5,120, - 204,12,56,12,204,120,4,3,3,11,4,9,48,96,192,10, - 13,26,11,0,252,231,128,231,128,97,128,97,128,97,128,97, - 128,99,128,127,192,125,192,96,0,96,0,96,0,96,0,8, - 14,14,11,1,254,63,106,202,202,202,106,58,10,10,10,10, - 10,10,59,2,3,3,11,4,3,192,192,192,4,5,5,11, - 3,252,64,96,48,240,224,6,7,7,11,2,5,48,240,48, - 48,48,48,252,6,8,8,11,2,3,120,204,132,132,204,120, - 0,252,9,7,14,11,1,1,204,0,102,0,51,0,25,128, - 51,0,102,0,204,0,11,12,24,11,0,0,48,0,240,32, - 48,96,48,192,49,128,51,64,254,192,13,192,26,192,52,192, - 103,224,64,192,11,12,24,11,0,0,48,0,240,32,48,96, - 48,192,49,128,51,192,255,96,12,96,24,192,49,128,99,32, - 71,224,11,12,24,11,0,0,120,0,204,32,12,96,56,192, - 13,128,207,64,126,192,13,192,26,192,52,192,103,224,64,192, - 7,12,12,11,2,252,24,24,0,24,24,24,120,224,192,198, - 254,124,12,15,30,11,255,0,24,0,12,0,6,0,0,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,12,15,30,11,255,0,3,0,6,0, - 12,0,0,0,62,0,63,0,15,0,15,0,25,128,25,128, - 63,192,63,192,48,192,249,240,249,240,12,15,30,11,255,0, - 6,0,15,0,25,128,0,0,62,0,63,0,15,0,15,0, - 25,128,25,128,63,192,63,192,48,192,249,240,249,240,12,14, - 28,11,255,0,29,128,55,0,0,0,62,0,63,0,15,0, - 15,0,25,128,25,128,63,192,63,192,48,192,249,240,249,240, - 12,14,28,11,255,0,25,128,25,128,0,0,62,0,63,0, - 15,0,15,0,25,128,25,128,63,192,63,192,48,192,249,240, - 249,240,12,15,30,11,255,0,6,0,9,0,9,0,6,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,11,11,22,11,0,0,63,224,63,224, - 30,96,54,0,55,192,39,192,126,0,126,0,102,96,239,224, - 239,224,10,16,32,11,0,251,30,192,127,192,97,192,192,192, - 192,0,192,0,192,0,192,0,96,192,127,192,63,0,8,0, - 12,0,2,0,30,0,28,0,10,15,30,11,0,0,24,0, - 12,0,6,0,0,0,255,192,255,192,48,192,54,192,62,0, - 62,0,54,0,48,192,48,192,255,192,255,192,10,15,30,11, - 0,0,3,0,6,0,12,0,0,0,255,192,255,192,48,192, - 54,192,62,0,62,0,54,0,48,192,48,192,255,192,255,192, - 10,15,30,11,0,0,12,0,30,0,51,0,0,0,255,192, - 255,192,48,192,54,192,62,0,62,0,54,0,48,192,48,192, - 255,192,255,192,10,14,28,11,0,0,51,0,51,0,0,0, - 255,192,255,192,48,192,54,192,62,0,62,0,54,0,48,192, - 48,192,255,192,255,192,8,15,15,11,1,0,96,48,24,0, - 255,255,24,24,24,24,24,24,24,255,255,8,15,15,11,1, - 0,6,12,24,0,255,255,24,24,24,24,24,24,24,255,255, - 8,15,15,11,1,0,24,60,102,0,255,255,24,24,24,24, - 24,24,24,255,255,8,14,14,11,1,0,102,102,0,255,255, - 24,24,24,24,24,24,24,255,255,10,11,22,11,0,0,254, - 0,255,128,97,128,96,192,248,192,248,192,96,192,96,192,97, - 128,255,128,254,0,10,14,28,11,0,0,59,0,110,0,0, - 0,231,192,247,192,113,128,121,128,105,128,109,128,101,128,103, - 128,99,128,251,128,249,128,10,15,30,11,0,0,24,0,12, - 0,6,0,0,0,30,0,127,128,97,128,192,192,192,192,192, - 192,192,192,192,192,97,128,127,128,30,0,10,15,30,11,0, - 0,3,0,6,0,12,0,0,0,30,0,127,128,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,127,128,30,0,10, - 15,30,11,0,0,12,0,30,0,51,0,0,0,30,0,127, - 128,97,128,192,192,192,192,192,192,192,192,192,192,97,128,127, - 128,30,0,10,14,28,11,0,0,59,0,110,0,0,0,30, - 0,127,128,97,128,192,192,192,192,192,192,192,192,192,192,97, - 128,127,128,30,0,10,14,28,11,0,0,51,0,51,0,0, - 0,30,0,127,128,97,128,192,192,192,192,192,192,192,192,192, - 192,97,128,127,128,30,0,10,10,20,11,0,0,64,128,225, - 192,115,128,55,0,30,0,30,0,59,0,115,128,225,192,64, - 128,12,13,26,11,255,255,0,48,15,96,63,192,49,192,99, - 96,102,96,102,96,108,96,120,96,48,192,63,192,111,0,192, - 0,10,15,30,11,0,0,48,0,24,0,12,0,0,0,251, - 192,251,192,97,128,97,128,97,128,97,128,97,128,97,128,115, - 128,63,0,30,0,10,15,30,11,0,0,3,0,6,0,12, - 0,0,0,251,192,251,192,97,128,97,128,97,128,97,128,97, - 128,97,128,115,128,63,0,30,0,10,15,30,11,0,0,12, - 0,30,0,51,0,0,0,251,192,251,192,97,128,97,128,97, - 128,97,128,97,128,97,128,115,128,63,0,30,0,10,14,28, - 11,0,0,51,0,51,0,0,0,251,192,251,192,97,128,97, - 128,97,128,97,128,97,128,97,128,115,128,63,0,30,0,10, - 15,30,11,0,0,3,0,6,0,12,0,0,0,243,192,243, - 192,97,128,51,0,63,0,30,0,12,0,12,0,12,0,63, - 0,63,0,10,11,22,11,0,0,240,0,224,0,127,0,127, - 128,97,192,96,192,97,192,127,128,127,0,224,0,240,0,9, - 12,24,11,1,0,60,0,126,0,99,0,99,0,103,0,110, - 0,103,0,97,128,97,128,105,128,239,128,231,0,10,13,26, - 11,0,0,24,0,12,0,6,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,3,0,6,0,12,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,12,0,30,0,51,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,12,24, - 11,0,0,59,0,110,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,12,24,11,0, - 0,51,0,51,0,0,0,63,0,127,128,97,128,1,128,127, - 128,255,128,193,128,255,192,125,192,10,14,28,11,0,0,12, - 0,18,0,18,0,12,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,9,18,11,0, - 0,123,128,255,192,204,192,12,192,127,192,255,192,204,0,255, - 192,123,128,10,14,28,11,0,251,61,128,127,128,227,128,193, - 128,192,0,192,0,225,192,127,192,63,0,8,0,12,0,6, - 0,30,0,28,0,10,13,26,11,0,0,24,0,12,0,6, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,3,0,6,0,12, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,12,0,30,0,51, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,12,24,11,0,0,51,0,51,0,0, - 0,30,0,127,128,225,192,192,192,255,192,255,192,224,0,127, - 192,31,192,8,13,13,11,1,0,48,24,12,0,248,248,24, - 24,24,24,24,255,255,8,13,13,11,1,0,12,24,48,0, - 248,248,24,24,24,24,24,255,255,8,13,13,11,1,0,24, - 60,102,0,248,248,24,24,24,24,24,255,255,8,12,12,11, - 1,0,204,204,0,248,248,24,24,24,24,24,255,255,10,13, - 26,11,0,0,225,128,251,128,62,0,119,0,195,128,63,128, - 97,192,192,192,192,192,192,192,225,192,127,128,30,0,10,12, - 24,11,0,0,59,0,110,0,0,0,239,0,255,128,113,128, - 97,128,97,128,97,128,97,128,243,192,243,192,10,13,26,11, - 0,0,24,0,12,0,6,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,3,0,6,0,12,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,12,0,30,0,51,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,12,24,11, - 0,0,59,0,110,0,0,0,30,0,127,128,225,192,192,192, - 192,192,192,192,225,192,127,128,30,0,10,12,24,11,0,0, - 51,0,51,0,0,0,30,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,30,0,10,10,20,11,0,0,12,0, - 12,0,0,0,0,0,255,192,255,192,0,0,0,0,12,0, - 12,0,12,11,22,11,255,255,0,48,15,96,63,192,113,224, - 99,96,102,96,108,96,120,224,63,192,111,0,192,0,10,13, - 26,11,0,0,24,0,12,0,6,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,6,0,12,0,24,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,12,0,30,0,51,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,12, - 24,11,0,0,51,0,51,0,0,0,231,128,231,128,97,128, - 97,128,97,128,97,128,99,128,127,192,61,192,10,17,34,11, - 0,252,3,0,6,0,12,0,0,0,243,192,243,192,97,128, - 97,128,51,0,51,0,30,0,30,0,12,0,24,0,56,0, - 252,0,252,0,10,16,32,11,0,252,224,0,224,0,96,0, - 111,0,127,128,113,192,96,192,96,192,96,192,113,192,127,128, - 111,0,96,0,96,0,248,0,248,0,10,16,32,11,0,252, - 51,0,51,0,0,0,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0 - }; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=16 x= 4 y= 9 dx=11 dy= 0 ascent=13 len=32 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14r[2167] U8G_SECTION(".progmem.u8g_font_courB14r") = { - 0,17,26,252,249,11,2,101,5,155,32,127,252,13,252,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=13 dx=15 dy= 0 ascent=21 len=42 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18[6429] U8G_SECTION(".progmem.u8g_font_courB18") = { - 0,22,35,252,247,15,3,223,8,17,32,255,251,21,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,15,0,1,4, - 16,16,15,4,251,96,96,96,0,96,96,96,96,96,240,240, - 240,240,240,240,96,9,16,32,15,2,0,12,0,12,0,12, - 0,61,128,127,128,227,128,193,128,192,0,192,0,192,0,225, - 128,127,128,63,0,12,0,12,0,12,0,12,15,30,15,1, - 0,15,128,31,192,56,192,48,0,48,0,48,0,48,0,255, - 0,255,0,24,0,24,0,56,0,112,48,255,240,255,224,10, - 11,22,15,2,2,192,192,255,192,127,128,225,192,192,192,192, - 192,192,192,225,192,127,128,255,192,192,192,12,15,30,15,1, - 0,249,240,249,240,112,224,48,192,57,192,25,128,15,0,15, - 0,63,192,6,0,63,192,6,0,6,0,63,192,63,192,2, - 18,18,15,6,254,192,192,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,192,192,12,18,36,15,1,254,15,224,31, - 224,56,96,48,96,56,0,126,0,207,128,195,224,240,240,124, - 48,31,48,7,240,1,224,0,192,96,192,97,192,127,128,127, - 0,7,3,3,15,3,12,198,198,198,14,14,28,15,0,1, - 7,128,31,224,56,112,103,152,111,216,220,204,216,12,216,12, - 220,204,111,216,103,152,56,112,31,224,7,128,8,11,11,15, - 3,4,60,102,6,126,198,198,207,123,0,255,255,13,9,18, - 15,1,1,14,56,28,112,56,224,113,192,227,128,113,192,56, - 224,28,112,14,56,12,6,12,15,1,4,255,240,255,240,0, - 48,0,48,0,48,0,48,11,2,4,15,2,6,255,224,255, - 224,14,14,28,15,0,1,7,128,31,224,56,112,111,152,111, - 216,204,204,204,204,207,140,205,140,108,216,108,216,56,112,31, - 224,7,128,7,2,2,15,3,13,254,254,8,7,7,15,3, - 9,60,102,195,195,195,102,60,12,14,28,15,1,0,6,0, - 6,0,6,0,6,0,255,240,255,240,6,0,6,0,6,0, - 6,0,0,0,0,0,255,240,255,240,7,9,9,15,4,7, - 124,198,198,12,24,48,96,198,254,7,9,9,15,4,7,124, - 198,198,12,60,6,198,198,124,6,4,4,15,4,12,28,56, - 112,224,14,16,32,15,0,251,240,240,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,63,252,63,188,48,0, - 48,0,48,0,48,0,48,0,12,18,36,15,1,254,31,240, - 127,240,230,192,230,192,230,192,230,192,230,192,126,192,30,192, - 6,192,6,192,6,192,6,192,6,192,6,192,6,192,62,240, - 62,240,3,3,3,15,5,6,224,224,224,5,6,6,15,4, - 251,48,48,120,24,248,112,8,9,9,15,3,7,24,248,24, - 24,24,24,24,24,255,8,11,11,15,3,4,60,126,195,195, - 195,195,126,60,0,255,255,13,9,18,15,1,1,227,128,113, - 192,56,224,28,112,14,56,28,112,56,224,113,192,227,128,16, - 16,32,15,255,0,24,0,248,1,24,3,24,6,24,12,24, - 24,24,48,24,100,255,204,1,156,3,44,6,76,12,140,24, - 254,48,12,32,30,16,16,32,15,255,0,24,0,248,1,24, - 3,24,6,24,12,24,24,24,48,24,126,255,243,1,163,3, - 6,6,12,12,24,24,48,48,99,32,127,15,16,32,15,0, - 0,124,0,198,2,198,6,12,12,60,24,6,48,198,96,198, - 200,125,152,3,56,6,88,12,152,25,24,49,252,96,24,64, - 60,9,15,30,15,2,252,12,0,12,0,12,0,0,0,12, - 0,12,0,28,0,120,0,224,0,192,0,193,128,193,128,225, - 128,127,128,63,0,14,20,40,15,0,0,56,0,28,0,14, - 0,7,0,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,14,20,40,15,0,0,0,224,1,192,3,128,7, - 0,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,21,42,15,0,0,6,0,15,0,31,128,57,192,112, - 224,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,19,38,15,0,0,14,96,31,192,51,128,0,0,63, - 0,63,0,7,128,7,128,12,192,12,192,28,224,24,96,24, - 96,63,240,63,240,112,56,96,24,252,252,252,252,14,19,38, - 15,0,0,24,192,24,192,24,192,0,0,63,0,63,0,7, - 128,7,128,12,192,12,192,28,224,24,96,24,96,63,240,63, - 240,112,56,96,24,252,252,252,252,14,20,40,15,0,0,7, - 0,13,128,8,128,13,128,7,0,63,0,63,0,7,128,7, - 128,12,192,12,192,28,224,24,96,24,96,63,240,63,240,112, - 56,96,24,252,252,252,252,15,15,30,15,0,0,15,254,15, - 254,3,134,7,134,7,128,13,152,9,248,25,248,31,152,63, - 128,49,128,97,134,97,134,247,254,247,254,12,20,40,15,1, - 251,15,176,63,240,112,112,96,48,224,48,192,0,192,0,192, - 0,192,0,192,0,224,0,96,16,112,48,63,224,15,192,6, - 0,15,0,3,0,31,0,14,0,13,20,40,15,1,0,56, - 0,28,0,14,0,7,0,0,0,255,240,255,240,48,48,48, - 48,49,176,49,128,63,128,63,128,49,128,49,128,48,24,48, - 24,48,24,255,248,255,248,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,19,38,15,1,0,24,192,24,192,24, - 192,0,0,255,240,255,240,48,48,48,48,49,176,49,128,63, - 128,63,128,49,128,49,128,48,24,48,24,48,24,255,248,255, - 248,10,20,40,15,2,0,112,0,56,0,28,0,14,0,0, - 0,255,192,255,192,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 20,40,15,2,0,3,128,7,0,14,0,28,0,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,21,42, - 15,2,0,12,0,30,0,63,0,115,128,225,192,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,19,38, - 15,2,0,51,0,51,0,51,0,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,14,15,30,15,0,0,255, - 192,255,240,48,56,48,24,48,28,48,12,254,12,254,12,48, - 12,48,12,48,12,48,24,48,56,255,240,255,224,13,19,38, - 15,1,0,14,96,31,192,51,128,0,0,240,248,240,248,120, - 48,120,48,108,48,108,48,102,48,102,48,99,48,99,48,97, - 176,97,176,96,240,248,240,248,112,13,20,40,15,1,0,28, - 0,14,0,7,0,3,128,0,0,15,128,63,224,112,112,96, - 48,224,56,192,24,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,19,38,15,1,0,14,96,31,192,51, - 128,0,0,15,128,63,224,112,112,96,48,224,56,192,24,192, - 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, - 128,13,19,38,15,1,0,24,192,24,192,24,192,0,0,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,192,24,224,56,96,48,112,112,63,224,15,128,12,12,24, - 15,1,1,64,32,224,112,112,224,57,192,31,128,15,0,15, - 0,31,128,57,192,112,224,224,112,64,32,13,18,36,15,1, - 255,0,24,0,48,15,224,63,224,112,112,96,240,225,184,193, - 24,195,24,198,24,196,24,204,24,232,56,120,48,112,112,63, - 224,111,128,192,0,13,20,40,15,1,0,56,0,28,0,14, - 0,7,0,0,0,248,248,248,248,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,48,96,63, - 224,31,192,13,20,40,15,1,0,0,224,1,192,3,128,7, - 0,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,21,42,15,1,0,3,0,7,128,15,192,28,224,56, - 112,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,19,38,15,1,0,24,192,24,192,24,192,0,0,248, - 248,248,248,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,48,96,63,224,31,192,14,20,40, - 15,0,0,0,224,1,192,3,128,7,0,0,0,252,252,252, - 252,112,56,56,112,24,96,12,192,15,192,7,128,3,0,3, - 0,3,0,3,0,3,0,31,224,31,224,13,15,30,15,1, - 0,252,0,252,0,48,0,63,192,63,240,48,56,48,24,48, - 24,48,24,48,56,63,240,63,192,48,0,252,0,252,0,12, - 16,32,15,1,0,15,0,31,128,57,192,48,192,48,192,49, - 192,55,128,55,192,48,224,48,112,48,48,48,48,48,48,51, - 112,251,224,249,192,12,16,32,15,1,0,112,0,56,0,28, - 0,14,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,16,32,15,1, - 0,1,192,3,128,7,0,14,0,0,0,63,0,127,128,97, - 192,0,192,31,192,127,192,224,192,192,192,193,192,255,240,126, - 240,12,16,32,15,1,0,14,0,31,0,59,128,113,192,0, - 0,63,0,127,128,97,192,0,192,31,192,127,192,224,192,192, - 192,193,192,255,240,126,240,12,15,30,15,1,0,28,192,63, - 128,103,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,15,30,15,1, - 0,49,128,49,128,49,128,0,0,63,0,127,128,97,192,0, - 192,31,192,127,192,224,192,192,192,193,192,255,240,126,240,12, - 16,32,15,1,0,14,0,27,0,17,0,27,0,14,0,63, - 0,127,128,97,192,0,192,31,192,127,192,224,192,192,192,193, - 192,255,240,126,240,14,11,22,15,0,0,60,240,127,248,103, - 156,3,12,31,12,127,252,227,252,195,0,199,140,255,252,124, - 240,11,16,32,15,1,251,31,96,127,224,112,224,224,96,192, - 96,192,0,192,0,224,0,112,96,127,224,31,192,6,0,15, - 0,3,0,31,0,14,0,12,16,32,15,1,0,56,0,28, - 0,14,0,7,0,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,12,16,32, - 15,1,0,1,192,3,128,7,0,14,0,0,0,31,128,127, - 224,112,224,224,112,192,48,255,240,255,240,224,0,112,112,127, - 240,31,192,12,16,32,15,1,0,7,0,15,128,29,192,56, - 224,0,0,31,128,127,224,112,224,224,112,192,48,255,240,255, - 240,224,0,112,112,127,240,31,192,12,15,30,15,1,0,49, - 128,49,128,49,128,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,10,16,32, - 15,2,0,224,0,112,0,56,0,28,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,10,16,32,15,2,0,3,128,7,0,14,0,28, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,10,16,32,15,2,0,28, - 0,62,0,119,0,227,128,0,0,124,0,124,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 15,30,15,2,0,99,0,99,0,99,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,17,34,15,0,0,240,0,252,112,15,240,31, - 128,125,192,112,224,15,240,63,240,56,120,112,56,96,24,96, - 24,96,24,112,56,56,112,63,240,15,192,14,15,30,15,0, - 0,14,96,31,192,51,128,0,0,243,192,247,224,60,112,56, - 48,48,48,48,48,48,48,48,48,48,48,252,252,252,252,12, - 16,32,15,1,0,56,0,28,0,14,0,7,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,16,32,15,1,0,1,192,3,128,7, - 0,14,0,0,0,31,128,127,224,112,224,224,112,192,48,192, - 48,192,48,224,112,112,224,127,224,31,128,12,16,32,15,1, - 0,14,0,31,0,59,128,113,192,0,0,31,128,127,224,112, - 224,224,112,192,48,192,48,192,48,224,112,112,224,127,224,31, - 128,12,15,30,15,1,0,28,192,63,128,103,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,15,30,15,1,0,49,128,49,128,49, - 128,0,0,31,128,127,224,112,224,224,112,192,48,192,48,192, - 48,224,112,112,224,127,224,31,128,13,12,24,15,0,1,7, - 0,7,0,7,0,0,0,0,0,255,248,255,248,0,0,0, - 0,7,0,7,0,7,0,14,14,28,15,0,254,0,12,15, - 216,63,240,56,112,112,216,97,152,99,24,102,24,108,56,56, - 112,63,240,63,192,96,0,192,0,14,16,32,15,0,0,56, - 0,28,0,14,0,7,0,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,14, - 16,32,15,0,0,1,192,3,128,7,0,14,0,0,0,240, - 240,240,240,48,48,48,48,48,48,48,48,48,48,48,48,56, - 112,31,252,15,188,14,16,32,15,0,0,7,0,15,128,29, - 192,56,224,0,0,240,240,240,240,48,48,48,48,48,48,48, - 48,48,48,48,48,56,112,31,252,15,188,14,15,30,15,0, - 0,24,192,24,192,24,192,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,12, - 21,42,15,1,251,0,224,1,192,3,128,7,0,0,0,249, - 240,249,240,96,96,112,224,48,192,57,192,25,128,27,128,15, - 0,15,0,6,0,14,0,12,0,28,0,254,0,254,0,13, - 21,42,15,1,251,240,0,240,0,48,0,48,0,48,0,55, - 192,63,240,60,112,56,56,48,24,48,24,48,24,56,56,60, - 112,63,240,55,192,48,0,48,0,48,0,254,0,254,0,12, - 20,40,15,1,251,49,128,49,128,49,128,0,0,249,240,249, - 240,96,96,112,224,48,192,57,192,25,128,27,128,15,0,15, - 0,6,0,14,0,12,0,28,0,254,0,254,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=11 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18r[3001] U8G_SECTION(".progmem.u8g_font_courB18r") = { - 0,22,35,252,247,15,3,223,8,17,32,127,251,17,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=29 x= 8 y=17 dx=20 dy= 0 ascent=26 len=87 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24[10502] U8G_SECTION(".progmem.u8g_font_courB24") = { - 0,30,44,249,245,20,5,57,12,115,32,255,249,26,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,21,21, - 20,7,249,112,248,248,112,0,0,112,112,112,112,112,112,112, - 112,248,248,248,248,248,112,32,13,23,46,20,3,255,7,0, - 7,0,7,0,7,0,7,0,15,216,63,248,127,248,120,120, - 240,56,224,56,224,0,224,0,224,0,240,56,120,120,127,248, - 63,240,15,192,7,0,7,0,7,0,7,0,16,20,40,20, - 1,0,3,224,7,240,15,248,30,56,28,56,28,0,28,0, - 28,0,14,0,255,224,255,224,255,224,14,0,14,0,14,0, - 14,2,30,7,127,255,127,255,127,254,15,15,30,20,2,2, - 224,14,247,222,255,254,127,252,60,120,120,60,112,28,112,28, - 112,28,120,60,60,120,127,252,255,254,247,222,224,14,17,20, - 60,20,1,0,254,63,128,254,63,128,254,63,128,56,14,0, - 28,28,0,30,60,0,14,56,0,15,120,0,7,112,0,3, - 224,0,31,252,0,31,252,0,1,192,0,31,252,0,31,252, - 0,1,192,0,1,192,0,31,252,0,31,252,0,31,252,0, - 3,26,26,20,8,251,224,224,224,224,224,224,224,224,224,224, - 224,224,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 16,24,48,20,2,253,1,254,7,254,15,254,28,6,24,6, - 24,6,60,0,127,0,231,128,193,224,96,240,112,60,60,14, - 15,6,7,131,1,231,0,254,0,60,48,24,48,24,48,56, - 63,240,63,224,63,128,11,4,8,20,4,17,96,192,241,224, - 241,224,96,192,21,20,60,20,255,0,0,252,0,3,255,0, - 15,255,192,30,3,224,56,96,224,113,246,112,115,254,112,231, - 158,56,231,14,56,206,14,56,206,0,56,206,0,56,206,6, - 56,231,15,120,231,254,112,115,252,240,120,241,224,62,7,192, - 31,255,0,7,252,0,11,14,28,20,4,6,31,0,127,128, - 97,128,1,128,63,128,127,128,225,128,193,128,195,128,255,224, - 125,224,0,0,255,224,255,224,15,14,28,20,1,0,3,6, - 7,14,14,28,28,56,56,112,112,224,225,192,225,192,112,224, - 56,112,28,56,14,28,7,14,3,6,16,8,16,20,2,5, - 255,255,255,255,255,255,0,7,0,7,0,7,0,7,0,7, - 15,3,6,20,2,8,255,254,255,254,255,254,21,20,60,20, - 255,0,1,248,0,7,254,0,31,255,128,60,3,192,59,241, - 224,115,252,224,115,254,240,227,158,112,227,142,120,227,142,56, - 227,254,56,227,252,56,227,184,56,243,188,120,115,158,112,123, - 143,240,60,3,224,31,255,192,15,255,0,3,252,0,10,2, - 4,20,5,17,255,192,255,192,9,9,18,20,5,11,28,0, - 119,0,193,128,128,128,128,128,128,128,193,128,119,0,28,0, - 17,18,54,20,1,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,8,14,14,20, - 5,7,60,126,231,195,3,7,14,12,24,56,112,225,255,255, - 9,14,28,20,5,7,62,0,127,0,99,0,3,0,7,0, - 30,0,31,0,3,128,1,128,1,128,193,128,227,0,127,0, - 60,0,8,6,6,20,6,15,6,15,62,120,224,64,18,22, - 66,20,1,249,252,63,0,252,63,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,15,0,30,31,0,31,255,192,31,247,192,29,231, - 192,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,15,24,48,20,2,253,15,254,63,254, - 123,24,243,24,227,24,227,24,227,24,227,24,227,24,115,24, - 63,24,31,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,31,62,31,62,31,62,5,4,4,20, - 7,8,112,248,248,112,5,7,7,20,6,250,48,48,48,24, - 248,248,112,8,13,13,20,6,7,56,248,216,24,24,24,24, - 24,24,24,24,255,255,11,14,28,20,4,6,14,0,63,128, - 113,192,224,224,192,96,192,96,192,96,224,224,113,192,63,128, - 14,0,0,0,255,224,255,224,15,14,28,20,2,0,193,128, - 225,192,112,224,56,112,28,56,14,28,7,14,7,14,14,28, - 28,56,56,112,112,224,225,192,193,128,19,20,60,20,0,0, - 56,0,0,248,0,0,216,0,128,24,1,192,24,1,128,24, - 3,0,24,6,0,24,12,0,24,28,192,24,25,192,255,51, - 192,255,114,192,0,102,192,0,206,192,1,140,192,3,159,224, - 7,31,224,2,0,192,0,1,224,0,1,224,19,20,60,20, - 0,0,56,0,0,248,0,0,216,2,0,24,7,0,24,14, - 0,24,12,0,24,24,0,24,56,0,24,112,0,24,103,128, - 254,239,192,255,220,224,1,152,96,3,0,224,7,1,192,14, - 7,128,4,14,0,0,28,96,0,31,224,0,31,224,19,21, - 63,20,0,0,62,0,0,127,0,0,99,0,0,3,1,0, - 3,3,128,30,7,0,31,6,0,3,142,0,1,156,0,195, - 152,192,227,49,192,127,115,192,28,98,192,0,198,192,1,206, - 192,3,140,192,7,31,224,2,31,224,0,0,192,0,3,224, - 0,3,224,13,21,42,20,3,250,7,0,15,128,15,128,7, - 0,0,0,0,0,0,0,7,0,7,0,7,0,31,0,63, - 0,124,0,240,0,224,0,224,56,224,56,240,56,127,248,63, - 248,31,224,21,26,78,20,255,0,3,0,0,7,128,0,1, - 224,0,0,240,0,0,48,0,0,0,0,31,240,0,31,248, - 0,31,248,0,1,252,0,1,220,0,1,220,0,3,222,0, - 3,142,0,3,142,0,7,7,0,7,7,0,7,7,0,15, - 255,128,15,255,128,31,255,192,28,1,192,28,1,192,255,143, - 248,255,143,248,255,143,248,21,26,78,20,255,0,0,3,0, - 0,15,0,0,30,0,0,120,0,0,96,0,0,0,0,31, - 240,0,31,248,0,31,248,0,1,252,0,1,220,0,1,220, - 0,3,222,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,21,26,78,20,255, - 0,0,64,0,0,224,0,3,184,0,7,28,0,14,14,0, - 0,0,0,31,240,0,31,248,0,31,248,0,1,252,0,1, - 220,0,1,220,0,3,222,0,3,142,0,3,142,0,7,7, - 0,7,7,0,7,7,0,15,255,128,15,255,128,31,255,192, - 28,1,192,28,1,192,255,143,248,255,143,248,255,143,248,21, - 25,75,20,255,0,3,134,0,7,230,0,6,118,0,6,28, - 0,0,0,0,31,240,0,31,248,0,31,248,0,1,252,0, - 1,220,0,1,220,0,3,222,0,3,142,0,3,142,0,7, - 7,0,7,7,0,7,7,0,15,255,128,15,255,128,31,255, - 192,28,1,192,28,1,192,255,143,248,255,143,248,255,143,248, - 21,25,75,20,255,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,31,240,0,31,248,0,31,248,0,1,252, - 0,1,220,0,1,220,0,3,222,0,3,142,0,3,142,0, - 7,7,0,7,7,0,7,7,0,15,255,128,15,255,128,31, - 255,192,28,1,192,28,1,192,255,143,248,255,143,248,255,143, - 248,21,26,78,20,255,0,0,240,0,1,152,0,1,8,0, - 1,152,0,0,240,0,0,0,0,31,240,0,31,248,0,31, - 248,0,1,252,0,1,220,0,1,220,0,3,222,0,3,142, - 0,3,142,0,7,7,0,7,7,0,7,7,0,15,255,128, - 15,255,128,31,255,192,28,1,192,28,1,192,255,143,248,255, - 143,248,255,143,248,20,20,60,20,0,0,31,255,224,31,255, - 224,31,255,224,7,112,224,7,112,224,6,112,224,14,112,224, - 14,115,0,14,115,0,14,127,0,28,127,0,28,115,0,31, - 243,0,31,243,0,56,112,112,56,112,112,56,112,112,255,255, - 240,255,255,240,255,255,240,17,26,78,20,1,250,3,227,0, - 15,255,0,31,255,0,62,31,0,120,15,0,112,7,0,240, - 7,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,240,0,0,112,1,0,120,3,128,62,15,128, - 63,255,0,15,254,0,3,248,0,0,192,0,0,192,0,0, - 224,0,4,112,0,7,240,0,3,224,0,17,26,78,20,1, - 0,3,0,0,7,128,0,1,224,0,0,240,0,0,48,0, - 0,0,0,255,255,0,255,255,0,255,255,0,28,7,0,28, - 7,0,28,7,0,28,119,0,28,112,0,31,240,0,31,240, - 0,31,240,0,28,112,0,28,112,0,28,3,128,28,3,128, - 28,3,128,28,3,128,255,255,128,255,255,128,255,255,128,17, - 26,78,20,1,0,0,12,0,0,60,0,0,120,0,1,224, - 0,1,128,0,0,0,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,26,78,20,1,0,0,128,0,1,192,0,7, - 112,0,14,56,0,28,28,0,0,0,0,255,255,0,255,255, - 0,255,255,0,28,7,0,28,7,0,28,7,0,28,119,0, - 28,112,0,31,240,0,31,240,0,31,240,0,28,112,0,28, - 112,0,28,3,128,28,3,128,28,3,128,28,3,128,255,255, - 128,255,255,128,255,255,128,17,25,75,20,1,0,6,12,0, - 15,30,0,15,30,0,6,12,0,0,0,0,255,255,0,255, - 255,0,255,255,0,28,7,0,28,7,0,28,7,0,28,119, - 0,28,112,0,31,240,0,31,240,0,31,240,0,28,112,0, - 28,112,0,28,3,128,28,3,128,28,3,128,28,3,128,255, - 255,128,255,255,128,255,255,128,13,26,52,20,3,0,24,0, - 60,0,15,0,7,128,1,128,0,0,255,248,255,248,255,248, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,26,52,20,3,0,0,48,0,240,1,224,7,128, - 6,0,0,0,255,248,255,248,255,248,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,13,26,52,20, - 3,0,2,0,7,0,29,192,56,224,112,112,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 255,248,255,248,255,248,13,25,50,20,3,0,48,96,120,240, - 120,240,48,96,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,17,20, - 60,20,2,0,255,224,0,255,248,0,255,252,0,56,62,0, - 56,15,0,56,7,0,56,7,0,56,3,128,255,131,128,255, - 131,128,255,131,128,56,3,128,56,3,128,56,3,128,56,7, - 0,56,7,0,56,30,0,255,254,0,255,252,0,255,240,0, - 20,25,75,20,255,0,3,134,0,7,230,0,6,118,0,6, - 28,0,0,0,0,252,31,240,254,31,240,255,31,240,31,1, - 192,31,129,192,31,129,192,29,193,192,29,225,192,28,225,192, - 28,241,192,28,121,192,28,57,192,28,61,192,28,29,192,28, - 15,192,28,15,192,28,7,192,127,199,192,127,195,192,127,193, - 192,17,26,78,20,1,0,6,0,0,15,0,0,3,192,0, - 1,224,0,0,96,0,0,0,0,7,240,0,15,252,0,31, - 252,0,60,30,0,120,15,0,112,7,0,112,7,0,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 112,7,0,120,7,0,56,14,0,62,62,0,31,252,0,15, - 248,0,3,224,0,17,26,78,20,1,0,0,24,0,0,120, - 0,0,240,0,3,192,0,3,0,0,0,0,0,7,240,0, - 15,252,0,31,252,0,60,30,0,120,15,0,112,7,0,112, - 7,0,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,112,7,0,120,7,0,56,14,0,62,62,0, - 31,252,0,15,248,0,3,224,0,17,26,78,20,1,0,0, - 128,0,1,192,0,7,112,0,14,56,0,28,28,0,0,0, - 0,7,240,0,15,252,0,31,252,0,60,30,0,120,15,0, - 112,7,0,112,7,0,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,112,7,0,120,7,0,56,14, - 0,62,62,0,31,252,0,15,248,0,3,224,0,17,25,75, - 20,1,0,7,12,0,15,204,0,12,236,0,12,56,0,0, - 0,0,7,240,0,15,252,0,31,252,0,60,30,0,120,15, - 0,112,7,0,112,7,0,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,112,7,0,120,7,0,56, - 14,0,62,62,0,31,252,0,15,248,0,3,224,0,17,25, - 75,20,1,0,12,24,0,30,60,0,30,60,0,12,24,0, - 0,0,0,7,240,0,15,252,0,31,252,0,60,30,0,120, - 15,0,112,7,0,112,7,0,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,112,7,0,120,7,0, - 56,14,0,62,62,0,31,252,0,15,248,0,3,224,0,15, - 16,32,20,2,0,224,14,240,30,248,62,120,60,60,120,30, - 240,15,224,7,192,7,192,15,224,30,240,60,120,120,60,248, - 62,240,30,224,14,17,23,69,20,1,254,0,3,128,3,227, - 128,15,255,128,31,255,0,62,62,0,56,30,0,120,63,0, - 112,127,0,224,123,128,224,243,128,225,227,128,225,195,128,227, - 195,128,231,131,128,255,7,128,126,7,0,126,15,0,60,30, - 0,127,252,0,127,248,0,247,240,0,224,0,0,224,0,0, - 19,26,78,20,0,0,3,0,0,7,128,0,1,224,0,0, - 240,0,0,48,0,0,0,0,255,31,224,255,31,224,255,31, - 224,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,28,7,128,31,31,0,15,254,0,7,252, - 0,1,248,0,19,26,78,20,0,0,0,28,0,0,60,0, - 0,240,0,1,224,0,1,128,0,0,0,0,255,31,224,255, - 31,224,255,31,224,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,28,7,128,31,31,0,15, - 254,0,7,252,0,1,248,0,19,26,78,20,0,0,0,64, - 0,0,224,0,3,184,0,7,28,0,14,14,0,0,0,0, - 255,31,224,255,31,224,255,31,224,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,28,7,128, - 31,31,0,15,254,0,7,252,0,1,248,0,19,26,78,20, - 0,0,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,255,191,224,255,191,224,255,191,224,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,28,7,128,31,31,0,15,254,0,7,252,0,1,248,0, - 17,26,78,20,1,0,0,24,0,0,120,0,0,240,0,3, - 192,0,3,0,0,0,0,0,254,63,128,254,63,128,254,63, - 128,60,30,0,28,28,0,30,60,0,14,56,0,15,120,0, - 7,240,0,3,224,0,3,224,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,31,252,0,31,252, - 0,31,252,0,18,20,60,20,1,0,255,128,0,255,128,0, - 255,128,0,28,0,0,31,248,0,31,254,0,31,255,0,28, - 15,128,28,3,128,28,3,192,28,3,192,28,3,128,28,15, - 128,31,255,0,31,254,0,31,248,0,28,0,0,255,128,0, - 255,128,0,255,128,0,17,22,66,20,0,255,3,224,0,7, - 240,0,15,248,0,30,60,0,28,28,0,28,28,0,28,28, - 0,28,60,0,29,248,0,29,248,0,29,254,0,28,31,0, - 28,15,0,28,7,128,28,3,128,28,3,128,29,195,128,29, - 195,128,255,255,0,254,255,0,254,126,0,0,24,0,17,22, - 66,20,2,0,24,0,0,60,0,0,15,0,0,7,128,0, - 1,128,0,0,0,0,0,0,0,15,224,0,63,240,0,63, - 248,0,56,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,124,0,255,255,128, - 127,255,128,63,159,128,17,22,66,20,2,0,0,32,0,0, - 112,0,0,240,0,3,192,0,7,128,0,6,0,0,0,0, - 0,15,224,0,63,240,0,63,248,0,56,60,0,0,28,0, - 0,28,0,15,252,0,63,252,0,127,252,0,120,28,0,224, - 60,0,224,124,0,255,255,128,127,223,128,63,159,128,17,22, - 66,20,1,0,0,128,0,1,192,0,7,112,0,14,56,0, - 28,28,0,0,0,0,0,0,0,7,224,0,63,240,0,63, - 248,0,60,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,60,0,255,255,128, - 127,255,128,63,159,128,17,21,63,20,1,0,14,24,0,31, - 152,0,25,248,0,24,112,0,0,0,0,0,0,0,15,224, - 0,63,240,0,63,248,0,56,60,0,0,28,0,0,28,0, - 15,252,0,63,252,0,127,252,0,120,28,0,240,28,0,224, - 124,0,255,255,128,127,223,128,63,159,128,17,21,63,20,2, - 0,12,24,0,30,60,0,30,60,0,12,24,0,0,0,0, - 0,0,0,15,224,0,63,240,0,63,248,0,56,60,0,0, - 28,0,0,28,0,15,252,0,63,252,0,127,252,0,120,28, - 0,240,28,0,224,124,0,255,255,128,127,223,128,63,159,128, - 17,21,63,20,1,0,3,192,0,6,96,0,4,32,0,6, - 96,0,3,192,0,0,0,0,15,224,0,63,240,0,63,248, - 0,56,60,0,0,28,0,0,28,0,15,252,0,63,252,0, - 127,252,0,120,28,0,240,28,0,224,124,0,255,255,128,127, - 223,128,63,159,128,20,15,45,20,255,0,15,135,0,63,255, - 192,63,255,192,56,253,224,0,112,112,3,240,112,31,255,240, - 127,255,240,255,255,240,240,112,0,224,120,0,241,248,112,127, - 255,240,63,255,240,31,39,128,16,21,42,20,2,250,7,230, - 31,254,63,254,124,62,112,14,240,14,224,14,224,0,224,0, - 224,0,240,6,124,15,63,254,31,252,7,240,1,128,1,128, - 1,192,8,224,15,192,3,128,16,21,42,20,1,0,6,0, - 15,0,3,192,1,224,0,96,0,0,7,224,31,248,63,252, - 124,62,112,14,240,15,255,255,255,255,255,255,224,0,112,0, - 124,15,63,255,31,254,7,240,16,22,44,20,1,0,0,16, - 0,56,0,120,1,224,3,192,3,0,0,0,7,224,31,248, - 63,252,124,62,112,14,240,15,255,255,255,255,255,255,224,0, - 112,0,124,14,63,255,31,254,7,240,16,22,44,20,1,0, - 0,128,1,192,7,112,14,56,28,28,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,16,21,42,20, - 1,0,12,24,30,60,30,60,12,24,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,15,22,44,20, - 2,0,24,0,60,0,15,0,7,128,1,128,0,0,0,0, - 127,128,127,128,127,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,254,255,254,255,254,15,23, - 46,20,2,0,0,128,1,192,3,192,15,0,30,0,24,0, - 0,0,0,0,127,128,127,128,127,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,15,22,44,20,2,0,2,0,7,0,29,192,56,224, - 112,112,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,15,21,42,20,2,0,48,96,120,240,120,240, - 48,96,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,16,21,42,20,2,0,126,14,255,191,255,252, - 3,240,15,240,127,248,124,56,112,60,7,220,31,254,127,254, - 120,30,240,15,224,7,224,7,224,15,240,15,248,62,127,252, - 63,248,31,224,17,21,63,20,1,0,14,24,0,31,152,0, - 25,248,0,24,112,0,0,0,0,0,0,0,249,240,0,251, - 252,0,255,254,0,60,30,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,254,63,128,254,63,128,17,21,63,20,1,0,6, - 0,0,15,0,0,3,192,0,1,224,0,0,96,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,22, - 66,20,1,0,0,16,0,0,56,0,0,120,0,1,224,0, - 3,192,0,3,0,0,0,0,0,7,240,0,15,248,0,63, - 254,0,60,30,0,120,15,0,240,7,128,224,3,128,224,3, - 128,224,3,128,240,7,128,120,15,0,124,31,0,63,254,0, - 31,252,0,7,240,0,17,22,66,20,1,0,0,128,0,1, - 192,0,7,112,0,14,56,0,28,28,0,0,0,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,21, - 63,20,1,0,7,12,0,15,204,0,12,252,0,12,56,0, - 0,0,0,0,0,0,7,240,0,15,248,0,63,254,0,60, - 30,0,120,15,0,240,7,128,224,3,128,224,3,128,224,3, - 128,240,7,128,120,15,0,124,31,0,63,254,0,31,252,0, - 7,240,0,17,21,63,20,1,0,12,24,0,30,60,0,30, - 60,0,12,24,0,0,0,0,0,0,0,7,240,0,15,248, - 0,63,254,0,60,30,0,120,15,0,240,7,128,224,3,128, - 224,3,128,224,3,128,240,7,128,120,15,0,124,31,0,63, - 254,0,31,252,0,7,240,0,15,15,30,20,2,2,3,128, - 7,192,7,192,3,128,0,0,0,0,255,254,255,254,255,254, - 0,0,0,0,3,128,7,192,7,192,3,128,17,18,54,20, - 1,254,0,3,128,3,227,128,15,255,128,63,255,0,62,62, - 0,120,63,0,112,127,0,224,243,128,225,227,128,227,195,128, - 231,131,128,127,7,0,126,31,0,63,254,0,127,252,0,247, - 240,0,224,0,0,224,0,0,18,22,66,20,0,0,3,0, - 0,7,128,0,1,224,0,0,240,0,0,48,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,22,66,20,0,0,0,8,0,0,28,0,0,60,0,0, - 240,0,1,224,0,1,128,0,0,0,0,252,63,0,252,63, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,15,0,28,31,0,31, - 255,192,15,247,192,7,231,192,18,22,66,20,0,0,0,128, - 0,1,192,0,7,112,0,14,56,0,28,28,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,21,63,20,0,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,0,0,0,252,63,0,252,63,0,252,63, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,15,0,28,31,0,31,255,192,15, - 247,192,7,231,192,17,29,87,20,1,249,0,16,0,0,56, - 0,0,120,0,1,224,0,3,192,0,3,0,0,0,0,0, - 254,63,128,254,63,128,254,63,128,120,15,0,56,14,0,60, - 30,0,28,28,0,30,60,0,14,56,0,15,120,0,7,112, - 0,7,240,0,3,224,0,3,224,0,1,192,0,1,192,0, - 3,128,0,3,128,0,7,0,0,255,224,0,255,224,0,255, - 224,0,19,28,84,20,0,249,252,0,0,252,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,252,0,31,255,0, - 31,255,128,31,135,192,31,3,192,30,1,224,28,0,224,28, - 0,224,28,0,224,30,1,224,30,1,192,31,135,192,31,255, - 128,31,255,0,28,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,255,192,0,255,192,0,255,192,0,17,28,84,20, - 1,249,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,254,63,128,254,63,128,254,63,128,120,15,0, - 56,14,0,60,30,0,28,28,0,30,60,0,14,56,0,15, - 120,0,7,112,0,7,240,0,3,224,0,3,224,0,1,192, - 0,1,192,0,3,128,0,3,128,0,7,0,0,255,224,0, - 255,224,0,255,224,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=28 x= 8 y=16 dx=20 dy= 0 ascent=23 len=75 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24r[4775] U8G_SECTION(".progmem.u8g_font_courB24r") = { - 0,30,44,249,245,20,5,57,12,115,32,127,249,23,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=17 h=27 x= 7 y= 8 dx=20 dy= 0 ascent=23 len=54 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =23 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24n[686] U8G_SECTION(".progmem.u8g_font_courB24n") = { - 0,30,44,249,245,21,0,0,0,0,42,57,0,23,251,21, - 0,15,14,28,20,3,7,3,128,3,128,3,128,3,128,99, - 140,251,190,127,252,31,240,15,224,15,224,30,240,60,120,120, - 60,48,24,17,17,51,20,1,1,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,255,255, - 128,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,7,10,10,20, - 5,251,30,30,60,60,56,112,112,224,224,192,15,3,6,20, - 2,8,255,254,255,254,255,254,5,4,4,20,7,0,112,248, - 248,112,13,27,54,20,3,252,0,56,0,56,0,120,0,112, - 0,112,0,224,0,224,1,224,1,192,1,192,3,128,3,128, - 7,128,7,0,15,0,14,0,14,0,28,0,28,0,60,0, - 56,0,56,0,112,0,112,0,240,0,224,0,224,0,13,21, - 42,20,3,0,15,128,63,224,127,240,112,112,240,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,240,120,112,112,127,240,63,224,15,128,13,21, - 42,20,4,0,3,0,15,0,127,0,255,0,255,0,103,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,14,21, - 42,20,2,0,7,192,31,240,63,248,120,60,112,28,112,28, - 112,28,0,28,0,56,0,120,0,240,1,224,3,192,7,128, - 15,0,30,0,60,0,120,0,255,252,255,252,255,252,15,21, - 42,20,2,0,7,224,31,240,127,248,120,60,112,28,0,28, - 0,28,0,60,7,248,7,240,7,248,0,124,0,28,0,14, - 0,14,0,14,0,30,224,60,255,252,255,248,63,224,14,21, - 42,20,2,0,0,240,1,240,1,240,3,240,7,240,7,112, - 15,112,14,112,30,112,28,112,56,112,120,112,112,112,255,252, - 255,252,255,252,0,112,0,112,3,252,3,252,3,252,15,21, - 42,20,2,0,63,252,63,252,63,252,56,0,56,0,56,0, - 56,0,63,224,63,248,63,252,56,124,0,30,0,14,0,14, - 0,14,0,14,64,30,240,60,255,248,127,248,31,224,14,21, - 42,20,3,0,1,248,7,248,15,248,31,0,60,0,120,0, - 112,0,112,0,227,192,239,240,255,240,248,120,240,60,224,28, - 224,28,240,28,112,60,120,120,127,248,63,240,15,192,14,21, - 42,20,2,0,255,252,255,252,255,252,224,60,224,56,224,56, - 0,56,0,120,0,112,0,112,0,240,0,224,0,224,1,224, - 1,192,1,192,3,192,3,128,7,128,7,0,7,0,14,21, - 42,20,3,0,15,128,63,224,127,240,112,112,224,56,224,56, - 224,56,112,112,127,240,63,224,63,240,124,248,240,60,224,28, - 224,28,224,28,224,28,248,124,127,248,63,240,15,192,14,21, - 42,20,3,0,15,128,63,224,127,240,120,240,240,120,224,56, - 224,60,224,60,224,60,240,124,120,252,63,220,63,156,15,60, - 0,56,0,120,0,112,97,240,255,224,255,128,126,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08[2433] U8G_SECTION(".progmem.u8g_font_courR08") = { - 0,10,16,254,252,6,1,151,3,21,32,255,254,9,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,1,7,7,6,2, - 254,128,0,128,128,128,128,128,4,8,8,6,1,255,32,32, - 112,128,128,112,32,32,6,7,7,6,0,0,56,64,248,32, - 32,68,252,5,5,5,6,0,1,136,112,80,112,136,5,7, - 7,6,0,0,136,80,248,32,248,32,112,1,9,9,6,2, - 254,128,128,128,0,0,128,128,128,128,4,8,8,6,1,255, - 112,128,96,144,144,96,16,224,3,1,1,6,2,5,160,6, - 7,7,6,0,0,48,72,180,164,180,72,48,4,5,5,6, - 1,1,224,16,208,0,240,6,3,3,6,0,1,108,216,108, - 5,3,3,6,0,2,248,8,8,4,1,1,6,1,3,240, - 6,7,7,6,0,0,48,72,188,180,172,72,48,4,1,1, - 6,1,5,240,4,3,3,6,1,4,96,144,96,5,6,6, - 6,0,0,32,32,248,32,0,248,3,4,4,6,2,3,96, - 160,64,224,3,4,4,6,2,3,224,64,32,192,2,2,2, - 6,2,5,64,128,6,7,7,6,0,254,216,72,72,72,116, - 64,64,6,8,8,6,0,255,124,168,168,104,40,40,40,108, - 1,2,2,6,2,2,128,128,3,3,3,6,1,254,64,32, - 192,3,4,4,6,2,3,192,64,64,224,4,5,5,6,1, - 1,96,144,96,0,240,6,3,3,6,1,1,216,108,216,6, - 7,7,6,0,0,192,68,72,244,44,92,132,6,7,7,6, - 0,0,192,68,72,252,52,72,156,6,7,7,6,0,0,224, - 68,40,212,44,92,132,4,7,7,6,0,254,32,0,32,32, - 64,144,96,6,9,9,6,0,0,32,16,0,112,40,72,120, - 72,204,6,9,9,6,0,0,16,32,0,112,40,72,120,72, - 204,6,9,9,6,0,0,32,80,0,112,40,72,120,72,204, - 6,9,9,6,0,0,40,80,0,112,40,72,120,72,204,6, - 8,8,6,0,0,80,0,112,40,72,120,72,204,6,9,9, - 6,0,0,16,40,16,112,40,72,120,72,204,6,6,6,6, - 0,0,124,48,92,112,144,156,4,8,8,6,1,254,96,144, - 128,128,144,96,32,192,5,9,9,6,0,0,32,16,0,248, - 72,112,64,72,248,5,9,9,6,0,0,16,32,0,248,72, - 112,64,72,248,5,9,9,6,0,0,32,80,0,248,72,112, - 64,72,248,5,8,8,6,0,0,80,0,248,72,112,64,72, - 248,5,9,9,6,0,0,64,32,0,248,32,32,32,32,248, - 5,9,9,6,0,0,16,32,0,248,32,32,32,32,248,5, - 9,9,6,0,0,32,80,0,248,32,32,32,32,248,5,8, - 8,6,0,0,80,0,248,32,32,32,32,248,5,6,6,6, - 0,0,240,72,232,72,72,240,6,9,9,6,0,0,40,80, - 0,220,72,104,88,72,200,4,9,9,6,1,0,64,32,0, - 96,144,144,144,144,96,4,9,9,6,1,0,32,64,0,96, - 144,144,144,144,96,4,9,9,6,1,0,32,80,0,96,144, - 144,144,144,96,4,9,9,6,1,0,80,160,0,96,144,144, - 144,144,96,4,8,8,6,1,0,160,0,96,144,144,144,144, - 96,5,5,5,6,0,1,136,80,32,80,136,6,6,6,6, - 0,0,52,72,88,104,72,176,6,9,9,6,0,0,32,16, - 0,204,72,72,72,72,48,6,9,9,6,0,0,16,32,0, - 204,72,72,72,72,48,6,9,9,6,0,0,16,40,0,204, - 72,72,72,72,48,6,8,8,6,0,0,80,0,204,72,72, - 72,72,48,5,9,9,6,0,0,16,32,0,216,136,80,32, - 32,112,5,6,6,6,0,0,192,112,72,112,64,224,6,6, - 6,6,0,0,48,72,88,68,84,200,5,8,8,6,0,0, - 64,32,0,96,16,112,144,104,5,8,8,6,0,0,16,32, - 0,96,16,112,144,104,5,8,8,6,0,0,32,80,0,96, - 16,112,144,104,5,8,8,6,0,0,80,160,0,96,16,112, - 144,104,5,7,7,6,0,0,80,0,96,16,112,144,104,5, - 9,9,6,0,0,32,80,32,0,96,16,112,144,104,6,5, - 5,6,0,0,108,148,124,144,236,4,7,7,6,1,254,96, - 144,128,144,96,32,192,4,8,8,6,1,0,64,32,0,96, - 144,240,128,112,4,8,8,6,1,0,32,64,0,96,144,240, - 128,112,4,8,8,6,1,0,64,160,0,96,144,240,128,112, - 4,7,7,6,1,0,160,0,96,144,240,128,112,5,8,8, - 6,0,0,64,32,0,96,32,32,32,248,5,8,8,6,0, - 0,16,32,0,96,32,32,32,248,5,8,8,6,0,0,32, - 80,0,96,32,32,32,248,5,7,7,6,0,0,80,0,96, - 32,32,32,248,4,8,8,6,1,0,208,96,160,112,144,144, - 144,96,6,8,8,6,0,0,40,80,0,176,72,72,72,236, - 4,8,8,6,1,0,64,32,0,96,144,144,144,96,4,8, - 8,6,1,0,16,32,0,96,144,144,144,96,4,8,8,6, - 1,0,64,160,0,96,144,144,144,96,4,8,8,6,1,0, - 80,160,0,96,144,144,144,96,4,7,7,6,1,0,160,0, - 96,144,144,144,96,5,5,5,6,0,1,32,0,248,0,32, - 6,6,6,6,0,0,4,56,88,104,72,176,6,8,8,6, - 0,0,32,16,0,216,72,72,72,52,6,8,8,6,0,0, - 16,32,0,216,72,72,72,52,6,8,8,6,0,0,32,80, - 0,216,72,72,72,52,6,7,7,6,0,0,80,0,216,72, - 72,72,52,5,10,10,6,0,254,16,32,0,216,72,72,72, - 48,32,192,5,9,9,6,0,254,192,64,112,72,72,72,112, - 64,224,5,9,9,6,0,254,80,0,216,72,72,72,48,32, - 192}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08r[1157] U8G_SECTION(".progmem.u8g_font_courR08r") = { - 0,10,16,254,252,6,1,151,3,21,32,127,254,8,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10[3052] U8G_SECTION(".progmem.u8g_font_courR10") = { - 0,14,20,253,251,9,1,224,3,220,32,255,253,12,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,1,1,9,9,9,4,254,128, - 128,0,128,128,128,128,128,128,5,9,9,9,2,0,32,32, - 120,136,128,136,112,32,32,7,9,9,9,1,0,24,36,32, - 32,120,32,32,66,252,6,6,6,9,1,1,180,72,132,132, - 72,180,7,9,9,9,1,0,238,68,68,40,124,16,124,16, - 56,1,11,11,9,3,254,128,128,128,128,0,0,128,128,128, - 128,128,6,10,10,9,1,255,60,68,64,240,136,68,60,8, - 136,240,5,1,1,9,2,8,216,8,9,9,9,0,0,60, - 66,153,165,161,165,153,66,60,4,6,6,9,2,3,192,32, - 224,176,0,240,8,7,7,9,0,0,17,34,68,204,68,34, - 17,7,3,3,9,1,3,254,2,2,6,1,1,9,1,4, - 252,8,9,9,9,0,0,60,66,185,165,185,169,165,66,60, - 4,1,1,9,2,8,240,4,4,4,9,2,6,96,144,144, - 96,7,7,7,9,1,1,16,16,254,16,16,0,254,4,6, - 6,9,2,4,96,144,16,32,64,240,4,6,6,9,2,4, - 96,144,96,16,144,96,4,2,2,9,2,8,48,192,8,10, - 10,9,0,253,198,66,66,66,66,70,123,64,64,64,7,10, - 10,9,1,255,126,148,148,148,116,20,20,20,20,62,2,2, - 2,9,3,3,192,192,3,3,3,9,2,253,64,32,224,3, - 6,6,9,3,4,64,192,64,64,64,224,4,6,6,9,2, - 3,96,144,144,96,0,240,8,7,7,9,0,0,136,68,34, - 51,34,68,136,10,10,20,9,255,0,64,0,193,0,66,0, - 68,0,68,128,233,128,18,128,20,128,39,192,64,128,10,10, - 20,9,255,0,64,0,193,0,66,0,68,0,69,128,234,64, - 16,64,16,128,33,0,67,192,10,10,20,9,255,0,96,0, - 145,0,98,0,20,0,148,128,105,128,18,128,20,128,39,192, - 64,128,5,9,9,9,2,254,32,32,0,32,96,128,128,136, - 112,9,12,24,9,0,0,48,0,12,0,0,0,56,0,8, - 0,20,0,20,0,34,0,62,0,65,0,65,0,247,128,9, - 12,24,9,0,0,12,0,48,0,0,0,56,0,8,0,20, - 0,20,0,34,0,62,0,65,0,65,0,247,128,9,12,24, - 9,0,0,8,0,20,0,0,0,56,0,8,0,20,0,20, - 0,34,0,62,0,65,0,65,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,56,0,8,0,20,0,20,0,34, - 0,62,0,65,0,65,0,247,128,9,11,22,9,0,0,54, - 0,0,0,56,0,8,0,20,0,20,0,34,0,62,0,65, - 0,65,0,247,128,9,12,24,9,0,0,24,0,36,0,24, - 0,56,0,8,0,20,0,20,0,34,0,62,0,65,0,65, - 0,247,128,9,9,18,9,255,0,31,128,12,128,20,0,20, - 128,39,128,60,128,68,0,68,128,239,128,7,12,12,9,1, - 253,58,70,130,128,128,128,128,66,60,16,8,56,7,12,12, - 9,1,0,96,24,0,254,66,66,72,120,72,66,66,254,7, - 12,12,9,1,0,12,48,0,254,66,66,72,120,72,66,66, - 254,7,12,12,9,1,0,16,40,0,254,66,66,72,120,72, - 66,66,254,7,11,11,9,1,0,108,0,254,66,66,72,120, - 72,66,66,254,5,12,12,9,2,0,192,48,0,248,32,32, - 32,32,32,32,32,248,5,12,12,9,2,0,24,96,0,248, - 32,32,32,32,32,32,32,248,5,12,12,9,2,0,32,80, - 0,248,32,32,32,32,32,32,32,248,5,11,11,9,2,0, - 216,0,248,32,32,32,32,32,32,32,248,8,9,9,9,0, - 0,252,66,65,65,241,65,65,66,252,8,12,12,9,0,0, - 26,44,0,231,98,82,82,74,74,70,70,226,8,12,12,9, - 0,0,48,12,0,60,66,129,129,129,129,129,66,60,8,12, - 12,9,0,0,12,48,0,60,66,129,129,129,129,129,66,60, - 8,12,12,9,0,0,16,40,0,60,66,129,129,129,129,129, - 66,60,8,12,12,9,0,0,26,44,0,60,66,129,129,129, - 129,129,66,60,8,11,11,9,0,0,102,0,60,66,129,129, - 129,129,129,66,60,7,7,7,9,1,1,130,68,40,16,40, - 68,130,9,9,18,9,255,0,30,128,33,0,66,128,68,128, - 72,128,80,128,32,128,97,0,158,0,8,12,12,9,0,0, - 48,12,0,231,66,66,66,66,66,66,66,60,8,12,12,9, - 0,0,12,48,0,231,66,66,66,66,66,66,66,60,8,12, - 12,9,0,0,16,40,0,231,66,66,66,66,66,66,66,60, - 8,11,11,9,0,0,102,0,231,66,66,66,66,66,66,66, - 60,7,12,12,9,1,0,12,48,0,238,68,68,40,40,16, - 16,16,124,7,9,9,9,0,0,224,64,124,66,66,66,124, - 64,224,7,9,9,9,0,0,56,68,68,88,68,66,66,82, - 204,7,10,10,9,1,0,96,24,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,24,96,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,16,40,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,52,88,0,120,132,4,124,132,140, - 118,7,9,9,9,1,0,108,0,120,132,4,124,132,140,118, - 7,10,10,9,1,0,48,72,48,120,132,4,124,132,140,118, - 8,7,7,9,0,0,118,137,9,127,136,137,118,7,10,10, - 9,1,253,58,70,130,128,128,66,60,16,8,56,7,10,10, - 9,1,0,96,24,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,12,48,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,16,40,0,56,68,130,254,128,66,60,7,9,9, - 9,1,0,108,0,56,68,130,254,128,66,60,5,10,10,9, - 2,0,192,48,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,48,192,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,32,80,0,224,32,32,32,32,32,248,5,9,9,9, - 2,0,216,0,224,32,32,32,32,32,248,8,12,12,9,0, - 0,2,228,24,40,68,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,220,98,66,66,66,66,231,8,10,10, - 9,0,0,48,12,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,12,48,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,16,40,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,60,66,129,129,129,66,60,8,9,9, - 9,0,0,108,0,60,66,129,129,129,66,60,8,7,7,9, - 0,1,24,24,0,255,0,24,24,8,7,7,9,0,0,61, - 70,137,145,161,66,188,8,10,10,9,0,0,48,12,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,12,48,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,16,40,0,198, - 66,66,66,66,70,59,8,9,9,9,0,0,108,0,198,66, - 66,66,66,70,59,8,13,13,9,0,253,6,24,0,231,66, - 66,36,36,24,8,16,16,120,8,12,12,9,0,253,192,64, - 92,98,65,65,65,98,92,64,64,240,8,12,12,9,0,253, - 54,0,231,66,66,36,36,24,8,16,16,120}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=11 len=18 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10r[1443] U8G_SECTION(".progmem.u8g_font_courR10r") = { - 0,14,20,253,251,9,1,224,3,220,32,127,253,11,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12[3471] U8G_SECTION(".progmem.u8g_font_courR12") = { - 0,15,24,253,250,10,2,12,4,92,32,255,253,14,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,10,0,1,1,10, - 10,10,4,253,128,128,0,128,128,128,128,128,128,128,5,10, - 10,10,2,0,32,32,120,136,128,128,136,112,32,32,8,10, - 10,10,1,0,28,34,32,32,248,32,32,32,65,255,7,7, - 7,10,1,1,130,124,68,68,68,124,130,9,10,20,10,0, - 0,227,128,65,0,34,0,34,0,20,0,62,0,8,0,62, - 0,8,0,62,0,1,12,12,10,4,254,128,128,128,128,128, - 0,0,128,128,128,128,128,9,12,24,10,0,255,31,0,33, - 0,33,0,112,0,140,0,131,0,96,128,24,128,7,0,66, - 0,66,0,124,0,4,2,2,10,3,8,144,144,10,10,20, - 10,0,0,30,0,33,0,64,128,142,64,144,64,144,64,142, - 64,64,128,33,0,30,0,5,7,7,10,2,3,112,8,120, - 136,120,0,248,7,7,7,10,1,0,18,36,72,144,72,36, - 18,7,4,4,10,1,2,254,2,2,2,7,1,1,10,1, - 4,254,10,10,20,10,0,0,30,0,33,0,64,128,156,64, - 146,64,156,64,146,64,64,128,33,0,30,0,5,1,1,10, - 2,8,248,5,5,5,10,2,6,112,136,136,136,112,7,9, - 9,10,1,0,16,16,16,254,16,16,16,0,254,4,6,6, - 10,2,5,96,144,32,64,144,240,4,6,6,10,3,5,96, - 144,32,16,144,96,3,3,3,10,4,8,32,64,128,8,10, - 10,10,1,253,198,66,66,66,66,70,123,64,64,64,7,12, - 12,10,1,255,62,84,148,148,148,84,52,20,20,20,20,62, - 2,2,2,10,4,4,192,192,3,4,4,10,3,253,64,64, - 32,224,5,6,6,10,2,5,32,224,32,32,32,248,5,7, - 7,10,2,3,112,136,136,136,112,0,248,7,7,7,10,1, - 0,144,72,36,18,36,72,144,10,11,22,10,0,0,32,0, - 224,64,32,128,33,0,34,0,252,128,9,128,18,128,36,128, - 71,192,0,128,10,11,22,10,0,0,32,0,224,64,32,128, - 33,0,34,0,253,128,10,64,16,128,33,0,66,64,3,192, - 10,11,22,10,0,0,96,0,144,64,32,128,17,0,146,0, - 100,128,9,128,18,128,36,128,71,192,0,128,6,10,10,10, - 1,253,16,16,0,16,16,96,128,132,132,120,9,14,28,10, - 0,0,32,0,16,0,8,0,0,0,120,0,20,0,20,0, - 34,0,34,0,34,0,62,0,65,0,65,0,227,128,9,14, - 28,10,0,0,4,0,8,0,16,0,0,0,120,0,20,0, - 20,0,34,0,34,0,34,0,62,0,65,0,65,0,227,128, - 9,14,28,10,0,0,8,0,20,0,34,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,50,0,76,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,36,0,36,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,14,28,10,0,0,24,0,36,0,36,0,24,0, - 120,0,20,0,20,0,34,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,10,20,10,0,0,127,128,40,128,40,128, - 74,0,78,0,122,0,72,128,136,128,136,128,223,128,8,13, - 13,10,1,253,29,99,65,128,128,128,128,65,99,28,16,8, - 56,7,14,14,10,1,0,32,16,8,0,254,66,66,72,120, - 72,64,66,66,254,7,14,14,10,1,0,4,8,16,0,254, - 66,66,72,120,72,64,66,66,254,7,14,14,10,1,0,16, - 40,68,0,254,66,66,72,120,72,64,66,66,254,7,13,13, - 10,1,0,36,36,0,254,66,66,72,120,72,64,66,66,254, - 7,14,14,10,1,0,32,16,8,0,254,16,16,16,16,16, - 16,16,16,254,7,14,14,10,1,0,8,16,32,0,254,16, - 16,16,16,16,16,16,16,254,7,14,14,10,1,0,16,40, - 68,0,254,16,16,16,16,16,16,16,16,254,7,13,13,10, - 1,0,68,68,0,254,16,16,16,16,16,16,16,16,254,8, - 10,10,10,1,0,248,70,66,65,241,65,65,66,70,248,9, - 13,26,10,0,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,243,0,8, - 14,14,10,1,0,32,16,8,0,60,66,66,129,129,129,129, - 66,66,60,8,14,14,10,1,0,4,8,16,0,60,66,66, - 129,129,129,129,66,66,60,8,14,14,10,1,0,8,20,34, - 0,60,66,66,129,129,129,129,66,66,60,8,13,13,10,1, - 0,50,76,0,60,66,66,129,129,129,129,66,66,60,8,13, - 13,10,1,0,36,36,0,60,66,66,129,129,129,129,66,66, - 60,7,7,7,10,1,1,130,68,40,16,40,68,130,8,10, - 10,10,1,0,61,66,66,133,137,145,161,66,66,188,9,14, - 28,10,0,0,16,0,8,0,4,0,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,14,28,10,0,0,2,0,4,0,8,0,0,0,247,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 28,0,9,14,28,10,0,0,8,0,20,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,13,26,10,0,0,34,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,14,28,10,0,0,2,0,4,0,8,0, - 0,0,227,128,65,0,34,0,34,0,20,0,8,0,8,0, - 8,0,8,0,62,0,8,10,10,10,1,0,224,64,124,66, - 65,66,124,64,64,224,7,11,11,10,1,0,56,68,68,72, - 88,68,66,66,66,82,204,7,11,11,10,1,0,32,16,8, - 0,56,68,4,124,132,132,122,7,11,11,10,1,0,4,8, - 16,0,56,68,4,124,132,132,122,7,11,11,10,1,0,16, - 40,68,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 50,76,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 36,36,0,56,68,4,124,132,132,122,7,12,12,10,1,0, - 24,36,36,24,0,56,68,4,124,132,132,122,9,7,14,10, - 0,0,55,0,72,128,8,128,127,128,136,0,136,128,119,0, - 7,10,10,10,1,253,58,70,130,128,128,66,60,16,8,56, - 7,11,11,10,1,0,32,16,8,0,56,68,130,254,128,66, - 60,7,11,11,10,1,0,4,8,16,0,56,68,130,254,128, - 66,60,7,11,11,10,1,0,16,40,68,0,56,68,130,254, - 128,66,60,7,10,10,10,1,0,36,36,0,56,68,130,254, - 128,66,60,7,11,11,10,1,0,32,16,8,0,112,16,16, - 16,16,16,254,7,11,11,10,1,0,8,16,32,0,112,16, - 16,16,16,16,254,7,11,11,10,1,0,16,40,68,0,112, - 16,16,16,16,16,254,7,10,10,10,1,0,72,72,0,112, - 16,16,16,16,16,254,7,11,11,10,1,0,230,24,104,4, - 60,66,130,130,130,68,56,8,10,10,10,1,0,50,76,0, - 220,98,66,66,66,66,231,7,11,11,10,1,0,32,16,8, - 0,56,68,130,130,130,68,56,7,11,11,10,1,0,8,16, - 32,0,56,68,130,130,130,68,56,7,11,11,10,1,0,16, - 40,68,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 50,76,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 68,68,0,56,68,130,130,130,68,56,8,7,7,10,1,1, - 24,24,0,255,0,24,24,7,9,9,10,1,255,2,58,68, - 138,146,162,68,184,128,8,11,11,10,1,0,32,16,8,0, - 198,66,66,66,66,70,59,8,11,11,10,1,0,4,8,16, - 0,198,66,66,66,66,70,59,8,11,11,10,1,0,16,40, - 68,0,198,66,66,66,66,70,59,8,10,10,10,1,0,36, - 36,0,198,66,66,66,66,70,59,9,14,28,10,0,253,2, - 0,4,0,8,0,0,0,227,128,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,120,0,8,14,14,10,1, - 253,192,64,64,64,92,98,65,65,65,98,92,64,64,240,9, - 13,26,10,0,253,18,0,18,0,0,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,16,0,120,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12r[1592] U8G_SECTION(".progmem.u8g_font_courR12r") = { - 0,15,24,253,250,10,2,12,4,92,32,127,253,12,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y=10 dx=11 dy= 0 ascent=15 len=32 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14[4276] U8G_SECTION(".progmem.u8g_font_courR14") = { - 0,16,26,253,249,11,2,74,5,74,32,255,252,15,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,11,0,1,2,12,12,11,4,252, - 192,192,0,0,128,128,192,192,192,192,192,192,6,12,12,11, - 2,0,16,16,16,60,68,132,128,128,68,56,16,16,8,11, - 11,11,2,0,28,34,32,32,16,252,16,32,33,65,126,6, - 7,7,11,2,2,132,120,132,132,132,120,132,9,11,22,11, - 1,0,227,128,65,0,34,0,34,0,20,0,20,0,127,0, - 8,0,127,0,8,0,62,0,1,15,15,11,5,253,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,7,14,14, - 11,2,254,62,66,66,64,112,140,130,98,28,6,130,130,132, - 252,4,2,2,11,3,10,144,144,11,11,22,11,0,0,31, - 0,96,192,79,64,145,32,160,32,160,32,160,32,145,32,78, - 64,96,192,31,0,6,8,8,11,2,3,112,8,120,136,152, - 236,0,252,10,8,16,11,1,0,24,192,49,128,99,0,198, - 0,198,0,99,0,49,128,24,192,9,4,8,11,1,3,255, - 128,0,128,0,128,0,128,8,1,1,11,1,5,255,11,11, - 22,11,0,0,31,0,96,192,94,64,145,32,145,32,158,32, - 148,32,146,32,81,64,96,128,31,0,5,1,1,11,3,10, - 248,5,5,5,11,3,6,112,136,136,136,112,9,9,18,11, - 1,1,8,0,8,0,8,0,255,128,8,0,8,0,8,0, - 0,0,255,128,5,7,7,11,3,5,112,136,8,16,32,64, - 248,5,7,7,11,3,5,112,136,8,48,8,136,112,3,3, - 3,11,4,9,32,64,128,9,12,24,11,1,252,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,125,128,64,0,64, - 0,64,0,64,0,8,14,14,11,1,254,63,74,138,138,138, - 74,58,10,10,10,10,10,10,59,2,2,2,11,4,5,192, - 192,3,3,3,11,4,253,64,32,192,5,7,7,11,3,5, - 32,224,32,32,32,32,248,6,8,8,11,2,3,120,132,132, - 132,132,120,0,252,10,8,16,11,0,0,198,0,99,0,49, - 128,24,192,24,192,49,128,99,0,198,0,11,12,24,11,0, - 0,32,0,224,64,32,128,33,0,33,0,34,64,252,192,9, - 64,10,64,19,224,32,64,0,224,11,12,24,11,0,0,32, - 0,224,64,32,128,33,0,33,0,34,192,253,32,8,32,8, - 64,16,128,33,0,3,224,11,12,24,11,0,0,112,0,136, - 64,8,128,49,0,9,0,138,64,116,192,9,64,10,64,19, - 224,32,64,0,224,6,11,11,11,2,253,24,24,0,16,16, - 112,128,128,132,132,120,11,15,30,11,0,0,16,0,8,0, - 4,0,0,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,15,30,11,0,0, - 1,0,2,0,4,0,0,0,60,0,4,0,10,0,10,0, - 17,0,17,0,32,128,63,128,64,64,64,64,241,224,11,15, - 30,11,0,0,12,0,18,0,33,0,0,0,60,0,4,0, - 10,0,10,0,17,0,17,0,32,128,63,128,64,64,64,64, - 241,224,11,14,28,11,0,0,25,0,38,0,0,0,60,0, - 4,0,10,0,10,0,17,0,17,0,32,128,63,128,64,64, - 64,64,241,224,11,14,28,11,0,0,18,0,18,0,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,11,15,30,11,0,0,12,0,18,0, - 18,0,12,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,11,22,11,255,0, - 31,224,6,32,10,32,10,0,18,64,19,192,62,64,34,0, - 66,32,66,32,231,224,9,14,28,11,1,253,30,128,97,128, - 64,128,128,0,128,0,128,0,128,0,128,0,64,128,97,0, - 30,0,8,0,4,0,24,0,8,15,15,11,1,0,32,16, - 8,0,255,65,65,65,72,120,72,65,65,65,255,8,15,15, - 11,1,0,4,8,16,0,255,65,65,65,72,120,72,65,65, - 65,255,8,15,15,11,1,0,24,36,66,0,255,65,65,65, - 72,120,72,65,65,65,255,8,14,14,11,1,0,36,36,0, - 255,65,65,65,72,120,72,65,65,65,255,7,15,15,11,2, - 0,32,16,8,0,254,16,16,16,16,16,16,16,16,16,254, - 7,15,15,11,2,0,8,16,32,0,254,16,16,16,16,16, - 16,16,16,16,254,7,15,15,11,2,0,24,36,66,0,254, - 16,16,16,16,16,16,16,16,16,254,7,14,14,11,2,0, - 36,36,0,254,16,16,16,16,16,16,16,16,16,254,8,11, - 11,11,1,0,252,66,65,65,65,241,65,65,65,66,252,9, - 14,28,11,1,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,15,30,11,1,0,16,0,8,0,4,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,9,15,30,11,1,0,4,0,8,0,16, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,11,1,0,12, - 0,18,0,33,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,25,0,38,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,18,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,9,18,11,1,1,128,128,65,0,34,0,20,0,8, - 0,20,0,34,0,65,0,128,128,11,11,22,11,0,0,14, - 32,49,192,32,128,65,64,66,64,68,64,72,64,80,64,32, - 128,113,128,142,0,10,15,30,11,0,0,16,0,8,0,4, - 0,0,0,243,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,10,15,30,11,0,0,2, - 0,4,0,8,0,0,0,243,192,64,128,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,33,0,30,0,10,15,30, - 11,0,0,12,0,18,0,33,0,0,0,243,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,33,0,30, - 0,10,14,28,11,0,0,18,0,18,0,0,0,243,192,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,9,15,30,11,1,0,2,0,4,0,8,0,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,8,0,8,0,62,0,9,11,22,11,1,0,224,0,64, - 0,126,0,65,0,64,128,64,128,65,0,126,0,64,0,64, - 0,224,0,8,11,11,11,1,0,60,66,66,68,88,70,65, - 65,65,73,230,9,12,24,11,1,0,32,0,16,0,8,0, - 0,0,60,0,66,0,2,0,126,0,130,0,130,0,134,0, - 123,128,9,12,24,11,1,0,4,0,8,0,16,0,0,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,24,0,36,0,66,0,0,0,60,0, - 66,0,2,0,126,0,130,0,130,0,134,0,123,128,9,11, - 22,11,1,0,50,0,76,0,0,0,60,0,66,0,2,0, - 126,0,130,0,130,0,134,0,123,128,9,11,22,11,1,0, - 36,0,36,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,9,13,26,11,1,0,24,0,36,0, - 36,0,24,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,11,8,16,11,0,0,113,128,138,64, - 4,32,127,224,132,0,132,0,138,32,113,192,8,11,11,11, - 1,253,61,67,129,128,128,128,67,60,16,8,48,8,12,12, - 11,1,0,32,16,8,0,60,66,129,255,128,128,67,60,8, - 12,12,11,1,0,2,4,8,0,60,66,129,255,128,128,67, - 60,8,12,12,11,1,0,24,36,66,0,60,66,129,255,128, - 128,67,60,8,11,11,11,1,0,36,36,0,60,66,129,255, - 128,128,67,60,7,12,12,11,2,0,32,16,8,0,112,16, - 16,16,16,16,16,254,7,12,12,11,2,0,8,16,32,0, - 112,16,16,16,16,16,16,254,7,12,12,11,2,0,48,72, - 132,0,112,16,16,16,16,16,16,254,7,11,11,11,2,0, - 72,72,0,112,16,16,16,16,16,16,254,8,12,12,11,1, - 0,114,140,52,66,62,67,129,129,129,129,66,60,9,11,22, - 11,1,0,50,0,76,0,0,0,222,0,97,0,65,0,65, - 0,65,0,65,0,65,0,227,128,8,12,12,11,1,0,32, - 16,8,0,60,66,129,129,129,129,66,60,8,12,12,11,1, - 0,4,8,16,0,60,66,129,129,129,129,66,60,8,12,12, - 11,1,0,24,36,66,0,60,66,129,129,129,129,66,60,8, - 11,11,11,1,0,50,76,0,60,66,129,129,129,129,66,60, - 8,11,11,11,1,0,36,36,0,60,66,129,129,129,129,66, - 60,8,9,9,11,1,1,24,24,0,0,255,0,0,24,24, - 8,8,8,11,1,0,61,66,133,137,145,161,66,188,9,12, - 24,11,1,0,32,0,16,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,11, - 1,0,2,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,11,1,0, - 24,0,36,0,66,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,11,1,0,36,0, - 36,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,9,16,32,11,1,252,2,0,4,0,8,0, - 0,0,227,128,65,0,65,0,34,0,34,0,20,0,20,0, - 8,0,8,0,16,0,16,0,248,0,9,16,32,11,1,252, - 192,0,64,0,64,0,64,0,94,0,97,0,64,128,64,128, - 64,128,64,128,97,0,94,0,64,0,64,0,64,0,240,0, - 9,15,30,11,1,252,36,0,36,0,0,0,227,128,65,0, - 65,0,34,0,34,0,20,0,20,0,8,0,8,0,16,0, - 16,0,248,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y= 9 dx=11 dy= 0 ascent=13 len=26 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14r[1988] U8G_SECTION(".progmem.u8g_font_courR14r") = { - 0,16,26,253,249,11,2,74,5,74,32,127,252,13,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=19 len=42 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18[6152] U8G_SECTION(".progmem.u8g_font_courR18") = { - 0,23,32,251,248,14,3,161,7,151,32,255,251,19,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,15,0,1,2,16,16,15,6,251,192,192,0,0,0,128, - 128,128,192,192,192,192,192,192,192,192,8,16,16,15,3,0, - 8,8,8,8,29,99,65,128,128,128,64,99,28,8,8,8, - 10,14,28,15,2,0,14,0,17,128,32,0,32,0,32,0, - 32,0,254,0,16,0,16,0,16,0,16,0,32,64,64,64, - 255,128,10,10,20,15,2,2,128,64,94,128,33,0,64,128, - 64,128,64,128,64,128,33,0,94,128,128,64,11,14,28,15, - 2,0,241,224,64,64,32,128,32,128,17,0,17,0,10,0, - 127,192,4,0,4,0,127,192,4,0,4,0,63,128,1,19, - 19,15,7,253,128,128,128,128,128,128,128,128,0,0,0,128, - 128,128,128,128,128,128,128,10,18,36,15,2,254,15,192,16, - 64,32,64,32,64,32,0,112,0,140,0,130,0,65,0,32, - 128,16,64,12,64,3,128,1,0,129,0,129,0,130,0,252, - 0,7,2,2,15,4,12,198,198,13,13,26,15,1,1,15, - 128,48,96,64,16,70,144,137,136,144,136,144,8,144,8,136, - 136,71,16,64,16,48,96,15,128,7,9,9,15,4,5,120, - 132,60,68,132,140,118,0,254,12,11,22,15,1,0,6,48, - 12,96,24,192,49,128,99,0,198,0,99,0,49,128,24,192, - 12,96,6,48,11,4,8,15,2,5,255,224,0,32,0,32, - 0,32,10,1,2,15,2,7,255,192,13,13,26,15,1,1, - 15,128,48,96,64,16,79,16,136,136,136,136,143,8,137,8, - 136,136,72,144,64,16,48,96,15,128,7,1,1,15,4,12, - 254,7,7,7,15,4,9,56,68,130,130,130,68,56,11,13, - 26,15,2,1,4,0,4,0,4,0,4,0,4,0,255,224, - 4,0,4,0,4,0,4,0,4,0,0,0,255,224,6,9, - 9,15,4,7,56,68,132,4,8,16,32,68,252,6,9,9, - 15,4,7,120,132,4,8,56,4,4,132,120,5,4,4,15, - 5,12,24,48,96,192,12,16,32,15,1,251,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,48,160, - 47,48,32,0,32,0,32,0,32,0,32,0,11,18,36,15, - 2,254,31,224,100,128,196,128,196,128,196,128,196,128,196,128, - 100,128,28,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,128,4,128,60,224,3,3,3,15,6,6,224,224,224,4, - 5,5,15,5,252,32,32,16,144,96,7,9,9,15,4,7, - 48,208,16,16,16,16,16,16,254,7,9,9,15,4,5,56, - 68,130,130,130,68,56,0,254,12,11,22,15,1,0,198,0, - 99,0,49,128,24,192,12,96,6,48,12,96,24,192,49,128, - 99,0,198,0,14,16,32,15,0,0,48,0,208,0,16,8, - 16,16,16,32,16,32,16,64,16,152,255,40,2,72,4,72, - 4,136,9,8,17,252,0,8,0,28,14,16,32,15,0,0, - 48,0,208,0,16,8,16,16,16,32,16,32,16,64,16,184, - 255,68,2,132,4,4,4,8,8,16,16,32,0,68,0,252, - 14,16,32,15,0,0,120,0,132,0,4,8,8,16,56,32, - 4,32,4,64,132,152,121,40,2,72,4,72,4,136,9,8, - 17,252,0,8,0,28,8,14,14,15,3,253,24,24,0,0, - 8,8,48,64,128,128,128,129,65,62,13,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,63,0,5,0,8,128, - 8,128,8,128,16,64,16,64,16,64,63,224,32,32,32,32, - 64,16,64,16,240,120,13,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,13,18, - 36,15,1,0,28,64,54,192,35,128,0,0,63,0,5,0, - 8,128,8,128,8,128,16,64,16,64,16,64,63,224,32,32, - 32,32,64,16,64,16,240,120,13,18,36,15,1,0,24,192, - 24,192,0,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,7,0,8,128,8,128,8,128, - 7,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,15,14, - 28,15,255,0,15,254,2,130,4,130,4,130,4,136,8,136, - 8,248,8,136,31,136,16,130,16,130,32,130,32,130,243,254, - 11,18,36,15,2,252,15,32,48,224,96,96,64,32,128,0, - 128,0,128,0,128,0,128,0,128,0,64,32,96,96,48,192, - 15,0,4,0,2,0,18,0,12,0,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,255,224,32,32,32,32, - 32,32,34,0,34,0,62,0,34,0,34,0,32,16,32,16, - 32,16,32,16,255,240,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,255,224,32,32,32,32,32,32,34,0, - 34,0,62,0,34,0,34,0,32,16,32,16,32,16,32,16, - 255,240,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,255,224,32,32,32,32,32,32,34,0,34,0,62,0, - 34,0,34,0,32,16,32,16,32,16,32,16,255,240,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,255,224,32,32, - 32,32,32,32,34,0,34,0,62,0,34,0,34,0,32,16, - 32,16,32,16,32,16,255,240,9,19,38,15,3,0,96,0, - 48,0,24,0,12,0,0,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,255,128,9,19,38,15,3,0,3,0,6,0,12,0, - 24,0,0,0,255,128,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,19,38,15,3,0,24,0,60,0,102,0,195,0,0,0, - 255,128,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,255,128,9,18,36,15, - 3,0,99,0,99,0,0,0,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,13,14,28,15,0,0,127,192,32,48, - 32,16,32,8,32,8,32,8,252,8,32,8,32,8,32,8, - 32,8,32,16,32,48,127,192,14,18,36,15,0,0,14,32, - 27,96,17,192,0,0,240,252,48,16,40,16,36,16,36,16, - 34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48, - 252,48,13,19,38,15,1,0,24,0,12,0,6,0,3,0, - 0,0,15,128,48,96,96,48,64,16,128,8,128,8,128,8, - 128,8,128,8,128,8,64,16,96,48,48,96,15,128,13,19, - 38,15,1,0,0,96,0,192,1,128,3,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,13,19,38,15,1,0, - 3,0,7,128,12,192,24,96,0,0,15,128,48,96,96,48, - 64,16,128,8,128,8,128,8,128,8,128,8,128,8,64,16, - 96,48,48,96,15,128,13,18,36,15,1,0,14,32,27,96, - 17,192,0,0,15,128,48,96,96,48,64,16,128,8,128,8, - 128,8,128,8,128,8,128,8,64,16,96,48,48,96,15,128, - 13,18,36,15,1,0,24,192,24,192,0,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,11,11,22,15,2,2, - 128,32,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,128,32,14,15,30,15,0,0,0,4,7,200, - 24,48,48,48,32,72,64,136,64,136,65,8,66,8,68,8, - 72,8,48,16,48,48,88,96,135,128,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,249,240,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,32,64,31,128,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,249,240,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,32,64, - 31,128,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,249,240,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,32,64,31,128,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,249,240,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,32,64,31,128,13,19,38,15,1,0,0,192, - 1,128,3,0,6,0,0,0,240,120,32,32,16,64,16,64, - 8,128,8,128,5,0,2,0,2,0,2,0,2,0,2,0, - 2,0,31,192,11,14,28,15,2,0,248,0,32,0,32,0, - 63,128,32,64,32,32,32,32,32,32,32,32,32,64,63,128, - 32,0,32,0,248,0,11,16,32,15,2,0,14,0,17,0, - 32,128,32,128,32,128,32,128,33,0,39,0,32,192,32,64, - 32,32,32,32,32,32,36,32,36,64,243,128,11,16,32,15, - 2,0,48,0,24,0,12,0,6,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,16,32,15,2,0,1,128,3,0,6,0,12,0, - 0,0,30,0,97,0,0,128,0,128,0,128,63,128,64,128, - 128,128,128,128,129,128,126,224,11,16,32,15,2,0,12,0, - 30,0,51,0,97,128,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,11,15, - 30,15,2,0,56,128,109,128,71,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,15,30,15,2,0,49,128,49,128,0,0,0,0, - 30,0,97,0,0,128,0,128,0,128,63,128,64,128,128,128, - 128,128,129,128,126,224,11,17,34,15,2,0,14,0,17,0, - 17,0,17,0,14,0,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,15,11, - 22,15,0,0,28,112,98,140,65,4,1,2,1,2,63,254, - 65,0,129,0,129,2,130,132,124,120,11,15,30,15,2,252, - 31,64,96,192,64,64,128,64,128,0,128,0,128,0,128,0, - 64,96,96,192,31,0,4,0,2,0,18,0,12,0,11,16, - 32,15,2,0,48,0,24,0,12,0,6,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,11,16,32,15,2,0,1,128,3,0,6,0, - 12,0,0,0,31,0,96,192,64,64,128,32,128,32,255,224, - 128,0,128,0,64,0,96,96,31,128,11,16,32,15,2,0, - 12,0,30,0,51,0,97,128,0,0,31,0,96,192,64,64, - 128,32,128,32,255,224,128,0,128,0,64,0,96,96,31,128, - 11,15,30,15,2,0,49,128,49,128,0,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,9,16,32,15,3,0,96,0,48,0,24,0, - 12,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,9,16,32,15,3,0, - 3,0,6,0,12,0,24,0,0,0,120,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,16,32,15,3,0,24,0,60,0,102,0,195,0,0,0, - 120,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,9,15,30,15,3,0,99,0,99,0, - 0,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,12,16,32,15,1,0, - 124,192,135,0,13,0,48,128,0,64,15,224,48,96,32,48, - 64,16,64,16,64,16,64,16,64,16,32,32,48,96,15,128, - 13,15,30,15,1,0,28,64,54,192,35,128,0,0,231,128, - 40,64,48,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,248,248,11,16,32,15,2,0,24,0,12,0,6,0, - 3,0,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,16,32,15,2,0, - 1,128,3,0,6,0,12,0,0,0,31,0,96,192,64,64, - 128,32,128,32,128,32,128,32,128,32,64,64,96,192,31,0, - 11,16,32,15,2,0,12,0,30,0,51,0,97,128,0,0, - 31,0,96,192,64,64,128,32,128,32,128,32,128,32,128,32, - 64,64,96,192,31,0,11,15,30,15,2,0,28,64,54,192, - 35,128,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,15,30,15,2,0, - 49,128,49,128,0,0,0,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,11,9, - 18,15,2,3,14,0,14,0,0,0,0,0,255,224,0,0, - 0,0,14,0,14,0,12,12,24,15,1,0,0,16,15,160, - 48,64,32,160,65,16,66,16,68,16,72,16,80,16,32,32, - 80,96,143,128,12,16,32,15,1,0,24,0,12,0,6,0, - 3,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,16,32,15,1,0, - 0,192,1,128,3,0,6,0,0,0,224,224,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,96,16,160,15,48, - 12,16,32,15,1,0,6,0,15,0,25,128,48,192,0,0, - 224,224,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,96,16,160,15,48,12,15,30,15,1,0,25,128,25,128, - 0,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,21,42,15,1,251, - 0,192,1,128,3,0,6,0,0,0,240,240,64,32,64,32, - 32,64,32,64,32,128,16,128,17,0,9,0,10,0,6,0, - 4,0,4,0,8,0,8,0,254,0,13,21,42,15,1,251, - 224,0,32,0,32,0,32,0,32,0,39,192,56,48,48,16, - 32,8,32,8,32,8,32,8,32,8,48,16,56,48,39,192, - 32,0,32,0,32,0,32,0,252,0,12,20,40,15,1,251, - 25,128,25,128,0,0,0,0,240,240,64,32,64,32,32,64, - 32,64,32,128,16,128,17,0,9,0,10,0,6,0,4,0, - 4,0,8,0,8,0,254,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18r[2862] U8G_SECTION(".progmem.u8g_font_courR18r") = { - 0,23,32,251,248,14,3,161,7,151,32,127,251,17,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=28 x= 9 y=17 dx=20 dy= 0 ascent=26 len=81 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =26 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24[8729] U8G_SECTION(".progmem.u8g_font_courR24") = { - 0,28,42,250,246,19,4,184,10,129,32,255,250,26,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,20,20, - 20,7,250,112,248,112,0,0,0,0,32,32,32,32,32,32, - 32,112,112,112,112,112,32,11,20,40,20,4,0,4,0,4, - 0,4,0,4,0,31,128,48,224,96,32,192,32,128,0,128, - 0,128,0,128,0,192,0,96,32,48,224,31,128,4,0,4, - 0,4,0,4,0,14,19,38,20,2,0,3,224,12,48,8, - 24,24,0,16,0,16,0,16,0,24,0,8,0,255,128,8, - 0,8,0,8,0,8,0,8,0,24,0,16,4,48,12,127, - 248,13,13,26,20,3,3,192,24,111,176,56,224,32,32,96, - 48,64,16,64,16,64,16,96,48,32,32,56,224,111,176,192, - 24,15,19,38,20,2,0,248,62,96,12,48,24,16,16,24, - 48,8,32,12,96,6,192,2,128,3,128,63,248,1,0,1, - 0,63,248,1,0,1,0,1,0,1,0,31,240,1,25,25, - 20,9,252,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,128,128,128,128,128,128,128,128,128,128,14,23,46,20, - 3,254,7,248,28,8,16,8,16,8,16,0,24,0,124,0, - 198,0,131,0,129,192,192,96,112,56,24,12,12,4,7,4, - 1,132,0,252,0,96,0,32,64,32,64,32,64,224,127,128, - 10,3,6,20,5,17,97,128,243,192,97,128,19,19,57,20, - 0,0,1,240,0,7,28,0,28,7,0,48,1,128,33,232, - 128,99,24,192,70,8,64,204,8,96,136,0,32,136,0,32, - 136,0,32,140,0,32,198,12,96,67,24,64,97,240,192,48, - 1,128,24,3,0,15,30,0,1,240,0,9,12,24,20,5, - 7,60,0,102,0,2,0,2,0,126,0,198,0,130,0,206, - 0,123,128,0,0,0,0,255,128,16,14,28,20,2,0,1, - 131,3,6,6,12,12,24,24,48,48,96,96,192,225,192,96, - 192,48,96,24,48,12,24,6,12,3,6,14,6,12,20,3, - 6,255,252,0,4,0,4,0,4,0,4,0,4,15,1,2, - 20,2,9,255,254,19,19,57,20,0,0,3,248,0,14,14, - 0,24,3,0,48,1,128,103,224,192,66,48,64,194,24,96, - 130,8,32,130,8,32,130,24,32,130,48,32,131,224,32,194, - 48,96,66,24,64,103,12,192,48,1,128,24,3,0,14,14, - 0,3,248,0,9,2,4,20,5,17,255,128,255,128,9,10, - 20,20,5,11,62,0,99,0,65,0,193,128,128,128,128,128, - 193,128,65,0,99,0,62,0,15,16,32,20,2,1,1,0, - 1,0,1,0,1,0,1,0,1,0,255,254,1,0,1,0, - 1,0,1,0,1,0,1,0,0,0,0,0,255,254,8,14, - 14,20,5,7,60,102,67,193,3,2,6,12,24,16,48,96, - 193,255,8,14,14,20,6,7,60,102,195,1,1,6,28,6, - 3,1,1,195,102,60,6,5,5,20,9,17,12,24,48,96, - 192,16,20,40,20,1,250,240,60,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,24,12,24,28,28, - 52,23,231,16,0,16,0,16,0,16,0,16,0,16,0,15, - 23,46,20,2,254,15,254,57,16,113,16,97,16,225,16,193, - 16,193,16,225,16,97,16,113,16,61,16,15,16,1,16,1, - 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, - 16,31,190,5,4,4,20,7,7,112,248,248,112,5,5,5, - 20,7,251,32,32,48,152,240,7,14,14,20,6,7,112,208, - 16,16,16,16,16,16,16,16,16,16,16,254,9,12,24,20, - 5,7,28,0,119,0,65,0,193,128,128,128,193,128,65,0, - 119,0,28,0,0,0,0,0,255,128,16,14,28,20,2,0, - 193,128,96,192,48,96,24,48,12,24,6,12,3,6,3,135, - 3,6,6,12,12,24,24,48,48,96,96,192,18,21,63,20, - 1,0,48,0,192,240,0,128,16,1,128,16,3,0,16,2, - 0,16,6,0,16,12,0,16,8,0,16,24,0,16,48,0, - 16,35,0,16,103,0,254,197,0,0,141,0,1,153,0,3, - 17,0,2,49,0,6,63,128,12,1,0,8,1,0,24,7, - 128,18,21,63,20,1,0,48,0,128,240,1,128,16,3,0, - 16,6,0,16,4,0,16,12,0,16,24,0,16,16,0,16, - 48,0,16,96,0,16,71,128,16,204,192,253,152,64,3,0, - 192,2,0,128,6,1,128,12,7,0,8,12,0,24,24,0, - 48,48,0,96,63,192,19,21,63,20,0,0,60,0,0,102, - 0,96,3,0,192,3,1,128,6,3,0,28,6,0,6,12, - 0,3,8,0,1,24,0,1,48,0,195,33,128,102,99,128, - 60,194,128,1,134,128,1,12,128,3,8,128,6,24,128,12, - 31,192,24,0,128,48,0,128,0,3,192,11,20,40,20,4, - 250,14,0,31,0,14,0,0,0,0,0,0,0,0,0,4, - 0,4,0,12,0,24,0,112,0,64,0,192,0,128,0,128, - 0,192,32,96,32,49,224,31,0,19,26,78,20,0,0,6, - 0,0,3,0,0,1,128,0,0,192,0,0,96,0,0,0, - 0,0,0,0,31,224,0,0,160,0,1,176,0,1,16,0, - 1,16,0,3,24,0,2,8,0,2,8,0,6,12,0,4, - 4,0,4,4,0,12,6,0,15,254,0,8,2,0,24,3, - 0,16,1,0,16,1,0,48,1,128,254,15,224,19,26,78, - 20,0,0,0,12,0,0,24,0,0,48,0,0,96,0,0, - 192,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,64,0,0,224,0,1,176,0, - 3,24,0,6,12,0,0,0,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,19,24,72,20,0,0,3,132,0,6,236, - 0,4,56,0,0,0,0,0,0,0,31,224,0,0,160,0, - 1,176,0,1,16,0,1,16,0,3,24,0,2,8,0,2, - 8,0,6,12,0,4,4,0,4,4,0,12,6,0,15,254, - 0,8,2,0,24,3,0,16,1,0,16,1,0,48,1,128, - 254,15,224,19,24,72,20,0,0,6,12,0,15,30,0,6, - 12,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,224,0,1,176,0,1,16,0, - 1,16,0,1,176,0,0,224,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,18,19,57,20,1,0,31,255,128,2,64, - 128,2,64,128,6,64,128,4,64,128,4,64,128,4,64,0, - 12,68,0,8,68,0,8,124,0,8,68,0,24,68,0,31, - 192,0,16,64,0,48,64,64,32,64,64,32,64,64,32,64, - 64,251,255,192,15,24,48,20,2,251,7,196,28,116,48,12, - 96,12,64,4,192,4,128,0,128,0,128,0,128,0,128,0, - 128,0,128,0,192,0,64,2,96,4,48,28,28,112,7,192, - 1,0,1,0,1,128,4,192,7,128,15,26,52,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,255,252, - 16,4,16,4,16,4,16,4,16,4,16,64,16,64,16,64, - 31,192,16,64,16,64,16,0,16,2,16,2,16,2,16,2, - 16,2,255,254,15,26,52,20,1,0,0,48,0,96,0,192, - 1,128,3,0,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,15,26, - 52,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,255,252,16,4,16,4,16,4,16,4,16,4,16,64, - 16,64,16,64,31,192,16,64,16,64,16,0,16,2,16,2, - 16,2,16,2,16,2,255,254,15,24,48,20,1,0,12,48, - 30,120,12,48,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,11,26, - 52,20,4,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,255,224,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,255,224,11,26,52,20,4,0,0,192, - 1,128,3,0,6,0,12,0,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,11,26,52,20,4,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,255,224,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,255,224,11,24,48,20, - 4,0,96,192,241,224,96,192,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,15,19,38,20,1,0,255,192,32,112,32,24,32,12, - 32,4,32,6,32,2,32,2,32,2,254,2,32,2,32,2, - 32,2,32,6,32,4,32,12,32,24,32,112,255,192,18,24, - 72,20,0,0,3,132,0,6,236,0,4,56,0,0,0,0, - 0,0,0,248,31,192,28,1,0,20,1,0,22,1,0,18, - 1,0,19,1,0,17,129,0,16,129,0,16,193,0,16,65, - 0,16,97,0,16,33,0,16,49,0,16,25,0,16,9,0, - 16,13,0,16,5,0,16,7,0,127,3,0,15,26,52,20, - 2,0,24,0,12,0,6,0,3,0,1,128,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,15,26,52,20,2,0,0,24,0,48, - 0,96,0,192,1,128,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,26,52,20,2,0,1,0,3,128,6,192,12,96,24,48, - 0,0,0,0,7,192,28,112,48,24,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,32,8,48,24,28,112,7,192,15,24,48,20,2,0, - 14,16,27,176,16,224,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,24,48,20,2,0,48,48,120,120,48,48,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,13,14,28,20,3,1,128,8,192,24, - 96,48,48,96,24,192,13,128,7,0,7,0,13,128,24,192, - 48,96,96,48,192,24,128,8,16,21,42,20,2,255,0,1, - 7,195,28,118,48,28,32,24,96,60,64,36,192,102,128,194, - 129,130,129,2,131,2,134,2,204,6,72,4,120,12,48,8, - 48,24,124,48,199,224,128,0,17,26,78,20,1,0,6,0, - 0,3,0,0,1,128,0,0,192,0,0,96,0,0,0,0, - 0,0,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,17,26,78,20, - 1,0,0,24,0,0,48,0,0,96,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,48,6,0,16,4,0,24,12,0,14,56,0,3,224,0, - 17,26,78,20,1,0,0,128,0,1,192,0,3,96,0,6, - 48,0,12,24,0,0,0,0,0,0,0,254,63,128,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,48,6,0,16,4,0,24,12,0,14,56, - 0,3,224,0,17,24,72,20,1,0,12,24,0,30,60,0, - 12,24,0,0,0,0,0,0,0,254,63,128,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,48,6,0,16,4,0,24,12,0,14,56,0,3, - 224,0,15,26,52,20,2,0,0,48,0,96,0,192,1,128, - 3,0,0,0,0,0,248,62,96,12,48,24,16,16,24,48, - 8,32,12,96,6,192,2,128,3,128,1,0,1,0,1,0, - 1,0,1,0,1,0,1,0,1,0,31,240,16,19,38,20, - 1,0,254,0,16,0,16,0,16,0,31,224,16,60,16,6, - 16,2,16,3,16,3,16,2,16,6,16,60,31,224,16,0, - 16,0,16,0,16,0,254,0,15,21,42,20,1,0,7,192, - 12,96,8,32,24,48,16,16,16,16,16,16,16,48,16,96, - 17,192,16,112,16,24,16,4,16,6,16,2,16,2,16,2, - 17,6,17,4,17,140,248,248,15,22,44,20,2,0,24,0, - 12,0,6,0,3,0,1,128,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,22,44,20,2,0, - 0,96,0,192,1,128,3,0,6,0,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,22,44,20, - 2,0,1,0,3,128,6,192,12,96,24,48,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,20,40,20, - 2,0,48,192,121,224,48,192,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,23,46,20,2,0, - 7,0,13,128,8,128,8,128,13,128,7,0,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,19,14, - 42,20,0,0,31,15,128,113,152,192,0,240,64,0,96,96, - 0,96,32,30,64,32,115,255,224,192,192,0,128,64,0,128, - 96,0,128,224,0,193,80,96,99,88,192,62,79,128,14,19, - 38,20,3,251,15,200,56,104,96,24,64,24,192,8,128,8, - 128,0,128,0,128,0,192,0,64,4,96,28,56,112,15,192, - 2,0,2,0,3,0,9,128,15,0,14,22,44,20,2,0, - 24,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0, - 15,192,56,112,96,24,64,8,192,12,128,4,255,252,128,0, - 128,0,128,0,192,0,96,12,56,56,15,224,14,22,44,20, - 2,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,14,22, - 44,20,2,0,1,0,3,128,6,192,12,96,24,48,0,0, - 0,0,0,0,15,192,56,112,96,24,64,8,192,12,128,4, - 255,252,128,0,128,0,128,0,192,0,96,12,56,56,15,224, - 14,20,40,20,2,0,48,96,120,240,48,96,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,13,22, - 44,20,3,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 13,22,44,20,3,0,0,192,1,128,3,0,6,0,12,0, - 0,0,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,21,42,20,3,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,20,40,20,3,0,97,128,243,192,97,128,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 15,20,40,20,2,0,124,12,79,56,1,224,3,192,14,96, - 56,48,32,24,0,12,15,228,56,54,96,14,192,6,128,2, - 128,2,128,2,192,6,64,4,96,12,24,56,15,224,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 227,192,46,112,56,16,48,24,32,8,32,8,32,8,32,8, - 32,8,32,8,32,8,32,8,32,8,248,62,15,22,44,20, - 2,0,12,0,6,0,3,0,1,128,0,192,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,15,22, - 44,20,2,0,0,48,0,96,0,192,1,128,3,0,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,22,44,20,2,0,1,128,3,192,6,96,12,48,24,24, - 0,0,0,0,0,0,15,224,56,56,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,56,56, - 15,224,15,20,40,20,2,0,14,16,27,176,16,224,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,20,40,20,2,0,24,96,60,240,24,96,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,14,16, - 32,20,2,1,3,0,7,128,3,0,0,0,0,0,0,0, - 0,0,0,0,255,252,0,0,0,0,0,0,0,0,3,0, - 7,128,3,0,15,16,32,20,2,255,0,2,7,230,28,60, - 48,24,64,52,192,102,128,194,129,130,131,2,134,2,204,6, - 88,4,112,24,120,112,207,192,128,0,16,22,44,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,16,22,44,20, - 1,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,21, - 42,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,20, - 40,20,1,0,24,48,60,120,24,48,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,15,28,56,20, - 2,250,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,248,62,64,4,96,12,32,8,48,24,16,16,24,48, - 8,32,12,96,4,64,6,192,2,128,3,128,1,0,3,0, - 2,0,2,0,6,0,4,0,127,128,17,27,81,20,0,250, - 240,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,17,248,0,23,14,0,28,3,0,24,1, - 0,24,1,128,16,0,128,16,0,128,16,0,128,16,0,128, - 24,1,128,24,1,0,28,3,0,23,14,0,17,248,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,255,0, - 0,15,25,50,20,2,250,24,24,60,60,24,24,0,0,0, - 0,248,62,64,4,96,12,32,8,48,24,16,16,24,48,8, - 32,12,96,4,64,6,192,2,128,3,128,1,0,3,0,2, - 0,2,0,6,0,4,0,127,128}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=15 h=25 x= 7 y= 9 dx=20 dy= 0 ascent=22 len=50 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =22 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24n[638] U8G_SECTION(".progmem.u8g_font_courR24n") = { - 0,28,42,250,246,20,0,0,0,0,42,57,0,22,252,20, - 0,11,13,26,20,4,8,4,0,4,0,4,0,4,0,132, - 32,245,224,31,0,14,0,10,0,27,0,49,128,32,128,96, - 192,15,17,34,20,2,1,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,255,254,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,6,9,9,20,5,252,60, - 60,120,120,96,224,192,192,128,15,1,2,20,2,9,255,254, - 5,4,4,20,7,0,112,248,248,112,11,25,50,20,4,253, - 0,32,0,96,0,64,0,64,0,192,0,128,1,128,1,0, - 3,0,2,0,2,0,6,0,4,0,12,0,8,0,8,0, - 24,0,16,0,48,0,32,0,96,0,64,0,64,0,192,0, - 128,0,11,20,40,20,4,0,31,0,49,128,96,192,64,64, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,192,96,64,64,64,64,96,192,49,128,31,0, - 11,20,40,20,4,0,12,0,60,0,228,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,255,224,13,20, - 40,20,3,0,15,192,48,96,96,16,64,16,64,16,0,16, - 0,48,0,32,0,96,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,0,192,0,128,8,255,248,13,20,40,20, - 3,0,15,128,56,224,96,48,0,16,0,16,0,16,0,16, - 0,32,0,64,7,128,0,96,0,16,0,8,0,8,0,8, - 0,8,0,24,192,48,112,224,31,128,13,20,40,20,3,0, - 0,192,1,64,1,64,2,64,6,64,4,64,8,64,24,64, - 16,64,32,64,96,64,64,64,128,64,255,248,0,64,0,64, - 0,64,0,64,0,64,3,248,13,20,40,20,3,0,63,240, - 32,0,32,0,32,0,32,0,32,0,32,0,39,128,60,224, - 32,48,0,16,0,24,0,8,0,8,0,8,0,24,192,16, - 96,48,56,224,15,128,12,20,40,20,4,0,7,192,28,32, - 48,0,32,0,96,0,64,0,192,0,143,128,184,224,160,32, - 192,48,192,16,192,16,192,16,192,16,64,16,96,48,32,32, - 56,224,15,128,11,20,40,20,4,0,255,224,128,32,128,32, - 0,96,0,64,0,64,0,192,0,128,0,128,1,128,1,0, - 1,0,3,0,2,0,2,0,2,0,6,0,4,0,4,0, - 4,0,11,20,40,20,4,0,31,0,96,192,64,64,192,96, - 128,32,128,32,192,96,64,64,49,128,31,0,113,192,64,64, - 192,96,128,32,128,32,128,32,192,96,64,64,113,192,31,0, - 12,20,40,20,4,0,31,0,112,192,64,96,192,32,128,48, - 128,48,128,48,128,48,192,80,64,208,115,144,30,16,0,32, - 0,32,0,32,0,64,0,192,1,128,14,0,120,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=26 x= 9 y=17 dx=20 dy= 0 ascent=22 len=60 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24r[3991] U8G_SECTION(".progmem.u8g_font_courR24r") = { - 0,28,42,250,246,19,4,184,10,129,32,127,250,22,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 3, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 7 y= 6 dx=19 dy= 0 ascent=17 len=34 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =17 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[3981] U8G_SECTION(".progmem.u8g_font_cu12_67_75") = { - 0,40,30,247,246,3,2,98,5,14,32,255,1,17,254,12, - 0,11,5,10,12,1,4,2,128,1,64,255,224,1,64,2, - 128,5,11,11,6,1,1,32,32,32,32,32,32,168,112,168, - 112,32,11,5,10,12,1,4,32,96,65,128,255,0,65,128, - 32,96,11,5,10,12,1,4,192,128,48,64,31,224,48,64, - 192,128,11,7,14,12,1,3,0,32,32,32,64,32,255,224, - 64,32,32,32,0,32,7,11,11,8,1,1,16,56,84,16, - 16,16,16,16,16,16,254,11,7,14,12,1,3,128,0,128, - 128,128,64,255,224,128,64,128,128,128,0,7,11,11,8,1, - 1,254,16,16,16,16,16,16,16,84,56,16,7,11,11,8, - 1,1,16,56,84,16,16,16,16,16,84,56,254,11,7,14, - 12,1,4,1,192,0,32,32,32,64,32,255,192,64,0,32, - 0,11,7,14,12,1,4,112,0,128,0,128,128,128,64,127, - 224,0,64,0,128,11,7,14,12,1,4,1,192,2,32,34, - 32,66,32,255,192,66,0,34,0,11,7,14,12,1,4,112, - 0,136,0,136,128,136,64,127,224,8,64,8,128,12,5,10, - 13,1,4,38,64,73,32,233,112,80,160,32,64,12,5,10, - 13,1,4,33,64,66,32,255,240,68,32,40,64,4,11,11, - 5,1,1,16,16,32,64,176,208,32,160,160,192,240,6,11, - 11,7,1,1,32,64,252,68,36,4,4,4,4,4,4,6, - 11,11,7,1,1,16,8,252,136,144,128,128,128,128,128,128, - 6,11,11,7,1,1,4,4,4,4,4,4,36,68,252,64, - 32,6,11,11,7,1,1,128,128,128,128,128,128,144,136,252, - 8,16,8,6,6,9,1,2,252,4,4,21,14,4,6,8, - 8,7,1,1,4,4,4,36,68,252,64,32,11,8,16,11, - 1,1,15,128,16,64,32,32,32,32,32,32,168,32,112,0, - 32,0,11,8,16,11,1,1,62,0,65,0,128,128,128,128, - 128,128,130,160,1,192,0,128,9,11,22,10,1,1,255,128, - 0,0,240,0,192,0,160,0,144,0,8,0,4,0,2,0, - 1,0,0,128,12,13,26,13,1,0,128,0,144,0,160,0, - 255,240,160,0,144,0,128,16,0,144,0,80,255,240,0,80, - 0,144,0,16,10,7,14,11,1,2,3,192,67,0,130,128, - 130,128,128,128,65,0,62,0,10,7,14,11,1,2,240,0, - 48,128,80,64,80,64,64,64,32,128,31,0,11,3,6,12, - 1,6,32,0,64,0,255,224,11,3,6,12,1,6,255,224, - 64,0,32,0,3,11,11,4,1,1,128,192,160,128,128,128, - 128,128,128,128,128,3,11,11,4,1,1,32,96,160,32,32, - 32,32,32,32,32,32,11,3,6,12,1,6,0,128,0,64, - 255,224,11,3,6,12,1,6,255,224,0,64,0,128,3,11, - 11,4,1,1,128,128,128,128,128,128,128,128,160,192,128,3, - 11,11,4,1,1,32,32,32,32,32,32,32,32,160,96,32, - 11,11,22,12,1,1,0,128,0,64,255,224,0,64,0,128, - 0,0,32,0,64,0,255,224,64,0,32,0,11,11,22,12, - 1,1,32,128,112,128,168,128,32,128,32,128,32,128,32,128, - 32,128,34,160,33,192,32,128,11,11,22,12,1,1,32,0, - 64,0,255,224,64,0,32,0,0,0,0,128,0,64,255,224, - 0,64,0,128,11,11,22,12,1,1,32,0,64,0,255,224, - 64,0,32,0,0,0,32,0,64,0,255,224,64,0,32,0, - 11,11,22,12,1,1,32,128,113,192,170,160,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,11,11,22,12, - 1,1,0,128,0,64,255,224,0,64,0,128,0,0,0,128, - 0,64,255,224,0,64,0,128,11,11,22,12,1,1,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,170,160, - 113,192,32,128,11,8,16,12,1,3,32,0,64,0,255,224, - 0,0,0,0,255,224,0,64,0,128,11,8,16,12,1,3, - 0,128,0,64,255,224,0,0,0,0,255,224,64,0,32,0, - 11,7,14,12,1,3,16,128,32,128,127,224,129,0,127,224, - 34,0,18,0,13,7,14,14,1,3,17,64,33,32,127,240, - 130,8,127,240,36,32,20,64,11,7,14,12,1,3,9,0, - 8,128,255,192,16,32,255,192,32,128,33,0,11,7,14,12, - 1,3,16,0,32,0,127,224,128,0,127,224,32,0,16,0, - 7,11,11,8,1,1,16,40,108,170,40,40,40,40,40,40, - 40,11,7,14,12,1,3,1,0,0,128,255,192,0,32,255, - 192,0,128,1,0,7,11,11,8,1,1,40,40,40,40,40, - 40,40,170,108,40,16,12,7,14,12,1,3,16,128,32,64, - 127,224,128,16,127,224,32,64,16,128,7,12,12,8,1,0, - 16,40,108,170,40,40,40,40,170,108,40,16,10,10,20,11, - 1,1,248,0,144,0,136,0,196,0,162,0,17,0,8,128, - 4,64,2,0,1,0,10,10,20,11,1,1,7,192,2,64, - 4,64,8,192,17,64,34,0,68,0,136,0,16,0,32,0, - 10,10,20,11,1,1,32,0,16,0,136,0,68,0,34,0, - 17,64,8,192,4,64,2,64,7,192,10,10,20,11,1,1, - 1,0,2,0,4,64,8,128,17,0,162,0,196,0,136,0, - 144,0,248,0,11,7,14,12,1,3,16,0,63,224,64,0, - 255,224,64,0,63,224,16,0,11,7,14,12,1,3,1,0, - 255,128,0,64,255,224,0,64,255,128,1,0,12,5,10,13, - 1,4,32,0,72,128,245,80,66,32,32,0,12,5,10,13, - 1,4,0,64,17,32,170,240,68,32,0,64,5,11,11,6, - 1,1,32,112,168,32,32,248,32,248,32,32,32,5,11,11, - 6,1,1,32,32,32,248,32,248,32,32,168,112,32,11,5, - 10,12,1,4,32,0,64,0,238,224,64,0,32,0,5,11, - 11,6,1,1,32,112,168,0,32,32,32,0,32,32,32,11, - 5,10,12,1,4,0,128,0,64,238,224,0,64,0,128,5, - 11,11,6,1,1,32,32,32,0,32,32,32,0,168,112,32, - 12,7,14,13,1,3,128,0,144,0,160,0,255,240,160,0, - 144,0,128,0,12,7,14,13,1,3,0,16,0,144,0,80, - 255,240,0,80,0,144,0,16,12,9,18,13,1,2,8,0, - 24,0,47,240,64,16,128,16,64,16,47,240,24,0,8,0, - 9,12,24,10,1,1,8,0,20,0,34,0,65,0,227,128, - 34,0,34,0,34,0,34,0,34,0,34,0,62,0,12,9, - 18,13,1,2,1,0,1,128,255,64,128,32,128,16,128,32, - 255,64,1,128,1,0,9,12,24,10,1,1,62,0,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,9,17,34,10,1,0,8,0,20,0,34,0, - 65,0,227,128,34,0,34,0,34,0,34,0,34,0,34,0, - 62,0,0,0,62,0,34,0,34,0,62,0,9,14,28,10, - 1,0,8,0,20,0,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,9,14, - 28,10,1,0,8,0,20,0,62,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,128,128,255,128, - 9,14,28,10,1,0,8,0,28,0,42,0,73,0,235,128, - 42,0,42,0,42,0,42,0,42,0,42,0,235,128,136,128, - 255,128,9,15,30,10,1,2,8,0,20,0,34,0,73,0, - 213,128,34,0,65,0,227,128,34,0,34,0,34,0,34,0, - 34,0,34,0,62,0,9,17,34,10,1,0,8,0,20,0, - 34,0,73,0,213,128,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,14,9, - 18,16,2,2,224,64,160,96,191,208,128,24,128,20,128,24, - 191,208,160,96,224,64,11,11,22,12,1,1,255,224,128,0, - 188,0,176,0,168,0,164,0,130,0,129,0,128,128,128,64, - 128,32,11,11,22,12,1,1,128,32,64,32,32,32,16,32, - 8,32,4,160,2,160,1,160,7,160,0,32,255,224,9,16, - 32,10,1,0,8,0,20,0,34,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 11,11,22,14,2,1,255,224,255,224,255,224,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,11,11,22,14, - 2,1,255,224,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,128,32,255,224,11,11,22,14,2,1,63,128, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 64,64,63,128,11,11,22,14,2,1,255,224,128,32,191,160, - 191,160,191,160,191,160,191,160,191,160,191,160,128,32,255,224, - 11,11,22,14,2,1,255,224,128,32,255,224,128,32,255,224, - 128,32,255,224,128,32,255,224,128,32,255,224,11,11,22,14, - 2,1,255,224,170,160,170,160,170,160,170,160,170,160,170,160, - 170,160,170,160,170,160,255,224,11,11,22,14,2,1,255,224, - 170,160,255,224,170,160,255,224,170,160,255,224,170,160,255,224, - 170,160,255,224,11,11,22,14,2,1,255,224,201,32,164,160, - 146,96,201,32,164,160,146,96,201,32,164,160,146,96,255,224, - 11,11,22,14,2,1,255,224,146,96,164,160,201,32,146,96, - 164,160,201,32,146,96,164,160,201,32,255,224,11,11,22,14, - 2,1,255,224,213,96,170,160,213,96,170,160,213,96,170,160, - 213,96,170,160,213,96,255,224,7,7,7,12,3,3,254,254, - 254,254,254,254,254,7,7,7,12,3,3,254,130,130,130,130, - 130,254,13,6,12,16,2,3,255,248,255,248,255,248,255,248, - 255,248,255,248,13,6,12,16,2,3,255,248,128,8,128,8, - 128,8,128,8,255,248,6,13,13,9,2,254,252,252,252,252, - 252,252,252,252,252,252,252,252,252,6,13,13,9,2,254,252, - 132,132,132,132,132,132,132,132,132,132,132,252,16,6,12,19, - 2,3,31,255,63,254,63,254,127,252,127,252,255,248,16,6, - 12,19,2,3,31,255,32,2,32,2,64,4,64,4,255,248, - 11,12,24,14,2,1,4,0,4,0,14,0,14,0,31,0, - 31,0,63,128,63,128,127,192,127,192,255,224,255,224,11,12, - 24,14,2,1,4,0,4,0,10,0,10,0,17,0,17,0, - 32,128,32,128,64,64,64,64,128,32,255,224,7,8,8,12, - 3,1,16,16,56,56,124,124,254,254,7,8,8,12,3,1, - 16,16,40,40,68,68,130,254,12,11,22,15,2,1,192,0, - 240,0,252,0,255,0,255,192,255,240,255,192,255,0,252,0, - 240,0,192,0,12,11,22,15,2,1,192,0,176,0,140,0, - 131,0,128,192,128,48,128,192,131,0,140,0,176,0,192,0, - 8,7,7,13,3,1,192,240,252,255,252,240,192,8,7,7, - 13,3,1,192,176,140,131,140,176,192,12,7,14,15,2,1, - 192,0,252,0,255,192,255,240,255,192,252,0,192,0,12,7, - 14,15,2,1,192,0,188,0,131,192,128,48,131,192,188,0, - 192,0,11,12,24,14,2,1,255,224,255,224,127,192,127,192, - 63,128,63,128,31,0,31,0,14,0,14,0,4,0,4,0, - 11,12,24,14,2,1,255,224,128,32,64,64,64,64,32,128, - 32,128,17,0,17,0,10,0,10,0,4,0,4,0,7,8, - 8,12,3,1,254,254,124,124,56,56,16,16,7,8,8,12, - 3,1,254,130,68,68,40,40,16,16,12,11,22,15,2,1, - 0,48,0,240,3,240,15,240,63,240,255,240,63,240,15,240, - 3,240,0,240,0,48,12,11,22,15,2,1,0,48,0,208, - 3,16,12,16,48,16,192,16,48,16,12,16,3,16,0,208, - 0,48,8,7,7,13,3,1,3,15,63,255,63,15,3,8, - 7,7,13,3,1,3,13,49,193,49,13,3,12,7,14,15, - 2,1,0,48,3,240,63,240,255,240,63,240,3,240,0,48, - 12,7,14,15,2,1,0,48,3,208,60,16,192,16,60,16, - 3,208,0,48,11,11,22,14,2,1,4,0,14,0,31,0, - 63,128,127,192,255,224,127,192,63,128,31,0,14,0,4,0, - 11,11,22,14,2,1,4,0,10,0,17,0,32,128,64,64, - 128,32,64,64,32,128,17,0,10,0,4,0,11,11,22,14, - 2,1,4,0,10,0,17,0,36,128,78,64,159,32,78,64, - 36,128,17,0,10,0,4,0,11,11,22,14,2,1,31,0, - 96,192,64,64,142,32,159,32,159,32,159,32,142,32,64,64, - 96,192,31,0,7,12,12,8,1,0,16,40,40,68,68,130, - 130,68,68,40,40,16,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,128,32,128,32,64,64,96,192, - 31,0,11,11,22,14,2,1,14,0,32,128,64,64,0,0, - 128,32,128,32,128,32,0,0,64,64,32,128,14,0,11,11, - 22,14,2,1,31,0,106,192,106,192,170,160,170,160,170,160, - 170,160,170,160,106,192,106,192,31,0,11,11,22,14,2,1, - 31,0,96,192,64,64,142,32,145,32,145,32,145,32,142,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,127,192, - 127,192,255,224,255,224,255,224,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,120,192,120,64,248,32, - 248,32,248,32,248,32,248,32,120,64,120,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 131,224,131,224,67,192,99,192,31,0,11,11,22,14,2,1, - 31,0,127,192,127,192,255,224,255,224,128,32,128,32,128,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,103,192,71,192,135,224, - 135,224,135,224,128,32,128,32,64,64,96,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 255,224,255,224,127,192,127,192,31,0,6,11,11,8,2,1, - 28,124,124,252,252,252,252,252,124,124,28,6,11,11,9,2, - 1,224,248,248,252,252,252,252,252,248,248,224,7,12,12,10, - 2,1,254,254,254,254,254,198,130,130,130,198,254,254,13,13, - 26,16,2,0,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,191,232,191,232,223,216,207,152,240,120,255,248,13,7, - 14,16,2,6,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,13,7,14,16,2,0,191,232,191,232,191,232,223,216, - 207,152,240,120,255,248,6,6,6,8,2,6,28,96,64,128, - 128,128,6,6,6,13,7,6,224,24,8,4,4,4,6,6, - 6,13,7,1,4,4,4,8,24,224,6,6,6,8,2,1, - 128,128,128,64,96,28,11,6,12,14,2,6,31,0,96,192, - 64,64,128,32,128,32,128,32,11,6,12,14,2,1,128,32, - 128,32,128,32,64,64,96,192,31,0,12,12,24,15,2,1, - 0,16,0,48,0,112,0,240,1,240,3,240,7,240,15,240, - 31,240,63,240,127,240,255,240,12,12,24,15,2,1,128,0, - 192,0,224,0,240,0,248,0,252,0,254,0,255,0,255,128, - 255,192,255,224,255,240,12,12,24,15,2,1,255,240,255,224, - 255,192,255,128,255,0,254,0,252,0,248,0,240,0,224,0, - 192,0,128,0,12,12,24,15,2,1,255,240,127,240,63,240, - 31,240,15,240,7,240,3,240,1,240,0,240,0,112,0,48, - 0,16,7,7,7,8,1,2,56,68,130,130,130,68,56,11, - 11,22,14,2,1,255,224,248,32,248,32,248,32,248,32,248, - 32,248,32,248,32,248,32,248,32,255,224,11,11,22,14,2, - 1,255,224,131,224,131,224,131,224,131,224,131,224,131,224,131, - 224,131,224,131,224,255,224,11,11,22,14,2,1,255,224,255, - 224,255,160,255,32,254,32,252,32,248,32,240,32,224,32,192, - 32,255,224,11,11,22,14,2,1,255,224,128,96,128,224,129, - 224,131,224,135,224,143,224,159,224,191,224,255,224,255,224,11, - 11,22,14,2,1,255,224,132,32,132,32,132,32,132,32,132, - 32,132,32,132,32,132,32,132,32,255,224,11,12,24,14,2, - 1,4,0,4,0,10,0,10,0,17,0,17,0,32,128,36, - 128,78,64,68,64,128,32,255,224,11,12,24,14,2,1,4, - 0,4,0,14,0,14,0,29,0,29,0,60,128,60,128,124, - 64,124,64,252,32,255,224,11,12,24,14,2,1,4,0,4, - 0,14,0,14,0,23,0,23,0,39,128,39,128,71,192,71, - 192,135,224,255,224,13,13,26,16,2,0,31,192,32,32,64, - 16,128,8,128,8,128,8,128,8,128,8,128,8,128,8,64, - 16,32,32,31,192,11,11,22,14,2,1,255,224,132,32,132, - 32,132,32,132,32,252,32,128,32,128,32,128,32,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,128,32,128,32,128, - 32,252,32,132,32,132,32,132,32,132,32,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,135,224,132, - 32,132,32,132,32,132,32,255,224,11,11,22,14,2,1,255, - 224,132,32,132,32,132,32,132,32,135,224,128,32,128,32,128, - 32,128,32,255,224,11,11,22,14,2,1,31,0,100,192,68, - 64,132,32,132,32,252,32,128,32,128,32,64,64,96,192,31, - 0,11,11,22,14,2,1,31,0,96,192,64,64,128,32,128, - 32,252,32,132,32,132,32,68,64,100,192,31,0,11,11,22, - 14,2,1,31,0,96,192,64,64,128,32,128,32,135,224,132, - 32,132,32,68,64,100,192,31,0,11,11,22,14,2,1,31, - 0,100,192,68,64,132,32,132,32,135,224,128,32,128,32,64, - 64,96,192,31,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 6 - Calculated Max Values w=16 h=13 x= 3 y= 3 dx=19 dy= 0 ascent=13 len=24 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_75r[1123] U8G_SECTION(".progmem.u8g_font_cu12_75r") = { - 0,40,30,247,246,11,2,247,0,0,32,79,0,13,254,12, - 0,11,11,22,14,2,1,255,224,255,224,255,224,255,224,255, - 224,255,224,255,224,255,224,255,224,255,224,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,32,255,224,11,11,22,14,2,1,63, - 128,64,64,128,32,128,32,128,32,128,32,128,32,128,32,128, - 32,64,64,63,128,11,11,22,14,2,1,255,224,128,32,191, - 160,191,160,191,160,191,160,191,160,191,160,191,160,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,255,224,128,32,255, - 224,128,32,255,224,128,32,255,224,128,32,255,224,11,11,22, - 14,2,1,255,224,170,160,170,160,170,160,170,160,170,160,170, - 160,170,160,170,160,170,160,255,224,11,11,22,14,2,1,255, - 224,170,160,255,224,170,160,255,224,170,160,255,224,170,160,255, - 224,170,160,255,224,11,11,22,14,2,1,255,224,201,32,164, - 160,146,96,201,32,164,160,146,96,201,32,164,160,146,96,255, - 224,11,11,22,14,2,1,255,224,146,96,164,160,201,32,146, - 96,164,160,201,32,146,96,164,160,201,32,255,224,11,11,22, - 14,2,1,255,224,213,96,170,160,213,96,170,160,213,96,170, - 160,213,96,170,160,213,96,255,224,7,7,7,12,3,3,254, - 254,254,254,254,254,254,7,7,7,12,3,3,254,130,130,130, - 130,130,254,13,6,12,16,2,3,255,248,255,248,255,248,255, - 248,255,248,255,248,13,6,12,16,2,3,255,248,128,8,128, - 8,128,8,128,8,255,248,6,13,13,9,2,254,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,9,2,254, - 252,132,132,132,132,132,132,132,132,132,132,132,252,16,6,12, - 19,2,3,31,255,63,254,63,254,127,252,127,252,255,248,16, - 6,12,19,2,3,31,255,32,2,32,2,64,4,64,4,255, - 248,11,12,24,14,2,1,4,0,4,0,14,0,14,0,31, - 0,31,0,63,128,63,128,127,192,127,192,255,224,255,224,11, - 12,24,14,2,1,4,0,4,0,10,0,10,0,17,0,17, - 0,32,128,32,128,64,64,64,64,128,32,255,224,7,8,8, - 12,3,1,16,16,56,56,124,124,254,254,7,8,8,12,3, - 1,16,16,40,40,68,68,130,254,12,11,22,15,2,1,192, - 0,240,0,252,0,255,0,255,192,255,240,255,192,255,0,252, - 0,240,0,192,0,12,11,22,15,2,1,192,0,176,0,140, - 0,131,0,128,192,128,48,128,192,131,0,140,0,176,0,192, - 0,8,7,7,13,3,1,192,240,252,255,252,240,192,8,7, - 7,13,3,1,192,176,140,131,140,176,192,12,7,14,15,2, - 1,192,0,252,0,255,192,255,240,255,192,252,0,192,0,12, - 7,14,15,2,1,192,0,188,0,131,192,128,48,131,192,188, - 0,192,0,11,12,24,14,2,1,255,224,255,224,127,192,127, - 192,63,128,63,128,31,0,31,0,14,0,14,0,4,0,4, - 0,11,12,24,14,2,1,255,224,128,32,64,64,64,64,32, - 128,32,128,17,0,17,0,10,0,10,0,4,0,4,0,7, - 8,8,12,3,1,254,254,124,124,56,56,16,16,7,8,8, - 12,3,1,254,130,68,68,40,40,16,16,12,11,22,15,2, - 1,0,48,0,240,3,240,15,240,63,240,255,240,63,240,15, - 240,3,240,0,240,0,48,12,11,22,15,2,1,0,48,0, - 208,3,16,12,16,48,16,192,16,48,16,12,16,3,16,0, - 208,0,48,8,7,7,13,3,1,3,15,63,255,63,15,3, - 8,7,7,13,3,1,3,13,49,193,49,13,3,12,7,14, - 15,2,1,0,48,3,240,63,240,255,240,63,240,3,240,0, - 48,12,7,14,15,2,1,0,48,3,208,60,16,192,16,60, - 16,3,208,0,48,11,11,22,14,2,1,4,0,14,0,31, - 0,63,128,127,192,255,224,127,192,63,128,31,0,14,0,4, - 0,11,11,22,14,2,1,4,0,10,0,17,0,32,128,64, - 64,128,32,64,64,32,128,17,0,10,0,4,0,11,11,22, - 14,2,1,4,0,10,0,17,0,36,128,78,64,159,32,78, - 64,36,128,17,0,10,0,4,0,11,11,22,14,2,1,31, - 0,96,192,64,64,142,32,159,32,159,32,159,32,142,32,64, - 64,96,192,31,0,7,12,12,8,1,0,16,40,40,68,68, - 130,130,68,68,40,40,16,11,11,22,14,2,1,31,0,96, - 192,64,64,128,32,128,32,128,32,128,32,128,32,64,64,96, - 192,31,0,11,11,22,14,2,1,14,0,32,128,64,64,0, - 0,128,32,128,32,128,32,0,0,64,64,32,128,14,0,11, - 11,22,14,2,1,31,0,106,192,106,192,170,160,170,160,170, - 160,170,160,170,160,106,192,106,192,31,0,11,11,22,14,2, - 1,31,0,96,192,64,64,142,32,145,32,145,32,145,32,142, - 32,64,64,96,192,31,0,11,11,22,14,2,1,31,0,127, - 192,127,192,255,224,255,224,255,224,255,224,255,224,127,192,127, - 192,31,0}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 3 y=11 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12[3993] U8G_SECTION(".progmem.u8g_font_cu12") = { - 0,40,30,247,246,11,2,90,5,94,32,255,252,16,252,12, - 252,0,0,0,5,0,0,2,12,12,5,1,0,192,192,192, - 192,192,192,192,0,0,0,192,192,4,5,5,7,2,7,144, - 144,144,144,144,10,15,30,12,1,253,4,128,4,128,9,0, - 9,0,9,0,255,192,18,0,18,0,18,0,255,192,36,0, - 36,0,36,0,72,0,72,0,5,14,14,8,1,255,32,112, - 168,168,168,160,96,48,40,168,168,168,112,32,11,13,26,14, - 1,255,96,64,152,128,151,128,145,0,146,0,98,0,4,0, - 8,192,9,32,17,32,33,32,33,32,64,192,10,12,24,13, - 1,0,24,0,36,0,36,0,36,0,40,0,51,192,49,0, - 81,0,138,0,138,0,196,64,123,128,1,5,5,4,2,7, - 128,128,128,128,128,4,15,15,6,2,253,16,32,64,64,128, - 128,128,128,128,128,128,64,64,32,16,4,15,15,6,1,253, - 128,64,32,32,16,16,16,16,16,16,16,32,32,64,128,7, - 7,7,7,0,5,16,146,84,56,84,146,16,9,9,18,11, - 2,255,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,5,5,5,1,253,192,192,64,64,128,4, - 1,1,7,2,3,240,2,2,2,5,1,0,192,192,5,16, - 16,8,2,252,8,8,16,16,16,16,32,32,32,32,64,64, - 64,64,128,128,5,11,11,7,1,0,112,80,136,136,136,136, - 136,136,136,80,112,5,11,11,7,1,0,32,224,32,32,32, - 32,32,32,32,32,248,5,11,11,7,1,0,112,136,136,136, - 8,16,16,32,72,72,248,5,11,11,7,1,0,112,136,136, - 8,8,48,8,8,136,136,112,7,11,11,9,1,0,24,24, - 40,40,72,200,254,8,8,8,62,5,11,11,7,1,0,136, - 240,128,128,240,200,8,8,136,144,96,5,11,11,7,1,0, - 48,72,64,128,240,136,136,136,136,80,112,6,12,12,8,1, - 0,128,252,132,136,16,16,16,32,32,32,32,32,5,11,11, - 7,1,0,112,136,136,136,80,112,136,136,136,136,112,5,11, - 11,7,1,0,112,80,136,136,136,136,120,8,16,144,96,2, - 7,7,7,3,0,192,192,0,0,0,192,192,2,10,10,5, - 1,253,192,192,0,0,0,192,192,64,64,128,5,9,9,6, - 1,1,8,16,32,64,128,64,32,16,8,10,5,10,13,2, - 2,255,192,0,0,0,0,0,0,255,192,5,9,9,6,1, - 1,128,64,32,16,8,16,32,64,128,5,12,12,8,1,0, - 112,136,136,16,32,32,96,0,0,0,96,96,10,12,24,12, - 1,0,30,0,33,0,76,128,147,64,161,64,161,64,161,64, - 161,64,147,64,77,128,32,192,31,0,11,11,22,11,0,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,10,11,22,10,0,0,255,0,32,128, - 32,64,32,64,32,128,63,0,32,128,32,64,32,64,32,128, - 255,0,9,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,10,11, - 22,10,0,0,254,0,33,128,32,128,32,64,32,64,32,64, - 32,64,32,64,32,128,33,128,254,0,10,11,22,10,1,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,9,11,22,9,1,0,255,128,32,128, - 32,128,34,128,34,0,62,0,34,0,34,0,32,0,32,0, - 248,0,10,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,131,192,128,128,64,128,32,128,31,128,11,11, - 22,11,1,0,251,224,32,128,32,128,32,128,32,128,63,128, - 32,128,32,128,32,128,32,128,251,224,5,11,11,5,1,0, - 248,32,32,32,32,32,32,32,32,32,248,6,11,11,6,1, - 0,124,16,16,16,16,16,16,16,16,144,224,11,11,22,11, - 1,0,249,224,32,128,33,0,34,0,36,0,46,0,50,0, - 33,0,33,0,32,128,249,224,8,11,11,8,0,0,248,32, - 32,32,32,32,33,33,33,35,255,14,11,22,14,1,0,240, - 60,48,48,48,48,40,80,40,80,40,144,36,144,36,144,35, - 16,35,16,251,124,11,11,22,11,1,0,227,224,48,128,48, - 128,40,128,40,128,36,128,34,128,34,128,33,128,33,128,248, - 128,10,11,22,10,1,0,30,0,33,0,64,128,128,64,128, - 64,128,64,128,64,128,64,64,128,33,0,30,0,9,11,22, - 9,1,0,255,0,33,128,32,128,32,128,33,128,63,0,32, - 0,32,0,32,0,32,0,248,0,10,14,28,10,1,253,30, - 0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,92, - 128,51,0,30,0,2,0,2,64,1,128,11,11,22,11,1, - 0,254,0,33,0,32,128,32,128,33,0,62,0,35,0,33, - 0,33,0,33,0,248,224,6,11,11,7,1,0,124,132,132, - 128,64,48,8,4,132,132,248,9,11,22,9,1,0,255,128, - 136,128,136,128,136,128,8,0,8,0,8,0,8,0,8,0, - 8,0,62,0,11,11,22,11,1,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,11,22,11,1,0,241,224,32,128,32,128,17,0,17,0, - 17,0,10,0,10,0,10,0,4,0,4,0,16,11,22,16, - 1,0,241,207,33,132,33,132,34,68,18,72,18,72,18,72, - 20,40,12,48,12,48,8,16,11,11,22,11,1,0,243,192, - 17,0,18,0,10,0,12,0,4,0,10,0,26,0,17,0, - 32,128,241,224,11,11,22,11,1,0,241,224,32,128,17,0, - 17,0,10,0,14,0,4,0,4,0,4,0,4,0,31,0, - 7,11,11,7,1,0,254,196,132,136,8,16,34,34,66,70, - 254,3,16,16,5,1,252,224,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,224,5,16,16,8,2,252,128,128,64, - 64,64,64,32,32,32,32,16,16,16,16,8,8,3,16,16, - 5,0,252,224,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,224,5,3,3,6,1,9,32,112,136,11,1,2,12, - 1,254,255,224,3,4,4,6,3,8,128,192,64,32,6,7, - 7,7,1,0,112,136,8,120,136,136,124,6,12,12,7,1, - 0,192,64,64,64,64,120,68,68,68,68,68,120,5,7,7, - 6,1,0,112,136,128,128,128,136,112,6,12,12,7,1,0, - 24,8,8,8,8,120,136,136,136,136,136,124,5,7,7,6, - 1,0,112,136,248,128,128,136,112,5,12,12,6,1,0,56, - 72,64,64,64,240,64,64,64,64,64,224,7,11,11,8,1, - 252,62,68,68,68,120,64,124,130,130,130,124,7,12,12,8, - 1,0,192,64,64,64,64,120,68,68,68,68,68,238,3,11, - 11,4,1,0,192,192,0,0,192,64,64,64,64,64,224,4, - 14,14,5,0,253,48,48,0,0,48,16,16,16,16,16,16, - 16,144,224,7,12,12,8,1,0,192,64,64,64,64,94,72, - 80,112,88,72,238,3,12,12,4,1,0,192,64,64,64,64, - 64,64,64,64,64,64,224,11,7,14,12,1,0,251,128,68, - 64,68,64,68,64,68,64,68,64,238,224,7,7,7,8,1, - 0,248,68,68,68,68,68,238,5,7,7,6,1,0,112,136, - 136,136,136,136,112,6,10,10,7,1,253,248,68,68,68,68, - 68,120,64,64,224,6,10,10,7,1,253,120,136,136,136,136, - 136,120,8,8,28,5,7,7,6,1,0,208,104,64,64,64, - 64,240,5,7,7,6,1,0,120,136,128,112,8,136,240,6, - 10,10,7,1,0,32,32,32,248,32,32,32,36,36,24,7, - 7,7,8,1,0,204,68,68,68,68,68,62,8,7,7,9, - 1,0,231,36,36,36,24,24,24,11,7,14,11,0,0,238, - 224,36,128,42,128,42,128,42,128,27,0,17,0,8,7,7, - 9,1,0,231,36,24,24,24,36,231,8,10,10,8,1,253, - 231,36,36,36,24,24,24,16,144,224,5,7,7,6,1,0, - 248,144,144,32,72,72,248,5,16,16,6,1,252,24,32,32, - 32,32,32,32,192,32,32,32,32,32,32,32,24,1,16,16, - 3,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,16,16,5,0,252,192,32,32,32,32,32,32, - 24,32,32,32,32,32,32,32,192,5,3,3,8,1,9,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,0,2,12,12,5,1,253,192, - 192,0,0,0,192,192,192,192,192,192,192,5,11,11,7,1, - 254,16,16,112,168,160,160,160,200,112,64,64,8,12,12,9, - 1,0,6,9,17,16,16,124,16,16,16,81,178,204,7,7, - 7,9,1,3,130,124,68,68,68,124,130,11,11,22,12,0, - 0,241,224,32,128,17,0,10,0,127,192,14,0,4,0,127, - 192,4,0,4,0,31,0,1,16,16,3,2,252,128,128,128, - 128,128,128,128,0,0,128,128,128,128,128,128,128,4,13,13, - 6,1,0,96,144,128,128,96,144,144,144,96,16,16,144,96, - 5,2,2,6,1,11,216,216,9,10,20,10,1,3,62,0, - 65,0,158,128,162,128,162,128,160,128,162,128,156,128,65,0, - 62,0,4,6,6,5,1,7,96,16,112,144,112,240,7,7, - 7,9,1,0,18,36,108,216,108,36,18,6,4,4,8,1, - 2,252,4,4,4,3,1,1,5,0,3,224,9,10,20,10, - 1,3,62,0,65,0,188,128,146,128,146,128,156,128,146,128, - 186,128,65,0,62,0,5,1,1,7,1,11,248,4,4,4, - 6,2,8,96,144,144,96,7,9,9,9,2,1,16,16,16, - 254,16,16,16,0,254,4,7,7,5,1,6,96,144,16,16, - 32,64,240,4,7,7,5,1,6,96,144,16,32,16,144,96, - 3,4,4,6,3,11,32,96,64,128,7,10,10,8,1,253, - 136,136,136,136,136,218,164,128,128,128,7,15,15,8,1,252, - 62,116,244,244,244,116,52,20,20,20,20,20,20,20,20,2, - 2,2,4,2,5,192,192,3,3,3,7,2,253,64,32,224, - 3,7,7,4,1,6,64,192,64,64,64,64,224,4,6,6, - 5,1,7,96,144,144,144,96,240,7,7,7,8,1,0,144, - 72,108,54,108,72,144,11,11,22,12,1,0,64,0,196,0, - 68,0,68,0,68,64,232,192,9,64,10,64,11,224,16,64, - 16,224,11,11,22,12,1,0,64,0,196,0,68,0,68,0, - 68,0,232,192,9,32,8,32,8,64,16,128,17,224,12,11, - 22,13,1,0,96,0,146,0,18,0,34,0,18,32,148,96, - 100,160,5,32,5,240,8,32,8,112,5,12,12,8,1,253, - 48,48,0,0,0,48,32,32,64,128,136,112,11,16,32,11, - 0,0,8,0,12,0,4,0,2,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,16,32,11,0,0,2,0,6,0,4,0,8,0, - 0,0,4,0,4,0,10,0,10,0,10,0,17,0,17,0, - 31,0,32,128,32,128,241,224,11,15,30,11,0,0,4,0, - 14,0,17,0,0,0,4,0,4,0,10,0,10,0,10,0, - 17,0,17,0,31,0,32,128,32,128,241,224,11,15,30,11, - 0,0,9,0,21,0,18,0,0,0,4,0,4,0,10,0, - 10,0,10,0,17,0,17,0,31,0,32,128,32,128,241,224, - 11,14,28,11,0,0,27,0,27,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,15,30,11,0,0,6,0,9,0,9,0,6,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,14,11,22,15,0,0,15,248,10,24, - 10,8,10,40,18,32,31,224,18,36,18,36,34,8,34,8, - 247,248,9,14,28,10,1,253,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,8,0, - 4,0,28,0,10,16,32,11,0,0,16,0,24,0,8,0, - 4,0,0,0,255,128,32,128,32,128,34,128,34,0,62,0, - 34,64,34,64,32,128,32,128,255,128,10,16,32,11,0,0, - 4,0,12,0,8,0,16,0,0,0,255,128,32,128,32,128, - 34,128,34,0,62,0,34,64,34,64,32,128,32,128,255,128, - 10,15,30,11,0,0,8,0,28,0,34,0,0,0,255,128, - 32,128,32,128,34,128,34,0,62,0,34,64,34,64,32,128, - 32,128,255,128,10,14,28,11,0,0,54,0,54,0,0,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,5,16,16,6,1,0,64,96,32,16, - 0,248,32,32,32,32,32,32,32,32,32,248,5,16,16,6, - 1,0,16,48,32,64,0,248,32,32,32,32,32,32,32,32, - 32,248,5,15,15,6,1,0,32,112,136,0,248,32,32,32, - 32,32,32,32,32,32,248,5,14,14,6,1,0,216,216,0, - 248,32,32,32,32,32,32,32,32,32,248,10,11,22,11,0, - 0,254,0,33,128,32,128,32,64,32,64,248,64,32,64,32, - 64,32,128,33,128,254,0,11,15,30,12,0,0,9,0,21, - 0,18,0,0,0,227,224,48,128,48,128,40,128,40,128,36, - 128,34,128,34,128,33,128,33,128,248,128,10,16,32,12,1, - 0,16,0,24,0,8,0,4,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,10,16,32,12,1,0,2,0,6,0,4,0,8,0,0, - 0,30,0,33,0,64,128,128,64,128,64,128,64,128,64,128, - 64,64,128,33,0,30,0,10,15,30,12,1,0,8,0,28, - 0,34,0,0,0,30,0,33,0,64,128,128,64,128,64,128, - 64,128,64,128,64,64,128,33,0,30,0,10,15,30,12,1, - 0,18,0,42,0,36,0,0,0,30,0,33,0,64,128,128, - 64,128,64,128,64,128,64,128,64,64,128,33,0,30,0,10, - 14,28,12,1,0,54,0,54,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,7,7,7,9,1,0,130,68,40,16,40,68,130,10,13, - 26,12,1,255,0,128,31,0,33,0,66,128,130,64,132,64, - 140,64,136,64,144,64,80,128,33,0,62,0,64,0,11,16, - 32,12,1,0,8,0,12,0,4,0,2,0,0,0,251,224, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128, - 17,0,14,0,11,16,32,12,1,0,2,0,6,0,4,0, - 8,0,0,0,251,224,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,17,0,14,0,11,15,30,12,1,0, - 4,0,14,0,17,0,0,0,251,224,32,128,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,17,0,14,0,11,14, - 28,12,1,0,27,0,27,0,0,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,16,32,12,0,0,2,0,6,0,4,0,8,0,0,0, - 241,224,32,128,17,0,17,0,10,0,14,0,4,0,4,0, - 4,0,4,0,31,0,9,11,22,10,0,0,248,0,32,0, - 62,0,33,0,32,128,32,128,32,128,33,0,62,0,32,0, - 248,0,6,12,12,7,1,0,48,72,72,72,72,216,72,68, - 68,68,68,216,6,12,12,7,1,0,64,96,32,16,0,112, - 136,8,120,136,136,124,6,12,12,7,1,0,16,48,32,64, - 0,112,136,8,120,136,136,124,6,11,11,7,1,0,32,112, - 136,0,112,136,8,120,136,136,124,6,11,11,7,1,0,72, - 168,144,0,112,136,8,120,136,136,124,6,10,10,7,1,0, - 216,216,0,112,136,8,120,136,136,124,6,11,11,7,1,0, - 48,72,72,48,112,136,8,120,136,136,124,10,7,14,11,1, - 0,115,128,140,64,15,192,120,0,136,0,140,64,115,128,5, - 10,10,6,1,253,112,136,128,128,128,136,112,32,16,112,5, - 12,12,6,1,0,64,96,32,16,0,112,136,248,128,128,136, - 112,5,12,12,6,1,0,16,48,32,64,0,112,136,248,128, - 128,136,112,5,11,11,6,1,0,32,112,136,0,112,136,248, - 128,128,136,112,5,10,10,6,1,0,216,216,0,112,136,248, - 128,128,136,112,4,12,12,4,0,0,128,192,64,32,0,96, - 32,32,32,32,32,112,4,12,12,4,1,0,16,48,32,64, - 0,192,64,64,64,64,64,224,5,11,11,5,0,0,32,112, - 136,0,96,32,32,32,32,32,112,5,10,10,6,0,0,216, - 216,0,96,32,32,32,32,32,112,5,12,12,6,1,0,80, - 112,224,16,16,120,136,136,136,136,136,112,7,11,11,8,1, - 0,72,168,144,0,248,68,68,68,68,68,238,5,12,12,6, - 1,0,64,96,32,16,0,112,136,136,136,136,136,112,5,12, - 12,6,1,0,16,48,32,64,0,112,136,136,136,136,136,112, - 5,11,11,6,1,0,32,112,136,0,112,136,136,136,136,136, - 112,5,11,11,6,1,0,72,168,144,0,112,136,136,136,136, - 136,112,5,10,10,6,1,0,216,216,0,112,136,136,136,136, - 136,112,9,7,14,11,1,0,8,0,8,0,0,0,255,128, - 0,0,8,0,8,0,5,11,11,6,1,254,8,16,112,152, - 168,168,168,200,112,64,128,7,12,12,8,1,0,64,96,32, - 16,0,204,68,68,68,68,68,62,7,12,12,8,1,0,8, - 24,16,32,0,204,68,68,68,68,68,62,7,11,11,8,1, - 0,16,56,68,0,204,68,68,68,68,68,62,7,10,10,8, - 1,0,108,108,0,204,68,68,68,68,68,62,8,15,15,8, - 1,253,4,12,8,16,0,231,36,36,36,24,24,24,16,144, - 224,6,15,15,7,1,253,192,64,64,64,64,120,68,68,68, - 68,68,120,64,64,224,8,13,13,8,1,253,54,54,0,231, - 36,36,36,24,24,24,16,144,224}; -/* - Fontname: cursor - Copyright: These glyphs are unencumbered - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=16 x= 1 y= 0 dx=17 dy= 0 ascent=15 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-15 y=-16 dx= 0 dy= 0 - Pure Font ascent =15 descent=-8 - X Font ascent =16 descent=-16 - Max Font ascent =15 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursor[5286] U8G_SECTION(".progmem.u8g_font_cursor") = { - 0,31,31,241,240,15,4,101,8,211,32,255,248,15,240,16, - 240,14,14,28,17,250,248,224,28,240,60,248,124,124,248,63, - 240,31,224,15,192,15,192,31,224,63,240,124,248,248,124,240, - 60,224,28,16,16,32,17,249,247,240,15,248,31,252,63,254, - 127,127,254,63,252,31,248,15,240,15,240,31,248,63,252,127, - 254,254,127,252,63,248,31,240,15,14,14,28,17,243,242,0, - 12,0,60,0,248,3,248,15,240,63,240,3,224,7,224,14, - 192,28,192,56,128,112,128,224,0,64,0,16,16,32,17,242, - 241,0,7,0,31,0,127,1,254,7,254,31,252,63,252,63, - 248,7,248,15,240,31,240,62,224,124,224,248,64,112,0,32, - 0,8,10,10,17,253,255,255,0,255,24,24,24,24,90,60, - 24,10,12,24,17,252,254,255,192,255,192,255,192,255,192,255, - 192,30,0,30,0,127,128,127,128,127,128,63,0,30,0,8, - 10,10,17,253,255,24,60,90,24,24,24,24,255,0,255,10, - 12,24,17,252,254,12,0,30,0,127,128,127,128,127,128,30, - 0,30,0,255,192,255,192,255,192,255,192,255,192,16,8,16, - 17,242,251,1,0,7,192,136,96,255,255,0,24,0,32,0, - 64,255,192,16,9,18,17,242,251,7,0,15,192,159,224,255, - 255,255,255,255,255,255,248,255,224,255,192,13,14,28,17,250, - 248,226,56,34,32,34,32,34,32,255,248,162,40,162,40,162, - 40,162,40,255,248,34,32,34,32,34,32,226,56,15,16,32, - 17,249,247,251,190,251,190,251,190,59,184,255,254,255,254,255, - 254,251,190,251,190,255,254,255,254,255,254,59,184,251,190,251, - 190,251,190,14,14,28,17,0,255,192,0,192,0,196,16,196, - 32,196,64,196,128,197,0,198,0,199,240,192,0,192,0,192, - 0,255,252,255,252,16,16,32,17,255,254,240,0,240,0,247, - 12,247,28,247,56,247,112,247,224,247,192,247,252,247,252,247, - 252,240,0,255,255,255,255,255,255,255,255,14,14,28,17,243, - 255,0,12,0,12,32,140,16,140,8,140,4,140,2,140,1, - 140,63,140,0,12,0,12,0,12,255,252,255,252,16,16,32, - 17,242,254,0,15,0,15,48,239,56,239,28,239,14,239,7, - 239,3,239,63,239,63,239,63,239,0,15,255,255,255,255,255, - 255,255,255,13,14,28,17,250,255,2,0,2,0,2,0,2, - 0,2,0,2,0,34,32,18,64,10,128,7,0,2,0,0, - 0,255,248,255,248,15,16,32,17,249,254,3,128,3,128,3, - 128,3,128,3,128,3,128,51,152,59,184,31,240,15,224,7, - 192,3,128,255,254,255,254,255,254,255,254,14,10,20,17,249, - 255,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,16,12,24,17,248,254,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,255,255,255,255,255, - 255,255,255,15,16,32,17,248,248,255,254,128,0,191,254,160, - 2,175,250,168,10,171,234,170,42,170,170,171,170,168,42,175, - 234,160,10,191,250,128,2,255,254,16,16,32,17,248,248,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 14,28,17,252,242,12,0,12,0,30,0,30,0,63,0,63, - 0,127,128,127,128,204,192,140,64,12,0,12,0,12,0,12, - 0,12,16,32,17,251,241,15,0,15,0,31,128,31,128,63, - 192,63,192,127,224,127,224,255,240,255,240,255,240,239,112,15, - 0,15,0,15,0,15,0,14,14,28,17,249,249,7,128,31, - 224,63,240,120,120,112,56,224,28,224,28,224,28,224,28,112, - 56,120,120,63,240,31,224,7,128,16,16,32,17,248,248,7, - 224,31,248,63,252,127,254,127,254,252,63,248,31,248,31,248, - 31,248,31,252,63,127,254,127,254,63,252,31,248,7,224,14, - 16,32,17,250,243,63,240,103,152,200,204,147,36,158,36,136, - 68,199,140,127,248,83,40,83,40,83,40,87,168,211,44,240, - 60,255,252,255,252,15,16,32,17,250,243,127,248,239,156,219, - 238,183,182,191,246,159,102,207,206,255,252,215,172,215,172,215, - 172,223,236,215,174,243,62,255,254,255,254,15,16,32,17,249, - 249,31,240,32,8,96,6,80,26,79,226,192,2,192,2,64, - 2,64,2,89,26,106,170,235,170,218,154,64,2,64,2,63, - 252,16,16,32,17,249,249,31,240,63,248,127,255,127,255,255, - 255,255,255,255,255,255,255,127,255,127,255,255,255,255,255,255, - 255,255,255,127,255,63,252,16,15,30,17,249,248,2,128,2, - 128,2,128,2,128,2,128,2,128,254,255,0,0,254,255,2, - 128,2,128,2,128,2,128,2,128,2,128,16,16,32,17,249, - 247,7,192,7,192,7,192,7,192,7,192,255,255,255,255,255, - 255,255,255,255,255,7,192,7,192,7,192,7,192,7,192,7, - 192,16,15,30,17,249,248,66,132,162,138,82,148,42,168,22, - 208,10,160,253,127,2,128,253,127,10,160,22,208,42,168,82, - 148,162,138,66,132,16,15,30,17,249,248,102,204,182,219,222, - 246,110,236,54,216,250,191,252,127,1,0,252,127,250,191,54, - 216,110,236,222,246,182,219,102,204,16,15,30,17,249,248,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,254,255,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,16,16,32, - 17,249,247,3,128,3,128,3,128,3,128,3,128,3,128,255, - 255,255,255,255,255,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,15,15,30,17,249,248,2,128,6,192,10,160,18, - 144,34,136,66,132,254,254,0,0,254,254,66,132,34,136,18, - 144,10,160,6,192,2,128,16,16,32,17,249,247,7,192,15, - 224,31,240,59,184,115,156,227,142,255,255,254,255,255,255,227, - 142,115,156,59,184,31,240,15,224,7,192,3,128,10,10,20, - 17,251,251,30,0,127,128,127,128,255,192,255,192,255,192,255, - 192,127,128,127,128,30,0,12,12,24,17,250,250,31,128,127, - 224,127,224,255,240,255,240,255,240,255,240,255,240,255,240,127, - 224,127,224,31,128,12,12,24,17,250,249,255,240,128,16,128, - 16,128,16,128,16,134,16,134,16,128,16,128,16,128,16,128, - 16,255,240,14,14,28,17,249,248,255,252,255,252,255,252,224, - 28,224,28,231,156,231,156,231,156,231,156,224,28,224,28,255, - 252,255,252,255,252,10,14,28,17,251,249,12,0,30,0,63, - 0,109,128,204,192,12,0,12,0,12,0,12,0,204,192,109, - 128,63,0,30,0,12,0,12,16,32,17,250,248,15,0,31, - 128,63,192,127,224,255,240,255,240,255,240,15,0,15,0,255, - 240,255,240,255,240,127,224,63,192,31,128,15,0,15,15,30, - 17,242,241,0,2,0,12,0,60,0,248,3,248,15,240,63, - 240,1,224,2,224,4,192,8,192,16,128,32,128,64,0,128, - 0,15,16,32,17,242,240,0,6,0,30,0,126,1,252,7, - 248,31,248,127,240,127,240,7,224,15,224,29,192,57,192,113, - 128,225,128,192,0,128,0,15,15,30,17,242,241,0,2,0, - 12,0,60,0,248,3,248,0,112,0,176,1,32,2,32,4, - 0,8,0,16,0,32,0,64,0,128,0,15,15,30,17,242, - 241,0,6,0,30,0,124,1,252,7,248,7,248,1,240,3, - 240,7,96,14,64,28,0,56,0,112,0,224,0,192,0,12, - 12,24,17,250,249,255,240,137,16,153,144,176,208,224,112,134, - 16,134,16,224,112,176,208,153,144,137,16,255,240,14,14,28, - 17,249,248,255,252,255,252,207,204,223,236,252,252,251,124,247, - 188,247,188,251,124,252,252,223,236,207,204,255,252,255,252,14, - 14,28,17,250,248,143,192,223,224,248,48,144,16,152,0,252, - 0,0,0,0,0,0,252,0,100,32,36,48,124,31,236,15, - 196,16,16,32,17,249,247,199,224,239,240,255,248,255,252,252, - 28,255,12,255,0,255,0,0,255,0,255,48,127,56,63,63, - 255,31,255,15,247,7,227,14,14,28,17,249,249,3,0,7, - 128,15,192,3,0,35,16,99,24,255,252,255,252,99,24,35, - 16,3,0,15,192,7,128,3,0,16,16,32,17,248,248,3, - 192,3,224,7,224,15,240,23,232,59,220,255,255,255,255,255, - 255,255,255,59,220,23,232,15,240,7,224,3,192,3,192,16, - 15,30,17,242,243,0,120,0,112,128,51,159,176,255,240,254, - 48,252,48,96,56,0,240,31,224,8,0,8,0,8,0,8, - 0,30,0,16,16,32,17,242,243,0,252,0,252,192,255,255, - 255,255,255,255,252,255,252,255,252,255,252,255,252,127,248,31, - 240,28,0,28,0,63,0,63,0,16,16,32,17,254,240,63, - 0,16,128,200,64,234,160,200,32,203,160,248,60,56,63,8, - 39,8,39,9,47,9,39,9,32,17,16,33,8,62,248,16, - 16,32,17,254,240,63,0,223,128,239,192,255,224,239,224,239, - 252,255,254,255,255,63,239,15,239,15,255,15,239,15,231,31, - 240,63,248,62,248,13,16,32,17,244,240,0,24,0,120,1, - 224,3,192,7,128,15,192,31,224,95,192,255,224,191,224,15, - 192,15,128,148,0,196,0,104,0,48,0,13,16,32,17,244, - 240,0,56,0,248,3,240,7,224,15,192,31,224,127,240,255, - 240,255,240,255,240,255,224,255,192,255,128,254,0,252,0,120, - 0,15,14,28,17,0,242,127,128,128,64,126,32,16,16,14, - 16,16,16,14,40,16,68,12,130,3,4,2,72,1,16,0, - 160,0,64,16,16,32,17,0,241,127,128,255,192,255,224,255, - 240,127,248,31,248,63,248,31,252,63,254,31,255,15,254,7, - 252,3,248,1,240,0,224,0,64,15,14,28,17,250,250,62, - 248,99,140,193,6,128,2,128,2,128,2,128,2,192,6,96, - 12,48,24,24,48,12,96,6,192,3,128,15,14,28,17,250, - 250,62,248,127,252,227,142,193,6,192,6,192,6,194,134,225, - 14,112,28,56,56,28,112,15,224,7,192,3,128,16,16,32, - 17,248,248,255,255,213,85,170,171,213,85,160,11,208,5,160, - 11,208,5,160,11,208,5,160,11,208,5,170,171,213,85,170, - 171,255,255,16,16,32,17,248,248,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,14,14,28,17,249,248,127, - 248,63,240,159,228,207,204,231,156,243,60,255,252,255,252,243, - 60,231,156,207,204,159,228,63,240,127,248,16,16,32,17,248, - 247,63,252,127,254,127,254,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,127,254,127,254,63, - 252,8,14,14,17,0,242,128,192,224,240,248,252,254,255,248, - 216,140,12,6,6,10,16,32,17,255,241,192,0,224,0,240, - 0,248,0,252,0,254,0,255,0,255,128,255,192,255,192,254, - 0,239,0,207,0,7,128,7,128,3,0,14,13,26,17,0, - 249,192,0,192,0,193,0,194,0,196,0,200,0,223,252,200, - 0,196,0,194,0,193,0,192,0,192,0,16,15,30,17,255, - 248,240,0,240,0,240,192,241,192,243,128,247,0,255,255,255, - 255,255,255,247,0,243,128,241,192,240,192,240,0,240,0,10, - 14,28,17,0,249,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,12,16,32,17,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,240,0,240,0,240, - 0,240,0,240,0,240,0,16,16,32,17,248,248,128,3,127, - 253,127,253,68,69,69,85,69,85,69,85,69,85,68,69,127, - 253,127,253,127,253,127,253,127,253,127,253,128,3,15,16,32, - 17,248,248,127,252,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,127,252,10,10,20,17,0,255,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,12,12,24, - 17,255,254,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,10,10,20,17,247, - 255,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,255,192,255,192,12,12,24,17,246,254,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,255,240,255,240,255, - 240,255,240,16,16,32,17,242,245,3,128,30,240,2,128,129, - 0,67,135,36,75,29,112,5,64,4,64,2,128,4,64,9, - 32,18,144,20,80,120,60,248,63,16,16,32,17,242,245,31, - 224,63,240,63,248,195,130,231,199,127,255,63,251,31,240,7, - 224,7,192,15,224,31,240,63,248,126,252,252,127,252,127,16, - 16,32,17,248,248,128,3,127,253,127,253,68,69,84,85,84, - 85,84,85,84,85,68,69,127,253,127,253,127,253,127,253,127, - 253,127,253,128,3,15,16,32,17,248,248,127,252,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,127,252,15,14,28,17,252, - 243,7,0,12,0,6,0,3,0,127,248,128,4,179,54,179, - 54,179,54,128,6,128,6,96,28,24,96,7,128,16,16,32, - 17,252,241,15,128,30,0,15,0,7,0,127,248,255,252,255, - 255,255,255,255,255,255,255,255,255,255,255,63,247,31,224,15, - 192,7,128,11,16,32,17,246,255,112,0,136,0,140,0,74, - 0,122,0,33,0,17,0,16,128,8,128,12,64,4,64,2, - 32,1,224,0,224,0,96,0,32,13,16,32,17,245,255,252, - 0,254,0,255,0,127,0,63,128,63,128,31,192,15,192,15, - 224,7,224,7,240,3,248,1,248,0,248,0,120,0,56,15, - 16,32,17,249,252,7,128,15,192,31,224,51,48,51,48,31, - 224,15,192,7,128,135,132,135,134,67,8,56,112,7,128,31, - 226,240,62,128,4,16,16,32,17,249,252,15,192,31,224,63, - 240,127,248,127,248,63,240,31,224,143,193,143,199,207,207,247, - 156,120,120,7,128,127,227,255,255,240,62,10,10,20,17,252, - 251,12,0,12,0,12,0,12,0,255,192,255,192,12,0,12, - 0,12,0,12,0,12,12,24,17,251,250,15,0,15,0,15, - 0,15,0,255,240,255,240,255,240,255,240,15,0,15,0,15, - 0,15,0,9,15,30,17,252,248,62,0,127,0,227,128,193, - 128,225,128,99,128,7,0,30,0,28,0,20,0,20,0,119, - 0,54,0,28,0,8,0,11,16,32,17,251,248,31,0,63, - 128,127,192,255,224,241,224,249,224,123,224,63,192,31,128,31, - 0,31,0,63,128,127,192,63,128,31,0,14,0,8,14,14, - 17,249,242,1,3,7,15,31,63,127,255,31,27,49,48,96, - 96,10,16,32,17,248,241,0,192,1,192,3,192,7,192,15, - 192,31,192,63,192,127,192,255,192,255,192,31,192,61,192,60, - 192,120,0,120,0,48,0,14,13,26,17,243,249,0,12,0, - 12,2,12,1,12,0,140,0,76,255,236,0,76,0,140,1, - 12,2,12,0,12,0,12,16,15,30,17,242,248,0,15,0, - 15,3,15,3,143,1,207,0,239,255,255,255,255,255,255,0, - 239,1,207,3,143,3,15,0,15,0,15,10,14,28,17,247, - 249,0,192,0,192,0,192,0,192,0,192,0,192,255,192,255, - 192,0,192,0,192,0,192,0,192,0,192,0,192,12,16,32, - 17,246,248,0,240,0,240,0,240,0,240,0,240,0,240,255, - 240,255,240,255,240,255,240,0,240,0,240,0,240,0,240,0, - 240,0,240,16,16,32,17,248,248,128,3,127,253,127,253,68, - 69,85,69,85,69,85,69,85,69,68,69,127,253,127,253,127, - 253,127,253,127,253,127,253,128,3,15,16,32,17,248,248,127, - 252,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,127,252,14, - 14,28,17,250,248,255,252,128,68,128,68,128,68,255,196,136, - 68,136,68,136,68,136,68,143,252,136,4,136,4,136,4,255, - 252,16,16,32,17,249,247,255,255,255,255,255,255,224,119,255, - 247,255,247,255,247,238,119,238,119,239,255,239,255,239,255,238, - 7,255,255,255,255,255,255,12,13,26,17,250,242,1,0,1, - 0,5,128,5,128,13,128,13,192,29,192,29,192,61,224,61, - 224,125,224,125,240,248,224,16,16,32,17,248,240,0,192,0, - 224,1,224,3,240,3,240,7,240,7,248,15,248,15,248,31, - 252,31,252,63,252,63,255,127,255,255,248,127,224,7,15,15, - 17,253,0,40,40,40,40,40,40,40,40,40,40,40,254,124, - 56,16,9,16,32,17,252,255,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,255,128,255,128, - 127,0,62,0,28,0,8,0,15,7,14,17,249,252,16,16, - 48,24,127,252,240,30,127,252,48,24,16,16,15,9,18,17, - 249,251,24,48,56,56,127,252,255,254,255,254,255,254,127,252, - 56,56,24,48,15,7,14,17,1,252,16,0,48,0,127,254, - 240,0,127,254,48,0,16,0,16,9,18,17,0,251,12,0, - 28,0,63,255,127,255,255,255,127,255,63,255,28,0,12,0, - 15,7,14,17,241,252,0,16,0,24,255,252,0,30,255,252, - 0,24,0,16,16,9,18,17,241,251,0,48,0,56,255,252, - 255,254,255,255,255,254,255,252,0,56,0,48,7,15,15,17, - 253,240,16,56,124,254,40,40,40,40,40,40,40,40,40,40, - 40,9,16,32,17,252,240,8,0,28,0,62,0,127,0,255, - 128,255,128,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,7,15,15,17,253,248,16,56,124, - 254,40,40,40,40,40,40,40,254,124,56,16,9,15,30,17, - 252,248,28,0,62,0,127,0,255,128,255,128,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,127,0,62,0,28,0, - 15,16,32,17,246,240,0,32,0,112,0,248,1,222,5,222, - 9,222,17,222,17,222,17,222,17,222,49,222,113,222,253,222, - 24,136,0,120,0,48,16,16,32,17,245,240,0,56,0,124, - 0,254,0,255,6,255,14,255,30,255,30,255,30,255,30,255, - 62,255,126,255,254,255,126,254,12,126,0,60,14,14,28,17, - 249,249,255,0,128,0,128,0,128,0,143,192,136,64,136,68, - 136,68,8,68,15,196,0,36,0,20,0,12,3,252,16,16, - 32,17,248,248,255,192,255,192,255,192,224,0,239,240,239,240, - 239,247,238,119,238,119,239,247,15,247,15,255,0,31,3,255, - 3,255,3,255,16,16,32,17,250,247,32,16,16,32,16,32, - 8,64,8,64,135,135,103,152,31,224,31,224,103,152,135,135, - 8,64,8,64,16,32,16,32,32,16,16,16,32,17,250,247, - 96,24,48,48,16,32,24,96,143,193,207,207,111,220,63,240, - 63,224,111,248,207,207,143,193,24,64,24,96,48,48,96,24, - 11,16,32,17,247,242,0,96,1,0,52,96,121,0,104,96, - 252,0,132,0,228,0,164,0,228,0,164,0,228,0,228,0, - 132,0,132,0,252,0,12,16,32,17,246,242,0,48,24,176, - 62,176,62,176,126,176,255,0,255,0,255,0,255,0,255,0, - 255,0,255,0,255,0,255,0,255,0,255,0,15,16,32,17, - 249,247,1,0,2,128,2,128,2,128,4,64,4,64,4,64, - 57,56,192,6,56,56,9,32,18,144,36,72,40,40,48,24, - 32,8,16,16,32,17,249,247,1,0,3,128,3,128,6,192, - 6,192,12,96,28,120,249,62,192,7,248,62,57,56,51,152, - 102,204,108,108,120,60,112,28,15,13,26,17,249,249,3,128, - 15,224,28,112,48,24,96,12,193,6,194,134,193,6,96,12, - 48,24,28,112,15,224,3,128,16,14,28,17,249,249,7,192, - 15,224,31,240,60,120,112,28,225,14,195,135,198,199,195,135, - 225,14,112,28,60,120,31,240,7,192,13,13,26,16,250,249, - 2,0,2,0,2,0,2,0,2,0,2,0,255,248,2,0, - 2,0,2,0,2,0,2,0,2,0,15,15,30,16,249,248, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,3,128,3,128,3,128,3,128,3,128,3,128,14,14, - 28,17,0,242,192,0,240,0,124,0,127,0,63,192,63,240, - 31,0,31,0,12,128,12,64,4,32,4,16,0,8,0,4, - 16,16,32,17,255,241,224,0,248,0,254,0,127,128,127,224, - 63,252,63,252,31,252,31,192,15,224,15,112,7,56,7,28, - 7,14,0,7,0,3,14,14,28,17,0,242,255,252,255,252, - 192,0,192,0,192,0,199,240,198,0,197,0,196,128,196,64, - 196,32,196,16,192,0,192,0,16,16,32,17,255,241,255,255, - 255,255,255,255,255,255,240,0,247,252,247,252,247,252,247,192, - 247,224,247,112,247,56,247,28,247,12,240,0,240,0,14,14, - 28,17,243,242,255,252,255,252,0,12,0,12,0,12,63,140, - 1,140,2,140,4,140,8,140,16,140,32,140,0,12,0,12, - 16,16,32,17,242,241,255,255,255,255,255,255,255,255,0,15, - 63,239,63,239,63,239,3,239,7,239,14,239,28,239,56,239, - 48,239,0,15,0,15,13,14,28,17,250,242,255,248,255,248, - 0,0,2,0,7,0,10,128,18,64,34,32,2,0,2,0, - 2,0,2,0,2,0,2,0,15,16,32,17,249,241,255,254, - 255,254,255,254,255,254,3,128,7,192,15,224,31,240,59,184, - 51,152,3,128,3,128,3,128,3,128,3,128,3,128,14,10, - 20,17,249,246,255,252,255,252,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,16,12,24,17,248,245,255,255, - 255,255,255,255,255,255,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,7,16,16,17,253,240,16,0,56,124, - 254,238,254,124,56,16,186,214,146,130,130,130,9,16,32,17, - 252,240,28,0,28,0,62,0,127,0,255,128,255,128,255,128, - 127,0,62,0,93,0,255,128,255,128,255,128,235,128,235,128, - 227,128,10,10,20,17,0,246,255,192,255,192,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,12,12,24,17, - 255,245,255,240,255,240,255,240,255,240,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,14,14,28,17,249,244, - 17,32,4,80,147,76,79,144,50,96,194,24,2,0,2,0, - 2,0,2,0,2,0,2,128,2,128,1,0,16,16,32,17, - 248,242,23,110,223,251,191,252,127,255,255,252,255,255,243,158, - 3,128,3,128,3,128,3,128,3,224,3,224,3,224,3,224, - 1,192,10,10,20,17,247,246,255,192,255,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,12,12,24,17, - 246,245,255,240,255,240,255,240,255,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,16,16,32,17,241,249, - 31,224,31,224,31,224,63,240,97,24,193,12,129,7,131,135, - 131,135,132,7,200,12,96,24,63,240,31,224,31,224,31,224, - 16,16,32,17,241,249,63,240,63,240,63,240,127,248,255,252, - 255,255,255,255,255,255,255,255,255,255,255,255,255,252,127,248, - 63,240,63,240,63,240,7,14,14,10,253,249,238,56,16,16, - 16,16,16,16,16,16,16,16,56,238,9,16,32,10,252,248, - 247,128,255,128,255,128,62,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,255,128,247,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; -/* - Fontname: cursor - Copyright: These - Capital A Height: 0, '1' Height: 0 - Calculated Max Values w=16 h=16 x= 0 y= 0 dx=17 dy= 0 ascent= 7 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-14 y=-16 dx= 0 dy= 0 - Pure Font ascent = 0 descent= 0 - X Font ascent = 0 descent= 0 - Max Font ascent = 7 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursorr[492] U8G_SECTION(".progmem.u8g_font_cursorr") = { - 0,31,31,241,240,0,1,6,0,0,32,80,0,7,240,0, - 0,255,255,14,14,28,17,243,242,0,12,0,60,0,248,3, - 248,15,240,63,240,3,224,7,224,14,192,28,192,56,128,112, - 128,224,0,64,0,16,16,32,17,242,241,0,7,0,31,0, - 127,1,254,7,254,31,252,63,252,63,248,7,248,15,240,31, - 240,62,224,124,224,248,64,112,0,32,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,10,14,28, - 17,252,242,12,0,12,0,30,0,30,0,63,0,63,0,127, - 128,127,128,204,192,140,64,12,0,12,0,12,0,12,0,12, - 16,32,17,251,241,15,0,15,0,31,128,31,128,63,192,63, - 192,127,224,127,224,255,240,255,240,255,240,239,112,15,0,15, - 0,15,0,15,0,255,255,255,255,255,255,16,15,30,17,249, - 248,2,128,2,128,2,128,2,128,2,128,2,128,254,255,0, - 0,254,255,2,128,2,128,2,128,2,128,2,128,2,128,16, - 16,32,17,249,247,7,192,7,192,7,192,7,192,7,192,255, - 255,255,255,255,255,255,255,255,255,7,192,7,192,7,192,7, - 192,7,192,7,192,255,255,16,15,30,17,249,248,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,254,255,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,17,249, - 247,3,128,3,128,3,128,3,128,3,128,3,128,255,255,255, - 255,255,255,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,255,255,255,255,255,255,255,255,15,15,30,17,242,241,0, - 2,0,12,0,60,0,248,3,248,15,240,63,240,1,224,2, - 224,4,192,8,192,16,128,32,128,64,0,128,0,15,16,32, - 17,242,240,0,6,0,30,0,126,1,252,7,248,31,248,127, - 240,127,240,7,224,15,224,29,192,57,192,113,128,225,128,192, - 0,128,0,15,15,30,17,242,241,0,2,0,12,0,60,0, - 248,3,248,0,112,0,176,1,32,2,32,4,0,8,0,16, - 0,32,0,64,0,128,0,15,15,30,17,242,241,0,6,0, - 30,0,124,1,252,7,248,7,248,1,240,3,240,7,96,14, - 64,28,0,56,0,112,0,224,0,192,0,255}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0[1702] U8G_SECTION(".progmem.u8g_font_fixed_v0") = { - 1,7,9,0,254,7,1,46,2,94,32,255,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2, - 87,103,48,0,248,32,32,32,248,2,87,103,32,112,168,160, - 168,112,32,2,87,103,64,64,64,240,64,72,120,3,85,101, - 136,112,80,112,136,2,87,103,136,136,80,248,32,248,32,34, - 23,103,128,128,128,0,128,128,128,2,87,103,120,128,120,136, - 240,8,240,5,81,97,248,2,87,103,112,136,168,200,168,136, - 112,2,87,103,112,8,120,136,120,0,248,4,83,99,72,144, - 72,4,82,98,248,8,255,2,87,103,112,136,248,200,200,136, - 112,8,81,97,248,20,51,99,64,160,64,2,87,103,32,32, - 248,32,32,0,248,255,255,255,255,255,255,255,255,255,4,83, - 99,144,72,144,255,255,255,255,2,87,103,64,32,112,136,248, - 136,136,2,87,103,16,32,112,136,248,136,136,2,87,103,32, - 80,112,136,248,136,136,2,87,103,72,176,112,136,248,136,136, - 2,87,103,80,0,112,136,248,136,136,2,87,103,112,0,112, - 136,248,136,136,2,87,103,120,160,160,240,160,160,184,0,89, - 105,112,136,128,128,128,136,112,32,96,2,87,103,64,32,248, - 128,224,128,248,2,87,103,16,32,248,128,224,128,248,2,87, - 103,32,80,248,128,224,128,248,2,87,103,80,0,248,128,224, - 128,248,2,87,103,64,32,248,32,32,32,248,2,87,103,16, - 32,248,32,32,32,248,2,87,103,32,80,248,32,32,32,248, - 2,87,103,80,0,248,32,32,32,248,2,87,103,240,136,136, - 232,136,136,240,2,87,103,72,176,136,200,168,152,136,2,87, - 103,64,32,112,136,136,136,112,2,87,103,16,32,112,136,136, - 136,112,2,87,103,32,80,112,136,136,136,112,2,87,103,72, - 176,112,136,136,136,112,2,87,103,80,0,112,136,136,136,112, - 20,51,99,160,64,160,2,87,103,112,136,152,168,200,136,112, - 2,87,103,64,32,136,136,136,136,112,2,87,103,16,32,136, - 136,136,136,112,2,87,103,32,80,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,2,87,103,16,32,136,136,80, - 32,32,2,87,103,128,128,240,136,240,128,128,0,89,105,240, - 136,136,176,136,136,176,128,128,2,87,103,64,32,112,8,120, - 136,120,2,87,103,16,32,112,8,120,136,120,2,87,103,32, - 80,112,8,120,136,120,2,87,103,72,176,112,8,120,136,120, - 2,87,103,80,0,112,8,120,136,120,2,87,103,48,0,112, - 8,120,136,120,2,85,101,240,40,120,160,120,0,87,103,112, - 136,128,136,112,32,96,2,87,103,64,32,112,136,248,128,120, - 2,87,103,16,32,112,136,248,128,120,2,87,103,32,80,112, - 136,248,128,120,2,87,103,80,0,112,136,248,128,120,2,87, - 103,64,32,248,32,32,32,248,2,87,103,16,32,248,32,32, - 32,248,2,87,103,32,80,248,32,32,32,248,2,87,103,80, - 0,248,32,32,32,248,2,87,103,8,56,8,120,136,136,120, - 2,87,103,72,176,176,200,136,136,136,2,87,103,64,32,112, - 136,136,136,112,2,87,103,16,32,112,136,136,136,112,2,87, - 103,32,80,112,136,136,136,112,2,87,103,72,176,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,112,152,168,200,112,2,87,103,64, - 32,136,136,136,136,112,2,87,103,16,32,136,136,136,136,112, - 2,87,103,32,80,136,136,136,136,112,2,87,103,80,0,136, - 136,136,136,112,0,89,105,16,32,136,136,136,136,120,8,112, - 2,87,103,128,128,240,136,240,128,128,0,89,105,80,0,136, - 136,136,136,120,8,112}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 5 h= 7 x= 1 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[159] U8G_SECTION(".progmem.u8g_font_fixed_v0n") = { - 1,7,9,0,254,7,0,0,0,0,42,57,0,7,0,7, - 0,2,87,103,32,168,112,32,112,168,32,3,85,101,32,32, - 248,32,32,18,34,98,64,128,5,81,97,248,18,18,98,128, - 128,2,87,103,8,16,16,32,64,64,128,2,87,103,112,136, - 136,136,136,136,112,2,87,103,32,96,32,32,32,32,248,2, - 87,103,112,136,8,16,32,64,248,2,87,103,240,8,8,48, - 8,8,240,2,87,103,16,144,144,248,16,16,16,2,87,103, - 248,128,128,240,8,8,240,2,87,103,112,128,128,240,136,136, - 112,2,87,103,248,8,8,8,8,8,8,2,87,103,112,136, - 136,112,136,136,112,2,87,103,112,136,136,248,8,8,112}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[878] U8G_SECTION(".progmem.u8g_font_fixed_v0r") = { - 1,7,9,0,254,7,1,46,2,94,32,127,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO8859-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=10 x= 4 y=10 dx= 8 dy= 0 ascent=12 len=10 - Font Bounding box w= 7 h=12 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =10 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[1042] U8G_SECTION(".progmem.u8g_font_freedoomr10r") = { - 0,7,12,0,0,10,1,113,3,88,32,127,1,12,0,12, - 0,0,0,0,7,0,1,0,0,0,7,0,1,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,3,10,10,7,0,2,96,128,128,128,128,128,128,128,128, - 96,3,10,10,7,3,2,192,32,32,32,32,32,32,32,32, - 192,5,5,5,8,1,7,168,112,32,112,168,7,7,7,8, - 0,4,16,16,16,254,16,16,16,2,2,2,7,2,10,64, - 128,7,1,1,8,0,7,254,2,2,2,7,2,2,192,192, - 7,10,10,8,0,2,2,4,4,8,16,16,32,64,64,128, - 6,10,10,7,0,2,252,132,132,132,132,132,132,132,132,252, - 2,10,10,7,4,2,192,64,64,64,64,64,64,64,64,64, - 6,10,10,7,0,2,252,4,4,4,4,252,128,128,128,252, - 6,10,10,7,0,2,252,4,4,4,60,4,4,4,4,252, - 6,10,10,7,0,2,132,132,132,132,132,252,4,4,4,4, - 6,10,10,7,0,2,252,128,128,128,252,4,4,4,4,252, - 6,10,10,7,0,2,252,128,128,128,252,132,132,132,132,252, - 6,10,10,7,0,2,252,4,4,4,4,4,4,4,4,4, - 6,10,10,7,0,2,252,132,132,132,252,132,132,132,132,252, - 6,10,10,7,0,2,252,132,132,132,252,4,4,4,4,252, - 2,7,7,7,2,2,192,192,0,0,0,192,192,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,7,10,10,8,0,2,254,130,130,130,130,254,130,130,130, - 130,7,10,10,8,0,2,254,130,130,130,252,130,130,130,130, - 254,7,10,10,8,0,2,254,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,252,130,130,130,130,130,130,130,130, - 252,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 254,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 128,7,10,10,8,0,2,254,128,128,128,158,130,130,130,130, - 254,7,10,10,8,0,2,130,130,130,130,254,130,130,130,130, - 130,1,10,10,8,3,2,128,128,128,128,128,128,128,128,128, - 128,7,10,10,8,0,2,30,2,2,2,2,2,130,130,130, - 124,7,10,10,8,0,2,130,132,136,144,224,160,144,136,132, - 130,7,10,10,8,0,2,128,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,130,198,170,146,130,130,130,130,130, - 130,7,10,10,8,0,2,194,194,162,162,146,146,138,138,134, - 134,7,10,10,8,0,2,124,130,130,130,130,130,130,130,130, - 124,7,10,10,8,0,2,254,130,130,130,254,128,128,128,128, - 128,7,10,10,8,0,2,120,132,132,132,132,132,132,132,132, - 126,7,10,10,8,0,2,254,130,130,130,254,160,144,136,132, - 130,7,10,10,8,0,2,254,128,128,128,128,254,2,2,2, - 254,7,9,9,8,0,3,254,16,16,16,16,16,16,16,16, - 7,10,10,8,0,2,130,130,130,130,130,130,130,130,130,254, - 7,10,10,8,0,2,130,130,130,68,68,108,40,40,16,16, - 7,10,10,8,0,2,130,130,130,130,130,146,146,170,170,198, - 7,10,10,8,0,2,130,68,68,40,16,16,40,68,68,130, - 7,10,10,8,0,2,130,130,130,130,254,16,16,16,16,16, - 7,10,10,8,0,2,254,2,6,12,24,48,96,192,128,254, - 4,10,10,7,0,2,240,128,128,128,128,128,128,128,128,240, - 6,10,10,7,0,2,128,64,64,32,32,16,16,8,8,4, - 4,10,10,7,2,2,240,16,16,16,16,16,16,16,16,240, - 5,3,3,7,1,9,32,80,136,6,1,1,7,0,2,252, - 2,2,2,7,2,10,128,64,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 7 y=13 dx=19 dy= 0 ascent=26 len=72 - Font Bounding box w=18 h=26 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[943] U8G_SECTION(".progmem.u8g_font_freedoomr25n") = { - 0,18,26,0,0,24,3,112,3,144,32,127,0,26,0,24, - 0,0,0,0,11,0,0,255,255,255,255,255,255,255,255,255, - 255,17,16,48,19,1,6,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,7,8,8,11,3,2,62,62,62, - 62,62,240,240,240,9,2,4,11,1,13,255,128,255,128,5, - 5,5,11,5,2,248,248,248,248,248,255,17,24,72,19,1, - 2,255,255,128,255,255,128,192,3,128,192,3,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,192,3,128,192,3,128, - 255,255,128,255,255,128,255,255,128,6,24,24,19,7,2,252, - 252,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,17,24,72,19,1,2,255,255,128, - 255,255,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,255,255, - 128,255,255,128,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,255,255,128,255, - 255,128,255,255,128,17,24,72,19,1,2,255,255,128,255,255, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,0,3,128,0,3,128,31,255,128,31, - 255,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,255,255,128,255,255,128, - 255,255,128,17,24,72,19,1,2,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,17, - 24,72,19,1,2,255,255,128,255,255,128,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,255,255,128,255,255,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,255,255,128,255,255,128,255,255,128,16,24,48, - 19,2,2,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,17,24,72,19,1,2,255,255,128,255,255,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,255,255, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,5, - 16,16,11,5,2,248,248,248,248,248,0,0,0,0,0,0, - 248,248,248,248,248,7,16,16,11,3,2,62,62,62,62,62, - 0,0,0,62,62,62,62,62,240,240,240,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 4 y=10 dx=17 dy= 0 ascent=17 len=34 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11[3948] U8G_SECTION(".progmem.u8g_font_fub11") = { - 0,24,21,255,252,11,2,82,5,55,32,255,253,17,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,5,0,0,2,11,11,6,2, - 253,192,0,0,192,192,192,192,192,192,192,192,7,12,12,9, - 1,254,4,4,60,110,206,208,208,214,110,60,32,64,8,11, - 11,10,1,0,62,119,96,96,252,96,96,96,96,96,255,9, - 8,16,10,1,2,128,128,93,0,34,0,65,0,65,0,34, - 0,93,0,128,128,9,11,22,11,1,0,195,128,99,0,103, - 0,247,128,62,0,60,0,255,128,24,0,24,0,24,0,24, - 0,1,14,14,5,2,253,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,6,14,14,8,1,253,120,236,192,224,120, - 124,204,204,248,120,28,12,156,248,5,1,1,5,0,10,216, - 12,11,22,14,1,0,31,128,57,192,111,96,217,176,152,16, - 152,16,153,144,143,16,64,32,48,192,31,128,5,8,8,7, - 1,3,112,216,120,216,216,120,0,248,8,6,6,10,1,1, - 103,102,238,206,102,103,9,4,8,10,0,3,255,128,0,128, - 0,128,0,128,255,12,11,22,14,1,0,31,128,57,192,111, - 96,201,176,136,144,143,16,137,144,136,144,72,160,48,192,31, - 128,5,1,1,5,0,10,248,4,4,4,6,1,7,96,208, - 144,240,9,10,20,16,3,0,8,0,8,0,8,0,255,128, - 8,0,8,0,8,0,0,0,0,0,255,128,5,6,6,7, - 1,5,112,216,24,48,192,248,5,7,7,7,1,4,112,216, - 24,112,24,216,112,3,3,3,4,1,9,96,192,128,255,7, - 14,14,9,1,253,126,244,244,244,244,116,20,20,20,20,20, - 20,20,20,2,2,2,4,1,4,192,192,4,4,4,3,0, - 252,64,48,176,224,3,6,6,5,1,5,96,224,96,96,96, - 96,6,8,8,8,1,3,120,252,204,204,204,120,0,252,8, - 6,6,10,1,1,204,102,103,103,102,204,12,11,22,13,1, - 0,224,128,97,128,99,0,99,0,102,0,108,224,12,224,25, - 224,25,96,51,240,96,96,11,11,22,13,1,0,97,0,227, - 0,98,0,102,0,100,0,109,224,27,96,24,96,49,192,35, - 0,99,224,12,11,22,13,1,0,120,192,216,128,113,128,217, - 0,115,0,6,96,4,224,13,224,25,96,25,240,48,96,7, - 11,11,9,1,253,24,0,24,24,56,112,224,192,194,254,60, - 11,16,32,11,0,0,24,0,12,0,4,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,16,32,11,0,0,3,0,2,0, - 4,0,0,0,0,0,14,0,14,0,15,0,27,0,27,128, - 57,128,49,128,63,192,127,192,96,224,224,96,11,16,32,11, - 0,0,6,0,14,0,25,0,0,0,0,0,14,0,14,0, - 15,0,27,0,27,128,57,128,49,128,63,192,127,192,96,224, - 224,96,11,15,30,11,0,0,13,0,23,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,15,30,11,0,0,27,0,0,0, - 0,0,0,0,14,0,14,0,15,0,27,0,27,0,59,128, - 49,128,63,192,127,192,96,224,224,96,10,17,34,12,1,0, - 12,0,18,0,18,0,30,0,0,0,0,0,12,0,30,0, - 30,0,63,0,51,0,51,0,99,128,127,128,255,192,192,192, - 192,192,15,11,22,16,0,0,3,254,7,128,7,128,13,128, - 29,128,25,254,57,128,63,128,97,128,97,128,193,254,10,15, - 30,12,1,252,31,0,119,128,97,192,192,0,192,0,192,0, - 192,0,193,192,97,192,115,128,62,0,8,0,14,0,2,0, - 28,0,8,16,16,10,1,0,96,48,24,0,0,255,192,192, - 192,192,255,192,192,192,192,255,8,16,16,10,1,0,12,8, - 16,0,0,255,192,192,192,192,255,192,192,192,192,255,8,16, - 16,10,1,0,24,60,36,0,0,255,192,192,192,192,255,192, - 192,192,192,255,8,15,15,10,1,0,102,0,0,0,255,192, - 192,192,192,255,192,192,192,192,255,4,16,16,4,255,0,192, - 96,48,0,0,48,48,48,48,48,48,48,48,48,48,48,4, - 16,16,4,1,0,112,96,192,0,0,192,192,192,192,192,192, - 192,192,192,192,192,4,16,16,4,0,0,96,240,144,0,0, - 96,96,96,96,96,96,96,96,96,96,96,5,15,15,5,0, - 0,216,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 11,11,22,12,0,0,127,0,99,128,96,192,96,224,96,96, - 252,96,96,96,96,224,96,192,99,128,127,0,10,15,30,12, - 1,0,25,0,22,0,0,0,0,0,240,192,240,192,248,192, - 216,192,220,192,204,192,206,192,198,192,199,192,195,192,195,192, - 11,16,32,13,1,0,24,0,8,0,12,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,123,192,31,0,11,16,32,13,1,0,3,0,2,0, - 4,0,0,0,0,0,31,0,123,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,0,11,16,32,13, - 1,0,14,0,27,0,17,0,0,0,0,0,31,0,123,192, - 96,192,192,96,192,96,192,96,192,96,192,96,96,192,123,192, - 31,0,11,15,30,13,1,0,31,0,0,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,224,224, - 96,192,127,192,31,0,11,15,30,13,1,0,27,0,0,0, - 0,0,0,0,31,0,123,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,123,192,31,0,8,8,8,16,4,0, - 129,195,102,24,24,36,66,129,11,11,22,13,1,0,31,160, - 59,192,96,192,193,96,194,96,196,96,200,96,208,96,224,192, - 123,128,191,0,10,16,32,12,1,0,48,0,24,0,8,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,62,0,10,16,32,12,1,0, - 3,0,6,0,4,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,62,0, - 10,16,32,12,1,0,28,0,30,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,62,0,10,15,30,12,1,0,51,0,0,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,115,128,62,0,10,16,32,10,0,0, - 6,0,6,0,4,0,0,0,0,0,225,192,113,128,51,128, - 59,0,31,0,30,0,12,0,12,0,12,0,12,0,12,0, - 8,11,11,10,1,0,192,192,254,199,195,195,199,254,192,192, - 192,8,11,11,10,1,0,124,238,198,206,220,216,206,199,195, - 219,222,7,12,12,9,1,0,96,48,16,0,60,110,6,126, - 230,198,238,118,7,12,12,9,1,0,12,24,16,0,60,110, - 6,126,230,198,238,118,7,12,12,9,1,0,56,44,68,0, - 60,110,6,126,230,198,238,118,7,11,11,9,1,0,60,0, - 0,60,110,6,126,230,198,238,118,7,11,11,9,1,0,108, - 0,0,60,230,6,126,230,198,238,118,7,13,13,9,1,0, - 24,36,36,60,0,60,102,6,126,230,198,238,126,13,8,16, - 15,1,0,60,224,103,176,7,24,127,248,231,0,199,24,237, - 184,120,240,7,12,12,9,1,252,60,110,198,192,192,198,110, - 60,16,28,4,56,7,13,13,9,1,0,96,32,48,16,0, - 60,110,198,254,192,198,110,60,7,13,13,9,1,0,12,12, - 24,16,0,60,110,198,254,192,198,110,60,7,13,13,9,1, - 0,24,56,44,68,0,60,110,198,254,192,198,110,60,7,12, - 12,9,1,0,108,0,0,0,60,110,198,254,192,206,110,60, - 3,12,12,4,0,0,192,96,32,0,96,96,96,96,96,96, - 96,96,3,12,12,4,1,0,96,192,128,0,192,192,192,192, - 192,192,192,192,5,12,12,4,0,0,96,208,136,0,96,96, - 96,96,96,96,96,96,5,11,11,5,0,0,216,0,0,48, - 48,48,48,48,48,48,48,8,11,11,10,1,0,51,28,102, - 62,103,195,195,195,195,103,60,7,11,11,9,1,0,60,0, - 0,220,238,198,198,198,198,198,198,8,13,13,10,1,0,96, - 48,16,8,0,60,102,195,195,195,195,102,60,8,13,13,10, - 1,0,6,12,8,16,0,60,102,195,195,195,195,102,60,8, - 13,13,10,1,0,24,28,36,34,0,60,102,195,195,195,195, - 102,60,8,11,11,10,1,0,60,0,0,60,102,195,195,195, - 195,102,60,8,12,12,10,1,0,102,0,0,0,60,102,195, - 195,195,195,102,60,10,6,12,16,3,2,12,0,0,0,255, - 192,0,0,0,0,12,0,8,10,10,10,1,255,1,62,102, - 207,203,211,227,118,252,128,7,12,12,9,1,0,96,48,16, - 0,198,198,198,198,198,198,238,118,7,12,12,9,1,0,12, - 24,16,0,198,198,198,198,198,198,238,118,7,12,12,9,1, - 0,56,40,68,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,108,0,0,198,198,198,198,198,198,238,118,9,16, - 32,9,0,253,7,0,6,0,12,0,8,0,0,0,99,128, - 99,0,115,0,54,0,54,0,30,0,28,0,28,0,28,0, - 248,0,112,0,8,14,14,10,1,253,192,192,192,220,230,195, - 195,195,199,230,220,192,192,192,8,14,14,9,1,253,108,0, - 0,199,198,238,108,108,60,56,56,56,48,48}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=16 dy= 0 ascent=11 len=18 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11n[266] U8G_SECTION(".progmem.u8g_font_fub11n") = { - 0,24,21,255,252,11,0,0,0,0,42,57,0,11,254,11, - 0,6,5,5,10,2,5,120,48,252,48,120,9,9,18,16, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,3,4,4,5,1,254,96,96,192,192,4,2, - 2,6,1,3,240,240,2,2,2,5,2,0,192,192,5,12, - 12,7,1,255,24,24,16,48,48,32,32,96,96,64,192,192, - 8,11,11,9,1,0,60,102,195,195,195,195,195,195,195,102, - 60,4,11,11,9,2,0,48,240,240,48,48,48,48,48,48, - 48,48,8,11,11,9,1,0,62,119,99,3,7,6,30,60, - 112,224,255,8,11,11,9,1,0,124,238,198,6,60,6,3, - 195,199,126,60,8,11,11,9,1,0,14,30,30,54,102,102, - 198,255,255,6,6,8,11,11,9,1,0,254,192,192,192,254, - 231,3,3,199,254,124,8,11,11,9,1,0,60,118,67,192, - 222,231,195,195,195,102,60,8,11,11,9,1,0,255,3,7, - 6,14,12,28,24,56,56,112,8,11,11,9,1,0,126,231, - 195,231,60,102,195,195,195,231,60,8,11,11,9,1,0,60, - 102,195,195,231,127,3,3,198,110,60}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=12 len=28 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11r[1829] U8G_SECTION(".progmem.u8g_font_fub11r") = { - 0,24,21,255,252,11,2,82,5,55,32,127,253,12,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=21 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14[5788] U8G_SECTION(".progmem.u8g_font_fub14") = { - 0,31,26,254,251,14,3,116,7,95,32,255,252,21,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,0,3,14, - 14,9,3,252,224,224,0,0,224,224,224,224,224,224,224,224, - 224,224,9,14,28,11,1,254,2,0,2,0,62,0,127,0, - 231,128,231,128,232,0,232,0,235,128,243,128,127,0,62,0, - 32,0,32,0,10,14,28,12,1,0,31,0,63,192,113,192, - 112,0,112,0,254,0,254,0,112,0,112,0,112,0,112,0, - 112,0,255,192,255,192,10,10,20,12,1,3,128,64,94,128, - 33,0,64,128,64,128,64,128,64,128,33,0,94,128,128,64, - 11,14,28,13,1,0,224,224,225,192,113,192,113,128,251,224, - 251,224,31,0,255,224,255,224,14,0,14,0,14,0,14,0, - 14,0,1,18,18,7,3,252,128,128,128,128,128,128,128,128, - 0,0,128,128,128,128,128,128,128,128,8,18,18,10,1,252, - 62,126,224,224,112,60,126,231,231,231,254,124,30,7,7,135, - 254,56,7,2,2,7,0,12,238,238,15,14,28,17,1,0, - 7,192,31,240,55,152,111,204,204,228,156,2,156,2,156,226, - 140,226,207,198,71,132,32,24,28,112,15,192,7,9,9,8, - 1,5,120,204,124,204,204,252,36,0,254,10,8,16,12,1, - 1,57,192,113,128,115,128,231,0,231,0,115,128,113,128,57, - 192,11,5,10,13,1,4,255,224,255,224,0,32,0,32,0, - 32,255,15,14,28,17,1,0,7,192,31,240,63,152,111,236, - 204,100,140,98,143,194,143,194,140,98,204,102,76,100,32,24, - 28,112,15,192,6,2,2,6,0,12,252,252,5,5,5,7, - 1,9,112,136,136,136,112,12,12,24,20,4,0,2,0,2, - 0,2,0,255,240,255,240,2,0,2,0,2,0,0,0,0, - 0,255,240,255,240,6,8,8,8,1,6,120,204,12,24,48, - 224,252,252,6,7,7,8,1,7,120,204,12,48,12,204,120, - 4,4,4,4,1,12,48,96,96,192,255,9,17,34,11,1, - 253,63,128,121,0,249,0,249,0,249,0,249,0,121,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9, - 0,9,0,3,3,3,6,2,5,224,224,224,5,5,5,5, - 1,251,64,112,24,24,240,4,8,8,6,1,6,48,240,48, - 48,48,48,48,48,7,9,9,9,1,5,56,68,198,198,198, - 68,56,0,254,10,8,16,12,1,1,231,0,99,128,115,128, - 57,192,57,192,115,128,99,128,231,0,14,14,28,16,1,0, - 112,48,240,48,48,96,48,192,48,192,49,128,49,156,51,60, - 6,60,6,108,12,204,24,252,24,12,48,12,15,14,28,17, - 1,0,112,48,240,32,48,96,48,192,48,192,49,128,51,60, - 51,102,6,6,12,14,12,28,24,48,48,126,48,126,14,14, - 28,16,1,0,120,24,204,48,12,48,48,96,12,192,204,192, - 121,156,1,188,3,60,6,108,6,204,12,252,8,12,24,12, - 9,14,28,11,1,252,14,0,14,0,0,0,14,0,14,0, - 14,0,60,0,112,0,224,0,224,0,225,128,225,128,127,128, - 62,0,14,20,40,14,0,0,12,0,14,0,6,0,3,0, - 0,0,0,0,7,128,7,128,7,192,15,192,14,192,28,224, - 28,224,28,96,56,112,63,240,63,248,112,56,112,56,224,28, - 14,20,40,14,0,0,0,192,1,192,1,128,3,0,0,0, - 0,0,7,128,7,128,7,192,15,192,14,192,28,224,28,224, - 28,96,56,112,63,240,63,248,112,56,112,56,224,28,14,20, - 40,14,0,0,3,128,7,128,6,192,12,192,0,0,0,0, - 7,128,7,128,7,192,15,192,14,192,28,224,28,224,28,96, - 56,112,63,240,63,248,112,56,112,56,224,28,14,19,38,14, - 0,0,6,64,15,192,8,128,0,0,0,0,7,128,7,128, - 7,192,15,192,14,192,28,224,28,224,28,96,56,112,63,240, - 63,248,112,56,112,56,224,28,14,19,38,15,0,0,14,224, - 14,224,0,0,0,0,0,0,3,128,7,128,7,192,7,192, - 14,192,14,224,28,224,28,112,28,112,63,248,63,248,112,56, - 112,28,224,28,13,21,42,15,1,0,7,0,8,128,8,128, - 8,128,7,0,0,0,0,0,7,0,15,128,15,128,29,192, - 29,192,29,192,56,224,56,224,48,96,127,240,127,240,224,56, - 224,56,224,56,19,14,42,20,0,0,0,255,224,1,255,224, - 3,240,0,3,112,0,7,112,0,7,112,0,14,127,192,14, - 127,192,28,112,0,31,240,0,63,240,0,112,112,0,112,127, - 224,224,127,224,13,18,36,15,1,252,15,128,63,224,112,240, - 96,112,224,0,224,0,224,0,224,0,224,0,224,120,96,112, - 112,240,63,224,31,128,4,0,7,128,1,128,15,0,10,20, - 40,12,1,0,48,0,56,0,24,0,12,0,0,0,0,0, - 255,192,255,192,224,0,224,0,224,0,224,0,255,128,255,128, - 224,0,224,0,224,0,224,0,255,192,255,192,10,20,40,12, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,255,192, - 255,192,224,0,224,0,224,0,224,0,255,128,255,128,224,0, - 224,0,224,0,224,0,255,192,255,192,10,20,40,12,1,0, - 28,0,30,0,54,0,35,0,0,0,0,0,255,192,255,192, - 224,0,224,0,224,0,224,0,255,128,255,128,224,0,224,0, - 224,0,224,0,255,192,255,192,10,19,38,12,1,0,119,0, - 119,0,0,0,0,0,0,0,255,192,255,192,224,0,224,0, - 224,0,224,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,192,255,192,5,20,20,5,255,0,224,96,48,16,0,0, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,4,20, - 20,5,1,0,48,112,96,192,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,5,20,20,5,0,0,112,112, - 216,136,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,7,19,19,7,0,0,238,238,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,13,14,28,14,0, - 0,127,128,127,224,112,240,112,112,112,56,112,56,254,56,254, - 56,112,56,112,56,112,112,112,240,127,224,127,128,13,19,38, - 15,1,0,12,64,31,128,17,0,0,0,0,0,240,56,248, - 56,248,56,252,56,238,56,238,56,231,56,231,56,227,184,227, - 184,225,248,225,248,224,248,224,248,14,20,40,16,1,0,28, - 0,12,0,6,0,2,0,0,0,0,0,15,192,63,240,112, - 112,96,56,224,24,224,28,224,28,224,28,224,28,224,24,96, - 56,112,112,63,240,15,192,14,20,40,16,1,0,0,224,1, - 192,1,128,3,0,0,0,0,0,15,192,63,240,112,112,96, - 56,224,24,224,28,224,28,224,28,224,28,224,24,96,56,112, - 112,63,240,15,192,14,20,40,16,1,0,7,0,7,128,13, - 192,8,192,0,0,0,0,15,192,63,240,112,112,96,56,224, - 24,224,28,224,28,224,28,224,28,224,24,96,56,112,112,63, - 240,15,192,14,19,38,16,1,0,7,192,15,192,0,0,0, - 0,0,0,15,192,63,240,112,48,96,56,224,24,224,28,224, - 28,224,28,224,28,224,24,112,56,120,240,63,240,15,192,14, - 19,38,16,1,0,29,192,29,192,0,0,0,0,0,0,15, - 192,63,240,112,112,96,56,224,24,224,28,224,28,224,28,224, - 28,224,24,96,56,112,112,63,240,15,192,10,10,20,20,5, - 1,128,64,192,192,97,128,51,0,12,0,12,0,18,0,33, - 0,64,128,128,64,15,16,32,16,0,255,0,2,7,230,31, - 252,56,60,48,60,112,108,112,238,113,206,115,142,119,14,126, - 12,124,28,56,56,63,240,239,224,64,0,12,20,40,14,1, - 0,56,0,24,0,12,0,6,0,0,0,0,0,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,113,224,63,192,31,128,12,20,40,14,1,0,1, - 192,3,128,3,0,6,0,0,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,113,224,63,192,31,128,12,20,40,14,1,0,14,0,15, - 0,27,0,17,128,0,0,0,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,113, - 224,63,192,31,128,12,19,38,14,1,0,29,192,29,192,0, - 0,0,0,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,63,192,31, - 128,12,19,38,13,0,0,1,128,3,0,2,0,0,0,0, - 0,240,112,112,240,56,224,56,224,29,192,29,192,15,128,15, - 0,7,0,7,0,7,0,7,0,7,0,7,0,11,14,28, - 13,1,0,224,0,224,0,255,0,255,192,225,192,224,224,224, - 224,224,224,225,192,255,128,254,0,224,0,224,0,224,0,10, - 14,28,12,1,0,62,0,127,128,227,128,227,128,227,0,231, - 0,238,0,238,0,231,128,227,192,225,192,253,192,255,192,239, - 128,9,16,32,11,1,0,112,0,48,0,24,0,8,0,0, - 0,0,0,62,0,127,128,227,128,31,128,127,128,227,128,227, - 128,227,128,255,128,57,128,9,16,32,11,1,0,7,0,6, - 0,12,0,12,0,0,0,0,0,62,0,127,128,227,128,3, - 128,63,128,251,128,227,128,227,128,255,128,121,128,9,16,32, - 11,1,0,28,0,30,0,54,0,35,0,0,0,0,0,62, - 0,127,128,227,128,31,128,127,128,227,128,227,128,227,128,255, - 128,57,128,9,14,28,11,1,0,63,0,62,0,0,0,0, - 0,62,0,127,128,227,128,31,128,127,128,227,128,227,128,227, - 128,255,128,57,128,9,15,30,11,1,0,119,0,119,0,0, - 0,0,0,0,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,9,17,34,11,1,0,28, - 0,34,0,34,0,34,0,28,0,0,0,0,0,62,0,127, - 128,227,128,31,128,127,128,227,128,227,128,227,128,255,128,57, - 128,16,10,20,18,1,0,62,124,127,254,227,135,31,255,127, - 255,227,128,227,128,227,199,254,254,60,124,9,14,28,11,1, - 252,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,16,0,30,0,6,0,62,0,9,16,32, - 11,1,0,112,0,48,0,24,0,8,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,9,16,32,11,1,0,7,0,6,0,12,0,8, - 0,0,0,0,0,30,0,127,0,227,128,227,128,255,128,255, - 128,224,0,227,128,127,128,62,0,9,16,32,11,1,0,28, - 0,30,0,54,0,35,0,0,0,0,0,30,0,127,0,227, - 128,227,128,255,128,255,128,224,0,227,128,127,128,62,0,9, - 15,30,11,1,0,119,0,119,0,0,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,4,15,15,5,0,0,192,224,96,48,0,112,112, - 112,112,112,112,112,112,112,112,4,15,15,4,1,0,112,96, - 192,128,0,224,224,224,224,224,224,224,224,224,224,7,15,15, - 5,255,0,56,124,76,198,0,56,56,56,56,56,56,56,56, - 56,56,7,14,14,6,0,0,238,238,0,0,56,56,56,56, - 56,56,56,56,56,56,10,14,28,12,1,0,57,128,15,0, - 31,0,99,0,31,128,127,128,97,192,225,192,225,192,225,192, - 225,192,97,192,127,128,31,0,9,14,28,11,1,0,62,0, - 60,0,0,0,0,0,239,0,255,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,16,32,12,1,0, - 48,0,24,0,24,0,12,0,0,0,0,0,30,0,127,128, - 97,128,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 10,16,32,12,1,0,3,0,6,0,6,0,12,0,0,0, - 0,0,30,0,127,128,97,128,225,192,225,192,225,192,225,192, - 97,128,127,128,30,0,10,16,32,12,1,0,12,0,30,0, - 26,0,51,0,0,0,0,0,30,0,127,128,97,128,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,10,14,28,12, - 1,0,31,0,62,0,0,0,0,0,30,0,127,128,97,128, - 225,192,225,192,225,192,225,192,97,128,127,128,30,0,10,15, - 30,12,1,0,59,128,59,128,0,0,0,0,0,0,30,0, - 127,128,97,128,225,192,225,192,225,192,225,192,97,128,127,128, - 30,0,12,8,16,20,4,2,6,0,14,0,0,0,255,240, - 255,240,0,0,6,0,14,0,10,12,24,12,1,0,0,192, - 31,128,127,128,99,128,231,192,237,192,233,192,241,192,113,128, - 127,128,222,0,128,0,9,16,32,11,1,0,112,0,48,0, - 24,0,8,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,9,16,32,11, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,227,128, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,255,128, - 123,128,9,16,32,11,1,0,28,0,28,0,54,0,34,0, - 0,0,0,0,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,255,128,123,128,9,15,30,11,1,0,119,0, - 119,0,0,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,11,19,38,11, - 0,252,1,128,3,0,2,0,4,0,0,0,112,224,113,192, - 113,192,57,192,59,128,27,128,31,128,31,0,15,0,14,0, - 14,0,78,0,252,0,120,0,10,18,36,12,1,252,224,0, - 224,0,224,0,224,0,239,0,255,128,225,128,225,192,225,192, - 225,192,225,192,225,192,255,128,255,0,224,0,224,0,224,0, - 224,0,11,18,36,11,0,252,59,128,59,128,0,0,0,0, - 225,224,113,192,113,192,115,128,59,128,59,128,31,0,31,0, - 31,0,14,0,14,0,12,0,28,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=12 h=15 x= 4 y= 7 dx=20 dy= 0 ascent=14 len=28 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14n[436] U8G_SECTION(".progmem.u8g_font_fub14n") = { - 0,31,26,254,251,14,0,0,0,0,42,57,0,14,254,14, - 0,8,7,7,12,2,7,102,60,24,255,24,60,102,12,12, - 24,20,4,0,2,0,2,0,2,0,2,0,2,0,255,240, - 255,240,2,0,2,0,2,0,2,0,2,0,4,5,5,6, - 1,254,112,112,96,224,192,5,3,3,7,1,4,248,248,248, - 3,3,3,6,2,0,224,224,224,6,15,15,9,1,255,12, - 12,12,12,24,24,24,48,48,48,96,96,96,96,192,10,14, - 28,11,1,0,30,0,127,0,97,128,225,192,225,192,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 6,14,14,11,2,0,28,124,252,220,28,28,28,28,28,28, - 28,28,28,28,10,14,28,11,1,0,31,0,127,128,97,192, - 225,192,1,192,1,192,3,128,7,128,15,0,30,0,56,0, - 112,0,255,192,255,192,10,14,28,11,1,0,62,0,127,0, - 227,128,3,128,3,128,31,0,31,0,3,128,1,192,1,192, - 225,192,243,128,127,0,62,0,11,14,28,11,1,0,7,128, - 15,128,15,128,27,128,59,128,51,128,115,128,99,128,227,128, - 255,224,255,224,3,128,3,128,3,128,10,14,28,11,1,0, - 255,128,255,128,224,0,224,0,224,0,255,0,255,128,225,128, - 1,192,1,192,225,192,227,128,127,0,62,0,10,14,28,11, - 1,0,30,0,63,128,97,128,96,0,224,0,223,0,255,128, - 225,128,225,192,225,192,225,192,97,128,127,128,30,0,10,14, - 28,11,1,0,255,192,255,192,1,192,3,128,3,128,7,128, - 7,0,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 10,14,28,11,1,0,63,0,127,128,225,192,225,192,225,128, - 127,0,63,0,115,128,225,192,225,192,225,192,225,192,127,128, - 63,0,10,14,28,11,1,0,30,0,127,0,225,128,225,128, - 225,192,225,192,243,192,127,192,25,192,1,128,225,128,99,128, - 127,0,62,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=16 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14r[2680] U8G_SECTION(".progmem.u8g_font_fub14r") = { - 0,31,26,254,251,14,3,116,7,95,32,127,252,16,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=15 dx=24 dy= 0 ascent=25 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17[6938] U8G_SECTION(".progmem.u8g_font_fub17") = { - 0,34,31,254,250,17,4,8,8,209,32,255,251,25,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,7,0,0,3,17,17,9, - 3,251,224,224,224,0,0,224,224,224,224,224,224,224,224,224, - 224,224,224,10,18,36,13,1,253,1,0,1,0,3,0,31, - 0,127,128,115,192,231,192,228,0,228,0,236,0,233,192,233, - 192,123,192,127,128,31,0,16,0,48,0,32,0,11,17,34, - 13,1,0,15,128,31,224,56,224,56,224,56,0,56,0,255, - 0,255,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,255,224,255,224,11,12,24,13,1,4,128,32,95,64,113, - 128,96,128,64,64,64,64,64,64,64,64,96,192,49,128,95, - 64,128,32,13,17,34,15,1,0,224,120,240,120,112,112,120, - 240,56,224,253,248,253,248,31,192,15,128,255,248,255,248,7, - 0,7,0,7,0,7,0,7,0,7,0,1,22,22,8,4, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,128,128, - 128,128,128,128,128,128,128,9,21,42,11,1,252,63,0,127, - 0,241,0,224,0,224,0,120,0,62,0,63,0,119,128,227, - 128,227,128,231,128,255,0,126,0,31,0,7,128,3,128,3, - 128,135,128,255,0,124,0,8,3,3,8,0,15,231,231,231, - 17,17,51,19,1,0,3,224,0,15,248,0,60,30,0,51, - 230,0,103,243,0,103,59,0,206,57,128,206,1,128,206,1, - 128,206,1,128,206,57,128,78,57,0,103,243,0,51,230,0, - 56,14,0,15,248,0,3,224,0,8,11,11,10,1,6,60, - 102,6,126,230,198,198,126,0,0,255,11,9,18,14,1,1, - 60,224,56,224,121,224,113,192,243,192,113,192,121,224,56,224, - 60,224,12,5,10,14,1,5,255,240,0,16,0,16,0,16, - 0,16,255,17,17,51,19,1,0,3,224,0,15,248,0,60, - 30,0,55,246,0,103,251,0,102,27,0,198,25,128,199,241, - 128,199,241,128,198,57,128,198,25,128,70,25,0,102,27,0, - 48,6,0,56,14,0,15,248,0,3,224,0,7,2,2,7, - 0,15,254,254,5,5,5,7,1,12,112,136,136,136,112,14, - 14,28,24,5,0,2,0,2,0,2,0,2,0,255,252,255, - 252,2,0,2,0,2,0,2,0,0,0,0,0,255,252,255, - 252,7,9,9,9,1,8,124,230,6,14,28,56,224,254,254, - 7,9,9,9,1,8,124,206,6,14,56,14,6,206,124,5, - 4,4,5,1,14,56,112,96,192,255,11,20,40,14,2,253, - 63,224,125,128,253,128,253,128,253,128,253,128,253,128,125,128, - 13,128,13,128,13,128,13,128,13,128,13,128,13,128,13,128, - 13,128,13,128,13,128,13,128,3,3,3,7,2,6,224,224, - 224,6,5,5,6,1,251,32,56,12,12,248,4,9,9,6, - 1,8,48,240,176,48,48,48,48,48,48,8,11,11,10,1, - 6,60,102,195,195,195,195,231,126,60,0,255,12,9,18,14, - 1,1,227,128,113,192,121,224,56,224,60,240,56,224,121,224, - 113,192,227,128,16,17,34,18,1,0,48,24,240,24,176,48, - 48,112,48,96,48,224,48,192,49,128,49,142,3,14,3,30, - 6,54,14,54,12,102,24,127,24,6,48,6,16,17,34,18, - 1,0,48,24,240,48,176,48,48,96,48,224,48,192,49,192, - 49,128,51,62,3,119,6,3,6,7,12,14,28,28,24,112, - 48,127,48,127,17,17,51,19,1,0,124,6,0,198,12,0, - 6,12,0,56,24,0,14,56,0,6,48,0,206,112,0,124, - 96,0,0,199,0,1,199,0,1,143,0,3,155,0,3,27, - 0,7,51,0,6,63,128,12,3,0,28,3,0,10,17,34, - 12,1,251,14,0,14,0,0,0,0,0,14,0,14,0,14, - 0,28,0,56,0,112,0,240,0,224,0,224,128,224,192,115, - 192,127,128,31,0,16,24,48,16,0,0,14,0,7,0,3, - 0,3,128,1,128,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,24,48,16,0, - 0,0,112,0,96,0,224,0,192,1,128,0,0,0,0,3, - 192,3,192,3,224,7,224,7,240,15,112,14,112,14,120,30, - 56,28,56,28,60,63,252,63,252,127,254,120,14,112,15,240, - 7,16,24,48,16,0,0,1,192,3,192,3,224,6,96,4, - 48,0,0,0,0,3,192,3,192,3,224,7,224,7,240,15, - 112,14,112,14,120,30,56,28,56,28,60,63,252,63,252,127, - 254,120,14,112,15,240,7,16,23,46,16,0,0,0,16,7, - 240,7,224,0,0,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,23,46,17,0, - 0,14,112,14,112,14,112,0,0,0,0,0,0,3,192,3, - 192,7,224,7,224,7,224,15,112,14,112,30,120,30,56,28, - 56,60,60,63,252,127,254,127,254,112,14,240,15,224,7,15, - 25,50,16,1,0,3,128,6,192,4,64,4,64,4,192,3, - 128,0,0,0,0,3,128,7,192,7,192,15,192,14,224,14, - 224,30,224,28,112,28,112,60,112,56,120,63,248,127,252,127, - 252,112,28,240,30,224,14,21,17,51,23,1,0,0,255,248, - 0,255,248,1,248,0,1,248,0,3,184,0,3,184,0,7, - 56,0,7,63,248,14,63,248,14,56,0,30,56,0,31,248, - 0,63,248,0,120,56,0,112,56,0,240,63,248,224,63,248, - 14,22,44,16,1,251,15,192,31,240,63,248,120,56,112,60, - 240,28,224,0,224,0,224,0,224,0,224,0,224,0,112,28, - 112,60,56,120,31,240,15,192,3,0,3,192,0,96,0,96, - 7,192,11,24,48,15,2,0,56,0,24,0,28,0,12,0, - 6,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,11,24,48,15,2,0,3,128, - 3,0,7,0,6,0,12,0,0,0,0,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,11,24, - 48,15,2,0,14,0,31,0,27,0,59,128,49,128,0,0, - 0,0,255,224,255,224,255,224,224,0,224,0,224,0,224,0, - 255,224,255,224,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,255,224,11,23,46,15,2,0,59,128,59,128,59,128, - 0,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,5,24,24,7,0,0,224,224, - 96,48,16,0,0,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,5,24,24,5,1,0,56,48,112,96, - 192,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,7,24,24,7,0,0,56,56,108,108,198,0, - 0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,8,23,23,8,0,0,231,231,231,0,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,15, - 17,34,16,0,0,63,192,63,240,63,248,56,60,56,28,56, - 30,56,14,56,14,255,14,255,14,56,14,56,30,56,28,56, - 60,63,248,63,240,63,192,14,23,46,18,2,0,0,32,15, - 192,15,192,0,0,0,0,0,0,248,28,248,28,252,28,252, - 28,238,28,238,28,231,28,231,28,231,156,227,156,227,220,225, - 220,225,220,224,252,224,252,224,124,224,124,15,24,48,17,1, - 0,28,0,14,0,6,0,3,0,1,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,240,14,112,28,120,60,63,248,31,240,7, - 224,15,24,48,17,1,0,0,112,0,224,0,192,1,128,1, - 0,0,0,0,0,7,192,31,240,63,248,120,60,112,28,240, - 30,224,14,224,14,224,14,224,14,224,14,240,14,112,28,120, - 60,63,248,31,240,7,224,15,24,48,17,1,0,3,128,7, - 192,6,192,12,96,8,32,0,0,0,0,7,192,31,240,63, - 248,120,60,112,28,240,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,60,63,248,31,240,7,224,15,23,46, - 17,1,0,7,32,15,224,8,192,0,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,120,60,63,248,31,240,7, - 224,15,23,46,17,1,0,14,112,14,112,14,112,0,0,0, - 0,0,0,7,192,31,240,63,248,120,60,112,28,240,30,224, - 14,224,14,224,14,224,14,224,14,240,14,112,28,120,60,63, - 248,31,240,7,224,13,12,24,23,5,1,192,24,96,48,48, - 96,24,192,13,128,7,0,7,0,13,128,24,192,48,96,96, - 48,192,24,17,19,57,17,0,255,0,1,0,3,241,128,15, - 251,0,31,254,0,60,30,0,56,30,0,120,63,0,112,119, - 0,112,231,0,113,199,0,115,135,0,119,7,0,126,7,0, - 60,14,0,60,30,0,63,252,0,111,248,0,227,224,0,64, - 0,0,14,24,48,18,2,0,28,0,12,0,14,0,6,0, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,56,127,248,63,240,15,192,14,24,48,18,2,0,0,224, - 0,192,1,192,1,128,3,0,0,0,0,0,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,240,60,112,56,127,248,63,240,15,192,14,24, - 48,18,2,0,7,128,7,128,15,192,12,192,24,96,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,240,60,112,56,127,248, - 63,240,15,192,14,23,46,16,1,0,28,224,28,224,28,224, - 0,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 120,120,127,248,63,240,15,192,13,23,46,15,1,0,1,192, - 1,128,3,0,2,0,0,0,0,0,224,56,240,120,112,112, - 120,240,56,224,61,224,29,192,31,192,15,128,15,128,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,12,17,34,15, - 1,0,224,0,224,0,224,0,255,128,255,224,255,224,224,240, - 224,112,224,112,224,240,255,224,255,224,255,128,224,0,224,0, - 224,0,224,0,12,17,34,14,1,0,63,0,127,128,241,192, - 225,192,225,192,227,128,231,0,238,0,238,0,239,128,231,192, - 225,224,224,112,238,112,238,112,239,224,231,192,10,19,38,13, - 1,0,112,0,56,0,24,0,12,0,4,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,19,38,13,1,0,3,128, - 3,0,6,0,6,0,12,0,0,0,0,0,31,0,127,128, - 113,192,1,192,31,192,127,192,241,192,225,192,225,192,243,192, - 127,192,60,192,10,19,38,13,1,0,14,0,30,0,27,0, - 51,0,33,128,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 10,17,34,13,1,0,31,128,63,0,0,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,63,0,127,128,241,192, - 1,192,31,192,127,192,241,192,225,192,225,192,243,192,127,192, - 60,192,10,20,40,13,1,0,14,0,27,0,17,0,19,0, - 31,0,14,0,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 18,12,36,20,1,0,31,31,0,127,191,128,113,243,128,0, - 225,192,31,255,192,127,255,192,240,224,0,224,224,0,224,225, - 192,241,243,192,127,63,128,62,31,0,10,17,34,12,1,251, - 31,0,127,128,115,192,225,192,224,0,224,0,224,0,224,0, - 225,192,115,192,127,128,63,0,8,0,14,0,3,0,3,0, - 30,0,11,19,38,13,1,0,112,0,56,0,24,0,12,0, - 4,0,0,0,0,0,31,0,63,128,113,192,225,224,255,224, - 255,224,224,0,224,0,225,192,113,192,127,192,31,0,11,19, - 38,13,1,0,3,128,3,0,7,0,6,0,12,0,0,0, - 0,0,31,0,63,128,113,192,225,224,255,224,255,224,224,0, - 224,0,225,192,113,192,127,192,31,0,11,19,38,13,1,0, - 14,0,31,0,27,0,49,128,33,128,0,0,0,0,31,0, - 63,128,113,192,225,224,255,224,255,224,224,0,224,0,225,192, - 113,192,127,192,31,0,11,18,36,13,1,0,115,128,115,128, - 115,128,0,0,0,0,0,0,31,0,63,128,115,192,225,192, - 255,224,255,224,224,0,224,0,225,192,115,192,127,128,31,0, - 5,18,18,6,255,0,224,112,48,24,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,4,18,18,5,1,0,112,96, - 224,192,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 7,18,18,6,255,0,56,124,108,198,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,8,18,18,7,255,0,231,231, - 231,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56, - 12,17,34,14,1,0,28,96,15,192,15,128,59,128,33,192, - 31,224,63,224,112,224,240,240,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,11,17,34,13,1,0,31,128, - 63,0,0,0,0,0,0,0,239,128,255,192,241,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 12,19,38,14,1,0,56,0,28,0,12,0,6,0,6,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,19,38,14, - 1,0,1,192,3,128,3,0,6,0,4,0,0,0,0,0, - 31,128,63,192,112,224,240,224,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,12,19,38,14,1,0,15,0, - 15,0,31,128,25,128,48,192,0,0,0,0,31,128,63,192, - 112,224,240,224,224,112,224,112,224,112,224,112,240,240,112,224, - 63,192,31,128,12,17,34,14,1,0,31,192,63,128,0,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,18,36,14, - 1,0,57,192,57,192,57,192,0,0,0,0,0,0,31,128, - 63,192,112,224,240,224,224,112,224,112,224,112,224,112,240,240, - 112,224,63,192,31,128,14,10,20,24,5,2,7,0,7,0, - 6,0,0,0,255,252,255,252,0,0,2,0,7,0,7,0, - 12,15,30,14,1,254,0,32,0,48,31,224,63,192,113,224, - 241,240,227,112,230,112,236,112,248,112,248,240,112,224,127,192, - 223,128,192,0,11,19,38,13,1,0,112,0,56,0,28,0, - 12,0,6,0,0,0,0,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,241,224,127,224,62,224, - 11,19,38,13,1,0,3,128,3,128,7,0,6,0,12,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,241,224,127,224,62,224,11,19,38,13, - 1,0,14,0,31,0,27,0,49,128,32,128,0,0,0,0, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,241,224,127,224,62,224,11,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,241,224,127,224, - 62,224,11,23,46,13,1,251,1,128,3,128,3,0,6,0, - 0,0,0,0,224,224,224,224,241,224,113,192,121,192,59,192, - 59,128,63,128,31,128,31,0,31,0,15,0,14,0,14,0, - 254,0,252,0,120,0,12,22,44,15,2,251,224,0,224,0, - 224,0,224,0,224,0,239,128,255,192,248,224,240,240,224,112, - 224,112,224,112,224,112,240,240,241,224,255,192,239,128,224,0, - 224,0,224,0,224,0,224,0,12,22,44,14,1,251,57,192, - 57,192,57,192,0,0,0,0,240,112,240,240,112,240,120,224, - 121,224,57,192,61,192,31,192,31,128,31,128,15,128,15,0, - 15,0,15,0,14,0,30,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17n[512] U8G_SECTION(".progmem.u8g_font_fub17n") = { - 0,34,31,254,250,17,0,0,0,0,42,57,0,17,253,17, - 0,9,9,18,15,3,8,54,0,54,0,54,0,156,128,255, - 128,156,128,54,0,54,0,54,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,255,252,2, - 0,2,0,2,0,2,0,2,0,2,0,5,6,6,7,1, - 253,56,112,112,96,96,224,6,3,3,8,1,4,252,252,252, - 3,3,3,7,2,0,224,224,224,8,18,18,10,1,255,7, - 6,6,14,12,12,12,28,24,24,56,48,48,48,112,96,96, - 224,11,17,34,13,1,0,31,0,63,128,113,192,112,192,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,112,192,113,192,63,128,31,0,7,17,17,13,2,0,14, - 62,254,254,206,14,14,14,14,14,14,14,14,14,14,14,14, - 12,17,34,13,1,0,15,128,63,224,120,224,112,112,0,112, - 0,112,0,240,1,224,3,224,7,192,15,128,30,0,60,0, - 248,0,255,240,255,240,255,240,11,17,34,13,1,0,31,0, - 127,192,241,224,224,224,0,224,0,224,1,192,15,128,15,128, - 1,192,0,224,0,224,224,224,241,224,255,192,127,128,31,0, - 12,17,34,13,1,0,3,192,7,192,7,192,15,192,29,192, - 29,192,57,192,113,192,113,192,225,192,255,240,255,240,255,240, - 1,192,1,192,1,192,1,192,11,17,34,13,1,0,255,192, - 255,192,255,192,224,0,224,0,224,0,239,128,255,192,241,224, - 224,224,0,224,0,224,224,224,225,224,255,192,127,128,63,0, - 11,17,34,13,1,0,15,0,63,192,57,224,112,224,96,0, - 224,0,239,128,255,192,241,224,224,224,224,224,224,224,224,224, - 96,224,113,192,63,128,31,0,11,17,34,13,1,0,255,224, - 255,224,255,224,0,224,1,224,1,192,3,192,3,128,7,128, - 7,128,7,0,15,0,14,0,30,0,28,0,60,0,60,0, - 11,17,34,13,1,0,31,0,127,192,241,224,224,224,224,224, - 224,224,113,192,63,128,63,128,113,192,224,224,224,224,224,224, - 224,224,241,224,127,192,31,0,11,17,34,13,1,0,31,0, - 63,128,113,192,224,192,224,224,224,224,224,224,241,224,127,224, - 62,224,0,224,0,224,224,224,225,192,113,192,127,128,30,0 - }; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17r[3222] U8G_SECTION(".progmem.u8g_font_fub17r") = { - 0,34,31,254,250,17,4,8,8,209,32,127,251,19,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=18 dx=28 dy= 0 ascent=29 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =29 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20[8916] U8G_SECTION(".progmem.u8g_font_fub20") = { - 0,40,36,254,249,20,4,242,11,37,32,255,251,29,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,8,0,0,4,19,19,10, - 3,251,240,240,240,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,12,20,40,16,2,253,0,192,0,192,0, - 128,15,128,63,224,125,224,115,240,243,240,242,0,242,0,246, - 0,244,0,244,240,124,240,121,224,63,224,31,128,24,0,16, - 0,48,0,14,20,40,15,1,0,7,224,31,248,62,120,60, - 60,60,60,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,255,252,255, - 252,15,14,28,17,1,5,192,6,99,204,55,248,28,48,24, - 24,48,12,48,12,48,12,48,12,24,24,28,48,63,248,99, - 204,192,6,15,20,40,17,1,0,240,30,240,62,120,60,120, - 124,56,120,60,120,252,254,254,254,31,224,15,224,15,192,255, - 254,255,254,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,1,25,25,9,4,251,128,128,128,128,128,128,128,128,128, - 128,128,0,0,0,128,128,128,128,128,128,128,128,128,128,128, - 11,24,48,13,1,252,31,128,63,192,121,192,240,64,240,0, - 248,0,124,0,63,0,63,128,127,192,243,224,225,224,225,192, - 243,192,255,128,126,0,31,128,7,192,3,224,1,224,1,192, - 195,192,255,128,127,0,9,3,6,9,0,17,227,128,227,128, - 227,128,20,20,60,24,2,0,1,248,0,7,254,0,31,15, - 128,60,3,192,49,252,192,99,254,224,103,158,96,199,15,48, - 207,0,48,207,0,48,207,0,48,207,15,48,199,14,48,103, - 158,96,99,252,96,49,248,192,56,1,192,30,7,128,7,254, - 0,1,248,0,9,13,26,11,1,7,62,0,127,128,99,128, - 3,128,63,128,115,128,227,128,227,128,255,128,125,128,0,0, - 0,0,255,128,14,11,22,16,1,2,30,60,28,56,60,120, - 120,240,120,240,241,224,120,240,56,240,60,120,28,56,30,60, - 15,6,12,17,1,6,255,254,255,254,0,6,0,6,0,6, - 0,6,255,20,20,60,24,2,0,1,248,0,7,254,0,31, - 15,128,60,3,192,51,252,192,99,254,224,99,14,96,195,6, - 48,195,28,48,195,248,48,195,252,48,195,12,48,195,14,48, - 99,6,96,99,6,96,51,6,192,56,1,192,30,7,128,7, - 254,0,1,248,0,9,2,4,9,0,18,255,128,255,128,6, - 6,6,8,1,14,120,204,132,132,204,120,16,16,32,26,5, - 0,1,128,1,128,1,128,1,128,255,255,255,255,1,128,1, - 128,1,128,1,128,1,128,0,0,0,0,0,0,255,255,255, - 255,9,11,22,11,1,9,62,0,127,0,227,128,3,128,7, - 0,15,0,30,0,56,0,112,0,255,0,255,0,8,11,11, - 10,1,9,60,254,231,7,30,30,7,7,231,254,124,6,5, - 5,6,1,16,60,56,112,96,192,255,13,24,48,15,1,252, - 31,248,62,96,126,96,254,96,254,96,254,96,254,96,126,96, - 126,96,30,96,6,96,6,96,6,96,6,96,6,96,6,96, - 6,96,6,96,6,96,6,96,6,96,6,96,6,96,6,96, - 4,4,4,8,2,8,240,240,240,240,7,6,6,7,1,249, - 32,60,14,6,254,252,5,11,11,8,2,9,56,248,248,56, - 56,56,56,56,56,56,56,10,13,26,12,1,7,30,0,127, - 128,115,128,225,192,225,192,225,192,225,192,99,128,127,128,30, - 0,0,0,0,0,255,192,13,11,22,16,2,2,225,192,241, - 224,112,224,120,240,120,240,60,120,120,240,120,240,113,224,241, - 224,225,192,19,20,60,22,2,0,56,7,0,248,14,0,184, - 14,0,56,28,0,56,28,0,56,56,0,56,48,0,56,112, - 0,56,224,0,56,227,192,57,195,192,1,199,192,3,143,192, - 3,13,192,7,29,192,14,57,192,14,63,224,28,63,224,28, - 1,192,56,1,192,19,20,60,21,1,0,56,6,0,248,14, - 0,184,12,0,56,28,0,56,24,0,56,48,0,56,112,0, - 56,96,0,56,224,0,56,199,128,57,207,224,3,156,224,3, - 0,224,7,1,224,6,1,192,14,3,128,28,7,0,28,30, - 0,56,31,224,48,31,224,20,20,60,22,1,0,124,1,192, - 230,3,128,231,3,0,7,7,0,30,14,0,30,14,0,7, - 28,0,231,24,0,231,56,0,126,49,224,24,115,224,0,227, - 224,0,199,224,1,198,224,1,140,224,3,156,224,3,31,240, - 7,31,240,14,0,224,12,0,224,12,19,38,15,1,251,7, - 128,7,128,7,128,0,0,0,0,7,0,7,0,7,0,14, - 0,28,0,56,0,112,0,240,0,240,0,240,112,240,112,127, - 240,63,224,15,128,19,28,84,19,0,0,7,0,0,3,128, - 0,1,128,0,1,192,0,0,192,0,0,96,0,0,0,0, - 0,0,0,1,240,0,1,240,0,1,248,0,3,248,0,3, - 248,0,3,188,0,7,188,0,7,156,0,15,30,0,15,30, - 0,15,30,0,30,15,0,30,15,0,31,255,128,63,255,128, - 63,255,128,56,3,192,120,3,192,120,3,192,240,1,224,19, - 28,84,19,0,0,0,28,0,0,56,0,0,56,0,0,112, - 0,0,96,0,0,192,0,0,0,0,0,0,0,1,240,0, - 1,240,0,1,248,0,3,248,0,3,248,0,3,188,0,7, - 188,0,7,156,0,15,30,0,15,30,0,15,30,0,30,15, - 0,30,15,0,31,255,128,63,255,128,63,255,128,56,3,192, - 120,3,192,120,3,192,240,1,224,19,28,84,19,0,0,0, - 224,0,1,240,0,1,240,0,3,184,0,3,24,0,6,12, - 0,0,0,0,0,0,0,1,240,0,1,240,0,1,248,0, - 3,248,0,3,248,0,3,188,0,7,188,0,7,156,0,15, - 30,0,15,30,0,15,30,0,30,15,0,30,15,0,31,255, - 128,63,255,128,63,255,128,56,3,192,120,3,192,120,3,192, - 240,1,224,19,26,78,19,0,0,1,204,0,3,248,0,6, - 120,0,0,0,0,0,0,0,0,0,0,1,240,0,1,240, - 0,1,248,0,3,248,0,3,248,0,3,188,0,7,188,0, - 7,156,0,15,30,0,15,30,0,15,30,0,30,15,0,30, - 15,0,31,255,128,63,255,128,63,255,128,56,3,192,120,3, - 192,120,3,192,240,1,224,19,26,78,19,0,0,7,28,0, - 7,28,0,7,28,0,0,0,0,0,0,0,0,0,0,1, - 240,0,1,240,0,3,248,0,3,248,0,3,248,0,7,188, - 0,7,188,0,7,60,0,15,30,0,15,30,0,30,31,0, - 30,15,0,30,15,0,63,255,128,63,255,128,63,255,128,120, - 3,192,120,3,192,112,3,192,240,1,224,19,29,87,19,0, - 0,0,224,0,1,240,0,3,24,0,3,24,0,3,24,0, - 1,240,0,0,224,0,0,0,0,0,0,0,1,240,0,1, - 240,0,3,240,0,3,248,0,3,248,0,7,188,0,7,188, - 0,7,60,0,15,30,0,15,30,0,30,30,0,30,15,0, - 30,15,0,63,255,128,63,255,128,63,255,128,120,3,192,120, - 3,192,240,3,192,240,1,224,25,20,80,26,0,0,0,63, - 255,128,0,63,255,128,0,127,0,0,0,127,0,0,0,255, - 0,0,1,239,0,0,1,239,0,0,3,207,0,0,3,207, - 255,128,7,143,255,128,7,143,255,128,15,15,0,0,15,255, - 0,0,31,255,0,0,31,255,0,0,60,15,0,0,56,15, - 0,0,120,15,255,128,112,15,255,128,240,15,255,128,17,27, - 81,19,1,249,7,240,0,15,252,0,63,254,0,60,31,0, - 120,31,0,112,15,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,15,128,112,15, - 0,120,31,0,60,63,0,63,254,0,15,252,0,3,240,0, - 0,128,0,0,224,0,0,240,0,0,48,0,0,48,0,3, - 240,0,0,128,0,13,28,56,17,2,0,60,0,28,0,14, - 0,6,0,7,0,3,0,0,0,0,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,240,0,255,248,255, - 248,255,248,13,28,56,17,2,0,1,224,1,192,3,128,3, - 0,6,0,6,0,0,0,0,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,13,28,56,17,2,0,15,0,15,128,13,128,29,192,24, - 192,48,96,0,0,0,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,13, - 26,52,17,2,0,56,224,56,224,56,224,0,0,0,0,0, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,248,255,248,255,248,7,28,28,8,255,0,240, - 112,56,24,28,12,0,0,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,6,28,28,7,2, - 0,28,56,48,112,96,192,0,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,8,28,28, - 8,0,0,60,60,126,102,198,195,0,0,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,9, - 26,52,9,0,0,227,128,227,128,227,128,0,0,0,0,0, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,18,20,60,19,0,0,63, - 224,0,63,252,0,63,254,0,60,31,0,60,15,128,60,7, - 128,60,3,192,60,3,192,60,3,192,255,195,192,255,195,192, - 60,3,192,60,3,192,60,3,192,60,7,128,60,15,128,60, - 31,0,63,254,0,63,252,0,63,224,0,17,26,78,21,2, - 0,7,152,0,7,248,0,12,240,0,0,0,0,0,0,0, - 0,0,0,252,7,128,252,7,128,254,7,128,254,7,128,255, - 7,128,255,7,128,247,135,128,247,135,128,243,199,128,243,199, - 128,241,231,128,241,231,128,240,247,128,240,247,128,240,127,128, - 240,127,128,240,63,128,240,63,128,240,31,128,240,31,128,18, - 28,84,20,1,0,14,0,0,7,0,0,3,128,0,1,128, - 0,0,192,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,31,254,0,62,31,0,120,7,128,120,7,128,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,120,7,128,120,7,128,62,31,0, - 31,254,0,15,252,0,3,240,0,18,28,84,20,1,0,0, - 60,0,0,56,0,0,112,0,0,96,0,0,192,0,0,0, - 0,0,0,0,0,0,0,3,240,0,15,252,0,31,254,0, - 62,31,0,120,7,128,120,7,128,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,120,7,128,120,7,128,62,31,0,31,254,0,15,252,0, - 3,240,0,18,28,84,20,1,0,1,224,0,3,240,0,3, - 240,0,7,56,0,6,24,0,0,0,0,0,0,0,0,0, - 0,3,240,0,15,252,0,31,254,0,62,31,0,120,7,128, - 120,7,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,120,7,128,120,7, - 128,62,31,0,31,254,0,15,252,0,3,240,0,18,27,81, - 20,1,0,0,8,0,7,248,0,7,248,0,4,0,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,31,254, - 0,62,31,0,120,7,128,120,7,128,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,120,7,128,120,7,128,62,31,0,31,254,0,15,252, - 0,3,240,0,18,27,81,20,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 240,0,15,252,0,31,254,0,62,31,0,120,7,128,120,7, - 128,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,120,7,128,120,7,128,62, - 31,0,31,254,0,15,252,0,3,240,0,15,14,28,27,6, - 2,192,6,96,12,48,24,24,48,12,96,6,192,3,128,3, - 128,6,192,12,96,24,48,48,24,96,12,64,4,20,22,66, - 20,0,255,0,0,32,1,252,112,7,255,224,15,255,192,31, - 15,128,60,3,192,60,7,192,120,15,224,120,29,224,120,57, - 224,120,113,224,120,225,224,121,193,224,123,129,224,127,1,224, - 62,3,192,60,3,192,31,15,128,63,255,0,127,254,0,227, - 248,0,64,0,0,17,28,84,21,2,0,30,0,0,14,0, - 0,7,0,0,3,128,0,1,128,0,0,0,0,0,0,0, - 0,0,0,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,0,240,15,0, - 120,15,0,124,30,0,63,254,0,31,248,0,7,224,0,17, - 28,84,21,2,0,0,60,0,0,120,0,0,112,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,0,240,15,0,120,15,0,124,30,0, - 63,254,0,31,248,0,7,224,0,17,28,84,21,2,0,3, - 192,0,3,224,0,7,224,0,14,112,0,12,56,0,0,0, - 0,0,0,0,0,0,0,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 0,240,15,0,120,15,0,124,30,0,63,254,0,31,248,0, - 7,224,0,17,27,81,20,2,0,14,56,0,14,56,0,14, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,0,240,15,0,120,15,0,124,30, - 0,63,254,0,31,248,0,7,224,0,16,27,54,17,1,0, - 0,112,0,224,0,192,1,128,0,0,0,0,0,0,240,31, - 248,30,120,30,124,60,60,60,60,120,30,120,30,240,15,240, - 15,224,7,224,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,14,20,40,17,1,0,240,0,240,0, - 240,0,240,0,255,192,255,240,255,248,240,124,240,60,240,60, - 240,60,240,124,255,248,255,240,255,192,240,0,240,0,240,0, - 240,0,240,0,14,20,40,16,1,0,31,128,127,224,121,240, - 240,240,240,240,240,240,241,224,243,192,247,128,247,128,247,128, - 243,224,241,240,240,248,240,60,240,60,255,60,255,188,247,248, - 243,240,12,22,44,15,1,0,120,0,56,0,28,0,12,0, - 6,0,2,0,0,0,0,0,31,128,63,224,121,240,112,240, - 0,240,63,240,127,240,248,240,240,240,240,240,240,240,251,240, - 127,112,62,112,12,22,44,15,1,0,1,224,1,192,3,128, - 3,0,7,0,6,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,31,240,127,240,120,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,22,44,15,1,0,15,0,15,128, - 31,128,25,192,56,192,48,96,0,0,0,0,31,128,63,224, - 121,240,112,240,0,240,63,240,127,240,248,240,240,240,240,240, - 240,240,251,240,127,112,62,112,12,20,40,15,1,0,31,192, - 63,192,48,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,21,42,15,1,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,23,46,15,1,0,7,0,31,128, - 24,192,24,192,31,128,15,0,0,0,0,0,0,0,31,128, - 63,224,121,240,112,240,0,240,63,240,127,240,248,240,240,240, - 240,240,240,240,251,240,127,112,62,112,22,14,42,24,1,0, - 15,135,192,63,207,240,124,252,248,112,120,56,0,120,56,31, - 255,252,127,255,252,120,120,0,240,120,0,240,120,0,240,252, - 56,249,222,248,127,143,240,30,7,224,12,21,42,14,1,249, - 31,128,63,224,121,224,112,224,240,240,240,0,240,0,240,0, - 240,0,240,240,240,224,121,224,63,192,31,128,4,0,7,0, - 7,128,0,192,0,192,31,128,4,0,13,22,44,15,1,0, - 56,0,56,0,28,0,12,0,6,0,2,0,0,0,0,0, - 15,128,63,224,121,240,112,240,240,240,255,240,255,248,240,0, - 240,0,240,240,112,240,121,240,63,224,31,128,13,22,44,15, - 1,0,1,224,1,192,3,128,3,0,6,0,6,0,0,0, - 0,0,15,128,63,224,121,240,112,240,240,240,255,240,255,248, - 240,0,240,0,240,240,112,240,121,240,63,224,31,128,13,22, - 44,15,1,0,15,0,15,0,31,128,25,128,56,192,48,192, - 0,0,0,0,15,128,63,224,121,240,112,240,240,240,255,240, - 255,248,240,0,240,0,240,240,112,240,121,240,63,224,31,128, - 13,21,42,15,1,0,56,224,56,224,56,224,0,0,0,0, - 0,0,0,0,15,128,63,224,121,240,112,112,240,112,255,240, - 255,248,240,0,240,0,240,112,112,112,125,240,63,224,31,128, - 6,22,22,7,0,0,224,240,112,56,24,12,0,0,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,6,22,22,6, - 2,0,60,56,112,96,192,192,0,0,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,22,44,7,255,0,30,0, - 62,0,63,0,115,0,99,128,193,128,0,0,0,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,9,20,40,7,255,0, - 227,128,227,128,227,128,0,0,0,0,0,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,14,20,40,16,1,0,14,24, - 15,240,3,192,15,192,60,224,48,240,15,240,63,248,124,248, - 120,60,240,60,240,60,240,60,240,60,240,60,240,60,120,56, - 124,248,63,240,15,192,13,20,40,16,2,0,30,96,63,192, - 55,128,0,0,0,0,0,0,247,192,255,240,253,240,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,14,22,44,16,1,0,60,0,28,0,14,0, - 6,0,3,0,3,0,0,0,0,0,15,192,63,224,124,240, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,120,120, - 124,248,63,240,15,192,14,22,44,16,1,0,0,240,0,224, - 1,192,1,128,3,0,3,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,22,44,16,1,0,7,128, - 7,128,15,192,12,192,24,96,24,96,0,0,0,0,15,192, - 63,224,124,240,120,120,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,124,248,63,240,15,192,14,20,40,16,1,0, - 15,224,31,224,24,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,21,42,16,1,0,28,224, - 28,224,28,224,0,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,16,12,24,26,5,2,1,192, - 3,192,1,192,0,0,0,0,255,255,255,255,0,0,0,0, - 1,192,3,192,1,192,14,18,36,16,1,254,0,8,0,28, - 15,248,63,240,124,240,120,248,241,252,241,188,243,60,246,60, - 254,60,252,60,120,120,60,248,127,240,239,192,192,0,128,0, - 13,22,44,16,2,0,56,0,60,0,28,0,14,0,6,0, - 3,0,0,0,0,0,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,248,249,248,127,248, - 62,120,13,22,44,16,2,0,1,224,1,192,3,128,3,0, - 7,0,6,0,0,0,0,0,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,248,249,248, - 127,248,62,120,13,22,44,16,2,0,15,0,15,128,31,128, - 29,192,56,192,48,96,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,13,21,42,16,2,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,14,27,54,15,0,251,0,112,0,240, - 0,224,0,192,1,128,0,0,0,0,0,0,120,28,120,60, - 60,60,60,56,60,120,30,120,30,112,14,240,15,240,15,224, - 7,224,7,224,3,192,3,192,3,128,39,128,255,128,127,0, - 62,0,14,25,50,17,2,251,240,0,240,0,240,0,240,0, - 240,0,240,0,247,192,255,240,253,240,248,120,240,56,240,60, - 240,60,240,60,240,60,240,120,240,120,253,240,255,240,247,192, - 240,0,240,0,240,0,240,0,240,0,15,26,52,15,0,251, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,248,30, - 120,60,120,60,60,56,60,120,60,120,30,112,30,240,15,240, - 15,224,15,224,7,224,7,192,3,192,7,128,7,128,7,128, - 15,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=16 h=21 x= 5 y= 9 dx=26 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20n[583] U8G_SECTION(".progmem.u8g_font_fub20n") = { - 0,40,36,254,249,20,0,0,0,0,42,57,0,20,252,20, - 0,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=16 dx=28 dy= 0 ascent=22 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20r[4022] U8G_SECTION(".progmem.u8g_font_fub20r") = { - 0,40,36,254,249,20,4,242,11,37,32,127,251,22,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=22 dx=35 dy= 0 ascent=37 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =37 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25[12908] U8G_SECTION(".progmem.u8g_font_fub25") = { - 0,50,46,254,247,25,7,111,16,148,32,255,249,37,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,10,0,0,5,25,25,13,4,249,248,248,248,248, - 0,0,0,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,15,26,52,19,2,252,0,48,0,48,0, - 48,0,32,7,224,31,248,63,252,124,252,120,254,248,254,249, - 128,249,128,249,128,249,0,251,0,251,62,251,62,126,62,126, - 124,63,252,31,248,15,224,12,0,24,0,24,0,24,0,17, - 25,75,20,2,1,7,254,0,15,255,0,31,255,0,31,15, - 128,62,15,128,62,0,0,62,0,0,62,0,0,62,0,0, - 255,240,0,255,240,0,255,240,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,255,128,255,255,128,255,255,128, - 18,19,57,20,1,6,64,0,128,224,1,192,115,227,128,63, - 255,0,30,30,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 30,30,0,63,255,0,115,243,128,224,1,192,64,0,128,19, - 25,75,21,1,0,248,3,224,248,7,224,124,7,192,124,7, - 192,62,15,128,62,15,128,31,31,0,255,31,224,255,191,224, - 15,190,0,7,252,0,7,252,0,3,248,0,255,255,224,255, - 255,224,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,14,31,62,16,1,251,31,240,63, - 248,127,248,124,24,248,0,248,0,124,0,126,0,63,128,31, - 192,31,240,63,248,124,248,248,124,240,60,240,120,240,120,253, - 240,127,224,63,192,31,224,7,240,1,248,0,252,0,124,0, - 124,128,248,225,248,255,240,255,224,63,128,11,4,8,11,0, - 22,241,224,241,224,241,224,241,224,25,25,100,29,2,1,0, - 255,192,0,3,255,224,0,15,0,120,0,30,0,60,0,24, - 63,14,0,56,127,134,0,112,255,199,0,97,227,195,0,225, - 193,227,128,195,193,225,128,195,192,1,128,195,192,1,128,195, - 192,1,128,195,192,1,128,195,193,225,128,227,193,227,128,97, - 227,195,0,113,255,195,0,48,255,135,0,56,62,14,0,28, - 0,28,0,15,0,120,0,7,193,240,0,1,255,224,0,0, - 127,0,0,12,17,34,14,1,8,15,128,63,192,56,224,112, - 224,0,224,15,224,63,224,120,224,112,224,112,224,121,224,63, - 224,30,96,0,0,0,0,255,240,255,240,17,14,42,21,2, - 2,31,15,128,30,31,0,62,31,0,60,62,0,124,62,0, - 124,124,0,248,124,0,248,124,0,124,124,0,124,62,0,60, - 62,0,62,31,0,30,15,0,31,15,128,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,25,25,100,29,2,1, - 0,255,192,0,3,255,224,0,15,0,120,0,30,0,60,0, - 25,255,142,0,57,255,198,0,113,255,231,0,97,193,227,0, - 225,192,227,128,193,193,225,128,193,255,129,128,193,255,129,128, - 193,255,193,128,193,193,193,128,193,193,193,128,225,192,227,128, - 97,192,227,0,113,192,227,0,49,192,231,0,56,0,14,0, - 28,0,28,0,15,0,120,0,7,193,240,0,1,255,224,0, - 0,127,0,0,11,3,6,11,0,22,255,224,255,224,255,224, - 7,7,7,11,2,18,56,196,130,130,130,196,120,20,21,63, - 34,7,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,255,255,240,255,255,240,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,240,255, - 255,240,11,13,26,13,1,13,63,128,127,192,241,224,1,224, - 1,224,3,192,7,192,15,128,30,0,124,0,240,0,255,192, - 255,192,11,14,28,13,1,12,127,128,255,128,227,192,3,192, - 7,192,31,128,31,128,3,192,1,224,1,224,225,224,243,192, - 127,128,63,0,7,7,7,8,2,21,62,60,56,120,112,224, - 192,255,16,31,62,19,2,250,15,255,63,255,127,24,255,24, - 255,24,255,24,255,24,255,24,255,24,255,24,127,24,63,24, - 31,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,5,5,5,10,3,10,248,248,248,248, - 248,9,8,16,9,1,247,48,0,48,0,63,0,7,128,3, - 128,3,128,255,0,254,0,6,14,14,9,1,12,28,124,252, - 220,28,28,28,28,28,28,28,28,28,28,12,17,34,14,1, - 8,31,128,63,192,121,224,112,224,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,31,128,0,0,0,0,255, - 240,255,240,16,14,28,21,2,2,240,120,248,124,124,60,124, - 62,62,30,62,31,31,31,31,31,62,31,62,30,124,62,124, - 60,248,124,240,120,25,26,104,27,1,0,28,0,120,0,124, - 0,112,0,252,0,240,0,156,0,224,0,28,1,192,0,28, - 1,192,0,28,3,128,0,28,7,128,0,28,7,0,0,28, - 14,0,0,28,14,0,0,28,28,0,0,28,28,30,0,28, - 56,30,0,0,120,62,0,0,112,126,0,0,224,126,0,0, - 224,238,0,1,193,206,0,1,193,206,0,3,131,142,0,7, - 3,255,128,7,3,255,128,14,0,14,0,14,0,14,0,28, - 0,14,0,25,26,104,27,1,0,28,0,112,0,124,0,224, - 0,252,0,224,0,220,1,192,0,28,3,192,0,28,3,128, - 0,28,7,0,0,28,7,0,0,28,14,0,0,28,14,0, - 0,28,28,0,0,28,56,0,0,28,56,124,0,28,113,255, - 0,0,115,199,128,0,227,199,128,0,192,7,128,1,192,15, - 128,3,128,15,0,3,128,30,0,7,0,60,0,6,0,248, - 0,14,1,240,0,12,3,192,0,28,3,255,0,24,3,255, - 0,25,25,100,27,1,1,127,128,60,0,255,192,56,0,227, - 192,112,0,3,192,112,0,31,128,224,0,31,129,224,0,3, - 193,192,0,1,227,192,0,225,227,128,0,227,231,128,0,127, - 207,0,0,63,14,30,0,0,30,62,0,0,28,62,0,0, - 60,126,0,0,56,110,0,0,120,238,0,0,241,206,0,0, - 241,206,0,1,227,142,0,1,227,255,128,3,195,255,128,3, - 128,14,0,7,128,14,0,15,0,14,0,16,25,50,18,1, - 249,3,224,3,224,3,224,3,224,0,0,0,0,0,0,1, - 192,1,192,1,192,3,192,7,128,15,0,30,0,60,0,124, - 0,248,0,248,0,248,0,248,14,248,31,124,62,63,254,31, - 248,7,224,23,35,105,24,1,0,3,192,0,3,192,0,1, - 224,0,0,224,0,0,112,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,0,252,0,0,254,0, - 0,254,0,1,254,0,1,255,0,3,255,0,3,207,0,3, - 207,128,7,207,128,7,135,192,7,135,192,15,135,192,15,3, - 224,31,3,224,31,3,240,31,255,240,63,255,240,63,255,248, - 127,255,248,124,0,248,124,0,252,248,0,124,248,0,126,240, - 0,62,23,35,105,24,1,0,0,15,0,0,15,0,0,30, - 0,0,28,0,0,56,0,0,48,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,124,0,0,252,0,0,254,0,0, - 254,0,1,254,0,1,255,0,3,255,0,3,207,0,3,207, - 128,7,207,128,7,135,192,7,135,192,15,135,192,15,3,224, - 31,3,224,31,3,240,31,255,240,63,255,240,63,255,248,127, - 255,248,124,0,248,124,0,252,248,0,124,248,0,126,240,0, - 62,23,35,105,24,1,0,0,252,0,0,252,0,0,254,0, - 1,206,0,1,199,0,3,135,0,3,3,128,0,0,0,0, - 0,0,0,0,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 23,34,102,24,1,0,0,1,128,1,255,0,3,255,0,3, - 254,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,0,252,0,0,254,0,0,254,0,1,254,0, - 1,255,0,3,255,0,3,207,0,3,207,128,7,207,128,7, - 135,192,7,135,192,15,135,192,15,3,224,31,3,224,31,3, - 240,31,255,240,63,255,240,63,255,248,127,255,248,124,0,248, - 124,0,252,248,0,124,248,0,126,240,0,62,23,34,102,25, - 1,0,3,199,128,3,199,128,3,199,128,3,199,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 0,124,0,0,254,0,0,254,0,1,255,0,1,255,0,1, - 239,0,3,239,128,3,239,128,3,199,128,7,199,192,7,199, - 192,15,131,224,15,131,224,15,131,224,31,1,240,31,255,240, - 31,255,240,63,255,248,63,255,248,124,0,252,124,0,124,124, - 0,124,248,0,62,248,0,62,23,37,111,24,1,0,0,120, - 0,0,252,0,1,206,0,1,134,0,1,134,0,1,206,0, - 0,252,0,0,120,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,0,252,0,0,252,0,0,254,0,1,254, - 0,1,255,0,3,255,0,3,207,0,3,207,128,7,207,128, - 7,135,192,7,135,192,15,135,192,15,3,224,31,3,224,31, - 3,224,31,255,240,63,255,240,63,255,248,127,255,248,124,0, - 248,124,0,252,248,0,124,248,0,126,240,0,62,32,25,100, - 34,1,0,0,7,255,254,0,15,255,254,0,15,255,254,0, - 31,240,0,0,31,240,0,0,63,240,0,0,61,240,0,0, - 121,240,0,0,249,240,0,0,241,240,0,1,241,255,254,1, - 225,255,254,3,225,255,254,3,193,255,254,7,193,240,0,7, - 255,240,0,15,255,240,0,15,255,240,0,31,255,240,0,30, - 1,240,0,62,1,240,0,60,1,255,255,124,1,255,255,248, - 1,255,255,248,1,255,255,21,33,99,25,2,249,3,255,0, - 15,255,192,31,255,224,63,255,240,62,3,240,124,1,240,120, - 1,248,120,0,248,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,248, - 120,1,248,124,1,248,124,3,240,63,7,240,31,255,224,31, - 255,192,7,255,128,1,252,0,0,96,0,0,120,0,0,126, - 0,0,15,0,0,7,0,0,7,0,1,254,0,1,252,0, - 17,35,105,21,2,0,30,0,0,15,0,0,7,0,0,7, - 128,0,3,128,0,1,192,0,0,192,0,0,0,0,0,0, - 0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,128,255,255,128,255,255,128,255,255,128,17, - 35,105,21,2,0,0,120,0,0,240,0,0,224,0,1,192, - 0,1,128,0,3,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,0,255,255,0,255,255,0,255,255,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,17,35, - 105,21,2,0,7,224,0,7,224,0,15,240,0,14,112,0, - 14,56,0,28,56,0,24,28,0,0,0,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,128,255,255,128,255,255,128,255,255,128,17,34,102, - 21,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 0,255,255,0,255,255,0,255,255,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,0,255, - 255,0,255,255,0,255,255,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,128, - 255,255,128,255,255,128,255,255,128,8,35,35,9,255,0,240, - 120,56,60,28,12,6,0,0,0,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,7,35,35,8,2,0,30,28,60,56,112,96,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,11,35,70,9,255, - 0,31,0,63,0,63,128,59,128,113,192,97,192,192,224,0, - 0,0,0,0,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,11,34,68,11,0,0,241,224,241, - 224,241,224,241,224,0,0,0,0,0,0,0,0,0,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,23,25,75,24,0,0,63,252,0,63,255,128,63,255,192, - 63,255,224,62,7,240,62,1,248,62,0,248,62,0,124,62, - 0,124,62,0,60,62,0,60,255,240,62,255,240,62,255,240, - 62,62,0,60,62,0,60,62,0,124,62,0,124,62,0,248, - 62,1,248,62,7,240,63,255,224,63,255,192,63,255,128,63, - 252,0,21,34,102,25,2,0,0,3,0,1,255,0,3,254, - 0,7,252,0,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,0,248,255,0,248,255,0,248,255,128,248,255, - 128,248,255,192,248,255,192,248,251,224,248,251,224,248,249,224, - 248,249,240,248,248,240,248,248,248,248,248,120,248,248,124,248, - 248,60,248,248,62,248,248,30,248,248,31,248,248,31,248,248, - 15,248,248,15,248,248,7,248,248,7,248,248,3,248,23,36, - 108,27,2,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,56,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,36,108,27,2,0,0,7,192,0,7,128,0,15,0,0, - 14,0,0,28,0,0,24,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,255,128,7,255,192,31,255,240, - 31,255,240,63,1,248,126,0,252,124,0,124,120,0,60,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,124,0,124,124,0,124, - 62,0,248,63,131,248,31,255,240,15,255,224,7,255,192,0, - 254,0,23,36,108,27,2,0,0,124,0,0,254,0,0,254, - 0,1,239,0,1,199,0,3,131,128,3,1,128,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,128,7,255,192,31, - 255,240,31,255,240,63,1,248,126,0,252,124,0,124,120,0, - 60,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,124,0,124,124, - 0,124,62,0,248,63,131,248,31,255,240,15,255,224,7,255, - 192,0,254,0,23,34,102,27,2,0,0,241,128,1,255,128, - 3,255,0,3,30,0,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,34,102,27,2,0,3,199,128,3,199,128,3,199,128,3, - 199,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,255,128,7,255,192,31,255,240,31,255,240,63,1,248, - 126,0,252,124,0,124,120,0,60,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,62,0,248,63,131,248, - 31,255,240,15,255,224,7,255,192,0,254,0,18,19,57,34, - 8,1,64,0,0,224,0,192,112,1,128,56,3,0,28,6, - 0,14,12,0,6,24,0,3,48,0,1,224,0,0,192,0, - 1,224,0,3,48,0,6,24,0,12,12,0,24,6,0,48, - 3,0,112,1,128,224,1,192,64,0,128,25,28,112,27,1, - 255,0,0,1,0,0,0,3,128,1,255,195,128,3,255,247, - 0,15,255,254,0,15,255,252,0,31,128,252,0,63,0,126, - 0,62,0,254,0,60,1,254,0,124,3,223,0,124,7,159, - 0,124,15,31,0,124,30,31,0,124,60,31,0,124,120,31, - 0,124,240,31,0,125,224,31,0,127,192,31,0,63,128,62, - 0,63,0,62,0,63,0,124,0,31,193,252,0,63,255,248, - 0,127,255,240,0,243,255,224,0,224,127,0,0,64,0,0, - 0,21,36,108,25,2,0,15,0,0,7,128,0,3,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,120,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,36,108,25,2,0,0,15,128,0,15,0,0, - 30,0,0,60,0,0,56,0,0,112,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,240,248,0,240, - 120,1,240,124,3,240,127,7,224,63,255,192,31,255,128,15, - 255,0,3,252,0,21,36,108,25,2,0,0,248,0,1,248, - 0,1,252,0,3,220,0,7,142,0,7,14,0,14,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,240,248, - 0,240,120,1,240,124,3,240,127,7,224,63,255,192,31,255, - 128,15,255,0,3,252,0,21,34,102,25,2,0,7,143,0, - 7,143,0,7,143,0,7,143,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,124,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,35,105,22,1,0,0,30,0,0,30,0,0, - 28,0,0,56,0,0,48,0,0,112,0,0,0,0,0,0, - 0,0,0,0,0,0,0,252,1,248,252,1,240,126,3,224, - 126,3,224,63,7,192,31,7,192,31,143,128,15,143,128,15, - 223,0,7,223,0,7,254,0,3,254,0,3,252,0,1,248, - 0,1,248,0,0,240,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,18,25,75,22,2,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,240,0,255,254,0,255,255,0,255,255,128, - 248,15,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,255,255,128,255,255,0,255,254,0,255,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,18,25,75,19,1,1,31,240,0,63,252,0,127, - 252,0,248,62,0,248,62,0,248,62,0,248,62,0,248,124, - 0,248,248,0,248,240,0,249,240,0,251,224,0,251,224,0, - 249,248,0,249,252,0,248,127,0,248,63,128,248,15,128,248, - 7,128,248,7,192,251,199,192,251,199,128,249,255,128,249,255, - 0,248,126,0,15,28,56,19,2,0,60,0,30,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,7,224, - 63,248,127,252,124,62,120,62,0,62,15,254,63,254,127,254, - 124,62,248,62,248,62,248,62,248,62,252,126,127,254,63,222, - 31,30,15,28,56,19,2,0,0,120,0,240,0,240,1,224, - 1,192,1,128,3,0,0,0,0,0,0,0,7,224,63,248, - 127,252,124,62,120,62,0,62,15,254,63,254,127,254,124,62, - 248,62,248,62,248,62,248,62,252,126,127,254,63,222,31,30, - 15,28,56,19,2,0,7,192,7,224,15,224,14,240,28,112, - 24,56,56,24,0,0,0,0,0,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,15,26, - 52,19,2,0,0,24,15,248,31,240,31,224,48,0,0,0, - 0,0,0,0,7,224,63,248,127,252,124,62,120,62,0,62, - 15,254,63,254,127,254,124,62,248,62,248,62,248,62,248,62, - 252,126,127,254,63,222,31,30,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 15,224,63,248,127,252,124,62,120,62,0,62,15,254,63,254, - 127,254,124,62,248,62,248,62,248,62,248,62,252,126,127,254, - 63,222,31,30,15,30,60,19,2,0,3,192,7,224,14,112, - 12,48,12,48,14,112,7,224,3,192,0,0,0,0,0,0, - 0,0,7,224,31,248,63,252,124,62,120,62,0,62,15,254, - 63,254,127,254,124,62,248,62,248,62,248,62,248,62,252,126, - 127,254,63,222,31,30,27,18,72,31,2,0,7,224,124,0, - 31,249,255,0,127,253,255,128,124,63,135,192,120,31,3,192, - 0,31,3,224,7,255,255,224,63,255,255,224,127,255,255,224, - 124,31,0,0,248,31,0,0,248,31,0,0,248,31,131,224, - 248,31,131,192,252,59,199,192,127,241,255,192,63,224,255,128, - 15,128,126,0,15,26,52,18,2,248,7,224,31,248,63,252, - 124,124,120,60,248,62,248,62,248,0,248,0,248,0,248,0, - 248,62,248,62,120,60,124,124,63,252,31,248,15,224,3,0, - 3,128,3,224,0,240,0,112,0,112,15,224,15,192,15,28, - 56,19,2,0,62,0,30,0,15,0,7,0,7,128,3,128, - 1,192,0,0,0,0,0,0,7,224,31,248,63,252,124,60, - 120,62,248,30,248,30,255,254,255,254,255,254,248,0,248,0, - 248,30,120,62,124,62,63,252,31,248,7,224,15,28,56,19, - 2,0,0,120,0,112,0,240,0,224,1,192,1,128,3,0, - 0,0,0,0,0,0,7,224,31,248,63,252,124,60,120,62, - 248,30,248,30,255,254,255,254,255,254,248,0,248,0,248,30, - 120,62,124,62,63,252,31,248,7,224,15,28,56,19,2,0, - 7,224,7,224,15,224,14,112,28,112,28,56,56,24,0,0, - 0,0,0,0,7,224,31,248,63,252,124,60,120,62,248,30, - 248,30,255,254,255,254,255,254,248,0,248,0,248,30,120,62, - 124,62,63,252,31,248,7,224,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 7,224,31,248,63,252,124,124,120,62,248,62,248,62,255,254, - 255,254,255,254,248,0,248,0,248,62,120,62,124,126,63,252, - 31,248,7,224,8,28,28,9,255,0,240,120,120,60,28,14, - 6,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,7,28,28,8,2,0,30,60,56,120, - 112,224,192,0,0,0,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,10,28,56,9,255,0,31,0, - 63,0,63,128,123,128,115,192,97,192,224,192,0,0,0,0, - 0,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,11,26,52,9,255,0,241,224,241,224, - 241,224,241,224,0,0,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 18,26,78,21,2,0,0,1,0,15,135,0,3,254,0,1, - 248,0,3,248,0,15,252,0,60,60,0,16,30,0,7,255, - 0,31,255,0,63,255,0,126,31,128,124,15,128,248,15,128, - 248,7,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,128,120,15,128,124,15,128,126,31,0,63,255,0,31,252, - 0,3,240,0,16,26,52,20,2,0,0,24,15,248,31,248, - 31,240,48,0,0,0,0,0,0,0,249,248,251,252,255,254, - 252,63,252,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,18,28, - 84,21,2,0,31,0,0,15,0,0,7,128,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,63,254,0,62,31,0,124,15, - 128,120,15,128,248,7,128,248,7,128,248,7,192,248,7,192, - 248,7,192,248,7,128,120,15,128,124,15,128,62,31,0,63, - 254,0,15,252,0,3,240,0,18,28,84,21,2,0,0,60, - 0,0,56,0,0,120,0,0,112,0,0,224,0,0,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,63,254,0,62,31,0,124,15,128,120,15,128,248,7, - 128,248,7,128,248,7,192,248,7,192,248,7,192,248,7,128, - 120,15,128,124,15,128,62,31,0,63,254,0,15,252,0,3, - 240,0,18,28,84,21,2,0,3,224,0,3,240,0,7,240, - 0,7,56,0,14,56,0,14,28,0,28,12,0,0,0,0, - 0,0,0,0,0,0,3,240,0,15,252,0,63,254,0,62, - 31,0,124,15,128,120,15,128,248,7,128,248,7,128,248,7, - 192,248,7,192,248,7,192,248,7,128,120,15,128,124,15,128, - 62,31,0,63,254,0,15,252,0,3,240,0,18,27,81,21, - 2,0,0,4,0,0,12,0,7,252,0,15,248,0,15,240, - 0,24,0,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,63,254,0,62,31,0,124,15,128,120,15,128,248, - 7,128,248,7,128,248,7,192,248,7,192,248,7,192,248,7, - 128,120,15,128,124,15,128,62,31,0,63,254,0,15,252,0, - 3,240,0,18,27,81,21,2,0,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,63,254,0,62,31,0, - 124,15,128,120,15,128,248,7,128,248,7,128,248,7,192,248, - 7,192,248,7,192,248,7,128,120,15,128,124,15,128,62,31, - 0,63,254,0,15,252,0,3,240,0,20,15,45,34,7,3, - 0,112,0,0,248,0,0,248,0,0,112,0,0,0,0,0, - 0,0,0,0,0,255,255,240,255,255,240,0,0,0,0,0, - 0,0,112,0,0,248,0,0,248,0,0,112,0,18,23,69, - 21,2,254,0,1,0,0,1,128,0,3,128,3,247,0,15, - 255,0,63,254,0,62,31,0,124,63,128,120,55,128,248,119, - 128,248,231,128,249,199,192,251,135,192,251,135,192,255,7,128, - 126,15,128,124,15,128,62,31,0,63,254,0,127,252,0,227, - 240,0,224,0,0,192,0,0,16,28,56,20,2,0,62,0, - 30,0,15,0,7,0,3,128,3,128,1,192,0,0,0,0, - 0,0,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,252,63, - 127,255,63,223,31,159,16,28,56,20,2,0,0,120,0,240, - 0,240,0,224,1,192,1,128,3,0,0,0,0,0,0,0, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,252,63,127,255, - 63,223,31,159,16,28,56,20,2,0,7,224,7,224,15,240, - 14,112,28,56,28,56,56,28,0,0,0,0,0,0,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,252,63,127,255,63,223, - 31,159,16,27,54,20,2,0,60,120,60,120,60,120,60,120, - 0,0,0,0,0,0,0,0,0,0,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,252,63,127,255,63,223,31,159,17,35, - 105,19,1,249,0,30,0,0,60,0,0,56,0,0,120,0, - 0,112,0,0,224,0,0,192,0,0,0,0,0,0,0,0, - 0,0,248,15,128,248,15,128,252,15,128,124,31,0,126,31, - 0,62,31,0,62,62,0,63,62,0,31,60,0,31,124,0, - 15,252,0,15,248,0,15,248,0,7,248,0,7,240,0,3, - 240,0,3,240,0,3,224,0,3,224,0,3,192,0,103,192, - 0,255,192,0,255,192,0,127,128,0,62,0,0,17,32,96, - 21,2,249,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,249,240,0,255,252,0,255,254, - 0,254,63,0,252,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,254,63,0,255,254,0,255,252,0,251,240,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,17,33,99,19,1,249,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,248,15,128,248,15,128,252,15,128,124,31,0,124,31,0, - 126,31,0,62,62,0,63,62,0,31,62,0,31,124,0,31, - 252,0,15,248,0,15,248,0,7,248,0,7,240,0,7,240, - 0,3,240,0,3,224,0,3,224,0,3,224,0,7,192,0, - 7,192,0,7,192,0,15,128,0,15,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=13 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25n[957] U8G_SECTION(".progmem.u8g_font_fub25n") = { - 0,50,46,254,247,25,0,0,0,0,42,57,0,26,251,25, - 0,14,13,26,22,4,13,28,224,60,240,28,224,15,192,135, - 132,255,252,255,252,231,156,15,192,30,224,28,224,60,240,8, - 64,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,7,9,9,11,2,251,62,60,60,120, - 120,112,240,240,224,9,5,10,11,1,7,255,128,255,128,255, - 128,255,128,255,128,5,5,5,10,3,0,248,248,248,248,248, - 11,28,56,15,2,254,0,224,0,224,1,192,1,192,1,192, - 3,128,3,128,3,128,3,128,7,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,28,0,56,0,56,0,56,0, - 56,0,112,0,112,0,112,0,224,0,224,0,224,0,17,25, - 75,19,1,1,7,224,0,31,252,0,63,254,0,60,30,0, - 120,15,0,120,15,0,120,15,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,60,30,0,31,252,0,15,248,0,7,224,0,11, - 25,50,19,3,1,3,224,15,224,31,224,127,224,255,224,251, - 224,243,224,195,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,17,25,75,19,1,1,7,248,0, - 31,254,0,31,255,0,63,255,0,126,31,128,124,15,128,124, - 15,128,0,15,128,0,15,128,0,31,0,0,31,0,0,62, - 0,0,126,0,0,252,0,1,248,0,3,240,0,7,224,0, - 15,192,0,63,0,0,126,0,0,252,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,16,25,50,19,2,1,31,240, - 63,252,127,254,255,254,248,62,248,31,0,31,0,30,0,126, - 7,252,7,240,7,248,7,252,0,62,0,31,0,31,0,31, - 248,31,248,31,248,31,252,62,127,254,127,252,31,248,15,224, - 18,25,75,19,1,1,0,126,0,0,254,0,0,254,0,1, - 254,0,3,254,0,3,254,0,7,190,0,15,190,0,15,62, - 0,30,62,0,30,62,0,60,62,0,124,62,0,120,62,0, - 240,62,0,255,255,192,255,255,192,255,255,192,255,255,192,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,17,25,75,19,1,1,255,254,0,255,254,0,255,254,0, - 255,254,0,248,0,0,248,0,0,248,0,0,248,0,0,249, - 240,0,255,252,0,255,254,0,252,63,0,248,31,0,248,15, - 0,0,15,128,0,15,128,0,15,128,0,15,0,248,15,0, - 248,31,0,252,63,0,127,254,0,127,252,0,63,248,0,15, - 224,0,17,25,75,19,1,1,3,240,0,15,252,0,31,254, - 0,63,255,0,62,31,0,126,15,128,124,0,0,124,0,0, - 252,0,0,248,248,0,251,254,0,255,254,0,255,31,0,254, - 15,128,252,15,128,252,15,128,252,15,128,252,15,128,124,15, - 128,126,15,128,127,31,0,63,255,0,31,254,0,15,252,0, - 3,240,0,16,25,50,19,2,1,255,255,255,255,255,255,255, - 255,0,15,0,31,0,30,0,62,0,62,0,124,0,124,0, - 248,0,248,0,240,1,240,1,240,3,224,3,224,7,192,7, - 192,15,128,15,128,15,128,31,0,31,0,17,25,75,19,1, - 1,7,240,0,31,252,0,127,255,0,127,255,0,252,31,128, - 248,15,128,248,15,128,120,15,0,124,31,0,63,254,0,15, - 248,0,31,248,0,63,254,0,124,63,0,248,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,252,31,128, - 127,255,0,127,255,0,31,252,0,7,240,0,17,25,75,19, - 1,1,7,240,0,31,252,0,63,254,0,127,254,0,124,63, - 0,248,31,0,248,31,0,248,31,128,248,31,128,248,31,128, - 248,63,128,124,63,128,127,255,128,63,239,128,15,207,128,0, - 15,128,0,31,0,0,31,0,248,31,0,120,63,0,124,126, - 0,63,254,0,63,252,0,31,248,0,7,224,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=21 dx=35 dy= 0 ascent=28 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25r[5936] U8G_SECTION(".progmem.u8g_font_fub25r") = { - 0,50,46,254,247,25,7,111,16,148,32,127,249,28,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255 - }; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=26 dx=42 dy= 0 ascent=43 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30[16953] U8G_SECTION(".progmem.u8g_font_fub30") = { - 0,59,54,253,245,30,9,163,21,182,32,255,249,43,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,12,0,0,5,28,28,16, - 5,248,248,248,248,248,248,0,0,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,18,30, - 90,24,3,250,0,6,0,0,14,0,0,12,0,0,12,0, - 0,28,0,7,252,0,31,255,0,63,255,128,63,63,128,124, - 63,192,124,127,192,252,103,192,248,96,0,248,96,0,248,192, - 0,248,192,0,248,192,0,253,192,0,253,143,192,125,143,192, - 127,143,192,127,31,128,63,255,128,31,255,0,7,252,0,6, - 0,0,14,0,0,12,0,0,12,0,0,28,0,0,20,31, - 93,23,2,0,0,16,0,3,255,128,7,255,192,15,255,224, - 15,199,240,31,131,240,31,131,240,31,1,240,31,0,0,31, - 0,0,31,0,0,31,0,0,255,252,0,255,252,0,255,252, - 0,255,252,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,255,255,240,255,255,240,255,255,240,255,255, - 240,21,21,63,25,2,8,192,0,24,224,0,56,113,252,112, - 63,255,224,31,7,192,28,1,192,24,1,192,56,0,224,48, - 0,96,48,0,96,48,0,96,48,0,96,48,0,224,56,0, - 224,28,1,192,30,3,192,31,143,192,63,255,224,113,252,112, - 224,0,56,192,0,24,22,30,90,24,1,0,252,0,252,252, - 0,252,124,1,248,126,1,248,62,3,240,63,3,240,63,7, - 224,31,135,224,255,135,252,255,143,252,255,207,252,7,223,128, - 7,255,0,3,255,0,3,255,0,1,254,0,255,255,252,255, - 255,252,255,255,252,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,2,38,38,14,6,248,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,16,36,72,19,1,251,15,252,31,254,63,254,126,14, - 124,2,124,0,124,0,126,0,127,0,63,192,31,224,15,248, - 31,252,63,254,126,127,124,63,248,31,248,31,248,31,252,62, - 254,252,127,248,63,240,31,248,7,252,1,254,0,127,0,63, - 0,63,0,31,0,63,64,126,127,254,127,252,127,240,31,192, - 13,5,10,13,0,26,240,120,240,120,240,120,240,120,240,120, - 30,30,120,34,2,1,0,63,240,0,0,255,252,0,3,248, - 127,0,7,192,15,128,15,0,3,192,30,0,1,224,60,31, - 240,240,56,63,248,112,120,127,252,120,112,248,124,56,112,248, - 62,56,225,240,62,28,225,240,62,28,225,240,0,28,225,240, - 0,28,225,240,0,28,225,240,0,28,225,240,62,28,225,240, - 62,28,112,248,62,56,112,248,124,56,112,127,252,120,56,63, - 248,112,60,31,224,240,30,0,1,224,15,0,3,192,7,128, - 15,128,3,240,63,0,1,255,252,0,0,63,240,0,14,20, - 40,16,1,10,15,192,63,240,120,240,120,120,0,120,15,248, - 63,248,124,120,240,120,240,120,240,120,240,248,255,248,127,248, - 63,56,0,0,0,0,0,0,255,252,255,252,20,16,48,24, - 2,2,15,193,240,15,131,224,31,135,224,31,7,192,63,15, - 192,126,15,192,126,31,128,252,31,128,252,31,128,126,31,128, - 126,15,192,63,15,192,31,7,192,31,135,224,15,131,224,15, - 193,240,21,9,27,25,2,8,255,255,248,255,255,248,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,255,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,248,127,0,7,192,15,128,15,0,3,192,30,0, - 1,224,60,255,192,240,56,255,240,112,120,255,248,120,112,240, - 124,56,112,240,60,56,224,240,60,28,224,240,60,28,224,240, - 120,28,224,255,240,28,224,255,224,28,224,255,248,28,224,240, - 120,28,224,240,120,28,112,240,56,56,112,240,60,56,112,240, - 60,120,56,240,60,112,60,240,60,240,30,0,1,224,15,0, - 3,192,7,128,15,128,3,240,63,0,1,255,252,0,0,63, - 240,0,13,4,8,13,0,26,255,248,255,248,255,248,255,248, - 9,9,18,13,2,21,62,0,127,0,227,128,193,128,193,128, - 193,128,227,128,127,0,62,0,24,24,72,40,8,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,255,255,255,255,255,255,255,255,255,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 255,255,255,255,255,255,13,16,32,15,1,15,63,224,127,240, - 248,120,240,120,0,120,0,248,1,240,3,224,7,192,15,128, - 31,0,60,0,240,0,255,240,255,240,255,240,12,15,30,14, - 1,16,63,192,127,224,240,240,240,240,0,240,1,224,15,192, - 15,192,1,224,0,240,0,240,240,240,249,240,127,224,63,128, - 8,8,8,9,2,25,31,31,62,60,120,112,240,224,255,18, - 36,108,22,2,250,7,255,192,31,255,192,63,199,0,127,199, - 0,255,199,0,255,199,0,255,199,0,255,199,0,255,199,0, - 255,199,0,255,199,0,255,199,0,127,199,0,63,199,0,15, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,1,199,0,1,199,0,1,199,0,1,199,0,1,199,0, - 1,199,0,1,199,0,1,199,0,1,199,0,1,199,0,1, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,5,5,5,12,3,11,248,248,248,248,248,9,10,20,10, - 2,246,48,0,48,0,60,0,63,0,7,128,3,128,3,128, - 135,128,255,0,252,0,7,16,16,11,2,14,30,62,254,254, - 158,30,30,30,30,30,30,30,30,30,30,30,14,19,38,16, - 1,11,15,192,31,224,60,240,120,120,112,56,240,60,240,60, - 240,60,240,60,240,60,112,56,120,120,60,240,31,224,15,192, - 0,0,0,0,255,252,255,252,20,16,48,24,2,2,252,31, - 0,124,31,0,126,15,128,62,15,192,63,15,192,31,7,224, - 31,135,224,31,131,240,31,131,240,31,135,224,31,7,224,63, - 15,192,62,15,192,126,15,128,124,31,0,252,31,0,28,31, - 124,32,2,255,30,0,15,0,62,0,30,0,254,0,30,0, - 254,0,60,0,158,0,124,0,30,0,120,0,30,0,248,0, - 30,0,240,0,30,1,240,0,30,1,224,0,30,3,192,0, - 30,3,192,0,30,7,128,0,30,15,128,0,30,15,0,0, - 30,31,3,224,0,30,7,224,0,60,15,224,0,60,15,224, - 0,120,31,224,0,120,61,224,0,240,121,224,0,240,121,224, - 1,224,241,224,3,193,225,224,3,193,255,240,7,129,255,240, - 7,128,1,224,15,0,1,224,15,0,1,224,30,0,1,224, - 28,30,120,31,2,0,30,0,30,0,62,0,60,0,254,0, - 56,0,222,0,120,0,158,0,240,0,30,0,240,0,30,1, - 224,0,30,1,224,0,30,3,192,0,30,3,192,0,30,7, - 128,0,30,7,128,0,30,15,0,0,30,30,0,0,30,30, - 31,128,30,60,63,224,0,60,125,224,0,120,240,240,0,120, - 240,240,0,240,0,240,0,240,1,240,1,224,3,224,1,192, - 7,192,3,192,15,128,7,128,31,0,7,128,62,0,15,0, - 124,0,15,0,240,0,30,0,255,240,30,0,255,240,29,30, - 120,31,1,1,63,192,3,192,127,224,7,192,240,240,7,128, - 240,240,15,0,0,240,15,0,1,224,30,0,15,192,30,0, - 15,192,60,0,1,224,124,0,0,240,120,0,0,240,240,0, - 240,240,240,0,249,241,224,0,127,225,224,0,63,131,193,240, - 0,3,195,240,0,7,135,240,0,15,7,240,0,15,15,240, - 0,30,30,240,0,30,60,240,0,60,60,240,0,60,120,240, - 0,120,240,240,0,240,255,248,0,240,255,248,1,224,0,240, - 1,224,0,240,3,192,0,240,3,192,0,240,19,28,84,23, - 2,248,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,0,0,0,0,0,0,0,0,0,240,0,0,240,0, - 0,240,0,0,240,0,1,224,0,7,224,0,15,128,0,31, - 0,0,62,0,0,124,0,0,252,0,0,252,0,0,248,1, - 0,252,3,128,252,7,224,126,15,192,127,255,192,63,255,128, - 15,254,0,3,248,0,27,41,164,28,1,0,1,240,0,0, - 1,240,0,0,0,248,0,0,0,120,0,0,0,60,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,63,128,0, - 0,127,128,0,0,127,128,0,0,127,192,0,0,255,192,0, - 0,255,224,0,0,255,224,0,1,251,224,0,1,243,240,0, - 3,243,240,0,3,241,240,0,3,225,248,0,7,225,248,0, - 7,224,248,0,7,192,252,0,15,192,252,0,15,192,126,0, - 15,128,126,0,31,255,254,0,31,255,255,0,63,255,255,0, - 63,255,255,0,63,255,255,128,126,0,31,128,126,0,31,128, - 126,0,15,192,252,0,15,192,252,0,7,192,248,0,7,224, - 27,41,164,28,1,0,0,3,240,0,0,3,224,0,0,3, - 192,0,0,7,128,0,0,7,0,0,0,15,0,0,0,14, - 0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,127, - 128,0,0,127,192,0,0,255,192,0,0,255,224,0,0,255, - 224,0,1,251,224,0,1,243,240,0,3,243,240,0,3,241, - 240,0,3,225,248,0,7,225,248,0,7,224,248,0,7,192, - 252,0,15,192,252,0,15,192,126,0,15,128,126,0,31,255, - 254,0,31,255,255,0,63,255,255,0,63,255,255,0,63,255, - 255,128,126,0,31,128,126,0,31,128,126,0,15,192,252,0, - 15,192,252,0,7,192,248,0,7,224,27,41,164,28,1,0, - 0,63,0,0,0,63,128,0,0,127,128,0,0,123,192,0, - 0,243,192,0,0,225,224,0,1,192,224,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0, - 0,63,128,0,0,127,128,0,0,127,128,0,0,127,192,0, - 0,255,192,0,0,255,224,0,0,255,224,0,1,251,224,0, - 1,243,240,0,3,243,240,0,3,241,240,0,3,225,248,0, - 7,225,248,0,7,224,248,0,7,192,252,0,15,192,252,0, - 15,192,126,0,15,128,126,0,31,255,254,0,31,255,255,0, - 63,255,255,0,63,255,255,0,63,255,255,128,126,0,31,128, - 126,0,31,128,126,0,15,192,252,0,15,192,252,0,7,192, - 248,0,7,224,27,39,156,28,1,0,0,120,112,0,0,255, - 224,0,1,255,224,0,1,255,192,0,1,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,63,128,0,0,127,128,0,0,127,128,0,0,127, - 192,0,0,255,192,0,0,255,224,0,0,255,224,0,1,251, - 224,0,1,243,240,0,3,243,240,0,3,241,240,0,3,225, - 248,0,7,225,248,0,7,224,248,0,7,192,252,0,15,192, - 252,0,15,192,126,0,15,128,126,0,31,255,254,0,31,255, - 255,0,63,255,255,0,63,255,255,0,63,255,255,128,126,0, - 31,128,126,0,31,128,126,0,15,192,252,0,15,192,252,0, - 7,192,248,0,7,224,27,40,160,29,1,0,1,224,240,0, - 1,224,240,0,1,224,240,0,1,224,240,0,1,224,240,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,63,128,0,0,63,128,0,0,127,192,0, - 0,127,192,0,0,127,192,0,0,255,224,0,0,255,224,0, - 1,251,240,0,1,251,240,0,1,251,240,0,3,241,248,0, - 3,241,248,0,3,224,248,0,7,224,252,0,7,224,252,0, - 7,192,124,0,15,192,126,0,15,192,126,0,15,128,62,0, - 31,255,255,0,31,255,255,0,31,255,255,0,63,255,255,128, - 63,255,255,128,126,0,31,128,126,0,15,192,126,0,15,192, - 252,0,7,224,252,0,7,224,252,0,7,224,27,43,172,28, - 0,0,0,31,0,0,0,63,128,0,0,113,192,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,113,192,0,0,63, - 128,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,63,128,0,0,63,128,0,0,63, - 128,0,0,127,192,0,0,127,192,0,0,127,192,0,0,255, - 224,0,0,251,224,0,0,251,240,0,1,251,240,0,1,241, - 240,0,1,241,248,0,3,241,248,0,3,224,248,0,7,224, - 252,0,7,224,252,0,7,192,124,0,15,192,126,0,15,192, - 126,0,15,255,254,0,31,255,255,0,31,255,255,0,31,255, - 255,128,63,255,255,128,63,0,31,128,62,0,15,192,126,0, - 15,192,126,0,15,192,252,0,7,224,252,0,7,224,38,30, - 150,40,0,0,0,1,255,255,248,0,1,255,255,248,0,3, - 255,255,248,0,3,255,255,248,0,7,255,0,0,0,7,223, - 0,0,0,15,223,0,0,0,15,159,0,0,0,31,159,0, - 0,0,31,31,0,0,0,63,31,0,0,0,62,31,0,0, - 0,126,31,255,248,0,124,31,255,248,0,252,31,255,248,0, - 248,31,255,248,1,248,31,255,248,1,240,31,0,0,3,255, - 255,0,0,7,255,255,0,0,7,255,255,0,0,15,255,255, - 0,0,15,255,255,0,0,31,128,63,0,0,31,128,63,0, - 0,63,0,63,255,252,63,0,63,255,252,126,0,63,255,252, - 126,0,63,255,252,252,0,63,255,252,24,40,120,29,2,247, - 1,255,192,3,255,240,15,255,248,15,255,252,31,255,254,63, - 128,254,62,0,127,126,0,127,124,0,63,124,0,63,252,0, - 0,252,0,0,252,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,252,0,0,124,0,63,124, - 0,127,126,0,127,62,0,255,63,0,254,31,255,254,31,255, - 252,15,255,248,7,255,240,1,255,192,0,24,0,0,24,0, - 0,31,0,0,31,128,0,3,192,0,1,192,0,1,192,0, - 195,192,0,255,128,0,254,0,20,41,123,25,3,0,15,128, - 0,15,128,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,20,41,123,25,3,0,0, - 63,0,0,62,0,0,124,0,0,120,0,0,240,0,0,224, - 0,1,224,0,1,192,0,0,0,0,0,0,0,0,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,224,255,255,224,255,255,224, - 255,255,224,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,20,41,123,25,3,0, - 3,248,0,3,248,0,7,252,0,7,188,0,7,30,0,14, - 14,0,14,7,0,28,7,0,0,0,0,0,0,0,0,0, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,224,255,255,224,255,255, - 224,255,255,224,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,20,40,120,25,3, - 0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,9,41,82,11,255,0,248, - 0,124,0,60,0,30,0,14,0,15,0,7,0,3,0,0, - 0,0,0,0,0,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,8,41,41,10,3,0,15,31,30,60,56,120,112,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 12,41,82,11,0,0,31,128,63,128,63,128,123,192,121,192, - 112,224,224,224,192,112,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,13,40,80,13,0,0,240,120, - 240,120,240,120,240,120,240,120,0,0,0,0,0,0,0,0, - 0,0,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,26,30, - 120,29,0,0,31,255,0,0,31,255,224,0,31,255,248,0, - 31,255,252,0,31,255,254,0,31,1,255,0,31,0,127,0, - 31,0,31,128,31,0,31,128,31,0,15,192,31,0,15,192, - 31,0,7,192,31,0,7,192,255,252,7,192,255,252,7,192, - 255,252,7,192,255,252,7,192,31,0,7,192,31,0,7,192, - 31,0,15,192,31,0,15,192,31,0,31,128,31,0,31,128, - 31,0,127,0,31,1,255,0,31,255,254,0,31,255,252,0, - 31,255,248,0,31,255,224,0,31,255,0,0,25,39,156,31, - 3,0,0,248,96,0,1,255,224,0,1,255,192,0,3,255, - 128,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,128,15,128,255,128,15,128,255,128, - 15,128,255,192,15,128,255,192,15,128,255,224,15,128,251,224, - 15,128,251,240,15,128,249,240,15,128,249,248,15,128,248,248, - 15,128,248,252,15,128,248,252,15,128,248,126,15,128,248,126, - 15,128,248,63,15,128,248,63,15,128,248,31,143,128,248,31, - 143,128,248,15,143,128,248,15,207,128,248,7,207,128,248,7, - 239,128,248,3,239,128,248,3,255,128,248,1,255,128,248,1, - 255,128,248,0,255,128,248,0,255,128,248,0,127,128,27,41, - 164,31,2,0,1,240,0,0,1,240,0,0,0,248,0,0, - 0,120,0,0,0,60,0,0,0,28,0,0,0,28,0,0, - 0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,27,41,164,31,2,0,0,1, - 240,0,0,1,224,0,0,3,224,0,0,3,192,0,0,7, - 128,0,0,7,0,0,0,14,0,0,0,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,41,164,31,2,0,0,63,0,0,0,63,128,0, - 0,63,128,0,0,123,192,0,0,113,192,0,0,240,224,0, - 0,224,224,0,1,192,112,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,224,0,3,255,248,0,7,255,252,0, - 15,255,254,0,31,255,255,0,63,192,127,128,63,0,31,128, - 127,0,31,192,126,0,15,192,126,0,15,192,252,0,15,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,15,224,126,0,15,192,126,0,15,192,127,0,31,192, - 63,0,31,128,63,192,127,128,31,255,255,0,15,255,254,0, - 7,255,252,0,3,255,248,0,0,255,224,0,27,40,160,31, - 2,0,0,0,48,0,0,124,112,0,0,255,224,0,0,255, - 224,0,1,255,192,0,1,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,40,160,31,2,0,0,240,240,0,0,240,240,0, - 0,240,240,0,0,240,240,0,0,240,240,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,22,22,66,40,9,1,96,0, - 24,240,0,60,112,0,56,56,0,112,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,96,0,24,64,0,8, - 29,34,136,31,1,254,0,0,0,16,0,0,0,56,0,127, - 240,120,1,255,252,240,3,255,255,240,7,255,255,224,15,255, - 255,192,31,224,63,192,31,128,15,192,63,128,31,224,63,0, - 63,224,63,0,127,224,126,0,251,240,126,1,243,240,126,1, - 227,240,126,3,195,240,126,7,131,240,126,15,3,240,126,30, - 3,240,126,60,3,240,126,124,3,240,126,248,7,240,63,240, - 7,224,63,224,7,224,63,192,15,224,31,128,15,192,31,224, - 63,192,31,255,255,128,63,255,255,0,127,255,254,0,249,255, - 252,0,240,127,240,0,224,0,0,0,64,0,0,0,24,41, - 123,30,3,0,7,192,0,3,224,0,1,224,0,1,240,0, - 0,240,0,0,120,0,0,56,0,0,28,0,0,0,0,0, - 0,0,0,0,0,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,252,0, - 31,252,0,31,252,0,63,124,0,63,126,0,126,127,0,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,30,3,0,0,3,224,0,3,224,0,7,192,0,15, - 128,0,15,0,0,30,0,0,28,0,0,56,0,0,0,0, - 0,0,0,0,0,0,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,252, - 0,31,252,0,31,252,0,63,124,0,63,126,0,126,127,0, - 254,63,255,252,31,255,252,31,255,248,7,255,224,1,255,192, - 24,41,123,30,3,0,0,126,0,0,255,0,0,255,0,1, - 247,128,1,231,128,3,195,192,3,129,192,7,0,224,0,0, - 0,0,0,0,0,0,0,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 252,0,31,252,0,31,252,0,63,124,0,63,126,0,126,127, - 0,254,63,255,252,31,255,252,31,255,248,7,255,224,1,255, - 192,24,40,120,30,3,0,3,193,224,3,193,224,3,193,224, - 3,193,224,3,193,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,252,0,31,252,0,31,252,0,31,252,0,31, - 252,0,31,252,0,31,252,0,31,252,0,31,252,0,31,252, - 0,31,252,0,31,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,254,0,63,126,0,63,127,0,126,127,128,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,25,1,0,0,7,192,0,15,128,0,15,0,0,14, - 0,0,30,0,0,28,0,0,56,0,0,0,0,0,0,0, - 0,0,0,0,0,0,252,0,127,254,0,126,126,0,254,127, - 0,252,63,1,252,63,1,248,31,131,248,31,131,240,15,195, - 240,15,199,224,7,231,224,7,239,192,3,255,192,3,255,128, - 1,255,128,1,255,0,0,255,0,0,254,0,0,126,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 21,30,90,26,2,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,252,0,255,255,128,255,255,192,255,255, - 224,255,255,240,248,7,240,248,1,248,248,1,248,248,0,248, - 248,0,248,248,1,248,248,1,248,248,7,240,255,255,240,255, - 255,224,255,255,192,255,255,128,255,252,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 21,30,90,24,2,1,15,252,0,63,255,0,127,255,128,126, - 31,192,252,15,192,252,7,192,248,7,192,248,15,192,248,15, - 128,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 248,248,0,248,252,0,248,254,0,248,127,128,248,63,192,248, - 31,224,248,7,240,248,3,240,248,1,248,248,1,248,251,224, - 248,251,225,248,251,241,248,249,255,240,249,255,224,248,255,192, - 19,32,96,22,2,0,31,0,0,31,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,1,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,31,255,0, - 63,255,128,126,15,128,124,15,192,0,7,192,0,127,192,15, - 255,192,63,255,192,127,255,192,127,7,192,252,7,192,252,7, - 192,248,15,192,248,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,227,224,19,32,96,22,2,0,0,31,0,0, - 62,0,0,60,0,0,120,0,0,120,0,0,240,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,31,255,0,63,255,128,126,15,128,124,15,192,0, - 7,192,0,127,192,15,255,192,63,255,192,127,255,192,127,7, - 192,252,7,192,252,7,192,248,15,192,248,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,227,224,19,32,96,22, - 2,0,3,240,0,3,248,0,7,248,0,7,188,0,15,28, - 0,14,30,0,28,14,0,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,30,90,22,2,0,7,135,0,15,254,0,15,254, - 0,31,252,0,24,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,31,93,23,2,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,15,254,0,31,255,0,63, - 255,128,126,15,128,124,15,192,0,7,192,0,127,192,15,255, - 192,63,255,192,127,255,192,127,7,192,252,7,192,252,7,192, - 248,15,192,248,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,224,19,34,102,22,2,0,1,240,0,3,248, - 0,7,28,0,6,12,0,6,12,0,6,12,0,7,28,0, - 3,248,0,1,240,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,254,0,31,255,0,63,255,128,126,15, - 128,124,15,192,0,7,192,0,127,192,15,255,192,63,255,192, - 127,255,192,127,7,192,252,7,192,252,7,192,248,15,192,248, - 15,192,252,15,192,254,31,192,127,255,192,63,247,192,31,231, - 224,32,20,80,36,2,1,15,252,31,224,31,254,127,248,63, - 255,127,252,126,15,240,126,124,7,224,62,0,7,224,62,0, - 7,192,31,7,255,255,255,31,255,255,255,63,255,255,255,127, - 255,255,255,252,7,192,0,252,7,224,0,248,7,224,0,248, - 15,224,63,252,15,240,62,254,30,248,126,127,252,127,252,63, - 248,63,248,31,224,31,240,17,30,90,21,2,247,15,252,0, - 31,254,0,63,255,0,126,63,0,124,31,128,124,31,128,252, - 15,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,252,15,128,252,31,128,124,31,128,126,63,0, - 63,255,0,31,254,0,15,252,0,1,128,0,1,128,0,1, - 224,0,1,248,0,0,60,0,0,28,0,0,28,0,6,60, - 0,7,248,0,7,224,0,19,32,96,22,2,0,31,0,0, - 31,0,0,15,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,252,0,31,255,0,63,255,0,62,31,128,124,15,192, - 124,7,192,252,7,192,255,255,192,255,255,192,255,255,224,255, - 255,224,248,0,0,248,0,0,252,0,0,124,7,192,124,15, - 192,126,31,128,63,255,128,31,255,0,7,252,0,19,32,96, - 22,2,0,0,31,0,0,62,0,0,60,0,0,120,0,0, - 120,0,0,240,0,0,224,0,1,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,7,252,0,31,255,0,63,255,0, - 62,31,128,124,15,192,124,7,192,252,7,192,255,255,192,255, - 255,192,255,255,224,255,255,224,248,0,0,248,0,0,252,0, - 0,124,7,192,124,15,192,126,31,128,63,255,128,31,255,0, - 7,252,0,19,32,96,22,2,0,3,240,0,3,248,0,7, - 248,0,7,188,0,15,28,0,14,30,0,28,14,0,28,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,252,0, - 31,255,0,63,255,0,62,31,128,124,15,192,124,7,192,252, - 7,192,255,255,192,255,255,192,255,255,224,255,255,224,248,0, - 0,248,0,0,252,0,0,124,7,192,124,15,192,126,31,128, - 63,255,128,31,255,0,7,252,0,19,31,93,22,2,0,30, - 30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 15,192,252,15,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,15,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,8,32,32,11, - 0,0,248,120,124,60,30,14,7,7,0,0,0,0,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,9,32,64,10,2,0,15,128,31,0,30,0,62,0, - 60,0,120,0,112,0,224,0,0,0,0,0,0,0,0,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,13,32,64,11,255,0,15,192, - 31,192,31,224,61,224,56,240,120,112,112,56,224,56,0,0, - 0,0,0,0,0,0,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,13,31, - 62,11,255,0,240,120,240,120,240,120,240,120,240,120,0,0, - 0,0,0,0,0,0,0,0,0,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,20,31,93,24,2,0,0,0,96,7,193,224,3,247, - 224,1,255,128,0,254,0,0,254,0,3,254,0,15,159,0, - 30,15,128,24,15,128,0,7,192,7,255,192,15,255,224,63, - 255,224,63,15,240,126,3,240,124,3,240,252,1,240,252,1, - 240,252,1,240,248,1,240,248,1,240,252,1,240,252,1,240, - 252,1,240,124,3,240,126,3,224,63,15,224,31,255,192,15, - 255,128,7,254,0,18,30,90,24,3,0,7,134,0,15,254, - 0,15,254,0,31,252,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,32,96,24,2,0,15,128,0,7,128, - 0,7,192,0,3,192,0,1,224,0,0,224,0,0,112,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 254,0,15,255,0,31,255,192,63,15,192,126,3,224,124,3, - 240,252,1,240,252,1,240,252,1,240,248,1,240,248,1,240, - 248,1,240,252,1,240,252,1,240,124,3,240,126,3,224,63, - 15,192,31,255,192,15,255,0,3,254,0,20,32,96,24,2, - 0,0,15,128,0,31,0,0,30,0,0,60,0,0,56,0, - 0,120,0,0,112,0,0,224,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,254,0,15,255,0,31,255,192,63,15, - 192,126,3,224,124,3,240,252,1,240,252,1,240,252,1,240, - 248,1,240,248,1,240,248,1,240,252,1,240,252,1,240,124, - 3,240,126,3,224,63,15,192,31,255,192,15,255,0,3,254, - 0,20,32,96,24,2,0,1,248,0,1,252,0,3,252,0, - 3,222,0,7,158,0,7,15,0,14,7,0,14,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,31,93,24,2,0,0,1,128, - 3,195,0,7,255,0,7,255,0,15,254,0,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,254, - 0,15,255,0,31,255,192,63,15,192,126,3,224,124,3,240, - 252,1,240,252,1,240,252,1,240,248,1,240,248,1,240,248, - 1,240,252,1,240,252,1,240,124,3,240,126,3,224,63,15, - 192,31,255,192,15,255,0,3,254,0,20,31,93,24,2,0, - 15,7,128,15,7,128,15,7,128,15,7,128,15,7,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,254,0,15,255,0,31,255,192,63,15,192,126,3,224, - 124,3,240,252,1,240,252,1,240,252,1,240,248,1,240,248, - 1,240,248,1,240,252,1,240,252,1,240,124,3,240,126,3, - 224,63,15,192,31,255,192,15,255,0,3,254,0,24,19,57, - 40,8,2,0,16,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,56,0, - 0,124,0,0,124,0,0,124,0,0,56,0,21,26,78,24, - 1,254,0,0,56,0,0,120,0,0,112,1,255,224,7,255, - 224,15,255,224,31,135,224,63,7,240,62,15,248,126,14,248, - 126,28,248,126,56,248,124,120,248,124,112,248,126,224,248,127, - 192,248,63,193,248,63,129,248,63,3,240,31,135,224,31,255, - 224,31,255,192,57,255,0,120,0,0,240,0,0,96,0,0, - 18,32,96,24,3,0,31,0,0,15,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,252,7,192,252,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,231,192,18,32,96,24,3,0,0,62,0,0, - 60,0,0,124,0,0,120,0,0,240,0,0,224,0,1,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,252,7,192,252,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,231,192,18,32,96,24, - 3,0,3,240,0,3,248,0,7,248,0,7,188,0,15,60, - 0,14,30,0,30,14,0,28,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 231,192,18,31,93,24,3,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 252,7,192,252,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,192,21,41,123,22,1,248,0,7,192,0,15, - 128,0,15,0,0,30,0,0,30,0,0,60,0,0,56,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,1,248,252,3,240,126,3,240,126,3,224,63,7, - 224,63,7,224,63,7,192,31,143,192,31,143,192,15,143,128, - 15,223,128,15,223,128,7,223,0,7,255,0,3,255,0,3, - 254,0,3,254,0,1,252,0,1,252,0,0,252,0,0,248, - 0,1,248,0,33,248,0,115,240,0,255,240,0,255,224,0, - 127,192,0,31,128,0,20,38,114,25,3,248,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,249,254,0,251,255,128, - 251,255,192,255,15,192,254,7,224,252,3,224,252,3,240,252, - 3,240,252,3,240,248,1,240,248,1,240,252,3,240,252,3, - 240,252,3,240,252,3,224,254,7,224,255,15,192,255,255,192, - 251,255,128,249,254,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,21,39, - 117,21,0,248,15,7,128,15,7,128,15,7,128,15,7,128, - 15,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,1,248,252,1,248,126,1,240,126,3, - 240,63,3,224,63,3,224,63,7,224,31,135,192,31,143,192, - 15,207,192,15,207,128,15,223,128,7,255,128,7,255,0,3, - 255,0,3,255,0,3,254,0,1,254,0,1,252,0,0,252, - 0,0,252,0,1,248,0,1,248,0,1,248,0,3,240,0, - 3,240,0,7,240,0,7,224,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=32 x= 8 y=14 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30n[1179] U8G_SECTION(".progmem.u8g_font_fub30n") = { - 0,59,54,253,245,30,0,0,0,0,42,57,0,31,251,30, - 0,16,16,32,26,5,14,4,32,28,56,30,120,30,120,15, - 240,7,224,227,199,255,255,255,255,243,207,7,224,15,240,30, - 120,30,120,28,56,4,32,24,25,75,40,8,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,255,255, - 255,255,255,255,255,255,255,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,8,10,10,12,2,251,31,31, - 62,62,60,124,120,120,240,240,10,5,10,14,2,8,255,192, - 255,192,255,192,255,192,255,192,5,5,5,12,4,0,248,248, - 248,248,248,13,32,64,17,2,254,0,120,0,120,0,120,0, - 240,0,240,0,240,1,224,1,224,1,224,3,192,3,192,3, - 192,3,192,7,128,7,128,7,128,15,0,15,0,15,0,14, - 0,30,0,30,0,30,0,60,0,60,0,60,0,120,0,120, - 0,120,0,120,0,240,0,240,0,20,30,90,23,1,1,3, - 252,0,15,255,0,31,255,128,63,15,128,62,7,192,124,3, - 192,124,3,224,124,3,224,124,3,224,248,1,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,124,3, - 224,124,3,224,124,3,224,124,3,224,62,7,192,63,15,128, - 31,255,128,15,255,0,3,252,0,12,30,60,23,4,0,1, - 240,3,240,15,240,63,240,255,240,255,240,253,240,249,240,225, - 240,129,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,20,30,90,23,1, - 1,3,255,0,7,255,128,31,255,192,31,255,224,63,255,240, - 63,3,240,126,1,240,126,1,240,124,1,240,0,1,240,0, - 3,240,0,3,240,0,7,224,0,15,224,0,15,192,0,31, - 128,0,63,0,0,254,0,1,252,0,3,248,0,7,240,0, - 15,224,0,63,128,0,127,0,0,252,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,19,30,90,23,2, - 1,7,252,0,31,255,0,63,255,128,127,255,128,127,255,192, - 252,15,192,252,7,192,248,7,192,0,7,192,0,7,192,0, - 15,192,0,63,192,3,255,128,3,254,0,3,252,0,3,255, - 0,3,255,128,0,31,192,0,7,224,0,7,224,0,7,224, - 0,3,224,248,7,224,252,7,224,252,7,192,126,15,192,127, - 255,128,63,255,128,31,255,0,15,252,0,21,30,90,23,1, - 0,0,63,128,0,63,128,0,127,128,0,255,128,0,255,128, - 1,255,128,1,255,128,3,239,128,3,207,128,7,207,128,15, - 143,128,15,143,128,31,15,128,31,15,128,62,15,128,62,15, - 128,124,15,128,252,15,128,248,15,128,255,255,248,255,255,248, - 255,255,248,255,255,248,255,255,248,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,19,30,90,23,2, - 0,127,255,192,127,255,192,127,255,192,127,255,192,127,255,192, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,252,0,125,255,0,127,255,128,127,255,192,127,15, - 224,126,7,224,124,3,224,0,3,224,0,3,224,0,3,224, - 0,3,224,0,3,224,248,7,224,252,7,224,252,15,192,127, - 255,128,127,255,128,63,254,0,15,252,0,20,30,90,23,1, - 1,3,254,0,7,255,0,15,255,128,31,255,192,63,255,192, - 63,7,224,126,3,224,126,3,224,124,0,0,124,0,0,252, - 0,0,248,0,0,249,255,0,251,255,128,255,255,192,255,15, - 224,254,7,224,254,3,240,252,3,240,252,3,240,252,1,240, - 252,1,240,124,3,240,124,3,240,126,3,224,63,7,224,63, - 255,192,31,255,128,15,255,0,3,254,0,19,30,90,23,2, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 0,7,224,0,7,224,0,7,192,0,15,192,0,15,192,0, - 31,128,0,31,128,0,63,0,0,63,0,0,63,0,0,126, - 0,0,126,0,0,252,0,0,252,0,1,252,0,1,248,0, - 1,248,0,3,240,0,3,240,0,7,240,0,7,224,0,15, - 224,0,15,192,0,15,192,0,31,192,0,20,30,90,23,1, - 1,7,254,0,31,255,128,63,255,192,127,255,224,127,255,224, - 126,7,224,124,3,224,124,3,224,124,3,224,124,3,224,126, - 7,224,127,15,192,63,255,128,15,255,0,7,252,0,31,255, - 0,63,255,192,127,15,224,124,7,224,252,3,240,252,3,240, - 248,1,240,248,3,240,252,3,240,252,3,240,254,7,240,127, - 255,224,63,255,192,31,255,128,15,255,0,20,30,90,23,1, - 1,3,252,0,15,255,0,31,255,128,63,255,192,127,255,192, - 126,7,224,252,7,224,252,3,224,252,3,240,248,3,240,248, - 3,240,252,3,240,252,7,240,124,7,240,127,15,240,63,255, - 240,63,253,240,31,249,240,7,225,240,0,3,240,0,3,224, - 0,3,224,0,3,224,124,7,224,124,7,192,126,15,192,63, - 255,128,31,255,0,15,254,0,7,252,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=25 dx=42 dy= 0 ascent=33 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30r[7686] U8G_SECTION(".progmem.u8g_font_fub30r") = { - 0,59,54,253,245,30,9,163,21,182,32,127,249,33,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--49-490-72-72-P-242-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=17 dx=49 dy= 0 ascent=36 len=140 - Font Bounding box w=72 h=65 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub35n[1667] U8G_SECTION(".progmem.u8g_font_fub35n") = { - 0,72,65,252,243,35,0,0,0,0,42,57,0,36,250,35, - 0,20,18,54,32,6,17,7,14,0,31,15,128,31,159,128, - 15,159,0,7,158,0,3,252,0,129,248,16,254,247,240,255, - 255,240,255,255,240,249,249,240,1,248,0,3,252,0,7,158, - 0,15,159,0,31,143,128,31,15,128,7,14,0,29,29,116, - 49,10,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,255,255,255,248,255,255,255,248,255, - 255,255,248,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,11,12,24,15,2,250,15,224,15, - 192,31,192,31,128,31,128,63,0,63,0,62,0,126,0,124, - 0,124,0,248,0,13,6,12,17,2,9,255,248,255,248,255, - 248,255,248,255,248,255,248,7,6,6,15,5,0,254,254,254, - 254,254,254,17,39,117,21,2,253,0,15,128,0,15,0,0, - 31,0,0,31,0,0,30,0,0,62,0,0,62,0,0,62, - 0,0,124,0,0,124,0,0,124,0,0,120,0,0,248,0, - 0,248,0,0,240,0,1,240,0,1,240,0,1,240,0,3, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,128,0,31,0,0, - 31,0,0,31,0,0,62,0,0,62,0,0,62,0,0,60, - 0,0,124,0,0,124,0,0,124,0,0,248,0,0,25,35, - 140,28,2,1,1,255,128,0,7,255,224,0,15,255,240,0, - 31,255,248,0,31,255,252,0,63,129,252,0,63,0,254,0, - 127,0,126,0,126,0,126,0,126,0,63,0,126,0,63,0, - 254,0,63,0,254,0,63,0,254,0,63,0,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,128,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,0,254,0,63,0, - 254,0,63,0,126,0,63,0,126,0,63,0,126,0,127,0, - 127,0,126,0,63,0,254,0,63,129,252,0,31,255,252,0, - 31,255,248,0,15,255,240,0,7,255,224,0,1,255,128,0, - 15,35,70,28,5,0,0,254,1,254,7,254,15,254,63,254, - 255,254,255,254,254,254,252,254,240,254,192,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,25,35,140,28, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,255,255,0,63,192,255,0,63,128,63,128,63,0, - 63,128,127,0,63,128,0,0,63,128,0,0,63,128,0,0, - 63,128,0,0,127,0,0,0,127,0,0,0,255,0,0,1, - 254,0,0,3,252,0,0,7,252,0,0,15,248,0,0,31, - 240,0,0,63,224,0,0,127,192,0,1,255,0,0,3,254, - 0,0,7,252,0,0,15,240,0,0,63,224,0,0,127,128, - 0,0,255,0,0,0,255,255,255,128,255,255,255,128,255,255, - 255,128,255,255,255,128,255,255,255,128,255,255,255,128,24,35, - 105,28,2,1,3,255,128,15,255,224,31,255,240,63,255,248, - 127,255,252,127,3,252,254,1,252,254,0,252,254,0,254,0, - 0,254,0,0,254,0,1,252,0,1,252,0,15,248,0,255, - 240,0,255,192,0,255,128,0,255,224,0,255,248,0,3,252, - 0,0,254,0,0,254,0,0,126,0,0,127,0,0,127,254, - 0,127,254,0,127,254,0,254,255,0,254,127,1,252,127,255, - 252,63,255,248,31,255,240,15,255,224,3,255,128,26,35,140, - 28,1,0,0,7,252,0,0,15,252,0,0,31,252,0,0, - 31,252,0,0,63,252,0,0,63,252,0,0,127,252,0,0, - 253,252,0,0,253,252,0,1,249,252,0,1,249,252,0,3, - 241,252,0,7,241,252,0,7,225,252,0,15,193,252,0,15, - 193,252,0,31,129,252,0,63,129,252,0,63,1,252,0,126, - 1,252,0,254,1,252,0,252,1,252,0,255,255,255,192,255, - 255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,0,1,252,0,0,1,252,0,0,1,252,0,0, - 1,252,0,0,1,252,0,0,1,252,0,0,1,252,0,24, - 35,105,28,2,0,127,255,252,127,255,252,127,255,252,127,255, - 252,127,255,252,127,255,252,127,0,0,127,0,0,127,0,0, - 127,0,0,127,0,0,127,0,0,127,31,192,127,127,240,127, - 255,248,127,255,252,127,255,252,127,193,254,127,0,254,127,0, - 127,126,0,127,0,0,127,0,0,127,0,0,127,0,0,127, - 0,0,127,254,0,127,254,0,254,254,0,254,255,1,252,127, - 255,252,127,255,248,63,255,240,15,255,192,7,255,128,25,35, - 140,28,2,1,0,255,192,0,3,255,240,0,7,255,248,0, - 15,255,252,0,31,255,254,0,31,224,254,0,63,192,127,0, - 63,128,127,0,127,0,0,0,127,0,0,0,127,0,0,0, - 126,0,0,0,254,31,192,0,254,127,240,0,254,255,248,0, - 254,255,252,0,255,255,254,0,255,225,254,0,255,192,255,0, - 255,128,127,0,255,0,63,0,255,0,63,128,255,0,63,128, - 255,0,63,128,255,0,63,128,127,0,63,0,127,0,63,0, - 127,128,127,0,127,128,127,0,63,192,254,0,31,255,252,0, - 31,255,252,0,15,255,248,0,7,255,224,0,1,255,128,0, - 24,35,105,28,2,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,127,0,0,127,0,0, - 254,0,0,254,0,1,254,0,1,252,0,3,252,0,3,248, - 0,7,248,0,7,240,0,15,240,0,15,240,0,31,224,0, - 31,224,0,63,192,0,63,192,0,63,128,0,127,128,0,127, - 0,0,255,0,0,255,0,1,254,0,1,254,0,3,252,0, - 3,252,0,7,248,0,7,248,0,15,248,0,15,240,0,25, - 35,140,28,2,1,3,255,192,0,15,255,240,0,31,255,252, - 0,63,255,254,0,63,255,254,0,127,193,255,0,127,128,255, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,63,128,254,0,63,193,252,0,15,255,248, - 0,7,255,224,0,1,255,192,0,15,255,240,0,31,255,248, - 0,63,193,254,0,127,128,254,0,127,0,127,0,254,0,63, - 0,254,0,63,0,254,0,63,128,254,0,63,128,254,0,63, - 128,255,0,127,128,255,0,127,0,127,128,255,0,127,255,255, - 0,63,255,254,0,63,255,252,0,15,255,248,0,3,255,224, - 0,25,35,140,28,2,1,1,255,192,0,7,255,224,0,15, - 255,248,0,31,255,252,0,63,255,252,0,127,129,254,0,127, - 0,254,0,126,0,255,0,254,0,127,0,254,0,127,0,254, - 0,127,128,254,0,127,128,254,0,127,128,254,0,127,128,254, - 0,255,128,127,0,255,128,127,131,255,128,63,255,255,128,63, - 255,191,128,31,255,191,128,15,255,63,128,1,248,63,128,0, - 0,63,0,0,0,127,0,0,0,127,0,0,0,127,0,127, - 0,254,0,127,0,254,0,127,1,254,0,63,131,252,0,31, - 255,252,0,31,255,248,0,15,255,240,0,7,255,224,0,1, - 255,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--58-580-72-72-P-286-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=176 - Font Bounding box w=87 h=77 x=-5 y=-15 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub42n[2235] U8G_SECTION(".progmem.u8g_font_fub42n") = { - 0,87,77,251,241,42,0,0,0,0,42,57,0,43,248,42, - 0,23,23,69,37,7,20,0,130,0,3,131,128,15,131,224, - 31,199,224,15,199,224,7,199,192,3,239,128,1,239,0,0, - 254,0,248,254,62,255,255,254,255,255,254,255,255,254,254,124, - 254,128,254,2,1,239,0,3,239,128,7,239,192,7,199,192, - 15,199,224,31,131,240,7,131,192,1,131,0,35,35,175,59, - 12,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,255,255,255,255,224,255,255,255,255,224,255,255,255,255, - 224,255,255,255,255,224,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,12,15,30,18,3,248,15,240,15,240,15,224,31,224,31, - 192,31,192,63,128,63,128,63,0,127,0,126,0,126,0,124, - 0,252,0,252,0,15,8,16,19,2,11,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,8,8,8,18,6, - 0,255,255,255,255,255,255,255,255,19,46,138,25,3,253,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,248,0,1,248,0,1,248, - 0,1,240,0,3,240,0,3,240,0,3,240,0,7,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,63,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,29,44,176,33,2,255,0, - 31,192,0,0,255,248,0,3,255,252,0,7,255,255,0,15, - 255,255,128,15,255,255,128,31,240,255,192,63,192,63,192,63, - 192,63,224,63,128,31,224,127,128,31,240,127,0,31,240,127, - 0,15,240,127,0,15,240,255,0,15,240,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,127,0,15,240,127,0,15,240,127,0,15,240,127, - 0,31,240,127,128,31,240,63,128,31,224,63,192,63,224,63, - 192,63,192,31,240,255,192,15,255,255,128,15,255,255,0,7, - 255,255,0,3,255,254,0,0,255,248,0,0,31,192,0,18, - 42,126,33,6,0,0,63,192,0,127,192,0,255,192,3,255, - 192,15,255,192,63,255,192,255,255,192,255,255,192,255,255,192, - 255,63,192,254,63,192,248,63,192,224,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,0,63,192,0,63,192,0,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,29,43,172,33,2,0,0,15,240,0,0,127,254, - 0,1,255,255,0,3,255,255,128,7,255,255,192,15,255,255, - 224,31,248,63,240,31,240,31,240,31,224,15,240,63,192,7, - 248,63,192,7,248,63,192,7,248,0,0,7,248,0,0,7, - 248,0,0,15,248,0,0,15,240,0,0,31,240,0,0,31, - 240,0,0,63,224,0,0,127,224,0,0,255,192,0,1,255, - 128,0,3,255,128,0,7,255,0,0,15,254,0,0,31,252, - 0,0,63,248,0,0,127,240,0,0,255,224,0,1,255,128, - 0,3,255,0,0,15,254,0,0,31,252,0,0,63,240,0, - 0,127,224,0,0,255,192,0,0,255,255,255,248,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,255,255,255,248,28,44,176,33,3,255,0,127,192,0,3, - 255,248,0,7,255,252,0,31,255,255,0,63,255,255,0,63, - 255,255,128,127,224,255,192,127,192,127,192,255,128,63,192,255, - 0,31,224,255,0,31,224,255,0,31,224,0,0,31,224,0, - 0,31,224,0,0,31,224,0,0,63,192,0,0,127,192,0, - 3,255,128,0,127,255,0,0,127,252,0,0,127,240,0,0, - 127,248,0,0,127,254,0,0,127,255,128,0,0,255,192,0, - 0,63,224,0,0,31,224,0,0,31,224,0,0,15,240,0, - 0,15,240,0,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,31,224,255,128,31,224,127,192,63,224,127, - 224,255,192,63,255,255,128,63,255,255,0,31,255,254,0,15, - 255,252,0,3,255,248,0,0,127,192,0,31,42,168,33,1, - 0,0,1,255,192,0,1,255,192,0,3,255,192,0,7,255, - 192,0,7,255,192,0,15,255,192,0,15,255,192,0,31,255, - 192,0,63,255,192,0,63,191,192,0,127,63,192,0,255,63, - 192,0,254,63,192,1,254,63,192,1,252,63,192,3,248,63, - 192,7,248,63,192,7,240,63,192,15,240,63,192,31,224,63, - 192,31,192,63,192,63,192,63,192,63,128,63,192,127,128,63, - 192,255,0,63,192,255,0,63,192,255,255,255,254,255,255,255, - 254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255, - 254,255,255,255,254,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,29,43,172,33,2,255,127, - 255,255,224,127,255,255,224,127,255,255,224,127,255,255,224,127, - 255,255,224,127,255,255,224,127,255,255,224,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,135,248,0,127, - 159,254,0,127,255,255,128,127,255,255,192,127,255,255,192,127, - 255,255,224,127,240,63,240,127,192,31,240,127,128,15,240,127, - 128,15,248,127,0,7,248,0,0,7,248,0,0,7,248,0, - 0,7,248,0,0,7,248,0,0,7,248,0,0,7,240,255, - 0,15,240,255,0,15,240,255,0,31,240,255,128,63,224,127, - 224,255,192,127,255,255,192,63,255,255,128,31,255,255,0,15, - 255,252,0,3,255,248,0,0,127,192,0,29,44,176,33,2, - 255,0,15,240,0,0,127,252,0,0,255,255,0,3,255,255, - 128,7,255,255,192,7,255,255,224,15,252,63,224,31,240,15, - 240,31,224,15,240,63,192,7,248,63,192,7,248,63,128,0, - 0,127,128,0,0,127,128,0,0,127,128,0,0,127,0,0, - 0,255,3,248,0,255,31,254,0,255,63,255,0,255,127,255, - 128,255,255,255,192,255,255,255,224,255,248,63,240,255,224,31, - 240,255,192,15,240,255,192,15,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,127,128,7, - 248,127,128,7,248,127,128,7,240,127,192,15,240,63,192,15, - 240,63,224,31,224,31,248,63,224,31,255,255,192,15,255,255, - 128,7,255,255,0,3,255,254,0,0,255,248,0,0,63,192, - 0,28,42,168,33,3,0,255,255,255,240,255,255,255,240,255, - 255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255, - 255,255,240,0,0,15,240,0,0,15,240,0,0,31,240,0, - 0,31,224,0,0,63,224,0,0,63,192,0,0,127,192,0, - 0,127,192,0,0,255,128,0,0,255,128,0,1,255,0,0, - 1,255,0,0,1,254,0,0,3,254,0,0,3,254,0,0, - 7,252,0,0,7,252,0,0,15,248,0,0,15,248,0,0, - 31,248,0,0,31,240,0,0,31,240,0,0,63,224,0,0, - 63,224,0,0,127,192,0,0,127,192,0,0,255,192,0,0, - 255,128,0,1,255,128,0,1,255,0,0,3,255,0,0,3, - 255,0,0,3,254,0,0,7,254,0,0,7,252,0,0,29, - 44,176,33,2,255,0,63,240,0,1,255,254,0,7,255,255, - 128,15,255,255,192,31,255,255,224,63,255,255,240,63,248,127, - 240,127,224,31,240,127,224,31,248,127,192,15,248,127,192,15, - 248,127,192,15,248,127,192,15,248,127,192,15,248,63,224,31, - 240,63,224,31,240,31,248,127,224,15,255,255,192,7,255,255, - 0,1,255,252,0,0,255,248,0,3,255,254,0,15,255,255, - 128,31,255,255,192,63,240,63,224,127,224,31,224,127,192,15, - 240,127,192,15,240,255,128,7,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,255,192,15, - 248,255,192,15,248,127,224,31,240,127,240,63,240,127,255,255, - 224,63,255,255,224,31,255,255,192,15,255,255,128,3,255,254, - 0,0,127,240,0,29,44,176,33,2,255,0,31,192,0,0, - 255,248,0,3,255,254,0,7,255,255,0,15,255,255,128,31, - 255,255,128,63,224,255,192,63,192,63,224,127,128,31,224,127, - 128,31,224,127,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,128,31,248,127,128,31,248,127,192,63,248,127, - 224,255,248,63,255,255,248,31,255,255,248,31,255,247,248,15, - 255,231,248,3,255,199,248,0,254,7,240,0,0,7,240,0, - 0,15,240,0,0,15,240,0,0,15,240,0,0,15,224,127, - 128,31,224,127,128,31,224,63,128,63,192,63,192,127,192,63, - 224,255,128,31,255,255,128,15,255,255,0,7,255,254,0,3, - 255,252,0,1,255,240,0,0,63,192,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--68-680-72-72-P-335-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=255 - Font Bounding box w=100 h=91 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub49n[3074] U8G_SECTION(".progmem.u8g_font_fub49n") = { - 0,100,91,251,238,49,0,0,0,0,42,57,0,50,247,49, - 0,27,27,108,43,8,23,0,64,64,0,1,192,112,0,7, - 224,252,0,15,224,254,0,7,241,252,0,7,241,252,0,3, - 241,248,0,1,251,240,0,0,251,224,0,0,127,192,0,224, - 127,192,224,255,191,191,224,255,255,255,224,255,255,255,224,255, - 255,255,224,255,63,159,224,192,127,192,96,0,123,192,0,0, - 251,224,0,1,251,240,0,3,241,248,0,7,241,252,0,15, - 241,252,0,15,224,254,0,7,224,252,0,1,192,112,0,0, - 64,64,0,41,41,246,69,14,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,255,255,255,255,255,128,255,255,255, - 255,255,128,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,15, - 17,34,21,3,247,7,254,7,252,7,252,7,248,15,248,15, - 240,15,240,31,224,31,224,31,192,63,192,63,128,63,128,127, - 0,127,0,126,0,254,0,17,9,27,23,3,13,255,255,128, - 255,255,128,255,255,128,255,255,128,255,255,128,255,255,128,255, - 255,128,255,255,128,255,255,128,9,9,18,21,7,0,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 23,54,162,29,3,252,0,0,254,0,0,254,0,0,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 248,0,7,240,0,7,240,0,7,240,0,7,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,192,0, - 63,128,0,63,128,0,63,128,0,63,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,254,0,0,254,0,1,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 240,0,7,240,0,7,240,0,7,240,0,15,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,128,0, - 63,128,0,63,128,0,63,0,0,127,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,34,51,255,39,2,255,0,7, - 248,0,0,0,63,255,0,0,0,255,255,192,0,1,255,255, - 224,0,3,255,255,240,0,7,255,255,248,0,15,255,255,252, - 0,15,254,31,252,0,31,248,7,254,0,31,240,3,254,0, - 63,240,3,255,0,63,224,1,255,0,63,224,1,255,0,127, - 224,1,255,128,127,192,0,255,128,127,192,0,255,128,127,192, - 0,255,128,255,192,0,255,128,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,192,0,255,192,255,192,0,255,192,255,192,0,255,192, - 255,192,0,255,192,255,192,0,255,192,255,192,0,255,192,255, - 192,0,255,192,255,192,0,255,192,255,192,0,255,192,255,192, - 0,255,192,255,192,0,255,128,127,192,0,255,128,127,192,0, - 255,128,127,192,0,255,128,127,224,1,255,128,63,224,1,255, - 0,63,224,1,255,0,63,240,3,255,0,31,240,3,254,0, - 31,248,7,254,0,15,254,31,252,0,15,255,255,252,0,7, - 255,255,248,0,3,255,255,240,0,1,255,255,224,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,20,49,147, - 39,7,0,0,31,240,0,63,240,0,127,240,1,255,240,3, - 255,240,15,255,240,63,255,240,255,255,240,255,255,240,255,255, - 240,255,223,240,255,159,240,254,31,240,248,31,240,224,31,240, - 128,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,34,50,250,39,2,0,0,3,254,0, - 0,0,31,255,192,0,0,127,255,240,0,0,255,255,248,0, - 3,255,255,254,0,7,255,255,254,0,7,255,255,255,0,15, - 255,255,255,128,31,255,7,255,128,31,252,1,255,192,31,248, - 0,255,192,63,248,0,255,192,63,240,0,127,192,63,240,0, - 127,192,63,240,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,255,192,0,0,0,255,128,0,0,1,255,128, - 0,0,1,255,128,0,0,3,255,0,0,0,7,255,0,0, - 0,15,254,0,0,0,31,254,0,0,0,63,252,0,0,0, - 127,248,0,0,0,255,240,0,0,1,255,224,0,0,3,255, - 192,0,0,7,255,128,0,0,15,255,0,0,0,31,254,0, - 0,0,63,252,0,0,0,255,248,0,0,1,255,224,0,0, - 3,255,192,0,0,7,255,128,0,0,31,254,0,0,0,63, - 252,0,0,0,127,248,0,0,0,255,224,0,0,0,255,255, - 255,255,192,255,255,255,255,192,255,255,255,255,192,255,255,255, - 255,192,255,255,255,255,192,255,255,255,255,192,255,255,255,255, - 192,255,255,255,255,192,32,51,204,39,3,255,0,31,248,0, - 0,255,255,0,3,255,255,128,7,255,255,224,15,255,255,240, - 31,255,255,248,63,255,255,248,127,255,255,252,127,248,31,252, - 127,224,15,254,255,192,7,254,255,192,3,254,255,128,3,254, - 255,128,3,254,0,0,3,254,0,0,3,254,0,0,3,254, - 0,0,7,254,0,0,15,252,0,0,127,252,0,63,255,248, - 0,63,255,224,0,63,255,192,0,63,254,0,0,63,255,0, - 0,63,255,192,0,63,255,240,0,63,255,248,0,0,63,252, - 0,0,7,254,0,0,3,254,0,0,3,255,0,0,1,255, - 0,0,1,255,0,0,1,255,0,0,1,255,255,128,1,255, - 255,128,1,255,255,128,1,255,255,192,3,255,255,192,3,254, - 127,224,7,254,127,224,15,254,127,248,31,252,63,255,255,248, - 63,255,255,240,31,255,255,240,15,255,255,192,3,255,255,128, - 1,255,254,0,0,31,240,0,36,50,250,39,2,0,0,0, - 63,252,0,0,0,127,252,0,0,0,127,252,0,0,0,255, - 252,0,0,0,255,252,0,0,1,255,252,0,0,3,255,252, - 0,0,3,255,252,0,0,7,255,252,0,0,7,255,252,0, - 0,15,247,252,0,0,31,247,252,0,0,31,231,252,0,0, - 63,199,252,0,0,127,199,252,0,0,127,135,252,0,0,255, - 135,252,0,0,255,7,252,0,1,255,7,252,0,3,254,7, - 252,0,3,252,7,252,0,7,252,7,252,0,7,248,7,252, - 0,15,248,7,252,0,31,240,7,252,0,31,240,7,252,0, - 63,224,7,252,0,63,192,7,252,0,127,192,7,252,0,255, - 128,7,252,0,255,128,7,252,0,255,255,255,255,240,255,255, - 255,255,240,255,255,255,255,240,255,255,255,255,240,255,255,255, - 255,240,255,255,255,255,240,255,255,255,255,240,255,255,255,255, - 240,0,0,7,252,0,0,0,7,252,0,0,0,7,252,0, - 0,0,7,252,0,0,0,7,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,252,0,0,0,7,252,0,0,0, - 7,252,0,0,0,7,252,0,33,50,250,39,3,255,127,255, - 255,254,0,127,255,255,254,0,127,255,255,254,0,127,255,255, - 254,0,127,255,255,254,0,127,255,255,254,0,127,255,255,254, - 0,127,255,255,254,0,127,192,0,0,0,127,192,0,0,0, - 127,192,0,0,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,127,192,0,0,0,127,192,0,0,0,127,192, - 0,0,0,127,193,255,0,0,127,199,255,192,0,127,223,255, - 240,0,127,255,255,248,0,127,255,255,252,0,127,255,255,254, - 0,127,255,255,254,0,127,252,15,255,0,127,240,3,255,0, - 127,224,3,255,0,127,192,1,255,128,127,192,1,255,128,0, - 0,0,255,128,0,0,0,255,128,0,0,0,255,128,0,0, - 0,255,128,0,0,0,255,128,0,0,0,255,128,0,0,0, - 255,128,0,0,0,255,128,255,128,1,255,128,255,128,1,255, - 0,255,192,3,255,0,255,192,3,254,0,127,224,15,254,0, - 127,248,63,252,0,127,255,255,252,0,63,255,255,248,0,31, - 255,255,240,0,15,255,255,224,0,7,255,255,128,0,1,255, - 254,0,0,0,63,240,0,0,34,51,255,39,2,255,0,3, - 252,0,0,0,31,255,128,0,0,127,255,224,0,0,255,255, - 240,0,1,255,255,248,0,3,255,255,252,0,7,255,255,254, - 0,7,255,255,254,0,15,255,7,255,0,31,252,3,255,0, - 31,248,1,255,128,31,248,0,255,128,63,240,0,255,128,63, - 224,0,0,0,63,224,0,0,0,127,224,0,0,0,127,192, - 0,0,0,127,192,0,0,0,127,192,127,0,0,127,195,255, - 224,0,255,199,255,240,0,255,207,255,248,0,255,223,255,252, - 0,255,191,255,254,0,255,255,255,255,0,255,254,15,255,0, - 255,248,3,255,128,255,248,3,255,128,255,240,1,255,128,255, - 240,1,255,192,255,224,0,255,192,255,224,0,255,192,255,224, - 0,255,192,255,224,0,255,192,255,224,0,255,192,127,224,0, - 255,192,127,224,0,255,192,127,224,0,255,192,127,224,0,255, - 128,63,240,1,255,128,63,240,1,255,128,63,248,3,255,0, - 31,248,3,255,0,31,254,15,254,0,15,255,255,254,0,7, - 255,255,252,0,3,255,255,248,0,1,255,255,240,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,33,49,245, - 39,3,0,255,255,255,255,128,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,255,255,255,255,128,0,0,0,255,128, - 0,0,1,255,128,0,0,1,255,128,0,0,3,255,0,0, - 0,3,255,0,0,0,7,254,0,0,0,7,254,0,0,0, - 15,254,0,0,0,15,252,0,0,0,31,252,0,0,0,31, - 248,0,0,0,31,248,0,0,0,63,240,0,0,0,63,240, - 0,0,0,127,240,0,0,0,127,224,0,0,0,255,224,0, - 0,0,255,192,0,0,1,255,192,0,0,1,255,192,0,0, - 3,255,128,0,0,3,255,128,0,0,3,255,0,0,0,7, - 255,0,0,0,7,254,0,0,0,15,254,0,0,0,15,254, - 0,0,0,31,252,0,0,0,31,252,0,0,0,63,248,0, - 0,0,63,248,0,0,0,63,248,0,0,0,127,240,0,0, - 0,127,240,0,0,0,255,224,0,0,0,255,224,0,0,1, - 255,192,0,0,1,255,192,0,0,3,255,192,0,0,3,255, - 128,0,0,7,255,128,0,0,34,51,255,39,2,255,0,15, - 252,0,0,0,255,255,192,0,3,255,255,240,0,7,255,255, - 248,0,15,255,255,252,0,31,255,255,254,0,63,255,255,255, - 0,63,255,255,255,0,63,252,15,255,0,127,248,7,255,128, - 127,240,3,255,128,127,224,1,255,128,127,224,1,255,128,127, - 224,1,255,128,127,224,1,255,128,127,224,1,255,128,127,224, - 1,255,128,63,240,3,255,0,63,248,7,255,0,31,252,15, - 254,0,15,255,255,252,0,7,255,255,240,0,1,255,255,192, - 0,0,63,255,0,0,0,255,255,128,0,3,255,255,224,0, - 7,255,255,248,0,31,255,255,252,0,63,252,15,254,0,63, - 248,7,255,0,127,240,3,255,0,127,224,1,255,128,127,224, - 1,255,128,255,192,0,255,192,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,224,1,255,192,255,224,1,255,192,255,240,3,255,192, - 127,240,7,255,128,127,252,15,255,128,63,255,255,255,0,63, - 255,255,255,0,31,255,255,254,0,15,255,255,252,0,3,255, - 255,240,0,0,255,255,192,0,0,15,252,0,0,34,51,255, - 39,2,255,0,7,248,0,0,0,63,255,0,0,0,255,255, - 192,0,3,255,255,224,0,7,255,255,240,0,15,255,255,248, - 0,31,255,255,252,0,31,255,255,254,0,63,248,31,254,0, - 63,240,7,255,0,127,224,7,255,0,127,192,3,255,0,127, - 192,3,255,128,255,192,1,255,128,255,128,1,255,128,255,128, - 1,255,128,255,128,1,255,192,255,128,1,255,192,255,128,1, - 255,192,255,192,1,255,192,255,192,3,255,192,255,192,3,255, - 192,127,224,7,255,192,127,240,7,255,192,127,248,31,255,192, - 63,255,255,255,192,31,255,255,127,192,31,255,254,255,192,15, - 255,252,255,192,3,255,252,255,192,1,255,240,255,192,0,127, - 192,255,128,0,0,0,255,128,0,0,0,255,128,0,0,1, - 255,128,0,0,1,255,128,0,0,1,255,0,0,0,1,255, - 0,127,192,3,255,0,127,192,3,254,0,127,224,7,254,0, - 63,224,15,254,0,63,240,15,252,0,31,248,63,252,0,31, - 255,255,248,0,15,255,255,240,0,7,255,255,224,0,3,255, - 255,192,0,1,255,255,128,0,0,127,254,0,0,0,15,240, - 0,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y=10 dx=15 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11[3712] U8G_SECTION(".progmem.u8g_font_fur11") = { - 0,20,20,255,252,11,2,81,4,211,32,255,253,16,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,5,0,0,1,11,11,5,2,253,128,0,0, - 128,128,128,128,128,128,128,128,6,12,12,8,1,254,8,8, - 120,220,148,144,160,164,236,120,64,64,7,11,11,9,1,0, - 60,102,64,64,248,64,64,64,64,64,254,8,9,9,10,1, - 2,129,90,36,66,66,66,36,90,129,8,11,11,9,0,0, - 65,99,34,231,20,28,255,8,8,8,8,1,14,14,6,3, - 253,128,128,128,128,128,128,0,0,128,128,128,128,128,128,5, - 14,14,7,1,253,120,136,128,192,112,216,136,152,240,48,24, - 8,24,240,4,1,1,4,0,10,144,11,11,22,13,1,0, - 31,0,127,128,115,64,225,96,160,32,160,32,161,32,179,96, - 94,64,96,128,31,0,6,8,8,6,0,3,56,72,120,72, - 88,104,0,252,6,6,6,8,1,1,36,72,216,216,72,36, - 8,3,3,10,1,4,255,1,1,255,11,11,22,13,1,0, - 31,0,127,128,81,64,209,96,158,32,147,32,145,32,209,96, - 64,64,97,128,31,0,4,1,1,4,0,10,240,3,4,4, - 5,1,7,224,160,160,224,9,10,20,15,3,0,8,0,8, - 0,8,0,255,128,8,0,8,0,8,0,0,0,0,0,255, - 128,4,6,6,6,1,5,112,144,48,96,192,240,5,6,6, - 6,0,5,120,200,24,48,136,112,3,3,3,3,1,9,96, - 64,128,255,7,14,14,9,1,253,126,244,244,244,244,116,20, - 20,20,20,20,20,20,20,1,2,2,4,2,4,128,128,4, - 3,3,5,1,253,48,16,224,3,6,6,5,1,5,96,160, - 32,32,32,32,5,8,8,7,1,3,112,216,136,136,216,112, - 0,248,6,6,6,8,1,1,216,72,36,36,72,216,10,11, - 22,12,1,0,97,0,162,0,34,0,36,0,36,0,41,128, - 9,128,18,128,51,192,32,128,96,128,11,11,22,13,1,0, - 96,128,161,0,34,0,34,0,36,0,37,192,9,32,24,96, - 16,192,33,128,97,224,11,11,22,12,0,0,120,128,9,128, - 49,0,27,0,138,0,116,192,4,192,9,64,11,224,16,64, - 48,64,6,11,11,8,1,253,16,0,16,16,48,96,192,128, - 132,236,120,11,16,32,11,0,0,24,0,8,0,4,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,16,32,11,0,0,3, - 0,2,0,4,0,0,0,0,0,6,0,14,0,10,0,27, - 0,25,0,49,128,49,128,63,192,96,192,64,64,192,96,11, - 16,32,11,0,0,4,0,14,0,9,0,0,0,0,0,6, - 0,14,0,10,0,27,0,25,0,49,128,49,128,63,192,96, - 192,64,64,192,96,11,15,30,11,0,0,13,0,22,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,14,28,11,0,0,9, - 0,0,0,0,0,6,0,14,0,11,0,27,0,25,0,17, - 128,48,128,63,192,96,192,64,96,192,96,11,16,32,11,0, - 0,14,0,10,0,14,0,0,0,0,0,4,0,12,0,10, - 0,10,0,17,0,17,0,49,128,63,128,96,192,64,64,192, - 96,13,11,22,14,0,0,3,248,5,0,13,0,13,0,25, - 0,25,248,49,0,63,0,97,0,65,0,193,248,8,15,15, - 10,1,252,62,97,193,128,128,128,128,128,193,67,62,12,6, - 2,28,6,16,16,9,1,0,64,32,16,0,0,252,128,128, - 128,128,252,128,128,128,128,252,6,16,16,9,1,0,8,16, - 16,0,0,252,128,128,128,128,252,128,128,128,128,252,6,16, - 16,9,1,0,48,48,72,0,0,252,128,128,128,128,252,128, - 128,128,128,252,6,15,15,8,1,0,72,0,0,0,252,128, - 128,128,128,252,128,128,128,128,252,3,16,16,3,255,0,192, - 64,32,0,0,32,32,32,32,32,32,32,32,32,32,32,3, - 16,16,3,1,0,96,192,128,0,0,128,128,128,128,128,128, - 128,128,128,128,128,3,16,16,3,0,0,64,224,160,0,0, - 64,64,64,64,64,64,64,64,64,64,64,4,14,14,4,0, - 0,144,0,0,64,64,64,64,64,64,64,64,64,64,64,10, - 11,22,11,0,0,62,0,33,128,32,128,32,192,32,64,248, - 64,32,64,32,192,32,128,33,128,62,0,8,15,15,10,1, - 0,52,44,0,0,193,225,225,177,177,153,137,141,133,135,131, - 9,16,32,11,1,0,48,0,16,0,8,0,0,0,0,0, - 62,0,99,0,193,128,129,128,128,128,128,128,128,128,129,128, - 193,0,99,0,62,0,9,16,32,11,1,0,4,0,12,0, - 8,0,0,0,0,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,9,16,32,11, - 1,0,8,0,28,0,20,0,0,0,0,0,62,0,99,0, - 193,128,129,128,128,128,128,128,128,128,129,128,193,0,99,0, - 62,0,9,15,30,11,1,0,24,0,44,0,0,0,0,0, - 62,0,99,0,193,128,128,128,128,128,128,128,128,128,129,128, - 193,0,119,0,62,0,9,15,30,11,1,0,18,0,0,0, - 0,0,0,0,62,0,99,0,193,128,129,128,128,128,128,128, - 128,128,129,128,193,0,99,0,62,0,7,7,7,15,4,1, - 130,68,40,16,40,68,130,9,13,26,11,1,255,0,128,63, - 0,99,0,195,128,134,128,140,128,136,128,152,128,177,128,225, - 0,99,0,254,0,128,0,8,16,16,10,1,0,32,16,24, - 0,0,129,129,129,129,129,129,129,129,195,230,60,8,16,16, - 10,1,0,12,8,16,0,0,129,129,129,129,129,129,129,129, - 195,230,60,8,16,16,10,1,0,24,24,36,0,0,129,129, - 129,129,129,129,129,129,195,230,60,8,15,15,10,1,0,36, - 0,0,0,129,129,129,129,129,129,129,129,131,194,60,9,16, - 32,10,1,0,6,0,4,0,8,0,0,0,0,0,193,128, - 65,0,99,0,38,0,52,0,28,0,8,0,8,0,8,0, - 8,0,8,0,7,11,11,9,1,0,128,128,252,134,130,130, - 134,252,128,128,128,7,11,11,8,1,0,120,204,132,140,144, - 144,156,134,130,178,156,6,12,12,8,1,0,32,16,16,0, - 120,204,4,124,196,132,140,116,6,13,13,8,1,0,24,16, - 48,32,0,120,204,4,124,196,132,140,116,6,12,12,8,1, - 0,48,104,72,0,120,204,4,124,196,132,140,116,6,11,11, - 8,1,0,120,0,0,120,204,4,124,196,132,140,116,6,11, - 11,8,1,0,72,0,0,120,204,4,124,196,132,140,116,6, - 13,13,8,1,0,48,72,72,48,0,120,196,4,124,196,132, - 140,116,12,8,16,13,1,0,251,192,138,32,4,48,127,240, - 196,0,140,48,202,96,113,192,6,12,12,8,1,252,120,204, - 132,128,128,132,204,120,48,24,8,48,6,13,13,8,1,0, - 64,32,32,16,0,120,196,132,252,128,132,204,120,6,13,13, - 8,1,0,8,16,16,32,0,120,196,132,252,128,132,204,120, - 6,12,12,8,1,0,48,104,72,0,120,196,132,252,128,132, - 204,120,6,11,11,8,1,0,72,0,0,120,204,132,252,128, - 132,204,120,2,12,12,3,0,0,128,64,64,0,64,64,64, - 64,64,64,64,64,3,12,12,3,0,0,32,64,128,0,64, - 64,64,64,64,64,64,64,5,12,12,3,255,0,112,80,136, - 0,32,32,32,32,32,32,32,32,4,11,11,4,0,0,144, - 0,0,64,64,64,64,64,64,64,64,7,11,11,9,1,0, - 104,112,136,124,198,134,130,130,134,196,120,6,11,11,8,1, - 0,120,0,0,184,204,132,132,132,132,132,132,7,13,13,9, - 1,0,96,32,16,16,0,120,196,134,130,130,134,196,120,7, - 13,13,9,1,0,12,24,16,32,0,120,196,134,130,130,134, - 196,120,7,12,12,9,1,0,56,40,68,0,120,196,134,130, - 130,134,196,120,7,11,11,9,1,0,120,0,0,120,196,134, - 130,130,134,196,120,7,11,11,9,1,0,72,0,0,120,196, - 134,130,130,134,196,120,9,7,14,15,3,1,8,0,8,0, - 0,0,255,128,0,0,8,0,8,0,8,10,10,9,0,255, - 1,62,98,71,73,89,83,98,124,192,6,13,13,8,1,0, - 64,32,32,16,0,132,132,132,132,132,132,204,116,6,13,13, - 8,1,0,24,16,48,32,0,132,132,132,132,132,132,204,116, - 6,12,12,8,1,0,48,80,72,0,132,132,132,132,132,132, - 204,116,6,11,11,8,1,0,72,0,0,132,132,132,132,132, - 132,204,116,8,15,15,8,0,253,4,8,16,0,195,66,102, - 38,52,60,24,24,24,80,112,7,14,14,9,1,253,128,128, - 128,188,198,134,130,130,134,198,188,128,128,128,8,14,14,8, - 0,253,36,0,0,195,66,102,36,36,60,24,24,24,16,48 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=15 dy= 0 ascent=11 len=18 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11n[265] U8G_SECTION(".progmem.u8g_font_fur11n") = { - 0,20,20,255,252,11,0,0,0,0,42,57,0,11,254,11, - 0,6,5,5,10,2,5,72,48,252,48,120,9,9,18,15, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,192,192,128,128,4,1, - 1,6,1,3,240,1,2,2,4,2,0,128,128,4,12,12, - 6,1,255,16,16,16,32,32,32,64,64,64,64,128,128,6, - 11,11,8,1,0,120,200,140,132,132,132,132,132,140,200,120, - 4,11,11,8,2,0,48,112,208,16,16,16,16,16,16,16, - 16,6,11,11,8,1,0,120,204,196,4,12,24,16,48,96, - 192,252,7,11,11,8,0,0,60,70,194,6,24,4,6,2, - 194,70,60,7,11,11,8,1,0,12,28,20,36,100,68,196, - 254,4,4,4,6,11,11,8,1,0,248,128,128,184,204,132, - 4,4,140,200,112,7,11,11,8,1,0,60,198,134,128,188, - 198,130,130,130,198,60,7,11,11,8,1,0,254,6,6,4, - 12,8,24,24,16,48,48,6,11,11,8,1,0,120,204,132, - 204,112,200,132,132,132,204,120,7,11,11,8,1,0,124,198, - 130,130,198,122,2,6,134,204,120}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y= 9 dx=15 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11r[1729] U8G_SECTION(".progmem.u8g_font_fur11r") = { - 0,20,20,255,252,11,2,81,4,211,32,127,253,13,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=13 dx=19 dy= 0 ascent=21 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14[5349] U8G_SECTION(".progmem.u8g_font_fur14") = { - 0,26,26,255,251,14,3,59,6,250,32,255,252,21,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,0,2, - 14,14,7,3,252,192,192,0,0,192,192,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,2,4,60,102,203,200,200, - 208,208,211,102,60,32,64,10,14,28,11,1,0,31,0,49, - 128,96,192,96,0,96,0,252,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,255,128,10,10,20,12,1,3,128, - 64,94,128,51,0,65,128,64,128,64,128,64,128,33,0,94, - 128,128,64,10,14,28,12,1,0,192,192,96,128,97,128,49, - 0,243,192,27,0,30,0,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,1,18,18,7,3,252,128,128,128,128,128, - 128,128,128,0,0,128,128,128,128,128,128,128,128,7,17,17, - 9,1,253,60,100,192,192,96,56,124,198,198,206,124,60,14, - 6,6,140,248,6,1,1,6,0,13,204,14,14,28,16,1, - 0,15,192,28,224,39,144,76,200,216,108,152,4,152,4,152, - 4,152,100,140,204,71,200,32,16,16,32,15,192,7,10,10, - 8,1,4,120,204,4,124,196,132,124,0,0,254,7,8,8, - 11,2,1,38,100,204,216,152,204,100,38,10,5,10,12,1, - 3,255,192,0,64,0,64,0,64,0,64,255,14,14,28,16, - 1,0,15,192,28,224,47,208,76,104,204,108,140,100,143,132, - 140,68,140,100,204,108,76,104,32,16,28,224,15,192,6,1, - 1,6,0,13,252,4,5,5,6,1,9,96,240,144,144,96, - 11,12,24,19,4,0,6,0,6,0,6,0,6,0,255,224, - 6,0,6,0,6,0,0,0,0,0,0,0,255,224,6,8, - 8,7,1,6,120,220,12,12,24,48,192,252,6,8,8,7, - 1,6,120,204,12,48,24,140,204,120,4,4,4,4,1,12, - 48,96,64,192,255,9,18,36,11,1,252,63,128,121,0,249, - 0,249,0,249,0,249,0,121,0,25,0,9,0,9,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,2, - 2,2,5,2,5,192,192,6,5,5,5,0,251,64,120,12, - 12,248,4,7,7,6,1,7,112,240,48,48,48,48,48,6, - 10,10,8,1,4,120,72,132,132,132,132,204,120,0,252,7, - 8,8,11,2,1,152,204,100,102,102,100,204,152,13,14,28, - 15,1,0,112,64,240,192,48,128,49,128,49,0,51,0,50, - 48,54,112,12,112,8,176,25,176,17,248,48,48,32,48,13, - 14,28,15,1,0,112,64,240,192,48,128,49,128,49,0,50, - 0,50,112,52,216,12,24,8,24,24,48,16,96,48,192,32, - 248,14,14,28,16,1,0,120,48,204,32,12,96,48,192,12, - 128,141,128,121,24,3,56,2,120,4,88,12,152,8,252,24, - 24,16,24,8,14,14,10,1,252,12,12,0,12,12,12,24, - 48,96,192,192,193,127,62,14,20,40,14,0,0,12,0,6, - 0,2,0,3,0,0,0,0,0,3,0,7,128,7,128,4, - 192,12,192,12,192,24,96,24,96,31,240,63,240,48,24,96, - 24,96,24,192,12,14,20,40,14,0,0,0,192,0,128,1, - 128,1,0,0,0,0,0,3,0,7,128,7,128,4,192,12, - 192,12,192,24,96,24,96,31,240,63,240,48,24,96,24,96, - 24,192,12,14,20,40,14,0,0,3,0,3,128,6,128,4, - 192,0,0,0,0,3,0,7,128,7,128,4,192,12,192,12, - 192,24,96,24,96,31,240,63,240,48,24,96,24,96,24,192, - 12,14,18,36,14,0,0,7,192,0,0,0,0,0,0,3, - 0,7,128,7,128,4,192,12,192,12,192,24,96,24,96,31, - 240,63,240,48,24,96,24,96,24,192,12,13,18,36,15,1, - 0,12,192,0,0,0,0,0,0,7,0,7,0,13,128,13, - 128,12,192,24,192,24,192,48,96,63,224,63,240,96,48,96, - 24,192,24,192,24,13,21,42,14,1,0,6,0,13,0,9, - 0,9,0,6,0,0,0,0,0,6,0,7,0,15,0,13, - 0,25,128,25,128,16,192,48,192,63,224,127,224,96,32,192, - 48,192,48,192,24,17,14,42,19,1,0,1,255,128,3,192, - 0,2,192,0,6,192,0,14,192,0,12,192,0,28,255,128, - 24,192,0,56,192,0,63,192,0,96,192,0,96,192,0,192, - 192,0,192,255,128,11,18,36,13,1,252,31,128,57,192,96, - 96,64,96,192,0,192,0,192,0,192,0,192,0,192,0,64, - 96,96,96,49,192,31,0,4,0,7,0,1,128,15,128,9, - 20,40,12,2,0,96,0,48,0,24,0,8,0,0,0,0, - 0,255,128,192,0,192,0,192,0,192,0,192,0,255,128,192, - 0,192,0,192,0,192,0,192,0,192,0,255,128,9,20,40, - 12,2,0,6,0,4,0,12,0,24,0,0,0,0,0,255, - 128,192,0,192,0,192,0,192,0,192,0,255,128,192,0,192, - 0,192,0,192,0,192,0,192,0,255,128,9,20,40,12,2, - 0,24,0,28,0,52,0,38,0,0,0,0,0,255,128,192, - 0,192,0,192,0,192,0,192,0,255,128,192,0,192,0,192, - 0,192,0,192,0,192,0,255,128,9,18,36,12,2,0,102, - 0,0,0,0,0,0,0,255,128,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,255,128,4,20,20,5,0,0,192,96,32,48,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,4,20,20, - 5,2,0,48,96,64,128,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,5,20,20,5,0,0,48,112,88, - 200,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,6,18,18,6,0,0,204,0,0,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,13,14,28,14,0,0,127, - 128,97,224,96,112,96,48,96,16,96,24,254,24,96,24,96, - 24,96,16,96,48,96,96,97,224,127,128,11,18,36,14,2, - 0,31,0,0,0,0,0,0,0,224,96,224,96,240,96,248, - 96,216,96,220,96,204,96,198,96,198,96,195,96,195,96,193, - 224,193,224,192,224,12,20,40,14,1,0,24,0,12,0,6, - 0,2,0,0,0,0,0,31,128,57,192,96,96,64,32,192, - 48,192,48,192,48,192,48,192,48,192,48,64,32,96,96,57, - 192,15,0,12,20,40,14,1,0,1,128,3,0,6,0,4, - 0,0,0,0,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,12,20,40,14,1,0,6,0,15,0,9,0,16,128,0, - 0,0,0,31,128,57,192,96,96,64,32,192,48,192,48,192, - 48,192,48,192,48,192,48,64,32,96,96,57,192,15,0,12, - 19,38,14,1,0,12,128,31,0,0,0,0,0,0,0,31, - 128,57,192,96,96,64,32,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,112,224,63,192,15,0,12,18,36,14,1, - 0,13,128,0,0,0,0,0,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,0,11,10,20,19,4,1,192,96,96,192,49, - 128,27,0,14,0,14,0,27,0,49,128,96,192,64,96,12, - 16,32,14,1,255,0,48,31,224,56,224,96,224,65,176,193, - 176,195,48,198,48,198,48,204,48,220,48,88,32,112,96,57, - 192,127,0,192,0,11,20,40,15,2,0,24,0,8,0,4, - 0,6,0,0,0,0,0,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, - 192,31,0,11,20,40,15,2,0,3,0,2,0,4,0,12, - 0,0,0,0,0,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,96,192,127,192,31, - 0,11,20,40,15,2,0,14,0,14,0,27,0,17,0,0, - 0,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, - 18,36,15,2,0,25,128,0,0,0,0,0,0,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,96,192,113,192,31,0,12,20,40,12,0,0,1, - 128,3,0,2,0,4,0,0,0,0,0,224,112,96,96,112, - 192,48,192,25,128,25,128,15,0,14,0,6,0,6,0,6, - 0,6,0,6,0,6,0,9,14,28,12,2,0,192,0,192, - 0,192,0,254,0,195,0,193,128,193,128,193,128,195,128,254, - 0,192,0,192,0,192,0,192,0,10,14,28,11,1,0,62, - 0,103,0,195,0,195,0,198,0,204,0,204,0,206,0,199, - 128,193,128,192,192,216,192,220,128,199,128,8,15,15,10,1, - 0,48,24,8,0,0,62,103,195,3,63,99,195,195,231,123, - 8,16,16,10,1,0,6,12,24,16,0,0,62,103,195,3, - 63,99,195,195,231,123,8,16,16,10,1,0,24,28,36,38, - 0,0,62,103,195,3,63,99,195,195,231,123,8,14,14,10, - 1,0,62,0,0,0,62,103,195,3,63,115,195,195,231,123, - 8,14,14,10,1,0,102,0,0,0,62,103,195,3,63,99, - 195,195,231,123,8,16,16,10,1,0,28,34,34,28,0,0, - 62,99,193,1,63,113,193,193,231,61,16,10,20,18,1,0, - 62,124,227,198,193,131,1,131,63,255,225,128,193,128,195,131, - 230,238,124,60,8,14,14,10,1,252,62,103,195,192,192,192, - 192,195,102,60,16,28,6,62,9,16,32,11,1,0,48,0, - 48,0,24,0,8,0,0,0,0,0,62,0,99,0,193,0, - 193,128,255,128,192,0,192,0,67,0,103,0,62,0,9,16, - 32,11,1,0,6,0,12,0,8,0,24,0,0,0,0,0, - 62,0,99,0,193,0,193,128,255,128,192,0,192,0,67,0, - 103,0,62,0,9,16,32,11,1,0,24,0,28,0,52,0, - 34,0,0,0,0,0,62,0,99,0,193,0,193,128,255,128, - 192,0,192,0,67,0,103,0,62,0,9,14,28,11,1,0, - 102,0,0,0,0,0,0,0,62,0,99,0,193,0,193,128, - 255,128,192,0,192,0,67,0,103,0,62,0,3,15,15,4, - 0,0,128,192,96,32,0,96,96,96,96,96,96,96,96,96, - 96,3,15,15,4,1,0,96,64,192,128,0,192,192,192,192, - 192,192,192,192,192,192,6,15,15,4,255,0,48,120,72,132, - 0,48,48,48,48,48,48,48,48,48,48,6,14,14,5,0, - 0,204,0,0,0,48,48,48,48,48,48,48,48,48,48,9, - 14,28,11,1,0,102,0,24,0,108,0,6,0,63,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,8,14,14,10,1,0,52,124,0,0,222,231,195,195,195, - 195,195,195,195,195,9,16,32,11,1,0,48,0,16,0,24, - 0,8,0,0,0,0,0,62,0,99,0,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,16,32,11,1, - 0,6,0,4,0,12,0,8,0,0,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,16,32,11,1,0,8,0,28,0,20,0,34,0,0, - 0,0,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,62,0,0, - 0,0,0,0,0,62,0,99,0,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,9,14,28,11,1,0,51, - 0,0,0,0,0,0,0,62,0,115,0,193,128,192,128,192, - 128,192,128,192,128,193,128,115,0,62,0,11,8,16,19,4, - 2,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,9,12,24,11,1,0,1,128,63,0,99,0,199,128,197, - 128,201,128,217,128,209,128,225,128,99,0,254,0,128,0,8, - 16,16,10,1,0,96,48,16,8,0,0,195,195,195,195,195, - 195,195,195,231,123,8,16,16,10,1,0,4,12,8,16,0, - 0,195,195,195,195,195,195,195,195,231,123,8,16,16,10,1, - 0,24,24,52,36,0,0,195,195,195,195,195,195,195,195,231, - 123,8,14,14,10,1,0,102,0,0,0,195,195,195,195,195, - 195,195,195,231,123,10,19,38,10,0,252,3,0,6,0,4, - 0,8,0,0,0,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,120,0,120, - 0,9,18,36,11,1,252,192,0,192,0,192,0,192,0,222, - 0,227,0,193,128,193,128,193,128,193,128,193,128,193,128,227, - 0,222,0,192,0,192,0,192,0,192,0,10,18,36,10,0, - 252,51,0,0,0,0,0,0,0,192,192,97,128,97,128,97, - 0,51,0,51,0,30,0,30,0,30,0,12,0,12,0,24, - 0,24,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=15 x= 4 y= 7 dx=19 dy= 0 ascent=14 len=28 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14n[405] U8G_SECTION(".progmem.u8g_font_fur14n") = { - 0,26,26,255,251,14,0,0,0,0,42,57,0,14,254,14, - 0,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=12 dx=19 dy= 0 ascent=16 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14r[2489] U8G_SECTION(".progmem.u8g_font_fur14r") = { - 0,26,26,255,251,14,3,59,6,250,32,127,252,16,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=15 dx=24 dy= 0 ascent=24 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17[6799] U8G_SECTION(".progmem.u8g_font_fur17") = { - 0,31,30,254,250,17,4,5,8,170,32,255,251,24,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,7,0,0, - 2,17,17,8,3,251,192,192,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,10,18,36,14,2,253,1,0,1, - 0,1,0,31,0,127,128,98,192,198,192,196,0,196,0,204, - 0,200,0,200,192,121,192,127,128,31,0,32,0,32,0,32, - 0,11,17,34,13,1,0,15,128,29,192,48,96,48,0,48, - 0,48,0,254,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,255,224,11,14,28,13,1,3,0, - 32,128,32,95,64,123,128,96,128,64,64,64,64,64,64,64, - 64,96,128,113,128,95,64,128,32,0,32,12,17,34,14,1, - 0,192,48,96,96,96,96,48,224,48,192,249,240,25,128,15, - 128,15,0,255,240,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,1,22,22,8,4,251,128,128,128,128,128,128,128, - 128,128,0,0,0,0,128,128,128,128,128,128,128,128,128,8, - 21,21,10,1,252,62,126,192,192,192,112,120,62,119,227,195, - 199,238,124,30,7,3,3,3,142,252,7,2,2,7,0,15, - 198,198,17,17,51,19,1,0,3,224,0,15,120,0,56,14, - 0,35,242,0,71,57,0,78,25,0,140,0,128,140,0,128, - 140,0,128,140,0,128,140,24,128,70,57,0,67,241,0,32, - 2,0,48,6,0,12,24,0,3,224,0,9,11,22,9,0, - 6,62,0,127,0,97,0,1,0,63,0,113,0,65,0,67, - 0,61,0,0,0,255,128,9,9,18,13,2,1,49,128,51, - 0,99,0,230,0,204,0,230,0,99,0,51,0,17,128,12, - 5,10,14,1,5,255,240,0,16,0,16,0,16,0,16,255, - 17,17,51,19,1,0,3,224,0,15,120,0,56,14,0,39, - 242,0,70,57,0,70,25,0,134,24,128,135,224,128,134,48, - 128,134,16,128,134,24,128,70,25,0,70,25,0,32,2,0, - 56,14,0,15,120,0,3,224,0,7,1,1,7,0,15,254, - 5,6,6,7,1,11,112,216,136,136,216,112,14,14,28,24, - 5,0,2,0,2,0,2,0,2,0,255,252,2,0,2,0, - 2,0,2,0,2,0,0,0,0,0,0,0,255,252,7,9, - 9,9,1,8,60,126,198,6,12,24,48,224,254,7,9,9, - 9,1,8,60,126,198,14,24,14,6,206,124,3,4,4,5, - 2,14,96,96,192,128,255,10,21,42,13,1,252,31,192,60, - 128,124,128,252,128,252,128,252,128,124,128,124,128,60,128,4, - 128,4,128,4,128,4,128,4,128,4,128,4,128,4,128,4, - 128,4,128,4,128,4,128,2,3,3,6,2,7,192,192,192, - 6,5,5,6,1,250,64,120,12,12,252,3,9,9,7,2, - 8,96,224,32,32,32,32,32,32,32,8,11,11,10,1,6, - 60,126,195,193,193,193,195,98,124,0,255,9,9,18,13,2, - 1,204,0,102,0,99,0,51,0,57,128,51,0,99,0,102, - 0,204,0,15,17,34,18,2,0,96,48,224,32,32,96,32, - 64,32,192,32,128,33,0,35,0,34,24,6,24,4,40,12, - 72,8,200,16,254,48,8,32,8,96,8,16,17,34,19,2, - 0,96,16,224,48,32,32,32,96,32,192,32,128,33,128,33, - 0,35,62,6,119,4,99,12,3,8,6,24,28,16,48,32, - 96,96,127,17,17,51,19,1,0,124,4,0,254,12,0,6, - 8,0,24,16,0,30,48,0,6,32,0,198,96,0,206,64, - 0,124,198,0,1,134,0,1,10,0,3,26,0,2,50,0, - 6,63,128,4,2,0,8,2,0,24,2,0,10,17,34,12, - 1,251,6,0,6,0,0,0,0,0,6,0,6,0,6,0, - 14,0,28,0,112,0,96,0,192,0,192,0,192,192,241,192, - 127,128,31,0,16,23,46,17,1,0,14,0,6,0,3,0, - 1,0,0,0,0,0,3,128,3,128,7,192,6,192,14,224, - 12,96,12,112,24,48,24,48,56,56,63,248,63,252,96,12, - 96,12,224,6,192,6,192,7,16,23,46,17,1,0,0,96, - 0,192,0,128,1,0,0,0,0,0,3,128,3,128,7,192, - 6,192,14,224,12,96,12,112,24,48,24,48,56,56,63,248, - 63,252,96,12,96,12,224,6,192,6,192,7,16,23,46,17, - 1,0,3,128,3,192,6,192,4,96,0,0,0,0,3,128, - 3,128,7,192,6,192,14,224,12,96,12,112,24,48,24,48, - 56,56,63,248,63,252,96,12,96,12,224,6,192,6,192,7, - 16,22,44,17,1,0,7,96,13,192,0,0,0,0,0,0, - 3,128,3,128,7,192,6,192,14,224,12,96,12,112,24,48, - 24,48,56,56,63,248,63,252,96,12,96,12,224,6,192,6, - 192,7,16,22,44,18,1,0,6,48,6,48,0,0,0,0, - 0,0,1,192,3,192,3,224,7,96,6,96,6,112,12,48, - 12,56,28,24,24,28,63,252,63,252,48,6,96,6,96,7, - 224,3,192,3,16,24,48,17,1,0,3,128,6,192,4,64, - 4,64,3,128,0,0,0,0,3,128,3,128,7,192,6,192, - 6,224,12,96,12,112,28,48,24,48,24,24,63,248,63,252, - 96,12,96,12,224,6,192,6,192,7,21,17,51,23,1,0, - 0,255,248,0,240,0,1,240,0,1,176,0,3,176,0,3, - 48,0,7,48,0,6,48,0,14,63,248,12,48,0,28,48, - 0,31,240,0,56,48,0,48,48,0,112,48,0,96,48,0, - 192,63,248,13,22,44,15,1,251,15,192,63,240,48,56,96, - 24,96,24,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,24,112,48,63,240,15,192,2,0,3,192,0, - 224,0,96,7,224,11,23,46,14,2,0,48,0,24,0,12, - 0,4,0,0,0,0,0,255,224,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,224,11,23,46,14,2,0,3, - 0,6,0,6,0,12,0,0,0,0,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,11,23,46, - 14,2,0,30,0,30,0,51,0,33,0,0,0,0,0,255, - 224,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 192,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,11,22,44,14,2,0,51,0,51,0,0,0,0,0,0, - 0,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,224,4,23,23,6,0,0,192,96,48,16,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 4,23,23,6,2,0,48,96,64,192,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,6,23,23, - 6,0,0,56,120,76,196,0,0,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,7,22,22,7,0,0, - 198,198,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,15,17,34,17,0,0,63,192,49,240, - 48,56,48,12,48,12,48,6,48,6,48,6,255,6,48,6, - 48,6,48,6,48,12,48,28,48,56,49,240,63,192,13,22, - 44,17,2,0,14,192,31,128,0,0,0,0,0,0,224,24, - 240,24,248,24,248,24,220,24,220,24,206,24,198,24,199,24, - 195,24,195,152,193,216,193,216,192,248,192,248,192,120,192,56, - 15,24,48,17,1,0,14,0,6,0,3,0,1,0,1,128, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,15,24,48,17,1,0,0,224,0,192, - 1,128,1,0,3,0,0,0,0,0,7,192,30,240,48,24, - 96,12,96,12,192,6,192,6,192,6,192,6,192,6,192,6, - 224,14,96,12,96,12,48,24,30,240,7,192,15,24,48,17, - 1,0,3,128,3,128,6,192,4,64,12,32,0,0,0,0, - 7,192,30,240,48,24,96,12,96,12,192,6,192,6,192,6, - 192,6,192,6,192,6,224,14,96,12,96,12,48,24,30,240, - 7,192,15,22,44,17,1,0,7,96,13,192,0,0,0,0, - 0,0,7,192,30,240,48,24,96,12,96,12,192,6,192,6, - 192,6,192,6,192,6,192,6,224,14,96,12,112,28,56,56, - 31,240,7,192,15,22,44,17,1,0,6,96,6,96,0,0, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,13,12,24,23,5,1,192,24,96,48, - 48,96,24,192,13,128,7,0,7,0,13,128,24,192,48,96, - 96,48,192,24,15,21,42,17,1,254,0,4,0,14,7,236, - 30,248,48,60,96,60,96,110,192,230,192,198,193,198,195,134, - 195,6,199,6,238,14,108,12,124,12,120,24,62,240,111,192, - 224,0,64,0,13,24,48,17,2,0,28,0,12,0,6,0, - 2,0,1,0,0,0,0,0,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 224,24,96,56,112,112,63,224,31,192,13,24,48,17,2,0, - 1,192,1,128,3,0,2,0,6,0,0,0,0,0,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,224,24,96,56,112,112,63,224,31,192, - 13,24,48,17,2,0,7,0,7,0,13,128,8,128,24,64, - 0,0,0,0,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,224,24,96,56, - 112,112,63,224,31,192,13,22,44,17,2,0,12,192,12,192, - 0,0,0,0,0,0,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 96,56,96,48,61,224,31,192,14,23,46,15,0,0,0,192, - 1,128,1,128,3,0,0,0,0,0,224,28,112,24,112,56, - 56,48,24,112,28,96,12,192,14,192,7,128,3,128,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,11,17,34,14, - 2,0,192,0,192,0,192,0,192,0,255,128,193,192,192,224, - 192,96,192,96,192,96,193,192,255,128,192,0,192,0,192,0, - 192,0,192,0,12,17,34,13,1,0,31,0,127,128,224,192, - 192,192,193,192,195,128,199,0,198,0,198,0,195,128,193,224, - 192,112,192,48,192,48,204,48,207,96,195,192,10,18,36,13, - 1,0,24,0,12,0,4,0,6,0,0,0,0,0,31,0, - 123,128,96,192,96,192,0,192,63,192,120,192,224,192,192,192, - 193,192,119,192,60,192,10,19,38,13,1,0,3,0,6,0, - 6,0,12,0,8,0,0,0,0,0,31,0,123,128,96,192, - 96,192,0,192,63,192,120,192,224,192,192,192,193,192,119,192, - 60,192,10,19,38,13,1,0,14,0,14,0,27,0,51,0, - 33,128,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,17, - 34,13,1,0,29,128,63,0,0,0,0,0,0,0,31,0, - 123,128,96,192,0,192,7,192,63,192,112,192,192,192,193,192, - 193,192,119,192,60,192,10,17,34,13,1,0,49,128,49,128, - 0,0,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,20, - 40,13,1,0,14,0,27,0,17,0,17,0,27,0,14,0, - 0,0,0,0,31,0,123,128,96,192,96,192,0,192,63,192, - 120,192,224,192,192,192,193,192,119,192,62,192,18,12,36,20, - 1,0,30,31,0,127,191,128,97,225,128,0,224,192,0,192, - 192,63,255,192,120,192,0,224,192,0,192,224,192,193,225,128, - 127,63,128,62,31,0,10,17,34,12,1,251,31,0,127,128, - 97,192,192,192,192,0,192,0,192,0,192,0,192,192,97,192, - 127,128,31,0,8,0,15,0,3,128,1,128,31,0,10,19, - 38,13,1,0,48,0,24,0,8,0,12,0,6,0,0,0, - 0,0,31,0,127,128,96,192,192,192,192,192,255,192,192,0, - 192,0,192,192,96,192,63,128,31,0,10,19,38,13,1,0, - 3,0,7,0,6,0,12,0,8,0,0,0,0,0,31,0, - 127,128,96,192,192,192,192,192,255,192,192,0,192,0,192,192, - 96,192,63,128,31,0,10,19,38,13,1,0,12,0,30,0, - 26,0,51,0,33,0,0,0,0,0,31,0,127,128,96,192, - 192,192,192,192,255,192,192,0,192,0,192,192,96,192,63,128, - 31,0,11,17,34,13,1,0,49,128,49,128,0,0,0,0, - 0,0,31,0,59,192,96,192,224,96,192,96,255,224,192,0, - 192,0,192,96,96,192,59,192,31,0,4,18,18,6,0,0, - 192,96,48,16,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,4,18,18,6,2,0,48,96,192,128,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,6,18,18,6,0,0, - 120,120,204,132,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,6,17,17,5,255,0,204,204,0,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,11,17,34,13,1,0,97, - 128,63,0,30,0,119,0,3,128,31,192,127,192,96,224,224, - 96,192,96,192,96,192,96,192,96,224,96,96,192,63,192,31, - 0,10,17,34,14,2,0,25,0,63,0,0,0,0,0,0, - 0,223,0,255,128,225,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,11,19,38,13,1,0,56, - 0,24,0,12,0,4,0,2,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,19,38,13,1,0,3,128,3,0,6, - 0,4,0,12,0,0,0,0,0,31,0,63,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,63,192,31, - 0,11,19,38,13,1,0,14,0,14,0,27,0,17,0,49, - 128,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,11,17,34, - 13,1,0,29,128,63,0,0,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,17,34,13,1,0,49,128,49,128,0, - 0,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,14,10,20, - 24,5,2,3,0,3,0,3,0,0,0,0,0,255,252,0, - 0,3,0,3,0,3,0,11,15,30,13,1,254,0,32,0, - 96,31,192,63,192,97,192,227,224,194,96,198,96,204,96,216, - 96,248,224,112,192,123,192,95,0,192,0,10,19,38,14,2, - 0,48,0,24,0,24,0,12,0,4,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,119,192,60,192,10,19,38,14,2,0,3,0,6, - 0,6,0,12,0,8,0,0,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,119, - 192,60,192,10,19,38,14,2,0,12,0,30,0,30,0,51, - 0,33,0,0,0,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,225,192,119,192,60,192,10, - 17,34,14,2,0,51,0,51,0,0,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,11,23,46,12,1,251,3,0,3, - 0,6,0,12,0,0,0,0,0,192,96,192,192,224,192,97, - 192,113,128,49,128,51,128,59,0,27,0,30,0,14,0,14, - 0,12,0,12,0,220,0,248,0,112,0,11,22,44,14,2, - 251,192,0,192,0,192,0,192,0,192,0,207,0,251,192,224, - 192,224,224,192,96,192,96,192,96,192,96,224,224,224,192,251, - 192,207,0,192,0,192,0,192,0,192,0,192,0,11,22,44, - 13,1,251,49,128,49,128,0,0,0,0,0,0,192,96,224, - 96,96,224,96,192,113,192,49,128,57,128,27,128,27,0,31, - 0,14,0,14,0,14,0,12,0,12,0,28,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17n[510] U8G_SECTION(".progmem.u8g_font_fur17n") = { - 0,31,30,254,250,17,0,0,0,0,42,57,0,17,253,17, - 0,9,9,18,15,3,8,34,0,54,0,22,0,28,0,255, - 128,156,128,20,0,54,0,34,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,4,6,6,6,1, - 253,112,112,96,96,192,192,6,1,1,8,1,5,252,2,3, - 3,6,2,0,192,192,192,7,18,18,9,1,255,6,6,4, - 12,12,8,8,24,24,16,48,48,32,32,96,96,64,192,10, - 17,34,13,1,0,30,0,63,128,97,128,96,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,97, - 192,97,128,63,128,30,0,5,17,17,13,3,0,56,120,248, - 216,24,24,24,24,24,24,24,24,24,24,24,24,24,10,17, - 34,13,1,0,30,0,127,128,97,128,224,192,224,192,0,192, - 1,192,3,128,3,128,7,0,14,0,28,0,56,0,112,0, - 96,0,224,0,255,192,10,17,34,13,1,0,31,0,127,128, - 96,192,224,192,0,192,0,192,3,128,14,0,7,128,1,192, - 0,192,0,192,192,192,224,192,97,192,127,128,30,0,11,17, - 34,13,1,0,3,128,3,128,7,128,13,128,13,128,25,128, - 57,128,49,128,97,128,97,128,193,128,255,224,255,224,1,128, - 1,128,1,128,1,128,10,17,34,13,1,0,127,128,96,0, - 96,0,96,0,96,0,111,0,127,128,97,128,64,192,0,192, - 0,192,0,192,0,192,192,192,225,128,127,0,30,0,11,17, - 34,13,1,0,31,0,59,128,96,192,224,192,192,0,192,0, - 207,0,223,192,241,192,224,224,192,96,192,96,192,96,192,96, - 96,192,59,192,31,0,10,17,34,13,1,0,255,192,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,56,0,11,17, - 34,13,1,0,31,0,59,128,96,192,96,192,96,192,96,192, - 49,128,31,0,59,128,96,192,192,96,192,96,192,96,192,96, - 96,224,123,192,31,0,11,17,34,13,1,0,31,0,127,192, - 96,192,192,224,192,96,192,96,192,224,224,224,113,224,63,96, - 0,96,0,96,0,224,96,192,97,192,127,128,31,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17r[3146] U8G_SECTION(".progmem.u8g_font_fur17r") = { - 0,31,30,254,250,17,4,5,8,170,32,127,251,19,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=17 dx=29 dy= 0 ascent=28 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =28 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20[8654] U8G_SECTION(".progmem.u8g_font_fur20") = { - 0,38,35,254,249,20,5,12,11,23,32,255,251,28,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,3,19, - 19,10,4,251,224,224,224,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,12,20,40,16,2,253,0,192,0, - 128,0,128,31,128,63,192,113,96,227,96,226,0,226,0,230, - 0,228,0,228,0,236,112,232,96,120,224,63,192,31,128,16, - 0,48,0,48,0,14,20,40,16,1,0,7,224,31,248,60, - 60,56,28,56,0,56,0,56,0,255,128,255,128,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,255, - 248,255,248,16,14,28,18,1,4,192,3,97,134,55,236,28, - 56,24,24,48,12,48,12,48,12,48,12,24,24,28,56,63, - 252,115,198,192,3,15,20,40,17,1,0,224,14,224,28,112, - 28,48,56,56,56,24,112,252,126,252,254,14,224,7,192,255, - 254,255,254,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,1,25,25,9,4,251,128,128,128,128,128,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,128,128,128, - 128,128,10,25,50,12,1,251,31,0,63,128,112,0,224,0, - 224,0,112,0,120,0,62,0,31,0,127,128,113,192,225,192, - 225,192,225,128,247,128,126,0,31,0,7,128,3,192,1,192, - 1,192,1,192,131,128,255,0,60,0,8,3,3,8,0,17, - 231,231,231,21,20,60,25,2,0,1,252,0,7,255,0,28, - 3,128,56,112,192,35,254,96,103,142,48,199,7,16,134,7, - 24,142,0,8,142,0,8,142,0,8,134,0,8,134,7,24, - 199,7,16,67,254,16,32,248,32,48,0,64,28,1,128,7, - 143,0,1,252,0,10,13,26,12,1,7,63,0,127,128,97, - 128,1,128,31,128,127,128,225,128,193,128,227,128,127,128,24, - 0,0,0,255,192,11,11,22,16,2,2,12,96,24,224,56, - 192,113,128,99,128,227,0,99,128,113,128,56,192,24,224,12, - 96,15,6,12,18,2,6,255,254,255,254,0,6,0,6,0, - 6,0,6,255,21,20,60,25,2,0,1,252,0,7,255,0, - 28,3,128,59,252,192,35,254,96,99,3,48,195,3,16,131, - 3,24,131,254,8,131,252,8,131,6,8,131,6,8,131,3, - 24,195,3,16,67,3,48,35,3,96,56,0,192,28,3,128, - 7,255,0,1,252,0,8,2,2,8,0,17,255,255,6,6, - 6,8,1,14,120,204,132,132,204,120,17,17,51,29,6,0, - 1,128,0,1,128,0,1,128,0,1,128,0,1,128,0,255, - 255,128,255,255,128,1,128,0,1,128,0,1,128,0,1,128, - 0,1,128,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,9,11,22,11,1,9,62,0,127,0,227,128,3, - 128,3,0,7,0,28,0,56,0,112,0,255,128,255,128,8, - 11,11,10,1,9,62,127,195,3,30,30,7,3,195,126,60, - 5,5,5,6,2,16,56,48,96,224,192,255,13,24,48,16, - 1,252,15,248,62,32,126,32,126,32,254,32,254,32,254,32, - 126,32,62,32,30,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,3,3,3,7,2,8,224,224,224,7,7,7,7,1, - 249,32,32,60,14,6,254,248,4,10,10,8,2,10,112,240, - 176,48,48,48,48,48,48,48,10,12,24,12,1,8,30,0, - 99,128,193,128,192,192,192,192,192,192,192,192,193,128,99,128, - 30,0,0,0,255,192,12,11,22,16,2,2,227,0,99,128, - 49,128,56,192,24,224,28,112,24,224,56,192,49,128,99,128, - 227,0,18,20,60,22,2,0,112,12,0,240,12,0,176,24, - 0,48,24,0,48,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,131,0,49,7,0,3,15,0,6,31,0,6, - 27,0,12,51,0,12,99,0,24,127,192,16,3,0,48,3, - 0,96,3,0,18,20,60,22,2,0,112,12,0,240,24,0, - 176,24,0,48,48,0,48,48,0,48,96,0,48,64,0,48, - 192,0,48,128,0,49,143,0,51,31,128,3,49,192,6,1, - 192,6,1,192,12,3,128,8,7,0,24,14,0,16,24,0, - 48,63,192,96,63,192,20,20,60,22,1,0,62,1,128,127, - 3,0,195,3,0,3,6,0,28,6,0,30,12,0,3,24, - 0,195,24,0,199,48,0,126,48,192,56,97,192,0,99,192, - 0,198,192,1,134,192,1,140,192,3,24,192,3,31,240,6, - 0,192,12,0,192,12,0,192,12,19,38,15,2,251,7,0, - 7,0,7,0,0,0,0,0,7,0,7,0,7,0,15,0, - 30,0,56,0,112,0,224,0,224,0,224,0,224,112,127,224, - 63,224,31,128,19,27,81,21,1,0,7,0,0,3,128,0, - 1,128,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 224,0,1,240,0,1,240,0,3,176,0,3,184,0,3,56, - 0,7,28,0,7,28,0,14,14,0,14,14,0,30,15,0, - 28,7,0,28,7,0,63,255,128,63,255,128,112,1,192,112, - 1,192,224,0,224,224,0,224,224,0,224,19,27,81,21,1, - 0,0,28,0,0,56,0,0,48,0,0,96,0,0,192,0, - 0,0,0,0,0,0,0,224,0,1,240,0,1,240,0,3, - 176,0,3,184,0,3,56,0,7,28,0,7,28,0,14,14, - 0,14,14,0,30,15,0,28,7,0,28,7,0,63,255,128, - 63,255,128,112,1,192,112,1,192,224,0,224,224,0,224,224, - 0,224,19,27,81,21,1,0,0,224,0,1,240,0,1,176, - 0,3,24,0,6,12,0,0,0,0,0,0,0,0,224,0, - 1,240,0,1,240,0,3,176,0,3,184,0,3,56,0,7, - 28,0,7,28,0,14,14,0,14,14,0,30,15,0,28,7, - 0,28,7,0,63,255,128,63,255,128,112,1,192,112,1,192, - 224,0,224,224,0,224,224,0,224,19,26,78,21,1,0,1, - 140,0,3,248,0,6,112,0,0,0,0,0,0,0,0,0, - 0,0,224,0,1,240,0,1,240,0,3,176,0,3,184,0, - 3,56,0,7,28,0,7,28,0,14,14,0,14,14,0,30, - 15,0,28,7,0,28,7,0,63,255,128,63,255,128,112,1, - 192,112,1,192,224,0,224,224,0,224,224,0,224,19,26,78, - 21,1,0,3,156,0,3,156,0,3,156,0,0,0,0,0, - 0,0,0,0,0,0,224,0,0,240,0,1,240,0,1,184, - 0,3,184,0,3,152,0,7,28,0,7,28,0,7,14,0, - 14,14,0,14,15,0,28,7,0,28,7,0,63,255,128,63, - 255,128,56,1,192,112,1,192,112,0,224,224,0,224,224,0, - 224,20,28,84,21,0,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,0,0,0, - 240,0,0,240,0,0,248,0,1,248,0,1,220,0,3,156, - 0,3,158,0,7,14,0,7,14,0,7,7,0,14,7,0, - 14,7,128,30,3,128,31,255,192,31,255,192,56,1,192,56, - 0,224,112,0,224,112,0,112,224,0,112,25,20,80,28,1, - 0,0,63,255,128,0,127,255,128,0,126,0,0,0,238,0, - 0,0,238,0,0,1,206,0,0,1,206,0,0,3,206,0, - 0,3,142,0,0,7,143,255,128,7,15,255,128,15,14,0, - 0,14,14,0,0,31,254,0,0,63,254,0,0,56,14,0, - 0,120,14,0,0,112,14,0,0,224,15,255,128,224,15,255, - 128,16,27,54,19,2,249,7,240,31,252,60,14,48,6,112, - 7,96,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,96,0,96,7,48,6,56,14,31,252,7,240,0, - 128,0,224,0,248,0,24,0,24,3,248,1,224,13,27,54, - 17,2,0,24,0,28,0,14,0,6,0,3,0,0,0,0, - 0,255,248,255,248,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,255,240,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,248,255,248,13,27,54,17,2,0,1, - 192,1,128,3,0,6,0,4,0,0,0,0,0,255,248,255, - 248,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,248,255,248,13,27,54,17,2,0,15,0,15,0,25, - 128,16,192,48,192,0,0,0,0,255,248,255,248,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,240,255,240,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,248,255, - 248,13,26,52,17,2,0,56,224,56,224,56,224,0,0,0, - 0,0,0,255,248,255,248,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,248,255,248,5,27,27,7,0, - 0,224,96,48,48,24,0,0,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,27,27,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,8,27,27, - 7,255,0,28,62,118,99,193,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,8,26, - 26,8,0,0,227,227,227,0,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,19,20, - 60,20,0,0,63,240,0,63,254,0,56,31,0,56,7,128, - 56,3,128,56,1,192,56,1,192,56,0,192,56,0,224,255, - 192,224,255,192,224,56,0,224,56,0,192,56,1,192,56,1, - 192,56,3,128,56,7,128,56,31,0,63,254,0,63,240,0, - 16,26,52,20,2,0,6,48,15,224,9,224,0,0,0,0, - 0,0,240,7,248,7,248,7,252,7,252,7,238,7,238,7, - 231,7,231,135,227,135,227,199,225,199,224,231,224,231,224,119, - 224,119,224,63,224,63,224,31,224,31,18,28,84,22,2,0, - 7,0,0,3,128,0,1,128,0,0,192,0,0,64,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,62,31, - 0,56,7,0,112,3,128,96,1,128,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,96, - 1,192,112,3,128,112,3,128,56,7,0,30,30,0,15,252, - 0,3,240,0,18,28,84,22,2,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,62,31,0,56,7,0,112,3, - 128,96,1,128,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,96,1,192,112,3,128,112, - 3,128,56,7,0,30,30,0,15,252,0,3,240,0,18,28, - 84,22,2,0,1,224,0,1,224,0,3,240,0,3,48,0, - 6,24,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,62,31,0,56,7,0,112,3,128,96,1,128,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,96,1,192,112,3,128,112,3,128,56,7,0,30, - 30,0,15,252,0,3,240,0,18,26,78,22,2,0,3,152, - 0,7,248,0,6,112,0,0,0,0,0,0,0,0,0,0, - 3,240,0,15,252,0,62,31,0,56,7,0,112,3,128,96, - 1,128,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,96,1,192,112,3,128,112,3,128, - 56,7,0,31,62,0,15,252,0,3,240,0,18,26,78,22, - 2,0,7,28,0,7,28,0,7,28,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,62,31,0,56,7,0, - 112,3,128,96,1,128,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,96,1,192,112,3, - 128,112,3,128,56,7,0,30,30,0,15,252,0,3,240,0, - 16,15,30,28,6,1,64,2,224,7,112,14,56,28,12,56, - 6,96,3,192,1,128,3,192,6,96,12,48,24,24,48,12, - 96,6,64,2,18,24,72,22,2,254,0,0,128,0,1,192, - 3,251,128,15,255,0,62,31,0,56,15,128,112,31,128,96, - 29,128,224,57,192,224,113,192,224,113,192,224,225,192,225,193, - 192,227,193,192,227,129,192,231,1,128,111,3,128,126,3,128, - 60,7,0,62,30,0,63,252,0,115,240,0,224,0,0,96, - 0,0,16,28,56,20,2,0,14,0,7,0,3,0,1,128, - 0,128,0,0,0,0,0,0,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,96,14,112,14,62,124,31,248,15,224, - 16,28,56,20,2,0,0,112,0,224,0,192,1,128,1,0, - 0,0,0,0,0,0,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,96,14,112,14,62,124,31,248,15,224,16,28, - 56,20,2,0,3,192,3,192,7,224,6,96,12,48,0,0, - 0,0,0,0,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,96,14,112,14,62,124,31,248,15,224,16,26,52,20, - 2,0,14,56,14,56,14,56,0,0,0,0,0,0,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,96,6,112,14, - 60,60,31,248,15,224,17,27,81,19,1,0,0,112,0,0, - 96,0,0,192,0,0,128,0,1,128,0,0,0,0,0,0, - 0,224,3,128,240,7,0,112,7,0,56,14,0,60,28,0, - 28,28,0,14,56,0,14,48,0,7,112,0,7,96,0,3, - 224,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,14,20,40, - 17,2,0,224,0,224,0,224,0,224,0,255,192,255,240,224, - 120,224,56,224,28,224,28,224,28,224,56,224,120,255,240,255, - 192,224,0,224,0,224,0,224,0,224,0,14,20,40,15,1, - 0,15,128,63,224,112,112,224,112,224,112,224,112,225,224,227, - 128,231,0,231,0,227,128,227,224,224,248,224,56,224,28,224, - 28,238,28,230,28,231,248,225,240,12,21,42,15,1,0,12, - 0,14,0,6,0,3,0,1,128,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,22,44,15,1,0,1, - 192,1,128,3,0,3,0,6,0,12,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,22,44,15,1, - 0,7,0,15,0,13,128,29,128,24,192,48,64,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,12,20,40, - 15,1,0,30,64,31,192,49,128,0,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,20,40,15,1, - 0,56,224,56,224,56,224,0,0,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,23,46,15,1,0,15, - 0,25,128,16,128,16,128,25,128,15,0,0,0,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,23,14,42, - 25,1,0,31,131,240,63,207,248,112,108,28,112,56,12,0, - 56,14,15,255,254,63,255,254,120,56,0,224,56,0,224,56, - 14,224,120,12,240,236,28,127,199,248,31,3,240,12,21,42, - 14,1,249,31,128,63,224,112,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,112,224,112,112,224,63,224,31,128,4, - 0,7,128,7,192,0,96,0,96,31,192,15,0,13,22,44, - 15,1,0,56,0,28,0,12,0,6,0,6,0,3,0,0, - 0,0,0,15,128,63,224,112,112,96,48,224,56,255,248,255, - 248,224,0,224,0,224,56,96,112,112,112,63,224,15,128,13, - 22,44,15,1,0,1,192,1,128,3,128,3,0,6,0,4, - 0,0,0,0,0,15,128,63,224,112,112,96,48,224,56,255, - 248,255,248,224,0,224,0,224,56,96,112,112,112,63,224,15, - 128,13,22,44,15,1,0,7,0,15,0,15,128,25,128,24, - 192,48,64,0,0,0,0,15,128,63,224,112,112,96,48,224, - 56,255,248,255,248,224,0,224,0,224,56,96,112,112,112,63, - 224,15,128,13,20,40,15,1,0,56,224,56,224,56,224,0, - 0,0,0,0,0,15,192,63,224,112,112,96,56,224,56,255, - 248,255,248,224,0,224,0,224,56,96,56,112,112,63,224,15, - 128,5,21,21,7,0,0,224,96,48,48,24,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,21,21,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,8,21,21,7,255,0,60,62,118, - 99,193,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,8,20,20,7,255,0,227,227,227,0,0,0,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,14,20,40,16, - 1,0,48,32,57,224,15,0,31,128,113,192,0,224,15,240, - 63,240,120,120,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,96,56,112,112,63,224,15,192,12,20,40,16,2,0, - 28,192,63,192,51,128,0,0,0,0,0,0,239,128,255,224, - 240,240,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,14,22,44,16,1,0,28,0, - 12,0,14,0,6,0,3,0,1,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,14,22,44,16,1,0, - 0,224,1,192,1,128,3,0,3,0,6,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,22,44,16, - 1,0,7,0,7,128,15,128,12,192,24,192,24,96,0,0, - 0,0,15,192,63,224,112,112,112,56,224,24,224,28,224,28, - 224,28,224,28,224,24,112,56,112,112,63,224,15,192,14,20, - 40,16,1,0,14,96,31,192,17,128,0,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,20,40,16, - 1,0,28,224,28,224,28,224,0,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,17,12,36,29,6,2, - 1,192,0,1,192,0,1,192,0,0,0,0,0,0,0,255, - 255,128,255,255,128,0,0,0,0,0,0,1,192,0,1,192, - 0,1,192,0,14,18,36,16,1,254,0,8,0,24,15,248, - 63,240,112,112,112,248,225,216,225,152,227,28,230,28,238,28, - 236,24,120,56,112,112,127,224,111,192,192,0,128,0,12,22, - 44,16,2,0,56,0,24,0,12,0,12,0,6,0,3,0, - 0,0,0,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,240,240,127,240,63,112, - 12,22,44,16,2,0,1,192,1,128,3,0,7,0,6,0, - 12,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,12,22,44,16,2,0,6,0,15,0,15,0,25,128, - 16,128,48,192,0,0,0,0,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,240,240, - 127,240,63,112,12,20,40,16,2,0,57,192,57,192,57,192, - 0,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,13,27,54,15,1,251,0,224,1,192,1,128,3,0, - 2,0,0,0,0,0,0,0,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,7,128, - 7,128,7,0,7,0,6,0,238,0,252,0,120,0,14,25, - 50,17,2,251,224,0,224,0,224,0,224,0,224,0,224,0, - 231,192,255,240,240,112,240,56,224,24,224,28,224,28,224,28, - 224,28,224,24,224,56,240,112,255,240,231,192,224,0,224,0, - 224,0,224,0,224,0,14,25,50,14,0,251,28,224,28,224, - 28,224,0,0,0,0,0,0,224,28,112,24,112,56,48,56, - 56,112,56,112,28,96,28,224,14,224,14,192,7,192,7,128, - 3,128,3,128,3,0,7,0,6,0,6,0,14,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=17 h=21 x= 6 y= 9 dx=29 dy= 0 ascent=20 len=48 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20n[596] U8G_SECTION(".progmem.u8g_font_fur20n") = { - 0,38,35,254,249,20,0,0,0,0,42,57,0,20,253,20, - 0,11,11,22,19,4,9,17,0,49,128,27,0,27,0,14, - 0,255,224,142,32,27,0,27,0,49,128,17,0,17,16,48, - 29,6,0,1,128,0,1,128,0,1,128,0,1,128,0,1, - 128,0,1,128,0,1,128,0,255,255,128,255,255,128,1,128, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,5,7,7,8,1,253,56,56,112,112,96,96,224, - 7,2,2,9,1,6,254,254,3,3,3,8,3,0,224,224, - 224,8,21,21,11,2,255,3,6,6,6,4,12,12,12,24, - 24,24,48,48,48,96,96,96,64,192,192,192,13,20,40,16, - 1,0,15,128,63,192,112,224,96,112,96,112,224,48,224,48, - 224,56,224,56,224,56,224,56,224,56,224,56,224,48,224,48, - 96,112,112,112,48,224,63,192,15,128,7,20,20,16,4,0, - 30,62,126,254,206,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,12,20,40,16,2,0,31,128,63,192,112,96, - 112,112,224,112,0,112,0,112,0,112,0,224,1,224,3,192, - 3,128,7,0,14,0,28,0,60,0,120,0,240,0,255,240, - 255,240,13,20,40,16,1,0,15,128,63,224,112,112,112,48, - 224,56,0,56,0,48,0,224,7,192,7,192,0,224,0,112, - 0,56,0,56,224,56,224,56,224,56,112,112,63,224,31,128, - 14,20,40,16,1,0,0,240,1,240,1,240,3,240,7,112, - 6,112,14,112,28,112,24,112,56,112,112,112,96,112,224,112, - 255,252,255,252,0,112,0,112,0,112,0,112,0,112,13,20, - 40,16,1,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,239,128,255,224,240,112,224,112,224,48,0,56,0,56, - 0,56,224,48,224,112,112,224,127,192,31,128,13,20,40,16, - 1,0,15,192,63,224,120,112,112,48,224,56,224,0,224,0, - 231,192,255,224,248,240,224,56,224,56,224,56,224,56,224,56, - 224,56,96,48,48,112,63,224,15,128,12,20,40,16,2,0, - 255,240,255,240,0,112,0,112,0,96,0,224,0,224,1,192, - 1,192,1,128,3,128,3,128,3,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,13,20,40,16,1,0,15,128, - 63,224,112,112,224,48,224,56,224,56,96,48,112,112,31,192, - 31,192,56,96,96,48,224,56,224,56,224,56,224,56,224,56, - 112,112,63,224,15,128,13,20,40,16,1,0,31,192,63,224, - 112,112,224,56,224,56,224,56,224,56,224,56,224,56,112,120, - 63,248,31,56,0,56,0,56,0,56,96,48,96,112,112,224, - 63,192,31,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=16 dx=29 dy= 0 ascent=22 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20r[3976] U8G_SECTION(".progmem.u8g_font_fur20r") = { - 0,38,35,254,249,20,5,12,11,23,32,127,251,22,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=22 dx=34 dy= 0 ascent=36 len=132 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =36 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25[11949] U8G_SECTION(".progmem.u8g_font_fur25") = { - 0,46,45,254,247,25,6,119,15,27,32,255,249,36,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 10,0,0,3,25,25,13,5,249,224,224,224,0,0,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,14,26,52,19,2,252,0,48,0,48,0,32,0,96, - 15,224,63,240,124,248,112,220,112,156,241,156,225,128,225,128, - 227,0,227,0,227,0,226,0,246,28,118,28,124,60,60,120, - 63,240,15,192,24,0,24,0,16,0,48,0,17,26,78,19, - 1,0,0,64,0,7,252,0,15,254,0,30,15,0,60,7, - 128,56,3,128,56,0,0,56,0,0,56,0,0,56,0,0, - 255,224,0,255,224,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,255,255,0,255,255,0, - 18,19,57,20,1,6,64,0,128,224,1,192,113,227,128,63, - 255,0,31,62,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 31,62,0,55,251,0,113,225,128,224,1,192,64,0,128,18, - 25,75,20,1,0,240,1,192,112,3,192,120,3,128,56,7, - 128,60,7,0,28,15,0,30,14,0,254,15,192,255,31,192, - 7,28,0,7,184,0,3,184,0,3,240,0,255,255,192,255, - 255,192,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,12,31,62,16,2,251,31,224,63, - 224,56,32,112,0,112,0,112,0,120,0,124,0,62,0,31, - 128,15,192,63,224,120,240,240,112,224,112,224,112,224,240,241, - 224,127,192,63,128,31,128,7,224,1,224,0,240,0,112,0, - 112,0,112,0,240,65,224,127,192,63,128,10,3,6,10,0, - 22,225,192,225,192,225,192,26,25,100,30,2,1,0,255,192, - 0,3,255,240,0,7,128,120,0,14,0,28,0,28,127,14, - 0,57,255,135,0,115,227,195,0,99,129,225,128,103,128,225, - 128,199,0,0,192,199,0,0,192,199,0,0,192,199,0,0, - 192,199,0,0,192,199,0,0,192,199,0,224,128,99,129,225, - 128,99,195,193,128,49,255,131,0,48,127,7,0,24,0,14, - 0,14,0,28,0,7,128,120,0,1,255,224,0,0,127,128, - 0,12,17,34,14,1,8,31,128,63,192,120,224,96,96,0, - 96,7,224,63,224,56,96,96,96,96,96,96,224,113,224,63, - 96,30,96,0,0,0,0,255,240,13,14,28,19,3,2,14, - 56,28,56,56,112,56,224,112,224,113,192,227,192,227,192,113, - 192,112,224,56,224,24,112,28,56,14,56,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,26,25,100,30,2,1, - 0,255,192,0,3,255,240,0,7,128,120,0,14,255,156,0, - 24,255,206,0,48,193,231,0,112,192,99,0,96,192,97,128, - 96,192,97,128,192,192,192,192,192,255,128,192,192,255,128,192, - 192,193,192,192,192,192,192,192,192,192,192,192,192,192,225,128, - 96,192,97,128,96,192,97,128,48,192,99,0,56,0,7,0, - 28,0,14,0,15,0,60,0,7,193,248,0,1,255,224,0, - 0,127,128,0,10,2,4,10,0,22,255,192,255,192,7,7, - 7,11,2,18,56,196,130,130,130,196,120,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,240,255,255,240, - 10,13,26,12,1,13,63,128,127,128,97,192,225,192,1,192, - 3,128,7,128,14,0,28,0,56,0,240,0,255,192,255,192, - 10,14,28,13,2,12,127,128,255,192,193,192,1,192,7,128, - 14,0,15,128,3,192,0,192,192,192,192,192,227,128,127,128, - 62,0,6,6,6,8,2,21,28,60,56,112,96,192,255,16, - 31,62,20,2,250,7,255,31,140,63,140,127,140,255,140,255, - 140,255,140,255,140,255,140,127,140,127,140,31,140,7,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,3,4,4,9,3,10,224,224,224,224,8,9,9, - 9,2,247,32,32,60,62,7,3,135,255,252,5,13,13,10, - 2,12,56,120,248,152,24,24,24,24,24,24,24,24,24,12, - 16,32,14,1,9,31,128,63,192,112,224,224,96,192,112,192, - 48,192,48,192,48,192,112,224,112,112,224,63,192,31,128,0, - 0,0,0,255,240,13,14,28,19,3,2,227,128,225,192,112, - 192,56,224,56,112,28,112,28,56,30,56,28,112,56,112,56, - 224,112,192,225,192,227,128,23,27,81,27,2,0,56,0,192, - 120,1,192,248,1,128,216,3,128,24,3,0,24,7,0,24, - 6,0,24,14,0,24,12,0,24,24,0,24,24,0,24,48, - 0,24,112,0,24,96,112,0,224,112,0,192,240,1,193,176, - 1,129,48,3,131,48,3,6,48,7,12,48,6,15,254,14, - 15,254,12,0,48,24,0,48,24,0,48,48,0,48,23,27, - 81,27,2,0,56,0,224,120,1,192,248,1,128,216,3,128, - 24,3,0,24,7,0,24,6,0,24,14,0,24,12,0,24, - 28,0,24,24,0,24,56,0,24,48,0,24,112,248,0,227, - 252,0,195,142,1,199,6,1,128,6,3,128,14,3,0,12, - 7,0,56,6,0,112,14,0,224,12,3,192,28,7,128,24, - 7,254,48,7,254,24,26,78,27,2,0,0,0,24,127,128, - 56,255,192,112,193,192,96,3,128,224,14,0,192,15,129,192, - 3,193,128,0,195,128,192,199,0,192,198,0,227,142,0,127, - 140,28,62,28,60,0,24,60,0,48,108,0,112,204,0,97, - 204,0,227,140,0,195,12,1,199,255,1,135,255,3,0,12, - 7,0,12,6,0,12,14,0,12,15,25,50,18,2,249,1, - 192,1,192,1,192,0,0,0,0,0,0,1,192,1,192,1, - 192,1,192,3,192,7,128,15,0,62,0,124,0,120,0,240, - 0,224,0,224,0,224,8,240,14,120,60,63,252,31,248,7, - 224,24,35,105,26,1,0,1,192,0,1,224,0,0,224,0, - 0,112,0,0,48,0,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,124,0,0,126,0,0,254, - 0,0,238,0,0,239,0,1,231,0,1,199,128,3,195,128, - 3,131,192,7,131,192,7,1,192,7,1,224,15,0,224,14, - 0,240,31,255,240,31,255,240,31,255,248,60,0,56,56,0, - 60,120,0,28,112,0,30,112,0,30,240,0,14,224,0,15, - 24,35,105,26,1,0,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,60,0,0,124,0,0,126,0,0,254,0, - 0,238,0,0,239,0,1,231,0,1,199,128,3,195,128,3, - 131,192,7,131,192,7,1,192,7,1,224,15,0,224,14,0, - 240,31,255,240,31,255,240,31,255,248,60,0,56,56,0,60, - 120,0,28,112,0,30,112,0,30,240,0,14,224,0,15,24, - 35,105,26,1,0,0,60,0,0,124,0,0,110,0,0,230, - 0,0,195,0,1,131,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,60,0,0,124,0,0,126,0,0,254,0,0, - 238,0,0,239,0,1,231,0,1,199,128,3,195,128,3,131, - 192,7,131,192,7,1,192,7,1,224,15,0,224,14,0,240, - 31,255,240,31,255,240,31,255,248,60,0,56,56,0,60,120, - 0,28,112,0,30,112,0,30,240,0,14,224,0,15,24,33, - 99,26,1,0,0,241,128,1,255,0,1,159,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, - 124,0,0,126,0,0,254,0,0,238,0,0,239,0,1,231, - 0,1,199,128,3,195,128,3,131,192,7,131,192,7,1,192, - 7,1,224,15,0,224,14,0,240,31,255,240,31,255,240,31, - 255,248,60,0,56,56,0,60,120,0,28,112,0,30,112,0, - 30,240,0,14,224,0,15,25,33,132,25,0,0,0,225,192, - 0,0,225,192,0,0,225,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0, - 0,0,62,0,0,0,62,0,0,0,127,0,0,0,119,0, - 0,0,247,128,0,0,227,128,0,0,227,192,0,1,227,192, - 0,1,193,192,0,3,193,224,0,3,128,224,0,7,128,240, - 0,7,0,112,0,7,0,112,0,15,255,248,0,15,255,248, - 0,31,255,252,0,28,0,28,0,28,0,30,0,60,0,14, - 0,56,0,14,0,120,0,15,0,112,0,7,0,240,0,7, - 128,24,36,108,25,1,0,0,56,0,0,196,0,0,130,0, - 0,130,0,0,130,0,0,196,0,0,124,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,60,0,0,124,0,0,126, - 0,0,254,0,0,238,0,0,239,0,1,231,0,1,199,128, - 3,195,128,3,131,128,7,131,192,7,129,192,7,1,224,15, - 0,224,14,0,240,31,255,240,31,255,240,31,255,248,60,0, - 56,56,0,60,120,0,60,120,0,28,112,0,30,240,0,14, - 224,0,15,31,25,100,34,1,0,0,7,255,252,0,15,255, - 252,0,15,255,252,0,31,192,0,0,29,192,0,0,61,192, - 0,0,57,192,0,0,121,192,0,0,241,192,0,0,241,192, - 0,1,225,192,0,1,225,255,252,3,193,255,252,3,193,255, - 252,7,129,192,0,7,255,192,0,15,255,192,0,15,255,192, - 0,30,1,192,0,28,1,192,0,60,1,192,0,56,1,192, - 0,120,1,255,254,112,1,255,254,240,1,255,254,19,33,99, - 23,2,249,3,254,0,15,255,128,30,3,192,60,1,192,56, - 0,224,112,0,224,112,0,0,112,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,112,0,0,112,0,224,112,0,224,56, - 1,224,60,1,192,31,7,128,15,255,0,3,252,0,0,64, - 0,0,120,0,0,124,0,0,30,0,0,6,0,0,6,0, - 1,254,0,1,252,0,16,35,70,21,3,0,28,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,16,35,70,21,3,0,0,112,0,240,0,224,1,192, - 1,128,3,0,0,0,0,0,0,0,0,0,255,254,255,254, - 255,254,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,254,255,254,255,254,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,255,255,255,255,255,16,35, - 70,21,3,0,7,192,7,192,14,224,12,96,28,112,24,48, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,254, - 255,254,255,254,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,255,255,255,255,255,16,33,66,21,3,0, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,6,35,35,9,0,0,240,112,56,24,28,12,0,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,6,35,35,9,3, - 0,28,56,48,112,224,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,9,35,70,9,0,0,30,0,62,0,55,0, - 115,0,99,128,193,128,0,0,0,0,0,0,0,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 10,33,66,10,0,0,225,192,225,192,225,192,0,0,0,0, - 0,0,0,0,0,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,22,25,75,24,0,0,31,252, - 0,31,255,128,31,255,192,28,7,224,28,0,240,28,0,120, - 28,0,120,28,0,60,28,0,60,28,0,28,28,0,28,255, - 240,28,255,240,28,255,240,28,28,0,28,28,0,28,28,0, - 60,28,0,56,28,0,120,28,0,120,28,0,240,28,7,224, - 31,255,192,31,255,128,31,252,0,19,33,99,25,3,0,3, - 204,0,7,252,0,14,248,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,248,0,224,248,0,224,252,0,224, - 254,0,224,254,0,224,239,0,224,239,0,224,231,128,224,231, - 128,224,227,192,224,227,192,224,225,224,224,224,224,224,224,240, - 224,224,120,224,224,120,224,224,60,224,224,60,224,224,30,224, - 224,30,224,224,15,224,224,15,224,224,7,224,224,3,224,224, - 3,224,22,36,108,26,2,0,3,192,0,1,192,0,0,224, - 0,0,96,0,0,112,0,0,56,0,0,24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,0,15,255,192,31, - 255,224,62,1,240,56,0,112,120,0,120,112,0,56,240,0, - 56,240,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,240,0,60,112,0,56,112,0,56,120, - 0,120,56,0,112,60,0,240,31,3,224,15,255,192,7,255, - 128,0,252,0,22,36,108,26,2,0,0,15,0,0,14,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,96,0,0, - 0,0,0,0,0,0,0,0,0,0,0,3,255,0,15,255, - 192,31,255,224,62,1,240,56,0,112,120,0,120,112,0,56, - 240,0,56,240,0,28,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,240,0,60,112,0,56,112,0, - 56,120,0,120,56,0,112,60,0,240,31,3,224,15,255,192, - 7,255,128,0,252,0,22,36,108,26,2,0,0,120,0,0, - 120,0,0,252,0,0,206,0,1,206,0,3,135,0,3,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,255,0, - 15,255,192,31,255,224,62,1,240,56,0,112,120,0,120,112, - 0,56,240,0,56,240,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,240,0,60,112,0,56, - 112,0,56,120,0,120,56,0,112,60,0,240,31,3,224,15, - 255,192,7,255,128,0,252,0,22,33,99,26,2,0,1,243, - 0,3,255,0,3,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,255,0,15,255,192,31,255,224,62, - 1,240,56,0,112,120,0,120,112,0,56,240,0,56,240,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,240,0,60,112,0,56,112,0,56,120,0,120,56, - 0,112,60,0,240,31,3,224,15,255,192,7,255,128,0,252, - 0,22,33,99,26,2,0,1,195,128,1,195,128,1,195,128, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 255,0,15,255,192,31,255,224,62,1,240,56,0,112,120,0, - 120,112,0,56,240,0,56,240,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,224,0,28,224,0,28,240,0,60,112, - 0,56,112,0,56,120,0,120,56,0,112,60,0,240,31,3, - 224,15,255,192,7,255,128,0,252,0,18,19,57,34,8,1, - 64,0,128,224,1,192,112,3,128,56,7,0,24,6,0,12, - 12,0,6,24,0,3,48,0,1,224,0,0,192,0,1,224, - 0,3,48,0,6,24,0,12,12,0,24,6,0,48,3,0, - 96,1,128,224,1,192,64,0,128,22,31,93,26,2,253,0, - 0,24,0,0,60,0,0,56,3,255,120,15,255,240,31,255, - 240,62,1,240,56,1,240,120,3,248,112,7,184,240,15,60, - 240,15,60,224,30,28,224,60,28,224,60,28,224,120,28,224, - 240,28,224,224,28,241,224,60,115,192,56,115,128,56,127,128, - 120,63,0,112,62,0,240,31,3,224,63,255,192,63,255,128, - 121,252,0,240,0,0,224,0,0,32,0,0,19,36,108,25, - 3,0,7,0,0,3,128,0,3,128,0,1,192,0,0,224, - 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, - 0,0,0,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,240,0,224,240,1,224,112,1,192,120, - 3,192,62,7,192,63,255,128,31,255,0,3,248,0,19,36, - 108,25,3,0,0,28,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,1,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,240,0,224,240,1,224,112,1, - 192,120,3,192,62,7,192,63,255,128,31,255,0,3,248,0, - 19,36,108,25,3,0,0,224,0,1,240,0,1,240,0,3, - 184,0,3,28,0,6,12,0,6,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,240,0,224,240,1,224, - 112,1,192,120,3,192,62,7,192,63,255,128,31,255,0,3, - 248,0,19,33,99,25,3,0,7,14,0,7,14,0,7,14, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,240,0,224,240,1,224,112,1,192,120,3,192,62, - 7,192,63,255,128,31,255,0,3,248,0,21,35,105,23,1, - 0,0,14,0,0,30,0,0,28,0,0,56,0,0,48,0, - 0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 0,120,120,0,112,120,0,240,60,1,224,30,1,224,30,3, - 192,15,3,128,15,7,128,7,135,0,3,143,0,3,206,0, - 1,252,0,1,252,0,0,248,0,0,120,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,16,25,50,21,3,0, - 224,0,224,0,224,0,224,0,255,224,255,252,255,254,224,62, - 224,15,224,7,224,7,224,7,224,7,224,7,224,15,224,62, - 255,254,255,252,255,224,224,0,224,0,224,0,224,0,224,0, - 224,0,17,25,75,19,2,0,7,224,0,31,248,0,126,124, - 0,112,60,0,240,28,0,224,28,0,224,28,0,224,56,0, - 224,248,0,225,224,0,225,192,0,225,192,0,225,224,0,225, - 240,0,224,252,0,224,63,0,224,15,0,224,7,128,224,3, - 128,224,3,128,231,3,128,227,131,128,227,231,128,225,255,0, - 224,124,0,15,27,54,19,2,0,14,0,7,0,3,128,3, - 128,1,192,0,192,0,0,0,0,0,0,15,240,63,252,60, - 60,120,30,112,14,0,14,0,14,15,254,63,254,124,14,112, - 14,224,14,224,30,224,30,240,62,120,238,63,238,15,142,15, - 28,56,19,2,0,0,112,0,224,0,224,1,192,3,128,3, - 0,6,0,0,0,0,0,0,0,15,240,63,252,60,60,120, - 30,112,14,0,14,0,14,15,254,63,254,124,14,112,14,224, - 14,224,30,224,30,240,62,120,238,63,238,15,142,15,28,56, - 19,2,0,3,192,7,192,7,224,14,224,12,112,28,48,24, - 24,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,25,50,19,2, - 0,15,152,31,240,25,224,0,0,0,0,0,0,0,0,15, - 240,63,252,60,60,120,30,112,14,0,14,0,14,15,254,63, - 254,124,14,112,14,224,14,224,30,224,30,240,62,120,238,63, - 238,15,142,15,25,50,19,2,0,28,56,28,56,28,56,0, - 0,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,29,58,19,2, - 0,3,128,12,64,8,32,8,32,8,32,12,64,7,192,0, - 0,0,0,0,0,0,0,15,240,63,252,60,124,120,30,112, - 30,0,30,0,30,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,27,18,72,31,2, - 0,15,224,126,0,63,241,255,0,124,121,199,128,112,31,129, - 192,112,15,1,192,0,15,0,224,0,14,0,224,15,255,255, - 224,63,255,255,224,124,14,0,0,240,14,0,0,224,14,0, - 0,224,31,0,224,224,27,1,192,240,59,131,192,124,241,239, - 128,63,225,255,128,31,192,126,0,14,26,52,18,2,248,15, - 224,63,248,60,120,112,60,112,28,240,28,224,0,224,0,224, - 0,224,0,224,0,224,0,240,28,112,28,112,60,60,120,31, - 240,7,224,1,0,1,224,1,240,0,120,0,24,0,24,7, - 240,7,224,16,28,56,19,2,0,28,0,14,0,14,0,7, - 0,3,128,1,128,0,192,0,0,0,0,0,0,7,224,31, - 248,60,124,120,30,112,14,240,14,224,14,255,254,255,255,224, - 0,224,0,224,0,112,14,112,14,120,30,62,124,31,248,7, - 224,16,28,56,19,2,0,0,120,0,240,0,224,1,192,1, - 128,3,128,3,0,0,0,0,0,0,0,7,224,31,248,60, - 124,120,30,112,14,240,14,224,14,255,254,255,255,224,0,224, - 0,224,0,112,14,112,14,120,30,62,124,31,248,7,224,16, - 28,56,19,2,0,3,192,7,192,7,224,14,224,12,112,24, - 48,24,24,0,0,0,0,0,0,7,224,31,248,60,124,120, - 30,112,14,240,14,224,14,255,254,255,255,224,0,224,0,224, - 0,112,14,112,14,120,30,62,124,31,248,7,224,16,25,50, - 19,2,0,28,56,28,56,28,56,0,0,0,0,0,0,0, - 0,7,224,31,248,60,60,120,14,112,14,240,14,224,6,255, - 254,255,255,224,0,224,0,224,0,112,14,112,14,120,30,62, - 60,31,248,7,224,6,27,27,8,255,0,240,112,56,24,28, - 12,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,6,27,27,8,2,0,28,56,112,112, - 224,192,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,9,27,54,8,255,0,62,0,62, - 0,119,0,115,0,227,128,193,128,0,0,0,0,0,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,10,25,50,8,255,0,227,192,227,192,227,192,0, - 0,0,0,0,0,0,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,17,26,78,21,2, - 0,16,4,0,56,28,0,30,248,0,7,192,0,15,192,0, - 60,240,0,112,120,0,0,60,0,7,252,0,31,254,0,62, - 63,0,120,15,0,112,7,0,240,7,128,240,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,240,7,0, - 112,7,0,120,15,0,62,62,0,31,252,0,7,240,0,15, - 25,50,19,2,0,15,48,31,240,27,224,0,0,0,0,0, - 0,0,0,227,240,239,248,252,124,248,30,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,17,28,84,21,2,0,14,0,0, - 15,0,0,7,0,0,3,128,0,1,128,0,0,192,0,0, - 224,0,0,0,0,0,0,0,0,0,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,17,28,84,21,2,0,0,56,0,0,120,0,0,112,0, - 0,224,0,0,192,0,1,128,0,3,0,0,0,0,0,0, - 0,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,0,240,7,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,7,128,240,7,128,112,7,0,120, - 15,0,62,62,0,31,252,0,7,240,0,17,28,84,21,2, - 0,1,192,0,3,224,0,3,224,0,7,112,0,14,56,0, - 12,24,0,28,28,0,0,0,0,0,0,0,0,0,0,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 0,240,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 240,7,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,25,75,21,2,0,7,152,0,15,248, - 0,12,240,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,240,0,31,252,0,62,62,0,120,15,0,112,7,0,240, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,240,7,128,240,7,128,112,7,0,120,15,0,62,62,0, - 31,252,0,7,240,0,17,25,75,21,2,0,28,56,0,28, - 56,0,28,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,240,7,128,240,7,128,112,7,0,120,15,0,62,62, - 0,31,252,0,7,240,0,20,15,45,34,7,3,0,96,0, - 0,240,0,0,240,0,0,96,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,0,0,0,0,0,0,0,96, - 0,0,240,0,0,240,0,0,96,0,17,23,69,21,2,254, - 0,1,0,0,1,128,0,3,128,7,247,0,31,254,0,62, - 62,0,120,31,0,112,63,0,240,55,128,240,119,128,224,227, - 128,225,195,128,225,131,128,227,131,128,231,7,128,254,7,128, - 124,7,0,124,15,0,62,62,0,127,252,0,103,240,0,224, - 0,0,192,0,0,15,28,56,19,2,0,28,0,30,0,14, - 0,7,0,3,0,1,128,1,128,0,0,0,0,0,0,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,240,30,124,126,63, - 238,31,142,15,28,56,19,2,0,0,112,0,240,0,224,1, - 192,1,128,3,0,7,0,0,0,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,30,124,126,63,238,31, - 142,15,28,56,19,2,0,3,128,7,192,7,192,14,224,12, - 96,24,48,24,48,0,0,0,0,0,0,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,240,30,124,126,63,238,31,142,15, - 25,50,19,2,0,56,112,56,112,56,112,0,0,0,0,0, - 0,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,240,30,240, - 62,124,126,63,238,31,142,16,34,68,18,1,249,0,56,0, - 112,0,96,0,224,1,192,1,128,0,0,0,0,0,0,224, - 7,240,7,112,15,112,14,120,14,56,30,60,28,28,28,28, - 60,30,56,14,120,15,112,7,112,7,240,7,224,3,224,3, - 224,1,192,1,192,3,128,3,128,231,128,255,0,127,0,62, - 0,16,32,64,20,2,249,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,227,240,231,248,254,60,248,30,240,14,240, - 15,224,7,224,7,224,7,224,7,224,7,224,7,240,15,240, - 14,248,30,254,124,239,248,227,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,16,32,64,18,1,249,28,56,28, - 56,28,56,0,0,0,0,0,0,0,0,224,7,224,7,240, - 15,112,14,120,14,56,30,60,28,60,28,28,56,30,56,14, - 120,15,112,15,112,7,240,7,224,3,224,3,192,3,192,3, - 192,3,128,3,128,7,128,7,0,7,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=12 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25n[774] U8G_SECTION(".progmem.u8g_font_fur25n") = { - 0,46,45,254,247,25,0,0,0,0,42,57,0,26,252,25, - 0,14,13,26,22,4,12,24,96,28,224,28,224,12,192,7, - 128,243,60,255,252,231,156,7,128,12,192,28,224,60,224,24, - 96,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,6,9,9,9,2,252,60,120,120,112, - 112,224,224,224,192,8,3,3,10,1,7,255,255,255,3,4, - 4,9,3,0,224,224,224,224,10,28,56,13,2,254,0,192, - 1,192,1,128,1,128,3,128,3,0,3,0,3,0,7,0, - 6,0,6,0,14,0,12,0,12,0,28,0,28,0,24,0, - 24,0,56,0,48,0,48,0,112,0,112,0,96,0,96,0, - 224,0,192,0,192,0,15,25,50,19,2,1,15,224,63,248, - 62,248,120,60,112,28,112,30,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,240,14, - 112,30,112,28,120,28,60,60,63,248,31,240,7,192,8,25, - 25,19,5,0,15,31,63,127,255,231,135,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,15,25,50, - 19,2,1,15,240,63,248,62,252,120,28,120,30,112,14,240, - 14,0,14,0,30,0,28,0,60,0,120,0,120,0,240,1, - 224,3,192,7,128,15,0,31,0,62,0,60,0,120,0,240, - 0,255,254,255,254,16,25,50,19,2,1,15,240,63,248,60, - 28,120,14,112,14,112,14,0,14,0,14,0,28,0,120,3, - 240,3,240,0,248,0,30,0,14,0,15,0,7,0,7,240, - 7,240,7,240,14,120,30,60,124,31,248,7,224,17,25,75, - 19,1,0,0,60,0,0,124,0,0,124,0,0,252,0,1, - 220,0,1,220,0,3,156,0,7,28,0,7,28,0,14,28, - 0,28,28,0,60,28,0,56,28,0,112,28,0,240,28,0, - 224,28,0,255,255,128,255,255,128,255,255,128,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,15,25, - 50,19,2,0,127,252,127,252,127,252,112,0,112,0,112,0, - 112,0,112,0,115,240,127,248,124,60,120,28,112,30,96,14, - 0,14,0,14,0,14,0,14,0,14,224,30,240,28,112,60, - 124,120,63,240,15,192,16,25,50,19,1,1,15,240,31,252, - 60,28,120,30,112,14,240,14,224,0,224,0,224,0,227,240, - 231,252,239,252,252,30,248,14,240,15,240,7,240,7,240,7, - 240,7,112,7,120,14,56,14,62,60,15,248,7,224,15,25, - 50,19,2,0,255,254,255,254,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,240,0,240,0,224, - 1,224,1,224,1,192,3,192,3,128,7,128,7,128,7,0, - 15,0,15,0,14,0,16,25,50,19,1,1,15,240,63,252, - 60,60,120,30,112,14,112,14,112,14,112,14,56,28,60,60, - 15,240,15,240,62,56,56,28,112,14,224,7,224,7,224,7, - 224,7,224,7,240,15,120,14,60,60,31,248,7,224,16,25, - 50,19,2,1,31,248,63,252,120,30,112,14,240,15,224,15, - 224,15,224,15,224,15,240,15,112,31,120,63,63,247,15,231, - 0,7,0,7,0,7,0,14,112,14,112,14,112,30,112,60, - 60,120,31,240,15,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=21 dx=34 dy= 0 ascent=28 len=120 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25r[5389] U8G_SECTION(".progmem.u8g_font_fur25r") = { - 0,46,45,254,247,25,6,119,15,27,32,127,249,28,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=26 dx=40 dy= 0 ascent=43 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30[16505] U8G_SECTION(".progmem.u8g_font_fur30") = { - 0,54,54,253,245,30,9,94,20,223,32,255,249,43,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,12,0,0,4,28,28,14,5,248, - 240,240,240,240,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,17,31,93,23, - 3,250,0,12,0,0,12,0,0,24,0,0,24,0,0,24, - 0,15,248,0,63,254,0,62,63,0,120,119,0,120,103,0, - 240,103,128,240,96,0,240,192,0,240,192,0,240,192,0,241, - 128,0,241,128,0,241,128,0,243,7,128,243,7,128,123,7, - 0,126,15,0,62,30,0,31,254,0,15,248,0,12,0,0, - 12,0,0,28,0,0,24,0,0,24,0,0,8,0,0,20, - 31,93,23,2,0,0,16,0,1,255,0,7,255,192,15,135, - 224,15,1,224,30,0,240,30,0,240,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,248,0,255,248,0,255, - 248,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,255,224,255,255,224,255, - 255,224,21,22,66,25,2,7,192,0,24,224,0,56,96,48, - 48,51,254,96,63,255,224,31,7,192,28,1,192,24,0,192, - 56,0,224,48,0,96,48,0,96,48,0,96,48,0,96,56, - 0,224,24,0,192,28,1,192,14,3,128,31,255,192,59,254, - 224,112,248,112,224,0,56,192,0,24,21,30,90,23,1,0, - 240,0,120,248,0,120,120,0,240,124,0,240,60,1,240,62, - 1,224,30,1,224,30,3,192,15,3,192,15,7,128,255,135, - 248,255,143,248,255,207,248,3,207,0,1,254,0,1,252,0, - 255,255,248,255,255,248,255,255,248,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,2,38,38,14,6,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,15,37,74,19,2,250,15,248,31,248, - 62,24,60,0,120,0,120,0,120,0,120,0,60,0,63,0, - 31,128,15,224,15,240,63,248,124,124,120,62,240,30,240,30, - 240,30,240,60,248,120,127,240,63,224,31,224,7,240,1,248, - 0,124,0,60,0,30,0,30,0,30,0,28,0,60,96,248, - 127,240,127,224,3,0,12,4,8,12,0,26,240,240,240,240, - 240,240,240,240,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,240,63,0,7,128,7,128,15,0,3,192,28,3, - 0,224,56,63,240,112,56,127,248,112,112,248,124,56,97,240, - 30,24,97,224,30,24,225,224,30,28,195,192,0,12,195,192, - 0,12,195,192,0,12,195,192,0,12,195,192,0,12,195,192, - 0,12,193,192,30,12,97,224,30,24,97,224,30,24,96,240, - 60,56,48,255,252,48,56,63,248,112,28,15,224,224,14,0, - 1,192,7,0,3,128,3,192,15,0,1,255,252,0,0,63, - 240,0,14,19,38,16,1,11,15,192,63,240,56,120,112,56, - 0,56,0,56,15,248,63,248,120,56,224,56,224,56,224,120, - 240,248,127,184,31,56,0,0,0,0,255,252,255,252,16,16, - 32,22,3,2,7,7,15,14,14,14,28,28,60,60,56,120, - 120,112,240,240,240,240,120,112,56,120,60,60,28,28,14,14, - 15,14,7,7,21,10,30,25,2,8,255,255,248,255,255,248, - 255,255,248,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,255,30,30,120,34,2,1,0, - 63,240,0,0,255,252,0,3,240,63,0,7,128,7,128,14, - 0,1,192,28,127,240,224,56,127,248,112,48,127,252,48,112, - 112,30,56,96,112,14,24,96,112,14,24,192,112,14,12,192, - 112,28,12,192,127,248,12,192,127,240,12,192,127,248,12,192, - 112,28,12,192,112,28,12,192,112,28,12,96,112,12,24,96, - 112,12,24,112,112,14,56,48,112,14,48,56,112,14,112,28, - 0,0,224,14,0,1,192,7,128,7,128,3,240,63,0,1, - 255,252,0,0,63,240,0,12,3,6,12,0,26,255,240,255, - 240,255,240,9,9,18,13,2,21,62,0,127,0,227,128,193, - 128,193,128,193,128,227,128,127,0,62,0,24,24,72,40,8, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,255,255,255,255,255,255,255,255,255,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,255,255,255,255,12,16,32,14,1,15,31, - 192,127,224,120,240,112,112,224,112,0,112,0,224,1,224,3, - 192,7,128,14,0,60,0,120,0,255,240,255,240,255,240,12, - 16,32,14,1,15,63,192,127,224,112,240,96,112,0,112,0, - 240,7,224,7,128,7,224,0,240,0,112,224,112,224,112,127, - 224,127,192,31,128,8,7,7,9,2,25,15,30,28,56,56, - 112,224,255,18,36,108,22,2,250,3,255,192,15,255,192,63, - 195,0,127,195,0,127,195,0,255,195,0,255,195,0,255,195, - 0,255,195,0,255,195,0,255,195,0,127,195,0,127,195,0, - 63,195,0,15,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,0,195,0,0,195,0,0,195,0,0,195, - 0,0,195,0,0,195,0,0,195,0,0,195,0,0,195,0, - 0,195,0,0,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,4,5,5,10,3,11,240,240,240,240,240, - 10,10,20,10,2,246,48,0,48,0,62,0,63,128,7,128, - 1,192,1,192,3,192,255,128,254,0,7,16,16,12,2,14, - 30,62,254,238,142,14,14,14,14,14,14,14,14,14,14,14, - 14,19,38,16,1,10,15,192,63,224,120,112,112,56,224,56, - 224,28,224,28,224,28,224,28,224,28,224,56,112,56,56,112, - 31,224,7,128,0,0,0,0,255,252,255,252,16,16,32,22, - 3,2,224,224,112,112,120,120,56,56,28,60,30,30,15,14, - 15,15,15,15,15,14,30,30,28,60,56,56,120,120,112,112, - 224,224,28,30,120,32,2,0,30,0,12,0,62,0,28,0, - 254,0,56,0,238,0,56,0,142,0,112,0,14,0,112,0, - 14,0,224,0,14,0,192,0,14,1,192,0,14,3,128,0, - 14,3,128,0,14,7,0,0,14,7,0,0,14,14,0,0, - 14,12,7,128,14,28,7,128,0,56,15,128,0,56,31,128, - 0,112,27,128,0,112,59,128,0,224,115,128,0,224,99,128, - 1,192,195,128,1,129,195,128,3,129,255,240,7,1,255,240, - 7,0,3,128,14,0,3,128,14,0,3,128,28,0,3,128, - 28,30,120,32,2,0,30,0,28,0,62,0,28,0,254,0, - 56,0,238,0,56,0,142,0,112,0,14,0,112,0,14,0, - 224,0,14,0,224,0,14,1,192,0,14,3,128,0,14,3, - 128,0,14,7,0,0,14,7,0,0,14,14,0,0,14,14, - 31,128,14,28,63,224,0,56,121,224,0,56,112,112,0,112, - 240,112,0,112,0,112,0,224,0,240,0,224,0,224,1,192, - 3,192,1,128,7,128,3,128,15,0,7,0,60,0,7,0, - 120,0,14,0,255,240,14,0,255,240,28,0,255,240,30,31, - 124,32,1,0,0,0,1,192,63,192,3,128,127,224,3,128, - 112,240,7,0,96,112,6,0,0,112,14,0,0,240,28,0, - 7,224,28,0,7,128,56,0,7,224,56,0,0,240,112,0, - 0,112,112,0,224,112,224,0,224,113,192,0,127,225,192,0, - 127,195,129,224,31,131,129,224,0,7,3,224,0,7,7,224, - 0,14,6,224,0,12,12,224,0,28,28,224,0,56,24,224, - 0,56,48,224,0,112,112,224,0,112,127,252,0,224,127,252, - 0,224,0,224,1,192,0,224,1,128,0,224,3,128,0,224, - 17,28,84,21,2,248,0,240,0,0,240,0,0,240,0,0, - 240,0,0,0,0,0,0,0,0,0,0,0,240,0,0,240, - 0,0,240,0,0,240,0,1,240,0,1,224,0,7,192,0, - 15,128,0,31,0,0,60,0,0,120,0,0,240,0,0,240, - 0,0,240,0,0,240,3,0,240,3,128,124,15,128,127,255, - 0,63,254,0,31,252,0,3,240,0,28,41,164,30,1,0, - 0,240,0,0,0,240,0,0,0,120,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,7,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0, - 0,31,128,0,0,31,128,0,0,63,192,0,0,63,192,0, - 0,127,192,0,0,121,224,0,0,121,224,0,0,241,240,0, - 0,240,240,0,1,240,240,0,1,224,248,0,1,224,120,0, - 3,224,124,0,3,192,60,0,7,192,60,0,7,128,62,0, - 7,128,30,0,15,128,31,0,15,255,255,0,31,255,255,128, - 31,255,255,128,30,0,7,128,60,0,3,192,60,0,3,192, - 124,0,3,224,120,0,1,224,120,0,1,224,240,0,0,240, - 240,0,0,240,28,41,164,30,1,0,0,0,240,0,0,0, - 240,0,0,1,224,0,0,1,192,0,0,3,128,0,0,7, - 0,0,0,7,0,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,15,0,0,0,31,128,0,0,31, - 128,0,0,63,192,0,0,63,192,0,0,127,192,0,0,121, - 224,0,0,121,224,0,0,241,240,0,0,240,240,0,1,240, - 240,0,1,224,248,0,1,224,120,0,3,224,124,0,3,192, - 60,0,7,192,60,0,7,128,62,0,7,128,30,0,15,128, - 31,0,15,255,255,0,31,255,255,128,31,255,255,128,30,0, - 7,128,60,0,3,192,60,0,3,192,124,0,3,224,120,0, - 1,224,120,0,1,224,240,0,0,240,240,0,0,240,28,41, - 164,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,57,192,0,0,112,224,0,0,96,96,0, - 0,224,112,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,15,0,0,0,31,128,0,0,31,128,0,0,63,192,0, - 0,63,192,0,0,127,192,0,0,121,224,0,0,121,224,0, - 0,241,240,0,0,240,240,0,1,240,240,0,1,224,248,0, - 1,224,120,0,3,224,124,0,3,192,60,0,7,192,60,0, - 7,128,62,0,7,128,30,0,15,128,31,0,15,255,255,0, - 31,255,255,128,31,255,255,128,30,0,7,128,60,0,3,192, - 60,0,3,192,124,0,3,224,120,0,1,224,120,0,1,224, - 240,0,0,240,240,0,0,240,28,39,156,30,1,0,0,16, - 48,0,0,126,112,0,0,127,224,0,0,231,224,0,0,192, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,15,0,0,0,31,128,0,0,31,128,0,0,63, - 192,0,0,63,192,0,0,127,192,0,0,121,224,0,0,121, - 224,0,0,241,240,0,0,240,240,0,1,240,240,0,1,224, - 248,0,1,224,120,0,3,224,124,0,3,192,60,0,7,192, - 60,0,7,128,62,0,7,128,30,0,15,128,31,0,15,255, - 255,0,31,255,255,128,31,255,255,128,30,0,7,128,60,0, - 3,192,60,0,3,192,124,0,3,224,120,0,1,224,120,0, - 1,224,240,0,0,240,240,0,0,240,29,39,156,30,1,0, - 0,120,120,0,0,120,120,0,0,120,120,0,0,120,120,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,128,0,0,15,128,0,0,31,128,0, - 0,31,192,0,0,63,192,0,0,61,224,0,0,125,224,0, - 0,121,240,0,0,120,240,0,0,240,240,0,0,240,248,0, - 1,240,120,0,1,224,124,0,1,224,60,0,3,224,60,0, - 3,192,62,0,7,192,30,0,7,128,31,0,7,128,15,0, - 15,255,255,128,15,255,255,128,31,255,255,128,30,0,3,192, - 30,0,3,192,60,0,3,224,60,0,1,224,120,0,1,224, - 120,0,0,240,120,0,0,240,240,0,0,248,28,43,172,30, - 1,0,0,14,0,0,0,63,0,0,0,49,128,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,96,192,0,0,49, - 128,0,0,63,128,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,31,0,0,0,31,0,0,0,31, - 128,0,0,63,128,0,0,63,192,0,0,123,192,0,0,123, - 192,0,0,121,224,0,0,241,224,0,0,241,240,0,1,224, - 240,0,1,224,248,0,1,224,120,0,3,192,120,0,3,192, - 124,0,7,192,60,0,7,128,62,0,15,128,30,0,15,0, - 30,0,15,255,255,0,31,255,255,0,31,255,255,128,60,0, - 7,128,60,0,7,192,60,0,3,192,120,0,3,192,120,0, - 1,224,240,0,1,224,240,0,1,240,240,0,0,240,37,30, - 150,39,0,0,0,1,255,255,240,0,1,255,255,240,0,3, - 255,255,240,0,3,255,255,240,0,7,252,0,0,0,7,188, - 0,0,0,15,188,0,0,0,15,60,0,0,0,31,60,0, - 0,0,30,60,0,0,0,62,60,0,0,0,60,60,0,0, - 0,124,60,0,0,0,120,63,255,240,0,248,63,255,240,0, - 240,63,255,240,1,240,63,255,240,1,224,60,0,0,3,224, - 60,0,0,3,255,252,0,0,7,255,252,0,0,7,255,252, - 0,0,15,0,60,0,0,31,0,60,0,0,30,0,60,0, - 0,62,0,60,0,0,60,0,63,255,248,124,0,63,255,248, - 120,0,63,255,248,248,0,63,255,248,22,40,120,26,2,247, - 1,255,128,7,255,224,15,255,240,31,0,248,62,0,120,60, - 0,60,120,0,60,120,0,60,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,112, - 0,0,120,0,60,120,0,60,60,0,60,60,0,120,31,0, - 248,15,255,240,7,255,224,3,255,128,0,48,0,0,48,0, - 0,62,0,0,63,128,0,63,192,0,1,192,0,1,192,0, - 1,192,0,255,128,0,254,0,19,41,123,24,3,0,30,0, - 0,15,0,0,7,0,0,3,128,0,3,128,0,1,192,0, - 0,224,0,0,96,0,0,0,0,0,0,0,0,0,0,255, - 255,192,255,255,192,255,255,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,255,255,192,255,255,192,255,255,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,255,255,224, - 255,255,224,255,255,224,255,255,224,19,41,123,24,3,0,0, - 30,0,0,60,0,0,56,0,0,120,0,0,240,0,0,224, - 0,1,192,0,1,128,0,0,0,0,0,0,0,0,0,0, - 255,255,192,255,255,192,255,255,192,255,255,192,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 255,255,192,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,19,41,123,24,3,0, - 1,224,0,3,240,0,7,240,0,7,120,0,15,56,0,14, - 28,0,28,28,0,24,14,0,0,0,0,0,0,0,0,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,255,255,192,255,255,192,255,255, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,19,39,117,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,192,255, - 255,192,255,255,192,255,255,192,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,255,255,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,255,255,224,255,255,224, - 255,255,224,255,255,224,8,41,41,10,255,0,240,120,56,28, - 30,14,7,3,0,0,0,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,7,41,41,10,3,0,30,30,60,56,112, - 112,224,192,0,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,12,41,82,10,255,0,15,0,31,0,31,128, - 63,128,57,192,112,224,96,224,224,112,0,0,0,0,0,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,12,39,78,11, - 0,0,240,240,240,240,240,240,240,240,0,0,0,0,0,0, - 0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 26,30,120,28,0,0,31,255,0,0,31,255,224,0,31,255, - 248,0,31,255,252,0,30,0,254,0,30,0,63,0,30,0, - 31,0,30,0,15,128,30,0,7,128,30,0,7,128,30,0, - 3,192,30,0,3,192,30,0,3,192,30,0,3,192,255,252, - 3,192,255,252,3,192,255,252,3,192,30,0,3,192,30,0, - 3,192,30,0,3,192,30,0,7,128,30,0,7,128,30,0, - 15,128,30,0,31,0,30,0,63,0,30,0,254,0,31,255, - 252,0,31,255,248,0,31,255,224,0,31,255,0,0,22,39, - 117,28,3,0,0,131,0,3,243,0,7,255,0,7,62,0, - 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,60,252,0,60,254,0,60,254,0,60,255,0,60,255,0, - 60,255,128,60,247,128,60,247,192,60,243,192,60,243,224,60, - 241,224,60,241,240,60,240,240,60,240,248,60,240,120,60,240, - 124,60,240,60,60,240,62,60,240,30,60,240,31,60,240,15, - 60,240,15,188,240,7,188,240,3,252,240,3,252,240,1,252, - 240,1,252,240,0,252,240,0,252,26,41,164,30,2,0,1, - 224,0,0,0,240,0,0,0,120,0,0,0,56,0,0,0, - 28,0,0,0,28,0,0,0,14,0,0,0,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,1,255,224,0,3, - 255,240,0,15,255,252,0,31,255,254,0,31,0,62,0,62, - 0,31,0,60,0,15,0,120,0,7,128,120,0,7,128,112, - 0,3,128,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,112,0,3,128,120,0,7,128,120, - 0,7,128,120,0,15,128,60,0,15,0,62,0,31,0,31, - 128,126,0,15,255,252,0,7,255,248,0,3,255,240,0,0, - 255,192,0,26,41,164,30,2,0,0,1,224,0,0,3,192, - 0,0,7,128,0,0,7,0,0,0,15,0,0,0,14,0, - 0,0,28,0,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,255,224,0,3,255,240,0,15,255,252, - 0,31,255,254,0,31,0,62,0,62,0,31,0,60,0,15, - 0,120,0,7,128,120,0,7,128,112,0,3,128,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,112,0,3,128,120,0,7,128,120,0,7,128,120,0,15, - 128,60,0,15,0,62,0,31,0,31,128,126,0,15,255,252, - 0,7,255,248,0,3,255,240,0,0,255,192,0,26,41,164, - 30,2,0,0,30,0,0,0,63,0,0,0,63,0,0,0, - 127,128,0,0,115,128,0,0,225,192,0,0,192,224,0,1, - 192,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 255,224,0,3,255,240,0,15,255,252,0,31,255,254,0,31, - 0,62,0,62,0,31,0,60,0,15,0,120,0,7,128,120, - 0,7,128,112,0,3,128,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,112,0,3,128,120, - 0,7,128,120,0,7,128,120,0,15,128,60,0,15,0,62, - 0,31,0,31,128,126,0,15,255,252,0,7,255,248,0,3, - 255,240,0,0,255,192,0,26,39,156,30,2,0,0,32,96, - 0,0,252,224,0,0,255,224,0,1,207,192,0,1,129,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,255,224,0,3,255,240,0,15,255,252,0,31,255,254, - 0,31,0,62,0,62,0,31,0,60,0,15,0,120,0,7, - 128,120,0,7,128,112,0,3,128,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,112,0,3, - 128,120,0,7,128,120,0,7,128,120,0,15,128,60,0,15, - 0,62,0,31,0,31,128,126,0,15,255,252,0,7,255,248, - 0,3,255,240,0,0,255,192,0,26,39,156,30,2,0,0, - 240,240,0,0,240,240,0,0,240,240,0,0,240,240,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,255,224,0,3,255,240,0,15,255,252,0,31, - 255,254,0,31,0,62,0,62,0,31,0,60,0,15,0,120, - 0,7,128,120,0,7,128,112,0,3,128,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,112, - 0,3,128,120,0,7,128,120,0,7,128,120,0,15,128,60, - 0,15,0,62,0,31,0,31,128,126,0,15,255,252,0,7, - 255,248,0,3,255,240,0,0,255,192,0,22,22,66,40,9, - 1,96,0,24,240,0,60,120,0,120,56,0,112,28,0,224, - 14,1,192,7,3,128,3,135,0,1,206,0,0,252,0,0, - 120,0,0,120,0,0,252,0,1,206,0,3,135,0,7,3, - 128,14,1,192,28,0,224,56,0,112,112,0,56,96,0,24, - 64,0,8,26,38,152,30,2,252,0,0,1,0,0,0,3, - 128,0,0,3,192,0,0,7,128,0,255,199,128,3,255,255, - 0,15,255,255,0,31,255,254,0,31,0,62,0,62,0,127, - 0,124,0,127,0,120,0,255,128,120,1,247,128,240,1,227, - 128,240,3,195,192,240,7,195,192,240,7,131,192,240,15,3, - 192,240,31,3,192,240,30,3,192,240,60,3,192,240,124,3, - 192,240,248,3,192,112,240,3,192,121,240,7,128,123,224,7, - 128,127,192,15,128,63,192,15,0,63,128,31,0,31,128,126, - 0,31,255,252,0,31,255,248,0,63,255,240,0,124,255,192, - 0,120,0,0,0,240,0,0,0,112,0,0,0,32,0,0, - 0,23,41,123,29,3,0,3,192,0,1,192,0,1,224,0, - 0,240,0,0,112,0,0,56,0,0,24,0,0,28,0,0, - 0,0,0,0,0,0,0,0,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,120,0,60,120,0,60, - 124,0,124,62,0,248,63,255,248,31,255,240,15,255,224,3, - 255,128,23,41,123,29,3,0,0,7,128,0,7,0,0,15, - 0,0,30,0,0,28,0,0,56,0,0,48,0,0,112,0, - 0,0,0,0,0,0,0,0,0,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,120,0,60,120,0, - 60,124,0,124,62,0,248,63,255,248,31,255,240,15,255,224, - 3,255,128,23,41,123,29,3,0,0,124,0,0,124,0,0, - 254,0,0,238,0,1,199,0,1,199,0,3,131,128,7,1, - 128,0,0,0,0,0,0,0,0,0,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,120,0,60,120, - 0,60,124,0,124,62,0,248,63,255,248,31,255,240,15,255, - 224,3,255,128,23,38,114,29,3,0,3,195,192,3,195,192, - 3,195,192,3,195,192,0,0,0,0,0,0,0,0,0,0, - 0,0,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,120,0,60,120,0,60,124,0,124,62,0,248, - 63,255,248,31,255,240,15,255,224,3,255,128,24,41,123,26, - 1,0,0,3,192,0,7,128,0,7,0,0,15,0,0,14, - 0,0,28,0,0,24,0,0,48,0,0,0,0,0,0,0, - 0,0,0,248,0,15,248,0,31,124,0,30,124,0,60,62, - 0,124,30,0,120,31,0,248,15,0,240,15,129,224,7,129, - 224,3,195,192,3,227,192,1,231,128,1,247,0,0,255,0, - 0,254,0,0,126,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,19,30,90, - 24,3,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,255,248,0,255,255,0,255,255,128,255,255, - 192,240,15,192,240,3,224,240,1,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,3,224,240,15,192,255,255,192,255, - 255,128,255,255,0,255,248,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,20,30,90, - 22,2,0,3,248,0,15,254,0,63,255,0,124,15,0,248, - 7,128,240,7,128,240,7,128,240,7,128,240,15,0,240,31, - 0,240,62,0,240,124,0,240,248,0,240,240,0,240,240,0, - 240,248,0,240,126,0,240,63,0,240,31,192,240,15,224,240, - 3,224,240,1,240,240,0,240,240,0,240,243,192,240,243,192, - 240,241,224,240,241,241,224,240,255,224,240,63,128,18,31,93, - 23,2,0,7,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,0,0, - 0,0,0,0,15,254,0,63,255,0,62,15,128,120,7,128, - 120,3,192,0,3,192,0,3,192,3,255,192,15,255,192,63, - 255,192,126,3,192,120,3,192,240,3,192,240,3,192,240,7, - 192,240,7,192,248,15,192,124,63,192,63,251,192,31,227,192, - 18,32,96,23,2,0,0,60,0,0,60,0,0,120,0,0, - 240,0,0,224,0,1,192,0,1,128,0,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,63,255,0, - 62,15,128,120,7,128,120,3,192,0,3,192,0,3,192,3, - 255,192,15,255,192,63,255,192,126,3,192,120,3,192,240,3, - 192,240,3,192,240,7,192,240,7,192,248,15,192,124,63,192, - 63,251,192,31,227,192,18,32,96,23,2,0,1,224,0,3, - 240,0,3,240,0,7,184,0,7,60,0,14,28,0,12,14, - 0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,30,90,23, - 2,0,7,134,0,15,206,0,15,254,0,28,124,0,24,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,243,192,18,30,90,23, - 2,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,34,102,23, - 2,0,1,224,0,3,240,0,6,24,0,12,12,0,12,12, - 0,12,12,0,12,12,0,6,24,0,3,240,0,1,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,15,254,0,63, - 255,0,62,15,128,120,7,128,120,3,192,0,3,192,0,3, - 192,3,255,192,15,255,192,63,255,192,126,3,192,120,3,192, - 240,3,192,240,3,192,240,7,192,240,7,192,248,15,192,124, - 63,192,63,251,192,31,227,192,32,20,80,36,2,1,15,248, - 31,240,63,254,63,248,124,30,120,60,120,7,112,30,120,7, - 224,14,0,3,224,15,0,3,192,15,0,127,255,255,31,255, - 255,255,63,255,255,255,126,3,192,0,120,3,192,0,240,3, - 192,0,240,3,192,15,240,7,224,14,240,7,224,30,248,14, - 112,30,126,62,124,124,63,252,63,248,31,240,15,240,17,30, - 90,21,2,247,15,252,0,31,254,0,62,31,0,120,15,128, - 120,7,128,240,7,128,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,7,128,112,7, - 128,120,7,128,120,15,0,62,31,0,31,254,0,15,252,0, - 1,128,0,1,128,0,1,240,0,1,252,0,1,254,0,0, - 14,0,0,14,0,0,14,0,7,252,0,7,240,0,18,32, - 96,22,2,0,30,0,0,15,0,0,7,0,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,96,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,252,0,31,254,0,62,31, - 0,60,7,128,120,3,128,112,3,192,240,3,192,240,3,192, - 255,255,192,255,255,192,255,255,192,240,0,0,240,0,0,240, - 0,0,112,3,192,120,7,128,56,7,128,62,31,0,31,254, - 0,7,252,0,18,32,96,22,2,0,0,30,0,0,60,0, - 0,120,0,0,112,0,0,224,0,0,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,31,254,0,62,31,0,60,7,128,120,3,128,112,3,192, - 240,3,192,240,3,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,112,3,192,120,7,128,56,7, - 128,62,31,0,31,254,0,7,252,0,18,32,96,22,2,0, - 1,224,0,3,240,0,3,240,0,7,248,0,7,56,0,14, - 28,0,12,12,0,28,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,31,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,7,128,56,7,128,62,31,0,31,254,0,7,252,0, - 18,30,90,22,2,0,30,30,0,30,30,0,30,30,0,30, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,15,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,3,128,60,7,128,62,15,0,31,254,0,7,252,0, - 8,32,32,10,255,0,240,120,56,28,30,14,7,3,0,0, - 0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,9,32,64,10,2,0,15,128,15,0, - 30,0,28,0,56,0,56,0,112,0,224,0,0,0,0,0, - 0,0,0,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,12,32,64,10, - 255,0,15,0,31,128,31,128,59,192,57,192,112,224,224,96, - 192,112,0,0,0,0,0,0,0,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,12,30,60,10,255,0,240,240,240,240,240,240,240,240, - 0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,20,30,90,24,2,0,16,1,0,60,7,0, - 30,31,0,7,252,0,3,240,0,7,240,0,62,120,0,120, - 60,0,96,30,0,0,15,0,7,255,128,31,255,192,63,15, - 192,60,3,192,120,1,224,120,1,224,240,1,224,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 1,224,120,1,224,120,3,224,60,3,192,63,15,128,31,255, - 0,7,254,0,18,30,90,24,3,0,7,14,0,15,204,0, - 31,252,0,28,248,0,24,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,243,254,0,247,255,0,254,31, - 128,248,7,128,248,7,128,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,20,32,96,24,2,0,15,0,0,7,128,0, - 3,128,0,1,192,0,1,192,0,0,224,0,0,112,0,0, - 48,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,15,255,0,63,15,128,60,3,192,120,3,224,120,1,224, - 240,1,224,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,1,224,120,1,224,120,3,224,60,3, - 192,63,15,128,15,255,0,7,254,0,20,32,96,24,2,0, - 0,30,0,0,30,0,0,60,0,0,56,0,0,112,0,0, - 96,0,0,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,15,255,0,63,15,128,60,3,192, - 120,3,224,120,1,224,240,1,224,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,1,224,120,1, - 224,120,3,224,60,3,192,63,15,128,15,255,0,7,254,0, - 20,32,96,24,2,0,0,240,0,1,248,0,1,248,0,3, - 188,0,3,156,0,7,14,0,6,6,0,12,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,3,135,0,7, - 230,0,15,254,0,14,124,0,12,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,15,15,0,15, - 15,0,15,15,0,15,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,24,19,57,40,8,2,0,16,0,0, - 56,0,0,124,0,0,124,0,0,124,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,56,0,21,26,78,24,1,254,0,0,56,0,0, - 120,0,0,112,3,255,224,7,255,192,31,135,192,30,3,224, - 60,7,240,60,15,240,120,14,240,120,28,120,120,56,120,120, - 120,120,120,112,120,120,224,120,121,192,120,123,192,240,63,128, - 240,63,1,240,30,1,224,15,135,192,31,255,128,59,255,0, - 112,0,0,240,0,0,96,0,0,18,32,96,24,3,0,30, - 0,0,15,0,0,7,0,0,3,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,0,0,0,0,0,0,0,0, - 0,0,0,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,7,192,120,7,192,124,31,192,63,251,192,31,243,192,18, - 32,96,24,3,0,0,62,0,0,60,0,0,120,0,0,112, - 0,0,224,0,0,224,0,1,192,0,3,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,7,192,120,7,192,124,31,192,63, - 251,192,31,243,192,18,32,96,24,3,0,1,224,0,3,240, - 0,3,240,0,7,120,0,7,56,0,14,28,0,28,12,0, - 24,14,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 7,192,124,31,192,63,251,192,31,243,192,18,30,90,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,40,120,21,1, - 248,0,15,0,0,30,0,0,28,0,0,56,0,0,112,0, - 0,112,0,0,224,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,240,1,224,120,1,224,120,1, - 192,60,3,192,60,3,192,62,7,128,30,7,128,30,7,0, - 15,15,0,15,15,0,15,158,0,7,158,0,7,156,0,3, - 252,0,3,252,0,1,248,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,224,0,1,224,0,33,224,0,243,192,0, - 127,192,0,127,128,0,31,0,0,19,38,114,24,3,248,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,243,254,0, - 247,255,0,254,15,128,252,7,192,248,3,192,248,3,192,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,248,3,192,248,3,192,252,7,192, - 254,15,128,247,255,0,243,254,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,20,38,114,22,1,248,15,15,0,15,15,0,15,15,0, - 15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,248,0,224,120,1,224,120,1, - 224,60,3,192,60,3,192,62,3,128,30,7,128,30,7,128, - 15,15,0,15,15,0,7,143,0,7,158,0,7,222,0,3, - 252,0,3,252,0,1,252,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=33 x= 8 y=15 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30n[1175] U8G_SECTION(".progmem.u8g_font_fur30n") = { - 0,54,54,253,245,30,0,0,0,0,42,57,0,31,251,30, - 0,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=25 dx=40 dy= 0 ascent=33 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30r[7380] U8G_SECTION(".progmem.u8g_font_fur30r") = { - 0,54,54,253,245,30,9,94,20,223,32,127,249,33,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--48-480-72-72-P-226-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=16 dx=49 dy= 0 ascent=36 len=116 - Font Bounding box w=65 h=64 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur35n[1417] U8G_SECTION(".progmem.u8g_font_fur35n") = { - 0,65,64,252,243,35,0,0,0,0,42,57,0,36,250,35, - 0,19,19,57,31,6,16,6,12,0,30,15,0,15,30,0, - 15,30,0,7,28,0,3,184,0,1,176,0,193,240,96,255, - 255,224,255,255,224,248,227,224,1,240,0,3,184,0,7,188, - 0,7,28,0,15,30,0,30,15,0,14,14,0,2,8,0, - 29,29,116,49,10,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,255,255,255,248,255,255, - 255,248,255,255,255,248,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,9,12,24,13,2,250, - 31,128,31,0,31,0,62,0,62,0,62,0,60,0,124,0, - 120,0,120,0,112,0,240,0,12,4,8,16,2,10,255,240, - 255,240,255,240,255,240,5,6,6,13,5,0,248,248,248,248, - 248,248,15,39,78,19,2,253,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,112,0,112,0,240, - 0,224,0,224,1,224,1,192,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,15,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,56,0,120,0, - 112,0,112,0,240,0,22,35,105,27,2,1,3,255,0,7, - 255,128,31,255,224,31,255,224,62,3,240,62,1,240,124,0, - 248,120,0,248,120,0,120,248,0,120,248,0,124,248,0,124, - 248,0,124,248,0,124,248,0,124,248,0,124,248,0,124,248, - 0,124,248,0,124,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,120,0,124,120,0,120,120,0,120,124,0,248, - 60,0,248,62,1,240,63,3,240,31,255,224,15,255,192,7, - 255,128,1,255,0,12,35,70,27,7,0,3,240,7,240,15, - 240,31,240,127,240,255,240,253,240,241,240,193,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,21,35,105,27,3,1,3,255,0,15,255,128,31,255,192, - 63,255,224,63,1,240,126,0,240,124,0,248,124,0,248,124, - 0,248,124,0,248,0,0,248,0,0,248,0,0,240,0,1, - 240,0,3,224,0,7,224,0,7,192,0,15,128,0,31,128, - 0,63,0,0,126,0,0,252,0,1,248,0,3,240,0,7, - 224,0,15,192,0,31,192,0,31,128,0,63,0,0,126,0, - 0,252,0,0,255,255,248,255,255,248,255,255,248,255,255,248, - 22,35,105,27,2,1,3,255,0,15,255,192,31,255,224,31, - 255,240,63,1,248,62,0,248,124,0,120,124,0,120,124,0, - 124,0,0,120,0,0,120,0,0,248,0,1,240,0,15,224, - 0,255,192,0,255,0,0,255,128,0,255,192,0,15,224,0, - 1,240,0,0,248,0,0,248,0,0,124,0,0,124,0,0, - 124,248,0,124,248,0,124,252,0,124,252,0,120,124,0,248, - 127,3,248,63,255,240,31,255,224,15,255,192,3,255,0,24, - 35,105,27,1,0,0,3,240,0,7,240,0,7,240,0,15, - 240,0,31,240,0,63,240,0,61,240,0,121,240,0,249,240, - 0,241,240,1,225,240,3,225,240,3,193,240,7,129,240,15, - 129,240,15,1,240,30,1,240,62,1,240,60,1,240,120,1, - 240,248,1,240,240,1,240,255,255,255,255,255,255,255,255,255, - 255,255,255,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,21,35, - 105,27,3,0,127,255,224,127,255,224,127,255,224,127,255,224, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,254,0,125,255,128,127,255, - 192,127,131,224,126,1,240,124,0,240,120,0,248,120,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,248,0,120,248,0,248,248,0,240,248,1,240,126,3, - 224,63,255,224,63,255,192,15,255,128,7,254,0,23,35,105, - 27,2,1,1,255,128,7,255,192,15,255,224,31,193,240,31, - 0,248,62,0,248,62,0,120,124,0,120,124,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,127,0,120,255,192, - 249,255,240,251,255,240,255,131,248,254,0,248,252,0,124,252, - 0,124,248,0,60,248,0,60,248,0,60,248,0,62,248,0, - 60,248,0,60,120,0,60,124,0,124,124,0,120,63,1,248, - 31,255,240,15,255,224,7,255,192,1,255,0,21,35,105,27, - 3,0,255,255,248,255,255,248,255,255,248,255,255,248,0,0, - 120,0,0,248,0,0,240,0,1,240,0,1,240,0,1,224, - 0,3,224,0,3,224,0,7,192,0,7,192,0,7,128,0, - 15,128,0,15,128,0,15,0,0,31,0,0,31,0,0,62, - 0,0,62,0,0,62,0,0,124,0,0,124,0,0,248,0, - 0,248,0,0,248,0,1,240,0,1,240,0,3,240,0,3, - 224,0,3,224,0,7,192,0,7,192,0,22,35,105,27,2, - 1,3,255,128,15,255,224,31,255,240,63,255,248,63,1,248, - 126,0,252,124,0,124,124,0,124,124,0,124,124,0,124,124, - 0,124,60,0,120,62,0,248,31,131,240,15,255,224,3,255, - 128,7,255,128,15,255,224,31,3,240,62,0,248,124,0,120, - 120,0,124,248,0,60,248,0,60,248,0,60,248,0,60,248, - 0,60,248,0,60,248,0,124,124,0,124,126,1,248,63,255, - 248,31,255,240,15,255,224,3,255,128,22,35,105,27,2,1, - 3,255,128,15,255,192,31,255,224,63,255,240,126,1,248,124, - 0,248,120,0,248,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,248,0,124,248,0,124,248,0,252,120,0,252, - 124,1,252,127,3,252,63,255,252,31,255,124,15,254,124,3, - 248,124,0,0,124,0,0,124,0,0,120,0,0,120,0,0, - 248,120,0,248,120,1,240,124,1,240,62,3,224,63,255,224, - 31,255,192,15,255,128,7,254,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--58-580-72-72-P-271-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=175 - Font Bounding box w=78 h=76 x=-4 y=-15 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur42n[2135] U8G_SECTION(".progmem.u8g_font_fur42n") = { - 0,78,76,252,241,42,0,0,0,0,42,57,0,43,249,42, - 0,23,22,66,37,7,20,3,1,128,7,131,192,15,131,224, - 7,131,192,7,199,192,3,199,128,1,239,0,0,238,0,0, - 254,0,254,124,254,255,255,254,255,255,254,254,124,254,0,124, - 0,0,238,0,1,239,0,3,199,128,3,199,128,7,195,192, - 15,131,224,15,131,224,3,1,128,35,35,175,59,12,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,255,255,255,255,224,255, - 255,255,255,224,255,255,255,255,224,255,255,255,255,224,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,10,15, - 30,16,3,249,31,192,31,192,31,128,63,128,63,0,63,0, - 62,0,62,0,126,0,124,0,124,0,120,0,248,0,248,0, - 240,0,14,5,10,18,2,12,255,252,255,252,255,252,255,252, - 255,252,6,7,7,16,6,0,252,252,252,252,252,252,252,17, - 46,138,23,3,253,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,240, - 0,1,224,0,1,224,0,1,224,0,3,192,0,3,192,0, - 3,192,0,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,62,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,26, - 42,168,32,3,1,0,255,224,0,3,255,240,0,7,255,252, - 0,15,255,254,0,31,255,254,0,63,128,127,0,63,0,63, - 0,62,0,31,128,126,0,31,128,124,0,15,128,124,0,15, - 192,124,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,252,0,7,192,252,0,7,192,252,0,7, - 192,252,0,7,192,252,0,15,192,124,0,15,192,124,0,15, - 192,126,0,15,192,126,0,15,128,62,0,31,128,63,0,31, - 128,63,0,63,0,31,192,127,0,31,255,254,0,15,255,252, - 0,7,255,252,0,3,255,240,0,0,255,192,0,14,42,84, - 32,8,0,0,252,1,252,3,252,7,252,15,252,63,252,127, - 252,255,124,254,124,248,124,224,124,128,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,25,42,168,32,4,1,1,255,192, - 0,7,255,240,0,15,255,248,0,31,255,252,0,31,255,254, - 0,63,128,127,0,63,0,63,0,127,0,31,128,126,0,31, - 128,126,0,31,128,126,0,15,128,126,0,15,128,0,0,31, - 128,0,0,31,128,0,0,31,0,0,0,63,0,0,0,63, - 0,0,0,126,0,0,0,252,0,0,1,252,0,0,3,248, - 0,0,7,240,0,0,7,224,0,0,15,224,0,0,31,192, - 0,0,63,128,0,0,127,0,0,0,254,0,0,1,252,0, - 0,3,248,0,0,7,240,0,0,15,224,0,0,31,224,0, - 0,63,192,0,0,63,128,0,0,127,0,0,0,254,0,0, - 0,255,255,255,128,255,255,255,128,255,255,255,128,255,255,255, - 128,255,255,255,128,26,42,168,32,3,1,1,255,192,0,7, - 255,240,0,15,255,252,0,31,255,254,0,63,255,255,0,63, - 128,127,0,127,0,31,128,126,0,31,128,126,0,15,128,126, - 0,15,128,252,0,15,128,0,0,15,128,0,0,15,128,0, - 0,31,128,0,0,63,0,0,0,126,0,0,3,252,0,0, - 127,248,0,0,127,240,0,0,127,224,0,0,127,240,0,0, - 127,252,0,0,3,254,0,0,0,127,0,0,0,63,128,0, - 0,31,128,0,0,15,192,0,0,15,192,0,0,7,192,0, - 0,7,192,252,0,7,192,252,0,7,192,252,0,7,192,252, - 0,15,192,254,0,31,192,127,0,63,128,127,128,127,128,63, - 255,255,0,63,255,254,0,31,255,252,0,7,255,248,0,1, - 255,224,0,29,42,168,32,2,0,0,0,127,0,0,0,127, - 0,0,0,255,0,0,1,255,0,0,3,255,0,0,3,255, - 0,0,7,223,0,0,15,223,0,0,15,159,0,0,31,31, - 0,0,63,31,0,0,62,31,0,0,124,31,0,0,252,31, - 0,0,248,31,0,1,240,31,0,3,240,31,0,3,224,31, - 0,7,192,31,0,15,192,31,0,15,128,31,0,31,0,31, - 0,63,0,31,0,126,0,31,0,124,0,31,0,252,0,31, - 0,248,0,31,0,255,255,255,248,255,255,255,248,255,255,255, - 248,255,255,255,248,255,255,255,248,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,26,42,168,32,3,0,127,255,255,0,127,255,255,0,127, - 255,255,0,127,255,255,0,127,255,255,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 31,192,0,124,127,240,0,124,255,252,0,125,255,254,0,127, - 224,254,0,127,128,63,0,127,0,31,0,126,0,31,128,126, - 0,15,128,124,0,15,128,0,0,15,192,0,0,15,192,0, - 0,7,192,0,0,7,192,0,0,7,192,0,0,15,192,0, - 0,15,192,252,0,15,192,252,0,15,128,252,0,31,128,254, - 0,31,128,126,0,63,0,127,128,126,0,63,255,254,0,63, - 255,252,0,15,255,248,0,7,255,224,0,1,255,192,0,27, - 42,168,32,3,1,0,127,240,0,1,255,252,0,3,255,254, - 0,15,240,127,0,15,192,63,128,31,128,31,128,63,0,15, - 192,63,0,15,192,62,0,15,192,126,0,0,0,126,0,0, - 0,124,0,0,0,124,0,0,0,124,0,0,0,124,0,0, - 0,124,15,224,0,124,63,248,0,124,255,254,0,124,255,255, - 0,125,255,255,128,127,224,127,128,127,192,31,192,255,128,15, - 192,255,0,7,192,255,0,7,224,254,0,7,224,254,0,7, - 224,254,0,3,224,254,0,3,224,254,0,3,224,254,0,7, - 224,254,0,7,224,126,0,7,224,127,0,7,192,127,0,15, - 192,63,128,15,192,31,192,63,128,31,255,255,0,15,255,255, - 0,7,255,254,0,1,255,248,0,0,127,224,0,26,42,168, - 32,3,0,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,255,255,255,192,0,0,7,192,0,0,15,192,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,31,0,0, - 0,63,0,0,0,63,0,0,0,126,0,0,0,126,0,0, - 0,124,0,0,0,252,0,0,0,252,0,0,1,248,0,0, - 1,248,0,0,1,248,0,0,3,240,0,0,3,240,0,0, - 7,224,0,0,7,224,0,0,15,224,0,0,15,192,0,0, - 15,192,0,0,31,128,0,0,31,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,127,0,0,0,126,0,0,0, - 254,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,3,240,0,0,27,42,168,32,2, - 1,0,255,224,0,3,255,252,0,15,255,254,0,31,255,255, - 0,63,255,255,128,63,128,63,192,127,0,31,192,126,0,15, - 192,126,0,7,192,126,0,7,192,124,0,7,192,124,0,7, - 192,126,0,7,192,62,0,15,192,63,0,15,128,31,128,31, - 0,15,224,127,0,7,255,254,0,3,255,248,0,0,255,240, - 0,3,255,248,0,15,255,254,0,31,224,127,0,63,128,31, - 128,62,0,15,192,126,0,7,192,124,0,7,224,252,0,3, - 224,252,0,3,224,248,0,3,224,248,0,3,224,252,0,3, - 224,252,0,3,224,252,0,7,224,254,0,7,224,127,0,15, - 224,127,128,31,192,63,255,255,128,31,255,255,128,15,255,255, - 0,3,255,252,0,0,255,240,0,27,42,168,32,3,1,1, - 255,240,0,7,255,252,0,15,255,254,0,31,255,255,0,63, - 255,255,128,63,128,63,128,126,0,31,192,126,0,15,192,252, - 0,15,192,252,0,7,224,252,0,7,224,248,0,7,224,248, - 0,7,224,248,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,224,124,0,15,224,126,0,31,224,63,0,63,224,63, - 192,123,224,31,255,243,224,15,255,243,224,3,255,195,224,0, - 255,7,224,0,0,7,224,0,0,7,224,0,0,7,224,0, - 0,7,192,0,0,7,192,0,0,7,192,124,0,15,192,124, - 0,15,128,126,0,31,128,62,0,31,128,63,0,63,0,63, - 128,255,0,31,255,254,0,31,255,252,0,15,255,248,0,7, - 255,240,0,1,255,192,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--68-680-72-72-P-317-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=250 - Font Bounding box w=92 h=89 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur49n[2643] U8G_SECTION(".progmem.u8g_font_fur49n") = { - 0,92,89,251,238,49,0,0,0,0,42,57,0,50,247,49, - 0,27,26,104,45,9,23,0,192,96,0,3,192,120,0,15, - 192,126,0,7,224,252,0,3,224,248,0,1,241,240,0,1, - 241,240,0,0,251,224,0,0,123,192,0,0,59,128,0,224, - 63,128,224,255,255,255,224,255,255,255,224,255,255,255,224,255, - 159,63,224,128,63,128,32,0,123,192,0,0,123,192,0,0, - 241,224,0,1,241,240,0,3,241,248,0,3,224,248,0,7, - 224,252,0,15,192,124,0,3,192,120,0,0,128,32,0,41, - 41,246,69,14,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,255,255,255,255,255,128,255,255,255, - 255,255,128,255,255,255,255,255,128,255,255,255,255,255,128,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,12,17,34,19,3, - 247,15,240,15,240,15,224,15,224,31,224,31,192,31,192,31, - 128,63,128,63,0,63,0,62,0,126,0,126,0,124,0,124, - 0,248,0,16,6,12,22,3,14,255,255,255,255,255,255,255, - 255,255,255,255,255,7,8,8,19,7,0,254,254,254,254,254, - 254,254,254,21,54,162,27,3,252,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,31,51,204,38,3, - 255,0,31,240,0,0,127,252,0,1,255,255,0,3,255,255, - 128,7,255,255,192,15,255,255,224,31,240,31,240,31,192,15, - 240,63,128,7,248,63,128,3,248,63,0,1,248,127,0,1, - 252,126,0,1,252,126,0,0,252,126,0,0,252,254,0,0, - 252,254,0,0,254,252,0,0,254,252,0,0,254,252,0,0, - 254,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,254,254,0,0,254,254,0,0, - 254,254,0,0,254,254,0,0,254,126,0,0,254,126,0,0, - 252,126,0,0,252,127,0,1,252,127,0,1,252,63,0,1, - 252,63,128,3,248,63,128,3,248,31,192,7,248,31,224,15, - 240,15,248,63,240,15,255,255,224,7,255,255,192,3,255,255, - 128,1,255,255,0,0,127,252,0,0,15,240,0,16,49,98, - 38,9,0,0,127,0,255,1,255,3,255,7,255,31,255,63, - 255,127,255,255,255,255,63,252,63,240,63,192,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,29,50,200,38,4,0,0,31,224,0,0, - 255,252,0,3,255,255,0,7,255,255,128,15,255,255,192,31, - 255,255,224,31,240,31,224,63,224,7,240,63,192,3,240,63, - 128,3,248,127,128,3,248,127,0,1,248,127,0,1,248,127, - 0,1,248,127,0,1,248,0,0,1,248,0,0,1,248,0, - 0,3,248,0,0,3,248,0,0,7,240,0,0,7,240,0, - 0,15,224,0,0,31,224,0,0,63,192,0,0,127,128,0, - 0,127,0,0,0,255,0,0,1,254,0,0,3,252,0,0, - 7,248,0,0,15,240,0,0,31,240,0,0,63,224,0,0, - 127,192,0,0,127,128,0,0,255,0,0,1,254,0,0,3, - 252,0,0,7,248,0,0,15,248,0,0,31,240,0,0,63, - 224,0,0,127,192,0,0,255,128,0,0,255,0,0,0,255, - 255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255, - 255,255,248,31,51,204,38,3,255,0,31,240,0,0,255,254, - 0,1,255,255,128,3,255,255,192,7,255,255,224,15,248,31, - 240,31,224,7,248,31,192,3,248,63,192,1,252,63,128,0, - 252,63,128,0,252,127,0,0,252,127,0,0,252,127,0,0, - 252,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,7,240,0,0,31,224,0,0,255, - 192,0,31,255,128,0,31,254,0,0,31,252,0,0,31,255, - 0,0,31,255,192,0,0,255,224,0,0,15,240,0,0,7, - 248,0,0,3,252,0,0,1,252,0,0,0,254,0,0,0, - 254,0,0,0,126,0,0,0,126,0,0,0,126,254,0,0, - 126,254,0,0,126,255,0,0,126,255,0,0,254,127,0,0, - 254,127,128,1,252,127,128,3,252,63,224,7,248,31,248,31, - 240,15,255,255,224,7,255,255,192,3,255,255,128,0,255,254, - 0,0,31,240,0,34,50,250,38,2,0,0,0,15,240,0, - 0,0,15,240,0,0,0,31,240,0,0,0,63,240,0,0, - 0,63,240,0,0,0,127,240,0,0,0,255,240,0,0,0, - 255,240,0,0,1,251,240,0,0,3,251,240,0,0,3,243, - 240,0,0,7,227,240,0,0,15,227,240,0,0,15,195,240, - 0,0,31,131,240,0,0,63,131,240,0,0,63,3,240,0, - 0,126,3,240,0,0,254,3,240,0,1,252,3,240,0,1, - 248,3,240,0,3,248,3,240,0,7,240,3,240,0,7,224, - 3,240,0,15,224,3,240,0,31,192,3,240,0,31,128,3, - 240,0,63,128,3,240,0,127,0,3,240,0,126,0,3,240, - 0,252,0,3,240,0,252,0,3,240,0,255,255,255,255,192, - 255,255,255,255,192,255,255,255,255,192,255,255,255,255,192,255, - 255,255,255,192,255,255,255,255,192,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,240,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,3,240,0,0,0,3,240,0, - 0,0,3,240,0,30,50,200,38,4,255,63,255,255,224,63, - 255,255,224,63,255,255,224,63,255,255,224,63,255,255,224,63, - 255,255,224,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,3,248,0,63, - 31,254,0,63,63,255,128,63,127,255,192,63,255,255,224,63, - 248,31,224,63,224,7,240,63,192,3,240,63,128,3,248,63, - 0,1,248,63,0,1,252,62,0,1,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,254, - 0,1,252,254,0,1,248,254,0,1,248,255,0,3,248,127, - 0,3,240,127,128,7,224,127,192,15,224,63,240,63,192,31, - 255,255,128,15,255,255,0,7,255,254,0,1,255,248,0,0, - 31,224,0,31,51,204,38,3,255,0,7,248,0,0,63,255, - 0,0,255,255,192,1,255,255,224,3,255,255,240,7,252,15, - 240,15,248,7,248,31,224,3,248,31,192,1,252,63,192,1, - 252,63,128,0,252,63,0,0,252,127,0,0,252,127,0,0, - 0,127,0,0,0,126,0,0,0,126,0,0,0,126,0,0, - 0,126,0,0,0,126,0,0,0,126,7,252,0,126,31,255, - 0,126,63,255,192,126,127,255,224,126,255,255,240,127,252,15, - 248,127,240,3,248,255,192,1,252,255,192,1,252,255,128,0, - 254,255,128,0,254,255,0,0,126,255,0,0,126,255,0,0, - 126,255,0,0,126,255,0,0,126,255,0,0,126,255,0,0, - 126,127,0,0,126,127,0,0,126,127,128,0,254,63,128,0, - 252,63,128,1,252,31,192,1,252,31,224,3,248,15,248,15, - 240,7,255,255,224,3,255,255,192,1,255,255,128,0,127,254, - 0,0,15,248,0,30,49,196,38,4,0,255,255,255,252,255, - 255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,0, - 0,0,252,0,0,1,252,0,0,1,252,0,0,1,248,0, - 0,3,248,0,0,3,240,0,0,7,240,0,0,7,240,0, - 0,7,224,0,0,15,224,0,0,15,224,0,0,31,192,0, - 0,31,192,0,0,31,128,0,0,63,128,0,0,63,128,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,254,0,0, - 0,254,0,0,0,254,0,0,1,252,0,0,1,252,0,0, - 3,248,0,0,3,248,0,0,3,248,0,0,7,240,0,0, - 7,240,0,0,15,240,0,0,15,224,0,0,15,224,0,0, - 31,192,0,0,31,192,0,0,63,192,0,0,63,128,0,0, - 63,128,0,0,127,128,0,0,127,0,0,0,127,0,0,0, - 254,0,0,0,254,0,0,1,254,0,0,1,252,0,0,32, - 51,204,38,3,255,0,15,248,0,0,127,255,0,1,255,255, - 128,3,255,255,224,7,255,255,240,15,248,31,248,31,224,7, - 252,31,192,1,252,63,128,1,252,63,128,0,254,63,0,0, - 254,63,0,0,254,63,0,0,126,63,0,0,126,63,0,0, - 126,63,0,0,254,63,0,0,252,31,128,0,252,31,128,1, - 248,15,192,3,248,15,224,7,240,7,248,31,224,3,255,255, - 192,0,255,255,128,0,127,254,0,1,255,255,128,3,255,255, - 192,15,248,15,240,31,192,3,248,31,128,1,248,63,0,0, - 252,127,0,0,126,126,0,0,126,126,0,0,126,254,0,0, - 127,252,0,0,63,252,0,0,63,252,0,0,63,254,0,0, - 127,254,0,0,127,254,0,0,127,254,0,0,127,127,0,0, - 254,127,128,1,254,63,192,3,252,63,240,15,252,31,255,255, - 248,15,255,255,240,3,255,255,192,0,255,255,0,0,15,248, - 0,31,51,204,38,3,255,0,31,248,0,0,255,255,0,3, - 255,255,192,7,255,255,224,15,255,255,240,31,240,31,248,63, - 192,7,248,63,128,3,252,127,0,1,252,126,0,1,252,126, - 0,0,254,254,0,0,254,254,0,0,254,252,0,0,254,252, - 0,0,254,252,0,0,254,252,0,0,254,252,0,0,254,254, - 0,0,254,254,0,0,254,254,0,0,254,126,0,1,254,127, - 0,1,254,63,128,3,254,63,192,7,254,31,240,31,254,31, - 255,255,126,15,255,254,126,7,255,252,126,1,255,248,126,0, - 63,224,126,0,0,0,126,0,0,0,126,0,0,0,126,0, - 0,0,254,0,0,0,252,0,0,0,252,0,0,0,252,126, - 0,0,252,127,0,1,248,63,0,1,248,63,0,3,248,63, - 0,7,240,63,128,7,240,31,192,31,224,31,224,63,224,15, - 255,255,192,7,255,255,128,3,255,255,0,1,255,252,0,0, - 63,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=11 dx=16 dy= 0 ascent=16 len=34 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11[4313] U8G_SECTION(".progmem.u8g_font_gdb11") = { - 0,27,26,247,250,11,2,67,5,71,32,255,252,16,251,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,4,0,0,3,13,13,6,1,251,96,224,64, - 64,64,64,96,96,96,96,96,96,192,7,11,11,9,1,0, - 16,24,126,148,144,144,144,210,124,16,16,8,11,11,9,1, - 0,30,34,98,96,96,252,96,96,97,127,158,7,7,7,9, - 1,2,132,126,68,68,68,68,254,10,11,22,9,255,0,227, - 192,113,0,51,0,58,0,26,0,30,0,12,0,127,128,12, - 0,12,0,30,0,1,19,19,4,2,252,128,128,128,128,128, - 128,128,128,0,0,0,128,128,128,128,128,128,128,128,7,13, - 13,9,1,0,112,152,144,240,252,158,130,98,60,12,68,100, - 124,6,3,3,7,0,9,196,204,140,11,12,24,13,1,0, - 31,0,32,128,79,64,147,32,146,32,144,32,144,32,144,32, - 137,32,78,64,32,128,31,0,5,6,6,5,0,5,112,208, - 176,144,248,240,7,8,8,9,1,0,18,38,108,220,220,108, - 38,18,7,4,4,9,1,1,254,2,2,2,6,1,1,6, - 0,4,252,6,7,7,6,0,6,120,72,188,188,180,104,120, - 7,1,1,9,1,11,254,4,4,4,6,1,7,112,144,144, - 224,7,8,8,7,0,1,16,16,254,16,16,16,0,254,4, - 7,7,6,1,5,112,208,16,32,64,144,240,4,7,7,6, - 1,5,48,80,144,48,16,144,224,4,4,4,6,2,9,112, - 96,192,128,9,12,24,10,1,252,227,0,99,0,99,0,99, - 0,99,0,99,0,127,128,91,0,64,0,64,0,96,0,112, - 0,10,13,26,11,0,254,63,192,98,128,194,128,194,128,98, - 128,62,128,2,128,2,128,2,128,2,128,2,128,2,128,7, - 192,3,3,3,4,0,5,224,224,192,2,4,4,4,2,252, - 192,64,64,192,4,7,7,6,1,5,32,224,32,32,32,32, - 240,4,6,6,5,0,5,96,144,144,144,96,240,8,8,8, - 9,1,0,136,76,102,55,55,102,76,136,10,11,22,11,1, - 0,192,192,65,128,65,0,66,0,68,0,172,0,8,128,19, - 128,50,128,99,192,197,192,9,11,22,11,1,0,192,128,65, - 0,66,0,66,0,68,0,168,0,25,128,18,128,33,0,98, - 128,199,128,11,11,22,11,0,0,96,96,80,192,32,128,17, - 0,146,0,230,0,4,64,9,192,25,64,49,224,98,224,6, - 13,13,8,1,251,56,56,48,16,16,16,32,96,192,196,204, - 204,112,11,16,32,11,0,0,16,0,24,0,12,0,6,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,16,32,11,0,0,1,0, - 3,128,6,0,12,0,0,0,6,0,14,0,14,0,11,0, - 19,0,19,0,63,128,33,128,33,192,96,192,241,224,11,16, - 32,11,0,0,4,0,14,0,31,0,17,0,0,128,6,0, - 14,0,14,0,11,0,19,0,19,0,63,128,33,128,33,192, - 96,192,241,224,11,15,30,11,0,0,12,128,31,128,39,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,15,30,11,0,0,16,128, - 49,128,49,128,0,0,6,0,14,0,14,0,11,0,19,0, - 19,0,63,128,33,128,33,192,96,192,241,224,11,16,32,11, - 0,0,6,0,10,0,10,0,14,0,0,0,6,0,14,0, - 14,0,11,0,19,0,19,0,63,128,33,128,33,192,96,192, - 241,224,14,11,22,15,0,0,15,252,7,140,5,136,13,128, - 9,128,31,248,25,128,17,128,49,132,33,132,243,252,9,15, - 30,10,0,252,31,0,99,0,64,0,192,0,192,0,192,0, - 192,0,192,0,96,0,112,128,31,0,4,0,2,0,6,0, - 28,0,9,16,32,9,0,0,32,0,48,0,24,0,4,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,9,16,32,9,0,0,2,0, - 7,0,14,0,24,0,0,0,255,0,49,0,49,0,48,0, - 48,0,63,0,48,0,48,0,48,128,48,128,255,128,9,16, - 32,9,0,0,8,0,28,0,30,0,35,0,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,15,30,9,0,0,33,0,97,0,99,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,5,16,16,6,0,0,64,224, - 112,16,8,120,48,48,48,48,48,48,48,48,48,120,5,16, - 16,6,1,0,16,56,112,192,0,240,96,96,96,96,96,96, - 96,96,96,240,6,16,16,6,0,0,48,112,120,204,0,120, - 48,48,48,48,48,48,48,48,48,120,7,15,15,6,255,0, - 66,194,194,0,60,24,24,24,24,24,24,24,24,24,60,9, - 11,22,11,1,0,254,0,99,0,97,0,97,128,97,128,249, - 128,97,128,97,128,97,0,99,0,252,0,10,15,30,12,1, - 0,25,0,63,0,46,0,0,0,225,192,96,128,112,128,120, - 128,92,128,76,128,70,128,71,128,67,128,65,128,225,128,10, - 16,32,11,0,0,16,0,24,0,12,0,2,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,16,32,11,0,0,1,0,3,128,6, - 0,12,0,0,0,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,10,16,32,11,0, - 0,4,0,14,0,31,0,17,128,0,0,30,0,33,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,0,30, - 0,10,15,30,11,0,0,12,128,31,128,39,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,15,30,11,0,0,16,128,49,128,49, - 128,0,0,30,0,33,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,0,30,0,6,6,6,8,1,2,140, - 216,112,112,216,140,10,11,22,11,0,0,31,192,35,128,99, - 128,195,192,198,192,204,192,216,192,240,192,113,128,113,0,254, - 0,10,16,32,12,1,0,16,0,56,0,28,0,6,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,12,1,0,2,0,7, - 0,14,0,24,0,0,0,241,192,96,128,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,49,0,30,0,10,16,32, - 12,1,0,12,0,14,0,30,0,51,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,49, - 0,30,0,10,15,30,12,1,0,33,0,33,128,33,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,11,1,0,4,0,7, - 0,12,0,24,0,0,0,227,192,113,128,49,0,59,0,26, - 0,14,0,12,0,12,0,12,0,12,0,30,0,8,11,11, - 10,1,0,240,96,126,99,99,99,99,98,124,96,240,9,13, - 26,11,1,0,14,0,49,128,33,128,97,128,97,0,102,0, - 104,0,100,0,103,0,97,128,104,128,104,128,239,0,8,13, - 13,9,1,0,96,48,16,8,0,60,102,198,30,102,198,207, - 118,8,13,13,9,1,0,12,28,24,48,0,60,102,198,30, - 102,198,207,118,8,13,13,9,1,0,16,56,108,198,0,60, - 102,198,30,102,198,207,118,8,12,12,9,1,0,114,252,0, - 0,60,102,198,30,102,198,207,118,8,12,12,9,1,0,194, - 198,134,0,60,102,198,30,102,198,207,118,8,13,13,9,1, - 0,24,40,40,48,0,60,102,198,30,102,198,207,118,11,8, - 16,13,1,0,61,192,102,32,196,32,63,224,68,0,198,32, - 255,192,115,128,7,12,12,8,1,252,62,70,196,192,192,192, - 102,56,16,8,24,48,7,13,13,9,1,0,96,48,24,8, - 0,60,70,198,254,192,192,98,60,7,13,13,9,1,0,12, - 14,24,48,0,60,70,198,254,192,192,98,60,7,13,13,9, - 1,0,24,56,108,66,0,60,70,198,254,192,192,98,60,7, - 12,12,9,1,0,66,198,194,0,60,70,198,254,192,192,98, - 60,5,13,13,5,0,0,224,96,48,16,0,48,112,48,48, - 48,48,48,120,5,13,13,5,1,0,48,56,96,64,128,96, - 224,96,96,96,96,96,240,6,13,13,5,0,0,48,112,216, - 132,0,48,112,48,48,48,48,48,120,7,12,12,5,255,0, - 66,194,194,0,24,56,24,24,24,24,24,60,7,13,13,9, - 1,0,112,62,56,108,4,62,78,198,198,198,196,76,56,9, - 12,24,10,1,0,57,0,126,0,0,0,0,0,110,0,255, - 0,115,0,99,0,99,0,99,0,99,0,247,128,7,13,13, - 9,1,0,112,48,24,8,0,56,68,198,198,198,198,68,56, - 7,13,13,9,1,0,14,12,24,16,0,56,68,198,198,198, - 198,68,56,7,13,13,9,1,0,24,60,44,66,0,56,68, - 198,198,198,198,68,56,7,12,12,9,1,0,50,124,128,0, - 56,68,198,198,198,198,68,56,7,12,12,9,1,0,66,194, - 66,0,56,68,198,198,198,198,68,56,7,6,6,8,0,2, - 16,16,0,126,144,16,7,9,9,9,1,0,2,58,68,206, - 214,230,230,68,248,10,13,26,10,0,0,24,0,56,0,12, - 0,4,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,7,0,6,0,12, - 0,8,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,12,0,30,0,18, - 0,33,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,12,24,10,0,0,33,0,33,128,33, - 0,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,10,17,34,9,255,252,3,0,3,128,6,0,4, - 0,8,0,121,192,48,128,25,128,25,0,15,0,14,0,14, - 0,6,0,4,0,12,0,120,0,240,0,8,18,18,10,1, - 252,96,224,96,96,96,96,110,127,97,97,97,97,98,124,96, - 96,96,240,10,16,32,9,255,252,16,128,48,128,48,128,0, - 0,121,192,48,128,25,128,25,0,15,0,14,0,14,0,6, - 0,4,0,12,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx=10 dy= 0 ascent=14 len=17 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11n[263] U8G_SECTION(".progmem.u8g_font_gdb11n") = { - 0,27,26,247,250,11,0,0,0,0,42,57,0,14,253,11, - 0,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=32 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11r[2001] U8G_SECTION(".progmem.u8g_font_gdb11r") = { - 0,27,26,247,250,11,2,67,5,71,32,127,252,15,252,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12[4626] U8G_SECTION(".progmem.u8g_font_gdb12") = { - 0,29,28,246,249,12,2,113,5,210,32,255,252,17,251,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,5,0,0,3,14,14,6,1,251,96,224,64,0,96,96, - 96,96,96,96,96,96,96,64,7,12,12,10,2,0,16,16, - 62,86,144,144,144,144,86,124,16,16,9,11,22,10,0,0, - 15,128,49,128,49,0,112,0,112,0,254,0,112,0,112,0, - 96,128,123,128,255,0,8,7,7,10,1,2,255,66,66,66, - 66,102,255,10,11,22,10,0,0,227,192,113,0,51,0,26, - 0,26,0,12,0,127,128,12,0,12,0,12,0,30,0,1, - 20,20,4,2,252,128,128,128,128,128,128,128,128,128,0,0, - 128,128,128,128,128,128,128,128,128,8,13,13,10,1,0,120, - 152,136,240,190,135,193,113,62,14,34,50,62,6,3,3,7, - 0,10,236,252,220,12,13,26,14,1,0,15,0,48,192,64, - 32,143,32,145,16,145,16,144,16,144,16,144,16,136,160,79, - 32,32,64,31,128,5,7,7,5,0,5,112,208,112,144,248, - 0,240,8,9,9,10,1,0,17,34,102,204,220,204,102,34, - 17,8,4,4,10,1,2,255,1,1,1,6,1,1,7,0, - 4,252,7,7,7,7,0,7,56,68,186,170,178,108,56,8, - 2,2,9,1,11,255,254,5,5,5,7,1,7,112,136,136, - 136,112,8,9,9,8,0,1,8,8,8,127,8,8,8,0, - 255,4,7,7,7,2,6,112,208,16,32,64,144,240,5,7, - 7,6,0,6,56,104,8,24,8,136,112,4,4,4,6,2, - 10,48,96,192,128,10,13,26,11,1,252,99,0,227,0,99, - 0,99,0,99,0,99,0,103,0,127,128,91,64,64,0,64, - 0,96,0,112,0,9,14,28,11,1,254,63,128,101,0,197, - 0,197,0,197,0,101,0,61,0,5,0,5,0,5,0,5, - 0,5,0,5,0,15,128,3,3,3,4,0,5,224,224,192, - 3,4,4,4,1,252,64,96,96,192,5,7,7,7,1,6, - 32,224,32,32,32,32,248,4,7,7,5,0,5,96,144,144, - 144,96,0,240,8,9,9,10,1,0,136,76,102,55,51,55, - 102,76,136,11,11,22,12,1,0,64,64,192,128,65,0,67, - 0,70,0,228,0,8,192,25,64,50,64,35,224,192,224,10, - 11,22,12,1,0,64,64,192,128,65,0,65,0,66,0,228, - 192,9,64,26,128,16,128,33,64,99,192,11,11,22,11,0, - 0,96,32,208,64,32,128,145,128,227,0,2,0,4,192,13, - 64,25,64,19,224,96,224,7,14,14,9,1,251,56,56,48, - 0,16,16,16,32,96,192,194,198,196,120,12,16,32,12,0, - 0,24,0,28,0,3,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,12,16,32,12,0,0,1,0,7,128,12,0,0,0,6, - 0,14,0,15,0,11,0,27,0,19,128,17,128,63,128,33, - 192,32,192,96,224,241,240,12,16,32,12,0,0,6,0,15, - 0,16,128,0,0,6,0,14,0,15,0,11,0,27,0,19, - 128,17,128,63,128,33,192,32,192,96,224,241,240,12,16,32, - 12,0,0,12,192,31,128,35,0,0,0,6,0,14,0,15, - 0,11,0,27,0,19,128,17,128,63,128,33,192,32,192,96, - 224,241,240,12,16,32,12,0,0,27,0,27,128,27,0,0, - 0,6,0,14,0,15,0,11,0,27,0,19,128,17,128,63, - 128,33,192,32,192,96,224,241,240,12,17,34,12,0,0,6, - 0,9,0,17,0,14,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,15,12,24,15,0,0,31,252,5,132,5,132,13,128,9, - 128,31,248,17,144,17,128,49,128,33,130,97,132,243,252,9, - 16,32,11,1,252,31,0,99,128,65,0,192,0,192,0,192, - 0,192,0,192,0,192,0,96,128,59,128,30,0,8,0,6, - 0,14,0,28,0,10,16,32,10,0,0,48,0,56,0,6, - 0,0,0,255,128,48,128,48,128,48,0,48,0,63,0,50, - 0,48,0,48,0,48,64,48,128,255,128,10,16,32,10,0, - 0,3,0,7,0,24,0,0,0,255,128,48,128,48,128,48, - 0,48,0,63,0,50,0,48,0,48,0,48,64,48,128,255, - 128,10,16,32,10,0,0,12,0,30,0,33,0,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,10,16,32,10,0,0,51,0,63, - 0,54,0,0,0,255,128,48,128,48,128,48,0,48,0,63, - 0,50,0,48,0,48,0,48,64,48,128,255,128,5,16,16, - 6,0,0,192,224,24,0,120,48,48,48,48,48,48,48,48, - 48,48,120,5,16,16,6,1,0,24,56,192,0,240,96,96, - 96,96,96,96,96,96,96,96,240,6,16,16,6,0,0,48, - 120,132,0,120,48,48,48,48,48,48,48,48,48,48,120,6, - 16,16,6,0,0,204,252,216,0,120,48,48,48,48,48,48, - 48,48,48,48,120,10,12,24,12,1,0,254,0,99,128,97, - 128,96,192,96,192,248,192,96,192,96,192,96,192,97,128,99, - 0,254,0,11,16,32,13,1,0,28,128,63,0,39,0,0, - 0,224,224,112,64,112,64,120,64,92,64,78,64,78,64,71, - 64,67,192,65,192,65,192,224,192,10,16,32,12,1,0,48, - 0,56,0,6,0,0,0,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,128,96,128,97,0,30,0,10, - 16,32,12,1,0,2,0,15,0,24,0,0,0,30,0,33, - 128,65,128,64,192,192,192,192,192,192,192,192,192,192,128,96, - 128,97,0,30,0,10,16,32,12,1,0,12,0,30,0,33, - 0,0,0,30,0,33,128,65,128,64,192,192,192,192,192,192, - 192,192,192,192,128,96,128,97,0,30,0,10,16,32,12,1, - 0,25,128,63,0,70,0,0,0,30,0,33,128,65,128,64, - 192,192,192,192,192,192,192,192,192,192,128,96,128,97,0,30, - 0,10,16,32,12,1,0,55,0,55,0,54,0,0,0,30, - 0,33,128,65,128,64,192,192,192,192,192,192,192,192,192,192, - 128,96,128,97,0,30,0,6,6,6,8,1,2,132,72,48, - 48,72,132,10,12,24,12,1,0,30,192,33,128,97,128,67, - 192,198,192,196,192,200,192,216,192,240,128,97,128,97,0,222, - 0,11,16,32,13,1,0,16,0,60,0,6,0,0,0,240, - 224,96,64,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,128,48,128,31,0,11,16,32,13,1,0,3,0,7, - 128,12,0,0,0,240,224,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,128,48,128,31,0,11,16,32, - 13,1,0,12,0,30,0,49,0,0,128,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,128,48, - 128,31,0,11,16,32,13,1,0,27,0,63,0,51,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,128,48,128,31,0,11,16,32,12,0,0,1, - 0,7,128,12,0,0,0,241,224,48,192,24,128,29,128,13, - 0,15,0,6,0,6,0,6,0,6,0,6,0,15,0,9, - 12,24,11,1,0,248,0,96,0,126,0,99,0,97,128,97, - 128,97,128,97,128,113,0,110,0,96,0,248,0,9,14,28, - 12,1,0,14,0,51,0,33,128,97,128,97,128,103,0,108, - 0,108,0,102,0,99,0,97,128,104,128,104,128,239,0,8, - 14,14,9,1,0,112,48,24,8,0,60,102,198,14,126,198, - 198,207,118,8,14,14,9,1,0,14,12,24,48,0,60,102, - 198,14,126,198,198,207,118,8,14,14,9,1,0,24,60,108, - 66,0,60,102,198,14,126,198,198,207,118,8,13,13,9,1, - 0,114,126,140,0,60,102,198,14,126,198,198,207,118,8,13, - 13,9,1,0,108,110,108,0,60,102,198,14,126,198,198,207, - 118,8,14,14,9,1,0,56,68,72,56,0,60,102,198,14, - 126,198,198,207,118,12,9,18,14,1,0,29,192,111,32,198, - 48,166,48,63,240,70,0,199,16,251,224,113,192,8,13,13, - 9,1,252,62,70,196,192,192,192,194,127,60,16,12,28,48, - 7,14,14,9,1,0,112,48,24,8,0,60,100,198,198,254, - 192,226,124,56,7,14,14,9,1,0,14,12,24,16,0,60, - 100,198,198,254,192,226,124,56,7,14,14,9,1,0,24,60, - 100,66,0,60,100,198,198,254,192,226,124,56,7,13,13,9, - 1,0,110,126,108,0,60,100,198,198,254,192,226,124,56,5, - 14,14,6,0,0,224,96,48,16,0,48,112,48,48,48,48, - 48,48,120,5,14,14,6,1,0,56,48,96,64,0,96,224, - 96,96,96,96,96,96,240,6,14,14,6,0,0,48,120,200, - 132,0,48,112,48,48,48,48,48,48,120,6,13,13,6,0, - 0,220,220,216,0,48,112,48,48,48,48,48,48,120,8,14, - 14,10,1,0,48,255,28,102,6,63,71,195,195,195,195,194, - 102,60,9,13,26,11,1,0,57,0,63,0,78,0,0,0, - 102,0,255,0,115,0,99,0,99,0,99,0,99,0,99,0, - 247,128,8,14,14,10,1,0,48,112,24,12,0,60,70,195, - 195,195,195,194,98,60,8,14,14,10,1,0,6,12,24,16, - 0,60,70,195,195,195,195,194,98,60,8,14,14,10,1,0, - 24,60,38,66,0,60,70,195,195,195,195,194,98,60,8,13, - 13,10,1,0,57,126,76,0,60,70,195,195,195,195,194,98, - 60,8,13,13,10,1,0,118,126,108,0,60,70,195,195,195, - 195,194,98,60,8,7,7,8,0,2,8,8,0,127,128,8, - 8,8,9,9,10,1,0,63,102,71,203,219,211,226,102,252, - 10,14,28,11,0,0,24,0,60,0,12,0,6,0,0,0, - 227,128,97,128,97,128,97,128,97,128,97,128,99,128,127,192, - 57,128,10,14,28,11,0,0,3,0,7,0,4,0,8,0, - 0,0,227,128,97,128,97,128,97,128,97,128,97,128,99,128, - 127,192,57,128,10,14,28,11,0,0,12,0,14,0,27,0, - 33,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,10,13,26,11,0,0,27,0,63,0, - 51,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,11,18,36,10,255,252,3,128,3,0, - 6,0,4,0,0,0,121,224,56,128,24,128,25,128,13,0, - 13,0,14,0,6,0,6,0,4,0,12,0,120,0,240,0, - 9,18,36,11,1,252,96,0,224,0,96,0,96,0,96,0, - 103,0,111,0,113,128,97,128,97,128,97,128,97,0,127,0, - 110,0,96,0,96,0,96,0,248,0,11,17,34,10,255,252, - 25,128,31,128,27,0,0,0,121,224,56,128,24,128,25,128, - 13,0,13,0,14,0,6,0,6,0,4,0,12,0,120,0, - 240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=18 x= 1 y= 7 dx=10 dy= 0 ascent=15 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12n[286] U8G_SECTION(".progmem.u8g_font_gdb12n") = { - 0,29,28,246,249,12,0,0,0,0,42,57,0,15,252,12, - 0,7,7,7,8,1,7,48,180,222,48,222,148,48,7,7, - 7,8,1,2,16,16,16,254,16,16,16,3,6,6,5,1, - 252,96,224,96,96,64,128,6,1,1,7,0,4,252,3,3, - 3,5,1,0,224,224,192,9,18,36,9,0,253,1,128,3, - 0,3,0,3,0,6,0,6,0,4,0,12,0,12,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,192, - 0,8,11,11,10,1,0,60,102,66,195,195,195,195,195,66, - 98,60,7,12,12,10,1,0,8,120,152,24,24,24,24,24, - 24,24,24,254,7,11,11,9,1,0,60,102,230,6,4,8, - 16,34,66,126,254,7,11,11,9,1,0,60,102,230,6,8, - 28,6,6,6,140,120,8,12,12,9,0,0,6,14,14,22, - 22,38,102,70,255,6,6,31,7,11,11,10,1,0,126,124, - 64,64,124,134,6,6,6,134,124,8,12,12,10,1,0,14, - 56,112,96,192,254,195,195,195,195,98,60,8,11,11,10,1, - 0,255,254,130,6,4,12,8,24,24,48,96,8,11,11,10, - 1,0,60,102,102,102,124,62,71,195,195,195,60,8,11,11, - 10,1,0,60,70,195,195,195,195,63,2,6,12,112}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12r[2190] U8G_SECTION(".progmem.u8g_font_gdb12r") = { - 0,29,28,246,249,12,2,113,5,210,32,127,252,16,252,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14[6044] U8G_SECTION(".progmem.u8g_font_gdb14") = { - 0,36,33,244,248,14,3,134,7,177,32,255,251,20,250,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,6,0,0, - 4,16,16,7,1,250,112,240,96,0,32,32,32,112,112,112, - 112,112,112,112,112,96,10,14,28,12,1,0,12,0,12,0, - 31,128,125,192,108,128,204,0,204,0,204,0,204,0,236,192, - 127,128,63,0,12,0,12,0,11,14,28,12,0,0,7,192, - 12,224,24,64,24,64,56,0,56,0,56,0,127,0,184,0, - 56,0,56,32,48,32,127,224,255,224,10,9,18,12,1,2, - 128,64,94,128,51,0,97,128,97,128,97,128,51,128,94,128, - 128,64,12,14,28,12,0,0,241,240,120,192,56,192,29,128, - 29,128,13,0,15,0,6,0,63,192,6,0,6,0,6,0, - 6,0,31,128,2,24,24,5,2,251,192,192,192,192,192,192, - 192,192,192,192,128,0,0,64,192,192,192,192,192,192,192,192, - 192,192,9,16,32,11,1,0,62,0,99,0,99,0,112,0, - 60,0,127,0,199,128,195,128,225,128,121,128,63,0,31,0, - 71,0,67,0,99,0,126,0,7,3,3,9,1,12,198,238, - 198,15,15,30,17,1,0,7,192,24,48,48,24,99,204,108, - 236,200,70,216,6,216,6,216,6,216,6,108,44,103,204,48, - 24,24,48,7,192,6,7,7,6,0,7,120,216,24,248,216, - 252,248,9,10,20,12,1,0,8,128,17,128,51,0,103,0, - 238,0,238,0,103,0,51,0,17,128,8,128,10,5,10,12, - 1,2,255,192,0,192,0,192,0,192,0,192,7,1,1,8, - 1,5,254,8,8,8,8,0,8,60,66,157,149,153,153,86, - 60,9,2,4,11,1,13,255,128,255,128,6,5,5,8,1, - 9,56,76,204,200,112,8,10,10,9,1,2,24,24,24,24, - 255,24,24,24,0,255,6,8,8,8,1,7,120,204,140,24, - 16,32,68,252,6,8,8,8,1,7,56,204,140,56,12,12, - 140,120,6,5,5,7,2,12,56,60,112,96,192,12,15,30, - 13,1,251,96,192,225,192,96,192,96,192,96,192,96,192,96, - 192,113,192,127,240,110,192,96,0,96,0,112,0,112,0,96, - 0,14,17,34,14,0,253,31,252,113,176,225,176,225,176,225, - 176,225,176,113,176,31,176,1,176,1,176,1,176,1,176,1, - 176,1,176,1,176,1,176,7,252,4,3,3,5,0,6,96, - 240,224,4,5,5,5,1,251,32,96,48,48,224,6,8,8, - 8,1,7,48,240,48,48,48,48,48,252,5,7,7,6,0, - 7,112,216,216,216,216,112,248,10,10,20,12,1,0,196,0, - 102,0,99,0,51,128,57,192,61,192,49,128,99,0,102,0, - 196,0,12,14,28,14,1,0,48,16,240,48,48,96,48,192, - 48,128,49,128,255,0,6,96,4,224,13,224,25,96,19,240, - 48,96,96,240,12,14,28,14,1,0,48,48,240,96,48,192, - 48,192,49,128,51,0,254,0,6,240,13,48,26,48,16,96, - 48,192,97,144,195,240,14,14,28,15,0,0,56,8,76,24, - 40,48,60,96,12,64,140,192,121,128,3,24,2,56,6,88, - 12,88,8,252,24,24,48,60,9,16,32,11,1,250,28,0, - 30,0,12,0,0,0,12,0,12,0,12,0,24,0,56,0, - 112,0,96,0,224,0,227,128,227,128,231,0,126,0,14,20, - 40,14,0,0,8,0,28,0,15,0,3,128,0,0,0,0, - 1,0,7,128,7,128,5,128,13,192,12,192,8,224,24,224, - 31,224,16,112,48,112,48,48,32,56,248,124,14,20,40,14, - 0,0,0,128,0,224,3,192,7,0,0,0,0,0,1,0, - 7,128,7,128,5,128,13,192,12,192,8,224,24,224,31,224, - 16,112,48,112,48,48,32,56,248,124,14,20,40,14,0,0, - 3,0,7,128,15,192,12,96,16,0,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,14,19,38,14,0,0,4,32, - 15,240,27,192,0,0,0,0,1,0,7,128,7,128,5,128, - 13,192,12,192,8,224,24,224,31,224,16,112,48,112,48,48, - 32,56,248,124,14,19,38,14,0,0,8,64,28,224,24,224, - 0,0,0,0,1,0,7,128,7,128,5,128,13,192,12,192, - 8,224,24,224,31,224,16,112,48,112,48,48,32,56,248,124, - 14,20,40,14,0,0,1,128,6,192,6,192,7,128,0,0, - 0,0,1,0,7,128,7,128,5,128,13,192,12,192,8,224, - 24,224,31,224,16,112,48,112,48,48,32,56,248,124,18,14, - 42,19,0,0,7,255,128,1,225,128,3,96,128,3,96,128, - 6,96,0,6,96,0,7,255,0,12,98,0,12,96,0,24, - 96,0,24,96,0,48,96,64,48,96,192,249,255,128,11,19, - 38,13,1,251,15,192,49,192,96,128,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,112,96,63,192,31,128, - 4,0,6,0,3,0,3,0,12,0,12,20,40,12,0,0, - 16,0,56,0,30,0,7,0,0,0,0,0,255,224,56,96, - 56,96,56,64,56,0,56,0,63,192,56,128,56,0,56,0, - 56,0,56,48,56,32,255,224,12,20,40,12,0,0,1,0, - 1,192,7,128,14,0,0,0,0,0,255,224,56,96,56,96, - 56,64,56,0,56,0,63,192,56,128,56,0,56,0,56,0, - 56,48,56,32,255,224,12,20,40,12,0,0,6,0,15,0, - 31,128,48,192,0,0,0,0,255,224,56,96,56,96,56,64, - 56,0,56,0,63,192,56,128,56,0,56,0,56,0,56,48, - 56,32,255,224,12,19,38,12,0,0,16,128,49,192,49,192, - 0,0,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 7,20,20,8,0,0,64,224,112,24,4,0,126,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,20,20,8,1,0, - 8,30,60,96,128,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,252,7,20,20,8,0,0,16,56,124,198,0,0, - 126,24,24,24,24,24,24,24,24,24,24,24,24,126,8,19, - 19,8,255,0,65,99,227,0,0,63,12,12,12,12,12,12, - 12,12,12,12,12,12,63,14,14,28,15,0,0,127,192,240, - 240,48,56,48,24,48,28,48,28,254,28,48,28,48,28,48, - 28,48,24,48,56,48,240,255,192,15,19,38,15,0,0,2, - 32,15,240,11,224,16,0,0,0,248,126,56,24,60,24,62, - 24,54,24,55,24,51,152,49,152,49,216,48,248,48,120,48, - 56,48,56,252,24,12,20,40,14,1,0,16,0,60,0,30, - 0,3,0,0,0,0,0,15,128,48,192,96,96,64,96,192, - 48,192,48,192,48,192,48,192,48,192,48,96,96,96,64,48, - 128,31,0,12,20,40,14,1,0,1,0,1,192,7,128,14, - 0,0,0,0,0,15,128,48,192,96,96,64,96,192,48,192, - 48,192,48,192,48,192,48,192,48,96,96,96,64,48,128,31, - 0,12,20,40,14,1,0,6,0,15,0,15,128,24,192,32, - 0,0,0,15,128,48,192,96,96,64,96,192,48,192,48,192, - 48,192,48,192,48,192,48,96,96,96,64,48,128,31,0,12, - 19,38,14,1,0,8,64,31,224,55,128,0,0,0,0,15, - 128,48,192,96,96,64,96,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,96,64,48,128,31,0,12,19,38,14,1, - 0,16,128,57,192,49,192,0,0,0,0,15,128,48,192,96, - 96,64,96,192,48,192,48,192,48,192,48,192,48,192,48,96, - 96,96,64,48,128,31,0,8,7,7,10,1,3,195,102,60, - 24,60,102,195,12,15,30,14,1,255,15,176,16,224,32,224, - 96,224,193,240,195,112,195,48,198,48,204,48,232,32,120,96, - 112,64,112,128,223,0,128,0,15,20,40,15,0,0,4,0, - 14,0,7,0,1,192,0,0,0,0,252,126,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,24, - 24,48,24,32,7,192,15,20,40,15,0,0,0,64,0,240, - 1,224,3,0,0,0,0,0,252,126,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,24,48, - 24,32,7,192,15,20,40,15,0,0,1,128,3,128,7,192, - 12,96,0,16,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,19,38,15,0,0,4,32,12,112,12,96,0,0, - 0,0,252,126,48,24,48,24,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,24,48,24,32,7,192,13,20, - 40,14,0,0,0,128,0,224,3,192,7,0,0,0,0,0, - 240,120,56,48,28,96,28,96,14,192,6,128,7,128,3,0, - 3,0,3,0,3,0,3,0,3,0,15,192,12,14,28,13, - 0,0,252,0,48,0,48,0,63,192,48,96,48,48,48,48, - 48,48,48,48,48,96,55,192,48,0,48,0,252,0,11,17, - 34,14,1,0,15,128,16,192,32,96,32,96,96,96,96,96, - 97,192,99,0,99,0,99,0,99,192,97,192,96,224,104,96, - 104,96,108,64,239,128,10,17,34,11,1,0,48,0,120,0, - 24,0,12,0,6,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,17, - 34,11,1,0,7,0,7,0,14,0,12,0,24,0,0,0, - 0,0,62,0,99,0,227,0,3,0,63,0,99,0,195,0, - 195,0,255,192,123,0,10,17,34,11,1,0,12,0,30,0, - 62,0,115,0,65,128,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,16, - 32,11,1,0,56,128,124,128,127,0,198,0,0,0,0,0, - 62,0,99,0,227,0,3,0,63,0,99,0,195,0,195,0, - 255,192,123,0,10,15,30,11,1,0,99,0,99,128,99,0, - 0,0,0,0,62,0,99,0,227,0,3,0,63,0,99,0, - 195,0,195,0,255,192,123,0,10,16,32,11,1,0,14,0, - 27,0,26,0,28,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,15,10, - 20,17,1,0,30,120,119,140,227,6,131,6,31,252,99,0, - 195,0,199,132,253,252,112,240,9,15,30,10,1,251,31,0, - 99,128,65,0,192,0,192,0,192,0,192,0,225,0,126,0, - 60,0,16,0,28,0,12,0,12,0,48,0,9,17,34,11, - 1,0,56,0,56,0,28,0,12,0,6,0,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,17,34,11,1,0,7,0,7,128,14,0, - 12,0,24,0,0,0,0,0,30,0,99,0,65,128,193,128, - 255,128,192,0,192,0,225,128,127,0,62,0,9,17,34,11, - 1,0,12,0,30,0,63,0,51,0,96,128,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,15,30,11,1,0,97,128,99,128,99,0, - 0,0,0,0,30,0,99,0,65,128,193,128,255,128,192,0, - 192,0,225,128,127,0,62,0,6,17,17,7,0,0,224,112, - 48,24,8,0,0,56,120,24,24,24,24,24,24,24,124,6, - 17,17,7,1,0,28,60,56,96,64,0,0,112,240,48,48, - 48,48,48,48,48,248,7,17,17,7,0,0,56,56,124,198, - 130,0,0,56,120,24,24,24,24,24,24,24,124,8,15,15, - 7,255,0,99,227,195,0,0,28,60,12,12,12,12,12,12, - 12,62,10,17,34,12,1,0,24,0,125,192,15,128,31,0, - 51,128,3,128,1,192,31,192,97,192,64,192,192,192,192,192, - 192,192,192,128,225,128,113,0,30,0,12,16,32,13,1,0, - 28,64,62,64,63,128,99,0,0,0,0,0,51,128,247,192, - 56,192,48,192,48,192,48,192,48,192,48,192,48,192,249,240, - 10,17,34,12,1,0,56,0,56,0,28,0,6,0,2,0, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,17,34,12,1,0,3,128, - 7,0,6,0,12,0,8,0,0,0,0,0,30,0,33,128, - 65,128,192,192,192,192,192,192,192,192,96,128,113,0,30,0, - 10,17,34,12,1,0,12,0,30,0,31,0,49,128,96,128, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,16,32,12,1,0,24,64, - 60,128,127,128,71,0,0,0,0,0,30,0,33,128,65,128, - 192,192,192,192,192,192,192,192,96,128,113,0,30,0,10,15, - 30,12,1,0,49,128,115,128,97,128,0,0,0,0,30,0, - 33,128,65,128,192,192,192,192,192,192,192,192,96,128,113,0, - 30,0,8,8,8,10,1,2,24,24,16,255,0,24,24,24, - 10,12,24,12,1,255,0,64,30,192,51,128,99,192,199,192, - 196,192,200,192,248,192,113,128,113,0,94,0,128,0,12,17, - 34,13,1,0,56,0,28,0,12,0,6,0,2,0,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,17,34,13,1,0,3,128,7,128, - 6,0,12,0,8,0,0,0,0,0,97,192,224,192,96,192, - 96,192,96,192,96,192,96,192,97,192,127,240,60,192,12,17, - 34,13,1,0,14,0,14,0,31,0,49,128,32,128,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,15,30,13,1,0,49,128,113,128, - 97,128,0,0,0,0,97,192,224,192,96,192,96,192,96,192, - 96,192,96,192,97,192,127,240,60,192,13,22,44,12,255,251, - 0,192,1,224,1,128,3,0,6,0,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0,11,22,44,13, - 1,251,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 51,128,63,192,56,224,48,96,48,96,48,96,48,96,48,192, - 63,128,55,0,48,0,48,0,48,0,48,0,252,0,13,20, - 40,12,255,251,24,96,28,224,24,192,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14n[448] U8G_SECTION(".progmem.u8g_font_gdb14n") = { - 0,36,33,244,248,14,0,0,0,0,42,57,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,219,0,255,128,60, - 0,62,0,255,0,219,0,24,0,24,0,8,8,8,10,1, - 2,24,24,24,255,24,24,24,24,4,7,7,6,1,252,48, - 240,48,48,32,96,64,7,1,1,8,1,5,254,4,3,3, - 6,1,0,96,240,224,11,22,44,11,0,252,0,96,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,12,0,12,0,28,0,24,0,24,0,56,0,48,0, - 48,0,96,0,96,0,192,0,10,14,28,12,1,0,30,0, - 51,0,97,128,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,97,128,97,128,51,0,30,0,8,14,14,12,2,0, - 8,120,248,24,24,24,24,24,24,24,24,24,24,255,8,14, - 14,11,2,0,62,103,227,195,3,6,4,12,24,48,33,65, - 255,255,9,14,28,11,1,0,30,0,99,0,227,0,67,0, - 3,0,6,0,31,0,7,128,3,128,1,128,1,128,1,128, - 67,0,190,0,10,14,28,12,1,0,1,0,7,0,7,0, - 15,0,27,0,19,0,51,0,99,0,99,0,255,192,3,0, - 3,0,3,0,15,192,9,14,28,12,1,0,63,128,63,0, - 32,0,96,0,96,0,126,0,67,0,1,128,1,128,1,128, - 1,128,1,128,195,0,62,0,10,14,28,12,1,0,7,0, - 28,0,48,0,96,0,64,0,223,0,225,128,192,192,192,192, - 192,192,192,192,96,128,49,128,30,0,10,14,28,12,1,0, - 127,192,255,128,129,128,129,128,3,0,3,0,2,0,6,0, - 6,0,12,0,12,0,24,0,56,0,48,0,9,14,28,11, - 1,0,62,0,113,128,241,128,241,128,249,128,127,0,63,0, - 63,128,99,128,193,128,193,128,193,128,99,0,62,0,10,14, - 28,12,1,0,31,0,35,128,65,128,192,192,192,192,192,192, - 192,192,97,192,62,192,0,128,1,128,3,0,14,0,56,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14r[2842] U8G_SECTION(".progmem.u8g_font_gdb14r") = { - 0,36,33,244,248,14,3,134,7,177,32,127,251,19,251,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17[7600] U8G_SECTION(".progmem.u8g_font_gdb17") = { - 0,42,39,242,246,17,4,81,9,172,32,255,250,23,249,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,7,0,0,4,19,19,8,2,249, - 112,240,240,224,32,96,96,96,96,96,96,112,112,112,240,240, - 240,240,192,10,17,34,14,2,255,12,0,12,0,15,128,63, - 192,109,192,108,192,204,0,204,0,204,0,204,0,204,0,236, - 64,125,192,63,128,30,0,12,0,12,0,13,16,32,14,0, - 0,3,240,6,56,12,16,28,16,28,16,60,0,60,0,60, - 0,255,192,60,0,60,0,60,16,56,24,56,24,127,248,255, - 240,12,11,22,14,1,2,192,48,239,112,112,224,96,96,96, - 96,96,96,96,96,112,224,111,96,192,48,128,16,15,16,32, - 14,255,0,248,126,120,56,60,48,30,48,30,96,15,96,7, - 192,7,192,7,192,3,128,63,248,3,128,3,128,3,128,3, - 128,15,224,2,27,27,6,2,251,192,192,192,192,192,192,192, - 192,192,192,192,192,128,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,10,19,38,13,2,0,31,0,35,128,97,0, - 113,0,120,0,62,0,127,128,207,128,195,192,225,192,240,192, - 124,192,63,128,31,128,7,128,65,128,65,128,97,0,126,0, - 9,4,8,11,1,14,115,128,247,128,247,128,231,0,18,18, - 54,20,1,0,3,240,0,14,28,0,24,6,0,48,3,0, - 97,241,128,102,57,128,198,16,192,204,0,192,204,0,192,204, - 0,192,204,0,192,204,0,192,102,1,128,103,25,128,49,243, - 0,24,6,0,12,12,0,3,240,0,6,9,9,7,1,8, - 120,216,24,120,216,216,252,0,252,11,12,24,14,1,0,4, - 32,8,96,24,192,49,192,115,128,231,128,231,128,115,128,49, - 192,24,192,8,96,4,32,12,6,12,14,1,2,127,240,128, - 48,0,48,0,48,0,48,0,32,8,1,1,10,1,6,255, - 10,9,18,10,255,10,30,0,97,128,255,128,219,192,222,192, - 220,192,251,192,97,128,30,0,11,2,4,13,1,16,127,224, - 255,224,6,7,7,10,2,10,56,76,204,204,204,200,112,10, - 12,24,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,0,0,0,0,255,192,7,10,10, - 9,1,8,60,102,230,6,12,24,16,50,98,254,7,10,10, - 9,1,8,60,102,70,6,28,6,6,6,142,120,6,6,6, - 9,3,14,56,60,112,96,192,128,15,18,36,15,0,250,24, - 24,248,120,56,56,56,56,56,56,56,56,56,56,56,56,60, - 120,63,248,63,190,55,24,48,0,48,0,56,0,56,0,60, - 0,48,0,15,20,40,17,1,253,15,254,49,248,113,152,225, - 152,225,152,225,152,225,152,113,152,121,152,31,152,1,152,1, - 152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,7, - 254,4,4,4,6,1,7,112,240,240,224,5,6,6,6,1, - 250,32,96,120,56,112,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,7,9,9,8,0,8,56,76,198, - 198,198,228,120,0,254,11,12,24,14,2,0,132,0,198,0, - 99,0,115,128,57,192,61,224,61,224,57,192,115,128,99,0, - 198,0,132,0,15,16,32,17,1,0,48,6,240,12,48,24, - 48,48,48,48,48,96,48,192,253,128,1,140,3,28,6,44, - 12,44,12,76,24,254,48,12,96,62,15,16,32,17,1,0, - 48,6,240,12,48,24,48,24,48,48,48,96,48,192,252,192, - 1,188,3,102,6,70,6,12,12,8,24,16,48,34,112,126, - 15,16,32,17,1,0,56,6,204,12,12,24,56,48,12,48, - 12,96,140,192,121,128,1,140,3,28,6,60,12,44,12,76, - 24,254,48,12,96,62,10,19,38,12,1,249,14,0,30,0, - 30,0,28,0,0,0,6,0,6,0,6,0,14,0,12,0, - 24,0,56,0,112,0,224,0,224,192,225,192,225,192,243,128, - 62,0,17,23,69,17,0,0,6,0,0,15,0,0,7,128, - 0,1,192,0,0,96,0,0,0,0,0,192,0,1,192,0, - 3,192,0,3,224,0,2,224,0,6,240,0,6,112,0,6, - 112,0,12,120,0,12,56,0,15,248,0,24,28,0,24,28, - 0,16,28,0,48,14,0,48,14,0,252,63,128,17,23,69, - 17,0,0,0,48,0,0,120,0,1,224,0,3,128,0,2, - 0,0,0,0,0,0,192,0,1,192,0,3,192,0,3,224, - 0,2,224,0,6,240,0,6,112,0,6,112,0,12,120,0, - 12,56,0,15,248,0,24,28,0,24,28,0,16,28,0,48, - 14,0,48,14,0,252,63,128,17,23,69,17,0,0,1,192, - 0,3,224,0,7,240,0,14,48,0,8,24,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,22,66,17,0,0,7,140,0,15,248,0,15, - 240,0,16,96,0,0,0,0,0,192,0,1,192,0,3,192, - 0,3,224,0,2,224,0,6,240,0,6,112,0,6,112,0, - 12,120,0,12,56,0,15,248,0,24,28,0,24,28,0,16, - 28,0,48,14,0,48,14,0,252,63,128,17,22,66,17,0, - 0,7,56,0,15,120,0,15,120,0,6,48,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,23,69,17,0,0,3,224,0,6,96,0,6, - 96,0,7,96,0,3,128,0,0,0,0,0,192,0,1,192, - 0,3,192,0,3,224,0,2,224,0,6,240,0,6,112,0, - 6,112,0,12,120,0,12,56,0,15,248,0,24,28,0,24, - 28,0,16,28,0,48,14,0,48,14,0,252,63,128,21,17, - 51,22,0,0,7,255,240,1,248,48,1,248,48,3,184,48, - 3,184,48,3,56,0,7,56,0,6,56,0,7,255,224,12, - 56,64,12,56,0,28,56,0,24,56,0,24,56,8,48,56, - 24,48,56,24,248,255,248,14,23,46,15,1,250,7,240,24, - 120,48,48,112,0,96,0,96,0,224,0,224,0,224,0,224, - 0,224,0,240,0,112,0,120,8,60,60,63,240,15,192,1, - 0,3,128,3,192,1,192,3,128,6,0,13,23,46,14,1, - 0,24,0,60,0,94,0,7,0,1,128,0,0,255,240,120, - 48,120,48,120,32,120,32,120,0,120,0,120,0,127,192,120, - 128,120,0,120,0,120,0,120,16,120,24,120,48,255,240,13, - 23,46,14,1,0,1,192,3,224,7,128,14,0,24,0,0, - 0,255,240,120,48,120,48,120,32,120,32,120,0,120,0,120, - 0,127,192,120,128,120,0,120,0,120,0,120,16,120,24,120, - 48,255,240,13,23,46,14,1,0,7,0,15,0,31,128,56, - 192,32,96,0,0,255,240,120,48,120,48,120,32,120,32,120, - 0,120,0,120,0,127,192,120,128,120,0,120,0,120,0,120, - 16,120,24,120,48,255,240,13,22,44,14,1,0,28,224,61, - 224,61,224,24,192,0,0,255,240,120,48,120,48,120,32,120, - 32,120,0,120,0,120,0,127,192,120,128,120,0,120,0,120, - 0,120,16,120,24,120,48,255,240,8,23,23,9,0,0,96, - 240,120,28,6,0,127,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,127,8,23,23,9,1,0,6,31,60,112, - 64,0,254,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,9,23,46,9,0,0,28,0,62,0,126,0,227, - 0,129,128,0,0,127,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,127,0,9,22,44,9,0,0,115,128,247, - 128,247,128,99,0,0,0,127,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,127,0,16,17,34,17,0,0,63, - 224,248,120,56,60,56,30,56,30,56,15,56,15,56,15,255, - 143,56,15,56,15,56,15,56,30,56,30,56,60,56,120,255, - 224,18,22,66,18,0,0,3,204,0,7,248,0,15,248,0, - 8,112,0,0,0,0,248,15,192,124,3,0,60,3,0,62, - 3,0,63,3,0,55,131,0,51,195,0,51,195,0,49,227, - 0,48,243,0,48,123,0,48,123,0,48,63,0,48,31,0, - 48,15,0,48,7,0,252,3,0,15,23,46,17,1,0,12, - 0,30,0,15,0,3,128,0,64,0,0,7,192,24,112,48, - 56,48,28,96,28,96,14,224,14,224,14,224,14,224,14,224, - 14,224,12,112,28,112,24,56,24,28,32,7,192,15,23,46, - 17,1,0,0,96,0,240,3,224,7,0,4,0,0,0,7, - 192,24,112,48,56,48,28,96,28,96,14,224,14,224,14,224, - 14,224,14,224,14,224,12,112,28,112,24,56,24,28,32,7, - 192,15,23,46,17,1,0,3,128,7,192,15,224,28,96,16, - 48,0,0,7,192,24,112,48,56,48,28,96,28,96,14,224, - 14,224,14,224,14,224,14,224,14,224,12,112,28,112,24,56, - 24,28,32,7,192,15,22,44,17,1,0,15,24,31,240,31, - 224,48,192,0,0,7,192,24,112,48,56,48,28,96,28,96, - 14,224,14,224,14,224,14,224,14,224,14,224,12,112,28,112, - 24,56,24,28,32,7,192,15,22,44,17,1,0,14,112,30, - 240,30,240,12,96,0,0,7,192,24,112,48,56,48,28,96, - 28,96,14,224,14,224,14,224,14,224,14,224,14,224,12,112, - 28,112,24,56,24,28,32,7,192,9,9,18,11,1,3,193, - 128,227,128,119,0,62,0,28,0,62,0,119,0,227,128,193, - 128,15,18,36,17,1,255,7,238,8,124,56,56,48,60,112, - 124,96,254,224,238,225,206,227,142,227,14,231,14,254,12,124, - 28,124,24,56,48,124,32,239,192,128,0,17,23,69,18,0, - 0,3,0,0,7,128,0,3,192,0,0,224,0,0,48,0, - 0,0,0,254,31,128,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,4,0,28,12,0, - 14,24,0,3,224,0,17,23,69,18,0,0,0,56,0,0, - 124,0,0,240,0,1,192,0,3,0,0,0,0,0,254,31, - 128,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,4,0,28,12,0,14,24,0,3,224, - 0,17,23,69,18,0,0,0,224,0,1,224,0,3,240,0, - 7,24,0,4,12,0,0,0,0,254,31,128,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,4,0,28,12,0,14,24,0,3,224,0,17,22,66,18, - 0,0,3,156,0,7,188,0,7,188,0,3,24,0,0,0, - 0,254,31,128,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,4,0,28,12,0,14,24, - 0,3,224,0,16,23,46,17,0,0,0,48,0,248,1,224, - 3,128,2,0,0,0,248,31,60,14,28,12,14,24,15,24, - 7,48,7,48,3,224,3,224,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,7,240,14,17,34,15,0,0,254,0, - 56,0,56,0,63,192,56,112,56,56,56,28,56,28,56,28, - 56,28,56,56,56,112,59,224,56,0,56,0,56,0,254,0, - 15,20,40,17,0,0,1,240,6,60,12,28,24,14,24,14, - 56,14,56,28,56,56,56,96,56,192,56,192,56,224,56,120, - 56,60,56,30,56,14,57,6,57,134,57,132,249,248,12,20, - 40,13,1,0,56,0,60,0,28,0,14,0,6,0,3,0, - 0,0,0,0,31,128,113,192,241,192,129,192,3,192,63,192, - 113,192,225,192,225,192,227,240,253,224,121,128,12,20,40,13, - 1,0,3,192,3,192,7,128,7,0,14,0,12,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,12,20,40,13,1,0, - 6,0,15,0,31,0,59,128,48,192,96,64,0,0,0,0, - 31,128,113,192,241,192,129,192,3,192,63,192,113,192,225,192, - 225,192,227,240,253,224,121,128,12,19,38,13,1,0,0,32, - 28,96,63,192,71,192,67,128,0,0,0,0,31,128,113,192, - 241,192,129,192,3,192,63,192,113,192,225,192,225,192,227,240, - 253,224,121,128,12,18,36,13,1,0,57,192,61,224,57,192, - 57,192,0,0,0,0,31,128,113,192,241,192,129,192,3,192, - 63,192,113,192,225,192,225,192,227,240,253,224,121,128,12,19, - 38,13,1,0,15,0,27,0,25,128,27,0,30,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,18,12,36,20,1,0, - 7,158,0,31,227,0,56,225,128,112,193,128,64,193,128,15, - 255,0,56,192,0,96,192,0,224,224,128,227,241,192,254,127, - 0,124,62,0,11,18,36,12,1,250,15,224,48,192,112,192, - 96,64,224,0,224,0,224,0,224,0,240,64,120,192,63,128, - 31,0,4,0,14,0,15,0,7,0,14,0,24,0,11,20, - 40,13,1,0,60,0,60,0,30,0,14,0,7,0,1,0, - 0,0,0,0,15,0,49,192,112,192,96,224,224,224,255,192, - 224,0,224,0,240,64,120,224,63,192,31,0,11,20,40,13, - 1,0,1,192,3,192,3,128,7,0,6,0,12,0,0,0, - 0,0,15,0,49,192,112,192,96,224,224,224,255,192,224,0, - 224,0,240,64,120,224,63,192,31,0,11,20,40,13,1,0, - 6,0,15,0,31,128,29,128,48,192,32,96,0,0,0,0, - 15,0,49,192,112,192,96,224,224,224,255,192,224,0,224,0, - 240,64,120,224,63,192,31,0,11,18,36,13,1,0,24,192, - 61,224,61,224,57,192,0,0,0,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,8,20,20,8,0,0,240,240,120,24,12,4,0,0, - 28,124,28,28,28,28,28,28,28,28,28,127,7,20,20,8, - 1,0,14,30,28,56,48,96,0,0,56,248,56,56,56,56, - 56,56,56,56,56,254,9,20,40,8,0,0,24,0,60,0, - 126,0,118,0,195,0,129,128,0,0,0,0,28,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,127,0,9,18,36,8,0,0,115,128,247,128,247,128, - 231,0,0,0,0,0,28,0,124,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,127,0,12,19, - 38,14,1,0,12,0,126,112,15,224,15,128,61,192,0,224, - 0,224,15,224,49,240,96,240,96,112,224,112,224,112,224,112, - 224,96,224,96,112,192,56,128,31,0,15,19,38,16,1,0, - 0,16,14,48,31,224,51,224,33,192,0,0,0,0,24,240, - 251,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,12,20,40,14,1,0,28,0,60,0, - 14,0,6,0,3,0,1,128,0,0,0,0,15,128,49,192, - 112,224,96,112,224,112,224,112,224,112,224,112,224,96,112,96, - 56,192,31,0,12,20,40,14,1,0,1,192,3,224,3,128, - 7,0,6,0,12,0,0,0,0,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,12,20,40,14,1,0,7,0,15,0,15,128,29,192, - 56,192,32,96,0,0,0,0,15,128,49,192,112,224,96,112, - 224,112,224,112,224,112,224,112,224,96,112,96,56,192,31,0, - 12,19,38,14,1,0,0,48,30,32,63,224,39,192,65,128, - 0,0,0,0,15,128,49,192,112,224,96,112,224,112,224,112, - 224,112,224,112,224,96,112,96,56,192,31,0,12,18,36,14, - 1,0,28,224,61,224,61,224,24,192,0,0,0,0,15,128, - 49,192,112,224,96,112,224,112,224,112,224,112,224,112,224,96, - 112,96,56,192,31,0,10,10,20,11,1,2,12,0,12,0, - 12,0,0,0,255,192,0,0,0,0,12,0,12,0,12,0, - 12,14,28,14,1,255,0,16,15,176,49,224,112,224,97,240, - 227,112,230,112,230,112,236,112,248,96,112,224,120,192,95,0, - 128,0,15,20,40,15,0,0,14,0,15,0,7,0,3,128, - 1,128,0,192,0,0,0,0,56,56,248,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,250,63,190,30,56, - 15,20,40,15,0,0,0,224,0,240,1,192,1,128,3,0, - 2,0,0,0,0,0,56,56,248,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,250,63,190,30,56,15,20, - 40,15,0,0,3,128,3,192,7,192,14,224,28,112,24,16, - 0,0,0,0,56,56,248,248,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,250,63,190,30,56,15,18,36,15, - 0,0,14,112,14,112,30,240,14,112,0,0,0,0,56,56, - 248,248,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,250,63,190,30,56,15,26,52,14,255,250,0,112,0,240, - 0,224,1,192,1,128,3,0,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0, - 13,26,52,15,1,250,24,0,248,0,56,0,56,0,56,0, - 56,0,56,0,56,0,57,224,63,240,60,112,56,56,56,24, - 56,24,56,24,56,24,56,16,60,48,63,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,15,24,48,14,255,250, - 7,56,15,120,15,120,14,112,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=12 h=25 x= 2 y= 9 dx=14 dy= 0 ascent=21 len=50 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17n[542] U8G_SECTION(".progmem.u8g_font_gdb17n") = { - 0,42,39,242,246,16,0,0,0,0,42,57,0,21,251,16, - 0,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=14 dx=23 dy= 0 ascent=22 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17r[3540] U8G_SECTION(".progmem.u8g_font_gdb17r") = { - 0,42,39,242,246,17,4,81,9,172,32,127,250,22,250,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=18 dx=28 dy= 0 ascent=28 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20[10077] U8G_SECTION(".progmem.u8g_font_gdb20") = { - 0,49,47,240,244,20,5,86,12,137,32,255,248,28,247,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,5,24, - 24,10,2,247,112,248,248,248,112,0,0,48,48,48,48,112, - 112,112,112,120,120,120,120,120,120,120,120,96,13,20,40,16, - 2,255,3,0,3,0,3,0,15,248,31,248,59,56,115,16, - 227,0,227,0,227,0,227,0,227,0,227,0,115,24,123,48, - 63,224,31,192,3,0,3,0,3,0,14,19,38,16,1,0, - 1,252,6,60,14,28,28,12,28,8,60,0,60,0,60,0, - 60,0,255,224,60,0,60,0,60,0,60,4,56,4,56,12, - 127,252,255,252,128,48,12,13,26,16,2,3,192,48,239,112, - 112,224,48,192,96,96,96,96,96,96,96,96,112,224,57,192, - 111,96,192,48,128,16,18,19,57,16,255,0,248,31,192,252, - 15,128,62,6,0,30,14,0,31,12,0,15,156,0,7,152, - 0,7,248,0,3,240,0,3,240,0,3,240,0,1,224,0, - 63,255,0,1,224,0,1,224,0,1,224,0,1,224,0,3, - 240,0,7,248,0,2,32,32,7,3,250,64,192,192,192,192, - 192,192,192,192,192,192,192,192,192,128,0,0,64,192,192,192, - 192,192,192,192,192,192,192,192,192,192,128,12,22,44,16,2, - 0,15,192,49,224,112,224,112,64,124,0,126,0,63,128,127, - 192,99,224,225,240,224,240,240,112,252,112,127,112,63,224,31, - 192,7,224,65,224,64,224,224,224,240,192,127,0,11,5,10, - 13,1,17,112,224,241,224,241,224,241,224,225,192,21,21,63, - 23,1,0,1,252,0,7,7,0,12,1,128,24,0,192,48, - 126,96,96,199,48,97,134,48,195,2,24,199,0,24,199,0, - 24,199,0,24,199,0,24,199,0,24,199,128,24,99,199,48, - 97,252,48,48,248,96,16,0,64,8,1,128,6,3,0,1, - 252,0,7,11,11,9,1,9,60,204,140,60,108,204,206,252, - 0,0,254,14,15,30,16,1,0,2,8,6,28,12,56,28, - 112,56,112,120,224,241,224,243,192,241,224,120,224,56,112,28, - 112,12,56,6,24,2,12,13,7,14,16,2,3,255,248,255, - 248,0,24,0,24,0,24,0,24,0,16,10,2,4,11,1, - 7,255,192,255,128,12,11,22,11,0,11,31,128,48,192,126, - 96,219,48,219,48,222,48,219,48,217,48,100,224,48,192,31, - 128,14,3,6,16,1,18,127,248,127,252,255,248,7,8,8, - 11,2,12,60,126,70,198,198,204,252,120,12,15,30,13,1, - 2,6,0,6,0,6,0,6,0,6,0,127,240,255,224,6, - 0,6,0,6,0,6,0,4,0,0,0,255,240,255,224,8, - 11,11,11,2,10,62,115,227,3,6,6,12,24,49,97,255, - 9,11,22,11,1,10,62,0,231,0,231,0,7,0,28,0, - 63,0,7,128,3,128,3,128,199,0,126,0,8,8,8,10, - 3,16,28,30,63,60,120,112,224,192,18,23,69,19,1,248, - 28,6,0,252,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,62,62,0,63,255,128,63,223,192,51,142,0,48,0,0, - 48,0,0,56,0,0,56,0,0,56,0,0,60,0,0,62, - 0,0,48,0,0,17,24,72,19,1,252,15,255,128,60,127, - 0,120,102,0,112,102,0,240,102,0,240,102,0,240,102,0, - 240,102,0,120,102,0,120,102,0,60,102,0,15,230,0,0, - 102,0,0,102,0,0,102,0,0,102,0,0,102,0,0,102, - 0,0,102,0,0,102,0,0,102,0,0,102,0,0,255,0, - 1,255,128,5,5,5,7,1,8,112,248,248,248,112,7,7, - 7,7,0,249,24,48,60,62,30,60,240,8,11,11,11,2, - 10,8,248,24,24,24,24,24,24,24,24,255,7,11,11,9, - 1,9,56,76,198,198,198,198,198,108,56,0,254,13,15,30, - 16,2,0,129,0,195,128,97,128,112,192,56,224,60,112,30, - 120,30,120,30,120,60,112,56,224,112,192,97,192,193,128,131, - 0,17,19,57,20,2,0,48,3,128,240,3,0,48,6,0, - 48,12,0,48,28,0,48,24,0,48,48,0,48,96,0,120, - 224,0,132,193,0,1,135,0,3,15,0,7,11,0,6,19, - 0,12,51,0,24,63,128,56,67,0,48,3,0,224,15,128, - 17,19,57,20,2,0,48,1,128,240,3,0,48,7,0,48, - 6,0,48,12,0,48,24,0,48,56,0,48,48,0,120,96, - 0,132,192,0,1,207,0,1,153,128,3,49,128,7,1,0, - 14,3,0,12,6,0,24,12,0,56,24,128,112,63,128,18, - 19,57,20,1,0,60,1,192,102,1,128,70,3,0,12,6, - 0,28,14,0,6,12,0,6,24,0,134,48,0,124,112,0, - 0,96,128,0,195,128,1,135,128,3,133,128,3,9,128,6, - 25,128,12,31,192,28,33,128,24,1,128,112,7,192,13,23, - 46,15,1,248,7,0,15,128,15,128,15,128,7,0,0,0, - 0,0,3,0,3,0,3,0,7,0,6,0,14,0,28,0, - 60,0,120,0,112,0,240,24,240,120,240,120,240,120,120,240, - 63,192,20,28,84,20,0,0,3,0,0,7,128,0,7,192, - 0,15,224,0,1,224,0,0,112,0,0,24,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,20,28,84,20, - 0,0,0,8,0,0,30,0,0,62,0,0,124,0,0,240, - 0,1,224,0,1,128,0,0,0,0,0,32,0,0,240,0, - 0,240,0,1,248,0,1,248,0,1,248,0,3,188,0,3, - 60,0,3,60,0,7,30,0,6,30,0,14,31,0,15,255, - 0,12,7,0,28,7,128,24,7,128,24,3,128,56,3,192, - 56,3,192,254,15,240,20,27,81,20,0,0,0,224,0,0, - 240,0,1,248,0,3,252,0,7,14,0,4,6,0,0,0, - 0,0,32,0,0,240,0,0,240,0,1,248,0,1,248,0, - 1,248,0,3,188,0,3,60,0,3,60,0,7,30,0,6, - 30,0,14,31,0,15,255,0,12,7,0,28,7,128,24,7, - 128,24,3,128,56,3,192,56,3,192,254,15,240,20,26,78, - 20,0,0,3,195,0,7,254,0,7,254,0,12,124,0,8, - 0,0,0,0,0,0,32,0,0,240,0,0,240,0,1,248, - 0,1,248,0,1,248,0,3,188,0,3,60,0,3,60,0, - 7,30,0,6,30,0,14,31,0,15,255,0,12,7,0,28, - 7,128,24,7,128,24,3,128,56,3,192,56,3,192,254,15, - 240,20,26,78,20,0,0,6,12,0,15,30,0,15,30,0, - 15,30,0,14,28,0,0,0,0,0,32,0,0,240,0,0, - 240,0,1,248,0,1,248,0,1,248,0,3,188,0,3,60, - 0,3,60,0,7,30,0,6,30,0,14,31,0,15,255,0, - 12,7,0,28,7,128,24,7,128,24,3,128,56,3,192,56, - 3,192,254,15,240,20,27,81,20,0,0,0,112,0,1,152, - 0,1,152,0,1,144,0,0,224,0,0,0,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,25,20,80,26, - 0,0,3,255,255,0,0,255,3,0,0,255,3,0,0,239, - 3,0,0,239,3,0,1,207,0,0,1,207,0,0,3,143, - 0,0,3,143,0,0,3,255,254,0,7,15,4,0,6,15, - 0,0,14,15,0,0,14,15,0,0,12,15,0,0,28,15, - 0,0,24,15,0,128,24,15,1,128,56,31,1,128,254,63, - 255,128,16,27,54,18,1,249,1,254,6,31,28,14,56,4, - 56,0,112,0,112,0,240,0,240,0,240,0,240,0,240,0, - 240,0,248,0,120,0,124,1,126,7,63,254,31,252,15,240, - 0,192,1,192,1,240,0,240,0,240,1,224,3,128,15,28, - 56,17,1,0,8,0,28,0,62,0,31,0,7,128,1,192, - 0,64,0,0,255,252,124,12,60,12,60,12,60,12,60,0, - 60,0,60,0,60,0,63,240,60,32,60,0,60,0,60,0, - 60,0,60,0,60,2,60,6,124,14,255,254,15,28,56,17, - 1,0,0,96,0,240,1,248,1,240,3,192,7,0,12,0, - 0,0,255,252,124,12,60,12,60,12,60,12,60,0,60,0, - 60,0,60,0,63,240,60,32,60,0,60,0,60,0,60,0, - 60,0,60,2,60,6,124,14,255,254,15,27,54,17,1,0, - 3,128,7,192,15,192,31,224,28,112,48,24,0,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,2, - 60,6,124,14,255,254,15,26,52,17,1,0,56,112,56,112, - 120,240,120,240,48,96,0,0,255,252,124,12,60,12,60,12, - 60,12,60,0,60,0,60,0,60,0,63,240,60,32,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 9,28,56,10,0,0,32,0,240,0,248,0,124,0,30,0, - 15,0,3,0,0,0,127,128,63,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,127,128,10,28, - 56,10,1,0,2,0,7,128,15,192,31,0,62,0,120,0, - 96,0,0,0,255,0,126,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,10,27,54,10, - 0,0,12,0,30,0,63,0,127,128,225,192,192,64,0,0, - 127,128,63,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,127,128,11,26,52,10,255,0,112,224, - 241,224,241,224,241,224,96,192,0,0,63,192,31,128,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,31,128, - 63,192,18,20,60,20,1,0,63,240,0,252,60,0,60,14, - 0,60,15,0,60,7,128,60,7,128,60,3,192,60,3,192, - 60,3,192,255,195,192,60,3,192,60,3,192,60,3,192,60, - 3,128,60,7,128,60,7,128,60,15,0,60,14,0,124,28, - 0,255,240,0,19,26,78,21,1,0,3,195,0,7,254,0, - 15,252,0,12,120,0,24,0,0,0,0,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,28,84,20,1,0,2,0, - 0,15,0,0,15,128,0,7,192,0,3,224,0,0,240,0, - 0,48,0,0,0,0,3,240,0,12,28,0,28,14,0,56, - 7,0,56,7,128,112,7,128,112,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,248,3,128, - 120,7,128,120,7,0,60,15,0,30,30,0,15,248,0,3, - 224,0,18,28,84,20,1,0,0,16,0,0,60,0,0,124, - 0,0,248,0,1,224,0,3,192,0,3,0,0,0,0,0, - 3,240,0,12,28,0,28,14,0,56,7,0,56,7,128,112, - 7,128,112,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,248,3,128,120,7,128,120,7,0, - 60,15,0,30,30,0,15,248,0,3,224,0,18,27,81,20, - 1,0,0,192,0,1,224,0,3,240,0,7,248,0,14,28, - 0,8,12,0,0,0,0,3,240,0,12,28,0,28,14,0, - 56,7,0,56,7,128,112,7,128,112,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,248,3, - 128,120,7,128,120,7,0,60,15,0,30,30,0,15,248,0, - 3,224,0,18,26,78,20,1,0,3,198,0,15,252,0,15, - 252,0,24,120,0,16,0,0,0,0,0,3,240,0,12,28, - 0,28,14,0,56,7,0,56,7,128,112,7,128,112,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,248,3,128,120,7,128,120,7,0,60,15,0,30,30, - 0,15,248,0,3,224,0,18,26,78,20,1,0,14,28,0, - 30,60,0,30,60,0,30,60,0,28,56,0,0,0,0,3, - 240,0,12,28,0,28,14,0,56,7,0,56,7,128,112,7, - 128,112,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,248,3,128,120,7,128,120,7,0,60, - 15,0,30,30,0,15,248,0,3,224,0,11,10,20,13,1, - 4,96,96,240,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,96,18,21,63,20,1,255,3,241,192,12,31, - 128,28,15,0,56,15,0,56,31,128,112,63,128,112,63,192, - 240,123,192,240,243,192,240,227,192,241,195,192,241,195,192,243, - 131,192,247,3,128,126,7,128,126,7,0,60,7,0,62,14, - 0,127,248,0,227,224,0,128,0,0,19,28,84,21,1,0, - 3,0,0,7,128,0,15,192,0,7,192,0,1,224,0,0, - 112,0,0,24,0,0,0,0,255,7,224,126,3,192,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,3,0,30,3,0,15,6,0,7,252, - 0,3,240,0,19,28,84,21,1,0,0,8,0,0,30,0, - 0,62,0,0,124,0,0,240,0,1,192,0,1,128,0,0, - 0,0,255,7,224,126,3,192,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 3,0,30,3,0,15,6,0,7,252,0,3,240,0,19,27, - 81,21,1,0,0,224,0,0,240,0,1,248,0,3,252,0, - 7,14,0,12,6,0,0,0,0,255,7,224,126,3,192,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,3,0,30,3,0,15,6,0,7, - 252,0,3,240,0,19,26,78,21,1,0,6,12,0,15,30, - 0,15,30,0,15,30,0,14,28,0,0,0,0,255,7,224, - 126,3,192,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,3,0,30,3,0, - 15,6,0,7,252,0,3,240,0,19,28,84,20,0,0,0, - 8,0,0,30,0,0,62,0,0,124,0,0,240,0,1,192, - 0,1,128,0,0,0,0,252,7,224,60,3,192,30,3,128, - 15,3,0,15,7,0,7,134,0,3,142,0,3,204,0,1, - 220,0,1,248,0,0,248,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,1,248,0, - 3,252,0,16,20,40,18,1,0,255,128,126,0,60,0,60, - 0,63,240,60,60,60,30,60,15,60,15,60,15,60,15,60, - 14,60,30,60,60,63,240,60,0,60,0,60,0,126,0,255, - 128,18,24,72,21,1,0,0,248,0,3,254,0,15,31,0, - 14,15,128,28,7,128,28,7,128,60,7,128,60,7,128,60, - 15,0,60,60,0,60,112,0,60,224,0,60,224,0,60,240, - 0,60,252,0,60,127,0,60,63,128,60,15,192,60,7,192, - 61,3,192,60,129,192,60,193,128,124,225,128,252,254,0,14, - 24,48,16,1,0,28,0,62,0,30,0,15,0,7,0,3, - 128,1,128,0,192,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,14,24,48,16,1,0,0,224,1,240,1, - 224,3,192,3,128,3,0,7,0,6,0,0,0,31,192,112, - 224,240,240,192,240,0,240,3,240,31,240,63,240,120,240,240, - 240,240,240,240,240,251,252,126,248,56,96,14,23,46,16,1, - 0,3,128,7,128,15,192,31,224,28,224,56,48,32,16,0, - 0,31,192,112,224,240,240,192,240,0,240,3,240,31,240,63, - 240,120,240,240,240,240,240,240,240,251,252,126,248,56,96,14, - 22,44,16,1,0,14,8,31,24,63,240,99,240,64,224,0, - 0,0,0,31,192,112,224,240,240,192,240,0,240,3,240,31, - 240,63,240,120,240,240,240,240,240,240,240,251,252,126,248,56, - 96,14,22,44,16,1,0,56,112,120,240,120,240,120,240,48, - 96,0,0,0,0,31,192,112,224,240,240,192,240,0,240,3, - 240,31,240,63,240,120,240,240,240,240,240,240,240,251,252,126, - 248,56,96,14,22,44,16,1,0,3,128,4,192,12,192,12, - 192,7,128,0,0,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,22,15,45,23,1,0,3,227,224,31,252, - 112,60,252,56,120,120,60,112,120,60,128,120,60,7,255,248, - 28,120,0,120,120,0,112,120,0,240,124,8,249,254,28,255, - 191,248,127,31,240,60,7,192,14,22,44,15,1,249,3,248, - 12,120,56,48,112,16,112,0,240,0,240,0,240,0,240,0, - 240,0,248,8,124,28,63,248,31,240,15,192,3,0,3,192, - 3,224,5,224,1,224,3,192,14,0,13,24,48,15,1,0, - 14,0,30,0,31,0,15,0,7,128,3,128,1,192,0,192, - 0,0,7,192,24,224,56,112,112,120,112,120,240,120,255,240, - 240,0,240,0,240,0,248,8,124,56,127,240,63,224,15,128, - 13,24,48,15,1,0,0,224,0,240,1,240,1,224,3,192, - 3,128,7,0,6,0,0,0,7,192,24,224,56,112,112,120, - 112,120,240,120,255,240,240,0,240,0,240,0,248,8,124,56, - 127,240,63,224,15,128,13,23,46,15,1,0,3,128,7,192, - 15,192,15,224,28,112,56,48,48,24,0,0,7,192,24,224, - 56,112,112,120,112,120,240,120,255,240,240,0,240,0,240,0, - 248,8,124,56,127,240,63,224,15,128,13,22,44,15,1,0, - 56,112,56,112,120,240,120,240,48,96,0,0,0,0,7,192, - 24,224,56,112,112,120,112,120,240,120,255,240,240,0,240,0, - 240,0,248,8,124,56,127,240,63,224,15,128,9,24,48,10, - 0,0,112,0,248,0,120,0,60,0,28,0,14,0,6,0, - 2,0,0,0,14,0,126,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,63,0, - 127,128,9,24,48,10,1,0,7,0,15,128,15,0,30,0, - 28,0,56,0,48,0,32,0,0,0,28,0,252,0,124,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,0,10,23,46,10,0,0,28,0, - 30,0,63,0,127,0,115,128,193,192,128,64,0,0,14,0, - 126,0,62,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,63,0,127,128,11,22,44,10, - 255,0,112,224,241,224,241,224,241,224,225,192,0,0,0,0, - 7,0,63,0,31,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,31,128,63,192,14,23, - 46,16,1,0,14,0,63,28,95,248,3,224,15,224,60,224, - 0,112,0,56,15,248,24,248,56,124,112,60,112,60,240,60, - 240,60,240,60,240,60,240,56,240,56,120,112,120,112,60,96, - 15,128,17,22,66,19,1,0,7,6,0,15,204,0,31,252, - 0,17,248,0,48,112,0,0,0,0,0,0,0,12,60,0, - 252,252,0,127,254,0,63,30,0,62,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,126,63,0,255,127,128,15,24,48,17,1,0, - 14,0,31,0,15,0,7,0,3,128,1,128,0,192,0,192, - 0,0,7,224,24,112,56,56,112,60,112,30,240,30,240,30, - 240,30,240,30,240,30,240,28,120,28,56,56,28,48,15,192, - 15,24,48,17,1,0,0,240,0,248,0,240,1,224,1,192, - 3,128,3,0,6,0,0,0,7,224,24,112,56,56,112,60, - 112,30,240,30,240,30,240,30,240,30,240,30,240,28,120,28, - 56,56,28,48,15,192,15,23,46,17,1,0,3,128,3,192, - 7,224,15,224,30,112,24,56,48,24,0,0,7,224,24,112, - 56,56,112,60,112,30,240,30,240,30,240,30,240,30,240,30, - 240,28,120,28,56,56,28,48,15,192,15,22,44,17,1,0, - 14,12,31,136,31,248,49,240,32,224,0,0,0,0,7,224, - 24,112,56,56,112,60,112,30,240,30,240,30,240,30,240,30, - 240,30,240,28,120,28,56,56,28,48,15,192,15,22,44,17, - 1,0,24,48,60,120,60,120,56,112,56,112,0,0,0,0, - 7,224,24,112,56,56,112,60,112,30,240,30,240,30,240,30, - 240,30,240,30,240,28,120,28,56,56,28,48,15,192,12,12, - 24,13,1,3,6,0,14,0,14,0,12,0,0,0,255,240, - 255,224,0,0,6,0,14,0,14,0,12,0,15,16,32,17, - 1,255,7,238,24,124,56,60,112,124,112,254,240,254,241,222, - 243,158,243,158,247,30,254,28,124,28,124,56,124,48,111,192, - 128,0,17,24,72,18,0,0,7,0,0,15,128,0,7,128, - 0,3,192,0,1,192,0,0,224,0,0,96,0,0,48,0, - 0,0,0,28,14,0,252,126,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,126,0,63,255,128,31,223,0,15,12,0, - 17,24,72,18,0,0,0,56,0,0,124,0,0,120,0,0, - 240,0,0,224,0,0,192,0,1,128,0,1,128,0,0,0, - 0,28,14,0,252,126,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,126,0,63,255,128,31,223,0,15,12,0,17,23, - 69,18,0,0,0,192,0,1,224,0,3,240,0,7,248,0, - 7,56,0,14,12,0,8,4,0,0,0,0,28,14,0,252, - 126,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,126,0, - 63,255,128,31,223,0,15,12,0,17,22,66,18,0,0,14, - 28,0,30,60,0,30,60,0,30,60,0,12,24,0,0,0, - 0,0,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,17,32,96,16,255,248,0,56,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,224,0,0,192,0,1,128,0,0, - 0,0,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,16,32,64,18,1,248,12,0,252, - 0,124,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 120,61,252,63,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,63,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,30,90, - 16,255,248,6,12,0,15,30,0,15,30,0,14,28,0,14, - 28,0,0,0,0,0,0,0,127,15,128,62,7,0,30,6, - 0,30,6,0,15,14,0,15,12,0,7,140,0,7,152,0, - 7,152,0,3,248,0,3,240,0,1,240,0,1,240,0,1, - 224,0,0,224,0,0,192,0,0,192,0,1,192,0,1,128, - 0,39,128,0,127,0,0,254,0,0,120,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=14 h=30 x= 2 y=11 dx=17 dy= 0 ascent=25 len=60 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20n[624] U8G_SECTION(".progmem.u8g_font_gdb20n") = { - 0,49,47,240,244,19,0,0,0,0,42,57,0,25,250,19, - 0,12,13,26,14,1,11,3,0,15,0,70,64,102,112,246, - 240,63,192,15,0,63,224,254,240,230,112,70,32,7,0,14, - 0,12,12,24,13,1,3,6,0,6,0,6,0,6,0,6, - 0,127,240,255,224,6,0,6,0,6,0,6,0,6,0,6, - 10,10,9,2,250,56,252,252,60,60,56,56,112,96,192,10, - 2,4,11,1,7,255,192,255,128,5,5,5,9,2,255,112, - 248,248,248,112,14,30,60,15,1,251,0,28,0,56,0,56, - 0,120,0,112,0,112,0,224,0,224,0,224,1,192,1,192, - 3,128,3,128,3,128,7,0,7,0,7,0,14,0,14,0, - 28,0,28,0,28,0,56,0,56,0,120,0,112,0,112,0, - 224,0,224,0,192,0,14,18,36,16,1,0,7,192,24,224, - 56,112,112,120,112,120,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,240,56,112,56,120,56,56,112,28,96,15,128, - 13,19,38,16,2,0,1,128,15,128,127,128,239,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,63,224,127,248,13,19,38,16, - 1,0,15,224,56,240,120,120,240,120,112,120,0,120,0,240, - 0,240,1,224,1,192,3,128,7,0,14,0,28,8,28,8, - 56,24,127,248,255,248,255,248,13,19,38,16,1,0,31,128, - 121,224,112,240,240,240,64,240,0,240,1,224,7,192,15,192, - 3,240,0,240,0,120,0,120,0,120,0,120,128,240,192,240, - 127,224,31,128,14,19,38,17,1,0,0,48,1,240,1,240, - 3,240,7,240,6,240,12,240,12,240,24,240,56,240,48,240, - 96,240,255,252,255,248,0,240,0,240,0,240,1,248,7,252, - 13,19,38,16,1,0,63,248,63,240,63,224,112,0,112,0, - 96,0,96,0,127,128,127,224,97,240,0,248,0,120,0,120, - 0,120,0,120,0,112,128,240,193,224,127,128,14,20,40,16, - 1,0,0,112,3,240,7,128,15,0,28,0,60,0,120,0, - 120,0,115,224,255,240,252,120,240,124,240,60,240,60,240,60, - 112,60,120,56,56,56,28,112,7,192,13,19,38,16,2,0, - 255,248,255,248,255,240,192,48,128,96,128,96,0,224,0,192, - 1,192,1,128,3,128,3,128,7,0,7,0,14,0,14,0, - 30,0,28,0,56,0,14,19,38,16,1,0,15,192,24,240, - 48,120,112,120,112,120,120,120,126,240,63,192,31,224,15,240, - 63,248,120,252,248,124,240,60,240,60,240,56,112,56,56,112, - 31,192,14,20,40,16,1,255,7,192,24,240,56,120,112,120, - 240,60,240,60,240,60,240,60,248,60,124,124,63,252,31,60, - 0,56,0,120,0,112,0,240,1,224,7,128,63,0,56,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=28 dy= 0 ascent=26 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20r[4680] U8G_SECTION(".progmem.u8g_font_gdb20r") = { - 0,49,47,240,244,20,5,86,12,137,32,127,248,26,248,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 4 y=23 dx=35 dy= 0 ascent=34 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25[14643] U8G_SECTION(".progmem.u8g_font_gdb25") = { - 0,61,57,236,242,25,7,167,18,92,32,255,247,34,245,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,10,0, - 0,6,29,29,12,3,245,120,252,252,252,248,112,0,16,48, - 56,56,120,120,120,120,120,120,120,120,120,120,120,124,124,252, - 252,252,248,192,16,25,50,20,2,255,0,192,1,192,1,192, - 1,248,7,255,31,255,61,223,121,198,121,198,113,192,241,192, - 241,192,241,192,241,192,241,192,241,192,121,195,125,199,63,206, - 31,252,15,248,3,192,1,192,1,192,1,128,19,25,75,20, - 1,255,0,127,0,1,255,192,3,199,192,7,131,192,7,1, - 192,15,1,128,15,1,128,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,127,252,0,255,248,0,31,0,0,31, - 0,0,31,0,0,31,0,0,30,0,96,30,0,192,30,0, - 192,63,255,192,127,255,192,255,255,192,64,31,128,17,16,48, - 20,1,4,64,0,128,224,1,128,115,243,128,63,255,0,30, - 30,0,28,14,0,56,7,0,56,7,0,56,7,0,56,7, - 0,56,7,0,28,14,0,62,31,0,127,255,128,243,243,128, - 96,1,128,22,24,72,20,254,0,254,3,252,255,3,252,31, - 0,240,31,128,224,15,193,192,7,193,192,7,227,128,3,227, - 128,3,247,128,1,247,0,0,255,0,0,254,0,0,254,0, - 0,124,0,31,255,240,31,255,224,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,3,41,41,9,3,248,96,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,128,0,0,0,64,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192, - 16,28,56,20,2,0,7,224,31,252,60,124,120,56,120,24, - 124,24,127,0,63,192,63,240,127,248,243,252,240,254,240,63, - 240,31,248,15,126,15,127,15,63,206,15,254,3,252,0,254, - 48,126,48,62,48,30,56,30,60,60,63,248,15,224,14,6, - 12,16,1,21,112,56,120,60,248,124,248,124,240,120,112,56, - 27,26,104,30,1,0,0,63,128,0,1,255,240,0,7,192, - 124,0,15,0,30,0,30,0,15,0,60,31,135,128,56,127, - 227,128,112,225,193,192,113,193,193,192,225,192,193,224,227,128, - 128,224,227,128,0,224,227,128,0,224,227,128,0,224,227,128, - 0,224,227,128,0,224,225,192,1,224,113,224,33,192,112,240, - 113,192,56,127,227,128,60,31,7,128,30,0,15,0,15,0, - 30,0,7,192,124,0,1,255,240,0,0,63,128,0,9,14, - 28,11,1,11,30,0,62,0,103,0,231,0,7,0,63,0, - 103,0,231,0,231,0,255,128,119,0,0,0,255,128,255,128, - 17,18,54,21,1,0,0,128,128,1,129,128,3,3,0,7, - 7,0,14,14,0,30,30,0,60,60,0,124,124,0,248,248, - 0,252,248,0,124,124,0,60,60,0,30,30,0,14,14,0, - 7,7,0,3,3,0,1,129,128,0,128,128,17,9,27,20, - 2,3,255,255,128,255,255,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,0,12,2,4, - 14,1,9,127,240,255,240,13,15,30,14,1,14,15,128,31, - 192,48,96,96,48,95,16,137,136,137,136,143,136,139,8,137, - 8,73,144,124,240,48,96,31,192,15,128,16,3,6,20,2, - 23,255,255,255,255,255,254,10,10,20,14,2,15,15,0,63, - 128,115,192,97,192,225,192,225,192,225,128,243,128,127,0,60, - 0,15,18,36,16,1,3,1,128,3,128,3,128,3,128,3, - 128,3,128,127,254,255,252,3,128,3,128,3,128,3,128,3, - 128,3,0,0,0,0,0,127,254,255,252,11,15,30,13,1, - 12,7,192,31,224,56,224,120,224,112,224,0,192,1,192,3, - 128,3,0,6,0,12,0,24,32,48,96,127,224,255,224,11, - 15,30,13,0,12,7,128,31,224,56,224,56,224,32,224,1, - 192,3,128,7,192,0,224,0,224,0,224,128,224,225,192,127, - 192,31,0,9,10,20,13,4,20,14,0,31,128,31,128,63, - 0,62,0,60,0,120,0,112,0,224,0,64,0,22,27,81, - 23,1,247,14,0,96,254,7,224,254,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,63,7,224,63,143,224,63,255,228, - 63,251,252,59,241,248,57,225,224,56,0,0,56,0,0,60, - 0,0,60,0,0,60,0,0,62,0,0,63,0,0,62,0, - 0,48,0,0,22,30,90,24,1,251,3,255,252,31,255,252, - 63,29,240,124,28,224,124,28,224,248,28,224,248,28,224,248, - 28,224,248,28,224,248,28,224,124,28,224,126,28,224,63,28, - 224,31,252,224,3,252,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,127, - 248,0,255,252,6,6,6,8,1,11,56,124,252,252,252,120, - 8,9,9,9,1,247,24,56,60,63,127,31,30,252,224,10, - 15,30,14,2,12,6,0,62,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63, - 0,255,192,9,14,28,11,1,11,30,0,63,0,119,0,227, - 128,227,128,227,128,227,128,227,128,119,0,126,0,60,0,0, - 0,255,128,255,128,17,18,54,21,2,0,64,64,0,224,224, - 0,112,112,0,56,56,0,60,60,0,30,30,0,31,31,0, - 15,143,128,15,143,128,15,143,128,15,143,128,31,31,0,30, - 30,0,60,60,0,56,56,0,112,112,0,96,96,0,192,192, - 0,22,24,72,25,2,0,12,0,24,252,0,56,28,0,112, - 28,0,224,28,1,192,28,1,192,28,3,128,28,7,0,28, - 6,0,28,14,0,62,28,0,255,184,0,0,56,112,0,112, - 240,0,225,240,1,193,112,1,195,112,3,134,112,7,4,112, - 14,15,252,14,31,248,28,0,112,56,0,112,112,1,252,21, - 24,72,25,2,0,12,0,56,252,0,112,28,0,112,28,0, - 224,28,1,192,28,3,128,28,3,128,28,7,0,28,14,0, - 28,28,0,62,28,0,255,184,0,0,113,240,0,227,248,0, - 230,56,1,206,56,3,128,48,7,0,96,7,0,224,14,0, - 192,28,1,136,60,7,8,56,15,248,112,15,248,23,24,72, - 25,1,0,31,0,12,63,128,28,115,128,56,227,128,112,7, - 0,224,31,0,224,3,129,192,3,131,128,3,131,0,135,135, - 0,255,14,0,60,28,0,0,28,56,0,56,120,0,112,248, - 0,224,184,0,225,184,1,195,56,3,130,56,7,7,254,7, - 15,252,14,0,56,28,0,56,56,0,254,16,29,58,18,1, - 245,3,192,7,224,7,224,7,224,7,192,3,128,0,0,0, - 0,1,192,1,192,1,192,1,192,3,192,3,128,7,128,15, - 0,31,0,62,0,60,0,124,0,248,0,248,7,248,31,248, - 31,248,31,252,30,126,60,63,248,15,224,25,34,136,25,0, - 0,0,192,0,0,3,224,0,0,3,240,0,0,3,248,0, - 0,0,252,0,0,0,62,0,0,0,15,0,0,0,2,0, - 0,0,0,0,0,0,4,0,0,0,30,0,0,0,62,0, - 0,0,126,0,0,0,127,0,0,0,111,0,0,0,239,128, - 0,0,239,128,0,0,199,128,0,1,199,192,0,1,199,192, - 0,1,131,192,0,3,131,224,0,3,131,224,0,3,255,224, - 0,7,255,240,0,7,0,240,0,6,0,248,0,14,0,248, - 0,14,0,120,0,12,0,124,0,28,0,124,0,28,0,124, - 0,255,129,255,0,255,129,255,128,25,34,136,25,0,0,0, - 1,128,0,0,3,192,0,0,7,224,0,0,15,192,0,0, - 31,0,0,0,124,0,0,0,240,0,0,0,64,0,0,0, - 0,0,0,0,4,0,0,0,30,0,0,0,62,0,0,0, - 126,0,0,0,127,0,0,0,111,0,0,0,239,128,0,0, - 239,128,0,0,199,128,0,1,199,192,0,1,199,192,0,1, - 131,192,0,3,131,224,0,3,131,224,0,3,255,224,0,7, - 255,240,0,7,0,240,0,6,0,248,0,14,0,248,0,14, - 0,120,0,12,0,124,0,28,0,124,0,28,0,124,0,255, - 129,255,0,255,129,255,128,25,34,136,25,0,0,0,28,0, - 0,0,62,0,0,0,127,0,0,0,255,128,0,1,255,128, - 0,1,227,192,0,3,128,224,0,2,0,64,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,33,132,25,0,0,0,248,48,0,1, - 254,240,0,3,255,224,0,3,255,192,0,6,31,128,0,6, - 3,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, - 30,0,0,0,62,0,0,0,126,0,0,0,127,0,0,0, - 111,0,0,0,239,128,0,0,239,128,0,0,199,128,0,1, - 199,192,0,1,199,192,0,1,131,192,0,3,131,224,0,3, - 131,224,0,3,255,224,0,7,255,240,0,7,0,240,0,6, - 0,248,0,14,0,248,0,14,0,120,0,12,0,124,0,28, - 0,124,0,28,0,124,0,255,129,255,0,255,129,255,128,25, - 32,128,25,0,0,1,192,224,0,3,193,224,0,7,195,224, - 0,7,195,224,0,3,193,224,0,1,129,192,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,34,136,25,0,0,0,30,0,0,0, - 127,0,0,0,119,0,0,0,103,0,0,0,231,0,0,0, - 119,0,0,0,126,0,0,0,56,0,0,0,0,0,0,0, - 4,0,0,0,30,0,0,0,62,0,0,0,126,0,0,0, - 127,0,0,0,111,0,0,0,239,128,0,0,239,128,0,0, - 199,128,0,1,199,192,0,1,199,192,0,1,131,192,0,3, - 131,224,0,3,131,224,0,3,255,224,0,7,255,240,0,7, - 0,240,0,6,0,248,0,14,0,248,0,14,0,120,0,12, - 0,124,0,28,0,124,0,28,0,124,0,255,129,255,0,255, - 129,255,128,32,25,100,32,0,0,0,255,255,252,0,255,255, - 252,0,31,240,28,0,61,240,12,0,61,240,12,0,57,240, - 12,0,121,240,12,0,113,240,0,0,241,240,0,0,225,240, - 0,0,225,240,0,1,255,255,240,1,255,255,240,3,193,240, - 32,3,129,240,0,3,129,240,0,7,129,240,0,7,1,240, - 0,15,1,240,0,14,1,240,3,14,1,240,3,30,1,240, - 6,28,1,240,14,255,7,255,254,255,15,255,254,20,34,102, - 22,1,247,0,127,128,3,255,240,7,135,224,15,1,224,30, - 0,192,60,0,64,60,0,0,124,0,0,120,0,0,120,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,124,0,0,126,0,0,127, - 0,96,63,129,224,31,255,192,15,255,0,7,254,0,1,240, - 0,0,224,0,0,248,0,0,252,0,1,252,0,0,124,0, - 0,120,0,1,240,0,1,192,0,19,34,102,21,1,0,6, - 0,0,31,0,0,31,128,0,31,192,0,7,224,0,1,240, - 0,0,120,0,0,16,0,0,0,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,19,34,102,21,1,0,0,12,0,0,31, - 0,0,63,0,0,126,0,0,248,0,1,224,0,3,128,0, - 2,0,0,0,0,0,255,255,192,255,255,192,62,1,192,30, - 1,192,30,1,128,30,1,128,30,0,128,30,0,0,30,0, - 0,30,0,0,30,0,0,31,255,0,31,254,0,30,6,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,96,30,0,96,30,0,224,63,1,224,255,255,224,255,255, - 192,19,34,102,21,1,0,0,224,0,1,240,0,3,248,0, - 7,252,0,15,252,0,15,30,0,28,7,0,16,2,0,0, - 0,0,255,255,192,255,255,192,62,1,192,30,1,192,30,1, - 128,30,1,128,30,0,128,30,0,0,30,0,0,30,0,0, - 30,0,0,31,255,0,31,254,0,30,6,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,96,30,0, - 96,30,0,224,63,1,224,255,255,224,255,255,192,19,32,96, - 21,1,0,14,7,0,30,15,0,31,15,128,30,15,0,30, - 15,0,12,6,0,0,0,0,255,255,192,255,255,192,62,1, - 192,30,1,192,30,1,128,30,1,128,30,0,128,30,0,0, - 30,0,0,30,0,0,30,0,0,31,255,0,31,254,0,30, - 6,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,96,30,0,96,30,0,224,63,1,224,255,255,224, - 255,255,192,12,34,68,13,0,0,48,0,248,0,252,0,254, - 0,63,0,15,128,3,192,0,128,0,0,127,240,63,240,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,63,224,127,240,12,34,68, - 13,1,0,0,192,1,224,3,240,7,224,31,128,62,0,120, - 0,32,0,0,0,255,224,127,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,255,224,13,34,68,13,0,0,7,0,15, - 128,31,192,63,224,127,224,248,240,224,56,128,16,0,0,127, - 240,63,240,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,63,224,127, - 240,14,32,64,13,255,0,56,28,120,60,248,124,248,124,120, - 60,112,56,0,0,63,248,31,248,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,31,240,63,248,22,25,75,25,1,0,15,252,0, - 255,255,128,255,15,192,31,3,224,31,1,240,31,1,248,31, - 0,248,31,0,248,31,0,124,31,0,124,31,0,124,255,248, - 124,255,248,124,31,0,124,31,0,124,31,0,124,31,0,120, - 31,0,248,31,0,248,31,1,240,31,1,240,31,3,224,31, - 7,192,127,255,128,255,252,0,25,33,132,27,1,0,0,240, - 48,0,1,254,224,0,3,255,224,0,3,255,192,0,6,31, - 128,0,6,3,0,0,4,0,0,0,0,0,0,0,254,0, - 255,128,255,0,127,0,31,0,28,0,31,128,28,0,31,192, - 28,0,31,192,28,0,31,224,28,0,29,240,28,0,29,248, - 28,0,28,248,28,0,28,124,28,0,28,126,28,0,28,62, - 28,0,28,31,28,0,28,15,156,0,28,15,156,0,28,7, - 220,0,28,3,252,0,28,3,252,0,28,1,252,0,28,0, - 252,0,28,0,252,0,28,0,124,0,127,0,60,0,255,128, - 12,0,23,34,102,25,1,0,1,128,0,7,192,0,7,224, - 0,7,240,0,1,248,0,0,124,0,0,30,0,0,4,0, - 0,0,0,0,126,0,3,255,192,7,135,224,14,1,240,30, - 0,248,60,0,248,60,0,124,124,0,124,120,0,126,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,252,0,60,124,0,124,124,0,120,62,0,120,62, - 0,240,31,1,224,15,195,192,7,255,0,0,252,0,23,34, - 102,25,1,0,0,3,0,0,7,192,0,15,192,0,31,128, - 0,62,0,0,120,0,0,224,0,0,128,0,0,0,0,0, - 126,0,3,255,192,7,135,224,14,1,240,30,0,248,60,0, - 248,60,0,124,124,0,124,120,0,126,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,252, - 0,60,124,0,124,124,0,120,62,0,120,62,0,240,31,1, - 224,15,195,192,7,255,0,0,252,0,23,34,102,25,1,0, - 0,56,0,0,124,0,0,254,0,1,255,0,3,255,0,3, - 199,128,7,1,192,4,0,128,0,0,0,0,126,0,3,255, - 192,7,135,224,14,1,240,30,0,248,60,0,248,60,0,124, - 124,0,124,120,0,126,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,252,0,60,124,0, - 124,124,0,120,62,0,120,62,0,240,31,1,224,15,195,192, - 7,255,0,0,252,0,23,33,99,25,1,0,1,240,96,3, - 252,224,7,255,192,7,255,128,14,63,128,12,6,0,8,0, - 0,0,0,0,0,126,0,3,255,192,7,135,224,14,1,240, - 30,0,248,60,0,248,60,0,124,124,0,124,120,0,126,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,252,0,60,124,0,124,124,0,120,62,0,120, - 62,0,240,31,1,224,15,195,192,7,255,0,0,252,0,23, - 32,96,25,1,0,3,129,192,7,131,192,7,195,224,7,131, - 192,7,131,192,3,1,128,0,0,0,0,126,0,3,255,192, - 7,135,224,14,1,240,30,0,248,60,0,248,60,0,124,124, - 0,124,120,0,126,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,252,0,60,124,0,124, - 124,0,120,62,0,120,62,0,240,31,1,224,15,195,192,7, - 255,0,0,252,0,13,12,24,17,2,5,96,48,240,120,120, - 240,61,224,31,192,15,128,15,128,31,192,57,224,120,240,240, - 120,96,48,23,26,78,25,1,255,0,126,30,3,255,252,7, - 135,248,14,3,240,30,1,248,60,1,252,60,3,252,124,7, - 252,120,15,254,248,15,126,248,30,62,248,62,62,248,60,62, - 248,120,62,248,240,62,248,240,62,253,224,60,127,192,124,127, - 128,120,127,128,120,63,0,240,31,129,224,63,195,192,127,255, - 0,240,252,0,192,0,0,25,34,136,27,1,0,0,192,0, - 0,3,224,0,0,3,240,0,0,3,248,0,0,0,252,0, - 0,0,30,0,0,0,7,0,0,0,2,0,0,0,0,0, - 0,255,224,255,128,127,224,255,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,24,0,15,128,56, - 0,15,128,56,0,7,192,112,0,3,224,224,0,1,255,192, - 0,0,127,0,0,25,34,136,27,1,0,0,1,128,0,0, - 3,224,0,0,7,224,0,0,15,192,0,0,31,0,0,0, - 60,0,0,0,112,0,0,0,64,0,0,0,0,0,0,255, - 224,255,128,127,224,255,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,24,0,15,128,56,0,15, - 128,56,0,7,192,112,0,3,224,224,0,1,255,192,0,0, - 127,0,0,25,34,136,27,1,0,0,28,0,0,0,62,0, - 0,0,127,0,0,0,255,128,0,1,255,192,0,1,227,192, - 0,3,128,224,0,2,0,64,0,0,0,0,0,255,224,255, - 128,127,224,255,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,24,0,15,128,56,0,15,128,56, - 0,7,192,112,0,3,224,224,0,1,255,192,0,0,127,0, - 0,25,32,128,27,1,0,1,192,224,0,3,225,240,0,3, - 225,240,0,3,193,224,0,3,193,224,0,1,128,192,0,0, - 0,0,0,255,224,255,128,127,224,255,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,24,0,15, - 128,56,0,15,128,56,0,7,192,112,0,3,224,224,0,1, - 255,192,0,0,127,0,0,24,34,102,25,0,0,0,1,128, - 0,3,192,0,7,224,0,31,192,0,63,0,0,124,0,0, - 240,0,0,64,0,0,0,0,126,0,255,255,0,255,31,0, - 56,15,128,56,15,192,112,7,192,112,3,224,224,3,224,224, - 1,241,192,1,241,192,0,251,128,0,251,128,0,127,0,0, - 127,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,1,255,192, - 1,255,192,21,25,75,23,1,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,254,0,31,255,192,31,7, - 224,31,3,240,31,1,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,1,240,31,1,240,31,135,224,31, - 127,128,31,62,0,31,0,0,31,0,0,31,0,0,127,224, - 0,255,224,0,23,30,90,25,0,0,0,31,128,0,255,224, - 1,195,240,3,128,248,7,128,248,15,0,124,15,0,124,15, - 0,124,31,0,124,31,0,248,31,1,248,31,7,240,31,15, - 128,31,31,0,31,30,0,31,30,0,31,31,0,31,31,128, - 31,15,224,31,7,248,31,3,252,31,0,252,31,0,126,31, - 48,62,31,48,30,31,48,30,31,56,28,31,60,60,127,63, - 248,255,15,224,19,30,90,20,1,0,7,0,0,31,128,0, - 15,128,0,15,192,0,7,192,0,3,224,0,1,224,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,30,90,20,1,0,0,56,0,0,62,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,1, - 192,0,3,128,0,1,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,29,87,20,1,0,1,224,0,1,224,0, - 3,240,0,7,248,0,7,252,0,15,60,0,30,30,0,56, - 7,0,16,2,0,0,0,0,0,0,0,1,248,0,15,254, - 0,62,63,0,124,31,0,124,31,0,112,31,0,0,31,0, - 1,255,0,15,255,0,63,31,0,124,31,0,120,31,0,248, - 31,0,248,31,32,248,127,224,255,223,192,127,159,128,62,14, - 0,19,27,81,20,1,0,7,129,128,15,227,0,31,255,0, - 63,254,0,49,252,0,96,56,0,0,0,0,0,0,0,0, - 0,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,19,27,81,20,1,0,12,6, - 0,30,15,0,62,31,0,62,31,0,62,31,0,28,14,0, - 0,0,0,0,0,0,0,0,0,1,248,0,15,254,0,62, - 63,0,124,31,0,124,31,0,112,31,0,0,31,0,1,255, - 0,15,255,0,63,31,0,124,31,0,120,31,0,248,31,0, - 248,31,32,248,127,224,255,223,192,127,159,128,62,14,0,19, - 28,84,20,1,0,0,240,0,3,248,0,3,184,0,7,56, - 0,7,56,0,7,56,0,3,240,0,1,224,0,0,0,0, - 0,0,0,1,248,0,15,254,0,62,63,0,124,31,0,124, - 31,0,112,31,0,0,31,0,1,255,0,15,255,0,63,31, - 0,124,31,0,120,31,0,248,31,0,248,31,32,248,127,224, - 255,223,192,127,159,128,62,14,0,27,18,72,29,1,0,0, - 252,62,0,7,254,255,128,15,191,199,128,30,15,131,192,62, - 15,129,192,124,15,1,224,0,15,1,224,0,255,255,224,15, - 255,255,192,31,15,0,0,124,15,0,0,120,15,0,0,248, - 15,128,0,248,31,128,96,252,127,225,224,255,227,255,192,127, - 193,255,0,63,0,124,0,17,27,81,18,1,247,1,252,0, - 7,255,0,31,31,0,60,15,0,60,7,0,120,6,0,120, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,252,0,0,126,1,0,127,7,128,63,254,0,31,252,0, - 7,240,0,1,192,0,1,192,0,1,240,0,3,248,0,0, - 248,0,0,248,0,1,240,0,3,224,0,7,0,0,17,30, - 90,19,1,0,3,128,0,15,128,0,31,192,0,7,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,48,0,0, - 56,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,30, - 90,19,1,0,0,60,0,0,63,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,240,0,1,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,19,1,0,0,224,0,1,240,0,3,248,0,3,248,0, - 7,252,0,15,30,0,14,14,0,28,7,0,24,3,0,0, - 0,0,0,0,0,1,240,0,15,252,0,30,62,0,60,31, - 0,120,15,0,120,15,128,248,15,128,255,255,128,255,254,0, - 248,0,0,248,0,0,248,0,0,252,0,0,126,1,128,127, - 7,0,63,254,0,31,252,0,7,240,0,17,27,81,19,1, - 0,14,7,0,30,15,0,31,15,128,30,15,0,30,15,0, - 28,14,0,0,0,0,0,0,0,0,0,0,1,240,0,15, - 252,0,30,62,0,60,31,0,120,15,0,120,15,128,248,15, - 128,255,255,128,255,254,0,248,0,0,248,0,0,248,0,0, - 252,0,0,126,1,128,127,7,0,63,254,0,31,252,0,7, - 240,0,11,30,60,12,0,0,56,0,252,0,124,0,62,0, - 62,0,31,0,15,0,7,128,3,128,1,128,0,0,0,0, - 7,0,127,0,127,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 127,192,127,224,11,30,60,12,1,0,3,128,3,224,7,224, - 7,192,15,128,15,0,30,0,28,0,24,0,48,0,0,0, - 0,0,14,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,192,14,29,58,12,255,0,7,128,7,192, - 15,192,31,224,31,240,60,240,120,120,112,28,192,8,0,0, - 0,0,3,128,63,128,63,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,63,224,63,240,14,27,54,12,255,0,48,24,120,60, - 248,124,248,124,248,124,112,56,0,0,0,0,0,0,3,128, - 63,128,63,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,63,224, - 63,240,18,29,87,20,1,0,3,0,0,31,192,0,63,231, - 192,3,255,0,0,252,0,3,252,0,15,252,0,30,30,0, - 0,31,0,0,15,0,0,15,128,3,231,128,15,255,128,30, - 63,192,60,31,192,124,15,192,120,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,128,248,7,128,124,15,128, - 124,15,0,126,14,0,63,28,0,15,248,0,3,224,0,22, - 27,81,23,1,0,1,192,64,3,248,224,7,255,192,15,255, - 128,12,127,0,24,30,0,0,0,0,0,0,0,0,0,0, - 14,15,128,254,63,192,254,255,224,63,255,224,63,199,224,63, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 255,143,248,255,223,252,19,30,90,21,1,0,3,128,0,15, - 192,0,15,192,0,7,192,0,3,224,0,1,224,0,0,240, - 0,0,112,0,0,56,0,0,16,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,30,90,21,1,0,0,28,0,0, - 63,0,0,63,0,0,62,0,0,124,0,0,120,0,0,240, - 0,0,224,0,1,192,0,0,128,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,29,87,21,1,0,0,240,0,0, - 240,0,1,248,0,3,252,0,7,252,0,7,158,0,15,15, - 0,28,3,0,8,1,128,0,0,0,0,0,0,1,248,0, - 7,254,0,30,31,128,60,15,128,124,7,192,120,7,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 192,124,3,192,124,7,128,62,7,128,63,15,0,15,252,0, - 3,240,0,19,27,81,21,1,0,3,128,128,7,241,192,15, - 255,128,31,255,0,24,254,0,48,60,0,0,0,0,0,0, - 0,0,0,0,1,248,0,7,254,0,30,31,128,60,15,128, - 124,7,192,120,7,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,192,124,3,192,124,7,128,62,7, - 128,63,15,0,15,252,0,3,240,0,19,27,81,21,1,0, - 14,7,0,15,7,128,31,15,128,31,15,128,30,15,0,14, - 7,0,0,0,0,0,0,0,0,0,0,1,248,0,7,254, - 0,30,31,128,60,15,128,124,7,192,120,7,192,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,192,124, - 3,192,124,7,128,62,7,128,63,15,0,15,252,0,3,240, - 0,15,15,30,17,1,3,3,0,7,0,7,0,7,0,6, - 0,0,0,127,254,255,252,0,0,0,0,3,0,7,0,7, - 0,7,0,6,0,19,20,60,21,1,255,0,0,32,1,248, - 224,7,255,192,30,31,128,60,15,192,60,31,192,120,31,224, - 120,59,224,248,115,224,248,227,224,249,227,224,249,195,224,251, - 131,192,127,3,192,126,7,128,62,7,128,63,15,0,63,252, - 0,99,240,0,192,0,0,22,30,90,23,1,0,3,128,0, - 7,192,0,15,192,0,3,224,0,1,224,0,0,240,0,0, - 240,0,0,120,0,0,56,0,0,24,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,30,90,23,1,0,0,30,0, - 0,31,0,0,63,128,0,62,0,0,124,0,0,120,0,0, - 112,0,0,224,0,0,224,0,1,192,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,29,87,23,1,0,0,112,0, - 0,248,0,1,248,0,3,252,0,3,254,0,7,158,0,15, - 7,0,14,3,128,8,1,0,0,0,0,0,0,0,14,0, - 224,254,31,224,126,7,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,7,224,63,31,252,31,251,252,31,243, - 240,15,193,192,22,27,81,23,1,0,7,3,128,15,7,128, - 31,15,128,31,15,128,31,15,128,14,7,0,0,0,0,0, - 0,0,0,0,0,14,0,224,254,31,224,126,7,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,7,224,63, - 31,252,31,251,252,31,243,240,15,193,192,21,39,117,20,255, - 247,0,7,0,0,15,192,0,15,128,0,31,0,0,31,0, - 0,62,0,0,60,0,0,120,0,0,112,0,0,96,0,0, - 0,0,0,0,0,127,193,248,63,129,248,31,0,224,15,128, - 224,15,129,192,7,193,192,7,193,128,7,195,128,3,227,128, - 3,231,0,1,247,0,1,246,0,0,254,0,0,254,0,0, - 252,0,0,124,0,0,120,0,0,56,0,0,56,0,0,112, - 0,0,112,0,0,224,0,33,224,0,127,192,0,127,128,0, - 255,0,0,124,0,0,20,39,117,22,1,247,6,0,0,254, - 0,0,254,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,31,0,62,127,128,62,255,192,63,135,224,63,3,224,62, - 1,240,62,0,240,62,0,240,62,0,240,62,0,240,62,0, - 240,62,0,224,62,0,224,62,1,192,63,195,192,63,255,128, - 62,255,0,62,60,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,255,192,0,255,192, - 0,21,36,108,20,255,247,3,129,192,7,195,224,7,195,224, - 7,195,224,7,131,192,7,3,128,0,0,0,0,0,0,0, - 0,0,127,193,248,63,129,248,31,0,224,15,128,224,15,129, - 192,7,193,192,7,193,128,7,195,128,3,227,128,3,231,0, - 1,247,0,1,246,0,0,254,0,0,254,0,0,252,0,0, - 124,0,0,120,0,0,56,0,0,56,0,0,112,0,0,112, - 0,0,224,0,33,224,0,127,192,0,127,128,0,255,0,0, - 124,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=18 h=38 x= 3 y=14 dx=21 dy= 0 ascent=31 len=114 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25n[960] U8G_SECTION(".progmem.u8g_font_gdb25n") = { - 0,61,57,236,242,24,0,0,0,0,42,57,0,31,249,24, - 0,16,16,32,18,1,14,0,192,3,192,3,192,99,140,123, - 158,125,191,127,252,15,224,7,224,63,252,253,190,249,158,51, - 142,3,192,3,192,3,0,15,14,28,17,1,4,1,128,3, - 128,3,128,3,128,3,128,3,128,127,254,255,252,3,128,3, - 128,3,128,3,128,3,128,3,0,8,12,12,11,2,249,30, - 127,255,127,31,31,30,30,60,56,112,96,12,2,4,14,1, - 9,127,240,255,240,6,6,6,11,3,255,56,124,252,252,252, - 120,17,38,114,19,1,249,0,1,128,0,7,128,0,7,128, - 0,15,0,0,15,0,0,15,0,0,30,0,0,30,0,0, - 28,0,0,60,0,0,60,0,0,120,0,0,120,0,0,120, - 0,0,240,0,0,240,0,0,224,0,1,224,0,1,224,0, - 3,192,0,3,192,0,3,192,0,7,128,0,7,128,0,7, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,120,0,0, - 240,0,0,240,0,0,192,0,0,18,24,72,20,1,0,3, - 240,0,7,252,0,30,62,0,28,31,0,60,15,0,120,15, - 128,120,15,128,120,7,128,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,120, - 7,128,124,7,128,124,15,128,60,15,0,62,14,0,31,30, - 0,15,248,0,3,224,0,16,24,48,20,2,0,0,96,3, - 224,31,224,255,224,99,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,7,240,127,255,127,255,16,24,48, - 20,2,0,3,248,15,252,60,62,124,63,120,31,248,31,112, - 31,0,31,0,62,0,60,0,124,0,120,0,240,1,224,3, - 224,3,192,7,128,15,1,30,3,60,3,120,3,127,255,255, - 255,255,255,16,24,48,20,2,0,7,240,31,248,60,124,120, - 62,248,62,248,62,64,62,0,60,0,124,0,240,7,240,7, - 252,0,254,0,62,0,63,0,31,0,31,0,31,0,31,0, - 30,192,62,240,124,127,248,15,192,17,24,72,20,1,0,0, - 12,0,0,124,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,188,0,7,188,0,7,60,0,14,60,0,14,60,0, - 28,60,0,56,60,0,56,60,0,112,60,0,255,255,128,255, - 255,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,3,255,128,3,255,128,17,24,72,20,1,0,31,255,0, - 31,255,128,31,254,0,31,252,0,24,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,63,240,0,63,252,0,48,126, - 0,96,31,0,0,31,0,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,0,31,0,96,31,0,248,126,0,63, - 252,0,7,224,0,17,24,72,20,2,0,0,14,0,0,126, - 0,1,240,0,7,192,0,15,128,0,30,0,0,62,0,0, - 60,0,0,124,0,0,121,248,0,127,254,0,254,63,0,252, - 31,0,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,124,15,128,124,15,0,60,31,0,31,30,0,15,252,0, - 3,240,0,17,24,72,20,2,0,127,255,128,127,255,0,255, - 255,0,255,255,0,224,6,0,192,14,0,128,12,0,0,28, - 0,0,28,0,0,56,0,0,56,0,0,112,0,0,112,0, - 0,240,0,0,224,0,1,224,0,1,192,0,3,192,0,3, - 192,0,7,128,0,7,128,0,15,128,0,31,0,0,28,0, - 0,17,24,72,21,2,0,3,240,0,15,252,0,28,62,0, - 24,31,0,56,31,0,56,31,0,56,31,0,60,62,0,63, - 60,0,31,248,0,15,240,0,7,252,0,14,254,0,62,63, - 0,124,31,128,120,31,128,248,15,128,248,15,128,248,15,128, - 248,15,0,124,31,0,126,62,0,63,252,0,7,224,0,17, - 25,75,20,2,255,3,240,0,15,252,0,30,62,0,60,30, - 0,120,31,0,120,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,128,126,63,128,63,255,128,15, - 207,0,0,15,0,0,31,0,0,30,0,0,62,0,0,124, - 0,0,248,0,1,240,0,15,192,0,63,0,0,56,0,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 3 y=20 dx=35 dy= 0 ascent=33 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25r[6779] U8G_SECTION(".progmem.u8g_font_gdb25r") = { - 0,61,57,236,242,25,7,167,18,92,32,127,247,33,247,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 5 y=27 dx=42 dy= 0 ascent=42 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30[19508] U8G_SECTION(".progmem.u8g_font_gdb30") = { - 0,74,69,232,239,30,10,50,24,78,32,255,245,42,243,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,12,0,0,8,35, - 35,15,3,243,62,127,255,255,255,254,124,0,0,12,28,28, - 28,60,60,60,60,60,62,62,62,62,62,62,62,62,126,126, - 126,126,126,127,126,120,96,21,30,90,24,2,255,0,24,0, - 0,56,0,0,56,0,0,56,0,0,127,192,3,255,240,7, - 255,248,31,187,240,62,56,240,60,56,96,124,56,32,120,56, - 0,248,56,0,248,56,0,248,56,0,248,56,0,248,56,0, - 248,56,0,252,56,0,124,56,16,126,56,56,63,56,240,31, - 251,224,15,255,192,7,255,128,1,252,0,0,56,0,0,56, - 0,0,56,0,0,48,0,22,29,87,24,1,0,0,31,192, - 0,255,248,1,225,248,3,192,248,7,192,120,7,128,112,15, - 128,48,15,128,48,15,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,255,0,255,255,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,16,31,0,12,31, - 0,24,30,0,56,62,0,120,63,255,248,127,255,248,255,255, - 248,128,15,240,20,20,60,24,2,4,64,0,32,224,0,96, - 113,248,240,63,255,192,31,15,128,30,7,128,28,3,128,56, - 1,192,56,1,192,56,1,192,56,1,192,56,1,192,60,3, - 192,30,7,128,31,15,128,31,255,128,57,249,192,112,0,224, - 224,0,112,64,0,32,27,28,112,24,254,0,127,0,127,224, - 255,128,127,224,127,192,15,0,15,224,30,0,15,224,30,0, - 7,240,60,0,3,240,60,0,3,248,56,0,1,252,120,0, - 0,252,112,0,0,254,240,0,0,126,224,0,0,127,224,0, - 0,63,192,0,0,63,192,0,0,31,192,0,0,31,128,0, - 15,255,255,0,15,255,254,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,63,192,0,1,255,248,0,1,255,248,0,4,49,49,11, - 4,246,48,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,224,0,0,0,0,0,112,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,192,18,34,102,23,3,0,3,252,0,15,255,0,30, - 31,0,60,15,0,124,7,0,124,6,0,126,2,0,127,128, - 0,63,224,0,63,240,0,63,252,0,127,254,0,123,255,0, - 240,255,128,240,63,128,240,31,192,240,7,192,248,7,192,124, - 3,192,127,3,192,63,195,192,31,243,128,15,255,128,7,255, - 0,1,255,0,0,127,128,96,63,128,96,31,128,112,15,128, - 112,15,128,120,15,0,126,30,0,127,252,0,15,240,0,17, - 7,21,19,1,26,56,7,0,124,15,128,252,31,128,252,31, - 128,252,31,128,248,31,0,112,14,0,31,31,124,35,2,0, - 0,31,224,0,0,127,252,0,1,240,31,0,7,192,7,128, - 15,0,1,224,30,0,0,224,28,3,240,112,56,31,254,56, - 56,60,124,56,112,120,60,28,112,240,28,28,240,240,24,28, - 224,224,0,14,225,224,0,14,225,224,0,14,225,224,0,14, - 225,224,0,14,225,224,0,14,225,240,0,14,240,240,0,30, - 112,248,6,28,112,126,30,28,56,127,252,56,56,31,240,56, - 28,7,192,112,14,0,0,224,15,0,1,224,7,192,7,128, - 1,240,31,0,0,127,252,0,0,31,240,0,12,16,32,13, - 1,14,15,0,63,128,99,192,227,192,131,192,7,192,63,192, - 123,192,243,192,243,192,247,224,255,240,115,128,0,0,255,224, - 255,224,20,22,66,25,2,0,0,192,32,1,192,112,1,192, - 224,3,129,224,7,131,192,15,7,192,31,15,128,62,15,128, - 126,31,0,252,63,0,252,126,0,252,126,0,252,63,0,126, - 31,0,62,15,128,31,15,128,15,7,192,7,131,192,3,129, - 224,1,192,224,0,192,112,0,192,32,21,11,33,24,2,4, - 127,255,248,255,255,248,255,255,248,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 96,15,3,6,17,1,11,127,254,127,252,255,252,17,17,51, - 17,0,17,3,224,0,15,248,0,60,30,0,48,6,0,103, - 227,0,99,51,0,195,49,128,195,49,128,195,225,128,195,65, - 128,195,97,128,99,35,0,99,51,0,55,158,0,60,30,0, - 15,248,0,3,224,0,20,4,12,24,2,27,127,255,240,255, - 255,240,255,255,224,255,255,224,11,13,26,17,3,17,15,0, - 31,192,63,192,123,224,113,224,241,224,241,224,241,224,241,192, - 251,192,127,128,127,0,30,0,18,22,66,20,1,3,0,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,127,255,192,255,255,192,255,255,128,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,192, - 0,0,0,0,0,0,0,127,255,192,127,255,192,255,255,128, - 13,17,34,17,2,15,7,224,31,240,120,248,120,120,248,120, - 0,120,0,240,0,224,1,224,3,192,7,128,15,0,30,8, - 60,8,120,24,255,248,255,248,13,18,36,17,1,14,7,224, - 31,240,60,248,120,120,124,120,0,120,0,240,1,224,7,240, - 5,240,0,120,0,120,0,120,0,120,128,120,224,240,127,224, - 31,128,11,11,22,15,5,24,15,0,15,192,31,224,31,128, - 63,0,62,0,124,0,120,0,240,0,224,0,64,0,27,33, - 132,28,1,245,3,0,6,0,255,128,254,0,255,128,126,0, - 63,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,192,254,0,31,227,254,0,31,255,254,64,31,255,127,224, - 30,254,127,192,30,124,63,128,30,56,28,0,30,0,0,0, - 30,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0, - 31,0,0,0,31,128,0,0,31,128,0,0,31,192,0,0, - 31,0,0,0,24,0,0,0,26,36,144,29,1,250,1,255, - 255,192,7,255,255,192,31,195,255,0,63,3,222,0,126,3, - 222,0,124,3,222,0,252,3,222,0,252,3,222,0,252,3, - 222,0,252,3,222,0,252,3,222,0,126,3,222,0,127,3, - 222,0,63,3,222,0,31,195,222,0,7,255,222,0,1,255, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,7,255,0,0,31,255,192,0,31,255,192,7,7, - 7,10,1,13,60,126,254,254,254,252,120,10,10,20,11,1, - 246,14,0,28,0,30,0,63,128,63,192,15,192,15,192,31, - 128,254,0,112,0,13,17,34,17,2,15,1,128,15,128,255, - 128,71,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,240,127,248,11,16,32, - 13,1,14,15,0,63,128,123,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,192,123,192,63,128,30,0,0,0,255, - 224,255,224,20,22,66,25,3,0,64,32,0,224,112,0,112, - 56,0,120,28,0,56,30,0,60,15,0,30,15,128,31,7, - 192,31,135,224,15,199,240,15,227,240,15,227,240,15,199,240, - 31,135,224,31,7,192,30,15,128,60,15,0,56,30,0,120, - 28,0,112,56,0,224,48,0,64,96,0,27,29,116,30,2, - 0,3,0,1,192,63,0,3,128,255,0,7,128,15,0,15, - 0,15,0,14,0,15,0,28,0,15,0,60,0,15,0,120, - 0,15,0,112,0,15,0,240,0,15,1,224,0,15,1,192, - 0,31,131,128,0,255,231,128,0,0,15,0,0,0,14,1, - 0,0,28,15,128,0,60,15,128,0,120,31,128,0,112,55, - 128,0,224,55,128,1,224,103,128,3,192,199,128,3,129,199, - 128,7,129,255,224,15,3,255,192,30,0,7,128,28,0,7, - 128,60,0,63,224,26,29,116,30,2,0,3,0,1,192,63, - 0,7,128,255,0,7,128,15,0,15,0,15,0,30,0,15, - 0,60,0,15,0,60,0,15,0,120,0,15,0,240,0,15, - 0,224,0,15,1,224,0,15,3,192,0,31,135,128,0,255, - 231,0,0,0,15,0,0,0,30,63,0,0,60,127,192,0, - 56,231,192,0,121,195,192,0,241,131,192,1,224,3,128,1, - 192,7,0,3,192,14,0,7,128,28,0,15,0,56,0,14, - 0,112,64,30,0,224,64,60,1,255,192,120,3,255,192,28, - 29,116,30,1,0,15,128,0,224,63,192,1,192,115,224,3, - 192,241,224,7,128,129,192,7,0,3,128,14,0,15,192,30, - 0,15,224,60,0,1,240,56,0,0,240,120,0,0,240,240, - 0,0,240,224,0,225,225,192,0,127,195,192,0,31,7,128, - 0,0,7,0,128,0,14,7,192,0,30,7,192,0,60,11, - 192,0,56,27,192,0,112,19,192,0,240,51,192,1,224,99, - 192,1,192,227,192,3,192,255,240,7,129,255,224,15,0,3, - 192,14,0,3,192,30,0,31,240,18,35,105,22,2,243,0, - 248,0,1,252,0,3,252,0,3,252,0,3,252,0,3,248, - 0,1,240,0,0,0,0,0,0,0,0,0,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,0,1,240,0,1, - 224,0,3,224,0,7,192,0,15,192,0,15,128,0,31,0, - 0,63,0,0,126,0,0,126,0,0,252,0,0,252,3,192, - 252,15,192,252,15,192,252,15,192,252,15,128,126,31,128,127, - 31,0,63,254,0,15,240,0,30,42,168,30,0,0,0,32, - 0,0,0,112,0,0,0,248,0,0,1,252,0,0,1,254, - 0,0,0,255,0,0,0,63,128,0,0,15,192,0,0,3, - 224,0,0,0,224,0,0,0,64,0,0,0,0,0,0,1, - 128,0,0,7,128,0,0,15,192,0,0,31,192,0,0,31, - 224,0,0,31,224,0,0,63,224,0,0,63,240,0,0,59, - 240,0,0,121,240,0,0,121,248,0,0,113,248,0,0,240, - 252,0,0,240,252,0,0,224,252,0,1,224,126,0,1,224, - 126,0,1,192,126,0,3,255,255,0,3,255,255,0,3,128, - 31,0,7,128,31,128,7,0,31,128,7,0,15,192,15,0, - 15,192,14,0,15,192,14,0,7,224,30,0,7,224,255,192, - 63,252,255,192,63,252,30,42,168,30,0,0,0,0,32,0, - 0,0,48,0,0,0,124,0,0,0,254,0,0,1,254,0, - 0,3,248,0,0,7,224,0,0,15,128,0,0,31,0,0, - 0,60,0,0,0,16,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,41,164,30,0,0,0,7,0,0,0,7, - 128,0,0,15,192,0,0,31,224,0,0,63,240,0,0,127, - 248,0,0,248,248,0,1,240,60,0,1,192,14,0,1,0, - 8,0,0,0,0,0,0,1,128,0,0,7,128,0,0,15, - 192,0,0,31,192,0,0,31,224,0,0,31,224,0,0,63, - 224,0,0,63,240,0,0,59,240,0,0,121,240,0,0,121, - 248,0,0,113,248,0,0,240,252,0,0,240,252,0,0,224, - 252,0,1,224,126,0,1,224,126,0,1,192,126,0,3,255, - 255,0,3,255,255,0,3,128,31,0,7,128,31,128,7,0, - 31,128,7,0,15,192,15,0,15,192,14,0,15,192,14,0, - 7,224,30,0,7,224,255,192,63,252,255,192,63,252,30,40, - 160,30,0,0,0,16,4,0,0,127,7,0,0,255,254,0, - 1,255,254,0,1,255,252,0,3,255,248,0,3,3,240,0, - 2,0,64,0,0,0,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,40,160,30,0,0,0,64,16,0,0,240, - 60,0,1,248,126,0,1,248,126,0,1,248,126,0,1,240, - 124,0,1,240,124,0,0,64,32,0,0,0,0,0,0,0, - 0,0,0,1,128,0,0,7,128,0,0,15,192,0,0,31, - 192,0,0,31,224,0,0,31,224,0,0,63,224,0,0,63, - 240,0,0,59,240,0,0,121,240,0,0,121,248,0,0,113, - 248,0,0,240,252,0,0,240,252,0,0,224,252,0,1,224, - 126,0,1,224,126,0,1,192,126,0,3,255,255,0,3,255, - 255,0,3,128,31,0,7,128,31,128,7,0,31,128,7,0, - 15,192,15,0,15,192,14,0,15,192,14,0,7,224,30,0, - 7,224,255,192,63,252,255,192,63,252,30,42,168,30,0,0, - 0,1,0,0,0,15,224,0,0,31,224,0,0,28,240,0, - 0,60,240,0,0,60,240,0,0,60,224,0,0,63,224,0, - 0,31,128,0,0,4,0,0,0,0,0,0,0,0,0,0, - 0,1,128,0,0,7,128,0,0,15,192,0,0,31,192,0, - 0,31,224,0,0,31,224,0,0,63,224,0,0,63,240,0, - 0,59,240,0,0,121,240,0,0,121,248,0,0,113,248,0, - 0,240,252,0,0,240,252,0,0,224,252,0,1,224,126,0, - 1,224,126,0,1,192,126,0,3,255,255,0,3,255,255,0, - 3,128,31,0,7,128,31,128,7,0,31,128,7,0,15,192, - 15,0,15,192,14,0,15,192,14,0,7,224,30,0,7,224, - 255,192,63,252,255,192,63,252,38,30,150,39,0,0,0,127, - 255,255,240,0,127,255,255,248,0,15,255,0,112,0,7,255, - 0,112,0,15,63,0,112,0,15,63,0,48,0,15,63,0, - 48,0,30,63,0,48,0,30,63,0,0,0,60,63,0,0, - 0,60,63,0,0,0,60,63,0,0,0,120,63,0,0,0, - 127,255,255,192,0,255,255,255,128,0,240,63,1,128,0,224, - 63,0,0,1,224,63,0,0,1,224,63,0,0,3,192,63, - 0,0,3,192,63,0,0,3,128,63,0,0,7,128,63,0, - 0,7,128,63,0,12,15,0,63,0,12,15,0,63,0,28, - 14,0,63,0,28,31,0,127,128,124,255,193,255,255,248,255, - 193,255,255,248,24,40,120,27,1,246,0,31,224,0,255,252, - 1,255,254,7,224,254,15,192,126,31,128,60,31,0,28,62, - 0,0,62,0,0,126,0,0,124,0,0,124,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,0,63, - 128,2,63,128,7,31,224,15,15,252,254,7,255,248,3,255, - 240,0,255,192,0,30,0,0,28,0,0,31,0,0,63,192, - 0,63,192,0,15,192,0,15,128,0,31,128,0,254,0,0, - 112,0,23,42,126,25,1,0,1,0,0,3,128,0,15,192, - 0,15,224,0,31,240,0,7,248,0,1,252,0,0,126,0, - 0,31,0,0,7,0,0,2,0,0,0,0,255,255,248,255, - 255,252,63,128,56,31,128,56,31,128,24,31,128,24,31,128, - 24,31,128,24,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,255,224,31,255,224,31,128,192,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,6,31,128,6,31,128,14,31,128,14,63,192,30, - 255,255,254,255,255,252,23,42,126,25,1,0,0,2,0,0, - 3,128,0,7,224,0,15,240,0,31,240,0,63,192,0,127, - 0,0,252,0,1,240,0,1,192,0,1,0,0,0,0,0, - 255,255,248,255,255,252,63,128,56,31,128,56,31,128,24,31, - 128,24,31,128,24,31,128,24,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,255,224,31,255,224,31,128,192, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,6,31,128,6,31,128,14,31,128, - 14,63,192,30,255,255,254,255,255,252,23,41,123,25,1,0, - 0,56,0,0,124,0,0,254,0,0,255,0,1,255,0,3, - 255,128,7,199,192,15,1,224,14,0,224,8,0,64,0,0, - 0,255,255,248,255,255,252,63,128,56,31,128,56,31,128,24, - 31,128,24,31,128,24,31,128,24,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,255,224,31,255,224,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,6,31,128,6,31,128,14,31, - 128,14,63,192,30,255,255,254,255,255,252,23,40,120,25,1, - 0,2,0,128,7,129,224,15,195,240,15,195,240,15,195,240, - 15,131,224,15,3,192,4,1,0,0,0,0,0,0,0,255, - 255,248,255,255,252,63,128,56,31,128,56,31,128,24,31,128, - 24,31,128,24,31,128,24,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,255,224,31,255,224,31,128,192,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,6,31,128,6,31,128,14,31,128,14, - 63,192,30,255,255,254,255,255,252,15,42,84,16,255,0,8, - 0,28,0,62,0,127,0,127,128,191,192,15,224,3,240,0, - 248,0,56,0,16,0,0,31,254,31,254,7,248,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,7,248,31, - 254,31,254,14,42,84,16,2,0,0,128,0,224,1,248,3, - 252,7,252,15,240,31,192,63,0,124,0,112,0,32,0,0, - 0,255,240,255,240,63,192,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,63,192,255,240,255,240,16,41,82, - 16,0,0,3,128,7,192,15,224,15,240,31,240,63,248,124, - 124,240,30,224,15,128,4,0,0,63,252,63,252,15,240,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,15, - 240,63,252,63,252,16,40,80,16,0,0,32,8,120,30,252, - 63,252,63,252,63,248,62,240,60,64,16,0,0,0,0,63, - 252,63,252,15,240,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,15,240,63,252,63,252,29,30,120,31,0, - 0,3,255,192,0,255,255,248,0,127,192,254,0,143,192,63, - 128,15,192,31,192,15,192,15,192,15,192,7,224,15,192,7, - 240,15,192,3,240,15,192,3,240,15,192,3,248,15,192,1, - 248,15,192,1,248,127,255,1,248,255,255,1,248,15,192,1, - 248,15,192,1,248,15,192,1,248,15,192,1,248,15,192,1, - 240,15,192,3,240,15,192,3,240,15,192,7,224,15,192,7, - 224,15,192,15,192,15,192,31,128,15,192,63,0,31,224,254, - 0,127,255,248,0,127,255,192,0,30,40,160,32,1,0,0, - 16,4,0,0,127,7,0,0,255,255,0,0,255,254,0,1, - 255,252,0,3,255,252,0,3,3,248,0,2,0,64,0,0, - 0,0,0,0,0,0,0,255,0,15,252,255,128,15,252,63, - 192,3,240,31,192,1,224,31,224,1,224,31,240,1,224,31, - 240,1,224,31,248,1,224,31,252,1,224,30,254,1,224,30, - 126,1,224,30,63,1,224,30,63,129,224,30,31,129,224,30, - 15,193,224,30,7,225,224,30,7,225,224,30,3,241,224,30, - 1,249,224,30,1,253,224,30,0,253,224,30,0,127,224,30, - 0,63,224,30,0,63,224,30,0,31,224,30,0,15,224,30, - 0,7,224,63,0,7,224,255,192,3,224,255,192,0,224,27, - 42,168,30,1,0,0,64,0,0,0,224,0,0,1,240,0, - 0,3,248,0,0,3,252,0,0,1,254,0,0,0,127,0, - 0,0,31,128,0,0,7,192,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,31,192,0,0,255,240,0,3,225,252, - 0,7,128,126,0,15,0,63,0,31,0,31,0,30,0,31, - 128,62,0,15,128,126,0,15,192,124,0,15,192,124,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,254,0,7,192,126,0,15,192,126,0,15,128,127,0,15, - 128,63,0,31,0,31,128,31,0,31,192,62,0,15,240,252, - 0,7,255,240,0,1,255,224,0,0,127,0,0,27,42,168, - 30,1,0,0,0,64,0,0,0,96,0,0,0,248,0,0, - 1,252,0,0,3,252,0,0,7,240,0,0,15,192,0,0, - 31,128,0,0,62,0,0,0,120,0,0,0,32,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,41,164,30,1, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,127,224,0,0,255,240,0,1,249,248,0,3,224,120, - 0,3,128,28,0,2,0,8,0,0,0,0,0,0,31,192, - 0,0,255,240,0,3,225,252,0,7,128,126,0,15,0,63, - 0,31,0,31,0,30,0,31,128,62,0,15,128,126,0,15, - 192,124,0,15,192,124,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,254,0,7,192,126,0,15, - 192,126,0,15,128,127,0,15,128,63,0,31,0,31,128,31, - 0,31,192,62,0,15,240,252,0,7,255,240,0,1,255,224, - 0,0,127,0,0,27,40,160,30,1,0,0,32,8,0,0, - 254,14,0,1,255,254,0,1,255,252,0,3,255,248,0,7, - 255,248,0,6,7,240,0,2,0,128,0,0,0,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,40,160,30,1, - 0,0,128,32,0,1,240,124,0,1,240,124,0,3,240,252, - 0,3,240,252,0,3,240,252,0,3,224,248,0,0,128,32, - 0,0,0,0,0,0,0,0,0,0,31,192,0,0,255,240, - 0,3,225,252,0,7,128,126,0,15,0,63,0,31,0,31, - 0,30,0,31,128,62,0,15,128,126,0,15,192,124,0,15, - 192,124,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,254,0,7,192,126,0,15,192,126,0,15, - 128,127,0,15,128,63,0,31,0,31,128,31,0,31,192,62, - 0,15,240,252,0,7,255,240,0,1,255,224,0,0,127,0, - 0,16,15,30,20,2,6,96,6,240,15,120,31,60,62,30, - 124,15,248,7,240,3,192,7,224,15,248,30,124,60,62,120, - 31,240,15,96,6,27,31,124,30,1,255,0,31,195,224,0, - 255,247,192,3,225,255,128,7,128,127,0,15,0,63,0,31, - 0,63,128,30,0,127,128,62,0,255,192,126,0,255,192,124, - 1,255,192,124,3,239,224,252,3,231,224,252,7,199,224,252, - 15,135,224,252,15,7,224,252,31,7,224,252,62,7,224,252, - 60,7,224,252,120,7,192,254,248,7,192,127,240,15,192,127, - 224,15,128,127,192,15,128,63,128,31,0,63,128,31,0,31, - 192,62,0,31,240,252,0,63,255,240,0,121,255,224,0,248, - 127,0,0,192,0,0,0,29,42,168,32,1,0,0,32,0, - 0,0,48,0,0,0,248,0,0,1,252,0,0,1,254,0, - 0,0,127,0,0,0,31,128,0,0,15,192,0,0,3,224, - 0,0,0,240,0,0,0,64,0,0,0,0,0,255,240,31, - 248,255,240,31,248,63,192,7,224,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,128,31,192,7,128,15,192,7,128,15,224,7, - 0,7,224,15,0,3,248,62,0,1,255,252,0,0,255,240, - 0,0,31,192,0,29,42,168,32,1,0,0,0,32,0,0, - 0,56,0,0,0,124,0,0,0,254,0,0,1,254,0,0, - 3,252,0,0,7,240,0,0,15,192,0,0,31,0,0,0, - 28,0,0,0,16,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,41,164,32,1,0,0,3,128,0,0,7,128, - 0,0,15,192,0,0,31,224,0,0,63,240,0,0,127,248, - 0,0,124,124,0,0,240,62,0,1,192,14,0,0,128,4, - 0,0,0,0,0,255,240,31,248,255,240,31,248,63,192,7, - 224,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,128,31,192,7, - 128,15,192,7,128,15,224,7,0,7,224,15,0,3,248,62, - 0,1,255,252,0,0,255,240,0,0,31,192,0,29,40,160, - 32,1,0,0,32,8,0,0,248,62,0,0,248,62,0,1, - 248,126,0,1,248,126,0,1,248,126,0,0,240,60,0,0, - 64,16,0,0,0,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,42,168,29,0,0,0,0,32,0,0,0,48, - 0,0,0,124,0,0,1,254,0,0,3,254,0,0,7,248, - 0,0,15,224,0,0,31,128,0,0,62,0,0,0,60,0, - 0,0,16,0,0,0,0,0,0,127,0,31,248,255,128,31, - 248,31,192,3,192,15,192,3,128,7,224,7,128,3,240,7, - 0,3,240,15,0,1,248,14,0,1,248,30,0,0,252,28, - 0,0,124,60,0,0,126,56,0,0,63,120,0,0,63,240, - 0,0,31,240,0,0,31,224,0,0,15,224,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,31,224,0,0,255,252,0,0,255,252, - 0,24,30,90,27,1,0,255,248,0,255,248,0,63,192,0, - 31,128,0,31,128,0,31,128,0,31,255,128,31,255,240,31, - 131,248,31,128,252,31,128,126,31,128,127,31,128,63,31,128, - 63,31,128,63,31,128,63,31,128,63,31,128,62,31,128,126, - 31,128,252,31,129,248,31,191,240,31,191,128,31,128,0,31, - 128,0,31,128,0,31,128,0,63,192,0,255,248,0,255,248, - 0,28,36,144,31,1,0,0,7,240,0,0,63,252,0,0, - 255,254,0,1,240,255,0,3,224,63,128,7,192,31,128,7, - 192,31,192,15,128,15,192,15,128,15,192,31,128,15,192,31, - 128,15,192,31,128,31,128,31,128,63,0,31,128,126,0,31, - 129,248,0,31,135,224,0,31,135,128,0,31,143,128,0,31, - 143,128,0,31,143,192,0,31,143,224,0,31,135,248,0,31, - 135,254,0,31,131,255,128,31,128,255,192,31,128,63,224,31, - 128,31,240,31,128,7,240,31,140,3,240,31,142,1,240,31, - 142,1,240,31,142,1,240,31,143,1,224,63,143,195,192,255, - 143,255,128,255,129,254,0,23,35,105,24,1,0,1,192,0, - 15,192,0,15,224,0,7,240,0,3,240,0,1,248,0,0, - 248,0,0,124,0,0,60,0,0,30,0,0,12,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,35,105,24,1,0,0,15,0,0, - 15,192,0,31,224,0,31,128,0,63,0,0,62,0,0,124, - 0,0,120,0,0,240,0,0,224,0,0,192,0,0,0,0, - 0,0,0,0,255,0,15,255,128,31,15,192,62,7,224,126, - 7,224,252,7,224,96,7,224,0,7,224,0,31,224,1,255, - 224,7,255,224,31,231,224,63,135,224,63,7,224,126,7,224, - 126,7,224,126,7,224,126,31,228,127,63,252,63,247,254,63, - 231,240,15,131,128,23,35,105,24,1,0,0,120,0,0,252, - 0,0,252,0,1,254,0,3,255,0,3,255,0,7,207,128, - 15,135,192,15,1,192,28,0,224,8,0,64,0,0,0,0, - 0,0,0,255,0,15,255,128,31,15,192,62,7,224,126,7, - 224,252,7,224,96,7,224,0,7,224,0,31,224,1,255,224, - 7,255,224,31,231,224,63,135,224,63,7,224,126,7,224,126, - 7,224,126,7,224,126,31,228,127,63,252,63,247,254,63,231, - 240,15,131,128,23,33,99,24,1,0,3,192,48,7,240,48, - 15,252,96,31,255,224,31,255,192,56,127,128,48,15,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,0,15,255, - 128,31,15,192,62,7,224,126,7,224,252,7,224,96,7,224, - 0,7,224,0,31,224,1,255,224,7,255,224,31,231,224,63, - 135,224,63,7,224,126,7,224,126,7,224,126,7,224,126,31, - 228,127,63,252,63,247,254,63,231,240,15,131,128,23,33,99, - 24,1,0,7,1,192,15,131,224,31,135,224,31,135,224,31, - 135,224,31,7,192,14,3,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,34,102,24,1,0,0,60,0,0, - 254,0,1,239,0,3,207,0,3,207,0,3,207,0,3,238, - 0,1,252,0,0,248,0,0,0,0,0,0,0,0,0,0, - 0,255,0,15,255,128,31,15,192,62,7,224,126,7,224,252, - 7,224,96,7,224,0,7,224,0,31,224,1,255,224,7,255, - 224,31,231,224,63,135,224,63,7,224,126,7,224,126,7,224, - 126,7,224,126,31,228,127,63,252,63,247,254,63,231,240,15, - 131,128,33,22,110,35,1,0,0,63,3,224,0,1,255,159, - 248,0,7,255,252,62,0,15,135,248,30,0,31,3,240,31, - 0,63,3,240,15,0,127,3,224,15,128,120,3,224,15,128, - 0,3,224,15,128,0,127,255,255,128,3,255,255,254,0,15, - 195,224,0,0,63,3,224,0,0,126,3,224,0,0,124,3, - 240,0,0,252,3,240,1,0,252,7,248,7,0,254,31,252, - 31,0,255,252,255,254,0,127,248,127,252,0,127,224,63,240, - 0,31,128,15,192,0,20,32,96,22,2,246,0,127,128,1, - 255,240,7,135,224,15,3,224,30,1,224,62,0,192,124,0, - 192,124,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,96,127, - 129,224,63,255,192,31,255,128,15,254,0,3,252,0,0,240, - 0,0,224,0,0,252,0,1,254,0,0,254,0,0,126,0, - 0,124,0,0,252,0,3,240,0,1,128,0,19,35,105,23, - 2,0,3,128,0,15,192,0,31,224,0,7,224,0,3,240, - 0,1,240,0,0,248,0,0,120,0,0,60,0,0,28,0, - 0,8,0,0,0,0,0,0,0,0,252,0,7,255,0,15, - 31,128,30,15,128,62,15,192,124,7,192,124,7,224,124,7, - 224,252,7,224,255,255,224,255,255,128,252,0,0,252,0,0, - 252,0,0,254,0,0,126,0,64,127,0,224,63,131,192,63, - 255,128,31,255,0,15,254,0,3,248,0,19,35,105,23,2, - 0,0,14,0,0,31,192,0,31,192,0,63,128,0,63,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,0, - 192,0,0,0,0,0,0,0,0,252,0,7,255,0,15,31, - 128,30,15,128,62,15,192,124,7,192,124,7,224,124,7,224, - 252,7,224,255,255,224,255,255,128,252,0,0,252,0,0,252, - 0,0,254,0,0,126,0,64,127,0,224,63,131,192,63,255, - 128,31,255,0,15,254,0,3,248,0,19,35,105,23,2,0, - 0,120,0,0,248,0,1,252,0,1,254,0,3,254,0,7, - 255,0,15,223,128,15,7,128,30,3,192,60,1,224,24,0, - 64,0,0,0,0,0,0,0,252,0,7,255,0,15,31,128, - 30,15,128,62,15,192,124,7,192,124,7,224,124,7,224,252, - 7,224,255,255,224,255,255,128,252,0,0,252,0,0,252,0, - 0,254,0,0,126,0,64,127,0,224,63,131,192,63,255,128, - 31,255,0,15,254,0,3,248,0,19,33,99,23,2,0,15, - 3,192,31,7,192,31,135,224,31,135,224,31,7,192,31,7, - 192,14,3,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,252,0,7,255,0,15,31,128,30,15,128,62,15,192,124, - 7,192,124,7,224,124,7,224,252,7,224,255,255,224,255,255, - 128,252,0,0,252,0,0,252,0,0,254,0,0,126,0,64, - 127,0,224,63,131,192,63,255,128,31,255,0,15,254,0,3, - 248,0,13,35,70,14,0,0,28,0,126,0,254,0,127,0, - 31,0,15,128,7,128,3,192,1,192,0,224,0,64,0,0, - 0,0,1,192,63,192,127,192,63,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,31,224,127,248,127,248,14,35, - 70,14,1,0,0,224,1,252,1,252,3,248,3,240,7,224, - 7,192,15,128,15,0,30,0,8,0,0,0,0,0,3,128, - 127,128,255,128,127,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,16,35,70,14,255,0, - 3,192,3,224,7,240,15,240,15,248,31,252,62,124,60,30, - 120,15,240,7,64,3,0,0,0,0,0,224,31,224,63,224, - 31,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 15,240,63,252,63,252,16,33,66,14,255,0,56,14,124,31, - 124,31,252,63,252,63,124,31,120,30,0,0,0,0,0,0, - 0,0,0,224,31,224,63,224,31,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,240,63,252,63,252,21,34, - 102,25,2,0,1,192,0,15,224,0,63,240,248,31,255,248, - 0,255,192,0,126,0,1,255,0,7,239,128,31,143,128,2, - 7,192,0,3,224,0,3,224,1,251,240,7,253,240,15,255, - 240,31,15,248,62,7,248,62,3,248,124,3,248,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,240,252, - 1,240,252,1,240,126,3,224,126,3,224,63,3,192,63,7, - 128,31,143,0,7,254,0,1,248,0,26,33,132,28,1,0, - 0,240,12,0,1,252,12,0,3,255,28,0,3,255,248,0, - 7,255,240,0,14,31,224,0,12,3,192,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,1,240,0, - 127,135,252,0,255,159,252,0,63,191,254,0,31,248,254,0, - 31,224,126,0,31,192,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,63,192,255,0,255,243,255,192, - 255,243,255,192,21,35,105,25,2,0,1,192,0,15,224,0, - 15,224,0,7,240,0,3,240,0,1,248,0,0,248,0,0, - 124,0,0,60,0,0,30,0,0,12,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,21,35,105,25,2,0,0,15,0,0,15,192,0, - 31,224,0,31,128,0,63,0,0,62,0,0,124,0,0,120, - 0,0,240,0,0,224,0,0,192,0,0,0,0,0,0,0, - 0,252,0,3,255,0,15,15,192,30,7,224,62,7,224,62, - 3,240,124,3,240,124,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,252,1,248,252,1,240,126,1,240, - 126,3,224,62,3,224,63,3,192,31,135,128,7,254,0,1, - 248,0,21,35,105,25,2,0,0,120,0,0,252,0,0,252, - 0,1,254,0,3,255,0,3,255,0,7,207,128,15,135,192, - 15,1,192,28,0,224,8,0,64,0,0,0,0,0,0,0, - 252,0,3,255,0,15,15,192,30,7,224,62,7,224,62,3, - 240,124,3,240,124,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,248,252,1,240,126,1,240,126, - 3,224,62,3,224,63,3,192,31,135,128,7,254,0,1,248, - 0,21,33,99,25,2,0,3,192,48,7,240,48,15,252,96, - 31,255,224,31,255,192,56,127,128,48,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,252,0,3,255,0,15,15, - 192,30,7,224,62,7,224,62,3,240,124,3,240,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,248,252, - 1,248,252,1,240,126,1,240,126,3,224,62,3,224,63,3, - 192,31,135,128,7,254,0,1,248,0,21,33,99,25,2,0, - 7,1,192,15,131,224,31,135,224,31,135,224,31,135,224,31, - 7,192,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,18,18,54,20,1,4,0,192,0,1,224,0,1, - 224,0,1,224,0,1,224,0,0,192,0,0,0,0,127,255, - 192,127,255,192,255,255,128,0,0,0,0,0,0,0,192,0, - 1,224,0,1,224,0,1,224,0,1,224,0,0,192,0,21, - 24,72,25,2,255,0,0,24,0,252,56,3,255,240,15,15, - 224,30,7,224,62,3,240,60,7,240,124,15,240,124,31,248, - 252,29,248,252,57,248,252,121,248,252,241,248,252,225,248,253, - 193,248,255,193,240,127,129,240,127,1,224,62,3,224,63,3, - 192,63,135,128,127,254,0,113,248,0,192,0,0,26,35,140, - 27,1,0,0,224,0,0,3,240,0,0,7,240,0,0,1, - 248,0,0,0,248,0,0,0,124,0,0,0,62,0,0,0, - 30,0,0,0,15,0,0,0,7,0,0,0,2,0,0,0, - 0,0,0,0,0,0,0,3,128,28,0,255,135,252,0,255, - 135,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,129,252,0,31,199,252,128,31, - 255,255,128,15,254,255,192,7,248,126,0,3,224,112,0,26, - 35,140,27,1,0,0,3,128,0,0,7,240,0,0,7,240, - 0,0,15,224,0,0,15,192,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,60,0,0,0,120,0,0,0,48,0, - 0,0,0,0,0,0,0,0,0,3,128,28,0,255,135,252, - 0,255,135,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,129,252,0,31,199,252, - 128,31,255,255,128,15,254,255,192,7,248,126,0,3,224,112, - 0,26,35,140,27,1,0,0,30,0,0,0,62,0,0,0, - 127,0,0,0,255,128,0,0,255,128,0,1,255,192,0,3, - 247,224,0,3,193,224,0,7,128,240,0,15,0,112,0,6, - 0,48,0,0,0,0,0,0,0,0,0,3,128,28,0,255, - 135,252,0,255,135,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,129,252,0,31, - 199,252,128,31,255,255,128,15,254,255,192,7,248,126,0,3, - 224,112,0,26,33,132,27,1,0,3,192,240,0,7,193,240, - 0,7,225,248,0,7,225,248,0,7,193,240,0,7,193,240, - 0,7,129,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,128,28,0,255,135,252,0,255,135,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,129,252,0,31,199,252,128,31,255,255, - 128,15,254,255,192,7,248,126,0,3,224,112,0,25,46,184, - 24,255,245,0,1,224,0,0,3,248,0,0,3,248,0,0, - 3,240,0,0,7,224,0,0,7,192,0,0,15,128,0,0, - 15,0,0,0,30,0,0,0,28,0,0,0,56,0,0,0, - 0,0,0,0,0,0,0,127,240,127,128,127,240,127,128,31, - 192,30,0,15,192,28,0,15,192,28,0,7,224,60,0,7, - 224,56,0,3,240,56,0,3,240,112,0,1,240,112,0,1, - 248,240,0,1,248,224,0,0,252,224,0,0,253,224,0,0, - 125,192,0,0,127,192,0,0,127,128,0,0,63,128,0,0, - 63,128,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,30,0,0,0,28,0,0,0,60,0,0,0, - 120,0,0,32,248,0,0,63,240,0,0,127,224,0,0,255, - 192,0,0,255,128,0,0,126,0,0,0,24,47,141,27,1, - 245,3,0,0,63,128,0,255,128,0,255,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,131,224,31,143, - 248,31,191,252,31,255,252,31,240,254,31,192,126,31,128,63, - 31,128,63,31,128,31,31,128,31,31,128,31,31,128,31,31, - 128,31,31,128,30,31,128,30,31,128,62,31,192,60,31,240, - 124,31,255,248,31,255,240,31,159,224,31,135,128,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,63,192,0,255,248,0,255,248,0,25,44, - 176,24,255,245,0,224,56,0,1,240,124,0,3,240,252,0, - 3,240,252,0,3,240,252,0,3,224,248,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 127,240,127,128,127,240,127,128,31,192,30,0,15,192,28,0, - 15,192,28,0,7,224,60,0,7,224,56,0,3,240,56,0, - 3,240,112,0,1,240,112,0,1,248,240,0,1,248,224,0, - 0,252,224,0,0,253,224,0,0,125,192,0,0,127,192,0, - 0,127,128,0,0,63,128,0,0,63,128,0,0,31,0,0, - 0,31,0,0,0,14,0,0,0,14,0,0,0,30,0,0, - 0,28,0,0,0,60,0,0,0,120,0,0,32,248,0,0, - 63,240,0,0,127,224,0,0,255,192,0,0,255,128,0,0, - 126,0,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=22 h=46 x= 3 y=17 dx=25 dy= 0 ascent=38 len=138 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30n[1275] U8G_SECTION(".progmem.u8g_font_gdb30n") = { - 0,74,69,232,239,29,0,0,0,0,42,57,0,38,247,29, - 0,19,20,60,21,1,17,0,48,0,1,240,0,1,240,0, - 32,240,0,112,225,128,120,227,192,126,231,224,127,255,224,31, - 255,0,3,248,0,3,248,0,31,255,0,127,255,192,254,231, - 192,124,227,192,48,225,192,0,240,128,0,240,0,1,240,0, - 0,192,0,18,18,54,20,1,4,0,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,127,255, - 192,255,255,192,255,255,128,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,192,0,10, - 15,30,13,1,247,7,0,63,128,255,192,127,192,63,192,15, - 192,15,192,15,128,15,128,15,0,31,0,30,0,60,0,120, - 0,48,0,15,3,6,17,1,11,127,254,127,252,255,252,8, - 7,7,13,3,255,62,127,255,255,255,254,124,21,46,138,23, - 1,248,0,0,56,0,0,248,0,0,240,0,1,240,0,1, - 240,0,1,224,0,3,224,0,3,224,0,3,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,0,0,31,0,0, - 31,0,0,30,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,120,0,0,248,0,0,248,0,0,240,0,1,240,0, - 1,224,0,3,224,0,3,224,0,3,192,0,7,192,0,7, - 192,0,7,128,0,15,128,0,15,0,0,31,0,0,31,0, - 0,30,0,0,62,0,0,62,0,0,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,192,0,0,22,29,87,24, - 1,0,0,252,0,3,255,0,7,143,192,15,7,224,30,3, - 224,62,1,240,62,1,240,124,1,248,124,1,248,124,0,248, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,126,0,248,62,1,240,62,1,240,31,1,224,31,3,192, - 15,135,128,3,255,0,0,252,0,19,29,87,24,3,0,0, - 16,0,0,248,0,7,248,0,63,248,0,255,248,0,225,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,15,255,0, - 127,255,224,127,255,224,20,29,87,24,1,0,0,255,0,7, - 255,192,15,143,224,63,7,224,62,3,240,126,3,240,126,3, - 240,120,3,240,0,3,240,0,7,224,0,7,224,0,15,192, - 0,15,128,0,31,128,0,31,0,0,62,0,0,124,0,0, - 248,0,0,248,0,1,240,0,3,224,32,7,192,48,15,128, - 48,15,0,48,30,0,112,63,255,240,127,255,240,255,255,240, - 127,255,240,20,29,87,24,1,0,1,254,0,7,255,128,31, - 31,192,63,15,192,62,7,224,126,7,224,60,7,224,0,7, - 224,0,7,192,0,15,192,0,31,128,0,127,0,1,254,0, - 1,255,128,2,63,192,0,15,224,0,7,224,0,3,240,0, - 3,240,0,3,240,0,3,240,0,3,240,0,3,240,64,7, - 224,96,15,224,252,31,192,63,255,128,31,254,0,3,248,0, - 21,29,87,25,2,0,0,1,128,0,15,128,0,31,128,0, - 63,128,0,63,128,0,127,128,0,255,128,0,239,128,1,239, - 128,3,207,128,3,143,128,7,143,128,7,15,128,14,15,128, - 30,15,128,28,15,128,56,15,128,56,15,128,127,255,248,255, - 255,240,255,255,224,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,31,192,1,255,240,1,255,240,20,29,87, - 24,2,0,0,0,32,31,255,240,31,255,192,31,255,192,31, - 255,128,28,0,0,28,0,0,28,0,0,60,0,0,60,0, - 0,56,0,0,59,252,0,63,255,0,63,255,128,120,31,192, - 32,15,224,0,7,224,0,7,240,0,3,240,0,3,240,0, - 3,240,0,3,240,0,3,240,0,7,224,64,7,224,224,15, - 192,252,31,128,63,254,0,7,248,0,20,29,87,24,2,0, - 0,1,128,0,31,192,0,127,0,1,252,0,3,240,0,7, - 192,0,15,128,0,31,128,0,63,0,0,62,0,0,126,0, - 0,124,126,0,125,255,128,255,255,192,255,15,224,254,7,224, - 252,7,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,240,126,3,224,126,3,224,62,3,192,31,7,192,15,143, - 128,7,255,0,1,248,0,21,28,84,24,2,0,127,255,240, - 127,255,248,127,255,240,127,255,224,112,1,224,224,1,224,192, - 1,192,64,3,192,0,3,128,0,7,128,0,7,0,0,15, - 0,0,15,0,0,30,0,0,30,0,0,60,0,0,60,0, - 0,124,0,0,120,0,0,248,0,0,240,0,1,240,0,1, - 240,0,3,224,0,3,224,0,7,224,0,15,192,0,6,0, - 0,20,29,87,24,2,0,0,252,0,7,255,128,15,31,192, - 30,15,192,28,7,224,60,7,224,60,7,224,60,7,224,62, - 15,192,63,143,128,31,255,0,31,254,0,15,252,0,3,255, - 0,7,255,128,15,255,192,31,31,224,62,15,240,126,7,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,224,126, - 3,224,126,7,192,63,15,128,31,254,0,3,248,0,20,29, - 87,24,2,255,1,252,0,7,255,0,15,31,128,30,15,192, - 62,7,224,124,7,224,124,7,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,254,3,240,126,7,240,127,15, - 240,63,255,240,31,251,224,7,227,224,0,7,224,0,7,192, - 0,7,192,0,15,128,0,31,0,0,62,0,0,252,0,3, - 248,0,15,224,0,63,128,0,56,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 4 y=24 dx=42 dy= 0 ascent=39 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30r[9112] U8G_SECTION(".progmem.u8g_font_gdb30r") = { - 0,74,69,232,239,30,10,50,24,78,32,127,245,39,245,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=15 len=30 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10[3670] U8G_SECTION(".progmem.u8g_font_gdr10") = { - 0,25,24,247,250,10,2,30,4,177,32,255,252,15,251,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,4,0, - 0,2,13,13,5,1,251,64,64,0,0,64,64,64,64,64, - 64,64,192,192,6,10,10,8,1,0,16,28,116,144,144,144, - 144,116,56,16,7,11,11,8,1,255,60,68,68,64,64,240, - 64,64,66,134,252,4,6,6,8,2,2,144,240,144,144,240, - 144,9,10,20,8,255,0,231,128,34,0,22,0,20,0,8, - 0,62,0,8,0,8,0,8,0,28,0,1,17,17,4,2, - 253,128,128,128,128,128,128,128,128,0,128,128,128,128,128,128, - 128,128,6,12,12,8,1,0,112,152,128,96,184,140,196,100, - 24,136,200,112,5,2,2,7,1,9,136,136,10,10,20,12, - 1,0,30,0,127,128,114,128,160,64,160,64,160,64,176,64, - 94,128,97,128,30,0,4,6,6,4,0,5,96,160,96,160, - 240,240,6,8,8,8,1,0,36,72,72,144,144,72,72,36, - 7,3,3,8,0,2,254,2,2,4,1,1,6,1,4,240, - 6,6,6,6,0,6,120,132,180,180,180,120,6,1,1,8, - 1,9,252,4,4,4,6,1,6,112,144,144,224,6,8,8, - 7,1,1,32,32,32,252,32,32,64,248,4,7,7,6,1, - 5,112,144,16,32,64,144,240,4,7,7,5,0,5,112,144, - 16,48,16,144,224,3,3,3,5,2,9,96,64,128,9,12, - 24,9,0,252,195,0,65,0,65,0,65,0,65,0,65,0, - 99,0,125,128,64,0,64,0,96,0,96,0,8,12,12,10, - 1,254,63,202,138,138,202,122,10,10,10,10,10,31,1,2, - 2,2,1,5,128,128,2,4,4,4,1,252,128,192,64,128, - 4,6,6,6,0,5,96,160,32,32,32,112,4,6,6,5, - 0,5,96,144,144,144,96,240,7,8,8,8,1,0,144,72, - 108,36,54,108,72,144,9,10,20,10,1,0,193,0,66,0, - 66,0,68,0,72,0,169,0,23,0,37,0,39,128,67,128, - 8,10,10,10,1,0,193,66,68,68,72,171,21,34,37,79, - 10,11,22,10,0,0,112,0,80,128,33,0,18,0,18,0, - 228,0,8,128,11,128,18,128,19,192,33,192,6,13,13,8, - 1,251,32,32,0,32,32,32,64,64,128,128,132,136,112,10, - 15,30,10,0,0,32,0,24,0,12,0,0,0,0,0,4, - 0,12,0,20,0,18,0,18,0,30,0,33,0,33,0,65, - 128,227,192,10,15,30,10,0,0,2,0,7,0,12,0,16, - 0,0,0,4,0,12,0,20,0,18,0,18,0,30,0,33, - 0,33,0,65,128,227,192,10,15,30,10,0,0,12,0,12, - 0,18,0,33,0,0,0,4,0,12,0,20,0,18,0,18, - 0,30,0,33,0,33,0,65,128,227,192,10,14,28,10,0, - 0,10,0,25,0,38,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,13,26, - 10,0,0,34,0,34,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,15,30, - 10,0,0,12,0,20,0,28,0,0,0,0,0,4,0,12, - 0,20,0,18,0,18,0,30,0,33,0,33,0,65,128,227, - 192,12,10,20,13,1,0,31,224,10,32,10,0,18,0,31, - 224,50,0,34,0,34,0,66,16,231,240,7,14,14,9,1, - 252,62,66,128,128,128,128,128,128,66,102,24,24,8,16,7, - 15,15,8,1,0,64,224,16,8,0,252,68,64,64,124,64, - 64,64,66,254,7,15,15,8,1,0,8,28,48,0,0,252, - 68,64,64,124,64,64,64,66,254,7,15,15,8,1,0,16, - 56,72,4,0,252,68,64,64,124,64,64,64,66,254,7,13, - 13,8,1,0,136,136,0,252,68,64,64,124,64,64,64,66, - 254,4,15,15,5,0,0,128,192,32,16,0,112,32,32,32, - 32,32,32,32,32,112,4,15,15,5,1,0,32,48,64,128, - 0,224,64,64,64,64,64,64,64,64,224,5,15,15,5,0, - 0,32,112,136,0,0,112,32,32,32,32,32,32,32,32,112, - 5,13,13,5,0,0,136,136,0,112,32,32,32,32,32,32, - 32,32,112,8,10,10,10,1,0,252,70,65,65,241,65,65, - 66,66,252,9,14,28,11,1,0,18,0,58,0,4,0,0, - 0,195,128,97,0,97,0,81,0,73,0,77,0,69,0,67, - 0,67,0,225,0,8,15,15,10,1,0,32,112,8,4,0, - 60,66,129,129,129,129,129,130,66,60,8,15,15,10,1,0, - 4,14,24,0,0,60,66,129,129,129,129,129,130,66,60,8, - 15,15,10,1,0,8,28,36,66,0,60,66,129,129,129,129, - 129,130,66,60,8,14,14,10,1,0,18,50,76,0,60,66, - 129,129,129,129,129,130,66,60,8,13,13,10,1,0,68,68, - 0,60,66,129,129,129,129,129,130,66,60,5,5,5,7,1, - 2,136,80,32,80,136,8,10,10,10,1,0,29,98,131,133, - 137,145,161,194,66,188,9,15,30,11,1,0,32,0,48,0, - 12,0,0,0,0,0,227,128,65,0,65,0,65,0,65,0, - 65,0,65,0,65,0,34,0,60,0,9,15,30,11,1,0, - 2,0,6,0,8,0,16,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,65,0,34,0,60,0,9,15, - 30,11,1,0,8,0,28,0,34,0,0,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,13,26,11,1,0,34,0,34,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,15,30,10,1,0,4,0,14,0,24,0,0,0, - 0,0,195,128,97,0,50,0,22,0,28,0,8,0,8,0, - 8,0,8,0,28,0,7,10,10,9,1,0,224,64,124,70, - 66,66,66,124,64,224,8,13,13,10,1,0,28,38,66,66, - 68,72,80,88,78,67,81,81,206,7,12,12,8,1,0,64, - 32,16,0,28,100,4,28,100,132,140,118,7,12,12,8,1, - 0,8,16,32,0,28,100,4,28,100,132,140,118,7,12,12, - 8,1,0,48,72,136,4,28,100,4,28,100,132,140,118,7, - 11,11,8,1,0,100,152,0,28,100,4,28,100,132,140,118, - 7,11,11,8,1,0,136,136,0,28,100,4,28,100,132,140, - 118,7,12,12,8,1,0,48,80,112,0,28,100,4,28,100, - 132,140,118,10,8,16,12,1,0,59,128,204,64,136,64,63, - 192,72,0,136,0,156,192,231,0,6,12,12,7,1,252,60, - 72,128,128,128,128,196,120,32,48,16,32,6,12,12,8,1, - 0,96,32,16,0,56,68,132,252,128,128,68,120,6,12,12, - 8,1,0,12,24,32,0,56,68,132,252,128,128,68,120,6, - 12,12,8,1,0,48,72,132,0,56,68,132,252,128,128,68, - 120,6,11,11,8,1,0,132,136,0,56,68,132,252,128,128, - 68,120,4,12,12,5,0,0,192,64,32,0,32,96,32,32, - 32,32,32,112,4,12,12,5,1,0,48,96,64,0,64,192, - 64,64,64,64,64,224,5,12,12,5,0,0,32,80,136,0, - 32,96,32,32,32,32,32,112,5,11,11,5,0,0,136,136, - 0,32,96,32,32,32,32,32,112,6,12,12,8,1,0,104, - 28,120,8,52,204,132,132,132,132,72,112,8,11,11,9,1, - 0,54,76,0,78,210,98,66,66,66,66,231,7,12,12,9, - 1,0,96,32,16,0,56,68,130,130,130,130,68,56,7,12, - 12,9,1,0,12,8,16,0,56,68,130,130,130,130,68,56, - 7,12,12,9,1,0,16,40,68,0,56,68,130,130,130,130, - 68,56,7,11,11,9,1,0,52,216,0,56,68,130,130,130, - 130,68,56,7,11,11,9,1,0,132,132,0,56,68,130,130, - 130,130,68,56,5,6,6,7,1,2,32,32,0,248,32,32, - 7,8,8,9,1,0,62,68,142,146,146,226,68,248,9,12, - 24,9,0,0,48,0,24,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,9, - 0,0,6,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,9,0,0, - 8,0,20,0,34,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,9,0,0,34,0, - 66,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,8,16,16,8,0,252,6,12,8,0,231,98, - 34,36,52,20,24,8,8,16,160,192,7,17,17,9,1,252, - 64,192,64,64,64,92,102,66,66,66,66,100,120,64,64,64, - 224,8,15,15,8,0,252,66,66,0,231,98,34,36,52,20, - 24,8,8,16,160,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 10 - Calculated Max Values w= 8 h=16 x= 2 y= 6 dx= 8 dy= 0 ascent=13 len=16 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10n[249] U8G_SECTION(".progmem.u8g_font_gdr10n") = { - 0,25,24,247,250,10,0,0,0,0,42,57,0,13,253,10, - 0,6,7,7,8,1,6,32,168,236,48,252,164,32,6,6, - 6,7,1,2,32,32,32,252,32,32,2,4,4,4,1,253, - 192,64,64,128,4,1,1,6,1,4,240,1,2,2,4,2, - 0,128,128,8,16,16,8,0,253,3,2,6,4,4,12,8, - 8,16,16,48,32,32,96,64,192,6,10,10,8,1,0,56, - 72,132,132,132,132,132,132,72,112,5,10,10,8,2,0,32, - 224,32,32,32,32,32,32,32,248,5,10,10,8,2,0,56, - 200,136,8,16,32,32,64,136,248,6,10,10,8,1,0,112, - 136,136,16,48,8,4,4,140,120,6,10,10,8,1,0,8, - 24,40,40,72,136,252,8,8,60,6,10,10,8,1,0,124, - 64,64,120,140,4,4,4,132,120,6,10,10,8,1,0,24, - 32,64,128,248,132,132,132,72,56,6,10,10,8,1,0,252, - 132,8,8,8,16,16,32,32,64,6,10,10,8,1,0,120, - 196,196,200,56,204,132,132,132,120,6,10,10,8,1,0,56, - 200,132,132,132,124,4,8,16,96}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10r[1723] U8G_SECTION(".progmem.u8g_font_gdr10r") = { - 0,25,24,247,250,10,2,30,4,177,32,127,252,14,252,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=10 dx=15 dy= 0 ascent=16 len=34 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11[3977] U8G_SECTION(".progmem.u8g_font_gdr11") = { - 0,26,25,247,250,11,2,61,5,21,32,255,252,16,251,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,4, - 0,0,2,13,13,5,1,251,64,192,0,64,64,64,64,64, - 64,64,64,64,64,7,11,11,8,1,0,16,24,118,144,144, - 144,144,212,126,16,16,7,11,11,8,1,0,60,68,68,64, - 64,240,64,64,66,130,254,6,6,6,8,1,2,248,76,72, - 72,120,132,9,11,22,8,0,0,231,128,98,0,50,0,20, - 0,28,0,8,0,127,0,8,0,8,0,8,0,28,0,1, - 19,19,4,2,252,128,128,128,128,128,128,128,128,0,0,0, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,248,142,130,66,60,12,132,196,120,5,2,2,7,1, - 10,136,136,11,11,22,13,1,0,31,0,32,128,94,64,162, - 32,160,32,160,32,160,32,177,32,94,64,32,128,31,0,5, - 6,6,5,0,5,48,80,112,144,248,240,7,8,8,9,1, - 0,38,36,72,152,152,72,36,38,7,3,3,8,1,2,254, - 2,2,5,1,1,6,1,4,248,6,7,7,6,0,6,120, - 72,188,188,180,104,120,6,1,1,9,1,10,252,4,4,4, - 6,1,7,112,144,144,224,7,8,8,7,0,1,16,16,254, - 16,16,16,0,126,4,7,7,6,1,5,112,144,16,32,64, - 144,240,5,7,7,6,0,5,56,72,8,24,8,136,112,3, - 4,4,6,2,9,32,96,64,128,8,12,12,10,1,252,198, - 66,66,66,66,66,102,123,64,64,64,96,8,13,13,10,1, - 254,63,202,138,138,138,202,122,10,10,10,10,10,31,1,2, - 2,3,1,5,128,128,2,4,4,4,1,252,192,64,192,128, - 4,7,7,6,1,5,32,224,32,32,32,32,240,4,6,6, - 5,0,5,96,144,144,144,96,240,7,8,8,9,1,0,144, - 72,100,54,54,100,72,144,10,11,22,11,1,0,192,128,65, - 0,65,0,66,0,70,0,164,0,8,128,27,128,18,128,35, - 192,101,192,9,11,22,11,1,0,193,0,65,0,66,0,68, - 0,68,0,168,0,11,128,20,128,33,0,34,128,71,128,10, - 11,22,10,0,0,96,128,144,128,33,0,17,0,18,0,228, - 0,4,128,11,128,18,128,19,192,37,192,6,13,13,8,1, - 251,16,48,0,16,16,16,32,64,128,132,132,136,112,11,15, - 30,11,0,0,16,0,56,0,4,0,2,0,4,0,12,0, - 14,0,18,0,18,0,19,0,31,0,33,0,33,128,32,128, - 241,224,11,15,30,11,0,0,1,0,7,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,11,15,30,11,0,0,4,0,14,0, - 17,0,32,0,4,0,12,0,14,0,18,0,18,0,19,0, - 31,0,33,0,33,128,32,128,241,224,11,15,30,11,0,0, - 9,0,29,0,34,0,0,0,4,0,12,0,14,0,18,0, - 18,0,19,0,31,0,33,0,33,128,32,128,241,224,11,14, - 28,11,0,0,33,0,33,0,0,0,4,0,12,0,14,0, - 18,0,18,0,19,0,31,0,33,0,33,128,32,128,241,224, - 11,16,32,11,0,0,4,0,10,0,18,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,13,11,22,14,0,0,15,248,5,8, - 5,0,9,0,15,240,17,0,17,0,17,0,33,8,33,8, - 243,248,9,15,30,10,1,252,62,0,66,0,128,0,128,0, - 128,0,128,0,128,0,128,0,192,0,97,128,62,0,8,0, - 12,0,4,0,8,0,7,15,15,9,1,0,64,224,24,0, - 254,66,64,64,124,64,64,64,66,66,254,7,15,15,9,1, - 0,4,12,48,0,254,66,64,64,124,64,64,64,66,66,254, - 7,15,15,9,1,0,16,40,68,0,254,66,64,64,124,64, - 64,64,66,66,254,7,14,14,9,1,0,68,68,0,254,66, - 64,64,124,64,64,64,66,66,254,4,15,15,5,0,0,128, - 192,48,0,112,32,32,32,32,32,32,32,32,32,112,5,15, - 15,5,1,0,16,56,192,0,224,64,64,64,64,64,64,64, - 64,64,224,5,15,15,5,0,0,32,80,136,0,112,32,32, - 32,32,32,32,32,32,32,112,5,14,14,5,0,0,136,136, - 0,112,32,32,32,32,32,32,32,32,32,112,9,11,22,11, - 1,0,252,0,67,0,65,0,64,128,64,128,240,128,64,128, - 64,128,65,0,67,0,252,0,10,15,30,12,1,0,25,0, - 57,0,38,0,0,0,193,192,96,128,112,128,80,128,72,128, - 76,128,70,128,66,128,65,128,65,128,224,128,9,15,30,11, - 1,0,32,0,112,0,12,0,0,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,65,0,98,0,60,0, - 9,15,30,11,1,0,2,0,6,0,24,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,9,15,30,11,1,0,8,0,20,0,34,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,65,0,98,0,60,0,9,15,30,11,1,0,18,0, - 58,0,68,0,0,0,30,0,99,0,129,0,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,14,28,11, - 1,0,34,0,34,0,0,0,30,0,99,0,129,0,128,128, - 128,128,128,128,128,128,128,128,65,0,98,0,60,0,6,6, - 6,7,1,2,140,88,48,48,88,140,9,11,22,11,1,0, - 30,128,35,0,67,0,134,128,132,128,136,128,144,128,176,128, - 97,0,98,0,188,0,10,15,30,12,1,0,32,0,24,0, - 4,0,2,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,1,0, - 2,0,7,0,8,0,16,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,15, - 30,12,1,0,12,0,30,0,34,0,1,0,225,192,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,33,0, - 30,0,10,14,28,12,1,0,34,0,34,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 33,0,30,0,10,15,30,11,0,0,1,0,7,0,12,0, - 0,0,225,192,48,128,17,0,25,0,10,0,14,0,4,0, - 4,0,4,0,4,0,14,0,7,11,11,9,1,0,240,64, - 124,70,66,66,66,68,124,64,240,8,14,14,10,1,0,28, - 38,66,66,66,76,80,80,76,71,65,81,81,222,7,13,13, - 8,1,0,64,96,48,16,0,60,68,132,28,100,132,140,118, - 7,13,13,8,1,0,12,8,16,32,0,60,68,132,28,100, - 132,140,118,7,13,13,8,1,0,48,56,72,132,0,60,68, - 132,28,100,132,140,118,7,12,12,8,1,0,116,152,0,0, - 60,68,132,28,100,132,140,118,7,12,12,8,1,0,132,132, - 0,0,60,68,132,28,100,132,140,118,7,13,13,8,1,0, - 48,72,72,48,0,60,68,132,28,100,132,140,118,11,8,16, - 12,1,0,29,192,102,32,68,32,159,224,100,0,132,0,142, - 32,115,192,7,12,12,8,1,252,60,68,128,128,128,128,194, - 124,16,24,8,16,6,13,13,8,1,0,96,32,16,16,0, - 56,68,132,252,128,128,68,120,6,13,13,8,1,0,12,8, - 16,16,0,56,68,132,252,128,128,68,120,6,13,13,8,1, - 0,16,56,108,68,0,56,68,132,252,128,128,68,120,6,12, - 12,8,1,0,68,68,0,0,56,68,132,252,128,128,68,120, - 4,13,13,5,0,0,192,64,32,32,16,32,96,32,32,32, - 32,32,112,4,13,13,5,1,0,48,32,64,64,0,64,192, - 64,64,64,64,64,224,5,13,13,5,0,0,32,112,216,136, - 0,32,96,32,32,32,32,32,112,5,12,12,5,0,0,136, - 136,0,0,32,96,32,32,32,32,32,112,7,13,13,9,1, - 0,96,30,56,68,4,62,198,130,130,130,132,68,56,8,12, - 12,10,1,0,50,76,0,0,78,210,98,66,66,66,66,231, - 7,13,13,9,1,0,96,32,16,8,0,56,196,130,130,130, - 130,68,56,7,13,13,9,1,0,4,12,24,16,0,56,196, - 130,130,130,130,68,56,7,13,13,9,1,0,16,56,36,68, - 0,56,196,130,130,130,130,68,56,7,12,12,9,1,0,50, - 92,0,0,56,196,130,130,130,130,68,56,7,12,12,9,1, - 0,68,68,0,0,56,196,130,130,130,130,68,56,6,6,6, - 7,1,2,32,32,0,252,32,32,7,9,9,9,1,0,2, - 62,68,138,146,162,226,68,248,8,13,13,10,1,0,96,48, - 16,8,0,198,66,66,66,66,66,70,59,8,13,13,10,1, - 0,4,12,8,16,0,198,66,66,66,66,66,70,59,8,13, - 13,10,1,0,24,56,36,66,0,198,66,66,66,66,66,70, - 59,8,12,12,10,1,0,68,68,0,0,198,66,66,66,66, - 66,70,59,9,17,34,9,0,252,2,0,4,0,12,0,8, - 0,0,0,243,128,97,0,34,0,50,0,20,0,20,0,28, - 0,8,0,8,0,16,0,176,0,224,0,8,18,18,10,1, - 252,64,192,64,64,64,64,78,115,65,65,65,65,98,124,64, - 64,64,240,9,16,32,9,0,252,34,0,34,0,0,0,0, - 0,243,128,97,0,34,0,50,0,20,0,20,0,28,0,8, - 0,8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx= 9 dy= 0 ascent=14 len=17 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11n[262] U8G_SECTION(".progmem.u8g_font_gdr11n") = { - 0,26,25,247,250,11,0,0,0,0,42,57,0,14,253,11, - 0,6,8,8,8,1,6,48,16,164,120,120,164,16,48,7, - 6,6,7,0,2,16,16,16,254,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,2,2, - 4,1,0,192,128,8,17,17,8,0,253,1,2,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,11,11,8, - 1,0,48,72,132,132,132,132,132,132,132,72,48,6,11,11, - 8,1,0,16,240,16,16,16,16,16,16,16,16,124,6,11, - 11,8,1,0,28,100,68,4,8,8,16,32,68,68,252,6, - 11,11,7,0,0,56,68,68,4,24,12,4,4,4,140,120, - 7,11,11,8,0,0,4,12,12,20,36,36,68,254,4,4, - 30,6,11,11,8,1,0,124,64,64,64,120,132,4,4,4, - 132,120,6,11,11,8,1,0,12,48,64,192,184,196,132,132, - 132,72,56,7,11,11,8,1,0,254,132,4,8,8,8,16, - 16,32,32,96,7,11,11,9,1,0,120,196,196,196,120,60, - 194,130,130,130,124,6,11,11,8,1,0,56,200,132,132,132, - 132,124,4,8,16,224}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11r[1868] U8G_SECTION(".progmem.u8g_font_gdr11r") = { - 0,26,25,247,250,11,2,61,5,21,32,127,252,15,252,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12[4200] U8G_SECTION(".progmem.u8g_font_gdr12") = { - 0,28,28,246,249,12,2,80,5,85,32,255,252,17,251,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,0,2,14, - 14,5,2,251,64,192,64,128,128,128,128,128,128,128,128,128, - 128,128,7,12,12,9,1,0,16,16,62,212,144,144,144,144, - 210,124,16,16,7,12,12,9,1,0,60,70,68,64,64,64, - 240,64,64,66,66,254,7,6,6,9,1,3,132,126,68,68, - 68,254,9,11,22,9,0,0,231,128,99,0,50,0,20,0, - 28,0,8,0,127,0,8,0,8,0,8,0,62,0,1,20, - 20,4,2,252,128,128,128,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,184,134,130,98,60,12,132,196,120,5,2,2,7,1, - 10,136,136,12,12,24,14,1,0,15,0,48,192,94,32,146, - 32,160,16,160,16,160,16,160,16,144,160,79,32,32,64,31, - 128,5,7,7,5,0,5,48,208,112,208,176,72,240,7,8, - 8,9,1,0,34,36,76,216,216,76,36,34,8,4,4,9, - 0,2,255,1,1,1,5,1,1,6,1,4,248,7,6,6, - 7,0,7,56,238,170,178,238,56,6,1,1,9,2,11,252, - 5,5,5,7,1,7,112,136,136,136,112,7,9,9,8,0, - 1,16,16,16,254,16,16,16,0,126,4,7,7,6,1,6, - 112,144,16,32,64,144,240,5,8,8,6,0,5,56,72,8, - 16,8,8,136,112,4,4,4,6,2,10,48,96,64,128,8, - 13,13,10,1,252,194,70,66,66,66,66,102,126,91,64,64, - 64,96,8,14,14,10,1,254,63,70,134,134,134,70,62,6, - 6,6,6,6,6,15,1,2,2,3,1,5,128,128,2,4, - 4,4,2,252,192,192,64,128,5,7,7,6,1,6,32,224, - 32,32,32,32,248,4,7,7,5,0,5,96,144,144,144,144, - 96,240,7,8,8,9,1,0,136,72,36,50,50,36,72,136, - 10,11,22,11,1,0,192,128,65,0,65,0,66,0,68,0, - 228,0,9,128,18,128,18,128,39,192,65,192,9,11,22,11, - 1,0,192,128,65,0,66,0,66,0,68,0,239,128,12,128, - 17,0,49,0,34,128,71,128,10,12,24,11,1,0,96,0, - 144,128,33,0,18,0,146,0,228,0,8,0,9,128,18,128, - 50,128,39,192,65,192,6,14,14,8,1,251,16,48,16,16, - 16,16,32,32,64,128,132,132,136,112,11,16,32,11,0,0, - 16,0,60,0,2,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,16,32,11,0,0,1,0,7,128,8,0,0,0,4,0, - 6,0,14,0,10,0,11,0,17,0,17,0,31,128,33,128, - 32,128,32,192,241,224,11,16,32,11,0,0,4,0,10,0, - 17,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,11,15,30,11, - 0,0,29,128,39,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,15,30,11,0,0,33,0,33,0,0,0,4,0,6,0, - 14,0,10,0,11,0,17,0,17,0,31,128,33,128,32,128, - 32,192,241,224,11,17,34,11,0,0,14,0,18,0,18,0, - 12,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,14,12,24,15, - 0,0,31,248,5,8,5,0,9,0,9,0,31,240,17,32, - 17,0,33,0,33,8,97,12,243,248,9,16,32,10,1,252, - 30,0,99,0,128,0,128,0,128,0,128,0,128,0,128,0, - 128,0,65,0,97,128,62,0,8,0,12,0,4,0,8,0, - 8,16,16,9,1,0,64,48,8,0,254,66,64,64,64,124, - 72,64,64,66,67,254,8,16,16,9,1,0,4,14,48,0, - 254,66,64,64,64,124,72,64,64,66,67,254,8,16,16,9, - 1,0,24,44,68,2,254,66,64,64,64,124,72,64,64,66, - 67,254,8,15,15,9,1,0,132,132,0,254,66,64,64,64, - 124,72,64,64,66,67,254,4,16,16,6,0,0,128,96,16, - 0,112,32,32,32,32,32,32,32,32,32,32,112,5,16,16, - 6,1,0,24,48,192,0,224,64,64,64,64,64,64,64,64, - 64,64,224,6,16,16,6,0,0,48,88,132,0,112,32,32, - 32,32,32,32,32,32,32,32,112,6,15,15,6,0,0,132, - 136,0,112,32,32,32,32,32,32,32,32,32,32,112,10,12, - 24,11,0,0,126,0,33,128,32,128,32,64,32,64,124,64, - 160,64,32,64,32,64,32,128,33,0,126,0,10,15,30,12, - 1,0,25,0,38,0,0,0,193,192,96,128,112,128,80,128, - 88,128,76,128,68,128,70,128,67,128,65,128,65,128,224,128, - 9,16,32,11,1,0,32,0,24,0,4,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,16,32,11,1,0,3,0,6,0, - 24,0,0,0,30,0,99,0,129,0,128,128,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,16,32,11, - 1,0,12,0,22,0,34,0,1,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,128,128,65,0,98,0, - 60,0,9,15,30,11,1,0,25,0,110,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,15,30,11,1,0,66,0,66,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,128,128,65,0,98,0,60,0,6,6,6,8,1,2, - 132,72,48,48,72,132,9,12,24,11,1,0,30,128,35,0, - 67,0,131,128,132,128,136,128,136,128,144,128,225,0,97,0, - 98,0,188,0,10,16,32,12,1,0,48,0,24,0,6,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,16,32,12,1,0, - 1,0,6,0,8,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 10,16,32,12,1,0,12,0,26,0,33,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,1,0,33,0,33,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,11,16,32,11,0,0, - 1,0,3,128,12,0,0,0,225,224,48,128,49,128,25,0, - 10,0,14,0,4,0,4,0,4,0,4,0,4,0,31,0, - 8,12,12,10,1,0,240,64,124,66,65,65,65,65,98,92, - 64,240,9,14,28,11,1,0,30,0,35,0,65,0,65,0, - 65,0,70,0,72,0,72,0,70,0,67,128,64,128,72,128, - 72,128,207,0,7,14,14,9,1,0,96,32,16,16,8,60, - 68,132,4,60,196,132,140,118,7,14,14,9,1,0,12,8, - 16,16,0,60,68,132,4,60,196,132,140,118,7,14,14,9, - 1,0,16,56,76,132,0,60,68,132,4,60,196,132,140,118, - 7,13,13,9,1,0,34,116,152,0,60,68,132,4,60,196, - 132,140,118,7,12,12,9,1,0,132,132,0,60,68,132,4, - 60,196,132,140,118,7,14,14,9,1,0,56,72,72,48,0, - 60,68,132,4,60,196,132,140,118,11,9,18,13,1,0,57, - 192,70,64,196,32,4,32,31,224,100,0,132,0,142,32,115, - 192,7,13,13,8,1,252,60,68,128,128,128,128,128,98,60, - 16,24,8,16,7,14,14,9,1,0,96,32,16,8,0,60, - 68,130,130,254,128,128,66,60,7,14,14,9,1,0,4,14, - 8,16,0,60,68,130,130,254,128,128,66,60,7,14,14,9, - 1,0,24,56,36,66,0,60,68,130,130,254,128,128,66,60, - 7,12,12,9,1,0,130,132,0,60,68,130,130,254,128,128, - 66,60,4,14,14,5,0,0,192,64,32,16,0,32,96,32, - 32,32,32,32,32,112,4,14,14,5,1,0,16,48,96,64, - 0,64,192,64,64,64,64,64,64,224,6,14,14,5,0,0, - 32,112,200,132,0,32,96,32,32,32,32,32,32,112,6,12, - 12,5,255,0,132,132,0,16,48,16,16,16,16,16,16,56, - 7,13,13,9,1,0,96,30,56,68,60,70,130,130,130,130, - 132,68,56,8,13,13,10,1,0,51,58,76,0,76,210,98, - 66,66,66,66,66,231,8,14,14,10,1,0,96,48,16,8, - 0,60,66,129,129,129,129,130,66,60,8,14,14,10,1,0, - 6,12,8,16,0,60,66,129,129,129,129,130,66,60,8,14, - 14,10,1,0,24,56,36,66,0,60,66,129,129,129,129,130, - 66,60,8,13,13,10,1,0,50,122,76,0,60,66,129,129, - 129,129,130,66,60,8,12,12,10,1,0,130,130,0,60,66, - 129,129,129,129,130,66,60,6,6,6,8,1,2,32,32,252, - 0,32,32,8,9,9,10,1,0,29,102,135,137,153,145,226, - 98,252,8,14,14,10,1,0,96,48,16,8,0,198,66,66, - 66,66,66,66,70,59,8,14,14,10,1,0,6,12,8,16, - 0,198,66,66,66,66,66,66,70,59,8,14,14,10,1,0, - 24,28,36,66,0,198,66,66,66,66,66,66,70,59,8,12, - 12,10,1,0,130,130,0,198,66,66,66,66,66,66,70,59, - 9,18,36,9,0,252,3,0,6,0,4,0,8,0,0,0, - 243,128,97,0,33,0,50,0,18,0,20,0,28,0,12,0, - 8,0,8,0,16,0,176,0,224,0,8,18,18,10,1,252, - 64,192,64,64,64,78,114,65,65,65,65,66,98,124,64,64, - 64,240,9,16,32,9,0,252,65,0,65,0,0,0,243,128, - 97,0,33,0,50,0,18,0,20,0,28,0,12,0,8,0, - 8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=18 x= 2 y= 7 dx= 9 dy= 0 ascent=15 len=18 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12n[270] U8G_SECTION(".progmem.u8g_font_gdr12n") = { - 0,28,28,246,249,12,0,0,0,0,42,57,0,15,253,12, - 0,7,7,7,8,1,7,16,148,222,48,252,146,16,7,7, - 7,8,0,2,16,16,16,254,16,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,3,3, - 4,1,255,192,192,128,8,18,18,9,0,253,1,1,3,2, - 6,4,4,12,8,8,24,16,48,32,32,96,64,192,7,11, - 11,9,1,0,56,68,130,130,130,130,130,130,132,68,56,6, - 12,12,9,1,0,16,112,144,16,16,16,16,16,16,16,16, - 252,6,12,12,8,1,0,60,68,196,4,4,8,16,16,32, - 68,132,252,7,12,12,8,0,0,28,38,98,2,4,28,2, - 2,2,2,134,124,7,12,12,9,1,0,4,12,12,20,20, - 36,68,68,254,4,4,30,6,11,11,9,2,0,124,64,64, - 64,120,132,4,4,4,132,120,7,12,12,9,1,0,12,48, - 64,64,128,252,198,130,130,130,68,56,7,11,11,9,1,0, - 254,130,4,4,8,8,24,16,48,32,96,7,12,12,9,1, - 0,120,196,196,196,232,60,78,130,130,130,194,124,7,11,11, - 9,1,0,56,68,130,130,130,198,122,2,4,8,112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=30 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12r[1992] U8G_SECTION(".progmem.u8g_font_gdr12r") = { - 0,28,28,246,249,12,2,80,5,85,32,127,252,16,252,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14[5942] U8G_SECTION(".progmem.u8g_font_gdr14") = { - 0,35,33,244,248,14,3,95,7,136,32,255,251,20,250,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,0,2,16,16, - 6,2,250,192,192,128,64,192,192,192,192,192,192,192,192,192, - 192,192,128,9,14,28,11,1,0,12,0,12,0,31,128,109, - 128,76,0,204,0,204,0,204,0,204,0,236,128,125,128,63, - 0,12,0,12,0,10,14,28,11,0,0,7,128,24,192,16, - 128,48,128,48,0,48,0,48,0,126,0,48,0,48,0,48, - 0,32,64,32,64,255,192,9,7,14,11,1,3,221,128,119, - 0,99,0,99,0,115,0,127,0,128,128,12,14,28,11,255, - 0,225,240,48,64,48,192,25,128,29,128,15,0,7,0,6, - 0,63,192,6,0,6,0,6,0,6,0,31,128,2,24,24, - 5,2,251,192,192,192,192,192,192,192,192,192,192,128,0,0, - 64,192,192,192,192,192,192,192,192,192,192,9,16,32,11,1, - 0,30,0,99,0,98,0,112,0,56,0,94,0,199,0,195, - 128,225,128,113,128,63,0,15,0,7,0,67,0,99,0,62, - 0,7,3,3,9,1,12,198,198,198,15,14,28,16,0,0, - 7,192,24,48,49,248,98,44,198,6,204,6,204,6,204,6, - 204,6,206,38,102,76,51,152,24,48,7,192,6,8,8,6, - 0,6,112,152,24,56,120,124,0,124,9,10,20,11,1,0, - 17,128,17,0,34,0,102,0,204,0,204,0,102,0,34,0, - 17,0,17,128,10,5,10,11,0,2,255,192,0,192,0,192, - 0,192,0,192,6,1,1,8,1,5,252,8,8,8,8,0, - 8,60,66,189,149,153,153,86,60,7,1,1,11,2,13,254, - 4,5,5,8,2,9,96,240,240,240,96,8,10,10,9,1, - 2,24,24,24,24,255,24,24,24,0,255,6,8,8,8,1, - 7,120,140,140,8,16,32,68,252,7,8,8,7,255,7,60, - 102,6,28,6,6,134,120,5,5,5,7,2,12,24,48,32, - 64,192,12,15,30,13,1,251,96,192,224,192,96,192,96,192, - 96,192,96,192,96,192,113,192,127,208,92,224,64,0,64,0, - 96,0,96,0,112,0,13,17,34,14,0,253,31,248,99,96, - 195,96,195,96,195,96,227,96,115,96,63,96,3,96,3,96, - 3,96,3,96,3,96,3,96,3,96,3,96,15,248,2,3, - 3,3,1,6,192,192,192,4,5,5,5,1,251,96,96,112, - 48,192,6,8,8,8,1,7,48,240,48,48,48,48,48,252, - 4,8,8,6,1,6,96,240,240,240,240,96,0,240,8,10, - 10,11,2,0,136,140,68,98,51,51,102,68,140,136,12,14, - 28,13,0,0,24,96,120,192,24,192,25,128,27,0,27,0, - 126,0,4,96,12,224,25,96,18,96,51,240,96,96,192,240, - 13,14,28,14,0,0,48,16,240,32,48,96,48,64,48,128, - 48,128,249,0,3,120,2,152,4,24,12,48,8,32,16,72, - 49,248,12,14,28,14,1,0,112,32,152,64,24,64,56,128, - 77,128,141,0,114,0,6,96,4,224,9,96,25,96,19,240, - 32,96,96,240,8,16,16,10,1,250,24,24,16,4,12,12, - 12,24,48,96,96,192,195,195,230,124,13,20,40,14,0,0, - 16,0,28,0,14,0,3,0,0,128,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,13,20,40,14,0,0,0,128, - 0,192,3,160,6,0,0,0,0,0,2,0,3,0,5,0, - 5,128,5,128,8,128,8,192,8,192,31,192,16,96,16,96, - 32,48,32,48,248,120,13,20,40,14,0,0,2,0,7,0, - 13,128,8,64,16,0,0,0,2,0,3,0,5,0,5,128, - 5,128,8,128,8,192,8,192,31,192,16,96,16,96,32,48, - 32,48,248,120,13,19,38,14,0,0,4,64,14,96,19,192, - 0,0,0,0,2,0,3,0,5,0,5,128,5,128,8,128, - 8,192,8,192,31,192,16,96,16,96,32,48,32,48,248,120, - 13,18,36,14,0,0,8,64,12,96,8,64,0,0,2,0, - 3,0,5,0,5,128,5,128,8,128,8,192,8,192,31,192, - 16,96,16,96,32,48,32,48,248,120,13,20,40,14,0,0, - 2,0,7,0,7,128,7,0,0,0,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,18,14,42,18,0,0,7,255, - 128,1,96,128,3,96,128,2,96,0,6,96,0,6,96,0, - 7,255,0,12,98,0,8,96,0,24,96,0,16,96,0,16, - 96,64,48,96,64,249,255,128,11,19,38,12,1,251,7,192, - 24,96,32,0,96,0,64,0,192,0,192,0,192,0,192,0, - 192,0,224,0,96,128,113,192,62,0,8,0,4,0,14,0, - 6,0,24,0,11,20,40,11,0,0,32,0,56,0,28,0, - 6,0,1,0,0,0,255,192,48,64,48,64,48,0,48,0, - 48,0,63,128,49,0,48,0,48,0,48,0,48,32,48,96, - 255,192,11,20,40,11,0,0,1,0,1,128,7,0,12,0, - 0,0,0,0,255,192,48,64,48,64,48,0,48,0,48,0, - 63,128,49,0,48,0,48,0,48,0,48,32,48,96,255,192, - 11,20,40,11,0,0,4,0,14,0,27,0,48,128,0,0, - 0,0,255,192,48,64,48,64,48,0,48,0,48,0,63,128, - 49,0,48,0,48,0,48,0,48,32,48,96,255,192,11,18, - 36,11,0,0,16,128,49,128,49,128,0,0,255,192,48,64, - 48,64,48,0,48,0,48,0,63,128,49,0,48,0,48,0, - 48,0,48,32,48,96,255,192,6,20,20,7,0,0,128,192, - 112,24,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,252,7,20,20,7,0,0,4,14,28,48,64,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,252,7,20,20,7, - 0,0,16,56,108,134,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,252,7,18,18,7,0,0,66,198,198,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,13,14, - 28,14,0,0,127,128,176,224,48,112,48,48,48,24,48,24, - 254,24,48,24,48,24,48,24,48,48,48,112,48,224,255,128, - 15,19,38,15,0,0,2,32,7,32,9,192,0,0,0,0, - 240,126,48,24,56,24,60,24,52,24,50,24,51,24,49,152, - 48,152,48,216,48,120,48,56,48,56,252,24,12,20,40,14, - 1,0,16,0,56,0,12,0,2,0,1,0,0,0,15,128, - 48,192,32,96,96,96,192,48,192,48,192,48,192,48,192,48, - 192,48,96,96,96,64,48,128,31,0,12,20,40,14,1,0, - 1,0,1,192,3,0,12,0,0,0,0,0,15,128,48,192, - 32,96,96,96,192,48,192,48,192,48,192,48,192,48,192,48, - 96,96,96,64,48,128,31,0,12,20,40,14,1,0,6,0, - 14,0,11,0,16,128,32,0,0,0,15,128,48,192,32,96, - 96,96,192,48,192,48,192,48,192,48,192,48,192,48,96,96, - 96,64,48,128,31,0,12,19,38,14,1,0,8,128,28,64, - 55,128,0,0,0,0,15,128,48,192,32,96,96,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,64,48,128, - 31,0,12,18,36,14,1,0,16,128,24,192,16,128,0,0, - 15,128,48,192,32,96,96,96,192,48,192,48,192,48,192,48, - 192,48,192,48,96,96,96,64,48,128,31,0,7,7,7,9, - 1,3,194,102,60,24,60,102,194,12,15,30,14,1,255,15, - 48,48,224,32,224,64,224,193,176,195,48,194,48,198,48,204, - 48,200,48,88,32,112,64,112,128,207,0,128,0,15,20,40, - 15,0,0,8,0,14,0,7,0,1,128,0,64,0,0,252, - 126,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,24,48,28,96,7,192,15,20,40,15,0, - 0,0,64,0,96,1,192,3,0,0,0,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,24,48,28,96,7,192,15,20,40,15,0,0,1, - 0,3,128,6,192,12,96,0,0,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,15,18,36,15,0,0,4,32,12, - 96,12,96,0,0,252,126,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,24,48,28,96,7, - 192,14,20,40,14,0,0,0,128,0,224,1,128,6,0,0, - 0,0,0,224,124,48,48,24,32,24,96,12,64,6,192,7, - 128,3,0,3,0,3,0,3,0,3,0,3,0,15,192,11, - 14,28,12,0,0,252,0,48,0,48,0,63,128,48,192,48, - 96,48,96,48,96,48,96,48,192,63,128,48,0,48,0,252, - 0,13,17,34,13,0,0,7,128,8,192,16,96,48,96,48, - 96,48,224,51,192,55,0,54,0,55,0,51,192,48,240,48, - 56,48,24,52,24,50,16,243,224,10,17,34,11,1,0,96, - 0,48,0,16,0,8,0,4,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,17,34,11,1,0,3,0,6,0,12,0,8,0,16, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,17,34,11,1,0,24, - 0,28,0,54,0,98,0,65,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,15,30,11,1,0,57,0,78,0,0,0,0,0,0, - 0,30,0,99,0,195,0,3,0,31,0,99,0,195,0,195, - 0,199,0,123,192,10,15,30,11,1,0,33,0,99,0,99, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,16,32,11,1,0,28, - 0,60,0,60,0,24,0,0,0,0,0,30,0,99,0,195, - 0,3,0,31,0,99,0,195,0,195,0,199,0,123,192,14, - 10,20,16,1,0,30,112,99,152,195,12,131,12,31,252,115, - 0,195,0,195,0,197,132,120,248,9,15,30,10,1,251,15, - 0,49,128,96,0,192,0,192,0,192,0,192,0,192,0,99, - 0,124,0,16,0,8,0,28,0,12,0,48,0,9,17,34, - 11,1,0,48,0,112,0,24,0,8,0,4,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,17,34,11,1,0,3,0,6,0,6, - 0,12,0,8,0,0,0,0,0,30,0,33,0,65,128,255, - 128,192,0,192,0,192,0,224,0,113,128,62,0,9,17,34, - 11,1,0,12,0,28,0,54,0,35,0,65,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,15,30,11,1,0,33,0,49,128,33, - 0,0,0,0,0,30,0,33,0,65,128,255,128,192,0,192, - 0,192,0,224,0,113,128,62,0,6,17,17,6,0,0,192, - 96,32,48,16,0,0,48,240,48,48,48,48,48,48,48,252, - 7,17,17,6,0,0,12,14,24,16,32,0,0,48,240,48, - 48,48,48,48,48,48,252,7,17,17,6,0,0,48,56,104, - 196,130,0,0,48,240,48,48,48,48,48,48,48,252,7,15, - 15,6,0,0,198,198,198,0,0,48,240,48,48,48,48,48, - 48,48,252,9,16,32,11,1,0,48,0,91,128,12,0,50, - 0,3,0,1,0,31,128,99,128,67,128,193,128,193,128,193, - 128,193,0,227,0,98,0,60,0,13,15,30,13,0,0,14, - 64,19,128,0,0,0,0,0,0,113,192,182,96,56,96,48, - 96,48,96,48,96,48,96,48,96,48,96,253,248,10,17,34, - 12,1,0,48,0,48,0,24,0,12,0,4,0,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,17,34,12,1,0,3,0,3,0,6, - 0,4,0,8,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,10,17,34, - 12,1,0,12,0,30,0,18,0,33,0,64,128,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,15,30,12,1,0,56,128,71,0,0, - 0,0,0,0,0,30,0,35,128,65,128,192,192,192,192,192, - 192,192,192,224,128,113,0,30,0,10,15,30,12,1,0,49, - 128,49,128,33,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,8,7,7, - 9,1,3,24,24,0,255,0,24,24,10,12,24,12,1,255, - 0,64,30,192,35,128,67,192,194,192,196,192,200,192,216,192, - 240,128,113,0,222,0,128,0,11,17,34,12,1,0,48,0, - 24,0,24,0,12,0,4,0,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,17,34,12,1,0,3,0,3,128,6,0,4,0,8,0, - 0,0,0,0,97,128,231,128,97,128,97,128,97,128,97,128, - 97,128,97,128,103,160,57,192,11,17,34,12,1,0,12,0, - 14,0,26,0,49,0,32,128,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,15,30,12,1,0,49,128,49,128,49,128,0,0,0,0, - 97,128,231,128,97,128,97,128,97,128,97,128,97,128,97,128, - 103,160,57,192,12,22,44,11,255,251,0,192,0,192,1,128, - 3,0,2,0,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0,11,22,44,12,0,251,48,0,240,0, - 48,0,48,0,48,0,48,0,48,0,51,128,60,192,56,224, - 48,96,48,96,48,96,48,96,48,64,56,128,55,0,48,0, - 48,0,48,0,48,0,252,0,12,20,40,11,255,251,12,96, - 12,96,8,64,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=10 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14n[445] U8G_SECTION(".progmem.u8g_font_gdr14n") = { - 0,35,33,244,248,14,0,0,0,0,42,57,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,137,0,235,128,60, - 0,60,0,235,0,137,0,24,0,24,0,8,8,8,9,1, - 2,24,24,24,255,24,24,24,24,4,6,6,5,0,253,112, - 240,48,48,32,64,6,1,1,8,1,5,252,2,3,3,5, - 2,0,192,192,192,9,22,44,11,1,252,0,128,1,128,1, - 0,3,0,3,0,2,0,6,0,6,0,12,0,12,0,8, - 0,24,0,24,0,16,0,48,0,48,0,96,0,96,0,64, - 0,192,0,192,0,128,0,9,14,28,11,1,0,28,0,39, - 0,99,0,67,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,0,97,0,98,0,28,0,8,14,14,11,2,0,24, - 120,152,24,24,24,24,24,24,24,24,24,24,255,8,14,14, - 11,1,0,60,103,195,131,3,6,6,12,24,24,48,97,193, - 255,9,14,28,12,1,0,30,0,103,0,195,0,3,0,2, - 0,4,0,30,0,3,0,1,128,1,128,1,128,1,128,195, - 0,60,0,10,14,28,11,0,0,3,0,7,0,7,0,11, - 0,27,0,19,0,35,0,99,0,67,0,255,192,3,0,3, - 0,3,0,15,192,9,14,28,11,0,0,0,128,63,0,32, - 0,32,0,96,0,126,0,67,0,1,128,1,128,1,128,1, - 128,1,0,195,0,60,0,9,14,28,11,1,0,3,0,12, - 0,48,0,32,0,96,0,222,0,227,0,193,128,193,128,193, - 128,193,128,97,0,99,0,30,0,9,13,26,11,1,0,127, - 128,129,0,129,0,3,0,2,0,6,0,4,0,12,0,8, - 0,24,0,24,0,48,0,32,0,9,14,28,11,1,0,62, - 0,71,0,195,0,195,0,195,0,118,0,30,0,39,0,99, - 128,193,128,193,128,193,128,99,0,60,0,9,14,28,11,1, - 0,30,0,99,0,67,0,193,128,193,128,193,128,193,128,99, - 128,61,128,1,0,3,0,6,0,8,0,112,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14r[2791] U8G_SECTION(".progmem.u8g_font_gdr14r") = { - 0,35,33,244,248,14,3,95,7,136,32,127,251,19,251,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17[7056] U8G_SECTION(".progmem.u8g_font_gdr17") = { - 0,40,38,242,247,17,4,64,9,46,32,255,250,23,249,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,6,0,0,3,19,19,7,2,249, - 96,224,224,192,64,64,64,64,64,96,96,96,96,224,224,224, - 224,224,192,11,17,34,13,1,255,6,0,6,0,7,128,31, - 224,38,64,102,0,198,0,198,0,198,0,198,0,198,0,230, - 32,118,64,63,128,15,0,6,0,6,0,11,16,32,13,1, - 0,7,192,24,224,16,64,48,64,48,0,48,0,48,0,48, - 0,255,0,48,0,48,0,48,0,48,32,32,32,96,96,255, - 224,9,8,16,13,2,4,128,128,93,0,119,0,99,0,99, - 0,119,0,93,0,128,128,14,16,32,13,255,0,240,124,48, - 48,24,96,28,96,12,192,14,192,7,128,3,128,3,0,63, - 240,3,0,3,0,3,0,3,0,3,0,15,192,2,27,27, - 6,2,251,192,192,192,192,192,192,192,192,192,192,192,192,128, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,31,0,35,128,97,0,96,0,112,0,60,0, - 127,0,199,128,195,192,193,192,224,192,120,192,63,128,15,0, - 3,128,65,128,65,128,97,0,62,0,9,3,6,11,1,15, - 193,128,193,128,193,128,17,17,51,19,1,0,3,224,0,12, - 24,0,48,6,0,48,246,0,99,27,0,102,1,0,204,1, - 128,204,1,128,204,1,128,204,1,128,204,1,128,70,19,0, - 103,19,0,49,230,0,48,6,0,12,24,0,3,224,0,7, - 8,8,7,0,8,56,76,140,60,108,108,126,126,10,12,24, - 13,1,0,8,64,24,192,16,128,49,128,99,0,230,0,231, - 0,99,0,49,128,16,128,8,192,8,64,11,6,12,13,1, - 2,255,224,0,96,0,96,0,96,0,96,0,96,7,1,1, - 9,1,6,254,9,9,18,10,0,10,62,0,99,0,255,128, - 146,128,156,128,152,128,213,128,107,0,62,0,9,1,2,13, - 2,16,255,128,6,6,6,10,2,10,56,76,204,204,200,112, - 10,12,24,11,1,2,12,0,12,0,12,0,12,0,255,192, - 12,0,12,0,12,0,12,0,0,0,0,0,255,128,7,10, - 10,9,1,8,60,70,198,6,12,24,16,32,66,254,8,10, - 10,9,255,8,30,35,67,2,14,3,3,3,198,60,5,6, - 6,9,3,14,24,56,48,96,192,128,14,18,36,14,0,250, - 48,48,240,112,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,240,63,188,55,56,48,0,48,0,48,0,48,0, - 56,0,48,0,13,20,40,15,1,253,31,248,49,224,97,224, - 193,224,193,224,193,224,193,224,97,224,113,224,31,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 7,248,2,3,3,4,1,8,192,192,192,5,6,6,6,0, - 250,48,32,56,88,16,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,6,8,8,8,1,8,56,76,204, - 204,204,200,112,252,10,12,24,13,2,0,132,0,198,0,98, - 0,35,0,49,128,24,192,25,192,49,128,35,0,98,0,198, - 0,132,0,14,16,32,16,1,0,48,24,240,56,48,48,48, - 96,48,192,48,192,49,128,255,0,3,24,6,56,12,88,12, - 88,24,152,17,252,48,24,96,60,13,16,32,15,1,0,48, - 8,240,16,48,48,48,32,48,96,48,192,48,128,253,128,3, - 112,2,152,7,24,4,16,8,48,24,96,16,200,49,248,14, - 16,32,16,1,0,56,24,204,16,12,48,56,32,12,64,12, - 192,140,128,113,128,3,24,2,56,6,88,12,88,8,152,25, - 252,16,24,48,60,10,19,38,12,1,249,6,0,14,0,14, - 0,12,0,2,0,6,0,6,0,6,0,12,0,28,0,56, - 0,112,0,96,0,192,0,192,192,192,192,192,192,97,128,62, - 0,16,23,46,16,0,0,12,0,30,0,7,0,1,128,0, - 64,0,0,0,128,1,128,3,128,3,192,2,192,6,192,6, - 96,4,96,12,112,12,48,15,240,24,24,24,24,16,24,48, - 12,48,12,248,63,16,23,46,16,0,0,0,48,0,112,1, - 192,3,128,2,0,0,0,0,128,1,128,3,128,3,192,2, - 192,6,192,6,96,4,96,12,112,12,48,15,240,24,24,24, - 24,16,24,48,12,48,12,248,63,16,22,44,16,0,0,3, - 128,6,192,12,32,8,16,0,0,0,128,1,128,3,128,3, - 192,2,192,6,192,6,96,4,96,12,112,12,48,15,240,24, - 24,24,24,16,24,48,12,48,12,248,63,16,22,44,16,0, - 0,0,16,7,176,9,224,16,192,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,21,42, - 16,0,0,12,48,12,48,8,32,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,23,46, - 16,0,0,1,192,3,96,3,96,3,192,1,128,0,0,0, - 128,1,128,3,128,3,192,2,192,6,192,6,96,4,96,12, - 112,12,48,15,240,24,24,24,24,16,24,48,12,48,12,248, - 63,20,17,51,21,0,0,7,255,224,1,176,32,1,176,32, - 1,48,0,3,48,0,3,48,0,6,48,0,7,255,192,4, - 48,128,12,48,0,12,48,0,24,48,0,24,48,0,16,48, - 0,48,48,16,48,48,48,248,255,240,12,23,46,14,1,250, - 7,224,24,112,48,0,32,0,96,0,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,224,0,96,32,112,32,61,192, - 31,128,4,0,4,0,7,0,3,0,2,0,28,0,12,23, - 46,13,1,0,48,0,120,0,28,0,6,0,1,0,0,0, - 255,224,48,32,48,32,48,0,48,0,48,0,48,0,63,192, - 48,128,48,0,48,0,48,0,48,0,48,0,48,16,48,48, - 255,224,12,23,46,13,1,0,0,192,3,192,7,0,12,0, - 16,0,0,0,255,224,48,32,48,32,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,16,48,48,255,224,12,22,44,13,1,0,14,0,27,0, - 48,128,64,64,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,12,21,42,13,1,0,32,128, - 97,128,32,128,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,8,23,23,8,255,0,96,240, - 56,12,2,0,63,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,63,7,23,23,8,1,0,6,14,56,112,64, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,8,22,22,8,0,0,56,108,194,129,0,126,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,126,8,21, - 21,8,0,0,195,195,130,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,126,14,17,34,16,1,0,127, - 128,176,224,48,48,48,24,48,24,48,12,48,12,48,12,255, - 12,48,12,48,12,48,12,48,24,48,24,48,48,48,96,255, - 128,16,22,44,18,1,0,0,16,7,176,9,224,16,192,0, - 0,240,63,48,12,56,12,60,12,52,12,54,12,51,12,51, - 12,49,140,48,204,48,204,48,108,48,60,48,60,48,28,48, - 28,252,12,14,23,46,16,1,0,24,0,28,0,7,0,3, - 128,0,128,0,0,7,192,24,96,48,48,96,24,96,24,64, - 12,192,12,192,12,192,12,192,12,192,12,192,8,96,24,96, - 16,48,48,24,96,15,128,14,23,46,16,1,0,0,96,0, - 240,1,192,3,0,4,0,0,0,7,192,24,96,48,48,96, - 24,96,24,64,12,192,12,192,12,192,12,192,12,192,12,192, - 8,96,24,96,16,48,48,24,96,15,128,14,22,44,16,1, - 0,3,128,4,192,8,96,16,32,0,0,7,192,24,96,48, - 48,96,24,96,24,64,12,192,12,192,12,192,12,192,12,192, - 12,192,8,96,24,96,16,48,48,24,96,15,128,14,22,44, - 16,1,0,0,32,15,48,19,224,32,128,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,14, - 21,42,16,1,0,24,96,24,96,16,64,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,9, - 9,18,11,1,3,193,128,99,0,54,0,28,0,28,0,28, - 0,54,0,99,0,193,128,14,18,36,16,1,255,7,204,24, - 120,48,48,32,120,96,120,64,220,193,204,193,140,195,12,199, - 12,198,12,204,8,104,24,120,16,48,48,120,96,207,128,128, - 0,16,23,46,18,1,0,12,0,30,0,7,0,1,192,0, - 64,0,0,252,63,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,24,24, - 24,12,48,7,224,16,23,46,18,1,0,0,48,0,112,1, - 192,3,128,2,0,0,0,252,63,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,24,24,24,12,48,7,224,16,22,44,18,1,0,1, - 128,2,64,4,32,8,16,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,16,21,42,18,1, - 0,12,48,12,48,8,32,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,15,23,46,16,0, - 0,0,48,0,112,0,192,3,128,2,0,0,0,240,62,56, - 12,24,24,28,24,14,48,6,32,7,96,3,192,3,192,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,7,224,12, - 17,34,14,1,0,252,0,48,0,48,0,63,128,48,224,48, - 96,48,48,48,48,48,48,48,48,48,48,48,96,56,192,55, - 128,48,0,48,0,252,0,14,20,40,15,1,0,3,192,12, - 224,24,112,16,48,48,48,48,48,48,96,49,192,51,0,54, - 0,54,0,55,128,51,224,48,248,48,60,48,28,50,12,50, - 12,51,24,243,240,11,20,40,12,1,0,48,0,120,0,24, - 0,12,0,4,0,2,0,0,0,0,0,31,0,97,128,225, - 128,1,128,1,128,31,128,121,128,225,128,193,128,193,128,199, - 128,121,224,11,20,40,12,1,0,1,128,3,128,3,0,6, - 0,4,0,8,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,12,0,30,0,19,0,33,128,64, - 192,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,11,18,36, - 12,1,0,24,64,60,128,71,0,0,0,0,0,0,0,31, - 0,97,128,225,128,1,128,1,128,31,128,121,128,225,128,193, - 128,193,128,199,128,121,224,11,18,36,12,1,0,97,128,97, - 128,97,128,0,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,14,0,11,0,27,0,27,0,14, - 0,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,17,12,36, - 19,1,0,31,62,0,97,195,0,97,193,128,193,129,128,15, - 255,128,57,128,0,97,128,0,193,128,0,193,128,0,193,193, - 0,198,227,0,120,124,0,10,18,36,12,1,250,15,192,48, - 192,96,128,64,0,192,0,192,0,192,0,192,0,224,0,96, - 64,120,192,63,0,12,0,4,0,7,0,3,0,2,0,28, - 0,10,20,40,12,1,0,48,0,56,0,24,0,12,0,6, - 0,2,0,0,0,0,0,15,0,49,128,96,192,64,192,255, - 192,192,0,192,0,192,0,224,0,96,64,48,128,31,0,10, - 20,40,12,1,0,1,192,1,128,3,0,2,0,4,0,12, - 0,0,0,0,0,15,0,49,128,96,192,64,192,255,192,192, - 0,192,0,192,0,224,0,96,64,48,128,31,0,10,19,38, - 12,1,0,6,0,15,0,25,0,48,128,32,64,0,0,0, - 0,15,0,49,128,96,192,64,192,255,192,192,0,192,0,192, - 0,224,0,96,64,48,128,31,0,10,18,36,12,1,0,32, - 128,48,192,32,128,0,0,0,0,0,0,15,0,49,128,96, - 192,64,192,255,192,192,0,192,0,192,0,224,0,96,64,48, - 128,31,0,7,20,20,7,0,0,192,224,112,48,24,8,0, - 0,24,120,24,24,24,24,24,24,24,24,24,126,7,20,20, - 7,1,0,14,12,24,16,48,96,0,0,48,240,48,48,48, - 48,48,48,48,48,48,252,8,19,19,7,0,0,24,60,100, - 194,129,0,0,24,120,24,24,24,24,24,24,24,24,24,126, - 8,18,18,7,0,0,130,195,130,0,0,0,24,120,24,24, - 24,24,24,24,24,24,24,126,11,19,38,13,1,0,24,0, - 60,224,7,128,31,0,49,128,0,192,0,192,15,192,49,224, - 96,224,64,96,192,96,192,96,192,96,192,64,224,192,96,192, - 49,128,30,0,14,18,36,15,1,0,12,32,31,64,35,128, - 0,0,0,0,0,0,113,224,178,48,52,48,56,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,12,20, - 40,14,1,0,56,0,24,0,12,0,4,0,6,0,3,0, - 0,0,0,0,15,128,48,192,96,96,64,112,192,48,192,48, - 192,48,192,48,224,32,96,96,48,192,31,0,12,20,40,14, - 1,0,0,192,1,128,3,128,3,0,6,0,4,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,12,19,38,14,1,0, - 6,0,15,0,25,128,16,128,32,64,0,0,0,0,15,128, - 48,192,96,96,64,112,192,48,192,48,192,48,192,48,224,32, - 96,96,48,192,31,0,12,18,36,14,1,0,28,96,62,64, - 35,128,0,0,0,0,0,0,15,128,48,192,96,96,64,112, - 192,48,192,48,192,48,192,48,224,32,96,96,48,192,31,0, - 12,18,36,14,1,0,48,192,48,192,48,192,0,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,9,9,18,11,1,3, - 12,0,12,0,0,0,0,0,255,128,0,0,0,0,12,0, - 12,0,12,14,28,14,1,255,0,16,15,176,49,224,96,224, - 65,240,195,48,198,48,198,48,204,48,248,32,112,96,120,192, - 223,0,128,0,14,20,40,14,0,0,28,0,12,0,6,0, - 3,0,1,0,1,128,0,0,0,0,48,48,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,112,56,188, - 31,48,14,20,40,14,0,0,0,96,0,224,0,192,1,128, - 3,0,2,0,0,0,0,0,48,48,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,112,56,188,31,48, - 14,19,38,14,0,0,3,0,7,128,4,192,8,96,16,32, - 0,0,0,0,48,48,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,112,56,188,31,48,14,18,36,14, - 0,0,24,96,24,96,24,96,0,0,0,0,0,0,48,48, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,112,56,188,31,48,14,26,52,13,255,250,0,112,0,96, - 0,224,0,192,1,128,1,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0, - 12,26,52,14,1,250,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,224,56,96,48,48,48,48, - 48,48,48,48,48,48,48,32,48,96,56,64,55,128,48,0, - 48,0,48,0,48,0,48,0,252,0,14,24,48,13,255,250, - 12,48,12,48,8,32,0,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=11 h=25 x= 2 y= 9 dx=13 dy= 0 ascent=21 len=50 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17n[539] U8G_SECTION(".progmem.u8g_font_gdr17n") = { - 0,40,38,242,247,16,0,0,0,0,42,57,0,21,252,16, - 0,10,12,24,12,1,9,12,0,12,0,140,0,204,192,119, - 128,30,0,30,0,119,128,204,192,12,128,12,0,12,0,10, - 9,18,11,1,3,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,4,7,7,6,1,252,112,240,48, - 48,32,96,64,7,1,1,9,1,6,254,3,4,4,6,2, - 255,96,224,224,192,11,25,50,13,1,252,0,96,0,96,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,6,0,6, - 0,6,0,12,0,12,0,12,0,24,0,24,0,48,0,48, - 0,48,0,96,0,96,0,224,0,192,0,192,0,11,16,32, - 13,1,0,15,0,49,128,96,192,64,192,64,224,192,96,192, - 96,192,96,192,96,192,96,192,96,192,64,96,64,96,192,49, - 128,30,0,9,16,32,13,2,0,12,0,60,0,252,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,255,128,10,16,32,13,1,0,15, - 0,49,128,96,192,96,192,0,192,0,192,1,128,1,128,3, - 0,6,0,12,0,28,0,24,0,48,64,96,64,255,192,10, - 16,32,13,1,0,30,0,99,0,97,128,193,128,1,128,3, - 0,6,0,31,0,3,128,1,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,1,128,3,128,7, - 128,5,128,13,128,25,128,17,128,49,128,97,128,65,128,255, - 224,1,128,1,128,1,128,1,128,15,224,10,16,32,13,1, - 0,63,192,32,0,32,0,32,0,96,0,96,0,127,0,67, - 128,1,192,0,192,0,192,0,192,0,192,1,128,193,128,62, - 0,11,16,32,13,1,0,3,128,14,0,24,0,48,0,96, - 0,96,0,207,0,241,192,192,224,192,96,192,96,192,96,96, - 96,96,64,48,128,31,0,11,16,32,13,1,0,127,224,64, - 192,128,192,0,128,1,128,1,128,3,0,3,0,6,0,6, - 0,4,0,12,0,12,0,24,0,24,0,48,0,11,16,32, - 13,1,0,31,0,113,128,224,192,224,192,224,192,241,128,63, - 0,15,128,51,192,96,224,192,96,192,96,192,96,192,64,96, - 128,31,0,11,17,34,13,1,255,31,0,49,128,96,192,192, - 192,192,96,192,96,192,96,224,96,113,224,30,96,0,224,0, - 192,0,192,1,128,3,0,14,0,48,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 2 y=14 dx=23 dy= 0 ascent=22 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17r[3380] U8G_SECTION(".progmem.u8g_font_gdr17r") = { - 0,40,38,242,247,17,4,64,9,46,32,127,250,22,250,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=19 dx=27 dy= 0 ascent=27 len=81 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =27 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20[9119] U8G_SECTION(".progmem.u8g_font_gdr20") = { - 0,47,44,240,246,20,4,220,11,144,32,255,248,27,247,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,0,4,24, - 24,9,2,247,112,240,240,224,0,0,32,96,96,96,96,96, - 96,96,96,96,112,112,112,112,112,112,112,64,12,20,40,15, - 2,255,6,0,6,0,6,0,15,224,54,224,102,96,102,0, - 198,0,198,0,198,0,198,0,198,0,198,0,230,32,118,48, - 63,192,31,128,6,0,6,0,6,0,13,19,38,15,1,0, - 7,224,8,112,16,48,16,32,48,32,48,0,48,0,48,0, - 48,0,255,0,48,0,48,0,48,0,48,0,48,8,32,24, - 96,48,127,240,131,240,11,10,20,15,2,4,192,96,127,192, - 49,192,96,192,96,192,96,192,113,192,63,128,64,64,128,32, - 16,19,38,15,255,0,240,63,56,28,28,24,28,56,14,48, - 6,112,7,96,3,192,3,192,1,128,1,128,63,252,1,128, - 1,128,1,128,1,128,1,128,1,128,15,240,2,32,32,7, - 3,250,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 128,0,0,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,22,44,15,2,0,31,128,49,192,96,128,96,0, - 112,0,120,0,62,0,111,128,199,192,193,224,192,224,224,96, - 240,96,124,96,63,192,15,128,3,192,1,192,64,192,64,192, - 96,128,63,0,9,4,8,13,2,17,97,128,227,128,227,128, - 195,0,21,20,60,24,1,0,1,252,0,6,3,0,24,0, - 192,48,0,96,48,124,96,97,134,48,99,0,48,194,0,24, - 198,0,24,198,0,24,198,0,24,198,0,24,199,0,24,99, - 0,48,97,198,48,48,248,96,48,0,96,24,0,192,6,3, - 0,1,252,0,7,10,10,8,1,9,56,204,140,28,108,204, - 220,238,0,254,12,14,28,16,1,0,6,16,4,48,8,96, - 24,96,48,192,113,192,227,128,227,128,113,192,48,192,24,96, - 8,96,4,48,6,16,13,6,12,15,1,3,255,248,0,24, - 0,24,0,24,0,24,0,24,9,1,2,11,1,8,255,128, - 10,11,22,11,1,11,30,0,97,0,126,128,147,64,151,64, - 156,64,148,64,146,64,105,128,33,0,30,0,10,1,2,16, - 3,19,255,192,7,7,7,11,2,12,60,110,198,198,198,236, - 120,12,14,28,13,1,2,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,4,0,0,0,0, - 0,255,224,8,11,11,10,1,10,62,99,195,3,6,6,12, - 24,50,97,255,9,12,24,11,0,9,31,0,51,128,97,128, - 1,128,3,0,15,0,1,128,1,128,1,128,1,128,195,0, - 62,0,7,7,7,10,3,16,12,30,24,48,48,96,192,15, - 23,46,17,1,248,48,8,240,56,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,56,56,56,120,63,248,55, - 222,51,152,48,0,48,0,48,0,48,0,56,0,56,0,56, - 0,48,0,15,24,48,18,1,252,15,254,48,252,96,216,64, - 216,192,216,192,216,192,216,192,216,224,216,112,216,56,216,15, - 216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0, - 216,0,216,0,216,0,216,3,254,3,4,4,5,1,9,96, - 224,224,192,5,7,7,7,1,249,48,32,48,120,24,48,224, - 8,11,11,11,2,10,24,248,24,24,24,24,24,24,24,24, - 255,7,10,10,9,1,9,56,108,198,198,198,198,108,56,0, - 254,12,14,28,16,2,0,130,0,65,0,97,128,48,192,56, - 224,28,96,12,112,28,112,30,96,56,224,48,192,97,128,65, - 0,130,0,16,19,38,19,2,0,48,6,240,14,48,12,48, - 24,48,56,48,48,48,96,48,224,48,192,205,130,1,142,3, - 30,6,22,6,38,12,70,24,127,24,134,48,6,96,31,15, - 19,38,18,2,0,48,6,240,12,48,8,48,24,48,48,48, - 48,48,96,48,192,48,192,205,128,1,28,3,102,6,70,4, - 6,12,12,24,24,24,48,48,98,96,254,17,19,57,19,1, - 0,60,3,0,70,6,0,6,4,0,28,12,0,6,24,0, - 6,16,0,6,48,0,142,96,0,120,96,0,0,193,0,1, - 135,0,1,143,0,3,11,0,2,19,0,6,35,0,12,63, - 128,12,67,0,24,3,0,48,15,128,10,24,48,13,2,247, - 14,0,30,0,30,0,28,0,0,0,0,0,0,0,12,0, - 12,0,12,0,12,0,28,0,24,0,48,0,48,0,96,0, - 96,0,192,0,192,64,192,192,192,192,224,128,97,128,62,0, - 19,27,81,19,0,0,6,0,0,15,0,0,7,128,0,1, - 192,0,0,96,0,0,16,0,0,0,0,0,64,0,0,224, - 0,0,224,0,1,224,0,1,240,0,1,176,0,3,48,0, - 3,56,0,3,24,0,6,28,0,6,28,0,6,12,0,15, - 254,0,12,6,0,8,6,0,24,7,0,24,3,0,16,3, - 0,48,3,128,254,15,224,19,27,81,19,0,0,0,8,0, - 0,30,0,0,60,0,0,112,0,1,192,0,1,0,0,0, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,19,27, - 81,19,0,0,0,224,0,1,224,0,1,240,0,3,56,0, - 6,12,0,12,4,0,0,0,0,0,64,0,0,224,0,0, - 224,0,1,224,0,1,240,0,1,176,0,3,48,0,3,56, - 0,3,24,0,6,28,0,6,28,0,6,12,0,15,254,0, - 12,6,0,8,6,0,24,7,0,24,3,0,16,3,0,48, - 3,128,254,15,224,19,26,78,19,0,0,3,132,0,7,230, - 0,4,252,0,8,56,0,0,0,0,0,0,0,0,64,0, - 0,224,0,0,224,0,1,224,0,1,240,0,1,176,0,3, - 48,0,3,56,0,3,24,0,6,28,0,6,28,0,6,12, - 0,15,254,0,12,6,0,8,6,0,24,7,0,24,3,0, - 16,3,0,48,3,128,254,15,224,19,25,75,19,0,0,6, - 12,0,6,12,0,14,28,0,6,12,0,0,0,0,0,64, - 0,0,224,0,0,224,0,1,224,0,1,240,0,1,176,0, - 3,48,0,3,56,0,3,24,0,6,28,0,6,28,0,6, - 12,0,15,254,0,12,6,0,8,6,0,24,7,0,24,3, - 0,16,3,0,48,3,128,254,15,224,19,27,81,19,0,0, - 0,224,0,1,176,0,1,48,0,3,48,0,1,176,0,1, - 224,0,0,0,0,0,64,0,0,224,0,0,224,0,1,224, - 0,1,240,0,1,176,0,3,48,0,3,56,0,3,24,0, - 6,28,0,6,28,0,6,12,0,15,254,0,12,6,0,8, - 6,0,24,7,0,24,3,0,16,3,0,48,3,128,254,15, - 224,23,20,60,25,0,0,3,255,252,0,124,4,0,108,4, - 0,236,4,0,204,0,1,204,0,1,140,0,1,140,0,3, - 140,0,3,255,248,7,12,16,6,12,0,6,12,0,12,12, - 0,12,12,0,28,12,0,24,12,2,24,12,2,48,12,6, - 252,63,254,15,27,54,17,1,249,3,248,12,28,16,8,48, - 0,96,0,96,0,64,0,192,0,192,0,192,0,192,0,192, - 0,192,0,224,0,96,0,112,0,120,2,60,12,31,248,15, - 240,0,128,0,128,1,224,0,224,0,96,0,192,3,0,13, - 27,54,16,1,0,16,0,56,0,28,0,15,0,3,128,0, - 192,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,13,27,54,16,1, - 0,0,32,0,240,1,224,3,128,7,0,12,0,0,0,255, - 240,48,16,48,16,48,16,48,0,48,0,48,0,48,0,48, - 0,63,224,48,64,48,0,48,0,48,0,48,0,48,0,48, - 8,48,8,48,24,255,248,13,27,54,16,1,0,3,0,7, - 128,15,192,28,192,56,96,32,48,0,0,255,240,48,16,48, - 16,48,16,48,0,48,0,48,0,48,0,48,0,63,224,48, - 64,48,0,48,0,48,0,48,0,48,0,48,8,48,8,48, - 24,255,248,13,25,50,16,1,0,24,48,56,112,56,112,48, - 96,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,9,27,54,10,255, - 0,96,0,240,0,120,0,28,0,7,0,1,0,0,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,31,128,8,27,27,10,2,0,6,15,30, - 56,96,128,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,10,27,54,10,0,0,28,0, - 30,0,62,0,115,0,193,128,128,192,0,0,63,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,63,0,10,25,50,10,0,0,193,128,225,192,225,192, - 193,128,0,0,63,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,63,0,18,20,60,19, - 0,0,31,240,0,120,28,0,24,6,0,24,3,0,24,1, - 128,24,1,128,24,1,192,24,0,192,24,0,192,255,128,192, - 24,0,192,24,0,192,24,0,192,24,1,128,24,1,128,24, - 1,128,24,3,0,24,6,0,24,28,0,127,240,0,19,26, - 78,21,1,0,3,132,0,7,230,0,4,124,0,8,56,0, - 0,0,0,0,0,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,27,81,19,1,0,12,0,0,30,0,0,15,0, - 0,3,128,0,0,224,0,0,32,0,0,0,0,3,240,0, - 12,24,0,16,12,0,48,6,0,32,3,0,96,3,0,64, - 3,128,192,1,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,224,1,0,96,3,0,96,2,0,48,6,0, - 56,4,0,12,24,0,7,224,0,17,27,81,19,1,0,0, - 24,0,0,60,0,0,120,0,0,224,0,1,128,0,2,0, - 0,0,0,0,3,240,0,12,24,0,16,12,0,48,6,0, - 32,3,0,96,3,0,64,3,128,192,1,128,192,1,128,192, - 1,128,192,1,128,192,1,128,192,1,128,224,1,0,96,3, - 0,96,2,0,48,6,0,56,4,0,12,24,0,7,224,0, - 17,27,81,19,1,0,1,192,0,1,224,0,3,224,0,7, - 48,0,12,24,0,8,12,0,0,0,0,3,240,0,12,24, - 0,16,12,0,48,6,0,32,3,0,96,3,0,64,3,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,192, - 1,128,224,1,0,96,3,0,96,2,0,48,6,0,56,4, - 0,12,24,0,7,224,0,17,26,78,19,1,0,3,4,0, - 7,204,0,8,248,0,16,112,0,0,0,0,0,0,0,3, - 240,0,12,24,0,16,12,0,48,6,0,32,3,0,96,3, - 0,64,3,128,192,1,128,192,1,128,192,1,128,192,1,128, - 192,1,128,192,1,128,224,1,0,96,3,0,96,2,0,48, - 6,0,56,4,0,12,24,0,7,224,0,17,25,75,19,1, - 0,12,24,0,14,28,0,14,28,0,12,24,0,0,0,0, - 3,240,0,12,24,0,16,12,0,48,6,0,32,3,0,96, - 3,0,64,3,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,0,96,3,0,96,2,0, - 48,6,0,56,4,0,12,24,0,7,224,0,11,10,20,13, - 1,4,192,96,96,192,49,128,27,0,14,0,14,0,27,0, - 49,128,96,192,192,96,17,21,63,19,1,255,3,241,128,4, - 31,0,24,14,0,48,30,0,32,31,0,96,63,0,64,59, - 128,192,115,128,192,225,128,192,225,128,193,193,128,195,129,128, - 195,1,128,231,1,0,110,3,0,124,2,0,124,6,0,56, - 4,0,124,24,0,199,224,0,128,0,0,19,27,81,21,1, - 0,6,0,0,15,0,0,7,128,0,1,192,0,0,96,0, - 0,16,0,0,0,0,252,7,224,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,0,24,3,0,28,6,0,14,12,0,3, - 240,0,19,27,81,21,1,0,0,12,0,0,30,0,0,60, - 0,0,112,0,0,192,0,1,0,0,0,0,0,252,7,224, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,0,24,3,0, - 28,6,0,14,12,0,3,240,0,19,27,81,21,1,0,0, - 224,0,0,240,0,1,240,0,3,152,0,6,12,0,4,6, - 0,0,0,0,252,7,224,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,0,24,3,0,28,6,0,14,12,0,3,240,0, - 19,25,75,21,1,0,6,12,0,7,14,0,7,14,0,6, - 12,0,0,0,0,252,7,224,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,0,24,3,0,28,6,0,14,12,0,3,240, - 0,18,27,81,19,0,0,0,12,0,0,30,0,0,60,0, - 0,112,0,0,192,0,1,0,0,0,0,0,240,31,192,56, - 7,0,28,6,0,12,12,0,14,12,0,7,24,0,7,24, - 0,3,48,0,3,176,0,1,224,0,1,224,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,7,248,0,15,20,40,17,1,0,254,0, - 48,0,48,0,48,0,63,224,48,120,48,28,48,14,48,6, - 48,6,48,6,48,6,48,12,48,12,52,56,51,224,48,0, - 48,0,48,0,254,0,16,24,48,18,1,0,1,224,6,56, - 8,24,16,28,16,12,48,12,48,12,48,28,48,56,48,240, - 49,192,49,128,49,128,49,192,48,240,48,124,48,62,48,15, - 48,7,48,3,49,3,49,3,49,134,241,248,13,23,46,15, - 1,0,56,0,56,0,28,0,14,0,6,0,3,0,1,0, - 0,0,15,192,48,224,112,96,96,96,0,96,0,96,15,224, - 63,224,126,96,240,96,224,96,192,96,192,96,65,224,62,120, - 13,23,46,15,1,0,0,224,0,224,1,192,1,128,3,0, - 2,0,4,0,0,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,13,23,46,15,1,0,7,0,7,0,15,128, - 29,192,24,192,48,96,32,32,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,28,16, - 63,32,35,192,64,0,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,48,96, - 56,112,48,96,48,96,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,22,44,15,1,0,7,128, - 13,128,12,192,12,128,13,128,15,0,0,0,15,192,48,224, - 112,96,96,96,0,96,0,96,15,224,63,224,126,96,240,96, - 224,96,192,96,192,96,65,224,62,120,19,15,45,22,2,0, - 31,143,0,113,176,192,96,224,192,224,224,96,128,192,96,0, - 192,96,7,255,192,28,192,0,112,192,0,96,192,0,192,192, - 0,192,224,0,193,96,64,194,112,224,124,31,0,12,22,44, - 14,1,249,7,224,24,96,32,32,96,0,64,0,192,0,192, - 0,192,0,192,0,192,0,224,0,112,16,120,96,63,192,31, - 128,2,0,2,0,7,128,3,128,1,128,3,0,12,0,13, - 23,46,15,1,0,24,0,60,0,12,0,6,0,3,0,1, - 0,1,128,0,0,7,192,24,96,32,48,96,24,64,24,192, - 24,255,240,192,0,192,0,192,0,224,0,96,0,112,8,56, - 48,15,192,13,23,46,15,1,0,0,96,0,240,0,192,1, - 128,1,128,3,0,6,0,0,0,7,192,24,96,32,48,96, - 24,64,24,192,24,255,240,192,0,192,0,192,0,224,0,96, - 0,112,8,56,48,15,192,13,23,46,15,1,0,3,0,7, - 128,15,128,12,192,24,96,16,32,32,16,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,13,21,42,15,1, - 0,24,48,56,112,56,112,48,96,0,0,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,7,23,23,9,0, - 0,224,224,112,48,24,12,4,0,24,120,24,24,24,24,24, - 24,24,24,24,24,24,24,126,8,23,23,9,1,0,7,7, - 14,12,24,48,32,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,252,9,23,46,9,0,0,28,0,28,0,62, - 0,119,0,99,0,193,128,128,128,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,10,21,42,9,0,0,193, - 128,193,128,227,192,193,128,0,0,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,14,23,46,16,1,0,12, - 0,62,24,3,240,3,192,30,224,48,96,0,112,0,56,7, - 152,24,120,32,60,96,28,64,12,192,12,192,12,192,12,192, - 12,192,8,224,24,96,16,112,48,56,96,15,128,16,21,42, - 18,1,0,7,8,15,144,24,224,16,0,0,0,0,0,112, - 112,177,136,54,12,56,12,56,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,252,63,14,23,46, - 16,1,0,28,0,28,0,14,0,6,0,3,0,1,128,0, - 128,0,0,7,192,24,112,32,56,96,24,64,28,192,12,192, - 12,192,12,192,12,192,12,224,8,96,24,112,16,56,32,15, - 192,14,23,46,16,1,0,0,112,0,112,0,224,1,192,1, - 128,3,0,2,0,0,0,7,192,24,112,32,56,96,24,64, - 28,192,12,192,12,192,12,192,12,192,12,224,8,96,24,112, - 16,56,32,15,192,14,23,46,16,1,0,3,128,3,128,7, - 192,14,192,12,96,24,48,48,16,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,14, - 8,31,144,17,224,32,0,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,24, - 48,24,48,56,112,24,48,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,11,10,20,13,1,4,6, - 0,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,6,0,14,16,32,16,1,255,7,204,24,120,32,120,96, - 120,64,252,193,220,193,140,195,140,199,12,198,12,236,8,124, - 24,120,16,120,32,207,192,128,0,15,23,46,17,1,0,28, - 0,28,0,14,0,7,0,3,0,1,128,0,128,0,0,48, - 24,240,120,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,56,24,222,15,24,15,23,46, - 17,1,0,0,112,0,112,0,224,0,192,1,128,1,0,2, - 0,0,0,48,24,240,120,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,56,24,222,15, - 24,15,23,46,17,1,0,3,128,3,128,7,192,14,224,12, - 96,24,48,16,16,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,15,21,42,17,1,0,24,48,28,56,24, - 48,24,48,0,0,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,16,31,62,16,255,248,0,28,0,28,0, - 56,0,112,0,96,0,192,0,128,0,0,126,31,28,6,28, - 4,12,12,14,12,14,8,6,24,7,24,3,16,3,48,3, - 176,1,160,1,224,1,224,0,192,0,192,0,128,1,128,1, - 128,3,0,126,0,124,0,248,0,15,32,64,17,1,248,16, - 0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,240,51,24,52,28,56,12,48,14,48,6,48,6,48, - 6,48,6,48,6,48,4,48,12,56,8,60,16,55,224,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,254,0,16, - 29,58,16,255,248,6,12,14,28,14,28,6,12,0,0,0, - 0,126,31,28,6,28,4,12,12,14,12,14,8,6,24,7, - 24,3,16,3,48,3,176,1,160,1,224,1,224,0,192,0, - 192,0,128,1,128,1,128,3,0,126,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=13 h=30 x= 2 y=11 dx=15 dy= 0 ascent=25 len=60 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20n[619] U8G_SECTION(".progmem.u8g_font_gdr20n") = { - 0,47,44,240,246,19,0,0,0,0,42,57,0,25,251,19, - 0,12,13,26,14,1,11,6,0,6,0,134,0,102,48,242, - 240,27,128,6,0,27,128,114,240,230,48,6,32,6,0,6, - 0,12,11,22,13,1,3,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,6,0,4,8,8, - 7,2,251,112,240,48,48,48,32,64,192,9,1,2,11,1, - 8,255,128,4,4,4,7,2,0,112,240,240,224,13,30,60, - 15,1,251,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,1,192,1,128,1,128,3,128,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,24,0,56, - 0,48,0,48,0,112,0,96,0,96,0,224,0,192,0,13, - 19,38,15,1,0,7,128,24,192,32,96,96,48,64,48,64, - 56,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 16,96,16,96,48,48,32,24,64,15,128,11,19,38,15,2, - 0,2,0,30,0,126,0,134,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,15,0,127,224,11,19,38,15,2,0,15,128,48, - 192,96,96,96,96,96,96,0,96,0,96,0,192,0,192,1, - 128,3,0,7,0,6,0,12,0,24,0,48,32,112,32,224, - 32,255,224,11,19,38,15,2,0,31,0,113,128,96,192,224, - 192,0,192,0,192,1,128,3,0,15,0,3,192,0,192,0, - 224,0,96,0,96,0,96,0,96,128,192,193,128,127,0,12, - 19,38,15,1,0,0,64,1,192,3,192,3,192,6,192,12, - 192,12,192,24,192,48,192,48,192,96,192,224,192,255,240,0, - 192,0,192,0,192,0,192,0,192,7,240,11,19,38,15,2, - 0,63,224,32,0,32,0,96,0,96,0,96,0,96,0,127, - 0,97,192,0,192,0,96,0,96,0,96,0,96,0,96,0, - 64,128,192,193,128,63,0,12,20,40,15,2,0,0,192,7, - 0,14,0,24,0,48,0,112,0,96,0,96,0,207,128,240, - 224,224,96,192,112,192,48,192,48,192,48,96,48,96,32,32, - 96,48,64,15,128,12,19,38,15,2,0,255,240,128,96,128, - 96,0,224,0,192,0,192,1,128,1,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,56,0,48, - 0,12,19,38,15,2,0,31,128,48,192,96,96,224,96,224, - 96,224,96,248,192,127,128,31,128,31,192,49,224,96,112,192, - 112,192,48,192,48,192,32,96,32,112,64,31,128,12,20,40, - 15,2,255,15,128,49,192,32,224,64,96,192,112,192,48,192, - 48,192,48,192,48,96,112,48,176,31,48,0,96,0,96,0, - 96,0,192,1,128,7,0,30,0,48,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=27 dy= 0 ascent=26 len=80 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20r[4232] U8G_SECTION(".progmem.u8g_font_gdr20r") = { - 0,47,44,240,246,20,4,220,11,144,32,127,248,26,248,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 4 y=23 dx=34 dy= 0 ascent=34 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25[13042] U8G_SECTION(".progmem.u8g_font_gdr25") = { - 0,59,57,236,242,25,6,209,16,163,32,255,247,34,245,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,0,5,29,29,11,3,245,112,248,248,248,112, - 0,0,96,96,96,96,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,240,240,240,192,15,25,50,19,2,255,1,128, - 1,128,1,128,1,240,7,252,31,254,57,140,113,132,113,128, - 97,128,225,128,225,128,225,128,225,128,225,128,241,128,113,128, - 121,134,61,140,63,248,31,240,3,192,1,128,1,128,1,128, - 17,25,75,19,1,255,0,252,0,3,255,0,7,15,0,14, - 7,0,12,6,0,12,2,0,28,2,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,127,224,0,255,224,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,24, - 0,128,24,1,0,24,3,0,63,223,0,127,255,0,192,255, - 0,13,13,26,19,3,5,192,24,239,184,127,240,56,224,96, - 112,96,48,96,48,96,48,120,240,63,224,111,176,192,24,128, - 8,21,24,72,19,255,0,120,7,248,252,1,248,62,1,224, - 31,3,128,15,3,128,7,135,0,7,135,0,3,206,0,1, - 206,0,1,252,0,0,248,0,0,248,0,0,112,0,0,112, - 0,15,255,192,31,255,128,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,248,0,3,254,0,3, - 41,41,9,3,248,96,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,128,0,0,0,64,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,192,15,28, - 56,19,2,0,7,224,15,248,28,120,56,24,56,8,56,0, - 60,0,31,0,31,128,63,224,99,248,224,252,224,124,224,30, - 240,30,120,14,62,14,31,14,15,220,3,248,0,248,0,60, - 32,28,32,28,48,28,60,56,63,240,7,192,12,5,10,16, - 2,22,96,48,224,112,224,112,224,112,192,96,25,25,100,29, - 2,0,0,127,0,0,3,255,224,0,7,128,240,0,14,0, - 56,0,28,31,28,0,56,127,206,0,112,225,199,0,97,192, - 131,0,99,128,3,0,195,0,1,128,199,0,1,128,199,0, - 1,128,199,0,1,128,199,0,1,128,199,0,1,128,199,128, - 1,128,99,128,3,0,99,192,67,0,113,241,135,0,56,255, - 14,0,28,60,28,0,14,0,56,0,7,128,240,0,3,255, - 224,0,0,127,0,0,8,14,14,10,1,11,28,60,70,198, - 6,30,102,198,198,206,119,0,255,255,15,18,36,19,2,0, - 2,6,6,4,12,12,12,24,24,56,56,112,112,224,241,224, - 225,192,225,192,241,224,112,240,56,112,24,56,12,24,12,12, - 6,4,2,6,17,8,24,19,1,4,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,0,11,2,4,13,1,9,127,224,255,224,13,14,28,14, - 1,14,15,128,63,224,112,96,127,48,200,152,136,136,143,8, - 138,8,137,8,201,152,92,240,112,112,63,224,15,128,13,2, - 4,20,3,23,127,248,255,248,8,9,9,14,3,15,28,62, - 103,231,231,231,230,124,56,15,18,36,16,1,3,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,0,0,0,0,0,127,252,255, - 252,11,15,30,14,1,12,15,128,31,192,49,224,96,224,64, - 224,0,192,1,192,1,128,3,0,6,0,12,0,24,32,48, - 32,127,224,255,224,11,16,32,13,1,11,31,0,63,128,99, - 192,225,192,1,192,1,128,7,0,31,128,1,192,0,224,0, - 224,0,224,0,224,193,192,127,128,30,0,8,9,9,13,4, - 20,7,15,30,28,56,48,112,96,192,20,27,81,21,1,247, - 12,1,128,252,7,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,30,7,128,31,31,128,31,251,144, - 27,243,224,25,225,128,24,0,0,24,0,0,24,0,0,28, - 0,0,28,0,0,28,0,0,30,0,0,30,0,0,24,0, - 0,20,30,90,22,1,251,3,255,240,28,63,192,48,59,128, - 112,59,128,96,59,128,224,59,128,224,59,128,224,59,128,224, - 59,128,240,59,128,112,59,128,120,59,128,62,59,128,31,251, - 128,7,251,128,0,59,128,0,59,128,0,59,128,0,59,128, - 0,59,128,0,59,128,0,59,128,0,59,128,0,59,128,0, - 59,128,0,59,128,0,59,128,0,59,128,0,127,192,1,255, - 240,3,5,5,6,1,11,96,224,224,224,192,7,9,9,9, - 1,247,24,16,56,60,62,14,12,56,224,10,15,30,13,2, - 12,6,0,62,0,254,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,255,192,9, - 14,28,11,1,11,30,0,63,0,103,0,67,128,193,128,193, - 128,193,128,193,128,225,0,115,0,126,0,60,0,255,128,255, - 128,15,18,36,19,3,0,129,0,193,128,96,192,112,96,48, - 112,56,48,28,56,30,28,15,30,15,30,30,28,28,56,56, - 56,48,112,112,224,96,192,193,128,129,0,19,24,72,23,2, - 0,12,0,192,252,1,224,28,1,128,28,3,128,28,3,0, - 28,6,0,28,14,0,28,12,0,28,24,0,28,56,0,28, - 48,0,255,224,0,0,224,0,0,192,192,1,193,192,1,130, - 192,3,2,192,7,4,192,6,8,192,12,16,192,28,31,224, - 24,63,224,48,0,192,112,3,224,20,24,72,24,2,0,12, - 0,96,252,0,192,28,0,192,28,1,128,28,3,0,28,3, - 0,28,6,0,28,14,0,28,12,0,28,24,0,28,56,0, - 255,176,0,0,97,224,0,99,240,0,196,112,1,204,112,1, - 128,96,3,0,224,7,0,192,6,1,128,12,3,32,28,6, - 16,24,15,240,48,31,240,20,25,75,23,1,0,30,0,0, - 63,0,48,103,128,96,195,128,224,3,0,192,6,1,128,31, - 129,128,3,195,0,0,231,0,0,230,0,97,204,0,63,220, - 0,15,24,0,0,48,0,0,48,96,0,96,224,0,225,96, - 0,195,96,1,130,96,3,132,96,3,12,112,6,31,240,14, - 0,96,12,0,96,24,1,240,14,29,58,18,2,245,3,128, - 7,192,7,192,7,192,3,128,0,0,0,0,3,128,3,128, - 3,128,3,128,3,128,7,0,7,0,14,0,28,0,60,0, - 56,0,112,0,112,0,224,0,224,12,224,28,224,28,224,28, - 240,56,120,112,63,224,31,128,23,34,102,24,0,0,3,0, - 0,7,128,0,7,224,0,1,240,0,0,120,0,0,60,0, - 0,14,0,0,2,0,0,0,0,0,8,0,0,56,0,0, - 60,0,0,60,0,0,108,0,0,110,0,0,110,0,0,198, - 0,0,199,0,0,199,0,1,131,0,1,131,128,1,131,128, - 3,1,128,3,255,192,3,255,192,6,0,224,6,0,224,6, - 0,224,12,0,112,12,0,112,12,0,112,24,0,56,28,0, - 120,255,1,254,23,34,102,24,0,0,0,1,128,0,3,192, - 0,7,192,0,15,0,0,30,0,0,56,0,0,96,0,0, - 192,0,0,0,0,0,8,0,0,56,0,0,60,0,0,60, - 0,0,108,0,0,110,0,0,110,0,0,198,0,0,199,0, - 0,199,0,1,131,0,1,131,128,1,131,128,3,1,128,3, - 255,192,3,255,192,6,0,224,6,0,224,6,0,224,12,0, - 112,12,0,112,12,0,112,24,0,56,28,0,120,255,1,254, - 23,33,99,24,0,0,0,56,0,0,124,0,0,254,0,1, - 231,0,1,131,128,3,1,192,6,0,128,0,0,0,0,8, - 0,0,56,0,0,60,0,0,60,0,0,108,0,0,110,0, - 0,110,0,0,198,0,0,199,0,0,199,0,1,131,0,1, - 131,128,1,131,128,3,1,128,3,255,192,3,255,192,6,0, - 224,6,0,224,6,0,224,12,0,112,12,0,112,12,0,112, - 24,0,56,28,0,120,255,1,254,23,32,96,24,0,0,0, - 224,64,1,248,192,3,253,128,6,31,0,4,6,0,0,0, - 0,0,0,0,0,8,0,0,56,0,0,60,0,0,60,0, - 0,108,0,0,110,0,0,110,0,0,198,0,0,199,0,0, - 199,0,1,131,0,1,131,128,1,131,128,3,1,128,3,255, - 192,3,255,192,6,0,224,6,0,224,6,0,224,12,0,112, - 12,0,112,12,0,112,24,0,56,28,0,120,255,1,254,23, - 31,93,24,0,0,3,129,192,3,129,192,3,129,192,3,1, - 128,3,1,128,0,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,23,34,102,24,0,0,0,62,0,0,126,0,0,199, - 0,0,195,0,0,195,0,0,230,0,0,252,0,0,48,0, - 0,0,0,0,8,0,0,56,0,0,60,0,0,60,0,0, - 108,0,0,110,0,0,110,0,0,198,0,0,199,0,0,199, - 0,1,131,0,1,131,128,1,131,128,3,1,128,3,255,192, - 3,255,192,6,0,224,6,0,224,6,0,224,12,0,112,12, - 0,112,12,0,112,24,0,56,28,0,120,255,1,254,30,25, - 100,31,0,0,1,255,255,240,0,63,255,240,0,25,192,48, - 0,25,192,16,0,57,192,16,0,49,192,0,0,113,192,0, - 0,97,192,0,0,97,192,0,0,225,192,0,0,255,255,192, - 1,255,255,192,1,193,192,128,1,129,192,0,3,129,192,0, - 3,1,192,0,7,1,192,0,7,1,192,0,6,1,192,0, - 14,1,192,0,12,1,192,4,28,1,192,12,28,1,192,24, - 60,3,255,248,255,15,255,248,18,34,102,21,1,247,0,126, - 0,3,255,192,7,7,192,14,1,128,28,0,0,56,0,0, - 48,0,0,112,0,0,112,0,0,96,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,0,112,0,0,120,0,0,56,0,64,60,0,192, - 30,3,128,15,254,0,7,252,0,1,240,0,0,64,0,0, - 96,0,0,240,0,0,120,0,0,56,0,0,48,0,0,224, - 0,3,128,0,18,34,102,20,1,0,12,0,0,62,0,0, - 63,0,0,15,128,0,3,192,0,0,224,0,0,112,0,0, - 16,0,0,0,0,255,255,0,63,255,0,28,3,0,28,1, - 0,28,1,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,31,252,0,31,252,0,28,8,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,64,28,0,192,28,1,128,63,255,128,255,255,128, - 18,34,102,20,1,0,0,12,0,0,30,0,0,62,0,0, - 120,0,0,240,0,1,192,0,3,0,0,6,0,0,0,0, - 0,255,255,0,63,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,31, - 252,0,31,252,0,28,8,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,64, - 28,0,192,28,1,128,63,255,128,255,255,128,18,33,99,20, - 1,0,1,192,0,3,224,0,7,240,0,7,56,0,12,28, - 0,24,14,0,16,2,0,0,0,0,255,255,0,63,255,0, - 28,3,0,28,1,0,28,1,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,31,252,0,31,252,0,28,8, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,64,28,0,192,28,1,128,63, - 255,128,255,255,128,18,31,93,20,1,0,28,14,0,28,14, - 0,28,14,0,28,14,0,24,12,0,0,0,0,255,255,0, - 63,255,0,28,3,0,28,1,0,28,1,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,31,252,0,31,252, - 0,28,8,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,64,28,0,192,28, - 1,128,63,255,128,255,255,128,11,34,68,12,255,0,96,0, - 248,0,252,0,62,0,15,0,3,128,1,192,0,64,0,0, - 63,224,15,128,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 63,224,11,34,68,12,1,0,0,192,1,224,3,224,7,128, - 15,0,28,0,48,0,96,0,0,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,12,33,66,12, - 0,0,14,0,31,0,63,128,57,192,96,224,192,112,128,32, - 0,0,127,192,31,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,127,192,12,31,62,12,0,0,224,112,224,112,224,112, - 224,112,192,96,0,0,127,192,31,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,31,0,127,192,21,25,75,24,1,0,31,248, - 0,255,255,0,28,15,128,28,3,192,28,1,224,28,0,240, - 28,0,112,28,0,112,28,0,120,28,0,56,28,0,56,255, - 240,56,255,224,56,28,0,56,28,0,56,28,0,56,28,0, - 112,28,0,112,28,0,112,28,0,224,28,1,224,28,3,192, - 28,15,128,63,254,0,255,248,0,24,32,96,26,1,0,0, - 240,64,1,248,96,3,252,192,2,31,128,6,6,0,0,0, - 0,0,0,0,248,1,255,60,0,124,30,0,56,30,0,56, - 31,0,56,31,128,56,29,128,56,29,192,56,28,224,56,28, - 96,56,28,112,56,28,56,56,28,28,56,28,28,56,28,14, - 56,28,7,56,28,7,56,28,3,184,28,3,248,28,1,248, - 28,0,248,28,0,248,28,0,120,62,0,56,255,128,24,21, - 34,102,24,1,0,3,0,0,7,128,0,15,192,0,3,224, - 0,0,240,0,0,56,0,0,28,0,0,4,0,0,0,0, - 0,252,0,3,255,0,7,7,128,12,3,192,24,1,224,56, - 0,224,112,0,112,112,0,112,96,0,120,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,224,0,56,224,0,56, - 240,0,48,112,0,112,112,0,96,120,0,224,60,0,192,30, - 1,128,15,7,0,7,254,0,1,248,0,21,34,102,24,1, - 0,0,3,0,0,7,128,0,15,192,0,31,0,0,60,0, - 0,112,0,0,224,0,0,128,0,0,0,0,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,96,120,0,224,60,0,192,30,1,128,15,7, - 0,7,254,0,1,248,0,21,33,99,24,1,0,0,120,0, - 0,252,0,0,252,0,1,206,0,3,135,0,6,1,128,4, - 0,128,0,0,0,0,252,0,3,255,0,7,7,128,12,3, - 192,24,1,224,56,0,224,112,0,112,112,0,112,96,0,120, - 224,0,56,224,0,56,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,240,0,48,112,0,112,112,0,96,120,0, - 224,60,0,192,30,1,128,15,7,0,7,254,0,1,248,0, - 21,32,96,24,1,0,1,224,128,3,240,192,7,249,128,6, - 63,0,12,12,0,0,0,0,0,0,0,0,252,0,3,255, - 0,7,7,128,12,3,192,24,1,224,56,0,224,112,0,112, - 112,0,112,96,0,120,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,240,0,48,112,0, - 112,112,0,96,120,0,224,60,0,192,30,1,128,15,7,0, - 7,254,0,1,248,0,21,31,93,24,1,0,3,1,128,7, - 3,128,7,3,128,7,3,128,2,1,0,0,0,0,0,252, - 0,3,255,0,7,7,128,12,3,192,24,1,224,56,0,224, - 112,0,112,112,0,112,96,0,120,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,224,0,56,240,0, - 48,112,0,112,112,0,96,120,0,224,60,0,192,30,1,128, - 15,7,0,7,254,0,1,248,0,13,12,24,16,2,5,192, - 48,224,120,112,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,112,192,56,21,26,78,24,1,255,0,252,56, - 3,255,112,7,7,224,12,3,224,24,1,224,56,3,240,48, - 7,240,112,7,112,96,14,120,224,28,56,224,28,56,224,56, - 56,224,112,56,224,112,56,224,224,56,225,192,56,243,128,48, - 115,128,112,119,0,96,126,0,224,60,0,192,62,1,128,63, - 7,0,119,254,0,225,248,0,128,0,0,24,34,102,26,1, - 0,1,128,0,3,192,0,3,224,0,0,240,0,0,120,0, - 0,28,0,0,6,0,0,3,0,0,0,0,255,129,255,62, - 0,124,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,112,14,0,112,14,0,112,15,0,224,7,193, - 192,3,255,128,0,126,0,24,34,102,26,1,0,0,1,128, - 0,3,224,0,7,224,0,15,128,0,30,0,0,56,0,0, - 112,0,0,64,0,0,0,0,255,129,255,62,0,124,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 112,14,0,112,14,0,112,15,0,224,7,193,192,3,255,128, - 0,126,0,24,33,99,26,1,0,0,28,0,0,62,0,0, - 127,0,0,231,0,1,193,128,3,128,192,2,0,64,0,0, - 0,255,129,255,62,0,124,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,112,14,0,112,14,0,112, - 15,0,224,7,193,192,3,255,128,0,126,0,24,31,93,26, - 1,0,1,128,192,3,129,192,3,129,192,3,129,192,1,0, - 128,0,0,0,255,129,255,62,0,124,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,14,0,112, - 14,0,112,15,0,224,7,193,192,3,255,128,0,126,0,23, - 34,102,24,0,0,0,1,128,0,3,192,0,7,192,0,15, - 0,0,30,0,0,56,0,0,96,0,0,192,0,0,0,0, - 248,1,254,60,0,120,30,0,96,14,0,224,7,0,192,7, - 129,192,3,129,128,3,195,128,1,195,0,0,231,0,0,238, - 0,0,126,0,0,124,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,124,0,1,255,0,18,25,75,21,1, - 0,255,128,0,60,0,0,28,0,0,28,0,0,31,248,0, - 31,254,0,28,31,0,28,7,128,28,3,128,28,3,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 128,28,7,128,28,15,0,29,254,0,28,248,0,28,0,0, - 28,0,0,28,0,0,62,0,0,255,128,0,20,30,90,23, - 1,0,0,124,0,1,255,0,3,15,128,6,3,128,14,3, - 192,12,1,192,12,1,192,28,1,192,28,1,192,28,3,128, - 28,7,128,28,31,0,28,120,0,28,240,0,28,224,0,28, - 224,0,28,240,0,28,124,0,28,63,0,28,31,192,28,7, - 224,28,1,224,28,0,240,28,0,112,28,128,112,28,128,112, - 28,192,96,28,224,224,60,255,192,252,63,0,16,29,58,18, - 2,0,56,0,60,0,28,0,14,0,14,0,7,0,3,128, - 1,128,0,192,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,0,56,0,120,0,112,0,224,0,192,1,192,3,128, - 3,0,6,0,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,3,128,7,128,7,192,15,224,30,224,28,112,56,56, - 48,24,96,12,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,27,54,18, - 2,0,14,4,31,12,63,152,99,240,64,224,0,0,0,0, - 0,0,0,0,3,224,31,240,56,120,112,56,240,56,192,56, - 0,56,0,120,7,248,28,56,112,56,96,56,224,56,224,56, - 224,120,241,185,127,63,60,24,16,27,54,18,2,0,48,24, - 48,24,112,56,112,56,48,24,0,0,0,0,0,0,0,0, - 3,224,31,240,56,120,112,56,240,56,192,56,0,56,0,120, - 7,248,28,56,112,56,96,56,224,56,224,56,224,120,241,185, - 127,63,60,24,16,28,56,18,2,0,3,192,7,224,12,96, - 12,96,24,96,12,96,15,192,7,128,0,0,0,0,3,224, - 31,240,56,120,112,56,240,56,192,56,0,56,0,120,7,248, - 28,56,112,56,96,56,224,56,224,56,224,120,241,185,127,63, - 60,24,24,18,54,28,2,0,3,225,240,15,243,252,56,119, - 30,112,60,14,224,60,7,240,56,7,192,56,7,1,255,255, - 15,255,254,30,56,0,120,56,0,112,56,0,224,56,0,224, - 60,2,224,92,3,241,159,14,127,15,248,60,3,224,15,27, - 54,17,2,247,1,248,7,254,28,28,56,12,48,4,112,0, - 96,0,224,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,8,120,24,63,240,31,224,15,128,2,0,2,0,3,128, - 7,192,1,192,1,128,7,0,28,0,14,29,58,18,2,0, - 28,0,60,0,30,0,14,0,7,0,3,128,1,128,0,192, - 0,64,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 0,56,0,60,0,120,0,112,0,224,0,192,1,128,1,0, - 3,0,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 1,128,3,192,7,224,7,224,14,112,28,56,24,24,48,12, - 32,4,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,27,54,18,2,0, - 24,12,56,28,56,28,56,28,48,24,0,0,0,0,0,0, - 0,0,3,192,15,240,28,120,48,56,112,28,96,28,224,28, - 255,252,255,248,224,0,224,0,224,0,240,0,112,4,120,12, - 60,56,31,240,7,192,10,29,58,11,0,0,224,0,240,0, - 120,0,56,0,28,0,12,0,14,0,6,0,3,0,0,0, - 0,0,6,0,126,0,30,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,30,0,127,192,10,29,58,11,1,0,1,192,3,192, - 3,128,7,128,7,0,14,0,12,0,24,0,16,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,13,29,58,11,255,0,7,0,7,128, - 15,128,31,192,29,192,56,224,112,112,96,48,192,24,0,0, - 0,0,3,0,63,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,15,0,63,224,12,27,54,11,0,0,192,96,224,112, - 224,112,192,96,192,96,0,0,0,0,0,0,0,0,6,0, - 126,0,30,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,30,0, - 127,192,16,28,56,20,2,0,6,0,63,6,7,159,1,248, - 3,224,15,112,28,56,0,28,0,28,0,14,3,206,15,254, - 28,127,48,31,112,15,96,15,224,7,224,7,224,7,224,7, - 224,6,224,6,240,14,112,12,120,28,60,56,31,240,7,192, - 21,27,81,22,1,0,1,192,128,7,225,0,7,243,0,12, - 126,0,8,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,12,15,0,252,63,128,60,99,192,29,129,192,29,1,192, - 30,1,192,30,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,62,3,192,255,143,248,16,29,58,20,2,0,28,0,30, - 0,14,0,7,0,3,128,3,128,1,192,0,192,0,96,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,0,28,0, - 60,0,56,0,112,0,112,0,224,0,192,1,128,3,0,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,1,192,3, - 192,3,224,7,240,7,112,14,56,28,28,24,12,48,6,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,27,54,20,2,0,7,2,15, - 134,31,204,49,248,32,112,0,0,0,0,0,0,0,0,3, - 224,15,248,28,60,48,30,112,14,96,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,6,112,14,120,12,62,56,31, - 240,7,192,16,27,54,20,2,0,24,12,24,12,28,14,24, - 12,24,12,0,0,0,0,0,0,0,0,3,224,15,248,28, - 60,48,30,112,14,96,15,224,7,224,7,224,7,224,7,224, - 7,224,7,240,6,112,14,120,12,62,56,31,240,7,192,14, - 14,28,16,1,4,1,128,3,128,3,128,3,0,0,0,0, - 0,127,252,255,252,0,0,0,0,1,128,3,128,3,128,3, - 0,16,20,40,20,2,255,0,1,3,227,15,254,28,60,48, - 30,112,30,96,63,224,103,224,199,224,135,225,135,227,7,230, - 7,252,6,120,14,120,12,60,56,127,240,199,192,128,0,21, - 29,87,21,0,0,7,0,0,7,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,48,0,0,24,0, - 0,0,0,0,0,0,12,0,192,252,15,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,3,192, - 28,7,192,30,29,200,15,241,240,7,192,192,21,29,87,21, - 0,0,0,7,0,0,15,128,0,14,0,0,30,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,64,0,0,0,0, - 0,0,0,12,0,192,252,15,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,3,192,28,7,192, - 30,29,200,15,241,240,7,192,192,21,29,87,21,0,0,0, - 112,0,0,120,0,0,248,0,1,252,0,1,222,0,3,142, - 0,7,7,0,6,3,0,12,1,128,0,0,0,0,0,0, - 12,0,192,252,15,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,3,192,28,7,192,30,29,200, - 15,241,240,7,192,192,21,27,81,21,0,0,6,3,0,7, - 3,128,7,3,128,6,3,0,6,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,12,0,192,252,15,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 192,28,7,192,30,29,200,15,241,240,7,192,192,20,38,114, - 20,255,247,0,3,128,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,56,0,0,48,0,0,96,0,0,0, - 0,0,0,0,127,131,240,30,0,224,14,0,192,14,0,192, - 7,1,128,7,1,128,7,3,0,3,131,0,3,131,0,1, - 198,0,1,198,0,1,198,0,0,236,0,0,236,0,0,120, - 0,0,120,0,0,120,0,0,48,0,0,48,0,0,96,0, - 0,96,0,0,224,0,1,192,0,67,128,0,127,0,0,254, - 0,0,124,0,0,18,39,117,21,1,247,12,0,0,252,0, - 0,60,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 60,0,28,255,0,29,143,0,31,7,128,30,3,128,28,3, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,1,192, - 28,1,128,28,1,128,28,3,128,30,3,0,31,134,0,31, - 252,0,28,240,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,62,0,0,255,128,0, - 20,36,108,20,255,247,3,1,128,3,1,128,7,3,128,7, - 3,128,3,1,128,0,0,0,0,0,0,0,0,0,0,0, - 0,127,131,240,30,0,224,14,0,192,14,0,192,7,1,128, - 7,1,128,7,3,0,3,131,0,3,131,0,1,198,0,1, - 198,0,1,198,0,0,236,0,0,236,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,48,0,0,96,0,0,96,0, - 0,224,0,1,192,0,67,128,0,127,0,0,254,0,0,124, - 0,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=38 x= 3 y=14 dx=19 dy= 0 ascent=31 len=114 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25n[810] U8G_SECTION(".progmem.u8g_font_gdr25n") = { - 0,59,57,236,242,24,0,0,0,0,42,57,0,31,249,24, - 0,16,16,32,18,1,14,1,128,1,128,1,128,97,132,113, - 142,121,159,31,248,7,192,3,192,31,248,121,158,241,142,33, - 134,1,128,1,128,1,128,15,14,28,16,1,4,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,6,10,10,9,2,250,60, - 252,60,28,28,24,24,48,32,64,11,2,4,13,1,9,127, - 224,255,224,5,5,5,9,2,255,112,248,248,248,112,17,38, - 114,19,1,249,0,1,128,0,7,0,0,7,0,0,7,0, - 0,14,0,0,14,0,0,14,0,0,28,0,0,28,0,0, - 56,0,0,56,0,0,56,0,0,112,0,0,112,0,0,112, - 0,0,224,0,0,224,0,1,192,0,1,192,0,1,192,0, - 3,128,0,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,28,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,192,0,0,17,24,72,19,1,0,3,224,0,15, - 248,0,28,60,0,56,30,0,48,14,0,112,7,0,96,7, - 0,96,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,3,0,112, - 7,0,112,7,0,120,6,0,60,14,0,30,28,0,15,248, - 0,7,224,0,14,24,48,19,3,0,1,128,7,128,63,128, - 255,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,15,224,127,252,14,24,48,19,2,0, - 3,224,15,248,24,120,48,60,112,28,96,28,224,28,0,28, - 0,24,0,56,0,48,0,112,0,224,1,192,1,128,3,128, - 7,0,14,0,28,0,24,4,48,4,112,12,255,252,255,252, - 15,24,48,19,1,0,3,224,15,248,28,120,56,60,112,28, - 112,28,0,28,0,24,0,48,0,96,3,224,3,248,0,60, - 0,28,0,14,0,14,0,14,0,14,0,14,0,28,64,28, - 240,120,63,240,15,192,16,24,48,19,1,0,0,24,0,120, - 0,120,0,248,1,248,1,184,3,56,7,56,6,56,12,56, - 28,56,24,56,48,56,112,56,96,56,255,255,255,254,0,56, - 0,56,0,56,0,56,0,56,0,124,3,255,15,24,48,19, - 1,0,0,4,31,252,31,248,24,0,24,0,24,0,48,0, - 48,0,48,0,63,224,63,248,48,124,64,28,0,30,0,14, - 0,14,0,14,0,14,0,14,0,28,64,28,240,120,63,240, - 15,192,15,24,48,19,2,0,0,56,0,240,3,192,7,0, - 14,0,28,0,56,0,112,0,112,0,99,224,239,248,248,60, - 240,28,224,30,224,14,224,14,224,14,224,14,112,14,112,12, - 56,28,60,56,31,240,7,192,15,23,46,19,2,0,127,254, - 255,254,192,12,192,12,128,28,0,24,0,56,0,48,0,112, - 0,96,0,96,0,224,0,192,1,192,1,128,3,128,3,0, - 7,0,7,0,14,0,14,0,28,0,56,0,15,24,48,19, - 2,0,15,192,63,240,120,120,112,60,240,28,224,28,224,28, - 240,24,120,48,62,96,31,192,7,240,24,120,48,60,112,30, - 96,14,224,14,224,14,224,14,224,12,112,28,124,56,63,240, - 15,192,15,25,50,19,2,255,7,192,15,240,56,120,48,60, - 112,28,96,28,224,14,224,14,224,14,224,14,240,14,112,30, - 120,62,63,238,15,140,0,28,0,28,0,24,0,56,0,112, - 0,224,1,192,7,128,30,0,48,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 3 y=20 dx=34 dy= 0 ascent=33 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25r[6239] U8G_SECTION(".progmem.u8g_font_gdr25r") = { - 0,59,57,236,242,25,6,209,16,163,32,127,247,33,247,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 5 y=28 dx=41 dy= 0 ascent=42 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30[18369] U8G_SECTION(".progmem.u8g_font_gdr30") = { - 0,71,68,232,239,30,9,231,23,124,32,255,245,42,243,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,11, - 0,0,6,35,35,13,3,243,56,124,252,252,252,248,112,0, - 16,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 120,120,120,120,120,124,124,124,124,120,96,18,30,90,23,2, - 255,0,96,0,0,96,0,0,96,0,0,96,0,0,255,0, - 3,255,128,15,255,192,30,99,128,60,97,128,56,97,0,120, - 96,0,112,96,0,240,96,0,240,96,0,240,96,0,240,96, - 0,240,96,0,240,96,0,248,96,0,120,96,0,124,96,192, - 62,97,128,63,231,128,31,255,0,15,252,0,3,248,0,0, - 96,0,0,96,0,0,96,0,0,96,0,19,29,87,23,2, - 0,0,127,0,1,255,224,3,131,224,7,1,192,6,0,192, - 14,0,192,14,0,192,30,0,64,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,255,248,0,255,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 28,0,0,28,0,32,28,0,32,24,0,96,56,0,224,63, - 255,224,127,255,224,192,255,224,15,15,30,23,4,7,128,2, - 192,6,103,204,63,248,56,56,112,28,96,12,96,12,96,12, - 96,12,48,24,56,56,127,252,231,206,192,6,25,28,112,23, - 254,0,126,0,255,128,254,0,63,128,31,0,30,0,15,128, - 60,0,7,192,120,0,3,192,112,0,3,224,240,0,1,224, - 224,0,0,241,224,0,0,241,192,0,0,123,192,0,0,127, - 128,0,0,63,0,0,0,63,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,15,255,252,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,127,128,0,1,255, - 224,0,4,49,49,11,4,246,112,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,224,0,0, - 0,0,0,112,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,224,19,34,102,24,2,0,1, - 248,0,7,254,0,30,31,0,60,7,0,60,6,0,60,0, - 0,62,0,0,63,0,0,31,128,0,31,224,0,31,248,0, - 63,252,0,121,255,0,240,127,128,240,63,192,240,15,192,240, - 7,224,248,3,224,124,1,224,126,1,224,63,129,192,31,225, - 192,7,251,128,3,255,0,0,255,0,0,63,128,0,15,128, - 16,7,128,16,7,128,24,7,128,28,7,0,30,15,0,31, - 254,0,3,240,0,15,5,10,19,2,27,112,14,240,30,240, - 30,240,30,224,28,30,30,120,34,2,0,0,31,224,0,0, - 255,252,0,1,224,30,0,7,128,7,128,14,0,1,192,28, - 3,240,224,24,15,252,96,48,60,60,48,112,112,8,56,96, - 224,0,24,97,224,0,24,193,224,0,12,195,192,0,12,195, - 192,0,12,195,192,0,12,195,192,0,12,195,192,0,12,195, - 192,0,12,195,224,0,12,97,224,0,24,97,240,8,24,112, - 248,12,56,48,124,48,48,24,63,224,96,28,15,128,224,14, - 0,1,192,7,128,7,128,1,224,30,0,0,255,252,0,0, - 31,224,0,11,15,30,12,1,14,15,0,31,0,51,128,97, - 128,97,128,3,128,29,128,97,128,193,128,193,128,239,128,253, - 224,121,128,255,192,255,192,18,21,63,23,2,0,0,128,64, - 1,128,192,3,1,128,7,3,0,14,7,0,14,14,0,28, - 30,0,60,60,0,120,60,0,240,120,0,240,120,0,248,120, - 0,120,60,0,60,60,0,28,30,0,14,14,0,14,7,0, - 7,3,0,3,1,128,1,128,192,0,128,64,20,10,30,23, - 1,4,127,255,240,255,255,240,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,96, - 14,2,4,16,1,11,127,252,255,248,15,17,34,17,1,17, - 7,192,31,240,56,56,96,12,79,132,196,70,132,66,132,194, - 135,130,133,130,132,130,196,198,68,100,106,60,56,56,31,240, - 7,192,16,2,4,24,4,28,127,255,255,254,11,11,22,17, - 3,18,15,0,63,192,113,224,96,224,224,224,224,224,224,224, - 224,192,241,128,127,0,62,0,17,22,66,20,1,3,0,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,0,0,0,0,0,0,0,0,0,127,255,128,255,255,128, - 13,17,34,17,2,15,7,192,31,240,112,248,96,120,224,120, - 0,120,0,112,0,224,1,224,3,192,7,128,15,0,30,0, - 60,8,120,24,255,248,255,248,14,18,36,16,1,14,15,128, - 63,224,113,240,224,240,192,240,0,240,1,224,7,128,15,224, - 1,240,0,120,0,60,0,60,0,60,128,120,224,248,63,224, - 15,128,10,10,20,15,5,25,7,128,7,192,15,0,15,0, - 30,0,60,0,56,0,112,0,96,0,192,0,25,33,132,26, - 1,245,6,0,24,0,254,0,248,0,126,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,31,0, - 248,0,31,1,248,0,31,131,248,0,31,255,121,0,27,254, - 127,128,25,252,126,0,24,240,56,0,24,0,0,0,24,0, - 0,0,24,0,0,0,28,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,30,0,0,0,31,0,0,0,31,0, - 0,0,24,0,0,0,23,36,108,26,1,250,1,255,254,15, - 255,254,31,7,252,60,7,112,120,7,112,120,7,112,240,7, - 112,240,7,112,240,7,112,240,7,112,240,7,112,248,7,112, - 120,7,112,124,7,112,62,7,112,31,135,112,15,255,112,1, - 255,112,0,7,112,0,7,112,0,7,112,0,7,112,0,7, - 112,0,7,112,0,7,112,0,7,112,0,7,112,0,7,112, - 0,7,112,0,7,112,0,7,112,0,7,112,0,7,112,0, - 7,112,0,31,248,0,63,254,4,5,5,7,2,14,112,240, - 240,240,224,8,10,10,11,2,246,24,56,48,62,127,15,15, - 30,120,224,13,17,34,16,2,15,3,128,31,128,255,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,15,192,127,248,12,15,30,14,1, - 14,15,128,63,192,49,224,96,96,192,112,192,48,192,48,192, - 48,224,48,224,96,120,192,63,128,31,0,255,240,255,240,18, - 21,63,23,3,0,64,64,0,224,96,0,96,48,0,48,24, - 0,56,28,0,28,14,0,14,15,0,15,7,128,7,135,128, - 7,195,192,3,195,192,7,195,192,7,135,128,15,7,128,30, - 15,0,28,14,0,56,28,0,48,56,0,112,48,0,96,96, - 0,192,64,0,24,29,87,28,2,0,4,0,4,60,0,14, - 204,0,24,12,0,56,12,0,48,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,12,6, - 0,127,142,0,0,28,0,0,24,4,0,56,28,0,112,28, - 0,96,44,0,224,108,1,192,76,1,192,140,3,129,12,3, - 3,12,7,3,255,14,7,254,12,0,12,28,0,12,56,0, - 127,24,29,87,28,2,0,4,0,6,60,0,14,204,0,28, - 12,0,24,12,0,56,12,0,112,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,127,142, - 0,0,14,0,0,28,60,0,24,255,0,57,199,0,115,131, - 0,99,3,0,224,2,1,192,4,1,128,8,3,128,16,7, - 0,32,7,0,65,14,0,129,12,1,255,28,1,255,25,29, - 116,28,1,0,15,128,3,0,31,192,7,0,49,192,14,0, - 112,192,12,0,0,192,28,0,1,128,24,0,15,0,56,0, - 1,192,112,0,0,192,96,0,0,192,224,0,0,193,192,0, - 0,193,128,0,193,195,128,0,127,135,0,0,30,7,0,0, - 0,14,2,0,0,12,14,0,0,28,14,0,0,56,22,0, - 0,48,38,0,0,112,102,0,0,224,198,0,0,224,134,0, - 1,193,134,128,3,131,255,0,3,128,6,0,7,0,6,0, - 6,0,6,0,14,0,63,128,17,35,105,21,2,243,0,224, - 0,1,240,0,3,240,0,3,240,0,3,224,0,1,192,0, - 0,0,0,0,0,0,0,0,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,7,0,0,15,0,0,30,0,0,60,0,0, - 60,0,0,120,0,0,120,0,0,240,0,0,240,3,128,240, - 7,128,240,7,128,240,7,128,248,15,0,120,15,0,126,30, - 0,63,248,0,15,224,0,28,41,164,29,0,0,0,128,0, - 0,1,192,0,0,3,240,0,0,1,248,0,0,0,124,0, - 0,0,31,0,0,0,7,128,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, - 0,0,15,0,0,0,15,0,0,0,31,128,0,0,31,128, - 0,0,27,128,0,0,59,192,0,0,57,192,0,0,49,224, - 0,0,113,224,0,0,112,224,0,0,96,240,0,0,224,240, - 0,0,224,112,0,0,192,120,0,1,192,120,0,1,192,56, - 0,1,255,252,0,3,255,252,0,3,128,30,0,3,0,30, - 0,7,0,30,0,7,0,15,0,6,0,15,0,14,0,15, - 0,14,0,7,128,12,0,7,128,62,0,7,192,255,192,63, - 240,28,41,164,29,0,0,0,0,32,0,0,0,56,0,0, - 0,252,0,0,1,248,0,0,3,224,0,0,15,128,0,0, - 30,0,0,0,56,0,0,0,32,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,7,0,0,0,15,0,0,0, - 15,0,0,0,31,128,0,0,31,128,0,0,27,128,0,0, - 59,192,0,0,57,192,0,0,49,224,0,0,113,224,0,0, - 112,224,0,0,96,240,0,0,224,240,0,0,224,112,0,0, - 192,120,0,1,192,120,0,1,192,56,0,1,255,252,0,3, - 255,252,0,3,128,30,0,3,0,30,0,7,0,30,0,7, - 0,15,0,6,0,15,0,14,0,15,0,14,0,7,128,12, - 0,7,128,62,0,7,192,255,192,63,240,28,41,164,29,0, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,121,224,0,0,240,240,0,1,192,56,0,1,128,24, - 0,1,0,16,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,39,156,29,0,0,0,16,8,0,0, - 124,12,0,0,254,28,0,1,255,248,0,1,135,240,0,3, - 3,224,0,2,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0, - 31,128,0,0,31,128,0,0,27,128,0,0,59,192,0,0, - 57,192,0,0,49,224,0,0,113,224,0,0,112,224,0,0, - 96,240,0,0,224,240,0,0,224,112,0,0,192,120,0,1, - 192,120,0,1,192,56,0,1,255,252,0,3,255,252,0,3, - 128,30,0,3,0,30,0,7,0,30,0,7,0,15,0,6, - 0,15,0,14,0,15,0,14,0,7,128,12,0,7,128,62, - 0,7,192,255,192,63,240,28,38,152,29,0,0,0,128,32, - 0,0,224,56,0,1,224,120,0,1,224,120,0,1,224,120, - 0,0,128,32,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,42,168,29,0,0,0,2,0,0,0, - 15,128,0,0,31,192,0,0,24,192,0,0,48,192,0,0, - 48,192,0,0,48,192,0,0,63,128,0,0,31,0,0,0, - 8,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 7,0,0,0,15,0,0,0,15,0,0,0,31,128,0,0, - 31,128,0,0,27,128,0,0,59,192,0,0,57,192,0,0, - 49,224,0,0,113,224,0,0,112,224,0,0,96,240,0,0, - 224,240,0,0,224,112,0,0,192,120,0,1,192,120,0,1, - 192,56,0,1,255,252,0,3,255,252,0,3,128,30,0,3, - 0,30,0,7,0,30,0,7,0,15,0,6,0,15,0,14, - 0,15,0,14,0,7,128,12,0,7,128,62,0,7,192,255, - 192,63,240,36,30,150,37,0,0,0,127,255,255,192,0,31, - 255,255,224,0,7,252,0,192,0,7,60,0,192,0,7,60, - 0,192,0,14,60,0,192,0,14,60,0,0,0,30,60,0, - 0,0,28,60,0,0,0,28,60,0,0,0,60,60,0,0, - 0,56,60,0,0,0,120,60,0,0,0,127,255,255,0,0, - 127,255,255,0,0,240,60,6,0,0,224,60,0,0,1,224, - 60,0,0,1,192,60,0,0,1,192,60,0,0,3,128,60, - 0,0,3,128,60,0,0,7,128,60,0,0,7,0,60,0, - 0,7,0,60,0,16,14,0,60,0,48,14,0,60,0,48, - 30,0,62,0,112,62,0,127,255,224,255,193,255,255,224,22, - 40,120,26,2,246,0,31,224,0,255,252,1,192,252,7,128, - 56,14,0,16,14,0,0,28,0,0,56,0,0,56,0,0, - 120,0,0,112,0,0,112,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,248,0,0,120,0,0,124,0,0,60,0,0,62,0,8, - 31,0,60,15,128,240,15,255,224,3,255,128,0,254,0,0, - 24,0,0,16,0,0,28,0,0,62,0,0,63,0,0,15, - 0,0,15,0,0,30,0,0,120,0,1,192,0,21,41,123, - 24,1,0,4,0,0,14,0,0,31,0,0,15,192,0,3, - 224,0,0,240,0,0,60,0,0,14,0,0,4,0,0,0, - 0,0,0,0,255,255,224,127,255,240,30,0,96,30,0,96, - 30,0,96,30,0,96,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,128,31,255, - 128,30,3,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,8,30, - 0,24,30,0,24,31,0,56,127,255,240,255,255,240,21,41, - 123,24,1,0,0,1,0,0,3,192,0,7,224,0,15,192, - 0,63,0,0,124,0,0,240,0,1,192,0,1,0,0,0, - 0,0,0,0,0,255,255,224,127,255,240,30,0,96,30,0, - 96,30,0,96,30,0,96,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,31,255,128,31, - 255,128,30,3,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,8, - 30,0,24,30,0,24,31,0,56,127,255,240,255,255,240,21, - 41,123,24,1,0,0,48,0,0,120,0,0,252,0,1,254, - 0,3,207,0,7,7,0,14,1,128,28,0,192,16,0,128, - 0,0,0,0,0,0,255,255,224,127,255,240,30,0,96,30, - 0,96,30,0,96,30,0,96,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,31,255,128, - 31,255,128,30,3,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 8,30,0,24,30,0,24,31,0,56,127,255,240,255,255,240, - 21,38,114,24,1,0,4,1,0,15,3,192,15,3,192,15, - 3,192,14,3,128,4,1,0,0,0,0,0,0,0,255,255, - 224,127,255,240,30,0,96,30,0,96,30,0,96,30,0,96, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,31,255,128,31,255,128,30,3,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,8,30,0,24,30,0,24,31, - 0,56,127,255,240,255,255,240,13,41,82,14,255,0,32,0, - 112,0,252,0,126,0,31,0,7,128,1,224,0,112,0,32, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 13,41,82,14,2,0,0,64,0,112,1,248,3,240,7,192, - 31,0,60,0,112,0,64,0,0,0,0,0,255,192,127,128, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,127,128,255,192,15,41,82,14,255,0,1,128, - 3,192,7,224,15,240,30,120,56,60,112,12,224,6,64,4, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 14,38,76,14,0,0,64,16,112,28,240,60,240,60,224,56, - 64,16,0,0,0,0,63,240,31,224,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,31,224, - 63,240,25,30,120,28,1,0,7,254,0,0,255,255,192,0, - 127,3,240,0,15,0,248,0,15,0,124,0,15,0,62,0, - 15,0,30,0,15,0,31,0,15,0,15,0,15,0,15,0, - 15,0,15,128,15,0,7,128,15,0,7,128,15,0,7,128, - 255,254,7,128,255,252,7,128,15,0,7,128,15,0,7,128, - 15,0,7,128,15,0,7,0,15,0,15,0,15,0,15,0, - 15,0,30,0,15,0,30,0,15,0,60,0,15,0,124,0, - 15,0,248,0,15,3,224,0,31,255,192,0,127,254,0,0, - 27,39,156,31,2,0,0,32,16,0,0,124,12,0,0,254, - 24,0,1,255,240,0,3,15,240,0,3,3,224,0,2,1, - 0,0,0,0,0,0,0,0,0,0,252,0,63,224,124,0, - 15,128,30,0,7,0,31,0,7,0,31,0,7,0,31,128, - 7,0,31,192,7,0,29,192,7,0,28,224,7,0,28,240, - 7,0,28,120,7,0,28,56,7,0,28,60,7,0,28,30, - 7,0,28,14,7,0,28,15,7,0,28,7,135,0,28,7, - 135,0,28,3,199,0,28,1,231,0,28,1,231,0,28,0, - 247,0,28,0,127,0,28,0,127,0,28,0,63,0,28,0, - 31,0,28,0,31,0,28,0,15,0,62,0,7,0,255,128, - 3,0,25,41,164,29,2,0,2,0,0,0,3,128,0,0, - 7,192,0,0,7,224,0,0,1,248,0,0,0,124,0,0, - 0,30,0,0,0,7,128,0,0,1,0,0,0,0,0,0, - 0,0,0,0,0,63,0,0,0,255,224,0,3,193,240,0, - 7,0,248,0,14,0,124,0,28,0,62,0,60,0,30,0, - 56,0,31,0,120,0,15,0,120,0,15,0,112,0,15,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 248,0,7,0,120,0,15,0,120,0,15,0,124,0,14,0, - 60,0,28,0,62,0,28,0,31,0,56,0,15,128,112,0, - 7,193,224,0,3,255,128,0,0,254,0,0,25,41,164,29, - 2,0,0,0,128,0,0,0,224,0,0,1,240,0,0,7, - 240,0,0,15,192,0,0,30,0,0,0,56,0,0,0,224, - 0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,255,224,0,3,193,240,0,7,0,248,0,14,0, - 124,0,28,0,62,0,60,0,30,0,56,0,31,0,120,0, - 15,0,120,0,15,0,112,0,15,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,248,0,7,0,120,0, - 15,0,120,0,15,0,124,0,14,0,60,0,28,0,62,0, - 28,0,31,0,56,0,15,128,112,0,7,193,224,0,3,255, - 128,0,0,254,0,0,25,41,164,29,2,0,0,28,0,0, - 0,62,0,0,0,126,0,0,0,127,0,0,0,227,128,0, - 1,193,192,0,3,128,224,0,6,0,112,0,4,0,32,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 25,39,156,29,2,0,0,64,32,0,1,248,48,0,3,252, - 48,0,3,255,224,0,6,31,192,0,4,15,128,0,12,2, - 0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,255, - 224,0,3,193,240,0,7,0,248,0,14,0,124,0,28,0, - 62,0,60,0,30,0,56,0,31,0,120,0,15,0,120,0, - 15,0,112,0,15,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,248,0,7,0,120,0,15,0,120,0, - 15,0,124,0,14,0,60,0,28,0,62,0,28,0,31,0, - 56,0,15,128,112,0,7,193,224,0,3,255,128,0,0,254, - 0,0,25,38,152,29,2,0,1,0,64,0,3,128,224,0, - 3,128,224,0,7,129,224,0,3,128,224,0,2,0,128,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 15,14,28,20,2,6,96,6,240,14,120,28,60,56,30,112, - 15,224,7,192,7,192,15,224,30,112,60,56,120,28,240,14, - 96,6,25,31,124,29,2,255,0,63,7,128,1,255,207,0, - 3,193,254,0,7,0,126,0,14,0,60,0,28,0,126,0, - 56,0,126,0,56,0,255,0,120,1,239,0,120,1,239,0, - 112,3,207,128,240,7,135,128,240,7,7,128,240,15,7,128, - 240,30,7,128,240,60,7,128,240,60,7,128,240,120,7,128, - 240,240,7,128,240,224,7,0,121,224,7,0,123,192,15,0, - 123,128,14,0,63,128,12,0,63,0,28,0,30,0,56,0, - 31,0,112,0,63,193,224,0,121,255,128,0,240,126,0,0, - 192,0,0,0,27,41,164,31,2,0,0,128,0,0,1,192, - 0,0,3,240,0,0,1,248,0,0,0,124,0,0,0,30, - 0,0,0,7,128,0,0,1,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,192,127,224,127,128,63,192,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 30,0,15,0,30,0,15,0,30,0,7,128,60,0,7,192, - 120,0,3,224,240,0,1,255,224,0,0,63,128,0,27,41, - 164,31,2,0,0,0,32,0,0,0,120,0,0,0,252,0, - 0,1,248,0,0,3,224,0,0,15,128,0,0,30,0,0, - 0,56,0,0,0,32,0,0,0,0,0,0,0,0,0,0, - 255,192,127,224,127,128,63,192,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,30,0,15,0,30,0, - 15,0,30,0,7,128,60,0,7,192,120,0,3,224,240,0, - 1,255,224,0,0,63,128,0,27,41,164,31,2,0,0,6, - 0,0,0,15,0,0,0,31,128,0,0,63,192,0,0,121, - 224,0,0,224,240,0,1,192,48,0,3,128,24,0,1,0, - 16,0,0,0,0,0,0,0,0,0,255,192,127,224,127,128, - 63,192,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,30,0,15,0,30,0,15,0,30,0,7,128, - 60,0,7,192,120,0,3,224,240,0,1,255,224,0,0,63, - 128,0,27,38,152,31,2,0,0,128,32,0,0,224,56,0, - 1,224,120,0,1,224,120,0,1,192,112,0,0,128,32,0, - 0,0,0,0,0,0,0,0,255,192,127,224,127,128,63,192, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,30,0,15,0,30,0,15,0,30,0,7,128,60,0, - 7,192,120,0,3,224,240,0,1,255,224,0,0,63,128,0, - 28,41,164,29,0,0,0,0,32,0,0,0,56,0,0,0, - 252,0,0,1,248,0,0,3,224,0,0,7,128,0,0,30, - 0,0,0,56,0,0,0,32,0,0,0,0,0,0,0,0, - 0,0,252,0,63,240,254,0,63,240,31,0,15,128,15,0, - 7,0,15,128,14,0,7,192,14,0,3,192,28,0,3,224, - 60,0,1,224,56,0,0,240,120,0,0,248,112,0,0,120, - 224,0,0,125,224,0,0,61,192,0,0,63,192,0,0,31, - 128,0,0,31,128,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,63,192,0,0,255,240,0,21,30,90,25,2,0, - 255,224,0,127,128,0,30,0,0,30,0,0,30,0,0,30, - 0,0,31,254,0,31,255,128,30,15,192,30,3,224,30,1, - 240,30,0,248,30,0,120,30,0,120,30,0,120,30,0,120, - 30,0,120,30,0,120,30,0,240,30,0,240,30,1,224,31, - 7,192,30,255,128,30,124,0,30,0,0,30,0,0,30,0, - 0,30,0,0,127,128,0,255,224,0,25,36,144,27,1,0, - 0,31,128,0,0,127,224,0,1,195,240,0,3,128,248,0, - 7,0,120,0,7,0,124,0,14,0,60,0,14,0,60,0, - 14,0,60,0,30,0,60,0,30,0,60,0,30,0,120,0, - 30,1,248,0,30,7,240,0,30,15,192,0,30,31,0,0, - 30,60,0,0,30,60,0,0,30,60,0,0,30,62,0,0, - 30,63,0,0,30,31,192,0,30,15,240,0,30,3,252,0, - 30,0,254,0,30,0,127,0,30,0,31,128,30,0,15,128, - 30,0,7,128,30,32,7,128,30,48,7,128,30,48,7,0, - 30,56,15,0,30,60,30,0,62,63,252,0,254,7,224,0, - 20,35,105,22,2,0,30,0,0,62,0,0,31,0,0,15, - 0,0,7,128,0,3,192,0,1,192,0,0,224,0,0,96, - 0,0,48,0,0,0,0,0,0,0,0,0,0,1,248,0, - 15,254,0,28,30,0,120,15,0,112,15,0,240,15,0,128, - 15,0,0,15,0,0,15,0,0,255,0,7,255,0,31,143, - 0,62,15,0,120,15,0,248,15,0,240,15,0,240,15,0, - 240,31,0,240,63,0,120,239,32,127,143,240,30,7,128,20, - 35,105,22,2,0,0,15,0,0,31,0,0,30,0,0,60, - 0,0,56,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,1,248,0,15, - 254,0,28,30,0,120,15,0,112,15,0,240,15,0,128,15, - 0,0,15,0,0,15,0,0,255,0,7,255,0,31,143,0, - 62,15,0,120,15,0,248,15,0,240,15,0,240,15,0,240, - 31,0,240,63,0,120,239,32,127,143,240,30,7,128,20,34, - 102,22,2,0,0,224,0,1,240,0,3,240,0,7,56,0, - 6,28,0,12,14,0,24,6,0,48,3,0,32,1,128,0, - 0,0,0,0,0,0,0,0,1,248,0,15,254,0,28,30, - 0,120,15,0,112,15,0,240,15,0,128,15,0,0,15,0, - 0,15,0,0,255,0,7,255,0,31,143,0,62,15,0,120, - 15,0,248,15,0,240,15,0,240,15,0,240,31,0,240,63, - 0,120,239,32,127,143,240,30,7,128,20,32,96,22,2,0, - 7,0,128,15,193,128,31,193,0,63,243,0,48,254,0,96, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,28,30,0,120,15,0,112,15,0,240,15,0, - 128,15,0,0,15,0,0,15,0,0,255,0,7,255,0,31, - 143,0,62,15,0,120,15,0,248,15,0,240,15,0,240,15, - 0,240,31,0,240,63,0,120,239,32,127,143,240,30,7,128, - 20,32,96,22,2,0,28,7,0,28,7,0,60,15,0,60, - 15,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,248,0,15,254,0,28,30,0,120,15,0, - 112,15,0,240,15,0,128,15,0,0,15,0,0,15,0,0, - 255,0,7,255,0,31,143,0,62,15,0,120,15,0,248,15, - 0,240,15,0,240,15,0,240,31,0,240,63,0,120,239,32, - 127,143,240,30,7,128,20,34,102,22,2,0,0,240,0,1, - 248,0,3,24,0,3,24,0,6,24,0,6,24,0,7,56, - 0,3,240,0,1,192,0,0,0,0,0,0,0,0,0,0, - 1,248,0,15,254,0,28,30,0,120,15,0,112,15,0,240, - 15,0,128,15,0,0,15,0,0,15,0,0,255,0,7,255, - 0,31,143,0,62,15,0,120,15,0,248,15,0,240,15,0, - 240,15,0,240,31,0,240,63,0,120,239,32,127,143,240,30, - 7,128,29,22,88,33,2,0,1,248,31,128,7,252,127,192, - 28,62,225,224,56,31,192,240,112,15,128,112,240,15,128,120, - 240,15,0,120,192,15,0,120,0,127,255,248,3,255,255,240, - 15,143,0,0,30,15,0,0,60,15,0,0,120,15,0,0, - 240,15,0,0,240,15,128,0,240,31,128,24,240,63,192,48, - 248,243,224,240,127,227,255,192,127,128,255,128,30,0,126,0, - 18,32,96,21,2,246,0,127,0,1,255,192,7,7,192,14, - 1,128,28,0,128,56,0,0,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,248,0,0,120,1,0,124,3,128,62,7,0,31, - 254,0,31,248,0,7,240,0,0,192,0,0,128,0,0,224, - 0,0,240,0,1,248,0,0,120,0,0,120,0,0,240,0, - 3,192,0,14,0,0,18,35,105,22,2,0,14,0,0,31, - 0,0,15,128,0,7,128,0,3,192,0,1,192,0,0,224, - 0,0,112,0,0,48,0,0,24,0,0,0,0,0,0,0, - 0,0,0,0,248,0,7,254,0,14,15,0,28,7,128,56, - 7,128,56,3,192,112,3,192,112,3,192,255,255,192,255,255, - 128,240,0,0,240,0,0,240,0,0,240,0,0,248,0,0, - 120,0,0,120,0,0,124,0,192,62,1,128,31,7,0,15, - 254,0,3,248,0,18,35,105,22,2,0,0,7,0,0,15, - 128,0,15,0,0,30,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,0,248,0,7,254,0,14,15,0,28,7,128,56,7, - 128,56,3,192,112,3,192,112,3,192,255,255,192,255,255,128, - 240,0,0,240,0,0,240,0,0,240,0,0,248,0,0,120, - 0,0,120,0,0,124,0,192,62,1,128,31,7,0,15,254, - 0,3,248,0,18,34,102,22,2,0,0,240,0,0,240,0, - 1,248,0,3,156,0,7,14,0,14,6,0,12,3,0,24, - 1,128,16,0,128,0,0,0,0,0,0,0,0,0,0,248, - 0,7,254,0,14,15,0,28,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,255,255,192,255,255,128,240,0,0,240, - 0,0,240,0,0,240,0,0,248,0,0,120,0,0,120,0, - 0,124,0,192,62,1,128,31,7,0,15,254,0,3,248,0, - 18,32,96,22,2,0,14,3,128,30,7,128,30,7,128,30, - 7,128,28,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,248,0,7,254,0,14,15,0,28,7,128, - 56,7,128,56,3,192,112,3,192,112,3,192,255,255,192,255, - 255,128,240,0,0,240,0,0,240,0,0,240,0,0,248,0, - 0,120,0,0,120,0,0,124,0,192,62,1,128,31,7,0, - 15,254,0,3,248,0,12,35,70,13,0,0,240,0,248,0, - 120,0,60,0,28,0,14,0,7,0,3,0,1,128,0,128, - 0,0,0,0,0,0,1,128,31,128,63,128,15,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,15,192, - 63,240,12,35,70,13,2,0,0,224,1,240,3,224,3,192, - 7,128,7,0,14,0,28,0,24,0,48,0,0,0,0,0, - 0,0,6,0,126,0,254,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,255,192,15,34, - 68,13,255,0,3,128,7,192,7,224,14,240,28,112,56,56, - 112,12,96,6,192,2,0,0,0,0,0,0,0,192,15,192, - 31,192,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,7,224,31,248,14,32,64,13,0,0,96,24, - 240,60,240,60,224,56,224,56,0,0,0,0,0,0,0,0, - 0,0,1,128,31,128,63,128,15,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,15,192,63,240,20,34, - 102,24,2,0,3,0,0,31,192,128,31,225,224,1,255,192, - 0,126,0,0,252,0,3,254,0,15,143,0,4,7,128,0, - 3,128,0,3,192,0,1,192,1,241,224,7,255,224,14,31, - 224,28,7,240,56,3,240,56,1,240,120,1,240,112,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 0,224,248,1,224,120,1,192,124,1,192,124,3,128,62,7, - 0,31,14,0,15,252,0,3,240,0,23,32,96,26,2,0, - 1,224,32,3,240,48,7,248,96,7,252,192,14,63,128,8, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7, - 192,254,15,224,62,49,224,30,96,240,30,192,240,30,128,240, - 31,0,240,31,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,127,131,248,255,199,254, - 20,35,105,24,2,0,15,0,0,15,0,0,7,128,0,3, - 192,0,1,192,0,0,224,0,0,112,0,0,112,0,0,56, - 0,0,24,0,0,0,0,0,0,0,0,0,0,0,252,0, - 7,255,0,14,15,128,28,7,192,56,3,192,56,3,224,112, - 1,224,112,1,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,0,240,240,0,240,248,0,224,120,1,224,124,1,192, - 60,1,192,62,3,128,31,7,0,15,254,0,3,240,0,20, - 35,105,24,2,0,0,7,128,0,7,192,0,15,128,0,15, - 0,0,30,0,0,60,0,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,0,0,0,0,252,0,7, - 255,0,14,15,128,28,7,192,56,3,192,56,3,224,112,1, - 224,112,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,248,0,224,120,1,224,124,1,192,60, - 1,192,62,3,128,31,7,0,15,254,0,3,240,0,20,34, - 102,24,2,0,0,112,0,0,248,0,1,252,0,1,220,0, - 3,142,0,7,7,0,14,3,128,12,1,192,24,0,192,0, - 0,0,0,0,0,0,0,0,0,252,0,7,255,0,14,15, - 128,28,7,192,56,3,192,56,3,224,112,1,224,112,1,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,248,0,224,120,1,224,124,1,192,60,1,192,62,3, - 128,31,7,0,15,254,0,3,240,0,20,32,96,24,2,0, - 3,192,64,7,224,96,15,240,192,15,249,128,28,127,0,16, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,7,255,0,14,15,128,28,7,192,56,3,192,56,3,224, - 112,1,224,112,1,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,248,0,224,120,1,224,124,1, - 192,60,1,192,62,3,128,31,7,0,15,254,0,3,240,0, - 20,32,96,24,2,0,6,1,128,15,3,192,15,3,192,14, - 3,128,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,7,255,0,14,15,128,28,7,192, - 56,3,192,56,3,224,112,1,224,112,1,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,248,0, - 224,120,1,224,124,1,192,60,1,192,62,3,128,31,7,0, - 15,254,0,3,240,0,17,15,45,20,1,6,0,224,0,1, - 224,0,1,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,127,255,128,255,255,128,0,0,0,0,0,0,0,224,0, - 1,224,0,1,224,0,1,192,0,20,24,72,24,2,255,0, - 0,48,1,248,112,7,254,224,14,15,192,28,7,192,56,3, - 224,56,7,224,112,15,224,112,28,240,240,24,240,240,56,240, - 240,112,240,240,224,240,240,192,240,241,192,240,243,128,224,255, - 0,224,126,1,192,126,1,192,62,3,128,63,7,0,119,254, - 0,225,248,0,128,0,0,24,35,105,25,1,0,3,128,0, - 7,192,0,3,192,0,1,224,0,0,240,0,0,112,0,0, - 56,0,0,24,0,0,12,0,0,4,0,0,0,0,0,0, - 0,0,0,0,6,0,112,254,7,240,126,7,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,1,240,31,2,240,15,12,255, - 15,248,252,3,224,112,24,35,105,25,1,0,0,1,192,0, - 3,224,0,7,192,0,7,128,0,15,0,0,14,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,0,0,0,0,0, - 0,0,0,6,0,112,254,7,240,126,7,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,1,240,31,2,240,15,12,255,15, - 248,252,3,224,112,24,34,102,25,1,0,0,56,0,0,124, - 0,0,126,0,0,231,0,1,195,0,3,129,128,3,0,192, - 6,0,96,12,0,32,0,0,0,0,0,0,0,0,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,24,32,96,25,1,0,3,0,192,7,129,224,7,129,224, - 7,129,224,7,1,192,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,6,0,112,254,7,240,126,7,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,1,240,31,2,240,15,12, - 255,15,248,252,3,224,112,24,46,138,24,255,245,0,0,240, - 0,0,248,0,1,224,0,3,224,0,3,192,0,7,128,0, - 7,0,0,14,0,0,12,0,0,24,0,0,0,0,0,0, - 0,0,0,0,127,224,255,31,0,62,15,0,28,15,0,24, - 7,128,56,7,128,56,3,128,48,3,192,112,3,192,96,1, - 224,224,1,224,224,0,224,192,0,241,192,0,241,192,0,121, - 128,0,123,128,0,59,0,0,63,0,0,63,0,0,30,0, - 0,30,0,0,12,0,0,12,0,0,28,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,224,0,63,192,0,127,128, - 0,255,0,0,124,0,0,21,47,141,25,2,245,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,15,0,28,63,192,28,99,224, - 28,193,224,29,129,240,31,0,240,31,0,248,30,0,248,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,120,30,0, - 120,30,0,112,30,0,112,30,0,224,30,0,224,31,129,192, - 31,195,128,31,255,0,30,124,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,63,0,0,255,224,0,24,43,129,24,255,245, - 0,192,48,1,192,112,1,224,120,3,192,240,1,128,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,224, - 255,31,0,62,15,0,28,15,0,24,7,128,56,7,128,56, - 3,128,48,3,192,112,3,192,96,1,224,224,1,224,224,0, - 224,192,0,241,192,0,241,192,0,121,128,0,123,128,0,59, - 0,0,63,0,0,63,0,0,30,0,0,30,0,0,12,0, - 0,12,0,0,28,0,0,24,0,0,56,0,0,112,0,0, - 112,0,0,224,0,63,192,0,127,128,0,255,0,0,124,0, - 0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=20 h=46 x= 3 y=17 dx=23 dy= 0 ascent=38 len=138 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30n[1252] U8G_SECTION(".progmem.u8g_font_gdr30n") = { - 0,71,68,232,239,29,0,0,0,0,42,57,0,38,248,29, - 0,18,20,60,21,2,17,0,192,0,1,192,0,1,192,0, - 1,192,0,193,193,0,240,195,192,248,207,192,124,223,0,15, - 252,0,3,224,0,3,224,0,15,252,0,60,223,0,248,207, - 128,240,195,128,64,193,128,1,192,0,1,192,0,1,192,0, - 1,128,0,17,17,51,20,1,5,0,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,128,0,7,13,13,11, - 2,249,8,60,254,254,30,30,30,28,28,56,48,96,64,14, - 2,4,16,1,11,127,252,255,248,6,6,6,11,3,255,56, - 124,252,252,248,112,20,46,138,23,1,248,0,0,48,0,0, - 240,0,0,240,0,0,224,0,1,224,0,1,192,0,1,192, - 0,3,192,0,3,128,0,7,128,0,7,128,0,7,0,0, - 15,0,0,15,0,0,14,0,0,30,0,0,28,0,0,28, - 0,0,60,0,0,56,0,0,120,0,0,120,0,0,112,0, - 0,240,0,0,224,0,0,224,0,1,224,0,1,192,0,3, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,14,0,0,30,0,0,30,0,0,28,0,0, - 60,0,0,60,0,0,56,0,0,120,0,0,112,0,0,240, - 0,0,192,0,0,19,29,87,23,2,0,1,248,0,7,252, - 0,14,30,0,28,15,0,24,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,112,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,192,120,1,192,120,3,192,120,3,128, - 60,3,128,60,3,0,30,7,0,15,14,0,7,252,0,3, - 240,0,17,29,87,23,3,0,0,96,0,1,224,0,15,224, - 0,127,224,0,255,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,3,240,0,63,254,0,127,255,128,17, - 29,87,22,2,0,1,248,0,7,254,0,28,31,0,56,15, - 0,120,15,128,112,7,128,240,7,128,224,7,128,0,7,128, - 0,7,128,0,15,0,0,15,0,0,30,0,0,30,0,0, - 60,0,0,120,0,0,240,0,0,240,0,1,224,0,3,192, - 0,7,128,0,15,0,0,15,0,0,30,0,128,60,0,128, - 120,0,128,240,1,128,255,255,128,255,255,128,18,29,87,22, - 1,0,1,248,0,7,254,0,30,31,0,60,15,0,56,7, - 128,120,7,128,112,7,128,0,7,128,0,7,0,0,15,0, - 0,30,0,0,60,0,0,248,0,3,254,0,0,63,0,0, - 15,128,0,7,128,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,7,128,128,7,128,224,15,0, - 120,62,0,63,252,0,7,224,0,19,29,87,23,1,0,0, - 3,0,0,15,0,0,31,0,0,63,0,0,127,0,0,127, - 0,0,239,0,0,207,0,1,207,0,3,143,0,3,143,0, - 7,15,0,14,15,0,14,15,0,28,15,0,24,15,0,56, - 15,0,112,15,0,112,15,0,255,255,224,255,255,192,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,63,128,1,255,224,18,29,87,23,2,0,0,0,128,0, - 1,128,31,255,0,31,254,0,24,0,0,24,0,0,24,0, - 0,24,0,0,56,0,0,56,0,0,56,0,0,63,240,0, - 63,252,0,120,63,0,32,15,0,0,7,128,0,7,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 128,0,7,128,128,7,128,224,15,0,120,62,0,63,252,0, - 7,240,0,18,29,87,23,3,0,0,7,0,0,63,0,0, - 248,0,1,224,0,3,192,0,15,0,0,14,0,0,30,0, - 0,60,0,0,56,0,0,120,0,0,120,248,0,119,254,0, - 254,31,0,248,15,128,240,7,128,240,7,192,240,3,192,240, - 3,192,240,3,192,240,3,192,248,3,192,120,3,128,120,3, - 128,60,7,128,60,7,0,31,14,0,15,252,0,3,240,0, - 19,27,81,23,2,0,127,255,192,127,255,224,96,1,192,64, - 3,192,192,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,28,0,0,28,0,0,56,0,0,56,0, - 0,56,0,0,112,0,0,112,0,0,224,0,0,224,0,1, - 192,0,1,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,15,0,0,28,0,0,18,29,87,22,2,0,3,248,0, - 15,254,0,28,31,0,56,15,0,48,7,128,112,7,128,112, - 7,128,112,7,128,112,7,0,120,15,0,62,30,0,31,188, - 0,15,240,0,3,252,0,7,254,0,30,63,0,60,15,128, - 120,7,192,112,7,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,128,120,7,128,124,7,0,62,14,0,31,252, - 0,7,224,0,19,30,90,23,2,255,1,248,0,7,254,0, - 14,31,0,28,15,128,56,7,128,120,3,192,112,3,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,248,1, - 224,120,3,224,124,7,224,62,13,224,31,249,224,7,225,192, - 0,3,192,0,3,192,0,7,128,0,7,128,0,15,0,0, - 30,0,0,60,0,0,120,0,0,240,0,3,224,0,31,128, - 0,56,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 4 y=25 dx=41 dy= 0 ascent=39 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30r[8588] U8G_SECTION(".progmem.u8g_font_gdr30r") = { - 0,71,68,232,239,30,9,231,23,124,32,127,245,39,245,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 2 y= 8 dx=13 dy= 0 ascent=13 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9[3248] U8G_SECTION(".progmem.u8g_font_gdr9") = { - 0,23,21,248,251,9,1,255,4,54,32,255,252,13,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,3,0,0,2,11,11,4,1,252,128,128,0, - 128,128,128,192,192,192,192,192,5,9,9,7,1,0,32,56, - 232,160,160,160,232,112,32,6,9,9,7,1,0,56,68,72, - 64,240,64,64,68,252,3,5,5,7,2,2,160,224,160,160, - 224,7,9,9,7,0,0,206,100,40,56,16,124,16,16,56, - 1,15,15,3,1,253,128,128,128,128,128,128,128,0,128,128, - 128,128,128,128,128,6,11,11,8,1,0,112,144,128,224,184, - 132,68,56,136,136,112,4,2,2,6,1,8,144,144,9,9, - 18,11,1,0,62,0,93,0,166,128,160,128,160,128,160,128, - 182,128,93,0,62,0,4,5,5,4,0,4,96,160,224,224, - 240,5,7,7,7,1,0,104,72,144,176,144,72,104,6,4, - 4,7,1,1,252,4,4,4,5,1,1,5,0,3,248,5, - 6,6,5,0,5,112,136,184,168,168,112,5,1,1,7,1, - 8,248,3,4,4,5,1,5,96,160,160,192,6,7,7,6, - 0,1,16,16,124,16,16,0,252,4,6,6,5,0,4,48, - 208,32,32,80,240,4,6,6,5,0,4,48,80,32,16,144, - 96,3,3,3,5,2,8,96,128,128,8,11,11,8,0,252, - 198,66,66,66,66,70,123,64,64,64,96,8,11,11,9,0, - 254,127,138,138,202,122,10,10,10,10,10,31,1,2,2,2, - 1,4,128,128,2,3,3,3,1,253,128,64,192,3,5,5, - 5,1,5,192,64,64,64,224,3,5,5,4,0,4,96,160, - 160,192,224,6,7,7,7,1,0,160,80,72,44,72,80,160, - 8,9,9,9,1,0,194,68,68,72,178,22,42,79,199,7, - 9,9,9,1,0,194,68,72,72,182,26,36,74,206,9,9, - 18,9,0,0,49,0,82,0,52,0,20,0,233,0,11,0, - 21,0,39,128,99,128,5,11,11,7,1,252,32,32,32,32, - 32,64,128,128,136,136,112,9,12,24,9,0,0,48,0,12, - 0,0,0,8,0,8,0,20,0,20,0,36,0,62,0,34, - 0,67,0,227,128,9,12,24,9,0,0,6,0,24,0,0, - 0,8,0,8,0,20,0,20,0,36,0,62,0,34,0,67, - 0,227,128,9,12,24,9,0,0,28,0,34,0,0,0,8, - 0,8,0,20,0,20,0,36,0,62,0,34,0,67,0,227, - 128,9,12,24,9,0,0,58,0,60,0,0,0,8,0,8, - 0,20,0,20,0,36,0,62,0,34,0,67,0,227,128,9, - 11,22,9,0,0,36,0,36,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,9,13,26,9,0, - 0,12,0,20,0,20,0,8,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,11,9,18,12,0, - 0,31,224,10,32,18,0,31,192,18,0,34,0,34,0,34, - 32,231,224,6,12,12,8,1,253,60,68,128,128,128,128,128, - 68,120,32,16,48,6,12,12,7,1,0,224,16,0,252,68, - 64,120,64,64,64,68,252,6,12,12,7,1,0,24,96,0, - 252,68,64,120,64,64,64,68,252,6,12,12,7,1,0,112, - 136,0,252,68,64,120,64,64,64,68,252,6,11,11,7,1, - 0,144,144,124,68,64,120,64,64,64,68,252,4,12,12,4, - 0,0,192,32,0,112,32,32,32,32,32,32,32,112,4,12, - 12,4,1,0,112,128,0,224,64,64,64,64,64,64,64,224, - 4,12,12,4,0,0,96,144,0,112,32,32,32,32,32,32, - 32,112,4,11,11,4,0,0,144,144,96,32,32,32,32,32, - 32,32,112,8,9,9,9,0,0,252,66,65,65,241,65,65, - 66,252,10,12,24,10,0,0,26,0,60,0,0,0,193,192, - 96,128,80,128,88,128,76,128,70,128,67,128,65,128,224,128, - 7,12,12,9,1,0,96,24,0,56,68,130,130,130,130,130, - 68,56,7,12,12,9,1,0,12,48,0,56,68,130,130,130, - 130,130,68,56,7,12,12,9,1,0,56,68,0,56,68,130, - 130,130,130,130,68,56,7,12,12,9,1,0,52,120,0,56, - 68,130,130,130,130,130,68,56,7,11,11,9,1,0,72,72, - 56,68,130,130,130,130,130,68,56,4,4,4,6,1,2,144, - 96,96,144,7,9,9,9,1,0,58,68,138,138,146,162,194, - 68,184,9,12,24,10,0,0,56,0,4,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,98,0,60,0, - 9,12,24,10,0,0,6,0,24,0,0,0,227,128,65,0, - 65,0,65,0,65,0,65,0,65,0,98,0,60,0,9,12, - 24,10,0,0,28,0,34,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,11,22,10, - 0,0,34,0,36,0,195,128,65,0,65,0,65,0,65,0, - 65,0,65,0,98,0,60,0,9,12,24,9,0,0,6,0, - 24,0,0,0,227,128,98,0,50,0,20,0,28,0,8,0, - 8,0,8,0,28,0,7,9,9,8,0,0,224,124,70,66, - 66,66,100,92,224,8,11,11,8,0,0,28,34,66,66,68, - 72,76,67,65,73,206,6,11,11,7,1,0,192,96,32,0, - 56,72,136,56,200,136,252,6,11,11,7,1,0,24,16,32, - 0,56,72,136,56,200,136,252,6,11,11,7,1,0,32,80, - 136,0,56,72,136,56,200,136,252,6,10,10,7,1,0,104, - 176,0,56,72,136,56,200,136,252,6,10,10,7,1,0,144, - 144,0,56,72,136,56,200,136,252,6,11,11,7,1,0,48, - 80,80,48,56,72,136,56,200,136,252,9,7,14,10,1,0, - 63,0,76,128,136,128,63,128,200,0,136,128,247,0,5,10, - 10,7,1,253,120,136,128,128,128,200,112,32,16,48,5,11, - 11,7,1,0,64,32,32,16,112,72,136,248,128,200,112,5, - 11,11,7,1,0,24,16,32,0,112,72,136,248,128,200,112, - 5,11,11,7,1,0,32,80,136,0,112,72,136,248,128,200, - 112,5,10,10,7,1,0,144,152,0,112,72,136,248,128,200, - 112,4,11,11,4,0,0,128,64,32,0,96,32,32,32,32, - 32,112,3,11,11,4,1,0,32,64,128,0,192,64,64,64, - 64,64,224,4,11,11,4,0,0,96,80,144,0,96,32,32, - 32,32,32,112,4,10,10,4,0,0,144,144,0,96,32,32, - 32,32,32,112,5,11,11,7,1,0,200,48,80,16,120,136, - 136,136,136,144,112,8,10,10,8,0,0,18,108,0,78,242, - 66,66,66,66,231,6,11,11,8,1,0,64,32,16,0,56, - 204,132,132,132,200,112,6,11,11,8,1,0,8,16,32,0, - 56,204,132,132,132,200,112,6,11,11,8,1,0,48,80,136, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,104,152, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,136,136, - 0,56,204,132,132,132,200,112,6,4,4,6,0,2,16,124, - 128,16,6,7,7,8,1,0,60,204,148,164,164,200,240,8, - 11,11,8,0,0,32,16,8,0,198,66,66,66,66,70,59, - 8,11,11,8,0,0,4,8,16,0,198,66,66,66,66,70, - 59,8,11,11,8,0,0,24,24,36,0,198,66,66,66,66, - 70,59,8,10,10,8,0,0,36,68,0,198,66,66,66,66, - 70,59,7,15,15,7,0,252,4,8,16,0,230,68,36,36, - 40,24,16,16,16,32,192,7,15,15,8,0,252,192,64,64, - 64,76,114,66,66,66,68,120,64,64,64,224,7,14,14,7, - 0,252,68,68,0,230,68,36,36,40,24,16,16,16,32,192 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 7 h=14 x= 1 y= 5 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9n[235] U8G_SECTION(".progmem.u8g_font_gdr9n") = { - 0,23,21,248,251,9,0,0,0,0,42,57,0,12,254,9, - 0,5,6,6,7,1,5,32,168,112,112,168,32,5,5,5, - 6,1,2,32,32,248,32,32,2,4,4,3,1,254,64,192, - 64,128,5,1,1,5,0,3,248,1,2,2,3,1,0,128, - 128,7,14,14,7,0,254,6,4,4,8,8,8,16,16,32, - 32,32,64,64,192,5,9,9,7,1,0,112,144,136,136,136, - 136,136,80,112,5,9,9,7,1,0,32,224,32,32,32,32, - 32,32,248,5,9,9,7,1,0,56,72,136,8,16,32,64, - 136,248,6,9,9,7,0,0,48,72,136,16,120,4,4,132, - 120,6,9,9,7,0,0,8,24,40,40,72,72,252,8,60, - 5,9,9,7,1,0,120,128,128,240,136,8,8,136,112,5, - 9,9,7,1,0,24,96,64,176,200,136,136,136,112,5,9, - 9,7,1,0,248,136,8,16,16,32,32,96,64,5,9,9, - 7,1,0,112,200,136,208,112,136,136,136,112,5,9,9,7, - 1,0,112,152,136,136,136,120,16,16,224}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 1 y= 8 dx=13 dy= 0 ascent=12 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9r[1553] U8G_SECTION(".progmem.u8g_font_gdr9r") = { - 0,23,21,248,251,9,1,255,4,54,32,127,252,12,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08[2677] U8G_SECTION(".progmem.u8g_font_helvB08") = { - 0,12,19,255,251,8,1,182,3,122,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,3,0,1,2,8,8, - 4,1,254,192,0,64,64,192,192,192,192,5,8,8,6,0, - 255,16,112,216,160,160,216,112,64,5,8,8,6,0,0,56, - 104,96,240,96,96,104,216,6,6,6,6,0,1,132,120,72, - 72,120,132,6,8,8,7,0,0,132,132,204,72,252,48,252, - 48,1,10,10,3,1,254,128,128,128,128,0,0,128,128,128, - 128,5,10,10,6,0,254,112,200,224,112,152,200,112,56,152, - 112,3,1,1,3,0,7,160,8,8,8,10,1,0,60,66, - 153,165,161,157,66,60,3,5,5,5,1,3,224,32,160,0, - 224,6,3,3,7,0,1,108,216,108,5,3,3,7,1,2, - 248,8,8,4,1,1,5,0,3,240,8,8,8,10,1,0, - 60,66,189,165,185,165,66,60,3,1,1,3,0,7,224,3, - 3,3,4,0,5,96,160,192,6,7,7,6,0,0,48,48, - 252,48,48,0,252,3,4,4,3,0,4,96,160,64,224,3, - 4,4,3,0,4,224,64,32,192,2,2,2,3,0,7,64, - 128,5,8,8,6,0,254,216,216,216,216,216,232,192,192,6, - 10,10,6,0,254,124,232,232,232,104,40,40,40,40,40,2, - 1,1,3,0,3,192,2,2,2,3,0,254,64,192,2,4, - 4,3,0,4,64,192,64,64,3,5,5,5,1,3,224,160, - 224,0,224,6,3,3,7,0,1,216,108,216,8,8,8,9, - 0,0,68,196,72,72,18,38,47,66,7,8,8,9,0,0, - 68,196,72,72,22,42,36,78,8,8,8,9,0,0,228,68, - 40,200,18,38,47,66,5,8,8,6,0,254,48,0,48,48, - 96,192,216,112,7,11,11,8,0,0,32,16,0,56,56,108, - 108,108,254,198,198,7,11,11,8,0,0,8,16,0,56,56, - 108,108,108,254,198,198,7,11,11,8,0,0,16,40,0,56, - 56,108,108,108,254,198,198,7,11,11,8,0,0,20,40,0, - 56,56,108,108,108,254,198,198,7,10,10,8,0,0,40,0, - 56,56,108,108,108,254,198,198,7,11,11,8,0,0,16,40, - 16,56,56,108,108,108,254,198,198,9,8,16,10,0,0,63, - 128,60,0,108,0,111,128,108,0,252,0,204,0,207,128,7, - 10,10,8,0,254,60,102,194,192,192,194,102,60,16,48,5, - 11,11,6,0,0,64,32,0,248,192,192,248,192,192,192,248, - 5,11,11,6,0,0,16,32,0,248,192,192,248,192,192,192, - 248,5,11,11,6,0,0,32,80,0,248,192,192,248,192,192, - 192,248,5,10,10,6,0,0,80,0,248,192,192,248,192,192, - 192,248,2,11,11,3,0,0,128,64,0,192,192,192,192,192, - 192,192,192,2,11,11,3,0,0,64,128,0,192,192,192,192, - 192,192,192,192,3,11,11,3,255,0,64,160,0,96,96,96, - 96,96,96,96,96,4,10,10,3,255,0,144,0,96,96,96, - 96,96,96,96,96,7,8,8,7,255,0,120,108,102,246,102, - 102,108,120,7,11,11,8,0,0,20,40,0,198,230,230,214, - 214,206,206,198,7,11,11,8,0,0,16,8,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,8,16,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,16,40,0,56, - 108,198,198,198,198,108,56,7,11,11,8,0,0,20,40,0, - 56,108,198,198,198,198,108,56,7,10,10,8,0,0,40,0, - 56,108,198,198,198,198,108,56,6,5,5,6,0,1,204,120, - 48,120,204,7,8,8,8,0,0,58,108,206,214,214,230,108, - 184,6,11,11,7,0,0,32,16,0,204,204,204,204,204,204, - 204,120,6,11,11,7,0,0,8,16,0,204,204,204,204,204, - 204,204,120,6,11,11,7,0,0,32,80,0,204,204,204,204, - 204,204,204,120,6,10,10,7,0,0,72,0,204,204,204,204, - 204,204,204,120,8,11,11,9,0,0,4,8,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,192,248,204,204,204, - 248,192,192,5,8,8,6,0,0,112,200,200,208,200,200,200, - 208,6,9,9,6,0,0,32,16,0,112,152,120,216,216,108, - 6,9,9,6,0,0,16,32,0,112,152,120,216,216,108,6, - 9,9,6,0,0,32,80,0,112,152,120,216,216,108,6,9, - 9,6,0,0,40,80,0,112,152,120,216,216,108,6,8,8, - 6,0,0,80,0,112,152,120,216,216,108,6,9,9,6,0, - 0,32,80,32,112,152,120,216,216,108,8,6,6,9,0,0, - 126,155,127,216,219,110,4,8,8,5,0,254,112,208,192,192, - 208,112,32,96,5,9,9,6,0,0,64,32,0,112,216,248, - 192,216,112,5,9,9,6,0,0,16,32,0,112,216,248,192, - 216,112,5,9,9,6,0,0,32,80,0,112,216,248,192,216, - 112,5,8,8,6,0,0,80,0,112,216,248,192,216,112,2, - 9,9,3,0,0,128,64,0,192,192,192,192,192,192,2,9, - 9,3,0,0,64,128,0,192,192,192,192,192,192,3,9,9, - 3,0,0,64,160,0,192,192,192,192,192,192,3,8,8,3, - 0,0,160,0,192,192,192,192,192,192,5,9,9,6,0,0, - 80,96,160,112,216,216,216,216,112,5,9,9,6,0,0,80, - 160,0,176,216,216,216,216,216,5,9,9,6,0,0,64,32, - 0,112,216,216,216,216,112,5,9,9,6,0,0,16,32,0, - 112,216,216,216,216,112,5,9,9,6,0,0,32,80,0,112, - 216,216,216,216,112,5,9,9,6,0,0,80,160,0,112,216, - 216,216,216,112,5,8,8,6,0,0,80,0,112,216,216,216, - 216,112,6,5,5,6,0,1,48,0,252,0,48,7,6,6, - 6,255,0,58,108,124,108,108,184,5,9,9,6,0,0,64, - 32,0,216,216,216,216,216,104,5,9,9,6,0,0,16,32, - 0,216,216,216,216,216,104,5,9,9,6,0,0,32,80,0, - 216,216,216,216,216,104,5,8,8,6,0,0,80,0,216,216, - 216,216,216,104,5,11,11,6,0,254,16,32,0,216,216,216, - 216,120,48,48,96,5,10,10,6,0,254,192,192,240,216,200, - 200,216,240,192,192,5,10,10,6,0,254,80,0,216,216,216, - 216,120,48,48,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08r[1287] U8G_SECTION(".progmem.u8g_font_helvB08r") = { - 0,12,19,255,251,8,1,182,3,122,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=15 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10[3692] U8G_SECTION(".progmem.u8g_font_helvB10") = { - 0,17,23,255,250,11,2,27,4,205,32,255,253,14,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,2,11, - 11,4,1,253,192,192,0,64,64,192,192,192,192,192,192,7, - 10,10,8,0,255,4,60,110,200,208,208,230,102,124,64,8, - 11,11,8,0,0,60,102,102,96,252,48,48,48,96,251,222, - 7,7,7,8,0,2,130,124,108,108,108,124,130,8,11,11, - 9,0,0,195,195,195,102,102,60,126,24,126,24,24,1,14, - 14,4,2,253,128,128,128,128,128,128,0,0,128,128,128,128, - 128,128,6,14,14,8,1,253,120,204,204,224,120,220,204,204, - 236,120,28,204,204,120,5,2,2,5,0,9,216,216,10,11, - 22,12,1,0,30,0,97,128,76,128,210,192,144,64,144,64, - 144,64,146,64,76,128,97,128,30,0,5,7,7,6,0,4, - 112,144,112,208,248,0,248,7,5,5,9,1,2,54,108,216, - 108,54,7,4,4,9,1,2,254,254,2,2,3,1,1,4, - 0,4,224,10,11,22,12,1,0,30,0,97,128,92,128,146, - 64,146,64,156,64,146,64,146,64,82,128,97,128,30,0,5, - 1,1,5,0,9,248,4,4,4,6,1,7,96,144,144,96, - 8,9,9,9,0,0,24,24,24,255,24,24,24,0,255,4, - 6,6,5,0,5,96,176,48,96,192,240,4,6,6,5,0, - 5,96,176,96,48,176,96,3,2,2,5,1,9,96,192,7, - 11,11,9,1,253,198,198,198,198,198,198,238,246,192,192,192, - 8,14,14,8,0,253,63,122,250,250,250,122,58,10,10,10, - 10,10,10,10,2,2,2,4,1,3,192,192,5,3,3,5, - 0,253,24,216,112,3,6,6,4,0,5,96,224,96,96,96, - 96,5,7,7,6,0,4,112,216,216,216,112,0,248,7,5, - 5,9,1,2,216,108,54,108,216,12,11,22,12,0,0,97, - 128,225,128,99,0,99,0,102,0,102,32,6,96,12,224,13, - 96,25,240,24,96,11,11,22,12,0,0,97,128,225,128,99, - 0,99,0,102,0,102,192,7,96,12,96,12,192,25,128,25, - 224,12,11,22,12,0,0,97,128,177,128,99,0,51,0,182, - 0,102,32,6,96,12,224,13,96,25,240,24,96,7,11,11, - 9,1,253,24,24,0,24,24,48,96,192,198,198,124,10,14, - 28,10,0,0,24,0,12,0,0,0,12,0,12,0,30,0, - 18,0,51,0,51,0,97,128,127,128,97,128,192,192,192,192, - 10,14,28,10,0,0,6,0,12,0,0,0,12,0,12,0, - 30,0,18,0,51,0,51,0,97,128,127,128,97,128,192,192, - 192,192,10,14,28,10,0,0,14,0,27,0,0,0,12,0, - 12,0,30,0,18,0,51,0,51,0,97,128,127,128,97,128, - 192,192,192,192,10,14,28,10,0,0,13,0,22,0,0,0, - 12,0,12,0,30,0,18,0,51,0,51,0,97,128,127,128, - 97,128,192,192,192,192,10,14,28,10,0,0,51,0,51,0, - 0,0,12,0,12,0,30,0,18,0,51,0,51,0,97,128, - 127,128,97,128,192,192,192,192,10,14,28,10,0,0,12,0, - 18,0,12,0,12,0,12,0,30,0,18,0,51,0,51,0, - 97,128,127,128,97,128,192,192,192,192,14,11,22,15,0,0, - 15,252,15,0,27,0,19,0,51,0,51,248,99,0,127,0, - 99,0,195,0,195,252,9,14,28,11,1,253,31,0,123,128, - 96,128,192,0,192,0,192,0,192,0,192,0,96,128,123,128, - 31,0,6,0,54,0,28,0,7,14,14,9,1,0,48,24, - 0,254,192,192,192,192,254,192,192,192,192,254,7,14,14,9, - 1,0,12,24,0,254,192,192,192,192,254,192,192,192,192,254, - 7,14,14,9,1,0,28,54,0,254,192,192,192,192,254,192, - 192,192,192,254,7,14,14,9,1,0,108,108,0,254,192,192, - 192,192,254,192,192,192,192,254,3,14,14,4,0,0,192,96, - 0,96,96,96,96,96,96,96,96,96,96,96,3,14,14,4, - 1,0,96,192,0,192,192,192,192,192,192,192,192,192,192,192, - 5,14,14,4,0,0,112,216,0,96,96,96,96,96,96,96, - 96,96,96,96,5,14,14,4,0,0,216,216,0,96,96,96, - 96,96,96,96,96,96,96,96,10,11,22,11,0,0,126,0, - 99,128,97,128,96,192,96,192,248,192,96,192,96,192,97,128, - 99,128,126,0,9,14,28,11,1,0,26,0,44,0,0,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,14,28,12,1,0,24,0,12,0, - 0,0,30,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,14,28,12,1,0,6,0, - 12,0,0,0,30,0,115,128,97,128,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,10,14,28,12,1,0, - 14,0,27,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,97,128,115,128,30,0,10,14,28,12, - 1,0,13,0,22,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,14, - 28,12,1,0,51,0,51,0,0,0,30,0,115,128,97,128, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 8,7,7,9,0,1,195,102,60,24,60,102,195,12,11,22, - 12,0,0,15,48,57,224,48,192,97,224,99,96,102,96,108, - 96,120,96,48,192,121,192,207,0,9,14,28,11,1,0,24, - 0,12,0,0,0,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,14,28,11,1, - 0,6,0,12,0,0,0,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,99,0,62,0,9,14,28, - 11,1,0,28,0,54,0,0,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,99,0,62,0,9, - 14,28,11,1,0,99,0,99,0,0,0,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,10,0,0,6,0,12,0,0,0,192,192,97, - 128,97,128,51,0,51,0,30,0,30,0,12,0,12,0,12, - 0,12,0,8,11,11,10,1,0,192,192,254,199,195,195,199, - 254,192,192,192,6,11,11,8,1,0,120,204,204,204,216,216, - 204,204,204,204,216,7,11,11,8,1,0,48,24,0,120,204, - 12,124,204,204,220,118,7,11,11,8,1,0,24,48,0,120, - 204,12,124,204,204,220,118,7,11,11,8,1,0,56,108,0, - 120,204,12,124,204,204,220,118,7,11,11,8,1,0,52,88, - 0,120,204,12,124,204,204,220,118,7,11,11,8,1,0,108, - 108,0,120,204,12,124,204,204,220,118,7,11,11,8,1,0, - 48,72,48,120,204,12,124,204,204,220,118,11,8,16,13,1, - 0,123,192,206,96,12,96,127,224,204,0,204,0,222,96,119, - 192,7,11,11,9,1,253,60,102,198,192,192,198,102,60,24, - 88,112,6,11,11,8,1,0,96,48,0,120,204,204,252,192, - 192,236,120,6,11,11,8,1,0,24,48,0,120,204,204,252, - 192,192,236,120,6,11,11,8,1,0,56,108,0,120,204,204, - 252,192,192,236,120,6,11,11,8,1,0,108,108,0,120,204, - 204,252,192,192,236,120,3,11,11,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,3,11,11,4,1,0,96,192,0, - 192,192,192,192,192,192,192,192,5,11,11,4,0,0,112,216, - 0,96,96,96,96,96,96,96,96,5,11,11,4,0,0,216, - 216,0,96,96,96,96,96,96,96,96,7,11,11,9,1,0, - 108,56,72,60,108,198,198,198,198,108,56,7,11,11,9,1, - 0,52,88,0,220,238,198,198,198,198,198,198,7,11,11,9, - 1,0,48,24,0,56,108,198,198,198,198,108,56,7,11,11, - 9,1,0,24,48,0,56,108,198,198,198,198,108,56,7,11, - 11,9,1,0,56,108,0,56,108,198,198,198,198,108,56,7, - 11,11,9,1,0,52,88,0,56,108,198,198,198,198,108,56, - 7,11,11,9,1,0,108,108,0,56,108,198,198,198,198,108, - 56,8,7,7,9,0,1,24,24,0,255,0,24,24,7,8, - 8,9,1,0,58,108,206,214,214,230,108,184,7,11,11,9, - 1,0,48,24,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,12,24,0,198,198,198,198,198,198,238,118,7,11, - 11,9,1,0,56,108,0,198,198,198,198,198,198,238,118,7, - 11,11,9,1,0,108,108,0,198,198,198,198,198,198,238,118, - 8,14,14,8,0,253,12,24,0,195,195,102,102,36,60,24, - 24,24,48,112,7,14,14,9,1,253,192,192,192,216,236,198, - 198,198,198,236,216,192,192,192,8,14,14,8,0,253,54,54, - 0,195,195,102,102,36,60,24,24,24,48,112}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10r[1720] U8G_SECTION(".progmem.u8g_font_helvB10r") = { - 0,17,23,255,250,11,2,27,4,205,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12[4077] U8G_SECTION(".progmem.u8g_font_helvB12") = { - 0,20,27,254,249,12,2,74,5,106,32,255,252,16,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,1,253,192,192,0,64,64,64,192,192,192,192, - 192,192,8,11,11,9,0,255,4,60,126,239,200,216,208,247, - 126,60,32,8,12,12,9,0,0,28,62,99,99,96,48,124, - 48,48,32,127,255,7,7,7,9,1,2,186,124,198,198,198, - 124,186,8,12,12,9,0,0,195,195,102,102,60,24,126,24, - 126,24,24,24,1,16,16,5,2,252,128,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,128,8,15,15,9,0,253, - 60,126,102,96,120,126,199,195,243,126,30,6,102,126,60,5, - 2,2,6,0,10,216,216,12,12,24,12,0,0,15,0,57, - 192,96,96,79,32,217,176,144,16,144,16,217,176,79,32,96, - 32,57,192,15,0,5,7,7,6,1,5,96,144,112,144,120, - 0,248,8,6,6,9,0,2,51,102,204,204,102,51,8,5, - 5,10,0,2,255,255,3,3,3,4,2,2,5,0,3,240, - 240,12,12,24,12,0,0,15,0,57,192,96,96,95,32,217, - 176,153,144,158,16,219,48,91,32,96,96,57,192,15,0,5, - 1,1,6,0,10,248,4,5,5,7,1,7,96,144,144,144, - 96,8,11,11,10,1,0,24,24,24,255,255,24,24,24,0, - 255,255,5,7,7,6,0,5,112,216,216,48,96,248,248,5, - 7,7,6,0,5,112,216,24,48,24,216,112,3,3,3,6, - 1,10,32,96,128,8,12,12,10,1,253,195,195,195,195,195, - 195,199,255,251,192,192,192,8,15,15,9,0,253,127,242,242, - 242,242,242,114,18,18,18,18,18,18,18,18,2,2,2,5, - 1,4,192,192,5,4,4,6,0,252,32,48,152,112,4,7, - 7,6,1,5,48,240,240,48,48,48,48,5,7,7,6,0, - 5,112,216,136,216,112,0,248,8,6,6,9,1,2,204,102, - 51,51,102,204,13,12,24,14,1,0,48,192,240,128,241,128, - 49,0,51,48,50,112,54,240,4,176,13,176,9,248,24,48, - 16,48,12,12,24,14,0,0,48,128,241,128,241,0,51,0, - 50,0,54,224,53,176,13,176,8,96,24,192,17,240,49,240, - 13,12,24,14,0,0,112,64,216,192,24,128,49,128,25,48, - 219,112,114,240,6,176,5,176,13,248,8,48,24,48,7,12, - 12,10,1,253,48,48,0,48,48,96,224,192,198,198,254,124, - 11,16,32,12,0,0,16,0,24,0,4,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,16,32,12,0,0,2,0,6,0, - 8,0,0,0,14,0,14,0,31,0,27,0,59,128,49,128, - 113,192,96,192,127,192,255,224,192,96,192,96,11,16,32,12, - 0,0,4,0,14,0,17,0,0,0,14,0,14,0,31,0, - 27,0,59,128,49,128,113,192,96,192,127,192,255,224,192,96, - 192,96,11,15,30,12,0,0,14,128,23,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,15,30,12,0,0,49,128,49,128, - 0,0,14,0,14,0,31,0,27,0,59,128,49,128,113,192, - 96,192,127,192,255,224,192,96,192,96,11,16,32,12,0,0, - 12,0,18,0,18,0,12,0,14,0,14,0,31,0,27,0, - 59,128,49,128,113,192,96,192,127,192,255,224,192,96,192,96, - 14,12,24,15,0,0,31,252,31,252,27,0,51,0,51,0, - 51,248,99,248,127,0,127,0,195,0,195,252,195,252,10,16, - 32,12,1,252,31,0,63,128,113,192,96,192,224,0,192,0, - 192,0,224,0,96,192,113,192,63,128,31,0,4,0,6,0, - 19,0,14,0,8,16,16,10,1,0,32,48,8,0,255,255, - 192,192,192,254,254,192,192,192,255,255,8,16,16,10,1,0, - 4,12,16,0,255,255,192,192,192,254,254,192,192,192,255,255, - 8,16,16,10,1,0,8,28,34,0,255,255,192,192,192,254, - 254,192,192,192,255,255,8,15,15,10,1,0,102,102,0,255, - 255,192,192,192,254,254,192,192,192,255,255,3,16,16,4,0, - 0,128,192,32,0,96,96,96,96,96,96,96,96,96,96,96, - 96,3,16,16,4,1,0,32,96,128,0,192,192,192,192,192, - 192,192,192,192,192,192,192,5,16,16,4,0,0,32,112,136, - 0,96,96,96,96,96,96,96,96,96,96,96,96,6,15,15, - 4,255,0,204,204,0,48,48,48,48,48,48,48,48,48,48, - 48,48,12,12,24,12,0,0,63,0,63,192,48,224,48,96, - 48,112,252,48,252,48,48,112,48,96,48,224,63,192,63,0, - 10,15,30,12,1,0,29,0,46,0,0,0,224,192,240,192, - 240,192,216,192,216,192,204,192,204,192,198,192,198,192,195,192, - 195,192,193,192,11,16,32,13,1,0,8,0,12,0,2,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,16,32,13,1,0, - 1,0,3,0,4,0,0,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 11,16,32,13,1,0,4,0,14,0,17,0,0,0,31,0, - 63,128,113,192,96,192,224,224,192,96,192,96,224,224,96,192, - 113,192,63,128,31,0,11,15,30,13,1,0,14,128,23,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,15,30,13,1,0, - 25,128,25,128,0,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,224,224,96,192,113,192,63,128,31,0,9,9, - 18,10,0,0,65,0,227,128,119,0,62,0,28,0,62,0, - 119,0,227,128,65,0,11,12,24,13,1,0,31,32,63,192, - 112,192,97,192,227,96,198,96,204,96,216,224,112,192,97,192, - 127,128,159,0,10,16,32,12,1,0,16,0,24,0,4,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,12,1,0, - 2,0,6,0,8,0,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,16,32,12,1,0,4,0,14,0,17,0,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,15,30,12,1,0,51,0,51,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,192,192,225,192,97,128,51,0, - 51,0,30,0,30,0,12,0,12,0,12,0,12,0,12,0, - 9,12,24,11,1,0,192,0,254,0,255,0,195,128,193,128, - 193,128,195,128,255,0,254,0,192,0,192,0,192,0,8,12, - 12,10,1,0,124,254,198,198,220,222,195,195,195,195,222,220, - 8,13,13,9,1,0,32,48,8,0,124,254,198,14,126,230, - 198,254,119,8,13,13,9,1,0,4,12,16,0,124,254,198, - 14,126,230,198,254,119,8,13,13,9,1,0,16,56,68,0, - 124,254,198,14,126,230,198,254,119,8,12,12,9,1,0,58, - 92,0,124,254,198,14,126,230,198,254,119,8,12,12,9,1, - 0,108,108,0,124,254,198,14,126,230,198,254,119,8,13,13, - 9,1,0,24,36,36,24,124,254,198,14,126,230,198,254,119, - 13,9,18,15,1,0,125,224,255,240,198,24,15,248,127,248, - 230,0,207,56,255,240,121,224,8,13,13,9,1,252,60,126, - 231,192,192,192,231,126,60,16,24,76,56,8,13,13,10,1, - 0,32,48,8,0,60,126,195,255,255,192,231,126,60,8,13, - 13,10,1,0,4,12,16,0,60,126,195,255,255,192,231,126, - 60,8,13,13,10,1,0,8,28,34,0,60,126,195,255,255, - 192,231,126,60,8,12,12,10,1,0,54,54,0,60,126,195, - 255,255,192,231,126,60,3,13,13,4,0,0,128,192,32,0, - 96,96,96,96,96,96,96,96,96,3,13,13,4,1,0,32, - 96,128,0,192,192,192,192,192,192,192,192,192,5,13,13,4, - 0,0,32,112,136,0,96,96,96,96,96,96,96,96,96,5, - 12,12,4,0,0,216,216,0,96,96,96,96,96,96,96,96, - 96,8,12,12,10,1,0,96,124,248,28,126,231,195,195,195, - 231,126,60,8,12,12,10,1,0,58,92,0,222,255,227,195, - 195,195,195,195,195,8,13,13,10,1,0,32,48,8,0,60, - 126,231,195,195,195,231,126,60,8,13,13,10,1,0,8,24, - 32,0,60,126,231,195,195,195,231,126,60,8,13,13,10,1, - 0,16,56,68,0,60,126,231,195,195,195,231,126,60,8,12, - 12,10,1,0,58,92,0,60,126,231,195,195,195,231,126,60, - 8,12,12,10,1,0,108,108,0,60,126,231,195,195,195,231, - 126,60,8,8,8,10,1,0,24,24,0,255,255,0,24,24, - 8,9,9,10,1,0,61,127,231,207,219,243,231,254,188,8, - 13,13,10,1,0,32,48,8,0,195,195,195,195,195,195,199, - 255,123,8,13,13,10,1,0,8,24,32,0,195,195,195,195, - 195,195,199,255,123,8,13,13,10,1,0,16,56,68,0,195, - 195,195,195,195,195,199,255,123,8,12,12,10,1,0,108,108, - 0,195,195,195,195,195,195,199,255,123,8,17,17,9,0,252, - 4,12,16,0,195,195,99,102,54,54,60,28,24,24,24,112, - 96,8,16,16,10,1,252,192,192,192,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,16,16,9,0,252,54,54,0, - 195,195,99,102,54,54,60,28,24,24,24,112,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 2 y=10 dx=16 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12r[1914] U8G_SECTION(".progmem.u8g_font_helvB12r") = { - 0,20,27,254,249,12,2,74,5,106,32,127,252,13,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=19 x= 2 y=12 dx=18 dy= 0 ascent=18 len=38 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14[5489] U8G_SECTION(".progmem.u8g_font_helvB14") = { - 0,22,29,254,249,14,3,23,6,234,32,255,252,18,251,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,5,0,1,3,14,14,6,2,252, - 224,224,224,0,96,96,224,224,224,224,224,224,224,224,8,14, - 14,10,1,254,2,2,62,127,231,200,200,208,208,227,127,126, - 64,64,10,13,26,11,0,0,31,0,63,192,113,192,112,0, - 112,0,56,0,127,0,28,0,28,0,56,0,112,192,255,192, - 239,128,9,8,16,11,1,2,193,128,255,128,119,0,99,0, - 99,0,119,0,255,128,193,128,9,13,26,10,0,0,227,128, - 227,128,227,128,119,0,119,0,62,0,255,128,28,0,255,128, - 28,0,28,0,28,0,28,0,2,18,18,5,1,252,192,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,192, - 9,18,36,10,0,252,62,0,127,0,227,128,227,128,240,0, - 124,0,254,0,199,0,195,128,225,128,113,128,63,128,15,0, - 7,128,227,128,227,128,127,0,62,0,5,2,2,7,1,12, - 216,216,14,14,28,15,1,0,15,192,56,112,96,24,199,140, - 207,204,152,196,152,4,152,4,152,68,207,204,199,140,96,24, - 56,112,15,192,6,9,9,8,1,5,120,140,124,204,204,116, - 0,252,252,10,8,16,11,0,1,29,192,59,128,119,0,238, - 0,238,0,119,0,59,128,29,192,9,5,10,11,1,3,255, - 128,255,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,14,28,15,1,0,15,128,48,96,96,16,95,144, - 153,200,152,200,153,200,159,8,153,136,153,136,88,208,96,48, - 56,224,15,128,5,2,2,7,1,12,248,248,6,6,6,7, - 0,7,120,252,204,204,252,120,9,9,18,11,1,0,28,0, - 28,0,255,128,255,128,28,0,28,0,0,0,255,128,255,128, - 6,8,8,6,0,5,120,252,204,28,120,224,252,252,6,8, - 8,6,0,5,120,252,204,56,60,204,252,120,5,3,3,5, - 0,11,56,112,224,9,14,28,11,1,252,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,251,128,224, - 0,224,0,224,0,224,0,9,18,36,10,0,252,63,128,123, - 0,251,0,251,0,251,0,251,0,251,0,123,0,59,0,27, - 0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27, - 0,2,2,2,5,1,6,192,192,5,5,5,7,1,251,96, - 112,24,248,240,4,8,8,6,0,5,48,240,240,48,48,48, - 48,48,6,9,9,8,1,5,120,204,204,204,204,120,0,252, - 252,10,8,16,11,0,1,238,0,119,0,59,128,29,192,29, - 192,59,128,119,0,238,0,14,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,152,51,56,54,56,6,120,12, - 216,12,252,24,24,24,24,15,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,188,51,126,54,102,6,14,12, - 60,12,112,24,126,24,126,14,13,26,15,0,0,120,48,252, - 48,204,96,56,96,60,192,204,216,253,184,123,56,3,120,6, - 216,6,252,12,24,12,24,8,14,14,10,1,252,28,28,28, - 0,28,28,28,56,120,112,231,231,255,126,12,18,36,14,1, - 0,56,0,28,0,6,0,0,0,15,0,15,0,31,128,25, - 128,25,128,57,192,57,192,48,192,112,224,127,224,127,224,224, - 112,224,112,224,112,12,18,36,14,1,0,1,192,3,128,6, - 0,0,0,15,0,15,0,31,128,25,128,25,128,57,192,57, - 192,48,192,112,224,127,224,127,224,224,112,224,112,224,112,12, - 18,36,14,1,0,7,0,15,128,29,192,0,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,12,18,36,14,1,0,14, - 32,31,192,35,128,0,0,15,0,15,0,31,128,25,128,25, - 128,57,192,57,192,48,192,112,224,127,224,127,224,224,112,224, - 112,224,112,12,18,36,14,1,0,25,128,25,128,25,128,0, - 0,15,0,15,0,31,128,25,128,25,128,57,192,57,192,48, - 192,112,224,127,224,127,224,224,112,224,112,224,112,12,18,36, - 14,1,0,15,0,25,128,25,128,15,0,15,0,15,0,31, - 128,25,128,25,128,57,192,57,192,48,192,112,224,127,224,127, - 224,224,112,224,112,224,112,16,14,28,18,1,0,15,255,15, - 255,31,128,27,128,59,128,59,128,51,254,115,254,115,128,127, - 128,255,128,227,128,227,255,227,255,12,19,38,14,1,251,15, - 128,63,224,120,224,112,112,240,112,224,0,224,0,224,0,224, - 0,240,112,112,112,120,224,63,224,15,128,12,0,14,0,3, - 0,31,0,30,0,10,18,36,13,2,0,56,0,28,0,6, - 0,0,0,255,192,255,192,224,0,224,0,224,0,224,0,255, - 128,255,128,224,0,224,0,224,0,224,0,255,192,255,192,10, - 18,36,13,2,0,3,128,7,0,12,0,0,0,255,192,255, - 192,224,0,224,0,224,0,224,0,255,128,255,128,224,0,224, - 0,224,0,224,0,255,192,255,192,10,18,36,13,2,0,14, - 0,31,0,59,128,0,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,255, - 192,255,192,10,18,36,13,2,0,51,0,51,0,51,0,0, - 0,255,192,255,192,224,0,224,0,224,0,224,0,255,128,255, - 128,224,0,224,0,224,0,224,0,255,192,255,192,5,18,18, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,5,18,18,5,1,0,56,112,192,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,7,18,18, - 5,255,0,56,124,238,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,6,18,18,5,0,0,204,204,204,0,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,14,14,28, - 14,255,0,63,192,63,240,56,120,56,56,56,28,56,28,255, - 28,255,28,56,28,56,28,56,56,56,120,63,240,63,192,12, - 18,36,14,1,0,14,32,31,192,35,128,0,0,224,112,240, - 112,240,112,248,112,252,112,236,112,238,112,230,112,231,112,227, - 112,225,240,225,240,224,240,224,112,13,18,36,15,1,0,28, - 0,14,0,3,0,0,0,15,128,63,224,120,240,112,112,240, - 120,224,56,224,56,224,56,224,56,240,120,112,112,120,240,63, - 224,15,128,13,18,36,15,1,0,1,192,3,128,6,0,0, - 0,15,128,63,224,120,240,112,112,240,120,224,56,224,56,224, - 56,224,56,240,120,112,112,120,240,63,224,15,128,13,18,36, - 15,1,0,7,0,15,128,29,192,0,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,13,18,36,15,1,0,7,16,15, - 224,17,192,0,0,15,128,63,224,120,240,112,112,240,120,224, - 56,224,56,224,56,224,56,240,120,112,112,120,240,63,224,15, - 128,13,18,36,15,1,0,12,192,12,192,12,192,0,0,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,240,120,112,112,120,240,63,224,15,128,10,8,16,11,0, - 1,225,192,115,128,63,0,30,0,30,0,63,0,115,128,225, - 192,15,14,28,15,0,0,7,198,31,252,60,56,56,120,120, - 220,113,156,113,28,115,28,118,28,124,60,56,56,60,120,127, - 240,199,192,12,18,36,14,1,0,28,0,14,0,3,0,0, - 0,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,127,224,31,128,12,18,36, - 14,1,0,1,192,3,128,6,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,127,224,31,128,12,18,36,14,1,0,7,0,15, - 128,29,192,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,127,224,31, - 128,12,18,36,14,1,0,25,128,25,128,25,128,0,0,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,13,18,36,13,0, - 0,1,192,3,128,6,0,0,0,224,56,224,56,112,112,56, - 224,56,224,29,192,29,192,15,128,7,0,7,0,7,0,7, - 0,7,0,7,0,11,14,28,13,1,0,224,0,224,0,224, - 0,255,0,255,192,225,224,224,224,224,224,225,224,255,192,255, - 0,224,0,224,0,224,0,8,14,14,10,1,0,60,126,231, - 231,231,231,238,238,231,231,231,231,239,238,10,14,28,11,1, - 0,112,0,56,0,12,0,0,0,62,0,127,0,115,128,7, - 128,63,128,123,128,227,128,231,128,251,128,123,192,10,14,28, - 11,1,0,3,128,7,0,12,0,0,0,62,0,127,0,115, - 128,7,128,63,128,123,128,227,128,231,128,251,128,123,192,10, - 14,28,11,1,0,28,0,62,0,119,0,0,0,62,0,127, - 0,115,128,7,128,63,128,123,128,227,128,231,128,251,128,123, - 192,10,14,28,11,1,0,59,0,127,0,110,0,0,0,62, - 0,127,0,115,128,7,128,63,128,123,128,227,128,231,128,251, - 128,123,192,10,14,28,11,1,0,51,0,51,0,51,0,0, - 0,62,0,127,0,115,128,7,128,63,128,123,128,227,128,231, - 128,251,128,123,192,10,14,28,11,1,0,60,0,102,0,102, - 0,60,0,62,0,127,0,115,128,7,128,63,128,123,128,227, - 128,231,128,251,128,123,192,14,10,20,16,1,0,61,240,127, - 248,103,28,15,28,63,252,119,0,231,0,239,156,255,252,121, - 240,9,15,30,10,1,251,30,0,127,128,115,128,224,0,224, - 0,224,0,224,0,115,128,127,128,30,0,24,0,28,0,6, - 0,62,0,60,0,9,14,28,11,1,0,112,0,56,0,12, - 0,0,0,30,0,127,0,115,128,225,128,255,128,255,128,224, - 0,115,128,127,128,30,0,9,14,28,11,1,0,3,128,7, - 0,12,0,0,0,30,0,127,0,115,128,225,128,255,128,255, - 128,224,0,115,128,127,128,30,0,9,14,28,11,1,0,28, - 0,62,0,119,0,0,0,30,0,127,0,115,128,225,128,255, - 128,255,128,224,0,115,128,127,128,30,0,9,14,28,11,1, - 0,51,0,51,0,51,0,0,0,30,0,127,0,115,128,225, - 128,255,128,255,128,224,0,115,128,127,128,30,0,5,14,14, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,5,14,14,5,1,0,56,112,192,0,224,224,224,224,224, - 224,224,224,224,224,7,14,14,5,255,0,56,124,238,0,56, - 56,56,56,56,56,56,56,56,56,5,14,14,5,0,0,216, - 216,216,0,112,112,112,112,112,112,112,112,112,112,10,14,28, - 12,1,0,96,0,55,0,60,0,102,0,31,0,127,128,115, - 128,225,192,225,192,225,192,225,192,115,128,127,128,30,0,9, - 14,28,11,1,0,59,0,127,0,110,0,0,0,239,0,255, - 128,243,128,227,128,227,128,227,128,227,128,227,128,227,128,227, - 128,10,14,28,12,1,0,112,0,56,0,12,0,0,0,30, - 0,127,128,115,128,225,192,225,192,225,192,225,192,115,128,127, - 128,30,0,10,14,28,12,1,0,3,128,7,0,12,0,0, - 0,30,0,127,128,115,128,225,192,225,192,225,192,225,192,115, - 128,127,128,30,0,10,14,28,12,1,0,28,0,62,0,119, - 0,0,0,30,0,127,128,115,128,225,192,225,192,225,192,225, - 192,115,128,127,128,30,0,10,14,28,12,1,0,59,0,127, - 0,110,0,0,0,30,0,127,128,115,128,225,192,225,192,225, - 192,225,192,115,128,127,128,30,0,10,14,28,12,1,0,51, - 0,51,0,51,0,0,0,30,0,127,128,115,128,225,192,225, - 192,225,192,225,192,115,128,127,128,30,0,9,8,16,11,1, - 1,28,0,28,0,0,0,255,128,255,128,0,0,28,0,28, - 0,12,10,20,12,0,0,15,48,63,224,57,192,115,224,119, - 224,126,224,124,224,57,192,127,192,207,0,9,14,28,11,1, - 0,112,0,56,0,12,0,0,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,231,128,255,128,123,128,9,14,28, - 11,1,0,3,128,7,0,12,0,0,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 14,28,11,1,0,28,0,62,0,119,0,0,0,227,128,227, - 128,227,128,227,128,227,128,227,128,227,128,231,128,255,128,123, - 128,9,14,28,11,1,0,51,0,51,0,51,0,0,0,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,231,128,255, - 128,123,128,9,18,36,11,1,252,7,0,14,0,24,0,0, - 0,227,128,227,128,227,128,119,0,119,0,119,0,62,0,62, - 0,28,0,28,0,28,0,24,0,120,0,112,0,10,18,36, - 12,1,252,224,0,224,0,224,0,224,0,239,0,255,128,243, - 128,225,192,225,192,225,192,225,192,243,128,255,128,239,0,224, - 0,224,0,224,0,224,0,9,18,36,11,1,252,51,0,51, - 0,51,0,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,28,0,24,0,120,0,112, - 0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14r[2548] U8G_SECTION(".progmem.u8g_font_helvB14r") = { - 0,22,29,254,249,14,3,23,6,234,32,127,252,14,252,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=17 dx=24 dy= 0 ascent=24 len=72 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18[7527] U8G_SECTION(".progmem.u8g_font_helvB18") = { - 0,28,37,254,248,19,4,35,9,107,32,255,251,24,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 6,0,1,3,19,19,7,2,251,224,224,224,0,0,96,96, - 96,224,224,224,224,224,224,224,224,224,224,224,11,18,36,14, - 1,254,1,128,1,128,31,128,63,192,123,224,115,96,227,0, - 230,0,230,0,230,0,230,0,236,0,236,224,125,224,127,192, - 63,128,24,0,24,0,13,18,36,14,1,0,31,128,63,192, - 112,224,112,224,112,0,120,0,56,0,28,0,255,192,255,192, - 28,0,28,0,28,0,56,0,56,0,127,56,255,248,241,240, - 12,12,24,14,1,3,192,48,239,112,127,224,57,192,112,224, - 112,224,112,224,112,224,57,192,127,224,239,112,192,48,13,18, - 36,14,0,0,224,56,224,56,112,112,112,112,56,224,56,224, - 29,192,29,192,127,240,127,240,7,0,127,240,127,240,7,0, - 7,0,7,0,7,0,7,0,2,24,24,7,3,251,192,192, - 192,192,192,192,192,192,192,192,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,12,24,48,14,1,251,31,128,63,192, - 121,224,112,224,120,224,60,0,30,0,127,0,247,128,227,192, - 225,224,224,224,112,112,120,112,60,112,30,224,15,192,7,128, - 3,192,113,224,112,224,121,224,63,192,31,128,7,2,2,9, - 1,16,238,238,19,19,57,19,0,0,1,240,0,15,254,0, - 30,15,0,56,3,128,112,1,192,97,240,192,227,184,224,198, - 12,96,198,0,96,198,0,96,198,0,96,198,12,96,227,184, - 224,97,240,192,112,1,192,56,3,128,30,15,0,15,254,0, - 1,240,0,8,12,12,10,1,7,124,254,198,30,126,230,198, - 255,123,0,255,255,10,8,16,13,1,3,29,192,59,128,119, - 0,238,0,238,0,119,0,59,128,29,192,12,7,14,15,1, - 4,255,240,255,240,0,48,0,48,0,48,0,48,0,48,7, - 3,3,8,0,6,254,254,254,19,19,57,19,0,0,3,248, - 0,15,254,0,28,15,0,56,3,128,115,249,192,99,28,192, - 227,12,224,195,12,96,195,24,96,195,240,96,195,48,96,195, - 24,96,227,24,96,99,12,224,112,0,192,56,1,192,30,3, - 128,15,254,0,3,248,0,7,2,2,9,1,17,254,254,8, - 7,7,9,0,11,60,102,195,195,195,102,60,11,13,26,15, - 2,0,14,0,14,0,14,0,14,0,255,224,255,224,14,0, - 14,0,14,0,14,0,0,0,255,224,255,224,6,10,10,7, - 0,8,120,252,204,12,28,120,224,192,252,252,6,10,10,7, - 0,8,120,252,204,12,56,56,12,204,252,120,6,4,4,8, - 1,15,28,56,112,224,11,19,38,15,2,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 225,224,243,224,254,224,236,224,224,0,224,0,224,0,224,0, - 224,0,11,24,48,13,1,251,15,224,63,224,124,192,124,192, - 252,192,252,192,252,192,252,192,252,192,124,192,124,192,60,192, - 28,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,3,3,3,7,2,6,224,224, - 224,6,6,6,8,1,251,112,120,28,28,252,120,4,10,10, - 7,1,8,48,48,240,240,48,48,48,48,48,48,8,12,12, - 10,1,7,60,126,231,195,195,195,231,126,60,0,255,255,10, - 8,16,13,1,3,238,0,119,0,59,128,29,192,29,192,59, - 128,119,0,238,0,17,18,54,19,1,0,48,24,0,48,24, - 0,240,48,0,240,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,134,0,49,142,0,3,30,0,3,30,0,6, - 54,0,6,102,0,12,127,128,12,127,128,24,6,0,24,6, - 0,16,18,36,19,1,0,48,24,48,24,240,48,240,48,48, - 96,48,96,48,192,48,192,49,158,49,191,3,51,3,3,6, - 7,6,30,12,56,12,48,24,63,24,63,17,18,54,19,1, - 0,120,24,0,252,24,0,204,48,0,12,48,0,56,96,0, - 56,96,0,12,192,0,204,192,0,253,134,0,121,142,0,3, - 30,0,3,30,0,6,54,0,6,102,0,12,127,128,12,127, - 128,24,6,0,24,6,0,11,19,38,15,2,251,14,0,14, - 0,14,0,0,0,0,0,14,0,14,0,14,0,14,0,28, - 0,60,0,120,0,112,0,240,224,224,224,225,224,243,192,127, - 192,63,0,16,24,48,18,1,0,14,0,7,0,3,128,1, - 192,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,24,48,18,1,0,0, - 112,0,224,1,192,3,128,0,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,16, - 24,48,18,1,0,1,192,3,224,7,112,14,56,0,0,3, - 192,3,192,7,224,7,224,14,96,14,112,14,112,28,56,28, - 56,28,56,56,28,56,28,63,252,127,254,112,14,112,14,224, - 7,224,7,224,7,16,23,46,18,1,0,7,152,15,248,12, - 240,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,23,46,18,1,0,14, - 112,14,112,0,0,0,0,3,192,3,192,7,224,7,224,14, - 96,14,112,14,112,28,56,28,56,28,56,56,28,56,28,63, - 252,127,254,112,14,112,14,224,7,224,7,224,7,16,24,48, - 18,1,0,3,192,6,96,4,32,6,96,3,192,3,192,3, - 192,7,224,7,224,14,96,14,112,14,112,28,56,28,56,28, - 56,56,28,56,28,63,252,127,254,112,14,112,14,224,7,224, - 7,224,7,22,19,57,24,1,0,3,255,248,3,255,248,7, - 112,0,7,112,0,14,112,0,14,112,0,14,112,0,28,112, - 0,28,127,240,28,127,240,56,112,0,56,112,0,63,240,0, - 127,240,0,112,112,0,112,112,0,224,112,0,224,127,252,224, - 127,252,16,24,48,18,1,251,7,240,31,252,62,62,120,15, - 112,7,240,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,240,7,112,7,120,15,62,62,31,252,7,240,3,192, - 0,224,0,224,7,224,3,192,13,24,48,16,2,0,56,0, - 28,0,14,0,7,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,13,24, - 48,16,2,0,1,192,3,128,7,0,14,0,0,0,255,240, - 255,240,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,248,255,248,13,24,48,16,2,0,7,0,15,128,29,192, - 56,224,0,0,255,240,255,240,224,0,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,248,255,248,13,23,46,16,2,0, - 56,224,56,224,0,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,6,24, - 24,7,0,0,224,112,56,28,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,6,24,24,7, - 1,0,28,56,112,224,0,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,112,112,9,24,48,7,255,0, - 28,0,62,0,119,0,227,128,0,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 7,23,23,7,0,0,238,238,0,0,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,19,19,57, - 19,255,0,31,252,0,31,255,0,28,15,128,28,3,192,28, - 1,192,28,1,224,28,0,224,28,0,224,255,192,224,255,192, - 224,28,0,224,28,0,224,28,0,224,28,1,224,28,1,192, - 28,3,192,28,15,128,31,255,0,31,252,0,15,23,46,19, - 2,0,15,48,31,240,25,224,0,0,224,14,240,14,240,14, - 248,14,248,14,252,14,238,14,238,14,231,14,227,142,227,142, - 225,206,224,206,224,238,224,126,224,62,224,62,224,30,224,14, - 17,24,72,19,1,0,14,0,0,7,0,0,3,128,0,1, - 192,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,112, - 7,0,120,15,0,62,62,0,31,252,0,7,240,0,17,24, - 72,19,1,0,0,56,0,0,112,0,0,224,0,1,192,0, - 0,0,0,7,240,0,31,252,0,62,62,0,120,15,0,112, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,7,128,112,7,0, - 120,15,0,62,62,0,31,252,0,7,240,0,17,24,72,19, - 1,0,1,192,0,3,224,0,7,112,0,14,56,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,128,224,3,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,240,7,128,112,7,0,120,15, - 0,62,62,0,31,252,0,7,240,0,17,23,69,19,1,0, - 7,152,0,15,248,0,12,240,0,0,0,0,7,240,0,31, - 252,0,62,62,0,120,15,0,112,7,0,240,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,23,69,19,1,0,14,56,0,14,56, - 0,0,0,0,0,0,0,7,240,0,31,252,0,62,62,0, - 120,15,0,112,7,0,240,7,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,240,7, - 128,112,7,0,120,15,0,62,62,0,31,252,0,7,240,0, - 12,12,24,15,1,1,64,32,224,112,112,224,57,192,31,128, - 15,0,15,0,31,128,57,192,112,224,224,112,64,32,19,19, - 57,19,0,0,3,248,96,15,254,224,31,31,192,60,3,128, - 56,7,128,120,15,192,112,29,192,112,57,192,112,113,192,112, - 225,192,113,193,192,115,129,192,119,1,192,126,3,192,60,3, - 128,60,7,128,127,31,0,239,254,0,195,248,0,15,24,48, - 19,2,0,14,0,7,0,3,128,1,192,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,19,2,0,0,112,0,224,1,192,3, - 128,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,112,28,124,124,63,248,15,224,15,24,48,19,2,0,3, - 128,7,192,14,224,28,112,0,0,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,112,28,124,124,63,248,15,224,15, - 23,46,19,2,0,28,112,28,112,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,17,1,0,0,112,0,224,1,192,3, - 128,0,0,224,14,240,30,112,28,120,60,56,56,60,120,28, - 112,30,240,14,224,15,224,7,192,7,192,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,14,19,38,17,2,0,224, - 0,224,0,224,0,224,0,255,224,255,248,224,56,224,28,224, - 28,224,28,224,28,224,56,255,248,255,240,224,0,224,0,224, - 0,224,0,224,0,11,19,38,14,2,0,30,0,127,128,243, - 128,225,192,225,192,225,192,225,192,227,128,239,0,239,128,227, - 192,225,192,224,224,224,224,224,224,224,224,225,192,239,192,239, - 128,12,19,38,14,1,0,28,0,14,0,7,0,3,128,0, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 14,1,0,1,192,3,128,7,0,14,0,0,0,31,128,63, - 192,113,224,112,224,0,224,7,224,63,224,124,224,240,224,224, - 224,225,224,243,224,127,240,62,112,12,19,38,14,1,0,7, - 0,15,128,29,192,56,224,0,0,31,128,63,192,113,224,112, - 224,0,224,7,224,63,224,124,224,240,224,224,224,225,224,243, - 224,127,240,62,112,12,19,38,14,1,0,60,192,127,192,103, - 128,0,0,0,0,31,128,63,192,113,224,112,224,0,224,7, - 224,63,224,124,224,240,224,224,224,225,224,243,224,127,240,62, - 112,12,18,36,14,1,0,57,192,57,192,0,0,0,0,31, - 128,63,192,113,224,112,224,0,224,7,224,63,224,124,224,240, - 224,224,224,225,224,243,224,127,240,62,112,12,19,38,14,1, - 0,7,0,13,128,8,128,13,128,7,0,31,128,63,192,113, - 224,112,224,0,224,7,224,63,224,124,224,240,224,224,224,225, - 224,243,224,127,240,62,112,20,14,42,22,1,0,31,143,0, - 63,255,192,113,249,224,112,240,224,0,224,112,7,224,112,63, - 255,240,124,255,240,240,224,0,224,224,0,225,240,112,243,248, - 240,127,63,224,62,15,128,11,19,38,13,1,251,31,128,63, - 192,121,224,112,224,224,0,224,0,224,0,224,0,224,0,224, - 0,112,224,121,224,63,192,31,128,30,0,7,0,7,0,63, - 0,30,0,12,19,38,14,1,0,28,0,14,0,7,0,3, - 128,0,0,15,0,63,192,121,224,112,224,224,112,224,112,255, - 240,255,240,224,0,224,0,112,112,120,240,63,224,15,128,12, - 19,38,14,1,0,3,128,7,0,14,0,28,0,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,255,240,255,240,224, - 0,224,0,112,112,120,240,63,224,15,128,12,19,38,14,1, - 0,7,0,15,128,29,192,56,224,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,255,240,255,240,224,0,224,0,112, - 112,120,240,63,224,15,128,12,18,36,14,1,0,57,192,57, - 192,0,0,0,0,15,0,63,192,121,224,112,224,224,112,224, - 112,255,240,255,240,224,0,224,0,112,112,120,240,63,224,15, - 128,6,19,19,7,0,0,224,112,56,28,0,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,6,19,19,7,1,0, - 28,56,112,224,0,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,9,19,38,7,255,0,28,0,62,0,119,0,227, - 128,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,7, - 18,18,7,0,0,238,238,0,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,12,19,38,14,1,0,112,0,29, - 192,7,0,31,0,97,128,15,192,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,11,19,38,15,2,0,60,192,127,192,103,128,0, - 0,0,0,239,128,255,192,241,192,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,12, - 19,38,14,1,0,28,0,14,0,7,0,3,128,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,15,0,12,19,38,14,1, - 0,3,128,7,0,14,0,28,0,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,121,224,63,192,15,0,12,19,38,14,1,0,14,0,31, - 0,59,128,113,192,0,0,15,0,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,12,19,38,14,1,0,60,192,127,192,103,128,0, - 0,0,0,15,0,63,192,121,224,112,224,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,121,224,63,192,15,0,12, - 18,36,14,1,0,57,192,57,192,0,0,0,0,15,0,63, - 192,121,224,112,224,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,121,224,63,192,15,0,11,12,24,15,2,1,14, - 0,14,0,14,0,0,0,0,0,255,224,255,224,0,0,0, - 0,14,0,14,0,14,0,14,14,28,14,0,0,7,140,31, - 252,60,248,56,112,112,248,113,248,115,184,119,56,126,56,124, - 56,56,112,124,240,255,224,199,128,11,19,38,15,2,0,56, - 0,28,0,14,0,7,0,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,225,224,115, - 224,126,224,28,224,11,19,38,15,2,0,3,128,7,0,14, - 0,28,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,225,224,115,224,126,224,28, - 224,11,19,38,15,2,0,14,0,31,0,59,128,113,192,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,225,224,115,224,126,224,28,224,11,18,36, - 15,2,0,57,192,57,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225, - 224,115,224,126,224,28,224,13,24,48,15,1,251,0,224,1, - 192,3,128,7,0,0,0,224,56,224,56,112,56,120,112,56, - 112,60,240,28,224,28,224,15,192,15,192,7,192,7,128,3, - 128,3,128,7,0,7,0,14,0,62,0,60,0,12,24,48, - 15,2,251,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,224,0,224,0,224,0,224, - 0,224,0,13,23,46,15,1,251,28,224,28,224,0,0,0, - 0,224,56,224,56,112,56,120,112,56,112,60,240,28,224,28, - 224,15,192,15,192,7,192,7,128,3,128,3,128,7,0,7, - 0,14,0,62,0,60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18r[3453] U8G_SECTION(".progmem.u8g_font_helvB18r") = { - 0,28,37,254,248,19,4,35,9,107,32,127,251,19,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=31 h=32 x= 4 y=21 dx=33 dy= 0 ascent=31 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24[11554] U8G_SECTION(".progmem.u8g_font_helvB24") = { - 0,40,49,250,244,25,5,252,14,144,32,255,249,31,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,9,0,1,5,24,24,11,2,250,248,248,248,248,248,0, - 0,112,112,112,112,112,112,248,248,248,248,248,248,248,248,248, - 248,248,15,24,48,18,1,253,0,32,0,32,0,96,7,240, - 31,248,63,252,127,252,124,190,248,158,249,158,241,128,241,128, - 243,0,243,0,243,30,250,30,126,62,127,252,63,248,31,240, - 15,192,12,0,8,0,8,0,17,24,72,18,0,0,3,240, - 0,31,252,0,63,254,0,63,255,0,126,31,0,124,15,128, - 124,15,128,124,7,128,124,0,0,126,0,0,62,0,0,255, - 240,0,255,240,0,31,0,0,15,0,0,15,0,0,15,0, - 0,31,0,0,30,0,0,61,227,0,127,255,128,255,255,128, - 255,255,0,96,126,0,15,15,30,18,1,4,224,14,247,222, - 255,254,127,252,60,120,120,60,112,28,112,28,112,28,120,60, - 60,120,127,252,255,254,247,222,224,14,18,24,72,18,0,0, - 248,7,192,248,7,192,124,15,128,60,15,0,30,30,0,30, - 30,0,15,60,0,15,60,0,7,248,0,7,248,0,3,240, - 0,1,224,0,63,255,0,63,255,0,1,224,0,1,224,0, - 63,255,0,63,255,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,31,31,9,3,250,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,16,32,64, - 18,1,249,15,240,31,248,63,248,126,124,124,60,124,60,126, - 0,127,0,63,192,31,224,63,248,127,252,113,254,240,255,240, - 63,248,31,252,15,127,15,127,159,63,254,31,248,7,252,1, - 254,0,126,0,62,120,30,120,30,124,62,63,252,63,252,31, - 248,7,224,10,4,8,11,0,21,243,192,243,192,243,192,243, - 192,26,25,100,24,0,0,0,127,128,0,3,255,224,0,7, - 128,248,0,31,0,60,0,28,0,14,0,56,0,7,0,112, - 63,3,0,112,127,131,128,224,243,193,128,225,192,225,192,193, - 192,224,192,195,128,0,192,195,128,0,192,195,128,0,192,195, - 128,0,192,193,192,224,192,225,192,225,192,224,243,195,128,96, - 127,131,128,112,63,7,0,56,0,14,0,30,0,60,0,15, - 128,248,0,7,255,224,0,1,255,128,0,9,16,32,12,1, - 9,62,0,127,0,227,128,195,128,31,128,127,128,243,128,227, - 128,227,128,255,128,123,128,0,0,0,0,255,128,255,128,255, - 128,12,13,26,18,3,2,8,16,24,48,56,112,120,240,241, - 224,225,192,225,192,241,224,249,240,120,240,56,112,24,48,8, - 16,16,10,20,19,1,4,255,255,255,255,255,255,255,255,0, - 15,0,15,0,15,0,15,0,15,0,15,9,5,10,11,1, - 7,255,128,255,128,255,128,255,128,255,128,26,25,100,24,0, - 0,0,255,128,0,3,255,224,0,7,128,248,0,30,0,60, - 0,28,0,14,0,56,255,135,0,112,255,195,0,112,225,227, - 128,224,224,225,128,224,224,225,128,192,224,225,192,192,225,193, - 192,192,255,129,192,192,255,1,192,192,227,129,192,192,227,193, - 192,224,225,193,128,224,224,227,128,112,224,243,128,112,224,119, - 0,56,0,14,0,30,0,28,0,15,128,120,0,7,255,224, - 0,1,255,128,0,10,3,6,11,0,21,255,192,255,192,255, - 192,9,10,20,13,2,14,62,0,127,0,99,0,193,128,193, - 128,193,128,193,128,99,0,127,0,62,0,16,22,44,19,1, - 0,3,192,3,192,3,192,3,192,3,192,3,192,255,255,255, - 255,255,255,255,255,3,192,3,192,3,192,3,192,3,192,3, - 192,0,0,0,0,255,255,255,255,255,255,255,255,10,15,30, - 11,0,9,63,0,127,128,243,192,225,192,225,192,1,192,3, - 192,7,128,15,0,62,0,120,0,112,0,255,192,255,192,255, - 192,10,15,30,11,0,9,30,0,127,128,243,192,225,192,225, - 192,3,192,15,128,15,128,3,192,1,192,225,192,225,192,243, - 192,127,128,62,0,6,5,5,11,4,20,60,120,112,224,224, - 15,25,50,20,2,249,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,255,254,255,222,247,158,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,17,31,93,18,0,250,15,255, - 128,31,255,128,63,140,0,127,140,0,127,140,0,255,140,0, - 255,140,0,255,140,0,255,140,0,255,140,0,127,140,0,127, - 140,0,63,140,0,63,140,0,15,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,4,5,5,9,2, - 11,96,240,240,240,96,7,8,8,11,2,249,48,48,48,124, - 30,14,252,248,6,15,15,11,2,9,28,60,252,252,28,28, - 28,28,28,28,28,28,28,28,28,10,16,32,12,1,9,63, - 0,127,128,115,128,225,192,225,192,225,192,225,192,225,192,115, - 128,127,128,63,0,0,0,0,0,255,192,255,192,255,192,12, - 12,24,18,3,3,129,0,193,128,225,192,241,224,120,240,56, - 112,56,112,120,240,241,224,225,192,193,128,129,0,26,24,96, - 28,0,0,0,0,56,0,6,0,112,0,30,0,112,0,254, - 0,224,0,254,1,192,0,14,1,192,0,14,3,128,0,14, - 3,128,0,14,7,0,0,14,7,0,0,14,14,7,0,14, - 28,15,0,14,28,31,0,14,56,31,0,0,56,55,0,0, - 112,103,0,0,112,231,0,0,224,199,0,1,193,135,0,1, - 193,255,192,3,129,255,192,3,128,7,0,7,0,7,0,7, - 0,7,0,25,24,96,28,1,0,0,0,224,0,12,1,192, - 0,28,1,192,0,252,3,128,0,252,3,128,0,28,7,0, - 0,28,14,0,0,28,14,0,0,28,28,0,0,28,28,0, - 0,28,56,126,0,28,48,255,0,28,113,231,128,28,225,195, - 128,0,225,195,128,1,192,7,128,1,192,15,0,3,128,30, - 0,7,0,60,0,7,0,120,0,14,0,240,0,14,1,255, - 128,28,1,255,128,28,1,255,128,25,24,96,27,1,0,63, - 0,28,0,127,128,56,0,243,192,56,0,225,192,112,0,225, - 192,224,0,3,192,224,0,15,129,192,0,15,129,192,0,15, - 195,128,0,1,199,0,0,225,199,14,0,225,206,30,0,243, - 206,30,0,127,156,62,0,63,28,126,0,0,56,238,0,0, - 112,206,0,0,113,142,0,0,227,142,0,0,227,255,128,1, - 195,255,128,1,192,14,0,3,128,14,0,3,128,14,0,16, - 24,48,20,1,250,3,224,3,224,3,224,3,224,0,0,0, - 0,3,192,3,192,3,192,7,192,31,128,63,128,127,0,126, - 0,252,0,248,15,248,15,248,15,252,31,126,127,127,254,63, - 254,63,252,15,240,22,31,93,23,0,0,3,192,0,1,224, - 0,0,240,0,0,120,0,0,60,0,0,0,0,0,252,0, - 0,252,0,1,254,0,1,254,0,1,254,0,3,255,0,3, - 255,0,3,255,0,7,207,128,7,207,128,7,207,128,15,135, - 128,15,135,192,15,135,192,31,3,192,31,3,224,31,255,224, - 31,255,224,63,255,240,63,255,240,62,1,240,124,0,248,124, - 0,248,252,0,252,248,0,124,22,31,93,23,0,0,0,15, - 0,0,30,0,0,60,0,0,120,0,0,240,0,0,0,0, - 0,252,0,0,252,0,1,254,0,1,254,0,1,254,0,3, - 255,0,3,255,0,3,255,0,7,207,128,7,207,128,7,207, - 128,15,135,128,15,135,192,15,135,192,31,3,192,31,3,224, - 31,255,224,31,255,224,63,255,240,63,255,240,62,1,240,124, - 0,248,124,0,248,252,0,252,248,0,124,22,31,93,23,0, - 0,0,48,0,0,120,0,0,252,0,1,206,0,3,135,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,30, - 90,23,0,0,0,241,128,1,255,128,3,255,0,3,30,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,31, - 93,23,0,0,3,207,0,3,207,0,3,207,0,3,207,0, - 0,0,0,0,0,0,0,252,0,0,252,0,1,254,0,1, - 254,0,1,254,0,3,255,0,3,255,0,3,255,0,7,207, - 128,7,207,128,7,207,128,15,135,128,15,135,192,15,135,192, - 31,3,192,31,3,224,31,255,224,31,255,224,63,255,240,63, - 255,240,62,1,240,124,0,248,124,0,248,252,0,252,248,0, - 124,22,31,93,23,0,0,0,120,0,0,204,0,0,132,0, - 0,132,0,0,204,0,0,120,0,0,0,0,0,252,0,1, - 254,0,1,254,0,1,254,0,3,255,0,3,255,0,3,255, - 0,7,207,128,7,207,128,7,207,128,15,135,128,15,135,192, - 15,135,192,31,3,192,31,3,224,31,255,224,31,255,224,63, - 255,240,63,255,240,62,1,240,124,0,248,124,0,248,252,0, - 252,248,0,124,31,25,100,32,0,0,0,255,255,252,0,255, - 255,252,0,255,255,252,1,255,255,252,1,243,192,0,1,227, - 192,0,3,227,192,0,3,227,192,0,3,195,192,0,7,195, - 192,0,7,195,192,0,7,195,255,248,15,131,255,248,15,131, - 255,248,15,131,255,248,31,3,192,0,31,255,192,0,31,255, - 192,0,63,255,192,0,63,255,192,0,62,3,192,0,124,3, - 255,254,124,3,255,254,248,3,255,254,248,3,255,254,21,32, - 96,23,1,249,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,240,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,252,0,0, - 96,0,0,96,0,0,248,0,0,28,0,0,28,0,1,248, - 0,1,240,0,18,31,93,22,2,0,30,0,0,15,0,0, - 7,128,0,3,192,0,1,224,0,0,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,0,255,255,0, - 255,255,0,255,255,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,18,31,93,22,2,0,0,120,0, - 0,240,0,1,224,0,3,192,0,7,128,0,0,0,0,255, - 255,128,255,255,128,255,255,128,255,255,128,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,0, - 255,255,0,255,255,0,255,255,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 192,255,255,192,255,255,192,255,255,192,18,31,93,22,2,0, - 0,192,0,1,224,0,3,240,0,7,56,0,14,28,0,0, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,18,31,93, - 22,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,192,255,255,192,255,255,192,255,255,192, - 8,31,31,9,0,0,240,120,60,30,15,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,8,31,31,9,2,0,15,30,60,120,240, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,10,31,62,9,0,0, - 12,0,30,0,63,0,115,128,225,192,0,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,10,31, - 62,9,0,0,243,192,243,192,243,192,243,192,0,0,0,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,23,25,75,23,255,0,31,255,128,31,255,224,31,255, - 240,31,255,248,31,7,248,31,0,252,31,0,252,31,0,124, - 31,0,126,31,0,62,31,0,62,255,240,62,255,240,62,255, - 240,62,31,0,62,31,0,62,31,0,124,31,0,124,31,0, - 124,31,0,248,31,3,248,31,255,240,31,255,240,31,255,192, - 31,255,128,19,30,90,24,2,0,3,198,0,7,254,0,15, - 252,0,12,120,0,0,0,0,248,3,224,252,3,224,252,3, - 224,254,3,224,254,3,224,255,3,224,255,3,224,255,131,224, - 255,195,224,251,195,224,251,227,224,249,227,224,249,243,224,248, - 243,224,248,251,224,248,123,224,248,63,224,248,63,224,248,31, - 224,248,31,224,248,15,224,248,15,224,248,7,224,248,7,224, - 248,3,224,23,31,93,25,1,0,1,224,0,0,240,0,0, - 120,0,0,60,0,0,30,0,0,0,0,1,255,0,7,255, - 192,15,255,224,31,255,240,63,199,248,63,1,248,126,0,252, - 124,0,124,124,0,124,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,126,0,252,63,1,248,63,199,248,31,255,240,15,255,224, - 7,255,192,1,255,0,23,31,93,25,1,0,0,7,128,0, - 15,0,0,30,0,0,60,0,0,120,0,0,0,0,1,255, - 0,7,255,192,15,255,224,31,255,240,63,199,248,63,1,248, - 126,0,252,124,0,124,124,0,124,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,124,0, - 124,124,0,124,126,0,252,63,1,248,63,199,248,31,255,240, - 15,255,224,7,255,192,1,255,0,23,31,93,25,1,0,0, - 24,0,0,60,0,0,126,0,0,231,0,1,195,128,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,30,90,25, - 1,0,0,120,192,0,255,192,1,255,128,1,143,0,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,31,93,25, - 1,0,1,231,128,1,231,128,1,231,128,1,231,128,0,0, - 0,0,0,0,1,255,0,7,255,192,15,255,224,31,255,240, - 63,199,248,63,1,248,126,0,252,124,0,124,124,0,124,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,126,0,252,63,1,248, - 63,199,248,31,255,240,15,255,224,7,255,192,1,255,0,15, - 16,32,19,2,0,32,8,112,28,248,62,252,126,126,252,63, - 248,31,240,15,224,15,224,31,240,63,248,126,252,252,126,248, - 62,112,28,32,8,24,25,75,25,1,0,1,255,7,7,255, - 206,15,255,252,31,255,248,63,199,248,63,0,248,126,1,252, - 124,3,252,124,7,188,248,7,62,248,14,62,248,28,62,248, - 56,62,248,112,62,248,224,62,248,224,62,125,192,124,127,128, - 124,127,0,252,63,1,248,63,199,248,63,255,240,63,255,224, - 119,255,192,225,255,0,19,31,93,24,2,0,7,128,0,3, - 192,0,1,224,0,0,240,0,0,120,0,0,0,0,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,252,7,224,127,31,192,127,255,192, - 63,255,128,31,255,0,7,252,0,19,31,93,24,2,0,0, - 30,0,0,60,0,0,120,0,0,240,0,1,224,0,0,0, - 0,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,252,7,224,127,31,192, - 127,255,192,63,255,128,31,255,0,7,252,0,19,31,93,24, - 2,0,0,96,0,0,240,0,1,248,0,3,156,0,7,14, - 0,0,0,0,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,252,7,224, - 127,31,192,127,255,192,63,255,128,31,255,0,7,252,0,19, - 31,93,24,2,0,15,30,0,15,30,0,15,30,0,15,30, - 0,0,0,0,0,0,0,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 252,7,224,127,31,192,127,255,192,63,255,128,31,255,0,7, - 252,0,20,31,93,22,1,0,0,30,0,0,60,0,0,120, - 0,0,240,0,1,224,0,0,0,0,252,3,240,252,3,240, - 126,7,224,62,7,192,63,15,192,63,15,128,31,15,128,31, - 159,0,15,159,0,15,254,0,7,254,0,7,252,0,3,252, - 0,3,248,0,3,248,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,18,25,75,22,2,0,248,0,0,248,0, - 0,248,0,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,254, - 0,255,252,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,20,2,0,15,192,0,63, - 240,0,127,252,0,255,252,0,248,126,0,248,62,0,240,62, - 0,240,62,0,240,124,0,240,252,0,241,248,0,241,252,0, - 241,254,0,240,127,0,240,31,0,240,31,128,240,15,128,240, - 15,128,240,15,128,240,31,128,240,63,0,241,255,0,241,254, - 0,241,252,0,241,240,0,15,25,50,18,1,0,15,0,7, - 128,3,128,1,192,0,224,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 25,50,18,1,0,0,120,0,240,0,224,1,192,3,128,0, - 0,0,0,15,240,63,252,127,252,124,62,248,30,248,30,1, - 254,15,254,63,254,127,30,248,30,240,30,240,62,248,126,255, - 254,255,254,127,222,63,30,15,25,50,18,1,0,1,128,3, - 192,7,224,14,112,28,56,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 24,48,18,1,0,7,140,15,252,31,248,24,240,0,0,0, - 0,15,240,63,252,127,252,124,62,248,30,248,30,1,254,15, - 254,63,254,127,30,248,30,240,30,240,62,248,126,255,254,255, - 254,127,222,63,30,15,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,15,240,63,252,127,252,124,62,248, - 30,248,30,1,254,15,254,63,254,127,30,248,30,240,30,240, - 62,248,126,255,254,255,254,127,222,63,30,15,25,50,18,1, - 0,3,192,6,96,4,32,4,32,6,96,3,192,0,0,15, - 240,63,252,127,252,124,62,248,30,248,30,1,254,15,254,63, - 254,127,30,248,30,248,30,240,62,248,126,255,254,255,254,127, - 222,63,30,26,19,76,29,1,0,7,224,248,0,31,251,254, - 0,63,255,255,0,63,255,255,0,124,63,15,128,120,30,7, - 128,120,30,7,192,0,62,7,192,7,255,255,192,63,255,255, - 192,127,255,255,192,124,30,0,0,248,30,0,0,248,30,7, - 192,252,63,15,192,255,255,255,128,127,247,255,0,63,227,254, - 0,15,129,248,0,15,25,50,18,1,249,7,224,31,248,63, - 252,63,252,124,62,120,30,248,30,240,0,240,0,240,0,240, - 0,248,30,248,30,124,62,127,252,63,248,31,248,7,224,3, - 0,3,0,7,192,0,224,0,224,15,192,15,128,16,25,50, - 18,1,0,15,0,7,128,3,128,1,192,0,224,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,25,50,18,1,0,0,120,0,240,0, - 224,1,192,3,128,0,0,0,0,7,224,31,248,63,252,127, - 254,124,62,248,30,240,31,255,255,255,255,255,255,240,0,240, - 0,248,30,124,62,127,254,63,252,31,240,7,192,16,25,50, - 18,1,0,1,128,3,192,7,224,14,112,28,56,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,7,224,31,248,63,252,127,254,124, - 62,248,30,240,31,255,255,255,255,255,255,240,0,240,0,248, - 30,124,62,127,254,63,252,31,240,7,192,7,25,25,9,1, - 0,240,120,56,28,14,0,0,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,6,25,25,9,2,0, - 60,56,112,112,224,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,10,25,50,9,255,0,12, - 0,30,0,63,0,115,128,225,192,0,0,0,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,10,24,48,9,255,0,243,192,243,192,243,192,243,192,0, - 0,0,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,17,26,78,20,1,0,48,0,0, - 120,32,0,124,240,0,63,224,0,31,192,0,63,224,0,115, - 240,0,33,248,0,7,252,0,31,254,0,63,254,0,127,255, - 0,124,31,0,248,15,128,248,15,128,240,7,128,240,7,128, - 240,7,128,248,15,128,248,15,128,252,31,128,126,63,0,127, - 255,0,63,254,0,31,252,0,7,240,0,15,24,48,20,2, - 0,15,24,31,248,63,240,49,224,0,0,0,0,243,240,247, - 248,255,252,255,254,252,62,248,62,240,30,240,30,240,30,240, - 30,240,30,240,30,240,30,240,30,240,30,240,30,240,30,240, - 30,17,25,75,20,1,0,7,128,0,3,192,0,1,192,0, - 1,224,0,0,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,25,75,20,1,0,0,120,0,0,240,0,0,224, - 0,1,192,0,3,192,0,0,0,0,0,0,0,7,240,0, - 31,252,0,63,254,0,127,255,0,124,31,0,248,15,128,248, - 15,128,240,7,128,240,7,128,240,7,128,240,7,128,248,15, - 128,248,15,128,124,31,0,127,255,0,63,254,0,31,252,0, - 7,240,0,17,25,75,20,1,0,0,192,0,1,224,0,3, - 240,0,7,56,0,14,28,0,0,0,0,0,0,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,17,24,72,20,1,0,7,140,0,15,252,0, - 31,248,0,24,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,24,72,20,1,0,30,60,0,30,60,0,30,60, - 0,30,60,0,0,0,0,0,0,0,7,240,0,31,252,0, - 63,254,0,127,255,0,124,31,0,248,15,128,248,15,128,240, - 7,128,240,7,128,240,7,128,240,7,128,248,15,128,248,15, - 128,124,31,0,127,255,0,63,254,0,31,252,0,7,240,0, - 16,16,32,19,1,0,3,192,3,192,3,192,3,192,0,0, - 0,0,255,255,255,255,255,255,255,255,0,0,0,0,3,192, - 3,192,3,192,3,192,21,18,54,20,255,0,1,252,56,7, - 255,112,15,255,224,31,255,192,31,143,192,62,7,224,62,15, - 224,60,29,224,60,57,224,60,113,224,62,227,224,63,131,224, - 63,7,224,31,143,192,31,255,192,63,255,128,119,255,0,225, - 252,0,15,25,50,20,2,0,30,0,15,0,7,0,3,128, - 1,192,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 0,240,1,224,1,192,3,128,7,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,15,25,50,20,2,0,3,0,7,128,15,192,28,224, - 56,112,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 60,120,60,120,60,120,60,120,0,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,16,32,64,19,1,249,0,120,0,240,1,224,1,192, - 3,128,0,0,0,0,248,31,248,31,248,31,120,30,124,62, - 124,60,60,60,60,60,62,120,62,120,30,120,31,240,31,240, - 15,240,15,224,7,224,7,224,7,192,7,192,7,192,15,128, - 63,128,63,0,63,0,60,0,16,32,64,20,2,249,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,243,240,247,252, - 255,254,255,254,252,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,252,62,255,254,255,252,247,248,241,240, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,31, - 62,19,1,249,30,120,30,120,30,120,30,120,0,0,0,0, - 248,31,248,31,248,31,120,62,124,62,124,60,124,60,62,124, - 62,120,62,120,30,120,31,240,31,240,15,240,15,224,7,224, - 7,224,7,192,7,192,7,192,15,128,63,128,63,0,63,0, - 60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=17 h=25 x= 2 y=13 dx=19 dy= 0 ascent=25 len=72 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24n[720] U8G_SECTION(".progmem.u8g_font_helvB24n") = { - 0,40,49,250,244,23,0,0,0,0,42,57,0,25,250,23, - 0,10,11,22,13,1,13,12,0,12,0,76,128,237,192,255, - 192,127,128,30,0,63,0,127,128,115,128,33,0,16,16,32, - 19,1,0,3,192,3,192,3,192,3,192,3,192,3,192,255, - 255,255,255,255,255,255,255,3,192,3,192,3,192,3,192,3, - 192,3,192,5,11,11,9,2,250,248,248,248,248,248,24,24, - 56,112,224,128,9,5,10,11,1,7,255,128,255,128,255,128, - 255,128,255,128,5,5,5,9,2,0,248,248,248,248,248,8, - 25,25,9,0,0,3,3,3,3,6,6,6,14,12,12,12, - 28,24,24,24,48,48,48,112,96,96,96,192,192,192,15,24, - 48,18,1,0,15,224,31,240,63,248,127,252,124,124,248,62, - 248,62,248,62,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,248,62,248,62,248,62,124,124,127,252,63,248, - 31,240,15,224,10,23,46,18,2,0,1,192,3,192,7,192, - 31,192,255,192,255,192,255,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,16,24,48,18,1,0,15,224, - 63,248,127,252,127,254,252,126,248,63,248,31,240,31,240,31, - 0,63,0,62,0,126,0,252,1,248,7,240,15,224,31,128, - 63,0,126,0,252,0,255,255,255,255,255,255,255,255,16,24, - 48,18,1,0,15,224,63,248,127,252,127,252,248,62,240,62, - 240,30,240,30,0,62,0,124,3,248,3,240,3,252,0,126, - 0,63,0,31,240,31,240,31,240,63,248,62,127,254,127,252, - 63,248,15,224,16,24,48,18,1,0,0,248,0,248,1,248, - 3,248,3,248,7,248,15,120,14,120,30,120,28,120,60,120, - 120,120,112,120,240,120,224,120,255,255,255,255,255,255,255,255, - 0,120,0,120,0,120,0,120,0,120,15,24,48,18,1,0, - 63,252,63,252,63,252,63,252,56,0,120,0,120,0,120,0, - 123,224,127,248,127,252,127,252,120,126,0,62,0,62,0,30, - 0,30,240,62,240,62,248,124,127,252,127,248,63,240,15,192, - 15,24,48,18,1,0,7,224,31,248,63,252,63,254,124,62, - 120,30,240,0,240,0,243,224,247,248,255,252,255,252,252,126, - 248,62,240,30,240,30,240,30,240,30,248,62,124,124,127,252, - 63,248,31,240,7,192,16,24,48,18,1,0,255,255,255,255, - 255,255,255,255,0,30,0,62,0,60,0,120,0,248,0,240, - 1,240,1,224,3,224,3,192,7,192,7,192,7,128,15,128, - 15,128,15,128,31,0,31,0,31,0,31,0,17,24,72,18, - 0,0,7,240,0,31,252,0,63,254,0,62,62,0,124,31, - 0,120,15,0,120,15,0,120,15,0,124,31,0,62,62,0, - 31,252,0,31,252,0,63,254,0,124,31,0,248,15,128,240, - 7,128,240,7,128,240,7,128,248,15,128,126,63,0,127,254, - 0,63,254,0,31,252,0,7,240,0,15,24,48,18,1,0, - 7,192,31,240,63,248,127,252,124,124,248,62,240,30,240,30, - 240,30,240,30,248,62,252,126,127,254,127,254,63,222,7,158, - 0,30,0,30,240,60,248,124,127,248,127,248,31,240,7,192 - }; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=29 h=32 x= 3 y=20 dx=33 dy= 0 ascent=25 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24r[5214] U8G_SECTION(".progmem.u8g_font_helvB24r") = { - 0,40,49,250,244,25,5,252,14,144,32,127,249,25,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08[2687] U8G_SECTION(".progmem.u8g_font_helvR08") = { - 0,13,18,254,252,8,1,178,3,111,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,3, - 0,1,1,8,8,3,1,254,128,0,128,128,128,128,128,128, - 5,8,8,6,1,255,16,112,168,160,160,168,112,64,5,8, - 8,6,0,0,48,72,64,224,64,64,72,176,4,6,6,5, - 0,1,144,96,144,144,96,144,5,8,8,6,0,0,136,136, - 136,80,248,32,248,32,1,10,10,3,1,254,128,128,128,128, - 0,0,128,128,128,128,5,10,10,6,0,254,112,136,192,112, - 152,200,112,24,136,112,3,1,1,3,0,7,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,5,5,4,0,3, - 224,32,160,0,224,5,5,5,6,0,0,40,80,160,80,40, - 5,3,3,7,1,2,248,8,8,3,1,1,4,0,3,224, - 7,7,7,9,1,0,56,68,186,178,170,68,56,3,1,1, - 3,0,7,224,4,4,4,4,0,4,96,144,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 4,96,160,64,224,3,4,4,3,0,4,224,64,32,192,2, - 2,2,3,0,7,64,128,4,8,8,5,0,254,144,144,144, - 144,144,240,128,128,6,10,10,6,0,254,124,232,232,232,104, - 40,40,40,40,40,2,1,1,3,0,3,192,2,2,2,3, - 0,254,64,192,2,4,4,3,0,4,64,192,64,64,3,5, - 5,4,0,3,224,160,224,0,224,5,5,5,6,0,0,160, - 80,40,80,160,9,8,16,9,0,0,68,0,196,0,72,0, - 72,0,17,0,19,0,39,128,33,0,8,8,8,9,0,0, - 68,196,72,72,19,21,34,39,9,8,16,9,0,0,224,0, - 68,0,36,0,200,0,9,0,19,0,23,128,33,0,4,8, - 8,6,1,254,32,0,32,32,64,128,144,96,7,11,11,7, - 0,0,32,16,0,16,16,40,40,68,124,130,130,7,11,11, - 7,0,0,8,16,0,16,16,40,40,68,124,130,130,7,11, - 11,7,0,0,16,40,0,16,16,40,40,68,124,130,130,7, - 11,11,7,0,0,20,40,0,16,16,40,40,68,124,130,130, - 7,10,10,7,0,0,40,0,16,16,40,40,68,124,130,130, - 7,11,11,7,0,0,16,40,16,16,16,40,40,68,124,130, - 130,9,8,16,10,0,0,31,128,24,0,40,0,47,128,72, - 0,120,0,136,0,143,128,6,10,10,8,1,254,120,132,128, - 128,128,128,132,120,16,48,5,11,11,7,1,0,64,32,0, - 248,128,128,248,128,128,128,248,5,11,11,7,1,0,16,32, - 0,248,128,128,248,128,128,128,248,5,11,11,7,1,0,32, - 80,0,248,128,128,248,128,128,128,248,5,10,10,7,1,0, - 80,0,248,128,128,248,128,128,128,248,2,11,11,3,0,0, - 128,64,0,64,64,64,64,64,64,64,64,2,11,11,3,1, - 0,64,128,0,128,128,128,128,128,128,128,128,3,11,11,3, - 0,0,64,160,0,64,64,64,64,64,64,64,64,3,10,10, - 3,0,0,160,0,64,64,64,64,64,64,64,64,7,8,8, - 8,0,0,120,68,66,242,66,66,68,120,6,11,11,8,1, - 0,40,80,0,196,196,164,164,148,148,140,140,6,11,11,8, - 1,0,32,16,0,120,132,132,132,132,132,132,120,6,11,11, - 8,1,0,8,16,0,120,132,132,132,132,132,132,120,6,11, - 11,8,1,0,32,80,0,120,132,132,132,132,132,132,120,6, - 11,11,8,1,0,40,80,0,120,132,132,132,132,132,132,120, - 6,10,10,8,1,0,72,0,120,132,132,132,132,132,132,120, - 5,5,5,6,0,1,136,80,32,80,136,6,10,10,8,1, - 255,4,120,140,148,148,164,164,196,120,128,6,11,11,8,1, - 0,32,16,0,132,132,132,132,132,132,132,120,6,11,11,8, - 1,0,8,16,0,132,132,132,132,132,132,132,120,6,11,11, - 8,1,0,32,80,0,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,72,0,132,132,132,132,132,132,132,120,7,11, - 11,7,0,0,8,16,0,130,68,68,40,40,16,16,16,5, - 8,8,7,1,0,128,128,240,136,136,240,128,128,4,8,8, - 5,0,0,96,144,144,160,144,144,144,160,5,9,9,5,0, - 0,64,32,0,224,16,112,144,144,104,5,9,9,5,0,0, - 32,64,0,224,16,112,144,144,104,5,9,9,5,0,0,32, - 80,0,224,16,112,144,144,104,5,9,9,5,0,0,80,160, - 0,224,16,112,144,144,104,5,8,8,5,0,0,80,0,224, - 16,112,144,144,104,5,9,9,5,0,0,32,80,32,224,16, - 112,144,144,104,7,6,6,8,0,0,236,18,126,144,146,108, - 4,8,8,5,0,254,96,144,128,128,144,96,32,96,4,9, - 9,5,0,0,64,32,0,96,144,240,128,144,96,4,9,9, - 5,0,0,32,64,0,96,144,240,128,144,96,4,9,9,5, - 0,0,64,160,0,96,144,240,128,144,96,4,8,8,5,0, - 0,160,0,96,144,240,128,144,96,2,9,9,2,255,0,128, - 64,0,64,64,64,64,64,64,2,9,9,2,0,0,64,128, - 0,128,128,128,128,128,128,3,9,9,2,255,0,64,160,0, - 64,64,64,64,64,64,3,8,8,2,255,0,160,0,64,64, - 64,64,64,64,5,9,9,6,0,0,64,120,144,120,136,136, - 136,136,112,4,9,9,5,0,0,80,160,0,224,144,144,144, - 144,144,5,9,9,6,0,0,64,32,0,112,136,136,136,136, - 112,5,9,9,6,0,0,16,32,0,112,136,136,136,136,112, - 5,9,9,6,0,0,32,80,0,112,136,136,136,136,112,5, - 9,9,6,0,0,40,80,0,112,136,136,136,136,112,5,8, - 8,6,0,0,80,0,112,136,136,136,136,112,5,5,5,6, - 0,1,32,0,248,0,32,7,6,6,6,255,0,58,76,84, - 100,68,184,4,9,9,5,0,0,64,32,0,144,144,144,144, - 144,112,4,9,9,5,0,0,16,32,0,144,144,144,144,144, - 112,4,9,9,5,0,0,64,160,0,144,144,144,144,144,112, - 4,8,8,5,0,0,160,0,144,144,144,144,144,112,5,11, - 11,5,255,254,8,16,0,72,72,80,80,48,32,32,192,5, - 10,10,6,0,254,128,128,176,200,136,136,200,176,128,128,5, - 10,10,5,255,254,80,0,72,72,80,80,48,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08r[1276] U8G_SECTION(".progmem.u8g_font_helvR08r") = { - 0,13,18,254,252,8,1,178,3,111,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10[3527] U8G_SECTION(".progmem.u8g_font_helvR10") = { - 0,17,22,254,251,11,2,10,4,133,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,4,0,1,1,11,11,4,1,253,128,128,0,128, - 128,128,128,128,128,128,128,6,10,10,8,1,255,4,120,204, - 144,144,160,164,204,120,128,7,11,11,8,0,0,56,68,64, - 64,248,32,32,32,64,98,220,6,6,6,8,1,2,132,120, - 72,72,120,132,7,11,11,7,0,0,130,130,130,68,68,40, - 254,16,254,16,16,1,14,14,3,1,253,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,5,14,14,8,2,253,112, - 216,136,192,112,152,136,136,200,112,24,136,216,112,5,1,1, - 5,0,9,216,10,11,22,12,1,0,30,0,97,128,92,128, - 162,192,162,64,160,64,162,64,156,64,64,128,97,128,30,0, - 4,7,7,6,1,4,224,16,112,144,208,0,240,6,5,5, - 8,1,2,36,72,144,72,36,7,4,4,9,1,2,254,2, - 2,2,3,1,1,4,0,4,224,10,11,22,12,1,0,30, - 0,97,128,92,128,146,64,146,64,156,64,146,64,146,64,64, - 128,97,128,30,0,4,1,1,4,0,9,240,4,4,4,6, - 1,7,96,144,144,96,7,9,9,9,1,0,16,16,16,254, - 16,16,16,0,254,4,6,6,5,0,5,96,144,16,32,64, - 240,4,6,6,5,0,5,96,144,32,16,144,96,2,2,2, - 5,2,9,64,128,6,11,11,8,1,253,132,132,132,132,132, - 132,204,180,128,128,128,7,14,14,8,0,253,62,116,244,244, - 244,116,52,20,20,20,20,20,20,20,2,1,1,4,1,4, - 192,4,3,3,5,0,253,32,144,96,2,6,6,5,1,5, - 64,192,64,64,64,64,4,7,7,6,1,4,96,144,144,144, - 96,0,240,6,5,5,8,1,2,144,72,36,72,144,10,11, - 22,12,1,0,66,0,194,0,68,0,68,0,72,0,72,128, - 9,128,18,128,20,128,39,192,32,128,9,11,22,12,1,0, - 66,0,194,0,68,0,68,0,72,0,75,0,20,128,16,128, - 17,0,34,0,39,128,11,11,22,12,0,0,97,0,145,0, - 34,0,18,0,148,0,100,64,4,192,9,64,10,64,19,224, - 16,64,6,11,11,8,1,253,16,16,0,16,32,64,128,132, - 132,204,48,9,14,28,9,0,0,16,0,8,0,0,0,8, - 0,28,0,20,0,20,0,34,0,34,0,65,0,127,0,65, - 0,128,128,128,128,9,14,28,9,0,0,4,0,8,0,0, - 0,8,0,28,0,20,0,20,0,34,0,34,0,65,0,127, - 0,65,0,128,128,128,128,9,14,28,9,0,0,12,0,18, - 0,0,0,8,0,28,0,20,0,20,0,34,0,34,0,65, - 0,127,0,65,0,128,128,128,128,9,14,28,9,0,0,26, - 0,44,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,13,26,9,0, - 0,54,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,14,28,9,0, - 0,12,0,18,0,18,0,12,0,12,0,20,0,20,0,34, - 0,34,0,65,0,127,0,65,0,128,128,128,128,12,11,22, - 14,1,0,31,240,18,0,18,0,34,0,34,0,35,240,126, - 0,66,0,66,0,130,0,131,240,8,14,14,10,1,253,28, - 99,65,128,128,128,128,128,65,99,28,8,36,24,7,14,14, - 9,1,0,32,16,0,254,128,128,128,128,252,128,128,128,128, - 254,7,14,14,9,1,0,8,16,0,254,128,128,128,128,252, - 128,128,128,128,254,7,14,14,9,1,0,24,36,0,254,128, - 128,128,128,252,128,128,128,128,254,7,13,13,9,1,0,108, - 0,254,128,128,128,128,252,128,128,128,128,254,2,14,14,4, - 1,0,128,64,0,64,64,64,64,64,64,64,64,64,64,64, - 2,14,14,4,2,0,64,128,0,128,128,128,128,128,128,128, - 128,128,128,128,4,14,14,4,1,0,96,144,0,64,64,64, - 64,64,64,64,64,64,64,64,5,13,13,4,0,0,216,0, - 32,32,32,32,32,32,32,32,32,32,32,9,11,22,10,0, - 0,124,0,67,0,65,0,64,128,64,128,240,128,64,128,64, - 128,65,0,67,0,124,0,8,14,14,10,1,0,26,44,0, - 193,161,161,145,145,137,137,133,133,131,131,9,14,28,11,1, - 0,16,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,4,0,8,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,12,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,11,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,13,26,11,1,0,51,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,7,7,7,9,1,1,130,68,40,16,40,68,130, - 11,11,22,11,0,0,14,32,49,192,32,128,65,64,66,64, - 68,64,72,64,80,64,32,128,113,128,142,0,8,14,14,10, - 1,0,16,8,0,129,129,129,129,129,129,129,129,129,66,60, - 8,14,14,10,1,0,4,8,0,129,129,129,129,129,129,129, - 129,129,66,60,8,14,14,10,1,0,24,36,0,129,129,129, - 129,129,129,129,129,129,66,60,8,13,13,10,1,0,102,0, - 129,129,129,129,129,129,129,129,129,66,60,9,14,28,9,0, - 0,4,0,8,0,0,0,128,128,193,128,65,0,34,0,34, - 0,20,0,28,0,8,0,8,0,8,0,8,0,7,11,11, - 9,1,0,128,128,252,134,130,130,134,252,128,128,128,5,11, - 11,7,1,0,112,136,136,136,176,144,136,136,136,136,176,7, - 11,11,8,1,0,32,16,0,120,204,4,124,196,132,204,118, - 7,11,11,8,1,0,16,32,0,120,204,4,124,196,132,204, - 118,7,11,11,8,1,0,48,72,0,120,204,4,124,196,132, - 204,118,7,11,11,8,1,0,52,88,0,120,204,4,124,196, - 132,204,118,7,11,11,8,1,0,72,72,0,120,204,4,124, - 196,132,204,118,7,12,12,8,1,0,48,72,48,0,120,204, - 4,124,196,132,204,118,11,8,16,13,1,0,123,192,198,96, - 4,32,127,224,196,0,132,0,206,96,123,192,6,11,11,8, - 1,253,120,204,128,128,128,132,204,120,16,72,48,6,11,11, - 8,1,0,32,16,0,120,204,132,252,128,128,204,120,6,11, - 11,8,1,0,16,32,0,120,204,132,252,128,128,204,120,6, - 11,11,8,1,0,48,72,0,120,204,132,252,128,128,204,120, - 6,11,11,8,1,0,72,72,0,120,204,132,252,128,128,204, - 120,2,11,11,3,1,0,128,64,0,128,128,128,128,128,128, - 128,128,2,11,11,3,1,0,64,128,0,128,128,128,128,128, - 128,128,128,4,11,11,3,0,0,96,144,0,64,64,64,64, - 64,64,64,64,3,11,11,3,0,0,160,160,0,64,64,64, - 64,64,64,64,64,6,11,11,8,1,0,216,112,144,120,204, - 132,132,132,132,204,120,6,11,11,8,1,0,104,176,0,184, - 204,132,132,132,132,132,132,6,11,11,8,1,0,32,16,0, - 120,204,132,132,132,132,204,120,6,11,11,8,1,0,16,32, - 0,120,204,132,132,132,132,204,120,6,11,11,8,1,0,48, - 72,0,120,204,132,132,132,132,204,120,6,11,11,8,1,0, - 104,176,0,120,204,132,132,132,132,204,120,6,11,11,8,1, - 0,72,72,0,120,204,132,132,132,132,204,120,7,7,7,9, - 1,1,16,16,0,254,0,16,16,8,8,8,8,0,0,61, - 98,70,74,82,98,70,188,6,11,11,8,1,0,32,16,0, - 132,132,132,132,132,132,204,116,6,11,11,8,1,0,16,32, - 0,132,132,132,132,132,132,204,116,6,11,11,8,1,0,48, - 72,0,132,132,132,132,132,132,204,116,6,11,11,8,1,0, - 72,72,0,132,132,132,132,132,132,204,116,7,14,14,7,0, - 253,8,16,0,130,194,68,68,36,40,24,16,16,48,96,6, - 14,14,8,1,253,128,128,128,184,204,132,132,132,132,204,184, - 128,128,128,7,14,14,7,0,253,36,36,0,130,194,68,68, - 36,40,24,16,16,48,96}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=13 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10r[1648] U8G_SECTION(".progmem.u8g_font_helvR10r") = { - 0,17,22,254,251,11,2,10,4,133,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255 - }; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 3 y=10 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12[4077] U8G_SECTION(".progmem.u8g_font_helvR12") = { - 0,20,26,254,250,12,2,91,5,99,32,255,252,16,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,1,1,12,12,6,2,253,128, - 128,0,128,128,128,128,128,128,128,128,128,7,13,13,9,1, - 254,4,4,56,76,138,144,144,144,162,100,56,64,64,8,12, - 12,9,0,0,14,17,33,32,32,16,126,8,16,32,121,134, - 8,7,7,9,0,3,189,102,66,66,66,102,189,9,12,24, - 9,0,0,128,128,65,0,65,0,34,0,34,0,20,0,127, - 0,8,0,127,0,8,0,8,0,8,0,1,16,16,4,1, - 252,128,128,128,128,128,128,0,0,0,0,128,128,128,128,128, - 128,7,15,15,9,1,253,56,68,70,96,152,140,134,194,98, - 50,28,4,196,68,56,3,2,2,5,1,10,160,160,12,12, - 24,12,0,0,15,0,48,192,71,32,72,160,144,16,144,16, - 144,16,144,16,72,160,71,32,48,192,15,0,5,7,7,6, - 1,5,96,144,112,144,120,0,248,6,6,6,9,1,2,36, - 72,144,144,72,36,8,5,5,10,0,1,255,1,1,1,1, - 4,1,1,5,0,4,240,12,12,24,12,0,0,15,0,48, - 192,64,32,79,32,136,144,136,144,143,16,138,16,73,32,72, - 160,48,192,15,0,5,1,1,6,0,10,248,5,5,5,7, - 1,7,112,136,136,136,112,9,11,22,10,0,0,8,0,8, - 0,8,0,8,0,255,128,8,0,8,0,8,0,8,0,0, - 0,255,128,5,7,7,6,0,5,112,136,136,16,96,128,248, - 5,7,7,6,0,5,112,136,8,48,8,136,112,3,3,3, - 6,1,10,32,96,128,7,13,13,9,1,252,130,130,130,130, - 130,130,130,134,250,128,128,128,128,7,15,15,9,1,253,62, - 116,244,244,244,244,116,52,20,20,20,20,20,20,20,1,2, - 2,5,2,4,128,128,4,4,4,6,0,252,32,32,144,96, - 3,7,7,6,0,5,32,224,32,32,32,32,32,4,7,7, - 6,1,5,96,144,144,144,96,0,240,6,6,6,9,1,2, - 144,72,36,36,72,144,12,12,24,14,0,0,32,64,224,128, - 32,128,33,0,34,0,34,32,36,96,4,160,9,32,17,240, - 16,32,32,32,12,13,26,14,0,0,0,64,32,128,224,128, - 33,0,34,0,34,0,36,224,37,16,9,16,8,32,16,192, - 33,0,33,240,13,12,24,14,0,0,112,64,136,64,8,128, - 48,128,9,0,137,16,114,48,2,80,4,144,4,248,8,16, - 8,16,7,12,12,10,1,253,16,16,0,16,16,32,64,128, - 130,130,68,56,10,16,32,11,0,0,16,0,24,0,4,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,12,0,12,0,18,0,18,0, - 18,0,33,0,33,0,127,128,64,128,64,128,128,64,128,64, - 10,16,32,11,0,0,4,0,14,0,17,0,0,0,12,0, - 12,0,18,0,18,0,18,0,33,0,33,0,127,128,64,128, - 64,128,128,64,128,64,10,15,30,11,0,0,26,0,44,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,15,30,11,0,0, - 18,0,18,0,0,0,12,0,12,0,18,0,18,0,18,0, - 33,0,33,0,127,128,64,128,64,128,128,64,128,64,10,15, - 30,11,0,0,12,0,18,0,18,0,12,0,12,0,18,0, - 18,0,18,0,33,0,33,0,127,128,64,128,64,128,128,64, - 128,64,14,12,24,16,0,0,7,252,9,0,9,0,17,0, - 17,0,33,252,33,0,127,0,65,0,65,0,129,0,129,252, - 10,16,32,12,1,252,15,0,48,128,64,64,64,0,128,0, - 128,0,128,0,128,0,64,0,64,64,48,128,15,0,4,0, - 4,0,18,0,12,0,8,16,16,11,1,0,32,48,8,0, - 255,128,128,128,128,255,128,128,128,128,128,255,8,16,16,11, - 1,0,4,12,16,0,255,128,128,128,128,255,128,128,128,128, - 128,255,8,16,16,11,1,0,16,56,68,0,255,128,128,128, - 128,255,128,128,128,128,128,255,8,15,15,11,1,0,36,36, - 0,255,128,128,128,128,255,128,128,128,128,128,255,3,16,16, - 4,0,0,128,192,32,0,64,64,64,64,64,64,64,64,64, - 64,64,64,3,16,16,4,0,0,32,96,128,0,64,64,64, - 64,64,64,64,64,64,64,64,64,5,16,16,4,255,0,32, - 112,136,0,32,32,32,32,32,32,32,32,32,32,32,32,3, - 15,15,4,0,0,160,160,0,64,64,64,64,64,64,64,64, - 64,64,64,64,12,12,24,12,0,0,63,0,32,192,32,32, - 32,32,32,16,248,16,32,16,32,16,32,32,32,32,32,192, - 63,0,9,15,30,12,1,0,26,0,44,0,0,0,128,128, - 192,128,160,128,160,128,144,128,136,128,136,128,132,128,130,128, - 130,128,129,128,128,128,11,16,32,13,1,0,8,0,12,0, - 2,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,16,32,13, - 1,0,1,0,3,0,4,0,0,0,14,0,49,128,64,64, - 64,64,128,32,128,32,128,32,128,32,64,64,64,64,49,128, - 14,0,11,16,32,13,1,0,4,0,14,0,17,0,0,0, - 14,0,49,128,64,64,64,64,128,32,128,32,128,32,128,32, - 64,64,64,64,49,128,14,0,11,15,30,13,1,0,13,0, - 22,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,15,30,13, - 1,0,17,0,17,0,0,0,14,0,49,128,64,64,64,64, - 128,32,128,32,128,32,128,32,64,64,64,64,49,128,14,0, - 8,8,8,10,1,0,129,66,36,24,24,36,66,129,11,14, - 28,13,1,255,0,64,14,128,49,128,65,64,66,64,130,32, - 132,32,132,32,136,32,72,64,80,64,49,128,46,0,64,0, - 9,16,32,12,1,0,32,0,48,0,8,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,12,1,0,2,0,6,0, - 8,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,65,0,62,0,9,16,32,12, - 1,0,8,0,28,0,34,0,0,0,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 62,0,9,15,30,12,1,0,34,0,34,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,11,1,0,2,0,6,0, - 8,0,0,0,128,128,65,0,65,0,34,0,34,0,20,0, - 28,0,8,0,8,0,8,0,8,0,8,0,8,12,12,11, - 2,0,128,128,252,130,129,129,130,252,128,128,128,128,7,12, - 12,10,2,0,120,132,130,130,132,188,134,130,130,130,132,184, - 8,13,13,9,1,0,32,48,8,0,124,130,2,6,122,130, - 130,134,123,8,13,13,9,1,0,4,12,16,0,124,130,2, - 6,122,130,130,134,123,8,13,13,9,1,0,16,56,68,0, - 124,130,2,6,122,130,130,134,123,8,12,12,9,1,0,52, - 88,0,124,130,2,6,122,130,130,134,123,8,12,12,9,1, - 0,40,40,0,124,130,2,6,122,130,130,134,123,8,13,13, - 9,1,0,16,40,16,0,124,130,2,6,122,130,130,134,123, - 13,9,18,15,1,0,124,224,131,16,2,8,6,8,123,248, - 130,0,130,8,135,16,120,224,7,13,13,8,1,252,56,68, - 130,128,128,128,130,68,56,16,16,72,48,7,13,13,9,1, - 0,64,96,16,0,56,68,130,130,254,128,130,68,56,7,13, - 13,9,1,0,8,24,32,0,56,68,130,130,254,128,130,68, - 56,7,13,13,9,1,0,16,56,68,0,56,68,130,130,254, - 128,130,68,56,7,12,12,9,1,0,40,40,0,56,68,130, - 130,254,128,130,68,56,3,13,13,4,1,0,128,192,32,0, - 64,64,64,64,64,64,64,64,64,3,13,13,4,1,0,32, - 96,128,0,64,64,64,64,64,64,64,64,64,5,13,13,4, - 0,0,32,112,136,0,32,32,32,32,32,32,32,32,32,3, - 12,12,4,1,0,160,160,0,64,64,64,64,64,64,64,64, - 64,7,12,12,9,1,0,72,48,88,60,68,130,130,130,130, - 130,68,56,7,12,12,9,1,0,52,88,0,188,194,130,130, - 130,130,130,130,130,7,13,13,9,1,0,32,48,8,0,56, - 68,130,130,130,130,130,68,56,7,13,13,9,1,0,8,24, - 32,0,56,68,130,130,130,130,130,68,56,7,13,13,9,1, - 0,16,56,68,0,56,68,130,130,130,130,130,68,56,7,12, - 12,9,1,0,52,88,0,56,68,130,130,130,130,130,68,56, - 7,12,12,9,1,0,40,40,0,56,68,130,130,130,130,130, - 68,56,7,9,9,10,1,0,16,16,0,0,254,0,0,16, - 16,7,10,10,10,1,0,2,60,68,138,146,146,162,162,68, - 184,7,13,13,9,1,0,32,48,8,0,130,130,130,130,130, - 130,130,134,122,7,13,13,9,1,0,4,12,16,0,130,130, - 130,130,130,130,130,134,122,7,13,13,9,1,0,16,56,68, - 0,130,130,130,130,130,130,130,134,122,7,12,12,9,1,0, - 40,40,0,130,130,130,130,130,130,130,134,122,7,16,16,8, - 0,253,8,24,32,0,130,130,68,68,40,40,56,16,16,32, - 32,192,7,16,16,9,1,252,128,128,128,184,196,130,130,130, - 130,130,196,184,128,128,128,128,7,15,15,8,0,253,40,40, - 0,130,130,68,68,40,40,56,16,16,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=13 h=16 x= 3 y=10 dx=17 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12r[1907] U8G_SECTION(".progmem.u8g_font_helvR12r") = { - 0,20,26,254,250,12,2,91,5,99,32,127,252,13,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=18 len=36 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14[4920] U8G_SECTION(".progmem.u8g_font_helvR14") = { - 0,22,29,254,249,14,2,149,6,82,32,255,252,18,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,5,0,1,2, - 14,14,6,2,252,192,192,0,0,64,64,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,4,4,62,127,107,200,200, - 200,200,107,127,62,16,16,9,13,26,10,0,0,30,0,63, - 0,97,128,97,128,96,0,48,0,126,0,24,0,24,0,48, - 0,96,128,255,128,223,0,8,7,7,10,1,3,195,255,102, - 102,102,255,195,8,13,13,10,1,0,195,195,102,102,102,60, - 255,24,255,24,24,24,24,2,18,18,5,1,252,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,8, - 18,18,10,1,252,60,126,195,195,240,124,110,199,195,227,115, - 62,14,7,195,195,126,60,5,2,2,6,0,12,216,216,13, - 14,28,15,1,0,15,128,48,96,64,16,71,16,136,136,144, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,7,1,6,112,152,56,72,216,104,0,248,7, - 6,6,9,1,2,54,108,216,216,108,54,9,5,10,11,1, - 3,255,128,255,128,1,128,1,128,1,128,5,1,1,6,0, - 5,248,13,14,28,14,0,0,15,128,48,96,64,16,79,144, - 136,72,136,72,136,72,143,136,137,8,136,136,72,80,64,16, - 48,96,15,128,5,1,1,5,0,12,248,5,5,5,7,1, - 8,112,216,136,216,112,8,11,11,10,1,0,24,24,24,255, - 255,24,24,24,0,255,255,5,8,8,6,0,5,112,248,152, - 24,48,96,248,248,5,8,8,6,0,5,112,248,152,48,48, - 152,248,112,4,3,3,4,0,11,48,96,192,8,14,14,10, - 1,252,195,195,195,195,195,195,195,231,255,219,192,192,192,192, - 8,18,18,10,1,252,63,114,242,242,242,242,242,114,50,18, - 18,18,18,18,18,18,18,18,2,2,2,4,1,4,192,192, - 5,5,5,5,0,252,96,112,24,216,240,4,8,8,6,0, - 5,48,240,240,48,48,48,48,48,5,8,8,7,1,6,112, - 216,136,136,216,112,0,248,7,6,6,9,1,2,216,108,54, - 54,108,216,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,136,49,24,51,56,6,120,6,216,12,252,24, - 24,24,24,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,184,49,124,51,76,6,12,6,24,12,48,24, - 124,24,124,14,13,26,15,0,0,112,48,248,48,152,96,48, - 192,48,192,153,136,249,24,115,56,6,120,6,216,12,252,24, - 24,24,24,7,14,14,10,1,252,24,24,0,0,24,24,24, - 56,112,224,198,198,254,124,12,18,36,13,0,0,24,0,12, - 0,6,0,0,0,6,0,6,0,15,0,15,0,25,128,25, - 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, - 48,12,18,36,13,0,0,1,128,3,0,6,0,0,0,6, - 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, - 192,127,224,96,96,96,96,192,48,192,48,12,18,36,13,0, - 0,6,0,15,0,25,128,0,0,6,0,6,0,15,0,15, - 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, - 96,192,48,192,48,12,18,36,13,0,0,12,128,22,128,19, - 0,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, - 17,34,13,0,0,25,128,25,128,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,12,17,34,13,0,0,6,0,9, - 0,9,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,16, - 14,28,18,1,0,7,255,7,255,13,128,13,128,25,128,25, - 128,49,254,49,254,63,128,127,128,97,128,97,128,193,255,193, - 255,12,18,36,14,1,252,15,128,63,224,112,112,96,48,224, - 0,192,0,192,0,192,0,192,0,224,0,96,48,112,112,63, - 224,15,128,6,0,3,0,27,0,30,0,10,18,36,13,2, - 0,48,0,24,0,12,0,0,0,255,192,255,192,192,0,192, - 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,192,255,192,10,18,36,13,2,0,3,0,6,0,12, - 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, - 18,36,13,2,0,12,0,30,0,51,0,0,0,255,192,255, - 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, - 0,192,0,192,0,255,192,255,192,10,17,34,13,2,0,51, - 0,51,0,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,128,255,128,192,0,192,0,192,0,192,0,255,192,255, - 192,4,18,18,6,0,0,192,96,48,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,4,18,18,6,2,0,48, - 96,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,6,18,18,6,0,0,48,120,132,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,6,17,17,6,0,0,204, - 204,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 14,14,28,14,255,0,63,224,63,240,48,56,48,24,48,12, - 48,12,254,12,254,12,48,12,48,12,48,24,48,56,63,240, - 63,224,11,18,36,14,1,0,12,128,22,128,19,0,0,0, - 192,96,224,96,240,96,240,96,216,96,204,96,204,96,198,96, - 198,96,195,96,193,224,193,224,192,224,192,96,13,18,36,15, - 1,0,24,0,12,0,6,0,0,0,15,128,63,224,112,112, - 96,48,224,56,192,24,192,24,192,24,192,24,224,56,96,48, - 112,112,63,224,15,128,13,18,36,15,1,0,1,128,3,0, - 6,0,0,0,15,128,63,224,112,112,96,48,224,56,192,24, - 192,24,192,24,192,24,224,56,96,48,112,112,63,224,15,128, - 13,18,36,15,1,0,3,0,7,128,12,192,0,0,15,128, - 63,224,112,112,96,48,224,56,192,24,192,24,192,24,192,24, - 224,56,96,48,112,112,63,224,15,128,13,18,36,15,1,0, - 6,64,11,64,9,128,0,0,15,128,63,224,112,112,96,48, - 224,56,192,24,192,24,192,24,192,24,224,56,96,48,112,112, - 63,224,15,128,13,17,34,15,1,0,12,192,12,192,0,0, - 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, - 192,24,224,56,96,48,112,112,63,224,15,128,10,9,18,10, - 0,0,192,192,97,128,51,0,30,0,12,0,30,0,51,0, - 97,128,192,192,14,14,28,15,0,0,7,204,31,248,56,48, - 48,120,112,220,97,140,99,12,98,12,102,12,108,28,56,24, - 56,56,111,240,199,192,11,18,36,14,1,0,24,0,12,0, - 6,0,0,0,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,96,192,127,192,31,0, - 11,18,36,14,1,0,3,0,6,0,12,0,0,0,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,14,1,0, - 6,0,15,0,25,128,0,0,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,96,192, - 127,192,31,0,11,17,34,14,1,0,49,128,49,128,0,0, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,96,192,127,192,31,0,12,18,36,13, - 0,0,1,128,3,0,6,0,0,0,192,48,192,48,96,96, - 96,96,48,192,57,192,25,128,15,0,6,0,6,0,6,0, - 6,0,6,0,6,0,10,14,28,12,1,0,192,0,192,0, - 192,0,255,0,255,128,193,192,192,192,192,192,193,192,255,128, - 255,0,192,0,192,0,192,0,7,14,14,9,1,0,56,124, - 198,198,198,198,220,220,198,198,198,198,222,220,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,126,0,231,0,195,0, - 7,0,127,0,227,0,195,0,195,0,231,128,121,128,9,14, - 28,11,1,0,12,0,24,0,48,0,0,0,126,0,231,0, - 195,0,7,0,127,0,227,0,195,0,195,0,231,128,121,128, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,126,0, - 231,0,195,0,7,0,127,0,227,0,195,0,195,0,231,128, - 121,128,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 126,0,231,0,195,0,7,0,127,0,227,0,195,0,195,0, - 231,128,121,128,9,14,28,11,1,0,102,0,102,0,0,0, - 0,0,126,0,231,0,195,0,7,0,127,0,227,0,195,0, - 195,0,231,128,121,128,9,14,28,11,1,0,24,0,36,0, - 36,0,24,0,126,0,231,0,195,0,7,0,127,0,227,0, - 195,0,195,0,231,128,121,128,14,10,20,17,2,0,126,240, - 231,248,195,12,7,12,127,252,227,0,195,0,195,140,231,252, - 122,240,8,14,14,10,1,252,62,127,99,192,192,192,192,99, - 127,62,24,12,108,120,8,14,14,10,1,0,48,24,12,0, - 60,126,195,195,255,192,192,227,127,60,8,14,14,10,1,0, - 12,24,48,0,60,126,195,195,255,192,192,227,127,60,8,14, - 14,10,1,0,24,60,102,0,60,126,195,195,255,192,192,227, - 127,60,8,14,14,10,1,0,102,102,0,0,60,126,195,195, - 255,192,192,227,127,60,4,14,14,4,0,0,192,96,48,0, - 96,96,96,96,96,96,96,96,96,96,4,14,14,4,0,0, - 48,96,192,0,96,96,96,96,96,96,96,96,96,96,6,14, - 14,4,255,0,48,120,204,0,48,48,48,48,48,48,48,48, - 48,48,5,14,14,4,0,0,216,216,0,0,96,96,96,96, - 96,96,96,96,96,96,9,14,28,11,1,0,96,0,54,0, - 56,0,76,0,62,0,127,0,99,0,193,128,193,128,193,128, - 193,128,99,0,127,0,62,0,8,14,14,10,1,0,50,90, - 76,0,222,255,227,195,195,195,195,195,195,195,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,62,0,127,0,99,0, - 193,128,193,128,193,128,193,128,99,0,127,0,62,0,9,14, - 28,11,1,0,6,0,12,0,24,0,0,0,62,0,127,0, - 99,0,193,128,193,128,193,128,193,128,99,0,127,0,62,0, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 62,0,127,0,99,0,193,128,193,128,193,128,193,128,99,0, - 127,0,62,0,9,14,28,11,1,0,51,0,51,0,0,0, - 0,0,62,0,127,0,99,0,193,128,193,128,193,128,193,128, - 99,0,127,0,62,0,8,8,8,10,1,1,24,24,0,255, - 255,0,24,24,11,10,20,11,0,0,14,96,63,192,49,128, - 99,192,102,192,108,192,120,192,49,128,127,128,206,0,8,14, - 14,10,1,0,48,24,12,0,195,195,195,195,195,195,195,199, - 255,123,8,14,14,10,1,0,6,12,24,0,195,195,195,195, - 195,195,195,199,255,123,8,14,14,10,1,0,24,60,102,0, - 195,195,195,195,195,195,195,199,255,123,8,14,14,10,1,0, - 102,102,0,0,195,195,195,195,195,195,195,199,255,123,8,18, - 18,10,1,252,6,12,24,0,195,195,195,102,102,102,36,60, - 24,24,24,24,112,112,9,18,36,11,1,252,192,0,192,0, - 192,0,192,0,222,0,255,0,227,0,193,128,193,128,193,128, - 193,128,227,0,255,0,222,0,192,0,192,0,192,0,192,0, - 8,18,18,10,1,252,102,102,0,0,195,195,195,102,102,102, - 36,60,24,24,24,24,112,112}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14r[2281] U8G_SECTION(".progmem.u8g_font_helvR14r") = { - 0,22,29,254,249,14,2,149,6,82,32,127,252,14,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18[7307] U8G_SECTION(".progmem.u8g_font_helvR18") = { - 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, - 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, - 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, - 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, - 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, - 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, - 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, - 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, - 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, - 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, - 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, - 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, - 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, - 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, - 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, - 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, - 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, - 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, - 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, - 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, - 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, - 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, - 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, - 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, - 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, - 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, - 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, - 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, - 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, - 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, - 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, - 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, - 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, - 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, - 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, - 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, - 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, - 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, - 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, - 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, - 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, - 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, - 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, - 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, - 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, - 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, - 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, - 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, - 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, - 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, - 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, - 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, - 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, - 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, - 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, - 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, - 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, - 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, - 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, - 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, - 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, - 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, - 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, - 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, - 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, - 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, - 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, - 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, - 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, - 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, - 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, - 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, - 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, - 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, - 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, - 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, - 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, - 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, - 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, - 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, - 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, - 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, - 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, - 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, - 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, - 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, - 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, - 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, - 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, - 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, - 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, - 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, - 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, - 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, - 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, - 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, - 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, - 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, - 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, - 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, - 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, - 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, - 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, - 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, - 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, - 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, - 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, - 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, - 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, - 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, - 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, - 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, - 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, - 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, - 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, - 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, - 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, - 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, - 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, - 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, - 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, - 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, - 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, - 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, - 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, - 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, - 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, - 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, - 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, - 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, - 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, - 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, - 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, - 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, - 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, - 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, - 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, - 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, - 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, - 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, - 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, - 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, - 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, - 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, - 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, - 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, - 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, - 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, - 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, - 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, - 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, - 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, - 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, - 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, - 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, - 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, - 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, - 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, - 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, - 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, - 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, - 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, - 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, - 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, - 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, - 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, - 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, - 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, - 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, - 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, - 0,6,0,6,0,12,0,60,0,56,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=25 dy= 0 ascent=20 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18r[3381] U8G_SECTION(".progmem.u8g_font_helvR18r") = { - 0,28,37,253,248,19,4,37,9,49,32,127,251,20,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=22 dx=34 dy= 0 ascent=31 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24[10931] U8G_SECTION(".progmem.u8g_font_helvR24") = { - 0,39,48,251,245,25,5,215,14,105,32,255,249,31,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,1,3,25,25,11,4,249,224,224,224,224, - 0,0,64,64,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,14,25,50,19,2,252,0,32,0,96,0, - 64,7,224,31,240,60,248,120,188,112,156,112,156,225,128,225, - 0,225,0,227,0,227,0,226,12,226,28,118,28,124,60,60, - 120,31,240,15,224,8,0,24,0,16,0,16,0,15,24,48, - 19,1,0,3,192,15,248,31,252,60,60,120,30,112,14,112, - 14,112,0,112,0,56,0,56,0,255,192,255,192,12,0,14, - 0,14,0,12,0,28,0,24,0,56,0,115,134,255,254,255, - 254,96,124,12,13,26,18,3,5,230,48,255,240,127,240,112, - 224,96,96,224,112,224,112,224,112,96,96,112,224,127,240,255, - 240,230,48,16,24,48,18,1,0,224,7,224,7,112,14,112, - 14,56,28,56,28,28,56,28,56,14,112,14,112,7,224,127, - 254,127,254,127,254,1,192,1,192,127,254,127,254,127,254,1, - 192,1,192,1,192,1,192,1,192,2,32,32,9,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,15, - 32,64,18,1,249,3,192,15,240,31,248,28,120,56,60,56, - 28,56,28,60,0,30,0,31,128,63,224,113,240,224,248,224, - 124,224,28,224,30,112,14,124,14,62,14,31,28,15,156,3, - 248,1,240,0,240,0,120,112,56,112,56,120,56,56,112,63, - 240,31,224,7,128,8,3,3,11,1,22,231,231,231,24,25, - 75,25,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,24,48,126,12,96,255,134,97,193,198,195,128,195,195, - 0,3,199,0,3,134,0,1,134,0,1,134,0,1,134,0, - 1,199,0,3,195,128,195,97,225,198,96,255,134,48,62,12, - 24,0,24,28,0,56,7,1,224,3,255,128,0,254,0,10, - 15,30,12,1,10,63,0,119,128,97,128,1,128,7,128,127, - 128,225,128,193,128,195,128,231,128,125,192,0,0,0,0,255, - 192,255,192,12,9,18,18,3,5,28,112,56,224,113,192,227, - 128,195,0,227,128,113,192,56,224,28,112,16,9,18,19,1, - 3,255,255,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,8,2,2,11,1,8,255,255,24,25,75,25,0, - 0,0,126,0,3,255,128,7,1,224,12,0,112,24,0,24, - 48,0,12,97,255,6,97,255,134,193,129,195,193,128,195,193, - 128,195,129,129,129,129,255,1,129,252,1,129,142,1,193,134, - 3,193,131,3,97,129,134,97,129,198,48,0,12,24,0,24, - 28,0,56,7,1,224,3,255,128,0,126,0,9,2,4,11, - 1,22,255,128,255,128,9,9,18,13,2,15,62,0,127,0, - 227,128,193,128,193,128,193,128,227,128,127,0,62,0,17,21, - 63,19,1,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,255,255,128,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,0,0,0,0,0,0,255,255,128,255,255,128, - 255,255,128,9,15,30,11,1,9,30,0,127,0,99,0,193, - 128,193,128,1,128,3,0,7,0,30,0,56,0,112,0,224, - 0,192,0,255,128,255,128,9,15,30,11,1,9,62,0,127, - 0,227,128,193,128,193,128,3,128,15,0,15,0,3,128,1, - 128,193,128,193,128,227,128,127,0,62,0,7,5,5,11,3, - 22,30,60,56,112,224,14,24,48,19,2,250,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,240,124,255,252,255,220,255,28, - 224,0,224,0,224,0,224,0,224,0,224,0,16,30,60,17, - 1,251,7,255,31,255,63,140,63,140,127,140,127,140,255,140, - 255,140,255,140,255,140,127,140,127,140,63,140,63,140,31,140, - 3,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, - 1,140,1,140,1,140,1,140,1,140,1,140,1,140,4,4, - 4,9,3,11,96,240,240,96,7,7,7,11,2,249,24,24, - 60,14,6,206,124,5,15,15,11,2,9,24,56,248,248,24, - 24,24,24,24,24,24,24,24,24,24,10,15,30,12,1,10, - 30,0,127,128,97,128,225,192,192,192,192,192,192,192,192,192, - 225,192,97,128,127,128,30,0,0,0,255,192,255,192,12,9, - 18,18,3,5,227,128,113,192,56,224,28,112,12,48,28,112, - 56,224,113,192,227,128,25,25,100,28,1,0,0,0,48,0, - 24,0,112,0,56,0,96,0,248,0,224,0,248,1,192,0, - 24,1,128,0,24,3,128,0,24,3,0,0,24,7,0,0, - 24,14,0,0,24,12,0,0,24,28,6,0,24,24,14,0, - 24,56,30,0,24,112,62,0,24,96,118,0,0,224,102,0, - 1,192,198,0,1,129,198,0,3,131,134,0,3,3,255,128, - 7,3,255,128,6,0,6,0,14,0,6,0,12,0,6,0, - 25,25,100,28,1,0,0,0,96,0,24,0,224,0,56,0, - 192,0,248,1,128,0,248,3,128,0,24,3,0,0,24,6, - 0,0,24,14,0,0,24,12,0,0,24,28,0,0,24,24, - 0,0,24,56,60,0,24,48,255,0,24,112,195,128,24,97, - 129,128,24,193,129,128,1,192,3,128,1,128,7,0,3,128, - 14,0,3,0,60,0,6,0,112,0,14,0,224,0,12,1, - 192,0,28,1,255,128,24,1,255,128,25,24,96,28,1,0, - 62,0,14,0,127,0,12,0,99,128,24,0,193,128,56,0, - 193,128,48,0,3,128,96,0,15,0,224,0,15,128,192,0, - 1,193,128,0,0,195,128,0,192,195,6,0,192,199,14,0, - 97,206,30,0,127,140,62,0,30,24,118,0,0,56,102,0, - 0,48,198,0,0,97,198,0,0,227,134,0,1,195,255,128, - 1,131,255,128,3,0,6,0,7,0,6,0,6,0,6,0, - 14,25,50,19,3,249,3,128,3,128,3,128,3,128,0,0, - 0,0,3,128,3,128,3,128,7,128,7,0,15,0,30,0, - 60,0,120,0,112,0,240,0,224,28,224,28,224,28,240,60, - 120,120,127,240,63,224,7,128,20,31,93,22,1,0,3,192, - 0,1,224,0,0,224,0,0,112,0,0,56,0,0,0,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,3, - 252,0,3,156,0,3,156,0,7,158,0,7,14,0,7,14, - 0,15,15,0,14,15,0,14,7,0,30,7,128,31,255,128, - 31,255,128,63,255,192,60,3,192,56,1,192,120,1,224,120, - 1,224,112,0,224,240,0,240,240,0,240,20,31,93,22,1, - 0,0,60,0,0,120,0,0,112,0,0,224,0,1,192,0, - 0,0,0,0,240,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,3,156,0,7,158,0,7,14, - 0,7,14,0,15,15,0,15,15,0,14,7,0,30,7,128, - 31,255,128,31,255,128,63,255,192,60,3,192,120,1,192,120, - 1,224,120,1,224,112,0,224,240,0,240,240,0,240,20,31, - 93,22,1,0,0,64,0,0,224,0,1,240,0,3,184,0, - 7,28,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,1,198,0,3,254,0,7,252,0, - 6,56,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,3,156,0,3,156,0,3,156,0, - 0,0,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,31,93,22,1,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,240,0,0, - 240,0,1,248,0,1,248,0,3,252,0,3,156,0,3,156, - 0,7,158,0,7,14,0,7,14,0,15,15,0,14,15,0, - 14,7,0,30,7,128,31,255,128,31,255,128,63,255,192,60, - 3,192,56,1,192,120,1,224,120,1,224,112,0,224,240,0, - 240,240,0,240,29,25,100,32,1,0,0,127,255,248,0,127, - 255,248,0,255,255,248,0,227,128,0,1,195,128,0,1,195, - 128,0,3,195,128,0,3,131,128,0,3,131,128,0,7,131, - 128,0,7,3,128,0,7,3,255,240,15,3,255,240,14,3, - 255,240,30,3,128,0,31,255,128,0,31,255,128,0,63,255, - 128,0,56,3,128,0,120,3,128,0,120,3,128,0,112,3, - 128,0,240,3,255,248,224,3,255,248,224,3,255,248,20,32, - 96,23,2,249,1,248,0,7,254,0,15,255,128,31,7,128, - 60,3,192,120,1,224,112,0,224,112,0,224,240,0,0,240, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,112,240,0,112,112,0,240,112,0,224,120,1,224, - 60,3,192,31,7,192,15,255,128,7,254,0,1,248,0,0, - 96,0,0,96,0,0,240,0,0,56,0,0,24,0,3,56, - 0,1,240,0,17,31,93,22,3,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,224,0,0,0,0,255,255,0,255, - 255,0,255,255,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,255,255,0, - 255,255,0,255,255,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,255,255, - 128,255,255,128,255,255,128,17,31,93,22,3,0,0,120,0, - 0,240,0,0,224,0,1,192,0,3,128,0,0,0,0,255, - 255,0,255,255,0,255,255,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 255,255,0,255,255,0,255,255,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,255,255,128,255,255,128,255,255,128,17,31,93,22,3,0, - 0,128,0,1,192,0,3,224,0,7,112,0,14,56,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,17,30,90, - 22,3,0,28,56,0,28,56,0,28,56,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,7,31,31, - 9,0,0,240,120,56,28,14,0,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,7,31,31,9,2,0,30,60,56,112,224,0,112,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,9,31,62,9,0,0,8,0,28, - 0,62,0,119,0,227,128,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,9,30,60,9,0, - 0,227,128,227,128,227,128,0,0,0,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,21,25,75, - 23,0,0,31,254,0,31,255,128,31,255,192,28,3,224,28, - 0,224,28,0,240,28,0,112,28,0,112,28,0,56,28,0, - 56,28,0,56,255,192,56,255,192,56,28,0,56,28,0,56, - 28,0,56,28,0,120,28,0,112,28,0,112,28,0,240,28, - 0,224,28,3,192,31,255,192,31,255,128,31,254,0,19,30, - 90,24,2,0,1,198,0,3,254,0,7,252,0,6,56,0, - 0,0,0,240,0,224,248,0,224,248,0,224,252,0,224,252, - 0,224,254,0,224,239,0,224,231,0,224,231,128,224,227,192, - 224,227,192,224,225,224,224,224,224,224,224,240,224,224,120,224, - 224,56,224,224,60,224,224,28,224,224,30,224,224,15,224,224, - 7,224,224,7,224,224,3,224,224,1,224,224,1,224,23,31, - 93,25,1,0,0,240,0,0,120,0,0,56,0,0,28,0, - 0,14,0,0,0,0,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,248,60,0,120,120,0,60,112,0,28,112,0, - 28,240,0,30,224,0,14,224,0,14,224,0,14,224,0,14, - 224,0,14,240,0,30,240,0,30,112,0,28,120,0,60,60, - 0,120,62,0,248,31,1,240,15,255,224,3,255,128,0,254, - 0,23,31,93,25,1,0,0,15,0,0,30,0,0,28,0, - 0,56,0,0,112,0,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,23,31,93,25,1,0,0,16,0,0,56,0, - 0,124,0,0,238,0,1,199,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,30,90,25,1,0,0,113,128, - 0,255,128,1,255,0,1,142,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,29,87,25,1,0,1,195,128, - 1,195,128,1,195,128,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,15,15,30,19,2,1,64,4,224,14,240,30, - 120,60,60,120,31,240,15,224,7,192,7,192,15,224,30,240, - 60,120,120,60,240,30,96,12,23,25,75,25,1,0,0,254, - 6,3,255,140,15,255,248,31,1,240,62,0,248,60,0,248, - 120,1,188,112,3,28,112,6,28,240,6,30,224,12,14,224, - 24,14,224,48,14,224,96,14,224,192,14,225,128,30,243,0, - 30,118,0,28,124,0,60,60,0,120,62,0,248,63,1,240, - 111,255,224,195,255,128,0,254,0,18,31,93,24,3,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,112,0,0,0, - 0,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,240,3,192,120,7,128, - 124,15,128,63,255,0,31,254,0,3,240,0,18,31,93,24, - 3,0,0,120,0,0,240,0,0,224,0,1,192,0,3,128, - 0,0,0,0,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,240,3,192, - 120,7,128,124,15,128,63,255,0,31,254,0,3,240,0,18, - 31,93,24,3,0,0,64,0,0,224,0,1,240,0,3,184, - 0,7,28,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,18,30,90,24,3,0,14,28,0,14,28,0,14,28, - 0,0,0,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,31,93,22,1,0,0,60,0,0,120,0,0,112, - 0,0,224,0,1,192,0,0,0,0,224,0,224,240,1,224, - 112,1,192,120,3,192,56,3,128,60,7,128,28,15,0,30, - 15,0,15,30,0,7,28,0,7,188,0,3,184,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,17,25,75,22,3,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,255,248,0,255,254,0, - 255,255,0,224,15,0,224,7,0,224,7,128,224,3,128,224, - 3,128,224,7,128,224,7,0,224,15,0,255,254,0,255,252, - 0,255,248,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,14,25,50,20,4,0,15,128,63,224, - 127,240,120,240,240,120,224,56,224,56,224,56,224,120,224,240, - 227,224,227,224,227,240,224,120,224,60,224,28,224,28,224,28, - 224,28,224,28,224,56,224,120,231,240,231,224,231,128,16,25, - 50,18,1,0,15,0,7,128,3,128,1,192,0,224,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 121,252,127,223,63,143,16,25,50,18,1,0,0,240,1,224, - 1,192,3,128,7,0,0,0,0,0,15,224,63,248,60,124, - 112,28,112,28,0,28,0,28,0,252,31,252,127,156,120,28, - 240,28,224,28,224,60,224,124,120,252,127,223,63,143,16,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 120,252,127,223,63,143,16,24,48,18,1,0,7,24,15,248, - 31,240,24,224,0,0,0,0,15,224,63,248,60,124,112,28, - 112,28,0,28,0,28,0,252,31,252,127,156,120,28,240,28, - 224,28,224,60,224,124,120,252,127,223,63,143,16,23,46,18, - 1,0,14,112,14,112,14,112,0,0,0,0,15,224,63,248, - 60,252,112,28,112,28,0,28,0,28,0,252,31,252,127,156, - 120,28,240,28,224,28,224,60,224,124,121,252,127,223,63,143, - 16,25,50,18,1,0,3,128,6,192,4,64,4,64,6,192, - 3,128,0,0,15,224,63,248,60,124,112,28,112,28,0,28, - 0,28,0,252,31,252,127,156,120,28,240,28,224,28,224,60, - 224,124,120,252,127,223,63,143,26,18,72,29,1,0,7,192, - 248,0,31,241,254,0,60,127,143,0,112,62,3,128,112,30, - 3,128,0,28,1,192,0,28,1,192,0,252,1,192,15,255, - 255,192,63,255,255,192,126,31,255,192,240,28,0,0,224,28, - 1,192,224,30,1,192,224,126,3,128,248,247,143,0,127,231, - 255,0,63,129,252,0,14,25,50,17,1,249,7,192,31,240, - 63,248,56,56,112,28,112,28,224,0,224,0,224,0,224,0, - 224,0,224,28,224,28,112,56,120,120,63,240,31,224,7,128, - 3,0,3,0,7,128,1,192,0,192,25,192,15,128,15,25, - 50,18,1,0,30,0,15,0,7,0,3,128,1,192,0,0, - 0,0,7,192,31,240,62,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,15,224,15,25,50,18,1,0,1,224,3,192, - 3,128,7,0,14,0,0,0,0,0,7,192,31,240,60,120, - 120,28,112,28,240,14,224,14,224,14,255,254,255,254,224,0, - 224,0,224,14,112,14,120,28,60,124,31,240,15,224,15,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,7,192,31,240,60,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,7,192,15,23,46,18,1,0,28,112,28,112, - 28,112,0,0,0,0,7,192,31,240,60,120,120,28,112,28, - 240,14,224,14,224,14,255,254,255,254,224,0,224,0,224,14, - 112,14,120,28,60,124,31,240,7,192,7,25,25,9,0,0, - 240,120,56,28,14,0,0,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,7,25,25,9,2,0,30, - 60,56,112,224,0,0,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,9,25,50,9,0,0,8,0, - 28,0,62,0,119,0,227,128,0,0,0,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 8,23,23,9,1,0,231,231,231,0,0,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,15,25,50, - 19,1,0,120,64,60,224,31,192,15,128,31,128,59,192,17, - 224,7,240,31,248,63,248,120,60,112,28,112,28,224,14,224, - 14,224,14,224,14,224,14,224,14,112,28,112,28,120,60,63, - 248,31,240,7,192,14,24,48,18,2,0,14,48,31,240,63, - 224,49,192,0,0,0,0,3,192,239,240,255,248,248,60,240, - 28,240,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,15,25,50,19,1, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,25,50,19,1,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,7,192,31,240,63,248,120,60,112, - 28,112,28,224,14,224,14,224,14,224,14,224,14,224,14,112, - 28,112,28,120,60,63,248,31,240,7,192,15,25,50,19,1, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,24,48,19,1,0,14,48,31,240,63,224,49, - 192,0,0,0,0,7,192,31,240,63,248,120,60,112,28,112, - 28,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,120,60,63,248,31,240,7,192,15,23,46,19,1,0,28, - 112,28,112,28,112,0,0,0,0,7,192,31,240,63,248,120, - 60,112,28,112,28,224,14,224,14,224,14,224,14,224,14,224, - 14,112,28,112,28,120,60,63,248,31,240,7,192,15,15,30, - 19,2,1,3,128,3,128,3,128,0,0,0,0,0,0,255, - 254,255,254,255,254,0,0,0,0,0,0,3,128,3,128,3, - 128,16,18,36,19,2,0,7,195,31,246,63,252,120,120,112, - 28,112,60,224,110,224,206,225,142,227,14,230,14,236,14,120, - 28,112,28,56,60,127,248,223,240,135,192,14,25,50,19,2, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,25,50,19,2,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 60,224,60,240,252,127,252,63,220,15,0,14,25,50,19,2, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,23,46,19,2,0,28,224,28,224,28,224,0, - 0,0,0,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,60,224,60,240, - 252,127,252,63,220,15,0,14,32,64,17,1,249,0,240,1, - 224,1,192,3,128,7,0,0,0,0,0,224,28,224,28,224, - 60,112,56,112,56,112,56,120,112,56,112,56,240,60,224,28, - 224,29,192,29,192,15,192,15,128,15,128,7,0,7,0,7, - 0,14,0,14,0,30,0,124,0,124,0,112,0,15,31,62, - 19,2,250,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,231,224,239,240,255,248,248,60,240,28,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,240,28,240,28,248,60,255, - 248,239,240,227,192,224,0,224,0,224,0,224,0,224,0,224, - 0,14,30,60,17,1,249,28,112,28,112,28,112,0,0,0, - 0,224,28,224,28,224,60,112,56,112,56,112,120,120,112,56, - 112,56,240,60,224,28,224,29,192,29,192,15,192,15,128,15, - 128,7,0,7,0,7,0,14,0,14,0,30,0,124,0,124, - 0,112,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 3 y=15 dx=19 dy= 0 ascent=26 len=48 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24n[702] U8G_SECTION(".progmem.u8g_font_helvR24n") = { - 0,39,48,251,245,24,0,0,0,0,42,57,0,26,251,24, - 0,10,11,22,13,1,15,12,0,12,0,76,128,237,192,127, - 128,63,0,30,0,63,0,115,128,225,192,64,128,17,16,48, - 19,1,1,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,3,9,9,9,3,251,224,224,224,224,32,96,96, - 192,128,8,2,2,11,1,8,255,255,3,4,4,9,3,0, - 224,224,224,224,9,24,48,9,0,0,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,8,0,24,0,24,0,24,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,15,24,48,18,1,0, - 7,192,31,240,63,248,60,120,120,60,112,28,112,28,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,112,28,112,28,112,60,60,120,63,248,31,240,7,192, - 8,24,24,18,3,0,3,7,7,15,63,255,255,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,24, - 48,18,1,0,7,192,31,240,63,248,120,60,112,28,240,14, - 224,14,224,14,0,14,0,28,0,60,0,120,0,240,3,224, - 7,192,31,0,60,0,120,0,112,0,224,0,224,0,255,254, - 255,254,255,254,15,24,48,18,1,0,7,192,31,240,63,248, - 56,56,112,28,112,28,112,28,112,28,0,28,0,56,3,248, - 3,240,3,248,0,60,0,30,0,14,224,14,224,14,224,14, - 112,28,120,60,63,248,31,240,7,192,16,24,48,18,0,0, - 0,24,0,56,0,120,0,120,0,248,1,248,3,184,3,184, - 7,56,14,56,14,56,28,56,56,56,56,56,112,56,224,56, - 255,255,255,255,255,255,0,56,0,56,0,56,0,56,0,56, - 15,24,48,18,1,0,63,252,63,252,63,252,56,0,56,0, - 56,0,112,0,112,0,119,192,127,240,127,248,120,124,112,28, - 0,30,0,14,0,14,0,14,224,14,224,30,240,28,120,124, - 127,248,63,240,15,128,15,24,48,18,1,0,3,192,15,240, - 31,248,60,56,56,28,112,28,112,0,112,0,96,0,227,192, - 239,240,255,248,248,60,240,28,240,14,224,14,224,14,96,14, - 112,14,112,28,56,60,63,248,31,240,7,192,15,24,48,18, - 1,0,255,254,255,254,255,254,0,14,0,28,0,24,0,56, - 0,112,0,112,0,224,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,7,0,14,0,14,0,14,0,28,0,28,0, - 28,0,15,24,48,18,1,0,7,192,31,240,63,248,56,60, - 112,28,112,28,112,28,112,28,120,60,60,120,31,240,15,224, - 63,248,120,60,112,28,224,14,224,14,224,14,224,14,240,28, - 120,60,63,248,31,240,7,192,15,24,48,18,1,0,7,192, - 31,240,63,248,120,124,112,60,240,28,224,30,224,14,224,14, - 224,14,224,30,224,30,112,62,127,254,63,238,15,206,0,14, - 0,28,224,28,240,60,120,120,63,240,63,224,15,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=20 dx=34 dy= 0 ascent=27 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24r[4992] U8G_SECTION(".progmem.u8g_font_helvR24r") = { - 0,39,48,251,245,25,5,215,14,105,32,127,249,27,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255 - }; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 4 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[2193] U8G_SECTION(".progmem.u8g_font_lucasfont_alternate") = { - 0,9,11,0,255,7,1,148,3,22,32,255,255,10,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,1,7,7,2,0,0,128,0,0,128,128,128,128, - 5,7,7,6,0,0,32,112,168,160,168,112,32,5,7,7, - 6,0,0,56,64,64,240,64,64,248,255,5,7,7,6,0, - 0,136,136,80,32,248,32,32,1,7,7,2,0,0,128,128, - 128,0,128,128,128,255,255,8,8,8,9,0,255,60,66,153, - 161,161,153,66,60,255,6,5,5,7,0,1,36,72,144,72, - 36,5,3,3,6,0,1,248,8,8,5,1,1,6,0,3, - 248,255,255,255,5,7,7,6,0,0,32,32,248,32,32,0, - 248,255,255,255,255,6,7,7,7,0,0,124,244,244,116,20, - 20,20,1,1,1,2,0,3,128,255,255,255,6,5,5,7, - 0,1,144,72,36,72,144,255,255,255,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,10,10,6,0,0,64,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,16,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,32,80,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,104,144,0, - 112,136,136,248,136,136,136,5,9,9,6,0,0,80,0,112, - 136,136,248,136,136,136,5,10,10,6,0,0,32,80,32,112, - 136,136,248,136,136,136,9,7,14,10,0,0,119,128,136,0, - 136,0,255,0,136,0,136,0,143,128,255,5,10,10,6,0, - 0,64,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,16,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,32,80,0,248,128,128,240,128,128,248,5,9,9,6,0, - 0,80,0,248,128,128,240,128,128,248,2,10,10,3,0,0, - 128,64,0,64,64,64,64,64,64,64,2,10,10,4,1,0, - 64,128,0,128,128,128,128,128,128,128,3,10,10,4,0,0, - 64,160,0,64,64,64,64,64,64,64,3,9,9,4,0,0, - 160,0,64,64,64,64,64,64,64,6,7,7,7,0,0,120, - 68,68,244,68,68,120,6,10,10,7,0,0,100,152,0,132, - 196,164,148,140,132,132,5,10,10,6,0,0,64,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,16,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,32,80,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,104,144,0,112, - 136,136,136,136,136,112,5,8,8,6,0,0,136,112,136,136, - 136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,255, - 5,10,10,6,0,0,64,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,16,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,32,80,0,136,136,136,136,136,136,112, - 5,8,8,6,0,0,136,0,136,136,136,136,136,112,5,10, - 10,6,0,0,16,32,0,136,136,136,80,32,32,32,255,4, - 8,8,5,0,255,96,144,144,160,144,144,160,128,5,8,8, - 6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,0, - 0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,32, - 80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,0, - 112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,120, - 136,120,5,9,9,6,0,0,32,80,32,0,112,8,120,136, - 120,9,5,10,10,0,0,119,0,8,128,127,0,136,0,119, - 128,255,5,8,8,6,0,0,64,32,0,112,136,240,128,120, - 5,8,8,6,0,0,16,32,0,112,136,240,128,120,5,8, - 8,6,0,0,32,80,0,112,136,240,128,120,5,7,7,6, - 0,0,80,0,112,136,240,128,120,2,7,7,3,0,0,128, - 64,0,64,64,64,64,2,7,7,3,0,0,64,128,0,128, - 128,128,128,3,7,7,4,0,0,64,160,0,64,64,64,64, - 3,6,6,4,0,0,160,0,64,64,64,64,255,5,8,8, - 6,0,0,104,144,0,240,136,136,136,136,5,8,8,6,0, - 0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,16, - 32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,0, - 112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,136, - 136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,112, - 5,5,5,6,0,1,32,0,248,0,32,255,5,8,8,6, - 0,0,64,32,0,136,136,136,136,120,5,8,8,6,0,0, - 16,32,0,136,136,136,136,120,5,8,8,6,0,0,32,80, - 0,136,136,136,136,120,5,7,7,6,0,0,80,0,136,136, - 136,136,120,5,9,9,6,0,255,16,32,0,136,136,136,120, - 8,112,255,5,8,8,6,0,255,80,0,136,136,136,120,8, - 112}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 3 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[206] U8G_SECTION(".progmem.u8g_font_lucasfont_alternaten") = { - 0,9,11,0,255,7,0,0,0,0,42,57,0,7,255,7, - 0,7,5,5,8,0,1,68,40,254,40,68,5,5,5,6, - 0,1,32,32,248,32,32,2,3,3,3,0,255,64,64,128, - 6,1,1,7,0,3,252,1,2,2,2,0,0,128,128,7, - 7,7,8,0,0,2,4,8,16,32,64,128,5,7,7,6, - 0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,32, - 96,32,32,32,32,248,5,7,7,6,0,0,112,136,8,16, - 32,64,248,5,7,7,6,0,0,240,8,8,120,8,8,240, - 5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7, - 6,0,0,248,128,112,8,8,136,112,5,7,7,6,0,0, - 112,136,128,240,136,136,112,5,7,7,6,0,0,248,8,16, - 32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136, - 112,5,7,7,6,0,0,112,136,136,120,8,136,112}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 4 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[1138] U8G_SECTION(".progmem.u8g_font_lucasfont_alternater") = { - 0,9,11,0,255,7,1,148,3,22,32,127,255,7,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255}; -/* - Fontname: m2icon5 - Copyright: public domain - Capital A Height: 5, '1' Height: 0 - Calculated Max Values w= 9 h= 6 x= 0 y= 0 dx=10 dy= 0 ascent= 5 len=10 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_5[221] U8G_SECTION(".progmem.u8g_font_m2icon_5") = { - 1,9,6,0,255,5,0,17,0,172,65,104,255,5,255,5, - 255,2,117,149,28,254,130,130,254,2,69,133,112,208,144,144, - 240,2,84,100,216,112,112,216,2,117,133,6,12,216,112,32, - 2,68,84,240,144,144,240,2,68,84,240,144,208,240,2,68, - 84,240,240,240,240,2,85,101,248,136,136,136,248,2,85,101, - 248,136,168,136,248,2,85,101,248,248,248,248,248,2,68,84, - 224,176,240,112,2,68,84,224,176,240,112,2,68,84,224,240, - 240,112,2,85,101,240,152,152,248,120,2,85,101,240,152,216, - 248,120,2,85,101,240,248,248,248,120,2,68,84,96,144,144, - 96,2,68,84,96,144,208,96,2,68,84,96,240,240,96,255, - 255,255,255,255,255,255,255,255,255,255,255,255,2,117,133,32, - 64,254,64,32,2,85,101,32,112,168,32,32,255,255,255,2, - 149,170,28,0,254,0,130,0,191,128,255,0,1,22,38,128, - 128,128,128,128,128,2,85,101,32,32,248,32,32}; -/* - Fontname: m2icon_7 - Copyright: public domain - Capital A Height: 7, '1' Height: 0 - Calculated Max Values w=12 h= 8 x= 0 y= 1 dx=13 dy= 0 ascent= 7 len=14 - Font Bounding box w=12 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_7[275] U8G_SECTION(".progmem.u8g_font_m2icon_7") = { - 1,12,8,0,255,7,0,17,0,214,65,104,255,7,255,7, - 255,2,151,174,15,0,255,128,128,128,128,128,128,128,128,128, - 255,128,2,87,103,56,104,232,136,136,136,248,3,84,100,216, - 112,112,216,2,134,150,3,6,12,216,112,32,2,102,118,252, - 132,132,132,132,252,2,102,118,252,132,180,180,132,252,2,102, - 118,252,252,252,252,252,252,2,119,151,254,130,130,130,130,130, - 254,2,119,151,254,130,186,186,186,130,254,2,119,151,254,254, - 254,254,254,254,254,2,102,118,248,140,140,140,252,124,2,102, - 118,248,140,172,140,252,124,2,102,134,248,252,252,252,252,124, - 2,119,151,252,134,134,134,134,254,126,2,119,151,252,134,182, - 182,134,254,126,2,119,151,252,254,254,254,254,254,126,2,102, - 118,120,204,132,132,204,120,2,102,118,120,204,180,180,204,120, - 2,102,118,120,252,252,252,252,120,255,255,255,255,255,255,255, - 255,255,255,255,255,255,2,135,151,16,48,95,129,95,48,16, - 2,119,135,16,40,68,238,40,40,56,255,255,255,2,199,222, - 15,0,255,128,128,128,159,240,160,32,192,64,255,128,1,24, - 40,128,128,128,128,128,128,128,128,2,119,199,16,0,16,186, - 16,0,16}; -/* - Fontname: m2icon_9 - Copyright: public domain - Capital A Height: 8, '1' Height: 0 - Calculated Max Values w=13 h=11 x= 0 y= 1 dx=12 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_9[471] U8G_SECTION(".progmem.u8g_font_m2icon_9") = { - 0,13,11,0,254,8,0,17,1,111,65,105,254,9,254,8, - 254,10,8,16,11,0,0,15,128,255,192,128,64,128,64,128, - 64,128,64,128,64,255,192,6,8,8,7,0,0,60,84,148, - 244,132,132,132,252,6,5,5,7,0,1,204,120,48,120,204, - 10,7,14,12,0,0,0,192,1,128,3,0,198,0,108,0, - 56,0,16,0,8,8,8,9,0,0,255,129,129,129,129,129, - 129,255,8,8,8,9,0,0,255,129,189,189,189,189,129,255, - 8,8,8,9,0,0,255,255,255,255,255,255,255,255,9,9, - 18,10,0,0,255,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,255,128,9,9,18,10,0,0,255,128,128,128, - 190,128,190,128,190,128,190,128,190,128,128,128,255,128,9,9, - 18,11,0,0,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,8,8,8,8,0,0,254,131,131,131, - 131,131,255,127,8,8,8,9,0,0,254,131,187,187,187,131, - 255,127,8,8,8,9,0,0,254,255,255,255,255,255,255,127, - 9,9,18,10,0,0,255,0,129,128,129,128,129,128,129,128, - 129,128,129,128,255,128,127,128,9,9,18,10,0,0,255,0, - 129,128,189,128,189,128,189,128,189,128,129,128,255,128,127,128, - 9,9,18,10,0,0,255,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,127,128,8,8,8,9,0,0,60,66, - 129,129,129,129,66,60,8,8,8,9,0,0,60,66,153,189, - 189,153,66,60,8,8,8,9,0,0,60,126,255,255,255,255, - 126,60,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 8,16,11,0,0,24,0,40,0,79,192,128,64,128,64,79, - 192,40,0,24,0,8,9,9,9,0,0,24,36,66,129,231, - 36,36,36,60,255,255,255,13,8,16,11,0,0,15,128,255, - 192,128,64,128,64,159,248,160,16,192,32,255,192,1,11,11, - 2,0,254,128,128,128,128,128,128,128,128,128,128,128,9,9, - 18,10,0,0,8,0,0,0,8,0,8,0,190,128,8,0, - 8,0,0,0,8,0,255}; -/* - Fontname: micro - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 4 h= 5 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_micro[855] U8G_SECTION(".progmem.u8g_font_micro") = { - 1,4,5,0,0,5,0,255,1,245,32,255,0,5,0,5, - 0,7,0,64,2,37,69,192,192,192,0,192,5,50,66,160, - 160,2,53,69,160,224,160,224,160,2,53,69,64,224,192,96, - 224,3,52,68,160,96,192,160,2,53,69,64,64,224,192,64, - 21,34,66,64,192,18,37,69,64,128,128,128,64,2,37,69, - 128,64,64,64,128,2,53,69,160,64,224,64,160,3,51,67, - 64,224,64,2,34,66,64,192,4,49,65,224,2,34,66,192, - 192,2,53,69,32,32,64,64,128,2,53,69,64,160,160,160, - 64,2,37,69,64,192,64,64,64,2,53,69,192,32,64,128, - 224,2,53,69,192,32,96,32,224,2,53,69,160,160,160,224, - 32,2,53,69,224,128,192,32,192,2,53,69,96,128,224,160, - 224,2,53,69,224,32,32,64,64,2,53,69,224,160,224,160, - 224,2,53,69,224,160,224,32,192,2,37,69,192,192,0,192, - 192,2,37,69,192,192,0,64,192,2,53,69,32,64,128,64, - 32,3,51,67,224,0,224,2,53,69,128,64,32,64,128,2, - 53,69,224,32,96,0,64,2,53,69,96,160,192,128,96,2, - 53,69,224,160,224,160,160,2,53,69,224,160,192,160,224,2, - 53,69,224,128,128,128,224,2,53,69,192,160,160,160,192,2, - 53,69,224,128,224,128,224,2,53,69,224,128,224,128,128,2, - 53,69,224,128,160,160,224,2,53,69,160,160,224,160,160,2, - 53,69,224,64,64,64,224,2,53,69,32,32,32,160,224,2, - 53,69,160,160,192,160,160,2,53,69,128,128,128,128,224,2, - 53,69,160,224,160,160,160,2,53,69,224,160,160,160,160,2, - 53,69,224,160,160,160,224,2,53,69,224,160,224,128,128,2, - 53,69,224,160,160,192,96,2,53,69,224,160,192,160,160,2, - 53,69,224,128,224,32,224,2,53,69,224,64,64,64,64,2, - 53,69,160,160,160,160,224,2,53,69,160,160,160,160,64,2, - 53,69,160,160,160,224,160,2,53,69,160,224,64,224,160,2, - 53,69,160,160,224,64,64,2,53,69,224,32,64,128,224,18, - 37,69,192,128,128,128,192,2,53,69,128,128,64,64,32,2, - 37,69,192,64,64,64,192,5,50,66,64,160,2,49,65,224, - 21,34,66,128,192,2,52,68,224,96,160,224,2,53,69,128, - 224,160,160,224,2,52,68,224,128,128,224,2,53,69,32,224, - 160,160,224,2,52,68,224,160,192,224,2,53,69,96,128,192, - 128,128,2,52,68,224,160,96,224,2,53,69,128,224,160,160, - 160,18,20,68,128,128,128,128,2,52,68,32,32,160,224,2, - 53,69,128,160,192,192,160,2,37,69,192,64,64,64,64,2, - 52,68,160,224,160,160,2,52,68,224,160,160,160,2,52,68, - 224,160,160,224,2,52,68,224,160,224,128,2,52,68,224,160, - 224,32,2,52,68,224,160,128,128,2,52,68,224,192,96,224, - 2,53,69,64,224,64,64,96,2,52,68,160,160,160,224,2, - 52,68,160,160,160,64,2,52,68,160,160,224,160,2,52,68, - 160,64,64,160,2,52,68,160,160,96,192,2,52,68,224,96, - 192,224,2,53,69,96,64,192,64,96,18,21,69,128,128,128, - 128,128,2,53,69,192,64,96,64,192,4,50,66,192,96,2, - 53,69,96,64,64,64,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=22 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08[2760] U8G_SECTION(".progmem.u8g_font_ncenB08") = { - 0,17,19,254,251,8,1,193,3,159,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,2,8,8,3,0,254,192, - 192,0,64,64,192,192,192,5,7,7,6,0,255,8,120,208, - 208,232,112,64,7,8,8,8,0,0,60,100,96,252,48,98, - 190,220,7,5,5,8,0,1,186,108,108,108,186,8,8,8, - 9,0,0,247,98,52,54,24,62,24,60,1,8,8,6,2, - 0,128,128,128,0,128,128,128,128,4,10,10,5,0,254,112, - 144,192,96,176,208,96,48,144,224,3,2,2,4,0,6,160, - 160,8,8,8,9,0,0,60,66,157,165,161,157,66,60,3, - 6,6,4,0,2,192,32,224,160,0,224,6,5,5,7,0, - 0,36,108,216,108,36,5,3,3,6,0,2,248,8,8,3, - 1,1,4,0,3,224,8,8,8,9,0,0,60,66,189,165, - 185,173,66,60,4,1,1,5,0,6,240,3,4,4,4,0, - 4,64,160,160,64,5,5,5,6,0,1,32,248,32,0,248, - 3,4,4,3,0,4,96,160,64,224,3,4,4,3,0,4, - 224,64,32,192,3,2,2,4,0,6,96,192,6,7,7,7, - 0,254,204,204,204,220,236,192,192,7,8,8,8,0,0,126, - 244,244,116,20,20,20,62,2,2,2,3,0,3,192,192,2, - 3,3,4,1,254,128,64,192,3,4,4,3,0,4,64,192, - 64,224,4,6,6,5,0,2,96,144,144,96,0,240,6,5, - 5,7,0,0,144,216,108,216,144,8,8,8,9,0,0,68, - 196,72,232,18,22,47,34,8,8,8,9,0,0,68,196,72, - 232,19,21,34,39,8,8,8,9,0,0,228,68,40,200,18, - 22,47,34,5,8,8,6,0,254,48,48,0,16,96,192,216, - 112,9,11,22,8,255,0,48,0,24,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,6,0,12,0,0,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,9,11,22,8,255,0,28, - 0,54,0,0,0,8,0,28,0,28,0,38,0,38,0,127, - 0,67,0,231,128,9,11,22,8,255,0,26,0,44,0,0, - 0,8,0,28,0,28,0,38,0,38,0,127,0,67,0,231, - 128,9,11,22,8,255,0,20,0,20,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,24,0,36,0,24,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,10,8,16,11,0,0,63, - 192,22,64,22,128,39,128,62,128,70,64,70,64,239,192,7, - 10,10,8,0,254,58,70,194,192,192,194,66,60,16,48,6, - 11,11,7,0,0,96,48,0,252,100,104,120,104,100,100,252, - 6,11,11,7,0,0,24,48,0,252,100,104,120,104,100,100, - 252,6,11,11,7,0,0,56,108,0,252,100,104,120,104,100, - 100,252,6,11,11,7,0,0,40,40,0,252,100,104,120,104, - 100,100,252,4,11,11,5,0,0,192,96,0,240,96,96,96, - 96,96,96,240,4,11,11,5,0,0,48,96,0,240,96,96, - 96,96,96,96,240,5,11,11,5,0,0,112,216,0,240,96, - 96,96,96,96,96,240,4,11,11,5,0,0,80,80,0,240, - 96,96,96,96,96,96,240,8,8,8,9,0,0,252,98,99, - 243,99,99,98,252,8,11,11,9,0,0,26,44,0,199,98, - 114,122,94,78,70,226,7,11,11,8,0,0,48,24,0,56, - 68,198,198,198,198,68,56,7,11,11,8,0,0,24,48,0, - 56,68,198,198,198,198,68,56,7,11,11,8,0,0,56,108, - 0,56,68,198,198,198,198,68,56,7,11,11,8,0,0,52, - 88,0,56,68,198,198,198,198,68,56,7,11,11,8,0,0, - 40,40,0,56,68,198,198,198,198,68,56,5,5,5,6,0, - 1,216,112,32,112,216,7,8,8,8,0,0,58,68,206,214, - 214,230,68,184,8,11,11,9,0,0,48,24,0,247,98,98, - 98,98,98,98,60,8,11,11,9,0,0,12,24,0,247,98, - 98,98,98,98,98,60,8,11,11,9,0,0,28,54,0,247, - 98,98,98,98,98,98,60,8,11,11,9,0,0,20,20,0, - 247,98,98,98,98,98,98,60,8,11,11,9,0,0,12,24, - 0,247,98,52,52,24,24,24,60,7,8,8,8,0,0,224, - 124,102,102,102,124,96,240,7,8,8,8,0,0,60,102,102, - 108,102,102,102,236,4,8,8,5,0,0,192,96,0,224,48, - 112,176,240,4,8,8,5,0,0,48,96,0,224,48,112,176, - 240,5,9,9,5,0,0,32,112,216,0,224,48,112,176,240, - 5,8,8,5,0,0,104,176,0,224,48,112,176,240,4,8, - 8,5,0,0,160,160,0,224,48,112,176,240,4,8,8,5, - 0,0,96,144,96,224,48,112,176,240,8,5,5,9,0,0, - 238,155,127,216,239,5,7,7,6,0,254,112,200,192,200,112, - 32,96,5,8,8,6,0,0,96,48,0,112,216,248,192,120, - 5,8,8,6,0,0,48,96,0,112,216,248,192,120,5,9, - 9,6,0,0,32,112,216,0,112,216,248,192,120,5,8,8, - 6,0,0,80,80,0,112,216,248,192,120,4,8,8,5,0, - 0,192,96,0,224,96,96,96,240,4,8,8,5,0,0,48, - 96,0,224,96,96,96,240,5,9,9,5,0,0,32,112,216, - 0,224,96,96,96,240,4,8,8,5,0,0,160,160,0,224, - 96,96,96,240,6,8,8,7,0,0,200,112,144,120,204,204, - 204,120,6,8,8,7,0,0,104,176,0,216,236,204,204,204, - 6,8,8,7,0,0,96,48,0,120,204,204,204,120,6,8, - 8,7,0,0,24,48,0,120,204,204,204,120,6,9,9,7, - 0,0,32,112,216,0,120,204,204,204,120,6,8,8,7,0, - 0,52,88,0,120,204,204,204,120,6,8,8,7,0,0,80, - 80,0,120,204,204,204,120,5,5,5,6,0,1,32,0,248, - 0,32,6,7,7,7,0,255,4,120,220,236,204,120,128,6, - 8,8,7,0,0,96,48,0,204,204,204,220,108,6,8,8, - 7,0,0,24,48,0,204,204,204,220,108,6,9,9,7,0, - 0,32,112,216,0,204,204,204,220,108,6,8,8,7,0,0, - 80,80,0,204,204,204,220,108,6,10,10,7,0,254,24,48, - 0,236,104,104,48,48,224,192,6,10,10,7,0,254,192,192, - 192,216,236,204,204,248,192,224,6,10,10,7,0,254,80,80, - 0,236,104,104,48,48,224,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=20 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08r[1315] U8G_SECTION(".progmem.u8g_font_ncenB08r") = { - 0,17,19,254,251,8,1,193,3,159,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 3 y= 8 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10[4003] U8G_SECTION(".progmem.u8g_font_ncenB10") = { - 0,20,25,254,250,11,2,24,5,41,32,255,253,15,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 4,0,1,2,11,11,5,1,253,192,192,192,0,64,64,192, - 192,192,192,192,7,9,9,8,0,255,4,60,110,206,208,210, - 118,60,32,8,11,11,9,0,0,28,38,102,96,252,48,48, - 32,225,191,222,8,8,8,9,0,2,153,126,102,195,195,102, - 126,153,10,11,22,11,0,0,241,192,96,128,49,0,49,0, - 26,0,26,0,63,0,12,0,63,0,12,0,30,0,1,11, - 11,8,3,0,128,128,128,128,0,0,128,128,128,128,128,6, - 13,13,7,0,254,56,108,76,96,120,156,204,228,120,28,204, - 200,112,5,2,2,7,1,8,216,216,11,11,22,12,0,0, - 14,0,49,128,64,64,79,64,153,32,144,32,153,32,78,64, - 64,64,49,128,14,0,5,7,7,6,0,4,224,48,112,176, - 216,0,248,7,5,5,8,0,1,54,108,216,108,54,7,4, - 4,8,0,2,254,2,2,2,4,2,2,5,0,3,240,240, - 11,11,22,12,0,0,14,0,49,128,64,64,94,64,137,32, - 142,32,138,32,91,64,64,64,49,128,14,0,5,1,1,7, - 1,8,248,4,4,4,6,1,7,96,144,144,96,7,7,7, - 8,0,1,16,16,254,16,16,0,254,5,6,6,5,255,5, - 112,152,24,48,96,248,5,6,6,5,255,5,112,152,48,24, - 152,112,4,3,3,6,1,8,48,96,128,9,10,20,10,0, - 253,247,0,99,0,99,0,99,0,99,0,103,0,123,128,64, - 0,96,0,96,0,9,11,22,10,0,0,127,128,251,0,251, - 0,251,0,251,0,123,0,27,0,27,0,27,0,27,0,63, - 128,2,2,2,5,1,4,192,192,3,3,3,5,1,253,64, - 32,224,4,6,6,5,0,5,96,224,96,96,96,240,5,7, - 7,6,0,4,112,216,216,216,112,0,248,7,5,5,8,0, - 1,216,108,54,108,216,11,11,22,12,0,0,97,0,227,0, - 98,0,102,0,100,0,252,192,9,192,26,192,20,192,55,224, - 32,192,11,11,22,12,0,0,97,0,227,0,98,0,102,0, - 100,0,253,192,10,96,24,96,16,192,49,128,35,224,12,11, - 22,12,255,0,112,128,153,128,49,0,27,0,154,0,118,96, - 4,224,13,96,10,96,27,240,16,96,6,11,11,7,0,253, - 48,48,48,0,16,48,96,192,204,204,120,10,15,30,11,0, - 0,48,0,24,0,4,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,10, - 15,30,11,0,0,3,0,6,0,8,0,0,0,12,0,12, - 0,22,0,22,0,18,0,35,0,35,0,63,0,65,128,65, - 128,227,192,10,15,30,11,0,0,4,0,14,0,17,0,0, - 0,12,0,12,0,22,0,22,0,18,0,35,0,35,0,63, - 0,65,128,65,128,227,192,10,14,28,11,0,0,29,0,46, - 0,0,0,12,0,12,0,22,0,22,0,18,0,35,0,35, - 0,63,0,65,128,65,128,227,192,10,14,28,11,0,0,51, - 0,51,0,0,0,12,0,12,0,22,0,22,0,18,0,35, - 0,35,0,63,0,65,128,65,128,227,192,10,15,30,11,0, - 0,12,0,18,0,12,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,15, - 11,22,15,255,0,15,254,5,134,5,130,9,146,9,144,17, - 240,31,144,33,146,33,130,65,134,227,254,10,14,28,11,0, - 253,31,64,112,192,96,64,192,64,192,0,192,0,192,0,192, - 0,96,64,112,192,31,0,4,0,2,0,14,0,9,15,30, - 10,0,0,24,0,12,0,2,0,0,0,255,128,97,128,96, - 128,100,128,100,0,124,0,100,0,100,128,96,128,97,128,255, - 128,9,15,30,10,0,0,3,0,6,0,8,0,0,0,255, - 128,97,128,96,128,100,128,100,0,124,0,100,0,100,128,96, - 128,97,128,255,128,9,15,30,10,0,0,4,0,14,0,17, - 0,0,0,255,128,97,128,96,128,100,128,100,0,124,0,100, - 0,100,128,96,128,97,128,255,128,9,14,28,10,0,0,51, - 0,51,0,0,0,255,128,97,128,96,128,100,128,100,0,124, - 0,100,0,100,128,96,128,97,128,255,128,4,15,15,7,1, - 0,192,96,16,0,240,96,96,96,96,96,96,96,96,96,240, - 5,15,15,7,1,0,24,48,64,0,240,96,96,96,96,96, - 96,96,96,96,240,5,15,15,7,1,0,32,112,136,0,240, - 96,96,96,96,96,96,96,96,96,240,6,14,14,7,0,0, - 204,204,0,120,48,48,48,48,48,48,48,48,48,120,11,11, - 22,12,0,0,255,0,97,192,96,192,96,96,96,96,248,96, - 96,96,96,96,96,192,97,192,255,0,11,14,28,12,0,0, - 14,128,23,0,0,0,224,224,112,64,120,64,92,64,76,64, - 70,64,71,64,67,192,65,192,64,192,224,64,11,15,30,12, - 0,0,24,0,12,0,2,0,0,0,31,0,113,192,96,192, - 192,96,192,96,192,96,192,96,192,96,96,192,113,192,31,0, - 11,15,30,12,0,0,0,192,1,128,2,0,0,0,31,0, - 113,192,96,192,192,96,192,96,192,96,192,96,192,96,96,192, - 113,192,31,0,11,15,30,12,0,0,4,0,14,0,17,0, - 0,0,31,0,113,192,96,192,192,96,192,96,192,96,192,96, - 192,96,96,192,113,192,31,0,11,14,28,12,0,0,14,128, - 23,0,0,0,31,0,113,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,113,192,31,0,11,14,28,12,0,0, - 25,128,25,128,0,0,31,0,113,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,113,192,31,0,8,7,7,8, - 0,1,195,102,60,24,60,102,195,11,11,22,12,0,0,31, - 32,113,192,96,192,193,96,194,96,196,96,200,96,208,96,96, - 192,113,192,159,0,11,15,30,12,0,0,12,0,6,0,1, - 0,0,0,240,224,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,48,128,31,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,48,128,31,0,11,15,30, - 12,0,0,4,0,14,0,17,0,0,0,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,48,128,31, - 0,11,14,28,12,0,0,25,128,25,128,0,0,240,224,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,64,48, - 128,31,0,10,15,30,11,0,0,1,128,3,0,4,0,0, - 0,241,192,96,128,49,0,49,0,26,0,26,0,12,0,12, - 0,12,0,12,0,30,0,9,11,22,10,0,0,240,0,96, - 0,127,0,99,128,97,128,97,128,99,128,126,0,96,0,96, - 0,240,0,8,11,11,9,0,0,30,35,99,98,108,98,99, - 99,99,99,238,8,11,11,9,0,0,48,24,4,0,60,102, - 6,62,198,206,119,8,11,11,9,0,0,12,24,32,0,60, - 102,6,62,198,206,119,8,11,11,9,0,0,16,56,108,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,52,88,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,108,108,0, - 60,102,6,62,198,206,119,8,11,11,9,0,0,24,36,24, - 0,60,102,6,62,198,206,119,13,7,14,14,0,0,57,224, - 103,48,6,24,63,248,198,0,199,24,121,240,7,10,10,8, - 0,253,60,102,198,192,194,102,60,16,8,56,8,11,11,9, - 0,0,48,24,4,0,60,102,195,255,192,99,62,8,11,11, - 9,0,0,12,24,32,0,60,102,195,255,192,99,62,8,11, - 11,9,0,0,16,56,108,0,60,102,195,255,192,99,62,8, - 10,10,9,0,0,108,108,0,60,102,195,255,192,99,62,4, - 11,11,5,0,0,192,96,16,0,224,96,96,96,96,96,240, - 4,11,11,5,0,0,48,96,128,0,224,96,96,96,96,96, - 240,5,11,11,5,0,0,32,112,216,0,224,96,96,96,96, - 96,240,5,10,10,5,0,0,216,216,0,224,96,96,96,96, - 96,240,8,11,11,9,0,0,198,56,120,140,62,102,195,195, - 195,102,60,9,10,20,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,247,128,8,11,11, - 9,0,0,48,24,4,0,60,102,195,195,195,102,60,8,11, - 11,9,0,0,12,24,32,0,60,102,195,195,195,102,60,8, - 11,11,9,0,0,16,56,108,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,52,88,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,108,108,0,60,102,195,195,195,102,60, - 8,7,7,8,0,1,24,24,0,255,0,24,24,8,9,9, - 9,0,255,2,60,110,203,211,211,102,60,64,9,11,22,10, - 0,0,48,0,24,0,4,0,0,0,247,128,99,0,99,0, - 99,0,99,0,103,0,59,128,9,11,22,10,0,0,12,0, - 24,0,32,0,0,0,247,128,99,0,99,0,99,0,99,0, - 103,0,59,128,9,11,22,10,0,0,8,0,28,0,54,0, - 0,0,247,128,99,0,99,0,99,0,99,0,103,0,59,128, - 9,10,20,10,0,0,54,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,103,0,59,128,8,14,14,7,255,253, - 6,12,16,0,247,98,98,52,52,24,24,16,208,224,9,14, - 28,10,0,253,224,0,96,0,96,0,96,0,110,0,115,0, - 97,128,97,128,97,128,115,0,110,0,96,0,96,0,240,0, - 8,13,13,7,255,253,54,54,0,247,98,98,52,52,24,24, - 16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 3 y= 8 dx=15 dy= 0 ascent=12 len=28 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10r[1853] U8G_SECTION(".progmem.u8g_font_ncenB10r") = { - 0,20,25,254,250,11,2,24,5,41,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12[4735] U8G_SECTION(".progmem.u8g_font_ncenB12") = { - 0,22,27,253,249,12,2,152,5,246,32,255,253,16,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,4,1,1,3,12,12,5,1,253,64,224, - 224,64,0,64,64,224,224,224,224,64,8,12,12,10,0,254, - 1,2,62,115,231,231,232,233,114,60,32,64,9,12,24,10, - 0,0,31,0,57,128,115,128,115,128,113,0,56,0,254,0, - 24,0,24,0,120,128,191,0,110,0,8,8,8,10,1,2, - 90,255,102,195,195,102,255,90,10,12,24,10,0,0,251,192, - 113,128,49,0,59,0,26,0,30,0,63,0,12,0,63,0, - 12,0,12,0,63,0,2,12,12,10,4,0,192,192,192,192, - 192,0,0,192,192,192,192,192,6,15,15,9,1,253,56,76, - 76,96,48,120,140,132,196,120,48,24,200,200,112,5,2,2, - 6,0,9,216,216,12,12,24,12,0,0,31,128,57,192,96, - 96,207,176,217,48,152,16,152,16,217,176,207,48,96,96,57, - 192,31,128,6,7,7,6,0,5,112,152,120,216,108,0,248, - 6,5,5,8,1,2,36,108,216,108,36,8,5,5,10,0, - 2,255,255,3,3,3,4,2,2,5,0,3,240,240,12,12, - 24,12,0,0,31,128,57,192,96,96,223,48,201,48,142,16, - 139,16,201,176,221,240,96,96,57,192,31,128,5,1,1,6, - 0,10,248,5,5,5,7,1,7,112,216,136,216,112,8,9, - 9,10,1,0,24,24,255,255,24,24,0,255,255,5,7,7, - 6,0,5,112,152,216,16,32,120,248,6,7,7,6,0,5, - 120,204,76,24,76,204,120,4,3,3,6,1,9,48,112,192, - 11,11,22,11,0,253,243,192,113,192,113,192,113,192,113,192, - 113,192,123,192,110,224,96,0,112,0,112,0,11,12,24,12, - 0,0,127,224,249,128,249,128,249,128,249,128,121,128,25,128, - 25,128,25,128,25,128,25,128,127,224,4,3,3,5,0,3, - 96,240,96,4,4,4,6,0,253,64,96,48,224,4,7,7, - 6,1,5,32,224,96,96,96,96,240,5,7,7,6,0,5, - 112,216,216,216,112,0,248,6,5,5,8,1,2,144,216,108, - 216,144,12,12,24,14,1,0,32,64,224,192,97,128,97,0, - 99,0,98,32,246,96,12,224,9,32,27,240,48,96,32,240, - 12,12,24,14,1,0,32,64,224,192,97,128,97,0,99,0, - 98,224,247,48,13,176,8,32,24,64,48,240,33,240,13,12, - 24,14,0,0,120,32,204,96,76,192,24,128,77,128,205,16, - 123,48,6,112,4,144,13,248,24,48,16,120,8,12,12,8, - 0,253,8,28,28,8,0,8,48,112,230,239,102,60,13,16, - 32,13,0,0,24,0,28,0,6,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,16,32,13,0,0,1,128,3,128,6,0, - 0,0,6,0,7,0,7,0,15,0,11,128,27,128,17,192, - 63,192,49,192,32,224,96,224,241,248,13,16,32,13,0,0, - 2,0,7,0,13,128,0,0,6,0,7,0,7,0,15,0, - 11,128,27,128,17,192,63,192,49,192,32,224,96,224,241,248, - 13,15,30,13,0,0,14,128,23,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,15,30,13,0,0,25,128,25,128,0,0, - 6,0,7,0,7,0,15,0,11,128,27,128,17,192,63,192, - 49,192,32,224,96,224,241,248,13,16,32,13,0,0,6,0, - 11,0,6,0,0,0,6,0,7,0,7,0,15,0,11,128, - 27,128,17,192,63,192,49,192,32,224,96,224,241,248,16,12, - 24,16,255,0,31,255,7,195,5,195,5,201,9,216,9,248, - 17,216,31,201,33,193,33,195,97,195,247,255,11,15,30,13, - 1,253,15,160,56,224,112,96,112,32,224,32,224,0,224,0, - 224,32,112,32,112,64,56,192,15,0,12,0,6,0,28,0, - 11,16,32,12,0,0,24,0,28,0,6,0,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,11,16,32,12,0,0,1,128,3,128, - 6,0,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,32,56,32,56,96,56,96,255,224,11,16,32,12, - 0,0,2,0,7,0,13,128,0,0,255,224,56,96,56,96, - 57,32,59,0,63,0,59,0,57,32,56,32,56,96,56,96, - 255,224,11,15,30,12,0,0,25,128,25,128,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,7,16,16,7,0,0,96,112,24,0, - 254,56,56,56,56,56,56,56,56,56,56,254,7,16,16,7, - 0,0,12,28,48,0,254,56,56,56,56,56,56,56,56,56, - 56,254,7,16,16,7,0,0,16,56,108,0,254,56,56,56, - 56,56,56,56,56,56,56,254,7,15,15,7,0,0,108,108, - 0,254,56,56,56,56,56,56,56,56,56,56,254,13,12,24, - 14,0,0,255,128,56,224,56,112,56,112,56,56,126,56,56, - 56,56,56,56,112,56,112,56,224,255,128,14,15,30,14,0, - 0,7,64,11,128,0,0,240,124,56,16,60,16,62,16,47, - 16,39,144,35,208,33,240,32,240,32,112,32,48,248,16,12, - 16,32,14,1,0,24,0,28,0,6,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,16,32,14,1,0,1,128,3,128,6, - 0,0,0,15,0,57,192,112,224,112,224,224,112,224,112,224, - 112,224,112,112,224,112,224,57,192,15,0,12,16,32,14,1, - 0,6,0,15,0,25,128,0,0,15,0,57,192,112,224,112, - 224,224,112,224,112,224,112,224,112,112,224,112,224,57,192,15, - 0,12,15,30,14,1,0,14,128,23,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,15,30,14,1,0,25,128,25,128,0, - 0,15,0,57,192,112,224,112,224,224,112,224,112,224,112,224, - 112,112,224,112,224,57,192,15,0,8,8,8,10,1,0,66, - 231,126,56,28,126,231,66,12,14,28,14,1,255,0,16,15, - 32,57,192,112,224,112,224,225,112,226,112,228,112,232,112,112, - 224,112,224,57,192,79,0,128,0,14,16,32,14,0,0,6, - 0,7,0,1,128,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,14, - 16,32,14,0,0,0,96,0,224,1,128,0,0,254,124,56, - 16,56,16,56,16,56,16,56,16,56,16,56,16,56,16,28, - 32,30,96,7,128,14,16,32,14,0,0,1,128,3,192,6, - 96,0,0,254,124,56,16,56,16,56,16,56,16,56,16,56, - 16,56,16,56,16,28,32,30,96,7,128,14,15,30,14,0, - 0,6,96,6,96,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,13, - 16,32,12,255,0,0,192,1,192,3,0,0,0,254,248,56, - 96,28,64,28,128,14,128,15,0,7,0,7,0,7,0,7, - 0,7,0,31,192,12,12,24,13,0,0,254,0,56,0,63, - 192,56,224,56,112,56,112,56,112,56,224,63,192,56,0,56, - 0,254,0,10,12,24,10,0,0,31,0,51,128,115,128,115, - 128,115,0,119,0,113,128,113,192,113,192,113,192,123,128,247, - 0,9,12,24,10,0,0,96,0,112,0,24,0,0,0,126, - 0,231,0,199,0,31,0,103,0,231,0,239,0,119,128,9, - 12,24,10,0,0,6,0,14,0,24,0,0,0,126,0,231, - 0,199,0,31,0,103,0,231,0,239,0,119,128,9,12,24, - 10,0,0,16,0,56,0,108,0,0,0,126,0,231,0,199, - 0,31,0,103,0,231,0,239,0,119,128,9,11,22,10,0, - 0,58,0,92,0,0,0,126,0,231,0,199,0,31,0,103, - 0,231,0,239,0,119,128,9,11,22,10,0,0,108,0,108, - 0,0,0,126,0,231,0,199,0,31,0,103,0,231,0,239, - 0,119,128,9,12,24,10,0,0,24,0,44,0,24,0,0, - 0,126,0,231,0,199,0,31,0,103,0,231,0,239,0,119, - 128,13,8,16,15,0,0,125,224,231,48,199,56,63,248,103, - 0,231,24,239,48,123,224,8,11,11,9,0,253,62,115,231, - 227,224,227,118,60,24,12,56,9,12,24,10,0,0,48,0, - 56,0,12,0,0,0,62,0,119,0,227,128,255,128,224,0, - 225,128,115,0,62,0,9,12,24,10,0,0,6,0,14,0, - 24,0,0,0,62,0,119,0,227,128,255,128,224,0,225,128, - 115,0,62,0,9,12,24,10,0,0,8,0,28,0,54,0, - 0,0,62,0,119,0,227,128,255,128,224,0,225,128,115,0, - 62,0,9,11,22,10,0,0,54,0,54,0,0,0,62,0, - 119,0,227,128,255,128,224,0,225,128,115,0,62,0,5,12, - 12,6,0,0,192,224,48,0,240,112,112,112,112,112,112,248, - 5,12,12,6,0,0,24,56,96,0,240,112,112,112,112,112, - 112,248,5,12,12,6,0,0,32,112,216,0,240,112,112,112, - 112,112,112,248,5,11,11,6,0,0,216,216,0,240,112,112, - 112,112,112,112,248,9,13,26,11,0,0,96,0,59,0,28, - 0,54,0,7,0,31,0,119,128,227,128,227,128,227,128,227, - 128,119,0,28,0,11,11,22,11,255,0,14,128,23,0,0, - 0,247,128,121,192,113,192,113,192,113,192,113,192,113,192,251, - 224,10,12,24,11,0,0,24,0,28,0,6,0,0,0,63, - 0,115,128,225,192,225,192,225,192,225,192,115,128,63,0,10, - 12,24,11,0,0,3,0,7,0,12,0,0,0,63,0,115, - 128,225,192,225,192,225,192,225,192,115,128,63,0,10,12,24, - 11,0,0,12,0,30,0,51,0,0,0,63,0,115,128,225, - 192,225,192,225,192,225,192,115,128,63,0,10,11,22,11,0, - 0,29,0,46,0,0,0,63,0,115,128,225,192,225,192,225, - 192,225,192,115,128,63,0,10,11,22,11,0,0,54,0,54, - 0,0,0,63,0,115,128,225,192,225,192,225,192,225,192,115, - 128,63,0,8,8,8,10,1,0,24,24,0,255,255,0,24, - 24,9,12,24,10,0,254,0,128,1,0,30,0,115,0,231, - 128,235,128,235,128,243,128,103,0,60,0,64,0,128,0,11, - 12,24,11,255,0,24,0,28,0,6,0,0,0,243,192,113, - 192,113,192,113,192,113,192,113,192,123,192,62,224,11,12,24, - 11,255,0,3,0,7,0,12,0,0,0,243,192,113,192,113, - 192,113,192,113,192,113,192,123,192,62,224,11,12,24,11,255, - 0,4,0,14,0,27,0,0,0,243,192,113,192,113,192,113, - 192,113,192,113,192,123,192,62,224,11,11,22,11,255,0,27, - 0,27,0,0,0,243,192,113,192,113,192,113,192,113,192,113, - 192,123,192,62,224,11,15,30,10,255,253,3,0,7,0,12, - 0,0,0,251,224,112,192,56,128,25,128,29,0,15,0,14, - 0,6,0,52,0,116,0,56,0,10,15,30,11,255,253,240, - 0,112,0,112,0,112,0,119,0,123,128,113,192,113,192,113, - 192,113,192,123,128,119,0,112,0,112,0,252,0,11,14,28, - 10,255,253,27,0,27,0,0,0,251,224,48,192,56,128,25, - 128,29,0,15,0,14,0,6,0,52,0,116,0,56,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=14 len=30 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12r[2194] U8G_SECTION(".progmem.u8g_font_ncenB12r") = { - 0,22,27,253,249,12,2,152,5,246,32,127,253,14,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=21 dy= 0 ascent=19 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14[5558] U8G_SECTION(".progmem.u8g_font_ncenB14") = { - 0,24,32,253,248,14,3,71,7,51,32,255,252,19,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,5,0, - 1,4,14,14,7,1,252,96,240,240,96,0,96,96,96,240, - 240,240,240,240,96,9,13,26,11,1,254,0,128,0,128,31, - 0,115,128,227,128,228,0,228,0,232,0,232,128,113,128,30, - 0,32,0,32,0,10,14,28,11,0,0,31,0,49,128,115, - 128,115,128,112,0,112,0,56,0,255,128,28,0,28,0,24, - 64,112,192,159,192,239,128,9,9,18,10,0,2,221,128,255, - 128,99,0,193,128,193,128,193,128,99,0,255,128,221,128,14, - 14,28,15,0,0,252,60,120,24,56,16,28,48,30,32,14, - 96,7,192,31,240,3,128,31,240,3,128,3,128,3,128,15, - 224,2,14,14,11,4,0,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,7,16,16,8,0,254,120,204,140,192,112, - 124,158,134,194,242,124,28,4,196,204,120,6,2,2,10,2, - 11,204,204,14,14,28,15,0,0,7,128,24,96,32,16,71, - 200,76,200,152,68,152,4,152,4,152,4,76,72,71,136,32, - 16,24,96,7,128,7,8,8,8,0,6,120,204,60,204,220, - 110,0,254,8,5,5,9,0,3,51,102,204,102,51,9,6, - 12,10,0,2,255,128,255,128,1,128,1,128,1,128,1,128, - 5,3,3,6,0,3,248,248,248,14,14,28,15,0,0,7, - 128,24,96,32,16,95,136,76,200,140,196,140,196,143,132,141, - 132,76,200,94,232,32,16,24,96,7,128,6,2,2,8,1, - 11,252,252,6,6,6,7,0,8,120,204,132,132,204,120,10, - 11,22,11,0,0,12,0,12,0,12,0,255,192,255,192,12, - 0,12,0,12,0,0,0,255,192,255,192,6,8,8,6,0, - 6,120,204,204,24,48,96,196,252,6,8,8,6,0,6,120, - 204,12,56,12,204,204,120,5,4,4,7,1,11,24,56,112, - 192,12,13,26,13,0,252,249,240,112,224,112,224,112,224,112, - 224,112,224,112,224,121,224,110,240,96,0,240,0,240,0,96, - 0,13,14,28,14,0,0,63,248,126,112,254,112,254,112,254, - 112,254,112,126,112,62,112,14,112,14,112,14,112,14,112,14, - 112,31,248,4,4,4,5,0,3,96,240,240,96,4,4,4, - 6,1,252,64,112,48,224,6,8,8,6,0,6,48,240,48, - 48,48,48,48,252,6,8,8,7,0,6,120,204,204,204,204, - 120,0,252,8,5,5,9,0,3,204,102,51,102,204,14,14, - 28,15,0,0,48,96,240,96,48,192,48,192,49,128,49,128, - 51,24,255,56,6,120,6,216,13,152,13,252,24,24,24,60, - 14,14,28,15,0,0,48,96,240,96,48,192,48,192,49,128, - 49,128,51,120,255,204,6,204,6,24,12,48,12,96,24,196, - 24,252,14,14,28,15,0,0,120,96,204,96,12,192,56,192, - 13,128,205,128,207,24,123,56,6,120,6,216,13,152,13,252, - 24,24,24,60,9,14,28,10,0,252,12,0,30,0,30,0, - 12,0,0,0,12,0,24,0,48,0,96,0,227,0,227,128, - 227,128,243,0,124,0,14,19,38,14,255,0,12,0,14,0, - 7,0,1,128,0,0,1,0,1,128,3,128,3,192,5,192, - 4,192,8,224,8,224,16,112,31,240,32,112,32,56,96,56, - 240,124,14,19,38,14,255,0,0,96,0,224,1,192,3,0, - 0,0,1,0,1,128,3,128,3,192,5,192,4,192,8,224, - 8,224,16,112,31,240,32,112,32,56,96,56,240,124,14,19, - 38,14,255,0,1,128,3,192,6,96,12,48,0,0,1,0, - 1,128,3,128,3,192,5,192,4,192,8,224,8,224,16,112, - 31,240,32,112,32,56,96,56,240,124,14,18,36,14,255,0, - 3,144,7,224,9,192,0,0,1,0,1,128,3,128,3,192, - 5,192,4,192,8,224,8,224,16,112,31,240,32,112,32,56, - 96,56,240,124,14,17,34,14,255,0,6,96,6,96,0,0, - 1,0,1,128,3,128,3,192,5,192,4,192,8,224,8,224, - 16,112,31,240,32,112,32,56,96,56,240,124,14,19,38,14, - 255,0,1,128,2,64,2,64,1,128,0,0,1,0,1,128, - 3,128,3,192,5,192,4,192,8,224,8,224,16,112,31,240, - 32,112,32,56,96,56,240,124,20,14,42,21,0,0,3,255, - 240,0,248,112,0,184,48,1,56,144,1,56,144,2,57,128, - 4,63,128,4,57,128,15,248,128,16,56,144,16,56,16,32, - 56,48,96,56,112,240,255,240,12,18,36,14,0,252,15,144, - 60,112,112,48,112,48,224,16,224,16,224,0,224,0,224,0, - 224,16,240,16,112,32,60,96,15,128,2,0,3,128,1,128, - 7,0,11,19,38,13,0,0,48,0,56,0,28,0,6,0, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,11,19, - 38,13,0,0,1,128,3,128,7,0,12,0,0,0,255,224, - 112,224,112,96,113,32,113,32,115,0,127,0,115,0,113,0, - 113,32,112,32,112,96,112,224,255,224,11,19,38,13,0,0, - 6,0,15,0,25,128,48,192,0,0,255,224,112,224,112,96, - 113,32,113,32,115,0,127,0,115,0,113,0,113,32,112,32, - 112,96,112,224,255,224,11,17,34,13,0,0,25,128,25,128, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,6,19, - 19,9,0,0,192,224,112,24,0,124,56,56,56,56,56,56, - 56,56,56,56,56,56,124,6,19,19,9,1,0,12,28,56, - 96,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 8,19,19,9,0,0,24,60,102,195,0,124,56,56,56,56, - 56,56,56,56,56,56,56,56,124,6,17,17,9,1,0,204, - 204,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 14,14,28,16,0,0,255,192,112,240,112,56,112,56,112,28, - 112,28,252,28,112,28,112,28,112,28,112,56,112,56,112,240, - 255,192,14,18,36,16,0,0,7,32,15,192,19,128,0,0, - 240,124,120,56,60,16,60,16,62,16,47,16,39,144,35,208, - 33,240,32,240,32,240,32,112,112,48,248,16,14,19,38,16, - 0,0,12,0,14,0,7,0,1,128,0,0,15,192,60,240, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,112,56,60,240,15,192,14,19,38,16,0,0,0,192, - 1,192,3,128,6,0,0,0,15,192,60,240,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 60,240,15,192,14,19,38,16,0,0,3,0,7,128,12,192, - 24,96,0,0,15,192,60,240,112,56,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,112,56,60,240,15,192, - 14,18,36,16,0,0,7,32,15,192,19,128,0,0,15,192, - 60,240,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,60,240,15,192,14,17,34,16,0,0, - 12,192,12,192,0,0,15,192,60,240,112,56,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,112,56,60,240, - 15,192,10,10,20,11,0,0,64,128,225,192,115,128,63,0, - 30,0,30,0,63,0,115,128,225,192,64,128,14,15,30,16, - 0,0,0,8,15,208,60,240,112,56,112,88,224,156,225,28, - 225,28,226,28,228,28,232,28,112,56,48,56,60,240,79,192, - 14,19,38,16,0,0,12,0,14,0,7,0,1,128,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,14,19,38,16, - 0,0,0,96,0,224,1,192,3,0,0,0,248,124,112,56, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,56,96,31,192,14,19,38,16,0,0,3,0, - 7,128,12,192,24,96,0,0,248,124,112,56,112,16,112,16, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 56,96,31,192,14,17,34,16,0,0,12,192,12,192,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,13,19,38,15, - 0,0,0,96,0,224,1,192,3,0,0,0,252,120,120,48, - 56,32,60,96,28,64,30,128,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,31,192,12,14,28,14,1,0,248,0, - 112,0,112,0,127,192,113,224,112,240,112,240,112,240,112,240, - 113,224,127,128,112,0,112,0,248,0,11,14,28,12,0,0, - 30,0,51,128,113,192,113,192,113,192,113,128,119,0,113,192, - 112,224,112,224,112,224,112,224,113,192,247,0,10,14,28,11, - 0,0,48,0,56,0,28,0,6,0,0,0,127,0,227,128, - 195,128,7,128,59,128,227,128,227,128,231,128,121,192,10,14, - 28,11,0,0,3,0,7,0,14,0,24,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,30,0,51,0,97,128,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,13,26,11,0,0,24,128,63,0,70,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,12,24,11,0,0,51,0,51,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,18,0,18,0,12,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,16,9,18,17,0,0,63,120,99,206,227,135,7,135, - 59,255,227,128,227,129,231,195,120,252,9,13,26,10,0,252, - 31,0,115,128,225,128,224,0,224,0,224,0,224,128,113,128, - 30,0,8,0,14,0,6,0,28,0,10,14,28,11,0,0, - 48,0,56,0,28,0,6,0,0,0,30,0,115,128,225,192, - 225,192,255,192,224,0,224,64,112,192,31,0,10,14,28,11, - 0,0,3,0,7,0,14,0,24,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,10,14, - 28,11,0,0,12,0,30,0,51,0,97,128,0,0,30,0, - 115,128,225,192,225,192,255,192,224,0,224,64,112,192,31,0, - 10,12,24,11,0,0,51,0,51,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,6,14, - 14,6,255,0,192,224,112,24,0,120,56,56,56,56,56,56, - 56,124,6,14,14,6,0,0,12,28,56,96,0,240,112,112, - 112,112,112,112,112,248,8,14,14,6,255,0,24,60,102,195, - 0,120,56,56,56,56,56,56,56,124,5,12,12,6,0,0, - 216,216,0,240,112,112,112,112,112,112,112,248,11,14,28,12, - 0,0,192,0,51,0,28,0,102,0,3,0,31,128,113,192, - 224,224,224,224,224,224,224,224,224,224,113,192,31,0,12,13, - 26,13,0,0,12,64,31,128,35,0,0,0,247,192,121,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,11,14, - 28,12,0,0,48,0,56,0,28,0,6,0,0,0,31,0, - 113,192,224,224,224,224,224,224,224,224,224,224,113,192,31,0, - 11,14,28,12,0,0,1,128,3,128,7,0,12,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,11,14,28,12,0,0,6,0,15,0,25,128,48,192, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,13,26,12,0,0,24,128,63,0,70,0, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,12,24,12,0,0,51,0,51,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,10,10,20,11,0,0,12,0,12,0,0,0,0,0, - 255,192,255,192,0,0,0,0,12,0,12,0,10,11,22,11, - 0,255,1,0,31,0,115,128,227,192,229,192,229,192,233,192, - 233,192,115,128,62,0,32,0,12,14,28,13,0,0,24,0, - 28,0,14,0,3,0,0,0,249,240,112,224,112,224,112,224, - 112,224,112,224,112,224,121,224,62,240,12,14,28,13,0,0, - 3,0,7,0,14,0,24,0,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,12,14,28,13, - 0,0,6,0,15,0,25,128,48,192,0,0,249,240,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,12,12, - 24,13,0,0,25,128,25,128,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,11,18,36,12, - 0,252,1,128,3,128,7,0,12,0,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,12,18,36,12,255,252,240,0,112,0, - 112,0,112,0,112,0,119,128,120,224,112,112,112,112,112,112, - 112,112,112,112,120,224,119,128,112,0,112,0,112,0,248,0, - 11,16,32,12,0,252,25,128,25,128,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=20 dy= 0 ascent=16 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14r[2603] U8G_SECTION(".progmem.u8g_font_ncenB14r") = { - 0,24,32,253,248,14,3,71,7,51,32,127,252,16,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 6 y=15 dx=26 dy= 0 ascent=24 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18[8114] U8G_SECTION(".progmem.u8g_font_ncenB18") = { - 0,33,40,252,246,18,4,68,10,106,32,255,251,24,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,1,5,18, - 18,7,1,251,112,248,248,112,0,0,32,32,112,112,112,112, - 112,112,248,248,248,112,12,15,30,14,1,255,0,32,0,64, - 15,192,56,240,121,240,113,96,242,0,242,0,244,0,244,0, - 120,16,120,16,60,96,47,192,64,0,14,18,36,15,0,0, - 3,224,15,48,14,120,30,120,30,48,30,0,30,0,30,0, - 127,224,15,0,15,0,15,0,7,0,7,4,126,12,207,252, - 207,248,113,240,12,12,24,14,1,2,207,48,255,240,127,224, - 112,224,224,112,224,112,224,112,224,112,112,224,127,224,255,240, - 207,48,19,18,54,19,0,0,255,143,224,62,3,0,62,3, - 0,31,6,0,31,6,0,15,140,0,15,140,0,7,216,0, - 7,248,0,31,254,0,1,224,0,1,224,0,31,254,0,1, - 224,0,1,224,0,1,224,0,3,240,0,15,252,0,3,18, - 18,14,6,0,224,224,224,224,224,224,224,0,0,0,224,224, - 224,224,224,224,224,224,11,20,40,13,1,254,31,0,35,128, - 99,128,99,0,120,0,62,0,63,128,71,192,193,224,224,224, - 240,96,124,96,63,64,15,128,3,128,1,128,48,128,112,128, - 113,0,62,0,10,4,8,12,1,14,97,128,243,192,243,192, - 97,128,19,18,54,21,1,0,3,248,0,15,254,0,60,7, - 128,48,1,128,97,248,192,103,24,192,198,8,96,206,0,96, - 206,0,96,206,0,96,206,0,96,199,4,96,103,136,192,97, - 240,192,48,1,128,60,7,128,15,254,0,3,248,0,8,10, - 10,10,1,8,120,206,6,126,198,206,119,0,0,255,11,7, - 14,13,1,3,28,224,57,192,115,128,231,0,115,128,57,192, - 28,224,11,6,12,13,1,4,255,224,255,224,0,96,0,96, - 0,96,0,96,6,3,3,8,1,5,252,252,252,19,18,54, - 21,1,0,3,248,0,15,254,0,60,7,128,48,1,128,103, - 240,192,99,24,192,195,24,96,195,24,96,195,240,96,195,96, - 96,195,48,96,195,48,96,99,24,192,103,156,192,48,1,128, - 60,7,128,15,254,0,3,248,0,8,2,2,10,1,15,255, - 255,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,1,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,206,198,198,14,12,24,48,98,254,254,7,11,11,8,0, - 7,124,206,198,6,12,60,14,6,198,206,124,5,5,5,7, - 1,14,24,56,112,96,192,17,17,51,18,0,251,254,63,128, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,63,222,0,39,159, - 128,48,0,0,48,0,0,120,0,0,120,0,0,48,0,0, - 16,18,36,18,1,0,31,255,127,156,127,156,255,156,255,156, - 255,156,127,156,127,156,31,156,3,156,3,156,3,156,3,156, - 3,156,3,156,3,156,3,156,15,255,3,4,4,7,2,5, - 224,224,224,224,5,6,6,7,1,251,16,32,112,56,24,240, - 6,11,11,8,0,7,48,240,48,48,48,48,48,48,48,48, - 252,9,10,20,11,1,8,28,0,99,0,227,128,227,128,227, - 128,99,0,28,0,0,0,0,0,255,128,11,7,14,13,1, - 3,231,0,115,128,57,192,28,224,57,192,115,128,231,0,18, - 18,54,21,1,0,48,6,0,240,6,0,48,12,0,48,24, - 0,48,24,0,48,48,0,48,96,0,48,99,0,48,199,0, - 49,135,0,253,143,0,3,27,0,6,19,0,6,51,0,12, - 99,0,24,127,192,24,3,0,48,7,128,18,18,54,21,1, - 0,48,6,0,240,6,0,48,12,0,48,24,0,48,24,0, - 48,48,0,48,96,0,48,111,128,48,201,192,49,152,192,253, - 152,192,3,1,192,6,1,128,6,3,0,12,6,0,24,12, - 64,24,31,192,48,31,192,19,18,54,21,0,0,124,3,0, - 206,3,0,198,6,0,6,12,0,12,12,0,56,24,0,12, - 48,0,6,49,128,198,99,128,206,195,128,124,197,128,1,141, - 128,3,25,128,3,25,128,6,49,128,12,63,224,12,1,128, - 24,3,192,11,18,36,13,1,251,7,0,15,128,15,128,7, - 0,0,0,0,0,3,0,3,0,6,0,28,0,56,0,112, - 0,240,0,240,192,241,224,241,224,120,192,31,128,19,24,72, - 19,0,0,6,0,0,7,0,0,3,128,0,1,192,0,0, - 96,0,0,0,0,0,96,0,0,96,0,0,240,0,0,240, - 0,1,120,0,1,120,0,3,60,0,2,60,0,2,60,0, - 6,30,0,4,30,0,7,254,0,12,15,0,8,15,0,8, - 15,0,24,7,128,56,7,128,254,31,224,19,24,72,19,0, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,240,0,0,240,0,1, - 120,0,1,120,0,3,60,0,2,60,0,2,60,0,6,30, - 0,4,30,0,7,254,0,12,15,0,8,15,0,8,15,0, - 24,7,128,56,7,128,254,31,224,19,23,69,19,0,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,0,96, - 0,0,96,0,0,240,0,0,240,0,1,120,0,1,120,0, - 3,60,0,2,60,0,2,60,0,6,30,0,4,30,0,7, - 254,0,12,15,0,8,15,0,8,15,0,24,7,128,56,7, - 128,254,31,224,19,22,66,19,0,0,0,226,0,1,252,0, - 2,56,0,0,0,0,0,96,0,0,96,0,0,240,0,0, - 240,0,1,120,0,1,120,0,3,60,0,2,60,0,2,60, - 0,6,30,0,4,30,0,7,254,0,12,15,0,8,15,0, - 8,15,0,24,7,128,56,7,128,254,31,224,19,23,69,19, - 0,0,3,156,0,3,156,0,3,156,0,0,0,0,0,0, - 0,0,96,0,0,96,0,0,240,0,0,240,0,1,120,0, - 1,120,0,3,60,0,2,60,0,2,60,0,6,30,0,4, - 30,0,7,254,0,12,15,0,8,15,0,8,15,0,24,7, - 128,56,7,128,254,31,224,19,24,72,19,0,0,0,240,0, - 1,152,0,1,8,0,1,152,0,0,240,0,0,0,0,0, - 96,0,0,96,0,0,240,0,0,240,0,1,120,0,1,120, - 0,3,60,0,2,60,0,2,60,0,6,30,0,4,30,0, - 7,254,0,12,15,0,8,15,0,8,15,0,24,7,128,56, - 7,128,254,31,224,25,18,72,26,0,0,1,255,255,128,0, - 111,3,128,0,111,1,128,0,207,0,128,0,207,0,128,1, - 143,8,128,1,143,8,0,3,15,24,0,3,15,248,0,6, - 15,24,0,7,255,8,0,12,15,8,0,12,15,0,128,24, - 15,0,128,24,15,0,128,48,15,1,128,112,15,3,128,252, - 63,255,128,17,23,69,19,1,251,3,249,128,15,15,128,60, - 3,128,60,1,128,120,1,128,120,0,128,248,0,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,120,0,128, - 120,0,128,60,1,0,60,1,0,15,6,0,3,248,0,0, - 128,0,1,192,0,0,224,0,0,96,0,3,192,0,15,24, - 48,18,1,0,12,0,14,0,7,0,1,128,0,192,0,0, - 255,254,60,30,60,6,60,2,60,2,60,34,60,32,60,96, - 63,224,60,96,60,32,60,32,60,2,60,2,60,2,60,6, - 60,30,255,254,15,24,48,18,1,0,0,24,0,56,0,112, - 0,192,1,128,0,0,255,254,60,30,60,6,60,2,60,2, - 60,34,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,2,60,6,60,30,255,254,15,23,46,18,1,0, - 1,128,3,192,6,96,12,48,0,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,23, - 46,18,1,0,14,112,14,112,14,112,0,0,0,0,255,254, - 60,30,60,6,60,2,60,2,60,34,60,32,60,96,63,224, - 60,96,60,32,60,32,60,2,60,2,60,2,60,6,60,30, - 255,254,8,24,24,10,1,0,192,224,112,24,12,0,255,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 8,24,24,10,1,0,3,7,14,24,48,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,255,8,23, - 23,10,1,0,24,60,102,195,0,255,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,8,23,23,10,1, - 0,231,231,231,0,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,255,135,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,20,22,66,22,1,0,0,226,0,1,252,0, - 2,56,0,0,0,0,252,7,240,62,1,192,31,0,128,31, - 128,128,31,192,128,23,224,128,19,240,128,17,240,128,16,248, - 128,16,124,128,16,126,128,16,63,128,16,31,128,16,15,128, - 16,7,128,16,3,128,56,1,128,254,0,128,19,24,72,21, - 1,0,6,0,0,7,0,0,3,128,0,0,192,0,0,96, - 0,0,0,0,3,248,0,15,30,0,60,7,128,60,7,128, - 120,3,192,120,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,120,3,192,120,3,192,60,7, - 128,60,7,128,15,30,0,3,248,0,19,23,69,21,1,0, - 0,24,0,0,56,0,0,96,0,0,192,0,0,0,0,3, - 248,0,15,30,0,60,7,128,60,7,128,120,3,192,120,3, - 192,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,120,3,192,120,3,192,60,7,128,60,7,128,15, - 30,0,3,248,0,19,23,69,21,1,0,0,96,0,0,240, - 0,1,152,0,3,12,0,0,0,0,3,248,0,15,30,0, - 60,7,128,60,7,128,120,3,192,120,3,192,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,120,3, - 192,120,3,192,60,7,128,60,7,128,15,30,0,3,248,0, - 19,22,66,21,1,0,0,226,0,1,252,0,2,56,0,0, - 0,0,3,248,0,15,30,0,60,7,128,60,7,128,120,3, - 192,120,3,192,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,120,3,192,120,3,192,60,7,128,60, - 7,128,15,30,0,3,248,0,19,23,69,21,1,0,7,28, - 0,7,28,0,7,28,0,0,0,0,0,0,0,3,248,0, - 15,30,0,60,7,128,60,7,128,120,3,192,120,3,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,120,3,192,120,3,192,60,7,128,60,7,128,15,30,0, - 3,248,0,12,12,24,14,1,1,192,48,224,112,112,224,57, - 192,31,128,15,0,15,0,31,128,57,192,112,224,224,112,192, - 48,20,18,54,21,0,0,1,252,48,7,143,96,30,3,192, - 30,3,192,60,7,224,60,13,224,124,25,240,124,49,240,124, - 97,240,124,193,240,125,129,240,127,1,240,62,1,224,60,1, - 224,62,3,192,126,3,192,199,143,0,129,252,0,19,24,72, - 21,1,0,3,0,0,3,128,0,1,192,0,0,96,0,0, - 48,0,0,0,0,255,15,224,60,3,128,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,30,2,0,31,142,0,7,248,0,19,24,72,21,1, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 30,2,0,31,142,0,7,248,0,19,23,69,21,1,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,30,2,0,31,142, - 0,7,248,0,19,23,69,21,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,30,2,0,31,142,0,7,248,0,18, - 24,72,18,0,0,0,6,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,255,15,192,60,3,0,30,6,0, - 30,6,0,15,12,0,15,12,0,7,152,0,7,152,0,3, - 240,0,3,240,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,7,248,0,16,18,36, - 18,1,0,255,128,60,0,60,0,60,0,63,248,60,62,60, - 30,60,31,60,31,60,31,60,31,60,30,60,62,63,240,60, - 0,60,0,60,0,255,128,15,18,36,15,255,0,7,224,30, - 120,28,60,60,60,60,60,60,56,60,112,61,224,60,60,60, - 30,60,30,60,30,60,30,60,30,60,30,60,28,61,60,253, - 240,14,18,36,15,0,0,12,0,14,0,7,0,3,0,1, - 128,0,0,127,128,241,224,240,240,96,240,1,240,14,240,120, - 240,240,240,240,240,240,240,249,252,126,56,14,18,36,15,0, - 0,1,128,3,128,7,0,6,0,12,0,0,0,127,128,241, - 224,240,240,96,240,1,240,14,240,120,240,240,240,240,240,240, - 240,249,252,126,56,14,18,36,15,0,0,2,0,7,0,15, - 128,24,192,48,96,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 17,34,15,0,0,14,32,31,192,35,128,0,0,0,0,127, - 128,241,224,240,240,96,240,1,240,14,240,120,240,240,240,240, - 240,240,240,249,252,126,56,14,17,34,15,0,0,56,224,56, - 224,56,224,0,0,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 18,36,15,0,0,7,0,13,128,8,128,13,128,7,0,0, - 0,127,128,241,224,240,240,96,240,1,240,14,240,120,240,240, - 240,240,240,240,240,249,252,126,56,22,12,36,23,0,0,31, - 207,192,121,248,112,112,248,120,112,240,56,1,240,60,14,255, - 252,120,240,0,240,240,0,240,248,8,240,248,8,249,188,48, - 126,15,224,13,17,34,14,0,251,15,240,56,120,120,120,112, - 48,240,0,240,0,240,0,240,0,120,8,120,8,60,48,31, - 224,2,0,7,0,3,128,1,128,15,0,14,18,36,15,0, - 0,12,0,14,0,7,0,3,0,1,128,0,0,15,192,56, - 112,120,120,112,56,240,60,255,252,240,0,240,0,120,8,120, - 8,60,48,15,224,14,18,36,15,0,0,0,96,0,224,1, - 192,3,128,6,0,0,0,15,192,56,112,120,120,112,56,240, - 60,255,252,240,0,240,0,120,8,120,8,60,48,15,224,14, - 18,36,15,0,0,2,0,7,0,15,128,24,192,48,96,0, - 0,15,192,56,112,120,120,112,56,240,60,255,252,240,0,240, - 0,120,8,120,8,60,48,15,224,14,17,34,15,0,0,28, - 112,28,112,28,112,0,0,0,0,15,192,56,112,120,120,112, - 56,240,60,255,252,240,0,240,0,120,8,120,8,60,48,15, - 224,8,18,18,9,0,0,96,112,56,24,12,0,252,60,60, - 60,60,60,60,60,60,60,60,255,8,18,18,9,0,0,12, - 28,56,48,96,0,252,60,60,60,60,60,60,60,60,60,60, - 255,9,18,36,9,0,0,8,0,28,0,62,0,99,0,193, - 128,0,0,252,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,255,0,8,17,17,9,0, - 0,231,231,231,0,0,252,60,60,60,60,60,60,60,60,60, - 60,255,14,18,36,15,0,0,192,0,57,192,15,0,15,0, - 49,192,0,224,15,240,56,112,120,120,112,56,240,60,240,60, - 240,60,240,60,112,56,120,120,56,112,15,192,17,17,51,18, - 0,0,3,136,0,7,240,0,8,224,0,0,0,0,0,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,18,36,15,0,0,12,0,14,0,7, - 0,3,0,1,128,0,0,15,192,56,112,120,120,112,56,240, - 60,240,60,240,60,240,60,112,56,120,120,56,112,15,192,14, - 18,36,15,0,0,0,96,0,224,1,192,3,0,6,0,0, - 0,15,192,56,112,120,120,112,56,240,60,240,60,240,60,240, - 60,112,56,120,120,56,112,15,192,14,18,36,15,0,0,2, - 0,7,0,15,128,24,192,48,96,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,14,17,34,15,0,0,7,16,15,224,17,192,0, - 0,0,0,15,192,56,112,120,120,112,56,240,60,240,60,240, - 60,240,60,112,56,120,120,56,112,15,192,14,17,34,15,0, - 0,56,224,56,224,56,224,0,0,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,12,12,24,14,1,1,6,0,6,0,6,0,0, - 0,0,0,255,240,255,240,0,0,0,0,6,0,6,0,6, - 0,14,18,36,15,0,253,0,16,0,16,0,32,15,224,56, - 112,120,120,112,184,240,188,241,60,241,60,242,60,114,56,124, - 120,60,112,15,192,8,0,16,0,16,0,17,18,54,18,0, - 0,3,0,0,3,128,0,1,192,0,0,192,0,0,96,0, - 0,0,0,254,63,128,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,62,62, - 0,31,222,0,15,159,128,17,18,54,18,0,0,0,96,0, - 0,224,0,1,192,0,1,128,0,3,0,0,0,0,0,254, - 63,128,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,62,62,0,31,222,0, - 15,159,128,17,18,54,18,0,0,0,128,0,1,192,0,3, - 224,0,6,48,0,12,24,0,0,0,0,254,63,128,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,62,62,0,31,222,0,15,159,128,17, - 17,51,18,0,0,14,56,0,14,56,0,14,56,0,0,0, - 0,0,0,0,254,63,128,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,62, - 62,0,31,222,0,15,159,128,16,23,46,15,255,251,0,48, - 0,112,0,224,0,192,1,128,0,0,254,63,60,12,30,8, - 30,24,15,16,15,48,7,160,7,224,3,192,3,192,1,192, - 1,128,1,128,97,0,243,0,254,0,120,0,16,23,46,16, - 255,251,252,0,60,0,60,0,60,0,60,0,60,0,61,240, - 63,28,60,30,60,14,60,15,60,15,60,15,60,15,60,14, - 62,30,63,28,61,240,60,0,60,0,60,0,60,0,255,0, - 16,22,44,15,255,251,14,56,14,56,14,56,0,0,0,0, - 254,63,60,12,30,8,30,24,15,16,15,48,7,160,7,224, - 3,192,3,192,1,192,1,128,1,128,97,0,243,0,254,0, - 120,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=23 x= 6 y=13 dx=26 dy= 0 ascent=20 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18r[3736] U8G_SECTION(".progmem.u8g_font_ncenB18r") = { - 0,33,40,252,246,18,4,68,10,106,32,127,251,20,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=33 x= 8 y=18 dx=33 dy= 0 ascent=33 len=132 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =33 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24[12964] U8G_SECTION(".progmem.u8g_font_ncenB24") = { - 0,39,53,252,243,25,6,143,16,147,32,255,249,33,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,9,1,1,6,25,25,10,2,249,120,252,252, - 252,252,120,0,0,48,48,48,48,48,48,120,120,120,120,124, - 252,252,252,252,252,120,15,22,44,19,1,253,0,6,0,6, - 0,12,3,252,14,124,60,62,124,62,120,126,248,126,248,220, - 248,192,249,128,253,128,255,2,255,6,126,6,63,28,31,248, - 15,224,24,0,24,0,48,0,17,24,72,19,1,0,1,248, - 0,7,252,0,15,142,0,15,15,0,31,31,0,31,31,0, - 31,31,0,31,14,0,15,0,0,15,0,0,7,128,0,127, - 248,0,127,248,0,7,128,0,7,128,0,7,128,0,3,128, - 0,3,129,128,123,3,128,255,199,0,199,255,0,199,254,0, - 253,254,0,120,124,0,16,16,32,19,1,3,99,198,247,239, - 255,254,127,252,60,62,120,30,112,14,112,14,112,14,112,14, - 120,30,60,60,127,254,255,255,247,239,99,198,19,24,72,19, - 0,0,255,31,224,255,31,224,124,7,128,62,7,0,62,7, - 0,31,6,0,31,14,0,15,140,0,15,140,0,7,216,0, - 7,216,0,3,240,0,31,254,0,31,254,0,1,224,0,1, - 224,0,31,254,0,31,254,0,1,224,0,1,224,0,1,224, - 0,1,224,0,15,252,0,15,252,0,4,25,25,20,8,0, - 240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,240, - 240,240,240,240,240,240,240,240,240,12,29,58,16,2,253,31, - 0,115,128,99,192,227,192,227,192,241,128,120,0,124,0,62, - 0,30,0,63,0,111,128,199,192,227,224,225,224,240,240,120, - 112,124,112,62,96,31,192,15,128,7,192,3,224,97,224,240, - 224,240,224,240,224,121,192,63,0,11,5,10,11,0,18,96, - 192,241,224,241,224,241,224,96,192,24,25,75,25,1,0,0, - 255,0,3,255,192,7,129,224,30,0,112,24,0,24,48,0, - 12,112,127,14,96,243,134,97,193,134,227,193,135,195,128,131, - 195,128,3,195,128,3,195,128,3,195,128,3,195,128,7,193, - 192,134,225,225,134,96,255,12,112,60,28,56,0,56,28,0, - 112,15,129,192,3,255,128,0,254,0,11,15,30,12,0,10, - 63,0,227,192,241,192,227,192,15,192,113,192,225,192,227,192, - 247,224,253,224,0,0,0,0,0,0,255,224,255,224,12,11, - 22,16,2,3,4,16,12,48,24,96,56,224,113,192,243,192, - 113,192,56,224,24,96,12,48,4,16,16,10,20,20,2,3, - 255,255,255,255,255,255,255,255,0,15,0,15,0,15,0,15, - 0,15,0,15,8,4,4,11,1,6,255,255,255,255,23,25, - 75,24,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,56,48,0,24,97,254,12,96,231,12,192,227,142,192, - 227,134,192,227,134,192,231,6,192,252,6,192,238,6,192,231, - 6,192,231,6,192,227,134,96,227,140,99,241,204,48,0,24, - 24,0,24,28,0,112,7,0,224,3,255,128,0,252,0,11, - 3,6,11,0,18,255,224,255,224,255,224,9,10,20,13,2, - 13,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,62,0,16,17,34,20,2,0,3,192,3,192,3, - 192,3,192,255,255,255,255,255,255,255,255,3,192,3,192,3, - 192,3,192,0,0,255,255,255,255,255,255,255,255,10,14,28, - 11,0,9,63,0,99,128,193,192,241,192,241,192,113,192,3, - 128,7,0,14,0,24,64,48,64,127,192,255,192,255,192,11, - 14,28,11,0,9,63,0,115,192,113,192,33,192,1,192,3, - 128,31,0,3,192,1,224,113,224,241,224,225,224,99,192,63, - 0,7,6,6,11,2,17,12,30,62,124,240,192,20,23,69, - 22,1,249,254,63,192,254,63,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,15,192,62,15,192,63,31,192,63,255,192,63,247,240, - 55,199,240,48,0,0,48,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,21,25,75,25,1,0,15,255, - 248,63,255,248,127,227,192,127,227,192,255,227,192,255,227,192, - 255,227,192,255,227,192,127,227,192,127,227,192,63,227,192,31, - 227,192,7,227,192,1,227,192,1,227,192,1,227,192,1,227, - 192,1,227,192,1,227,192,1,227,192,1,227,192,1,227,192, - 1,227,192,15,255,248,15,255,248,6,6,6,9,1,5,120, - 252,252,252,252,120,7,7,7,11,1,249,24,48,124,14,14, - 220,120,9,14,28,11,1,9,12,0,252,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,11,15,30,12,0,10,14,0,63,128,113,192, - 241,224,224,224,224,224,224,224,241,224,113,192,63,128,14,0, - 0,0,0,0,127,224,127,224,12,11,22,16,2,3,130,0, - 195,0,97,128,113,192,56,224,60,240,56,224,113,192,97,128, - 195,0,130,0,25,23,92,28,1,0,12,0,56,0,252,0, - 48,0,28,0,112,0,28,0,224,0,28,0,192,0,28,1, - 192,0,28,1,128,0,28,3,128,0,28,7,0,0,28,7, - 2,0,28,14,6,0,28,12,14,0,28,28,30,0,255,184, - 62,0,0,56,110,0,0,112,206,0,0,97,142,0,0,227, - 14,0,0,195,255,128,1,192,14,0,3,128,14,0,3,0, - 14,0,7,0,63,128,25,23,92,28,1,0,12,0,56,0, - 252,0,112,0,28,0,112,0,28,0,224,0,28,0,192,0, - 28,1,192,0,28,1,128,0,28,3,128,0,28,7,0,0, - 28,6,126,0,28,14,199,0,28,13,135,128,28,29,227,128, - 255,185,231,128,0,56,231,128,0,112,15,0,0,96,14,0, - 0,224,28,0,1,192,48,128,1,192,96,128,3,128,255,128, - 3,1,255,128,7,1,255,128,26,23,92,28,0,0,63,0, - 28,0,115,192,56,0,113,192,56,0,33,192,112,0,1,192, - 96,0,3,128,224,0,31,0,192,0,3,193,192,0,1,227, - 128,0,113,227,129,0,241,231,3,0,225,230,7,0,99,206, - 15,0,63,28,31,0,0,28,55,0,0,56,103,0,0,48, - 199,0,0,113,135,0,0,97,255,192,0,224,7,0,1,192, - 7,0,1,192,7,0,3,128,31,192,15,25,50,16,1,249, - 3,192,7,224,7,224,7,224,7,224,3,192,0,0,0,0, - 1,128,1,128,1,128,3,128,7,0,31,0,62,0,126,0, - 124,0,252,124,252,124,252,126,252,124,124,60,126,60,63,240, - 15,192,25,31,124,25,0,0,0,48,0,0,0,120,0,0, - 0,124,0,0,0,62,0,0,0,15,0,0,0,3,0,0, - 0,0,0,0,0,28,0,0,0,30,0,0,0,62,0,0, - 0,63,0,0,0,127,0,0,0,127,128,0,0,127,128,0, - 0,255,128,0,0,207,192,0,1,207,192,0,1,143,192,0, - 1,135,224,0,3,135,224,0,3,7,240,0,7,3,240,0, - 7,255,240,0,7,255,248,0,14,1,248,0,12,1,252,0, - 28,0,252,0,28,0,254,0,62,0,254,0,255,131,255,128, - 255,131,255,128,25,32,128,25,0,0,0,1,128,0,0,3, - 192,0,0,7,192,0,0,15,128,0,0,30,0,0,0,24, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,25,31,124,25,0,0, - 0,28,0,0,0,62,0,0,0,127,0,0,0,227,128,0, - 1,128,192,0,0,0,0,0,0,28,0,0,0,28,0,0, - 0,30,0,0,0,62,0,0,0,63,0,0,0,127,0,0, - 0,127,128,0,0,127,128,0,0,255,128,0,0,207,192,0, - 1,207,192,0,1,143,192,0,1,135,224,0,3,135,224,0, - 3,7,240,0,7,3,240,0,7,255,240,0,7,255,248,0, - 14,1,248,0,12,1,252,0,28,0,252,0,28,0,254,0, - 62,0,254,0,255,131,255,128,255,131,255,128,25,31,124,25, - 0,0,0,56,96,0,0,127,224,0,0,255,192,0,0,195, - 128,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28, - 0,0,0,30,0,0,0,62,0,0,0,63,0,0,0,127, - 0,0,0,127,128,0,0,127,128,0,0,255,128,0,0,207, - 192,0,1,207,192,0,1,143,192,0,1,135,224,0,3,135, - 224,0,3,7,240,0,7,3,240,0,7,255,240,0,7,255, - 248,0,14,1,248,0,12,1,252,0,28,0,252,0,28,0, - 254,0,62,0,254,0,255,131,255,128,255,131,255,128,25,31, - 124,25,0,0,0,193,128,0,1,227,192,0,1,227,192,0, - 1,227,192,0,0,193,128,0,0,0,0,0,0,28,0,0, - 0,28,0,0,0,30,0,0,0,62,0,0,0,63,0,0, - 0,127,0,0,0,127,128,0,0,127,128,0,0,255,128,0, - 0,207,192,0,1,207,192,0,1,143,192,0,1,135,224,0, - 3,135,224,0,3,7,240,0,7,3,240,0,7,255,240,0, - 7,255,248,0,14,1,248,0,12,1,252,0,28,0,252,0, - 28,0,254,0,62,0,254,0,255,131,255,128,255,131,255,128, - 25,33,132,25,0,0,0,62,0,0,0,119,0,0,0,99, - 0,0,0,99,0,0,0,119,0,0,0,62,0,0,0,0, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,31,25,100,33,255,0, - 1,255,255,254,1,255,255,254,0,123,240,126,0,59,240,62, - 0,51,240,30,0,51,240,14,0,115,240,6,0,99,240,198, - 0,227,240,198,0,195,241,194,1,195,241,192,1,131,243,192, - 3,131,255,192,3,3,255,192,7,255,243,192,7,255,241,192, - 14,3,240,198,14,3,240,198,12,3,240,198,28,3,240,14, - 24,3,240,14,56,3,240,30,124,3,240,126,255,31,255,254, - 255,31,255,254,22,32,96,24,1,249,0,126,24,3,255,184, - 7,193,248,31,128,248,31,0,120,62,0,56,126,0,56,126, - 0,24,254,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,254,0,0,254,0,12,254,0,28, - 126,0,24,126,0,56,63,0,48,31,128,112,15,193,224,7, - 255,192,0,255,0,0,48,0,0,96,0,0,248,0,0,28, - 0,0,28,0,1,184,0,0,240,0,21,32,96,23,1,0, - 0,192,0,1,224,0,1,240,0,0,248,0,0,60,0,0, - 12,0,0,0,0,255,255,248,255,255,248,31,129,248,31,128, - 248,31,128,120,31,128,56,31,128,56,31,134,24,31,134,24, - 31,142,0,31,142,0,31,158,0,31,254,0,31,254,0,31, - 158,0,31,142,0,31,134,24,31,134,24,31,134,24,31,128, - 56,31,128,56,31,128,120,31,129,248,255,255,248,255,255,248, - 21,32,96,23,1,0,0,3,0,0,7,128,0,15,128,0, - 31,0,0,60,0,0,48,0,0,0,0,255,255,248,255,255, - 248,31,129,248,31,128,248,31,128,120,31,128,56,31,128,56, - 31,134,24,31,134,24,31,142,0,31,142,0,31,158,0,31, - 254,0,31,254,0,31,158,0,31,142,0,31,134,24,31,134, - 24,31,134,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,21,32,96,23,1,0,0,56,0,0, - 124,0,0,254,0,1,199,0,3,1,128,0,0,0,0,0, - 0,255,255,248,255,255,248,31,129,248,31,128,248,31,128,120, - 31,128,56,31,128,56,31,134,24,31,134,24,31,142,0,31, - 142,0,31,158,0,31,254,0,31,254,0,31,158,0,31,142, - 0,31,134,24,31,134,24,31,134,24,31,128,56,31,128,56, - 31,128,120,31,129,248,255,255,248,255,255,248,21,32,96,23, - 1,0,1,131,0,3,199,128,3,199,128,3,199,128,1,131, - 0,0,0,0,0,0,0,255,255,248,255,255,248,31,129,248, - 31,128,248,31,128,120,31,128,56,31,128,56,31,134,24,31, - 134,24,31,142,0,31,142,0,31,158,0,31,254,0,31,254, - 0,31,158,0,31,142,0,31,134,24,31,134,24,31,134,24, - 31,128,56,31,128,56,31,128,120,31,129,248,255,255,248,255, - 255,248,12,33,66,14,1,0,48,0,120,0,124,0,62,0, - 15,0,3,0,0,0,0,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,12,33,66,14,1,0, - 0,192,1,224,3,224,7,192,15,0,12,0,0,0,0,0, - 255,240,255,240,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,255,240, - 255,240,12,32,64,14,1,0,7,0,15,128,31,192,56,224, - 96,48,0,0,0,0,255,240,255,240,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,240,255,240,12,32,64,14,1,0,48,96, - 120,240,120,240,120,240,48,96,0,0,0,0,255,240,255,240, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,255,240,255,240,24,25, - 75,26,1,0,255,255,0,255,255,224,31,131,240,31,129,248, - 31,128,252,31,128,124,31,128,126,31,128,126,31,128,127,31, - 128,63,31,128,63,31,128,63,255,248,63,255,248,63,31,128, - 63,31,128,63,31,128,63,31,128,127,31,128,126,31,128,126, - 31,128,252,31,128,248,31,131,240,255,255,224,255,255,0,27, - 31,124,27,0,0,0,56,96,0,0,127,224,0,0,255,192, - 0,0,195,128,0,0,0,0,0,0,0,0,0,255,128,127, - 224,255,192,127,224,63,224,15,0,15,224,6,0,15,240,6, - 0,15,248,6,0,15,252,6,0,13,254,6,0,12,254,6, - 0,12,255,6,0,12,127,134,0,12,63,198,0,12,31,230, - 0,12,15,230,0,12,15,246,0,12,7,254,0,12,3,254, - 0,12,1,254,0,12,0,254,0,12,0,126,0,12,0,126, - 0,12,0,62,0,30,0,30,0,255,192,14,0,255,192,6, - 0,24,32,96,26,1,0,1,128,0,3,192,0,3,224,0, - 1,240,0,0,120,0,0,24,0,0,0,0,0,126,0,3, - 255,192,15,193,240,31,128,248,63,0,252,62,0,124,126,0, - 126,126,0,126,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,126, - 0,126,126,0,126,62,0,124,63,0,252,31,128,248,15,193, - 240,3,255,192,0,126,0,24,32,96,26,1,0,0,0,192, - 0,1,224,0,3,224,0,7,192,0,15,0,0,12,0,0, - 0,0,0,126,0,3,255,192,15,193,240,31,128,248,63,0, - 252,62,0,124,126,0,126,126,0,126,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,126,0,126,126,0,126,62,0,124,63,0, - 252,31,128,248,15,193,240,3,255,192,0,126,0,24,32,96, - 26,1,0,0,28,0,0,62,0,0,127,0,0,227,128,1, - 128,192,0,0,0,0,0,0,0,126,0,3,255,192,15,193, - 240,31,128,248,63,0,252,62,0,124,126,0,126,126,0,126, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,126,0,126,126,0, - 126,62,0,124,63,0,252,31,128,248,15,193,240,3,255,192, - 0,126,0,24,31,93,26,1,0,0,112,192,0,255,192,1, - 255,128,1,135,0,0,0,0,0,0,0,0,126,0,3,255, - 192,15,193,240,31,128,248,63,0,252,62,0,124,126,0,126, - 126,0,126,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,126,0, - 126,126,0,126,62,0,124,63,0,252,31,128,248,15,193,240, - 3,255,192,0,126,0,24,32,96,26,1,0,0,193,128,1, - 227,192,1,227,192,1,227,192,0,193,128,0,0,0,0,0, - 0,0,126,0,3,255,192,15,193,240,31,128,248,63,0,252, - 62,0,124,126,0,126,126,0,126,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,252,0, - 63,252,0,63,126,0,126,126,0,126,62,0,124,63,0,252, - 31,128,248,15,193,240,3,255,192,0,126,0,16,17,34,20, - 2,0,32,4,112,14,248,31,252,63,126,126,63,252,31,248, - 15,240,7,224,15,240,31,248,63,252,126,126,252,63,248,31, - 112,14,32,4,24,27,81,26,1,255,0,0,12,0,126,24, - 3,255,248,7,195,240,31,128,248,31,0,248,62,0,252,126, - 1,254,126,3,126,254,7,127,252,6,63,252,12,63,252,28, - 63,252,24,63,252,48,63,252,96,63,252,224,63,254,192,127, - 127,128,126,127,128,126,63,0,124,31,0,248,31,128,248,15, - 193,224,27,255,192,48,126,0,48,0,0,26,32,128,28,1, - 0,0,48,0,0,0,120,0,0,0,124,0,0,0,62,0, - 0,0,15,0,0,0,3,0,0,0,0,0,0,255,240,255, - 192,255,240,255,192,31,128,30,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,28,0,15,192,24, - 0,15,224,56,0,7,248,240,0,3,255,224,0,0,255,192, - 0,26,32,128,28,1,0,0,0,96,0,0,0,240,0,0, - 1,240,0,0,3,224,0,0,7,128,0,0,6,0,0,0, - 0,0,0,255,240,255,192,255,240,255,192,31,128,30,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,28,0,15,192,24,0,15,224,56,0,7,248,240,0,3, - 255,224,0,0,255,192,0,26,32,128,28,1,0,0,14,0, - 0,0,31,0,0,0,63,128,0,0,113,192,0,0,192,96, - 0,0,0,0,0,0,0,0,0,255,240,255,192,255,240,255, - 192,31,128,30,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,28,0,15,192,24,0,15,224,56, - 0,7,248,240,0,3,255,224,0,0,255,192,0,26,32,128, - 28,1,0,0,48,96,0,0,120,240,0,0,120,240,0,0, - 120,240,0,0,48,96,0,0,0,0,0,0,0,0,0,255, - 240,255,192,255,240,255,192,31,128,30,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,28,0,15, - 192,24,0,15,224,56,0,7,248,240,0,3,255,224,0,0, - 255,192,0,24,33,99,24,0,0,0,0,96,0,0,240,0, - 1,240,0,3,224,0,7,128,0,6,0,0,0,0,0,0, - 0,255,241,255,255,241,255,63,128,124,31,192,56,31,192,112, - 15,224,112,15,224,224,7,240,192,3,241,192,3,249,128,1, - 251,128,1,255,0,0,255,0,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,3,255,192,3,255,192,22,25,75,24, - 1,0,255,240,0,255,240,0,31,128,0,31,128,0,31,128, - 0,31,255,128,31,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,255,240,0,18,25,75, - 20,0,0,3,252,0,7,190,0,15,15,0,15,15,0,31, - 15,128,31,15,128,31,15,128,31,15,0,31,15,0,31,14, - 0,31,28,0,31,126,0,31,15,128,31,15,128,31,7,192, - 31,7,192,31,7,192,31,7,192,31,7,192,31,7,192,31, - 7,128,31,7,128,31,79,0,255,254,0,255,120,0,18,23, - 69,20,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,15,240,0,63,252,0,120, - 62,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,18,23,69,20,1,0,0, - 96,0,0,240,0,1,240,0,3,224,0,7,128,0,6,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,22,66,20,1,0,1,192,0,3,224,0, - 7,240,0,14,56,0,24,12,0,0,0,0,15,240,0,63, - 252,0,120,62,0,124,62,0,124,62,0,56,62,0,0,62, - 0,3,254,0,31,190,0,126,62,0,124,62,0,252,62,0, - 252,62,0,252,127,64,127,255,192,63,143,128,18,22,66,20, - 1,0,7,12,0,15,252,0,31,248,0,24,112,0,0,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,23,69,20,1,0,12,24,0,30,60,0, - 30,60,0,30,60,0,12,24,0,0,0,0,0,0,0,15, - 240,0,63,252,0,120,62,0,124,62,0,124,62,0,56,62, - 0,0,62,0,3,254,0,31,190,0,126,62,0,124,62,0, - 252,62,0,252,62,0,252,127,64,127,255,192,63,143,128,18, - 23,69,20,1,0,3,224,0,7,112,0,6,48,0,6,48, - 0,7,112,0,3,224,0,0,0,0,15,240,0,63,252,0, - 120,62,0,124,62,0,124,62,0,56,62,0,0,62,0,3, - 254,0,31,190,0,126,62,0,124,62,0,252,62,0,252,62, - 0,252,127,64,127,255,192,63,143,128,26,16,64,28,1,0, - 7,224,248,0,30,123,222,0,56,63,15,0,124,63,15,128, - 124,62,7,128,120,62,7,192,49,254,7,192,15,255,255,192, - 63,255,255,192,126,62,0,0,252,62,0,0,248,63,0,192, - 248,127,1,128,252,239,131,128,127,199,255,0,63,1,252,0, - 15,23,46,17,1,249,3,240,14,60,62,62,124,62,124,62, - 248,28,248,0,248,0,248,0,248,0,252,2,252,6,126,6, - 63,28,31,248,7,240,1,128,3,0,7,192,0,224,0,224, - 13,192,7,128,16,23,46,18,1,0,6,0,15,0,15,128, - 7,192,1,224,0,96,0,0,3,224,14,120,60,60,124,30, - 124,30,248,31,248,31,255,255,255,255,248,0,248,0,252,3, - 124,6,63,14,31,252,7,240,16,23,46,18,1,0,0,48, - 0,120,0,248,1,240,3,192,3,0,0,0,3,224,14,120, - 60,60,124,30,124,30,248,31,248,31,255,255,255,255,248,0, - 248,0,252,3,124,6,63,14,31,252,7,240,16,22,44,18, - 1,0,1,192,3,224,7,240,14,56,24,12,0,0,3,224, - 14,120,60,60,124,30,124,30,248,31,248,31,255,255,255,255, - 248,0,248,0,252,3,124,6,63,14,31,252,7,240,16,23, - 46,18,1,0,12,24,30,60,30,60,30,60,12,24,0,0, - 0,0,3,224,14,120,60,60,124,30,124,30,248,31,248,31, - 255,255,255,255,248,0,248,0,252,3,124,6,63,14,31,252, - 7,240,9,23,46,11,1,0,96,0,240,0,248,0,124,0, - 30,0,6,0,0,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,128,9,23,46,11,1,0,6,0,15,0, - 31,0,62,0,120,0,96,0,0,0,254,0,254,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,11,22,44,11,255,0, - 14,0,31,0,63,128,113,192,192,96,0,0,63,128,63,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,63,224,63,224,11,23,46,11, - 0,0,96,192,241,224,241,224,241,224,96,192,0,0,0,0, - 127,0,127,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,127,192,127,192, - 17,26,78,20,1,0,0,4,0,14,14,0,15,156,0,3, - 248,0,1,240,0,3,248,0,7,120,0,14,60,0,4,62, - 0,0,30,0,3,255,0,15,63,0,60,31,0,124,31,128, - 120,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,124,31,0,124,31,0,62,62,0,15,248, - 0,3,224,0,20,22,66,22,1,0,3,134,0,7,254,0, - 15,252,0,12,56,0,0,0,0,0,0,0,254,62,0,254, - 255,128,63,255,128,63,143,192,63,7,192,63,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,7,192,62,7,192, - 62,7,192,62,7,192,255,159,240,255,159,240,17,23,69,19, - 1,0,6,0,0,15,0,0,15,128,0,7,192,0,1,224, - 0,0,96,0,0,0,0,3,224,0,15,248,0,62,62,0, - 124,31,0,124,31,0,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,124,31,0,124,31,0,62,62, - 0,15,248,0,3,224,0,17,23,69,19,1,0,0,24,0, - 0,60,0,0,124,0,0,248,0,1,224,0,1,128,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,22,66,19,1,0,1,192,0,3,224,0,7,240, - 0,14,56,0,24,12,0,0,0,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,17,22,66,19,1,0, - 3,134,0,7,254,0,15,252,0,12,56,0,0,0,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,23,69,19,1,0,12,24,0,30,60,0,30,60, - 0,30,60,0,12,24,0,0,0,0,0,0,0,3,224,0, - 15,248,0,62,62,0,124,31,0,124,31,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 0,124,31,0,62,62,0,15,248,0,3,224,0,17,17,51, - 20,2,0,1,192,0,3,224,0,3,224,0,3,224,0,1, - 192,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,0,0,0,0,0,0,1,192,0,3,224,0,3,224,0, - 3,224,0,1,192,0,17,22,66,19,1,253,0,2,0,0, - 6,0,0,12,0,3,236,0,15,248,0,62,62,0,124,63, - 0,124,111,0,248,79,128,248,207,128,248,143,128,249,143,128, - 251,15,128,250,15,128,126,31,0,124,31,0,62,62,0,31, - 248,0,27,224,0,48,0,0,48,0,0,32,0,0,20,23, - 69,22,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,254,31,192,254,31,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,15,192,62,15,192,63,31,192, - 31,255,192,31,247,240,7,199,240,20,23,69,22,1,0,0, - 24,0,0,60,0,0,124,0,0,248,0,1,224,0,1,128, - 0,0,0,0,254,31,192,254,31,192,62,7,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,15,192,62,15,192,63,31,192,31,255,192,31,247, - 240,7,199,240,20,22,66,22,1,0,0,224,0,1,240,0, - 3,248,0,7,28,0,12,6,0,0,0,0,254,31,192,254, - 31,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,15,192,62,15,192, - 63,31,192,31,255,192,31,247,240,7,199,240,20,23,69,22, - 1,0,6,12,0,15,30,0,15,30,0,15,30,0,6,12, - 0,0,0,0,0,0,0,254,31,192,254,31,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,15,192,62,15,192,63,31,192,31,255, - 192,31,247,240,7,199,240,19,30,90,19,0,249,0,12,0, - 0,30,0,0,62,0,0,124,0,0,240,0,0,192,0,0, - 0,0,255,143,224,255,143,224,63,3,128,63,3,128,31,3, - 0,31,135,0,15,134,0,15,198,0,7,204,0,7,236,0, - 3,248,0,3,248,0,1,248,0,1,240,0,0,240,0,0, - 224,0,0,96,0,112,192,0,248,192,0,249,128,0,255,0, - 0,127,0,0,60,0,0,20,29,87,22,0,249,255,0,0, - 255,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 63,0,31,127,192,31,199,224,31,131,224,31,131,240,31,3, - 240,31,3,240,31,1,240,31,1,240,31,1,240,31,3,240, - 31,131,224,31,131,224,31,199,192,31,255,128,31,63,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,127,224, - 0,127,224,0,19,30,90,19,0,249,3,6,0,7,143,0, - 7,143,0,7,143,0,3,6,0,0,0,0,0,0,0,255, - 143,224,255,143,224,63,3,128,63,3,128,31,3,0,31,135, - 0,15,134,0,15,198,0,7,204,0,7,236,0,3,248,0, - 3,248,0,1,248,0,1,240,0,0,240,0,0,224,0,0, - 96,0,112,192,0,248,192,0,249,128,0,255,0,0,127,0, - 0,60,0,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=25 x= 3 y=10 dx=20 dy= 0 ascent=25 len=72 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24n[846] U8G_SECTION(".progmem.u8g_font_ncenB24n") = { - 0,39,53,252,243,24,0,0,0,0,42,57,0,25,251,24, - 0,12,15,30,17,2,10,6,0,14,0,14,0,230,112,230, - 112,246,240,63,192,15,0,127,224,246,240,230,112,230,112,7, - 0,7,0,6,0,16,16,32,20,2,1,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,6,11,11,9,2, - 251,120,248,252,252,252,124,28,24,48,112,224,8,4,4,11, - 1,6,255,255,255,255,6,6,6,9,1,0,120,252,252,252, - 252,120,10,25,50,9,255,0,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,7,0,6,0,14,0,14,0, - 12,0,28,0,28,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,224,0,224,0,192,0,16,24,48,19,1,0, - 3,192,15,240,30,120,60,60,124,62,120,30,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,120,30,120,30,124,62,60,60,30,120,15,240,3,192, - 13,24,48,19,3,0,1,128,7,128,255,128,255,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,255,248,255,248,17,24,72,19,1,0,15,240,0,63, - 252,0,120,126,0,240,63,0,248,31,0,252,31,0,252,31, - 0,252,31,0,124,63,0,56,62,0,0,124,0,0,248,0, - 0,240,0,1,224,0,3,192,0,3,129,128,7,1,128,14, - 1,128,28,3,128,63,255,128,127,255,0,127,255,0,255,255, - 0,255,255,0,16,24,48,19,1,0,15,224,63,248,120,124, - 248,62,252,62,252,62,252,62,120,62,0,124,0,112,7,224, - 7,192,0,248,0,126,0,62,0,63,120,31,252,31,252,31, - 252,63,248,62,120,126,63,248,7,224,17,24,72,19,0,0, - 0,4,0,0,12,0,0,28,0,0,60,0,0,124,0,0, - 252,0,1,252,0,1,252,0,3,124,0,6,124,0,12,124, - 0,28,124,0,56,124,0,112,124,0,224,124,0,192,124,0, - 255,255,128,255,255,128,0,124,0,0,124,0,0,124,0,0, - 124,0,3,255,128,3,255,128,16,24,48,19,1,0,31,255, - 63,254,63,254,63,252,63,240,48,0,48,0,48,0,48,0, - 55,224,63,248,56,124,48,62,32,62,0,31,0,31,56,31, - 124,31,252,31,252,62,120,62,112,252,63,240,15,192,17,24, - 72,19,1,0,3,240,0,15,252,0,31,30,0,62,62,0, - 60,62,0,124,62,0,120,28,0,248,0,0,248,0,0,248, - 0,0,249,248,0,255,254,0,255,127,0,252,31,0,248,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,124,31,0, - 124,31,0,62,62,0,31,252,0,7,240,0,16,24,48,19, - 2,0,255,255,255,254,255,254,255,252,255,252,192,24,192,24, - 192,56,128,112,0,112,0,240,0,224,1,224,1,224,3,224, - 3,192,7,192,7,192,15,192,15,192,15,192,15,192,15,192, - 7,128,17,24,72,19,1,0,7,240,0,15,252,0,60,62, - 0,56,31,0,120,15,0,120,15,0,120,15,0,124,15,0, - 126,30,0,127,252,0,63,240,0,31,252,0,15,254,0,63, - 255,0,120,127,0,248,31,128,240,15,128,240,15,128,240,15, - 0,240,15,0,248,30,0,124,60,0,63,240,0,7,192,0, - 17,24,72,19,1,0,3,192,0,31,248,0,62,124,0,124, - 62,0,252,31,0,248,31,0,248,15,128,248,15,128,248,15, - 128,252,31,128,252,63,128,127,111,128,63,207,128,31,143,128, - 0,15,128,0,15,128,112,15,0,248,31,0,252,31,0,248, - 30,0,248,62,0,112,252,0,63,240,0,15,192,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=32 x= 8 y=17 dx=32 dy= 0 ascent=26 len=124 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24r[5937] U8G_SECTION(".progmem.u8g_font_ncenB24r") = { - 0,39,53,252,243,25,6,143,16,147,32,127,249,26,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08[2642] U8G_SECTION(".progmem.u8g_font_ncenR08") = { - 0,14,18,254,252,8,1,180,3,120,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,3,0,1,1,8,8,4,1,254,128,128, - 0,128,128,128,128,128,5,7,7,6,0,255,16,120,168,160, - 200,112,64,6,8,8,7,0,0,56,72,64,248,32,32,68, - 248,6,6,6,7,0,1,132,120,72,72,120,132,7,8,8, - 8,0,0,198,68,40,108,16,124,16,56,1,8,8,6,2, - 0,128,128,128,0,0,128,128,128,4,10,10,5,0,254,112, - 144,128,96,144,144,96,16,144,224,3,1,1,4,0,6,160, - 9,8,16,10,0,0,62,0,65,0,156,128,164,128,160,128, - 156,128,65,0,62,0,4,6,6,5,0,2,224,32,96,176, - 0,240,5,3,3,6,0,1,72,144,72,5,3,3,6,0, - 1,248,8,8,3,1,1,4,0,2,224,9,8,16,10,0, - 0,62,0,65,0,188,128,148,128,152,128,182,128,65,0,62, - 0,4,1,1,5,0,6,240,3,4,4,4,0,4,64,160, - 160,64,5,5,5,6,0,0,32,248,32,0,248,3,4,4, - 3,0,4,96,160,64,224,3,4,4,3,0,4,224,64,32, - 192,2,2,2,3,0,6,64,128,5,7,7,6,0,254,144, - 144,144,144,232,128,128,6,10,10,7,0,254,124,168,168,168, - 104,40,40,40,40,124,1,2,2,4,1,2,128,128,2,3, - 3,3,0,254,128,64,192,3,4,4,3,0,4,64,192,64, - 224,4,6,6,5,0,2,96,144,144,96,0,240,5,3,3, - 6,0,1,144,72,144,7,8,8,7,0,0,72,200,80,240, - 36,44,94,68,6,8,8,7,0,0,72,200,80,240,44,52, - 72,92,7,8,8,7,0,0,232,72,48,208,36,44,94,68, - 4,8,8,5,0,254,32,32,0,32,64,128,144,96,7,11, - 11,8,0,0,32,16,0,16,16,40,40,68,124,68,238,7, - 11,11,8,0,0,8,16,0,16,16,40,40,68,124,68,238, - 7,11,11,8,0,0,16,40,0,16,16,40,40,68,124,68, - 238,7,11,11,8,0,0,20,40,0,16,16,40,40,68,124, - 68,238,7,10,10,8,0,0,40,0,16,16,40,40,68,124, - 68,238,7,11,11,8,0,0,16,40,16,16,16,40,40,68, - 124,68,238,10,8,16,11,0,0,31,192,12,64,21,64,23, - 0,61,0,36,64,68,64,231,192,6,10,10,7,0,254,60, - 68,128,128,128,128,68,56,16,48,6,11,11,7,0,0,32, - 16,0,252,68,84,112,80,68,68,252,6,11,11,7,0,0, - 8,16,0,252,68,84,112,80,68,68,252,6,11,11,7,0, - 0,16,40,0,252,68,84,112,80,68,68,252,6,10,10,7, - 0,0,40,0,252,68,84,112,80,68,68,252,3,11,11,4, - 0,0,128,64,0,224,64,64,64,64,64,64,224,3,11,11, - 4,0,0,32,64,0,224,64,64,64,64,64,64,224,3,11, - 11,4,0,0,64,160,0,224,64,64,64,64,64,64,224,3, - 10,10,4,0,0,160,0,224,64,64,64,64,64,64,224,7, - 8,8,8,0,0,248,68,66,226,66,66,68,248,8,11,11, - 9,0,0,20,40,0,231,98,82,82,74,74,70,230,7,11, - 11,8,0,0,32,16,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,8,16,0,56,68,130,130,130,130,68,56, - 7,11,11,8,0,0,16,40,0,56,68,130,130,130,130,68, - 56,7,11,11,8,0,0,20,40,0,56,68,130,130,130,130, - 68,56,7,10,10,8,0,0,40,0,56,68,130,130,130,130, - 68,56,5,5,5,6,0,0,136,80,32,80,136,8,8,8, - 8,255,0,29,34,69,73,81,97,98,156,7,11,11,8,0, - 0,32,16,0,238,68,68,68,68,68,68,56,7,11,11,8, - 0,0,8,16,0,238,68,68,68,68,68,68,56,7,11,11, - 8,0,0,16,40,0,238,68,68,68,68,68,68,56,7,10, - 10,8,0,0,40,0,238,68,68,68,68,68,68,56,7,11, - 11,8,0,0,8,16,0,198,68,40,40,16,16,16,56,6, - 8,8,7,0,0,192,120,68,68,68,120,64,224,6,8,8, - 7,0,0,48,72,72,88,68,68,84,216,5,8,8,6,0, - 0,64,32,0,96,144,112,144,248,5,8,8,6,0,0,32, - 64,0,96,144,112,144,248,5,8,8,6,0,0,32,80,0, - 96,144,112,144,248,5,8,8,6,0,0,80,160,0,96,144, - 112,144,248,5,7,7,6,0,0,80,0,96,144,112,144,248, - 5,8,8,6,0,0,32,80,32,96,144,112,144,248,7,5, - 5,8,0,0,108,146,126,144,238,4,7,7,5,0,254,112, - 144,128,144,96,32,96,4,8,8,5,0,0,64,32,0,96, - 144,240,128,112,4,8,8,5,0,0,32,64,0,96,144,240, - 128,112,4,8,8,5,0,0,32,80,0,96,144,240,128,112, - 4,7,7,5,0,0,80,0,96,144,240,128,112,3,8,8, - 4,0,0,128,64,0,192,64,64,64,224,3,8,8,4,0, - 0,32,64,0,192,64,64,64,224,3,8,8,4,0,0,64, - 160,0,192,64,64,64,224,3,7,7,4,0,0,160,0,192, - 64,64,64,224,4,8,8,5,0,0,80,96,160,96,144,144, - 144,96,6,8,8,7,0,0,40,80,0,176,72,72,72,236, - 4,8,8,5,0,0,64,32,0,96,144,144,144,96,4,8, - 8,5,0,0,32,64,0,96,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,7,7,5,0,0,80,0, - 96,144,144,144,96,5,5,5,6,0,0,32,0,248,0,32, - 5,6,6,5,0,255,104,144,176,208,96,128,5,8,8,6, - 0,0,64,32,0,144,144,144,144,104,5,8,8,6,0,0, - 32,64,0,144,144,144,144,104,5,8,8,6,0,0,32,80, - 0,144,144,144,144,104,5,7,7,6,0,0,80,0,144,144, - 144,144,104,6,10,10,6,0,254,16,32,0,220,136,80,80, - 32,32,192,5,10,10,5,255,254,192,64,64,112,72,72,72, - 112,64,224,6,9,9,6,0,254,80,0,220,136,80,80,32, - 32,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08r[1266] U8G_SECTION(".progmem.u8g_font_ncenR08r") = { - 0,14,18,254,252,8,1,180,3,120,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=14 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10[3813] U8G_SECTION(".progmem.u8g_font_ncenR10") = { - 0,18,24,254,250,11,2,24,5,38,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,4,0,1,1,11,11,4,1, - 253,128,128,0,128,128,128,128,128,128,128,128,6,11,11,8, - 1,254,4,4,120,204,144,144,160,228,120,128,128,7,11,11, - 8,0,0,60,98,70,64,32,252,16,16,96,178,206,7,7, - 7,8,0,2,186,68,130,130,130,68,186,9,11,22,8,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,62,0,8, - 0,62,0,8,0,28,0,1,11,11,9,4,0,128,128,128, - 128,0,0,128,128,128,128,128,5,13,13,7,1,254,120,136, - 128,192,112,152,136,200,112,24,8,136,240,4,2,2,6,1, - 8,144,144,12,11,22,14,1,0,15,0,48,192,79,32,89, - 32,144,16,144,16,152,144,79,32,64,32,48,192,15,0,5, - 7,7,6,0,4,96,144,112,144,248,0,248,6,5,5,7, - 0,1,36,72,144,72,36,7,4,4,9,0,1,254,2,2, - 2,4,1,1,5,0,3,240,12,11,22,14,1,0,15,0, - 48,192,94,32,73,32,137,16,142,16,139,16,89,160,64,32, - 48,192,15,0,5,1,1,5,0,8,248,4,4,4,6,1, - 7,96,144,144,96,7,7,7,9,1,0,16,16,254,16,16, - 0,254,4,6,6,5,0,5,96,144,32,64,144,240,4,6, - 6,5,0,5,96,144,32,16,144,96,3,3,3,5,1,8, - 32,64,128,8,10,10,9,0,253,231,66,66,66,66,102,123, - 64,96,64,7,13,13,9,1,254,126,212,212,212,212,116,20, - 20,20,20,20,20,62,2,2,2,4,1,3,192,192,3,4, - 4,5,0,253,64,64,32,192,3,6,6,5,1,5,64,192, - 64,64,64,224,4,7,7,5,0,4,96,144,144,144,96,0, - 240,6,5,5,7,0,1,144,72,36,72,144,10,11,22,12, - 0,0,65,0,193,0,66,0,66,0,68,0,228,128,9,128, - 18,128,20,128,39,192,32,128,10,11,22,12,0,0,65,0, - 193,0,66,0,66,0,68,0,229,128,10,64,16,128,17,0, - 34,64,35,192,10,11,22,12,0,0,97,0,145,0,34,0, - 18,0,148,0,100,128,9,128,18,128,20,128,39,192,32,128, - 5,11,11,6,0,253,32,32,0,32,32,32,64,128,136,200, - 112,11,14,28,10,255,0,8,0,4,0,0,0,4,0,4, - 0,10,0,10,0,10,0,17,0,17,0,63,128,32,128,32, - 128,251,224,11,14,28,10,255,0,2,0,4,0,0,0,4, - 0,4,0,10,0,10,0,10,0,17,0,17,0,63,128,32, - 128,32,128,251,224,11,14,28,10,255,0,4,0,10,0,17, - 0,4,0,4,0,10,0,10,0,10,0,17,0,17,0,63, - 128,32,128,32,128,251,224,11,14,28,10,255,0,12,128,19, - 0,0,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,13,26,10,255,0,17, - 0,17,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,14,28,10,255,0,12, - 0,18,0,12,0,4,0,4,0,10,0,10,0,10,0,17, - 0,17,0,63,128,32,128,32,128,251,224,14,11,22,15,0, - 0,15,252,5,4,9,4,9,32,17,32,17,224,63,32,33, - 32,65,4,65,4,227,252,9,14,28,11,1,253,30,128,97, - 128,64,128,192,128,128,0,128,0,128,0,192,128,64,128,97, - 0,30,0,8,0,4,0,24,0,9,14,28,10,0,0,16, - 0,8,0,0,0,255,128,32,128,32,128,36,0,36,0,60, - 0,36,0,36,0,32,128,32,128,255,128,9,14,28,10,0, - 0,4,0,8,0,0,0,255,128,32,128,32,128,36,0,36, - 0,60,0,36,0,36,0,32,128,32,128,255,128,9,14,28, - 10,0,0,12,0,18,0,0,0,255,128,32,128,32,128,36, - 0,36,0,60,0,36,0,36,0,32,128,32,128,255,128,9, - 14,28,10,0,0,18,0,18,0,0,0,255,128,32,128,32, - 128,36,0,36,0,60,0,36,0,36,0,32,128,32,128,255, - 128,5,14,14,6,0,0,64,32,0,248,32,32,32,32,32, - 32,32,32,32,248,5,14,14,6,0,0,16,32,0,248,32, - 32,32,32,32,32,32,32,32,248,5,14,14,6,0,0,48, - 72,0,248,32,32,32,32,32,32,32,32,32,248,5,14,14, - 6,0,0,80,80,0,248,32,32,32,32,32,32,32,32,32, - 248,10,11,22,11,0,0,255,0,32,128,32,192,32,64,32, - 64,248,64,32,64,32,64,32,192,32,128,255,0,12,14,28, - 13,0,0,12,128,19,0,0,0,225,240,48,64,48,64,40, - 64,44,64,38,64,35,64,33,64,32,192,32,64,248,64,10, - 14,28,11,0,0,8,0,4,0,0,0,30,0,97,128,64, - 128,192,192,128,64,128,64,128,64,192,192,64,128,97,128,30, - 0,10,14,28,11,0,0,2,0,4,0,0,0,30,0,97, - 128,64,128,192,192,128,64,128,64,128,64,192,192,64,128,97, - 128,30,0,10,14,28,11,0,0,12,0,18,0,0,0,30, - 0,97,128,64,128,192,192,128,64,128,64,128,64,192,192,64, - 128,97,128,30,0,10,14,28,11,0,0,25,0,38,0,0, - 0,30,0,97,128,64,128,192,192,128,64,128,64,128,64,192, - 192,64,128,97,128,30,0,10,14,28,11,0,0,18,0,18, - 0,0,0,30,0,97,128,64,128,192,192,128,64,128,64,128, - 64,192,192,64,128,97,128,30,0,7,7,7,9,1,0,130, - 68,40,16,40,68,130,11,11,22,11,255,0,15,32,48,192, - 32,192,97,96,66,32,68,32,72,32,112,96,32,64,112,192, - 143,0,12,14,28,13,0,0,8,0,4,0,0,0,249,240, - 32,64,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 48,128,31,0,12,14,28,13,0,0,1,0,2,0,0,0, - 249,240,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,48,128,31,0,12,14,28,13,0,0,6,0,9,0, - 0,0,249,240,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,48,128,31,0,12,14,28,13,0,0,9,0, - 9,0,0,0,249,240,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,48,128,31,0,11,14,28,10,255,0, - 2,0,4,0,0,0,251,224,96,128,49,0,17,0,26,0, - 10,0,4,0,4,0,4,0,4,0,31,0,9,11,22,10, - 0,0,248,0,32,0,63,0,33,128,32,128,32,128,33,0, - 62,0,32,0,32,0,248,0,7,11,11,8,0,0,56,100, - 68,76,88,68,66,66,66,86,220,7,11,11,8,0,0,32, - 16,8,0,56,76,4,60,196,140,118,7,11,11,8,0,0, - 8,16,32,0,56,76,4,60,196,140,118,7,11,11,8,0, - 0,16,40,68,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,50,76,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,72,72,0,56,76,4,60,196,140,118,7,11,11,8, - 0,0,48,72,48,0,56,76,4,60,196,140,118,11,7,14, - 12,0,0,59,192,78,96,4,32,63,224,196,0,142,32,115, - 192,6,10,10,7,0,253,120,204,128,128,128,196,120,32,16, - 96,6,11,11,7,0,0,64,32,16,0,120,204,132,252,128, - 196,120,6,11,11,7,0,0,8,16,32,0,120,204,132,252, - 128,196,120,6,11,11,7,0,0,16,40,68,0,120,204,132, - 252,128,196,120,6,10,10,7,0,0,72,72,0,120,204,132, - 252,128,196,120,3,11,11,4,0,0,128,64,32,0,192,64, - 64,64,64,64,224,3,11,11,4,0,0,32,64,128,0,192, - 64,64,64,64,64,224,5,11,11,4,255,0,32,80,136,0, - 96,32,32,32,32,32,112,4,10,10,4,255,0,144,144,0, - 96,32,32,32,32,32,112,7,11,11,7,255,0,76,48,208, - 8,60,102,66,66,66,102,60,8,10,10,9,0,0,50,76, - 0,220,102,66,66,66,66,231,6,11,11,7,0,0,64,32, - 16,0,120,204,132,132,132,204,120,6,11,11,7,0,0,16, - 32,64,0,120,204,132,132,132,204,120,6,11,11,7,0,0, - 32,80,136,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,100,152,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,72,72,0,120,204,132,132,132,204,120,7,7,7,9,1, - 0,16,16,0,254,0,16,16,6,9,9,7,0,255,8,120, - 220,148,164,164,204,120,64,8,11,11,9,0,0,32,16,8, - 0,231,66,66,66,66,102,59,8,11,11,9,0,0,2,4, - 8,0,231,66,66,66,66,102,59,8,11,11,9,0,0,8, - 20,34,0,231,66,66,66,66,102,59,8,10,10,9,0,0, - 36,36,0,231,66,66,66,66,102,59,7,14,14,8,0,253, - 4,8,16,0,238,68,68,40,40,16,16,32,160,192,7,14, - 14,8,0,253,192,64,64,64,92,102,66,66,66,102,92,64, - 64,224,7,13,13,8,0,253,72,72,0,238,68,68,40,40, - 16,16,32,160,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=12 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10r[1781] U8G_SECTION(".progmem.u8g_font_ncenR10r") = { - 0,18,24,254,250,11,2,24,5,38,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12[4247] U8G_SECTION(".progmem.u8g_font_ncenR12") = { - 0,21,26,253,250,12,2,59,5,140,32,255,253,16,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,1,1,2,12, - 12,5,1,253,192,192,0,64,64,64,64,192,192,192,192,192, - 6,12,12,9,1,254,4,4,56,76,204,144,144,228,100,56, - 64,64,9,12,24,9,0,0,30,0,49,0,35,0,35,0, - 48,0,16,0,254,0,16,0,16,0,112,128,191,0,78,0, - 7,8,8,9,1,2,186,108,198,130,130,198,108,186,9,12, - 24,9,0,0,243,128,97,0,34,0,50,0,20,0,20,0, - 62,0,8,0,62,0,8,0,8,0,62,0,1,12,12,10, - 4,0,128,128,128,128,128,0,0,128,128,128,128,128,6,15, - 15,8,1,253,56,72,64,96,48,88,140,132,196,104,48,24, - 8,72,112,5,2,2,5,0,9,216,216,12,12,24,12,0, - 0,31,128,48,192,71,32,205,176,152,144,144,16,144,16,152, - 144,205,176,71,32,48,192,31,128,5,7,7,6,0,5,224, - 144,112,144,232,0,240,6,5,5,7,0,1,36,72,216,72, - 36,8,5,5,10,1,1,255,1,1,1,1,4,1,1,5, - 0,3,240,12,12,24,12,0,0,31,128,48,192,95,32,201, - 176,137,144,143,16,137,16,137,144,200,176,92,224,48,192,31, - 128,5,1,1,5,0,9,248,5,5,5,7,1,7,112,136, - 136,136,112,7,9,9,10,1,0,16,16,16,254,16,16,16, - 0,254,5,7,7,6,0,5,112,216,136,16,32,72,248,5, - 7,7,6,0,5,112,216,136,48,136,216,112,3,3,3,5, - 0,9,32,96,128,10,11,22,10,0,253,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,125,192,96,0,96,0,96, - 0,8,15,15,10,0,253,127,234,202,202,202,234,122,10,10, - 10,10,10,10,10,31,2,2,2,5,1,3,192,192,3,4, - 4,5,1,253,64,64,32,192,3,7,7,6,1,5,64,192, - 64,64,64,64,224,4,7,7,5,0,5,96,144,144,144,96, - 0,240,6,5,5,7,0,1,144,72,108,72,144,11,12,24, - 14,1,0,64,64,192,192,65,128,65,0,66,0,70,64,236, - 192,9,64,18,64,51,224,96,64,64,224,11,12,24,13,1, - 0,64,128,193,128,67,0,66,0,68,0,77,192,251,96,18, - 32,32,192,97,0,195,32,131,224,13,12,24,14,0,0,112, - 24,216,48,136,96,48,192,136,128,217,144,115,48,6,80,4, - 144,12,248,24,16,48,56,7,12,12,7,0,253,24,24,0, - 16,16,48,96,192,196,206,100,56,11,16,32,12,0,0,24, - 0,12,0,2,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 16,32,12,0,0,3,0,6,0,8,0,0,0,4,0,4, - 0,14,0,14,0,22,0,19,0,19,0,63,128,33,128,65, - 128,64,192,243,224,11,16,32,12,0,0,4,0,14,0,17, - 0,0,0,4,0,4,0,14,0,14,0,22,0,19,0,19, - 0,63,128,33,128,65,128,64,192,243,224,11,15,30,12,0, - 0,29,0,46,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 15,30,12,0,0,18,0,18,0,0,0,4,0,4,0,14, - 0,14,0,22,0,19,0,19,0,63,128,33,128,65,128,64, - 192,243,224,11,16,32,12,0,0,12,0,18,0,12,0,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,16,12,24,17,0,0,15, - 255,2,195,2,193,4,193,4,200,8,248,8,216,31,201,16, - 193,32,193,32,195,251,255,10,15,30,12,1,253,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,8,0,4,0,24,0,10,16,32,12,0, - 0,24,0,12,0,2,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,10,16,32,12,0,0,3,0,6,0,8,0,0,0,255, - 192,48,192,48,64,48,64,50,0,62,0,54,0,50,0,48, - 64,48,64,48,192,255,192,10,16,32,12,0,0,4,0,14, - 0,17,0,0,0,255,192,48,192,48,64,48,64,50,0,62, - 0,54,0,50,0,48,64,48,64,48,192,255,192,10,15,30, - 12,0,0,17,0,17,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,6,16,16,7,0,0,192,96,16,0,252,48,48,48,48, - 48,48,48,48,48,48,252,6,16,16,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,252,6,16,16, - 7,0,0,32,112,136,0,252,48,48,48,48,48,48,48,48, - 48,48,252,6,15,15,7,0,0,72,72,0,252,48,48,48, - 48,48,48,48,48,48,48,252,12,12,24,13,0,0,255,0, - 49,192,48,96,48,96,48,48,124,48,48,48,48,48,48,96, - 48,96,49,192,255,0,13,15,30,13,0,0,14,64,19,128, - 0,0,240,248,56,32,60,32,44,32,46,32,39,32,35,160, - 33,160,32,224,32,224,32,96,248,32,11,16,32,13,1,0, - 24,0,12,0,2,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,16,32,13,1,0,1,128,3,0,4,0,0,0,14,0, - 49,128,96,192,96,192,192,96,192,96,192,96,192,96,96,192, - 96,192,49,128,14,0,11,16,32,13,1,0,4,0,14,0, - 17,0,0,0,14,0,49,128,96,192,96,192,192,96,192,96, - 192,96,192,96,96,192,96,192,49,128,14,0,11,15,30,13, - 1,0,14,128,23,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,15,30,13,1,0,17,0,17,0,0,0,14,0,49,128, - 96,192,96,192,192,96,192,96,192,96,192,96,96,192,96,192, - 49,128,14,0,8,8,8,10,1,0,129,66,36,24,24,36, - 66,129,11,14,28,13,1,255,0,32,14,64,49,128,97,192, - 97,64,194,96,196,96,196,96,200,96,80,192,112,192,49,128, - 78,0,128,0,13,16,32,13,0,0,12,0,6,0,1,0, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,13,16,32,13,0,0, - 0,192,1,128,2,0,0,0,252,248,48,32,48,32,48,32, - 48,32,48,32,48,32,48,32,48,32,48,32,24,64,15,128, - 13,16,32,13,0,0,2,0,7,0,8,128,0,0,252,248, - 48,32,48,32,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,24,64,15,128,13,15,30,13,0,0,8,128,8,128, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,12,16,32,12,0,0, - 1,128,3,0,4,0,0,0,252,240,48,64,24,128,24,128, - 13,0,13,0,6,0,6,0,6,0,6,0,6,0,31,128, - 11,12,24,11,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,192,63,128,48,0,48,0,252,0,8,12, - 12,10,1,0,60,102,99,99,102,124,102,99,99,99,118,236, - 7,12,12,9,1,0,64,96,16,0,120,204,204,28,108,204, - 204,118,7,12,12,9,1,0,4,12,16,0,120,204,204,28, - 108,204,204,118,7,12,12,9,1,0,16,56,68,0,120,204, - 204,28,108,204,204,118,7,11,11,9,1,0,52,88,0,120, - 204,204,28,108,204,204,118,7,11,11,9,1,0,72,72,0, - 120,204,204,28,108,204,204,118,7,13,13,9,1,0,48,72, - 72,48,0,120,204,204,28,108,204,204,118,12,8,16,13,0, - 0,121,192,206,32,198,48,31,240,102,0,198,16,207,32,121, - 192,6,11,11,7,0,253,56,108,204,192,192,196,108,56,32, - 16,96,7,12,12,8,0,0,32,48,8,0,56,68,198,254, - 192,192,102,60,7,12,12,8,0,0,4,12,16,0,56,68, - 198,254,192,192,102,60,7,12,12,8,0,0,16,56,68,0, - 56,68,198,254,192,192,102,60,7,11,11,8,0,0,36,36, - 0,56,68,198,254,192,192,102,60,4,12,12,5,0,0,128, - 192,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,16,48,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,4, - 11,11,5,0,0,144,144,0,224,96,96,96,96,96,96,240, - 7,13,13,8,0,0,64,38,24,104,12,60,110,198,198,198, - 198,108,56,9,11,22,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,99,0,247,128,7, - 12,12,8,0,0,64,96,16,0,56,108,198,198,198,198,108, - 56,7,12,12,8,0,0,4,12,16,0,56,108,198,198,198, - 198,108,56,7,12,12,8,0,0,16,56,68,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,52,88,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,72,72,0,56, - 108,198,198,198,198,108,56,8,7,7,10,1,1,24,24,0, - 255,0,24,24,7,10,10,8,0,255,2,60,100,206,214,214, - 230,76,120,128,9,12,24,10,0,0,32,0,48,0,8,0, - 0,0,231,0,99,0,99,0,99,0,99,0,99,0,99,0, - 61,128,9,12,24,10,0,0,2,0,6,0,8,0,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,61,128, - 9,12,24,10,0,0,8,0,28,0,34,0,0,0,231,0, - 99,0,99,0,99,0,99,0,99,0,99,0,61,128,9,11, - 22,10,0,0,36,0,36,0,0,0,231,0,99,0,99,0, - 99,0,99,0,99,0,99,0,61,128,8,15,15,9,0,253, - 2,6,8,0,247,98,54,52,28,24,8,24,16,208,224,8, - 14,14,9,0,253,224,96,96,124,102,99,99,99,99,102,124, - 96,96,240,8,14,14,9,0,253,36,36,0,247,98,54,52, - 28,24,8,24,16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=15 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12r[1976] U8G_SECTION(".progmem.u8g_font_ncenR12r") = { - 0,21,26,253,250,12,2,59,5,140,32,127,253,13,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=19 dy= 0 ascent=19 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14[5319] U8G_SECTION(".progmem.u8g_font_ncenR14") = { - 0,27,30,252,249,14,3,41,7,30,32,255,252,19,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,5,0,1,2,14,14,5, - 1,252,192,192,0,0,64,64,64,192,192,192,192,192,192,192, - 8,13,13,10,1,254,2,2,30,103,203,200,200,208,208,115, - 62,32,32,10,14,28,11,0,0,15,0,25,128,49,128,48, - 0,48,0,24,0,255,128,12,0,12,0,12,0,12,0,120, - 64,158,64,247,128,9,9,18,12,1,3,156,128,255,128,99, - 0,193,128,193,128,193,128,99,0,255,128,156,128,14,14,28, - 15,0,0,252,124,48,16,24,32,24,32,12,64,12,64,6, - 128,31,224,3,0,3,0,31,224,3,0,3,0,15,192,2, - 14,14,10,4,0,192,192,192,192,192,0,0,0,192,192,192, - 192,192,192,8,17,17,9,0,253,60,102,70,64,96,120,62, - 79,195,227,122,60,14,6,98,102,60,6,2,2,7,0,10, - 204,204,14,14,28,15,0,0,7,128,24,96,32,16,71,136, - 72,200,144,68,144,4,144,4,144,4,72,72,71,136,32,16, - 24,96,7,128,6,8,8,7,0,6,112,136,56,200,152,108, - 0,252,8,7,7,9,0,2,17,51,102,204,102,51,17,9, - 5,10,10,0,3,255,128,0,128,0,128,0,128,0,128,5, - 1,1,6,0,5,248,14,14,28,15,0,0,7,128,24,96, - 32,16,79,136,68,200,132,68,132,196,135,132,132,132,68,72, - 78,104,32,16,24,96,7,128,6,1,1,7,0,10,252,6, - 6,6,7,0,8,120,204,132,132,204,120,9,9,18,10,0, - 1,8,0,8,0,8,0,255,128,8,0,8,0,8,0,0, - 0,255,128,6,8,8,6,0,6,120,204,140,24,48,96,196, - 252,6,8,8,6,0,6,120,204,140,56,12,140,204,120,4, - 3,3,6,1,11,48,96,128,10,13,26,11,0,252,227,192, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,125,192, - 64,0,64,0,96,0,96,0,10,17,34,11,0,253,63,192, - 233,0,201,0,201,0,201,0,201,0,233,0,57,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,9,0,63,192, - 2,2,2,5,1,5,192,192,4,4,4,6,0,252,64,112, - 16,224,6,8,8,6,0,6,48,240,48,48,48,48,48,252, - 5,8,8,6,0,6,112,216,136,136,216,112,0,248,8,7, - 7,9,0,2,136,204,102,51,102,204,136,15,14,28,15,0, - 0,48,32,240,32,48,64,48,64,48,128,48,128,49,24,253, - 56,2,40,2,88,4,152,4,254,8,24,8,60,14,14,28, - 15,0,0,48,32,240,32,48,64,48,64,48,128,48,128,49, - 120,253,204,2,140,2,24,4,48,4,96,8,196,8,252,15, - 14,28,15,0,0,120,32,204,32,140,64,56,64,12,128,140, - 128,205,24,121,56,2,40,2,88,4,152,4,254,8,24,8, - 60,7,14,14,8,0,252,24,24,0,0,16,16,32,32,64, - 192,192,198,230,120,14,18,36,13,255,0,12,0,6,0,1, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,14, - 18,36,13,255,0,0,192,1,128,2,0,0,0,3,0,3, - 0,3,0,5,128,5,128,5,128,8,192,8,192,31,224,16, - 96,16,96,32,48,32,48,248,252,14,18,36,13,255,0,3, - 0,7,128,8,64,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,17,34,13,255,0,7,64,11,128,0,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,14,17,34,13,255, - 0,12,192,12,192,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,19,38,13,255,0,3,0,4,128,4,128,3, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,18, - 14,42,18,255,0,7,255,192,1,96,192,2,96,64,2,96, - 64,4,98,64,4,98,0,8,126,0,8,98,0,31,226,0, - 16,96,64,32,96,64,32,96,64,96,96,192,241,255,192,12, - 18,36,13,0,252,15,144,56,112,96,48,96,16,192,16,192, - 0,192,0,192,0,192,0,192,0,96,16,96,16,56,96,15, - 192,4,0,7,0,1,0,14,0,11,18,36,12,0,0,24, - 0,12,0,2,0,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,18,36,12,0,0,3,0,6,0,8,0,0, - 0,255,224,48,96,48,32,48,32,49,32,49,0,63,0,49, - 0,49,0,48,32,48,32,48,32,48,96,255,224,11,18,36, - 12,0,0,6,0,15,0,16,128,0,0,255,224,48,96,48, - 32,48,32,49,32,49,0,63,0,49,0,49,0,48,32,48, - 32,48,32,48,96,255,224,11,17,34,12,0,0,25,128,25, - 128,0,0,255,224,48,96,48,32,48,32,49,32,49,0,63, - 0,49,0,49,0,48,32,48,32,48,32,48,96,255,224,6, - 18,18,7,0,0,192,96,16,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,18,18,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,252,6, - 18,18,7,0,0,48,120,132,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,17,17,7,0,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,14,14, - 28,15,0,0,255,192,48,112,48,24,48,24,48,12,48,12, - 254,12,48,12,48,12,48,12,48,24,48,24,48,112,255,192, - 14,17,34,15,0,0,7,64,11,128,0,0,240,124,48,16, - 56,16,60,16,46,16,38,16,35,16,35,144,33,144,32,208, - 32,240,32,112,32,48,248,16,14,18,36,15,0,0,12,0, - 6,0,1,0,0,0,15,192,56,112,96,24,96,24,192,12, - 192,12,192,12,192,12,192,12,192,12,96,24,96,24,56,112, - 15,192,14,18,36,15,0,0,0,192,1,128,2,0,0,0, - 15,192,56,112,96,24,96,24,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,96,24,56,112,15,192,14,18,36,15, - 0,0,3,0,7,128,8,64,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,14,17,34,15,0,0,7,64,11,128, - 0,0,15,192,56,112,96,24,96,24,192,12,192,12,192,12, - 192,12,192,12,192,12,96,24,96,24,56,112,15,192,14,17, - 34,15,0,0,12,192,12,192,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,10,9,18,10,0,1,192,192,97,128, - 51,0,30,0,12,0,30,0,51,0,97,128,192,192,15,14, - 28,15,255,0,7,228,28,56,48,28,48,44,96,70,96,134, - 97,6,98,6,100,6,104,6,48,12,48,12,92,56,135,224, - 14,18,36,15,0,0,6,0,3,0,0,128,0,0,252,124, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,24,32,15,192,14,18,36,15,0,0, - 0,192,1,128,2,0,0,0,252,124,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 24,32,15,192,14,18,36,15,0,0,3,0,7,128,8,64, - 0,0,252,124,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,24,32,15,192,14,17, - 34,15,0,0,12,96,12,96,0,0,252,124,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,24,32,15,192,14,18,36,13,255,0,0,96,0,192, - 1,0,0,0,252,124,48,16,24,32,24,32,12,64,12,64, - 6,128,7,128,3,0,3,0,3,0,3,0,3,0,15,192, - 11,14,28,12,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,96,48,96,48,192,63,0,48,0,48,0, - 252,0,9,14,28,10,0,0,30,0,35,0,97,0,97,0, - 99,0,110,0,99,0,97,128,97,128,97,128,97,128,109,128, - 109,0,230,0,9,13,26,10,0,0,48,0,24,0,4,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,6,0,12,0,16,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,24,0,60,0,66,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,12,24,10,0,0,58,0,92,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,9,12,24,10,0,0,102,0,102,0,0,0,28,0, - 98,0,99,0,3,0,31,0,99,0,195,0,199,0,121,128, - 9,14,28,10,0,0,24,0,36,0,36,0,24,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,15,9,18,16,0,0,28,248,99,140,99,6,3,6, - 31,254,99,0,195,0,197,134,120,252,8,13,13,9,0,252, - 60,99,195,192,192,192,193,99,62,16,28,4,56,8,13,13, - 9,0,0,96,48,8,0,60,102,195,195,255,192,193,99,62, - 8,13,13,9,0,0,6,12,16,0,60,102,195,195,255,192, - 193,99,62,8,13,13,9,0,0,24,60,66,0,60,102,195, - 195,255,192,193,99,62,8,12,12,9,0,0,102,102,0,60, - 102,195,195,255,192,193,99,62,5,13,13,5,255,0,192,96, - 16,0,112,48,48,48,48,48,48,48,120,5,13,13,5,0, - 0,24,48,64,0,224,96,96,96,96,96,96,96,240,6,13, - 13,5,255,0,48,120,132,0,112,48,48,48,48,48,48,48, - 120,6,12,12,5,255,0,204,204,0,112,48,48,48,48,48, - 48,48,120,9,14,28,10,0,0,192,0,54,0,56,0,204, - 0,6,0,63,0,99,0,193,128,193,128,193,128,193,128,193, - 128,99,0,62,0,10,12,24,11,0,0,60,128,79,0,0, - 0,239,0,115,128,97,128,97,128,97,128,97,128,97,128,97, - 128,243,192,9,13,26,10,0,0,96,0,48,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,3,0,6,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,24,0,60,0,66,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,12,24,10,0,0,58,0,92,0,0,0,62, - 0,99,0,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,12,24,10,0,0,99,0,99,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,99,0,62,0,10, - 7,14,10,0,2,12,0,12,0,0,0,255,192,0,0,12, - 0,12,0,9,12,24,10,0,254,0,128,62,128,99,0,197, - 128,197,128,201,128,201,128,209,128,115,0,62,0,64,0,64, - 0,10,13,26,11,0,0,48,0,24,0,4,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,3,0,6,0,8,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,12,0,30,0,33,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,12,24,11,0,0,51,0,51,0,0,0,227,192,97, - 128,97,128,97,128,97,128,97,128,97,128,115,128,61,192,10, - 17,34,11,0,252,3,0,6,0,8,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0,10,18,36,11,0,252,224,0,96, - 0,96,0,96,0,96,0,111,0,113,128,96,192,96,192,96, - 192,96,192,96,192,113,128,111,0,96,0,96,0,96,0,240, - 0,10,16,32,11,0,252,51,0,51,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=19 dy= 0 ascent=15 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14r[2534] U8G_SECTION(".progmem.u8g_font_ncenR14r") = { - 0,27,30,252,249,14,3,41,7,30,32,127,252,15,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=24 x= 6 y=15 dx=25 dy= 0 ascent=24 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18[7488] U8G_SECTION(".progmem.u8g_font_ncenR18") = { - 0,31,37,253,248,18,4,33,9,197,32,255,251,24,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,7,0,1,3,19,19,7,2, - 251,224,224,224,0,0,64,64,64,224,224,224,224,224,224,224, - 224,224,224,64,10,18,36,14,2,253,0,64,0,64,0,128, - 31,128,113,192,97,192,226,192,194,0,196,0,196,0,200,0, - 232,0,112,64,112,192,63,0,32,0,64,0,64,0,13,18, - 36,14,0,0,3,192,14,48,12,112,28,112,28,32,28,0, - 28,0,14,0,127,192,7,0,7,0,7,0,7,0,7,0, - 118,8,140,8,143,240,115,224,13,12,24,15,1,4,71,16, - 255,248,112,112,32,32,96,48,96,48,96,48,96,48,32,32, - 112,112,255,248,71,16,16,18,36,17,0,0,252,63,56,12, - 24,8,28,24,12,16,14,48,6,32,7,96,3,64,3,192, - 31,248,1,128,1,128,31,248,1,128,1,128,1,128,15,240, - 2,18,18,15,6,0,192,192,192,192,192,192,192,0,0,0, - 192,192,192,192,192,192,192,192,10,22,44,12,1,252,31,0, - 35,128,97,128,97,128,120,0,60,0,31,0,47,128,67,192, - 193,192,192,192,224,192,240,192,124,128,63,0,15,0,3,128, - 1,128,97,128,97,128,113,0,62,0,6,2,2,8,1,15, - 204,204,18,18,54,20,1,0,3,240,0,12,12,0,16,2, - 0,32,1,0,67,240,128,70,24,128,140,8,64,140,0,64, - 140,0,64,140,0,64,140,0,64,140,8,64,70,24,128,67, - 224,128,32,1,0,16,2,0,12,12,0,3,240,0,7,10, - 10,9,1,8,120,76,4,124,196,204,118,0,0,254,10,7, - 14,12,1,3,24,192,49,128,99,0,198,0,99,0,49,128, - 24,192,12,7,14,14,1,3,255,240,255,240,0,48,0,48, - 0,48,0,48,0,48,6,2,2,8,1,6,252,252,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,32,1,0, - 71,240,128,67,24,128,131,24,64,131,24,64,131,16,64,131, - 224,64,131,48,64,131,24,64,67,12,128,71,142,128,32,1, - 0,16,2,0,12,12,0,3,240,0,7,1,1,9,1,15, - 254,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,2,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,198,198,6,12,24,48,96,192,194,254,7,11,11,8,0, - 7,124,198,198,6,12,60,6,6,198,198,124,5,4,4,8, - 2,15,24,56,96,128,14,17,34,14,0,251,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,112, - 63,176,46,60,32,0,32,0,112,0,112,0,32,0,13,22, - 44,15,1,252,31,248,115,48,227,48,227,48,227,48,227,48, - 227,48,227,48,115,48,31,48,3,48,3,48,3,48,3,48, - 3,48,3,48,3,48,3,48,3,48,3,48,3,48,7,248, - 3,3,3,7,2,5,224,224,224,4,4,4,7,1,252,64, - 112,16,224,6,11,11,8,1,7,16,48,240,48,48,48,48, - 48,48,48,252,7,10,10,9,1,8,56,68,198,198,198,68, - 56,0,0,254,10,7,14,12,1,3,198,0,99,0,49,128, - 24,192,49,128,99,0,198,0,18,18,54,19,0,0,16,4, - 0,48,12,0,240,8,0,48,24,0,48,16,0,48,48,0, - 48,32,0,48,99,0,48,71,0,48,207,0,252,139,0,1, - 155,0,1,19,0,3,51,0,2,99,0,6,127,192,4,3, - 0,12,7,128,18,18,54,19,0,0,16,8,0,48,24,0, - 240,16,0,48,48,0,48,32,0,48,96,0,48,64,0,48, - 207,128,48,152,192,49,152,192,253,0,192,3,1,128,2,3, - 0,6,6,0,4,12,0,12,24,0,8,24,64,24,31,192, - 18,18,54,19,0,0,124,4,0,198,12,0,198,8,0,6, - 24,0,12,16,0,60,48,0,6,32,0,6,99,0,198,71, - 0,198,207,0,124,139,0,1,155,0,1,19,0,3,51,0, - 2,99,0,6,127,192,4,3,0,12,7,128,10,18,36,12, - 1,252,7,0,7,0,7,0,0,0,0,0,2,0,2,0, - 6,0,12,0,28,0,56,0,112,0,224,0,225,192,225,192, - 224,192,113,128,30,0,19,23,69,19,0,0,3,0,0,3, - 128,0,0,192,0,0,32,0,0,0,0,0,64,0,0,96, - 0,0,224,0,0,240,0,1,48,0,1,56,0,2,24,0, - 2,28,0,4,12,0,4,12,0,8,14,0,15,254,0,16, - 6,0,16,7,0,32,3,0,32,3,128,96,3,128,248,15, - 224,19,23,69,19,0,0,0,24,0,0,56,0,0,96,0, - 0,128,0,0,0,0,0,64,0,0,96,0,0,224,0,0, - 240,0,1,48,0,1,56,0,2,24,0,2,28,0,4,12, - 0,4,12,0,8,14,0,15,254,0,16,6,0,16,7,0, - 32,3,0,32,3,128,96,3,128,248,15,224,19,23,69,19, - 0,0,0,96,0,0,240,0,1,152,0,2,4,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,22,66,19,0,0,1,196,0, - 3,248,0,4,112,0,0,0,0,0,64,0,0,96,0,0, - 224,0,0,240,0,1,48,0,1,56,0,2,24,0,2,28, - 0,4,12,0,4,12,0,8,14,0,15,254,0,16,6,0, - 16,7,0,32,3,0,32,3,128,96,3,128,248,15,224,19, - 22,66,19,0,0,3,24,0,3,24,0,0,0,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,24,72,19,0,0,0,224,0, - 1,16,0,1,16,0,1,16,0,0,224,0,0,0,0,0, - 64,0,0,96,0,0,224,0,0,240,0,1,48,0,1,56, - 0,2,24,0,2,28,0,4,12,0,4,12,0,8,14,0, - 15,254,0,16,6,0,16,7,0,32,3,0,32,3,128,96, - 3,128,248,15,224,24,18,54,25,0,0,1,255,255,0,38, - 7,0,102,3,0,70,1,0,198,1,0,134,17,1,134,16, - 1,6,48,3,7,240,2,6,48,7,254,16,4,6,16,12, - 6,1,8,6,1,24,6,1,16,6,3,48,6,7,252,31, - 255,15,23,46,17,1,251,7,242,28,30,56,6,48,2,112, - 2,96,2,224,0,224,0,224,0,224,0,224,0,224,0,96, - 2,112,2,48,6,56,4,28,28,7,240,3,224,1,0,1, - 192,0,64,3,128,13,23,46,16,1,0,24,0,28,0,6, - 0,1,0,0,0,255,248,48,56,48,24,48,8,48,8,48, - 136,48,128,49,128,63,128,49,128,48,128,48,128,48,8,48, - 8,48,8,48,24,48,56,255,248,13,23,46,16,1,0,0, - 96,0,224,1,128,2,0,0,0,255,248,48,56,48,24,48, - 8,48,8,48,136,48,128,49,128,63,128,49,128,48,128,48, - 128,48,8,48,8,48,8,48,24,48,56,255,248,13,23,46, - 16,1,0,3,0,7,128,12,192,16,32,0,0,255,248,48, - 56,48,24,48,8,48,8,48,136,48,128,49,128,63,128,49, - 128,48,128,48,128,48,8,48,8,48,8,48,24,48,56,255, - 248,13,22,44,16,1,0,12,96,12,96,0,0,0,0,255, - 248,48,56,48,24,48,8,48,8,48,136,48,128,49,128,63, - 128,49,128,48,128,48,128,48,8,48,8,48,8,48,24,48, - 56,255,248,6,23,23,9,2,0,192,224,48,8,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 7,23,23,9,2,0,6,14,24,32,0,252,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,8,23,23, - 9,1,0,24,60,102,129,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,22,22,9,2,0, - 198,198,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,16,18,36,20,2,0,255,224,48,56, - 48,12,48,12,48,6,48,6,48,7,48,7,254,7,48,7, - 48,7,48,7,48,6,48,6,48,12,48,12,48,56,255,224, - 19,22,66,21,1,0,1,196,0,3,248,0,4,112,0,0, - 0,0,248,15,224,60,3,128,28,1,0,30,1,0,23,1, - 0,19,129,0,17,129,0,16,193,0,16,225,0,16,97,0, - 16,49,0,16,57,0,16,29,0,16,15,0,16,7,0,16, - 7,0,56,3,0,254,1,0,17,23,69,19,1,0,12,0, - 0,14,0,0,3,0,0,0,128,0,0,0,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,17,23,69,19,1,0,0,24,0,0,56,0,0, - 96,0,0,128,0,0,0,0,7,240,0,28,28,0,48,6, - 0,48,6,0,112,7,0,96,3,0,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,96,3,0,112, - 7,0,48,6,0,48,6,0,28,28,0,7,240,0,17,23, - 69,19,1,0,0,192,0,1,224,0,3,48,0,4,8,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,17,22,66,19,1,0,3, - 136,0,7,240,0,8,224,0,0,0,0,7,240,0,28,28, - 0,48,6,0,48,6,0,112,7,0,96,3,0,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,224,3,128,96, - 3,0,112,7,0,48,6,0,48,6,0,28,28,0,7,240, - 0,17,22,66,19,1,0,6,48,0,6,48,0,0,0,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,13,12,24,14,1,1,192, - 24,96,48,48,96,24,192,13,128,7,0,7,0,13,128,24, - 192,48,96,96,48,192,24,17,19,57,19,1,0,0,3,0, - 7,246,0,28,28,0,48,14,0,48,30,0,96,51,0,96, - 99,0,224,67,128,224,195,128,225,131,128,227,3,128,226,3, - 128,230,3,128,108,3,0,120,3,0,48,6,0,48,6,0, - 124,28,0,199,240,0,16,23,46,19,2,0,6,0,7,0, - 1,128,0,64,0,0,252,31,48,14,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,56,12,24,8,30,56,7,224,16,23,46,19,2,0, - 0,48,0,112,0,192,1,0,0,0,252,31,48,14,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,56,12,24,8,30,56,7,224,16,23, - 46,19,2,0,1,128,3,192,6,96,8,16,0,0,252,31, - 48,14,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,56,12,24,8,30,56, - 7,224,16,22,44,19,2,0,6,48,6,48,0,0,0,0, - 252,31,48,14,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,56,12,24,8, - 30,56,7,224,16,23,46,17,0,0,0,48,0,112,0,192, - 1,0,0,0,252,63,56,12,24,8,28,24,12,16,14,48, - 6,32,7,96,3,64,3,192,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,7,224,13,18,36,16,2,0,252,0, - 48,0,48,0,48,0,63,128,48,224,48,48,48,56,48,56, - 48,56,48,56,48,48,48,224,63,128,48,0,48,0,48,0, - 252,0,12,18,36,14,1,0,15,128,24,192,48,96,48,96, - 48,96,48,96,48,192,51,192,48,96,48,48,48,48,48,48, - 48,48,48,48,54,48,54,48,54,96,243,192,12,18,36,13, - 1,0,24,0,28,0,6,0,1,0,0,0,0,0,31,0, - 113,128,112,192,96,192,0,192,7,192,56,192,96,192,192,192, - 192,192,225,240,126,96,12,18,36,13,1,0,1,128,3,128, - 6,0,8,0,0,0,0,0,31,0,113,128,112,192,96,192, - 0,192,7,192,56,192,96,192,192,192,192,192,225,240,126,96, - 12,18,36,13,1,0,6,0,15,0,25,128,32,64,0,0, - 0,0,31,0,113,128,112,192,96,192,0,192,7,192,56,192, - 96,192,192,192,192,192,225,240,126,96,12,17,34,13,1,0, - 28,64,63,128,71,0,0,0,0,0,31,0,113,128,112,192, - 96,192,0,192,7,192,56,192,96,192,192,192,192,192,225,240, - 126,96,12,16,32,13,1,0,25,128,25,128,0,0,0,0, - 31,0,113,128,112,192,96,192,0,192,7,192,56,192,96,192, - 192,192,192,192,225,240,126,96,12,19,38,13,1,0,14,0, - 17,0,17,0,17,0,14,0,0,0,0,0,31,0,113,128, - 112,192,96,192,0,192,7,192,56,192,96,192,192,192,192,192, - 225,240,126,96,19,12,36,21,1,0,31,31,0,113,241,192, - 96,224,192,0,224,224,0,192,96,7,255,224,56,192,0,96, - 192,0,192,224,0,192,224,64,227,112,192,124,31,128,10,16, - 32,12,1,252,31,0,113,192,97,192,224,192,192,0,192,0, - 192,0,192,0,224,0,96,64,112,192,31,128,8,0,14,0, - 2,0,28,0,11,18,36,13,1,0,24,0,28,0,6,0, - 1,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 255,224,192,0,192,0,224,0,96,64,112,192,31,128,11,18, - 36,13,1,0,1,128,3,128,6,0,8,0,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,11,18,36,13,1,0,6,0, - 15,0,25,128,32,64,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,255,224,192,0,192,0,224,0,96,64,112,192, - 31,128,11,16,32,13,1,0,49,128,49,128,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,6,18,18,8,1,0,192,224, - 48,8,0,0,240,48,48,48,48,48,48,48,48,48,48,252, - 6,18,18,8,1,0,24,56,96,128,0,0,240,48,48,48, - 48,48,48,48,48,48,48,252,8,18,18,8,0,0,24,60, - 102,129,0,0,120,24,24,24,24,24,24,24,24,24,24,126, - 6,16,16,8,1,0,204,204,0,0,240,48,48,48,48,48, - 48,48,48,48,48,252,11,18,36,13,1,0,192,0,51,0, - 28,0,28,0,102,0,3,0,31,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,31,0, - 14,17,34,14,0,0,7,16,15,224,17,192,0,0,0,0, - 241,192,55,224,56,112,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,252,11,18,36,13,1,0,24,0, - 28,0,6,0,1,0,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,192,96,192,96,192,96,224,224,96,192,113,192, - 31,0,11,18,36,13,1,0,1,128,3,128,6,0,8,0, - 0,0,0,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,11,18,36,13, - 1,0,14,0,31,0,49,128,64,64,0,0,0,0,31,0, - 113,192,96,192,224,224,192,96,192,96,192,96,192,96,224,224, - 96,192,113,192,31,0,11,17,34,13,1,0,28,64,63,128, - 71,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 192,96,192,96,192,96,224,224,96,192,113,192,31,0,11,16, - 32,13,1,0,49,128,49,128,0,0,0,0,31,0,113,192, - 96,192,224,224,192,96,192,96,192,96,192,96,224,224,96,192, - 113,192,31,0,12,10,20,14,1,2,6,0,6,0,0,0, - 0,0,255,240,255,240,0,0,0,0,6,0,6,0,11,16, - 32,13,1,254,0,64,0,128,31,128,113,192,98,192,226,224, - 196,96,196,96,196,96,200,96,200,224,80,192,113,192,63,0, - 32,0,64,0,14,18,36,14,0,0,12,0,14,0,3,0, - 0,128,0,0,0,0,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,31,176,14,60,14,18, - 36,14,0,0,0,192,1,192,3,0,4,0,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,14,18,36,14,0,0,3,0, - 7,128,12,192,16,32,0,0,0,0,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,56,112,31,176, - 14,60,14,16,32,14,0,0,12,192,12,192,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,13,23,46,12,255,251,0,96, - 0,224,1,128,2,0,0,0,0,0,120,56,48,16,56,48, - 24,32,24,32,12,96,12,64,6,192,6,128,7,128,3,0, - 3,0,2,0,2,0,196,0,236,0,120,0,13,23,46,14, - 0,251,240,0,48,0,48,0,48,0,48,0,48,0,55,192, - 60,112,56,48,48,56,48,24,48,24,48,24,48,24,48,56, - 56,48,60,112,55,192,48,0,48,0,48,0,48,0,252,0, - 13,21,42,12,255,251,12,96,12,96,0,0,0,0,120,56, - 48,16,56,48,24,32,24,32,12,96,12,64,6,192,6,128, - 7,128,3,0,3,0,2,0,2,0,196,0,236,0,120,0 - }; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=23 x= 6 y=14 dx=25 dy= 0 ascent=20 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18r[3477] U8G_SECTION(".progmem.u8g_font_ncenR18r") = { - 0,31,37,253,248,18,4,33,9,197,32,127,251,20,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=32 x= 9 y=19 dx=32 dy= 0 ascent=32 len=128 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =32 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24[11729] U8G_SECTION(".progmem.u8g_font_ncenR24") = { - 0,39,50,250,245,25,5,159,15,28,32,255,249,32,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,9,1,1,4,25,25, - 10,3,249,96,240,240,96,0,0,0,96,96,96,96,96,96, - 96,96,96,96,96,240,240,240,240,240,240,96,13,24,48,18, - 2,252,0,24,0,24,0,16,0,48,7,224,31,240,56,112, - 112,112,112,240,224,224,224,128,225,128,225,0,227,0,227,0, - 242,16,118,48,60,96,31,224,15,128,8,0,24,0,16,0, - 16,0,16,23,46,19,1,0,1,240,7,252,14,14,12,14, - 28,30,28,30,28,28,28,0,30,0,14,0,14,0,255,248, - 15,0,7,0,7,0,7,0,6,0,6,0,126,3,223,7, - 143,142,223,252,112,240,16,17,34,19,1,3,67,194,239,247, - 127,254,60,60,112,14,112,14,224,7,224,7,224,7,224,7, - 224,7,112,14,112,14,60,60,127,254,239,247,3,192,17,23, - 69,19,0,0,255,31,128,60,15,0,28,6,0,30,6,0, - 14,4,0,15,12,0,7,8,0,7,24,0,3,144,0,3, - 176,0,1,224,0,0,224,0,7,252,0,7,252,0,0,224, - 0,0,224,0,7,252,0,7,252,0,0,224,0,0,224,0, - 0,224,0,7,248,0,7,248,0,2,25,25,20,9,0,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,12,30,60,17,2,251,15,0, - 57,192,48,192,113,192,113,192,112,128,56,0,60,0,30,0, - 15,0,63,128,99,192,193,224,192,240,192,112,224,48,240,48, - 120,48,60,96,31,192,15,0,7,128,3,192,1,192,16,224, - 56,224,56,224,48,192,57,192,15,0,9,3,6,11,1,19, - 99,0,247,128,99,0,24,25,75,25,0,0,0,126,0,3, - 255,128,7,129,224,14,0,112,24,0,56,48,0,28,48,127, - 12,96,227,134,97,129,134,67,128,134,195,0,131,199,0,3, - 199,0,3,199,0,3,199,0,3,195,0,3,67,128,6,97, - 193,134,97,227,140,48,126,12,24,0,24,28,0,112,7,1, - 224,3,255,128,0,126,0,11,14,28,11,0,11,63,0,99, - 128,97,128,99,128,15,128,121,128,225,128,193,128,227,128,125, - 224,0,0,0,0,0,0,255,192,11,11,22,14,1,2,4, - 32,12,96,24,192,49,128,115,128,231,0,115,128,49,128,24, - 192,12,96,4,32,16,9,18,20,1,3,255,255,255,255,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,8,3,3, - 11,1,7,255,255,255,24,24,72,25,0,0,0,126,0,3, - 255,192,15,1,240,28,0,56,56,0,24,51,252,12,96,199, - 14,96,195,6,64,195,6,192,195,3,192,198,3,192,252,3, - 192,204,3,192,206,3,192,198,3,96,199,6,96,195,6,96, - 195,142,51,227,204,24,0,24,28,0,112,7,0,224,3,255, - 192,0,126,0,10,2,4,11,0,19,255,192,255,192,9,9, - 18,13,2,14,62,0,119,0,193,128,193,128,128,128,193,128, - 193,128,119,0,62,0,16,16,32,20,2,0,1,128,1,128, - 1,128,1,128,255,255,255,255,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,0,0,255,255,255,255,10,14,28,11, - 0,9,63,0,115,128,97,128,113,128,113,128,1,128,3,0, - 7,0,14,0,28,0,56,64,112,64,255,192,255,192,9,14, - 28,11,1,9,62,0,99,0,113,128,97,128,1,128,7,0, - 62,0,7,0,3,0,97,128,225,128,195,128,231,0,126,0, - 7,6,6,11,2,19,6,14,28,56,96,192,17,23,69,20, - 1,249,56,14,0,248,62,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,30,0,56,30,0,60,126,0,63,238,0,47, - 143,128,32,0,0,32,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,32,0,0,17,30,90,20,2,251,15,255,128, - 63,255,128,120,198,0,240,198,0,240,198,0,240,198,0,240, - 198,0,240,198,0,240,198,0,240,198,0,120,198,0,124,198, - 0,63,198,0,15,198,0,0,198,0,0,198,0,0,198,0, - 0,198,0,0,198,0,0,198,0,0,198,0,0,198,0,0, - 198,0,0,198,0,0,198,0,0,198,0,0,198,0,0,198, - 0,3,255,128,3,255,128,4,4,4,9,2,6,96,240,240, - 96,6,7,7,11,1,249,16,32,120,12,12,140,120,8,14, - 14,11,1,9,56,248,24,24,24,24,24,24,24,24,24,24, - 24,255,11,14,28,10,255,11,14,0,59,128,96,192,224,224, - 192,96,192,96,224,224,96,192,59,128,14,0,0,0,0,0, - 0,0,127,192,11,11,22,14,1,2,132,0,198,0,99,0, - 49,128,57,192,28,224,57,192,49,128,99,0,198,0,132,0, - 25,23,92,28,1,0,56,0,24,0,248,0,48,0,24,0, - 48,0,24,0,96,0,24,0,192,0,24,0,128,0,24,1, - 128,0,24,3,0,0,24,6,0,0,24,6,4,0,24,12, - 12,0,24,24,28,0,24,24,60,0,255,48,108,0,0,96, - 76,0,0,192,204,0,0,193,140,0,1,131,12,0,3,3, - 255,128,3,0,12,0,6,0,12,0,12,0,12,0,8,0, - 63,0,25,23,92,28,1,0,56,0,24,0,248,0,48,0, - 24,0,32,0,24,0,96,0,24,0,192,0,24,1,128,0, - 24,1,128,0,24,3,0,0,24,6,0,0,24,6,62,0, - 24,12,99,0,24,24,193,128,24,48,193,128,255,48,225,128, - 0,96,195,0,0,192,7,0,0,192,14,0,1,128,28,0, - 3,0,56,0,3,0,112,128,6,0,224,128,12,1,255,128, - 8,1,255,128,25,23,92,28,1,0,62,0,8,0,99,0, - 24,0,113,128,48,0,97,128,48,0,1,128,96,0,7,0, - 192,0,30,1,128,0,7,1,128,0,3,131,0,0,97,134, - 4,0,225,134,12,0,195,140,28,0,231,24,60,0,126,48, - 108,0,0,48,204,0,0,96,204,0,0,193,140,0,0,195, - 12,0,1,131,255,128,3,0,12,0,6,0,12,0,6,0, - 12,0,12,0,63,0,12,25,50,14,1,249,3,0,7,128, - 7,128,3,0,0,0,0,0,0,0,3,0,3,0,2,0, - 2,0,6,0,12,0,28,0,56,0,120,0,112,0,240,0, - 224,112,224,112,224,112,240,48,112,48,60,224,31,192,23,32, - 96,23,0,0,6,0,0,7,0,0,3,128,0,1,192,0, - 0,96,0,0,48,0,0,0,0,0,16,0,0,56,0,0, - 56,0,0,120,0,0,124,0,0,124,0,0,220,0,0,222, - 0,1,158,0,1,142,0,1,143,0,3,7,0,3,7,128, - 3,7,128,6,3,128,7,255,192,7,255,192,12,1,192,12, - 1,224,12,1,224,24,0,240,24,0,240,56,0,248,124,1, - 252,254,3,254,23,32,96,23,0,0,0,1,128,0,3,128, - 0,7,0,0,14,0,0,24,0,0,48,0,0,0,0,0, - 16,0,0,56,0,0,56,0,0,120,0,0,124,0,0,124, - 0,0,220,0,0,222,0,1,158,0,1,142,0,1,143,0, - 3,7,0,3,7,128,3,7,128,6,3,128,7,255,192,7, - 255,192,12,1,192,12,1,224,12,1,224,24,0,240,24,0, - 240,56,0,248,124,1,252,254,3,254,23,31,93,23,0,0, - 0,24,0,0,60,0,0,126,0,0,195,0,1,129,128,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,0,241,128,1,255,0,3,30,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,1,134,0,3,207,0,1,134,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,32,96, - 23,0,0,0,120,0,0,204,0,0,132,0,0,132,0,0, - 204,0,0,120,0,0,0,0,0,16,0,0,56,0,0,56, - 0,0,120,0,0,124,0,0,124,0,0,220,0,0,222,0, - 1,158,0,1,142,0,1,143,0,3,7,0,3,7,128,3, - 7,128,6,3,128,7,255,192,7,255,192,12,1,192,12,1, - 224,12,1,224,24,0,240,24,0,240,56,0,248,124,1,252, - 254,3,254,30,25,100,32,0,0,1,255,255,252,0,127,255, - 252,0,29,192,124,0,25,192,28,0,25,192,28,0,49,192, - 12,0,49,192,140,0,97,192,132,0,97,193,132,0,193,193, - 128,0,193,195,128,1,129,255,128,1,129,255,128,3,1,195, - 128,3,255,193,128,7,255,193,128,6,1,192,132,12,1,192, - 132,12,1,192,4,24,1,192,12,24,1,192,12,48,1,192, - 28,48,1,192,124,120,7,255,252,254,31,255,252,20,32,96, - 22,1,249,0,248,96,3,255,96,15,7,224,28,1,224,60, - 0,224,56,0,224,120,0,96,120,0,96,240,0,96,240,0, - 32,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,48,120,0,48,120,0,32,120,0,96,60, - 0,96,28,0,192,14,1,128,7,207,0,1,254,0,0,32, - 0,0,64,0,0,240,0,0,24,0,0,24,0,1,24,0, - 0,240,0,20,32,96,24,1,0,3,0,0,3,128,0,1, - 192,0,0,224,0,0,48,0,0,24,0,0,0,0,255,255, - 240,63,255,240,14,1,240,14,0,112,14,0,112,14,0,48, - 14,4,48,14,4,16,14,4,16,14,12,0,14,60,0,15, - 252,0,15,252,0,14,60,0,14,12,0,14,12,0,14,4, - 16,14,4,16,14,0,16,14,0,48,14,0,48,14,0,112, - 14,1,240,63,255,240,255,255,240,20,32,96,24,1,0,0, - 1,128,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,0,0,255,255,240,63,255,240,14,1,240,14,0,112, - 14,0,112,14,0,48,14,4,48,14,4,16,14,4,16,14, - 12,0,14,60,0,15,252,0,15,252,0,14,60,0,14,12, - 0,14,12,0,14,4,16,14,4,16,14,0,16,14,0,48, - 14,0,48,14,0,112,14,1,240,63,255,240,255,255,240,20, - 32,96,24,1,0,0,48,0,0,120,0,0,252,0,1,134, - 0,3,3,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,20,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,11,32,64,13,1,0,96,0,112,0,56, - 0,28,0,6,0,3,0,0,0,255,224,63,128,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,63,128,255,224,11,32,64,13,1, - 0,0,192,1,192,3,128,7,0,12,0,24,0,0,0,255, - 224,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,255, - 224,11,31,62,13,1,0,6,0,15,0,31,128,48,192,96, - 96,0,0,255,224,63,128,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,63,128,255,224,11,30,60,13,1,0,49,128,123,192,49, - 128,0,0,0,0,255,224,63,128,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,255,224,22,25,75,24,1,0,255,252,0, - 255,255,128,30,7,192,14,1,224,14,0,240,14,0,112,14, - 0,120,14,0,120,14,0,56,14,0,60,14,0,60,14,0, - 60,127,224,60,127,224,60,14,0,60,14,0,60,14,0,60, - 14,0,56,14,0,120,14,0,120,14,0,112,14,0,224,14, - 1,192,255,255,128,255,254,0,26,30,120,28,1,0,0,30, - 48,0,0,63,224,0,0,99,192,0,0,0,0,0,0,0, - 0,0,255,0,255,192,31,0,63,0,15,128,12,0,15,192, - 12,0,15,192,12,0,13,224,12,0,13,240,12,0,12,248, - 12,0,12,120,12,0,12,124,12,0,12,62,12,0,12,30, - 12,0,12,31,12,0,12,15,140,0,12,7,140,0,12,7, - 204,0,12,3,204,0,12,1,236,0,12,0,236,0,12,0, - 252,0,12,0,124,0,12,0,60,0,12,0,60,0,63,0, - 28,0,255,192,12,0,22,32,96,24,1,0,6,0,0,7, - 0,0,3,128,0,1,192,0,0,96,0,0,48,0,0,0, - 0,1,254,0,7,255,128,15,3,192,28,0,224,60,0,240, - 56,0,112,120,0,120,120,0,120,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,56,120,0,120,120,0,120,56,0,112,60,0,240, - 28,0,224,15,3,192,7,255,128,1,254,0,22,32,96,24, - 1,0,0,3,0,0,7,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,1,254,0,7,255,128,15,3,192, - 28,0,224,60,0,240,56,0,112,120,0,120,120,0,120,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,56,120,0,120,120,0,120, - 56,0,112,60,0,240,28,0,224,15,3,192,7,255,128,1, - 254,0,22,31,93,24,1,0,0,48,0,0,120,0,0,252, - 0,1,134,0,3,3,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,241,128,1,255, - 0,3,30,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,17,15,45,20,2,1,224,3,128,112,7, - 0,56,14,0,28,28,0,14,56,0,7,112,0,3,224,0, - 1,192,0,3,224,0,7,112,0,14,56,0,28,28,0,56, - 14,0,112,7,0,224,3,128,22,28,84,24,1,254,0,0, - 24,1,254,48,7,255,176,14,3,224,28,0,224,60,1,240, - 56,1,240,120,3,120,120,6,120,240,6,60,240,12,60,240, - 24,60,240,56,60,240,48,60,240,96,60,240,224,60,240,192, - 60,113,128,56,123,0,120,123,0,120,62,0,112,60,0,240, - 30,1,224,31,3,192,55,255,128,113,254,0,96,0,0,192, - 0,0,26,32,128,26,0,0,0,48,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,3,0,0,0,1,128,0, - 0,0,0,0,255,224,255,192,63,128,63,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 15,0,24,0,7,0,24,0,7,128,48,0,3,224,240,0, - 1,255,192,0,0,127,0,0,26,32,128,26,0,0,0,0, - 48,0,0,0,112,0,0,0,224,0,0,1,192,0,0,3, - 0,0,0,6,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,26,31, - 124,26,0,0,0,6,0,0,0,15,0,0,0,31,128,0, - 0,48,192,0,0,96,96,0,0,0,0,0,255,224,255,192, - 63,128,63,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,15,0,24,0,7,0,24,0, - 7,128,48,0,3,224,240,0,1,255,192,0,0,127,0,0, - 26,30,120,26,0,0,0,48,192,0,0,121,224,0,0,48, - 192,0,0,0,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,23,32, - 96,23,0,0,0,1,128,0,3,128,0,7,0,0,14,0, - 0,24,0,0,48,0,0,0,0,255,131,254,126,0,248,62, - 0,112,30,0,96,15,0,224,15,0,192,7,129,128,7,193, - 128,3,195,0,3,227,0,1,230,0,0,246,0,0,252,0, - 0,124,0,0,120,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,254, - 0,3,255,128,20,25,75,22,1,0,255,224,0,31,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,15,254,0,15, - 255,128,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,3,224,15,255,192, - 15,255,0,14,0,0,14,0,0,14,0,0,14,0,0,31, - 0,0,255,224,0,17,26,78,19,0,255,3,248,0,7,156, - 0,14,14,0,14,15,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,14,0,28,14,0,28,248,0,28,248,0,28, - 14,0,28,7,0,28,7,0,28,7,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,231,128,28,231,0, - 60,231,0,252,254,0,0,56,0,16,23,46,17,1,0,12, - 0,14,0,7,0,3,128,0,192,0,96,0,0,7,192,31, - 240,120,120,112,56,112,56,112,56,1,248,15,248,60,56,112, - 56,224,56,224,56,224,120,240,253,127,159,63,14,16,23,46, - 17,1,0,0,48,0,112,0,224,1,192,3,0,6,0,0, - 0,7,192,31,240,120,120,112,56,112,56,112,56,1,248,15, - 248,60,56,112,56,224,56,224,56,224,120,240,253,127,159,63, - 14,16,22,44,17,1,0,3,0,7,128,15,192,24,96,48, - 48,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,15,24,31,240,49,224,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,12,96,30,240,12,96,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,23,46,17,1,0,7,128,12,192,8,64,8, - 64,12,192,7,128,0,0,7,192,31,240,120,120,112,56,112, - 56,112,56,1,248,15,248,60,56,112,56,224,56,224,56,224, - 120,240,253,127,159,62,14,23,16,48,25,1,0,15,195,224, - 63,231,248,112,124,28,112,60,12,112,56,14,112,56,14,1, - 248,14,15,255,254,60,56,0,112,56,0,240,56,0,224,60, - 2,224,124,6,240,254,28,127,207,248,63,3,240,12,23,46, - 14,1,249,7,128,31,224,56,112,112,240,112,240,224,96,224, - 0,224,0,224,0,224,0,240,0,240,16,120,48,124,96,63, - 192,15,0,2,0,4,0,15,0,1,128,1,128,17,128,15, - 0,14,23,46,16,1,0,24,0,28,0,14,0,7,0,1, - 128,0,192,0,0,7,192,31,240,56,56,112,24,112,28,240, - 28,240,28,255,252,224,0,224,0,240,0,240,4,120,12,60, - 56,31,240,7,192,14,23,46,16,1,0,0,24,0,56,0, - 112,0,224,1,128,3,0,0,0,7,192,31,240,56,120,112, - 56,96,28,224,28,224,28,255,252,224,0,224,0,240,0,240, - 4,120,12,60,56,31,240,7,192,14,22,44,16,1,0,3, - 0,7,128,15,192,24,96,48,48,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,56,31,240,7,192,14,21,42,16,1, - 0,12,96,30,240,12,96,0,0,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,24,31,240,7,192,9,23,46,11,1, - 0,192,0,224,0,112,0,56,0,12,0,6,0,0,0,252, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,9, - 23,46,11,1,0,1,128,3,128,7,0,14,0,24,0,48, - 0,0,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,255,128,10,22,44,11,0,0,12,0,30,0,63,0,97, - 128,192,192,0,0,126,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,127,192,9,21,42,11,1,0,99,0,247,128,99, - 0,0,0,0,0,252,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,255,128,14,25,50,17,1,0,48,0,60,0,14, - 224,7,192,15,128,13,192,0,224,0,240,0,112,7,248,31, - 248,56,120,112,60,112,60,224,28,224,28,224,28,224,28,224, - 28,224,28,240,60,112,56,120,120,63,240,15,192,19,21,63, - 19,0,0,3,198,0,7,252,0,12,120,0,0,0,0,0, - 0,0,28,120,0,253,254,0,31,158,0,30,15,0,30,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,255, - 31,224,14,23,46,16,1,0,48,0,56,0,28,0,14,0, - 3,0,1,128,0,0,7,128,31,224,56,112,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,240,60,112,56, - 120,120,31,224,7,128,14,23,46,16,1,0,0,24,0,56, - 0,112,0,224,1,128,3,0,0,0,7,128,31,224,56,112, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,56,120,120,31,224,7,128,14,22,44,16,1,0, - 3,0,7,128,15,192,24,96,48,48,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,15,24,31,240,49,224,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,24,192,61,224,24,192,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,16,16,32,20, - 2,0,1,128,3,192,3,192,1,128,0,0,0,0,0,0, - 255,255,255,255,0,0,0,0,0,0,1,128,3,192,3,192, - 1,128,14,22,44,16,1,253,0,24,0,24,0,48,7,240, - 31,240,56,112,112,248,112,216,225,156,225,156,227,28,227,28, - 230,28,230,28,236,56,124,56,120,112,63,224,63,128,48,0, - 96,0,96,0,18,23,69,20,0,0,6,0,0,7,0,0, - 3,128,0,1,192,0,0,96,0,0,48,0,0,0,0,28, - 7,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,15,0,28,15,0,14,63,0,15,247,192,7,199,0,18, - 23,69,20,0,0,0,12,0,0,28,0,0,56,0,0,112, - 0,0,192,0,1,128,0,0,0,0,28,7,0,252,63,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,15,0,28,15, - 0,14,63,0,15,247,192,7,199,0,18,22,66,20,0,0, - 0,192,0,1,224,0,3,240,0,6,24,0,12,12,0,0, - 0,0,28,7,0,252,63,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,15,0,28,15,0,14,63,0,15,247,192,7, - 199,0,18,21,63,20,0,0,3,24,0,7,188,0,3,24, - 0,0,0,0,0,0,0,28,7,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,15,0,28,15,0,14,63, - 0,15,247,192,7,199,0,17,30,90,19,1,249,0,12,0, - 0,28,0,0,56,0,0,112,0,0,192,0,1,128,0,0, - 0,0,255,31,128,124,7,0,60,6,0,28,6,0,30,12, - 0,14,12,0,15,8,0,7,24,0,7,24,0,7,176,0, - 3,176,0,3,224,0,1,224,0,1,224,0,0,192,0,0, - 192,0,1,128,0,1,128,0,99,0,0,227,0,0,230,0, - 0,252,0,0,112,0,0,16,29,58,19,1,249,56,0,248, - 0,56,0,56,0,56,0,56,0,56,240,59,252,63,30,60, - 14,60,15,56,7,56,7,56,7,56,7,56,7,56,7,60, - 15,60,14,62,30,59,252,57,240,56,0,56,0,56,0,56, - 0,56,0,56,0,255,0,18,28,84,20,1,249,3,24,0, - 7,188,0,3,24,0,0,0,0,0,0,0,255,31,192,124, - 7,0,60,6,0,28,6,0,30,12,0,14,12,0,15,8, - 0,7,24,0,7,24,0,7,176,0,3,176,0,3,224,0, - 1,224,0,1,224,0,0,192,0,0,192,0,1,128,0,1, - 128,0,99,0,0,227,0,0,230,0,0,252,0,0,112,0, - 0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=16 h=25 x= 3 y=11 dx=20 dy= 0 ascent=25 len=50 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24n[722] U8G_SECTION(".progmem.u8g_font_ncenR24n") = { - 0,39,50,250,245,24,0,0,0,0,42,57,0,25,250,24, - 0,12,14,28,17,2,11,6,0,6,0,6,0,198,112,230, - 112,127,224,31,128,31,0,127,192,230,112,198,112,6,0,6, - 0,6,0,16,17,34,20,2,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,255,255,255,255,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,5,10,10,9,2, - 250,112,248,248,120,24,24,48,96,224,128,8,3,3,11,1, - 7,255,255,255,4,4,4,9,2,0,96,240,240,96,10,25, - 50,9,255,0,0,192,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,48,0,48,0,48,0,96,0, - 96,0,96,0,192,0,16,24,48,18,2,0,3,192,15,240, - 28,56,24,24,56,28,120,30,112,14,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,112,14, - 120,30,56,28,24,24,28,56,15,240,3,192,13,24,48,18, - 3,0,3,0,7,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 255,248,15,24,48,18,1,0,7,224,31,248,56,28,96,30, - 112,14,120,14,120,14,120,14,48,30,0,28,0,28,0,56, - 0,120,0,112,0,224,1,192,3,128,7,2,14,2,28,6, - 56,6,127,254,255,254,255,254,15,24,48,18,1,0,7,224, - 31,248,56,56,112,28,120,28,120,28,48,28,0,28,0,56, - 0,112,1,224,15,240,0,248,0,60,0,28,0,30,96,14, - 240,14,240,14,240,30,224,28,120,124,63,240,15,192,16,24, - 48,18,1,0,0,48,0,48,0,112,0,240,1,240,1,240, - 3,112,6,112,6,112,12,112,24,112,24,112,48,112,96,112, - 96,112,192,112,255,255,255,255,0,112,0,112,0,112,0,112, - 0,248,3,254,14,24,48,18,2,0,56,8,63,248,63,240, - 63,224,48,0,48,0,32,0,96,0,99,192,111,240,124,120, - 112,56,96,60,0,28,0,28,0,28,96,28,240,28,240,28, - 240,60,224,56,112,120,127,240,31,128,15,24,48,18,1,0, - 3,240,15,252,28,62,56,30,56,30,48,12,112,0,112,0, - 112,0,241,224,247,248,254,60,252,28,248,30,240,14,240,14, - 240,14,112,14,112,14,112,30,56,28,56,60,31,240,7,192, - 13,24,48,18,3,0,255,248,255,248,255,248,192,16,192,48, - 128,32,128,96,128,64,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,7,0,7,0,7,0,15,0,15,0, - 15,0,15,0,6,0,15,24,48,18,1,0,7,224,31,248, - 60,56,56,28,112,28,112,12,112,12,120,24,60,56,63,112, - 31,224,7,240,7,248,29,252,56,124,112,30,112,30,224,14, - 224,14,224,14,112,28,120,60,63,248,15,224,15,24,48,18, - 1,0,15,192,63,240,120,120,112,56,240,60,224,28,224,28, - 224,30,224,30,240,30,240,62,120,126,120,126,63,222,31,158, - 0,30,0,28,0,28,96,56,240,56,240,112,241,224,127,192, - 63,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=31 x= 9 y=17 dx=31 dy= 0 ascent=27 len=100 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24r[5367] U8G_SECTION(".progmem.u8g_font_ncenR24r") = { - 0,39,50,250,245,25,5,159,15,28,32,127,249,27,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w=11 h= 9 x= 1 y= 4 dx=12 dy= 0 ascent= 9 len=10 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01[1535] U8G_SECTION(".progmem.u8g_font_orgv01") = { - 1,11,11,0,254,5,0,249,1,238,32,255,255,9,254,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,20,36,128,0,128,128,2,85,101,32,248,160,248,32,2, - 85,101,64,224,64,72,120,2,85,101,136,112,80,112,136,2, - 85,101,136,248,32,112,32,2,21,37,128,128,0,128,128,2, - 86,102,248,128,248,248,8,248,4,81,97,248,18,85,117,248, - 168,200,168,248,2,181,202,251,224,138,0,251,224,136,32,139, - 224,19,83,115,72,144,72,3,66,82,240,16,255,2,85,101, - 248,248,200,200,248,6,81,97,248,2,0,112,2,0,112,2, - 0,112,2,0,112,2,0,112,2,0,112,2,0,112,2,0, - 112,2,0,112,2,0,112,2,0,112,4,83,99,144,72,144, - 2,0,112,2,0,112,2,0,112,18,85,117,32,0,224,128, - 248,2,88,104,64,32,0,248,136,248,136,136,2,88,104,16, - 32,0,248,136,248,136,136,2,88,104,32,80,0,248,136,248, - 136,136,2,89,105,8,248,128,0,248,136,248,136,136,2,87, - 103,80,0,248,136,248,136,136,2,87,103,32,0,248,136,248, - 136,136,2,85,101,248,160,248,160,184,0,87,103,248,128,128, - 128,248,16,48,2,88,104,64,32,0,248,128,248,128,248,2, - 88,104,16,32,0,248,128,248,128,248,2,88,104,32,80,0, - 248,128,248,128,248,2,86,102,80,248,128,248,128,248,2,88, - 104,64,32,0,248,32,32,32,248,2,88,104,16,32,0,248, - 32,32,32,248,2,88,104,32,80,0,248,32,32,32,248,2, - 87,103,80,0,248,32,32,32,248,2,85,101,240,136,232,136, - 240,2,89,105,8,248,128,0,248,136,136,136,136,2,88,104, - 64,32,0,248,136,136,136,248,2,88,104,16,32,0,248,136, - 136,136,248,2,88,104,32,80,0,248,136,136,136,248,2,89, - 105,8,248,128,0,248,136,136,136,248,2,87,103,80,0,248, - 136,136,136,248,3,51,67,160,64,160,2,85,101,248,152,168, - 200,248,2,87,103,64,32,136,136,136,136,248,2,87,103,16, - 32,136,136,136,136,248,2,86,102,32,80,136,136,136,248,2, - 86,102,80,0,136,136,136,248,2,88,104,16,32,0,136,136, - 80,32,32,18,85,117,128,240,136,240,128,1,86,102,240,136, - 176,136,176,128,2,68,84,240,16,240,240,2,71,87,64,32, - 0,240,16,240,240,2,71,87,32,64,0,240,16,240,240,2, - 71,87,96,144,0,240,16,240,240,2,70,86,144,0,240,16, - 240,240,2,70,86,32,0,240,16,240,240,2,116,132,254,30, - 240,254,0,70,86,240,128,128,240,32,96,2,71,87,64,32, - 0,240,240,128,240,2,71,87,32,64,0,240,240,128,240,2, - 71,87,96,144,0,240,240,128,240,2,70,86,144,0,240,240, - 128,240,2,39,39,128,64,0,64,64,64,64,2,39,39,64, - 128,0,128,128,128,128,2,55,39,64,160,0,64,64,64,64, - 2,54,38,160,0,64,64,64,64,2,85,85,56,16,240,144, - 240,2,71,87,80,160,0,240,144,144,144,2,71,87,64,32, - 0,240,144,144,240,2,71,87,32,64,0,240,144,144,240,2, - 71,87,96,144,0,240,144,144,240,2,71,87,80,160,0,240, - 144,144,240,2,70,86,144,0,240,144,144,240,2,85,101,32, - 0,248,0,32,2,68,84,240,176,208,240,2,71,87,64,32, - 0,144,144,144,240,2,71,87,32,64,0,144,144,144,240,2, - 71,87,96,144,0,144,144,144,240,2,70,86,144,0,144,144, - 144,240,1,72,88,32,64,0,144,144,144,240,16,18,85,117, - 128,240,136,240,128,1,71,87,144,0,144,144,144,240,16}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01n[130] U8G_SECTION(".progmem.u8g_font_orgv01n") = { - 1,11,11,0,254,5,0,0,0,0,42,57,0,5,255,5, - 0,3,51,67,160,64,160,3,51,67,64,224,64,1,18,34, - 128,128,4,65,81,240,2,17,33,128,2,85,101,8,16,32, - 64,128,2,85,101,248,136,136,136,248,2,21,37,128,128,128, - 128,128,2,85,101,248,8,248,128,248,2,85,101,248,8,248, - 8,248,2,85,101,136,136,248,8,8,2,85,101,248,128,248, - 8,248,2,85,101,248,128,248,136,248,2,85,101,248,8,8, - 8,8,2,85,101,248,136,248,136,248,2,85,101,248,136,248, - 8,248}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01r[719] U8G_SECTION(".progmem.u8g_font_orgv01r") = { - 1,11,11,0,254,5,0,249,1,238,32,127,255,5,255,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=14 dx=27 dy= 0 ascent=24 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18[7637] U8G_SECTION(".progmem.u8g_font_osb18") = { - 0,70,31,234,249,18,4,190,10,54,32,255,250,24,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,7,0, - 0,4,18,18,6,1,250,96,240,240,96,0,0,64,96,96, - 96,96,96,240,240,240,240,240,96,9,18,36,15,3,253,4, - 0,4,0,4,0,30,0,53,0,117,128,231,128,231,128,228, - 0,228,0,228,0,228,0,100,128,116,128,31,0,4,0,4, - 0,4,0,16,18,36,19,2,0,0,248,1,132,3,6,7, - 14,7,14,7,0,7,0,63,0,7,240,7,128,3,128,3, - 128,3,128,3,1,123,2,143,204,135,252,120,240,12,12,24, - 14,1,3,132,16,223,176,112,224,96,96,192,48,192,48,192, - 48,192,48,64,96,96,96,127,224,207,48,14,18,36,14,0, - 0,254,124,56,16,60,16,60,32,30,32,30,64,14,64,15, - 128,7,128,127,240,7,0,127,240,7,0,7,0,7,0,7, - 0,7,0,31,224,2,22,22,8,3,252,192,192,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,192, - 192,11,23,46,15,1,251,15,0,48,128,96,192,97,192,97, - 192,112,128,124,0,63,0,223,128,143,192,129,224,192,96,248, - 32,126,32,63,64,15,128,3,192,49,192,112,192,112,192,96, - 128,33,128,30,0,8,3,3,12,2,14,231,231,231,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,33,201,0, - 67,56,128,70,24,128,142,8,64,142,8,64,142,0,64,142, - 0,64,142,8,64,142,8,64,70,8,128,67,16,128,33,225, - 0,16,2,0,12,12,0,3,240,0,7,9,9,10,1,9, - 120,204,204,60,76,204,206,126,254,7,10,10,12,3,1,32, - 100,68,204,204,204,204,196,100,34,13,7,14,15,1,4,255, - 248,255,248,0,24,0,24,0,24,0,24,0,24,6,3,3, - 8,1,5,252,252,252,18,18,54,20,1,0,3,240,0,12, - 12,0,16,2,0,47,225,0,71,48,128,71,56,128,135,56, - 64,135,48,64,135,192,64,135,48,64,135,56,64,135,56,64, - 71,58,128,71,58,128,47,157,0,16,2,0,12,12,0,3, - 240,0,7,2,2,11,2,14,254,254,8,7,7,14,3,11, - 60,102,131,129,129,194,126,21,18,54,23,1,254,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,0,0,255,255,248, - 255,255,248,7,11,11,11,2,7,124,206,206,238,28,48,98, - 66,254,190,8,8,11,11,12,2,7,60,198,231,231,6,56, - 6,103,231,199,60,4,4,4,11,5,13,48,112,96,192,13, - 18,36,15,1,250,97,128,225,192,225,192,225,192,225,192,225, - 192,225,192,64,136,64,136,65,248,127,120,94,48,64,0,96, - 0,96,0,112,0,112,0,112,0,13,21,42,15,1,253,31, - 248,126,96,126,96,254,96,254,96,254,96,254,96,126,96,62, - 96,14,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,4,4,4,8,2,6,96, - 240,240,96,5,5,5,11,3,250,32,96,24,24,240,6,11, - 11,11,3,7,48,240,112,112,112,112,112,112,112,112,252,7, - 9,9,9,1,9,56,68,198,198,198,198,68,56,254,7,10, - 10,13,3,1,152,140,68,102,102,102,102,70,76,136,18,18, - 54,22,3,0,48,8,0,240,8,0,112,16,0,112,48,0, - 112,32,0,112,96,0,112,64,0,112,195,0,112,135,0,113, - 143,0,253,15,0,3,23,0,2,39,0,4,39,0,12,63, - 192,8,7,0,24,7,0,16,31,192,18,18,54,23,3,0, - 48,4,0,240,8,0,112,24,0,112,16,0,112,48,0,112, - 32,0,112,96,0,112,79,0,112,147,192,113,177,192,253,57, - 192,3,3,128,2,6,0,6,8,0,4,16,64,8,63,192, - 24,47,192,16,39,128,20,18,54,23,2,0,124,2,0,199, - 6,0,231,4,0,6,12,0,56,8,0,6,16,0,7,16, - 0,231,33,192,231,97,192,198,67,192,60,133,192,0,133,192, - 1,9,192,1,9,192,2,31,240,6,1,192,4,1,192,8, - 7,240,8,18,18,12,2,250,48,120,120,48,56,68,68,4, - 8,24,48,114,97,225,225,225,114,60,17,23,69,19,1,1, - 7,0,0,7,0,0,1,128,0,0,128,0,0,0,0,0, - 192,0,0,192,0,1,192,0,1,224,0,1,224,0,3,224, - 0,2,240,0,2,240,0,4,240,0,4,120,0,4,120,0, - 8,56,0,15,252,0,8,60,0,16,28,0,16,30,0,48, - 30,0,252,255,128,17,23,69,19,1,1,0,56,0,0,48, - 0,0,96,0,0,192,0,0,0,0,0,192,0,0,192,0, - 0,192,0,1,224,0,1,224,0,1,224,0,2,240,0,2, - 240,0,4,112,0,4,120,0,4,120,0,8,56,0,15,252, - 0,8,60,0,16,28,0,16,30,0,48,30,0,252,127,128, - 17,23,69,19,1,0,0,192,0,1,192,0,3,96,0,6, - 24,0,0,0,0,0,192,0,0,192,0,0,192,0,1,224, - 0,1,224,0,1,224,0,2,240,0,2,240,0,4,112,0, - 4,120,0,4,120,0,8,56,0,15,252,0,8,60,0,16, - 28,0,16,30,0,48,30,0,252,127,128,17,23,69,19,1, - 0,1,8,0,7,240,0,4,240,0,0,0,0,0,0,0, - 0,192,0,0,192,0,1,192,0,1,224,0,1,224,0,3, - 224,0,2,240,0,2,240,0,4,240,0,4,120,0,4,120, - 0,8,56,0,15,252,0,8,60,0,16,28,0,16,30,0, - 48,30,0,252,255,128,16,23,46,18,1,0,14,112,14,112, - 14,112,0,0,0,0,1,128,1,128,1,128,3,192,3,192, - 3,192,5,224,5,224,4,224,8,240,8,240,8,112,31,248, - 16,120,16,60,48,60,48,60,252,255,18,23,69,19,1,0, - 1,224,0,2,16,0,2,16,0,1,224,0,0,0,0,0, - 192,0,0,192,0,0,224,0,1,224,0,1,224,0,1,240, - 0,2,240,0,2,240,0,4,120,0,4,120,0,4,120,0, - 8,60,0,15,252,0,8,28,0,16,30,0,16,30,0,48, - 30,0,252,127,192,23,18,54,25,1,0,0,127,254,0,60, - 14,0,60,6,0,124,6,0,92,2,0,220,34,0,156,32, - 1,156,96,1,28,96,3,31,224,2,28,96,6,28,34,7, - 252,34,8,28,2,8,28,2,24,28,6,56,28,14,254,127, - 254,13,24,48,17,2,250,7,136,24,120,48,56,112,24,112, - 24,240,8,240,8,240,8,240,0,240,0,240,0,240,8,240, - 8,112,8,112,8,56,16,24,32,7,192,2,0,3,128,0, - 192,0,192,8,192,7,128,14,23,46,18,2,1,28,0,12, - 0,6,0,1,0,0,0,255,252,56,28,56,12,56,12,56, - 4,56,68,56,64,56,192,56,192,63,192,56,192,56,68,56, - 68,56,4,56,4,56,12,56,28,255,252,14,23,46,18,2, - 1,0,224,0,192,1,128,2,0,0,0,255,252,56,28,56, - 12,56,12,56,4,56,68,56,64,56,192,56,192,63,192,56, - 192,56,68,56,68,56,4,56,4,56,12,56,28,255,252,14, - 23,46,18,2,0,3,0,7,128,12,192,16,32,0,0,255, - 252,56,28,56,12,56,12,56,4,56,68,56,64,56,192,56, - 192,63,192,56,192,56,68,56,68,56,4,56,4,56,12,56, - 28,255,252,14,23,46,18,2,0,28,224,28,224,28,224,0, - 0,0,0,255,252,56,28,56,12,56,12,56,4,56,68,56, - 64,56,192,56,192,63,192,56,192,56,68,56,68,56,4,56, - 12,56,12,56,28,255,252,8,23,23,11,2,1,192,96,48, - 16,0,255,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,255,8,23,23,11,2,1,7,14,8,16,0,255, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 255,8,23,23,11,2,0,16,56,108,130,0,255,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,255,8,23, - 23,11,2,0,231,231,231,0,0,255,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,255,16,18,36,19,2, - 0,255,224,56,56,56,28,56,14,56,14,56,14,56,15,56, - 15,255,15,56,15,56,15,56,15,56,14,56,14,56,12,56, - 28,56,56,255,224,17,23,69,18,1,0,3,136,0,3,240, - 0,4,96,0,0,0,0,0,0,0,252,63,128,60,14,0, - 62,4,0,31,4,0,31,4,0,23,132,0,23,196,0,19, - 196,0,17,228,0,17,244,0,16,244,0,16,124,0,16,124, - 0,16,60,0,16,28,0,16,28,0,56,12,0,254,4,0, - 15,24,48,18,2,0,12,0,12,0,14,0,3,0,1,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,24,48,18,2,0,0,96,0,96, - 0,224,1,128,1,0,0,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,24,48,18, - 2,0,1,0,3,128,7,128,14,192,24,48,0,0,7,192, - 8,32,56,48,48,24,112,28,112,28,240,30,240,30,240,30, - 240,30,240,30,240,30,112,28,112,28,48,24,48,56,8,32, - 7,192,15,23,46,18,2,0,7,32,15,224,16,192,0,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,23,46,18,2,0,28,224,28,224, - 28,224,0,0,0,0,7,192,8,32,56,48,48,24,112,28, - 112,28,240,30,240,30,240,30,240,30,240,30,240,30,112,28, - 112,28,48,24,48,56,8,32,7,192,16,15,30,24,4,0, - 192,3,96,6,48,12,24,24,12,48,6,96,3,192,1,128, - 3,192,6,96,12,48,56,24,112,12,224,6,192,3,15,18, - 36,18,2,0,7,194,8,116,48,60,48,56,112,60,112,124, - 240,94,240,222,241,158,243,30,246,30,244,30,124,28,120,28, - 56,24,120,24,92,32,135,192,18,24,72,20,2,0,6,0, - 0,7,0,0,3,0,0,1,128,0,0,0,0,0,0,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,18,24,72,20,2,0,0,24,0,0, - 56,0,0,112,0,0,192,0,0,128,0,0,0,0,255,31, - 192,56,7,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,24,2,0,28,4,0,14,8, - 0,3,240,0,18,24,72,20,2,0,0,128,0,1,192,0, - 1,224,0,6,48,0,8,8,0,0,0,0,255,31,192,56, - 7,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,24,2,0,28,4,0,14,8,0,3, - 240,0,18,23,69,20,2,0,7,56,0,7,56,0,7,56, - 0,0,0,0,0,0,0,255,31,192,56,7,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,24,2,0,28,4,0,14,8,0,3,240,0,16,23,46, - 19,2,1,0,112,0,96,0,192,1,0,0,0,254,127,60, - 12,60,8,30,16,30,16,30,16,15,32,15,32,7,64,7, - 192,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 240,15,18,36,18,2,0,255,128,56,0,56,0,63,224,56, - 56,56,28,56,30,56,30,56,30,56,30,56,28,56,56,63, - 224,56,0,56,0,56,0,56,0,255,128,12,18,36,13,0, - 0,7,128,12,192,24,224,56,224,56,224,56,224,56,192,59, - 0,56,192,56,96,56,112,56,112,56,112,56,112,56,112,63, - 112,63,96,251,192,11,18,36,13,1,0,32,0,48,0,48, - 0,24,0,4,0,0,0,30,0,99,0,99,128,115,128,7, - 128,27,128,115,128,227,128,227,160,227,160,247,160,121,192,11, - 18,36,13,1,0,3,0,3,0,6,0,4,0,8,0,0, - 0,30,0,99,0,99,128,115,128,35,128,31,128,115,128,227, - 128,227,160,227,160,247,160,121,192,11,18,36,13,1,0,12, - 0,12,0,30,0,50,0,65,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,17,34,13,1,0,57,0,127,0,70,0,0, - 0,0,0,30,0,99,0,99,128,115,128,35,128,31,128,115, - 128,227,128,227,160,227,160,247,160,121,192,11,17,34,13,1, - 0,119,0,119,0,119,0,0,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,18,36,13,1,0,28,0,38,0,34,0,34, - 0,28,0,0,0,30,0,99,0,99,128,115,128,35,128,31, - 128,115,128,227,128,227,160,227,160,231,160,121,192,15,12,24, - 18,1,0,62,248,99,140,99,142,115,142,7,142,27,254,115, - 128,227,128,227,130,227,130,247,196,120,120,9,18,36,12,1, - 250,30,0,49,0,113,128,227,128,227,128,224,0,224,0,224, - 0,224,128,112,128,49,0,30,0,8,0,8,0,6,0,6, - 0,6,0,28,0,9,18,36,12,1,0,32,0,112,0,48, - 0,24,0,4,0,0,0,30,0,51,0,99,128,227,128,227, - 128,255,128,224,0,224,0,224,128,112,128,49,0,30,0,9, - 18,36,12,1,0,3,0,7,0,6,0,12,0,8,0,0, - 0,30,0,51,0,99,128,227,128,227,128,255,128,224,0,224, - 0,224,128,112,128,49,0,30,0,9,18,36,12,1,0,12, - 0,28,0,28,0,50,0,65,0,0,0,30,0,51,0,99, - 128,227,128,227,128,255,128,224,0,224,0,224,128,112,128,49, - 0,30,0,9,17,34,12,1,0,115,128,115,128,115,128,0, - 0,0,0,30,0,51,0,99,128,227,128,227,128,255,128,224, - 0,224,0,224,0,112,128,49,0,30,0,7,18,18,8,1, - 0,192,224,112,16,8,0,120,56,56,56,56,56,56,56,56, - 56,56,126,6,18,18,8,1,0,12,28,24,48,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,7,18,18,7,0, - 0,56,56,108,198,0,0,120,56,56,56,56,56,56,56,56, - 56,56,126,7,17,17,8,1,0,238,238,238,0,0,120,56, - 56,56,56,56,56,56,56,56,56,126,10,18,36,12,1,0, - 57,128,30,0,14,0,31,0,39,0,3,128,31,128,51,192, - 97,192,225,192,225,192,225,192,225,192,225,192,225,192,97,128, - 51,128,30,0,11,17,34,13,1,0,24,128,63,128,39,0, - 0,0,0,0,243,128,125,192,121,192,113,192,113,192,113,192, - 113,192,113,192,113,192,113,192,113,192,251,224,10,18,36,12, - 1,0,48,0,48,0,24,0,12,0,4,0,0,0,30,0, - 51,0,97,128,225,192,225,192,225,192,225,192,225,192,225,192, - 97,128,51,0,30,0,10,18,36,12,1,0,3,0,3,0, - 7,0,4,0,8,0,0,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 10,18,36,12,1,0,12,0,14,0,30,0,51,0,96,128, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,10,17,34,12,1,0, - 56,128,63,0,70,0,0,0,0,0,30,0,51,0,97,128, - 225,192,225,192,225,192,225,192,225,192,225,192,97,128,51,0, - 30,0,10,17,34,12,1,0,115,128,115,128,115,128,0,0, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,21,17,51,23,1,254, - 0,48,0,0,120,0,0,120,0,0,48,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,248,255,255,248,0,0, - 0,0,0,0,0,0,0,0,48,0,0,120,0,0,120,0, - 0,48,0,10,12,24,12,1,0,30,64,51,128,97,128,225, - 192,227,192,229,192,233,192,241,192,241,192,97,128,115,0,158, - 0,12,18,36,13,0,0,24,0,24,0,12,0,6,0,2, - 0,0,0,249,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,224,57,224,58,224,28,240,12,18,36,13,0, - 0,1,128,1,128,3,0,2,0,0,0,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,18,36,13,0,0,6,0,6,0,15, - 0,25,128,0,0,0,0,249,224,56,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,57,224,58,224,28,240,12, - 17,34,13,0,0,57,192,57,192,57,192,0,0,0,0,249, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,57,224,58,224,28,240,12,24,48,12,0,250,1,128,1, - 128,3,0,6,0,4,0,0,0,252,240,112,64,56,64,56, - 128,28,128,28,128,29,0,15,0,15,0,7,0,6,0,6, - 0,2,0,4,0,116,0,116,0,104,0,56,0,12,23,46, - 13,0,250,24,0,120,0,184,0,56,0,56,0,57,224,58, - 240,60,112,60,112,56,112,56,96,56,224,56,192,56,128,57, - 0,58,0,60,0,56,0,56,0,56,0,56,0,96,0,128, - 0,13,23,46,13,0,250,28,224,28,224,28,224,0,0,0, - 0,254,120,56,32,60,64,28,64,30,64,14,64,14,128,7, - 128,7,128,7,0,3,0,3,0,2,0,2,0,58,0,60, - 0,52,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=21 h=23 x= 3 y= 8 dx=23 dy= 0 ascent=18 len=63 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18n[600] U8G_SECTION(".progmem.u8g_font_osb18n") = { - 0,70,31,234,249,18,0,0,0,0,42,57,0,18,251,18, - 0,9,10,20,13,2,8,24,0,24,0,201,128,235,128,28, - 0,44,0,235,128,217,128,24,0,24,0,21,21,63,23,1, - 253,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 4,9,9,7,2,251,224,240,240,240,16,32,32,64,128,6, - 3,3,8,1,5,252,252,252,4,4,4,8,2,0,96,240, - 240,96,9,23,46,11,1,251,1,128,1,128,1,0,3,0, - 3,0,2,0,6,0,6,0,4,0,12,0,12,0,8,0, - 24,0,24,0,24,0,16,0,48,0,48,0,32,0,96,0, - 96,0,64,0,192,0,12,18,36,15,1,0,15,0,25,128, - 48,192,112,224,112,224,240,224,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,48,192,25,128,15,0, - 8,18,18,15,3,0,24,56,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,255,11,18,36,15,2,0,31,0, - 113,192,96,224,224,224,240,224,248,224,121,192,1,192,3,0, - 6,0,8,0,48,32,64,32,64,32,255,224,191,224,143,192, - 135,128,12,18,36,15,1,0,31,0,49,192,96,224,112,224, - 120,224,120,224,0,192,1,128,62,0,1,192,0,224,0,240, - 112,240,248,240,240,240,192,224,65,192,63,0,11,18,36,15, - 2,0,3,0,7,0,7,0,15,0,15,0,23,0,55,0, - 39,0,103,0,71,0,199,0,135,0,255,224,7,0,7,0, - 7,0,7,0,63,224,11,18,36,15,2,0,65,128,127,128, - 126,0,120,0,64,0,64,0,95,0,99,128,65,192,65,224, - 1,224,33,224,241,224,241,224,225,192,193,192,67,128,62,0, - 11,18,36,15,2,0,7,128,24,64,48,224,113,224,113,224, - 240,0,240,0,247,128,249,192,240,224,240,224,240,224,240,224, - 112,224,112,224,48,192,57,192,15,0,11,18,36,15,2,0, - 156,64,190,96,255,32,255,224,128,32,128,64,128,64,0,128, - 1,128,3,0,7,0,6,0,14,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,15,1,0,31,128,32,64,64,32, - 192,32,192,32,240,32,252,64,127,128,127,192,63,224,103,240, - 193,240,192,112,192,48,192,48,96,32,112,64,31,128,12,18, - 36,15,2,0,31,0,113,128,96,192,224,224,224,224,224,240, - 224,240,96,240,113,240,30,240,0,240,0,240,56,224,120,224, - 120,224,97,192,33,128,30,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=27 dy= 0 ascent=20 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18r[3611] U8G_SECTION(".progmem.u8g_font_osb18r") = { - 0,70,31,234,249,18,4,190,10,54,32,127,250,20,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 5 y=17 dx=31 dy= 0 ascent=28 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21[9612] U8G_SECTION(".progmem.u8g_font_osb21") = { - 0,77,36,232,248,21,5,141,12,241,32,255,249,28,248,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,240,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,8,0,0,5, - 21,21,9,2,249,112,248,248,112,0,0,32,32,32,32,32, - 112,112,112,112,248,248,248,248,248,112,10,21,42,16,3,253, - 2,0,2,0,2,0,15,0,26,128,50,192,114,192,243,192, - 243,192,242,0,242,0,242,0,242,0,242,64,114,64,50,64, - 30,128,15,0,2,0,2,0,2,0,17,21,63,20,2,1, - 0,254,0,1,131,0,3,131,0,3,135,128,7,135,128,7, - 135,0,7,128,0,7,128,0,7,128,0,31,128,0,39,248, - 0,7,128,0,7,192,0,3,192,0,3,128,0,3,128,0, - 3,128,128,123,1,128,143,135,0,135,254,0,121,252,0,13, - 13,26,17,2,3,207,152,255,248,112,112,96,48,192,24,192, - 24,192,24,192,24,192,24,96,48,112,112,255,248,207,152,15, - 21,42,16,1,0,254,126,124,24,124,24,60,16,60,16,30, - 32,30,32,30,64,15,64,15,128,7,128,127,248,7,128,127, - 248,7,128,7,128,7,128,7,128,7,128,7,128,63,240,2, - 26,26,8,3,251,192,192,192,192,192,192,192,192,192,192,0, - 0,0,0,0,0,192,192,192,192,192,192,192,192,192,192,13, - 27,54,18,1,250,15,128,16,64,32,96,96,224,97,224,97, - 224,112,128,124,0,63,0,95,192,79,240,195,240,192,248,224, - 56,248,24,126,16,127,144,31,224,7,224,1,224,48,224,120, - 96,120,96,112,96,96,192,48,128,31,0,9,4,8,13,2, - 16,99,0,247,128,247,128,99,0,20,21,63,22,1,1,3, - 252,0,12,3,0,16,0,128,32,0,64,32,244,64,65,140, - 32,67,132,32,131,132,16,135,132,16,135,132,16,135,128,16, - 135,128,16,135,128,16,135,130,16,67,132,32,67,132,32,33, - 136,64,32,240,64,16,0,128,12,3,0,3,252,0,8,11, - 11,10,1,10,56,76,108,108,60,204,205,205,118,0,255,7, - 11,11,13,3,2,34,68,196,204,204,204,204,204,68,98,34, - 14,8,16,16,1,4,255,252,255,252,0,12,0,12,0,12, - 0,12,0,12,0,12,7,3,3,11,2,6,254,254,254,20, - 21,63,22,1,1,3,252,0,12,3,0,16,0,128,32,0, - 64,47,248,64,67,206,32,67,206,32,131,207,16,131,206,16, - 131,206,16,131,240,16,131,204,16,131,206,16,131,206,16,67, - 206,160,67,206,160,35,206,192,47,231,64,16,0,128,12,3, - 0,3,252,0,7,2,2,13,3,17,254,254,9,10,20,17, - 4,12,8,0,62,0,119,0,193,128,193,128,193,128,193,128, - 99,0,127,0,28,0,24,22,66,26,1,254,0,24,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,255,255,255,255,255,255,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,0,0,0,0,0,255,255,255,255,255,255,9,12, - 24,13,2,9,62,0,71,0,199,128,231,0,111,0,12,0, - 24,0,33,0,65,128,255,0,159,0,142,0,10,13,26,13, - 2,8,62,0,67,0,195,128,227,128,99,128,3,0,60,0, - 7,0,3,128,243,192,227,128,199,128,62,0,5,5,5,12, - 5,16,24,56,112,96,192,14,22,44,17,2,248,96,192,224, - 224,241,224,241,224,225,224,225,224,224,224,224,224,96,192,64, - 196,64,196,65,252,127,124,78,56,64,0,64,0,96,0,224, - 0,240,0,240,0,112,0,96,0,13,25,50,17,2,252,31, - 248,126,96,254,96,254,96,254,96,254,96,254,96,254,96,254, - 96,126,96,62,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,4,4,4,8,2,7,96,240,240,96,5,6,6,13,4, - 249,32,64,48,24,24,240,7,12,12,13,3,9,28,252,60, - 60,60,60,60,60,60,60,60,254,8,11,11,11,2,10,60, - 102,230,231,231,231,230,102,60,0,255,7,11,11,13,3,2, - 136,68,102,102,102,102,102,102,68,140,136,22,21,63,26,3, - 0,12,1,128,28,1,0,252,3,0,60,2,0,60,6,0, - 60,12,0,60,12,0,60,24,0,60,16,0,60,48,112,60, - 32,240,60,97,240,254,65,240,0,194,240,0,130,240,1,132, - 240,3,8,240,3,15,252,6,0,240,4,0,240,12,3,248, - 21,22,66,26,3,0,0,1,128,28,1,0,252,3,0,60, - 2,0,60,6,0,60,4,0,60,12,0,60,24,0,60,24, - 0,60,51,224,60,36,112,60,108,120,60,78,120,254,206,120, - 0,134,112,1,128,192,1,1,0,3,2,8,2,4,8,6, - 15,248,4,11,240,12,8,224,22,21,63,25,2,0,62,0, - 128,67,1,128,195,129,0,227,131,0,99,130,0,3,6,0, - 60,4,0,7,8,0,3,152,0,243,208,112,227,176,112,199, - 160,240,62,97,240,0,65,240,0,194,240,0,130,240,1,132, - 240,1,7,252,3,0,240,2,0,240,6,3,252,9,22,44, - 13,2,249,24,0,60,0,60,0,60,0,24,0,0,0,28, - 0,34,0,34,0,34,0,6,0,12,0,28,0,56,0,112, - 0,113,0,240,128,240,128,240,128,240,128,113,0,62,0,19, - 27,81,22,2,1,3,0,0,3,128,0,1,128,0,0,192, - 0,0,64,0,0,0,0,0,64,0,0,96,0,0,224,0, - 0,224,0,0,240,0,1,240,0,1,240,0,1,248,0,2, - 120,0,2,120,0,2,124,0,4,60,0,4,60,0,4,62, - 0,15,254,0,8,30,0,8,31,0,16,15,0,16,15,0, - 48,15,128,254,127,224,19,27,81,21,2,1,0,24,0,0, - 56,0,0,48,0,0,96,0,0,64,0,0,0,0,0,64, - 0,0,96,0,0,224,0,0,224,0,0,240,0,1,240,0, - 1,240,0,1,248,0,2,120,0,2,120,0,2,124,0,4, - 60,0,4,60,0,8,60,0,15,254,0,8,30,0,16,30, - 0,16,15,0,16,15,0,48,15,128,254,127,224,19,27,81, - 22,2,0,0,64,0,0,224,0,1,240,0,3,24,0,4, - 4,0,0,0,0,0,64,0,0,96,0,0,224,0,0,224, - 0,0,240,0,1,240,0,1,240,0,1,248,0,2,120,0, - 2,120,0,2,124,0,4,60,0,4,60,0,4,62,0,15, - 254,0,8,30,0,8,31,0,16,15,0,16,15,0,48,15, - 128,254,127,224,19,27,81,21,2,0,0,4,0,1,200,0, - 3,248,0,4,112,0,0,0,0,0,0,0,0,64,0,0, - 96,0,0,224,0,0,224,0,0,240,0,1,240,0,1,240, - 0,1,248,0,2,120,0,2,120,0,2,124,0,4,60,0, - 4,60,0,4,60,0,15,254,0,8,30,0,24,30,0,16, - 15,0,16,15,0,48,15,128,254,127,224,19,27,81,22,2, - 0,3,12,0,7,158,0,7,158,0,3,12,0,0,0,0, - 0,0,0,0,96,0,0,96,0,0,224,0,0,240,0,0, - 240,0,1,240,0,1,248,0,1,120,0,2,120,0,2,124, - 0,2,60,0,4,60,0,4,62,0,4,30,0,15,254,0, - 8,31,0,8,15,0,16,15,0,16,15,0,48,15,128,254, - 127,224,19,27,81,21,1,0,0,240,0,1,8,0,1,8, - 0,1,8,0,0,240,0,0,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 120,0,1,120,0,2,124,0,2,60,0,2,60,0,4,62, - 0,4,30,0,7,254,0,8,31,0,8,15,0,8,15,0, - 24,15,0,24,15,128,254,63,224,26,21,84,28,0,0,0, - 63,255,192,0,15,131,192,0,15,129,192,0,31,128,192,0, - 23,128,192,0,55,128,64,0,39,132,64,0,103,132,0,0, - 71,140,0,0,199,156,0,0,135,252,0,1,135,156,0,1, - 7,140,0,3,7,132,64,3,255,132,64,6,7,128,64,4, - 7,128,64,12,7,128,192,12,7,129,192,28,7,131,192,255, - 63,255,192,15,28,56,18,2,250,15,230,28,30,56,30,56, - 14,120,14,120,6,248,6,248,6,248,2,248,0,248,0,248, - 0,248,0,248,2,120,2,120,2,120,4,56,4,60,12,28, - 8,6,48,1,192,1,0,1,192,0,96,0,96,4,96,3, - 192,16,27,54,19,1,1,6,0,7,0,3,0,1,128,0, - 0,0,0,255,255,30,15,30,7,30,3,30,3,30,1,30, - 17,30,16,30,48,30,48,31,240,30,48,30,48,30,17,30, - 17,30,1,30,1,30,3,30,7,30,15,255,255,16,27,54, - 19,1,1,0,56,0,120,0,96,0,192,0,0,0,0,255, - 255,30,15,30,7,30,3,30,3,30,1,30,17,30,16,30, - 48,30,48,31,240,30,48,30,48,30,17,30,17,30,1,30, - 1,30,3,30,7,30,15,255,255,16,27,54,19,1,0,0, - 128,1,192,3,96,6,56,8,0,0,0,255,255,30,15,30, - 7,30,3,30,3,30,1,30,17,30,16,30,48,30,48,31, - 240,30,48,30,48,30,17,30,17,30,1,30,1,30,3,30, - 7,30,15,255,255,16,27,54,19,1,0,6,24,15,60,15, - 60,6,24,0,0,0,0,255,255,30,15,30,7,30,3,30, - 3,30,1,30,17,30,16,30,48,30,48,31,240,30,48,30, - 48,30,17,30,17,30,1,30,1,30,3,30,7,30,15,255, - 255,9,27,54,11,1,1,96,0,112,0,56,0,8,0,0, - 0,0,0,255,128,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,255,128,10,27,54, - 12,1,1,3,128,3,128,6,0,12,0,8,0,0,0,255, - 192,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,255,192,9,27,54,11,1,0,12, - 0,28,0,62,0,99,0,0,128,0,0,255,128,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,255,128,10,27,54,13,2,0,97,128,243,192,243, - 192,97,128,0,0,0,0,255,192,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,255, - 192,19,21,63,22,2,0,255,248,0,30,14,0,30,7,0, - 30,3,128,30,3,192,30,3,192,30,3,192,30,3,224,30, - 3,224,30,3,224,255,131,224,30,3,224,30,3,224,30,3, - 224,30,3,192,30,3,192,30,3,128,30,3,128,30,7,0, - 30,14,0,255,248,0,21,26,78,22,1,1,0,226,0,1, - 254,0,2,28,0,0,0,0,0,0,0,254,15,248,31,1, - 192,31,0,128,15,128,128,15,192,128,15,192,128,11,224,128, - 11,240,128,9,248,128,8,248,128,8,252,128,8,126,128,8, - 62,128,8,31,128,8,31,128,8,15,128,8,7,128,8,7, - 128,8,3,128,28,1,128,255,129,128,17,27,81,20,2,1, - 14,0,0,7,0,0,3,0,0,1,128,0,0,0,0,0, - 128,0,7,112,0,12,24,0,24,12,0,56,14,0,120,14, - 0,120,15,0,120,15,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,120,15,0,120, - 15,0,120,15,0,56,14,0,24,12,0,12,24,0,7,112, - 0,17,27,81,20,2,1,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,128,0,7,112,0,12,24,0,24, - 12,0,56,14,0,120,14,0,120,15,0,120,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,120,15,0,120,15,0,120,15,0,56,14,0,24, - 12,0,12,24,0,7,112,0,17,27,81,20,2,0,0,128, - 0,1,192,0,3,96,0,6,48,0,8,8,0,0,128,0, - 7,112,0,12,24,0,24,12,0,56,14,0,120,14,0,120, - 15,0,120,15,0,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,56,14,0,24,12,0,12,24,0,7,112,0,17, - 27,81,20,2,0,0,8,0,7,136,0,7,240,0,8,224, - 0,0,0,0,0,128,0,7,112,0,12,24,0,24,12,0, - 56,14,0,120,14,0,120,15,0,120,15,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,120,15,0,120,15,0,120,15,0,56,14,0,24,12,0, - 12,24,0,7,112,0,17,27,81,20,2,0,12,48,0,30, - 120,0,30,120,0,12,48,0,0,0,0,0,128,0,7,112, - 0,12,24,0,24,12,0,56,14,0,120,14,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,120,15,0,120,15,0,120,15, - 0,56,14,0,24,12,0,12,24,0,7,112,0,18,19,57, - 26,4,254,64,0,64,224,0,192,112,1,128,56,3,0,28, - 6,0,14,12,0,7,24,0,3,176,0,1,224,0,0,224, - 0,1,240,0,3,56,0,6,28,0,12,12,0,24,6,0, - 48,3,0,112,1,128,224,0,192,64,0,0,17,22,66,20, - 2,0,0,128,0,7,113,128,12,27,0,24,14,0,56,14, - 0,56,14,0,120,31,0,120,31,0,248,47,128,248,111,128, - 248,79,128,248,143,128,249,15,128,251,15,128,250,15,128,124, - 15,0,124,15,0,120,14,0,56,14,0,56,12,0,108,24, - 0,199,112,0,19,27,81,22,2,1,7,0,0,3,128,0, - 1,128,0,0,192,0,0,0,0,0,0,0,255,15,224,60, - 3,128,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,28, - 1,0,28,2,0,14,4,0,7,248,0,19,27,81,22,2, - 1,0,28,0,0,56,0,0,48,0,0,96,0,0,0,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,28,1,0,28,2,0,14,4,0,7, - 248,0,19,27,81,22,2,0,0,192,0,0,224,0,1,240, - 0,6,24,0,0,4,0,0,0,0,255,15,224,60,3,128, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,28,3,0, - 28,2,0,14,4,0,7,248,0,19,27,81,22,2,0,3, - 12,0,7,158,0,7,158,0,3,12,0,0,0,0,0,0, - 0,255,143,224,60,3,128,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,28,1,0,28,2,0,14,4,0,7,248,0, - 19,27,81,21,2,1,0,28,0,0,60,0,0,48,0,0, - 96,0,0,0,0,0,0,0,255,31,224,62,7,0,30,6, - 0,30,6,0,31,4,0,15,4,0,15,136,0,7,136,0, - 7,144,0,7,208,0,3,240,0,3,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,7,248,0,17,21,63,19,1,0,255,192,0, - 30,0,0,30,0,0,30,0,0,31,248,0,30,14,0,30, - 15,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 128,30,15,0,30,14,0,31,248,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,192,0,14,21,42,16, - 1,0,7,192,12,96,28,112,28,112,60,112,60,112,60,112, - 60,96,61,128,60,96,60,48,60,56,60,56,60,56,60,60, - 60,60,60,56,63,184,63,184,63,48,253,224,12,21,42,14, - 1,0,96,0,112,0,56,0,24,0,12,0,4,0,0,0, - 30,0,99,128,99,192,243,192,115,192,7,192,27,192,115,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,1,128,3,128,3,0,6,0,12,0,8,0,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,12,0,12,0,30,0,19,0,33,128,64,128,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,20,40,14, - 1,0,56,128,127,128,71,0,0,0,0,0,0,0,30,0, - 99,128,99,192,243,192,115,192,3,192,31,192,51,192,115,192, - 243,192,243,208,243,208,245,208,121,224,12,20,40,14,1,0, - 97,128,243,192,243,192,97,128,0,0,0,0,30,0,99,128, - 99,192,243,192,115,192,35,192,15,192,51,192,115,192,243,192, - 243,208,243,208,243,208,125,224,12,21,42,14,1,1,30,0, - 33,0,33,0,33,0,50,0,12,0,0,0,31,0,99,128, - 97,192,241,192,113,192,33,192,15,192,49,192,97,192,225,192, - 225,208,225,208,227,208,124,224,17,14,42,19,1,0,62,60, - 0,99,230,0,99,199,0,243,199,128,115,199,128,7,199,128, - 27,255,128,115,192,0,115,192,0,243,192,128,243,192,128,243, - 225,0,242,225,0,124,62,0,10,21,42,13,1,249,15,0, - 56,128,112,192,113,192,243,192,243,128,240,0,240,0,240,0, - 240,0,112,64,112,64,56,128,31,0,4,0,8,0,6,0, - 3,0,3,0,3,0,30,0,11,21,42,13,1,0,48,0, - 48,0,56,0,24,0,12,0,0,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,1,128, - 3,128,3,128,6,0,4,0,8,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,12,0, - 14,0,30,0,27,0,49,128,64,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,20,40,13,1,0,49,128, - 123,192,123,192,49,128,0,0,0,0,15,0,51,128,113,192, - 113,192,241,192,241,224,255,224,240,0,240,0,240,32,112,64, - 112,64,56,128,15,0,7,21,21,9,1,0,192,224,112,48, - 24,8,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,6,21,21,9,2,0,12,12,28,56,32,0,0,248,120, - 120,120,120,120,120,120,120,120,120,120,120,252,8,21,21,8, - 1,0,56,56,124,110,131,0,0,252,60,60,60,60,60,60, - 60,60,60,60,60,60,254,8,20,20,9,1,0,102,255,255, - 102,0,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,12,21,42,14,1,0,60,64,31,128,15,0,15,0,55, - 128,3,128,3,192,31,192,49,224,113,224,112,224,240,224,240, - 240,240,240,240,240,240,224,240,224,112,224,113,192,49,192,15, - 0,13,19,38,16,2,1,30,64,63,192,35,128,0,0,0, - 0,251,192,124,224,120,224,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,253,248,12,21,42, - 14,1,0,48,0,56,0,56,0,12,0,6,0,2,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,1,128,1,192,3,128,3,0,6,0,4,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,6,0,14,0,15,0,27,0,48,128,32,64,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,20,40, - 14,1,0,28,64,63,192,71,128,0,0,0,0,0,0,15, - 0,49,128,112,192,112,224,240,224,240,224,240,240,240,240,240, - 224,240,224,112,224,112,192,49,128,15,0,12,20,40,14,1, - 0,49,128,123,192,123,192,49,128,0,0,0,0,15,0,49, - 128,112,192,112,224,240,224,240,224,240,240,240,240,240,224,240, - 224,112,224,112,192,49,128,15,0,24,19,57,26,1,254,0, - 24,0,0,60,0,0,60,0,0,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,0,0,0,24,0,0,60,0,0, - 60,0,0,60,0,0,24,0,12,14,28,14,1,0,15,16, - 49,160,113,192,112,224,241,224,243,224,242,240,244,240,248,224, - 240,224,112,224,112,192,121,128,143,0,14,21,42,15,0,0, - 24,0,28,0,12,0,6,0,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,60,248,29,120,14,124,14,21,42,15,0,0, - 0,192,0,192,1,192,1,128,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,21,42,15,0,0, - 3,0,7,0,7,128,12,128,24,64,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,20,40,15,0,0, - 24,192,61,224,61,224,24,192,0,0,0,0,253,248,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,29,120,14,124,13,28,56,15,1,249,0,192, - 0,192,1,192,3,128,2,0,0,0,0,0,252,248,120,32, - 56,32,60,64,28,64,28,64,30,64,14,128,15,128,7,128, - 7,0,7,0,3,0,3,0,2,0,2,0,50,0,124,0, - 116,0,116,0,56,0,13,26,52,15,1,250,28,0,124,0, - 188,0,60,0,60,0,60,0,60,240,63,120,60,120,60,120, - 60,120,60,120,60,112,60,112,60,96,60,192,60,128,61,0, - 62,0,60,0,60,0,60,0,60,0,60,0,48,0,192,0, - 13,27,54,15,1,249,24,96,60,240,60,240,24,96,0,0, - 0,0,254,120,120,48,56,32,60,32,28,32,30,64,30,64, - 14,64,15,128,7,128,7,128,7,0,3,0,3,0,1,0, - 2,0,50,0,122,0,116,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=27 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21n[703] U8G_SECTION(".progmem.u8g_font_osb21n") = { - 0,77,36,232,248,21,0,0,0,0,42,57,0,22,250,21, - 0,11,12,24,14,2,9,14,0,14,0,78,192,228,224,245, - 192,14,0,14,0,245,192,228,192,78,192,14,0,14,0,24, - 25,75,26,1,252,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,255,255,255,255,255,255,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 5,10,10,7,1,251,112,248,248,248,120,8,16,16,32,192, - 7,3,3,11,2,6,254,254,254,4,4,4,8,2,0,96, - 240,240,96,9,27,54,13,2,250,1,128,1,128,1,128,3, - 0,3,0,3,0,2,0,6,0,6,0,6,0,12,0,12, - 0,12,0,24,0,24,0,24,0,16,0,48,0,48,0,48, - 0,96,0,96,0,96,0,192,0,192,0,192,0,128,0,14, - 21,42,16,1,1,15,192,24,96,56,112,56,112,120,120,120, - 120,248,120,248,124,248,124,248,124,248,124,248,124,248,124,248, - 124,248,120,120,120,120,120,56,112,56,112,24,96,15,192,9, - 21,42,16,3,0,6,0,14,0,30,0,254,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,255,128,12, - 21,42,16,2,1,63,192,97,224,96,224,224,240,224,240,240, - 240,248,240,121,224,49,224,3,192,7,128,14,0,28,0,48, - 16,96,16,64,16,192,16,255,240,255,224,143,224,135,192,13, - 21,42,16,2,1,63,192,96,224,96,224,224,240,240,240,248, - 240,120,240,112,240,0,224,1,192,31,0,0,224,0,240,0, - 112,112,120,248,120,248,120,240,120,224,112,96,240,59,192,13, - 21,42,16,1,0,1,192,1,192,3,192,3,192,7,192,7, - 192,15,192,27,192,27,192,51,192,35,192,99,192,67,192,195, - 192,255,248,3,192,3,192,3,192,3,192,3,192,31,248,13, - 21,42,16,2,0,96,224,127,192,127,128,127,0,120,0,64, - 0,64,0,64,0,79,0,113,224,64,240,64,240,0,248,0, - 248,112,248,248,248,248,248,240,240,224,240,97,224,59,192,13, - 21,42,16,2,1,15,224,24,32,56,48,48,240,112,240,112, - 240,240,96,240,0,240,0,247,128,248,224,240,112,240,112,240, - 112,240,120,112,120,112,112,112,112,48,112,56,96,13,192,11, - 21,42,16,3,0,156,64,190,96,255,32,255,32,199,224,129, - 160,128,64,128,64,0,128,0,128,1,0,3,0,7,0,6, - 0,14,0,14,0,30,0,30,0,30,0,30,0,30,0,14, - 21,42,16,2,1,31,192,48,32,96,48,96,16,224,16,240, - 16,248,32,254,32,127,192,63,192,31,240,31,248,99,248,64, - 248,192,60,192,24,192,24,192,24,96,16,112,48,31,192,13, - 21,42,16,2,1,31,128,48,192,112,96,112,112,240,112,240, - 112,240,120,240,120,240,120,112,120,112,120,56,248,15,120,0, - 120,0,120,56,112,120,112,120,96,112,224,96,192,63,128}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 3 y=16 dx=31 dy= 0 ascent=23 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21r[4521] U8G_SECTION(".progmem.u8g_font_osb21r") = { - 0,77,36,232,248,21,5,141,12,241,32,127,249,23,249,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,240,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 6 y=20 dx=36 dy= 0 ascent=34 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =34 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26[12640] U8G_SECTION(".progmem.u8g_font_osb26") = { - 0,95,44,227,246,26,7,105,16,163,32,255,248,34,246,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,10,0,0,6,26,26,10,2,248,120,252,252,252,120,0, - 0,0,32,48,48,48,48,48,48,120,120,120,120,252,252,252, - 252,252,252,120,13,25,50,19,3,252,1,0,1,0,1,0, - 1,0,15,192,29,32,57,48,121,112,121,112,249,112,241,96, - 241,0,241,0,241,0,241,0,241,8,121,16,121,16,57,16, - 29,32,15,192,1,0,1,0,1,0,1,0,21,26,78,24, - 2,0,0,2,0,0,61,192,0,112,96,0,240,112,1,224, - 112,1,224,240,3,224,240,3,224,224,3,224,0,3,224,0, - 3,224,0,31,224,0,35,225,0,1,254,0,1,240,0,1, - 240,0,0,240,0,0,240,0,0,240,0,0,224,0,0,224, - 8,60,192,16,199,192,48,131,255,224,131,255,192,124,63,128, - 18,17,51,20,1,3,64,0,128,227,241,192,127,255,128,60, - 15,0,56,7,0,48,3,0,112,3,128,96,1,128,96,1, - 128,96,1,128,96,1,128,112,3,128,48,3,0,56,7,0, - 62,31,0,127,255,128,99,241,128,18,25,75,20,1,0,255, - 143,192,63,3,128,63,3,0,31,3,0,31,130,0,15,130, - 0,15,196,0,15,196,0,7,196,0,7,232,0,3,232,0, - 3,248,0,3,240,0,63,255,128,1,240,0,1,240,0,63, - 255,128,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,31,254,0,2,32,32,10,4,250, - 192,192,192,192,192,192,192,192,192,192,192,192,192,0,0,0, - 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 15,32,64,22,2,249,7,224,28,24,56,24,48,28,112,124, - 112,124,112,124,120,56,124,0,63,0,31,224,127,240,71,252, - 193,252,192,126,224,30,248,14,254,6,127,134,63,228,31,248, - 7,248,1,248,0,124,60,60,60,28,124,28,124,28,112,24, - 48,56,24,112,15,192,11,4,8,15,2,19,113,192,241,224, - 241,224,113,192,24,25,75,28,2,1,1,255,128,6,0,64, - 12,0,48,24,0,24,48,60,136,32,227,132,65,193,134,65, - 193,130,195,192,130,131,192,131,131,192,129,131,192,1,131,192, - 1,131,192,1,131,192,65,131,192,131,195,192,130,65,192,130, - 65,193,134,32,227,4,48,60,8,16,0,24,12,0,48,6, - 0,64,1,255,128,10,13,26,13,1,12,60,0,70,0,199, - 0,231,0,71,0,63,0,103,0,231,0,231,64,231,64,123, - 128,0,0,255,128,9,15,30,17,4,1,8,0,24,128,48, - 128,97,0,99,0,227,0,227,0,227,0,227,0,227,0,227, - 0,97,0,49,128,48,128,8,0,16,9,18,20,2,5,255, - 255,255,255,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,9,4,8,13,2,7,255,128,255,128,255,128,255,128,24, - 25,75,28,2,1,1,255,128,6,0,64,12,0,48,24,0, - 24,55,254,8,33,227,132,65,227,198,65,227,194,193,227,194, - 129,227,195,129,231,129,129,252,1,129,231,1,129,227,129,129, - 227,193,129,227,195,193,227,210,65,227,210,65,227,214,33,227, - 212,55,249,232,16,0,24,12,0,48,6,0,64,1,255,128, - 9,2,4,15,3,20,255,128,255,128,11,10,20,19,4,16, - 63,128,123,192,224,192,192,96,192,96,192,96,192,224,97,192, - 63,128,31,0,29,26,104,33,2,254,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,255,255,255,248,255,255,255,248,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,0,0,0,0,0,0,0,255,255,255,240,255,255, - 255,240,10,16,32,15,3,9,31,0,103,128,195,192,195,192, - 227,192,243,128,7,128,14,0,28,0,48,64,64,64,64,64, - 255,192,255,192,159,128,135,0,11,16,32,15,2,9,31,0, - 35,128,99,192,115,192,115,192,51,128,3,0,28,0,3,128, - 3,192,97,224,241,224,241,224,227,224,99,192,63,0,6,7, - 7,15,6,18,28,28,60,120,96,192,128,17,27,81,20,2, - 246,96,48,0,112,120,0,240,120,0,240,120,0,240,120,0, - 240,120,0,240,120,0,240,120,0,240,120,0,96,56,0,96, - 48,128,96,48,128,96,113,128,32,127,128,48,255,128,95,207, - 0,71,143,0,64,0,0,96,0,0,96,0,0,112,0,0, - 112,0,0,120,0,0,120,0,0,120,0,0,120,0,0,48, - 0,0,17,30,90,20,2,251,15,255,128,63,140,0,127,140, - 0,127,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 255,140,0,127,140,0,127,140,0,63,140,0,31,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,5,5,5,9,2,9,112,248,248,248,112,7,7,7, - 15,4,249,32,32,24,14,14,14,252,8,15,15,16,4,10, - 12,28,252,60,60,60,60,60,60,60,60,60,60,60,255,9, - 13,26,13,2,12,28,0,103,0,99,0,227,128,227,128,227, - 128,227,128,227,128,99,0,103,0,28,0,0,0,255,128,9, - 14,28,17,4,2,132,0,198,0,99,0,99,0,115,128,115, - 128,115,128,115,128,115,128,99,128,99,0,195,0,134,0,12, - 0,25,26,104,31,4,0,0,0,48,0,12,0,48,0,28, - 0,96,0,252,0,96,0,60,0,192,0,60,0,128,0,60, - 1,128,0,60,3,0,0,60,3,0,0,60,6,0,0,60, - 6,0,0,60,12,14,0,60,12,30,0,60,24,30,0,60, - 16,62,0,255,48,62,0,0,96,94,0,0,96,158,0,0, - 192,158,0,0,193,30,0,1,131,30,0,1,131,255,128,3, - 0,30,0,2,0,30,0,6,0,30,0,12,0,255,128,25, - 26,104,31,4,0,0,0,48,0,28,0,32,0,252,0,96, - 0,60,0,64,0,60,0,192,0,60,1,128,0,60,1,128, - 0,60,3,0,0,60,3,0,0,60,6,0,0,60,4,62, - 0,60,12,207,0,60,9,135,128,60,25,135,128,60,49,199, - 128,255,49,231,0,0,96,207,0,0,96,28,0,0,192,56, - 0,0,128,96,0,1,128,64,128,3,0,128,128,3,1,255, - 128,6,1,255,128,6,1,63,0,12,1,14,0,26,26,104, - 30,2,0,0,0,24,0,31,0,24,0,35,128,48,0,99, - 192,48,0,115,192,96,0,115,192,64,0,51,128,192,0,3, - 0,128,0,28,1,128,0,3,131,0,0,3,195,0,0,113, - 230,7,0,241,228,15,0,227,236,15,0,99,200,31,0,63, - 24,31,0,0,16,47,0,0,48,79,0,0,96,79,0,0, - 96,143,0,0,192,143,0,0,129,255,192,1,128,15,0,1, - 0,15,0,3,0,15,0,2,0,127,192,11,26,52,16,2, - 248,28,0,62,0,62,0,62,0,28,0,0,0,0,0,30, - 0,49,0,33,0,33,0,1,0,2,0,6,0,14,0,28, - 0,60,0,120,192,120,64,248,32,240,32,240,32,240,32,120, - 64,120,64,31,128,23,33,99,25,1,0,1,128,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,16,0,0,0,0, - 0,16,0,0,24,0,0,56,0,0,56,0,0,60,0,0, - 124,0,0,124,0,0,126,0,0,254,0,0,254,0,0,158, - 0,1,159,0,1,159,0,1,31,0,3,15,128,3,15,128, - 3,15,128,6,7,192,7,255,192,6,7,192,4,7,224,12, - 3,224,12,3,224,28,3,240,28,3,240,255,159,254,23,33, - 99,25,1,0,0,3,0,0,7,128,0,7,0,0,14,0, - 0,28,0,0,16,0,0,0,0,0,16,0,0,24,0,0, - 56,0,0,56,0,0,60,0,0,124,0,0,124,0,0,126, - 0,0,254,0,0,254,0,0,159,0,1,159,0,1,159,0, - 1,31,128,3,15,128,3,15,128,3,15,128,6,7,192,7, - 255,192,6,7,192,12,7,224,12,3,224,12,3,224,28,3, - 240,60,3,248,255,159,254,23,33,99,25,1,0,0,16,0, - 0,56,0,0,56,0,0,124,0,0,199,0,1,129,128,0, - 0,0,0,16,0,0,24,0,0,56,0,0,56,0,0,60, - 0,0,124,0,0,124,0,0,126,0,0,254,0,0,254,0, - 0,158,0,1,159,0,1,159,0,1,31,0,3,15,128,3, - 15,128,3,15,128,6,7,192,7,255,192,6,7,192,4,7, - 224,12,3,224,12,3,224,28,3,240,28,3,240,255,159,254, - 23,32,96,25,1,0,0,112,128,0,249,0,1,191,0,1, - 14,0,0,0,0,0,0,0,0,0,0,0,24,0,0,56, - 0,0,56,0,0,60,0,0,124,0,0,124,0,0,126,0, - 0,254,0,0,254,0,0,159,0,1,159,0,1,159,0,1, - 31,128,3,15,128,3,15,128,3,15,128,6,7,192,7,255, - 192,6,7,192,12,7,224,12,3,224,12,3,224,28,3,240, - 60,3,248,255,159,254,23,32,96,25,1,0,1,195,128,3, - 199,128,3,199,128,1,195,128,0,0,0,0,0,0,0,24, - 0,0,56,0,0,56,0,0,56,0,0,60,0,0,124,0, - 0,124,0,0,126,0,0,254,0,0,254,0,0,159,0,1, - 159,0,1,159,0,1,15,128,3,15,128,2,15,128,2,15, - 192,6,7,192,7,255,192,4,7,192,4,3,224,8,3,224, - 8,3,224,24,1,240,24,3,240,255,159,254,23,33,99,25, - 1,0,0,60,0,0,126,0,0,195,0,0,195,0,0,199, - 0,0,126,0,0,60,0,0,0,0,0,24,0,0,56,0, - 0,56,0,0,60,0,0,124,0,0,124,0,0,126,0,0, - 254,0,0,254,0,0,159,0,1,159,0,1,159,0,1,15, - 0,3,15,128,3,15,128,2,15,128,2,7,192,7,255,192, - 4,7,192,4,3,224,12,3,224,8,3,224,24,1,240,28, - 1,240,255,159,254,32,25,100,34,1,0,0,15,255,255,0, - 3,240,31,0,7,240,15,0,7,240,7,0,5,240,7,0, - 13,240,3,0,9,240,3,0,25,240,35,0,25,240,32,0, - 49,240,96,0,49,240,96,0,97,240,224,0,97,255,224,0, - 193,240,224,0,193,240,96,1,129,240,96,1,129,240,33,3, - 255,240,33,3,1,240,3,6,1,240,3,6,1,240,7,12, - 1,240,7,12,1,240,15,62,1,240,63,255,143,255,255,19, - 33,99,22,2,249,3,248,192,14,6,192,30,3,192,60,3, - 192,60,1,192,124,1,192,124,0,192,124,0,192,252,0,192, - 252,0,64,252,0,64,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,96,124,0,64,124,0,64,124,0, - 64,60,0,192,62,0,128,30,1,0,15,2,0,3,156,0, - 0,224,0,0,128,0,0,240,0,0,56,0,0,56,0,0, - 56,0,2,48,0,1,224,0,20,33,99,23,2,0,3,0, - 0,7,128,0,3,128,0,1,192,0,0,224,0,0,32,0, - 0,0,0,0,0,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,33,99,23,2,0,0,6,0,0,14,0,0,30,0, - 0,28,0,0,48,0,0,96,0,0,0,0,0,0,0,255, - 255,224,31,1,224,31,0,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,4,32,31,4,0,31,12,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,12,48,31, - 4,48,31,4,48,31,0,48,31,0,112,31,0,112,31,0, - 240,31,0,240,31,3,240,255,255,240,20,33,99,23,2,0, - 0,32,0,0,96,0,0,240,0,1,248,0,3,140,0,6, - 3,0,0,0,0,0,0,0,255,255,224,31,1,224,31,0, - 224,31,0,224,31,0,96,31,0,96,31,0,32,31,4,32, - 31,4,0,31,12,0,31,12,0,31,28,0,31,252,0,31, - 28,0,31,12,0,31,12,48,31,4,48,31,4,48,31,0, - 48,31,0,112,31,0,112,31,0,240,31,1,240,31,3,240, - 255,255,240,20,32,96,23,2,0,7,14,0,7,143,0,7, - 143,0,7,14,0,0,0,0,0,0,0,0,0,0,255,255, - 224,31,1,224,31,0,224,31,0,224,31,0,96,31,0,96, - 31,0,32,31,4,32,31,4,0,31,12,0,31,12,0,31, - 28,0,31,252,0,31,28,0,31,12,0,31,12,48,31,4, - 48,31,4,48,31,0,48,31,0,112,31,0,112,31,0,240, - 31,0,240,31,3,240,255,255,240,11,33,66,14,2,0,96, - 0,112,0,120,0,56,0,28,0,4,0,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,33,66,14,2,0,0,192,1,192,3,192,3,128,7, - 0,4,0,0,0,0,0,255,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,255,224,11,33,66,14,2,0,4, - 0,14,0,14,0,31,0,113,128,192,96,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,32,64,15,2,0,112,224,241,224,241,224,112,224,0, - 0,0,0,0,0,255,224,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,255,224,23,25,75,27,2,0,255,255,0, - 31,3,192,31,0,224,31,0,240,31,0,120,31,0,120,31, - 0,124,31,0,124,31,0,126,31,0,126,31,0,126,255,224, - 126,31,0,126,31,0,126,31,0,126,31,0,126,31,0,124, - 31,0,124,31,0,124,31,0,120,31,0,120,31,0,240,31, - 0,224,31,3,192,255,255,0,24,32,96,27,2,0,0,112, - 64,0,252,192,0,159,128,0,135,0,0,0,0,0,0,0, - 0,0,0,255,3,255,31,128,124,31,128,56,15,192,16,7, - 224,16,7,240,16,7,240,16,5,248,16,5,252,16,4,252, - 16,4,126,16,4,127,16,4,63,16,4,31,144,4,31,208, - 4,15,208,4,7,240,4,7,240,4,3,240,4,1,240,4, - 1,240,4,0,240,14,0,112,31,0,48,255,192,48,20,33, - 99,24,2,1,7,0,0,7,128,0,3,128,0,1,192,0, - 0,192,0,0,96,0,0,0,0,0,0,0,3,252,0,6, - 6,0,14,7,0,28,3,128,60,3,192,60,3,192,124,3, - 224,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,124,3,224,124, - 3,224,124,3,224,60,3,192,60,3,192,28,3,128,14,7, - 0,6,6,0,3,252,0,20,33,99,24,2,1,0,14,0, - 0,30,0,0,28,0,0,56,0,0,48,0,0,96,0,0, - 0,0,0,0,0,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,224,124,3,224,124,3,224,60,3, - 192,60,3,192,28,3,128,14,7,0,6,6,0,3,252,0, - 20,33,99,24,2,0,0,96,0,0,96,0,0,240,0,1, - 248,0,3,156,0,6,6,0,0,0,0,0,0,0,3,252, - 0,6,6,0,14,7,0,28,3,128,60,3,192,60,3,192, - 124,3,224,124,3,224,124,3,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 224,124,3,224,124,3,224,60,3,192,60,3,192,28,3,128, - 14,7,0,6,6,0,3,252,0,20,32,96,24,2,0,1, - 194,0,3,230,0,6,124,0,4,56,0,0,0,0,0,0, - 0,0,0,0,3,252,0,6,6,0,14,7,0,28,3,128, - 60,3,192,60,3,192,124,3,224,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,124,3,224,60,3,192, - 60,3,192,28,3,128,14,7,0,6,6,0,3,252,0,20, - 32,96,24,2,0,7,14,0,7,143,0,7,143,0,7,14, - 0,0,0,0,0,0,0,0,0,0,3,252,0,6,6,0, - 14,7,0,28,3,128,60,3,192,60,3,192,124,3,224,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,124,3,224,124,3,224, - 124,3,224,60,3,192,60,3,192,28,3,128,14,7,0,6, - 6,0,3,252,0,22,23,69,32,5,254,64,0,8,224,0, - 28,240,0,60,120,0,120,56,0,240,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,224,0,28,64,0,8, - 20,25,75,24,2,1,3,252,48,6,6,96,14,3,192,28, - 3,128,60,3,192,60,3,192,124,3,224,124,7,224,124,15, - 224,252,11,240,252,19,240,252,35,240,252,99,240,252,67,240, - 252,131,240,253,3,240,127,3,224,126,3,224,124,3,224,60, - 3,192,60,3,192,28,3,128,60,7,0,102,6,0,195,252, - 0,23,33,99,26,2,1,1,192,0,1,224,0,0,224,0, - 0,112,0,0,56,0,0,8,0,0,0,0,0,0,0,255, - 225,254,31,0,120,31,0,48,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,15,0,32,15,0, - 32,7,128,64,3,192,192,1,255,0,23,33,99,26,2,1, - 0,3,128,0,3,128,0,7,128,0,14,0,0,12,0,0, - 24,0,0,0,0,0,0,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,23,33,99,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,227,0,1,128,192,0,0,0,0,0, - 0,255,225,254,31,0,120,31,0,48,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,15,0,48, - 15,128,32,7,128,64,3,192,192,1,255,0,23,32,96,26, - 2,0,1,195,128,1,227,192,1,227,192,1,195,128,0,0, - 0,0,0,0,0,0,0,255,225,254,31,0,120,31,0,48, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,15,0,32,15,0,32,7,128,64,3,192,192,1, - 255,0,23,33,99,26,2,0,0,1,128,0,3,128,0,7, - 128,0,7,0,0,12,0,0,8,0,0,0,0,0,0,0, - 255,225,254,31,128,112,31,128,96,15,128,96,15,192,64,7, - 192,192,7,224,192,7,224,128,3,225,128,3,241,0,1,241, - 0,1,251,0,0,250,0,0,254,0,0,252,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,3,255,128,20,25,75,24,2, - 0,255,240,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,254,0,31,7,128,31,3,192,31,1,224,31,1,240,31, - 1,240,31,1,240,31,1,240,31,1,240,31,1,224,31,3, - 192,31,7,128,31,254,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,255,240,0,16,25,50,19, - 1,0,3,224,6,120,14,60,30,60,28,60,60,60,60,60, - 60,56,60,112,61,192,60,48,60,28,60,30,60,30,60,15, - 60,15,60,15,60,15,60,15,60,15,61,207,63,222,63,158, - 61,156,252,248,15,25,50,18,2,0,48,0,56,0,60,0, - 28,0,14,0,2,0,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,48,240,3,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,25,50,18, - 2,0,0,224,0,224,1,224,1,192,3,0,6,0,4,0, - 0,0,15,128,49,224,96,240,112,240,120,240,120,240,32,240, - 7,240,28,240,56,240,120,240,240,240,240,242,240,242,240,242, - 121,252,62,120,15,25,50,18,2,0,7,0,7,0,15,0, - 13,128,24,192,112,96,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,32,240,7,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,24,48,18, - 2,0,28,32,63,32,103,224,65,192,0,0,0,0,0,0, - 15,128,49,224,96,240,112,240,120,240,120,240,48,240,7,240, - 28,240,56,240,120,240,240,240,240,242,240,242,240,242,121,252, - 62,120,15,24,48,18,2,0,112,224,120,240,120,240,112,224, - 0,0,0,0,0,0,15,128,49,224,96,240,112,240,120,240, - 120,240,32,240,7,240,28,240,56,240,120,240,240,240,240,242, - 240,242,240,242,121,252,62,120,15,25,50,18,2,1,15,128, - 25,192,16,192,16,192,24,192,15,128,7,0,0,0,15,128, - 49,224,96,240,112,240,120,240,120,240,32,240,7,240,24,240, - 56,240,112,240,240,240,240,242,240,242,240,242,121,252,62,120, - 21,17,51,25,2,0,31,143,128,49,248,224,96,248,240,112, - 248,112,120,248,120,120,240,120,48,240,120,3,240,120,28,255, - 248,56,240,0,120,240,0,240,240,8,240,248,8,240,248,8, - 240,248,16,121,188,48,62,15,192,13,24,48,16,2,249,7, - 128,28,96,56,32,120,112,120,240,248,240,240,224,240,64,240, - 0,240,0,240,0,240,8,120,16,120,16,56,16,28,32,15, - 192,2,0,4,0,3,128,1,192,1,192,17,192,15,128,13, - 25,50,17,2,0,48,0,56,0,60,0,28,0,6,0,3, - 0,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,25,50,17,2,0,0,96,0, - 224,1,224,1,192,3,128,6,0,0,0,0,0,7,128,24, - 224,56,240,120,240,120,240,240,120,240,120,240,120,255,248,240, - 0,240,0,240,8,120,8,120,24,56,16,28,32,7,192,13, - 25,50,17,2,0,7,0,7,0,15,128,13,128,24,192,48, - 112,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,24,48,17,2,0,56,224,120, - 240,120,240,56,224,0,0,0,0,0,0,7,128,24,224,56, - 240,120,240,120,240,240,120,240,120,240,120,255,248,240,0,240, - 0,240,8,120,8,120,24,56,16,28,32,7,192,8,25,25, - 10,1,0,192,224,240,112,24,12,0,0,252,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,255,8,25,25,10, - 1,0,3,7,7,14,28,16,0,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,10,25,50,10,0, - 0,28,0,30,0,30,0,55,0,97,128,192,192,0,0,0, - 0,126,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,127,128,10,24,48,11,1,0,115,128,243,192,243,192,115, - 128,0,0,0,0,0,0,126,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,127,128,14,25,50,18,2,0,30, - 48,15,96,15,128,7,128,15,192,49,224,1,224,0,240,15, - 248,28,248,56,120,120,120,120,124,240,124,240,60,240,60,240, - 60,240,60,240,60,240,124,120,120,120,120,56,112,28,224,7, - 192,17,23,69,19,1,1,7,136,0,15,248,0,16,240,0, - 0,0,0,0,0,0,0,0,0,252,120,0,61,188,0,61, - 28,0,62,30,0,62,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,255,127,128,14,25,50,18, - 2,0,24,0,60,0,28,0,14,0,7,0,3,0,0,0, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,25,50,18,2,0,0,96,0,240,0,224, - 1,192,3,128,3,0,0,0,0,0,7,128,28,224,56,112, - 120,120,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,120,120,56,112,24,224,7,128,14,25,50,18, - 2,0,3,0,7,128,7,128,15,192,28,224,48,48,32,16, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,24,48,18,2,0,14,16,31,144,39,224, - 33,224,0,0,0,0,0,0,7,128,28,224,56,112,120,120, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,120,120,56,112,24,224,7,128,14,24,48,18,2,0, - 56,112,60,240,60,240,56,112,0,0,0,0,0,0,7,128, - 28,224,56,112,120,120,120,120,240,60,240,60,240,60,240,60, - 240,60,240,60,240,60,120,120,120,120,56,112,24,224,7,128, - 29,23,92,31,1,254,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,248,255,255,255,248,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7, - 0,0,0,15,128,0,0,15,128,0,0,15,128,0,0,7, - 0,0,14,17,34,18,2,0,7,132,24,232,56,120,120,120, - 120,120,240,124,240,188,241,188,243,60,246,60,244,60,248,60, - 120,120,120,120,120,112,92,96,135,128,17,25,75,19,1,0, - 12,0,0,30,0,0,14,0,0,7,0,0,3,0,0,0, - 128,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,25,75,19,1, - 0,0,48,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,0,0,0,0,0,0,0,0,252,126,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,62,0,60,62,0, - 60,62,0,60,94,0,30,158,0,15,31,128,17,25,75,19, - 1,0,1,128,0,3,192,0,3,192,0,7,224,0,12,48, - 0,24,24,0,0,0,0,0,0,0,252,126,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,62,0,60,62, - 0,60,62,0,60,94,0,30,158,0,15,31,128,17,24,72, - 19,1,0,28,112,0,30,120,0,30,120,0,28,112,0,0, - 0,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,33,99,18,0, - 248,0,28,0,0,28,0,0,60,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,255,159,128,62,6,0,30, - 4,0,31,4,0,15,4,0,15,8,0,15,136,0,7,136, - 0,7,152,0,3,208,0,3,208,0,3,240,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 64,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,15,32,64,18,1,247,12,0,28,0,124,0, - 188,0,60,0,60,0,60,0,60,120,60,252,61,30,63,30, - 62,30,62,30,62,30,60,30,60,28,60,28,60,56,60,56, - 60,48,60,96,60,192,61,0,62,0,60,0,60,0,60,0, - 60,0,60,0,60,0,48,0,192,0,17,32,96,18,0,248, - 14,28,0,15,60,0,15,60,0,14,28,0,0,0,0,0, - 0,0,0,0,0,255,159,128,62,6,0,30,4,0,30,4, - 0,15,8,0,15,8,0,15,8,0,7,136,0,7,144,0, - 3,208,0,3,208,0,3,224,0,1,224,0,1,224,0,0, - 224,0,0,192,0,0,192,0,0,64,0,0,128,0,28,128, - 0,60,128,0,61,0,0,57,0,0,59,0,0,30,0,0 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=29 h=33 x= 4 y=11 dx=31 dy= 0 ascent=26 len=120 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26n[880] U8G_SECTION(".progmem.u8g_font_osb26n") = { - 0,95,44,227,246,25,0,0,0,0,42,57,0,26,249,25, - 0,12,14,28,17,3,11,14,0,14,0,14,0,196,112,228, - 240,245,224,14,0,14,0,245,224,228,240,196,112,14,0,14, - 0,14,0,29,30,120,31,1,251,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,255,255,255,248,255,255,255,248,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,7,11,11,10,2,249,120,252,254,254,126,6,4,12,8, - 48,224,9,4,8,13,2,7,255,128,255,128,255,128,255,128, - 5,5,5,9,2,0,112,248,248,248,112,12,33,66,15,2, - 249,0,112,0,96,0,96,0,224,0,192,0,192,1,192,1, - 192,1,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,56, - 0,56,0,48,0,48,0,112,0,96,0,96,0,224,0,192, - 0,192,0,16,25,50,20,2,1,7,224,14,112,28,56,60, - 60,60,60,124,62,124,62,124,62,252,63,252,63,252,63,252, - 63,252,63,252,63,252,63,252,63,252,63,124,62,124,62,124, - 62,60,60,60,60,28,56,14,112,7,224,12,25,50,20,4, - 0,7,0,7,0,31,0,255,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,255,240,15,25,50,20,2,1,31,240,48,120,96,60,96, - 62,224,62,240,62,248,62,252,62,124,124,56,124,0,248,1, - 240,1,224,3,128,7,0,12,2,24,2,48,2,32,2,76, - 6,127,254,127,252,71,252,67,252,65,248,15,26,52,20,2, - 0,1,0,14,240,56,120,48,60,112,62,120,62,124,62,124, - 62,60,62,24,60,0,120,0,112,31,192,0,240,0,120,0, - 60,0,60,56,62,124,62,252,62,252,62,248,62,224,60,96, - 124,96,120,31,224,16,25,50,20,2,0,0,120,0,120,0, - 248,1,248,1,248,3,248,3,248,6,248,6,248,12,248,12, - 248,24,248,56,248,48,248,96,248,96,248,192,248,255,255,0, - 248,0,248,0,248,0,248,0,248,0,248,15,255,15,26,52, - 20,3,0,0,8,48,56,63,240,63,224,63,128,62,0,32, - 0,32,0,32,0,32,0,39,192,56,112,48,120,32,60,32, - 60,0,62,0,62,56,62,120,62,252,62,248,62,248,60,224, - 60,96,120,112,112,31,224,16,25,50,20,2,1,7,240,12, - 8,28,12,56,60,56,124,120,124,120,120,120,48,248,0,248, - 0,251,224,252,56,252,60,248,30,248,31,248,31,248,31,248, - 31,120,31,120,31,120,31,56,30,28,30,12,60,7,240,15, - 25,50,20,3,0,79,28,95,156,127,198,127,230,127,254,224, - 246,192,4,192,12,128,12,128,24,0,16,0,48,0,96,0, - 224,1,192,1,192,3,192,7,128,7,128,15,128,15,128,15, - 128,15,128,15,128,7,0,17,25,75,20,2,1,7,240,0, - 24,12,0,48,12,0,48,6,0,112,6,0,112,6,0,120, - 6,0,124,4,0,127,12,0,127,152,0,63,224,0,31,248, - 0,15,252,0,15,254,0,49,255,0,96,127,0,64,31,0, - 192,15,128,192,7,0,192,7,0,192,3,0,96,6,0,96, - 6,0,56,12,0,14,240,0,15,25,50,20,2,1,31,192, - 60,112,120,48,120,56,248,60,248,60,248,60,248,62,248,62, - 248,62,248,62,120,62,124,126,60,126,15,190,0,62,0,62, - 12,60,30,60,62,60,62,56,60,56,48,112,16,96,15,192 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 4 y=18 dx=36 dy= 0 ascent=28 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26r[5950] U8G_SECTION(".progmem.u8g_font_osb26r") = { - 0,95,44,227,246,26,7,105,16,163,32,127,248,28,248,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 7 y=23 dx=41 dy= 0 ascent=38 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29[15818] U8G_SECTION(".progmem.u8g_font_osb29") = { - 0,107,49,223,245,29,9,166,21,115,32,255,247,38,245,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,104,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,11,0,0,6, - 29,29,10,2,247,120,252,252,252,252,120,0,0,32,48,48, - 48,48,48,48,48,112,120,120,120,120,252,252,252,252,252,252, - 120,120,14,28,56,22,4,251,1,128,1,128,1,128,1,128, - 3,192,15,176,29,152,61,152,121,184,121,184,249,184,249,184, - 249,128,249,128,249,128,249,128,249,128,249,132,121,132,121,132, - 61,136,29,152,15,176,3,192,1,128,1,128,1,128,1,128, - 23,29,87,27,2,0,0,1,0,0,30,224,0,120,16,0, - 248,24,0,240,28,1,240,60,1,240,124,3,240,124,3,240, - 120,3,240,0,3,240,0,3,240,0,3,240,0,31,240,64, - 1,255,128,1,248,0,0,248,0,0,248,0,0,248,0,0, - 120,0,0,120,0,0,112,0,0,112,6,60,112,4,127,224, - 28,131,255,248,129,255,240,195,63,224,124,31,192,18,20,60, - 21,2,3,0,0,128,195,225,128,239,249,192,255,255,128,120, - 15,0,112,7,0,96,3,0,224,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,128,96,3,0,112,7,0, - 120,15,0,255,255,128,239,249,192,195,225,128,0,0,128,21, - 28,84,23,1,0,255,195,248,63,0,224,63,0,192,31,128, - 192,31,128,128,31,192,128,15,193,0,15,193,0,7,227,0, - 7,226,0,7,246,0,3,244,0,3,252,0,1,248,0,63, - 255,192,1,248,0,1,248,0,1,248,0,63,255,192,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,15,255,128,3,35,35,11,4,249,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,17,36,108,24,2,248,1,240,0,6,12,0,12,6, - 0,24,7,0,56,31,0,56,63,0,56,63,0,56,62,0, - 60,28,0,63,0,0,63,192,0,31,224,0,63,248,0,103, - 254,0,67,255,0,192,255,0,192,63,128,224,15,128,248,3, - 128,254,1,128,127,129,128,127,225,0,63,249,0,15,254,0, - 3,254,0,0,254,0,0,63,0,14,15,0,31,7,0,63, - 7,0,63,7,0,62,7,0,56,6,0,24,12,0,12,24, - 0,7,240,0,12,5,10,16,2,22,112,224,249,240,249,240, - 249,240,112,224,28,28,112,32,2,1,0,127,224,0,1,128, - 24,0,6,0,12,0,12,0,3,0,24,0,1,0,16,30, - 33,128,48,113,160,192,96,224,224,64,97,224,96,96,97,224, - 96,96,193,224,32,32,195,224,32,48,195,224,32,48,195,224, - 0,48,195,224,0,48,195,224,0,48,195,224,16,48,193,224, - 16,32,65,224,48,96,97,224,32,96,96,240,96,64,48,112, - 192,192,16,31,1,128,24,0,1,0,12,0,3,0,6,0, - 12,0,1,128,24,0,0,127,224,0,11,14,28,15,2,14, - 30,0,35,0,99,128,115,128,115,128,15,128,51,128,99,128, - 227,128,227,160,227,160,125,192,0,0,255,224,10,16,32,18, - 4,1,24,64,48,192,112,128,97,128,225,128,227,128,227,128, - 227,128,227,128,227,128,227,128,97,128,97,128,48,192,24,64, - 8,0,19,11,33,22,2,5,255,255,224,255,255,224,255,255, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,10,4,8,14,2,8,255, - 192,255,192,255,192,255,192,28,28,112,32,2,1,0,127,224, - 0,1,128,24,0,6,0,12,0,12,0,3,0,24,0,1, - 0,19,255,193,128,48,249,224,192,96,248,240,64,96,248,248, - 96,96,248,248,96,192,248,248,32,192,248,240,48,192,249,224, - 48,192,254,0,48,192,249,192,48,192,249,224,48,192,249,240, - 48,192,249,240,32,64,249,242,96,96,249,242,96,96,249,242, - 64,48,249,246,192,19,254,253,128,24,0,121,0,12,0,3, - 0,6,0,12,0,1,128,24,0,0,127,224,0,10,3,6, - 16,3,23,255,192,255,192,255,192,12,11,22,22,5,18,31, - 128,127,224,112,96,224,48,192,48,192,48,192,48,224,112,112, - 224,63,192,31,128,32,29,116,36,2,254,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,255,255,255,255,255,255,255,255,255,255,255,255,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,11, - 17,34,17,3,11,31,0,99,192,225,224,225,224,241,224,241, - 224,115,192,7,128,14,0,28,0,48,32,96,32,64,96,255, - 224,255,224,143,192,135,128,12,18,36,16,2,10,31,0,51, - 192,97,224,113,224,121,224,121,224,1,192,3,128,30,0,3, - 192,1,224,1,240,121,240,249,240,241,240,225,224,99,192,31, - 0,7,7,7,17,7,21,14,30,30,60,120,96,192,19,30, - 90,22,2,245,112,28,0,112,28,0,248,62,0,248,62,0, - 248,62,0,248,62,0,248,62,0,240,62,0,240,62,0,240, - 62,0,112,28,0,112,28,0,96,28,32,96,24,32,32,56, - 96,32,127,224,61,255,192,47,231,192,39,195,192,32,0,0, - 32,0,0,112,0,0,112,0,0,120,0,0,120,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,56,0,0,18,33, - 99,23,3,251,15,255,192,63,206,0,127,206,0,127,206,0, - 255,206,0,255,206,0,255,206,0,255,206,0,255,206,0,255, - 206,0,255,206,0,255,206,0,127,206,0,63,206,0,7,206, - 0,1,206,0,1,206,0,1,206,0,1,206,0,1,206,0, - 1,206,0,1,206,0,1,206,0,1,206,0,1,206,0,1, - 206,0,1,206,0,1,206,0,1,206,0,1,206,0,1,206, - 0,1,206,0,1,206,0,6,6,6,10,2,10,120,252,252, - 252,252,120,7,8,8,17,5,248,32,32,56,12,14,14,14, - 252,8,17,17,16,4,11,12,28,252,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,10,14,28,14,2,14,30,0, - 51,0,115,128,243,192,243,192,243,192,243,192,243,192,243,192, - 115,128,51,0,30,0,0,0,255,192,10,16,32,18,4,1, - 6,0,131,0,195,0,97,128,97,128,113,192,113,192,113,192, - 113,192,113,192,97,192,97,128,65,128,195,0,134,0,4,0, - 28,29,116,34,4,0,0,0,12,0,12,0,12,0,28,0, - 24,0,252,0,24,0,60,0,48,0,60,0,32,0,60,0, - 96,0,60,0,192,0,60,0,192,0,60,1,128,0,60,1, - 128,0,60,3,0,0,60,2,3,128,60,6,3,128,60,12, - 7,128,60,12,15,128,60,24,15,128,255,24,31,128,0,48, - 23,128,0,32,39,128,0,96,103,128,0,192,71,128,0,192, - 199,128,1,128,255,240,1,128,7,128,3,0,7,128,2,0, - 7,128,6,0,7,128,12,0,63,240,27,29,116,34,4,0, - 0,0,12,0,12,0,24,0,28,0,24,0,252,0,48,0, - 60,0,48,0,60,0,96,0,60,0,96,0,60,0,192,0, - 60,1,128,0,60,1,128,0,60,3,0,0,60,3,31,0, - 60,6,115,192,60,6,225,224,60,12,225,224,60,8,241,224, - 255,24,241,224,0,48,115,192,0,48,3,128,0,96,7,0, - 0,96,14,0,0,192,24,0,0,128,48,32,1,128,64,32, - 3,0,64,96,3,0,191,224,6,0,255,224,6,0,159,192, - 12,0,135,128,30,29,116,34,2,0,0,0,3,0,31,0, - 3,0,51,192,6,0,97,224,4,0,113,224,12,0,121,224, - 8,0,121,224,24,0,1,192,48,0,3,128,48,0,30,0, - 96,0,3,192,64,0,1,224,192,0,49,240,128,224,249,241, - 128,224,249,243,1,224,225,226,3,224,99,230,3,224,63,132, - 5,224,0,12,5,224,0,8,9,224,0,16,25,224,0,48, - 17,224,0,32,49,224,0,96,63,252,0,64,1,224,0,192, - 1,224,0,128,1,224,1,0,1,224,3,0,15,252,12,29, - 58,18,3,247,30,0,63,0,63,0,63,0,63,0,30,0, - 0,0,14,0,17,0,32,128,32,128,32,128,1,128,3,0, - 3,0,6,0,14,0,28,0,60,96,120,32,120,48,248,16, - 248,16,248,16,248,16,248,48,124,96,63,192,31,128,26,37, - 148,29,2,0,0,224,0,0,0,240,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,12,0,0,0,6,0,0, - 0,0,0,0,0,4,0,0,0,6,0,0,0,14,0,0, - 0,14,0,0,0,15,0,0,0,31,0,0,0,31,0,0, - 0,31,128,0,0,63,128,0,0,47,128,0,0,47,192,0, - 0,111,192,0,0,79,192,0,0,71,192,0,0,199,224,0, - 0,135,224,0,0,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,252,0,12,0,124,0, - 30,0,254,0,255,199,255,192,26,37,148,29,2,0,0,0, - 224,0,0,0,224,0,0,1,224,0,0,3,192,0,0,3, - 128,0,0,6,0,0,0,12,0,0,0,0,0,0,0,4, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,37,148,29,2,0,0,4,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,59,128,0,0,224,192,0, - 1,128,48,0,0,0,0,0,0,4,0,0,0,6,0,0, - 0,14,0,0,0,14,0,0,0,15,0,0,0,31,0,0, - 0,31,0,0,0,31,128,0,0,63,128,0,0,47,128,0, - 0,47,192,0,0,111,192,0,0,79,192,0,0,71,192,0, - 0,199,224,0,0,135,224,0,0,131,224,0,1,131,240,0, - 1,3,240,0,3,1,240,0,3,255,248,0,2,1,248,0, - 6,0,248,0,6,0,252,0,4,0,252,0,12,0,252,0, - 12,0,124,0,30,0,254,0,255,199,255,192,26,36,144,29, - 2,0,0,56,32,0,0,126,32,0,0,255,224,0,0,143, - 192,0,0,131,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,36,144,29,2,0,0,224,224,0,1,241,240,0, - 1,241,240,0,1,241,240,0,0,224,224,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,14,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,31,0,0,0,31,0,0, - 0,63,128,0,0,63,128,0,0,63,128,0,0,111,192,0, - 0,111,192,0,0,79,192,0,0,199,192,0,0,199,224,0, - 0,135,224,0,1,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,124,0,12,0,124,0, - 30,0,126,0,255,199,255,192,26,37,148,29,2,0,0,31, - 0,0,0,63,128,0,0,97,192,0,0,96,192,0,0,96, - 192,0,0,113,192,0,0,63,128,0,0,30,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,31,128,0,0,63, - 128,0,0,63,128,0,0,47,128,0,0,111,192,0,0,79, - 192,0,0,71,192,0,0,135,224,0,0,135,224,0,0,131, - 224,0,1,3,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,4,0,252,0,4,0, - 252,0,12,0,252,0,12,0,124,0,28,0,254,0,255,199, - 255,192,36,28,140,38,1,0,0,7,255,255,224,0,1,254, - 3,224,0,1,254,1,224,0,1,254,0,224,0,1,254,0, - 224,0,3,126,0,96,0,3,126,0,96,0,6,126,0,32, - 0,6,126,4,32,0,12,126,4,0,0,12,126,12,0,0, - 24,126,12,0,0,24,126,28,0,0,48,127,252,0,0,48, - 126,60,0,0,96,126,28,0,0,96,126,12,0,0,192,126, - 4,48,0,192,126,4,48,1,255,254,4,48,1,128,126,0, - 48,3,0,126,0,112,3,0,126,0,112,6,0,126,0,240, - 6,0,126,0,240,14,0,126,1,240,63,0,126,7,240,255, - 199,255,255,240,21,37,111,26,3,248,1,254,48,7,3,48, - 14,1,240,30,0,240,60,0,240,60,0,112,124,0,112,124, - 0,48,124,0,48,252,0,48,252,0,48,252,0,16,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,24, - 252,0,24,124,0,16,124,0,16,124,0,16,60,0,48,60, - 0,32,30,0,96,14,0,192,7,1,128,1,254,0,0,32, - 0,0,96,0,0,120,0,0,28,0,0,14,0,0,14,0, - 0,14,0,2,28,0,1,248,0,22,37,111,26,2,0,1, - 128,0,1,192,0,1,224,0,0,224,0,0,112,0,0,24, - 0,0,8,0,0,0,0,0,0,0,255,255,252,15,192,124, - 15,192,60,15,192,28,15,192,28,15,192,12,15,192,12,15, - 192,12,15,193,4,15,193,0,15,195,0,15,195,0,15,199, - 0,15,255,0,15,199,0,15,195,0,15,195,0,15,193,4, - 15,193,4,15,193,4,15,192,12,15,192,12,15,192,12,15, - 192,28,15,192,28,15,192,60,15,192,252,255,255,252,22,37, - 111,26,2,0,0,1,192,0,3,192,0,3,192,0,7,128, - 0,14,0,0,12,0,0,24,0,0,0,0,0,0,0,255, - 255,252,15,192,124,15,192,60,15,192,28,15,192,28,15,192, - 12,15,192,12,15,192,4,15,193,4,15,193,0,15,195,0, - 15,195,0,15,199,0,15,255,0,15,199,0,15,195,0,15, - 195,0,15,193,4,15,193,4,15,193,4,15,192,4,15,192, - 12,15,192,12,15,192,28,15,192,28,15,192,60,15,192,252, - 255,255,252,22,37,111,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,231,0,1,193,128,3,0,64,0,0, - 0,0,0,0,255,255,252,15,192,124,15,192,60,15,192,28, - 15,192,28,15,192,12,15,192,12,15,192,12,15,193,4,15, - 193,0,15,195,0,15,195,0,15,199,0,15,255,0,15,199, - 0,15,195,0,15,195,0,15,193,4,15,193,4,15,193,4, - 15,192,12,15,192,12,15,192,12,15,192,28,15,192,28,15, - 192,60,15,192,252,255,255,252,22,36,108,26,2,0,1,193, - 192,3,227,224,3,227,224,3,227,224,1,193,192,0,0,0, - 0,0,0,0,0,0,255,255,252,15,192,124,15,192,60,15, - 192,28,15,192,28,15,192,12,15,192,12,15,192,4,15,193, - 4,15,193,0,15,195,0,15,195,0,15,199,0,15,255,0, - 15,199,0,15,195,0,15,195,0,15,193,4,15,193,4,15, - 193,4,15,192,4,15,192,12,15,192,12,15,192,28,15,192, - 28,15,192,60,15,192,252,255,255,252,13,37,74,17,2,0, - 96,0,112,0,120,0,56,0,28,0,14,0,2,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 0,112,0,240,1,240,1,224,3,128,7,0,4,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 6,0,6,0,15,0,31,128,57,192,112,112,192,24,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,36,72,16,2,0, - 112,112,248,248,248,248,248,248,112,112,0,0,0,0,0,0, - 255,248,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,248,25,28,112,29,2,0,255,255, - 128,0,31,128,224,0,31,128,112,0,31,128,56,0,31,128, - 60,0,31,128,30,0,31,128,30,0,31,128,31,0,31,128, - 31,0,31,128,31,0,31,128,31,128,31,128,31,128,31,128, - 31,128,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,30,0,31,128,30,0,31,128,60,0,31,128, - 56,0,31,128,112,0,31,128,224,0,255,255,128,0,27,36, - 144,30,2,0,0,24,0,0,0,62,32,0,0,127,224,0, - 0,71,192,0,0,1,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,128,255,224,31,192,63,0,31,192,30,0, - 15,224,12,0,7,240,12,0,7,240,12,0,7,248,12,0, - 7,248,12,0,6,252,12,0,6,254,12,0,6,126,12,0, - 6,63,12,0,6,63,140,0,6,31,140,0,6,31,204,0, - 6,15,236,0,6,7,236,0,6,7,252,0,6,3,252,0, - 6,1,252,0,6,1,252,0,6,0,252,0,6,0,252,0, - 6,0,124,0,6,0,60,0,15,0,60,0,31,128,28,0, - 255,224,12,0,22,37,111,27,3,1,7,128,0,7,128,0, - 3,192,0,1,192,0,0,224,0,0,112,0,0,16,0,0, - 0,0,0,0,0,1,254,0,3,3,0,6,1,128,14,1, - 192,28,0,224,60,0,240,60,0,240,124,0,248,124,0,248, - 124,0,248,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,124,0,248,60,0,240,60,0,240,28,0,224,14,1,192, - 6,1,128,3,3,0,1,254,0,22,37,111,27,3,1,0, - 7,128,0,7,128,0,15,0,0,14,0,0,28,0,0,56, - 0,0,32,0,0,0,0,0,0,0,1,254,0,3,3,0, - 6,1,128,14,1,192,28,0,224,60,0,240,60,0,240,124, - 0,248,124,0,248,124,0,248,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 124,0,248,124,0,248,124,0,248,60,0,240,60,0,240,28, - 0,224,14,1,192,6,1,128,3,3,0,1,254,0,22,37, - 111,27,3,0,0,48,0,0,48,0,0,120,0,0,252,0, - 1,206,0,3,135,0,6,1,128,0,0,0,0,0,0,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,0, - 240,60,0,240,28,0,224,14,1,192,6,1,128,3,3,0, - 1,254,0,22,36,108,27,3,0,1,192,128,3,241,128,3, - 255,0,4,63,0,4,12,0,0,0,0,0,0,0,0,0, - 0,1,254,0,3,3,0,6,1,128,14,1,192,28,0,224, - 60,0,240,60,0,240,124,0,248,124,0,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,124,0,248,124,0,248,124,0,248, - 60,0,240,60,0,240,28,0,224,14,1,192,6,1,128,3, - 3,0,1,254,0,22,36,108,27,3,0,3,131,128,7,199, - 192,7,199,192,7,199,192,3,131,128,0,0,0,0,0,0, - 0,0,0,1,254,0,3,3,0,6,1,128,14,1,192,28, - 0,224,60,0,240,60,0,240,124,0,248,124,0,248,124,0, - 248,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 252,0,252,252,0,252,252,0,252,124,0,248,124,0,248,124, - 0,248,60,0,240,60,0,240,28,0,224,14,1,192,6,1, - 128,3,3,0,1,254,0,24,25,75,36,6,254,64,0,2, - 224,0,7,240,0,14,120,0,28,60,0,60,30,0,120,15, - 0,240,7,129,224,3,195,192,1,231,128,0,239,0,0,126, - 0,0,60,0,0,124,0,0,254,0,1,231,0,3,195,128, - 7,129,192,15,0,224,30,0,112,60,0,56,120,0,28,112, - 0,14,224,0,7,192,0,2,22,28,84,27,3,1,1,254, - 12,3,3,152,6,3,208,14,1,240,28,1,224,60,1,240, - 60,1,240,124,1,248,124,3,248,124,6,248,252,14,252,252, - 12,252,252,24,252,252,56,252,252,112,252,252,96,252,252,192, - 252,253,192,252,125,128,248,127,0,248,126,0,248,62,0,240, - 62,0,240,30,0,224,62,1,192,46,1,128,103,3,0,193, - 254,0,26,37,148,30,3,1,0,224,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,28,0,0,0,12,0,0, - 0,6,0,0,0,0,0,0,0,0,0,0,255,240,127,192, - 31,128,31,0,31,128,14,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,15,128,12,0,15,192,12,0,7,192,24,0, - 7,224,56,0,1,252,240,0,0,255,192,0,26,37,148,30, - 3,1,0,0,224,0,0,1,224,0,0,1,224,0,0,3, - 192,0,0,7,0,0,0,6,0,0,0,12,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,26,37,148,30,3,0,0,4,0,0, - 0,14,0,0,0,31,0,0,0,31,128,0,0,59,192,0, - 0,224,224,0,1,128,48,0,0,0,0,0,0,0,0,0, - 255,240,127,192,31,128,31,0,31,128,14,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,15,128,4,0,15,128,12,0, - 7,192,24,0,7,224,24,0,1,240,112,0,0,255,192,0, - 26,36,144,30,3,0,0,224,224,0,1,241,240,0,1,241, - 240,0,1,241,240,0,0,224,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,25,37,148,28,2,0,0,0,224,0, - 0,0,224,0,0,1,224,0,0,3,192,0,0,3,128,0, - 0,6,0,0,0,12,0,0,0,0,0,0,0,0,0,0, - 255,240,255,128,31,192,60,0,31,192,24,0,15,192,24,0, - 15,224,24,0,7,224,16,0,7,224,48,0,3,240,32,0, - 3,240,32,0,1,248,96,0,1,248,64,0,1,252,64,0, - 0,252,192,0,0,254,128,0,0,127,128,0,0,127,128,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,1,255,224,0, - 23,28,84,27,2,0,255,248,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,255,128,31,129,224,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,248,0,19,28,84,22,1,0, - 0,248,0,3,156,0,7,142,0,15,15,0,15,15,0,15, - 15,0,31,15,0,31,15,0,31,14,0,31,28,0,31,112, - 0,31,12,0,31,7,0,31,7,128,31,3,192,31,3,192, - 31,3,192,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,224,31,115,224,31,243,192,31,243,192,31,227,128,31,103, - 0,255,62,0,17,28,84,20,2,0,56,0,0,60,0,0, - 60,0,0,30,0,0,14,0,0,3,0,0,1,0,0,0, - 0,0,0,0,0,15,192,0,24,240,0,48,120,0,112,120, - 0,124,124,0,124,124,0,56,124,0,1,252,0,14,124,0, - 28,124,0,56,124,0,120,124,0,248,124,0,248,124,128,248, - 124,128,248,124,128,252,253,128,127,191,0,62,30,0,17,28, - 84,20,2,0,0,48,0,0,112,0,0,240,0,0,224,0, - 1,192,0,1,128,0,3,0,0,0,0,0,0,0,0,15, - 192,0,24,240,0,48,120,0,112,120,0,124,124,0,124,124, - 0,124,124,0,0,252,0,7,124,0,28,124,0,56,124,0, - 120,124,0,248,124,0,248,124,128,248,124,128,248,124,128,252, - 253,128,127,191,0,62,30,0,17,28,84,20,2,0,3,0, - 0,3,128,0,7,128,0,7,192,0,12,224,0,24,112,0, - 48,24,0,0,0,0,0,0,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,17,27,81,20,2,0,14,8,0,31,152,0,63,240, - 0,35,240,0,32,224,0,0,0,0,0,0,0,0,0,0, - 15,192,0,24,240,0,48,120,0,112,120,0,124,124,0,124, - 124,0,124,124,0,0,252,0,7,124,0,28,124,0,56,124, - 0,120,124,0,248,124,0,248,124,128,248,124,128,248,124,128, - 252,253,128,127,191,0,62,30,0,17,27,81,20,2,0,56, - 112,0,124,248,0,124,248,0,124,248,0,56,112,0,0,0, - 0,0,0,0,0,0,0,15,192,0,24,240,0,48,120,0, - 112,120,0,124,124,0,124,124,0,124,124,0,0,252,0,7, - 124,0,28,124,0,56,124,0,120,124,0,248,124,0,248,124, - 128,248,124,128,248,124,128,252,253,128,127,191,0,62,30,0, - 17,28,84,20,2,1,15,192,0,12,192,0,24,96,0,24, - 96,0,24,96,0,28,224,0,15,192,0,7,128,0,0,0, - 0,15,192,0,16,240,0,48,120,0,112,120,0,120,124,0, - 124,124,0,124,124,0,0,252,0,7,124,0,28,124,0,56, - 124,0,120,124,0,248,124,0,248,124,128,248,124,128,248,124, - 128,252,253,128,127,255,0,62,62,0,23,19,57,27,2,0, - 15,195,224,24,238,112,48,124,56,112,124,60,120,124,60,124, - 124,62,124,124,62,24,124,62,3,252,62,14,127,254,60,124, - 0,120,124,0,248,124,2,248,124,2,248,124,2,248,124,4, - 252,222,4,127,143,8,63,3,240,14,27,54,18,2,248,7, - 224,14,48,60,24,60,28,120,60,120,124,248,124,248,120,248, - 48,248,0,248,0,248,0,248,0,120,4,120,4,56,4,60, - 8,30,16,7,224,2,0,2,0,3,128,0,192,0,224,0, - 224,0,224,7,128,14,28,56,18,2,0,56,0,56,0,60, - 0,30,0,14,0,7,0,1,0,0,0,0,0,7,192,28, - 224,56,112,56,120,120,120,120,124,248,124,248,124,248,124,255, - 252,248,0,248,0,248,4,120,4,120,4,56,8,60,24,30, - 48,7,192,14,28,56,18,2,0,0,112,0,112,0,240,1, - 224,1,192,3,128,2,0,0,0,0,0,7,192,28,224,56, - 112,56,120,120,120,120,124,248,124,248,124,255,252,248,0,248, - 0,248,0,248,4,120,4,120,12,56,8,60,24,30,48,7, - 192,14,28,56,18,2,0,3,0,7,128,7,128,15,192,12, - 192,24,96,48,56,0,0,0,0,7,192,28,224,56,112,56, - 120,120,120,120,124,248,124,248,124,248,124,255,252,248,0,248, - 0,248,0,120,4,120,4,56,8,60,8,30,16,7,224,14, - 27,54,18,2,0,56,112,124,248,124,248,124,248,56,112,0, - 0,0,0,0,0,7,192,28,224,56,112,56,120,120,120,120, - 124,248,124,248,124,248,124,255,252,248,0,248,0,248,0,120, - 4,120,12,56,8,60,24,30,48,7,192,10,28,56,12,1, - 0,224,0,240,0,248,0,120,0,28,0,14,0,2,0,0, - 0,0,0,127,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,127,192,9,28,56,12,2,0,1, - 128,3,128,7,128,15,0,14,0,28,0,16,0,0,0,0, - 0,254,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,11,28,56,11,1,0,14,0,30, - 0,31,0,63,0,115,128,224,192,128,96,0,0,0,0,127, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,11,27,54,12,1,0,113,192,251,224,251, - 224,251,224,113,192,0,0,0,0,0,0,127,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,127, - 192,16,28,56,20,2,0,31,8,15,184,7,224,7,224,7, - 224,13,240,16,248,0,248,0,124,7,252,30,126,60,62,56, - 62,120,30,120,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,30,120,30,120,30,56,60,60,60,12,112,7,224,19, - 27,81,22,2,0,0,2,0,7,194,0,15,254,0,15,252, - 0,8,120,0,0,0,0,0,0,0,0,0,0,254,60,0, - 62,222,0,63,15,0,63,15,128,63,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,255,191,224,16,28,56,20,2,0,24,0,28,0, - 30,0,15,0,7,0,3,128,0,192,0,0,0,0,7,192, - 12,112,28,56,56,60,120,30,120,30,248,30,248,31,248,31, - 248,31,248,31,248,31,248,30,120,30,120,30,56,60,28,56, - 12,112,7,192,16,28,56,20,2,0,0,56,0,56,0,120, - 0,240,0,224,1,192,3,0,0,0,0,0,7,192,12,112, - 28,56,56,60,120,30,120,30,248,30,248,31,248,31,248,31, - 248,31,248,31,248,30,120,30,120,30,56,60,28,56,12,112, - 7,192,16,28,56,20,2,0,3,128,3,192,3,192,7,224, - 14,112,28,56,48,12,0,0,0,0,7,192,12,112,28,56, - 56,60,120,30,120,30,248,30,248,31,248,31,248,31,248,31, - 248,31,248,30,120,30,120,30,56,60,28,56,12,112,7,192, - 16,27,54,20,2,0,14,4,31,140,31,248,35,248,32,112, - 0,0,0,0,0,0,7,192,12,112,28,56,56,60,120,30, - 120,30,248,30,248,31,248,31,248,31,248,31,248,31,248,30, - 120,30,120,30,56,60,28,56,12,112,7,192,16,27,54,20, - 2,0,28,56,62,124,62,124,62,124,28,56,0,0,0,0, - 0,0,7,192,12,112,28,56,56,60,120,30,120,30,248,30, - 248,31,248,31,248,31,248,31,248,31,248,30,120,30,120,30, - 56,60,28,56,12,112,7,192,33,26,130,37,2,253,0,3, - 192,0,0,0,7,224,0,0,0,7,224,0,0,0,7,224, - 0,0,0,7,224,0,0,0,3,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,255,128,255,255,255,255,128,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,192,0,0,0,7,224,0,0,0,7,224,0, - 0,0,7,224,0,0,0,7,224,0,0,0,3,192,0,0, - 16,19,38,20,2,0,7,225,12,114,28,60,56,60,120,62, - 120,62,248,126,248,95,248,223,249,159,251,31,254,31,252,30, - 124,30,120,30,60,28,124,56,78,48,135,192,19,28,84,21, - 1,0,12,0,0,30,0,0,15,0,0,7,0,0,3,128, - 0,1,192,0,0,64,0,0,0,0,0,0,0,254,63,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,31,128,62,31,128,30,47,128, - 31,79,128,7,143,224,19,28,84,21,1,0,0,28,0,0, - 60,0,0,60,0,0,120,0,0,224,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,31,128,62,31,128,30,47,128,30,79,128,7,143,224, - 19,28,84,21,1,0,1,192,0,1,224,0,3,224,0,3, - 240,0,7,56,0,12,28,0,24,4,0,0,0,0,0,0, - 0,254,63,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,31,128,62,31, - 128,30,47,128,30,79,128,7,143,224,19,27,81,21,1,0, - 28,28,0,62,62,0,62,62,0,62,62,0,28,28,0,0, - 0,0,0,0,0,0,0,0,254,63,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,31,128,62,31,128,30,47,128,30,79,128,7,143, - 224,18,37,111,19,0,247,0,14,0,0,30,0,0,30,0, - 0,60,0,0,48,0,0,96,0,0,192,0,0,0,0,0, - 0,0,255,207,192,63,3,0,31,3,0,31,2,0,15,2, - 0,15,130,0,15,132,0,7,196,0,7,196,0,3,196,0, - 3,232,0,3,232,0,1,248,0,1,240,0,0,240,0,0, - 240,0,0,96,0,0,96,0,0,96,0,0,32,0,0,64, - 0,12,64,0,30,64,0,62,128,0,62,128,0,60,128,0, - 29,0,0,14,0,0,18,36,108,20,0,247,3,0,0,15, - 0,0,63,0,0,223,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,31,0,31,63,128,31,71,128,31,135,192, - 31,135,192,31,7,192,31,7,192,31,7,192,31,7,128,31, - 7,128,31,15,0,31,15,0,31,14,0,31,12,0,31,24, - 0,31,48,0,31,96,0,31,128,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,30, - 0,0,56,0,0,224,0,0,19,36,108,20,0,247,7,14, - 0,15,159,0,15,159,0,15,159,0,7,14,0,0,0,0, - 0,0,0,0,0,0,255,207,224,63,3,0,31,3,0,31, - 2,0,15,2,0,15,130,0,15,132,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,248,0,1,240,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 32,0,0,64,0,12,64,0,30,64,0,62,64,0,62,128, - 0,60,128,0,29,0,0,14,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=33 h=37 x= 5 y=12 dx=37 dy= 0 ascent=29 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =29 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29n[1232] U8G_SECTION(".progmem.u8g_font_osb29n") = { - 0,107,49,223,245,28,0,0,0,0,42,57,0,29,248,28, - 0,14,16,32,19,3,12,3,0,7,128,7,128,199,24,227, - 60,242,124,122,248,7,128,7,128,250,248,242,124,227,60,199, - 24,7,128,7,128,3,0,33,33,165,37,2,251,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,7,13,13,10,2,249,120,252,252,254,254,126,6,4, - 4,8,24,96,192,10,4,8,14,2,8,255,192,255,192,255, - 192,255,192,6,6,6,10,2,0,120,252,252,252,252,120,13, - 37,74,17,2,248,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,96,0,224,0,224,0,192,1,192,1,192,1, - 128,3,128,3,128,3,128,3,0,7,0,7,0,6,0,14, - 0,14,0,12,0,12,0,28,0,28,0,24,0,56,0,56, - 0,48,0,112,0,112,0,112,0,96,0,224,0,224,0,18, - 28,84,22,2,1,3,240,0,14,28,0,14,28,0,28,14, - 0,60,15,0,60,15,0,124,15,128,124,15,128,124,15,128, - 252,15,192,252,15,192,252,15,192,252,15,192,252,15,192,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,124,15, - 128,124,15,128,124,15,128,60,15,0,60,15,0,28,14,0, - 12,28,0,14,28,0,3,240,0,13,28,56,22,5,0,3, - 128,7,128,15,128,255,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,248,17,28,84,22,2,1,15,248,0, - 24,62,0,48,63,0,112,31,0,240,31,128,240,31,128,252, - 31,128,252,31,128,254,31,128,126,63,0,60,63,0,0,126, - 0,0,252,0,0,248,0,1,224,0,3,128,0,6,0,0, - 12,0,128,24,0,128,16,0,128,32,0,128,47,1,128,127, - 255,128,127,255,128,71,255,0,67,255,0,65,254,0,64,252, - 0,17,28,84,22,2,1,15,248,0,24,62,0,48,63,0, - 48,31,0,112,31,128,120,31,128,124,31,128,124,31,128,124, - 31,128,60,31,0,0,31,0,0,62,0,0,120,0,15,192, - 0,0,120,0,0,62,0,0,63,0,0,31,0,16,31,128, - 124,31,128,252,31,128,252,31,128,252,31,128,248,31,128,240, - 63,0,112,62,0,56,124,0,31,248,0,18,28,84,22,2, - 0,0,124,0,0,124,0,0,252,0,0,252,0,1,252,0, - 1,252,0,3,252,0,3,252,0,6,252,0,6,252,0,12, - 252,0,12,252,0,24,252,0,24,252,0,48,252,0,48,252, - 0,96,252,0,96,252,0,192,252,0,255,255,192,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,15,255,192,17,29,87,22,3,0,0,6,0,112,28, - 0,127,252,0,127,248,0,127,224,0,127,192,0,126,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, - 120,0,112,62,0,96,62,0,96,31,0,0,31,0,0,31, - 128,0,31,128,56,31,128,124,31,128,252,31,128,252,31,128, - 248,31,0,240,31,0,224,30,0,96,62,0,48,124,0,31, - 240,0,18,29,87,22,3,0,0,32,0,3,220,0,7,6, - 0,14,6,0,30,15,0,60,31,0,60,63,0,124,63,0, - 124,62,0,124,28,0,252,0,0,252,0,0,252,0,0,253, - 248,0,255,30,0,254,31,0,252,15,128,252,15,128,252,15, - 192,252,15,192,252,15,192,124,15,192,124,15,192,124,15,192, - 60,15,128,28,15,128,30,15,0,14,30,0,3,252,0,17, - 28,84,22,3,0,103,135,0,111,199,0,127,227,128,127,241, - 128,127,249,128,127,255,128,96,125,128,64,1,0,64,3,0, - 64,3,0,192,6,0,0,4,0,0,12,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,240,0,1,240,0,3,224, - 0,3,224,0,3,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,3,192,0,19,29,87,22,2,0,0, - 64,0,7,184,0,28,6,0,56,3,0,112,1,0,112,1, - 128,240,1,128,240,1,128,248,1,128,252,3,0,255,2,0, - 127,196,0,127,248,0,63,252,0,31,255,0,15,255,128,27, - 255,128,48,255,192,96,63,192,96,15,192,224,3,224,224,1, - 192,224,1,192,224,1,192,224,1,192,112,1,128,56,1,0, - 28,6,0,15,252,0,18,28,84,22,3,1,15,240,0,30, - 28,0,60,30,0,124,14,0,124,15,0,252,15,128,252,15, - 128,252,15,128,252,15,128,252,15,192,252,15,192,124,15,192, - 124,15,192,62,31,192,30,63,192,7,239,192,0,15,192,0, - 15,192,0,15,192,30,15,128,31,15,128,63,15,128,63,15, - 0,62,15,0,56,30,0,24,28,0,24,56,0,15,240,0 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 5 y=21 dx=41 dy= 0 ascent=31 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29r[7481] U8G_SECTION(".progmem.u8g_font_osb29r") = { - 0,107,49,223,245,29,9,166,21,115,32,127,247,31,247,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,104,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 9 y=28 dx=52 dy= 0 ascent=45 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-12 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =45 descent=-12 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35[22095] U8G_SECTION(".progmem.u8g_font_osb35") = { - 0,133,60,215,242,35,12,218,29,222,32,255,246,45,244,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,31,62,13, - 2,248,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,3,0,6,0,28,0,56,0,96,0, - 37,40,200,45,4,249,0,0,0,0,48,0,0,0,0,240, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,126,0,0,0,1,252,0,0,0,7,240,0,0,0, - 15,192,0,0,0,63,0,0,0,0,252,0,0,0,3,240, - 0,0,0,15,224,0,0,0,63,128,0,0,0,126,0,0, - 0,1,248,0,0,0,7,224,0,0,0,31,128,0,0,0, - 127,0,0,0,0,252,0,0,0,0,248,0,0,0,0,126, - 0,0,0,0,31,128,0,0,0,15,224,0,0,0,3,248, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,192,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,248,0,0,0,0,248,0,0,0,0,48,41,13, - 78,45,2,6,255,255,255,255,255,128,255,255,255,255,255,128, - 255,255,255,255,255,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, - 255,128,37,40,200,45,4,249,96,0,0,0,0,120,0,0, - 0,0,252,0,0,0,0,63,0,0,0,0,15,192,0,0, - 0,3,240,0,0,0,1,252,0,0,0,0,127,0,0,0, - 0,31,128,0,0,0,7,224,0,0,0,1,248,0,0,0, - 0,126,0,0,0,0,63,128,0,0,0,15,224,0,0,0, - 3,240,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,7,240,0,0,0,1,248,0,0,0,0, - 248,0,0,0,3,240,0,0,0,15,192,0,0,0,63,128, - 0,0,0,254,0,0,0,1,248,0,0,0,7,224,0,0, - 0,31,128,0,0,0,126,0,0,0,1,252,0,0,0,7, - 240,0,0,0,31,192,0,0,0,63,0,0,0,0,252,0, - 0,0,3,240,0,0,0,15,224,0,0,0,63,128,0,0, - 0,254,0,0,0,0,248,0,0,0,0,96,0,0,0,0, - 15,34,68,22,3,1,31,240,59,248,96,252,96,252,192,126, - 192,126,192,126,192,126,192,126,64,252,96,252,48,248,1,240, - 1,224,3,192,3,128,7,0,7,0,14,0,12,16,12,16, - 12,16,12,16,6,32,3,192,0,0,0,0,0,128,3,224, - 7,240,7,240,7,240,7,240,3,224,35,34,170,39,2,1, - 0,15,255,0,0,0,56,1,224,0,0,224,0,112,0,1, - 128,0,28,0,7,0,0,14,0,14,0,0,7,0,12,0, - 248,3,0,28,3,205,243,128,56,7,135,241,128,56,15,7, - 225,192,112,31,7,225,192,112,62,7,224,224,112,62,7,224, - 224,224,124,7,192,224,224,124,7,192,224,224,124,7,192,224, - 224,252,15,192,224,224,248,15,128,224,224,248,15,128,224,224, - 248,15,129,192,224,248,31,129,192,224,248,31,129,128,112,248, - 31,3,128,112,248,63,3,0,112,120,111,6,0,56,60,199, - 140,0,56,31,3,240,0,28,0,0,0,0,14,0,0,0, - 0,7,0,0,0,0,3,128,0,0,0,1,192,0,96,0, - 0,120,1,192,0,0,31,255,0,0,33,35,175,36,2,0, - 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, - 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, - 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, - 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, - 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, - 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, - 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, - 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, - 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, - 0,3,0,15,240,0,2,0,15,240,0,6,0,7,240,0, - 15,0,7,248,0,31,0,15,252,0,255,240,255,255,128,28, - 34,136,33,3,0,255,255,240,0,15,224,126,0,15,224,31, - 0,15,224,31,128,15,224,15,192,15,224,15,192,15,224,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,192,15,224,15,192,15,224,31,128,15,224,30, - 0,15,224,60,0,15,255,224,0,15,224,124,0,15,224,63, - 0,15,224,31,128,15,224,15,192,15,224,15,224,15,224,15, - 240,15,224,15,240,15,224,15,240,15,224,15,240,15,224,15, - 240,15,224,15,240,15,224,15,224,15,224,15,224,15,224,31, - 192,15,224,31,128,15,224,126,0,255,255,248,0,26,34,136, - 31,3,1,0,127,193,128,1,224,241,128,3,192,63,128,15, - 128,31,128,15,128,15,128,31,0,15,128,63,0,7,128,63, - 0,7,128,127,0,3,128,127,0,3,128,127,0,3,128,127, - 0,1,128,255,0,1,128,255,0,1,128,255,0,1,128,255, - 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, - 0,0,0,255,0,0,0,255,0,0,192,127,0,0,192,127, - 0,0,192,127,0,0,128,63,0,1,128,63,0,1,128,63, - 0,1,128,31,128,3,0,15,128,3,0,7,128,6,0,3, - 192,12,0,1,224,56,0,0,127,224,0,32,34,136,37,3, - 0,255,255,248,0,15,224,31,0,15,224,7,128,15,224,3, - 224,15,224,1,240,15,224,1,240,15,224,0,248,15,224,0, - 252,15,224,0,252,15,224,0,254,15,224,0,254,15,224,0, - 254,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, - 255,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, - 255,15,224,0,255,15,224,0,254,15,224,0,254,15,224,0, - 254,15,224,0,254,15,224,0,252,15,224,0,252,15,224,0, - 248,15,224,1,240,15,224,1,224,15,224,3,192,15,224,7, - 128,15,224,30,0,255,255,248,0,27,34,136,33,3,0,255, - 255,255,224,15,224,31,224,15,224,7,224,15,224,3,224,15, - 224,1,224,15,224,1,224,15,224,0,224,15,224,0,224,15, - 224,0,96,15,224,48,96,15,224,48,96,15,224,48,0,15, - 224,112,0,15,224,112,0,15,224,240,0,15,225,240,0,15, - 255,240,0,15,225,240,0,15,224,240,0,15,224,112,0,15, - 224,112,32,15,224,48,96,15,224,48,96,15,224,48,96,15, - 224,0,96,15,224,0,96,15,224,0,224,15,224,0,224,15, - 224,1,224,15,224,3,224,15,224,3,224,15,224,15,224,255, - 255,255,224,255,255,255,224,28,34,136,32,3,0,255,255,255, - 240,7,240,15,240,7,240,3,240,7,240,1,240,7,240,1, - 240,7,240,0,240,7,240,0,240,7,240,0,112,7,240,0, - 112,7,240,24,48,7,240,24,48,7,240,24,48,7,240,56, - 48,7,240,56,0,7,240,120,0,7,240,248,0,7,255,248, - 0,7,240,248,0,7,240,120,0,7,240,56,0,7,240,56, - 0,7,240,24,0,7,240,24,0,7,240,24,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,255,255,128,0,30,34,136,35,3,1,0,127,224,192,0, - 224,120,192,3,192,31,192,7,128,15,192,15,128,7,192,31, - 0,7,192,31,0,3,192,63,0,3,192,63,0,1,192,127, - 0,1,192,127,0,1,192,127,0,0,192,255,0,0,192,255, - 0,0,192,255,0,0,0,255,0,0,0,255,0,0,0,255, - 3,255,252,255,3,255,252,255,0,31,192,255,0,31,192,255, - 0,31,192,127,0,31,192,127,0,31,192,127,0,31,192,127, - 0,31,192,63,0,31,192,63,0,31,192,31,0,31,192,15, - 128,57,192,15,128,49,192,7,192,96,192,1,224,192,192,0, - 127,128,192,34,34,170,39,3,0,255,255,63,255,192,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,255,255,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,255,255, - 63,255,192,16,34,68,21,3,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,23,34,102, - 26,2,0,1,255,254,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,30,15,224,126,15,224,127,15,224,255,15,224,255,15, - 224,254,15,224,254,15,224,248,15,192,112,15,192,96,15,128, - 48,31,0,24,30,0,15,248,0,33,34,170,37,3,0,255, - 255,31,254,0,7,240,7,240,0,7,240,3,192,0,7,240, - 3,128,0,7,240,3,0,0,7,240,7,0,0,7,240,14, - 0,0,7,240,12,0,0,7,240,24,0,0,7,240,48,0, - 0,7,240,96,0,0,7,240,224,0,0,7,240,224,0,0, - 7,241,240,0,0,7,243,240,0,0,7,247,248,0,0,7, - 255,252,0,0,7,255,252,0,0,7,249,254,0,0,7,241, - 254,0,0,7,240,255,0,0,7,240,255,0,0,7,240,127, - 128,0,7,240,127,128,0,7,240,63,192,0,7,240,63,192, - 0,7,240,31,224,0,7,240,31,224,0,7,240,15,240,0, - 7,240,15,240,0,7,240,7,248,0,7,240,7,248,0,7, - 240,7,252,0,255,255,63,255,128,28,34,136,32,3,0,255, - 255,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,48,7, - 240,0,48,7,240,0,48,7,240,0,112,7,240,0,112,7, - 240,0,112,7,240,0,240,7,240,0,240,7,240,0,240,7, - 240,1,240,7,240,3,240,7,240,3,240,7,240,7,240,255, - 255,255,240,255,255,255,240,39,34,170,43,2,0,255,240,0, - 63,254,7,240,0,63,192,7,248,0,63,192,7,248,0,63, - 192,7,248,0,127,192,7,252,0,127,192,7,252,0,95,192, - 7,252,0,95,192,7,254,0,223,192,6,254,0,223,192,6, - 255,0,159,192,6,127,0,159,192,6,127,1,159,192,6,127, - 129,159,192,6,63,129,31,192,6,63,129,31,192,6,63,195, - 31,192,6,31,194,31,192,6,31,226,31,192,6,15,226,31, - 192,6,15,230,31,192,6,15,244,31,192,6,7,244,31,192, - 6,7,244,31,192,6,7,252,31,192,6,3,248,31,192,6, - 3,248,31,192,6,1,248,31,192,6,1,248,31,192,6,1, - 240,31,192,6,0,240,31,192,15,0,240,31,192,63,192,240, - 31,192,255,240,97,255,254,34,35,175,37,2,255,255,224,15, - 255,192,31,240,3,255,0,15,240,0,252,0,15,248,0,120, - 0,7,252,0,48,0,3,254,0,48,0,3,254,0,48,0, - 3,255,0,48,0,3,255,128,48,0,3,255,128,48,0,3, - 127,192,48,0,3,63,224,48,0,3,31,224,48,0,3,31, - 240,48,0,3,15,248,48,0,3,7,248,48,0,3,7,252, - 48,0,3,3,254,48,0,3,1,255,48,0,3,1,255,48, - 0,3,0,255,176,0,3,0,127,240,0,3,0,127,240,0, - 3,0,63,240,0,3,0,31,240,0,3,0,15,240,0,3, - 0,15,240,0,3,0,7,240,0,3,0,3,240,0,3,0, - 3,240,0,7,128,1,240,0,15,192,0,240,0,63,240,0, - 240,0,255,252,0,112,0,0,0,0,48,0,28,34,136,33, - 3,1,0,63,192,0,0,224,112,0,3,192,56,0,7,128, - 30,0,15,128,30,0,15,0,15,0,31,0,15,128,63,0, - 15,192,63,0,15,192,127,0,15,192,127,0,15,224,127,0, - 15,224,127,0,15,224,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, - 15,224,127,0,15,192,63,0,15,192,63,0,15,192,31,0, - 15,128,15,0,15,0,15,128,31,0,7,128,30,0,3,192, - 60,0,0,224,112,0,0,63,192,0,29,34,136,34,3,0, - 255,255,248,0,7,240,63,0,7,240,15,192,7,240,15,224, - 7,240,15,240,7,240,7,240,7,240,7,248,7,240,7,248, - 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,248, - 7,240,7,240,7,240,15,240,7,240,15,224,7,240,15,192, - 7,240,31,0,7,255,252,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,255,255,128,0,28,45,180,33,3,246,0,63, - 192,0,0,224,112,0,3,192,56,0,7,128,30,0,15,128, - 30,0,15,0,15,0,31,0,15,128,63,0,15,128,63,0, - 15,192,127,0,15,192,127,0,15,224,127,0,15,224,127,0, - 15,224,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, - 15,224,63,0,15,192,63,15,15,192,31,17,143,128,15,160, - 223,0,15,160,223,0,7,160,254,0,3,224,252,16,0,240, - 248,16,0,127,224,16,0,0,224,16,0,0,224,16,0,0, - 224,48,0,0,240,48,0,0,248,112,0,0,255,240,0,0, - 255,224,0,0,127,224,0,0,127,192,0,0,63,128,0,0, - 31,0,32,36,144,36,3,254,255,255,240,0,7,240,126,0, - 7,240,63,0,7,240,63,128,7,240,31,192,7,240,31,192, - 7,240,31,224,7,240,31,224,7,240,31,224,7,240,31,224, - 7,240,31,224,7,240,31,192,7,240,63,192,7,240,63,0, - 7,240,126,0,7,255,240,0,7,240,240,0,7,240,62,0, - 7,240,63,0,7,240,31,128,7,240,31,128,7,240,31,192, - 7,240,31,192,7,240,31,192,7,240,31,192,7,240,31,195, - 7,240,31,195,7,240,31,195,7,240,31,195,7,240,31,195, - 7,240,31,198,7,240,31,198,7,240,15,238,255,255,135,252, - 0,0,3,248,0,0,0,96,23,34,102,29,4,1,7,252, - 24,24,15,24,56,3,248,112,1,248,112,0,248,240,0,120, - 248,0,120,248,0,56,252,0,24,254,0,24,255,128,24,255, - 224,8,127,240,0,127,252,0,63,254,0,31,255,128,15,255, - 192,3,255,240,1,255,248,128,127,248,192,31,252,192,15,252, - 192,3,254,224,1,254,224,0,126,224,0,62,240,0,30,248, - 0,30,248,0,28,252,0,28,254,0,24,239,0,48,195,128, - 96,193,255,128,29,34,136,34,3,0,255,255,255,248,255,63, - 231,248,252,31,193,248,248,31,192,248,248,31,192,248,240,31, - 192,120,224,31,192,56,224,31,192,56,224,31,192,56,192,31, - 192,24,192,31,192,24,192,31,192,24,192,31,192,24,128,31, - 192,8,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,3,255, - 254,0,33,34,170,38,3,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,34,34,170,37,2,0,255,255,135,255,192,15,248,0, - 126,0,7,248,0,56,0,7,248,0,56,0,3,248,0,48, - 0,3,252,0,48,0,3,252,0,48,0,1,254,0,96,0, - 1,254,0,96,0,0,254,0,96,0,0,255,0,192,0,0, - 255,0,192,0,0,127,0,192,0,0,127,129,128,0,0,127, - 129,128,0,0,63,129,128,0,0,63,195,0,0,0,63,195, - 0,0,0,31,195,0,0,0,31,230,0,0,0,15,230,0, - 0,0,15,246,0,0,0,15,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,248,0,0,0,3,248,0,0,0, - 3,248,0,0,0,3,240,0,0,0,1,240,0,0,0,1, - 240,0,0,0,0,224,0,0,0,0,224,0,0,0,0,224, - 0,0,49,34,238,52,2,0,255,255,63,255,207,255,128,31, - 252,7,254,0,252,0,7,248,3,252,0,112,0,7,248,1, - 252,0,112,0,3,248,1,254,0,96,0,3,252,1,254,0, - 96,0,3,252,0,254,0,96,0,1,252,0,254,0,192,0, - 1,254,1,255,0,192,0,1,254,1,255,0,192,0,0,254, - 1,255,1,128,0,0,255,3,127,129,128,0,0,255,3,63, - 129,128,0,0,127,3,63,129,128,0,0,127,135,63,195,0, - 0,0,127,134,31,195,0,0,0,63,134,31,195,0,0,0, - 63,198,31,231,0,0,0,31,204,15,230,0,0,0,31,204, - 15,230,0,0,0,31,236,15,246,0,0,0,15,248,7,252, - 0,0,0,15,248,7,252,0,0,0,15,248,7,252,0,0, - 0,7,248,3,252,0,0,0,7,240,3,248,0,0,0,7, - 240,3,248,0,0,0,3,240,1,248,0,0,0,3,224,1, - 240,0,0,0,3,224,1,240,0,0,0,1,224,0,240,0, - 0,0,1,192,0,240,0,0,0,1,192,0,224,0,0,0, - 0,192,0,96,0,0,33,34,170,36,2,0,127,255,31,254, - 0,31,252,3,240,0,7,248,3,192,0,3,248,3,128,0, - 3,252,3,128,0,1,252,3,0,0,1,254,7,0,0,0, - 255,6,0,0,0,255,12,0,0,0,127,140,0,0,0,127, - 152,0,0,0,63,240,0,0,0,63,240,0,0,0,31,224, - 0,0,0,31,224,0,0,0,15,240,0,0,0,15,248,0, - 0,0,7,248,0,0,0,7,252,0,0,0,7,252,0,0, - 0,15,254,0,0,0,29,254,0,0,0,24,255,0,0,0, - 56,255,0,0,0,48,127,128,0,0,96,127,128,0,0,224, - 63,192,0,0,192,63,224,0,1,128,31,224,0,3,128,31, - 240,0,3,128,15,240,0,7,128,15,248,0,31,128,31,252, - 0,255,240,127,255,128,32,34,136,35,2,0,255,254,15,255, - 31,248,1,248,15,248,0,240,7,248,0,224,7,248,0,192, - 3,252,0,192,3,252,0,192,1,252,1,128,1,254,1,128, - 0,254,3,0,0,255,3,0,0,255,3,0,0,127,134,0, - 0,127,134,0,0,63,196,0,0,63,204,0,0,31,204,0, - 0,31,248,0,0,15,248,0,0,15,248,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,255,255,0,25,34,136,31,3,0,127,255,255,128,127,128, - 127,128,126,0,255,0,124,0,255,0,120,1,254,0,120,3, - 254,0,112,3,252,0,112,7,252,0,96,7,248,0,96,15, - 248,0,96,15,240,0,64,31,224,0,0,31,224,0,0,63, - 192,0,0,63,192,0,0,127,128,0,0,127,128,0,0,255, - 0,0,0,255,0,0,1,254,0,0,3,254,0,128,3,252, - 0,128,7,248,0,128,7,248,0,128,15,240,1,128,15,240, - 1,128,31,224,3,128,31,224,3,128,63,192,7,128,63,192, - 15,128,127,128,31,128,127,128,63,128,255,255,255,128,255,255, - 255,128,11,42,84,18,4,248,255,224,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,255,224,16,44,88,22, - 3,247,224,0,224,0,224,0,240,0,112,0,112,0,120,0, - 56,0,56,0,60,0,28,0,28,0,30,0,14,0,14,0, - 14,0,15,0,7,0,7,0,7,128,3,128,3,128,3,192, - 1,192,1,192,1,224,0,224,0,224,0,224,0,240,0,112, - 0,112,0,120,0,56,0,56,0,60,0,28,0,28,0,30, - 0,14,0,14,0,14,0,15,0,7,11,42,84,18,3,248, - 255,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,255,224,22,17,51,28,3,18,0,48,0,0,112,0, - 0,120,0,0,252,0,0,252,0,1,254,0,3,207,0,3, - 143,0,7,135,128,15,3,128,15,3,192,30,1,224,60,0, - 224,60,0,240,120,0,120,112,0,56,240,0,60,25,3,12, - 25,0,248,255,255,255,128,255,255,255,128,255,255,255,128,8, - 9,9,21,4,25,96,240,248,124,60,30,15,3,1,21,22, - 66,24,2,1,15,248,0,24,62,0,56,63,0,120,31,0, - 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, - 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, - 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, - 127,127,240,63,143,224,22,34,102,25,1,0,255,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,159,128,31,179,224,31,225,224,31,193,240,31,193,248,31, - 192,248,31,192,248,31,128,252,31,128,252,31,128,252,31,128, - 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,248, - 31,192,248,31,193,248,29,193,240,24,225,224,24,99,192,16, - 63,128,18,22,66,22,2,1,3,252,0,15,6,0,31,3, - 0,62,3,128,62,7,128,126,15,128,124,31,128,252,31,128, - 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,0, - 128,30,1,0,15,130,0,3,252,0,23,34,102,26,2,0, - 0,63,224,0,7,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,7,231,224,31,23,224,30,31,224,62,15,224, - 126,15,224,124,15,224,124,7,224,252,7,224,252,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,124,7,224,124,15,224,126,15,224,62,15,224,30,31,224, - 15,23,224,7,231,254,18,22,66,23,2,1,3,252,0,14, - 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, - 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, - 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, - 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, - 102,16,1,1,0,255,0,1,199,128,7,199,128,7,199,192, - 15,143,192,15,143,192,31,143,192,31,143,128,31,135,128,31, - 128,0,31,128,0,31,128,0,255,240,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,24,33,99,27,2,246, - 7,254,62,31,15,71,63,7,143,62,7,207,126,7,238,126, - 7,228,126,7,224,126,7,224,126,7,224,62,7,192,31,15, - 128,15,15,0,3,252,0,12,0,0,48,0,0,48,0,0, - 112,0,0,112,0,0,127,255,128,127,255,224,63,255,240,31, - 255,240,7,255,248,60,1,248,96,0,120,192,0,56,192,0, - 56,192,0,48,192,0,112,96,0,96,48,1,192,30,7,128, - 3,252,0,24,34,102,27,1,0,255,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,143,224, - 31,145,240,31,160,248,31,160,252,31,192,252,31,192,252,31, - 192,252,31,128,252,31,128,252,31,128,252,31,128,252,31,128, - 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,255,227,255,11, - 35,70,15,2,0,4,0,31,0,63,128,63,128,63,128,63, - 128,31,0,4,0,0,0,0,0,0,0,0,0,0,0,255, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,255,224,15,46,92,16,254, - 245,0,16,0,124,0,254,0,254,0,254,0,254,0,124,0, - 16,0,0,0,0,0,0,0,0,0,0,7,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,56,252,124,252,252, - 252,252,252,248,248,248,248,113,240,49,224,31,128,25,34,136, - 27,1,0,255,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,131,254,0,31,128,240,0,31,128,96,0,31, - 128,192,0,31,128,128,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,143,0,0,31,159,0,0,31,159,128,0,31, - 191,128,0,31,239,192,0,31,199,224,0,31,135,224,0,31, - 131,240,0,31,129,248,0,31,129,248,0,31,128,252,0,31, - 128,252,0,31,128,254,0,255,243,255,128,12,34,68,14,1, - 0,255,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,255,240,34,22,110,37,2,1,255,31,193,248,0, - 63,35,230,124,0,63,67,228,62,0,63,131,248,63,0,63, - 131,248,63,0,63,131,248,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,63,3,240,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,255,207,252,255,192,23,22,66,27,2,1,255, - 31,192,63,35,224,63,65,240,63,65,248,63,129,248,63,129, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,255,199, - 254,20,22,66,24,2,1,3,252,0,15,15,0,30,7,128, - 62,7,192,62,7,192,124,3,224,124,3,224,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,62,7,192,62,7,192, - 30,7,128,15,15,0,3,252,0,22,33,99,25,1,246,255, - 159,128,31,163,192,31,225,224,31,193,240,31,192,248,31,192, - 248,31,192,248,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,192,252,31, - 192,248,31,192,248,31,193,240,31,225,240,31,179,224,31,159, - 128,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,255, - 240,0,22,33,99,25,2,246,7,240,32,15,24,96,30,28, - 96,62,14,224,126,15,224,124,15,224,124,7,224,252,7,224, - 252,7,224,252,7,224,252,7,224,252,7,224,252,7,224,252, - 7,224,252,7,224,124,7,224,124,15,224,126,15,224,62,15, - 224,30,31,224,31,23,224,7,231,224,0,7,224,0,7,224, - 0,7,224,0,7,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,63,252,17,22,66,20,2, - 1,255,31,0,63,63,128,63,79,128,63,79,128,63,159,128, - 63,159,128,63,159,0,63,14,0,63,0,0,63,0,0,63, - 0,0,63,0,0,63,0,0,63,0,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 255,192,0,16,22,44,21,3,1,31,196,48,116,96,60,224, - 28,224,28,240,12,248,4,254,4,127,128,127,224,63,240,31, - 252,7,254,129,254,192,127,192,31,224,15,224,7,240,7,248, - 6,204,14,135,248,15,32,64,17,1,0,1,128,1,128,1, - 128,1,128,1,128,3,128,3,128,7,128,15,128,63,128,255, - 248,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,130,31,130,31,130,31,130,31, - 134,31,134,31,132,15,196,15,248,7,240,24,22,66,26,1, - 0,255,143,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,131,248,31,131,248,31,133,248,15,133,248,15,201,248, - 7,241,255,23,23,69,25,1,255,255,241,254,63,192,120,31, - 128,48,15,192,48,15,192,32,7,192,96,7,224,96,7,224, - 64,3,224,192,3,240,128,3,240,128,1,241,128,1,249,0, - 0,249,0,0,255,0,0,254,0,0,126,0,0,126,0,0, - 124,0,0,60,0,0,60,0,0,24,0,0,24,0,35,23, - 115,37,1,255,255,231,255,31,224,63,129,252,7,128,31,128, - 252,3,0,15,128,252,2,0,15,192,124,2,0,15,192,124, - 6,0,7,192,126,4,0,7,224,254,4,0,3,224,191,12, - 0,3,224,191,8,0,3,241,159,24,0,1,241,31,144,0, - 1,241,31,144,0,1,251,31,176,0,0,250,15,224,0,0, - 250,15,224,0,0,254,15,224,0,0,124,7,192,0,0,124, - 7,192,0,0,60,7,192,0,0,56,3,128,0,0,56,3, - 128,0,0,24,3,0,0,23,22,66,25,1,0,255,231,252, - 63,192,240,31,192,224,15,192,192,15,225,128,7,227,0,3, - 242,0,3,254,0,1,252,0,1,252,0,0,252,0,0,126, - 0,0,127,0,0,127,0,0,223,128,1,159,192,3,15,192, - 2,15,224,6,7,224,14,7,240,30,7,248,255,207,254,23, - 33,99,25,1,245,255,241,254,63,192,120,31,128,48,15,192, - 32,15,192,32,15,192,96,7,224,64,7,224,64,3,240,192, - 3,240,128,1,248,128,1,249,128,0,249,0,0,253,0,0, - 253,0,0,126,0,0,126,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,12,0,0,8,0,0,8,0,0,8,0, - 15,16,0,31,16,0,63,144,0,63,32,0,62,32,0,62, - 64,0,31,192,0,15,0,0,18,22,66,22,2,0,127,255, - 192,124,15,192,120,31,128,112,63,0,96,63,0,96,126,0, - 64,126,0,64,252,0,1,248,0,1,248,0,3,240,0,3, - 240,0,7,224,64,15,192,64,15,192,64,31,128,192,31,0, - 192,63,1,192,126,1,192,126,3,192,252,15,192,255,255,192, - 14,43,86,20,3,247,0,60,0,240,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,0,15,0,28,0, - 240,0,60,0,30,0,15,0,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,7,128,7,128,3,192,0,240,0,60,3,44,44,13, - 5,247,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,15,43, - 86,20,3,247,240,0,60,0,15,0,7,128,7,128,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,3,192,3,192,0,240,0,62, - 0,240,1,224,3,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,128,7,128,15,0,60,0,240,0,27,9,36,31,2,8, - 31,128,1,128,63,240,0,192,127,254,0,96,255,255,128,96, - 193,255,240,96,192,63,255,224,192,15,255,192,96,1,255,128, - 48,0,63,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,13,0,0,8,35,35,14,3, - 245,60,126,255,255,255,126,60,0,0,0,24,24,24,24,24, - 24,24,24,60,60,60,60,126,126,126,126,254,255,255,255,255, - 255,255,126,60,18,34,102,28,5,250,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,1,240,0,7,236,0,15, - 103,0,30,99,0,62,99,128,126,103,128,126,111,128,124,111, - 128,252,111,128,252,103,0,252,96,0,252,96,0,252,96,0, - 252,96,0,252,96,0,252,96,0,124,96,192,124,96,192,62, - 96,128,62,97,128,30,97,0,15,99,0,7,252,0,0,248, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 29,34,136,34,3,1,0,1,255,0,0,7,129,192,0,31, - 0,224,0,31,0,224,0,63,0,240,0,126,1,240,0,126, - 3,240,0,254,3,240,0,254,3,224,0,254,1,192,0,254, - 0,0,0,254,0,0,0,254,0,0,0,254,0,0,15,254, - 0,0,24,126,6,0,0,127,252,0,0,127,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,31, - 0,0,0,31,0,0,0,30,0,0,0,30,0,24,30,28, - 0,56,127,220,0,112,195,248,0,224,128,255,255,224,128,127, - 255,192,128,255,255,128,193,207,255,0,127,3,252,0,24,22, - 66,28,2,5,96,126,6,243,255,207,127,255,254,63,129,252, - 30,0,120,60,0,60,56,0,28,56,0,28,112,0,14,112, - 0,14,112,0,14,112,0,14,112,0,14,112,0,14,56,0, - 28,56,0,28,60,0,60,30,0,120,63,129,252,127,255,254, - 243,255,207,96,126,6,26,34,136,28,1,0,255,248,63,192, - 63,224,15,0,31,224,14,0,31,224,12,0,31,224,12,0, - 15,240,8,0,15,240,8,0,7,240,24,0,7,248,16,0, - 3,248,48,0,3,252,32,0,3,252,96,0,1,254,64,0, - 1,254,192,0,0,254,128,0,0,255,128,0,0,255,0,0, - 63,255,254,0,0,127,0,0,0,127,0,0,0,127,0,0, - 0,127,0,0,63,255,254,0,0,127,0,0,0,127,0,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,127,0,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,127,0,0, - 7,255,248,0,3,42,42,13,5,248,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,22,43,129,30,2,248,1,255,0,7,1,192, - 14,0,224,28,0,224,28,1,240,60,3,240,60,7,240,60, - 7,240,62,7,224,62,3,192,63,0,0,31,192,0,31,248, - 0,15,254,0,31,255,128,55,255,192,97,255,240,96,127,248, - 224,31,248,224,7,252,240,1,252,252,0,124,255,0,60,255, - 192,28,127,240,24,63,252,24,31,255,16,15,255,160,3,255, - 192,0,255,224,0,63,224,0,15,240,6,3,240,31,129,240, - 63,128,240,63,128,240,63,128,240,63,0,240,62,0,224,28, - 1,192,28,3,192,15,7,0,3,252,0,15,6,12,21,3, - 26,120,60,252,126,252,126,252,126,252,126,120,60,35,34,170, - 39,2,1,0,15,254,0,0,0,112,3,192,0,0,192,0, - 96,0,3,128,0,56,0,6,0,0,28,0,12,0,0,6, - 0,24,3,225,134,0,24,15,25,131,0,48,30,15,129,128, - 48,62,7,129,128,96,60,3,128,192,96,124,3,128,192,96, - 124,1,128,192,192,252,1,128,96,192,252,1,128,96,192,252, - 0,0,96,192,252,0,0,96,192,252,0,0,96,192,252,0, - 0,96,192,252,0,128,96,192,252,0,128,96,64,124,0,128, - 192,96,124,1,128,192,96,60,1,0,192,48,62,3,1,128, - 48,30,2,1,128,24,15,12,3,0,24,3,248,6,0,12, - 0,0,6,0,6,0,0,12,0,3,128,0,56,0,0,192, - 0,96,0,0,112,1,192,0,0,15,254,0,0,14,17,34, - 18,2,17,31,0,51,192,97,224,113,224,121,224,57,224,7, - 224,57,224,113,224,241,224,241,228,241,228,241,228,126,248,0, - 0,127,252,127,252,13,20,40,23,5,1,4,0,28,24,24, - 48,56,112,112,96,112,224,241,224,241,224,241,224,241,224,241, - 224,241,224,241,224,112,224,112,224,112,96,56,48,24,16,12, - 0,4,0,23,13,39,27,2,6,255,255,254,255,255,254,255, - 255,254,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, - 35,34,170,39,2,1,0,15,254,0,0,0,112,3,192,0, - 0,192,0,96,0,3,128,0,56,0,6,0,0,28,0,12, - 0,0,6,0,24,255,252,6,0,24,62,31,3,0,48,62, - 15,129,128,48,62,15,193,128,96,62,15,192,192,96,62,15, - 192,192,96,62,15,192,192,192,62,15,128,96,192,62,31,0, - 96,192,63,248,0,96,192,62,60,0,96,192,62,30,0,96, - 192,62,15,0,96,192,62,15,128,96,192,62,15,128,96,64, - 62,15,128,192,96,62,15,136,192,96,62,15,136,192,48,62, - 15,137,128,48,62,15,145,128,24,255,231,243,0,24,0,3, - 230,0,12,0,0,6,0,6,0,0,12,0,3,128,0,56, - 0,0,192,0,96,0,0,112,1,192,0,0,15,254,0,0, - 12,3,6,20,4,28,255,240,255,240,255,240,16,15,30,28, - 6,20,15,240,31,248,62,124,120,30,240,14,224,7,224,7, - 224,7,224,7,224,14,112,14,124,60,63,252,31,240,3,192, - 41,36,216,45,2,253,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,255,255,255,255,255,128, - 255,255,255,255,255,128,255,255,255,255,255,128,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,0,255,255,255,255,255,0,255,255,255,255,255,0,14,21, - 42,21,4,14,31,240,48,248,96,124,224,124,240,124,248,124, - 248,120,120,248,1,240,1,224,3,128,6,0,12,4,16,4, - 32,4,32,12,127,252,127,252,79,248,71,248,1,224,16,21, - 42,22,3,14,31,224,48,248,112,124,112,124,124,124,124,124, - 60,124,0,120,0,224,15,128,0,240,0,124,0,62,16,63, - 124,63,252,63,252,63,240,63,112,126,112,252,31,240,8,9, - 9,21,9,25,6,15,31,62,60,120,240,192,128,24,35,105, - 29,3,244,120,3,192,124,3,192,252,7,224,252,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,248,7, - 224,248,7,224,120,7,192,112,3,192,112,3,193,112,3,129, - 48,3,131,48,7,135,48,7,255,56,15,254,62,62,254,47, - 252,126,35,248,60,32,0,0,48,0,0,112,0,0,112,0, - 0,120,0,0,120,0,0,124,0,0,124,0,0,126,0,0, - 126,0,0,126,0,0,62,0,0,28,0,0,23,41,123,28, - 3,249,3,255,254,15,240,224,63,240,224,127,240,224,127,240, - 224,255,240,224,255,240,224,255,240,224,255,240,224,255,240,224, - 255,240,224,255,240,224,255,240,224,255,240,224,127,240,224,63, - 240,224,31,240,224,7,240,224,0,112,224,0,112,224,0,112, - 224,0,112,224,0,112,224,0,112,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,112, - 224,0,112,224,0,112,224,0,112,224,0,112,224,8,7,7, - 14,3,12,60,126,255,255,255,126,60,10,10,20,21,5,246, - 8,0,8,0,24,0,15,0,7,128,3,192,3,192,3,192, - 199,128,63,0,11,20,40,21,5,14,7,0,15,0,255,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 255,224,13,17,34,19,3,17,15,128,24,192,56,224,112,112, - 112,112,240,120,240,120,240,120,240,120,240,120,240,120,112,112, - 112,224,56,224,15,128,0,0,255,248,13,20,40,23,5,1, - 1,0,193,128,96,192,112,224,48,112,56,112,56,120,60,120, - 60,120,60,120,60,120,60,120,60,120,56,112,56,112,48,112, - 96,224,64,192,1,128,1,0,36,36,180,44,5,255,0,0, - 0,48,0,7,0,0,48,0,7,0,0,96,0,31,0,0, - 224,0,255,0,0,192,0,31,0,1,192,0,31,0,1,128, - 0,31,0,3,0,0,31,0,7,0,0,31,0,6,0,0, - 31,0,14,0,0,31,0,12,0,0,31,0,24,0,0,31, - 0,24,0,0,31,0,48,0,0,31,0,112,15,0,31,0, - 96,31,0,31,0,224,31,0,31,0,192,63,0,31,1,128, - 127,0,255,227,128,127,0,0,3,0,223,0,0,7,1,159, - 0,0,6,1,159,0,0,12,3,31,0,0,12,2,31,0, - 0,24,6,31,0,0,56,12,31,0,0,48,15,255,240,0, - 112,0,31,0,0,96,0,31,0,0,192,0,31,0,1,192, - 0,31,0,1,128,0,31,0,3,128,1,255,224,3,0,0, - 0,0,35,36,180,43,5,255,0,0,0,56,0,7,0,0, - 48,0,7,0,0,112,0,31,0,0,224,0,255,0,0,192, - 0,31,0,1,192,0,31,0,1,128,0,31,0,3,128,0, - 31,0,3,0,0,31,0,7,0,0,31,0,14,0,0,31, - 0,12,0,0,31,0,28,0,0,31,0,24,0,0,31,0, - 56,126,0,31,0,113,143,128,31,0,99,7,192,31,0,231, - 3,224,31,0,199,3,224,31,1,199,131,224,255,227,135,195, - 224,0,3,3,199,192,0,7,1,135,128,0,6,0,15,0, - 0,14,0,30,0,0,12,0,56,0,0,24,0,96,0,0, - 56,0,128,32,0,48,1,0,32,0,112,2,0,32,0,96, - 2,255,224,0,192,7,255,224,1,192,6,255,192,1,128,4, - 127,192,3,128,4,63,128,3,0,0,0,0,38,36,180,44, - 3,255,0,0,0,12,0,31,224,0,12,0,48,248,0,24, - 0,112,124,0,56,0,112,124,0,48,0,124,124,0,112,0, - 124,124,0,96,0,60,124,0,192,0,0,120,1,192,0,0, - 224,1,128,0,15,128,3,128,0,0,240,3,0,0,0,124, - 7,0,0,0,62,6,0,0,16,63,12,0,0,124,63,28, - 3,192,252,63,24,7,192,252,63,56,7,192,240,63,48,15, - 192,112,126,112,31,192,112,252,224,31,192,31,240,192,55,192, - 0,1,192,103,192,0,1,128,103,192,0,3,128,199,192,0, - 3,0,135,192,0,6,1,135,192,0,14,3,7,192,0,12, - 3,255,252,0,28,0,7,192,0,24,0,7,192,0,56,0, - 7,192,0,112,0,7,192,0,96,0,7,192,0,224,0,127, - 248,0,192,0,0,0,16,35,70,23,3,245,7,0,15,128, - 31,192,31,192,31,192,15,128,7,0,0,0,0,0,7,128, - 12,224,16,48,16,48,16,48,16,48,0,96,0,224,0,192, - 3,192,7,128,15,128,31,0,31,4,62,4,126,6,124,2, - 252,3,252,3,252,3,252,3,252,6,126,6,63,12,31,248, - 7,224,33,45,225,36,2,0,0,56,0,0,0,0,60,0, - 0,0,0,62,0,0,0,0,62,0,0,0,0,31,0,0, - 0,0,7,0,0,0,0,3,128,0,0,0,1,192,0,0, - 0,0,64,0,0,0,0,0,0,0,0,0,192,0,0,0, - 1,192,0,0,0,1,224,0,0,0,1,224,0,0,0,3, - 224,0,0,0,3,240,0,0,0,3,240,0,0,0,7,240, - 0,0,0,7,248,0,0,0,7,248,0,0,0,15,248,0, - 0,0,15,252,0,0,0,15,252,0,0,0,25,252,0,0, - 0,25,254,0,0,0,25,254,0,0,0,48,254,0,0,0, - 48,255,0,0,0,32,255,0,0,0,96,127,0,0,0,96, - 127,128,0,0,64,127,128,0,0,192,63,128,0,0,192,63, - 192,0,0,255,255,192,0,1,255,255,192,0,1,128,31,224, - 0,1,0,31,224,0,3,0,15,224,0,3,0,15,240,0, - 2,0,15,240,0,6,0,7,240,0,15,0,7,248,0,31, - 0,15,252,0,255,240,255,255,128,33,45,225,36,2,0,0, - 0,14,0,0,0,0,15,0,0,0,0,31,0,0,0,0, - 62,0,0,0,0,60,0,0,0,0,120,0,0,0,0,240, - 0,0,0,0,192,0,0,0,0,128,0,0,0,0,0,0, - 0,0,0,192,0,0,0,1,192,0,0,0,1,224,0,0, - 0,1,224,0,0,0,3,224,0,0,0,3,240,0,0,0, - 3,240,0,0,0,7,240,0,0,0,7,248,0,0,0,7, - 248,0,0,0,15,248,0,0,0,15,252,0,0,0,15,252, - 0,0,0,25,252,0,0,0,25,254,0,0,0,25,254,0, - 0,0,48,254,0,0,0,48,255,0,0,0,32,255,0,0, - 0,96,127,0,0,0,96,127,128,0,0,64,127,128,0,0, - 192,63,128,0,0,192,63,192,0,0,255,255,192,0,1,255, - 255,192,0,1,128,31,224,0,1,0,31,224,0,3,0,15, - 224,0,3,0,15,240,0,6,0,15,240,0,6,0,7,240, - 0,15,0,7,248,0,255,240,255,255,128,255,240,255,255,128, - 33,44,220,36,2,0,0,1,192,0,0,0,1,224,0,0, - 0,3,224,0,0,0,7,240,0,0,0,15,120,0,0,0, - 30,30,0,0,0,120,7,0,0,0,64,1,128,0,0,0, - 0,0,0,0,0,192,0,0,0,1,192,0,0,0,1,224, - 0,0,0,1,224,0,0,0,3,224,0,0,0,3,240,0, - 0,0,3,240,0,0,0,7,240,0,0,0,7,248,0,0, - 0,7,248,0,0,0,15,248,0,0,0,15,252,0,0,0, - 15,252,0,0,0,25,252,0,0,0,25,254,0,0,0,25, - 254,0,0,0,48,254,0,0,0,48,255,0,0,0,32,255, - 0,0,0,96,127,0,0,0,96,127,128,0,0,64,127,128, - 0,0,192,63,128,0,0,192,63,192,0,0,255,255,192,0, - 1,255,255,192,0,1,128,31,224,0,1,0,31,224,0,3, - 0,15,224,0,3,0,15,240,0,2,0,15,240,0,6,0, - 7,240,0,15,0,7,248,0,31,0,15,252,0,255,240,255, - 255,128,33,43,215,36,2,0,0,15,1,0,0,0,31,227, - 0,0,0,63,254,0,0,0,33,254,0,0,0,32,124,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, - 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, - 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, - 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, - 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, - 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, - 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, - 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, - 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, - 0,3,0,15,240,0,6,0,15,240,0,6,0,7,240,0, - 15,0,7,248,0,255,240,255,255,128,255,240,255,255,128,33, - 43,215,36,2,0,0,60,15,0,0,0,126,31,128,0,0, - 126,31,128,0,0,126,31,128,0,0,126,31,128,0,0,60, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,240,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,248,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,252,0,0,0,15,252,0,0,0,25, - 252,0,0,0,25,254,0,0,0,24,254,0,0,0,48,254, - 0,0,0,48,255,0,0,0,48,127,0,0,0,96,127,0, - 0,0,96,127,128,0,0,96,63,128,0,0,192,63,128,0, - 0,192,63,192,0,0,255,255,192,0,1,255,255,192,0,1, - 128,31,224,0,1,128,15,224,0,3,0,15,224,0,3,0, - 15,240,0,3,0,7,240,0,7,0,7,240,0,15,0,7, - 248,0,31,128,15,252,0,255,240,255,255,128,33,45,225,36, - 2,0,0,1,224,0,0,0,7,248,0,0,0,14,28,0, - 0,0,12,12,0,0,0,12,12,0,0,0,12,12,0,0, - 0,14,28,0,0,0,7,248,0,0,0,3,240,0,0,0, - 0,0,0,0,0,0,192,0,0,0,1,192,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,224,0,0,0,3,240, - 0,0,0,3,240,0,0,0,7,240,0,0,0,7,248,0, - 0,0,7,248,0,0,0,15,248,0,0,0,13,252,0,0, - 0,13,252,0,0,0,29,252,0,0,0,25,254,0,0,0, - 24,254,0,0,0,56,254,0,0,0,48,255,0,0,0,48, - 127,0,0,0,112,127,0,0,0,96,127,128,0,0,96,63, - 128,0,0,224,63,128,0,0,192,63,192,0,0,255,255,192, - 0,1,255,255,192,0,1,128,31,224,0,1,128,31,224,0, - 3,0,15,224,0,3,0,15,240,0,3,0,15,240,0,7, - 0,7,240,0,15,0,7,248,0,31,128,15,252,0,255,240, - 255,255,128,45,34,204,48,1,0,0,0,127,255,255,240,0, - 0,31,248,7,240,0,0,15,248,1,240,0,0,15,248,0, - 240,0,0,31,248,0,240,0,0,27,248,0,112,0,0,59, - 248,0,112,0,0,51,248,0,48,0,0,115,248,0,48,0, - 0,99,248,12,48,0,0,227,248,12,16,0,0,195,248,12, - 0,0,1,195,248,28,0,0,1,131,248,28,0,0,3,131, - 248,60,0,0,3,3,248,124,0,0,7,3,255,252,0,0, - 6,3,248,124,0,0,14,3,248,60,0,0,12,3,248,28, - 0,0,28,3,248,28,0,0,24,3,248,12,24,0,56,3, - 248,12,24,0,63,255,248,12,24,0,96,3,248,0,56,0, - 224,3,248,0,56,0,192,3,248,0,56,1,192,3,248,0, - 120,1,128,3,248,0,120,3,128,3,248,0,248,7,128,3, - 248,1,248,15,128,3,248,3,248,255,248,127,255,255,248,255, - 248,127,255,255,248,26,45,180,31,3,246,0,127,193,128,1, - 224,241,128,3,192,63,128,7,128,31,128,15,128,15,128,31, - 0,15,128,63,0,7,128,63,0,7,128,63,0,3,128,127, - 0,3,128,127,0,1,128,127,0,1,128,255,0,1,128,255, - 0,1,128,255,0,1,128,255,0,0,0,255,0,0,0,255, - 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, - 0,0,192,127,0,0,192,127,0,0,192,127,0,0,128,63, - 0,0,128,63,0,1,128,63,0,1,128,31,128,3,0,15, - 128,3,0,7,128,6,0,3,192,12,0,1,224,56,0,0, - 127,224,0,0,12,0,0,0,8,0,0,0,30,0,0,0, - 31,128,0,0,3,192,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,129,192,0,0,199,192,0,0,63,0,0,27, - 45,180,33,3,0,0,224,0,0,1,240,0,0,1,240,0, - 0,0,248,0,0,0,124,0,0,0,60,0,0,0,14,0, - 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,27,45,180,33,3,0,0, - 0,56,0,0,0,120,0,0,0,248,0,0,0,248,0,0, - 1,240,0,0,3,192,0,0,3,128,0,0,6,0,0,0, - 4,0,0,0,0,0,0,0,0,0,0,255,255,255,224,15, - 224,31,224,15,224,7,224,15,224,3,224,15,224,1,224,15, - 224,1,224,15,224,0,224,15,224,0,224,15,224,0,96,15, - 224,48,96,15,224,48,96,15,224,48,0,15,224,112,0,15, - 224,112,0,15,224,240,0,15,225,240,0,15,255,240,0,15, - 225,240,0,15,224,240,0,15,224,112,0,15,224,112,32,15, - 224,48,96,15,224,48,96,15,224,48,96,15,224,0,96,15, - 224,0,224,15,224,0,224,15,224,0,224,15,224,1,224,15, - 224,3,224,15,224,3,224,15,224,15,224,255,255,255,224,255, - 255,255,224,27,44,176,33,3,0,0,6,0,0,0,15,0, - 0,0,15,128,0,0,31,192,0,0,57,224,0,0,240,112, - 0,3,192,28,0,0,0,4,0,0,0,0,0,0,0,0, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,27,43,172,33,3,0,1, - 224,120,0,3,240,252,0,3,240,252,0,3,240,252,0,3, - 240,252,0,1,224,120,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,224,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,96,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,224,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,16,45,90,21,3, - 0,56,0,124,0,124,0,62,0,31,0,15,0,3,128,1, - 192,0,0,0,0,0,0,255,255,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,255,255,16,45,90,21,3, - 0,0,14,0,30,0,62,0,60,0,120,0,240,0,224,1, - 192,0,0,0,0,0,0,255,255,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,255,255,16,44,88,21,3, - 0,1,192,3,192,3,224,7,240,31,120,60,28,240,7,0, - 1,0,0,0,0,255,255,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,255,255,255,255,16,43,86,21,3,0,120, - 30,252,63,252,63,252,63,252,63,120,30,0,0,0,0,0, - 0,255,255,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,255,255,32,34,136,37,3,0,255,255,248,0,7, - 240,31,0,7,240,7,128,7,240,3,224,7,240,1,240,7, - 240,1,240,7,240,0,248,7,240,0,252,7,240,0,252,7, - 240,0,254,7,240,0,254,7,240,0,254,7,240,0,255,7, - 240,0,255,7,240,0,255,7,240,0,255,255,255,0,255,7, - 240,0,255,7,240,0,255,7,240,0,255,7,240,0,255,7, - 240,0,254,7,240,0,254,7,240,0,254,7,240,0,254,7, - 240,0,252,7,240,0,252,7,240,0,248,7,240,1,240,7, - 240,1,224,7,240,3,192,7,240,7,128,7,240,31,0,255, - 255,248,0,34,44,220,37,2,255,0,7,128,128,0,0,15, - 241,128,0,0,31,255,0,0,0,16,255,0,0,0,16,60, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,224,15,255,192,31,240,3,255,0, - 15,240,0,252,0,15,248,0,120,0,7,252,0,48,0,3, - 254,0,48,0,3,254,0,48,0,3,255,0,48,0,3,255, - 128,48,0,3,255,128,48,0,3,127,192,48,0,3,63,224, - 48,0,3,31,224,48,0,3,31,240,48,0,3,15,248,48, - 0,3,7,248,48,0,3,7,252,48,0,3,3,254,48,0, - 3,1,255,48,0,3,1,255,48,0,3,0,255,176,0,3, - 0,127,240,0,3,0,127,240,0,3,0,63,240,0,3,0, - 31,240,0,3,0,15,240,0,3,0,15,240,0,3,0,7, - 240,0,3,0,3,240,0,3,0,3,240,0,7,128,1,240, - 0,15,192,0,240,0,63,240,0,240,0,255,252,0,112,0, - 0,0,0,48,0,28,45,180,33,3,0,0,192,0,0,1, - 224,0,0,1,240,0,0,0,248,0,0,0,120,0,0,0, - 60,0,0,0,28,0,0,0,6,0,0,0,2,0,0,0, - 0,0,0,0,0,0,0,0,63,192,0,0,224,112,0,3, - 192,56,0,7,128,30,0,15,128,30,0,15,0,15,0,31, - 0,15,128,63,0,15,192,63,0,15,192,127,0,15,192,127, - 0,15,224,127,0,15,224,127,0,15,224,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,127,0,15,224,127, - 0,15,224,127,0,15,224,127,0,15,192,63,0,15,192,63, - 0,15,192,31,0,15,128,15,0,15,0,15,128,31,0,7, - 128,30,0,3,192,60,0,0,224,112,0,0,63,192,0,28, - 45,180,33,3,0,0,0,48,0,0,0,120,0,0,0,248, - 0,0,1,240,0,0,1,224,0,0,3,192,0,0,3,128, - 0,0,6,0,0,0,4,0,0,0,0,0,0,0,0,0, - 0,0,63,192,0,0,224,112,0,3,192,56,0,7,128,30, - 0,15,128,30,0,15,0,15,0,31,0,15,128,63,0,15, - 192,63,0,15,192,127,0,15,192,127,0,15,224,127,0,15, - 224,127,0,15,224,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,127,0,15,224,127,0,15,224,127,0,15, - 224,127,0,15,192,63,0,15,192,63,0,15,192,31,0,15, - 128,15,0,15,0,15,128,31,0,7,128,30,0,3,192,60, - 0,0,224,112,0,0,63,192,0,28,45,180,33,3,0,0, - 6,0,0,0,14,0,0,0,15,0,0,0,31,128,0,0, - 63,192,0,0,121,224,0,0,240,240,0,3,192,60,0,3, - 0,12,0,0,0,0,0,0,0,0,0,0,63,192,0,0, - 224,112,0,3,192,56,0,7,128,30,0,15,128,30,0,15, - 0,15,0,31,0,15,128,63,0,15,192,63,0,15,192,127, - 0,15,192,127,0,15,224,127,0,15,224,127,0,15,224,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,127, - 0,15,224,127,0,15,224,127,0,15,224,127,0,15,192,63, - 0,15,192,63,0,15,192,31,0,15,128,15,0,15,0,15, - 128,31,0,7,128,30,0,3,192,60,0,0,224,112,0,0, - 63,192,0,28,44,176,33,3,0,0,0,8,0,0,126,24, - 0,0,255,248,0,1,255,240,0,1,7,224,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,63,192,0,0,224,112,0,3,192,56,0,7,128,30, - 0,15,128,30,0,15,0,15,0,31,0,15,128,63,0,15, - 192,63,0,15,192,127,0,15,192,127,0,15,224,127,0,15, - 224,127,0,15,224,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,127,0,15,224,127,0,15,224,127,0,15, - 224,127,0,15,192,63,0,15,192,63,0,15,192,31,0,15, - 128,15,0,15,0,15,128,31,0,7,128,30,0,3,192,60, - 0,0,224,112,0,0,63,192,0,28,44,176,33,3,0,1, - 224,120,0,3,240,252,0,3,240,252,0,3,240,252,0,3, - 240,252,0,1,224,120,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,63,192,0,0,224,112,0,3, - 192,56,0,7,128,30,0,15,128,30,0,15,0,15,0,31, - 0,15,128,63,0,15,192,63,0,15,192,127,0,15,192,127, - 0,15,224,127,0,15,224,127,0,15,224,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,127,0,15,224,127, - 0,15,224,127,0,15,224,127,0,15,192,63,0,15,192,63, - 0,15,192,31,0,15,128,15,0,15,0,15,128,31,0,7, - 128,30,0,3,192,60,0,0,224,112,0,0,63,192,0,31, - 30,120,45,7,253,32,0,0,0,112,0,0,12,248,0,0, - 30,124,0,0,60,62,0,0,120,31,0,1,240,15,128,3, - 224,7,192,7,192,3,224,15,128,1,240,31,0,0,248,62, - 0,0,124,124,0,0,62,248,0,0,31,240,0,0,15,224, - 0,0,7,192,0,0,15,224,0,0,31,240,0,0,62,248, - 0,0,124,60,0,0,248,30,0,1,240,15,0,3,224,7, - 128,7,192,3,192,15,128,1,224,31,0,0,240,62,0,0, - 120,124,0,0,60,248,0,0,30,112,0,0,12,28,34,136, - 33,3,1,0,63,224,48,0,224,112,96,1,192,60,192,7, - 128,31,192,15,128,31,128,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,31,192,63,0,31,224,127,0,63,224,127, - 0,111,224,127,0,239,224,255,0,207,240,255,1,143,240,255, - 3,15,240,255,7,15,240,255,14,15,240,255,12,15,240,255, - 24,15,240,255,48,15,240,255,112,15,224,127,96,15,224,127, - 192,15,224,127,128,15,192,63,128,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,31,128,30,0,63,128,30,0,51, - 192,56,0,96,224,112,0,192,127,192,0,33,45,225,38,3, - 0,0,24,0,0,0,0,60,0,0,0,0,62,0,0,0, - 0,31,0,0,0,0,15,128,0,0,0,7,128,0,0,0, - 1,192,0,0,0,0,224,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,33,45,225,38,3,0,0,0,7,0,0,0,0,15, - 0,0,0,0,15,0,0,0,0,31,0,0,0,0,60,0, - 0,0,0,56,0,0,0,0,112,0,0,0,0,224,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,7,255,128,15,224,1,254,0,15,224,0,120,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,7,224,0,48,0,7,224,0,96,0,7,240,0,96,0, - 3,240,0,192,0,1,248,1,192,0,0,252,3,128,0,0, - 127,159,0,0,0,31,252,0,0,33,45,225,38,3,0,0, - 0,64,0,0,0,0,224,0,0,0,1,240,0,0,0,3, - 240,0,0,0,7,248,0,0,0,15,28,0,0,0,30,15, - 0,0,0,112,3,128,0,0,0,0,128,0,0,0,0,0, - 0,0,0,0,0,0,255,255,7,255,128,15,224,1,254,0, - 15,224,0,120,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,7,224,0,48,0,7,224,0, - 96,0,7,240,0,96,0,3,240,0,192,0,1,248,1,192, - 0,0,252,3,128,0,0,127,159,0,0,0,31,252,0,0, - 33,44,220,38,3,0,0,60,15,0,0,0,126,31,128,0, - 0,126,31,128,0,0,126,31,128,0,0,126,31,128,0,0, - 60,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,254,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,32,45,180,35,2,0,0,0,7,0,0,0,15,0, - 0,0,31,0,0,0,31,0,0,0,60,0,0,0,120,0, - 0,0,112,0,0,0,192,0,0,0,128,0,0,0,0,0, - 0,0,0,0,255,254,15,255,31,248,1,248,15,248,0,240, - 7,248,0,224,7,248,0,192,3,252,0,192,3,252,0,192, - 1,252,1,128,1,254,1,128,0,254,3,0,0,255,3,0, - 0,255,3,0,0,127,134,0,0,127,134,0,0,63,196,0, - 0,63,204,0,0,31,204,0,0,31,248,0,0,15,248,0, - 0,15,248,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,255,255,0,29,34,136,34, - 3,0,255,255,128,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,255,248,0,7,240, - 63,0,7,240,15,192,7,240,15,224,7,240,15,240,7,240, - 7,240,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,240,7,240, - 15,240,7,240,15,224,7,240,15,192,7,240,31,0,7,255, - 252,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,23,34,102,27,2,0, - 0,127,0,1,227,128,3,195,224,7,193,224,7,193,240,15, - 129,240,15,129,240,15,129,240,31,129,240,31,129,224,31,129, - 224,31,129,192,31,131,128,31,188,0,31,131,0,31,129,192, - 31,128,240,31,128,248,31,128,248,31,128,124,31,128,124,31, - 128,126,31,128,126,31,128,126,31,128,126,31,128,126,31,128, - 126,31,184,126,31,252,124,31,252,124,31,248,252,31,248,248, - 31,184,240,255,159,224,21,34,102,24,2,0,24,0,0,60, - 0,0,62,0,0,30,0,0,15,0,0,7,128,0,3,128, - 0,1,192,0,0,192,0,0,0,0,0,0,0,0,0,0, - 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, - 31,128,126,31,128,60,31,128,0,127,128,3,223,128,15,31, - 128,30,31,128,62,31,128,124,31,128,252,31,128,252,31,128, - 252,31,136,252,31,136,252,31,152,254,63,144,127,127,240,63, - 143,224,21,34,102,24,2,0,0,12,0,0,30,0,0,62, - 0,0,62,0,0,124,0,0,120,0,0,224,0,0,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,15,248,0,24, - 62,0,56,63,0,120,31,0,124,31,128,126,31,128,126,31, - 128,62,31,128,8,63,128,1,255,128,7,159,128,30,31,128, - 62,31,128,124,31,128,124,31,128,252,31,128,252,31,136,252, - 31,136,252,31,152,254,63,144,127,127,240,63,143,224,21,34, - 102,24,2,0,1,192,0,1,224,0,3,224,0,3,224,0, - 7,240,0,7,56,0,14,28,0,28,14,0,48,7,0,0, - 0,0,0,0,0,0,0,0,15,248,0,24,62,0,56,63, - 0,120,31,0,124,31,128,126,31,128,126,31,128,62,31,128, - 8,63,128,1,255,128,7,159,128,30,31,128,62,31,128,124, - 31,128,124,31,128,252,31,128,252,31,136,252,31,136,252,31, - 152,254,63,144,127,127,240,63,143,224,21,32,96,24,2,0, - 15,3,0,31,195,0,63,254,0,49,252,0,32,120,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,248, - 0,24,62,0,56,63,0,120,31,0,124,31,128,126,31,128, - 126,31,128,62,31,128,8,63,128,1,255,128,7,159,128,30, - 31,128,62,31,128,124,31,128,124,31,128,252,31,128,252,31, - 136,252,31,136,252,31,152,254,63,144,127,127,240,63,143,224, - 21,32,96,24,2,0,60,30,0,126,63,0,126,63,0,126, - 63,0,126,63,0,60,30,0,0,0,0,0,0,0,0,0, - 0,0,0,0,15,248,0,24,62,0,56,63,0,120,31,0, - 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, - 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, - 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, - 127,127,240,63,143,224,21,34,102,24,2,1,3,240,0,7, - 248,0,14,28,0,12,12,0,12,12,0,12,12,0,14,28, - 0,7,248,0,1,224,0,0,0,0,0,0,0,0,0,0, - 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, - 31,128,126,31,128,62,31,128,8,63,128,1,255,128,7,31, - 128,30,31,128,62,31,128,124,31,128,124,31,128,252,31,128, - 252,31,136,252,31,136,252,31,152,254,63,144,127,111,240,63, - 199,224,29,22,88,34,2,1,15,240,255,128,24,63,195,192, - 56,63,195,224,120,31,131,240,124,31,129,240,126,31,129,240, - 126,31,129,248,62,31,129,248,0,63,129,248,1,255,129,248, - 7,31,255,248,30,31,128,0,62,31,128,0,124,31,128,0, - 124,31,128,8,252,31,128,8,252,31,128,24,252,31,192,16, - 252,31,192,16,254,51,192,32,127,97,240,64,63,192,255,128, - 18,32,96,22,2,247,3,252,0,15,6,0,31,7,0,62, - 7,128,62,7,128,126,15,128,124,31,128,252,31,128,252,31, - 0,252,14,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,124,0,64,124,0,192,62,0,128,62,1,128,30, - 1,0,15,130,0,3,252,0,0,128,0,0,128,0,1,128, - 0,0,240,0,0,56,0,0,60,0,0,60,0,0,60,0, - 4,120,0,3,240,0,18,34,102,23,2,0,28,0,0,30, - 0,0,30,0,0,31,0,0,15,128,0,7,128,0,3,192, - 0,0,192,0,0,96,0,0,0,0,0,0,0,0,0,0, - 3,252,0,14,30,0,30,31,0,62,15,128,60,15,128,124, - 15,128,124,15,192,252,15,192,252,15,192,252,15,192,255,255, - 192,252,0,0,252,0,0,252,0,0,252,0,64,124,0,64, - 124,0,192,62,0,192,62,1,128,31,1,0,15,135,0,3, - 252,0,18,34,102,23,2,0,0,14,0,0,31,0,0,31, - 0,0,62,0,0,60,0,0,120,0,0,240,0,0,224,0, - 1,128,0,0,0,0,0,0,0,0,0,0,3,252,0,14, - 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, - 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, - 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, - 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, - 102,23,2,0,1,224,0,1,224,0,1,240,0,3,240,0, - 3,248,0,7,56,0,14,28,0,28,14,0,56,3,0,0, - 0,0,0,0,0,0,0,0,3,252,0,14,30,0,30,31, - 0,62,15,128,60,15,128,124,15,128,124,15,192,252,15,192, - 252,15,192,252,15,192,255,255,192,252,0,0,252,0,0,252, - 0,0,252,0,64,124,0,64,124,0,192,62,0,192,62,0, - 128,31,1,0,15,131,0,3,252,0,18,32,96,23,2,0, - 30,15,0,63,31,128,63,31,128,63,31,128,63,31,128,30, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 12,34,68,15,1,0,96,0,240,0,248,0,248,0,124,0, - 28,0,14,0,7,0,3,0,0,0,0,0,0,0,127,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,127,240,12,34,68,15,2,0, - 0,224,1,240,1,240,3,224,7,192,7,128,15,0,28,0, - 24,0,0,0,0,0,0,0,255,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,255,224,14,34,68,14,0,0,7,128,15,128,15,128, - 15,192,31,224,60,224,56,112,112,60,192,12,0,0,0,0, - 0,0,63,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,63,248,14,32, - 64,14,1,0,120,120,252,252,252,252,252,252,252,252,120,120, - 0,0,0,0,0,0,0,0,63,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,63,248,20,34,102,24,2,0,15,193,128,15,227,0, - 7,254,0,3,248,0,1,248,0,1,252,0,3,254,0,14, - 126,0,24,63,0,0,63,128,0,31,128,0,15,192,7,255, - 192,15,15,224,30,7,224,62,7,224,62,7,224,124,7,240, - 124,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,7, - 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, - 23,32,96,27,2,0,3,224,96,7,248,64,15,255,192,12, - 127,128,8,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,31,192,63,35,224,63,65,240,63,65,248, - 63,129,248,63,129,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,255,199,254,20,34,102,24,2,0,14,0,0,31, - 0,0,31,0,0,15,128,0,7,192,0,3,192,0,1,224, - 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, - 3,252,0,15,15,0,30,7,128,62,7,192,62,7,192,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,3,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,20,34,102,24,2,0,0,7,0,0,15,128,0,15, - 128,0,31,0,0,62,0,0,60,0,0,120,0,0,224,0, - 0,192,0,0,0,0,0,0,0,0,0,0,3,252,0,15, - 15,0,30,7,128,62,7,192,62,7,192,124,3,224,124,3, - 224,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,124,3,224,124,3,224,62, - 7,192,62,7,192,30,7,128,15,15,0,3,252,0,20,34, - 102,24,2,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,252,0,3,156,0,7,14,0,14,7,0,24,1,128,0, - 0,0,0,0,0,0,0,0,3,252,0,15,15,0,30,7, - 128,62,7,192,62,7,192,124,3,224,124,3,224,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,224,124,3,224,62,7,192,62,7, - 192,30,7,128,15,15,0,3,252,0,20,32,96,24,2,0, - 7,192,128,15,240,128,31,255,128,16,255,0,16,62,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,252, - 0,15,15,0,30,7,128,62,7,192,62,7,192,124,3,224, - 124,3,224,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,3, - 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, - 20,32,96,24,2,0,30,15,0,63,31,128,63,31,128,63, - 31,128,63,31,128,30,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,252,0,15,15,0,30,7,128,62,7,192, - 62,7,192,124,3,224,124,3,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,124,3,224,124,3,224,62,7,192,62,7,192,30,7,128, - 15,15,0,3,252,0,41,32,192,45,2,253,0,0,28,0, - 0,0,0,0,62,0,0,0,0,0,127,0,0,0,0,0, - 127,0,0,0,0,0,127,0,0,0,0,0,62,0,0,0, - 0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,28,0,0,0,0,0,62,0,0,0,0,0, - 127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0, - 0,0,62,0,0,0,0,0,28,0,0,0,20,22,66,24, - 2,1,3,252,48,15,15,96,30,15,192,62,7,192,62,7, - 192,124,7,224,124,7,224,252,15,240,252,27,240,252,51,240, - 252,115,240,252,227,240,252,195,240,253,131,240,255,3,240,126, - 3,224,126,3,224,62,7,192,62,7,192,63,7,128,111,15, - 0,195,252,0,24,34,102,26,1,0,7,0,0,7,128,0, - 7,192,0,7,192,0,3,224,0,1,224,0,0,112,0,0, - 48,0,0,24,0,0,0,0,0,0,0,0,0,0,255,143, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,131, - 248,31,131,248,31,133,248,15,133,248,15,201,248,7,241,255, - 24,34,102,26,1,0,0,3,128,0,3,128,0,7,128,0, - 15,128,0,15,0,0,30,0,0,28,0,0,56,0,0,48, - 0,0,0,0,0,0,0,0,0,0,255,143,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,131,248,31,131,248, - 31,133,248,15,133,248,15,201,248,7,241,255,24,34,102,26, - 1,0,0,56,0,0,120,0,0,124,0,0,252,0,0,254, - 0,1,206,0,3,135,0,7,3,128,14,0,192,0,0,0, - 0,0,0,0,0,0,255,143,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,131,248,31,131,248,31,133,248,15, - 133,248,15,201,248,7,241,255,24,32,96,26,1,0,7,131, - 192,15,199,224,15,199,224,15,199,224,15,199,224,7,131,192, - 0,0,0,0,0,0,0,0,0,0,0,0,255,135,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,131,248,31, - 131,248,31,133,248,15,133,248,15,201,248,7,241,255,23,45, - 135,25,1,245,0,1,192,0,1,224,0,3,224,0,7,192, - 0,7,128,0,15,0,0,14,0,0,28,0,0,24,0,0, - 0,0,0,0,0,0,0,0,255,241,254,63,192,120,31,128, - 48,15,192,32,15,192,32,15,192,96,7,224,64,7,224,64, - 3,240,192,3,240,128,1,248,128,1,249,128,0,249,0,0, - 253,0,0,253,0,0,126,0,0,126,0,0,62,0,0,60, - 0,0,28,0,0,28,0,0,12,0,0,8,0,0,8,0, - 0,8,0,15,16,0,31,16,0,63,144,0,63,32,0,62, - 32,0,62,64,0,31,192,0,15,0,0,22,44,132,25,1, - 244,3,128,0,15,128,0,63,128,0,255,128,0,223,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 135,240,31,159,248,31,177,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,248,31,129,248, - 31,129,240,31,129,240,31,129,224,31,131,192,31,131,128,31, - 135,128,31,134,0,31,140,0,31,152,0,31,224,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,30,0,0,120,0,0,224, - 0,0,128,0,0,23,44,132,25,1,245,3,193,224,7,227, - 240,7,227,240,7,227,240,7,227,240,3,193,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,241,254,63, - 192,120,31,128,48,15,192,32,15,192,32,15,192,96,7,224, - 64,7,224,64,3,240,192,3,240,128,1,240,128,1,249,128, - 0,249,0,0,253,0,0,253,0,0,126,0,0,126,0,0, - 62,0,0,60,0,0,28,0,0,28,0,0,12,0,0,8, - 0,0,8,0,0,8,0,15,16,0,31,16,0,63,144,0, - 63,32,0,62,32,0,62,64,0,31,192,0,15,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=44 x= 6 y=13 dx=45 dy= 0 ascent=35 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =35 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35n[1539] U8G_SECTION(".progmem.u8g_font_osb35n") = { - 0,133,60,215,242,34,0,0,0,0,42,57,0,35,247,34, - 0,17,19,57,24,4,13,1,128,0,3,192,0,3,192,0, - 227,195,0,241,135,128,248,143,128,252,159,128,126,191,0,3, - 192,0,3,192,0,126,191,0,252,159,128,248,143,128,241,135, - 128,225,195,0,3,192,0,3,192,0,3,192,0,1,128,0, - 41,41,246,45,2,249,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,255,255,255,255,255,128,255,255, - 255,255,255,128,255,255,255,255,255,128,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,9,15,30,13, - 2,248,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,2,0,6,0,28,0,56,0,96,0, - 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, - 8,6,6,14,3,1,126,255,255,255,255,126,16,44,88,22, - 3,247,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,1,224,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,14,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,120,0,112,0, - 112,0,240,0,224,0,224,0,224,0,23,35,105,28,2,0, - 0,16,0,0,254,0,3,199,128,7,131,192,15,1,224,15, - 1,224,31,1,240,63,1,248,63,1,248,127,1,248,127,1, - 252,127,1,252,127,1,252,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,255,1,254,127,1,252,127,1,252,127,1,252,127,1, - 252,63,1,248,63,1,248,31,1,240,15,1,224,15,1,224, - 7,131,192,3,199,128,0,254,0,16,34,68,28,6,0,0, - 240,0,240,1,240,7,240,255,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,255, - 255,255,255,21,34,102,28,3,1,7,255,0,14,15,192,28, - 7,224,56,7,240,120,3,240,120,3,248,248,3,248,252,3, - 248,255,3,248,255,3,248,255,7,248,127,7,240,63,15,240, - 12,15,224,0,31,192,0,63,128,0,127,0,0,252,0,1, - 240,0,3,192,0,7,128,0,14,0,24,12,0,24,24,0, - 24,48,0,24,96,0,24,111,192,56,127,255,248,255,255,240, - 239,255,240,195,255,240,193,255,224,192,255,192,192,63,128,22, - 34,102,28,3,1,7,255,0,14,15,192,28,7,224,56,7, - 240,120,3,240,124,3,248,126,3,248,127,3,248,127,3,248, - 127,3,248,63,3,240,30,3,240,0,7,224,0,7,192,0, - 15,0,7,248,0,0,31,128,0,15,192,0,7,224,0,7, - 240,0,3,248,0,3,248,62,3,252,127,3,252,255,3,252, - 255,3,252,255,3,252,254,3,252,252,3,248,248,7,248,120, - 7,240,56,15,224,30,31,192,15,255,0,23,34,102,28,2, - 0,0,7,192,0,15,192,0,15,192,0,31,192,0,63,192, - 0,63,192,0,127,192,0,127,192,0,255,192,0,223,192,1, - 223,192,1,159,192,3,159,192,7,31,192,6,31,192,14,31, - 192,12,31,192,28,31,192,24,31,192,56,31,192,112,31,192, - 96,31,192,224,31,192,255,255,254,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,0,31, - 192,7,255,252,7,255,252,21,34,102,28,4,0,32,0,192, - 60,7,128,63,255,128,63,255,0,63,254,0,63,248,0,63, - 224,0,63,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,49,252,0,54,63,0,60,15,192,56,15,224, - 48,15,224,32,7,240,0,7,240,0,7,248,0,7,248,8, - 7,248,62,7,248,126,7,248,254,7,248,254,7,248,254,7, - 240,248,7,240,240,7,224,112,15,192,48,15,192,28,31,0, - 15,252,0,22,34,102,28,3,1,0,255,128,3,192,192,7, - 192,96,15,128,240,31,131,240,31,7,240,63,15,240,63,15, - 240,127,15,224,127,7,192,127,3,0,127,0,0,255,0,0, - 255,0,0,255,63,0,255,255,192,255,195,224,255,131,240,255, - 3,248,255,1,248,255,1,252,255,1,252,255,1,252,127,1, - 252,127,1,252,127,1,252,127,1,252,63,1,248,63,1,248, - 31,1,248,15,129,240,7,131,224,3,195,192,1,255,0,20, - 34,102,28,5,1,71,224,224,207,240,224,223,248,112,255,252, - 48,255,254,48,255,255,240,255,255,240,224,31,176,192,0,32, - 192,0,96,128,0,96,128,0,192,128,1,192,0,1,128,0, - 3,128,0,7,0,0,15,0,0,14,0,0,30,0,0,60, - 0,0,124,0,0,252,0,1,252,0,1,248,0,3,248,0, - 3,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,7,248,0,3,248,0,3,240,0,23,34,102,28,3, - 1,1,255,128,7,0,192,12,0,96,28,0,48,56,0,24, - 56,0,24,120,0,24,120,0,24,124,0,24,126,0,24,127, - 0,48,127,192,32,127,240,96,63,255,128,63,255,0,31,255, - 192,15,255,240,7,255,248,15,255,248,24,63,252,48,15,252, - 112,3,254,96,0,254,224,0,126,224,0,62,224,0,30,224, - 0,30,224,0,12,240,0,28,112,0,24,56,0,24,28,0, - 48,15,0,192,3,255,0,22,34,102,28,3,1,3,254,0, - 15,15,0,31,7,128,62,7,192,126,3,224,126,3,240,126, - 3,240,254,3,248,254,3,248,254,3,248,254,3,248,254,3, - 252,254,3,252,254,3,252,126,3,252,127,7,252,63,7,252, - 31,15,252,15,255,252,3,243,252,0,3,252,0,3,252,0, - 3,248,7,3,248,31,131,248,31,195,248,63,195,240,63,195, - 240,63,131,224,62,7,224,60,7,192,28,15,128,14,31,0, - 7,252,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=25 dx=52 dy= 0 ascent=38 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35r[10245] U8G_SECTION(".progmem.u8g_font_osb35r") = { - 0,133,60,215,242,35,12,218,29,222,32,127,246,38,245,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,31,62,13, - 2,248,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,3,0,6,0,28,0,56,0,96,0, - 37,40,200,45,4,249,0,0,0,0,48,0,0,0,0,240, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,126,0,0,0,1,252,0,0,0,7,240,0,0,0, - 15,192,0,0,0,63,0,0,0,0,252,0,0,0,3,240, - 0,0,0,15,224,0,0,0,63,128,0,0,0,126,0,0, - 0,1,248,0,0,0,7,224,0,0,0,31,128,0,0,0, - 127,0,0,0,0,252,0,0,0,0,248,0,0,0,0,126, - 0,0,0,0,31,128,0,0,0,15,224,0,0,0,3,248, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,192,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,248,0,0,0,0,248,0,0,0,0,48,41,13, - 78,45,2,6,255,255,255,255,255,128,255,255,255,255,255,128, - 255,255,255,255,255,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,128,255,255,255,255,255,128,255,255,255,255, - 255,128,37,40,200,45,4,249,96,0,0,0,0,120,0,0, - 0,0,252,0,0,0,0,63,0,0,0,0,15,192,0,0, - 0,3,240,0,0,0,1,252,0,0,0,0,127,0,0,0, - 0,31,128,0,0,0,7,224,0,0,0,1,248,0,0,0, - 0,126,0,0,0,0,63,128,0,0,0,15,224,0,0,0, - 3,240,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,7,240,0,0,0,1,248,0,0,0,0, - 248,0,0,0,3,240,0,0,0,15,192,0,0,0,63,128, - 0,0,0,254,0,0,0,1,248,0,0,0,7,224,0,0, - 0,31,128,0,0,0,126,0,0,0,1,252,0,0,0,7, - 240,0,0,0,31,192,0,0,0,63,0,0,0,0,252,0, - 0,0,3,240,0,0,0,15,224,0,0,0,63,128,0,0, - 0,254,0,0,0,0,248,0,0,0,0,96,0,0,0,0, - 15,34,68,22,3,1,31,240,59,248,96,252,96,252,192,126, - 192,126,192,126,192,126,192,126,64,252,96,252,48,248,1,240, - 1,224,3,192,3,128,7,0,7,0,14,0,12,16,12,16, - 12,16,12,16,6,32,3,192,0,0,0,0,0,128,3,224, - 7,240,7,240,7,240,7,240,3,224,35,34,170,39,2,1, - 0,15,255,0,0,0,56,1,224,0,0,224,0,112,0,1, - 128,0,28,0,7,0,0,14,0,14,0,0,7,0,12,0, - 248,3,0,28,3,205,243,128,56,7,135,241,128,56,15,7, - 225,192,112,31,7,225,192,112,62,7,224,224,112,62,7,224, - 224,224,124,7,192,224,224,124,7,192,224,224,124,7,192,224, - 224,252,15,192,224,224,248,15,128,224,224,248,15,128,224,224, - 248,15,129,192,224,248,31,129,192,224,248,31,129,128,112,248, - 31,3,128,112,248,63,3,0,112,120,111,6,0,56,60,199, - 140,0,56,31,3,240,0,28,0,0,0,0,14,0,0,0, - 0,7,0,0,0,0,3,128,0,0,0,1,192,0,96,0, - 0,120,1,192,0,0,31,255,0,0,33,35,175,36,2,0, - 0,0,192,0,0,0,1,192,0,0,0,1,224,0,0,0, - 1,224,0,0,0,3,224,0,0,0,3,240,0,0,0,3, - 240,0,0,0,7,240,0,0,0,7,248,0,0,0,7,248, - 0,0,0,15,248,0,0,0,15,252,0,0,0,15,252,0, - 0,0,25,252,0,0,0,25,254,0,0,0,25,254,0,0, - 0,48,254,0,0,0,48,255,0,0,0,32,255,0,0,0, - 96,127,0,0,0,96,127,128,0,0,64,127,128,0,0,192, - 63,128,0,0,192,63,192,0,0,255,255,192,0,1,255,255, - 192,0,1,128,31,224,0,1,0,31,224,0,3,0,15,224, - 0,3,0,15,240,0,2,0,15,240,0,6,0,7,240,0, - 15,0,7,248,0,31,0,15,252,0,255,240,255,255,128,28, - 34,136,33,3,0,255,255,240,0,15,224,126,0,15,224,31, - 0,15,224,31,128,15,224,15,192,15,224,15,192,15,224,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,192,15,224,15,192,15,224,31,128,15,224,30, - 0,15,224,60,0,15,255,224,0,15,224,124,0,15,224,63, - 0,15,224,31,128,15,224,15,192,15,224,15,224,15,224,15, - 240,15,224,15,240,15,224,15,240,15,224,15,240,15,224,15, - 240,15,224,15,240,15,224,15,224,15,224,15,224,15,224,31, - 192,15,224,31,128,15,224,126,0,255,255,248,0,26,34,136, - 31,3,1,0,127,193,128,1,224,241,128,3,192,63,128,15, - 128,31,128,15,128,15,128,31,0,15,128,63,0,7,128,63, - 0,7,128,127,0,3,128,127,0,3,128,127,0,3,128,127, - 0,1,128,255,0,1,128,255,0,1,128,255,0,1,128,255, - 0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, - 0,0,0,255,0,0,0,255,0,0,192,127,0,0,192,127, - 0,0,192,127,0,0,128,63,0,1,128,63,0,1,128,63, - 0,1,128,31,128,3,0,15,128,3,0,7,128,6,0,3, - 192,12,0,1,224,56,0,0,127,224,0,32,34,136,37,3, - 0,255,255,248,0,15,224,31,0,15,224,7,128,15,224,3, - 224,15,224,1,240,15,224,1,240,15,224,0,248,15,224,0, - 252,15,224,0,252,15,224,0,254,15,224,0,254,15,224,0, - 254,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, - 255,15,224,0,255,15,224,0,255,15,224,0,255,15,224,0, - 255,15,224,0,255,15,224,0,254,15,224,0,254,15,224,0, - 254,15,224,0,254,15,224,0,252,15,224,0,252,15,224,0, - 248,15,224,1,240,15,224,1,224,15,224,3,192,15,224,7, - 128,15,224,30,0,255,255,248,0,27,34,136,33,3,0,255, - 255,255,224,15,224,31,224,15,224,7,224,15,224,3,224,15, - 224,1,224,15,224,1,224,15,224,0,224,15,224,0,224,15, - 224,0,96,15,224,48,96,15,224,48,96,15,224,48,0,15, - 224,112,0,15,224,112,0,15,224,240,0,15,225,240,0,15, - 255,240,0,15,225,240,0,15,224,240,0,15,224,112,0,15, - 224,112,32,15,224,48,96,15,224,48,96,15,224,48,96,15, - 224,0,96,15,224,0,96,15,224,0,224,15,224,0,224,15, - 224,1,224,15,224,3,224,15,224,3,224,15,224,15,224,255, - 255,255,224,255,255,255,224,28,34,136,32,3,0,255,255,255, - 240,7,240,15,240,7,240,3,240,7,240,1,240,7,240,1, - 240,7,240,0,240,7,240,0,240,7,240,0,112,7,240,0, - 112,7,240,24,48,7,240,24,48,7,240,24,48,7,240,56, - 48,7,240,56,0,7,240,120,0,7,240,248,0,7,255,248, - 0,7,240,248,0,7,240,120,0,7,240,56,0,7,240,56, - 0,7,240,24,0,7,240,24,0,7,240,24,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,255,255,128,0,30,34,136,35,3,1,0,127,224,192,0, - 224,120,192,3,192,31,192,7,128,15,192,15,128,7,192,31, - 0,7,192,31,0,3,192,63,0,3,192,63,0,1,192,127, - 0,1,192,127,0,1,192,127,0,0,192,255,0,0,192,255, - 0,0,192,255,0,0,0,255,0,0,0,255,0,0,0,255, - 3,255,252,255,3,255,252,255,0,31,192,255,0,31,192,255, - 0,31,192,127,0,31,192,127,0,31,192,127,0,31,192,127, - 0,31,192,63,0,31,192,63,0,31,192,31,0,31,192,15, - 128,57,192,15,128,49,192,7,192,96,192,1,224,192,192,0, - 127,128,192,34,34,170,39,3,0,255,255,63,255,192,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,255,255,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,255,255, - 63,255,192,16,34,68,21,3,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,23,34,102, - 26,2,0,1,255,254,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,30,15,224,126,15,224,127,15,224,255,15,224,255,15, - 224,254,15,224,254,15,224,248,15,192,112,15,192,96,15,128, - 48,31,0,24,30,0,15,248,0,33,34,170,37,3,0,255, - 255,31,254,0,7,240,7,240,0,7,240,3,192,0,7,240, - 3,128,0,7,240,3,0,0,7,240,7,0,0,7,240,14, - 0,0,7,240,12,0,0,7,240,24,0,0,7,240,48,0, - 0,7,240,96,0,0,7,240,224,0,0,7,240,224,0,0, - 7,241,240,0,0,7,243,240,0,0,7,247,248,0,0,7, - 255,252,0,0,7,255,252,0,0,7,249,254,0,0,7,241, - 254,0,0,7,240,255,0,0,7,240,255,0,0,7,240,127, - 128,0,7,240,127,128,0,7,240,63,192,0,7,240,63,192, - 0,7,240,31,224,0,7,240,31,224,0,7,240,15,240,0, - 7,240,15,240,0,7,240,7,248,0,7,240,7,248,0,7, - 240,7,252,0,255,255,63,255,128,28,34,136,32,3,0,255, - 255,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,48,7, - 240,0,48,7,240,0,48,7,240,0,112,7,240,0,112,7, - 240,0,112,7,240,0,240,7,240,0,240,7,240,0,240,7, - 240,1,240,7,240,3,240,7,240,3,240,7,240,7,240,255, - 255,255,240,255,255,255,240,39,34,170,43,2,0,255,240,0, - 63,254,7,240,0,63,192,7,248,0,63,192,7,248,0,63, - 192,7,248,0,127,192,7,252,0,127,192,7,252,0,95,192, - 7,252,0,95,192,7,254,0,223,192,6,254,0,223,192,6, - 255,0,159,192,6,127,0,159,192,6,127,1,159,192,6,127, - 129,159,192,6,63,129,31,192,6,63,129,31,192,6,63,195, - 31,192,6,31,194,31,192,6,31,226,31,192,6,15,226,31, - 192,6,15,230,31,192,6,15,244,31,192,6,7,244,31,192, - 6,7,244,31,192,6,7,252,31,192,6,3,248,31,192,6, - 3,248,31,192,6,1,248,31,192,6,1,248,31,192,6,1, - 240,31,192,6,0,240,31,192,15,0,240,31,192,63,192,240, - 31,192,255,240,97,255,254,34,35,175,37,2,255,255,224,15, - 255,192,31,240,3,255,0,15,240,0,252,0,15,248,0,120, - 0,7,252,0,48,0,3,254,0,48,0,3,254,0,48,0, - 3,255,0,48,0,3,255,128,48,0,3,255,128,48,0,3, - 127,192,48,0,3,63,224,48,0,3,31,224,48,0,3,31, - 240,48,0,3,15,248,48,0,3,7,248,48,0,3,7,252, - 48,0,3,3,254,48,0,3,1,255,48,0,3,1,255,48, - 0,3,0,255,176,0,3,0,127,240,0,3,0,127,240,0, - 3,0,63,240,0,3,0,31,240,0,3,0,15,240,0,3, - 0,15,240,0,3,0,7,240,0,3,0,3,240,0,3,0, - 3,240,0,7,128,1,240,0,15,192,0,240,0,63,240,0, - 240,0,255,252,0,112,0,0,0,0,48,0,28,34,136,33, - 3,1,0,63,192,0,0,224,112,0,3,192,56,0,7,128, - 30,0,15,128,30,0,15,0,15,0,31,0,15,128,63,0, - 15,192,63,0,15,192,127,0,15,192,127,0,15,224,127,0, - 15,224,127,0,15,224,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, - 15,224,127,0,15,192,63,0,15,192,63,0,15,192,31,0, - 15,128,15,0,15,0,15,128,31,0,7,128,30,0,3,192, - 60,0,0,224,112,0,0,63,192,0,29,34,136,34,3,0, - 255,255,248,0,7,240,63,0,7,240,15,192,7,240,15,224, - 7,240,15,240,7,240,7,240,7,240,7,248,7,240,7,248, - 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,248, - 7,240,7,240,7,240,15,240,7,240,15,224,7,240,15,192, - 7,240,31,0,7,255,252,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,255,255,128,0,28,45,180,33,3,246,0,63, - 192,0,0,224,112,0,3,192,56,0,7,128,30,0,15,128, - 30,0,15,0,15,0,31,0,15,128,63,0,15,128,63,0, - 15,192,127,0,15,192,127,0,15,224,127,0,15,224,127,0, - 15,224,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,255,0,15,240,255,0,15,240,255,0, - 15,240,255,0,15,240,127,0,15,224,127,0,15,224,127,0, - 15,224,63,0,15,192,63,15,15,192,31,17,143,128,15,160, - 223,0,15,160,223,0,7,160,254,0,3,224,252,16,0,240, - 248,16,0,127,224,16,0,0,224,16,0,0,224,16,0,0, - 224,48,0,0,240,48,0,0,248,112,0,0,255,240,0,0, - 255,224,0,0,127,224,0,0,127,192,0,0,63,128,0,0, - 31,0,32,36,144,36,3,254,255,255,240,0,7,240,126,0, - 7,240,63,0,7,240,63,128,7,240,31,192,7,240,31,192, - 7,240,31,224,7,240,31,224,7,240,31,224,7,240,31,224, - 7,240,31,224,7,240,31,192,7,240,63,192,7,240,63,0, - 7,240,126,0,7,255,240,0,7,240,240,0,7,240,62,0, - 7,240,63,0,7,240,31,128,7,240,31,128,7,240,31,192, - 7,240,31,192,7,240,31,192,7,240,31,192,7,240,31,195, - 7,240,31,195,7,240,31,195,7,240,31,195,7,240,31,195, - 7,240,31,198,7,240,31,198,7,240,15,238,255,255,135,252, - 0,0,3,248,0,0,0,96,23,34,102,29,4,1,7,252, - 24,24,15,24,56,3,248,112,1,248,112,0,248,240,0,120, - 248,0,120,248,0,56,252,0,24,254,0,24,255,128,24,255, - 224,8,127,240,0,127,252,0,63,254,0,31,255,128,15,255, - 192,3,255,240,1,255,248,128,127,248,192,31,252,192,15,252, - 192,3,254,224,1,254,224,0,126,224,0,62,240,0,30,248, - 0,30,248,0,28,252,0,28,254,0,24,239,0,48,195,128, - 96,193,255,128,29,34,136,34,3,0,255,255,255,248,255,63, - 231,248,252,31,193,248,248,31,192,248,248,31,192,248,240,31, - 192,120,224,31,192,56,224,31,192,56,224,31,192,56,192,31, - 192,24,192,31,192,24,192,31,192,24,192,31,192,24,128,31, - 192,8,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,0,31, - 192,0,0,31,192,0,0,31,192,0,0,31,192,0,3,255, - 254,0,33,34,170,38,3,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,34,34,170,37,2,0,255,255,135,255,192,15,248,0, - 126,0,7,248,0,56,0,7,248,0,56,0,3,248,0,48, - 0,3,252,0,48,0,3,252,0,48,0,1,254,0,96,0, - 1,254,0,96,0,0,254,0,96,0,0,255,0,192,0,0, - 255,0,192,0,0,127,0,192,0,0,127,129,128,0,0,127, - 129,128,0,0,63,129,128,0,0,63,195,0,0,0,63,195, - 0,0,0,31,195,0,0,0,31,230,0,0,0,15,230,0, - 0,0,15,246,0,0,0,15,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,248,0,0,0,3,248,0,0,0, - 3,248,0,0,0,3,240,0,0,0,1,240,0,0,0,1, - 240,0,0,0,0,224,0,0,0,0,224,0,0,0,0,224, - 0,0,49,34,238,52,2,0,255,255,63,255,207,255,128,31, - 252,7,254,0,252,0,7,248,3,252,0,112,0,7,248,1, - 252,0,112,0,3,248,1,254,0,96,0,3,252,1,254,0, - 96,0,3,252,0,254,0,96,0,1,252,0,254,0,192,0, - 1,254,1,255,0,192,0,1,254,1,255,0,192,0,0,254, - 1,255,1,128,0,0,255,3,127,129,128,0,0,255,3,63, - 129,128,0,0,127,3,63,129,128,0,0,127,135,63,195,0, - 0,0,127,134,31,195,0,0,0,63,134,31,195,0,0,0, - 63,198,31,231,0,0,0,31,204,15,230,0,0,0,31,204, - 15,230,0,0,0,31,236,15,246,0,0,0,15,248,7,252, - 0,0,0,15,248,7,252,0,0,0,15,248,7,252,0,0, - 0,7,248,3,252,0,0,0,7,240,3,248,0,0,0,7, - 240,3,248,0,0,0,3,240,1,248,0,0,0,3,224,1, - 240,0,0,0,3,224,1,240,0,0,0,1,224,0,240,0, - 0,0,1,192,0,240,0,0,0,1,192,0,224,0,0,0, - 0,192,0,96,0,0,33,34,170,36,2,0,127,255,31,254, - 0,31,252,3,240,0,7,248,3,192,0,3,248,3,128,0, - 3,252,3,128,0,1,252,3,0,0,1,254,7,0,0,0, - 255,6,0,0,0,255,12,0,0,0,127,140,0,0,0,127, - 152,0,0,0,63,240,0,0,0,63,240,0,0,0,31,224, - 0,0,0,31,224,0,0,0,15,240,0,0,0,15,248,0, - 0,0,7,248,0,0,0,7,252,0,0,0,7,252,0,0, - 0,15,254,0,0,0,29,254,0,0,0,24,255,0,0,0, - 56,255,0,0,0,48,127,128,0,0,96,127,128,0,0,224, - 63,192,0,0,192,63,224,0,1,128,31,224,0,3,128,31, - 240,0,3,128,15,240,0,7,128,15,248,0,31,128,31,252, - 0,255,240,127,255,128,32,34,136,35,2,0,255,254,15,255, - 31,248,1,248,15,248,0,240,7,248,0,224,7,248,0,192, - 3,252,0,192,3,252,0,192,1,252,1,128,1,254,1,128, - 0,254,3,0,0,255,3,0,0,255,3,0,0,127,134,0, - 0,127,134,0,0,63,196,0,0,63,204,0,0,31,204,0, - 0,31,248,0,0,15,248,0,0,15,248,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,255,255,0,25,34,136,31,3,0,127,255,255,128,127,128, - 127,128,126,0,255,0,124,0,255,0,120,1,254,0,120,3, - 254,0,112,3,252,0,112,7,252,0,96,7,248,0,96,15, - 248,0,96,15,240,0,64,31,224,0,0,31,224,0,0,63, - 192,0,0,63,192,0,0,127,128,0,0,127,128,0,0,255, - 0,0,0,255,0,0,1,254,0,0,3,254,0,128,3,252, - 0,128,7,248,0,128,7,248,0,128,15,240,1,128,15,240, - 1,128,31,224,3,128,31,224,3,128,63,192,7,128,63,192, - 15,128,127,128,31,128,127,128,63,128,255,255,255,128,255,255, - 255,128,11,42,84,18,4,248,255,224,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,255,224,16,44,88,22, - 3,247,224,0,224,0,224,0,240,0,112,0,112,0,120,0, - 56,0,56,0,60,0,28,0,28,0,30,0,14,0,14,0, - 14,0,15,0,7,0,7,0,7,128,3,128,3,128,3,192, - 1,192,1,192,1,224,0,224,0,224,0,224,0,240,0,112, - 0,112,0,120,0,56,0,56,0,60,0,28,0,28,0,30, - 0,14,0,14,0,14,0,15,0,7,11,42,84,18,3,248, - 255,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,255,224,22,17,51,28,3,18,0,48,0,0,112,0, - 0,120,0,0,252,0,0,252,0,1,254,0,3,207,0,3, - 143,0,7,135,128,15,3,128,15,3,192,30,1,224,60,0, - 224,60,0,240,120,0,120,112,0,56,240,0,60,25,3,12, - 25,0,248,255,255,255,128,255,255,255,128,255,255,255,128,8, - 9,9,21,4,25,96,240,248,124,60,30,15,3,1,21,22, - 66,24,2,1,15,248,0,24,62,0,56,63,0,120,31,0, - 124,31,128,126,31,128,126,31,128,62,31,128,8,63,128,1, - 255,128,7,159,128,30,31,128,62,31,128,124,31,128,124,31, - 128,252,31,128,252,31,136,252,31,136,252,31,152,254,63,144, - 127,127,240,63,143,224,22,34,102,25,1,0,255,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,159,128,31,179,224,31,225,224,31,193,240,31,193,248,31, - 192,248,31,192,248,31,128,252,31,128,252,31,128,252,31,128, - 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,248, - 31,192,248,31,193,248,29,193,240,24,225,224,24,99,192,16, - 63,128,18,22,66,22,2,1,3,252,0,15,6,0,31,3, - 0,62,3,128,62,7,128,126,15,128,124,31,128,252,31,128, - 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,0, - 128,30,1,0,15,130,0,3,252,0,23,34,102,26,2,0, - 0,63,224,0,7,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,7,231,224,31,23,224,30,31,224,62,15,224, - 126,15,224,124,15,224,124,7,224,252,7,224,252,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,124,7,224,124,15,224,126,15,224,62,15,224,30,31,224, - 15,23,224,7,231,254,18,22,66,23,2,1,3,252,0,14, - 30,0,30,31,0,62,15,128,60,15,128,124,15,128,124,15, - 192,252,15,192,252,15,192,252,15,192,255,255,192,252,0,0, - 252,0,0,252,0,0,252,0,64,124,0,64,124,0,192,62, - 0,192,62,0,128,31,1,0,15,131,0,3,252,0,18,34, - 102,16,1,1,0,255,0,1,199,128,7,199,128,7,199,192, - 15,143,192,15,143,192,31,143,192,31,143,128,31,135,128,31, - 128,0,31,128,0,31,128,0,255,240,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,24,33,99,27,2,246, - 7,254,62,31,15,71,63,7,143,62,7,207,126,7,238,126, - 7,228,126,7,224,126,7,224,126,7,224,62,7,192,31,15, - 128,15,15,0,3,252,0,12,0,0,48,0,0,48,0,0, - 112,0,0,112,0,0,127,255,128,127,255,224,63,255,240,31, - 255,240,7,255,248,60,1,248,96,0,120,192,0,56,192,0, - 56,192,0,48,192,0,112,96,0,96,48,1,192,30,7,128, - 3,252,0,24,34,102,27,1,0,255,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,143,224, - 31,145,240,31,160,248,31,160,252,31,192,252,31,192,252,31, - 192,252,31,128,252,31,128,252,31,128,252,31,128,252,31,128, - 252,31,128,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,255,227,255,11, - 35,70,15,2,0,4,0,31,0,63,128,63,128,63,128,63, - 128,31,0,4,0,0,0,0,0,0,0,0,0,0,0,255, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,255,224,15,46,92,16,254, - 245,0,16,0,124,0,254,0,254,0,254,0,254,0,124,0, - 16,0,0,0,0,0,0,0,0,0,0,7,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,56,252,124,252,252, - 252,252,252,248,248,248,248,113,240,49,224,31,128,25,34,136, - 27,1,0,255,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,131,254,0,31,128,240,0,31,128,96,0,31, - 128,192,0,31,128,128,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,143,0,0,31,159,0,0,31,159,128,0,31, - 191,128,0,31,239,192,0,31,199,224,0,31,135,224,0,31, - 131,240,0,31,129,248,0,31,129,248,0,31,128,252,0,31, - 128,252,0,31,128,254,0,255,243,255,128,12,34,68,14,1, - 0,255,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,255,240,34,22,110,37,2,1,255,31,193,248,0, - 63,35,230,124,0,63,67,228,62,0,63,131,248,63,0,63, - 131,248,63,0,63,131,248,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,63,3,240,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,255,207,252,255,192,23,22,66,27,2,1,255, - 31,192,63,35,224,63,65,240,63,65,248,63,129,248,63,129, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,255,199, - 254,20,22,66,24,2,1,3,252,0,15,15,0,30,7,128, - 62,7,192,62,7,192,124,3,224,124,3,224,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,62,7,192,62,7,192, - 30,7,128,15,15,0,3,252,0,22,33,99,25,1,246,255, - 159,128,31,163,192,31,225,224,31,193,240,31,192,248,31,192, - 248,31,192,248,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,192,252,31, - 192,248,31,192,248,31,193,240,31,225,240,31,179,224,31,159, - 128,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,255, - 240,0,22,33,99,25,2,246,7,240,32,15,24,96,30,28, - 96,62,14,224,126,15,224,124,15,224,124,7,224,252,7,224, - 252,7,224,252,7,224,252,7,224,252,7,224,252,7,224,252, - 7,224,252,7,224,124,7,224,124,15,224,126,15,224,62,15, - 224,30,31,224,31,23,224,7,231,224,0,7,224,0,7,224, - 0,7,224,0,7,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,63,252,17,22,66,20,2, - 1,255,31,0,63,63,128,63,79,128,63,79,128,63,159,128, - 63,159,128,63,159,0,63,14,0,63,0,0,63,0,0,63, - 0,0,63,0,0,63,0,0,63,0,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 255,192,0,16,22,44,21,3,1,31,196,48,116,96,60,224, - 28,224,28,240,12,248,4,254,4,127,128,127,224,63,240,31, - 252,7,254,129,254,192,127,192,31,224,15,224,7,240,7,248, - 6,204,14,135,248,15,32,64,17,1,0,1,128,1,128,1, - 128,1,128,1,128,3,128,3,128,7,128,15,128,63,128,255, - 248,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,130,31,130,31,130,31,130,31, - 134,31,134,31,132,15,196,15,248,7,240,24,22,66,26,1, - 0,255,143,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,131,248,31,131,248,31,133,248,15,133,248,15,201,248, - 7,241,255,23,23,69,25,1,255,255,241,254,63,192,120,31, - 128,48,15,192,48,15,192,32,7,192,96,7,224,96,7,224, - 64,3,224,192,3,240,128,3,240,128,1,241,128,1,249,0, - 0,249,0,0,255,0,0,254,0,0,126,0,0,126,0,0, - 124,0,0,60,0,0,60,0,0,24,0,0,24,0,35,23, - 115,37,1,255,255,231,255,31,224,63,129,252,7,128,31,128, - 252,3,0,15,128,252,2,0,15,192,124,2,0,15,192,124, - 6,0,7,192,126,4,0,7,224,254,4,0,3,224,191,12, - 0,3,224,191,8,0,3,241,159,24,0,1,241,31,144,0, - 1,241,31,144,0,1,251,31,176,0,0,250,15,224,0,0, - 250,15,224,0,0,254,15,224,0,0,124,7,192,0,0,124, - 7,192,0,0,60,7,192,0,0,56,3,128,0,0,56,3, - 128,0,0,24,3,0,0,23,22,66,25,1,0,255,231,252, - 63,192,240,31,192,224,15,192,192,15,225,128,7,227,0,3, - 242,0,3,254,0,1,252,0,1,252,0,0,252,0,0,126, - 0,0,127,0,0,127,0,0,223,128,1,159,192,3,15,192, - 2,15,224,6,7,224,14,7,240,30,7,248,255,207,254,23, - 33,99,25,1,245,255,241,254,63,192,120,31,128,48,15,192, - 32,15,192,32,15,192,96,7,224,64,7,224,64,3,240,192, - 3,240,128,1,248,128,1,249,128,0,249,0,0,253,0,0, - 253,0,0,126,0,0,126,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,12,0,0,8,0,0,8,0,0,8,0, - 15,16,0,31,16,0,63,144,0,63,32,0,62,32,0,62, - 64,0,31,192,0,15,0,0,18,22,66,22,2,0,127,255, - 192,124,15,192,120,31,128,112,63,0,96,63,0,96,126,0, - 64,126,0,64,252,0,1,248,0,1,248,0,3,240,0,3, - 240,0,7,224,64,15,192,64,15,192,64,31,128,192,31,0, - 192,63,1,192,126,1,192,126,3,192,252,15,192,255,255,192, - 14,43,86,20,3,247,0,60,0,240,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,0,15,0,28,0, - 240,0,60,0,30,0,15,0,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,7,128,7,128,3,192,0,240,0,60,3,44,44,13, - 5,247,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,15,43, - 86,20,3,247,240,0,60,0,15,0,7,128,7,128,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,3,192,3,192,0,240,0,62, - 0,240,1,224,3,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,128,7,128,15,0,60,0,240,0,27,9,36,31,2,8, - 31,128,1,128,63,240,0,192,127,254,0,96,255,255,128,96, - 193,255,240,96,192,63,255,224,192,15,255,192,96,1,255,128, - 48,0,63,0,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=15 dx=28 dy= 0 ascent=25 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18[7816] U8G_SECTION(".progmem.u8g_font_osr18") = { - 0,68,33,235,248,18,4,197,10,125,32,255,250,25,249,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,42,0,30,0,235,192,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,96,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,7,0,0,3,18,18,7,2,250,224, - 224,224,0,64,64,64,64,64,64,64,64,224,224,224,224,224, - 224,9,18,36,15,3,253,4,0,4,0,4,0,31,0,53, - 0,100,128,229,128,197,128,196,0,196,0,196,0,228,128,100, - 128,53,0,31,0,4,0,4,0,4,0,14,18,36,19,2, - 0,0,248,1,132,3,4,2,12,6,0,6,0,6,0,62, - 0,7,224,6,0,6,0,6,0,6,0,6,0,116,4,140, - 4,139,248,112,240,11,11,22,15,2,2,159,32,113,192,64, - 64,128,96,128,32,128,32,128,32,128,32,64,64,96,192,159, - 32,15,18,36,15,0,0,252,126,56,24,24,16,28,16,12, - 32,14,64,6,64,7,128,3,128,63,240,3,0,3,0,63, - 240,3,0,3,0,3,0,3,0,31,224,1,23,23,7,3, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,0,128, - 128,128,128,128,128,128,128,128,10,23,46,17,3,251,30,0, - 33,0,35,0,35,0,32,0,48,0,28,0,46,0,71,0, - 131,128,129,192,192,192,224,64,112,64,56,128,29,0,6,0, - 3,0,3,0,49,0,49,0,34,0,28,0,7,2,2,11, - 2,15,198,198,19,18,54,21,1,0,3,248,0,12,6,0, - 16,225,0,33,28,128,67,12,64,70,4,64,134,4,32,134, - 0,32,134,0,32,134,0,32,134,0,32,134,8,32,67,8, - 64,67,8,64,32,240,128,16,1,0,12,6,0,3,248,0, - 7,8,8,11,2,10,240,200,24,104,136,154,100,252,6,10, - 10,12,3,1,32,68,136,136,136,136,136,136,68,32,13,6, - 12,15,1,3,255,248,0,8,0,8,0,8,0,8,0,8, - 7,1,1,11,2,6,254,19,18,54,21,1,0,3,248,0, - 12,6,0,31,225,0,35,24,128,67,24,64,67,24,64,131, - 24,32,131,24,32,131,224,32,131,16,32,131,24,32,131,24, - 32,67,26,64,67,26,64,47,142,128,16,1,0,12,6,0, - 3,248,0,7,1,1,11,2,15,254,7,7,7,15,4,11, - 56,68,130,130,130,68,56,22,18,54,24,1,255,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,255,255,252,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,0,0,0,0,0, - 255,255,252,7,10,10,11,2,8,124,134,134,230,6,8,16, - 96,66,254,7,11,11,12,3,7,120,132,198,198,4,120,14, - 70,198,134,120,4,4,4,11,5,13,48,48,96,128,14,19, - 38,17,2,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,64,192,64,128,64,132,163,252,159,28,128,0,128,0, - 192,0,192,0,192,0,224,0,64,0,11,22,44,14,2,252, - 63,224,120,128,248,128,248,128,248,128,248,128,248,128,120,128, - 8,128,8,128,8,128,8,128,8,128,8,128,8,128,8,128, - 8,128,8,128,8,128,8,128,8,128,8,128,3,3,3,7, - 2,7,224,224,224,5,5,5,11,3,251,64,48,24,24,240, - 6,11,11,12,3,7,16,16,240,48,48,48,48,48,48,48, - 252,6,9,9,10,2,9,112,136,132,132,132,132,72,48,252, - 7,10,10,13,3,1,8,68,68,34,34,34,34,68,68,136, - 18,18,54,23,3,0,16,4,0,240,12,0,48,8,0,48, - 16,0,48,16,0,48,32,0,48,96,0,48,67,0,48,135, - 0,48,139,0,253,11,0,3,19,0,2,19,0,6,35,0, - 4,63,192,8,3,0,24,3,0,16,15,192,17,18,54,22, - 3,0,16,4,0,240,8,0,48,8,0,48,16,0,48,16, - 0,48,32,0,48,64,0,48,78,0,48,179,128,48,161,128, - 253,49,128,3,17,128,2,3,0,4,6,0,4,8,0,8, - 16,128,24,49,128,16,63,128,18,18,54,23,3,0,120,4, - 0,134,12,0,198,8,0,4,16,0,120,16,0,12,32,0, - 6,96,0,198,67,0,198,135,0,142,139,0,121,11,0,2, - 19,0,2,19,0,4,35,0,12,63,192,8,3,0,16,3, - 0,16,15,192,9,18,36,12,1,250,28,0,28,0,28,0, - 0,0,28,0,34,0,34,0,6,0,4,0,24,0,48,0, - 96,0,227,0,195,128,192,128,224,128,97,0,62,0,18,24, - 72,20,2,0,6,0,0,6,0,0,3,0,0,0,128,0, - 0,0,0,0,0,0,0,128,0,0,192,0,1,192,0,1, - 192,0,1,224,0,3,224,0,2,96,0,2,112,0,6,112, - 0,4,48,0,4,56,0,12,24,0,15,248,0,24,28,0, - 16,12,0,16,14,0,48,14,0,254,63,192,18,24,72,20, - 2,0,0,16,0,0,48,0,0,96,0,0,64,0,0,128, - 0,0,0,0,0,128,0,0,192,0,1,192,0,1,192,0, - 1,224,0,3,224,0,2,96,0,2,112,0,6,112,0,4, - 48,0,4,56,0,12,56,0,15,248,0,24,28,0,16,12, - 0,16,14,0,48,14,0,254,63,192,18,24,72,20,2,0, - 0,128,0,0,192,0,1,96,0,2,48,0,4,8,0,0, - 0,0,0,128,0,0,192,0,1,192,0,1,192,0,1,224, - 0,3,224,0,2,96,0,2,112,0,6,112,0,4,48,0, - 4,56,0,12,56,0,15,248,0,24,28,0,16,12,0,16, - 12,0,48,14,0,254,63,192,18,23,69,20,2,0,3,144, - 0,5,240,0,0,0,0,0,0,0,0,0,0,0,128,0, - 0,128,0,1,192,0,1,192,0,1,224,0,3,224,0,2, - 96,0,2,112,0,6,112,0,4,48,0,12,56,0,12,56, - 0,15,248,0,24,28,0,16,28,0,16,12,0,48,14,0, - 254,63,192,18,23,69,20,1,0,6,24,0,6,24,0,2, - 16,0,0,0,0,0,0,0,0,192,0,0,192,0,0,192, - 0,1,224,0,1,224,0,1,96,0,2,112,0,2,112,0, - 2,48,0,4,56,0,4,24,0,12,24,0,15,252,0,8, - 12,0,24,12,0,24,14,0,56,6,0,254,63,192,17,24, - 72,20,2,0,1,192,0,2,32,0,2,32,0,2,32,0, - 1,192,0,0,0,0,0,128,0,0,128,0,1,192,0,1, - 192,0,1,192,0,2,224,0,2,96,0,2,96,0,4,112, - 0,4,112,0,12,48,0,8,56,0,15,248,0,24,28,0, - 16,28,0,16,12,0,48,14,0,254,127,128,24,18,54,26, - 0,0,0,127,255,0,28,7,0,28,3,0,44,1,0,44, - 1,0,76,17,0,76,16,0,140,48,0,143,240,1,12,48, - 3,12,16,2,12,17,7,252,17,4,12,1,8,12,1,8, - 12,3,24,12,7,254,63,255,14,24,48,18,2,250,7,132, - 24,108,32,60,96,28,96,12,192,12,192,4,192,0,192,0, - 192,0,192,0,192,4,96,4,96,4,96,8,48,24,24,48, - 7,192,2,0,3,128,0,192,0,192,8,192,7,128,15,24, - 48,18,1,0,4,0,6,0,3,0,1,128,0,0,0,0, - 255,254,24,6,24,2,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,15,24,48,18,1,0,0,48,0,48,0,96, - 0,192,0,0,0,0,255,254,24,14,24,6,24,2,24,2, - 24,34,24,32,24,96,31,224,24,96,24,32,24,32,24,34, - 24,2,24,2,24,6,24,14,255,254,15,24,48,18,1,0, - 0,128,1,192,3,64,6,48,8,8,0,0,255,254,24,6, - 24,2,24,2,24,2,24,34,24,32,24,96,31,224,24,96, - 24,32,24,32,24,34,24,2,24,2,24,6,24,14,255,254, - 15,23,46,18,1,0,6,48,6,48,4,16,0,0,0,0, - 255,254,24,14,24,6,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,8,24,24,10,1,0,64,96,48,16,8,0, - 255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,255,8,24,24,10,1,0,3,3,6,8,0,0,255,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,255, - 8,24,24,10,1,0,8,24,52,66,129,0,255,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,255,8,23, - 23,10,1,0,195,195,66,0,0,255,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,255,17,18,54,19,1, - 0,255,240,0,24,12,0,24,6,0,24,3,0,24,3,0, - 24,1,128,24,1,128,24,1,128,127,1,128,24,1,128,24, - 1,128,24,1,128,24,1,128,24,3,0,24,3,0,24,6, - 0,24,12,0,255,240,0,18,24,72,19,1,0,3,200,0, - 2,248,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 15,192,28,2,0,30,2,0,22,2,0,23,2,0,19,130, - 0,17,130,0,17,194,0,16,226,0,16,226,0,16,114,0, - 16,50,0,16,58,0,16,30,0,16,14,0,16,14,0,16, - 6,0,252,2,0,15,24,48,18,2,1,28,0,12,0,6, - 0,2,0,1,0,0,0,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,96,12,32,8,48,24,24,48,7,192,15,24,48,18,2, - 1,0,112,0,96,0,192,0,128,1,0,0,0,7,192,24, - 48,48,24,32,8,96,12,96,12,192,6,192,6,192,6,192, - 6,192,6,192,6,96,12,96,12,32,8,48,24,24,48,7, - 192,15,24,48,18,2,0,1,0,3,128,6,192,12,96,16, - 16,0,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,24,48,18,2,0,15,16,19, - 224,0,0,0,0,0,0,0,0,7,192,24,48,48,24,32, - 8,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,96,12,96,12,32,8,48,24,24,48,7,192,15,24,48, - 18,2,0,8,0,12,96,12,96,0,0,0,0,0,0,7, - 192,24,48,48,24,32,8,96,12,96,12,192,6,192,6,192, - 6,192,6,192,6,192,6,96,12,96,12,32,8,48,24,24, - 48,7,192,16,16,32,24,4,255,0,1,64,3,32,6,16, - 12,8,24,4,48,2,96,1,192,1,128,3,64,6,32,12, - 16,24,8,48,4,96,2,192,1,15,18,36,18,2,0,7, - 194,24,52,48,28,32,12,96,28,96,44,192,70,192,198,193, - 134,195,6,198,6,196,6,232,12,112,12,96,8,112,24,88, - 48,135,192,19,24,72,21,1,1,3,0,0,3,128,0,0, - 128,0,0,64,0,0,0,0,0,0,0,255,15,224,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,12,1,0,12,2,0,6,4,0,1,248, - 0,19,24,72,21,1,1,0,28,0,0,24,0,0,48,0, - 0,32,0,0,64,0,0,0,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,19, - 24,72,21,1,0,0,96,0,0,224,0,1,176,0,3,8, - 0,0,4,0,0,0,0,255,15,224,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,12,1,0,12,2,0,6,4,0,1,248,0,19,23,69, - 21,1,1,3,24,0,3,24,0,0,0,0,0,0,0,0, - 0,0,255,15,224,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,12,1,0,12, - 2,0,6,4,0,1,248,0,17,24,72,19,1,0,0,24, - 0,0,56,0,0,48,0,0,64,0,0,0,0,0,0,0, - 255,31,128,28,6,0,28,4,0,14,4,0,6,8,0,7, - 8,0,3,144,0,3,160,0,1,224,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,7,252,0,15,18,36,17,1,0,255,0,24,0, - 24,0,31,224,24,24,24,12,24,6,24,6,24,6,24,14, - 24,12,24,24,31,240,24,0,24,0,24,0,24,0,255,0, - 12,18,36,14,1,0,7,128,24,224,24,96,48,96,48,192, - 48,128,55,0,49,128,48,64,48,96,48,112,48,48,48,48, - 48,48,54,48,54,112,52,96,243,192,11,18,36,13,1,0, - 96,0,96,0,48,0,24,0,8,0,0,0,30,0,99,0, - 65,128,97,128,33,128,15,128,113,128,193,128,195,160,195,160, - 197,160,121,192,11,18,36,13,1,0,1,128,3,128,3,0, - 4,0,8,0,0,0,62,0,65,0,65,128,97,128,33,128, - 15,128,113,128,193,128,193,160,195,160,197,160,120,192,11,18, - 36,13,1,0,8,0,12,0,28,0,50,0,65,0,0,0, - 30,0,99,0,65,128,97,128,33,128,15,128,113,128,193,128, - 195,160,195,160,197,160,121,192,11,17,34,13,1,0,56,128, - 79,0,0,0,0,0,0,0,30,0,99,0,65,128,97,128, - 33,128,15,128,113,128,193,128,195,160,195,160,197,160,121,192, - 11,17,34,13,1,0,99,0,99,0,1,0,0,0,0,0, - 60,0,67,0,67,0,99,0,3,0,15,0,115,0,195,0, - 195,32,199,32,203,32,121,192,11,18,36,13,1,0,28,0, - 34,0,34,0,34,0,28,0,0,0,60,0,67,0,67,0, - 99,0,35,0,15,0,115,0,195,0,195,32,199,32,199,32, - 121,192,16,12,24,18,1,0,30,120,99,198,65,134,97,131, - 1,131,31,255,97,128,193,128,195,129,195,130,196,194,120,124, - 9,18,36,11,1,250,30,0,33,0,96,128,193,128,193,128, - 192,0,192,0,192,0,192,0,96,128,33,0,30,0,8,0, - 12,0,2,0,3,0,3,0,30,0,9,18,36,12,1,0, - 96,0,112,0,48,0,8,0,0,0,0,0,30,0,35,0, - 97,128,193,128,193,128,255,128,192,0,192,0,192,128,96,128, - 33,0,30,0,9,18,36,12,1,0,1,0,3,0,2,0, - 4,0,8,0,0,0,30,0,35,0,97,128,193,128,193,128, - 255,128,192,0,192,0,192,128,96,128,33,0,30,0,9,18, - 36,12,1,0,8,0,12,0,28,0,18,0,33,0,0,0, - 30,0,35,0,97,128,193,128,193,128,255,128,192,0,192,0, - 192,128,96,128,33,0,30,0,9,17,34,12,1,0,51,0, - 51,0,1,0,0,0,0,0,30,0,35,0,97,128,193,128, - 193,128,255,128,192,0,192,0,192,128,96,128,33,0,30,0, - 7,18,18,8,0,0,192,224,96,16,8,0,120,24,24,24, - 24,24,24,24,24,24,24,126,6,18,18,7,1,0,4,12, - 24,16,32,0,240,48,48,48,48,48,48,48,48,48,48,252, - 8,17,17,8,0,0,24,56,36,195,0,120,24,24,24,24, - 24,24,24,24,24,24,126,7,17,17,9,1,0,4,198,198, - 0,0,120,24,24,24,24,24,24,24,24,24,24,124,10,18, - 36,13,1,0,56,128,27,0,12,0,22,0,35,0,3,0, - 31,128,33,128,97,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,33,128,30,0,13,17,34,15,1,0,14,64, - 19,192,0,0,0,0,0,0,243,192,52,192,56,96,56,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,253,248, - 10,18,36,13,1,0,96,0,48,0,16,0,8,0,4,0, - 0,0,30,0,33,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,33,128,30,0,10,18,36,13,1,0, - 1,128,3,128,3,0,4,0,0,0,0,0,30,0,33,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 33,128,30,0,10,18,36,13,1,0,4,0,12,0,14,0, - 18,0,33,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,10,17, - 34,13,1,0,60,128,47,0,0,0,0,0,0,0,30,0, - 33,128,97,128,192,192,192,192,192,192,192,192,192,192,192,192, - 97,128,33,128,30,0,10,17,34,13,1,0,49,128,49,128, - 1,0,0,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,22,16, - 48,24,1,255,0,112,0,0,112,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,255,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,112, - 0,0,112,0,10,12,24,13,1,0,30,64,33,128,96,128, - 193,192,194,192,196,192,200,192,208,192,208,192,97,128,97,128, - 158,0,13,18,36,14,0,0,16,0,24,0,12,0,4,0, - 2,0,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,18,36,14, - 0,0,0,192,0,192,1,128,2,0,0,0,0,0,241,224, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,224, - 48,224,57,96,30,120,13,18,36,14,0,0,2,0,6,0, - 5,0,8,128,16,0,0,0,241,224,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,224,48,224,57,96,30,120, - 13,17,34,14,0,0,24,192,24,192,0,0,0,0,0,0, - 240,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,224,48,224,57,96,30,120,13,24,48,14,0,250,0,96, - 0,224,0,192,1,0,0,0,0,0,252,248,56,32,24,32, - 24,64,12,64,12,64,12,128,6,128,6,128,7,0,3,0, - 3,0,3,0,2,0,34,0,98,0,100,0,56,0,11,24, - 48,14,1,250,48,0,240,0,48,0,48,0,48,0,48,0, - 49,192,54,224,52,96,56,96,56,96,48,96,48,192,48,192, - 49,128,49,0,50,0,60,0,48,0,48,0,48,0,48,0, - 48,0,96,0,13,23,46,14,0,250,8,64,12,96,12,96, - 0,0,0,0,252,120,24,32,24,32,24,64,12,64,12,64, - 14,128,6,128,6,128,7,0,3,0,3,0,2,0,2,0, - 34,0,114,0,100,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y= 8 dx=24 dy= 0 ascent=18 len=66 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18n[595] U8G_SECTION(".progmem.u8g_font_osr18n") = { - 0,68,33,235,248,18,0,0,0,0,42,57,0,18,250,18, - 0,10,10,20,14,2,8,12,0,12,0,204,192,201,192,42, - 0,30,0,235,192,201,192,12,0,12,0,22,22,66,24,1, - 252,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,255, - 255,252,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,3,8,8,7,2,252,192,224,224,32,32,64,64, - 128,7,1,1,11,2,6,254,3,3,3,7,2,0,224,224, - 224,8,24,24,12,2,250,1,1,2,2,2,4,4,4,12, - 8,8,24,16,16,16,32,32,32,64,64,64,128,128,128,12, - 18,36,15,1,0,15,0,16,192,32,64,96,96,96,32,192, - 48,192,48,192,48,192,48,192,48,192,48,192,48,192,48,96, - 32,96,96,32,64,16,192,15,0,9,18,36,15,3,0,8, - 0,8,0,24,0,248,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,255,128,10,18,36,15,2,0,30,0,99,128,129,192,128, - 192,128,192,224,192,240,192,32,192,1,128,3,0,6,0,8, - 0,16,0,32,0,64,64,192,64,255,192,255,192,11,18,36, - 15,2,0,63,0,97,128,192,192,224,192,240,192,0,192,0, - 192,1,128,62,0,1,128,0,192,0,96,96,96,240,96,240, - 96,192,192,65,128,63,0,12,18,36,15,2,0,1,0,3, - 0,3,0,7,0,15,0,11,0,19,0,51,0,35,0,67, - 0,195,0,131,0,255,224,3,0,3,0,3,0,3,0,31, - 240,11,18,36,15,2,0,96,192,127,128,126,0,64,0,64, - 0,64,0,95,0,97,128,64,192,64,224,0,96,0,96,96, - 96,240,96,224,192,192,192,65,128,62,0,11,18,36,15,2, - 0,15,0,24,128,48,64,96,192,96,192,64,0,192,0,207, - 0,209,192,224,192,224,224,224,96,224,96,224,96,96,224,96, - 192,49,128,15,0,10,18,36,15,3,0,255,192,255,192,128, - 64,128,64,128,128,0,128,1,0,1,0,2,0,6,0,6, - 0,12,0,12,0,30,0,30,0,30,0,30,0,14,0,12, - 18,36,15,2,0,31,128,48,224,96,96,192,48,192,48,224, - 48,240,32,124,64,63,128,55,224,96,240,192,112,192,48,192, - 48,192,48,96,96,112,192,31,128,11,18,36,15,2,0,30, - 0,49,128,96,192,224,192,192,64,192,96,192,96,192,224,96, - 224,113,96,30,96,0,96,0,64,96,192,96,192,64,128,65, - 0,62,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=28 dy= 0 ascent=20 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18r[3683] U8G_SECTION(".progmem.u8g_font_osr18r") = { - 0,68,33,235,248,18,4,197,10,125,32,127,250,20,250,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,42,0,30,0,235,192,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,96,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 6 y=17 dx=32 dy= 0 ascent=28 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21[9530] U8G_SECTION(".progmem.u8g_font_osr21") = { - 0,76,38,232,247,21,5,131,12,189,32,255,249,28,248,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,53,0,14,0, - 63,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,79, - 0,112,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,16,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,32,44,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,0,4,21,21,8,2,249,96,240,240,96,0,64,64,96, - 96,96,96,96,96,96,96,240,240,240,240,240,96,10,21,42, - 17,3,253,4,0,4,0,4,0,4,0,31,0,52,128,100, - 64,100,192,229,192,228,128,228,0,228,0,228,0,228,0,100, - 64,100,64,52,128,31,0,4,0,4,0,4,0,16,21,42, - 21,2,0,0,60,0,194,0,131,1,135,1,135,3,130,3, - 128,3,128,3,128,63,128,3,240,3,128,3,128,3,128,3, - 0,3,0,123,1,142,1,135,3,135,254,120,252,13,13,26, - 17,2,4,143,136,112,112,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,64,16,96,48,112,112,143,136,16,21,42, - 17,1,0,252,63,56,8,56,8,24,16,28,16,28,32,14, - 32,14,64,6,64,7,128,3,128,63,248,3,128,3,128,63, - 248,3,128,3,128,3,128,3,128,3,128,31,240,1,27,27, - 8,4,251,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,0,128,128,128,128,128,128,128,128,128,128,128,11,27, - 54,19,3,250,30,0,49,0,97,128,99,128,97,0,112,0, - 56,0,60,0,62,0,79,0,131,128,129,192,128,224,192,96, - 224,32,112,32,56,64,28,128,15,0,7,0,3,0,1,128, - 33,128,113,128,97,128,35,0,28,0,8,3,3,12,2,16, - 195,231,195,21,22,66,23,1,0,0,32,0,3,222,0,12, - 1,128,24,0,192,48,114,96,33,142,32,67,6,16,67,2, - 16,135,2,8,135,0,8,135,0,8,135,0,8,135,0,8, - 135,0,8,135,2,8,67,2,16,67,4,16,33,132,32,48, - 120,96,24,0,192,12,1,128,3,222,0,8,9,9,12,2, - 12,120,196,12,52,68,197,205,118,254,7,12,12,14,3,1, - 16,34,98,68,196,196,196,196,196,66,34,16,14,6,12,16, - 1,5,255,252,0,4,0,4,0,4,0,4,0,4,7,2, - 2,11,2,7,254,254,21,22,66,23,1,0,0,32,0,3, - 222,0,12,1,128,24,0,192,63,248,96,35,140,32,67,142, - 16,67,142,16,131,142,8,131,140,8,131,240,8,131,140,8, - 131,140,8,131,142,8,131,142,72,67,142,80,67,134,80,47, - 195,160,48,0,96,24,0,192,12,1,128,3,222,0,8,1, - 1,14,3,17,255,8,8,8,16,4,13,60,66,129,129,129, - 129,66,60,24,21,63,26,1,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,255,255,255,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0, - 0,0,0,0,0,255,255,255,8,13,13,13,3,8,60,198, - 135,199,231,6,12,24,48,65,193,255,255,9,13,26,13,3, - 8,60,0,70,0,67,0,99,0,3,0,6,0,120,0,7, - 0,3,0,227,128,227,0,135,0,124,0,5,5,5,13,6, - 16,24,56,48,96,128,15,22,44,18,2,248,192,64,192,96, - 224,224,192,224,192,224,192,96,192,96,192,96,64,96,64,64, - 64,66,192,194,177,190,143,12,128,0,128,0,192,0,192,0, - 192,0,224,0,224,0,96,0,12,26,52,16,2,251,31,240, - 124,64,252,64,252,64,252,64,252,64,252,64,124,64,60,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,4,4,8,2,8,96,240,240,96,6,7,7,13, - 3,250,32,32,48,8,12,140,120,6,12,12,13,4,9,16, - 48,240,48,48,48,48,48,48,48,48,252,7,10,10,11,2, - 11,56,68,198,198,198,198,198,68,56,254,8,12,12,14,3, - 1,8,132,70,66,35,35,35,35,34,70,68,8,19,21,63, - 25,4,0,16,3,0,48,2,0,240,4,0,48,4,0,48, - 8,0,48,8,0,48,16,0,48,48,0,48,32,0,48,65, - 128,48,67,128,48,131,128,252,133,128,1,9,128,3,9,128, - 2,17,128,4,31,224,4,1,128,8,1,128,8,1,128,16, - 7,224,19,21,63,25,4,0,16,2,0,48,2,0,240,4, - 0,48,4,0,48,8,0,48,16,0,48,16,0,48,32,0, - 48,39,128,48,72,192,48,80,224,48,144,224,252,156,224,1, - 12,192,2,0,192,2,1,0,4,6,0,4,12,32,8,8, - 32,8,31,224,16,31,224,20,21,63,25,3,0,60,1,0, - 70,1,0,67,2,0,99,2,0,3,4,0,6,12,0,120, - 8,0,7,16,0,3,16,0,227,160,192,227,33,192,135,65, - 192,124,130,192,0,132,192,1,4,192,1,8,192,2,15,240, - 2,0,192,4,0,192,8,0,192,8,3,240,11,21,42,14, - 1,249,12,0,30,0,30,0,12,0,0,0,14,0,17,0, - 17,0,17,0,2,0,6,0,28,0,56,0,112,0,224,192, - 225,224,225,224,224,32,96,32,112,64,31,128,20,28,84,22, - 1,0,3,0,0,3,128,0,1,128,0,0,192,0,0,64, - 0,0,0,0,0,0,0,0,32,0,0,96,0,0,96,0, - 0,112,0,0,240,0,0,240,0,0,184,0,1,56,0,1, - 56,0,3,28,0,3,28,0,2,28,0,6,14,0,6,14, - 0,7,254,0,12,7,0,12,7,0,8,7,0,24,3,128, - 24,3,128,255,31,240,20,28,84,22,1,0,0,4,0,0, - 12,0,0,24,0,0,48,0,0,32,0,0,0,0,0,0, - 0,0,32,0,0,96,0,0,96,0,0,112,0,0,240,0, - 0,240,0,1,184,0,1,56,0,1,56,0,3,28,0,3, - 28,0,2,28,0,6,14,0,6,14,0,7,254,0,12,7, - 0,12,7,0,8,7,0,24,3,128,24,3,128,255,31,240, - 20,28,84,22,1,0,0,32,0,0,96,0,0,240,0,1, - 152,0,3,4,0,0,0,0,0,0,0,0,32,0,0,96, - 0,0,96,0,0,112,0,0,240,0,0,240,0,0,184,0, - 1,56,0,1,56,0,3,28,0,3,28,0,2,28,0,6, - 14,0,6,14,0,7,254,0,12,7,0,12,7,0,8,7, - 0,24,3,128,24,3,128,255,31,240,20,27,81,22,1,0, - 1,228,0,3,252,0,2,56,0,0,0,0,0,0,0,0, - 0,0,0,32,0,0,96,0,0,96,0,0,112,0,0,240, - 0,0,240,0,0,184,0,1,184,0,1,56,0,3,28,0, - 3,28,0,2,28,0,6,14,0,6,14,0,7,254,0,12, - 7,0,12,7,0,8,7,0,24,3,128,24,3,128,255,31, - 240,19,27,81,22,2,0,6,24,0,7,28,0,6,24,0, - 0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0, - 224,0,0,224,0,1,224,0,1,224,0,1,112,0,3,112, - 0,2,48,0,2,56,0,6,56,0,4,24,0,4,28,0, - 12,28,0,15,252,0,8,14,0,24,14,0,24,6,0,24, - 7,0,56,7,0,254,31,224,20,28,84,23,2,0,0,96, - 0,1,152,0,1,8,0,1,8,0,1,152,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,96,0,0,240,0,0, - 240,0,0,240,0,1,184,0,1,56,0,1,56,0,3,28, - 0,2,28,0,2,28,0,6,14,0,4,14,0,15,254,0, - 8,7,0,8,7,0,24,7,0,24,3,128,56,3,128,255, - 31,240,27,21,84,30,1,0,0,63,255,224,0,15,0,224, - 0,15,0,96,0,31,0,96,0,23,0,32,0,55,0,32, - 0,39,8,32,0,103,8,0,0,71,8,0,0,199,24,0, - 0,135,248,0,1,7,24,0,3,7,8,0,2,7,8,32, - 7,255,8,32,4,7,0,32,12,7,0,32,8,7,0,96, - 24,7,0,96,56,7,1,224,255,63,255,224,15,28,56,19, - 2,250,15,226,16,54,48,30,32,14,96,6,96,6,224,6, - 224,2,224,0,224,0,224,0,224,0,224,0,224,2,96,2, - 96,2,96,4,32,4,48,12,24,8,6,112,1,128,1,0, - 1,192,0,96,0,112,8,96,7,192,17,28,84,20,2,0, - 4,0,0,6,0,0,3,0,0,1,0,0,0,128,0,0, - 0,0,0,0,0,255,255,128,28,3,128,28,3,128,28,1, - 128,28,1,128,28,0,128,28,32,128,28,32,0,28,32,0, - 28,96,0,31,224,0,28,96,0,28,32,0,28,32,128,28, - 32,128,28,0,128,28,1,128,28,1,128,28,3,128,28,7, - 128,255,255,128,17,28,84,20,2,0,0,24,0,0,56,0, - 0,48,0,0,96,0,0,128,0,0,0,0,0,0,0,255, - 255,128,28,3,128,28,3,128,28,1,128,28,1,128,28,0, - 128,28,32,128,28,32,0,28,32,0,28,96,0,31,224,0, - 28,96,0,28,32,0,28,32,128,28,32,128,28,0,128,28, - 1,128,28,1,128,28,3,128,28,7,128,255,255,128,17,28, - 84,20,2,0,0,128,0,0,192,0,1,192,0,2,32,0, - 4,24,0,0,0,0,0,0,0,255,255,128,28,3,128,28, - 3,128,28,1,128,28,1,128,28,0,128,28,32,128,28,32, - 0,28,32,0,28,96,0,31,224,0,28,96,0,28,32,0, - 28,32,128,28,32,128,28,0,128,28,1,128,28,1,128,28, - 3,128,28,7,128,255,255,128,17,27,81,20,2,0,6,48, - 0,7,56,0,6,48,0,0,0,0,0,0,0,0,0,0, - 255,255,128,28,7,128,28,3,128,28,1,128,28,1,128,28, - 1,128,28,32,128,28,32,0,28,32,0,28,96,0,31,224, - 0,28,96,0,28,32,0,28,32,128,28,32,128,28,1,0, - 28,1,128,28,1,128,28,3,128,28,7,128,255,255,128,8, - 28,28,12,2,0,192,224,96,48,24,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,28,56,12,2,0,1,0,3,0,6,0,4,0,8, - 0,0,0,0,0,255,128,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,8, - 28,28,12,2,0,8,24,28,38,193,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,27,54,11,2,0,195,0,227,128,195,0,0,0,0, - 0,0,0,255,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,0,19,21,63, - 22,2,0,255,248,0,28,6,0,28,3,0,28,1,128,28, - 1,192,28,0,192,28,0,192,28,0,224,28,0,224,255,128, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,192, - 28,0,192,28,1,128,28,1,128,28,3,0,28,6,0,255, - 248,0,20,27,81,23,2,0,1,226,0,3,254,0,2,28, - 0,0,0,0,0,0,0,0,0,0,252,7,240,28,0,128, - 30,0,128,31,0,128,23,0,128,19,128,128,19,192,128,17, - 192,128,16,224,128,16,240,128,16,112,128,16,56,128,16,56, - 128,16,28,128,16,30,128,16,14,128,16,7,128,16,7,128, - 16,3,128,16,1,128,254,1,128,17,28,84,20,2,0,12, - 0,0,14,0,0,6,0,0,3,0,0,1,128,0,0,0, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,28,84,20,2,0,0,24,0,0,56,0,0, - 112,0,0,64,0,0,128,0,0,0,0,0,128,0,7,112, - 0,24,8,0,16,12,0,48,6,0,96,6,0,96,3,0, - 96,3,0,224,3,0,224,3,0,224,3,0,224,3,128,224, - 3,128,224,3,0,224,3,0,96,3,0,96,3,0,96,6, - 0,48,6,0,16,12,0,24,8,0,7,240,0,17,28,84, - 20,2,0,0,128,0,1,128,0,3,192,0,6,32,0,12, - 16,0,0,8,0,0,128,0,7,112,0,24,8,0,16,12, - 0,48,6,0,96,6,0,96,3,0,96,3,0,224,3,0, - 224,3,0,224,3,0,224,3,128,224,3,128,224,3,0,224, - 3,0,96,3,0,96,3,0,96,6,0,48,6,0,16,12, - 0,24,8,0,7,240,0,17,27,81,20,2,0,7,136,0, - 15,248,0,8,112,0,0,0,0,0,0,0,0,128,0,7, - 112,0,24,8,0,16,12,0,48,6,0,96,6,0,96,3, - 0,96,3,0,224,3,0,224,3,0,224,3,0,224,3,128, - 224,3,128,224,3,0,224,3,0,96,3,0,96,3,0,96, - 6,0,48,6,0,16,12,0,24,8,0,7,240,0,17,27, - 81,20,2,0,12,48,0,14,56,0,12,48,0,0,0,0, - 0,0,0,0,128,0,7,112,0,24,8,0,16,12,0,48, - 6,0,96,6,0,96,3,0,96,3,0,224,3,0,224,3, - 0,224,3,0,224,3,128,224,3,128,224,3,0,224,3,0, - 96,3,0,96,3,0,96,6,0,48,6,0,16,12,0,24, - 8,0,7,240,0,18,18,54,27,5,255,128,0,192,192,1, - 128,96,3,0,48,6,0,24,12,0,12,24,0,6,48,0, - 3,96,0,1,192,0,1,192,0,3,96,0,6,48,0,12, - 24,0,24,12,0,48,6,0,96,3,0,64,1,128,128,0, - 192,17,21,63,20,2,1,7,241,0,8,15,0,16,14,0, - 48,6,0,96,14,0,96,27,0,96,19,0,224,35,0,224, - 99,0,224,195,128,225,131,128,225,3,0,226,3,0,230,3, - 0,236,3,0,104,3,0,112,6,0,112,6,0,112,12,0, - 88,8,0,143,240,0,20,28,84,23,2,0,3,0,0,3, - 128,0,1,128,0,0,192,0,0,32,0,0,0,0,0,0, - 0,255,7,240,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,12,0,128,12,1,0,6,2,0,3,252,0, - 20,28,84,23,2,0,0,4,0,0,12,0,0,24,0,0, - 16,0,0,32,0,0,0,0,0,0,0,255,7,240,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,12,0, - 128,12,1,0,6,2,0,3,252,0,20,28,84,23,2,0, - 0,32,0,0,96,0,0,112,0,0,136,0,3,4,0,0, - 0,0,0,0,0,255,7,240,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,12,1,128,12,1,0,6,2, - 0,3,252,0,20,27,81,23,2,0,1,134,0,3,142,0, - 1,134,0,0,0,0,0,0,0,0,0,0,255,131,240,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,12, - 0,128,12,1,0,6,2,0,3,252,0,19,28,84,21,1, - 0,0,4,0,0,12,0,0,24,0,0,16,0,0,32,0, - 0,0,0,0,0,0,255,143,224,30,3,128,14,3,0,14, - 2,0,7,2,0,7,4,0,3,132,0,1,200,0,1,200, - 0,0,240,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,254,0,17,21,63,20,2,0,255,128,0,28,0, - 0,28,0,0,31,240,0,28,12,0,28,6,0,28,3,0, - 28,3,0,28,3,128,28,3,128,28,3,0,28,3,0,28, - 6,0,28,12,0,31,240,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,255,128,0,13,21,42,15,1,0, - 7,192,12,96,24,112,56,112,56,112,56,96,56,192,59,0, - 56,192,56,96,56,48,56,48,56,56,56,56,56,56,56,56, - 58,56,63,56,62,48,60,48,251,192,13,21,42,15,1,0, - 96,0,96,0,48,0,24,0,8,0,4,0,0,0,31,0, - 97,128,65,192,97,192,113,192,1,192,15,192,49,192,97,192, - 193,192,193,200,195,200,196,216,56,240,13,21,42,15,1,0, - 0,192,1,192,1,128,3,0,6,0,4,0,0,0,31,0, - 33,128,96,192,112,192,112,192,0,192,7,192,56,192,96,192, - 224,192,224,200,225,200,226,216,60,112,13,21,42,15,1,0, - 4,0,12,0,14,0,26,0,17,0,32,128,0,0,31,0, - 33,128,97,192,113,192,113,192,1,192,15,192,49,192,97,192, - 225,192,225,200,225,200,226,216,60,240,13,20,40,15,1,0, - 24,0,63,128,71,128,0,0,0,0,0,0,31,0,33,128, - 97,192,113,192,113,192,1,192,15,192,49,192,97,192,225,192, - 225,200,225,200,226,216,60,240,13,20,40,15,1,0,97,128, - 97,192,97,128,0,0,0,0,0,0,30,0,97,128,64,128, - 96,128,96,192,0,192,15,192,48,192,96,192,192,192,193,200, - 194,200,194,216,60,112,13,21,42,15,1,0,14,0,49,0, - 33,0,33,0,19,0,14,0,0,0,30,0,33,128,97,128, - 97,128,113,192,1,192,15,192,113,192,97,192,225,192,225,200, - 227,200,229,216,120,240,18,14,42,20,1,0,31,30,0,97, - 227,0,65,227,0,97,193,128,113,193,128,1,193,128,15,255, - 192,113,192,0,65,192,0,193,192,128,193,192,128,194,224,128, - 194,97,0,60,62,0,10,20,40,12,1,250,31,0,48,128, - 96,192,96,192,225,192,224,128,224,0,224,0,224,0,224,64, - 96,64,96,128,48,128,31,0,8,0,12,0,3,0,3,0, - 3,0,30,0,10,21,42,13,1,0,96,0,112,0,56,0, - 24,0,4,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,0,192,1,192,1,128, - 3,0,6,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,4,0,4,0,14,0, - 11,0,17,0,32,128,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,20,40,13,1,0,49,128,113,192,49,128, - 0,0,0,0,0,0,30,0,49,128,97,128,96,192,224,192, - 224,192,255,192,224,0,224,0,224,64,96,64,96,64,48,128, - 31,0,7,21,21,8,0,0,192,192,96,48,24,0,0,124, - 28,28,28,28,28,28,28,28,28,28,28,28,126,7,21,21, - 8,1,0,6,14,12,24,16,0,0,248,56,56,56,56,56, - 56,56,56,56,56,56,56,252,7,20,20,9,1,0,48,48, - 104,132,2,0,248,56,56,56,56,56,56,56,56,56,56,56, - 56,252,8,19,19,9,1,0,198,231,198,0,0,124,28,28, - 28,28,28,28,28,28,28,28,28,28,126,12,21,42,14,1, - 0,56,64,29,128,14,0,15,0,19,0,33,128,1,192,15, - 192,48,224,96,224,96,96,224,96,224,112,224,112,224,96,224, - 96,224,96,96,96,96,192,48,128,15,0,14,20,40,16,1, - 0,14,32,15,32,19,192,16,192,0,0,0,0,249,192,62, - 96,60,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,252,252,12,21,42,14,1,0,32, - 0,48,0,24,0,8,0,4,0,0,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,0, - 192,1,192,1,128,3,0,2,0,4,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,4, - 0,6,0,14,0,11,0,16,128,32,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,20,40,14,1,0,28, - 64,63,192,39,128,0,0,0,0,0,0,15,0,48,128,96, - 192,96,96,224,96,224,96,224,112,224,112,224,96,224,96,96, - 96,96,192,48,128,15,0,12,20,40,14,1,0,48,192,57, - 192,48,192,0,0,0,0,0,0,15,0,48,128,96,192,96, - 96,224,96,224,96,224,112,224,112,224,96,224,96,96,96,96, - 192,48,128,15,0,24,19,57,26,1,254,0,24,0,0,60, - 0,0,60,0,0,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,24,0,0,60,0,0,60, - 0,0,24,0,12,14,28,14,1,0,15,32,48,160,96,192, - 96,224,225,96,227,96,226,112,228,112,232,96,240,96,96,96, - 96,192,112,128,143,0,14,21,42,16,1,0,24,0,24,0, - 12,0,6,0,2,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,0,96,0,224, - 0,192,1,128,1,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,2,0,3,0, - 7,0,4,128,8,64,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,20,40,16,1,0,24,96,28,224, - 24,96,0,0,0,0,0,0,248,240,56,112,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,240, - 25,112,14,124,14,28,56,15,0,249,0,48,0,112,0,96, - 0,192,1,128,0,0,0,0,254,124,24,16,24,16,28,16, - 12,32,12,32,14,32,6,64,6,64,6,64,3,128,3,128, - 3,128,1,128,1,0,1,0,1,0,98,0,114,0,100,0, - 56,0,12,28,56,14,1,249,56,0,248,0,56,0,56,0, - 56,0,56,0,56,0,57,224,62,112,60,112,56,112,56,112, - 56,112,56,96,56,96,56,192,56,128,57,128,58,0,60,0, - 56,0,56,0,56,0,56,0,56,0,56,0,48,0,192,0, - 14,26,52,15,0,249,12,48,14,112,12,48,0,0,0,0, - 254,60,24,16,24,16,28,32,12,32,12,32,14,32,6,64, - 6,64,7,64,3,128,3,128,3,128,1,0,1,0,1,0, - 1,0,114,0,114,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=28 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21n[702] U8G_SECTION(".progmem.u8g_font_osr21n") = { - 0,76,38,232,247,21,0,0,0,0,42,57,0,22,250,21, - 0,10,12,24,14,2,9,12,0,14,0,204,64,228,192,53, - 0,14,0,63,0,229,192,196,192,12,0,14,0,12,0,24, - 25,75,26,1,252,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,255,255,255,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 4,8,8,8,2,251,224,240,240,16,16,16,32,64,7,2, - 2,11,2,7,254,254,4,4,4,8,2,0,96,240,240,96, - 9,28,56,13,2,250,0,128,0,128,1,128,1,0,1,0, - 1,0,2,0,2,0,2,0,6,0,4,0,4,0,12,0, - 8,0,8,0,24,0,16,0,16,0,16,0,32,0,32,0, - 32,0,64,0,64,0,64,0,192,0,128,0,128,0,14,21, - 42,17,1,0,7,128,24,64,48,32,32,48,96,16,96,24, - 96,24,224,24,224,24,224,24,224,28,224,28,224,24,224,24, - 224,24,96,24,96,24,96,48,48,32,16,96,15,192,10,21, - 42,17,3,0,2,0,6,0,6,0,14,0,254,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,12,21, - 42,17,2,0,31,0,32,192,64,96,128,112,128,112,192,112, - 240,112,112,112,32,96,0,224,0,192,1,0,6,0,12,0, - 24,0,48,16,96,16,64,16,224,112,255,240,255,240,12,21, - 42,17,2,0,31,0,97,192,192,224,224,96,240,96,112,112, - 0,96,0,96,0,224,48,192,63,0,0,192,0,96,0,112, - 0,112,96,112,240,112,240,112,192,96,192,192,127,128,14,21, - 42,17,2,0,0,64,0,192,1,192,1,192,3,192,7,192, - 5,192,13,192,9,192,17,192,49,192,33,192,65,192,193,192, - 255,252,1,192,1,192,1,192,1,192,1,192,15,252,12,21, - 42,17,2,0,96,64,127,128,127,0,64,0,64,0,64,0, - 64,0,79,0,112,192,64,96,64,96,0,112,0,112,0,112, - 96,112,240,112,240,112,224,96,192,224,64,192,63,128,12,21, - 42,17,2,0,7,128,24,64,16,96,48,224,96,224,96,192, - 96,0,224,0,231,128,232,192,240,96,240,96,224,112,224,112, - 224,112,224,112,96,112,96,96,112,96,48,192,31,128,11,21, - 42,17,3,0,255,224,255,224,192,32,128,32,128,64,128,64, - 0,64,0,128,1,0,1,0,2,0,6,0,6,0,12,0, - 12,0,12,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,17,2,0,15,128,48,96,96,48,224,24,224,24,224,24, - 224,24,240,16,124,32,63,192,15,224,51,240,96,248,224,56, - 224,28,224,28,224,24,224,24,96,24,112,48,31,192,12,21, - 42,17,2,0,15,0,48,128,96,64,96,96,224,96,224,96, - 224,112,224,112,224,112,96,112,96,240,49,176,14,48,0,48, - 0,32,48,96,112,96,112,64,96,192,96,128,63,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-154-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 4 y=17 dx=32 dy= 0 ascent=23 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21r[4396] U8G_SECTION(".progmem.u8g_font_osr21r") = { - 0,76,38,232,247,21,5,131,12,189,32,127,249,23,249,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,53,0,14,0, - 63,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,79, - 0,112,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,16,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,32,44,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=35 x= 7 y=21 dx=38 dy= 0 ascent=35 len=140 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =35 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26[13186] U8G_SECTION(".progmem.u8g_font_osr26") = { - 0,94,46,227,245,26,7,96,17,82,32,255,248,35,246,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,114,112,10,128,7,0,15,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,240,248,120,8,8,8,16,16,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,30,14, - 19,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,0,4,25,25,10,3,248,96,240,240, - 240,96,64,64,96,96,96,96,96,96,96,96,96,96,240,240, - 240,240,240,240,240,96,12,25,50,21,4,252,1,0,1,0, - 1,0,1,0,7,192,25,32,57,48,113,48,113,112,225,112, - 225,32,225,0,225,0,225,0,225,0,225,0,113,16,113,16, - 57,16,29,32,7,192,1,0,1,0,1,0,1,0,20,25, - 75,25,2,0,0,15,128,0,24,96,0,48,32,0,96,112, - 0,192,240,0,192,240,1,192,224,1,192,0,1,192,0,1, - 192,0,1,192,0,63,192,0,1,254,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,57,128,16, - 199,128,16,131,128,48,131,224,96,134,255,192,120,63,128,18, - 16,48,22,2,5,195,241,192,124,15,128,48,7,0,32,3, - 0,96,1,0,64,1,128,64,0,128,64,0,128,64,0,128, - 64,0,128,64,1,128,96,1,0,32,3,0,48,7,0,124, - 15,128,227,241,192,20,25,75,22,1,0,255,7,240,60,1, - 192,28,1,128,30,1,0,14,3,0,15,2,0,7,6,0, - 7,132,0,3,140,0,3,136,0,1,216,0,1,208,0,1, - 224,0,31,255,0,0,224,0,0,224,0,31,255,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,15,254,0,2,33,33,10,4,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,13,32,64, - 23,4,249,7,128,24,64,16,96,48,224,48,224,48,64,56, - 0,28,0,30,0,15,0,23,128,99,192,129,224,128,240,128, - 120,128,24,192,24,224,8,120,8,60,16,30,32,15,64,7, - 128,3,192,1,192,0,224,16,96,56,96,56,96,48,64,16, - 192,15,0,10,4,8,16,3,20,96,192,225,192,225,192,96, - 192,26,26,104,30,2,1,0,255,192,0,3,0,48,0,4, - 0,8,0,8,0,4,0,16,30,2,0,32,113,225,0,32, - 224,225,0,65,192,96,128,65,192,96,128,129,128,32,64,131, - 128,32,64,131,128,0,64,131,128,0,64,131,128,0,64,131, - 128,0,64,131,128,0,64,131,128,32,64,65,192,64,128,65, - 192,64,128,32,224,65,0,32,112,129,0,16,31,2,0,8, - 0,4,0,4,0,8,0,3,0,48,0,0,255,192,0,9, - 13,26,13,2,12,120,0,132,0,198,0,198,0,14,0,54, - 0,70,0,198,0,198,128,206,128,115,0,0,0,255,0,10, - 14,28,18,4,2,16,64,48,128,97,128,97,0,195,0,195, - 0,195,0,195,0,195,0,67,0,97,0,32,128,16,192,8, - 0,18,7,21,22,2,6,255,255,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,9,2,4,13, - 2,8,255,128,255,128,26,26,104,30,2,1,0,255,192,0, - 3,0,48,0,4,0,8,0,8,0,4,0,19,255,2,0, - 32,225,193,0,32,224,225,0,64,224,224,128,64,224,224,128, - 128,224,224,64,128,224,224,64,128,225,192,64,128,254,0,64, - 128,225,128,64,128,224,192,64,128,224,224,64,128,224,224,64, - 64,224,228,128,64,224,228,128,32,224,233,0,35,248,121,0, - 16,0,2,0,8,0,4,0,4,0,8,0,3,0,48,0, - 0,255,192,0,9,1,2,15,3,21,255,128,10,9,18,22, - 6,16,30,0,97,128,192,128,128,64,128,64,128,64,64,128, - 97,128,30,0,30,25,100,34,2,255,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,255,255,255,252,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,255,252,10,15, - 30,16,3,10,63,0,67,128,129,192,129,192,225,192,225,192, - 1,128,3,0,6,0,8,0,48,0,64,64,64,64,255,192, - 255,192,10,16,32,16,4,9,62,0,67,0,193,128,225,128, - 225,128,1,128,3,0,124,0,3,128,1,192,1,192,225,192, - 225,192,129,192,131,128,126,0,6,6,6,16,7,19,12,28, - 56,48,96,192,19,27,81,22,2,246,96,24,0,224,60,0, - 224,60,0,224,60,0,224,60,0,224,60,0,224,60,0,224, - 60,0,224,60,0,192,24,0,64,24,0,64,24,0,64,56, - 0,96,48,32,112,124,96,95,227,224,71,193,192,128,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,224,0,0,224, - 0,0,224,0,0,240,0,0,96,0,0,15,31,62,19,2, - 251,31,254,62,16,126,16,254,16,254,16,254,16,254,16,254, - 16,254,16,126,16,62,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4, - 5,5,10,3,9,96,240,240,240,96,7,7,7,16,4,248, - 16,32,28,6,6,134,124,8,15,15,16,4,10,8,24,248, - 24,24,24,24,24,24,24,24,24,24,24,255,9,13,26,15, - 3,12,28,0,99,0,67,0,193,128,193,128,193,128,193,128, - 193,128,67,0,99,0,28,0,0,0,255,128,9,14,28,17, - 4,2,132,0,66,0,99,0,33,0,49,128,49,128,49,128, - 49,128,49,128,33,128,99,0,67,0,134,0,4,0,24,25, - 75,31,4,0,8,0,16,24,0,48,248,0,32,24,0,64, - 24,0,64,24,0,128,24,1,128,24,1,0,24,2,0,24, - 6,0,24,4,12,24,8,28,24,8,28,24,16,44,255,48, - 76,0,32,76,0,64,140,0,192,140,0,129,12,1,2,12, - 1,3,255,2,0,12,6,0,12,4,0,12,8,0,127,24, - 25,75,31,4,0,8,0,32,24,0,96,248,0,64,24,0, - 192,24,0,128,24,1,0,24,1,0,24,2,0,24,6,0, - 24,4,0,24,12,248,24,9,14,24,18,15,24,18,7,255, - 35,135,0,97,135,0,64,14,0,128,12,0,128,24,1,0, - 32,3,0,193,2,1,1,6,1,1,4,3,255,8,3,254, - 24,25,75,31,4,0,62,0,32,67,0,32,193,128,64,225, - 128,192,1,128,128,3,1,128,124,1,0,3,130,0,1,194, - 0,1,196,0,225,204,24,225,200,24,129,208,56,131,144,88, - 126,32,88,0,96,152,0,64,152,0,193,24,0,129,24,1, - 2,24,3,3,255,2,0,24,6,0,24,4,0,24,8,0, - 127,13,25,50,17,1,248,6,0,15,0,15,0,15,0,6, - 0,7,0,8,192,16,64,16,64,16,192,0,128,1,0,7, - 0,14,0,28,0,56,0,112,0,240,112,224,120,224,120,224, - 24,224,24,112,16,56,96,15,192,25,34,136,28,2,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,48,0,0,0, - 24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,12,0,0,0,28,0,0,0,28,0,0,0, - 30,0,0,0,62,0,0,0,46,0,0,0,47,0,0,0, - 103,0,0,0,103,0,0,0,71,128,0,0,195,128,0,0, - 195,128,0,0,131,192,0,1,129,192,0,1,129,192,0,3, - 1,224,0,3,255,224,0,2,0,224,0,6,0,240,0,6, - 0,112,0,6,0,112,0,12,0,120,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,34,136,28,2,0,0,0,192, - 0,0,1,192,0,0,3,128,0,0,7,0,0,0,6,0, - 0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0, - 0,0,12,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,46,0,0,0,47,0,0,0,103,0, - 0,0,103,0,0,0,71,128,0,0,195,128,0,0,195,128, - 0,1,131,192,0,1,129,192,0,1,129,192,0,3,1,224, - 0,3,255,224,0,2,0,224,0,6,0,240,0,6,0,112, - 0,4,0,112,0,12,0,120,0,12,0,56,0,30,0,124, - 0,255,195,255,128,25,34,136,28,2,0,0,8,0,0,0, - 28,0,0,0,30,0,0,0,51,0,0,0,65,128,0,1, - 128,64,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 12,0,0,0,28,0,0,0,28,0,0,0,30,0,0,0, - 62,0,0,0,46,0,0,0,47,0,0,0,103,0,0,0, - 103,0,0,0,71,128,0,0,195,128,0,0,195,128,0,0, - 131,192,0,1,129,192,0,1,129,192,0,3,1,224,0,3, - 255,224,0,2,0,224,0,6,0,240,0,6,0,112,0,6, - 0,112,0,12,0,120,0,12,0,120,0,30,0,120,0,255, - 195,255,128,25,33,132,28,2,0,0,112,64,0,0,252,64, - 0,0,159,192,0,1,7,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,12,0,0,0,28,0, - 0,0,28,0,0,0,30,0,0,0,62,0,0,0,46,0, - 0,0,47,0,0,0,103,0,0,0,103,0,0,0,71,128, - 0,0,195,128,0,0,195,128,0,1,131,192,0,1,129,192, - 0,1,129,192,0,3,1,224,0,3,255,224,0,2,0,224, - 0,6,0,240,0,6,0,112,0,4,0,112,0,12,0,120, - 0,12,0,56,0,30,0,124,0,255,195,255,128,25,33,132, - 28,2,0,0,193,128,0,1,193,192,0,1,193,192,0,0, - 193,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,24,0,0,0,28,0,0,0,28,0,0,0, - 60,0,0,0,62,0,0,0,62,0,0,0,110,0,0,0, - 79,0,0,0,71,0,0,0,199,0,0,0,199,128,0,0, - 131,128,0,1,131,128,0,1,129,192,0,1,1,192,0,3, - 1,192,0,3,255,224,0,2,0,224,0,6,0,224,0,6, - 0,112,0,4,0,112,0,12,0,112,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,35,140,28,2,0,0,28,0, - 0,0,34,0,0,0,65,0,0,0,65,0,0,0,65,0, - 0,0,65,0,0,0,34,0,0,0,28,0,0,0,0,0, - 0,0,8,0,0,0,12,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,62,0,0,0,46,0,0,0,47,0, - 0,0,111,0,0,0,71,0,0,0,71,128,0,0,199,128, - 0,0,131,128,0,1,131,192,0,1,131,192,0,1,1,192, - 0,3,1,224,0,3,255,224,0,2,0,224,0,6,0,240, - 0,6,0,240,0,4,0,112,0,12,0,120,0,12,0,120, - 0,28,0,120,0,255,195,255,128,33,26,130,36,1,0,0, - 7,255,255,128,0,1,224,7,128,0,1,224,3,128,0,3, - 224,1,128,0,2,224,1,128,0,6,224,0,128,0,4,224, - 0,128,0,12,224,32,128,0,8,224,32,0,0,24,224,32, - 0,0,16,224,96,0,0,48,224,96,0,0,48,255,224,0, - 0,96,224,96,0,0,96,224,96,0,0,192,224,32,0,0, - 192,224,32,128,1,255,224,32,128,1,0,224,0,128,3,0, - 224,0,128,2,0,224,1,128,6,0,224,1,128,6,0,224, - 1,128,14,0,224,3,128,30,0,224,15,128,255,199,255,255, - 128,19,34,102,24,3,249,3,252,64,14,6,96,28,3,224, - 24,1,224,56,0,224,120,0,224,112,0,96,112,0,96,240, - 0,96,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,32,112,0,32, - 120,0,96,56,0,64,56,0,64,24,0,128,12,0,128,6, - 3,0,3,204,0,0,112,0,0,64,0,0,240,0,0,28, - 0,0,28,0,0,28,0,2,28,0,1,240,0,21,34,102, - 25,2,0,3,0,0,3,128,0,1,192,0,0,192,0,0, - 96,0,0,16,0,0,0,0,0,0,0,255,255,248,14,0, - 120,14,0,56,14,0,24,14,0,24,14,0,8,14,0,8, - 14,4,8,14,4,0,14,4,0,14,12,0,14,12,0,15, - 252,0,14,12,0,14,4,0,14,4,0,14,4,8,14,4, - 8,14,0,8,14,0,8,14,0,24,14,0,24,14,0,56, - 14,0,56,14,0,248,255,255,248,21,34,102,25,2,0,0, - 3,0,0,7,128,0,7,0,0,12,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,255,248,14,0,120,14,0,56, - 14,0,24,14,0,24,14,0,8,14,0,8,14,4,8,14, - 4,0,14,4,0,14,12,0,14,12,0,15,252,0,14,12, - 0,14,4,0,14,4,0,14,4,8,14,4,8,14,0,8, - 14,0,8,14,0,24,14,0,24,14,0,56,14,0,56,14, - 0,248,255,255,248,21,34,102,25,2,0,0,48,0,0,48, - 0,0,120,0,0,204,0,1,134,0,2,1,128,0,0,0, - 0,0,0,255,255,248,14,0,120,14,0,56,14,0,24,14, - 0,24,14,0,8,14,0,8,14,4,8,14,4,0,14,4, - 0,14,12,0,14,12,0,15,252,0,14,12,0,14,4,0, - 14,4,0,14,4,8,14,4,8,14,0,8,14,0,8,14, - 0,24,14,0,24,14,0,56,14,0,56,14,0,248,255,255, - 248,21,33,99,25,2,0,1,131,0,3,135,0,3,135,0, - 1,131,0,0,0,0,0,0,0,0,0,0,255,255,248,14, - 0,120,14,0,56,14,0,24,14,0,24,14,0,8,14,0, - 8,14,4,8,14,4,0,14,4,0,14,12,0,14,12,0, - 15,252,0,14,12,0,14,4,0,14,4,0,14,4,8,14, - 4,8,14,0,8,14,0,8,14,0,24,14,0,24,14,0, - 56,14,0,56,14,0,248,255,255,248,10,34,68,14,2,0, - 192,0,224,0,112,0,56,0,8,0,4,0,0,0,0,0, - 255,192,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,192,10,34,68,14,2,0,0,192,1,192,1,128, - 3,0,6,0,4,0,0,0,0,0,255,192,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,10,34, - 68,14,2,0,4,0,14,0,30,0,59,0,97,128,128,64, - 0,0,0,0,255,192,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,255,192,11,33,66,14,2,0,96,192, - 224,224,224,224,96,192,0,0,0,0,0,0,127,224,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,127,224, - 24,26,78,27,2,0,255,255,0,14,0,192,14,0,112,14, - 0,56,14,0,60,14,0,28,14,0,30,14,0,30,14,0, - 14,14,0,15,14,0,15,14,0,15,255,224,15,14,0,15, - 14,0,15,14,0,15,14,0,15,14,0,14,14,0,30,14, - 0,30,14,0,28,14,0,56,14,0,56,14,0,112,14,0, - 192,255,255,0,25,33,132,28,2,0,0,120,32,0,0,254, - 96,0,0,143,192,0,0,131,128,0,0,0,0,0,0,0, - 0,0,0,0,0,0,254,0,255,128,15,0,28,0,15,128, - 8,0,15,128,8,0,11,192,8,0,11,192,8,0,9,224, - 8,0,8,240,8,0,8,240,8,0,8,120,8,0,8,60, - 8,0,8,60,8,0,8,30,8,0,8,30,8,0,8,15, - 8,0,8,7,136,0,8,7,136,0,8,3,200,0,8,1, - 232,0,8,1,232,0,8,0,248,0,8,0,120,0,8,0, - 120,0,8,0,56,0,28,0,24,0,255,128,24,0,21,34, - 102,26,3,0,3,0,0,7,0,0,3,128,0,1,192,0, - 0,64,0,0,32,0,0,0,0,0,32,0,3,220,0,6, - 3,0,12,1,128,28,1,192,56,0,224,56,0,224,120,0, - 240,112,0,112,112,0,112,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,240,0,120,112, - 0,112,112,0,112,120,0,240,56,0,224,56,0,224,28,1, - 192,12,1,128,6,3,0,3,254,0,21,34,102,26,3,0, - 0,6,0,0,7,0,0,14,0,0,28,0,0,16,0,0, - 32,0,0,0,0,0,32,0,3,220,0,6,3,0,12,1, - 128,28,1,192,56,0,224,56,0,224,120,0,240,112,0,112, - 112,0,112,240,0,120,240,0,120,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,112,0,112,112,0, - 112,120,0,240,56,0,224,56,0,224,28,1,192,12,1,128, - 6,3,0,3,254,0,21,34,102,26,3,0,0,32,0,0, - 112,0,0,112,0,0,216,0,1,4,0,6,3,0,0,0, - 0,0,32,0,3,220,0,6,3,0,12,1,128,28,1,192, - 56,0,224,56,0,224,120,0,240,112,0,112,112,0,112,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,112,0,112,112,0,112,120,0,240, - 56,0,224,56,0,224,28,1,192,12,1,128,6,3,0,3, - 254,0,21,33,99,26,3,0,3,225,0,3,255,0,4,62, - 0,0,0,0,0,0,0,0,0,0,0,32,0,3,220,0, - 6,3,0,12,1,128,28,1,192,56,0,224,56,0,224,120, - 0,240,112,0,112,112,0,112,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 112,0,112,112,0,112,120,0,240,56,0,224,56,0,224,28, - 1,192,12,1,128,6,3,0,3,254,0,21,33,99,26,3, - 0,3,6,0,7,7,0,7,7,0,3,6,0,0,0,0, - 0,0,0,0,32,0,3,220,0,6,3,0,12,1,128,28, - 1,192,56,0,224,56,0,224,120,0,240,112,0,112,112,0, - 112,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,112,0,112,112,0,112,120, - 0,240,56,0,224,56,0,224,28,1,192,12,1,128,6,3, - 0,3,254,0,22,23,69,34,6,254,128,0,4,192,0,12, - 96,0,24,48,0,48,24,0,96,12,0,192,6,1,128,3, - 3,0,1,134,0,0,204,0,0,120,0,0,48,0,0,120, - 0,0,204,0,1,134,0,3,3,0,6,1,128,12,0,192, - 24,0,96,48,0,48,96,0,24,192,0,12,128,0,0,21, - 27,81,26,3,0,0,32,0,3,222,24,6,3,48,12,1, - 224,28,1,192,56,0,224,56,1,224,120,3,240,112,2,112, - 112,6,112,240,12,120,240,24,120,240,16,120,240,48,120,240, - 96,120,240,192,120,240,192,120,241,128,120,115,0,112,114,0, - 112,126,0,240,60,0,224,56,0,224,28,1,192,60,1,128, - 102,3,0,195,222,0,25,34,136,29,2,0,0,192,0,0, - 0,224,0,0,0,224,0,0,0,48,0,0,0,16,0,0, - 0,8,0,0,0,0,0,0,0,0,0,0,255,192,255,128, - 14,0,14,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 6,0,8,0,7,0,8,0,3,0,16,0,1,192,32,0, - 0,127,192,0,25,34,136,29,2,0,0,0,192,0,0,1, - 192,0,0,3,128,0,0,7,0,0,0,4,0,0,0,8, - 0,0,0,0,0,0,0,0,0,0,255,192,255,128,14,0, - 14,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,6,0, - 8,0,7,0,8,0,3,0,16,0,1,192,32,0,0,127, - 192,0,25,34,136,29,2,0,0,8,0,0,0,28,0,0, - 0,30,0,0,0,55,0,0,0,65,128,0,1,128,96,0, - 0,0,0,0,0,0,0,0,255,192,255,128,14,0,14,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,6,0,8,0, - 7,0,8,0,3,128,16,0,1,192,96,0,0,127,192,0, - 25,33,132,29,2,0,0,192,192,0,0,225,192,0,0,225, - 192,0,0,192,192,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,192,255,128,14,0,14,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,6,0,8,0,7,0,8,0,3,0, - 16,0,1,192,32,0,0,127,192,0,24,34,102,27,2,0, - 0,0,192,0,1,192,0,3,128,0,7,0,0,4,0,0, - 8,0,0,0,0,0,0,0,255,225,255,31,0,56,15,0, - 48,7,128,48,7,128,32,3,192,96,3,192,64,1,224,128, - 0,224,128,0,241,0,0,113,0,0,122,0,0,58,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,1,255,224,21,26,78,25,2,0,255,224,0,14, - 0,0,14,0,0,14,0,0,14,0,0,15,255,0,14,1, - 192,14,0,224,14,0,240,14,0,120,14,0,120,14,0,120, - 14,0,120,14,0,120,14,0,240,14,0,224,14,1,192,15, - 255,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,255,224,0,16,26,52,19,1,0, - 1,240,3,28,6,14,14,14,28,14,28,14,28,12,28,28, - 28,48,29,192,28,48,28,24,28,12,28,14,28,6,28,7, - 28,7,28,7,28,7,28,7,28,135,29,199,29,199,29,142, - 29,140,252,120,16,25,50,19,2,1,112,0,112,0,56,0, - 28,0,12,0,2,0,0,0,0,0,15,128,48,224,32,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,25,50,19, - 2,1,0,112,0,240,0,224,1,128,3,0,2,0,0,0, - 0,0,15,128,48,224,96,112,96,112,120,112,120,112,0,112, - 1,240,30,112,112,112,96,112,224,112,224,113,224,241,225,113, - 113,126,62,60,16,25,50,19,2,0,6,0,7,0,7,0, - 13,128,24,192,48,96,0,0,0,0,15,128,48,224,96,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,24,48,19, - 2,0,30,48,63,224,35,192,0,0,0,0,0,0,0,0, - 15,128,48,224,96,112,96,112,120,112,120,112,0,112,1,240, - 30,112,112,112,96,112,224,112,224,113,224,241,225,113,113,126, - 62,60,16,24,48,19,2,0,48,96,112,224,112,224,48,96, - 0,0,0,0,0,0,15,0,48,192,96,96,96,96,112,96, - 112,96,0,96,1,224,30,96,112,96,96,96,224,96,224,97, - 224,225,225,99,113,126,62,60,16,25,50,19,2,0,7,0, - 24,192,16,64,16,64,24,192,7,0,0,0,0,0,15,128, - 48,224,96,112,96,112,120,112,120,112,0,112,1,240,30,112, - 112,112,96,112,224,112,224,113,224,241,225,113,113,126,62,60, - 22,17,51,26,2,0,15,135,192,48,236,112,96,120,48,112, - 120,56,120,112,24,56,112,28,0,112,28,7,255,252,56,112, - 0,112,112,0,224,112,0,224,112,4,224,248,8,224,184,8, - 225,56,16,113,28,48,62,7,192,12,24,48,16,2,249,15, - 128,24,96,48,48,112,48,96,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,0,96,16,112,16,48,32,24,96,15, - 128,2,0,6,0,1,128,0,192,0,192,16,192,15,128,13, - 25,50,17,2,1,48,0,56,0,28,0,12,0,6,0,3, - 0,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,16,24,96,7,128,13,25,50,17,2,1,0,112,0, - 112,0,224,0,192,1,128,3,0,0,0,0,0,15,128,24, - 224,48,96,112,112,96,48,224,56,224,56,255,248,224,0,224, - 0,224,0,224,8,112,16,112,16,48,16,24,96,7,128,13, - 25,50,17,2,0,3,0,3,0,7,128,5,128,8,64,16, - 32,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,32,24,96,7,128,13,24,48,17,2,0,24,96,56, - 112,56,112,24,96,0,0,0,0,0,0,15,128,24,224,48, - 96,112,48,96,48,224,56,224,56,255,248,224,0,224,0,224, - 0,224,8,112,16,112,16,48,32,24,96,7,128,9,25,50, - 11,0,0,192,0,224,0,112,0,56,0,8,0,4,0,0, - 0,0,0,62,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,8,25,25,10,2,0,3,7,7,12,24, - 48,0,0,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,9,25,50,11,1,0,24,0,28,0,60,0, - 54,0,99,0,128,128,0,0,0,0,124,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,127,0,9,24,48,11, - 1,0,97,128,227,128,227,128,97,128,0,0,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 127,128,14,26,52,18,2,0,28,16,14,48,15,192,7,128, - 7,128,13,192,48,224,0,224,0,112,7,240,24,120,48,56, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,24,112,56,48,48,24,96,7,128,17,24,72,21, - 2,0,7,4,0,15,204,0,9,248,0,8,112,0,0,0, - 0,0,0,0,0,0,0,248,248,0,57,28,0,58,14,0, - 60,14,0,60,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,254,63,128,14,25,50,18,2,1, - 56,0,56,0,28,0,12,0,6,0,3,0,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,25,50,18,2,1,0,48,0,112,0,224,0,192, - 1,128,1,0,0,0,0,0,7,128,24,96,48,48,112,56, - 112,24,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,24,112,56,48,48,24,96,7,128,14,25,50,18,2,0, - 3,0,3,0,7,128,4,128,8,64,16,32,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,24,48,18,2,0,30,16,31,240,33,224,0,0, - 0,0,0,0,0,0,7,128,24,96,48,48,112,56,112,24, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,24, - 112,56,48,48,24,96,7,128,14,24,48,18,2,0,24,48, - 56,112,56,112,24,48,0,0,0,0,0,0,7,128,24,96, - 48,48,112,56,112,24,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,24,112,56,48,48,24,96,7,128,30,23, - 92,34,2,254,0,3,0,0,0,7,128,0,0,7,128,0, - 0,7,128,0,0,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,252,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,7,128,0,0,7,128,0,0,7,128,0,0,3,0,0, - 14,17,34,18,2,0,7,132,24,104,48,56,112,56,112,56, - 224,92,224,156,225,156,227,28,226,28,228,28,232,28,120,24, - 112,56,48,48,88,96,135,192,17,25,75,20,1,1,28,0, - 0,28,0,0,14,0,0,3,0,0,1,0,0,0,128,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,17,25,75,20,1,1,0, - 28,0,0,60,0,0,48,0,0,96,0,0,192,0,0,128, - 0,0,0,0,0,0,0,248,62,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,30,0,56,30, - 0,56,46,0,28,78,0,15,143,128,17,25,75,20,1,0, - 0,128,0,1,192,0,1,192,0,3,96,0,4,48,0,8, - 8,0,0,0,0,0,0,0,248,62,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,30,0,56, - 30,0,56,46,0,28,78,0,15,143,128,17,24,72,20,1, - 0,12,48,0,28,56,0,28,56,0,12,48,0,0,0,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,18,33,99,19,1,249,0, - 12,0,0,28,0,0,24,0,0,48,0,0,96,0,0,64, - 0,0,0,0,0,0,0,255,31,192,28,6,0,28,4,0, - 12,4,0,14,4,0,14,4,0,6,8,0,7,8,0,7, - 8,0,3,16,0,3,144,0,3,144,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,113,128,0,113,0,0,114,0,0,60, - 0,0,16,34,68,19,1,247,12,0,60,0,92,0,28,0, - 28,0,28,0,28,0,28,0,28,60,28,126,28,143,29,7, - 30,7,30,7,30,7,28,6,28,14,28,14,28,12,28,24, - 28,16,28,32,28,64,29,128,31,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,224,0,17,32,96,19, - 1,248,6,12,0,7,28,0,7,28,0,6,12,0,0,0, - 0,0,0,0,0,0,0,255,31,128,28,6,0,28,4,0, - 14,4,0,14,4,0,14,8,0,7,8,0,7,8,0,7, - 16,0,3,144,0,3,144,0,3,160,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,121,0,0,121,0,0,114,0,0,60, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=30 h=34 x= 4 y=10 dx=34 dy= 0 ascent=27 len=124 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26n[932] U8G_SECTION(".progmem.u8g_font_osr26n") = { - 0,94,46,227,245,25,0,0,0,0,42,57,0,27,249,25, - 0,13,15,30,18,3,10,7,0,7,0,7,0,195,24,226, - 56,114,112,10,128,7,0,15,128,122,240,242,120,226,56,7, - 0,7,0,7,0,30,31,124,34,2,250,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,255,255,255,252,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,5,11,11,10,2,250,112,248,248, - 120,8,8,8,16,16,32,64,9,2,4,13,2,8,255,128, - 255,128,4,5,5,10,3,0,96,240,240,240,96,12,34,68, - 16,2,249,0,16,0,48,0,48,0,32,0,96,0,96,0, - 64,0,192,0,192,0,128,0,128,1,128,1,0,1,0,3, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,24,0,16,0,48,0,48,0,32,0,96,0,96, - 0,64,0,192,0,192,0,17,25,75,21,2,0,3,224,0, - 14,56,0,28,28,0,24,12,0,56,14,0,112,7,0,112, - 7,0,112,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 112,7,0,112,7,0,112,7,0,56,14,0,56,14,0,24, - 12,0,12,24,0,7,112,0,12,25,50,21,4,0,1,0, - 3,0,3,0,15,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,240, - 15,25,50,21,3,0,15,192,48,112,96,56,64,60,192,30, - 192,30,224,30,248,30,248,30,120,28,0,60,0,56,0,112, - 0,224,1,192,3,0,14,0,28,4,56,4,48,4,96,4, - 96,12,255,252,255,252,255,252,15,25,50,21,3,0,15,192, - 48,112,32,56,96,28,112,28,120,28,120,28,48,28,0,28, - 0,56,0,112,31,192,24,112,0,56,0,60,0,30,0,30, - 112,30,248,30,248,30,248,30,192,60,192,56,96,112,63,224, - 17,25,75,21,2,0,0,16,0,0,48,0,0,112,0,0, - 112,0,0,240,0,1,240,0,1,112,0,3,112,0,6,112, - 0,6,112,0,12,112,0,8,112,0,24,112,0,48,112,0, - 32,112,0,96,112,0,192,112,0,255,255,128,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,7,255, - 128,15,26,52,21,3,0,32,0,48,56,63,240,63,192,47, - 0,32,0,32,0,32,0,32,0,39,192,56,112,48,56,32, - 60,32,28,0,30,0,30,0,30,0,30,120,30,248,30,248, - 28,240,60,224,60,96,56,112,112,63,192,15,25,50,21,3, - 0,3,224,6,24,12,12,24,28,56,60,48,60,112,16,112, - 0,112,0,243,224,246,56,252,28,248,28,248,14,240,14,240, - 14,240,14,240,14,112,14,112,14,112,12,56,28,56,24,24, - 56,14,224,14,25,50,21,3,0,255,252,255,252,255,252,192, - 12,128,8,128,8,128,8,128,16,0,16,0,32,0,96,0, - 64,0,128,1,128,1,128,3,0,3,0,7,0,7,0,15, - 128,15,128,15,128,15,128,15,128,7,128,17,25,75,21,2, - 0,7,240,0,28,28,0,48,14,0,112,6,0,224,3,0, - 224,3,0,224,3,0,240,3,0,240,6,0,124,6,0,127, - 140,0,31,240,0,7,252,0,25,254,0,48,63,0,96,15, - 128,224,7,128,224,3,128,224,3,128,224,3,128,224,3,0, - 96,7,0,112,6,0,56,12,0,15,248,0,15,25,50,21, - 3,0,7,192,24,96,48,48,112,56,112,28,224,28,224,28, - 224,30,224,30,224,30,224,30,112,62,112,62,56,94,15,158, - 0,30,0,28,0,28,56,28,120,28,120,56,112,56,96,112, - 48,224,31,192}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=34 x= 4 y=20 dx=38 dy= 0 ascent=28 len=130 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26r[6049] U8G_SECTION(".progmem.u8g_font_osr26r") = { - 0,94,46,227,245,26,7,96,17,82,32,127,248,28,248,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,114,112,10,128,7,0,15,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,240,248,120,8,8,8,16,16,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,30,14, - 19,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=39 x= 8 y=23 dx=44 dy= 0 ascent=39 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29[16232] U8G_SECTION(".progmem.u8g_font_osr29") = { - 0,107,51,223,244,29,9,148,21,166,32,255,247,39,245,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,128,3,128,29,112,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,5,26,26,11,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,240,248,120, - 8,8,8,16,16,32,96,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,11,0,0,5,28,28,11,3, - 247,112,248,248,248,112,0,32,32,32,32,32,32,112,112,112, - 112,112,112,112,112,248,248,248,248,248,248,248,112,14,28,56, - 24,5,252,0,128,0,128,0,128,0,128,0,128,7,224,12, - 152,24,136,56,140,112,156,112,188,240,188,240,152,240,128,240, - 128,240,128,240,128,240,132,112,132,112,132,56,132,24,136,14, - 144,3,224,0,128,0,128,0,128,0,128,23,28,84,30,3, - 0,0,3,240,0,6,24,0,28,12,0,24,14,0,48,62, - 0,112,62,0,112,62,0,112,24,0,112,0,0,240,0,0, - 240,0,0,240,0,31,240,0,32,255,128,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,224,0, - 0,224,0,62,224,2,67,192,2,128,224,4,129,127,60,194, - 63,248,60,15,240,20,20,60,24,2,4,64,0,32,225,248, - 112,119,254,224,62,7,192,24,1,128,48,0,192,48,0,192, - 96,0,96,96,0,96,96,0,96,96,0,96,96,0,96,96, - 0,96,48,0,192,48,0,192,24,1,128,62,7,192,119,254, - 224,225,248,112,64,0,32,22,28,84,24,1,0,255,131,252, - 62,0,112,30,0,96,14,0,64,15,0,64,15,0,128,7, - 128,128,7,129,0,3,193,0,3,194,0,1,226,0,1,228, - 0,0,252,0,0,248,0,0,120,0,31,255,192,0,120,0, - 0,120,0,31,255,192,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,7,255, - 128,2,37,37,12,5,249,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,0,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,15,36,72,26, - 4,248,7,192,12,32,24,48,48,120,48,120,48,112,56,0, - 56,0,28,0,30,0,15,0,31,192,35,224,97,240,64,248, - 192,60,192,30,192,14,224,6,240,6,120,6,60,4,31,12, - 15,152,7,224,3,224,0,224,0,112,0,112,0,56,56,56, - 60,56,56,48,48,48,24,96,7,128,12,4,8,18,3,22, - 96,96,240,240,240,240,96,96,30,29,116,34,2,1,0,127, - 248,0,1,192,14,0,3,0,3,0,4,0,0,128,8,0, - 0,64,16,7,196,32,32,24,108,16,32,48,60,16,64,112, - 28,8,64,224,12,8,192,224,12,8,129,224,4,4,129,224, - 0,4,129,224,0,4,129,224,0,4,129,224,0,4,129,224, - 0,4,129,224,4,4,192,224,4,8,64,224,8,8,64,112, - 8,8,32,112,24,16,48,24,48,48,16,15,192,32,8,0, - 0,64,4,0,0,128,3,0,3,0,1,192,14,0,0,127, - 248,0,11,14,28,16,3,14,60,0,102,0,67,0,99,0, - 99,0,7,0,27,0,99,0,195,0,195,32,231,32,121,192, - 0,0,127,192,10,16,32,19,4,1,24,64,48,192,32,128, - 97,128,97,0,195,0,195,0,195,0,195,0,195,0,195,0, - 97,128,97,128,48,128,16,64,8,0,20,8,24,24,2,7, - 255,255,240,255,255,240,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,10,2,4,14,2,9,255,192, - 255,192,30,29,116,34,2,1,0,127,248,0,1,192,14,0, - 3,0,3,0,4,0,0,128,8,0,0,64,19,255,192,32, - 32,112,240,48,32,112,120,16,64,112,120,8,64,112,120,8, - 192,112,120,8,128,112,112,4,128,112,224,4,128,127,128,4, - 128,112,224,4,128,112,112,4,128,112,112,4,128,112,120,4, - 128,112,120,8,64,112,120,136,64,112,120,136,32,112,56,144, - 32,112,57,16,19,252,30,32,8,0,0,64,4,0,0,128, - 3,0,3,0,1,192,14,0,0,127,248,0,11,2,4,19, - 4,23,255,224,255,224,11,10,20,23,6,18,31,0,96,128, - 64,64,128,32,128,32,128,32,128,32,64,64,96,128,31,0, - 35,28,140,39,2,254,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,192,255,255,255, - 255,192,11,17,34,18,4,11,31,0,99,192,129,192,128,224, - 192,224,224,224,112,224,1,192,1,128,3,0,12,0,24,0, - 32,32,64,32,64,96,255,224,255,224,11,17,34,18,5,11, - 31,0,97,192,192,192,224,224,240,224,0,224,0,192,97,128, - 126,0,1,128,0,192,0,224,224,224,240,224,224,192,129,192, - 127,0,7,7,7,18,8,21,6,14,28,56,48,96,128,21, - 30,90,25,3,245,96,6,0,224,15,0,240,15,0,240,15, - 0,240,15,0,224,15,0,224,15,0,224,15,0,224,15,0, - 224,15,0,224,6,0,64,6,0,64,6,0,64,6,0,96, - 12,8,96,14,24,88,59,248,79,241,248,67,224,240,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,224,0,0, - 224,0,0,240,0,0,240,0,0,112,0,0,112,0,0,17, - 35,105,23,3,250,15,255,128,63,140,0,127,140,0,127,140, - 0,255,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 127,140,0,127,140,0,63,140,0,7,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,5,5, - 5,11,3,10,112,248,248,248,112,8,8,8,18,5,248,48, - 32,60,6,7,7,15,252,9,17,34,19,5,11,4,0,12, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,10, - 14,28,16,3,14,30,0,51,0,97,128,192,192,192,192,192, - 192,192,192,192,192,193,192,97,128,35,0,30,0,0,0,255, - 192,10,16,32,20,5,1,134,0,195,0,65,0,97,128,32, - 192,48,192,48,192,48,192,48,192,48,192,48,192,97,128,97, - 128,67,0,130,0,4,0,27,28,112,35,5,0,4,0,12, - 0,12,0,8,0,28,0,24,0,252,0,16,0,28,0,32, - 0,28,0,96,0,28,0,64,0,28,0,192,0,28,0,128, - 0,28,1,128,0,28,3,0,0,28,2,0,0,28,6,7, - 0,28,4,15,0,28,12,15,0,28,24,23,0,255,144,23, - 0,0,48,39,0,0,32,71,0,0,96,71,0,0,192,135, - 0,0,129,7,0,1,129,255,224,1,0,7,0,3,0,7, - 0,6,0,7,0,6,0,7,0,12,0,63,224,27,28,112, - 35,5,0,4,0,4,0,12,0,12,0,28,0,8,0,252, - 0,16,0,28,0,48,0,28,0,32,0,28,0,96,0,28, - 0,64,0,28,0,128,0,28,1,128,0,28,1,0,0,28, - 3,31,0,28,6,99,192,28,4,129,192,28,12,128,224,28, - 8,192,224,255,152,224,224,0,48,240,224,0,32,1,192,0, - 96,1,128,0,64,3,0,0,192,12,0,1,128,24,0,1, - 0,32,32,3,0,64,32,2,0,64,96,6,0,255,224,12, - 0,255,224,28,28,112,36,5,0,31,0,6,0,97,192,4, - 0,192,224,8,0,224,224,24,0,240,224,16,0,0,192,48, - 0,1,128,96,0,126,0,64,0,97,128,192,0,0,192,128, - 0,0,225,128,0,96,227,3,128,240,226,3,128,224,230,7, - 128,129,196,7,128,67,136,11,128,62,24,19,128,0,16,19, - 128,0,48,35,128,0,96,99,128,0,64,67,128,0,192,131, - 128,0,128,255,240,1,128,3,128,3,0,3,128,2,0,3, - 128,6,0,3,128,4,0,31,240,15,28,56,19,1,247,3, - 128,7,192,7,192,7,192,3,128,0,0,3,128,4,64,8, - 32,8,32,8,96,0,96,0,192,1,128,7,0,14,0,28, - 0,56,0,120,0,240,60,240,62,240,62,240,6,240,6,112, - 6,120,12,28,24,7,224,29,38,152,32,2,0,0,224,0, - 0,0,240,0,0,0,112,0,0,0,56,0,0,0,12,0, - 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,15,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,240, - 0,0,192,120,0,0,128,120,0,1,128,120,0,1,255,252, - 0,1,0,60,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,30,0,15, - 128,255,224,255,248,29,38,152,32,2,0,0,0,48,0,0, - 0,112,0,0,0,240,0,0,0,224,0,0,1,128,0,0, - 3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0, - 15,128,0,0,15,128,0,0,15,128,0,0,31,192,0,0, - 19,192,0,0,51,192,0,0,49,224,0,0,33,224,0,0, - 97,224,0,0,96,240,0,0,64,240,0,0,192,240,0,0, - 192,120,0,0,128,120,0,1,128,120,0,1,255,252,0,3, - 0,60,0,3,0,30,0,3,0,30,0,6,0,30,0,6, - 0,15,0,6,0,15,0,14,0,15,0,31,0,31,192,255, - 224,255,248,29,38,152,32,2,0,0,6,0,0,0,7,0, - 0,0,15,128,0,0,29,128,0,0,56,192,0,0,96,48, - 0,0,128,8,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,6,0,0,0,7,0,0,0,7,0,0,0,15,128, - 0,0,15,128,0,0,15,128,0,0,31,192,0,0,19,192, - 0,0,51,192,0,0,49,224,0,0,33,224,0,0,97,224, - 0,0,96,240,0,0,64,240,0,0,192,240,0,0,192,120, - 0,0,128,120,0,1,128,120,0,1,255,252,0,1,0,60, - 0,3,0,28,0,3,0,30,0,6,0,30,0,6,0,15, - 0,6,0,15,0,14,0,15,0,30,0,15,128,255,224,255, - 248,29,37,148,32,2,0,0,60,8,0,0,127,24,0,0, - 207,240,0,0,129,240,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0, - 7,0,0,0,7,0,0,0,15,128,0,0,15,128,0,0, - 15,128,0,0,31,192,0,0,19,192,0,0,51,192,0,0, - 49,224,0,0,33,224,0,0,97,224,0,0,96,240,0,0, - 64,240,0,0,192,240,0,0,192,120,0,0,128,120,0,1, - 128,120,0,1,255,252,0,3,0,60,0,3,0,30,0,3, - 0,30,0,6,0,30,0,6,0,15,0,6,0,15,0,14, - 0,15,0,31,0,31,192,255,224,255,248,29,37,148,32,2, - 0,0,96,48,0,0,240,120,0,0,240,120,0,0,96,48, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,31,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,112, - 0,0,192,120,0,0,128,120,0,1,128,56,0,1,255,252, - 0,1,0,28,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,31,0,15, - 128,255,224,255,248,29,39,156,32,2,0,0,15,0,0,0, - 16,128,0,0,32,64,0,0,32,64,0,0,32,64,0,0, - 32,64,0,0,16,128,0,0,15,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0, - 7,0,0,0,15,128,0,0,15,128,0,0,31,128,0,0, - 31,192,0,0,19,192,0,0,51,192,0,0,51,224,0,0, - 33,224,0,0,97,224,0,0,97,240,0,0,64,240,0,0, - 192,240,0,0,192,248,0,0,128,120,0,1,128,120,0,1, - 255,252,0,1,0,60,0,3,0,60,0,2,0,62,0,6, - 0,30,0,6,0,31,0,6,0,31,0,14,0,15,0,30, - 0,15,128,255,224,255,248,37,29,145,41,1,0,0,3,255, - 255,248,0,0,124,0,248,0,0,124,0,56,0,0,124,0, - 56,0,0,252,0,24,0,1,188,0,24,0,1,188,0,8, - 0,3,60,0,8,0,3,60,4,8,0,6,60,4,0,0, - 6,60,4,0,0,12,60,4,0,0,12,60,12,0,0,24, - 60,28,0,0,24,63,252,0,0,48,60,28,0,0,48,60, - 12,0,0,96,60,4,0,0,96,60,4,8,0,255,252,4, - 8,0,128,60,4,8,1,128,60,0,8,1,0,60,0,24, - 3,0,60,0,24,2,0,60,0,24,6,0,60,0,56,14, - 0,60,0,120,31,0,60,1,248,255,225,255,255,248,22,38, - 114,28,3,248,1,255,12,7,1,140,14,0,252,28,0,124, - 24,0,60,56,0,60,56,0,28,112,0,28,112,0,12,112, - 0,12,240,0,8,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,112,0,4, - 112,0,4,120,0,12,56,0,8,56,0,8,28,0,16,12, - 0,16,14,0,32,3,0,192,1,247,128,0,56,0,0,32, - 0,0,56,0,0,14,0,0,7,0,0,7,0,0,7,0, - 1,14,0,0,252,0,23,38,114,29,3,0,1,128,0,1, - 192,0,1,224,0,0,224,0,0,48,0,0,24,0,0,12, - 0,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,38, - 114,29,3,0,0,0,192,0,1,224,0,3,192,0,3,128, - 0,6,0,0,12,0,0,8,0,0,0,0,0,0,0,255, - 255,254,15,0,62,15,0,14,15,0,14,15,0,6,15,0, - 6,15,0,2,15,0,2,15,1,2,15,1,0,15,1,0, - 15,1,0,15,3,0,15,7,0,15,255,0,15,7,0,15, - 3,0,15,1,0,15,1,2,15,1,2,15,1,2,15,0, - 2,15,0,6,15,0,6,15,0,6,15,0,14,15,0,30, - 15,0,126,255,255,254,23,38,114,29,3,0,0,8,0,0, - 28,0,0,62,0,0,55,0,0,99,128,1,128,192,2,0, - 32,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,37, - 111,29,3,0,1,128,192,3,193,224,3,193,224,1,128,192, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,15, - 0,62,15,0,14,15,0,14,15,0,6,15,0,6,15,0, - 2,15,0,2,15,1,2,15,1,0,15,1,0,15,3,0, - 15,3,0,15,7,0,15,255,0,15,7,0,15,3,0,15, - 3,0,15,1,2,15,1,2,15,1,2,15,0,2,15,0, - 6,15,0,6,15,0,6,15,0,14,15,0,30,15,0,126, - 255,255,254,12,38,76,17,3,0,192,0,224,0,112,0,56, - 0,24,0,12,0,2,0,0,0,0,0,255,240,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,255,240,12,38,76,17,3,0,0,48,0,112,0, - 224,1,192,3,128,2,0,4,0,0,0,0,0,255,240,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,255,240,12,38,76,17,3,0,6,0,14, - 0,15,0,27,128,48,192,96,96,128,16,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,12,37,74,15,2,0,96, - 96,240,240,240,240,96,96,0,0,0,0,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,27,29,116,32,3,0,255, - 255,192,0,15,0,112,0,15,0,28,0,15,0,14,0,15, - 0,7,0,15,0,7,128,15,0,3,128,15,0,3,192,15, - 0,3,192,15,0,1,192,15,0,1,224,15,0,1,224,15, - 0,1,224,255,240,1,224,15,0,1,224,15,0,1,224,15, - 0,1,224,15,0,1,224,15,0,1,224,15,0,3,192,15, - 0,3,192,15,0,3,192,15,0,3,128,15,0,7,0,15, - 0,7,0,15,0,14,0,15,0,28,0,15,0,112,0,255, - 255,192,0,28,37,148,32,3,0,0,60,8,0,0,127,152, - 0,0,71,240,0,0,65,240,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,63,240,15,128,7, - 128,15,128,3,0,15,192,3,0,15,224,3,0,13,224,3, - 0,13,240,3,0,12,248,3,0,12,120,3,0,12,124,3, - 0,12,60,3,0,12,30,3,0,12,31,3,0,12,15,3, - 0,12,7,131,0,12,7,131,0,12,3,195,0,12,3,227, - 0,12,1,227,0,12,0,243,0,12,0,251,0,12,0,123, - 0,12,0,63,0,12,0,63,0,12,0,31,0,12,0,31, - 0,12,0,15,0,30,0,7,0,255,192,7,0,24,38,114, - 29,3,1,3,128,0,3,192,0,1,192,0,0,224,0,0, - 112,0,0,48,0,0,8,0,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,38,114,29,3,1,0,1,192,0,3, - 192,0,3,128,0,7,0,0,14,0,0,12,0,0,16,0, - 0,0,0,0,0,0,0,255,0,3,0,192,6,0,96,12, - 0,48,28,0,56,56,0,28,56,0,28,120,0,30,112,0, - 14,112,0,14,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,112, - 0,14,112,0,14,120,0,30,56,0,28,56,0,28,28,0, - 56,12,0,48,6,0,96,3,0,192,0,255,0,24,38,114, - 29,3,0,0,24,0,0,24,0,0,60,0,0,126,0,0, - 195,0,1,129,128,6,0,96,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,37,111,29,3,0,1,240,32,3,252, - 64,2,63,192,2,7,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,0,3,0,192,6,0,96,12,0,48,28, - 0,56,56,0,28,56,0,28,120,0,30,112,0,14,112,0, - 14,240,0,15,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,112,0,14,112, - 0,14,120,0,30,56,0,28,56,0,28,28,0,56,12,0, - 48,6,0,96,3,0,192,0,255,0,24,37,111,29,3,0, - 1,129,128,3,195,192,3,195,192,1,129,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,3,0,192,6,0, - 96,12,0,48,28,0,56,56,0,28,56,0,28,120,0,30, - 112,0,14,112,0,14,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,112,0,14,112,0,14,120,0,30,56,0,28,56,0,28, - 28,0,56,12,0,48,6,0,96,3,0,192,0,255,0,25, - 25,100,39,7,254,192,0,1,128,224,0,3,0,112,0,6, - 0,56,0,12,0,28,0,24,0,14,0,48,0,7,0,96, - 0,3,128,192,0,1,193,128,0,0,227,0,0,0,118,0, - 0,0,60,0,0,0,28,0,0,0,62,0,0,0,103,0, - 0,0,195,128,0,1,129,192,0,3,0,224,0,6,0,112, - 0,12,0,56,0,24,0,28,0,48,0,14,0,96,0,7, - 0,192,0,3,128,128,0,1,0,24,29,87,29,3,1,0, - 255,131,3,0,230,6,0,124,12,0,60,28,0,56,56,0, - 60,56,0,124,120,0,254,112,0,206,112,1,142,240,3,15, - 240,6,15,240,14,15,240,12,15,240,24,15,240,48,15,240, - 96,15,240,224,15,240,192,15,113,128,14,115,0,14,126,0, - 30,62,0,28,60,0,28,28,0,56,60,0,48,62,0,96, - 103,0,192,193,255,0,29,38,152,34,3,1,0,112,0,0, - 0,112,0,0,0,56,0,0,0,28,0,0,0,14,0,0, - 0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 255,240,31,248,15,0,3,192,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,7,0,1,0, - 7,0,3,0,3,128,2,0,1,192,6,0,0,224,24,0, - 0,63,240,0,29,38,152,34,3,1,0,0,56,0,0,0, - 120,0,0,0,240,0,0,0,224,0,0,1,128,0,0,3, - 0,0,0,2,0,0,0,0,0,0,0,0,0,0,255,240, - 31,248,15,0,3,192,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,7,0,1,0,7,0, - 3,0,3,128,2,0,1,192,6,0,0,224,24,0,0,63, - 240,0,29,38,152,34,3,0,0,3,0,0,0,7,0,0, - 0,7,128,0,0,13,192,0,0,24,96,0,0,96,48,0, - 0,192,8,0,0,0,0,0,0,0,0,0,255,240,31,248, - 15,0,3,192,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,7,0,3,0,7,0,3,0, - 3,128,6,0,1,192,14,0,0,224,24,0,0,63,240,0, - 29,37,148,34,3,0,0,48,48,0,0,120,120,0,0,120, - 120,0,0,48,48,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,31,248,15,0,3,192,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,7,0,1,0,7,0,3,0,3,128,2,0,1,192, - 6,0,0,224,24,0,0,63,240,0,27,38,152,30,2,0, - 0,0,48,0,0,0,112,0,0,0,224,0,0,0,192,0, - 0,1,128,0,0,3,0,0,0,2,0,0,0,0,0,0, - 0,0,0,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,23,29,87,28,3,0,255,248, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,255,128, - 15,0,224,15,0,120,15,0,60,15,0,60,15,0,30,15, - 0,30,15,0,30,15,0,30,15,0,30,15,0,60,15,0, - 60,15,0,120,15,0,224,15,255,128,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,255,248,0,19,29,87,22,1,0,0,252,0,3,14, - 0,6,7,0,14,7,128,12,7,128,28,7,128,28,7,128, - 28,7,0,28,14,0,28,28,0,28,224,0,28,24,0,28, - 6,0,28,7,0,28,3,128,28,3,128,28,1,192,28,1, - 192,28,1,192,28,1,224,28,1,224,28,1,224,28,1,224, - 28,225,192,29,225,192,29,225,192,28,131,128,28,199,0,252, - 60,0,18,28,84,21,2,1,112,0,0,120,0,0,60,0, - 0,28,0,0,6,0,0,3,0,0,1,0,0,0,0,0, - 0,0,0,15,192,0,56,112,0,32,56,0,96,28,0,120, - 28,0,120,28,0,56,28,0,0,28,0,0,252,0,15,28, - 0,56,28,0,112,28,0,224,28,0,224,28,64,224,60,64, - 224,60,64,224,92,192,112,159,128,31,15,0,18,28,84,21, - 2,1,0,28,0,0,60,0,0,120,0,0,112,0,0,192, - 0,1,128,0,1,0,0,0,0,0,0,0,0,15,192,0, - 56,112,0,32,56,0,96,28,0,120,28,0,120,28,0,56, - 28,0,0,28,0,0,252,0,15,28,0,56,28,0,112,28, - 0,224,28,0,224,28,64,224,60,64,224,60,64,224,92,192, - 112,159,128,31,15,0,18,28,84,21,2,0,3,128,0,3, - 128,0,7,128,0,6,192,0,12,96,0,24,48,0,32,24, - 0,0,0,0,0,0,0,15,192,0,56,112,0,32,56,0, - 96,28,0,120,28,0,120,28,0,56,28,0,0,28,0,0, - 252,0,15,28,0,56,28,0,112,28,0,224,28,0,224,28, - 64,224,60,64,224,60,64,224,92,192,112,159,128,31,15,0, - 18,27,81,21,2,0,30,8,0,63,136,0,39,248,0,64, - 240,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192, - 0,56,112,0,32,56,0,96,28,0,120,28,0,120,28,0, - 56,28,0,0,28,0,0,252,0,15,28,0,56,28,0,112, - 28,0,224,28,0,224,28,64,224,60,64,224,60,64,224,92, - 192,112,159,128,31,15,0,18,27,81,21,2,0,56,48,0, - 120,120,0,120,120,0,56,48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,192,0,24,112,0,32,56,0,96,28, - 0,112,28,0,120,28,0,56,28,0,0,28,0,0,252,0, - 15,28,0,56,28,0,112,28,0,224,28,0,224,28,64,224, - 60,64,224,60,64,224,92,192,112,159,128,31,15,0,18,28, - 84,21,2,0,7,128,0,8,64,0,16,32,0,16,32,0, - 16,32,0,8,64,0,7,128,0,0,0,0,0,0,0,15, - 192,0,56,112,0,32,56,0,96,28,0,112,28,0,120,28, - 0,56,28,0,0,28,0,0,252,0,15,28,0,56,28,0, - 112,28,0,224,28,0,224,28,64,224,60,64,224,92,64,224, - 156,192,112,159,128,31,15,0,25,19,76,29,2,0,15,193, - 240,0,56,115,28,0,32,30,14,0,96,30,7,0,120,28, - 7,0,120,28,7,0,56,28,7,128,0,28,7,128,3,255, - 255,128,28,28,0,0,112,28,0,0,112,28,0,0,224,28, - 1,128,224,28,1,0,224,62,1,0,224,46,1,0,224,70, - 2,0,112,131,4,0,31,0,248,0,15,27,54,18,2,248, - 7,224,28,16,56,8,48,12,112,28,112,60,240,60,240,24, - 240,0,240,0,240,0,240,0,240,6,112,4,112,4,48,12, - 56,8,28,48,7,224,1,0,2,0,1,192,0,96,0,112, - 0,112,8,240,7,192,15,28,56,19,2,1,56,0,60,0, - 28,0,14,0,7,0,3,0,0,128,0,0,0,0,7,192, - 12,112,56,56,48,28,112,28,112,28,240,30,240,30,255,254, - 240,0,240,0,240,0,240,2,112,4,112,4,56,4,56,8, - 28,16,7,224,15,28,56,19,2,1,0,28,0,60,0,56, - 0,112,0,224,0,192,1,0,0,0,0,0,7,192,12,112, - 56,56,48,28,112,28,112,28,240,30,240,30,255,254,240,0, - 240,0,240,0,240,2,112,4,112,4,56,4,56,8,28,16, - 7,224,15,28,56,19,2,0,1,128,3,128,3,192,7,192, - 6,96,8,48,16,8,0,0,0,0,7,192,12,112,56,56, - 48,28,112,28,112,28,240,30,240,30,255,254,240,0,240,0, - 240,0,240,6,112,4,112,4,56,4,56,8,28,16,7,224, - 15,27,54,19,2,0,24,24,60,60,60,60,24,24,0,0, - 0,0,0,0,0,0,7,192,12,112,56,56,48,28,112,28, - 112,28,240,14,240,14,255,254,240,0,240,0,240,0,240,2, - 112,4,112,4,56,4,56,8,28,16,7,224,10,28,56,11, - 0,0,192,0,224,0,224,0,112,0,24,0,12,0,4,0, - 0,0,0,0,126,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,127,192,10,28,56,11,1,0, - 0,192,1,192,3,128,7,0,6,0,12,0,16,0,0,0, - 0,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,255,128,11,28,56,11,0,0,12,0, - 12,0,30,0,31,0,51,0,96,128,128,96,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,127,192,11,26,52,13,1,0,96,192,241,224, - 241,224,96,192,0,0,0,0,0,0,62,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,192, - 17,29,87,21,2,0,30,4,0,15,12,0,7,176,0,3, - 224,0,1,224,0,6,224,0,12,240,0,16,120,0,0,56, - 0,0,28,0,3,254,0,12,62,0,24,30,0,56,15,0, - 112,15,0,112,7,0,240,7,0,240,7,128,240,7,128,240, - 7,128,240,7,0,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,20,26,78, - 22,1,0,3,225,0,7,254,0,4,126,0,0,0,0,0, - 0,0,0,0,0,0,0,0,252,60,0,28,199,0,29,3, - 0,31,3,128,30,3,128,30,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,159, - 240,17,28,84,21,2,1,56,0,0,60,0,0,30,0,0, - 14,0,0,3,0,0,1,128,0,0,128,0,0,0,0,0, - 0,0,3,224,0,12,56,0,24,28,0,56,14,0,112,14, - 0,112,7,0,240,7,0,240,7,0,240,7,128,240,7,128, - 240,7,128,240,7,0,240,7,0,112,7,0,112,14,0,56, - 14,0,24,28,0,12,56,0,3,224,0,17,28,84,21,2, - 1,0,28,0,0,28,0,0,56,0,0,112,0,0,96,0, - 0,192,0,1,128,0,0,0,0,0,0,0,3,224,0,12, - 56,0,24,28,0,56,14,0,112,14,0,112,7,0,240,7, - 0,240,7,0,240,7,128,240,7,128,240,7,128,240,7,0, - 240,7,0,112,7,0,112,14,0,56,14,0,24,28,0,12, - 56,0,3,224,0,17,28,84,21,2,0,1,128,0,1,192, - 0,3,192,0,3,96,0,6,32,0,12,16,0,16,12,0, - 0,0,0,0,0,0,3,224,0,12,56,0,24,28,0,56, - 14,0,112,14,0,112,7,0,240,7,0,240,7,0,240,7, - 128,240,7,128,240,7,128,240,7,0,240,7,0,112,7,0, - 112,14,0,56,14,0,24,28,0,12,56,0,3,224,0,17, - 27,81,21,2,0,15,4,0,31,204,0,19,248,0,16,240, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,224,0, - 12,56,0,24,28,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 0,240,7,0,112,7,0,112,14,0,56,14,0,24,28,0, - 12,56,0,3,224,0,17,27,81,21,2,0,24,24,0,60, - 60,0,60,60,0,24,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,35,26,130, - 39,2,254,0,0,224,0,0,0,1,240,0,0,0,1,240, - 0,0,0,1,240,0,0,0,0,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0, - 0,0,1,240,0,0,0,1,240,0,0,0,1,240,0,0, - 0,0,224,0,0,17,19,57,21,2,0,3,225,0,12,59, - 0,24,30,0,56,14,0,112,14,0,112,31,0,240,55,0, - 240,103,0,240,199,128,240,135,128,241,7,128,242,7,0,244, - 7,0,124,7,0,120,14,0,56,14,0,120,28,0,76,56, - 0,131,224,0,20,28,84,22,1,1,14,0,0,15,0,0, - 7,0,0,3,128,0,1,192,0,0,64,0,0,32,0,0, - 0,0,0,0,0,252,31,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,7,128,28, - 7,128,28,15,128,12,11,128,14,51,128,3,195,240,20,28, - 84,22,1,1,0,7,0,0,15,0,0,30,0,0,24,0, - 0,48,0,0,96,0,0,64,0,0,0,0,0,0,0,252, - 31,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,7,128,28,7,128,28,15,128,12, - 11,128,14,51,128,3,195,240,20,28,84,22,1,0,0,96, - 0,0,224,0,0,240,0,1,176,0,3,24,0,2,4,0, - 4,2,0,0,0,0,0,0,0,252,31,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,128,28,15,128,12,11,128,14,51,128,3, - 195,240,20,27,81,22,1,0,6,6,0,15,15,0,15,15, - 0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 252,15,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,7,128,28,7,128,28,15,128, - 12,11,128,14,51,128,3,195,240,20,37,111,22,1,248,0, - 3,0,0,7,0,0,15,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,0,0,0,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,18,38, - 114,21,1,246,12,0,0,60,0,0,252,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 30,0,28,127,0,28,199,128,29,3,128,31,3,192,30,3, - 192,30,3,128,28,3,128,28,3,128,28,7,0,28,7,0, - 28,6,0,28,12,0,28,28,0,28,24,0,28,48,0,28, - 192,0,29,128,0,30,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 56,0,0,192,0,0,19,36,108,21,1,247,3,6,0,7, - 143,0,7,143,0,3,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,143,224,30,3,128,30,1,0,14,3,0, - 14,2,0,7,2,0,7,2,0,7,6,0,3,132,0,3, - 132,0,3,140,0,1,200,0,1,200,0,1,200,0,0,240, - 0,0,240,0,0,240,0,0,96,0,0,96,0,0,96,0, - 0,64,0,0,64,0,48,64,0,120,64,0,120,128,0,121, - 128,0,59,0,0,30,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=35 h=38 x= 5 y=11 dx=39 dy= 0 ascent=30 len=170 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =30 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29n[1201] U8G_SECTION(".progmem.u8g_font_osr29n") = { - 0,107,51,223,244,28,0,0,0,0,42,57,0,30,248,28, - 0,15,17,34,21,3,11,3,128,3,192,3,128,3,128,225, - 142,241,30,249,62,29,112,3,128,3,128,29,112,249,62,241, - 30,227,142,3,128,3,192,3,128,35,34,170,39,2,250,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,5,12,12,11,3,249,112, - 240,248,248,24,8,8,16,16,32,32,64,10,2,4,14,2, - 9,255,192,255,192,5,5,5,11,3,0,112,248,248,248,112, - 14,38,76,18,2,248,0,12,0,12,0,12,0,8,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,64, - 0,192,0,192,0,128,1,128,1,128,1,0,3,0,3,0, - 2,0,6,0,6,0,4,0,12,0,12,0,8,0,24,0, - 24,0,16,0,48,0,48,0,32,0,96,0,96,0,64,0, - 192,0,20,28,84,24,2,0,1,248,0,7,12,0,12,7, - 0,28,3,128,24,1,128,56,1,192,56,1,192,112,0,224, - 112,0,224,112,0,224,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,112,0,224,112,0,224,112,0,224,56,1,192,56,1,192, - 24,1,128,12,3,0,6,6,0,3,252,0,14,28,56,24, - 5,0,1,128,1,128,3,128,7,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,255,252,17,28,84,24,3,0, - 7,224,0,24,60,0,32,30,0,64,15,0,192,15,0,192, - 7,128,192,7,128,240,7,128,252,7,128,252,7,128,124,7, - 128,24,15,0,0,14,0,0,28,0,0,56,0,0,112,0, - 0,224,0,1,192,0,3,0,0,6,0,0,12,0,128,24, - 0,128,48,0,128,48,1,128,112,1,128,127,255,128,127,255, - 128,127,255,128,17,28,84,24,3,0,15,224,0,48,56,0, - 96,28,0,96,14,0,240,15,0,248,15,0,248,15,0,120, - 15,0,0,15,0,0,15,0,0,14,0,0,28,0,28,56, - 0,31,224,0,0,60,0,0,30,0,0,15,0,0,7,0, - 0,7,128,0,7,128,120,7,128,248,7,128,248,7,128,248, - 7,0,192,15,0,192,14,0,96,28,0,31,240,0,19,28, - 84,24,2,0,0,12,0,0,12,0,0,28,0,0,60,0, - 0,60,0,0,124,0,0,252,0,0,252,0,1,188,0,3, - 60,0,3,60,0,6,60,0,12,60,0,12,60,0,24,60, - 0,48,60,0,32,60,0,96,60,0,192,60,0,255,255,224, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,7,255,224,17,29,87,24,4,0,0,2, - 0,120,12,0,127,248,0,127,240,0,111,192,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, - 60,0,112,30,0,96,14,0,96,15,0,96,7,0,0,7, - 128,0,7,128,0,7,128,16,7,128,120,7,128,252,7,128, - 252,7,128,248,15,0,224,15,0,224,14,0,96,28,0,48, - 56,0,31,240,0,17,28,84,24,3,0,1,248,0,3,12, - 0,12,6,0,28,7,0,24,15,0,56,31,0,48,31,0, - 112,14,0,112,0,0,112,0,0,240,0,0,241,240,0,246, - 28,0,252,14,0,248,7,0,248,7,0,240,7,128,240,7, - 128,240,7,128,240,7,128,112,7,128,112,7,128,112,7,0, - 48,7,0,56,7,0,24,14,0,12,28,0,7,248,0,16, - 28,56,24,4,0,255,255,255,255,255,255,192,3,128,2,128, - 2,128,6,128,4,0,12,0,8,0,24,0,48,0,32,0, - 96,0,192,0,192,1,128,3,128,3,128,7,128,7,128,7, - 128,15,192,15,192,15,192,15,192,15,192,7,192,20,28,84, - 24,2,0,3,248,0,14,14,0,56,7,0,112,3,128,112, - 1,192,240,1,192,240,1,192,240,1,192,240,1,192,248,1, - 128,126,3,128,127,131,0,63,252,0,15,252,0,7,255,0, - 24,127,192,48,15,224,112,3,224,224,1,240,224,0,240,224, - 0,240,224,0,224,224,0,224,224,0,224,112,1,192,48,1, - 128,28,7,0,15,252,0,17,28,84,24,3,0,7,224,0, - 12,56,0,56,12,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,112,15,128,112,15,128,56,27,128,28,51,128,7,199,128, - 0,7,128,0,7,0,0,7,0,56,7,0,124,7,0,124, - 14,0,120,14,0,112,12,0,112,24,0,48,48,0,31,224, - 0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=38 x= 5 y=22 dx=44 dy= 0 ascent=31 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29r[7573] U8G_SECTION(".progmem.u8g_font_osr29r") = { - 0,107,51,223,244,29,9,148,21,166,32,127,247,31,247,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,128,3,128,29,112,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,5,26,26,11,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,240,248,120, - 8,8,8,16,16,32,96,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=47 x=10 y=28 dx=52 dy= 0 ascent=47 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-13 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =47 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35[22370] U8G_SECTION(".progmem.u8g_font_osr35") = { - 0,128,62,216,241,35,12,236,30,116,32,255,246,47,243,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,96,195,128,240, - 135,192,248,143,192,124,159,128,7,248,0,1,224,0,1,224, - 0,6,184,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,32,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,14,0,0,6,33,33,14,4,246,120, - 252,252,252,120,0,0,48,48,48,48,48,48,48,48,48,48, - 48,120,120,120,120,120,120,248,252,252,252,252,252,252,252,120, - 17,34,102,28,5,250,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,7,252,0,14,198,0,28,195, - 0,56,195,128,120,195,128,120,207,128,120,207,128,248,207,128, - 240,199,0,240,192,0,240,192,0,240,192,0,240,192,0,240, - 192,0,248,192,128,120,192,128,120,192,128,120,193,128,56,193, - 0,28,195,0,14,198,0,7,252,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,28,34,136,35, - 3,0,0,0,126,0,0,1,227,128,0,3,128,192,0,7, - 0,192,0,14,0,224,0,14,1,224,0,28,3,224,0,28, - 3,224,0,60,3,192,0,60,0,128,0,60,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,31,252, - 0,0,0,127,248,0,0,124,0,0,0,124,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,0,60, - 0,0,0,56,0,0,0,56,0,16,62,56,0,32,99,240, - 0,32,193,240,0,96,128,120,0,64,128,254,0,192,128,159, - 255,128,193,7,255,0,126,1,254,0,24,24,72,28,2,5, - 64,0,2,224,126,7,115,255,206,63,129,252,30,0,120,28, - 0,56,56,0,24,48,0,12,48,0,12,96,0,6,96,0, - 6,96,0,6,96,0,6,96,0,6,96,0,6,112,0,12, - 48,0,12,56,0,28,28,0,56,30,0,120,63,129,252,115, - 255,206,224,126,7,64,0,2,27,33,132,29,1,0,255,224, - 127,224,31,0,15,0,15,0,6,0,15,128,6,0,7,128, - 12,0,7,192,12,0,3,192,24,0,3,224,24,0,1,224, - 48,0,1,240,32,0,0,240,96,0,0,248,64,0,0,248, - 192,0,0,124,128,0,0,125,128,0,0,63,0,0,0,63, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,31,0,0,3,255, - 240,0,2,44,44,14,6,248,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,18,43,129,31,5,247,1,240,0,6,24,0, - 12,12,0,24,30,0,56,62,0,56,62,0,56,62,0,56, - 8,0,60,0,0,30,0,0,31,0,0,15,128,0,7,192, - 0,15,224,0,25,240,0,48,252,0,96,126,0,64,63,0, - 192,15,128,192,7,128,192,3,192,224,1,192,240,0,192,120, - 0,192,124,0,192,62,0,128,31,1,128,15,131,0,7,198, - 0,3,248,0,1,240,0,0,248,0,0,124,0,0,60,0, - 0,30,0,0,14,0,30,14,0,62,14,0,62,14,0,60, - 12,0,24,28,0,12,56,0,7,224,0,14,5,10,22,4, - 27,112,56,248,124,248,124,248,124,112,56,35,36,180,40,3, - 0,0,7,252,0,0,0,60,7,128,0,0,224,0,192,0, - 1,128,0,48,0,3,0,0,24,0,4,0,0,12,0,8, - 0,0,6,0,24,1,240,131,0,48,7,28,129,0,32,30, - 7,128,128,96,28,3,128,128,64,56,1,128,64,64,120,1, - 128,64,192,120,0,128,64,128,120,0,128,96,128,248,0,0, - 32,128,240,0,0,32,128,240,0,0,32,128,240,0,0,32, - 128,240,0,0,32,128,240,0,0,32,128,240,0,0,32,128, - 248,0,128,96,64,120,0,128,64,64,120,0,128,64,96,56, - 1,128,192,32,60,1,0,128,48,30,3,1,128,16,15,14, - 3,0,24,3,248,2,0,12,0,0,6,0,6,0,0,12, - 0,3,128,0,56,0,0,192,0,96,0,0,120,3,192,0, - 0,31,254,0,0,13,17,34,19,3,17,62,0,99,0,193, - 128,225,128,225,128,3,128,13,128,49,128,113,128,225,128,225, - 136,225,136,247,152,120,240,0,0,0,0,255,240,13,19,38, - 23,5,1,4,0,12,24,24,48,48,32,112,96,96,96,96, - 192,224,192,224,192,224,192,224,192,224,192,224,192,96,192,112, - 96,48,96,56,48,24,16,12,0,23,10,30,29,3,8,255, - 255,254,255,255,254,0,0,6,0,0,6,0,0,6,0,0, - 6,0,0,6,0,0,6,0,0,6,0,0,6,12,3,6, - 18,3,11,255,240,255,240,255,240,35,36,180,40,3,0,0, - 7,252,0,0,0,60,7,128,0,0,224,0,192,0,1,128, - 0,48,0,3,0,0,24,0,4,0,0,12,0,8,0,0, - 6,0,25,255,248,3,0,48,60,30,1,0,32,60,15,0, - 128,96,60,7,128,128,64,60,7,128,64,64,60,7,128,64, - 192,60,7,128,64,128,60,7,128,96,128,60,15,0,32,128, - 60,30,0,32,128,63,240,0,32,128,60,28,0,32,128,60, - 14,0,32,128,60,7,0,32,128,60,7,0,32,128,60,7, - 128,96,64,60,7,128,64,64,60,7,132,64,64,60,7,132, - 192,32,60,7,136,128,48,60,3,201,128,17,255,129,241,0, - 24,0,0,2,0,12,0,0,6,0,6,0,0,12,0,3, - 0,0,24,0,0,192,0,96,0,0,112,1,192,0,0,31, - 254,0,0,13,2,4,21,4,28,255,248,255,248,14,13,26, - 29,8,21,15,192,56,96,112,48,96,24,192,8,192,12,192, - 12,192,12,192,12,96,24,96,24,56,112,15,192,41,34,204, - 45,2,254,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,255,255,255,255,255,128,255,255,255,255,255,128,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,128,255,255,255,255,255,128,14, - 21,42,22,4,13,15,192,49,240,96,120,192,124,192,60,224, - 60,248,60,120,60,48,120,0,112,0,224,1,192,3,128,6, - 0,12,0,48,4,32,4,96,12,127,248,255,248,255,248,14, - 21,42,22,5,13,15,192,56,224,96,112,96,56,112,56,120, - 56,48,56,0,112,0,224,63,128,56,224,0,120,0,56,0, - 60,112,60,248,60,240,60,192,56,192,120,96,240,31,192,8, - 9,9,22,10,25,7,15,15,30,60,48,96,192,128,25,36, - 144,29,3,243,112,1,192,0,240,3,192,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,224,3,224,0, - 224,1,192,0,224,1,192,0,96,1,192,0,96,1,192,0, - 96,1,192,0,96,1,128,0,96,3,129,128,112,7,193,128, - 88,15,127,128,79,254,63,128,67,252,31,0,64,0,0,0, - 192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,240,0,0,0, - 240,0,0,0,240,0,0,0,248,0,0,0,120,0,0,0, - 120,0,0,0,20,42,126,26,3,249,7,255,240,31,193,128, - 63,193,128,127,193,128,127,193,128,255,193,128,255,193,128,255, - 193,128,255,193,128,255,193,128,255,193,128,127,193,128,127,193, - 128,63,193,128,15,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,0,193,128,0,193,128,0,193, - 128,0,193,128,0,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,6,6,6,14,4,12,120,252, - 252,252,252,120,10,10,20,21,5,246,8,0,8,0,24,0, - 15,0,3,128,1,192,1,192,1,192,195,128,63,0,11,20, - 40,21,5,14,2,0,6,0,14,0,254,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,255,224,12,17,34,18, - 3,17,15,0,57,192,112,192,96,224,224,96,224,112,224,112, - 224,112,224,112,224,112,96,96,112,224,49,192,31,0,0,0, - 0,0,255,240,13,19,38,23,5,1,1,0,193,128,96,192, - 32,96,48,112,48,48,24,48,24,56,24,56,24,56,24,56, - 24,56,24,56,24,48,48,112,48,96,96,224,64,192,1,128, - 33,35,175,42,5,255,2,0,0,96,0,6,0,0,64,0, - 14,0,0,192,0,254,0,1,128,0,14,0,1,0,0,14, - 0,3,0,0,14,0,2,0,0,14,0,6,0,0,14,0, - 12,0,0,14,0,8,0,0,14,0,24,0,0,14,0,16, - 0,0,14,0,48,0,0,14,0,96,0,0,14,0,96,56, - 0,14,0,192,120,0,14,0,128,120,0,14,1,128,248,0, - 14,3,0,184,0,255,227,1,56,0,0,6,1,56,0,0, - 4,2,56,0,0,12,2,56,0,0,8,4,56,0,0,24, - 12,56,0,0,48,8,56,0,0,32,24,56,0,0,96,31, - 255,128,0,64,0,56,0,0,192,0,56,0,1,128,0,56, - 0,1,128,0,56,0,3,0,0,56,0,2,0,1,255,128, - 6,0,0,0,0,33,35,175,42,5,255,2,0,0,96,0, - 6,0,0,64,0,6,0,0,192,0,14,0,1,128,0,254, - 0,1,128,0,14,0,3,0,0,14,0,2,0,0,14,0, - 6,0,0,14,0,4,0,0,14,0,12,0,0,14,0,24, - 0,0,14,0,16,0,0,14,0,48,0,0,14,0,33,248, - 0,14,0,102,62,0,14,0,204,15,0,14,0,152,15,128, - 14,1,152,7,128,14,1,24,7,128,255,227,31,7,128,0, - 6,31,7,128,0,4,15,7,0,0,12,0,14,0,0,8, - 0,28,0,0,24,0,56,0,0,48,0,112,0,0,48,0, - 192,0,0,96,1,128,0,0,64,2,0,128,0,192,4,0, - 128,1,128,12,1,128,1,128,15,255,0,3,0,15,255,0, - 2,0,31,255,0,6,0,0,0,0,33,35,175,42,5,255, - 15,192,0,48,0,56,224,0,96,0,96,112,0,96,0,96, - 56,0,192,0,112,56,0,128,0,120,56,1,128,0,48,56, - 3,0,0,0,112,3,0,0,0,224,6,0,0,63,128,4, - 0,0,56,224,12,0,0,0,120,24,0,0,0,56,24,0, - 0,0,60,48,0,0,112,60,32,28,0,248,60,96,28,0, - 240,60,192,60,0,192,120,192,92,0,96,241,128,92,0,63, - 193,0,156,0,0,3,1,156,0,0,6,1,28,0,0,6, - 2,28,0,0,12,6,28,0,0,8,4,28,0,0,24,8, - 28,0,0,48,24,28,0,0,48,31,255,128,0,96,0,28, - 0,0,64,0,28,0,0,192,0,28,0,1,128,0,28,0, - 1,128,0,28,0,3,0,1,255,128,2,0,0,0,0,18, - 33,99,24,2,246,1,224,0,3,240,0,3,240,0,3,240, - 0,1,224,0,0,0,0,0,0,0,1,224,0,2,48,0, - 4,24,0,4,24,0,4,24,0,4,24,0,0,48,0,0, - 112,0,0,224,0,1,192,0,7,128,0,15,0,0,30,0, - 0,60,0,0,124,0,0,120,15,0,248,31,128,240,31,192, - 240,15,192,240,0,192,240,0,192,120,0,192,120,1,128,60, - 3,0,15,14,0,3,248,0,34,46,230,37,2,0,0,56, - 0,0,0,0,60,0,0,0,0,60,0,0,0,0,30,0, - 0,0,0,15,0,0,0,0,3,128,0,0,0,1,128,0, - 0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,224,0,0,0,1,224,0,0,0,1,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,6,248, - 0,0,0,6,248,0,0,0,6,248,0,0,0,12,124,0, - 0,0,12,124,0,0,0,12,124,0,0,0,24,62,0,0, - 0,24,62,0,0,0,24,30,0,0,0,48,31,0,0,0, - 48,31,0,0,0,48,15,0,0,0,96,15,128,0,0,96, - 15,128,0,0,96,7,128,0,0,255,255,192,0,0,255,255, - 192,0,0,192,3,192,0,1,128,3,224,0,1,128,3,224, - 0,3,128,1,224,0,3,0,1,240,0,3,0,1,240,0, - 7,0,0,240,0,7,0,0,248,0,31,128,1,252,0,255, - 248,31,255,192,34,46,230,37,2,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,30,0,0,0,0, - 60,0,0,0,0,48,0,0,0,0,96,0,0,0,0,192, - 0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,6,248,0,0,0,6, - 248,0,0,0,6,248,0,0,0,12,124,0,0,0,12,124, - 0,0,0,12,124,0,0,0,24,62,0,0,0,24,62,0, - 0,0,24,30,0,0,0,48,31,0,0,0,48,31,0,0, - 0,48,15,0,0,0,96,15,128,0,0,96,15,128,0,0, - 224,7,128,0,0,255,255,192,0,0,255,255,192,0,1,192, - 3,192,0,1,128,3,224,0,1,128,3,224,0,3,128,1, - 224,0,3,0,1,240,0,3,0,1,240,0,7,0,0,240, - 0,15,128,0,248,0,255,248,31,255,192,255,248,31,255,192, - 34,45,225,37,2,0,0,0,192,0,0,0,1,224,0,0, - 0,3,240,0,0,0,7,56,0,0,0,14,28,0,0,0, - 28,14,0,0,0,48,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,3,240,0,0,0,3,240,0,0,0,3,240,0,0, - 0,6,248,0,0,0,6,248,0,0,0,6,248,0,0,0, - 12,124,0,0,0,12,124,0,0,0,12,124,0,0,0,24, - 62,0,0,0,24,62,0,0,0,24,30,0,0,0,48,31, - 0,0,0,48,31,0,0,0,48,15,0,0,0,96,15,128, - 0,0,96,15,128,0,0,96,7,128,0,0,255,255,192,0, - 0,255,255,192,0,0,192,3,192,0,1,128,3,224,0,1, - 128,3,224,0,3,128,1,224,0,3,0,1,240,0,3,0, - 1,240,0,7,0,0,240,0,7,0,0,248,0,31,128,1, - 252,0,255,248,31,255,192,34,45,225,37,2,0,0,15,0, - 128,0,0,31,225,128,0,0,63,255,0,0,0,33,255,0, - 0,0,32,62,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,192,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,6,248,0,0,0,6,248,0, - 0,0,6,248,0,0,0,12,124,0,0,0,12,124,0,0, - 0,12,124,0,0,0,24,62,0,0,0,24,62,0,0,0, - 24,30,0,0,0,48,31,0,0,0,48,31,0,0,0,112, - 15,0,0,0,96,15,128,0,0,96,15,128,0,0,224,7, - 128,0,0,255,255,192,0,0,255,255,192,0,1,192,3,192, - 0,1,128,3,224,0,1,128,3,224,0,3,128,1,224,0, - 3,0,1,240,0,3,0,1,240,0,7,0,0,240,0,15, - 128,0,248,0,255,248,31,255,192,255,248,31,255,192,34,44, - 220,37,2,0,0,28,7,0,0,0,62,15,128,0,0,62, - 15,128,0,0,62,15,128,0,0,28,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,64,0,0,0,0,192,0,0,0,0,224,0,0, - 0,0,224,0,0,0,1,224,0,0,0,1,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,248,0,0,0,7, - 248,0,0,0,6,120,0,0,0,6,124,0,0,0,14,60, - 0,0,0,12,60,0,0,0,12,62,0,0,0,28,30,0, - 0,0,24,30,0,0,0,24,31,0,0,0,48,15,0,0, - 0,48,15,0,0,0,112,15,128,0,0,96,7,128,0,0, - 96,7,128,0,0,255,255,192,0,0,255,255,192,0,0,192, - 3,192,0,1,192,3,224,0,1,192,1,224,0,1,128,1, - 224,0,3,128,1,240,0,3,128,0,240,0,7,128,0,240, - 0,7,128,0,248,0,31,192,1,252,0,255,248,31,255,192, - 34,47,235,37,2,0,0,1,224,0,0,0,6,24,0,0, - 0,4,8,0,0,0,8,4,0,0,0,8,4,0,0,0, - 8,4,0,0,0,8,4,0,0,0,4,8,0,0,0,6, - 24,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,7,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,1, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,44,35,210,48,1,0,0,0,127,255,255,240,0,0,15, - 224,3,240,0,0,15,192,0,240,0,0,15,192,0,112,0, - 0,15,192,0,112,0,0,27,192,0,48,0,0,27,192,0, - 48,0,0,51,192,0,48,0,0,51,192,0,16,0,0,99, - 192,0,16,0,0,99,192,16,16,0,0,195,192,16,16,0, - 1,195,192,16,0,0,1,131,192,48,0,0,3,131,192,48, - 0,0,3,3,192,48,0,0,7,3,192,112,0,0,6,3, - 255,240,0,0,14,3,192,240,0,0,12,3,192,48,0,0, - 24,3,192,48,0,0,24,3,192,16,0,0,48,3,192,16, - 16,0,63,255,192,16,16,0,96,3,192,16,16,0,96,3, - 192,0,16,0,192,3,192,0,16,0,192,3,192,0,48,1, - 128,3,192,0,48,1,128,3,192,0,112,3,128,3,192,0, - 112,7,128,3,192,0,240,15,128,3,192,1,240,255,248,127, - 255,255,240,255,248,127,255,255,240,26,47,188,32,3,245,0, - 63,0,128,0,225,225,128,3,128,113,128,7,0,63,128,14, - 0,31,128,30,0,15,128,28,0,7,128,60,0,7,128,60, - 0,3,128,124,0,3,128,120,0,1,128,120,0,1,128,120, - 0,0,128,248,0,0,128,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,120,0,0,192,120, - 0,0,192,120,0,0,192,124,0,0,192,60,0,0,128,60, - 0,1,128,28,0,1,128,30,0,3,0,14,0,3,0,7, - 0,6,0,3,128,12,0,1,192,56,0,0,127,224,0,0, - 8,0,0,0,8,0,0,0,28,0,0,0,15,128,0,0, - 3,192,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 129,224,0,0,199,192,0,0,63,0,0,28,46,184,34,3, - 0,0,224,0,0,0,240,0,0,0,240,0,0,0,120,0, - 0,0,60,0,0,0,14,0,0,0,6,0,0,0,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 240,255,255,255,240,7,128,1,240,7,128,0,240,7,128,0, - 112,7,128,0,112,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,16,7,128,32,16,7,128,32,16,7,128,32, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,224, - 0,7,255,224,0,7,129,224,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,32,16,7,128,32,16,7,128,32, - 16,7,128,0,16,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,112,7,128,0,112,7,128,0,240,7,128,1, - 240,255,255,255,240,255,255,255,240,28,46,184,34,3,0,0, - 0,28,0,0,0,60,0,0,0,60,0,0,0,120,0,0, - 0,240,0,0,0,192,0,0,1,128,0,0,3,0,0,0, - 2,0,0,0,0,0,0,0,0,0,0,255,255,255,240,255, - 255,255,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,96,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,96,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,28,45,180,34,3,0,0,3,0, - 0,0,7,128,0,0,15,192,0,0,12,224,0,0,24,112, - 0,0,112,24,0,0,192,12,0,0,0,2,0,0,0,0, - 0,0,0,0,0,255,255,255,240,255,255,255,240,7,128,1, - 240,7,128,0,240,7,128,0,112,7,128,0,112,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,16,7,128,32, - 16,7,128,32,16,7,128,32,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,224,0,7,255,224,0,7,129,224, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,32, - 16,7,128,32,16,7,128,32,16,7,128,0,16,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,112,7,128,0, - 112,7,128,0,240,7,128,1,240,255,255,255,240,255,255,255, - 240,28,44,176,34,3,0,0,112,28,0,0,248,62,0,0, - 248,62,0,0,248,62,0,0,112,28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,255,255,240,7, - 192,7,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,32,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,32,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,14,46,92,19,3,0,224,0,240, - 0,240,0,120,0,60,0,12,0,6,0,3,0,1,0,0, - 0,0,0,255,252,255,252,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,15,128,255,252,14,46,92,19,3,0,0, - 28,0,60,0,60,0,120,0,240,0,192,1,128,3,0,0, - 0,0,0,0,0,255,252,255,252,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,192,255,252,14,45,90,19,3, - 0,3,0,7,128,7,192,14,192,24,96,112,56,192,12,0, - 0,0,0,0,0,255,252,7,192,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,255,252,255,252,15,44,88,20,3, - 0,112,28,248,62,248,62,248,62,112,28,0,0,0,0,0, - 0,0,0,127,254,7,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,7,192,127,254,32,35,140,38,4,0,255, - 255,248,0,15,128,15,0,7,128,3,128,7,128,1,192,7, - 128,0,224,7,128,0,240,7,128,0,120,7,128,0,124,7, - 128,0,60,7,128,0,62,7,128,0,62,7,128,0,30,7, - 128,0,30,7,128,0,31,7,128,0,31,7,128,0,31,255, - 254,0,31,7,128,0,31,7,128,0,31,7,128,0,31,7, - 128,0,31,7,128,0,31,7,128,0,30,7,128,0,62,7, - 128,0,62,7,128,0,60,7,128,0,60,7,128,0,120,7, - 128,0,120,7,128,0,240,7,128,0,224,7,128,1,192,7, - 128,3,128,15,128,30,0,255,255,248,0,33,46,230,38,3, - 255,0,7,1,128,0,0,31,225,128,0,0,31,255,0,0, - 0,16,255,0,0,0,48,62,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,192,7,255,128,255,192,7,255,128,7,224,0, - 120,0,7,240,0,48,0,7,240,0,48,0,7,248,0,48, - 0,6,248,0,48,0,6,252,0,48,0,6,126,0,48,0, - 6,62,0,48,0,6,63,0,48,0,6,31,0,48,0,6, - 15,128,48,0,6,15,192,48,0,6,7,192,48,0,6,7, - 224,48,0,6,3,224,48,0,6,1,240,48,0,6,1,248, - 48,0,6,0,248,48,0,6,0,252,48,0,6,0,124,48, - 0,6,0,62,48,0,6,0,63,48,0,6,0,31,48,0, - 6,0,15,176,0,6,0,15,176,0,6,0,7,240,0,6, - 0,7,240,0,6,0,3,240,0,6,0,1,240,0,6,0, - 1,240,0,15,0,0,240,0,31,128,0,240,0,255,240,0, - 112,0,0,0,0,48,0,28,46,184,33,3,1,1,192,0, - 0,1,224,0,0,1,240,0,0,0,112,0,0,0,56,0, - 0,0,28,0,0,0,12,0,0,0,6,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,255,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,30,0,7,128,60,0,3,192,60,0,3,192,124,0,3, - 224,124,0,3,224,120,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,120,0,3,224,124,0,3, - 192,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,7,0,7,0,14,0,3,128,28,0,0,192,48, - 0,0,127,224,0,28,46,184,33,3,1,0,0,56,0,0, - 0,120,0,0,0,248,0,0,0,224,0,0,1,192,0,0, - 3,128,0,0,3,0,0,0,6,0,0,0,0,0,0,0, - 0,0,0,0,31,128,0,0,255,240,0,1,192,56,0,3, - 128,28,0,7,0,14,0,14,0,7,0,30,0,7,128,30, - 0,7,128,60,0,3,192,60,0,3,192,124,0,3,224,124, - 0,3,224,120,0,1,224,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,120, - 0,1,224,120,0,1,224,120,0,3,224,124,0,3,192,60, - 0,3,192,60,0,3,192,30,0,7,128,14,0,7,0,14, - 0,7,0,7,0,14,0,3,128,28,0,0,192,48,0,0, - 127,224,0,28,46,184,33,3,0,0,6,0,0,0,15,0, - 0,0,15,0,0,0,31,128,0,0,57,192,0,0,112,224, - 0,0,192,48,0,3,128,28,0,0,0,0,0,0,0,0, - 0,0,31,128,0,0,255,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,30,0,7, - 128,60,0,3,192,60,0,3,192,124,0,3,224,124,0,3, - 224,120,0,1,224,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,120,0,3,224,124,0,3,192,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,7, - 0,7,0,14,0,3,128,28,0,0,192,48,0,0,127,224, - 0,28,45,180,33,3,0,0,120,12,0,0,255,8,0,1, - 255,248,0,1,143,248,0,1,1,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0, - 255,240,0,1,192,56,0,3,128,28,0,7,0,14,0,14, - 0,7,0,30,0,7,128,30,0,7,128,60,0,3,192,60, - 0,3,192,124,0,3,224,124,0,3,224,120,0,1,224,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,120,0,1,224,120,0,1,224,120, - 0,3,224,124,0,3,192,60,0,3,192,60,0,3,192,30, - 0,7,128,14,0,7,0,14,0,7,0,7,0,14,0,3, - 128,28,0,0,192,48,0,0,127,224,0,28,45,180,33,3, - 0,0,224,56,0,1,240,124,0,1,240,124,0,1,240,124, - 0,0,224,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,240,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,28,0,3,128,60,0,3,192,60,0,3,192,124,0,3, - 224,120,0,1,224,120,0,1,224,248,0,1,224,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,124,0,3,224,124,0,3, - 224,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,15,0,7,0,14,0,3,128,28,0,0,224,112, - 0,0,127,224,0,30,30,120,46,8,254,192,0,0,12,224, - 0,0,28,112,0,0,56,56,0,0,112,28,0,0,224,14, - 0,1,192,7,0,3,128,3,128,7,0,1,192,14,0,0, - 224,28,0,0,112,56,0,0,56,112,0,0,28,224,0,0, - 15,192,0,0,7,128,0,0,7,128,0,0,15,192,0,0, - 28,224,0,0,56,112,0,0,112,56,0,0,224,28,0,1, - 192,14,0,3,128,7,0,7,0,3,128,14,0,1,192,28, - 0,0,224,56,0,0,112,112,0,0,56,224,0,0,28,192, - 0,0,12,28,36,144,33,3,0,0,31,128,32,0,240,240, - 96,1,192,56,224,3,128,30,192,7,0,15,128,14,0,7, - 128,30,0,7,128,28,0,7,128,60,0,15,192,60,0,31, - 192,124,0,59,224,120,0,49,224,120,0,97,224,248,0,225, - 240,248,1,193,240,248,1,129,240,248,3,1,240,248,7,1, - 240,248,6,1,240,248,12,1,240,248,28,1,240,248,56,1, - 240,248,48,1,240,120,96,1,224,120,224,1,224,121,192,3, - 224,125,128,3,192,63,0,3,192,63,0,3,192,30,0,7, - 128,30,0,7,0,30,0,15,0,63,0,14,0,51,128,28, - 0,97,192,112,0,192,127,224,0,34,46,230,39,3,1,0, - 28,0,0,0,0,28,0,0,0,0,30,0,0,0,0,15, - 0,0,0,0,7,0,0,0,0,1,128,0,0,0,0,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0, - 0,255,252,3,255,192,255,252,3,255,192,7,192,0,126,0, - 7,128,0,60,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,3,192,0, - 24,0,3,192,0,48,0,1,192,0,48,0,1,224,0,96, - 0,0,224,0,96,0,0,112,0,192,0,0,60,3,128,0, - 0,15,254,0,0,34,46,230,39,3,1,0,0,7,0,0, - 0,0,15,0,0,0,0,30,0,0,0,0,28,0,0,0, - 0,56,0,0,0,0,112,0,0,0,0,96,0,0,0,0, - 128,0,0,0,0,0,0,0,0,0,0,0,0,255,252,3, - 255,192,255,252,3,255,192,7,192,0,126,0,7,128,0,60, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,3,192,0,24,0,3,192, - 0,48,0,1,192,0,48,0,1,224,0,96,0,0,224,0, - 96,0,0,112,0,192,0,0,60,3,128,0,0,15,254,0, - 0,34,46,230,39,3,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,3,240,0,0,0,3,56,0,0, - 0,6,28,0,0,0,28,6,0,0,0,48,3,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,252, - 3,255,192,7,192,0,126,0,7,128,0,60,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,3,192,0,24,0,3,192,0,48,0,3, - 192,0,48,0,1,224,0,96,0,0,240,0,224,0,0,120, - 1,192,0,0,62,7,128,0,0,15,254,0,0,34,45,225, - 39,3,0,0,28,7,0,0,0,62,15,128,0,0,62,15, - 128,0,0,62,15,128,0,0,28,7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,32,46,184,35,2,0,0,0,3,0,0,0, - 7,128,0,0,15,0,0,0,30,0,0,0,60,0,0,0, - 56,0,0,0,96,0,0,0,192,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,254,15,255,255,254,15,255,7,224, - 0,240,7,224,0,96,3,224,0,96,3,240,0,64,1,240, - 0,192,0,248,0,128,0,252,1,128,0,124,1,0,0,62, - 3,0,0,62,2,0,0,31,6,0,0,31,12,0,0,15, - 136,0,0,7,152,0,0,7,208,0,0,3,240,0,0,3, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,240,0,0,127, - 255,192,28,35,140,33,3,0,255,254,0,0,7,192,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,255,240,0,7,192,30,0,7,128,7,128,7,128,7,192, - 7,128,3,224,7,128,3,224,7,128,1,240,7,128,1,240, - 7,128,1,240,7,128,1,240,7,128,1,240,7,128,1,240, - 7,128,3,224,7,128,3,224,7,128,7,192,7,128,7,128, - 7,128,30,0,7,255,248,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,192,0,0, - 255,254,0,0,22,35,105,26,1,0,0,63,128,0,243,224, - 1,192,240,3,128,240,7,128,248,7,0,120,15,0,120,15, - 0,120,15,0,248,15,0,240,15,0,224,15,1,192,15,3, - 0,15,60,0,15,6,0,15,1,128,15,0,192,15,0,224, - 15,0,112,15,0,120,15,0,120,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,60,15,56, - 60,15,120,60,15,120,60,15,112,120,15,96,112,15,48,224, - 255,31,192,21,33,99,24,2,1,56,0,0,60,0,0,30, - 0,0,14,0,0,7,0,0,3,128,0,1,128,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,21,33,99,24, - 2,1,0,7,0,0,15,128,0,15,0,0,30,0,0,60, - 0,0,48,0,0,96,0,0,192,0,0,0,0,0,0,0, - 0,0,0,7,248,0,24,30,0,16,15,0,48,7,0,56, - 7,128,60,7,128,62,7,128,28,7,128,0,7,128,0,31, - 128,3,247,128,31,7,128,60,7,128,120,7,128,248,7,128, - 240,7,128,240,15,136,240,15,136,240,23,136,248,23,152,120, - 39,240,63,195,240,21,33,99,24,2,0,0,192,0,0,224, - 0,1,224,0,1,240,0,3,48,0,6,24,0,12,12,0, - 24,2,0,0,0,0,0,0,0,0,0,0,7,248,0,24, - 30,0,16,15,0,48,7,0,56,7,128,60,7,128,62,7, - 128,28,7,128,0,7,128,0,31,128,3,247,128,31,7,128, - 60,7,128,120,7,128,248,7,128,240,7,128,240,15,136,240, - 15,136,240,23,136,248,23,152,120,39,240,63,195,240,21,32, - 96,24,2,0,15,129,0,31,227,0,31,255,0,16,254,0, - 32,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,7,248,0,24,30,0,16,15,0,48,7,0,56,7, - 128,60,7,128,62,7,128,28,7,128,0,7,128,0,31,128, - 3,247,128,31,7,128,60,7,128,120,7,128,248,7,128,240, - 7,128,240,15,136,240,15,136,240,23,136,248,23,152,120,39, - 240,63,195,240,21,32,96,24,2,0,28,14,0,62,31,0, - 62,31,0,62,31,0,28,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,248,0,24,30,0,16,15, - 0,48,7,0,56,7,128,60,7,128,62,7,128,28,7,128, - 0,7,128,0,31,128,3,247,128,31,7,128,60,7,128,120, - 7,128,248,7,128,240,7,128,240,15,136,240,15,136,240,23, - 136,248,23,152,120,39,240,63,195,240,21,34,102,24,2,0, - 1,224,0,2,24,0,4,8,0,8,4,0,8,4,0,8, - 4,0,4,12,0,6,24,0,1,240,0,0,0,0,0,0, - 0,0,0,0,7,248,0,24,30,0,16,15,0,48,7,0, - 56,7,128,60,7,128,60,7,128,28,7,128,0,7,128,0, - 31,128,3,247,128,31,7,128,60,7,128,120,7,128,248,7, - 128,240,7,128,240,15,136,240,15,136,240,31,136,248,23,152, - 120,39,240,63,195,240,30,22,88,34,2,1,7,248,63,128, - 24,30,97,224,16,15,224,224,48,7,192,112,56,7,192,120, - 60,7,128,120,62,7,128,120,30,7,128,60,0,7,128,60, - 0,15,128,60,1,247,255,252,15,7,128,0,60,7,128,0, - 120,7,128,0,248,7,128,0,240,7,128,8,240,15,128,8, - 240,11,192,8,240,27,192,16,248,17,224,48,120,32,240,96, - 63,192,127,192,17,32,96,21,2,247,7,252,0,14,6,0, - 28,3,0,56,3,0,56,3,128,120,15,128,120,15,128,240, - 15,128,240,7,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,0, - 56,1,0,28,2,0,14,6,0,7,248,0,0,128,0,0, - 128,0,1,128,0,0,240,0,0,56,0,0,28,0,0,28, - 0,0,28,0,12,56,0,3,240,0,18,33,99,22,2,1, - 60,0,0,60,0,0,30,0,0,15,0,0,7,0,0,3, - 128,0,0,192,0,0,64,0,0,0,0,0,0,0,0,0, - 0,7,248,0,14,28,0,28,14,0,56,15,0,56,7,128, - 120,7,128,120,7,128,240,7,192,240,7,192,240,7,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,120,1,128,56,1,0,28,3,0,14,6,0, - 7,252,0,18,33,99,22,2,1,0,7,0,0,15,0,0, - 15,0,0,30,0,0,60,0,0,48,0,0,96,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,14,28,0, - 28,14,0,56,15,0,56,7,128,120,7,128,120,7,128,240, - 7,192,240,7,192,240,7,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,128, - 56,1,0,28,3,0,14,6,0,7,252,0,18,33,99,22, - 2,0,0,192,0,0,224,0,1,224,0,1,240,0,3,184, - 0,7,24,0,4,12,0,24,2,0,0,0,0,0,0,0, - 0,0,0,7,248,0,14,28,0,28,14,0,56,15,0,56, - 7,128,120,7,128,120,7,128,240,7,192,240,7,192,240,7, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,128, - 120,0,128,120,0,128,120,1,128,56,1,0,28,3,0,14, - 6,0,7,252,0,18,32,96,22,2,0,28,7,0,62,15, - 128,62,15,128,62,15,128,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,7,248,0,14,12,0,28, - 14,0,60,7,0,56,7,128,120,3,128,120,3,128,240,3, - 192,240,3,192,240,3,192,255,255,192,240,0,0,240,0,0, - 240,0,0,240,0,64,120,0,128,120,0,128,120,0,128,56, - 1,128,28,1,0,14,6,0,7,252,0,12,33,66,14,0, - 1,224,0,240,0,240,0,120,0,60,0,12,0,6,0,3, - 0,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,11,33,66,13,2,1,0,224,1,224,1,224,3, - 192,7,128,6,0,12,0,24,0,0,0,0,0,0,0,254, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,255,192,13,33,66,14,0, - 0,7,0,7,0,7,128,15,128,29,192,24,96,48,48,192, - 24,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,13,32,64,15,1,0,112,112,248,248,248,248,248, - 248,112,112,0,0,0,0,0,0,0,0,0,0,63,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,63,240,19,35,105,24,2,0,31, - 0,0,15,131,128,7,198,0,3,252,0,1,240,0,0,240, - 0,1,248,0,7,124,0,12,60,0,24,30,0,0,31,0, - 0,15,0,0,7,128,3,255,128,14,15,192,28,7,192,60, - 3,192,56,3,224,120,3,224,120,1,224,248,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 240,1,224,120,1,192,120,3,192,56,3,192,60,3,128,28, - 7,0,14,14,0,3,252,0,23,32,96,27,2,0,1,224, - 64,3,248,192,7,255,192,6,63,128,4,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,31,128,30, - 97,224,30,192,224,30,128,240,31,0,240,31,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,255,199,254,19,33, - 99,24,2,1,28,0,0,30,0,0,30,0,0,15,0,0, - 7,128,0,1,128,0,0,192,0,0,96,0,0,0,0,0, - 0,0,0,0,0,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,19,33,99,24,2,1,0,7,0, - 0,7,128,0,15,0,0,30,0,0,28,0,0,56,0,0, - 96,0,0,64,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,14,0,28,7,0,60,3,128,56,3,192,120,3,192, - 120,1,224,248,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,3, - 192,56,3,192,60,3,128,28,7,0,14,14,0,3,252,0, - 19,33,99,24,2,0,0,96,0,0,224,0,0,240,0,1, - 240,0,1,184,0,3,24,0,6,4,0,8,3,0,0,0, - 0,0,0,0,0,0,0,3,252,0,14,14,0,28,7,0, - 60,3,128,56,3,192,120,3,192,120,1,224,248,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,120,1,224,120,3,192,56,3,192,60,3,128, - 28,7,0,14,14,0,3,252,0,19,32,96,24,2,0,7, - 129,0,15,225,0,31,255,0,24,254,0,16,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,252,0, - 14,14,0,28,7,0,60,3,128,56,3,192,120,3,192,120, - 1,224,248,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,120,1,224,120,3,192, - 56,3,192,60,3,128,28,7,0,14,14,0,3,252,0,19, - 32,96,24,2,0,14,7,0,31,15,128,31,15,128,31,15, - 128,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,252,0,14,14,0,28,7,0,60,3,128,56, - 3,192,120,3,192,120,1,224,248,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 120,1,224,120,3,192,56,3,192,60,3,128,28,7,0,14, - 14,0,3,252,0,41,31,186,45,2,253,0,0,30,0,0, - 0,0,0,63,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,255,128,255,255,255,255,255,128,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,30,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,63,0,0,0,0, - 0,30,0,0,0,19,22,66,24,2,1,3,252,96,14,14, - 64,28,7,192,60,3,128,56,3,192,120,7,192,120,13,224, - 248,9,224,240,25,224,240,49,224,240,97,224,240,193,224,240, - 129,224,241,129,224,243,1,224,126,1,224,124,3,192,56,3, - 192,60,3,128,60,7,0,110,14,0,195,252,0,23,33,99, - 27,2,1,14,0,0,15,0,0,7,128,0,3,192,0,1, - 192,0,0,224,0,0,48,0,0,16,0,0,0,0,0,0, - 0,0,0,0,254,7,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,1,240,30,1,240,30,1,240,30,2,240,14,6,240, - 15,12,240,3,240,254,23,33,99,27,2,1,0,1,192,0, - 3,192,0,3,192,0,7,128,0,14,0,0,12,0,0,24, - 0,0,48,0,0,0,0,0,0,0,0,0,0,254,7,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,1,240,30,1,240, - 30,1,240,30,2,240,14,6,240,15,12,240,3,240,254,23, - 33,99,27,2,0,0,48,0,0,56,0,0,120,0,0,124, - 0,0,204,0,1,134,0,3,3,0,6,0,128,0,0,0, - 0,0,0,0,0,0,254,7,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,1,240,30,1,240,30,1,240,30,2,240,14, - 6,240,15,12,240,3,240,254,23,32,96,27,2,0,7,3, - 128,15,135,192,15,135,192,15,135,192,7,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,7,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,1,240,30,1,240,30, - 1,240,30,2,240,14,6,240,15,12,240,3,240,254,24,45, - 135,26,1,246,0,0,240,0,0,240,0,1,224,0,1,192, - 0,3,128,0,7,0,0,6,0,0,12,0,0,24,0,0, - 0,0,0,0,0,0,0,0,255,225,255,31,0,120,15,0, - 48,15,0,48,7,0,32,7,128,96,7,128,96,3,192,64, - 3,192,192,3,192,192,1,224,128,1,225,128,0,225,128,0, - 241,128,0,241,0,0,115,0,0,123,0,0,122,0,0,62, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,24,0, - 0,24,0,0,24,0,24,48,0,60,48,0,60,48,0,60, - 96,0,56,96,0,31,192,0,15,0,0,20,46,138,25,2, - 243,30,0,0,126,0,0,254,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,15,192,30,63,224,30,97,240,30,192,240,30,128, - 240,31,128,240,31,0,240,31,0,240,30,0,240,30,0,240, - 30,1,224,30,1,224,30,1,192,30,3,128,30,3,128,30, - 7,0,30,6,0,30,12,0,30,24,0,30,48,0,30,192, - 0,31,128,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,60,0,0,240,0,0,128,0,0,24,43,129,26,1, - 245,1,192,224,3,225,240,3,225,240,3,225,240,1,192,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 225,255,31,128,120,15,0,48,15,0,48,7,128,32,7,128, - 96,7,128,96,3,192,64,3,192,64,3,192,192,1,224,128, - 1,224,128,0,225,128,0,241,128,0,241,0,0,115,0,0, - 123,0,0,122,0,0,62,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,24,0,0,24,0,0,24,0,24,48,0, - 60,48,0,60,48,0,60,96,0,56,96,0,31,192,0,15, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=46 x= 6 y=14 dx=45 dy= 0 ascent=36 len=246 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x= 0 y=-10 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =36 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35n[1560] U8G_SECTION(".progmem.u8g_font_osr35n") = { - 0,128,62,216,241,34,0,0,0,0,42,57,0,36,246,34, - 0,18,20,60,25,4,14,0,224,0,1,224,0,1,224,0, - 1,224,0,96,195,128,240,135,192,248,143,192,124,159,128,7, - 248,0,1,224,0,1,224,0,6,184,0,124,143,128,248,135, - 192,240,195,192,97,193,128,1,224,0,1,224,0,1,224,0, - 0,224,0,41,41,246,45,2,248,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,7, - 15,15,14,4,247,120,252,252,254,126,6,6,6,4,12,8, - 24,48,96,64,12,3,6,18,3,11,255,240,255,240,255,240, - 6,5,5,14,4,1,120,252,252,252,120,16,46,92,22,3, - 246,0,3,0,3,0,3,0,6,0,6,0,6,0,12,0, - 12,0,12,0,24,0,24,0,24,0,48,0,48,0,48,0, - 48,0,96,0,96,0,96,0,192,0,192,0,192,1,128,1, - 128,1,128,3,0,3,0,3,0,6,0,6,0,6,0,12, - 0,12,0,12,0,24,0,24,0,24,0,48,0,48,0,48, - 0,96,0,96,0,96,0,96,0,192,0,192,0,23,34,102, - 28,2,0,0,124,0,1,199,0,7,1,128,6,0,192,14, - 0,224,28,0,112,60,0,120,60,0,120,56,0,56,120,0, - 60,120,0,60,120,0,60,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,120,0,60,120,0,60,120,0,60,120,0, - 60,60,0,120,60,0,120,28,0,112,28,0,112,14,0,224, - 7,1,192,3,131,128,0,254,0,17,34,102,28,6,0,0, - 64,0,0,64,0,0,192,0,0,192,0,1,192,0,7,192, - 0,255,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,255, - 255,128,255,255,128,21,34,102,28,4,0,3,252,0,14,31, - 0,16,7,192,32,3,224,96,1,240,64,1,240,192,0,240, - 192,0,248,224,0,248,252,0,248,254,0,248,126,0,248,126, - 0,240,62,1,240,0,1,224,0,3,192,0,3,128,0,7, - 0,0,14,0,0,28,0,0,112,0,0,224,0,1,192,0, - 3,0,0,6,0,16,12,0,16,24,0,16,16,0,16,48, - 0,48,48,0,112,127,255,240,127,255,240,127,255,240,127,255, - 240,21,34,102,28,4,0,3,248,0,14,31,0,24,7,128, - 48,3,192,112,3,192,120,1,224,124,1,224,126,1,224,126, - 1,224,60,1,224,0,1,224,0,3,192,0,3,192,0,7, - 128,0,14,0,15,248,0,31,143,0,14,3,128,0,3,224, - 0,1,224,0,1,240,0,0,248,0,0,248,0,0,248,60, - 0,248,126,0,248,254,0,248,254,0,248,252,1,240,224,1, - 240,224,3,224,96,3,192,48,15,0,15,254,0,23,34,102, - 28,3,0,0,1,128,0,1,128,0,3,128,0,7,128,0, - 7,128,0,15,128,0,31,128,0,31,128,0,55,128,0,119, - 128,0,231,128,0,199,128,1,199,128,3,135,128,3,7,128, - 6,7,128,14,7,128,12,7,128,24,7,128,56,7,128,48, - 7,128,96,7,128,224,7,128,255,255,254,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,3,255,254,3,255,254,21,35,105,28,4,0,48, - 0,64,60,3,192,63,255,128,63,255,0,63,252,0,55,240, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,0, - 48,0,0,48,0,0,51,254,0,60,7,128,56,3,192,48, - 1,224,48,1,240,48,1,240,0,0,240,0,0,248,0,0, - 248,0,0,248,0,0,248,60,0,248,126,0,248,254,0,248, - 254,0,240,252,1,240,248,1,224,240,1,224,112,3,192,112, - 7,128,60,31,0,15,252,0,21,34,102,28,4,0,0,126, - 0,1,193,128,3,128,192,7,0,64,14,0,224,28,1,224, - 28,3,224,56,3,224,56,3,192,120,0,0,120,0,0,120, - 0,0,120,0,0,240,126,0,241,255,128,243,131,192,247,1, - 224,254,1,240,252,0,240,252,0,240,248,0,248,248,0,120, - 248,0,120,248,0,120,120,0,120,120,0,120,120,0,248,120, - 0,240,56,0,240,60,0,224,28,1,224,14,3,192,7,7, - 128,1,254,0,19,34,102,28,5,0,255,255,224,255,255,224, - 255,255,224,255,255,224,224,0,224,192,0,64,128,0,64,128, - 0,192,128,0,128,128,1,128,0,1,128,0,3,0,0,2, - 0,0,6,0,0,12,0,0,24,0,0,24,0,0,48,0, - 0,112,0,0,112,0,0,224,0,0,224,0,1,224,0,1, - 224,0,3,224,0,3,224,0,3,224,0,7,240,0,7,240, - 0,7,240,0,7,240,0,7,240,0,3,240,0,3,224,0, - 23,34,102,28,3,0,1,254,0,7,135,128,30,1,192,56, - 0,224,120,0,112,112,0,112,240,0,56,240,0,56,240,0, - 56,240,0,56,248,0,56,252,0,112,126,0,112,127,192,224, - 63,241,192,31,255,0,7,255,128,7,255,224,12,63,248,56, - 7,252,112,1,252,112,0,126,224,0,62,224,0,62,224,0, - 62,224,0,30,224,0,30,224,0,28,96,0,60,112,0,56, - 48,0,120,24,0,240,14,1,192,3,255,0,21,34,102,28, - 4,0,1,248,0,7,142,0,14,3,0,28,1,128,56,1, - 192,120,1,224,120,0,224,120,0,240,240,0,240,240,0,240, - 240,0,240,240,0,248,240,0,248,248,0,248,120,1,248,120, - 1,248,120,3,248,60,7,120,30,14,120,15,252,120,3,240, - 120,0,0,240,0,0,240,0,0,240,0,0,240,60,0,224, - 124,0,224,124,1,192,124,1,192,120,3,128,112,3,0,56, - 6,0,28,28,0,15,248,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=26 dx=52 dy= 0 ascent=37 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =37 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35r[10371] U8G_SECTION(".progmem.u8g_font_osr35r") = { - 0,128,62,216,241,35,12,236,30,116,32,127,246,37,245,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,96,195,128,240, - 135,192,248,143,192,124,159,128,7,248,0,1,224,0,1,224, - 0,6,184,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,32,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01type[1163] U8G_SECTION(".progmem.u8g_font_p01type") = { - 0,5,6,0,254,4,1,81,2,129,32,255,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,1,5,5,2,0, - 255,128,0,128,128,128,255,255,255,255,1,5,5,3,1,255, - 128,128,0,128,128,255,255,255,255,5,5,5,6,0,255,40, - 80,160,80,40,3,2,2,4,0,0,224,32,3,1,1,4, - 0,1,224,255,255,255,3,5,5,4,0,255,64,224,64,0, - 224,255,255,255,255,255,1,1,1,2,0,1,128,255,255,255, - 5,5,5,6,0,255,160,80,40,80,160,255,255,255,4,5, - 5,5,0,255,32,0,96,128,112,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 3,3,3,4,0,0,160,64,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,5,5,4,0,255,64,0, - 224,0,64,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 1 dx= 5 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 4 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typen[177] U8G_SECTION(".progmem.u8g_font_p01typen") = { - 0,5,6,0,254,5,0,0,0,0,42,57,0,4,255,5, - 0,3,3,3,4,0,0,160,64,160,3,3,3,4,0,0, - 64,224,64,2,2,2,3,0,255,64,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,4,4,4,5,0,255,16, - 32,64,128,3,5,5,4,0,255,96,160,160,160,192,1,5, - 5,2,0,255,128,128,128,128,128,3,5,5,4,0,255,192, - 32,224,128,96,3,5,5,4,0,255,192,32,192,32,192,3, - 5,5,4,0,255,160,160,224,32,32,3,5,5,4,0,255, - 96,128,224,32,192,3,5,5,4,0,255,96,128,224,160,192, - 3,5,5,4,0,255,224,32,32,64,64,3,5,5,4,0, - 255,96,160,224,160,192,3,5,5,4,0,255,96,160,224,32, - 192}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typer[938] U8G_SECTION(".progmem.u8g_font_p01typer") = { - 0,5,6,0,254,4,1,81,2,129,32,127,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[1140] U8G_SECTION(".progmem.u8g_font_pixelle_micro") = { - 0,6,8,255,254,5,1,97,2,188,32,255,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 6 x= 0 y= 1 dx= 4 dy= 0 ascent= 6 len= 6 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[180] U8G_SECTION(".progmem.u8g_font_pixelle_micron") = { - 0,6,8,255,254,5,0,0,0,0,42,57,0,6,255,5, - 0,3,4,4,4,0,0,64,224,64,160,3,3,3,4,0, - 0,64,224,64,1,2,2,2,0,255,128,128,3,1,1,4, - 0,1,224,1,1,1,2,0,0,128,3,6,6,4,0,0, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,224,160, - 64,3,5,5,4,0,0,192,64,64,64,224,3,5,5,4, - 0,0,64,160,32,64,224,3,5,5,4,0,0,192,32,64, - 32,192,3,5,5,4,0,0,160,160,224,32,32,3,5,5, - 4,0,0,224,128,224,32,192,3,5,5,4,0,0,64,160, - 192,160,64,3,5,5,4,0,0,224,32,64,64,128,3,5, - 5,4,0,0,64,160,64,160,64,3,5,5,4,0,0,64, - 160,96,160,64}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[1012] U8G_SECTION(".progmem.u8g_font_pixelle_micror") = { - 0,6,8,255,254,5,1,97,2,188,32,127,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 7 h= 8 x= 0 y= 6 dx= 8 dy= 0 ascent=10 len= 8 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[1376] U8G_SECTION(".progmem.u8g_font_robot_de_niro") = { - 0,10,10,255,0,6,1,97,2,193,32,255,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,4,7,7,5,0,2,96,144,64,224,64,128, - 240,255,255,255,4,7,7,5,0,2,96,128,96,144,96,16, - 96,255,7,8,8,8,0,2,124,130,154,170,162,154,130,124, - 255,255,255,255,7,8,8,8,0,2,124,130,186,170,178,170, - 130,124,255,255,255,255,255,255,255,6,5,5,7,0,3,108, - 232,104,40,40,255,255,255,255,255,255,255,255,255,255,255,255, - 255,4,8,8,4,255,2,80,0,48,80,112,80,80,128,255, - 255,3,7,7,4,0,1,96,128,128,160,96,64,32,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,3,7,7,4, - 0,3,160,0,96,160,160,160,64,4,4,4,5,0,4,144, - 96,96,144,255,255,255,255,4,7,7,5,0,3,80,0,160, - 160,160,160,80,255,255,4,7,7,4,255,1,32,80,96,80, - 96,64,128,255,255,255,255,4,6,6,5,0,3,80,0,96, - 160,160,80,255,255,255,4,6,6,5,0,3,96,0,96,160, - 208,96,4,6,6,5,0,3,96,0,96,160,208,96,4,7, - 7,5,0,3,64,160,0,96,160,208,96,255,255,255,255,255, - 255,255,255,255,255,255,3,6,6,4,0,3,160,0,96,160, - 160,192,5,5,5,6,0,3,32,0,248,0,32,255,255,255, - 255,4,6,6,5,0,3,80,0,160,160,160,80,255,255,255 - }; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 6 dx= 5 dy= 0 ascent= 9 len= 5 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[178] U8G_SECTION(".progmem.u8g_font_robot_de_niron") = { - 0,10,10,255,0,5,0,0,0,0,42,57,0,9,0,5, - 0,3,3,3,4,0,6,160,64,160,3,3,3,4,0,4, - 64,224,64,2,2,2,3,0,2,64,128,3,1,1,4,0, - 5,224,1,1,1,2,0,3,128,3,5,5,4,0,3,32, - 32,64,128,128,3,5,5,4,0,3,64,160,160,160,64,3, - 5,5,4,0,3,192,64,64,64,224,3,5,5,4,0,3, - 192,32,96,128,224,3,5,5,4,0,3,192,32,224,32,224, - 3,5,5,4,0,3,160,160,224,32,32,3,5,5,4,0, - 3,96,128,224,32,224,3,5,5,4,0,3,96,128,224,160, - 64,4,5,5,5,0,3,224,32,112,32,32,3,5,5,4, - 0,3,96,160,224,160,192,3,5,5,4,0,3,96,160,224, - 32,192}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 6 h= 7 x= 0 y= 6 dx= 7 dy= 0 ascent=10 len= 7 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[1041] U8G_SECTION(".progmem.u8g_font_robot_de_niror") = { - 0,10,10,255,0,6,1,97,2,193,32,127,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=15 x= 3 y= 9 dx=11 dy= 0 ascent=11 len=15 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =11 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08[2612] U8G_SECTION(".progmem.u8g_font_symb08") = { - 0,11,15,255,252,7,1,152,3,60,32,255,254,11,252,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,6,7,7,7, - 0,0,140,212,112,32,32,32,112,3,3,3,3,0,5,32, - 64,128,5,7,7,6,0,0,8,48,192,48,8,0,248,4, - 7,7,3,255,0,16,16,32,32,64,64,128,7,3,3,7, - 0,1,108,146,108,5,9,9,5,0,254,24,32,112,32,32, - 32,32,32,192,5,5,5,7,1,0,112,112,248,248,32,5, - 5,5,7,1,0,32,112,248,112,32,5,5,5,7,1,0, - 216,248,248,112,32,5,5,5,7,1,0,32,112,248,248,32, - 10,5,10,10,0,0,33,0,64,128,255,192,64,128,33,0, - 10,5,10,10,0,0,32,0,64,0,255,192,64,0,32,0, - 5,14,14,6,0,252,32,112,168,32,32,32,32,32,32,32, - 32,32,32,32,10,5,10,10,0,0,1,0,0,128,255,192, - 0,128,1,0,5,13,13,6,0,254,32,32,32,32,32,32, - 32,32,32,32,168,112,32,3,4,4,4,0,3,64,160,160, - 64,5,7,7,6,0,0,32,32,248,32,32,0,248,5,3, - 3,4,0,5,40,80,160,5,7,7,6,0,0,128,96,24, - 96,128,0,248,5,5,5,6,0,0,136,80,32,80,136,6, - 3,3,7,0,1,108,144,108,4,8,8,5,0,0,96,144, - 16,16,112,144,144,96,4,3,3,5,0,1,96,240,96,5, - 5,5,6,0,0,32,0,248,0,32,5,5,5,6,0,0, - 16,248,32,248,64,5,5,5,6,0,1,248,0,248,0,248, - 5,5,5,6,0,0,104,176,0,104,176,7,1,1,9,1, - 0,146,1,15,15,6,2,252,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,10,1,2,10,0,2,255,192,6, - 6,6,7,0,0,4,4,4,68,252,64,7,7,7,8,0, - 0,204,102,52,92,76,38,98,6,9,9,7,0,255,124,132, - 200,24,12,4,68,232,48,8,8,8,8,0,0,108,146,146, - 92,20,18,82,163,7,8,8,9,1,254,16,36,74,82,106, - 108,160,96,7,7,7,8,0,0,56,68,170,146,170,68,56, - 7,7,7,8,0,0,56,68,146,186,146,68,56,7,9,9, - 8,0,255,2,60,76,138,146,162,100,120,128,7,5,5,8, - 0,0,56,68,130,130,130,7,5,5,8,0,0,130,130,130, - 68,56,7,5,5,7,0,0,248,4,2,4,248,7,7,7, - 7,0,254,248,4,2,4,248,0,254,7,7,7,7,0,255, - 4,62,72,136,80,62,32,7,5,5,7,0,0,62,64,128, - 64,62,7,7,7,7,0,254,62,64,128,64,62,0,254,5, - 5,5,7,1,0,120,128,248,128,120,5,7,7,7,1,255, - 16,120,144,248,160,120,64,7,7,7,8,0,0,2,4,8, - 16,32,64,254,6,7,7,7,0,0,252,132,132,72,72,48, - 48,7,8,8,8,0,255,56,68,250,170,178,174,68,56,7, - 8,8,8,0,255,56,68,154,170,162,154,68,56,10,5,10, - 10,0,2,253,0,170,128,42,128,42,128,122,192,8,9,9, - 9,0,255,255,66,66,66,66,66,66,66,231,6,10,10,6, - 0,0,4,4,8,8,72,208,80,80,32,32,1,1,1,3, - 1,2,128,6,3,3,7,0,0,252,4,4,5,5,5,6, - 0,0,32,80,80,136,136,5,5,5,6,0,0,136,136,80, - 80,32,10,5,10,11,0,0,33,0,127,128,128,64,127,128, - 33,0,9,5,10,10,0,0,32,0,127,128,128,0,127,128, - 32,0,5,10,10,6,0,0,32,112,216,80,80,80,80,80, - 80,80,9,5,10,10,0,0,2,0,255,0,0,128,255,0, - 2,0,5,10,10,6,0,0,80,80,80,80,80,80,80,216, - 80,32,7,7,7,7,0,0,16,40,68,198,68,40,16,3, - 9,9,3,0,254,32,32,64,64,128,64,64,32,32,7,8, - 8,8,0,255,56,68,186,170,178,170,68,56,7,8,8,8, - 0,255,56,68,154,162,162,154,68,56,8,5,5,9,0,2, - 250,85,85,85,85,6,9,9,7,0,255,252,132,64,32,16, - 32,64,132,252,3,14,14,4,1,252,32,64,64,128,128,128, - 128,128,128,128,128,128,128,128,1,15,15,4,1,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,3,15,15, - 4,1,252,128,128,128,128,128,128,128,128,128,128,128,128,64, - 64,32,3,14,14,4,1,252,224,128,128,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,4,1,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,4,1, - 254,128,128,128,128,128,128,128,128,128,128,128,128,224,3,14, - 14,5,2,252,96,128,128,128,128,128,128,128,128,128,128,128, - 128,128,3,15,15,5,0,252,32,32,32,32,32,64,128,64, - 32,32,32,32,32,32,32,3,13,13,5,2,254,128,128,128, - 128,128,128,128,128,128,128,128,128,96,1,15,15,5,2,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,255, - 3,9,9,3,0,254,128,128,64,64,32,64,64,128,128,3, - 12,12,3,0,254,32,64,64,64,64,64,64,64,64,64,64, - 128,4,14,14,7,3,252,48,80,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,7,0,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,13,13,7,0,254, - 16,16,16,16,16,16,16,16,16,16,16,160,192,3,14,14, - 4,0,252,128,64,64,32,32,32,32,32,32,32,32,32,32, - 32,1,15,15,4,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,3,15,15,4,0,252,32,32,32,32, - 32,32,32,32,32,32,32,32,64,64,128,3,14,14,4,0, - 252,224,32,32,32,32,32,32,32,32,32,32,32,32,32,1, - 15,15,4,2,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,13,13,4,0,254,32,32,32,32,32,32, - 32,32,32,32,32,32,224,3,14,14,5,0,252,192,32,32, - 32,32,32,32,32,32,32,32,32,32,32,3,15,15,5,2, - 252,128,128,128,128,128,64,32,64,128,128,128,128,128,128,128, - 3,13,13,5,0,254,32,32,32,32,32,32,32,32,32,32, - 32,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 9 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08r[1211] U8G_SECTION(".progmem.u8g_font_symb08r") = { - 0,11,15,255,252,7,1,152,3,60,32,127,254,10,253,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=15 x= 7 y=11 dx=15 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10[3433] U8G_SECTION(".progmem.u8g_font_symb10") = { - 0,16,15,255,253,10,2,6,4,121,32,255,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,8,10,10,9,0,0,198,105,43,16,16,16,16,16, - 16,56,4,3,3,4,0,7,48,96,128,7,9,9,8,0, - 0,2,12,48,192,48,12,2,0,254,5,10,10,4,255,0, - 8,8,16,16,32,32,64,64,128,128,9,4,8,10,0,2, - 119,0,152,128,140,128,119,0,7,13,13,7,0,253,6,10, - 8,8,60,16,16,16,32,32,32,160,192,9,7,14,11,1, - 0,28,0,28,0,28,0,235,128,255,128,235,128,8,0,7, - 7,7,11,2,0,16,56,124,254,124,56,16,7,7,7,11, - 2,0,108,254,254,254,124,56,16,9,7,14,11,1,0,8, - 0,28,0,62,0,127,0,255,128,107,0,8,0,13,7,14, - 15,1,0,16,64,32,32,64,16,255,248,64,16,32,32,16, - 64,14,7,14,14,0,0,16,0,32,0,64,0,255,252,64, - 0,32,0,16,0,7,15,15,9,1,253,16,56,84,146,16, - 16,16,16,16,16,16,16,16,16,16,14,7,14,14,0,0, - 0,32,0,16,0,8,255,252,0,8,0,16,0,32,7,15, - 15,9,1,253,16,16,16,16,16,16,16,16,16,16,16,146, - 84,56,16,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,7,3,3,6, - 0,7,54,108,144,7,9,9,8,0,0,128,96,24,6,24, - 96,128,0,254,7,7,7,8,0,0,130,68,40,16,40,68, - 130,8,4,4,10,0,2,119,136,136,119,6,11,11,7,0, - 0,112,136,4,4,4,116,204,132,132,200,112,5,5,5,7, - 1,1,112,248,248,248,112,7,7,7,8,0,0,16,16,0, - 254,0,16,16,7,7,7,8,0,0,4,8,254,16,254,32, - 64,7,5,5,8,0,1,254,0,254,0,254,7,5,5,8, - 0,2,114,156,0,114,156,11,2,4,15,2,0,132,32,132, - 32,1,15,15,9,4,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,15,1,2,15,0,3,255,254,8,9, - 9,10,0,0,1,1,1,1,1,1,65,255,64,8,10,10, - 12,2,0,136,206,102,36,116,156,140,70,99,225,8,12,12, - 10,1,255,63,97,66,70,36,6,3,1,97,241,26,12,10, - 11,22,12,1,0,115,0,157,128,137,128,139,0,206,0,106, - 0,41,0,9,0,9,0,105,0,176,192,9,12,24,12,1, - 253,16,0,35,0,69,128,72,128,144,128,212,128,105,0,107, - 0,182,0,144,0,144,0,96,0,9,9,18,11,1,0,28, - 0,99,0,99,0,148,128,136,128,148,128,99,0,99,0,28, - 0,9,9,18,11,1,0,28,0,99,0,73,0,136,128,190, - 128,136,128,73,0,99,0,28,0,11,11,22,12,0,0,31, - 32,96,192,64,192,129,32,130,32,132,32,136,32,144,32,96, - 64,96,192,159,0,10,7,14,10,0,0,30,0,97,128,64, - 128,128,64,128,64,128,64,128,64,10,7,14,10,0,0,128, - 64,128,64,128,64,128,64,64,128,97,128,30,0,9,7,14, - 10,0,0,254,0,1,0,0,128,0,128,0,128,1,0,254, - 0,9,9,18,10,1,254,254,0,1,0,0,128,0,128,0, - 128,1,0,254,0,0,0,255,128,9,9,18,10,0,255,1, - 0,63,128,66,0,130,0,132,0,132,0,72,0,63,128,16, - 0,9,7,14,10,1,0,63,128,64,0,128,0,128,0,128, - 0,64,0,63,128,9,9,18,10,0,254,63,128,64,0,128, - 0,128,0,128,0,64,0,63,128,0,0,255,128,7,7,7, - 10,1,0,62,64,128,254,128,64,62,7,9,9,10,0,255, - 4,62,72,144,254,144,96,62,64,11,10,20,11,0,0,0, - 64,0,128,1,0,2,0,4,0,8,0,16,0,32,0,64, - 0,255,224,9,11,22,10,0,0,255,128,128,128,65,0,65, - 0,34,0,34,0,34,0,20,0,20,0,8,0,8,0,10, - 10,20,12,1,0,30,0,33,0,124,128,146,64,146,64,156, - 64,146,64,121,128,33,0,30,0,10,10,20,12,1,0,30, - 0,33,0,78,128,146,64,144,64,144,64,146,64,76,128,33, - 0,30,0,11,6,12,11,0,4,250,128,170,128,38,192,37, - 64,37,64,118,224,10,12,24,12,1,255,255,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,64, - 128,225,192,8,12,12,8,0,0,1,1,1,2,2,98,164, - 36,20,20,8,8,1,2,2,4,1,3,128,128,9,5,10, - 10,0,0,255,128,0,128,0,128,0,128,0,128,8,7,7, - 9,0,0,24,24,36,36,66,66,129,8,7,7,9,0,0, - 129,66,66,36,36,24,24,13,7,14,15,1,0,16,64,32, - 32,127,240,192,24,127,240,32,32,16,64,13,7,14,14,0, - 0,16,0,32,0,127,248,192,0,127,248,32,0,16,0,7, - 12,12,9,1,0,16,56,108,170,40,40,40,40,40,40,40, - 40,13,7,14,14,1,0,0,64,0,32,255,240,0,24,255, - 240,0,32,0,64,7,12,12,9,1,0,40,40,40,40,40, - 40,40,40,170,108,56,16,7,11,11,7,0,0,16,40,40, - 68,68,130,68,68,40,40,16,4,15,15,5,0,253,16,32, - 32,64,64,64,128,128,128,64,64,64,32,32,16,10,10,20, - 12,1,0,30,0,33,0,92,128,146,64,146,64,156,64,146, - 64,82,128,33,0,30,0,10,10,20,12,1,0,30,0,33, - 0,76,128,146,64,144,64,144,64,146,64,76,128,33,0,30, - 0,10,6,12,11,0,4,250,128,34,128,38,192,37,64,37, - 64,36,64,9,12,24,10,0,255,255,0,129,0,64,0,32, - 0,16,0,8,0,8,0,16,0,32,0,64,0,128,128,255, - 128,4,15,15,6,1,253,16,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,6,1,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,128,128,128,128,128,128,128,128,128,128,128,64,64,32,16, - 4,15,15,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,6,1,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,15,15,6,1,253, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,240,4, - 15,15,7,3,253,48,64,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,15,15,7,1,253,32,32,32,32,32,32, - 64,128,64,32,32,32,32,32,32,4,15,15,7,3,253,128, - 128,128,128,128,128,128,128,128,128,128,128,128,64,48,1,15, - 15,7,3,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,255,4,15,15,5,1,253,128,64,64,32,32,32, - 16,16,16,32,32,32,64,64,128,5,13,13,4,0,255,24, - 40,32,32,32,32,32,32,32,32,32,160,192,5,15,15,10, - 5,253,56,88,64,128,128,128,128,128,128,128,128,128,128,128, - 128,1,15,15,10,5,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,5,15,15,10,1,253,8,8,8,8, - 8,8,8,8,8,8,8,8,16,208,224,4,15,15,6,1, - 253,128,64,32,32,16,16,16,16,16,16,16,16,16,16,16, - 1,15,15,6,4,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,15,15,6,1,253,16,16,16,16,16, - 16,16,16,16,16,16,32,32,64,128,4,15,15,6,1,253, - 240,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1, - 15,15,6,4,253,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,4,15,15,6,1,253,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,240,4,15,15,7,0,253,192, - 32,16,16,16,16,16,16,16,16,16,16,16,16,16,3,15, - 15,7,3,253,128,128,128,128,128,128,64,32,64,128,128,128, - 128,128,128,4,15,15,7,0,253,16,16,16,16,16,16,16, - 16,16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=11 h=15 x= 7 y=11 dx=13 dy= 0 ascent=12 len=20 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10r[1633] U8G_SECTION(".progmem.u8g_font_symb10r") = { - 0,16,15,255,253,10,2,6,4,121,32,127,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=16 h=17 x= 7 y=12 dx=17 dy= 0 ascent=13 len=30 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12[4136] U8G_SECTION(".progmem.u8g_font_symb12") = { - 0,20,17,253,252,11,2,70,5,85,32,255,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,10,11,22,10,255,0,225,128,18,192,10,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,30,0,3,4, - 4,4,1,8,96,96,192,128,8,11,11,9,0,0,1,6, - 24,96,128,96,24,6,1,0,255,8,11,11,3,253,0,1, - 2,2,4,8,16,16,32,64,64,128,11,5,10,12,0,2, - 113,192,138,32,132,32,138,32,113,192,7,15,15,8,0,253, - 6,10,8,8,8,126,16,16,16,16,32,32,32,160,192,9, - 10,20,12,1,255,28,0,62,0,62,0,28,0,107,0,255, - 128,255,128,107,0,8,0,28,0,7,9,9,12,2,0,16, - 56,124,124,254,124,124,56,16,8,9,9,12,2,0,102,255, - 255,255,126,60,60,24,24,9,10,20,12,2,255,8,0,28, - 0,28,0,62,0,127,0,127,0,255,128,107,0,8,0,28, - 0,15,9,18,17,0,0,8,32,16,16,32,8,64,4,255, - 254,64,4,32,8,16,16,8,32,16,9,18,16,0,0,8, - 0,16,0,32,0,64,0,255,255,64,0,32,0,16,0,8, - 0,9,15,30,10,0,254,8,0,28,0,42,0,73,0,136, - 128,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,15,9,18,16,0,0,0,32,0,16,0, - 8,0,4,255,254,0,4,0,8,0,16,0,32,9,15,30, - 10,0,254,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,136,128,73,0,42,0,28,0,8, - 0,5,5,5,6,0,6,112,136,136,136,112,9,11,22,9, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,0,0,255,128,6,4,4,7,1,8,108,108, - 216,144,8,11,11,9,0,0,128,96,24,6,1,6,24,96, - 128,0,255,9,9,18,9,0,0,128,128,65,0,34,0,20, - 0,8,0,20,0,34,0,65,0,128,128,10,5,10,11,0, - 2,113,192,138,0,132,0,138,0,113,192,7,14,14,8,0, - 255,120,196,4,2,2,2,58,102,194,194,130,196,68,56,6, - 6,6,8,1,2,120,252,252,252,252,120,8,7,7,9,0, - 1,24,24,0,255,0,24,24,9,10,20,9,0,255,2,0, - 2,0,4,0,255,128,8,0,8,0,255,128,16,0,32,0, - 32,0,8,7,7,9,0,1,255,0,0,255,0,0,255,8, - 5,5,9,0,2,113,142,0,113,142,13,3,6,16,1,0, - 66,16,231,56,66,16,1,17,17,10,4,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,16,1,2, - 16,0,4,255,255,9,11,22,10,0,255,0,128,0,128,0, - 128,0,128,0,128,0,128,32,128,96,128,255,128,96,0,32, - 0,9,11,22,13,2,0,68,0,231,0,103,0,50,0,26, - 0,60,0,108,0,102,0,99,0,51,128,113,0,9,14,28, - 11,0,255,30,0,63,128,67,128,65,0,66,0,34,0,19, - 0,1,0,1,128,0,128,0,128,112,128,191,0,28,0,12, - 13,26,13,0,0,113,128,138,192,140,96,196,64,100,128,37, - 0,7,128,5,128,12,192,12,192,8,208,104,96,48,64,12, - 13,26,16,2,252,12,0,17,224,34,48,36,16,72,48,114, - 32,102,96,100,192,115,0,144,0,144,0,144,0,96,0,11, - 11,22,12,1,0,14,0,49,128,64,64,81,64,138,32,132, - 32,138,32,81,64,64,64,49,128,14,0,11,11,22,12,1, - 0,14,0,49,128,68,64,68,64,132,32,191,160,132,32,68, - 64,68,64,49,128,14,0,12,12,24,13,1,0,15,16,48, - 224,64,96,64,160,129,16,130,16,132,16,136,16,80,32,96, - 32,112,192,159,0,11,9,18,12,1,0,14,0,49,128,64, - 64,64,64,128,32,128,32,128,32,128,32,128,32,11,9,18, - 12,1,0,128,32,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,10,8,16,11,0,0,255,0,0,128,0, - 64,0,64,0,64,0,64,0,128,255,0,10,10,20,11,0, - 253,255,0,0,128,0,64,0,64,0,64,0,64,0,128,255, - 0,0,0,255,192,11,10,20,11,0,255,0,128,63,224,65, - 0,129,0,130,0,130,0,132,0,68,0,63,224,8,0,10, - 8,16,11,0,0,63,192,64,0,128,0,128,0,128,0,128, - 0,64,0,63,192,10,10,20,11,0,254,63,192,64,0,128, - 0,128,0,128,0,128,0,64,0,63,192,0,0,255,192,7, - 7,7,11,0,0,62,64,128,254,128,64,62,7,9,9,11, - 0,255,4,62,72,136,254,144,80,62,32,11,11,22,12,1, - 0,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16, - 0,32,0,64,0,255,192,10,11,22,11,1,1,255,192,192, - 128,96,128,97,0,49,0,50,0,50,0,28,0,28,0,8, - 0,8,0,11,11,22,13,1,0,14,0,49,128,94,64,73, - 64,137,32,142,32,138,32,73,64,93,192,49,128,14,0,11, - 11,22,13,1,0,14,0,49,128,70,64,73,64,145,32,144, - 32,144,32,73,64,70,64,49,128,14,0,13,6,12,14,0, - 5,255,24,171,16,34,176,34,176,34,80,119,88,12,15,30, - 13,1,254,255,240,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,240, - 240,7,16,16,9,1,253,2,2,2,2,2,4,68,196,36, - 36,20,20,20,8,8,8,2,2,2,4,1,3,192,192,11, - 5,10,12,0,0,255,224,0,32,0,32,0,32,0,32,9, - 8,16,10,0,0,8,0,8,0,20,0,34,0,34,0,65, - 0,128,128,128,128,9,8,16,10,0,0,128,128,128,128,65, - 0,34,0,34,0,20,0,8,0,8,0,16,9,18,17,0, - 0,8,16,16,8,63,252,64,2,128,1,64,2,63,252,16, - 8,8,16,15,9,18,16,0,0,8,0,16,0,63,254,64, - 0,128,0,64,0,63,254,16,0,8,0,9,15,30,10,0, - 254,8,0,20,0,34,0,99,0,162,128,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,15, - 9,18,16,0,0,0,32,0,16,255,248,0,4,0,2,0, - 4,255,248,0,16,0,32,9,15,30,10,0,254,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,162,128,99,0,34,0,20,0,8,0,7,12,12,8,0, - 0,16,40,40,68,68,130,130,68,68,40,40,16,4,15,15, - 5,0,254,16,16,32,32,64,64,128,128,128,64,64,32,32, - 16,16,11,11,22,13,1,0,14,0,49,128,94,64,81,64, - 145,32,158,32,145,32,81,64,81,64,49,128,14,0,11,11, - 22,13,1,0,14,0,49,128,70,64,73,64,144,32,144,32, - 144,32,73,64,70,64,49,128,14,0,11,6,12,13,0,5, - 252,32,38,96,38,96,37,160,37,160,36,32,11,15,30,11, - 0,254,255,192,112,64,56,64,24,0,12,0,14,0,7,0, - 3,0,2,0,4,0,8,0,16,32,32,64,127,192,255,128, - 6,17,17,6,1,252,4,8,16,32,32,64,64,64,64,128, - 128,128,128,128,128,128,128,1,17,17,6,1,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,6,17, - 17,6,1,252,128,128,128,128,128,128,128,128,64,64,64,64, - 32,32,16,8,4,5,17,17,6,0,252,248,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,1,17,17,6, - 0,252,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,17,17,6,0,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,248,4,17,17,8,3,252, - 48,64,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,4,17,17,8,0,252,16,16,16,16,16,16,16,32,192, - 32,16,16,16,16,16,16,16,4,17,17,8,3,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,64,48,1, - 17,17,8,3,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,255,4,15,15,5,0,254,128,128,64, - 64,32,32,16,16,16,32,32,64,64,128,128,5,17,17,5, - 0,252,24,40,32,32,32,32,32,32,32,32,32,32,32,32, - 32,160,192,6,17,17,11,5,252,24,44,72,64,128,128,128, - 128,128,128,128,128,128,128,128,128,128,1,17,17,11,5,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,11,0,252,4,4,4,4,4,4,4,4,4, - 4,4,4,4,8,72,208,96,6,17,17,7,1,252,128,64, - 32,16,16,8,8,8,8,4,4,4,4,4,4,4,4,1, - 17,17,6,5,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,6,17,17,6,0,252,4,4,4,4, - 4,4,4,4,8,8,8,8,16,16,32,64,128,5,17,17, - 6,1,252,248,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,1,17,17,6,5,252,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,17,17,6,1, - 252,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,248,4,17,17,8,0,252,192,32,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,4,17,17,8,3,252,128, - 128,128,128,128,128,128,64,48,64,128,128,128,128,128,128,128, - 4,17,17,8,0,252,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=13 h=17 x= 7 y=12 dx=14 dy= 0 ascent=13 len=26 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12r[1985] U8G_SECTION(".progmem.u8g_font_symb12r") = { - 0,20,17,253,252,11,2,70,5,85,32,127,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=19 h=19 x= 9 y=13 dx=19 dy= 0 ascent=14 len=34 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14[4665] U8G_SECTION(".progmem.u8g_font_symb14") = { - 0,20,19,255,251,13,2,127,6,16,32,255,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,11,13,26,12,0,0,225,192,115,32, - 58,96,28,96,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,30,0,4,5,5,5,1,9,48,112,96,192, - 128,9,12,24,10,0,0,3,128,15,0,60,0,240,0,192, - 0,240,0,60,0,15,0,3,128,0,0,255,128,255,128,8, - 13,13,5,255,0,3,6,6,12,12,24,24,48,48,96,96, - 192,192,12,5,10,13,0,3,121,224,207,48,134,16,207,48, - 121,224,9,17,34,9,0,252,3,128,5,128,12,0,12,0, - 12,0,127,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,208,0,224,0,10,9,18,14,2,0, - 12,0,30,0,30,0,30,0,109,128,255,192,255,192,109,128, - 12,0,9,9,18,13,2,0,8,0,28,0,62,0,127,0, - 255,128,127,0,62,0,28,0,8,0,9,9,18,13,2,0, - 99,0,247,128,255,128,255,128,127,0,127,0,62,0,28,0, - 8,0,10,9,18,14,2,0,12,0,30,0,63,0,127,128, - 255,192,255,192,109,128,12,0,12,0,17,8,24,19,1,1, - 24,12,0,48,6,0,96,3,0,255,255,128,255,255,128,96, - 3,0,48,6,0,24,12,0,18,8,24,18,0,1,24,0, - 0,48,0,0,96,0,0,255,255,192,255,255,192,96,0,0, - 48,0,0,24,0,0,8,19,19,10,1,251,24,60,126,219, - 153,24,24,24,24,24,24,24,24,24,24,24,24,24,24,18, - 8,24,18,0,1,0,6,0,0,3,0,0,1,128,255,255, - 192,255,255,192,0,1,128,0,3,0,0,6,0,8,19,19, - 10,1,251,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,153,219,126,60,24,5,6,6,7,1,7,112,248,216,216, - 248,112,8,11,11,10,1,0,24,24,24,255,255,24,24,24, - 0,255,255,8,5,5,8,0,9,51,119,102,204,136,9,12, - 24,10,0,0,224,0,120,0,30,0,7,128,1,128,7,128, - 30,0,120,0,224,0,0,0,255,128,255,128,10,9,18,10, - 0,0,225,192,115,128,51,0,30,0,12,0,30,0,51,0, - 115,128,225,192,11,5,10,12,0,3,121,224,207,0,134,0, - 207,0,121,224,7,14,14,9,1,0,120,204,134,6,6,6, - 62,102,198,198,198,196,236,120,5,6,6,9,2,2,112,248, - 248,248,248,112,8,8,8,10,1,1,24,24,0,255,255,0, - 24,24,8,9,9,10,1,0,12,12,255,255,24,255,255,48, - 48,8,8,8,10,1,1,255,255,0,255,255,0,255,255,8, - 7,7,10,1,2,115,255,206,0,115,255,206,14,2,4,18, - 2,0,195,12,195,12,2,19,19,10,4,251,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,19, - 2,6,19,0,4,255,255,224,255,255,224,9,12,24,12,1, - 0,1,128,1,128,1,128,1,128,1,128,1,128,33,128,97, - 128,255,128,255,128,96,0,32,0,11,13,26,13,1,0,194, - 0,227,192,113,224,56,224,57,128,125,0,207,0,199,0,227, - 0,115,128,49,192,112,192,240,64,10,15,30,13,1,255,31, - 192,63,192,96,128,65,0,66,0,34,0,19,0,3,128,1, - 192,0,192,0,192,112,192,248,128,31,0,14,0,13,14,28, - 15,1,0,121,192,254,224,142,112,134,48,198,96,118,128,54, - 64,38,96,6,96,6,96,6,96,6,96,108,120,184,48,12, - 15,30,14,1,252,12,0,24,0,49,224,103,48,204,48,216, - 48,214,48,246,96,100,224,119,192,179,128,152,0,152,0,216, - 0,112,0,12,13,26,14,1,0,31,128,57,192,96,96,217, - 176,221,176,143,16,134,16,143,16,219,176,217,176,96,96,57, - 192,31,128,12,13,26,14,1,0,31,128,57,192,102,96,198, - 48,198,48,191,208,191,208,134,16,198,48,198,48,96,96,57, - 192,31,128,12,13,26,14,1,0,31,176,57,240,96,96,192, - 240,193,176,131,16,134,16,140,16,216,48,240,48,96,96,249, - 192,223,128,12,9,18,14,1,0,31,128,57,192,96,96,224, - 112,192,48,192,48,192,48,192,48,192,48,12,9,18,14,1, - 0,192,48,192,48,192,48,192,48,192,48,224,112,96,96,57, - 192,31,128,12,9,18,13,1,0,255,128,255,224,0,96,0, - 48,0,48,0,48,0,96,255,224,255,128,12,12,24,13,0, - 253,255,128,255,224,0,96,0,48,0,48,0,48,0,96,255, - 224,255,128,0,0,255,240,255,240,12,13,26,13,0,254,0, - 96,0,192,31,240,127,240,97,128,195,0,195,0,198,0,102, - 0,127,240,31,240,24,0,48,0,12,9,18,13,0,0,31, - 240,127,240,96,0,192,0,192,0,192,0,96,0,127,240,31, - 240,12,12,24,13,0,253,31,240,127,240,96,0,192,0,192, - 0,192,0,96,0,127,240,31,240,0,0,255,240,255,240,9, - 9,18,12,1,0,31,128,127,128,224,0,192,0,255,128,192, - 0,224,0,127,128,31,128,10,11,22,12,1,255,0,128,31, - 192,127,192,226,0,196,0,255,128,200,0,240,0,127,192,63, - 192,64,0,13,13,26,14,0,0,0,24,0,48,0,96,0, - 192,1,128,3,0,6,0,12,0,24,0,48,0,96,0,192, - 0,255,248,11,13,26,13,1,0,255,224,224,32,96,96,96, - 64,112,192,48,128,48,128,57,128,25,0,27,0,14,0,14, - 0,4,0,13,13,26,15,1,0,31,192,56,224,96,48,223, - 24,205,152,205,152,205,152,207,24,205,152,220,216,96,48,56, - 224,31,192,13,13,26,15,1,0,31,192,56,224,96,48,199, - 152,205,152,204,152,204,24,204,24,204,152,199,24,96,48,56, - 224,31,192,14,8,16,16,1,5,251,28,171,24,35,24,34, - 168,34,168,34,168,34,72,119,92,14,16,32,15,0,254,255, - 252,120,120,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,120,120,252,252,9, - 14,28,10,0,0,0,128,0,128,0,128,0,128,48,128,113, - 0,217,0,25,0,25,0,13,0,14,0,6,0,6,0,6, - 0,2,2,2,4,1,4,192,192,11,6,12,13,1,0,255, - 224,255,224,0,96,0,96,0,96,0,96,10,9,18,11,0, - 0,12,0,12,0,30,0,51,0,51,0,97,128,97,128,192, - 192,192,192,10,9,18,11,0,0,192,192,192,192,97,128,97, - 128,51,0,51,0,30,0,12,0,12,0,18,9,27,18,0, - 0,8,4,0,24,6,0,63,255,0,127,255,128,224,1,192, - 127,255,128,63,255,0,24,6,0,8,4,0,16,9,18,18, - 1,0,8,0,24,0,63,255,127,255,224,0,127,255,63,255, - 24,0,8,0,9,17,34,11,1,253,8,0,28,0,54,0, - 119,0,247,128,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,16,9,18,18, - 1,0,0,16,0,24,255,252,255,254,0,7,255,254,255,252, - 0,24,0,16,9,17,34,11,1,253,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,247,128,119,0,54,0,28,0,8,0,9,14,28,9, - 0,0,28,0,28,0,54,0,54,0,99,0,99,0,193,128, - 193,128,99,0,99,0,54,0,54,0,28,0,28,0,5,17, - 17,6,0,253,24,24,48,48,96,96,192,192,128,192,192,96, - 96,48,48,24,24,13,13,26,15,1,0,31,192,56,224,96, - 48,207,24,205,152,205,152,207,24,205,152,205,152,205,152,96, - 48,56,224,31,192,13,13,26,15,1,0,31,192,56,224,96, - 48,199,24,204,152,204,24,204,24,204,24,204,152,199,24,96, - 48,56,224,31,192,13,8,16,15,1,5,251,24,35,24,35, - 24,34,168,34,168,34,168,34,72,34,72,12,16,32,13,0, - 254,255,224,224,96,112,32,56,0,28,0,14,0,7,0,3, - 0,6,0,12,0,24,0,48,0,96,16,192,48,255,240,255, - 240,6,19,19,7,1,251,4,12,24,24,48,48,96,96,96, - 96,192,192,192,192,192,192,192,192,192,2,19,19,7,1,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,6,19,19,7,1,251,192,192,192,192,192,192,192, - 192,192,224,96,96,96,48,48,24,24,12,4,5,19,19,7, - 1,251,248,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,7,1,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,19, - 19,7,1,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,5,19,19,9,4,251,56,96,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,19,19,9,1,251,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,5,19,19,9,4,251,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 96,56,2,19,19,9,4,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,255,5,17,17,6, - 0,253,192,192,96,96,48,48,24,24,8,24,24,48,48,96, - 96,192,192,6,19,19,6,0,251,28,28,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,224,224,7,19,19,13, - 5,251,28,126,102,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,13,5,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,7,19, - 19,13,0,251,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,204,252,112,6,19,19,7,0,251,128,192,96, - 96,48,48,24,24,24,24,12,12,12,12,12,12,12,12,12, - 2,19,19,7,4,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,6,19,19,7,0,251,12, - 12,12,12,12,12,12,12,12,24,24,24,24,48,48,96,96, - 192,128,5,19,19,7,1,251,248,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,2,19,19,7,4, - 251,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,5,19,19,7,1,251,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,5,19,19, - 9,1,251,224,48,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,5,19,19,9,4,251,192,192,192,192, - 192,192,64,96,48,24,48,96,64,192,192,192,192,192,192,5, - 19,19,9,1,251,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,48,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=14 h=19 x= 9 y=13 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14r[2261] U8G_SECTION(".progmem.u8g_font_symb14r") = { - 0,20,19,255,251,13,2,127,6,16,32,127,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=25 h=24 x=13 y=18 dx=26 dy= 0 ascent=19 len=63 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18[6604] U8G_SECTION(".progmem.u8g_font_symb18") = { - 0,27,24,255,251,17,3,215,8,151,32,255,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,13,17,34,15,1,0,224,112, - 112,216,57,184,27,48,14,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 5,6,6,6,1,12,24,56,112,96,192,128,12,15,30,14, - 0,0,0,112,1,224,7,128,30,0,120,0,224,0,224,0, - 120,0,30,0,3,192,0,240,0,48,0,0,255,240,255,240, - 8,17,17,4,255,0,3,3,6,6,12,12,24,24,24,48, - 48,96,96,96,192,192,192,15,7,14,17,1,4,56,56,124, - 124,198,198,195,134,199,198,124,124,56,56,13,22,44,13,0, - 251,0,240,1,152,1,152,3,0,3,0,3,0,31,192,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,204,0,204,0,120,0,14,13,26, - 18,2,0,7,128,15,192,15,192,15,192,15,192,119,184,251, - 124,255,252,255,252,251,124,115,56,3,0,7,128,10,13,26, - 18,4,0,12,0,30,0,63,0,63,0,127,128,127,128,255, - 192,127,128,127,128,63,0,30,0,30,0,12,0,12,13,26, - 18,3,0,112,224,249,240,255,240,255,240,255,240,255,240,127, - 224,127,224,63,192,31,128,31,128,15,0,6,0,12,13,26, - 18,3,0,6,0,15,0,31,128,31,128,63,192,127,224,127, - 224,255,240,255,240,246,240,102,96,6,0,6,0,24,12,36, - 26,1,1,6,0,96,12,0,48,24,0,24,48,0,12,96, - 0,6,255,255,255,255,255,255,96,0,6,48,0,12,24,0, - 24,12,0,48,6,0,96,25,12,48,25,0,1,6,0,0, - 0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0, - 0,255,255,255,128,255,255,255,128,96,0,0,0,48,0,0, - 0,24,0,0,0,12,0,0,0,6,0,0,0,12,24,48, - 14,1,251,6,0,15,0,31,128,54,192,102,96,198,48,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,25,12,48,25,0,1,0,0,48,0,0,0,24, - 0,0,0,12,0,0,0,6,0,0,0,3,0,255,255,255, - 128,255,255,255,128,0,0,3,0,0,0,6,0,0,0,12, - 0,0,0,24,0,0,0,48,0,12,24,48,14,1,251,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,198,48,102,96,54,192,31,128,15,0,6,0,7, - 7,7,9,1,10,56,108,198,198,198,108,56,10,14,28,12, - 1,0,12,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,12,0,0,0,0,0,255,192,255,192,9,6, - 12,10,1,12,25,128,59,128,119,0,102,0,204,0,136,0, - 12,15,30,14,0,0,224,0,120,0,30,0,7,128,1,224, - 0,112,0,112,1,224,7,128,62,0,240,0,192,0,0,0, - 255,240,255,240,11,10,20,13,1,2,192,96,96,192,49,128, - 27,0,14,0,14,0,27,0,49,128,96,192,192,96,14,7, - 14,16,1,4,56,56,124,124,198,192,195,128,199,192,124,124, - 56,56,10,19,38,12,1,0,62,0,99,0,193,128,1,128, - 0,192,0,192,0,192,0,192,30,192,115,192,97,192,192,192, - 192,192,193,128,193,128,193,128,227,0,119,0,62,0,8,8, - 8,12,2,3,60,126,255,255,255,255,126,60,10,8,16,12, - 1,3,12,0,12,0,0,0,255,192,255,192,0,0,12,0, - 12,0,10,13,26,14,2,0,1,128,1,128,3,0,3,0, - 255,192,255,192,12,0,255,192,255,192,48,0,48,0,96,0, - 96,0,11,8,16,13,1,3,255,224,255,224,0,0,255,224, - 255,224,0,0,255,224,255,224,11,8,16,13,1,3,56,32, - 124,96,199,192,131,128,56,32,124,96,199,192,131,128,18,2, - 6,24,3,0,192,192,192,192,192,192,2,24,24,14,6,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,25,2,8,25,0,6,255,255, - 255,128,255,255,255,128,14,16,32,16,1,0,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 32,12,96,12,255,252,255,252,96,0,32,0,12,16,32,14, - 1,0,129,128,195,0,227,240,113,240,56,96,28,192,60,128, - 110,128,199,128,195,128,227,128,241,192,112,224,48,112,112,48, - 224,16,14,19,38,16,1,255,15,128,63,252,112,248,96,48, - 64,96,64,192,96,192,48,224,28,112,0,56,0,56,0,28, - 0,28,0,12,48,12,120,12,222,24,15,240,3,192,17,18, - 54,19,1,0,30,24,0,63,60,0,99,206,0,193,135,0, - 129,131,0,193,134,0,225,140,0,113,184,0,57,176,0,25, - 152,0,17,152,0,1,152,0,1,156,0,1,140,0,1,140, - 0,25,134,128,63,7,128,78,7,0,15,20,40,19,2,251, - 6,0,12,0,24,60,48,254,49,134,99,6,102,6,108,6, - 104,12,121,156,115,152,114,48,122,112,91,224,221,128,140,0, - 140,0,140,0,216,0,112,0,16,17,34,18,1,0,7,224, - 30,120,56,28,96,6,104,22,204,51,198,99,195,195,193,131, - 195,195,198,99,204,51,104,22,96,6,56,28,30,120,7,224, - 16,17,34,18,1,0,7,224,30,120,56,28,97,134,97,134, - 193,131,193,131,207,243,207,243,193,131,193,131,193,131,97,134, - 96,6,56,28,30,120,7,224,18,17,51,20,1,0,3,240, - 192,15,253,128,28,15,0,48,7,0,48,15,0,96,25,128, - 96,49,128,96,97,128,96,193,128,97,129,128,99,1,128,102, - 1,128,60,3,0,56,3,0,60,14,0,111,252,0,195,240, - 0,16,13,26,18,1,0,7,224,31,248,56,28,96,6,96, - 6,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,16,13,26,18,1,0,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,96,6,96,6,56,28,31,248,7, - 224,15,12,24,17,1,0,255,224,255,248,0,28,0,12,0, - 6,0,6,0,6,0,6,0,12,0,28,255,248,255,224,15, - 15,30,17,1,253,255,224,255,248,0,28,0,12,0,6,0, - 6,0,6,0,6,0,12,0,28,255,248,255,224,0,0,255, - 254,255,254,15,16,32,17,1,254,0,12,0,12,15,254,63, - 254,112,48,96,48,192,96,192,96,192,192,192,192,97,128,113, - 128,63,254,15,254,6,0,6,0,15,12,24,17,1,0,15, - 254,63,254,112,0,96,0,192,0,192,0,192,0,192,0,96, - 0,112,0,63,254,15,254,15,15,30,17,1,253,15,254,63, - 254,112,0,96,0,192,0,192,0,192,0,192,0,96,0,112, - 0,63,254,15,254,0,0,255,254,255,254,12,13,26,16,2, - 0,31,240,127,240,96,0,192,0,192,0,192,0,255,240,192, - 0,192,0,192,0,96,0,127,240,31,240,12,15,30,16,2, - 255,0,192,31,240,127,240,97,128,193,128,195,0,195,0,255, - 240,198,0,198,0,204,0,108,0,127,240,31,240,24,0,17, - 16,48,19,1,0,0,1,128,0,3,0,0,6,0,0,12, - 0,0,24,0,0,48,0,0,96,0,0,192,0,1,128,0, - 3,0,0,6,0,0,12,0,0,24,0,0,48,0,0,127, - 255,128,255,255,128,16,18,36,18,1,0,255,255,192,3,192, - 2,96,6,96,4,48,12,48,8,48,24,24,16,24,48,12, - 32,12,32,6,96,6,64,3,192,3,192,1,128,1,128,16, - 17,34,18,1,0,7,224,30,120,56,28,96,6,111,230,198, - 115,198,51,198,115,199,227,198,195,198,99,198,51,111,62,96, - 6,56,28,30,120,7,224,16,17,34,18,1,0,7,224,30, - 120,56,28,96,6,99,230,198,99,204,35,204,3,204,3,204, - 3,204,3,206,51,103,230,99,198,56,28,30,120,7,224,20, - 10,30,22,1,7,255,96,112,153,96,96,24,112,224,24,112, - 224,24,89,96,24,89,96,24,78,96,24,78,96,24,70,96, - 60,230,240,17,21,63,19,1,253,255,255,128,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,252,31,128,14,19,38,14,0,0,0,12, - 0,12,0,8,0,8,0,24,48,24,112,16,216,16,24,16, - 12,48,12,48,6,32,6,32,3,32,3,96,1,192,1,192, - 0,192,0,192,2,2,2,6,2,6,192,192,15,8,16,17, - 1,0,255,254,255,254,0,6,0,6,0,6,0,6,0,6, - 0,6,13,12,24,15,1,0,7,0,7,0,13,128,13,128, - 24,192,24,192,48,96,48,96,96,48,96,48,192,24,192,24, - 13,12,24,15,1,0,192,24,192,24,96,48,96,48,48,96, - 48,96,24,192,24,192,13,128,13,128,7,0,7,0,23,12, - 36,25,1,0,6,0,192,12,0,96,24,0,48,63,255,248, - 127,255,252,224,0,14,224,0,14,127,255,252,63,255,248,24, - 0,48,12,0,96,6,0,192,23,12,36,25,1,0,6,0, - 0,12,0,0,24,0,0,63,255,254,127,255,254,224,0,0, - 224,0,0,127,255,254,63,255,254,24,0,0,12,0,0,6, - 0,0,12,19,38,14,1,0,6,0,15,0,31,128,57,192, - 121,224,217,176,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,23,12, - 36,25,1,0,0,0,192,0,0,96,0,0,48,255,255,248, - 255,255,252,0,0,14,0,0,14,255,255,252,255,255,248,0, - 0,48,0,0,96,0,0,192,12,19,38,14,1,0,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,217,176,121,224,57,192,31,128, - 15,0,6,0,10,18,36,12,1,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 97,128,97,128,51,0,51,0,30,0,30,0,12,0,7,22, - 22,8,0,251,6,6,12,12,24,24,48,48,96,96,192,192, - 96,96,48,48,24,24,12,12,6,6,16,17,34,18,1,0, - 7,224,30,120,56,28,96,6,103,230,198,51,198,51,198,51, - 199,227,198,99,198,51,198,51,102,50,96,6,56,28,30,120, - 7,224,16,17,34,18,1,0,7,224,30,120,56,28,96,6, - 99,198,198,99,204,35,204,3,200,3,200,3,204,3,204,35, - 102,102,99,198,56,28,30,120,7,224,18,10,30,20,1,7, - 254,192,192,24,192,192,24,225,192,24,225,192,24,243,192,24, - 210,192,24,222,192,24,204,192,24,204,192,24,204,192,14,20, - 40,18,2,254,255,248,224,24,112,8,56,0,28,0,14,0, - 7,0,3,128,1,192,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,4,192,12,255,252,255,252,9,24,48,10, - 1,251,1,128,3,0,6,0,12,0,24,0,24,0,48,0, - 48,0,96,0,96,0,96,0,96,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,2,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 9,24,48,10,1,251,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,96,0,96,0,48,0,48,0,24,0,24,0,12,0, - 6,0,3,0,1,128,7,24,24,10,1,251,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,2,24,24,10,1,251,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,7,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,254, - 7,24,24,12,5,251,30,48,96,96,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,24, - 24,12,2,251,24,24,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,24,24,24,7,24,24,12, - 5,251,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,96,96,48,30,2,24,24,12,5,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,255,7,22,22,8,1,251,192, - 192,96,96,48,48,24,24,12,12,6,6,12,12,24,24,48, - 48,96,96,192,192,8,24,24,8,0,251,7,15,27,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 216,240,224,8,24,24,17,8,251,14,27,51,32,96,64,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,2,24,24,17,8,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,8, - 24,24,17,2,251,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,2,6,204,216,112,9,24,48, - 10,0,251,192,0,96,0,48,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,3,0,3,0,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,2,24,24,10,7,251,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,9,24,48,10,0,251,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,3, - 0,3,0,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,48,0,96,0,192,0,7,24,24,10,2,251,254,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,2,24,24,10,7,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,7,24,24,10,2,251,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 254,7,24,24,12,0,251,240,24,12,12,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5, - 24,24,12,5,251,192,192,192,192,192,192,192,192,64,96,48, - 24,48,96,64,192,192,192,192,192,192,192,192,192,7,24,24, - 12,0,251,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,12,12,24,240,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=20 h=24 x=13 y=18 dx=22 dy= 0 ascent=19 len=51 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18r[3303] U8G_SECTION(".progmem.u8g_font_symb18r") = { - 0,27,24,255,251,17,3,215,8,151,32,127,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=34 x=15 y=26 dx=34 dy= 0 ascent=27 len=108 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-5 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24[10727] U8G_SECTION(".progmem.u8g_font_symb24") = { - 0,40,34,251,249,23,5,133,13,247,32,255,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,20,23,69,20,0,0,240,1, - 192,124,7,224,15,12,112,7,12,240,3,152,224,1,208,224, - 1,208,0,1,240,0,1,240,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,1,240,0, - 7,252,0,6,9,9,8,1,16,24,60,60,120,112,96,224, - 192,128,16,21,42,18,1,0,0,7,0,31,0,124,1,240, - 7,192,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,120,0,30,0,7,0,1,0,0,0,0,255,255, - 255,255,15,23,46,6,251,0,0,2,0,6,0,12,0,12, - 0,24,0,48,0,48,0,96,0,192,0,192,1,128,3,0, - 3,0,6,0,12,0,12,0,24,0,48,0,48,0,96,0, - 192,0,192,0,128,0,21,10,30,23,1,4,28,3,192,127, - 15,224,99,158,48,193,248,24,192,240,24,192,240,24,192,248, - 24,99,156,48,127,15,240,28,3,192,16,29,58,16,0,250, - 0,30,0,51,0,103,0,98,0,224,0,224,0,192,0,192, - 0,192,15,252,1,192,1,192,1,192,1,192,1,128,1,128, - 1,128,3,128,3,128,3,128,3,0,3,0,3,0,3,0, - 2,0,102,0,230,0,236,0,120,0,18,18,54,24,3,0, - 1,224,0,3,240,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,240,0,1,224,0,124,207,128,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,252,207,192,120,199,128, - 0,192,0,1,224,0,14,18,36,24,5,0,3,0,7,128, - 7,192,15,192,31,224,63,240,127,248,127,248,255,252,255,252, - 127,248,127,248,63,240,31,224,15,192,7,192,7,128,3,0, - 16,18,36,24,4,0,124,62,254,127,254,127,255,255,255,255, - 255,255,255,255,127,254,127,254,63,252,63,252,31,248,15,240, - 15,240,7,224,3,192,1,128,1,128,16,18,36,24,4,0, - 1,128,1,192,3,192,7,224,7,240,15,240,31,248,63,252, - 63,252,127,254,255,255,255,255,255,255,253,191,249,159,249,159, - 113,142,3,192,32,16,64,34,1,0,1,128,1,128,3,0, - 0,192,7,0,0,224,14,0,0,112,28,0,0,56,56,0, - 0,28,112,0,0,14,255,255,255,255,255,255,255,255,112,0, - 0,14,56,0,0,28,28,0,0,56,14,0,0,112,7,0, - 0,224,3,0,0,192,1,128,1,128,29,16,64,32,1,0, - 1,128,0,0,3,0,0,0,6,0,0,0,14,0,0,0, - 28,0,0,0,56,0,0,0,112,0,0,0,255,255,255,248, - 255,255,255,248,112,0,0,0,56,0,0,0,28,0,0,0, - 14,0,0,0,6,0,0,0,3,0,0,0,1,128,0,0, - 16,27,54,20,2,0,1,128,3,192,7,224,15,240,29,184, - 57,156,113,142,225,135,193,131,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,29,16,64,32, - 2,0,0,0,12,0,0,0,14,0,0,0,7,0,0,0, - 3,128,0,0,1,192,0,0,0,224,0,0,0,112,255,255, - 255,248,255,255,255,248,0,0,0,112,0,0,0,224,0,0, - 1,192,0,0,3,128,0,0,7,0,0,0,14,0,0,0, - 12,0,16,27,54,20,2,0,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,193,131,225,135, - 113,142,57,156,29,184,15,240,7,224,3,192,1,128,9,10, - 20,13,2,13,28,0,99,0,65,0,128,128,128,128,128,128, - 128,128,65,0,99,0,28,0,16,22,44,18,1,0,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,255,255,255,255,12,9,18,13,1,15, - 28,112,28,112,60,240,56,224,113,192,113,192,227,128,195,0, - 130,0,16,21,42,18,1,0,224,0,248,0,62,0,15,128, - 1,224,0,120,0,30,0,7,0,7,0,30,0,120,1,224, - 7,128,30,0,120,0,224,0,128,0,0,0,0,0,255,255, - 255,255,16,16,32,18,1,1,192,3,224,7,112,14,56,28, - 28,56,14,112,7,224,3,192,3,192,7,224,14,112,28,56, - 56,28,112,14,224,7,192,3,19,10,30,23,1,4,28,3, - 192,63,15,224,99,156,0,193,248,0,192,240,0,192,240,0, - 193,248,0,99,156,0,127,15,224,28,3,192,14,27,54,16, - 1,0,30,0,63,128,32,224,0,112,0,48,0,24,0,24, - 0,24,0,28,0,28,0,28,15,28,31,252,56,124,120,60, - 112,60,240,56,224,56,224,56,224,56,224,112,224,112,96,96, - 112,224,57,192,31,128,15,0,11,12,24,15,2,4,14,0, - 63,128,127,192,127,192,255,224,255,224,255,224,255,224,127,192, - 127,192,63,128,14,0,16,13,26,18,1,2,1,128,3,192, - 3,192,1,128,0,0,255,255,255,255,0,0,0,0,1,128, - 3,192,3,192,1,128,17,19,57,18,1,255,0,12,0,0, - 24,0,0,24,0,0,48,0,0,48,0,255,255,128,255,255, - 128,0,192,0,0,192,0,1,128,0,1,128,0,3,0,0, - 255,255,128,255,255,128,6,0,0,12,0,0,12,0,0,24, - 0,0,24,0,0,17,12,36,18,0,3,255,255,128,255,255, - 128,0,0,0,0,0,0,0,0,0,255,255,128,255,255,128, - 0,0,0,0,0,0,0,0,0,255,255,128,255,255,128,16, - 9,18,18,1,4,28,0,127,135,225,254,64,56,0,0,28, - 0,127,135,225,254,192,56,26,4,16,33,3,0,96,12,1, - 128,240,30,3,192,240,30,3,192,96,12,1,128,2,34,34, - 20,9,249,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,32,2,8,32,0,7,255,255,255,255,255, - 255,255,255,18,21,63,21,1,0,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,16,0,192,112,0,192,255,255,192,255, - 255,192,112,0,0,16,0,0,16,22,44,27,5,0,0,32, - 96,96,240,126,240,127,248,127,124,63,60,15,62,12,31,24, - 31,152,55,240,115,240,97,240,225,240,240,248,240,124,120,62, - 124,30,124,31,60,15,124,7,252,6,18,27,81,22,1,254, - 7,240,0,31,254,0,63,255,128,56,63,128,96,7,0,96, - 7,0,64,6,0,64,12,0,64,12,0,96,28,0,48,28, - 0,28,14,0,14,14,0,0,15,0,0,7,0,0,7,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,192,60, - 1,128,255,1,128,159,195,0,7,254,0,3,248,0,0,240, - 0,23,24,72,26,1,0,15,128,192,63,225,240,97,247,248, - 192,252,124,128,120,62,128,120,28,128,56,56,192,56,112,224, - 56,192,120,57,192,62,59,192,14,57,224,6,56,224,6,56, - 224,0,56,240,0,56,240,0,56,112,0,112,112,0,112,112, - 0,96,120,30,192,122,63,128,62,47,128,60,6,0,16,23, - 26,78,32,5,249,0,192,0,1,192,0,3,0,112,6,3, - 252,6,14,30,12,24,30,28,48,14,24,96,14,56,192,30, - 57,128,30,59,0,30,62,0,28,62,48,60,60,120,56,30, - 112,120,62,64,240,47,65,224,111,99,192,71,63,0,199,0, - 0,135,0,0,131,0,0,131,0,0,199,0,0,102,0,0, - 60,0,0,22,23,69,25,1,0,0,252,0,3,255,0,15, - 3,192,28,0,224,56,0,112,50,1,48,103,3,152,99,135, - 24,193,134,8,192,204,12,192,120,12,192,48,12,192,120,12, - 192,204,12,193,134,12,99,135,24,103,3,152,50,1,48,56, - 0,112,28,0,224,15,3,192,3,255,0,0,252,0,22,23, - 69,25,1,0,0,252,0,3,255,0,15,3,192,28,48,224, - 24,48,96,48,48,48,96,48,24,96,48,24,96,48,24,192, - 48,12,192,48,12,223,255,236,223,255,236,192,48,12,192,48, - 12,96,48,24,96,48,24,48,48,48,56,48,112,28,48,224, - 15,3,192,3,255,0,0,252,0,24,24,72,27,1,0,0, - 126,2,3,255,198,7,129,238,14,0,124,24,0,56,48,0, - 124,112,0,238,96,1,198,96,3,134,192,7,3,192,14,3, - 192,28,3,192,56,3,192,112,3,192,224,3,97,192,6,99, - 128,6,119,0,14,62,0,12,28,0,24,62,0,112,119,129, - 224,227,255,192,192,126,0,22,17,51,25,1,0,0,252,0, - 3,255,0,15,3,192,28,0,224,56,0,112,48,0,48,96, - 0,24,96,0,24,192,0,12,192,0,12,192,0,12,192,0, - 12,192,0,12,192,0,12,192,0,12,192,0,12,192,0,12, - 22,17,51,25,1,0,192,0,12,192,0,12,192,0,12,192, - 0,12,192,0,12,192,0,12,192,0,12,192,0,12,192,0, - 12,96,0,24,96,0,24,48,0,48,56,0,112,28,0,224, - 15,3,192,3,255,0,0,252,0,21,16,48,23,1,0,255, - 255,0,255,255,192,0,1,224,0,0,112,0,0,48,0,0, - 56,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,48,0,0,112,0,0,224,255,255,192,255,255,0,21, - 20,60,23,1,252,255,255,0,255,255,192,0,0,224,0,0, - 112,0,0,48,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,48,0,0,112,0,0,224,255, - 255,192,255,255,0,0,0,0,0,0,0,255,255,240,255,255, - 240,21,20,60,23,1,254,0,0,96,0,0,192,7,255,248, - 15,255,248,56,1,128,112,3,0,96,3,0,224,6,0,192, - 6,0,192,12,0,192,12,0,192,24,0,224,24,0,96,48, - 0,112,48,0,60,96,0,31,255,248,7,255,248,0,192,0, - 1,128,0,21,16,48,23,1,0,7,255,248,31,255,248,56, - 0,0,112,0,0,96,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,224,0,0,96,0,0,112,0,0, - 60,0,0,31,255,248,7,255,248,21,20,60,23,1,252,7, - 255,248,31,255,248,56,0,0,112,0,0,96,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 96,0,0,112,0,0,56,0,0,31,255,248,7,255,248,0, - 0,0,0,0,0,127,255,248,127,255,248,15,16,32,23,1, - 0,7,254,31,254,56,0,112,0,96,0,192,0,192,0,255, - 254,255,254,192,0,192,0,96,0,112,0,56,0,31,254,7, - 254,15,20,40,23,1,254,0,24,0,24,7,254,31,254,56, - 96,112,96,96,192,64,192,193,128,255,254,255,254,195,0,70, - 0,110,0,124,0,60,0,31,254,55,254,48,0,32,0,22, - 22,66,25,1,0,0,0,12,0,0,28,0,0,56,0,0, - 112,0,0,224,0,1,192,0,3,128,0,7,0,0,14,0, - 0,28,0,0,56,0,0,112,0,0,96,0,0,192,0,1, - 128,0,3,0,0,7,0,0,14,0,0,28,0,0,56,0, - 0,127,255,248,255,255,248,20,24,72,23,1,0,255,255,240, - 127,255,240,120,0,48,120,0,32,60,0,96,60,0,64,28, - 0,192,30,0,192,30,1,128,15,1,128,15,1,0,7,3, - 0,7,130,0,7,134,0,3,196,0,3,204,0,3,204,0, - 1,248,0,1,248,0,0,240,0,0,240,0,0,224,0,0, - 96,0,0,64,0,21,22,66,25,2,0,1,252,0,7,7, - 0,12,1,192,24,0,192,51,248,96,97,142,48,65,134,16, - 193,134,24,193,134,24,129,140,8,129,248,8,129,184,8,129, - 152,8,193,156,24,193,142,24,65,135,16,103,195,176,48,0, - 96,24,0,192,28,1,192,7,7,0,1,252,0,21,23,69, - 25,2,0,1,252,0,7,207,0,14,1,128,24,0,192,48, - 0,96,48,0,48,96,125,48,65,199,16,195,3,24,195,1, - 24,134,0,8,134,0,8,134,0,8,134,0,8,134,0,8, - 199,0,24,67,3,24,97,199,16,32,252,48,48,0,96,28, - 0,192,7,135,128,1,254,0,27,13,52,29,1,10,255,220, - 1,224,204,206,3,128,140,78,3,128,12,15,7,128,12,11, - 5,128,12,11,141,128,12,9,141,128,12,9,201,128,12,8, - 217,128,12,8,241,128,12,8,113,128,12,8,97,128,62,30, - 39,224,25,27,108,27,1,0,255,255,255,128,63,255,254,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,63,0,126,0, - 255,193,255,128,17,27,81,18,0,0,0,0,128,0,0,128, - 0,0,128,0,0,128,0,1,128,0,1,0,0,1,0,0, - 3,0,0,2,0,8,2,0,56,2,0,236,6,0,12,4, - 0,6,4,0,6,4,0,3,4,0,3,12,0,1,140,0, - 1,136,0,0,200,0,0,200,0,0,104,0,0,120,0,0, - 56,0,0,48,0,0,16,0,0,16,0,3,3,3,8,2, - 7,224,224,224,21,10,30,23,1,0,255,255,248,255,255,248, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,16,15,30,20,2,0,1,128, - 1,128,3,192,3,192,6,96,14,112,12,48,28,56,24,24, - 48,12,48,12,96,6,224,7,192,3,128,1,16,15,30,20, - 2,0,128,1,192,3,224,7,96,6,48,12,48,12,24,24, - 28,56,12,48,6,96,6,96,3,192,3,192,1,128,1,128, - 32,18,72,34,1,0,0,128,1,0,1,128,1,128,3,0, - 0,192,6,0,0,96,15,255,255,240,31,255,255,248,56,0, - 0,28,112,0,0,14,224,0,0,7,224,0,0,7,112,0, - 0,14,56,0,0,28,31,255,255,248,15,255,255,240,6,0, - 0,96,3,0,0,192,1,128,1,128,0,128,1,0,29,17, - 68,32,1,0,0,128,0,0,1,128,0,0,3,0,0,0, - 6,0,0,0,15,255,255,248,31,255,255,248,56,0,0,0, - 112,0,0,0,224,0,0,0,112,0,0,0,56,0,0,0, - 31,255,255,248,15,255,255,248,6,0,0,0,3,0,0,0, - 1,128,0,0,0,128,0,0,17,27,81,20,1,0,0,128, - 0,1,192,0,3,224,0,7,112,0,14,56,0,28,28,0, - 60,30,0,124,31,0,236,27,128,12,24,0,12,24,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,29, - 17,68,32,2,0,0,0,8,0,0,0,12,0,0,0,6, - 0,0,0,3,0,255,255,255,128,255,255,255,192,0,0,0, - 224,0,0,0,112,0,0,0,56,0,0,0,112,0,0,0, - 224,255,255,255,192,255,255,255,128,0,0,3,0,0,0,6, - 0,0,0,12,0,0,0,8,0,17,27,81,20,1,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,12, - 24,0,12,24,0,236,27,128,124,31,0,60,30,0,28,28, - 0,14,56,0,7,112,0,3,224,0,1,192,0,0,128,0, - 14,25,50,16,1,0,3,0,7,128,7,128,12,192,12,192, - 24,96,24,96,48,48,48,48,96,24,96,24,192,12,192,12, - 224,28,96,24,96,24,48,48,48,48,24,96,24,96,12,192, - 12,192,7,128,7,128,3,0,9,30,60,11,1,250,1,128, - 3,0,3,0,6,0,6,0,14,0,12,0,28,0,24,0, - 56,0,48,0,48,0,96,0,96,0,192,0,192,0,96,0, - 96,0,48,0,48,0,56,0,24,0,28,0,12,0,14,0, - 6,0,6,0,3,0,3,0,1,128,21,22,66,26,2,0, - 1,252,0,7,15,0,12,1,128,24,0,192,48,0,96,99, - 254,48,67,6,16,195,3,24,195,3,24,195,3,24,131,6, - 8,131,252,8,131,6,8,195,3,24,195,3,24,67,3,16, - 99,3,48,32,0,32,48,0,96,28,1,192,7,15,0,3, - 252,0,21,23,69,26,2,0,1,252,0,7,223,0,14,3, - 128,24,0,192,48,0,96,32,0,32,96,252,48,65,206,16, - 195,6,24,195,3,24,194,0,8,134,0,8,134,0,8,134, - 0,8,134,3,24,195,3,24,67,6,24,97,206,48,32,248, - 48,48,0,96,28,0,192,15,135,128,3,254,0,22,13,39, - 25,1,10,255,56,28,24,56,28,24,56,28,24,60,60,24, - 60,60,24,52,44,24,54,108,24,54,108,24,50,76,24,51, - 204,24,51,204,24,49,140,24,49,140,21,28,84,23,1,255, - 255,255,224,120,3,224,124,0,96,60,0,96,30,0,32,15, - 0,0,15,128,0,7,128,0,3,192,0,3,224,0,1,240, - 0,0,240,0,0,120,0,0,120,0,0,56,0,0,48,0, - 0,96,0,0,192,0,1,128,0,3,128,0,3,0,0,6, - 0,8,12,0,24,24,0,24,48,0,48,127,255,240,127,255, - 240,255,255,240,13,34,68,13,1,249,0,24,0,120,0,224, - 1,192,3,128,3,0,6,0,12,0,12,0,24,0,24,0, - 56,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0, - 96,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,2,34, - 34,13,1,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,34,68,13,1,249,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,0,96,0,96,0, - 96,0,48,0,48,0,48,0,56,0,24,0,24,0,12,0, - 12,0,6,0,3,0,3,128,1,192,0,224,0,120,0,24, - 11,34,68,13,0,249,255,224,255,224,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,2,34,34,13,0,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,34,68,13,0,249,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,255,224,255,224,8,34,34,16, - 6,249,7,31,56,112,96,96,224,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,9,34,68,16,255,249,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 3,0,3,0,6,0,12,0,56,0,224,0,120,0,12,0, - 6,0,3,0,3,0,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,8,34, - 34,16,6,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 96,96,112,56,31,7,2,34,34,16,6,249,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,9, - 30,60,11,1,250,192,0,96,0,96,0,48,0,48,0,56, - 0,24,0,28,0,12,0,14,0,6,0,6,0,3,0,3, - 0,1,128,1,128,3,0,3,0,6,0,6,0,14,0,12, - 0,28,0,24,0,56,0,48,0,48,0,96,0,96,0,192, - 0,9,33,66,9,0,250,3,0,7,128,7,128,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,248,0,248,0,112,0,12,34,68,23,10,249,1, - 224,3,240,6,112,12,240,8,96,24,0,24,0,48,0,48, - 0,48,0,112,0,96,0,96,0,96,0,96,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,3,34,34,22,10,249,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,12,34,68,22,1, - 249,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,96,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,1,128,1,128,97,0,243,0,230, - 0,252,0,120,0,13,34,68,13,0,249,192,0,240,0,56, - 0,24,0,12,0,6,0,3,0,1,0,1,128,0,192,0, - 192,0,192,0,96,0,96,0,96,0,48,0,48,0,48,0, - 48,0,48,0,16,0,16,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,2, - 34,34,13,11,249,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,13,34,68,13,0,249,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,16,0,16,0,48,0,48,0,48,0, - 48,0,48,0,96,0,96,0,96,0,192,0,192,0,192,1, - 128,1,0,3,0,6,0,12,0,28,0,56,0,240,0,192, - 0,11,34,68,13,1,249,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,2,34,34,13,10, - 249,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,11,34,68,13,1,249,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,255,224,255,224,8,34,34, - 16,0,249,224,120,28,14,6,6,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,9,34,68,16,6,249,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,0,48,0,24,0,14,0,3,128,14,0,24, - 0,48,0,96,0,96,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,8, - 33,33,16,0,250,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 6,6,14,28,120,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=27 h=33 x=15 y=26 dx=29 dy= 0 ascent=27 len=92 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24r[5335] U8G_SECTION(".progmem.u8g_font_symb24r") = { - 0,40,34,251,249,23,5,133,13,247,32,127,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=11 x= 1 y= 6 dx=11 dy= 0 ascent=10 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08[2551] U8G_SECTION(".progmem.u8g_font_timB08") = { - 0,13,18,254,251,7,1,164,3,77,32,255,253,10,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,2,0,1,2,7,7,4,1, - 253,192,192,0,192,192,192,192,5,7,7,6,0,255,16,120, - 208,208,224,120,32,5,7,7,6,0,0,56,104,96,248,96, - 232,216,5,5,5,6,0,1,136,112,80,112,136,5,7,7, - 6,0,0,216,216,112,32,112,32,112,1,7,7,3,1,0, - 128,128,128,0,128,128,128,4,9,9,5,0,254,96,176,192, - 160,208,112,48,208,96,3,1,1,4,0,5,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,6,6,4,0,1, - 192,32,224,160,0,224,5,5,5,6,0,0,40,80,160,80, - 40,5,3,3,7,1,1,248,8,8,3,1,1,3,0,2, - 224,7,7,7,9,1,0,56,68,186,178,170,68,56,3,1, - 1,4,0,5,224,4,3,3,4,0,4,96,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 3,96,160,64,224,3,4,4,3,0,3,224,64,32,192,2, - 2,2,4,1,5,64,128,5,8,8,5,0,253,216,208,208, - 208,240,128,192,192,6,10,10,6,0,253,124,232,232,232,104, - 40,40,40,40,40,1,2,2,3,1,2,128,128,2,3,3, - 3,1,253,128,64,192,3,4,4,3,0,3,64,192,64,224, - 3,6,6,4,0,1,64,160,160,64,0,224,5,5,5,6, - 0,0,160,80,40,80,160,7,7,7,7,0,0,68,200,72, - 244,44,62,68,7,7,7,7,0,0,68,200,72,246,42,36, - 78,7,7,7,7,0,0,228,72,40,212,44,62,68,4,7, - 7,6,1,253,96,96,0,64,208,208,96,8,10,10,7,255, - 0,32,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,8,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,16,40,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,52,88,0,16,24,56,44,124,78,239,8,9,9,7,255, - 0,36,0,16,24,56,44,124,78,239,8,10,10,7,255,0, - 24,36,24,16,24,56,44,124,78,239,9,7,14,9,255,0, - 63,128,28,128,44,0,47,0,124,0,76,128,239,128,6,10, - 10,7,0,253,124,204,192,192,192,236,120,32,16,48,6,10, - 10,7,0,0,32,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,8,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,48,72,0,252,100,96,120,96,100,252,6,9, - 9,7,0,0,40,0,252,100,96,120,96,100,252,4,10,10, - 5,0,0,64,32,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,32,64,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,96,144,0,240,96,96,96,96,96,240,4,9,9, - 5,0,0,144,0,240,96,96,96,96,96,240,7,7,7,8, - 0,0,252,102,102,246,102,102,252,7,10,10,8,0,0,52, - 88,0,238,100,116,92,92,76,228,6,10,10,7,0,0,32, - 16,0,120,204,204,204,204,204,120,6,10,10,7,0,0,16, - 32,0,120,204,204,204,204,204,120,6,10,10,7,0,0,48, - 72,0,120,204,204,204,204,204,120,6,10,10,7,0,0,52, - 88,0,120,204,204,204,204,204,120,6,9,9,7,0,0,72, - 0,120,204,204,204,204,204,120,6,5,5,6,0,0,204,120, - 48,120,204,6,9,9,8,1,255,4,120,204,220,236,236,204, - 120,128,7,10,10,7,0,0,32,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,8,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,24,36,0,246,100,100,100,100, - 100,56,7,9,9,7,0,0,36,0,246,100,100,100,100,100, - 56,8,10,10,8,0,0,4,8,0,247,98,52,56,24,24, - 60,6,7,7,6,0,0,224,120,108,108,120,96,240,5,7, - 7,6,0,0,112,200,200,208,200,200,216,5,8,8,5,0, - 0,64,32,0,96,176,112,176,248,5,8,8,5,0,0,16, - 32,0,96,176,112,176,248,5,8,8,5,0,0,32,80,0, - 96,176,112,176,248,5,8,8,5,0,0,104,176,0,96,176, - 112,176,248,5,7,7,5,0,0,80,0,96,176,112,176,248, - 5,8,8,5,0,0,32,80,32,96,176,112,176,248,7,5, - 5,8,0,0,110,186,126,184,238,4,8,8,5,0,253,112, - 208,192,208,112,64,32,96,4,8,8,5,0,0,64,32,0, - 112,208,240,192,112,4,8,8,5,0,0,16,32,0,112,208, - 240,192,112,5,8,8,5,0,0,32,80,136,112,208,240,192, - 112,4,7,7,5,0,0,80,0,112,208,240,192,112,2,8, - 8,3,0,0,128,64,0,192,192,192,192,192,2,8,8,3, - 0,0,64,128,0,192,192,192,192,192,3,8,8,3,0,0, - 64,160,0,192,192,192,192,192,3,7,7,3,0,0,160,0, - 192,192,192,192,192,5,9,9,6,0,0,128,112,96,176,24, - 120,216,216,112,6,8,8,6,0,0,104,176,0,176,216,216, - 216,220,5,8,8,6,0,0,64,32,0,112,216,216,216,112, - 5,8,8,6,0,0,16,32,0,112,216,216,216,112,5,8, - 8,6,0,0,32,80,0,112,216,216,216,112,5,8,8,6, - 0,0,104,176,0,112,216,216,216,112,5,7,7,6,0,0, - 80,0,112,216,216,216,112,5,5,5,6,0,0,32,0,248, - 0,32,5,7,7,6,0,255,16,112,216,216,216,112,64,5, - 8,8,5,0,0,64,32,0,216,208,208,208,112,5,8,8, - 5,0,0,16,32,0,216,208,208,208,112,5,8,8,5,0, - 0,32,80,0,216,208,208,208,112,5,7,7,5,0,0,80, - 0,216,208,208,208,112,5,11,11,5,0,253,16,32,0,216, - 216,112,112,32,32,192,192,5,10,10,5,255,253,224,96,112, - 104,104,104,112,96,96,224,5,10,10,5,0,253,80,0,216, - 216,112,112,32,32,192,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=10 x= 1 y= 6 dx=11 dy= 0 ascent= 8 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08r[1221] U8G_SECTION(".progmem.u8g_font_timB08r") = { - 0,13,18,254,251,7,1,164,3,77,32,127,253,8,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=14 x= 1 y= 8 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10[3539] U8G_SECTION(".progmem.u8g_font_timB10") = { - 0,17,24,254,250,10,2,6,4,148,32,255,253,14,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,3,0,1,2,10,10,4,1,253,192,192,0,192, - 192,192,192,192,192,192,6,11,11,7,0,254,8,8,120,212, - 208,208,240,228,120,32,32,7,10,10,8,0,0,60,118,102, - 96,48,248,48,48,246,222,7,6,6,8,0,2,56,238,68, - 68,238,56,8,10,10,8,0,0,247,98,118,52,60,24,60, - 24,24,60,1,12,12,3,1,254,128,128,128,128,128,0,0, - 128,128,128,128,128,5,12,12,7,1,254,112,216,200,96,240, - 152,200,120,48,152,216,112,3,2,2,5,1,8,160,160,10, - 10,20,12,1,0,30,0,97,128,78,128,146,64,144,64,144, - 64,146,64,76,128,97,128,30,0,4,7,7,5,0,3,96, - 16,112,144,112,0,240,7,5,5,9,1,1,54,108,216,108, - 54,7,4,4,9,1,1,254,2,2,2,3,1,1,4,0, - 3,224,10,10,20,12,1,0,30,0,97,128,92,128,146,64, - 146,64,156,64,148,64,82,128,97,128,30,0,4,1,1,5, - 0,8,240,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,4,6,6,4, - 0,4,96,176,48,96,192,240,4,6,6,4,0,4,96,176, - 96,48,176,96,3,3,3,5,1,8,32,96,128,8,10,10, - 7,255,253,238,102,102,102,102,102,123,64,96,96,7,13,13, - 8,0,253,126,244,244,244,244,116,20,20,20,20,20,20,20, - 2,2,2,4,0,4,192,192,3,3,3,5,1,253,64,32, - 224,4,6,6,4,0,4,32,224,96,96,96,240,4,7,7, - 5,0,3,96,144,144,144,96,0,240,7,5,5,9,1,1, - 216,108,54,108,216,10,10,20,10,0,0,33,0,226,0,98, - 0,100,0,100,128,249,128,11,128,22,128,23,192,33,128,10, - 10,20,10,0,0,33,0,226,0,98,0,100,0,101,128,250, - 192,8,192,17,128,19,0,35,192,10,10,20,10,0,0,97, - 0,178,0,98,0,52,0,180,128,105,128,11,128,22,128,23, - 192,33,128,5,10,10,7,1,253,48,48,0,48,48,96,192, - 216,216,112,10,14,28,10,0,0,16,0,24,0,4,0,0, - 0,12,0,12,0,30,0,22,0,51,0,35,0,63,0,97, - 128,65,128,227,192,10,14,28,10,0,0,2,0,6,0,8, - 0,0,0,12,0,12,0,30,0,22,0,51,0,35,0,63, - 0,97,128,65,128,227,192,10,14,28,10,0,0,8,0,28, - 0,34,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,26, - 0,44,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,18, - 0,18,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,14,28,10,0,0,12, - 0,18,0,12,0,0,0,12,0,12,0,30,0,22,0,51, - 0,35,0,63,0,97,128,65,128,227,192,13,10,20,14,0, - 0,31,248,15,24,11,8,27,32,19,224,63,32,35,40,99, - 8,67,24,231,248,8,13,13,10,1,253,61,99,193,193,192, - 192,192,193,99,62,16,8,56,8,14,14,9,0,0,32,48, - 8,0,255,99,97,100,124,100,101,97,99,255,8,14,14,9, - 0,0,4,12,16,0,255,99,97,100,124,100,101,97,99,255, - 8,14,14,9,0,0,8,28,34,0,255,99,97,100,124,100, - 101,97,99,255,8,13,13,9,0,0,36,36,0,255,99,97, - 100,124,100,101,97,99,255,4,14,14,5,0,0,128,192,32, - 0,240,96,96,96,96,96,96,96,96,240,4,14,14,5,0, - 0,16,48,64,0,240,96,96,96,96,96,96,96,96,240,5, - 14,14,5,0,0,32,112,136,0,240,96,96,96,96,96,96, - 96,96,240,4,13,13,5,0,0,144,144,0,240,96,96,96, - 96,96,96,96,96,240,9,10,20,11,1,0,254,0,99,0, - 97,128,97,128,241,128,97,128,97,128,97,128,99,0,254,0, - 10,13,26,10,0,0,26,0,44,0,0,0,225,192,112,128, - 112,128,88,128,76,128,76,128,70,128,67,128,67,128,225,128, - 9,14,28,11,1,0,16,0,24,0,4,0,0,0,62,0, - 99,0,193,128,193,128,193,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,11,1,0,4,0,12,0,16,0,0,0, - 62,0,99,0,193,128,193,128,193,128,193,128,193,128,193,128, - 99,0,62,0,9,14,28,11,1,0,8,0,28,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,26,0,44,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,34,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,8,7,7,8,0,0,195,102,60,24, - 60,102,195,9,12,24,11,1,255,0,128,61,0,99,0,195, - 128,197,128,201,128,201,128,209,128,225,128,99,0,94,0,128, - 0,9,14,28,10,0,0,16,0,24,0,4,0,0,0,243, - 128,97,0,97,0,97,0,97,0,97,0,97,0,97,0,115, - 0,62,0,9,14,28,10,0,0,4,0,12,0,16,0,0, - 0,243,128,97,0,97,0,97,0,97,0,97,0,97,0,97, - 0,115,0,62,0,9,14,28,10,0,0,8,0,28,0,34, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,9,13,26,10,0,0,18,0,18, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,10,14,28,10,0,0,1,0,3, - 0,4,0,0,0,249,192,112,128,49,0,57,0,26,0,30, - 0,12,0,12,0,12,0,30,0,8,10,10,9,0,0,240, - 96,126,103,99,99,99,126,96,240,7,10,10,8,0,0,56, - 108,100,108,120,108,102,102,102,236,7,11,11,7,0,0,32, - 48,8,0,120,204,12,124,204,204,118,7,11,11,7,0,0, - 8,24,32,0,120,204,12,124,204,204,118,7,11,11,7,0, - 0,16,56,68,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,52,88,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,40,40,0,120,204,12,124,204,204,118,7,11,11,7, - 0,0,48,72,48,0,120,204,12,124,204,204,118,10,7,14, - 11,0,0,123,128,204,192,204,192,63,192,204,0,204,192,119, - 128,6,10,10,7,0,253,56,76,204,192,192,228,120,32,16, - 112,6,11,11,7,0,0,64,96,16,0,56,76,204,252,192, - 228,120,6,11,11,7,0,0,8,24,32,0,56,76,204,252, - 192,228,120,6,11,11,7,0,0,16,56,68,0,56,76,204, - 252,192,228,120,6,10,10,7,0,0,80,80,0,56,76,204, - 252,192,228,120,4,11,11,4,0,0,128,192,32,0,224,96, - 96,96,96,96,240,4,11,11,4,0,0,32,96,128,0,224, - 96,96,96,96,96,240,5,11,11,4,0,0,32,112,136,0, - 224,96,96,96,96,96,240,4,10,10,4,0,0,160,160,0, - 224,96,96,96,96,96,240,6,10,10,7,0,0,204,112,152, - 120,204,204,204,204,204,120,8,10,10,8,0,0,52,88,0, - 236,118,102,102,102,102,231,6,11,11,7,0,0,32,48,8, - 0,120,204,204,204,204,204,120,6,11,11,7,0,0,8,24, - 32,0,120,204,204,204,204,204,120,6,11,11,7,0,0,32, - 112,136,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 104,176,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 80,80,0,120,204,204,204,204,204,120,6,7,7,8,0,0, - 48,48,0,252,0,48,48,6,9,9,7,0,255,4,120,204, - 220,236,236,204,120,128,8,11,11,7,255,0,32,48,8,0, - 238,102,102,102,102,102,59,8,11,11,7,255,0,4,12,16, - 0,238,102,102,102,102,102,59,8,11,11,7,255,0,16,56, - 68,0,238,102,102,102,102,102,59,8,10,10,7,255,0,40, - 40,0,238,102,102,102,102,102,59,8,14,14,7,255,253,2, - 6,8,0,247,98,50,52,28,28,8,8,56,48,7,13,13, - 8,0,253,224,96,96,108,118,102,102,102,102,124,96,96,240, - 8,13,13,7,255,253,34,34,0,247,98,50,52,28,28,8, - 8,56,48}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=13 x= 1 y= 8 dx=14 dy= 0 ascent=11 len=26 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10r[1632] U8G_SECTION(".progmem.u8g_font_timB10r") = { - 0,17,24,254,250,10,2,6,4,148,32,127,253,11,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255 - }; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=16 x= 2 y= 9 dx=17 dy= 0 ascent=16 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12[3887] U8G_SECTION(".progmem.u8g_font_timB12") = { - 0,19,27,254,249,11,2,42,5,41,32,255,252,16,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,2,252,192,192,0,0,64,64,64,192,192,192, - 192,192,6,12,12,8,1,254,4,4,56,76,204,208,208,224, - 100,56,64,64,8,11,11,8,0,0,28,38,38,48,48,124, - 48,16,113,158,110,6,7,7,8,1,1,180,120,204,132,204, - 120,180,8,11,11,8,0,0,227,98,50,52,28,126,24,126, - 24,24,126,1,15,15,4,1,253,128,128,128,128,128,128,0, - 0,0,128,128,128,128,128,128,6,15,15,8,1,252,56,76, - 76,96,48,120,156,204,228,120,56,24,200,200,112,5,2,2, - 6,0,9,216,216,12,11,22,12,255,0,15,0,48,192,71, - 32,72,160,152,16,152,16,152,16,72,160,71,32,48,192,15, - 0,5,7,7,5,0,4,96,144,112,176,216,0,248,7,7, - 7,8,0,0,18,54,108,216,108,54,18,7,6,6,9,1, - 1,254,254,2,2,2,2,4,2,2,5,0,3,240,240,12, - 11,22,12,0,0,15,0,48,192,78,32,73,32,137,16,142, - 16,138,16,73,32,93,32,48,192,15,0,5,1,1,6,0, - 9,248,4,5,5,7,1,6,96,144,144,144,96,7,9,9, - 9,1,0,16,16,254,254,16,16,0,254,254,4,7,7,5, - 0,4,96,240,176,32,64,240,240,4,7,7,5,0,4,96, - 176,48,96,48,176,96,3,3,3,6,1,9,96,64,128,8, - 11,11,9,0,253,238,102,102,102,102,102,111,118,64,96,96, - 7,15,15,9,1,252,62,116,244,244,244,244,116,52,20,20, - 20,20,20,20,20,2,2,2,4,1,4,192,192,5,4,4, - 6,0,252,32,48,136,112,4,7,7,5,1,4,96,224,96, - 96,96,96,240,4,7,7,6,1,4,96,144,144,144,96,0, - 240,7,7,7,8,0,0,144,216,108,54,108,216,144,11,11, - 22,12,0,0,96,128,225,0,97,0,98,0,100,64,100,192, - 249,192,10,192,19,224,32,192,32,192,10,11,22,12,0,0, - 97,0,225,0,98,0,98,0,100,0,107,128,254,192,16,128, - 17,0,35,192,39,192,11,11,22,12,0,0,96,128,177,0, - 49,0,98,0,52,64,180,192,105,192,10,192,19,224,32,192, - 32,192,6,11,11,8,1,253,24,24,0,16,32,64,192,192, - 204,204,112,11,15,30,12,0,0,48,0,24,0,4,0,0, - 0,4,0,14,0,14,0,27,0,19,0,51,0,33,128,127, - 128,64,192,192,192,225,224,11,15,30,12,0,0,1,128,3, - 0,4,0,0,0,4,0,14,0,14,0,27,0,19,0,51, - 0,33,128,127,128,64,192,192,192,225,224,11,15,30,12,0, - 0,4,0,14,0,17,0,0,0,4,0,14,0,14,0,27, - 0,19,0,51,0,33,128,127,128,64,192,192,192,225,224,11, - 14,28,12,0,0,29,0,46,0,0,0,4,0,14,0,14, - 0,27,0,19,0,51,0,33,128,127,128,64,192,192,192,225, - 224,11,14,28,12,0,0,27,0,27,0,0,0,4,0,14, - 0,14,0,27,0,19,0,51,0,33,128,127,128,64,192,192, - 192,225,224,11,16,32,12,0,0,6,0,9,0,9,0,6, - 0,0,0,4,0,14,0,14,0,27,0,19,0,51,0,33, - 128,127,128,64,192,192,192,225,224,14,11,22,16,1,0,15, - 248,7,24,11,8,11,0,19,32,31,224,35,32,35,0,67, - 4,67,12,231,252,9,15,30,11,1,252,30,128,99,128,65, - 128,192,128,192,0,192,0,192,0,192,0,96,128,115,0,62, - 0,8,0,12,0,34,0,28,0,8,15,15,10,1,0,96, - 48,8,0,255,99,97,96,98,126,98,96,97,99,255,8,15, - 15,10,1,0,6,12,16,0,255,99,97,96,98,126,98,96, - 97,99,255,8,15,15,10,1,0,8,28,34,0,255,99,97, - 96,98,126,98,96,97,99,255,8,14,14,10,1,0,102,102, - 0,255,99,97,96,98,126,98,96,97,99,255,5,15,15,6, - 0,0,192,96,16,0,120,48,48,48,48,48,48,48,48,48, - 120,4,15,15,6,1,0,48,96,128,0,240,96,96,96,96, - 96,96,96,96,96,240,5,15,15,6,0,0,32,112,136,0, - 120,48,48,48,48,48,48,48,48,48,120,6,14,14,6,0, - 0,204,204,0,120,48,48,48,48,48,48,48,48,48,120,9, - 11,22,11,1,0,252,0,102,0,99,0,97,128,97,128,249, - 128,97,128,97,128,99,0,102,0,252,0,10,14,28,12,1, - 0,29,0,46,0,0,0,241,192,112,128,88,128,88,128,76, - 128,70,128,71,128,67,128,65,128,65,128,224,128,10,15,30, - 12,1,0,48,0,24,0,4,0,0,0,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,30, - 0,10,15,30,12,1,0,3,0,6,0,8,0,0,0,30, - 0,97,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,128,30,0,10,15,30,12,1,0,4,0,14,0,17, - 0,0,0,30,0,97,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,128,30,0,10,14,28,12,1,0,29, - 0,46,0,0,0,30,0,97,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,128,30,0,10,14,28,12,1, - 0,51,0,51,0,0,0,30,0,97,128,64,128,192,192,192, - 192,192,192,192,192,192,192,64,128,97,128,30,0,7,8,8, - 9,1,0,130,198,108,56,56,108,198,130,10,13,26,13,1, - 255,0,64,30,128,97,128,65,128,194,192,194,192,196,192,200, - 192,200,192,80,128,97,128,62,0,64,0,10,15,30,12,1, - 0,48,0,24,0,4,0,0,0,241,192,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,96,128,33,0,30,0,10, - 15,30,12,1,0,3,0,6,0,8,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,33, - 0,30,0,10,15,30,12,1,0,4,0,14,0,17,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,33,0,30,0,10,14,28,12,1,0,51,0,51, - 0,0,0,241,192,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,96,128,33,0,30,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,248,224,112,64,56,128,24,128,29, - 0,15,0,6,0,6,0,6,0,6,0,15,0,8,11,11, - 10,1,0,240,96,126,103,99,99,103,126,96,96,240,8,11, - 11,9,0,0,24,38,102,102,108,98,99,99,99,98,236,8, - 12,12,8,0,0,48,16,8,0,56,204,204,28,108,204,205, - 118,8,12,12,8,0,0,24,16,32,0,56,204,204,28,108, - 204,205,118,8,12,12,8,0,0,16,56,68,0,56,204,204, - 28,108,204,205,118,8,11,11,8,0,0,52,88,0,56,204, - 204,28,108,204,205,118,8,11,11,8,0,0,108,108,0,56, - 204,204,28,108,204,205,118,8,13,13,8,0,0,16,40,40, - 16,0,56,204,204,28,108,204,205,118,10,8,16,12,1,0, - 51,128,206,192,204,192,31,192,108,0,204,0,214,64,99,128, - 6,12,12,7,0,252,56,108,204,192,192,192,100,56,32,48, - 136,112,6,12,12,7,0,0,48,16,8,0,56,108,204,252, - 192,192,100,56,6,12,12,7,0,0,24,16,32,0,56,108, - 204,252,192,192,100,56,6,12,12,7,0,0,16,56,68,0, - 56,108,204,252,192,192,100,56,6,11,11,7,0,0,108,108, - 0,56,108,204,252,192,192,100,56,4,12,12,5,0,0,192, - 64,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,48,32,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,5, - 11,11,5,255,0,216,216,0,112,48,48,48,48,48,48,120, - 7,11,11,8,0,0,108,48,216,60,108,198,198,198,198,108, - 56,8,11,11,9,0,0,52,88,0,236,126,102,102,102,102, - 102,247,7,12,12,8,0,0,48,16,8,0,56,108,198,198, - 198,198,108,56,7,12,12,8,0,0,24,16,32,0,56,108, - 198,198,198,198,108,56,7,12,12,8,0,0,16,56,68,0, - 56,108,198,198,198,198,108,56,7,11,11,8,0,0,52,88, - 0,56,108,198,198,198,198,108,56,7,11,11,8,0,0,108, - 108,0,56,108,198,198,198,198,108,56,8,8,8,9,0,0, - 24,24,0,255,255,0,24,24,7,10,10,8,0,255,2,60, - 108,206,214,214,230,108,120,128,8,12,12,9,0,0,48,16, - 8,0,238,102,102,102,102,102,111,54,8,12,12,9,0,0, - 12,8,16,0,238,102,102,102,102,102,111,54,8,12,12,9, - 0,0,16,56,68,0,238,102,102,102,102,102,111,54,8,11, - 11,9,0,0,108,108,0,238,102,102,102,102,102,111,54,8, - 16,16,8,0,252,12,8,16,0,247,98,98,52,52,28,24, - 24,16,16,224,192,8,15,15,9,0,252,224,96,96,108,118, - 99,99,99,99,114,108,96,96,96,240,8,15,15,8,0,252, - 108,108,0,247,98,98,52,52,28,24,24,16,16,224,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=15 x= 2 y= 9 dx=17 dy= 0 ascent=12 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12r[1834] U8G_SECTION(".progmem.u8g_font_timB12r") = { - 0,19,27,254,249,11,2,42,5,41,32,127,252,12,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=11 dx=19 dy= 0 ascent=17 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14[4851] U8G_SECTION(".progmem.u8g_font_timB14") = { - 0,22,28,254,249,13,2,178,6,78,32,255,252,17,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,1,3,13,13, - 6,1,252,224,224,224,0,64,64,224,224,224,224,224,224,64, - 8,13,13,9,0,254,1,3,62,119,239,236,216,216,240,115, - 62,96,64,14,13,26,9,0,0,31,0,59,0,59,0,56, - 0,56,0,56,0,254,0,56,4,56,0,48,0,240,128,191, - 128,239,0,8,8,8,9,0,2,219,255,102,195,195,102,255, - 219,9,13,26,9,0,0,251,128,113,0,115,0,58,0,58, - 0,28,0,127,0,28,0,127,0,28,0,28,0,28,0,127, - 0,2,16,16,4,1,253,192,192,192,192,192,192,0,0,0, - 0,192,192,192,192,192,192,7,16,16,9,1,253,60,102,70, - 96,48,120,220,206,230,118,60,28,12,196,204,120,6,2,2, - 6,0,10,204,204,13,13,26,15,1,0,15,128,56,224,96, - 48,79,208,220,216,152,72,152,8,152,8,220,216,79,144,96, - 48,56,224,15,128,6,8,8,6,0,5,112,216,56,216,216, - 236,0,252,9,7,14,11,1,1,25,128,51,0,102,0,204, - 0,102,0,51,0,25,128,9,6,12,11,1,1,255,128,255, - 128,1,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,13,26,15,1,0,15,128,56,224,96,48,95,144, - 204,216,140,200,143,136,141,136,204,216,94,240,96,48,56,224, - 15,128,6,1,1,6,0,11,252,6,5,5,7,0,8,120, - 204,204,204,120,8,11,11,11,1,0,24,24,24,255,255,24, - 24,24,0,255,255,5,8,8,5,0,5,112,152,24,48,32, - 64,248,240,5,8,8,5,0,5,112,152,24,112,56,24,152, - 112,5,3,3,6,0,10,56,112,192,10,13,26,11,0,252, - 247,128,115,128,115,128,115,128,115,128,115,128,115,128,127,128, - 125,192,96,0,224,0,240,0,96,0,9,17,34,10,0,252, - 63,128,127,128,251,0,251,0,251,0,251,0,123,0,59,0, - 27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, - 27,0,3,3,3,5,1,4,224,224,224,5,4,4,6,1, - 252,32,24,152,112,6,8,8,5,0,5,48,240,48,48,48, - 48,48,252,6,8,8,6,0,5,120,204,204,204,204,120,0, - 252,9,7,14,11,1,1,204,0,102,0,51,0,25,128,51, - 0,102,0,204,0,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,16,51,48,254,112,6,176,13,176,13, - 248,24,48,24,48,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,112,51,152,254,24,6,48,12,32,12, - 64,24,248,24,240,13,13,26,13,0,0,112,96,152,192,24, - 192,113,128,57,128,27,16,155,48,118,112,6,176,13,176,13, - 248,24,48,24,48,7,13,13,9,1,252,56,56,56,0,16, - 16,48,96,228,238,238,230,124,14,17,34,14,0,0,14,0, - 7,0,1,128,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,3,128,7,0,12,0,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,17,34,14,0,0,3,0, - 7,128,12,192,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,6,64,15,192,9,128,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,16,32,14,0,0,12,192, - 12,192,0,0,3,0,3,128,7,128,5,192,13,192,8,192, - 24,224,16,96,31,240,48,112,32,56,96,56,248,252,14,17, - 34,14,0,0,7,0,13,128,13,128,7,0,3,0,3,128, - 7,128,5,192,13,192,8,192,24,224,16,96,31,240,48,112, - 32,56,96,56,248,252,17,13,39,19,0,0,7,255,128,3, - 225,128,2,224,128,6,224,0,4,224,0,12,226,0,8,254, - 0,31,226,0,16,224,0,48,224,0,32,224,128,96,225,128, - 249,255,128,12,17,34,14,1,252,15,144,56,240,112,112,112, - 48,224,0,224,0,224,0,224,0,224,0,112,0,112,48,60, - 224,15,128,4,0,3,0,19,0,14,0,10,17,34,13,2, - 0,56,0,28,0,6,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,17,34,13,2,0,14,0,28,0,48,0,0, - 0,255,192,112,192,112,64,112,0,112,0,113,0,127,0,113, - 0,112,0,112,0,112,64,112,192,255,192,10,17,34,13,2, - 0,12,0,30,0,51,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,16,32,13,2,0,51,0,51,0,0,0,255, - 192,112,192,112,64,112,0,112,0,113,0,127,0,113,0,112, - 0,112,0,112,64,112,192,255,192,5,17,17,7,1,0,224, - 112,24,0,248,112,112,112,112,112,112,112,112,112,112,112,248, - 5,17,17,7,1,0,56,112,192,0,248,112,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,48,120,204, - 0,248,112,112,112,112,112,112,112,112,112,112,112,248,6,16, - 16,7,1,0,204,204,0,248,112,112,112,112,112,112,112,112, - 112,112,112,248,13,13,26,14,0,0,127,128,56,224,56,112, - 56,48,56,56,56,56,254,56,56,56,56,56,56,48,56,112, - 56,224,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,240,112,120,32,120,32,124,32,94,32,78,32,79,32, - 71,160,67,160,67,224,65,224,64,224,224,224,13,17,34,15, - 1,0,14,0,7,0,1,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,3,128,7,0,12,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,17,34,15, - 1,0,6,0,15,0,25,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,12,128,31,128,19,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,16,32,15, - 1,0,25,128,25,128,0,0,15,128,56,224,112,112,112,112, - 224,56,224,56,224,56,224,56,224,56,112,112,112,112,56,224, - 15,128,9,8,16,11,1,1,193,128,99,0,54,0,28,0, - 28,0,54,0,99,0,193,128,13,15,30,15,1,255,0,96, - 15,192,56,224,112,176,113,176,225,56,227,56,226,56,230,56, - 228,56,108,112,104,112,56,224,31,128,48,0,12,17,34,14, - 1,0,28,0,14,0,3,0,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,17,34,14,1,0,1,192,3,128,6,0, - 0,0,248,240,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,32,112,96,56,192,31,128,12,17,34,14, - 1,0,6,0,15,0,25,128,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,16,32,14,1,0,25,128,25,128,0,0, - 248,240,112,32,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,96,56,192,31,128,13,17,34,14,1,0, - 0,224,1,192,3,0,0,0,252,120,120,48,56,96,60,64, - 30,192,14,128,15,128,7,0,7,0,7,0,7,0,7,0, - 31,192,10,13,26,11,1,0,248,0,112,0,112,0,127,0, - 115,128,113,192,113,192,113,192,115,128,127,0,112,0,112,0, - 248,0,9,13,26,10,0,0,30,0,59,0,115,128,115,128, - 115,128,119,0,114,0,115,0,115,128,115,128,115,128,115,128, - 247,0,8,13,13,9,0,0,112,56,12,0,124,206,206,30, - 110,206,206,254,119,8,13,13,9,0,0,14,28,48,0,124, - 206,206,30,110,206,206,254,119,8,13,13,9,0,0,24,60, - 102,0,124,206,206,30,110,206,206,254,119,8,13,13,9,0, - 0,50,126,76,0,124,206,206,30,110,206,206,254,119,8,12, - 12,9,0,0,102,102,0,124,206,206,30,110,206,206,254,119, - 8,13,13,9,0,0,56,108,108,56,124,206,206,30,110,206, - 206,254,119,12,9,18,13,0,0,125,224,231,176,199,48,15, - 240,127,0,231,0,199,0,239,176,121,224,7,13,13,8,0, - 252,62,118,230,224,224,224,224,118,60,16,12,76,56,7,13, - 13,8,0,0,112,56,12,0,60,118,230,254,224,224,224,118, - 60,8,13,13,8,0,0,7,14,24,0,60,118,230,254,224, - 224,224,118,60,7,13,13,8,0,0,24,60,102,0,60,118, - 230,254,224,224,224,118,60,7,12,12,8,0,0,102,102,0, - 60,118,230,254,224,224,224,118,60,5,13,13,5,0,0,224, - 112,24,0,240,112,112,112,112,112,112,112,248,5,13,13,5, - 0,0,56,112,192,0,240,112,112,112,112,112,112,112,248,6, - 13,13,5,0,0,48,120,204,0,240,112,112,112,112,112,112, - 112,248,6,12,12,5,0,0,204,204,0,240,112,112,112,112, - 112,112,112,248,8,13,13,9,0,0,96,54,56,76,62,102, - 231,231,231,231,231,102,60,10,13,26,11,0,0,25,0,63, - 0,38,0,0,0,231,0,127,128,115,128,115,128,115,128,115, - 128,115,128,115,128,251,192,8,13,13,9,0,0,112,56,12, - 0,60,102,231,231,231,231,231,102,60,8,13,13,9,0,0, - 7,14,24,0,60,102,231,231,231,231,231,102,60,8,13,13, - 9,0,0,24,60,102,0,60,102,231,231,231,231,231,102,60, - 8,13,13,9,0,0,50,126,76,0,60,102,231,231,231,231, - 231,102,60,8,12,12,9,0,0,102,102,0,60,102,231,231, - 231,231,231,102,60,8,8,8,11,1,1,24,24,0,255,255, - 0,24,24,10,11,22,9,255,255,0,64,30,128,51,0,115, - 128,115,128,119,128,123,128,113,128,51,0,94,0,128,0,10, - 13,26,11,0,0,56,0,28,0,6,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,14,0,28,0,48,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,12,0,30,0,51,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 12,24,11,0,0,51,0,51,0,0,0,247,128,115,128,115, - 128,115,128,115,128,115,128,115,128,127,128,61,192,10,17,34, - 9,255,252,3,128,7,0,12,0,0,0,251,192,113,128,121, - 0,59,0,58,0,30,0,30,0,12,0,12,0,12,0,8, - 0,216,0,240,0,9,17,34,10,0,252,240,0,112,0,112, - 0,112,0,118,0,127,0,115,128,115,128,115,128,115,128,115, - 128,123,0,118,0,112,0,112,0,112,0,248,0,10,16,32, - 9,255,252,51,0,51,0,0,0,251,192,113,128,121,0,59, - 0,58,0,30,0,30,0,12,0,12,0,12,0,8,0,216, - 0,240,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=19 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14r[2295] U8G_SECTION(".progmem.u8g_font_timB14r") = { - 0,22,28,254,249,13,2,178,6,78,32,127,252,14,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=23 x= 3 y=14 dx=25 dy= 0 ascent=23 len=69 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18[7223] U8G_SECTION(".progmem.u8g_font_timB18") = { - 0,27,38,254,246,17,4,47,9,109,32,255,251,23,250,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,6,0, - 1,4,17,17,8,2,251,96,240,240,96,0,0,96,96,96, - 96,96,240,240,240,240,240,96,10,18,36,13,1,253,0,128, - 1,128,1,0,31,128,115,192,115,192,230,128,228,0,228,0, - 236,0,232,0,248,0,120,128,127,128,62,0,48,0,96,0, - 96,0,11,17,34,13,0,0,15,192,30,96,60,224,60,224, - 60,64,28,0,28,0,255,128,255,128,28,0,28,0,28,0, - 12,32,124,96,207,224,255,224,115,192,11,12,24,13,0,3, - 192,96,238,224,127,192,59,128,113,192,96,192,96,192,113,192, - 59,128,127,192,238,224,192,96,14,17,34,13,0,0,254,124, - 56,48,60,32,28,96,30,64,14,192,15,128,7,128,7,0, - 31,192,7,0,31,192,7,0,7,0,7,0,7,0,31,192, - 2,22,22,6,2,251,192,192,192,192,192,192,192,192,192,0, - 0,0,0,192,192,192,192,192,192,192,192,192,7,20,20,11, - 2,253,60,110,206,198,224,112,120,92,142,134,194,226,116,60, - 28,14,198,230,236,120,6,2,2,8,1,14,204,204,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 97,243,0,99,51,0,198,17,128,198,1,128,198,1,128,198, - 1,128,198,1,128,99,51,0,97,227,0,48,6,0,60,30, - 0,15,248,0,3,224,0,7,10,10,8,0,7,120,220,12, - 124,236,204,126,0,254,254,11,10,20,13,1,1,12,96,24, - 192,49,128,115,128,231,0,231,0,115,128,49,128,24,192,12, - 96,11,7,14,15,2,2,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,6,3,3,8,1,5,252,252,252,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 103,227,0,99,51,0,195,49,128,195,49,128,195,225,128,195, - 97,128,195,49,128,99,51,0,103,187,0,48,6,0,60,30, - 0,15,248,0,3,224,0,6,1,1,8,1,14,252,8,7, - 7,9,0,10,60,102,195,195,195,102,60,12,13,26,14,1, - 0,6,0,6,0,6,0,6,0,255,240,255,240,6,0,6, - 0,6,0,6,0,0,0,255,240,255,240,6,10,10,7,0, - 7,56,124,140,12,24,16,32,64,252,252,6,10,10,7,0, - 7,56,124,140,12,56,28,12,140,248,112,5,4,4,8,2, - 13,56,112,96,192,12,17,34,14,1,251,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,108,224,96,0,96,0,224,0,240,0,96,0,11,22,44, - 14,1,251,31,224,127,224,126,64,254,64,254,64,254,64,254, - 64,254,64,254,64,126,64,126,64,30,64,2,64,2,64,2, - 64,2,64,2,64,2,64,2,64,2,64,2,64,2,64,3, - 3,3,6,1,6,224,224,224,6,6,6,8,1,250,16,48, - 56,12,140,120,6,10,10,7,0,7,48,240,48,48,48,48, - 48,48,48,252,7,10,10,8,0,7,56,108,198,198,198,108, - 56,0,254,254,11,10,20,13,1,1,198,0,99,0,49,128, - 57,192,28,224,28,224,57,192,51,128,99,0,198,0,17,17, - 51,18,0,0,48,4,0,240,12,0,48,24,0,48,24,0, - 48,48,0,48,32,0,48,96,0,48,66,0,48,198,0,252, - 142,0,1,142,0,1,22,0,3,54,0,6,38,0,6,127, - 128,12,6,0,8,6,0,17,17,51,18,0,0,48,4,0, - 240,12,0,48,24,0,48,24,0,48,48,0,48,32,0,48, - 96,0,48,71,0,48,207,128,252,145,128,1,129,128,1,3, - 0,3,2,0,6,4,0,6,8,0,12,31,128,8,31,128, - 17,17,51,18,1,0,56,4,0,124,12,0,140,24,0,12, - 24,0,56,48,0,28,32,0,12,96,0,140,66,0,248,198, - 0,113,14,0,3,14,0,2,22,0,6,54,0,12,38,0, - 12,127,128,24,6,0,16,6,0,9,17,34,12,1,251,12, - 0,30,0,30,0,12,0,0,0,0,0,12,0,12,0,28, - 0,56,0,120,0,240,0,241,0,243,128,243,128,123,0,62, - 0,17,22,66,18,0,0,3,128,0,1,192,0,0,192,0, - 0,96,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,22,66,18,0,0,0, - 224,0,1,192,0,1,128,0,3,0,0,0,0,0,1,128, - 0,1,192,0,3,192,0,3,224,0,3,224,0,6,224,0, - 6,240,0,4,112,0,12,112,0,8,120,0,8,56,0,31, - 248,0,16,60,0,48,60,0,48,30,0,112,30,0,248,127, - 128,17,22,66,18,0,0,1,128,0,3,192,0,6,96,0, - 0,0,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,21,63,18,0,0,3, - 16,0,7,224,0,8,192,0,0,0,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,17,21, - 63,18,0,0,6,96,0,6,96,0,0,0,0,0,0,0, - 1,128,0,1,192,0,3,192,0,3,224,0,3,224,0,6, - 224,0,6,240,0,4,112,0,12,112,0,8,120,0,8,56, - 0,31,248,0,16,60,0,48,60,0,48,30,0,112,30,0, - 248,127,128,17,23,69,18,0,0,1,128,0,3,192,0,6, - 96,0,6,96,0,3,192,0,1,128,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,23,17, - 51,25,0,0,1,255,252,0,124,28,0,252,12,0,188,4, - 1,188,4,1,60,32,3,60,32,2,60,96,6,63,224,7, - 252,96,12,60,32,8,60,32,24,60,2,16,60,2,48,60, - 6,112,60,14,248,255,254,15,23,46,18,1,250,3,242,30, - 62,60,14,120,6,120,2,240,2,240,0,240,0,240,0,240, - 0,240,0,240,0,120,0,120,2,60,14,31,60,7,240,1, - 0,3,0,3,128,0,192,8,192,7,128,15,22,44,17,1, - 0,7,0,3,128,1,128,0,192,0,0,255,252,60,28,60, - 12,60,4,60,4,60,32,60,32,60,96,63,224,60,96,60, - 32,60,32,60,2,60,2,60,6,60,14,255,254,15,22,44, - 17,1,0,1,192,3,128,3,0,6,0,0,0,255,252,60, - 28,60,12,60,4,60,4,60,32,60,32,60,96,63,224,60, - 96,60,32,60,32,60,2,60,2,60,6,60,14,255,254,15, - 22,44,17,1,0,3,0,7,128,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,15,21,42,17,1,0,12,192,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,8,22,22,10,0,0,112,56,24,12,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,8,22,22, - 10,0,0,14,28,24,48,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,8,22,22,10,0,0,24, - 60,102,0,0,255,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,255,8,21,21,10,0,0,102,102,0,0,255, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 16,17,34,18,1,0,255,224,60,120,60,60,60,30,60,30, - 60,15,60,15,255,143,255,143,60,15,60,15,60,14,60,30, - 60,28,60,60,60,120,255,224,17,22,66,18,0,0,1,136, - 0,3,240,0,4,96,0,0,0,0,0,0,0,248,15,128, - 124,7,0,62,2,0,63,2,0,63,130,0,47,194,0,39, - 226,0,35,226,0,33,242,0,32,250,0,32,126,0,32,62, - 0,32,30,0,32,14,0,32,14,0,96,6,0,248,2,0, - 16,22,44,19,1,0,7,0,3,128,1,128,0,192,0,0, - 7,224,30,120,60,60,120,30,120,30,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,120,30,120,30,60,60,30,120, - 7,224,16,22,44,19,1,0,0,112,0,224,0,192,1,128, - 0,0,7,224,30,120,60,60,120,30,120,30,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,120,30,120,30,60,60, - 30,120,7,224,16,22,44,19,1,0,1,128,3,192,6,96, - 0,0,0,0,7,224,30,120,60,60,120,30,120,30,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,120,30,120,30, - 60,60,30,120,7,224,16,22,44,19,1,0,3,16,7,224, - 8,192,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,16,21,42,19,1,0,12,96, - 12,96,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,12,12,24,14,1,0,192,48, - 224,112,112,224,57,192,31,128,15,0,15,0,31,128,57,192, - 112,224,224,112,192,48,16,19,38,19,1,255,0,4,7,236, - 30,120,56,28,120,62,120,62,240,111,240,207,240,207,241,143, - 243,15,243,15,246,15,124,30,124,30,56,28,62,120,55,224, - 96,0,17,22,66,18,0,0,3,128,0,1,192,0,0,192, - 0,0,96,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,22,66,18,0,0, - 0,56,0,0,112,0,0,96,0,0,192,0,0,0,0,255, - 15,128,62,6,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,6,0,30,4,0,31,28,0,7, - 248,0,17,22,66,18,0,0,0,96,0,0,240,0,1,152, - 0,0,0,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,21,63,18,0,0, - 3,24,0,3,24,0,0,0,0,0,0,0,255,15,128,62, - 6,0,60,2,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,6,0,30,4,0,31,28,0,7,248,0,18, - 23,69,18,0,0,0,14,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,143,192,62,3,0,30,2,0, - 15,6,0,15,12,0,7,140,0,7,152,0,3,208,0,3, - 240,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,7,248,0,14,17,34,15,0,0, - 255,0,60,0,60,0,60,0,63,224,60,120,60,60,60,60, - 60,60,60,60,60,60,60,120,63,224,60,0,60,0,60,0, - 255,0,11,17,34,14,1,0,31,0,57,128,113,192,113,192, - 113,192,113,192,115,128,119,0,115,128,113,192,112,224,112,224, - 112,224,112,224,112,224,112,192,243,128,10,17,34,12,1,0, - 56,0,28,0,12,0,6,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,14,0,28,0,24,0,48,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,17,34,12,1,0, - 12,0,30,0,51,0,0,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,24,128,63,0,70,0,0,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,16,32,12,1,0, - 51,0,51,0,0,0,0,0,62,0,119,0,227,128,227,128, - 67,128,15,128,115,128,227,128,227,128,231,128,255,192,113,128, - 10,18,36,12,1,0,12,0,30,0,51,0,51,0,30,0, - 12,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,15,12,24,17,1,0, - 62,120,119,204,227,206,99,142,3,142,31,254,115,128,227,128, - 227,192,231,226,254,252,124,120,9,18,36,11,1,250,30,0, - 115,0,115,128,227,128,225,0,224,0,224,0,224,0,240,0, - 120,128,127,0,30,0,8,0,24,0,28,0,6,0,70,0, - 60,0,9,17,34,11,1,0,56,0,28,0,12,0,6,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,17,34,11,1,0, - 14,0,28,0,24,0,48,0,0,0,30,0,115,0,115,128, - 227,128,227,128,255,128,224,0,224,0,240,0,120,128,127,0, - 30,0,9,17,34,11,1,0,24,0,60,0,102,0,0,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,16,32,11,1,0, - 51,0,51,0,0,0,0,0,30,0,115,0,115,128,227,128, - 227,128,255,128,224,0,224,0,240,0,120,128,127,0,30,0, - 5,17,17,7,1,0,224,112,48,24,0,240,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,28,56,48, - 96,0,240,112,112,112,112,112,112,112,112,112,112,248,6,17, - 17,7,1,0,48,120,204,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,6,16,16,7,1,0,204,204,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,11,17,34,13,1, - 0,96,0,56,192,15,0,30,0,99,0,31,128,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,12,17,34,14,1,0,12,64,31,128,35,0,0, - 0,0,0,243,192,119,224,120,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,249,240,11,17,34,13,1, - 0,28,0,14,0,6,0,3,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,3,128,7,0,6,0,12, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,17,34,13,1, - 0,12,0,30,0,51,0,0,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,24,128,63,0,70,0,0, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,16,32,13,1, - 0,49,128,49,128,0,0,0,0,31,0,123,192,113,192,224, - 224,224,224,224,224,224,224,224,224,224,224,113,192,123,192,31, - 0,12,12,24,14,1,0,6,0,6,0,6,0,0,0,0, - 0,255,240,255,240,0,0,0,0,6,0,6,0,6,0,11, - 16,32,13,1,254,0,64,0,64,30,128,121,192,113,192,226, - 224,226,224,228,224,228,224,232,224,232,224,113,192,123,192,63, - 0,64,0,64,0,12,17,34,14,1,0,28,0,14,0,6, - 0,3,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,17,34, - 14,1,0,7,0,14,0,12,0,24,0,0,0,241,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,113, - 224,126,240,60,224,12,17,34,14,1,0,6,0,15,0,25, - 128,0,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,16,32, - 14,1,0,25,128,25,128,0,0,0,0,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,60,224,12,22,44,12,0,251,1,192,3,128,3,0,6, - 0,0,0,253,240,120,96,56,64,56,192,60,128,28,128,29, - 128,31,0,15,0,15,0,6,0,6,0,6,0,100,0,236, - 0,248,0,112,0,12,22,44,14,1,251,240,0,112,0,112, - 0,112,0,112,0,115,128,119,224,124,224,120,112,112,112,112, - 112,112,112,112,112,112,112,120,224,119,224,115,128,112,0,112, - 0,112,0,112,0,252,0,12,21,42,12,0,251,25,128,25, - 128,0,0,0,0,253,240,120,96,56,64,56,192,60,128,28, - 128,29,128,31,0,15,0,15,0,6,0,6,0,6,0,100, - 0,236,0,248,0,112,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=22 x= 3 y=13 dx=25 dy= 0 ascent=18 len=66 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18r[3355] U8G_SECTION(".progmem.u8g_font_timB18r") = { - 0,27,38,254,246,17,4,47,9,109,32,127,251,18,251,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=18 dx=33 dy= 0 ascent=30 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24[10820] U8G_SECTION(".progmem.u8g_font_timB24") = { - 0,38,49,251,244,23,5,149,13,202,32,255,249,30,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,8,0, - 1,5,23,23,11,3,249,112,248,248,248,112,0,0,0,32, - 32,32,32,112,112,112,112,248,248,248,248,248,248,112,13,25, - 50,17,1,251,0,8,0,8,0,24,0,16,7,240,28,224, - 56,240,120,240,240,240,240,224,240,128,241,128,241,0,243,0, - 242,0,250,16,126,48,127,224,63,192,15,0,8,0,16,0, - 16,0,32,0,32,0,16,23,46,17,1,0,0,240,3,252, - 7,30,14,30,14,30,30,12,30,0,30,0,31,0,15,0, - 15,0,127,240,127,240,7,128,7,128,7,128,55,128,127,1, - 239,3,199,135,199,255,238,254,124,124,14,15,30,17,1,4, - 96,24,247,188,255,252,127,248,60,240,120,120,112,56,112,56, - 112,56,120,120,60,240,127,248,255,252,247,188,96,24,18,23, - 69,17,1,0,255,135,192,62,3,128,62,3,0,31,3,0, - 31,6,0,31,134,0,15,132,0,15,140,0,7,200,0,7, - 216,0,7,208,0,3,240,0,31,252,0,31,252,0,3,224, - 0,31,252,0,31,252,0,1,224,0,1,224,0,1,224,0, - 1,224,0,3,240,0,15,252,0,2,30,30,7,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,0,0,0,0,0, - 0,192,192,192,192,192,192,192,192,192,192,192,192,12,28,56, - 17,2,251,15,128,24,192,48,224,113,224,113,224,120,192,60, - 0,62,0,31,0,15,128,63,192,99,224,193,224,192,240,224, - 112,240,48,120,48,124,96,63,192,31,128,7,128,3,192,49, - 224,120,224,120,224,112,192,49,128,31,0,8,4,4,11,2, - 18,66,231,231,66,22,23,69,25,1,0,1,254,0,7,255, - 128,15,3,192,28,0,224,56,0,112,48,254,48,113,199,56, - 99,131,24,231,131,28,199,0,12,199,0,12,199,0,12,199, - 0,12,199,128,12,195,195,12,227,230,28,96,252,24,112,0, - 56,56,0,112,28,0,224,15,3,192,7,255,128,1,254,0, - 9,14,28,10,0,9,60,0,102,0,103,0,103,0,31,0, - 103,0,199,0,199,0,239,128,115,0,0,0,0,0,255,128, - 255,128,14,14,28,17,2,1,2,4,6,12,14,28,28,56, - 56,112,112,224,225,192,225,192,112,224,56,112,28,56,14,28, - 6,12,2,4,16,9,18,19,1,3,255,255,255,255,255,255, - 0,7,0,7,0,7,0,7,0,7,0,7,8,4,4,11, - 1,6,255,255,255,255,22,23,69,25,2,0,1,254,0,7, - 255,128,15,3,192,28,0,224,56,0,112,51,252,48,113,206, - 56,96,199,24,224,199,28,192,199,12,192,206,12,192,248,12, - 192,220,12,192,206,12,192,198,12,224,199,28,97,195,152,115, - 227,248,56,0,112,28,0,224,15,3,192,7,255,128,1,254, - 0,9,2,4,11,1,18,255,128,255,128,9,10,20,13,2, - 13,28,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,60,0,15,19,38,19,2,0,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,0,0,255,254,255,254,255, - 254,10,14,28,10,1,9,62,0,127,0,199,128,131,128,3, - 128,3,128,3,0,6,0,12,0,24,0,48,64,127,192,255, - 128,255,128,9,14,28,10,1,9,30,0,63,0,103,128,67, - 128,3,0,6,0,31,0,7,128,3,128,3,128,3,128,195, - 128,231,0,126,0,7,6,6,11,3,17,6,14,28,56,96, - 128,16,22,44,19,2,250,248,252,120,124,120,60,120,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 124,124,252,127,191,95,56,64,0,224,0,224,0,224,0,224, - 0,224,0,16,29,58,18,1,250,15,255,63,255,63,140,127, - 140,255,140,255,140,255,140,255,140,255,140,255,140,255,140,127, - 140,63,140,63,140,15,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,4,4,4,8,2,9,96,240,240,96,7,7,7, - 11,1,249,6,12,28,14,198,238,124,9,14,28,10,0,9, - 12,0,124,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,255,128,9,14,28,11, - 1,9,28,0,119,0,99,0,227,128,227,128,227,128,227,128, - 99,0,119,0,28,0,0,0,0,0,255,128,255,128,14,14, - 28,17,1,1,129,0,193,128,225,192,112,224,56,112,28,56, - 14,28,14,28,28,56,56,112,112,224,225,192,193,128,129,0, - 23,23,69,25,0,0,12,0,8,124,0,24,28,0,48,28, - 0,48,28,0,96,28,0,96,28,0,192,28,1,128,28,1, - 128,28,3,12,28,6,28,28,6,60,28,12,124,255,152,252, - 0,24,220,0,49,156,0,99,156,0,99,28,0,199,254,1, - 199,254,1,128,28,3,0,28,3,0,28,23,23,69,25,0, - 0,12,0,48,124,0,96,28,0,96,28,0,192,28,0,128, - 28,1,128,28,3,0,28,2,0,28,6,0,28,12,240,28, - 25,248,28,27,60,28,50,28,255,176,28,0,96,28,0,96, - 24,0,192,48,1,128,96,1,128,192,3,1,130,6,3,254, - 6,7,252,12,15,252,22,23,69,25,1,0,30,0,16,63, - 0,48,103,128,96,67,128,96,3,0,192,6,0,192,31,1, - 128,7,131,0,3,131,0,3,134,24,3,140,56,195,140,120, - 231,24,248,126,49,248,0,49,184,0,99,56,0,199,56,0, - 198,56,1,143,252,3,143,252,3,0,56,6,0,56,6,0, - 56,12,23,46,16,2,249,7,0,15,128,15,128,15,128,7, - 0,0,0,0,0,0,0,2,0,2,0,6,0,12,0,28, - 0,60,0,120,0,120,0,248,96,248,240,248,240,248,112,120, - 112,60,224,31,192,21,30,90,24,1,0,6,0,0,7,0, - 0,3,128,0,1,192,0,0,96,0,0,0,0,0,32,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,3,0,0,7, - 0,0,14,0,0,28,0,0,48,0,0,64,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,96,0,0,240, - 0,1,248,0,1,152,0,3,12,0,2,4,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,29,87,24,1,0,0,194,0,1,246, - 0,3,124,0,2,24,0,0,0,0,0,0,0,0,32,0, - 0,96,0,0,112,0,0,240,0,0,248,0,0,248,0,1, - 248,0,1,124,0,1,124,0,3,62,0,2,62,0,6,62, - 0,6,31,0,4,31,0,12,15,0,15,255,128,24,15,128, - 24,7,192,16,7,192,48,3,224,48,3,224,112,7,240,252, - 31,248,21,29,87,24,1,0,1,8,0,3,156,0,3,156, - 0,1,8,0,0,0,0,0,0,0,0,32,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,21, - 30,90,24,1,0,0,224,0,1,176,0,3,24,0,2,8, - 0,3,24,0,1,176,0,0,224,0,0,0,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,32, - 23,92,33,0,0,3,255,255,252,0,255,255,252,0,99,224, - 28,0,99,224,12,0,195,224,12,0,195,224,4,1,131,224, - 4,1,131,224,128,3,3,224,128,3,3,225,128,2,3,227, - 128,7,255,255,128,7,255,227,128,12,3,225,128,12,3,224, - 128,24,3,224,128,24,3,224,1,56,3,224,3,48,3,224, - 6,112,3,224,14,112,3,224,62,248,7,255,252,254,31,255, - 252,19,30,90,24,2,249,1,252,32,7,255,96,15,7,224, - 30,1,224,60,0,224,124,0,96,124,0,96,248,0,32,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,124,0,0,124,0,0,60,0,32, - 30,0,96,15,129,192,3,255,128,0,254,0,0,24,0,0, - 48,0,0,112,0,0,56,0,3,24,0,3,184,0,1,240, - 0,21,30,90,22,0,0,6,0,0,7,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,1,128,0,3,128,0,7,0, - 0,14,0,0,24,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,48,0,0,120,0,0,252,0, - 0,204,0,1,134,0,1,2,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,29,87,22,0,0,0,132,0,1,206,0,1,206,0, - 0,132,0,0,0,0,0,0,0,255,255,224,63,255,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,0,32,31,4, - 0,31,4,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,4,0,31,4,0,31,0,8,31,0,24,31, - 0,48,31,0,112,31,1,240,63,255,224,255,255,224,11,30, - 60,13,1,0,192,0,224,0,112,0,56,0,12,0,6,0, - 0,0,255,224,63,128,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,63,128,255,224, - 12,30,60,13,1,0,0,48,0,112,0,224,1,192,3,0, - 6,0,0,0,255,224,63,128,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,63,128, - 255,224,11,30,60,13,1,0,6,0,15,0,31,128,25,128, - 48,192,32,64,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,11,29,58,13,1,0,16,128,57,192,57,192, - 16,128,0,0,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,22,23,69,24,0,0,255,254,0,63,15,128, - 31,3,224,31,1,240,31,1,240,31,0,248,31,0,248,31, - 0,252,31,0,252,31,0,252,255,240,124,255,240,124,255,240, - 124,31,0,124,31,0,252,31,0,248,31,0,248,31,0,248, - 31,1,240,31,1,224,31,3,192,63,15,128,127,254,0,22, - 29,87,24,1,0,0,97,0,0,251,0,1,190,0,1,12, - 0,0,0,0,0,0,0,254,1,252,127,0,112,63,128,32, - 31,128,32,31,192,32,31,224,32,23,240,32,19,248,32,17, - 248,32,17,252,32,16,254,32,16,127,32,16,63,32,16,31, - 160,16,31,224,16,15,224,16,7,224,16,3,224,16,3,224, - 16,1,224,16,0,224,56,0,96,254,0,32,21,30,90,25, - 2,0,6,0,0,7,0,0,3,128,0,1,192,0,0,96, - 0,0,48,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,96,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,48,0,0,120,0,0,252,0,0,204,0,1,134, - 0,1,2,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,29,87,25, - 2,0,0,194,0,1,246,0,3,124,0,2,24,0,0,0, - 0,0,0,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,21,29,87,25,2,0,0, - 132,0,1,206,0,1,206,0,0,132,0,0,0,0,0,0, - 0,1,252,0,7,255,0,15,143,128,30,3,192,60,1,224, - 124,1,240,120,0,240,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,120,0,240,124,1,240,60,1,224,30,3,192,15,143,128, - 7,255,0,1,252,0,15,16,32,19,2,0,64,4,224,14, - 240,30,120,60,60,120,30,240,15,224,7,192,7,192,15,224, - 30,240,60,120,120,60,240,30,224,14,64,4,21,27,81,26, - 2,254,0,0,48,0,0,96,1,252,64,7,143,192,14,3, - 128,30,1,192,60,3,224,124,6,240,120,4,240,248,12,248, - 248,24,248,248,24,248,248,48,248,248,32,248,248,96,248,248, - 192,248,248,128,248,249,128,248,123,0,240,126,1,240,62,1, - 224,28,3,192,14,7,128,31,254,0,17,248,0,48,0,0, - 96,0,0,23,30,90,24,0,0,0,192,0,0,224,0,0, - 112,0,0,56,0,0,12,0,0,2,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,0,192,0,1,192,0, - 3,128,0,7,0,0,12,0,0,16,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,12,0,0,30,0,0, - 63,0,0,51,0,0,97,128,0,64,128,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,29,87,24,0,0,0,33,0,0,115,128,0, - 115,128,0,33,0,0,0,0,0,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 48,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,30,90,24,1,0,0,0,192,0,1,192,0,3,128,0, - 7,0,0,12,0,0,16,0,0,0,0,255,195,252,127,0, - 240,63,0,96,63,0,96,31,128,192,31,128,128,15,193,128, - 15,195,0,7,227,0,3,230,0,3,244,0,1,252,0,1, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,1,252,0,7,255,0, - 19,23,69,20,0,0,255,224,0,63,128,0,31,0,0,31, - 0,0,31,254,0,31,15,128,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,224,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,63,128,0,255,224,0,17,23,69,19,0, - 0,3,240,0,14,60,0,30,62,0,28,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,28,0,60,56,0,60, - 224,0,60,60,0,60,30,0,60,15,0,60,15,0,60,15, - 128,60,15,128,60,15,128,60,15,128,60,15,0,60,15,0, - 60,30,0,252,124,0,14,23,46,16,1,0,48,0,56,0, - 28,0,14,0,3,0,0,128,0,0,31,128,49,224,112,240, - 120,240,120,240,48,240,1,240,7,240,28,240,56,240,120,240, - 240,240,249,240,255,244,126,252,60,120,14,23,46,16,1,0, - 0,48,0,112,0,224,1,192,3,0,4,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,14,23, - 46,16,1,0,3,0,7,128,15,192,12,192,24,96,16,32, - 0,0,31,128,49,224,112,240,120,240,120,240,48,240,1,240, - 7,240,28,240,56,240,120,240,240,240,249,240,255,244,126,252, - 60,120,14,22,44,16,1,0,12,32,31,96,55,192,33,128, - 0,0,0,0,31,128,49,224,112,240,120,240,120,240,48,240, - 1,240,7,240,28,240,56,240,120,240,240,240,249,240,255,244, - 126,252,60,120,14,22,44,16,1,0,8,64,28,224,28,224, - 8,64,0,0,0,0,31,128,49,224,112,240,120,240,120,240, - 48,240,1,240,7,240,28,240,56,240,120,240,240,240,249,240, - 255,244,126,252,60,120,14,25,50,16,1,0,7,0,13,128, - 24,192,16,64,24,192,13,128,7,0,0,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,21,16, - 48,24,1,0,31,135,192,49,238,224,112,252,112,120,248,112, - 120,248,56,48,248,56,1,248,56,7,255,248,28,248,0,56, - 248,0,120,252,0,248,252,8,248,254,24,255,255,240,126,63, - 224,60,15,192,13,23,46,15,1,249,7,224,30,240,60,120, - 120,120,120,48,240,0,240,0,240,0,240,0,240,0,248,0, - 120,0,120,0,60,48,31,224,15,192,3,0,6,0,6,0, - 3,128,49,128,59,128,31,0,14,23,46,15,0,0,48,0, - 56,0,28,0,14,0,3,0,0,128,0,0,7,192,30,240, - 60,112,120,56,120,60,248,60,248,60,255,252,248,0,248,0, - 248,0,120,0,124,0,62,24,31,240,7,224,14,23,46,15, - 0,0,0,24,0,56,0,112,0,224,1,128,2,0,0,0, - 7,192,30,240,60,112,120,56,120,60,248,60,248,60,255,252, - 248,0,248,0,248,0,120,0,124,0,62,24,31,240,7,224, - 14,23,46,15,0,0,3,0,7,128,15,192,12,192,24,96, - 16,32,0,0,7,192,30,240,60,112,120,56,120,60,248,60, - 248,60,255,252,248,0,248,0,248,0,120,0,124,0,62,24, - 31,240,7,224,14,22,44,15,0,0,4,32,14,112,14,112, - 4,32,0,0,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,8,23,23,9,0,0,192,224,112,56, - 12,2,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,8,23,23,9,0,0,3,7,14,28,48,64,0, - 252,124,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 8,23,23,9,0,0,24,60,126,102,195,129,0,252,124,60, - 60,60,60,60,60,60,60,60,60,60,60,126,255,8,22,22, - 9,0,0,66,231,231,66,0,0,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,14,22,44,17,1,0,56, - 48,62,248,15,248,255,128,251,192,97,224,15,240,60,248,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,22,66,18,0, - 0,3,8,0,7,216,0,13,240,0,8,96,0,0,0,0, - 0,0,0,252,120,0,125,252,0,63,62,0,62,30,0,62, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,126,63,0, - 255,127,128,14,23,46,17,1,0,48,0,56,0,28,0,14, - 0,3,0,0,128,0,0,15,192,60,240,120,120,120,120,240, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,60,240,15,192,14,23,46,17,1,0,0,24,0, - 56,0,112,0,224,1,128,2,0,0,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,14,23,46,17,1, - 0,3,0,7,128,15,192,12,192,24,96,16,32,0,0,15, - 192,60,240,120,120,120,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,120,120,120,120,60,240,15,192,14, - 22,44,17,1,0,12,32,31,96,55,192,33,128,0,0,0, - 0,15,192,60,240,120,120,120,120,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,120,120,120,120,60,240,15, - 192,14,22,44,17,1,0,8,64,28,224,28,224,8,64,0, - 0,0,0,15,192,60,240,120,120,120,120,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,240,60,120,120,120,120,60, - 240,15,192,14,15,30,19,2,1,3,0,7,128,7,128,3, - 0,0,0,0,0,255,252,255,252,255,252,0,0,0,0,3, - 0,7,128,7,128,3,0,14,22,44,17,1,253,0,8,0, - 24,0,24,15,240,60,240,120,120,120,120,240,252,241,188,241, - 60,243,60,242,60,246,60,252,60,248,60,120,120,120,120,60, - 240,111,192,96,0,192,0,128,0,17,23,69,18,0,0,24, - 0,0,28,0,0,14,0,0,7,0,0,1,128,0,0,64, - 0,0,0,0,252,126,0,124,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,62,0,62,127,0,31,223, - 128,7,140,0,17,23,69,18,0,0,0,12,0,0,28,0, - 0,56,0,0,112,0,0,192,0,1,0,0,0,0,0,252, - 126,0,124,62,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,62,0,62,127,0,31,223,128,7,140,0,17, - 23,69,18,0,0,1,128,0,3,192,0,7,224,0,6,96, - 0,12,48,0,8,16,0,0,0,0,252,126,0,124,62,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,62, - 0,62,127,0,31,223,128,7,140,0,17,22,66,18,0,0, - 4,32,0,14,112,0,14,112,0,4,32,0,0,0,0,0, - 0,0,252,126,0,124,62,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,62,127,0,31,223,128,7, - 140,0,15,30,60,17,0,249,0,12,0,28,0,56,0,112, - 0,192,1,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0,15,29,58,19,1,249,252,0,124,0,60,0, - 60,0,60,0,60,0,60,224,63,248,62,124,60,60,60,62, - 60,30,60,30,60,30,60,30,60,30,60,30,60,30,60,60, - 62,60,63,248,60,224,60,0,60,0,60,0,60,0,60,0, - 126,0,255,0,15,29,58,17,0,249,4,32,14,112,14,112, - 4,32,0,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=25 x= 2 y= 9 dx=19 dy= 0 ascent=25 len=50 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24n[701] U8G_SECTION(".progmem.u8g_font_timB24n") = { - 0,38,49,251,244,23,0,0,0,0,42,57,0,25,250,23, - 0,13,14,28,17,1,9,3,0,7,0,7,0,231,56,242, - 120,122,240,15,128,15,128,122,240,242,120,231,56,7,0,7, - 0,6,0,15,15,30,19,2,0,3,128,3,128,3,128,3, - 128,3,128,3,128,255,254,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,11,11,8,1,250,56,124,124, - 124,60,12,8,24,48,96,192,8,4,4,11,1,6,255,255, - 255,255,5,5,5,8,1,0,112,248,248,248,112,9,25,50, - 9,0,0,1,128,1,128,1,0,3,0,3,0,3,0,6, - 0,6,0,6,0,4,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,14,23,46,16,1,0,7,128,31,224,28, - 224,56,112,120,112,120,120,120,120,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,248,124,120,120,120,120,120, - 120,56,112,28,224,15,192,7,128,13,23,46,16,2,0,1, - 128,7,128,31,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,31,192,255,248,16,23,46, - 16,0,0,3,192,15,240,31,248,63,248,48,252,96,124,64, - 124,0,124,0,120,0,120,0,120,0,240,0,224,1,192,1, - 128,3,0,7,1,14,3,28,6,63,254,127,254,255,252,255, - 252,14,23,46,16,1,0,7,192,31,240,63,240,48,248,96, - 120,64,120,0,120,0,112,0,192,3,224,15,240,15,248,3, - 248,0,252,0,124,0,60,0,60,0,60,96,56,240,56,248, - 112,127,192,31,0,14,23,46,16,1,0,0,112,0,240,0, - 240,1,240,3,240,6,240,6,240,12,240,24,240,24,240,48, - 240,96,240,96,240,192,240,255,252,255,252,255,252,255,252,0, - 240,0,240,0,240,0,240,0,240,13,23,46,16,1,0,31, - 248,31,248,31,248,31,248,48,0,48,0,32,0,62,0,127, - 128,127,224,127,240,127,240,3,248,0,248,0,120,0,56,0, - 56,0,56,96,48,240,48,248,96,127,192,31,0,14,23,46, - 16,1,0,0,28,0,240,3,192,7,128,15,0,30,0,62, - 0,60,0,124,0,127,224,253,240,248,248,248,120,248,124,248, - 124,248,124,248,124,120,124,120,120,120,120,56,112,28,224,15, - 192,13,23,46,16,2,0,127,248,127,248,255,248,255,248,192, - 48,128,112,128,112,0,96,0,224,0,224,0,192,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,14,0,28,0,14,23,46,16,1,0,15,224,62,240,60, - 120,120,120,120,56,120,56,124,56,126,112,63,224,63,128,31, - 192,15,224,63,240,113,248,112,252,224,124,224,60,224,60,224, - 60,240,56,120,120,127,240,31,192,14,23,46,16,1,0,15, - 192,28,224,56,112,120,120,120,120,248,120,248,124,248,124,248, - 124,248,124,120,124,124,124,62,252,31,248,0,248,0,240,1, - 240,1,224,3,192,7,128,15,0,60,0,224,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=17 dx=33 dy= 0 ascent=26 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24r[5003] U8G_SECTION(".progmem.u8g_font_timB24r") = { - 0,38,49,251,244,23,5,149,13,202,32,127,249,26,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h=10 x= 1 y= 6 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08[2512] U8G_SECTION(".progmem.u8g_font_timR08") = { - 0,12,17,254,252,7,1,147,3,56,32,255,254,10,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,2,0,1,1,7,7,3,1,254,128,0,128,128,128,128, - 128,4,7,7,5,0,255,32,112,144,128,144,96,64,5,7, - 7,5,0,0,48,80,64,224,64,200,240,5,6,6,5,0, - 1,136,112,80,80,112,136,5,7,7,5,0,0,136,80,216, - 32,248,32,112,1,7,7,2,0,0,128,128,128,0,128,128, - 128,4,9,9,5,0,254,112,144,64,160,144,80,32,144,224, - 3,1,1,5,1,5,160,7,7,7,9,1,0,56,68,154, - 162,154,68,56,3,5,5,4,0,2,192,32,160,0,224,4, - 4,4,5,0,1,80,160,160,80,5,2,2,7,1,1,248, - 8,3,1,1,4,0,2,224,7,7,7,9,1,0,56,68, - 186,178,170,68,56,3,1,1,4,0,5,224,4,4,4,4, - 0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32, - 32,0,248,3,4,4,3,0,3,96,160,64,224,3,4,4, - 3,0,3,224,64,32,192,2,2,2,3,0,5,64,128,5, - 7,7,5,0,254,144,144,144,144,232,128,128,6,9,9,6, - 0,254,124,232,232,232,104,40,40,40,40,1,1,1,2,0, - 2,128,3,3,3,4,0,253,64,32,192,3,4,4,3,0, - 3,64,192,64,224,3,5,5,4,0,2,64,160,64,0,224, - 4,4,4,5,0,1,160,80,80,160,7,7,7,8,0,0, - 68,200,72,244,44,62,68,7,7,7,8,0,0,68,200,72, - 246,42,36,78,7,7,7,8,0,0,228,72,40,212,44,62, - 68,3,7,7,4,0,254,64,0,64,64,128,160,224,7,10, - 10,8,0,0,32,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,8,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,16,40,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,20,40,0,16,56,40,40,124,68,238,7,9, - 9,8,0,0,40,0,16,56,40,40,124,68,238,7,10,10, - 8,0,0,16,40,16,16,56,40,40,124,68,238,8,7,7, - 9,0,0,31,57,40,46,120,73,239,6,10,10,7,0,253, - 124,196,128,128,128,196,120,32,16,96,5,10,10,6,0,0, - 64,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 16,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 32,80,0,248,72,64,112,64,72,248,5,9,9,6,0,0, - 80,0,248,72,64,112,64,72,248,3,10,10,4,0,0,128, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,32, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,64, - 160,0,224,64,64,64,64,64,224,3,9,9,4,0,0,160, - 0,224,64,64,64,64,64,224,6,7,7,7,0,0,248,76, - 68,228,68,76,248,7,10,10,8,0,0,20,40,0,206,100, - 100,84,84,76,228,6,10,10,7,0,0,32,16,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,32,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,40,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,40,80,0,120,204, - 132,132,132,204,120,6,9,9,7,0,0,72,0,120,204,132, - 132,132,204,120,5,5,5,6,0,0,136,80,32,80,136,8, - 9,9,8,255,255,1,62,102,74,66,82,102,124,128,7,10, - 10,8,0,0,32,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,8,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,16,40,0,238,68,68,68,68,108,56,7,9, - 9,8,0,0,40,0,238,68,68,68,68,108,56,7,10,10, - 8,0,0,8,16,0,198,68,40,56,16,16,56,5,7,7, - 6,0,0,224,64,112,72,112,64,224,4,7,7,5,0,0, - 32,80,80,96,80,80,224,3,8,8,4,0,0,128,64,0, - 192,32,96,160,224,3,8,8,4,0,0,32,64,0,192,32, - 96,160,224,3,8,8,4,0,0,64,160,0,192,32,96,160, - 224,4,8,8,4,0,0,80,160,0,192,32,96,160,224,3, - 7,7,4,0,0,160,0,192,32,96,160,224,3,8,8,4, - 0,0,64,160,64,192,32,96,160,224,5,5,5,6,0,0, - 216,40,112,160,216,3,8,8,4,0,253,96,128,128,128,96, - 64,32,192,3,8,8,4,0,0,128,64,0,96,160,192,128, - 96,3,8,8,4,0,0,32,64,0,96,160,192,128,96,3, - 8,8,4,0,0,64,160,0,96,160,192,128,96,3,7,7, - 4,0,0,160,0,96,160,192,128,96,2,8,8,3,0,0, - 128,64,0,192,64,64,64,64,3,8,8,3,0,0,32,64, - 0,192,64,64,64,64,3,8,8,3,0,0,64,160,0,192, - 64,64,64,64,3,7,7,3,0,0,160,0,192,64,64,64, - 64,4,8,8,5,0,0,64,112,160,112,144,144,144,96,5, - 8,8,5,0,0,80,160,0,224,144,144,144,216,4,8,8, - 5,0,0,64,32,0,96,144,144,144,96,4,8,8,5,0, - 0,32,64,0,96,144,144,144,96,4,8,8,5,0,0,64, - 160,0,96,144,144,144,96,4,8,8,5,0,0,80,160,0, - 96,144,144,144,96,4,7,7,5,0,0,160,0,96,144,144, - 144,96,5,5,5,6,0,0,32,0,248,0,32,6,7,7, - 5,255,255,4,56,72,72,72,112,128,5,8,8,5,0,0, - 64,32,0,144,144,144,144,104,5,8,8,5,0,0,32,64, - 0,144,144,144,144,104,5,8,8,5,0,0,32,80,0,144, - 144,144,144,104,5,7,7,5,0,0,80,0,144,144,144,144, - 104,6,10,10,5,255,254,16,32,0,220,72,80,48,32,96, - 192,5,10,10,5,255,253,192,64,112,72,72,72,112,64,64, - 224,6,9,9,5,255,254,80,0,220,72,80,48,32,96,192 - }; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h= 9 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08r[1198] U8G_SECTION(".progmem.u8g_font_timR08r") = { - 0,12,17,254,252,7,1,147,3,56,32,127,254,8,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=14 x= 2 y= 8 dx=13 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10[3359] U8G_SECTION(".progmem.u8g_font_timR10") = { - 0,17,24,254,250,10,2,4,4,92,32,255,253,14,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,1,10,10,5,2,253,128, - 128,0,128,128,128,128,128,128,128,6,9,9,7,0,255,4, - 124,204,144,144,160,228,120,128,7,10,10,8,0,0,28,52, - 32,32,248,32,32,32,226,188,5,7,7,7,1,1,136,112, - 136,136,136,112,136,7,10,10,7,0,0,238,68,108,40,124, - 16,124,16,16,56,1,10,10,3,1,0,128,128,128,128,0, - 0,128,128,128,128,5,13,13,7,1,253,56,88,64,96,112, - 152,136,200,112,48,16,208,224,3,2,2,5,1,8,160,160, - 10,10,20,12,1,0,30,0,97,128,78,128,146,64,144,64, - 144,64,146,64,76,128,97,128,30,0,3,6,6,4,0,4, - 224,32,160,224,0,224,6,6,6,7,0,0,36,72,144,144, - 72,36,7,4,4,9,1,2,254,2,2,2,3,1,1,4, - 0,3,224,10,10,20,12,1,0,30,0,97,128,92,128,146, - 64,156,64,148,64,146,64,82,128,97,128,30,0,4,1,1, - 4,0,8,240,4,4,4,6,1,6,96,144,144,96,7,7, - 7,8,0,0,16,16,254,16,16,0,254,4,6,6,4,0, - 4,96,144,16,32,64,240,4,6,6,4,0,4,96,144,32, - 16,144,96,3,3,3,5,1,8,32,96,128,7,10,10,7, - 0,253,204,68,68,68,68,108,118,64,64,96,7,13,13,7, - 0,253,62,116,244,244,244,116,52,20,20,20,20,20,20,1, - 2,2,4,2,3,128,128,3,3,3,5,1,253,64,32,192, - 3,6,6,4,0,4,64,192,64,64,64,224,4,6,6,5, - 0,4,96,144,144,96,0,240,6,6,6,7,1,0,144,72, - 36,36,72,144,10,10,20,10,0,0,65,0,194,0,66,0, - 68,0,68,128,233,128,10,128,20,128,23,192,32,128,10,10, - 20,10,0,0,65,0,194,0,66,0,68,0,69,128,234,64, - 8,64,16,128,17,0,35,192,10,10,20,10,0,0,97,0, - 146,0,34,0,20,0,148,128,105,128,10,128,20,128,23,192, - 32,128,5,10,10,6,0,253,32,32,0,32,32,64,128,136, - 136,112,9,14,28,11,1,0,16,0,24,0,4,0,0,0, - 8,0,8,0,20,0,20,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,14,28,11,1,0,4,0,12,0,16,0, - 0,0,8,0,8,0,20,0,20,0,34,0,34,0,62,0, - 65,0,65,0,227,128,9,14,28,11,1,0,8,0,28,0, - 34,0,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 62,0,65,0,65,0,227,128,9,14,28,11,1,0,18,0, - 42,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,13,26,11,1,0, - 36,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,14,28,11,1,0, - 24,0,36,0,24,0,0,0,8,0,8,0,20,0,20,0, - 34,0,34,0,62,0,65,0,65,0,227,128,11,10,20,13, - 1,0,31,224,12,32,20,0,20,64,39,192,36,64,60,0, - 68,32,68,32,239,224,8,13,13,10,1,253,61,99,65,129, - 128,128,128,193,98,60,8,4,24,7,14,14,9,1,0,32, - 48,8,0,254,66,64,68,124,68,64,66,66,254,7,14,14, - 9,1,0,4,12,16,0,254,66,64,68,124,68,64,66,66, - 254,7,14,14,9,1,0,16,56,68,0,254,66,64,68,124, - 68,64,66,66,254,7,13,13,9,1,0,36,36,0,254,66, - 64,68,124,68,64,66,66,254,3,14,14,5,1,0,128,192, - 32,0,224,64,64,64,64,64,64,64,64,224,3,14,14,5, - 1,0,32,96,128,0,224,64,64,64,64,64,64,64,64,224, - 5,14,14,5,0,0,32,112,136,0,112,32,32,32,32,32, - 32,32,32,112,3,13,13,5,1,0,160,160,0,224,64,64, - 64,64,64,64,64,64,224,9,10,20,10,0,0,254,0,35, - 0,33,0,32,128,248,128,32,128,32,128,33,0,35,0,254, - 0,9,14,28,11,1,0,18,0,42,0,36,0,0,0,227, - 128,97,0,81,0,89,0,73,0,77,0,69,0,69,0,67, - 0,227,0,8,14,14,10,1,0,32,48,8,0,60,102,66, - 129,129,129,129,66,102,60,8,14,14,10,1,0,4,12,16, - 0,60,102,66,129,129,129,129,66,102,60,8,14,14,10,1, - 0,16,56,68,0,60,102,66,129,129,129,129,66,102,60,8, - 14,14,10,1,0,36,84,72,0,60,102,66,129,129,129,129, - 66,102,60,8,13,13,10,1,0,36,36,0,60,102,66,129, - 129,129,129,66,102,60,7,7,7,8,1,0,130,68,40,16, - 40,68,130,9,12,24,10,0,255,0,128,31,0,49,0,35, - 0,68,128,76,128,72,128,80,128,49,0,99,0,94,0,128, - 0,8,14,14,10,1,0,32,48,8,0,231,66,66,66,66, - 66,66,66,102,60,8,14,14,10,1,0,4,12,16,0,231, - 66,66,66,66,66,66,66,102,60,8,14,14,10,1,0,16, - 56,68,0,231,66,66,66,66,66,66,66,102,60,8,13,13, - 10,1,0,36,36,0,231,66,66,66,66,66,66,66,102,60, - 9,14,28,9,0,0,2,0,6,0,8,0,0,0,227,128, - 65,0,34,0,34,0,20,0,8,0,8,0,8,0,8,0, - 28,0,6,10,10,8,1,0,224,64,120,76,68,68,76,120, - 64,224,6,10,10,7,0,0,56,108,68,72,112,88,76,68, - 84,216,6,11,11,7,1,0,64,96,16,0,112,200,24,104, - 136,200,116,6,11,11,7,1,0,8,24,32,0,112,200,24, - 104,136,200,116,6,11,11,7,1,0,32,112,136,0,112,200, - 24,104,136,200,116,6,11,11,7,1,0,72,168,144,0,112, - 200,24,104,136,200,116,6,10,10,7,1,0,80,80,0,112, - 200,24,104,136,200,116,6,11,11,7,1,0,48,72,48,0, - 112,200,24,104,136,200,116,9,7,14,11,1,0,127,0,201, - 128,31,0,104,0,136,0,204,128,119,0,6,10,10,7,1, - 253,112,200,128,128,128,196,120,32,16,96,6,11,11,7,1, - 0,64,96,16,0,112,136,248,128,128,196,120,6,11,11,7, - 1,0,8,24,32,0,112,136,248,128,128,196,120,6,11,11, - 7,1,0,32,112,136,0,112,136,248,128,128,196,120,6,10, - 10,7,1,0,80,80,0,112,136,248,128,128,196,120,3,11, - 11,3,0,0,128,192,32,0,192,64,64,64,64,64,224,3, - 11,11,3,0,0,32,96,128,0,192,64,64,64,64,64,224, - 5,11,11,3,255,0,32,112,136,0,96,32,32,32,32,32, - 112,3,10,10,3,0,0,160,160,0,192,64,64,64,64,64, - 224,5,10,10,7,1,0,216,96,144,120,216,136,136,136,216, - 112,7,11,11,7,0,0,36,84,72,0,216,108,68,68,68, - 68,238,5,11,11,7,1,0,64,96,16,0,112,216,136,136, - 136,216,112,5,11,11,7,1,0,16,48,64,0,112,216,136, - 136,136,216,112,5,11,11,7,1,0,32,112,136,0,112,216, - 136,136,136,216,112,5,11,11,7,1,0,72,168,144,0,112, - 216,136,136,136,216,112,5,10,10,7,1,0,80,80,0,112, - 216,136,136,136,216,112,7,7,7,8,1,0,16,16,0,254, - 0,16,16,7,9,9,7,0,255,2,60,108,68,68,68,108, - 120,128,7,11,11,7,0,0,32,48,8,0,204,68,68,68, - 68,108,54,7,11,11,7,0,0,8,24,32,0,204,68,68, - 68,68,108,54,7,11,11,7,0,0,16,56,68,0,204,68, - 68,68,68,108,54,7,10,10,7,0,0,40,40,0,204,68, - 68,68,68,108,54,7,14,14,7,0,253,4,12,16,0,238, - 68,68,40,40,16,48,32,160,192,6,13,13,7,0,253,192, - 64,64,88,108,68,68,68,108,88,64,64,224,7,13,13,7, - 0,253,40,40,0,238,68,68,40,40,16,48,32,160,192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=13 x= 2 y= 8 dx=13 dy= 0 ascent=11 len=24 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10r[1571] U8G_SECTION(".progmem.u8g_font_timR10r") = { - 0,17,24,254,250,10,2,4,4,92,32,127,253,11,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=16 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=30 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12[3905] U8G_SECTION(".progmem.u8g_font_timR12") = { - 0,19,26,254,249,11,2,36,5,11,32,255,252,15,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,1,11, - 11,5,2,253,128,128,0,0,128,128,128,128,128,128,128,7, - 12,12,8,0,254,4,4,60,74,138,136,144,146,84,56,32, - 32,8,11,11,8,0,0,12,18,34,32,32,252,16,16,113, - 145,110,8,9,9,8,0,1,153,102,66,129,129,129,66,102, - 153,9,11,22,8,255,0,227,128,65,0,34,0,20,0,8, - 0,62,0,8,0,62,0,8,0,8,0,28,0,1,11,11, - 3,0,0,128,128,128,128,128,0,128,128,128,128,128,7,14, - 14,8,0,253,56,68,76,32,80,136,132,66,34,20,8,100, - 68,56,4,2,2,6,1,9,144,144,11,11,22,13,0,0, - 14,0,49,128,64,64,78,64,145,32,144,32,144,32,81,64, - 78,64,49,128,14,0,4,6,6,5,0,5,96,16,112,144, - 80,240,7,7,7,8,0,0,18,36,72,144,72,36,18,8, - 5,5,9,0,0,255,1,1,1,1,4,1,1,5,0,4, - 240,11,11,22,13,0,0,14,0,49,128,64,64,78,64,137, - 32,142,32,138,32,74,64,73,64,49,128,14,0,5,1,1, - 6,0,9,248,5,5,5,7,1,6,112,136,136,136,112,7, - 9,9,9,1,0,16,16,16,254,16,16,16,0,254,5,7, - 7,5,0,4,112,136,8,16,32,72,248,6,7,7,5,255, - 4,56,68,4,24,4,132,120,3,3,3,6,2,8,32,64, - 128,8,11,11,8,0,253,198,66,66,66,66,66,71,122,64, - 64,64,7,15,15,8,0,252,62,116,244,244,244,116,52,20, - 20,20,20,20,20,20,20,1,2,2,4,1,4,128,128,4, - 4,4,6,0,252,32,112,16,224,3,7,7,5,1,4,64, - 192,64,64,64,64,224,4,6,6,5,0,5,96,144,144,144, - 96,240,7,7,7,8,0,0,144,72,36,18,36,72,144,11, - 11,22,13,1,0,64,128,193,0,67,0,66,0,68,64,76, - 192,233,64,25,64,18,64,39,224,64,64,12,11,22,13,0, - 0,64,128,193,0,67,0,66,0,68,224,77,16,232,16,24, - 32,16,64,32,144,65,240,13,11,22,13,255,0,56,32,68, - 64,4,192,24,128,5,16,135,48,122,80,6,80,4,144,9, - 248,8,16,5,11,11,7,1,253,32,32,0,0,32,32,64, - 128,136,136,112,12,15,30,12,0,0,8,0,4,0,2,0, - 0,0,4,0,6,0,10,0,11,0,17,0,17,128,32,128, - 63,128,64,192,64,64,224,240,12,15,30,12,0,0,1,0, - 2,0,4,0,0,0,4,0,6,0,10,0,11,0,17,0, - 17,128,32,128,63,128,64,192,64,64,224,240,12,15,30,12, - 0,0,4,0,10,0,17,0,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 12,14,28,12,0,0,13,0,22,0,0,0,4,0,6,0, - 10,0,11,0,17,0,17,128,32,128,63,128,64,192,64,64, - 224,240,12,14,28,12,0,0,9,0,9,0,0,0,4,0, - 6,0,10,0,11,0,17,0,17,128,32,128,63,128,64,192, - 64,64,224,240,12,14,28,12,0,0,6,0,9,0,9,0, - 6,0,6,0,10,0,11,0,17,0,17,128,32,128,63,128, - 64,192,64,64,224,240,14,11,22,15,0,0,7,248,3,8, - 5,8,9,0,9,16,17,240,31,16,33,0,33,0,65,4, - 243,248,10,15,30,11,0,252,15,64,48,192,64,64,128,64, - 128,0,128,0,128,0,128,0,64,64,49,128,14,0,4,0, - 14,0,2,0,28,0,9,15,30,10,0,0,32,0,16,0, - 8,0,0,0,255,0,65,0,64,0,64,0,66,0,126,0, - 66,0,64,0,64,0,64,128,255,0,9,15,30,10,0,0, - 2,0,4,0,8,0,0,0,255,0,65,0,65,0,64,0, - 66,0,126,0,66,0,64,0,64,0,64,128,255,0,9,15, - 30,10,0,0,8,0,20,0,34,0,0,0,255,0,65,0, - 64,0,64,0,66,0,126,0,66,0,64,0,64,0,64,128, - 255,0,9,14,28,10,0,0,36,0,36,0,0,0,255,0, - 65,0,64,0,64,0,66,0,126,0,66,0,64,0,64,0, - 64,128,255,0,4,15,15,5,255,0,128,64,32,0,112,32, - 32,32,32,32,32,32,32,32,112,5,15,15,5,0,0,8, - 16,32,0,224,64,64,64,64,64,64,64,64,64,224,5,15, - 15,5,255,0,32,80,136,0,112,32,32,32,32,32,32,32, - 32,32,112,3,14,14,5,0,0,160,160,0,224,64,64,64, - 64,64,64,64,64,64,224,10,11,22,12,1,0,252,0,67, - 0,64,128,64,64,64,64,248,64,64,64,64,64,64,128,67, - 0,252,0,10,14,28,12,0,0,13,0,22,0,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,15,30,12,1,0,32,0,16,0,8, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,12,1,0,2, - 0,4,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,15,30, - 12,1,0,8,0,20,0,34,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,12,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,14,28,12,1,0,34,0,34,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,7,7,9,1,0,130,68,40,16,40, - 68,130,11,13,26,12,0,255,0,64,14,64,49,128,65,64, - 130,32,132,32,132,32,136,32,144,32,80,64,49,128,78,0, - 64,0,10,15,30,12,0,0,16,0,8,0,4,0,0,0, - 225,192,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,0,0,1,0,2,0, - 4,0,0,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,0,0, - 4,0,10,0,17,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,14, - 28,12,0,0,18,0,18,0,0,0,225,192,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 11,15,30,12,0,0,0,128,1,0,2,0,0,0,224,224, - 64,64,32,128,17,0,17,0,10,0,4,0,4,0,4,0, - 4,0,14,0,8,11,11,9,0,0,224,64,124,66,65,65, - 66,124,64,64,224,7,11,11,8,0,0,56,68,68,68,72, - 88,68,66,66,82,204,7,12,12,7,1,0,64,32,16,0, - 112,136,136,56,200,136,154,100,7,12,12,7,1,0,8,16, - 32,0,112,136,136,56,200,136,154,100,7,12,12,7,1,0, - 32,80,136,0,112,136,136,56,200,136,154,100,7,11,11,7, - 1,0,104,176,0,112,136,136,56,200,136,154,100,7,11,11, - 7,1,0,72,72,0,112,136,136,56,200,136,154,100,7,12, - 12,7,1,0,32,80,80,32,112,136,136,56,200,136,154,100, - 9,8,16,11,1,0,115,0,140,128,136,128,63,128,200,0, - 136,0,156,128,99,0,6,12,12,7,0,252,56,68,132,128, - 128,128,68,56,16,56,8,112,6,12,12,7,0,0,64,32, - 16,0,56,68,132,252,128,128,68,56,6,12,12,7,0,0, - 4,8,16,0,56,68,132,252,128,128,68,56,6,12,12,7, - 0,0,16,40,68,0,56,68,132,252,128,128,68,56,6,11, - 11,7,0,0,72,72,0,56,68,132,252,128,128,68,56,3, - 12,12,5,0,0,128,64,32,0,64,192,64,64,64,64,64, - 224,3,12,12,5,0,0,32,64,128,0,64,192,64,64,64, - 64,64,224,5,12,12,5,255,0,32,80,136,0,32,96,32, - 32,32,32,32,112,3,11,11,5,0,0,160,160,0,64,192, - 64,64,64,64,64,224,7,11,11,8,0,0,108,48,200,60, - 68,130,130,130,130,68,56,8,11,11,8,255,0,52,88,0, - 92,230,66,66,66,66,66,231,7,12,12,8,0,0,32,16, - 8,0,56,68,130,130,130,130,68,56,7,12,12,8,0,0, - 4,8,16,0,56,68,130,130,130,130,68,56,7,12,12,8, - 0,0,16,40,68,0,56,68,130,130,130,130,68,56,7,11, - 11,8,0,0,52,88,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,72,72,0,56,68,130,130,130,130,68,56, - 9,9,18,9,255,0,8,0,8,0,0,0,0,0,255,128, - 0,0,0,0,8,0,8,0,7,12,12,8,0,254,2,2, - 60,68,138,146,146,162,100,56,64,64,8,12,12,8,255,0, - 32,16,8,0,198,66,66,66,66,66,70,59,8,12,12,8, - 255,0,4,8,16,0,198,66,66,66,66,66,70,59,8,12, - 12,8,255,0,16,40,68,0,198,66,66,66,66,66,70,59, - 8,11,11,8,255,0,36,36,0,198,66,66,66,66,66,70, - 59,8,16,16,8,255,252,2,4,8,0,247,66,66,36,36, - 20,8,8,16,16,160,192,8,15,15,8,255,252,64,192,64, - 92,98,65,65,65,65,98,92,64,64,64,224,8,15,15,8, - 255,252,36,36,0,247,66,98,36,52,20,24,8,16,16,160, - 192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 2 y= 8 dx=16 dy= 0 ascent=12 len=28 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12r[1784] U8G_SECTION(".progmem.u8g_font_timR12r") = { - 0,19,26,254,249,11,2,36,5,11,32,127,252,12,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=18 x= 2 y=10 dx=18 dy= 0 ascent=18 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14[4577] U8G_SECTION(".progmem.u8g_font_timR14") = { - 0,22,29,253,249,13,2,131,6,16,32,255,252,18,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,5, - 0,1,2,13,13,4,1,252,192,192,0,0,128,128,128,192, - 192,192,192,192,192,7,14,14,9,1,253,6,4,60,110,200, - 216,208,208,240,114,124,64,192,128,10,13,26,11,0,0,15, - 0,25,128,25,128,24,0,24,0,24,0,126,0,24,0,24, - 0,16,0,120,64,191,192,231,128,9,7,14,11,1,3,221, - 128,247,128,99,0,65,0,99,0,247,128,221,128,8,13,13, - 9,0,0,247,98,98,118,52,52,126,24,126,24,24,24,126, - 1,13,13,3,1,0,128,128,128,128,128,0,0,0,128,128, - 128,128,128,8,16,16,10,1,253,60,102,102,112,56,124,142, - 199,227,113,62,28,14,102,102,60,5,2,2,5,0,10,216, - 216,13,13,26,15,1,0,15,128,48,96,64,16,71,144,136, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,5,0,5,96,144,16,112,144,232,0,248,8, - 7,7,10,1,1,17,51,102,204,102,51,17,9,5,10,11, - 1,2,255,128,255,128,1,128,1,128,1,128,5,2,2,6, - 0,3,248,248,13,13,26,15,1,0,15,128,48,96,64,16, - 95,16,136,136,136,136,143,8,137,8,136,136,92,208,64,16, - 48,96,15,128,5,2,2,5,0,10,248,248,5,5,5,7, - 1,8,112,136,136,136,112,8,11,11,10,1,0,24,24,24, - 255,255,24,24,24,0,255,255,5,8,8,6,0,5,112,152, - 24,16,32,32,64,248,5,8,8,6,0,5,112,136,24,112, - 24,8,136,112,4,3,3,4,0,10,48,96,128,9,13,26, - 9,255,252,231,0,99,0,99,0,99,0,99,0,99,0,99, - 0,119,0,123,128,64,0,64,0,96,0,96,0,7,17,17, - 8,1,252,62,116,244,244,244,244,244,116,20,20,20,20,20, - 20,20,20,20,2,2,2,4,1,4,192,192,4,5,5,6, - 1,252,32,32,16,176,112,3,8,8,6,1,5,64,192,64, - 64,64,64,64,224,5,8,8,6,0,5,112,216,136,136,216, - 112,0,248,8,7,7,10,1,1,136,204,102,51,102,204,136, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 68,64,76,192,233,64,27,64,50,64,39,224,96,64,64,64, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 69,192,78,96,232,96,24,64,48,128,32,128,97,0,67,224, - 13,13,26,13,255,0,112,32,136,96,24,64,112,192,25,128, - 9,16,139,48,114,80,6,208,12,144,9,248,24,16,16,16, - 6,13,13,8,1,252,48,48,0,16,16,48,96,96,192,204, - 140,196,120,13,17,34,14,1,0,24,0,12,0,2,0,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,0,192,1,128,2,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,17,34,14,1,0,2,0,7,0,13,128,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,12,128,31,128,19,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,16,32,14,1,0,13,128,13,128,0,0,2, - 0,7,0,7,0,5,0,13,128,9,128,25,192,16,192,31, - 192,48,224,32,96,96,112,240,248,13,18,36,14,1,0,6, - 0,9,0,9,0,6,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,15,13,26,17,1,0,15,252,7,140,5,132,5, - 128,13,128,9,136,25,248,31,136,17,128,49,128,33,130,97, - 134,247,254,11,17,34,13,1,252,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,4,0,2,0,22,0,14,0,9,17,34,12,1, - 0,48,0,24,0,4,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,17,34,12,1,0,3,0,6,0,8,0,0, - 0,255,128,97,128,96,128,96,0,96,0,97,0,127,0,97, - 0,96,0,96,0,96,128,97,128,255,128,9,17,34,12,1, - 0,8,0,28,0,54,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,16,32,12,1,0,54,0,54,0,0,0,255, - 128,97,128,96,128,96,0,96,0,97,0,127,0,97,0,96, - 0,96,0,96,128,97,128,255,128,6,17,17,6,255,0,192, - 96,16,0,60,24,24,24,24,24,24,24,24,24,24,24,60, - 6,17,17,6,1,0,12,24,32,0,240,96,96,96,96,96, - 96,96,96,96,96,96,240,5,17,17,6,1,0,32,112,216, - 0,240,96,96,96,96,96,96,96,96,96,96,96,240,5,16, - 16,6,1,0,216,216,0,240,96,96,96,96,96,96,96,96, - 96,96,96,240,12,13,26,13,0,0,127,128,49,192,48,96, - 48,96,48,48,48,48,252,48,48,48,48,48,48,96,48,96, - 49,192,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,224,112,96,32,112,32,120,32,92,32,76,32,78,32, - 71,32,67,160,65,224,64,224,64,96,224,32,12,17,34,14, - 1,0,48,0,24,0,4,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,0,192,1,128,2,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,17,34,14, - 1,0,4,0,14,0,27,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,16,32,14, - 1,0,27,0,27,0,0,0,15,0,48,192,96,96,96,96, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 15,0,8,7,7,10,1,1,195,102,60,24,60,102,195,12, - 15,30,14,1,255,0,48,15,96,48,192,96,224,97,160,195, - 48,195,48,198,48,204,48,204,48,88,96,112,96,48,192,111, - 0,192,0,11,17,34,14,2,0,48,0,24,0,4,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,17,34,14,2, - 0,0,192,1,128,2,0,0,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,112,192,57, - 128,31,0,11,17,34,14,2,0,4,0,14,0,27,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,16,32,14,2, - 0,27,0,27,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,112,192,57,128,31, - 0,12,17,34,14,1,0,0,192,1,128,2,0,0,0,240, - 240,112,96,48,192,24,128,25,0,15,0,6,0,6,0,6, - 0,6,0,6,0,6,0,15,0,9,13,26,10,1,0,240, - 0,96,0,96,0,127,0,99,128,97,128,97,128,97,128,99, - 0,126,0,96,0,96,0,240,0,8,13,13,9,0,0,28, - 50,99,99,102,110,124,102,99,99,107,111,238,7,13,13,9, - 1,0,192,96,16,0,120,200,204,28,108,204,204,252,102,7, - 13,13,9,1,0,12,24,32,0,120,200,204,28,108,204,204, - 252,102,7,13,13,9,1,0,16,56,108,0,120,200,204,28, - 108,204,204,252,102,7,13,13,9,1,0,100,252,152,0,120, - 200,204,28,108,204,204,252,102,7,12,12,9,1,0,108,108, - 0,120,200,204,28,108,204,204,252,102,7,14,14,9,1,0, - 48,72,72,48,0,120,200,204,28,108,204,204,252,102,11,9, - 18,12,0,0,123,192,206,96,204,32,31,224,108,0,204,0, - 204,0,254,96,99,192,7,13,13,8,0,252,60,102,192,192, - 192,192,192,102,60,16,8,88,56,7,13,13,8,0,0,192, - 96,16,0,60,102,194,254,192,192,192,102,60,7,13,13,8, - 0,0,6,12,16,0,60,102,194,254,192,192,192,102,60,7, - 13,13,8,0,0,16,56,108,0,60,102,194,254,192,192,192, - 102,60,7,12,12,8,0,0,108,108,0,60,102,194,254,192, - 192,192,102,60,6,13,13,5,254,0,192,96,16,0,24,56, - 24,24,24,24,24,24,60,6,13,13,5,0,0,12,24,32, - 0,96,224,96,96,96,96,96,96,240,5,13,13,5,0,0, - 32,112,216,0,96,224,96,96,96,96,96,96,240,5,12,12, - 5,0,0,216,216,0,96,224,96,96,96,96,96,96,240,8, - 13,13,9,0,0,96,54,56,76,62,102,195,195,195,195,195, - 102,60,9,13,26,10,0,0,50,0,126,0,76,0,0,0, - 102,0,239,0,115,0,99,0,99,0,99,0,99,0,99,0, - 243,128,8,13,13,9,0,0,48,24,4,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,0,6,12,16,0,60, - 102,195,195,195,195,195,102,60,8,13,13,9,0,0,16,56, - 108,0,60,102,195,195,195,195,195,102,60,8,13,13,9,0, - 0,50,126,76,0,60,102,195,195,195,195,195,102,60,8,12, - 12,9,0,0,108,108,0,60,102,195,195,195,195,195,102,60, - 8,8,8,10,1,1,24,24,0,255,255,0,24,24,8,11, - 11,9,0,255,1,63,102,207,203,219,211,243,102,124,192,9, - 13,26,10,0,0,96,0,48,0,8,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,6,0,12,0,16,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,8,0,28,0,54,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 12,24,10,0,0,54,0,54,0,0,0,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,119,0,59,128,8,17,17, - 8,255,252,3,6,8,0,243,99,114,50,54,28,28,12,8, - 24,16,240,224,8,17,17,9,0,252,96,224,96,96,110,119, - 99,99,99,99,99,118,124,96,96,96,240,8,16,16,9,0, - 252,54,54,0,243,99,114,50,54,28,28,12,8,24,16,240, - 224}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=18 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14r[2156] U8G_SECTION(".progmem.u8g_font_timR14r") = { - 0,22,29,253,249,13,2,131,6,16,32,127,252,14,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=14 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18[6850] U8G_SECTION(".progmem.u8g_font_timR18") = { - 0,29,37,252,247,17,4,9,8,241,32,255,250,23,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,1,3,17, - 17,8,3,251,96,96,0,0,0,64,64,64,64,224,224,224, - 224,224,224,224,64,9,16,32,12,1,254,2,0,2,0,15, - 0,51,128,101,128,196,0,196,0,200,0,200,0,200,0,208, - 0,112,128,113,0,62,0,64,0,64,0,10,17,34,12,1, - 0,15,0,25,128,49,128,48,0,48,0,48,0,48,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,64,190, - 192,231,128,11,12,24,13,1,3,192,96,238,224,127,192,49, - 128,96,192,96,192,96,192,96,192,49,128,127,192,238,224,192, - 96,14,17,34,14,0,0,248,124,112,48,48,32,24,96,24, - 64,12,192,12,128,7,128,3,0,31,224,3,0,31,224,3, - 0,3,0,3,0,3,0,15,192,2,17,17,6,2,0,192, - 192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192, - 8,20,20,12,2,253,28,38,70,96,112,56,60,78,135,131, - 195,226,116,56,28,14,6,98,100,56,6,2,2,8,1,14, - 204,204,17,17,51,19,1,0,7,240,0,28,28,0,48,6, - 0,97,227,0,71,49,0,196,25,128,140,0,128,136,0,128, - 136,0,128,136,0,128,140,0,128,196,25,128,71,113,0,97, - 195,0,48,6,0,28,28,0,7,240,0,7,9,9,8,0, - 8,120,204,12,124,204,204,118,0,254,9,10,20,13,1,1, - 8,128,25,128,51,0,102,0,204,0,204,0,102,0,51,0, - 25,128,8,128,11,7,14,15,2,1,255,224,255,224,0,96, - 0,96,0,96,0,96,0,96,6,2,2,8,0,5,252,252, - 17,17,51,19,1,0,7,240,0,28,28,0,48,6,0,103, - 227,0,66,49,0,194,17,128,130,16,128,130,48,128,131,224, - 128,130,64,128,130,32,128,194,49,128,71,25,0,96,3,0, - 48,6,0,28,28,0,7,240,0,7,2,2,8,1,14,254, - 254,7,7,7,9,1,10,56,68,130,130,130,68,56,10,11, - 22,14,2,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,0,0,255,192,255,192,6,10,10,7,0,7, - 56,76,140,12,8,16,48,32,68,252,6,10,10,7,0,7, - 56,76,140,8,48,8,12,140,136,112,5,4,4,8,2,13, - 24,56,112,192,11,17,34,13,1,251,225,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,113,192,126,192, - 92,224,64,0,192,0,192,0,224,0,64,0,9,21,42,11, - 1,252,31,128,57,0,121,0,121,0,249,0,249,0,249,0, - 121,0,121,0,57,0,25,0,9,0,9,0,9,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,2,3,3,6, - 2,5,192,192,192,6,6,6,8,1,250,16,48,60,12,204, - 120,5,10,10,7,1,7,32,96,160,32,32,32,32,32,32, - 248,7,9,9,8,0,8,56,68,198,198,198,68,56,0,254, - 9,10,20,12,2,1,136,0,204,0,102,0,51,0,25,128, - 25,128,51,0,102,0,204,0,136,0,16,17,34,18,1,0, - 32,24,96,24,160,48,32,96,32,96,32,192,32,192,33,132, - 35,12,251,28,6,20,6,36,12,100,24,68,24,255,48,4, - 48,4,15,17,34,18,1,0,32,24,96,24,160,48,32,96, - 32,96,32,192,32,192,33,156,35,38,251,70,6,6,6,4, - 12,8,24,24,24,16,48,34,48,126,17,17,51,18,0,0, - 56,12,0,76,12,0,140,24,0,8,48,0,48,48,0,8, - 96,0,12,96,0,140,194,0,137,134,0,113,142,0,3,10, - 0,3,18,0,6,50,0,12,34,0,12,127,128,24,2,0, - 24,2,0,8,17,17,11,1,251,12,12,0,0,8,8,24, - 24,56,48,112,224,195,195,193,99,62,17,22,66,17,0,0, - 12,0,0,14,0,0,7,0,0,1,128,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,22,66,17,0,0,0,24,0,0,56,0,0,112, - 0,0,192,0,0,0,0,0,128,0,1,192,0,1,192,0, - 1,96,0,2,96,0,2,48,0,6,48,0,4,48,0,4, - 24,0,12,24,0,15,248,0,8,12,0,24,12,0,16,12, - 0,16,6,0,48,6,0,252,31,128,17,22,66,17,0,0, - 1,128,0,3,192,0,6,96,0,4,32,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,21,63,17,0,0,3,32,0,7,224,0,4,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,17,21,63,17,0,0,6,96,0, - 6,96,0,0,0,0,0,0,0,0,128,0,1,192,0,1, - 192,0,1,96,0,2,96,0,2,48,0,6,48,0,4,48, - 0,4,24,0,12,24,0,15,248,0,8,12,0,24,12,0, - 16,12,0,16,6,0,48,6,0,252,31,128,17,23,69,17, - 0,0,1,192,0,2,32,0,2,32,0,2,32,0,1,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,21,17,51,22,0,0,3,255,240, - 0,240,48,1,176,16,1,48,16,3,48,0,2,48,0,6, - 48,64,4,48,64,4,63,192,12,48,64,15,240,64,8,48, - 0,24,48,0,16,48,8,48,48,8,32,48,24,248,255,248, - 14,23,46,16,1,250,7,228,28,60,56,12,96,4,96,4, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,4,56,8,30,56,7,224,1,0,3,0,3,192,0,192, - 12,192,7,128,13,22,44,15,1,0,24,0,28,0,14,0, - 3,0,0,0,255,240,48,48,48,16,48,16,48,0,48,0, - 48,64,48,64,63,192,48,64,48,64,48,0,48,0,48,8, - 48,8,48,24,255,248,13,22,44,15,1,0,0,96,0,224, - 1,192,3,0,0,0,255,240,48,48,48,16,48,16,48,0, - 48,0,48,64,48,64,63,192,48,64,48,64,48,0,48,0, - 48,8,48,8,48,24,255,248,13,22,44,15,1,0,6,0, - 15,0,25,128,16,128,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,13,21,42,15,1,0, - 25,128,25,128,0,0,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,7,22,22,8,0,0, - 192,224,112,24,0,126,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,126,7,22,22,8,1,0,6,14,28,48, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,6,22,22,8,1,0,48,120,204,132,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,6,21, - 21,8,1,0,204,204,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,16,17,34,17,0,0,127, - 224,24,56,24,28,24,6,24,6,24,3,24,3,255,3,255, - 3,24,3,24,3,24,3,24,6,24,6,24,28,24,56,127, - 224,16,21,42,18,1,0,3,32,7,224,4,192,0,0,240, - 31,48,4,56,4,56,4,44,4,38,4,38,4,35,4,33, - 132,33,132,32,196,32,100,32,100,32,52,32,28,32,28,248, - 12,16,22,44,18,1,0,12,0,14,0,7,0,1,128,0, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,16,22,44,18,1,0,0,48,0,112,0,224,1, - 128,0,0,7,224,28,56,56,28,96,6,96,6,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,96,6,96,6,56, - 28,28,56,7,224,16,22,44,18,1,0,1,128,3,192,6, - 96,4,32,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,3,32,7, - 224,4,192,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,6,96,6, - 96,0,0,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,10,9,18,12,1,1,192,192,97, - 128,51,0,30,0,12,0,30,0,51,0,97,128,192,192,16, - 19,38,18,1,255,0,4,7,228,28,56,56,28,96,38,96, - 70,192,67,192,131,192,131,193,3,193,3,194,3,194,3,100, - 6,104,6,56,28,28,56,39,224,32,0,16,22,44,18,1, - 0,6,0,7,0,3,128,0,192,0,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,16,22,44, - 18,1,0,0,48,0,112,0,224,1,128,0,0,252,31,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,8,24,8,28,48,7,224,16, - 22,44,18,1,0,1,128,3,192,6,96,4,32,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,21,42,18,1,0,6,96,6,96,0,0,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,22,44,18,1,0,0,48,0,112,0,224,1,128,0, - 0,252,63,48,12,56,8,24,24,28,16,12,48,6,32,6, - 96,3,64,3,192,1,128,1,128,1,128,1,128,1,128,1, - 128,7,224,13,17,34,15,1,0,252,0,48,0,48,0,48, - 0,63,192,48,112,48,48,48,24,48,24,48,24,48,48,48, - 112,63,192,48,0,48,0,48,0,252,0,10,17,34,12,1, - 0,30,0,51,0,97,128,97,128,97,128,97,128,99,0,108, - 0,103,0,99,128,97,128,97,192,96,192,96,192,108,192,108, - 128,231,0,9,17,34,11,1,0,96,0,112,0,56,0,12, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,17,34,11,1, - 0,3,0,7,0,14,0,24,0,0,0,62,0,103,0,99, - 0,3,0,15,0,59,0,99,0,195,0,195,0,199,0,251, - 0,113,128,9,17,34,11,1,0,12,0,30,0,51,0,33, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,16,32,11,1, - 0,50,0,126,0,76,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,9,16,32,11,1,0,102,0,102,0,0,0,0,0,62, - 0,103,0,99,0,3,0,15,0,59,0,99,0,195,0,195, - 0,199,0,251,0,113,128,9,18,36,11,1,0,28,0,34, - 0,34,0,34,0,28,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,14,12,24,16,1,0,60,240,103,152,99,12,3,12,15, - 252,59,0,99,0,195,0,195,0,199,132,251,248,112,240,9, - 18,36,11,1,250,31,0,99,128,65,128,192,0,192,0,192, - 0,192,0,192,0,224,0,112,128,127,0,30,0,8,0,24, - 0,30,0,6,0,102,0,60,0,9,17,34,11,1,0,96, - 0,112,0,56,0,12,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,17,34,11,1,0,3,0,7,0,14,0,24,0,0, - 0,30,0,99,0,65,128,193,128,255,128,192,0,192,0,192, - 0,224,0,112,128,127,0,30,0,9,17,34,11,1,0,12, - 0,30,0,51,0,33,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,16,32,11,1,0,51,0,51,0,0,0,0,0,30, - 0,99,0,65,128,193,128,255,128,192,0,192,0,192,0,224, - 0,112,128,127,0,30,0,6,17,17,6,255,0,192,224,112, - 24,0,56,24,24,24,24,24,24,24,24,24,24,60,5,17, - 17,6,1,0,24,56,112,192,0,96,224,96,96,96,96,96, - 96,96,96,96,240,6,17,17,6,0,0,48,120,204,132,0, - 48,112,48,48,48,48,48,48,48,48,48,120,6,16,16,6, - 0,0,204,204,0,0,112,48,48,48,48,48,48,48,48,48, - 48,120,10,17,34,12,1,0,192,0,113,128,30,0,60,0, - 198,0,31,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,11,16,32,13,1,0, - 25,0,63,0,38,0,0,0,103,0,239,128,113,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,241,224, - 10,17,34,12,1,0,96,0,112,0,56,0,12,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,17,34,12,1,0,3,0, - 7,0,14,0,24,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 10,17,34,12,1,0,12,0,30,0,51,0,33,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,16,32,12,1,0,25,0, - 63,0,38,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,16, - 32,12,1,0,51,0,51,0,0,0,0,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 115,128,30,0,10,10,20,12,1,1,12,0,12,0,0,0, - 0,0,255,192,255,192,0,0,0,0,12,0,12,0,10,14, - 28,12,1,255,0,192,30,192,115,128,99,128,198,192,196,192, - 204,192,200,192,216,192,208,192,113,128,115,128,222,0,192,0, - 11,17,34,13,1,0,96,0,112,0,56,0,12,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,17,34,13,1,0,1,128, - 3,128,7,0,12,0,0,0,225,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,192,62,192,28,224, - 11,17,34,13,1,0,12,0,30,0,51,0,33,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,16,32,13,1,0,51,0, - 51,0,0,0,0,0,225,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,113,192,62,192,28,224,11,22, - 44,11,0,251,1,128,3,128,7,0,12,0,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,12,0,8,0,24,0,240,0,224,0, - 10,22,44,12,1,251,96,0,224,0,96,0,96,0,96,0, - 110,0,115,128,97,128,96,192,96,192,96,192,96,192,96,192, - 96,192,97,128,115,128,110,0,96,0,96,0,96,0,96,0, - 240,0,11,21,42,11,0,251,51,0,51,0,0,0,0,0, - 241,224,96,192,96,128,48,128,48,128,49,0,25,0,25,0, - 26,0,14,0,14,0,4,0,12,0,8,0,24,0,240,0, - 224,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=13 dx=23 dy= 0 ascent=19 len=60 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18r[3208] U8G_SECTION(".progmem.u8g_font_timR18r") = { - 0,29,37,252,247,17,4,9,8,241,32,127,250,19,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=18 dx=32 dy= 0 ascent=30 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24[10419] U8G_SECTION(".progmem.u8g_font_timR24") = { - 0,38,48,251,245,23,5,140,13,213,32,255,249,30,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,1,4,22,22,11,3,249,96,240,240,96,0,0,96,96, - 96,96,96,96,96,96,96,96,96,240,240,240,240,96,12,23, - 46,17,2,252,0,64,0,64,0,128,0,128,15,128,56,224, - 113,112,97,112,225,48,195,0,194,0,194,0,230,0,228,0, - 116,16,124,48,63,224,31,192,31,0,16,0,48,0,32,0, - 32,0,15,23,46,17,1,0,1,240,3,152,6,28,6,28, - 14,24,14,0,14,0,14,0,14,0,14,0,255,224,255,224, - 15,0,7,0,7,0,7,0,7,0,6,0,6,2,126,6, - 199,252,207,248,120,240,16,17,34,17,0,3,199,227,255,255, - 62,124,120,30,112,14,224,7,224,7,192,3,192,3,192,3, - 224,7,224,7,112,14,120,30,62,124,255,255,199,227,17,23, - 69,17,0,0,254,31,128,120,7,0,56,6,0,60,4,0, - 28,12,0,30,8,0,14,24,0,15,16,0,7,48,0,7, - 160,0,3,224,0,3,192,0,63,254,0,1,192,0,1,192, - 0,1,192,0,63,254,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,7,240,0,2,23,23,7,2,0,192, - 192,192,192,192,192,192,192,192,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,12,28,56,17,2,251,31,128,49,192, - 97,192,97,192,113,128,56,0,60,0,30,0,15,0,63,128, - 99,192,193,224,192,224,192,112,224,48,112,48,120,48,60,96, - 31,192,15,0,7,128,3,192,1,192,24,224,56,96,56,96, - 56,192,31,128,9,3,6,11,1,18,227,128,227,128,227,128, - 22,23,69,25,1,0,0,252,0,3,255,0,14,1,192,24, - 0,96,48,0,48,96,0,24,96,127,24,193,199,12,195,131, - 12,195,1,12,199,0,12,199,0,12,199,0,12,199,0,12, - 199,128,12,67,129,24,97,230,24,96,124,48,48,0,48,24, - 0,96,14,1,192,7,255,0,1,252,0,9,13,26,9,0, - 10,60,0,78,0,198,0,198,0,30,0,102,0,198,0,198, - 0,239,128,123,0,0,0,0,0,255,0,13,13,26,17,1, - 1,2,8,6,24,12,48,24,96,56,224,113,192,227,128,113, - 192,56,224,24,96,12,48,6,24,2,8,16,9,18,18,1, - 4,255,255,255,255,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,8,2,2,11,1,7,255,255,22,23,69,25,1, - 0,0,254,0,3,255,0,14,1,192,24,0,96,48,0,48, - 35,252,24,96,199,24,192,195,12,192,195,12,192,195,12,192, - 198,12,192,248,12,192,220,12,192,204,12,192,206,12,64,198, - 8,96,199,24,35,227,208,48,0,48,24,0,96,14,1,192, - 3,255,0,0,252,0,10,2,4,11,0,18,255,192,255,192, - 10,10,20,13,1,13,30,0,63,0,97,128,192,192,192,192, - 192,192,192,192,97,128,63,0,30,0,16,20,40,19,1,0, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,255,255,255,255,9,14,28,10,0,9,60,0, - 78,0,135,0,3,0,3,0,7,0,6,0,12,0,24,0, - 16,0,32,0,64,128,255,0,254,0,9,14,28,10,0,9, - 62,0,71,0,131,0,3,0,3,0,6,0,60,0,7,0, - 3,128,1,128,1,128,193,128,227,0,126,0,7,6,6,11, - 3,17,6,14,28,48,96,192,16,22,44,17,0,249,248,124, - 56,28,56,28,56,28,56,28,56,28,56,28,56,28,56,28, - 56,28,56,28,56,60,60,124,63,223,47,152,32,0,112,0, - 112,0,112,0,112,0,112,0,32,0,13,29,58,15,1,250, - 7,248,30,32,62,32,126,32,126,32,254,32,254,32,254,32, - 254,32,126,32,126,32,62,32,30,32,14,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,4,4,4,8,2,7, - 96,240,240,96,6,7,7,11,2,249,32,96,120,28,12,28, - 248,6,14,14,10,2,9,48,240,48,48,48,48,48,48,48, - 48,48,48,48,252,9,13,26,10,0,10,62,0,99,0,195, - 128,193,128,193,128,193,128,193,128,225,128,99,0,62,0,0, - 0,0,0,255,128,13,13,26,16,2,1,130,0,195,0,97, - 128,48,192,56,224,28,112,14,56,28,112,56,224,48,192,97, - 128,195,0,130,0,22,23,69,25,2,0,48,0,96,240,0, - 96,48,0,192,48,1,192,48,1,128,48,3,0,48,3,0, - 48,6,0,48,14,0,48,12,16,48,24,48,48,24,112,48, - 48,112,252,96,240,0,97,176,0,193,48,1,194,48,1,134, - 48,3,12,48,3,31,252,6,0,48,12,0,48,12,0,48, - 23,23,69,25,1,0,48,0,192,240,0,192,48,1,128,48, - 3,128,48,3,0,48,6,0,48,6,0,48,12,0,48,28, - 0,48,24,240,48,49,56,48,50,28,48,96,12,252,224,12, - 0,192,28,1,128,24,3,128,48,3,0,96,6,0,64,6, - 0,128,12,1,2,24,3,252,24,3,248,24,23,69,25,0, - 0,62,0,24,71,0,24,131,0,48,3,0,112,3,0,96, - 6,0,192,60,0,192,7,1,128,3,131,128,1,131,4,1, - 134,12,193,134,28,227,12,28,126,24,60,0,24,108,0,48, - 76,0,112,140,0,97,140,0,195,12,0,199,255,1,128,12, - 3,0,12,3,0,12,11,22,44,14,1,249,6,0,15,0, - 15,0,6,0,0,0,2,0,2,0,6,0,4,0,12,0, - 24,0,56,0,48,0,112,0,112,0,224,192,224,224,224,224, - 112,96,112,96,57,192,31,0,22,30,90,24,1,0,6,0, - 0,7,0,0,3,128,0,0,192,0,0,96,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,1, - 128,0,3,128,0,7,0,0,12,0,0,24,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,48, - 0,0,120,0,0,252,0,1,206,0,3,3,0,2,1,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,28,84,24,1,0,0,224, - 128,1,249,128,3,63,0,2,14,0,0,0,0,0,48,0, - 0,48,0,0,112,0,0,120,0,0,120,0,0,252,0,0, - 220,0,0,156,0,1,142,0,1,14,0,3,15,0,3,7, - 0,2,7,0,6,7,128,6,3,128,15,255,192,12,3,192, - 24,1,192,24,1,224,48,1,224,48,0,240,112,0,240,252, - 3,252,22,28,84,24,1,0,1,199,0,1,199,0,1,199, - 0,0,0,0,0,0,0,0,48,0,0,48,0,0,112,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,22,30,90,24, - 1,0,0,112,0,0,248,0,1,140,0,1,4,0,1,140, - 0,0,248,0,0,112,0,0,0,0,0,48,0,0,48,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,28,23,92,30, - 1,0,0,255,255,224,0,31,129,224,0,31,0,96,0,55, - 0,32,0,55,0,32,0,103,0,0,0,103,0,0,0,71, - 0,128,0,199,0,128,0,199,1,128,1,135,3,128,1,135, - 255,128,3,7,3,128,3,7,1,128,7,255,0,128,6,7, - 0,128,12,7,0,0,12,7,0,16,24,7,0,16,24,7, - 0,48,48,7,0,96,48,15,129,224,254,63,255,224,20,30, - 90,22,1,249,1,255,16,7,131,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,16,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,56,0,0,56,0,16,28,0,48, - 14,0,96,7,131,192,1,255,0,0,64,0,0,192,0,0, - 240,0,0,56,0,0,24,0,0,56,0,1,240,0,19,30, - 90,20,1,0,3,0,0,3,128,0,1,192,0,0,96,0, - 0,48,0,0,24,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,6,0,0,14,0,0,28,0,0,48,0, - 0,96,0,0,192,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,48,0,0,120,0,0,252,0,1,206,0, - 3,3,0,2,1,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,28, - 84,20,1,0,3,142,0,3,142,0,3,142,0,0,0,0, - 0,0,0,255,255,192,62,3,192,28,0,192,28,0,64,28, - 0,64,28,0,0,28,0,0,28,0,0,28,1,0,28,1, - 0,28,3,0,31,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,32,28,0,32,28,0,96,28, - 0,192,62,3,192,255,255,192,9,30,60,11,1,0,96,0, - 112,0,56,0,12,0,6,0,3,0,0,0,255,128,62,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,62,0,255,128,9,30,60,11,1,0, - 1,128,3,128,7,0,12,0,24,0,48,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,10,30,60,11, - 1,0,12,0,30,0,63,0,115,128,192,192,128,64,0,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,9,28, - 56,11,1,0,227,128,227,128,227,128,0,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,22,23,69,24, - 1,0,255,254,0,62,7,128,28,1,192,28,0,224,28,0, - 112,28,0,112,28,0,56,28,0,56,28,0,60,28,0,60, - 28,0,60,255,192,60,255,192,60,28,0,60,28,0,60,28, - 0,56,28,0,56,28,0,112,28,0,112,28,0,224,28,1, - 192,62,7,128,255,254,0,22,29,87,24,1,0,0,224,128, - 1,249,128,3,63,0,2,14,0,0,0,0,0,0,0,248, - 1,252,60,0,112,30,0,32,31,0,32,31,0,32,23,128, - 32,19,192,32,19,192,32,17,224,32,16,240,32,16,248,32, - 16,120,32,16,60,32,16,30,32,16,31,32,16,15,32,16, - 7,160,16,3,224,16,1,224,16,1,224,16,0,224,56,0, - 96,254,0,32,22,30,90,24,1,0,3,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,24,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,1,128,0,3,128, - 0,7,0,0,12,0,0,24,0,0,48,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,48,0,0,120,0, - 0,252,0,1,206,0,3,3,0,2,1,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,28,84,24,1,0,0,224,128,1,249,128, - 3,63,0,2,14,0,0,0,0,1,254,0,7,135,128,14, - 1,192,28,0,224,56,0,112,56,0,112,112,0,56,112,0, - 56,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,112,0,56,112,0,56,56,0,112,56, - 0,112,28,0,224,14,1,192,7,135,128,1,254,0,22,28, - 84,24,1,0,1,199,0,1,199,0,1,199,0,0,0,0, - 0,0,0,1,254,0,7,135,128,14,1,192,28,0,224,56, - 0,112,56,0,112,112,0,56,112,0,56,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 112,0,56,112,0,56,56,0,112,56,0,112,28,0,224,14, - 1,192,7,135,128,1,254,0,16,16,32,19,1,0,64,2, - 224,7,112,14,56,28,28,56,14,112,7,224,3,192,3,192, - 7,224,14,112,28,56,56,28,112,14,224,7,64,2,22,27, - 81,24,1,254,0,0,16,0,0,48,1,254,96,7,135,192, - 14,1,192,28,1,224,56,3,112,56,2,112,112,6,56,112, - 12,56,240,8,60,240,24,60,240,48,60,240,96,60,240,64, - 60,240,192,60,240,128,60,113,128,56,115,0,56,58,0,112, - 62,0,112,28,0,224,30,1,192,55,135,128,33,254,0,96, - 0,0,64,0,0,22,30,90,24,1,0,0,192,0,0,224, - 0,0,112,0,0,24,0,0,12,0,0,6,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,1,128,0,3, - 128,0,7,0,0,12,0,0,24,0,0,48,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,24,0,0,60, - 0,0,126,0,0,231,0,1,129,128,1,0,128,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,28,84,24,1,0,1,199,0,1,199, - 0,1,199,0,0,0,0,0,0,0,255,129,252,62,0,112, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,96, - 30,0,96,14,0,64,15,0,192,7,195,128,1,254,0,22, - 30,90,24,1,0,0,0,192,0,1,192,0,3,128,0,6, - 0,0,12,0,0,24,0,0,0,0,255,192,252,63,0,56, - 30,0,48,15,0,96,15,128,192,7,128,128,3,193,128,3, - 195,0,1,227,0,0,246,0,0,252,0,0,124,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,124,0,1,255,0,18, - 23,69,19,1,0,255,128,0,62,0,0,28,0,0,28,0, - 0,28,0,0,31,252,0,28,31,0,28,7,128,28,3,128, - 28,3,192,28,1,192,28,1,192,28,1,192,28,3,192,28, - 3,128,28,7,128,28,31,0,31,252,0,28,0,0,28,0, - 0,28,0,0,62,0,0,255,128,0,15,23,46,17,1,0, - 7,192,12,112,24,56,24,56,56,56,56,56,56,56,56,56, - 56,48,56,96,57,192,56,120,56,28,56,30,56,14,56,14, - 56,14,56,14,56,14,59,12,59,156,59,152,249,240,13,23, - 46,15,1,0,24,0,28,0,14,0,3,0,1,128,0,192, - 0,0,0,0,31,128,49,192,112,224,112,224,96,224,3,224, - 14,224,24,224,48,224,96,224,224,224,225,224,242,232,126,248, - 60,112,13,23,46,15,1,0,0,192,1,192,3,128,6,0, - 12,0,24,0,0,0,0,0,31,128,49,192,112,224,112,224, - 96,224,3,224,14,224,24,224,48,224,96,224,224,224,225,224, - 242,232,126,248,60,112,13,23,46,15,1,0,6,0,15,0, - 31,128,57,192,96,96,64,32,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 28,16,62,48,99,224,65,192,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 56,224,56,224,56,224,0,0,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,23,46,15,1,0, - 7,0,15,128,24,192,16,64,24,192,15,128,7,0,0,0, - 31,128,49,192,112,224,112,224,96,224,3,224,14,224,24,224, - 48,224,96,224,224,224,225,224,242,232,126,248,60,112,19,15, - 45,22,1,0,31,159,0,49,249,192,112,224,192,112,224,224, - 96,224,224,3,255,224,14,224,0,24,224,0,48,224,0,96, - 224,0,224,224,32,225,240,96,243,120,192,126,63,128,60,31, - 0,12,22,44,15,1,249,15,128,56,192,112,224,96,224,224, - 96,192,0,192,0,192,0,192,0,224,0,224,16,112,48,124, - 96,63,192,15,0,4,0,12,0,15,0,3,128,1,128,3, - 128,31,0,12,23,46,15,1,0,48,0,56,0,28,0,6, - 0,3,0,1,128,0,0,0,0,15,128,57,192,96,224,96, - 112,192,112,255,240,192,0,192,0,192,0,224,0,224,16,112, - 48,124,96,63,192,15,0,12,23,46,15,1,0,1,128,3, - 128,7,0,12,0,24,0,48,0,0,0,0,0,15,128,57, - 192,96,224,96,112,192,112,255,240,192,0,192,0,192,0,224, - 0,224,16,112,48,124,96,63,192,15,0,12,23,46,15,1, - 0,6,0,15,0,31,128,57,192,96,96,64,32,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,12, - 21,42,15,1,0,56,224,56,224,56,224,0,0,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,7, - 23,23,9,1,0,192,224,112,24,12,6,0,0,24,248,56, - 56,56,56,56,56,56,56,56,56,56,56,254,7,23,23,9, - 1,0,6,14,28,48,96,192,0,0,24,248,56,56,56,56, - 56,56,56,56,56,56,56,56,254,10,23,46,9,0,0,12, - 0,30,0,63,0,115,128,192,192,128,64,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,9,21,42, - 9,0,0,227,128,227,128,227,128,0,0,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,14,23,46, - 17,1,0,16,0,56,0,28,112,15,240,15,0,127,128,49, - 192,0,224,7,240,24,240,48,120,112,56,96,60,224,28,224, - 28,224,28,224,28,224,28,112,24,112,56,56,48,28,96,7, - 128,16,21,42,16,0,0,14,8,31,24,49,240,32,224,0, - 0,0,0,24,240,251,248,62,60,60,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,254, - 127,14,23,46,16,1,0,24,0,28,0,14,0,3,0,1, - 128,0,192,0,0,0,0,7,128,24,224,48,112,112,56,96, - 56,224,28,224,28,224,28,224,28,224,28,112,24,112,56,56, - 48,28,96,7,128,14,23,46,16,1,0,0,192,1,192,3, - 128,6,0,12,0,24,0,0,0,0,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,112, - 24,112,56,56,48,28,96,7,128,14,23,46,16,1,0,3, - 0,7,128,15,192,28,224,48,48,32,16,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,28,16,62,48,99,224,65,192,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,56,224,56,224,56,224,0,0,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,16,17,34, - 19,1,0,1,128,3,192,3,192,1,128,0,0,0,0,0, - 0,255,255,255,255,0,0,0,0,0,0,0,0,1,128,3, - 192,3,192,1,128,14,21,42,17,1,253,0,24,0,16,0, - 48,7,160,24,224,48,240,112,184,97,184,225,28,225,28,227, - 28,226,28,230,28,116,24,116,56,60,48,28,96,31,128,48, - 0,32,0,96,0,16,23,46,17,0,0,12,0,14,0,7, - 0,1,128,0,192,0,96,0,0,0,0,248,124,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,60,60,124,31,223,15,152,16,23,46,17,0,0,0, - 96,0,224,1,192,3,0,6,0,12,0,0,0,0,0,248, - 124,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,60,60,124,31,223,15,152,16,23,46, - 17,0,0,1,128,3,192,7,224,14,112,24,24,16,8,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,16,21,42,17,0,0,28,112,28,112,28,112,0,0,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,15,30,60,17,0,249,0,24,0,56,0,112,0,192,1, - 128,3,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,128,1,0,3,0,2,0,62,0,124, - 0,56,0,15,30,60,17,0,249,24,0,248,0,56,0,56, - 0,56,0,56,0,56,0,56,0,57,240,59,248,62,124,60, - 28,56,30,56,14,56,14,56,14,56,14,56,14,56,12,56, - 28,60,24,62,48,59,224,56,0,56,0,56,0,56,0,56, - 0,56,0,255,0,15,28,56,17,1,249,28,112,28,112,28, - 112,0,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,0,1,0,3,0,2,0,62,0,124, - 0,56,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=26 x= 4 y=10 dx=19 dy= 0 ascent=23 len=52 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =23 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24n[696] U8G_SECTION(".progmem.u8g_font_timR24n") = { - 0,38,48,251,245,23,0,0,0,0,42,57,0,23,253,23, - 0,12,13,26,17,2,10,6,0,15,0,6,0,198,48,246, - 240,118,224,15,0,118,224,246,240,198,48,6,0,15,0,6, - 0,16,16,32,19,1,1,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,4,7,7,8,2,253,96,240,240, - 112,16,32,64,8,2,2,11,1,7,255,255,4,4,4,8, - 2,0,96,240,240,96,10,26,52,9,0,253,0,192,0,192, - 1,128,1,128,3,128,3,0,3,0,3,0,6,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,24,0,24,0, - 48,0,48,0,48,0,112,0,96,0,96,0,192,0,192,0, - 14,23,46,16,1,0,7,128,28,224,56,112,48,48,112,56, - 112,56,96,24,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,24,112,56,112,56,48,48,56,112, - 28,224,7,128,9,23,46,16,4,0,12,0,28,0,124,0, - 220,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,15,23,46,16,0,0,7,224, - 15,240,28,248,48,60,32,60,96,28,64,28,0,28,0,28, - 0,24,0,56,0,48,0,96,0,96,0,192,1,128,3,0, - 6,0,12,2,24,6,63,252,127,248,255,248,12,23,46,16, - 2,0,15,128,63,192,97,224,192,224,128,224,0,224,0,192, - 0,192,1,128,3,0,7,192,31,224,1,240,0,112,0,112, - 0,48,0,48,0,48,0,112,0,96,224,192,243,128,127,0, - 14,23,46,16,1,0,0,96,0,224,0,224,1,224,1,96, - 3,96,6,96,4,96,12,96,24,96,16,96,48,96,96,96, - 64,96,255,252,255,252,255,252,0,96,0,96,0,96,0,96, - 0,96,0,96,13,23,46,16,1,0,15,248,31,240,31,224, - 16,0,48,0,32,0,126,0,127,128,127,192,7,224,1,224, - 0,240,0,112,0,112,0,48,0,48,0,48,0,48,0,96, - 0,96,224,192,243,128,126,0,14,23,46,16,1,0,0,120, - 1,192,3,128,15,0,30,0,28,0,56,0,120,0,112,0, - 115,192,247,240,248,120,224,56,224,60,224,28,224,28,224,28, - 224,28,112,28,112,24,56,56,28,96,7,192,14,23,46,16, - 1,0,63,252,127,252,96,24,192,24,128,56,0,48,0,48, - 0,48,0,96,0,96,0,96,0,224,0,192,0,192,1,192, - 1,128,1,128,1,128,3,0,3,0,3,0,7,0,6,0, - 13,23,46,16,2,0,31,128,56,224,112,112,224,48,224,48, - 224,48,224,112,240,96,124,192,63,0,31,128,15,192,27,224, - 113,240,96,240,224,120,192,120,192,56,192,56,224,56,96,112, - 112,224,31,192,14,23,46,16,1,0,7,128,24,224,48,112, - 112,56,96,56,224,28,224,28,224,28,224,28,224,28,240,28, - 112,28,120,60,62,252,15,184,0,56,0,112,0,112,0,224, - 1,192,3,128,15,0,120,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=17 dx=32 dy= 0 ascent=25 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24r[4764] U8G_SECTION(".progmem.u8g_font_timR24r") = { - 0,38,48,251,245,23,5,140,13,213,32,127,249,25,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=11 h=13 x= 1 y=10 dx=12 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssb[2656] U8G_SECTION(".progmem.u8g_font_tpssb") = { - 0,11,17,0,252,9,1,205,3,159,32,255,252,13,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,2,9,9,3,0,0,192,192,0,192,192,192,192, - 192,192,5,7,7,7,1,0,32,112,168,160,168,112,32,6, - 9,9,7,0,0,192,192,248,192,192,192,204,204,252,5,5, - 5,7,1,1,136,112,80,112,136,6,9,9,8,1,0,204, - 204,120,48,48,120,48,120,48,2,9,9,4,1,0,192,192, - 192,0,0,0,192,192,192,8,10,10,10,1,0,124,192,126, - 195,126,3,3,3,195,62,5,1,1,7,1,3,216,9,7, - 14,11,1,0,62,0,65,0,221,128,209,128,221,128,65,0, - 62,0,7,8,8,9,1,0,120,204,204,204,204,126,0,254, - 7,3,3,9,1,2,102,204,102,5,3,3,7,1,1,248, - 248,24,255,9,7,14,11,1,0,62,0,65,0,221,128,209, - 128,209,128,65,0,62,0,5,1,1,6,0,6,248,3,3, - 3,5,1,2,224,160,224,5,7,7,7,1,0,32,32,248, - 32,32,0,248,255,255,255,255,255,255,255,255,255,7,3,3, - 9,1,2,204,102,204,255,255,255,255,6,12,12,7,0,0, - 96,48,0,120,204,204,252,204,204,204,204,204,6,12,12,7, - 0,0,24,48,0,120,204,204,252,204,204,204,204,204,6,12, - 12,7,0,0,48,72,0,120,204,204,252,204,204,204,204,204, - 6,12,12,7,0,0,232,184,0,120,204,204,252,204,204,204, - 204,204,6,11,11,7,0,0,72,0,120,204,204,252,204,204, - 204,204,204,6,13,13,7,0,0,48,72,48,0,120,204,204, - 252,204,204,204,204,204,11,9,18,12,0,0,127,224,206,0, - 206,0,255,192,206,0,206,0,206,0,206,0,207,224,6,11, - 11,7,0,254,120,204,192,192,192,192,192,204,120,48,96,6, - 12,12,7,0,0,96,48,0,252,192,192,248,192,192,192,192, - 252,6,12,12,7,0,0,24,48,0,252,192,192,248,192,192, - 192,192,252,6,12,12,7,0,0,48,72,0,252,192,192,248, - 192,192,192,192,252,6,11,11,7,0,0,204,0,252,192,192, - 248,192,192,192,192,252,3,12,12,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,96,3,12,12,4,0,0,96,192, - 0,192,192,192,192,192,192,192,192,192,4,12,12,5,0,0, - 96,144,0,96,96,96,96,96,96,96,96,96,6,11,11,7, - 0,0,204,0,48,48,48,48,48,48,48,48,48,6,9,9, - 7,0,0,248,204,204,236,204,204,204,204,248,6,12,12,7, - 0,0,232,184,0,204,236,252,220,204,204,204,204,204,6,12, - 12,7,0,0,96,48,0,120,204,204,204,204,204,204,204,120, - 6,12,12,7,0,0,24,48,0,120,204,204,204,204,204,204, - 204,120,6,12,12,7,0,0,48,72,0,120,204,204,204,204, - 204,204,204,120,6,12,12,7,0,0,232,184,0,120,204,204, - 204,204,204,204,204,120,6,11,11,7,0,0,204,0,120,204, - 204,204,204,204,204,204,120,3,3,3,6,1,2,160,64,160, - 6,9,9,7,0,0,120,204,220,220,236,236,236,204,120,6, - 12,12,7,0,0,96,48,0,204,204,204,204,204,204,204,204, - 120,6,12,12,7,0,0,24,48,0,204,204,204,204,204,204, - 204,204,120,6,12,12,7,0,0,48,72,0,204,204,204,204, - 204,204,204,204,120,6,11,11,7,0,0,204,0,204,204,204, - 204,204,204,204,204,120,6,12,12,7,0,0,24,48,0,204, - 204,120,48,48,48,48,48,48,7,9,9,8,0,0,192,192, - 252,198,252,192,192,192,192,7,11,11,8,0,254,252,198,220, - 198,198,198,220,192,192,192,192,6,9,9,7,0,0,96,48, - 0,120,204,204,204,204,124,6,9,9,7,0,0,24,48,0, - 120,204,204,204,204,124,6,9,9,7,0,0,48,72,0,120, - 204,204,204,204,124,6,9,9,7,0,0,232,184,0,120,204, - 204,204,204,124,6,8,8,7,0,0,204,0,120,204,204,204, - 204,124,6,10,10,7,0,0,48,72,48,0,120,204,204,204, - 204,124,9,6,12,11,1,0,127,128,136,128,143,128,136,0, - 136,128,127,128,6,8,8,7,0,254,120,204,192,192,204,120, - 48,96,6,9,9,7,0,0,96,48,0,120,204,252,192,204, - 120,6,9,9,7,0,0,24,48,0,120,204,252,192,204,120, - 6,9,9,7,0,0,48,72,0,120,204,252,192,204,120,6, - 8,8,7,0,0,204,0,120,204,252,192,204,120,3,12,12, - 4,0,0,192,96,0,96,96,96,96,96,96,96,96,96,3, - 12,12,4,0,0,96,192,0,192,192,192,192,192,192,192,192, - 192,4,12,12,5,0,0,96,144,0,96,96,96,96,96,96, - 96,96,96,6,11,11,7,0,0,204,0,48,48,48,48,48, - 48,48,48,48,6,9,9,7,0,0,12,60,12,124,204,204, - 204,204,124,6,9,9,7,0,0,232,184,0,248,236,204,204, - 204,204,6,9,9,7,0,0,96,48,0,120,204,204,204,204, - 120,6,9,9,7,0,0,24,48,0,120,204,204,204,204,120, - 6,9,9,7,0,0,48,72,0,120,204,204,204,204,120,6, - 9,9,7,0,0,232,184,0,120,204,204,204,204,120,6,8, - 8,7,0,0,204,0,120,204,204,204,204,120,6,6,6,7, - 0,1,48,0,252,252,0,48,6,6,6,7,0,0,120,220, - 220,236,236,120,6,9,9,7,0,0,96,48,0,204,204,204, - 204,204,120,6,9,9,7,0,0,24,48,0,204,204,204,204, - 204,120,6,9,9,7,0,0,48,72,0,204,204,204,204,204, - 120,6,8,8,7,0,0,204,0,204,204,204,204,204,120,6, - 13,13,7,0,252,24,48,0,204,204,204,204,204,124,12,12, - 204,120,6,6,6,7,0,0,192,248,204,248,192,192,6,12, - 12,7,0,252,204,0,204,204,204,204,204,124,12,12,204,120 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 6 h= 9 x= 1 y= 3 dx= 8 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbn[230] U8G_SECTION(".progmem.u8g_font_tpssbn") = { - 0,11,17,0,252,9,0,0,0,0,42,57,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,6,6, - 6,8,1,1,48,48,252,252,48,48,3,2,2,5,1,255, - 96,192,5,2,2,7,1,3,248,248,2,1,1,4,1,0, - 192,6,9,9,8,1,0,12,24,24,48,48,48,96,96,192, - 6,9,9,7,0,0,120,204,204,204,204,204,204,204,120,6, - 9,9,7,0,0,48,112,240,48,48,48,48,48,252,6,9, - 9,7,0,0,120,204,204,12,24,48,96,192,252,6,9,9, - 7,0,0,120,204,12,56,12,12,12,204,120,6,9,9,7, - 0,0,12,204,204,252,12,12,12,12,12,6,9,9,7,0, - 0,252,192,192,248,12,12,12,204,120,6,9,9,7,0,0, - 120,204,192,248,204,204,204,204,120,6,9,9,7,0,0,252, - 12,24,48,96,96,96,96,96,6,9,9,7,0,0,120,204, - 204,120,204,204,204,204,120,6,9,9,7,0,0,120,204,204, - 204,124,12,12,204,120}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 1 y=10 dx=12 dy= 0 ascent=12 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbr[1346] U8G_SECTION(".progmem.u8g_font_tpssbr") = { - 0,11,17,0,252,9,1,205,3,159,32,127,252,12,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpss[2605] U8G_SECTION(".progmem.u8g_font_tpss") = { - 0,11,17,255,252,9,1,192,3,136,32,255,252,13,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,1,9,9,2,0,0,128,128,0,128, - 128,128,128,128,128,5,7,7,7,1,0,32,112,168,160,168, - 112,32,5,9,9,7,1,0,128,128,240,128,128,128,136,136, - 248,5,5,5,7,1,1,136,112,80,112,136,5,9,9,7, - 1,0,136,136,80,32,32,248,32,248,32,1,9,9,3,1, - 0,128,128,128,0,0,0,128,128,128,6,10,10,8,1,0, - 120,128,120,132,120,4,4,4,132,120,5,1,1,7,1,3, - 136,7,7,7,9,1,0,124,130,186,162,186,130,124,6,8, - 8,8,1,0,112,136,136,136,136,116,0,252,5,3,3,7, - 1,2,72,144,72,5,2,2,7,1,2,248,8,0,0,0, - 8,0,0,7,7,7,9,1,0,124,130,186,162,162,130,124, - 5,1,1,6,0,6,248,3,3,3,5,1,2,64,160,64, - 5,7,7,7,1,0,32,32,248,32,32,0,248,255,255,255, - 0,0,0,8,0,0,255,0,0,0,8,0,0,255,255,255, - 5,3,3,7,1,2,144,72,144,255,255,255,255,5,12,12, - 6,0,0,64,32,0,112,136,136,248,136,136,136,136,136,5, - 12,12,6,0,0,16,32,0,112,136,136,248,136,136,136,136, - 136,5,12,12,6,0,0,32,80,0,112,136,136,248,136,136, - 136,136,136,5,12,12,6,0,0,232,184,0,112,136,136,248, - 136,136,136,136,136,5,11,11,6,0,0,80,0,112,136,136, - 248,136,136,136,136,136,5,13,13,6,0,0,32,80,32,0, - 112,136,136,248,136,136,136,136,136,9,9,18,10,0,0,127, - 128,136,0,136,0,255,0,136,0,136,0,136,0,136,0,143, - 128,5,9,9,6,0,254,112,136,128,128,128,136,112,32,96, - 5,12,12,6,0,0,64,32,0,248,128,128,240,128,128,128, - 128,248,5,12,12,6,0,0,16,32,0,248,128,128,240,128, - 128,128,128,248,5,12,12,6,0,0,32,80,0,248,128,128, - 240,128,128,128,128,248,5,11,11,6,0,0,80,0,248,128, - 128,240,128,128,128,128,248,2,12,12,2,0,0,128,64,0, - 64,64,64,64,64,64,64,64,64,2,12,12,2,0,0,64, - 128,0,128,128,128,128,128,128,128,128,128,3,12,12,2,255, - 0,64,160,0,64,64,64,64,64,64,64,64,64,3,11,11, - 2,255,0,160,0,64,64,64,64,64,64,64,64,64,5,9, - 9,6,0,0,240,136,136,232,136,136,136,136,240,5,12,12, - 6,0,0,232,184,0,136,136,136,200,168,152,136,136,136,5, - 12,12,6,0,0,64,32,0,112,136,136,136,136,136,136,136, - 112,5,12,12,6,0,0,16,32,0,112,136,136,136,136,136, - 136,136,112,5,12,12,6,0,0,32,80,0,112,136,136,136, - 136,136,136,136,112,5,12,12,6,0,0,232,184,0,112,136, - 136,136,136,136,136,136,112,5,11,11,6,0,0,80,0,112, - 136,136,136,136,136,136,136,112,3,3,3,6,1,2,160,64, - 160,7,9,9,8,0,0,58,68,76,84,84,84,100,68,184, - 5,12,12,6,0,0,64,32,0,136,136,136,136,136,136,136, - 136,112,5,12,12,6,0,0,16,32,0,136,136,136,136,136, - 136,136,136,112,5,12,12,6,0,0,32,80,0,136,136,136, - 136,136,136,136,136,112,5,11,11,6,0,0,80,0,136,136, - 136,136,136,136,136,136,112,5,12,12,6,0,0,16,32,0, - 136,136,80,32,32,32,32,32,32,5,9,9,6,0,0,128, - 128,240,136,240,128,128,128,128,5,11,11,6,0,254,240,136, - 176,136,136,136,176,128,128,128,128,5,9,9,6,0,0,64, - 32,0,112,136,136,136,136,120,5,9,9,6,0,0,16,32, - 0,112,136,136,136,136,120,5,9,9,6,0,0,32,80,0, - 112,136,136,136,136,120,5,9,9,6,0,0,232,184,0,112, - 136,136,136,136,120,5,8,8,6,0,0,80,0,112,136,136, - 136,136,120,5,10,10,6,0,0,32,80,32,0,112,136,136, - 136,136,120,9,6,12,10,0,0,119,0,136,128,143,128,136, - 0,136,128,119,0,5,8,8,6,0,254,112,136,128,128,136, - 112,32,64,5,6,6,6,0,0,112,136,248,128,136,112,5, - 6,6,6,0,0,112,136,248,128,136,112,5,6,6,6,0, - 0,112,136,248,128,136,112,5,6,6,6,0,0,112,136,248, - 128,136,112,2,10,10,3,0,0,128,64,0,0,64,64,64, - 64,64,64,2,10,10,3,0,0,64,128,0,0,128,128,128, - 128,128,128,3,10,10,4,0,0,64,160,0,0,64,64,64, - 64,64,64,3,9,9,4,0,0,160,0,0,64,64,64,64, - 64,64,5,9,9,6,0,0,8,56,8,120,136,136,136,136, - 120,5,9,9,6,0,0,232,184,0,176,200,136,136,136,136, - 5,9,9,6,0,0,64,32,0,112,136,136,136,136,112,5, - 9,9,6,0,0,16,32,0,112,136,136,136,136,112,5,9, - 9,6,0,0,32,80,0,112,136,136,136,136,112,5,9,9, - 6,0,0,232,184,0,112,136,136,136,136,112,5,8,8,6, - 0,0,80,0,112,136,136,136,136,112,5,5,5,6,0,1, - 32,0,248,0,32,5,6,6,6,0,0,112,152,168,168,200, - 112,5,9,9,6,0,0,64,32,0,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,0,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,136,136,136,136,136,112,5,8, - 8,6,0,0,80,0,136,136,136,136,136,112,5,13,13,6, - 0,252,16,32,0,136,136,136,136,136,120,8,8,136,112,5, - 6,6,5,0,0,128,240,136,240,128,128,5,12,12,6,0, - 252,80,0,136,136,136,136,136,120,8,8,136,112}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 5 h= 9 x= 1 y= 3 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssn[228] U8G_SECTION(".progmem.u8g_font_tpssn") = { - 0,11,17,255,252,9,0,0,0,0,42,57,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,5,5, - 5,7,1,1,32,32,248,32,32,2,2,2,4,1,255,64, - 128,5,1,1,7,1,3,248,1,1,1,3,1,0,128,5, - 9,9,7,1,0,8,16,16,32,32,32,64,64,128,5,9, - 9,6,0,0,112,136,136,136,136,136,136,136,112,5,9,9, - 6,0,0,32,96,160,32,32,32,32,32,248,5,9,9,6, - 0,0,112,136,136,8,16,32,64,128,248,5,9,9,6,0, - 0,112,136,8,48,8,8,8,136,112,5,9,9,6,0,0, - 8,136,136,248,8,8,8,8,8,5,9,9,6,0,0,248, - 128,128,248,8,8,8,136,112,5,9,9,6,0,0,112,136, - 128,240,136,136,136,136,112,5,9,9,6,0,0,248,8,16, - 32,64,64,64,64,64,5,9,9,6,0,0,112,136,136,112, - 136,136,136,136,112,5,9,9,6,0,0,112,136,136,136,120, - 8,8,136,112}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=12 len=16 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssr[1317] U8G_SECTION(".progmem.u8g_font_tpssr") = { - 0,11,17,255,252,9,1,192,3,136,32,127,252,12,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_square[1236] U8G_SECTION(".progmem.u8g_font_trixel_square") = { - 0,5,9,0,254,5,1,91,2,177,32,255,254,7,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,4,5,5,5,0,0,112,64,96,64,240, - 255,255,255,3,7,7,4,0,254,224,128,224,160,224,32,224, - 255,255,255,3,2,2,4,0,1,160,160,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,3,2,2,4,0,1, - 160,160,255,255,255,255,255,255,255,255,3,7,7,4,0,0, - 160,0,224,160,224,160,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,7,7,4,0,0,160,0, - 224,160,160,160,224,255,255,255,255,255,3,7,7,4,0,0, - 160,0,160,160,160,160,224,255,255,3,7,7,4,0,254,224, - 160,224,160,224,128,128,255,255,255,255,4,5,5,5,0,0, - 160,0,224,160,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,3,5,5,4,0,0,160,0,224,160, - 224,255,255,255,255,255,3,5,5,4,0,0,160,0,160,160, - 224,255,255,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[178] U8G_SECTION(".progmem.u8g_font_trixel_squaren") = { - 0,5,9,0,254,5,0,0,0,0,42,57,0,5,255,5, - 0,3,3,3,4,0,2,160,64,160,3,3,3,4,0,0, - 64,224,64,1,2,2,2,0,255,128,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,3,5,5,4,0,0,32, - 96,64,192,128,3,5,5,4,0,0,224,160,160,160,224,2, - 5,5,3,0,0,64,192,64,64,64,3,5,5,4,0,0, - 224,160,96,192,224,3,5,5,4,0,0,224,32,96,32,224, - 3,5,5,4,0,0,160,160,224,32,32,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,128,224,160, - 224,3,5,5,4,0,0,224,32,32,32,32,3,5,5,4, - 0,0,224,160,224,160,224,3,5,5,4,0,0,224,160,224, - 32,224}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[994] U8G_SECTION(".progmem.u8g_font_trixel_squarer") = { - 0,5,9,0,254,5,1,91,2,177,32,127,254,6,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 8 h= 7 x= 1 y= 4 dx= 9 dy= 0 ascent= 6 len= 7 - Font Bounding box w=10 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4[1660] U8G_SECTION(".progmem.u8g_font_u8glib_4") = { - 1,10,6,0,255,4,0,233,1,198,32,255,255,6,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,192,224,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240,2,0,32,2,53,69,160,0, - 160,160,224,2,54,70,64,128,0,224,192,224,2,54,70,64, - 160,0,96,160,224,2,53,69,160,0,96,160,224,2,54,70, - 64,32,0,96,160,224,2,54,70,64,160,64,96,160,224,1, - 36,52,192,128,192,192,2,54,70,64,160,0,224,192,224,2, - 53,69,160,0,224,192,224,2,54,70,64,32,0,224,192,224, - 2,52,68,160,0,64,64,2,53,149,64,160,0,64,64,2, - 37,53,128,64,0,64,64,2,69,85,144,96,144,240,144,2, - 70,86,96,144,96,144,240,144,2,70,86,32,64,240,224,128, - 240,2,83,99,120,176,248,2,132,148,31,46,120,143,2,54, - 70,64,160,0,224,160,224,2,53,69,160,0,224,160,224,2, - 54,70,128,64,0,224,160,224,2,54,70,64,160,0,160,160, - 224,2,54,70,64,32,0,160,160,224,1,54,70,160,0,160, - 224,32,96,2,69,85,144,96,144,144,96,2,69,85,144,0, - 144,144,240,2,0,64,2,0,64,2,0,64,2,0,64,2, - 0,64,2,54,70,64,128,0,96,160,224,2,37,53,64,128, - 0,128,128,2,54,70,32,64,0,224,160,224,2,54,70,32, - 64,0,160,160,224,2,70,70,80,160,0,192,160,160,2,70, - 86,80,160,144,208,176,144,2,21,37,128,128,0,128,128,1, - 54,70,224,128,224,224,32,224,6,65,81,144,1,119,151,124, - 130,186,162,186,130,124,2,0,144,2,51,67,96,192,96,3, - 50,66,224,32,2,0,144,1,119,151,124,130,186,178,170,130, - 124,6,65,81,240,4,51,67,224,160,224,2,52,148,64,224, - 64,224,4,51,67,192,64,96,4,35,51,192,64,192,5,34, - 50,64,128,1,52,148,160,160,224,128,1,101,117,124,244,116, - 20,20,19,17,49,128,2,0,144,4,35,51,192,64,64,4, - 51,67,224,160,224,2,51,67,192,96,192,1,118,134,196,72, - 80,40,78,132,1,118,134,196,72,80,44,68,134,1,118,150, - 196,72,208,40,78,132,2,0,64,2,70,86,64,32,96,144, - 240,144,2,70,86,32,64,96,144,240,144,2,70,86,96,144, - 96,144,240,144,2,70,86,80,160,96,144,240,144,2,69,85, - 144,96,144,240,144,2,70,86,96,0,96,144,240,144,2,132, - 148,31,46,120,143,1,69,85,240,128,240,32,96,2,70,86, - 64,32,240,224,128,240,2,70,86,32,64,240,224,128,240,2, - 70,86,96,144,240,224,128,240,2,70,86,144,0,240,224,128, - 240,2,38,54,128,64,128,128,128,128,2,38,54,64,128,64, - 64,64,64,2,54,70,64,160,64,64,64,64,2,53,69,160, - 64,64,64,64,2,84,100,112,232,72,112,2,70,86,80,160, - 0,144,208,176,2,70,86,64,32,96,144,144,96,2,70,86, - 32,64,96,144,144,96,2,70,86,96,144,96,144,144,96,2, - 70,86,80,160,96,144,144,96,2,69,85,144,96,144,144,96, - 2,51,67,160,64,160,1,102,118,4,56,88,104,112,128,2, - 70,86,64,32,144,144,144,240,2,70,86,32,64,144,144,144, - 240,2,70,86,96,144,0,144,144,240,2,69,85,144,0,144, - 144,240,2,70,86,32,64,144,240,16,240,1,70,86,128,224, - 144,144,224,128,1,53,69,192,192,160,192,128,2,54,70,64, - 32,0,96,160,224,2,54,70,64,128,0,96,160,224,2,54, - 70,64,160,0,96,160,224,2,70,70,80,160,0,96,160,224, - 2,53,69,160,0,96,160,224,2,54,70,64,160,64,96,160, - 224,2,83,99,120,176,248,1,36,52,192,128,192,192,2,54, - 70,64,32,0,224,192,224,2,54,70,64,128,0,224,192,224, - 2,54,70,64,160,0,224,192,224,2,53,69,160,0,224,192, - 224,2,37,53,128,64,0,64,64,2,37,53,64,128,0,128, - 128,2,53,69,64,160,0,64,64,2,52,68,160,0,64,64, - 2,70,86,96,96,16,112,144,96,2,70,70,80,160,0,192, - 160,160,2,54,70,64,32,0,224,160,224,2,54,70,64,128, - 0,224,160,224,2,54,70,64,160,0,224,160,224,2,70,70, - 80,160,0,224,160,224,2,53,69,160,0,224,160,224,2,53, - 69,64,0,224,0,64,1,85,101,8,112,80,112,128,2,54, - 70,64,32,0,160,160,224,2,54,70,64,128,0,160,160,224, - 2,54,70,64,160,0,160,160,224,2,53,69,160,0,160,160, - 224,1,55,71,64,128,0,160,224,32,96,1,53,69,128,192, - 160,192,128,1,54,150,160,0,160,224,32,96}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 5 h= 6 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w=10 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[664] U8G_SECTION(".progmem.u8g_font_u8glib_4r") = { - 1,10,6,0,255,4,0,233,1,198,32,127,255,5,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,192,224,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4239] U8G_SECTION(".progmem.u8g_font_unifont_0_8") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, - 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, - 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, - 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, - 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, - 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, - 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, - 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, - 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, - 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, - 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, - 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, - 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, - 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, - 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, - 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, - 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, - 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,157,202,82,115, - 211,194,82,66,93,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,73,157,202,82,122,93,202,80,73,145,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,147,202,82,115,159,202,18,114, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,147,234, - 82,91,159,202,82,75,147,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,116,185,166,164,37,165,164,164,116,185,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,75,209,234,16,91,209,202, - 16,75,223,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 205,194,18,49,159,136,82,115,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,121,205,194,18,121,159,192,82,123,147,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,157,201,32,121, - 25,201,4,73,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,75,185,201,8,121,9,201,8,73,49,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,69,205,196,144,68,137,168,132,16, - 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,114,29,202, - 18,114,19,194,18,67,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,19,202,18,114,19,194,18,67,205,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,14,33,137,32,14,33,138, - 32,9,33,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,2,49,141,136,80,115,159,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,221,194,2,49,141,136,66,115,157,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,207,202,16,74, - 13,202,2,113,221,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,114,69,202,76,114,69,194,68,65,143,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,114,93,202,66,114,77,194,80,65, - 159,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,157,193, - 32,49,25,137,4,113,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,211,194,18,66,31,194,18,57,211,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,17,237,16,85,81,197, - 176,69,17,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 141,194,82,51,159,138,18,114,19,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,123,141,194,82,123,159,194,18,122,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,57,143,194,80,50, - 77,138,66,113,157,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,155,196,34,37,163,148,162,99,155,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,8,50,9,138,8,113, - 221,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,221,194, - 8,65,137,192,72,59,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,14,249,144,32,12,33,130,32,28,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,49,207,202,16,73,145,200, - 80,51,143,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 33,203,96,114,161,194,32,66,33,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,143,202,80,123,145,202,16,74,15,128, - 0,0,1,128,0,0,1,128,0,85,85,6,13,13,8,1, - 0,96,24,0,252,128,128,128,248,128,128,128,128,252,6,14, - 14,8,1,0,72,72,0,0,252,128,128,128,248,128,128,128, - 128,252,7,10,10,8,1,0,252,32,32,32,60,34,34,34, - 34,44,6,14,14,8,1,0,24,96,0,0,252,128,128,128, - 128,128,128,128,128,128,6,10,10,8,1,0,56,68,128,128, - 248,128,128,128,68,56,6,10,10,8,1,0,120,132,132,128, - 96,24,4,132,132,120,5,10,10,8,2,0,248,32,32,32, - 32,32,32,32,32,248,5,14,14,8,2,0,144,144,0,0, - 248,32,32,32,32,32,32,32,32,248,6,10,10,8,1,0, - 28,8,8,8,8,8,8,136,136,112,8,10,10,8,0,0, - 120,72,72,72,78,73,73,73,73,142,7,10,10,8,1,0, - 144,144,144,144,252,146,146,146,146,156,7,10,10,8,1,0, - 252,32,32,32,60,34,34,34,34,34,6,14,14,8,1,0, - 24,96,0,0,128,140,144,160,192,192,160,144,136,132,6,13, - 13,8,1,0,96,24,0,132,140,140,148,148,164,164,196,196, - 132,7,14,14,8,1,0,132,132,120,0,130,130,68,68,40, - 40,16,16,32,96,7,10,10,8,1,0,130,130,130,130,130, - 130,254,16,16,16,6,10,10,8,1,0,48,72,72,132,132, - 132,252,132,132,132,6,10,10,8,1,0,248,128,128,128,248, - 132,132,132,132,248,6,10,10,8,1,0,248,132,132,132,248, - 132,132,132,132,248,6,10,10,8,1,0,252,128,128,128,128, - 128,128,128,128,128,8,12,12,8,0,254,14,18,18,18,34, - 34,34,66,66,255,129,129,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,7,10,10,8,1,0,146,146,84, - 84,56,56,84,84,146,146,6,10,10,8,1,0,120,132,4, - 4,120,8,4,4,132,120,6,10,10,8,1,0,132,140,140, - 148,148,164,164,196,196,132,6,13,13,8,1,0,72,48,0, - 132,140,140,148,148,164,164,196,196,132,6,10,10,8,1,0, - 128,140,144,160,192,192,160,144,136,132,6,10,10,8,1,0, - 60,36,36,36,36,36,36,68,68,132,6,10,10,8,1,0, - 132,132,204,204,180,180,132,132,132,132,6,10,10,8,1,0, - 132,132,132,132,252,132,132,132,132,132,6,10,10,8,1,0, - 120,132,132,132,132,132,132,132,132,120,6,10,10,8,1,0, - 252,132,132,132,132,132,132,132,132,132,6,10,10,8,1,0, - 248,132,132,132,248,128,128,128,128,128,6,10,10,8,1,0, - 120,132,132,128,128,128,128,132,132,120,7,10,10,8,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,8,1,0, - 130,130,68,68,40,40,16,16,32,96,7,11,11,8,1,0, - 16,124,146,146,146,146,146,124,16,16,16,6,10,10,8,1, - 0,132,132,72,72,48,48,72,72,132,132,7,12,12,8,1, - 254,132,132,132,132,132,132,132,132,132,254,2,2,6,10,10, - 8,1,0,132,132,132,132,132,252,4,4,4,4,7,10,10, - 8,1,0,146,146,146,146,146,146,146,146,146,254,8,12,12, - 8,0,254,146,146,146,146,146,146,146,146,146,255,1,1,7, - 10,10,8,1,0,224,32,32,32,60,34,34,34,34,60,6, - 10,10,8,1,0,132,132,132,132,228,148,148,148,148,228,6, - 10,10,8,1,0,128,128,128,128,248,132,132,132,132,248,6, - 10,10,8,1,0,112,136,4,4,124,4,4,4,136,112,6, - 10,10,8,1,0,152,164,164,164,228,164,164,164,164,152,6, - 10,10,8,1,0,124,132,132,132,124,36,68,68,132,132,6, - 8,8,8,1,0,120,132,4,124,132,132,140,116,6,12,12, - 8,1,0,4,56,64,128,248,132,132,132,132,132,132,120,6, - 8,8,8,1,0,248,132,132,248,132,132,132,248,6,8,8, - 8,1,0,252,128,128,128,128,128,128,128,7,9,9,8,1, - 255,60,36,68,68,132,132,132,254,130,6,8,8,8,1,0, - 120,132,132,252,128,128,132,120,7,8,8,8,1,0,146,146, - 84,56,56,84,146,146,6,8,8,8,1,0,120,132,4,120, - 8,4,132,120,6,8,8,8,1,0,140,140,148,148,164,164, - 196,196,6,12,12,8,1,0,72,48,0,0,140,140,148,148, - 164,164,196,196,6,8,8,8,1,0,140,144,160,192,160,144, - 136,132,6,8,8,8,1,0,60,36,36,36,36,68,68,132, - 6,8,8,8,1,0,132,204,204,180,180,132,132,132,6,8, - 8,8,1,0,132,132,132,252,132,132,132,132,6,8,8,8, - 1,0,120,132,132,132,132,132,132,120,6,8,8,8,1,0, - 252,132,132,132,132,132,132,132,6,10,10,8,1,254,248,132, - 132,132,132,248,128,128,128,128,6,8,8,8,1,0,120,132, - 128,128,128,128,132,120,7,8,8,8,1,0,254,16,16,16, - 16,16,16,16,6,10,10,8,1,254,132,132,72,72,48,48, - 32,32,64,192,7,10,10,8,1,255,16,16,124,146,146,146, - 146,124,16,16,6,8,8,8,1,0,132,132,72,48,48,72, - 132,132,7,10,10,8,1,254,132,132,132,132,132,132,132,254, - 2,2,6,8,8,8,1,0,132,132,132,132,252,4,4,4, - 7,8,8,8,1,0,146,146,146,146,146,146,146,254,8,10, - 10,8,0,254,146,146,146,146,146,146,146,255,1,1,7,8, - 8,8,1,0,224,32,32,60,34,34,34,60,6,8,8,8, - 1,0,132,132,132,228,148,148,148,228,6,8,8,8,1,0, - 128,128,128,248,132,132,132,248,6,8,8,8,1,0,112,136, - 4,124,4,4,136,112,6,8,8,8,1,0,152,164,164,228, - 164,164,164,152,6,8,8,8,1,0,124,132,132,132,124,36, - 68,132,6,12,12,8,1,0,96,24,0,0,120,132,132,252, - 128,128,132,120,6,12,12,8,1,0,72,72,0,0,120,132, - 132,252,128,128,132,120,6,11,11,8,1,255,64,64,240,64, - 64,120,68,68,68,68,24,6,12,12,8,1,0,24,96,0, - 0,252,128,128,128,128,128,128,128,6,8,8,8,1,0,56, - 68,128,248,128,128,68,56,6,8,8,8,1,0,120,132,128, - 96,24,4,132,120,5,11,11,8,2,0,32,32,0,96,32, - 32,32,32,32,32,248,5,11,11,8,2,0,144,144,0,96, - 32,32,32,32,32,32,248,5,13,13,8,1,254,8,8,0, - 24,8,8,8,8,8,8,8,144,96,8,8,8,8,0,0, - 120,72,72,78,73,73,73,142,7,8,8,8,1,0,144,144, - 144,252,146,146,146,156,6,10,10,8,1,0,64,64,240,64, - 64,88,100,68,68,68,6,12,12,8,1,0,24,96,0,0, - 140,144,160,192,160,144,136,132,6,12,12,8,1,0,96,24, - 0,0,140,140,148,148,164,164,196,196,6,15,15,8,1,254, - 132,132,120,0,0,132,132,72,72,48,48,32,32,64,192,5, - 10,10,8,2,254,136,136,136,136,136,136,248,32,32,32}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 8, '1' Height: 7 - Calculated Max Values w=16 h=16 x= 9 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 2 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[3934] U8G_SECTION(".progmem.u8g_font_unifont_12_13") = { - 0,16,16,0,254,8,4,93,5,214,0,255,2,14,254,13, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,85,85,128, - 0,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 4,42,13,170,12,53,245,128,0,0,1,170,170,16,16,32, - 16,0,254,85,85,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,0,1,142,0,14,25,135,224,0,1,128,0,0, - 1,170,170,16,16,32,16,0,254,85,85,128,0,0,1,128, - 0,0,1,128,0,0,25,128,36,0,69,129,68,1,73,158, - 240,0,1,128,0,0,1,170,170,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,12,14,28,16,1,255,1,80,225,80,33,160,17,0,17, - 0,9,0,8,0,4,224,4,128,2,128,3,0,3,0,2, - 0,2,0,11,15,30,16,1,255,0,64,0,128,225,0,33, - 64,16,128,17,32,8,192,8,0,4,224,4,128,2,128,3, - 0,3,0,2,0,2,0,12,7,14,16,2,3,1,144,58, - 96,202,192,17,64,16,64,32,128,31,0,5,10,10,8,1, - 1,8,8,80,16,32,32,64,64,136,160,7,10,10,8,1, - 1,8,8,80,16,32,32,64,66,136,160,10,10,20,16,3, - 2,48,0,48,0,6,0,9,0,7,0,1,0,14,0,240, - 128,0,64,0,64,2,4,4,8,3,3,64,128,192,192,5, - 4,4,8,1,2,24,48,64,128,12,4,8,16,3,1,112, - 0,136,0,136,48,127,192,7,11,11,16,2,0,24,32,32, - 24,32,76,82,98,36,88,128,6,4,4,8,2,9,24,36, - 228,88,9,6,12,16,4,7,3,0,4,0,39,128,56,0, - 64,0,128,0,10,5,10,16,3,8,252,64,16,64,32,128, - 71,0,64,0,11,4,8,16,2,9,24,32,36,32,228,64, - 89,128,10,4,8,16,3,8,0,64,254,64,1,64,0,128, - 7,4,4,16,4,9,64,92,98,252,8,6,6,16,3,8, - 40,40,40,104,128,127,3,5,5,16,6,8,32,0,32,32, - 192,4,2,2,16,6,10,48,192,5,5,5,16,5,8,16, - 40,48,96,144,4,13,13,16,6,254,240,0,0,0,0,0, - 0,0,0,0,0,48,192,2,5,5,8,3,2,64,128,192, - 0,192,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,3,3,3,16,7,0, - 64,0,160,7,9,9,8,1,2,124,130,128,64,32,16,16, - 0,16,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,4,5,5,8,2,2,112,128,240,64, - 128,7,10,10,8,1,3,2,124,128,16,16,16,16,16,16, - 16,3,11,11,8,2,3,96,128,96,128,32,32,32,32,32, - 32,32,6,13,13,8,1,255,24,32,24,32,0,24,36,36, - 60,4,8,144,96,3,12,12,8,3,254,64,64,64,64,64, - 64,64,0,96,128,96,128,6,11,11,8,1,255,48,64,48, - 64,0,140,144,144,140,132,120,1,8,8,8,4,3,128,128, - 128,128,128,128,128,128,6,7,7,8,1,0,8,68,132,120, - 0,0,16,5,8,8,8,2,3,144,0,0,96,144,136,136, - 112,6,7,7,8,1,3,40,0,0,8,68,132,120,6,9, - 9,8,1,3,32,0,80,0,0,8,68,132,120,6,8,8, - 8,1,254,252,32,64,128,144,128,68,56,6,8,8,8,1, - 254,252,32,64,128,128,128,68,56,6,11,11,8,1,254,32, - 0,0,252,32,64,128,128,128,68,56,6,5,5,8,1,3, - 16,8,4,132,248,6,7,7,8,1,3,64,0,16,8,4, - 132,248,6,7,7,8,1,255,8,4,4,4,8,144,96,6, - 10,10,8,1,255,32,0,0,8,4,4,4,8,144,96,7, - 7,7,8,1,255,2,42,42,188,144,144,96,7,12,12,8, - 1,255,16,0,36,0,0,2,42,42,188,144,144,96,7,6, - 6,8,1,0,12,50,156,144,144,96,7,9,9,8,1,0, - 8,0,0,12,50,156,144,144,96,6,8,8,8,1,3,64, - 64,64,64,88,100,68,248,6,8,8,8,1,3,64,72,64, - 64,88,100,68,248,6,9,9,8,1,254,48,72,64,56,64, - 128,128,132,120,6,12,12,8,1,254,16,0,0,48,72,64, - 56,64,128,128,132,120,7,9,9,8,0,3,80,4,8,16, - 32,64,60,130,126,7,12,12,8,0,255,4,8,16,32,64, - 60,130,126,0,40,0,16,6,10,10,8,1,255,64,160,160, - 8,148,144,136,132,132,120,6,9,9,8,1,255,160,0,8, - 148,144,136,132,132,120,6,10,10,8,1,255,64,0,160,8, - 148,144,136,132,132,120,8,1,1,8,0,3,255,6,8,8, - 8,1,3,16,0,12,20,12,132,132,120,6,10,10,8,1, - 0,72,0,0,56,36,20,76,132,136,112,6,8,8,8,1, - 3,4,20,36,20,68,132,132,120,6,11,11,8,1,0,4, - 4,4,4,4,4,68,132,132,136,120,5,8,8,8,2,254, - 112,24,120,128,128,128,128,128,6,9,9,8,1,0,32,0, - 0,8,68,132,132,136,112,10,9,18,16,1,1,4,0,3, - 0,6,128,10,64,10,64,6,64,25,128,96,0,128,0,6, - 8,8,8,1,255,24,36,36,60,4,8,144,96,6,7,7, - 8,1,255,8,148,144,136,132,132,120,6,8,8,8,1,254, - 8,148,144,136,132,120,0,80,4,4,4,8,2,9,48,192, - 48,192,5,5,5,8,2,8,24,24,200,80,224,4,4,4, - 8,2,0,32,192,48,192,4,2,2,8,2,9,48,192,4, - 6,6,8,2,6,64,160,160,112,64,128,4,2,2,8,2, - 254,48,192,5,4,4,8,1,7,8,40,176,192,4,4,4, - 8,2,7,96,144,144,96,7,3,3,8,1,9,2,124,128, - 3,4,4,8,2,10,96,128,96,128,3,4,4,8,2,254, - 96,128,96,128,2,3,3,16,9,254,128,64,64,5,5,5, - 16,5,9,8,16,32,224,96,4,3,3,16,6,9,144,144, - 96,4,1,1,16,6,10,240,5,4,4,16,5,9,136,80, - 32,32,5,4,4,16,5,9,32,32,80,136,2,2,2,16, - 7,0,192,192,5,5,5,16,5,9,96,224,32,16,8,4, - 4,4,16,6,9,144,96,96,144,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,3,3,3, - 8,2,5,64,224,64,4,9,9,8,2,2,128,128,64,64, - 32,32,16,16,16,5,9,9,8,2,2,136,144,96,64,32, - 32,16,16,16,7,9,9,8,1,2,146,164,120,64,32,32, - 16,16,16,6,9,9,8,1,2,8,16,32,64,48,64,128, - 132,120,6,9,9,8,1,2,48,72,72,132,132,132,132,72, - 48,7,9,9,8,1,2,128,120,8,8,4,4,4,2,2, - 7,9,9,8,1,2,130,130,68,68,40,40,16,16,16,7, - 9,9,8,1,2,16,16,16,40,40,68,68,130,130,7,9, - 9,8,1,2,48,72,136,152,104,4,4,2,2,5,10,10, - 8,1,2,8,8,144,144,32,32,72,72,128,128,2,4,4, - 8,3,1,192,192,64,128,2,4,4,8,3,7,192,192,64, - 128,7,6,6,8,1,3,16,16,254,56,108,68,6,4,4, - 8,1,3,8,68,132,120,8,7,7,16,1,3,6,9,9, - 7,65,130,124,1,4,4,8,4,7,128,128,128,128,5,11, - 11,8,2,3,16,40,120,128,32,32,32,32,32,32,32,6, - 11,11,8,1,3,12,16,76,176,0,16,16,16,16,16,16, - 6,12,12,8,1,254,16,16,16,16,16,16,16,0,12,16, - 76,176,3,4,4,8,2,10,96,128,96,128,5,11,11,8, - 2,3,24,32,24,32,128,128,128,128,128,128,128,7,13,13, - 8,1,255,6,8,6,8,0,24,36,36,60,4,8,144,96, - 7,13,13,8,1,255,102,104,38,72,128,24,36,36,60,4, - 8,144,96,7,11,11,8,1,255,6,8,6,8,0,140,144, - 144,140,132,120,6,9,9,8,1,3,64,64,112,112,0,8, - 68,132,120,6,9,9,8,1,3,32,0,32,0,0,8,68, - 132,120,6,8,8,8,1,255,8,68,132,120,0,16,0,16, - 6,10,10,8,1,0,40,0,0,8,68,132,120,16,40,16, - 6,9,9,8,1,3,80,0,32,0,0,8,68,132,120,6, - 8,8,8,1,255,8,68,132,120,0,40,0,16,6,9,9, - 8,1,3,80,0,80,0,0,8,68,132,120,6,8,8,8, - 1,255,8,68,132,120,0,40,0,40,6,13,13,8,1,254, - 48,64,48,64,0,252,32,64,128,128,128,68,56,6,13,13, - 8,1,254,32,0,32,0,0,252,32,64,128,128,128,68,56, - 6,8,8,8,1,254,252,32,64,128,168,128,68,56,6,8, - 8,8,1,254,252,32,64,144,128,144,68,56,6,13,13,8, - 1,254,32,0,72,0,0,252,32,64,128,128,128,68,56,6, - 8,8,8,1,254,252,64,128,168,128,144,68,56,6,8,8, - 8,1,254,252,64,128,168,128,168,68,56,6,10,10,8,1, - 3,64,64,112,112,0,16,8,4,132,248,6,8,8,8,1, - 0,16,8,4,132,248,16,40,16,6,7,7,8,1,1,16, - 8,4,132,248,0,16,6,12,12,8,1,1,64,64,112,112, - 0,16,8,4,132,248,0,16,6,8,8,8,1,3,80,0, - 0,16,8,4,132,248,6,7,7,8,1,1,16,8,4,132, - 248,0,80,6,9,9,8,1,3,32,0,80,0,16,8,4, - 132,248,6,9,9,8,1,3,80,0,32,0,16,8,4,132, - 248,6,9,9,8,1,3,80,0,80,0,16,8,4,132,248, - 6,13,13,8,1,255,16,16,28,28,0,0,8,4,4,4, - 8,144,96,7,13,13,8,1,255,34,20,8,8,0,0,8, - 4,4,4,8,144,96,6,8,8,8,1,254,8,4,4,4, - 8,152,116,8,6,7,7,8,1,255,8,4,4,4,8,144, - 100,7,8,8,8,1,254,16,8,8,8,16,144,106,4,6, - 7,7,8,1,255,8,4,4,36,8,144,100,6,10,10,8, - 1,255,36,0,0,8,4,4,4,8,144,96,6,12,12,8, - 1,255,16,0,40,0,0,8,4,4,4,8,144,96,6,12, - 12,8,1,255,36,0,36,0,0,8,4,4,4,8,144,96, - 7,10,10,8,1,0,8,0,0,2,42,42,188,144,148,96, - 7,8,8,8,1,255,2,42,42,188,160,170,64,4,7,13, - 13,8,1,255,16,0,36,0,0,2,42,42,188,160,170,64, - 4,7,6,6,8,1,0,12,50,156,160,170,64,7,11,11, - 8,1,0,16,0,36,0,0,12,50,156,144,144,96,6,8, - 8,8,1,3,72,64,84,64,88,100,68,248,6,14,14,8, - 1,254,32,0,72,0,0,48,72,64,56,64,128,128,132,120, - 6,6,6,8,1,3,12,20,12,132,132,120,6,8,8,8, - 1,1,12,20,12,132,132,120,0,16,6,11,11,8,1,1, - 8,0,0,12,20,12,132,132,120,0,16,6,10,10,8,1, - 3,16,0,36,0,12,20,12,132,132,120,6,10,10,8,1, - 255,12,20,12,132,132,120,0,72,0,32,6,10,10,8,1, - 3,20,0,20,0,12,20,12,132,132,120,6,10,10,8,1, - 0,8,0,0,56,36,20,76,132,136,112,6,12,12,8,1, - 0,32,0,72,0,0,56,36,20,76,132,136,112,7,8,8, - 8,0,3,4,8,16,32,64,60,130,126,14,8,16,16,1, - 3,0,48,0,192,3,0,12,0,16,0,15,248,128,4,127, - 248,7,8,8,8,0,3,4,12,26,36,64,60,130,126,6, - 10,10,8,1,3,16,0,4,20,36,20,68,132,132,120,6, - 11,11,8,1,3,32,0,80,4,20,36,20,68,132,132,120, - 6,12,12,8,1,255,4,20,36,20,68,132,132,120,0,40, - 0,16,7,10,10,8,0,3,8,16,36,72,16,32,64,60, - 130,126,7,10,10,8,0,3,8,16,36,76,26,36,64,60, - 130,126,7,10,10,8,0,3,80,6,24,98,12,48,64,60, - 130,126,7,12,12,8,0,1,8,16,36,72,16,32,64,60, - 130,126,0,40,7,14,14,8,0,255,8,16,36,72,16,32, - 64,60,130,126,0,16,0,16,7,11,11,8,0,3,64,0, - 166,24,98,12,48,64,60,130,126,7,14,14,8,1,0,34, - 20,8,8,0,4,4,4,4,68,132,132,136,120,6,13,13, - 8,1,0,4,0,4,4,4,4,4,4,68,132,132,136,120, - 7,14,14,8,1,0,8,0,18,0,4,4,4,4,4,68, - 132,132,136,120,6,13,13,8,1,254,4,4,4,4,4,4, - 68,132,120,0,40,0,16,6,11,11,8,1,254,16,0,0, - 8,68,132,132,136,112,0,16,6,6,6,8,1,0,8,68, - 132,132,136,112,6,12,12,8,1,0,32,32,56,56,0,0, - 8,68,132,132,136,112,6,11,11,8,1,254,16,0,0,8, - 68,132,132,136,120,20,8,6,11,11,8,1,0,32,0,72, - 0,0,8,68,132,132,136,112,6,6,6,8,1,2,32,88, - 84,52,72,128,6,11,11,8,1,254,32,0,0,252,64,128, - 168,128,144,68,56,4,10,10,8,2,3,96,128,96,128,0, - 64,96,144,144,240,6,3,3,8,1,2,32,92,128,6,8, - 8,8,1,2,48,64,48,64,0,32,92,128,6,6,6,8, - 1,2,80,0,0,32,92,128,6,8,8,8,1,255,24,36, - 36,28,68,164,72,240,6,8,8,8,1,255,24,36,36,60, - 4,56,144,96,6,13,13,8,1,255,68,40,16,16,0,24, - 36,36,60,4,8,144,96,6,14,14,8,1,255,32,80,80, - 56,32,64,152,36,36,60,4,8,144,96,6,12,12,8,1, - 255,16,8,8,0,24,36,36,60,4,8,144,96,6,12,12, - 8,1,255,16,40,68,0,24,36,36,60,4,8,144,96,6, - 11,11,8,1,255,40,0,0,24,36,36,60,4,8,144,96, - 6,13,13,8,1,255,16,0,36,0,0,24,36,36,60,4, - 8,144,96,6,7,7,8,1,255,8,148,144,136,132,132,120, - 7,7,7,8,0,255,4,42,104,164,34,34,28,6,12,12, - 8,1,255,136,80,32,32,0,8,148,144,136,132,132,120,6, - 11,11,8,1,255,16,0,0,24,36,36,60,4,8,144,96, - 6,9,9,8,1,254,24,164,144,136,112,0,32,0,32,6, - 9,9,8,1,254,24,164,144,136,112,0,80,0,32,7,6, - 6,8,1,255,16,40,32,64,128,254,7,10,10,8,1,255, - 96,128,96,128,16,40,32,64,128,254,4,1,1,8,2,3, - 240,4,5,5,8,2,3,64,96,144,144,240,11,5,10,16, - 3,9,16,64,18,224,127,224,128,0,254,0,10,5,10,16, - 3,9,18,64,17,0,127,0,128,0,254,0,6,4,4,16, - 5,9,8,20,60,192,5,5,5,16,4,9,136,72,48,16, - 48,8,5,5,16,3,9,252,32,72,33,30,3,3,3,16, - 4,8,160,0,128,9,4,8,16,4,9,18,128,159,128,144, - 0,96,0,16,16,32,16,0,254,85,85,128,0,1,193,134, - 48,11,233,140,24,16,5,144,4,16,5,140,24,11,233,134, - 48,1,193,128,0,0,1,170,170,15,15,30,16,1,254,1, - 0,2,128,63,248,40,40,48,24,35,136,100,76,164,74,100, - 76,35,136,48,24,40,40,63,248,2,128,1,0,3,4,4, - 16,6,9,96,160,160,96,4,5,5,16,6,9,96,144,144, - 144,96,6,3,3,16,5,10,252,48,64,3,5,5,16,6, - 9,96,224,128,128,64,9,4,8,16,4,254,18,128,159,128, - 144,0,96,0,6,2,2,16,5,10,12,240,5,4,4,8, - 2,9,24,24,16,224,7,4,4,8,1,9,32,64,128,254, - 7,4,4,16,3,9,32,64,128,254,6,4,4,16,5,9, - 16,132,132,124,15,15,30,16,1,254,1,0,2,128,5,64, - 10,160,21,80,42,168,84,84,42,168,42,168,42,168,43,168, - 40,40,47,232,96,12,255,254,5,5,5,16,5,9,32,80, - 136,80,32,5,5,5,16,5,254,32,80,136,80,32,2,2, - 2,16,7,11,192,192,2,4,4,16,7,254,192,128,128,64, - 6,9,9,8,1,3,16,40,68,0,16,8,4,132,248,7, - 11,11,8,1,255,8,20,34,0,8,4,4,4,8,144,96, - 3,3,3,8,2,5,64,224,64,4,9,9,8,2,2,128, - 128,64,64,32,32,16,16,16,5,9,9,8,2,2,136,144, - 96,64,32,32,16,16,16,7,9,9,8,1,2,146,164,120, - 64,32,32,16,16,16,6,9,9,8,1,2,48,72,192,228, - 88,64,32,32,32,7,9,9,8,1,1,16,16,40,40,68, - 68,146,170,198,6,8,8,8,1,2,56,68,64,64,48,12, - 48,192,7,9,9,8,1,2,130,130,68,68,40,40,16,16, - 16,7,9,9,8,1,2,16,16,16,40,40,68,68,130,130, - 7,9,9,8,1,2,48,72,136,152,104,4,4,2,2,7, - 12,12,8,1,0,16,0,36,0,0,2,42,42,188,144,148, - 96,7,9,9,8,1,0,8,0,0,12,50,156,144,148,96, - 6,12,12,8,1,254,16,0,0,48,72,64,56,64,144,128, - 132,120,4,10,10,8,2,254,112,128,240,64,128,0,80,80, - 80,80,6,8,8,8,1,254,56,12,124,128,148,148,148,148, - 10,12,24,16,1,1,4,0,10,0,17,0,4,0,3,0, - 6,128,10,64,10,64,6,64,25,128,96,0,128,0}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 3, '1' Height: 12 - Calculated Max Values w=16 h=16 x=12 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent=-2 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[6498] U8G_SECTION(".progmem.u8g_font_unifont_18_19") = { - 0,16,16,0,254,3,7,129,10,5,0,255,254,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,8,4,4,16,4,9,152,91,35, - 28,2,2,2,16,7,11,192,192,2,5,5,16,12,3,192, - 192,0,192,192,14,15,30,16,2,255,32,0,31,0,0,128, - 57,252,68,192,4,192,12,192,56,192,8,192,135,192,134,192, - 78,192,60,192,0,192,0,64,15,12,24,16,1,255,57,254, - 68,192,4,192,12,192,56,192,8,192,135,192,134,192,78,192, - 60,192,0,192,0,64,15,12,24,16,1,255,57,254,68,204, - 4,204,12,204,56,204,8,204,135,204,134,204,78,204,60,204, - 0,204,0,68,16,13,26,16,0,254,255,255,0,192,0,192, - 15,192,24,0,24,0,15,224,0,48,3,48,5,176,7,224, - 0,64,0,32,16,16,32,16,0,254,3,192,6,32,1,0, - 255,255,0,192,0,192,15,192,24,0,24,0,15,224,0,48, - 3,48,5,176,7,224,0,64,0,32,16,12,24,16,0,255, - 255,255,1,128,0,192,0,192,1,192,15,128,65,128,64,192, - 32,192,16,192,9,192,7,128,16,12,24,16,0,255,255,255, - 1,128,0,192,0,192,1,192,15,156,65,178,64,226,32,194, - 16,198,9,196,7,128,16,13,26,16,0,254,255,255,1,128, - 57,128,101,152,3,152,7,248,31,136,57,136,33,156,1,184, - 1,160,0,160,0,30,16,12,24,16,0,255,255,255,0,32, - 0,32,56,32,116,248,99,204,99,12,48,12,16,120,12,192, - 2,128,0,124,16,16,32,16,0,254,0,152,0,112,0,0, - 255,255,12,48,12,48,12,48,12,48,12,96,4,0,2,0, - 1,128,0,96,0,16,0,24,0,24,16,16,32,16,0,254, - 16,0,15,224,0,16,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,13,26,16,0,254,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,16,32,16,0,254,15,0,0,128,0,64,255,255,12,48, - 12,48,12,48,12,48,12,96,4,0,2,0,1,128,0,96, - 0,16,0,24,0,24,15,15,30,16,1,255,0,76,0,60, - 0,0,57,254,68,204,4,204,12,204,56,204,8,204,135,204, - 134,204,78,204,60,204,0,204,0,68,15,15,30,16,1,255, - 2,0,1,240,0,8,57,254,68,204,4,204,12,204,56,204, - 8,204,135,204,134,204,78,204,60,204,0,204,0,68,15,15, - 30,16,1,255,1,192,0,32,0,16,57,254,68,204,4,204, - 12,204,56,204,8,204,135,204,134,204,78,204,60,204,0,204, - 0,68,15,15,30,16,1,255,0,224,1,208,0,40,57,254, - 68,204,4,204,12,204,56,204,8,204,135,204,134,204,78,204, - 60,204,0,204,0,68,16,12,24,16,0,255,255,255,1,128, - 1,128,29,128,51,224,35,144,39,152,29,152,1,152,1,152, - 1,128,0,128,16,12,24,16,0,255,255,255,8,24,8,24, - 9,216,59,56,58,24,18,56,17,216,8,24,6,24,1,152, - 0,8,16,12,24,16,0,255,255,255,1,152,1,152,1,152, - 1,152,7,152,3,152,1,152,0,152,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,12,24,12,24,7,216,2,24, - 4,24,4,56,4,120,3,216,0,24,0,24,0,8,16,11, - 22,16,0,0,255,255,0,96,0,96,15,224,24,0,24,4, - 15,206,0,100,16,96,8,96,7,192,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,31,248,3,24,6,56,6,120, - 3,216,0,24,0,24,0,8,16,13,26,16,0,254,255,255, - 0,16,0,16,60,120,112,228,96,196,32,68,31,44,12,24, - 24,56,24,100,7,134,0,6,16,12,24,16,0,255,255,255, - 0,24,0,24,0,24,3,248,17,152,8,216,8,216,7,152, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,3,24, - 3,24,31,24,48,24,48,24,31,248,1,24,13,24,22,24, - 29,24,0,136,16,12,24,16,0,255,255,255,0,24,0,24, - 7,24,5,152,33,184,33,248,33,216,19,152,15,24,0,24, - 0,8,16,11,22,16,0,0,255,255,0,192,0,192,0,192, - 7,192,12,0,24,0,24,0,24,0,12,16,7,224,16,12, - 24,16,0,255,255,255,1,128,1,128,1,128,3,128,7,96, - 12,16,8,24,8,24,8,56,4,112,3,224,16,11,22,16, - 0,0,255,255,0,24,0,24,3,248,6,0,6,0,3,240, - 0,24,4,24,2,24,1,240,16,12,24,16,0,255,255,255, - 0,96,0,96,7,224,12,0,24,0,24,192,25,160,9,16, - 5,16,3,48,1,224,16,12,24,16,0,255,255,255,25,152, - 25,152,25,152,25,152,25,152,9,152,7,24,0,24,0,24, - 0,24,0,8,16,12,24,16,0,255,255,255,0,24,0,24, - 0,24,7,248,14,24,12,24,12,24,6,24,2,24,1,24, - 0,136,13,12,24,16,3,255,227,248,216,192,204,192,76,192, - 28,192,120,192,97,192,35,192,30,192,0,192,0,192,0,64, - 16,12,24,16,0,255,255,255,0,24,0,24,0,24,1,248, - 2,0,6,0,6,24,2,40,1,240,0,8,0,4,13,12, - 24,16,3,255,115,248,200,192,192,192,192,192,96,192,28,192, - 48,192,96,192,97,192,99,192,30,192,0,64,16,12,24,16, - 0,255,255,255,0,24,0,24,0,24,7,248,6,24,6,24, - 2,24,0,24,0,24,0,24,0,8,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,7,248,6,24,6,24,2,24, - 0,24,1,24,3,152,1,8,16,12,24,16,0,255,255,255, - 6,24,6,24,6,24,6,24,6,24,2,56,1,216,0,24, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,49,128, - 49,128,49,128,49,240,49,200,19,132,15,132,1,132,1,140, - 1,140,0,128,16,12,24,16,0,255,255,255,0,24,0,24, - 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, - 0,8,14,12,24,16,2,255,227,252,216,96,200,96,76,96, - 60,96,12,96,31,224,28,96,12,96,0,96,0,96,0,32, - 16,12,24,16,0,255,255,255,6,24,6,24,6,24,6,24, - 6,24,15,248,6,24,2,24,0,24,0,24,0,8,16,12, - 24,16,0,255,255,255,3,24,3,24,3,24,3,24,6,24, - 4,56,4,120,3,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,0,192,0,192,0,192,3,192,3,128,3,128, - 1,0,0,128,0,64,0,32,0,24,16,12,24,16,0,255, - 255,255,0,192,0,192,0,192,3,192,3,128,3,128,1,0, - 0,128,4,64,14,32,4,24,16,12,24,16,0,255,255,255, - 0,24,0,24,28,56,58,248,49,216,49,152,24,24,8,24, - 4,24,3,24,0,8,16,11,22,16,0,0,255,255,0,48, - 0,48,0,112,14,200,25,140,49,140,49,140,49,152,19,112, - 14,0,16,13,26,16,0,254,255,255,0,48,0,48,0,112, - 14,200,25,140,49,140,49,140,49,152,19,112,14,0,0,192, - 0,192,16,12,24,16,0,255,255,255,0,24,0,24,3,216, - 15,56,12,24,12,56,4,120,3,216,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,6,24,6,24,31,24,1,152, - 1,152,25,152,21,24,30,24,2,24,1,24,0,136,16,12, - 24,16,0,255,255,255,12,24,14,24,13,24,12,152,12,88, - 12,56,6,56,1,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,3,24,3,24,3,24,11,24,15,24,14,248, - 4,24,4,24,2,24,1,24,0,136,16,12,24,16,0,255, - 255,255,0,24,0,24,7,248,12,0,12,0,6,240,1,152, - 3,16,3,0,1,128,0,252,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 2,2,2,16,7,255,192,192,9,11,22,16,7,0,63,128, - 64,0,64,0,96,0,48,0,24,0,8,0,12,0,12,0, - 156,0,120,0,6,13,13,16,10,254,252,48,48,48,48,48, - 48,48,48,48,48,48,16,8,14,14,16,0,0,60,98,49, - 252,48,48,48,48,48,48,48,48,48,16,9,16,32,16,7, - 254,120,0,132,0,132,0,31,128,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,2, - 0,6,3,3,16,4,255,152,68,56,6,3,3,16,6,255, - 112,136,100,4,3,3,16,6,255,96,128,112,3,5,5,16, - 6,255,96,128,96,128,96,5,3,3,16,5,10,136,72,48, - 5,3,3,16,4,10,128,112,8,5,3,3,16,4,10,224, - 16,8,6,4,4,16,3,9,112,8,228,28,6,16,16,16, - 10,254,136,120,0,252,48,48,48,48,48,48,48,48,48,48, - 48,16,8,16,16,16,8,254,128,120,4,63,12,12,12,12, - 12,12,12,12,12,12,12,4,8,16,16,16,8,254,240,8, - 4,63,12,12,12,12,12,12,12,12,12,12,12,4,9,16, - 32,16,7,254,120,0,244,0,10,0,31,128,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,2,0,5,3,3,16,6,255,224,16,8,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,14,14,28,16,1,0,0,96,0,96,0, - 0,113,8,248,240,4,0,4,24,24,60,48,36,8,36,132, - 124,135,216,121,128,48,0,1,3,3,16,8,10,128,128,128, - 4,1,1,16,6,0,240,3,3,3,16,6,10,128,64,32, - 3,3,3,16,7,10,32,64,128,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,16,13,26,16,0,254,255,255,0,192,0, - 192,14,192,25,248,17,200,19,204,14,204,0,204,0,204,4, - 192,14,64,4,0,16,13,26,16,0,254,255,255,8,24,8, - 24,9,216,59,56,58,24,18,56,17,216,8,24,4,24,0, - 152,1,200,0,128,16,13,26,16,0,254,255,255,1,152,1, - 152,1,152,1,152,7,152,3,152,1,152,0,152,0,24,0, - 152,1,200,0,128,16,13,26,16,0,254,255,255,0,24,0, - 24,0,24,3,248,17,152,8,216,8,216,7,152,0,24,0, - 152,1,200,0,128,16,13,26,16,0,254,255,255,0,24,0, - 24,3,248,6,0,6,0,3,240,0,24,4,24,3,240,0, - 0,0,192,0,192,16,13,26,16,0,254,255,255,0,96,0, - 96,7,224,12,0,24,224,25,144,25,16,13,48,7,224,0, - 0,1,128,1,128,16,13,26,16,0,254,255,255,49,128,49, - 128,49,128,49,240,49,200,19,132,15,132,1,132,1,140,9, - 140,28,128,8,0,16,13,26,16,0,254,255,255,3,24,3, - 24,3,24,3,24,6,24,4,56,4,120,3,216,0,24,1, - 24,3,136,1,0,16,13,26,16,0,254,255,255,3,0,3, - 0,51,24,75,40,7,240,15,24,51,8,67,24,3,48,3, - 28,1,16,0,14,16,13,26,16,0,254,255,255,0,32,0, - 32,30,112,49,152,49,152,16,48,8,96,4,192,0,60,0, - 192,0,192,0,60,8,5,5,16,4,255,72,146,130,68,3, - 8,6,6,16,4,254,72,146,132,67,4,3,2,12,12,16, - 7,255,128,192,192,192,192,192,192,192,192,192,192,64,5,12, - 12,16,6,255,144,216,216,216,216,216,216,216,216,216,216,72, - 8,7,7,16,4,2,60,78,199,195,227,114,60,6,13,13, - 16,5,254,112,232,204,204,76,60,24,48,96,32,16,8,4, - 9,13,26,16,4,254,252,0,226,0,1,0,1,0,1,0, - 3,0,54,0,44,0,56,0,4,0,2,0,1,0,0,128, - 8,13,13,16,4,254,252,226,2,2,60,2,1,51,46,60, - 4,2,1,12,12,24,16,2,255,128,16,64,48,32,96,16, - 192,9,128,7,0,6,0,13,0,9,128,9,128,9,128,7, - 0,8,13,13,16,4,254,192,195,195,67,62,12,12,104,88, - 120,4,2,1,8,13,13,16,4,254,60,192,128,192,124,16, - 32,35,51,15,4,4,2,11,11,22,16,3,0,128,0,135, - 0,142,192,140,64,68,96,67,224,64,32,32,32,32,64,24, - 192,7,0,10,10,20,16,3,1,255,192,32,0,64,0,128, - 0,128,0,131,0,135,128,124,128,56,128,0,128,8,12,12, - 16,4,255,56,100,98,97,32,56,72,192,192,192,32,31,5, - 4,4,16,6,3,112,136,136,112,2,2,2,16,8,6,192, - 192,15,15,30,16,1,255,2,0,1,32,0,192,57,254,68, - 192,4,192,12,192,56,192,8,192,135,192,134,192,78,192,60, - 192,0,192,0,64,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,16,12,24,16,0,255,255,255,1,152,1, - 152,1,152,1,152,7,152,3,152,1,152,0,152,0,24,0, - 24,15,248,16,12,24,16,0,255,255,255,0,24,0,24,0, - 24,3,248,17,152,8,216,8,216,7,152,0,24,0,24,31, - 248,8,13,13,16,4,254,124,226,193,1,1,3,62,60,48, - 48,48,48,16,16,13,26,16,0,254,255,255,0,24,0,24, - 3,248,6,0,6,0,3,240,0,24,4,24,2,24,1,240, - 0,0,15,254,16,12,24,16,0,255,255,255,0,24,0,24, - 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, - 15,248,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,4,4,16,5,9,48,180,132,120, - 5,8,8,16,11,0,96,144,96,0,192,96,48,8,4,7, - 7,16,11,1,96,144,96,0,96,144,96,6,14,14,8,1, - 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,16, - 12,24,16,0,255,255,255,0,12,64,12,67,140,71,204,71, - 236,99,44,32,108,48,124,24,220,15,140,0,4,16,13,26, - 16,0,255,0,6,255,247,0,110,64,102,70,102,79,102,79, - 102,69,102,65,102,97,102,51,230,30,102,0,34,16,15,30, - 16,0,255,32,0,31,192,0,32,255,255,0,0,15,192,24, - 96,60,48,60,48,24,48,0,96,63,192,7,0,1,192,0, - 124,16,15,30,16,0,255,32,0,31,240,0,8,255,255,30, - 0,63,12,59,30,25,56,1,248,1,240,3,144,79,16,60, - 16,16,24,0,14,16,15,30,16,0,255,16,0,15,224,0, - 16,255,255,3,0,3,0,67,0,67,16,67,56,99,108,33, - 204,48,12,24,12,14,24,3,240,16,15,30,16,0,255,16, - 0,15,224,0,16,255,255,3,0,3,0,83,0,83,16,83, - 56,83,108,73,204,40,12,36,12,18,24,15,240,15,14,28, - 16,1,255,64,0,228,0,230,206,133,204,121,204,3,204,14, - 204,120,204,96,236,120,252,14,220,3,204,1,204,0,68,14, - 14,28,16,1,255,64,0,128,0,128,0,64,0,127,192,31, - 240,0,56,15,12,24,140,56,76,56,76,56,76,16,216,3, - 240,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,14,13,26,16,1,255,0, - 48,0,248,1,140,3,12,135,140,135,140,131,12,128,12,192, - 12,64,108,96,156,51,12,14,4,14,15,30,16,1,255,0, - 8,0,16,0,16,0,216,3,236,6,52,140,52,158,52,158, - 52,140,56,192,48,65,176,98,112,60,48,24,16,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,14,13,26,16,1,255,0,240,3,24,6, - 12,14,12,142,12,134,120,192,248,64,120,96,12,48,12,24, - 12,12,24,7,240,14,15,30,16,1,255,0,8,0,16,0, - 16,7,216,8,108,28,52,28,52,156,52,137,228,131,248,193, - 224,64,48,96,48,48,112,31,224,16,12,24,16,0,255,255, - 255,0,96,0,96,1,248,7,100,60,98,48,98,60,110,7, - 108,1,224,0,224,0,32,14,13,26,16,2,255,64,0,226, - 60,227,48,197,48,121,48,1,48,6,48,120,48,126,48,1, - 176,0,112,0,48,0,16,14,12,24,16,2,255,62,124,113, - 96,224,224,224,96,252,96,70,96,6,96,6,96,28,96,120, - 96,32,96,0,32,16,12,24,16,0,255,255,255,24,24,48, - 24,56,24,31,152,1,152,6,24,12,24,31,24,1,216,0, - 56,0,8,12,13,26,16,2,255,32,0,35,192,22,64,12, - 64,15,128,140,0,136,32,136,112,199,176,64,48,96,48,48, - 96,31,128,16,12,24,16,0,255,255,255,24,0,24,0,28, - 0,27,0,24,252,24,12,24,12,24,12,24,24,28,48,15, - 192,16,12,24,16,0,255,255,255,24,0,24,0,28,0,27, - 224,24,56,24,104,28,200,15,16,0,96,1,248,0,14,16, - 12,24,16,0,255,255,255,1,240,3,28,70,15,76,2,76, - 196,79,36,102,44,32,44,48,100,24,196,15,131,16,12,24, - 16,0,255,255,231,0,102,0,102,1,230,7,102,60,102,48, - 102,60,102,7,126,1,238,0,230,0,34,14,13,26,16,1, - 255,7,0,13,128,25,176,49,248,57,204,185,140,145,184,129, - 140,193,204,199,248,111,176,121,128,48,128,16,15,30,16,0, - 255,16,0,15,192,0,32,255,255,24,0,24,0,24,0,24, - 96,24,240,24,112,24,48,24,96,24,192,15,128,7,0,16, - 15,30,16,0,255,16,0,15,0,0,128,255,255,0,128,0, - 128,0,192,1,192,1,96,35,48,58,24,20,24,24,24,12, - 48,7,224,16,12,24,16,0,255,255,255,3,0,3,0,67, - 0,67,16,67,56,99,108,33,204,48,12,24,12,14,24,3, - 240,16,12,24,16,0,255,255,255,24,0,24,0,24,0,24, - 96,24,240,24,112,24,48,24,96,24,192,15,128,7,0,13, - 13,26,16,3,255,28,96,62,120,97,96,192,224,192,224,224, - 96,224,96,64,96,0,96,0,96,0,96,0,96,0,32,16, - 12,24,16,0,255,255,255,0,0,65,248,67,12,67,132,67, - 134,99,134,33,6,48,6,24,12,12,28,7,240,15,13,26, - 16,1,255,60,0,98,62,241,48,241,48,97,48,1,48,6, - 48,120,48,126,48,1,176,0,112,0,48,0,16,16,12,24, - 16,0,255,255,255,12,0,12,0,12,120,12,240,13,224,13, - 96,15,96,14,96,14,96,12,48,8,28,12,13,26,16,4, - 255,96,0,240,240,224,192,128,192,99,192,30,192,56,192,224, - 192,248,192,14,192,3,192,1,192,0,64,16,12,24,16,0, - 255,255,255,0,24,0,24,0,24,0,24,30,24,63,152,60, - 216,56,120,0,56,0,24,0,8,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,15,13,26, - 16,1,255,14,48,31,190,48,240,96,112,240,240,155,176,14, - 48,24,48,32,48,0,48,0,48,0,48,0,16,16,12,24, - 16,0,255,255,255,16,0,56,120,12,100,6,98,12,98,24, - 110,48,108,63,96,1,224,0,96,0,32,16,12,24,16,0, - 255,255,255,0,24,0,24,0,120,3,216,7,24,28,24,31, - 24,1,216,0,120,0,56,0,8,16,12,24,16,0,255,255, - 255,0,0,66,16,71,8,71,12,70,20,99,230,32,6,48, - 6,24,12,12,28,7,240,16,12,24,16,0,255,255,255,12, - 24,28,24,14,24,3,24,3,24,3,24,15,216,30,120,12, - 56,0,24,0,8,16,12,24,16,0,255,255,255,8,48,28, - 48,6,48,3,48,6,48,12,48,24,48,31,176,0,240,0, - 48,0,16,16,12,24,16,0,255,255,255,0,24,0,120,3, - 216,7,24,28,24,31,24,1,216,2,120,7,56,7,24,2, - 8,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,16,12,24,16,0,255,255,255,0,6,0, - 6,28,22,62,62,99,102,65,198,65,198,64,134,124,6,60, - 6,24,2,6,14,14,8,1,255,168,84,168,84,168,84,168, - 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, - 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, - 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,15, - 13,26,16,1,255,112,204,249,238,143,60,143,28,31,140,63, - 204,25,140,0,12,0,12,0,12,0,12,0,12,0,4,16, - 12,24,16,0,255,255,255,28,24,14,24,7,152,1,216,6, - 120,28,24,31,24,1,216,0,120,0,56,0,8,16,12,24, - 16,0,255,255,255,16,12,56,12,28,12,6,12,2,204,1, - 236,3,28,102,12,60,12,24,12,0,4,16,12,24,16,0, - 255,255,255,0,0,15,192,24,96,60,48,60,48,24,48,0, - 96,63,192,7,0,1,192,0,124,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,2,2,2,16,7,255,192,192,14,12,24,16,0,255,240, - 0,8,0,15,192,28,96,60,48,60,48,24,48,0,96,63, - 192,7,0,1,192,0,124,5,10,10,16,11,255,48,184,112, - 48,48,48,48,48,48,16,13,14,28,16,0,255,15,128,63, - 224,96,16,96,8,32,0,248,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,16,0,12,14,28,16,4,255,63, - 0,65,128,128,192,190,64,65,64,1,240,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,64,6,5,5,16,5, - 254,4,104,144,104,4,6,5,5,16,6,254,96,128,112,8, - 4,5,5,5,16,5,254,24,96,128,96,24,3,5,5,16, - 6,255,96,128,96,128,64,6,14,14,8,1,255,168,84,168, - 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, - 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,5, - 9,9,16,0,255,248,24,48,96,64,64,64,88,56,5,12, - 12,16,0,255,128,112,8,248,24,48,96,64,64,64,88,56, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,16,10,20,16,0,255,0,6, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,16,13,26,16,0,255,0,128,0,112,0,8,0,4, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,5,3,3,16,6,0,192,48,8,8,12,12,16,4, - 255,56,92,204,236,216,192,96,56,12,6,3,1,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,8,13,13, - 16,8,255,128,112,8,4,23,14,6,6,6,6,6,6,2, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 16,13,26,16,0,254,255,255,3,0,67,16,67,56,99,108, - 35,204,49,140,24,12,14,24,3,240,0,0,0,192,0,192, - 16,13,26,16,0,254,255,255,12,0,12,0,12,0,12,48, - 12,120,12,56,12,48,7,224,3,192,0,0,1,128,1,128, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,16,13,26,16,0,254,255,255,4,24,14,24, - 3,24,1,152,3,24,6,24,12,24,15,216,0,120,1,24, - 3,136,1,0,15,15,30,16,1,254,64,0,228,0,230,206, - 133,204,121,204,3,204,14,204,120,204,96,236,120,252,14,220, - 123,204,97,204,120,68,14,0,8,14,14,16,4,255,128,124, - 3,121,197,205,158,128,124,3,121,197,205,158,7,5,5,16, - 5,255,124,2,114,202,220,10,6,12,16,5,255,3,128,112, - 64,10,64,77,64,173,128,176,0,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,10,11,22,16,3,0,30,0,63,0,97,128,192,192,192, - 192,192,192,192,192,192,192,97,128,63,0,30,0,9,12,24, - 16,4,0,64,0,64,0,96,0,56,0,14,0,3,0,1, - 128,97,128,225,128,225,128,195,0,126,0,10,11,22,16,3, - 0,224,0,56,0,14,0,3,0,3,0,227,0,126,0,28, - 0,6,0,1,128,0,64,12,12,24,16,2,255,131,192,132, - 96,136,48,140,48,142,48,142,48,134,48,64,48,64,96,32, - 96,17,192,15,0,11,13,26,16,2,255,31,0,63,128,96, - 192,64,64,96,192,49,128,31,0,96,192,192,96,192,96,224, - 224,127,192,31,0,11,13,26,16,2,255,7,0,30,0,57, - 96,112,192,97,128,195,0,198,0,198,0,198,0,198,0,99, - 96,48,192,31,128,12,12,24,16,2,255,28,0,12,0,12, - 0,140,0,140,96,140,160,141,176,199,48,64,48,96,48,48, - 96,31,192,9,13,26,16,4,255,60,0,126,0,195,0,195, - 0,199,0,127,0,59,0,3,0,3,0,3,0,3,0,3, - 0,1,128,13,13,26,16,1,255,224,0,96,0,96,0,96, - 8,103,240,127,192,112,96,96,96,96,96,96,96,112,192,63, - 128,30,0,12,15,30,16,2,254,128,0,128,0,96,0,60, - 0,15,0,3,192,0,224,0,48,60,48,66,48,225,48,225, - 48,225,96,65,192,1,0,16,12,24,16,0,255,255,255,0, - 24,0,24,0,120,3,216,7,152,28,120,31,24,1,216,0, - 120,0,56,0,8,16,13,26,16,0,254,255,255,0,24,0, - 24,0,120,3,216,7,24,28,24,31,24,1,216,28,120,7, - 56,1,136,0,64,9,8,16,16,3,3,224,0,248,0,124, - 0,14,0,3,0,1,0,0,128,0,128,12,13,26,16,1, - 255,48,0,120,0,204,0,12,0,31,240,12,0,12,96,12, - 240,12,240,12,48,12,96,7,192,3,128,9,8,16,16,3, - 2,0,128,0,128,1,0,3,0,14,0,124,0,248,0,224, - 0,12,9,18,16,2,2,56,16,124,16,226,32,242,96,242, - 192,98,192,7,128,15,0,14,0,12,13,26,16,2,255,0, - 16,0,16,0,16,56,16,124,16,126,16,62,16,6,48,12, - 96,248,224,193,192,127,128,30,0,2,13,13,16,8,255,128, - 192,192,192,192,192,192,192,192,192,192,192,64,11,13,26,16, - 2,255,224,0,96,0,96,192,97,192,99,192,98,192,102,192, - 108,192,120,192,112,192,96,192,0,192,0,96,11,10,20,16, - 3,1,31,0,63,128,96,192,192,96,192,96,192,96,192,96, - 96,192,63,128,31,0,14,9,18,16,1,255,0,4,2,4, - 135,8,135,8,66,16,96,48,48,96,31,192,15,0,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 4 y= 1 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[4628] U8G_SECTION(".progmem.u8g_font_unifont_2_3") = { - 0,16,16,0,254,10,4,220,7,27,0,255,0,14,254,14, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,11,11,8,1,0,120,0,0, - 120,132,4,124,132,132,140,116,6,14,14,8,1,0,132,132, - 120,0,48,72,72,132,132,252,132,132,132,132,6,13,13,8, - 1,0,132,132,120,0,0,120,132,4,124,132,132,140,116,7, - 12,12,8,1,254,48,72,72,132,132,252,132,132,132,132,8, - 6,7,10,10,8,1,254,120,132,4,124,132,132,140,116,8, - 6,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, - 128,128,132,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,128,128,128,128,132,120,6,14,14,8,1,0,48,72,0, - 0,120,132,132,128,128,128,128,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,128,128,128,128,132,120,6,14,14, - 8,1,0,32,32,0,0,120,132,132,128,128,128,128,132,132, - 120,6,12,12,8,1,0,32,32,0,0,120,132,128,128,128, - 128,132,120,6,14,14,8,1,0,72,48,0,0,120,132,132, - 128,128,128,128,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,128,128,128,128,132,120,6,14,14,8,1,0,144, - 96,0,0,240,136,132,132,132,132,132,132,136,240,6,14,14, - 8,1,0,72,48,0,4,4,4,116,140,132,132,132,132,140, - 116,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,12,12,8,1,0,4,30,4,4,116,140,132,132,132, - 132,140,116,6,13,13,8,1,0,120,0,0,252,128,128,128, - 248,128,128,128,128,252,6,11,11,8,1,0,120,0,0,120, - 132,132,252,128,128,132,120,6,14,14,8,1,0,132,132,120, - 0,252,128,128,128,248,128,128,128,128,252,6,12,12,8,1, - 0,132,132,120,0,120,132,132,252,128,128,132,120,6,14,14, - 8,1,0,32,32,0,0,252,128,128,128,248,128,128,128,128, - 252,6,12,12,8,1,0,32,32,0,0,120,132,132,252,128, - 128,132,120,6,12,12,8,1,254,252,128,128,128,248,128,128, - 128,128,252,16,12,6,10,10,8,1,254,120,132,132,252,128, - 128,132,120,32,24,6,14,14,8,1,0,72,48,0,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,72, - 48,0,0,120,132,132,252,128,128,132,120,6,14,14,8,1, - 0,48,72,0,0,120,132,132,128,128,156,132,132,140,116,6, - 14,14,8,1,254,48,72,0,4,116,136,136,136,112,64,120, - 132,132,120,6,14,14,8,1,0,132,132,120,0,120,132,132, - 128,128,156,132,132,140,116,6,15,15,8,1,254,132,132,120, - 0,4,116,136,136,136,112,64,120,132,132,120,6,14,14,8, - 1,0,32,32,0,0,120,132,132,128,128,156,132,132,140,116, - 6,14,14,8,1,254,32,32,0,4,116,136,136,136,112,64, - 120,132,132,120,6,12,12,8,1,254,120,132,132,128,128,156, - 132,132,140,116,16,96,6,14,14,8,1,254,24,32,0,4, - 116,136,136,136,112,64,120,132,132,120,6,14,14,8,1,0, - 48,72,0,0,132,132,132,132,252,132,132,132,132,132,6,14, - 14,8,1,0,96,144,0,128,128,128,184,196,132,132,132,132, - 132,132,8,10,10,8,0,0,66,66,255,66,66,126,66,66, - 66,66,7,11,11,8,0,1,64,240,64,64,92,98,66,66, - 66,66,66,6,14,14,8,1,0,100,152,0,0,124,16,16, - 16,16,16,16,16,16,124,6,12,12,8,1,0,100,152,0, - 0,48,16,16,16,16,16,16,124,5,13,13,8,2,0,240, - 0,0,248,32,32,32,32,32,32,32,32,248,5,11,11,8, - 2,0,240,0,0,96,32,32,32,32,32,32,248,6,14,14, - 8,1,0,132,132,120,0,124,16,16,16,16,16,16,16,16, - 124,6,12,12,8,1,0,132,132,120,0,48,16,16,16,16, - 16,16,124,5,12,12,8,2,254,248,32,32,32,32,32,32, - 32,32,248,32,24,5,13,13,8,2,254,32,32,0,96,32, - 32,32,32,32,32,248,32,24,5,14,14,8,2,0,32,32, - 0,0,248,32,32,32,32,32,32,32,32,248,5,8,8,8, - 2,0,96,32,32,32,32,32,32,248,6,10,10,8,1,0, - 132,132,132,132,132,132,4,4,132,120,5,14,14,8,2,254, - 136,136,0,0,136,136,136,136,136,136,104,8,136,112,7,14, - 14,8,1,0,24,36,0,0,62,8,8,8,8,8,8,136, - 136,112,6,14,14,8,1,254,24,36,0,0,24,8,8,8, - 8,8,8,8,144,96,7,12,12,8,0,254,66,68,72,80, - 96,96,80,72,68,66,32,192,7,12,12,8,0,254,64,64, - 68,72,80,96,80,72,68,66,32,192,6,8,8,8,1,0, - 132,136,144,224,224,144,136,132,6,14,14,8,1,0,48,192, - 0,0,128,128,128,128,128,128,128,128,128,252,5,14,14,8, - 2,0,48,192,0,0,96,32,32,32,32,32,32,32,32,248, - 6,12,12,8,1,254,128,128,128,128,128,128,128,128,128,252, - 16,96,5,12,12,8,2,254,96,32,32,32,32,32,32,32, - 32,248,32,192,6,14,14,8,1,0,72,48,0,0,128,128, - 128,128,128,128,128,128,128,252,5,14,14,8,2,0,144,96, - 0,0,96,32,32,32,32,32,32,32,32,248,6,10,10,8, - 1,0,128,128,128,128,136,136,128,128,128,252,5,10,10,8, - 1,0,96,32,32,32,40,40,32,32,32,248,7,10,10,8, - 0,0,64,64,72,80,96,192,64,64,64,126,5,10,10,8, - 2,0,96,32,40,48,96,160,32,32,32,248,6,14,14,8, - 1,0,24,96,0,0,132,196,196,164,164,148,148,140,140,132, - 6,12,12,8,1,0,24,96,0,0,184,196,132,132,132,132, - 132,132,7,12,12,8,0,254,66,98,98,82,82,74,74,70, - 70,66,32,192,7,10,10,8,0,254,92,98,66,66,66,66, - 66,66,32,192,6,14,14,8,1,0,72,48,0,0,132,196, - 196,164,164,148,148,140,140,132,6,12,12,8,1,0,72,48, - 0,0,184,196,132,132,132,132,132,132,6,13,13,8,1,0, - 192,64,64,128,0,184,196,132,132,132,132,132,132,6,10,10, - 8,1,0,184,196,132,132,132,132,132,132,132,152,6,10,10, - 8,1,254,184,196,132,132,132,132,132,132,4,24,6,13,13, - 8,1,0,120,0,0,120,132,132,132,132,132,132,132,132,120, - 6,11,11,8,1,0,120,0,0,120,132,132,132,132,132,132, - 120,6,14,14,8,1,0,132,132,120,0,120,132,132,132,132, - 132,132,132,132,120,6,12,12,8,1,0,132,132,120,0,120, - 132,132,132,132,132,132,120,7,14,14,8,1,0,102,136,0, - 0,120,132,132,132,132,132,132,132,132,120,7,12,12,8,1, - 0,102,136,0,0,120,132,132,132,132,132,132,120,7,10,10, - 8,1,0,110,144,144,144,156,144,144,144,144,110,7,8,8, - 8,1,0,108,146,146,158,144,144,146,108,6,14,14,8,1, - 0,24,96,0,0,248,132,132,132,248,144,136,136,132,132,6, - 12,12,8,1,0,24,96,0,0,184,196,132,128,128,128,128, - 128,7,12,12,8,0,254,124,66,66,66,124,72,68,68,66, - 66,32,192,7,10,10,8,0,254,92,98,66,64,64,64,64, - 64,32,192,6,14,14,8,1,0,72,48,0,0,248,132,132, - 132,248,144,136,136,132,132,6,12,12,8,1,0,72,48,0, - 0,184,196,132,128,128,128,128,128,6,14,14,8,1,0,24, - 96,0,0,120,132,132,128,96,24,4,132,132,120,6,12,12, - 8,1,0,24,96,0,0,120,132,128,96,24,132,132,120,6, - 14,14,8,1,0,48,72,0,0,120,132,132,128,96,24,4, - 132,132,120,6,12,12,8,1,0,48,72,0,0,120,132,128, - 96,24,4,132,120,6,12,12,8,1,254,120,132,132,128,96, - 24,4,132,132,120,16,96,6,10,10,8,1,254,120,132,128, - 96,24,4,132,120,16,96,6,14,14,8,1,0,72,48,0, - 0,120,132,132,128,96,24,4,132,132,120,6,12,12,8,1, - 0,72,48,0,0,120,132,128,96,24,4,132,120,7,12,12, - 8,1,254,254,16,16,16,16,16,16,16,16,16,16,96,5, - 12,12,8,1,254,32,32,248,32,32,32,32,32,32,24,16, - 96,7,14,14,8,1,0,72,48,0,0,254,16,16,16,16, - 16,16,16,16,16,5,14,14,8,1,0,72,48,0,0,32, - 32,248,32,32,32,32,32,32,24,7,10,10,8,1,0,254, - 16,16,20,24,48,80,16,16,16,5,10,10,8,1,0,32, - 32,248,32,40,48,96,160,32,24,6,14,14,8,1,0,100, - 152,0,0,132,132,132,132,132,132,132,132,132,120,6,12,12, - 8,1,0,100,152,0,0,132,132,132,132,132,132,140,116,6, - 13,13,8,1,0,120,0,0,132,132,132,132,132,132,132,132, - 132,120,6,11,11,8,1,0,120,0,0,132,132,132,132,132, - 132,140,116,6,14,14,8,1,0,132,132,120,0,132,132,132, - 132,132,132,132,132,132,120,6,13,13,8,1,0,132,132,120, - 0,0,132,132,132,132,132,132,140,116,6,14,14,8,1,0, - 48,72,48,0,132,132,132,132,132,132,132,132,132,120,6,12, - 12,8,1,0,48,72,48,0,132,132,132,132,132,132,140,116, - 7,14,14,8,1,0,102,136,0,0,132,132,132,132,132,132, - 132,132,132,120,7,12,12,8,1,0,102,136,0,0,132,132, - 132,132,132,132,140,116,6,12,12,8,1,254,132,132,132,132, - 132,132,132,132,132,120,32,24,7,10,10,8,1,254,132,132, - 132,132,132,132,140,116,8,6,6,14,14,8,1,0,48,72, - 0,0,132,132,132,132,180,180,204,204,132,132,7,12,12,8, - 1,0,48,72,0,0,130,146,146,146,146,146,146,108,7,14, - 14,8,1,0,48,72,0,0,130,130,68,68,40,16,16,16, - 16,16,6,14,14,8,1,254,48,72,0,0,132,132,132,132, - 132,76,52,4,4,120,7,14,14,8,1,0,72,72,0,0, - 130,130,68,68,40,16,16,16,16,16,6,14,14,8,1,0, - 24,96,0,0,252,4,4,8,16,32,64,128,128,252,6,12, - 12,8,1,0,24,96,0,0,252,4,8,16,32,64,128,252, - 6,14,14,8,1,0,32,32,0,0,252,4,4,8,16,32, - 64,128,128,252,6,12,12,8,1,0,32,32,0,0,252,4, - 8,16,32,64,128,252,6,14,14,8,1,0,72,48,0,0, - 252,4,4,8,16,32,64,128,128,252,6,12,12,8,1,0, - 72,48,0,0,252,4,8,16,32,64,128,252,4,11,11,8, - 2,0,48,64,64,64,192,64,64,64,64,64,64,7,11,11, - 8,0,0,64,240,64,92,98,66,66,66,66,98,92,7,10, - 10,8,0,0,124,162,162,34,60,34,34,34,34,60,6,10, - 10,8,1,0,252,128,128,128,248,132,132,132,132,248,6,10, - 10,8,1,0,252,128,128,184,196,132,132,132,196,184,6,10, - 10,8,1,0,192,64,64,64,120,68,68,68,68,120,6,8, - 8,8,1,0,192,64,64,64,120,68,68,120,6,10,10,8, - 1,0,120,132,132,4,4,4,4,132,132,248,7,12,12,8, - 1,0,6,8,120,136,136,128,128,128,128,136,136,112,7,10, - 10,8,1,0,6,8,120,136,128,128,128,128,136,112,7,10, - 10,8,0,0,120,68,66,66,242,66,66,66,68,120,7,10, - 10,8,0,0,120,164,162,34,34,34,34,34,36,56,6,10, - 10,8,1,0,252,4,4,4,124,132,132,132,132,124,6,10, - 10,8,1,0,252,4,4,116,140,132,132,132,140,116,6,10, - 10,8,1,254,120,132,132,132,132,72,48,8,8,112,6,10, - 10,8,1,0,252,4,4,4,124,4,4,4,4,252,6,10, - 10,8,1,0,48,72,132,4,4,252,132,132,72,48,6,10, - 10,8,1,0,120,132,132,128,112,128,128,132,132,120,7,11, - 11,8,1,255,62,32,32,32,60,32,32,32,32,32,192,5, - 12,12,8,1,255,24,32,32,32,248,32,32,32,32,32,32, - 192,7,11,11,8,1,0,6,120,136,136,128,128,184,136,136, - 152,104,6,10,10,8,1,0,132,132,132,72,72,48,48,72, - 72,48,6,11,11,8,1,0,128,128,128,128,228,148,148,148, - 148,148,136,5,10,10,8,1,0,224,32,32,32,32,32,32, - 32,32,24,5,10,10,8,2,0,248,32,32,32,248,32,32, - 32,32,248,6,10,10,8,1,0,140,148,160,160,192,192,160, - 144,136,132,6,11,11,8,1,0,96,128,128,136,144,160,192, - 160,144,136,132,5,10,10,8,2,0,96,32,32,32,248,32, - 32,32,32,248,6,10,10,8,1,0,72,80,32,96,144,48, - 72,72,132,132,7,10,10,8,1,0,146,146,146,146,146,146, - 146,146,146,110,7,11,11,8,0,255,34,34,50,50,42,42, - 38,38,34,34,192,6,10,10,8,1,254,184,196,132,132,132, - 132,132,132,4,4,6,10,10,8,1,0,120,132,132,132,252, - 132,132,132,132,120,6,11,11,8,1,0,4,116,136,136,136, - 136,136,136,136,136,112,6,9,9,8,1,0,4,116,136,136, - 136,136,136,136,112,6,12,12,8,1,254,108,148,148,148,148, - 148,148,148,148,100,4,4,6,10,10,8,1,254,108,148,148, - 148,148,148,148,100,4,4,7,10,10,8,1,0,124,162,162, - 34,60,32,32,32,32,32,7,11,11,8,1,254,6,184,200, - 136,136,136,136,200,176,128,128,7,10,10,8,1,0,224,64, - 120,68,68,120,80,72,68,66,6,10,10,8,1,0,120,132, - 132,4,24,96,128,132,132,120,6,8,8,8,1,0,120,132, - 4,24,96,128,132,120,6,10,10,8,1,0,252,128,64,32, - 16,16,32,64,128,252,5,12,12,8,1,255,64,160,160,96, - 32,32,32,32,32,32,32,24,5,12,12,8,1,254,32,32, - 248,32,32,32,32,32,32,24,8,48,7,10,10,8,1,0, - 126,144,144,16,16,16,16,16,16,16,5,11,11,8,1,0, - 24,32,32,32,248,32,32,32,32,32,24,7,11,11,8,1, - 255,254,16,16,16,16,16,16,16,16,16,12,7,12,12,8, - 1,0,2,2,140,136,136,136,136,136,136,136,136,112,7,10, - 10,8,1,0,2,2,140,136,136,136,136,136,152,104,6,10, - 10,8,1,0,132,72,72,132,132,132,132,132,72,48,6,10, - 10,8,1,0,152,132,132,132,132,132,132,136,144,96,7,10, - 10,8,1,0,98,162,34,20,20,8,8,8,8,8,7,11, - 11,8,1,254,6,136,136,136,136,136,72,56,8,8,112,6, - 10,10,8,1,0,252,4,8,16,120,32,64,128,128,252,6, - 8,8,8,1,0,252,8,16,120,32,64,128,252,6,10,10, - 8,1,0,252,8,16,32,56,4,4,4,140,120,6,10,10, - 8,1,0,252,64,32,16,112,128,128,128,196,120,6,10,10, - 8,1,254,248,64,32,16,112,128,128,128,132,120,6,10,10, - 8,1,254,124,8,16,56,4,4,120,128,132,120,6,10,10, - 8,1,0,120,132,132,8,16,252,64,128,128,252,6,10,10, - 8,1,0,252,64,64,64,120,4,4,4,132,120,6,8,8, - 8,1,0,252,64,64,120,4,4,132,120,5,10,10,8,1, - 0,32,32,248,32,32,48,8,8,136,112,6,10,10,8,1, - 254,184,196,132,132,136,144,160,192,128,128,1,11,11,8,3, - 0,128,128,128,128,128,128,128,128,128,128,128,3,11,11,8, - 2,0,160,160,160,160,160,160,160,160,160,160,160,5,11,11, - 8,1,0,32,32,32,32,248,32,248,32,32,32,32,1,10, - 10,8,4,0,128,128,128,128,128,128,128,0,128,128,7,14, - 14,8,1,0,10,4,0,0,206,162,162,162,164,164,168,168, - 168,206,7,12,12,8,1,0,10,4,192,160,174,162,162,164, - 164,168,168,206,7,12,12,8,1,0,10,36,32,32,110,162, - 162,164,164,168,168,110,7,10,10,8,1,0,142,130,130,130, - 130,130,130,146,146,236,7,13,13,8,1,254,2,130,128,134, - 130,130,130,130,130,130,242,4,24,8,13,13,8,0,254,1, - 97,32,35,33,33,33,33,33,33,249,2,12,7,10,10,8, - 1,0,150,146,146,210,210,178,178,154,154,148,7,13,13,8, - 1,254,2,146,144,214,210,210,178,178,178,146,146,36,24,7, - 13,13,8,1,254,2,2,0,166,210,146,146,146,146,146,146, - 36,24,6,14,14,8,1,0,72,48,0,0,48,72,72,132, - 132,252,132,132,132,132,6,12,12,8,1,0,72,48,0,0, - 120,132,4,124,132,132,140,116,5,14,14,8,2,0,144,96, - 0,0,248,32,32,32,32,32,32,32,32,248,5,12,12,8, - 2,0,144,96,0,0,96,32,32,32,32,32,32,248,6,14, - 14,8,1,0,72,48,0,0,120,132,132,132,132,132,132,132, - 132,120,6,12,12,8,1,0,72,48,0,0,120,132,132,132, - 132,132,132,120,6,14,14,8,1,0,72,48,0,0,132,132, - 132,132,132,132,132,132,132,120,6,12,12,8,1,0,72,48, - 0,0,132,132,132,132,132,132,140,116,6,14,14,8,1,0, - 120,0,72,0,132,132,132,132,132,132,132,132,132,120,6,13, - 13,8,1,0,120,0,72,72,0,132,132,132,132,132,132,140, - 116,6,14,14,8,1,0,24,96,0,72,0,132,132,132,132, - 132,132,132,132,120,6,14,14,8,1,0,24,96,0,72,72, - 0,132,132,132,132,132,132,140,116,6,14,14,8,1,0,72, - 48,0,72,0,132,132,132,132,132,132,132,132,120,6,14,14, - 8,1,0,72,48,0,72,72,0,132,132,132,132,132,132,140, - 116,6,14,14,8,1,0,96,24,0,72,0,132,132,132,132, - 132,132,132,132,120,6,14,14,8,1,0,96,24,0,72,72, - 0,132,132,132,132,132,132,140,116,6,8,8,8,1,0,120, - 132,4,4,252,132,132,120,6,14,14,8,1,0,120,0,72, - 0,48,72,72,132,132,252,132,132,132,132,6,13,13,8,1, - 0,120,0,72,72,0,120,132,4,124,132,132,140,116,6,14, - 14,8,1,0,120,0,48,0,48,72,72,132,132,252,132,132, - 132,132,6,13,13,8,1,0,120,0,32,32,0,120,132,4, - 124,132,132,140,116,7,13,13,8,1,0,120,0,0,62,80, - 144,144,254,144,144,144,144,158,7,11,11,8,1,0,120,0, - 0,124,146,18,126,144,144,146,124,7,10,10,8,1,0,120, - 132,132,128,128,156,132,158,132,124,7,11,11,8,1,254,4, - 116,136,136,136,112,64,120,158,132,120,6,14,14,8,1,0, - 72,48,0,0,120,132,132,128,128,156,132,132,140,116,6,14, - 14,8,1,254,72,48,0,4,116,136,136,136,112,64,120,132, - 132,120,6,14,14,8,1,0,72,48,0,0,132,136,144,160, - 192,192,160,144,136,132,6,14,14,8,1,0,144,96,0,0, - 128,128,136,144,160,192,160,144,136,132,6,12,12,8,1,254, - 120,132,132,132,132,132,132,132,132,120,32,24,6,10,10,8, - 1,254,120,132,132,132,132,132,132,120,32,24,6,15,15,8, - 1,254,120,0,0,120,132,132,132,132,132,132,132,132,120,32, - 24,6,13,13,8,1,254,120,0,0,120,132,132,132,132,132, - 132,120,32,24,6,14,14,8,1,0,72,48,0,0,252,8, - 16,32,56,4,4,4,140,120,6,14,14,8,1,254,72,48, - 0,0,124,8,16,32,56,4,4,4,132,120,6,14,14,8, - 1,254,36,24,0,0,24,8,8,8,8,8,8,8,144,96, - 7,10,10,8,1,0,206,162,162,162,164,164,168,168,168,206, - 7,10,10,8,1,0,192,160,174,162,162,164,164,168,168,206, - 7,11,11,8,1,0,32,32,32,110,162,162,164,164,168,168, - 110,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, - 156,132,132,140,116,6,14,14,8,1,254,24,96,0,4,116, - 136,136,136,112,64,120,132,132,120,6,10,10,8,1,0,144, - 144,144,148,244,148,148,148,148,136,6,11,11,8,1,255,184, - 196,132,132,136,144,160,192,128,128,128,6,13,13,8,1,0, - 96,24,0,132,196,196,164,164,148,148,140,140,132,6,11,11, - 8,1,0,96,24,0,184,196,132,132,132,132,132,132,6,14, - 14,8,1,0,24,96,48,72,48,48,72,72,132,252,132,132, - 132,132,6,14,14,8,1,0,24,96,0,48,72,48,0,120, - 132,4,124,132,140,116,7,14,14,8,1,0,12,48,0,0, - 62,80,144,144,254,144,144,144,144,158,7,12,12,8,1,0, - 12,48,0,0,124,146,18,126,144,144,146,124,6,15,15,8, - 1,255,24,96,0,4,116,136,140,148,148,164,164,196,68,184, - 128,6,13,13,8,1,255,24,96,0,4,120,140,148,148,164, - 164,196,120,128}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[3783] U8G_SECTION(".progmem.u8g_font_unifont_4_5") = { - 0,16,16,0,254,10,4,176,6,163,0,255,0,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,7,12,12,8,0,0,204,34,0, - 0,60,66,2,62,66,66,70,58,6,14,14,8,1,0,120, - 132,132,0,48,72,72,132,132,252,132,132,132,132,6,12,12, - 8,1,0,120,132,132,0,120,132,4,124,132,132,140,116,7, - 14,14,8,0,0,204,34,0,0,126,64,64,64,124,64,64, - 64,64,126,7,12,12,8,0,0,204,34,0,0,60,66,66, - 126,64,64,66,60,6,14,14,8,1,0,120,132,132,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,120, - 132,132,0,120,132,132,252,128,128,132,120,7,14,14,8,0, - 0,204,34,0,0,62,8,8,8,8,8,8,8,8,62,7, - 12,12,8,0,0,204,34,0,0,24,8,8,8,8,8,8, - 62,6,14,14,8,1,0,120,132,132,0,124,16,16,16,16, - 16,16,16,16,124,6,12,12,8,1,0,120,132,132,0,48, - 16,16,16,16,16,16,124,7,14,14,8,0,0,204,34,0, - 0,60,66,66,66,66,66,66,66,66,60,7,12,12,8,0, - 0,204,34,0,0,60,66,66,66,66,66,66,60,6,14,14, - 8,1,0,120,132,132,0,120,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,120,132,132,0,120,132,132,132,132, - 132,132,120,7,14,14,8,0,0,204,34,0,0,124,66,66, - 66,124,72,68,68,66,66,7,12,12,8,0,0,204,34,0, - 0,92,98,66,64,64,64,64,64,6,14,14,8,1,0,120, - 132,132,0,248,132,132,132,248,144,136,136,132,132,6,12,12, - 8,1,0,120,132,132,0,184,196,132,128,128,128,128,128,7, - 14,14,8,0,0,204,34,0,0,66,66,66,66,66,66,66, - 66,66,60,7,12,12,8,0,0,204,34,0,0,66,66,66, - 66,66,66,70,58,6,14,14,8,1,0,120,132,132,0,132, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,120, - 132,132,0,132,132,132,132,132,132,140,116,6,12,12,8,1, - 254,120,132,132,128,96,24,4,132,132,120,16,32,6,10,10, - 8,1,254,120,132,128,96,24,4,132,120,16,32,7,12,12, - 8,1,254,254,16,16,16,16,16,16,16,16,16,4,8,5, - 12,12,8,1,254,32,32,248,32,32,32,32,32,32,24,64, - 128,6,10,10,8,1,0,120,132,132,4,24,104,4,4,4, - 120,6,8,8,8,1,0,120,132,4,24,100,4,24,96,6, - 13,13,8,1,0,72,48,0,132,132,132,132,252,132,132,132, - 132,132,6,13,13,8,1,0,72,48,0,128,128,128,184,196, - 132,132,132,132,132,6,10,10,8,1,254,184,196,132,132,132, - 132,132,132,4,4,7,13,13,8,1,254,4,4,4,116,140, - 132,132,132,132,142,118,4,8,6,10,10,8,1,0,16,72, - 132,132,72,120,132,132,132,120,5,8,8,8,2,0,72,136, - 144,96,144,136,136,112,6,12,12,8,1,254,252,4,4,8, - 16,32,64,128,128,252,4,8,6,10,10,8,1,254,252,4, - 8,16,32,64,128,252,4,8,6,12,12,8,1,0,16,0, - 48,72,72,132,132,252,132,132,132,132,6,10,10,8,1,0, - 16,0,120,132,4,124,132,132,140,116,6,12,12,8,1,254, - 252,128,128,128,248,128,128,128,128,252,16,96,6,10,10,8, - 1,254,120,132,132,252,128,128,132,120,16,96,6,14,14,8, - 1,0,120,0,72,0,120,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,120,0,72,0,120,132,132,132,132,132, - 132,120,6,14,14,8,1,0,120,0,100,152,0,120,132,132, - 132,132,132,132,132,120,6,13,13,8,1,0,120,0,100,152, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,16, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,16,0,120,132,132,132,132,132,132,120,6,14,14,8,1, - 0,120,0,16,0,120,132,132,132,132,132,132,132,132,120,6, - 12,12,8,1,0,120,0,16,0,120,132,132,132,132,132,132, - 120,7,12,12,8,1,0,124,0,130,130,68,68,40,16,16, - 16,16,16,6,12,12,8,1,254,120,0,132,132,132,132,132, - 76,52,4,4,120,4,12,12,8,2,254,96,32,32,32,32, - 32,32,32,48,48,64,128,7,10,10,8,1,254,184,196,132, - 132,132,132,134,134,4,8,6,12,12,8,1,254,32,32,248, - 32,32,32,32,32,44,28,16,32,5,10,10,8,1,254,24, - 8,8,8,8,8,8,8,144,96,7,11,11,8,0,0,16, - 16,16,84,186,146,146,146,146,186,84,7,10,10,8,0,254, - 84,186,146,146,146,146,186,84,16,16,7,11,11,8,0,0, - 2,26,36,44,74,82,126,98,66,66,194,7,12,12,8,0, - 255,2,60,70,74,72,80,80,96,98,66,124,128,7,11,11, - 8,0,255,2,4,60,74,80,80,96,96,66,124,128,6,10, - 10,8,1,0,64,64,64,64,240,64,64,64,64,124,7,12, - 12,8,1,0,2,4,254,24,24,16,16,48,48,80,80,144, - 7,10,10,8,1,254,120,132,128,96,24,4,132,120,18,12, - 6,10,10,8,1,254,252,4,8,16,32,64,128,192,32,28, - 6,10,10,8,1,0,120,132,132,4,8,16,16,16,16,16, - 6,8,8,8,1,0,120,132,132,4,8,16,16,16,6,10, - 10,8,1,0,120,68,68,68,120,68,244,68,68,120,7,10, - 10,8,0,0,68,68,68,68,68,254,68,68,68,56,6,10, - 10,8,1,0,48,48,48,72,72,72,72,132,132,132,6,14, - 14,8,1,254,8,8,252,144,144,160,248,160,160,192,192,252, - 128,128,7,10,10,8,0,255,2,60,70,74,126,80,96,66, - 124,128,7,10,10,8,1,0,62,8,8,8,8,62,8,136, - 136,112,7,13,13,8,1,254,8,8,0,24,8,8,62,8, - 8,8,8,144,96,7,12,12,8,1,254,112,136,136,136,136, - 136,136,136,152,104,8,6,7,10,10,8,1,254,104,152,136, - 136,136,136,152,104,8,6,6,10,10,8,1,0,120,68,68, - 68,248,80,72,72,68,68,6,8,8,8,1,0,88,100,68, - 224,64,64,64,64,7,10,10,8,1,0,130,130,68,254,40, - 16,16,16,16,16,7,10,10,8,1,254,68,68,68,254,68, - 36,28,4,4,56,6,8,8,8,1,0,184,196,132,132,248, - 128,132,120,6,8,8,8,1,0,116,140,132,132,132,140,148, - 100,6,8,8,8,1,0,152,164,196,132,132,132,196,184,6, - 11,11,8,1,0,112,128,128,184,196,132,132,132,132,196,184, - 6,8,8,8,1,0,120,132,4,4,4,4,132,120,6,9, - 9,8,1,255,120,132,128,128,128,152,164,120,128,7,12,12, - 8,1,255,8,8,8,104,152,136,136,136,136,152,104,6,7, - 11,11,8,1,0,6,8,8,104,152,136,136,136,136,152,104, - 6,8,8,8,1,0,120,132,132,252,4,4,132,120,6,8, - 8,8,1,0,120,132,4,4,252,132,132,120,7,8,8,8, - 1,0,114,140,8,8,248,136,136,112,6,8,8,8,1,0, - 120,132,128,120,128,128,132,120,6,8,8,8,1,0,120,132, - 4,120,4,4,132,120,7,8,8,8,1,0,114,140,8,112, - 8,8,136,112,6,8,8,8,1,0,120,132,132,184,132,132, - 132,120,7,10,10,8,1,254,24,8,8,8,62,8,8,8, - 144,96,7,11,11,8,1,254,6,104,152,136,136,136,152,104, - 8,136,112,6,10,10,8,1,254,116,140,132,132,132,140,116, - 4,132,120,6,8,8,8,1,0,120,132,128,128,156,132,132, - 124,6,10,10,8,1,254,132,132,132,72,72,48,48,72,72, - 48,6,8,8,8,1,0,132,132,72,72,48,48,72,48,6, - 11,11,8,1,254,132,132,132,132,132,132,140,116,4,4,4, - 6,11,11,8,1,0,112,128,128,184,196,132,132,132,132,132, - 132,6,11,11,8,1,0,112,128,128,184,196,132,132,132,132, - 132,152,5,11,11,8,2,0,32,32,0,96,32,32,248,32, - 32,32,248,3,8,8,8,3,0,128,128,128,128,128,128,128, - 96,5,8,8,8,2,0,248,32,32,32,32,32,32,248,6, - 10,10,8,1,0,48,16,16,16,116,152,16,16,16,124,6, - 10,10,8,1,0,48,16,16,112,144,124,16,16,16,124,4, - 11,11,8,3,255,192,64,64,64,64,64,64,64,64,64,48, - 7,12,12,8,1,254,96,32,62,34,36,40,44,34,34,250, - 18,12,7,8,8,8,1,0,146,146,146,146,146,146,146,110, - 7,10,10,8,1,254,146,146,146,146,146,146,146,110,2,2, - 7,9,9,8,1,255,236,146,146,146,146,146,146,130,12,7, - 9,9,8,1,255,44,50,34,34,34,34,34,34,192,7,9, - 9,8,1,255,176,200,136,136,136,136,136,136,6,6,8,8, - 8,1,0,132,132,196,164,148,140,132,132,6,8,8,8,1, - 0,120,132,132,252,132,132,132,120,7,8,8,8,1,0,110, - 144,144,156,144,144,144,110,7,8,8,8,1,0,124,130,130, - 146,146,146,146,108,7,12,12,8,1,254,16,16,124,146,146, - 146,146,146,146,124,16,16,6,8,8,8,1,0,4,4,4, - 4,4,132,140,116,6,10,10,8,1,0,4,4,4,4,4, - 4,4,132,140,116,7,9,9,8,1,255,8,8,8,8,8, - 136,152,104,6,6,10,10,8,1,254,184,196,132,128,128,128, - 128,128,128,128,6,9,9,8,1,255,184,196,132,128,128,128, - 128,128,96,6,8,8,8,1,0,120,132,132,128,128,128,128, - 128,6,8,8,8,1,0,120,132,132,4,4,4,4,4,6, - 8,8,8,1,0,248,132,132,248,136,132,132,132,6,8,8, - 8,1,0,132,132,132,136,248,132,132,248,6,10,10,8,1, - 254,120,132,128,96,24,4,132,248,128,96,5,12,12,8,1, - 255,24,32,32,32,32,32,32,32,32,32,32,192,5,12,12, - 8,1,255,24,32,32,32,32,32,32,248,32,32,32,192,5, - 9,9,8,1,255,192,32,32,32,32,32,32,32,24,6,12, - 12,8,1,255,12,16,16,16,16,16,16,16,16,112,156,96, - 5,10,10,8,1,0,192,32,32,32,32,32,32,248,32,32, - 6,11,11,8,1,255,32,32,248,32,32,32,32,32,32,32, - 28,7,8,8,8,1,0,68,68,68,254,68,68,76,52,6, - 8,8,8,1,0,132,72,132,132,132,132,72,48,6,8,8, - 8,1,0,152,132,132,132,132,136,144,96,6,8,8,8,1, - 0,48,48,72,72,72,132,132,132,7,8,8,8,1,0,108, - 146,146,146,146,146,146,130,6,10,10,8,1,254,120,128,128, - 176,200,132,132,132,132,132,7,8,8,8,1,0,130,130,68, - 40,16,16,16,16,7,10,10,8,1,254,248,16,16,32,32, - 64,64,248,8,6,7,9,9,8,1,255,252,4,8,16,32, - 76,146,252,32,6,10,10,8,1,254,124,8,16,32,56,4, - 4,4,132,120,6,10,10,8,1,254,124,8,16,32,56,4, - 4,100,148,120,6,10,10,8,1,0,120,132,132,4,8,16, - 16,16,16,16,6,10,10,8,1,0,120,132,132,128,64,32, - 32,32,32,32,6,10,10,8,1,0,16,16,16,16,16,8, - 4,132,132,120,6,10,10,8,1,254,120,132,128,128,128,128, - 128,128,132,120,6,8,8,8,1,0,120,132,132,180,180,132, - 132,120,6,8,8,8,1,0,248,132,132,248,132,132,132,248, - 6,8,8,8,1,0,120,132,132,116,132,132,132,120,7,8, - 8,8,1,0,118,136,128,128,152,136,136,120,5,8,8,8, - 2,0,136,136,136,248,136,136,136,136,6,13,13,8,1,254, - 8,8,0,24,8,8,8,8,8,8,124,144,96,6,10,10, - 8,1,254,132,68,36,20,12,20,36,68,4,4,6,8,8, - 8,1,0,128,128,128,128,128,128,128,252,7,11,11,8,1, - 254,6,104,152,136,136,136,136,152,104,8,8,6,10,10,8, - 1,0,120,132,132,4,8,16,16,124,16,16,6,10,10,8, - 1,0,120,132,132,128,64,32,32,248,32,32,7,11,11,8, - 1,0,32,32,32,126,162,164,164,168,168,176,126,7,13,13, - 8,1,254,32,32,32,126,162,164,168,172,162,162,98,18,12, - 7,12,12,8,1,255,32,32,32,126,162,164,168,176,180,170, - 124,8,7,10,10,8,1,0,64,64,236,80,80,72,68,66, - 66,60,7,13,13,8,1,254,6,72,72,248,72,72,72,72, - 72,72,56,8,48,7,11,11,8,1,255,64,64,236,82,80, - 80,80,84,90,60,8,7,12,12,8,1,254,96,144,128,220, - 162,162,162,162,162,162,4,24,6,10,10,8,2,0,128,128, - 128,156,160,160,152,132,132,248,6,10,10,8,1,0,128,128, - 128,128,252,136,144,160,192,252,7,11,11,8,1,0,130,146, - 146,146,108,0,130,146,146,146,108,6,10,10,8,1,0,252, - 132,132,132,0,0,252,132,132,132,5,10,10,8,1,254,200, - 72,72,72,72,72,88,40,8,8,7,10,10,8,1,254,200, - 72,72,72,72,72,88,40,8,6,5,6,6,8,2,4,128, - 128,176,200,136,136,5,7,7,8,2,4,112,136,128,176,200, - 136,136,4,7,7,8,2,4,16,0,16,16,16,144,96,5, - 5,5,8,2,5,176,200,128,128,128,5,5,5,8,1,5, - 8,8,8,152,104,7,6,6,8,1,4,8,8,8,152,104, - 6,5,6,6,8,1,4,136,144,240,136,136,240,5,4,4, - 8,1,6,136,168,168,80,5,5,5,8,1,5,136,136,120, - 8,112,3,3,3,8,2,7,32,64,128,6,3,3,8,1, - 7,36,72,144,2,4,4,8,3,6,64,128,128,192,2,4, - 4,8,3,6,192,64,64,128,2,4,4,8,3,6,192,128, - 128,64,4,6,6,8,2,5,192,32,16,16,32,192,4,6, - 6,8,2,5,48,64,128,128,64,48,6,7,7,8,1,4, - 120,132,4,4,56,32,32,6,7,7,8,1,4,120,132,128, - 128,112,16,16,4,7,7,8,2,4,16,32,64,128,64,32, - 16,4,7,7,8,2,4,128,64,32,16,32,64,128,7,4, - 4,8,1,6,16,40,68,130,7,4,4,8,1,6,130,68, - 40,16,4,2,2,8,2,8,96,144,4,2,2,8,2,8, - 144,96,1,3,3,8,4,7,128,128,128,4,1,1,8,2, - 9,240,4,2,2,8,2,8,48,192,4,2,2,8,2,8, - 192,48,1,4,4,8,4,0,128,128,128,128,4,1,1,8, - 2,0,240,4,2,2,8,2,255,192,48,4,2,2,8,2, - 255,48,192,3,6,6,8,2,1,224,64,0,0,64,224,3, - 2,2,8,2,4,224,64,4,6,6,8,2,2,192,32,16, - 16,32,192,4,6,6,8,2,2,48,64,128,128,64,48,5, - 5,5,8,1,2,32,32,32,32,248,5,5,5,8,1,2, - 248,32,32,32,32,5,5,5,8,1,2,32,32,248,32,32, - 5,1,1,8,1,4,248,6,3,3,8,1,9,132,132,120, - 2,2,2,8,3,10,192,192,4,3,3,8,2,9,96,144, - 96,3,2,2,8,4,254,128,96,6,2,2,8,1,10,100, - 152,7,2,2,8,1,10,102,136,7,4,4,8,0,3,32, - 96,162,28,6,5,5,8,1,5,132,72,48,72,132,5,6, - 6,8,1,4,136,80,32,80,80,32,3,6,6,8,2,6, - 192,64,64,64,64,224,5,5,5,8,1,5,120,128,112,8, - 240,5,5,5,8,1,5,136,80,32,80,136,5,5,5,8, - 1,7,120,128,128,112,16,5,11,11,8,1,0,248,8,8, - 8,8,8,8,8,8,8,8,5,11,11,8,1,0,8,8, - 248,8,8,8,8,8,8,8,8,5,11,11,8,1,0,8, - 8,8,8,8,248,8,8,8,8,8,5,11,11,8,1,0, - 8,8,8,8,8,8,8,8,248,8,8,5,11,11,8,1, - 0,8,8,8,8,8,8,8,8,8,8,248,5,6,6,8, - 1,0,128,128,128,128,128,248,4,7,7,8,1,0,128,128, - 128,240,128,128,128,5,3,3,8,1,0,136,80,32,6,3, - 3,8,1,9,252,0,252,6,4,4,8,1,8,204,68,68, - 136,5,3,3,8,1,255,136,80,32,5,3,3,8,1,255, - 32,80,136,3,5,5,8,3,255,32,64,128,64,32,3,5, - 5,8,3,255,128,64,32,64,128,4,3,3,8,2,255,96, - 144,96,3,3,3,8,2,9,128,64,32,6,3,3,8,1, - 9,144,72,36,6,3,3,8,1,9,36,72,144,6,2,2, - 8,1,254,100,152,2,7,7,8,3,4,192,192,0,0,0, - 192,192,3,4,4,8,2,7,224,128,128,128,3,4,4,8, - 2,7,224,32,32,32,3,4,4,8,2,0,128,128,128,224, - 3,4,4,8,2,0,32,32,32,224,6,3,3,8,1,254, - 132,132,252,6,3,3,8,1,254,128,128,252,6,5,5,8, - 1,3,32,64,252,64,32}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w=16 h=16 x=14 y=12 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[3556] U8G_SECTION(".progmem.u8g_font_unifont_67_75") = { - 0,16,16,0,254,3,2,120,4,26,16,255,0,14,254,10, - 0,6,5,5,8,1,4,32,64,252,64,32,5,6,6,8, - 2,3,32,112,168,32,32,32,6,5,5,8,1,3,16,8, - 252,8,16,5,6,6,8,2,3,32,32,32,168,112,32,8, - 5,5,8,0,3,36,66,255,66,36,5,9,9,8,2,1, - 32,112,168,32,32,32,168,112,32,6,6,6,8,1,3,240, - 192,160,144,8,4,6,6,6,8,1,3,60,12,20,36,64, - 128,6,6,6,8,1,3,128,64,36,20,12,60,6,6,6, - 8,1,2,4,8,144,160,192,240,7,9,9,8,1,1,8, - 8,40,72,254,72,40,8,8,7,9,9,8,1,1,32,32, - 40,36,254,36,40,32,32,7,5,5,8,1,3,32,76,242, - 64,32,7,5,5,8,1,3,8,100,158,4,8,8,5,5, - 8,0,3,36,72,255,72,36,5,9,9,8,2,1,32,112, - 168,32,112,168,32,32,32,8,5,5,8,0,3,36,18,255, - 18,36,5,9,9,8,2,1,32,32,32,168,112,32,168,112, - 32,7,5,5,8,1,3,34,68,248,68,34,7,5,5,8, - 1,3,136,68,62,68,136,6,5,5,8,1,3,36,68,252, - 68,36,5,6,6,8,2,3,32,112,168,32,32,248,6,5, - 5,8,1,3,144,136,252,136,144,5,6,6,8,2,3,248, - 32,32,168,112,32,5,10,10,8,2,0,32,112,168,32,32, - 32,168,112,32,248,7,6,6,8,1,3,4,34,66,252,64, - 32,7,6,6,8,1,3,64,136,132,126,4,8,7,6,6, - 8,1,3,4,42,74,252,72,40,7,6,6,8,1,3,64, - 168,164,126,36,40,8,5,5,8,0,3,36,90,231,66,36, - 8,9,9,8,0,1,8,8,44,74,255,74,44,8,8,6, - 10,10,8,1,0,128,128,144,176,208,144,16,84,56,16,5, - 10,10,8,1,0,32,64,240,72,40,8,8,8,8,8,5, - 10,10,8,2,0,32,16,120,144,160,128,128,128,128,128,5, - 10,10,8,1,0,8,8,8,8,8,40,72,240,64,32,5, - 10,10,8,2,0,128,128,128,128,128,160,144,120,16,32,7, - 5,5,8,1,1,248,8,42,28,8,5,8,8,8,1,2, - 8,8,8,40,72,248,64,32,8,5,5,8,0,3,30,33, - 169,113,32,8,5,5,8,0,3,120,132,149,142,4,6,8, - 8,8,1,3,252,0,240,192,160,144,8,4,6,11,11,8, - 1,0,160,192,252,192,160,0,20,12,252,12,20,6,6,6, - 8,1,2,92,152,148,132,132,120,6,6,6,8,1,2,232, - 100,164,132,132,120,6,3,3,8,1,5,32,64,252,6,3, - 3,8,1,3,252,64,32,3,6,6,8,4,3,128,192,160, - 128,128,128,3,6,6,8,2,3,32,96,160,32,32,32,6, - 3,3,8,1,5,16,8,252,6,3,3,8,1,3,252,8, - 16,3,6,6,8,4,2,128,128,128,160,192,128,3,6,6, - 8,2,3,32,32,32,160,96,32,6,11,11,8,1,0,16, - 8,252,8,16,0,32,64,252,64,32,8,6,6,8,0,3, - 36,116,164,37,46,36,6,11,11,8,1,0,32,64,252,64, - 32,0,16,8,252,8,16,6,11,11,8,1,0,32,64,252, - 64,32,0,32,64,252,64,32,8,6,6,8,0,3,36,126, - 165,36,36,36,6,11,11,8,1,0,16,8,252,8,16,0, - 16,8,252,8,16,8,6,6,8,0,3,36,36,36,165,126, - 36,6,7,7,8,1,2,32,64,252,0,252,8,16,6,7, - 7,8,1,2,16,8,252,0,252,64,32,7,9,9,8,0, - 1,8,8,40,126,136,126,40,8,8,8,9,9,8,0,1, - 8,8,44,126,137,126,44,8,8,7,9,9,8,1,1,32, - 32,40,252,34,252,40,32,32,6,5,5,8,1,3,32,124, - 128,124,32,5,6,6,8,2,3,32,80,216,80,80,80,6, - 5,5,8,1,3,16,248,4,248,16,5,6,6,8,2,3, - 80,80,80,216,80,32,8,5,5,8,0,3,36,126,129,126, - 36,5,8,8,8,2,2,32,80,216,80,80,216,80,32,6, - 6,6,8,1,3,240,160,208,168,20,8,6,6,6,8,1, - 3,60,20,44,84,160,64,6,6,6,8,1,3,8,20,168, - 208,160,240,6,6,6,8,1,3,64,160,84,44,20,60,7, - 7,7,8,0,2,16,62,64,254,64,62,16,7,7,7,8, - 1,2,16,248,4,254,4,248,16,8,5,5,8,0,3,32, - 66,245,72,32,8,5,5,8,0,3,4,66,175,18,4,5, - 10,10,8,2,0,32,112,168,32,32,248,32,248,32,32,5, - 10,10,8,2,0,32,32,248,32,248,32,32,168,112,32,7, - 5,5,8,1,3,32,64,238,64,32,5,10,10,8,2,0, - 32,112,168,0,32,32,32,0,32,32,7,5,5,8,1,3, - 8,4,238,4,8,5,10,10,8,2,0,32,32,0,32,32, - 32,0,168,112,32,6,5,5,8,1,3,160,192,252,192,160, - 6,5,5,8,1,3,20,12,252,12,20,8,7,7,8,0, - 2,16,48,95,129,95,48,16,7,10,10,8,1,0,16,40, - 68,238,40,40,40,40,40,56,8,7,7,8,0,2,8,12, - 250,129,250,12,8,7,10,10,8,1,0,56,40,40,40,40, - 40,238,68,40,16,7,12,12,8,1,0,16,40,68,238,40, - 40,40,40,56,0,56,56,7,12,12,8,1,0,16,40,68, - 198,68,68,68,68,68,198,130,254,7,12,12,8,1,0,16, - 40,124,198,68,68,68,68,68,198,130,254,7,12,12,8,1, - 0,16,56,84,214,84,84,84,84,84,214,146,254,7,14,14, - 8,1,0,16,40,84,238,68,198,68,68,68,68,68,68,68, - 124,7,14,14,8,1,0,16,40,84,238,68,198,68,68,68, - 68,68,198,130,254,7,7,7,8,1,2,16,216,244,130,244, - 216,16,7,9,9,8,1,0,254,128,184,176,168,132,130,128, - 128,7,9,9,8,1,0,2,2,130,66,42,26,58,2,254, - 5,11,11,8,2,0,32,80,216,80,80,80,80,80,216,80, - 32,13,5,10,16,1,3,14,32,17,16,255,248,17,16,14, - 32,8,10,10,8,0,0,36,46,53,36,36,36,36,172,116, - 36,8,15,15,8,0,254,4,2,255,2,4,4,2,255,2, - 4,4,2,255,2,4,8,5,5,8,0,3,36,68,255,68, - 36,8,5,5,8,0,3,36,34,255,34,36,11,5,10,16, - 2,3,36,128,68,64,255,224,68,64,36,128,12,5,10,16, - 1,3,37,0,69,0,255,240,69,0,37,0,12,5,10,16, - 2,3,10,64,10,32,255,240,10,32,10,64,13,5,10,16, - 1,3,37,32,69,16,255,248,69,16,37,32,8,5,5,8, - 0,3,32,96,191,96,32,8,5,5,8,0,3,4,6,253, - 6,4,12,5,10,16,2,3,32,64,96,96,191,208,96,96, - 32,64,16,8,16,16,0,6,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,16,2,4,16,0,254,255,255, - 255,255,16,4,8,16,0,254,255,255,255,255,255,255,255,255, - 16,6,12,16,0,254,255,255,255,255,255,255,255,255,255,255, - 255,255,16,8,16,16,0,254,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,16,10,20,16,0,254,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,16,12,24,16,0,254,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 16,14,28,16,0,254,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,16,16,32,16,0,254,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,14,16,32,16,0,254,255,252, - 255,252,255,252,255,252,255,252,255,252,255,252,255,252,255,252, - 255,252,255,252,255,252,255,252,255,252,255,252,255,252,12,16, - 32,16,0,254,255,240,255,240,255,240,255,240,255,240,255,240, - 255,240,255,240,255,240,255,240,255,240,255,240,255,240,255,240, - 255,240,255,240,10,16,32,16,0,254,255,192,255,192,255,192, - 255,192,255,192,255,192,255,192,255,192,255,192,255,192,255,192, - 255,192,255,192,255,192,255,192,255,192,8,16,16,16,0,254, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 6,16,16,16,0,254,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,252,4,16,16,16,0,254,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,2,16,16,16, - 0,254,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,8,16,16,16,8,254,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,15,16,32,16,0,254,136,136, - 34,34,136,136,34,34,136,136,34,34,136,136,34,34,136,136, - 34,34,136,136,34,34,136,136,34,34,136,136,34,34,16,16, - 32,16,0,254,170,170,85,85,170,170,85,85,170,170,85,85, - 170,170,85,85,170,170,85,85,170,170,85,85,170,170,85,85, - 170,170,85,85,16,16,32,16,0,254,238,238,187,187,238,238, - 187,187,238,238,187,187,238,238,187,187,238,238,187,187,238,238, - 187,187,238,238,187,187,238,238,187,187,16,2,4,16,0,12, - 255,255,255,255,2,16,16,16,14,254,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,8,8,8,16,0,254, - 255,255,255,255,255,255,255,255,8,8,8,16,8,254,255,255, - 255,255,255,255,255,255,8,8,8,16,0,6,255,255,255,255, - 255,255,255,255,16,16,32,16,0,254,255,0,255,0,255,0, - 255,0,255,0,255,0,255,0,255,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,16,16,32,16,0,254, - 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, - 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, - 16,16,32,16,0,254,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,255,0,255,0,255,0,255,0, - 255,0,255,0,255,0,16,16,32,16,0,254,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,255,0,255, - 0,255,0,255,0,255,0,255,0,255,0,255,8,8,8,16, - 8,6,255,255,255,255,255,255,255,255,16,16,32,16,0,254, - 0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255, - 255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0, - 16,16,32,16,0,254,0,255,0,255,0,255,0,255,0,255, - 0,255,0,255,0,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,7,7,7,8,1,1,254,254,254,254, - 254,254,254,7,7,7,8,1,1,254,130,130,130,130,130,254, - 7,7,7,8,1,1,124,130,130,130,130,130,124,7,7,7, - 8,1,1,254,130,186,186,186,130,254,7,7,7,8,1,1, - 254,130,254,130,254,130,254,7,7,7,8,1,1,254,170,170, - 170,170,170,254,7,7,7,8,1,1,254,170,254,170,254,170, - 254,7,7,7,8,1,1,254,166,146,202,166,146,254,7,7, - 7,8,1,1,254,202,146,166,202,146,254,7,7,7,8,1, - 1,254,170,214,170,214,170,254,4,4,4,8,2,4,240,240, - 240,240,4,4,4,8,2,4,240,144,144,240,7,4,4,8, - 1,4,254,254,254,254,7,4,4,8,1,4,254,130,130,254, - 4,7,7,8,2,2,240,240,240,240,240,240,240,4,7,7, - 8,2,2,240,144,144,144,144,144,240,8,3,3,8,0,4, - 63,126,252,8,3,3,8,0,4,63,66,252,6,6,6,8, - 1,3,48,48,120,120,252,252,6,6,6,8,1,3,48,48, - 72,72,132,252,6,3,3,8,1,3,48,120,252,6,3,3, - 8,1,3,48,72,252,6,6,6,8,1,3,192,240,252,252, - 240,192,6,6,6,8,1,3,192,176,140,140,176,192,4,4, - 4,8,2,4,192,240,240,192,4,4,4,8,2,4,192,176, - 176,192,6,5,5,8,1,3,192,240,252,240,192,6,5,5, - 8,1,3,192,176,140,176,192,6,6,6,8,1,3,252,252, - 120,120,48,48,6,6,6,8,1,3,252,132,72,72,48,48, - 6,3,3,8,1,3,252,120,48,6,3,3,8,1,3,252, - 72,48,6,6,6,8,1,3,12,60,252,252,60,12,6,6, - 6,8,1,3,12,52,196,196,52,12,4,4,4,8,2,4, - 48,240,240,48,4,4,4,8,2,4,48,208,208,48,6,5, - 5,8,1,3,12,60,252,60,12,6,5,5,8,1,3,12, - 52,196,52,12,7,7,7,8,1,2,16,56,124,254,124,56, - 16,7,7,7,8,1,2,16,40,68,130,68,40,16,7,7, - 7,8,1,2,16,40,84,186,84,40,16,7,7,7,8,1, - 2,56,68,178,186,154,68,56,6,10,10,8,1,1,48,48, - 72,72,132,132,72,72,48,48,7,7,7,8,1,2,56,68, - 130,130,130,68,56,7,7,7,8,1,2,40,0,130,0,130, - 0,40,7,7,7,8,1,2,56,108,170,170,170,108,56,7, - 7,7,8,1,2,56,68,146,170,146,68,56,7,7,7,8, - 1,2,56,124,254,254,254,124,56,7,7,7,8,1,2,56, - 100,226,226,226,100,56,7,7,7,8,1,2,56,76,142,142, - 142,76,56,7,7,7,8,1,2,56,68,130,130,254,124,56, - 7,7,7,8,1,2,56,124,254,130,130,68,56,7,7,7, - 8,1,2,56,92,158,158,130,68,56,7,7,7,8,1,2, - 56,76,142,142,254,124,56,4,7,7,8,1,2,48,112,240, - 240,240,112,48,4,7,7,8,4,2,192,224,240,240,240,224, - 192,8,16,16,8,0,254,255,255,255,255,255,255,231,195,195, - 231,255,255,255,255,255,255,8,16,16,8,0,254,255,255,255, - 255,255,231,219,189,189,219,231,255,255,255,255,255,8,8,8, - 8,0,6,255,255,255,255,255,231,219,189,8,8,8,8,0, - 254,189,219,231,255,255,255,255,255,4,4,4,8,1,5,48, - 64,128,128,4,4,4,8,4,5,192,32,16,16,4,4,4, - 8,4,2,16,16,32,192,4,4,4,8,1,2,128,128,64, - 48,7,4,4,8,1,5,56,68,130,130,7,4,4,8,1, - 2,130,130,68,56,6,6,6,8,1,255,4,12,28,60,124, - 252,6,6,6,8,1,255,128,192,224,240,248,252,6,6,6, - 8,1,6,252,248,240,224,192,128,6,6,6,8,1,6,252, - 124,60,28,12,4,5,5,5,8,1,2,112,136,136,136,112, - 6,6,6,8,1,3,252,228,228,228,228,252,6,6,6,8, - 1,3,252,156,156,156,156,252,6,6,6,8,1,3,252,244, - 228,196,132,252,6,6,6,8,1,3,252,132,140,156,188,252, - 7,6,6,8,1,3,254,146,146,146,146,254,7,7,7,8, - 1,2,16,40,40,68,84,130,254,6,6,6,8,1,2,48, - 48,104,104,228,252,6,7,7,8,1,2,48,48,88,88,156, - 156,252,8,8,8,8,0,2,60,66,129,129,129,129,66,60, - 6,6,6,8,1,0,252,164,228,132,132,252,6,6,6,8, - 1,0,252,132,132,228,164,252,6,6,6,8,1,0,252,132, - 132,156,148,252,6,6,6,8,1,0,252,148,156,132,132,252, - 8,8,8,8,0,0,60,82,145,241,129,129,66,60,8,8, - 8,8,0,0,60,66,129,129,241,145,82,60,8,8,8,8, - 0,0,60,66,129,129,143,137,74,60,8,8,8,8,0,0, - 60,74,137,143,129,129,66,60,6,6,6,8,1,6,252,136, - 144,160,192,128,6,6,6,8,1,6,252,68,36,20,12,4, - 6,6,6,8,1,255,128,192,160,144,136,252,6,6,6,8, - 1,255,252,132,132,132,132,252,6,6,6,8,1,255,252,252, - 252,252,252,252,4,4,4,8,2,0,240,144,144,240,4,4, - 4,8,2,0,240,240,240,240,6,6,6,8,1,255,4,12, - 20,36,68,252}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 14 - Calculated Max Values w=16 h=16 x= 4 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-1 - X Font ascent =14 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[7240] U8G_SECTION(".progmem.u8g_font_unifont_72_73") = { - 0,16,16,0,254,10,4,144,6,240,0,255,255,14,254,14, - 255,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,14,5,10,16,1,4,115,36,132, - 164,100,188,20,164,227,36,13,5,10,16,1,4,119,72,130, - 72,98,48,18,72,226,72,13,5,10,16,1,4,247,72,130, - 72,242,48,130,72,242,72,14,5,10,16,1,4,243,124,132, - 144,244,144,132,144,243,16,14,5,10,16,1,4,244,152,132, - 164,246,164,133,172,244,156,13,5,10,16,1,4,99,72,148, - 80,244,96,148,80,147,72,14,5,10,16,1,4,231,160,148, - 32,231,160,148,32,231,188,10,5,10,16,1,4,241,192,138, - 0,241,128,136,64,243,128,11,5,10,16,1,4,139,224,136, - 128,248,128,136,128,136,128,11,5,10,16,1,4,131,224,130, - 0,131,224,130,0,250,0,11,5,10,16,1,4,139,224,136, - 128,136,128,80,128,32,128,11,5,10,16,1,4,251,224,130, - 0,251,224,130,0,130,0,11,5,10,16,1,4,123,192,130, - 32,131,192,130,64,122,32,11,5,10,16,1,4,121,192,130, - 32,114,32,10,32,241,192,11,5,10,16,1,4,123,224,128, - 128,112,128,8,128,243,224,12,5,10,16,1,4,228,112,148, - 64,148,112,148,64,231,112,13,5,10,16,1,4,227,16,148, - 48,148,16,148,16,227,56,13,5,10,16,1,4,227,48,148, - 8,148,16,148,32,227,56,13,5,10,16,1,4,227,48,148, - 8,148,48,148,8,227,48,13,5,10,16,1,4,227,8,148, - 24,148,40,148,56,227,8,14,5,10,16,1,4,147,36,212, - 168,212,176,183,168,148,164,14,5,10,16,1,4,104,164,133, - 52,98,44,18,36,226,36,13,5,10,16,1,4,247,112,130, - 72,242,112,130,72,242,112,13,5,10,16,1,4,102,72,137, - 104,143,88,137,72,105,72,11,5,10,16,1,4,250,32,131, - 96,250,160,130,32,250,32,14,5,10,16,1,4,116,184,132, - 164,100,184,20,164,227,56,14,5,10,16,1,4,243,156,132, - 32,243,32,128,160,247,28,9,5,10,16,1,4,243,128,132, - 0,243,0,128,128,135,0,9,5,10,16,1,4,115,128,132, - 0,179,0,144,128,119,0,9,5,10,16,1,4,227,128,148, - 0,227,0,160,128,151,0,9,5,10,16,1,4,147,128,148, - 0,147,0,144,128,103,0,9,5,10,16,1,4,119,0,132, - 128,103,0,20,0,228,0,14,5,10,16,1,4,231,160,148, - 32,151,160,148,32,231,188,6,10,10,8,1,0,40,48,32, - 96,184,36,36,36,36,56,6,2,2,8,1,0,132,252,6, - 9,9,8,1,1,144,208,176,144,0,32,32,32,60,7,7, - 7,8,1,2,2,20,42,84,168,80,128,6,11,11,8,1, - 0,120,132,132,128,64,32,16,16,0,16,16,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 5,10,10,8,2,0,56,40,40,40,32,32,160,160,160,224, - 5,10,10,8,2,0,8,8,8,8,8,248,136,136,136,136, - 5,10,10,8,2,0,136,136,136,136,136,248,32,32,32,32, - 5,10,10,8,2,0,32,32,32,32,32,248,136,136,136,136, - 5,10,10,8,2,0,248,168,168,168,32,32,168,168,168,248, - 5,5,5,8,2,5,136,216,168,216,136,6,8,8,8,1, - 1,28,220,220,192,192,220,220,28,8,10,10,8,0,0,3, - 3,3,27,24,24,216,192,192,192,7,10,10,8,1,0,14, - 174,174,160,160,160,160,160,160,160,7,9,9,8,1,0,218, - 218,218,218,218,218,218,218,218,8,10,10,8,0,0,160,160, - 80,40,40,20,20,10,5,5,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,15,15,30,16, - 0,255,7,192,24,48,32,8,65,4,67,4,133,2,129,2, - 129,2,129,2,129,2,65,4,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,72,36, - 128,34,128,34,128,194,131,2,132,2,72,36,79,228,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,72,36,128,34,128,34,128,194,128,34,128,34,72,36, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,68,64,196,129,66,130,66,132,66,136,66, - 159,242,64,68,65,244,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,79,228,72,4,136,2,143,194, - 128,34,128,34,128,34,72,36,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,72,36, - 136,2,136,2,143,194,136,34,136,34,72,36,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 79,228,72,36,128,66,128,66,128,130,129,2,129,2,66,4, - 66,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,72,36,136,34,136,34,135,194,136,34, - 136,34,72,36,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,71,196,72,36,136,34,136,34, - 135,226,128,34,128,34,72,36,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,72,228,89,20, - 137,18,137,18,137,18,137,18,137,18,73,20,92,228,32,8, - 24,48,7,192,14,14,28,16,1,255,31,224,32,16,72,72, - 152,196,136,68,136,68,136,68,136,68,136,68,136,68,156,228, - 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, - 73,200,154,36,139,36,136,36,136,196,137,4,138,4,138,20, - 159,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, - 32,16,73,200,154,36,136,36,136,36,136,196,136,36,138,36, - 138,36,157,196,64,8,32,16,31,224,14,14,28,16,1,255, - 31,224,32,16,72,72,152,196,136,196,137,68,137,68,138,68, - 143,244,136,68,156,228,64,8,32,16,31,224,14,14,28,16, - 1,255,31,224,32,16,75,40,154,196,138,4,138,196,139,36, - 136,36,136,36,138,36,157,196,64,8,32,16,31,224,14,14, - 28,16,1,255,31,224,32,16,72,200,153,36,138,4,138,196, - 139,36,138,36,138,36,138,36,157,196,64,8,32,16,31,224, - 14,14,28,16,1,255,31,224,32,16,75,232,154,36,136,36, - 136,68,136,132,136,132,136,132,136,132,157,196,64,8,32,16, - 31,224,14,14,28,16,1,255,31,224,32,16,73,200,154,36, - 138,36,138,36,137,196,138,36,138,36,138,36,157,196,64,8, - 32,16,31,224,14,14,28,16,1,255,31,224,32,16,73,200, - 154,36,138,36,138,36,137,228,136,36,136,36,138,36,157,196, - 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, - 88,200,165,36,133,36,133,36,137,36,145,36,161,36,165,36, - 188,196,64,8,32,16,31,224,15,14,28,16,0,255,64,4, - 129,2,129,2,129,2,129,2,129,2,129,2,129,2,129,2, - 129,2,129,2,129,2,129,2,64,4,15,14,28,16,0,255, - 64,4,135,130,136,66,136,66,128,66,128,66,128,66,128,130, - 131,2,132,2,136,66,136,66,143,194,64,4,15,14,28,16, - 0,255,64,4,135,130,136,66,136,66,128,66,128,130,131,2, - 128,130,128,66,128,66,136,66,136,66,135,130,64,4,15,14, - 28,16,0,255,65,132,130,130,130,130,130,130,132,130,132,130, - 136,130,136,130,143,226,128,130,128,130,128,130,128,130,64,4, - 15,14,28,16,0,255,64,4,143,194,136,2,136,2,136,2, - 139,130,140,66,136,66,128,66,128,66,136,66,136,66,135,130, - 64,4,15,14,28,16,0,255,64,4,135,130,136,66,136,66, - 136,2,136,2,139,130,140,66,136,66,136,66,136,66,136,66, - 135,130,64,4,15,14,28,16,0,255,64,4,143,226,136,34, - 136,34,128,66,128,130,128,130,128,130,129,2,129,2,129,2, - 129,2,129,2,64,4,15,14,28,16,0,255,64,4,135,130, - 136,66,136,66,136,66,136,66,135,130,136,66,136,66,136,66, - 136,66,136,66,135,130,64,4,15,14,28,16,0,255,64,4, - 135,130,136,66,136,66,136,66,136,66,136,194,135,66,128,66, - 128,66,136,66,136,66,135,130,64,4,15,14,28,16,0,255, - 64,4,136,226,137,18,137,18,137,18,137,18,137,18,137,18, - 137,18,137,18,137,18,137,18,136,226,64,4,15,14,28,16, - 0,255,64,4,136,34,136,34,136,34,136,34,136,34,136,34, - 136,34,136,34,136,34,136,34,136,34,136,34,64,4,15,14, - 28,16,0,255,64,4,145,226,146,18,146,18,144,18,144,18, - 144,34,144,194,145,2,146,2,146,18,146,18,147,242,64,4, - 15,14,28,16,0,255,64,4,145,226,146,18,146,18,144,18, - 144,34,144,194,144,34,144,18,144,18,146,18,146,18,145,226, - 64,4,15,14,28,16,0,255,64,4,144,98,144,162,144,162, - 144,162,145,34,145,34,146,34,146,34,147,250,144,34,144,34, - 144,34,64,4,15,14,28,16,0,255,64,4,147,242,146,2, - 146,2,146,2,146,226,147,18,146,18,144,18,144,18,146,18, - 146,18,145,226,64,4,15,14,28,16,0,255,64,4,145,226, - 146,18,146,18,146,2,146,2,146,226,147,18,146,18,146,18, - 146,18,146,18,145,226,64,4,15,14,28,16,0,255,64,4, - 147,242,146,18,146,18,144,34,144,66,144,66,144,66,144,130, - 144,130,144,130,144,130,144,130,64,4,15,14,28,16,0,255, - 64,4,145,226,146,18,146,18,146,18,146,18,145,226,146,18, - 146,18,146,18,146,18,146,18,145,226,64,4,15,14,28,16, - 0,255,64,4,145,226,146,18,146,18,146,18,146,18,146,50, - 145,210,144,18,144,18,146,18,146,18,145,226,64,4,15,14, - 28,16,0,255,64,4,156,114,162,138,162,138,130,138,130,138, - 132,138,136,138,144,138,160,138,162,138,162,138,190,114,64,4, - 6,14,14,16,4,255,32,96,160,32,32,32,32,32,32,32, - 32,32,32,36,9,14,28,16,3,255,120,0,132,0,132,0, - 4,0,4,0,4,0,8,0,48,0,64,0,128,0,128,0, - 132,0,132,0,252,128,9,14,28,16,3,255,120,0,132,0, - 132,0,4,0,4,0,8,0,48,0,8,0,4,0,4,0, - 132,0,132,0,132,0,120,128,10,15,30,16,3,254,24,0, - 40,0,40,0,40,0,72,0,72,0,72,0,136,0,136,0, - 254,0,8,0,8,0,8,0,8,64,8,0,9,14,28,16, - 3,255,252,0,128,0,128,0,128,0,128,0,128,0,184,0, - 196,0,132,0,4,0,4,0,132,0,132,0,120,128,9,14, - 28,16,3,255,120,0,132,0,132,0,132,0,128,0,128,0, - 184,0,196,0,132,0,132,0,132,0,132,0,132,0,120,128, - 10,14,28,16,3,255,254,0,130,0,130,0,4,0,8,0, - 8,0,8,0,16,0,16,0,16,0,16,0,16,0,16,0, - 16,64,9,14,28,16,3,255,120,0,132,0,132,0,132,0, - 132,0,72,0,48,0,72,0,132,0,132,0,132,0,132,0, - 132,0,120,128,9,14,28,16,3,255,120,0,132,0,132,0, - 132,0,132,0,132,0,140,0,116,0,4,0,4,0,132,0, - 132,0,132,0,120,128,13,14,28,16,0,255,35,192,100,32, - 164,32,36,32,36,32,36,32,36,32,36,32,36,32,36,32, - 36,32,36,32,36,32,35,200,12,14,28,16,0,255,32,128, - 97,128,162,128,32,128,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,32,128,32,144,14,14,28,16,0,255, - 35,192,100,32,164,32,32,32,32,32,32,32,32,64,33,128, - 34,0,36,0,36,0,36,32,36,32,39,228,14,14,28,16, - 0,255,35,192,100,32,164,32,32,32,32,32,32,64,33,128, - 32,64,32,32,32,32,36,32,36,32,36,32,35,196,13,14, - 28,16,0,255,32,192,97,64,161,64,33,64,34,64,34,64, - 34,64,36,64,36,64,39,240,32,64,32,64,32,64,32,72, - 14,14,28,16,0,255,39,224,100,0,164,0,36,0,36,0, - 36,0,37,192,38,32,36,32,32,32,32,32,36,32,36,32, - 35,196,14,14,28,16,0,255,35,192,100,32,164,32,36,32, - 36,0,36,0,37,192,38,32,36,32,36,32,36,32,36,32, - 36,32,35,196,14,14,28,16,0,255,39,240,100,16,164,16, - 32,32,32,64,32,64,32,64,32,128,32,128,32,128,32,128, - 32,128,32,128,32,132,14,14,28,16,0,255,35,192,100,32, - 164,32,36,32,36,32,34,64,33,128,34,64,36,32,36,32, - 36,32,36,32,36,32,35,196,14,14,28,16,0,255,35,192, - 100,32,164,32,36,32,36,32,36,32,36,96,35,160,32,32, - 32,32,36,32,36,32,36,32,35,196,13,14,28,16,1,255, - 113,192,138,32,138,32,10,32,10,32,10,32,50,32,66,32, - 130,32,130,32,130,32,138,32,138,32,249,200,14,14,28,16, - 1,255,48,48,64,8,128,4,128,4,135,132,136,68,128,68, - 135,196,136,68,136,68,135,180,128,4,64,8,48,48,14,14, - 28,16,1,255,48,48,72,8,152,4,136,4,139,132,140,68, - 136,36,136,36,136,36,140,68,155,132,128,4,64,8,48,48, - 14,14,28,16,1,255,48,48,64,8,128,4,128,4,135,132, - 136,68,144,4,144,4,144,36,136,68,135,132,128,4,64,8, - 48,48,14,14,28,16,1,255,48,48,64,72,128,196,128,68, - 135,68,136,196,144,68,144,68,144,68,136,196,135,100,128,4, - 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, - 128,4,143,132,144,68,144,68,159,196,144,4,144,68,143,132, - 128,4,64,8,48,48,14,14,28,16,1,255,48,48,65,136, - 130,196,130,4,143,132,130,4,130,4,130,4,130,4,130,4, - 135,4,128,4,64,8,48,48,14,14,28,16,1,255,48,48, - 64,8,128,4,128,100,135,132,136,68,136,68,159,132,144,4, - 143,196,144,36,144,36,79,200,48,48,14,14,28,16,1,255, - 48,48,72,8,152,4,136,4,137,196,142,68,136,68,136,68, - 136,68,136,68,156,228,128,4,64,8,48,48,14,14,28,16, - 1,255,49,48,65,8,128,4,128,4,129,4,131,4,129,4, - 129,4,129,4,129,4,131,132,128,4,64,8,48,48,14,14, - 28,16,1,255,49,48,65,8,128,4,128,4,129,4,131,4, - 129,4,129,4,129,4,129,4,129,4,137,4,70,8,48,48, - 14,14,28,16,1,255,48,48,72,8,152,4,136,4,137,196, - 136,132,137,4,143,4,137,132,136,196,156,228,128,4,64,8, - 48,48,14,14,28,16,1,255,48,48,66,8,134,4,130,4, - 130,4,130,4,130,4,130,4,130,4,130,4,135,4,128,4, - 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, - 128,4,150,196,187,68,146,68,146,68,146,68,146,68,187,100, - 128,4,64,8,48,48,14,14,28,16,1,255,48,48,64,8, - 128,4,128,4,137,196,158,68,136,68,136,68,136,68,136,68, - 156,228,128,4,64,8,48,48,14,14,28,16,1,255,48,48, - 64,8,128,4,128,4,143,132,144,68,144,68,144,68,144,68, - 144,68,143,132,128,4,64,8,48,48,14,14,28,16,1,255, - 48,48,64,8,128,4,128,4,139,132,156,68,136,36,136,36, - 136,36,140,68,139,132,136,4,92,8,48,48,14,14,28,16, - 1,255,48,48,64,8,128,4,128,4,135,68,136,196,144,68, - 144,68,144,68,136,196,135,68,128,68,64,232,48,48,14,14, - 28,16,1,255,48,48,64,8,128,4,128,4,137,196,158,100, - 136,4,136,4,136,4,136,4,156,4,128,4,64,8,48,48, - 14,14,28,16,1,255,48,48,64,8,128,4,128,4,135,196, - 136,36,136,4,135,196,128,36,136,36,135,196,128,4,64,8, - 48,48,14,14,28,16,1,255,48,48,64,8,128,4,130,4, - 130,4,143,132,130,4,130,4,130,4,130,68,131,132,128,4, - 64,8,48,48,14,14,28,16,1,255,48,48,64,8,128,4, - 128,4,136,68,152,196,136,68,136,68,136,68,136,196,143,100, - 128,4,64,8,48,48,14,14,28,16,1,255,48,48,64,8, - 128,4,128,4,156,116,136,36,132,68,132,68,130,132,130,132, - 129,4,128,4,64,8,48,48,14,14,28,16,1,255,48,48, - 64,8,128,4,128,4,191,116,146,36,146,36,137,68,139,68, - 132,132,132,132,128,4,64,8,48,48,14,14,28,16,1,255, - 48,48,64,8,128,4,128,4,156,228,136,68,132,132,131,4, - 132,132,136,68,156,228,128,4,64,8,48,48,14,14,28,16, - 1,255,48,48,64,8,128,4,128,4,184,228,144,68,136,132, - 133,4,130,4,130,4,135,4,128,4,64,8,48,48,14,14, - 28,16,1,255,48,48,64,8,128,4,128,4,135,228,132,68, - 136,132,129,4,130,4,132,36,143,196,128,4,64,8,48,48, - 15,15,30,16,0,255,7,192,24,48,33,8,66,132,68,68, - 132,66,132,66,135,194,132,66,132,66,68,68,76,100,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 79,132,68,68,132,34,132,66,135,130,132,66,132,34,68,68, - 79,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,196,68,36,132,2,132,2,132,2,132,2, - 132,2,68,36,67,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,79,132,68,68,132,34,132,34, - 132,34,132,34,132,34,68,68,79,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,79,228,68,36, - 132,2,132,2,135,130,132,2,132,2,68,36,79,228,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 79,228,68,36,132,2,132,2,135,130,132,2,132,2,68,4, - 78,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,196,68,36,132,2,132,2,132,226,132,34, - 132,34,68,100,67,164,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,78,228,68,68,132,66,132,66, - 135,194,132,66,132,66,68,68,78,228,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,67,132,65,4, - 129,2,129,2,129,2,129,2,129,2,65,4,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,196,64,132,128,130,128,130,128,130,128,130,128,130,72,132, - 71,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,78,100,68,68,132,130,133,2,134,2,133,2, - 132,130,68,68,78,100,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,78,4,68,4,132,2,132,2, - 132,2,132,2,132,2,68,36,79,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,76,100,70,196, - 134,194,133,66,133,66,132,66,132,66,68,68,78,228,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 76,100,68,68,134,66,134,66,133,66,133,66,132,194,68,196, - 76,100,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,132,68,68,136,34,136,34,136,34,136,34, - 136,34,68,68,67,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,79,132,68,68,132,66,132,66, - 135,130,132,2,132,2,68,4,78,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,67,132,68,68, - 136,34,136,34,136,34,136,34,137,162,68,68,67,164,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 79,132,68,68,132,66,132,66,135,130,133,2,132,130,68,68, - 78,36,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,132,68,68,132,2,132,2,131,130,128,66, - 128,66,68,68,67,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,79,228,73,36,129,2,129,2, - 129,2,129,2,129,2,65,4,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,78,228,68,68, - 132,66,132,66,132,66,132,66,132,66,68,68,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 76,100,68,68,132,66,132,66,130,130,130,130,130,130,65,4, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,76,100,69,68,133,66,133,66,133,66,133,66, - 134,194,68,68,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,78,228,68,68,132,66,130,130, - 129,2,130,130,132,66,68,68,78,228,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,78,228,68,68, - 132,66,130,130,129,2,129,2,129,2,65,4,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 79,228,72,36,128,66,128,130,129,2,130,2,132,2,72,36, - 79,228,32,8,24,48,7,192,14,14,28,16,1,255,31,224, - 32,16,64,8,128,4,143,132,144,68,128,68,143,196,144,68, - 144,68,143,180,64,8,32,16,31,224,14,14,28,16,1,255, - 31,224,40,16,88,8,136,4,139,132,140,68,136,36,136,36, - 136,36,140,68,155,132,64,8,32,16,31,224,14,14,28,16, - 1,255,31,224,32,16,64,8,128,4,135,132,136,68,144,4, - 144,4,144,4,136,100,135,132,64,8,32,16,31,224,14,14, - 28,16,1,255,31,224,32,80,64,200,128,68,135,68,136,196, - 144,68,144,68,144,68,144,68,143,164,64,8,32,16,31,224, - 14,14,28,16,1,255,31,224,32,16,64,8,128,4,135,132, - 136,68,144,36,159,228,144,4,136,36,135,196,64,8,32,16, - 31,224,14,14,28,16,1,255,31,224,35,144,66,200,130,4, - 143,132,130,4,130,4,130,4,130,4,130,4,135,4,64,8, - 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, - 128,196,135,132,136,68,136,68,143,132,144,4,159,196,144,36, - 80,40,47,208,31,224,14,14,28,16,1,255,31,224,40,16, - 88,8,136,4,139,196,140,68,136,68,136,68,136,68,136,68, - 156,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, - 33,16,65,8,128,4,129,4,131,4,129,4,129,4,129,4, - 129,4,131,132,64,8,32,16,31,224,14,14,28,16,1,255, - 31,224,33,16,65,8,128,4,129,4,131,4,129,4,129,4, - 129,4,129,4,129,4,89,8,38,16,31,224,14,14,28,16, - 1,255,31,224,40,16,88,8,136,4,137,228,136,132,139,4, - 141,132,136,196,136,100,156,244,64,8,32,16,31,224,14,14, - 28,16,1,255,31,224,34,16,70,8,130,4,130,4,130,4, - 130,4,130,4,130,4,130,4,135,4,64,8,32,16,31,224, - 14,14,28,16,1,255,31,224,32,16,64,8,128,4,150,196, - 187,68,146,68,146,68,146,68,146,68,187,100,64,8,32,16, - 31,224,14,14,28,16,1,255,31,224,32,16,64,8,128,4, - 139,196,156,68,136,68,136,68,136,68,136,68,156,228,64,8, - 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, - 128,4,135,196,136,36,136,36,136,36,136,36,136,36,135,196, - 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, - 64,8,128,4,139,132,156,68,136,36,136,36,136,36,140,68, - 139,132,72,8,40,16,31,224,14,14,28,16,1,255,31,224, - 32,16,64,8,128,4,135,68,136,196,144,68,144,68,144,68, - 136,196,135,68,64,72,32,80,31,224,14,14,28,16,1,255, - 31,224,32,16,64,8,128,4,137,196,158,100,136,4,136,4, - 136,4,136,4,156,4,64,8,32,16,31,224,14,14,28,16, - 1,255,31,224,32,16,64,8,128,4,135,196,136,36,140,4, - 131,132,128,100,136,36,135,196,64,8,32,16,31,224,14,14, - 28,16,1,255,31,224,32,16,64,8,130,4,130,4,143,132, - 130,4,130,4,130,4,130,68,131,132,64,8,32,16,31,224, - 14,14,28,16,1,255,31,224,32,16,64,8,128,4,136,68, - 152,196,136,68,136,68,136,68,136,68,143,164,64,8,32,16, - 31,224,14,14,28,16,1,255,31,224,32,16,64,8,128,4, - 156,116,136,36,132,68,132,68,130,132,130,132,129,4,64,8, - 32,16,31,224,14,14,28,16,1,255,31,224,32,16,64,8, - 128,4,247,116,162,36,162,36,147,68,149,68,136,132,136,132, - 64,8,32,16,31,224,14,14,28,16,1,255,31,224,32,16, - 64,8,128,4,184,228,136,132,133,4,130,4,133,4,136,132, - 184,228,64,8,32,16,31,224,14,14,28,16,1,255,31,224, - 32,16,64,8,128,4,184,228,144,68,136,132,133,4,130,4, - 130,4,135,4,64,8,32,16,31,224,14,14,28,16,1,255, - 31,224,32,16,64,8,128,4,143,196,136,68,144,132,131,4, - 132,4,136,68,159,132,64,8,32,16,31,224,16,15,30,16, - 0,254,7,224,24,24,32,4,67,194,68,34,132,33,132,33, - 132,33,132,33,132,33,68,34,67,194,32,4,24,24,7,224, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,188, - 231,60,247,188,247,188,227,28,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, - 231,220,247,188,247,124,227,28,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, - 231,220,247,60,247,220,227,60,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,246,188, - 230,188,246,28,247,188,227,188,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,28, - 231,124,247,60,247,220,227,60,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, - 230,252,246,60,246,220,227,60,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,246,60, - 231,188,247,188,247,124,227,124,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, - 230,220,247,60,246,220,227,60,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,247,60, - 230,220,247,28,247,220,227,60,127,248,127,248,63,240,15,192, - 14,13,26,16,1,255,15,192,63,240,127,248,127,248,231,156, - 251,108,247,108,239,108,227,156,127,248,127,248,63,240,15,192, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 144,137,161,133,160,133,160,133,145,201,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,137,160,69,160,133,161,5,145,201,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,160,69,161,133,160,69, - 145,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,146,137,162,133, - 163,197,160,133,144,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 145,201,161,5,161,133,160,69,145,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,137,162,5,163,133,162,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,201,160,69,160,69,160,133, - 144,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,137,162,69, - 161,133,162,69,145,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 145,137,162,69,161,197,160,69,145,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,146,105,166,149,162,149,162,149,151,105,80,10, - 76,50,35,196,24,24,7,224,14,13,26,16,1,255,15,192, - 63,240,127,248,127,248,252,252,251,124,251,124,251,124,252,252, - 127,248,127,248,63,240,15,192}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 6, '1' Height: 3 - Calculated Max Values w= 8 h=10 x= 2 y= 4 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_75r[580] U8G_SECTION(".progmem.u8g_font_unifont_75r") = { - 0,16,16,0,254,6,1,137,0,0,32,79,0,11,0,8, - 0,7,7,7,8,1,1,254,254,254,254,254,254,254,7,7, - 7,8,1,1,254,130,130,130,130,130,254,7,7,7,8,1, - 1,124,130,130,130,130,130,124,7,7,7,8,1,1,254,130, - 186,186,186,130,254,7,7,7,8,1,1,254,130,254,130,254, - 130,254,7,7,7,8,1,1,254,170,170,170,170,170,254,7, - 7,7,8,1,1,254,170,254,170,254,170,254,7,7,7,8, - 1,1,254,166,146,202,166,146,254,7,7,7,8,1,1,254, - 202,146,166,202,146,254,7,7,7,8,1,1,254,170,214,170, - 214,170,254,4,4,4,8,2,4,240,240,240,240,4,4,4, - 8,2,4,240,144,144,240,7,4,4,8,1,4,254,254,254, - 254,7,4,4,8,1,4,254,130,130,254,4,7,7,8,2, - 2,240,240,240,240,240,240,240,4,7,7,8,2,2,240,144, - 144,144,144,144,240,8,3,3,8,0,4,63,126,252,8,3, - 3,8,0,4,63,66,252,6,6,6,8,1,3,48,48,120, - 120,252,252,6,6,6,8,1,3,48,48,72,72,132,252,6, - 3,3,8,1,3,48,120,252,6,3,3,8,1,3,48,72, - 252,6,6,6,8,1,3,192,240,252,252,240,192,6,6,6, - 8,1,3,192,176,140,140,176,192,4,4,4,8,2,4,192, - 240,240,192,4,4,4,8,2,4,192,176,176,192,6,5,5, - 8,1,3,192,240,252,240,192,6,5,5,8,1,3,192,176, - 140,176,192,6,6,6,8,1,3,252,252,120,120,48,48,6, - 6,6,8,1,3,252,132,72,72,48,48,6,3,3,8,1, - 3,252,120,48,6,3,3,8,1,3,252,72,48,6,6,6, - 8,1,3,12,60,252,252,60,12,6,6,6,8,1,3,12, - 52,196,196,52,12,4,4,4,8,2,4,48,240,240,48,4, - 4,4,8,2,4,48,208,208,48,6,5,5,8,1,3,12, - 60,252,60,12,6,5,5,8,1,3,12,52,196,52,12,7, - 7,7,8,1,2,16,56,124,254,124,56,16,7,7,7,8, - 1,2,16,40,68,130,68,40,16,7,7,7,8,1,2,16, - 40,84,186,84,40,16,7,7,7,8,1,2,56,68,178,186, - 154,68,56,6,10,10,8,1,1,48,48,72,72,132,132,72, - 72,48,48,7,7,7,8,1,2,56,68,130,130,130,68,56, - 7,7,7,8,1,2,40,0,130,0,130,0,40,7,7,7, - 8,1,2,56,108,170,170,170,108,56,7,7,7,8,1,2, - 56,68,146,170,146,68,56,7,7,7,8,1,2,56,124,254, - 254,254,124,56}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 3 y= 6 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_76[2532] U8G_SECTION(".progmem.u8g_font_unifont_76") = { - 0,16,16,0,254,10,2,68,4,220,32,159,0,14,254,10, - 0,7,12,12,8,1,0,16,146,68,0,56,124,124,56,0, - 68,146,16,8,4,4,8,0,6,32,118,255,126,7,8,8, - 8,1,2,56,124,254,16,16,16,16,32,16,16,32,16,0, - 254,139,200,3,192,47,241,4,36,138,80,40,18,10,80,73, - 148,4,33,71,224,8,16,16,136,120,30,16,136,8,16,7, - 224,7,11,11,8,1,0,68,68,72,72,80,82,4,96,144, - 144,96,7,6,6,8,1,3,16,16,254,56,108,68,7,7, - 7,8,1,3,16,16,238,68,84,108,68,5,9,9,8,2, - 0,8,16,32,64,128,64,40,24,56,6,8,8,8,1,0, - 252,132,136,144,160,148,140,156,8,8,8,8,0,0,60,66, - 129,153,153,129,66,60,8,6,6,8,0,2,24,36,36,102, - 165,66,8,6,6,8,0,2,66,165,102,36,36,24,5,6, - 6,8,1,2,8,16,96,144,144,96,7,9,9,8,1,0, - 12,18,18,12,16,96,144,144,96,7,6,6,8,1,1,124, - 198,0,84,198,254,7,7,7,8,1,1,124,130,186,124,146, - 130,254,7,7,7,8,1,0,254,130,130,130,130,130,254,7, - 8,8,8,1,0,8,254,138,138,202,178,130,254,7,7,7, - 8,1,0,254,130,170,146,170,130,254,5,10,10,8,2,0, - 136,136,80,80,32,32,80,80,136,136,7,12,12,8,1,2, - 10,160,8,130,56,124,254,16,16,16,16,32,12,13,26,16, - 2,0,36,128,73,0,73,0,36,128,36,128,73,0,0,0, - 127,32,255,208,191,80,128,80,128,224,127,0,11,13,26,16, - 2,0,4,0,10,0,17,0,32,128,64,64,128,32,128,32, - 128,32,128,32,128,32,128,32,128,32,255,224,11,13,26,16, - 2,0,4,0,14,0,31,0,63,128,127,192,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,13,13,26,16, - 1,255,5,0,15,128,15,128,103,48,242,120,127,240,242,120, - 98,48,4,0,4,0,4,0,8,0,16,0,14,15,30,16, - 1,254,102,24,79,24,223,176,159,160,255,160,255,32,255,56, - 126,228,127,36,127,40,63,152,63,144,31,176,15,32,6,0, - 7,4,4,8,1,2,252,62,62,28,7,4,4,8,1,2, - 126,248,248,112,7,4,4,8,1,2,252,34,50,28,4,7, - 7,8,2,2,16,16,112,208,144,144,96,7,4,4,8,1, - 2,126,136,152,112,4,7,7,8,2,0,96,144,144,208,112, - 16,16,8,12,12,8,0,0,231,165,126,129,165,165,129,90, - 90,66,189,231,4,10,10,8,2,0,224,16,16,32,32,64, - 64,128,128,112,13,13,26,16,1,0,31,192,32,32,69,16, - 141,136,157,200,189,232,255,248,130,8,135,8,143,136,95,208, - 32,32,31,192,15,13,26,16,0,255,4,64,8,32,16,16, - 16,16,19,144,12,96,62,248,68,68,133,66,131,130,2,128, - 4,64,24,48,13,15,30,16,1,254,6,0,2,0,255,248, - 71,16,63,224,2,0,26,192,34,32,31,192,18,64,15,128, - 10,128,7,0,10,128,2,0,5,8,8,8,2,0,112,136, - 80,32,248,32,32,32,5,9,9,8,2,0,32,112,32,248, - 32,48,96,32,32,6,10,10,8,1,0,56,36,36,56,32, - 168,112,32,112,168,5,9,9,8,2,0,32,112,32,248,32, - 32,32,32,32,7,7,7,8,1,0,56,16,146,254,146,16, - 56,8,9,9,8,0,1,30,33,64,194,199,194,64,33,30, - 11,11,22,16,2,0,21,0,27,0,0,0,85,64,164,160, - 164,160,164,160,149,32,78,64,31,0,4,0,11,12,24,16, - 3,255,4,0,21,0,36,128,78,64,213,96,213,96,206,96, - 228,224,223,96,142,32,21,0,4,0,8,8,8,8,0,0, - 12,2,57,121,13,62,99,193,7,8,8,8,1,0,124,146, - 146,146,186,214,146,124,13,12,24,16,1,0,31,192,32,32, - 64,16,64,16,152,72,188,8,254,24,239,56,255,248,127,240, - 63,224,31,192,13,10,20,16,1,0,255,248,255,248,0,0, - 0,0,255,248,255,248,0,0,0,0,255,248,255,248,13,10, - 20,16,1,0,248,248,248,248,0,0,0,0,255,248,255,248, - 0,0,0,0,255,248,255,248,13,10,20,16,1,0,255,248, - 255,248,0,0,0,0,248,248,248,248,0,0,0,0,255,248, - 255,248,13,10,20,16,1,0,248,248,248,248,0,0,0,0, - 248,248,248,248,0,0,0,0,255,248,255,248,13,10,20,16, - 1,0,255,248,255,248,0,0,0,0,255,248,255,248,0,0, - 0,0,248,248,248,248,13,10,20,16,1,0,248,248,248,248, - 0,0,0,0,255,248,255,248,0,0,0,0,248,248,248,248, - 13,10,20,16,1,0,255,248,255,248,0,0,0,0,248,248, - 248,248,0,0,0,0,248,248,248,248,13,10,20,16,1,0, - 248,248,248,248,0,0,0,0,248,248,248,248,0,0,0,0, - 248,248,248,248,7,7,7,8,1,0,146,124,124,238,124,124, - 146,8,10,10,8,0,1,60,66,129,165,129,153,165,129,66, - 60,8,9,9,8,0,1,60,66,129,165,129,165,153,66,60, - 8,9,9,8,0,1,60,126,255,219,255,219,231,126,60,7, - 7,7,8,1,2,146,84,56,238,56,84,146,6,10,10,8, - 2,0,224,48,24,20,20,20,20,24,48,224,6,10,10,8, - 1,0,28,48,96,160,160,160,160,96,48,28,5,11,11,8, - 2,0,136,136,112,136,136,136,112,32,248,32,32,5,9,9, - 8,2,0,112,136,136,136,112,32,248,32,32,5,10,10,8, - 2,1,32,32,248,32,32,112,136,136,136,112,7,8,8,8, - 1,1,14,6,10,112,136,136,136,112,6,10,10,8,1,0, - 4,4,4,116,140,12,20,252,4,4,6,10,10,8,1,0, - 64,64,224,64,88,100,68,72,72,72,7,9,9,8,1,0, - 214,84,124,84,214,16,56,40,56,8,11,11,8,0,255,8, - 89,203,73,73,73,62,8,62,8,8,6,10,10,8,1,0, - 248,132,132,132,248,128,128,128,128,252,7,10,10,8,1,0, - 68,170,40,40,16,16,16,16,16,16,7,7,7,8,1,0, - 130,68,56,68,68,68,56,7,10,10,8,1,0,130,124,40, - 40,40,40,40,40,124,130,7,8,8,8,1,0,124,146,144, - 96,12,18,146,124,8,9,9,8,0,0,28,34,34,18,116, - 148,148,101,2,7,10,10,8,1,0,168,248,170,174,170,170, - 170,170,12,248,7,6,6,8,1,1,56,68,68,238,0,254, - 7,10,10,8,1,0,168,248,168,168,168,168,168,168,170,6, - 7,7,7,8,1,0,30,6,138,82,32,80,136,6,10,10, - 8,1,0,128,240,144,144,156,20,28,16,16,96,6,6,6, - 8,1,2,84,168,0,0,84,168,6,9,9,8,1,0,132, - 132,72,72,252,72,72,132,132,7,13,13,8,1,0,16,56, - 146,186,198,130,68,68,68,130,130,130,254,7,11,11,8,1, - 0,16,56,198,130,68,68,68,130,130,130,254,7,9,9,8, - 1,0,170,254,130,130,68,68,130,130,254,7,10,10,8,1, - 0,16,40,68,68,68,68,40,238,130,254,6,11,11,8,1, - 0,4,60,68,132,132,116,36,68,132,132,252,6,8,8,8, - 1,0,48,72,72,48,72,72,132,252,7,13,13,8,1,0, - 16,56,146,186,254,254,124,124,124,254,254,254,254,7,11,11, - 8,1,0,16,56,254,238,124,124,124,254,254,254,254,7,8, - 8,8,1,0,170,254,254,124,124,254,254,254,7,10,10,8, - 1,0,16,56,108,68,108,124,56,254,254,254,6,11,11,8, - 1,0,4,60,108,252,252,124,60,124,252,252,252,6,8,8, - 8,1,0,48,120,120,48,120,120,252,252,7,10,10,8,1, - 0,16,16,56,124,254,254,254,124,16,56,7,9,9,8,1, - 0,108,146,130,130,130,68,40,16,16,5,10,10,8,2,0, - 32,32,80,80,136,136,80,80,32,32,7,10,10,8,1,0, - 56,56,56,16,254,254,214,16,16,56,7,10,10,8,1,0, - 16,16,40,68,130,130,130,124,16,56,7,9,9,8,1,0, - 108,254,254,254,254,124,56,16,16,5,10,10,8,2,0,32, - 32,112,112,248,248,112,112,32,32,7,10,10,8,1,0,56, - 40,56,16,238,186,214,16,16,56,8,11,11,8,0,0,8, - 81,146,146,146,73,73,73,82,129,126,4,10,10,8,1,0, - 16,16,16,16,16,16,16,112,240,224,6,10,10,8,1,0, - 16,24,20,20,16,16,16,112,240,224,8,11,11,8,0,0, - 28,23,17,17,17,17,113,241,231,15,14,8,11,11,8,0, - 0,28,23,17,29,23,17,113,241,231,15,14,6,12,12,8, - 1,0,128,128,128,128,128,184,204,140,136,144,160,192,6,11, - 11,8,1,0,128,128,156,252,228,132,156,252,228,4,4,6, - 13,13,8,1,255,8,72,76,124,248,200,72,76,124,248,200, - 72,64,7,10,10,8,1,0,40,16,16,146,124,146,16,16, - 16,40,7,10,10,8,1,0,56,40,16,214,186,214,16,16, - 40,16,16,16,32,16,0,254,3,184,4,165,8,179,5,9, - 18,5,40,9,68,31,238,0,40,15,48,73,36,201,13,101, - 22,19,37,120,60,192,0,64,15,16,32,16,0,254,3,128, - 4,64,4,64,8,32,0,40,57,24,27,56,41,0,33,8, - 67,132,64,4,128,34,128,66,126,252,0,64,0,32,15,16, - 32,16,0,254,3,128,4,64,4,64,8,32,0,40,59,24, - 24,184,41,0,34,8,67,132,64,4,128,34,128,66,126,252, - 0,64,0,32,15,16,32,16,0,254,3,128,4,64,4,64, - 8,32,0,40,57,24,24,184,43,0,32,136,67,4,64,4, - 128,34,128,66,126,252,0,64,0,32,15,16,32,16,0,254, - 3,128,4,64,4,64,8,32,0,40,58,152,26,184,43,128, - 32,136,64,132,64,4,128,34,128,66,126,252,0,64,0,32, - 15,16,32,16,0,254,3,128,4,64,4,64,8,32,0,40, - 59,152,26,56,43,0,32,136,67,4,64,4,128,34,128,66, - 126,252,0,64,0,32,15,16,32,16,0,254,3,128,4,64, - 4,64,8,32,0,40,57,152,26,56,43,128,34,72,65,132, - 64,4,128,34,128,66,126,252,0,64,0,32,15,16,32,16, - 0,254,3,128,4,64,4,64,8,32,0,40,59,152,24,184, - 41,0,33,8,65,4,64,4,128,34,128,66,126,252,0,64, - 0,32,15,16,32,16,0,254,3,128,4,64,4,64,8,32, - 0,40,56,24,24,56,40,0,32,8,64,4,64,4,128,34, - 128,66,126,252,0,64,0,32,16,16,32,16,0,254,3,184, - 7,189,15,191,7,15,18,7,56,15,124,31,254,0,56,15, - 48,79,36,207,13,231,31,243,61,248,60,192,0,64,15,16, - 32,16,0,254,7,192,15,224,60,120,123,188,119,172,127,204, - 199,142,231,254,215,238,223,238,111,108,118,220,124,60,62,248, - 15,96,7,192,15,16,32,16,0,254,7,192,24,48,32,8, - 67,132,68,84,64,52,184,114,152,2,168,18,160,18,80,148, - 73,36,67,196,33,8,24,176,7,192,13,12,24,16,0,255, - 7,0,24,192,32,32,64,16,77,144,146,72,146,72,77,144, - 64,16,32,32,24,192,7,0,12,11,22,16,2,0,24,0, - 24,0,16,0,30,0,16,0,95,128,128,128,128,64,129,64, - 66,48,60,0}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 4 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_77[1587] U8G_SECTION(".progmem.u8g_font_unifont_77") = { - 0,16,16,0,254,11,3,99,5,215,32,99,0,14,254,11, - 255,9,9,18,16,3,1,255,128,128,128,128,128,128,128,136, - 128,128,128,128,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,128,128,160,128,128,128,130,128,128,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,160,128,128,128,136, - 128,128,128,130,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,128,128,128,128,162,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,162,128,128,128,136, - 128,128,128,162,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,162,128,128,128,162,128,128,128,255, - 128,13,12,24,16,0,255,7,0,24,192,32,32,64,16,64, - 16,128,200,128,200,64,16,64,16,32,32,24,192,7,0,13, - 12,24,16,0,255,7,0,24,192,32,32,64,16,64,16,152, - 200,152,200,64,16,64,16,32,32,24,192,7,0,13,12,24, - 16,0,255,7,0,31,192,63,224,127,240,127,240,255,56,255, - 56,127,240,127,240,63,224,15,128,7,0,13,12,24,16,0, - 255,7,0,31,192,63,224,127,240,127,240,231,56,231,56,127, - 240,127,240,63,224,15,128,7,0,13,2,4,16,1,4,255, - 248,255,248,13,2,4,16,1,4,248,248,248,248,13,6,12, - 16,1,2,255,248,255,248,0,0,0,0,255,248,255,248,13, - 6,12,16,1,2,248,248,248,248,0,0,0,0,255,248,255, - 248,13,6,12,16,1,2,255,248,255,248,0,0,0,0,248, - 248,248,248,13,6,12,16,1,2,248,248,248,248,0,0,0, - 0,248,248,248,248,6,11,11,8,1,0,224,156,132,132,228, - 156,128,128,128,128,128,6,11,11,8,1,0,224,252,252,252, - 252,156,128,128,128,128,128,16,14,28,16,0,255,7,50,95, - 124,62,126,124,31,248,39,116,67,34,129,1,0,2,128,4, - 64,8,32,16,16,32,8,64,4,14,12,24,16,1,0,3, - 128,4,64,4,64,3,128,1,0,7,192,1,0,65,8,225, - 28,65,8,33,16,31,224,13,13,26,16,1,0,128,8,64, - 16,32,32,16,64,8,128,5,0,2,0,5,0,8,128,80, - 80,32,32,80,80,128,8,9,14,28,16,3,255,8,0,8, - 0,127,128,137,128,136,0,126,0,9,0,9,0,62,0,72, - 0,60,0,10,0,28,0,8,0,15,11,22,16,0,0,1, - 0,17,16,127,252,57,56,84,84,84,84,146,146,146,146,254, - 254,124,124,56,56,11,8,16,16,2,0,63,128,95,192,143, - 192,135,128,128,0,15,128,18,64,34,32,11,13,26,16,2, - 255,14,0,17,0,17,0,17,0,14,0,4,0,228,224,245, - 224,117,192,53,128,14,0,4,0,4,0,13,13,26,16,1, - 255,2,0,66,16,47,160,16,64,32,32,32,32,226,56,32, - 32,32,32,16,64,47,160,66,16,2,0,15,13,26,16,0, - 0,1,0,2,128,57,56,127,252,253,126,5,64,3,128,1, - 0,1,0,1,0,1,0,1,0,1,0,13,15,30,16,1, - 254,2,0,117,112,141,136,141,136,138,136,77,144,40,160,26, - 192,40,160,77,144,138,136,141,136,141,136,117,112,2,0,15, - 16,32,16,0,254,1,0,2,128,58,184,68,68,132,66,242, - 158,138,162,6,192,6,192,8,32,6,192,6,192,10,160,50, - 152,70,196,121,60,15,15,30,16,0,255,1,0,2,128,4, - 64,4,64,8,0,107,252,136,2,136,34,96,36,24,16,6, - 80,0,136,33,8,38,72,24,48,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,13,14,28,16,1,255,2,0,5,0,5,0,8,128,8, - 128,18,64,18,64,34,32,34,32,66,16,64,16,130,8,128, - 8,255,248,6,11,11,8,1,255,4,8,16,32,64,252,8, - 16,32,64,128,11,9,18,16,2,0,59,128,68,64,138,32, - 138,32,68,64,59,128,17,0,59,128,17,0,11,11,22,16, - 2,0,7,0,3,0,5,0,56,224,68,96,142,160,149,0, - 104,128,48,128,17,0,14,0,10,14,28,16,3,255,1,192, - 0,192,1,64,14,0,17,0,56,128,84,128,139,0,134,0, - 68,0,56,0,16,0,56,0,16,0,8,12,12,16,4,254, - 7,3,5,56,68,130,130,68,56,16,56,16,11,10,20,16, - 2,0,0,224,0,96,2,160,1,0,58,128,68,0,130,0, - 130,0,68,0,56,0,15,13,26,16,0,254,224,14,192,6, - 168,10,16,16,43,160,4,64,8,32,8,32,4,64,3,128, - 1,0,3,128,1,0,7,12,12,8,0,0,16,56,84,16, - 56,16,56,68,130,130,68,56,14,7,14,16,0,255,56,0, - 68,16,130,136,131,252,130,136,68,16,56,0,7,7,7,8, - 0,255,56,68,130,130,130,68,56,7,7,7,8,0,255,56, - 124,254,254,254,124,56,5,5,5,8,2,0,112,136,136,136, - 112,11,6,12,16,2,0,59,128,68,64,138,32,138,32,68, - 64,59,128,11,7,14,16,3,255,4,0,117,192,142,32,142, - 32,142,32,117,192,4,0,13,5,10,16,1,0,112,112,136, - 136,143,136,136,136,112,112,14,10,20,16,2,0,24,0,39, - 128,64,124,128,0,128,0,128,0,128,0,64,124,39,128,24, - 0,11,13,26,16,2,0,31,0,10,0,63,128,64,64,128, - 32,128,32,64,64,64,64,64,64,32,128,32,128,32,128,31, - 0,7,9,9,8,0,254,56,68,130,130,68,56,16,16,16, - 6,9,9,8,0,254,112,136,4,4,8,48,32,248,32,7, - 10,10,8,0,254,16,40,68,130,68,40,16,16,124,16,7, - 10,10,8,0,254,146,84,56,254,56,84,146,16,124,16,13, - 11,22,16,1,0,2,0,2,0,2,0,2,0,114,112,8, - 128,5,0,242,120,8,128,5,0,2,0,6,11,11,8,1, - 0,36,40,48,40,36,32,112,136,136,136,112,6,10,10,8, - 1,254,56,112,224,224,224,112,56,16,124,16,8,7,7,8, - 0,3,66,36,24,255,24,36,66,7,8,8,8,0,0,68, - 68,68,40,40,40,16,254,7,8,8,8,0,0,254,16,40, - 40,40,68,68,68,7,8,8,8,1,0,252,132,132,132,148, - 252,16,30,6,14,14,8,1,255,168,84,168,84,168,84,168, - 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, - 84,168,84,168,84,168,84,168,84,168,84,6,14,14,8,1, - 255,168,84,168,84,168,84,168,84,168,84,168,84,168,84,12, - 9,18,16,2,0,31,128,96,96,134,16,134,16,224,112,191, - 208,169,80,105,96,31,128,12,12,24,16,2,0,31,128,96, - 96,134,16,134,16,224,112,191,208,169,80,233,112,191,208,169, - 80,105,96,31,128,14,11,22,16,1,255,31,224,112,56,207, - 204,188,244,188,244,143,196,160,20,171,84,203,76,112,56,31, - 224,14,14,28,16,1,255,31,224,112,56,207,204,188,244,188, - 244,143,196,160,20,171,84,139,68,160,20,171,84,203,76,112, - 56,31,224}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 15, '1' Height: 13 - Calculated Max Values w=16 h=15 x= 7 y= 4 dx=16 dy= 0 ascent=14 len=30 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =15 descent=-2 - X Font ascent =15 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[6975] U8G_SECTION(".progmem.u8g_font_unifont_78_79") = { - 0,16,16,0,254,15,7,255,11,108,1,255,254,14,254,15, - 254,15,11,22,16,0,2,56,0,124,0,108,0,124,0,60, - 0,14,0,127,252,255,254,217,192,248,224,112,0,14,11,22, - 16,0,1,112,8,248,60,216,120,254,240,127,224,7,192,127, - 224,254,240,216,120,248,60,112,8,15,11,22,16,0,255,112, - 0,248,224,217,192,255,254,127,252,14,0,60,0,124,0,108, - 0,124,0,56,0,15,11,22,16,0,1,112,12,136,50,174, - 68,129,136,121,16,6,32,120,80,129,136,174,68,136,50,112, - 12,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,15,15,30,16,0,255,7,192,24,48,32, - 8,65,196,71,228,143,242,143,114,158,98,156,2,159,2,79, - 4,70,4,32,8,24,48,7,192,15,15,30,16,0,255,7, - 192,25,48,35,136,67,132,65,4,131,130,135,194,135,194,135, - 194,139,162,92,116,88,52,32,8,24,48,7,192,15,14,28, - 16,0,255,8,0,15,0,6,0,7,192,195,128,227,192,127, - 254,127,254,227,192,195,128,7,192,6,0,15,0,8,0,14, - 7,14,16,1,3,255,252,192,12,176,52,140,196,179,52,192, - 12,255,252,6,14,14,8,1,255,168,84,168,84,168,84,168, - 84,168,84,168,84,168,84,6,14,14,8,1,255,168,84,168, - 84,168,84,168,84,168,84,168,84,168,84,15,15,30,16,0, - 255,24,48,36,72,34,136,18,144,17,16,9,32,8,32,124, - 252,146,130,146,114,146,34,146,66,124,4,32,8,31,240,15, - 13,26,16,1,0,0,16,0,56,0,112,7,238,25,234,35, - 154,71,10,142,10,223,202,36,10,95,250,224,10,192,14,12, - 12,24,16,1,0,48,0,76,0,170,0,149,0,226,128,81, - 64,40,160,20,80,10,80,5,144,2,48,1,240,15,7,14, - 16,0,3,63,240,80,40,143,244,168,22,143,244,80,40,63, - 240,12,12,24,16,1,0,1,240,2,48,5,144,10,80,20, - 80,40,160,81,64,226,128,149,0,170,0,76,0,48,0,15, - 7,14,16,0,3,0,240,121,8,134,108,128,254,134,108,121, - 8,0,240,15,7,14,16,0,3,0,224,121,240,255,56,255, - 14,255,56,121,240,0,224,13,10,20,16,1,255,0,8,0, - 16,0,32,128,64,128,128,65,0,66,0,36,0,40,0,16, - 0,15,11,22,16,0,255,0,4,0,14,64,28,224,56,224, - 112,112,224,113,192,59,128,63,0,30,0,12,0,11,11,22, - 16,2,1,64,64,224,224,113,192,59,128,31,0,14,0,31, - 0,59,128,113,192,224,224,64,64,15,15,30,16,0,255,16, - 16,56,56,124,124,254,254,127,252,63,248,31,240,15,224,31, - 240,63,248,127,252,254,254,124,124,56,56,16,16,12,13,26, - 16,1,0,192,48,96,192,99,128,54,0,28,0,28,0,54, - 0,51,0,97,128,96,192,192,96,192,48,64,0,12,14,28, - 16,1,255,192,48,224,224,99,192,119,0,62,0,28,0,62, - 0,55,0,115,128,97,192,224,224,192,112,192,32,64,0,15, - 15,30,16,0,255,7,192,4,64,5,64,5,64,5,64,253, - 126,129,2,191,250,129,2,253,126,5,64,5,64,5,64,4, - 64,7,192,15,15,30,16,0,255,7,192,7,192,7,192,7, - 192,7,192,255,254,255,254,255,254,255,254,255,254,7,192,7, - 192,7,192,7,192,7,192,15,15,30,16,0,255,3,128,3, - 128,3,128,3,128,3,128,3,128,252,126,252,126,252,126,3, - 128,3,128,3,128,3,128,3,128,3,128,15,15,30,16,0, - 255,7,192,7,192,7,192,7,192,7,192,248,62,248,62,248, - 62,248,62,248,62,7,192,7,192,7,192,7,192,7,192,9, - 11,22,16,3,1,28,0,28,0,28,0,255,128,255,128,255, - 128,28,0,28,0,28,0,28,0,28,0,13,15,30,16,1, - 255,15,0,9,128,9,128,9,128,249,240,128,24,128,24,249, - 248,121,248,9,128,9,128,9,128,9,128,15,128,7,128,13, - 14,28,16,1,255,31,192,16,64,247,120,135,8,191,232,191, - 232,191,232,135,8,247,120,23,64,23,64,23,64,16,64,31, - 192,15,15,30,16,0,255,31,240,7,192,3,128,131,130,131, - 130,195,134,255,254,255,254,255,254,195,134,131,130,131,130,3, - 128,7,192,31,240,15,15,30,16,0,255,1,0,2,128,4, - 64,4,64,255,254,80,20,80,20,32,8,80,20,80,20,255, - 254,4,64,4,64,2,128,1,0,15,15,30,16,0,255,3, - 128,7,192,7,192,3,128,3,128,97,12,249,62,255,254,249, - 62,97,12,3,128,3,128,7,192,7,192,3,128,15,15,30, - 16,0,255,3,128,7,192,7,192,7,192,3,128,113,28,249, - 62,255,254,249,62,113,28,3,128,7,192,7,192,7,192,3, - 128,15,15,30,16,0,255,7,192,15,224,15,224,7,192,99, - 140,243,158,255,254,255,254,255,254,243,158,99,140,7,192,15, - 224,15,224,7,192,16,15,30,16,0,255,1,0,3,128,7, - 192,7,192,1,0,49,12,113,14,255,255,113,14,49,12,1, - 0,7,192,7,192,3,128,1,0,15,15,30,16,0,255,1, - 0,3,128,3,128,7,192,7,192,31,240,127,252,255,254,127, - 252,31,240,7,192,7,192,3,128,3,128,1,0,15,15,30, - 16,0,255,1,0,2,128,2,128,4,64,4,64,24,48,96, - 12,128,2,96,12,24,48,4,64,4,64,2,128,2,128,1, - 0,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,15,12,24,16,0,1,1,0,2,128,2, - 128,252,126,64,4,56,56,8,32,16,16,17,16,38,200,40, - 40,48,24,15,15,30,16,0,255,7,192,31,240,62,248,126, - 252,124,124,192,6,240,30,248,62,240,30,241,30,103,204,111, - 236,63,248,31,240,7,192,15,12,24,16,0,1,1,0,3, - 128,3,128,255,254,124,124,56,56,8,32,28,112,31,240,62, - 248,56,56,48,24,15,12,24,16,0,1,1,0,2,128,2, - 128,252,126,67,132,39,200,23,208,19,144,16,16,39,200,40, - 40,48,24,15,12,24,16,0,1,1,0,2,128,28,112,225, - 14,79,228,35,136,23,208,20,80,17,16,34,136,44,104,48, - 24,15,12,24,16,0,1,1,0,2,128,29,112,227,142,95, - 244,47,232,23,208,22,208,21,80,34,136,44,104,48,24,15, - 13,26,16,0,0,1,0,3,128,5,192,249,254,93,140,39, - 184,19,240,15,208,29,144,25,208,50,232,44,120,48,24,16, - 13,26,16,0,0,1,0,2,128,2,192,255,254,68,71,56, - 62,8,60,22,208,17,24,39,200,47,44,60,28,24,12,15, - 13,26,16,0,0,3,128,3,128,3,128,67,132,243,158,63, - 252,15,240,63,252,243,158,67,132,3,128,3,128,3,128,15, - 13,26,16,0,0,3,128,3,128,3,128,67,132,243,158,60, - 124,8,48,60,124,243,158,67,132,3,128,3,128,3,128,15, - 15,30,16,0,255,1,0,1,0,33,8,17,16,13,96,15, - 224,7,192,255,254,7,192,15,224,13,96,17,16,33,8,1, - 0,1,0,15,15,30,16,0,255,1,0,1,0,33,8,27, - 176,31,240,15,224,31,224,255,254,31,240,15,224,31,240,27, - 176,33,8,1,0,1,0,15,15,30,16,0,255,1,0,2, - 128,60,248,44,200,38,152,50,184,125,76,131,134,77,124,58, - 152,50,200,38,104,62,120,2,128,1,0,13,13,26,16,1, - 0,2,0,2,0,2,0,135,8,119,112,63,224,31,192,63, - 224,119,112,135,8,2,0,2,0,2,0,15,15,30,16,0, - 255,8,32,8,32,12,96,6,192,230,206,59,184,31,240,7, - 192,31,240,59,184,230,206,6,192,12,96,8,32,8,32,15, - 15,30,16,0,255,8,32,12,96,14,224,15,224,255,254,127, - 252,63,248,31,240,63,248,127,252,255,254,15,224,14,224,12, - 96,8,32,15,15,30,16,0,255,1,0,25,48,15,224,79, - 228,127,252,63,248,63,248,255,254,63,248,63,248,127,252,79, - 228,15,224,25,48,1,0,15,15,30,16,0,255,9,32,73, - 36,37,72,21,80,203,166,55,216,15,224,255,254,15,224,55, - 216,203,166,21,80,37,72,73,36,9,32,15,15,30,16,0, - 255,1,0,3,128,3,128,3,128,225,14,113,28,13,96,3, - 128,13,96,113,28,225,14,3,128,3,128,3,128,1,0,15, - 15,30,16,0,255,3,128,7,192,7,192,99,140,241,30,243, - 158,60,120,8,32,60,120,243,158,241,30,99,140,7,192,7, - 192,3,128,15,15,30,16,0,255,3,128,7,192,7,192,99, - 140,243,158,241,30,61,120,7,192,61,120,241,30,243,158,99, - 140,7,192,7,192,3,128,15,15,30,16,0,255,3,128,4, - 64,4,64,116,92,252,126,254,254,127,252,33,8,67,132,135, - 194,143,226,119,220,7,192,7,192,3,128,15,14,28,16,0, - 0,3,128,7,192,15,224,119,220,255,254,252,126,240,30,112, - 28,24,48,62,248,127,252,126,252,126,252,60,120,15,14,28, - 16,0,0,3,128,4,64,9,32,121,60,133,66,179,154,143, - 226,111,236,23,208,39,200,73,36,82,148,66,132,60,120,15, - 15,30,16,0,255,3,128,60,120,69,68,81,20,77,100,111, - 236,134,194,188,122,134,194,111,236,77,100,81,20,69,68,60, - 120,3,128,15,15,30,16,0,255,7,192,30,240,62,248,92, - 116,103,204,252,126,232,46,136,34,232,46,252,126,103,204,92, - 116,62,248,30,240,7,192,15,15,30,16,0,255,3,128,4, - 192,4,192,116,220,188,230,159,158,79,60,63,248,114,100,230, - 114,206,122,118,92,6,64,6,64,3,128,15,13,26,16,0, - 0,1,0,5,64,3,128,201,38,49,24,77,100,3,128,77, - 100,49,24,201,38,3,128,5,64,1,0,15,13,26,16,0, - 0,1,0,5,64,11,160,201,38,49,24,77,100,131,130,77, - 100,49,24,201,38,11,160,5,64,1,0,15,15,30,16,0, - 255,9,32,13,96,7,192,19,144,201,38,49,24,237,110,3, - 128,237,110,49,24,201,38,17,16,7,192,13,96,9,32,14, - 14,28,16,1,255,7,128,71,136,39,144,19,32,11,64,224, - 28,251,124,251,124,224,28,11,64,19,32,39,144,71,136,7, - 128,15,15,30,16,0,255,7,192,71,196,39,200,19,144,11, - 160,224,14,251,190,251,190,251,190,224,14,11,160,19,144,39, - 200,71,196,7,192,15,15,30,16,0,255,3,128,7,192,7, - 192,119,220,251,190,249,62,125,124,7,192,125,124,249,62,251, - 190,119,220,7,192,7,192,3,128,15,15,30,16,0,255,1, - 0,3,128,51,152,49,24,9,32,5,64,99,140,255,254,99, - 140,5,64,9,32,49,24,51,152,3,128,1,0,15,15,30, - 16,0,255,1,0,3,128,51,152,59,184,25,48,7,192,119, - 220,255,254,119,220,7,192,25,48,59,184,51,152,3,128,1, - 0,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,13,13,26,16,2,255,15,0,48,192,64, - 32,64,48,128,16,128,24,128,24,128,24,64,56,64,48,48, - 240,15,224,7,128,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,12,12,24,16,3,1,255, - 192,128,64,128,112,128,112,128,112,128,112,128,112,128,112,128, - 112,255,240,63,240,63,240,12,12,24,16,3,1,63,240,63, - 240,255,240,128,112,128,112,128,112,128,112,128,112,128,112,128, - 112,128,64,255,192,12,12,24,16,3,1,255,192,128,96,128, - 112,128,112,128,112,128,112,128,112,128,112,128,112,255,240,127, - 240,63,240,12,12,24,16,3,1,63,240,127,240,255,240,128, - 112,128,112,128,112,128,112,128,112,128,112,128,112,128,96,255, - 192,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,13,13,26, - 16,1,0,2,0,7,0,15,128,7,0,34,32,112,112,248, - 248,112,112,34,32,7,0,15,128,7,0,2,0,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,2,15,15,16,7,255,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,4,15,15,16,6,255,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,8,15,15,16,4, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 7,10,10,16,4,4,28,112,192,248,252,254,254,254,124,56, - 7,10,10,16,4,4,56,124,254,254,254,126,62,6,28,112, - 15,10,20,16,0,4,28,28,112,112,192,192,248,248,252,252, - 254,254,254,254,254,254,124,124,56,56,15,10,20,16,0,4, - 56,56,124,124,254,254,254,254,254,254,126,126,62,62,6,6, - 28,28,112,112,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,14,14,28,16, - 1,255,0,32,0,32,31,252,127,240,252,32,252,32,126,32, - 31,224,0,32,96,96,240,64,240,192,99,128,62,0,9,15, - 30,16,3,255,28,0,127,0,255,128,255,128,255,128,127,0, - 28,0,8,0,8,0,0,0,28,0,62,0,62,0,62,0, - 28,0,9,13,26,16,3,0,119,0,255,128,255,128,255,128, - 127,0,28,0,8,0,0,0,28,0,62,0,62,0,62,0, - 28,0,15,13,26,16,0,255,60,120,126,252,255,254,255,254, - 255,254,127,252,127,252,63,248,31,240,15,224,7,192,3,128, - 1,0,13,15,30,16,1,255,56,0,126,0,255,0,255,128, - 255,192,255,224,127,240,63,248,127,240,255,224,255,192,255,128, - 255,0,126,0,56,0,15,14,28,16,0,255,3,0,12,134, - 56,142,103,248,1,0,57,56,126,252,255,254,255,254,127,252, - 63,248,31,226,7,238,0,248,14,15,30,16,1,254,97,152, - 99,200,55,236,23,228,23,252,19,252,115,252,157,248,147,248, - 83,248,103,240,39,240,55,224,19,192,1,128,4,12,12,8, - 3,255,16,32,96,192,192,192,192,192,192,96,32,16,4,12, - 12,8,2,255,128,64,96,48,48,48,48,48,48,96,64,128, - 5,12,12,8,2,255,24,48,112,224,224,224,224,224,224,112, - 48,24,5,12,12,8,2,255,192,96,112,56,56,56,56,56, - 56,112,96,192,5,12,12,8,2,255,24,48,48,96,96,192, - 192,96,96,48,48,24,5,12,12,8,2,255,192,96,96,48, - 48,24,24,48,48,96,96,192,6,12,12,8,2,255,28,56, - 56,112,112,224,224,112,112,56,56,28,6,12,12,8,1,255, - 224,112,112,56,56,28,28,56,56,112,112,224,7,12,12,8, - 1,255,30,60,60,120,120,240,240,120,120,60,60,30,7,12, - 12,8,0,255,240,120,120,60,60,30,30,60,60,120,120,240, - 3,12,12,8,3,255,32,64,128,128,128,128,128,128,128,128, - 64,32,3,12,12,8,2,255,128,64,32,32,32,32,32,32, - 32,32,64,128,6,12,12,8,1,255,60,112,96,96,48,48, - 224,48,48,96,112,60,6,12,12,8,1,255,240,56,24,24, - 48,48,28,48,48,24,56,240,15,15,30,16,0,255,7,192, - 31,240,63,248,126,252,124,252,250,254,254,254,254,254,254,254, - 254,254,126,252,120,60,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,120,60,119,220,255,222,255,222, - 255,62,252,254,251,254,119,220,112,28,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,120,60,119,220, - 255,222,255,222,255,62,255,222,255,222,119,220,120,60,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 127,188,127,60,254,190,253,190,251,190,247,190,224,14,127,188, - 126,12,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,112,28,119,252,247,254,240,62,255,222,255,222, - 255,222,119,220,120,60,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,120,60,119,220,247,254,247,254, - 240,62,247,222,247,222,119,220,120,60,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,112,28,119,220, - 255,190,255,190,255,126,254,254,254,254,125,252,125,252,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 120,60,119,220,247,222,247,222,248,62,247,222,247,222,119,220, - 120,60,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,120,60,119,220,247,222,247,222,248,30,255,222, - 255,222,119,220,120,60,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,119,28,102,236,246,238,246,238, - 246,238,246,238,246,238,118,236,99,28,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,132,65,132, - 131,130,129,130,129,130,129,130,129,130,65,132,65,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,79,228,140,98,128,98,129,194,135,2,140,2,79,228, - 79,228,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,79,228,140,98,128,98,129,194,128,98, - 140,98,79,228,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,228,65,228,131,98,134,98, - 140,98,159,242,159,242,64,100,64,100,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,79,228,79,228, - 140,2,143,194,143,226,128,98,140,98,79,228,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,79,228,140,2,143,194,143,226,140,98,140,98,79,228, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,79,228,79,228,128,98,128,98,128,194,131,130, - 134,2,70,4,70,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,71,196,79,228,140,98,140,98, - 135,194,140,98,140,98,79,228,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,79,228, - 140,98,140,98,143,226,135,226,128,98,79,228,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,228,77,244,157,178,141,178,141,178,141,178,141,178,77,244, - 76,228,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,124,126,124,252,126,254,126,254,126,254,126, - 254,126,126,124,126,124,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,120,60,112,28,243,158,255,158, - 254,62,248,254,243,254,112,28,112,28,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,120,60,112,28, - 243,158,255,158,254,62,255,158,243,158,112,28,120,60,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 127,28,126,28,252,158,249,158,243,158,224,14,224,14,127,156, - 127,156,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,112,28,112,28,243,254,240,62,240,30,255,158, - 243,158,112,28,120,60,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,120,60,112,28,243,254,240,62, - 240,30,243,158,243,158,112,28,120,60,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,112,28,112,28, - 255,158,255,158,255,62,252,126,249,254,121,252,121,252,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 120,60,112,28,243,158,243,158,248,62,243,158,243,158,112,28, - 120,60,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,120,60,112,28,243,158,243,158,240,30,248,30, - 255,158,112,28,120,60,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,123,28,114,12,226,78,242,78, - 242,78,242,78,242,78,114,12,115,28,63,248,31,240,7,192, - 15,13,26,16,0,0,31,128,15,192,7,224,3,240,255,248, - 255,252,255,254,255,252,255,248,3,240,7,224,15,192,31,128, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,11,11,22,16, - 2,1,32,0,112,0,248,0,120,0,60,128,12,128,3,128, - 3,192,15,192,1,192,0,32,15,9,18,16,0,2,1,0, - 1,128,224,192,252,240,255,254,252,240,224,192,1,128,1,0, - 11,11,22,16,2,0,0,32,1,192,15,192,3,192,3,128, - 12,128,60,128,120,0,248,0,112,0,32,0,15,9,18,16, - 0,2,2,0,1,0,1,192,0,240,255,254,0,240,1,192, - 1,0,2,0,15,13,26,16,0,0,0,192,1,224,1,240, - 0,248,127,252,255,254,255,254,255,254,127,252,0,248,1,240, - 1,224,0,192,15,11,22,16,0,1,0,16,0,16,0,24, - 0,24,255,252,255,254,255,252,0,24,0,24,0,16,0,16, - 15,13,26,16,0,0,0,16,0,16,0,24,0,24,255,252, - 255,252,255,254,255,252,255,252,0,24,0,24,0,16,0,16, - 15,9,18,16,0,2,0,32,0,48,0,56,170,252,170,254, - 170,252,0,56,0,48,0,32,15,9,18,16,0,2,0,32, - 0,48,170,248,170,252,170,254,170,252,170,248,0,48,0,32, - 15,9,18,16,0,2,0,32,0,48,0,56,255,252,255,254, - 255,252,0,56,0,48,0,32,14,15,30,16,1,255,128,0, - 224,0,88,0,70,0,33,128,32,96,16,24,15,252,31,248, - 63,224,63,128,126,0,120,0,224,0,128,0,14,15,30,16, - 1,255,128,0,224,0,120,0,126,0,63,128,63,224,31,248, - 15,252,16,24,32,96,33,128,70,0,88,0,224,0,128,0, - 14,15,30,16,1,255,128,0,224,0,120,0,126,0,63,128, - 63,224,31,248,15,252,31,248,63,224,63,128,126,0,120,0, - 224,0,128,0,15,8,16,16,0,3,128,0,128,16,192,24, - 127,252,127,254,63,252,0,24,0,16,15,8,16,16,0,2, - 0,16,0,24,63,252,127,254,127,252,192,24,128,16,128,0, - 7,13,13,16,5,0,16,16,24,248,252,252,254,252,252,248, - 24,16,16,15,9,18,16,0,2,0,64,0,64,255,224,255, - 240,255,254,255,240,255,224,0,64,0,64,14,9,18,16,1, - 2,0,192,0,224,255,176,128,24,128,12,128,24,255,176,0, - 224,0,192,14,9,18,16,1,2,0,192,0,224,255,208,192, - 8,192,4,192,8,255,208,0,224,0,192,15,13,26,16,0, - 255,0,8,0,24,0,36,0,68,63,130,64,2,128,6,255, - 30,254,124,5,240,15,192,15,0,12,0,15,13,26,16,0, - 0,12,0,15,0,15,192,5,240,254,124,255,30,128,6,64, - 2,63,130,0,68,0,36,0,24,0,8,15,12,24,16,0, - 0,0,128,0,192,255,160,128,16,128,8,128,4,128,14,128, - 28,255,184,127,240,0,224,0,64,15,12,24,16,0,1,0, - 64,0,224,127,240,255,184,128,28,128,14,128,4,128,8,128, - 16,255,160,0,192,0,128,16,12,24,16,0,0,0,64,0, - 96,0,80,255,200,64,4,64,2,64,7,255,206,127,220,0, - 120,0,112,0,32,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,16,12,24,16,0,1,0, - 32,0,112,0,120,127,220,255,206,64,7,64,2,64,4,255, - 200,0,80,0,96,0,64,14,15,30,16,1,255,15,128,63, - 224,126,240,254,120,254,56,0,28,0,12,0,4,0,12,0, - 28,254,56,254,120,126,240,63,224,15,128,15,7,14,16,0, - 3,254,0,73,8,36,140,31,254,36,140,73,8,254,0,11, - 11,22,16,2,1,16,0,24,0,28,0,252,0,124,0,60, - 32,2,32,1,96,0,224,1,224,7,224,14,5,10,16,1, - 4,248,16,124,24,63,252,124,24,248,16,11,11,22,16,2, - 0,7,224,1,224,0,224,1,96,2,32,60,32,124,0,252, - 0,28,0,24,0,16,0,11,11,22,16,2,1,8,0,12, - 0,14,0,14,0,254,32,126,32,63,96,3,224,1,224,3, - 224,15,224,15,9,18,16,0,2,0,32,252,16,126,24,63, - 252,31,254,63,252,126,24,252,16,0,32,11,11,22,16,2, - 0,15,224,3,224,1,224,3,224,63,96,126,32,254,32,14, - 0,14,0,12,0,8,0,15,11,22,16,0,1,0,96,0, - 240,0,240,120,56,255,12,255,254,255,12,120,56,0,240,0, - 240,0,96,15,9,18,16,0,2,0,64,96,224,120,240,252, - 120,255,254,252,120,120,240,96,224,0,64,15,7,14,16,0, - 3,248,16,124,24,62,28,31,254,62,28,124,24,248,16,15, - 9,18,16,0,2,248,96,252,112,126,120,127,252,63,254,127, - 252,126,120,252,112,248,96,15,9,18,16,0,2,2,32,1, - 16,0,136,255,196,0,2,255,196,0,136,1,16,2,32,6, - 14,14,8,1,255,168,84,168,84,168,84,168,84,168,84,168, - 84,168,84,6,6,6,8,1,0,128,136,144,160,192,252,11, - 12,24,16,2,0,4,0,10,0,10,0,17,0,17,0,36, - 128,42,128,74,64,81,64,159,32,128,32,255,224,5,6,6, - 8,1,0,32,32,32,32,32,248,10,8,16,16,3,1,63, - 192,64,0,129,128,130,64,130,64,129,128,64,0,63,192,10, - 8,16,16,3,1,255,0,0,128,96,64,144,64,144,64,96, - 64,0,128,255,0,5,10,10,8,2,0,112,136,136,16,16, - 32,32,64,64,56,5,10,10,8,2,0,112,136,136,64,64, - 32,32,16,16,224,7,8,8,8,0,0,130,130,84,68,40, - 40,16,16,14,8,16,16,1,1,129,252,130,0,68,0,68, - 0,36,0,36,0,18,0,17,252,14,8,16,16,1,1,254, - 4,1,4,0,136,0,136,0,144,0,144,1,32,254,32,3, - 10,10,8,2,0,64,64,64,64,224,64,64,64,64,64,6, - 14,14,8,1,255,168,84,168,84,168,84,168,84,168,84,168, - 84,168,84,12,14,28,16,2,254,255,240,128,0,64,0,64, - 0,32,0,32,0,32,0,32,0,32,0,32,0,64,0,64, - 0,128,0,128,0,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,9,9,18,16,4,0,8,0,20,0,34,0,65,0,136, - 128,65,0,34,0,20,0,8,0,7,8,8,8,0,0,16, - 16,40,40,68,84,130,130,9,10,20,16,3,0,136,128,136, - 128,136,128,136,128,136,128,136,128,136,128,136,128,73,0,62, - 0,6,6,6,8,1,0,4,4,36,4,4,252,6,6,6, - 8,1,0,252,128,128,144,128,128,12,10,20,16,2,0,224, - 16,48,48,40,80,36,144,35,16,35,16,36,144,40,80,48, - 48,224,16,12,10,20,16,2,0,128,112,192,192,161,64,146, - 64,140,64,140,64,146,64,161,64,192,192,128,112,14,10,20, - 16,1,0,224,28,48,48,40,80,36,144,35,16,35,16,36, - 144,40,80,48,48,224,28,9,12,24,16,3,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,255,128,9,12,24,16,3,0,255,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,13,7,14,16,1,2,5,0,5,0,253,248,5, - 0,253,248,5,0,5,0,13,7,14,16,1,2,5,0,5, - 0,5,0,253,248,5,0,5,0,5,0,14,3,6,16,1, - 4,64,0,191,252,64,0,14,3,6,16,1,4,128,0,255, - 252,128,0,14,3,6,16,1,4,0,4,255,252,0,4,3, - 11,11,16,7,255,64,160,64,64,64,64,64,64,64,64,224, - 7,11,11,8,0,0,16,40,40,68,68,254,68,68,40,40, - 16,13,13,26,16,1,0,2,0,5,0,5,0,8,128,16, - 64,96,48,128,8,96,48,16,64,8,128,5,0,5,0,2, - 0,15,13,26,16,0,0,0,128,1,64,1,64,2,32,4, - 16,24,12,224,2,24,12,4,16,2,32,1,64,1,64,0, - 128,15,13,26,16,1,0,2,0,5,0,5,0,8,128,16, - 64,96,48,128,14,96,48,16,64,8,128,5,0,5,0,2, - 0,15,13,26,16,0,0,31,254,16,2,16,2,16,2,16, - 2,16,2,240,2,16,2,16,2,16,2,16,2,16,2,31, - 254,15,13,26,16,1,0,255,240,128,16,128,16,128,16,128, - 16,128,16,128,30,128,16,128,16,128,16,128,16,128,16,255, - 240,5,13,13,8,2,0,248,160,160,160,160,160,160,160,160, - 160,160,160,248,5,13,13,8,1,0,248,40,40,40,40,40, - 40,40,40,40,40,40,248,4,12,12,8,2,0,16,32,32, - 64,64,128,128,64,64,32,32,16,4,12,12,8,2,0,128, - 64,64,32,32,16,16,32,32,64,64,128,6,12,12,8,1, - 0,20,40,40,80,80,160,160,80,80,40,40,20,6,12,12, - 8,1,0,160,80,80,40,40,20,20,40,40,80,80,160,4, - 12,12,8,3,255,16,32,96,160,160,160,160,160,160,96,32, - 16,4,12,12,8,1,255,128,64,96,80,80,80,80,80,80, - 96,64,128,3,12,12,8,4,255,32,64,128,128,128,128,128, - 128,128,128,64,32,3,12,12,8,1,255,128,64,32,32,32, - 32,32,32,32,32,64,128,11,12,24,16,2,0,4,0,10, - 0,27,0,42,128,106,192,170,160,42,128,42,128,42,128,42, - 128,42,128,42,128,11,12,24,16,2,0,42,128,42,128,42, - 128,42,128,42,128,42,128,170,160,106,192,42,128,27,0,10, - 0,4,0,12,10,20,16,2,1,7,128,8,64,16,32,32, - 16,168,16,112,16,32,16,0,32,8,64,7,128,12,10,20, - 16,2,1,30,0,33,0,64,128,128,64,129,80,128,224,128, - 64,64,0,33,0,30,0,15,7,14,16,0,2,3,128,5, - 72,9,36,255,254,9,36,5,72,3,128,15,5,10,16,0, - 3,32,0,64,0,255,254,64,0,32,0,15,5,10,16,0, - 3,0,8,0,4,255,254,0,4,0,8,14,5,10,16,0, - 3,32,16,64,8,255,252,64,8,32,16,15,7,14,16,0, - 2,16,0,32,0,127,254,128,0,127,254,32,0,16,0,15, - 7,14,16,0,2,0,16,0,8,255,252,0,2,255,252,0, - 8,0,16,14,7,14,16,0,2,16,32,32,16,127,248,128, - 4,127,248,32,16,16,32,14,5,10,16,0,3,32,4,64, - 4,255,252,64,4,32,4,14,5,10,16,1,3,128,16,128, - 8,255,252,128,8,128,16,14,7,14,16,0,2,16,4,32, - 4,127,252,128,4,127,252,32,4,16,4,14,7,14,16,1, - 2,128,32,128,16,255,248,128,4,255,248,128,16,128,32,15, - 5,10,16,0,3,0,8,34,36,213,94,8,132,0,8}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 11, '1' Height: 6 - Calculated Max Values w=15 h=15 x= 3 y= 3 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 3 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_86[1876] U8G_SECTION(".progmem.u8g_font_unifont_86") = { - 0,16,16,0,254,11,3,37,5,106,32,116,3,13,254,11, - 0,11,11,22,16,2,0,7,224,4,32,2,32,4,32,8, - 160,17,96,34,0,68,0,136,0,80,0,32,0,11,11,22, - 16,2,0,252,0,132,0,136,0,132,0,162,0,209,0,8, - 128,4,64,2,32,1,64,0,128,11,11,22,16,2,0,32, - 0,80,0,136,0,68,0,34,0,17,96,8,160,4,32,2, - 32,4,32,7,224,11,11,22,16,2,0,0,128,1,64,2, - 32,4,64,8,128,209,0,162,0,132,0,136,0,132,0,252, - 0,14,7,14,16,1,0,16,32,48,48,95,232,128,4,95, - 232,48,48,16,32,13,7,14,16,1,0,16,0,48,0,127, - 248,255,248,127,248,48,0,16,0,7,11,11,8,0,0,16, - 56,124,254,56,56,56,56,56,56,56,7,11,11,8,0,0, - 56,56,56,56,56,56,56,254,124,56,16,11,11,22,16,2, - 0,7,224,7,224,3,224,7,224,15,224,31,96,62,0,124, - 0,248,0,112,0,32,0,11,11,22,16,2,0,252,0,252, - 0,248,0,252,0,254,0,223,0,15,128,7,192,3,224,1, - 192,0,128,11,11,22,16,2,0,32,0,112,0,248,0,124, - 0,62,0,31,96,15,224,7,224,3,224,7,224,7,224,11, - 11,22,16,2,0,0,128,1,192,3,224,7,192,15,128,223, - 0,254,0,252,0,248,0,252,0,252,0,14,7,14,16,1, - 0,16,32,48,48,127,248,255,252,127,248,48,48,16,32,7, - 12,12,8,0,255,16,56,124,254,56,56,56,56,254,124,56, - 16,14,6,12,16,1,0,255,240,0,16,0,16,0,84,0, - 56,0,16,14,6,12,16,1,0,0,16,0,56,0,84,0, - 16,0,16,255,240,14,6,12,16,1,0,63,252,32,0,32, - 0,168,0,112,0,32,0,14,6,12,16,1,0,32,0,112, - 0,168,0,32,0,32,0,63,252,10,10,20,16,3,255,255, - 192,255,192,255,192,255,192,255,192,128,64,128,64,128,64,128, - 64,255,192,10,10,20,16,3,255,255,192,128,64,128,64,128, - 64,128,64,255,192,255,192,255,192,255,192,255,192,10,10,20, - 16,3,255,255,192,255,192,191,192,159,192,143,192,135,192,131, - 192,129,192,128,192,255,192,10,10,20,16,3,255,255,192,192, - 64,224,64,240,64,248,64,252,64,254,64,255,64,255,192,255, - 192,10,10,20,16,3,255,12,0,26,0,57,0,120,128,248, - 64,248,64,120,128,57,0,26,0,12,0,10,10,20,16,3, - 255,12,0,22,0,39,0,71,128,135,192,135,192,71,128,39, - 0,22,0,12,0,10,10,20,16,3,255,12,0,30,0,63, - 0,127,128,255,192,128,64,64,128,33,0,18,0,12,0,10, - 10,20,16,3,255,12,0,18,0,33,0,64,128,128,64,255, - 192,127,128,63,0,30,0,12,0,11,11,22,16,2,0,170, - 160,0,0,128,32,0,0,128,32,0,0,128,32,0,0,128, - 32,0,0,170,160,14,14,28,16,1,255,255,252,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, - 252,255,252,255,252,255,252,14,14,28,16,1,255,255,252,128, - 4,128,4,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,128,4,128,4,128,4,255,252,4,4,4,8,2,2,240, - 240,240,240,4,4,4,8,2,2,240,144,144,240,12,11,22, - 16,2,0,6,0,15,0,31,128,63,192,127,224,255,240,127, - 224,127,224,63,192,63,192,31,128,12,11,22,16,2,0,6, - 0,9,0,16,128,32,64,64,32,128,16,64,32,64,32,32, - 64,32,64,31,128,11,11,22,16,2,255,4,0,27,0,96, - 192,128,32,128,32,128,32,128,32,128,32,96,192,27,0,4, - 0,11,11,22,16,2,255,4,0,31,0,127,192,255,224,255, - 224,255,224,255,224,255,224,127,192,31,0,4,0,14,10,20, - 16,1,0,15,192,31,224,63,240,127,248,255,252,255,252,127, - 248,63,240,31,224,15,192,14,13,26,16,1,254,31,224,63, - 240,127,248,255,252,255,252,255,252,255,252,255,252,255,252,255, - 252,127,248,63,240,31,224,7,7,7,8,0,0,16,56,124, - 254,124,56,16,7,7,7,8,0,0,16,40,68,130,68,40, - 16,7,11,11,8,0,0,16,56,56,124,124,254,124,124,56, - 56,16,7,11,11,8,0,0,16,40,40,68,68,130,68,68, - 40,40,16,5,5,5,8,1,3,32,112,248,112,32,5,7, - 7,8,1,0,32,112,112,248,112,112,32,5,7,7,8,1, - 0,32,80,80,136,80,80,32,15,6,12,16,0,0,15,224, - 127,252,255,254,255,254,127,252,15,224,15,6,12,16,0,0, - 15,224,112,28,128,2,128,2,112,28,15,224,6,13,13,8, - 1,0,48,120,120,120,252,252,252,252,252,120,120,120,48,6, - 13,13,8,1,0,48,72,72,72,132,132,132,132,132,72,72, - 72,48,14,5,10,16,1,3,33,192,66,32,255,252,66,32, - 33,192,14,15,30,16,1,254,32,0,64,0,255,252,64,0, - 32,0,32,0,64,0,255,252,64,0,32,0,32,0,64,0, - 255,252,64,0,32,0,14,5,10,16,1,3,33,192,66,160, - 255,252,66,160,33,192,14,5,10,16,1,3,34,32,69,80, - 245,92,72,128,32,0,14,5,10,16,1,3,40,64,80,64, - 255,252,80,64,40,64,14,5,10,16,1,3,40,160,80,160, - 255,252,80,160,40,160,14,5,10,16,1,3,40,4,80,4, - 255,252,80,4,40,4,14,5,10,16,1,3,40,4,80,8, - 253,176,80,8,40,4,14,5,10,16,1,3,32,0,64,0, - 213,84,64,0,32,0,14,5,10,16,1,3,32,132,64,136, - 255,240,64,136,32,132,14,5,10,16,1,3,33,68,65,72, - 255,240,65,72,33,68,14,5,10,16,1,3,40,4,80,8, - 255,240,80,8,40,4,14,5,10,16,1,3,40,132,80,136, - 255,240,80,136,40,132,14,5,10,16,1,3,41,68,81,72, - 255,240,81,72,41,68,14,5,10,16,1,3,40,144,80,96, - 255,252,80,96,40,144,14,5,10,16,1,3,32,240,65,8, - 254,4,64,0,32,0,14,7,14,16,1,3,3,240,0,0, - 35,240,64,0,255,252,64,0,32,0,14,7,14,16,1,3, - 0,112,8,136,39,0,64,0,255,252,64,0,32,0,14,10, - 20,16,1,254,32,0,64,0,255,252,64,0,32,112,8,136, - 7,0,0,112,8,136,7,0,14,9,18,16,1,1,224,0, - 24,0,6,16,1,8,31,252,1,8,6,16,24,0,224,0, - 14,11,22,16,1,0,252,0,2,0,1,0,0,144,0,136, - 255,252,0,136,0,144,1,0,2,0,252,0,15,11,22,16, - 0,1,4,0,8,0,31,254,32,0,127,254,128,0,127,254, - 32,0,31,254,8,0,4,0,15,11,22,16,0,1,0,64, - 0,32,255,240,0,8,255,252,0,2,255,252,0,8,255,240, - 0,32,0,64,14,7,14,16,1,3,3,128,68,64,56,16, - 0,8,255,252,0,8,0,16,14,10,20,16,1,254,0,16, - 0,8,255,252,0,8,3,144,68,64,56,0,3,128,68,64, - 56,0,14,7,14,16,1,3,7,0,8,136,32,112,64,0, - 255,252,64,0,32,0,14,10,20,16,1,254,32,0,64,0, - 255,252,64,0,39,0,8,136,0,112,7,0,8,136,0,112, - 14,7,14,16,1,1,32,0,64,0,255,252,64,0,32,112, - 8,136,7,0,14,7,14,16,1,1,0,16,0,8,255,252, - 0,8,3,144,68,64,56,0,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,13,13,26,16,1,0,2,0,2,0,5,0, - 5,0,248,248,64,16,32,32,16,64,8,128,16,64,34,32, - 77,144,112,112,11,10,20,16,2,1,4,0,14,0,14,0, - 255,224,127,192,63,128,63,128,123,192,241,224,192,96,11,10, - 20,16,2,1,4,0,10,0,10,0,241,224,64,64,32,128, - 36,128,74,64,177,160,192,96,11,12,24,16,3,0,4,0, - 30,0,127,0,255,128,255,192,255,224,255,224,255,192,255,128, - 127,0,30,0,4,0,11,12,24,16,3,0,4,0,26,0, - 97,0,128,128,128,64,128,32,128,32,128,64,128,128,97,0, - 26,0,4,0}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 8, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 3 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[4272] U8G_SECTION(".progmem.u8g_font_unifont_8_9") = { - 0,16,16,0,254,8,4,65,6,56,0,255,0,14,254,12, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,14,14,8,1,0,72,72,0, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,252,32,32,32,60,34,34,34,34,44,6,14,14,8,1, - 0,24,96,0,0,252,128,128,128,128,128,128,128,128,128,6, - 10,10,8,1,0,56,68,128,128,248,128,128,128,68,56,6, - 10,10,8,1,0,120,132,132,128,96,24,4,132,132,120,5, - 10,10,8,2,0,248,32,32,32,32,32,32,32,32,248,5, - 14,14,8,2,0,144,144,0,0,248,32,32,32,32,32,32, - 32,32,248,6,10,10,8,1,0,28,8,8,8,8,8,8, - 136,136,112,8,10,10,8,0,0,120,72,72,72,78,73,73, - 73,73,142,7,10,10,8,1,0,144,144,144,144,252,146,146, - 146,146,156,7,10,10,8,1,0,252,32,32,32,60,34,34, - 34,34,34,6,14,14,8,1,0,24,96,0,0,128,140,144, - 160,192,192,160,144,136,132,6,13,13,8,1,0,96,24,0, - 132,140,140,148,148,164,164,196,196,132,7,14,14,8,1,0, - 132,132,120,0,130,130,68,68,40,40,16,16,32,96,7,10, - 10,8,1,0,130,130,130,130,130,130,254,16,16,16,6,10, - 10,8,1,0,48,72,72,132,132,132,252,132,132,132,6,10, - 10,8,1,0,248,128,128,128,248,132,132,132,132,248,6,10, - 10,8,1,0,248,132,132,132,248,132,132,132,132,248,6,10, - 10,8,1,0,252,128,128,128,128,128,128,128,128,128,8,12, - 12,8,0,254,14,18,18,18,34,34,34,66,66,255,129,129, - 6,10,10,8,1,0,252,128,128,128,248,128,128,128,128,252, - 7,10,10,8,1,0,146,146,84,84,56,56,84,84,146,146, - 6,10,10,8,1,0,120,132,4,4,120,8,4,4,132,120, - 6,10,10,8,1,0,132,140,140,148,148,164,164,196,196,132, - 6,13,13,8,1,0,72,48,0,132,140,140,148,148,164,164, - 196,196,132,6,10,10,8,1,0,128,140,144,160,192,192,160, - 144,136,132,6,10,10,8,1,0,60,36,36,36,36,36,36, - 68,68,132,6,10,10,8,1,0,132,132,204,204,180,180,132, - 132,132,132,6,10,10,8,1,0,132,132,132,132,252,132,132, - 132,132,132,6,10,10,8,1,0,120,132,132,132,132,132,132, - 132,132,120,6,10,10,8,1,0,252,132,132,132,132,132,132, - 132,132,132,6,10,10,8,1,0,248,132,132,132,248,128,128, - 128,128,128,6,10,10,8,1,0,120,132,132,128,128,128,128, - 132,132,120,7,10,10,8,1,0,254,16,16,16,16,16,16, - 16,16,16,7,10,10,8,1,0,130,130,68,68,40,40,16, - 16,32,96,7,11,11,8,1,0,16,124,146,146,146,146,146, - 124,16,16,16,6,10,10,8,1,0,132,132,72,72,48,48, - 72,72,132,132,7,12,12,8,1,254,132,132,132,132,132,132, - 132,132,132,254,2,2,6,10,10,8,1,0,132,132,132,132, - 132,252,4,4,4,4,7,10,10,8,1,0,146,146,146,146, - 146,146,146,146,146,254,8,12,12,8,0,254,146,146,146,146, - 146,146,146,146,146,255,1,1,7,10,10,8,1,0,224,32, - 32,32,60,34,34,34,34,60,6,10,10,8,1,0,132,132, - 132,132,228,148,148,148,148,228,6,10,10,8,1,0,128,128, - 128,128,248,132,132,132,132,248,6,10,10,8,1,0,112,136, - 4,4,124,4,4,4,136,112,6,10,10,8,1,0,152,164, - 164,164,228,164,164,164,164,152,6,10,10,8,1,0,124,132, - 132,132,124,36,68,68,132,132,6,8,8,8,1,0,120,132, - 4,124,132,132,140,116,6,12,12,8,1,0,4,56,64,128, - 248,132,132,132,132,132,132,120,6,8,8,8,1,0,248,132, - 132,248,132,132,132,248,6,8,8,8,1,0,252,128,128,128, - 128,128,128,128,7,9,9,8,1,255,60,36,68,68,132,132, - 132,254,130,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,7,8,8,8,1,0,146,146,84,56,56,84,146,146,6, - 8,8,8,1,0,120,132,4,120,8,4,132,120,6,8,8, - 8,1,0,140,140,148,148,164,164,196,196,6,12,12,8,1, - 0,72,48,0,0,140,140,148,148,164,164,196,196,6,8,8, - 8,1,0,140,144,160,192,160,144,136,132,6,8,8,8,1, - 0,60,36,36,36,36,68,68,132,6,8,8,8,1,0,132, - 204,204,180,180,132,132,132,6,8,8,8,1,0,132,132,132, - 252,132,132,132,132,6,8,8,8,1,0,120,132,132,132,132, - 132,132,120,6,8,8,8,1,0,252,132,132,132,132,132,132, - 132,6,10,10,8,1,254,248,132,132,132,132,248,128,128,128, - 128,6,8,8,8,1,0,120,132,128,128,128,128,132,120,7, - 8,8,8,1,0,254,16,16,16,16,16,16,16,6,10,10, - 8,1,254,132,132,72,72,48,48,32,32,64,192,7,10,10, - 8,1,255,16,16,124,146,146,146,146,124,16,16,6,8,8, - 8,1,0,132,132,72,48,48,72,132,132,7,10,10,8,1, - 254,132,132,132,132,132,132,132,254,2,2,6,8,8,8,1, - 0,132,132,132,132,252,4,4,4,7,8,8,8,1,0,146, - 146,146,146,146,146,146,254,8,10,10,8,0,254,146,146,146, - 146,146,146,146,255,1,1,7,8,8,8,1,0,224,32,32, - 60,34,34,34,60,6,8,8,8,1,0,132,132,132,228,148, - 148,148,228,6,8,8,8,1,0,128,128,128,248,132,132,132, - 248,6,8,8,8,1,0,112,136,4,124,4,4,136,112,6, - 8,8,8,1,0,152,164,164,228,164,164,164,152,6,8,8, - 8,1,0,124,132,132,132,124,36,68,132,6,12,12,8,1, - 0,96,24,0,0,120,132,132,252,128,128,132,120,6,12,12, - 8,1,0,72,72,0,0,120,132,132,252,128,128,132,120,6, - 11,11,8,1,255,64,64,240,64,64,120,68,68,68,68,24, - 6,12,12,8,1,0,24,96,0,0,252,128,128,128,128,128, - 128,128,6,8,8,8,1,0,56,68,128,248,128,128,68,56, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,11, - 11,8,2,0,32,32,0,96,32,32,32,32,32,32,248,5, - 11,11,8,2,0,144,144,0,96,32,32,32,32,32,32,248, - 5,13,13,8,1,254,8,8,0,24,8,8,8,8,8,8, - 8,144,96,8,8,8,8,0,0,120,72,72,78,73,73,73, - 142,7,8,8,8,1,0,144,144,144,252,146,146,146,156,6, - 10,10,8,1,0,64,64,240,64,64,88,100,68,68,68,6, - 12,12,8,1,0,24,96,0,0,140,144,160,192,160,144,136, - 132,6,12,12,8,1,0,96,24,0,0,140,140,148,148,164, - 164,196,196,6,15,15,8,1,254,132,132,120,0,0,132,132, - 72,72,48,48,32,32,64,192,5,10,10,8,2,254,136,136, - 136,136,136,136,248,32,32,32,7,10,10,8,1,0,108,130, - 130,130,130,146,146,146,146,108,7,8,8,8,1,0,68,130, - 130,146,146,146,146,108,7,10,10,8,1,0,32,248,32,32, - 60,34,34,34,34,60,6,10,10,8,1,0,64,64,240,64, - 64,120,68,68,68,120,7,10,10,8,1,0,140,146,160,160, - 252,160,160,160,146,140,7,8,8,8,1,0,140,146,160,252, - 160,160,146,140,7,10,10,8,1,0,16,16,40,40,68,108, - 84,146,146,146,7,8,8,8,1,0,16,40,40,68,108,146, - 146,146,7,10,10,8,1,0,144,144,168,168,164,236,212,146, - 146,146,7,8,8,8,1,0,144,168,168,164,236,146,146,146, - 7,10,10,8,1,0,124,68,68,40,16,56,84,146,146,146, - 7,8,8,8,1,0,124,68,40,16,124,146,146,146,7,10, - 10,8,1,0,190,162,162,148,232,156,170,170,170,170,7,8, - 8,8,1,0,190,162,148,232,156,170,170,170,6,14,14,8, - 1,254,72,48,120,132,4,4,120,8,4,4,4,120,128,128, - 6,13,13,8,1,254,72,48,0,120,132,4,120,8,4,4, - 120,128,128,7,10,10,8,1,0,146,146,146,146,146,124,16, - 16,16,16,7,8,8,8,1,254,146,146,146,146,146,124,16, - 16,6,10,10,8,1,0,120,132,132,132,252,132,132,132,132, - 120,6,8,8,8,1,0,120,132,132,252,132,132,132,120,7, - 10,10,8,1,0,134,136,136,136,80,80,80,32,32,32,6, - 8,8,8,1,0,140,144,144,80,80,80,32,32,7,14,14, - 8,1,0,204,34,0,0,134,136,136,136,80,80,80,32,32, - 32,7,12,12,8,1,0,204,34,0,0,140,144,144,80,80, - 80,32,32,7,12,12,8,1,254,64,160,178,178,178,170,172, - 168,168,72,16,16,7,10,10,8,1,254,82,178,178,170,172, - 168,168,72,16,16,7,12,12,8,1,255,16,124,146,130,130, - 130,130,130,130,146,124,16,7,10,10,8,1,255,16,124,146, - 130,130,130,130,146,124,16,7,14,14,8,1,0,120,134,48, - 0,108,130,130,130,130,146,146,146,146,108,7,12,12,8,1, - 0,120,134,48,0,68,130,130,146,146,146,146,108,7,14,14, - 8,1,0,254,16,0,0,108,130,130,130,130,146,146,146,146, - 108,7,12,12,8,1,0,254,16,0,0,68,130,130,146,146, - 146,146,108,6,12,12,8,1,254,120,132,132,128,128,128,128, - 128,120,8,8,8,6,10,10,8,1,254,120,132,132,128,128, - 128,120,8,8,8,7,7,7,8,1,1,36,24,136,84,34, - 48,72,4,3,3,8,1,10,16,240,128,5,4,4,8,0, - 9,16,40,72,128,4,3,3,8,1,10,128,240,128,4,3, - 3,8,1,10,16,240,16,8,3,3,8,0,10,48,76,131, - 14,14,28,16,0,254,1,0,2,128,16,16,40,40,0,0, - 0,0,64,8,160,20,0,0,0,0,0,0,16,16,41,40, - 2,128,14,14,28,16,1,254,1,0,33,8,19,16,24,96, - 0,0,0,0,0,16,224,28,32,0,0,0,0,0,25,176, - 17,16,33,8,7,15,15,8,1,254,72,48,0,132,140,140, - 148,148,164,164,196,196,134,4,8,7,14,14,8,1,254,72, - 48,0,0,140,140,148,148,164,164,196,198,4,8,6,10,10, - 8,1,0,64,224,64,64,64,120,68,68,76,120,6,7,7, - 8,1,0,64,224,64,120,68,68,120,6,10,10,8,1,0, - 248,132,148,136,244,128,128,128,128,128,6,10,10,8,1,254, - 184,196,132,132,132,148,200,180,128,128,6,12,12,8,1,0, - 4,4,252,128,128,128,128,128,128,128,128,128,6,10,10,8, - 1,0,4,4,252,128,128,128,128,128,128,128,7,10,10,8, - 1,0,62,32,32,32,32,248,32,32,32,32,7,8,8,8, - 1,0,62,32,32,32,248,32,32,32,6,11,11,8,1,255, - 252,128,128,128,128,248,132,132,132,132,24,6,9,9,8,1, - 255,252,128,128,128,248,132,132,132,24,7,12,12,8,1,254, - 146,146,84,84,56,56,84,84,146,146,2,2,7,10,10,8, - 1,254,146,146,84,56,56,84,146,146,2,2,6,12,12,8, - 1,254,120,132,4,4,120,8,4,4,132,120,16,96,6,10, - 10,8,1,254,120,132,4,120,8,4,132,120,16,96,6,12, - 12,8,1,254,128,140,144,160,192,192,160,144,136,132,4,4, - 6,10,10,8,1,254,140,144,160,192,160,144,136,132,4,4, - 7,10,10,8,1,0,128,134,168,168,240,168,168,168,132,130, - 7,8,8,8,1,0,134,168,168,240,168,168,132,130,7,10, - 10,8,1,0,64,230,72,80,96,96,80,72,68,66,7,8, - 8,8,1,0,70,232,80,96,80,72,68,66,8,10,10,8, - 0,0,224,35,36,40,48,48,40,36,34,33,8,8,8,8, - 0,0,227,36,40,48,40,36,34,33,7,12,12,8,1,254, - 132,132,132,132,252,132,132,132,132,134,2,2,7,10,10,8, - 1,254,132,132,132,252,132,132,132,134,2,2,7,10,10,8, - 1,0,142,136,136,136,248,136,136,136,136,136,7,8,8,8, - 1,0,142,136,136,248,136,136,136,136,7,12,12,8,1,254, - 240,144,144,144,144,156,146,146,146,146,2,12,7,10,10,8, - 1,254,240,144,144,144,156,146,146,146,2,12,6,11,11,8, - 1,255,56,64,128,152,164,164,164,164,88,48,12,6,9,9, - 8,1,255,56,64,152,164,164,164,88,48,12,6,12,12,8, - 1,254,120,132,132,128,128,128,128,132,132,120,32,24,6,10, - 10,8,1,254,120,132,132,128,128,132,132,120,32,24,7,12, - 12,8,1,254,254,16,16,16,16,16,16,16,16,24,8,8, - 7,10,10,8,1,254,254,16,16,16,16,16,16,24,8,8, - 7,10,10,8,1,0,130,130,68,68,40,16,16,16,16,16, - 5,10,10,8,2,254,136,136,136,80,80,32,32,32,32,32, - 7,10,10,8,1,0,130,130,68,68,40,16,16,124,16,16, - 5,8,8,8,2,0,136,136,136,80,32,32,248,32,7,12, - 12,8,1,254,132,132,72,72,48,48,72,72,132,134,2,2, - 7,10,10,8,1,254,132,132,72,48,48,72,132,134,2,2, - 8,12,12,8,0,254,250,34,34,34,34,34,34,34,34,63, - 1,1,8,10,10,8,0,254,250,34,34,34,34,34,34,63, - 1,1,7,12,12,8,1,254,132,132,132,132,132,140,116,4, - 4,6,2,2,7,10,10,8,1,254,132,132,132,132,140,116, - 4,6,2,2,6,10,10,8,1,0,132,132,132,132,164,172, - 116,36,36,4,6,8,8,8,1,0,132,132,132,164,172,116, - 36,4,6,10,10,8,1,0,128,128,128,184,196,132,132,132, - 132,132,6,8,8,8,1,0,128,128,184,196,132,132,132,132, - 6,10,10,8,1,0,152,164,164,164,124,32,32,36,36,24, - 6,8,8,8,1,0,152,164,164,124,32,32,36,24,6,12, - 12,8,1,254,152,164,164,164,124,32,32,36,36,24,16,12, - 6,10,10,8,1,254,152,164,164,124,32,32,36,24,16,12, - 5,10,10,8,2,0,248,32,32,32,32,32,32,32,32,248, - 7,14,14,8,1,0,130,130,124,0,146,146,84,84,56,56, - 84,84,146,146,7,13,13,8,1,0,68,68,56,0,0,146, - 146,84,56,56,84,146,146,6,12,12,8,1,254,128,140,144, - 160,192,248,132,132,132,132,4,24,6,10,10,8,1,254,140, - 144,160,192,248,132,132,132,4,24,7,12,12,8,1,254,60, - 36,36,36,36,36,36,68,68,134,4,8,7,10,10,8,1, - 254,60,36,36,36,36,68,68,134,4,8,6,12,12,8,1, - 254,132,132,132,132,252,132,132,132,132,132,4,24,6,10,10, - 8,1,254,132,132,132,252,132,132,132,132,4,24,7,12,12, - 8,1,254,132,132,132,132,252,132,132,132,132,134,4,8,7, - 10,10,8,1,254,132,132,132,252,132,132,132,134,4,8,6, - 12,12,8,1,254,132,132,132,132,132,140,116,4,4,12,8, - 8,6,10,10,8,1,254,132,132,132,132,140,116,4,12,8, - 8,7,12,12,8,1,254,132,132,204,204,180,180,132,132,132, - 134,4,8,7,10,10,8,1,254,132,204,204,180,180,132,132, - 134,4,8,3,10,10,8,3,0,224,64,64,64,64,64,64, - 64,64,224,6,14,14,8,1,0,132,132,120,0,48,72,72, - 132,132,252,132,132,132,132,6,13,13,8,1,0,132,132,120, - 0,0,120,132,4,124,132,132,140,116,6,14,14,8,1,0, - 72,72,0,0,48,72,72,132,132,252,132,132,132,132,6,12, - 12,8,1,0,72,72,0,0,120,132,4,124,132,132,140,116, - 7,10,10,8,1,0,62,80,144,144,254,144,144,144,144,158, - 7,8,8,8,1,0,124,146,18,126,144,144,146,124,6,14, - 14,8,1,0,132,132,120,0,252,128,128,128,248,128,128,128, - 128,252,6,12,12,8,1,0,132,132,120,0,120,132,132,252, - 128,128,132,120,6,10,10,8,1,0,48,72,132,4,4,252, - 132,132,72,48,6,8,8,8,1,0,120,132,4,4,252,132, - 132,120,6,14,14,8,1,0,72,72,0,0,48,72,132,4, - 4,252,132,132,72,48,6,12,12,8,1,0,72,72,0,0, - 120,132,4,4,252,132,132,120,7,14,14,8,1,0,72,72, - 0,0,146,146,84,84,56,56,84,84,146,146,7,12,12,8, - 1,0,72,72,0,0,146,146,84,56,56,84,146,146,6,14, - 14,8,1,0,72,72,0,0,120,132,4,4,120,8,4,4, - 132,120,6,12,12,8,1,0,72,72,0,0,120,132,4,120, - 8,4,132,120,6,10,10,8,1,0,252,8,16,32,56,4, - 4,4,140,120,6,10,10,8,1,254,124,8,16,32,56,4, - 4,4,132,120,6,13,13,8,1,0,120,0,0,132,140,140, - 148,148,164,164,196,196,132,6,11,11,8,1,0,120,0,0, - 140,140,148,148,164,164,196,196,6,14,14,8,1,0,72,72, - 0,0,132,140,140,148,148,164,164,196,196,132,6,12,12,8, - 1,0,72,72,0,0,140,140,148,148,164,164,196,196,6,14, - 14,8,1,0,72,72,0,0,120,132,132,132,132,132,132,132, - 132,120,6,12,12,8,1,0,72,72,0,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,0,120,132,132,132,252,132, - 132,132,132,120,6,8,8,8,1,0,120,132,132,252,132,132, - 132,120,6,14,14,8,1,0,72,72,0,0,120,132,132,132, - 252,132,132,132,132,120,6,12,12,8,1,0,72,72,0,0, - 120,132,132,252,132,132,132,120,6,12,12,8,1,0,72,0, - 120,132,4,4,124,4,4,4,132,120,6,10,10,8,1,0, - 72,0,120,132,4,60,4,4,132,120,7,13,13,8,1,0, - 124,0,0,130,130,68,68,40,40,16,16,32,96,6,13,13, - 8,1,254,120,0,0,132,132,72,72,48,48,32,32,64,192, - 7,14,14,8,1,0,72,72,0,0,130,130,68,68,40,40, - 16,16,32,96,6,14,14,8,1,254,72,72,0,0,132,132, - 72,72,48,48,32,32,64,192,7,14,14,8,1,0,102,136, - 0,0,130,130,68,68,40,40,16,16,32,96,7,14,14,8, - 1,254,102,136,0,0,132,132,72,72,48,48,32,32,64,192, - 6,14,14,8,1,0,72,72,0,0,132,132,132,132,132,140, - 116,4,4,4,6,12,12,8,1,0,72,72,0,0,132,132, - 132,132,140,116,4,4,6,12,12,8,1,254,252,128,128,128, - 128,128,128,128,128,224,96,32,6,10,10,8,1,254,252,128, - 128,128,128,128,128,224,96,32,6,14,14,8,1,0,72,72, - 0,0,132,132,132,132,228,148,148,148,148,228,6,12,12,8, - 1,0,72,72,0,0,132,132,132,228,148,148,148,228,6,12, - 12,8,1,254,252,128,128,128,248,128,128,128,128,192,64,192, - 5,10,10,8,1,254,248,128,128,240,128,128,128,192,64,192, - 6,12,12,8,1,254,132,132,72,72,48,48,72,72,132,132, - 4,8,6,10,10,8,1,254,132,132,72,48,48,72,132,132, - 4,8,6,10,10,8,1,0,132,132,72,72,48,252,72,72, - 132,132,6,8,8,8,1,0,132,132,72,48,252,72,132,132 - }; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont[5516] U8G_SECTION(".progmem.u8g_font_unifont") = { - 0,16,16,0,254,10,6,167,8,149,0,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,147,194,82,50,95,138,82,113, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,165,193, - 36,49,25,137,36,113,37,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,123,165,193,36,121,25,193,36,121,37,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,191,194,72,122,73,194, - 72,121,137,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,122, - 77,194,82,123,83,194,214,122,79,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,49,165,202,40,122,49,202,40,73,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,209,202,16,115, - 209,202,16,115,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,120,225,197,0,120,193,196,32,121,193,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,69,241,196,64,124,65,196,64,68, - 65,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,65,241,193, - 0,65,241,193,0,125,1,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,69,241,196,64,68,65,168,64,16,65,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,125,241,193,0,125,241,193, - 0,65,1,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,61, - 225,193,16,65,225,193,32,61,17,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,60,225,193,16,57,17,133,16,120,225,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,61,241,192,64,56, - 65,132,64,121,241,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,114,57,202,32,74,57,202,32,115,185,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,137,202,24,74,9,202,8,113, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,153,202, - 4,74,9,202,16,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,113,153,202,4,74,25,202,4,113,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,133,202,12,74,21,202, - 28,113,133,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 147,234,84,106,89,219,212,74,83,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,52,83,194,154,49,23,137,18,113,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,123,185,193,36,121, - 57,193,36,121,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,37,196,180,71,173,196,164,52,165,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,125,17,193,176,125,81,193,16,125, - 17,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,58,93,194, - 82,50,93,138,82,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,121,207,194,16,121,145,192,80,123,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,193,194,0,121,129,192, - 64,67,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 193,194,0,89,129,200,64,59,129,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,113,193,202,0,113,129,208,64,75,129,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,73,193,202,0,73, - 129,200,64,51,129,128,0,0,1,128,0,0,1,128,0,85, - 85,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, - 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, - 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, - 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, - 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, - 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, - 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, - 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, - 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, - 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, - 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, - 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, - 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, - 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, - 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, - 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, - 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, - 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,157,202,82,115, - 211,194,82,66,93,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,73,157,202,82,122,93,202,80,73,145,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,147,202,82,115,159,202,18,114, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,147,234, - 82,91,159,202,82,75,147,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,116,185,166,164,37,165,164,164,116,185,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,75,209,234,16,91,209,202, - 16,75,223,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 205,194,18,49,159,136,82,115,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,121,205,194,18,121,159,192,82,123,147,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,157,201,32,121, - 25,201,4,73,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,75,185,201,8,121,9,201,8,73,49,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,69,205,196,144,68,137,168,132,16, - 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,114,29,202, - 18,114,19,194,18,67,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,19,202,18,114,19,194,18,67,205,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,14,33,137,32,14,33,138, - 32,9,33,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,2,49,141,136,80,115,159,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,221,194,2,49,141,136,66,115,157,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,207,202,16,74, - 13,202,2,113,221,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,114,69,202,76,114,69,194,68,65,143,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,114,93,202,66,114,77,194,80,65, - 159,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,157,193, - 32,49,25,137,4,113,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,211,194,18,66,31,194,18,57,211,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,17,237,16,85,81,197, - 176,69,17,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 141,194,82,51,159,138,18,114,19,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,123,141,194,82,123,159,194,18,122,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,57,143,194,80,50, - 77,138,66,113,157,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,155,196,34,37,163,148,162,99,155,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,8,50,9,138,8,113, - 221,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,221,194, - 8,65,137,192,72,59,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,14,249,144,32,12,33,130,32,28,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,49,207,202,16,73,145,200, - 80,51,143,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 33,203,96,114,161,194,32,66,33,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,143,202,80,123,145,202,16,74,15,128, - 0,0,1,128,0,0,1,128,0,85,85,0,0,0,8,0, - 14,1,10,10,8,4,0,128,128,0,128,128,128,128,128,128, - 128,7,10,10,8,1,0,16,16,124,146,144,144,146,124,16, - 16,7,10,10,8,1,0,28,32,32,32,248,32,32,32,124, - 194,6,8,8,8,1,1,132,72,120,72,72,120,72,132,7, - 10,10,8,1,0,130,68,40,16,254,16,254,16,16,16,1, - 10,10,8,4,0,128,128,128,128,0,0,128,128,128,128,6, - 10,10,8,1,0,120,132,128,120,132,132,120,4,132,120,4, - 2,2,8,2,12,144,144,8,10,10,8,0,0,60,66,153, - 165,161,161,165,153,66,60,5,7,7,8,2,5,112,8,120, - 136,120,0,248,6,9,9,8,1,0,36,36,72,72,144,72, - 72,36,36,6,4,4,8,1,0,252,4,4,4,6,1,1, - 8,1,4,252,8,10,10,8,0,0,60,66,185,165,165,185, - 169,165,66,60,6,1,1,8,1,11,252,3,4,4,8,2, - 10,64,160,160,64,7,9,9,8,1,1,16,16,16,254,16, - 16,16,0,254,5,7,7,8,2,5,112,136,8,112,128,128, - 248,5,7,7,8,2,5,112,136,8,112,8,136,112,3,3, - 3,8,3,10,32,64,128,5,8,8,8,2,254,136,136,136, - 136,216,168,128,128,6,12,12,8,1,255,124,244,244,244,244, - 116,20,20,20,20,20,28,2,2,2,8,3,4,192,192,3, - 2,2,8,2,254,32,192,3,7,7,8,2,5,32,96,160, - 32,32,32,32,5,7,7,8,2,5,112,136,136,136,112,0, - 248,6,9,9,8,1,0,144,144,72,72,36,72,72,144,144, - 6,10,10,8,1,0,68,196,72,80,80,36,44,84,156,132, - 6,10,10,8,1,0,68,196,72,80,80,40,52,68,136,156, - 6,10,10,8,1,0,196,36,72,48,208,36,44,84,156,132, - 6,10,10,8,1,0,16,16,0,16,16,96,132,132,132,120, - 6,14,14,8,1,0,96,24,0,0,48,72,72,132,132,252, - 132,132,132,132,6,14,14,8,1,0,24,96,0,0,48,72, - 72,132,132,252,132,132,132,132,6,14,14,8,1,0,48,72, - 0,0,48,72,72,132,132,252,132,132,132,132,6,14,14,8, - 1,0,100,152,0,0,48,72,72,132,132,252,132,132,132,132, - 6,14,14,8,1,0,72,72,0,0,48,72,72,132,132,252, - 132,132,132,132,6,14,14,8,1,0,48,72,48,0,48,72, - 72,132,132,252,132,132,132,132,7,10,10,8,1,0,62,80, - 144,144,254,144,144,144,144,158,6,12,12,8,1,254,120,132, - 132,128,128,128,128,132,132,120,16,96,6,14,14,8,1,0, - 96,24,0,0,252,128,128,128,248,128,128,128,128,252,6,14, - 14,8,1,0,24,96,0,0,252,128,128,128,248,128,128,128, - 128,252,6,14,14,8,1,0,48,72,0,0,252,128,128,128, - 248,128,128,128,128,252,6,14,14,8,1,0,72,72,0,0, - 252,128,128,128,248,128,128,128,128,252,5,14,14,8,2,0, - 96,24,0,0,248,32,32,32,32,32,32,32,32,248,5,14, - 14,8,2,0,48,192,0,0,248,32,32,32,32,32,32,32, - 32,248,5,14,14,8,2,0,96,144,0,0,248,32,32,32, - 32,32,32,32,32,248,5,14,14,8,2,0,144,144,0,0, - 248,32,32,32,32,32,32,32,32,248,7,10,10,8,0,0, - 120,68,66,66,242,66,66,66,68,120,6,14,14,8,1,0, - 100,152,0,0,132,196,196,164,164,148,148,140,140,132,6,14, - 14,8,1,0,96,24,0,0,120,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,24,96,0,0,120,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,48,72,0,0, - 120,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 100,152,0,0,120,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,72,72,0,0,120,132,132,132,132,132,132,132, - 132,120,6,5,5,8,1,2,132,72,48,72,132,6,12,12, - 8,1,255,4,116,136,140,148,148,164,164,196,68,184,128,6, - 14,14,8,1,0,96,24,0,0,132,132,132,132,132,132,132, - 132,132,120,6,14,14,8,1,0,24,96,0,0,132,132,132, - 132,132,132,132,132,132,120,6,14,14,8,1,0,48,72,0, - 0,132,132,132,132,132,132,132,132,132,120,6,14,14,8,1, - 0,72,72,0,0,132,132,132,132,132,132,132,132,132,120,7, - 14,14,8,1,0,24,96,0,0,130,130,68,68,40,16,16, - 16,16,16,6,11,11,8,1,0,128,128,240,136,132,132,136, - 240,128,128,128,6,10,10,8,1,0,112,136,136,136,248,132, - 132,132,196,184,6,12,12,8,1,0,96,24,0,0,120,132, - 4,124,132,132,140,116,6,12,12,8,1,0,24,96,0,0, - 120,132,4,124,132,132,140,116,6,12,12,8,1,0,48,72, - 0,0,120,132,4,124,132,132,140,116,6,12,12,8,1,0, - 100,152,0,0,120,132,4,124,132,132,140,116,6,12,12,8, - 1,0,72,72,0,0,120,132,4,124,132,132,140,116,6,13, - 13,8,1,0,48,72,48,0,0,120,132,4,124,132,132,140, - 116,7,8,8,8,1,0,124,146,18,126,144,144,146,124,6, - 10,10,8,1,254,120,132,128,128,128,128,132,120,16,96,6, - 12,12,8,1,0,96,24,0,0,120,132,132,252,128,128,132, - 120,6,12,12,8,1,0,24,96,0,0,120,132,132,252,128, - 128,132,120,6,12,12,8,1,0,48,72,0,0,120,132,132, - 252,128,128,132,120,6,12,12,8,1,0,72,72,0,0,120, - 132,132,252,128,128,132,120,5,12,12,8,2,0,192,48,0, - 0,96,32,32,32,32,32,32,248,5,12,12,8,2,0,48, - 192,0,0,96,32,32,32,32,32,32,248,5,12,12,8,2, - 0,96,144,0,0,96,32,32,32,32,32,32,248,5,12,12, - 8,2,0,144,144,0,0,96,32,32,32,32,32,32,248,6, - 12,12,8,1,0,100,24,40,68,4,124,132,132,132,132,132, - 120,6,12,12,8,1,0,100,152,0,0,184,196,132,132,132, - 132,132,132,6,12,12,8,1,0,96,24,0,0,120,132,132, - 132,132,132,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,132,132,132,132,132,120,6,12,12,8,1,0,48,72,0, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,100, - 152,0,0,120,132,132,132,132,132,132,120,6,12,12,8,1, - 0,72,72,0,0,120,132,132,132,132,132,132,120,6,7,7, - 8,1,1,48,0,0,252,0,0,48,6,10,10,8,1,255, - 4,120,140,148,148,164,164,196,120,128,6,12,12,8,1,0, - 96,24,0,0,132,132,132,132,132,132,140,116,6,12,12,8, - 1,0,24,96,0,0,132,132,132,132,132,132,140,116,6,12, - 12,8,1,0,48,72,0,0,132,132,132,132,132,132,140,116, - 6,12,12,8,1,0,72,72,0,0,132,132,132,132,132,132, - 140,116,6,14,14,8,1,254,24,96,0,0,132,132,132,132, - 132,76,52,4,4,120,5,12,12,8,2,254,128,128,240,136, - 136,136,144,160,192,128,128,128,6,14,14,8,1,254,72,72, - 0,0,132,132,132,132,132,76,52,4,4,120}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=14 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifontr[1483] U8G_SECTION(".progmem.u8g_font_unifontr") = { - 0,16,16,0,254,10,1,231,3,213,32,127,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, - 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, - 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, - 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, - 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, - 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, - 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, - 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, - 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, - 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, - 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, - 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, - 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, - 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, - 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, - 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, - 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, - 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, - 0,0,1,128,0,0,1,128,0,85,85}; diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c deleted file mode 100644 index 30b3097234..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_line.h - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) -{ - u8g_uint_t tmp; - u8g_uint_t x,y; - u8g_uint_t dx, dy; - u8g_int_t err; - u8g_int_t ystep; - - uint8_t swapxy = 0; - - /* no BBX intersection check at the moment, should be added... */ - - if ( x1 > x2 ) dx = x1-x2; else dx = x2-x1; - if ( y1 > y2 ) dy = y1-y2; else dy = y2-y1; - - if ( dy > dx ) - { - swapxy = 1; - tmp = dx; dx =dy; dy = tmp; - tmp = x1; x1 =y1; y1 = tmp; - tmp = x2; x2 =y2; y2 = tmp; - } - if ( x1 > x2 ) - { - tmp = x1; x1 =x2; x2 = tmp; - tmp = y1; y1 =y2; y2 = tmp; - } - err = dx >> 1; - if ( y2 > y1 ) ystep = 1; else ystep = -1; - y = y1; - for( x = x1; x <= x2; x++ ) - { - if ( swapxy == 0 ) - u8g_DrawPixel(u8g, x, y); - else - u8g_DrawPixel(u8g, y, x); - err -= (uint8_t)dy; - if ( err < 0 ) - { - y += (u8g_uint_t)ystep; - err += (u8g_uint_t)dx; - } - } -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c deleted file mode 100644 index 41c7fada18..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c +++ /dev/null @@ -1,456 +0,0 @@ -/* - - u8g_ll_api.c - - low level api - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include -#include "u8g.h" - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - return dev->dev_fn(u8g, dev, msg, arg); -} - -/*====================================================================*/ - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL); - u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); -} - -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL); - if ( r != 0 ) - { - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - } - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast); -} - -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg); -} - -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg); -} - -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg); -} -#endif - - - -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r); - return r; -} - -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r); - return r; -} - -u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL); -} - - - -/*====================================================================*/ - -void u8g_UpdateDimension(u8g_t *u8g) -{ - u8g->width = u8g_GetWidthLL(u8g, u8g->dev); - u8g->height = u8g_GetHeightLL(u8g, u8g->dev); - u8g->mode = u8g_GetModeLL(u8g, u8g->dev); - /* 9 Dec 2012: u8g_scale.c requires update of current page */ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); -} - -static void u8g_init_data(u8g_t *u8g) -{ - uint8_t i; - u8g->font = NULL; - u8g->cursor_font = NULL; - u8g->cursor_bg_color = 0; - u8g->cursor_fg_color = 1; - u8g->cursor_encoding = 34; - u8g->cursor_fn = (u8g_draw_cursor_fn)0; - - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_NONE; - - u8g_SetColorIndex(u8g, 1); - - u8g_SetFontPosBaseline(u8g); - - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g->font_ref_ascent = 0; - u8g->font_ref_descent = 0; - u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */ - u8g->line_spacing = 0; - - u8g->state_cb = u8g_state_dummy_cb; - -} - -uint8_t u8g_Begin(u8g_t *u8g) -{ - /* call and init low level driver and com device */ - if ( u8g_InitLL(u8g, u8g->dev) == 0 ) - return 0; - /* fetch width and height from the low level */ - u8g_UpdateDimension(u8g); - return 1; -} - -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_init_data(u8g); - u8g->dev = dev; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - - /* assign user pins */ - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - u8g->pin_list[U8G_PI_I2C_OPTION] = options; - - return u8g_Begin(u8g); -} - - -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS1] = cs1; - u8g->pin_list[U8G_PI_CS2] = cs2; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -/* - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - -*/ - -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_WR] = wr; - u8g->pin_list[U8G_PI_RD] = rd; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -void u8g_FirstPage(u8g_t *u8g) -{ - u8g_FirstPageLL(u8g, u8g->dev); -} - -uint8_t u8g_NextPage(u8g_t *u8g) -{ - if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) - { - u8g->cursor_fn(u8g); - } - return u8g_NextPageLL(u8g, u8g->dev); -} - -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast) -{ - return u8g_SetContrastLL(u8g, u8g->dev, contrast); -} - -void u8g_SleepOn(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL); -} - -void u8g_SleepOff(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL); -} - - -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y) -{ - u8g_DrawPixelLL(u8g, u8g->dev, x, y); -} - -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - -/* u8g_IsBBXIntersection() has been moved to u8g_clip.c */ -#ifdef OBSOLETE_CODE -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - /* new code */ - u8g_dev_arg_bbx_t arg; - arg.x = x; - arg.y = y; - arg.w = w; - arg.h = h; - return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg); - - /* old code */ - //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h); -} -#endif - -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx) -{ - u8g->arg_pixel.color = idx; - /*u8g->color_index = idx; */ /* must be removed */ -} - -uint8_t u8g_GetColorIndex(u8g_t *u8g) -{ - return u8g->arg_pixel.color; -} - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 255; /* white */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 3; /* max intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; -} - -void u8g_SetDefaultForegroundColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g)); -} - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetDefaultBackgroundColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */ -} - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 0x06d; /* gray: 01101101 */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 1; /* low mid intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; /* default */ -} - -void u8g_SetDefaultMidColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g)); -} - - - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c deleted file mode 100644 index 1a3eb21ed5..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_page.c - - page helper functions, only called by the dev handler. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* - setup page count structure - conditions: page_height <= total_height -*/ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) -{ - p->page_height = page_height; - p->total_height = total_height; - p->page = 0; - u8g_page_First(p); -} - -void u8g_page_First(u8g_page_t *p) -{ - p->page_y0 = 0; - p->page_y1 = p->page_height; - p->page_y1--; - p->page = 0; -} - -uint8_t u8g_page_Next(u8g_page_t * p) -{ - register u8g_uint_t y1; - p->page_y0 += p->page_height; - if ( p->page_y0 >= p->total_height ) - return 0; - p->page++; - y1 = p->page_y1; - y1 += p->page_height; - if ( y1 >= p->total_height ) - { - y1 = p->total_height; - y1--; - } - p->page_y1 = y1; - - return 1; -} - - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c deleted file mode 100644 index a946473611..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_pb.c - - common procedures for the page buffer - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* the following procedure does not work. why? Can be checked with descpic */ -/* -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t cnt = b->width; - do - { - *ptr++ = 0; - cnt--; - } while( cnt != 0 ); -} -*/ - -/* - intersection assumptions: - a1 <= a2 is always true -*/ - /* - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ -/* -uint8_t u8g_pb8v1_IsYIntersection___Old(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c0, c1, c; - c0 = v0 <= b->p.page_y1; - c1 = v1 >= b->p.page_y0; - c = v0 > v1; - if ( c0 && c1 ) return 1; - if ( c0 && c ) return 1; - if ( c1 && c ) return 1; - return 0; -} -*/ - -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= pb->p.page_y1; - c2 = v1 >= pb->p.page_y0; - c3 = v0 > v1; - /* - if ( c1 && c2 ) - return 1; - if ( c1 && c3 ) - return 1; - if ( c2 && c3 ) - return 1; - return 0; - */ - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} - - -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t /*c0, c1, */ c2, c3; - /* - conditions: b->p.page_y0 < b->p.page_y1 - there are no restriction on v0 and v1. If v0 > v1, then warp around unsigned is assumed - */ - /* - c0 = v0 < 0; - c1 = v1 < 0; - */ - c2 = v0 > b->width; - c3 = v1 > b->width; - /*if ( c0 && c1 ) return 0;*/ - if ( c2 && c3 ) return 0; - /*if ( c1 && c2 ) return 0;*/ - return 1; -} - -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx) -{ - u8g_uint_t tmp; - - tmp = bbx->y; - tmp += bbx->h; - tmp--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, tmp) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - tmp = bbx->x; - tmp += bbx->w; - tmp--; - - return u8g_pb_IsXIntersection(pb, bbx->x, tmp); -} - -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box) -{ - box->x0 = 0; - box->y0 = pb->p.page_y0; - box->x1 = pb->width; - box->x1--; - box->y1 = pb->p.page_y1; -} - - -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - u8g_uint_t v0, v1; - v0 = arg_pixel->y; - v1 = v0; - switch( arg_pixel->dir ) - { - case 0: - break; - case 1: - v1 += 8; /* this is independent from the page height */ - break; - case 2: - break; - case 3: - v0 -= 8; - break; - } - return u8g_pb_IsYIntersection(b, v0, v1); -} - - - -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_WriteSequence(u8g, dev, b->width, b->buf); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c deleted file mode 100644 index dbcd0215f8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb14v1.c - - 14bit height monochrom (1 bit) page buffer, - byte has vertical orientation, 7 bits per byte - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb14v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb14v1_Clear(b); -} - -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 7 ) - { - ptr += b->width; - y -= 7; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb14v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb14v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb14v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb14v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb14v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb14v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb14v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb14v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c deleted file mode 100644 index 6f1502ed77..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - - u8g_pb16h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb16h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c deleted file mode 100644 index d694efbece..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c +++ /dev/null @@ -1,182 +0,0 @@ -/* - - u8g_pb16h2.c - - 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb16h2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h2_Clear(b); -} - -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - mask = 3; - mask <<= tmp; - mask = ~mask; - color_index &= 3; - color_index <<= tmp; - - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb16h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb16h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_page_First(&(pb->p)); - u8g_pb16h2_Clear(pb); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c deleted file mode 100644 index 774aaec700..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb16v1.c - - 16bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb16v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v1_Clear(b); -} - -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb16v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c deleted file mode 100644 index 3d40ddad71..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - - u8g_pb16v2.c - - 16 bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16v2Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v2_Clear(b); -} - -void u8g_pb16v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - if ( y >= 4 ) - { - ptr += b->width; - } - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb16v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb16v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v2_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c deleted file mode 100644 index 6ac100f325..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb32h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb32h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*4; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb32h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint16_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb32h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb32h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb32h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb32h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb32h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb32h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb32h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb32h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c deleted file mode 100644 index 8a13e0b7b1..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - - u8g_pb8h1.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - 23. Sep 2012: Bug with down procedure, see FPS 1st page --> fixed (bug located in u8g_clip.c) - -*/ - -#include "u8g.h" -#include - -#ifdef __unix__ -#include -#endif - -/* NEW_CODE disabled, because the performance increase was too slow and not worth compared */ -/* to the increase of code size */ -/* #define NEW_CODE */ - -#ifdef __unix__ -void *u8g_buf_lower_limit; -void *u8g_buf_upper_limit; -#endif - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -#ifdef NEW_CODE -struct u8g_pb_h1_struct -{ - u8g_uint_t x; - u8g_uint_t y; - uint8_t *ptr; - uint8_t mask; - uint8_t line_byte_len; - uint8_t cnt; -}; - -static uint8_t u8g_pb8h1_bitmask[8] = { 0x080, 0x040, 0x020, 0x010, 0x008, 0x004, 0x002, 0x001 }; - -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) U8G_NOINLINE; -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x++; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 0 ) - s->ptr++; -} - -static void u8g_pb8h1_state_left(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x--; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 7 ) - s->ptr--; -} - -static void u8g_pb8h1_state_down(struct u8g_pb_h1_struct *s) -{ - s->y++; - s->ptr += s->line_byte_len; -} - -static void u8g_pb8h1_state_up(struct u8g_pb_h1_struct *s) -{ - s->y--; - s->ptr -= s->line_byte_len; -} - -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) U8G_NOINLINE; -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) -{ - u8g_uint_t tmp; - - uint8_t *ptr = b->buf; - - s->x = x; - s->y = y; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 3; - s->line_byte_len = tmp; - - /* assume negative y values, can be down to -7, subtract this from the pointer and add correction of 8 to y */ - ptr -= tmp*8; - y+=8; - /* it is important that the result of tmp*y can be 16 bit value also for 8 bit mode */ - ptr += tmp*y; - - s->mask = u8g_pb8h1_bitmask[x & 7]; - - /* assume negative x values (to -7), subtract 8 pixel from the pointer and add 8 to x */ - ptr--; - x += 8; - x >>= 3; - ptr += x; - s->ptr = ptr; -} - -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) -{ - -#ifdef __unix__ - assert( s->ptr >= u8g_buf_lower_limit ); - assert( s->ptr < u8g_buf_upper_limit ); -#endif - - if ( color_index ) - { - *s->ptr |= s->mask; - } - else - { - uint8_t mask = s->mask; - mask ^=0xff; - *s->ptr &= mask; - } -} -#endif - - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes */ -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ -#ifdef NEW_CODE - struct u8g_pb_h1_struct s; - u8g_pb8h1_state_init(&s, b, x, y); - u8g_pb8h1_state_set_pixel(&s, color_index); - -// u8g_pb8h1_state_up(&s); -// if ( s.y > b->p.page_y1 ) -// return; -// if ( s.x > b->width ) -// return; -// u8g_pb8h1_state_set_pixel(&s, color_index); -#else - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -#endif -} - - -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -#ifdef NEW_CODE -static void u8g_pb8h1_Set8PixelState(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - struct u8g_pb_h1_struct s; - uint8_t cnt; - u8g_pb8h1_state_init(&s, b, arg_pixel->x, arg_pixel->y); - cnt = 8; - switch( arg_pixel->dir ) - { - case 0: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_right(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 1: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_down(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 2: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_left(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 3: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_up(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - } -} -#endif - -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: -#ifdef NEW_CODE - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelState(pb, (u8g_dev_arg_pixel_t *)arg); -#else - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); -#endif - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c deleted file mode 100644 index ffc90c2a3d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_pb8h1f.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation, same as u8g_pb8h1, but byte is flipped - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes, 20 nov 2012: extended to >256 bytes */ -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - /*register uint8_t mask, tmp;*/ - register uint8_t mask; - register u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width >> 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 1; - mask <<= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1f_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1f_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1f_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1f_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1f_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1f_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c deleted file mode 100644 index 0e37f211f7..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - - u8g_pb8h2.c - - 8bit height 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - mask = 3; - mask <<= tmp; - mask = ~mask; - color_index &= 3; - color_index <<= tmp; - - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c deleted file mode 100644 index 5753645d1d..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - - u8g_pb8h8.c - - 8 bits per pixel, horizontal - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_8h8_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_8h8_buff}; -u8g_dev_t name = { dev_fn, &u8g_index_color_8h8_pb, com_fn } - -*/ - -#include "u8g.h" - -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb8h8_Clear(b); -} - -static void u8g_pb8h8_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - ptr += tmp; - *ptr = color_index; -} - -void u8g_pb8h8_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h8_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h8_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h8_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb8h8_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb8h8_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c deleted file mode 100644 index 37352fd11e..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pb8v1.c - - 8bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - mask = 1; - y &= 0x07; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb8v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c deleted file mode 100644 index 3656511dbc..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - - u8g_pb8v2.c - - 8bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8v2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); - -} - - - -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_INDEX: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c deleted file mode 100644 index 139a43a24a..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_rect.c - - U8G high level interface for horizontal and vertical things - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_draw_hline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - uint8_t pixel = 0x0ff; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - w-=8; - x+=8; - } - if ( w != 0 ) - { - w ^=7; - w++; - pixel <<= w&7; - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - } -} - -void u8g_draw_vline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) -{ - uint8_t pixel = 0x0ff; - while( h >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - h-=8; - y+=8; - } - if ( h != 0 ) - { - h ^=7; - h++; - pixel <<= h&7; - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - } -} - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, 1) == 0 ) - return; - u8g_draw_hline(u8g, x, y, w); -} - -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, 1, w) == 0 ) - return; - u8g_draw_vline(u8g, x, y, w); -} - -/* restrictions: w > 0 && h > 0 */ -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - u8g_uint_t xtmp = x; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - - u8g_draw_hline(u8g, x, y, w); - u8g_draw_vline(u8g, x, y, h); - x+=w; - x--; - u8g_draw_vline(u8g, x, y, h); - y+=h; - y--; - u8g_draw_hline(u8g, xtmp, y, w); -} - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - do - { - u8g_draw_hline(u8g, x, y, w); - y++; - h--; - } while( h != 0 ); -} - -/* restrictions: h > 0 */ -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - u8g_draw_box(u8g, x, y, w, h); -} - - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - { - u8g_uint_t yl, xr; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_circle(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_circle(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_circle(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_circle(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - } - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - w--; - u8g_draw_hline(u8g, xl, y, ww); - u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_vline(u8g, x, yu, hh); - u8g_draw_vline(u8g, x+w, yu, hh); - } -} - -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - u8g_uint_t yl, xr; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_disc(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_disc(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_disc(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_disc(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - u8g_draw_box(u8g, xl, y, ww, r+1); - u8g_draw_box(u8g, xl, yl, ww, r+1); - //u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_box(u8g, x, yu, w, hh); - //u8g_draw_vline(u8g, x+w, yu, hh); - } -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c deleted file mode 100644 index c581104cb2..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c +++ /dev/null @@ -1,398 +0,0 @@ -/* - - u8g_rot.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -u8g_dev_t u8g_dev_rot = { u8g_dev_rot90_fn, NULL, NULL }; - - -void u8g_UndoRotation(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - return; - u8g->dev = u8g_dev_rot.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot90(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot90_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot180(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot180_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot270(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot270_fn; - u8g_UpdateDimension(u8g); -} - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_INDEX: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - y = bbx->x; - x = u8g->height; - /* x = u8g_GetWidthLL(u8g, rotation_chain); */ - x -= bbx->y; - x--; - - /* adjust point to be the uppler left corner again */ - x -= bbx->h; - x++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - //new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - //new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - - new_box.x0 = ((u8g_box_t *)arg)->y0; - new_box.x1 = ((u8g_box_t *)arg)->y1; - new_box.y0 = ((u8g_box_t *)arg)->x0; - new_box.y1 = ((u8g_box_t *)arg)->x1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - { - u8g_uint_t x, y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - { - u8g_uint_t x, y; - //uint16_t x,y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=1; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_INDEX: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y; - - /* transform the reference point */ - //y = u8g_GetHeightLL(u8g, rotation_chain); - y = u8g->height; - y -= bbx->y; - y--; - - //x = u8g_GetWidthLL(u8g, rotation_chain); - x = u8g->width; - x -= bbx->x; - x--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->h; - y++; - - x -= bbx->w; - x++; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.x1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - new_box.y0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.y1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=2; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_INDEX: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - x = bbx->y; - - y = u8g->width; - /* y = u8g_GetHeightLL(u8g, rotation_chain); */ - y -= bbx->x; - y--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->w; - y++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - new_box.y0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.y1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=3; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c deleted file mode 100644 index e5b4b634fb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_scale.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Scale screen by some constant factors. Usefull for making bigger fonts wiht less - memory consumption - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -u8g_dev_t u8g_dev_scale = { u8g_dev_scale_2x2_fn, NULL, NULL }; - -void u8g_UndoScale(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - return; - u8g->dev = u8g_dev_scale.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetScale2x2(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - { - u8g_dev_scale.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_scale; - } - u8g_dev_scale.dev_fn = u8g_dev_scale_2x2_fn; - u8g_UpdateDimension(u8g); -} - - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *chain = (u8g_dev_t *)(dev->dev_mem); - uint8_t pixel; - uint16_t scaled_pixel; - uint8_t i; - uint8_t dir; - u8g_uint_t x, y, xx,yy; - - switch(msg) - { - default: - return u8g_call_dev_fn(u8g, chain, msg, arg); - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, chain, msg, arg); - ((u8g_box_t *)arg)->x0 /= 2; - ((u8g_box_t *)arg)->x1 /= 2; - ((u8g_box_t *)arg)->y0 /= 2; - ((u8g_box_t *)arg)->y1 /= 2; - return 1; - case U8G_DEV_MSG_SET_PIXEL: - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - y++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - pixel = ((u8g_dev_arg_pixel_t *)arg)->pixel; - dir = ((u8g_dev_arg_pixel_t *)arg)->dir; - scaled_pixel = 0; - for( i = 0; i < 8; i++ ) - { - scaled_pixel<<=2; - if ( pixel & 128 ) - { - scaled_pixel |= 3; - } - pixel<<=1; - } - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - xx = x; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - yy = y; - if ( ((u8g_dev_arg_pixel_t *)arg)->dir & 1 ) - { - xx++; - } - else - { - yy++; - } - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel>>8; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel&255; - //((u8g_dev_arg_pixel_t *)arg)->pixel = 0x00; - switch(dir) - { - case 0: - x+=8; - xx+=8; - break; - case 1: - y+=8; - yy+=8; - break; - case 2: - x-=8; - xx-=8; - break; - case 3: - y-=8; - yy-=8; - break; - } - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c deleted file mode 100644 index 3ae3eee4a8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - - u8g_state.c - - backup and restore hardware state - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - device callback: DEV_MSG_INIT - state callback: backup u8g U8G_STATE_MSG_BACKUP_U8G - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - state callback: retore u8g U8G_STATE_MSG_RESTORE_U8G - DEV_MSG_PAGE_FIRST or DEV_MSG_PAGE_NEXT - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - -*/ - -#include -#include "u8g.h" - -void u8g_state_dummy_cb(uint8_t msg) -{ - /* the dummy procedure does nothing */ -} - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb) -{ - u8g->state_cb = backup_cb; - /* in most cases the init message was already sent, so this will backup the */ - /* current u8g state */ - backup_cb(U8G_STATE_MSG_BACKUP_U8G); -} - - -/*===============================================================*/ -/* AVR */ - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_SPI) -#include -static uint8_t u8g_state_avr_spi_memory[2]; - -void u8g_backup_avr_spi(uint8_t msg) -{ - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)] = SPCR; - } - else - { - uint8_t tmp = SREG; - cli(); - SPCR = 0; - SPCR = u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)]; - SREG = tmp; - } -} - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c deleted file mode 100644 index f1d1803cfa..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u16toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -const char *u8g_u16toap(char * dest, uint16_t v) -{ - uint8_t pos; - uint8_t d; - uint16_t c; - c = 10000; - for( pos = 0; pos < 5; pos++ ) - { - d = '0'; - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - c /= 10; - } - dest[5] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d) -{ - static char buf[6]; - d = 5-d; - return u8g_u16toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c deleted file mode 100644 index f3a2c06faf..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u8toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -static const unsigned char u8g_u8toa_tab[3] = { 100, 10, 1 } ; -const char *u8g_u8toap(char * dest, uint8_t v) -{ - uint8_t pos; - uint8_t d; - uint8_t c; - for( pos = 0; pos < 3; pos++ ) - { - d = '0'; - c = *(u8g_u8toa_tab+pos); - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - } - dest[3] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d) -{ - static char buf[4]; - d = 3-d; - return u8g_u8toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c deleted file mode 100644 index 8000506b43..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_virtual_screen.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -struct _u8g_vs_t -{ - u8g_uint_t x; - u8g_uint_t y; - u8g_t *u8g; -}; -typedef struct _u8g_vs_t u8g_vs_t; - -#define U8g_VS_MAX 4 -uint8_t u8g_vs_cnt = 0; -u8g_vs_t u8g_vs_list[U8g_VS_MAX]; -uint8_t u8g_vs_current; -u8g_uint_t u8g_vs_width; -u8g_uint_t u8g_vs_height; - -uint8_t u8g_dev_vs_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - default: - { - uint8_t i; - for( i = 0; i < u8g_vs_cnt; i++ ) - { - u8g_call_dev_fn(u8g_vs_list[i].u8g, u8g_vs_list[i].u8g->dev, msg, arg); - } - } - return 1; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_vs_current = 0; - if ( u8g_vs_cnt != 0 ) - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - return 0; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t ret = 0; - if ( u8g_vs_cnt != 0 ) - ret = u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - if ( ret != 0 ) - return ret; - u8g_vs_current++; /* next device */ - if ( u8g_vs_current >= u8g_vs_cnt ) /* reached end? */ - return 0; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, U8G_DEV_MSG_PAGE_FIRST, arg); - } - return 0; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_vs_width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_vs_height; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - if ( u8g_vs_current < u8g_vs_cnt ) - { - u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - ((u8g_box_t *)arg)->x0 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->x1 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->y0 += u8g_vs_list[u8g_vs_current].y; - ((u8g_box_t *)arg)->y1 += u8g_vs_list[u8g_vs_current].y; - } - else - { - ((u8g_box_t *)arg)->x0 = 0; - ((u8g_box_t *)arg)->x1 = 0; - ((u8g_box_t *)arg)->y0 = 0; - ((u8g_box_t *)arg)->y1 = 0; - } - return 1; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_vs_current < u8g_vs_cnt ) - { - ((u8g_dev_arg_pixel_t *)arg)->x -= u8g_vs_list[u8g_vs_current].x; - ((u8g_dev_arg_pixel_t *)arg)->y -= u8g_vs_list[u8g_vs_current].y; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - } - break; - } - return 1; -} - - - -u8g_dev_t u8g_dev_vs = { u8g_dev_vs_fn, NULL, NULL }; - -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return; /* abort if there is no a virtual screen device */ - u8g_vs_width = width; - u8g_vs_height = height; -} - -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return 0; /* abort if there is no a virtual screen device */ - if ( u8g_vs_cnt >= U8g_VS_MAX ) - return 0; /* maximum number of child u8g's reached */ - u8g_vs_list[u8g_vs_cnt].u8g = child_u8g; - u8g_vs_list[u8g_vs_cnt].x = x; - u8g_vs_list[u8g_vs_cnt].y = y; - u8g_vs_cnt++; - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.cpp b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.cpp deleted file mode 100644 index 553add7822..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.cpp +++ /dev/null @@ -1,303 +0,0 @@ -/* - TwoWire.cpp - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -extern "C" { - #include - #include - #include - #include "twi.h" -} - -#include "Wire.h" - -// Initialize Class Variables ////////////////////////////////////////////////// - -uint8_t TwoWire::rxBuffer[BUFFER_LENGTH]; -uint8_t TwoWire::rxBufferIndex = 0; -uint8_t TwoWire::rxBufferLength = 0; - -uint8_t TwoWire::txAddress = 0; -uint8_t TwoWire::txBuffer[BUFFER_LENGTH]; -uint8_t TwoWire::txBufferIndex = 0; -uint8_t TwoWire::txBufferLength = 0; - -uint8_t TwoWire::transmitting = 0; -void (*TwoWire::user_onRequest)(void); -void (*TwoWire::user_onReceive)(int); - -// Constructors //////////////////////////////////////////////////////////////// - -TwoWire::TwoWire() -{ -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void TwoWire::begin(void) -{ - rxBufferIndex = 0; - rxBufferLength = 0; - - txBufferIndex = 0; - txBufferLength = 0; - - twi_init(); -} - -void TwoWire::begin(uint8_t address) -{ - twi_setAddress(address); - twi_attachSlaveTxEvent(onRequestService); - twi_attachSlaveRxEvent(onReceiveService); - begin(); -} - -void TwoWire::begin(int address) -{ - begin((uint8_t)address); -} - -void TwoWire::setClock(uint32_t frequency) -{ - TWBR = ((F_CPU / frequency) - 16) / 2; -} - -uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop) -{ - // clamp to buffer length - if(quantity > BUFFER_LENGTH){ - quantity = BUFFER_LENGTH; - } - // perform blocking read into buffer - uint8_t read = twi_readFrom(address, rxBuffer, quantity, sendStop); - // set rx buffer iterator vars - rxBufferIndex = 0; - rxBufferLength = read; - - return read; -} - -uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)true); -} - -uint8_t TwoWire::requestFrom(int address, int quantity) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)true); -} - -uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)sendStop); -} - -void TwoWire::beginTransmission(uint8_t address) -{ - // indicate that we are transmitting - transmitting = 1; - // set address of targeted slave - txAddress = address; - // reset tx buffer iterator vars - txBufferIndex = 0; - txBufferLength = 0; -} - -void TwoWire::beginTransmission(int address) -{ - beginTransmission((uint8_t)address); -} - -// -// Originally, 'endTransmission' was an f(void) function. -// It has been modified to take one parameter indicating -// whether or not a STOP should be performed on the bus. -// Calling endTransmission(false) allows a sketch to -// perform a repeated start. -// -// WARNING: Nothing in the library keeps track of whether -// the bus tenure has been properly ended with a STOP. It -// is very possible to leave the bus in a hung state if -// no call to endTransmission(true) is made. Some I2C -// devices will behave oddly if they do not see a STOP. -// -uint8_t TwoWire::endTransmission(uint8_t sendStop) -{ - // transmit buffer (blocking) - int8_t ret = twi_writeTo(txAddress, txBuffer, txBufferLength, 1, sendStop); - // reset tx buffer iterator vars - txBufferIndex = 0; - txBufferLength = 0; - // indicate that we are done transmitting - transmitting = 0; - return ret; -} - -// This provides backwards compatibility with the original -// definition, and expected behaviour, of endTransmission -// -uint8_t TwoWire::endTransmission(void) -{ - return endTransmission(true); -} - -// must be called in: -// slave tx event callback -// or after beginTransmission(address) -size_t TwoWire::write(uint8_t data) -{ - if(transmitting){ - // in master transmitter mode - // don't bother if buffer is full - if(txBufferLength >= BUFFER_LENGTH){ - setWriteError(); - return 0; - } - // put byte in tx buffer - txBuffer[txBufferIndex] = data; - ++txBufferIndex; - // update amount in buffer - txBufferLength = txBufferIndex; - }else{ - // in slave send mode - // reply to master - twi_transmit(&data, 1); - } - return 1; -} - -// must be called in: -// slave tx event callback -// or after beginTransmission(address) -size_t TwoWire::write(const uint8_t *data, size_t quantity) -{ - if(transmitting){ - // in master transmitter mode - for(size_t i = 0; i < quantity; ++i){ - write(data[i]); - } - }else{ - // in slave send mode - // reply to master - twi_transmit(data, quantity); - } - return quantity; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::available(void) -{ - return rxBufferLength - rxBufferIndex; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::read(void) -{ - int value = -1; - - // get each successive byte on each call - if(rxBufferIndex < rxBufferLength){ - value = rxBuffer[rxBufferIndex]; - ++rxBufferIndex; - } - - return value; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::peek(void) -{ - int value = -1; - - if(rxBufferIndex < rxBufferLength){ - value = rxBuffer[rxBufferIndex]; - } - - return value; -} - -void TwoWire::flush(void) -{ - // XXX: to be implemented. -} - -// behind the scenes function that is called when data is received -void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes) -{ - // don't bother if user hasn't registered a callback - if(!user_onReceive){ - return; - } - // don't bother if rx buffer is in use by a master requestFrom() op - // i know this drops data, but it allows for slight stupidity - // meaning, they may not have read all the master requestFrom() data yet - if(rxBufferIndex < rxBufferLength){ - return; - } - // copy twi rx buffer into local read buffer - // this enables new reads to happen in parallel - for(uint8_t i = 0; i < numBytes; ++i){ - rxBuffer[i] = inBytes[i]; - } - // set rx iterator vars - rxBufferIndex = 0; - rxBufferLength = numBytes; - // alert user program - user_onReceive(numBytes); -} - -// behind the scenes function that is called when data is requested -void TwoWire::onRequestService(void) -{ - // don't bother if user hasn't registered a callback - if(!user_onRequest){ - return; - } - // reset tx buffer iterator vars - // !!! this will kill any pending pre-master sendTo() activity - txBufferIndex = 0; - txBufferLength = 0; - // alert user program - user_onRequest(); -} - -// sets function called on slave write -void TwoWire::onReceive( void (*function)(int) ) -{ - user_onReceive = function; -} - -// sets function called on slave read -void TwoWire::onRequest( void (*function)(void) ) -{ - user_onRequest = function; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -TwoWire Wire = TwoWire(); - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.h deleted file mode 100644 index 732bdc314e..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/Wire.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - TwoWire.h - TWI/I2C library for Arduino & Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -#ifndef TwoWire_h -#define TwoWire_h - -#include -#include "Stream.h" - -#define BUFFER_LENGTH 32 - -class TwoWire : public Stream -{ - private: - static uint8_t rxBuffer[]; - static uint8_t rxBufferIndex; - static uint8_t rxBufferLength; - - static uint8_t txAddress; - static uint8_t txBuffer[]; - static uint8_t txBufferIndex; - static uint8_t txBufferLength; - - static uint8_t transmitting; - static void (*user_onRequest)(void); - static void (*user_onReceive)(int); - static void onRequestService(void); - static void onReceiveService(uint8_t*, int); - public: - TwoWire(); - void begin(); - void begin(uint8_t); - void begin(int); - void setClock(uint32_t); - void beginTransmission(uint8_t); - void beginTransmission(int); - uint8_t endTransmission(void); - uint8_t endTransmission(uint8_t); - uint8_t requestFrom(uint8_t, uint8_t); - uint8_t requestFrom(uint8_t, uint8_t, uint8_t); - uint8_t requestFrom(int, int); - uint8_t requestFrom(int, int, int); - virtual size_t write(uint8_t); - virtual size_t write(const uint8_t *, size_t); - virtual int available(void); - virtual int read(void); - virtual int peek(void); - virtual void flush(void); - void onReceive( void (*)(int) ); - void onRequest( void (*)(void) ); - - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; -}; - -extern TwoWire Wire; - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino deleted file mode 100644 index d97a9e3cf8..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino +++ /dev/null @@ -1,87 +0,0 @@ -// I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder -// by Nicholas Zambetti -// and James Tichenor - -// Demonstrates use of the Wire library reading data from the -// Devantech Utrasonic Rangers SFR08 and SFR10 - -// Created 29 April 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial communication at 9600bps -} - -int reading = 0; - -void loop() -{ - // step 1: instruct sensor to read echoes - Wire.beginTransmission(112); // transmit to device #112 (0x70) - // the address specified in the datasheet is 224 (0xE0) - // but i2c adressing uses the high 7 bits so it's 112 - Wire.write(byte(0x00)); // sets register pointer to the command register (0x00) - Wire.write(byte(0x50)); // command sensor to measure in "inches" (0x50) - // use 0x51 for centimeters - // use 0x52 for ping microseconds - Wire.endTransmission(); // stop transmitting - - // step 2: wait for readings to happen - delay(70); // datasheet suggests at least 65 milliseconds - - // step 3: instruct sensor to return a particular echo reading - Wire.beginTransmission(112); // transmit to device #112 - Wire.write(byte(0x02)); // sets register pointer to echo #1 register (0x02) - Wire.endTransmission(); // stop transmitting - - // step 4: request reading from sensor - Wire.requestFrom(112, 2); // request 2 bytes from slave device #112 - - // step 5: receive reading from sensor - if (2 <= Wire.available()) // if two bytes were received - { - reading = Wire.read(); // receive high byte (overwrites previous reading) - reading = reading << 8; // shift high byte to be high 8 bits - reading |= Wire.read(); // receive low byte as lower 8 bits - Serial.println(reading); // print the reading - } - - delay(250); // wait a bit since people have to read the output :) -} - - -/* - -// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08) -// usage: changeAddress(0x70, 0xE6); - -void changeAddress(byte oldAddress, byte newAddress) -{ - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xA0)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xAA)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xA5)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(newAddress); - Wire.endTransmission(); -} - -*/ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino deleted file mode 100644 index 4d1580a61e..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino +++ /dev/null @@ -1,39 +0,0 @@ -// I2C Digital Potentiometer -// by Nicholas Zambetti -// and Shawn Bonkowski - -// Demonstrates use of the Wire library -// Controls AD5171 digital potentiometer via I2C/TWI - -// Created 31 March 2006 - -// This example code is in the public domain. - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) -} - -byte val = 0; - -void loop() -{ - Wire.beginTransmission(44); // transmit to device #44 (0x2c) - // device address is specified in datasheet - Wire.write(byte(0x00)); // sends instruction byte - Wire.write(val); // sends potentiometer value byte - Wire.endTransmission(); // stop transmitting - - val++; // increment value - if (val == 64) // if reached 64th position (max) - { - val = 0; // start over from lowest value - } - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino deleted file mode 100644 index 74f0155f8e..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino +++ /dev/null @@ -1,32 +0,0 @@ -// Wire Master Reader -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Reads data from an I2C/TWI slave device -// Refer to the "Wire Slave Sender" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial for output -} - -void loop() -{ - Wire.requestFrom(2, 6); // request 6 bytes from slave device #2 - - while (Wire.available()) // slave may send less than requested - { - char c = Wire.read(); // receive a byte as character - Serial.print(c); // print the character - } - - delay(500); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino deleted file mode 100644 index 482e922379..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino +++ /dev/null @@ -1,31 +0,0 @@ -// Wire Master Writer -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Writes data to an I2C/TWI slave device -// Refer to the "Wire Slave Receiver" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) -} - -byte x = 0; - -void loop() -{ - Wire.beginTransmission(4); // transmit to device #4 - Wire.write("x is "); // sends five bytes - Wire.write(x); // sends one byte - Wire.endTransmission(); // stop transmitting - - x++; - delay(500); -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino deleted file mode 100644 index 15eff9a545..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino +++ /dev/null @@ -1,38 +0,0 @@ -// Wire Slave Receiver -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Receives data as an I2C/TWI slave device -// Refer to the "Wire Master Writer" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(4); // join i2c bus with address #4 - Wire.onReceive(receiveEvent); // register event - Serial.begin(9600); // start serial for output -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is received from master -// this function is registered as an event, see setup() -void receiveEvent(int howMany) -{ - while (1 < Wire.available()) // loop through all but the last - { - char c = Wire.read(); // receive byte as a character - Serial.print(c); // print the character - } - int x = Wire.read(); // receive byte as an integer - Serial.println(x); // print the integer -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino deleted file mode 100644 index 4437ab1521..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino +++ /dev/null @@ -1,32 +0,0 @@ -// Wire Slave Sender -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Sends data as an I2C/TWI slave device -// Refer to the "Wire Master Reader" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(2); // join i2c bus with address #2 - Wire.onRequest(requestEvent); // register event -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is requested by master -// this function is registered as an event, see setup() -void requestEvent() -{ - Wire.write("hello "); // respond with message of 6 bytes - // as expected by master -} diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/keywords.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/keywords.txt deleted file mode 100644 index ff31475920..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/keywords.txt +++ /dev/null @@ -1,32 +0,0 @@ -####################################### -# Syntax Coloring Map For Wire -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -setClock KEYWORD2 -beginTransmission KEYWORD2 -endTransmission KEYWORD2 -requestFrom KEYWORD2 -send KEYWORD2 -receive KEYWORD2 -onReceive KEYWORD2 -onRequest KEYWORD2 - -####################################### -# Instances (KEYWORD2) -####################################### - -Wire KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/library.properties b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/library.properties deleted file mode 100644 index 3246a75098..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/library.properties +++ /dev/null @@ -1,8 +0,0 @@ -name=Wire -version=1.0 -author=Arduino -maintainer=Arduino -sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For all Arduino boards, BUT Arduino DUE. -paragraph= -url=http://arduino.cc/en/Reference/Wire -architectures=avr diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.c b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.c deleted file mode 100644 index 201d7d1bbb..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.c +++ /dev/null @@ -1,527 +0,0 @@ -/* - twi.c - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -#include -#include -#include -#include -#include -#include -#include "Arduino.h" // for digitalWrite - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif - -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#include "pins_arduino.h" -#include "twi.h" - -static volatile uint8_t twi_state; -static volatile uint8_t twi_slarw; -static volatile uint8_t twi_sendStop; // should the transaction end with a stop -static volatile uint8_t twi_inRepStart; // in the middle of a repeated start - -static void (*twi_onSlaveTransmit)(void); -static void (*twi_onSlaveReceive)(uint8_t*, int); - -static uint8_t twi_masterBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_masterBufferIndex; -static volatile uint8_t twi_masterBufferLength; - -static uint8_t twi_txBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_txBufferIndex; -static volatile uint8_t twi_txBufferLength; - -static uint8_t twi_rxBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_rxBufferIndex; - -static volatile uint8_t twi_error; - -/* - * Function twi_init - * Desc readys twi pins and sets twi bitrate - * Input none - * Output none - */ -void twi_init(void) -{ - // initialize state - twi_state = TWI_READY; - twi_sendStop = true; // default value - twi_inRepStart = false; - - // activate internal pullups for twi. - digitalWrite(SDA, 1); - digitalWrite(SCL, 1); - - // initialize twi prescaler and bit rate - cbi(TWSR, TWPS0); - cbi(TWSR, TWPS1); - TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; - - /* twi bit rate formula from atmega128 manual pg 204 - SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR)) - note: TWBR should be 10 or higher for master mode - It is 72 for a 16mhz Wiring board with 100kHz TWI */ - - // enable twi module, acks, and twi interrupt - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA); -} - -/* - * Function twi_slaveInit - * Desc sets slave address and enables interrupt - * Input none - * Output none - */ -void twi_setAddress(uint8_t address) -{ - // set twi slave address (skip over TWGCE bit) - TWAR = address << 1; -} - -/* - * Function twi_readFrom - * Desc attempts to become twi bus master and read a - * series of bytes from a device on the bus - * Input address: 7bit i2c device address - * data: pointer to byte array - * length: number of bytes to read into array - * sendStop: Boolean indicating whether to send a stop at the end - * Output number of bytes read - */ -uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length, uint8_t sendStop) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 0; - } - - // wait until twi is ready, become master receiver - while(TWI_READY != twi_state){ - continue; - } - twi_state = TWI_MRX; - twi_sendStop = sendStop; - // reset error state (0xFF.. no error occured) - twi_error = 0xFF; - - // initialize buffer iteration vars - twi_masterBufferIndex = 0; - twi_masterBufferLength = length-1; // This is not intuitive, read on... - // On receive, the previously configured ACK/NACK setting is transmitted in - // response to the received byte before the interrupt is signalled. - // Therefor we must actually set NACK when the _next_ to last byte is - // received, causing that NACK to be sent in response to receiving the last - // expected byte of data. - - // build sla+w, slave device address + w bit - twi_slarw = TW_READ; - twi_slarw |= address << 1; - - if (true == twi_inRepStart) { - // if we're in the repeated start state, then we've already sent the start, - // (@@@ we hope), and the TWI statemachine is just waiting for the address byte. - // We need to remove ourselves from the repeated start state before we enable interrupts, - // since the ISR is ASYNC, and we could get confused if we hit the ISR before cleaning - // up. Also, don't enable the START interrupt. There may be one pending from the - // repeated start that we sent outselves, and that would really confuse things. - twi_inRepStart = false; // remember, we're dealing with an ASYNC ISR - TWDR = twi_slarw; - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START - } - else - // send start condition - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA); - - // wait for read operation to complete - while(TWI_MRX == twi_state){ - continue; - } - - if (twi_masterBufferIndex < length) - length = twi_masterBufferIndex; - - // copy twi buffer to data - for(i = 0; i < length; ++i){ - data[i] = twi_masterBuffer[i]; - } - - return length; -} - -/* - * Function twi_writeTo - * Desc attempts to become twi bus master and write a - * series of bytes to a device on the bus - * Input address: 7bit i2c device address - * data: pointer to byte array - * length: number of bytes in array - * wait: boolean indicating to wait for write or not - * sendStop: boolean indicating whether or not to send a stop at the end - * Output 0 .. success - * 1 .. length to long for buffer - * 2 .. address send, NACK received - * 3 .. data send, NACK received - * 4 .. other twi error (lost bus arbitration, bus error, ..) - */ -uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait, uint8_t sendStop) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 1; - } - - // wait until twi is ready, become master transmitter - while(TWI_READY != twi_state){ - continue; - } - twi_state = TWI_MTX; - twi_sendStop = sendStop; - // reset error state (0xFF.. no error occured) - twi_error = 0xFF; - - // initialize buffer iteration vars - twi_masterBufferIndex = 0; - twi_masterBufferLength = length; - - // copy data to twi buffer - for(i = 0; i < length; ++i){ - twi_masterBuffer[i] = data[i]; - } - - // build sla+w, slave device address + w bit - twi_slarw = TW_WRITE; - twi_slarw |= address << 1; - - // if we're in a repeated start, then we've already sent the START - // in the ISR. Don't do it again. - // - if (true == twi_inRepStart) { - // if we're in the repeated start state, then we've already sent the start, - // (@@@ we hope), and the TWI statemachine is just waiting for the address byte. - // We need to remove ourselves from the repeated start state before we enable interrupts, - // since the ISR is ASYNC, and we could get confused if we hit the ISR before cleaning - // up. Also, don't enable the START interrupt. There may be one pending from the - // repeated start that we sent outselves, and that would really confuse things. - twi_inRepStart = false; // remember, we're dealing with an ASYNC ISR - TWDR = twi_slarw; - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START - } - else - // send start condition - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE) | _BV(TWSTA); // enable INTs - - // wait for write operation to complete - while(wait && (TWI_MTX == twi_state)){ - continue; - } - - if (twi_error == 0xFF) - return 0; // success - else if (twi_error == TW_MT_SLA_NACK) - return 2; // error: address send, nack received - else if (twi_error == TW_MT_DATA_NACK) - return 3; // error: data send, nack received - else - return 4; // other twi error -} - -/* - * Function twi_transmit - * Desc fills slave tx buffer with data - * must be called in slave tx event callback - * Input data: pointer to byte array - * length: number of bytes in array - * Output 1 length too long for buffer - * 2 not slave transmitter - * 0 ok - */ -uint8_t twi_transmit(const uint8_t* data, uint8_t length) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 1; - } - - // ensure we are currently a slave transmitter - if(TWI_STX != twi_state){ - return 2; - } - - // set length and copy data into tx buffer - twi_txBufferLength = length; - for(i = 0; i < length; ++i){ - twi_txBuffer[i] = data[i]; - } - - return 0; -} - -/* - * Function twi_attachSlaveRxEvent - * Desc sets function called before a slave read operation - * Input function: callback function to use - * Output none - */ -void twi_attachSlaveRxEvent( void (*function)(uint8_t*, int) ) -{ - twi_onSlaveReceive = function; -} - -/* - * Function twi_attachSlaveTxEvent - * Desc sets function called before a slave write operation - * Input function: callback function to use - * Output none - */ -void twi_attachSlaveTxEvent( void (*function)(void) ) -{ - twi_onSlaveTransmit = function; -} - -/* - * Function twi_reply - * Desc sends byte or readys receive line - * Input ack: byte indicating to ack or to nack - * Output none - */ -void twi_reply(uint8_t ack) -{ - // transmit master read ready signal, with or without ack - if(ack){ - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA); - }else{ - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT); - } -} - -/* - * Function twi_stop - * Desc relinquishes bus master status - * Input none - * Output none - */ -void twi_stop(void) -{ - // send stop condition - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO); - - // wait for stop condition to be exectued on bus - // TWINT is not set after a stop condition! - while(TWCR & _BV(TWSTO)){ - continue; - } - - // update twi state - twi_state = TWI_READY; -} - -/* - * Function twi_releaseBus - * Desc releases bus control - * Input none - * Output none - */ -void twi_releaseBus(void) -{ - // release bus - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT); - - // update twi state - twi_state = TWI_READY; -} - -ISR(TWI_vect) -{ - switch(TW_STATUS){ - // All Master - case TW_START: // sent start condition - case TW_REP_START: // sent repeated start condition - // copy device address and r/w bit to output register and ack - TWDR = twi_slarw; - twi_reply(1); - break; - - // Master Transmitter - case TW_MT_SLA_ACK: // slave receiver acked address - case TW_MT_DATA_ACK: // slave receiver acked data - // if there is data to send, send it, otherwise stop - if(twi_masterBufferIndex < twi_masterBufferLength){ - // copy data to output register and ack - TWDR = twi_masterBuffer[twi_masterBufferIndex++]; - twi_reply(1); - }else{ - if (twi_sendStop) - twi_stop(); - else { - twi_inRepStart = true; // we're gonna send the START - // don't enable the interrupt. We'll generate the start, but we - // avoid handling the interrupt until we're in the next transaction, - // at the point where we would normally issue the start. - TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ; - twi_state = TWI_READY; - } - } - break; - case TW_MT_SLA_NACK: // address sent, nack received - twi_error = TW_MT_SLA_NACK; - twi_stop(); - break; - case TW_MT_DATA_NACK: // data sent, nack received - twi_error = TW_MT_DATA_NACK; - twi_stop(); - break; - case TW_MT_ARB_LOST: // lost bus arbitration - twi_error = TW_MT_ARB_LOST; - twi_releaseBus(); - break; - - // Master Receiver - case TW_MR_DATA_ACK: // data received, ack sent - // put byte into buffer - twi_masterBuffer[twi_masterBufferIndex++] = TWDR; - case TW_MR_SLA_ACK: // address sent, ack received - // ack if more bytes are expected, otherwise nack - if(twi_masterBufferIndex < twi_masterBufferLength){ - twi_reply(1); - }else{ - twi_reply(0); - } - break; - case TW_MR_DATA_NACK: // data received, nack sent - // put final byte into buffer - twi_masterBuffer[twi_masterBufferIndex++] = TWDR; - if (twi_sendStop) - twi_stop(); - else { - twi_inRepStart = true; // we're gonna send the START - // don't enable the interrupt. We'll generate the start, but we - // avoid handling the interrupt until we're in the next transaction, - // at the point where we would normally issue the start. - TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ; - twi_state = TWI_READY; - } - break; - case TW_MR_SLA_NACK: // address sent, nack received - twi_stop(); - break; - // TW_MR_ARB_LOST handled by TW_MT_ARB_LOST case - - // Slave Receiver - case TW_SR_SLA_ACK: // addressed, returned ack - case TW_SR_GCALL_ACK: // addressed generally, returned ack - case TW_SR_ARB_LOST_SLA_ACK: // lost arbitration, returned ack - case TW_SR_ARB_LOST_GCALL_ACK: // lost arbitration, returned ack - // enter slave receiver mode - twi_state = TWI_SRX; - // indicate that rx buffer can be overwritten and ack - twi_rxBufferIndex = 0; - twi_reply(1); - break; - case TW_SR_DATA_ACK: // data received, returned ack - case TW_SR_GCALL_DATA_ACK: // data received generally, returned ack - // if there is still room in the rx buffer - if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){ - // put byte in buffer and ack - twi_rxBuffer[twi_rxBufferIndex++] = TWDR; - twi_reply(1); - }else{ - // otherwise nack - twi_reply(0); - } - break; - case TW_SR_STOP: // stop or repeated start condition received - // put a null char after data if there's room - if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){ - twi_rxBuffer[twi_rxBufferIndex] = '\0'; - } - // sends ack and stops interface for clock stretching - twi_stop(); - // callback to user defined callback - twi_onSlaveReceive(twi_rxBuffer, twi_rxBufferIndex); - // since we submit rx buffer to "wire" library, we can reset it - twi_rxBufferIndex = 0; - // ack future responses and leave slave receiver state - twi_releaseBus(); - break; - case TW_SR_DATA_NACK: // data received, returned nack - case TW_SR_GCALL_DATA_NACK: // data received generally, returned nack - // nack back at master - twi_reply(0); - break; - - // Slave Transmitter - case TW_ST_SLA_ACK: // addressed, returned ack - case TW_ST_ARB_LOST_SLA_ACK: // arbitration lost, returned ack - // enter slave transmitter mode - twi_state = TWI_STX; - // ready the tx buffer index for iteration - twi_txBufferIndex = 0; - // set tx buffer length to be zero, to verify if user changes it - twi_txBufferLength = 0; - // request for txBuffer to be filled and length to be set - // note: user must call twi_transmit(bytes, length) to do this - twi_onSlaveTransmit(); - // if they didn't change buffer & length, initialize it - if(0 == twi_txBufferLength){ - twi_txBufferLength = 1; - twi_txBuffer[0] = 0x00; - } - // transmit first byte from buffer, fall - case TW_ST_DATA_ACK: // byte sent, ack returned - // copy data to output register - TWDR = twi_txBuffer[twi_txBufferIndex++]; - // if there is more to send, ack, otherwise nack - if(twi_txBufferIndex < twi_txBufferLength){ - twi_reply(1); - }else{ - twi_reply(0); - } - break; - case TW_ST_DATA_NACK: // received nack, we are done - case TW_ST_LAST_DATA: // received ack, but we are done already! - // ack future responses - twi_reply(1); - // leave slave receiver state - twi_state = TWI_READY; - break; - - // All - case TW_NO_INFO: // no state information - break; - case TW_BUS_ERROR: // bus error, illegal stop/start - twi_error = TW_BUS_ERROR; - twi_stop(); - break; - } -} - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.h deleted file mode 100644 index 6526593394..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/libraries/Wire/utility/twi.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - twi.h - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef twi_h -#define twi_h - - #include - - //#define ATMEGA8 - - #ifndef TWI_FREQ - #define TWI_FREQ 100000L - #endif - - #ifndef TWI_BUFFER_LENGTH - #define TWI_BUFFER_LENGTH 32 - #endif - - #define TWI_READY 0 - #define TWI_MRX 1 - #define TWI_MTX 2 - #define TWI_SRX 3 - #define TWI_STX 4 - - void twi_init(void); - void twi_setAddress(uint8_t); - uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t); - uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t); - uint8_t twi_transmit(const uint8_t*, uint8_t); - void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) ); - void twi_attachSlaveTxEvent( void (*)(void) ); - void twi_reply(uint8_t); - void twi_stop(void); - void twi_releaseBus(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.local.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.local.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt deleted file mode 100644 index fd1a4fba2c..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/platform.txt +++ /dev/null @@ -1,119 +0,0 @@ - -# Arduino AVR Core and platform. -# ------------------------------ - -# For more info: -# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification - -name=Marlin AVR Boards -version=1.5.6 - -# AVR compile variables -# --------------------- - -# Default "compiler.path" is correct, change only if you want to overidde the initial value -compiler.path={runtime.ide.path}/hardware/tools/avr/bin/ -compiler.c.cmd=avr-gcc -compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD -# -w flag added to avoid printing a wrong warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396 -# This is fixed in gcc 4.8.3 and will be removed as soon as we update the toolchain -compiler.c.elf.flags=-w -Os -Wl,--gc-sections -compiler.c.elf.cmd=avr-gcc -compiler.S.flags=-c -g -x assembler-with-cpp -compiler.cpp.cmd=avr-g++ -compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -compiler.ar.cmd=avr-ar -compiler.ar.flags=rcs -compiler.objcopy.cmd=avr-objcopy -compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 -compiler.elf2hex.flags=-O ihex -R .eeprom -compiler.elf2hex.cmd=avr-objcopy -compiler.ldflags= -compiler.size.cmd=avr-size - -# This can be overriden in boards.txt -build.extra_flags= - -# These can be overridden in platform.local.txt -compiler.c.extra_flags= -compiler.c.elf.extra_flags= -compiler.S.extra_flags= -compiler.cpp.extra_flags= -compiler.ar.extra_flags= -compiler.objcopy.eep.extra_flags= -compiler.elf2hex.extra_flags= - -# AVR compile patterns -# -------------------- - -## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {compiler.cpp.extra_flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Compile S files -recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Create archives -recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}" - -## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm - -## Create eeprom -recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" - -## Create hex -recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" - -## Compute size -recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf" -recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).* -recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).* -recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* - - -# AVR Uploader/Programmers tools -# ------------------------------ - -tools.avrdude.cmd.path={runtime.ide.path}/hardware/tools/avr/bin/avrdude -tools.avrdude.config.path={runtime.ide.path}/hardware/tools/avr/etc/avrdude.conf - -tools.avrdude.upload.params.verbose=-v -tools.avrdude.upload.params.quiet=-q -q -tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i" - -tools.avrdude.program.params.verbose=-v -tools.avrdude.program.params.quiet=-q -q -tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i" - -tools.avrdude.erase.params.verbose=-v -tools.avrdude.erase.params.quiet=-q -q -tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m - -tools.avrdude.bootloader.params.verbose=-v -tools.avrdude.bootloader.params.quiet=-q -q -tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.path}/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m - -tools.hidloader.cmd.path=/usr/local/bin/HIDUploader - -tools.hidloader.upload.params.verbose=-v -tools.hidloader.upload.params.quiet= -tools.hidloader.upload.pattern="{cmd.path}" --upload -mmcu={build.mcu} {upload.verbose} -w "{build.path}/{build.project_name}.hex" -tools.nativehid.program.params.verbose=-v -tools.nativehid.program.params.quiet=-q -q - -tools.hidloader.program.params.verbose=-v -tools.hidloader.program.params.quiet=-q -q -tools.hidloader.program.pattern="{cmd.path}" -mmcu={build.mcu} {upload.verbose} -w "{build.path}/{build.project_name}.hex" - -tools.hidloader.erase.params.verbose=-v -tools.hidloader.erase.params.quiet=-q -q -tools.hidloader.erase.pattern="{cmd.path}" --erase "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m - -# USB Default Flags -# Default blank usb manufacturer will be filled it at compile time -# - from numeric vendor ID, set to Unknown otherwise -build.usb_manufacturer= -build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h deleted file mode 100644 index 83a04fc965..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - Modified 2012 by Fredrik Hubinette - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 8 - -#define TX_RX_LED_INIT DDRE |= (1<<7) -#define TXLED0 0 -#define TXLED1 0 -#define RXLED0 PORTE |= (1<<7) -#define RXLED1 PORTE &= ~(1<<7) - -static const uint8_t SDA = 0; -static const uint8_t SCL = 1; - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 20; -static const uint8_t MOSI = 22; -static const uint8_t MISO = 23; -static const uint8_t SCK = 21; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t A0 = 38; // F0 -static const uint8_t A1 = 39; // F1 -static const uint8_t A2 = 40; // F2 -static const uint8_t A3 = 41; // F3 -static const uint8_t A4 = 42; // F4 -static const uint8_t A5 = 43; // F5 -static const uint8_t A6 = 44; // F6 -static const uint8_t A7 = 45; // F7 - -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) - -// Pins below still needs to be configured - Hubbe. - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - - -#define digitalPinHasPWM(p) ((p) == 12 || (p) == 13 || (p) == 14 || (p) == 20 || (p) == 21 || (p) == 22) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#ifdef ARDUINO_MAIN - - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -// Note PA == 1, PB == 2, etc. (GAH!) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PA, // 0 - PA, - PA, - PA, - PA, - PA, - PA, - PA, - PB, // 8 - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PC, // 16 - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PD, // 24 - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PE, // 32 - PE, - PE, - PE, - PE, - PE, - PE, - PE, // 39 - PE7 - PF, // 40 - A0 - PF0 - PF, - PF, - PF, - PF, - PF, - PF, - PF, // 47 - A7 - PF7 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(0), // PA0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PB0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PC0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PD0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PE0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PF0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), -}; - - -// TODO(unrepentantgeek) complete this map of PWM capable pins -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, // 0 - PA0 - NOT_ON_TIMER, // 1 - PA1 - NOT_ON_TIMER, // 2 - PA2 - NOT_ON_TIMER, // 3 - PA3 - NOT_ON_TIMER, // 4 - PA4 - NOT_ON_TIMER, // 5 - PA5 - NOT_ON_TIMER, // 6 - PA6 - NOT_ON_TIMER, // 7 - PA7 - NOT_ON_TIMER, // 8 - PB0 - NOT_ON_TIMER, // 9 - PB1 - NOT_ON_TIMER, // 10 - PB2 - NOT_ON_TIMER, // 11 - PB3 - TIMER2A, // 12 - PB4 - TIMER1A, // 13 - PB5 - TIMER1B, // 14 - PB6 - NOT_ON_TIMER, // 15 - PB7 - NOT_ON_TIMER, // 16 - PC0 - NOT_ON_TIMER, // 17 - PC1 - NOT_ON_TIMER, // 18 - PC2 - NOT_ON_TIMER, // 19 - PC3 - TIMER3C, // 20 - PC4 - TIMER3B, // 21 - PC5 - TIMER3A, // 22 - PC6 - NOT_ON_TIMER, // 23 - PC7 - NOT_ON_TIMER, // 24 - PD0 - NOT_ON_TIMER, // 25 - PD1 - NOT_ON_TIMER, // 26 - PD2 - NOT_ON_TIMER, // 27 - PD3 - NOT_ON_TIMER, // 28 - PD4 - NOT_ON_TIMER, // 29 - PD5 - NOT_ON_TIMER, // 30 - PD6 - NOT_ON_TIMER, // 31 - PD7 - NOT_ON_TIMER, // 32 - PE0 - NOT_ON_TIMER, // 33 - PE1 - NOT_ON_TIMER, // 34 - PE2 - NOT_ON_TIMER, // 35 - PE3 - NOT_ON_TIMER, // 36 - PE4 - NOT_ON_TIMER, // 37 - PE5 - NOT_ON_TIMER, // 38 - PE6 - NOT_ON_TIMER, // 39 - PE7 - NOT_ON_TIMER, // 40 - A0 - PF0 - NOT_ON_TIMER, // 41 - A1 - PF1 - NOT_ON_TIMER, // 42 - A2 - PF2 - NOT_ON_TIMER, // 43 - A3 - PF3 - NOT_ON_TIMER, // 44 - A4 - PF4 - NOT_ON_TIMER, // 45 - A5 - PF5 - NOT_ON_TIMER, // 46 - A6 - PF6 - NOT_ON_TIMER, // 47 - A7 - PF7 -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[12] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ -#endif /* Pins_Arduino_h */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwavepro/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwavepro/pins_arduino.h deleted file mode 100644 index 8fef383206..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/brainwavepro/pins_arduino.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - Modified 2012 by Fredrik Hubinette - Modified 2014-2015 by Matthew Wilson - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 8 - -// PE7 is our status LED -#define TX_RX_LED_INIT DDRE |= (1<<7) -#define TXLED0 0 -#define TXLED1 0 -#define RXLED0 PORTE |= (1<<7) -#define RXLED1 PORTE &= ~(1<<7) - -static const uint8_t SDA = 1; -static const uint8_t SCL = 0; - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 20; -static const uint8_t MOSI = 22; -static const uint8_t MISO = 23; -static const uint8_t SCK = 21; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t A0 = 38; // F0 -static const uint8_t A1 = 39; // F1 -static const uint8_t A2 = 40; // F2 -static const uint8_t A3 = 41; // F3 -static const uint8_t A4 = 42; // F4 -static const uint8_t A5 = 43; // F5 -static const uint8_t A6 = 44; // F6 -static const uint8_t A7 = 45; // F7 - -#define analogInputToDigitalPin(p) ((p < 8) ? (p) + 38 : -1) - -// Pins below still needs to be configured - Hubbe. - -#define digitalPinToPCICR(p) ((((p) >= 0 && (p) <= 3) || ((p) >= 18 && (p) <= 19) || ((p) >= 36 && (p) <= 37)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 0 && (p) <= 3) || ((p) >= 18 && (p) <= 19) || ((p) >= 36 && (p) <= 37)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 0 && (p) <= 3) ? (p) : ((p) == 18 ? 6 : ((p) == 19 ? 7 : ((p) == 36 ? 4 : ((p) == 37 ? 5 : (-1)))))) - -#define digitalPinHasPWM(p) ((p) == 0 || (p) == 1 || (p) == 14 || (p) == 15 || (p) == 16 || (p) == 24 || (p) == 25 || (p) == 26 || (p) == 27) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#ifdef ARDUINO_MAIN - - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -// Note PA == 1, PB == 2, etc. (GAH!) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // 0 - PD0 - INT0 - PWM - PD, // 1 - PD1 - INT1 - PWM - PD, // 2 - PD2 - INT2 - RX - PD, // 3 - PD3 - INT3 - TX - PD, // 4 - PD4 - PD, // 5 - PD5 - PD, // 6 - PD6 - PD, // 7 - PD7 - PE, // 8 - PE0 - PE, // 9 - PE1 - PC, // 10 - PC0 - PC, // 11 - PC1 - PC, // 12 - PC2 - PC, // 13 - PC3 - PC, // 14 - PC4 - PWM - PC, // 15 - PC5 - PWM - PC, // 16 - PC6 - PWM - PC, // 17 - PC7 - PE, // 18 - PE6 - INT6 - PE, // 19 - PE7 - INT7 - PB, // 20 - PB0 - PB, // 21 - PB1 - PB, // 22 - PB2 - PB, // 23 - PB3 - PB, // 24 - PB4 - PWM - PB, // 25 - PB5 - PWM - PB, // 26 - PB6 - PWM - PB, // 27 - PB7 - PWM - PA, // 28 - PA0 - PA, // 29 - PA1 - PA, // 30 - PA2 - PA, // 31 - PA3 - PA, // 32 - PA4 - PA, // 33 - PA5 - PA, // 34 - PA6 - PA, // 35 - PA7 - PE, // 36 - PE4 - INT4 - PE, // 37 - PE5 - INT5 - PF, // 38 - PF0 - A0 - PF, // 39 - PF1 - A1 - PF, // 40 - PF2 - A2 - PF, // 41 - PF3 - A3 - PF, // 42 - PF4 - A4 - PF, // 43 - PF5 - A5 - PF, // 44 - PF6 - A6 - PF, // 45 - PF7 - A7 - PE, // 46 - PE2 (not defined in teensy) - PE, // 47 - PE3 (not defined in teensy) -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(0), // 0 - PD0 - INT0 - PWM - _BV(1), // 1 - PD1 - INT1 - PWM - _BV(2), // 2 - PD2 - INT2 - RX - _BV(3), // 3 - PD3 - INT3 - TX - _BV(4), // 4 - PD4 - _BV(5), // 5 - PD5 - _BV(6), // 6 - PD6 - _BV(7), // 7 - PD7 - _BV(0), // 8 - PE0 - _BV(1), // 9 - PE1 - _BV(0), // 10 - PC0 - _BV(1), // 11 - PC1 - _BV(2), // 12 - PC2 - _BV(3), // 13 - PC3 - _BV(4), // 14 - PC4 - PWM - _BV(5), // 15 - PC5 - PWM - _BV(6), // 16 - PC6 - PWM - _BV(7), // 17 - PC7 - _BV(6), // 18 - PE6 - INT6 - _BV(7), // 19 - PE7 - INT7 - _BV(0), // 20 - PB0 - _BV(1), // 21 - PB1 - _BV(2), // 22 - PB2 - _BV(3), // 23 - PB3 - _BV(4), // 24 - PB4 - PWM - _BV(5), // 25 - PB5 - PWM - _BV(6), // 26 - PB6 - PWM - _BV(7), // 27 - PB7 - PWM - _BV(0), // 28 - PA0 - _BV(1), // 29 - PA1 - _BV(2), // 30 - PA2 - _BV(3), // 31 - PA3 - _BV(4), // 32 - PA4 - _BV(5), // 33 - PA5 - _BV(6), // 34 - PA6 - _BV(7), // 35 - PA7 - _BV(4), // 36 - PE4 - INT4 - _BV(5), // 37 - PE5 - INT5 - _BV(0), // 38 - PF0 - A0 - _BV(1), // 39 - PF1 - A1 - _BV(2), // 40 - PF2 - A2 - _BV(3), // 41 - PF3 - A3 - _BV(4), // 42 - PF4 - A4 - _BV(5), // 43 - PF5 - A5 - _BV(6), // 44 - PF6 - A6 - _BV(7), // 45 - PF7 - A7 - _BV(2), // 46 - PE2 (not defined in teensy) - _BV(3), // 47 - PE3 (not defined in teensy) -}; - - -// TODO(unrepentantgeek) complete this map of PWM capable pins -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - TIMER0A, // 0 - PD0 - INT0 - PWM - TIMER2B, // 1 - PD1 - INT1 - PWM - NOT_ON_TIMER, // 2 - PD2 - INT2 - RX - NOT_ON_TIMER, // 3 - PD3 - INT3 - TX - NOT_ON_TIMER, // 4 - PD4 - NOT_ON_TIMER, // 5 - PD5 - NOT_ON_TIMER, // 6 - PD6 - NOT_ON_TIMER, // 7 - PD7 - NOT_ON_TIMER, // 8 - PE0 - NOT_ON_TIMER, // 9 - PE1 - NOT_ON_TIMER, // 10 - PC0 - NOT_ON_TIMER, // 11 - PC1 - NOT_ON_TIMER, // 12 - PC2 - NOT_ON_TIMER, // 13 - PC3 - TIMER3C, // 14 - PC4 - PWM - TIMER3B, // 15 - PC5 - PWM - TIMER3A, // 16 - PC6 - PWM - NOT_ON_TIMER, // 17 - PC7 - NOT_ON_TIMER, // 18 - PE6 - INT6 - NOT_ON_TIMER, // 19 - PE7 - INT7 - NOT_ON_TIMER, // 20 - PB0 - NOT_ON_TIMER, // 21 - PB1 - NOT_ON_TIMER, // 22 - PB2 - NOT_ON_TIMER, // 23 - PB3 - TIMER2A, // 24 - PB4 - PWM - TIMER1A, // 25 - PB5 - PWM - TIMER1B, // 26 - PB6 - PWM - NOT_ON_TIMER, // 27 - PB7 - PWM // This should be on TIMER1C - NOT_ON_TIMER, // 28 - PA0 - NOT_ON_TIMER, // 29 - PA1 - NOT_ON_TIMER, // 30 - PA2 - NOT_ON_TIMER, // 31 - PA3 - NOT_ON_TIMER, // 32 - PA4 - NOT_ON_TIMER, // 33 - PA5 - NOT_ON_TIMER, // 34 - PA6 - NOT_ON_TIMER, // 35 - PA7 - NOT_ON_TIMER, // 36 - PE4 - INT4 - NOT_ON_TIMER, // 37 - PE5 - INT5 - NOT_ON_TIMER, // 38 - PF0 - A0 - NOT_ON_TIMER, // 39 - PF1 - A1 - NOT_ON_TIMER, // 40 - PF2 - A2 - NOT_ON_TIMER, // 41 - PF3 - A3 - NOT_ON_TIMER, // 42 - PF4 - A4 - NOT_ON_TIMER, // 43 - PF5 - A5 - NOT_ON_TIMER, // 44 - PF6 - A6 - NOT_ON_TIMER, // 45 - PF7 - A7 - NOT_ON_TIMER, // 46 - PE2 (not defined in teensy) - NOT_ON_TIMER, // 47 - PE3 (not defined in teensy) -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[8] = { - 0, // A0 PF0 ADC0 - 1, // A1 PF1 ADC1 - 2, // A2 PF2 ADC2 - 3, // A3 PF3 ADC3 - 4, // A4 PF4 ADC4 - 5, // A5 PF5 ADC5 - 6, // A6 PD6 ADC6 - 7, // A7 PD7 ADC7 -}; - -#endif /* ARDUINO_MAIN */ -#endif /* Pins_Arduino_h */ diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h deleted file mode 100644 index f49a23fc02..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/rambo/pins_arduino.h +++ /dev/null @@ -1,411 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 82 -#define NUM_ANALOG_INPUTS 16 -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) -#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) - -static const uint8_t SS = 53; -static const uint8_t MOSI = 51; -static const uint8_t MISO = 50; -static const uint8_t SCK = 52; - -static const uint8_t SDA = 20; -static const uint8_t SCL = 21; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 54; -static const uint8_t A1 = 55; -static const uint8_t A2 = 56; -static const uint8_t A3 = 57; -static const uint8_t A4 = 58; -static const uint8_t A5 = 59; -static const uint8_t A6 = 60; -static const uint8_t A7 = 61; -static const uint8_t A8 = 62; -static const uint8_t A9 = 63; -static const uint8_t A10 = 64; -static const uint8_t A11 = 65; -static const uint8_t A12 = 66; -static const uint8_t A13 = 67; -static const uint8_t A14 = 68; -static const uint8_t A15 = 69; - -// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) -// Only pins available for RECEIVE (TRANSMIT can be on any pin): -// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) -// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 - -#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ - (((p) >= 50) && ((p) <= 53)) || \ - (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ - 0 ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ - ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ - ((uint8_t *)0) ) ) - -#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ - ( ((p) == 50) ? 3 : \ - ( ((p) == 51) ? 2 : \ - ( ((p) == 52) ? 1 : \ - ( ((p) == 53) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ - 0 ) ) ) ) ) ) - -#ifdef ARDUINO_MAIN - -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, - (uint16_t) &DDRG, - (uint16_t) &DDRH, - NOT_A_PORT, - (uint16_t) &DDRJ, - (uint16_t) &DDRK, - (uint16_t) &DDRL, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, - (uint16_t) &PORTG, - (uint16_t) &PORTH, - NOT_A_PORT, - (uint16_t) &PORTJ, - (uint16_t) &PORTK, - (uint16_t) &PORTL, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PIN, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, - (uint16_t) &PING, - (uint16_t) &PINH, - NOT_A_PIN, - (uint16_t) &PINJ, - (uint16_t) &PINK, - (uint16_t) &PINL, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - // PORTLIST - // ------------------------------------------- - PE , // PE 0 ** 0 ** USART0_RX - PE , // PE 1 ** 1 ** USART0_TX - PE , // PE 4 ** 2 ** PWM2 - PE , // PE 5 ** 3 ** PWM3 - PG , // PG 5 ** 4 ** PWM4 - PE , // PE 3 ** 5 ** PWM5 - PH , // PH 3 ** 6 ** PWM6 - PH , // PH 4 ** 7 ** PWM7 - PH , // PH 5 ** 8 ** PWM8 - PH , // PH 6 ** 9 ** PWM9 - PB , // PB 4 ** 10 ** PWM10 - PB , // PB 5 ** 11 ** PWM11 - PB , // PB 6 ** 12 ** PWM12 - PB , // PB 7 ** 13 ** PWM13 - PJ , // PJ 1 ** 14 ** USART3_TX - PJ , // PJ 0 ** 15 ** USART3_RX - PH , // PH 1 ** 16 ** USART2_TX - PH , // PH 0 ** 17 ** USART2_RX - PD , // PD 3 ** 18 ** USART1_TX - PD , // PD 2 ** 19 ** USART1_RX - PD , // PD 1 ** 20 ** I2C_SDA - PD , // PD 0 ** 21 ** I2C_SCL - PA , // PA 0 ** 22 ** D22 - PA , // PA 1 ** 23 ** D23 - PA , // PA 2 ** 24 ** D24 - PA , // PA 3 ** 25 ** D25 - PA , // PA 4 ** 26 ** D26 - PA , // PA 5 ** 27 ** D27 - PA , // PA 6 ** 28 ** D28 - PA , // PA 7 ** 29 ** D29 - PC , // PC 7 ** 30 ** D30 - PC , // PC 6 ** 31 ** D31 - PC , // PC 5 ** 32 ** D32 - PC , // PC 4 ** 33 ** D33 - PC , // PC 3 ** 34 ** D34 - PC , // PC 2 ** 35 ** D35 - PC , // PC 1 ** 36 ** D36 - PC , // PC 0 ** 37 ** D37 - PD , // PD 7 ** 38 ** D38 - PG , // PG 2 ** 39 ** D39 - PG , // PG 1 ** 40 ** D40 - PG , // PG 0 ** 41 ** D41 - PL , // PL 7 ** 42 ** D42 - PL , // PL 6 ** 43 ** D43 - PL , // PL 5 ** 44 ** D44 - PL , // PL 4 ** 45 ** D45 - PL , // PL 3 ** 46 ** D46 - PL , // PL 2 ** 47 ** D47 - PL , // PL 1 ** 48 ** D48 - PL , // PL 0 ** 49 ** D49 - PB , // PB 3 ** 50 ** SPI_MISO - PB , // PB 2 ** 51 ** SPI_MOSI - PB , // PB 1 ** 52 ** SPI_SCK - PB , // PB 0 ** 53 ** SPI_SS - PF , // PF 0 ** 54 ** A0 - PF , // PF 1 ** 55 ** A1 - PF , // PF 2 ** 56 ** A2 - PF , // PF 3 ** 57 ** A3 - PF , // PF 4 ** 58 ** A4 - PF , // PF 5 ** 59 ** A5 - PF , // PF 6 ** 60 ** A6 - PF , // PF 7 ** 61 ** A7 - PK , // PK 0 ** 62 ** A8 - PK , // PK 1 ** 63 ** A9 - PK , // PK 2 ** 64 ** A10 - PK , // PK 3 ** 65 ** A11 - PK , // PK 4 ** 66 ** A12 - PK , // PK 5 ** 67 ** A13 - PK , // PK 6 ** 68 ** A14 - PK , // PK 7 ** 69 ** A15 - PG , // PG 4 ** 70 ** D70 - PG , // PG 3 ** 71 ** D71 - PJ , // PJ 2 ** 72 ** D72 - PJ , // PJ 3 ** 73 ** D73 - PJ , // PJ 7 ** 74 ** D74 - PJ , // PJ 4 ** 75 ** D75 - PJ , // PJ 5 ** 76 ** D76 - PJ , // PJ 6 ** 77 ** D77 - PE , // PE 2 ** 78 ** D78 - PE , // PE 6 ** 79 ** D79 - PE , // PE 7 ** 80 ** D80 - PD , // PD 4 ** 81 ** D81 - PD , // PD 5 ** 82 ** D82 - PD , // PD 6 ** 83 ** D83 - PH , // PH 2 ** 84 ** D84 - PH , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - // PIN IN PORT - // ------------------------------------------- - _BV( 0 ) , // PE 0 ** 0 ** USART0_RX - _BV( 1 ) , // PE 1 ** 1 ** USART0_TX - _BV( 4 ) , // PE 4 ** 2 ** PWM2 - _BV( 5 ) , // PE 5 ** 3 ** PWM3 - _BV( 5 ) , // PG 5 ** 4 ** PWM4 - _BV( 3 ) , // PE 3 ** 5 ** PWM5 - _BV( 3 ) , // PH 3 ** 6 ** PWM6 - _BV( 4 ) , // PH 4 ** 7 ** PWM7 - _BV( 5 ) , // PH 5 ** 8 ** PWM8 - _BV( 6 ) , // PH 6 ** 9 ** PWM9 - _BV( 4 ) , // PB 4 ** 10 ** PWM10 - _BV( 5 ) , // PB 5 ** 11 ** PWM11 - _BV( 6 ) , // PB 6 ** 12 ** PWM12 - _BV( 7 ) , // PB 7 ** 13 ** PWM13 - _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX - _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX - _BV( 1 ) , // PH 1 ** 16 ** USART2_TX - _BV( 0 ) , // PH 0 ** 17 ** USART2_RX - _BV( 3 ) , // PD 3 ** 18 ** USART1_TX - _BV( 2 ) , // PD 2 ** 19 ** USART1_RX - _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA - _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL - _BV( 0 ) , // PA 0 ** 22 ** D22 - _BV( 1 ) , // PA 1 ** 23 ** D23 - _BV( 2 ) , // PA 2 ** 24 ** D24 - _BV( 3 ) , // PA 3 ** 25 ** D25 - _BV( 4 ) , // PA 4 ** 26 ** D26 - _BV( 5 ) , // PA 5 ** 27 ** D27 - _BV( 6 ) , // PA 6 ** 28 ** D28 - _BV( 7 ) , // PA 7 ** 29 ** D29 - _BV( 7 ) , // PC 7 ** 30 ** D30 - _BV( 6 ) , // PC 6 ** 31 ** D31 - _BV( 5 ) , // PC 5 ** 32 ** D32 - _BV( 4 ) , // PC 4 ** 33 ** D33 - _BV( 3 ) , // PC 3 ** 34 ** D34 - _BV( 2 ) , // PC 2 ** 35 ** D35 - _BV( 1 ) , // PC 1 ** 36 ** D36 - _BV( 0 ) , // PC 0 ** 37 ** D37 - _BV( 7 ) , // PD 7 ** 38 ** D38 - _BV( 2 ) , // PG 2 ** 39 ** D39 - _BV( 1 ) , // PG 1 ** 40 ** D40 - _BV( 0 ) , // PG 0 ** 41 ** D41 - _BV( 7 ) , // PL 7 ** 42 ** D42 - _BV( 6 ) , // PL 6 ** 43 ** D43 - _BV( 5 ) , // PL 5 ** 44 ** D44 - _BV( 4 ) , // PL 4 ** 45 ** D45 - _BV( 3 ) , // PL 3 ** 46 ** D46 - _BV( 2 ) , // PL 2 ** 47 ** D47 - _BV( 1 ) , // PL 1 ** 48 ** D48 - _BV( 0 ) , // PL 0 ** 49 ** D49 - _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO - _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI - _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK - _BV( 0 ) , // PB 0 ** 53 ** SPI_SS - _BV( 0 ) , // PF 0 ** 54 ** A0 - _BV( 1 ) , // PF 1 ** 55 ** A1 - _BV( 2 ) , // PF 2 ** 56 ** A2 - _BV( 3 ) , // PF 3 ** 57 ** A3 - _BV( 4 ) , // PF 4 ** 58 ** A4 - _BV( 5 ) , // PF 5 ** 59 ** A5 - _BV( 6 ) , // PF 6 ** 60 ** A6 - _BV( 7 ) , // PF 7 ** 61 ** A7 - _BV( 0 ) , // PK 0 ** 62 ** A8 - _BV( 1 ) , // PK 1 ** 63 ** A9 - _BV( 2 ) , // PK 2 ** 64 ** A10 - _BV( 3 ) , // PK 3 ** 65 ** A11 - _BV( 4 ) , // PK 4 ** 66 ** A12 - _BV( 5 ) , // PK 5 ** 67 ** A13 - _BV( 6 ) , // PK 6 ** 68 ** A14 - _BV( 7 ) , // PK 7 ** 69 ** A15 - _BV( 4 ) , // PG 4 ** 70 ** D70 - _BV( 3 ) , // PG 3 ** 71 ** D71 - _BV( 2 ) , // PJ 2 ** 72 ** D72 - _BV( 3 ) , // PJ 3 ** 73 ** D73 - _BV( 7 ) , // PJ 7 ** 74 ** D74 - _BV( 4 ) , // PJ 4 ** 75 ** D75 - _BV( 5 ) , // PJ 5 ** 76 ** D76 - _BV( 6 ) , // PJ 6 ** 77 ** D77 - _BV( 2 ) , // PE 2 ** 78 ** D78 - _BV( 6 ) , // PE 6 ** 79 ** D79 - _BV( 7 ) , // PE 7 ** 80 ** D80 - _BV( 4 ) , // PD 4 ** 81 ** D81 - _BV( 5 ) , // PD 5 ** 82 ** D82 - _BV( 6 ) , // PD 6 ** 83 ** D83 - _BV( 2 ) , // PH 2 ** 84 ** D84 - _BV( 7 ) , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - // TIMERS - // ------------------------------------------- - NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX - NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX - TIMER3B , // PE 4 ** 2 ** PWM2 - TIMER3C , // PE 5 ** 3 ** PWM3 - TIMER0B , // PG 5 ** 4 ** PWM4 - TIMER3A , // PE 3 ** 5 ** PWM5 - TIMER4A , // PH 3 ** 6 ** PWM6 - TIMER4B , // PH 4 ** 7 ** PWM7 - TIMER4C , // PH 5 ** 8 ** PWM8 - TIMER2B , // PH 6 ** 9 ** PWM9 - TIMER2A , // PB 4 ** 10 ** PWM10 - TIMER1A , // PB 5 ** 11 ** PWM11 - TIMER1B , // PB 6 ** 12 ** PWM12 - TIMER0A , // PB 7 ** 13 ** PWM13 - NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX - NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX - NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX - NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX - NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX - NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX - NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA - NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL - NOT_ON_TIMER , // PA 0 ** 22 ** D22 - NOT_ON_TIMER , // PA 1 ** 23 ** D23 - NOT_ON_TIMER , // PA 2 ** 24 ** D24 - NOT_ON_TIMER , // PA 3 ** 25 ** D25 - NOT_ON_TIMER , // PA 4 ** 26 ** D26 - NOT_ON_TIMER , // PA 5 ** 27 ** D27 - NOT_ON_TIMER , // PA 6 ** 28 ** D28 - NOT_ON_TIMER , // PA 7 ** 29 ** D29 - NOT_ON_TIMER , // PC 7 ** 30 ** D30 - NOT_ON_TIMER , // PC 6 ** 31 ** D31 - NOT_ON_TIMER , // PC 5 ** 32 ** D32 - NOT_ON_TIMER , // PC 4 ** 33 ** D33 - NOT_ON_TIMER , // PC 3 ** 34 ** D34 - NOT_ON_TIMER , // PC 2 ** 35 ** D35 - NOT_ON_TIMER , // PC 1 ** 36 ** D36 - NOT_ON_TIMER , // PC 0 ** 37 ** D37 - NOT_ON_TIMER , // PD 7 ** 38 ** D38 - NOT_ON_TIMER , // PG 2 ** 39 ** D39 - NOT_ON_TIMER , // PG 1 ** 40 ** D40 - NOT_ON_TIMER , // PG 0 ** 41 ** D41 - NOT_ON_TIMER , // PL 7 ** 42 ** D42 - NOT_ON_TIMER , // PL 6 ** 43 ** D43 - TIMER5C , // PL 5 ** 44 ** D44 - TIMER5B , // PL 4 ** 45 ** D45 - TIMER5A , // PL 3 ** 46 ** D46 - NOT_ON_TIMER , // PL 2 ** 47 ** D47 - NOT_ON_TIMER , // PL 1 ** 48 ** D48 - NOT_ON_TIMER , // PL 0 ** 49 ** D49 - NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO - NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI - NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK - NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS - NOT_ON_TIMER , // PF 0 ** 54 ** A0 - NOT_ON_TIMER , // PF 1 ** 55 ** A1 - NOT_ON_TIMER , // PF 2 ** 56 ** A2 - NOT_ON_TIMER , // PF 3 ** 57 ** A3 - NOT_ON_TIMER , // PF 4 ** 58 ** A4 - NOT_ON_TIMER , // PF 5 ** 59 ** A5 - NOT_ON_TIMER , // PF 6 ** 60 ** A6 - NOT_ON_TIMER , // PF 7 ** 61 ** A7 - NOT_ON_TIMER , // PK 0 ** 62 ** A8 - NOT_ON_TIMER , // PK 1 ** 63 ** A9 - NOT_ON_TIMER , // PK 2 ** 64 ** A10 - NOT_ON_TIMER , // PK 3 ** 65 ** A11 - NOT_ON_TIMER , // PK 4 ** 66 ** A12 - NOT_ON_TIMER , // PK 5 ** 67 ** A13 - NOT_ON_TIMER , // PK 6 ** 68 ** A14 - NOT_ON_TIMER , // PK 7 ** 69 ** A15 - NOT_ON_TIMER , // PG 4 ** 70 ** D70 - NOT_ON_TIMER , // PG 3 ** 71 ** D71 - NOT_ON_TIMER , // PJ 2 ** 72 ** D72 - NOT_ON_TIMER , // PJ 3 ** 73 ** D73 - NOT_ON_TIMER , // PJ 7 ** 74 ** D74 - NOT_ON_TIMER , // PJ 4 ** 75 ** D75 - NOT_ON_TIMER , // PJ 5 ** 76 ** D76 - NOT_ON_TIMER , // PJ 6 ** 77 ** D77 - NOT_ON_TIMER , // PE 2 ** 78 ** D78 - NOT_ON_TIMER , // PE 6 ** 79 ** D79 - NOT_ON_TIMER , // PE 7 ** 80 ** D80 - NOT_ON_TIMER , // PD 4 ** 81 ** D81 - NOT_ON_TIMER , // PD 5 ** 82 ** D82 - NOT_ON_TIMER , // PD 6 ** 83 ** D83 - NOT_ON_TIMER , // PH 2 ** 84 ** D84 - NOT_ON_TIMER , // PH 7 ** 85 ** D85 -}; - -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h b/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h deleted file mode 100644 index 499952dc94..0000000000 --- a/ArduinoAddons/Arduino_1.5.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ - - Changelog - ----------- - 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P - 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER5A 14 -#define TIMER5B 15 -#define TIMER5C 16 - -const static uint8_t SS = 4; -const static uint8_t MOSI = 5; -const static uint8_t MISO = 6; -const static uint8_t SCK = 7; - -static const uint8_t SDA = 17; -static const uint8_t SCL = 16; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 31; -static const uint8_t A1 = 30; -static const uint8_t A2 = 29; -static const uint8_t A3 = 28; -static const uint8_t A4 = 27; -static const uint8_t A5 = 26; -static const uint8_t A6 = 25; -static const uint8_t A7 = 24; - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -// extern const uint16_t PROGMEM port_to_mode_PGM[]; -// extern const uint16_t PROGMEM port_to_input_PGM[]; -// extern const uint16_t PROGMEM port_to_output_PGM[]; - -// extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// ATMEL ATMEGA644P / SANGUINO -// -// +---\/---+ -// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) -// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) -// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) -// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) -// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) -// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) -// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) -// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) -// RST 9| |32 AREF -// VCC 10| |31 GND -// GND 11| |30 AVCC -// XTAL2 12| |29 PC7 (D 23) -// XTAL1 13| |28 PC6 (D 22) -// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI -// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO -// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS -// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK -// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA -// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL -// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM -// +--------+ -// -#define NUM_DIGITAL_PINS 24 -#define NUM_ANALOG_INPUTS 8 -#define analogInputToDigitalPin(p) ((p < 7) ? (p) + 24 : -1) - -#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) - -#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ - ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ - ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ - ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ - 0 ) ) ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ - ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ - ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ - ((uint8_t *)0) ) ) ) ) - - -#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ - ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ - ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ - 0 ) ) ) ) - -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 - -#ifdef ARDUINO_MAIN -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, -}; -const uint16_t PROGMEM port_to_input_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, -}; -const uint8_t PROGMEM digital_pin_to_port_PGM[] = -{ - PB, /* 0 */ - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PD, /* 8 */ - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PC, /* 16 */ - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PA, /* 24 */ - PA, - PA, - PA, - PA, - PA, - PA, - PA /* 31 */ -}; -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = -{ - _BV(0), /* 0, port B */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 8, port D */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 16, port C */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(7), /* 24, port A */ - _BV(6), - _BV(5), - _BV(4), - _BV(3), - _BV(2), - _BV(1), - _BV(0) -}; -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = -{ - NOT_ON_TIMER, /* 0 - PB0 */ - NOT_ON_TIMER, /* 1 - PB1 */ - NOT_ON_TIMER, /* 2 - PB2 */ - TIMER0A, /* 3 - PB3 */ - TIMER0B, /* 4 - PB4 */ - NOT_ON_TIMER, /* 5 - PB5 */ - NOT_ON_TIMER, /* 6 - PB6 */ - NOT_ON_TIMER, /* 7 - PB7 */ - NOT_ON_TIMER, /* 8 - PD0 */ - NOT_ON_TIMER, /* 9 - PD1 */ - NOT_ON_TIMER, /* 10 - PD2 */ - NOT_ON_TIMER, /* 11 - PD3 */ - TIMER1B, /* 12 - PD4 */ - TIMER1A, /* 13 - PD5 */ - TIMER2B, /* 14 - PD6 */ - TIMER2A, /* 15 - PD7 */ - NOT_ON_TIMER, /* 16 - PC0 */ - NOT_ON_TIMER, /* 17 - PC1 */ - NOT_ON_TIMER, /* 18 - PC2 */ - NOT_ON_TIMER, /* 19 - PC3 */ - NOT_ON_TIMER, /* 20 - PC4 */ - NOT_ON_TIMER, /* 21 - PC5 */ - NOT_ON_TIMER, /* 22 - PC6 */ - NOT_ON_TIMER, /* 23 - PC7 */ - NOT_ON_TIMER, /* 24 - PA0 */ - NOT_ON_TIMER, /* 25 - PA1 */ - NOT_ON_TIMER, /* 26 - PA2 */ - NOT_ON_TIMER, /* 27 - PA3 */ - NOT_ON_TIMER, /* 28 - PA4 */ - NOT_ON_TIMER, /* 29 - PA5 */ - NOT_ON_TIMER, /* 30 - PA6 */ - NOT_ON_TIMER /* 31 - PA7 */ -}; -#endif -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/boards.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/boards.txt deleted file mode 100644 index fd3c85af6e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/boards.txt +++ /dev/null @@ -1,284 +0,0 @@ -# See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification -# See: http://code.google.com/p/arduino/wiki/Platforms - -############################################################## - -menu.cpu=Processor - -######################################## -## Arduino Mega or Mega 2560 -######################################## - -mega.name=Arduino Mega or Mega 2560 - -mega.vid.0=0x2341 -mega.pid.0=0x0010 -mega.vid.1=0x2341 -mega.pid.1=0x0042 -mega.vid.2=0x2A03 -mega.pid.2=0x0010 -mega.vid.3=0x2A03 -mega.pid.3=0x0042 - -mega.upload.tool=avrdude -mega.upload.maximum_data_size=8192 - -mega.bootloader.tool=avrdude -mega.bootloader.low_fuses=0xFF -mega.bootloader.unlock_bits=0x3F -mega.bootloader.lock_bits=0x0F - -mega.build.f_cpu=16000000L -mega.build.core=arduino -mega.build.variant=mega -# default board may be overridden by the cpu menu -mega.build.board=AVR_MEGA2560 -mega.build.mcu=atmega2560 - -## Arduino Mega w/ ATmega2560 -## ------------------------- -mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560) - -mega.menu.cpu.atmega2560.upload.protocol=wiring -mega.menu.cpu.atmega2560.upload.maximum_size=253952 -mega.menu.cpu.atmega2560.upload.speed=115200 - -mega.menu.cpu.atmega2560.bootloader.high_fuses=0xD8 -mega.menu.cpu.atmega2560.bootloader.extended_fuses=0xFD -mega.menu.cpu.atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex - -mega.menu.cpu.atmega2560.build.mcu=atmega2560 -mega.menu.cpu.atmega2560.build.board=AVR_MEGA2560 - -## Arduino Mega w/ ATmega1280 -## ------------------------- -mega.menu.cpu.atmega1280=ATmega1280 - -mega.menu.cpu.atmega1280.upload.protocol=arduino -mega.menu.cpu.atmega1280.upload.maximum_size=126976 -mega.menu.cpu.atmega1280.upload.speed=57600 - -mega.menu.cpu.atmega1280.bootloader.high_fuses=0xDA -mega.menu.cpu.atmega1280.bootloader.extended_fuses=0xF5 -mega.menu.cpu.atmega1280.bootloader.file=atmega/ATmegaBOOT_168_atmega1280.hex - -mega.menu.cpu.atmega1280.build.mcu=atmega1280 -mega.menu.cpu.atmega1280.build.board=AVR_MEGA - -######################################## -## RAMBo -######################################## -rambo.name=RAMBo - -rambo.upload.tool=arduino:avrdude -rambo.upload.protocol=wiring -rambo.upload.maximum_size=258048 -rambo.upload.speed=115200 - -rambo.bootloader.low_fuses=0xFF -rambo.bootloader.high_fuses=0xD8 -rambo.bootloader.extended_fuses=0xFD -rambo.bootloader.path=stk500v2 -rambo.bootloader.file=stk500boot_v2_mega2560.hex -rambo.bootloader.unlock_bits=0x3F -rambo.bootloader.lock_bits=0x0F - -rambo.build.mcu=atmega2560 -rambo.build.f_cpu=16000000L -rambo.build.board=AVR_RAMBO -rambo.build.core=arduino:arduino -rambo.build.variant=rambo - -######################################## -## Sanguino -######################################## -sanguino.name=Sanguino - -sanguino.upload.tool=arduino:avrdude -sanguino.upload.protocol=arduino -sanguino.upload.maximum_size=131072 -sanguino.upload.speed=57600 - -sanguino.bootloader.low_fuses=0xD6 -sanguino.bootloader.high_fuses=0xDA -sanguino.bootloader.extended_fuses=0xFD -sanguino.bootloader.path=atmega -sanguino.bootloader.unlock_bits=0x3F -sanguino.bootloader.lock_bits=0x0F - -sanguino.build.mcu=atmega1284p -sanguino.build.f_cpu=16000000L -sanguino.build.board=AVR_SANGUINO -sanguino.build.core=arduino:arduino -sanguino.build.variant=sanguino - -sanguino.menu.cpu.atmega644=ATmega644P -sanguino.menu.cpu.atmega644.upload.maximum_size=63488 -sanguino.menu.cpu.atmega644.bootloader.low_fuses=0xFF -sanguino.menu.cpu.atmega644.bootloader.high_fuses=0x9A -sanguino.menu.cpu.atmega644.bootloader.extended_fuses=0xFF -sanguino.menu.cpu.atmega644.bootloader.file=ATmegaBOOT_168_atmega644p.hex -sanguino.menu.cpu.atmega644.build.mcu=atmega644p - -sanguino.menu.cpu.atmega12848m=ATmega1284p 8MHz -sanguino.menu.cpu.atmega12848m.upload.speed=19200 -sanguino.menu.cpu.atmega12848m.bootloader.file=ATmegaBOOT_168_atmega1284p_8m.hex -sanguino.menu.cpu.atmega12848m.build.f_cpu=8000000L - -sanguino.menu.cpu.atmega1284=ATmega1284p 16MHz -sanguino.menu.cpu.atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex - -sanguino.menu.cpu.atmega1284m=ATmega1284p 20MHz -sanguino.menu.cpu.atmega1284m.bootloader.file=ATmegaBOOT_168_atmega1284p.hex -sanguino.menu.cpu.atmega1284m.build.f_cpu=20000000L - -######################################## -## Brainwave -######################################## -Brainwave.name=Brainwave - -Brainwave.bootloader.tool=avrdude -Brainwave.bootloader.low_fuses=0xFF -Brainwave.bootloader.high_fuses=0x99 -Brainwave.bootloader.extended_fuses=0xF0 -Brainwave.bootloader.unlock_bits=0x3F -Brainwave.bootloader.lock_bits=0x02F -Brainwave.bootloader.path=brainwave -Brainwave.bootloader.file=Brainwave-646-LUFA.hex - -Brainwave.upload.tool=avrdude -Brainwave.upload.protocol=avr109 -Brainwave.upload.maximum_size=61440 -Brainwave.upload.speed=115200 -Brainwave.upload.disable_flushing=true - -Brainwave.build.mcu=at90usb646 -Brainwave.build.f_cpu=16000000L -Brainwave.build.board=AVR_BRAINWAVE -Brainwave.build.core=at90usb -Brainwave.build.dependency=true -Brainwave.build.variant=brainwave -Brainwave.build.vid=0x16D0 -Brainwave.build.pid=0x076B - -######################################## -## BrainwavePro (CDC) -######################################## -BrainwavePro.name=Brainwave Pro (CDC) - -BrainwavePro.bootloader.tool=avrdude -BrainwavePro.bootloader.low_fuses=0xFF -BrainwavePro.bootloader.high_fuses=0x9B -BrainwavePro.bootloader.extended_fuses=0xF0 -BrainwavePro.bootloader.unlock_bits=0x3F -BrainwavePro.bootloader.lock_bits=0x02F -BrainwavePro.bootloader.path=at90usb -BrainwavePro.bootloader.file=BrainwavePro-1286-LUFA.hex - -BrainwavePro.upload.tool=avrdude -BrainwavePro.upload.protocol=avr109 -BrainwavePro.upload.maximum_size=126976 -BrainwavePro.upload.speed=115200 -BrainwavePro.upload.disable_flushing=true - -BrainwavePro.build.mcu=at90usb1286 -BrainwavePro.build.f_cpu=16000000L -BrainwavePro.build.board=AVR_BRAINWAVEPRO -BrainwavePro.build.core=at90usb -BrainwavePro.build.dependency=true -BrainwavePro.build.variant=at90usb -BrainwavePro.build.vid=0x16D0 -BrainwavePro.build.pid=0x076B -BrainwavePro.build.extra_flags=-DAT90USBxx_TEENSYPP_ASSIGNMENTS -DUSB_VID={build.vid} -DUSB_PID={build.pid} - -######################################## -## KosselPro -- BrainwavePro with HID boot -######################################## -KosselPro.name=Kossel Pro (HID Bootloader) - -KosselPro.bootloader.tool=avrdude -KosselPro.bootloader.low_fuses=0xFF -KosselPro.bootloader.high_fuses=0x9B -KosselPro.bootloader.extended_fuses=0xF0 -KosselPro.bootloader.unlock_bits=0x3F -KosselPro.bootloader.lock_bits=0x02F -KosselPro.bootloader.path=at90usb -KosselPro.bootloader.file=BootloaderHID.hex - -KosselPro.upload.tool=hidloader -KosselPro.upload.protocol=halfkay -KosselPro.upload.maximum_size=126976 -KosselPro.upload.maximum_ram_size=8192 -KosselPro.upload.speed=115200 -KosselPro.upload.disable_flushing=true - -KosselPro.build.mcu=at90usb1286 -KosselPro.build.f_cpu=16000000L -KosselPro.build.board=AVR_BRAINWAVEPRO -KosselPro.build.core=at90usb -KosselPro.build.dependency=true -KosselPro.build.variant=at90usb -KosselPro.build.vid=0x16D0 -KosselPro.build.pid=0x076B -KosselPro.build.extra_flags=-DAT90USBxx_TEENSYPP_ASSIGNMENTS -DUSB_VID={build.vid} -DUSB_PID={build.pid} - -######################################## -## SAVMkI (CDC) -######################################## -SAVMkI.name=SAV MkI (CDC) - -SAVMkI.bootloader.tool=avrdude -SAVMkI.bootloader.low_fuses=0xDE -SAVMkI.bootloader.high_fuses=0xDB -SAVMkI.bootloader.extended_fuses=0xF1 -SAVMkI.bootloader.unlock_bits=0x3F -SAVMkI.bootloader.lock_bits=0x02F -SAVMkI.bootloader.path=SAVMkI -SAVMkI.bootloader.file=SAVMkI-1286-LUFA.hex - -SAVMkI.upload.tool=avrdude -SAVMkI.upload.protocol=avr109 -SAVMkI.upload.maximum_size=126976 -SAVMkI.upload.speed=115200 -SAVMkI.upload.disable_flushing=true - -SAVMkI.build.mcu=at90usb1286 -SAVMkI.build.f_cpu=16000000L -SAVMkI.build.board=AVR_SAVMkI -SAVMkI.build.core=at90usb -SAVMkI.build.dependency=true -SAVMkI.build.variant=at90usb -SAVMkI.build.vid=0x16D0 -SAVMkI.build.pid=0x076B -SAVMkI.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} - -######################################## -## SAVMkI (HID) -######################################## -SAVMkI_HID.name=SAV MkI (HID Bootloader) - -SAVMkI_HID.bootloader.tool=avrdude -SAVMkI_HID.bootloader.low_fuses=0xDE -SAVMkI_HID.bootloader.high_fuses=0xDB -SAVMkI_HID.bootloader.extended_fuses=0xF1 -SAVMkI_HID.bootloader.unlock_bits=0x3F -SAVMkI_HID.bootloader.lock_bits=0x02F -SAVMkI_HID.bootloader.path=SAVMkI -SAVMkI_HID.bootloader.file=SAVMkI_HID.hex - -SAVMkI_HID.upload.tool=hidloader -SAVMkI_HID.upload.protocol=halfkay -SAVMkI_HID.upload.maximum_size=126976 -SAVMkI_HID.upload.maximum_ram_size=8192 -SAVMkI_HID.upload.speed=115200 -SAVMkI_HID.upload.disable_flushing=true - -SAVMkI_HID.build.mcu=at90usb1286 -SAVMkI_HID.build.f_cpu=16000000L -SAVMkI_HID.build.board=AVR_SAVMkI -SAVMkI_HID.build.core=at90usb -SAVMkI_HID.build.dependency=true -SAVMkI_HID.build.variant=at90usb -SAVMkI_HID.build.vid=0x16D0 -SAVMkI_HID.build.pid=0x076B -SAVMkI_HID.build.extra_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/BootloaderHID.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/BootloaderHID.hex deleted file mode 100644 index 31134c84e7..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/BootloaderHID.hex +++ /dev/null @@ -1,139 +0,0 @@ -:020000021000EC -:10F000004BC0000077C0000075C0000073C0000056 -:10F0100071C000006FC000006DC000006BC0000038 -:10F0200069C0000067C0000028C2000063C0000083 -:10F0300061C000005FC000005DC000005BC0000058 -:10F0400059C0000057C0000055C0000053C0000068 -:10F0500051C000004FC000004DC000004BC0000078 -:10F0600049C0000047C0000045C0000043C0000088 -:10F0700041C000003FC000003DC000003BC0000098 -:10F0800039C0000037C0000035C0000033C00000A8 -:10F0900031C000002FC0000011241FBECFEFD0E20E -:10F0A000DEBFCDBF04B603FE0EC080915401909127 -:10F0B000550182349C4D39F410925501109254013F -:10F0C000E0E0F0E0099511E0A0E0B1E0E8E2F8EF5F -:10F0D00001E00BBF02C007900D92AA34B107D9F727 -:10F0E00021E0AAE4B1E001C01D92A435B207E1F726 -:10F0F00002D098C385CF84B7877F84BF88E10FB6DD -:10F10000F89480936000109260000FBE81E085BF8C -:10F1100082E085BF97D1789480910001882311F017 -:10F1200066D3FACF8091E00081608093E00082E4B2 -:10F130009CED90935501809354012CE088E190E080 -:10F140000FB6F894A895809360000FBE20936000DE -:10F15000FFCF42E361EC81E002C1CF92DF92EF92F8 -:10F16000FF921F93CF93DF9380914C018F77813271 -:10F1700009F075C080914D01893009F070C080910F -:10F18000E800877F8093E8008091E80082FFFCCF51 -:10F190009091F1008091F100492F582F60E070E0CC -:10F1A000B62FA52F942F88274F3F5F4F19F4109249 -:10F1B00000013EC023E0FC01A0935B0020935700B8 -:10F1C000E89507B600FCFDCF20E030E011E040916B -:10F1D000F2005091F300452B09F437C05091F10033 -:10F1E0004091F100C52FD42FA901440F551F6C0188 -:10F1F0007D01C40ED51EE11CF11C0E01F601E0924A -:10F200005B0010935700E89511242F5F3F4F203883 -:10F210003105E9F625E0FC01A0935B00209357003F -:10F22000E89507B600FCFDCF81E180935700E89593 -:10F230008091E8008B778093E800DF91CF911F9158 -:10F24000FF90EF90DF90CF909EC04091E8004B7709 -:10F250004093E8004091E80042FFFCCFBFCFDF9130 -:10F26000CF911F91FF90EF90DF90CF900895913054 -:10F2700049F0923061F0913279F489E090E023E135 -:10F2800031E00EC082E190E023E231E009C082E289 -:10F2900090E021E031E004C085E190E025E331E039 -:10F2A000FA01318320830895209152013091530156 -:10F2B0002617370748F06115710539F42091E800E9 -:10F2C0002E772093E80001C0B901FC0120E0611510 -:10F2D000710591F18EB38823E1F18530E1F18091E0 -:10F2E000E80083FD3AC08091E80082FF06C080916B -:10F2F000E80082FF24C080E008958091E80080FF4C -:10F30000E6CF8091F2009091F3006115710551F004 -:10F310008830910538F421912093F10061507109F2 -:10F320000196F3CF21E0089709F020E08091E800F2 -:10F330008E778093E800CBCF2111CCCFD8CF8EB37E -:10F34000882339F0853039F08091E80083FFCFCFF2 -:10F3500004C082E0089583E0089581E008958F70ED -:10F360008093E900EBEEF0E0808181608083EDEE38 -:10F37000F0E010826093EC0040838091EE00881FE3 -:10F380008827881F089580914C0187FD05C08091D2 -:10F39000E80080FF0DC010C08091E80082FD04C02D -:10F3A0008EB38111F9CF08958091E8008B7707C063 -:10F3B0008EB38111ECCF08958091E8008E77809311 -:10F3C000E80008950F931F93CF93DF9349D050D057 -:10F3D000C8EDD0E088818F778883888180688883B2 -:10F3E00088818F7D8883E7EDF0E08081806880836D -:10F3F00019BC1EBA10924A0100EE10E0F80180819B -:10F400008B7F808388818160888342E060E080E038 -:10F41000A6DFE1EEF0E080818E7F8083E2EEF0E017 -:10F42000808181608083808188608083F801808111 -:10F430008E7F8083888180618883DF91CF911F9147 -:10F440000F910895E8EDF0E080818F7E8083E7EDF5 -:10F45000F0E080818160808381E080934B01B2CFB6 -:10F46000E8EDF0E080818C7F80831092E2000895C7 -:10F470001092DA001092E10008951F920F920FB6D9 -:10F480000F9211240BB60F922F933F934F935F93DC -:10F490006F937F938F939F93AF93BF93EF93FF935C -:10F4A0008091DA0080FF1BC08091D80080FF17C0D8 -:10F4B0008091DA008E7F8093DA008091D90080FFFE -:10F4C0000BC084E189BD86E189BD09B400FEFDCF92 -:10F4D00081E08EBB8BD103C019BC1EBA87D180914D -:10F4E000E10080FF17C08091E20080FF13C080918F -:10F4F000E2008E7F8093E2008091E2008061809341 -:10F50000E2008091D80080628093D80019BC85E029 -:10F510008EBB6CD18091E10084FF2EC08091E2000F -:10F5200084FF2AC084E189BD86E189BD09B400FE5B -:10F53000FDCF8091D8008F7D8093D8008091E1002D -:10F540008F7E8093E1008091E2008F7E8093E200C5 -:10F550008091E20081608093E20080914A018823DB -:10F5600011F084E007C08091E30087FF02C083E0D0 -:10F5700001C081E08EBB3AD18091E10083FF21C0C0 -:10F580008091E20083FF1DC08091E100877F80931E -:10F59000E10082E08EBB10924A018091E1008E7FF3 -:10F5A0008093E1008091E2008E7F8093E200809161 -:10F5B000E20080618093E20042E060E080E0CFDE24 -:10F5C00015D1FF91EF91BF91AF919F918F917F9155 -:10F5D0006F915F914F913F912F910F900BBE0F90C4 -:10F5E0000FBE0F901F9018951F93CF93DF9300D0FD -:10F5F000CDB7DEB7ECE4F1E08091F100819381E0DA -:10F60000E435F807C9F7A9DD8091E80083FFDAC087 -:10F6100090914C0180914D01853009F465C030F422 -:10F62000813059F168F0833041F1CCC0883009F461 -:10F630009CC0893009F4ABC0863009F0C3C075C0E6 -:10F64000903881F0923809F0BDC0809150018F70E0 -:10F650008093E9009091EB0095FB992790F9109227 -:10F66000E90001C090E08091E800877F8093E80086 -:10F670009093F1001092F10083C0292F2D7F09F0A3 -:10F68000A1C0923009F09EC090914E01911126C008 -:10F69000209150012F7009F495C02093E9009091BA -:10F6A000EB0090FF1BC0833021F48091EB0080625F -:10F6B00013C08091EB0080618093EB0081E090E0CB -:10F6C000022E01C0880F0A94EAF78093EA00109294 -:10F6D000EA008091EB0088608093EB001092E900D3 -:10F6E0008091E800877F4FC091116CC010914E014E -:10F6F0001F778091E3008078812B8093E3008091D5 -:10F70000E800877F8093E8003EDE8091E80080FF7C -:10F71000FCCF8091E30080688093E300112311F017 -:10F7200083E001C082E08EBB4DC09058923008F05B -:10F7300049C0AE014F5F5F4F6091500180914E0113 -:10F7400090914F0194DD009709F43CC02091E800AE -:10F75000277F2093E800BC0189819A81A5DD8091F3 -:10F76000E8008B778093E8002DC0903859F58091A0 -:10F77000E800877F8093E80080914A018093F10040 -:10F780008091E8008E778093E800FDDD1BC0911129 -:10F7900019C090914E019230A8F48091E800877FC3 -:10F7A0008093E80090934A01EEDD80914A01811137 -:10F7B00004C08091E30087FF02C084E001C081E0C3 -:10F7C0008EBBC7DC8091E80083FF0AC08091E8000F -:10F7D000877F8093E8008091EB0080628093EB004C -:10F7E0000F900F90DF91CF911F9108950895CF93BF -:10F7F0008EB38823A9F08091E9008F709091EC007E -:10F8000090FF02C090E801C090E0C92FC82B109271 -:10F81000E9008091E80083FDE7DECF70C093E90046 -:08F82000CF910895F894FFCF89 -:10F8280001090222000101008032090400000103DD -:10F8380000000009211101000122150007058103BC -:10F848004000051201100100000008EB03672001C9 -:10F85800000000000106DCFF09FBA10109021500F8 -:0AF8680025FF75089602019102C009 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-1286-LUFA.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-1286-LUFA.hex deleted file mode 100644 index 99f0f36b35..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-1286-LUFA.hex +++ /dev/null @@ -1,247 +0,0 @@ -:020000021000EC -:10F000004BC0000066C0000064C0000062C0000089 -:10F0100060C000005EC000005CC000005AC000007C -:10F0200058C0000056C00000ACC4000052C0000030 -:10F0300050C000004EC000004CC000004AC000009C -:10F0400048C0000046C0000044C0000042C00000AC -:10F0500040C000003EC000003CC000003AC00000BC -:10F0600038C0000036C0000034C0000032C00000CC -:10F0700030C000002EC000002CC000002AC00000DC -:10F0800028C0000026C0000024C0000022C00000EC -:10F0900020C000001EC0000011241FBECFEFD0E230 -:10F0A000DEBFCDBF11E0A0E0B1E0E4EAFEEF01E099 -:10F0B0000BBF02C007900D92AC38B107D9F711E031 -:10F0C000ACE8B1E001C01D92AD39B107E1F72FD333 -:10F0D000E7C696CF84E08093E9000DC08091E800F8 -:10F0E0008B778093E80003C08EB3882359F080911A -:10F0F000E80082FFF9CF8091E80085FFEFCF809193 -:10F10000F100089580E0089593E09093E9009091D4 -:10F11000E80095FD0DC09091E8009E779093E8007F -:10F1200003C09EB3992331F09091E80090FFF9CF8E -:10F130008093F100089584B7877F84BF88E10FB67C -:10F14000F89480936000109260000FBE90E080E819 -:10F150000FB6F89480936100909361000FBE81E038 -:10F1600085BF82E085BFF7C382E061EC42E079D3DE -:10F1700083E061E842E175D384E060E842E171C375 -:10F18000809196018032B1F0813239F580919501FC -:10F19000813A19F58091E800877F8093E80088E044 -:10F1A00091E067E070E0BAD58091E8008B778093BA -:10F1B000E800089580919501813279F48091E8000A -:10F1C000877F8093E80088E091E067E070E001D6F7 -:10F1D0008091E8008E778093E80008952F923F9207 -:10F1E0005F926F927F928F929F92AF92BF92CF92D7 -:10F1F000DF92EF92FF920F931F93DF93CF930F92C3 -:10F20000CDB7DEB784E08093E9008091E80082FF0B -:10F210007BC210928C015EDF182F8C3409F421C25E -:10F22000803509F41EC2843529F0853429F4109202 -:10F230000F0117C24FDF15C2843711F484E448C0B0 -:10F24000813611F489E536C28134F1F443DF382F79 -:10F25000330F20E079010027F7FC0095102FE09292 -:10F260008F01F0929001009391011093920132DF8F -:10F2700090E0880F991FAA2797FDA095BA2F8E2995 -:10F280009F29A02BB12BE5C1803711F483E512C271 -:10F29000833559F400E011E0D8018D918D0134DF00 -:10F2A000B1E007301B07C1F706C2863521F481E3C0 -:10F2B0002BDF80E3FFC1833731F482E825DF87E964 -:10F2C00023DF8EE1F7C1823631F489E51DDF81E06D -:10F2D0001BDF80E0EFC1853621F580E090E0DC01A6 -:10F2E00033E025E0FC01A0935B0030935700E895E4 -:10F2F00007B600FCFDCFFC01A0935B0020935700F4 -:10F30000E89507B600FCFDCF8F5F9E4FAF4FBF4F14 -:10F310008F3EE0EF9E07E1E0AE07E0E0BE0711F7A9 -:10F32000A0C18C3651F4D6DE809599E0E1E0F0E0A2 -:10F33000082E90935700E89594C1823719F4E1E0C4 -:10F34000F0E00EC0863419F4E0E0F0E009C08E343D -:10F3500019F4E3E0F0E004C0813539F4E2E0F0E0D4 -:10F3600089E0809357008491A5C18334A1F4E09093 -:10F370008F01F09090010091910110919201AADE0D -:10F3800090E021E00C01F70100935B00209357000F -:10F39000E895112466C18336E1F4E0908F01F09086 -:10F3A0009001009191011091920181E090E0A0E024 -:10F3B000B0E0E82AF92A0A2B1B2B8CDE90E021E032 -:10F3C0000C01F70100935B0020935700E89511248E -:10F3D00035C18D3699F480918F0190919001A09163 -:10F3E0009101B091920125E0FC01A0935B00209374 -:10F3F0005700E89507B600FCFDCF33C1823419F001 -:10F40000873609F0F7C066DEE82E64DE082F62DE7C -:10F41000982E8554823008F04CC13E2D20E0202EDD -:10F420003324222A332A173609F058C081E1809309 -:10F430005700E89510E001E04CC020918F01309119 -:10F4400090014091910150919201992D963419F5B6 -:10F45000812F90E0A0E0B0E0822B932BA42BB52B62 -:10F46000ABBFFC01879150DE112399F080918F0191 -:10F4700090919001A0919101B09192010296A11DED -:10F48000B11D80938F0190939001A0939101B0934F -:10F49000920110271BC0DA01C901B695A79597956F -:10F4A0008795E8D431DE80918F0190919001A091F1 -:10F4B0009101B09192010296A11DB11D80938F011F -:10F4C00090939001A0939101B09392010894210828 -:10F4D00031082114310409F0B0CFEDC0A0908F01A4 -:10F4E000B0909001C0909101D0909201A92DA634C6 -:10F4F00009F069C083E0F501C0925B00809357007A -:10F50000E89507B600FCFDCF5EC0B92DB63491F585 -:10F51000222361F1E0908F01F09090010091910120 -:10F5200010919201D7DD782E6624282D30E026290F -:10F5300037290901F70100935B0050925700E895C5 -:10F54000112480918F0190919001A0919101B0912F -:10F5500092010296A11DB11D80938F01909390019D -:10F56000A0939101B093920120E029C0B3DD882ED1 -:10F5700021E025C0E0908F01F09090010091910171 -:10F580001091920116950795F794E7942983A2DDCF -:10F59000682FC70177D480918F0190919001A0913D -:10F5A0009101B09192010296A11DB11D80938F012E -:10F5B00090939001A0939101B093920129810894B6 -:10F5C0002108310804C0882420E0552453942114D4 -:10F5D000310409F09ACFE92DE63409F042C085E004 -:10F5E000F501C0925B0080935700E89507B600FCD8 -:10F5F000FDCF37C0823581F480918F0190919001C9 -:10F60000A0919101B0919201ABBFFC0107911691BD -:10F61000812F7ADD802F4EC0843429F5E0908F0150 -:10F62000F09090010091910110919201169507952B -:10F63000F794E7944FDD682FC70124D480918F01A0 -:10F6400090919001A0919101B09192010296A11D1B -:10F65000B11D80938F0190939001A0939101B0937D -:10F6600092018DE027C0843611F580918F01909131 -:10F670009001A0919101B0919201B695A7959795AF -:10F680008795F8D341DD80918F0190919001A091F1 -:10F690009101B09192010296A11DB11D80938F013D -:10F6A00090939001A0939101B093920104C08B318B -:10F6B00011F08FE329DD83E08093E9009091E80069 -:10F6C0008091E8008E778093E80095FF04C010C019 -:10F6D0008EB38823C9F08091E80080FFF9CF809134 -:10F6E000E8008E778093E80003C08EB3882361F032 -:10F6F0008091E80080FFF9CF84E08093E900809159 -:10F70000E8008B778093E8000F90CF91DF911F91F5 -:10F710000F91FF90EF90DF90CF90BF90AF909F90B0 -:10F720008F907F906F905F903F902F900895EF9211 -:10F73000FF920F931F93DF93CF930F92CDB7DEB756 -:10F7400084B714BE9091600098619093600010920D -:10F75000600010928C0190E0FC01E270F07081FD7D -:10F760000BC0859194912FEF8F3F920729F0E09184 -:10F770008D01F0918E010995209A289A6F9A779AB7 -:10F780006D9A759A3B9A439AD6DC6F9A779A7894D9 -:10F7900081E010E000E0E0E0F0E0E590F49025C0CA -:10F7A00089831CDD55D30F5F8981002311F4180F65 -:10F7B000779A011709F477981F3F59F0112351F4F4 -:10F7C000813041F080918C018F5F80938C0181E0CA -:10F7D00001C08FEF90918C01923338F09FEFE916C2 -:10F7E0009FEFF90611F010920F0190910F019923EC -:10F7F000B9F68091E00081608093E0002CE088E120 -:10F8000090E00FB6F894A895809360000FBE209307 -:10F810006000FFCF923049F0933061F09130C1F039 -:10F8200020E030E080E090E017C02EE330E082E29C -:10F8300091E012C0882331F42091600130E080E62D -:10F8400091E00AC02091640130E084E691E004C0B8 -:10F8500022E130E080E191E0FA0191838083C901E7 -:10F8600008958093E900EBEEF0E080818160808371 -:10F87000EDEEF0E010826093EC0040838091EE00AA -:10F88000881F8827881F08958091950187FF11C0E0 -:10F8900003C08EB38823B1F08091E80082FFF9CFD6 -:10F8A0008091E8008B778093E80008958EB38823D9 -:10F8B00049F08091E80080FFF9CF8091E8008E77D1 -:10F8C0008093E800089550D057D08091D800982FA9 -:10F8D0009F779093D80080688093D80084E189BD99 -:10F8E00089B5826089BD09B400FEFDCF8091D80042 -:10F8F0008F7D8093D8008091D70080688093D70057 -:10F900001EBA109293018091E0008B7F8093E000FB -:10F910008091D80081608093D80080E060E042E070 -:10F92000A0DF8091E1008E7F8093E1008091E20072 -:10F9300081608093E2008091E20088608093E20021 -:10F940008091E0008E7F8093E0008091D8008061FC -:10F950008093D8000895E7EDF0E080818160808396 -:10F9600081E080939401AFCFE8EDF0E080818C7F5F -:10F9700080831092E20008951092DA001092E10064 -:10F9800008951F920F920FB60F920BB60F9211248B -:10F990002F933F934F935F936F937F938F939F9397 -:10F9A000AF93BF93EF93FF938091DA0080FF13C072 -:10F9B0008091D80080FF0FC08091DA008E7F809305 -:10F9C000DA008091D90080FF04C081E08EBBA5D110 -:10F9D00002C01EBAA2D18091E10080FF1CC08091BC -:10F9E000E20080FF18C08091E1008E7F8093E100EB -:10F9F0008091E2008E7F8093E2008091E20080613E -:10FA00008093E2008091D80080628093D80019BC76 -:10FA100085E08EBB82D18091E10084FF2DC0809172 -:10FA2000E20084FF29C084E189BD89B5826089BD77 -:10FA300009B400FEFDCF8091D8008F7D8093D8005F -:10FA40008091E1008F7E8093E1008091E2008F7EC3 -:10FA50008093E2008091E20081608093E2008091D7 -:10FA60009301882321F48091E30087FF02C084E0A2 -:10FA700001C081E08EBB51D18091E10083FF21C0A4 -:10FA80008091E20083FF1DC08091E100877F809319 -:10FA9000E10082E08EBB109293018091E1008E7FA5 -:10FAA0008093E1008091E2008E7F8093E20080915C -:10FAB000E20080618093E20080E060E042E0D1DE1D -:10FAC0002CD18091E10082FF0AC08091E20082FF88 -:10FAD00006C08091E1008B7F8093E1001ED1FF91F1 -:10FAE000EF91BF91AF919F918F917F916F915F91B6 -:10FAF0004F913F912F910F900BBE0F900FBE0F9023 -:10FB00001F9018950F931F93DF93CF9300D0CDB71D -:10FB1000DEB7E5E9F1E08091F100819381E0ED3914 -:10FB2000F807C9F78091950190919601953009F4F5 -:10FB30006BC0963040F4913061F1913070F09330A9 -:10FB400009F0D5C026C0983009F4A3C0993009F453 -:10FB5000B2C0963009F0CBC07CC0803809F4C8C070 -:10FB6000823809F0C4C08091990187708093E900C0 -:10FB70009091EB001092E9008091E800877F8093DC -:10FB8000E80081E095FF80E08093F1001092F100A1 -:10FB90008BC0882319F0823009F0A9C08F718230A0 -:10FBA00009F0A6C080919701882341F52091990121 -:10FBB000277009F49DC02093E9008091EB0080FF3D -:10FBC0001DC080919601833021F48091EB0080620A -:10FBD00013C08091EB0080618093EB0081E090E0A6 -:10FBE00002C0880F991F2A95E2F78093EA001092CD -:10FBF000EA008091EB0088608093EB001092E900AE -:10FC00008091E800877F53C0882309F070C010916D -:10FC100097011F770FB7F8948091E800877F809352 -:10FC2000E80032DE8091E80080FFFCCF112311F064 -:10FC300083E001C082E08EBB8091E3008078812B5D -:10FC40008093E3008091E30080688093E3000FBF1E -:10FC50004FC08058823008F04AC08091970190913F -:10FC6000980160919901AE014F5F5F4FD3DDBC01F8 -:10FC7000009709F43DC08091E800877F8093E800F9 -:10FC800089819A814BD08091E8008B778093E8003E -:10FC90002FC0803861F58091E800877F8093E8006D -:10FCA000809193018093F1008091E8008E7780939A -:10FCB000E800EADD1DC08823D1F4909197019230CD -:10FCC000B8F48091E800877F8093E80090939301D7 -:10FCD000DBDD80919301882321F48091E30087FF8D -:10FCE00002C084E001C081E08EBB3EDA01C048DA88 -:10FCF0008091E80083FF0AC08091EB0080628093CE -:10FD0000EB008091E800877F8093E8000F900F90D0 -:10FD1000CF91DF911F910F9108950895282F392FCA -:10FD2000F90180919B0190919C018617970718F427 -:10FD3000BC0120E035C061157105D9F78091E8005C -:10FD40008E778093E800F5CF8EB38823F1F185306C -:10FD5000C1F18091E80083FD36C08091E80082FD0A -:10FD60002AC08091E80080FF1BC08091F200909132 -:10FD7000F30006C021912093F1006150704001967C -:10FD80006115710519F088309105A0F321E08830E4 -:10FD9000910509F020E08091E8008E778093E800DB -:10FDA0006115710589F6222379F605C08EB3882383 -:10FDB00061F0853061F08091E80082FFF7CF80E04C -:10FDC000089583E0089581E0089582E0089583E036 -:10FDD00008956115710529F51FC02EB32223A1F1E5 -:10FDE000253071F12091E80023FD2CC02091E8001E -:10FDF00022FFF3CFE82FF92F07C08091F100819304 -:10FE0000CF016150704041F0CF012091F20030915C -:10FE1000F3002115310589F72091E8002B77209315 -:10FE2000E80061157105C9F605C08EB3882361F03D -:10FE3000853061F08091E80080FFF7CF80E0089581 -:10FE400083E0089581E0089582E0089583E00895B5 -:10FE50001F938EB3882361F01091E9001770109200 -:10FE6000E9008091E80083FF01C04CDE1093E900B7 -:10FE70001F910895F999FECF92BD81BDF89A9927F7 -:10FE800080B50895262FF999FECF1FBA92BD81BD86 -:10FE900020BD0FB6F894FA9AF99A0FBE019608950C -:04FEA000F894FFCF04 -:10FEA4004C55464143444300000000000000080153 -:10FEB40012011001020000089A2301000100000150 -:10FEC400000109023E000201008032090400000121 -:10FED4000202010005240010010424020405240682 -:10FEE40000010705820308000209040100020A0058 -:10FEF400000007050402100000070583021000003B -:10FF04000403090426034100560052002000430064 -:10FF140044004300200042006F006F0074006C0036 -:0CFF24006F0061006400650072000000C6 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-CDC.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-CDC.hex deleted file mode 100755 index 7694b3560b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/SAVMkI/SAVMkI-CDC.hex +++ /dev/null @@ -1,249 +0,0 @@ -:020000021000EC -:10F000004BC0000066C0000064C0000062C0000089 -:10F0100060C000005EC000005CC000005AC000007C -:10F0200058C0000056C00000B9C4000052C0000023 -:10F0300050C000004EC000004CC000004AC000009C -:10F0400048C0000046C0000044C0000042C00000AC -:10F0500041C000003EC000003CC000003AC00000BB -:10F0600038C0000036C0000034C0000032C00000CC -:10F0700030C000002EC000002CC000002AC00000DC -:10F0800028C0000026C0000024C0000022C00000EC -:10F0900020C000001EC0000011241FBECFEFD0E230 -:10F0A000DEBFCDBF11E0A0E0B1E0EEEAFEEF01E08F -:10F0B0000BBF02C007900D92AC38B107D9F711E031 -:10F0C000ACE8B1E001C01D92AA39B107E1F778D0F0 -:10F0D000ECC696CF1F920F920FB60F9211240F908D -:10F0E0000FBE0F901F90189584E08093E9000DC02B -:10F0F0008091E8008B778093E80003C08EB388236B -:10F1000051F08091E80082FFF9CF8091E80085FFFF -:10F11000EFCF8091F1000895982F83E08093E9006C -:10F120008091E80085FD0DC08091E8008E77809386 -:10F13000E80003C08EB3882331F08091E80080FF9F -:10F14000F9CF9093F100089590919201892F8F77D4 -:10F15000813249F5809193018032A1F0813219F515 -:10F16000913A09F58091E800877F8093E80088E074 -:10F1700091E067E070E0C7D48091E8008B778093DE -:10F18000E8000895913279F48091E800877F8093B8 -:10F19000E80088E091E067E070E011D58091E80038 -:10F1A0008E778093E800089582E061EC42E06AD3B4 -:10F1B00083E061E842E166D384E060E842E162C353 -:10F1C0002F923F924F925F926F927F928F929F9277 -:10F1D000AF92BF92CF92DF92EF92FF920F931F9365 -:10F1E000DF93CF9300D000D0CDB7DEB784B7877F51 -:10F1F00084BF88E10FB6F89480936000109260009D -:10F200000FBE80E090E020E80FB6F89420936100F4 -:10F21000809361000FBE11E015BF82E085BFA8D3C7 -:10F2200010936F0083E080938100789479E0672EDB -:10F230008FC224E02093E9008091E80082FF87C21A -:10F2400053DF182F853419F410920F0103C0843551 -:10F2500019F44ADF8DE051C28C34E1F38035D1F3EB -:10F26000843711F484E49AC0813611F489E545C2EB -:10F270008134F1F439DF382E330C22247101002758 -:10F28000F7FC0095102FE0928C01F0928D01009315 -:10F290008E0110938F0128DF90E0880F991FAA2715 -:10F2A00097FDA095BA2F8E299F29A02BB12BF6C1CF -:10F2B000803711F483E521C2833559F400E011E071 -:10F2C000D8018D918D0128DFB1E007301B07C1F710 -:10F2D00015C2863521F481E31FDF80E30EC2833738 -:10F2E00031F482E819DF87E917DF8EE106C285363F -:10F2F00029F580E090E0A0E0B0E023E0FC01A093DD -:10F300005B0020935700E89507B600FCFDCF35E081 -:10F31000FC01A0935B0030935700E89507B600FC12 -:10F32000FDCF80509F4FAF4FBF4F803060EF9607AB -:10F3300061E0A60760E0B60701F78CCF8C3649F490 -:10F34000D3DE8095E1E0F0E0082E60925700E8956A -:10F3500081CF823731F4E1E0F0E060925700849190 -:10F36000CCC1863431F4E0E0F0E060925700849143 -:10F37000C4C18E3431F4E3E0F0E060925700849130 -:10F38000BCC1813531F4E2E0F0E060925700849135 -:10F39000B4C1823631F489E5BFDE81E0BDDE80E0B4 -:10F3A000ACC1823419F0873609F0F5C09DDE082F14 -:10F3B0009BDEF82E99DE882E8554823008F09CC1A1 -:10F3C0000A8319822F2D30E089819A81282B392BCD -:10F3D0003C832B83173609F055C091E19093570079 -:10F3E000E895DD2449C0E0908C01F0908D010091FA -:10F3F0008E0110918F01A6E48A1609F58D2D90E0FB -:10F40000A0E0B0E08E299F29A02BB12BABBFFC015F -:10F41000879182DEDD2081F082E090E0A0E0B0E024 -:10F42000E80EF91E0A1F1B1FE0928C01F0928D015D -:10F4300000938E0110938F0191E0D92618C0D80156 -:10F44000C701B695A7959795879519D565DE82E092 -:10F4500090E0A0E0B0E0E80EF91E0A1F1B1FE0924A -:10F460008C01F0928D0100938E0110938F01AB817E -:10F47000BC811197BC83AB83EB81FC81EF2B09F03E -:10F48000B2CF3CC1A0908C01B0908D01C0908E0194 -:10F49000D0908F01F6E48F1609F067C023E0F501E4 -:10F4A000C0925B0020935700E89507B600FCFDCFA3 -:10F4B0005CC036E4831681F5992049F1E0908C0117 -:10F4C000F0908D0100918E0110918F010DDE582E6C -:10F4D0004424872D90E08429952961E00C01F701EF -:10F4E00000935B0060935700E895112482E090E060 -:10F4F000A0E0B0E0E80EF91E0A1F1B1FE0928C018D -:10F50000F0928D0100938E0110938F0102C0ECDD0B -:10F51000782E91E0992623C0E0908C01F0908D0127 -:10F5200000918E0110918F0116950795F794E7943D -:10F53000DBDD682FC701ABD480918C0190918D01E8 -:10F54000A0918E01B0918F010296A11DB11D8093F3 -:10F550008C0190938D01A0938E01B0938F01AB81AC -:10F56000BC811197BC83AB8302C077249924EB81C3 -:10F57000FC81EF2B09F09DCFF6E48F1609F06ACEDF -:10F5800025E0F501C0925B0020935700E89507B68F -:10F5900000FCFDCF5FCE8334A1F4E0908C01F090AD -:10F5A0008D0100918E0110918F019EDD90E031E080 -:10F5B0000C01F70100935B0030935700E89511248C -:10F5C00049CE833639F5E0908C01F0908D010091A1 -:10F5D0008E0110918F0188DDA8019701216090E0D4 -:10F5E00061E00C01F90140935B0060935700E895DE -:10F5F000112482E090E0A0E0B0E0E80EF91E0A1FBE -:10F600001B1FE0928C01F0928D0100938E011093EC -:10F610008F0120CE8D3699F480918C0190918D01CF -:10F62000A0918E01B0918F0125E0FC01A0935B00B9 -:10F6300020935700E89507B600FCFDCF0BCE82352E -:10F6400081F4E0908C01F0908D0100918E01109179 -:10F650008F010BBFF701E790F6908F2D5DDD8E2DAA -:10F660004CC0843421F5E0908C01F0908D01009124 -:10F670008E0110918F0116950795F794E79434DD6C -:10F68000682FC70104D480918C0190918D01A091C5 -:10F690008E01B0918F010296A11DB11D80938C0146 -:10F6A00090938D01A0938E01B0938F01D3CD8436BA -:10F6B00009F5E0908C01F0908D0100918E01109180 -:10F6C0008F01D801C701B695A79597958795D7D390 -:10F6D00023DD82E090E0A0E0B0E0E80EF91E0A1F12 -:10F6E0001B1FE0928C01F0928D0100938E0110930C -:10F6F0008F0104C08B3111F08FE30EDD93E0909306 -:10F70000E9009091E8008091E8008E778093E8000E -:10F7100095FF04C010C08EB38823C9F08091E80023 -:10F7200080FFF9CF8091E8008E778093E80003C0D6 -:10F730008EB3882361F08091E80080FFF9CFA4E0C8 -:10F74000A093E9008091E8008B778093E80085D34F -:10F7500080910F01882309F06CCD8091E0008160D9 -:10F760008093E0002CE088E190E00FB6F894A89533 -:10F77000809360000FBE20936000FFCF9B01AC011F -:10F7800007B600FCFDCFF999FECF83E0F901409365 -:10F790005B0080935700E89581E180935700E895DE -:10F7A00008959B01AC0107B600FCFDCFF999FECF8F -:10F7B00085E0F90140935B0080935700E89581E173 -:10F7C00080935700E89508950F931F938B019C0138 -:10F7D00007B600FCFDCFF999FECF81E00A01F801E0 -:10F7E00020935B0080935700E89511241F910F919F -:10F7F000089521E2FC01209357002491822F08955F -:10F8000029E0FC01209357002491822F0895E1E024 -:10F81000F0E089E08093570084910895982F07B60F -:10F8200000FCFDCFF999FECF909589E0E1E0F0E092 -:10F83000092E80935700E8950895FA01923071F0EF -:10F84000933089F0913029F480E191E022E130E0B9 -:10F8500015C080E090E020E030E010C082E291E04E -:10F860002EE330E00BC0882329F480E691E024E009 -:10F8700030E004C084E691E026E230E091838083AA -:10F88000C90108958093E9008091EB008160809325 -:10F89000EB001092ED006093EC004093ED0080913E -:10F8A000EE00881F8827881F089580919201882381 -:10F8B0008CF403C08EB38823B1F08091E80082FFFE -:10F8C000F9CF8091E8008B778093E80008958EB39C -:10F8D000882349F08091E80080FFF9CF8091E8000B -:10F8E0008E778093E8000895EF92FF920F931F9315 -:10F8F00048D04FD008ED10E0F80180818F778083E9 -:10F9000080818068808380818F7D8083E7EDF0E057 -:10F9100080818068808319BC1EBA1092900180EEAD -:10F92000E82EF12CF70180818B7F8083F8018081A4 -:10F930008160808380E060E042E0A4DFE1EEF0E0FF -:10F9400080818E7F8083E2EEF0E080818160808321 -:10F95000808188608083F70180818E7F8083F801B9 -:10F960008081806180831F910F91FF90EF900895B7 -:10F97000E7EDF0E080818160808381E080939101F8 -:10F98000B3CFE8EDF0E080818C7F80831092E200BD -:10F9900008951092DA001092E10008951F920F92DC -:10F9A0000FB60F920BB60F9211242F933F934F93E4 -:10F9B0005F936F937F938F939F93AF93BF93EF93D7 -:10F9C000FF938091DA0080FF1BC08091D80080FFF8 -:10F9D00017C08091DA008E7F8093DA008091D90081 -:10F9E00080FF0BC084E189BD86E189BD09B400FEBA -:10F9F000FDCF81E08EBB30D203C019BC1EBA2CD221 -:10FA00008091E10080FF17C08091E20080FF13C069 -:10FA10008091E2008E7F8093E2008091E20080611D -:10FA20008093E2008091D80080628093D80019BC56 -:10FA300085E08EBB11D28091E10084FF2CC08091C3 -:10FA4000E20084FF28C084E189BD86E189BD09B454 -:10FA500000FEFDCF8091D8008F7D8093D8008091EB -:10FA6000E1008F7E8093E1008091E2008F7E8093A1 -:10FA7000E2008091E20081608093E2008091900139 -:10FA8000882331F48091E30087FD02C081E001C04A -:10FA900084E08EBBE1D18091E10083FF21C08091A1 -:10FAA000E20083FF1DC08091E100877F8093E10029 -:10FAB00082E08EBB109290018091E1008E7F809356 -:10FAC000E1008091E2008E7F8093E2008091E2006D -:10FAD00080618093E20080E060E042E0D3DEBCD150 -:10FAE000FF91EF91BF91AF919F918F917F916F9116 -:10FAF0005F914F913F912F910F900BBE0F900FBED2 -:10FB00000F901F9018959C01409198015091990178 -:10FB10004617570718F4F90190E03CC061157105CC -:10FB200011F0AB01F8CF8091E8008E778093E80068 -:10FB300040E050E0F0CF8EB38823E9F18530E9F161 -:10FB40008091E80083FF02C081E008958091E80081 -:10FB500082FD2BC08091E80080FF1CC02091F20044 -:10FB60003091F30007C081918093F10041505040E3 -:10FB70002F5F3F4F4115510519F02830310598F39B -:10FB800090E02830310509F491E08091E8008E770B -:10FB90008093E8004115510571F6992361F605C07F -:10FBA0008EB3882341F0853041F08091E80082FFD8 -:10FBB000F7CF80E0089582E0089583E008959C01E6 -:10FBC0006115710529F48091E8008B778093E80036 -:10FBD000F90121C08EB3882369F1853069F18091E4 -:10FBE000E80083FF02C081E008958091E80082FF71 -:10FBF000F1CF06C08091F10081936150704031F0E7 -:10FC00008091F2009091F300892BA1F78091E80098 -:10FC10008B778093E80061157105E1F605C08EB31E -:10FC2000882341F0853041F08091E80080FFF7CFD4 -:10FC300080E0089582E0089583E008950F931F9374 -:10FC4000DF93CF9300D0CDB7DEB7E2E9F1E080914A -:10FC5000F100819381E0EA39F807C9F775DA8091FC -:10FC6000E80083FFE4C08091920190919301953068 -:10FC700009F46DC0963040F4913081F1913070F00C -:10FC8000933009F0D4C02AC0983009F4A3C0993049 -:10FC900009F4B2C0963009F0CAC07CC0803809F4BB -:10FCA000C6C0823809F0C3C0809196018F708093DE -:10FCB000E9008091EB001092E9002091E800277F95 -:10FCC0002093E80090E025E0969587952A95E1F746 -:10FCD00081708093F1001092F10087C0882319F0A1 -:10FCE000823009F0A4C08F71823009F0A0C08091E9 -:10FCF0009401882331F5209196012F7009F497C063 -:10FD00002093E9008091EB0080FF1BC0933021F429 -:10FD10008091EB00806213C08091EB008061809342 -:10FD2000EB0081E090E002C0880F991F2A95E2F76E -:10FD30008093EA001092EA008091EB008860809343 -:10FD4000EB001092E9008091E800877F51C0882382 -:10FD500009F06DC0109194011F770FB7F89480914E -:10FD6000E800877F8093E800A0DD8091E80080FFB5 -:10FD7000FCCF8091E3008078812B8093E300806842 -:10FD80008093E300112311F482E001C083E08EBB75 -:10FD90000FBF4DC08058823008F049C08091940157 -:10FDA0009091950160919601AE014F5F5F4F45DDE7 -:10FDB000BC01009709F43BC08091E800877F8093E5 -:10FDC000E80089819A819FDE8091E8008B7780939B -:10FDD000E8002DC0803859F58091E800877F809336 -:10FDE000E800809190018093F1008091E8008E7787 -:10FDF0008093E8005ADD1BC08823C9F490919401D8 -:10FE00009230A8F48091E800877F8093E800909377 -:10FE100090014BDD80919001882331F48091E300C3 -:10FE200087FD02C081E001C084E08EBBBDD9809116 -:10FE3000E80083FF0AC08091EB0080628093EB00B2 -:10FE40008091E800877F8093E8000F900F90CF911A -:10FE5000DF911F910F91089508951F938EB388230A -:10FE600061F01091E9001092E9008091E80083FFB1 -:10FE700001C0E4DE1F701093E9001F910895F99905 -:10FE8000FECF92BD81BDF89A992780B50895262F9F -:10FE9000F999FECF1FBA92BD81BD20BD0FB6F8946F -:0EFEA000FA9AF99A0FBE01960895F894FFCFD2 -:10FEAE004C55464143444300000000000000080149 -:10FEBE001201100102000008EB034A2000010001AC -:10FECE00000109023E000201008032090400000117 -:10FEDE000202010005240010010424020605240676 -:10FEEE000001070582030800FF09040100020A0051 -:10FEFE00000007050402100001070583021000012F -:10FF0E00040309042603410056005200200043005A -:10FF1E0044004300200042006F006F0074006C002C -:0CFF2E006F0061006400650072000000BC -:10FFE000CDCBDFCBF1CB05CC0BCC11CC17CC0000AB -:10FFF0000000000000000000000000000000FBDC2A -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BootloaderHID.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BootloaderHID.hex deleted file mode 100644 index 31134c84e7..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BootloaderHID.hex +++ /dev/null @@ -1,139 +0,0 @@ -:020000021000EC -:10F000004BC0000077C0000075C0000073C0000056 -:10F0100071C000006FC000006DC000006BC0000038 -:10F0200069C0000067C0000028C2000063C0000083 -:10F0300061C000005FC000005DC000005BC0000058 -:10F0400059C0000057C0000055C0000053C0000068 -:10F0500051C000004FC000004DC000004BC0000078 -:10F0600049C0000047C0000045C0000043C0000088 -:10F0700041C000003FC000003DC000003BC0000098 -:10F0800039C0000037C0000035C0000033C00000A8 -:10F0900031C000002FC0000011241FBECFEFD0E20E -:10F0A000DEBFCDBF04B603FE0EC080915401909127 -:10F0B000550182349C4D39F410925501109254013F -:10F0C000E0E0F0E0099511E0A0E0B1E0E8E2F8EF5F -:10F0D00001E00BBF02C007900D92AA34B107D9F727 -:10F0E00021E0AAE4B1E001C01D92A435B207E1F726 -:10F0F00002D098C385CF84B7877F84BF88E10FB6DD -:10F10000F89480936000109260000FBE81E085BF8C -:10F1100082E085BF97D1789480910001882311F017 -:10F1200066D3FACF8091E00081608093E00082E4B2 -:10F130009CED90935501809354012CE088E190E080 -:10F140000FB6F894A895809360000FBE20936000DE -:10F15000FFCF42E361EC81E002C1CF92DF92EF92F8 -:10F16000FF921F93CF93DF9380914C018F77813271 -:10F1700009F075C080914D01893009F070C080910F -:10F18000E800877F8093E8008091E80082FFFCCF51 -:10F190009091F1008091F100492F582F60E070E0CC -:10F1A000B62FA52F942F88274F3F5F4F19F4109249 -:10F1B00000013EC023E0FC01A0935B0020935700B8 -:10F1C000E89507B600FCFDCF20E030E011E040916B -:10F1D000F2005091F300452B09F437C05091F10033 -:10F1E0004091F100C52FD42FA901440F551F6C0188 -:10F1F0007D01C40ED51EE11CF11C0E01F601E0924A -:10F200005B0010935700E89511242F5F3F4F203883 -:10F210003105E9F625E0FC01A0935B00209357003F -:10F22000E89507B600FCFDCF81E180935700E89593 -:10F230008091E8008B778093E800DF91CF911F9158 -:10F24000FF90EF90DF90CF909EC04091E8004B7709 -:10F250004093E8004091E80042FFFCCFBFCFDF9130 -:10F26000CF911F91FF90EF90DF90CF900895913054 -:10F2700049F0923061F0913279F489E090E023E135 -:10F2800031E00EC082E190E023E231E009C082E289 -:10F2900090E021E031E004C085E190E025E331E039 -:10F2A000FA01318320830895209152013091530156 -:10F2B0002617370748F06115710539F42091E800E9 -:10F2C0002E772093E80001C0B901FC0120E0611510 -:10F2D000710591F18EB38823E1F18530E1F18091E0 -:10F2E000E80083FD3AC08091E80082FF06C080916B -:10F2F000E80082FF24C080E008958091E80080FF4C -:10F30000E6CF8091F2009091F3006115710551F004 -:10F310008830910538F421912093F10061507109F2 -:10F320000196F3CF21E0089709F020E08091E800F2 -:10F330008E778093E800CBCF2111CCCFD8CF8EB37E -:10F34000882339F0853039F08091E80083FFCFCFF2 -:10F3500004C082E0089583E0089581E008958F70ED -:10F360008093E900EBEEF0E0808181608083EDEE38 -:10F37000F0E010826093EC0040838091EE00881FE3 -:10F380008827881F089580914C0187FD05C08091D2 -:10F39000E80080FF0DC010C08091E80082FD04C02D -:10F3A0008EB38111F9CF08958091E8008B7707C063 -:10F3B0008EB38111ECCF08958091E8008E77809311 -:10F3C000E80008950F931F93CF93DF9349D050D057 -:10F3D000C8EDD0E088818F778883888180688883B2 -:10F3E00088818F7D8883E7EDF0E08081806880836D -:10F3F00019BC1EBA10924A0100EE10E0F80180819B -:10F400008B7F808388818160888342E060E080E038 -:10F41000A6DFE1EEF0E080818E7F8083E2EEF0E017 -:10F42000808181608083808188608083F801808111 -:10F430008E7F8083888180618883DF91CF911F9147 -:10F440000F910895E8EDF0E080818F7E8083E7EDF5 -:10F45000F0E080818160808381E080934B01B2CFB6 -:10F46000E8EDF0E080818C7F80831092E2000895C7 -:10F470001092DA001092E10008951F920F920FB6D9 -:10F480000F9211240BB60F922F933F934F935F93DC -:10F490006F937F938F939F93AF93BF93EF93FF935C -:10F4A0008091DA0080FF1BC08091D80080FF17C0D8 -:10F4B0008091DA008E7F8093DA008091D90080FFFE -:10F4C0000BC084E189BD86E189BD09B400FEFDCF92 -:10F4D00081E08EBB8BD103C019BC1EBA87D180914D -:10F4E000E10080FF17C08091E20080FF13C080918F -:10F4F000E2008E7F8093E2008091E2008061809341 -:10F50000E2008091D80080628093D80019BC85E029 -:10F510008EBB6CD18091E10084FF2EC08091E2000F -:10F5200084FF2AC084E189BD86E189BD09B400FE5B -:10F53000FDCF8091D8008F7D8093D8008091E1002D -:10F540008F7E8093E1008091E2008F7E8093E200C5 -:10F550008091E20081608093E20080914A018823DB -:10F5600011F084E007C08091E30087FF02C083E0D0 -:10F5700001C081E08EBB3AD18091E10083FF21C0C0 -:10F580008091E20083FF1DC08091E100877F80931E -:10F59000E10082E08EBB10924A018091E1008E7FF3 -:10F5A0008093E1008091E2008E7F8093E200809161 -:10F5B000E20080618093E20042E060E080E0CFDE24 -:10F5C00015D1FF91EF91BF91AF919F918F917F9155 -:10F5D0006F915F914F913F912F910F900BBE0F90C4 -:10F5E0000FBE0F901F9018951F93CF93DF9300D0FD -:10F5F000CDB7DEB7ECE4F1E08091F100819381E0DA -:10F60000E435F807C9F7A9DD8091E80083FFDAC087 -:10F6100090914C0180914D01853009F465C030F422 -:10F62000813059F168F0833041F1CCC0883009F461 -:10F630009CC0893009F4ABC0863009F0C3C075C0E6 -:10F64000903881F0923809F0BDC0809150018F70E0 -:10F650008093E9009091EB0095FB992790F9109227 -:10F66000E90001C090E08091E800877F8093E80086 -:10F670009093F1001092F10083C0292F2D7F09F0A3 -:10F68000A1C0923009F09EC090914E01911126C008 -:10F69000209150012F7009F495C02093E9009091BA -:10F6A000EB0090FF1BC0833021F48091EB0080625F -:10F6B00013C08091EB0080618093EB0081E090E0CB -:10F6C000022E01C0880F0A94EAF78093EA00109294 -:10F6D000EA008091EB0088608093EB001092E900D3 -:10F6E0008091E800877F4FC091116CC010914E014E -:10F6F0001F778091E3008078812B8093E3008091D5 -:10F70000E800877F8093E8003EDE8091E80080FF7C -:10F71000FCCF8091E30080688093E300112311F017 -:10F7200083E001C082E08EBB4DC09058923008F05B -:10F7300049C0AE014F5F5F4F6091500180914E0113 -:10F7400090914F0194DD009709F43CC02091E800AE -:10F75000277F2093E800BC0189819A81A5DD8091F3 -:10F76000E8008B778093E8002DC0903859F58091A0 -:10F77000E800877F8093E80080914A018093F10040 -:10F780008091E8008E778093E800FDDD1BC0911129 -:10F7900019C090914E019230A8F48091E800877FC3 -:10F7A0008093E80090934A01EEDD80914A01811137 -:10F7B00004C08091E30087FF02C084E001C081E0C3 -:10F7C0008EBBC7DC8091E80083FF0AC08091E8000F -:10F7D000877F8093E8008091EB0080628093EB004C -:10F7E0000F900F90DF91CF911F9108950895CF93BF -:10F7F0008EB38823A9F08091E9008F709091EC007E -:10F8000090FF02C090E801C090E0C92FC82B109271 -:10F81000E9008091E80083FDE7DECF70C093E90046 -:08F82000CF910895F894FFCF89 -:10F8280001090222000101008032090400000103DD -:10F8380000000009211101000122150007058103BC -:10F848004000051201100100000008EB03672001C9 -:10F85800000000000106DCFF09FBA10109021500F8 -:0AF8680025FF75089602019102C009 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/Brainwave-646-LUFA.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/Brainwave-646-LUFA.hex deleted file mode 100644 index 6adb770023..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/Brainwave-646-LUFA.hex +++ /dev/null @@ -1,239 +0,0 @@ -:020000021000EC -:10F000004BC0000064C0000062C0000060C000008F -:10F010005EC000005CC000005AC0000058C0000084 -:10F0200056C0000054C000006FC4000050C0000073 -:10F030004EC000004CC000004AC0000048C00000A4 -:10F0400046C0000044C0000042C0000040C00000B4 -:10F050003EC000003CC000003AC0000038C00000C4 -:10F0600036C0000034C0000032C0000030C00000D4 -:10F070002EC000002CC000002AC0000028C00000E4 -:10F0800026C0000024C0000022C0000020C00000F4 -:10F090001EC000001CC0000011241FBECFEFD0E135 -:10F0A000DEBFCDBF11E0A0E0B1E0E2E2FEEF02C0C2 -:10F0B00005900D92AC38B107D9F711E0ACE8B1E09A -:10F0C00001C01D92AD39B107E1F7FCD2A8C698CFB7 -:10F0D00084E08093E9000DC08091E8008B778093F5 -:10F0E000E80003C08EB3882359F08091E80082FFC6 -:10F0F000F9CF8091E80085FFEFCF8091F10008956E -:10F1000080E0089593E09093E9009091E80095FDE8 -:10F110000DC09091E8009E779093E80003C09EB3E5 -:10F12000992331F09091E80090FFF9CF8093F1009E -:10F13000089584B7877F84BF88E10FB6F8948093E1 -:10F140006000109260000FBE90E080E80FB6F89467 -:10F1500080936100909361000FBE81E085BF82E0E3 -:10F1600085BFBCC382E061EC42E03ED383E061E84E -:10F1700042E13AD384E060E842E136C380919601EF -:10F180008032B1F0813239F580919501813A19F5DB -:10F190008091E800877F8093E80088E091E067E055 -:10F1A00070E07BD58091E8008B778093E80008952C -:10F1B00080919501813279F48091E800877F809376 -:10F1C000E80088E091E067E070E0C2D58091E80057 -:10F1D0008E778093E80008952F923F924F925F922E -:10F1E0006F927F929F92AF92BF92CF92DF92EF92F7 -:10F1F000FF920F931F93DF93CF930F92CDB7DEB79C -:10F2000084E08093E9008091E80082FF48C2109278 -:10F210008C015EDF182F8C3409F4EEC1803509F4BF -:10F22000EBC1843529F0853429F410920F01E4C133 -:10F230004FDFE2C1843711F484E448C0813611F411 -:10F2400089E503C28134F1F443DF382F330F20E026 -:10F2500079010027F7FC0095102FE0928F01F092C2 -:10F260009001009391011093920132DF90E0880F9A -:10F27000991FAA2797FDA095BA2F8E299F29A02B09 -:10F28000B12BB2C1803711F483E5DFC1833559F466 -:10F2900000E011E0F80181918F0134DFF1E00730E7 -:10F2A0001F07C1F7D3C1863521F481E32BDF80E34B -:10F2B000CCC1833731F482E825DF86E923DF8EE194 -:10F2C000C4C1823631F489E51DDF81E01BDF80E0B7 -:10F2D000BCC18536F9F480E090E0DC0133E025E044 -:10F2E000FC0130935700E89507B600FCFDCF209352 -:10F2F0005700E89507B600FCFDCF8F5F9E4FAF4FDC -:10F30000BF4F8F3E40EF940741E0A40740E0B407B1 -:10F3100039F772C18C3651F4DBDE809599E0E1E07B -:10F32000F0E0082E90935700E89566C1823719F4F3 -:10F33000E1E0F0E00EC0863419F4E0E0F0E009C04E -:10F340008E3419F4E3E0F0E004C0813539F4E2E0F2 -:10F35000F0E089E080935700849177C1833471F4A1 -:10F3600000918F0110919001B3DE90E021E0F8014F -:10F370000C0120935700E89511243EC1833679F49F -:10F3800000918F01109190010160A2DE90E021E0D8 -:10F39000F8010C0120935700E89511241AC18D360D -:10F3A00061F4E0918F01F091900185E08093570026 -:10F3B000E89507B600FCFDCF1FC1823419F08736EF -:10F3C00009F0E9C085DEE82E83DE082F81DEB82E45 -:10F3D0008554823008F038C13E2D20E0202E3324A1 -:10F3E000222A332A173609F054C081E1809357004E -:10F3F000E89510E001E048C0FB2DF63409F5E12F57 -:10F40000F0E080918F0190919001E82BF92B84918D -:10F4100079DE112399F080918F0190919001A09154 -:10F420009101B09192010296A11DB11D80938F01AF -:10F4300090939001A0939101B0939201102721C065 -:10F4400080918F0190919001A0919101B0919201D2 -:10F45000B695A79597958795CCD454DE80918F016A -:10F4600090919001A0919101B09192010296A11DFD -:10F47000B11D80938F0190939001A0939101B0935F -:10F4800092010894210831082114310409F0B4CF05 -:10F49000DDC040908F01509090016090910170907C -:10F4A00092012B2D263409F061C083E0F201809394 -:10F4B0005700E89507B600FCFDCF58C0FB2DF63489 -:10F4C00061F5222331F1E0908F01F090900100DE90 -:10F4D000D82ECC248A2D90E08C299D29F7010C018F -:10F4E00090925700E895112480918F01909190019E -:10F4F000A0919101B09192010296A11DB11D80933E -:10F500008F0190939001A0939101B093920120E01C -:10F5100029C0DEDDA82E21E025C0E0908F01F0900B -:10F520009001009191011091920116950795F79421 -:10F53000E7942983CDDD682FC70163D480918F01C3 -:10F5400090919001A0919101B09192010296A11D1C -:10F55000B11D80938F0190939001A0939101B0937E -:10F560009201298108942108310804C0AA2420E0CE -:10F57000992493942114310409F0A0CFFB2DF63483 -:10F5800009F03AC085E0F20180935700E89507B68C -:10F5900000FCFDCF31C0823551F4E0918F01F09134 -:10F5A000900105911491812FADDD802F4EC08434E0 -:10F5B00029F5E0908F01F090900100919101109158 -:10F5C000920116950795F794E79482DD682FC7019D -:10F5D00018D480918F0190919001A0919101B091E8 -:10F5E00092010296A11DB11D80938F01909390010D -:10F5F000A0939101B09392018DE027C0843611F55C -:10F6000080918F0190919001A0919101B091920110 -:10F61000B695A79597958795ECD374DD80918F016A -:10F6200090919001A0919101B09192010296A11D3B -:10F63000B11D80938F0190939001A0939101B0939D -:10F64000920104C08B3111F08FE35CDD83E0809385 -:10F65000E9009091E8008091E8008E778093E800BF -:10F6600095FF04C010C08EB38823C9F08091E800D4 -:10F6700080FFF9CF8091E8008E778093E80003C087 -:10F680008EB3882361F08091E80080FFF9CF84E099 -:10F690008093E9008091E8008B778093E8000F90D9 -:10F6A000CF91DF911F910F91FF90EF90DF90CF905E -:10F6B000BF90AF909F907F906F905F904F903F90E2 -:10F6C0002F900895EF92FF920F931F93DF93CF93A4 -:10F6D0000F92CDB7DEB784B714BE909160009861E9 -:10F6E000909360001092600010928C0190E0FC01F9 -:10F6F000E270F07081FD0BC0859194912FEF8F3FE8 -:10F70000920729F0E0918D01F0918E01099511DDAC -:10F710006F9A779A789481E010E000E0E0E0F0E002 -:10F72000E590F49025C0898357DD51D30F5F89811F -:10F73000002311F4180F779A011709F477981F3FE7 -:10F7400059F0112351F4813041F080918C018F5F89 -:10F7500080938C0181E001C08FEF90918C019530F6 -:10F7600038F09FEFE9169FEFF90611F010920F01A4 -:10F7700090910F019923B9F68091E0008160809308 -:10F78000E0002CE088E190E00FB6F894A895809313 -:10F7900060000FBE20936000FFCF923049F093309D -:10F7A00061F09130C1F020E030E080E090E017C0DF -:10F7B0002EE330E082E291E012C0882331F4209100 -:10F7C000600130E080E691E00AC02091640130E001 -:10F7D00084E691E004C022E130E080E191E0FA01AA -:10F7E00091838083C90108958093E900EBEEF0E0F6 -:10F7F000808181608083EDEEF0E010826093EC0008 -:10F8000040838091EE00881F8827881F089580918B -:10F81000950187FF11C003C08EB38823B1F080919A -:10F82000E80082FFF9CF8091E8008B778093E800B1 -:10F8300008958EB3882349F08091E80080FFF9CFC6 -:10F840008091E8008E778093E800089550D057D0DB -:10F850008091D800982F9F779093D80080688093EC -:10F86000D80088E189BD89B5826089BD09B400FEF0 -:10F87000FDCF8091D8008F7D8093D8008091D700F4 -:10F8800080688093D7001EBA109293018091E000A7 -:10F890008B7F8093E0008091D80081608093D800B6 -:10F8A00080E060E042E0A0DF8091E1008E7F809305 -:10F8B000E1008091E20081608093E2008091E200AB -:10F8C00088608093E2008091E0008E7F8093E0006A -:10F8D0008091D80080618093D8000895E7EDF0E032 -:10F8E00080818160808381E080939401AFCFE8EDD7 -:10F8F000F0E080818C7F80831092E2000895109266 -:10F90000DA001092E10008951F920F920FB60F9245 -:10F9100011242F933F934F935F936F937F938F9314 -:10F920009F93AF93BF93EF93FF938091DA0080FF93 -:10F9300013C08091D80080FF0FC08091DA008E7FC5 -:10F940008093DA008091D90080FF04C081E08EBBF3 -:10F95000A3D102C01EBAA0D18091E10080FF1CC0DB -:10F960008091E20080FF18C08091E1008E7F80933B -:10F97000E1008091E2008E7F8093E2008091E200BE -:10F9800080618093E2008091D80080628093D800EB -:10F9900019BC85E08EBB80D18091E10084FF2DC031 -:10F9A0008091E20084FF29C088E189BD89B5826029 -:10F9B00089BD09B400FEFDCF8091D8008F7D809372 -:10F9C000D8008091E1008F7E8093E1008091E20079 -:10F9D0008F7E8093E2008091E20081608093E2005C -:10F9E00080919301882321F48091E30087FF02C076 -:10F9F00084E001C081E08EBB4FD18091E10083FFA4 -:10FA000021C08091E20083FF1DC08091E100877FCB -:10FA10008093E10082E08EBB109293018091E1001F -:10FA20008E7F8093E1008091E2008E7F8093E200E0 -:10FA30008091E20080618093E20080E060E042E03B -:10FA4000D3DE2AD18091E10082FF0AC08091E200DA -:10FA500082FF06C08091E1008B7F8093E1001CD182 -:10FA6000FF91EF91BF91AF919F918F917F916F9196 -:10FA70005F914F913F912F910F900FBE0F901F906C -:10FA800018950F931F93DF93CF9300D0CDB7DEB7B8 -:10FA9000E5E9F1E08091F100819381E0ED39F8072B -:10FAA000C9F78091950190919601953009F46BC04A -:10FAB000963040F4913061F1913070F0933009F05C -:10FAC000D5C026C0983009F4A3C0993009F4B2C05B -:10FAD000963009F0CBC07CC0803809F4C8C08238A9 -:10FAE00009F0C4C08091990187708093E9009091DA -:10FAF000EB001092E9008091E800877F8093E80096 -:10FB000081E095FF80E08093F1001092F1008BC0BE -:10FB1000882319F0823009F0A9C08F71823009F072 -:10FB2000A6C080919701882341F520919901277003 -:10FB300009F49DC02093E9008091EB0080FF1DC077 -:10FB400080919601833021F48091EB00806213C094 -:10FB50008091EB0080618093EB0081E090E002C037 -:10FB6000880F991F2A95E2F78093EA001092EA0025 -:10FB70008091EB0088608093EB001092E900809107 -:10FB8000E800877F53C0882309F070C01091970167 -:10FB90001F770FB7F8948091E800877F8093E80083 -:10FBA00036DE8091E80080FFFCCF112311F083E066 -:10FBB00001C082E08EBB8091E3008078812B80932E -:10FBC000E3008091E30080688093E3000FBF4FC0A3 -:10FBD0008058823008F04AC0809197019091980136 -:10FBE00060919901AE014F5F5F4FD7DDBC01009777 -:10FBF00009F43DC08091E800877F8093E800898107 -:10FC00009A814BD08091E8008B778093E8002FC0D9 -:10FC1000803861F58091E800877F8093E8008091CB -:10FC200093018093F1008091E8008E778093E80043 -:10FC3000EEDD1DC08823D1F4909197019230B8F485 -:10FC40008091E800877F8093E80090939301DFDD47 -:10FC500080919301882321F48091E30087FF02C003 -:10FC600084E001C081E08EBB7DDA01C087DA80913B -:10FC7000E80083FF0AC08091EB0080628093EB0074 -:10FC80008091E800877F8093E8000F900F90CF91DC -:10FC9000DF911F910F9108950895282F392FF901B1 -:10FCA00080919B0190919C018617970718F4BC01E5 -:10FCB00020E035C061157105D9F78091E8008E7795 -:10FCC0008093E800F5CF8EB38823F1F18530C1F140 -:10FCD0008091E80083FD36C08091E80082FD2AC053 -:10FCE0008091E80080FF1BC08091F2009091F300AA -:10FCF00006C021912093F10061507040019661157A -:10FD0000710519F088309105A0F321E08830910544 -:10FD100009F020E08091E8008E778093E80061157B -:10FD2000710589F6222379F605C08EB3882361F028 -:10FD3000853061F08091E80082FFF7CF80E0089580 -:10FD400083E0089581E0089582E0089583E00895B6 -:10FD50006115710529F51FC02EB32223A1F12530AD -:10FD600071F12091E80023FD2CC02091E80022FFD2 -:10FD7000F3CFE82FF92F07C08091F1008193CF01D5 -:10FD80006150704041F0CF012091F2003091F300BA -:10FD90002115310589F72091E8002B772093E800A1 -:10FDA00061157105C9F605C08EB3882361F08530F1 -:10FDB00061F08091E80080FFF7CF80E0089583E054 -:10FDC000089581E0089582E0089583E008951F93E7 -:10FDD0008EB3882361F01091E90017701092E9004A -:10FDE0008091E80083FF01C04CDE1093E9001F9171 -:10FDF0000895F999FECF92BD81BDF89A992780B5F3 -:10FE00000895262FF999FECF1FBA92BD81BD20BD5E -:10FE10000FB6F894FA9AF99A0FBE01960895F894DD -:02FE2000FFCF12 -:10FE22004C554641434443000000000000000801D5 -:10FE320012011001020000089A23010001000001D2 -:10FE4200000109023E0002010080320904000001A3 -:10FE52000202010005240010010424020405240604 -:10FE620000010705820308000209040100020A00DA -:10FE720000000705040210000007058302100000BD -:10FE820004030904260341005600520020004300E7 -:10FE920044004300200042006F006F0074006C00B9 -:0CFEA2006F006100640065007200000049 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BrainwavePro-1286-LUFA.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BrainwavePro-1286-LUFA.hex deleted file mode 100644 index 99f0f36b35..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/at90usb/BrainwavePro-1286-LUFA.hex +++ /dev/null @@ -1,247 +0,0 @@ -:020000021000EC -:10F000004BC0000066C0000064C0000062C0000089 -:10F0100060C000005EC000005CC000005AC000007C -:10F0200058C0000056C00000ACC4000052C0000030 -:10F0300050C000004EC000004CC000004AC000009C -:10F0400048C0000046C0000044C0000042C00000AC -:10F0500040C000003EC000003CC000003AC00000BC -:10F0600038C0000036C0000034C0000032C00000CC -:10F0700030C000002EC000002CC000002AC00000DC -:10F0800028C0000026C0000024C0000022C00000EC -:10F0900020C000001EC0000011241FBECFEFD0E230 -:10F0A000DEBFCDBF11E0A0E0B1E0E4EAFEEF01E099 -:10F0B0000BBF02C007900D92AC38B107D9F711E031 -:10F0C000ACE8B1E001C01D92AD39B107E1F72FD333 -:10F0D000E7C696CF84E08093E9000DC08091E800F8 -:10F0E0008B778093E80003C08EB3882359F080911A -:10F0F000E80082FFF9CF8091E80085FFEFCF809193 -:10F10000F100089580E0089593E09093E9009091D4 -:10F11000E80095FD0DC09091E8009E779093E8007F -:10F1200003C09EB3992331F09091E80090FFF9CF8E -:10F130008093F100089584B7877F84BF88E10FB67C -:10F14000F89480936000109260000FBE90E080E819 -:10F150000FB6F89480936100909361000FBE81E038 -:10F1600085BF82E085BFF7C382E061EC42E079D3DE -:10F1700083E061E842E175D384E060E842E171C375 -:10F18000809196018032B1F0813239F580919501FC -:10F19000813A19F58091E800877F8093E80088E044 -:10F1A00091E067E070E0BAD58091E8008B778093BA -:10F1B000E800089580919501813279F48091E8000A -:10F1C000877F8093E80088E091E067E070E001D6F7 -:10F1D0008091E8008E778093E80008952F923F9207 -:10F1E0005F926F927F928F929F92AF92BF92CF92D7 -:10F1F000DF92EF92FF920F931F93DF93CF930F92C3 -:10F20000CDB7DEB784E08093E9008091E80082FF0B -:10F210007BC210928C015EDF182F8C3409F421C25E -:10F22000803509F41EC2843529F0853429F4109202 -:10F230000F0117C24FDF15C2843711F484E448C0B0 -:10F24000813611F489E536C28134F1F443DF382F79 -:10F25000330F20E079010027F7FC0095102FE09292 -:10F260008F01F0929001009391011093920132DF8F -:10F2700090E0880F991FAA2797FDA095BA2F8E2995 -:10F280009F29A02BB12BE5C1803711F483E512C271 -:10F29000833559F400E011E0D8018D918D0134DF00 -:10F2A000B1E007301B07C1F706C2863521F481E3C0 -:10F2B0002BDF80E3FFC1833731F482E825DF87E964 -:10F2C00023DF8EE1F7C1823631F489E51DDF81E06D -:10F2D0001BDF80E0EFC1853621F580E090E0DC01A6 -:10F2E00033E025E0FC01A0935B0030935700E895E4 -:10F2F00007B600FCFDCFFC01A0935B0020935700F4 -:10F30000E89507B600FCFDCF8F5F9E4FAF4FBF4F14 -:10F310008F3EE0EF9E07E1E0AE07E0E0BE0711F7A9 -:10F32000A0C18C3651F4D6DE809599E0E1E0F0E0A2 -:10F33000082E90935700E89594C1823719F4E1E0C4 -:10F34000F0E00EC0863419F4E0E0F0E009C08E343D -:10F3500019F4E3E0F0E004C0813539F4E2E0F0E0D4 -:10F3600089E0809357008491A5C18334A1F4E09093 -:10F370008F01F09090010091910110919201AADE0D -:10F3800090E021E00C01F70100935B00209357000F -:10F39000E895112466C18336E1F4E0908F01F09086 -:10F3A0009001009191011091920181E090E0A0E024 -:10F3B000B0E0E82AF92A0A2B1B2B8CDE90E021E032 -:10F3C0000C01F70100935B0020935700E89511248E -:10F3D00035C18D3699F480918F0190919001A09163 -:10F3E0009101B091920125E0FC01A0935B00209374 -:10F3F0005700E89507B600FCFDCF33C1823419F001 -:10F40000873609F0F7C066DEE82E64DE082F62DE7C -:10F41000982E8554823008F04CC13E2D20E0202EDD -:10F420003324222A332A173609F058C081E1809309 -:10F430005700E89510E001E04CC020918F01309119 -:10F4400090014091910150919201992D963419F5B6 -:10F45000812F90E0A0E0B0E0822B932BA42BB52B62 -:10F46000ABBFFC01879150DE112399F080918F0191 -:10F4700090919001A0919101B09192010296A11DED -:10F48000B11D80938F0190939001A0939101B0934F -:10F49000920110271BC0DA01C901B695A79597956F -:10F4A0008795E8D431DE80918F0190919001A091F1 -:10F4B0009101B09192010296A11DB11D80938F011F -:10F4C00090939001A0939101B09392010894210828 -:10F4D00031082114310409F0B0CFEDC0A0908F01A4 -:10F4E000B0909001C0909101D0909201A92DA634C6 -:10F4F00009F069C083E0F501C0925B00809357007A -:10F50000E89507B600FCFDCF5EC0B92DB63491F585 -:10F51000222361F1E0908F01F09090010091910120 -:10F5200010919201D7DD782E6624282D30E026290F -:10F5300037290901F70100935B0050925700E895C5 -:10F54000112480918F0190919001A0919101B0912F -:10F5500092010296A11DB11D80938F01909390019D -:10F56000A0939101B093920120E029C0B3DD882ED1 -:10F5700021E025C0E0908F01F09090010091910171 -:10F580001091920116950795F794E7942983A2DDCF -:10F59000682FC70177D480918F0190919001A0913D -:10F5A0009101B09192010296A11DB11D80938F012E -:10F5B00090939001A0939101B093920129810894B6 -:10F5C0002108310804C0882420E0552453942114D4 -:10F5D000310409F09ACFE92DE63409F042C085E004 -:10F5E000F501C0925B0080935700E89507B600FCD8 -:10F5F000FDCF37C0823581F480918F0190919001C9 -:10F60000A0919101B0919201ABBFFC0107911691BD -:10F61000812F7ADD802F4EC0843429F5E0908F0150 -:10F62000F09090010091910110919201169507952B -:10F63000F794E7944FDD682FC70124D480918F01A0 -:10F6400090919001A0919101B09192010296A11D1B -:10F65000B11D80938F0190939001A0939101B0937D -:10F6600092018DE027C0843611F580918F01909131 -:10F670009001A0919101B0919201B695A7959795AF -:10F680008795F8D341DD80918F0190919001A091F1 -:10F690009101B09192010296A11DB11D80938F013D -:10F6A00090939001A0939101B093920104C08B318B -:10F6B00011F08FE329DD83E08093E9009091E80069 -:10F6C0008091E8008E778093E80095FF04C010C019 -:10F6D0008EB38823C9F08091E80080FFF9CF809134 -:10F6E000E8008E778093E80003C08EB3882361F032 -:10F6F0008091E80080FFF9CF84E08093E900809159 -:10F70000E8008B778093E8000F90CF91DF911F91F5 -:10F710000F91FF90EF90DF90CF90BF90AF909F90B0 -:10F720008F907F906F905F903F902F900895EF9211 -:10F73000FF920F931F93DF93CF930F92CDB7DEB756 -:10F7400084B714BE9091600098619093600010920D -:10F75000600010928C0190E0FC01E270F07081FD7D -:10F760000BC0859194912FEF8F3F920729F0E09184 -:10F770008D01F0918E010995209A289A6F9A779AB7 -:10F780006D9A759A3B9A439AD6DC6F9A779A7894D9 -:10F7900081E010E000E0E0E0F0E0E590F49025C0CA -:10F7A00089831CDD55D30F5F8981002311F4180F65 -:10F7B000779A011709F477981F3F59F0112351F4F4 -:10F7C000813041F080918C018F5F80938C0181E0CA -:10F7D00001C08FEF90918C01923338F09FEFE916C2 -:10F7E0009FEFF90611F010920F0190910F019923EC -:10F7F000B9F68091E00081608093E0002CE088E120 -:10F8000090E00FB6F894A895809360000FBE209307 -:10F810006000FFCF923049F0933061F09130C1F039 -:10F8200020E030E080E090E017C02EE330E082E29C -:10F8300091E012C0882331F42091600130E080E62D -:10F8400091E00AC02091640130E084E691E004C0B8 -:10F8500022E130E080E191E0FA0191838083C901E7 -:10F8600008958093E900EBEEF0E080818160808371 -:10F87000EDEEF0E010826093EC0040838091EE00AA -:10F88000881F8827881F08958091950187FF11C0E0 -:10F8900003C08EB38823B1F08091E80082FFF9CFD6 -:10F8A0008091E8008B778093E80008958EB38823D9 -:10F8B00049F08091E80080FFF9CF8091E8008E77D1 -:10F8C0008093E800089550D057D08091D800982FA9 -:10F8D0009F779093D80080688093D80084E189BD99 -:10F8E00089B5826089BD09B400FEFDCF8091D80042 -:10F8F0008F7D8093D8008091D70080688093D70057 -:10F900001EBA109293018091E0008B7F8093E000FB -:10F910008091D80081608093D80080E060E042E070 -:10F92000A0DF8091E1008E7F8093E1008091E20072 -:10F9300081608093E2008091E20088608093E20021 -:10F940008091E0008E7F8093E0008091D8008061FC -:10F950008093D8000895E7EDF0E080818160808396 -:10F9600081E080939401AFCFE8EDF0E080818C7F5F -:10F9700080831092E20008951092DA001092E10064 -:10F9800008951F920F920FB60F920BB60F9211248B -:10F990002F933F934F935F936F937F938F939F9397 -:10F9A000AF93BF93EF93FF938091DA0080FF13C072 -:10F9B0008091D80080FF0FC08091DA008E7F809305 -:10F9C000DA008091D90080FF04C081E08EBBA5D110 -:10F9D00002C01EBAA2D18091E10080FF1CC08091BC -:10F9E000E20080FF18C08091E1008E7F8093E100EB -:10F9F0008091E2008E7F8093E2008091E20080613E -:10FA00008093E2008091D80080628093D80019BC76 -:10FA100085E08EBB82D18091E10084FF2DC0809172 -:10FA2000E20084FF29C084E189BD89B5826089BD77 -:10FA300009B400FEFDCF8091D8008F7D8093D8005F -:10FA40008091E1008F7E8093E1008091E2008F7EC3 -:10FA50008093E2008091E20081608093E2008091D7 -:10FA60009301882321F48091E30087FF02C084E0A2 -:10FA700001C081E08EBB51D18091E10083FF21C0A4 -:10FA80008091E20083FF1DC08091E100877F809319 -:10FA9000E10082E08EBB109293018091E1008E7FA5 -:10FAA0008093E1008091E2008E7F8093E20080915C -:10FAB000E20080618093E20080E060E042E0D1DE1D -:10FAC0002CD18091E10082FF0AC08091E20082FF88 -:10FAD00006C08091E1008B7F8093E1001ED1FF91F1 -:10FAE000EF91BF91AF919F918F917F916F915F91B6 -:10FAF0004F913F912F910F900BBE0F900FBE0F9023 -:10FB00001F9018950F931F93DF93CF9300D0CDB71D -:10FB1000DEB7E5E9F1E08091F100819381E0ED3914 -:10FB2000F807C9F78091950190919601953009F4F5 -:10FB30006BC0963040F4913061F1913070F09330A9 -:10FB400009F0D5C026C0983009F4A3C0993009F453 -:10FB5000B2C0963009F0CBC07CC0803809F4C8C070 -:10FB6000823809F0C4C08091990187708093E900C0 -:10FB70009091EB001092E9008091E800877F8093DC -:10FB8000E80081E095FF80E08093F1001092F100A1 -:10FB90008BC0882319F0823009F0A9C08F718230A0 -:10FBA00009F0A6C080919701882341F52091990121 -:10FBB000277009F49DC02093E9008091EB0080FF3D -:10FBC0001DC080919601833021F48091EB0080620A -:10FBD00013C08091EB0080618093EB0081E090E0A6 -:10FBE00002C0880F991F2A95E2F78093EA001092CD -:10FBF000EA008091EB0088608093EB001092E900AE -:10FC00008091E800877F53C0882309F070C010916D -:10FC100097011F770FB7F8948091E800877F809352 -:10FC2000E80032DE8091E80080FFFCCF112311F064 -:10FC300083E001C082E08EBB8091E3008078812B5D -:10FC40008093E3008091E30080688093E3000FBF1E -:10FC50004FC08058823008F04AC08091970190913F -:10FC6000980160919901AE014F5F5F4FD3DDBC01F8 -:10FC7000009709F43DC08091E800877F8093E800F9 -:10FC800089819A814BD08091E8008B778093E8003E -:10FC90002FC0803861F58091E800877F8093E8006D -:10FCA000809193018093F1008091E8008E7780939A -:10FCB000E800EADD1DC08823D1F4909197019230CD -:10FCC000B8F48091E800877F8093E80090939301D7 -:10FCD000DBDD80919301882321F48091E30087FF8D -:10FCE00002C084E001C081E08EBB3EDA01C048DA88 -:10FCF0008091E80083FF0AC08091EB0080628093CE -:10FD0000EB008091E800877F8093E8000F900F90D0 -:10FD1000CF91DF911F910F9108950895282F392FCA -:10FD2000F90180919B0190919C018617970718F427 -:10FD3000BC0120E035C061157105D9F78091E8005C -:10FD40008E778093E800F5CF8EB38823F1F185306C -:10FD5000C1F18091E80083FD36C08091E80082FD0A -:10FD60002AC08091E80080FF1BC08091F200909132 -:10FD7000F30006C021912093F1006150704001967C -:10FD80006115710519F088309105A0F321E08830E4 -:10FD9000910509F020E08091E8008E778093E800DB -:10FDA0006115710589F6222379F605C08EB3882383 -:10FDB00061F0853061F08091E80082FFF7CF80E04C -:10FDC000089583E0089581E0089582E0089583E036 -:10FDD00008956115710529F51FC02EB32223A1F1E5 -:10FDE000253071F12091E80023FD2CC02091E8001E -:10FDF00022FFF3CFE82FF92F07C08091F100819304 -:10FE0000CF016150704041F0CF012091F20030915C -:10FE1000F3002115310589F72091E8002B77209315 -:10FE2000E80061157105C9F605C08EB3882361F03D -:10FE3000853061F08091E80080FFF7CF80E0089581 -:10FE400083E0089581E0089582E0089583E00895B5 -:10FE50001F938EB3882361F01091E9001770109200 -:10FE6000E9008091E80083FF01C04CDE1093E900B7 -:10FE70001F910895F999FECF92BD81BDF89A9927F7 -:10FE800080B50895262FF999FECF1FBA92BD81BD86 -:10FE900020BD0FB6F894FA9AF99A0FBE019608950C -:04FEA000F894FFCF04 -:10FEA4004C55464143444300000000000000080153 -:10FEB40012011001020000089A2301000100000150 -:10FEC400000109023E000201008032090400000121 -:10FED4000202010005240010010424020405240682 -:10FEE40000010705820308000209040100020A0058 -:10FEF400000007050402100000070583021000003B -:10FF04000403090426034100560052002000430064 -:10FF140044004300200042006F006F0074006C0036 -:0CFF24006F0061006400650072000000C6 -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c deleted file mode 100644 index 1df3f03113..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168.c +++ /dev/null @@ -1,1071 +0,0 @@ -/**********************************************************/ -/* Serial Bootloader for Atmel megaAVR Controllers */ -/* */ -/* tested with ATmega8, ATmega128 and ATmega168 */ -/* should work with other mega's, see code for details */ -/* */ -/* ATmegaBOOT.c */ -/* */ -/* */ -/* 20090308: integrated Mega changes into main bootloader */ -/* source by D. Mellis */ -/* 20080930: hacked for Arduino Mega (with the 1280 */ -/* processor, backwards compatible) */ -/* by D. Cuartielles */ -/* 20070626: hacked for Arduino Diecimila (which auto- */ -/* resets when a USB connection is made to it) */ -/* by D. Mellis */ -/* 20060802: hacked for Arduino by D. Cuartielles */ -/* based on a previous hack by D. Mellis */ -/* and D. Cuartielles */ -/* */ -/* Monitor and debug functions were added to the original */ -/* code by Dr. Erik Lins, chip45.com. (See below) */ -/* */ -/* Thanks to Karl Pitrich for fixing a bootloader pin */ -/* problem and more informative LED blinking! */ -/* */ -/* For the latest version see: */ -/* http://www.chip45.com/ */ -/* */ -/* ------------------------------------------------------ */ -/* */ -/* based on stk500boot.c */ -/* Copyright (c) 2003, Jason P. Kyle */ -/* All rights reserved. */ -/* see avr1.org for original file and information */ -/* */ -/* This program is free software; you can redistribute it */ -/* and/or modify it under the terms of the GNU General */ -/* Public License as published by the Free Software */ -/* Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ -/* */ -/* This program is distributed in the hope that it will */ -/* be useful, but WITHOUT ANY WARRANTY; without even the */ -/* implied warranty of MERCHANTABILITY or FITNESS FOR A */ -/* PARTICULAR PURPOSE. See the GNU General Public */ -/* License for more details. */ -/* */ -/* You should have received a copy of the GNU General */ -/* Public License along with this program; if not, write */ -/* to the Free Software Foundation, Inc., */ -/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* */ -/* Licence can be viewed at */ -/* http://www.fsf.org/licenses/gpl.txt */ -/* */ -/* Target = Atmel AVR m128,m64,m32,m16,m8,m162,m163,m169, */ -/* m8515,m8535. ATmega161 has a very small boot block so */ -/* isn't supported. */ -/* */ -/* Tested with m168 */ -/**********************************************************/ - -/* $Id$ */ - - -/* some includes */ -#include -#include -#include -#include -#include -#include - -/* the current avr-libc eeprom functions do not support the ATmega168 */ -/* own eeprom write/read functions are used instead */ -#if !defined(__AVR_ATmega168__) || !defined(__AVR_ATmega328P__) -#include -#endif - -/* Use the F_CPU defined in Makefile */ - -/* 20060803: hacked by DojoCorp */ -/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */ -/* set the waiting time for the bootloader */ -/* get this from the Makefile instead */ -/* #define MAX_TIME_COUNT (F_CPU>>4) */ - -/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */ -#define MAX_ERROR_COUNT 5 - -/* set the UART baud rate */ -/* 20060803: hacked by DojoCorp */ -//#define BAUD_RATE 115200 -#ifndef BAUD_RATE -#define BAUD_RATE 19200 -#endif - - -/* SW_MAJOR and MINOR needs to be updated from time to time to avoid warning message from AVR Studio */ -/* never allow AVR Studio to do an update !!!! */ -#define HW_VER 0x02 -#define SW_MAJOR 0x01 -#define SW_MINOR 0x10 - - -/* Adjust to suit whatever pin your hardware uses to enter the bootloader */ -/* ATmega128 has two UARTS so two pins are used to enter bootloader and select UART */ -/* ATmega1280 has four UARTS, but for Arduino Mega, we will only use RXD0 to get code */ -/* BL0... means UART0, BL1... means UART1 */ -#ifdef __AVR_ATmega128__ -#define BL_DDR DDRF -#define BL_PORT PORTF -#define BL_PIN PINF -#define BL0 PINF7 -#define BL1 PINF6 -#elif defined __AVR_ATmega1280__ -/* we just don't do anything for the MEGA and enter bootloader on reset anyway*/ -#elif defined __AVR_ATmega1284P_ || defined __AVR_ATmega644P__ - -#else -/* other ATmegas have only one UART, so only one pin is defined to enter bootloader */ -#define BL_DDR DDRD -#define BL_PORT PORTD -#define BL_PIN PIND -#define BL PIND6 -#endif - - -/* onboard LED is used to indicate, that the bootloader was entered (3x flashing) */ -/* if monitor functions are included, LED goes on after monitor was entered */ -#if defined __AVR_ATmega128__ || defined __AVR_ATmega1280__ -/* Onboard LED is connected to pin PB7 (e.g. Crumb128, PROBOmega128, Savvy128, Arduino Mega) */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB7 -#elif defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB0 -#else -/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duomilanuove */ -/* other boards like e.g. Crumb8, Crumb168 are using PB2 */ -#define LED_DDR DDRB -#define LED_PORT PORTB -#define LED_PIN PINB -#define LED PINB5 -#endif - - -/* monitor functions will only be compiled when using ATmega128, due to bootblock size constraints */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) -#define MONITOR 1 -#endif - - -/* define various device id's */ -/* manufacturer byte is always the same */ -#define SIG1 0x1E // Yep, Atmel is the only manufacturer of AVR micros. Single source :( - -#if defined __AVR_ATmega1280__ -#define SIG2 0x97 -#define SIG3 0x03 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega1284P__ -#define SIG2 0x97 -#define SIG3 0x05 -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega1281__ -#define SIG2 0x97 -#define SIG3 0x04 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega644P__ -#define SIG2 0x96 -#define SIG3 0x0A -#define PAGE_SIZE 0x080U //128 words - -#elif defined __AVR_ATmega128__ -#define SIG2 0x97 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega64__ -#define SIG2 0x96 -#define SIG3 0x02 -#define PAGE_SIZE 0x80U //128 words - -#elif defined __AVR_ATmega32__ -#define SIG2 0x95 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega16__ -#define SIG2 0x94 -#define SIG3 0x03 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8__ -#define SIG2 0x93 -#define SIG3 0x07 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega88__ -#define SIG2 0x93 -#define SIG3 0x0a -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega168__ -#define SIG2 0x94 -#define SIG3 0x06 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega328P__ -#define SIG2 0x95 -#define SIG3 0x0F -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega162__ -#define SIG2 0x94 -#define SIG3 0x04 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega163__ -#define SIG2 0x94 -#define SIG3 0x02 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega169__ -#define SIG2 0x94 -#define SIG3 0x05 -#define PAGE_SIZE 0x40U //64 words - -#elif defined __AVR_ATmega8515__ -#define SIG2 0x93 -#define SIG3 0x06 -#define PAGE_SIZE 0x20U //32 words - -#elif defined __AVR_ATmega8535__ -#define SIG2 0x93 -#define SIG3 0x08 -#define PAGE_SIZE 0x20U //32 words -#endif - - -/* function prototypes */ -void putch(char); -char getch(void); -void getNch(uint8_t); -void byte_response(uint8_t); -void nothing_response(void); -char gethex(void); -void puthex(char); -void flash_led(uint8_t); - -/* some variables */ -union address_union { - uint16_t word; - uint8_t byte[2]; -} address; - -union length_union { - uint16_t word; - uint8_t byte[2]; -} length; - -struct flags_struct { - unsigned eeprom : 1; - unsigned rampz : 1; -} flags; - -uint8_t buff[256]; -uint8_t address_high; - -uint8_t pagesz=0x80; - -uint8_t i; -uint8_t bootuart = 0; - -uint8_t error_count = 0; - -void (*app_start)(void) = 0x0000; - - -/* main program starts here */ -int main(void) -{ - uint8_t ch,ch2; - uint16_t w; - -#ifdef WATCHDOG_MODS - ch = MCUSR; - MCUSR = 0; - - WDTCSR |= _BV(WDCE) | _BV(WDE); - WDTCSR = 0; - - // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot. - if (! (ch & _BV(EXTRF))) // if it's a not an external reset... - app_start(); // skip bootloader -#else - asm volatile("nop\n\t"); -#endif - - /* set pin direction for bootloader pin and enable pullup */ - /* for ATmega128, two pins need to be initialized */ -#ifdef __AVR_ATmega128__ - BL_DDR &= ~_BV(BL0); - BL_DDR &= ~_BV(BL1); - BL_PORT |= _BV(BL0); - BL_PORT |= _BV(BL1); -#else - /* We run the bootloader regardless of the state of this pin. Thus, don't - put it in a different state than the other pins. --DAM, 070709 - This also applies to Arduino Mega -- DC, 080930 - BL_DDR &= ~_BV(BL); - BL_PORT |= _BV(BL); - */ -#endif - - -#ifdef __AVR_ATmega128__ - /* check which UART should be used for booting */ - if(bit_is_clear(BL_PIN, BL0)) { - bootuart = 1; - } - else if(bit_is_clear(BL_PIN, BL1)) { - bootuart = 2; - } -#endif - -#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__ || defined __AVR_ATmega644P__ - /* the mega1280 chip has four serial ports ... we could eventually use any of them, or not? */ - /* however, we don't wanna confuse people, to avoid making a mess, we will stick to RXD0, TXD0 */ - bootuart = 1; -#endif - - /* check if flash is programmed already, if not start bootloader anyway */ - if(pgm_read_byte_near(0x0000) != 0xFF) { - -#ifdef __AVR_ATmega128__ - /* no UART was selected, start application */ - if(!bootuart) { - app_start(); - } -#else - /* check if bootloader pin is set low */ - /* we don't start this part neither for the m8, nor m168 */ - //if(bit_is_set(BL_PIN, BL)) { - // app_start(); - // } -#endif - } - -#ifdef __AVR_ATmega128__ - /* no bootuart was selected, default to uart 0 */ - if(!bootuart) { - bootuart = 1; - } -#endif - - - /* initialize UART(s) depending on CPU defined */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR0A = 0x00; - UCSR0C = 0x06; - UCSR0B = _BV(TXEN0)|_BV(RXEN0); - } - if(bootuart == 2) { - UBRR1L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR1H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSR1A = 0x00; - UCSR1C = 0x06; - UCSR1B = _BV(TXEN1)|_BV(RXEN1); - } -#elif defined __AVR_ATmega163__ - UBRR = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRRHI = (F_CPU/(BAUD_RATE*16L)-1) >> 8; - UCSRA = 0x00; - UCSRB = _BV(TXEN)|_BV(RXEN); -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - -#ifdef DOUBLE_SPEED - UCSR0A = (1<> 8; -#else - UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); - UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; -#endif - - UCSR0B = (1<>8; // set baud rate - UBRRL = (((F_CPU/BAUD_RATE)/16)-1); - UCSRB = (1<> 8; - UCSRA = 0x00; - UCSRC = 0x06; - UCSRB = _BV(TXEN)|_BV(RXEN); -#endif - -#if defined __AVR_ATmega1280__ - /* Enable internal pull-up resistor on pin D0 (RX), in order - to supress line noise that prevents the bootloader from - timing out (DAM: 20070509) */ - /* feature added to the Arduino Mega --DC: 080930 */ - DDRE &= ~_BV(PINE0); - PORTE |= _BV(PINE0); -#endif - - - /* set LED pin as output */ - LED_DDR |= _BV(LED); - - - /* flash onboard LED to signal entering of bootloader */ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - // 4x for UART0, 5x for UART1 - flash_led(NUM_LED_FLASHES + bootuart); -#else - flash_led(NUM_LED_FLASHES); -#endif - - /* 20050803: by DojoCorp, this is one of the parts provoking the - system to stop listening, cancelled from the original */ - //putch('\0'); - - /* forever loop */ - for (;;) { - - /* get character from UART */ - ch = getch(); - - /* A bunch of if...else if... gives smaller code than switch...case ! */ - - /* Hello is anyone home ? */ - if(ch=='0') { - nothing_response(); - } - - - /* Request programmer ID */ - /* Not using PROGMEM string due to boot block in m128 being beyond 64kB boundry */ - /* Would need to selectively manipulate RAMPZ, and it's only 9 characters anyway so who cares. */ - else if(ch=='1') { - if (getch() == ' ') { - putch(0x14); - putch('A'); - putch('V'); - putch('R'); - putch(' '); - putch('I'); - putch('S'); - putch('P'); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* AVR ISP/STK500 board commands DON'T CARE so default nothing_response */ - else if(ch=='@') { - ch2 = getch(); - if (ch2>0x85) getch(); - nothing_response(); - } - - - /* AVR ISP/STK500 board requests */ - else if(ch=='A') { - ch2 = getch(); - if(ch2==0x80) byte_response(HW_VER); // Hardware version - else if(ch2==0x81) byte_response(SW_MAJOR); // Software major version - else if(ch2==0x82) byte_response(SW_MINOR); // Software minor version - else if(ch2==0x98) byte_response(0x03); // Unknown but seems to be required by avr studio 3.56 - else byte_response(0x00); // Covers various unnecessary responses we don't care about - } - - - /* Device Parameters DON'T CARE, DEVICE IS FIXED */ - else if(ch=='B') { - getNch(20); - nothing_response(); - } - - - /* Parallel programming stuff DON'T CARE */ - else if(ch=='E') { - getNch(5); - nothing_response(); - } - - - /* P: Enter programming mode */ - /* R: Erase device, don't care as we will erase one page at a time anyway. */ - else if(ch=='P' || ch=='R') { - nothing_response(); - } - - - /* Leave programming mode */ - else if(ch=='Q') { - nothing_response(); -#ifdef WATCHDOG_MODS - // autoreset via watchdog (sneaky!) - WDTCSR = _BV(WDE); - while (1); // 16 ms -#endif - } - - - /* Set address, little endian. EEPROM in bytes, FLASH in words */ - /* Perhaps extra address bytes may be added in future to support > 128kB FLASH. */ - /* This might explain why little endian was used here, big endian used everywhere else. */ - else if(ch=='U') { - address.byte[0] = getch(); - address.byte[1] = getch(); - nothing_response(); - } - - - /* Universal SPI programming command, disabled. Would be used for fuses and lock bits. */ - else if(ch=='V') { - if (getch() == 0x30) { - getch(); - ch = getch(); - getch(); - if (ch == 0) { - byte_response(SIG1); - } else if (ch == 1) { - byte_response(SIG2); - } else { - byte_response(SIG3); - } - } else { - getNch(3); - byte_response(0x00); - } - } - - - /* Write memory, length is big endian and is in bytes */ - else if(ch=='d') { - length.byte[1] = getch(); - length.byte[0] = getch(); - flags.eeprom = 0; - if (getch() == 'E') flags.eeprom = 1; - for (w=0;w127) address_high = 0x01; //Only possible with m128, m256 will need 3rd address byte. FIXME - else address_high = 0x00; -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) - RAMPZ = address_high; -#endif - address.word = address.word << 1; //address * 2 -> byte location - /* if ((length.byte[0] & 0x01) == 0x01) length.word++; //Even up an odd number of bytes */ - if ((length.byte[0] & 0x01)) length.word++; //Even up an odd number of bytes - cli(); //Disable interrupts, just to be sure -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - while(bit_is_set(EECR,EEPE)); //Wait for previous EEPROM writes to complete -#else - while(bit_is_set(EECR,EEWE)); //Wait for previous EEPROM writes to complete -#endif - asm volatile( - "clr r17 \n\t" //page_word_count - "lds r30,address \n\t" //Address of FLASH location (in bytes) - "lds r31,address+1 \n\t" - "ldi r28,lo8(buff) \n\t" //Start of buffer array in RAM - "ldi r29,hi8(buff) \n\t" - "lds r24,length \n\t" //Length of data to be written (in bytes) - "lds r25,length+1 \n\t" - "length_loop: \n\t" //Main loop, repeat for number of words in block - "cpi r17,0x00 \n\t" //If page_word_count=0 then erase page - "brne no_page_erase \n\t" - "wait_spm1: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm1 \n\t" - "ldi r16,0x03 \n\t" //Erase page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "wait_spm2: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm2 \n\t" - - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "no_page_erase: \n\t" - "ld r0,Y+ \n\t" //Write 2 bytes into page buffer - "ld r1,Y+ \n\t" - - "wait_spm3: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm3 \n\t" - "ldi r16,0x01 \n\t" //Load r0,r1 into FLASH page buffer - "sts %0,r16 \n\t" - "spm \n\t" - - "inc r17 \n\t" //page_word_count++ - "cpi r17,%1 \n\t" - "brlo same_page \n\t" //Still same page in FLASH - "write_page: \n\t" - "clr r17 \n\t" //New page, write current one first - "wait_spm4: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm4 \n\t" -#ifdef __AVR_ATmega163__ - "andi r30,0x80 \n\t" // m163 requires Z6:Z1 to be zero during page write -#endif - "ldi r16,0x05 \n\t" //Write page pointed to by Z - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" - "ori r30,0x7E \n\t" // recover Z6:Z1 state after page write (had to be zero during write) -#endif - "wait_spm5: \n\t" - "lds r16,%0 \n\t" //Wait for previous spm to complete - "andi r16,1 \n\t" - "cpi r16,1 \n\t" - "breq wait_spm5 \n\t" - "ldi r16,0x11 \n\t" //Re-enable RWW section - "sts %0,r16 \n\t" - "spm \n\t" -#ifdef __AVR_ATmega163__ - ".word 0xFFFF \n\t" - "nop \n\t" -#endif - "same_page: \n\t" - "adiw r30,2 \n\t" //Next word in FLASH - "sbiw r24,2 \n\t" //length-2 - "breq final_write \n\t" //Finished - "rjmp length_loop \n\t" - "final_write: \n\t" - "cpi r17,0 \n\t" - "breq block_done \n\t" - "adiw r24,2 \n\t" //length+2, fool above check on length after short page write - "rjmp write_page \n\t" - "block_done: \n\t" - "clr __zero_reg__ \n\t" //restore zero register -#if defined __AVR_ATmega168__ || __AVR_ATmega328P__ || __AVR_ATmega128__ || __AVR_ATmega1280__ || __AVR_ATmega1281__ || __AVR_ATmega1284P__ || __AVR_ATmega644P__ - : "=m" (SPMCSR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#else - : "=m" (SPMCR) : "M" (PAGE_SIZE) : "r0","r16","r17","r24","r25","r28","r29","r30","r31" -#endif - ); - /* Should really add a wait for RWW section to be enabled, don't actually need it since we never */ - /* exit the bootloader without a power cycle anyhow */ - } - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } - } - - - /* Read memory block mode, length is big endian. */ - else if(ch=='t') { - length.byte[1] = getch(); - length.byte[0] = getch(); -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if (address.word>0x7FFF) flags.rampz = 1; // No go with m256, FIXME - else flags.rampz = 0; -#endif - address.word = address.word << 1; // address * 2 -> byte location - if (getch() == 'E') flags.eeprom = 1; - else flags.eeprom = 0; - if (getch() == ' ') { // Command terminator - putch(0x14); - for (w=0;w < length.word;w++) { // Can handle odd and even lengths okay - if (flags.eeprom) { // Byte access EEPROM read -#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while(EECR & (1<= 'a') { - return (a - 'a' + 0x0a); - } else if(a >= '0') { - return(a - '0'); - } - return a; -} - - -char gethex(void) { - return (gethexnib() << 4) + gethexnib(); -} - - -void puthex(char ch) { - char ah; - - ah = ch >> 4; - if(ah >= 0x0a) { - ah = ah - 0x0a + 'a'; - } else { - ah += '0'; - } - - ch &= 0x0f; - if(ch >= 0x0a) { - ch = ch - 0x0a + 'a'; - } else { - ch += '0'; - } - - putch(ah); - putch(ch); -} - - -void putch(char ch) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; - } - else if (bootuart == 2) { - while (!(UCSR1A & _BV(UDRE1))); - UDR1 = ch; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - while (!(UCSR0A & _BV(UDRE0))); - UDR0 = ch; -#else - /* m8,16,32,169,8515,8535,163 */ - while (!(UCSRA & _BV(UDRE))); - UDR = ch; -#endif -} - - -char getch(void) -{ -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - uint32_t count = 0; - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))) { - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - - return UDR1; - } - return 0; -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - uint32_t count = 0; - while(!(UCSR0A & _BV(RXC0))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR0; -#else - /* m8,16,32,169,8515,8535,163 */ - uint32_t count = 0; - while(!(UCSRA & _BV(RXC))){ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - /* HACKME:: here is a good place to count times*/ - count++; - if (count > MAX_TIME_COUNT) - app_start(); - } - return UDR; -#endif -} - - -void getNch(uint8_t count) -{ - while(count--) { -#if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644P__) - if(bootuart == 1) { - while(!(UCSR0A & _BV(RXC0))); - UDR0; - } - else if(bootuart == 2) { - while(!(UCSR1A & _BV(RXC1))); - UDR1; - } -#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) - getch(); -#else - /* m8,16,32,169,8515,8535,163 */ - /* 20060803 DojoCorp:: Addon coming from the previous Bootloader*/ - //while(!(UCSRA & _BV(RXC))); - //UDR; - getch(); // need to handle time out -#endif - } -} - - -void byte_response(uint8_t val) -{ - if (getch() == ' ') { - putch(0x14); - putch(val); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - - -void nothing_response(void) -{ - if (getch() == ' ') { - putch(0x14); - putch(0x10); - } else { - if (++error_count == MAX_ERROR_COUNT) - app_start(); - } -} - -void flash_led(uint8_t count) -{ - while (count--) { - LED_PORT |= _BV(LED); - _delay_ms(100); - LED_PORT &= ~_BV(LED); - _delay_ms(100); - } -} - - -/* end of file ATmegaBOOT.c */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex deleted file mode 100644 index a63dc8dd04..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E4E81682E4E4 -:10F17000F8068FE0080780E0180770F3E0910401BB -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E4E81682E4F8068FE00807BE -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00031EE44E0215030404040E1F700C00000F2 -:10F2E00028982FEF31EE44E0215030404040E1F7C4 -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100080E18093C4001092C5001092C00086E086 -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex deleted file mode 100644 index 7f5f3f3d46..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega1284p_8m.hex +++ /dev/null @@ -1,130 +0,0 @@ -:020000021000EC -:10F000000C9446F80C9465F80C9465F80C9465F82B -:10F010000C9465F80C9465F80C9465F80C9465F8FC -:10F020000C9465F80C9465F80C9465F80C9465F8EC -:10F030000C9465F80C9465F80C9465F80C9465F8DC -:10F040000C9465F80C9465F80C9465F80C9465F8CC -:10F050000C9465F80C9465F80C9465F80C9465F8BC -:10F060000C9465F80C9465F80C9465F80C9465F8AC -:10F070000C9465F80C9465F80C9465F80C9465F89C -:10F080000C9465F80C9465F80C9465F811241FBE77 -:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0E8EDFE -:10F0A000F7EF01E00BBF02C007900D92A230B1074D -:10F0B000D9F712E0A2E0B1E001C01D92AD30B10776 -:10F0C000E1F70E947EF90C94EAFB0C9400F8909111 -:10F0D0000201913019F0923041F008959091C000F2 -:10F0E00095FFFCCF8093C60008959091C80095FFCE -:10F0F000FCCF8093CE0008951F93982F95959595FA -:10F1000095959595905D182F1F701A304CF4105DF1 -:10F11000892F0E9467F8812F0E9467F81F91089538 -:10F12000195A892F0E9467F8812F0E9467F81F9152 -:10F130000895EF92FF920F931F9380910201813007 -:10F1400069F1823031F080E01F910F91FF90EF90D4 -:10F150000895EE24FF2487018091C80087FD17C021 -:10F160000894E11CF11C011D111D81E2E81681EAE1 -:10F17000F80687E0080780E0180770F3E0910401C3 -:10F18000F091050109958091C80087FFE9CF809132 -:10F19000CE001F910F91FF90EF900895EE24FF2471 -:10F1A00087018091C00087FD17C00894E11CF11C05 -:10F1B000011D111D81E2E81681EAF80687E00807C3 -:10F1C00080E0180770F3E0910401F09105010995C2 -:10F1D0008091C00087FFE9CF8091C6001F910F91F9 -:10F1E000FF90EF9008951F930E9499F8182F0E94A6 -:10F1F00067F8113634F410330CF01053812F1F913F -:10F2000008951755812F1F9108951F930E94F3F8B9 -:10F21000182F0E94F3F81295107F810F1F91089507 -:10F2200020910201882339F0213031F0223061F041 -:10F2300081508823C9F708959091C00097FFFCCFB3 -:10F240009091C6008150F5CF9091C80097FFFCCFF8 -:10F250009091CE008150EDCF1F93182F0E9499F806 -:10F26000803281F0809103018F5F809303018530AC -:10F2700011F01F910895E0910401F09105010995A5 -:10F280001F91089584E10E9467F8812F0E9467F81A -:10F2900080E10E9467F8EDCF0E9499F8803271F00A -:10F2A000809103018F5F80930301853009F00895F9 -:10F2B000E0910401F09105010995089584E10E940F -:10F2C00067F880E10E9467F8089515C0289A2FEF2B -:10F2D00030E742E0215030404040E1F700C00000FC -:10F2E00028982FEF30E742E0215030404040E1F7CE -:10F2F00000C000008150882349F70895EF92FF92E3 -:10F300000F931F93CF93DF93000081E0809302015E -:10F3100089E18093C4001092C5001092C00086E07D -:10F320008093C20088E18093C100209A81E00E940E -:10F3300065F90E9499F88033B1F18133B9F18034D5 -:10F3400009F454C0813409F45AC0823409F469C004 -:10F35000853409F46CC0803531F1823521F1813575 -:10F3600011F1853509F469C0863509F471C0843618 -:10F3700009F47AC0843709F4E1C0853709F43FC144 -:10F38000863709F44AC0809103018F5F809303019F -:10F39000853079F6E0910401F091050109950E940C -:10F3A00099F8803351F60E944CF9C3CF0E9499F826 -:10F3B000803249F784E10E9467F881E40E9467F88F -:10F3C00086E50E9467F882E50E9467F880E20E9465 -:10F3D00067F889E40E9467F883E50E9467F880E592 -:10F3E0000E9467F880E10E9467F8A3CF0E9499F815 -:10F3F0008638C8F20E9499F80E944CF99ACF0E9470 -:10F4000099F8803809F414C1813809F415C182389B -:10F4100009F416C1883909F407C180E00E942CF96B -:10F4200088CF84E10E9410F90E944CF982CF85E0D8 -:10F430000E9410F90E944CF97CCF0E9499F88093A9 -:10F4400006010E9499F8809307010E944CF971CF40 -:10F450000E9499F8803309F405C183E00E9410F9F5 -:10F4600080E00E942CF965CF0E9499F880930902F0 -:10F470000E9499F88093080280910C028E7F8093FD -:10F480000C020E9499F8853409F4FDC080910802AD -:10F49000909109020097A1F068E0E62E61E0F62E57 -:10F4A00000E010E00E9499F8F70181937F010F5F5F -:10F4B0001F4F80910802909109020817190790F3D5 -:10F4C0000E9499F8803209F05ECF80910C0280FF93 -:10F4D000ECC08091060190910701880F991F9093CD -:10F4E000070180930601209108023091090221153D -:10F4F0003105E9F048E0E42E41E0F42E00E010E0B0 -:10F50000F70161917F010E94DCFB809106019091DF -:10F510000701019690930701809306010F5F1F4F2B -:10F5200020910802309109020217130748F384E181 -:10F530000E9467F880E10E9467F8FBCE0E9499F86C -:10F54000809309020E9499F8809308028091060135 -:10F550009091070197FDA3C020910C022D7F20936D -:10F560000C02880F991F90930701809306010E9457 -:10F5700099F8853409F48DC080910C028E7F8093B8 -:10F580000C020E9499F8803209F0D3CE84E10E94E7 -:10F5900067F88091080290910902009709F440C031 -:10F5A00000E010E0809106019091070116C0FC0177 -:10F5B00084910E9467F8809106019091070101965D -:10F5C00090930701809306010F5F1F4F209108025F -:10F5D000309109020217130718F520910C0220FD43 -:10F5E00033C021FFE4CFA0E0B0E080509040AF4FA7 -:10F5F000BF4FABBFFC0187910E9467F8DCCF0E9430 -:10F6000099F8803209F0BFCE84E10E9467F88EE15C -:10F610000E9467F887E90E9467F885E00E9467F812 -:10F6200080E10E9467F885CE83E00E942CF981CEAC -:10F6300082E00E942CF97DCE81E00E942CF979CEE7 -:10F6400080E10E942CF975CE0E94D4FB0E9467F8DD -:10F650008091060190910701019690930701809394 -:10F660000601B2CF0E9499F80E9499F8082F0E94D3 -:10F6700099F8002309F48BC0013009F48CC085E0AF -:10F680000E942CF956CE80910C02816080930C026E -:10F69000FDCE80910C02816080930C0272CF20918C -:10F6A0000C02226020930C025CCF8091070187FD41 -:10F6B00076C010920B0280E08BBF80910601909182 -:10F6C0000701880F991F909307018093060180918D -:10F6D000080280FF09C080910802909109020196FA -:10F6E0009093090280930802F894F999FECF1127AC -:10F6F000E0910601F0910701C8E0D1E08091080295 -:10F7000090910902103091F400915700017001307E -:10F71000D9F303E000935700E8950091570001707A -:10F720000130D9F301E100935700E8950990199051 -:10F730000091570001700130D9F301E000935700A8 -:10F74000E8951395103898F0112700915700017033 -:10F750000130D9F305E000935700E8950091570078 -:10F7600001700130D9F301E100935700E89532961A -:10F77000029709F0C7CF103011F00296E5CF11249F -:10F7800084E10E9467F880E10E9467F8D2CD8EE1A3 -:10F790000E942CF9CECD87E90E942CF9CACDF1E068 -:10F7A000F0930B0281E088CFF999FECF92BD81BD25 -:10F7B000F89A992780B50895262FF999FECF1FBA98 -:10F7C00092BD81BD20BD0FB6F894FA9AF99A0FBE8A -:08F7D00001960895F894FFCFA3 -:02F7D8008000AF -:040000031000F000F9 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex deleted file mode 100644 index 2edf9c6773..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/ATmegaBOOT_168_atmega644p.hex +++ /dev/null @@ -1,126 +0,0 @@ -:10F800000C943E7C0C945B7C0C945B7C0C945B7C39 -:10F810000C945B7C0C945B7C0C945B7C0C945B7C0C -:10F820000C945B7C0C945B7C0C945B7C0C945B7CFC -:10F830000C945B7C0C945B7C0C945B7C0C945B7CEC -:10F840000C945B7C0C945B7C0C945B7C0C945B7CDC -:10F850000C945B7C0C945B7C0C945B7C0C945B7CCC -:10F860000C945B7C0C945B7C0C945B7C0C945B7CBC -:10F870000C945B7C0C945B7C0C945B7C11241FBE11 -:10F88000CFEFD0E1DEBFCDBF11E0A0E0B1E0EAEA0A -:10F89000FFEF02C005900D92A230B107D9F712E038 -:10F8A000A2E0B1E001C01D92AD30B107E1F70E94C6 -:10F8B000747D0C94D37F0C94007C90910201913064 -:10F8C00019F0923041F008959091C00095FFFCCF5F -:10F8D0008093C60008959091C80095FFFCCF809357 -:10F8E000CE0008951F93982F95959595959595958C -:10F8F000905D182F1F701A304CF4105D892F0E94F4 -:10F900005D7C812F0E945D7C1F910895195A892F7B -:10F910000E945D7C812F0E945D7C1F910895EF9273 -:10F92000FF920F931F9380910201813069F1823021 -:10F9300031F080E01F910F91FF90EF900895EE2439 -:10F94000FF2487018091C80087FD17C00894E11C3F -:10F95000F11C011D111D81E4E81682E4F8068FE018 -:10F96000080780E0180770F3E0910401F0910501A9 -:10F9700009958091C80087FFE9CF8091CE001F9143 -:10F980000F91FF90EF900895EE24FF24870180915E -:10F99000C00087FD17C00894E11CF11C011D111D5A -:10F9A00081E4E81682E4F8068FE0080780E0180793 -:10F9B00070F3E0910401F091050109958091C00078 -:10F9C00087FFE9CF8091C6001F910F91FF90EF90C4 -:10F9D00008951F930E948F7C182F0E945D7C113622 -:10F9E00034F410330CF01053812F1F9108951755E4 -:10F9F000812F1F9108951F930E94E97C182F0E9468 -:10FA0000E97C1295107F810F1F91089520910201CA -:10FA1000882339F0213031F0223061F08150882381 -:10FA2000C9F708959091C00097FFFCCF9091C60050 -:10FA30008150F5CF9091C80097FFFCCF9091CE00F8 -:10FA40008150EDCF1F93182F0E948F7C803281F060 -:10FA5000809103018F5F80930301853011F01F9126 -:10FA60000895E0910401F091050109951F91089511 -:10FA700084E10E945D7C812F0E945D7C80E10E9478 -:10FA80005D7CEDCF0E948F7C803271F0809103010C -:10FA90008F5F80930301853009F00895E0910401A0 -:10FAA000F09105010995089584E10E945D7C80E153 -:10FAB0000E945D7C089515C0289A2FEF31EE44E036 -:10FAC000215030404040E1F700C0000028982FEF5F -:10FAD00031EE44E0215030404040E1F700C00000EA -:10FAE0008150882349F70895EF92FF920F931F9357 -:10FAF000CF93DF93000081E08093020180E1809347 -:10FB0000C4001092C5001092C00086E08093C2002D -:10FB100088E18093C100209A81E00E945B7D0E9471 -:10FB20008F7C8033B1F18133B9F1803409F454C052 -:10FB3000813409F45AC0823409F469C0853409F467 -:10FB40006CC0803531F1823521F1813511F1853577 -:10FB500009F469C0863509F471C0843609F47AC0A5 -:10FB6000843709F4E1C0853709F439C1863709F4CF -:10FB70004AC0809103018F5F80930301853079F63D -:10FB8000E0910401F091050109950E948F7C80337A -:10FB900051F60E94427DC3CF0E948F7C803249F78C -:10FBA00084E10E945D7C81E40E945D7C86E50E9488 -:10FBB0005D7C82E50E945D7C80E20E945D7C89E440 -:10FBC0000E945D7C83E50E945D7C80E50E945D7CF7 -:10FBD00080E10E945D7CA3CF0E948F7C8638C8F2B2 -:10FBE0000E948F7C0E94427D9ACF0E948F7C803839 -:10FBF00009F40EC1813809F40FC1823809F410C12B -:10FC0000883909F401C180E00E94227D88CF84E117 -:10FC10000E94067D0E94427D82CF85E00E94067D83 -:10FC20000E94427D7CCF0E948F7C809306010E94BF -:10FC30008F7C809307010E94427D71CF0E948F7C50 -:10FC4000803309F4F1C083E00E94067D80E00E94C9 -:10FC5000227D65CF0E948F7C809309020E948F7C59 -:10FC60008093080280910C028E7F80930C020E9488 -:10FC70008F7C853409F4E9C08091080290910902D3 -:10FC80000097A1F068E0E62E61E0F62E00E010E0BB -:10FC90000E948F7CF70181937F010F5F1F4F80913E -:10FCA0000802909109020817190790F30E948F7CAF -:10FCB000803209F05ECF80910C0280FFE5C0809118 -:10FCC000060190910701880F991F90930701809377 -:10FCD0000601209108023091090221153105E9F051 -:10FCE00048E0E42E41E0F42E00E010E0F7016191DD -:10FCF0007F010E94C57F80910601909107010196C6 -:10FD000090930701809306010F5F1F4F2091080217 -:10FD1000309109020217130748F384E10E945D7CC9 -:10FD200080E10E945D7CFBCE0E948F7C8093090263 -:10FD30000E948F7C809308028091060190910701B8 -:10FD400097FD9CC020910C022D7F20930C02880F00 -:10FD5000991F90930701809306010E948F7C853440 -:10FD600009F486C080910C028E7F80930C020E9461 -:10FD70008F7C803209F0D3CE84E10E945D7C20919B -:10FD800008023091090221153105D1F100E010E09F -:10FD900080910601909107010CC041FF5CC0019663 -:10FDA00090930701809306010F5F1F4F02171307FF -:10FDB00038F540910C0240FFF0CF0E94BD7F0E94B9 -:10FDC0005D7C809106019091070101969093070157 -:10FDD000809306012091080230910902E5CF0E942C -:10FDE0008F7C803209F0C5CE84E10E945D7C8EE17B -:10FDF0000E945D7C86E90E945D7C8AE00E945D7CB9 -:10FE000080E10E945D7C8BCE83E00E94227D87CEC4 -:10FE100082E00E94227D83CE81E00E94227D7FCEFF -:10FE200080E10E94227D7BCE0E948F7C0E948F7C8D -:10FE3000082F0E948F7C002309F497C0013009F439 -:10FE400098C08AE00E94227D6ACE80910C02816077 -:10FE500080930C0211CFFC0184910E945D7C209163 -:10FE6000080230910902809106019091070197CF15 -:10FE700080910C02816080930C0279CF20910C025A -:10FE8000226020930C0263CF80910701880F880BBA -:10FE9000817080930B028091060190910701880F79 -:10FEA000991F90930701809306018091080280FFBB -:10FEB00009C080910802909109020196909309026D -:10FEC00080930802F894F999FECF1127E09106017A -:10FED000F0910701C8E0D1E08091080290910902F9 -:10FEE000103091F40091570001700130D9F303E014 -:10FEF00000935700E8950091570001700130D9F345 -:10FF000001E100935700E89509901990009157007E -:10FF100001700130D9F301E000935700E895139583 -:10FF2000103898F011270091570001700130D9F373 -:10FF300005E000935700E8950091570001700130EB -:10FF4000D9F301E100935700E8953296029709F042 -:10FF5000C7CF103011F00296E5CF112484E10E9442 -:10FF60005D7C80E10E945D7CDACD8EE10E94227D85 -:10FF7000D6CD86E90E94227DD2CDF999FECF92BDE1 -:10FF800081BDF89A992780B50895262FF999FECF5B -:10FF90001FBA92BD81BD20BD0FB6F894FA9AF99AA6 -:0AFFA0000FBE01960895F894FFCFFC -:02FFAA008000D5 -:040000030000F80001 -:00000001FF diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/Makefile b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/Makefile deleted file mode 100644 index 3f2bb61567..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/bootloaders/atmega/Makefile +++ /dev/null @@ -1,254 +0,0 @@ -# Makefile for ATmegaBOOT -# E.Lins, 18.7.2005 -# $Id$ -# -# Instructions -# -# To make bootloader .hex file: -# make diecimila -# make lilypad -# make ng -# etc... -# -# To burn bootloader .hex file: -# make diecimila_isp -# make lilypad_isp -# make ng_isp -# etc... - -# program name should not be changed... -PROGRAM = ATmegaBOOT_168 - -# enter the parameters for the avrdude isp tool -ISPTOOL = stk500v2 -ISPPORT = usb -ISPSPEED = -b 115200 - -MCU_TARGET = atmega168 -LDSECTION = --section-start=.text=0x3800 - -# the efuse should really be 0xf8; since, however, only the lower -# three bits of that byte are used on the atmega168, avrdude gets -# confused if you specify 1's for the higher bits, see: -# http://tinker.it/now/2007/02/24/the-tale-of-avrdude-atmega168-and-extended-bits-fuses/ -# -# similarly, the lock bits should be 0xff instead of 0x3f (to -# unlock the bootloader section) and 0xcf instead of 0x0f (to -# lock it), but since the high two bits of the lock byte are -# unused, avrdude would get confused. - -ISPFUSES = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --e -u -U lock:w:0x3f:m -U efuse:w:0x$(EFUSE):m -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m -ISPFLASH = avrdude -c $(ISPTOOL) -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ --U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x0f:m - -STK500 = "C:\Program Files\Atmel\AVR Tools\STK500\Stk500.exe" -STK500-1 = $(STK500) -e -d$(MCU_TARGET) -pf -vf -if$(PROGRAM)_$(TARGET).hex \ --lFF -LFF -f$(HFUSE)$(LFUSE) -EF8 -ms -q -cUSB -I200kHz -s -wt -STK500-2 = $(STK500) -d$(MCU_TARGET) -ms -q -lCF -LCF -cUSB -I200kHz -s -wt - - -OBJ = $(PROGRAM).o -OPTIMIZE = -O2 - -DEFS = -LIBS = - -CC = avr-gcc - -# Override is only needed by avr-lib build system. - -override CFLAGS = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS) -override LDFLAGS = -Wl,$(LDSECTION) -#override LDFLAGS = -Wl,-Map,$(PROGRAM).map,$(LDSECTION) - -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump - -all: - -lilypad: TARGET = lilypad -lilypad: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -lilypad: AVR_FREQ = 8000000L -lilypad: $(PROGRAM)_lilypad.hex - -lilypad_isp: lilypad -lilypad_isp: TARGET = lilypad -lilypad_isp: HFUSE = DD -lilypad_isp: LFUSE = E2 -lilypad_isp: EFUSE = 00 -lilypad_isp: isp - -lilypad_resonator: TARGET = lilypad_resonator -lilypad_resonator: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=3' -lilypad_resonator: AVR_FREQ = 8000000L -lilypad_resonator: $(PROGRAM)_lilypad_resonator.hex - -lilypad_resonator_isp: lilypad_resonator -lilypad_resonator_isp: TARGET = lilypad_resonator -lilypad_resonator_isp: HFUSE = DD -lilypad_resonator_isp: LFUSE = C6 -lilypad_resonator_isp: EFUSE = 00 -lilypad_resonator_isp: isp - -pro8: TARGET = pro_8MHz -pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro8: AVR_FREQ = 8000000L -pro8: $(PROGRAM)_pro_8MHz.hex - -pro8_isp: pro8 -pro8_isp: TARGET = pro_8MHz -pro8_isp: HFUSE = DD -pro8_isp: LFUSE = C6 -pro8_isp: EFUSE = 00 -pro8_isp: isp - -pro16: TARGET = pro_16MHz -pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro16: AVR_FREQ = 16000000L -pro16: $(PROGRAM)_pro_16MHz.hex - -pro16_isp: pro16 -pro16_isp: TARGET = pro_16MHz -pro16_isp: HFUSE = DD -pro16_isp: LFUSE = C6 -pro16_isp: EFUSE = 00 -pro16_isp: isp - -pro20: TARGET = pro_20mhz -pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS' -pro20: AVR_FREQ = 20000000L -pro20: $(PROGRAM)_pro_20mhz.hex - -pro20_isp: pro20 -pro20_isp: TARGET = pro_20mhz -pro20_isp: HFUSE = DD -pro20_isp: LFUSE = C6 -pro20_isp: EFUSE = 00 -pro20_isp: isp - -diecimila: TARGET = diecimila -diecimila: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -diecimila: AVR_FREQ = 16000000L -diecimila: $(PROGRAM)_diecimila.hex - -diecimila_isp: diecimila -diecimila_isp: TARGET = diecimila -diecimila_isp: HFUSE = DD -diecimila_isp: LFUSE = FF -diecimila_isp: EFUSE = 00 -diecimila_isp: isp - -ng: TARGET = ng -ng: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>1' '-DNUM_LED_FLASHES=3' -ng: AVR_FREQ = 16000000L -ng: $(PROGRAM)_ng.hex - -ng_isp: ng -ng_isp: TARGET = ng -ng_isp: HFUSE = DD -ng_isp: LFUSE = FF -ng_isp: EFUSE = 00 -ng_isp: isp - -atmega328: TARGET = atmega328 -atmega328: MCU_TARGET = atmega328p -atmega328: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -atmega328: AVR_FREQ = 16000000L -atmega328: LDSECTION = --section-start=.text=0x7800 -atmega328: $(PROGRAM)_atmega328.hex - -atmega328_isp: atmega328 -atmega328_isp: TARGET = atmega328 -atmega328_isp: MCU_TARGET = atmega328p -atmega328_isp: HFUSE = DA -atmega328_isp: LFUSE = FF -atmega328_isp: EFUSE = 05 -atmega328_isp: isp - -atmega328_pro8: TARGET = atmega328_pro_8MHz -atmega328_pro8: MCU_TARGET = atmega328p -atmega328_pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' -DBAUD_RATE=57600 -DDOUBLE_SPEED -atmega328_pro8: AVR_FREQ = 8000000L -atmega328_pro8: LDSECTION = --section-start=.text=0x7800 -atmega328_pro8: $(PROGRAM)_atmega328_pro_8MHz.hex - -atmega328_pro8_isp: atmega328_pro8 -atmega328_pro8_isp: TARGET = atmega328_pro_8MHz -atmega328_pro8_isp: MCU_TARGET = atmega328p -atmega328_pro8_isp: HFUSE = DA -atmega328_pro8_isp: LFUSE = FF -atmega328_pro8_isp: EFUSE = 05 -atmega328_pro8_isp: isp - -mega: TARGET = atmega1280 -mega: MCU_TARGET = atmega1280 -mega: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' -DBAUD_RATE=57600 -mega: AVR_FREQ = 16000000L -mega: LDSECTION = --section-start=.text=0x1F000 -mega: $(PROGRAM)_atmega1280.hex - -mega_isp: mega -mega_isp: TARGET = atmega1280 -mega_isp: MCU_TARGET = atmega1280 -mega_isp: HFUSE = DA -mega_isp: LFUSE = FF -mega_isp: EFUSE = F5 -mega_isp: isp - -atmega1284p: TARGET = atmega1284p -atmega1284p: MCU_TARGET = atmega1284p -atmega1284p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega1284p: AVR_FREQ = 16000000L -atmega1284p: LDSECTION = --section-start=.text=0x1F000 -atmega1284p: $(PROGRAM)_atmega1284p.hex - -atmega1284p_8m: TARGET = atmega1284p -atmega1284p_8m: MCU_TARGET = atmega1284p -atmega1284p_8m: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=19200' -atmega1284p_8m: AVR_FREQ = 8000000L -atmega1284p_8m: LDSECTION = --section-start=.text=0x1F000 -atmega1284p_8m: $(PROGRAM)_atmega1284p_8m.hex - -atmega644p: TARGET = atmega644p -atmega644p: MCU_TARGET = atmega644p -atmega644p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600' -atmega644p: AVR_FREQ = 16000000L -atmega644p: LDSECTION = --section-start=.text=0xF800 -atmega644p: $(PROGRAM)_atmega644p.hex - - -atmega1284p_isp: atmega1284p -atmega1284p_isp: TARGET = atmega1284p -atmega1284p_isp: MCU_TARGET = atmega1284p -atmega1284p_isp: HFUSE = DC -atmega1284p_isp: LFUSE = FF -atmega1284p_isp: EFUSE = FD -atmega1284p_isp: isp - -isp: $(TARGET) - $(ISPFUSES) - $(ISPFLASH) - -isp-stk500: $(PROGRAM)_$(TARGET).hex - $(STK500-1) - $(STK500-2) - -%.elf: $(OBJ) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -clean: - rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex - -%.lst: %.elf - $(OBJDUMP) -h -S $< > $@ - -%.hex: %.elf - $(OBJCOPY) -j .text -j .data -O ihex $< $@ - -%.srec: %.elf - $(OBJCOPY) -j .text -j .data -O srec $< $@ - -%.bin: %.elf - $(OBJCOPY) -j .text -j .data -O binary $< $@ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Arduino.h deleted file mode 100644 index 16dd759b33..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Arduino.h +++ /dev/null @@ -1,249 +0,0 @@ -/* - Arduino.h - Main include file for the Arduino SDK - Copyright (c) 2005-2013 Arduino Team. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -void yield(void); - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 -#define EULER 2.718281828459045235360287471352 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - -// avr-libc defines _NOP() since 1.6.2 -#ifndef _NOP -#define _NOP() do { __asm__ volatile ("nop"); } while (0) -#endif - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef bool boolean; -typedef uint8_t byte; - -void init(void); -void initVariant(void); - -int atexit(void (*func)()) __attribute__((weak)); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#define NOT_AN_INTERRUPT -1 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER1C 5 -#define TIMER2 6 -#define TIMER2A 7 -#define TIMER2B 8 - -#define TIMER3A 9 -#define TIMER3B 10 -#define TIMER3C 11 -#define TIMER4A 12 -#define TIMER4B 13 -#define TIMER4C 14 -#define TIMER4D 15 -#define TIMER5A 16 -#define TIMER5B 17 -#define TIMER5C 18 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" -#include "USBAPI.h" -#if defined(HAVE_HWSERIAL0) && defined(HAVE_CDCSERIAL) -#error "Targets with both UART0 and CDC serial not supported" -#endif - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/CDC.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/CDC.cpp deleted file mode 100644 index 5d4f2a0808..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/CDC.cpp +++ /dev/null @@ -1,211 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - } - - if (CDC_SET_LINE_CODING == r || CDC_SET_CONTROL_LINE_STATE == r) - { - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - - // We check DTR state to determine if host port is open (bit 0 of lineState). - if (1200 == _usbLineInfo.dwDTERate && (_usbLineInfo.lineState & 0x01) == 0) - { - *(uint16_t *)0x0800 = 0x7777; - wdt_enable(WDTO_120MS); - } - else - { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0800 = 0x0; - } - } - return true; - } - return false; -} - - -void Serial_::begin(unsigned long /* baud_count */) -{ - peek_buffer = -1; -} - -void Serial_::begin(unsigned long /* baud_count */, byte /* config */) -{ - peek_buffer = -1; -} - -void Serial_::end(void) -{ -} - -int Serial_::available(void) -{ - if (peek_buffer >= 0) { - return 1 + USB_Available(CDC_RX); - } - return USB_Available(CDC_RX); -} - -int Serial_::peek(void) -{ - if (peek_buffer < 0) - peek_buffer = USB_Recv(CDC_RX); - return peek_buffer; -} - -int Serial_::read(void) -{ - if (peek_buffer >= 0) { - int c = peek_buffer; - peek_buffer = -1; - return c; - } - return USB_Recv(CDC_RX); -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - return write(&c, 1); -} - -size_t Serial_::write(const uint8_t *buffer, size_t size) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - if (_usbLineInfo.lineState > 0) { - int r = USB_Send(CDC_TX,buffer,size); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Client.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Client.h deleted file mode 100644 index b8e5d935f2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Client.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Client.h - Base class that provides Client - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HID.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HID.cpp deleted file mode 100644 index 75c37b24b2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HID.cpp +++ /dev/null @@ -1,518 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "USBAPI.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#ifdef RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int /* i */) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - release(c); // Keyup - return p; // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.cpp deleted file mode 100644 index 41935e3205..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.cpp +++ /dev/null @@ -1,252 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "HardwareSerial.h" -#include "HardwareSerial_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(HAVE_HWSERIAL0) || defined(HAVE_HWSERIAL1) || defined(HAVE_HWSERIAL2) || defined(HAVE_HWSERIAL3) - -// SerialEvent functions are weak, so when the user doesn't define them, -// the linker just sets their address to 0 (which is checked below). -// The Serialx_available is just a wrapper around Serialx.available(), -// but we can refer to it weakly so we don't pull in the entire -// HardwareSerial instance if the user doesn't also refer to it. -#if defined(HAVE_HWSERIAL0) - void serialEvent() __attribute__((weak)); - bool Serial0_available() __attribute__((weak)); -#endif - -#if defined(HAVE_HWSERIAL1) - void serialEvent1() __attribute__((weak)); - bool Serial1_available() __attribute__((weak)); -#endif - -#if defined(HAVE_HWSERIAL2) - void serialEvent2() __attribute__((weak)); - bool Serial2_available() __attribute__((weak)); -#endif - -#if defined(HAVE_HWSERIAL3) - void serialEvent3() __attribute__((weak)); - bool Serial3_available() __attribute__((weak)); -#endif - -void serialEventRun(void) -{ -#if defined(HAVE_HWSERIAL0) - if (Serial0_available && serialEvent && Serial0_available()) serialEvent(); -#endif -#if defined(HAVE_HWSERIAL1) - if (Serial1_available && serialEvent1 && Serial1_available()) serialEvent1(); -#endif -#if defined(HAVE_HWSERIAL2) - if (Serial2_available && serialEvent2 && Serial2_available()) serialEvent2(); -#endif -#if defined(HAVE_HWSERIAL3) - if (Serial3_available && serialEvent3 && Serial3_available()) serialEvent3(); -#endif -} - -// Actual interrupt handlers ////////////////////////////////////////////////////////////// - -void HardwareSerial::_tx_udr_empty_irq(void) -{ - // If interrupts are enabled, there must be more data in the output - // buffer. Send the next byte - unsigned char c = _tx_buffer[_tx_buffer_tail]; - _tx_buffer_tail = (_tx_buffer_tail + 1) % SERIAL_TX_BUFFER_SIZE; - - *_udr = c; - - // clear the TXC bit -- "can be cleared by writing a one to its bit - // location". This makes sure flush() won't return until the bytes - // actually got written - sbi(*_ucsra, TXC0); - - if (_tx_buffer_head == _tx_buffer_tail) { - // Buffer empty, so disable interrupts - cbi(*_ucsrb, UDRIE0); - } -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud, byte config) -{ - // Try u2x mode first - uint16_t baud_setting = (F_CPU / 4 / baud - 1) / 2; - *_ucsra = 1 << U2X0; - - // hardcoded exception for 57600 for compatibility with the bootloader - // shipped with the Duemilanove and previous boards and the firmware - // on the 8U2 on the Uno and Mega 2560. Also, The baud_setting cannot - // be > 4095, so switch back to non-u2x mode if the baud rate is too - // low. - if (((F_CPU == 16000000UL) && (baud == 57600)) || (baud_setting >4095)) - { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - // assign the baud_setting, a.k.a. ubrr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - _written = false; - - //set the data bits, parity, and stop bits -#if defined(__AVR_ATmega8__) - config |= 0x80; // select UCSRC register (shared with UBRRH) -#endif - *_ucsrc = config; - - sbi(*_ucsrb, RXEN0); - sbi(*_ucsrb, TXEN0); - sbi(*_ucsrb, RXCIE0); - cbi(*_ucsrb, UDRIE0); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer_head != _tx_buffer_tail) - ; - - cbi(*_ucsrb, RXEN0); - cbi(*_ucsrb, TXEN0); - cbi(*_ucsrb, RXCIE0); - cbi(*_ucsrb, UDRIE0); - - // clear any received data - _rx_buffer_head = _rx_buffer_tail; -} - -int HardwareSerial::available(void) -{ - return ((unsigned int)(SERIAL_RX_BUFFER_SIZE + _rx_buffer_head - _rx_buffer_tail)) % SERIAL_RX_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer_head == _rx_buffer_tail) { - return -1; - } else { - return _rx_buffer[_rx_buffer_tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer_head == _rx_buffer_tail) { - return -1; - } else { - unsigned char c = _rx_buffer[_rx_buffer_tail]; - _rx_buffer_tail = (rx_buffer_index_t)(_rx_buffer_tail + 1) % SERIAL_RX_BUFFER_SIZE; - return c; - } -} - -int HardwareSerial::availableForWrite(void) -{ -#if (SERIAL_TX_BUFFER_SIZE>256) - uint8_t oldSREG = SREG; - cli(); -#endif - tx_buffer_index_t head = _tx_buffer_head; - tx_buffer_index_t tail = _tx_buffer_tail; -#if (SERIAL_TX_BUFFER_SIZE>256) - SREG = oldSREG; -#endif - if (head >= tail) return SERIAL_TX_BUFFER_SIZE - 1 - head + tail; - return tail - head - 1; -} - -void HardwareSerial::flush() -{ - // If we have never written a byte, no need to flush. This special - // case is needed since there is no way to force the TXC (transmit - // complete) bit to 1 during initialization - if (!_written) - return; - - while (bit_is_set(*_ucsrb, UDRIE0) || bit_is_clear(*_ucsra, TXC0)) { - if (bit_is_clear(SREG, SREG_I) && bit_is_set(*_ucsrb, UDRIE0)) - // Interrupts are globally disabled, but the DR empty - // interrupt should be enabled, so poll the DR empty flag to - // prevent deadlock - if (bit_is_set(*_ucsra, UDRE0)) - _tx_udr_empty_irq(); - } - // If we get here, nothing is queued anymore (DRIE is disabled) and - // the hardware finished tranmission (TXC is set). -} - -size_t HardwareSerial::write(uint8_t c) -{ - // If the buffer and the data register is empty, just write the byte - // to the data register and be done. This shortcut helps - // significantly improve the effective datarate at high (> - // 500kbit/s) bitrates, where interrupt overhead becomes a slowdown. - if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) { - *_udr = c; - sbi(*_ucsra, TXC0); - return 1; - } - tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - while (i == _tx_buffer_tail) { - if (bit_is_clear(SREG, SREG_I)) { - // Interrupts are disabled, so we'll have to poll the data - // register empty flag ourselves. If it is set, pretend an - // interrupt has happened and call the handler to free up - // space for us. - if(bit_is_set(*_ucsra, UDRE0)) - _tx_udr_empty_irq(); - } else { - // nop, the interrupt handler will free up space for us - } - } - - _tx_buffer[_tx_buffer_head] = c; - _tx_buffer_head = i; - - sbi(*_ucsrb, UDRIE0); - _written = true; - - return 1; -} - - -#endif // whole file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.h deleted file mode 100644 index 7dc2aa98c4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -// NOTE: a "power of 2" buffer size is reccomended to dramatically -// optimize all the modulo operations for ring buffers. -#if !(defined(SERIAL_TX_BUFFER_SIZE) && defined(SERIAL_RX_BUFFER_SIZE)) -#if (RAMEND < 1000) -#define SERIAL_TX_BUFFER_SIZE 16 -#define SERIAL_RX_BUFFER_SIZE 16 -#else -#define SERIAL_TX_BUFFER_SIZE 64 -#define SERIAL_RX_BUFFER_SIZE 64 -#endif -#endif -#if (SERIAL_TX_BUFFER_SIZE>256) -typedef uint16_t tx_buffer_index_t; -#else -typedef uint8_t tx_buffer_index_t; -#endif -#if (SERIAL_RX_BUFFER_SIZE>256) -typedef uint16_t rx_buffer_index_t; -#else -typedef uint8_t rx_buffer_index_t; -#endif - -// Define config for Serial.begin(baud, config); -#define SERIAL_5N1 0x00 -#define SERIAL_6N1 0x02 -#define SERIAL_7N1 0x04 -#define SERIAL_8N1 0x06 -#define SERIAL_5N2 0x08 -#define SERIAL_6N2 0x0A -#define SERIAL_7N2 0x0C -#define SERIAL_8N2 0x0E -#define SERIAL_5E1 0x20 -#define SERIAL_6E1 0x22 -#define SERIAL_7E1 0x24 -#define SERIAL_8E1 0x26 -#define SERIAL_5E2 0x28 -#define SERIAL_6E2 0x2A -#define SERIAL_7E2 0x2C -#define SERIAL_8E2 0x2E -#define SERIAL_5O1 0x30 -#define SERIAL_6O1 0x32 -#define SERIAL_7O1 0x34 -#define SERIAL_8O1 0x36 -#define SERIAL_5O2 0x38 -#define SERIAL_6O2 0x3A -#define SERIAL_7O2 0x3C -#define SERIAL_8O2 0x3E - -class HardwareSerial : public Stream -{ - protected: - volatile uint8_t * const _ubrrh; - volatile uint8_t * const _ubrrl; - volatile uint8_t * const _ucsra; - volatile uint8_t * const _ucsrb; - volatile uint8_t * const _ucsrc; - volatile uint8_t * const _udr; - // Has any byte been written to the UART since begin() - bool _written; - - volatile rx_buffer_index_t _rx_buffer_head; - volatile rx_buffer_index_t _rx_buffer_tail; - volatile tx_buffer_index_t _tx_buffer_head; - volatile tx_buffer_index_t _tx_buffer_tail; - - // Don't put any members after these buffers, since only the first - // 32 bytes of this struct can be accessed quickly using the ldd - // instruction. - unsigned char _rx_buffer[SERIAL_RX_BUFFER_SIZE]; - unsigned char _tx_buffer[SERIAL_TX_BUFFER_SIZE]; - - public: - inline HardwareSerial( - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr); - void begin(unsigned long baud) { begin(baud, SERIAL_8N1); } - void begin(unsigned long, uint8_t); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - int availableForWrite(void); - virtual void flush(void); - virtual size_t write(uint8_t); - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool() { return true; } - - // Interrupt handlers - Not intended to be called externally - inline void _rx_complete_irq(void); - void _tx_udr_empty_irq(void); -}; - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; - #define HAVE_HWSERIAL0 -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; - #define HAVE_HWSERIAL1 -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; - #define HAVE_HWSERIAL2 -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; - #define HAVE_HWSERIAL3 -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial0.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial0.cpp deleted file mode 100644 index 1146eebab6..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial0.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - HardwareSerial0.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#include "Arduino.h" -#include "HardwareSerial.h" -#include "HardwareSerial_private.h" - -// Each HardwareSerial is defined in its own file, sine the linker pulls -// in the entire file when any element inside is used. --gc-sections can -// additionally cause unused symbols to be dropped, but ISRs have the -// "used" attribute so are never dropped and they keep the -// HardwareSerial instance in as well. Putting each instance in its own -// file prevents the linker from pulling in any unused instances in the -// first place. - -#if defined(HAVE_HWSERIAL0) - -#if defined(USART_RX_vect) - ISR(USART_RX_vect) -#elif defined(USART0_RX_vect) - ISR(USART0_RX_vect) -#elif defined(USART_RXC_vect) - ISR(USART_RXC_vect) // ATmega8 -#else - #error "Don't know what the Data Received vector is called for Serial" -#endif - { - Serial._rx_complete_irq(); - } - -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#else - #error "Don't know what the Data Register Empty vector is called for Serial" -#endif -{ - Serial._tx_udr_empty_irq(); -} - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&UBRRH, &UBRRL, &UCSRA, &UCSRB, &UCSRC, &UDR); -#else - HardwareSerial Serial(&UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UCSR0C, &UDR0); -#endif - -// Function that can be weakly referenced by serialEventRun to prevent -// pulling in this file if it's not otherwise used. -bool Serial0_available() { - return Serial.available(); -} - -#endif // HAVE_HWSERIAL0 diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial1.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial1.cpp deleted file mode 100644 index 19625e235d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial1.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - HardwareSerial1.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#include "Arduino.h" -#include "HardwareSerial.h" -#include "HardwareSerial_private.h" - -// Each HardwareSerial is defined in its own file, sine the linker pulls -// in the entire file when any element inside is used. --gc-sections can -// additionally cause unused symbols to be dropped, but ISRs have the -// "used" attribute so are never dropped and they keep the -// HardwareSerial instance in as well. Putting each instance in its own -// file prevents the linker from pulling in any unused instances in the -// first place. - -#if defined(HAVE_HWSERIAL1) - -#if defined(UART1_RX_vect) -ISR(UART1_RX_vect) -#elif defined(USART1_RX_vect) -ISR(USART1_RX_vect) -#else -#error "Don't know what the Data Register Empty vector is called for Serial1" -#endif -{ - Serial1._rx_complete_irq(); -} - -#if defined(UART1_UDRE_vect) -ISR(UART1_UDRE_vect) -#elif defined(USART1_UDRE_vect) -ISR(USART1_UDRE_vect) -#else -#error "Don't know what the Data Register Empty vector is called for Serial1" -#endif -{ - Serial1._tx_udr_empty_irq(); -} - -HardwareSerial Serial1(&UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UCSR1C, &UDR1); - -// Function that can be weakly referenced by serialEventRun to prevent -// pulling in this file if it's not otherwise used. -bool Serial1_available() { - return Serial1.available(); -} - -#endif // HAVE_HWSERIAL1 diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial2.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial2.cpp deleted file mode 100644 index fd334ae15b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - HardwareSerial2.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#include "Arduino.h" -#include "HardwareSerial.h" -#include "HardwareSerial_private.h" - -// Each HardwareSerial is defined in its own file, sine the linker pulls -// in the entire file when any element inside is used. --gc-sections can -// additionally cause unused symbols to be dropped, but ISRs have the -// "used" attribute so are never dropped and they keep the -// HardwareSerial instance in as well. Putting each instance in its own -// file prevents the linker from pulling in any unused instances in the -// first place. - -#if defined(HAVE_HWSERIAL2) - -ISR(USART2_RX_vect) -{ - Serial2._rx_complete_irq(); -} - -ISR(USART2_UDRE_vect) -{ - Serial2._tx_udr_empty_irq(); -} - -HardwareSerial Serial2(&UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UCSR2C, &UDR2); - -// Function that can be weakly referenced by serialEventRun to prevent -// pulling in this file if it's not otherwise used. -bool Serial2_available() { - return Serial2.available(); -} - -#endif // HAVE_HWSERIAL2 diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial3.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial3.cpp deleted file mode 100644 index a68095b37c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial3.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - HardwareSerial3.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus - Modified 3 December 2013 by Matthijs Kooijman -*/ - -#include "Arduino.h" -#include "HardwareSerial.h" -#include "HardwareSerial_private.h" - -// Each HardwareSerial is defined in its own file, sine the linker pulls -// in the entire file when any element inside is used. --gc-sections can -// additionally cause unused symbols to be dropped, but ISRs have the -// "used" attribute so are never dropped and they keep the -// HardwareSerial instance in as well. Putting each instance in its own -// file prevents the linker from pulling in any unused instances in the -// first place. - -#if defined(HAVE_HWSERIAL3) - -ISR(USART3_RX_vect) -{ - Serial3._rx_complete_irq(); -} - -ISR(USART3_UDRE_vect) -{ - Serial3._tx_udr_empty_irq(); -} - -HardwareSerial Serial3(&UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3); - -// Function that can be weakly referenced by serialEventRun to prevent -// pulling in this file if it's not otherwise used. -bool Serial3_available() { - return Serial3.available(); -} - -#endif // HAVE_HWSERIAL3 diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial_private.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial_private.h deleted file mode 100644 index 761a5e559c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/HardwareSerial_private.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - HardwareSerial_private.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul - Modified 14 August 2012 by Alarus -*/ - -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(HAVE_HWSERIAL0) || defined(HAVE_HWSERIAL1) || defined(HAVE_HWSERIAL2) || defined(HAVE_HWSERIAL3) - -// Ensure that the various bit positions we use are available with a 0 -// postfix, so we can always use the values for UART0 for all UARTs. The -// alternative, passing the various values for each UART to the -// HardwareSerial constructor also works, but makes the code bigger and -// slower. -#if !defined(TXC0) -#if defined(TXC) -// Some chips like ATmega8 don't have UPE, only PE. The other bits are -// named as expected. -#if !defined(UPE) && defined(PE) -#define UPE PE -#endif -// On ATmega8, the uart and its bits are not numbered, so there is no TXC0 etc. -#define TXC0 TXC -#define RXEN0 RXEN -#define TXEN0 TXEN -#define RXCIE0 RXCIE -#define UDRIE0 UDRIE -#define U2X0 U2X -#define UPE0 UPE -#define UDRE0 UDRE -#elif defined(TXC1) -// Some devices have uart1 but no uart0 -#define TXC0 TXC1 -#define RXEN0 RXEN1 -#define TXEN0 TXEN1 -#define RXCIE0 RXCIE1 -#define UDRIE0 UDRIE1 -#define U2X0 U2X1 -#define UPE0 UPE1 -#define UDRE0 UDRE1 -#else -#error No UART found in HardwareSerial.cpp -#endif -#endif // !defined TXC0 - -// Check at compiletime that it is really ok to use the bit positions of -// UART0 for the other UARTs as well, in case these values ever get -// changed for future hardware. -#if defined(TXC1) && (TXC1 != TXC0 || RXEN1 != RXEN0 || RXCIE1 != RXCIE0 || \ - UDRIE1 != UDRIE0 || U2X1 != U2X0 || UPE1 != UPE0 || \ - UDRE1 != UDRE0) -#error "Not all bit positions for UART1 are the same as for UART0" -#endif -#if defined(TXC2) && (TXC2 != TXC0 || RXEN2 != RXEN0 || RXCIE2 != RXCIE0 || \ - UDRIE2 != UDRIE0 || U2X2 != U2X0 || UPE2 != UPE0 || \ - UDRE2 != UDRE0) -#error "Not all bit positions for UART2 are the same as for UART0" -#endif -#if defined(TXC3) && (TXC3 != TXC0 || RXEN3 != RXEN0 || RXCIE3 != RXCIE0 || \ - UDRIE3 != UDRIE0 || U3X3 != U3X0 || UPE3 != UPE0 || \ - UDRE3 != UDRE0) -#error "Not all bit positions for UART3 are the same as for UART0" -#endif - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial( - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *ucsrc, volatile uint8_t *udr) : - _ubrrh(ubrrh), _ubrrl(ubrrl), - _ucsra(ucsra), _ucsrb(ucsrb), _ucsrc(ucsrc), - _udr(udr), - _rx_buffer_head(0), _rx_buffer_tail(0), - _tx_buffer_head(0), _tx_buffer_tail(0) -{ -} - -// Actual interrupt handlers ////////////////////////////////////////////////////////////// - -void HardwareSerial::_rx_complete_irq(void) -{ - if (bit_is_clear(*_ucsra, UPE0)) { - // No Parity error, read byte and store it in the buffer if there is - // room - unsigned char c = *_udr; - rx_buffer_index_t i = (unsigned int)(_rx_buffer_head + 1) % SERIAL_RX_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != _rx_buffer_tail) { - _rx_buffer[_rx_buffer_head] = c; - _rx_buffer_head = i; - } - } else { - // Parity error, read byte but discard it - *_udr; - }; -} - -#endif // whole file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.cpp deleted file mode 100644 index 899cbd4eda..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - IPAddress.cpp - Base class that provides IPAddress - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include -#include - -IPAddress::IPAddress() -{ - _address.dword = 0; -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address.bytes[0] = first_octet; - _address.bytes[1] = second_octet; - _address.bytes[2] = third_octet; - _address.bytes[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - _address.dword = address; -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address.bytes, address, sizeof(_address.bytes)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address.bytes, address, sizeof(_address.bytes)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - _address.dword = address; - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) const -{ - return memcmp(addr, _address.bytes, sizeof(_address.bytes)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address.bytes[i], DEC); - n += p.print('.'); - } - n += p.print(_address.bytes[3], DEC); - return n; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.h deleted file mode 100644 index 94acdc4566..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/IPAddress.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - IPAddress.h - Base class that provides IPAddress - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef IPAddress_h -#define IPAddress_h - -#include -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - union { - uint8_t bytes[4]; // IPv4 address - uint32_t dword; - } _address; - - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address.bytes; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() const { return _address.dword; }; - bool operator==(const IPAddress& addr) const { return _address.dword == addr._address.dword; }; - bool operator==(const uint8_t* addr) const; - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address.bytes[index]; }; - uint8_t& operator[](int index) { return _address.bytes[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.cpp deleted file mode 100644 index 5df56306e9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.cpp +++ /dev/null @@ -1,264 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - PGM_P p = reinterpret_cast(ifsh); - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - return write(s.c_str(), s.length()); -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - if (isnan(number)) return print("nan"); - if (isinf(number)) return print("inf"); - if (number > 4294967040.0) return print ("ovf"); // constant determined empirically - if (number <-4294967040.0) return print ("ovf"); // constant determined empirically - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.h deleted file mode 100644 index 7b53aa4d17..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Print.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { - if (str == NULL) return 0; - return write((const uint8_t *)str, strlen(str)); - } - virtual size_t write(const uint8_t *buffer, size_t size); - size_t write(const char *buffer, size_t size) { - return write((const uint8_t *)buffer, size); - } - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Printable.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Printable.h deleted file mode 100644 index 2a1b2e9f2c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Server.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Server.h deleted file mode 100644 index 69e3e39fe6..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Server.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - Server.h - Base class that provides Server - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef server_h -#define server_h - -#include "Print.h" - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.cpp deleted file mode 100644 index b31942f293..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.cpp +++ /dev/null @@ -1,317 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - - findMulti/findUntil routines written by Jim Leonard/Xuth - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, strlen(target), NULL, 0); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - if (terminator == NULL) { - MultiTarget t[1] = {{target, targetLen, 0}}; - return findMulti(t, 1) == 0 ? true : false; - } else { - MultiTarget t[2] = {{target, targetLen, 0}, {terminator, termLen, 0}}; - return findMulti(t, 2) == 0 ? true : false; - } -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - bool isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - bool isNegative = false; - bool isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - -String Stream::readString() -{ - String ret; - int c = timedRead(); - while (c >= 0) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -String Stream::readStringUntil(char terminator) -{ - String ret; - int c = timedRead(); - while (c >= 0 && c != terminator) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -int Stream::findMulti( struct Stream::MultiTarget *targets, int tCount) { - // any zero length target string automatically matches and would make - // a mess of the rest of the algorithm. - for (struct MultiTarget *t = targets; t < targets+tCount; ++t) { - if (t->len <= 0) - return t - targets; - } - - while (1) { - int c = timedRead(); - if (c < 0) - return -1; - - for (struct MultiTarget *t = targets; t < targets+tCount; ++t) { - // the simple case is if we match, deal with that first. - if (c == t->str[t->index]) { - if (++t->index == t->len) - return t - targets; - else - continue; - } - - // if not we need to walk back and see if we could have matched further - // down the stream (ie '1112' doesn't match the first position in '11112' - // but it will match the second position so we can't just reset the current - // index to 0 when we find a mismatch. - if (t->index == 0) - continue; - - int origIndex = t->index; - do { - --t->index; - // first check if current char works against the new current index - if (c != t->str[t->index]) - continue; - - // if it's the only char then we're good, nothing more to check - if (t->index == 0) { - t->index++; - break; - } - - // otherwise we need to check the rest of the found string - int diff = origIndex - t->index; - size_t i; - for (i = 0; i < t->index; ++i) { - if (t->str[i] != t->str[i + diff]) - break; - } - - // if we successfully got through the previous loop then our current - // index is good. - if (i == t->index) { - t->index++; - break; - } - - // otherwise we just try the next index - } while (t->index); - } - } - // unreachable - return -1; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.h deleted file mode 100644 index a8101320c9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Stream.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - protected: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - bool find(uint8_t *target) { return find ((char *)target); } - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - bool find(uint8_t *target, size_t length) { return find ((char *)target, length); } - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - bool findUntil(uint8_t *target, char *terminator) { return findUntil((char *)target, terminator); } - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen) {return findUntil((char *)target, targetLen, terminate, termLen); } - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - size_t readBytes( uint8_t *buffer, size_t length) { return readBytes((char *)buffer, length); } - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - size_t readBytesUntil( char terminator, uint8_t *buffer, size_t length) { return readBytesUntil(terminator, (char *)buffer, length); } - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - String readString(); - String readStringUntil(char terminator); - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored - - struct MultiTarget { - const char *str; // string you're searching for - size_t len; // length of string you're searching for - size_t index; // index used by the search routine. - }; - - // This allows you to search for an arbitrary number of strings. - // Returns index of the target that is found first or -1 if timeout occurs. - int findMulti(struct MultiTarget *targets, int tCount); -}; - - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Tone.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Tone.cpp deleted file mode 100644 index 7216219750..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Tone.cpp +++ /dev/null @@ -1,618 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -0008 S Kanemoto 12/06/22 Fixed for Leonardo by @maris_HY -0009 J Reucker 15/04/10 Issue #292 Fixed problems with ATmega8 (thanks to Pete62) -0010 jipp 15/04/13 added additional define check #2923 -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#elif defined(__AVR_ATmega32U4__) - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER3 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 3 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 -#define USE_TIMER2 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) && defined(WGM01) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = (TCCR0B & 0b11111000) | prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = (TCCR2B & 0b11111000) | prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(OCR3A) && defined(TIMSK3) && defined(OCIE3A) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(OCR4A) && defined(TIMSK4) && defined(OCIE4A) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) && defined(OCIE3A) - case 3: - bitWrite(TIMSK3, OCIE3A, 0); - break; -#endif - -#if defined(TIMSK4) && defined(OCIE4A) - case 4: - bitWrite(TIMSK4, OCIE4A, 0); - break; -#endif - -#if defined(TIMSK5) && defined(OCIE5A) - case 5: - bitWrite(TIMSK5, OCIE5A, 0); - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#ifdef USE_TIMER0 -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER1 -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER2 -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER3 -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER4 -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} -#endif - - -#ifdef USE_TIMER5 -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBAPI.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBAPI.h deleted file mode 100644 index 2fab957f93..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBAPI.h +++ /dev/null @@ -1,244 +0,0 @@ -/* - USBAPI.h - Copyright (c) 2005-2014 Arduino. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __USBAPI__ -#define __USBAPI__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - -#include "USBDesc.h" -#include "USBCore.h" - -//================================================================================ -//================================================================================ -// USB - -class USBDevice_ -{ -public: - USBDevice_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USBDevice_ USBDevice; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -struct ring_buffer; - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -#define SERIAL_BUFFER_SIZE 64 -#endif - -class Serial_ : public Stream -{ -private: - int peek_buffer; -public: - Serial_() { peek_buffer = -1; }; - void begin(unsigned long); - void begin(unsigned long, uint8_t); - void end(void); - - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - virtual size_t write(const uint8_t*, size_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); - - volatile uint8_t _rx_buffer_head; - volatile uint8_t _rx_buffer_tail; - unsigned char _rx_buffer[SERIAL_BUFFER_SIZE]; -}; -extern Serial_ Serial; - -#define HAVE_CDCSERIAL - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBCore.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBCore.cpp deleted file mode 100644 index b4f7bed7e8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBCore.cpp +++ /dev/null @@ -1,699 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "USBAPI.h" - -#if defined(USBCON) - -#define EP_TYPE_CONTROL 0x00 -#define EP_TYPE_BULK_IN 0x81 -#define EP_TYPE_BULK_OUT 0x80 -#define EP_TYPE_INTERRUPT_IN 0xC1 -#define EP_TYPE_INTERRUPT_OUT 0xC0 -#define EP_TYPE_ISOCHRONOUS_IN 0x41 -#define EP_TYPE_ISOCHRONOUS_OUT 0x40 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u8 STRING_PRODUCT[] PROGMEM; -extern const u8 STRING_MANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -#ifndef USB_PRODUCT -// If no product is provided, use USB IO Board -#define USB_PRODUCT "USB IO Board" -#endif - -const u8 STRING_PRODUCT[] PROGMEM = USB_PRODUCT; - -#if USB_VID == 0x2341 -# if defined(USB_MANUFACTURER) -# undef USB_MANUFACTURER -# endif -# define USB_MANUFACTURER "Arduino LLC" -#elif USB_VID == 0x1b4f -# if defined(USB_MANUFACTURER) -# undef USB_MANUFACTURER -# endif -# define USB_MANUFACTURER "SparkFun" -#elif !defined(USB_MANUFACTURER) -// Fall through to unknown if no manufacturer name was provided in a macro -# define USB_MANUFACTURER "Unknown" -#endif - -const u8 STRING_MANUFACTURER[] PROGMEM = USB_MANUFACTURER; - - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - { - LockEP lock(ep); - // Frame may have been released by the SOF interrupt handler - if (!ReadWriteAllowed()) - continue; - len -= n; - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Send a USB descriptor string. The string is stored in PROGMEM as a -// plain ASCII string but is sent out as UTF-16 with the correct 2-byte -// prefix -static bool USB_SendStringDescriptor(const u8*string_P, u8 string_len) { - SendControl(2 + string_len * 2); - SendControl(3); - for(u8 i = 0; i < string_len; i++) { - bool r = SendControl(pgm_read_byte(&string_P[i])); - r &= SendControl(0); // high byte - if(!r) { - return false; - } - } - return true; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) { - desc_addr = (const u8*)&STRING_LANGUAGE; - } - else if (setup.wValueL == IPRODUCT) { - return USB_SendStringDescriptor(STRING_PRODUCT, strlen(USB_PRODUCT)); - } - else if (setup.wValueL == IMANUFACTURER) { - return USB_SendStringDescriptor(STRING_MANUFACTURER, strlen(USB_MANUFACTURER)); - } - else - return false; - } - - if (desc_addr == 0) - return false; - u8 desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBDesc.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBDesc.h deleted file mode 100644 index 900713e0f9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/USBDesc.h +++ /dev/null @@ -1,63 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED -#define HID_ENABLED - - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Udp.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Udp.h deleted file mode 100644 index dc5644b9df..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WCharacter.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WCharacter.h deleted file mode 100644 index 79733b50a5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WInterrupts.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WInterrupts.c deleted file mode 100644 index d3fbf100e3..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WInterrupts.c +++ /dev/null @@ -1,334 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.cpp deleted file mode 100644 index dcd469d7dd..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.cpp +++ /dev/null @@ -1,745 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -String::String(const __FlashStringHelper *pstr) -{ - init(); - *this = pstr; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[1 + 8 * sizeof(unsigned char)]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[2 + 8 * sizeof(int)]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[1 + 8 * sizeof(unsigned int)]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[2 + 8 * sizeof(long)]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[1 + 8 * sizeof(unsigned long)]; - ultoa(value, buf, base); - *this = buf; -} - -String::String(float value, unsigned char decimalPlaces) -{ - init(); - char buf[33]; - *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); -} - -String::String(double value, unsigned char decimalPlaces) -{ - init(); - char buf[33]; - *this = dtostrf(value, (decimalPlaces + 2), decimalPlaces, buf); -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -String & String::copy(const __FlashStringHelper *pstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy_P(buffer, (PGM_P)pstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -String & String::operator = (const __FlashStringHelper *pstr) -{ - if (pstr) copy(pstr, strlen_P((PGM_P)pstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[1 + 3 * sizeof(unsigned char)]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[2 + 3 * sizeof(int)]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[1 + 3 * sizeof(unsigned int)]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[2 + 3 * sizeof(long)]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[1 + 3 * sizeof(unsigned long)]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(float num) -{ - char buf[20]; - char* string = dtostrf(num, 4, 2, buf); - return concat(string, strlen(string)); -} - -unsigned char String::concat(double num) -{ - char buf[20]; - char* string = dtostrf(num, 4, 2, buf); - return concat(string, strlen(string)); -} - -unsigned char String::concat(const __FlashStringHelper * str) -{ - if (!str) return 0; - int length = strlen_P((const char *) str); - if (length == 0) return 1; - unsigned int newlen = len + length; - if (!reserve(newlen)) return 0; - strcpy_P(buffer + len, (const char *) str); - len = newlen; - return 1; -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, float num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, double num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left >= len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::remove(unsigned int index){ - // Pass the biggest integer as the count. The remove method - // below will take care of truncating it at the end of the - // string. - remove(index, (unsigned int)-1); -} - -void String::remove(unsigned int index, unsigned int count){ - if (index >= len) { return; } - if (count <= 0) { return; } - if (count > len - index) { count = len - index; } - char *writeTo = buffer + index; - len = len - count; - strncpy(writeTo, buffer + index + count,len - index); - buffer[len] = 0; -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - -float String::toFloat(void) const -{ - if (buffer) return float(atof(buffer)); - return 0; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.h deleted file mode 100644 index 7402430927..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/WString.h +++ /dev/null @@ -1,224 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - String(const __FlashStringHelper *str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - explicit String(float, unsigned char decimalPlaces=2); - explicit String(double, unsigned char decimalPlaces=2); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - String & operator = (const __FlashStringHelper *str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - unsigned char concat(float num); - unsigned char concat(double num); - unsigned char concat(const __FlashStringHelper * str); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - String & operator += (float num) {concat(num); return (*this);} - String & operator += (double num) {concat(num); return (*this);} - String & operator += (const __FlashStringHelper *str){concat(str); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, float num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, double num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const __FlashStringHelper *rhs); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - const char * c_str() const { return buffer; } - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const { return substring(beginIndex, len); }; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void remove(unsigned int index); - void remove(unsigned int index, unsigned int count); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - float toFloat(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - String & copy(const __FlashStringHelper *pstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} - StringSumHelper(float num) : String(num) {} - StringSumHelper(double num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/abi.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/abi.cpp deleted file mode 100644 index 8d719b8e64..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/abi.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (c) 2014 Arduino. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include - -extern "C" void __cxa_pure_virtual(void) __attribute__ ((__noreturn__)); -extern "C" void __cxa_deleted_virtual(void) __attribute__ ((__noreturn__)); - -void __cxa_pure_virtual(void) { - // We might want to write some diagnostics to uart in this case - //std::terminate(); - abort(); -} - -void __cxa_deleted_virtual(void) { - // We might want to write some diagnostics to uart in this case - //std::terminate(); - abort(); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/binary.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/binary.h deleted file mode 100644 index aec4c733d4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/binary.h +++ /dev/null @@ -1,534 +0,0 @@ -/* - binary.h - Definitions for binary constants - Copyright (c) 2006 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/hooks.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/hooks.c deleted file mode 100644 index 641eabc737..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/hooks.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (c) 2012 Arduino. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -/** - * Empty yield() hook. - * - * This function is intended to be used by library writers to build - * libraries or sketches that supports cooperative threads. - * - * Its defined as a weak symbol and it can be redefined to implement a - * real cooperative scheduler. - */ -static void __empty() { - // Empty -} -void yield(void) __attribute__ ((weak, alias("__empty"))); diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/main.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/main.cpp deleted file mode 100644 index a60980da57..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/main.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - main.cpp - Main loop for Arduino sketches - Copyright (c) 2005-2013 Arduino Team. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include - -//Declared weak in Arduino.h to allow user redefinitions. -int atexit(void (*func)()) { return 0; } - -// Weak empty variant initialization function. -// May be redefined by variant files. -void initVariant() __attribute__((weak)); -void initVariant() { } - -int main(void) -{ - init(); - - initVariant(); - -#if defined(USBCON) - USBDevice.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.cpp deleted file mode 100644 index cf6f89c178..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (c) 2014 Arduino. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include - -void *operator new(size_t size) { - return malloc(size); -} - -void *operator new[](size_t size) { - return malloc(size); -} - -void operator delete(void * ptr) { - free(ptr); -} - -void operator delete[](void * ptr) { - free(ptr); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.h deleted file mode 100644 index 6e1b68f0da..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/new.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (c) 2014 Arduino. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void * operator new[](size_t size); -void operator delete(void * ptr); -void operator delete[](void * ptr); - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring.c deleted file mode 100644 index 5cbe241956..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring.c +++ /dev/null @@ -1,325 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -ISR(TIM0_OVF_vect) -#else -ISR(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - yield(); - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_analog.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_analog.c deleted file mode 100644 index 48a9ef52d5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_analog.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(analogPinToChannel) -#if defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#endif - pin = analogPinToChannel(pin); -#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1C1) - case TIMER1C: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1C1); - OCR1C = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - #if defined(COM4A0) // only used on 32U4 - cbi(TCCR4A, COM4A0); - #endif - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - #if defined(COM4D0) // only used on 32U4 - cbi(TCCR4C, COM4D0); - #endif - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_digital.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_digital.c deleted file mode 100644 index df94cc1c5b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_digital.c +++ /dev/null @@ -1,181 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - #if defined(TCCR1A) && defined(COM1C1) - case TIMER1C: cbi(TCCR1A, COM1C1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_private.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_private.h deleted file mode 100644 index 5dc7d4bed4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_private.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega128RFA1__) || defined(__AVR_ATmega256RFR2__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644A__) || defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644PA__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#elif defined(__AVR_ATmega32U4__) -#define EXTERNAL_NUM_INTERRUPTS 5 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_pulse.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_pulse.c deleted file mode 100644 index 830c45408a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_pulse.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. There will be some error introduced by - // the interrupt handlers. - - // Conversion constants are compiler-dependent, different compiler versions - // have different levels of optimization. -#if __GNUC__==4 && __GNUC_MINOR__==3 && __GNUC_PATCHLEVEL__==2 - // avr-gcc 4.3.2 - return clockCyclesToMicroseconds(width * 21 + 16); -#elif __GNUC__==4 && __GNUC_MINOR__==8 && __GNUC_PATCHLEVEL__==1 - // avr-gcc 4.8.1 - return clockCyclesToMicroseconds(width * 24 + 16); -#elif __GNUC__<=4 && __GNUC_MINOR__<=3 - // avr-gcc <=4.3.x - #warning "pulseIn() results may not be accurate" - return clockCyclesToMicroseconds(width * 21 + 16); -#else - // avr-gcc >4.3.x - #warning "pulseIn() results may not be accurate" - return clockCyclesToMicroseconds(width * 24 + 16); -#endif - -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_shift.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_shift.c deleted file mode 100644 index cfe786758c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/arduino/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Arduino.h deleted file mode 100644 index 830c9952fb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Arduino.h +++ /dev/null @@ -1,215 +0,0 @@ -#ifndef Arduino_h -#define Arduino_h - -#include -#include -#include - -#include -#include -#include - -#include "binary.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#define HIGH 0x1 -#define LOW 0x0 - -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 - -#define true 0x1 -#define false 0x0 - -#define PI 3.1415926535897932384626433832795 -#define HALF_PI 1.5707963267948966192313216916398 -#define TWO_PI 6.283185307179586476925286766559 -#define DEG_TO_RAD 0.017453292519943295769236907684886 -#define RAD_TO_DEG 57.295779513082320876798154814105 - -#define SERIAL 0x0 -#define DISPLAY 0x1 - -#define LSBFIRST 0 -#define MSBFIRST 1 - -#define CHANGE 1 -#define FALLING 2 -#define RISING 3 - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) -#define DEFAULT 0 -#define EXTERNAL 1 -#define INTERNAL 2 -#else -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284P__) -#define INTERNAL1V1 2 -#define INTERNAL2V56 3 -#else -#define INTERNAL 3 -#endif -#define DEFAULT 1 -#define EXTERNAL 0 -#endif - -// undefine stdlib's abs if encountered -#ifdef abs -#undef abs -#endif - -#define min(a,b) ((a)<(b)?(a):(b)) -#define max(a,b) ((a)>(b)?(a):(b)) -#define abs(x) ((x)>0?(x):-(x)) -#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt))) -#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5)) -#define radians(deg) ((deg)*DEG_TO_RAD) -#define degrees(rad) ((rad)*RAD_TO_DEG) -#define sq(x) ((x)*(x)) - -#define interrupts() sei() -#define noInterrupts() cli() - -#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) -#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) - -#define lowByte(w) ((uint8_t) ((w) & 0xff)) -#define highByte(w) ((uint8_t) ((w) >> 8)) - -#define bitRead(value, bit) (((value) >> (bit)) & 0x01) -#define bitSet(value, bit) ((value) |= (1UL << (bit))) -#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) - - -typedef unsigned int word; - -#define bit(b) (1UL << (b)) - -typedef uint8_t boolean; -typedef uint8_t byte; - -void init(void); - -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); -void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); - -unsigned long millis(void); -unsigned long micros(void); -void delay(unsigned long); -void delayMicroseconds(unsigned int us); -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); - -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); - -void setup(void); -void loop(void); - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. - -#define analogInPinToBit(P) (P) - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -extern const uint16_t PROGMEM port_to_mode_PGM[]; -extern const uint16_t PROGMEM port_to_input_PGM[]; -extern const uint16_t PROGMEM port_to_output_PGM[]; - -extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// Get the bit location within the hardware port of the given virtual pin. -// This comes from the pins_*.c file for the active board configuration. -// -// These perform slightly better as macros compared to inline functions -// -#define digitalPinToPort(P) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) ) -#define digitalPinToBitMask(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) ) -#define digitalPinToTimer(P) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) ) -#define analogInPinToBit(P) (P) -#define portOutputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) ) -#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) ) -#define portModeRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) ) - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#ifdef ARDUINO_MAIN -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 -#endif - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER4D 14 -#define TIMER5A 15 -#define TIMER5B 16 -#define TIMER5C 17 - -#ifdef __cplusplus -} // extern "C" -#endif - -#ifdef __cplusplus -#include "WCharacter.h" -#include "WString.h" -#include "HardwareSerial.h" - -uint16_t makeWord(uint16_t w); -uint16_t makeWord(byte h, byte l); - -#define word(...) makeWord(__VA_ARGS__) - -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L); - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0); -void noTone(uint8_t _pin); - -// WMath prototypes -long random(long); -long random(long, long); -void randomSeed(unsigned int); -long map(long, long, long, long, long); - -#endif - -#include "pins_arduino.h" - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/CDC.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/CDC.cpp deleted file mode 100644 index 5a49621cf5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/CDC.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include - -#if defined(USBCON) -#ifdef CDC_ENABLED - -#if (RAMEND < 1000) -#define SERIAL_BUFFER_SIZE 16 -#else -// Use a 128 byte buffer like Arduinos of old for maximum -// compatibility. -Hubbe 20120929 -#define SERIAL_BUFFER_SIZE 128 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile int head; - volatile int tail; -}; - -ring_buffer cdc_rx_buffer = { { 0 }, 0, 0}; - -typedef struct -{ - u32 dwDTERate; - u8 bCharFormat; - u8 bParityType; - u8 bDataBits; - u8 lineState; -} LineInfo; - -static volatile LineInfo _usbLineInfo = { 57600, 0x00, 0x00, 0x00, 0x00 }; - -#define WEAK __attribute__ ((weak)) - -extern const CDCDescriptor _cdcInterface PROGMEM; -const CDCDescriptor _cdcInterface = -{ - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), - - // CDC communication interface - D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), - D_CDCCS(CDC_HEADER,0x10,0x01), // Header (1.10 bcd) - D_CDCCS(CDC_CALL_MANAGEMENT,1,1), // Device handles call management (not) - D_CDCCS4(CDC_ABSTRACT_CONTROL_MANAGEMENT,6), // SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE supported - D_CDCCS(CDC_UNION,CDC_ACM_INTERFACE,CDC_DATA_INTERFACE), // Communication interface is master, data interface is slave 0 - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_ACM),USB_ENDPOINT_TYPE_INTERRUPT,0x10,0x40), - - // CDC data interface - D_INTERFACE(CDC_DATA_INTERFACE,2,CDC_DATA_INTERFACE_CLASS,0,0), - D_ENDPOINT(USB_ENDPOINT_OUT(CDC_ENDPOINT_OUT),USB_ENDPOINT_TYPE_BULK,0x40,0), - D_ENDPOINT(USB_ENDPOINT_IN (CDC_ENDPOINT_IN ),USB_ENDPOINT_TYPE_BULK,0x40,0) -}; - -int WEAK CDC_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 2; // uses 2 - return USB_SendControl(TRANSFER_PGM,&_cdcInterface,sizeof(_cdcInterface)); -} - -bool WEAK CDC_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (CDC_GET_LINE_CODING == r) - { - USB_SendControl(0,(void*)&_usbLineInfo,7); - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (CDC_SET_LINE_CODING == r) - { - USB_RecvControl((void*)&_usbLineInfo,7); - return true; - } - - if (CDC_SET_CONTROL_LINE_STATE == r) - { - _usbLineInfo.lineState = setup.wValueL; - - // auto-reset into the bootloader is triggered when the port, already - // open at 1200 bps, is closed. this is the signal to start the watchdog - // with a relatively long period so it can finish housekeeping tasks - // like servicing endpoints before the sketch ends - if (1200 == _usbLineInfo.dwDTERate) { - // We check DTR state to determine if host port is open (bit 0 of lineState). - if ((_usbLineInfo.lineState & 0x01) == 0) { - *(uint16_t *)0x0800 = 0x7777; - wdt_enable(WDTO_120MS); - } else { - // Most OSs do some intermediate steps when configuring ports and DTR can - // twiggle more than once before stabilizing. - // To avoid spurious resets we set the watchdog to 250ms and eventually - // cancel if DTR goes back high. - - wdt_disable(); - wdt_reset(); - *(uint16_t *)0x0800 = 0x0; - } - } - return true; - } - } - return false; -} - - -int _serialPeek = -1; -void Serial_::begin(uint16_t baud_count) -{ -} - -void Serial_::end(void) -{ -} - -void Serial_::accept(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - int c = USB_Recv(CDC_RX); - int i = (unsigned int)(buffer->head+1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -int Serial_::available(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - return (unsigned int)(SERIAL_BUFFER_SIZE + buffer->head - buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int Serial_::peek(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - if (buffer->head == buffer->tail) { - return -1; - } else { - return buffer->buffer[buffer->tail]; - } -} - -int Serial_::read(void) -{ - ring_buffer *buffer = &cdc_rx_buffer; - // if the head isn't ahead of the tail, we don't have any characters - if (buffer->head == buffer->tail) { - return -1; - } else { - unsigned char c = buffer->buffer[buffer->tail]; - buffer->tail = (unsigned int)(buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void Serial_::flush(void) -{ - USB_Flush(CDC_TX); -} - -size_t Serial_::write(uint8_t c) -{ - /* only try to send bytes if the high-level CDC connection itself - is open (not just the pipe) - the OS should set lineState when the port - is opened and clear lineState when the port is closed. - bytes sent before the user opens the connection or after - the connection is closed are lost - just like with a UART. */ - - // TODO - ZE - check behavior on different OSes and test what happens if an - // open connection isn't broken cleanly (cable is yanked out, host dies - // or locks up, or host virtual serial port hangs) - - /* Actually, let's ignore the line state for now since repetierHost - doens't work if we don't ignore it. -Hubbe 20120929 */ - /* if (_usbLineInfo.lineState > 0) */ { - int r = USB_Send(CDC_TX,&c,1); - if (r > 0) { - return r; - } else { - setWriteError(); - return 0; - } - } - setWriteError(); - return 0; -} - -// This operator is a convenient way for a sketch to check whether the -// port has actually been configured and opened by the host (as opposed -// to just being connected to the host). It can be used, for example, in -// setup() before printing to ensure that an application on the host is -// actually ready to receive and display the data. -// We add a short delay before returning to fix a bug observed by Federico -// where the port is configured (lineState != 0) but not quite opened. -Serial_::operator bool() { - bool result = false; - if (_usbLineInfo.lineState > 0) - result = true; - delay(10); - return result; -} - -Serial_ Serial; - -#endif -#endif /* if defined(USBCON) */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Client.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Client.h deleted file mode 100644 index ea134838a2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Client.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef client_h -#define client_h -#include "Print.h" -#include "Stream.h" -#include "IPAddress.h" - -class Client : public Stream { - -public: - virtual int connect(IPAddress ip, uint16_t port) =0; - virtual int connect(const char *host, uint16_t port) =0; - virtual size_t write(uint8_t) =0; - virtual size_t write(const uint8_t *buf, size_t size) =0; - virtual int available() = 0; - virtual int read() = 0; - virtual int read(uint8_t *buf, size_t size) = 0; - virtual int peek() = 0; - virtual void flush() = 0; - virtual void stop() = 0; - virtual uint8_t connected() = 0; - virtual operator bool() = 0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HID.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HID.cpp deleted file mode 100644 index ac63608449..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HID.cpp +++ /dev/null @@ -1,520 +0,0 @@ - - -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) -#ifdef HID_ENABLED - -//#define RAWHID_ENABLED - -// Singletons for mouse and keyboard - -Mouse_ Mouse; -Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ - -// HID report descriptor - -#define LSB(_x) ((_x) & 0xFF) -#define MSB(_x) ((_x) >> 8) - -#define RAWHID_USAGE_PAGE 0xFFC0 -#define RAWHID_USAGE 0x0C00 -#define RAWHID_TX_SIZE 64 -#define RAWHID_RX_SIZE 64 - -extern const u8 _hidReportDescriptor[] PROGMEM; -const u8 _hidReportDescriptor[] = { - - // Mouse - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 54 - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - 0x85, 0x01, // REPORT_ID (1) - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - 0xc0, // END_COLLECTION - 0xc0, // END_COLLECTION - - // Keyboard - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) // 47 - 0x09, 0x06, // USAGE (Keyboard) - 0xa1, 0x01, // COLLECTION (Application) - 0x85, 0x02, // REPORT_ID (2) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl) - 0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x75, 0x01, // REPORT_SIZE (1) - - 0x95, 0x08, // REPORT_COUNT (8) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x08, // REPORT_SIZE (8) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x95, 0x06, // REPORT_COUNT (6) - 0x75, 0x08, // REPORT_SIZE (8) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x65, // LOGICAL_MAXIMUM (101) - 0x05, 0x07, // USAGE_PAGE (Keyboard) - - 0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated)) - 0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application) - 0x81, 0x00, // INPUT (Data,Ary,Abs) - 0xc0, // END_COLLECTION - -#if RAWHID_ENABLED - // RAW HID - 0x06, LSB(RAWHID_USAGE_PAGE), MSB(RAWHID_USAGE_PAGE), // 30 - 0x0A, LSB(RAWHID_USAGE), MSB(RAWHID_USAGE), - - 0xA1, 0x01, // Collection 0x01 - 0x85, 0x03, // REPORT_ID (3) - 0x75, 0x08, // report size = 8 bits - 0x15, 0x00, // logical minimum = 0 - 0x26, 0xFF, 0x00, // logical maximum = 255 - - 0x95, 64, // report count TX - 0x09, 0x01, // usage - 0x81, 0x02, // Input (array) - - 0x95, 64, // report count RX - 0x09, 0x02, // usage - 0x91, 0x02, // Output (array) - 0xC0 // end collection -#endif -}; - -extern const HIDDescriptor _hidInterface PROGMEM; -const HIDDescriptor _hidInterface = -{ - D_INTERFACE(HID_INTERFACE,1,3,0,0), - D_HIDREPORT(sizeof(_hidReportDescriptor)), - D_ENDPOINT(USB_ENDPOINT_IN (HID_ENDPOINT_INT),USB_ENDPOINT_TYPE_INTERRUPT,0x40,0x01) -}; - -//================================================================================ -//================================================================================ -// Driver - -u8 _hid_protocol = 1; -u8 _hid_idle = 1; - -#define WEAK __attribute__ ((weak)) - -int WEAK HID_GetInterface(u8* interfaceNum) -{ - interfaceNum[0] += 1; // uses 1 - return USB_SendControl(TRANSFER_PGM,&_hidInterface,sizeof(_hidInterface)); -} - -int WEAK HID_GetDescriptor(int i) -{ - return USB_SendControl(TRANSFER_PGM,_hidReportDescriptor,sizeof(_hidReportDescriptor)); -} - -void WEAK HID_SendReport(u8 id, const void* data, int len) -{ - USB_Send(HID_TX, &id, 1); - USB_Send(HID_TX | TRANSFER_RELEASE,data,len); -} - -bool WEAK HID_Setup(Setup& setup) -{ - u8 r = setup.bRequest; - u8 requestType = setup.bmRequestType; - if (REQUEST_DEVICETOHOST_CLASS_INTERFACE == requestType) - { - if (HID_GET_REPORT == r) - { - //HID_GetReport(); - return true; - } - if (HID_GET_PROTOCOL == r) - { - //Send8(_hid_protocol); // TODO - return true; - } - } - - if (REQUEST_HOSTTODEVICE_CLASS_INTERFACE == requestType) - { - if (HID_SET_PROTOCOL == r) - { - _hid_protocol = setup.wValueL; - return true; - } - - if (HID_SET_IDLE == r) - { - _hid_idle = setup.wValueL; - return true; - } - } - return false; -} - -//================================================================================ -//================================================================================ -// Mouse - -Mouse_::Mouse_(void) : _buttons(0) -{ -} - -void Mouse_::begin(void) -{ -} - -void Mouse_::end(void) -{ -} - -void Mouse_::click(uint8_t b) -{ - _buttons = b; - move(0,0,0); - _buttons = 0; - move(0,0,0); -} - -void Mouse_::move(signed char x, signed char y, signed char wheel) -{ - u8 m[4]; - m[0] = _buttons; - m[1] = x; - m[2] = y; - m[3] = wheel; - HID_SendReport(1,m,4); -} - -void Mouse_::buttons(uint8_t b) -{ - if (b != _buttons) - { - _buttons = b; - move(0,0,0); - } -} - -void Mouse_::press(uint8_t b) -{ - buttons(_buttons | b); -} - -void Mouse_::release(uint8_t b) -{ - buttons(_buttons & ~b); -} - -bool Mouse_::isPressed(uint8_t b) -{ - if ((b & _buttons) > 0) - return true; - return false; -} - -//================================================================================ -//================================================================================ -// Keyboard - -Keyboard_::Keyboard_(void) -{ -} - -void Keyboard_::begin(void) -{ -} - -void Keyboard_::end(void) -{ -} - -void Keyboard_::sendReport(KeyReport* keys) -{ - HID_SendReport(2,keys,sizeof(KeyReport)); -} - -extern -const uint8_t _asciimap[128] PROGMEM; - -#define SHIFT 0x80 -const uint8_t _asciimap[128] = -{ - 0x00, // NUL - 0x00, // SOH - 0x00, // STX - 0x00, // ETX - 0x00, // EOT - 0x00, // ENQ - 0x00, // ACK - 0x00, // BEL - 0x2a, // BS Backspace - 0x2b, // TAB Tab - 0x28, // LF Enter - 0x00, // VT - 0x00, // FF - 0x00, // CR - 0x00, // SO - 0x00, // SI - 0x00, // DEL - 0x00, // DC1 - 0x00, // DC2 - 0x00, // DC3 - 0x00, // DC4 - 0x00, // NAK - 0x00, // SYN - 0x00, // ETB - 0x00, // CAN - 0x00, // EM - 0x00, // SUB - 0x00, // ESC - 0x00, // FS - 0x00, // GS - 0x00, // RS - 0x00, // US - - 0x2c, // ' ' - 0x1e|SHIFT, // ! - 0x34|SHIFT, // " - 0x20|SHIFT, // # - 0x21|SHIFT, // $ - 0x22|SHIFT, // % - 0x24|SHIFT, // & - 0x34, // ' - 0x26|SHIFT, // ( - 0x27|SHIFT, // ) - 0x25|SHIFT, // * - 0x2e|SHIFT, // + - 0x36, // , - 0x2d, // - - 0x37, // . - 0x38, // / - 0x27, // 0 - 0x1e, // 1 - 0x1f, // 2 - 0x20, // 3 - 0x21, // 4 - 0x22, // 5 - 0x23, // 6 - 0x24, // 7 - 0x25, // 8 - 0x26, // 9 - 0x33|SHIFT, // : - 0x33, // ; - 0x36|SHIFT, // < - 0x2e, // = - 0x37|SHIFT, // > - 0x38|SHIFT, // ? - 0x1f|SHIFT, // @ - 0x04|SHIFT, // A - 0x05|SHIFT, // B - 0x06|SHIFT, // C - 0x07|SHIFT, // D - 0x08|SHIFT, // E - 0x09|SHIFT, // F - 0x0a|SHIFT, // G - 0x0b|SHIFT, // H - 0x0c|SHIFT, // I - 0x0d|SHIFT, // J - 0x0e|SHIFT, // K - 0x0f|SHIFT, // L - 0x10|SHIFT, // M - 0x11|SHIFT, // N - 0x12|SHIFT, // O - 0x13|SHIFT, // P - 0x14|SHIFT, // Q - 0x15|SHIFT, // R - 0x16|SHIFT, // S - 0x17|SHIFT, // T - 0x18|SHIFT, // U - 0x19|SHIFT, // V - 0x1a|SHIFT, // W - 0x1b|SHIFT, // X - 0x1c|SHIFT, // Y - 0x1d|SHIFT, // Z - 0x2f, // [ - 0x31, // bslash - 0x30, // ] - 0x23|SHIFT, // ^ - 0x2d|SHIFT, // _ - 0x35, // ` - 0x04, // a - 0x05, // b - 0x06, // c - 0x07, // d - 0x08, // e - 0x09, // f - 0x0a, // g - 0x0b, // h - 0x0c, // i - 0x0d, // j - 0x0e, // k - 0x0f, // l - 0x10, // m - 0x11, // n - 0x12, // o - 0x13, // p - 0x14, // q - 0x15, // r - 0x16, // s - 0x17, // t - 0x18, // u - 0x19, // v - 0x1a, // w - 0x1b, // x - 0x1c, // y - 0x1d, // z - 0x2f|SHIFT, // - 0x31|SHIFT, // | - 0x30|SHIFT, // } - 0x35|SHIFT, // ~ - 0 // DEL -}; - -uint8_t USBPutChar(uint8_t c); - -// press() adds the specified key (printing, non-printing, or modifier) -// to the persistent key report and sends the report. Because of the way -// USB HID works, the host acts like the key remains pressed until we -// call release(), releaseAll(), or otherwise clear the report and resend. -size_t Keyboard_::press(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers |= (1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - setWriteError(); - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers |= 0x02; // the left shift modifier - k &= 0x7F; - } - } - - // Add k to the key report only if it's not already present - // and if there is an empty slot. - if (_keyReport.keys[0] != k && _keyReport.keys[1] != k && - _keyReport.keys[2] != k && _keyReport.keys[3] != k && - _keyReport.keys[4] != k && _keyReport.keys[5] != k) { - - for (i=0; i<6; i++) { - if (_keyReport.keys[i] == 0x00) { - _keyReport.keys[i] = k; - break; - } - } - if (i == 6) { - setWriteError(); - return 0; - } - } - sendReport(&_keyReport); - return 1; -} - -// release() takes the specified key out of the persistent key report and -// sends the report. This tells the OS the key is no longer pressed and that -// it shouldn't be repeated any more. -size_t Keyboard_::release(uint8_t k) -{ - uint8_t i; - if (k >= 136) { // it's a non-printing key (not a modifier) - k = k - 136; - } else if (k >= 128) { // it's a modifier key - _keyReport.modifiers &= ~(1<<(k-128)); - k = 0; - } else { // it's a printing key - k = pgm_read_byte(_asciimap + k); - if (!k) { - return 0; - } - if (k & 0x80) { // it's a capital letter or other character reached with shift - _keyReport.modifiers &= ~(0x02); // the left shift modifier - k &= 0x7F; - } - } - - // Test the key report to see if k is present. Clear it if it exists. - // Check all positions in case the key is present more than once (which it shouldn't be) - for (i=0; i<6; i++) { - if (0 != k && _keyReport.keys[i] == k) { - _keyReport.keys[i] = 0x00; - } - } - - sendReport(&_keyReport); - return 1; -} - -void Keyboard_::releaseAll(void) -{ - _keyReport.keys[0] = 0; - _keyReport.keys[1] = 0; - _keyReport.keys[2] = 0; - _keyReport.keys[3] = 0; - _keyReport.keys[4] = 0; - _keyReport.keys[5] = 0; - _keyReport.modifiers = 0; - sendReport(&_keyReport); -} - -size_t Keyboard_::write(uint8_t c) -{ - uint8_t p = press(c); // Keydown - uint8_t r = release(c); // Keyup - return (p); // just return the result of press() since release() almost always returns 1 -} - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.cpp deleted file mode 100644 index f40ddee060..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.cpp +++ /dev/null @@ -1,428 +0,0 @@ -/* - HardwareSerial.cpp - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - Modified 28 September 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include "Arduino.h" -#include "wiring_private.h" - -// this next line disables the entire HardwareSerial.cpp, -// this is so I can support Attiny series and any other chip without a uart -#if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H) - -#include "HardwareSerial.h" - -// Define constants and variables for buffering incoming serial data. We're -// using a ring buffer (I think), in which head is the index of the location -// to which to write the next incoming character and tail is the index of the -// location from which to read. -#if (RAMEND < 1000) - #define SERIAL_BUFFER_SIZE 16 -#else - #define SERIAL_BUFFER_SIZE 64 -#endif - -struct ring_buffer -{ - unsigned char buffer[SERIAL_BUFFER_SIZE]; - volatile unsigned int head; - volatile unsigned int tail; -}; - -#if defined(USBCON) - ring_buffer rx_buffer = { { 0 }, 0, 0}; - ring_buffer tx_buffer = { { 0 }, 0, 0}; -#endif -#if defined(UBRRH) || defined(UBRR0H) - ring_buffer rx_buffer = { { 0 }, 0, 0 }; - ring_buffer tx_buffer = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR1H) - ring_buffer rx_buffer1 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer1 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR2H) - ring_buffer rx_buffer2 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer2 = { { 0 }, 0, 0 }; -#endif -#if defined(UBRR3H) - ring_buffer rx_buffer3 = { { 0 }, 0, 0 }; - ring_buffer tx_buffer3 = { { 0 }, 0, 0 }; -#endif - -inline void store_char(unsigned char c, ring_buffer *buffer) -{ - int i = (unsigned int)(buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // if we should be storing the received character into the location - // just before the tail (meaning that the head would advance to the - // current location of the tail), we're about to overflow the buffer - // and so we don't write the character or advance the head. - if (i != buffer->tail) { - buffer->buffer[buffer->head] = c; - buffer->head = i; - } -} - -#if !defined(USART0_RX_vect) && defined(USART1_RX_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) - #error "Don't know what the Data Received vector is called for the first UART" -#else - void serialEvent() __attribute__((weak)); - void serialEvent() {} - #define serialEvent_implemented -#if defined(USART_RX_vect) - SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) -#elif defined(USART0_RX_vect) - SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) -#endif - { - #if defined(UDR0) - unsigned char c = UDR0; - #elif defined(UDR) - unsigned char c = UDR; - #else - #error UDR not defined - #endif - store_char(c, &rx_buffer); - } -#endif -#endif - -#if defined(USART1_RX_vect) - void serialEvent1() __attribute__((weak)); - void serialEvent1() {} - #define serialEvent1_implemented - SIGNAL(USART1_RX_vect) - { - unsigned char c = UDR1; - store_char(c, &rx_buffer1); - } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV -#endif - -#if defined(USART2_RX_vect) && defined(UDR2) - void serialEvent2() __attribute__((weak)); - void serialEvent2() {} - #define serialEvent2_implemented - SIGNAL(USART2_RX_vect) - { - unsigned char c = UDR2; - store_char(c, &rx_buffer2); - } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV -#endif - -#if defined(USART3_RX_vect) && defined(UDR3) - void serialEvent3() __attribute__((weak)); - void serialEvent3() {} - #define serialEvent3_implemented - SIGNAL(USART3_RX_vect) - { - unsigned char c = UDR3; - store_char(c, &rx_buffer3); - } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV -#endif - -void serialEventRun(void) -{ -#ifdef serialEvent_implemented - if (Serial.available()) serialEvent(); -#endif -#ifdef serialEvent1_implemented - if (Serial1.available()) serialEvent1(); -#endif -#ifdef serialEvent2_implemented - if (Serial2.available()) serialEvent2(); -#endif -#ifdef serialEvent3_implemented - if (Serial3.available()) serialEvent3(); -#endif -} - - -#if !defined(USART0_UDRE_vect) && defined(USART1_UDRE_vect) -// do nothing - on the 32u4 the first USART is USART1 -#else -#if !defined(UART0_UDRE_vect) && !defined(UART_UDRE_vect) && !defined(USART0_UDRE_vect) && !defined(USART_UDRE_vect) - #error "Don't know what the Data Register Empty vector is called for the first UART" -#else -#if defined(UART0_UDRE_vect) -ISR(UART0_UDRE_vect) -#elif defined(UART_UDRE_vect) -ISR(UART_UDRE_vect) -#elif defined(USART0_UDRE_vect) -ISR(USART0_UDRE_vect) -#elif defined(USART_UDRE_vect) -ISR(USART_UDRE_vect) -#endif -{ - if (tx_buffer.head == tx_buffer.tail) { - // Buffer empty, so disable interrupts -#if defined(UCSR0B) - cbi(UCSR0B, UDRIE0); -#else - cbi(UCSRB, UDRIE); -#endif - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer.buffer[tx_buffer.tail]; - tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE; - - #if defined(UDR0) - UDR0 = c; - #elif defined(UDR) - UDR = c; - #else - #error UDR not defined - #endif - } -} -#endif -#endif - -#ifdef USART1_UDRE_vect -ISR(USART1_UDRE_vect) -{ - if (tx_buffer1.head == tx_buffer1.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR1B, UDRIE1); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer1.buffer[tx_buffer1.tail]; - tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR1 = c; - } -} -#endif - -#ifdef USART2_UDRE_vect -ISR(USART2_UDRE_vect) -{ - if (tx_buffer2.head == tx_buffer2.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR2B, UDRIE2); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer2.buffer[tx_buffer2.tail]; - tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR2 = c; - } -} -#endif - -#ifdef USART3_UDRE_vect -ISR(USART3_UDRE_vect) -{ - if (tx_buffer3.head == tx_buffer3.tail) { - // Buffer empty, so disable interrupts - cbi(UCSR3B, UDRIE3); - } - else { - // There is more data in the output buffer. Send the next byte - unsigned char c = tx_buffer3.buffer[tx_buffer3.tail]; - tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE; - - UDR3 = c; - } -} -#endif - - -// Constructors //////////////////////////////////////////////////////////////// - -HardwareSerial::HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x) -{ - _rx_buffer = rx_buffer; - _tx_buffer = tx_buffer; - _ubrrh = ubrrh; - _ubrrl = ubrrl; - _ucsra = ucsra; - _ucsrb = ucsrb; - _udr = udr; - _rxen = rxen; - _txen = txen; - _rxcie = rxcie; - _udrie = udrie; - _u2x = u2x; -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void HardwareSerial::begin(unsigned long baud) -{ - uint16_t baud_setting; - bool use_u2x = true; - -#if F_CPU == 16000000UL - // hardcoded exception for compatibility with the bootloader shipped - // with the Duemilanove and previous boards and the firmware on the 8U2 - // on the Uno and Mega 2560. - if (baud == 57600) { - use_u2x = false; - } -#endif - -try_again: - - if (use_u2x) { - *_ucsra = 1 << _u2x; - baud_setting = (F_CPU / 4 / baud - 1) / 2; - } else { - *_ucsra = 0; - baud_setting = (F_CPU / 8 / baud - 1) / 2; - } - - if ((baud_setting > 4095) && use_u2x) - { - use_u2x = false; - goto try_again; - } - - // assign the baud_setting, a.k.a. ubbr (USART Baud Rate Register) - *_ubrrh = baud_setting >> 8; - *_ubrrl = baud_setting; - - sbi(*_ucsrb, _rxen); - sbi(*_ucsrb, _txen); - sbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); -} - -void HardwareSerial::end() -{ - // wait for transmission of outgoing data - while (_tx_buffer->head != _tx_buffer->tail) - ; - - cbi(*_ucsrb, _rxen); - cbi(*_ucsrb, _txen); - cbi(*_ucsrb, _rxcie); - cbi(*_ucsrb, _udrie); - - // clear any received data - _rx_buffer->head = _rx_buffer->tail; -} - -int HardwareSerial::available(void) -{ - return (unsigned int)(SERIAL_BUFFER_SIZE + _rx_buffer->head - _rx_buffer->tail) % SERIAL_BUFFER_SIZE; -} - -int HardwareSerial::peek(void) -{ - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - return _rx_buffer->buffer[_rx_buffer->tail]; - } -} - -int HardwareSerial::read(void) -{ - // if the head isn't ahead of the tail, we don't have any characters - if (_rx_buffer->head == _rx_buffer->tail) { - return -1; - } else { - unsigned char c = _rx_buffer->buffer[_rx_buffer->tail]; - _rx_buffer->tail = (unsigned int)(_rx_buffer->tail + 1) % SERIAL_BUFFER_SIZE; - return c; - } -} - -void HardwareSerial::flush() -{ - while (_tx_buffer->head != _tx_buffer->tail) - ; -} - -size_t HardwareSerial::write(uint8_t c) -{ - int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE; - - // If the output buffer is full, there's nothing for it other than to - // wait for the interrupt handler to empty it a bit - // ???: return 0 here instead? - while (i == _tx_buffer->tail) - ; - - _tx_buffer->buffer[_tx_buffer->head] = c; - _tx_buffer->head = i; - - sbi(*_ucsrb, _udrie); - - return 1; -} - -HardwareSerial::operator bool() { - return true; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -#if defined(UBRRH) && defined(UBRRL) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRRH, &UBRRL, &UCSRA, &UCSRB, &UDR, RXEN, TXEN, RXCIE, UDRIE, U2X); -#elif defined(UBRR0H) && defined(UBRR0L) - HardwareSerial Serial(&rx_buffer, &tx_buffer, &UBRR0H, &UBRR0L, &UCSR0A, &UCSR0B, &UDR0, RXEN0, TXEN0, RXCIE0, UDRIE0, U2X0); -#elif defined(USBCON) - // do nothing - Serial object and buffers are initialized in CDC code -#else - #error no serial port defined (port 0) -#endif - -#if defined(UBRR1H) - HardwareSerial Serial1(&rx_buffer1, &tx_buffer1, &UBRR1H, &UBRR1L, &UCSR1A, &UCSR1B, &UDR1, RXEN1, TXEN1, RXCIE1, UDRIE1, U2X1); -#endif -#if defined(UBRR2H) - HardwareSerial Serial2(&rx_buffer2, &tx_buffer2, &UBRR2H, &UBRR2L, &UCSR2A, &UCSR2B, &UDR2, RXEN2, TXEN2, RXCIE2, UDRIE2, U2X2); -#endif -#if defined(UBRR3H) - HardwareSerial Serial3(&rx_buffer3, &tx_buffer3, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3); -#endif - -#endif // whole file - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.h deleted file mode 100644 index bf4924c6d4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/HardwareSerial.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - HardwareSerial.h - Hardware serial library for Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 28 September 2010 by Mark Sproul -*/ - -#ifndef HardwareSerial_h -#define HardwareSerial_h - -#include - -#include "Stream.h" - -struct ring_buffer; - -class HardwareSerial : public Stream -{ - private: - ring_buffer *_rx_buffer; - ring_buffer *_tx_buffer; - volatile uint8_t *_ubrrh; - volatile uint8_t *_ubrrl; - volatile uint8_t *_ucsra; - volatile uint8_t *_ucsrb; - volatile uint8_t *_udr; - uint8_t _rxen; - uint8_t _txen; - uint8_t _rxcie; - uint8_t _udrie; - uint8_t _u2x; - public: - HardwareSerial(ring_buffer *rx_buffer, ring_buffer *tx_buffer, - volatile uint8_t *ubrrh, volatile uint8_t *ubrrl, - volatile uint8_t *ucsra, volatile uint8_t *ucsrb, - volatile uint8_t *udr, - uint8_t rxen, uint8_t txen, uint8_t rxcie, uint8_t udrie, uint8_t u2x); - void begin(unsigned long); - void end(); - virtual int available(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - using Print::write; // pull in write(str) and write(buf, size) from Print - operator bool(); -}; - -#if defined(UBRRH) || defined(UBRR0H) - extern HardwareSerial Serial; -#elif defined(USBCON) - #include "USBAPI.h" -// extern HardwareSerial Serial_; -#endif -#if defined(UBRR1H) - extern HardwareSerial Serial1; -#endif -#if defined(UBRR2H) - extern HardwareSerial Serial2; -#endif -#if defined(UBRR3H) - extern HardwareSerial Serial3; -#endif - -extern void serialEventRun(void) __attribute__((weak)); - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.cpp deleted file mode 100644 index fe3deb77a2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.cpp +++ /dev/null @@ -1,56 +0,0 @@ - -#include -#include - -IPAddress::IPAddress() -{ - memset(_address, 0, sizeof(_address)); -} - -IPAddress::IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet) -{ - _address[0] = first_octet; - _address[1] = second_octet; - _address[2] = third_octet; - _address[3] = fourth_octet; -} - -IPAddress::IPAddress(uint32_t address) -{ - memcpy(_address, &address, sizeof(_address)); -} - -IPAddress::IPAddress(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); -} - -IPAddress& IPAddress::operator=(const uint8_t *address) -{ - memcpy(_address, address, sizeof(_address)); - return *this; -} - -IPAddress& IPAddress::operator=(uint32_t address) -{ - memcpy(_address, (const uint8_t *)&address, sizeof(_address)); - return *this; -} - -bool IPAddress::operator==(const uint8_t* addr) -{ - return memcmp(addr, _address, sizeof(_address)) == 0; -} - -size_t IPAddress::printTo(Print& p) const -{ - size_t n = 0; - for (int i =0; i < 3; i++) - { - n += p.print(_address[i], DEC); - n += p.print('.'); - } - n += p.print(_address[3], DEC); - return n; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.h deleted file mode 100644 index 2585aec0e4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/IPAddress.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * MIT License: - * Copyright (c) 2011 Adrian McEwen - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * adrianm@mcqn.com 1/1/2011 - */ - -#ifndef IPAddress_h -#define IPAddress_h - -#include - -// A class to make it easier to handle and pass around IP addresses - -class IPAddress : public Printable { -private: - uint8_t _address[4]; // IPv4 address - // Access the raw byte array containing the address. Because this returns a pointer - // to the internal structure rather than a copy of the address this function should only - // be used when you know that the usage of the returned uint8_t* will be transient and not - // stored. - uint8_t* raw_address() { return _address; }; - -public: - // Constructors - IPAddress(); - IPAddress(uint8_t first_octet, uint8_t second_octet, uint8_t third_octet, uint8_t fourth_octet); - IPAddress(uint32_t address); - IPAddress(const uint8_t *address); - - // Overloaded cast operator to allow IPAddress objects to be used where a pointer - // to a four-byte uint8_t array is expected - operator uint32_t() { return *((uint32_t*)_address); }; - bool operator==(const IPAddress& addr) { return (*((uint32_t*)_address)) == (*((uint32_t*)addr._address)); }; - bool operator==(const uint8_t* addr); - - // Overloaded index operator to allow getting and setting individual octets of the address - uint8_t operator[](int index) const { return _address[index]; }; - uint8_t& operator[](int index) { return _address[index]; }; - - // Overloaded copy operators to allow initialisation of IPAddress objects from other types - IPAddress& operator=(const uint8_t *address); - IPAddress& operator=(uint32_t address); - - virtual size_t printTo(Print& p) const; - - friend class EthernetClass; - friend class UDP; - friend class Client; - friend class Server; - friend class DhcpClass; - friend class DNSClient; -}; - -const IPAddress INADDR_NONE(0,0,0,0); - - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Platform.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Platform.h deleted file mode 100644 index 8b8f742771..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Platform.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __PLATFORM_H__ -#define __PLATFORM_H__ - -#include -#include -#include -#include -#include - -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; - -#include "Arduino.h" - -#if defined(USBCON) - #include "USBDesc.h" - #include "USBCore.h" - #include "USBAPI.h" -#endif /* if defined(USBCON) */ - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.cpp deleted file mode 100644 index e541a6ce71..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.cpp +++ /dev/null @@ -1,263 +0,0 @@ -/* - Print.cpp - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 23 November 2006 by David A. Mellis - */ - -#include -#include -#include -#include -#include "Arduino.h" - -#include "Print.h" - -// Public Methods ////////////////////////////////////////////////////////////// - -/* default implementation: may be overridden */ -size_t Print::write(const uint8_t *buffer, size_t size) -{ - size_t n = 0; - while (size--) { - n += write(*buffer++); - } - return n; -} - -size_t Print::print(const __FlashStringHelper *ifsh) -{ - const char PROGMEM *p = (const char PROGMEM *)ifsh; - size_t n = 0; - while (1) { - unsigned char c = pgm_read_byte(p++); - if (c == 0) break; - n += write(c); - } - return n; -} - -size_t Print::print(const String &s) -{ - size_t n = 0; - for (uint16_t i = 0; i < s.length(); i++) { - n += write(s[i]); - } - return n; -} - -size_t Print::print(const char str[]) -{ - return write(str); -} - -size_t Print::print(char c) -{ - return write(c); -} - -size_t Print::print(unsigned char b, int base) -{ - return print((unsigned long) b, base); -} - -size_t Print::print(int n, int base) -{ - return print((long) n, base); -} - -size_t Print::print(unsigned int n, int base) -{ - return print((unsigned long) n, base); -} - -size_t Print::print(long n, int base) -{ - if (base == 0) { - return write(n); - } else if (base == 10) { - if (n < 0) { - int t = print('-'); - n = -n; - return printNumber(n, 10) + t; - } - return printNumber(n, 10); - } else { - return printNumber(n, base); - } -} - -size_t Print::print(unsigned long n, int base) -{ - if (base == 0) return write(n); - else return printNumber(n, base); -} - -size_t Print::print(double n, int digits) -{ - return printFloat(n, digits); -} - -size_t Print::println(const __FlashStringHelper *ifsh) -{ - size_t n = print(ifsh); - n += println(); - return n; -} - -size_t Print::print(const Printable& x) -{ - return x.printTo(*this); -} - -size_t Print::println(void) -{ - size_t n = print('\r'); - n += print('\n'); - return n; -} - -size_t Print::println(const String &s) -{ - size_t n = print(s); - n += println(); - return n; -} - -size_t Print::println(const char c[]) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(char c) -{ - size_t n = print(c); - n += println(); - return n; -} - -size_t Print::println(unsigned char b, int base) -{ - size_t n = print(b, base); - n += println(); - return n; -} - -size_t Print::println(int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned int num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(unsigned long num, int base) -{ - size_t n = print(num, base); - n += println(); - return n; -} - -size_t Print::println(double num, int digits) -{ - size_t n = print(num, digits); - n += println(); - return n; -} - -size_t Print::println(const Printable& x) -{ - size_t n = print(x); - n += println(); - return n; -} - -// Private Methods ///////////////////////////////////////////////////////////// - -size_t Print::printNumber(unsigned long n, uint8_t base) { - char buf[8 * sizeof(long) + 1]; // Assumes 8-bit chars plus zero byte. - char *str = &buf[sizeof(buf) - 1]; - - *str = '\0'; - - // prevent crash if called with base == 1 - if (base < 2) base = 10; - - do { - unsigned long m = n; - n /= base; - char c = m - base * n; - *--str = c < 10 ? c + '0' : c + 'A' - 10; - } while(n); - - return write(str); -} - -size_t Print::printFloat(double number, uint8_t digits) -{ - size_t n = 0; - - // Handle negative numbers - if (number < 0.0) - { - n += print('-'); - number = -number; - } - - // Round correctly so that print(1.999, 2) prints as "2.00" - double rounding = 0.5; - for (uint8_t i=0; i 0) { - n += print("."); - } - - // Extract digits from the remainder one at a time - while (digits-- > 0) - { - remainder *= 10.0; - int toPrint = int(remainder); - n += print(toPrint); - remainder -= toPrint; - } - - return n; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.h deleted file mode 100644 index 1af6b723fc..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Print.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Print.h - Base class that provides print() and println() - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Print_h -#define Print_h - -#include -#include // for size_t - -#include "WString.h" -#include "Printable.h" - -#define DEC 10 -#define HEX 16 -#define OCT 8 -#define BIN 2 - -class Print -{ - private: - int write_error; - size_t printNumber(unsigned long, uint8_t); - size_t printFloat(double, uint8_t); - protected: - void setWriteError(int err = 1) { write_error = err; } - public: - Print() : write_error(0) {} - - int getWriteError() { return write_error; } - void clearWriteError() { setWriteError(0); } - - virtual size_t write(uint8_t) = 0; - size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); } - virtual size_t write(const uint8_t *buffer, size_t size); - - size_t print(const __FlashStringHelper *); - size_t print(const String &); - size_t print(const char[]); - size_t print(char); - size_t print(unsigned char, int = DEC); - size_t print(int, int = DEC); - size_t print(unsigned int, int = DEC); - size_t print(long, int = DEC); - size_t print(unsigned long, int = DEC); - size_t print(double, int = 2); - size_t print(const Printable&); - - size_t println(const __FlashStringHelper *); - size_t println(const String &s); - size_t println(const char[]); - size_t println(char); - size_t println(unsigned char, int = DEC); - size_t println(int, int = DEC); - size_t println(unsigned int, int = DEC); - size_t println(long, int = DEC); - size_t println(unsigned long, int = DEC); - size_t println(double, int = 2); - size_t println(const Printable&); - size_t println(void); -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Printable.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Printable.h deleted file mode 100644 index d03c9af62c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Printable.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Printable.h - Interface class that allows printing of complex types - Copyright (c) 2011 Adrian McEwen. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef Printable_h -#define Printable_h - -#include - -class Print; - -/** The Printable class provides a way for new classes to allow themselves to be printed. - By deriving from Printable and implementing the printTo method, it will then be possible - for users to print out instances of this class by passing them into the usual - Print::print and Print::println methods. -*/ - -class Printable -{ - public: - virtual size_t printTo(Print& p) const = 0; -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Server.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Server.h deleted file mode 100644 index 9674c76269..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Server.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef server_h -#define server_h - -class Server : public Print { -public: - virtual void begin() =0; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.cpp deleted file mode 100644 index aafb7fcf97..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/* - Stream.cpp - adds parsing methods to Stream class - Copyright (c) 2008 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Created July 2011 - parsing functions based on TextFinder library by Michael Margolis - */ - -#include "Arduino.h" -#include "Stream.h" - -#define PARSE_TIMEOUT 1000 // default number of milli-seconds to wait -#define NO_SKIP_CHAR 1 // a magic char not found in a valid ASCII numeric field - -// private method to read stream with timeout -int Stream::timedRead() -{ - int c; - _startMillis = millis(); - do { - c = read(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// private method to peek stream with timeout -int Stream::timedPeek() -{ - int c; - _startMillis = millis(); - do { - c = peek(); - if (c >= 0) return c; - } while(millis() - _startMillis < _timeout); - return -1; // -1 indicates timeout -} - -// returns peek of the next digit in the stream or -1 if timeout -// discards non-numeric characters -int Stream::peekNextDigit() -{ - int c; - while (1) { - c = timedPeek(); - if (c < 0) return c; // timeout - if (c == '-') return c; - if (c >= '0' && c <= '9') return c; - read(); // discard non-numeric - } -} - -// Public Methods -////////////////////////////////////////////////////////////// - -void Stream::setTimeout(unsigned long timeout) // sets the maximum number of milliseconds to wait -{ - _timeout = timeout; -} - - // find returns true if the target string is found -bool Stream::find(char *target) -{ - return findUntil(target, NULL); -} - -// reads data from the stream until the target string of given length is found -// returns true if target string is found, false if timed out -bool Stream::find(char *target, size_t length) -{ - return findUntil(target, length, NULL, 0); -} - -// as find but search ends if the terminator string is found -bool Stream::findUntil(char *target, char *terminator) -{ - return findUntil(target, strlen(target), terminator, strlen(terminator)); -} - -// reads data from the stream until the target string of the given length is found -// search terminated if the terminator string is found -// returns true if target string is found, false if terminated or timed out -bool Stream::findUntil(char *target, size_t targetLen, char *terminator, size_t termLen) -{ - size_t index = 0; // maximum target string length is 64k bytes! - size_t termIndex = 0; - int c; - - if( *target == 0) - return true; // return true if target is a null string - while( (c = timedRead()) > 0){ - - if(c != target[index]) - index = 0; // reset index if any char does not match - - if( c == target[index]){ - //////Serial.print("found "); Serial.write(c); Serial.print("index now"); Serial.println(index+1); - if(++index >= targetLen){ // return true if all chars in the target match - return true; - } - } - - if(termLen > 0 && c == terminator[termIndex]){ - if(++termIndex >= termLen) - return false; // return false if terminate string found before target string - } - else - termIndex = 0; - } - return false; -} - - -// returns the first valid (long) integer value from the current position. -// initial characters that are not digits (or the minus sign) are skipped -// function is terminated by the first character that is not a digit. -long Stream::parseInt() -{ - return parseInt(NO_SKIP_CHAR); // terminate on first non-digit character (or timeout) -} - -// as above but a given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -long Stream::parseInt(char skipChar) -{ - boolean isNegative = false; - long value = 0; - int c; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore this charactor - else if(c == '-') - isNegative = true; - else if(c >= '0' && c <= '9') // is c a digit? - value = value * 10 + c - '0'; - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == skipChar ); - - if(isNegative) - value = -value; - return value; -} - - -// as parseInt but returns a floating point value -float Stream::parseFloat() -{ - return parseFloat(NO_SKIP_CHAR); -} - -// as above but the given skipChar is ignored -// this allows format characters (typically commas) in values to be ignored -float Stream::parseFloat(char skipChar){ - boolean isNegative = false; - boolean isFraction = false; - long value = 0; - char c; - float fraction = 1.0; - - c = peekNextDigit(); - // ignore non numeric leading characters - if(c < 0) - return 0; // zero returned if timeout - - do{ - if(c == skipChar) - ; // ignore - else if(c == '-') - isNegative = true; - else if (c == '.') - isFraction = true; - else if(c >= '0' && c <= '9') { // is c a digit? - value = value * 10 + c - '0'; - if(isFraction) - fraction *= 0.1; - } - read(); // consume the character we got with peek - c = timedPeek(); - } - while( (c >= '0' && c <= '9') || c == '.' || c == skipChar ); - - if(isNegative) - value = -value; - if(isFraction) - return value * fraction; - else - return value; -} - -// read characters from stream into buffer -// terminates if length characters have been read, or timeout (see setTimeout) -// returns the number of characters placed in the buffer -// the buffer is NOT null terminated. -// -size_t Stream::readBytes(char *buffer, size_t length) -{ - size_t count = 0; - while (count < length) { - int c = timedRead(); - if (c < 0) break; - *buffer++ = (char)c; - count++; - } - return count; -} - - -// as readBytes with terminator character -// terminates if length characters have been read, timeout, or if the terminator character detected -// returns the number of characters placed in the buffer (0 means no valid data found) - -size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) -{ - if (length < 1) return 0; - size_t index = 0; - while (index < length) { - int c = timedRead(); - if (c < 0 || c == terminator) break; - *buffer++ = (char)c; - index++; - } - return index; // return number of characters, not including null terminator -} - -String Stream::readString() -{ - String ret; - int c = timedRead(); - while (c >= 0) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - -String Stream::readStringUntil(char terminator) -{ - String ret; - int c = timedRead(); - while (c >= 0 && c != terminator) - { - ret += (char)c; - c = timedRead(); - } - return ret; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.h deleted file mode 100644 index 58bbf752f3..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Stream.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - Stream.h - base class for character-based streams. - Copyright (c) 2010 David A. Mellis. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - parsing functions based on TextFinder library by Michael Margolis -*/ - -#ifndef Stream_h -#define Stream_h - -#include -#include "Print.h" - -// compatability macros for testing -/* -#define getInt() parseInt() -#define getInt(skipChar) parseInt(skipchar) -#define getFloat() parseFloat() -#define getFloat(skipChar) parseFloat(skipChar) -#define getString( pre_string, post_string, buffer, length) -readBytesBetween( pre_string, terminator, buffer, length) -*/ - -class Stream : public Print -{ - private: - unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read - unsigned long _startMillis; // used for timeout measurement - int timedRead(); // private method to read stream with timeout - int timedPeek(); // private method to peek stream with timeout - int peekNextDigit(); // returns the next numeric digit in the stream or -1 if timeout - - public: - virtual int available() = 0; - virtual int read() = 0; - virtual int peek() = 0; - virtual void flush() = 0; - - Stream() {_timeout=1000;} - -// parsing methods - - void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second - - bool find(char *target); // reads data from the stream until the target string is found - // returns true if target string is found, false if timed out (see setTimeout) - - bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found - // returns true if target string is found, false if timed out - - bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found - - bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found - - - long parseInt(); // returns the first valid (long) integer value from the current position. - // initial characters that are not digits (or the minus sign) are skipped - // integer is terminated by the first character that is not a digit. - - float parseFloat(); // float version of parseInt - - size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer - // terminates if length characters have been read or timeout (see setTimeout) - // returns the number of characters placed in the buffer (0 means no valid data found) - - size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character - // terminates if length characters have been read, timeout, or if the terminator character detected - // returns the number of characters placed in the buffer (0 means no valid data found) - - // Arduino String functions to be added here - String readString(); - String readStringUntil(char terminator); - - protected: - long parseInt(char skipChar); // as above but the given skipChar is ignored - // as above but the given skipChar is ignored - // this allows format characters (typically commas) in values to be ignored - - float parseFloat(char skipChar); // as above but the given skipChar is ignored -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Tone.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Tone.cpp deleted file mode 100644 index 20eed3f483..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Tone.cpp +++ /dev/null @@ -1,601 +0,0 @@ -/* Tone.cpp - - A Tone Generator Library - - Written by Brett Hagman - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Version Modified By Date Comments -------- ----------- -------- -------- -0001 B Hagman 09/08/02 Initial coding -0002 B Hagman 09/08/18 Multiple pins -0003 B Hagman 09/08/18 Moved initialization from constructor to begin() -0004 B Hagman 09/09/26 Fixed problems with ATmega8 -0005 B Hagman 09/11/23 Scanned prescalars for best fit on 8 bit timers - 09/11/25 Changed pin toggle method to XOR - 09/11/25 Fixed timer0 from being excluded -0006 D Mellis 09/12/29 Replaced objects with functions -0007 M Sproul 10/08/29 Changed #ifdefs from cpu to register -*************************************************/ - -#include -#include -#include "Arduino.h" -#include "pins_arduino.h" - -#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega128__) -#define TCCR2A TCCR2 -#define TCCR2B TCCR2 -#define COM2A1 COM21 -#define COM2A0 COM20 -#define OCR2A OCR2 -#define TIMSK2 TIMSK -#define OCIE2A OCIE2 -#define TIMER2_COMPA_vect TIMER2_COMP_vect -#define TIMSK1 TIMSK -#endif - -// timerx_toggle_count: -// > 0 - duration specified -// = 0 - stopped -// < 0 - infinitely (until stop() method called, or new play() called) - -#if !defined(__AVR_ATmega8__) -volatile long timer0_toggle_count; -volatile uint8_t *timer0_pin_port; -volatile uint8_t timer0_pin_mask; -#endif - -volatile long timer1_toggle_count; -volatile uint8_t *timer1_pin_port; -volatile uint8_t timer1_pin_mask; -volatile long timer2_toggle_count; -volatile uint8_t *timer2_pin_port; -volatile uint8_t timer2_pin_mask; - -#if defined(TIMSK3) -volatile long timer3_toggle_count; -volatile uint8_t *timer3_pin_port; -volatile uint8_t timer3_pin_mask; -#endif - -#if defined(TIMSK4) -volatile long timer4_toggle_count; -volatile uint8_t *timer4_pin_port; -volatile uint8_t timer4_pin_mask; -#endif - -#if defined(TIMSK5) -volatile long timer5_toggle_count; -volatile uint8_t *timer5_pin_port; -volatile uint8_t timer5_pin_mask; -#endif - - -// MLS: This does not make sense, the 3 options are the same -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 3, 4, 5, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255, 255, 255, 255 */ }; - -#elif defined(__AVR_ATmega8__) - -#define AVAILABLE_TONE_PINS 1 - -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255 */ }; - -#else - -#define AVAILABLE_TONE_PINS 1 - -// Leave timer 0 to last. -const uint8_t PROGMEM tone_pin_to_timer_PGM[] = { 2 /*, 1, 0 */ }; -static uint8_t tone_pins[AVAILABLE_TONE_PINS] = { 255 /*, 255, 255 */ }; - -#endif - - - -static int8_t toneBegin(uint8_t _pin) -{ - int8_t _timer = -1; - - // if we're already using the pin, the timer should be configured. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - return pgm_read_byte(tone_pin_to_timer_PGM + i); - } - } - - // search for an unused timer. - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == 255) { - tone_pins[i] = _pin; - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - break; - } - } - - if (_timer != -1) - { - // Set timer specific stuff - // All timers in CTC mode - // 8 bit timers will require changing prescalar values, - // whereas 16 bit timers are set to either ck/1 or ck/64 prescalar - switch (_timer) - { - #if defined(TCCR0A) && defined(TCCR0B) - case 0: - // 8 bit timer - TCCR0A = 0; - TCCR0B = 0; - bitWrite(TCCR0A, WGM01, 1); - bitWrite(TCCR0B, CS00, 1); - timer0_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer0_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR1A) && defined(TCCR1B) && defined(WGM12) - case 1: - // 16 bit timer - TCCR1A = 0; - TCCR1B = 0; - bitWrite(TCCR1B, WGM12, 1); - bitWrite(TCCR1B, CS10, 1); - timer1_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer1_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR2A) && defined(TCCR2B) - case 2: - // 8 bit timer - TCCR2A = 0; - TCCR2B = 0; - bitWrite(TCCR2A, WGM21, 1); - bitWrite(TCCR2B, CS20, 1); - timer2_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer2_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR3A) && defined(TCCR3B) && defined(TIMSK3) - case 3: - // 16 bit timer - TCCR3A = 0; - TCCR3B = 0; - bitWrite(TCCR3B, WGM32, 1); - bitWrite(TCCR3B, CS30, 1); - timer3_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer3_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR4A) && defined(TCCR4B) && defined(TIMSK4) - case 4: - // 16 bit timer - TCCR4A = 0; - TCCR4B = 0; - #if defined(WGM42) - bitWrite(TCCR4B, WGM42, 1); - #elif defined(CS43) - #warning this may not be correct - // atmega32u4 - bitWrite(TCCR4B, CS43, 1); - #endif - bitWrite(TCCR4B, CS40, 1); - timer4_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer4_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - - #if defined(TCCR5A) && defined(TCCR5B) && defined(TIMSK5) - case 5: - // 16 bit timer - TCCR5A = 0; - TCCR5B = 0; - bitWrite(TCCR5B, WGM52, 1); - bitWrite(TCCR5B, CS50, 1); - timer5_pin_port = portOutputRegister(digitalPinToPort(_pin)); - timer5_pin_mask = digitalPinToBitMask(_pin); - break; - #endif - } - } - - return _timer; -} - - - -// frequency (in hertz) and duration (in milliseconds). - -void tone(uint8_t _pin, unsigned int frequency, unsigned long duration) -{ - uint8_t prescalarbits = 0b001; - long toggle_count = 0; - uint32_t ocr = 0; - int8_t _timer; - - _timer = toneBegin(_pin); - - if (_timer >= 0) - { - // Set the pinMode as OUTPUT - pinMode(_pin, OUTPUT); - - // if we are using an 8 bit timer, scan through prescalars to find the best fit - if (_timer == 0 || _timer == 2) - { - ocr = F_CPU / frequency / 2 - 1; - prescalarbits = 0b001; // ck/1: same for both timers - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 8 - 1; - prescalarbits = 0b010; // ck/8: same for both timers - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 32 - 1; - prescalarbits = 0b011; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = _timer == 0 ? 0b011 : 0b100; - - if (_timer == 2 && ocr > 255) - { - ocr = F_CPU / frequency / 2 / 128 - 1; - prescalarbits = 0b101; - } - - if (ocr > 255) - { - ocr = F_CPU / frequency / 2 / 256 - 1; - prescalarbits = _timer == 0 ? 0b100 : 0b110; - if (ocr > 255) - { - // can't do any better than /1024 - ocr = F_CPU / frequency / 2 / 1024 - 1; - prescalarbits = _timer == 0 ? 0b101 : 0b111; - } - } - } - } - -#if defined(TCCR0B) - if (_timer == 0) - { - TCCR0B = prescalarbits; - } - else -#endif -#if defined(TCCR2B) - { - TCCR2B = prescalarbits; - } -#else - { - // dummy place holder to make the above ifdefs work - } -#endif - } - else - { - // two choices for the 16 bit timers: ck/1 or ck/64 - ocr = F_CPU / frequency / 2 - 1; - - prescalarbits = 0b001; - if (ocr > 0xffff) - { - ocr = F_CPU / frequency / 2 / 64 - 1; - prescalarbits = 0b011; - } - - if (_timer == 1) - { -#if defined(TCCR1B) - TCCR1B = (TCCR1B & 0b11111000) | prescalarbits; -#endif - } -#if defined(TCCR3B) - else if (_timer == 3) - TCCR3B = (TCCR3B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR4B) - else if (_timer == 4) - TCCR4B = (TCCR4B & 0b11111000) | prescalarbits; -#endif -#if defined(TCCR5B) - else if (_timer == 5) - TCCR5B = (TCCR5B & 0b11111000) | prescalarbits; -#endif - - } - - - // Calculate the toggle count - if (duration > 0) - { - toggle_count = 2 * frequency * duration / 1000; - } - else - { - toggle_count = -1; - } - - // Set the OCR for the given timer, - // set the toggle count, - // then turn on the interrupts - switch (_timer) - { - -#if defined(OCR0A) && defined(TIMSK0) && defined(OCIE0A) - case 0: - OCR0A = ocr; - timer0_toggle_count = toggle_count; - bitWrite(TIMSK0, OCIE0A, 1); - break; -#endif - - case 1: -#if defined(OCR1A) && defined(TIMSK1) && defined(OCIE1A) - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK1, OCIE1A, 1); -#elif defined(OCR1A) && defined(TIMSK) && defined(OCIE1A) - // this combination is for at least the ATmega32 - OCR1A = ocr; - timer1_toggle_count = toggle_count; - bitWrite(TIMSK, OCIE1A, 1); -#endif - break; - -#if defined(OCR2A) && defined(TIMSK2) && defined(OCIE2A) - case 2: - OCR2A = ocr; - timer2_toggle_count = toggle_count; - bitWrite(TIMSK2, OCIE2A, 1); - break; -#endif - -#if defined(TIMSK3) - case 3: - OCR3A = ocr; - timer3_toggle_count = toggle_count; - bitWrite(TIMSK3, OCIE3A, 1); - break; -#endif - -#if defined(TIMSK4) - case 4: - OCR4A = ocr; - timer4_toggle_count = toggle_count; - bitWrite(TIMSK4, OCIE4A, 1); - break; -#endif - -#if defined(OCR5A) && defined(TIMSK5) && defined(OCIE5A) - case 5: - OCR5A = ocr; - timer5_toggle_count = toggle_count; - bitWrite(TIMSK5, OCIE5A, 1); - break; -#endif - - } - } -} - - -// XXX: this function only works properly for timer 2 (the only one we use -// currently). for the others, it should end the tone, but won't restore -// proper PWM functionality for the timer. -void disableTimer(uint8_t _timer) -{ - switch (_timer) - { - case 0: - #if defined(TIMSK0) - TIMSK0 = 0; - #elif defined(TIMSK) - TIMSK = 0; // atmega32 - #endif - break; - -#if defined(TIMSK1) && defined(OCIE1A) - case 1: - bitWrite(TIMSK1, OCIE1A, 0); - break; -#endif - - case 2: - #if defined(TIMSK2) && defined(OCIE2A) - bitWrite(TIMSK2, OCIE2A, 0); // disable interrupt - #endif - #if defined(TCCR2A) && defined(WGM20) - TCCR2A = (1 << WGM20); - #endif - #if defined(TCCR2B) && defined(CS22) - TCCR2B = (TCCR2B & 0b11111000) | (1 << CS22); - #endif - #if defined(OCR2A) - OCR2A = 0; - #endif - break; - -#if defined(TIMSK3) - case 3: - TIMSK3 = 0; - break; -#endif - -#if defined(TIMSK4) - case 4: - TIMSK4 = 0; - break; -#endif - -#if defined(TIMSK5) - case 5: - TIMSK5 = 0; - break; -#endif - } -} - - -void noTone(uint8_t _pin) -{ - int8_t _timer = -1; - - for (int i = 0; i < AVAILABLE_TONE_PINS; i++) { - if (tone_pins[i] == _pin) { - _timer = pgm_read_byte(tone_pin_to_timer_PGM + i); - tone_pins[i] = 255; - } - } - - disableTimer(_timer); - - digitalWrite(_pin, 0); -} - -#if 0 -#if !defined(__AVR_ATmega8__) -ISR(TIMER0_COMPA_vect) -{ - if (timer0_toggle_count != 0) - { - // toggle the pin - *timer0_pin_port ^= timer0_pin_mask; - - if (timer0_toggle_count > 0) - timer0_toggle_count--; - } - else - { - disableTimer(0); - *timer0_pin_port &= ~(timer0_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER1_COMPA_vect) -{ - if (timer1_toggle_count != 0) - { - // toggle the pin - *timer1_pin_port ^= timer1_pin_mask; - - if (timer1_toggle_count > 0) - timer1_toggle_count--; - } - else - { - disableTimer(1); - *timer1_pin_port &= ~(timer1_pin_mask); // keep pin low after stop - } -} -#endif - - -ISR(TIMER2_COMPA_vect) -{ - - if (timer2_toggle_count != 0) - { - // toggle the pin - *timer2_pin_port ^= timer2_pin_mask; - - if (timer2_toggle_count > 0) - timer2_toggle_count--; - } - else - { - // need to call noTone() so that the tone_pins[] entry is reset, so the - // timer gets initialized next time we call tone(). - // XXX: this assumes timer 2 is always the first one used. - noTone(tone_pins[0]); -// disableTimer(2); -// *timer2_pin_port &= ~(timer2_pin_mask); // keep pin low after stop - } -} - - - -//#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#if 0 - -ISR(TIMER3_COMPA_vect) -{ - if (timer3_toggle_count != 0) - { - // toggle the pin - *timer3_pin_port ^= timer3_pin_mask; - - if (timer3_toggle_count > 0) - timer3_toggle_count--; - } - else - { - disableTimer(3); - *timer3_pin_port &= ~(timer3_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER4_COMPA_vect) -{ - if (timer4_toggle_count != 0) - { - // toggle the pin - *timer4_pin_port ^= timer4_pin_mask; - - if (timer4_toggle_count > 0) - timer4_toggle_count--; - } - else - { - disableTimer(4); - *timer4_pin_port &= ~(timer4_pin_mask); // keep pin low after stop - } -} - -ISR(TIMER5_COMPA_vect) -{ - if (timer5_toggle_count != 0) - { - // toggle the pin - *timer5_pin_port ^= timer5_pin_mask; - - if (timer5_toggle_count > 0) - timer5_toggle_count--; - } - else - { - disableTimer(5); - *timer5_pin_port &= ~(timer5_pin_mask); // keep pin low after stop - } -} - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBAPI.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBAPI.h deleted file mode 100644 index d5abdb690d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBAPI.h +++ /dev/null @@ -1,195 +0,0 @@ - - -#ifndef __USBAPI__ -#define __USBAPI__ - -#if defined(USBCON) - -//================================================================================ -//================================================================================ -// USB - -class USBDevice_ -{ -public: - USBDevice_(); - bool configured(); - - void attach(); - void detach(); // Serial port goes down too... - void poll(); -}; -extern USBDevice_ USBDevice; - -//================================================================================ -//================================================================================ -// Serial over CDC (Serial1 is the physical port) - -class Serial_ : public Stream -{ -private: - ring_buffer *_cdc_rx_buffer; -public: - void begin(uint16_t baud_count); - void end(void); - - virtual int available(void); - virtual void accept(void); - virtual int peek(void); - virtual int read(void); - virtual void flush(void); - virtual size_t write(uint8_t); - operator bool(); -}; -extern Serial_ Serial; - -//================================================================================ -//================================================================================ -// Mouse - -#define MOUSE_LEFT 1 -#define MOUSE_RIGHT 2 -#define MOUSE_MIDDLE 4 -#define MOUSE_ALL (MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE) - -class Mouse_ -{ -private: - uint8_t _buttons; - void buttons(uint8_t b); -public: - Mouse_(void); - void begin(void); - void end(void); - void click(uint8_t b = MOUSE_LEFT); - void move(signed char x, signed char y, signed char wheel = 0); - void press(uint8_t b = MOUSE_LEFT); // press LEFT by default - void release(uint8_t b = MOUSE_LEFT); // release LEFT by default - bool isPressed(uint8_t b = MOUSE_LEFT); // check LEFT by default -}; -extern Mouse_ Mouse; - -//================================================================================ -//================================================================================ -// Keyboard - -#define KEY_LEFT_CTRL 0x80 -#define KEY_LEFT_SHIFT 0x81 -#define KEY_LEFT_ALT 0x82 -#define KEY_LEFT_GUI 0x83 -#define KEY_RIGHT_CTRL 0x84 -#define KEY_RIGHT_SHIFT 0x85 -#define KEY_RIGHT_ALT 0x86 -#define KEY_RIGHT_GUI 0x87 - -#define KEY_UP_ARROW 0xDA -#define KEY_DOWN_ARROW 0xD9 -#define KEY_LEFT_ARROW 0xD8 -#define KEY_RIGHT_ARROW 0xD7 -#define KEY_BACKSPACE 0xB2 -#define KEY_TAB 0xB3 -#define KEY_RETURN 0xB0 -#define KEY_ESC 0xB1 -#define KEY_INSERT 0xD1 -#define KEY_DELETE 0xD4 -#define KEY_PAGE_UP 0xD3 -#define KEY_PAGE_DOWN 0xD6 -#define KEY_HOME 0xD2 -#define KEY_END 0xD5 -#define KEY_CAPS_LOCK 0xC1 -#define KEY_F1 0xC2 -#define KEY_F2 0xC3 -#define KEY_F3 0xC4 -#define KEY_F4 0xC5 -#define KEY_F5 0xC6 -#define KEY_F6 0xC7 -#define KEY_F7 0xC8 -#define KEY_F8 0xC9 -#define KEY_F9 0xCA -#define KEY_F10 0xCB -#define KEY_F11 0xCC -#define KEY_F12 0xCD - -// Low level key report: up to 6 keys and shift, ctrl etc at once -typedef struct -{ - uint8_t modifiers; - uint8_t reserved; - uint8_t keys[6]; -} KeyReport; - -class Keyboard_ : public Print -{ -private: - KeyReport _keyReport; - void sendReport(KeyReport* keys); -public: - Keyboard_(void); - void begin(void); - void end(void); - virtual size_t write(uint8_t k); - virtual size_t press(uint8_t k); - virtual size_t release(uint8_t k); - virtual void releaseAll(void); -}; -extern Keyboard_ Keyboard; - -//================================================================================ -//================================================================================ -// Low level API - -typedef struct -{ - uint8_t bmRequestType; - uint8_t bRequest; - uint8_t wValueL; - uint8_t wValueH; - uint16_t wIndex; - uint16_t wLength; -} Setup; - -//================================================================================ -//================================================================================ -// HID 'Driver' - -int HID_GetInterface(uint8_t* interfaceNum); -int HID_GetDescriptor(int i); -bool HID_Setup(Setup& setup); -void HID_SendReport(uint8_t id, const void* data, int len); - -//================================================================================ -//================================================================================ -// MSC 'Driver' - -int MSC_GetInterface(uint8_t* interfaceNum); -int MSC_GetDescriptor(int i); -bool MSC_Setup(Setup& setup); -bool MSC_Data(uint8_t rx,uint8_t tx); - -//================================================================================ -//================================================================================ -// CSC 'Driver' - -int CDC_GetInterface(uint8_t* interfaceNum); -int CDC_GetDescriptor(int i); -bool CDC_Setup(Setup& setup); - -//================================================================================ -//================================================================================ - -#define TRANSFER_PGM 0x80 -#define TRANSFER_RELEASE 0x40 -#define TRANSFER_ZERO 0x20 - -int USB_SendControl(uint8_t flags, const void* d, int len); -int USB_RecvControl(void* d, int len); - -uint8_t USB_Available(uint8_t ep); -int USB_Send(uint8_t ep, const void* data, int len); // blocking -int USB_Recv(uint8_t ep, void* data, int len); // non-blocking -int USB_Recv(uint8_t ep); // non-blocking -void USB_Flush(uint8_t ep); - -#endif - -#endif /* if defined(USBCON) */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBCore.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBCore.cpp deleted file mode 100644 index 545c88a7a9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBCore.cpp +++ /dev/null @@ -1,670 +0,0 @@ - - -/* Copyright (c) 2010, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#include "Platform.h" -#include "USBAPI.h" -#include "USBDesc.h" - -#if defined(USBCON) - -#define EP_TYPE_CONTROL 0x00 -#define EP_TYPE_BULK_IN 0x81 -#define EP_TYPE_BULK_OUT 0x80 -#define EP_TYPE_INTERRUPT_IN 0xC1 -#define EP_TYPE_INTERRUPT_OUT 0xC0 -#define EP_TYPE_ISOCHRONOUS_IN 0x41 -#define EP_TYPE_ISOCHRONOUS_OUT 0x40 - -/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */ -#define TX_RX_LED_PULSE_MS 100 -volatile u8 TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */ -volatile u8 RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */ - -//================================================================== -//================================================================== - -extern const u16 STRING_LANGUAGE[] PROGMEM; -extern const u16 STRING_IPRODUCT[] PROGMEM; -extern const u16 STRING_IMANUFACTURER[] PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; -extern const DeviceDescriptor USB_DeviceDescriptorA PROGMEM; - -const u16 STRING_LANGUAGE[2] = { - (3<<8) | (2+2), - 0x0409 // English -}; - -const u16 STRING_IPRODUCT[17] = { - (3<<8) | (2+2*16), - 'B','r','a','i','n','w','a','v','e',' ',' ',' ',' ',' ',' ',' ' -}; - -const u16 STRING_IMANUFACTURER[12] = { - (3<<8) | (2+2*11), - 'M','e','t','r','i','x',' ',' ',' ',' ',' ' -}; - -#ifdef CDC_ENABLED -#define DEVICE_CLASS 0x02 -#else -#define DEVICE_CLASS 0x00 -#endif - -// DEVICE DESCRIPTOR -const DeviceDescriptor USB_DeviceDescriptor = - D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -const DeviceDescriptor USB_DeviceDescriptorA = - D_DEVICE(DEVICE_CLASS,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); - -//================================================================== -//================================================================== - -volatile u8 _usbConfiguration = 0; - -static inline void WaitIN(void) -{ - while (!(UEINTX & (1< len) - n = len; - len -= n; - { - LockEP lock(ep); - if (ep & TRANSFER_ZERO) - { - while (n--) - Send8(0); - } - else if (ep & TRANSFER_PGM) - { - while (n--) - Send8(pgm_read_byte(data++)); - } - else - { - while (n--) - Send8(*data++); - } - if (!ReadWriteAllowed() || ((len == 0) && (ep & TRANSFER_RELEASE))) // Release full buffer - ReleaseTX(); - } - } - TXLED1; // light the TX LED - TxLEDPulse = TX_RX_LED_PULSE_MS; - return r; -} - -extern const u8 _initEndpoints[] PROGMEM; -const u8 _initEndpoints[] = -{ - 0, - -#ifdef CDC_ENABLED - EP_TYPE_INTERRUPT_IN, // CDC_ENDPOINT_ACM - EP_TYPE_BULK_OUT, // CDC_ENDPOINT_OUT - EP_TYPE_BULK_IN, // CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED - EP_TYPE_INTERRUPT_IN // HID_ENDPOINT_INT -#endif -}; - -#define EP_SINGLE_64 0x32 // EP0 -#define EP_DOUBLE_64 0x36 // Other endpoints - -static -void InitEP(u8 index, u8 type, u8 size) -{ - UENUM = index; - UECONX = 1; - UECFG0X = type; - UECFG1X = size; -} - -static -void InitEndpoints() -{ - for (u8 i = 1; i < sizeof(_initEndpoints); i++) - { - UENUM = i; - UECONX = 1; - UECFG0X = pgm_read_byte(_initEndpoints+i); - UECFG1X = EP_DOUBLE_64; - } - UERST = 0x7E; // And reset them - UERST = 0; -} - -// Handle CLASS_INTERFACE requests -static -bool ClassInterfaceRequest(Setup& setup) -{ - u8 i = setup.wIndex; - -#ifdef CDC_ENABLED - if (CDC_ACM_INTERFACE == i) - return CDC_Setup(setup); -#endif - -#ifdef HID_ENABLED - if (HID_INTERFACE == i) - return HID_Setup(setup); -#endif - return false; -} - -int _cmark; -int _cend; -void InitControl(int end) -{ - SetEP(0); - _cmark = 0; - _cend = end; -} - -static -bool SendControl(u8 d) -{ - if (_cmark < _cend) - { - if (!WaitForINOrOUT()) - return false; - Send8(d); - if (!((_cmark + 1) & 0x3F)) - ClearIN(); // Fifo is full, release this packet - } - _cmark++; - return true; -}; - -// Clipped by _cmark/_cend -int USB_SendControl(u8 flags, const void* d, int len) -{ - int sent = len; - const u8* data = (const u8*)d; - bool pgm = flags & TRANSFER_PGM; - while (len--) - { - u8 c = pgm ? pgm_read_byte(data++) : *data++; - if (!SendControl(c)) - return -1; - } - return sent; -} - -// Does not timeout or cross fifo boundaries -// Will only work for transfers <= 64 bytes -// TODO -int USB_RecvControl(void* d, int len) -{ - WaitOUT(); - Recv((u8*)d,len); - ClearOUT(); - return len; -} - -int SendInterfaces() -{ - int total = 0; - u8 interfaces = 0; - -#ifdef CDC_ENABLED - total = CDC_GetInterface(&interfaces); -#endif - -#ifdef HID_ENABLED - total += HID_GetInterface(&interfaces); -#endif - - return interfaces; -} - -// Construct a dynamic configuration descriptor -// This really needs dynamic endpoint allocation etc -// TODO -static -bool SendConfiguration(int maxlen) -{ - // Count and measure interfaces - InitControl(0); - int interfaces = SendInterfaces(); - ConfigDescriptor config = D_CONFIG(_cmark + sizeof(ConfigDescriptor),interfaces); - - // Now send them - InitControl(maxlen); - USB_SendControl(0,&config,sizeof(ConfigDescriptor)); - SendInterfaces(); - return true; -} - -u8 _cdcComposite = 0; - -static -bool SendDescriptor(Setup& setup) -{ - u8 t = setup.wValueH; - if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) - return SendConfiguration(setup.wLength); - - InitControl(setup.wLength); -#ifdef HID_ENABLED - if (HID_REPORT_DESCRIPTOR_TYPE == t) - return HID_GetDescriptor(t); -#endif - - u8 desc_length = 0; - const u8* desc_addr = 0; - if (USB_DEVICE_DESCRIPTOR_TYPE == t) - { - if (setup.wLength == 8) - _cdcComposite = 1; - desc_addr = _cdcComposite ? (const u8*)&USB_DeviceDescriptorA : (const u8*)&USB_DeviceDescriptor; - } - else if (USB_STRING_DESCRIPTOR_TYPE == t) - { - if (setup.wValueL == 0) - desc_addr = (const u8*)&STRING_LANGUAGE; - else if (setup.wValueL == IPRODUCT) - desc_addr = (const u8*)&STRING_IPRODUCT; - else if (setup.wValueL == IMANUFACTURER) - desc_addr = (const u8*)&STRING_IMANUFACTURER; - else - return false; - } - - if (desc_addr == 0) - return false; - if (desc_length == 0) - desc_length = pgm_read_byte(desc_addr); - - USB_SendControl(TRANSFER_PGM,desc_addr,desc_length); - return true; -} - -// Endpoint 0 interrupt -ISR(USB_COM_vect) -{ - SetEP(0); - if (!ReceivedSetupInt()) - return; - - Setup setup; - Recv((u8*)&setup,8); - ClearSetupInt(); - - u8 requestType = setup.bmRequestType; - if (requestType & REQUEST_DEVICETOHOST) - WaitIN(); - else - ClearIN(); - - bool ok = true; - if (REQUEST_STANDARD == (requestType & REQUEST_TYPE)) - { - // Standard Requests - u8 r = setup.bRequest; - if (GET_STATUS == r) - { - Send8(0); // TODO - Send8(0); - } - else if (CLEAR_FEATURE == r) - { - } - else if (SET_FEATURE == r) - { - } - else if (SET_ADDRESS == r) - { - WaitIN(); - UDADDR = setup.wValueL | (1<> 8) & 0xFF) - -#define CDC_V1_10 0x0110 -#define CDC_COMMUNICATION_INTERFACE_CLASS 0x02 - -#define CDC_CALL_MANAGEMENT 0x01 -#define CDC_ABSTRACT_CONTROL_MODEL 0x02 -#define CDC_HEADER 0x00 -#define CDC_ABSTRACT_CONTROL_MANAGEMENT 0x02 -#define CDC_UNION 0x06 -#define CDC_CS_INTERFACE 0x24 -#define CDC_CS_ENDPOINT 0x25 -#define CDC_DATA_INTERFACE_CLASS 0x0A - -#define MSC_SUBCLASS_SCSI 0x06 -#define MSC_PROTOCOL_BULK_ONLY 0x50 - -#define HID_HID_DESCRIPTOR_TYPE 0x21 -#define HID_REPORT_DESCRIPTOR_TYPE 0x22 -#define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23 - - -// Device -typedef struct { - u8 len; // 18 - u8 dtype; // 1 USB_DEVICE_DESCRIPTOR_TYPE - u16 usbVersion; // 0x200 - u8 deviceClass; - u8 deviceSubClass; - u8 deviceProtocol; - u8 packetSize0; // Packet 0 - u16 idVendor; - u16 idProduct; - u16 deviceVersion; // 0x100 - u8 iManufacturer; - u8 iProduct; - u8 iSerialNumber; - u8 bNumConfigurations; -} DeviceDescriptor; - -// Config -typedef struct { - u8 len; // 9 - u8 dtype; // 2 - u16 clen; // total length - u8 numInterfaces; - u8 config; - u8 iconfig; - u8 attributes; - u8 maxPower; -} ConfigDescriptor; - -// String - -// Interface -typedef struct -{ - u8 len; // 9 - u8 dtype; // 4 - u8 number; - u8 alternate; - u8 numEndpoints; - u8 interfaceClass; - u8 interfaceSubClass; - u8 protocol; - u8 iInterface; -} InterfaceDescriptor; - -// Endpoint -typedef struct -{ - u8 len; // 7 - u8 dtype; // 5 - u8 addr; - u8 attr; - u16 packetSize; - u8 interval; -} EndpointDescriptor; - -// Interface Association Descriptor -// Used to bind 2 interfaces together in CDC compostite device -typedef struct -{ - u8 len; // 8 - u8 dtype; // 11 - u8 firstInterface; - u8 interfaceCount; - u8 functionClass; - u8 funtionSubClass; - u8 functionProtocol; - u8 iInterface; -} IADDescriptor; - -// CDC CS interface descriptor -typedef struct -{ - u8 len; // 5 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; - u8 d1; -} CDCCSInterfaceDescriptor; - -typedef struct -{ - u8 len; // 4 - u8 dtype; // 0x24 - u8 subtype; - u8 d0; -} CDCCSInterfaceDescriptor4; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; - u8 bDataInterface; -} CMFunctionalDescriptor; - -typedef struct -{ - u8 len; - u8 dtype; // 0x24 - u8 subtype; // 1 - u8 bmCapabilities; -} ACMFunctionalDescriptor; - -typedef struct -{ - // IAD - IADDescriptor iad; // Only needed on compound device - - // Control - InterfaceDescriptor cif; // - CDCCSInterfaceDescriptor header; - CMFunctionalDescriptor callManagement; // Call Management - ACMFunctionalDescriptor controlManagement; // ACM - CDCCSInterfaceDescriptor functionalDescriptor; // CDC_UNION - EndpointDescriptor cifin; - - // Data - InterfaceDescriptor dif; - EndpointDescriptor in; - EndpointDescriptor out; -} CDCDescriptor; - -typedef struct -{ - InterfaceDescriptor msc; - EndpointDescriptor in; - EndpointDescriptor out; -} MSCDescriptor; - -typedef struct -{ - u8 len; // 9 - u8 dtype; // 0x21 - u8 addr; - u8 versionL; // 0x101 - u8 versionH; // 0x101 - u8 country; - u8 desctype; // 0x22 report - u8 descLenL; - u8 descLenH; -} HIDDescDescriptor; - -typedef struct -{ - InterfaceDescriptor hid; - HIDDescDescriptor desc; - EndpointDescriptor in; -} HIDDescriptor; - - -#define D_DEVICE(_class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs) \ - { 18, 1, 0x200, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } - -#define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED, USB_CONFIG_POWER_MA(500) } - -#define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ - { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } - -#define D_ENDPOINT(_addr,_attr,_packetSize, _interval) \ - { 7, 5, _addr,_attr,_packetSize, _interval } - -#define D_IAD(_firstInterface, _count, _class, _subClass, _protocol) \ - { 8, 11, _firstInterface, _count, _class, _subClass, _protocol, 0 } - -#define D_HIDREPORT(_descriptorLength) \ - { 9, 0x21, 0x1, 0x1, 0, 1, 0x22, _descriptorLength, 0 } - -#define D_CDCCS(_subtype,_d0,_d1) { 5, 0x24, _subtype, _d0, _d1 } -#define D_CDCCS4(_subtype,_d0) { 4, 0x24, _subtype, _d0 } - - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBDesc.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBDesc.h deleted file mode 100644 index 094826433d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/USBDesc.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright (c) 2011, Peter Barrett -** -** Permission to use, copy, modify, and/or distribute this software for -** any purpose with or without fee is hereby granted, provided that the -** above copyright notice and this permission notice appear in all copies. -** -** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL -** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR -** BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -** OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -** WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -** ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -** SOFTWARE. -*/ - -#define CDC_ENABLED - -// Disable HID, Brainwaves don't need to be mice. -Hubbe 20120929 -// #define HID_ENABLED - -#ifdef CDC_ENABLED -#define CDC_INTERFACE_COUNT 2 -#define CDC_ENPOINT_COUNT 3 -#else -#define CDC_INTERFACE_COUNT 0 -#define CDC_ENPOINT_COUNT 0 -#endif - -#ifdef HID_ENABLED -#define HID_INTERFACE_COUNT 1 -#define HID_ENPOINT_COUNT 1 -#else -#define HID_INTERFACE_COUNT 0 -#define HID_ENPOINT_COUNT 0 -#endif - -#define CDC_ACM_INTERFACE 0 // CDC ACM -#define CDC_DATA_INTERFACE 1 // CDC Data -#define CDC_FIRST_ENDPOINT 1 -#define CDC_ENDPOINT_ACM (CDC_FIRST_ENDPOINT) // CDC First -#define CDC_ENDPOINT_OUT (CDC_FIRST_ENDPOINT+1) -#define CDC_ENDPOINT_IN (CDC_FIRST_ENDPOINT+2) - -#define HID_INTERFACE (CDC_ACM_INTERFACE + CDC_INTERFACE_COUNT) // HID Interface -#define HID_FIRST_ENDPOINT (CDC_FIRST_ENDPOINT + CDC_ENPOINT_COUNT) -#define HID_ENDPOINT_INT (HID_FIRST_ENDPOINT) - -#define INTERFACE_COUNT (MSC_INTERFACE + MSC_INTERFACE_COUNT) - -#ifdef CDC_ENABLED -#define CDC_RX CDC_ENDPOINT_OUT -#define CDC_TX CDC_ENDPOINT_IN -#endif - -#ifdef HID_ENABLED -#define HID_TX HID_ENDPOINT_INT -#endif - -#define IMANUFACTURER 1 -#define IPRODUCT 2 - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Udp.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Udp.h deleted file mode 100644 index dc5644b9df..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/Udp.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Udp.cpp: Library to send/receive UDP packets. - * - * NOTE: UDP is fast, but has some important limitations (thanks to Warren Gray for mentioning these) - * 1) UDP does not guarantee the order in which assembled UDP packets are received. This - * might not happen often in practice, but in larger network topologies, a UDP - * packet can be received out of sequence. - * 2) UDP does not guard against lost packets - so packets *can* disappear without the sender being - * aware of it. Again, this may not be a concern in practice on small local networks. - * For more information, see http://www.cafeaulait.org/course/week12/35.html - * - * MIT License: - * Copyright (c) 2008 Bjoern Hartmann - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * bjoern@cs.stanford.edu 12/30/2008 - */ - -#ifndef udp_h -#define udp_h - -#include -#include - -class UDP : public Stream { - -public: - virtual uint8_t begin(uint16_t) =0; // initialize, start listening on specified port. Returns 1 if successful, 0 if there are no sockets available to use - virtual void stop() =0; // Finish with the UDP socket - - // Sending UDP packets - - // Start building up a packet to send to the remote host specific in ip and port - // Returns 1 if successful, 0 if there was a problem with the supplied IP address or port - virtual int beginPacket(IPAddress ip, uint16_t port) =0; - // Start building up a packet to send to the remote host specific in host and port - // Returns 1 if successful, 0 if there was a problem resolving the hostname or port - virtual int beginPacket(const char *host, uint16_t port) =0; - // Finish off this packet and send it - // Returns 1 if the packet was sent successfully, 0 if there was an error - virtual int endPacket() =0; - // Write a single byte into the packet - virtual size_t write(uint8_t) =0; - // Write size bytes from buffer into the packet - virtual size_t write(const uint8_t *buffer, size_t size) =0; - - // Start processing the next available incoming packet - // Returns the size of the packet in bytes, or 0 if no packets are available - virtual int parsePacket() =0; - // Number of bytes remaining in the current packet - virtual int available() =0; - // Read a single byte from the current packet - virtual int read() =0; - // Read up to len bytes from the current packet and place them into buffer - // Returns the number of bytes read, or 0 if none are available - virtual int read(unsigned char* buffer, size_t len) =0; - // Read up to len characters from the current packet and place them into buffer - // Returns the number of characters read, or 0 if none are available - virtual int read(char* buffer, size_t len) =0; - // Return the next byte from the current packet without moving on to the next byte - virtual int peek() =0; - virtual void flush() =0; // Finish reading the current packet - - // Return the IP address of the host who sent the current incoming packet - virtual IPAddress remoteIP() =0; - // Return the port of the host who sent the current incoming packet - virtual uint16_t remotePort() =0; -protected: - uint8_t* rawIPAddress(IPAddress& addr) { return addr.raw_address(); }; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WCharacter.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WCharacter.h deleted file mode 100644 index 79733b50a5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WCharacter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - WCharacter.h - Character utility functions for Wiring & Arduino - Copyright (c) 2010 Hernando Barragan. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef Character_h -#define Character_h - -#include - -// WCharacter.h prototypes -inline boolean isAlphaNumeric(int c) __attribute__((always_inline)); -inline boolean isAlpha(int c) __attribute__((always_inline)); -inline boolean isAscii(int c) __attribute__((always_inline)); -inline boolean isWhitespace(int c) __attribute__((always_inline)); -inline boolean isControl(int c) __attribute__((always_inline)); -inline boolean isDigit(int c) __attribute__((always_inline)); -inline boolean isGraph(int c) __attribute__((always_inline)); -inline boolean isLowerCase(int c) __attribute__((always_inline)); -inline boolean isPrintable(int c) __attribute__((always_inline)); -inline boolean isPunct(int c) __attribute__((always_inline)); -inline boolean isSpace(int c) __attribute__((always_inline)); -inline boolean isUpperCase(int c) __attribute__((always_inline)); -inline boolean isHexadecimalDigit(int c) __attribute__((always_inline)); -inline int toAscii(int c) __attribute__((always_inline)); -inline int toLowerCase(int c) __attribute__((always_inline)); -inline int toUpperCase(int c)__attribute__((always_inline)); - - -// Checks for an alphanumeric character. -// It is equivalent to (isalpha(c) || isdigit(c)). -inline boolean isAlphaNumeric(int c) -{ - return ( isalnum(c) == 0 ? false : true); -} - - -// Checks for an alphabetic character. -// It is equivalent to (isupper(c) || islower(c)). -inline boolean isAlpha(int c) -{ - return ( isalpha(c) == 0 ? false : true); -} - - -// Checks whether c is a 7-bit unsigned char value -// that fits into the ASCII character set. -inline boolean isAscii(int c) -{ - return ( isascii (c) == 0 ? false : true); -} - - -// Checks for a blank character, that is, a space or a tab. -inline boolean isWhitespace(int c) -{ - return ( isblank (c) == 0 ? false : true); -} - - -// Checks for a control character. -inline boolean isControl(int c) -{ - return ( iscntrl (c) == 0 ? false : true); -} - - -// Checks for a digit (0 through 9). -inline boolean isDigit(int c) -{ - return ( isdigit (c) == 0 ? false : true); -} - - -// Checks for any printable character except space. -inline boolean isGraph(int c) -{ - return ( isgraph (c) == 0 ? false : true); -} - - -// Checks for a lower-case character. -inline boolean isLowerCase(int c) -{ - return (islower (c) == 0 ? false : true); -} - - -// Checks for any printable character including space. -inline boolean isPrintable(int c) -{ - return ( isprint (c) == 0 ? false : true); -} - - -// Checks for any printable character which is not a space -// or an alphanumeric character. -inline boolean isPunct(int c) -{ - return ( ispunct (c) == 0 ? false : true); -} - - -// Checks for white-space characters. For the avr-libc library, -// these are: space, formfeed ('\f'), newline ('\n'), carriage -// return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). -inline boolean isSpace(int c) -{ - return ( isspace (c) == 0 ? false : true); -} - - -// Checks for an uppercase letter. -inline boolean isUpperCase(int c) -{ - return ( isupper (c) == 0 ? false : true); -} - - -// Checks for a hexadecimal digits, i.e. one of 0 1 2 3 4 5 6 7 -// 8 9 a b c d e f A B C D E F. -inline boolean isHexadecimalDigit(int c) -{ - return ( isxdigit (c) == 0 ? false : true); -} - - -// Converts c to a 7-bit unsigned char value that fits into the -// ASCII character set, by clearing the high-order bits. -inline int toAscii(int c) -{ - return toascii (c); -} - - -// Warning: -// Many people will be unhappy if you use this function. -// This function will convert accented letters into random -// characters. - -// Converts the letter c to lower case, if possible. -inline int toLowerCase(int c) -{ - return tolower (c); -} - - -// Converts the letter c to upper case, if possible. -inline int toUpperCase(int c) -{ - return toupper (c); -} - -#endif \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WInterrupts.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WInterrupts.c deleted file mode 100644 index 8f3ec847f1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WInterrupts.c +++ /dev/null @@ -1,298 +0,0 @@ -/* -*- mode: jde; c-basic-offset: 2; indent-tabs-mode: nil -*- */ - -/* - Part of the Wiring project - http://wiring.uniandes.edu.co - - Copyright (c) 2004-05 Hernando Barragan - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 24 November 2006 by David A. Mellis - Modified 1 August 2010 by Mark Sproul -*/ - -#include -#include -#include -#include -#include - -#include "wiring_private.h" - -static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS]; -// volatile static voidFuncPtr twiIntFunc; - -void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { - if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { - intFunc[interruptNum] = userFunc; - - // Configure the interrupt mode (trigger on low input, any change, rising - // edge, or falling edge). The mode constants were chosen to correspond - // to the configuration bits in the hardware register, so we simply shift - // the mode into place. - - // Enable the interrupt. - - switch (interruptNum) { -#if defined(__AVR_ATmega32U4__) - // I hate doing this, but the register assignment differs between the 1280/2560 - // and the 32U4. Since avrlib defines registers PCMSK1 and PCMSK2 that aren't - // even present on the 32U4 this is the only way to distinguish between them. - case 0: - EICRA = (EICRA & ~((1<= howbig) { - return howsmall; - } - long diff = howbig - howsmall; - return random(diff) + howsmall; -} - -long map(long x, long in_min, long in_max, long out_min, long out_max) -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - -unsigned int makeWord(unsigned int w) { return w; } -unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; } \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.cpp deleted file mode 100644 index c6839fc0d9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - WString.cpp - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All rights reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#include "WString.h" - - -/*********************************************/ -/* Constructors */ -/*********************************************/ - -String::String(const char *cstr) -{ - init(); - if (cstr) copy(cstr, strlen(cstr)); -} - -String::String(const String &value) -{ - init(); - *this = value; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String::String(String &&rval) -{ - init(); - move(rval); -} -String::String(StringSumHelper &&rval) -{ - init(); - move(rval); -} -#endif - -String::String(char c) -{ - init(); - char buf[2]; - buf[0] = c; - buf[1] = 0; - *this = buf; -} - -String::String(unsigned char value, unsigned char base) -{ - init(); - char buf[9]; - utoa(value, buf, base); - *this = buf; -} - -String::String(int value, unsigned char base) -{ - init(); - char buf[18]; - itoa(value, buf, base); - *this = buf; -} - -String::String(unsigned int value, unsigned char base) -{ - init(); - char buf[17]; - utoa(value, buf, base); - *this = buf; -} - -String::String(long value, unsigned char base) -{ - init(); - char buf[34]; - ltoa(value, buf, base); - *this = buf; -} - -String::String(unsigned long value, unsigned char base) -{ - init(); - char buf[33]; - ultoa(value, buf, base); - *this = buf; -} - -String::~String() -{ - free(buffer); -} - -/*********************************************/ -/* Memory Management */ -/*********************************************/ - -inline void String::init(void) -{ - buffer = NULL; - capacity = 0; - len = 0; - flags = 0; -} - -void String::invalidate(void) -{ - if (buffer) free(buffer); - buffer = NULL; - capacity = len = 0; -} - -unsigned char String::reserve(unsigned int size) -{ - if (buffer && capacity >= size) return 1; - if (changeBuffer(size)) { - if (len == 0) buffer[0] = 0; - return 1; - } - return 0; -} - -unsigned char String::changeBuffer(unsigned int maxStrLen) -{ - char *newbuffer = (char *)realloc(buffer, maxStrLen + 1); - if (newbuffer) { - buffer = newbuffer; - capacity = maxStrLen; - return 1; - } - return 0; -} - -/*********************************************/ -/* Copy and Move */ -/*********************************************/ - -String & String::copy(const char *cstr, unsigned int length) -{ - if (!reserve(length)) { - invalidate(); - return *this; - } - len = length; - strcpy(buffer, cstr); - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -void String::move(String &rhs) -{ - if (buffer) { - if (capacity >= rhs.len) { - strcpy(buffer, rhs.buffer); - len = rhs.len; - rhs.len = 0; - return; - } else { - free(buffer); - } - } - buffer = rhs.buffer; - capacity = rhs.capacity; - len = rhs.len; - rhs.buffer = NULL; - rhs.capacity = 0; - rhs.len = 0; -} -#endif - -String & String::operator = (const String &rhs) -{ - if (this == &rhs) return *this; - - if (rhs.buffer) copy(rhs.buffer, rhs.len); - else invalidate(); - - return *this; -} - -#ifdef __GXX_EXPERIMENTAL_CXX0X__ -String & String::operator = (String &&rval) -{ - if (this != &rval) move(rval); - return *this; -} - -String & String::operator = (StringSumHelper &&rval) -{ - if (this != &rval) move(rval); - return *this; -} -#endif - -String & String::operator = (const char *cstr) -{ - if (cstr) copy(cstr, strlen(cstr)); - else invalidate(); - - return *this; -} - -/*********************************************/ -/* concat */ -/*********************************************/ - -unsigned char String::concat(const String &s) -{ - return concat(s.buffer, s.len); -} - -unsigned char String::concat(const char *cstr, unsigned int length) -{ - unsigned int newlen = len + length; - if (!cstr) return 0; - if (length == 0) return 1; - if (!reserve(newlen)) return 0; - strcpy(buffer + len, cstr); - len = newlen; - return 1; -} - -unsigned char String::concat(const char *cstr) -{ - if (!cstr) return 0; - return concat(cstr, strlen(cstr)); -} - -unsigned char String::concat(char c) -{ - char buf[2]; - buf[0] = c; - buf[1] = 0; - return concat(buf, 1); -} - -unsigned char String::concat(unsigned char num) -{ - char buf[4]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(int num) -{ - char buf[7]; - itoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned int num) -{ - char buf[6]; - utoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(long num) -{ - char buf[12]; - ltoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -unsigned char String::concat(unsigned long num) -{ - char buf[11]; - ultoa(num, buf, 10); - return concat(buf, strlen(buf)); -} - -/*********************************************/ -/* Concatenate */ -/*********************************************/ - -StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(rhs.buffer, rhs.len)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr) -{ - StringSumHelper &a = const_cast(lhs); - if (!cstr || !a.concat(cstr, strlen(cstr))) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, char c) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(c)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num) -{ - StringSumHelper &a = const_cast(lhs); - if (!a.concat(num)) a.invalidate(); - return a; -} - -/*********************************************/ -/* Comparison */ -/*********************************************/ - -int String::compareTo(const String &s) const -{ - if (!buffer || !s.buffer) { - if (s.buffer && s.len > 0) return 0 - *(unsigned char *)s.buffer; - if (buffer && len > 0) return *(unsigned char *)buffer; - return 0; - } - return strcmp(buffer, s.buffer); -} - -unsigned char String::equals(const String &s2) const -{ - return (len == s2.len && compareTo(s2) == 0); -} - -unsigned char String::equals(const char *cstr) const -{ - if (len == 0) return (cstr == NULL || *cstr == 0); - if (cstr == NULL) return buffer[0] == 0; - return strcmp(buffer, cstr) == 0; -} - -unsigned char String::operator<(const String &rhs) const -{ - return compareTo(rhs) < 0; -} - -unsigned char String::operator>(const String &rhs) const -{ - return compareTo(rhs) > 0; -} - -unsigned char String::operator<=(const String &rhs) const -{ - return compareTo(rhs) <= 0; -} - -unsigned char String::operator>=(const String &rhs) const -{ - return compareTo(rhs) >= 0; -} - -unsigned char String::equalsIgnoreCase( const String &s2 ) const -{ - if (this == &s2) return 1; - if (len != s2.len) return 0; - if (len == 0) return 1; - const char *p1 = buffer; - const char *p2 = s2.buffer; - while (*p1) { - if (tolower(*p1++) != tolower(*p2++)) return 0; - } - return 1; -} - -unsigned char String::startsWith( const String &s2 ) const -{ - if (len < s2.len) return 0; - return startsWith(s2, 0); -} - -unsigned char String::startsWith( const String &s2, unsigned int offset ) const -{ - if (offset > len - s2.len || !buffer || !s2.buffer) return 0; - return strncmp( &buffer[offset], s2.buffer, s2.len ) == 0; -} - -unsigned char String::endsWith( const String &s2 ) const -{ - if ( len < s2.len || !buffer || !s2.buffer) return 0; - return strcmp(&buffer[len - s2.len], s2.buffer) == 0; -} - -/*********************************************/ -/* Character Access */ -/*********************************************/ - -char String::charAt(unsigned int loc) const -{ - return operator[](loc); -} - -void String::setCharAt(unsigned int loc, char c) -{ - if (loc < len) buffer[loc] = c; -} - -char & String::operator[](unsigned int index) -{ - static char dummy_writable_char; - if (index >= len || !buffer) { - dummy_writable_char = 0; - return dummy_writable_char; - } - return buffer[index]; -} - -char String::operator[]( unsigned int index ) const -{ - if (index >= len || !buffer) return 0; - return buffer[index]; -} - -void String::getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index) const -{ - if (!bufsize || !buf) return; - if (index >= len) { - buf[0] = 0; - return; - } - unsigned int n = bufsize - 1; - if (n > len - index) n = len - index; - strncpy((char *)buf, buffer + index, n); - buf[n] = 0; -} - -/*********************************************/ -/* Search */ -/*********************************************/ - -int String::indexOf(char c) const -{ - return indexOf(c, 0); -} - -int String::indexOf( char ch, unsigned int fromIndex ) const -{ - if (fromIndex >= len) return -1; - const char* temp = strchr(buffer + fromIndex, ch); - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::indexOf(const String &s2) const -{ - return indexOf(s2, 0); -} - -int String::indexOf(const String &s2, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - const char *found = strstr(buffer + fromIndex, s2.buffer); - if (found == NULL) return -1; - return found - buffer; -} - -int String::lastIndexOf( char theChar ) const -{ - return lastIndexOf(theChar, len - 1); -} - -int String::lastIndexOf(char ch, unsigned int fromIndex) const -{ - if (fromIndex >= len) return -1; - char tempchar = buffer[fromIndex + 1]; - buffer[fromIndex + 1] = '\0'; - char* temp = strrchr( buffer, ch ); - buffer[fromIndex + 1] = tempchar; - if (temp == NULL) return -1; - return temp - buffer; -} - -int String::lastIndexOf(const String &s2) const -{ - return lastIndexOf(s2, len - s2.len); -} - -int String::lastIndexOf(const String &s2, unsigned int fromIndex) const -{ - if (s2.len == 0 || len == 0 || s2.len > len) return -1; - if (fromIndex >= len) fromIndex = len - 1; - int found = -1; - for (char *p = buffer; p <= buffer + fromIndex; p++) { - p = strstr(p, s2.buffer); - if (!p) break; - if ((unsigned int)(p - buffer) <= fromIndex) found = p - buffer; - } - return found; -} - -String String::substring( unsigned int left ) const -{ - return substring(left, len); -} - -String String::substring(unsigned int left, unsigned int right) const -{ - if (left > right) { - unsigned int temp = right; - right = left; - left = temp; - } - String out; - if (left > len) return out; - if (right > len) right = len; - char temp = buffer[right]; // save the replaced character - buffer[right] = '\0'; - out = buffer + left; // pointer arithmetic - buffer[right] = temp; //restore character - return out; -} - -/*********************************************/ -/* Modification */ -/*********************************************/ - -void String::replace(char find, char replace) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - if (*p == find) *p = replace; - } -} - -void String::replace(const String& find, const String& replace) -{ - if (len == 0 || find.len == 0) return; - int diff = replace.len - find.len; - char *readFrom = buffer; - char *foundAt; - if (diff == 0) { - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - memcpy(foundAt, replace.buffer, replace.len); - readFrom = foundAt + replace.len; - } - } else if (diff < 0) { - char *writeTo = buffer; - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - unsigned int n = foundAt - readFrom; - memcpy(writeTo, readFrom, n); - writeTo += n; - memcpy(writeTo, replace.buffer, replace.len); - writeTo += replace.len; - readFrom = foundAt + find.len; - len += diff; - } - strcpy(writeTo, readFrom); - } else { - unsigned int size = len; // compute size needed for result - while ((foundAt = strstr(readFrom, find.buffer)) != NULL) { - readFrom = foundAt + find.len; - size += diff; - } - if (size == len) return; - if (size > capacity && !changeBuffer(size)) return; // XXX: tell user! - int index = len - 1; - while (index >= 0 && (index = lastIndexOf(find, index)) >= 0) { - readFrom = buffer + index + find.len; - memmove(readFrom + diff, readFrom, len - (readFrom - buffer)); - len += diff; - buffer[len] = 0; - memcpy(buffer + index, replace.buffer, replace.len); - index--; - } - } -} - -void String::toLowerCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = tolower(*p); - } -} - -void String::toUpperCase(void) -{ - if (!buffer) return; - for (char *p = buffer; *p; p++) { - *p = toupper(*p); - } -} - -void String::trim(void) -{ - if (!buffer || len == 0) return; - char *begin = buffer; - while (isspace(*begin)) begin++; - char *end = buffer + len - 1; - while (isspace(*end) && end >= begin) end--; - len = end + 1 - begin; - if (begin > buffer) memcpy(buffer, begin, len); - buffer[len] = 0; -} - -/*********************************************/ -/* Parsing / Conversion */ -/*********************************************/ - -long String::toInt(void) const -{ - if (buffer) return atol(buffer); - return 0; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.h deleted file mode 100644 index d76d2a33d4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/WString.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - WString.h - String library for Wiring & Arduino - ...mostly rewritten by Paul Stoffregen... - Copyright (c) 2009-10 Hernando Barragan. All right reserved. - Copyright 2011, Paul Stoffregen, paul@pjrc.com - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef String_class_h -#define String_class_h -#ifdef __cplusplus - -#include -#include -#include -#include - -// When compiling programs with this class, the following gcc parameters -// dramatically increase performance and memory (RAM) efficiency, typically -// with little or no increase in code size. -// -felide-constructors -// -std=c++0x - -class __FlashStringHelper; -#define F(string_literal) (reinterpret_cast<__FlashStringHelper *>(PSTR(string_literal))) - -// An inherited class for holding the result of a concatenation. These -// result objects are assumed to be writable by subsequent concatenations. -class StringSumHelper; - -// The string class -class String -{ - // use a function pointer to allow for "if (s)" without the - // complications of an operator bool(). for more information, see: - // http://www.artima.com/cppsource/safebool.html - typedef void (String::*StringIfHelperType)() const; - void StringIfHelper() const {} - -public: - // constructors - // creates a copy of the initial value. - // if the initial value is null or invalid, or if memory allocation - // fails, the string will be marked as invalid (i.e. "if (s)" will - // be false). - String(const char *cstr = ""); - String(const String &str); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String(String &&rval); - String(StringSumHelper &&rval); - #endif - explicit String(char c); - explicit String(unsigned char, unsigned char base=10); - explicit String(int, unsigned char base=10); - explicit String(unsigned int, unsigned char base=10); - explicit String(long, unsigned char base=10); - explicit String(unsigned long, unsigned char base=10); - ~String(void); - - // memory management - // return true on success, false on failure (in which case, the string - // is left unchanged). reserve(0), if successful, will validate an - // invalid string (i.e., "if (s)" will be true afterwards) - unsigned char reserve(unsigned int size); - inline unsigned int length(void) const {return len;} - - // creates a copy of the assigned value. if the value is null or - // invalid, or if the memory allocation fails, the string will be - // marked as invalid ("if (s)" will be false). - String & operator = (const String &rhs); - String & operator = (const char *cstr); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - String & operator = (String &&rval); - String & operator = (StringSumHelper &&rval); - #endif - - // concatenate (works w/ built-in types) - - // returns true on success, false on failure (in which case, the string - // is left unchanged). if the argument is null or invalid, the - // concatenation is considered unsucessful. - unsigned char concat(const String &str); - unsigned char concat(const char *cstr); - unsigned char concat(char c); - unsigned char concat(unsigned char c); - unsigned char concat(int num); - unsigned char concat(unsigned int num); - unsigned char concat(long num); - unsigned char concat(unsigned long num); - - // if there's not enough memory for the concatenated value, the string - // will be left unchanged (but this isn't signalled in any way) - String & operator += (const String &rhs) {concat(rhs); return (*this);} - String & operator += (const char *cstr) {concat(cstr); return (*this);} - String & operator += (char c) {concat(c); return (*this);} - String & operator += (unsigned char num) {concat(num); return (*this);} - String & operator += (int num) {concat(num); return (*this);} - String & operator += (unsigned int num) {concat(num); return (*this);} - String & operator += (long num) {concat(num); return (*this);} - String & operator += (unsigned long num) {concat(num); return (*this);} - - friend StringSumHelper & operator + (const StringSumHelper &lhs, const String &rhs); - friend StringSumHelper & operator + (const StringSumHelper &lhs, const char *cstr); - friend StringSumHelper & operator + (const StringSumHelper &lhs, char c); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned char num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned int num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, long num); - friend StringSumHelper & operator + (const StringSumHelper &lhs, unsigned long num); - - // comparison (only works w/ Strings and "strings") - operator StringIfHelperType() const { return buffer ? &String::StringIfHelper : 0; } - int compareTo(const String &s) const; - unsigned char equals(const String &s) const; - unsigned char equals(const char *cstr) const; - unsigned char operator == (const String &rhs) const {return equals(rhs);} - unsigned char operator == (const char *cstr) const {return equals(cstr);} - unsigned char operator != (const String &rhs) const {return !equals(rhs);} - unsigned char operator != (const char *cstr) const {return !equals(cstr);} - unsigned char operator < (const String &rhs) const; - unsigned char operator > (const String &rhs) const; - unsigned char operator <= (const String &rhs) const; - unsigned char operator >= (const String &rhs) const; - unsigned char equalsIgnoreCase(const String &s) const; - unsigned char startsWith( const String &prefix) const; - unsigned char startsWith(const String &prefix, unsigned int offset) const; - unsigned char endsWith(const String &suffix) const; - - // character acccess - char charAt(unsigned int index) const; - void setCharAt(unsigned int index, char c); - char operator [] (unsigned int index) const; - char& operator [] (unsigned int index); - void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const; - void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const - {getBytes((unsigned char *)buf, bufsize, index);} - - // search - int indexOf( char ch ) const; - int indexOf( char ch, unsigned int fromIndex ) const; - int indexOf( const String &str ) const; - int indexOf( const String &str, unsigned int fromIndex ) const; - int lastIndexOf( char ch ) const; - int lastIndexOf( char ch, unsigned int fromIndex ) const; - int lastIndexOf( const String &str ) const; - int lastIndexOf( const String &str, unsigned int fromIndex ) const; - String substring( unsigned int beginIndex ) const; - String substring( unsigned int beginIndex, unsigned int endIndex ) const; - - // modification - void replace(char find, char replace); - void replace(const String& find, const String& replace); - void toLowerCase(void); - void toUpperCase(void); - void trim(void); - - // parsing/conversion - long toInt(void) const; - -protected: - char *buffer; // the actual char array - unsigned int capacity; // the array length minus one (for the '\0') - unsigned int len; // the String length (not counting the '\0') - unsigned char flags; // unused, for future features -protected: - void init(void); - void invalidate(void); - unsigned char changeBuffer(unsigned int maxStrLen); - unsigned char concat(const char *cstr, unsigned int length); - - // copy and move - String & copy(const char *cstr, unsigned int length); - #ifdef __GXX_EXPERIMENTAL_CXX0X__ - void move(String &rhs); - #endif -}; - -class StringSumHelper : public String -{ -public: - StringSumHelper(const String &s) : String(s) {} - StringSumHelper(const char *p) : String(p) {} - StringSumHelper(char c) : String(c) {} - StringSumHelper(unsigned char num) : String(num) {} - StringSumHelper(int num) : String(num) {} - StringSumHelper(unsigned int num) : String(num) {} - StringSumHelper(long num) : String(num) {} - StringSumHelper(unsigned long num) : String(num) {} -}; - -#endif // __cplusplus -#endif // String_class_h diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/binary.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/binary.h deleted file mode 100644 index af1498033a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/binary.h +++ /dev/null @@ -1,515 +0,0 @@ -#ifndef Binary_h -#define Binary_h - -#define B0 0 -#define B00 0 -#define B000 0 -#define B0000 0 -#define B00000 0 -#define B000000 0 -#define B0000000 0 -#define B00000000 0 -#define B1 1 -#define B01 1 -#define B001 1 -#define B0001 1 -#define B00001 1 -#define B000001 1 -#define B0000001 1 -#define B00000001 1 -#define B10 2 -#define B010 2 -#define B0010 2 -#define B00010 2 -#define B000010 2 -#define B0000010 2 -#define B00000010 2 -#define B11 3 -#define B011 3 -#define B0011 3 -#define B00011 3 -#define B000011 3 -#define B0000011 3 -#define B00000011 3 -#define B100 4 -#define B0100 4 -#define B00100 4 -#define B000100 4 -#define B0000100 4 -#define B00000100 4 -#define B101 5 -#define B0101 5 -#define B00101 5 -#define B000101 5 -#define B0000101 5 -#define B00000101 5 -#define B110 6 -#define B0110 6 -#define B00110 6 -#define B000110 6 -#define B0000110 6 -#define B00000110 6 -#define B111 7 -#define B0111 7 -#define B00111 7 -#define B000111 7 -#define B0000111 7 -#define B00000111 7 -#define B1000 8 -#define B01000 8 -#define B001000 8 -#define B0001000 8 -#define B00001000 8 -#define B1001 9 -#define B01001 9 -#define B001001 9 -#define B0001001 9 -#define B00001001 9 -#define B1010 10 -#define B01010 10 -#define B001010 10 -#define B0001010 10 -#define B00001010 10 -#define B1011 11 -#define B01011 11 -#define B001011 11 -#define B0001011 11 -#define B00001011 11 -#define B1100 12 -#define B01100 12 -#define B001100 12 -#define B0001100 12 -#define B00001100 12 -#define B1101 13 -#define B01101 13 -#define B001101 13 -#define B0001101 13 -#define B00001101 13 -#define B1110 14 -#define B01110 14 -#define B001110 14 -#define B0001110 14 -#define B00001110 14 -#define B1111 15 -#define B01111 15 -#define B001111 15 -#define B0001111 15 -#define B00001111 15 -#define B10000 16 -#define B010000 16 -#define B0010000 16 -#define B00010000 16 -#define B10001 17 -#define B010001 17 -#define B0010001 17 -#define B00010001 17 -#define B10010 18 -#define B010010 18 -#define B0010010 18 -#define B00010010 18 -#define B10011 19 -#define B010011 19 -#define B0010011 19 -#define B00010011 19 -#define B10100 20 -#define B010100 20 -#define B0010100 20 -#define B00010100 20 -#define B10101 21 -#define B010101 21 -#define B0010101 21 -#define B00010101 21 -#define B10110 22 -#define B010110 22 -#define B0010110 22 -#define B00010110 22 -#define B10111 23 -#define B010111 23 -#define B0010111 23 -#define B00010111 23 -#define B11000 24 -#define B011000 24 -#define B0011000 24 -#define B00011000 24 -#define B11001 25 -#define B011001 25 -#define B0011001 25 -#define B00011001 25 -#define B11010 26 -#define B011010 26 -#define B0011010 26 -#define B00011010 26 -#define B11011 27 -#define B011011 27 -#define B0011011 27 -#define B00011011 27 -#define B11100 28 -#define B011100 28 -#define B0011100 28 -#define B00011100 28 -#define B11101 29 -#define B011101 29 -#define B0011101 29 -#define B00011101 29 -#define B11110 30 -#define B011110 30 -#define B0011110 30 -#define B00011110 30 -#define B11111 31 -#define B011111 31 -#define B0011111 31 -#define B00011111 31 -#define B100000 32 -#define B0100000 32 -#define B00100000 32 -#define B100001 33 -#define B0100001 33 -#define B00100001 33 -#define B100010 34 -#define B0100010 34 -#define B00100010 34 -#define B100011 35 -#define B0100011 35 -#define B00100011 35 -#define B100100 36 -#define B0100100 36 -#define B00100100 36 -#define B100101 37 -#define B0100101 37 -#define B00100101 37 -#define B100110 38 -#define B0100110 38 -#define B00100110 38 -#define B100111 39 -#define B0100111 39 -#define B00100111 39 -#define B101000 40 -#define B0101000 40 -#define B00101000 40 -#define B101001 41 -#define B0101001 41 -#define B00101001 41 -#define B101010 42 -#define B0101010 42 -#define B00101010 42 -#define B101011 43 -#define B0101011 43 -#define B00101011 43 -#define B101100 44 -#define B0101100 44 -#define B00101100 44 -#define B101101 45 -#define B0101101 45 -#define B00101101 45 -#define B101110 46 -#define B0101110 46 -#define B00101110 46 -#define B101111 47 -#define B0101111 47 -#define B00101111 47 -#define B110000 48 -#define B0110000 48 -#define B00110000 48 -#define B110001 49 -#define B0110001 49 -#define B00110001 49 -#define B110010 50 -#define B0110010 50 -#define B00110010 50 -#define B110011 51 -#define B0110011 51 -#define B00110011 51 -#define B110100 52 -#define B0110100 52 -#define B00110100 52 -#define B110101 53 -#define B0110101 53 -#define B00110101 53 -#define B110110 54 -#define B0110110 54 -#define B00110110 54 -#define B110111 55 -#define B0110111 55 -#define B00110111 55 -#define B111000 56 -#define B0111000 56 -#define B00111000 56 -#define B111001 57 -#define B0111001 57 -#define B00111001 57 -#define B111010 58 -#define B0111010 58 -#define B00111010 58 -#define B111011 59 -#define B0111011 59 -#define B00111011 59 -#define B111100 60 -#define B0111100 60 -#define B00111100 60 -#define B111101 61 -#define B0111101 61 -#define B00111101 61 -#define B111110 62 -#define B0111110 62 -#define B00111110 62 -#define B111111 63 -#define B0111111 63 -#define B00111111 63 -#define B1000000 64 -#define B01000000 64 -#define B1000001 65 -#define B01000001 65 -#define B1000010 66 -#define B01000010 66 -#define B1000011 67 -#define B01000011 67 -#define B1000100 68 -#define B01000100 68 -#define B1000101 69 -#define B01000101 69 -#define B1000110 70 -#define B01000110 70 -#define B1000111 71 -#define B01000111 71 -#define B1001000 72 -#define B01001000 72 -#define B1001001 73 -#define B01001001 73 -#define B1001010 74 -#define B01001010 74 -#define B1001011 75 -#define B01001011 75 -#define B1001100 76 -#define B01001100 76 -#define B1001101 77 -#define B01001101 77 -#define B1001110 78 -#define B01001110 78 -#define B1001111 79 -#define B01001111 79 -#define B1010000 80 -#define B01010000 80 -#define B1010001 81 -#define B01010001 81 -#define B1010010 82 -#define B01010010 82 -#define B1010011 83 -#define B01010011 83 -#define B1010100 84 -#define B01010100 84 -#define B1010101 85 -#define B01010101 85 -#define B1010110 86 -#define B01010110 86 -#define B1010111 87 -#define B01010111 87 -#define B1011000 88 -#define B01011000 88 -#define B1011001 89 -#define B01011001 89 -#define B1011010 90 -#define B01011010 90 -#define B1011011 91 -#define B01011011 91 -#define B1011100 92 -#define B01011100 92 -#define B1011101 93 -#define B01011101 93 -#define B1011110 94 -#define B01011110 94 -#define B1011111 95 -#define B01011111 95 -#define B1100000 96 -#define B01100000 96 -#define B1100001 97 -#define B01100001 97 -#define B1100010 98 -#define B01100010 98 -#define B1100011 99 -#define B01100011 99 -#define B1100100 100 -#define B01100100 100 -#define B1100101 101 -#define B01100101 101 -#define B1100110 102 -#define B01100110 102 -#define B1100111 103 -#define B01100111 103 -#define B1101000 104 -#define B01101000 104 -#define B1101001 105 -#define B01101001 105 -#define B1101010 106 -#define B01101010 106 -#define B1101011 107 -#define B01101011 107 -#define B1101100 108 -#define B01101100 108 -#define B1101101 109 -#define B01101101 109 -#define B1101110 110 -#define B01101110 110 -#define B1101111 111 -#define B01101111 111 -#define B1110000 112 -#define B01110000 112 -#define B1110001 113 -#define B01110001 113 -#define B1110010 114 -#define B01110010 114 -#define B1110011 115 -#define B01110011 115 -#define B1110100 116 -#define B01110100 116 -#define B1110101 117 -#define B01110101 117 -#define B1110110 118 -#define B01110110 118 -#define B1110111 119 -#define B01110111 119 -#define B1111000 120 -#define B01111000 120 -#define B1111001 121 -#define B01111001 121 -#define B1111010 122 -#define B01111010 122 -#define B1111011 123 -#define B01111011 123 -#define B1111100 124 -#define B01111100 124 -#define B1111101 125 -#define B01111101 125 -#define B1111110 126 -#define B01111110 126 -#define B1111111 127 -#define B01111111 127 -#define B10000000 128 -#define B10000001 129 -#define B10000010 130 -#define B10000011 131 -#define B10000100 132 -#define B10000101 133 -#define B10000110 134 -#define B10000111 135 -#define B10001000 136 -#define B10001001 137 -#define B10001010 138 -#define B10001011 139 -#define B10001100 140 -#define B10001101 141 -#define B10001110 142 -#define B10001111 143 -#define B10010000 144 -#define B10010001 145 -#define B10010010 146 -#define B10010011 147 -#define B10010100 148 -#define B10010101 149 -#define B10010110 150 -#define B10010111 151 -#define B10011000 152 -#define B10011001 153 -#define B10011010 154 -#define B10011011 155 -#define B10011100 156 -#define B10011101 157 -#define B10011110 158 -#define B10011111 159 -#define B10100000 160 -#define B10100001 161 -#define B10100010 162 -#define B10100011 163 -#define B10100100 164 -#define B10100101 165 -#define B10100110 166 -#define B10100111 167 -#define B10101000 168 -#define B10101001 169 -#define B10101010 170 -#define B10101011 171 -#define B10101100 172 -#define B10101101 173 -#define B10101110 174 -#define B10101111 175 -#define B10110000 176 -#define B10110001 177 -#define B10110010 178 -#define B10110011 179 -#define B10110100 180 -#define B10110101 181 -#define B10110110 182 -#define B10110111 183 -#define B10111000 184 -#define B10111001 185 -#define B10111010 186 -#define B10111011 187 -#define B10111100 188 -#define B10111101 189 -#define B10111110 190 -#define B10111111 191 -#define B11000000 192 -#define B11000001 193 -#define B11000010 194 -#define B11000011 195 -#define B11000100 196 -#define B11000101 197 -#define B11000110 198 -#define B11000111 199 -#define B11001000 200 -#define B11001001 201 -#define B11001010 202 -#define B11001011 203 -#define B11001100 204 -#define B11001101 205 -#define B11001110 206 -#define B11001111 207 -#define B11010000 208 -#define B11010001 209 -#define B11010010 210 -#define B11010011 211 -#define B11010100 212 -#define B11010101 213 -#define B11010110 214 -#define B11010111 215 -#define B11011000 216 -#define B11011001 217 -#define B11011010 218 -#define B11011011 219 -#define B11011100 220 -#define B11011101 221 -#define B11011110 222 -#define B11011111 223 -#define B11100000 224 -#define B11100001 225 -#define B11100010 226 -#define B11100011 227 -#define B11100100 228 -#define B11100101 229 -#define B11100110 230 -#define B11100111 231 -#define B11101000 232 -#define B11101001 233 -#define B11101010 234 -#define B11101011 235 -#define B11101100 236 -#define B11101101 237 -#define B11101110 238 -#define B11101111 239 -#define B11110000 240 -#define B11110001 241 -#define B11110010 242 -#define B11110011 243 -#define B11110100 244 -#define B11110101 245 -#define B11110110 246 -#define B11110111 247 -#define B11111000 248 -#define B11111001 249 -#define B11111010 250 -#define B11111011 251 -#define B11111100 252 -#define B11111101 253 -#define B11111110 254 -#define B11111111 255 - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/main.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/main.cpp deleted file mode 100644 index 3d4e079d2a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/main.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include - -int main(void) -{ - init(); - -#if defined(USBCON) - USBDevice.attach(); -#endif - - setup(); - - for (;;) { - loop(); - if (serialEventRun) serialEventRun(); - } - - return 0; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.cpp deleted file mode 100644 index 0f6d4220ef..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void * operator new(size_t size) -{ - return malloc(size); -} - -void operator delete(void * ptr) -{ - free(ptr); -} - -int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);}; -void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; -void __cxa_guard_abort (__guard *) {}; - -void __cxa_pure_virtual(void) {}; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.h deleted file mode 100644 index cd940ce8b2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/new.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Header to define new/delete operators as they aren't provided by avr-gcc by default - Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453 - */ - -#ifndef NEW_H -#define NEW_H - -#include - -void * operator new(size_t size); -void operator delete(void * ptr); - -__extension__ typedef int __guard __attribute__((mode (__DI__))); - -extern "C" int __cxa_guard_acquire(__guard *); -extern "C" void __cxa_guard_release (__guard *); -extern "C" void __cxa_guard_abort (__guard *); - -extern "C" void __cxa_pure_virtual(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring.c deleted file mode 100644 index ac8bb6f9b4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - wiring.c - Partial implementation of the Wiring API for the ATmega8. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id$ -*/ - -#include "wiring_private.h" - -// the prescaler is set so that timer0 ticks every 64 clock cycles, and the -// the overflow handler is called every 256 ticks. -#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256)) - -// the whole number of milliseconds per timer0 overflow -#define MILLIS_INC (MICROSECONDS_PER_TIMER0_OVERFLOW / 1000) - -// the fractional number of milliseconds per timer0 overflow. we shift right -// by three to fit these numbers into a byte. (for the clock speeds we care -// about - 8 and 16 MHz - this doesn't lose precision.) -#define FRACT_INC ((MICROSECONDS_PER_TIMER0_OVERFLOW % 1000) >> 3) -#define FRACT_MAX (1000 >> 3) - -volatile unsigned long timer0_overflow_count = 0; -volatile unsigned long timer0_millis = 0; -static unsigned char timer0_fract = 0; - -#if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) -SIGNAL(TIM0_OVF_vect) -#else -SIGNAL(TIMER0_OVF_vect) -#endif -{ - // copy these to local variables so they can be stored in registers - // (volatile variables must be read from memory on every access) - unsigned long m = timer0_millis; - unsigned char f = timer0_fract; - - m += MILLIS_INC; - f += FRACT_INC; - if (f >= FRACT_MAX) { - f -= FRACT_MAX; - m += 1; - } - - timer0_fract = f; - timer0_millis = m; - timer0_overflow_count++; -} - -unsigned long millis() -{ - unsigned long m; - uint8_t oldSREG = SREG; - - // disable interrupts while we read timer0_millis or we might get an - // inconsistent value (e.g. in the middle of a write to timer0_millis) - cli(); - m = timer0_millis; - SREG = oldSREG; - - return m; -} - -unsigned long micros() { - unsigned long m; - uint8_t oldSREG = SREG, t; - - cli(); - m = timer0_overflow_count; -#if defined(TCNT0) - t = TCNT0; -#elif defined(TCNT0L) - t = TCNT0L; -#else - #error TIMER 0 not defined -#endif - - -#ifdef TIFR0 - if ((TIFR0 & _BV(TOV0)) && (t < 255)) - m++; -#else - if ((TIFR & _BV(TOV0)) && (t < 255)) - m++; -#endif - - SREG = oldSREG; - - return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond()); -} - -void delay(unsigned long ms) -{ - uint16_t start = (uint16_t)micros(); - - while (ms > 0) { - if (((uint16_t)micros() - start) >= 1000) { - ms--; - start += 1000; - } - } -} - -/* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ -void delayMicroseconds(unsigned int us) -{ - // calling avrlib's delay_us() function with low values (e.g. 1 or - // 2 microseconds) gives delays longer than desired. - //delay_us(us); -#if F_CPU >= 20000000L - // for the 20 MHz clock on rare Arduino boards - - // for a one-microsecond delay, simply wait 2 cycle and return. The overhead - // of the function call yields a delay of exactly a one microsecond. - __asm__ __volatile__ ( - "nop" "\n\t" - "nop"); //just waiting 2 cycle - if (--us == 0) - return; - - // the following loop takes a 1/5 of a microsecond (4 cycles) - // per iteration, so execute it five times for each microsecond of - // delay requested. - us = (us<<2) + us; // x5 us - - // account for the time taken in the preceeding commands. - us -= 2; - -#elif F_CPU >= 16000000L - // for the 16 MHz clock on most Arduino boards - - // for a one-microsecond delay, simply return. the overhead - // of the function call yields a delay of approximately 1 1/8 us. - if (--us == 0) - return; - - // the following loop takes a quarter of a microsecond (4 cycles) - // per iteration, so execute it four times for each microsecond of - // delay requested. - us <<= 2; - - // account for the time taken in the preceeding commands. - us -= 2; -#else - // for the 8 MHz internal clock on the ATmega168 - - // for a one- or two-microsecond delay, simply return. the overhead of - // the function calls takes more than two microseconds. can't just - // subtract two, since us is unsigned; we'd overflow. - if (--us == 0) - return; - if (--us == 0) - return; - - // the following loop takes half of a microsecond (4 cycles) - // per iteration, so execute it twice for each microsecond of - // delay requested. - us <<= 1; - - // partially compensate for the time taken by the preceeding commands. - // we can't subtract any more than this or we'd overflow w/ small delays. - us--; -#endif - - // busy wait - __asm__ __volatile__ ( - "1: sbiw %0,1" "\n\t" // 2 cycles - "brne 1b" : "=w" (us) : "0" (us) // 2 cycles - ); -} - -void init() -{ - // this needs to be called before setup() or some functions won't - // work there - sei(); - - // on the ATmega168, timer 0 is also used for fast hardware pwm - // (using phase-correct PWM would mean that timer 0 overflowed half as often - // resulting in different millis() behavior on the ATmega8 and ATmega168) -#if defined(TCCR0A) && defined(WGM01) - sbi(TCCR0A, WGM01); - sbi(TCCR0A, WGM00); -#endif - - // set timer 0 prescale factor to 64 -#if defined(__AVR_ATmega128__) - // CPU specific: different values for the ATmega128 - sbi(TCCR0, CS02); -#elif defined(TCCR0) && defined(CS01) && defined(CS00) - // this combination is for the standard atmega8 - sbi(TCCR0, CS01); - sbi(TCCR0, CS00); -#elif defined(TCCR0B) && defined(CS01) && defined(CS00) - // this combination is for the standard 168/328/1280/2560 - sbi(TCCR0B, CS01); - sbi(TCCR0B, CS00); -#elif defined(TCCR0A) && defined(CS01) && defined(CS00) - // this combination is for the __AVR_ATmega645__ series - sbi(TCCR0A, CS01); - sbi(TCCR0A, CS00); -#else - #error Timer 0 prescale factor 64 not set correctly -#endif - - // enable timer 0 overflow interrupt -#if defined(TIMSK) && defined(TOIE0) - sbi(TIMSK, TOIE0); -#elif defined(TIMSK0) && defined(TOIE0) - sbi(TIMSK0, TOIE0); -#else - #error Timer 0 overflow interrupt not set correctly -#endif - - // timers 1 and 2 are used for phase-correct hardware pwm - // this is better for motors as it ensures an even waveform - // note, however, that fast pwm mode can achieve a frequency of up - // 8 MHz (with a 16 MHz clock) at 50% duty cycle - -#if defined(TCCR1B) && defined(CS11) && defined(CS10) - TCCR1B = 0; - - // set timer 1 prescale factor to 64 - sbi(TCCR1B, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1B, CS10); -#endif -#elif defined(TCCR1) && defined(CS11) && defined(CS10) - sbi(TCCR1, CS11); -#if F_CPU >= 8000000L - sbi(TCCR1, CS10); -#endif -#endif - // put timer 1 in 8-bit phase correct pwm mode -#if defined(TCCR1A) && defined(WGM10) - sbi(TCCR1A, WGM10); -#elif defined(TCCR1) - #warning this needs to be finished -#endif - - // set timer 2 prescale factor to 64 -#if defined(TCCR2) && defined(CS22) - sbi(TCCR2, CS22); -#elif defined(TCCR2B) && defined(CS22) - sbi(TCCR2B, CS22); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - - // configure timer 2 for phase correct pwm (8-bit) -#if defined(TCCR2) && defined(WGM20) - sbi(TCCR2, WGM20); -#elif defined(TCCR2A) && defined(WGM20) - sbi(TCCR2A, WGM20); -#else - #warning Timer 2 not finished (may not be present on this CPU) -#endif - -#if defined(TCCR3B) && defined(CS31) && defined(WGM30) - sbi(TCCR3B, CS31); // set timer 3 prescale factor to 64 - sbi(TCCR3B, CS30); - sbi(TCCR3A, WGM30); // put timer 3 in 8-bit phase correct pwm mode -#endif - -#if defined(TCCR4A) && defined(TCCR4B) && defined(TCCR4D) /* beginning of timer4 block for 32U4 and similar */ - sbi(TCCR4B, CS42); // set timer4 prescale factor to 64 - sbi(TCCR4B, CS41); - sbi(TCCR4B, CS40); - sbi(TCCR4D, WGM40); // put timer 4 in phase- and frequency-correct PWM mode - sbi(TCCR4A, PWM4A); // enable PWM mode for comparator OCR4A - sbi(TCCR4C, PWM4D); // enable PWM mode for comparator OCR4D -#else /* beginning of timer4 block for ATMEGA1280 and ATMEGA2560 */ -#if defined(TCCR4B) && defined(CS41) && defined(WGM40) - sbi(TCCR4B, CS41); // set timer 4 prescale factor to 64 - sbi(TCCR4B, CS40); - sbi(TCCR4A, WGM40); // put timer 4 in 8-bit phase correct pwm mode -#endif -#endif /* end timer4 block for ATMEGA1280/2560 and similar */ - -#if defined(TCCR5B) && defined(CS51) && defined(WGM50) - sbi(TCCR5B, CS51); // set timer 5 prescale factor to 64 - sbi(TCCR5B, CS50); - sbi(TCCR5A, WGM50); // put timer 5 in 8-bit phase correct pwm mode -#endif - -#if defined(ADCSRA) - // set a2d prescale factor to 128 - // 16 MHz / 128 = 125 KHz, inside the desired 50-200 KHz range. - // XXX: this will not work properly for other clock speeds, and - // this code should use F_CPU to determine the prescale factor. - sbi(ADCSRA, ADPS2); - sbi(ADCSRA, ADPS1); - sbi(ADCSRA, ADPS0); - - // enable a2d conversions - sbi(ADCSRA, ADEN); -#endif - - // the bootloader connects pins 0 and 1 to the USART; disconnect them - // here so they can be used as normal digital i/o; they will be - // reconnected in Serial.begin() -#if defined(UCSRB) - UCSRB = 0; -#elif defined(UCSR0B) - UCSR0B = 0; -#endif -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_analog.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_analog.c deleted file mode 100644 index 0e9881f6ac..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_analog.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - wiring_analog.c - analog input and output - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -uint8_t analog_reference = DEFAULT; - -void analogReference(uint8_t mode) -{ - // can't actually set the register here because the default setting - // will connect AVCC and the AREF pin, which would cause a short if - // there's something connected to AREF. - analog_reference = mode; -} - -int analogRead(uint8_t pin) -{ - uint8_t low, high; - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) - if (pin >= 54) pin -= 54; // allow for channel or pin numbers -#elif defined(__AVR_ATmega32U4__) - if (pin >= 18) pin -= 18; // allow for channel or pin numbers -#elif defined(__AVR_ATmega1284__) - if (pin >= 24) pin -= 24; // allow for channel or pin numbers -#else - if (pin >= 14) pin -= 14; // allow for channel or pin numbers -#endif - -#if defined(__AVR_ATmega32U4__) - pin = analogPinToChannel(pin); - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#elif defined(ADCSRB) && defined(MUX5) - // the MUX5 bit of ADCSRB selects whether we're reading from channels - // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -#endif - - // set the analog reference (high two bits of ADMUX) and select the - // channel (low 4 bits). this also sets ADLAR (left-adjust result) - // to 0 (the default). -#if defined(ADMUX) - ADMUX = (analog_reference << 6) | (pin & 0x07); -#endif - - // without a delay, we seem to read from the wrong channel - //delay(1); - -#if defined(ADCSRA) && defined(ADCL) - // start the conversion - sbi(ADCSRA, ADSC); - - // ADSC is cleared when the conversion finishes - while (bit_is_set(ADCSRA, ADSC)); - - // we have to read ADCL first; doing so locks both ADCL - // and ADCH until ADCH is read. reading ADCL second would - // cause the results of each conversion to be discarded, - // as ADCL and ADCH would be locked when it completed. - low = ADCL; - high = ADCH; -#else - // we dont have an ADC, return 0 - low = 0; - high = 0; -#endif - - // combine the two bytes - return (high << 8) | low; -} - -// Right now, PWM output only works on the pins with -// hardware support. These are defined in the appropriate -// pins_*.c file. For the rest of the pins, we default -// to digital output. -void analogWrite(uint8_t pin, int val) -{ - // We need to make sure the PWM output is enabled for those pins - // that support it, as we turn it off when digitally reading or - // writing with them. Also, make sure the pin is in output mode - // for consistenty with Wiring, which doesn't require a pinMode - // call for the analog output pins. - pinMode(pin, OUTPUT); - if (val == 0) - { - digitalWrite(pin, LOW); - } - else if (val == 255) - { - digitalWrite(pin, HIGH); - } - else - { - switch(digitalPinToTimer(pin)) - { - // XXX fix needed for atmega8 - #if defined(TCCR0) && defined(COM00) && !defined(__AVR_ATmega8__) - case TIMER0A: - // connect pwm to pin on timer 0 - sbi(TCCR0, COM00); - OCR0 = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: - // connect pwm to pin on timer 0, channel A - sbi(TCCR0A, COM0A1); - OCR0A = val; // set pwm duty - break; - #endif - - #if defined(TCCR0A) && defined(COM0B1) - case TIMER0B: - // connect pwm to pin on timer 0, channel B - sbi(TCCR0A, COM0B1); - OCR0B = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: - // connect pwm to pin on timer 1, channel A - sbi(TCCR1A, COM1A1); - OCR1A = val; // set pwm duty - break; - #endif - - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: - // connect pwm to pin on timer 1, channel B - sbi(TCCR1A, COM1B1); - OCR1B = val; // set pwm duty - break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: - // connect pwm to pin on timer 2 - sbi(TCCR2, COM21); - OCR2 = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: - // connect pwm to pin on timer 2, channel A - sbi(TCCR2A, COM2A1); - OCR2A = val; // set pwm duty - break; - #endif - - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: - // connect pwm to pin on timer 2, channel B - sbi(TCCR2A, COM2B1); - OCR2B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: - // connect pwm to pin on timer 3, channel A - sbi(TCCR3A, COM3A1); - OCR3A = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: - // connect pwm to pin on timer 3, channel B - sbi(TCCR3A, COM3B1); - OCR3B = val; // set pwm duty - break; - #endif - - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: - // connect pwm to pin on timer 3, channel C - sbi(TCCR3A, COM3C1); - OCR3C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) - case TIMER4A: - //connect pwm to pin on timer 4, channel A - sbi(TCCR4A, COM4A1); - #if defined(COM4A0) // only used on 32U4 - cbi(TCCR4A, COM4A0); - #endif - OCR4A = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: - // connect pwm to pin on timer 4, channel B - sbi(TCCR4A, COM4B1); - OCR4B = val; // set pwm duty - break; - #endif - - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: - // connect pwm to pin on timer 4, channel C - sbi(TCCR4A, COM4C1); - OCR4C = val; // set pwm duty - break; - #endif - - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: - // connect pwm to pin on timer 4, channel D - sbi(TCCR4C, COM4D1); - #if defined(COM4D0) // only used on 32U4 - cbi(TCCR4C, COM4D0); - #endif - OCR4D = val; // set pwm duty - break; - #endif - - - #if defined(TCCR5A) && defined(COM5A1) - case TIMER5A: - // connect pwm to pin on timer 5, channel A - sbi(TCCR5A, COM5A1); - OCR5A = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5B1) - case TIMER5B: - // connect pwm to pin on timer 5, channel B - sbi(TCCR5A, COM5B1); - OCR5B = val; // set pwm duty - break; - #endif - - #if defined(TCCR5A) && defined(COM5C1) - case TIMER5C: - // connect pwm to pin on timer 5, channel C - sbi(TCCR5A, COM5C1); - OCR5C = val; // set pwm duty - break; - #endif - - case NOT_ON_TIMER: - default: - if (val < 128) { - digitalWrite(pin, LOW); - } else { - digitalWrite(pin, HIGH); - } - } - } -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_digital.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_digital.c deleted file mode 100644 index be323b1dfe..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_digital.c +++ /dev/null @@ -1,178 +0,0 @@ -/* - wiring_digital.c - digital input and output functions - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - Modified 28 September 2010 by Mark Sproul - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#define ARDUINO_MAIN -#include "wiring_private.h" -#include "pins_arduino.h" - -void pinMode(uint8_t pin, uint8_t mode) -{ - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *reg, *out; - - if (port == NOT_A_PIN) return; - - // JWS: can I let the optimizer do this? - reg = portModeRegister(port); - out = portOutputRegister(port); - - if (mode == INPUT) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out &= ~bit; - SREG = oldSREG; - } else if (mode == INPUT_PULLUP) { - uint8_t oldSREG = SREG; - cli(); - *reg &= ~bit; - *out |= bit; - SREG = oldSREG; - } else { - uint8_t oldSREG = SREG; - cli(); - *reg |= bit; - SREG = oldSREG; - } -} - -// Forcing this inline keeps the callers from having to push their own stuff -// on the stack. It is a good performance win and only takes 1 more byte per -// user than calling. (It will take more bytes on the 168.) -// -// But shouldn't this be moved into pinMode? Seems silly to check and do on -// each digitalread or write. -// -// Mark Sproul: -// - Removed inline. Save 170 bytes on atmega1280 -// - changed to a switch statment; added 32 bytes but much easier to read and maintain. -// - Added more #ifdefs, now compiles for atmega645 -// -//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline)); -//static inline void turnOffPWM(uint8_t timer) -static void turnOffPWM(uint8_t timer) -{ - switch (timer) - { - #if defined(TCCR1A) && defined(COM1A1) - case TIMER1A: cbi(TCCR1A, COM1A1); break; - #endif - #if defined(TCCR1A) && defined(COM1B1) - case TIMER1B: cbi(TCCR1A, COM1B1); break; - #endif - - #if defined(TCCR2) && defined(COM21) - case TIMER2: cbi(TCCR2, COM21); break; - #endif - - #if defined(TCCR0A) && defined(COM0A1) - case TIMER0A: cbi(TCCR0A, COM0A1); break; - #endif - - #if defined(TIMER0B) && defined(COM0B1) - case TIMER0B: cbi(TCCR0A, COM0B1); break; - #endif - #if defined(TCCR2A) && defined(COM2A1) - case TIMER2A: cbi(TCCR2A, COM2A1); break; - #endif - #if defined(TCCR2A) && defined(COM2B1) - case TIMER2B: cbi(TCCR2A, COM2B1); break; - #endif - - #if defined(TCCR3A) && defined(COM3A1) - case TIMER3A: cbi(TCCR3A, COM3A1); break; - #endif - #if defined(TCCR3A) && defined(COM3B1) - case TIMER3B: cbi(TCCR3A, COM3B1); break; - #endif - #if defined(TCCR3A) && defined(COM3C1) - case TIMER3C: cbi(TCCR3A, COM3C1); break; - #endif - - #if defined(TCCR4A) && defined(COM4A1) - case TIMER4A: cbi(TCCR4A, COM4A1); break; - #endif - #if defined(TCCR4A) && defined(COM4B1) - case TIMER4B: cbi(TCCR4A, COM4B1); break; - #endif - #if defined(TCCR4A) && defined(COM4C1) - case TIMER4C: cbi(TCCR4A, COM4C1); break; - #endif - #if defined(TCCR4C) && defined(COM4D1) - case TIMER4D: cbi(TCCR4C, COM4D1); break; - #endif - - #if defined(TCCR5A) - case TIMER5A: cbi(TCCR5A, COM5A1); break; - case TIMER5B: cbi(TCCR5A, COM5B1); break; - case TIMER5C: cbi(TCCR5A, COM5C1); break; - #endif - } -} - -void digitalWrite(uint8_t pin, uint8_t val) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - volatile uint8_t *out; - - if (port == NOT_A_PIN) return; - - // If the pin that support PWM output, we need to turn it off - // before doing a digital write. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - out = portOutputRegister(port); - - uint8_t oldSREG = SREG; - cli(); - - if (val == LOW) { - *out &= ~bit; - } else { - *out |= bit; - } - - SREG = oldSREG; -} - -int digitalRead(uint8_t pin) -{ - uint8_t timer = digitalPinToTimer(pin); - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - - if (port == NOT_A_PIN) return LOW; - - // If the pin that support PWM output, we need to turn it off - // before getting a digital reading. - if (timer != NOT_ON_TIMER) turnOffPWM(timer); - - if (*portInputRegister(port) & bit) return HIGH; - return LOW; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_private.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_private.h deleted file mode 100644 index f0ceb0cc4d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_private.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_private.h - Internal header file. - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 239 2007-01-12 17:58:39Z mellis $ -*/ - -#ifndef WiringPrivate_h -#define WiringPrivate_h - -#include -#include -#include -#include - -#include "Arduino.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#define EXTERNAL_INT_0 0 -#define EXTERNAL_INT_1 1 -#define EXTERNAL_INT_2 2 -#define EXTERNAL_INT_3 3 -#define EXTERNAL_INT_4 4 -#define EXTERNAL_INT_5 5 -#define EXTERNAL_INT_6 6 -#define EXTERNAL_INT_7 7 - -#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) -#define EXTERNAL_NUM_INTERRUPTS 8 -#elif defined(__AVR_ATmega1284P__) -#define EXTERNAL_NUM_INTERRUPTS 3 -#else -#define EXTERNAL_NUM_INTERRUPTS 2 -#endif - -typedef void (*voidFuncPtr)(void); - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_pulse.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_pulse.c deleted file mode 100644 index 0d968865d2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_pulse.c +++ /dev/null @@ -1,69 +0,0 @@ -/* - wiring_pulse.c - pulseIn() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" -#include "pins_arduino.h" - -/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH - * or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds - * to 3 minutes in length, but must be called at least a few dozen microseconds - * before the start of the pulse. */ -unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) -{ - // cache the port and bit of the pin in order to speed up the - // pulse width measuring loop and achieve finer resolution. calling - // digitalRead() instead yields much coarser resolution. - uint8_t bit = digitalPinToBitMask(pin); - uint8_t port = digitalPinToPort(pin); - uint8_t stateMask = (state ? bit : 0); - unsigned long width = 0; // keep initialization out of time critical area - - // convert the timeout from microseconds to a number of times through - // the initial loop; it takes 16 clock cycles per iteration. - unsigned long numloops = 0; - unsigned long maxloops = microsecondsToClockCycles(timeout) / 16; - - // wait for any previous pulse to end - while ((*portInputRegister(port) & bit) == stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to start - while ((*portInputRegister(port) & bit) != stateMask) - if (numloops++ == maxloops) - return 0; - - // wait for the pulse to stop - while ((*portInputRegister(port) & bit) == stateMask) { - if (numloops++ == maxloops) - return 0; - width++; - } - - // convert the reading to microseconds. The loop has been determined - // to be 20 clock cycles long and have about 16 clocks between the edge - // and the start of the loop. There will be some error introduced by - // the interrupt handlers. - return clockCyclesToMicroseconds(width * 21 + 16); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_shift.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_shift.c deleted file mode 100644 index cfe786758c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/cores/at90usb/wiring_shift.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - wiring_shift.c - shiftOut() function - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2005-2006 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.c 248 2007-02-03 15:36:30Z mellis $ -*/ - -#include "wiring_private.h" - -uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder) { - uint8_t value = 0; - uint8_t i; - - for (i = 0; i < 8; ++i) { - digitalWrite(clockPin, HIGH); - if (bitOrder == LSBFIRST) - value |= digitalRead(dataPin) << i; - else - value |= digitalRead(dataPin) << (7 - i); - digitalWrite(clockPin, LOW); - } - return value; -} - -void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) -{ - uint8_t i; - - for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); - - digitalWrite(clockPin, HIGH); - digitalWrite(clockPin, LOW); - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/firmwares/Brainwave.inf b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/firmwares/Brainwave.inf deleted file mode 100644 index e48829420b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/firmwares/Brainwave.inf +++ /dev/null @@ -1,106 +0,0 @@ -;************************************************************ -; Windows USB CDC ACM Setup File -; Copyright (c) 2000 Microsoft Corporation - - -[Version] -Signature="$Windows NT$" -Class=Ports -ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} -Provider=%MFGNAME% -LayoutFile=layout.inf -CatalogFile=%MFGFILENAME%.cat -DriverVer=11/15/2007,5.1.2600.0 - -[Manufacturer] -%MFGNAME%=DeviceList, NTamd64 - -[DestinationDirs] -DefaultDestDir=12 - - -;------------------------------------------------------------------------------ -; Windows 2000/XP/Vista-32bit Sections -;------------------------------------------------------------------------------ - -[DriverInstall.nt] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.nt -AddReg=DriverInstall.nt.AddReg - -[DriverCopyFiles.nt] -usbser.sys,,,0x20 - -[DriverInstall.nt.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,%DRIVERFILENAME%.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.nt.Services] -AddService=usbser, 0x00000002, DriverService.nt - -[DriverService.nt] -DisplayName=%SERVICE% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\%DRIVERFILENAME%.sys - -;------------------------------------------------------------------------------ -; Vista-64bit Sections -;------------------------------------------------------------------------------ - -[DriverInstall.NTamd64] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.NTamd64 -AddReg=DriverInstall.NTamd64.AddReg - -[DriverCopyFiles.NTamd64] -%DRIVERFILENAME%.sys,,,0x20 - -[DriverInstall.NTamd64.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,%DRIVERFILENAME%.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NTamd64.Services] -AddService=usbser, 0x00000002, DriverService.NTamd64 - -[DriverService.NTamd64] -DisplayName=%SERVICE% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\%DRIVERFILENAME%.sys - - -;------------------------------------------------------------------------------ -; Vendor and Product ID Definitions -;------------------------------------------------------------------------------ -; When developing your USB device, the VID and PID used in the PC side -; application program and the firmware on the microcontroller must match. -; Modify the below line to use your VID and PID. Use the format as shown below. -; Note: One INF file can be used for multiple devices with different VID and PIDs. -; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line. -;------------------------------------------------------------------------------ -[SourceDisksFiles] -[SourceDisksNames] -[DeviceList] -%DESCRIPTION%=DriverInstall, USB\VID_16D0&PID_076B - -[DeviceList.NTamd64] -%DESCRIPTION%=DriverInstall, USB\VID_16D0&PID_204A - - -;------------------------------------------------------------------------------ -; String Definitions -;------------------------------------------------------------------------------ -;Modify these strings to customize your device -;------------------------------------------------------------------------------ -[Strings] -MFGFILENAME="CDC_vista" -DRIVERFILENAME ="usbser" -MFGNAME="Metrix Create Space" -INSTDISK="Brainwave Driver Installer" -DESCRIPTION="Communications Port" -SERVICE="USB RS-232 Emulation Driver" \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/README.adoc b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/README.adoc deleted file mode 100644 index 6f57eb157d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/README.adoc +++ /dev/null @@ -1,24 +0,0 @@ -= Liquid Crystal Library for Arduino = - -This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. - -For more information about this library please visit us at -http://arduino.cc/en/Reference/LiquidCrystal - -== License == - -Copyright (c) Arduino LLC. All right reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.ino deleted file mode 100644 index 0acb3affc0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Autoscroll/Autoscroll.ino +++ /dev/null @@ -1,74 +0,0 @@ -/* - LiquidCrystal Library - Autoscroll - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch demonstrates the use of the autoscroll() - and noAutoscroll() functions to make new text scroll or not. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalAutoscroll - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); -} - -void loop() { - // set the cursor to (0,0): - lcd.setCursor(0, 0); - // print from 0 to 9: - for (int thisChar = 0; thisChar < 10; thisChar++) { - lcd.print(thisChar); - delay(500); - } - - // set the cursor to (16,1): - lcd.setCursor(16, 1); - // set the display to automatically scroll: - lcd.autoscroll(); - // print from 0 to 9: - for (int thisChar = 0; thisChar < 10; thisChar++) { - lcd.print(thisChar); - delay(500); - } - // turn off automatic scrolling - lcd.noAutoscroll(); - - // clear screen for the next loop: - lcd.clear(); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Blink/Blink.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Blink/Blink.ino deleted file mode 100644 index 856d522c50..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Blink/Blink.ino +++ /dev/null @@ -1,61 +0,0 @@ -/* - LiquidCrystal Library - Blink - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints "Hello World!" to the LCD and makes the - cursor block blink. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalBlink - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // Print a message to the LCD. - lcd.print("hello, world!"); -} - -void loop() { - // Turn off the blinking cursor: - lcd.noBlink(); - delay(3000); - // Turn on the blinking cursor: - lcd.blink(); - delay(3000); -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Cursor/Cursor.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Cursor/Cursor.ino deleted file mode 100644 index 5f68d917dd..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Cursor/Cursor.ino +++ /dev/null @@ -1,61 +0,0 @@ -/* - LiquidCrystal Library - Cursor - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints "Hello World!" to the LCD and - uses the cursor() and noCursor() methods to turn - on and off the cursor. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalCursor - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // Print a message to the LCD. - lcd.print("hello, world!"); -} - -void loop() { - // Turn off the cursor: - lcd.noCursor(); - delay(500); - // Turn on the cursor: - lcd.cursor(); - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/CustomCharacter/CustomCharacter.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/CustomCharacter/CustomCharacter.ino deleted file mode 100644 index e70a949e34..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/CustomCharacter/CustomCharacter.ino +++ /dev/null @@ -1,140 +0,0 @@ -/* - LiquidCrystal Library - Custom Characters - - Demonstrates how to add custom characters on an LCD display. - The LiquidCrystal library works with all LCD displays that are - compatible with the Hitachi HD44780 driver. There are many of - them out there, and you can usually tell them by the 16-pin interface. - - This sketch prints "I Arduino!" and a little dancing man - to the LCD. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K potentiometer: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - * 10K poterntiometer on pin A0 - - created 21 Mar 2011 - by Tom Igoe - modified 11 Nov 2013 - by Scott Fitzgerald - - Based on Adafruit's example at - https://github.com/adafruit/SPI_VFD/blob/master/examples/createChar/createChar.pde - - This example code is in the public domain. - http://www.arduino.cc/en/Tutorial/LiquidCrystal - - Also useful: - http://icontexto.com/charactercreator/ - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -// make some custom characters: -byte heart[8] = { - 0b00000, - 0b01010, - 0b11111, - 0b11111, - 0b11111, - 0b01110, - 0b00100, - 0b00000 -}; - -byte smiley[8] = { - 0b00000, - 0b00000, - 0b01010, - 0b00000, - 0b00000, - 0b10001, - 0b01110, - 0b00000 -}; - -byte frownie[8] = { - 0b00000, - 0b00000, - 0b01010, - 0b00000, - 0b00000, - 0b00000, - 0b01110, - 0b10001 -}; - -byte armsDown[8] = { - 0b00100, - 0b01010, - 0b00100, - 0b00100, - 0b01110, - 0b10101, - 0b00100, - 0b01010 -}; - -byte armsUp[8] = { - 0b00100, - 0b01010, - 0b00100, - 0b10101, - 0b01110, - 0b00100, - 0b00100, - 0b01010 -}; - -void setup() { - // initialize LCD and set up the number of columns and rows: - lcd.begin(16, 2); - - // create a new character - lcd.createChar(0, heart); - // create a new character - lcd.createChar(1, smiley); - // create a new character - lcd.createChar(2, frownie); - // create a new character - lcd.createChar(3, armsDown); - // create a new character - lcd.createChar(4, armsUp); - - // Print a message to the lcd. - lcd.print("I "); - lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte - lcd.print(" Arduino! "); - lcd.write((byte) 1); - -} - -void loop() { - // read the potentiometer on A0: - int sensorReading = analogRead(A0); - // map the result to 200 - 1000: - int delayTime = map(sensorReading, 0, 1023, 200, 1000); - // set the cursor to the bottom row, 5th position: - lcd.setCursor(4, 1); - // draw the little man, arms down: - lcd.write(3); - delay(delayTime); - lcd.setCursor(4, 1); - // draw him arms up: - lcd.write(4); - delay(delayTime); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Display/Display.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Display/Display.ino deleted file mode 100644 index 5c9e67cb3f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Display/Display.ino +++ /dev/null @@ -1,61 +0,0 @@ -/* - LiquidCrystal Library - display() and noDisplay() - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints "Hello World!" to the LCD and uses the - display() and noDisplay() functions to turn on and off - the display. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalDisplay - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // Print a message to the LCD. - lcd.print("hello, world!"); -} - -void loop() { - // Turn off the display: - lcd.noDisplay(); - delay(500); - // Turn on the display: - lcd.display(); - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.ino deleted file mode 100644 index bf122d9992..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/HelloWorld/HelloWorld.ino +++ /dev/null @@ -1,60 +0,0 @@ -/* - LiquidCrystal Library - Hello World - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints "Hello World!" to the LCD - and shows the time. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * LCD VSS pin to ground - * LCD VCC pin to 5V - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://www.arduino.cc/en/Tutorial/LiquidCrystal - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // Print a message to the LCD. - lcd.print("hello, world!"); -} - -void loop() { - // set the cursor to column 0, line 1 - // (note: line 1 is the second row, since counting begins with 0): - lcd.setCursor(0, 1); - // print the number of seconds since reset: - lcd.print(millis() / 1000); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Scroll/Scroll.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Scroll/Scroll.ino deleted file mode 100644 index 3e4479177e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/Scroll/Scroll.ino +++ /dev/null @@ -1,86 +0,0 @@ -/* - LiquidCrystal Library - scrollDisplayLeft() and scrollDisplayRight() - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints "Hello World!" to the LCD and uses the - scrollDisplayLeft() and scrollDisplayRight() methods to scroll - the text. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalScroll - - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // Print a message to the LCD. - lcd.print("hello, world!"); - delay(1000); -} - -void loop() { - // scroll 13 positions (string length) to the left - // to move it offscreen left: - for (int positionCounter = 0; positionCounter < 13; positionCounter++) { - // scroll one position left: - lcd.scrollDisplayLeft(); - // wait a bit: - delay(150); - } - - // scroll 29 positions (string length + display length) to the right - // to move it offscreen right: - for (int positionCounter = 0; positionCounter < 29; positionCounter++) { - // scroll one position right: - lcd.scrollDisplayRight(); - // wait a bit: - delay(150); - } - - // scroll 16 positions (display length + string length) to the left - // to move it back to center: - for (int positionCounter = 0; positionCounter < 16; positionCounter++) { - // scroll one position left: - lcd.scrollDisplayLeft(); - // wait a bit: - delay(150); - } - - // delay at the end of the full loop: - delay(1000); - -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino deleted file mode 100644 index 5838dc5a08..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/SerialDisplay/SerialDisplay.ino +++ /dev/null @@ -1,65 +0,0 @@ -/* - LiquidCrystal Library - Serial Input - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch displays text sent over the serial port - (e.g. from the Serial Monitor) on an attached LCD. - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalSerial - */ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // initialize the serial communications: - Serial.begin(9600); -} - -void loop() -{ - // when characters arrive over the serial port... - if (Serial.available()) { - // wait a bit for the entire message to arrive - delay(100); - // clear the screen - lcd.clear(); - // read all the available characters - while (Serial.available() > 0) { - // display each character to the LCD - lcd.write(Serial.read()); - } - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/TextDirection/TextDirection.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/TextDirection/TextDirection.ino deleted file mode 100644 index 3bb8695b31..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/TextDirection/TextDirection.ino +++ /dev/null @@ -1,86 +0,0 @@ -/* -LiquidCrystal Library - TextDirection - -Demonstrates the use a 16x2 LCD display. The LiquidCrystal -library works with all LCD displays that are compatible with the -Hitachi HD44780 driver. There are many of them out there, and you -can usually tell them by the 16-pin interface. - -This sketch demonstrates how to use leftToRight() and rightToLeft() -to move the cursor. - -The circuit: -* LCD RS pin to digital pin 12 -* LCD Enable pin to digital pin 11 -* LCD D4 pin to digital pin 5 -* LCD D5 pin to digital pin 4 -* LCD D6 pin to digital pin 3 -* LCD D7 pin to digital pin 2 -* LCD R/W pin to ground -* 10K resistor: -* ends to +5V and ground -* wiper to LCD VO pin (pin 3) - -Library originally added 18 Apr 2008 -by David A. Mellis -library modified 5 Jul 2009 -by Limor Fried (http://www.ladyada.net) -example added 9 Jul 2009 -by Tom Igoe -modified 22 Nov 2010 -by Tom Igoe - -This example code is in the public domain. - -http://arduino.cc/en/Tutorial/LiquidCrystalTextDirection - -*/ - -// include the library code: -#include - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -int thisChar = 'a'; - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(16, 2); - // turn on the cursor: - lcd.cursor(); -} - -void loop() { - // reverse directions at 'm': - if (thisChar == 'm') { - // go right for the next letter - lcd.rightToLeft(); - } - // reverse again at 's': - if (thisChar == 's') { - // go left for the next letter - lcd.leftToRight(); - } - // reset at 'z': - if (thisChar > 'z') { - // go to (0,0): - lcd.home(); - // start again at 0 - thisChar = 'a'; - } - // print the character - lcd.write(thisChar); - // wait a second: - delay(1000); - // increment the letter: - thisChar++; -} - - - - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/setCursor/setCursor.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/setCursor/setCursor.ino deleted file mode 100644 index 4790b68b80..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/examples/setCursor/setCursor.ino +++ /dev/null @@ -1,72 +0,0 @@ -/* - LiquidCrystal Library - setCursor - - Demonstrates the use a 16x2 LCD display. The LiquidCrystal - library works with all LCD displays that are compatible with the - Hitachi HD44780 driver. There are many of them out there, and you - can usually tell them by the 16-pin interface. - - This sketch prints to all the positions of the LCD using the - setCursor(0 method: - - The circuit: - * LCD RS pin to digital pin 12 - * LCD Enable pin to digital pin 11 - * LCD D4 pin to digital pin 5 - * LCD D5 pin to digital pin 4 - * LCD D6 pin to digital pin 3 - * LCD D7 pin to digital pin 2 - * LCD R/W pin to ground - * 10K resistor: - * ends to +5V and ground - * wiper to LCD VO pin (pin 3) - - Library originally added 18 Apr 2008 - by David A. Mellis - library modified 5 Jul 2009 - by Limor Fried (http://www.ladyada.net) - example added 9 Jul 2009 - by Tom Igoe - modified 22 Nov 2010 - by Tom Igoe - - This example code is in the public domain. - - http://arduino.cc/en/Tutorial/LiquidCrystalSetCursor - - */ - -// include the library code: -#include - -// these constants won't change. But you can change the size of -// your LCD using them: -const int numRows = 2; -const int numCols = 16; - -// initialize the library with the numbers of the interface pins -LiquidCrystal lcd(12, 11, 5, 4, 3, 2); - -void setup() { - // set up the LCD's number of columns and rows: - lcd.begin(numCols, numRows); -} - -void loop() { - // loop from ASCII 'a' to ASCII 'z': - for (int thisLetter = 'a'; thisLetter <= 'z'; thisLetter++) { - // loop over the columns: - for (int thisCol = 0; thisCol < numRows; thisCol++) { - // loop over the rows: - for (int thisRow = 0; thisRow < numCols; thisRow++) { - // set the cursor position: - lcd.setCursor(thisCol, thisRow); - // print the letter: - lcd.write(thisLetter); - delay(200); - } - } - } -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt deleted file mode 100644 index b6aa7fd903..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/keywords.txt +++ /dev/null @@ -1,38 +0,0 @@ -####################################### -# Syntax Coloring Map For LiquidCrystal -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -LiquidCrystal KEYWORD1 LiquidCrystal - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -clear KEYWORD2 -home KEYWORD2 -print KEYWORD2 -setCursor KEYWORD2 -cursor KEYWORD2 -noCursor KEYWORD2 -blink KEYWORD2 -noBlink KEYWORD2 -display KEYWORD2 -noDisplay KEYWORD2 -autoscroll KEYWORD2 -noAutoscroll KEYWORD2 -leftToRight KEYWORD2 -rightToLeft KEYWORD2 -scrollDisplayLeft KEYWORD2 -scrollDisplayRight KEYWORD2 -createChar KEYWORD2 -setRowOffsets KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/library.properties b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/library.properties deleted file mode 100644 index f379f78cce..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/library.properties +++ /dev/null @@ -1,9 +0,0 @@ -name=LiquidCrystal -version=1.0.1 -author=Arduino, Adafruit -maintainer=Arduino -sentence=Allows communication with alphanumerical liquid crystal displays (LCDs). For all Arduino boards. -paragraph=This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. The library works with in either 4 or 8 bit mode (i.e. using 4 or 8 data lines in addition to the rs, enable, and, optionally, the rw control lines). -category=Display -url=http://arduino.cc/en/Reference/LiquidCrystal -architectures=* diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.cpp deleted file mode 100644 index 249e0ec9b5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.cpp +++ /dev/null @@ -1,322 +0,0 @@ -#include "LiquidCrystal.h" - -#include -#include -#include -#include "Arduino.h" - -// When the display powers up, it is configured as follows: -// -// 1. Display clear -// 2. Function set: -// DL = 1; 8-bit interface data -// N = 0; 1-line display -// F = 0; 5x8 dot character font -// 3. Display on/off control: -// D = 0; Display off -// C = 0; Cursor off -// B = 0; Blinking off -// 4. Entry mode set: -// I/D = 1; Increment by 1 -// S = 0; No shift -// -// Note, however, that resetting the Arduino doesn't reset the LCD, so we -// can't assume that its in that state when a sketch starts (and the -// LiquidCrystal constructor is called). - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) -{ - init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0); -} - -void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7) -{ - _rs_pin = rs; - _rw_pin = rw; - _enable_pin = enable; - - _data_pins[0] = d0; - _data_pins[1] = d1; - _data_pins[2] = d2; - _data_pins[3] = d3; - _data_pins[4] = d4; - _data_pins[5] = d5; - _data_pins[6] = d6; - _data_pins[7] = d7; - - pinMode(_rs_pin, OUTPUT); - // we can save 1 pin by not using RW. Indicate by passing 255 instead of pin# - if (_rw_pin != 255) { - pinMode(_rw_pin, OUTPUT); - } - pinMode(_enable_pin, OUTPUT); - - if (fourbitmode) - _displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS; - else - _displayfunction = LCD_8BITMODE | LCD_1LINE | LCD_5x8DOTS; - - begin(16, 1); -} - -void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) { - if (lines > 1) { - _displayfunction |= LCD_2LINE; - } - _numlines = lines; - - setRowOffsets(0x00, 0x40, 0x00 + cols, 0x40 + cols); - - // for some 1 line displays you can select a 10 pixel high font - if ((dotsize != LCD_5x8DOTS) && (lines == 1)) { - _displayfunction |= LCD_5x10DOTS; - } - - // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION! - // according to datasheet, we need at least 40ms after power rises above 2.7V - // before sending commands. Arduino can turn on way before 4.5V so we'll wait 50 - delayMicroseconds(50000); - // Now we pull both RS and R/W low to begin commands - digitalWrite(_rs_pin, LOW); - digitalWrite(_enable_pin, LOW); - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - //put the LCD into 4 bit or 8 bit mode - if (! (_displayfunction & LCD_8BITMODE)) { - // this is according to the hitachi HD44780 datasheet - // figure 24, pg 46 - - // we start in 8bit mode, try to set 4 bit mode - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // second try - write4bits(0x03); - delayMicroseconds(4500); // wait min 4.1ms - - // third go! - write4bits(0x03); - delayMicroseconds(150); - - // finally, set to 4-bit interface - write4bits(0x02); - } else { - // this is according to the hitachi HD44780 datasheet - // page 45 figure 23 - - // Send function set command sequence - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(4500); // wait more than 4.1ms - - // second try - command(LCD_FUNCTIONSET | _displayfunction); - delayMicroseconds(150); - - // third go - command(LCD_FUNCTIONSET | _displayfunction); - } - - // finally, set # lines, font size, etc. - command(LCD_FUNCTIONSET | _displayfunction); - - // turn the display on with no cursor or blinking default - _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF; - display(); - - // clear it off - clear(); - - // Initialize to default text direction (for romance languages) - _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT; - // set the entry mode - command(LCD_ENTRYMODESET | _displaymode); - -} - -void LiquidCrystal::setRowOffsets(int row0, int row1, int row2, int row3) -{ - _row_offsets[0] = row0; - _row_offsets[1] = row1; - _row_offsets[2] = row2; - _row_offsets[3] = row3; -} - -/********** high level commands, for the user! */ -void LiquidCrystal::clear() -{ - command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::home() -{ - command(LCD_RETURNHOME); // set cursor position to zero - delayMicroseconds(2000); // this command takes a long time! -} - -void LiquidCrystal::setCursor(uint8_t col, uint8_t row) -{ - const size_t max_lines = sizeof(_row_offsets) / sizeof(*_row_offsets); - if ( row >= max_lines ) { - row = max_lines - 1; // we count rows starting w/0 - } - if ( row >= _numlines ) { - row = _numlines - 1; // we count rows starting w/0 - } - - command(LCD_SETDDRAMADDR | (col + _row_offsets[row])); -} - -// Turn the display on/off (quickly) -void LiquidCrystal::noDisplay() { - _displaycontrol &= ~LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::display() { - _displaycontrol |= LCD_DISPLAYON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turns the underline cursor on/off -void LiquidCrystal::noCursor() { - _displaycontrol &= ~LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::cursor() { - _displaycontrol |= LCD_CURSORON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// Turn on and off the blinking cursor -void LiquidCrystal::noBlink() { - _displaycontrol &= ~LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} -void LiquidCrystal::blink() { - _displaycontrol |= LCD_BLINKON; - command(LCD_DISPLAYCONTROL | _displaycontrol); -} - -// These commands scroll the display without changing the RAM -void LiquidCrystal::scrollDisplayLeft(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVELEFT); -} -void LiquidCrystal::scrollDisplayRight(void) { - command(LCD_CURSORSHIFT | LCD_DISPLAYMOVE | LCD_MOVERIGHT); -} - -// This is for text that flows Left to Right -void LiquidCrystal::leftToRight(void) { - _displaymode |= LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This is for text that flows Right to Left -void LiquidCrystal::rightToLeft(void) { - _displaymode &= ~LCD_ENTRYLEFT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'right justify' text from the cursor -void LiquidCrystal::autoscroll(void) { - _displaymode |= LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// This will 'left justify' text from the cursor -void LiquidCrystal::noAutoscroll(void) { - _displaymode &= ~LCD_ENTRYSHIFTINCREMENT; - command(LCD_ENTRYMODESET | _displaymode); -} - -// Allows us to fill the first 8 CGRAM locations -// with custom characters -void LiquidCrystal::createChar(uint8_t location, uint8_t charmap[]) { - location &= 0x7; // we only have 8 locations 0-7 - command(LCD_SETCGRAMADDR | (location << 3)); - for (int i=0; i<8; i++) { - write(charmap[i]); - } -} - -/*********** mid level commands, for sending data/cmds */ - -inline void LiquidCrystal::command(uint8_t value) { - send(value, LOW); -} - -inline size_t LiquidCrystal::write(uint8_t value) { - send(value, HIGH); - return 1; // assume sucess -} - -/************ low level data pushing commands **********/ - -// write either command or data, with automatic 4/8-bit selection -void LiquidCrystal::send(uint8_t value, uint8_t mode) { - digitalWrite(_rs_pin, mode); - - // if there is a RW pin indicated, set it low to Write - if (_rw_pin != 255) { - digitalWrite(_rw_pin, LOW); - } - - if (_displayfunction & LCD_8BITMODE) { - write8bits(value); - } else { - write4bits(value>>4); - write4bits(value); - } -} - -void LiquidCrystal::pulseEnable(void) { - digitalWrite(_enable_pin, LOW); - delayMicroseconds(1); - digitalWrite(_enable_pin, HIGH); - delayMicroseconds(1); // enable pulse must be >450ns - digitalWrite(_enable_pin, LOW); - delayMicroseconds(100); // commands need > 37us to settle -} - -void LiquidCrystal::write4bits(uint8_t value) { - for (int i = 0; i < 4; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} - -void LiquidCrystal::write8bits(uint8_t value) { - for (int i = 0; i < 8; i++) { - pinMode(_data_pins[i], OUTPUT); - digitalWrite(_data_pins[i], (value >> i) & 0x01); - } - - pulseEnable(); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.h deleted file mode 100644 index da950ce581..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/LiquidCrystal/src/LiquidCrystal.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef LiquidCrystal_h -#define LiquidCrystal_h - -#include -#include "Print.h" - -// commands -#define LCD_CLEARDISPLAY 0x01 -#define LCD_RETURNHOME 0x02 -#define LCD_ENTRYMODESET 0x04 -#define LCD_DISPLAYCONTROL 0x08 -#define LCD_CURSORSHIFT 0x10 -#define LCD_FUNCTIONSET 0x20 -#define LCD_SETCGRAMADDR 0x40 -#define LCD_SETDDRAMADDR 0x80 - -// flags for display entry mode -#define LCD_ENTRYRIGHT 0x00 -#define LCD_ENTRYLEFT 0x02 -#define LCD_ENTRYSHIFTINCREMENT 0x01 -#define LCD_ENTRYSHIFTDECREMENT 0x00 - -// flags for display on/off control -#define LCD_DISPLAYON 0x04 -#define LCD_DISPLAYOFF 0x00 -#define LCD_CURSORON 0x02 -#define LCD_CURSOROFF 0x00 -#define LCD_BLINKON 0x01 -#define LCD_BLINKOFF 0x00 - -// flags for display/cursor shift -#define LCD_DISPLAYMOVE 0x08 -#define LCD_CURSORMOVE 0x00 -#define LCD_MOVERIGHT 0x04 -#define LCD_MOVELEFT 0x00 - -// flags for function set -#define LCD_8BITMODE 0x10 -#define LCD_4BITMODE 0x00 -#define LCD_2LINE 0x08 -#define LCD_1LINE 0x00 -#define LCD_5x10DOTS 0x04 -#define LCD_5x8DOTS 0x00 - -class LiquidCrystal : public Print { -public: - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - LiquidCrystal(uint8_t rs, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3); - - void init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable, - uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, - uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7); - - void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS); - - void clear(); - void home(); - - void noDisplay(); - void display(); - void noBlink(); - void blink(); - void noCursor(); - void cursor(); - void scrollDisplayLeft(); - void scrollDisplayRight(); - void leftToRight(); - void rightToLeft(); - void autoscroll(); - void noAutoscroll(); - - void setRowOffsets(int row1, int row2, int row3, int row4); - void createChar(uint8_t, uint8_t[]); - void setCursor(uint8_t, uint8_t); - virtual size_t write(uint8_t); - void command(uint8_t); - - using Print::write; -private: - void send(uint8_t, uint8_t); - void write4bits(uint8_t); - void write8bits(uint8_t); - void pulseEnable(); - - uint8_t _rs_pin; // LOW: command. HIGH: character. - uint8_t _rw_pin; // LOW: write to LCD. HIGH: read from LCD. - uint8_t _enable_pin; // activated by a HIGH pulse. - uint8_t _data_pins[8]; - - uint8_t _displayfunction; - uint8_t _displaycontrol; - uint8_t _displaymode; - - uint8_t _initialized; - - uint8_t _numlines; - uint8_t _row_offsets[4]; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.cpp deleted file mode 100644 index 5e48073f73..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#include "pins_arduino.h" -#include "SPI.h" - -SPIClass SPI; - -void SPIClass::begin() { - - // Set SS to high so a connected chip will be "deselected" by default - digitalWrite(SS, HIGH); - - // When the SS pin is set as OUTPUT, it can be used as - // a general purpose output port (it doesn't influence - // SPI operations). - pinMode(SS, OUTPUT); - - // Warning: if the SS pin ever becomes a LOW INPUT then SPI - // automatically switches to Slave, so the data direction of - // the SS pin MUST be kept as OUTPUT. - SPCR |= _BV(MSTR); - SPCR |= _BV(SPE); - - // Set direction register for SCK and MOSI pin. - // MISO pin automatically overrides to INPUT. - // By doing this AFTER enabling SPI, we avoid accidentally - // clocking in a single bit since the lines go directly - // from "input" to SPI control. - // http://code.google.com/p/arduino/issues/detail?id=888 - pinMode(SCK, OUTPUT); - pinMode(MOSI, OUTPUT); -} - - -void SPIClass::end() { - SPCR &= ~_BV(SPE); -} - -void SPIClass::setBitOrder(uint8_t bitOrder) -{ - if(bitOrder == LSBFIRST) { - SPCR |= _BV(DORD); - } else { - SPCR &= ~(_BV(DORD)); - } -} - -void SPIClass::setDataMode(uint8_t mode) -{ - SPCR = (SPCR & ~SPI_MODE_MASK) | mode; -} - -void SPIClass::setClockDivider(uint8_t rate) -{ - SPCR = (SPCR & ~SPI_CLOCK_MASK) | (rate & SPI_CLOCK_MASK); - SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((rate >> 2) & SPI_2XCLOCK_MASK); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.h deleted file mode 100644 index f647d5c891..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/SPI.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2010 by Cristian Maglie - * SPI Master library for arduino. - * - * This file is free software; you can redistribute it and/or modify - * it under the terms of either the GNU General Public License version 2 - * or the GNU Lesser General Public License version 2.1, both as - * published by the Free Software Foundation. - */ - -#ifndef _SPI_H_INCLUDED -#define _SPI_H_INCLUDED - -#include -#include -#include - -#define SPI_CLOCK_DIV4 0x00 -#define SPI_CLOCK_DIV16 0x01 -#define SPI_CLOCK_DIV64 0x02 -#define SPI_CLOCK_DIV128 0x03 -#define SPI_CLOCK_DIV2 0x04 -#define SPI_CLOCK_DIV8 0x05 -#define SPI_CLOCK_DIV32 0x06 -//#define SPI_CLOCK_DIV64 0x07 - -#define SPI_MODE0 0x00 -#define SPI_MODE1 0x04 -#define SPI_MODE2 0x08 -#define SPI_MODE3 0x0C - -#define SPI_MODE_MASK 0x0C // CPOL = bit 3, CPHA = bit 2 on SPCR -#define SPI_CLOCK_MASK 0x03 // SPR1 = bit 1, SPR0 = bit 0 on SPCR -#define SPI_2XCLOCK_MASK 0x01 // SPI2X = bit 0 on SPSR - -class SPIClass { -public: - inline static byte transfer(byte _data); - - // SPI Configuration methods - - inline static void attachInterrupt(); - inline static void detachInterrupt(); // Default - - static void begin(); // Default - static void end(); - - static void setBitOrder(uint8_t); - static void setDataMode(uint8_t); - static void setClockDivider(uint8_t); -}; - -extern SPIClass SPI; - -byte SPIClass::transfer(byte _data) { - SPDR = _data; - while (!(SPSR & _BV(SPIF))) - ; - return SPDR; -} - -void SPIClass::attachInterrupt() { - SPCR |= _BV(SPIE); -} - -void SPIClass::detachInterrupt() { - SPCR &= ~_BV(SPIE); -} - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/keywords.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/keywords.txt deleted file mode 100644 index fa7616581a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/SPI/keywords.txt +++ /dev/null @@ -1,36 +0,0 @@ -####################################### -# Syntax Coloring Map SPI -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -SPI KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### -begin KEYWORD2 -end KEYWORD2 -transfer KEYWORD2 -setBitOrder KEYWORD2 -setDataMode KEYWORD2 -setClockDivider KEYWORD2 - - -####################################### -# Constants (LITERAL1) -####################################### -SPI_CLOCK_DIV4 LITERAL1 -SPI_CLOCK_DIV16 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_CLOCK_DIV128 LITERAL1 -SPI_CLOCK_DIV2 LITERAL1 -SPI_CLOCK_DIV8 LITERAL1 -SPI_CLOCK_DIV32 LITERAL1 -SPI_CLOCK_DIV64 LITERAL1 -SPI_MODE0 LITERAL1 -SPI_MODE1 LITERAL1 -SPI_MODE2 LITERAL1 -SPI_MODE3 LITERAL1 \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/ChangeLog b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/ChangeLog deleted file mode 100644 index 9bf4b34edb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/ChangeLog +++ /dev/null @@ -1,162 +0,0 @@ - -u8glib ChangeLog - -2012-01-01 v0.01 Oliver Kraus - * first beta release for Arduino IDE with simple SSD1325 support -2012-01-04 v0.02 Oliver Kraus - * support for some more display types -2012-01-07 v0.03 Oliver Kraus - * fixed some bugs, added more examples -2012-01-07 v0.04 Oliver Kraus - * single font file -2012-01-08 v0.05 Oliver Kraus - * Cleanup - * More examples - * SSD1325 graylevel support -2012-01-15 v0.06 Oliver Kraus - * LM6063 support -2012-01-17 v0.07 Oliver Kraus - * LM6063 support (update) -2012-01-19 v0.08 Oliver Kraus - * ST7920 beta device -2012-01-21 v0.09 Oliver Kraus - * ST7920 fixed (192x32) - * fixed bug in com layer if pins are none - * str reference position -2012-01-22 v0.10 Oliver Kraus - * Experimental LM6059 -2012-01-24 v0.11 Oliver Kraus - * new st7920 memory layout for 128x64 lcd - * experimental st7920 SPI -2012-01-25 v0.12 Oliver Kraus - * fixed st7920 memory layout for 128x64 lcd - * ST7920 SPI performance improvement -2012-01-27 v0.13 Oliver Kraus - * LM6059 (Adafruit Display) fixed -2012-02-01 v0.14 Oliver Kraus - * undoRotation() - * setRot..() can be used without restrictions - * Class U8GLIB derived from Print class. New function "print" - * Fixed memory index bug in the page management procedures -2012-02-12 v1.00 Oliver Kraus - * XBM support - * F() macro support - * str-rotation commands support ref-height and ref-position -2012-03-17 v1.02 Oliver Kraus - * U8GLIB_ST7687_C144MVGD spi experimental - * U8GLIB_LC7981_160X80 8bit - * Intersection test for frame and box procedures - * 4L double memory architecture - * setContrast infrastructure implemented, but not available for all devices - * drawCircle, drawDisc - * Bugfix for drawStr270 - * New examples: Chess (ported from dogm128 lib) and GraphicsTest -2012-03-31 v1.03 Oliver Kraus - * experimental parallel mode atmega - * more unifont code pages - * double memory, for NHD OLED and DOGXL160 - * "Menu" example - * drawLine -2012-04-13 v1.04 Oliver Kraus - * Adjust U8grelease: Same version number with AVR and Arduino variant -2012-06-10 v1.05 Oliver Kraus - * m2icon font - * experimental lc7981_240x64 device - * experimental ssd1306 - * experimental ssd1322 - * Hardware state backup/restore procedure -2012-06-15 v1.06 Oliver Kraus - * SBN1661 (SED1520?) support - * SSD1306 support - * U8G_PROGMEM bugfix -2012-07-04 v1.07 Oliver Kraus - * Added Makefiles for AVR release (issue 77) - * Fixed examples for Arduino Environment (issue 78) -2012-10-02 v1.08 Oliver Kraus - * Improved delay calculation for strobe pulse (issue 20) - * Support Chipkit (issue 39) - * Improved speed for ST7920 parallel mode (issue 79) - * Overall speed optimization (new page intersection algorithm) - * Support for Displays Newhaven NHD-C12864, CrystalFontz GFAG20232, Seeedstudio 96x96 OLED - * Added SPI support for ST7920 with plain AVR (issue 85) - * Add more LC7981 devices -2012-12-23 v1.09 Oliver Kraus - * Support for Displaytech 64128n - * Support for MINI12864 - * HW SPI for ST7920 - * Add delay after sending a byte with (ST7920 com) - * Support ATTiny - * Support I2C for SSD1306 - * bdf2u8g, Windows executable released - * LC7981 320x64 - * Scalue up: u8g::setScale2x2 - * Added more bitmap fonts - * u8g::drawRBox(), u8g::drawRFrame() - * Support for CFAG20232 (st7920_202x32) - * Fixed ST7920 SW SPI for ChipKit - * Support for tls8204 -2013-02-02 v1.10 Oliver Kraus - * Support for SSD1309 - * Support for NHD-C12832A1Z - * Bugfix: Fixed reset controll in parallel modes - * Bugfix: Fixed calculation of cursor position - * Bugfix: ST7920 parallel mode -2013-03-2 v1.11 Oliver Kraus - * Support for T6963 - * Support for Arduino Due - * Sleep Mode - * 4x mode for ST7920 - * New C++ interface for ST7920 -2013-03-24 v1.12 Oliver Kraus - * Added touch panel examples -2013-06-30 v1.13 Oliver Kraus - * Fixed missing "Arduino.h" in u8g_delay.c - * Disable interrupt for port/pin access (AVR), issue 19 - * Support for HT1632: U8GLIB_HT1632_24X16 u8g(wr, data, cs), issue 165 - * Support for SSD1351 OLED, issue 168 - * Cleaned up several compiler warnings - * Fixed conflict with scheduler (Arduino Due), issue 155 - * HW SPI for Arduino Due, issue 180 - * Performance improvement for ST7920, issue 177 - * Added ":" to the "n"umeric variant of the fonts, issue 166 - * Added additional argument u8g_InitCom(). Use U8G_SPI_CLK_CYCLE_NONE by default. - * Added double buffer option for many ST7565 devices - * Tested with Arduino 1.0.5 -2013-10-03 v1.14 Oliver Kraus - * Support for ARM controller - * Support for the A2 micro printer (issue 191) - * Ellipse drawing primitive (issue 187) - * Added software reset for UC1701 - * Fixed compiler warning (issue 196) - * Support for Freetronics SSD1351 OLED (issue 195) - * Several other fixes and improvements -2014-01-25 v1.15 Oliver Kraus - * Fixed a bug with the rotation procs: Occupied too much flash ROM (issue 219) - * Fixed issue with more than one SPI controller (SW SPI, issue 227) - * Added "drawTriangle" (issue 226) - * Added support for UC1608 (issue 214) - * Added ProFont family of fonts (issue 234) - * SW SPI support for Teensy 3 (issue 230) - * Removed Arduino/AVR specific files from ARM port (issue 209) -2014-07-05 v1.16 Oliver Kraus - * Added support for LD7032 60x32 OLED - * Added support for SSD1306 OLED, which does not send I2C ACK (issue 239) - * Added support for SH1106 128x64 OLED - * Added support for T6963 128x128 displays - * Added U8GLIB_SSD1306_ADAFRUIT_128X64 constructor -2014-12-21 v1.17 Oliver Kraus - * Added U8GLIB_UC1611_DOGM240 constructor (Issue 284) - * Added U8GLIB_UC1611_DOGXL240 constructor - * Added support for UC1608 controller (Issue 300) - * Added U8GLIB_SSD1306_ADAFRUIT_128X64 for Adafruit OLEDs (Issue 289) - * Bufix in the sleep on/off sequence (CS has not been releases, issue 298) - * helvB and helvR number only fonts (Issue 271) - * 400KHz option for I2C with U8G_I2C_OPT_FAST available for Due and Uno (Issue 303) - * I2C support for Arduino Due. 100KHz/400KHz, TWI & TWI1, ACK will be ignored (issue 285) - * Unifont update (Issue 297) - - - - - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT deleted file mode 100644 index efcedd03b8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/INSTALL.TXT +++ /dev/null @@ -1,26 +0,0 @@ - -U8GLIB -http://code.google.com/p/u8glib/ - -Install instructions for the Arduino environment. - - 1. Start Arduino IDE - 2. In the Arduino IDE, import the library from the "Add Library" Menu. - -Alternative install instructions for the Arduino environment. - - 1. Unzip u8glib_arduino_vX.XX.zip into the "libraries" folder of the - Arduino install directory - 2. Start Arduino IDE - -Install instructions for the Chipkit (Arduino) environment. - - 1. cd /libraries - 2. unzip u8glib_arduino_vX.XX.zip - 3. cd ///hardware/pic32/libraries - 4. again: u8glib_arduino_vX.XX.zip - 5. Open hardware/pic32/cores/pic32/Print.h - Remove line - #define BYTE 0 - from the file, use PRINT_BYTE instead of BYTE. - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp deleted file mode 100644 index 542fc673ad..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - - U8glib.cpp - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "U8glib.h" - - - -uint8_t U8GLIB::initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitSPI(&u8g, dev, sck, mosi, cs, a0, reset); -} - -uint8_t U8GLIB::initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - prepare(); - return u8g_InitHWSPI(&u8g, dev, cs, a0, reset); -} - -uint8_t U8GLIB::initI2C(u8g_dev_t *dev, uint8_t options) -{ - prepare(); - return u8g_InitI2C(&u8g, dev, options); -} - -uint8_t U8GLIB::init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); -} - -uint8_t U8GLIB::init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - prepare(); - return u8g_Init8BitFixedPort(&u8g, dev, en, cs, di, rw, reset); -} - -uint8_t U8GLIB::initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - prepare(); - return u8g_InitRW8Bit(&u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.h deleted file mode 100644 index bff8268dc4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/U8glib.h +++ /dev/null @@ -1,1268 +0,0 @@ -/* - - U8glib.h - - C++ Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _CPP_U8GLIB -#define _CPP_U8GLIB - -#include -#include "utility/u8g.h" - - -class U8GLIB : public Print -{ - private: - u8g_t u8g; - u8g_uint_t tx, ty; // current position for the Print base class procedures - uint8_t is_begin; - - void prepare(void) { tx = 0; ty = 0; is_begin = 0; } - void cbegin(void) { if ( is_begin == 0 ) { is_begin = 1; u8g_Begin(&u8g); } } - uint8_t initSPI(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initHWSPI(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE); - uint8_t initI2C(u8g_dev_t *dev, uint8_t options); - protected: - uint8_t init8BitFixedPort(u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); - private: - uint8_t init8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE); - uint8_t initRW8Bit(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); - public: - - /* constructor */ - U8GLIB(void) - { } - U8GLIB(u8g_dev_t *dev) - { prepare(); u8g_Init(&u8g, dev); } - U8GLIB(u8g_dev_t *dev, u8g_com_fnptr com_fn) - { prepare(); u8g_InitComFn(&u8g, dev, com_fn); } - U8GLIB(u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { initSPI(dev, sck, mosi, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) - { initHWSPI(dev, cs, a0, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t options) - { initI2C(dev, options); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) - { init8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset); } - U8GLIB(u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) - { initRW8Bit(dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset); } - - uint8_t begin(void) { is_begin = 1; return u8g_Begin(&u8g); } - - void setPrintPos(u8g_uint_t x, u8g_uint_t y) { tx = x; ty = y; } - u8g_t *getU8g(void) { return &u8g; } - - - /* implementation of the write interface to the print class */ -#if defined(ARDUINO) && ARDUINO >= 100 - size_t write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); return 1;} -#else - void write(uint8_t c) { tx += u8g_DrawGlyph(&u8g, tx, ty, c); } -#endif - - /* screen rotation */ - void undoRotation(void) { u8g_UndoRotation(&u8g); } - void setRot90(void) { u8g_SetRot90(&u8g); } - void setRot180(void) { u8g_SetRot180(&u8g); } - void setRot270(void) { u8g_SetRot270(&u8g); } - - /* screen scaling */ - void undoScale(void) { u8g_UndoScale(&u8g); } - void setScale2x2(void) { u8g_SetScale2x2(&u8g); } - - /* picture loop */ - void firstPage(void) { cbegin(); u8g_FirstPage(&u8g); } - uint8_t nextPage(void) { return u8g_NextPage(&u8g); } - - /* system commands */ - uint8_t setContrast(uint8_t contrast) { cbegin(); return u8g_SetContrast(&u8g, contrast); } - void sleepOn(void) { u8g_SleepOn(&u8g); } - void sleepOff(void) { u8g_SleepOff(&u8g); } - - /* graphic primitives */ - void setColorEntry(uint8_t color_index, uint8_t r, uint8_t g, uint8_t b) { u8g_SetColorEntry(&u8g, color_index, r, g, b); } - void setHiColor(uint16_t rgb) { u8g_SetHiColor(&u8g, rgb); } - void setHiColorByRGB(uint8_t r, uint8_t g, uint8_t b) { u8g_SetHiColorByRGB(&u8g, r, g, b); } - void setRGB(uint8_t r, uint8_t g, uint8_t b) { u8g_SetRGB(&u8g, r, g, b); } - - void setColorIndex(uint8_t color_index) { u8g_SetColorIndex(&u8g, color_index); } - uint8_t getColorIndex(void) { return u8g_GetColorIndex(&u8g); } - - void setDefaultForegroundColor(void) { u8g_SetDefaultForegroundColor(&u8g); } - void setDefaultBackgroundColor(void) { u8g_SetDefaultBackgroundColor(&u8g); } - void setDefaultMidColor(void) { u8g_SetDefaultMidColor(&u8g); } - - u8g_uint_t getWidth(void) { return u8g_GetWidth(&u8g); } - u8g_uint_t getHeight(void) { return u8g_GetHeight(&u8g); } - uint8_t getMode(void) { return u8g_GetMode(&u8g); } - - void drawPixel(u8g_uint_t x, u8g_uint_t y) { return u8g_DrawPixel(&u8g, x, y); } - void drawHLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) { u8g_DrawHLine(&u8g, x, y, w); } - void drawVLine(u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) { u8g_DrawVLine(&u8g, x, y, h); } - void drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) { u8g_DrawLine(&u8g, x1, y1, x2, y2); } - - void drawFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawFrame(&u8g, x, y, w, h); } - void drawRFrame(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRFrame(&u8g, x, y, w, h,r); } - void drawBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) { u8g_DrawBox(&u8g, x, y, w, h); } - void drawRBox(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) { u8g_DrawRBox(&u8g, x, y, w, h,r); } - - void drawCircle(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawCircle(&u8g, x0, y0, rad, opt); } - void drawDisc(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawDisc(&u8g, x0, y0, rad, opt); } - - void drawEllipse(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawEllipse(&u8g, x0, y0, rx, ry, opt); } - void drawFilledEllipse(u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t opt = U8G_DRAW_ALL) { u8g_DrawFilledEllipse(&u8g, x0, y0, rx, ry, opt); } - - void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) - { u8g_DrawTriangle(&u8g, x0, y0, x1, y1, x2, y2); } - - - - /* bitmap handling */ - void drawBitmap(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawBitmap(&u8g, x, y, cnt, h, bitmap); } - void drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawBitmapP(&u8g, x, y, cnt, h, bitmap); } - - void drawXBM(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) - { u8g_DrawXBM(&u8g, x, y, w, h, bitmap); } - void drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) - { u8g_DrawXBMP(&u8g, x, y, w, h, bitmap); } - - - /* font handling */ - void setFont(const u8g_fntpgm_uint8_t *font) {u8g_SetFont(&u8g, font); } - int8_t getFontAscent(void) { return u8g_GetFontAscent(&u8g); } - int8_t getFontDescent(void) { return u8g_GetFontDescent(&u8g); } - int8_t getFontLineSpacing(void) { return u8g_GetFontLineSpacing(&u8g); } - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr(&u8g, x, y, s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr90(&u8g, x, y, s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr180(&u8g, x, y, s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s) { return u8g_DrawStr270(&u8g, x, y, s); } - u8g_uint_t drawStrP(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStrP(&u8g, x, y, s); } - u8g_uint_t drawStr90P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr90P(&u8g, x, y, s); } - u8g_uint_t drawStr180P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr180P(&u8g, x, y, s); } - u8g_uint_t drawStr270P(u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) { return u8g_DrawStr270P(&u8g, x, y, s); } - - void setFontPosBaseline(void) { u8g_SetFontPosBaseline(&u8g); } - void setFontPosBottom(void) { u8g_SetFontPosBottom(&u8g); } - void setFontPosCenter(void) { u8g_SetFontPosCenter(&u8g); } - void setFontPosTop(void) { u8g_SetFontPosTop(&u8g); } - - void setFontRefHeightText(void) { u8g_SetFontRefHeightText(&u8g); } - void setFontRefHeightExtendedText(void) { u8g_SetFontRefHeightExtendedText(&u8g); } - void setFontRefHeightAll(void) { u8g_SetFontRefHeightAll(&u8g); } - void setFontLineSpacingFactor(uint8_t factor) { u8g_SetFontLineSpacingFactor(&u8g, factor); } - - - u8g_uint_t getStrPixelWidth(const char *s) { return u8g_GetStrPixelWidth(&u8g, s); } - u8g_uint_t getStrPixelWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrPixelWidthP(&u8g, s); } - u8g_uint_t getStrWidth(const char *s) { return u8g_GetStrWidth(&u8g, s); } - u8g_uint_t getStrWidthP(u8g_pgm_uint8_t *s) { return u8g_GetStrWidthP(&u8g, s); } - - void setHardwareBackup(u8g_state_cb backup_cb) { u8g_SetHardwareBackup(&u8g, backup_cb); } - -#if defined(ARDUINO) && ARDUINO >= 100 - // support for the F() macro - - u8g_uint_t drawStr(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStrP(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr90(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr90P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr180(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr180P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - u8g_uint_t drawStr270(u8g_uint_t x, u8g_uint_t y, const __FlashStringHelper *s) { return u8g_DrawStr270P(&u8g, x, y, (u8g_pgm_uint8_t *)s); } - - u8g_uint_t getStrPixelWidth(const __FlashStringHelper *s) { return u8g_GetStrPixelWidthP(&u8g, (u8g_pgm_uint8_t *)s); } - u8g_uint_t getStrWidth(const __FlashStringHelper *s) { return u8g_GetStrWidthP(&u8g, (u8g_pgm_uint8_t *)s); } -#endif - - /* cursor handling */ - void setCursorFont(const u8g_pgm_uint8_t *cursor_font) { u8g_SetCursorFont(&u8g, cursor_font); } - void setCursorStyle(uint8_t encoding) { u8g_SetCursorStyle(&u8g, encoding); } - void setCursorPos(u8g_uint_t cursor_x, u8g_uint_t cursor_y) { u8g_SetCursorPos(&u8g, cursor_x, cursor_y); } - void setCursorColor(uint8_t fg, uint8_t bg) { u8g_SetCursorColor(&u8g, fg, bg); } - void enableCursor(void) { u8g_EnableCursor(&u8g); } - void disableCursor(void) { u8g_DisableCursor(&u8g); } - void drawCursor(void) { u8g_DrawCursor(&u8g); } - - /* virtual screen */ - - void setVirtualScreenDimension(u8g_uint_t width, u8g_uint_t height) { u8g_SetVirtualScreenDimension(&u8g, width, height); } - uint8_t addToVirtualScreen(u8g_uint_t x, u8g_uint_t y, U8GLIB &child_u8g) { return u8g_AddToVirtualScreen(&u8g, x, y, &child_u8g.u8g); } - -}; - - -class U8GLIB_DOGS102 : public U8GLIB -{ - public: - U8GLIB_DOGS102(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGS102(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGS102_2X : public U8GLIB -{ - public: - U8GLIB_DOGS102_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGS102_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_dogs102_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_MINI12864 : public U8GLIB -{ - public: - U8GLIB_MINI12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_MINI12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_MINI12864_2X : public U8GLIB -{ - public: - U8GLIB_MINI12864_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_MINI12864_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1701_mini12864_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGM132 : public U8GLIB -{ - public: - U8GLIB_DOGM132(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM132(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm132_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12832 : public U8GLIB -{ - public: - U8GLIB_NHD_C12832(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD_C12832(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD_C12832_USART : public U8GLIB -{ - public: - U8GLIB_NHD_C12832_USART(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12832_hw_usart_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGM128 : public U8GLIB -{ - public: - U8GLIB_DOGM128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_hw_spi, cs, a0, reset) - { } - U8GLIB_DOGM128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_DOGM128_2X : public U8GLIB -{ - public: - U8GLIB_DOGM128_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGM128_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_DOGM128_2X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_dogm128_2x_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LM6059 : public U8GLIB -{ - public: - U8GLIB_LM6059(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6059(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6059_2X : public U8GLIB -{ - public: - U8GLIB_LM6059_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6059_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6059_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6063 : public U8GLIB -{ - public: - U8GLIB_LM6063(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6063(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_LM6063_2X : public U8GLIB -{ - public: - U8GLIB_LM6063_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LM6063_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_lm6063_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_64128N : public U8GLIB -{ - public: - U8GLIB_64128N(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_64128N(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_hw_spi, cs, a0, reset) - { } - U8GLIB_64128N(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_64128N_2X : public U8GLIB -{ - public: - U8GLIB_64128N_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_64128N_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_64128N_2X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_64128n_2x_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD_C12864 : public U8GLIB -{ - public: - U8GLIB_NHD_C12864(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12864(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD_C12864_2X : public U8GLIB -{ - public: - U8GLIB_NHD_C12864_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD_C12864_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7565_nhd_c12864_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1601_C128032 : public U8GLIB -{ - public: - U8GLIB_UC1601_C128032(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1601_C128032(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1601_C128032_2X : public U8GLIB -{ - public: - U8GLIB_UC1601_C128032_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1601_C128032_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1601_c128032_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X64 : public U8GLIB -{ - public: - U8GLIB_UC1608_240X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X64_2X : public U8GLIB -{ - public: - U8GLIB_UC1608_240X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x64_2x_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X128 : public U8GLIB -{ - public: - U8GLIB_UC1608_240X128(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X128(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1608_240X128_2X : public U8GLIB -{ - public: - U8GLIB_UC1608_240X128_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1608_240X128_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1608_240x128_2x_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_UC1611_DOGM240 : public U8GLIB -{ - public: - U8GLIB_UC1611_DOGM240(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_i2c, options) - {} - U8GLIB_UC1611_DOGM240(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1611_DOGM240(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogm240_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_UC1611_DOGXL240 : public U8GLIB -{ - public: - U8GLIB_UC1611_DOGXL240(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_i2c, options) - {} - U8GLIB_UC1611_DOGXL240(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_UC1611_DOGXL240(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1611_dogxl240_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_ST7920_128X64 : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } - // U8GLIB_ST7920_128X64(uint8_t cs) - // : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, cs, U8G_PIN_NONE, U8G_PIN_NONE) - // { } -}; - -class U8GLIB_ST7920_128X64_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_CUSTOM_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_CUSTOM_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_custom, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_128X64_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_128X64_CUSTOM_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_128X64_CUSTOM_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_128x64_4x_custom, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_ST7920_192X32 : public U8GLIB // OBSOLETE, use U8GLIB_ST7920_192X32_1X instead -{ - public: - U8GLIB_ST7920_192X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_192X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_192X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_192X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_192X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_192X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_192x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_ST7920_202X32 : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, a0, reset) - { } - U8GLIB_ST7920_202X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_ST7920_202X32_1X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_1X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_1X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - -class U8GLIB_ST7920_202X32_4X : public U8GLIB -{ - public: - U8GLIB_ST7920_202X32_4X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_sw_spi, sck, mosi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t cs, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_hw_spi, cs, U8G_PIN_NONE, reset) // a0 = U8G_PIN_NONE - { } - U8GLIB_ST7920_202X32_4X(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7920_202x32_4x_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, U8G_PIN_NONE, U8G_PIN_NONE, di, rw, reset) // cs1 = cs2 = U8G_PIN_NONE - { } -}; - - -class U8GLIB_LC7981_160X80 : public U8GLIB -{ - public: - U8GLIB_LC7981_160X80(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_160x80_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_LC7981_240X128 : public U8GLIB -{ - public: - U8GLIB_LC7981_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - -// 16 bit mode required: Remove comment from "#define U8G_16BIT 1" in utility/utility/u8g.h -class U8GLIB_LC7981_320X64 : public U8GLIB -{ - public: - U8GLIB_LC7981_320X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_lc7981_320x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - - - -class U8GLIB_DOGXL160_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_BW : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_DOGXL160_2X_GR : public U8GLIB -{ - public: - U8GLIB_DOGXL160_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_DOGXL160_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_uc1610_dogxl160_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_NHD27OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_BW(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_bw_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_BW : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_BW(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_BW(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD31OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_GR(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_gr_parallel, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs, U8G_PIN_NONE, di, rw, reset) - { } -}; - -class U8GLIB_NHD31OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD31OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD31OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_SSD1306_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_i2c, options) - { } -}; - -class U8GLIB_SSD1306_ADAFRUIT_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_ADAFRUIT_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_adafruit_128x64_i2c, options) - { } -}; - - -class U8GLIB_SSD1306_128X64_2X : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X64_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x64_2x_i2c, options) - { } -}; - -class U8GLIB_SH1106_128X64 : public U8GLIB -{ - public: - U8GLIB_SH1106_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_i2c, options) - { } -}; - -class U8GLIB_SH1106_128X64_2X : public U8GLIB -{ - public: - U8GLIB_SH1106_128X64_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SH1106_128X64_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_sh1106_128x64_2x_i2c, options) - { } -}; - -class U8GLIB_SSD1309_128X64 : public U8GLIB -{ - public: - U8GLIB_SSD1309_128X64(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1309_128X64(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1309_128x64_i2c, options) - { } -}; - -class U8GLIB_SSD1306_128X32 : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_i2c, options) - { } -}; - -class U8GLIB_SSD1306_128X32_2X : public U8GLIB -{ - public: - U8GLIB_SSD1306_128X32_2X(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32_2X(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1306_128X32_2X(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1306_128x32_2x_i2c, options) - { } -}; - - -class U8GLIB_NHD27OLED_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_NHD27OLED_2X_GR : public U8GLIB -{ - public: - U8GLIB_NHD27OLED_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_NHD27OLED_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1327_96X96_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_gr_i2c, options) - { } -}; - -class U8GLIB_SSD1327_96X96_2X_GR : public U8GLIB -{ - public: - U8GLIB_SSD1327_96X96_2X_GR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_hw_spi, cs, a0, reset) - { } - U8GLIB_SSD1327_96X96_2X_GR(uint8_t options = U8G_I2C_OPT_NONE) - : U8GLIB(&u8g_dev_ssd1327_96x96_2x_gr_i2c, options) - { } -}; - - -class U8GLIB_LD7032_60x32 : public U8GLIB -{ - public: - U8GLIB_LD7032_60x32(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_LD7032_60x32(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_hw_spi, cs, a0, reset) - { } - U8GLIB_LD7032_60x32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ld7032_60x32_parallel, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } -}; - - - -class U8GLIB_HT1632_24X16 : public U8GLIB -{ - public: - U8GLIB_HT1632_24X16(uint8_t wr, uint8_t data, uint8_t cs) - : U8GLIB(&u8g_dev_ht1632_24x16, wr, data, cs, U8G_PIN_NONE, U8G_PIN_NONE) - { } -}; - - - -class U8GLIB_PCF8812 : public U8GLIB -{ - public: - U8GLIB_PCF8812(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcf8812_96x65_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_PCF8812(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcf8812_96x65_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_PCD8544 : public U8GLIB -{ - public: - U8GLIB_PCD8544(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcd8544_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_PCD8544(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_pcd8544_84x48_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_TLS8204_84X48 : public U8GLIB -{ - public: - U8GLIB_TLS8204_84X48(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_tls8204_84x48_sw_spi, sck, mosi, cs, a0, reset) - { } -}; - -class U8GLIB_KS0108_128 : public U8GLIB -{ - public: - U8GLIB_KS0108_128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_SBN1661_122X32 : public U8GLIB -{ - public: - U8GLIB_SBN1661_122X32(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_sbn1661_122x32, d0, d1, d2, d3, d4, d5, d6, d7, U8G_PIN_NONE, cs1, cs2, di, rw, reset) - { } -}; - -class U8GLIB_T6963_240X128 : public U8GLIB -{ - public: - U8GLIB_T6963_240X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_128X128 : public U8GLIB -{ - public: - U8GLIB_T6963_128X128(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_128x128_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_240X64 : public U8GLIB -{ - public: - U8GLIB_T6963_240X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_240x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - -class U8GLIB_T6963_128X64 : public U8GLIB -{ - public: - U8GLIB_T6963_128X64(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_t6963_128x64_8bit, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - { } -}; - - -class U8GLIB_ST7687_C144MVGD: public U8GLIB -{ - public: - U8GLIB_ST7687_C144MVGD(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_st7687_c144mvgd_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_ST7687_C144MVGD(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs, uint8_t a0, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ks0108_128x64_fast, d0, d1, d2, d3, d4, d5, d6, d7, en, cs, U8G_PIN_NONE, a0, rw, reset) - { } -}; - -class U8GLIB_ILI9325D_320x240 : public U8GLIB -{ - public: - /* - U8GLIB_ILI9325D_320x240(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ili9325d_320x240_8bit, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, U8G_PIN_NONE, di, rw, reset) - { } - */ - U8GLIB_ILI9325D_320x240( uint8_t en, uint8_t cs1, uint8_t di, uint8_t rw = U8G_PIN_NONE, uint8_t reset = U8G_PIN_NONE) - { init8BitFixedPort(&u8g_dev_ili9325d_320x240_8bit, en, cs1, di, rw, reset); } -}; - - - -class U8GLIB_SSD1351_128X128_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_4X_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_4X_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_4X_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_4X_332 : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_4X_332(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_332_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_4X_332(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_332_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_IDX : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_IDX(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_idx_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_IDX(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_idx_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128_4X_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128_4X_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128_4X_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_hicolor_hw_spi, cs, a0, reset) - { } -}; - -class U8GLIB_SSD1351_128X128GH_4X_HICOLOR : public U8GLIB -{ - public: - U8GLIB_SSD1351_128X128GH_4X_HICOLOR(uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi, sck, mosi, cs, a0, reset) - { } - U8GLIB_SSD1351_128X128GH_4X_HICOLOR(uint8_t cs, uint8_t a0, uint8_t reset = U8G_PIN_NONE) - : U8GLIB(&u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi, cs, a0, reset) - { } -}; - - -class U8GLIB_FLIPDISC_2X7 : public U8GLIB -{ - public: - U8GLIB_FLIPDISC_2X7(void) : U8GLIB(&u8g_dev_flipdisc_2x7) - { } -}; - -class U8GLIB_VS : public U8GLIB -{ - public: - U8GLIB_VS(void) : U8GLIB(&u8g_dev_vs) - { } -}; - - -#endif /* _CPP_U8GLIB */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/A2Printer/A2Printer.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/A2Printer/A2Printer.ino deleted file mode 100644 index d40bd791bb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/A2Printer/A2Printer.ino +++ /dev/null @@ -1,131 +0,0 @@ -/* - - A2Printer.pde - - Special example code for the A2 Mciro Printer (https://www.sparkfun.com/products/10438) - - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// use this serial interface -#define PRINTER_SERIAL Serial -// #define PRINTER_SERIAL Serial1 - - -uint8_t u8g_com_uart(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - switch(msg) { - case U8G_COM_MSG_WRITE_BYTE: - PRINTER_SERIAL.write(arg_val); - break; - } - return 1; -} - -// setup u8g object, please remove comment from one of the following constructor calls - -// half resolution -//U8GLIB u8g(&u8g_dev_a2_micro_printer_192x120_ds, (u8g_com_fnptr)u8g_com_uart); - -// full resolution, requires to uncomment U8G_16BIT in u8g.h -//U8GLIB u8g(&u8g_dev_a2_micro_printer_384x240, (u8g_com_fnptr)u8g_com_uart); - -// half resolution, extra log, requires to uncomment U8G_16BIT in u8g.h -//U8GLIB u8g(&u8g_dev_a2_micro_printer_192x360_ds, (u8g_com_fnptr)u8g_com_uart); -U8GLIB u8g(&u8g_dev_a2_micro_printer_192x720_ds, (u8g_com_fnptr)u8g_com_uart); - - - -void drawLogo(uint8_t d) { - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(0+d, 30+d, "U"); - u8g.setFont(u8g_font_gdr30n); - u8g.drawStr90(23+d,10+d,"8"); - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(53+d,30+d,"g"); - - u8g.drawHLine(2+d, 35+d, 47); - u8g.drawVLine(45+d, 32+d, 12); -} - -void drawURL(void) { - u8g.setFont(u8g_font_4x6); - if ( u8g.getHeight() < 59 ) { - u8g.drawStr(53,9,"code.google.com"); - u8g.drawStr(77,18,"/p/u8glib"); - } - else { - u8g.drawStr(1,54,"code.google.com/p/u8glib"); - } -} - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - - drawLogo(0); - drawURL(); - u8g.drawFrame(0,0,u8g.getWidth(), u8g.getHeight()); - - u8g.setFont(u8g_font_helvR24r); - u8g.setPrintPos(0, 100); - u8g.print(u8g.getWidth(), DEC); - u8g.print("x"); - u8g.print(u8g.getHeight(), DEC); -} - -void setup(void) { - PRINTER_SERIAL.begin(19200); - - // flip screen, if required - // u8g.setRot180(); - - // assign default color value - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - - // picture loop: This will print the picture - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // send manual CR to the printer - PRINTER_SERIAL.write('\n'); - - // reprint the picture after 10 seconds - delay(10000); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.ino deleted file mode 100644 index e9a30e2d15..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Bitmap/Bitmap.ino +++ /dev/null @@ -1,166 +0,0 @@ -/* - - Bitmap.pde - - Show simple bitmap - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -const uint8_t rook_bitmap[] PROGMEM = { - 0x00, // 00000000 - 0x55, // 01010101 - 0x7f, // 01111111 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x3e, // 00111110 - 0x7f // 01111111 -}; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawBitmapP( 0, 0, 1, 8, rook_bitmap); -} - -void setup(void) { -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(1000); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.ino deleted file mode 100644 index eeebe4ac2e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Chess/Chess.ino +++ /dev/null @@ -1,216 +0,0 @@ -/* - - Chess.pde - - Little Rook Chess - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -// DOGS102 shield configuration values -uint8_t uiKeyPrev = 2; -uint8_t uiKeyNext = 4; -uint8_t uiKeySelect = 5; -uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -//uint8_t uiKeyPrev = 7; -//uint8_t uiKeyNext = 3; -//uint8_t uiKeySelect = 2; -//uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = CHESS_KEY_NONE; -uint8_t uiKeyCodeSecond = CHESS_KEY_NONE; -uint8_t uiKeyCode = CHESS_KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) -{ - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = CHESS_KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = CHESS_KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = CHESS_KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = CHESS_KEY_BACK; - else - uiKeyCodeFirst = CHESS_KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = CHESS_KEY_NONE; -} - - -void setup() { - // rotate screen, if required - u8g.setRot180(); - - uiSetup(); - chess_Init(u8g.getU8g(), 0); -} - -void loop() { - uint8_t keyCode = CHESS_KEY_NONE; - - u8g.firstPage(); - do { - chess_Draw(); - uiStep(); - if ( uiKeyCode != CHESS_KEY_NONE ) - keyCode = uiKeyCode; - } while( u8g.nextPage() ); - - u8g_Delay(10); - chess_Step(keyCode); - uiStep(); - keyCode = uiKeyCode; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Color/Color.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Color/Color.ino deleted file mode 100644 index a389e32242..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Color/Color.ino +++ /dev/null @@ -1,201 +0,0 @@ -/* - - Color.pde - - "Hello World!" example code with color. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - - if ( u8g.getMode() == U8G_MODE_HICOLOR || u8g.getMode() == U8G_MODE_R3G3B2) { - /* draw background (area is 128x128) */ - u8g_uint_t r, g, b; - for( b = 0; b < 4; b++ ) - { - for( g = 0; g < 32; g++ ) - { - for( r = 0; r < 32; r++ ) - { - u8g.setRGB(r<<3, g<<3, b<<4 ); - u8g.drawPixel(g + b*32, r); - u8g.setRGB(r<<3, g<<3, (b<<4)+64 ); - u8g.drawPixel(g + b*32, r+32); - u8g.setRGB(r<<3, g<<3, (b<<4)+128 ); - u8g.drawPixel(g + b*32, r+32+32); - u8g.setRGB(r<<3, g<<3, (b<<4)+128+64 ); - u8g.drawPixel(g + b*32, r+32+32+32); - } - } - } - } - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - u8g.setColorIndex(255); // white - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { - u8g.setColorIndex(3); // max intensity - } - else if ( u8g.getMode() == U8G_MODE_BW ) { - u8g.setColorIndex(1); // pixel on - } - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - u8g.setFont(u8g_font_unifont); - u8g.drawStr( 0, 22, "Hello World!"); - - -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.ino deleted file mode 100644 index 70e0e2f09b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Console/Console.ino +++ /dev/null @@ -1,266 +0,0 @@ -/* - - Console.pde - - Read from serial monitor, output to display - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -// setup input buffer -#define LINE_MAX 30 -uint8_t line_buf[LINE_MAX] = "U8GLIB Console"; -uint8_t line_pos = 0; - -// setup a text screen to support scrolling -#define ROW_MAX 12 - - -uint8_t screen[ROW_MAX][LINE_MAX]; -uint8_t rows, cols; - -// line height, which matches the selected font (5x7) -#define LINE_PIXEL_HEIGHT 7 - -// clear entire screen, called during setup -void clear_screen(void) { - uint8_t i, j; - for( i = 0; i < ROW_MAX; i++ ) - for( j = 0; j < LINE_MAX; j++ ) - screen[i][j] = 0; -} - -// append a line to the screen, scroll up -void add_line_to_screen(void) { - uint8_t i, j; - for( j = 0; j < LINE_MAX; j++ ) - for( i = 0; i < rows-1; i++ ) - screen[i][j] = screen[i+1][j]; - - for( j = 0; j < LINE_MAX; j++ ) - screen[rows-1][j] = line_buf[j]; -} - -// U8GLIB draw procedure: output the screen -void draw(void) { - uint8_t i, y; - // graphic commands to redraw the complete screen are placed here - y = 0; // reference is the top left -1 position of the string - y--; // correct the -1 position of the drawStr - for( i = 0; i < rows; i++ ) - { - u8g.drawStr( 0, y, (char *)(screen[i])); - y += u8g.getFontLineSpacing(); - } -} - -void exec_line(void) { - // echo line to the serial monitor - Serial.println((const char *)line_buf); - - // add the line to the screen - add_line_to_screen(); - - // U8GLIB picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); -} - -// clear current input buffer -void reset_line(void) { - line_pos = 0; - line_buf[line_pos] = '\0'; -} - -// add a single character to the input buffer -void char_to_line(uint8_t c) { - line_buf[line_pos] = c; - line_pos++; - line_buf[line_pos] = '\0'; -} - -// check serial in and handle the character -void read_line(void) { - if ( Serial.available() ) - { - uint8_t c; - c = Serial.read(); - if ( line_pos >= cols-1 ) { - exec_line(); - reset_line(); - char_to_line(c); - } - else if ( c == '\n' ) { - // ignore '\n' - } - else if ( c == '\r' ) { - exec_line(); - reset_line(); - } - else { - char_to_line(c); - } - } -} - -// Arduino master setup -void setup(void) { - // set font for the console window - u8g.setFont(u8g_font_5x7); - //u8g.setFont(u8g_font_9x15); - - // set upper left position for the string draw procedure - u8g.setFontPosTop(); - - // calculate the number of rows for the display - rows = u8g.getHeight() / u8g.getFontLineSpacing(); - if ( rows > ROW_MAX ) - rows = ROW_MAX; - - // estimate the number of columns for the display - cols = u8g.getWidth() / u8g.getStrWidth("m"); - if ( cols > LINE_MAX-1 ) - cols = LINE_MAX-1; - - clear_screen(); // clear screen - delay(1000); // do some delay - Serial.begin(9600); // init serial - exec_line(); // place the input buffer into the screen - reset_line(); // clear input buffer -} - -// Arduino main loop -void loop(void) { - read_line(); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.ino deleted file mode 100644 index 4393ddfe49..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/F/F.ino +++ /dev/null @@ -1,175 +0,0 @@ -/* - - F.pde - - Example code for the F() macro. - - >>> This example requires Arduino 1.0 and above. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - - // assign default font - u8g.setFont(u8g_font_unifont); - - // pointer to strings in flash memory can be stored in a special type - const __FlashStringHelper *flash_ptr; - - // the result of the F() macro can be assigned to this pointer - flash_ptr = F("Hello World!"); - - // this pointer can be used as argument to the draw procedures - u8g.drawStr( 0+1, 20+1, flash_ptr); - u8g.drawStr( 0, 20, flash_ptr); - - // of course, the F() macro can be used directly - u8g.drawStr( 0, 40, F("PROGMEM")); - -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/FPS/FPS.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/FPS/FPS.ino deleted file mode 100644 index bcf93cd5bb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/FPS/FPS.ino +++ /dev/null @@ -1,398 +0,0 @@ -/* - - FPS.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ST7920_192X32, SPI: FPS: Box=7.6 @=9.8 iFPS: Box=11.4 @=14.7 - ST7920_192X32, 8Bit: FPS: Box=6.2 @=7.5 iFPS: Box=9.3 @=11.2 - DOGM128 SW SPI: FPS: Box=5.1 @=5.9 Pix=2.6 iFPS: Box=10.2 @=11.8 Pix=5.2 - DOGM128 HW SPI: FPS: Box=5.5 @=6.3 iFPS: Box=11.0 @=12.6 - DOGXL160 SW SPI: FPS: Box=1.7 @=1.9 iFPS: Box=6.9 @=7.7 - DOGXL160 HW SPI: FPS: Box=1.8 @=2.1 - - NHD27OLED_BW, SW SPI: FPS: Box=3.0 @=3.7 - NHD27OLED_BW, HW SPI: FPS: Box=3.5 @=4.5 - NHD27OLED_2X_BW, SW SPI: FPS: Box=3.8 @=4.9 - NHD27OLED_2X_BW, HW SPI: FPS: Box=4.6 @=6.4 - - 30 Sep 2012 - NHD27OLED_BW, SW SPI: FPS: Clip=9.2 Box=3.9 @=4.4 NEW_CODE - NHD27OLED_BW, SW SPI: FPS: Clip=9.2 Box=3.6 @=4.5 - NHD27OLED_BW, HW SPI: FPS: Clip=16.3 Box=4.7 @=5.6 - NHD27OLED_2X_BW, SW SPI: FPS: Clip=9.7 Box=4.5 @=5.8 - NHD27OLED_2X_BW, SW SPI: FPS: Clip=18.0 Box=5.8 @=7.9 - - 1 Oct 2012 - ST7920_192X32, 8Bit: FPS: Box=7.2 @=10.0 - DOGM128 SW SPI: FPS: Box=5.2 @=6.6 Pix=2.6 - DOGM128 HW SPI: FPS: Clip=33.2 Box=5.5 @=7.1 - DOGXL160 SW SPI: FPS: Box=1.7 @=2.0 - DOGXL160 HW SPI: FPS: Box=1.8 @=2.2 - - DOGXL160 GR SW SPI: FPS: Box=1.1 @=1.3 - - 1 Mar 2013 - ST7920_192X32_1X, SPI: FPS: Clip=10.3 Box=5.5 @=7.2 Pix=3.9 - ST7920_192X32_4X, SPI: FPS: Clip=10.9 Box=6.7 @=8.8 Pix=7.4 - ST7920_192X32_1X, 8Bit: FPS: Clip=14.2 Box=6.1 @=8.4 Pix=4.2 - ST7920_192X32_4X, 8Bit: FPS: Clip=14.2 Box=7.8 @=10.7 Pix=8.7 - ST7920_192X32_1X, HW SPI: FPS: Clip=14.2 Box=6.3 @=8.7 Pix=4.3 - ST7920_192X32_4X, HW SPI: FPS: Clip=15.3 Box=8.0 @=11.2 Pix=9.0 - - 2 Jun 2013 - U8GLIB_DOGM128 SW SPI: FPS: Clip=23.9 Box=4.5 @=6.6 Pix=2.1 - U8GLIB_DOGM128_2X SW SPI: FPS: Clip=28.5 Box=6.6 @=9.7 Pix=3.9 - U8GLIB_DOGM128_2X HW SPI: FPS: Clip=40.8 Box=7.1 @=10.8 Pix=4.1 - - 3 Jun 2013 - U8GLIB_ST7920_192X32_1X -Os SW SPI FPS: Clip=11.0 Box=5.4 @=7.1 Pix=3.9 Size=11828 - U8GLIB_ST7920_192X32_1X -O3 SW SPI FPS: Clip=10.9 Box=5.6 @=7.5 Pix=4.0 Size=13800 - U8GLIB_ST7920_192X32_1X -Os SW SPI FPS: Clip=16.8 Box=6.7 @=9.6 Pix=4.5 Size=11858 (new seq data output) - U8GLIB_ST7920_192X32_1X -Os HW SPI FPS: Clip=25.7 Box=7.5 @=11.3 Pix=4.8 (new seq data output) - - 6 Jun 2013 - U8GLIB_DOGS102 u8g(13, 11, 10, 9); STD SW SPI FPS: Clip=9.5 Box=7.6 @=8.2 Pix=6.2 Size=15652 - U8GLIB_DOGS102 u8g(13, 11, 10, 9); SW SPI FPS: Clip=19.1 Box=12.8 @=14.0 Pix=9.2 Size=15532 - - - 12 Jun 2013 - SSD1351_128X128_332 SW SPI Clip=1.3 Box=0.7 @=0.9 Pix=0.4 - SSD1351_128X128_332 HW SPI Clip=3.6 Box=1.1 @=1.5 Pix=0.5 - - 24 Jun 2013 - Uno SSD1351_128X128_332 SW SPI Clip=1.4 Box=0.8 @=0.9 Pix=0.4 - - Uno SSD1351_128X128_332 HW SPI Clip=4.4 Box=1.2 @=1.6 Pix=0.5 - Uno SSD1351_128X128_HICOLOR HW SPI Clip=3.7 Box=0.8 @=1.0 Pix=0.3 - - Mega2560 SSD1351_128X128_332 HW SPI Clip=4.4 Box=1.2 @=1.6 Pix=0.5 - Mega2560 SSD1351_128X128_4X_332 HW SPI Clip=4.6 Box=2.3 @=2.8 Pix=1.5 - Mega2560 SSD1351_128X128_HICOLOR HW SPI Clip=3.6 Box=0.8 @=1.0 Pix=0.3 - Mega2560 SSD1351_128X128_4X_HICOLOR HW SPI Clip=4.2 Box=1.7 @=2.1 Pix=1.0 - - Due SSD1351_128X128_332 HW SPI Clip=24.6 Box=6.3 @=7.8 Pix=2.8 - Due SSD1351_128X128_4X_332 HW SPI Clip=28.1 Box=13.0 @=15.1 Pix=8.5 - Due SSD1351_128X128_HICOLOR HW SPI Clip=20.8 Box=3.4 @=4.5 Pix=1.4 - Due SSD1351_128X128_4X_HICOLOR HW SPI Clip=26.3 Box=8.9 @=11.1 Pix=4.8 - - Due SSD1351_128X128_4X_HICOLOR SW SPI Clip=0.4 Box=0.4 @=0.4 Pix=0.4 - - Due DOGS102 u8g(13, 11, 10, 9); SW SPI FPS: Clip=19.1 Box=13.1 @=14.3 Pix=9.4 - Due DOGS102 u8g(10, 9); HW SPI FPS: Clip=128.9 Box=30.7 @=40.6 Pix=15.4 - - Due NHD27OLED_BW u8g(10, 9) HW SPI FPS: Clip=53.0 Box=19.6 @=23.8 Pix=10.6 - Due NHD27OLED_2X_BW u8g(10, 9) HW SPI FPS: Clip=57.0 Box=25.3 @=31.7 Pix=18.1 - Due NHD27OLED_GR u8g(10, 9) HW SPI FPS: Clip=34.1 Box=11.7 @=13.7 Pix=5.6 - Due NHD27OLED_2X_GR u8g(10, 9) HW SPI FPS: Clip=38.1 Box=15.5 @=20.0 Pix=8.8 - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -#define SECONDS 10 -uint8_t flip_color = 0; -uint8_t draw_color = 1; - -void draw_set_screen(void) { - // graphic commands to redraw the complete screen should be placed here - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - if ( flip_color == 0 ) - u8g.setHiColorByRGB(0,0,0); - else - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(flip_color); - } - u8g.drawBox( 0, 0, u8g.getWidth(), u8g.getHeight() ); -} - -void draw_clip_test(void) { - u8g_uint_t i, j, k; - char buf[3] = "AB"; - k = 0; - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_6x10); - - for( i = 0; i < 6; i++ ) { - for( j = 1; j < 8; j++ ) { - u8g.drawHLine(i-3, k, j); - u8g.drawHLine(i-3+10, k, j); - - u8g.drawVLine(k+20, i-3, j); - u8g.drawVLine(k+20, i-3+10, j); - - k++; - } - } - u8g.drawStr(0-3, 50, buf); - u8g.drawStr180(0+3, 50, buf); - - u8g.drawStr(u8g.getWidth()-3, 40, buf); - u8g.drawStr180(u8g.getWidth()+3, 40, buf); - - u8g.drawStr90(u8g.getWidth()-10, 0-3, buf); - u8g.drawStr270(u8g.getWidth()-10, 3, buf); - - u8g.drawStr90(u8g.getWidth()-20, u8g.getHeight()-3, buf); - u8g.drawStr270(u8g.getWidth()-20, u8g.getHeight()+3, buf); - -} - -void draw_char(void) { - char buf[2] = "@"; - u8g_uint_t i, j; - // graphic commands to redraw the complete screen should be placed here - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_6x10); - j = 8; - for(;;) { - i = 0; - for(;;) { - u8g.drawStr( i, j, buf); - i += 8; - if ( i > u8g.getWidth() ) - break; - } - j += 8; - if ( j > u8g.getHeight() ) - break; - } - -} - -void draw_pixel(void) { - u8g_uint_t x, y, w2, h2; - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - w2 = u8g.getWidth(); - h2 = u8g.getHeight(); - w2 /= 2; - h2 /= 2; - for( y = 0; y < h2; y++ ) { - for( x = 0; x < w2; x++ ) { - if ( (x + y) & 1 ) { - u8g.drawPixel(x,y); - u8g.drawPixel(x,y+h2); - u8g.drawPixel(x+w2,y); - u8g.drawPixel(x+w2,y+h2); - } - } - } -} - -// returns unadjusted FPS -uint16_t picture_loop_with_fps(void (*draw_fn)(void)) { - uint16_t FPS10 = 0; - uint32_t time; - - time = millis() + SECONDS*1000; - - // picture loop - do { - u8g.firstPage(); - do { - draw_fn(); - } while( u8g.nextPage() ); - FPS10++; - flip_color = flip_color ^ 1; - } while( millis() < time ); - return FPS10; -} - -const char *convert_FPS(uint16_t fps) { - static char buf[6]; - strcpy(buf, u8g_u8toa( (uint8_t)(fps/10), 3)); - buf[3] = '.'; - buf[4] = (fps % 10) + '0'; - buf[5] = '\0'; - return buf; -} - -void show_result(const char *s, uint16_t fps) { - // assign default color value - if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } - else { - u8g.setColorIndex(draw_color); - } - u8g.setFont(u8g_font_8x13B); - u8g.firstPage(); - do { - u8g.drawStr(0,12, s); - u8g.drawStr(0,24, convert_FPS(fps)); - } while( u8g.nextPage() ); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - draw_color = 255; // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - draw_color = 3; // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - draw_color = 1; // pixel on - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } -} - -void loop(void) { - uint16_t fps; - fps = picture_loop_with_fps(draw_clip_test); - show_result("draw clip test", fps); - delay(5000); - fps = picture_loop_with_fps(draw_set_screen); - show_result("clear screen", fps); - delay(5000); - fps = picture_loop_with_fps(draw_char); - show_result("draw @", fps); - delay(5000); - fps = picture_loop_with_fps(draw_pixel); - show_result("draw pixel", fps); - delay(5000); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino deleted file mode 100644 index f159b8ddc2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/GraphicsTest/GraphicsTest.ino +++ /dev/null @@ -1,300 +0,0 @@ -/* - - GraphicsTest.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void u8g_prepare(void) { - u8g.setFont(u8g_font_6x10); - u8g.setFontRefHeightExtendedText(); - u8g.setDefaultForegroundColor(); - u8g.setFontPosTop(); -} - -void u8g_box_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawBox"); - u8g.drawBox(5,10,20,10); - u8g.drawBox(10+a,15,30,7); - u8g.drawStr( 0, 30, "drawFrame"); - u8g.drawFrame(5,10+30,20,10); - u8g.drawFrame(10+a,15+30,30,7); -} - -void u8g_disc_circle(uint8_t a) { - u8g.drawStr( 0, 0, "drawDisc"); - u8g.drawDisc(10,18,9); - u8g.drawDisc(24+a,16,7); - u8g.drawStr( 0, 30, "drawCircle"); - u8g.drawCircle(10,18+30,9); - u8g.drawCircle(24+a,16+30,7); -} - -void u8g_r_frame(uint8_t a) { - u8g.drawStr( 0, 0, "drawRFrame/Box"); - u8g.drawRFrame(5, 10,40,30, a+1); - u8g.drawRBox(50, 10,25,40, a+1); -} - -void u8g_string(uint8_t a) { - u8g.drawStr(30+a,31, " 0"); - u8g.drawStr90(30,31+a, " 90"); - u8g.drawStr180(30-a,31, " 180"); - u8g.drawStr270(30,31-a, " 270"); -} - -void u8g_line(uint8_t a) { - u8g.drawStr( 0, 0, "drawLine"); - u8g.drawLine(7+a, 10, 40, 55); - u8g.drawLine(7+a*2, 10, 60, 55); - u8g.drawLine(7+a*3, 10, 80, 55); - u8g.drawLine(7+a*4, 10, 100, 55); -} - -void u8g_triangle(uint8_t a) { - uint16_t offset = a; - u8g.drawStr( 0, 0, "drawTriangle"); - u8g.drawTriangle(14,7, 45,30, 10,40); - u8g.drawTriangle(14+offset,7-offset, 45+offset,30-offset, 57+offset,10-offset); - u8g.drawTriangle(57+offset*2,10, 45+offset*2,30, 86+offset*2,53); - u8g.drawTriangle(10+offset,40+offset, 45+offset,30+offset, 86+offset,53+offset); -} - -void u8g_ascii_1() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 1"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 32; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - -void u8g_ascii_2() { - char s[2] = " "; - uint8_t x, y; - u8g.drawStr( 0, 0, "ASCII page 2"); - for( y = 0; y < 6; y++ ) { - for( x = 0; x < 16; x++ ) { - s[0] = y*16 + x + 160; - u8g.drawStr(x*7, y*10+10, s); - } - } -} - -void u8g_extra_page(uint8_t a) -{ - if ( u8g.getMode() == U8G_MODE_HICOLOR || u8g.getMode() == U8G_MODE_R3G3B2) { - /* draw background (area is 128x128) */ - u8g_uint_t r, g, b; - b = a << 5; - for( g = 0; g < 64; g++ ) - { - for( r = 0; r < 64; r++ ) - { - u8g.setRGB(r<<2, g<<2, b ); - u8g.drawPixel(g, r); - } - } - u8g.setRGB(255,255,255); - u8g.drawStr( 66, 0, "Color Page"); - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - { - u8g.drawStr( 66, 0, "Gray Level"); - u8g.setColorIndex(1); - u8g.drawBox(0, 4, 64, 32); - u8g.drawBox(70, 20, 4, 12); - u8g.setColorIndex(2); - u8g.drawBox(0+1*a, 4+1*a, 64-2*a, 32-2*a); - u8g.drawBox(74, 20, 4, 12); - u8g.setColorIndex(3); - u8g.drawBox(0+2*a, 4+2*a, 64-4*a, 32-4*a); - u8g.drawBox(78, 20, 4, 12); - } - else - { - u8g.drawStr( 0, 12, "setScale2x2"); - u8g.setScale2x2(); - u8g.drawStr( 0, 6+a, "setScale2x2"); - u8g.undoScale(); - } -} - - -uint8_t draw_state = 0; - -void draw(void) { - u8g_prepare(); - switch(draw_state >> 3) { - case 0: u8g_box_frame(draw_state&7); break; - case 1: u8g_disc_circle(draw_state&7); break; - case 2: u8g_r_frame(draw_state&7); break; - case 3: u8g_string(draw_state&7); break; - case 4: u8g_line(draw_state&7); break; - case 5: u8g_triangle(draw_state&7); break; - case 6: u8g_ascii_1(); break; - case 7: u8g_ascii_2(); break; - case 8: u8g_extra_page(draw_state&7); break; - } -} - -void setup(void) { - - // flip screen, if required - //u8g.setRot180(); - - - pinMode(13, OUTPUT); - digitalWrite(13, HIGH); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // increase the state - draw_state++; - if ( draw_state >= 9*8 ) - draw_state = 0; - - // rebuild the picture after some delay - //delay(150); - -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.ino deleted file mode 100644 index f71bf8e4f0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/HelloWorld/HelloWorld.ino +++ /dev/null @@ -1,177 +0,0 @@ -/* - - HelloWorld.pde - - "Hello World!" example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - //u8g.setFont(u8g_font_osb21); - u8g.drawStr( 0, 22, "Hello World!"); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - u8g.setColorIndex(255); // white - } - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) { - u8g.setColorIndex(3); // max intensity - } - else if ( u8g.getMode() == U8G_MODE_BW ) { - u8g.setColorIndex(1); // pixel on - } - else if ( u8g.getMode() == U8G_MODE_HICOLOR ) { - u8g.setHiColorByRGB(255,255,255); - } -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(50); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.ino deleted file mode 100644 index d8ab6f0df1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Menu/Menu.ino +++ /dev/null @@ -1,273 +0,0 @@ -/* - - Menu.pde - - Simple Menu Selection - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The complete list of supported devices is here: http://code.google.com/p/u8glib/wiki/device - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -#define KEY_NONE 0 -#define KEY_PREV 1 -#define KEY_NEXT 2 -#define KEY_SELECT 3 -#define KEY_BACK 4 - -// DOGS102 shield configuration values -//uint8_t uiKeyPrev = 2; -//uint8_t uiKeyNext = 4; -//uint8_t uiKeySelect = 5; -//uint8_t uiKeyBack = 3; - -// DOGM128-Shield configuration values -// DOGXL60-Shield configuration values -uint8_t uiKeyPrev = 7; -uint8_t uiKeyNext = 3; -uint8_t uiKeySelect = 2; -uint8_t uiKeyBack = 8; - -uint8_t uiKeyCodeFirst = KEY_NONE; -uint8_t uiKeyCodeSecond = KEY_NONE; -uint8_t uiKeyCode = KEY_NONE; - - -void uiSetup(void) { - // configure input keys - - pinMode(uiKeyPrev, INPUT); // set pin to input - digitalWrite(uiKeyPrev, HIGH); // turn on pullup resistors - pinMode(uiKeyNext, INPUT); // set pin to input - digitalWrite(uiKeyNext, HIGH); // turn on pullup resistors - pinMode(uiKeySelect, INPUT); // set pin to input - digitalWrite(uiKeySelect, HIGH); // turn on pullup resistors - pinMode(uiKeyBack, INPUT); // set pin to input - digitalWrite(uiKeyBack, HIGH); // turn on pullup resistors -} - -void uiStep(void) { - uiKeyCodeSecond = uiKeyCodeFirst; - if ( digitalRead(uiKeyPrev) == LOW ) - uiKeyCodeFirst = KEY_PREV; - else if ( digitalRead(uiKeyNext) == LOW ) - uiKeyCodeFirst = KEY_NEXT; - else if ( digitalRead(uiKeySelect) == LOW ) - uiKeyCodeFirst = KEY_SELECT; - else if ( digitalRead(uiKeyBack) == LOW ) - uiKeyCodeFirst = KEY_BACK; - else - uiKeyCodeFirst = KEY_NONE; - - if ( uiKeyCodeSecond == uiKeyCodeFirst ) - uiKeyCode = uiKeyCodeFirst; - else - uiKeyCode = KEY_NONE; -} - - -#define MENU_ITEMS 4 -char *menu_strings[MENU_ITEMS] = { "First Line", "Second Item", "3333333", "abcdefg" }; - -uint8_t menu_current = 0; -uint8_t menu_redraw_required = 0; -uint8_t last_key_code = KEY_NONE; - - -void drawMenu(void) { - uint8_t i, h; - u8g_uint_t w, d; - - u8g.setFont(u8g_font_6x13); - u8g.setFontRefHeightText(); - u8g.setFontPosTop(); - - h = u8g.getFontAscent()-u8g.getFontDescent(); - w = u8g.getWidth(); - for( i = 0; i < MENU_ITEMS; i++ ) { - d = (w-u8g.getStrWidth(menu_strings[i]))/2; - u8g.setDefaultForegroundColor(); - if ( i == menu_current ) { - u8g.drawBox(0, i*h+1, w, h); - u8g.setDefaultBackgroundColor(); - } - u8g.drawStr(d, i*h, menu_strings[i]); - } -} - -void updateMenu(void) { - if ( uiKeyCode != KEY_NONE && last_key_code == uiKeyCode ) { - return; - } - last_key_code = uiKeyCode; - - switch ( uiKeyCode ) { - case KEY_NEXT: - menu_current++; - if ( menu_current >= MENU_ITEMS ) - menu_current = 0; - menu_redraw_required = 1; - break; - case KEY_PREV: - if ( menu_current == 0 ) - menu_current = MENU_ITEMS; - menu_current--; - menu_redraw_required = 1; - break; - } -} - - -void setup() { - // rotate screen, if required - // u8g.setRot180(); - - uiSetup(); // setup key detection and debounce algorithm - menu_redraw_required = 1; // force initial redraw -} - -void loop() { - - uiStep(); // check for key press - - if ( menu_redraw_required != 0 ) { - u8g.firstPage(); - do { - drawMenu(); - } while( u8g.nextPage() ); - menu_redraw_required = 0; - } - - updateMenu(); // update menu bar - -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.ino deleted file mode 100644 index edc9afa8c1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/PrintTest/PrintTest.ino +++ /dev/null @@ -1,160 +0,0 @@ -/* - - PrintTest.pde - - How to use the base class "Print" - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setPrintPos(0, 20); - // call procedure from base class, http://arduino.cc/en/Serial/Print - u8g.print("Hello World!"); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.ino deleted file mode 100644 index f4008138b9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Rotation/Rotation.ino +++ /dev/null @@ -1,188 +0,0 @@ -/* - - Rotation.pde - - Example code for RotXXX functions. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -uint8_t offset = 0; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.drawStr( 0+0, 20+0, "Hello!"); - u8g.drawStr( 0+2, 20+16, "Hello!"); - - u8g.drawBox(0, 0, 3, 3); - u8g.drawBox(u8g.getWidth()-6, 0, 6, 6); - u8g.drawBox(u8g.getWidth()-9, u8g.getHeight()-9, 9, 9); - u8g.drawBox(0, u8g.getHeight()-12, 12, 12); -} - -void setup(void) { -} - - -void rotate(void) { - static uint8_t dir = 0; - static unsigned long next_rotation = 0; - - if ( next_rotation < millis() ) - { - switch(dir) { - case 0: u8g.undoRotation(); break; - case 1: u8g.setRot90(); break; - case 2: u8g.setRot180(); break; - case 3: u8g.setRot270(); offset = ( offset + 1 ) & 0x0f; break; - } - - dir++; - dir &= 3; - next_rotation = millis(); - next_rotation += 1000; - } -} - -void loop(void) { - // screen rotation - rotate(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.ino deleted file mode 100644 index 5fc5d331fd..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Scale/Scale.ino +++ /dev/null @@ -1,177 +0,0 @@ -/* - - Scale.pde - - Example code for the 2x2 scale function. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.setFont(u8g_font_unifont); - u8g.setFontPosTop(); - u8g.drawStr(0, 1, "Hello"); - u8g.drawHLine(0, 1+14, 40); - u8g.setScale2x2(); // Scale up all draw procedures - u8g.drawStr(0, 12, "Hello"); // actual display position is (0,24) - u8g.drawHLine(0, 12+14, 40); // All other procedures are also affected - u8g.undoScale(); // IMPORTANT: Switch back to normal mode -} - -void setup(void) { - - // flip screen, if required - u8g.setRot180(); - - // set SPI backup if required - //u8g.setHardwareBackup(u8g_backup_avr_spi); - - // assign default color value - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) - u8g.setColorIndex(255); // white - else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) - u8g.setColorIndex(3); // max intensity - else if ( u8g.getMode() == U8G_MODE_BW ) - u8g.setColorIndex(1); // pixel on -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.ino deleted file mode 100644 index 3527808284..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/TextRotX/TextRotX.ino +++ /dev/null @@ -1,190 +0,0 @@ -/* - - TextRotX.pde - - Text rotation example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -// graphic commands to redraw the complete screen should be placed here -void draw(void) { - u8g_uint_t mx, my; - - mx = u8g.getWidth(); - mx >>= 1; - - my = u8g.getHeight(); - my >>= 1; - - u8g.drawStr( mx, my, "Ag"); - u8g.drawStr90( mx, my, "Ag"); - u8g.drawStr180( mx, my, "Ag"); - u8g.drawStr270( mx, my, "Ag"); -} - -void setup(void) { - u8g.setFont(u8g_font_9x18); -} - -void change_font_pos(void) { - static uint8_t dir = 0; - static unsigned long next = 0; - - if ( next < millis() ) - { - switch(dir) { - case 0: u8g.setFontPosBottom(); break; - case 1: u8g.setFontPosBaseline(); break; - case 2: u8g.setFontPosCenter(); break; - case 3: u8g.setFontPosTop(); break; - } - - dir++; - dir &= 3; - next = millis(); - next += 1000; - } -} - -void loop(void) { - // change the font position - change_font_pos(); - - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(100); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino deleted file mode 100644 index 9ce10e9416..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WSetup/Touch4WSetup.ino +++ /dev/null @@ -1,348 +0,0 @@ -/* - - Touch4WSetup.pde - - Use this example to figure out the ranges for of the active area of a 4-wire resistive - touch panel. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//================================================================ -// Setup 4-Wire Resistive Touch Panel - -uint8_t tp_left = A3; -uint8_t tp_right = A5; -uint8_t tp_top = A4; -uint8_t tp_bottom = A2; - -#define X_START 120 -#define X_END 140 -#define Y_START 120 -#define Y_END 140 - -#define PULLUP_THRESHOLD 235 - -//================================================================ -// Touch Panel Code - -/* touch panel dimension */ -struct tpd_struct -{ - /* raw value */ - uint8_t raw; - - /* calibration values */ - uint8_t start; - uint8_t end; - - /* user values */ - uint8_t range; /* result will have range fron 0..range (including the value of range) */ - - uint8_t result; /* output value: position [0...range] */ - uint8_t is_pressed; /* output value: pressed (=1) or not pressed (=0) */ - uint8_t is_update; /* will be set to 1 if result or is_pressed has been updated */ -}; - -struct tp_struct -{ - struct tpd_struct x; - struct tpd_struct y; - uint8_t is_pressed; /* combination of x.is_pressed && y.is_pressed */ - uint8_t is_update; -}; - -struct tp_struct tp; - -/* map raw value to 0...range (result) */ -void tpd_map_touch_position(struct tpd_struct *d, uint8_t raw) -{ - uint8_t is_pressed; - uint16_t p; - uint8_t start, end; - - d->raw = raw; - - start = d->start; - end = d->end; - - /* check if position is within active area; store result in "is_pressed" */ - is_pressed = 1; - if ( raw >= PULLUP_THRESHOLD ) - { - d->result = 0; - is_pressed = 0; - } - else - { - /* update start and end */ - if ( raw < start ) - { - start = raw; - d->start = raw; - } - if ( raw > end ) - { - end = raw; - d->end = raw; - } - } - - /* store "is_pressed" in the global structure, set update flag */ - if ( d->is_pressed != is_pressed ) - d->is_update = 1; - d->is_pressed = is_pressed; - - /* map "raw" value into target range */ - if ( is_pressed != 0 ) - { - p = raw; - p -= start; - p *= d->range; - end -= start; - p /= end; - - if ( d->result != p ) - d->is_update = 1; - d->result = p; - } -} - -void tp_Init(uint8_t width, uint8_t height) -{ - tp.x.start = X_START; - tp.x.end = X_END; - tp.x.range = width-1; - - tp.y.start = Y_START; - tp.y.end = Y_END; - tp.y.range = height-1; - - tp.is_update = 1; -} - -void setTouchRawValues(uint8_t x, uint8_t y) -{ - tpd_map_touch_position(&(tp.x), x); - tpd_map_touch_position(&(tp.y), y); - - tp.is_pressed = tp.x.is_pressed && tp.y.is_pressed; - if ( tp.x.is_update || tp.y.is_update ) - tp.is_update = 1; -} - - -uint8_t getTouchPos(uint8_t hiPin, uint8_t lowPin, uint8_t sensePin, uint8_t dcPin) -{ - uint8_t val; - pinMode(dcPin, INPUT); - pinMode(sensePin, INPUT_PULLUP); - pinMode(hiPin, OUTPUT); - pinMode(lowPin, OUTPUT); - - digitalWrite(hiPin, HIGH); - digitalWrite(lowPin, LOW); - delay(10); - val = analogRead(sensePin) >> 2; - pinMode(hiPin, INPUT); - pinMode(lowPin, INPUT); - delay(10); - return val; -} - -void updateTouchPanel(void) -{ - uint8_t tp_raw_x; - uint8_t tp_raw_y; - - tp_raw_x = getTouchPos(tp_right, tp_left, tp_bottom, tp_top); - tp_raw_y = getTouchPos(tp_top, tp_bottom, tp_left, tp_right); - - setTouchRawValues(tp_raw_x, tp_raw_y); -} - -//================================================================ -// graphics output and picture loop - -void center(u8g_uint_t y, const char *str) -{ - u8g_uint_t x; - x = u8g.getWidth(); - x -= u8g.getStrWidth(str); - x /= 2; - u8g.drawStr(x, y, str); -} - - -void draw(void) { - u8g.setFont(u8g_font_6x10); - center( 10, "Touch Panel Setup"); - u8g.setPrintPos(0, 20); u8g.print("x_start=");u8g.print((int)tp.x.start);u8g.print(" x_end=");u8g.print((int)tp.x.end); - u8g.setPrintPos(0, 30); u8g.print("y_start=");u8g.print((int)tp.y.start);u8g.print(" y_end=");u8g.print((int)tp.y.end); - u8g.setPrintPos(0, 40); u8g.print("x=");u8g.print((int)tp.x.raw); - u8g.setPrintPos(0, 50); u8g.print("y=");u8g.print((int)tp.y.raw); -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - u8g.setCursorFont(u8g_font_cursor); - u8g.setCursorStyle(32); - - tp_Init(u8g.getWidth(), u8g.getHeight()); - - tp.is_update = 1; -} - -void loop(void) { - - // update touch panel and handle return values - updateTouchPanel(); - - if ( tp.is_pressed != 0 ) - u8g.enableCursor(); - else - u8g.disableCursor(); - - u8g.setCursorPos(tp.x.result, u8g.getHeight()-tp.y.result-1); - - // picture loop - if ( tp.is_update != 0 ) - { - tp.is_update = 0; - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - } - -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino deleted file mode 100644 index ebe15838f3..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/Touch4WTest/Touch4WTest.ino +++ /dev/null @@ -1,335 +0,0 @@ -/* - - Touch4WTest.pde - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//================================================================ -// Setup 4-Wire Resistive Touch Panel - -uint8_t tp_left = A3; -uint8_t tp_right = A5; -uint8_t tp_top = A4; -uint8_t tp_bottom = A2; - -/* Run "Touch4WSetup" and enter values here */ -#define X_START 64 -#define X_END 200 -#define Y_START 105 -#define Y_END 160 - -//================================================================ -// Touch Panel Code - -/* touch panel dimension */ -struct tpd_struct -{ - /* raw value */ - uint8_t raw; - - /* calibration values */ - uint8_t start; - uint8_t end; - - /* user values */ - uint8_t range; /* result will have range fron 0..range (including the value of range) */ - - uint8_t result; /* output value: position [0...range] */ - uint8_t is_pressed; /* output value: pressed (=1) or not pressed (=0) */ - uint8_t is_update; /* will be set to 1 if result or is_pressed has been updated */ -}; - -struct tp_struct -{ - struct tpd_struct x; - struct tpd_struct y; - uint8_t is_pressed; /* combination of x.is_pressed && y.is_pressed */ - uint8_t is_update; -}; - -struct tp_struct tp; - -/* map raw value to 0...range (result) */ -void tpd_map_touch_position(struct tpd_struct *d, uint8_t raw) -{ - uint8_t is_pressed; - uint16_t p; - uint8_t start, end; - - d->raw = raw; - - start = d->start; - end = d->end; - - /* check if position is within active area; store result in "is_pressed" */ - is_pressed = 1; - if ( raw < start ) - { - d->result = 0; - is_pressed = 0; - } - if ( raw >= end ) - { - d->result = d->range; - is_pressed = 0; - } - - /* store "is_pressed" in the global structure, set update flag */ - if ( d->is_pressed != is_pressed ) - d->is_update = 1; - d->is_pressed = is_pressed; - - /* map "raw" value into target range */ - if ( is_pressed != 0 ) - { - p = raw; - p -= start; - p *= d->range; - end -= start; - p /= end; - - if ( d->result != p ) - d->is_update = 1; - d->result = p; - } -} - -void tp_Init(uint8_t width, uint8_t height) -{ - tp.x.start = X_START; - tp.x.end = X_END; - tp.x.range = width-1; - - tp.y.start = Y_START; - tp.y.end = Y_END; - tp.y.range = height-1; - - tp.is_update = 1; -} - -void setTouchRawValues(uint8_t x, uint8_t y) -{ - tpd_map_touch_position(&(tp.x), x); - tpd_map_touch_position(&(tp.y), y); - - tp.is_pressed = tp.x.is_pressed && tp.y.is_pressed; - if ( tp.x.is_update || tp.y.is_update ) - tp.is_update = 1; -} - - -uint8_t getTouchPos(uint8_t hiPin, uint8_t lowPin, uint8_t sensePin, uint8_t dcPin) -{ - uint8_t val; - pinMode(dcPin, INPUT); - pinMode(sensePin, INPUT_PULLUP); - pinMode(hiPin, OUTPUT); - pinMode(lowPin, OUTPUT); - - digitalWrite(hiPin, HIGH); - digitalWrite(lowPin, LOW); - delay(10); - val = analogRead(sensePin) >> 2; - pinMode(hiPin, INPUT); - pinMode(lowPin, INPUT); - delay(10); - return val; -} - -void updateTouchPanel(void) -{ - uint8_t tp_raw_x; - uint8_t tp_raw_y; - - tp_raw_x = getTouchPos(tp_right, tp_left, tp_bottom, tp_top); - tp_raw_y = getTouchPos(tp_top, tp_bottom, tp_left, tp_right); - - setTouchRawValues(tp_raw_x, tp_raw_y); -} - -//================================================================ -// graphics output and picture loop - -void center(u8g_uint_t y, const char *str) -{ - u8g_uint_t x; - x = u8g.getWidth(); - x -= u8g.getStrWidth(str); - x /= 2; - u8g.drawStr(x, y, str); -} - - -void draw(void) { - u8g.setFont(u8g_font_6x10); - center( 10, "Touch Panel Test"); - if ( tp.is_pressed != 0 ) - { - u8g.setPrintPos(0, 20); u8g.print("x=");u8g.print((int)tp.x.result); - u8g.setPrintPos(0, 30); u8g.print("y=");u8g.print((int)(u8g.getHeight()-tp.y.result-1)); - //u8g.setPrintPos(0, 40); u8g.print("x: ");u8g.print((int)tp.x.start);u8g.print("..");u8g.print((int)tp.x.end); - //u8g.setPrintPos(0, 50); u8g.print("y: ");u8g.print((int)tp.y.start);u8g.print("..");u8g.print((int)tp.y.end); - } -} - -void setup(void) { - - // flip screen, if required - // u8g.setRot180(); - u8g.setCursorFont(u8g_font_cursor); - u8g.setCursorStyle(32); - - tp_Init(u8g.getWidth(), u8g.getHeight()); -} - -void loop(void) { - - // update touch panel and handle return values - updateTouchPanel(); - - if ( tp.is_pressed != 0 ) - u8g.enableCursor(); - else - u8g.disableCursor(); - - u8g.setCursorPos(tp.x.result, u8g.getHeight()-tp.y.result-1); - - // picture loop - if ( tp.is_update != 0 ) { - tp.is_update = 0; - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - } - -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.ino deleted file mode 100644 index 151542dcf8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/U8gLogo/U8gLogo.ino +++ /dev/null @@ -1,230 +0,0 @@ -/* - - U8gLogo.pde - - Put the U8GLIB logo on the display. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -//#define MINI_LOGO - -void drawColorBox(void) -{ - u8g_uint_t w,h; - u8g_uint_t r, g, b; - - w = u8g.getWidth()/32; - h = u8g.getHeight()/8; - for( b = 0; b < 4; b++ ) - for( g = 0; g < 8; g++ ) - for( r = 0; r < 8; r++ ) - { - u8g.setColorIndex((r<<5) | (g<<2) | b ); - u8g.drawBox(g*w + b*w*8, r*h, w, h); - } -} - -void drawLogo(uint8_t d) -{ -#ifdef MINI_LOGO - u8g.setFont(u8g_font_gdr17r); - u8g.drawStr(0+d, 22+d, "U"); - u8g.setFont(u8g_font_gdr20n); - u8g.drawStr90(17+d,8+d,"8"); - u8g.setFont(u8g_font_gdr17r); - u8g.drawStr(39+d,22+d,"g"); - - u8g.drawHLine(2+d, 25+d, 34); - u8g.drawVLine(32+d, 22+d, 12); -#else - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(0+d, 30+d, "U"); - u8g.setFont(u8g_font_gdr30n); - u8g.drawStr90(23+d,10+d,"8"); - u8g.setFont(u8g_font_gdr25r); - u8g.drawStr(53+d,30+d,"g"); - - u8g.drawHLine(2+d, 35+d, 47); - u8g.drawVLine(45+d, 32+d, 12); -#endif -} - -void drawURL(void) -{ -#ifndef MINI_LOGO - u8g.setFont(u8g_font_4x6); - if ( u8g.getHeight() < 59 ) - { - u8g.drawStr(53,9,"code.google.com"); - u8g.drawStr(77,18,"/p/u8glib"); - } - else - { - u8g.drawStr(1,54,"code.google.com/p/u8glib"); - } -#endif -} - - -void draw(void) { - if ( u8g.getMode() == U8G_MODE_R3G3B2 ) { - drawColorBox(); - } - u8g.setColorIndex(1); - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) { - drawLogo(2); - u8g.setColorIndex(2); - drawLogo(1); - u8g.setColorIndex(3); - } - drawLogo(0); - drawURL(); - -} - -void setup(void) { - // flip screen, if required - //u8g.setRot180(); -} - -void loop(void) { - - // picture loop - u8g.firstPage(); - do { - draw(); - u8g.setColorIndex(1); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(200); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.ino deleted file mode 100644 index 65b1831872..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/examples/XBM/XBM.ino +++ /dev/null @@ -1,172 +0,0 @@ -/* - - XBM.pde - - drawXBM example code. - - >>> Before compiling: Please remove comment from the constructor of the - >>> connected graphics display (see below). - - Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "U8glib.h" - -// setup u8g object, please remove comment from one of the following constructor calls -// IMPORTANT NOTE: The following list is incomplete. The complete list of supported -// devices with all constructor calls is here: http://code.google.com/p/u8glib/wiki/device -//U8GLIB_NHD27OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD27OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_NHD31OLED_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGS102 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM132 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGM128_2X u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_ST7920_128X64_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_128X64_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_192X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_192X32_1X u8g(13, 11, 10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10 -//U8GLIB_ST7920_192X32_4X u8g(10); // SPI Com: SCK = en = 13, MOSI = rw = 11, CS = di = 10, HW SPI -//U8GLIB_ST7920_202X32_1X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 -//U8GLIB_ST7920_202X32_1X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_ST7920_202X32_4X u8g(18, 16, 17); // SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17 -//U8GLIB_LM6059 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_LM6063 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_BW u8g(10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_BW u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_DOGXL160_2X_GR u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8 -//U8GLIB_KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16 -//U8GLIB_LC7981_160X80 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_LC7981_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs=14 ,di=15,rw=17, reset = 16 -//U8GLIB_ILI9325D_320x240 u8g(18,17,19,U8G_PIN_NONE,16 ); // 8Bit Com: D0..D7: 0,1,2,3,4,5,6,7 en=wr=18, cs=17, rs=19, rd=U8G_PIN_NONE, reset = 16 -//U8GLIB_SBN1661_122X32 u8g(8,9,10,11,4,5,6,7,14,15, 17, U8G_PIN_NONE, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 cs1=14, cs2=15,di=17,rw=16,reset = 16 -//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new white HalTec OLED) -//U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI -//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send AC -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_ADAFRUIT_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1306_128X32 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED) -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI -//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK -//U8GLIB_SSD1309_128X64 u8g(13, 11, 10, 9); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_SSD1327_96X96_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_SSD1327_96X96_2X_GR u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGM240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGM240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_UC1611_DOGXL240 u8g(U8G_I2C_OPT_NONE); // I2C -//U8GLIB_UC1611_DOGXL240 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 -//U8GLIB_UC1611_DOGXL240 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11) -//U8GLIB_NHD_C12864 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_NHD_C12832 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(13, 11, 10, 9, 8); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_LD7032_60x32 u8g(11, 12, 9, 10, 8); // SPI Com: SCK = 11, MOSI = 12, CS = 9, A0 = 10, RST = 8 (SW SPI Nano Board) -//U8GLIB_UC1608_240X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64 u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_UC1608_240X64_2X u8g(10, 9, 8); // HW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, RST = 8 -//U8GLIB_T6963_240X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_240X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_T6963_128X64 u8g(8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7, cs=14, a0=15, wr=17, rd=18, reset=16 -//U8GLIB_HT1632_24X16 u8g(3, 2, 4); // WR = 3, DATA = 2, CS = 4 -//U8GLIB_SSD1351_128X128_332 u8g(13, 11, 8, 9, 7); // Arduino UNO: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(76, 75, 8, 9, 7); // Arduino DUE: SW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_332 u8g(8, 9, 7); // Arduino: HW SPI Com: SCK = 13, MOSI = 11, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(76, 75, 8, 9, 7); // Arduino DUE, SW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (http://electronics.ilsoft.co.uk/ArduinoShield.aspx) -//U8GLIB_SSD1351_128X128GH_332 u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) -//U8GLIB_SSD1351_128X128GH_HICOLOR u8g(8, 9, 7); // Arduino, HW SPI Com: SCK = 76, MOSI = 75, CS = 8, A0 = 9, RESET = 7 (Freetronics OLED) - -#define u8g_logo_width 38 -#define u8g_logo_height 24 -//static unsigned char u8g_logo_bits[] = { -static unsigned char u8g_logo_bits[] U8G_PROGMEM = { - 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0xe0, - 0xff, 0xff, 0x3f, 0xe3, 0xe1, 0xff, 0xff, 0x3f, 0xf3, 0xf1, 0xff, 0xff, - 0x3f, 0xf3, 0xf1, 0xfe, 0xbf, 0x37, 0xf3, 0x11, 0x1c, 0x1f, 0x30, 0xf3, - 0x01, 0x08, 0x8c, 0x20, 0xf3, 0x01, 0x00, 0xc0, 0x39, 0xf3, 0x81, 0xc7, - 0xc1, 0x39, 0xf3, 0xc1, 0xc7, 0xc9, 0x38, 0xf3, 0xc1, 0xc3, 0x19, 0x3c, - 0xe3, 0x89, 0x01, 0x98, 0x3f, 0xc7, 0x18, 0x00, 0x08, 0x3e, 0x0f, 0x3c, - 0x70, 0x1c, 0x30, 0x3f, 0xff, 0xfc, 0x87, 0x31, 0xff, 0xff, 0xbf, 0xc7, - 0x23, 0x01, 0x00, 0x00, 0xc6, 0x23, 0x03, 0x00, 0x00, 0x0e, 0x30, 0xff, - 0xff, 0x3f, 0x1f, 0x3c, 0xff, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0xff, 0x3f, - 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3f }; - -void draw(void) { - // graphic commands to redraw the complete screen should be placed here - u8g.drawXBMP( 0, 0, u8g_logo_width, u8g_logo_height, u8g_logo_bits); -} - -void setup(void) { - // flip screen, if required - // u8g.setRot180(); -} - -void loop(void) { - // picture loop - u8g.firstPage(); - do { - draw(); - } while( u8g.nextPage() ); - - // rebuild the picture after some delay - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/license.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/license.txt deleted file mode 100644 index f1a9615c7d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/license.txt +++ /dev/null @@ -1,81 +0,0 @@ - -The U8glib code (http://code.google.com/p/u8glib/) is licensed under the terms of -the new-bsd license (two-clause bsd license). -See also: http://www.opensource.org/licenses/bsd-license.php - -The repository and optionally the releases contain icons, which are -derived from the WPZOOM Developer Icon Set: -http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/ -WPZOOM Developer Icon Set by WPZOOM is licensed under a Creative Commons -Attribution-ShareAlike 3.0 Unported License. - -Fonts are licensed under different conditions. -See http://code.google.com/p/u8glib/wiki/fontgroup for -detailed information on the licensing conditions for each font. - -============ X11 Fonts COUR, HELV, NCEN, TIM, SYMB ============ - -For fonts derived from the following files, the license below applies. -COURB08.BDF COURB10.BDF COURB12.BDF COURB14.BDF COURB18.BDF -COURB24.BDF COURR08.BDF COURR10.BDF COURR12.BDF COURR14.BDF -COURR18.BDF COURR24.BDF HELVB08.BDF HELVB10.BDF HELVB12.BDF HELVB14.BDF -HELVB18.BDF HELVB24.BDF HELVR08.BDF HELVR10.BDF HELVR12.BDF HELVR14.BDF -HELVR18.BDF HELVR24.BDF NCENB08.BDF NCENB10.BDF NCENB12.BDF -NCENB14.BDF NCENB18.BDF NCENB24.BDF NCENR08.BDF NCENR10.BDF -NCENR12.BDF NCENR14.BDF NCENR18.BDF NCENR24.BDF SYMB08.BDF SYMB10.BDF -SYMB12.BDF SYMB14.BDF SYMB18.BDF SYMB24.BDF TIMB08.BDF TIMB10.BDF -TIMB12.BDF TIMB14.BDF TIMB18.BDF TIMB24.BDF TIMR08.BDF TIMR10.BDF -TIMR12.BDF TIMR14.BDF TIMR18.BDF TIMR24.BDF - -Copyright 1984-1989, 1994 Adobe Systems Incorporated. -Copyright 1988, 1994 Digital Equipment Corporation. - -Adobe is a trademark of Adobe Systems Incorporated which may be -registered in certain jurisdictions. -Permission to use these trademarks is hereby granted only in -association with the images described in this file. - -Permission to use, copy, modify, distribute and sell this software -and its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notices appear in all -copies and that both those copyright notices and this permission -notice appear in supporting documentation, and that the names of -Adobe Systems and Digital Equipment Corporation not be used in -advertising or publicity pertaining to distribution of the software -without specific, written prior permission. Adobe Systems and -Digital Equipment Corporation make no representations about the -suitability of this software for any purpose. It is provided "as -is" without express or implied warranty. - - -============ BSD License for U8glib Code ============ - -Universal 8bit Graphics Library (http://code.google.com/p/u8glib/) - -Copyright (c) 2011, olikraus@gmail.com -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c deleted file mode 100644 index f86bf0687e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/chessengine.c +++ /dev/null @@ -1,2392 +0,0 @@ -/* - chessengine.c - - "Little Rook Chess" (lrc) - - Port to u8g library - - chess for embedded 8-Bit controllers - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Note: - UNIX_MAIN --> unix console executable - - Current Rule Limitation - - no minor promotion, only "Queening" of the pawn - - threefold repetition is not detected (same board situation appears three times) - Note: Could be implemented, but requires tracking of the complete game - - Fifty-move rule is not checked (no pawn move, no capture within last 50 moves) - - Words - Ply a half move - - General Links - http://chessprogramming.wikispaces.com/ - - Arduino specific - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260055596 - - Prefixes - chess_ Generic Chess Application Interface - ce_ Chess engine, used internally, these function should not be called directly - cu_ Chess utility function - stack_ Internal function for stack handling - - Issues - 10.01.2011 - - castling to the right does not move the rook - --> done - - castling to the left: King can only move two squares - --> done - - 11.01.2011 - Next Steps: - - replace stack_NextCurrentPos with cu_NextPos, cleanup code according to the loop variable - --> done - - Castling: Need to check for fields under attack - --> done - - - Check for WIN / LOOSE situation, perhaps call ce_Eval() once on the top-level board setup - just after the real move - - cleanup cu_Move - --> almost done - - add some heuristics to the eval procedure - - add right side menu - --> done - - clean up chess_ManualMove - --> done - - finish menu (consider is_game_end, undo move) - - end condition: if KING is under attack and if KING can not move to a field which is under attack... - then the game is lost. What will be returned by the Eval procedure? is it -INF? - --> finished - - - reduce the use of variable color, all should be reduced to board_orientation and ply&1 - - - chess_GetNextMarked shoud make use of cu_NextPos - --> done - - chess_ManualMove: again cleanup, solve draw issue (KING is not in check and no legal moves are available) - --> done - 22.01.2011 - - simplify eval_t ce_Eval(void) - - position eval does not work, still moves side pawn :-( - maybe because all pieces are considered - --> done - -*/ - -#include "u8g.h" - -//#ifndef __unix__ -//#else -//#include -//#define U8G_NOINLINE -//#endif - -/* -SAN identifies each piece by a single upper case letter. The standard English -values: pawn = "P", knight = "N", bishop = "B", rook = "R", queen = "Q", and -king = "K". -*/ - -/* numbers for the various pieces */ -#define PIECE_NONE 0 -#define PIECE_PAWN 1 -#define PIECE_KNIGHT 2 -#define PIECE_BISHOP 3 -#define PIECE_ROOK 4 -#define PIECE_QUEEN 5 -#define PIECE_KING 6 - -/* color definitions */ -#define COLOR_WHITE 0 -#define COLOR_BLACK 1 - -/* a mask, which includes COLOR and PIECE number */ -#define COLOR_PIECE_MASK 0x01f - -#define CP_MARK_MASK 0x20 - -#define ILLEGAL_POSITION 255 - -/* This is the build in upper limit of the search stack */ -/* This value defines the amount of memory allocated for the search stack */ -/* The search depth of this chess engine can never exceed this value */ -#define STACK_MAX_SIZE 5 - -/* chess half move stack: twice the number of undo's, a user can do */ -#define CHM_USER_SIZE 6 - -/* the CHM_LIST_SIZE must be larger than the maximum search depth */ -/* the overall size of ste half move stack */ -#define CHM_LIST_SIZE (STACK_MAX_SIZE+CHM_USER_SIZE+2) - -typedef int16_t eval_t; /* a variable type to store results from the evaluation */ -//#define EVAL_T_LOST -32768 -#define EVAL_T_MIN -32767 -#define EVAL_T_MAX 32767 -//#define EVAL_T_WIN 32767 - -/* for maintainance of our own stack: this is the definition of one element on the stack */ -struct _stack_element_struct -{ - /* the current source position which is investigated */ - uint8_t current_pos; - uint8_t current_cp; - uint8_t current_color; /* COLOR_WHITE or COLOR_BLACK: must be predefines */ - - /* the move which belongs to that value, both values are game positions */ - uint8_t best_from_pos; - uint8_t best_to_pos; - /* the best value, which has been dicovered so far */ - eval_t best_eval; -}; -typedef struct _stack_element_struct stack_element_t; -typedef struct _stack_element_struct *stack_element_p; - -/* chess half move history */ -struct _chm_struct -{ - uint8_t main_cp; /* the main piece, which is moved */ - uint8_t main_src; /* the source position of the main piece */ - uint8_t main_dest; /* the destination of the main piece */ - - uint8_t other_cp; /* another piece: the captured one, the ROOK in case of castling or PIECE_NONE */ - uint8_t other_src; /* the delete position of other_cp. Often identical to main_dest except for e.p. and castling */ - uint8_t other_dest; /* only used for castling: ROOK destination pos */ - - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - /* this is the condition BEFORE the move was done */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - /* this is the condition BEFORE the move was done */ - uint8_t castling_possible; -}; - -typedef struct _chm_struct chm_t; -typedef struct _chm_struct *chm_p; - -/* little rook chess, main structure */ -struct _lrc_struct -{ - /* half-move (ply) counter: Counts the number of half-moves so far. Starts with 0 */ - /* the lowest bit is used to derive the color of the current player */ - /* will be set to zero in chess_SetupBoard() */ - uint8_t ply_count; - - /* the half move stack position counter, counts the number of elements in chm_list */ - uint8_t chm_pos; - - /* each element contains a colored piece, empty fields have value 0 */ - /* the field with index 0 is black (lower left) */ - uint8_t board[64]; - /* the position of the last pawn, which did a double move forward */ - /* this is required to check en passant conditions */ - /* this array can be indexed by the color of the current player */ - uint8_t pawn_dbl_move[2]; - - /* flags for the movement of rook and king; required for castling */ - /* a 1 means: castling is (still) possible */ - /* a 0 means: castling not possible */ - /* bit 0 left side white */ - /* bit 1 right side white */ - /* bit 2 left side black */ - /* bit 3 right side black */ - uint8_t castling_possible; - - /* board orientation */ - /* 0: white is below COLOR_WHITE */ - /* 1: black is below COLOR_BLACK */ - /* bascially, this can be used as a color */ - uint8_t orientation; - - /* exchange colors of the pieces */ - /* 0: white has an empty body, use this for bright background color */ - /* 1: black has an empty body, use this for dark backround color */ - uint8_t strike_out_color; - - /* 0, when the game is ongoing */ - /* 1, when the game is stopped (lost or draw) */ - uint8_t is_game_end; - /* the color of the side which lost the game */ - /* this value is only valid, when is_game_end is not 0 */ - /* values 0 and 1 represent WHITE and BLACK, 2 means a draw */ - uint8_t lost_side_color; - - - - /* checks are executed in ce_LoopRecur */ - /* these checks will put some marks on the board */ - /* this will be used by the interface to find out */ - /* legal moves */ - uint8_t check_src_pos; - uint8_t check_mode; /* CHECK_MODE_NONE, CHECK_MODE_MOVEABLE, CHECK_MODE_TARGET_MOVE */ - - - /* count of the attacking pieces, indexed by color */ - uint8_t find_piece_cnt[2]; - - /* sum of the attacking pieces, indexed by color */ - uint8_t find_piece_weight[2]; - - /* points to the current element of the search stack */ - /* this stack is NEVER empty. The value 0 points to the first element of the stack */ - /* actually "curr_depth" represent half-moves (plies) */ - uint8_t curr_depth; - uint8_t max_depth; - stack_element_p curr_element; - - /* allocated memory for the search stack */ - stack_element_t stack_memory[STACK_MAX_SIZE]; - - /* the half move stack, used for move undo and depth search, size is stored in chm_pos */ - chm_t chm_list[CHM_LIST_SIZE]; -}; -typedef struct _lrc_struct lrc_t; - -#define CHECK_MODE_NONE 0 -#define CHECK_MODE_MOVEABLE 1 -#define CHECK_MODE_TARGET_MOVE 2 - - - -/*==============================================================*/ -/* global variables */ -/*==============================================================*/ - -u8g_t *lrc_u8g; - -lrc_t lrc_obj; - - -/*==============================================================*/ -/* forward declarations */ -/*==============================================================*/ - -/* - apply no inline to some of the functions: - avr-gcc very often inlines functions, however not inline saves a lot of program memory! - On the other hand there are some really short procedures which should be inlined (like cp_GetColor) - These procedures are marked static to prevent the generation of the expanded procedure, which - also saves space. -*/ - -uint8_t stack_Push(uint8_t color) U8G_NOINLINE; -void stack_Pop(void) U8G_NOINLINE; -void stack_InitCurrElement(void) U8G_NOINLINE; -void stack_Init(uint8_t max) U8G_NOINLINE; -void stack_SetMove(eval_t val, uint8_t to_pos) U8G_NOINLINE; -uint8_t cu_NextPos(uint8_t pos) U8G_NOINLINE; -static uint8_t cu_gpos2bpos(uint8_t gpos); -static uint8_t cp_Construct(uint8_t color, uint8_t piece); -static uint8_t cp_GetPiece(uint8_t cp); -static uint8_t cp_GetColor(uint8_t cp); -uint8_t cp_GetFromBoard(uint8_t pos) U8G_NOINLINE; -void cp_SetOnBoard(uint8_t pos, uint8_t cp) U8G_NOINLINE; - -void cu_ClearBoard(void) U8G_NOINLINE; -void chess_SetupBoard(void) U8G_NOINLINE; -eval_t ce_Eval(void); - -void cu_ClearMoveHistory(void) U8G_NOINLINE; -void cu_ReduceHistoryByFullMove(void) U8G_NOINLINE; -void cu_UndoHalfMove(void) U8G_NOINLINE; -chm_p cu_PushHalfMove(void) U8G_NOINLINE; - - -void ce_CalculatePositionWeight(uint8_t pos); -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color); - -void chess_Thinking(void); -void ce_LoopPieces(void); - - -/*==============================================================*/ -/* search stack */ -/*==============================================================*/ - -/* get current element from stack */ -stack_element_p stack_GetCurrElement(void) -{ - return lrc_obj.curr_element; -} - -uint8_t stack_Push(uint8_t color) -{ - if ( lrc_obj.curr_depth == lrc_obj.max_depth ) - return 0; - lrc_obj.curr_depth++; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; - - /* change view for the evaluation */ - color ^= 1; - stack_GetCurrElement()->current_color = color; - - return 1; -} - -void stack_Pop(void) -{ - lrc_obj.curr_depth--; - lrc_obj.curr_element = lrc_obj.stack_memory+lrc_obj.curr_depth; -} - -/* reset the current element on the stack */ -void stack_InitCurrElement(void) -{ - stack_element_p e = stack_GetCurrElement(); - e->best_eval = EVAL_T_MIN; - e->best_from_pos = ILLEGAL_POSITION; - e->best_to_pos = ILLEGAL_POSITION; -} - -/* resets the search stack (and the check mode) */ -void stack_Init(uint8_t max) -{ - lrc_obj.curr_depth = 0; - lrc_obj.curr_element = lrc_obj.stack_memory; - lrc_obj.max_depth = max; - lrc_obj.check_mode = CHECK_MODE_NONE; - stack_InitCurrElement(); - stack_GetCurrElement()->current_color = lrc_obj.ply_count; - stack_GetCurrElement()->current_color &= 1; -} - -/* assign evaluation value and store the move, if this is the best move */ -/* assumes, that current_pos contains the source position */ -void stack_SetMove(eval_t val, uint8_t to_pos) -{ - stack_element_p e = stack_GetCurrElement(); - if ( e->best_eval < val ) - { - e->best_eval = val; - e->best_from_pos = e->current_pos; - e->best_to_pos = to_pos; - } -} - -/* - calculate next position on a 0x88 board - loop is constructed in this way: - i = 0; - do - { - ... - i = cu_NextPos(i); - } while( i != 0 ); - - next pos might be started with an illegal position like 255 -*/ -uint8_t cu_NextPos(uint8_t pos) -{ - /* calculate next gpos */ - pos++; - if ( ( pos & 0x08 ) != 0 ) - { - pos+= 0x10; - pos&= 0xf0; - } - if ( ( pos & 0x80 ) != 0 ) - pos = 0; - return pos; -} - -uint8_t cu_PrevPos(uint8_t pos) -{ - /* calculate prev gpos */ - pos--; - if ( ( pos & 0x80 ) != 0 ) - pos = 0x077; - else if ( ( pos & 0x08 ) != 0 ) - { - pos &= 0xf0; - pos |= 0x07; - } - return pos; -} - - -/*==============================================================*/ -/* position transltion */ -/*==============================================================*/ -/* - there are two positions - 1. game position (gpos): BCD encoded x-y values - 2. board position (bpos): a number between 0 and 63, only used to access the board. -*/ -/* - gpos: game position value - returns: board position - note: does not do any checks -*/ -static uint8_t cu_gpos2bpos(uint8_t gpos) -{ - uint8_t bpos = gpos; - bpos &= 0xf0; - bpos >>= 1; - gpos &= 0x0f; - bpos |= gpos; - return bpos; -} - -#define gpos_IsIllegal(gpos) ((gpos) & 0x088) - - -/*==============================================================*/ -/* colored piece handling */ -/*==============================================================*/ - -#define cp_IsMarked(cp) ((cp) & CP_MARK_MASK) - - -/* - piece: one of PIECE_xxx - color: COLOR_WHITE or COLOR_BLACK - - returns: A colored piece -*/ -static uint8_t cp_Construct(uint8_t color, uint8_t piece) -{ - color <<= 4; - color |= piece; - return color; -} - -/* inline is better than a macro */ -static uint8_t cp_GetPiece(uint8_t cp) -{ - cp &= 0x0f; - return cp; -} - -/* - we could use a macro: - #define cp_GetColor(cp) (((cp) >> 4)&1) - however, inlined functions are sometimes much better -*/ -static uint8_t cp_GetColor(uint8_t cp) -{ - cp >>= 4; - cp &= 1; - return cp; -} - -/* - pos: game position - returns the colored piece at the given position -*/ -uint8_t cp_GetFromBoard(uint8_t pos) -{ - return lrc_obj.board[cu_gpos2bpos(pos)]; -} - -/* - pos: game position - cp: colored piece -*/ -void cp_SetOnBoard(uint8_t pos, uint8_t cp) -{ - /*printf("cp_SetOnBoard gpos:%02x cp:%02x\n", pos, cp);*/ - lrc_obj.board[cu_gpos2bpos(pos)] = cp; -} - -/*==============================================================*/ -/* global board access */ -/*==============================================================*/ - -void cu_ClearBoard(void) -{ - uint8_t i; - /* clear the board */ - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] = PIECE_NONE; - - lrc_obj.ply_count = 0; - lrc_obj.orientation = COLOR_WHITE; - - lrc_obj.pawn_dbl_move[0] = ILLEGAL_POSITION; - lrc_obj.pawn_dbl_move[1] = ILLEGAL_POSITION; - - lrc_obj.castling_possible = 0x0f; - - lrc_obj.is_game_end = 0; - lrc_obj.lost_side_color = 0; - - /* clear half move history */ - cu_ClearMoveHistory(); - -} - -/* - test setup - white wins in one move -*/ -void chess_SetupBoardTest01(void) -{ - cu_ClearBoard(); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[7+5*8] = cp_Construct(COLOR_WHITE, PIECE_PAWN); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); -} - -/* setup the global board */ -void chess_SetupBoard(void) -{ - uint8_t i; - register uint8_t bp, wp; - - /* clear the board */ - cu_ClearBoard(); - - /* precronstruct pawns */ - wp = cp_Construct(COLOR_WHITE, PIECE_PAWN); - bp = cp_Construct(COLOR_BLACK, PIECE_PAWN); - - /* setup pawn */ - for( i = 0; i < 8; i++ ) - { - lrc_obj.board[i+8] = wp; - lrc_obj.board[i+6*8] = bp; - } - - /* assign remaining pieces */ - - lrc_obj.board[0] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - lrc_obj.board[1] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[2] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[3] = cp_Construct(COLOR_WHITE, PIECE_QUEEN); - lrc_obj.board[4] = cp_Construct(COLOR_WHITE, PIECE_KING); - lrc_obj.board[5] = cp_Construct(COLOR_WHITE, PIECE_BISHOP); - lrc_obj.board[6] = cp_Construct(COLOR_WHITE, PIECE_KNIGHT); - lrc_obj.board[7] = cp_Construct(COLOR_WHITE, PIECE_ROOK); - - lrc_obj.board[0+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - lrc_obj.board[1+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[2+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[3+7*8] = cp_Construct(COLOR_BLACK, PIECE_QUEEN); - lrc_obj.board[4+7*8] = cp_Construct(COLOR_BLACK, PIECE_KING); - lrc_obj.board[5+7*8] = cp_Construct(COLOR_BLACK, PIECE_BISHOP); - lrc_obj.board[6+7*8] = cp_Construct(COLOR_BLACK, PIECE_KNIGHT); - lrc_obj.board[7+7*8] = cp_Construct(COLOR_BLACK, PIECE_ROOK); - - //chess_SetupBoardTest01(); - -} - - - -/*==============================================================*/ -/* checks */ -/*==============================================================*/ - -/* - checks if the position is somehow illegal -*/ -uint8_t cu_IsIllegalPosition(uint8_t pos, uint8_t my_color) -{ - uint8_t board_cp; - /* check, if the position is offboard */ - if ( gpos_IsIllegal(pos) != 0 ) - return 1; - /* get the piece from the board */ - board_cp = cp_GetFromBoard(pos); - /* check if hit our own pieces */ - if ( board_cp != 0 ) - if ( cp_GetColor(board_cp) == my_color ) - return 1; - /* all ok, we could go to this position */ - return 0; -} - -/*==============================================================*/ -/* evaluation procedure */ -/*==============================================================*/ - -/* - basic idea is to return a value between EVAL_T_MIN and EVAL_T_MAX -*/ - -/* - the weight table uses the PIECE number as index: - #define PIECE_NONE 0 - #define PIECE_PAWN 1 - #define PIECE_KNIGHT 2 - #define PIECE_BISHOP 3 - #define PIECE_ROOK 4 - #define PIECE_QUEEN 5 - #define PIECE_KING 6 - the king itself is not counted -*/ -uint8_t ce_piece_weight[] = { 0, 1, 3, 3, 5, 9, 0 }; -uint8_t ce_pos_weight[] = { 0, 1, 1, 2, 2, 1, 1, 0}; -/* - evaluate the current situation on the global board -*/ -eval_t ce_Eval(void) -{ - uint8_t cp; - uint8_t is_my_king_present = 0; - uint8_t is_opposit_king_present = 0; - eval_t material_my_color = 0; - eval_t material_opposit_color = 0; - eval_t position_my_color = 0; - eval_t position_opposit_color = 0; - eval_t result; - uint8_t pos; - - pos = 0; - do - { - /* get colored piece from the board */ - cp = cp_GetFromBoard(pos); - - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - if ( stack_GetCurrElement()->current_color == cp_GetColor(cp) ) - { - /* this is our color */ - /* check if we found our king */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_my_king_present = 1; - material_my_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_my_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - else - { - /* this is the opposit color */ - if ( cp_GetPiece(cp) == PIECE_KING ) - is_opposit_king_present = 1; - material_opposit_color += ce_piece_weight[cp_GetPiece(cp)]; - if ( cp_GetPiece(cp) == PIECE_PAWN || cp_GetPiece(cp) == PIECE_KNIGHT ) - { - position_opposit_color += ce_pos_weight[pos&7]*ce_pos_weight[(pos>>4)&7]; - } - } - } - pos = cu_NextPos(pos); - } while( pos != 0 ); - - - /* decide if we lost or won the game */ - if ( is_my_king_present == 0 ) - return EVAL_T_MIN; /*_LOST*/ - if ( is_opposit_king_present == 0 ) - return EVAL_T_MAX; /*_WIN*/ - - /* here is the evaluation function */ - - result = material_my_color - material_opposit_color; - result <<= 3; - result += position_my_color - position_opposit_color; - return result; -} - -/*==============================================================*/ -/* move backup and restore */ -/*==============================================================*/ - - -/* this procedure must be called to keep the size as low as possible */ -/* if the chm_list is large enough, it could hold the complete history */ -/* but for an embedded controler... it is deleted for every engine search */ -void cu_ClearMoveHistory(void) -{ - lrc_obj.chm_pos = 0; -} - -void cu_ReduceHistoryByFullMove(void) -{ - uint8_t i; - while( lrc_obj.chm_pos > CHM_USER_SIZE ) - { - i = 0; - for(;;) - { - if ( i+2 >= lrc_obj.chm_pos ) - break; - lrc_obj.chm_list[i] = lrc_obj.chm_list[i+2]; - i++; - } - lrc_obj.chm_pos -= 2; - } -} - -void cu_UndoHalfMove(void) -{ - chm_p chm; - - if ( lrc_obj.chm_pos == 0 ) - return; - - lrc_obj.chm_pos--; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - - lrc_obj.pawn_dbl_move[0] = chm->pawn_dbl_move[0]; - lrc_obj.pawn_dbl_move[1] = chm->pawn_dbl_move[1]; - lrc_obj.castling_possible = chm->castling_possible; - - cp_SetOnBoard(chm->main_src, chm->main_cp); - cp_SetOnBoard(chm->main_dest, PIECE_NONE); - - if ( chm->other_src != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_src, chm->other_cp); - if ( chm->other_dest != ILLEGAL_POSITION ) - cp_SetOnBoard(chm->other_dest, PIECE_NONE); - -} - -/* - assumes, that the following members of the returned chm structure are filled - uint8_t main_cp; the main piece, which is moved - uint8_t main_src; the source position of the main piece - uint8_t main_dest; the destination of the main piece - - uint8_t other_cp; another piece: the captured one, the ROOK in case of castling or PIECE_NONE - uint8_t other_src; the delete position of other_cp. Often identical to main_dest except for e.p. and castling - uint8_t other_dest; only used for castling: ROOK destination pos - -*/ -chm_p cu_PushHalfMove(void) -{ - chm_p chm; - - chm = lrc_obj.chm_list+lrc_obj.chm_pos; - if ( lrc_obj.chm_pos < CHM_LIST_SIZE-1) - lrc_obj.chm_pos++; - - chm->pawn_dbl_move[0] = lrc_obj.pawn_dbl_move[0]; - chm->pawn_dbl_move[1] = lrc_obj.pawn_dbl_move[1]; - chm->castling_possible = lrc_obj.castling_possible; - return chm; -} - - -char chess_piece_to_char[] = "NBRQK"; - -/* - simple moves on empty field: Ka1-b2 - capture moves: Ka1xb2 - castling: 0-0 or 0-0-0 -*/ - -static void cu_add_pos(char *s, uint8_t pos) U8G_NOINLINE; - -static void cu_add_pos(char *s, uint8_t pos) -{ - *s = pos; - *s >>= 4; - *s += 'a'; - s++; - *s = pos; - *s &= 15; - *s += '1'; -} - -const char *cu_GetHalfMoveStr(uint8_t idx) -{ - chm_p chm; - static char buf[7]; /*Ka1-b2*/ - char *p = buf; - chm = lrc_obj.chm_list+idx; - - if ( cp_GetPiece(chm->main_cp) != PIECE_NONE ) - { - if ( cp_GetPiece(chm->main_cp) > PIECE_PAWN ) - { - *p++ = chess_piece_to_char[cp_GetPiece(chm->main_cp)-2]; - } - cu_add_pos(p, chm->main_src); - p+=2; - if ( cp_GetPiece(chm->other_cp) == PIECE_NONE ) - *p++ = '-'; - else - *p++ = 'x'; - cu_add_pos(p, chm->main_dest); - p+=2; - } - *p = '\0'; - return buf; -} - - - - - -/*==============================================================*/ -/* move */ -/*==============================================================*/ - -/* - Move a piece from source position to a destination on the board - This function - - does not perform any checking - - however it processes "en passant" and casteling - - backup the move and allow 1x undo - - 2011-02-05: - - fill pawn_dbl_move[] for double pawn moves - --> done - - Implement casteling - --> done - - en passant - --> done - - pawn conversion/promotion - --> done - - half-move backup - --> done - - cleanup everything, minimize variables - --> done -*/ - -void cu_Move(uint8_t src, uint8_t dest) -{ - /* start backup structure */ - chm_p chm = cu_PushHalfMove(); - - /* these are the values from the board at the positions, provided as arguments to this function */ - uint8_t cp_src, cp_dest; - - /* Maybe a second position is cleared and one additional location is set */ - uint8_t clr_pos2; - uint8_t set_pos2; - uint8_t set_cp2; - - /* get values from board */ - cp_src = cp_GetFromBoard(src); - cp_dest = cp_GetFromBoard(dest); - - /* fill backup structure */ - - chm->main_cp = cp_src; - chm->main_src = src; - chm->main_dest = dest; - - chm->other_cp = cp_dest; /* prepace capture backup */ - chm->other_src = dest; - chm->other_dest = ILLEGAL_POSITION; - - /* setup results as far as possible with some suitable values */ - - clr_pos2 = ILLEGAL_POSITION; /* for en passant and castling, two positions might be cleared */ - set_pos2 = ILLEGAL_POSITION; /* only used for castling */ - set_cp2 = PIECE_NONE; /* ROOK for castling */ - - /* check for PAWN */ - if ( cp_GetPiece(cp_src) == PIECE_PAWN ) - { - - /* double step: is the distance 2 rows */ - if ( (src - dest == 32) || ( dest - src == 32 ) ) - { - /* remember the destination position */ - lrc_obj.pawn_dbl_move[cp_GetColor(cp_src)] = dest; - } - - /* check if the PAWN is able to promote */ - else if ( (dest>>4) == 0 || (dest>>4) == 7 ) - { - /* do simple "queening" */ - cp_src &= ~PIECE_PAWN; - cp_src |= PIECE_QUEEN; - } - - /* is it en passant capture? */ - /* check for side move */ - else if ( ((src + dest) & 1) != 0 ) - { - /* check, if target field is empty */ - if ( cp_GetPiece(cp_dest) == PIECE_NONE ) - { - /* this is en passant */ - /* no further checking required, because legal moves are assumed here */ - /* however... the captured pawn position must be valid */ - clr_pos2 = lrc_obj.pawn_dbl_move[cp_GetColor(cp_src) ^ 1]; - chm->other_src = clr_pos2; - chm->other_cp = cp_GetFromBoard(clr_pos2); - } - } - } - - /* check for the KING */ - else if ( cp_GetPiece(cp_src) == PIECE_KING ) - { - /* disallow castling, if the KING has moved */ - if ( cp_GetColor(cp_src) == COLOR_WHITE ) - { - /* if white KING has moved, disallow castling for white */ - lrc_obj.castling_possible &= 0x0c; - } - else - { - /* if black KING has moved, disallow castling for black */ - lrc_obj.castling_possible &= 0x03; - } - - /* has it been castling to the left? */ - if ( src - dest == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src-1; - set_cp2 = cp_GetFromBoard(src-4); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src-4; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - } - - /* has it been castling to the right? */ - else if ( dest - src == 2 ) - { - /* let the ROOK move to pos2 */ - set_pos2 = src+1; - set_cp2 = cp_GetFromBoard(src+3); - - /* the ROOK must be cleared from the original position */ - clr_pos2 = src+3; - - chm->other_cp = set_cp2; - chm->other_src = clr_pos2; - chm->other_dest = set_pos2; - - } - - } - - /* check for the ROOK */ - else if ( cp_GetPiece(cp_src) == PIECE_ROOK ) - { - /* disallow white left castling */ - if ( src == 0x00 ) - lrc_obj.castling_possible &= ~0x01; - /* disallow white right castling */ - if ( src == 0x07 ) - lrc_obj.castling_possible &= ~0x02; - /* disallow black left castling */ - if ( src == 0x70 ) - lrc_obj.castling_possible &= ~0x04; - /* disallow black right castling */ - if ( src == 0x77 ) - lrc_obj.castling_possible &= ~0x08; - } - - - /* apply new board situation */ - - cp_SetOnBoard(dest, cp_src); - - if ( set_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(set_pos2, set_cp2); - - cp_SetOnBoard(src, PIECE_NONE); - - if ( clr_pos2 != ILLEGAL_POSITION ) - cp_SetOnBoard(clr_pos2, PIECE_NONE); - - -} - -/* - this subprocedure decides for evaluation of the current board situation or further (deeper) investigation - Argument pos is the new target position if the current piece - -*/ -uint8_t ce_LoopRecur(uint8_t pos) -{ - eval_t eval; - - /* 1. check if target position is occupied by the same player (my_color) */ - /* of if pos is somehow illegal or not valid */ - if ( cu_IsIllegalPosition(pos, stack_GetCurrElement()->current_color) != 0 ) - return 0; - - /* 2. move piece to the specified position, capture opponent piece if required */ - cu_Move(stack_GetCurrElement()->current_pos, pos); - - - /* 3. */ - /* if depth reached: evaluate */ - /* else: go down next level */ - /* no eval if there had been any valid half-moves, so the default value (MIN) will be returned. */ - if ( stack_Push(stack_GetCurrElement()->current_color) == 0 ) - { - eval = ce_Eval(); - } - else - { - /* init the element, which has been pushed */ - stack_InitCurrElement(); - /* start over with ntext level */ - ce_LoopPieces(); - /* get the best move from opponents view, so invert the result */ - eval = -stack_GetCurrElement()->best_eval; - stack_Pop(); - } - - /* 4. store result */ - stack_SetMove(eval, pos); - - /* 5. undo the move */ - cu_UndoHalfMove(); - - /* 6. check special modes */ - /* the purpose of these checks is to mark special pieces and positions on the board */ - /* these marks can be checked by the user interface to highlight special positions */ - if ( lrc_obj.check_mode != 0 ) - { - stack_element_p e = stack_GetCurrElement(); - if ( lrc_obj.check_mode == CHECK_MODE_MOVEABLE ) - { - cp_SetOnBoard(e->current_pos, e->current_cp | CP_MARK_MASK ); - } - else if ( lrc_obj.check_mode == CHECK_MODE_TARGET_MOVE ) - { - if ( e->current_pos == lrc_obj.check_src_pos ) - { - cp_SetOnBoard(pos, cp_GetFromBoard(pos) | CP_MARK_MASK ); - } - } - } - return 1; -} - -/*==============================================================*/ -/* move pieces which can move one or more steps into a direction */ -/*==============================================================*/ - -/* - subprocedure to generate various target positions for some pieces - special cases are handled in the piece specific sub-procedure - - Arguments: - d: a list of potential directions - is_multi_step: if the piece can only do one step (zero for KING and KNIGHT) -*/ -static const uint8_t ce_dir_offset_rook[] PROGMEM = { 1, 16, -16, -1, 0 }; -static const uint8_t ce_dir_offset_bishop[] PROGMEM = { 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_queen[] PROGMEM = { 1, 16, -16, -1, 15, 17, -17, -15, 0 }; -static const uint8_t ce_dir_offset_knight[] PROGMEM = {14, -14, 18, -18, 31, -31, 33, -33, 0}; - -void ce_LoopDirsSingleMultiStep(const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = stack_GetCurrElement()->current_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* - go further to ce_LoopRecur() - 0 will be returned if the target position is illegal or a piece of the own color - this is used to stop walking into one direction - */ - if ( ce_LoopRecur(loop_pos) == 0 ) - break; - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - break; - } while( is_multi_step ); - d++; - } -} - -void ce_LoopRook(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_rook, 1); -} - -void ce_LoopBishop(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_bishop, 1); -} - -void ce_LoopQueen(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 1); -} - -void ce_LoopKnight(void) -{ - ce_LoopDirsSingleMultiStep(ce_dir_offset_knight, 0); -} - - - -/*==============================================================*/ -/* move king */ -/*==============================================================*/ - -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) U8G_NOINLINE; - -/* - checks, if the king can do castling - - Arguments: - mask: the bit-mask for the global "castling possible" flag - direction: left castling: -1, right castling 1 - cnt: number of fields to be checked: 3 or 2 -*/ -uint8_t cu_IsKingCastling(uint8_t mask, int8_t direction, uint8_t cnt) -{ - uint8_t pos; - uint8_t opponent_color; - - /* check if the current board state allows castling */ - if ( (lrc_obj.castling_possible & mask) == 0 ) - return 0; /* castling not allowed */ - - /* get the position of the KING, could be white or black king */ - pos = stack_GetCurrElement()->current_pos; - - /* calculate the color of the opponent */ - opponent_color = 1; - opponent_color -= stack_GetCurrElement()->current_color; - - /* if the KING itself is given check... */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - - /* check if fields in the desired direction are emtpy */ - for(;;) - { - /* go to the next field */ - pos += direction; - /* check for a piece */ - if ( cp_GetPiece(cp_GetFromBoard(pos)) != PIECE_NONE ) - return 0; /* castling not allowed */ - - /* if some of the fields are under attack */ - if ( ce_GetPositionAttackWeight(pos, opponent_color) > 0 ) - return 0; - - cnt--; - if ( cnt == 0 ) - break; - } - return 1; /* castling allowed */ -} - -void ce_LoopKing(void) -{ - /* - there is an interessting timing problem in this procedure - it must be checked for castling first and as second step the normal - KING movement. If we would first check for normal moves, than - any marks might be overwritten by the ROOK in the case of castling. - */ - - /* castling (this must be done before checking normal moves (see above) */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - /* white left castling */ - if ( cu_IsKingCastling(1, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* white right castling */ - if ( cu_IsKingCastling(2, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - else - { - /* black left castling */ - if ( cu_IsKingCastling(4, -1, 3) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos-2); - } - /* black right castling */ - if ( cu_IsKingCastling(8, 1, 2) != 0 ) - { - /* check for attacked fields */ - ce_LoopRecur(stack_GetCurrElement()->current_pos+2); - } - } - - /* reuse queen directions */ - ce_LoopDirsSingleMultiStep(ce_dir_offset_queen, 0); -} - - -/*==============================================================*/ -/* move pawn */ -/*==============================================================*/ - -/* - doppelschritt: nur von der grundlinie aus, beide (!) felder vor dem bauern mssen frei sein - en passant: nur unmittelbar nachdem ein doppelschritt ausgefhrt wurde. -*/ -void ce_LoopPawnSideCapture(uint8_t loop_pos) -{ - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* get the piece from the board */ - /* if the field is NOT empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) != PIECE_NONE ) - { - /* normal capture */ - ce_LoopRecur(loop_pos); - /* TODO: check for pawn conversion/promotion */ - } - else - { - /* check conditions for en passant capture */ - if ( stack_GetCurrElement()->current_color == COLOR_WHITE ) - { - if ( lrc_obj.pawn_dbl_move[COLOR_BLACK]+16 == loop_pos ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - else - { - if ( lrc_obj.pawn_dbl_move[COLOR_WHITE] == loop_pos+16 ) - { - ce_LoopRecur(loop_pos); - /* note: pawn conversion/promotion can not occur */ - } - } - } - } -} - -void ce_LoopPawn(void) -{ - uint8_t initial_pos = stack_GetCurrElement()->current_pos; - uint8_t my_color = stack_GetCurrElement()->current_color; - - uint8_t loop_pos; - uint8_t line; - - /* one step forward */ - - loop_pos = initial_pos; - line = initial_pos; - line >>= 4; - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( gpos_IsIllegal(loop_pos) == 0 ) - { - /* if the field is empty */ - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* TODO: check for and loop through piece conversion/promotion */ - ce_LoopRecur(loop_pos); - - /* second step forward */ - - /* if pawn is on his starting line */ - if ( (my_color == COLOR_WHITE && line == 1) || (my_color == COLOR_BLACK && line == 6 ) ) - { - /* the place before the pawn is not occupied, so we can do double moves, see above */ - - if ( my_color == COLOR_WHITE ) - loop_pos += 16; - else - loop_pos -= 16; - if ( cp_GetPiece(cp_GetFromBoard(loop_pos)) == PIECE_NONE ) - { - /* this is a special case, other promotions of the pawn can not occur */ - ce_LoopRecur(loop_pos); - } - } - } - } - - /* capture */ - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 15; - else - loop_pos -= 15; - ce_LoopPawnSideCapture(loop_pos); - - - loop_pos = initial_pos; - if ( my_color == COLOR_WHITE ) - loop_pos += 17; - else - loop_pos -= 17; - ce_LoopPawnSideCapture(loop_pos); -} - -/*==============================================================*/ -/* attacked */ -/*==============================================================*/ - -/* - from a starting position, search for a piece, that might jump to that postion. - return: - the two global variables - lrc_obj.find_piece_weight[0]; - lrc_obj.find_piece_weight[1]; - will be increased by the weight of the attacked pieces of that color. - it is usually required to reset these global variables to zero, before using - this function. -*/ - -void ce_FindPieceByStep(uint8_t start_pos, uint8_t piece, const uint8_t *d, uint8_t is_multi_step) -{ - uint8_t loop_pos, cp; - - /* with all directions */ - for(;;) - { - if ( u8g_pgm_read(d) == 0 ) - break; - - /* start again from the initial position */ - loop_pos = start_pos; - - /* check direction */ - do - { - /* check next position into one direction */ - loop_pos += u8g_pgm_read(d); - - /* check if the board boundary has been crossed */ - if ( (loop_pos & 0x088) != 0 ) - break; - - /* get the colored piece from the board */ - cp = cp_GetFromBoard(loop_pos); - - /* stop if we had hit another piece */ - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - /* if it is the piece we are looking for, then add the weight */ - if ( cp_GetPiece(cp) == piece ) - { - lrc_obj.find_piece_weight[cp_GetColor(cp)] += ce_piece_weight[piece]; - lrc_obj.find_piece_cnt[cp_GetColor(cp)]++; - } - /* in any case, break out of the inner loop */ - break; - } - } while( is_multi_step ); - d++; - } -} - -void ce_FindPawnPiece(uint8_t dest_pos, uint8_t color) -{ - uint8_t cp; - /* check if the board boundary has been crossed */ - if ( (dest_pos & 0x088) == 0 ) - { - /* get the colored piece from the board */ - cp = cp_GetFromBoard(dest_pos); - /* only if there is a pawn of the matching color */ - if ( cp_GetPiece(cp) == PIECE_PAWN ) - { - if ( cp_GetColor(cp) == color ) - { - /* the weight of the PAWN */ - lrc_obj.find_piece_weight[color] += 1; - lrc_obj.find_piece_cnt[color]++; - } - } - } -} - - -/* - find out, which pieces do attack a specified field - used to - - check if the KING can do castling - - check if the KING must move - - may be used in the eval procedure ... once... - - the result is stored in the global array - uint8_t lrc_obj.find_piece_weight[2]; - which is indexed with the color. - lrc_obj.find_piece_weight[COLOR_WHITE] is the sum of all white pieces - which can directly move to this field. - - example: - if the black KING is at "pos" and lrc_obj.find_piece_weight[COLOR_WHITE] is not zero - (after executing ce_CalculatePositionWeight(pos)) then the KING must be protected or moveed, because - the KING was given check. -*/ - -void ce_CalculatePositionWeight(uint8_t pos) -{ - - lrc_obj.find_piece_weight[0] = 0; - lrc_obj.find_piece_weight[1] = 0; - lrc_obj.find_piece_cnt[0] = 0; - lrc_obj.find_piece_cnt[1] = 0; - - if ( (pos & 0x088) != 0 ) - return; - - ce_FindPieceByStep(pos, PIECE_ROOK, ce_dir_offset_rook, 1); - ce_FindPieceByStep(pos, PIECE_BISHOP, ce_dir_offset_bishop, 1); - ce_FindPieceByStep(pos, PIECE_QUEEN, ce_dir_offset_queen, 1); - ce_FindPieceByStep(pos, PIECE_KNIGHT, ce_dir_offset_knight, 0); - ce_FindPieceByStep(pos, PIECE_KING, ce_dir_offset_queen, 0); - - ce_FindPawnPiece(pos+17, COLOR_BLACK); - ce_FindPawnPiece(pos+15, COLOR_BLACK); - ce_FindPawnPiece(pos-17, COLOR_WHITE); - ce_FindPawnPiece(pos-15, COLOR_WHITE); -} - -/* - calculate the summed weight of pieces with specified color which can move to a specified position - - argument: - pos: the position which should be analysed - color: the color of those pieces which should be analysed - e.g. if a black piece is at 'pos' and 'color' is white then this procedure returns the white atting count -*/ -uint8_t ce_GetPositionAttackWeight(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_weight[color]; -} - -uint8_t ce_GetPositionAttackCount(uint8_t pos, uint8_t color) -{ - ce_CalculatePositionWeight(pos); - return lrc_obj.find_piece_cnt[color]; -} - - -/*==============================================================*/ -/* depth search starts here: loop over all pieces of the current color on the board */ -/*==============================================================*/ - -void ce_LoopPieces(void) -{ - stack_element_p e = stack_GetCurrElement(); - /* start with lower left position (A1) */ - e->current_pos = 0; - do - { - e->current_cp = cp_GetFromBoard(e->current_pos); - /* check if the position on the board is empty */ - if ( e->current_cp != 0 ) - { - /* only generate moves for the current color */ - if ( e->current_color == cp_GetColor(e->current_cp) ) - { - chess_Thinking(); - - /* find out which piece is used */ - switch(cp_GetPiece(e->current_cp)) - { - case PIECE_NONE: - break; - case PIECE_PAWN: - ce_LoopPawn(); - break; - case PIECE_KNIGHT: - ce_LoopKnight(); - break; - case PIECE_BISHOP: - ce_LoopBishop(); - break; - case PIECE_ROOK: - ce_LoopRook(); - break; - case PIECE_QUEEN: - ce_LoopQueen(); - break; - case PIECE_KING: - ce_LoopKing(); - break; - } - } - } - e->current_pos = cu_NextPos(e->current_pos); - } while( e->current_pos != 0 ); -} - -/*==============================================================*/ -/* user interface */ -/*==============================================================*/ - -/* -eval_t chess_EvalCurrBoard(uint8_t color) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = color; - ce_LoopPieces(); - return stack_GetCurrElement()->best_eval; -} -*/ - -/* clear any marks on the board */ -void chess_ClearMarks(void) -{ - uint8_t i; - for( i = 0; i < 64; i++ ) - lrc_obj.board[i] &= ~CP_MARK_MASK; -} - -/* - Mark all pieces which can do moves. This is done by setting flags on the global board -*/ -void chess_MarkMovable(void) -{ - stack_Init(0); - //stack_GetCurrElement()->current_color = color; - lrc_obj.check_mode = CHECK_MODE_MOVEABLE; - ce_LoopPieces(); -} - -/* - Checks, if the piece can move from src_pos to dest_pos - - src_pos: The game position of a piece on the chess board -*/ -void chess_MarkTargetMoves(uint8_t src_pos) -{ - stack_Init(0); - stack_GetCurrElement()->current_color = cp_GetColor(cp_GetFromBoard(src_pos)); - lrc_obj.check_src_pos = src_pos; - lrc_obj.check_mode = CHECK_MODE_TARGET_MOVE; - ce_LoopPieces(); -} - -/* - first call should start with 255 - this procedure will return 255 if - - there are no marks at all - - it has looped over all marks once -*/ -uint8_t chess_GetNextMarked(uint8_t arg, uint8_t is_prev) -{ - uint8_t i; - uint8_t pos = arg; - for(i = 0; i < 64; i++) - { - if ( is_prev != 0 ) - pos = cu_PrevPos(pos); - else - pos = cu_NextPos(pos); - if ( arg != 255 && pos == 0 ) - return 255; - if ( cp_IsMarked(cp_GetFromBoard(pos)) ) - return pos; - } - return 255; -} - - -/* make a manual move: this is a little bit more than cu_Move() */ -void chess_ManualMove(uint8_t src, uint8_t dest) -{ - uint8_t cp; - - /* printf("chess_ManualMove %02x -> %02x\n", src, dest); */ - - /* if all other things fail, this is the place where the game is to be decided: */ - /* ... if the KING is captured */ - cp = cp_GetFromBoard(dest); - if ( cp_GetPiece(cp) == PIECE_KING ) - { - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = cp_GetColor(cp); - } - - /* clear ply history here, to avoid memory overflow */ - /* may be the last X moves can be kept here */ - cu_ReduceHistoryByFullMove(); - /* perform the move on the board */ - cu_Move(src, dest); - - /* update en passant double move positions: en passant position is removed after two half moves */ - lrc_obj.pawn_dbl_move[lrc_obj.ply_count&1] = ILLEGAL_POSITION; - - /* update the global half move counter */ - lrc_obj.ply_count++; - - - /* make a small check about the end of the game */ - /* use at least depth 1, because we must know if the king can still move */ - /* this is: King moves at level 0 and will be captured at level 1 */ - /* so we check if the king can move and will not be captured at search level 1 */ - - stack_Init(1); - ce_LoopPieces(); - - /* printf("chess_ManualMove/analysis best_from_pos %02x -> best_to_pos %02x\n", stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); */ - - /* analyse the eval result */ - - /* check if the other player has any moves left */ - if ( stack_GetCurrElement()->best_from_pos == ILLEGAL_POSITION ) - { - uint8_t color; - /* conditions: */ - /* 1. no King, should never happen, opposite color has won */ - /* this is already checked above at the beginning if this procedure */ - /* 2. King is under attack, opposite color has won */ - /* 3. King is not under attack, game is a draw */ - - uint8_t i = 0; - color = lrc_obj.ply_count; - color &= 1; - do - { - cp = cp_GetFromBoard(i); - /* look for the King */ - if ( cp_GetPiece(cp) == PIECE_KING ) - { - if ( cp_GetColor(cp) == color ) - { - /* check if KING is attacked */ - if ( ce_GetPositionAttackCount(i, color^1) != 0 ) - { - /* KING is under attack (check) and can not move: Game is lost */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = color; - } - else - { - /* KING is NOT under attack (check) but can not move: Game is a draw */ - lrc_obj.is_game_end = 1; - lrc_obj.lost_side_color = 2; - } - /* break out of the loop */ - break; - } - } - i = cu_NextPos(i); - } while( i != 0 ); - } -} - -/* let the computer do a move */ -void chess_ComputerMove(uint8_t depth) -{ - stack_Init(depth); - - //stack_GetCurrElement()->current_color = lrc_obj.ply_count; - //stack_GetCurrElement()->current_color &= 1; - - cu_ReduceHistoryByFullMove(); - ce_LoopPieces(); - - chess_ManualMove(stack_GetCurrElement()->best_from_pos, stack_GetCurrElement()->best_to_pos); -} - - -/*==============================================================*/ -/* unix code */ -/*==============================================================*/ - -#ifdef UNIX_MAIN - -#include -#include - -char *piece_str[] = { - /* 0x00 */ - " ", - "wP", - "wN", - "wB", - - /* 0x04 */ - "wR", - "wQ", - "wK", - "w?", - - /* 0x08 */ - "w?", - "w?", - "w?", - "w?", - - /* 0x0c */ - "w?", - "w?", - "w?", - "w?", - - /* 0x10 */ - "b ", - "bP", - "bN", - "bB", - "bR", - "bQ", - "bK", - "b?", - - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?", - "b?" -}; - -void chess_Thinking(void) -{ - uint8_t i; - uint8_t cp = cp_GetPiece(stack_GetCurrElement()->current_cp); - - printf("Thinking: ", piece_str[cp], stack_GetCurrElement()->current_pos); - - for( i = 0; i <= lrc_obj.curr_depth; i++ ) - printf("%s ", piece_str[(lrc_obj.stack_memory+i)->current_cp]); - - printf(" \r"); -} - -void board_Show(void) -{ - uint8_t i, j, cp; - char buf[10]; - for ( i = 0; i < 8; i++ ) - { - printf("%1d ", 7-i); - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - cp = lrc_obj.board[(7-i)*8+j]; - strcpy(buf, piece_str[cp&COLOR_PIECE_MASK]); - - if ( (cp & CP_MARK_MASK) != 0 ) - { - buf[0] = '#'; - } - - /* mask out any bits except color and piece index */ - cp &= COLOR_PIECE_MASK; - printf("%s %02x ", buf, cp); - - } - printf("\n"); - } -} - -int main(void) -{ - uint8_t depth = 3; - chess_SetupBoard(); - board_Show(); - puts(""); - - - /* - chess_ClearMarks(); - chess_MarkMovable(COLOR_WHITE); - board_Show(); - */ - - chess_ManualMove(0x006, 0x066); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - chess_ComputerMove(2); - - printf("lrc_obj.is_game_end: %d\n" , lrc_obj.is_game_end); - printf("lrc_obj.lost_side_color: %d\n" , lrc_obj.lost_side_color); - - board_Show(); - -} - - - -#else - -/*==============================================================*/ -/* display menu */ -/*==============================================================*/ - -//#define MNU_FONT font_5x7 -#define MNU_FONT u8g_font_5x8r -//#define MNU_FONT font_6x9 -#define MNU_ENTRY_HEIGHT 9 - -char *mnu_title = "Little Rook Chess"; -char *mnu_list[] = { "New Game (White)", "New Game (Black)", "Undo Move", "Return" }; -uint8_t mnu_pos = 0; -uint8_t mnu_max = 4; - -void mnu_DrawHome(uint8_t is_highlight) -{ - uint8_t x = lrc_u8g->width - 35; - uint8_t y = (lrc_u8g->height-1); - uint8_t t; - - u8g_SetFont(lrc_u8g, u8g_font_5x7r); - u8g_SetDefaultForegroundColor(lrc_u8g); - t = u8g_DrawStrP(lrc_u8g, x, y -1, U8G_PSTR("Options")); - - if ( is_highlight ) - u8g_DrawFrame(lrc_u8g, x-1, y - MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); -} - -void mnu_DrawEntry(uint8_t y, char *str, uint8_t is_clr_background, uint8_t is_highlight) -{ - uint8_t t, x; - u8g_SetFont(lrc_u8g, MNU_FONT); - t = u8g_GetStrWidth(lrc_u8g, str); - x = u8g_GetWidth(lrc_u8g); - x -= t; - x >>= 1; - - if ( is_clr_background ) - { - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x-3, (lrc_u8g->height-1) - (y+MNU_ENTRY_HEIGHT-1+2), t+5, MNU_ENTRY_HEIGHT+4); - } - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawStr(lrc_u8g, x, (lrc_u8g->height-1) - y, str); - - if ( is_highlight ) - { - u8g_DrawFrame(lrc_u8g, x-1, (lrc_u8g->height-1) - y -MNU_ENTRY_HEIGHT +1, t, MNU_ENTRY_HEIGHT); - } -} - -void mnu_Draw(void) -{ - uint8_t i; - uint8_t t,y; - /* calculate hight of the complete menu */ - y = mnu_max; - y++; /* consider also some space for the title */ - y++; /* consider also some space for the title */ - y *= MNU_ENTRY_HEIGHT; - - /* calculate how much space will be left */ - t = u8g_GetHeight(lrc_u8g); - t -= y; - - /* topmost pos start half of that empty space from the top */ - t >>= 1; - y = u8g_GetHeight(lrc_u8g); - y -= t; - - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_title, 0, 0); - - y -= MNU_ENTRY_HEIGHT; - - - for( i = 0; i < mnu_max; i++ ) - { - y -= MNU_ENTRY_HEIGHT; - mnu_DrawEntry(y, mnu_list[i], 0, i == mnu_pos); - } -} - -void mnu_Step(uint8_t key_cmd) -{ - if ( key_cmd == CHESS_KEY_NEXT ) - { - if ( mnu_pos+1 < mnu_max ) - mnu_pos++; - } - else if ( key_cmd == CHESS_KEY_PREV ) - { - if ( mnu_pos > 0 ) - mnu_pos--; - } -} - - - - -uint8_t chess_key_code = 0; -uint8_t chess_key_cmd = 0; -#define CHESS_STATE_MENU 0 -#define CHESS_STATE_SELECT_START 1 -#define CHESS_STATE_SELECT_PIECE 2 -#define CHESS_STATE_SELECT_TARGET_POS 3 -#define CHESS_STATE_THINKING 4 -#define CHESS_STATE_GAME_END 5 -uint8_t chess_state = CHESS_STATE_MENU; -uint8_t chess_source_pos = 255; -uint8_t chess_target_pos = 255; - -const uint8_t chess_pieces_body_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, /* 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, */ - /* KNIGHT */ 0x00, 0x00, 0x1c, 0x2c, 0x04, 0x04, 0x0e, 0x00, - /* BISHOP */ 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x08, 0x00, 0x00, /* 0x00, 0x00, 0x08, 0x1c, 0x1c, 0x08, 0x00, 0x00, */ - /* ROOK */ 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, - /* QUEEN */ 0x00, 0x00, 0x14, 0x1c, 0x08, 0x1c, 0x08, 0x00, - /* KING */ 0x00, 0x00, 0x00, 0x08, 0x3e, 0x1c, 0x08, 0x00, -}; - -#ifdef NOT_REQUIRED -/* white pieces are constructed by painting black pieces and cutting out the white area */ -const uint8_t chess_white_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x0c, 0x12, 0x12, 0x0c, 0x1e, 0x00, - /* KNIGHT */ 0x00, 0x1c, 0x22, 0x52, 0x6a, 0x0a, 0x11, 0x1f, - /* BISHOP */ 0x00, 0x08, 0x14, 0x22, 0x22, 0x14, 0x08, 0x7f, - /* ROOK */ 0x00, 0x55, 0x7f, 0x22, 0x22, 0x22, 0x22, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x2a, 0x22, 0x14, 0x22, 0x14, 0x7f, - /* KING */ 0x08, 0x1c, 0x49, 0x77, 0x41, 0x22, 0x14, 0x7f, -}; -#endif - -const uint8_t chess_black_pieces_bm[] PROGMEM = -{ - /* PAWN */ 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x3c, 0x00, /* 0x00, 0x00, 0x0c, 0x1e, 0x1e, 0x0c, 0x1e, 0x00, */ - /* KNIGHT */ 0x00, 0x1c, 0x3e, 0x7e, 0x6e, 0x0e, 0x1f, 0x1f, - /* BISHOP */ 0x00, 0x1c, 0x2e, 0x3e, 0x3e, 0x1c, 0x08, 0x7f, /*0x00, 0x08, 0x1c, 0x3e, 0x3e, 0x1c, 0x08, 0x7f,*/ - /* ROOK */ 0x00, 0x55, 0x7f, 0x3e, 0x3e, 0x3e, 0x3e, 0x7f, - /* QUEEN */ 0x00, 0x55, 0x3e, 0x3e, 0x1c, 0x3e, 0x1c, 0x7f, - /* KING -*/ 0x08, 0x1c, 0x49, 0x7f, 0x7f, 0x3e, 0x1c, 0x7f, -}; - - -#if defined(DOGXL160_HW_GR) -#define BOXSIZE 13 -#define BOXOFFSET 3 -#else -#define BOXSIZE 8 -#define BOXOFFSET 1 -#endif - -u8g_uint_t chess_low_edge; -uint8_t chess_boxsize = 8; -uint8_t chess_boxoffset = 1; - - -void chess_DrawFrame(uint8_t pos, uint8_t is_bold) -{ - u8g_uint_t x0, y0; - - x0 = pos; - x0 &= 15; - if ( lrc_obj.orientation != COLOR_WHITE ) - x0 ^= 7; - - y0 = pos; - y0>>= 4; - if ( lrc_obj.orientation != COLOR_WHITE ) - y0 ^= 7; - - x0 *= chess_boxsize; - y0 *= chess_boxsize; - - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize+1, chess_boxsize, chess_boxsize); - - - if ( is_bold ) - { - x0--; - y0++; - - u8g_DrawFrame(lrc_u8g, x0, chess_low_edge - y0 - chess_boxsize +1, chess_boxsize+2, chess_boxsize+2); - } -} - - -void chess_DrawBoard(void) -{ - uint8_t i, j, cp; - const uint8_t *ptr; /* pointer into PROGMEM */ - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) > 1 ) - { - for( i = 0; i < 8; i++ ) - for( j = 0; j < 8; j++ ) - { - uint8_t x,y; - x = i; - x*=chess_boxsize; - y = j; - y*=chess_boxsize; - if ( ((i^j) & 1) == 0 ) - u8g_SetDefaultMidColor(lrc_u8g); - else - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBox(lrc_u8g, x,chess_low_edge-y-chess_boxsize+1,chess_boxsize,chess_boxsize); - } - //u8g_SetDefaultForegroundColor(lrc_u8g); - } - else - { - uint8_t x_offset = 1; - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < 8*8; i+=8 ) - { - for( j = 0; j < 8*8; j+=8 ) - { - if ( ((i^j) & 8) == 0 ) - { - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+0+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+2+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+4+x_offset, chess_low_edge - i-6); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-0); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-2); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-4); - u8g_DrawPixel(lrc_u8g, j+6+x_offset, chess_low_edge - i-6); - } - } - } - } - - for ( i = 0; i < 8; i++ ) - { - for ( j = 0; j < 8; j++ ) - { - /* get piece from global board */ - if ( lrc_obj.orientation == COLOR_WHITE ) - { - cp = lrc_obj.board[i*8+j]; - } - else - { - cp = lrc_obj.board[(7-i)*8+7-j]; - } - if ( cp_GetPiece(cp) != PIECE_NONE ) - { - ptr = chess_black_pieces_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultForegroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - - if ( cp_GetColor(cp) == lrc_obj.strike_out_color ) - { - ptr = chess_pieces_body_bm; - ptr += (cp_GetPiece(cp)-1)*8; - u8g_SetDefaultBackgroundColor(lrc_u8g); - u8g_DrawBitmapP(lrc_u8g, j*chess_boxsize+chess_boxoffset-1, chess_low_edge - (i*chess_boxsize+chess_boxsize-chess_boxoffset), 1, 8, ptr); - } - } - } - } - - if ( (chess_source_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_source_pos, 1); - } - - if ( (chess_target_pos & 0x88) == 0 ) - { - chess_DrawFrame(chess_target_pos, 0); - } - -} - - -void chess_Thinking(void) -{ -} - -void chess_Init(u8g_t *u8g, uint8_t body_color) -{ - lrc_u8g = u8g; - - chess_low_edge = u8g_GetHeight(lrc_u8g); - chess_low_edge--; - - - if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(lrc_u8g)) == 1 ) - { - - chess_boxsize = 8; - chess_boxoffset = 1; - } - else - { - - /* - if ( u8g_GetHeight(lrc_u8g) >= 12*8 ) - { - chess_boxsize = 12; - chess_boxoffset = 3; - } - else */ if ( u8g_GetHeight(lrc_u8g) >= 11*8 ) - { - chess_boxsize = 10; - chess_boxoffset = 2; - } - else - { - chess_boxsize = 8; - chess_boxoffset = 1; - } - - if ( u8g_GetHeight(lrc_u8g) > 64 ) - chess_low_edge -= (u8g_GetHeight(lrc_u8g)-chess_boxsize*8) / 2; - - } - - lrc_obj.strike_out_color = body_color; - chess_SetupBoard(); -} - - - -void chess_Draw(void) -{ - if ( chess_state == CHESS_STATE_MENU ) - { - if ( lrc_obj.ply_count == 0) - mnu_max = 2; - else - mnu_max = 4; - mnu_Draw(); - } - else - { - chess_DrawBoard(); - - { - uint8_t i; - uint8_t entries = lrc_obj.chm_pos; - if ( entries > 4 ) - entries = 4; - - u8g_SetFont(lrc_u8g, u8g_font_5x7); - u8g_SetDefaultForegroundColor(lrc_u8g); - for( i = 0; i < entries; i++ ) - { - -#if defined(DOGXL160_HW_GR) || defined(DOGXL160_HW_BW) - dog_DrawStr(u8g_GetWidth(lrc_u8g)-35, u8g_GetHeight(lrc_u8g)-8*(i+1), font_5x7, cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#else - u8g_DrawStr(lrc_u8g, u8g_GetWidth(lrc_u8g)-35, 8*(i+1), cu_GetHalfMoveStr(lrc_obj.chm_pos-entries+i)); -#endif - - } - - } - - if ( chess_state == CHESS_STATE_SELECT_PIECE ) - mnu_DrawHome(chess_source_pos == 255); - else if ( chess_state == CHESS_STATE_SELECT_TARGET_POS ) - mnu_DrawHome(chess_target_pos == 255); - else - mnu_DrawHome(0); - - if ( chess_state == CHESS_STATE_GAME_END ) - { - switch( lrc_obj.lost_side_color ) - { - case COLOR_WHITE: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Black wins", 1, 1); - break; - case COLOR_BLACK: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "White wins", 1, 1); - break; - default: - mnu_DrawEntry(u8g_GetHeight(lrc_u8g) / 2-2, "Stalemate", 1, 1); - break; - } - } - } -} - - -void chess_Step(uint8_t keycode) -{ - if ( keycode == CHESS_KEY_NONE ) - { - chess_key_cmd = chess_key_code; - chess_key_code = CHESS_KEY_NONE; - } - else - { - chess_key_cmd = CHESS_KEY_NONE; - chess_key_code = keycode; - } - //chess_ComputerMove(2); - switch(chess_state) - { - case CHESS_STATE_MENU: - mnu_Step(chess_key_cmd); - if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( mnu_pos == 0 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 0; - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 1 ) - { - chess_SetupBoard(); - lrc_obj.orientation = 1; - chess_state = CHESS_STATE_THINKING; - } - else if ( mnu_pos == 2 ) - { - if ( lrc_obj.ply_count >= 2 ) - { - cu_UndoHalfMove(); - cu_UndoHalfMove(); - lrc_obj.ply_count-=2; - if ( lrc_obj.ply_count == 0 ) - mnu_pos = 0; - } - chess_state = CHESS_STATE_SELECT_START; - } - else if ( mnu_pos == 3 ) - { - chess_state = CHESS_STATE_SELECT_START; - } - } - break; - case CHESS_STATE_SELECT_START: - chess_ClearMarks(); - chess_MarkMovable(); - chess_source_pos = chess_GetNextMarked(255, 0); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - break; - - case CHESS_STATE_SELECT_PIECE: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_source_pos = chess_GetNextMarked(chess_source_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - if ( chess_source_pos == 255 ) - { - chess_state = CHESS_STATE_MENU; - } - else - { - chess_ClearMarks(); - chess_MarkTargetMoves(chess_source_pos); - chess_target_pos = chess_GetNextMarked(255, 0); - chess_state = CHESS_STATE_SELECT_TARGET_POS; - } - } - break; - case CHESS_STATE_SELECT_TARGET_POS: - if ( chess_key_cmd == CHESS_KEY_NEXT ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 0); - } - else if ( chess_key_cmd == CHESS_KEY_PREV ) - { - chess_target_pos = chess_GetNextMarked(chess_target_pos, 1); - } - else if ( chess_key_cmd == CHESS_KEY_BACK ) - { - chess_ClearMarks(); - chess_MarkMovable(); - chess_target_pos = ILLEGAL_POSITION; - chess_state = CHESS_STATE_SELECT_PIECE; - } - else if ( chess_key_cmd == CHESS_KEY_SELECT ) - { - chess_ManualMove(chess_source_pos, chess_target_pos); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_THINKING; - /* clear marks as some kind of feedback to the user... it simply looks better */ - chess_source_pos = ILLEGAL_POSITION; - chess_target_pos = ILLEGAL_POSITION; - chess_ClearMarks(); - } - break; - case CHESS_STATE_THINKING: - chess_ComputerMove(2); - if ( lrc_obj.is_game_end != 0 ) - chess_state = CHESS_STATE_GAME_END; - else - chess_state = CHESS_STATE_SELECT_START; - break; - case CHESS_STATE_GAME_END: - if ( chess_key_cmd != CHESS_KEY_NONE ) - { - chess_state = CHESS_STATE_MENU; - chess_SetupBoard(); - } - break; - } - -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h deleted file mode 100644 index afe161fc6c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g.h +++ /dev/null @@ -1,1977 +0,0 @@ -/* - - u8g.h - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#ifndef _U8G_H -#define _U8G_H - -/* uncomment the following line to support displays larger than 240x240 */ -//#define U8G_16BIT 1 - -/* comment the following line to generate more compact but interrupt unsafe code */ -#define U8G_INTERRUPT_SAFE 1 - - -#include - -#ifdef __18CXX -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -#else -#include -#endif - -#if defined(__AVR__) -#include -#endif - -/* - use the com interface directly on any systems which are not AVR or ARDUINO -*/ -#if defined(__AVR__) || defined(ARDUINO) -#define U8G_WITH_PINLIST -#endif -#define U8G_WITH_PINLIST - - -#ifdef __cplusplus -extern "C" { -#endif - - -/*===============================================================*/ -#ifdef __GNUC__ -# define U8G_NOINLINE __attribute__((noinline)) -# define U8G_PURE __attribute__ ((pure)) -# define U8G_NOCOMMON __attribute__ ((nocommon)) -# define U8G_SECTION(name) __attribute__ ((section (name))) -# if defined(__MSPGCC__) -/* mspgcc does not have .progmem sections. Use -fdata-sections. */ -# define U8G_FONT_SECTION(name) -# endif -# if defined(__AVR__) -# define U8G_FONT_SECTION(name) U8G_SECTION(".progmem." name) -# endif -#else -# define U8G_NOINLINE -# define U8G_PURE -# define U8G_NOCOMMON -# define U8G_SECTION(name) -# define U8G_FONT_SECTION(name) -#endif - -#ifndef U8G_FONT_SECTION -# define U8G_FONT_SECTION(name) -#endif - - -/*===============================================================*/ -/* flash memory access */ - -#if defined(__AVR__) -/* U8G_PROGMEM is used by the XBM example */ -#define U8G_PROGMEM U8G_SECTION(".progmem.data") -typedef uint8_t PROGMEM u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) pgm_read_byte_near(adr) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) - -#else - -#define U8G_PROGMEM -#define PROGMEM -typedef uint8_t u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) - -#endif - -/*===============================================================*/ -/* interrupt safe code */ -#if defined(U8G_INTERRUPT_SAFE) -# if defined(__AVR__) -extern uint8_t global_SREG_backup; /* u8g_state.c */ -# define U8G_ATOMIC_START() do { global_SREG_backup = SREG; cli(); } while(0) -# define U8G_ATOMIC_END() SREG = global_SREG_backup -# define U8G_ATOMIC_OR(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) |= (val)); SREG = tmpSREG; } while(0) -# define U8G_ATOMIC_AND(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) &= (val)); SREG = tmpSREG; } while(0) -# else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -# endif /* __AVR__ */ -#else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -#endif /* U8G_INTERRUPT_SAFE */ - - -/*===============================================================*/ -/* forward */ -typedef struct _u8g_t u8g_t; -typedef struct _u8g_dev_t u8g_dev_t; - -typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; -typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; -typedef struct _u8g_box_t u8g_box_t; -typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; - - -/*===============================================================*/ -/* generic */ -#if defined(U8G_16BIT) -typedef uint16_t u8g_uint_t; -typedef int16_t u8g_int_t; -#else -typedef uint8_t u8g_uint_t; -typedef int8_t u8g_int_t; -#endif - -#ifdef OBSOLETE -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -typedef struct _u8g_box_t u8g_box_t; -#endif /* OBSOLETE */ - - -/*===============================================================*/ -/* device structure */ - -#ifdef __XC8 -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#else -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#endif - - - -struct _u8g_dev_t -{ - u8g_dev_fnptr dev_fn; /* device procedure */ - void *dev_mem; /* device memory */ - u8g_com_fnptr com_fn; /* communication procedure */ -}; - - -/*===============================================================*/ -/* device list */ - -/* Size: 128x64 SDL, u8g_dev_sdl.c */ -extern u8g_dev_t u8g_dev_sdl_1bit; -extern u8g_dev_t u8g_dev_sdl_1bit_h; -extern u8g_dev_t u8g_dev_sdl_2bit; -extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; -extern u8g_dev_t u8g_dev_sdl_8bit; -extern u8g_dev_t u8g_dev_sdl_hicolor; -extern u8g_dev_t u8g_dev_sdl_fullcolor; -int u8g_sdl_get_key(void); - -/* Size: 70x30 monochrom, stdout */ -extern u8g_dev_t u8g_dev_stdout; - -/* Size: monochrom, writes "u8g.pbm" */ -extern u8g_dev_t u8g_dev_pbm; -extern u8g_dev_t u8g_dev_pbm_8h1; -extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ - -/* Size: 128x64 monochrom, no output, used for performance measure */ -extern u8g_dev_t u8g_dev_gprof; - -/* Display: EA DOGS102, Size: 102x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi; - -/* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi; - -/* Display: EA DOGM132, Size: 128x32 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; - -/* Display: EA DOGM128, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_parallel; - -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel; - -/* EA DOGM 240-6 */ -extern u8g_dev_t u8g_dev_uc1611_dogm240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogm240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogm240_sw_spi; - -/* EA DOGXL 240 */ -extern u8g_dev_t u8g_dev_uc1611_dogxl240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_sw_spi; - -/* Display: Topway LM6059 128x64 (Adafruit) */ -extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi; -/* Display: Topway LM6063 128x64 */ -extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi; -/* Display: Newhaven NHD-C12864 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi; - -/* Display: Newhaven NHD-C12832 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_usart_spi; - -/* Display: Displaytech 64128N */ -extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_parallel; - -extern u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_parallel; - -/* Display: LCD-AG-C128032R-DIW W/KK E6 PBF */ -extern u8g_dev_t u8g_dev_uc1601_c128032_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_hw_spi; - -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi; - -/* East Rising/buy-display.com ERC24064-1 */ -extern u8g_dev_t u8g_dev_uc1608_240x64_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi; - -/* UC1608 240x128 */ -extern u8g_dev_t u8g_dev_uc1608_240x128_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi; - -/* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ -extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_custom; - -extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_custom; - -/* NHD-19232WG */ -extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; - -/* CrystalFontz CFAG20232 */ -extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; - -/* LC7981 160x80 display */ -extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; -/* LC7981 240x64 display */ -extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; -/* LC7981 240x128 display */ -extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; -/* LC7981 320x64 display */ -extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; - -/* T6963, all t6963 devices have double page (2x) */ -extern u8g_dev_t u8g_dev_t6963_240x128_8bit; -extern u8g_dev_t u8g_dev_t6963_128x128_8bit; -extern u8g_dev_t u8g_dev_t6963_240x64_8bit; -extern u8g_dev_t u8g_dev_t6963_128x64_8bit; - -/* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; - -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; - -/* Display: Generic KS0108b, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ -extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ - -/* Nokia 84x48 Display with PCD8544 */ -extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; -extern u8g_dev_t u8g_dev_pcd8544_84x48_hw_spi; -extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; - -/* Nokia 96x65 Display with PCF8812 */ -extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; -extern u8g_dev_t u8g_dev_pcf8812_96x65_hw_spi; - -/* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; - -/* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; - -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; - -/* NHD-3.12-25664 OLED Display with SSD1322 Controller */ -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; - -/* OLED 128x64 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c; - -/* OLED 128x64 Display with SH1106 Controller */ -extern u8g_dev_t u8g_dev_sh1106_128x64_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_i2c; - -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c; - -/* OLED 128x64 Display with SSD1309 Controller */ -extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; - -/* OLED 128x32 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c; - -/* OLED 60x32 Display with LD7032 Controller */ -extern u8g_dev_t u8g_dev_ld7032_60x32_sw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_hw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_parallel; - -/* experimental 65K TFT with st7687 controller */ -extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; -extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; - -/* SBN1661/SED1520 display with 122x32 */ -extern u8g_dev_t u8g_dev_sbn1661_122x32; - -/* flip disc matrix */ -extern u8g_dev_t u8g_dev_flipdisc_2x7; -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); - -/* ILI9325D based TFT */ -extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; - - -/* SSD1351 OLED (breakout board from http://www.kickstarter.com/projects/ilsoftltd/colour-oled-breakout-board) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi; - -/* SSD1351 OLED (Freetronics, GPIOs set to high level) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi; - -/* HT1632 */ -extern u8g_dev_t u8g_dev_ht1632_24x16; - -/* A2 Micro Printer */ -extern u8g_dev_t u8g_dev_a2_micro_printer_384x240; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x120_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x360_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x720_ds; - -/* u8g_virtual_screen.c */ -extern u8g_dev_t u8g_dev_vs; - - -/*===============================================================*/ -/* device messages */ - -struct _u8g_dev_arg_pixel_t -{ - u8g_uint_t x, y; /* will be modified */ - uint8_t pixel; /* will be modified, pixel sequence or transparency value */ - uint8_t dir; - uint8_t color; /* color or index value, red value for true color mode */ - uint8_t hi_color; /* high byte for 64K color mode, low byte is in "color", green value for true color mode */ - uint8_t blue; /* blue value in true color mode */ -}; -/* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ - -/* range for r,g,b: 0..255 */ -#define U8G_GET_HICOLOR_BY_RGB(r,g,b) (((uint16_t)((r)&0x0f8))<<8)|(((uint16_t)((g)&0x0fc))<<3)|(((uint16_t)((b)>>3))) - -struct _u8g_dev_arg_bbx_t -{ - u8g_uint_t x, y, w, h; -}; -/* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ - -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -/* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ - -struct _u8g_dev_arg_irgb_t -{ - u8g_uint_t idx, r, g, b; /* index with rgb value */ -}; -/* typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; */ /* forward decl */ - - - -#define U8G_DEV_MSG_INIT 10 -#define U8G_DEV_MSG_STOP 11 - -/* arg: pointer to uint8_t, contranst value between 0 and 255 */ -#define U8G_DEV_MSG_CONTRAST 15 - -#define U8G_DEV_MSG_SLEEP_ON 16 -#define U8G_DEV_MSG_SLEEP_OFF 17 - -#define U8G_DEV_MSG_PAGE_FIRST 20 -#define U8G_DEV_MSG_PAGE_NEXT 21 - -/* arg: u8g_dev_arg_bbx_t * */ -/* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ -/* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ - -/* arg: u8g_box_t *, fill structure with current page properties */ -#define U8G_DEV_MSG_GET_PAGE_BOX 23 - -/* -#define U8G_DEV_MSG_PRIMITIVE_START 30 -#define U8G_DEV_MSG_PRIMITIVE_END 31 -*/ - -/* arg: u8g_dev_arg_pixel_t * */ -#define U8G_DEV_MSG_SET_TPIXEL 44 -#define U8G_DEV_MSG_SET_4TPIXEL 45 - -#define U8G_DEV_MSG_SET_PIXEL 50 -#define U8G_DEV_MSG_SET_8PIXEL 59 - -#define U8G_DEV_MSG_SET_COLOR_ENTRY 60 - -#define U8G_DEV_MSG_SET_XY_CB 61 - -#define U8G_DEV_MSG_GET_WIDTH 70 -#define U8G_DEV_MSG_GET_HEIGHT 71 -#define U8G_DEV_MSG_GET_MODE 72 - -/*===============================================================*/ -/* device modes */ -#define U8G_MODE(is_index_mode, is_color, bits_per_pixel) (((is_index_mode)<<6) | ((is_color)<<5)|(bits_per_pixel)) - -#define U8G_MODE_UNKNOWN 0 -#define U8G_MODE_BW U8G_MODE(0, 0, 1) -#define U8G_MODE_GRAY2BIT U8G_MODE(0, 0, 2) -#define U8G_MODE_R3G3B2 U8G_MODE(0, 1, 8) -#define U8G_MODE_INDEX U8G_MODE(1, 1, 8) -/* hicolor is R5G6B5 */ -#define U8G_MODE_HICOLOR U8G_MODE(0, 1, 16) -/* truecolor */ -#define U8G_MODE_TRUECOLOR U8G_MODE(0, 1, 24) - - -#define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&31) -#define U8G_MODE_IS_COLOR(mode) (((mode)&32)==0?0:1) -#define U8G_MODE_IS_INDEX_MODE(mode) (((mode)&64)==0?0:1) - - -/*===============================================================*/ -/* com options */ - -/* uncomment the following line for Atmega HW SPI double speed, issue 89 */ -/* #define U8G_HW_SPI_2X 1 */ - -/* com messages */ - -#define U8G_COM_MSG_STOP 0 -#define U8G_COM_MSG_INIT 1 - -#define U8G_COM_MSG_ADDRESS 2 - -/* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ -#define U8G_COM_MSG_CHIP_SELECT 3 - -#define U8G_COM_MSG_RESET 4 - -#define U8G_COM_MSG_WRITE_BYTE 5 -#define U8G_COM_MSG_WRITE_SEQ 6 -#define U8G_COM_MSG_WRITE_SEQ_P 7 - - -/* com driver */ -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_usart_spi.c */ -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_arduino_ATTiny85_std_hw_spi.c */ -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_custom.c */ -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ - - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_rasperrypi_hw_spi.c */ -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_raspberrypi_ssd_i2c.c */ - - -/* - Translation of system specific com drives to generic com names - At the moment, the following generic com drives are available - U8G_COM_HW_SPI - U8G_COM_SW_SPI - U8G_COM_PARALLEL - U8G_COM_T6963 - U8G_COM_FAST_PARALLEL - U8G_COM_SSD_I2C - U8G_COM_UC_I2C - -defined(__18CXX) || defined(__PIC32MX) - -*/ - -/* ==== HW SPI, Raspberry PI ====*/ -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_HW_SPI u8g_com_raspberrypi_hw_spi_fn -#define U8G_COM_SW_SPI u8g_com_null_fn - -/* I'm sure there must be some mad reason for needing this */ -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif - -/* ==== HW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) - -#if defined(__AVR_ATtiny85__) -#define U8G_COM_HW_SPI u8g_com_arduino_ATtiny85_std_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#else - -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#if defined(__AVR_ATmega32U4__) -#define U8G_COM_HW_USART_SPI u8g_com_arduino_hw_usart_spi_fn -#endif /* __AVR_ATmega32U4__ */ -#define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn -#endif /* __AVR_ATtiny85__ */ - -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#endif -/* ==== HW SPI, not Arduino ====*/ -#ifndef U8G_COM_HW_SPI -#if defined(__AVR__) -#define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn -#endif -#endif -#ifndef U8G_COM_HW_SPI -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#ifndef U8G_COM_HW_USART_SPI -#define U8G_COM_HW_USART_SPI u8g_com_null_fn -#endif - - -/* ==== SW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -//#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__arm__) /* Teensy */ -#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#endif -#endif - -#ifndef U8G_COM_SW_SPI -/* ==== SW SPI, not Arduino ====*/ -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn -#endif -#endif -#ifndef U8G_COM_SW_SPI -#define U8G_COM_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#endif - -/* ==== Parallel interface, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn -#define U8G_COM_T6963 u8g_com_arduino_t6963_fn -#else /* Arduino Due, Chipkit PIC32 */ -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#define U8G_COM_PARALLEL u8g_com_null_fn -#define U8G_COM_FAST_PARALLEL u8g_com_null_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif - -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(__AVR__) || defined(__SAM3X8E__) -/* AVR variant and also DUE can use the arduino version at the moment */ -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_SSD_I2C u8g_com_raspberrypi_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#define U8G_COM_SSD_I2C u8g_com_null_fn -#endif - -#ifndef U8G_COM_UC_I2C -#if defined(__AVR__) -/* AVR variant can use the arduino version at the moment */ -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif -#ifndef U8G_COM_UC_I2C -#define U8G_COM_UC_I2C u8g_com_null_fn -#endif - - -/*===============================================================*/ -/* com api */ - -#define U8G_SPI_CLK_CYCLE_50NS 1 -#define U8G_SPI_CLK_CYCLE_300NS 2 -#define U8G_SPI_CLK_CYCLE_400NS 3 -#define U8G_SPI_CLK_CYCLE_NONE 255 - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time); -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); -void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); - - - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -//uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); - - -/* u8g_com_api_16gr.c */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); - - -/*===============================================================*/ -/* u8g_arduino_common.c */ -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); - -/*===============================================================*/ -/* u8g_com_io.c */ - -/* create internal number from port and pin */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); -#define PN(port,bitpos) u8g_Pin(port,bitpos) - -/* low level procedures */ -void u8g_SetPinOutput(uint8_t internal_pin_number); -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); -void u8g_SetPinInput(uint8_t internal_pin_number); -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); - -/* u8g level procedures, expect U8G_PI_xxx macro */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); - - -/*===============================================================*/ -/* page */ -struct _u8g_page_t -{ - u8g_uint_t page_height; - u8g_uint_t total_height; - u8g_uint_t page_y0; - u8g_uint_t page_y1; - uint8_t page; -}; -typedef struct _u8g_page_t u8g_page_t; - -void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ -uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ - -/*===============================================================*/ -/* page buffer (pb) */ - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; /* pixel width */ - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -/* u8g_pb.c */ -void u8g_pb_Clear(u8g_pb_t *b); -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -/* - note on __attribute__ ((nocommon)) - AVR scripts often use --gc-sections on the linker to remove unused section. - This works fine for initialed data and text sections. In principle .bss is also - handled, but the name##_pb definition is not removed. Reason is, that - array definitions are placed in the COMMON section, by default - The attribute "nocommon" removes this automatic assignment to the - COMMON section and directly puts it into .bss. As a result, if more - than one buffer is defined in one file, then it will be removed with --gc-sections - - .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is - redundant. -*/ -#define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ -uint8_t name##_buf[width] U8G_NOCOMMON ; \ -u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ -u8g_dev_t name = { dev_fn, &name##_pb, com_fn } - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; - -uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v1.c */ -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb14v1.c */ -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8v2.c */ -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v2.c (double memory of pb8v2) */ -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h1.c */ -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h1.c */ -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb32h1.c */ -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h2.c */ -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - - -/* u8g_pb8h1f.c */ -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8h8.c */ -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh16.c */ -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh24.c */ -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/*===============================================================*/ -/* u8g_ll_api.c */ - -/* cursor draw callback */ -typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); - -/* vertical reference point calculation callback */ -typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); - -/* state backup and restore procedure */ -typedef void (*u8g_state_cb)(uint8_t msg); - - -/* PI = Pin Index */ - -/* reset pin, usually optional */ -#define U8G_PI_RESET 0 - -/* address / data or instruction */ -#define U8G_PI_A0 1 -#define U8G_PI_DI 1 - -/* chip select line */ -#define U8G_PI_CS 2 -#define U8G_PI_CS1 2 -#define U8G_PI_CS2 3 -/* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ -#define U8G_PI_A0_STATE 3 - -/* enable / clock signal */ -#define U8G_PI_EN 4 -#define U8G_PI_CS_STATE 4 -#define U8G_PI_SCK 4 -#define U8G_PI_SCL 4 -#define U8G_PI_RD 4 - - -/* data pins, shared with SPI and I2C pins */ -#define U8G_PI_D0 5 -#define U8G_PI_MOSI 5 -#define U8G_PI_SDA 5 -#define U8G_PI_D1 6 -#define U8G_PI_MISO 6 -#define U8G_PI_D2 7 -#define U8G_PI_D3 8 -#define U8G_PI_SET_A0 8 -#define U8G_PI_D4 9 -#define U8G_PI_D5 10 -#define U8G_PI_I2C_OPTION 11 -#define U8G_PI_D6 11 -#define U8G_PI_D7 12 - -/* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ -#define U8G_PI_WR 13 -#define U8G_PI_RW 13 - -#define U8G_PIN_LIST_LEN 14 - - -#define U8G_PIN_DUMMY 254 -#define U8G_PIN_NONE 255 - -#define U8G_FONT_HEIGHT_MODE_TEXT 0 -#define U8G_FONT_HEIGHT_MODE_XTEXT 1 -#define U8G_FONT_HEIGHT_MODE_ALL 2 - -struct _u8g_t -{ - u8g_uint_t width; - u8g_uint_t height; - - - u8g_dev_t *dev; /* first device in the device chain */ - const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ - const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ - uint8_t cursor_fg_color, cursor_bg_color; - uint8_t cursor_encoding; - uint8_t mode; /* display mode, one of U8G_MODE_xxx */ - u8g_uint_t cursor_x; - u8g_uint_t cursor_y; - u8g_draw_cursor_fn cursor_fn; - - int8_t glyph_dx; - int8_t glyph_x; - int8_t glyph_y; - uint8_t glyph_width; - uint8_t glyph_height; - - u8g_font_calc_vref_fnptr font_calc_vref; - uint8_t font_height_mode; - int8_t font_ref_ascent; - int8_t font_ref_descent; - uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ - uint8_t line_spacing; - - u8g_dev_arg_pixel_t arg_pixel; - /* uint8_t color_index; */ - -#ifdef U8G_WITH_PINLIST - uint8_t pin_list[U8G_PIN_LIST_LEN]; -#endif - - u8g_state_cb state_cb; - - u8g_box_t current_page; /* current box of the visible page */ - -}; - -#define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) -#define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) -#define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); /* obsolete */ -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); - -void u8g_UpdateDimension(u8g_t *u8g); -uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn); /* Init procedure for anything which is not Arduino or AVR (e.g. ARM, but not Due, which is Arduino) */ -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); -void u8g_FirstPage(u8g_t *u8g); -uint8_t u8g_NextPage(u8g_t *u8g); -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); -void u8g_SleepOn(u8g_t *u8g); -void u8g_SleepOff(u8g_t *u8g); -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); - -uint8_t u8g_Stop(u8g_t *u8g); -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb); -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -uint8_t u8g_GetColorIndex(u8g_t *u8g); - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); -void u8g_SetDefaultForegroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); -void u8g_SetDefaultBackgroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); -void u8g_SetDefaultMidColor(u8g_t *u8g); - -#define u8g_GetWidth(u8g) ((u8g)->width) -#define u8g_GetHeight(u8g) ((u8g)->height) -#define u8g_GetMode(u8g) ((u8g)->mode) -/* - U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) - U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) -*/ - -/* u8g_state.c */ -#define U8G_STATE_ENV_IDX 0 -#define U8G_STATE_U8G_IDX 1 -#define U8G_STATE_RESTORE 0 -#define U8G_STATE_BACKUP 1 -#define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) - -#define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) -#define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) - -#define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) -#define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) - - - -void u8g_state_dummy_cb(uint8_t msg); -void u8g_backup_spi(uint8_t msg); /* backup SPI state controller */ -/* backward compatible definition */ -#define u8g_backup_avr_spi u8g_backup_spi - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); - -/* u8g_clip.c */ - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); - - -/* u8g_rot.c */ - -void u8g_UndoRotation(u8g_t *u8g); -void u8g_SetRot90(u8g_t *u8g); -void u8g_SetRot180(u8g_t *u8g); -void u8g_SetRot270(u8g_t *u8g); - -/* u8g_scale.c */ - -void u8g_UndoScale(u8g_t *u8g); -void u8g_SetScale2x2(u8g_t *u8g); - - -/* u8g_font.c */ - -size_t u8g_font_GetSize(const void *font); -uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; -uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); -int8_t u8g_GetFontBBXOffX(u8g_t *u8g); -int8_t u8g_GetFontBBXOffY(u8g_t *u8g); -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ - -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); - - -void u8g_SetFontRefHeightText(u8g_t *u8g); -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); -void u8g_SetFontRefHeightAll(u8g_t *u8g); -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); - -void u8g_SetFontPosBaseline(u8g_t *u8g); -void u8g_SetFontPosBottom(u8g_t *u8g); -void u8g_SetFontPosCenter(u8g_t *u8g); -void u8g_SetFontPosTop(u8g_t *u8g); - - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -int8_t u8g_GetStrX(u8g_t *u8g, const char *s); -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) U8G_NOINLINE; -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -/* u8g_rect.c */ - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; - -/* u8g_bitmap.c */ - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - - -/* u8g_line.c */ -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); - - -/* u8g_circle.c */ - -/* the following, commented code has been rewritten or is not yet finished -#define U8G_CIRC_UPPER_RIGHT 0x01 -#define U8G_CIRC_UPPER_LEFT 0x02 -#define U8G_CIRC_LOWER_LEFT 0x04 -#define U8G_CIRC_LOWER_RIGHT 0x08 -#define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); -*/ - -#define U8G_DRAW_UPPER_RIGHT 0x01 -#define U8G_DRAW_UPPER_LEFT 0x02 -#define U8G_DRAW_LOWER_LEFT 0x04 -#define U8G_DRAW_LOWER_RIGHT 0x08 -#define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); - -/* u8g_ellipse.c */ -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); - -/* u8g_clip.c */ -uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); - - -/* u8g_cursor.c */ -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); -void u8g_EnableCursor(u8g_t *u8g); -void u8g_DisableCursor(u8g_t *u8g); -void u8g_DrawCursor(u8g_t *u8g); - -/* u8g_polygon.c */ - -typedef int16_t pg_word_t; - -#define PG_NOINLINE U8G_NOINLINE - -struct pg_point_struct -{ - pg_word_t x; - pg_word_t y; -}; - -typedef struct _pg_struct pg_struct; /* forward declaration */ - -struct pg_edge_struct -{ - pg_word_t x_direction; /* 1, if x2 is greater than x1, -1 otherwise */ - pg_word_t height; - pg_word_t current_x_offset; - pg_word_t error_offset; - - /* --- line loop --- */ - pg_word_t current_y; - pg_word_t max_y; - pg_word_t current_x; - pg_word_t error; - - /* --- outer loop --- */ - uint8_t (*next_idx_fn)(pg_struct *pg, uint8_t i); - uint8_t curr_idx; -}; - -/* maximum number of points in the polygon */ -/* can be redefined, but highest possible value is 254 */ -#define PG_MAX_POINTS 6 - -/* index numbers for the pge structures below */ -#define PG_LEFT 0 -#define PG_RIGHT 1 - - -struct _pg_struct -{ - struct pg_point_struct list[PG_MAX_POINTS]; - uint8_t cnt; - uint8_t is_min_y_not_flat; - pg_word_t total_scan_line_cnt; - struct pg_edge_struct pge[2]; /* left and right line draw structures */ -}; - -void pg_ClearPolygonXY(pg_struct *pg); -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y); -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g); -void u8g_ClearPolygonXY(void); -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y); -void u8g_DrawPolygon(u8g_t *u8g); -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2); - - -/*===============================================================*/ -/* u8g_virtual_screen.c */ -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); - -/*===============================================================*/ -void st_Draw(uint8_t fps); -void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); - -/*===============================================================*/ -/* u8g_com_i2c.c */ - -/* options for u8g_i2c_init() */ -#define U8G_I2C_OPT_NONE 0 -#define U8G_I2C_OPT_NO_ACK 2 -#define U8G_I2C_OPT_DEV_0 0 -#define U8G_I2C_OPT_DEV_1 4 -#define U8G_I2C_OPT_FAST 16 - -/* retrun values from u8g_twi_get_error() */ -#define U8G_I2C_ERR_NONE 0x00 -/* the following values are bit masks */ -#define U8G_I2C_ERR_TIMEOUT 0x01 -#define U8G_I2C_ERR_BUS 0x02 - -void u8g_i2c_clear_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; -void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; -uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; -uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; -uint8_t u8g_i2c_send_mode(uint8_t mode) U8G_NOINLINE; -void u8g_i2c_stop(void) U8G_NOINLINE; - - -/*===============================================================*/ -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d); - -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d); - -/*===============================================================*/ -/* u8g_delay.c */ - -/* delay by the specified number of milliseconds */ -void u8g_Delay(uint16_t val); - -/* delay by one microsecond */ -void u8g_MicroDelay(void); - -/* delay by 10 microseconds */ -void u8g_10MicroDelay(void); - -/*===============================================================*/ -/* chessengine.c */ -#define CHESS_KEY_NONE 0 -#define CHESS_KEY_NEXT 1 -#define CHESS_KEY_PREV 2 -#define CHESS_KEY_SELECT 3 -#define CHESS_KEY_BACK 4 - -void chess_Init(u8g_t *u8g, uint8_t empty_body_color); -void chess_Draw(void); -void chess_Step(uint8_t keycode); - -/*===============================================================*/ -/* font definitions */ -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_FONT_SECTION("u8g_font_m2icon_5"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_FONT_SECTION("u8g_font_m2icon_7"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_FONT_SECTION("u8g_font_m2icon_9"); - -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_FONT_SECTION("u8g_font_u8glib_4"); -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_FONT_SECTION("u8g_font_u8glib_4r"); - - -extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_FONT_SECTION("u8g_font_6x12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_FONT_SECTION("u8g_font_6x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_FONT_SECTION("u8g_font_7x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_FONT_SECTION("u8g_font_8x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_FONT_SECTION("u8g_font_9x15_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_FONT_SECTION("u8g_font_9x18_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_FONT_SECTION("u8g_font_cu12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_FONT_SECTION("u8g_font_unifont_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_FONT_SECTION("u8g_font_10x20_75r"); - -extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_FONT_SECTION("u8g_font_10x20_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_FONT_SECTION("u8g_font_10x20_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_FONT_SECTION("u8g_font_10x20"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_FONT_SECTION("u8g_font_10x20r"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_FONT_SECTION("u8g_font_4x6"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_FONT_SECTION("u8g_font_4x6r"); -//extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_FONT_SECTION("u8g_font_4x6n"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_FONT_SECTION("u8g_font_5x7"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_FONT_SECTION("u8g_font_5x7r"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_FONT_SECTION("u8g_font_5x8"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_FONT_SECTION("u8g_font_5x8r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_FONT_SECTION("u8g_font_6x10"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_FONT_SECTION("u8g_font_6x10r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_FONT_SECTION("u8g_font_6x12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_FONT_SECTION("u8g_font_6x12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_FONT_SECTION("u8g_font_6x12"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_FONT_SECTION("u8g_font_6x12r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_FONT_SECTION("u8g_font_6x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_FONT_SECTION("u8g_font_6x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_FONT_SECTION("u8g_font_6x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_FONT_SECTION("u8g_font_6x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_FONT_SECTION("u8g_font_6x13"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_FONT_SECTION("u8g_font_6x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_FONT_SECTION("u8g_font_6x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_FONT_SECTION("u8g_font_6x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_FONT_SECTION("u8g_font_7x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_FONT_SECTION("u8g_font_7x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_FONT_SECTION("u8g_font_7x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_FONT_SECTION("u8g_font_7x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_FONT_SECTION("u8g_font_7x13"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_FONT_SECTION("u8g_font_7x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_FONT_SECTION("u8g_font_7x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_FONT_SECTION("u8g_font_7x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_FONT_SECTION("u8g_font_7x14B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_FONT_SECTION("u8g_font_7x14Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_FONT_SECTION("u8g_font_7x14"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_FONT_SECTION("u8g_font_7x14r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_FONT_SECTION("u8g_font_8x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_FONT_SECTION("u8g_font_8x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_FONT_SECTION("u8g_font_8x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_FONT_SECTION("u8g_font_8x13"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_FONT_SECTION("u8g_font_8x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_FONT_SECTION("u8g_font_8x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_FONT_SECTION("u8g_font_8x13Or"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_FONT_SECTION("u8g_font_9x15_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_FONT_SECTION("u8g_font_9x15_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_FONT_SECTION("u8g_font_9x15B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_FONT_SECTION("u8g_font_9x15Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_FONT_SECTION("u8g_font_9x15"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_FONT_SECTION("u8g_font_9x15r"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_FONT_SECTION("u8g_font_9x18_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_FONT_SECTION("u8g_font_9x18_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_FONT_SECTION("u8g_font_9x18B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_FONT_SECTION("u8g_font_9x18"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_FONT_SECTION("u8g_font_9x18Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_FONT_SECTION("u8g_font_9x18r"); - -extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_FONT_SECTION("u8g_font_cursor"); -extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_FONT_SECTION("u8g_font_cursorr"); -extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_FONT_SECTION("u8g_font_micro"); - -extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_FONT_SECTION("u8g_font_cu12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_FONT_SECTION("u8g_font_cu12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_FONT_SECTION("u8g_font_cu12"); - -/* - Free-Universal Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_FONT_SECTION("u8g_font_fub11"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_FONT_SECTION("u8g_font_fub11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_FONT_SECTION("u8g_font_fub11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_FONT_SECTION("u8g_font_fub14"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_FONT_SECTION("u8g_font_fub14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_FONT_SECTION("u8g_font_fub14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_FONT_SECTION("u8g_font_fub17"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_FONT_SECTION("u8g_font_fub17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_FONT_SECTION("u8g_font_fub17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_FONT_SECTION("u8g_font_fub20"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_FONT_SECTION("u8g_font_fub20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_FONT_SECTION("u8g_font_fub20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_FONT_SECTION("u8g_font_fub25"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_FONT_SECTION("u8g_font_fub25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_FONT_SECTION("u8g_font_fub25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_FONT_SECTION("u8g_font_fub30"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_FONT_SECTION("u8g_font_fub30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_FONT_SECTION("u8g_font_fub30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_FONT_SECTION("u8g_font_fub35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_FONT_SECTION("u8g_font_fub42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_FONT_SECTION("u8g_font_fub49n"); - -/* - Free-Universal Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_FONT_SECTION("u8g_font_fur11"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_FONT_SECTION("u8g_font_fur11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_FONT_SECTION("u8g_font_fur11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_FONT_SECTION("u8g_font_fur14"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_FONT_SECTION("u8g_font_fur14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_FONT_SECTION("u8g_font_fur14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_FONT_SECTION("u8g_font_fur17"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_FONT_SECTION("u8g_font_fur17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_FONT_SECTION("u8g_font_fur17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_FONT_SECTION("u8g_font_fur20"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_FONT_SECTION("u8g_font_fur20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_FONT_SECTION("u8g_font_fur20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_FONT_SECTION("u8g_font_fur25"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_FONT_SECTION("u8g_font_fur25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_FONT_SECTION("u8g_font_fur25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_FONT_SECTION("u8g_font_fur30"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_FONT_SECTION("u8g_font_fur30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_FONT_SECTION("u8g_font_fur30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_FONT_SECTION("u8g_font_fur35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_FONT_SECTION("u8g_font_fur42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_FONT_SECTION("u8g_font_fur49n"); - -/* - Gentium Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_FONT_SECTION("u8g_font_gdb11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_FONT_SECTION("u8g_font_gdb12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_FONT_SECTION("u8g_font_gdb14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_FONT_SECTION("u8g_font_gdb17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_FONT_SECTION("u8g_font_gdb20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_FONT_SECTION("u8g_font_gdb25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_FONT_SECTION("u8g_font_gdb30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_FONT_SECTION("u8g_font_gdb11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_FONT_SECTION("u8g_font_gdb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_FONT_SECTION("u8g_font_gdb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_FONT_SECTION("u8g_font_gdb17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_FONT_SECTION("u8g_font_gdb20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_FONT_SECTION("u8g_font_gdb25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_FONT_SECTION("u8g_font_gdb30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_FONT_SECTION("u8g_font_gdb11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_FONT_SECTION("u8g_font_gdb12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_FONT_SECTION("u8g_font_gdb14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_FONT_SECTION("u8g_font_gdb17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_FONT_SECTION("u8g_font_gdb20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_FONT_SECTION("u8g_font_gdb25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_FONT_SECTION("u8g_font_gdb30n"); - -/* - Gentium Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_FONT_SECTION("u8g_font_gdr9"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_FONT_SECTION("u8g_font_gdr10"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_FONT_SECTION("u8g_font_gdr11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_FONT_SECTION("u8g_font_gdr12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_FONT_SECTION("u8g_font_gdr14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_FONT_SECTION("u8g_font_gdr17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_FONT_SECTION("u8g_font_gdr20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_FONT_SECTION("u8g_font_gdr25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_FONT_SECTION("u8g_font_gdr30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_FONT_SECTION("u8g_font_gdr9r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_FONT_SECTION("u8g_font_gdr10r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_FONT_SECTION("u8g_font_gdr11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_FONT_SECTION("u8g_font_gdr12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_FONT_SECTION("u8g_font_gdr14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_FONT_SECTION("u8g_font_gdr17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_FONT_SECTION("u8g_font_gdr20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_FONT_SECTION("u8g_font_gdr25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_FONT_SECTION("u8g_font_gdr30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_FONT_SECTION("u8g_font_gdr9n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_FONT_SECTION("u8g_font_gdr10n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_FONT_SECTION("u8g_font_gdr11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_FONT_SECTION("u8g_font_gdr12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_FONT_SECTION("u8g_font_gdr14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_FONT_SECTION("u8g_font_gdr17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_FONT_SECTION("u8g_font_gdr20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_FONT_SECTION("u8g_font_gdr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_FONT_SECTION("u8g_font_gdr30n"); - -/* - Old-Standard Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_FONT_SECTION("u8g_font_osb18"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_FONT_SECTION("u8g_font_osb21"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_FONT_SECTION("u8g_font_osb26"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_FONT_SECTION("u8g_font_osb29"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_FONT_SECTION("u8g_font_osb35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_FONT_SECTION("u8g_font_osb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_FONT_SECTION("u8g_font_osb21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_FONT_SECTION("u8g_font_osb26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_FONT_SECTION("u8g_font_osb29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_FONT_SECTION("u8g_font_osb35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_FONT_SECTION("u8g_font_osb18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_FONT_SECTION("u8g_font_osb21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_FONT_SECTION("u8g_font_osb26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_FONT_SECTION("u8g_font_osb29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_FONT_SECTION("u8g_font_osb35n"); - -/* - Old-Standard Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_FONT_SECTION("u8g_font_osr18"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_FONT_SECTION("u8g_font_osr21"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_FONT_SECTION("u8g_font_osr26"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_FONT_SECTION("u8g_font_osr29"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_FONT_SECTION("u8g_font_osr35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_FONT_SECTION("u8g_font_osr18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_FONT_SECTION("u8g_font_osr21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_FONT_SECTION("u8g_font_osr26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_FONT_SECTION("u8g_font_osr29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_FONT_SECTION("u8g_font_osr35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_FONT_SECTION("u8g_font_osr18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_FONT_SECTION("u8g_font_osr21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_FONT_SECTION("u8g_font_osr26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_FONT_SECTION("u8g_font_osr29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_FONT_SECTION("u8g_font_osr35n"); - -//extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_FONT_SECTION("u8g_font_osr41"); - -/* GNU unifont */ - -extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_FONT_SECTION("u8g_font_unifont_18_19"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_FONT_SECTION("u8g_font_unifont_72_73"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_FONT_SECTION("u8g_font_unifont_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_FONT_SECTION("u8g_font_unifont_76"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_FONT_SECTION("u8g_font_unifont_77"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_FONT_SECTION("u8g_font_unifont_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_FONT_SECTION("u8g_font_unifont_86"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_FONT_SECTION("u8g_font_unifont"); -extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_FONT_SECTION("u8g_font_unifontr"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_FONT_SECTION("u8g_font_unifont_0_8"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_FONT_SECTION("u8g_font_unifont_2_3"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_FONT_SECTION("u8g_font_unifont_4_5"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_FONT_SECTION("u8g_font_unifont_8_9"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_FONT_SECTION("u8g_font_unifont_12_13"); - - -/* 04b fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_FONT_SECTION("u8g_font_04b_03b"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_FONT_SECTION("u8g_font_04b_03bn"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_FONT_SECTION("u8g_font_04b_03br"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_FONT_SECTION("u8g_font_04b_03"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_FONT_SECTION("u8g_font_04b_03n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_FONT_SECTION("u8g_font_04b_03r"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_FONT_SECTION("u8g_font_04b_24"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_FONT_SECTION("u8g_font_04b_24n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_FONT_SECTION("u8g_font_04b_24r"); - -/* orgdot fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_FONT_SECTION("u8g_font_orgv01"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_FONT_SECTION("u8g_font_orgv01r"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_FONT_SECTION("u8g_font_orgv01n"); - -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_FONT_SECTION("u8g_font_fixed_v0"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_FONT_SECTION("u8g_font_fixed_v0r"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_FONT_SECTION("u8g_font_fixed_v0n"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_FONT_SECTION("u8g_font_tpssb"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_FONT_SECTION("u8g_font_tpssbr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_FONT_SECTION("u8g_font_tpssbn"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_FONT_SECTION("u8g_font_tpss"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_FONT_SECTION("u8g_font_tpssr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_FONT_SECTION("u8g_font_tpssn"); - -/* contributed */ - -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_FONT_SECTION("u8g_font_freedoomr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_FONT_SECTION("u8g_font_freedoomr10r"); - -/* adobe X11 */ -extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_FONT_SECTION("u8g_font_courB08"); -extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_FONT_SECTION("u8g_font_courB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_FONT_SECTION("u8g_font_courB10"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_FONT_SECTION("u8g_font_courB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_FONT_SECTION("u8g_font_courB12"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_FONT_SECTION("u8g_font_courB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_FONT_SECTION("u8g_font_courB14"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_FONT_SECTION("u8g_font_courB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_FONT_SECTION("u8g_font_courB18"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_FONT_SECTION("u8g_font_courB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_FONT_SECTION("u8g_font_courB24"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_FONT_SECTION("u8g_font_courB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_FONT_SECTION("u8g_font_courB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_FONT_SECTION("u8g_font_courR08"); -extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_FONT_SECTION("u8g_font_courR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_FONT_SECTION("u8g_font_courR10"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_FONT_SECTION("u8g_font_courR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_FONT_SECTION("u8g_font_courR12"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_FONT_SECTION("u8g_font_courR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_FONT_SECTION("u8g_font_courR14"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_FONT_SECTION("u8g_font_courR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_FONT_SECTION("u8g_font_courR18"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_FONT_SECTION("u8g_font_courR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_FONT_SECTION("u8g_font_courR24"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_FONT_SECTION("u8g_font_courR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_FONT_SECTION("u8g_font_courR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_FONT_SECTION("u8g_font_helvB08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_FONT_SECTION("u8g_font_helvB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08n[] U8G_FONT_SECTION("u8g_font_helvB08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_FONT_SECTION("u8g_font_helvB10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_FONT_SECTION("u8g_font_helvB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10n[] U8G_FONT_SECTION("u8g_font_helvB10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_FONT_SECTION("u8g_font_helvB12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_FONT_SECTION("u8g_font_helvB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12n[] U8G_FONT_SECTION("u8g_font_helvB12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_FONT_SECTION("u8g_font_helvB14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_FONT_SECTION("u8g_font_helvB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14n[] U8G_FONT_SECTION("u8g_font_helvB14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_FONT_SECTION("u8g_font_helvB18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_FONT_SECTION("u8g_font_helvB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18n[] U8G_FONT_SECTION("u8g_font_helvB18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_FONT_SECTION("u8g_font_helvB24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_FONT_SECTION("u8g_font_helvB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_FONT_SECTION("u8g_font_helvB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_FONT_SECTION("u8g_font_helvR08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_FONT_SECTION("u8g_font_helvR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08n[] U8G_FONT_SECTION("u8g_font_helvR08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_FONT_SECTION("u8g_font_helvR10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_FONT_SECTION("u8g_font_helvR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10n[] U8G_FONT_SECTION("u8g_font_helvR10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_FONT_SECTION("u8g_font_helvR12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_FONT_SECTION("u8g_font_helvR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12n[] U8G_FONT_SECTION("u8g_font_helvR12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_FONT_SECTION("u8g_font_helvR14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_FONT_SECTION("u8g_font_helvR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14n[] U8G_FONT_SECTION("u8g_font_helvR14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_FONT_SECTION("u8g_font_helvR18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_FONT_SECTION("u8g_font_helvR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18n[] U8G_FONT_SECTION("u8g_font_helvR18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_FONT_SECTION("u8g_font_helvR24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_FONT_SECTION("u8g_font_helvR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_FONT_SECTION("u8g_font_helvR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_FONT_SECTION("u8g_font_ncenB08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_FONT_SECTION("u8g_font_ncenB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_FONT_SECTION("u8g_font_ncenB10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_FONT_SECTION("u8g_font_ncenB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_FONT_SECTION("u8g_font_ncenB12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_FONT_SECTION("u8g_font_ncenB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_FONT_SECTION("u8g_font_ncenB14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_FONT_SECTION("u8g_font_ncenB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_FONT_SECTION("u8g_font_ncenB18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_FONT_SECTION("u8g_font_ncenB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_FONT_SECTION("u8g_font_ncenB24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_FONT_SECTION("u8g_font_ncenB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_FONT_SECTION("u8g_font_ncenB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_FONT_SECTION("u8g_font_ncenR08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_FONT_SECTION("u8g_font_ncenR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_FONT_SECTION("u8g_font_ncenR10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_FONT_SECTION("u8g_font_ncenR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_FONT_SECTION("u8g_font_ncenR12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_FONT_SECTION("u8g_font_ncenR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_FONT_SECTION("u8g_font_ncenR14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_FONT_SECTION("u8g_font_ncenR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_FONT_SECTION("u8g_font_ncenR18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_FONT_SECTION("u8g_font_ncenR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_FONT_SECTION("u8g_font_ncenR24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_FONT_SECTION("u8g_font_ncenR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_FONT_SECTION("u8g_font_ncenR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_FONT_SECTION("u8g_font_symb08"); -extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_FONT_SECTION("u8g_font_symb08r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_FONT_SECTION("u8g_font_symb10"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_FONT_SECTION("u8g_font_symb10r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_FONT_SECTION("u8g_font_symb12"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_FONT_SECTION("u8g_font_symb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_FONT_SECTION("u8g_font_symb14"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_FONT_SECTION("u8g_font_symb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_FONT_SECTION("u8g_font_symb18"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_FONT_SECTION("u8g_font_symb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_FONT_SECTION("u8g_font_symb24"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_FONT_SECTION("u8g_font_symb24r"); - -extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_FONT_SECTION("u8g_font_timB08"); -extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_FONT_SECTION("u8g_font_timB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_FONT_SECTION("u8g_font_timB10"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_FONT_SECTION("u8g_font_timB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_FONT_SECTION("u8g_font_timB12"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_FONT_SECTION("u8g_font_timB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_FONT_SECTION("u8g_font_timB14"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_FONT_SECTION("u8g_font_timB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_FONT_SECTION("u8g_font_timB18"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_FONT_SECTION("u8g_font_timB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_FONT_SECTION("u8g_font_timB24"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_FONT_SECTION("u8g_font_timB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_FONT_SECTION("u8g_font_timB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_FONT_SECTION("u8g_font_timR08"); -extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_FONT_SECTION("u8g_font_timR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_FONT_SECTION("u8g_font_timR10"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_FONT_SECTION("u8g_font_timR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_FONT_SECTION("u8g_font_timR12"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_FONT_SECTION("u8g_font_timR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_FONT_SECTION("u8g_font_timR14"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_FONT_SECTION("u8g_font_timR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_FONT_SECTION("u8g_font_timR18"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_FONT_SECTION("u8g_font_timR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_FONT_SECTION("u8g_font_timR24"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_FONT_SECTION("u8g_font_timR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_FONT_SECTION("u8g_font_timR24n"); - -/* fontstruct */ - -extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_FONT_SECTION("u8g_font_p01type"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_FONT_SECTION("u8g_font_p01typer"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_FONT_SECTION("u8g_font_p01typen"); - -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_FONT_SECTION("u8g_font_lucasfont_alternate"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_FONT_SECTION("u8g_font_lucasfont_alternater"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten"); - -extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_FONT_SECTION("u8g_font_chikita"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_FONT_SECTION("u8g_font_chikitar"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_FONT_SECTION("u8g_font_chikitan"); - -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_FONT_SECTION("u8g_font_pixelle_micro"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_FONT_SECTION("u8g_font_pixelle_micror"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_FONT_SECTION("u8g_font_pixelle_micron"); - -extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_FONT_SECTION("u8g_font_trixel_square"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_FONT_SECTION("u8g_font_trixel_squarer"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_FONT_SECTION("u8g_font_trixel_squaren"); - -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_FONT_SECTION("u8g_font_robot_de_niro"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_FONT_SECTION("u8g_font_robot_de_niror"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_FONT_SECTION("u8g_font_robot_de_niron"); - -extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_FONT_SECTION("u8g_font_baby"); -extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_FONT_SECTION("u8g_font_babyr"); -extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_FONT_SECTION("u8g_font_babyn"); - -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_FONT_SECTION("u8g_font_blipfest_07"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_FONT_SECTION("u8g_font_blipfest_07r"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_FONT_SECTION("u8g_font_blipfest_07n"); - -/* profont */ - -extern const u8g_fntpgm_uint8_t u8g_font_profont10[] U8G_FONT_SECTION("u8g_font_profont10"); -extern const u8g_fntpgm_uint8_t u8g_font_profont10r[] U8G_FONT_SECTION("u8g_font_profont10r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11[] U8G_FONT_SECTION("u8g_font_profont11"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11r[] U8G_FONT_SECTION("u8g_font_profont11r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12[] U8G_FONT_SECTION("u8g_font_profont12"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12r[] U8G_FONT_SECTION("u8g_font_profont12r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15[] U8G_FONT_SECTION("u8g_font_profont15"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15r[] U8G_FONT_SECTION("u8g_font_profont15r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17[] U8G_FONT_SECTION("u8g_font_profont17"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17r[] U8G_FONT_SECTION("u8g_font_profont17r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22[] U8G_FONT_SECTION("u8g_font_profont22"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22r[] U8G_FONT_SECTION("u8g_font_profont22r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29[] U8G_FONT_SECTION("u8g_font_profont29"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29r[] U8G_FONT_SECTION("u8g_font_profont29r"); - - -#ifdef __cplusplus -} -#endif - -#endif /* _U8G_H */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c deleted file mode 100644 index dc742d1d78..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_bitmap.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_bitmap.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, *bitmap); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmap(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - - -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, u8g_pgm_read(bitmap)); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmapP(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - -/*=========================================================================*/ - -static void u8g_DrawHXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, *bitmap); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = *bitmap; - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - while( h > 0 ) - { - u8g_DrawHXBM(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} - -static void u8g_DrawHXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const u8g_pgm_uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, u8g_pgm_read(bitmap)); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = u8g_pgm_read(bitmap); - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHXBMP(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c deleted file mode 100644 index 57e184b6b4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_circle.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - - u8g_circle.c - - Utility to draw empty and filled circles. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - u8g_DrawCircle & u8g_DrawDisc by olikraus@gmail.com - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library 02/25/12 - - -*/ - -#include "u8g.h" - -#ifdef OLD_CODE - -void circ_upperRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); -} - -void circ_upperLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); -} - -void circ_lowerRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); -} - -void circ_lowerLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); -} - -void circ_all(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - circ_upperRight(u8g, x, y, x0, y0); - circ_upperLeft(u8g, x, y, x0, y0); - circ_lowerRight(u8g, x, y, x0, y0); - circ_lowerLeft(u8g, x, y, x0, y0); -} - -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - void ( *circ_util )(u8g_t *, u8g_uint_t, u8g_uint_t, u8g_uint_t, u8g_uint_t); - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_upperRight; - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_upperLeft; - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_lowerRight; - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_lowerLeft; - break; - default: - case U8G_CIRC_ALL: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_all; - break; - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - circ_util(u8g, x, y, x0, y0); - } -} - - -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - // Draw vertical diameter at the horiz. center - // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - - if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); - } - else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0, rad+1); - } - else { - u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - //Draw vertical lines from one point to another - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - break; - case U8G_CIRC_ALL: - u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); - u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); - break; - } - } -} - -#endif - -/*=========================================================================*/ - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); - } -} - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw circle */ - u8g_draw_circle(u8g, x0, y0, rad, option); -} - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - } -} - -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw disc */ - u8g_draw_disc(u8g, x0, y0, rad, option); -} - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c deleted file mode 100644 index 1ca223e431..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_clip.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - - u8g_clip.c - - procedures for clipping - taken over from procs in u8g_pb.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Notes - - This is one of the most critical parts of u8glib. It must be fast, but still reliable. - Based on the intersection program (see tools folder), there is minimized version of - the condition for the intersaction test: - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - It includes the assumption, that a1 <= a2 is always true (correct, because - a1, a2 are the page dimensions. - - The direct implementation of the above result is done in: - uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - However, this is slower than a decision tree version: - static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - Also suprising is, that the macro implementation is slower than the inlined version. - - The decision tree is based on the expansion of the truth table. - -*/ - -#include "u8g.h" - -#ifdef __GNUC__ -#define U8G_ALWAYS_INLINE __inline__ __attribute__((always_inline)) -#else -#define U8G_ALWAYS_INLINE - #endif - -/* - intersection assumptions: - a1 <= a2 is always true - - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ - -#ifdef OLD_CODE_WHICH_IS_TOO_SLOW -static uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= a1; - c2 = v1 >= a0; - c3 = v0 > v1; - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} -#endif - -#define U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1) ((uint8_t)( (v0) <= (a1) ) ? ( ( (v1) >= (a0) ) ? ( 1 ) : ( (v0) > (v1) ) ) : ( ( (v1) >= (a0) ) ? ( (v0) > (v1) ) : ( 0 ) )) - -//static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) U8G_ALWAYS_INLINE; -static uint8_t U8G_ALWAYS_INLINE u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - /* surprisingly the macro leads to larger code */ - /* return U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1); */ - if ( v0 <= a1 ) - { - if ( v1 >= a0 ) - { - return 1; - } - else - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - } - else - { - if ( v1 >= a0 ) - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - else - { - return 0; - } - } -} - - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - register u8g_uint_t tmp; - tmp = y; - tmp += h; - tmp--; - if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) - return 0; - - tmp = x; - tmp += w; - tmp--; - return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c deleted file mode 100644 index 0201808d71..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - - u8g_com_api.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time) -{ - return dev->com_fn(u8g, U8G_COM_MSG_INIT, clk_cycle_time, NULL); -} - -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_STOP, 0, NULL); -} - -/* cs contains the chip number, which should be enabled */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs) -{ - dev->com_fn(u8g, U8G_COM_MSG_CHIP_SELECT, cs, NULL); -} - -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 0, NULL); -} - -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 1, NULL); -} - - -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address) -{ - dev->com_fn(u8g, U8G_COM_MSG_ADDRESS, address, NULL); -} - -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, val, NULL); -} - -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, cnt, seq); -} - -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ_P, cnt, (void *)seq); -} - -/* - sequence := { direct_value | escape_sequence } - direct_value := 0..254 - escape_sequence := value_255 | sequence_end | delay | adr | cs | not_used - value_255 := 255 255 - sequence_end = 255 254 - delay := 255 0..127 - adr := 255 0x0e0 .. 0x0ef - cs := 255 0x0d0 .. 0x0df - not_used := 255 101..254 - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) - -*/ -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) -{ - uint8_t is_escape = 0; - uint8_t value; - for(;;) - { - value = u8g_pgm_read(esc_seq); - if ( is_escape == 0 ) - { - if ( value != 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else - { - is_escape = 1; - } - } - else - { - if ( value == 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else if ( value == 254 ) - { - break; - } - else if ( value >= 0x0f0 ) - { - /* not yet used, do nothing */ - } - else if ( value >= 0xe0 ) - { - u8g_SetAddress(u8g, dev, value & 0x0f); - } - else if ( value >= 0xd0 ) - { - u8g_SetChipSelect(u8g, dev, value & 0x0f); - } - else if ( value >= 0xc0 ) - { - u8g_SetResetLow(u8g, dev); - value &= 0x0f; - value <<= 4; - value+=2; - u8g_Delay(value); - u8g_SetResetHigh(u8g, dev); - u8g_Delay(value); - } - else if ( value >= 0xbe ) - { - /* not yet implemented */ - /* u8g_SetVCC(u8g, dev, value & 0x01); */ - } - else if ( value <= 127 ) - { - u8g_Delay(value); - } - is_escape = 0; - } - esc_seq++; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c deleted file mode 100644 index 7ff03d8656..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_api_16gr.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - - u8g_com_api_16gr.c - - Extension of the com api for devices with 16 graylevels (4 bit per pixel). - This should fit to the 8h and 16h architectures (pb8v1, pb8v2, pb16v1, pb16v2), - mainly intended for SSD OLEDs - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* interpret b as a monochrome bit pattern, write value 15 for high bit and value 0 for a low bit */ -/* topbit (msb) is sent last */ -/* example: b = 0x083 will send 0xff, 0x00, 0x00, 0xf0 */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - static uint8_t buf[4]; - static uint8_t map[4] = { 0, 0x00f, 0x0f0, 0x0ff }; - buf [3] = map[b & 3]; - b>>=2; - buf [2] = map[b & 3]; - b>>=2; - buf [1] = map[b & 3]; - b>>=2; - buf [0] = map[b & 3]; - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, 4, buf); -} - -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByteBWTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} - -/* interpret b as a 4L bit pattern, write values 0x000, 0x004, 0x008, 0x00c */ -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - //static uint8_t map[16] = { 0x000, 0x004, 0x008, 0x00c, 0x040, 0x044, 0x048, 0x04c, 0x080, 0x084, 0x088, 0x08c, 0x0c0, 0x0c4, 0x0c8, 0x0cc}; - //static uint8_t map[16] = { 0x000, 0x004, 0x00a, 0x00f, 0x040, 0x044, 0x04a, 0x04f, 0x0a0, 0x0a4, 0x0aa, 0x0af, 0x0f0, 0x0f4, 0x0fa, 0x0ff}; - static uint8_t map[16] = { 0x000, 0x040, 0x0a0, 0x0f0, 0x004, 0x044, 0x0a4, 0x0f4, 0x00a, 0x04a, 0x0aa, 0x0fa, 0x00f, 0x04f, 0x0af, 0x0ff}; - uint8_t bb; - bb = b; - bb &= 15; - b>>=4; - dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[bb], NULL); - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[b], NULL); -} - -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByte4LTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c deleted file mode 100644 index 9d0191eae5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_attiny85_hw_spi.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - - u8g_arduino_ATtiny85_std_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Uses code from tinySPI Written by Nick Gammon -// March 2013 - -// ATMEL ATTINY45 / ARDUINO pin mappings -// -// +-\/-+ -// RESET Ain0 (D 5) PB5 1| |8 Vcc -// CLK1 Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1 SCK / USCK / SCL -// CLK0 Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 MISO / DO -// GND 4| |5 PB0 (D 0) pwm0 MOSI / DI / SDA -// +----+ - - -#include "u8g.h" - - -#if defined(ARDUINO) && defined(__AVR_ATtiny85__) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -const byte DI = 0; // D0, pin 5 Data In -const byte DO = 1; // D1, pin 6 Data Out (this is *not* MOSI) -const byte USCK = 2; // D2, pin 7 Universal Serial Interface clock - -uint8_t u8g_arduino_ATtiny85_spi_out(uint8_t val) -{ - USIDR = val; // byte to output - USISR = _BV (USIOIF); // clear Counter Overflow Interrupt Flag, set count to zero - do - { - USICR = _BV (USIWM0) // 3-wire mode - | _BV (USICS1) | _BV (USICLK) // Software clock strobe - | _BV (USITC); // Toggle Clock Port Pin - } - while ((USISR & _BV (USIOIF)) == 0); // until Counter Overflow Interrupt Flag set - - return USIDR; // return read data -} - -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); // ensure SS stays high until needed - pinMode (USCK, OUTPUT); - pinMode (DO, OUTPUT); - pinMode (u8g->pin_list[U8G_PI_CS], OUTPUT); - pinMode (u8g->pin_list[U8G_PI_A0], OUTPUT); - USICR = _BV (USIWM0); // 3-wire mode - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - u8g_MicroDelay(); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - u8g_MicroDelay(); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_arduino_ATtiny85_spi_out(arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_ATtiny85_spi_out(*ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_ATtiny85_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - u8g_MicroDelay(); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c deleted file mode 100644 index ef0b2366ee..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_common.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - - u8g_com_arduino_common.c - - shared procedures for the arduino communication procedures - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value) -{ - uint8_t pin; - pin = u8g->pin_list[pin_index]; - if ( pin != U8G_PIN_NONE ) - digitalWrite(pin, value); -} - -/* this procedure does not set the RW pin */ -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g) -{ - uint8_t i; - /* skip the RW pin, which is the last pin in the list */ - for( i = 0; i < U8G_PIN_LIST_LEN-1; i++ ) - { - if ( u8g->pin_list[i] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[i], OUTPUT); - digitalWrite(u8g->pin_list[i], HIGH); - } - } -} - - -#endif - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c deleted file mode 100644 index 57d4410af1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_fast_parallel.c +++ /dev/null @@ -1,254 +0,0 @@ -/* - - u8g_arduino_fast_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#define PIN_D0 8 -#define PIN_D1 9 -#define PIN_D2 10 -#define PIN_D3 11 -#define PIN_D4 4 -#define PIN_D5 5 -#define PIN_D6 6 -#define PIN_D7 7 - -#define PIN_CS1 14 -#define PIN_CS2 15 -#define PIN_RW 16 -#define PIN_DI 17 -#define PIN_EN 18 - -//#define PIN_RESET - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_fast_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -/* atomic protection must be done by calling function */ -static void u8g_com_arduino_fast_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - *u8g_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; -} - - -void u8g_com_arduino_fast_parallel_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - u8g_com_arduino_fast_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_fast_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_fast_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - /* EN cycle time must be 1 micro second */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_fast_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_fast_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_fast_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c deleted file mode 100644 index 3c0d34a48c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_spi.c +++ /dev/null @@ -1,438 +0,0 @@ -/* - - u8g_com_arduino_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SPI Clock Cycle Type - - SSD1351 50ns 20 MHz - SSD1322 300ns 3.3 MHz - SSD1327 300ns - SSD1306 300ns - ST7565 400ns 2.5 MHz - ST7920 400ns - - Arduino DUE - - PA25 MISO - PA26 MOSI 75 - PA27 SCLK 76 - - -typedef struct { - WoReg SPI_CR; (Spi Offset: 0x00) Control Register - RwReg SPI_MR; (Spi Offset: 0x04) Mode Register - RoReg SPI_RDR; (Spi Offset: 0x08) Receive Data Register - WoReg SPI_TDR; (Spi Offset: 0x0C) Transmit Data Register - RoReg SPI_SR; (Spi Offset: 0x10) Status Register - WoReg SPI_IER; (Spi Offset: 0x14) Interrupt Enable Register - WoReg SPI_IDR; (Spi Offset: 0x18) Interrupt Disable Register - RoReg SPI_IMR; (Spi Offset: 0x1C) Interrupt Mask Register - RoReg Reserved1[4]; - RwReg SPI_CSR[4]; (Spi Offset: 0x30) Chip Select Register - RoReg Reserved2[41]; - RwReg SPI_WPMR; (Spi Offset: 0xE4) Write Protection Control Register - RoReg SPI_WPSR; (Spi Offset: 0xE8) Write Protection Status Register -} Spi; - - Power Management Controller (PMC) - arduino-1.5.2/hardware/arduino/sam/system/CMSIS/Device/ATMEL/sam3xa/include/instance/instance_pmc.h - - enable PIO - - REG_PMC_PCER0 = 1UL << ID_PIOA - - enable SPI - REG_PMC_PCER0 = 1UL << ID_SPI0 - - - - enable PIOA and SPI0 - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - - Parallel Input/Output Controller (PIO) - arduino-1.5.2/hardware/arduino/sam/system/CMSIS/Device/ATMEL/sam3xa/include/instance/instance_pioa.h - - enable special function of the pin: disable PIO on A26 and A27: - REG_PIOA_PDR = 0x0c000000 - PIOA->PIO_PDR = 0x0c000000 - - SPI - SPI0->SPI_CR = SPI_CR_SPIDIS - SPI0->SPI_CR = SPI_CR_SWRST ; - SPI0->SPI_CR = SPI_CR_SWRST ; - SPI0->SPI_CR = SPI_CR_SPIEN - - Bit 0: Master Mode = 1 (active) - Bit 1: Peripheral Select = 0 (fixed) - Bit 2: Chip Select Decode Mode = 1 (4 to 16) - Bit 4: Mode Fault Detection = 1 (disabled) - Bit 5: Wait Data Read = 0 (disabled) - Bit 7: Loop Back Mode = 0 (disabled) - Bit 16-19: Peripheral Chip Select = 0 (chip select 0) - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS - - Bit 0: Clock Polarity = 0 - Bit 1: Clock Phase = 0 - Bit 4-7: Bits = 0 (8 Bit) - Bit 8-15: SCBR = 1 - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(x) Serial Baud Rate - SCBR / 84000000 > 50 / 1000000000 - SCBR / 84 > 5 / 100 - SCBR > 50 *84 / 1000 --> SCBR=5 - SCBR > 300*84 / 1000 --> SCBR=26 - SCBR > 400*84 / 1000 --> SCBR=34 - - Arduino Due test code: - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - REG_PIOA_PDR = 0x0c000000; - SPI0->SPI_CR = SPI_CR_SPIDIS; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SPIEN; - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS; - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(30); - - for(;;) - { - while( (SPI0->SPI_SR & SPI_SR_TDRE) == 0 ) - ; - SPI0->SPI_TDR = 0x050; - } - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if defined(__AVR__) -#define U8G_ARDUINO_ATMEGA_HW_SPI -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) - -#include -#include - -#if ARDUINO < 100 -#include - -/* fixed pins */ -#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board -#define PIN_SCK 7 -#define PIN_MISO 6 -#define PIN_MOSI 5 -#define PIN_CS 4 -#else // Arduino Board -#define PIN_SCK 13 -#define PIN_MISO 12 -#define PIN_MOSI 11 -#define PIN_CS 10 -#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) - -#else - -#include - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - -#endif - - - -//static uint8_t u8g_spi_out(uint8_t data) U8G_NOINLINE; -static uint8_t u8g_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_spi_out(arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -/* #elif defined(__18CXX) || defined(__PIC32MX) */ - -#elif defined(__SAM3X8E__) // Arduino Due, maybe we should better check for __SAM3X8E__ - -#include - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - - -static uint8_t u8g_spi_out(uint8_t data) -{ - /* wait until tx register is empty */ - while( (SPI0->SPI_SR & SPI_SR_TDRE) == 0 ) - ; - /* send data */ - SPI0->SPI_TDR = (uint32_t)data; - return data; -} - - -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - - /* Arduino Due specific code */ - - /* enable PIOA and SPI0 */ - REG_PMC_PCER0 = (1UL << ID_PIOA) | (1UL << ID_SPI0); - - /* disable PIO on A26 and A27 */ - REG_PIOA_PDR = 0x0c000000; - - /* reset SPI0 (from sam lib) */ - SPI0->SPI_CR = SPI_CR_SPIDIS; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SWRST; - SPI0->SPI_CR = SPI_CR_SPIEN; - u8g_MicroDelay(); - - /* master mode, no fault detection, chip select 0 */ - SPI0->SPI_MR = SPI_MR_MSTR | SPI_MR_PCSDEC | SPI_MR_MODFDIS; - - /* Polarity, Phase, 8 Bit data transfer, baud rate */ - /* x * 1000 / 84 --> clock cycle in ns - 5 * 1000 / 84 = 58 ns - SCBR > 50 *84 / 1000 --> SCBR=5 - SCBR > 300*84 / 1000 --> SCBR=26 - SCBR > 400*84 / 1000 --> SCBR=34 - */ - - if ( arg_val <= U8G_SPI_CLK_CYCLE_50NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(5) | 1; - } - else if ( arg_val <= U8G_SPI_CLK_CYCLE_300NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(26) | 1; - } - else if ( arg_val <= U8G_SPI_CLK_CYCLE_400NS ) - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(34) | 1; - } - else - { - SPI0->SPI_CSR[0] = SPI_CSR_SCBR(84) | 1; - } - - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_MicroDelay(); /* this delay is required to avoid that the display is switched off too early --> DOGS102 with DUE */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - u8g_MicroDelay(); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - u8g_MicroDelay(); - } - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_spi_out(arg_val); - u8g_MicroDelay(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - - - -#else /* U8G_ARDUINO_ATMEGA_HW_SPI */ - -#endif /* U8G_ARDUINO_ATMEGA_HW_SPI */ - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c deleted file mode 100644 index 27fd8d01c9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_hw_usart_spi.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - - u8g_com_arduino_hw_usart_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SPI Clock Cycle Type - - SSD1351 50ns 20 MHz - SSD1322 300ns 3.3 MHz - SSD1327 300ns - SSD1306 300ns - ST7565 400ns 2.5 MHz - ST7920 400ns - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if defined(__AVR_ATmega32U4__ ) - -#include -#include - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - -static uint8_t u8g_usart_spi_out(uint8_t data) -{ - /* send data */ - UDR1 = data; - /* wait for empty transmit buffer */ - while(!(UCSR1A & (1 << UDRE1))); - - return UDR1; -} - - -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - /* SCK is already an output as we overwrite TXLED */ - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - - // Init interface at 2MHz - UBRR1 = 0x00; - UCSR1C = (1 << UMSEL11) | (1 << UMSEL10); - UCSR1B = (1 << TXEN1); - UBRR1 = 3; - - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_usart_spi_out(arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_usart_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_usart_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -/* #elif defined(__18CXX) || defined(__PIC32MX) */ -/* #elif defined(__arm__) // Arduino Due, maybe we should better check for __SAM3X8E__ */ - -#else /* __AVR_ATmega32U4__ */ - -#endif /* __AVR_ATmega32U4__ */ - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c deleted file mode 100644 index 4edb30a464..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_no_en_parallel.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - - u8g_arduino_no_en_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - Update for ATOMIC operation done (01 Jun 2013) - - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - -//#define PIN_RESET - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_data_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_data_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_no_en_parallel_init(u8g_t *u8g) -{ - u8g_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - u8g_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - u8g_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - u8g_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - u8g_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - u8g_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - u8g_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - -/* No atomic protcetion. This is done by caller */ -static void u8g_com_arduino_no_en_write_data_pin(uint8_t pin, uint8_t val) -{ - if ( val != 0 ) - { - *u8g_data_port[pin] |= u8g_data_mask[pin]; - } - else - { - *u8g_data_port[pin] &= ~u8g_data_mask[pin]; - } -} - - -void u8g_com_arduino_no_en_parallel_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - u8g_com_arduino_no_en_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_no_en_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_no_en_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - if ( u8g->pin_list[U8G_PI_CS_STATE] == 1 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_MicroDelay(); - } - else if ( u8g->pin_list[U8G_PI_CS_STATE] == 2 ) - { - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - u8g_MicroDelay(); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - u8g_MicroDelay(); - } -} - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_no_en_parallel_init(u8g); - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - /* - 0: nothing selected - 1: CS1 will be used as enable line - 2: CS2 will be used as enable line - this will be used in the u8g_com_arduino_no_en_parallel_write() procedure - */ - u8g->pin_list[U8G_PI_CS_STATE] = arg_val; - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_no_en_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_no_en_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c deleted file mode 100644 index d5d5dd7557..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_parallel.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_com_arduino_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -void u8g_com_arduino_parallel_write(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_com_arduino_digital_write(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, LOW); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c deleted file mode 100644 index 64a8229e12..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_port_d_wr.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_arduino_port_d_wr.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes PORTD for 8 bit data transfer. - EN is assumed to be a low active write signal (WR) - - ILI9325D_320x240 from iteadstudio.com - RS=19, WR=18, CS=17, RST=16 - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) && defined(PORTD) - -#if ARDUINO < 100 -#include -#else -#include -#endif - - - - - - -static void u8g_com_arduino_port_d_8bit_wr(u8g_t *u8g, uint8_t val) -{ - PORTD = val; - - /* WR cycle time must be 1 micro second, digitalWrite is slow enough to do this */ - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); -} - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - - switch(msg) - { - case U8G_COM_MSG_INIT: - -#ifdef UCSR0B - UCSR0B = 0; // disable USART 0 -#endif - U8G_ATOMIC_START(); - DDRD = 0x0ff; - PORTD = 0x0ff; - U8G_ATOMIC_END(); - - /* setup the RW pin as output and force it to low */ - if ( u8g->pin_list[U8G_PI_RW] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_RW], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_RW, HIGH); - } - /* set all pins (except RW pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_EN, HIGH); - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, HIGH); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS1, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS2, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_port_d_8bit_wr(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_port_d_8bit_wr(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO && PORTD */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c deleted file mode 100644 index 84b24daadb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_ssd_i2c.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - - u8g_com_arduino_ssd_i2c.c - - com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant - I2C protocol - - ToDo: Rename this to u8g_com_avr_ssd_i2c.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_WITH_PINLIST) - - -#define I2C_SLA (0x3c*2) -//#define I2C_CMD_MODE 0x080 -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - -uint8_t u8g_com_arduino_ssd_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); - //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); - //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ - - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_arduino_ssd_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c deleted file mode 100644 index d157b93632..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_custom.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - - u8g_com_arduino_st7920_custom.c - - Additional COM device, initially introduced for 3D Printer community - Implements a fast SW SPI com subsystem - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -static uint8_t u8g_bitData, u8g_bitNotData; -static uint8_t u8g_bitClock, u8g_bitNotClock; -static volatile uint8_t *u8g_outData; -static volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - - - U8G_ATOMIC_START(); - bitData |= *outData; - bitNotData &= *outData; - do - { - if ( val & 128 ) - *outData = bitData; - else - *outData = bitNotData; - - /* - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - */ - - val <<= 1; - *outClock &= bitNotClock; - cnt--; - // removed micro delays, because AVRs are too slow and the delay is not required - //u8g_MicroDelay(); - *outClock |= bitClock; - //u8g_MicroDelay(); - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - //u8g_MicroDelay(); - //*dog_outClock |= dog_bitClock; - *dog_outClock &= dog_bitNotClock; - cnt--; - u8g_MicroDelay(); - //*dog_outClock &= dog_bitNotClock; - *dog_outClock |= dog_bitClock; - u8g_MicroDelay(); - - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#else - -/* default interface, Arduino DUE (__arm__) */ - -uint8_t u8g_data_custom_pin; -uint8_t u8g_clock_custom_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_data_custom_pin = dataPin; - u8g_clock_custom_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - digitalWrite(u8g_data_custom_pin, HIGH); - else - digitalWrite(u8g_data_custom_pin, LOW); - val <<= 1; - //u8g_MicroDelay(); - digitalWrite(u8g_clock_custom_pin, LOW); - cnt--; - u8g_MicroDelay(); - digitalWrite(u8g_clock_custom_pin, HIGH); - u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#endif - - -static void u8g_com_arduino_st7920_write_byte_seq(uint8_t rs, uint8_t *ptr, uint8_t len) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - while( len > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(*ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); - -} - - -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_seq(u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c deleted file mode 100644 index af44c7f860..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_hw_spi.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - - u8g_com_arduino_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special HW SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) -#define U8G_ARDUINO_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ARDUINO_ATMEGA_HW_SPI -#endif - -#endif - - -#if defined(U8G_ARDUINO_ATMEGA_HW_SPI) - -#include -#include - - -#if ARDUINO < 100 - -/* fixed pins */ -#if defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) // Sanguino.cc board -#define PIN_SCK 7 -#define PIN_MISO 6 -#define PIN_MOSI 5 -#define PIN_CS 4 -#else // Arduino Board -#define PIN_SCK 13 -#define PIN_MISO 12 -#define PIN_MOSI 11 -#define PIN_CS 10 -#endif // (__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__) - -#else - -/* use Arduino pin definitions */ -#define PIN_SCK SCK -#define PIN_MISO MISO -#define PIN_MOSI MOSI -#define PIN_CS SS - -#endif - - -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_arduino_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1< 0 ) - { - u8g_arduino_st7920_hw_spi_shift_out(u8g, *ptr & 0x0f0); - u8g_arduino_st7920_hw_spi_shift_out(u8g, *ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte_hw_spi(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_st7920_write_byte_hw_spi(u8g_t *u8g, uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_arduino_st7920_hw_spi_shift_out(u8g, 0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_arduino_st7920_hw_spi_shift_out(u8g, 0x0fa); - } - else - { - /* do nothing, keep same state */ - } - - u8g_arduino_st7920_hw_spi_shift_out(u8g, val & 0x0f0); - u8g_arduino_st7920_hw_spi_shift_out(u8g, val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - - - /* code from u8g_com-arduino_hw_spi.c */ - pinMode(PIN_SCK, OUTPUT); - digitalWrite(PIN_SCK, LOW); - pinMode(PIN_MOSI, OUTPUT); - digitalWrite(PIN_MOSI, LOW); - /* pinMode(PIN_MISO, INPUT); */ - - pinMode(PIN_CS, OUTPUT); /* system chip select for the atmega board */ - digitalWrite(PIN_CS, HIGH); - - - //u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - -#ifdef OBSOLETE - DDRB |= _BV(3); /* D0, MOSI */ - DDRB |= _BV(5); /* SCK */ - DDRB |= _BV(2); /* slave select */ - - PORTB &= ~_BV(3); /* D0, MOSI = 0 */ - PORTB &= ~_BV(5); /* SCK = 0 */ -#endif - - /* - SPR1 SPR0 - 0 0 fclk/4 - 0 1 fclk/16 - 1 0 fclk/64 - 1 1 fclk/128 - */ - SPCR = 0; - - /* 20 Dez 2012: set CPOL and CPHA to 1 !!! */ - SPCR = (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_hw_spi_seq(u8g, u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - /* - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - arg_val--; - } - } - */ - - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - // u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} -#endif - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c deleted file mode 100644 index 9a5c2bef35..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_st7920_spi.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - - u8g_com_arduino_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -#if defined(__AVR__) - -static uint8_t u8g_bitData, u8g_bitNotData; -static uint8_t u8g_bitClock, u8g_bitNotClock; -static volatile uint8_t *u8g_outData; -static volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - - - U8G_ATOMIC_START(); - bitData |= *outData; - bitNotData &= *outData; - do - { - if ( val & 128 ) - *outData = bitData; - else - *outData = bitNotData; - - /* - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - */ - - val <<= 1; - *outClock &= bitNotClock; - cnt--; - // removed micro delays, because AVRs are too slow and the delay is not required - //u8g_MicroDelay(); - *outClock |= bitClock; - //u8g_MicroDelay(); - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - //u8g_MicroDelay(); - //*dog_outClock |= dog_bitClock; - *dog_outClock &= dog_bitNotClock; - cnt--; - u8g_MicroDelay(); - //*dog_outClock &= dog_bitNotClock; - *dog_outClock |= dog_bitClock; - u8g_MicroDelay(); - - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -#else - -/* default interface, Arduino DUE (__arm__) */ - -uint8_t u8g_data_pin; -uint8_t u8g_clock_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_data_pin = dataPin; - u8g_clock_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - do - { - if ( val & 128 ) - digitalWrite(u8g_data_pin, HIGH); - else - digitalWrite(u8g_data_pin, LOW); - val <<= 1; - //u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, LOW); - cnt--; - u8g_MicroDelay(); - digitalWrite(u8g_clock_pin, HIGH); - u8g_MicroDelay(); - } while( cnt != 0 ); -} - -#endif - - -static void u8g_com_arduino_st7920_write_byte_seq(uint8_t rs, uint8_t *ptr, uint8_t len) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - while( len > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(*ptr << 4); - ptr++; - len--; - u8g_10MicroDelay(); - } - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - -static void u8g_com_arduino_st7920_write_byte(uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_com_arduino_do_shift_out_msb_first(0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_com_arduino_do_shift_out_msb_first(0x0fa); - } - - u8g_com_arduino_do_shift_out_msb_first(val & 0x0f0); - u8g_com_arduino_do_shift_out_msb_first(val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); - -} - - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - // u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - else - { - /* enable */ - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, HIGH); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - /* 28 Dec 2013 reassign pins, fixes issue with more than one display */ - /* issue 227 */ - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_st7920_write_byte( u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - u8g_com_arduino_st7920_write_byte_seq(u8g->pin_list[U8G_PI_A0_STATE], (uint8_t *)arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_st7920_write_byte(u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr) ); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c deleted file mode 100644 index 048ac1af36..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_std_sw_spi.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - - u8g_arduino_std_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -void u8g_arduino_sw_spi_shift_out(uint8_t dataPin, uint8_t clockPin, uint8_t val) -{ - uint8_t i = 8; - do - { - if ( val & 128 ) - digitalWrite(dataPin, HIGH); - else - digitalWrite(dataPin, LOW); - val <<= 1; - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, HIGH); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - digitalWrite(clockPin, LOW); - u8g_MicroDelay(); /* 23 Sep 2012 */ - //delay(1); - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c deleted file mode 100644 index 7752adc829..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_sw_spi.c +++ /dev/null @@ -1,301 +0,0 @@ -/* - - u8g_arduino_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#include "wiring_private.h" -#include "pins_arduino.h" - -#else -#include -#include "wiring_private.h" -#endif - -/*=========================================================*/ -/* Arduino, AVR */ - -#if defined(__AVR__) - -uint8_t u8g_bitData, u8g_bitNotData; -uint8_t u8g_bitClock, u8g_bitNotClock; -volatile uint8_t *u8g_outData; -volatile uint8_t *u8g_outClock; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_outData = portOutputRegister(digitalPinToPort(dataPin)); - u8g_outClock = portOutputRegister(digitalPinToPort(clockPin)); - u8g_bitData = digitalPinToBitMask(dataPin); - u8g_bitClock = digitalPinToBitMask(clockPin); - - u8g_bitNotClock = u8g_bitClock; - u8g_bitNotClock ^= 0x0ff; - - u8g_bitNotData = u8g_bitData; - u8g_bitNotData ^= 0x0ff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) U8G_NOINLINE; -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - uint8_t bitData = u8g_bitData; - uint8_t bitNotData = u8g_bitNotData; - uint8_t bitClock = u8g_bitClock; - uint8_t bitNotClock = u8g_bitNotClock; - volatile uint8_t *outData = u8g_outData; - volatile uint8_t *outClock = u8g_outClock; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *outData |= bitData; - else - *outData &= bitNotData; - - *outClock |= bitClock; - val <<= 1; - cnt--; - *outClock &= bitNotClock; - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -/*=========================================================*/ -/* Arduino, Chipkit */ -#elif defined(__18CXX) || defined(__PIC32MX) - -uint16_t dog_bitData, dog_bitNotData; -uint16_t dog_bitClock, dog_bitNotClock; -volatile uint32_t *dog_outData; -volatile uint32_t *dog_outClock; -volatile uint32_t dog_pic32_spi_tmp; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - dog_outData = portOutputRegister(digitalPinToPort(dataPin)); - dog_outClock = portOutputRegister(digitalPinToPort(clockPin)); - dog_bitData = digitalPinToBitMask(dataPin); - dog_bitClock = digitalPinToBitMask(clockPin); - - dog_bitNotClock = dog_bitClock; - dog_bitNotClock ^= 0x0ffff; - - dog_bitNotData = dog_bitData; - dog_bitNotData ^= 0x0ffff; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t cnt = 8; - U8G_ATOMIC_START(); - do - { - if ( val & 128 ) - *dog_outData |= dog_bitData; - else - *dog_outData &= dog_bitNotData; - val <<= 1; - /* - There must be some delay here. However - fetching the adress dog_outClock is enough delay, so - do not place dog_outClock in a local variable. This will - break the procedure - */ - *dog_outClock |= dog_bitClock; - cnt--; - *dog_outClock &= dog_bitNotClock; - /* - little additional delay after clk pulse, done by 3x32bit reads - from I/O. Optimized for PIC32 with 80 MHz. - */ - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - dog_pic32_spi_tmp = *dog_outClock; - } while( cnt != 0 ); - U8G_ATOMIC_END(); -} - -/*=========================================================*/ -/* Arduino Due */ -#elif defined(__SAM3X8E__) - -/* Due */ - -void u8g_digital_write_sam_high(uint8_t pin) -{ - PIO_Set( g_APinDescription[pin].pPort, g_APinDescription[pin].ulPin) ; -} - -void u8g_digital_write_sam_low(uint8_t pin) -{ - PIO_Clear( g_APinDescription[pin].pPort, g_APinDescription[pin].ulPin) ; -} - -static uint8_t u8g_sam_data_pin; -static uint8_t u8g_sam_clock_pin; - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ - u8g_sam_data_pin = dataPin; - u8g_sam_clock_pin = clockPin; -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ - uint8_t i = 8; - do - { - if ( val & 128 ) - u8g_digital_write_sam_high(u8g_sam_data_pin); - else - u8g_digital_write_sam_low(u8g_sam_data_pin); - val <<= 1; - //u8g_MicroDelay(); - u8g_digital_write_sam_high(u8g_sam_clock_pin); - u8g_MicroDelay(); - u8g_digital_write_sam_low(u8g_sam_clock_pin); - u8g_MicroDelay(); - i--; - } while( i != 0 ); -} - - -#else -/* empty interface */ - -static void u8g_com_arduino_init_shift_out(uint8_t dataPin, uint8_t clockPin) -{ -} - -static void u8g_com_arduino_do_shift_out_msb_first(uint8_t val) -{ -} - -#endif - - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_com_arduino_assign_pin_output_high(u8g); - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_MOSI, LOW); - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_SCK, LOW); - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - /* issue 227 */ - u8g_com_arduino_init_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK]); - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_arduino_do_shift_out_msb_first( arg_val ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first(*ptr++); - // u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_arduino_do_shift_out_msb_first( u8g_pgm_read(ptr) ); - //u8g_arduino_sw_spi_shift_out(u8g->pin_list[U8G_PI_MOSI], u8g->pin_list[U8G_PI_SCK], u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, arg_val); - break; - } - return 1; -} - -#else /* ARDUINO */ - -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c deleted file mode 100644 index 50e5e93ac4..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_t6963.c +++ /dev/null @@ -1,403 +0,0 @@ -/* - - u8g_com_arduino_t6963.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - -*/ - -#include "u8g.h" - -#if defined(ARDUINO) - -#if ARDUINO < 100 -//#include -#include -#include -#else -#include -#endif - - -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ -static volatile uint32_t *u8g_output_data_port[8]; -static volatile uint32_t *u8g_input_data_port[8]; -static volatile uint32_t *u8g_mode_port[8]; -static uint32_t u8g_data_mask[8]; -#else -static volatile uint8_t *u8g_output_data_port[8]; -static volatile uint8_t *u8g_input_data_port[8]; -static volatile uint8_t *u8g_mode_port[8]; -static uint8_t u8g_data_mask[8]; -#endif - - - -static void u8g_com_arduino_t6963_init(u8g_t *u8g) -{ - u8g_output_data_port[0] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_input_data_port[0] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_mode_port[0] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D0])); - u8g_data_mask[0] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D0]); - - u8g_output_data_port[1] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_input_data_port[1] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_mode_port[1] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D1])); - u8g_data_mask[1] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D1]); - - u8g_output_data_port[2] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_input_data_port[2] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_mode_port[2] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D2])); - u8g_data_mask[2] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D2]); - - u8g_output_data_port[3] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_input_data_port[3] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_mode_port[3] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D3])); - u8g_data_mask[3] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D3]); - - u8g_output_data_port[4] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_input_data_port[4] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_mode_port[4] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D4])); - u8g_data_mask[4] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D4]); - - u8g_output_data_port[5] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_input_data_port[5] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_mode_port[5] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D5])); - u8g_data_mask[5] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D5]); - - u8g_output_data_port[6] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_input_data_port[6] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_mode_port[6] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D6])); - u8g_data_mask[6] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D6]); - - u8g_output_data_port[7] = portOutputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_input_data_port[7] = portInputRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_mode_port[7] = portModeRegister(digitalPinToPort(u8g->pin_list[U8G_PI_D7])); - u8g_data_mask[7] = digitalPinToBitMask(u8g->pin_list[U8G_PI_D7]); -} - - -static void u8g_com_arduino_t6963_write_data_pin(uint8_t pin, uint8_t val) -{ - /* no ATOMIC protection required here, this is done by calling procedure */ - if ( val != 0 ) - *u8g_output_data_port[pin] |= u8g_data_mask[pin]; - else - *u8g_output_data_port[pin] &= ~u8g_data_mask[pin]; -} - -static void u8g_com_arduino_t6963_set_port_output(void) -{ - uint8_t i; - U8G_ATOMIC_START(); - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#elif defined(__AVR__) - *u8g_mode_port[i] |= u8g_data_mask[i]; -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] |= u8g_data_mask[i]; -#endif - - } - U8G_ATOMIC_END(); -} - -static void u8g_com_arduino_t6963_set_port_input(void) -{ - uint8_t i; - U8G_ATOMIC_START(); - for( i = 0; i < 8; i++ ) - { -#if defined(__PIC32MX) -/* CHIPKIT PIC32 */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; -#elif defined(__AVR__) -/* avr */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#else - /* TODO: use generic Arduino API */ - *u8g_mode_port[i] &= ~u8g_data_mask[i]; - *u8g_output_data_port[i] &= ~u8g_data_mask[i]; // no pullup -#endif - } - U8G_ATOMIC_END(); -} - - -static void u8g_com_arduino_t6963_write(u8g_t *u8g, uint8_t val) -{ - U8G_ATOMIC_START(); - - u8g_com_arduino_t6963_write_data_pin( 0, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 1, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 2, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 3, val&1 ); - val >>= 1; - - u8g_com_arduino_t6963_write_data_pin( 4, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 5, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 6, val&1 ); - val >>= 1; - u8g_com_arduino_t6963_write_data_pin( 7, val&1 ); - val >>= 1; - U8G_ATOMIC_END(); - - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 0); - u8g_MicroDelay(); /* 80ns, reference: t6963 datasheet */ - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ -} - -static uint8_t u8g_com_arduino_t6963_read(u8g_t *u8g) -{ - uint8_t val = 0; - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 0); - u8g_MicroDelay(); /* 150ns, reference: t6963 datasheet */ - - U8G_ATOMIC_START(); - /* only read bits 0, 1 and 3 */ - if ( (*u8g_input_data_port[3] & u8g_data_mask[3]) != 0 ) - val++; - val <<= 1; - val <<= 1; - if ( (*u8g_input_data_port[1] & u8g_data_mask[1]) != 0 ) - val++; - val <<= 1; - if ( (*u8g_input_data_port[0] & u8g_data_mask[0]) != 0 ) - val++; - U8G_ATOMIC_END(); - - u8g_com_arduino_digital_write(u8g, U8G_PI_RD, 1); - u8g_MicroDelay(); /* 10ns, reference: t6963 datasheet */ - - return val; -} - -#define U8G_STATUS_TIMEOUT 50 - -static uint8_t u8g_com_arduino_t6963_until_01_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 3) == 3 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_until_3_ok(u8g_t *u8g) -{ - long x; - - u8g_com_arduino_t6963_set_port_input(); - x = millis(); - x += U8G_STATUS_TIMEOUT; - - for(;;) - { - if ( (u8g_com_arduino_t6963_read(u8g) & 8) == 8 ) - break; - if ( x < millis() ) - return 0; - } - u8g_com_arduino_t6963_set_port_output(); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_cmd(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_01_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - -static uint8_t u8g_com_arduino_t6963_write_auto_data(u8g_t *u8g, uint8_t val) -{ - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 1); - if ( u8g_com_arduino_t6963_until_3_ok(u8g) == 0 ) - return 0; - u8g_com_arduino_digital_write(u8g, U8G_PI_A0, 0); - u8g_com_arduino_t6963_write(u8g, val); - return 1; -} - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g_com_arduino_t6963_init(u8g); - /* setup the RW (equal to WR) pin as output and force it to high */ - if ( u8g->pin_list[U8G_PI_WR] != U8G_PIN_NONE ) - { - pinMode(u8g->pin_list[U8G_PI_WR], OUTPUT); - u8g_com_arduino_digital_write(u8g, U8G_PI_WR, HIGH); - } - /* set all pins (except WR pin) */ - u8g_com_arduino_assign_pin_output_high(u8g); - break; - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, active low chip select */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, HIGH); - } - else - { - /* enable */ - u8g_com_arduino_digital_write(u8g, U8G_PI_CS, LOW); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - u8g_com_arduino_t6963_write_data(u8g, arg_val); - } - else - { - u8g_com_arduino_t6963_write_cmd(u8g, arg_val); - } - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, *ptr++) == 0 ) - break; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b0); /* auto write */ - while( arg_val > 0 ) - { - if ( u8g_com_arduino_t6963_write_auto_data(u8g, u8g_pgm_read(ptr)) == 0 ) - break; - ptr++; - arg_val--; - } - u8g_com_arduino_t6963_write_cmd(u8g, 0x0b2); /* auto reset */ - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 1) or data mode (arg_val = 0) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - //u8g_com_arduino_digital_write(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - if ( u8g->pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); - break; - - } - return 1; -} - -#else - - -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c deleted file mode 100644 index 263766818f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_arduino_uc_i2c.c +++ /dev/null @@ -1,206 +0,0 @@ -/* - - u8g_com_arduino_uc_i2c.c - - com interface for arduino (AND atmega) and the SSDxxxx chip (SOLOMON) variant - I2C protocol - - ToDo: Rename this to u8g_com_avr_ssd_i2c.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_WITH_PINLIST) - -#define DOGM240_SLA_CMD (0x38*2) -#define DOGM240_SLA_DATA (0x39*2) - -uint8_t u8g_com_arduino_uc_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_start(DOGM240_SLA_CMD) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_start(DOGM240_SLA_DATA) == 0 ) - return 0; - } - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - //u8g_com_arduino_digital_write(u8g, U8G_PI_SCL, HIGH); - //u8g_com_arduino_digital_write(u8g, U8G_PI_SDA, HIGH); - //u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: unknown mode */ - - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_arduino_uc_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_arduino_uc_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c deleted file mode 100644 index 71e378b55c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_hw_spi.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_com_atmega_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - - -*/ - -#include "u8g.h" - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - - -static uint8_t u8g_atmega_spi_out(uint8_t data) -{ - /* unsigned char x = 100; */ - /* send data */ - SPDR = data; - /* wait for transmission */ - while (!(SPSR & (1< 0 ) - { - u8g_atmega_spi_out(*ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_spi_out(u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c deleted file mode 100644 index 2b49b04fd0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_parallel.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - - u8g_com_atmega_parallel.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS1 14 - PIN_CS2 15 - PIN_RW 16 - PIN_DI 17 - PIN_EN 18 - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_parallel_write(u8g_t *u8g, uint8_t val) -{ - - u8g_SetPILevel(u8g, U8G_PI_D0, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D1, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D2, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D3, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D4, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D5, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D6, val&1); - val >>= 1; - u8g_SetPILevel(u8g, U8G_PI_D7, val&1); - - /* EN cycle time must be 1 micro second */ - u8g_SetPILevel(u8g, U8G_PI_EN, 1); - u8g_MicroDelay(); /* delay by 1000ns, reference: ST7920: 140ns, SBN1661: 100ns */ - u8g_SetPILevel(u8g, U8G_PI_EN, 0); - u8g_10MicroDelay(); /* ST7920 commands: 72us */ - u8g_10MicroDelay(); /* ST7920 commands: 72us */ -} - - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - /* setup the RW pin as output and force it to low */ - u8g_SetPIOutput(u8g, U8G_PI_RW); - u8g_SetPILevel(u8g, U8G_PI_RW, 0); - - u8g_SetPIOutput(u8g, U8G_PI_D0); - u8g_SetPIOutput(u8g, U8G_PI_D1); - u8g_SetPIOutput(u8g, U8G_PI_D2); - u8g_SetPIOutput(u8g, U8G_PI_D3); - u8g_SetPIOutput(u8g, U8G_PI_D4); - u8g_SetPIOutput(u8g, U8G_PI_D5); - u8g_SetPIOutput(u8g, U8G_PI_D6); - u8g_SetPIOutput(u8g, U8G_PI_D7); - u8g_SetPIOutput(u8g, U8G_PI_EN); - u8g_SetPIOutput(u8g, U8G_PI_CS1); - u8g_SetPIOutput(u8g, U8G_PI_CS2); - u8g_SetPIOutput(u8g, U8G_PI_DI); - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - - break; - case U8G_COM_MSG_STOP: - break; - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 1 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 1); - } - else if ( arg_val == 2 ) - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 1); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - else - { - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS1, 0); - u8g_SetPILevel(u8g, U8G_PI_CS2, 0); - } - break; - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_parallel_write(u8g, arg_val); - break; - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, *ptr++); - arg_val--; - } - } - break; - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_parallel_write(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_DI, arg_val); - break; - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - } - return 1; -} - -#else - -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif /* ARDUINO */ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c deleted file mode 100644 index dd0fd4e15a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_hw_spi.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - - u8g_com_atmega_st7920_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller with HW SPI Support - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif - -#endif - -#if defined(U8G_ATMEGA_HW_SPI) - -#include -#include - -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static uint8_t u8g_atmega_st7920_hw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - /* send data */ - SPDR = val; - /* wait for transmission */ - while (!(SPSR & (1<pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte_hw_spi(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - //u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c deleted file mode 100644 index 24e06028a5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_st7920_spi.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - - u8g_com_atmega_st7920_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - A special SPI interface for ST7920 controller - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_st7920_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) U8G_NOINLINE; -static void u8g_com_atmega_st7920_write_byte(u8g_t *u8g, uint8_t rs, uint8_t val) -{ - uint8_t i; - - if ( rs == 0 ) - { - /* command */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0f8); - } - else if ( rs == 1 ) - { - /* data */ - u8g_atmega_st7920_sw_spi_shift_out(u8g, 0x0fa); - } - - u8g_atmega_st7920_sw_spi_shift_out(u8g, val & 0x0f0); - u8g_atmega_st7920_sw_spi_shift_out(u8g, val << 4); - - for( i = 0; i < 4; i++ ) - u8g_10MicroDelay(); -} - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - /* u8g_SetPIOutput(u8g, U8G_PI_A0); */ - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 0 ); - /* u8g_SetPILevel(u8g, U8G_PI_A0, 0); */ - - u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */ - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - break; - - case U8G_COM_MSG_CHIP_SELECT: - if ( arg_val == 0 ) - { - /* disable, note: the st7920 has an active high chip select */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); - } - else - { - /* u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); */ - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); /* CS = 1 (high active) */ - } - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], arg_val); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], *ptr++); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_com_atmega_st7920_write_byte(u8g, u8g->pin_list[U8G_PI_A0_STATE], u8g_pgm_read(ptr)); - u8g->pin_list[U8G_PI_A0_STATE] = 2; - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c deleted file mode 100644 index fde3153a57..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_atmega_sw_spi.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_com_atmega_sw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) U8G_NOINLINE; -static void u8g_atmega_sw_spi_shift_out(u8g_t *u8g, uint8_t val) -{ - uint8_t i = 8; - do - { - u8g_SetPILevel(u8g, U8G_PI_MOSI, val & 128 ); - val <<= 1; - u8g_SetPILevel(u8g, U8G_PI_SCK, 1 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_MicroDelay(); /* 15 Aug 2012: added for high speed uC */ - i--; - } while( i != 0 ); -} - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_SetPIOutput(u8g, U8G_PI_SCK); - u8g_SetPIOutput(u8g, U8G_PI_MOSI); - u8g_SetPIOutput(u8g, U8G_PI_A0); - u8g_SetPIOutput(u8g, U8G_PI_CS); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - u8g_SetPILevel(u8g, U8G_PI_MOSI, 0 ); - u8g_SetPILevel(u8g, U8G_PI_CS, 1 ); - u8g_SetPILevel(u8g, U8G_PI_A0, 0); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - - if ( arg_val == 0 ) - { - /* disable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 1); - } - else - { - u8g_SetPILevel(u8g, U8G_PI_SCK, 0 ); - /* enable */ - u8g_SetPILevel(u8g, U8G_PI_CS, 0); /* CS = 0 (low active) */ - } - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - - case U8G_COM_MSG_WRITE_BYTE: - u8g_atmega_sw_spi_shift_out(u8g, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, *ptr++); - arg_val--; - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - u8g_atmega_sw_spi_shift_out(u8g, u8g_pgm_read(ptr)); - ptr++; - arg_val--; - } - } - break; - } - return 1; -} - -#else - - -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c deleted file mode 100644 index 8e16bead3d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_i2c.c +++ /dev/null @@ -1,642 +0,0 @@ -/* - - u8g_com_i2c.c - - generic i2c interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -//#define U8G_I2C_WITH_NO_ACK - -static uint8_t u8g_i2c_err_code; -static uint8_t u8g_i2c_opt; /* U8G_I2C_OPT_NO_ACK, SAM: U8G_I2C_OPT_DEV_1 */ -/* - position values - 1: start condition - 2: sla transfer -*/ -static uint8_t u8g_i2c_err_pos; - - -void u8g_i2c_clear_error(void) -{ - u8g_i2c_err_code = U8G_I2C_ERR_NONE; - u8g_i2c_err_pos = 0; -} - -uint8_t u8g_i2c_get_error(void) -{ - return u8g_i2c_err_code; -} - -uint8_t u8g_i2c_get_err_pos(void) -{ - return u8g_i2c_err_pos; -} - -static void u8g_i2c_set_error(uint8_t code, uint8_t pos) -{ - if ( u8g_i2c_err_code > 0 ) - return; - u8g_i2c_err_code |= code; - u8g_i2c_err_pos = pos; -} - - - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_TWI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_TWI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_TWI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_TWI) - -#include -#include - - - -void u8g_i2c_init(uint8_t options) -{ - /* - TWBR: bit rate register - TWSR: status register (contains preselector bits) - - prescalar - 0 1 - 1 4 - 2 16 - 3 64 - - f = F_CPU/(16+2*TWBR*prescalar) - - F_CPU = 16MHz - TWBR = 152; - TWSR = 0; - --> 50KHz - - TWBR = 72; - TWSR = 0; - --> 100KHz - - TWBR = 12; - TWSR = 0; - --> 400KHz - - F_CPU/(2*100000)-8 --> calculate TWBR value for 100KHz -*/ - u8g_i2c_opt = options; - TWSR = 0; - if ( options & U8G_I2C_OPT_FAST ) - { - TWBR = F_CPU/(2*400000)-8; - } - else - { - TWBR = F_CPU/(2*100000)-8; - } - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - volatile uint16_t cnt = 2000; /* timout value should be > 280 for 50KHz Bus and 16 Mhz CPU, however the start condition might need longer */ - while( !(TWCR & mask) ) - { - if ( cnt == 0 ) - { - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - return 1; /* all ok */ - } - else - { - u8g_i2c_set_error(U8G_I2C_ERR_TIMEOUT, pos); - return 0; /* error */ - } - } - cnt--; - } - return 1; /* all ok */ -} - -/* sla includes all 8 bits (with r/w bit), assums master transmit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - register uint8_t status; - - /* send start */ - TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 1) == 0 ) - return 0; - - status = TW_STATUS; - - /* check status after start */ - if ( status != TW_START && status != TW_REP_START ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 1); - return 0; - } - - /* set slave address */ - TWDR = sla; - - /* enable sla transfer */ - TWCR = _BV(TWINT) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 2) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - /* check status after sla */ - if ( status != TW_MT_SLA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 2); - return 0; - } - } - - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - register uint8_t status; - TWDR = data; - TWCR = _BV(TWINT) | _BV(TWEN); - if ( u8g_i2c_wait(_BV(TWINT), 3) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - if ( status != TW_MT_DATA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 3); - return 0; - } - } - - return 1; -} - -void u8g_i2c_stop(void) -{ - /* write stop */ - TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO); - - /* no error is checked for the stop condition */ - u8g_i2c_wait(_BV(TWSTO), 4); - -} - -/* -void twi_send(uint8_t adr, uint8_t data1, uint8_t data2) -{ - u8g_i2c_start(adr<<1); - u8g_i2c_send_byte(data1); - u8g_i2c_send_byte(data2); - u8g_i2c_stop(); -} -*/ - -#elif defined(ARDUINO) && defined(__SAM3X8E__) -/* Arduino Due */ -#include "Arduino.h" -#include "sam.h" - -/* - -Controller - -TWI0 TWCK0 PA18 A DUE PCB: SCL1 -TWI0 TWD0 PA17 A DUE PCB: SDA1 -TWI1 TWCK1 PB13 A DUE PCB: SCL 21 -TWI1 TWD1 PB12 A DUE PCB: SDA 20 - -Arduino definitions - -#define PIN_WIRE_SDA (20u) -#define PIN_WIRE_SCL (21u) -#define WIRE_INTERFACE TWI1 -#define WIRE_INTERFACE_ID ID_TWI1 -#define WIRE_ISR_HANDLER TWI1_Handler - -#define PIN_WIRE1_SDA (70u) -#define PIN_WIRE1_SCL (71u) -#define WIRE1_INTERFACE TWI0 -#define WIRE1_INTERFACE_ID ID_TWI0 -#define WIRE1_ISR_HANDLER TWI0_Handler - - -*/ - -static void i2c_400KHz_delay(void) -{ - /* should be at least 4 */ - /* should be 5 for 100KHz transfer speed */ - - - /* - Arduino Due - 0x NOP: 470KHz - 4x NOP: 450KHz - 8x NOP: 430KHz - 16x NOP: 400KHz - */ - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); -} - -static void i2c_100KHz_delay(void) -{ - /* - 1x u8g_MicroDelay() ca. 130KHz - 2x u8g_MicroDelay() ca. 80KHz - */ - u8g_MicroDelay(); - u8g_MicroDelay(); -} - - -uint32_t i2c_started = 0; -uint32_t i2c_scl_pin = 0; -uint32_t i2c_sda_pin = 0; -void (*i2c_delay)(void) = i2c_100KHz_delay; - -const PinDescription *i2c_scl_pin_desc; -const PinDescription *i2c_sda_pin_desc; - - -/* maybe this can be optimized */ -static void i2c_init(void) -{ - i2c_sda_pin_desc = &(g_APinDescription[i2c_sda_pin]); - i2c_scl_pin_desc = &(g_APinDescription[i2c_scl_pin]); - pinMode(i2c_sda_pin, OUTPUT); - digitalWrite(i2c_sda_pin, HIGH); - pinMode(i2c_scl_pin, OUTPUT); - digitalWrite(i2c_scl_pin, HIGH); - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; - PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - i2c_delay(); -} - -/* actually, the scl line is not observed, so this procedure does not return a value */ -static void i2c_read_scl_and_delay(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_scl_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask ; - - i2c_delay(); -} - -static void i2c_clear_scl(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_scl_pin_desc->pPort->PIO_MDER = dwMask; - i2c_scl_pin_desc->pPort->PIO_CODR = dwMask; - i2c_scl_pin_desc->pPort->PIO_OER = dwMask; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask; - - //PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; -} - -static uint8_t i2c_read_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_sda_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - - return 1; -} - -static void i2c_clear_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_sda_pin_desc->pPort->PIO_MDER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_CODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_OER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - //PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; -} - -static void i2c_start(void) -{ - if ( i2c_started != 0 ) - { - /* if already started: do restart */ - i2c_read_sda(); /* SDA = 1 */ - i2c_delay(); - i2c_read_scl_and_delay(); - } - i2c_read_sda(); - /* - if (i2c_read_sda() == 0) - { - // do something because arbitration is lost - } - */ - /* send the start condition, both lines go from 1 to 0 */ - i2c_clear_sda(); - i2c_delay(); - i2c_clear_scl(); - i2c_started = 1; -} - - -static void i2c_stop(void) -{ - /* set SDA to 0 */ - i2c_clear_sda(); - i2c_delay(); - - /* now release all lines */ - i2c_read_scl_and_delay(); - - /* set SDA to 1 */ - i2c_read_sda(); - i2c_delay(); - i2c_started = 0; -} - -static void i2c_write_bit(uint8_t val) -{ - if (val) - i2c_read_sda(); - else - i2c_clear_sda(); - - i2c_delay(); - i2c_read_scl_and_delay(); - i2c_clear_scl(); -} - -static uint8_t i2c_read_bit(void) -{ - uint8_t val; - /* do not drive SDA */ - i2c_read_sda(); - i2c_delay(); - i2c_read_scl_and_delay(); - val = i2c_read_sda(); - i2c_delay(); - i2c_clear_scl(); - return val; -} - -static uint8_t i2c_write_byte(uint8_t b) -{ - i2c_write_bit(b & 128); - i2c_write_bit(b & 64); - i2c_write_bit(b & 32); - i2c_write_bit(b & 16); - i2c_write_bit(b & 8); - i2c_write_bit(b & 4); - i2c_write_bit(b & 2); - i2c_write_bit(b & 1); - - /* read ack from client */ - /* 0: ack was given by client */ - /* 1: nothing happend during ack cycle */ - return i2c_read_bit(); -} - - - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_opt = options; - u8g_i2c_clear_error(); - - if ( u8g_i2c_opt & U8G_I2C_OPT_FAST ) - { - i2c_delay = i2c_400KHz_delay; - } - else - { - i2c_delay = i2c_100KHz_delay; - } - - - if ( u8g_i2c_opt & U8G_I2C_OPT_DEV_1 ) - { - i2c_scl_pin = PIN_WIRE1_SCL; - i2c_sda_pin = PIN_WIRE1_SDA; - - //REG_PIOA_PDR = PIO_PB12A_TWD1 | PIO_PB13A_TWCK1; - } - else - { - - i2c_scl_pin = PIN_WIRE_SCL; - i2c_sda_pin = PIN_WIRE_SDA; - - //REG_PIOA_PDR = PIO_PA17A_TWD0 | PIO_PA18A_TWCK0; - } - - i2c_init(); - -} - -/* sla includes also the r/w bit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - i2c_start(); - i2c_write_byte(sla); - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return i2c_write_byte(data); -} - -void u8g_i2c_stop(void) -{ - i2c_stop(); -} - - -#elif defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -#define I2C_SLA 0x3c - -static int fd=-1; -static uint8_t i2cMode = 0; - -void u8g_i2c_init(uint8_t options) { - u8g_i2c_clear_error(); - u8g_i2c_opt = options; - - if (wiringPiSetup() == -1) { - printf("wiringPi-Error\n"); - exit(1); - } - - fd = wiringPiI2CSetup(I2C_SLA); - if (fd < 0) { - printf ("Unable to open I2C device 0: %s\n", strerror (errno)) ; - exit (1) ; - } - //u8g_SetPIOutput(u8g, U8G_PI_RESET); - //u8g_SetPIOutput(u8g, U8G_PI_A0); -} -uint8_t u8g_i2c_start(uint8_t sla) { - u8g_i2c_send_mode(0); - - return 1; -} - -void u8g_i2c_stop(void) { -} - -uint8_t u8g_i2c_send_mode(uint8_t mode) { - i2cMode = mode; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) { - wiringPiI2CWriteReg8(fd, i2cMode, data); - - return 1; -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -#else - -/* empty interface */ - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -uint8_t u8g_i2c_start(uint8_t sla) -{ - return 1; -} -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return 1; -} - -void u8g_i2c_stop(void) -{ -} - - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c deleted file mode 100644 index 38a88a0fab..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_io.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - - u8g_com_io.c - - abstraction layer for low level i/o - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) Convert to internal number: AVR: port*8+bitpos, ARM: port*16+bitpos - void u8g_SetPinOutput(uint8_t internal_pin_number) - void u8g_SetPinInput(uint8_t internal_pin_number) - void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) - uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -#include -#include - -typedef volatile uint8_t * IO_PTR; - -/* create internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -const IO_PTR u8g_avr_ddr_P[] PROGMEM = { -#ifdef DDRA - &DDRA, -#else - 0, -#endif - &DDRB, -#ifdef DDRC - &DDRC, -#ifdef DDRD - &DDRD, -#ifdef DDRE - &DDRE, -#ifdef DDRF - &DDRF, -#ifdef DDRG - &DDRG, -#ifdef DDRH - &DDRH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - - -const IO_PTR u8g_avr_port_P[] PROGMEM = { -#ifdef PORTA - &PORTA, -#else - 0, -#endif - &PORTB, -#ifdef PORTC - &PORTC, -#ifdef PORTD - &PORTD, -#ifdef PORTE - &PORTE, -#ifdef PORTF - &PORTF, -#ifdef PORTG - &PORTG, -#ifdef PORTH - &PORTH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -const IO_PTR u8g_avr_pin_P[] PROGMEM = { -#ifdef PINA - &PINA, -#else - 0, -#endif - &PINB, -#ifdef PINC - &PINC, -#ifdef PIND - &PIND, -#ifdef PINE - &PINE, -#ifdef PINF - &PINF, -#ifdef PING - &PING, -#ifdef PINH - &PINH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -static volatile uint8_t *u8g_get_avr_io_ptr(const IO_PTR *base, uint8_t offset) -{ - volatile uint8_t * tmp; - base += offset; - memcpy_P(&tmp, base, sizeof(volatile uint8_t * PROGMEM)); - return tmp; -} - -/* set direction to output of the specified pin (internal pin number) */ -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) |= _BV(internal_pin_number&7); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) &= ~_BV(internal_pin_number&7); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_port_P, internal_pin_number>>3); - - if ( level == 0 ) - { - U8G_ATOMIC_AND(tmp, ~_BV(internal_pin_number&7)); - // *tmp &= ~_BV(internal_pin_number&7); - } - else - { - U8G_ATOMIC_OR(tmp, _BV(internal_pin_number&7)); - //*tmp |= _BV(internal_pin_number&7); - } - -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_pin_P, internal_pin_number>>3); - if ( ((*tmp) & _BV(internal_pin_number&7)) != 0 ) - return 1; - return 0; -} - -#elif defined(U8G_RASPBERRY_PI) - -#include -//#include "/usr/local/include/wiringPi.h" - -void u8g_SetPinOutput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, OUTPUT); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, INPUT); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) { - digitalWrite(internal_pin_number, level); -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) { - return digitalRead(internal_pin_number); -} - - -#else - -/* convert "port" and "bitpos" to internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - return 0; -} - -#endif - - -#if defined(U8G_WITH_PINLIST) - -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinOutput(pin); -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinLevel(pin, level); -} - -#else /* defined(U8G_WITH_PINLIST) */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ -} - -#endif /* defined(U8G_WITH_PINLIST) */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c deleted file mode 100644 index 1d9deebff6..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_null.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - - u8g_com_null.c - - communication null device - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - break; - case U8G_COM_MSG_STOP: - break; - - - case U8G_COM_MSG_CHIP_SELECT: - /* arg_val contains the chip number, which should be enabled */ - break; - - - case U8G_COM_MSG_WRITE_BYTE: - break; - case U8G_COM_MSG_WRITE_SEQ: - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c deleted file mode 100644 index 611391f54b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_hw_spi.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - - u8g_com_raspberrypi_hw_spi.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Assumes, that - MOSI is at PORTB, Pin 3 - and - SCK is at PORTB, Pin 5 - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START() - U8G_ATOMIC_END() - - - -*/ - -#include "u8g.h" - - - -#if defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - // check wiringPi setup - if (wiringPiSetup() == -1) - { - printf("wiringPi-Error\n"); - exit(1); - } - - if (wiringPiSPISetup (0, 100000) < 0) - { - printf ("Unable to open SPI device 0: %s\n", strerror (errno)) ; - exit (1) ; - } - - u8g_SetPIOutput(u8g, U8G_PI_RESET); - u8g_SetPIOutput(u8g, U8G_PI_A0); - - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g_SetPILevel(u8g, U8G_PI_A0, arg_val); - break; - - case U8G_COM_MSG_CHIP_SELECT: - /* Done by the SPI hardware */ - break; - - case U8G_COM_MSG_RESET: - u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val); - break; - - case U8G_COM_MSG_WRITE_BYTE: - wiringPiSPIDataRW (0, &arg_val, 1) ; - break; - - case U8G_COM_MSG_WRITE_SEQ: - wiringPiSPIDataRW (0, arg_ptr, arg_val); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - wiringPiSPIDataRW (0, arg_ptr, arg_val); - break; - } - return 1; -} - -#else - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - return 1; -} - -#endif - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c deleted file mode 100644 index 88d85ded21..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_com_raspberrypi_ssd_i2c.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - Special pin usage: - U8G_PI_I2C_OPTION additional options - U8G_PI_A0_STATE used to store the last value of the command/data register selection - U8G_PI_SET_A0 1: Signal request to update I2C device with new A0_STATE, 0: Do nothing, A0_STATE matches I2C device - U8G_PI_SCL clock line (NOT USED) - U8G_PI_SDA data line (NOT USED) - - U8G_PI_RESET reset line (currently disabled, see below) - - Protocol: - SLA, Cmd/Data Selection, Arguments - The command/data register is selected by a special instruction byte, which is sent after SLA - - The continue bit is always 0 so that a (re)start is equired for the change from cmd to/data mode -*/ - -#include "u8g.h" - -#if defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -#define I2C_SLA 0x3c -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - -#if defined(U8G_WITH_PINLIST) - -uint8_t u8g_com_raspberrypi_ssd_start_sequence(u8g_t *u8g) -{ - /* are we requested to set the a0 state? */ - if ( u8g->pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( u8g->pin_list[U8G_PI_A0_STATE] == 0 ) - { - if ( u8g_i2c_send_mode(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - if ( u8g_i2c_send_mode(I2C_DATA_MODE) == 0 ) - return 0; - } - - - u8g->pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - u8g_SetPIOutput(u8g, U8G_PI_RESET); - u8g_SetPIOutput(u8g, U8G_PI_A0); - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - break; - - case U8G_COM_MSG_CHIP_SELECT: - u8g->pin_list[U8G_PI_A0_STATE] = 0; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - u8g_i2c_stop(); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - if ( u8g_i2c_send_byte(arg_val) == 0 ) - return u8g_i2c_stop(), 0; - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = (uint8_t *)arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(*ptr++) == 0 ) - return u8g_i2c_stop(), 0; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_raspberrypi_ssd_start_sequence(u8g) == 0 ) - return u8g_i2c_stop(), 0; - { - register uint8_t *ptr = (uint8_t *)arg_ptr; - while( arg_val > 0 ) - { - if ( u8g_i2c_send_byte(u8g_pgm_read(ptr)) == 0 ) - return 0; - ptr++; - arg_val--; - } - } - // u8g_i2c_stop(); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - u8g->pin_list[U8G_PI_A0_STATE] = arg_val; - u8g->pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - -#ifdef OLD_CODE - if ( i2c_state != 0 ) - { - u8g_i2c_stop(); - i2c_state = 0; - } - - if ( u8g_com_raspberrypi_ssd_start_sequence(arg_val) == 0 ) - return 0; - - /* setup bus, might be a repeated start */ - /* - if ( u8g_i2c_start(I2C_SLA) == 0 ) - return 0; - if ( arg_val == 0 ) - { - i2c_state = 1; - - if ( u8g_i2c_send_byte(I2C_CMD_MODE) == 0 ) - return 0; - } - else - { - i2c_state = 2; - if ( u8g_i2c_send_byte(I2C_DATA_MODE) == 0 ) - return 0; - } - */ -#endif - break; - } - return 1; -} - -#else /* defined(U8G_WITH_PINLIST) */ - -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) { - return 1; -} - -#endif /* defined(U8G_WITH_PINLIST) */ -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c deleted file mode 100644 index 62075ba6ef..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_cursor.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - - u8g_cursor.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font) -{ - u8g->cursor_font = cursor_font; -} - -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding) -{ - u8g->cursor_encoding = encoding; -} - -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg) -{ - u8g->cursor_bg_color = bg; - u8g->cursor_fg_color = fg; -} - -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y) -{ - u8g->cursor_x = cursor_x; - u8g->cursor_y = cursor_y; -} - -void u8g_EnableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = u8g_DrawCursor; -} - -void u8g_DisableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = (u8g_draw_cursor_fn)0; -} - -void u8g_DrawCursor(u8g_t *u8g) -{ - const u8g_pgm_uint8_t *font; - uint8_t color; - uint8_t encoding = u8g->cursor_encoding; - - /* get current values */ - color = u8g_GetColorIndex(u8g); - font = u8g->font; - - /* draw cursor */ - u8g->font = u8g->cursor_font; - encoding++; - u8g_SetColorIndex(u8g, u8g->cursor_bg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - encoding--; - u8g_SetColorIndex(u8g, u8g->cursor_fg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - /* u8g_DrawGlyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - - /* restore previous values */ - u8g->font = font; - u8g_SetColorIndex(u8g, color); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c deleted file mode 100644 index a1329da1dd..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_delay.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - - u8g_delay.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - void u8g_Delay(uint16_t val) Delay by "val" milliseconds - void u8g_MicroDelay(void) Delay be one microsecond - void u8g_10MicroDelay(void) Delay by 10 microseconds - - -*/ - - -#include "u8g.h" - -/*==== Part 1: Derive suitable delay procedure ====*/ - -#if defined(ARDUINO) - -# if ARDUINO < 100 -# include -# else -# include -# endif - -# if defined(__AVR__) -# define USE_AVR_DELAY -# elif defined(__PIC32MX) -# define USE_PIC32_DELAY -# elif defined(__arm__) /* Arduino Due & Teensy */ -# define USE_ARDUINO_DELAY -# else -# define USE_ARDUINO_DELAY -# endif -#elif defined(U8G_RASPBERRY_PI) -# define USE_RASPBERRYPI_DELAY -#elif defined(__AVR__) -# define USE_AVR_DELAY -#elif defined(__18CXX) -# define USE_PIC18_DELAY -#elif defined(__arm__) -/* do not define anything, all procedures are expected to be defined outside u8glib */ - -/* -void u8g_Delay(uint16_t val); -void u8g_MicroDelay(void); -void u8g_10MicroDelay(void); -*/ - -#else -# define USE_DUMMY_DELAY -#endif - - - -/*==== Part 2: Definition of the delay procedures ====*/ - -/*== Raspberry Pi Delay ==*/ -#if defined (USE_RASPBERRYPI_DELAY) -#include -//#include "/usr/local/include/wiringPi.h" -void u8g_Delay(uint16_t val) { - //delay(val); - //usleep((uint32_t)val*(uint32_t)1000); - delayMicroseconds((uint32_t)val*(uint32_t)1000); -} -void u8g_MicroDelay(void) -{ - usleep(1); -} -void u8g_10MicroDelay(void) -{ - usleep(10); -} -#endif - - -/*== AVR Delay ==*/ - -#if defined(USE_AVR_DELAY) -#include -#include -#include - -/* - Delay by the provided number of milliseconds. - Thus, a 16 bit value will allow a delay of 0..65 seconds - Makes use of the _delay_loop_2 - - _delay_loop_2 will do a delay of n * 4 prozessor cycles. - with f = F_CPU cycles per second, - n = f / (1000 * 4 ) - with f = 16000000 the result is 4000 - with f = 1000000 the result is 250 - - the millisec loop, gcc requires the following overhead: - - movev 1 - - subwi 2x2 - - bne i 2 - ==> 7 cycles - ==> must be devided by 4, rounded up 7/4 = 2 -*/ -void u8g_Delay(uint16_t val) -{ - /* old version did a call to the arduino lib: delay(val); */ - while( val != 0 ) - { - _delay_loop_2( (F_CPU / 4000 ) -2); - val--; - } -} - -/* delay by one micro second */ -void u8g_MicroDelay(void) -{ -#if (F_CPU / 4000000 ) > 0 - _delay_loop_2( (F_CPU / 4000000 ) ); -#endif -} - -/* delay by 10 micro seconds */ -void u8g_10MicroDelay(void) -{ -#if (F_CPU / 400000 ) > 0 - _delay_loop_2( (F_CPU / 400000 ) ); -#endif -} - -#endif - - -/*== Delay for PIC18 (not tested) ==*/ - -#if defined(USE_PIC18_DELAY) -#include -#define GetSystemClock() (64000000ul) // Hz -#define GetInstructionClock() (GetSystemClock()/4) - -void u8g_Delay(uint16_t val) -{/* - unsigned int _iTemp = (val); - while(_iTemp--) - Delay1KTCYx((GetInstructionClock()+999999)/1000000); - */ -} -void u8g_MicroDelay(void) -{ - /* not implemented */ -} -void u8g_10MicroDelay(void) -{ - /* not implemented */ -} -#endif - - -/*== Arduino Delay ==*/ -#if defined(USE_ARDUINO_DELAY) -void u8g_Delay(uint16_t val) -{ -#if defined(__arm__) - delayMicroseconds((uint32_t)val*(uint32_t)1000); -#else - delay(val); -#endif -} -void u8g_MicroDelay(void) -{ - delayMicroseconds(1); -} -void u8g_10MicroDelay(void) -{ - delayMicroseconds(10); -} -#endif - -#if defined(USE_PIC32_DELAY) -/* - Assume chipkit here with F_CPU correctly defined - The problem was, that u8g_Delay() is called within the constructor. - It seems that the chipkit is not fully setup at this time, so a - call to delay() will not work. So here is my own implementation. - -*/ -#define CPU_COUNTS_PER_SECOND (F_CPU/2UL) -#define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL) -#include "plib.h" -void u8g_Delay(uint16_t val) -{ - uint32_t d; - uint32_t s; - d = val; - d *= TICKS_PER_MILLISECOND; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/1000; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_10MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/100; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -#endif - -/*== Any other systems: Dummy Delay ==*/ -#if defined(USE_DUMMY_DELAY) -void u8g_Delay(uint16_t val) -{ - /* do not know how to delay... */ -} -void u8g_MicroDelay(void) -{ -} -void u8g_10MicroDelay(void) -{ -} -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c deleted file mode 100644 index 8968a26da5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_a2_micro_printer.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - - u8g_dev_a2_micro_printer_ds.c - - Use DC2 bitmap command of the A2 Micro panel termal printer - double stroke - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define LINE_DELAY 40 - - -uint8_t u8g_dev_a2_micro_printer_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height ); - u8g_WriteByte(u8g, dev, pb->width/8 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, *ptr); - ptr++; - } - u8g_Delay(LINE_DELAY); - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_expand4(uint8_t val) -{ - uint8_t a,b,c,d; - a = val&1; - b = (val&2)<<1; - c = (val&4)<<2; - d = (val&8)<<3; - a |=b; - a |=c; - a |=d; - a |= a<<1; - return a; -} - -uint8_t u8g_dev_a2_micro_printer_double_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - { - //u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 42 ); /* * */ - //u8g_WriteByte(u8g, dev, pb->p.total_height*2 ); - //u8g_WriteByte(u8g, dev, pb->width/8*2 ); - } - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - uint8_t *p2; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 35 ); /* # */ - //u8g_WriteByte(u8g, dev, 0x0ff ); /* max */ - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height*2 ); - u8g_WriteByte(u8g, dev, pb->width/8*2 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(LINE_DELAY); - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(LINE_DELAY); - ptr += pb->width/8; - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -#if defined(U8G_16BIT) -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 384, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 360, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 720, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#else -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 240, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#endif - -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x120_ds, 192, 120, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c deleted file mode 100644 index d86d08e050..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_flipdisc_2x7.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - - u8g_dev_flipdisc.c - - 1-Bit (BW) Driver for flip disc matrix - 2x 7 pixel height - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -#define WIDTH 28 -#define HEIGHT 14 -#define PAGE_HEIGHT 14 - -/* - Write data to the flip disc matrix. - This procedure must be implemented by the user. - Arguments: - id: Id for the matrix. Currently always 0. - page: A page has a height of 14 pixel. For a matrix with HEIGHT == 14 this will be always 0 - width: The width of the flip disc matrix. Always equal to WIDTH - row1: first data line (7 pixel per byte) - row2: first data line (7 pixel per byte) -*/ -void writeFlipDiscMatrix(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - - - -void (*u8g_write_flip_disc_matrix)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)) -{ - u8g_write_flip_disc_matrix = cb; -} - -uint8_t u8g_dev_flipdisc_2x7_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - - (*u8g_write_flip_disc_matrix)(0, pb->p.page, WIDTH, pb->buf, (uint8_t *)(pb->buf)+WIDTH); - } - break; - case U8G_DEV_MSG_CONTRAST: - return 1; - } - return u8g_dev_pb14v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_flipdisc_2x7_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_flipdisc_2x7_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_flipdisc_2x7_bw_buf}; -u8g_dev_t u8g_dev_flipdisc_2x7 = { u8g_dev_flipdisc_2x7_bw_fn, &u8g_dev_flipdisc_2x7_bw_pb, u8g_com_null_fn }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c deleted file mode 100644 index cb2342ac4a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_gprof.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - - u8g_dev_gprof.c - - Device for performance measurement with gprof. - Does not write any data, but uses a buffer. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - -*/ - -#include "u8g.h" - - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_pb_dev_gprof_buf[WIDTH]; -u8g_pb_t u8g_pb_dev_gprof = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_pb_dev_gprof_buf }; - -u8g_dev_t u8g_dev_gprof = { u8g_dev_gprof_fn, &u8g_pb_dev_gprof, NULL }; - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - /* - { - uint8_t i, j; - uint8_t page_height; - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - printf("%02d ", j); - for( i = 0; i < WIDTH; i++ ) - { - if ( (u8g_pb_dev_stdout_buf[i] & (1<p)) == 0 ) - { - //printf("\n"); - return 0; - } - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x2, y2; - - y2 = bbx->y; - y2 += bbx->h; - y2--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, y2) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - x2 = bbx->x; - x2 += bbx->w; - x2--; - - if ( u8g_pb_IsXIntersection(pb, bbx->x, x2) == 0 ) - return 0; - } - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ht1632.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ht1632.c deleted file mode 100644 index 4977793f1e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ht1632.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - - u8g_dev_ht1632.c - - 1-Bit (BW) Driver for HT1632 controller - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - U8G_PIN_NONE can be used as argument - - uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { - ... - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - -mapping - -#define DATA_PIN --> U8G_PI_MOSI -#define WR_PIN --> U8G_PI_SCK -#define CS_PIN --> U8G_PI_CS - U8G_PI_A0 --> not used - U8G_PI_RESET --> not used - -Usage: - - u8g_InitSPI(&u8g, &u8g_dev_ht1632_24x16, WR_PIN, DATA_IN, CS_PIN, U8G_PIN_NONE, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 24 -#define HEIGHT 16 -#define PAGE_HEIGHT 16 - -/* http://forum.arduino.cc/index.php?topic=168537.0 */ - -#define HT1632_CMD_SYSDIS 0x00 // CMD= 0000-0000-x Turn off oscil -#define HT1632_CMD_SYSON 0x01 // CMD= 0000-0001-x Enable system oscil -#define HT1632_CMD_LEDOFF 0x02 // CMD= 0000-0010-x LED duty cycle gen off -#define HT1632_CMD_LEDON 0x03 // CMD= 0000-0011-x LEDs ON -#define HT1632_CMD_BLOFF 0x08 // CMD= 0000-1000-x Blink OFF -#define HT1632_CMD_BLON 0x09 // CMD= 0000-1001-x Blink On -#define HT1632_CMD_SLVMD 0x10 // CMD= 0001-00xx-x Slave Mode -#define HT1632_CMD_MSTMD 0x14 // CMD= 0001-01xx-x Master Mode -#define HT1632_CMD_RCCLK 0x18 // CMD= 0001-10xx-x Use on-chip clock -#define HT1632_CMD_EXTCLK 0x1C // CMD= 0001-11xx-x Use external clock -#define HT1632_CMD_COMS00 0x20 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS01 0x24 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS10 0x28 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS11 0x2C // P-MOS OUTPUT AND 16COMMON OPTION -#define HT1632_CMD_PWM 0xA0 // CMD= 101x-PPPP-x PWM duty cycle - -#define HT1632_ID_CMD 4 /* ID = 100 - Commands */ -#define HT1632_ID_RD 6 /* ID = 110 - Read RAM */ -#define HT1632_ID_WR 5 /* ID = 101 - Write RAM */ - -#define HT1632_ID_LEN 3 // IDs are 3 bits -#define HT1632_CMD_LEN 8 // CMDs are 8 bits -#define HT1632_DATA_LEN 8 // Data are 4*2 bits -#define HT1632_ADDR_LEN 7 // Address are 7 bits - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -//#define WR_PIN 3 -//#define DATA_PIN 2 -//#define CS_PIN 4 - -void ht1632_write_data_MSB(u8g_t *u8g, uint8_t cnt, uint8_t data, uint8_t extra) -{ - int8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - - for(i = cnt - 1; i >= 0; i--) - { - if ((data >> i) & 1) - { - digitalWrite(data_pin, HIGH); - } - else - { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } - - // Send an extra bit - if (extra) - { - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - -void ht1632_write_data(u8g_t *u8g, uint8_t cnt, uint8_t data) -{ - uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - for (i = 0; i < cnt; i++) - { - - if ((data >> i) & 1) { - digitalWrite(data_pin, HIGH); - } - else { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - - -void ht1632_init(u8g_t *u8g) -{ - //uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - pinMode(data_pin, OUTPUT); - pinMode(wr_pin, OUTPUT); - pinMode(cs_pin, OUTPUT); - - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, HIGH); - digitalWrite(cs_pin, HIGH); - - digitalWrite(cs_pin, LOW); - /* init display once after startup */ - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); // IDs are 3 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSDIS, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_COMS11, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_LEDON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_BLOFF, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM+15, true); // 8 bits - digitalWrite(cs_pin, HIGH); - - /* removed following (debug) code */ - /* - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, 0, false); - for(i = 0; i<48; ++i) - { - ht1632_write_data(u8g, 8, 0xFF); - } - digitalWrite(cs_pin, HIGH); - */ -} - -/* - page: 0=data contain lines 0..16, 1=data contain lines 16..32 (a 24x16 display will only have page 0) - cnt: width of the display - data: pointer to a buffer with 2*cnt bytes. -*/ -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ - uint8_t addr; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - /* send data to the ht1632 */ - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, page*2*cnt, false); - - // Operating in progressive addressing mode - for (addr = 0; addr < cnt; addr++) - { - ht1632_write_data(u8g, 8, data[addr]); - ht1632_write_data(u8g, 8, data[addr+cnt]); - } - digitalWrite(cs_pin, HIGH); -} - -/* value is between 0...15 */ -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM + value, false); - digitalWrite(cs_pin, HIGH); -} - -#else -void ht1632_init(u8g_t *u8g) -{ -} - -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ -} - -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ -} - -#endif /* ARDUINO */ - - -uint8_t u8g_dev_ht1632_24x16_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - ht1632_init(u8g); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - ht1632_transfer_data(u8g, pb->p.page, WIDTH, pb->buf); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* values passed to SetContrast() are between 0 and 255, scale down to 0...15 */ - ht1632_set_contrast(u8g, (*(uint8_t *)arg) >> 4); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ht1632_24x16_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ht1632_24x16_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ht1632_24x16_buf}; -u8g_dev_t u8g_dev_ht1632_24x16 = { u8g_dev_ht1632_24x16_fn, &u8g_dev_ht1632_24x16_pb, u8g_com_null_fn }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c deleted file mode 100644 index 35db466b27..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ili9325d_320x240.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - - u8g_dev_ili9325d_320x240.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Color format - Red: 5 Bit - Green: 6 Bit - Blue: 5 Bit - - -*/ - -#include "u8g.h" - -#define WIDTH 240 - -#if defined(U8G_16BIT) -#define HEIGHT 320 -#else -/* if the user tries to compile the 8Bit version of the lib, then restrict the height to something which fits to 8Bit */ -#define HEIGHT 240 -#endif -#define PAGE_HEIGHT 4 - - -/* - reference board for this device: - http://iteadstudio.com/store/index.php?main_page=product_info&cPath=57_58&products_id=55 - documentation: - http://iteadstudio.com/Downloadfile/ITDB02_material.rar - datasheet - http://www.newhavendisplay.com/app_notes/ILI9325D.pdf - other libs - http://henningkarlsen.com/electronics/library.php - init sequence - http://code.google.com/p/itdb02/, ITDB02.cpp, iteadstudio.com -*/ - -static const uint8_t u8g_dev_ili9325d_320x240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - //U8G_ESC_ADR(0), 0x000, 0x0E5, /* only used for none D version: set SRAM internal timing */ - //U8G_ESC_ADR(1), 0x078, 0x0f0, - U8G_ESC_ADR(0), 0x000, 0x001, /* Driver Output Control, bits 8 & 10 */ - U8G_ESC_ADR(1), 0x001, 0x000, - U8G_ESC_ADR(0), 0x000, 0x002, /* LCD Driving Wave Control, bit 9: Set line inversion */ - U8G_ESC_ADR(1), 0x002, 0x000, /* ITDB02 none D verion: 0x007, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x003, /* Entry Mode, GRAM write direction and BGR=1 */ - U8G_ESC_ADR(1), 0x010, 0x030, - U8G_ESC_ADR(0), 0x000, 0x004, /* Resize register */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x008, /* Display Control 2: set the back porch and front porch */ - U8G_ESC_ADR(1), 0x002, 0x007, - - U8G_ESC_ADR(0), 0x000, 0x009, /* Display Control 3 */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x00a, /* Display Control 4: FMARK */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00c, /* RGB Display Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00d, /* Frame Maker Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00f, /* RGB Display Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: DC1[2:0], DC0[2:0], VC[2:0] */ - U8G_ESC_ADR(1), 0x000, 0x007, - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VREG1OUT voltage */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, but do not display */ - U8G_ESC_ADR(1), 0x000, 0x001, - - U8G_ESC_DLY(100), /* delay 100 ms */ /* ITDB02 none D verion: 50ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x016, 0x090, /* ITDB02 none D verion: 0x010, 0x090 */ - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x002, 0x027, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VCI: External, VCI*1.80 */ - U8G_ESC_ADR(1), 0x000, 0x00d, /* ITDB02 none D verion: 0x000, 0x01f */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x012, 0x000, /* ITDB02 none D verion: 0x015, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x029, /* Power Control 7 */ - U8G_ESC_ADR(1), 0x000, 0x00a, /* ITDB02 none D verion: 0x000, 0x027 */ - U8G_ESC_ADR(0), 0x000, 0x02b, /* Frame Rate: 83 */ - U8G_ESC_ADR(1), 0x000, 0x00d, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - - /* gamma control */ - U8G_ESC_ADR(0), 0x000, 0x030, - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x031, - U8G_ESC_ADR(1), 0x004, 0x004, - U8G_ESC_ADR(0), 0x000, 0x032, - U8G_ESC_ADR(1), 0x000, 0x003, - U8G_ESC_ADR(0), 0x000, 0x035, - U8G_ESC_ADR(1), 0x004, 0x005, - U8G_ESC_ADR(0), 0x000, 0x036, - U8G_ESC_ADR(1), 0x008, 0x008, - U8G_ESC_ADR(0), 0x000, 0x037, - U8G_ESC_ADR(1), 0x004, 0x007, - U8G_ESC_ADR(0), 0x000, 0x038, - U8G_ESC_ADR(1), 0x003, 0x003, - U8G_ESC_ADR(0), 0x000, 0x039, - U8G_ESC_ADR(1), 0x007, 0x007, - U8G_ESC_ADR(0), 0x000, 0x03c, - U8G_ESC_ADR(1), 0x005, 0x004, - U8G_ESC_ADR(0), 0x000, 0x03d, - U8G_ESC_ADR(1), 0x008, 0x008, - - U8G_ESC_ADR(0), 0x000, 0x050, /* Horizontal GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x051, /* Horizontal GRAM End Address: 239 */ - U8G_ESC_ADR(1), 0x000, 0x0EF, - U8G_ESC_ADR(0), 0x000, 0x052, /* Vertical GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x053, /* Vertical GRAM End Address: 319 */ - U8G_ESC_ADR(1), 0x001, 0x03F, - - U8G_ESC_ADR(0), 0x000, 0x060, /* Driver Output Control 2 */ - U8G_ESC_ADR(1), 0x0a7, 0x000, - U8G_ESC_ADR(0), 0x000, 0x061, /* Base Image Display Control: NDL,VLE, REV */ - U8G_ESC_ADR(1), 0x000, 0x001, - U8G_ESC_ADR(0), 0x000, 0x06a, /* Vertical Scroll Control */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x080, /* Partial Image 1 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x081, /* Partial Image 1 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x082, /* Partial Image 1 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x083, /* Partial Image 2 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x084, /* Partial Image 2 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x085, /* Partial Image 2 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x090, /* Panel Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x092, /* Panel Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, /* 0x006, 0x000 */ - - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, display ON */ - U8G_ESC_ADR(1), 0x001, 0x033, - - U8G_ESC_DLY(10), /* delay 10 ms */ - - /* write test pattern */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x022, /* Write Data to GRAM */ - U8G_ESC_ADR(1), 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_ili9325d_320x240_page_seq[] PROGMEM = { - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_high_byte(uint8_t color) -{ - uint8_t h; - h = color; - h &= 0x0e0; - h |= h>>3; - h &= 0x0f8; - color>>=2; - color &= 7; - h |= color; - return h; -} - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_low_byte(uint8_t color) -{ - uint8_t l; - l = color; - l <<= 3; - color &= 3; - color <<= 1; - l |= color; - return l; -} - - -uint8_t u8g_dev_ili9325d_320x240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - //for(;;) - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_init_seq); - - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - uint16_t y, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < pb->p.page_height; i ++ ) - { - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_page_seq); - u8g_WriteByte(u8g, dev, y >> 8 ); /* display ram (cursor) address high byte */ - u8g_WriteByte(u8g, dev, y & 255 ); /* display ram (cursor) address low byte */ - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0 ); - u8g_WriteByte(u8g, dev, 0x022 ); /* start gram data */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( j = 0; j < pb->width; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_high_byte(*ptr) ); - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_low_byte(*ptr) ); - - ptr++; - } - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_ili9325d_320x240_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_ili9325d_320x240_8h8_pb U8G_NOCOMMON = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_ili9325d_320x240_8h8_buf}; -u8g_dev_t u8g_dev_ili9325d_320x240_8bit U8G_NOCOMMON = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_port_d_wr_fn }; -//u8g_dev_t u8g_dev_ili9325d_320x240_8bit = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_parallel_fn }; - -//U8G_PB_DEV(u8g_dev_ili9325d_320x240_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ili9325d_320x240_fn, U8G_COM_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c deleted file mode 100644 index f30f8a38ce..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ks0108_128x64.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - - u8g_dev_ks0108_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - ADDRESS = 0 (Command Mode) - 0x03f Display On - 0x0c0 Start Display at line 0 - 0x040 | y write to y address (y:0..63) - 0x0b8 | x write to page [0..7] - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ks0108_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(0), /* disable all chips */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ks0108_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ks0108_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, 64+(uint8_t *)pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ks0108_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ks0108_128x64_fast, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c deleted file mode 100644 index e05fa03a9a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_160x80.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - - u8g_dev_lc7981_160x80.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 80 -#define PAGE_HEIGHT 8 - - -/* - code ideas: - https://github.com/vsergeev/embedded-drivers/tree/master/avr-lc7981 - data sheets: - http://www.lcd-module.de/eng/pdf/zubehoer/lc7981.pdf - http://www.lcd-module.de/pdf/grafik/w160-6.pdf -*/ - -static const uint8_t u8g_dev_lc7981_160x80_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_160x80_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_160x80_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_160x80_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c deleted file mode 100644 index f0b9c31485..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x128.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x128.c - - Hitachi Display SP14N002 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x128%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x128_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c deleted file mode 100644 index 9464b52aec..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_240x64.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x64.c - - Tested with Nan Ya LM_J6_003_ - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c deleted file mode 100644 index fe28f942e8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_lc7981_320x64.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_lc7981_320x64.c - - Note: Requires 16 bit mode (Must be enabled in u8g.h) - - Tested with Varitronix MGLS32064-03.pdf - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#ifdef U8G_16BIT -#define WIDTH 320 -#else -#define WIDTH 240 -#endif - -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS32064-03.pdf -*/ - -static const uint8_t u8g_dev_lc7981_320x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_320x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_320x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_320x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_320x64_fn, U8G_COM_FAST_PARALLEL); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c deleted file mode 100644 index 596d95898b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ld7032_60x32.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ld7032_60x32.c - - 60x32 OLED display - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* define width as 64, so that it is a multiple of 8 */ -#define WIDTH 64 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ld7032_60x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(1), /* delay 1 ms */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x014, /* Dot Matrix Display Stand-by ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01a, /* Dot Matrix Frame Rate */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* special value for this OLED from manual */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01d, /* Graphics Memory Writing Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (right down, horizontal) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x009, /* Display Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (x,y: min --> max) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x030, /* Display Size X */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Column Start Output */ - 0x03b, /* Column End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x032, /* Display Size Y */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Row Start Output */ - 0x01f, /* Row End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x010, /* Peak Pulse Width Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x016, /* Peak Pulse Delay Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x012, /* Dot Matrix Current Level Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* 0x050 * 1 uA = 80 uA */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x018, /* Pre-Charge Pulse Width */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* 3 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x044, /* Pre-Charge Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* Every Time */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x048, /* Row overlap timing */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* Pre-Charge + Peak Delay + Peak boot Timing */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03f, /* VCC_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x011, /* ??? */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03d, /* VSS selection */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 2.8V */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x008, /* write data */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* use box commands to set start adr */ -static const uint8_t u8g_dev_ld7032_60x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x034, /* box x start */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x035, /* box x end */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x037, /* box y end */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x036, /* box y start */ - U8G_ESC_ADR(1), /* data mode */ - - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ld7032_60x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_data_start); - u8g_WriteByte(u8g, dev, pb->p.page_y0); /* y start */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x008); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ld7032_60x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_USART_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c deleted file mode 100644 index c41380e8c5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_null.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - - u8g_dev_null.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_null(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: /* most often used command */ - break; - case U8G_DEV_MSG_SET_PIXEL: - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - break; - case U8G_DEV_MSG_PAGE_NEXT: - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return 1; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c deleted file mode 100644 index dbebd7cd02..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcd8544_84x48.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_dev_pcd8544_84x48.c - - Display: Nokia 84x48 - - Status: Tested with PCF8812 Display - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcd8544_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_pcd8544_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_pcd8544_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x008, /* display blank */ - 0x024, /* power down (PD=1), horizontal increment (V=0), enter normal command set (H=0) */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_pcd8544_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_pcd8544_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcd8544_84x48_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c deleted file mode 100644 index 3801284468..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_pcf8812_96x65.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - - u8g_dev_pcf8812_96x65.c - - Display: Nokia 96x65 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - - om6206 comaptible to pcf8812 ? - - Status: Tested - - - Display Controller Seen in - LPH7366 (9 pins, 84x48) PCD8544 Nokia 5110 / 5120 / 5130 / 5160 / 6110 / 6150 - LPH7677 (8 pins, 84x48) PCD8544 Nokia 3210 - LPH7779 (8 pins, 84x48) PCD8544 Nokia 3310 / 3315 / 3330 / 3110, also 3410? - ??? PCD8544 Nokia 5110 / 6110 - LPH7690 ? (96x65) PCF8455/OM6202 Nokia 3410 - LPH7690 ? (96x65?) SED1565/S1D15605 Nokia 7110 / 3510? - LPH7690 ??? Nokia 6210 - - - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 65 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcf8812_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x080 | 0x040, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_pcf8812_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcf8812_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - - /* mirrored output, not tested*/ - /* - { - uint8_t i = pb->width; - while( i > 0 ) - { - i--; - u8g_WriteByte(u8g, dev, ((unsigned char *)pb->buf)[i] ); - } - } - */ - - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_pcf8812_96x65_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcf8812_96x65_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c deleted file mode 100644 index a8552cb40e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_sbn1661_122x32.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - - u8g_dev_sbn1661_122x32.c - - WG12232 display with 2xSBN1661 / SED1520 controller (122x32 display) - At the moment only available in the Arduino Environment - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 122 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_sbn1661_122x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - - U8G_ESC_CS(0), /* disable chip */ - - - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_sbn1661_122x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sbn1661_122x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, pb->buf); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, WIDTH/2+(uint8_t *)pb->buf); - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_sbn1661_122x32 , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sbn1661_122x32_fn, u8g_com_arduino_no_en_parallel_fn); diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c deleted file mode 100644 index 3052d6bcaf..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x32.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - - u8g_dev_ssd1306_128x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - 23 Feb 2013: Fixed, Issue 147 - -*/ - - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (TESTED - WORKING 23.02.13), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x01f, /* Feb 23, 2013: 128x32 OLED: 0x01f, 128x32 OLED 0x03f */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 128x32 OLED: 0x002, 128x32 OLED 0x012 */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* select one init sequence here */ -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_univision_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit1_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit2_init_seq -#define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr. to 0 */ - 0x000, /* set lower 4 bit of the col adr. to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; -} - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_128x32_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_128x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_ssd1306_128x32_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x32_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x32_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SSD_I2C }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c deleted file mode 100644 index bd55e90e82..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1306_128x64.c +++ /dev/null @@ -1,412 +0,0 @@ -/* - - u8g_dev_ssd1306_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* 2012-05-27: page addressing mode */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_univision_init_seq -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit1_init_seq -// 26. Apr 2014: in this thead: http://forum.arduino.cc/index.php?topic=234930.msg1696754;topicseen#msg1696754 -// it is mentiond, that adafruit2_init_seq works better --> this will be used by the ssd1306_adafruit device -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit2_init_seq - -#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -/* the sh1106 is compatible to the ssd1306, but is 132x64. display seems to be centered */ -static const uint8_t u8g_dev_sh1106_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x002, /* set lower 4 bit of the col adr to 2 (centered display with sh1106) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_adafruit2_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_adafruit_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1306_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - - - - -U8G_PB_DEV(u8g_dev_ssd1306_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SSD_I2C); - -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SSD_I2C); - - -uint8_t u8g_dev_ssd1306_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x64_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SSD_I2C }; - - -U8G_PB_DEV(u8g_dev_sh1106_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_sh1106_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_sh1106_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_sh1106_128x64_2x_buf}; -u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c deleted file mode 100644 index a3aa77ac38..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1309_128x64.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - - u8g_dev_ssd1309_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* ssd1309 ini sequence*/ -static const uint8_t u8g_dev_ssd1309_128x64_init_seq[] PROGMEM={ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0xfd,0x12, /*Command Lock */ - 0xae, /*Set Display Off */ - 0xd5,0xa0, /*set Display Clock Divide Ratio/Oscillator Frequency */ - 0xa8,0x3f, /*Set Multiplex Ratio */ - 0x3d,0x00, /*Set Display Offset*/ - 0x40, /*Set Display Start Line*/ - 0xa1, /*Set Segment Re-Map*/ - 0xc8, /*Set COM Output Scan Direction*/ - 0xda,0x12, /*Set COM Pins Hardware Configuration*/ - 0x81,0xdf, /*Set Current Control */ - 0xd9,0x82, /*Set Pre-Charge Period */ - 0xdb,0x34, /*Set VCOMH Deselect Level */ - 0xa4, /*Set Entire Display On/Off */ - 0xa6, /*Set Normal/Inverse Display*/ - U8G_ESC_VCC(1), /*Power up VCC & Stabilized */ - U8G_ESC_DLY(50), - 0xaf, /*Set Display On */ - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ - #define u8g_dev_ssd1309_128x64_init_seq u8g_dev_ssd1309_128x64_init_seq - - - static const uint8_t u8g_dev_ssd1309_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1309_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1309_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SSD_I2C); - - \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c deleted file mode 100644 index 4db96270d2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_bw.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_bw.c - - 1-Bit (BW) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_1bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ssd1322_nhd31oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x0c1); /* 21 May 2013, fixed contrast command */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_FAST_PARALLEL); - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c deleted file mode 100644 index 61f0b1922f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1322_nhd31oled_gr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_gr.c - - 2-Bit (4L) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -//#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_2bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1322_nhd31oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; /* 23 Oct 2013, changed to 2 */ - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_parallel , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_FAST_PARALLEL); - - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_gr_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c deleted file mode 100644 index d8895391e9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_1bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_1bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -#ifdef OLD -static void _OLD_u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - cnt = 8; - do - { - d = 0; - if ( left & 1 ) - d |= 0x0f0; - if ( right & 1 ) - d |= 0x00f; - u8g_WriteByte(u8g, dev, d); - left >>= 1; - right >>= 1; - cnt--; - }while ( cnt > 0 ); -} -#endif - -static void u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - static uint8_t buf[8]; - cnt = 8; - do - { - d = 0; - if ( left & 128 ) - d |= 0x0f0; - if ( right & 128 ) - d |= 0x00f; - cnt--; - buf[cnt] = d; - left <<= 1; - right <<= 1; - }while ( cnt > 0 ); - u8g_WriteSequence(u8g, dev, 8, buf); -} - -static void u8g_dev_ssd1325_1bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_1bit_write_16_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -/* disabled, see bw_new.c */ -/* -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); -*/ - -/* -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; -*/ - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c deleted file mode 100644 index 7d26b2fee3..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_bw_new.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Horizontal architecture, completly rewritten - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_nhd_27_12864_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_prepare_row_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_prepare_row_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -static uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - //case U8G_DEV_MSG_IS_BBX_INTERSECTION: - // return u8g_pb_IsIntersection((u8g_pb_t *)(dev->dev_mem), (u8g_dev_arg_bbx_t *)arg); - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c deleted file mode 100644 index 6ab48135f7..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1325_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - cnt = 4; - do - { - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - u8g_WriteByte(u8g, dev, d); - left >>= 2; - right >>= 2; - cnt--; - }while ( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -//uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -//u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; - - -#endif /* OBSOLETE_CODE */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c deleted file mode 100644 index 9ac51f2ff0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1325_nhd27oled_gr_new.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Rewritten with new architecture - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1), old values: 0x0a0 0x0a6 */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_gr_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c deleted file mode 100644 index 3a11e29425..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1327_96x96_gr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - - u8g_dev_ssd1327_96x96_gr.c - - 2-Bit (graylevel) Driver for SSD1327 Controller (OLED Display) - Tested with Seedstudio 96x96 Oled (LY120) - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 96 -#define XOFFSET 8 - -/* - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 -*/ -static const uint8_t u8g_dev_ssd1327_2bit_96x96_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0fd, 0x012, /* unlock display, usually not required because the display is unlocked after reset */ - 0x0ae, /* display off, sleep mode */ - 0x0a8, 0x05f, /* multiplex ratio: 0x05f * 1/64 duty */ - 0x0a1, 0x000, /* display start line */ - 0x0a2, 0x060, /* display offset, shift mapping ram counter */ - //0x0a2, 0x04c, /* NHD: display offset, shift mapping ram counter */ - 0x0a0, 0x046, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - //0x0a0, 0x056, /* NHD: remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x0ab, 0x001, /* Enable internal VDD regulator (RESET) */ - 0x081, 0x053, /* contrast, brightness, 0..128, Newhaven: 0x040, LY120 0x053, 0x070 seems also ok */ - 0x0b1, 0x051, /* phase length */ - 0x0b3, 0x001, /* set display clock divide ratio/oscillator frequency */ - 0x0b9, /* use linear lookup table */ -#if 0 - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 -#endif - 0x0bc, 0x008, /* pre-charge voltage level */ - 0x0be, 0x007, /* VCOMH voltage */ - 0x0b6, 0x001, /* second precharge */ - 0x0d5, 0x062, /* enable second precharge, internal vsl (bit0 = 0) */ - -#if 0 - // the following commands are not used by the SeeedGrayOLED sequence */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ -#endif - - 0x0a5, /* all pixel on */ - //0x02e, /* no scroll (according to SeeedGrayOLED sequence) */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - - 0x015, /* column address... */ - 0x008, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - - 0x075, /* row address... */ - 0x008, - 0x05f, - - U8G_ESC_ADR(1), /* data mode */ - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1327_2bit_96x96_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - XOFFSET, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1327_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1327_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1327_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - static uint8_t buf[4]; - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = 0; - cnt = 0; - do - { - if ( left == 0 && right == 0 ) - break; - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - buf[cnt] = d; - left >>= 2; - right >>= 2; - cnt++; - }while ( cnt < 4 ); - u8g_WriteSequence(u8g, dev, 4, buf); -} - -static void u8g_dev_ssd1327_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1327_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1327_96x96_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1327_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1327_96x96_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_i2c , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SSD_I2C); - -#define DWIDTH (2*WIDTH) -uint8_t u8g_dev_ssd1327_96x96_2x_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1327_96x96_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1327_96x96_2x_buf}; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c deleted file mode 100644 index 406e736aab..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_ssd1351_128x128.c +++ /dev/null @@ -1,787 +0,0 @@ -/* - - u8g_dev_ssd1351_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, jamjardavies@gmail.com - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - History: - Initial version 20 May 2013 jamjardavies@gmail.com - indexed device 22 May 2013 olikraus@gmail.com - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ssd1351_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x00, /* Set GPIO */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - - -/* set gpio to high */ -static const uint8_t u8g_dev_ssd1351_128x128gh_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x03, /* Set GPIO to High Level */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -#define u8g_dev_ssd1351_128x128_init_seq u8g_dev_ssd1351_128x128_init_seq - -static const uint8_t u8g_dev_ssd1351_128x128_column_seq[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0x15, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x75, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x5c, - U8G_ESC_ADR(1), - U8G_ESC_CS(0), - U8G_ESC_END -}; - -#define RGB332_STREAM_BYTES 8 -static uint8_t u8g_ssd1351_stream_bytes[RGB332_STREAM_BYTES*3]; - -void u8g_ssd1351_to_stream(uint8_t *ptr) -{ - uint8_t cnt = RGB332_STREAM_BYTES; - uint8_t val; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - val = *ptr++; - *dest++ = ((val & 0xe0) >> 2); - *dest++ = ((val & 0x1c) << 1); - *dest++ = ((val & 0x03) << 4); - } -} - - -#ifdef OBSOLETE -// Convert the internal RGB 332 to R -static uint8_t u8g_ssd1351_get_r(uint8_t colour) -{ - //return ((colour & 0xe0) >> 5) * 9; - //return ((colour & 0xe0) >> 5) * 8; - return ((colour & 0xe0) >> 2) ; -} - -// Convert the internal RGB 332 to G -static uint8_t u8g_ssd1351_get_g(uint8_t colour) -{ - //return ((colour & 0x1c) >> 2) * 9; - //return ((colour & 0x1c) >> 2) * 8; - return ((colour & 0x1c) << 1); -} - -// Convert the internal RGB 332 to B -static uint8_t u8g_ssd1351_get_b(uint8_t colour) -{ - //return (colour & 0x03) * 21; - return (colour & 0x03) * 16; -} -#endif - - -uint8_t u8g_dev_ssd1351_128x128_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1351_128x128_r[256]; -static uint8_t u8g_dev_ssd1351_128x128_g[256]; -static uint8_t u8g_dev_ssd1351_128x128_b[256]; - -uint8_t u8g_dev_ssd1351_128x128_idx_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_SET_COLOR_ENTRY: - u8g_dev_ssd1351_128x128_r[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->r; - u8g_dev_ssd1351_128x128_g[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->g; - u8g_dev_ssd1351_128x128_b[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->b; - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - int x; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - for (x = 0; x < pb->width; x++) - { - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_r[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_g[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_b[(*ptr)>>2]); - - ptr++; - } - - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_INDEX; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -void u8g_ssd1351_hicolor_to_stream(uint8_t *ptr) -{ - register uint8_t cnt = RGB332_STREAM_BYTES; - register uint8_t low, high, r, g, b; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - low = *ptr++; - high = *ptr++; - - r = high & ~7; - r >>= 2; - b = low & 31; - b <<= 1; - g = high & 7; - g <<= 3; - g |= (low>>5)&7; - - *dest++ = r; - *dest++ = g; - *dest++ = b; - } -} - - -uint8_t u8g_dev_ssd1351_128x128_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1351_128x128_byte_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_byte_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - - -/* only half of the height, because two bytes are needed for one pixel */ -u8g_pb_t u8g_dev_ssd1351_128x128_hicolor_byte_pb = { {PAGE_HEIGHT/2, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -uint8_t u8g_dev_ssd1351_128x128_4x_byte_buf[WIDTH*PAGE_HEIGHT*4] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_332_byte_pb = { {PAGE_HEIGHT*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb = { {PAGE_HEIGHT/2*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -/* -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_HW_SPI); -*/ - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c deleted file mode 100644 index ff909c5e9b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_64128n.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - - u8g_dev_st7565_64128n.c (Displaytech) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_64128n_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0A2, /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ - 0x0A0, /* Normal ADC Select (according to Displaytech 64128N datasheet) */ - - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* Display start line for Displaytech 64128N */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x010, /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x01e, /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ - - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0x10 */ - 0x000, /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_64128n_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_64128n_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_64128n_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_PARALLEL); - -uint8_t u8g_dev_st7565_64128n_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_64128n_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_64128n_2x_buf}; -u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_parallel = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c deleted file mode 100644 index e73f061537..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm128.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - - u8g_dev_st7565_dogm128.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_dogm128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal (none reverse) */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0a4, /* normal display (not all on) */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_dogm128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm128_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_PARALLEL); - - -uint8_t u8g_dev_st7565_dogm128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_dogm128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_dogm128_2x_buf}; -u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c deleted file mode 100644 index 26de539247..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_dogm132.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_st7565_dogm132.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 132 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_dogm132_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x01f, /* contrast value, EA default: 0x01f */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - -#ifdef OBSOLETE_DOGM128 - 0x040, /* set display start line */ - 0x0c8, /* set scan direction inverse operation */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ -#endif - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm132_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm132_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm132_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_HW_SPI); diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c deleted file mode 100644 index 165c390978..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6059.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - - u8g_dev_st7565_lm6059.c (Adafruit display) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6059_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit, 0x0a2 does not work */ - /* the LM6059 vs LM6063, ADC and SHL have inverted settings */ - 0x0a0, /* 0x0a1: ADC set to normal (suggested for the LM6059), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x060, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x001, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6059_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6059_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6059_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6059_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_lm6059_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6059_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6059_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c deleted file mode 100644 index d0b8c816df..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_lm6063.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - - u8g_dev_st7565_lm6063.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -#ifdef OLD_ADAFRUIT_CODE -static const uint8_t OLD_u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select / 17 Jan: seems to be a bug, must be 0x0c0 */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - /*0x0f8,*/ /* set booster ratio to */ - /*0x000, */ /* 4x */ - /*0x027,*/ /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; -#endif - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit */ - 0x0a1, /* 0x0a1: ADC set to reverse (suggested for the LM6063), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c0, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6063_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6063_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6063_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6063_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6063_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_st7565_lm6063_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6063_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6063_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c deleted file mode 100644 index ed8dca2e03..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12832.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12832.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_c12832_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set, values: a0=normal, a1=reverse */ - 0x0c8, /* common output mode: c0=normal, c8=reverse */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x00a, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_c12832_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_USART_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c deleted file mode 100644 index eeb5c09876..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7565_nhd_c12864.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12864.c - - Support for the NHD-C12864A1Z-FSB-FBW (Newhaven Display) - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_nhd_c12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(10), /* do reset low pulse with (10*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x008, /* contrast: 0x008 is a good value for NHD C12864, Nov 2012: User reports that 0x1a is much better */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_nhd_c12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr to 4 (NHD C12864) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_nhd_c12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_nhd_c12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_nhd_c12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_nhd_c12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_nhd_c12864_2x_buf}; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c deleted file mode 100644 index a11d3bc7d0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7687_c144mvgd.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - - u8g_dev_st7687_c144mvgd.c (1.44" TFT) - - Status: Started, but not finished - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -#ifdef FIRST_VERSION -/* -see also: read.pudn.com/downloads115/sourcecode/app/484503/LCM_Display.c__.htm -http://en.pudn.com/downloads115/sourcecode/app/detail484503_en.html -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x001, /* A0=0, SW reset */ - U8G_ESC_DLY(200), /* delay 200 ms */ - - 0x0d7, /* EEPROM data auto re-load control */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, /* ARD = 1 */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e0, /* EEPROM control in */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - -#ifdef NOT_REQUIRED - 0x0fa, /* EEPROM function selection 8.1.66 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#endif - - 0x0e3, /* Read from EEPROM, 8.1.55 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e1, /* EEPROM control out, 8.1.53 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - //0x028, /* display off */ - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c0, /* Vop setting, 8.1.42 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x001, /* 3.6 + 256*0.04 = 13.84 Volt */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c3, /* Bias selection, 8.1.45 */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c4, /* Booster setting 8.1.46 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* ??? */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0cb, /* FV3 with Booster x2 control, 8.1.47 */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* Memory data access control, 8.1.28 */ - U8G_ESC_ADR(1), /* data mode */ - 0x080, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b5, /* N-line control, 8.1.37 */ - U8G_ESC_ADR(1), /* data mode */ - 0x089, - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0d0, /* Analog circuit setting, 8.1.49 */ - U8G_ESC_ADR(1), /* data mode */ - 0x01d, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b7, /* Com/Seg Scan Direction, 8.1.38 */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x025, /* Write contrast, 8.1.17 */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b0, /* Display Duty setting, 8.1.34 */ - U8G_ESC_ADR(1), /* data mode */ - 0x07f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f0, /* Frame Freq. in Temp range A,B,C and D, 8.1.59 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - 0x00c, - 0x00c, - 0x015, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x005, - 0x008, - 0x00a, - 0x00c, - 0x00e, - 0x010, - 0x011, - 0x012, - 0x013, - 0x014, - 0x015, - 0x016, - 0x018, - 0x01a, - 0x01b, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x000, - 0x000, - 0x000, - 0x033, - 0x055, - 0x055, - 0x055, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x029, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#else - -/* -http://www.waitingforfriday.com/images/e/e3/FTM144D01N_test.zip -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(5), /* delay 5 ms */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x026, /* SET_GAMMA_CURVE */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f2, /* GAM_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* enable gamma adj */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0e0, /* POSITIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x3f, - 0x25, - 0x1c, - 0x1e, - 0x20, - 0x12, - 0x2a, - 0x90, - 0x24, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0e1, /* NEGATIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x20, - 0x20, - 0x20, - 0x20, - 0x05, - 0x00, - 0x15, - 0xa7, - 0x3d, - 0x18, - 0x25, - 0x2a, - 0x2b, - 0x2b, - 0x3a, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b1, /* FRAME_RATE_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, /* DIVA = 8 */ - 0x008, /* VPA = 8 */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0b4, /* DISPLAY_INVERSION */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* NLA = 1, NLB = 1, NLC = 1 (all on Frame Inversion) */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c0, /* POWER_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x00a, /* VRH = 10: GVDD = 4.30 */ - 0x002, /* VC = 2: VCI1 = 2.65 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c1, /* POWER_CONTROL2 */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* BT = 2: AVDD = 2xVCI1, VCL = -1xVCI1, VGH = 5xVCI1, VGL = -2xVCI1 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* VCOM_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* VMH = 80: VCOMH voltage = 4.5 */ - 0x05b, /* VML = 91: VCOML voltage = -0.225 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c7, /* VCOM_OFFSET_CONTROL */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, /* nVM = 0, VMF = 64: VCOMH output = VMH, VCOML output = VML */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02a, /* SET_COLUMN_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02b, /* SET_PAGE_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* SET_ADDRESS_MODE */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Select display orientation */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x029, /* display on */ - - 0x02c, /* write start */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#endif - - - - -/* calculate bytes for Type B 4096 color display */ -static uint8_t get_byte_1(uint8_t v) -{ - v >>= 4; - v &= 0x0e; - return v; -} - -static uint8_t get_byte_2(uint8_t v) -{ - uint8_t w; - w = v; - w &= 3; - w = (w<<2) | w; - v <<= 3; - v &= 0x0e0; - w |= v; - return w; -} - -uint8_t u8g_dev_st7687_c144mvgd_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7687_c144mvgd_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02a ); /* Column address set 8.1.20 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, 0x000 ); /* x0 */ - u8g_WriteByte(u8g, dev, WIDTH-1 ); /* x1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02b ); /* Row address set 8.1.21 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, y ); /* y0 */ - u8g_WriteByte(u8g, dev, y+PAGE_HEIGHT-1 ); /* y1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02c ); /* Memory write 8.1.22 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - - for( j = 0; j < WIDTH; j ++ ) - { - u8g_WriteByte(u8g, dev, get_byte_1(*ptr) ); - u8g_WriteByte(u8g, dev, get_byte_2(*ptr) ); - ptr++; - } - } - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_st7687_c144mvgd_8h8_buf[WIDTH*8] U8G_NOCOMMON ; -u8g_pb_t u8g_st7687_c144mvgd_8h8_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_st7687_c144mvgd_8h8_buf}; - -u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, u8g_com_arduino_sw_spi_fn }; - -u8g_dev_t u8g_dev_st7687_c144mvgd_8bit = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, U8G_COM_PARALLEL }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c deleted file mode 100644 index 29e63134c0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_128x64.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - - u8g_dev_st7920_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_128x64_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7920_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_FAST_PARALLEL); -U8G_PB_DEV(u8g_dev_st7920_128x64_custom, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, u8g_com_arduino_st7920_custom_fn); - - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_128x64_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_128x64_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_128x64_4x_buf}; -u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_8bit = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_FAST_PARALLEL }; -u8g_dev_t u8g_dev_st7920_128x64_4x_custom = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, u8g_com_arduino_st7920_custom_fn }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c deleted file mode 100644 index 736b082895..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_192x32.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_st7920_192x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 192 -#define HEIGHT 32 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_192x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_192x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_192x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_192x32_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_8bit, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_FAST_PARALLEL); - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_192x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_192x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_192x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_8bit = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c deleted file mode 100644 index b36b7abca5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_st7920_202x32.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - - u8g_dev_st7920_202x32.c - tested with CFAG20232 - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 202 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_202x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_202x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_202x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_202x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_FAST_PARALLEL); - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_202x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_202x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_202x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_8bit = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_FAST_PARALLEL }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x128.c deleted file mode 100644 index 15f618c5f8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x128.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - - u8g_dev_t6963_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 128x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x128_8bit = { u8g_dev_t6963_128x128_fn, &u8g_dev_t6963_128x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c deleted file mode 100644 index 97e1583320..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_128x64.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_dev_t6963_128x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x64_8bit = { u8g_dev_t6963_128x64_fn, &u8g_dev_t6963_128x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c deleted file mode 100644 index 7373f38884..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x128.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x128.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x128_8bit = { u8g_dev_t6963_240x128_fn, &u8g_dev_t6963_240x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c deleted file mode 100644 index d0c4fd2307..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_t6963_240x64.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x64_8bit = { u8g_dev_t6963_240x64_fn, &u8g_dev_t6963_240x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c deleted file mode 100644 index d8f423666f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_tls8204_84x48.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - - u8g_dev_tls8204_84x48.c - - Display: Nokia 84x48 - - Status: Tested with TLS8204V12 Display by Olimex MOD-LCD3310 - - Contributed: http://code.google.com/p/u8glib/issues/detail?id=126 - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_tls8204_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x04 | !!((66-1)&(1u<<6)), - 0x40 | ((66-2) & ((1u<<6)-1)), - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_tls8204_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_tls8204_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_WriteByte(u8g, dev, 0x020); /* command mode, extended function set */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_tls8204_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tls8204_fn, U8G_COM_SW_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c deleted file mode 100644 index 0151566760..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1601_c128032.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - - u8g_dev_uc1601_c128032.c - - LCD-AG-C128032R-DIW W/KK E6 PBF from http://www.artronic.pl/o_produkcie.php?id=1343 - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -/* init sequence */ -static const uint8_t u8g_dev_uc1601_c128032_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a3: LCD bias 1/7 , 0x0a2: LCD bias 1/9 */ - 0x0a0, /* 0x0a0: ADC set to normal, 0x0a1 ADC set to inverted */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x0c2, /* 22 May 2013: mirror x */ - - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(10), /* delay 10 ms */ - - 0x020| 0x06, /* set V0 voltage resistor ratio to 6 */ - - 0x0af, /* display on */ - - //0x081, /* set contrast */ - //0x018, /* contrast value*/ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_uc1601_c128032_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1601_c128032_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1601_c128032_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1601_c128032_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1601_c128032_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1601_c128032_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1601_c128032_2x_buf}; -u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c deleted file mode 100644 index 650b6b96f0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x128.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - - - u8g_dev_uc1608_240x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com (original 240x64 library) - Modified by thieringpeti@gmail.com for Raystar rx240128 family displays - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -/* -Display: http://www.tme.eu/en/details/rx240128a-ghw/lcd-graphic-displays/raystar-optronics/ -Connection: HW / SW SPI. -To get this display working, You need some extra capacitors: - -connect 4.7uF caps between: - PIN1 & PIN2 VB1 +- - PIN3 & PIN4 VB0 -+ -connect 0.1uF caps between: - VLCD and VSS - VBIAS and VSS -You can find some schematics with a 10M resistor parallellized with the VLCD capacitor. - -Select 4-bit SPI mode. - -Connect D7 (PIN9) To VDD (+3.3V) -Connect D1, D2, D4, D5, D6 to GND (PINS 10,11,12,14,15) -Connect WR0, WR1, BM0, BM1 to GND (PINS 17,18,22,23) - -D0: (PIN16) AVR's SCK pin (HW SPI) -D3: (PIN13) AVR's MOSI pin (HW SPI) -CD: (PIN19) used as A0 in the library -CS: (PIN21) Connect to the defined CS pin, and You can re-use the HW SPI in different routines. -RST: (PIN20) optional reset, can be defined in the function, resets on initialization. - -Adjust contrast if necessary. Default: 0x072. - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x026, /* MUX rate and temperature compensation */ - - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - - 0x0eb, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - /* default 0x0ea for 240x128 */ - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x072, /* default for 240x128 displays: 0x072*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - // 0x0a7, /* inverse display */ - 0x0a6, /* normal display */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x128_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x128_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x128_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c deleted file mode 100644 index 6a99c6ba88..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1608_240x64.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - - u8g_dev_uc1608_240x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#if HEIGHT <= 96 - 0x023, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#else - /* 30 Nov 2013: not tested */ - 0x027, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#endif - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - 0x0e8, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x014, /* ECR24064-1 default: 0x040*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x64_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x64_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x64_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c deleted file mode 100644 index 4f361664dd..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1610_dogxl160.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - - u8g_dev_uc1610_dogxl160.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 104 - -static const uint8_t u8g_dev_uc1610_dogxl160_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0f1, /* set display height-1 */ - 0x067, /* */ - 0x0c0, /* SEG & COM normal */ - 0x040, /* set display start line */ - 0x050, /* */ - 0x02b, /* set panelloading */ - 0x0eb, /* set bias 1/2 */ - 0x081, /* set contrast */ - 0x05f, /* */ - 0x089, /* set auto increment */ - 0x0a6, /* normal pixel mode */ - 0x0d3, /* 0xd3=40% RMS separation for gray levels */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1610_dogxl160_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_1to2(uint8_t n) -{ - register uint8_t a,b,c; - a = n; - a &= 1; - n <<= 1; - b = n; - b &= 4; - n <<= 1; - c = n; - c &= 16; - n <<= 1; - n &= 64; - n |= a; - n |= b; - n |= c; - n |= n << 1; - return n; -} - -uint8_t u8g_dev_uc1610_dogxl160_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+3) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf) == 0 ) - return 0; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, (uint8_t *)(pb->buf)+WIDTH) == 0 ) - return 0; - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_sw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_hw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_bw_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_HW_SPI }; - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_gr_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c deleted file mode 100644 index 52bf451d94..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogm240.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - - u8g_dev_uc1611_dogm240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogm240_init_seq[] PROGMEM = { - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - 0xF1, // set last COM electrode - 0x3F, // 64-1=63 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x3F, // 64-1=63 - 0x81, // set contrast (0-255) - 0xB7, // 183 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void setPage(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogm240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1611_dogm240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_data_start); - setPage(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogm240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c deleted file mode 100644 index 44242ecdfb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1611_dogxl240.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - - u8g_dev_uc1611_dogxl240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@gmail.com, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogxl240_init_seq[] PROGMEM = { - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - 0xF1, // set last COM electrode - 0x7F, // DOGXL240 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x7F, // DOGXL240 - 0x81, // set contrast (0-255) - 0xAA, // DOGXL240 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void u8g_dev_dogxl240_set_page(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogxl240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_uc1611_dogxl240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_data_start); - u8g_dev_dogxl240_set_page(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_HW_SPI); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c deleted file mode 100644 index 5161ef95f2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_dogs102.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_uc1701_dogs102.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 102 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_dogs102_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x027, /* regulator, booster and follower */ - 0x081, /* set contrast */ - 0x00e, /* contrast value, EA default: 0x010, previous value for S102: 0x0e */ - 0x0fa, /* Set Temp compensation */ - 0x090, /* 0.11 deg/c WP Off WC Off*/ - 0x0a4, /* normal display */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_dogs102_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_dogs102_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_dogs102_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_dogs102_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_dogs102_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_dogs102_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_dogs102_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_dogs102_2x_buf}; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_HW_SPI }; - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c deleted file mode 100644 index 209a7b930d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_dev_uc1701_mini12864.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - - u8g_dev_uc1701_mini12864.c (dealextreme) - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_uc1701_mini12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set to reverse */ - 0x0c8, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x027, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1701_mini12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1701_mini12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_mini12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_mini12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_mini12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_mini12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_mini12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_mini12864_2x_buf}; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_HW_SPI }; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c deleted file mode 100644 index 57ff4675bc..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ellipse.c +++ /dev/null @@ -1,393 +0,0 @@ -/* - - u8g_ellipse.c - - Utility to draw empty and filled ellipses. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Addition to the U8G Library as of 02/29/12 - Adapted from Bresenham's Algorithm and the following websites: - http://free.pages.at/easyfilter/bresenham.html - http://homepage.smc.edu/kennedy_john/belipse.pdf - -*/ - -#include "u8g.h" - - -#ifdef WORK_IN_PROGRESS - -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1) -{ - int a = abs(x1 - x0); - int b = abs(y1 - y0); //get diameters - int b1 = b&1; - long dx = 4*(1-a)*b*b; - long dy = 4*(b1+1)*a*a; - long err = dx+dy+b1*a*a; - long e2; - - if (x0 > x1) { x0 = x1; x1 += a; } - if (y0 > y1) { y0 = y1; } - y0 += (b+1)/2; - y1 = y0-b1; - a *= 8*a; - b1 = 8*b*b; - - do { - u8g_DrawPixel(u8g, x1, y0); - u8g_DrawPixel(u8g, x0, y0); - u8g_DrawPixel(u8g, x0, y1); - u8g_DrawPixel(u8g, x1, y1); - e2 = 2*err; - if (e2 >= dx) { - x0++; - x1--; - err += dx += b1; - } - if (e2 <= dy) { - y0++; - y1--; - err += dy += a; - } - } while (x0 <= x1); - - while (y0-y1 < b) { - u8g_DrawPixel(u8g, x0-1, y0); - u8g_DrawPixel(u8g, x1+1, y0++); - u8g_DrawPixel(u8g, x0-1, y1); - u8g_DrawPixel(u8g, x1+1, y1--); - } -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t xr, u8g_uint_t yr) -{ - u8g_DrawPixel(u8g, x0, y0+yr); - u8g_DrawPixel(u8g, x0, y0-yr); - u8g_DrawPixel(u8g, x0+xr, y0); - u8g_DrawPixel(u8g, x0-xr, y0); -} - -#endif - -#if defined(U8G_16BIT) -typedef int32_t u8g_long_t; -#else -typedef int16_t u8g_long_t; -#endif - - -/* - Source: - ftp://pc.fk0.name/pub/books/programming/bezier-ellipse.pdf - Foley, Computer Graphics, p 90 -*/ -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - } -} - -void u8g_draw_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_ellipse(u8g, x0, y0, rx, ry, option); -} - -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - } -} - -void u8g_draw_filled_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_filled_ellipse(u8g, x0, y0, rx, ry, option); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c deleted file mode 100644 index f3c1eda4c1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font.c +++ /dev/null @@ -1,1500 +0,0 @@ -/* - - u8g_font.c - - U8G Font High Level Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -/* font api */ - -/* pointer to the start adress of the glyph, points to progmem area */ -typedef void * u8g_glyph_t; - -/* size of the font data structure, there is no struct or class... */ -#define U8G_FONT_DATA_STRUCT_SIZE 17 - -/* - ... instead the fields of the font data structure are accessed directly by offset - font information - offset - 0 font format - 1 FONTBOUNDINGBOX width unsigned - 2 FONTBOUNDINGBOX height unsigned - 3 FONTBOUNDINGBOX x-offset signed - 4 FONTBOUNDINGBOX y-offset signed - 5 capital A height unsigned - 6 start 'A' - 8 start 'a' - 10 encoding start - 11 encoding end - 12 descent 'g' negative: below baseline - 13 font max ascent - 14 font min decent negative: below baseline - 15 font xascent - 16 font xdecent negative: below baseline - -*/ - -/* use case: What is the width and the height of the minimal box into which string s fints? */ -void u8g_font_GetStrSize(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); -void u8g_font_GetStrSizeP(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); - -/* use case: lower left edge of a minimal box is known, what is the correct x, y position for the string draw procedure */ -void u8g_font_AdjustXYToDraw(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); -void u8g_font_AdjustXYToDrawP(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); - -/* use case: Baseline origin known, return minimal box */ -void u8g_font_GetStrMinBox(u8g_t *u8g, const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - -/* procedures */ - -/*========================================================================*/ -/* low level byte and word access */ - -/* removed NOINLINE, because it leads to smaller code, might also be faster */ -//static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - font += offset; - return u8g_pgm_read( (u8g_pgm_uint8_t *)font ); -} - -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - uint16_t pos; - font += offset; - pos = u8g_pgm_read( (u8g_pgm_uint8_t *)font ); - font++; - pos <<= 8; - pos += u8g_pgm_read( (u8g_pgm_uint8_t *)font); - return pos; -} - -/*========================================================================*/ -/* direct access on the font */ - -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) -{ - return u8g_font_get_byte(font, 0); -} - -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) -{ - switch(u8g_font_GetFormat(font)) - { - case 0: return 6; - case 1: return 3; - case 2: return 6; - } - return 3; -} - -static uint8_t u8g_font_GetBBXWidth(const void *font) -{ - return u8g_font_get_byte(font, 1); -} - -static uint8_t u8g_font_GetBBXHeight(const void *font) -{ - return u8g_font_get_byte(font, 2); -} - -static int8_t u8g_font_GetBBXOffX(const void *font) -{ - return u8g_font_get_byte(font, 3); -} - -static int8_t u8g_font_GetBBXOffY(const void *font) -{ - return u8g_font_get_byte(font, 4); -} - -uint8_t u8g_font_GetCapitalAHeight(const void *font) -{ - return u8g_font_get_byte(font, 5); -} - -uint16_t u8g_font_GetEncoding65Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding65Pos(const void *font) -{ - return u8g_font_get_word(font, 6); -} - -uint16_t u8g_font_GetEncoding97Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding97Pos(const void *font) -{ - return u8g_font_get_word(font, 8); -} - -uint8_t u8g_font_GetFontStartEncoding(const void *font) -{ - return u8g_font_get_byte(font, 10); -} - -uint8_t u8g_font_GetFontEndEncoding(const void *font) -{ - return u8g_font_get_byte(font, 11); -} - -int8_t u8g_font_GetLowerGDescent(const void *font) -{ - return u8g_font_get_byte(font, 12); -} - -int8_t u8g_font_GetFontAscent(const void *font) -{ - return u8g_font_get_byte(font, 13); -} - -int8_t u8g_font_GetFontDescent(const void *font) -{ - return u8g_font_get_byte(font, 14); -} - -int8_t u8g_font_GetFontXAscent(const void *font) -{ - return u8g_font_get_byte(font, 15); -} - -int8_t u8g_font_GetFontXDescent(const void *font) -{ - return u8g_font_get_byte(font, 16); -} - - -/* return the data start for a font and the glyph pointer */ -static uint8_t *u8g_font_GetGlyphDataStart(const void *font, u8g_glyph_t g) -{ - return ((u8g_fntpgm_uint8_t *)g) + u8g_font_GetFontGlyphStructureSize(font); -} - -/* calculate the overall length of the font, only used to create the picture for the google wiki */ -size_t u8g_font_GetSize(const void *font) -{ - uint8_t *p = (uint8_t *)(font); - uint8_t font_format = u8g_font_GetFormat(font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(font); - uint8_t start, end; - uint8_t i; - uint8_t mask = 255; - - start = u8g_font_GetFontStartEncoding(font); - end = u8g_font_GetFontEndEncoding(font); - - if ( font_format == 1 ) - mask = 15; - - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - - i = start; - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - - return p - (uint8_t *)font; -} - -/*========================================================================*/ -/* u8g interface, font access */ - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g) -{ - return u8g_font_GetBBXWidth(u8g->font); -} - -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g) -{ - return u8g_font_GetBBXHeight(u8g->font); -} - -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) -{ - return u8g_font_GetBBXOffX(u8g->font); -} - -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) -{ - return u8g_font_GetBBXOffY(u8g->font); -} - -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) U8G_NOINLINE; -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) -{ - return u8g_font_GetCapitalAHeight(u8g->font); -} - -/*========================================================================*/ -/* glyph handling */ - -static void u8g_CopyGlyphDataToCache(u8g_t *u8g, u8g_glyph_t g) -{ - uint8_t tmp; - switch( u8g_font_GetFormat(u8g->font) ) - { - case 0: - case 2: - /* - format 0 - glyph information - offset - 0 BBX width unsigned - 1 BBX height unsigned - 2 data size unsigned (BBX width + 7)/8 * BBX height - 3 DWIDTH signed - 4 BBX xoffset signed - 5 BBX yoffset signed - byte 0 == 255 indicates empty glyph - */ - u8g->glyph_width = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_height = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_dx = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 3 ); - u8g->glyph_x = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 4 ); - u8g->glyph_y = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 5 ); - break; - case 1: - default: - /* -format 1 - 0 BBX xoffset signed --> upper 4 Bit - 0 BBX yoffset signed --> lower 4 Bit - 1 BBX width unsigned --> upper 4 Bit - 1 BBX height unsigned --> lower 4 Bit - 2 data size unsigned -(BBX width + 7)/8 * BBX height --> lower 4 Bit - 2 DWIDTH signed --> upper 4 Bit - byte 0 == 255 indicates empty glyph - */ - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_y = tmp & 15; - u8g->glyph_y-=2; - tmp >>= 4; - u8g->glyph_x = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_height = tmp & 15; - tmp >>= 4; - u8g->glyph_width = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 2 ); - tmp >>= 4; - u8g->glyph_dx = tmp; - - - break; - } -} - -//void u8g_FillEmptyGlyphCache(u8g_t *u8g) U8G_NOINLINE; -static void u8g_FillEmptyGlyphCache(u8g_t *u8g) -{ - u8g->glyph_dx = 0; - u8g->glyph_width = 0; - u8g->glyph_height = 0; - u8g->glyph_x = 0; - u8g->glyph_y = 0; -} - -/* - Find (with some speed optimization) and return a pointer to the glyph data structure - Also uncompress (format 1) and copy the content of the data structure to the u8g structure -*/ -u8g_glyph_t u8g_GetGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - uint8_t *p = (uint8_t *)(u8g->font); - uint8_t font_format = u8g_font_GetFormat(u8g->font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(u8g->font); - uint8_t start, end; - uint16_t pos; - uint8_t i; - uint8_t mask = 255; - - if ( font_format == 1 ) - mask = 15; - - start = u8g_font_GetFontStartEncoding(u8g->font); - end = u8g_font_GetFontEndEncoding(u8g->font); - - pos = u8g_font_GetEncoding97Pos(u8g->font); - if ( requested_encoding >= 97 && pos > 0 ) - { - p+= pos; - start = 97; - } - else - { - pos = u8g_font_GetEncoding65Pos(u8g->font); - if ( requested_encoding >= 65 && pos > 0 ) - { - p+= pos; - start = 65; - } - else - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - } - - if ( requested_encoding > end ) - { - u8g_FillEmptyGlyphCache(u8g); - return NULL; /* not found */ - } - - i = start; - if ( i <= end ) - { - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - if ( i == requested_encoding ) - { - u8g_CopyGlyphDataToCache(u8g, p); - return p; - } - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - } - - u8g_FillEmptyGlyphCache(u8g); - - return NULL; -} - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) != NULL ) - return 1; - return 0; -} - -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) == NULL ) - return 0; /* should never happen, so return something */ - return u8g->glyph_dx; -} - - -/*========================================================================*/ -/* glyph drawing procedures */ - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: left baseline position of the glyph -*/ -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - u8g_glyph_t g; - uint8_t w, h, i, j; - const u8g_pgm_uint8_t *data; - uint8_t bytes_per_line; - u8g_uint_t ix, iy; - - g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - w = u8g->glyph_width; - h = u8g->glyph_height; - - bytes_per_line = w; - bytes_per_line += 7; - bytes_per_line /= 8; - - data = u8g_font_GetGlyphDataStart(u8g->font, g); - - switch(dir) - { - case 0: - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - //u8g_DrawFrame(u8g, x, y-h+1, w, h); - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - break; - case 1: - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - //printf("enc %d, dir %d, x %d, y %d, w %d, h %d\n", encoding, dir, x, y, w, h); - //u8g_DrawFrame(u8g, x, y, h, w); - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - break; - case 2: - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - if ( u8g_IsBBXIntersection(u8g, x-w-1, y, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - break; - case 3: - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-h-1, y-w-1, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - break; - } - return u8g->glyph_dx; -} -#endif - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_glyph(u8g, x, y, encoding); -} - -int8_t u8g_draw_glyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 1, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph90(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - - if ( u8g_IsBBXIntersection(u8g, x-(w-1), y, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 2, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph180(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-(h-1), y-(w-1), h, w) == 0 ) - return u8g->glyph_dx; - - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 3, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x += u8g->font_calc_vref(u8g); - return u8g_draw_glyph270(u8g, x, y, encoding); -} - - - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: lower left corner of the font bounding box -*/ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - /* TODO: apply "dir" */ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawGlyphDir(u8g, x, y, dir, encoding); -} -#endif - -/*========================================================================*/ -/* string drawing procedures */ - - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph90(u8g, x, y, *s); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph180(u8g, x, y, *s); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph270(u8g, x, y, *s); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - switch(dir) - { - case 0: - return u8g_DrawStr(u8g, x, y, s); - case 1: - return u8g_DrawStr90(u8g, x, y, s); - case 2: - return u8g_DrawStr180(u8g, x, y, s); - case 3: - return u8g_DrawStr270(u8g, x, y, s); - } - return 0; -} - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - y += u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_draw_glyph(u8g, x, y, c); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph90(u8g, x, y, u8g_pgm_read(s)); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph180(u8g, x, y, u8g_pgm_read(s)); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_DrawGlyph270(u8g, x, y, u8g_pgm_read(s)); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawStrDir(u8g, x, y, dir, s); -} - -/* still used by picgen.c, dir argument is ignored */ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - u8g_draw_glyph(u8g, x, y, encoding); - return 0; -} - - -/*========================================================================*/ -/* set ascent/descent for reference point calculation */ - -void u8g_UpdateRefHeight(u8g_t *u8g) -{ - uint16_t ls; - if ( u8g->font == NULL ) - return; - if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_TEXT ) - { - u8g->font_ref_ascent = u8g_font_GetCapitalAHeight(u8g->font); - u8g->font_ref_descent = u8g_font_GetLowerGDescent(u8g->font); - } - else if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_XTEXT ) - { - u8g->font_ref_ascent = u8g_font_GetFontXAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontXDescent(u8g->font); - } - else - { - u8g->font_ref_ascent = u8g_font_GetFontAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontDescent(u8g->font); - } - - ls = u8g->font_ref_ascent - u8g->font_ref_descent; - if ( u8g->font_line_spacing_factor != 64 ) - { - ls &= 255; - ls *= u8g->font_line_spacing_factor; - ls >>= 6; - } - u8g->line_spacing = ls; -} - -void u8g_SetFontRefHeightText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_TEXT; - u8g_UpdateRefHeight(u8g); -} - -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g_UpdateRefHeight(u8g); -} - - -void u8g_SetFontRefHeightAll(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_ALL; - u8g_UpdateRefHeight(u8g); -} - -/* factor = 64: linespaceing == ascent and descent */ -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor) -{ - u8g->font_line_spacing_factor = factor; - u8g_UpdateRefHeight(u8g); -} - - - -/*========================================================================*/ -/* callback procedures to correct the y position */ - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetFontPosBaseline(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_font; -} - - -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g) -{ - /* y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); */ - return (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); -} - -void u8g_SetFontPosBottom(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_bottom; -} - -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g) -{ - u8g_uint_t tmp; - /* reference pos is one pixel above the upper edge of the reference glyph */ - - /* - y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - y++; - */ - tmp = (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - tmp++; - return tmp; -} - -void u8g_SetFontPosTop(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_top; -} - -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g) -{ - int8_t tmp; - tmp = u8g->font_ref_ascent; - tmp -= u8g->font_ref_descent; - tmp /= 2; - tmp += u8g->font_ref_descent; - /* y += (u8g_uint_t)(u8g_int_t)(tmp); */ - return tmp; -} - -void u8g_SetFontPosCenter(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_center; -} - -/*========================================================================*/ -/* string pixel width calculation */ - -char u8g_font_get_char(const void *s) -{ - return *(const char *)(s); -} - -char u8g_font_get_charP(const void *s) -{ - return u8g_pgm_read(s); -} - -typedef char (*u8g_font_get_char_fn)(const void *s); - - -u8g_uint_t u8g_font_calc_str_pixel_width(u8g_t *u8g, const char *s, u8g_font_get_char_fn get_char ) -{ - u8g_uint_t w; - uint8_t enc; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - w = 0; - - enc = get_char(s); - - /* check for empty string, width is already 0 */ - if ( enc == '\0' ) - { - return w; - } - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - /* if *s is not inside the font, then the cached parameters of the glyph are all zero */ - u8g_GetGlyph(u8g, enc); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - w = -u8g->glyph_x; - for(;;) - { - - /* check and stop if the end of the string is reached */ - s++; - if ( get_char(s) == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - w += u8g->glyph_dx; - - /* store the encoding in a local variable, used also after the for(;;) loop */ - enc = get_char(s); - - /* load the next glyph information */ - u8g_GetGlyph(u8g, enc); - } - - /* finally calculate the width of the last char */ - /* here is another exception, if the last char is a black, use the dx value instead */ - if ( enc != ' ' ) - { - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - w += u8g->glyph_width; - w += u8g->glyph_x; - } - else - { - w += u8g->glyph_dx; - } - - - return w; -} - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s) -{ - return u8g_font_calc_str_pixel_width(u8g, s, u8g_font_get_char); -} - -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - return u8g_font_calc_str_pixel_width(u8g, (const char *)s, u8g_font_get_charP); -} - -int8_t u8g_GetStrX(u8g_t *u8g, const char *s) -{ - u8g_GetGlyph(u8g, *s); - return u8g->glyph_x; -} - -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_GetGlyph(u8g, u8g_pgm_read(s)); - return u8g->glyph_x; -} - -/*========================================================================*/ -/* string width calculation */ - -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = *s; - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = u8g_pgm_read(s); - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -/*========================================================================*/ -/* calculation of font/glyph/string characteristics */ - - -/* - Description: - Calculate parameter for the minimal bounding box on a given string - Output - buf->y_min extend of the lower left edge if the string below (y_min<0) or above (y_min>0) baseline (descent) - buf->y_max extend of the upper left edge if the string below (y_min<0) or above (y_min>0) baseline (ascent) - buf->w the width of the string -*/ -struct u8g_str_size_struct -{ - int8_t y_min; /* descent */ - int8_t y_max; /* ascent */ - int8_t x, y; /* the reference point of the font (negated!) */ - u8g_uint_t w; /* width of the overall string */ -}; -typedef struct u8g_str_size_struct u8g_str_size_t; - -static void u8g_font_calc_str_min_box(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - /* u8g_glyph_t g; */ - int8_t tmp; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - buf->w = 0; - - /* check for empty string, width is already 0, but also reset y_min and y_max to 0 */ - if ( *s == '\0' ) - { - buf->y_min = 0; - buf->y_max = 0; - buf->x = 0; - buf->y = 0; - return; - } - - /* reset y_min to the largest possible value. Later we search for the smallest value */ - /* y_min contains the position [pixel] of the lower left edge of the glyph above (y_min>0) or below (y_min<0) baseline */ - buf->y_min = 127; - /* reset y_max to the smallest possible value. Later we search for the highest value */ - /* y_max contains the position [pixel] of the upper left edge of the glyph above (y_max>0) or below (y_max<0) baseline */ - buf->y_max = -128; - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - u8g_GetGlyph(u8g, *s); - - /* strlen(s) == 1: width = width(s[0]) */ - /* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */ - /* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */ - - /* assume that the string has size 2 or more, than start with negative offset-x */ - /* for string with size 1, this will be nullified after the loop */ - // buf->w = - u8g_font_GetGlyphBBXOffX(u8g->font, g); - buf->w = - u8g->glyph_x; - - /* Also copy the position of the first glyph. This is the reference point of the string (negated) */ - buf->x = u8g->glyph_x; - buf->y = u8g->glyph_y; - - for(;;) - { - - /* calculated y position of the upper left corner (y_max) and lower left corner (y_min) of the string */ - /* relative to the base line */ - - tmp = u8g->glyph_y; - if ( buf->y_min > tmp ) - buf->y_min = tmp; - - tmp +=u8g->glyph_height; - if ( buf->y_max < tmp ) - buf->y_max = tmp; - - /* check and stop if the end of the string is reached */ - s++; - if ( *s == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - buf->w += u8g->glyph_dx; - - /* load the next glyph information */ - u8g_GetGlyph(u8g, *s); - } - - /* finally calculate the width of the last char */ - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - buf->w += u8g->glyph_width; - // buf->w += u8g_font_GetGlyphBBXOffX(u8g->font, g); - - buf->w += u8g->glyph_x; -} - -/* calculate minimal box */ -void u8g_font_box_min(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - u8g_font_calc_str_min_box(u8g, s, buf); -} - -/* calculate gA box, but do not calculate the overall width */ -void u8g_font_box_left_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - -/* calculate gA box, including overall width */ -void u8g_font_box_all_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - - -static void u8g_font_get_str_box_fill_args(u8g_t *u8g, const char *s, u8g_str_size_t *buf, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - /* - u8g_glyph_t g; - g = - */ - u8g_GetGlyph(u8g, *s); - *x += u8g->glyph_x; - *width = buf->w; - *y -= buf->y_max; - /* +1 because y_max is a height, this compensates the next step */ - //*y += 1; - /* because the reference point is one below the string, this compensates the previous step */ - //*y -= 1; - *height = buf->y_max; - *height -= buf->y_min; -} - - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - u8g_font_calc_str_min_box(u8g, s, &buf); - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - - -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - uint8_t cap_a; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - cap_a = u8g_font_GetCapitalAHeight(u8g->font); - u8g_font_calc_str_min_box(u8g, s, &buf); - if ( buf.y_max < cap_a ) - buf.y_max = cap_a; - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font) -{ - if ( u8g->font != font ) - { - u8g->font = font; - u8g_UpdateRefHeight(u8g); - u8g_SetFontPosBaseline(u8g); - } -} - -/*========================================================================*/ -/* anti aliasing fonts */ - -int8_t u8g_draw_aa_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 3; - w /= 4; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw4TPixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=4; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawAAGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_aa_glyph(u8g, x, y, encoding); -} - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - if ( u8g_font_GetFormat(u8g->font) != 2 ) - return 0; - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_aa_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c deleted file mode 100644 index 0910808979..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_font_data.c +++ /dev/null @@ -1,88464 +0,0 @@ -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03b[826] U8G_FONT_SECTION("u8g_font_04b_03b") = { - 1,5,6,0,255,5,0,250,1,240,32,255,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,2,0,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03bn[136] U8G_FONT_SECTION("u8g_font_04b_03bn") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,240,144,144,144,240,2,37,53,192,64,64, - 64,64,2,69,85,240,16,240,128,240,2,69,85,240,16,240, - 16,240,2,69,85,144,144,144,240,16,2,69,85,240,128,240, - 16,240,2,69,85,224,128,240,144,240,2,69,85,240,16,32, - 64,64,2,69,85,240,144,240,144,240,2,69,85,240,144,240, - 16,112,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03br[696] U8G_FONT_SECTION("u8g_font_04b_03br") = { - 1,5,6,0,255,5,0,250,1,240,32,127,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03[859] U8G_FONT_SECTION("u8g_font_04b_03") = { - 1,5,7,0,254,5,0,251,1,242,32,255,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,0,64,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03n[136] U8G_FONT_SECTION("u8g_font_04b_03n") = { - 1,5,7,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,96,144,144,144,96,2,37,53,192,64,64, - 64,64,2,69,85,224,16,96,128,240,2,69,85,224,16,96, - 16,224,2,69,85,32,96,160,240,32,2,69,85,240,128,224, - 16,224,2,69,85,96,128,224,144,96,2,69,85,240,16,32, - 64,64,2,69,85,96,144,96,144,96,2,69,85,96,144,112, - 16,96,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03r[729] U8G_FONT_SECTION("u8g_font_04b_03r") = { - 1,5,7,0,254,5,0,251,1,242,32,127,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24[912] U8G_FONT_SECTION("u8g_font_04b_24") = { - 1,5,6,0,255,5,0,250,1,241,32,255,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,37,53,128,64,64,64,64,2,53,69,160,160,160,96,32, - 2,53,69,192,32,192,32,192,255,255,255,2,53,69,128,192, - 160,160,64,255,255,2,53,69,64,160,160,96,32,255,255,255, - 255,255,255,255,255,255,255,255,2,53,69,224,32,32,64,128, - 255,255,255,2,53,69,64,160,160,160,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 - }; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24n[136] U8G_FONT_SECTION("u8g_font_04b_24n") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,53,69,32,32,64, - 128,128,2,53,69,224,160,160,160,224,2,37,53,192,64,64, - 64,64,2,53,69,224,32,224,128,224,2,53,69,224,32,224, - 32,224,2,53,69,160,160,160,224,32,2,53,69,224,128,224, - 32,224,2,53,69,128,224,160,160,224,2,53,69,224,32,32, - 64,128,2,53,69,224,160,224,160,224,2,53,69,224,160,160, - 224,32,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimoo / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24r[735] U8G_FONT_SECTION("u8g_font_04b_24r") = { - 1,5,6,0,255,5,0,250,1,241,32,127,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 13 - Calculated Max Values w=10 h=20 x= 9 y=13 dx=10 dy= 0 ascent=16 len=40 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[4734] U8G_FONT_SECTION("u8g_font_10x20_67_75") = { - 0,10,20,0,252,5,2,211,5,193,32,255,0,16,252,13, - 0,9,6,12,10,0,3,54,0,27,0,255,128,255,128,27, - 0,54,0,8,13,13,10,1,0,24,24,24,24,153,219,126, - 60,153,219,126,60,24,9,8,16,10,0,2,25,128,51,0, - 102,0,252,0,252,0,102,0,51,0,25,128,9,8,16,10, - 0,2,204,0,102,0,51,0,31,128,31,128,51,0,102,0, - 204,0,9,8,16,10,0,2,25,128,49,128,97,128,255,128, - 255,128,97,128,49,128,25,128,8,13,13,10,1,0,24,60, - 126,219,153,24,24,24,24,24,24,255,255,9,8,16,10,0, - 2,204,0,198,0,195,0,255,128,255,128,195,0,198,0,204, - 0,8,13,13,10,1,0,255,255,24,24,24,24,24,24,153, - 219,126,60,24,8,13,13,10,1,0,24,60,126,219,153,24, - 153,219,126,60,24,255,255,9,8,16,10,0,2,27,0,51, - 128,97,128,255,128,255,0,96,0,48,0,24,0,9,8,16, - 10,0,2,108,0,230,0,195,0,255,128,127,128,3,0,6, - 0,12,0,9,8,16,10,0,2,25,0,51,128,98,128,255, - 128,255,0,98,0,50,0,24,0,9,8,16,10,0,2,76, - 0,230,0,163,0,255,128,127,128,35,0,38,0,12,0,10, - 8,16,10,0,2,18,0,51,0,109,128,255,192,243,192,97, - 128,51,0,18,0,10,8,16,10,0,2,18,0,55,0,101, - 128,255,192,255,192,105,128,59,0,18,0,10,15,30,10,0, - 0,1,192,3,128,7,0,14,0,28,0,63,192,127,192,3, - 128,7,0,206,0,220,0,248,0,240,0,252,0,252,0,8, - 13,13,10,1,0,48,96,255,255,99,51,3,3,3,3,3, - 3,3,8,13,13,10,1,0,12,6,255,255,198,204,192,192, - 192,192,192,192,192,8,13,13,10,1,0,3,3,3,3,3, - 3,3,51,99,255,255,96,48,8,13,13,10,1,0,192,192, - 192,192,192,192,192,204,198,255,255,6,12,8,13,13,10,1, - 0,252,252,12,12,12,12,12,12,12,45,63,30,12,8,9, - 9,10,1,1,3,3,3,51,99,255,255,96,48,9,8,16, - 10,0,0,14,0,31,0,59,128,49,128,181,128,253,128,121, - 128,49,128,9,8,16,10,0,0,56,0,124,0,238,0,198, - 0,214,128,223,128,207,0,198,0,9,13,26,10,0,0,255, - 128,255,128,32,0,124,0,127,0,122,0,216,0,204,0,140, - 0,6,0,6,0,3,0,3,0,9,13,26,10,0,0,204, - 0,216,0,255,128,255,128,216,0,204,0,0,0,25,128,13, - 128,255,128,255,128,13,128,25,128,9,10,20,10,0,2,31, - 0,31,0,30,0,31,0,219,128,193,128,193,128,227,128,127, - 0,62,0,9,10,20,10,0,2,124,0,124,0,60,0,124, - 0,237,128,193,128,193,128,227,128,127,0,62,0,9,5,10, - 10,0,5,24,0,48,0,96,0,255,128,255,128,9,5,10, - 10,0,2,255,128,255,128,96,0,48,0,24,0,5,13,13, - 10,4,0,192,224,240,216,200,192,192,192,192,192,192,192,192, - 5,13,13,10,1,0,24,56,120,216,152,24,24,24,24,24, - 24,24,24,9,5,10,10,0,5,12,0,6,0,3,0,255, - 128,255,128,9,5,10,10,0,2,255,128,255,128,3,0,6, - 0,12,0,5,13,13,10,4,0,192,192,192,192,192,192,192, - 192,200,216,240,224,192,5,13,13,10,1,0,24,24,24,24, - 24,24,24,24,152,216,120,56,24,9,11,22,10,0,1,6, - 0,3,0,255,128,255,128,3,0,54,0,96,0,255,128,255, - 128,96,0,48,0,10,13,26,10,0,0,51,0,123,0,255, - 0,183,0,51,0,51,0,51,0,51,0,51,0,59,64,63, - 192,55,128,51,0,9,11,22,10,0,1,48,0,96,0,255, - 128,255,128,96,0,54,0,3,0,255,128,255,128,3,0,6, - 0,9,11,22,10,0,1,48,0,96,0,255,128,255,128,96, - 0,48,0,96,0,255,128,255,128,96,0,48,0,9,13,26, - 10,0,0,34,0,119,0,170,128,34,0,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,9,11,22, - 10,0,1,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,13,26,10,0,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,34,0,170,128,119,0,34,0,8,9,9,10,1,2,48, - 96,255,255,0,255,255,6,12,8,9,9,10,1,2,12,6, - 255,255,0,255,255,96,48,8,7,7,10,1,2,2,34,127, - 132,127,40,8,10,7,14,10,0,2,4,0,37,0,127,128, - 140,64,127,128,41,0,8,0,8,7,7,10,1,2,16,20, - 254,33,254,68,64,9,9,18,10,0,2,12,0,24,0,63, - 128,127,128,192,0,127,128,63,128,24,0,12,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,54,0,54,0,54,0,54,0,54,0,54,0,9,9,18, - 10,0,2,24,0,12,0,254,0,255,0,1,128,255,0,254, - 0,12,0,24,0,9,13,26,10,0,0,54,0,54,0,54, - 0,54,0,54,0,54,0,54,0,182,128,247,128,119,0,54, - 0,28,0,8,0,10,9,18,10,0,2,18,0,51,0,127, - 128,255,192,128,192,255,192,127,128,51,0,18,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,182,128,247,128,119,0,54,0,28,0,8,0,9,9,18, - 10,0,2,254,0,254,0,204,0,198,0,227,0,241,128,216, - 128,12,0,6,0,9,9,18,10,0,2,63,128,63,128,25, - 128,49,128,99,128,199,128,141,128,24,0,48,0,9,9,18, - 10,0,2,48,0,24,0,141,128,199,128,99,128,49,128,25, - 128,63,128,63,128,9,9,18,10,0,2,6,0,12,0,216, - 128,241,128,227,0,198,0,204,0,254,0,254,0,9,11,22, - 10,0,1,4,0,8,0,16,0,63,128,64,0,255,128,64, - 0,63,128,16,0,8,0,4,0,9,11,22,10,0,1,16, - 0,8,0,4,0,254,0,1,0,255,128,1,0,254,0,4, - 0,8,0,16,0,9,5,10,10,0,3,32,0,66,0,245, - 128,72,0,32,0,9,5,10,10,0,3,2,0,33,0,215, - 128,9,0,2,0,8,13,13,10,1,0,24,60,126,219,153, - 24,126,126,24,126,126,24,24,8,13,13,10,1,0,24,24, - 126,126,24,126,126,24,153,219,126,60,24,9,8,16,10,0, - 2,24,0,48,0,96,0,237,128,237,128,96,0,48,0,24, - 0,8,13,13,10,1,0,24,60,126,219,129,24,24,0,24, - 24,0,24,24,9,8,16,10,0,2,12,0,6,0,3,0, - 219,128,219,128,3,0,6,0,12,0,8,13,13,10,1,0, - 24,24,0,24,24,0,24,24,129,219,126,60,24,9,8,16, - 10,0,2,198,0,204,0,216,0,255,128,255,128,216,0,204, - 0,198,0,9,8,16,10,0,2,49,128,25,128,13,128,255, - 128,255,128,13,128,25,128,49,128,9,8,16,10,0,2,24, - 0,40,0,79,128,128,128,128,128,79,128,40,0,24,0,8, - 13,13,10,1,0,24,36,66,129,231,36,36,36,36,36,36, - 36,60,9,8,16,10,0,2,12,0,10,0,249,0,128,128, - 128,128,249,0,10,0,12,0,8,13,13,10,1,0,60,36, - 36,36,36,36,36,36,231,129,66,36,24,8,13,13,10,1, - 0,24,36,66,129,231,36,36,60,0,60,36,36,60,8,13, - 13,10,1,0,24,36,66,129,231,36,36,36,36,36,231,129, - 255,8,13,13,10,1,0,24,36,126,129,231,36,36,36,36, - 36,231,129,255,9,14,28,10,0,0,8,0,28,0,42,0, - 73,0,136,128,235,128,42,0,42,0,42,0,42,0,42,0, - 235,128,136,128,255,128,8,13,13,10,1,0,24,36,90,231, - 66,231,36,36,36,36,36,36,60,8,13,13,10,1,0,24, - 36,90,231,66,231,36,36,36,36,231,129,255,9,8,16,10, - 0,2,236,0,170,0,185,0,128,128,128,128,185,0,170,0, - 236,0,8,8,8,10,1,2,255,128,188,168,184,164,130,129, - 8,8,8,10,1,2,129,65,37,29,21,61,1,255,8,13, - 13,10,1,0,24,36,66,231,36,36,36,36,36,231,66,36, - 24,9,6,12,10,0,3,38,0,83,0,255,128,255,128,83, - 0,38,0,10,13,26,10,0,0,51,0,55,128,63,192,59, - 64,51,0,51,0,51,0,51,0,51,0,183,0,255,0,123, - 0,51,0,9,16,32,10,0,254,6,0,3,0,255,128,255, - 128,3,0,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,8,16,10,0,2,22, - 0,54,0,102,0,255,128,255,128,102,0,54,0,22,0,9, - 8,16,10,0,2,52,0,54,0,51,0,255,128,255,128,51, - 0,54,0,52,0,10,6,12,10,0,3,45,0,109,128,255, - 192,255,192,109,128,45,0,9,6,12,10,0,3,42,0,106, - 0,255,128,255,128,106,0,42,0,9,6,12,10,0,3,42, - 0,43,0,255,128,255,128,43,0,42,0,9,6,12,10,0, - 3,85,0,213,128,255,128,255,128,213,128,85,0,9,8,16, - 10,0,2,16,0,48,0,112,0,223,128,223,128,112,0,48, - 0,16,0,9,8,16,10,0,2,4,0,6,0,7,0,253, - 128,253,128,7,0,6,0,4,0,10,8,16,10,0,2,18, - 0,51,0,115,128,222,192,222,192,115,128,51,0,18,0,10, - 10,20,10,0,6,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,10,3,6,10,0,252,255, - 192,255,192,255,192,10,5,10,10,0,252,255,192,255,192,255, - 192,255,192,255,192,10,8,16,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,10,10,20,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,12,24,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,15,30,10,0,252,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,10,17,34,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,10, - 20,40,10,0,252,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,9,20,40, - 10,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,7,20,20,10,0, - 252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, - 254,254,254,254,254,6,20,20,10,0,252,252,252,252,252,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 20,20,10,0,252,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,4,20,20,10,0,252,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,3,20,20,10,0,252,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,1,20,20, - 10,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,5,20,20,10,5,252,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,10,19,38,10,0,253,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,10,20,40, - 10,0,252,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,10,20,40,10,0, - 252,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,10,3,6,10,0,13,255, - 192,255,192,255,192,1,20,20,10,9,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,5, - 10,10,10,0,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,5,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,0,6,248,248,248,248,248,248,248,248,248,248,10, - 20,40,10,0,252,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,10,20,40, - 10,0,252,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,10,20,40,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,10,20,40,10,0,252,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,5,10,10,10,5,6,248,248,248, - 248,248,248,248,248,248,248,10,20,40,10,0,252,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,10,20,40,10,0,252,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,8,8,8,10,1,1,255,255,255,255,255,255,255, - 255,8,8,8,10,1,1,255,129,129,129,129,129,129,255,8, - 8,8,10,1,1,126,129,129,129,129,129,129,126,8,8,8, - 10,1,1,255,129,189,189,189,189,129,255,9,9,18,10,0, - 0,255,128,128,128,255,128,128,128,255,128,128,128,255,128,128, - 128,255,128,9,9,18,10,0,0,255,128,170,128,170,128,170, - 128,170,128,170,128,170,128,170,128,255,128,9,9,18,10,0, - 0,255,128,170,128,255,128,170,128,255,128,170,128,255,128,170, - 128,255,128,8,8,8,10,1,1,255,201,165,147,201,165,147, - 255,8,8,8,10,1,1,255,147,165,201,147,165,201,255,8, - 8,8,10,1,1,255,171,197,171,145,171,197,255,4,4,4, - 10,3,3,240,240,240,240,4,4,4,10,3,3,240,144,144, - 240,8,6,6,10,1,3,255,255,255,255,255,255,8,6,6, - 10,1,3,255,129,129,129,129,255,6,13,13,10,2,0,252, - 252,252,252,252,252,252,252,252,252,252,252,252,6,13,13,10, - 2,0,252,132,132,132,132,132,132,132,132,132,132,132,252,8, - 4,4,10,1,3,31,62,124,248,8,4,4,10,1,3,31, - 34,68,248,8,8,8,10,1,2,24,24,60,60,126,126,255, - 255,8,8,8,10,1,2,24,24,36,36,66,66,129,255,5, - 5,5,10,3,3,32,112,112,248,248,5,5,5,10,3,3, - 32,80,80,136,248,8,8,8,10,1,2,192,240,252,255,255, - 252,240,192,8,8,8,10,1,2,192,176,140,131,131,140,176, - 192,5,5,5,10,3,3,192,240,248,240,192,5,5,5,10, - 3,3,192,176,136,176,192,8,5,5,10,1,4,224,252,255, - 252,224,8,5,5,10,1,4,224,156,131,156,224,8,8,8, - 10,1,2,255,255,126,126,60,60,24,24,8,8,8,10,1, - 2,255,129,66,66,36,36,24,24,5,5,5,10,3,3,248, - 248,112,112,32,5,5,5,10,3,3,248,136,80,80,32,8, - 8,8,10,1,2,3,15,63,255,255,63,15,3,8,8,8, - 10,1,2,3,13,49,193,193,49,13,3,5,5,5,10,3, - 3,24,120,248,120,24,5,5,5,10,3,3,24,104,136,104, - 24,8,5,5,10,1,4,7,63,255,63,7,8,5,5,10, - 1,4,7,57,193,57,7,8,8,8,10,1,2,24,60,126, - 255,255,126,60,24,8,8,8,10,1,2,24,36,66,129,129, - 66,36,24,8,8,8,10,1,2,24,36,90,189,189,90,36, - 24,8,8,8,10,1,1,60,66,153,189,189,153,66,60,9, - 15,30,10,1,255,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,65,0,65,0,34,0,34,0,20,0,20, - 0,8,0,8,8,8,10,1,1,60,66,129,129,129,129,66, - 60,7,7,7,10,1,2,40,0,130,0,130,0,40,7,7, - 7,10,1,2,56,108,170,170,170,108,56,8,8,8,10,1, - 1,60,66,153,165,165,153,66,60,8,8,8,10,1,1,60, - 126,255,255,255,255,126,60,8,8,8,10,1,1,60,114,241, - 241,241,241,114,60,8,8,8,10,1,1,60,78,143,143,143, - 143,78,60,8,8,8,10,1,1,60,66,129,129,255,255,126, - 60,8,8,8,10,1,1,60,126,255,255,129,129,66,60,8, - 8,8,10,1,1,60,78,143,143,129,129,66,60,8,8,8, - 10,1,1,60,78,143,143,255,255,126,60,4,8,8,10,1, - 1,48,112,240,240,240,240,112,48,4,8,8,10,5,1,192, - 224,240,240,240,240,224,192,10,20,40,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,225,192,192,192,128,64,128, - 64,128,64,128,64,192,192,225,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,20,40,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,225,192,222,192,191,64,191,64,191, - 64,191,64,222,192,225,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,10,20,10,0,6,255,192,255,192,255,192,255, - 192,255,192,255,192,225,192,222,192,191,64,191,64,10,10,20, - 10,0,252,191,64,191,64,222,192,225,192,255,192,255,192,255, - 192,255,192,255,192,255,192,4,4,4,10,1,5,48,64,128, - 128,4,4,4,10,5,5,192,32,16,16,4,4,4,10,5, - 1,16,16,32,192,4,4,4,10,1,1,128,128,64,48,8, - 4,4,10,1,5,60,66,129,129,8,4,4,10,1,1,129, - 129,66,60,10,19,38,10,0,252,0,64,0,64,0,192,0, - 192,1,192,1,192,3,192,3,192,7,192,7,192,15,192,15, - 192,31,192,31,192,63,192,63,192,127,192,127,192,255,192,10, - 19,38,10,0,252,128,0,128,0,192,0,192,0,224,0,224, - 0,240,0,240,0,248,0,248,0,252,0,252,0,254,0,254, - 0,255,0,255,0,255,128,255,128,255,192,10,19,38,10,0, - 253,255,192,255,128,255,128,255,0,255,0,254,0,254,0,252, - 0,252,0,248,0,248,0,240,0,240,0,224,0,224,0,192, - 0,192,0,128,0,128,0,10,19,38,10,0,253,255,192,127, - 192,127,192,63,192,63,192,31,192,31,192,15,192,15,192,7, - 192,7,192,3,192,3,192,1,192,1,192,0,192,0,192,0, - 64,0,64,5,5,5,10,3,4,112,136,136,136,112,8,8, - 8,10,1,1,255,241,241,241,241,241,241,255,8,8,8,10, - 1,1,255,143,143,143,143,143,143,255,8,8,8,10,1,1, - 255,253,249,241,225,193,129,255,8,8,8,10,1,1,255,129, - 131,135,143,159,191,255,9,9,18,10,0,0,255,128,136,128, - 136,128,136,128,136,128,136,128,136,128,136,128,255,128,8,8, - 8,10,1,2,24,24,36,36,90,90,129,255,8,8,8,10, - 1,2,24,24,52,52,114,114,241,255,8,8,8,10,1,2, - 24,24,44,44,78,78,143,255,10,10,20,10,0,0,30,0, - 33,0,64,128,128,64,128,64,128,64,128,64,64,128,33,0, - 30,0,9,9,18,10,0,0,255,128,136,128,136,128,136,128, - 248,128,128,128,128,128,128,128,255,128,9,9,18,10,0,0, - 255,128,128,128,128,128,128,128,248,128,136,128,136,128,136,128, - 255,128,9,9,18,10,0,0,255,128,128,128,128,128,128,128, - 143,128,136,128,136,128,136,128,255,128,9,9,18,10,0,0, - 255,128,136,128,136,128,136,128,143,128,128,128,128,128,128,128, - 255,128,9,9,18,10,0,0,62,0,73,0,136,128,136,128, - 248,128,128,128,128,128,65,0,62,0,9,9,18,10,0,0, - 62,0,65,0,128,128,128,128,248,128,136,128,136,128,73,0, - 62,0,9,9,18,10,0,0,62,0,65,0,128,128,128,128, - 143,128,136,128,136,128,73,0,62,0,9,9,18,10,0,0, - 62,0,73,0,136,128,136,128,143,128,128,128,128,128,65,0, - 62,0,6,6,6,10,2,2,252,136,144,160,192,128,6,6, - 6,10,2,2,252,68,36,20,12,4,6,6,6,10,2,2, - 128,192,160,144,136,252,6,6,6,10,2,2,252,132,132,132, - 132,252,6,6,6,10,2,2,252,252,252,252,252,252,4,4, - 4,10,3,3,240,144,144,240,4,4,4,10,3,3,240,240, - 240,240,6,6,6,10,2,2,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 8, '1' Height: 4 - Calculated Max Values w= 9 h=15 x= 3 y= 4 dx=10 dy= 0 ascent=14 len=30 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =14 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_75r[693] U8G_FONT_SECTION("u8g_font_10x20_75r") = { - 0,10,20,0,252,8,1,219,0,0,32,79,0,14,255,9, - 0,8,8,8,10,1,1,255,255,255,255,255,255,255,255,8, - 8,8,10,1,1,255,129,129,129,129,129,129,255,8,8,8, - 10,1,1,126,129,129,129,129,129,129,126,8,8,8,10,1, - 1,255,129,189,189,189,189,129,255,9,9,18,10,0,0,255, - 128,128,128,255,128,128,128,255,128,128,128,255,128,128,128,255, - 128,9,9,18,10,0,0,255,128,170,128,170,128,170,128,170, - 128,170,128,170,128,170,128,255,128,9,9,18,10,0,0,255, - 128,170,128,255,128,170,128,255,128,170,128,255,128,170,128,255, - 128,8,8,8,10,1,1,255,201,165,147,201,165,147,255,8, - 8,8,10,1,1,255,147,165,201,147,165,201,255,8,8,8, - 10,1,1,255,171,197,171,145,171,197,255,4,4,4,10,3, - 3,240,240,240,240,4,4,4,10,3,3,240,144,144,240,8, - 6,6,10,1,3,255,255,255,255,255,255,8,6,6,10,1, - 3,255,129,129,129,129,255,6,13,13,10,2,0,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,10,2,0, - 252,132,132,132,132,132,132,132,132,132,132,132,252,8,4,4, - 10,1,3,31,62,124,248,8,4,4,10,1,3,31,34,68, - 248,8,8,8,10,1,2,24,24,60,60,126,126,255,255,8, - 8,8,10,1,2,24,24,36,36,66,66,129,255,5,5,5, - 10,3,3,32,112,112,248,248,5,5,5,10,3,3,32,80, - 80,136,248,8,8,8,10,1,2,192,240,252,255,255,252,240, - 192,8,8,8,10,1,2,192,176,140,131,131,140,176,192,5, - 5,5,10,3,3,192,240,248,240,192,5,5,5,10,3,3, - 192,176,136,176,192,8,5,5,10,1,4,224,252,255,252,224, - 8,5,5,10,1,4,224,156,131,156,224,8,8,8,10,1, - 2,255,255,126,126,60,60,24,24,8,8,8,10,1,2,255, - 129,66,66,36,36,24,24,5,5,5,10,3,3,248,248,112, - 112,32,5,5,5,10,3,3,248,136,80,80,32,8,8,8, - 10,1,2,3,15,63,255,255,63,15,3,8,8,8,10,1, - 2,3,13,49,193,193,49,13,3,5,5,5,10,3,3,24, - 120,248,120,24,5,5,5,10,3,3,24,104,136,104,24,8, - 5,5,10,1,4,7,63,255,63,7,8,5,5,10,1,4, - 7,57,193,57,7,8,8,8,10,1,2,24,60,126,255,255, - 126,60,24,8,8,8,10,1,2,24,36,66,129,129,66,36, - 24,8,8,8,10,1,2,24,36,90,189,189,90,36,24,8, - 8,8,10,1,1,60,66,153,189,189,153,66,60,9,15,30, - 10,1,255,8,0,20,0,20,0,34,0,34,0,65,0,65, - 0,128,128,65,0,65,0,34,0,34,0,20,0,20,0,8, - 0,8,8,8,10,1,1,60,66,129,129,129,129,66,60,7, - 7,7,10,1,2,40,0,130,0,130,0,40,7,7,7,10, - 1,2,56,108,170,170,170,108,56,8,8,8,10,1,1,60, - 66,153,165,165,153,66,60,8,8,8,10,1,1,60,126,255, - 255,255,255,126,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 4 y= 5 dx=10 dy= 0 ascent=13 len=24 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[2638] U8G_FONT_SECTION("u8g_font_10x20_78_79") = { - 0,10,20,0,252,9,1,212,2,205,32,255,0,13,0,11, - 0,9,9,18,10,0,0,54,0,28,0,136,128,201,128,119, - 0,201,128,136,128,28,0,54,0,9,9,18,10,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,10,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,127,0,255, - 128,127,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,10,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,10,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,10,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,127,0,119,0,99,0,255,255,255,255, - 255,8,9,9,10,0,0,24,219,255,126,24,126,255,219,24, - 8,9,9,10,0,0,24,219,255,102,36,102,255,219,24,9, - 9,18,10,0,0,8,0,73,0,42,0,28,0,255,128,28, - 0,42,0,73,0,8,0,9,9,18,10,0,0,8,0,73, - 0,62,0,62,0,255,128,62,0,62,0,73,0,8,0,7, - 7,7,10,1,0,16,146,124,56,124,146,16,9,9,18,10, - 0,0,34,0,20,0,148,128,127,0,28,0,127,0,148,128, - 20,0,34,0,255,255,255,255,9,11,22,10,0,0,28,0, - 28,0,201,128,201,128,62,0,28,0,62,0,201,128,201,128, - 28,0,28,0,9,11,22,10,0,0,28,0,28,0,201,128, - 201,128,62,0,28,0,62,0,201,128,201,128,28,0,28,0, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 9,8,16,10,0,1,62,0,67,0,129,128,129,128,129,128, - 129,128,67,0,62,0,255,9,9,18,10,0,0,254,0,130, - 0,131,128,131,128,131,128,131,128,255,128,63,128,63,128,9, - 9,18,10,0,0,63,128,63,128,255,128,131,128,131,128,131, - 128,131,128,130,0,254,0,8,8,8,10,0,0,254,131,131, - 131,131,131,255,127,8,8,8,10,0,0,127,255,131,131,131, - 131,131,254,255,255,255,9,9,18,10,0,0,8,0,28,0, - 28,0,107,0,247,128,107,0,28,0,28,0,8,0,255,1, - 10,10,10,4,0,128,128,128,128,128,128,128,128,128,128,2, - 10,10,10,3,0,192,192,192,192,192,192,192,192,192,192,3, - 10,10,10,3,0,224,224,224,224,224,224,224,224,224,224,4, - 6,6,10,3,5,112,128,224,240,240,96,4,6,6,10,3, - 5,96,240,240,112,16,224,9,6,12,10,0,5,115,128,132, - 0,231,0,247,128,247,128,99,0,9,6,12,10,0,5,99, - 0,247,128,247,128,115,128,16,128,231,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,227,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,237,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,241,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,152,128, - 136,128,136,128,156,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,152,128,132,128,132,128,136,128,156,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,152,128,132,128, - 136,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,152,128,168,128,188,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,144,128, - 152,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,140,128,144,128,152,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,132,128, - 136,128,136,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,148,128,136,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,148,128, - 140,128,132,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,164,128,170,128,170,128,170,128,164,128,128,128, - 127,0,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,239,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,251,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,7,8,8,10,1,1,48,24,12,254,254,12,24,48, - 255,255,255,7,5,5,10,1,1,224,250,62,14,30,8,7, - 7,10,1,1,8,12,230,255,230,12,8,7,5,5,10,1, - 1,30,14,62,250,224,9,7,14,10,0,0,48,0,28,0, - 31,0,255,128,31,0,28,0,48,0,9,9,18,10,0,0, - 28,0,30,0,15,0,255,128,255,128,255,128,15,0,30,0, - 28,0,9,5,10,10,0,1,2,0,3,0,255,128,3,0, - 2,0,9,7,14,10,0,0,4,0,6,0,255,0,255,128, - 255,0,6,0,4,0,9,5,10,10,0,1,2,0,183,0, - 183,128,183,0,2,0,9,5,10,10,0,1,2,0,171,0, - 171,128,171,0,2,0,9,5,10,10,0,1,2,0,255,0, - 255,128,255,0,2,0,9,8,16,10,0,1,128,0,112,0, - 78,0,33,128,31,128,62,0,112,0,128,0,9,8,16,10, - 0,1,128,0,112,0,62,0,31,128,33,128,78,0,112,0, - 128,0,9,8,16,10,0,1,128,0,112,0,62,0,31,128, - 31,128,62,0,112,0,128,0,9,7,14,10,0,0,132,0, - 134,0,255,0,255,128,127,0,6,0,4,0,9,7,14,10, - 0,0,4,0,6,0,127,0,255,128,255,0,134,0,132,0, - 6,9,9,10,2,0,16,16,248,248,252,248,248,16,16,8, - 9,9,10,0,1,4,4,254,254,255,254,254,4,4,9,9, - 18,10,0,0,24,0,28,0,22,0,243,0,129,128,243,0, - 22,0,28,0,24,0,9,9,18,10,0,0,24,0,28,0, - 26,0,249,0,192,128,249,0,26,0,28,0,24,0,9,9, - 18,10,0,0,0,128,1,128,62,128,64,128,129,128,243,0, - 238,0,60,0,56,0,9,9,18,10,0,0,56,0,60,0, - 238,0,243,0,129,128,64,128,62,128,1,128,0,128,8,9, - 9,10,0,1,16,24,20,242,129,243,118,28,24,8,9,9, - 10,0,1,24,28,118,243,129,242,20,24,16,9,8,16,10, - 0,1,4,0,250,0,129,0,64,128,129,128,251,0,6,0, - 4,0,255,9,8,16,10,0,2,4,0,6,0,251,0,129, - 128,64,128,129,0,250,0,4,0,9,9,18,10,0,1,28, - 0,127,0,251,128,1,128,0,128,1,128,251,128,127,0,28, - 0,9,5,10,10,0,3,210,0,43,0,127,128,43,0,210, - 0,9,9,18,10,0,0,16,0,56,0,92,0,236,0,116, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,7,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,116,0,236,0,92,0,56,0,16, - 0,9,9,18,10,0,0,16,0,24,0,28,0,252,0,124, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,127,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,124,0,252,0,28,0,24,0,16, - 0,255,255,255,255,9,7,14,10,0,1,20,0,10,0,253, - 0,0,128,253,0,10,0,20,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,9, - 12,24,10,0,0,224,128,49,128,49,128,42,128,42,128,36, - 128,36,128,42,128,42,128,49,128,49,128,224,128,9,12,24, - 10,0,0,131,128,198,0,198,0,170,0,170,0,146,0,146, - 0,170,0,170,0,198,0,198,0,131,128,9,12,24,10,0, - 0,193,128,99,0,99,0,85,0,85,0,73,0,73,0,85, - 0,85,0,99,0,99,0,193,128,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,8,13,13,10,1,0,255,216,216, - 216,216,216,216,216,216,216,216,216,255,8,13,13,10,1,0, - 255,27,27,27,27,27,27,27,27,27,27,27,255,4,13,13, - 10,4,0,16,48,32,96,64,192,128,192,64,96,32,48,16, - 4,13,13,10,4,0,128,192,64,96,32,48,16,48,32,96, - 64,192,128,7,13,13,10,1,0,18,54,36,108,72,216,144, - 216,72,108,36,54,18,7,13,13,10,2,0,144,216,72,108, - 36,54,18,54,36,108,72,216,144,255,255,255,255,255,255,255, - 255,255,10,8,16,10,0,2,24,0,48,0,96,0,255,192, - 255,192,96,0,48,0,24,0,10,8,16,10,0,2,6,0, - 3,0,1,128,255,192,255,192,1,128,3,0,6,0,10,8, - 16,10,0,2,18,0,51,0,97,128,255,192,255,192,97,128, - 51,0,18,0,10,9,18,10,0,2,12,0,24,0,63,192, - 127,192,192,0,127,192,63,192,24,0,12,0,10,9,18,10, - 0,2,12,0,6,0,255,0,255,128,0,192,255,128,255,0, - 6,0,12,0,10,9,18,10,0,2,18,0,51,0,127,128, - 255,192,128,192,255,192,127,128,51,0,18,0,10,8,16,10, - 0,2,24,192,48,192,96,192,255,192,255,192,96,192,48,192, - 24,192,10,8,16,10,0,2,198,0,195,0,193,128,255,192, - 255,192,193,128,195,0,198,0,10,9,18,10,0,2,12,64, - 24,64,63,192,127,192,192,64,127,192,63,192,24,64,12,64, - 10,9,18,10,0,2,140,0,134,0,255,0,255,128,128,192, - 255,128,255,0,134,0,140,0,10,8,16,10,0,2,6,0, - 3,0,171,128,170,192,85,192,85,128,3,0,6,0}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20[3453] U8G_FONT_SECTION("u8g_font_10x20") = { - 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, - 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, - 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, - 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, - 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, - 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, - 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, - 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, - 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, - 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, - 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, - 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, - 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, - 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, - 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, - 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, - 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, - 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, - 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, - 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, - 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, - 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, - 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, - 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, - 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, - 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, - 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, - 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, - 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, - 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, - 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, - 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, - 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, - 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, - 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, - 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, - 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, - 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, - 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, - 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, - 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, - 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, - 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, - 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, - 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, - 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, - 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, - 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, - 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, - 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, - 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, - 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, - 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, - 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, - 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, - 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, - 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, - 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, - 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, - 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, - 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, - 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, - 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, - 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, - 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, - 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, - 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, - 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, - 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, - 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, - 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, - 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, - 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, - 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, - 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, - 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, - 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, - 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, - 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, - 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, - 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, - 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, - 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, - 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, - 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, - 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, - 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, - 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, - 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, - 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, - 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, - 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, - 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, - 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, - 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, - 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, - 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, - 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, - 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, - 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, - 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, - 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, - 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, - 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, - 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, - 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, - 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, - 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, - 0,195,195,195,195,195,195,103,59,3,195,102,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=15 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20r[1667] U8G_FONT_SECTION("u8g_font_10x20r") = { - 0,10,20,0,252,13,2,74,4,153,32,127,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6[1500] U8G_FONT_SECTION("u8g_font_4x6") = { - 1,4,6,0,255,5,1,3,1,250,32,255,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0, - 64,18,21,69,128,0,128,128,128,2,53,69,64,224,128,224, - 64,2,53,69,32,64,96,64,160,2,68,68,144,96,96,144, - 2,53,69,160,64,224,64,64,18,21,69,128,128,0,128,128, - 1,54,70,96,192,160,96,32,192,6,49,65,160,1,70,70, - 96,144,208,208,144,96,2,53,69,96,160,96,0,224,3,67, - 67,80,160,80,3,50,66,224,32,4,49,65,224,3,68,68, - 96,240,208,96,6,49,65,224,4,51,67,64,160,64,2,53, - 69,64,224,64,0,224,3,36,68,192,64,128,192,2,37,69, - 192,64,128,64,128,21,34,66,64,128,1,53,69,160,160,160, - 192,128,2,69,69,112,208,208,80,80,20,17,65,128,18,34, - 66,64,128,3,36,68,64,192,64,64,2,53,69,64,160,64, - 0,224,3,67,67,160,80,160,1,70,70,128,128,128,80,112, - 16,1,70,70,128,128,176,16,32,48,1,70,70,192,64,128, - 80,176,16,2,53,69,64,0,64,128,96,2,53,69,128,64, - 160,224,160,2,53,69,32,64,160,224,160,2,53,69,192,64, - 160,224,160,2,53,69,96,192,160,224,160,2,53,69,160,64, - 160,224,160,2,53,69,64,64,160,224,160,2,69,69,112,160, - 240,160,176,1,54,70,64,160,128,160,64,128,2,53,69,128, - 224,192,128,224,2,53,69,32,224,192,128,224,2,53,69,96, - 224,192,128,224,2,53,69,160,224,192,128,224,2,53,69,128, - 224,64,64,224,2,53,69,32,224,64,64,224,2,53,69,64, - 224,64,64,224,2,53,69,160,64,64,64,224,2,69,69,224, - 80,208,80,224,2,69,69,80,160,224,224,160,2,53,69,128, - 64,160,160,64,2,53,69,32,64,160,160,64,2,53,69,64, - 64,160,160,64,2,69,69,112,224,160,160,64,2,53,69,160, - 64,160,160,64,3,51,67,160,64,160,2,53,69,96,160,224, - 160,192,2,53,69,128,64,160,160,224,2,53,69,32,64,160, - 160,224,2,53,69,64,0,160,160,224,2,53,69,160,0,160, - 160,224,2,53,69,32,0,160,64,64,2,53,69,128,192,160, - 192,128,1,54,70,64,160,192,160,224,128,2,53,69,128,64, - 96,160,96,2,53,69,32,64,96,160,96,2,53,69,96,0, - 96,160,96,2,69,69,80,160,96,160,96,2,53,69,160,0, - 96,160,96,2,53,69,64,0,96,160,96,2,68,68,112,176, - 160,112,1,53,69,64,160,128,96,64,2,53,69,128,64,160, - 192,96,2,53,69,32,64,160,192,96,2,53,69,192,64,160, - 192,96,2,53,69,160,64,160,192,96,2,53,69,128,64,64, - 64,224,2,53,69,32,192,64,64,224,2,53,69,64,160,64, - 64,224,2,53,69,160,0,192,64,224,2,53,69,160,64,96, - 160,64,2,69,69,80,160,192,160,160,2,53,69,128,64,64, - 160,64,2,53,69,32,64,64,160,64,2,53,69,64,0,64, - 160,64,2,53,69,224,0,64,160,64,2,53,69,160,0,64, - 160,64,2,53,69,64,0,224,0,64,2,52,68,96,160,160, - 192,2,53,69,128,64,160,160,96,2,53,69,32,64,160,160, - 96,2,53,69,64,0,160,160,96,2,53,69,160,0,160,160, - 96,1,54,70,32,64,160,224,32,192,1,54,70,128,128,192, - 160,192,128,1,54,70,160,0,160,224,32,192}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6r[734] U8G_FONT_SECTION("u8g_font_4x6r") = { - 1,4,6,0,255,5,1,3,1,250,32,127,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7[1624] U8G_FONT_SECTION("u8g_font_5x7") = { - 1,5,7,0,255,6,1,21,2,39,32,255,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,8,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,69,85,48,64,224, - 64,176,2,85,85,136,112,80,112,136,18,54,86,160,160,64, - 224,64,64,34,21,85,128,128,0,128,128,17,55,87,96,128, - 192,160,96,32,192,23,49,81,160,1,87,87,112,136,168,200, - 168,136,112,5,51,83,96,160,96,3,83,83,72,144,72,3, - 66,82,240,16,20,49,81,224,1,87,87,112,136,232,200,200, - 136,112,7,65,81,240,21,51,83,64,160,64,2,86,86,32, - 32,248,32,32,248,20,36,84,192,64,128,192,20,36,84,192, - 192,64,192,22,34,82,64,128,1,69,85,144,144,144,224,128, - 2,70,86,112,208,208,80,80,80,20,34,82,192,192,17,34, - 82,64,128,20,52,84,64,192,64,224,5,51,83,64,160,64, - 3,83,83,144,72,144,1,71,87,128,128,128,144,48,112,16, - 1,71,87,128,128,128,176,16,32,48,1,71,87,192,192,64, - 208,48,112,16,18,54,86,64,0,64,128,160,64,2,70,86, - 96,144,144,240,144,144,2,70,86,96,144,144,240,144,144,2, - 70,86,96,144,144,240,144,144,2,70,86,96,144,144,240,144, - 144,2,70,86,144,96,144,240,144,144,2,70,86,96,96,144, - 240,144,144,2,70,86,112,160,176,224,160,176,1,71,87,96, - 144,128,128,144,96,64,2,70,86,240,128,224,128,128,240,2, - 70,86,240,128,224,128,128,240,2,70,86,240,128,224,128,128, - 240,2,70,86,240,128,224,128,128,240,18,54,86,224,64,64, - 64,64,224,18,54,86,224,64,64,64,64,224,18,54,86,224, - 64,64,64,64,224,18,54,86,224,64,64,64,64,224,2,70, - 86,224,80,208,80,80,224,2,70,86,176,144,208,176,176,144, - 2,70,86,96,144,144,144,144,96,2,70,86,96,144,144,144, - 144,96,2,70,86,96,144,144,144,144,96,2,70,86,96,144, - 144,144,144,96,2,70,86,144,96,144,144,144,96,2,68,84, - 144,96,96,144,2,70,86,112,176,176,208,208,224,2,70,86, - 144,144,144,144,144,96,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,144,96,2,70,86,144,0,144,144,144, - 96,18,54,86,160,160,160,64,64,64,2,70,86,128,224,144, - 224,128,128,2,70,86,96,144,160,144,144,160,2,70,86,64, - 32,112,144,176,80,2,70,86,32,64,112,144,176,80,2,70, - 86,32,80,112,144,176,80,2,70,86,80,160,112,144,176,80, - 2,70,86,80,0,112,144,176,80,2,70,86,96,96,112,144, - 176,80,2,68,84,112,176,160,112,17,53,85,96,128,128,96, - 64,2,70,86,64,32,96,176,192,96,2,70,86,32,64,96, - 176,192,96,2,70,86,64,160,96,176,192,96,2,70,86,160, - 0,96,176,192,96,18,54,86,128,64,192,64,64,224,18,54, - 86,64,128,192,64,64,224,18,54,86,64,160,192,64,64,224, - 18,54,86,160,0,192,64,64,224,2,70,86,64,48,96,144, - 144,96,2,70,86,80,160,224,144,144,144,2,70,86,64,32, - 96,144,144,96,2,70,86,32,64,96,144,144,96,2,70,86, - 96,0,96,144,144,96,2,70,86,80,160,96,144,144,96,2, - 70,86,80,0,96,144,144,96,2,69,85,96,0,240,0,96, - 2,68,84,112,176,208,224,2,70,86,64,32,144,144,144,112, - 2,70,86,32,64,144,144,144,112,2,70,86,96,0,144,144, - 144,112,2,70,86,80,0,144,144,144,112,1,71,87,32,64, - 144,144,80,32,64,1,70,86,128,224,144,144,224,128,1,71, - 87,80,0,144,144,80,32,64}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7r[789] U8G_FONT_SECTION("u8g_font_5x7r") = { - 1,5,7,0,255,6,1,21,2,39,32,127,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_FONT_SECTION("u8g_font_5x8") = { - 1,5,8,0,255,6,1,33,2,53,32,255,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,9,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,70,86,32,80,224, - 64,80,160,2,85,85,136,112,80,112,136,2,86,86,136,80, - 248,32,248,32,34,23,87,128,128,128,0,128,128,128,2,71, - 87,112,128,224,144,112,16,224,23,49,81,160,2,86,86,112, - 168,200,200,168,112,20,53,85,96,160,96,0,224,3,67,83, - 80,160,80,18,51,83,224,32,32,20,49,81,224,2,86,86, - 112,232,216,232,216,112,23,49,81,224,21,51,83,64,160,64, - 18,53,85,64,224,64,0,224,20,53,85,64,160,32,64,224, - 20,53,85,192,32,192,32,192,22,34,82,64,128,1,69,85, - 144,144,144,224,128,2,86,86,120,232,232,104,40,40,36,17, - 81,128,17,34,82,64,128,20,53,85,64,192,64,64,224,20, - 53,85,64,160,64,0,224,3,67,83,160,80,160,2,71,87, - 128,128,128,160,96,240,32,2,71,87,128,128,160,208,16,32, - 112,2,71,87,128,64,128,96,160,240,32,18,54,86,64,0, - 64,128,160,64,2,71,87,64,32,96,144,240,144,144,2,71, - 87,32,64,96,144,240,144,144,2,71,87,96,144,96,144,240, - 144,144,2,71,87,80,160,96,144,240,144,144,2,71,87,144, - 0,96,144,240,144,144,2,71,87,96,144,96,144,240,144,144, - 2,70,86,112,160,160,240,160,176,1,71,87,96,144,128,128, - 144,96,64,2,71,87,64,32,240,128,224,128,240,2,71,87, - 32,64,240,128,224,128,240,2,71,87,96,144,240,128,224,128, - 240,2,71,87,144,0,240,128,224,128,240,18,55,87,128,64, - 224,64,64,64,224,18,55,87,32,64,224,64,64,64,224,18, - 55,87,64,160,224,64,64,64,224,18,55,87,160,0,224,64, - 64,64,224,2,86,86,112,72,232,72,72,112,2,71,87,80, - 160,144,208,176,144,144,2,71,87,64,32,96,144,144,144,96, - 2,71,87,32,64,96,144,144,144,96,2,71,87,96,144,96, - 144,144,144,96,2,71,87,80,160,96,144,144,144,96,2,71, - 87,144,0,96,144,144,144,96,18,51,83,160,64,160,2,70, - 86,112,176,176,208,208,224,2,71,87,64,32,144,144,144,144, - 96,2,71,87,32,64,144,144,144,144,96,2,71,87,96,144, - 144,144,144,144,96,2,71,87,144,0,144,144,144,144,96,2, - 87,87,16,32,136,80,32,32,32,2,70,86,128,224,144,144, - 224,128,2,70,86,96,144,160,160,144,160,2,71,87,64,32, - 0,112,144,144,112,2,71,87,32,64,0,112,144,144,112,2, - 71,87,32,80,0,112,144,144,112,2,71,87,80,160,0,112, - 144,144,112,2,70,86,80,0,112,144,144,112,2,71,87,96, - 144,96,112,144,144,112,2,84,84,240,104,176,120,17,53,85, - 96,128,128,96,64,2,71,87,64,32,0,96,176,192,96,2, - 71,87,32,64,0,96,176,192,96,2,71,87,96,144,0,96, - 176,192,96,2,70,86,80,0,96,176,192,96,18,55,87,128, - 64,0,192,64,64,224,18,55,87,32,64,0,192,64,64,224, - 18,55,87,64,160,0,192,64,64,224,18,54,86,160,0,192, - 64,64,224,2,71,87,160,64,160,16,112,144,96,2,71,87, - 80,160,0,224,144,144,144,2,71,87,64,32,0,96,144,144, - 96,2,71,87,32,64,0,96,144,144,96,2,71,87,96,144, - 0,96,144,144,96,2,71,87,80,160,0,96,144,144,96,2, - 70,86,144,0,96,144,144,96,18,53,85,64,0,224,0,64, - 2,68,84,112,176,208,224,2,71,87,64,32,0,144,144,144, - 112,2,71,87,32,64,0,144,144,144,112,2,71,87,96,144, - 0,144,144,144,112,2,70,86,144,0,144,144,144,112,1,72, - 88,32,64,0,144,144,112,144,96,1,71,87,128,128,224,144, - 224,128,128,1,71,87,144,0,144,144,112,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8r[805] U8G_FONT_SECTION("u8g_font_5x8r") = { - 1,5,8,0,255,6,1,33,2,53,32,127,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10[1866] U8G_FONT_SECTION("u8g_font_6x10") = { - 1,6,10,0,254,7,1,54,2,104,32,255,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,0,96,34,23,103,128, - 0,128,128,128,128,128,1,87,103,32,120,160,160,160,120,32, - 2,87,103,48,72,64,224,64,72,176,2,85,101,136,112,80, - 112,136,1,88,104,136,136,80,32,248,32,32,32,34,23,103, - 128,128,128,0,128,128,128,1,88,104,112,128,224,144,72,56, - 8,112,25,49,97,160,2,87,103,112,136,168,200,168,136,112, - 19,70,102,112,144,176,80,0,240,2,101,101,36,72,144,72, - 36,20,66,98,240,16,21,65,97,240,2,87,103,112,136,232, - 200,200,136,112,9,81,97,248,22,51,99,64,160,64,2,86, - 102,32,32,248,32,32,248,21,69,101,96,144,32,64,240,21, - 69,101,224,16,96,16,224,40,34,98,64,128,1,86,102,136, - 136,136,200,176,128,2,87,103,120,232,232,104,40,40,40,37, - 17,97,128,32,34,98,64,128,21,53,101,64,192,64,64,224, - 19,70,102,96,144,144,96,0,240,2,101,101,144,72,36,72, - 144,1,105,105,64,192,64,64,228,12,20,60,4,1,105,105, - 64,192,64,64,232,20,4,8,28,1,89,105,192,32,64,32, - 200,24,40,120,8,2,87,103,32,0,32,32,64,136,112,2, - 88,104,64,32,112,136,136,248,136,136,2,88,104,16,32,112, - 136,136,248,136,136,2,88,104,32,80,112,136,136,248,136,136, - 2,88,104,72,176,112,136,136,248,136,136,2,88,104,80,0, - 112,136,136,248,136,136,2,88,104,32,80,112,136,136,248,136, - 136,2,103,103,60,80,144,156,240,144,156,0,89,105,112,136, - 128,128,128,136,112,32,64,2,88,104,64,248,128,128,240,128, - 128,248,2,88,104,16,248,128,128,240,128,128,248,2,88,104, - 32,248,128,128,240,128,128,248,2,88,104,80,248,128,128,240, - 128,128,248,18,56,104,128,64,224,64,64,64,64,224,18,56, - 104,32,64,224,64,64,64,64,224,18,56,104,64,160,224,64, - 64,64,64,224,18,56,104,160,0,224,64,64,64,64,224,2, - 87,103,240,72,72,232,72,72,240,2,88,104,40,80,136,200, - 168,152,136,136,2,88,104,64,32,112,136,136,136,136,112,2, - 88,104,16,32,112,136,136,136,136,112,2,88,104,32,80,112, - 136,136,136,136,112,2,88,104,40,80,112,136,136,136,136,112, - 2,88,104,80,0,112,136,136,136,136,112,2,85,101,136,80, - 32,80,136,2,87,103,112,152,152,168,200,200,112,2,88,104, - 64,32,136,136,136,136,136,112,2,88,104,16,32,136,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,88, - 104,80,0,136,136,136,136,136,112,2,88,104,16,32,136,136, - 80,32,32,32,2,87,103,128,240,136,240,128,128,128,2,87, - 103,112,136,144,160,144,136,176,2,88,104,64,32,0,112,8, - 120,136,120,2,88,104,16,32,0,112,8,120,136,120,2,88, - 104,32,80,0,112,8,120,136,120,2,88,104,40,80,0,112, - 8,120,136,120,2,87,103,80,0,112,8,120,136,120,2,88, - 104,32,80,32,112,8,120,136,120,2,101,101,120,20,124,144, - 124,0,87,103,112,136,128,136,112,32,64,2,88,104,64,32, - 0,112,136,248,128,112,2,88,104,16,32,0,112,136,248,128, - 112,2,88,104,32,80,0,112,136,248,128,112,2,87,103,80, - 0,112,136,248,128,112,18,56,104,128,64,0,192,64,64,64, - 224,18,56,104,64,128,0,192,64,64,64,224,18,56,104,64, - 160,0,192,64,64,64,224,18,55,103,160,0,192,64,64,64, - 224,2,87,103,192,48,112,136,136,136,112,2,88,104,40,80, - 0,176,200,136,136,136,2,88,104,64,32,0,112,136,136,136, - 112,2,88,104,16,32,0,112,136,136,136,112,2,88,104,32, - 80,0,112,136,136,136,112,2,88,104,40,80,0,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,120,152,168,200,240,2,88,104,64, - 32,0,136,136,136,152,104,2,88,104,16,32,0,136,136,136, - 152,104,2,88,104,32,80,0,136,136,136,152,104,2,87,103, - 80,0,136,136,136,152,104,0,89,105,16,32,136,136,152,104, - 8,136,112,0,88,104,128,240,136,136,136,240,128,128,0,89, - 105,80,0,136,136,152,104,8,136,112}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10r[889] U8G_FONT_SECTION("u8g_font_6x10r") = { - 1,6,10,0,254,7,1,54,2,104,32,127,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 3, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 5 y= 8 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[2382] U8G_FONT_SECTION("u8g_font_6x12_67_75") = { - 1,6,12,0,254,3,2,41,3,99,0,255,0,10,254,8, - 0,2,87,103,168,0,136,0,136,0,168,2,87,103,240,136, - 232,168,232,136,240,2,87,103,112,168,248,168,248,168,112,2, - 87,103,112,136,8,8,8,136,112,18,69,101,96,144,16,144, - 96,1,88,104,112,136,128,128,136,120,8,8,2,87,103,32, - 32,32,32,168,112,32,2,103,103,248,252,252,156,252,252,248, - 2,87,103,112,248,248,168,248,248,112,255,255,255,255,255,255, - 255,3,85,101,32,64,248,64,32,2,87,103,32,112,168,32, - 32,32,32,3,85,101,32,16,248,16,32,2,87,103,32,32, - 32,32,168,112,32,4,83,99,80,248,80,2,87,103,32,112, - 168,32,168,112,32,2,89,105,192,240,224,160,32,16,16,8, - 8,2,89,105,24,120,56,40,32,64,64,128,128,2,89,105, - 128,128,64,64,32,40,56,120,24,2,89,105,8,8,16,16, - 32,160,224,240,192,3,101,101,40,72,252,80,48,3,101,101, - 48,40,252,72,80,4,99,99,192,216,100,4,99,99,12,108, - 152,3,101,101,40,80,252,80,40,2,88,104,32,112,168,112, - 168,32,32,32,3,101,101,80,40,252,40,80,2,88,104,32, - 32,32,168,112,168,112,32,3,101,101,36,72,240,72,36,3, - 101,101,144,72,60,72,144,3,85,101,40,72,248,72,40,2, - 87,103,32,112,168,32,32,32,248,3,85,101,160,144,248,144, - 160,2,87,103,248,32,32,32,168,112,32,2,87,103,32,112, - 168,32,168,112,248,3,101,101,40,68,248,64,32,3,101,101, - 80,136,124,8,16,3,101,101,32,76,252,72,40,3,101,101, - 16,200,252,72,80,3,100,100,72,220,236,72,3,101,101,8, - 88,252,104,64,2,87,103,128,144,176,208,144,56,16,2,88, - 104,32,64,248,72,40,8,8,8,2,88,104,32,16,248,144, - 160,128,128,128,2,88,104,8,8,8,40,72,248,64,32,2, - 87,103,128,128,160,144,248,16,32,3,84,100,240,16,56,16, - 3,85,101,8,8,72,248,64,3,85,101,48,72,72,232,72, - 3,85,101,96,144,144,184,16,2,88,104,248,128,224,192,160, - 32,16,16,2,89,105,160,192,248,192,168,24,248,24,40,2, - 86,102,56,48,168,136,136,112,2,86,102,224,96,168,136,136, - 112,5,83,99,32,64,248,3,83,99,248,64,32,34,56,104, - 128,192,160,128,128,128,128,128,2,56,104,32,96,160,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 56,104,128,128,128,128,128,160,192,128,2,56,104,32,32,32, - 32,32,160,96,32,2,89,105,32,16,248,16,32,64,248,64, - 32,2,88,104,80,240,80,80,80,80,120,80,2,89,105,32, - 64,248,64,32,16,248,16,32,2,89,105,32,64,248,64,32, - 64,248,64,32,2,88,104,80,248,80,80,80,80,80,80,2, - 89,105,32,16,248,16,32,16,248,16,32,2,88,104,80,80, - 80,80,80,80,248,80,2,87,103,32,64,248,0,248,16,32, - 2,87,103,32,16,248,0,248,64,32,2,103,103,20,40,124, - 144,124,32,80,2,103,103,8,88,252,164,252,104,64,2,103, - 103,160,80,248,36,248,16,40,3,85,101,32,120,128,120,32, - 2,87,103,32,80,216,80,80,80,80,3,85,101,32,240,8, - 240,32,2,87,103,80,80,80,80,216,80,32,3,101,101,72, - 252,132,252,72,2,88,104,32,80,216,80,80,216,80,32,2, - 102,102,248,160,208,168,148,8,2,102,102,124,20,44,84,164, - 64,2,102,102,64,164,84,44,20,124,2,102,102,8,148,168, - 208,160,248,2,103,103,16,60,64,252,64,60,16,2,103,103, - 32,240,8,252,8,240,32,3,100,100,64,232,212,64,3,100, - 100,8,92,172,8,2,88,104,32,112,168,32,112,32,112,32, - 2,88,104,32,112,32,112,32,168,112,32,3,101,101,32,64, - 212,64,32,2,88,104,32,112,136,32,0,32,0,32,3,101, - 101,16,8,172,8,16,2,88,104,32,0,32,0,32,136,112, - 32,3,85,101,160,192,248,192,160,3,85,101,40,24,248,24, - 40,3,85,101,32,120,136,120,32,2,88,104,32,80,216,80, - 80,80,80,112,3,85,101,32,240,136,240,32,2,88,104,112, - 80,80,80,80,216,80,32,2,89,105,32,80,216,80,112,0, - 112,80,112,2,89,105,32,80,216,80,80,80,216,136,248,2, - 89,105,32,80,248,136,80,80,216,136,248,2,89,105,32,112, - 248,112,112,112,248,168,248,2,89,105,32,80,216,80,216,80, - 80,80,112,2,89,105,32,80,216,80,216,80,216,136,248,3, - 85,101,160,240,136,240,160,2,88,104,248,128,176,160,144,16, - 8,8,2,88,104,128,128,64,72,40,104,8,248,2,88,104, - 32,80,216,80,80,216,80,32,3,101,101,16,104,252,104,16, - 2,88,104,80,120,80,80,80,80,240,80,2,89,105,16,248, - 16,16,248,16,16,248,16,3,101,101,40,72,252,72,40,3, - 101,101,80,72,252,72,80,3,101,101,48,120,252,120,48,3, - 101,101,56,88,252,88,56,3,101,101,112,104,252,104,112,3, - 101,101,48,120,252,120,48,3,85,101,32,96,184,96,32,3, - 85,101,32,48,232,48,32,3,101,101,48,120,180,120,48,6, - 102,102,252,252,252,252,252,252,0,98,98,252,252,0,99,99, - 252,252,252,0,101,101,252,252,252,252,252,0,102,102,252,252, - 252,252,252,252,0,104,104,252,252,252,252,252,252,252,252,0, - 105,105,252,252,252,252,252,252,252,252,252,0,107,107,252,252, - 252,252,252,252,252,252,252,252,252,0,108,108,252,252,252,252, - 252,252,252,252,252,252,252,252,0,92,108,248,248,248,248,248, - 248,248,248,248,248,248,248,0,76,108,240,240,240,240,240,240, - 240,240,240,240,240,240,0,76,108,240,240,240,240,240,240,240, - 240,240,240,240,240,0,60,108,224,224,224,224,224,224,224,224, - 224,224,224,224,0,44,108,192,192,192,192,192,192,192,192,192, - 192,192,192,0,44,108,192,192,192,192,192,192,192,192,192,192, - 192,192,0,28,108,128,128,128,128,128,128,128,128,128,128,128, - 128,48,60,108,224,224,224,224,224,224,224,224,224,224,224,224, - 1,107,107,168,0,84,0,168,0,84,0,168,0,84,0,108, - 108,168,84,168,84,168,84,168,84,168,84,168,84,0,108,108, - 84,252,168,252,84,252,168,252,84,252,168,252,10,98,98,252, - 252,80,28,108,128,128,128,128,128,128,128,128,128,128,128,128, - 0,54,102,224,224,224,224,224,224,48,54,102,224,224,224,224, - 224,224,6,54,102,224,224,224,224,224,224,0,108,108,224,224, - 224,224,224,224,252,252,252,252,252,252,0,108,108,224,224,224, - 224,224,224,28,28,28,28,28,28,0,108,108,252,252,252,252, - 252,252,224,224,224,224,224,224,0,108,108,252,252,252,252,252, - 252,28,28,28,28,28,28,54,54,102,224,224,224,224,224,224, - 0,108,108,28,28,28,28,28,28,224,224,224,224,224,224,0, - 108,108,28,28,28,28,28,28,252,252,252,252,252,252,2,85, - 101,248,248,248,248,248,2,85,101,248,136,136,136,248,2,85, - 101,112,136,136,136,112,2,85,101,248,136,168,136,248,2,85, - 101,248,136,248,136,248,2,85,101,248,168,168,168,248,2,85, - 101,248,168,248,168,248,2,85,101,248,200,168,152,248,2,85, - 101,248,152,168,200,248,2,85,101,248,216,168,216,248,20,51, - 99,224,224,224,20,51,99,224,160,224,3,101,101,252,252,252, - 252,252,3,101,101,252,132,132,132,252,17,74,106,240,240,240, - 240,240,240,240,240,240,240,17,74,106,240,144,144,144,144,144, - 144,144,144,240,4,99,99,60,120,240,4,99,99,60,72,240, - 2,87,103,32,32,112,112,248,248,248,2,87,103,32,32,80, - 80,136,136,248,3,85,101,32,32,112,112,248,3,85,101,32, - 32,80,80,248,18,71,103,128,192,224,240,224,192,128,18,71, - 103,128,192,160,144,160,192,128,19,53,101,128,192,224,192,128, - 19,53,101,128,192,160,192,128,3,101,101,192,240,252,240,192, - 3,101,101,192,176,140,176,192,2,87,103,248,248,248,112,112, - 32,32,2,87,103,248,136,136,80,80,32,32,2,85,101,248, - 112,112,32,32,2,85,101,248,80,80,32,32,18,71,103,16, - 48,112,240,112,48,16,18,71,103,16,48,80,144,80,48,16, - 19,53,101,32,96,224,96,32,19,53,101,32,96,160,96,32, - 3,101,101,12,60,252,60,12,3,101,101,12,52,196,52,12, - 3,85,101,32,112,248,112,32,3,85,101,32,80,136,80,32, - 3,85,101,32,80,168,80,32,2,102,102,48,72,180,180,72, - 48,2,87,103,32,80,80,136,80,80,32,2,102,102,48,72, - 132,132,72,48,2,102,102,32,8,128,4,64,16,2,85,101, - 112,168,168,168,112,2,87,103,112,136,168,216,168,136,112,2, - 102,102,48,120,252,252,120,48,2,102,102,48,104,228,228,104, - 48,2,102,102,48,88,156,156,88,48,2,102,102,48,72,132, - 252,120,48,2,102,102,48,120,252,132,72,48,2,102,102,48, - 88,156,132,72,48,2,102,102,48,104,228,132,72,48,18,89, - 105,8,56,120,120,248,120,120,56,8,2,89,105,128,224,240, - 240,248,240,240,224,128,0,108,108,252,252,252,252,204,132,132, - 204,252,252,252,252,0,108,108,252,252,252,204,180,120,120,180, - 204,252,252,252,6,102,102,252,252,252,204,180,120,0,102,102, - 120,180,204,252,252,252,5,51,99,32,64,128,53,51,99,128, - 64,32,50,51,99,32,64,128,2,51,99,128,64,32,5,99, - 99,48,72,132,2,99,99,132,72,48,2,85,101,8,24,56, - 120,248,2,85,101,128,192,224,240,248,2,85,101,248,240,224, - 192,128,2,85,101,248,120,56,24,8,2,85,101,112,136,136, - 136,112,2,85,101,248,232,232,232,248,2,85,101,248,184,184, - 184,248,2,85,101,248,248,232,200,248,2,85,101,248,152,184, - 248,248,2,85,101,248,168,168,168,248,2,87,103,32,32,80, - 112,168,136,248,2,87,103,32,32,112,112,232,232,248,2,87, - 103,32,32,112,112,184,184,248,2,103,103,48,72,132,132,132, - 72,48,2,85,101,248,168,232,136,248,2,85,101,248,136,232, - 168,248,2,85,101,248,136,184,168,248,2,85,101,248,168,184, - 136,248,2,85,101,112,168,232,136,112,2,85,101,112,136,232, - 168,112,2,85,101,112,136,184,168,112,2,85,101,112,168,184, - 136,112,3,85,101,248,144,160,192,128,3,85,101,248,72,40, - 24,8,3,85,101,128,192,160,144,248,20,68,100,240,144,144, - 240,19,68,100,240,240,240,240,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 3 - Calculated Max Values w= 6 h=10 x= 1 y= 2 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_75r[427] U8G_FONT_SECTION("u8g_font_6x12_75r") = { - 1,6,12,0,254,7,1,41,0,0,32,79,0,9,255,7, - 0,2,85,101,248,248,248,248,248,2,85,101,248,136,136,136, - 248,2,85,101,112,136,136,136,112,2,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,20,51,99,224,224,224,20,51,99,224,160,224,3,101,101, - 252,252,252,252,252,3,101,101,252,132,132,132,252,17,74,106, - 240,240,240,240,240,240,240,240,240,240,17,74,106,240,144,144, - 144,144,144,144,144,144,240,4,99,99,60,120,240,4,99,99, - 60,72,240,2,87,103,32,32,112,112,248,248,248,2,87,103, - 32,32,80,80,136,136,248,3,85,101,32,32,112,112,248,3, - 85,101,32,32,80,80,248,18,71,103,128,192,224,240,224,192, - 128,18,71,103,128,192,160,144,160,192,128,19,53,101,128,192, - 224,192,128,19,53,101,128,192,160,192,128,3,101,101,192,240, - 252,240,192,3,101,101,192,176,140,176,192,2,87,103,248,248, - 248,112,112,32,32,2,87,103,248,136,136,80,80,32,32,2, - 85,101,248,112,112,32,32,2,85,101,248,80,80,32,32,18, - 71,103,16,48,112,240,112,48,16,18,71,103,16,48,80,144, - 80,48,16,19,53,101,32,96,224,96,32,19,53,101,32,96, - 160,96,32,3,101,101,12,60,252,60,12,3,101,101,12,52, - 196,52,12,3,85,101,32,112,248,112,32,3,85,101,32,80, - 136,80,32,3,85,101,32,80,168,80,32,2,102,102,48,72, - 180,180,72,48,2,87,103,32,80,80,136,80,80,32,2,102, - 102,48,72,132,132,72,48,2,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,2,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 6 h=12 x= 2 y= 4 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[2316] U8G_FONT_SECTION("u8g_font_6x12_78_79") = { - 1,6,12,0,254,6,2,80,3,53,0,255,0,10,254,9, - 0,2,87,103,168,0,136,0,136,0,168,3,101,101,144,252, - 32,64,96,3,101,101,196,200,48,200,196,3,101,101,96,64, - 32,252,144,2,103,103,204,148,232,48,232,148,204,255,1,105, - 105,120,132,180,180,164,180,180,132,120,1,105,105,120,132,180, - 132,180,132,204,132,120,3,101,101,32,176,252,176,32,2,101, - 101,252,204,180,132,252,255,255,18,72,104,144,144,80,112,240, - 240,240,112,3,102,102,4,56,124,124,64,128,2,102,102,64, - 224,80,40,20,12,3,99,99,248,140,248,2,102,102,12,20, - 40,80,224,64,3,100,100,248,132,132,248,4,99,99,248,244, - 248,2,87,103,8,8,16,16,160,224,64,2,103,103,12,12, - 28,216,248,112,48,2,85,101,136,80,32,80,136,3,85,101, - 216,248,32,248,216,2,86,102,136,80,32,80,136,128,1,103, - 103,204,204,120,112,252,204,192,1,103,103,120,204,164,244,164, - 204,120,2,102,102,48,48,252,252,48,48,3,85,101,32,32, - 216,32,32,2,102,102,48,48,204,204,48,48,2,87,103,32, - 32,248,32,32,32,32,1,90,106,112,80,216,136,216,80,80, - 80,80,112,2,105,105,120,220,188,220,88,88,88,120,120,2, - 87,103,112,32,168,248,168,32,112,2,87,103,32,248,80,80, - 80,248,32,3,85,101,32,32,248,32,32,3,102,102,48,48, - 252,252,48,48,2,104,104,48,120,48,252,252,48,120,48,2, - 87,103,32,112,168,248,168,112,32,3,85,101,32,112,248,112, - 32,3,85,101,32,112,216,112,32,255,3,85,101,32,216,80, - 32,80,2,87,103,112,216,136,216,168,248,112,3,86,102,32, - 32,248,80,112,136,3,86,102,32,32,216,32,80,136,3,86, - 102,32,32,248,112,112,136,3,86,102,32,32,248,112,112,136, - 3,86,102,32,32,232,48,80,136,2,102,102,48,88,140,88, - 172,88,2,86,102,32,168,112,112,168,32,2,87,103,32,168, - 112,80,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,2,87,103,32,168,112,248, - 112,168,32,2,86,102,32,168,112,112,168,32,1,88,104,80, - 32,168,112,112,168,32,80,1,88,104,80,32,168,112,112,168, - 32,80,2,103,103,80,248,124,248,124,248,80,2,103,103,80, - 168,116,248,116,168,80,2,86,102,32,168,112,112,168,32,2, - 87,103,32,168,112,80,112,168,32,2,86,102,32,168,112,112, - 168,32,2,103,103,168,216,80,168,116,168,32,3,87,103,32, - 112,248,216,112,248,216,3,87,103,32,112,216,168,80,248,216, - 3,86,102,32,112,216,112,248,32,2,87,103,112,248,168,216, - 168,248,112,2,86,102,32,168,112,112,168,32,2,86,102,32, - 168,112,112,168,32,2,86,102,32,168,112,112,168,32,2,86, - 102,32,168,112,112,168,32,2,87,103,32,168,112,248,112,168, - 32,2,87,103,32,168,112,248,112,168,32,2,87,103,32,168, - 112,248,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,255,3,101,101,120,140,140, - 140,120,255,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,2,102,102,248,140,140,140,252,124,2,102, - 102,124,252,140,140,140,248,255,255,255,2,103,103,16,56,84, - 236,84,56,16,255,34,23,103,128,128,128,128,128,128,128,18, - 39,103,192,192,192,192,192,192,192,18,71,103,240,240,240,240, - 240,240,240,22,69,101,96,128,224,240,96,22,69,101,96,240, - 112,16,96,6,101,101,72,144,216,252,72,6,101,101,72,252, - 108,36,72,255,255,1,106,106,8,124,200,200,200,120,8,200, - 136,112,2,89,105,112,248,248,112,32,0,32,112,32,2,88, - 104,216,248,112,32,0,32,112,32,2,85,101,216,248,248,112, - 32,2,87,103,96,240,240,120,240,240,96,2,104,104,100,184, - 32,216,248,240,228,120,2,102,102,128,88,120,220,152,64,18, - 56,104,32,64,192,192,192,192,64,32,18,56,104,128,64,96, - 96,96,96,64,128,18,40,104,64,192,192,192,192,192,192,64, - 18,40,104,128,192,192,192,192,192,192,128,17,73,105,48,48, - 96,96,192,96,96,48,48,17,73,105,192,192,96,96,48,96, - 96,192,192,2,87,103,24,48,96,192,96,48,24,2,87,103, - 192,96,48,24,48,96,192,1,89,105,56,56,112,112,224,112, - 112,56,56,1,89,105,224,224,112,112,56,112,112,224,224,17, - 57,105,32,64,128,128,128,128,128,64,32,17,57,105,128,64, - 32,32,32,32,32,64,128,17,73,105,48,96,96,96,192,96, - 96,96,48,17,73,105,192,96,96,96,48,96,96,96,192,2, - 89,105,112,248,216,152,216,216,136,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,2,89,105,112,136,168,232,168,168, - 248,136,112,2,89,105,112,136,168,216,152,168,248,136,112,2, - 89,105,112,136,232,152,168,152,232,136,112,2,89,105,112,136, - 200,200,232,248,168,136,112,2,89,105,112,136,248,200,232,152, - 232,136,112,2,89,105,112,136,184,200,232,216,168,136,112,2, - 89,105,112,136,248,152,168,168,168,136,112,2,89,105,112,136, - 168,216,168,216,168,136,112,2,89,105,112,136,168,216,184,152, - 232,136,112,2,105,105,120,132,212,236,236,236,212,132,120,2, - 89,105,112,248,216,152,216,216,216,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,3,101,101,48,24,252,24,48,255, - 255,255,2,85,101,128,64,40,24,56,3,85,101,32,48,248, - 48,32,2,85,101,56,24,40,64,128,3,101,101,64,48,252, - 48,64,2,102,102,48,56,252,252,56,48,4,99,99,8,252, - 8,2,102,102,16,24,252,252,24,16,3,99,99,8,188,8, - 2,102,102,16,24,188,188,24,16,3,101,101,16,248,252,248, - 16,2,103,103,192,176,72,60,120,240,192,2,103,103,192,240, - 120,60,72,176,192,3,101,101,224,120,60,120,224,3,102,102, - 128,144,248,252,120,16,2,102,102,16,120,252,248,144,128,2, - 103,103,32,240,248,252,248,240,32,3,101,101,32,240,252,240, - 32,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,2,102,102,16,232,132,132,232,16,2,102,102,16,232,132, - 132,232,16,3,101,101,16,232,132,232,16,255,3,101,101,16, - 232,132,232,16,2,103,103,120,220,12,4,12,220,120,3,99, - 99,232,124,232,2,102,102,64,224,96,16,12,12,3,99,99, - 232,124,232,2,102,102,12,12,16,96,224,64,2,102,102,96, - 224,224,20,12,28,2,101,101,192,232,124,232,192,2,102,102, - 28,12,20,224,224,96,2,101,101,16,200,252,200,16,2,101, - 101,16,200,252,200,16,3,99,99,232,124,232,3,100,100,232, - 252,252,232,2,101,101,80,232,4,232,80,255,2,85,101,136, - 144,160,192,248,2,86,102,32,32,80,112,168,248,2,86,102, - 32,32,32,32,32,248,2,87,103,120,128,144,168,144,128,120, - 2,87,103,240,8,72,168,72,8,240,18,73,105,64,160,160, - 32,32,64,64,64,48,18,73,105,32,80,80,64,64,32,32, - 32,192,2,87,103,136,168,136,80,80,32,32,2,104,104,128, - 156,160,160,160,92,64,64,2,104,104,4,228,20,20,20,232, - 8,8,18,55,103,64,64,64,224,64,64,64,255,2,103,103, - 252,64,32,32,32,32,64,255,255,255,3,85,101,32,80,168, - 80,32,2,87,103,32,32,80,80,136,168,136,2,87,103,168, - 168,168,168,168,168,112,3,85,101,8,8,40,8,248,3,85, - 101,248,128,160,128,128,3,101,101,196,108,84,108,196,3,101, - 101,140,216,168,216,140,2,101,101,204,120,72,120,204,2,87, - 103,32,32,32,32,32,32,248,2,87,103,248,32,32,32,32, - 32,32,3,85,101,80,216,80,216,80,3,85,101,80,80,216, - 80,80,4,99,99,64,188,64,4,99,99,128,252,128,4,99, - 99,4,252,4,18,55,103,64,160,64,64,64,64,224,3,85, - 101,32,80,248,80,32,3,85,101,32,80,136,80,32,3,101, - 101,16,40,196,40,16,3,101,101,32,80,140,80,32,3,101, - 101,124,68,196,68,124,3,101,101,248,136,140,136,248,1,90, - 106,248,160,160,160,160,160,160,160,160,248,1,90,106,248,40, - 40,40,40,40,40,40,40,248,17,57,105,32,32,64,64,128, - 64,64,32,32,17,57,105,128,128,64,64,32,64,64,128,128, - 0,107,107,20,40,40,80,80,160,80,80,40,40,20,0,107, - 107,160,80,80,40,40,20,40,40,80,80,160,16,75,107,16, - 32,96,160,160,160,160,160,96,32,16,16,76,108,128,64,96, - 80,80,80,80,80,80,96,64,128,17,41,105,128,64,64,64, - 64,64,64,64,128,17,41,105,64,128,128,128,128,128,128,128, - 64,2,87,103,32,112,168,168,168,168,168,2,87,103,168,168, - 168,168,168,112,32,2,103,103,56,68,228,68,4,68,56,2, - 103,103,112,136,156,136,128,136,112,4,99,99,104,252,104,3, - 101,101,32,64,252,64,32,3,101,101,16,8,252,8,16,4, - 99,99,72,252,72,2,103,103,16,32,124,128,124,32,16,2, - 103,103,32,16,248,4,248,16,32,3,101,101,72,252,132,252, - 72,3,101,101,36,68,252,68,36,3,101,101,144,136,252,136, - 144,2,103,103,20,36,124,132,124,36,20,2,103,103,160,144, - 248,132,248,144,160,3,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y=10 dx= 6 dy= 0 ascent=10 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12[1933] U8G_FONT_SECTION("u8g_font_6x12") = { - 1,6,12,0,254,7,1,53,2,107,32,255,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,12,0,96,34,23,103,128,0,128,128,128,128,128,1, - 87,103,32,112,168,160,168,112,32,2,87,103,48,72,64,224, - 64,72,176,2,85,101,168,80,136,80,168,2,87,103,136,80, - 248,32,248,32,32,34,23,103,128,128,128,0,128,128,128,18, - 72,104,112,128,96,144,144,96,16,224,25,49,97,160,2,103, - 103,120,132,148,164,148,132,120,22,53,101,96,160,96,0,224, - 2,85,101,40,80,160,80,40,3,83,99,248,8,8,21,49, - 97,224,2,103,103,120,132,180,164,164,132,120,9,81,97,248, - 23,68,100,96,144,144,96,2,87,103,32,32,248,32,32,0, - 248,23,53,101,64,160,32,64,224,23,53,101,192,32,64,32, - 192,23,51,99,32,64,128,0,87,103,136,136,136,152,232,128, - 128,2,88,104,120,232,232,232,104,40,40,40,37,34,98,192, - 192,16,50,98,32,192,23,53,101,64,192,64,64,224,23,53, - 101,64,160,64,0,224,2,85,101,160,80,40,80,160,2,90, - 106,64,192,64,64,80,48,80,120,16,16,2,90,106,64,192, - 64,64,80,40,8,16,32,56,2,90,106,192,32,64,32,208, - 48,80,120,16,16,2,87,103,32,0,32,32,64,136,112,2, - 90,106,64,32,0,112,136,136,248,136,136,136,2,90,106,16, - 32,0,112,136,136,248,136,136,136,2,90,106,32,80,0,112, - 136,136,248,136,136,136,2,90,106,104,176,0,112,136,136,248, - 136,136,136,2,89,105,80,0,112,136,136,248,136,136,136,2, - 90,106,32,80,32,112,136,136,248,136,136,136,2,87,103,120, - 160,160,240,160,160,184,0,89,105,112,136,128,128,128,136,112, - 16,96,2,90,106,64,32,0,248,128,128,240,128,128,248,2, - 90,106,16,32,0,248,128,128,240,128,128,248,2,90,106,32, - 80,0,248,128,128,240,128,128,248,2,89,105,80,0,248,128, - 128,240,128,128,248,18,58,106,128,64,0,224,64,64,64,64, - 64,224,18,58,106,32,64,0,224,64,64,64,64,64,224,18, - 58,106,64,160,0,224,64,64,64,64,64,224,18,57,105,160, - 0,224,64,64,64,64,64,224,2,87,103,112,72,72,232,72, - 72,112,2,90,106,104,176,0,136,136,200,168,152,136,136,2, - 90,106,64,32,0,112,136,136,136,136,136,112,2,90,106,16, - 32,0,112,136,136,136,136,136,112,2,90,106,32,80,0,112, - 136,136,136,136,136,112,2,90,106,104,176,0,112,136,136,136, - 136,136,112,2,89,105,80,0,112,136,136,136,136,136,112,3, - 85,101,136,80,32,80,136,1,89,105,8,112,152,168,168,168, - 200,112,128,2,90,106,64,32,0,136,136,136,136,136,136,112, - 2,90,106,16,32,0,136,136,136,136,136,136,112,2,90,106, - 32,80,0,136,136,136,136,136,136,112,2,89,105,80,0,136, - 136,136,136,136,136,112,2,90,106,16,32,0,136,136,80,32, - 32,32,32,18,71,103,128,224,144,144,144,224,128,2,87,103, - 112,136,144,160,144,136,176,2,88,104,64,32,0,112,8,120, - 136,120,2,88,104,16,32,0,112,8,120,136,120,2,88,104, - 32,80,0,112,8,120,136,120,2,88,104,104,176,0,112,8, - 120,136,120,2,87,103,80,0,112,8,120,136,120,2,88,104, - 32,80,32,112,8,120,136,120,2,85,101,112,40,112,160,120, - 0,87,103,112,136,128,136,112,16,96,2,88,104,64,32,0, - 112,136,240,128,112,2,88,104,16,32,0,112,136,240,128,112, - 2,88,104,32,80,0,112,136,240,128,112,2,87,103,80,0, - 112,136,240,128,112,18,56,104,128,64,0,192,64,64,64,224, - 18,56,104,32,64,0,192,64,64,64,224,18,56,104,64,160, - 0,192,64,64,64,224,18,55,103,160,0,192,64,64,64,224, - 2,89,105,80,32,80,8,120,136,136,136,112,2,88,104,104, - 176,0,176,200,136,136,136,2,88,104,64,32,0,112,136,136, - 136,112,2,88,104,16,32,0,112,136,136,136,112,2,88,104, - 32,80,0,112,136,136,136,112,2,88,104,104,176,0,112,136, - 136,136,112,2,87,103,80,0,112,136,136,136,112,3,85,101, - 32,0,248,0,32,2,85,101,120,152,168,200,240,2,88,104, - 64,32,0,136,136,136,136,112,2,88,104,16,32,0,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,0,90,106,16,32,0,136,136, - 136,80,32,64,128,0,89,105,128,128,240,136,136,136,240,128, - 128,0,89,105,80,0,136,136,136,80,32,64,128}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y=10 dx= 6 dy= 0 ascent=10 len= 9 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12r[898] U8G_FONT_SECTION("u8g_font_6x12r") = { - 1,6,12,0,254,7,1,53,2,107,32,127,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w= 6 h=13 x= 5 y= 9 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[2236] U8G_FONT_SECTION("u8g_font_6x13_67_75") = { - 1,6,13,0,254,3,1,73,2,147,32,255,0,11,254,9, - 0,3,101,101,80,40,252,40,80,2,89,105,32,32,32,32, - 168,112,168,112,32,3,101,101,36,72,240,72,36,3,101,101, - 144,72,60,72,144,3,85,101,32,72,248,72,32,2,89,105, - 32,112,168,32,32,32,32,32,248,3,85,101,32,144,248,144, - 32,2,89,105,248,32,32,32,32,32,168,112,32,2,89,105, - 32,112,168,32,32,168,112,32,248,3,101,101,40,68,248,64, - 32,3,101,101,80,136,124,8,16,3,101,101,32,76,252,72, - 40,3,101,101,16,200,252,72,80,4,100,100,72,220,236,72, - 3,101,101,8,88,252,104,64,2,89,105,128,128,144,176,208, - 144,16,56,16,2,89,105,32,64,248,72,40,8,8,8,8, - 2,89,105,32,16,248,144,160,128,128,128,128,2,89,105,8, - 8,8,8,40,72,248,64,32,2,89,105,128,128,128,128,160, - 144,248,16,32,3,85,101,240,16,16,56,16,3,86,102,8, - 8,8,72,248,64,3,85,101,48,72,72,232,72,3,85,101, - 96,144,144,184,144,2,89,105,248,128,224,192,160,32,16,16, - 8,2,89,105,160,192,248,192,168,24,248,24,40,3,86,102, - 56,48,168,136,136,112,3,86,102,224,96,168,136,136,112,5, - 83,99,32,64,248,3,83,99,248,64,32,34,57,105,128,192, - 160,128,128,128,128,128,128,2,57,105,32,96,160,32,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 57,105,128,128,128,128,128,128,160,192,128,2,57,105,32,32, - 32,32,32,32,160,96,32,2,89,105,32,16,248,16,32,64, - 248,64,32,2,89,105,80,240,80,80,80,80,80,120,80,2, - 89,105,32,64,248,64,32,16,248,16,32,2,89,105,32,64, - 248,64,32,64,248,64,32,2,89,105,80,248,80,80,80,80, - 80,80,80,2,89,105,32,16,248,16,32,16,248,16,32,2, - 89,105,80,80,80,80,80,80,80,248,80,2,87,103,32,64, - 248,0,248,16,32,2,87,103,32,16,248,0,248,64,32,2, - 103,103,20,40,124,144,124,32,80,2,103,103,8,88,252,164, - 252,104,64,2,103,103,160,80,248,36,248,16,40,2,103,103, - 16,32,124,128,124,32,16,2,89,105,32,80,216,80,80,80, - 80,80,80,2,103,103,32,16,248,4,248,16,32,2,89,105, - 80,80,80,80,80,80,216,80,32,3,101,101,72,252,132,252, - 72,2,89,105,32,80,216,80,80,80,216,80,32,3,102,102, - 248,160,208,168,148,8,3,102,102,124,20,44,84,164,64,3, - 102,102,64,164,84,44,20,124,3,102,102,8,148,168,208,160, - 248,2,103,103,16,60,64,252,64,60,16,2,103,103,32,240, - 8,252,8,240,32,4,100,100,64,232,212,64,4,100,100,8, - 92,172,8,2,89,105,32,112,168,32,112,32,112,32,32,2, - 89,105,32,32,112,32,112,32,168,112,32,3,85,101,32,64, - 168,64,32,2,89,105,32,112,168,0,32,32,0,32,32,3, - 85,101,32,16,168,16,32,2,89,105,32,32,0,32,32,0, - 168,112,32,3,85,101,160,192,248,192,160,3,85,101,40,24, - 248,24,40,3,85,101,32,120,136,120,32,2,89,105,32,80, - 216,80,80,80,80,80,112,3,85,101,32,240,136,240,32,2, - 89,105,112,80,80,80,80,80,216,80,32,2,90,106,32,80, - 216,80,80,112,0,112,80,112,2,89,105,32,80,216,80,80, - 80,216,136,248,2,89,105,32,80,248,136,80,80,216,136,248, - 2,89,105,32,112,248,112,112,112,248,168,248,2,89,105,32, - 80,216,80,216,80,80,80,112,2,89,105,32,80,216,80,216, - 80,216,136,248,3,85,101,160,240,136,240,160,3,88,104,248, - 128,176,224,144,16,8,8,2,88,104,128,128,64,72,56,104, - 8,248,2,89,105,32,80,216,80,80,80,216,80,32,3,101, - 101,16,104,252,104,16,2,89,105,80,120,80,80,80,80,80, - 240,80,2,89,105,16,248,16,16,248,16,16,248,16,3,101, - 101,40,72,252,72,40,3,101,101,80,72,252,72,80,4,101, - 101,48,120,252,120,48,3,101,101,56,88,252,88,56,3,101, - 101,112,104,252,104,112,4,101,101,48,120,252,120,48,3,85, - 101,32,96,184,96,32,3,85,101,32,48,232,48,32,4,101, - 101,48,120,180,120,48,7,102,102,252,252,252,252,252,252,0, - 98,98,252,252,0,99,99,252,252,252,0,101,101,252,252,252, - 252,252,0,103,103,252,252,252,252,252,252,252,0,104,104,252, - 252,252,252,252,252,252,252,0,106,106,252,252,252,252,252,252, - 252,252,252,252,0,107,107,252,252,252,252,252,252,252,252,252, - 252,252,0,109,109,252,252,252,252,252,252,252,252,252,252,252, - 252,252,0,93,109,248,248,248,248,248,248,248,248,248,248,248, - 248,248,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,29,109,128,128,128,128,128,128,128,128,128,128,128, - 128,128,48,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,109,109,168,0,84,0,168,0,84,0,168,0,84, - 0,168,0,109,109,168,84,168,84,168,84,168,84,168,84,168, - 84,168,0,109,109,84,252,168,252,84,252,168,252,84,252,168, - 252,84,11,98,98,252,252,80,29,109,128,128,128,128,128,128, - 128,128,128,128,128,128,128,0,55,103,224,224,224,224,224,224, - 224,48,55,103,224,224,224,224,224,224,224,7,54,102,224,224, - 224,224,224,224,0,109,109,224,224,224,224,224,224,252,252,252, - 252,252,252,252,0,109,109,224,224,224,224,224,224,28,28,28, - 28,28,28,28,0,109,109,252,252,252,252,252,252,224,224,224, - 224,224,224,224,0,109,109,252,252,252,252,252,252,28,28,28, - 28,28,28,28,55,54,102,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,224,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,252,252,252,252,252,252,252,3,85,101, - 248,248,248,248,248,3,85,101,248,136,136,136,248,3,85,101, - 112,136,136,136,112,3,85,101,248,136,168,136,248,2,85,101, - 248,136,248,136,248,2,85,101,248,168,168,168,248,2,85,101, - 248,168,248,168,248,2,85,101,248,200,168,152,248,2,85,101, - 248,152,168,200,248,2,85,101,248,216,168,216,248,21,51,99, - 224,224,224,21,51,99,224,160,224,4,101,101,252,252,252,252, - 252,4,101,101,252,132,132,132,252,17,75,107,240,240,240,240, - 240,240,240,240,240,240,240,17,75,107,240,144,144,144,144,144, - 144,144,144,144,240,5,99,99,60,120,240,5,99,99,60,72, - 240,2,89,105,32,32,32,112,112,112,248,248,248,2,89,105, - 32,32,32,80,80,80,136,136,248,4,85,101,32,32,112,112, - 248,4,85,101,32,32,80,80,248,2,89,105,128,192,224,240, - 248,240,224,192,128,2,89,105,128,192,160,144,136,144,160,192, - 128,20,53,101,128,192,224,192,128,20,53,101,128,192,160,192, - 128,4,101,101,192,240,252,240,192,4,101,101,192,176,140,176, - 192,2,89,105,248,248,248,112,112,112,32,32,32,2,89,105, - 248,136,136,80,80,80,32,32,32,3,85,101,248,112,112,32, - 32,3,85,101,248,80,80,32,32,2,89,105,8,24,56,120, - 248,120,56,24,8,2,89,105,8,24,40,72,136,72,40,24, - 8,20,53,101,32,96,224,96,32,20,53,101,32,96,160,96, - 32,4,101,101,12,60,252,60,12,4,101,101,12,52,196,52, - 12,4,85,101,32,112,248,112,32,4,85,101,32,80,136,80, - 32,4,85,101,32,80,168,80,32,3,102,102,48,72,180,180, - 72,48,2,89,105,32,32,80,80,136,80,80,32,32,3,102, - 102,48,72,132,132,72,48,3,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,3,102,102,48,120,252,252,120,48,3,102,102,48,104, - 228,228,104,48,3,102,102,48,88,156,156,88,48,3,102,102, - 48,72,132,252,120,48,3,102,102,48,120,252,132,72,48,3, - 102,102,48,88,156,132,72,48,3,102,102,48,88,156,252,120, - 48,18,90,106,8,56,120,120,248,248,120,120,56,8,2,90, - 106,128,224,240,240,248,248,240,240,224,128,0,109,109,252,252, - 252,252,252,204,132,132,204,252,252,252,252,0,109,109,252,252, - 252,252,204,180,120,120,180,204,252,252,252,6,103,103,252,252, - 252,252,204,180,120,0,102,102,120,180,204,252,252,252,6,51, - 99,32,64,128,54,51,99,128,64,32,51,51,99,32,64,128, - 3,51,99,128,64,32,6,99,99,48,72,132,3,99,99,132, - 72,48,3,85,101,8,24,56,120,248,3,85,101,128,192,224, - 240,248,3,85,101,248,240,224,192,128,3,85,101,248,120,56, - 24,8,4,85,101,112,136,136,136,112,3,85,101,248,232,232, - 232,248,3,85,101,248,184,184,184,248,3,85,101,248,248,232, - 200,248,3,85,101,248,152,184,248,248,3,85,101,248,168,168, - 168,248,2,89,105,32,32,32,80,80,112,168,136,248,2,89, - 105,32,32,32,112,112,112,232,232,248,2,89,105,32,32,32, - 112,112,112,184,184,248,2,103,103,48,72,132,132,132,72,48, - 3,85,101,248,168,232,136,248,3,85,101,248,136,232,168,248, - 3,85,101,248,136,184,168,248,3,85,101,248,168,184,136,248, - 3,85,101,112,168,232,136,112,3,85,101,112,136,232,168,112, - 3,85,101,112,136,184,168,112,3,85,101,112,168,184,136,112, - 3,85,101,248,144,160,192,128,3,85,101,248,72,40,24,8, - 3,85,101,128,192,160,144,248,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,20,68,100,240,144,144,240,20,68,100, - 240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 3 - Calculated Max Values w= 6 h=11 x= 1 y= 3 dx= 6 dy= 0 ascent=10 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_75r[447] U8G_FONT_SECTION("u8g_font_6x13_75r") = { - 1,6,13,0,254,9,1,57,0,0,32,79,0,10,255,9, - 0,3,85,101,248,248,248,248,248,3,85,101,248,136,136,136, - 248,3,85,101,112,136,136,136,112,3,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,21,51,99,224,224,224,21,51,99,224,160,224,4,101,101, - 252,252,252,252,252,4,101,101,252,132,132,132,252,17,75,107, - 240,240,240,240,240,240,240,240,240,240,240,17,75,107,240,144, - 144,144,144,144,144,144,144,144,240,5,99,99,60,120,240,5, - 99,99,60,72,240,2,89,105,32,32,32,112,112,112,248,248, - 248,2,89,105,32,32,32,80,80,80,136,136,248,4,85,101, - 32,32,112,112,248,4,85,101,32,32,80,80,248,2,89,105, - 128,192,224,240,248,240,224,192,128,2,89,105,128,192,160,144, - 136,144,160,192,128,20,53,101,128,192,224,192,128,20,53,101, - 128,192,160,192,128,4,101,101,192,240,252,240,192,4,101,101, - 192,176,140,176,192,2,89,105,248,248,248,112,112,112,32,32, - 32,2,89,105,248,136,136,80,80,80,32,32,32,3,85,101, - 248,112,112,32,32,3,85,101,248,80,80,32,32,2,89,105, - 8,24,56,120,248,120,56,24,8,2,89,105,8,24,40,72, - 136,72,40,24,8,20,53,101,32,96,224,96,32,20,53,101, - 32,96,160,96,32,4,101,101,12,60,252,60,12,4,101,101, - 12,52,196,52,12,4,85,101,32,112,248,112,32,4,85,101, - 32,80,136,80,32,4,85,101,32,80,168,80,32,3,102,102, - 48,72,180,180,72,48,2,89,105,32,32,80,80,136,80,80, - 32,32,3,102,102,48,72,132,132,72,48,3,102,102,32,8, - 128,4,64,16,2,85,101,112,168,168,168,112,2,87,103,112, - 136,168,216,168,136,112,3,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 6 h=13 x= 2 y= 5 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[1470] U8G_FONT_SECTION("u8g_font_6x13_78_79") = { - 1,6,13,0,254,7,1,42,2,11,32,255,0,11,254,10, - 0,2,87,103,112,32,168,248,168,32,112,255,2,104,104,48, - 48,48,252,252,48,48,48,2,89,105,32,112,32,168,248,168, - 32,112,32,2,89,105,32,112,32,168,248,168,32,112,32,2, - 89,105,32,112,32,168,248,168,32,112,32,4,85,101,32,112, - 248,112,32,4,85,101,32,80,136,80,32,255,4,86,102,32, - 32,248,80,112,136,2,89,105,112,216,216,0,136,136,112,248, - 112,4,86,102,32,32,248,80,112,136,4,86,102,32,32,248, - 112,112,136,4,86,102,32,32,248,112,112,136,4,86,102,32, - 32,248,112,112,136,4,86,102,32,32,248,112,112,136,4,102, - 102,48,48,252,88,120,204,3,87,103,32,168,112,112,112,168, - 32,3,87,103,32,168,112,80,112,168,32,3,87,103,32,168, - 112,248,112,168,32,3,87,103,32,168,112,248,112,168,32,3, - 87,103,32,168,112,248,112,168,32,3,87,103,32,168,112,112, - 112,168,32,3,87,103,80,80,248,32,248,80,80,3,87,103, - 80,112,248,112,248,112,80,255,255,3,87,103,32,168,168,112, - 168,168,32,3,87,103,32,168,168,80,168,168,32,3,87,103, - 32,168,168,112,168,168,32,3,87,103,32,168,168,80,168,168, - 32,4,85,101,32,248,80,112,216,255,255,255,3,87,103,32, - 168,168,112,168,168,32,3,87,103,32,168,168,112,168,168,32, - 3,87,103,32,168,168,112,168,168,32,3,87,103,32,168,168, - 112,168,168,32,3,87,103,32,168,112,248,112,168,32,3,87, - 103,32,168,112,248,112,168,32,3,87,103,32,168,168,112,168, - 168,32,3,87,103,32,168,112,248,112,168,32,3,87,103,32, - 168,112,248,112,168,32,255,2,102,102,120,140,140,140,140,120, - 255,2,102,102,248,136,140,140,252,60,2,102,102,60,252,140, - 140,136,248,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,255,255,255,2,89,105,32,112,32,80,248, - 80,32,112,32,255,34,25,105,128,128,128,128,128,128,128,128, - 128,18,57,105,224,224,224,224,224,224,224,224,224,2,89,105, - 248,248,248,248,248,248,248,248,248,23,53,101,96,128,224,224, - 64,23,53,101,64,224,224,32,192,7,101,101,108,144,252,252, - 72,7,101,101,72,252,252,36,216,255,255,2,106,106,8,124, - 232,232,120,8,104,104,72,48,18,57,105,64,224,224,64,64, - 0,64,224,64,2,89,105,80,248,248,112,32,0,32,112,32, - 2,87,103,80,248,248,248,112,32,32,2,103,103,96,240,248, - 124,248,240,96,2,89,105,104,176,16,216,248,240,96,104,48, - 2,104,104,64,144,184,124,92,188,184,80,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,89,105,112,248,216,152, - 216,216,136,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,2,89,105,112,136,168,232,168,168,168,136,112,2,89,105, - 112,136,168,216,152,168,248,136,112,2,89,105,112,136,168,216, - 168,152,232,136,112,2,89,105,112,136,200,200,232,248,168,136, - 112,2,89,105,112,136,248,200,232,152,232,136,112,2,89,105, - 112,136,184,200,232,216,168,136,112,2,89,105,112,136,248,152, - 168,168,168,136,112,2,89,105,112,136,168,216,168,216,168,136, - 112,2,89,105,112,136,168,216,184,152,232,136,112,2,105,105, - 120,132,212,236,236,236,212,132,120,2,89,105,112,248,216,152, - 216,216,216,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,4,102,102,48,24,252,252,24,48,255,255,255,4,85,101, - 128,64,40,24,56,4,85,101,32,48,248,48,32,4,85,101, - 56,24,40,64,128,3,103,103,64,32,48,252,48,32,64,3, - 104,104,32,48,24,252,252,24,48,32,4,101,101,16,24,252, - 24,16,4,102,102,16,24,252,252,24,16,4,102,102,16,24, - 188,188,24,16,3,103,103,32,48,184,188,184,48,32,3,103, - 103,32,48,248,252,248,48,32,255,255,4,101,101,192,112,60, - 112,192,3,103,103,32,176,248,252,120,48,32,3,103,103,32, - 48,120,252,248,176,32,0,109,109,32,32,48,240,248,248,252, - 248,248,240,48,32,32,255,255,255,255,255,255,255,255,255,255, - 1,107,107,120,252,220,204,4,0,4,204,220,248,120,255,4, - 102,102,32,32,224,20,12,28,4,101,101,144,200,124,200,144, - 4,102,102,28,12,20,224,32,32,4,102,102,32,32,224,20, - 12,28,4,101,101,144,200,124,200,144,4,102,102,28,12,20, - 224,32,32,4,101,101,16,8,252,8,16,4,101,101,16,200, - 252,200,16,5,99,99,232,124,232,4,101,101,208,216,124,216, - 208,2,105,105,160,80,40,244,4,244,40,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,1,91,107,248,160,160,160,160,160,160,160,160, - 160,248,1,91,107,248,40,40,40,40,40,40,40,40,40,248, - 17,75,107,16,32,32,64,64,128,64,64,32,32,16,17,75, - 107,128,64,64,32,32,16,32,32,64,64,128,1,107,107,20, - 40,40,80,80,160,80,80,40,40,20,1,107,107,160,80,80, - 40,40,20,40,40,80,80,160,255,255,255,255,255,255,255,255, - 255,3,101,101,32,64,252,64,32,3,101,101,16,8,252,8, - 16,4,99,99,72,252,72,2,103,103,16,32,124,128,124,32, - 16,2,103,103,32,16,248,4,248,16,32,3,101,101,72,252, - 132,252,72,3,101,101,36,68,252,68,36,3,101,101,144,136, - 252,136,144,2,103,103,20,36,124,132,124,36,20,2,103,103, - 160,144,248,132,248,144,160,4,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13B[2171] U8G_FONT_SECTION("u8g_font_6x13B") = { - 1,6,13,0,254,9,1,99,2,211,32,255,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 13,0,96,34,42,106,192,192,0,192,192,192,192,192,192,192, - 3,104,104,16,120,212,208,208,212,120,16,2,105,105,56,108, - 96,96,248,96,96,100,248,3,102,102,204,252,72,72,252,204, - 2,105,105,204,204,120,120,252,48,252,48,48,34,42,106,192, - 192,192,192,0,0,192,192,192,192,2,106,106,120,204,192,120, - 204,204,120,12,204,120,9,98,98,204,204,2,105,105,120,204, - 180,236,228,236,180,204,120,4,103,103,248,12,252,140,252,0, - 252,3,103,103,52,104,208,160,208,104,52,4,100,100,252,252, - 4,4,22,65,97,240,2,105,105,120,204,188,172,188,180,172, - 204,120,9,82,98,248,248,7,100,100,120,204,204,120,2,105, - 105,48,48,252,252,48,48,0,252,252,6,70,102,224,176,48, - 96,192,240,6,70,102,224,176,96,48,176,224,26,50,98,96, - 192,0,104,104,204,204,204,204,204,252,128,128,2,105,105,124, - 252,244,244,244,116,52,52,52,38,34,98,192,192,16,50,98, - 96,192,6,70,102,96,224,96,96,96,240,5,87,103,112,248, - 136,248,112,0,248,3,103,103,176,88,44,20,44,88,176,2, - 106,106,96,224,96,96,100,252,28,52,60,12,2,106,106,96, - 224,96,96,120,236,12,24,48,60,2,106,106,224,176,96,48, - 180,236,28,52,60,12,2,106,106,48,48,0,48,48,96,192, - 204,204,120,2,106,106,96,48,0,48,120,204,204,252,204,204, - 2,106,106,24,48,0,48,120,204,204,252,204,204,2,106,106, - 56,108,0,48,120,204,204,252,204,204,2,106,106,52,88,0, - 48,120,204,204,252,204,204,2,106,106,204,204,0,48,120,204, - 204,252,204,204,2,106,106,48,72,120,48,120,204,204,252,204, - 204,2,105,105,124,176,176,176,184,240,240,176,188,0,107,107, - 120,204,192,192,192,192,192,204,120,48,96,2,106,106,96,48, - 0,252,192,192,248,192,192,252,2,106,106,24,48,0,252,192, - 192,248,192,192,252,2,106,106,56,108,0,252,192,192,248,192, - 192,252,2,106,106,204,204,0,252,192,192,248,192,192,252,18, - 74,106,192,96,0,240,96,96,96,96,96,240,18,74,106,48, - 96,0,240,96,96,96,96,96,240,2,90,106,112,216,0,120, - 48,48,48,48,48,120,2,106,106,204,204,0,120,48,48,48, - 48,48,120,2,105,105,248,108,108,108,236,108,108,108,248,2, - 106,106,52,88,0,204,236,236,252,220,220,204,2,106,106,96, - 48,0,120,204,204,204,204,204,120,2,106,106,24,48,0,120, - 204,204,204,204,204,120,2,106,106,56,108,0,120,204,204,204, - 204,204,120,2,106,106,52,88,0,120,204,204,204,204,204,120, - 2,106,106,204,204,0,120,204,204,204,204,204,120,3,101,101, - 204,120,48,120,204,1,105,105,4,120,220,220,204,236,236,120, - 128,2,106,106,96,48,0,204,204,204,204,204,204,120,2,106, - 106,24,48,0,204,204,204,204,204,204,120,2,106,106,56,108, - 0,204,204,204,204,204,204,120,2,106,106,108,108,0,204,204, - 204,204,204,204,120,2,106,106,24,48,0,204,72,120,48,48, - 48,48,2,105,105,192,248,204,204,204,248,192,192,192,1,105, - 105,120,204,204,248,204,204,204,248,128,2,105,105,96,48,0, - 120,12,124,204,220,108,2,105,105,24,48,0,120,12,124,204, - 220,108,2,105,105,56,108,0,120,12,124,204,220,108,2,105, - 105,52,88,0,120,12,124,204,220,108,2,105,105,108,108,0, - 120,12,124,204,220,108,2,106,106,56,40,56,0,120,12,124, - 204,220,108,2,102,102,120,52,120,176,180,104,0,104,104,120, - 204,192,192,204,120,48,96,2,105,105,96,48,0,120,204,252, - 192,192,120,2,105,105,24,48,0,120,204,252,192,192,120,2, - 105,105,56,108,0,120,204,252,192,192,120,2,105,105,108,108, - 0,120,204,252,192,192,120,18,73,105,192,96,0,224,96,96, - 96,96,240,18,73,105,48,96,0,224,96,96,96,96,240,2, - 89,105,112,216,0,112,48,48,48,48,120,2,89,105,216,216, - 0,112,48,48,48,48,120,2,106,106,216,112,240,152,120,204, - 204,204,204,120,2,105,105,52,88,0,216,236,204,204,204,204, - 2,105,105,96,48,0,120,204,204,204,204,120,2,105,105,24, - 48,0,120,204,204,204,204,120,2,105,105,56,108,0,120,204, - 204,204,204,120,2,105,105,52,88,0,120,204,204,204,204,120, - 2,105,105,204,204,0,120,204,204,204,204,120,3,103,103,48, - 48,0,252,0,48,48,1,105,105,4,120,204,220,204,236,204, - 120,128,2,105,105,96,48,0,204,204,204,204,220,108,2,105, - 105,24,48,0,204,204,204,204,220,108,2,105,105,56,108,0, - 204,204,204,204,220,108,2,105,105,204,204,0,204,204,204,204, - 220,108,0,107,107,24,48,0,204,204,204,220,108,12,204,120, - 0,106,106,192,192,216,236,204,236,216,192,192,192,0,107,107, - 204,204,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Br[1040] U8G_FONT_SECTION("u8g_font_6x13Br") = { - 1,6,13,0,254,9,1,99,2,211,32,127,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255 - }; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13[2160] U8G_FONT_SECTION("u8g_font_6x13") = { - 1,6,13,0,254,9,1,102,2,214,32,255,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,96,34,25,105,128,0,128,128,128,128,128,128,128, - 3,88,104,32,112,168,160,160,168,112,32,2,89,105,48,72, - 64,64,224,64,64,72,176,3,86,102,136,112,80,80,112,136, - 2,89,105,136,136,80,80,248,32,248,32,32,34,25,105,128, - 128,128,128,0,128,128,128,128,18,74,106,96,144,128,96,144, - 144,96,16,144,96,26,50,98,160,160,3,89,105,112,136,168, - 216,200,216,168,136,112,4,87,103,112,8,120,136,120,0,248, - 3,86,102,40,80,160,160,80,40,4,83,99,248,8,8,22, - 49,97,224,3,89,105,112,136,232,216,216,232,216,136,112,10, - 81,97,248,23,68,100,96,144,144,96,3,87,103,32,32,248, - 32,32,0,248,7,53,101,64,160,32,64,224,7,53,101,64, - 160,64,32,192,42,34,98,64,128,0,88,104,136,136,136,136, - 152,232,128,128,2,89,105,120,232,232,232,232,104,40,40,40, - 38,33,97,192,32,34,98,64,128,7,53,101,64,192,64,64, - 224,4,87,103,112,136,136,136,112,0,248,3,86,102,160,80, - 40,40,80,160,2,90,106,64,192,64,64,224,8,24,40,56, - 8,2,90,106,64,192,64,64,224,16,40,8,16,56,2,90, - 106,64,160,64,32,160,72,24,40,56,8,2,89,105,32,0, - 32,32,64,128,136,136,112,2,90,106,64,32,0,32,80,136, - 136,248,136,136,2,90,106,16,32,0,32,80,136,136,248,136, - 136,2,90,106,48,72,0,32,80,136,136,248,136,136,2,90, - 106,40,80,0,32,80,136,136,248,136,136,2,90,106,80,80, - 0,32,80,136,136,248,136,136,2,90,106,32,80,32,32,80, - 136,136,248,136,136,2,89,105,88,160,160,160,176,224,160,160, - 184,0,91,107,112,136,128,128,128,128,128,136,112,32,64,2, - 90,106,64,32,0,248,128,128,240,128,128,248,2,90,106,16, - 32,0,248,128,128,240,128,128,248,2,90,106,48,72,0,248, - 128,128,240,128,128,248,2,90,106,80,80,0,248,128,128,240, - 128,128,248,18,58,106,128,64,0,224,64,64,64,64,64,224, - 18,58,106,32,64,0,224,64,64,64,64,64,224,18,74,106, - 96,144,0,224,64,64,64,64,64,224,18,58,106,160,160,0, - 224,64,64,64,64,64,224,2,89,105,240,72,72,72,232,72, - 72,72,240,2,90,106,40,80,0,136,136,200,168,152,136,136, - 2,90,106,64,32,0,112,136,136,136,136,136,112,2,90,106, - 16,32,0,112,136,136,136,136,136,112,2,90,106,48,72,0, - 112,136,136,136,136,136,112,2,90,106,40,80,0,112,136,136, - 136,136,136,112,2,90,106,80,80,0,112,136,136,136,136,136, - 112,3,85,101,136,80,32,80,136,1,91,107,8,112,152,152, - 168,168,168,200,200,112,128,2,90,106,64,32,0,136,136,136, - 136,136,136,112,2,90,106,16,32,0,136,136,136,136,136,136, - 112,2,90,106,48,72,0,136,136,136,136,136,136,112,2,90, - 106,80,80,0,136,136,136,136,136,136,112,2,90,106,16,32, - 0,136,136,80,32,32,32,32,2,89,105,128,240,136,136,136, - 240,128,128,128,2,89,105,96,144,144,160,160,144,136,136,176, - 2,89,105,64,32,0,112,8,120,136,152,104,2,89,105,16, - 32,0,112,8,120,136,152,104,2,89,105,48,72,0,112,8, - 120,136,152,104,2,89,105,40,80,0,112,8,120,136,152,104, - 2,89,105,80,80,0,112,8,120,136,152,104,2,90,106,48, - 72,48,0,112,8,120,136,152,104,2,86,102,112,40,112,160, - 168,80,0,88,104,112,136,128,128,136,112,32,64,2,89,105, - 64,32,0,112,136,248,128,136,112,2,89,105,16,32,0,112, - 136,248,128,136,112,2,89,105,48,72,0,112,136,248,128,136, - 112,2,89,105,80,80,0,112,136,248,128,136,112,18,57,105, - 128,64,0,192,64,64,64,64,224,18,57,105,32,64,0,192, - 64,64,64,64,224,18,73,105,96,144,0,192,64,64,64,64, - 224,18,57,105,160,160,0,192,64,64,64,64,224,2,90,106, - 80,32,96,16,112,136,136,136,136,112,2,89,105,40,80,0, - 176,200,136,136,136,136,2,89,105,64,32,0,112,136,136,136, - 136,112,2,89,105,16,32,0,112,136,136,136,136,112,2,89, - 105,48,72,0,112,136,136,136,136,112,2,89,105,40,80,0, - 112,136,136,136,136,112,2,89,105,80,80,0,112,136,136,136, - 136,112,3,87,103,32,32,0,248,0,32,32,1,88,104,8, - 112,152,168,168,200,112,128,2,89,105,64,32,0,136,136,136, - 136,152,104,2,89,105,16,32,0,136,136,136,136,152,104,2, - 89,105,48,72,0,136,136,136,136,152,104,2,89,105,80,80, - 0,136,136,136,136,152,104,0,91,107,16,32,0,136,136,136, - 152,104,8,136,112,0,90,106,128,128,176,200,136,136,200,176, - 128,128,0,91,107,80,80,0,136,136,136,152,104,8,136,112 - }; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13O[2162] U8G_FONT_SECTION("u8g_font_6x13O") = { - 1,6,13,0,254,9,1,104,2,216,32,255,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,96,34,41,105,64,0,64,64,64,128,128, - 128,128,3,104,104,16,56,84,80,160,168,112,32,2,105,105, - 24,36,32,32,112,32,64,72,176,3,102,102,68,56,40,80, - 112,136,2,105,105,68,68,40,40,124,32,248,32,32,34,41, - 105,64,64,64,64,0,128,128,128,128,18,90,106,48,72,64, - 48,72,72,48,16,144,96,58,50,98,160,160,2,105,105,56, - 68,84,108,100,216,168,136,112,4,103,103,56,4,124,136,120, - 0,248,19,86,102,40,80,160,160,160,80,20,83,99,248,8, - 16,38,49,97,224,3,105,105,56,68,116,108,108,232,216,136, - 112,26,81,97,248,23,68,100,96,144,144,96,19,71,103,32, - 32,240,64,64,0,240,23,69,101,32,80,32,64,224,23,69, - 101,96,16,96,32,192,58,34,98,64,128,0,104,104,36,36, - 68,72,88,168,128,128,18,89,105,120,232,232,232,232,80,80, - 80,80,54,33,97,192,32,34,98,64,128,23,53,101,32,96, - 64,64,224,4,103,103,56,68,68,136,112,0,248,19,86,102, - 80,40,40,40,80,160,18,90,106,32,96,64,64,224,8,56, - 80,112,16,18,90,106,32,96,64,64,224,16,40,16,32,112, - 18,90,106,96,16,96,32,192,8,56,80,112,16,2,89,105, - 16,0,16,16,32,64,136,136,112,2,106,106,32,16,0,16, - 40,68,68,248,136,136,2,106,106,8,16,0,16,40,68,68, - 248,136,136,2,106,106,24,36,0,16,40,68,68,248,136,136, - 2,106,106,20,40,0,16,40,68,68,248,136,136,2,106,106, - 40,40,0,16,40,68,68,248,136,136,2,106,106,16,40,16, - 16,40,68,68,248,136,136,2,105,105,44,80,80,80,88,224, - 160,160,184,0,107,107,56,68,64,64,64,128,128,136,112,32, - 64,2,106,106,32,16,0,124,64,64,120,128,128,248,2,106, - 106,8,16,0,124,64,64,120,128,128,248,2,106,106,24,36, - 0,124,64,64,120,128,128,248,2,106,106,40,40,0,124,64, - 64,120,128,128,248,18,74,106,64,32,0,112,32,32,32,64, - 64,224,18,74,106,16,32,0,112,32,32,32,64,64,224,18, - 90,106,48,72,0,112,32,32,32,64,64,224,18,74,106,80, - 80,0,112,32,32,32,64,64,224,2,105,105,120,36,36,36, - 116,36,72,72,240,2,106,106,20,40,0,68,68,100,88,136, - 136,136,2,106,106,32,16,0,56,68,68,68,136,136,112,2, - 106,106,8,16,0,56,68,68,68,136,136,112,2,106,106,24, - 36,0,56,68,68,68,136,136,112,2,106,106,20,40,0,56, - 68,68,68,136,136,112,2,106,106,40,40,0,56,68,68,68, - 136,136,112,3,101,101,68,40,48,80,136,1,107,107,4,60, - 76,76,84,84,168,232,232,112,128,2,106,106,32,16,0,68, - 68,68,136,136,136,112,2,106,106,8,16,0,68,68,68,136, - 136,136,112,2,106,106,24,36,0,68,68,68,136,136,136,112, - 2,106,106,40,40,0,68,68,68,136,136,136,112,18,90,106, - 16,32,0,136,136,80,32,64,64,64,2,105,105,64,120,68, - 68,72,240,128,128,128,2,89,105,48,72,72,80,80,144,136, - 136,176,2,105,105,32,16,0,56,4,124,136,152,104,2,105, - 105,8,16,0,56,4,124,136,152,104,2,105,105,24,36,0, - 56,4,124,136,152,104,2,105,105,20,40,0,56,4,124,136, - 152,104,2,105,105,40,40,0,56,4,124,136,152,104,2,106, - 106,24,36,24,0,56,4,124,136,152,104,2,102,102,56,20, - 120,160,168,80,0,104,104,56,68,64,128,136,112,32,64,2, - 105,105,32,16,0,56,68,124,128,136,112,2,105,105,8,16, - 0,56,68,124,128,136,112,2,105,105,24,36,0,56,68,124, - 128,136,112,2,105,105,40,40,0,56,68,124,128,136,112,18, - 57,105,64,32,0,96,32,32,64,64,224,18,73,105,16,32, - 0,96,32,32,64,64,224,18,89,105,48,72,0,96,32,32, - 64,64,224,18,73,105,80,80,0,96,32,32,64,64,224,2, - 106,106,32,24,48,8,56,68,68,136,136,112,2,105,105,20, - 40,0,88,100,68,136,136,136,2,105,105,32,16,0,56,68, - 68,136,136,112,2,105,105,8,16,0,56,68,68,136,136,112, - 2,105,105,24,36,0,56,68,68,136,136,112,2,105,105,20, - 40,0,56,68,68,136,136,112,2,105,105,40,40,0,56,68, - 68,136,136,112,19,87,103,32,32,0,248,0,64,64,1,104, - 104,4,56,76,84,168,200,112,128,2,105,105,32,16,0,68, - 68,68,136,152,104,2,105,105,8,16,0,68,68,68,136,152, - 104,2,105,105,24,36,0,68,68,68,136,152,104,2,105,105, - 40,40,0,68,68,68,136,152,104,0,107,107,8,16,0,68, - 68,136,152,104,8,144,96,0,106,106,64,64,88,100,68,136, - 200,176,128,128,0,107,107,40,40,0,68,68,136,152,104,8, - 144,96}; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Or[1043] U8G_FONT_SECTION("u8g_font_6x13Or") = { - 1,6,13,0,254,9,1,104,2,216,32,127,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13r[1041] U8G_FONT_SECTION("u8g_font_6x13r") = { - 1,6,13,0,254,9,1,102,2,214,32,127,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 6 y= 9 dx= 7 dy= 0 ascent=11 len=13 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[2197] U8G_FONT_SECTION("u8g_font_7x13_67_75") = { - 1,7,13,0,254,3,1,91,2,178,32,255,0,11,254,10, - 0,4,117,117,72,36,254,36,72,18,89,121,32,32,32,168, - 112,32,168,112,32,4,101,117,36,72,248,72,36,4,101,117, - 144,72,124,72,144,4,101,117,36,68,252,68,36,18,89,121, - 32,112,168,32,32,32,32,32,248,4,101,117,144,136,252,136, - 144,18,89,121,248,32,32,32,32,32,168,112,32,18,89,121, - 32,112,168,32,32,168,112,32,248,4,117,117,36,66,252,64, - 32,4,117,117,72,132,126,4,8,4,117,117,36,74,252,72, - 40,4,117,117,72,164,126,36,40,4,117,117,40,84,238,68, - 40,4,117,117,40,84,254,84,40,2,106,122,64,64,128,152, - 104,8,16,84,56,16,2,106,122,32,64,252,68,36,4,4, - 4,4,4,2,106,122,16,8,252,136,144,128,128,128,128,128, - 2,106,122,4,4,4,4,4,36,68,252,64,32,2,106,122, - 128,128,128,128,128,144,136,252,8,16,2,104,120,240,16,16, - 16,16,84,56,16,2,90,122,8,8,8,8,8,40,72,248, - 64,32,4,119,119,28,34,34,34,170,112,32,4,119,119,112, - 136,136,136,170,28,8,2,120,120,254,0,224,192,160,16,8, - 4,2,121,121,144,160,254,160,146,10,254,10,18,4,119,119, - 72,156,170,136,136,136,112,4,119,119,36,114,170,34,34,34, - 28,6,99,115,32,64,252,4,99,115,252,64,32,50,57,121, - 128,192,160,128,128,128,128,128,128,18,57,121,32,96,160,32, - 32,32,32,32,32,6,99,115,16,8,252,4,99,115,252,8, - 16,50,57,121,128,128,128,128,128,128,160,192,128,18,57,121, - 32,32,32,32,32,32,160,96,32,2,105,121,16,8,252,8, - 48,64,252,64,32,2,122,122,40,120,168,40,40,40,40,42, - 60,40,2,105,121,32,64,252,64,48,8,252,8,16,2,105, - 121,32,64,252,64,32,64,252,64,32,2,121,121,68,238,68, - 68,68,68,68,68,68,2,105,121,16,8,252,8,16,8,252, - 8,16,2,122,122,68,68,68,68,68,68,68,68,238,68,3, - 103,119,32,64,252,0,252,8,16,3,103,119,16,8,252,0, - 252,64,32,3,119,119,16,34,126,132,126,40,16,4,117,117, - 40,124,146,124,40,3,119,119,16,40,252,66,252,136,16,3, - 119,119,16,32,126,128,126,32,16,2,121,121,16,40,108,170, - 40,40,40,40,40,3,119,119,16,8,252,2,252,8,16,2, - 121,121,40,40,40,40,40,170,108,40,16,4,117,117,40,124, - 130,124,40,2,122,122,16,40,108,170,40,40,170,108,40,16, - 2,119,119,252,144,136,196,162,144,8,2,119,119,126,18,34, - 70,138,18,32,2,119,119,32,18,138,70,34,18,126,2,119, - 119,8,144,162,196,136,144,252,2,121,121,8,16,62,64,254, - 64,62,16,8,2,121,121,32,16,248,4,254,4,248,16,32, - 4,117,117,32,72,254,68,32,4,117,117,8,36,254,68,8, - 18,89,121,32,112,168,32,248,32,248,32,32,18,89,121,32, - 32,248,32,248,32,168,112,32,3,119,119,16,32,64,182,64, - 32,16,2,122,122,16,40,84,146,0,16,16,0,16,16,3, - 119,119,16,8,4,218,4,8,16,2,122,122,16,16,0,16, - 16,0,146,84,40,16,4,117,117,144,160,254,160,144,4,117, - 117,18,10,254,10,18,3,119,119,16,48,94,130,94,48,16, - 2,121,121,16,40,68,238,40,40,40,40,56,3,119,119,16, - 24,244,130,244,24,16,2,121,121,56,40,40,40,40,238,68, - 40,16,1,124,124,16,40,68,238,40,40,40,56,0,56,40, - 56,1,122,122,16,40,68,238,40,40,40,108,68,124,1,122, - 122,16,40,68,254,40,40,40,108,68,124,1,122,122,16,40, - 68,254,56,56,56,124,68,124,2,121,121,16,40,68,238,68, - 238,40,40,56,1,122,122,16,40,68,238,68,238,40,108,68, - 124,3,119,119,144,152,244,130,244,152,144,2,119,119,254,128, - 188,176,168,164,130,2,119,119,130,74,42,26,122,2,254,2, - 121,121,16,40,68,238,40,238,68,40,16,255,255,255,255,255, - 255,255,255,255,255,255,255,7,118,118,254,254,254,254,254,254, - 0,114,114,254,254,0,115,115,254,254,254,0,117,117,254,254, - 254,254,254,0,119,119,254,254,254,254,254,254,254,0,120,120, - 254,254,254,254,254,254,254,254,0,122,122,254,254,254,254,254, - 254,254,254,254,254,0,123,123,254,254,254,254,254,254,254,254, - 254,254,254,0,125,125,254,254,254,254,254,254,254,254,254,254, - 254,254,254,0,109,125,252,252,252,252,252,252,252,252,252,252, - 252,252,252,0,93,125,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,0,45,125,192,192,192,192,192,192,192,192,192,192, - 192,192,192,0,29,125,128,128,128,128,128,128,128,128,128,128, - 128,128,128,64,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,1,123,123,84,0,170,0,84,0,170,0,84,0, - 170,0,125,125,170,84,170,84,170,84,170,84,170,84,170,84, - 170,0,125,125,254,84,254,170,254,84,254,170,254,84,254,170, - 254,11,114,114,254,254,96,29,125,128,128,128,128,128,128,128, - 128,128,128,128,128,128,0,71,119,240,240,240,240,240,240,240, - 64,55,119,224,224,224,224,224,224,224,7,70,118,240,240,240, - 240,240,240,0,125,125,240,240,240,240,240,240,254,254,254,254, - 254,254,254,0,125,125,240,240,240,240,240,240,14,14,14,14, - 14,14,14,0,125,125,254,254,254,254,254,254,240,240,240,240, - 240,240,240,0,125,125,254,254,254,254,254,254,14,14,14,14, - 14,14,14,71,54,118,224,224,224,224,224,224,0,125,125,14, - 14,14,14,14,14,240,240,240,240,240,240,240,0,125,125,14, - 14,14,14,14,14,254,254,254,254,254,254,254,3,119,119,254, - 254,254,254,254,254,254,3,119,119,254,130,130,130,130,130,254, - 3,119,119,124,130,130,130,130,130,124,3,119,119,254,130,186, - 186,186,130,254,3,119,119,254,130,254,130,254,130,254,3,119, - 119,254,170,170,170,170,170,254,3,119,119,254,170,254,170,254, - 170,254,3,119,119,254,146,138,198,162,146,254,3,119,119,254, - 146,162,198,138,146,254,3,119,119,254,214,170,214,170,214,254, - 20,85,117,248,248,248,248,248,20,85,117,248,136,136,136,248, - 4,117,117,254,254,254,254,254,4,117,117,254,130,130,130,254, - 19,87,119,248,248,248,248,248,248,248,19,87,119,248,136,136, - 136,136,136,248,4,117,117,62,126,254,252,248,4,117,117,62, - 66,130,132,248,2,120,120,16,16,56,56,124,124,254,254,2, - 120,120,16,16,40,40,68,68,130,254,19,86,118,32,32,112, - 112,248,248,19,86,118,32,32,80,80,136,248,3,119,119,128, - 224,248,254,248,224,128,3,119,119,128,224,152,134,152,224,128, - 4,101,117,192,240,252,240,192,4,101,117,192,176,140,176,192, - 4,117,117,128,240,254,240,128,4,117,117,128,240,142,240,128, - 2,120,120,254,254,124,124,56,56,16,16,2,120,120,254,130, - 68,68,40,40,16,16,19,86,118,248,248,112,112,32,32,19, - 86,118,248,136,80,80,32,32,3,119,119,2,14,62,254,62, - 14,2,3,119,119,2,14,50,194,50,14,2,4,101,117,12, - 60,252,60,12,4,101,117,12,52,196,52,12,4,117,117,2, - 30,254,30,2,4,117,117,2,30,226,30,2,2,119,119,16, - 56,124,254,124,56,16,2,119,119,16,40,68,130,68,40,16, - 2,119,119,16,40,84,186,84,40,16,3,119,119,56,68,146, - 186,146,68,56,18,89,121,32,32,80,80,136,80,80,32,32, - 3,119,119,56,68,130,130,130,68,56,3,119,119,40,0,130, - 0,130,0,40,3,119,119,56,108,170,170,170,108,56,3,119, - 119,56,68,146,170,146,68,56,3,119,119,56,124,254,254,254, - 124,56,3,119,119,56,116,242,242,242,116,56,3,119,119,56, - 92,158,158,158,92,56,3,119,119,56,68,130,254,254,124,56, - 3,119,119,56,124,254,254,130,68,56,3,119,119,56,92,158, - 158,130,68,56,3,119,119,56,76,142,142,254,124,56,51,71, - 119,192,224,240,240,240,224,192,3,71,119,48,112,240,240,240, - 112,48,0,125,125,254,254,254,254,198,130,130,130,198,254,254, - 254,254,0,125,125,254,254,254,254,198,186,186,186,198,254,254, - 254,254,6,119,119,254,254,254,254,198,186,186,0,119,119,186, - 186,198,254,254,254,254,6,68,116,48,64,128,128,54,68,116, - 192,32,16,16,51,68,116,16,16,32,192,3,68,116,128,128, - 64,48,6,116,116,56,68,130,130,3,116,116,130,130,68,56, - 3,119,119,2,6,14,30,62,126,254,3,119,119,128,192,224, - 240,248,252,254,3,119,119,254,252,248,240,224,192,128,3,119, - 119,254,126,62,30,14,6,2,20,85,117,112,136,136,136,112, - 3,119,119,254,226,226,226,226,226,254,3,119,119,254,142,142, - 142,142,142,254,3,119,119,254,254,250,242,226,194,254,3,119, - 119,254,134,142,158,190,254,254,3,119,119,254,146,146,146,146, - 146,254,2,120,120,16,16,40,40,84,124,146,254,2,120,120, - 16,16,56,56,116,116,242,254,2,120,120,16,16,56,56,92, - 92,158,254,3,119,119,56,68,130,130,130,68,56,2,119,119, - 254,146,146,242,130,130,254,2,119,119,254,130,130,242,146,146, - 254,2,119,119,254,130,130,158,146,146,254,2,119,119,254,146, - 146,158,130,130,254,2,119,119,56,84,146,242,130,68,56,2, - 119,119,56,68,130,242,146,84,56,2,119,119,56,68,130,158, - 146,84,56,2,119,119,56,84,146,158,130,68,56,255,255,255, - 255,255,255,255,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 7, '1' Height: 5 - Calculated Max Values w= 7 h= 9 x= 1 y= 2 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_75r[471] U8G_FONT_SECTION("u8g_font_7x13_75r") = { - 1,7,13,0,254,7,1,71,0,0,32,79,0,9,0,8, - 0,3,119,119,254,254,254,254,254,254,254,3,119,119,254,130, - 130,130,130,130,254,3,119,119,124,130,130,130,130,130,124,3, - 119,119,254,130,186,186,186,130,254,3,119,119,254,130,254,130, - 254,130,254,3,119,119,254,170,170,170,170,170,254,3,119,119, - 254,170,254,170,254,170,254,3,119,119,254,146,138,198,162,146, - 254,3,119,119,254,146,162,198,138,146,254,3,119,119,254,214, - 170,214,170,214,254,20,85,117,248,248,248,248,248,20,85,117, - 248,136,136,136,248,4,117,117,254,254,254,254,254,4,117,117, - 254,130,130,130,254,19,87,119,248,248,248,248,248,248,248,19, - 87,119,248,136,136,136,136,136,248,4,117,117,62,126,254,252, - 248,4,117,117,62,66,130,132,248,2,120,120,16,16,56,56, - 124,124,254,254,2,120,120,16,16,40,40,68,68,130,254,19, - 86,118,32,32,112,112,248,248,19,86,118,32,32,80,80,136, - 248,3,119,119,128,224,248,254,248,224,128,3,119,119,128,224, - 152,134,152,224,128,4,101,117,192,240,252,240,192,4,101,117, - 192,176,140,176,192,4,117,117,128,240,254,240,128,4,117,117, - 128,240,142,240,128,2,120,120,254,254,124,124,56,56,16,16, - 2,120,120,254,130,68,68,40,40,16,16,19,86,118,248,248, - 112,112,32,32,19,86,118,248,136,80,80,32,32,3,119,119, - 2,14,62,254,62,14,2,3,119,119,2,14,50,194,50,14, - 2,4,101,117,12,60,252,60,12,4,101,117,12,52,196,52, - 12,4,117,117,2,30,254,30,2,4,117,117,2,30,226,30, - 2,2,119,119,16,56,124,254,124,56,16,2,119,119,16,40, - 68,130,68,40,16,2,119,119,16,40,84,186,84,40,16,3, - 119,119,56,68,146,186,146,68,56,18,89,121,32,32,80,80, - 136,80,80,32,32,3,119,119,56,68,130,130,130,68,56,3, - 119,119,40,0,130,0,130,0,40,3,119,119,56,108,170,170, - 170,108,56,3,119,119,56,68,146,170,146,68,56,3,119,119, - 56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13B[2172] U8G_FONT_SECTION("u8g_font_7x13B") = { - 1,7,13,0,254,9,1,105,2,216,32,255,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,112,34,42,122,192,192,0,192,192,192,192,192,192, - 192,3,104,120,16,124,212,208,208,212,124,16,2,105,121,56, - 108,96,96,248,96,96,108,184,3,102,118,204,252,72,72,252, - 204,2,105,121,204,204,120,120,252,48,252,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,106,122,120,204,192, - 120,204,204,120,12,204,120,26,82,114,216,216,2,106,122,120, - 204,132,180,228,228,180,132,204,120,20,87,119,240,24,248,152, - 248,0,248,3,103,119,52,104,208,160,208,104,52,3,100,116, - 252,12,12,12,21,65,113,240,2,106,122,120,204,132,188,172, - 188,180,172,204,120,27,81,113,248,7,100,116,120,204,204,120, - 3,103,119,48,48,252,48,48,0,252,6,70,118,224,176,48, - 96,192,240,6,70,118,224,176,96,48,176,224,25,67,115,48, - 96,192,1,103,119,204,204,204,204,204,252,128,2,105,121,124, - 252,244,244,244,116,52,52,52,38,34,114,192,192,16,50,114, - 96,192,6,70,118,96,224,96,96,96,240,21,87,119,112,248, - 136,248,112,0,248,3,103,119,176,88,44,20,44,88,176,2, - 106,122,96,224,96,96,100,252,28,52,60,12,2,106,122,96, - 224,96,96,120,236,12,24,48,60,2,106,122,224,176,96,48, - 180,236,28,52,60,12,2,106,122,48,48,0,48,48,96,192, - 204,204,120,2,106,122,96,48,0,48,120,204,204,252,204,204, - 2,106,122,24,48,0,48,120,204,204,252,204,204,2,106,122, - 56,108,0,48,120,204,204,252,204,204,2,106,122,52,88,0, - 48,120,204,204,252,204,204,2,106,122,204,204,0,48,120,204, - 204,252,204,204,2,106,122,120,72,120,48,120,204,204,252,204, - 204,2,105,121,124,248,216,216,220,248,216,216,220,0,107,123, - 120,204,192,192,192,192,192,204,120,48,96,2,106,122,96,48, - 0,252,192,192,240,192,192,252,2,106,122,24,48,0,252,192, - 192,240,192,192,252,2,106,122,56,108,0,252,192,192,240,192, - 192,252,2,106,122,204,204,0,252,192,192,240,192,192,252,2, - 106,122,96,48,0,252,48,48,48,48,48,252,2,106,122,24, - 48,0,252,48,48,48,48,48,252,2,106,122,56,108,0,252, - 48,48,48,48,48,252,2,106,122,204,204,0,252,48,48,48, - 48,48,252,2,105,121,248,108,108,108,236,108,108,108,248,2, - 106,122,52,88,0,204,204,236,252,220,204,204,2,106,122,96, - 48,0,120,204,204,204,204,204,120,2,106,122,24,48,0,120, - 204,204,204,204,204,120,2,106,122,56,108,0,120,204,204,204, - 204,204,120,2,106,122,52,88,0,120,204,204,204,204,204,120, - 2,106,122,204,204,0,120,204,204,204,204,204,120,3,101,117, - 204,120,48,120,204,1,106,122,4,120,220,220,220,236,236,236, - 120,128,2,106,122,96,48,0,204,204,204,204,204,204,120,2, - 106,122,24,48,0,204,204,204,204,204,204,120,2,106,122,56, - 108,0,204,204,204,204,204,204,120,2,106,122,204,204,0,204, - 204,204,204,204,204,120,2,106,122,24,48,0,204,72,120,48, - 48,48,48,2,105,121,192,248,204,204,204,248,192,192,192,2, - 105,121,120,204,204,216,216,204,204,204,216,2,105,121,48,24, - 0,120,12,124,204,220,124,2,105,121,24,48,0,120,12,124, - 204,220,124,2,105,121,56,108,0,120,12,124,204,220,124,2, - 105,121,52,88,0,120,12,124,204,220,124,2,105,121,108,108, - 0,120,12,124,204,220,124,2,106,122,56,40,56,0,120,12, - 124,204,220,124,2,102,118,120,52,124,176,180,104,0,104,120, - 120,204,192,192,204,120,48,96,2,105,121,48,24,0,120,204, - 252,192,204,120,2,105,121,24,48,0,120,204,252,192,204,120, - 2,105,121,56,108,0,120,204,252,192,204,120,2,105,121,108, - 108,0,120,204,252,192,204,120,18,73,121,192,96,0,224,96, - 96,96,96,240,18,73,121,48,96,0,224,96,96,96,96,240, - 2,89,121,112,216,0,112,48,48,48,48,120,18,89,121,216, - 216,0,224,96,96,96,96,240,2,106,122,104,48,120,12,124, - 204,204,204,204,120,2,105,121,52,88,0,248,236,204,204,204, - 204,2,105,121,96,48,0,120,204,204,204,204,120,2,105,121, - 24,48,0,120,204,204,204,204,120,2,105,121,56,108,0,120, - 204,204,204,204,120,2,105,121,52,88,0,120,204,204,204,204, - 120,2,105,121,108,108,0,120,204,204,204,204,120,3,103,119, - 48,48,0,252,0,48,48,1,105,121,4,120,204,220,204,236, - 204,120,128,2,105,121,96,48,0,204,204,204,204,220,124,2, - 105,121,24,48,0,204,204,204,204,220,124,2,105,121,56,108, - 0,204,204,204,204,220,124,2,105,121,108,108,0,204,204,204, - 204,220,124,0,107,123,24,48,0,204,204,204,220,124,12,204, - 120,0,106,122,192,192,216,236,204,204,236,216,192,192,0,107, - 123,108,108,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Br[1041] U8G_FONT_SECTION("u8g_font_7x13Br") = { - 1,7,13,0,254,9,1,105,2,216,32,127,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13[2157] U8G_FONT_SECTION("u8g_font_7x13") = { - 1,7,13,0,254,9,1,95,2,207,32,255,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,13,0,112,50,25,121, - 128,0,128,128,128,128,128,128,128,19,88,120,32,112,168,160, - 160,168,112,32,2,105,121,56,68,64,64,224,64,64,68,184, - 3,102,118,132,120,72,72,120,132,2,89,121,136,136,80,80, - 248,32,248,32,32,50,25,121,128,128,128,128,0,128,128,128, - 128,18,74,122,96,144,128,96,144,144,96,16,144,96,25,66, - 114,144,144,2,105,121,120,132,180,164,164,164,180,132,120,20, - 87,119,112,8,120,136,120,0,248,3,103,119,20,40,80,160, - 80,40,20,20,83,115,248,8,8,22,65,113,240,2,105,121, - 120,132,180,172,172,180,172,132,120,26,81,113,248,23,68,116, - 96,144,144,96,19,87,119,32,32,248,32,32,0,248,22,54, - 118,64,160,32,64,128,224,22,54,118,224,32,64,32,160,64, - 42,34,114,64,128,1,103,119,132,132,132,132,204,180,128,2, - 105,121,124,232,232,232,104,40,40,40,40,38,33,113,192,32, - 34,114,64,128,22,54,118,64,192,64,64,64,224,21,70,118, - 96,144,144,96,0,240,3,103,119,160,80,40,20,40,80,160, - 2,106,122,64,192,64,64,68,236,20,20,28,4,2,106,122, - 64,192,64,64,72,244,4,8,16,28,2,106,122,224,32,64, - 32,164,76,20,20,28,4,2,105,121,32,0,32,32,64,128, - 132,132,120,2,106,122,32,16,0,48,72,132,132,252,132,132, - 2,106,122,16,32,0,48,72,132,132,252,132,132,2,106,122, - 48,72,0,48,72,132,132,252,132,132,2,106,122,100,152,0, - 48,72,132,132,252,132,132,2,106,122,72,72,0,48,72,132, - 132,252,132,132,2,106,122,48,72,48,48,72,132,132,252,132, - 132,2,105,121,92,160,160,160,184,224,160,160,188,0,107,123, - 120,132,128,128,128,128,128,132,120,16,32,2,106,122,32,16, - 0,252,128,128,240,128,128,252,2,106,122,16,32,0,252,128, - 128,240,128,128,252,2,106,122,48,72,0,252,128,128,240,128, - 128,252,2,106,122,72,72,0,252,128,128,240,128,128,252,18, - 90,122,64,32,0,248,32,32,32,32,32,248,18,90,122,32, - 64,0,248,32,32,32,32,32,248,18,90,122,32,80,0,248, - 32,32,32,32,32,248,18,90,122,136,136,0,248,32,32,32, - 32,32,248,2,105,121,248,68,68,68,228,68,68,68,248,2, - 106,122,100,152,0,132,196,164,164,148,140,132,2,106,122,32, - 16,0,120,132,132,132,132,132,120,2,106,122,16,32,0,120, - 132,132,132,132,132,120,2,106,122,48,72,0,120,132,132,132, - 132,132,120,2,106,122,100,152,0,120,132,132,132,132,132,120, - 2,106,122,72,72,0,120,132,132,132,132,132,120,3,102,118, - 132,72,48,48,72,132,1,107,123,4,120,140,148,148,164,164, - 164,196,120,128,2,106,122,32,16,0,132,132,132,132,132,132, - 120,2,106,122,16,32,0,132,132,132,132,132,132,120,2,106, - 122,48,72,0,132,132,132,132,132,132,120,2,106,122,72,72, - 0,132,132,132,132,132,132,120,18,90,122,16,32,0,136,136, - 80,32,32,32,32,2,105,121,128,248,132,132,132,248,128,128, - 128,18,89,121,96,144,144,160,160,144,136,136,176,2,105,121, - 32,16,0,120,4,124,132,140,116,2,105,121,16,32,0,120, - 4,124,132,140,116,2,105,121,48,72,0,120,4,124,132,140, - 116,2,105,121,100,152,0,120,4,124,132,140,116,2,105,121, - 72,72,0,120,4,124,132,140,116,2,106,122,48,72,48,0, - 120,4,124,132,140,116,2,102,118,104,20,124,144,148,104,0, - 104,120,120,132,128,128,132,120,16,32,2,105,121,32,16,0, - 120,132,252,128,132,120,2,105,121,16,32,0,120,132,252,128, - 132,120,2,105,121,48,72,0,120,132,252,128,132,120,2,105, - 121,72,72,0,120,132,252,128,132,120,18,89,121,64,32,0, - 96,32,32,32,32,248,18,89,121,32,64,0,96,32,32,32, - 32,248,18,89,121,96,144,0,96,32,32,32,32,248,18,89, - 121,144,144,0,96,32,32,32,32,248,2,106,122,72,48,80, - 8,120,132,132,132,132,120,2,105,121,100,152,0,184,196,132, - 132,132,132,2,105,121,32,16,0,120,132,132,132,132,120,2, - 105,121,16,32,0,120,132,132,132,132,120,2,105,121,48,72, - 0,120,132,132,132,132,120,2,105,121,100,152,0,120,132,132, - 132,132,120,2,105,121,72,72,0,120,132,132,132,132,120,19, - 87,119,32,32,0,248,0,32,32,1,104,120,4,120,140,148, - 164,196,120,128,2,105,121,32,16,0,132,132,132,132,140,116, - 2,105,121,16,32,0,132,132,132,132,140,116,2,105,121,48, - 72,0,132,132,132,132,140,116,2,105,121,72,72,0,132,132, - 132,132,140,116,0,107,123,16,32,0,132,132,132,140,116,4, - 132,120,0,106,122,128,128,184,196,132,132,196,184,128,128,0, - 107,123,72,72,0,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13O[2158] U8G_FONT_SECTION("u8g_font_7x13O") = { - 1,7,13,0,254,9,1,96,2,208,32,255,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,13,0,112,34,41, - 121,64,0,64,64,64,128,128,128,128,3,104,120,16,56,84, - 80,160,168,112,32,2,121,121,28,34,32,32,112,32,64,68, - 184,3,118,118,66,60,36,72,120,132,2,105,121,68,68,40, - 40,124,16,248,32,32,34,41,121,64,64,64,64,0,128,128, - 128,128,2,106,122,24,36,32,48,72,72,48,16,144,96,25, - 66,114,144,144,2,121,121,60,66,90,82,82,164,180,132,120, - 4,103,119,56,4,60,68,60,0,248,3,103,119,20,40,80, - 160,160,80,40,20,83,115,248,16,16,22,65,113,240,2,121, - 121,60,66,90,86,172,180,172,132,120,26,81,113,248,23,68, - 116,96,144,144,96,19,87,119,16,16,120,32,32,0,248,22, - 70,118,32,80,16,96,128,224,22,70,118,96,16,96,32,160, - 64,42,34,114,64,128,1,119,119,66,66,66,132,204,180,128, - 2,105,121,124,232,232,232,40,80,80,80,80,38,33,113,192, - 32,34,114,64,128,38,54,118,32,96,32,64,64,224,21,86, - 118,48,72,72,48,0,240,3,103,119,80,40,20,20,40,80, - 160,2,106,122,32,96,32,64,68,236,20,40,56,8,2,106, - 122,32,96,32,64,72,244,4,24,32,56,2,106,122,96,16, - 96,32,164,76,20,40,56,8,2,105,121,16,0,16,16,32, - 64,132,132,120,2,122,122,16,8,0,24,36,66,66,124,132, - 132,2,122,122,8,16,0,24,36,66,66,124,132,132,2,122, - 122,24,36,0,24,36,66,66,124,132,132,2,122,122,50,76, - 0,24,36,66,66,124,132,132,2,122,122,36,36,0,24,36, - 66,66,124,132,132,2,122,122,24,36,24,24,36,66,66,124, - 132,132,2,121,121,46,80,80,80,124,160,160,160,188,0,123, - 123,60,66,64,64,64,128,128,132,120,16,32,2,122,122,16, - 8,0,126,64,64,112,128,128,252,2,122,122,8,16,0,126, - 64,64,112,128,128,252,2,122,122,24,36,0,126,64,64,112, - 128,128,252,2,122,122,36,36,0,126,64,64,112,128,128,252, - 2,106,122,32,16,0,124,16,16,32,32,32,248,2,106,122, - 16,32,0,124,16,16,32,32,32,248,2,106,122,16,40,0, - 124,16,16,32,32,32,248,2,106,122,68,68,0,124,16,16, - 32,32,32,248,2,121,121,124,34,34,34,242,68,68,68,248, - 2,122,122,50,76,0,66,98,82,82,140,140,132,2,122,122, - 16,8,0,60,66,66,132,132,132,120,2,122,122,8,16,0, - 60,66,66,132,132,132,120,2,122,122,24,36,0,60,66,66, - 132,132,132,120,2,122,122,50,76,0,60,66,66,132,132,132, - 120,2,122,122,36,36,0,60,66,66,132,132,132,120,3,118, - 118,66,36,24,48,72,132,1,123,123,2,60,70,74,74,82, - 164,164,196,120,128,2,122,122,16,8,0,66,66,66,132,132, - 132,120,2,122,122,8,16,0,66,66,66,132,132,132,120,2, - 122,122,24,36,0,66,66,66,132,132,132,120,2,122,122,36, - 36,0,66,66,66,132,132,132,120,18,90,122,16,32,0,136, - 136,80,32,32,64,64,2,121,121,64,124,66,66,66,124,128, - 128,128,18,89,121,48,72,72,80,80,144,136,136,176,2,121, - 121,16,8,0,60,2,124,132,140,116,2,121,121,8,16,0, - 60,2,124,132,140,116,2,121,121,24,36,0,60,2,124,132, - 140,116,2,121,121,50,76,0,60,2,124,132,140,116,2,121, - 121,36,36,0,60,2,124,132,140,116,2,122,122,24,36,24, - 0,60,2,124,132,140,116,2,118,118,52,10,124,144,148,104, - 0,120,120,60,66,128,128,132,120,16,32,2,121,121,16,8, - 0,60,66,124,128,132,120,2,121,121,8,16,0,60,66,124, - 128,132,120,2,121,121,24,36,0,60,66,124,128,132,120,2, - 121,121,36,36,0,60,66,124,128,132,120,18,89,121,32,16, - 0,48,16,32,32,32,248,18,89,121,16,32,0,48,16,32, - 32,32,248,18,89,121,48,72,0,48,16,32,32,32,248,18, - 89,121,72,72,0,48,16,32,32,32,248,2,122,122,36,24, - 40,4,60,66,66,132,132,120,2,121,121,50,76,0,92,98, - 66,132,132,132,2,121,121,16,8,0,60,66,66,132,132,120, - 2,121,121,8,16,0,60,66,66,132,132,120,2,121,121,24, - 36,0,60,66,66,132,132,120,2,121,121,50,76,0,60,66, - 66,132,132,120,2,121,121,36,36,0,60,66,66,132,132,120, - 19,71,119,32,32,0,240,0,64,64,1,120,120,2,60,74, - 82,164,196,120,128,2,121,121,16,8,0,66,66,66,132,140, - 116,2,121,121,8,16,0,66,66,66,132,140,116,2,121,121, - 24,36,0,66,66,66,132,140,116,2,121,121,36,36,0,66, - 66,66,132,140,116,0,123,123,8,16,0,66,66,132,140,116, - 4,132,120,0,122,122,64,64,92,98,66,132,196,184,128,128, - 0,123,123,36,36,0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Or[1035] U8G_FONT_SECTION("u8g_font_7x13Or") = { - 1,7,13,0,254,9,1,96,2,208,32,127,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13r[1034] U8G_FONT_SECTION("u8g_font_7x13r") = { - 1,7,13,0,254,9,1,95,2,207,32,127,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14B[2390] U8G_FONT_SECTION("u8g_font_7x14B") = { - 1,7,14,0,254,10,1,137,3,30,32,255,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,34,42,122,192,192,0,192,192,192,192,192,192,192,1, - 105,121,48,124,180,176,176,176,180,124,48,2,105,121,56,108, - 96,96,240,96,96,248,108,4,102,118,204,120,104,88,120,204, - 2,106,122,132,204,120,252,48,48,252,48,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,107,123,120,204,96, - 48,120,204,120,48,24,204,120,27,82,114,216,216,2,107,123, - 120,204,252,236,236,236,236,236,252,204,120,21,88,120,112,216, - 120,216,216,120,0,248,2,103,119,28,60,120,240,120,60,28, - 2,101,117,252,252,12,12,12,22,65,113,240,2,107,123,120, - 204,252,236,236,252,236,236,236,204,120,28,81,113,248,25,84, - 116,112,216,216,112,2,102,118,48,48,252,48,48,252,22,87, - 119,112,216,24,48,96,192,248,22,87,119,112,216,24,112,24, - 216,112,26,67,115,48,96,192,0,104,120,204,204,204,204,220, - 252,192,192,0,108,124,124,236,236,236,236,108,44,44,44,44, - 44,60,39,34,114,192,192,32,51,115,96,96,192,22,54,118, - 96,224,96,96,96,96,22,86,118,112,216,216,112,0,248,2, - 103,119,224,112,56,28,56,112,224,2,106,122,100,236,104,120, - 120,52,108,92,220,140,2,106,122,100,236,104,120,120,56,116, - 76,216,156,2,106,122,196,108,232,120,240,60,108,220,156,12, - 0,107,123,96,96,0,96,96,96,96,96,204,204,120,2,108, - 124,96,48,0,120,252,204,204,204,252,204,204,204,2,108,124, - 24,48,0,120,252,204,204,204,252,204,204,204,2,108,124,48, - 120,0,120,252,204,204,204,252,204,204,204,2,108,124,104,176, - 0,120,252,204,204,204,252,204,204,204,2,108,124,204,204,0, - 120,252,204,204,204,252,204,204,204,2,108,124,48,72,48,0, - 120,252,204,204,252,204,204,204,2,122,122,126,216,216,216,220, - 248,216,216,216,222,0,108,124,120,204,204,192,192,192,192,204, - 204,120,48,96,2,108,124,96,48,0,252,192,192,192,248,192, - 192,192,252,2,108,124,24,48,0,252,192,192,192,248,192,192, - 192,252,2,108,124,48,120,0,252,192,192,192,248,192,192,192, - 252,2,108,124,204,204,0,252,192,192,192,248,192,192,192,252, - 2,108,124,96,48,0,252,48,48,48,48,48,48,48,252,2, - 108,124,24,48,0,252,48,48,48,48,48,48,48,252,2,108, - 124,48,120,0,252,48,48,48,48,48,48,48,252,2,108,124, - 204,204,0,252,48,48,48,48,48,48,48,252,2,122,122,120, - 108,102,102,254,102,102,102,108,120,2,108,124,104,176,0,204, - 236,236,236,220,220,220,204,204,2,108,124,96,48,0,120,204, - 204,204,204,204,204,204,120,2,108,124,24,48,0,120,204,204, - 204,204,204,204,204,120,2,108,124,48,120,0,120,204,204,204, - 204,204,204,204,120,2,108,124,104,176,0,120,204,204,204,204, - 204,204,204,120,2,108,124,204,204,0,120,204,204,204,204,204, - 204,204,120,2,119,119,198,108,56,56,108,198,130,0,110,126, - 4,4,120,220,220,220,220,236,236,236,236,120,128,128,2,108, - 124,96,48,0,204,204,204,204,204,204,204,204,120,2,108,124, - 24,48,0,204,204,204,204,204,204,204,204,120,2,108,124,48, - 120,0,204,204,204,204,204,204,204,204,120,2,108,124,204,204, - 0,204,204,204,204,204,204,204,204,120,2,108,124,24,48,0, - 204,204,204,120,120,120,48,48,48,2,106,122,192,192,248,204, - 204,204,204,248,192,192,2,106,122,56,108,108,108,120,108,108, - 108,108,248,2,106,122,96,48,0,120,204,60,108,204,204,124, - 2,106,122,24,48,0,120,204,60,108,204,204,124,2,106,122, - 48,120,0,120,204,60,108,204,204,124,2,106,122,104,176,0, - 120,204,60,108,204,204,124,2,106,122,204,204,0,120,204,60, - 108,204,204,124,2,107,123,48,72,48,0,120,204,60,108,204, - 204,124,2,119,119,124,218,58,94,216,222,124,0,105,121,120, - 204,192,192,192,204,120,48,96,2,106,122,96,48,0,120,204, - 204,252,192,204,120,2,106,122,24,48,0,120,204,204,252,192, - 204,120,2,106,122,48,120,0,120,204,204,252,192,204,120,2, - 106,122,204,204,0,120,204,204,252,192,204,120,34,58,122,192, - 96,0,96,96,96,96,96,96,96,34,58,122,96,192,0,192, - 192,192,192,192,192,192,18,74,122,96,240,0,96,96,96,96, - 96,96,96,2,106,122,204,204,0,48,48,48,48,48,48,48, - 2,107,123,216,112,240,152,12,124,204,204,204,204,120,2,106, - 122,104,176,0,248,204,204,204,204,204,204,2,106,122,96,48, - 0,120,204,204,204,204,204,120,2,106,122,24,48,0,120,204, - 204,204,204,204,120,2,106,122,48,120,0,120,204,204,204,204, - 204,120,2,106,122,104,176,0,120,204,204,204,204,204,120,2, - 106,122,204,204,0,120,204,204,204,204,204,120,2,104,120,48, - 48,0,252,252,0,48,48,0,107,123,4,8,120,220,220,236, - 236,204,120,128,128,2,106,122,96,48,0,204,204,204,204,204, - 204,124,2,106,122,24,48,0,204,204,204,204,204,204,124,2, - 106,122,48,120,0,204,204,204,204,204,204,124,2,106,122,204, - 204,0,204,204,204,204,204,204,124,0,108,124,24,48,0,204, - 204,204,120,56,56,48,240,96,0,108,124,192,192,192,248,204, - 204,204,204,204,248,192,192,0,108,124,204,204,0,204,204,204, - 120,56,56,48,240,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 6 h=13 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14Br[1151] U8G_FONT_SECTION("u8g_font_7x14Br") = { - 1,7,14,0,254,10,1,137,3,30,32,127,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14[2374] U8G_FONT_SECTION("u8g_font_7x14") = { - 1,7,14,0,254,10,1,138,3,30,32,255,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,50,26,122,128,128,0,128,128,128,128,128,128,128,1, - 105,121,32,120,164,160,160,160,164,120,32,18,89,121,48,72, - 64,64,240,64,64,240,72,4,102,118,132,120,72,72,120,132, - 18,90,122,136,80,80,32,248,32,248,32,32,32,50,26,122, - 128,128,128,128,0,0,128,128,128,128,2,107,123,120,132,64, - 48,72,132,72,48,8,132,120,27,66,114,144,144,2,107,123, - 120,132,180,204,196,196,196,204,180,132,120,21,88,120,112,136, - 120,136,152,104,0,248,2,103,119,20,40,80,160,80,40,20, - 18,84,116,248,8,8,8,22,65,113,240,2,107,123,120,132, - 244,204,204,244,204,204,204,132,120,27,81,113,248,25,68,116, - 96,144,144,96,18,86,118,32,32,248,32,32,248,22,71,119, - 96,144,16,32,64,128,240,22,71,119,96,144,16,96,16,144, - 96,42,51,115,32,64,128,16,88,120,136,136,136,136,216,168, - 128,128,16,92,124,120,168,168,168,168,104,40,40,40,40,40, - 56,55,17,113,128,32,35,115,64,64,128,38,55,119,64,192, - 64,64,64,64,224,22,70,118,96,144,144,96,0,240,2,103, - 119,160,80,40,20,40,80,160,2,106,122,64,196,72,72,80, - 36,44,84,156,132,2,106,122,64,196,72,72,80,40,52,68, - 136,156,2,106,122,196,36,72,48,208,36,76,84,156,4,0, - 107,123,32,32,0,32,32,32,32,64,132,132,120,2,108,124, - 32,16,0,48,72,132,132,252,132,132,132,132,2,108,124,16, - 32,0,48,72,132,132,252,132,132,132,132,2,108,124,48,72, - 0,48,72,132,132,252,132,132,132,132,2,108,124,100,152,0, - 48,72,132,132,252,132,132,132,132,2,107,123,72,0,48,72, - 132,132,252,132,132,132,132,2,107,123,48,72,48,72,132,132, - 252,132,132,132,132,2,106,122,60,80,144,144,252,144,144,144, - 144,156,0,108,124,120,132,132,128,128,128,128,132,132,120,16, - 32,2,108,124,32,16,0,252,128,128,128,248,128,128,128,252, - 2,108,124,16,32,0,252,128,128,128,248,128,128,128,252,2, - 108,124,48,72,0,252,128,128,128,248,128,128,128,252,2,107, - 123,72,0,252,128,128,128,248,128,128,128,252,18,92,124,64, - 32,0,248,32,32,32,32,32,32,32,248,18,92,124,16,32, - 0,248,32,32,32,32,32,32,32,248,18,92,124,32,80,0, - 248,32,32,32,32,32,32,32,248,18,91,123,80,0,248,32, - 32,32,32,32,32,32,248,2,122,122,120,68,66,66,242,66, - 66,66,68,120,2,108,124,100,152,0,196,196,164,164,148,148, - 148,140,140,2,108,124,32,16,0,120,132,132,132,132,132,132, - 132,120,2,108,124,16,32,0,120,132,132,132,132,132,132,132, - 120,2,108,124,48,72,0,120,132,132,132,132,132,132,132,120, - 2,108,124,100,152,0,120,132,132,132,132,132,132,132,120,2, - 107,123,72,0,120,132,132,132,132,132,132,132,120,2,119,119, - 130,68,40,16,40,68,130,0,110,126,4,4,120,140,148,148, - 148,164,164,164,196,120,128,128,2,108,124,32,16,0,132,132, - 132,132,132,132,132,132,120,2,108,124,16,32,0,132,132,132, - 132,132,132,132,132,120,2,108,124,48,72,0,132,132,132,132, - 132,132,132,132,120,2,107,123,72,0,132,132,132,132,132,132, - 132,132,120,18,92,124,16,32,0,136,136,80,80,32,32,32, - 32,32,2,106,122,128,128,248,132,132,132,132,248,128,128,2, - 106,122,48,72,72,72,112,72,68,68,68,248,2,106,122,32, - 16,0,120,132,4,124,132,132,124,2,106,122,8,16,0,120, - 132,4,124,132,132,124,2,106,122,48,72,0,120,132,4,124, - 132,132,124,2,106,122,100,152,0,120,132,4,124,132,132,124, - 2,105,121,72,0,120,132,4,124,132,132,124,2,107,123,48, - 72,48,0,120,132,4,124,132,132,124,2,119,119,124,146,50, - 94,144,146,124,0,105,121,120,132,128,128,128,132,120,16,32, - 2,106,122,32,16,0,120,132,132,252,128,132,120,2,106,122, - 16,32,0,120,132,132,252,128,132,120,2,106,122,48,72,0, - 120,132,132,252,128,132,120,2,105,121,72,0,120,132,132,252, - 128,132,120,18,90,122,64,32,0,96,32,32,32,32,32,248, - 18,90,122,16,32,0,96,32,32,32,32,32,248,18,90,122, - 96,144,0,96,32,32,32,32,32,248,18,89,121,80,0,96, - 32,32,32,32,32,248,18,91,123,80,32,80,8,120,136,136, - 136,136,136,112,2,106,122,100,152,0,184,196,132,132,132,132, - 132,2,106,122,32,16,0,120,132,132,132,132,132,120,2,106, - 122,16,32,0,120,132,132,132,132,132,120,2,106,122,48,72, - 0,120,132,132,132,132,132,120,2,106,122,100,152,0,120,132, - 132,132,132,132,120,2,105,121,72,0,120,132,132,132,132,132, - 120,2,101,117,48,0,252,0,48,0,107,123,4,8,120,148, - 148,164,164,196,120,128,128,2,106,122,32,16,0,132,132,132, - 132,132,140,116,2,106,122,16,32,0,132,132,132,132,132,140, - 116,2,106,122,48,72,0,132,132,132,132,132,140,116,2,105, - 121,72,0,132,132,132,132,132,140,116,0,108,124,16,32,0, - 132,132,68,72,40,56,16,144,96,0,108,124,128,128,128,184, - 196,132,132,132,196,184,128,128,0,107,123,72,0,132,132,68, - 72,40,56,16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14r[1151] U8G_FONT_SECTION("u8g_font_7x14r") = { - 1,7,14,0,254,10,1,138,3,30,32,127,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 7 y= 9 dx= 8 dy= 0 ascent=11 len=13 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[2420] U8G_FONT_SECTION("u8g_font_8x13_67_75") = { - 1,8,13,0,254,3,1,94,2,193,32,255,0,11,254,10, - 0,3,133,133,36,18,255,18,36,18,88,136,32,32,168,112, - 32,168,112,32,2,119,135,16,34,68,248,68,34,16,18,119, - 135,16,136,68,62,68,136,16,3,133,133,32,65,255,65,32, - 18,89,137,32,112,168,32,32,32,32,32,112,3,133,133,4, - 130,255,130,4,18,89,137,112,32,32,32,32,32,168,112,32, - 2,122,138,16,56,84,16,16,16,84,56,16,254,3,133,133, - 34,65,254,64,32,3,133,133,68,130,127,2,4,3,133,133, - 34,69,254,68,36,3,133,133,68,162,127,34,36,3,133,133, - 36,90,231,66,36,3,133,133,36,82,255,82,36,18,106,138, - 64,64,128,152,104,8,16,84,56,16,18,106,138,32,64,252, - 68,36,4,4,4,4,4,18,106,138,16,8,252,136,144,128, - 128,128,128,128,18,106,138,4,4,4,4,4,36,68,252,64, - 32,18,106,138,128,128,128,128,128,144,136,252,8,16,18,104, - 136,240,16,16,16,16,84,56,16,18,90,138,8,8,8,8, - 8,40,72,248,64,32,4,135,135,12,18,33,33,169,112,32, - 4,135,135,48,72,132,132,149,14,4,2,136,136,255,0,112, - 96,80,8,4,2,2,136,136,136,144,190,144,9,125,9,17, - 4,135,135,100,142,149,132,132,72,48,4,135,135,38,113,169, - 33,33,18,12,5,131,131,32,64,255,3,131,131,255,64,32, - 50,57,137,128,192,160,128,128,128,128,128,128,34,57,137,32, - 96,160,32,32,32,32,32,32,5,131,131,4,2,255,3,131, - 131,255,2,4,50,57,137,128,128,128,128,128,128,160,192,128, - 34,57,137,32,32,32,32,32,32,160,96,32,2,121,137,8, - 4,254,4,40,64,254,64,32,2,138,138,36,116,172,36,36, - 36,36,53,46,36,2,121,137,32,64,254,64,40,4,254,4, - 8,2,139,139,32,64,255,64,32,0,32,64,255,64,32,2, - 122,138,68,238,68,68,68,68,68,68,68,68,2,139,139,4, - 2,255,2,4,0,4,2,255,2,4,2,122,138,68,68,68, - 68,68,68,68,68,238,68,2,119,135,32,64,254,0,254,4, - 8,2,119,135,8,4,254,0,254,64,32,2,135,135,16,33, - 127,130,127,36,16,3,133,133,36,126,153,126,36,2,135,135, - 8,36,254,65,254,132,8,2,135,135,16,32,127,128,127,32, - 16,18,121,137,16,40,108,170,40,40,40,40,40,2,135,135, - 8,4,254,1,254,4,8,2,121,137,40,40,40,40,40,170, - 108,40,16,3,133,133,36,126,129,126,36,2,123,139,16,40, - 108,170,40,40,40,170,108,40,16,2,119,135,252,144,136,196, - 162,144,8,18,119,135,126,18,34,70,138,18,32,18,119,135, - 32,18,138,70,34,18,126,2,119,135,8,144,162,196,136,144, - 252,2,137,137,8,16,63,64,255,64,63,16,8,2,137,137, - 16,8,252,2,255,2,252,8,16,2,135,135,16,32,72,245, - 66,32,16,2,135,135,8,4,18,175,66,4,8,2,122,138, - 16,56,84,146,16,124,16,124,16,16,2,122,138,16,16,124, - 16,124,16,146,84,56,16,2,119,135,16,32,64,182,64,32, - 16,2,122,138,16,40,84,146,0,16,16,0,16,16,18,119, - 135,16,8,4,218,4,8,16,2,122,138,16,16,0,16,16, - 0,146,84,40,16,3,117,133,144,160,254,160,144,19,117,133, - 18,10,254,10,18,2,135,135,16,48,95,129,95,48,16,2, - 121,137,16,40,68,238,40,40,40,40,56,2,135,135,8,12, - 250,129,250,12,8,2,121,137,56,40,40,40,40,238,68,40, - 16,1,123,139,16,40,68,238,40,40,56,0,56,40,56,1, - 122,138,16,40,68,238,40,40,40,108,68,124,1,122,138,16, - 40,68,254,40,40,40,108,68,124,1,122,138,16,40,68,254, - 56,56,56,124,68,124,2,121,137,16,40,68,238,68,238,40, - 40,56,1,122,138,16,40,68,238,68,238,40,108,68,124,2, - 135,135,136,140,250,129,250,140,136,2,119,135,254,128,188,176, - 168,164,130,2,119,135,130,74,42,26,122,2,254,2,121,137, - 16,40,68,238,40,238,68,40,16,4,133,133,36,82,255,82, - 36,2,138,138,36,46,53,36,36,36,36,172,116,36,0,141, - 141,4,2,255,2,4,2,255,2,4,2,255,2,4,4,117, - 133,40,72,254,72,40,20,117,133,40,36,254,36,40,4,117, - 133,16,84,254,84,16,4,133,133,42,74,255,74,42,4,133, - 133,84,82,255,82,84,4,133,133,24,90,255,90,24,3,135, - 135,16,48,80,159,80,48,16,3,135,135,8,12,10,249,10, - 12,8,4,133,133,36,102,189,102,36,7,134,134,255,255,255, - 255,255,255,0,130,130,255,255,0,131,131,255,255,255,0,133, - 133,255,255,255,255,255,0,135,135,255,255,255,255,255,255,255, - 0,136,136,255,255,255,255,255,255,255,255,0,138,138,255,255, - 255,255,255,255,255,255,255,255,0,139,139,255,255,255,255,255, - 255,255,255,255,255,255,0,141,141,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,125,141,254,254,254,254,254,254,254, - 254,254,254,254,254,254,0,109,141,252,252,252,252,252,252,252, - 252,252,252,252,252,252,0,93,141,248,248,248,248,248,248,248, - 248,248,248,248,248,248,0,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,0,61,141,224,224,224,224,224,224,224, - 224,224,224,224,224,224,0,45,141,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,29,141,128,128,128,128,128,128,128, - 128,128,128,128,128,128,64,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,1,139,139,85,0,170,0,85,0,170, - 0,85,0,170,0,141,141,170,85,170,85,170,85,170,85,170, - 85,170,85,170,0,141,141,255,85,255,170,255,85,255,170,255, - 85,255,170,255,11,130,130,255,255,112,29,141,128,128,128,128, - 128,128,128,128,128,128,128,128,128,0,71,135,240,240,240,240, - 240,240,240,64,71,135,240,240,240,240,240,240,240,7,70,134, - 240,240,240,240,240,240,0,141,141,240,240,240,240,240,240,255, - 255,255,255,255,255,255,0,141,141,240,240,240,240,240,240,15, - 15,15,15,15,15,15,0,141,141,255,255,255,255,255,255,240, - 240,240,240,240,240,240,0,141,141,255,255,255,255,255,255,15, - 15,15,15,15,15,15,71,70,134,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,240,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,255,255,255,255,255,255,255,2, - 119,135,254,254,254,254,254,254,254,2,119,135,254,130,130,130, - 130,130,254,2,119,135,124,130,130,130,130,130,124,2,119,135, - 254,130,186,186,186,130,254,2,119,135,254,130,254,130,254,130, - 254,2,119,135,254,170,170,170,170,170,254,2,119,135,254,170, - 254,170,254,170,254,2,119,135,254,146,138,198,162,146,254,2, - 119,135,254,146,162,198,138,146,254,2,119,135,254,214,170,214, - 170,214,254,37,51,131,224,224,224,37,51,131,224,160,224,21, - 100,132,252,252,252,252,21,100,132,252,132,132,252,18,89,137, - 248,248,248,248,248,248,248,248,248,18,89,137,248,136,136,136, - 136,136,136,136,248,5,132,132,31,62,124,248,5,132,132,31, - 34,68,248,2,136,136,24,24,60,60,126,126,255,255,2,136, - 136,24,24,36,36,66,66,129,255,18,102,134,48,48,120,120, - 252,252,18,102,134,48,48,72,72,132,252,18,107,139,128,192, - 224,240,248,252,248,240,224,192,128,18,107,139,128,192,160,144, - 136,132,136,144,160,192,128,20,101,133,192,240,252,240,192,20, - 101,133,192,176,140,176,192,3,119,135,128,224,248,254,248,224, - 128,3,119,135,128,224,152,134,152,224,128,2,136,136,255,255, - 126,126,60,60,24,24,2,136,136,255,129,66,66,36,36,24, - 24,18,102,134,252,252,120,120,48,48,18,102,134,252,132,72, - 72,48,48,18,107,139,4,12,28,60,124,252,124,60,28,12, - 4,18,107,139,4,12,20,36,68,132,68,36,20,12,4,20, - 101,133,12,60,252,60,12,20,101,133,12,52,196,52,12,3, - 119,135,2,14,62,254,62,14,2,3,119,135,2,14,50,194, - 50,14,2,3,119,135,16,56,124,254,124,56,16,3,119,135, - 16,40,68,130,68,40,16,3,119,135,16,40,84,186,84,40, - 16,3,119,135,56,68,146,186,146,68,56,18,105,137,48,48, - 72,72,132,72,72,48,48,2,136,136,60,66,129,129,129,129, - 66,60,2,136,136,24,66,0,129,129,0,66,24,2,136,136, - 60,106,171,171,171,171,106,60,2,136,136,60,66,153,165,165, - 153,66,60,2,136,136,60,126,255,255,255,255,126,60,2,136, - 136,60,114,241,241,241,241,114,60,2,136,136,60,78,143,143, - 143,143,78,60,2,136,136,60,66,129,129,255,255,126,60,2, - 136,136,60,126,255,255,129,129,66,60,2,136,136,60,78,143, - 143,129,129,66,60,2,136,136,60,78,143,143,255,255,126,60, - 2,72,136,48,112,240,240,240,240,112,48,66,72,136,192,224, - 240,240,240,240,224,192,0,141,141,255,255,255,255,195,129,129, - 129,129,195,255,255,255,0,141,141,255,255,255,255,195,153,189, - 189,153,195,255,255,255,6,135,135,255,255,255,255,195,153,189, - 0,134,134,189,153,195,255,255,255,6,68,132,48,64,128,128, - 70,68,132,192,32,16,16,66,68,132,16,16,32,192,2,68, - 132,128,128,64,48,6,132,132,60,66,129,129,2,132,132,129, - 129,66,60,2,136,136,1,3,7,15,31,63,127,255,2,136, - 136,128,192,224,240,248,252,254,255,2,136,136,255,254,252,248, - 240,224,192,128,2,136,136,255,127,63,31,15,7,3,1,20, - 85,133,112,136,136,136,112,2,120,136,254,226,226,226,226,226, - 226,254,2,120,136,254,142,142,142,142,142,142,254,2,120,136, - 254,254,250,242,226,194,130,254,2,120,136,254,130,134,142,158, - 190,254,254,2,120,136,254,146,146,146,146,146,146,254,2,122, - 138,16,16,40,40,68,84,124,146,130,254,2,122,138,16,16, - 56,56,116,116,116,242,242,254,2,122,138,16,16,56,56,92, - 92,92,158,158,254,2,136,136,60,66,129,129,129,129,66,60, - 2,119,135,254,146,146,242,130,130,254,2,119,135,254,130,130, - 242,146,146,254,2,119,135,254,130,130,158,146,146,254,2,119, - 135,254,146,146,158,130,130,254,2,119,135,124,146,146,242,130, - 130,124,2,119,135,124,130,130,242,146,146,124,2,119,135,124, - 130,130,158,146,146,124,2,119,135,124,146,146,158,130,130,124, - 19,102,134,252,136,144,160,192,128,19,102,134,252,68,36,20, - 12,4,19,102,134,128,192,160,144,136,252,19,102,134,252,132, - 132,132,132,252,19,102,134,252,252,252,252,252,252,37,68,132, - 240,144,144,240,37,68,132,240,240,240,240,19,102,134,4,12, - 20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 11, '1' Height: 4 - Calculated Max Values w= 8 h=11 x= 2 y= 3 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_75r[496] U8G_FONT_SECTION("u8g_font_8x13_75r") = { - 1,8,13,0,254,11,1,83,0,0,32,79,0,11,0,11, - 0,2,119,135,254,254,254,254,254,254,254,2,119,135,254,130, - 130,130,130,130,254,2,119,135,124,130,130,130,130,130,124,2, - 119,135,254,130,186,186,186,130,254,2,119,135,254,130,254,130, - 254,130,254,2,119,135,254,170,170,170,170,170,254,2,119,135, - 254,170,254,170,254,170,254,2,119,135,254,146,138,198,162,146, - 254,2,119,135,254,146,162,198,138,146,254,2,119,135,254,214, - 170,214,170,214,254,37,51,131,224,224,224,37,51,131,224,160, - 224,21,100,132,252,252,252,252,21,100,132,252,132,132,252,18, - 89,137,248,248,248,248,248,248,248,248,248,18,89,137,248,136, - 136,136,136,136,136,136,248,5,132,132,31,62,124,248,5,132, - 132,31,34,68,248,2,136,136,24,24,60,60,126,126,255,255, - 2,136,136,24,24,36,36,66,66,129,255,18,102,134,48,48, - 120,120,252,252,18,102,134,48,48,72,72,132,252,18,107,139, - 128,192,224,240,248,252,248,240,224,192,128,18,107,139,128,192, - 160,144,136,132,136,144,160,192,128,20,101,133,192,240,252,240, - 192,20,101,133,192,176,140,176,192,3,119,135,128,224,248,254, - 248,224,128,3,119,135,128,224,152,134,152,224,128,2,136,136, - 255,255,126,126,60,60,24,24,2,136,136,255,129,66,66,36, - 36,24,24,18,102,134,252,252,120,120,48,48,18,102,134,252, - 132,72,72,48,48,18,107,139,4,12,28,60,124,252,124,60, - 28,12,4,18,107,139,4,12,20,36,68,132,68,36,20,12, - 4,20,101,133,12,60,252,60,12,20,101,133,12,52,196,52, - 12,3,119,135,2,14,62,254,62,14,2,3,119,135,2,14, - 50,194,50,14,2,3,119,135,16,56,124,254,124,56,16,3, - 119,135,16,40,68,130,68,40,16,3,119,135,16,40,84,186, - 84,40,16,3,119,135,56,68,146,186,146,68,56,18,105,137, - 48,48,72,72,132,72,72,48,48,2,136,136,60,66,129,129, - 129,129,66,60,2,136,136,24,66,0,129,129,0,66,24,2, - 136,136,60,106,171,171,171,171,106,60,2,136,136,60,66,153, - 165,165,153,66,60,2,136,136,60,126,255,255,255,255,126,60 - }; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=12 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=12 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13B[2302] U8G_FONT_SECTION("u8g_font_8x13B") = { - 1,8,13,0,254,10,1,127,3,12,32,255,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,128,50,42,138,192,192,0,192,192,192,192, - 192,192,192,3,104,136,16,124,212,208,208,212,124,16,1,123, - 139,60,102,96,96,252,96,96,96,240,190,224,3,119,135,198, - 254,108,68,108,254,198,18,106,138,204,204,204,120,120,252,48, - 252,48,48,50,42,138,192,192,192,192,0,0,192,192,192,192, - 18,106,138,120,204,192,120,204,204,120,12,204,120,26,82,130, - 216,216,3,121,137,124,198,186,234,226,234,186,198,124,21,87, - 135,240,24,248,152,248,0,248,3,119,135,54,108,216,176,216, - 108,54,3,101,133,252,252,4,4,4,22,81,129,248,3,121, - 137,124,198,186,170,186,178,170,198,124,28,97,129,252,24,100, - 132,120,204,204,120,19,103,135,48,48,252,48,48,0,252,22, - 70,134,224,176,48,96,192,240,22,70,134,224,176,96,48,176, - 224,41,67,131,48,96,192,0,121,137,198,198,198,198,198,238, - 252,192,192,1,123,139,62,122,202,202,202,122,58,10,10,10, - 14,54,34,130,192,192,16,67,131,48,144,96,22,70,134,96, - 224,96,96,96,240,21,87,135,112,248,136,248,112,0,248,3, - 119,135,216,108,54,26,54,108,216,2,122,138,96,224,96,96, - 98,246,14,26,30,6,2,122,138,96,224,96,96,124,246,6, - 12,24,30,2,122,138,224,176,96,48,178,230,14,26,30,6, - 18,106,138,48,48,0,48,48,96,192,204,204,120,2,122,138, - 48,24,0,56,124,198,198,254,198,198,2,122,138,24,48,0, - 56,124,198,198,254,198,198,2,122,138,56,108,0,56,124,198, - 198,254,198,198,2,122,138,52,88,0,56,124,198,198,254,198, - 198,2,122,138,108,108,0,56,124,198,198,254,198,198,2,123, - 139,24,36,24,0,56,124,198,198,254,198,198,2,122,138,126, - 248,216,216,216,252,216,216,216,222,0,124,140,124,230,192,192, - 192,192,192,230,124,24,72,48,2,122,138,48,24,0,254,192, - 192,248,192,192,254,2,122,138,24,48,0,254,192,192,248,192, - 192,254,2,122,138,56,108,0,254,192,192,248,192,192,254,2, - 122,138,108,108,0,254,192,192,248,192,192,254,34,74,138,192, - 96,0,240,96,96,96,96,96,240,34,74,138,48,96,0,240, - 96,96,96,96,96,240,34,90,138,112,216,0,240,96,96,96, - 96,96,240,34,90,138,216,216,0,240,96,96,96,96,96,240, - 2,120,136,252,102,102,246,102,102,102,252,2,122,138,52,88, - 0,198,230,246,214,222,206,198,2,123,139,48,24,0,124,198, - 198,198,198,198,198,124,2,123,139,24,48,0,124,198,198,198, - 198,198,198,124,2,123,139,56,108,0,124,198,198,198,198,198, - 198,124,2,123,139,52,88,0,124,198,198,198,198,198,198,124, - 2,123,139,108,108,0,124,198,198,198,198,198,198,124,2,119, - 135,198,198,124,56,124,198,198,1,122,138,2,124,206,214,214, - 214,214,230,124,128,2,122,138,48,24,0,198,198,198,198,198, - 198,124,2,122,138,24,48,0,198,198,198,198,198,198,124,2, - 122,138,56,108,0,198,198,198,198,198,198,124,2,122,138,108, - 108,0,198,198,198,198,198,198,124,18,106,138,24,48,0,204, - 72,120,48,48,48,48,2,121,137,192,252,198,198,198,252,192, - 192,192,2,122,138,60,102,102,108,236,108,102,102,102,108,2, - 122,138,48,24,0,124,6,126,198,198,206,118,2,122,138,24, - 48,0,124,6,126,198,198,206,118,2,122,138,56,108,0,124, - 6,126,198,198,206,118,2,122,138,52,88,0,124,6,126,198, - 198,206,118,2,122,138,108,108,0,124,6,126,198,198,206,118, - 2,123,139,24,36,24,0,124,6,126,198,198,206,118,2,119, - 135,108,218,26,124,216,218,108,0,122,138,124,230,192,192,192, - 230,124,24,72,48,2,122,138,48,24,0,124,198,198,254,192, - 198,124,2,122,138,24,48,0,124,198,198,254,192,198,124,2, - 122,138,56,108,0,124,198,198,254,192,198,124,2,122,138,108, - 108,0,124,198,198,254,192,198,124,34,74,138,192,96,0,224, - 96,96,96,96,96,240,34,74,138,96,192,0,224,96,96,96, - 96,96,240,18,90,138,112,216,0,112,48,48,48,48,48,120, - 18,90,138,216,216,0,112,48,48,48,48,48,120,2,122,138, - 108,56,120,12,126,198,198,198,198,124,2,122,138,52,88,0, - 220,230,198,198,198,198,198,2,122,138,48,24,0,124,198,198, - 198,198,198,124,2,122,138,24,48,0,124,198,198,198,198,198, - 124,2,122,138,56,108,0,124,198,198,198,198,198,124,2,122, - 138,52,88,0,124,198,198,198,198,198,124,2,122,138,108,108, - 0,124,198,198,198,198,198,124,19,103,135,48,48,0,252,0, - 48,48,1,121,137,2,124,206,214,214,214,230,124,128,2,122, - 138,48,24,0,198,198,198,198,198,206,118,2,122,138,24,48, - 0,198,198,198,198,198,206,118,2,122,138,56,108,0,198,198, - 198,198,198,206,118,2,122,138,108,108,0,198,198,198,198,198, - 206,118,0,124,140,24,48,0,198,198,198,198,206,118,6,198, - 124,0,123,139,192,192,220,230,198,198,198,230,220,192,192,0, - 124,140,108,108,0,198,198,198,198,206,118,6,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Br[1123] U8G_FONT_SECTION("u8g_font_8x13Br") = { - 1,8,13,0,254,10,1,127,3,12,32,127,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13[2152] U8G_FONT_SECTION("u8g_font_8x13") = { - 1,8,13,0,254,9,1,97,2,205,32,255,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,13,0,128,50,25,137,128,0,128,128,128,128, - 128,128,128,19,88,136,32,112,168,160,160,168,112,32,2,121, - 137,28,34,32,112,32,32,32,98,220,19,102,134,132,120,72, - 72,120,132,2,121,137,130,130,68,40,124,16,124,16,16,50, - 25,137,128,128,128,128,0,128,128,128,128,34,74,138,96,144, - 128,96,144,144,96,16,144,96,42,66,130,144,144,3,121,137, - 56,68,146,170,162,170,146,68,56,20,87,135,112,8,120,136, - 120,0,248,3,119,135,18,36,72,144,72,36,18,19,100,132, - 252,4,4,4,38,65,129,240,3,121,137,56,68,146,170,170, - 178,170,68,56,26,97,129,252,39,68,132,96,144,144,96,19, - 87,135,32,32,248,32,32,0,248,22,70,134,96,144,16,96, - 128,240,22,70,134,96,144,32,16,144,96,58,34,130,64,128, - 17,103,135,132,132,132,132,204,180,128,18,105,137,124,232,232, - 232,104,40,40,40,40,54,33,129,192,48,34,130,64,192,22, - 54,134,64,192,64,64,64,224,21,70,134,96,144,144,96,0, - 240,3,119,135,144,72,36,18,36,72,144,2,122,138,64,192, - 64,64,66,230,10,18,26,6,2,122,138,64,192,64,64,76, - 242,2,12,16,30,2,122,138,96,144,32,16,146,102,10,18, - 26,6,18,105,137,32,0,32,32,64,128,132,132,120,18,106, - 138,32,16,0,48,72,132,132,252,132,132,18,106,138,16,32, - 0,48,72,132,132,252,132,132,18,106,138,48,72,0,48,72, - 132,132,252,132,132,18,106,138,100,152,0,48,72,132,132,252, - 132,132,18,106,138,72,72,0,48,72,132,132,252,132,132,18, - 106,138,48,72,48,48,72,132,132,252,132,132,2,121,137,110, - 144,144,144,156,240,144,144,158,16,107,139,120,132,128,128,128, - 128,128,132,120,16,32,18,106,138,32,16,0,252,128,128,240, - 128,128,252,18,106,138,16,32,0,252,128,128,240,128,128,252, - 18,106,138,48,72,0,252,128,128,240,128,128,252,18,106,138, - 72,72,0,252,128,128,240,128,128,252,18,90,138,64,32,0, - 248,32,32,32,32,32,248,18,90,138,16,32,0,248,32,32, - 32,32,32,248,18,90,138,48,72,0,248,32,32,32,32,32, - 248,18,90,138,136,136,0,248,32,32,32,32,32,248,2,121, - 137,120,68,66,66,226,66,66,68,120,2,122,138,100,152,0, - 130,194,162,146,138,134,130,2,122,138,32,16,0,124,130,130, - 130,130,130,124,2,122,138,8,16,0,124,130,130,130,130,130, - 124,2,122,138,24,36,0,124,130,130,130,130,130,124,2,122, - 138,100,152,0,124,130,130,130,130,130,124,2,122,138,68,68, - 0,124,130,130,130,130,130,124,19,102,134,132,72,48,48,72, - 132,17,107,139,4,120,140,148,148,164,164,164,196,120,128,18, - 106,138,64,32,0,132,132,132,132,132,132,120,18,106,138,16, - 32,0,132,132,132,132,132,132,120,18,106,138,48,72,0,132, - 132,132,132,132,132,120,18,106,138,72,72,0,132,132,132,132, - 132,132,120,18,90,138,16,32,0,136,136,80,32,32,32,32, - 18,105,137,128,248,132,132,132,248,128,128,128,18,105,137,112, - 136,136,144,160,152,132,132,184,18,105,137,32,16,0,120,4, - 124,132,140,116,18,105,137,8,16,0,120,4,124,132,140,116, - 18,105,137,48,72,0,120,4,124,132,140,116,18,105,137,100, - 152,0,120,4,124,132,140,116,18,105,137,72,72,0,120,4, - 124,132,140,116,18,106,138,48,72,48,0,120,4,124,132,140, - 116,2,118,134,108,18,124,144,146,108,16,104,136,120,132,128, - 128,132,120,16,32,18,105,137,32,16,0,120,132,252,128,132, - 120,18,105,137,16,32,0,120,132,252,128,132,120,18,105,137, - 48,72,0,120,132,252,128,132,120,18,105,137,72,72,0,120, - 132,252,128,132,120,18,89,137,64,32,0,96,32,32,32,32, - 248,18,89,137,32,64,0,96,32,32,32,32,248,18,89,137, - 96,144,0,96,32,32,32,32,248,18,89,137,144,144,0,96, - 32,32,32,32,248,18,106,138,72,48,80,8,120,132,132,132, - 132,120,18,105,137,100,152,0,184,196,132,132,132,132,18,105, - 137,64,32,0,120,132,132,132,132,120,18,105,137,16,32,0, - 120,132,132,132,132,120,18,105,137,48,72,0,120,132,132,132, - 132,120,18,105,137,100,152,0,120,132,132,132,132,120,18,105, - 137,72,72,0,120,132,132,132,132,120,19,87,135,32,32,0, - 248,0,32,32,17,104,136,4,120,140,148,164,196,120,128,18, - 105,137,64,32,0,136,136,136,136,136,116,18,105,137,16,32, - 0,136,136,136,136,136,116,18,105,137,48,72,0,136,136,136, - 136,136,116,18,105,137,80,80,0,136,136,136,136,136,116,16, - 107,139,16,32,0,132,132,132,140,116,4,132,120,16,106,138, - 128,128,184,196,132,132,196,184,128,128,16,107,139,72,72,0, - 132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13O[2153] U8G_FONT_SECTION("u8g_font_8x13O") = { - 1,8,13,0,254,9,1,98,2,206,32,255,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,13,0,128,50,41,137,64,0,64,64,64, - 128,128,128,128,19,104,136,16,56,84,80,160,168,112,32,2, - 137,137,14,17,16,56,16,32,32,98,220,3,118,134,66,60, - 36,72,120,132,2,121,137,130,130,68,40,124,16,248,32,32, - 50,41,137,64,64,64,64,0,128,128,128,128,18,90,138,48, - 72,64,48,72,144,96,16,144,96,42,66,130,144,144,2,137, - 137,28,34,73,85,162,170,146,68,56,20,103,135,56,4,120, - 136,120,0,248,3,119,135,18,36,72,144,144,72,36,19,100, - 132,252,4,8,8,38,65,129,240,2,137,137,28,34,89,85, - 170,178,170,68,56,26,97,129,252,39,68,132,96,144,144,96, - 19,103,135,16,16,124,32,32,0,248,22,86,134,48,72,8, - 112,128,240,22,86,134,112,8,48,16,144,96,58,34,130,64, - 128,1,119,135,66,66,66,132,204,180,128,18,105,137,124,232, - 232,232,104,80,80,80,80,54,33,129,192,48,34,130,64,192, - 38,54,134,32,96,32,64,64,224,21,102,134,24,36,72,48, - 0,240,3,119,135,72,36,18,18,36,72,144,18,106,138,32, - 96,32,64,68,236,20,40,60,8,2,122,138,32,96,32,64, - 76,242,4,24,32,60,18,106,138,112,8,48,16,148,108,20, - 40,60,8,18,105,137,16,0,16,16,32,64,132,136,112,2, - 122,138,16,8,0,24,36,66,66,124,132,132,2,122,138,8, - 16,0,24,36,66,66,124,132,132,2,122,138,24,36,0,24, - 36,66,66,124,132,132,2,122,138,50,76,0,24,36,66,66, - 124,132,132,2,122,138,36,36,0,24,36,66,66,124,132,132, - 2,122,138,24,36,24,24,36,66,66,124,132,132,2,137,137, - 55,72,72,72,78,112,144,144,158,0,123,139,60,66,64,64, - 64,128,128,132,120,16,32,2,122,138,16,8,0,126,64,64, - 112,128,128,252,2,122,138,8,16,0,126,64,64,112,128,128, - 252,2,122,138,24,36,0,126,64,64,112,128,128,252,2,122, - 138,36,36,0,126,64,64,112,128,128,252,18,106,138,32,16, - 0,124,16,16,32,32,32,248,18,106,138,8,16,0,124,16, - 16,32,32,32,248,18,106,138,24,36,0,124,16,16,32,32, - 32,248,18,106,138,68,68,0,124,16,16,32,32,32,248,2, - 121,137,120,68,66,66,226,68,132,136,240,2,138,138,50,76, - 0,65,97,81,146,138,134,130,2,138,138,16,8,0,62,65, - 65,130,130,130,124,2,138,138,4,8,0,62,65,65,130,130, - 130,124,2,138,138,12,18,0,62,65,65,130,130,130,124,2, - 138,138,50,76,0,62,65,65,130,130,130,124,2,138,138,34, - 34,0,62,65,65,130,130,130,124,3,118,134,66,36,24,48, - 72,132,1,123,139,2,60,70,74,74,82,164,164,196,120,128, - 2,122,138,32,16,0,66,66,66,132,132,132,120,2,122,138, - 8,16,0,66,66,66,132,132,132,120,2,122,138,24,36,0, - 66,66,66,132,132,132,120,2,122,138,36,36,0,66,66,66, - 132,132,132,120,18,90,138,16,32,0,136,136,80,96,64,64, - 64,2,121,137,64,124,66,66,66,124,128,128,128,18,105,137, - 56,68,68,72,80,136,132,132,184,2,121,137,16,8,0,60, - 2,124,132,140,116,2,121,137,4,8,0,60,2,124,132,140, - 116,2,121,137,24,36,0,60,2,124,132,140,116,2,121,137, - 50,76,0,60,2,124,132,140,116,2,121,137,36,36,0,60, - 2,124,132,140,116,2,122,138,24,36,24,0,60,2,124,132, - 140,116,2,134,134,54,9,126,144,146,108,0,120,136,60,66, - 128,128,132,120,16,32,2,121,137,16,8,0,60,66,124,128, - 132,120,2,121,137,8,16,0,60,66,124,128,132,120,2,121, - 137,24,36,0,60,66,124,128,132,120,2,121,137,36,36,0, - 60,66,124,128,132,120,18,89,137,32,16,0,48,16,16,32, - 32,248,18,89,137,16,32,0,48,16,16,32,32,248,18,89, - 137,48,72,0,48,16,16,32,32,248,18,89,137,72,72,0, - 48,16,16,32,32,248,2,122,138,36,24,40,4,60,66,66, - 132,132,120,2,121,137,50,76,0,92,98,66,132,132,132,2, - 121,137,32,16,0,60,66,66,132,132,120,2,121,137,8,16, - 0,60,66,66,132,132,120,2,121,137,24,36,0,60,66,66, - 132,132,120,2,121,137,50,76,0,60,66,66,132,132,120,2, - 121,137,36,36,0,60,66,66,132,132,120,19,103,135,16,16, - 0,252,0,32,32,1,120,136,2,60,70,90,164,196,120,128, - 18,105,137,32,16,0,68,68,68,136,136,116,18,105,137,8, - 16,0,68,68,68,136,136,116,18,105,137,24,36,0,68,68, - 68,136,136,116,18,105,137,40,40,0,68,68,68,136,136,116, - 0,123,139,8,16,0,66,66,132,140,116,4,132,120,0,122, - 138,64,64,92,98,66,132,196,184,128,128,0,123,139,36,36, - 0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Or[1029] U8G_FONT_SECTION("u8g_font_8x13Or") = { - 1,8,13,0,254,9,1,98,2,206,32,127,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13r[1028] U8G_FONT_SECTION("u8g_font_8x13r") = { - 1,8,13,0,254,9,1,97,2,205,32,127,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=15 x= 8 y=10 dx= 9 dy= 0 ascent=12 len=30 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[3804] U8G_FONT_SECTION("u8g_font_9x15_67_75") = { - 0,9,15,0,253,4,1,255,4,34,32,255,0,12,253,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,11,11,9,1,255,16,40,68,238,68,238,40,40,40, - 40,56,7,11,11,9,1,255,16,40,68,238,68,238,40,40, - 108,68,124,9,7,14,9,0,1,132,0,134,0,253,0,128, - 128,253,0,134,0,132,0,7,7,7,9,1,0,254,128,188, - 176,168,164,130,7,7,7,9,1,0,130,74,42,26,122,2, - 254,7,11,11,9,1,255,16,40,68,238,40,40,40,238,68, - 40,16,9,7,14,9,0,1,4,0,50,0,73,0,255,128, - 73,0,50,0,4,0,9,10,20,9,0,0,34,0,39,0, - 42,128,34,0,34,0,34,0,34,0,170,0,114,0,34,0, - 7,13,13,9,1,254,8,4,254,4,8,4,254,4,8,4, - 254,4,8,8,5,5,9,0,2,36,68,255,68,36,8,5, - 5,9,0,2,36,34,255,34,36,9,5,10,9,0,2,42, - 0,73,0,255,128,73,0,42,0,8,5,5,9,0,2,42, - 74,255,74,42,8,5,5,9,0,2,84,82,255,82,84,9, - 5,10,9,0,2,85,0,148,128,255,128,148,128,85,0,7, - 7,7,9,1,1,16,48,80,158,80,48,16,7,7,7,9, - 1,1,16,24,20,242,20,24,16,8,5,5,9,0,2,36, - 102,189,102,36,9,7,14,9,0,5,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,2,4,9,0,253,255,128, - 255,128,9,4,8,9,0,253,255,128,255,128,255,128,255,128, - 9,6,12,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,9,8,16,9,0,253,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,9,18,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,11,22,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,13,26,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,15,30,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 8,15,15,9,0,253,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,15,15,9,0,253,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,6,15,15,9,0,253, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 15,15,9,0,253,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,3,15,15,9,0,253,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,2,15,15,9,0,253,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,1,15, - 15,9,0,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,15,15,9,5,253,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,15,30,9,0,253,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,0,0,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,9,15,30,9, - 0,253,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 85,0,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 9,15,30,9,0,253,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,170,128,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,9,2,4,9,0,10,255,128,255,128,1,15, - 15,9,8,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,8,8,9,0,253,248,248,248,248,248,248,248, - 248,4,8,8,9,5,253,240,240,240,240,240,240,240,240,5, - 7,7,9,0,5,248,248,248,248,248,248,248,9,15,30,9, - 0,253,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,15,30,9,0,253,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,9,15,30,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,4,7,7,9, - 5,5,240,240,240,240,240,240,240,9,15,30,9,0,253,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,9,15,30, - 9,0,253,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56,7,7,7,9,1,1,56,116, - 242,242,242,116,56,7,7,7,9,1,1,56,92,158,158,158, - 92,56,7,7,7,9,1,1,56,68,130,254,254,124,56,7, - 7,7,9,1,1,56,124,254,254,130,68,56,7,7,7,9, - 1,1,56,92,158,158,130,68,56,7,7,7,9,1,1,56, - 92,158,254,254,124,56,4,7,7,9,1,1,48,112,240,240, - 240,112,48,4,7,7,9,4,1,192,224,240,240,240,224,192, - 9,15,30,9,0,253,255,128,255,128,255,128,255,128,255,128, - 227,128,193,128,193,128,193,128,227,128,255,128,255,128,255,128, - 255,128,255,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,227,128,221,128,190,128,190,128,190,128,221,128,227,128, - 255,128,255,128,255,128,255,128,9,8,16,9,0,4,255,128, - 255,128,255,128,255,128,227,128,221,128,190,128,190,128,9,8, - 16,9,0,253,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,4,4,4,9,1,4,48,64,128,128,4,4, - 4,9,4,4,192,32,16,16,4,4,4,9,4,1,16,16, - 32,192,4,4,4,9,1,1,128,128,64,48,7,4,4,9, - 1,4,56,68,130,130,7,4,4,9,1,1,130,130,68,56, - 7,7,7,9,1,1,2,6,14,30,62,126,254,7,7,7, - 9,1,1,128,192,224,240,248,252,254,7,7,7,9,1,1, - 254,252,248,240,224,192,128,7,7,7,9,1,1,254,126,62, - 30,14,6,2,5,5,5,9,2,2,112,136,136,136,112,7, - 7,7,9,1,1,254,242,242,242,242,242,254,7,7,7,9, - 1,1,254,158,158,158,158,158,254,7,7,7,9,1,1,254, - 254,250,242,226,194,254,7,7,7,9,1,1,254,134,142,158, - 190,254,254,7,7,7,9,1,1,254,146,146,146,146,146,254, - 9,10,20,9,0,0,8,0,8,0,20,0,20,0,34,0, - 42,0,93,0,73,0,128,128,255,128,9,10,20,9,0,0, - 8,0,8,0,28,0,28,0,58,0,58,0,121,0,121,0, - 248,128,255,128,9,10,20,9,0,0,8,0,8,0,28,0, - 28,0,46,0,46,0,79,0,79,0,143,128,255,128,9,9, - 18,9,0,0,62,0,65,0,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,7,7,7,9,1,1,254,146,146,242, - 130,130,254,7,7,7,9,1,1,254,130,130,242,146,146,254, - 7,7,7,9,1,1,254,130,130,158,146,146,254,7,7,7, - 9,1,1,254,146,146,158,130,130,254,7,7,7,9,1,1, - 124,146,146,242,130,130,124,7,7,7,9,1,1,124,130,130, - 242,146,146,124,7,7,7,9,1,1,124,130,130,158,146,146, - 124,7,7,7,9,1,1,124,146,146,158,130,130,124,6,6, - 6,9,1,1,252,136,144,160,192,128,6,6,6,9,1,1, - 252,68,36,20,12,4,6,6,6,9,1,1,128,192,160,144, - 136,252,6,6,6,9,1,1,252,132,132,132,132,252,6,6, - 6,9,1,1,252,252,252,252,252,252,5,5,5,9,2,1, - 248,136,136,136,248,5,5,5,9,2,1,248,248,248,248,248, - 6,6,6,9,1,1,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_75r[792] U8G_FONT_SECTION("u8g_font_9x15_75r") = { - 0,9,15,0,253,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[3795] U8G_FONT_SECTION("u8g_font_9x15_78_79") = { - 0,9,15,0,253,9,2,231,4,175,32,255,0,12,254,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,7,7,7,9,1,0,130,132,136,144,160, - 192,254,9,10,20,9,0,0,8,0,8,0,20,0,20,0, - 42,0,42,0,85,0,93,0,128,128,255,128,7,10,10,9, - 1,0,16,16,16,16,16,16,16,16,16,254,7,7,7,9, - 1,1,62,64,132,138,132,64,62,7,7,7,9,1,1,248, - 4,66,162,66,4,248,5,12,12,9,2,255,112,136,136,16, - 16,32,32,64,64,128,128,112,5,12,12,9,2,255,112,136, - 136,64,64,32,32,16,16,8,8,112,7,8,8,9,1,0, - 130,146,84,68,40,40,16,16,8,10,10,9,0,255,128,143, - 144,80,80,80,80,47,32,32,8,10,10,9,0,255,1,241, - 9,10,10,10,10,244,4,4,3,10,10,9,3,0,64,64, - 64,64,224,64,64,64,64,64,255,255,255,255,255,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,136,128,65,0,34, - 0,20,0,8,0,7,8,8,9,1,0,16,16,40,40,68, - 84,146,130,7,7,7,9,1,1,146,146,146,146,146,84,56, - 7,7,7,9,1,1,2,2,2,18,2,2,254,7,7,7, - 9,1,1,254,128,128,144,128,128,128,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,9,13,26,9,0,254,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,9,13,26,9,0,254,255,128, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,7,7,7,9,1,1,40,40, - 238,40,238,40,40,7,7,7,9,1,1,40,40,40,238,40, - 40,40,7,3,3,9,1,3,64,190,64,9,5,10,9,0, - 2,128,0,128,0,255,128,128,0,128,0,9,5,10,9,0, - 2,0,128,0,128,255,128,0,128,0,128,5,10,10,9,2, - 0,32,80,32,32,32,32,32,32,32,248,5,9,9,9,2, - 0,32,32,80,80,248,80,80,32,32,7,9,9,9,1,0, - 16,16,16,40,198,40,16,16,16,8,9,9,9,0,0,8, - 8,8,20,227,20,8,8,8,8,9,9,9,1,0,16,16, - 16,40,199,40,16,16,16,8,7,7,9,0,1,127,65,65, - 193,65,65,127,8,7,7,9,1,1,254,130,130,131,130,130, - 254,5,12,12,9,2,255,248,160,160,160,160,160,160,160,160, - 160,160,248,5,12,12,9,2,255,248,40,40,40,40,40,40, - 40,40,40,40,248,3,10,10,9,3,0,32,32,64,64,128, - 128,64,64,32,32,3,10,10,9,3,0,128,128,64,64,32, - 32,64,64,128,128,6,10,10,9,1,0,36,36,72,72,144, - 144,72,72,36,36,6,10,10,9,2,0,144,144,72,72,36, - 36,72,72,144,144,255,255,255,255,9,11,22,9,0,0,8, - 0,20,0,54,0,85,0,213,128,85,0,85,0,85,0,85, - 0,85,0,85,0,9,11,22,9,0,255,85,0,85,0,85, - 0,85,0,85,0,85,0,213,128,85,0,54,0,20,0,8, - 0,8,8,8,9,0,0,28,34,169,113,33,1,34,28,8, - 8,8,9,0,0,56,68,149,142,132,128,68,56,9,5,10, - 9,0,2,114,0,169,0,255,128,169,0,114,0,9,5,10, - 9,0,2,32,0,64,0,255,128,64,0,32,0,9,5,10, - 9,0,2,2,0,1,0,255,128,1,0,2,0,9,5,10, - 9,0,2,34,0,65,0,255,128,65,0,34,0,9,7,14, - 9,0,1,16,0,32,0,127,128,128,0,127,128,32,0,16, - 0,9,7,14,9,0,1,4,0,2,0,255,0,0,128,255, - 0,2,0,4,0,9,7,14,9,0,1,20,0,34,0,127, - 0,128,128,127,0,34,0,20,0,9,5,10,9,0,2,32, - 128,64,128,255,128,64,128,32,128,9,5,10,9,0,2,130, - 0,129,0,255,128,129,0,130,0,9,7,14,9,0,1,16, - 128,32,128,127,128,128,128,127,128,32,128,16,128,9,7,14, - 9,0,1,132,0,130,0,255,0,128,128,255,0,130,0,132, - 0,9,6,12,9,0,1,2,0,1,0,85,128,170,128,1, - 0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15B[2990] U8G_FONT_SECTION("u8g_font_9x15B") = { - 0,9,15,0,253,10,1,232,3,214,32,255,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,12,2,10,10,9,4,0,192,0,192,192,192, - 192,192,192,192,192,7,8,8,9,1,0,4,124,206,208,208, - 230,124,64,8,10,10,9,0,255,30,51,48,48,124,48,48, - 248,191,224,7,7,7,9,1,2,198,254,108,68,108,254,198, - 8,10,10,9,0,0,195,195,102,60,126,24,126,24,24,24, - 2,11,11,9,4,255,192,192,192,192,192,0,0,192,192,192, - 192,6,11,11,9,1,255,120,204,192,120,204,204,204,120,12, - 204,120,6,2,2,9,1,9,204,204,8,11,11,9,0,0, - 60,126,195,189,165,161,165,189,195,126,60,5,7,7,9,1, - 3,240,24,248,152,248,0,248,8,8,8,9,0,1,27,54, - 108,216,216,108,54,27,7,5,5,9,1,2,254,254,6,6, - 6,6,1,1,9,1,4,252,8,11,11,9,0,0,60,126, - 195,189,165,189,169,173,195,126,60,6,2,2,9,1,9,252, - 252,6,4,4,9,2,6,120,204,204,120,8,10,10,9,0, - 0,24,24,24,255,255,24,24,24,255,255,5,7,7,9,1, - 4,112,152,24,48,96,192,248,5,7,7,9,1,4,112,152, - 24,48,24,152,112,4,3,3,9,2,8,48,96,192,7,10, - 10,9,1,253,198,198,198,198,198,238,250,192,192,192,7,10, - 10,9,1,0,126,254,246,246,246,118,54,54,54,54,3,3, - 3,9,3,3,64,224,64,5,3,3,9,2,253,24,216,112, - 4,7,7,9,1,4,96,224,96,96,96,96,240,5,6,6, - 9,1,4,112,216,216,112,0,248,8,8,8,9,0,1,216, - 108,54,27,27,54,108,216,8,11,11,9,0,0,96,224,96, - 96,97,99,247,15,27,31,3,8,11,11,9,0,0,96,224, - 96,96,110,115,243,6,12,24,31,8,11,11,9,0,0,112, - 152,24,48,25,155,119,15,27,31,3,7,10,10,9,1,0, - 24,24,0,24,48,96,192,198,198,124,8,12,12,9,0,0, - 96,48,24,0,60,102,195,195,255,195,195,195,8,12,12,9, - 0,0,6,12,24,0,60,102,195,195,255,195,195,195,8,12, - 12,9,0,0,24,60,102,0,60,102,195,195,255,195,195,195, - 8,12,12,9,0,0,50,126,76,0,60,102,195,195,255,195, - 195,195,8,11,11,9,0,0,102,102,0,60,102,195,195,255, - 195,195,195,8,12,12,9,0,0,24,36,36,24,60,102,195, - 195,255,195,195,195,8,10,10,9,0,0,31,60,108,108,204, - 255,204,204,204,207,8,13,13,9,0,253,62,99,193,192,192, - 192,192,193,99,62,12,108,56,7,12,12,9,1,0,96,48, - 24,0,254,192,192,252,192,192,192,254,7,12,12,9,1,0, - 12,24,48,0,254,192,192,252,192,192,192,254,7,12,12,9, - 1,0,24,60,102,0,254,192,192,252,192,192,192,254,7,11, - 11,9,1,0,102,102,0,254,192,192,252,192,192,192,254,6, - 12,12,9,1,0,192,96,48,0,252,48,48,48,48,48,48, - 252,6,12,12,9,1,0,24,48,96,0,252,48,48,48,48, - 48,48,252,6,12,12,9,1,0,48,120,204,0,252,48,48, - 48,48,48,48,252,6,11,11,9,1,0,204,204,0,252,48, - 48,48,48,48,48,252,9,10,20,9,0,0,126,0,99,0, - 97,128,97,128,249,128,249,128,97,128,97,128,99,0,126,0, - 8,12,12,9,0,0,50,126,76,0,195,227,243,251,223,207, - 199,195,8,12,12,9,0,0,96,48,24,0,60,102,195,195, - 195,195,102,60,8,12,12,9,0,0,6,12,24,0,60,102, - 195,195,195,195,102,60,8,12,12,9,0,0,24,60,102,0, - 60,102,195,195,195,195,102,60,8,12,12,9,0,0,50,126, - 76,0,60,102,195,195,195,195,102,60,8,11,11,9,0,0, - 102,102,0,60,102,195,195,195,195,102,60,7,8,8,9,1, - 0,130,198,108,56,56,108,198,130,8,12,12,9,0,255,1, - 63,102,199,203,203,211,211,227,102,252,128,8,12,12,9,0, - 0,96,48,24,0,195,195,195,195,195,195,102,60,8,12,12, - 9,0,0,6,12,24,0,195,195,195,195,195,195,102,60,8, - 12,12,9,0,0,24,60,102,0,195,195,195,195,195,195,102, - 60,8,11,11,9,0,0,102,102,0,195,195,195,195,195,195, - 102,60,8,12,12,9,0,0,6,12,24,0,195,102,60,24, - 24,24,24,24,7,10,10,9,1,0,240,96,124,102,102,102, - 124,96,96,240,7,10,10,9,1,0,60,102,198,204,216,204, - 198,198,198,220,8,11,11,9,0,0,96,48,24,0,62,67, - 3,127,195,199,123,8,11,11,9,0,0,12,24,48,0,62, - 67,3,127,195,199,123,8,11,11,9,0,0,24,60,102,0, - 62,67,3,127,195,199,123,8,11,11,9,0,0,50,126,76, - 0,62,67,3,127,195,199,123,8,10,10,9,0,0,102,102, - 0,62,67,3,127,195,199,123,8,11,11,9,0,0,24,36, - 36,24,62,67,3,127,195,199,123,8,7,7,9,0,0,118, - 155,27,126,216,217,110,8,10,10,9,0,253,62,99,192,192, - 192,99,62,12,108,56,8,11,11,9,0,0,96,48,24,0, - 60,102,195,255,192,99,62,8,11,11,9,0,0,12,24,48, - 0,60,102,195,255,192,99,62,8,11,11,9,0,0,24,60, - 102,0,60,102,195,255,192,99,62,8,10,10,9,0,0,102, - 102,0,60,102,195,255,192,99,62,6,11,11,9,1,0,192, - 96,48,0,112,48,48,48,48,48,252,6,11,11,9,1,0, - 24,48,96,0,112,48,48,48,48,48,252,6,11,11,9,1, - 0,48,120,204,0,112,48,48,48,48,48,252,6,10,10,9, - 1,0,204,204,0,112,48,48,48,48,48,252,8,12,12,9, - 0,0,136,216,112,112,216,140,62,103,195,195,102,60,8,11, - 11,9,0,0,50,126,76,0,220,230,195,195,195,195,195,8, - 11,11,9,0,0,96,48,24,0,60,102,195,195,195,102,60, - 8,11,11,9,0,0,12,24,48,0,60,102,195,195,195,102, - 60,8,11,11,9,0,0,24,60,102,0,60,102,195,195,195, - 102,60,8,11,11,9,0,0,50,126,76,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,102,102,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,24,24,0,0,255,255,0, - 0,24,24,8,9,9,9,0,255,1,63,102,207,219,243,102, - 252,128,8,11,11,9,0,0,96,48,24,0,195,195,195,195, - 195,103,59,8,11,11,9,0,0,12,24,48,0,195,195,195, - 195,195,103,59,8,11,11,9,0,0,24,60,102,0,195,195, - 195,195,195,103,59,8,10,10,9,0,0,102,102,0,195,195, - 195,195,195,103,59,8,14,14,9,0,253,12,24,48,0,195, - 195,195,195,195,103,59,3,198,124,7,12,12,9,1,253,224, - 96,96,124,102,102,102,102,124,96,96,224,8,13,13,9,0, - 253,102,102,0,195,195,195,195,195,103,59,3,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 3 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15Br[1423] U8G_FONT_SECTION("u8g_font_9x15Br") = { - 0,9,15,0,253,10,1,232,3,214,32,127,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=14 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15[2959] U8G_FONT_SECTION("u8g_font_9x15") = { - 0,9,15,0,253,10,1,232,3,216,32,255,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,12,1,11,11,9,4,0,128, - 128,0,0,128,128,128,128,128,128,128,6,8,8,9,1,0, - 8,120,148,144,160,164,120,64,7,10,10,9,1,0,28,34, - 32,32,248,32,32,96,162,92,7,6,6,9,1,3,130,124, - 68,68,124,130,7,10,10,9,1,0,130,130,68,40,124,16, - 124,16,16,16,1,11,11,9,4,255,128,128,128,128,128,0, - 128,128,128,128,128,4,11,11,9,2,255,96,144,128,96,144, - 144,144,96,16,144,96,5,2,2,9,2,9,136,136,8,9, - 9,9,0,1,60,66,153,165,161,165,153,66,60,5,7,7, - 9,1,3,96,144,112,144,120,0,248,7,8,8,9,1,1, - 18,36,72,144,144,72,36,18,6,4,4,9,1,2,252,4, - 4,4,5,1,1,9,2,4,248,8,9,9,9,0,1,60, - 66,185,165,185,169,165,66,60,6,1,1,9,1,9,252,4, - 4,4,9,3,6,96,144,144,96,7,9,9,9,1,1,16, - 16,16,254,16,16,16,0,254,4,6,6,9,1,4,96,144, - 16,96,128,240,4,6,6,9,1,4,96,144,32,16,144,96, - 3,3,3,9,3,8,32,64,128,7,9,9,9,1,254,130, - 130,130,130,130,198,186,128,128,7,10,10,9,1,0,126,138, - 138,138,122,10,10,10,10,10,2,2,2,9,4,4,192,192, - 4,3,3,9,2,253,48,144,96,3,6,6,9,1,4,64, - 192,64,64,64,224,5,6,6,9,1,4,112,136,136,112,0, - 248,7,8,8,9,1,1,144,72,36,18,18,36,72,144,7, - 10,10,9,1,0,64,192,64,64,66,230,10,18,26,6,7, - 10,10,9,1,0,64,192,64,64,76,242,2,12,16,30,7, - 10,10,9,1,0,96,144,32,16,146,102,10,18,26,6,7, - 10,10,9,1,0,16,0,16,16,32,64,128,130,130,124,7, - 12,12,9,1,0,64,32,16,0,56,68,130,130,254,130,130, - 130,7,12,12,9,1,0,4,8,16,0,56,68,130,130,254, - 130,130,130,7,12,12,9,1,0,16,40,68,0,56,68,130, - 130,254,130,130,130,7,11,11,9,1,0,98,156,0,56,68, - 130,130,254,130,130,130,7,11,11,9,1,0,68,68,0,56, - 68,130,130,254,130,130,130,7,11,11,9,1,0,56,68,56, - 40,68,130,130,254,130,130,130,7,10,10,9,1,0,110,144, - 144,144,144,252,144,144,144,158,7,13,13,9,1,253,124,130, - 128,128,128,128,128,128,130,124,24,72,48,7,12,12,9,1, - 0,64,32,16,0,254,64,64,120,64,64,64,254,7,12,12, - 9,1,0,4,8,16,0,254,64,64,120,64,64,64,254,7, - 12,12,9,1,0,16,40,68,0,254,64,64,120,64,64,64, - 254,7,11,11,9,1,0,68,68,0,254,64,64,120,64,64, - 64,254,5,12,12,9,2,0,128,64,32,0,248,32,32,32, - 32,32,32,248,5,12,12,9,2,0,8,16,32,0,248,32, - 32,32,32,32,32,248,5,12,12,9,2,0,32,80,136,0, - 248,32,32,32,32,32,32,248,5,11,11,9,2,0,136,136, - 0,248,32,32,32,32,32,32,248,8,10,10,9,0,0,124, - 66,65,65,225,65,65,65,66,124,7,11,11,9,1,0,98, - 156,0,130,194,162,146,146,138,134,130,7,12,12,9,1,0, - 64,32,16,0,124,130,130,130,130,130,130,124,7,12,12,9, - 1,0,4,8,16,0,124,130,130,130,130,130,130,124,7,12, - 12,9,1,0,16,40,68,0,124,130,130,130,130,130,130,124, - 7,11,11,9,1,0,98,156,0,124,130,130,130,130,130,130, - 124,7,11,11,9,1,0,68,68,0,124,130,130,130,130,130, - 130,124,7,7,7,9,1,1,130,68,40,16,40,68,130,7, - 12,12,9,1,255,2,124,134,138,138,146,146,162,162,194,124, - 128,7,12,12,9,1,0,64,32,16,0,130,130,130,130,130, - 130,130,124,7,12,12,9,1,0,4,8,16,0,130,130,130, - 130,130,130,130,124,7,12,12,9,1,0,16,40,68,0,130, - 130,130,130,130,130,130,124,7,11,11,9,1,0,68,68,0, - 130,130,130,130,130,130,130,124,7,12,12,9,1,0,4,8, - 16,0,130,130,68,40,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,4,8,16,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,50,76,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,68,68,0,124,2,2,126,130,134,122,7,11,11, - 9,1,0,24,36,24,0,124,2,2,126,130,134,122,7,7, - 7,9,1,0,108,146,18,124,144,146,110,7,10,10,9,1, - 253,124,130,128,128,128,130,124,24,72,48,7,11,11,9,1, - 0,64,32,16,0,124,130,130,254,128,128,124,7,11,11,9, - 1,0,4,8,16,0,124,130,130,254,128,128,124,7,11,11, - 9,1,0,16,40,68,0,124,130,130,254,128,128,124,7,10, - 10,9,1,0,68,68,0,124,130,130,254,128,128,124,5,11, - 11,9,2,0,128,64,32,0,224,32,32,32,32,32,248,5, - 11,11,9,2,0,16,32,64,0,224,32,32,32,32,32,248, - 6,11,11,9,1,0,32,80,136,0,112,16,16,16,16,16, - 124,5,10,10,9,2,0,144,144,0,224,32,32,32,32,32, - 248,7,11,11,9,1,0,72,48,80,8,124,130,130,130,130, - 130,124,7,10,10,9,1,0,98,156,0,188,194,130,130,130, - 130,130,7,11,11,9,1,0,64,32,16,0,124,130,130,130, - 130,130,124,7,11,11,9,1,0,4,8,16,0,124,130,130, - 130,130,130,124,7,11,11,9,1,0,16,40,68,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,98,156,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,68,68,0,124,130, - 130,130,130,130,124,7,9,9,9,1,0,16,56,16,0,254, - 0,16,56,16,7,9,9,9,1,255,2,124,138,138,146,162, - 162,124,128,7,11,11,9,1,0,64,32,16,0,132,132,132, - 132,132,132,122,7,11,11,9,1,0,4,8,16,0,132,132, - 132,132,132,132,122,7,11,11,9,1,0,16,40,68,0,132, - 132,132,132,132,132,122,7,10,10,9,1,0,72,72,0,132, - 132,132,132,132,132,122,6,14,14,9,1,253,8,16,32,0, - 132,132,132,132,132,140,116,4,132,120,7,12,12,9,1,253, - 128,128,128,188,194,130,130,194,188,128,128,128,6,13,13,9, - 1,253,72,72,0,132,132,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15r[1427] U8G_FONT_SECTION("u8g_font_9x15r") = { - 0,9,15,0,253,10,1,232,3,216,32,127,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=18 x= 8 y=12 dx= 9 dy= 0 ascent=14 len=36 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[3936] U8G_FONT_SECTION("u8g_font_9x18_67_75") = { - 0,9,18,0,252,4,1,255,4,34,32,255,0,14,252,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,10,10,9,1,0,16,40,68,238,68,238,40,40,40, - 56,7,11,11,9,1,255,16,40,68,238,68,238,40,40,108, - 68,124,9,7,14,9,0,1,132,0,134,0,253,0,128,128, - 253,0,134,0,132,0,7,7,7,9,1,0,252,128,184,176, - 168,132,2,7,7,7,9,1,0,128,66,42,26,58,2,126, - 7,11,11,9,1,255,16,40,68,238,40,40,40,238,68,40, - 16,9,7,14,9,0,1,4,0,50,0,73,0,255,128,73, - 0,50,0,4,0,9,10,20,9,0,0,34,0,39,0,42, - 128,34,0,34,0,34,0,34,0,170,0,114,0,34,0,7, - 13,13,9,1,254,8,4,254,4,8,4,254,4,8,4,254, - 4,8,8,5,5,9,0,2,36,68,255,68,36,8,5,5, - 9,0,2,36,34,255,34,36,9,5,10,9,0,2,42,0, - 73,0,255,128,73,0,42,0,8,5,5,9,0,2,42,74, - 255,74,42,8,5,5,9,0,2,84,82,255,82,84,9,5, - 10,9,0,2,85,0,148,128,255,128,148,128,85,0,7,7, - 7,9,1,1,16,48,80,158,80,48,16,7,7,7,9,1, - 1,16,24,20,242,20,24,16,8,5,5,9,0,2,36,102, - 189,102,36,9,9,18,9,0,5,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,2,4,9,0, - 252,255,128,255,128,9,4,8,9,0,252,255,128,255,128,255, - 128,255,128,9,7,14,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,9,9,18,9,0,252,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,9, - 11,22,9,0,252,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,14,28,9,0, - 252,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,9,16,32, - 9,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,9,18,36,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,8,18,18, - 9,0,252,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,18,18,9,0,252,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,254,254,254,6,18,18, - 9,0,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,5,18,18,9,0,252,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,3,18,18, - 9,0,252,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,2,18,18,9,0,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,1,18,18, - 9,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,18,18,9,5,252,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,9,17,34, - 9,0,253,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,9,18,36,9,0,252,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,9, - 18,36,9,0,252,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,9,2,4,9,0,12,255, - 128,255,128,1,18,18,9,8,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,9,9,9,0, - 252,248,248,248,248,248,248,248,248,248,4,9,9,9,5,252, - 240,240,240,240,240,240,240,240,240,5,9,9,9,0,5,248, - 248,248,248,248,248,248,248,248,9,18,36,9,0,252,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,9,18,36,9,0,252,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,9,18,36,9,0,252,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 4,9,9,9,5,5,240,240,240,240,240,240,240,240,240,9, - 18,36,9,0,252,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,9,18,36,9,0,252,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,7,7,7,9,1,1,254,254,254,254,254,254,254, - 7,7,7,9,1,1,254,130,130,130,130,130,254,7,7,7, - 9,1,1,124,130,130,130,130,130,124,7,7,7,9,1,1, - 254,130,186,186,186,130,254,7,7,7,9,1,1,254,130,254, - 130,254,130,254,7,7,7,9,1,1,254,170,170,170,170,170, - 254,7,7,7,9,1,1,254,170,254,170,254,170,254,7,7, - 7,9,1,1,254,146,138,198,162,146,254,7,7,7,9,1, - 1,254,146,162,198,138,146,254,7,7,7,9,1,1,254,214, - 138,214,162,214,254,3,3,3,9,3,3,224,224,224,3,3, - 3,9,3,3,224,160,224,9,5,10,9,0,2,255,128,255, - 128,255,128,255,128,255,128,9,5,10,9,0,2,255,128,128, - 128,128,128,128,128,255,128,5,9,9,9,2,0,248,248,248, - 248,248,248,248,248,248,5,9,9,9,2,0,248,136,136,136, - 136,136,136,136,248,9,5,10,9,0,2,127,128,127,128,255, - 128,255,0,255,0,9,5,10,9,0,2,127,128,64,128,128, - 128,129,0,255,0,9,10,20,9,0,0,8,0,8,0,28, - 0,28,0,62,0,62,0,127,0,127,0,255,128,255,128,9, - 10,20,9,0,0,8,0,8,0,20,0,20,0,34,0,34, - 0,65,0,65,0,128,128,255,128,7,7,7,9,1,1,16, - 16,56,56,124,124,254,7,7,7,9,1,1,16,16,40,40, - 68,68,254,9,9,18,9,0,0,192,0,240,0,252,0,255, - 0,255,128,255,0,252,0,240,0,192,0,9,9,18,9,0, - 0,192,0,176,0,140,0,131,0,128,128,131,0,140,0,176, - 0,192,0,7,7,7,9,1,1,128,224,248,254,248,224,128, - 7,7,7,9,1,1,128,224,152,134,152,224,128,9,5,10, - 9,0,2,224,0,252,0,255,128,252,0,224,0,9,5,10, - 9,0,2,224,0,156,0,131,128,156,0,224,0,9,10,20, - 9,0,0,255,128,255,128,127,0,127,0,62,0,62,0,28, - 0,28,0,8,0,8,0,9,10,20,9,0,0,255,128,128, - 128,65,0,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,7,7,9,1,1,254,124,124,56,56,16,16,7,7, - 7,9,1,1,254,68,68,40,40,16,16,9,9,18,9,0, - 0,1,128,7,128,31,128,127,128,255,128,127,128,31,128,7, - 128,1,128,9,9,18,9,0,0,1,128,6,128,24,128,96, - 128,128,128,96,128,24,128,6,128,1,128,7,7,7,9,1, - 1,2,14,62,254,62,14,2,7,7,7,9,1,1,2,14, - 50,194,50,14,2,9,5,10,9,0,2,3,128,31,128,255, - 128,31,128,3,128,9,5,10,9,0,2,3,128,28,128,224, - 128,28,128,3,128,9,9,18,9,0,0,8,0,28,0,62, - 0,127,0,255,128,127,0,62,0,28,0,8,0,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,128,128,65,0,34, - 0,20,0,8,0,9,9,18,9,0,0,8,0,20,0,34, - 0,73,0,156,128,73,0,34,0,20,0,8,0,7,7,7, - 9,1,1,56,68,146,186,146,68,56,5,9,9,9,2,0, - 32,32,80,80,136,80,80,32,32,7,7,7,9,1,1,56, - 68,130,130,130,68,56,7,7,7,9,1,1,16,68,0,130, - 0,68,16,7,7,7,9,1,1,56,108,170,170,170,108,56, - 7,7,7,9,1,1,56,68,146,170,146,68,56,7,7,7, - 9,1,1,56,124,254,254,254,124,56,7,7,7,9,1,1, - 56,116,242,242,242,116,56,7,7,7,9,1,1,56,92,158, - 158,158,92,56,7,7,7,9,1,1,56,68,130,254,254,124, - 56,7,7,7,9,1,1,56,124,254,254,130,68,56,7,7, - 7,9,1,1,56,92,158,158,130,68,56,7,7,7,9,1, - 1,56,92,158,254,254,124,56,4,7,7,9,1,1,48,112, - 240,240,240,112,48,4,7,7,9,4,1,192,224,240,240,240, - 224,192,9,18,36,9,0,252,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,227,128,193,128,193,128,193,128,227,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,227,128, - 221,128,190,128,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,255,128,9,10,20,9,0,4,255,128,255,128, - 255,128,255,128,255,128,255,128,227,128,221,128,190,128,190,128, - 9,9,18,9,0,252,190,128,190,128,221,128,227,128,255,128, - 255,128,255,128,255,128,255,128,4,4,4,9,1,4,48,64, - 128,128,4,4,4,9,4,4,192,32,16,16,4,4,4,9, - 4,1,16,16,32,192,4,4,4,9,1,1,128,128,64,48, - 7,4,4,9,1,4,56,68,130,130,7,4,4,9,1,1, - 130,130,68,56,7,7,7,9,1,1,2,6,14,30,62,126, - 254,7,7,7,9,1,1,128,192,224,240,248,252,254,7,7, - 7,9,1,1,254,252,248,240,224,192,128,7,7,7,9,1, - 1,254,126,62,30,14,6,2,5,5,5,9,2,2,112,136, - 136,136,112,7,7,7,9,1,1,254,242,242,242,242,242,254, - 7,7,7,9,1,1,254,158,158,158,158,158,254,7,7,7, - 9,1,1,254,254,250,242,226,194,254,7,7,7,9,1,1, - 254,134,142,158,190,254,254,7,7,7,9,1,1,254,146,146, - 146,146,146,254,9,10,20,9,0,0,8,0,8,0,20,0, - 20,0,34,0,42,0,93,0,73,0,128,128,255,128,9,10, - 20,9,0,0,8,0,8,0,28,0,28,0,58,0,58,0, - 121,0,121,0,248,128,255,128,9,10,20,9,0,0,8,0, - 8,0,28,0,28,0,46,0,46,0,79,0,79,0,143,128, - 255,128,9,9,18,9,0,0,62,0,65,0,128,128,128,128, - 128,128,128,128,128,128,65,0,62,0,7,7,7,9,1,1, - 254,146,146,242,130,130,254,7,7,7,9,1,1,254,130,130, - 242,146,146,254,7,7,7,9,1,1,254,130,130,158,146,146, - 254,7,7,7,9,1,1,254,146,146,158,130,130,254,7,7, - 7,9,1,1,124,146,146,242,130,130,124,7,7,7,9,1, - 1,124,130,130,242,146,146,124,7,7,7,9,1,1,124,130, - 130,158,146,146,124,7,7,7,9,1,1,124,146,146,158,130, - 130,124,6,6,6,9,1,1,252,136,144,160,192,128,6,6, - 6,9,1,1,252,68,36,20,12,4,6,6,6,9,1,1, - 128,192,160,144,136,252,6,6,6,9,1,1,252,132,132,132, - 132,252,6,6,6,9,1,1,252,252,252,252,252,252,5,5, - 5,9,2,1,248,136,136,136,248,5,5,5,9,2,1,248, - 248,248,248,248,6,6,6,9,1,1,4,12,20,36,68,252 - }; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_75r[792] U8G_FONT_SECTION("u8g_font_9x18_75r") = { - 0,9,18,0,252,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=12 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[3336] U8G_FONT_SECTION("u8g_font_9x18_78_79") = { - 0,9,18,0,252,9,2,231,4,175,32,255,0,12,255,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,5,12,12,9,2,255,248,160,160,160, - 160,160,160,160,160,160,160,248,5,12,12,9,2,255,248,40, - 40,40,40,40,40,40,40,40,40,248,3,10,10,9,3,0, - 32,32,64,64,128,128,64,64,32,32,3,10,10,9,3,0, - 128,128,64,64,32,32,64,64,128,128,6,10,10,9,1,0, - 36,36,72,72,144,144,72,72,36,36,6,10,10,9,2,0, - 144,144,72,72,36,36,72,72,144,144,255,255,255,255,9,11, - 22,9,0,0,8,0,20,0,54,0,85,0,213,128,85,0, - 85,0,85,0,85,0,85,0,85,0,9,11,22,9,0,255, - 85,0,85,0,85,0,85,0,85,0,85,0,213,128,85,0, - 54,0,20,0,8,0,8,8,8,9,0,0,28,34,169,113, - 33,1,34,28,8,8,8,9,0,0,56,68,149,142,132,128, - 68,56,9,5,10,9,0,2,114,0,169,0,255,128,169,0, - 114,0,9,5,10,9,0,2,32,0,64,0,255,128,64,0, - 32,0,9,5,10,9,0,2,2,0,1,0,255,128,1,0, - 2,0,9,5,10,9,0,2,34,0,65,0,255,128,65,0, - 34,0,9,7,14,9,0,1,16,0,32,0,127,128,128,0, - 127,128,32,0,16,0,9,7,14,9,0,1,4,0,2,0, - 255,0,0,128,255,0,2,0,4,0,9,7,14,9,0,1, - 20,0,34,0,127,0,128,128,127,0,34,0,20,0,9,5, - 10,9,0,2,32,128,64,128,255,128,64,128,32,128,9,5, - 10,9,0,2,130,0,129,0,255,128,129,0,130,0,9,7, - 14,9,0,1,16,128,32,128,127,128,128,128,127,128,32,128, - 16,128,9,7,14,9,0,1,132,0,130,0,255,0,128,128, - 255,0,130,0,132,0,9,6,12,9,0,1,2,0,1,0, - 85,128,170,128,1,0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18B[3026] U8G_FONT_SECTION("u8g_font_9x18B") = { - 0,9,18,0,252,10,1,242,3,225,32,255,253,14,252,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,9,0,14, - 2,10,10,9,4,0,192,0,192,192,192,192,192,192,192,192, - 7,8,8,9,1,0,4,124,206,208,208,230,124,64,8,10, - 10,9,0,255,30,51,48,48,124,48,48,248,191,224,7,7, - 7,9,1,2,198,254,108,68,108,254,198,8,10,10,9,0, - 0,195,195,102,60,126,24,126,24,24,24,2,11,11,9,3, - 255,192,192,192,192,192,0,192,192,192,192,192,6,11,11,9, - 1,255,120,204,192,120,204,204,204,120,12,204,120,5,2,2, - 9,2,11,216,216,8,11,11,9,0,0,60,126,195,189,165, - 161,165,189,195,126,60,5,7,7,9,1,3,112,24,120,216, - 120,0,248,8,8,8,9,0,1,27,54,108,216,216,108,54, - 27,7,5,5,9,1,2,254,254,6,6,6,6,1,1,9, - 1,4,252,8,11,11,9,0,0,60,126,195,189,165,189,169, - 173,195,126,60,6,2,2,9,1,9,252,252,5,4,4,9, - 1,8,112,216,216,112,6,9,9,9,1,1,48,48,48,252, - 48,48,48,0,252,5,6,6,9,1,4,112,216,24,48,96, - 248,5,6,6,9,1,4,112,216,48,24,216,112,4,3,3, - 9,2,10,48,96,192,7,9,9,9,1,254,198,198,198,198, - 206,222,246,192,192,7,10,10,9,1,0,126,246,246,246,118, - 54,54,54,54,54,3,2,2,9,3,4,224,224,6,3,3, - 9,1,253,24,204,120,4,6,6,9,1,4,96,224,96,96, - 96,240,5,7,7,9,1,3,112,216,216,216,112,0,248,8, - 8,8,9,0,1,216,108,54,27,27,54,108,216,8,11,11, - 9,0,0,96,224,96,96,97,99,247,15,27,31,3,8,11, - 11,9,0,0,96,224,96,96,110,115,243,6,12,24,31,8, - 11,11,9,0,0,112,152,24,48,25,155,119,15,27,31,3, - 7,10,10,9,1,0,24,24,0,24,48,96,192,198,198,124, - 7,14,14,9,1,0,96,48,24,0,16,56,56,56,108,124, - 108,198,198,198,7,14,14,9,1,0,12,24,48,0,16,56, - 56,56,108,124,108,198,198,198,7,14,14,9,1,0,16,56, - 108,0,16,56,56,56,108,124,108,198,198,198,7,13,13,9, - 1,0,118,220,0,16,56,56,56,108,124,108,198,198,198,7, - 13,13,9,1,0,108,108,0,16,56,56,56,108,124,108,198, - 198,198,7,14,14,9,1,0,56,108,108,56,16,56,56,56, - 108,124,108,198,198,198,7,10,10,9,1,0,62,60,108,108, - 110,252,204,204,204,206,7,14,14,9,1,252,60,102,192,192, - 192,192,192,192,102,60,24,12,108,56,7,14,14,9,1,0, - 96,48,24,0,254,192,192,192,248,192,192,192,192,254,7,14, - 14,9,1,0,12,24,48,0,254,192,192,192,248,192,192,192, - 192,254,7,14,14,9,1,0,16,56,108,0,254,192,192,192, - 248,192,192,192,192,254,7,13,13,9,1,0,108,108,0,254, - 192,192,192,248,192,192,192,192,254,6,14,14,9,1,0,96, - 48,24,0,252,48,48,48,48,48,48,48,48,252,6,14,14, - 9,1,0,12,24,48,0,252,48,48,48,48,48,48,48,48, - 252,6,14,14,9,1,0,16,56,108,0,252,48,48,48,48, - 48,48,48,48,252,6,13,13,9,1,0,108,108,0,252,48, - 48,48,48,48,48,48,48,252,8,10,10,9,0,0,124,102, - 99,99,243,99,99,99,102,124,7,13,13,9,1,0,118,220, - 0,198,198,230,246,222,206,198,198,198,198,7,14,14,9,1, - 0,96,48,24,0,124,198,198,198,198,198,198,198,198,124,7, - 14,14,9,1,0,12,24,48,0,124,198,198,198,198,198,198, - 198,198,124,7,14,14,9,1,0,16,56,108,0,124,198,198, - 198,198,198,198,198,198,124,7,13,13,9,1,0,118,220,0, - 124,198,198,198,198,198,198,198,198,124,7,13,13,9,1,0, - 108,108,0,124,198,198,198,198,198,198,198,198,124,8,7,7, - 9,0,1,195,102,60,24,60,102,195,7,12,12,9,1,255, - 6,126,206,206,222,222,246,246,230,230,252,192,7,14,14,9, - 1,0,96,48,24,0,198,198,198,198,198,198,198,198,108,56, - 7,14,14,9,1,0,12,24,48,0,198,198,198,198,198,198, - 198,198,108,56,7,14,14,9,1,0,16,56,108,0,198,198, - 198,198,198,198,198,198,108,56,7,13,13,9,1,0,108,108, - 0,198,198,198,198,198,198,198,198,108,56,8,14,14,9,0, - 0,12,24,48,0,195,195,102,60,24,24,24,24,24,24,7, - 10,10,9,1,0,192,192,252,198,198,198,252,192,192,192,7, - 10,10,9,1,0,60,102,102,102,236,102,102,102,102,108,7, - 11,11,9,1,0,96,48,24,0,124,6,6,126,198,198,126, - 7,11,11,9,1,0,12,24,48,0,124,6,6,126,198,198, - 126,7,11,11,9,1,0,16,56,108,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,118,220,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,108,108,0,124,6,6,126,198, - 198,126,7,11,11,9,1,0,56,108,56,0,124,6,6,126, - 198,198,126,8,7,7,9,0,0,118,27,27,127,216,219,118, - 7,11,11,9,1,252,124,198,192,192,192,198,124,24,12,108, - 56,7,11,11,9,1,0,96,48,24,0,124,198,198,254,192, - 198,124,7,11,11,9,1,0,12,24,48,0,124,198,198,254, - 192,198,124,7,11,11,9,1,0,16,56,108,0,124,198,198, - 254,192,198,124,7,10,10,9,1,0,108,108,0,124,198,198, - 254,192,198,124,6,11,11,9,1,0,192,96,48,0,240,48, - 48,48,48,48,252,6,11,11,9,1,0,12,24,48,0,240, - 48,48,48,48,48,252,6,11,11,9,1,0,32,112,216,0, - 240,48,48,48,48,48,252,6,10,10,9,1,0,108,108,0, - 240,48,48,48,48,48,252,7,11,11,9,1,0,108,56,56, - 108,12,126,198,198,198,198,124,7,10,10,9,1,0,118,220, - 0,220,230,198,198,198,198,198,7,11,11,9,1,0,96,48, - 24,0,56,108,198,198,198,108,56,7,11,11,9,1,0,12, - 24,48,0,56,108,198,198,198,108,56,7,11,11,9,1,0, - 16,56,108,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,118,220,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,108,108,0,56,108,198,198,198,108,56,8,7,7,9,0, - 1,24,24,0,255,0,24,24,8,9,9,9,0,255,1,63, - 102,207,219,243,102,252,128,7,11,11,9,1,0,96,48,24, - 0,198,198,198,198,198,198,126,7,11,11,9,1,0,12,24, - 48,0,198,198,198,198,198,198,126,7,11,11,9,1,0,16, - 56,108,0,198,198,198,198,198,198,126,7,10,10,9,1,0, - 108,108,0,198,198,198,198,198,198,126,7,14,14,9,1,253, - 12,24,48,0,198,198,108,108,108,56,56,48,176,96,7,11, - 11,9,1,254,192,192,248,204,198,198,198,204,248,192,192,7, - 13,13,9,1,253,108,108,0,198,198,108,108,108,56,56,48, - 176,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18Br[1434] U8G_FONT_SECTION("u8g_font_9x18Br") = { - 0,9,18,0,252,10,1,242,3,225,32,127,253,14,253,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=14 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18[3011] U8G_FONT_SECTION("u8g_font_9x18") = { - 0,9,18,0,252,10,1,232,3,215,32,255,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,14,1,11,11,9,4,0,128,128,0,0, - 128,128,128,128,128,128,128,6,8,8,9,1,0,8,120,148, - 144,160,164,120,64,7,10,10,9,1,0,28,34,32,32,248, - 32,32,96,162,92,7,6,6,9,1,3,130,124,68,68,124, - 130,7,10,10,9,1,0,130,130,68,40,124,16,124,16,16, - 16,1,11,11,9,4,255,128,128,128,128,128,0,128,128,128, - 128,128,4,11,11,9,2,255,96,144,128,96,144,144,144,96, - 16,144,96,3,2,2,9,3,11,160,160,8,9,9,9,0, - 1,60,66,153,165,161,165,153,66,60,5,7,7,9,1,3, - 96,144,112,144,120,0,248,7,8,8,9,1,1,18,36,72, - 144,144,72,36,18,6,4,4,9,1,2,252,4,4,4,5, - 1,1,9,2,4,248,8,9,9,9,0,1,60,66,185,165, - 189,169,165,66,60,6,1,1,9,1,9,252,4,4,4,9, - 3,6,96,144,144,96,7,9,9,9,1,1,16,16,16,254, - 16,16,16,0,254,4,6,6,9,1,4,96,144,16,96,128, - 240,4,6,6,9,1,4,96,144,32,16,144,96,3,3,3, - 9,3,10,32,64,128,7,9,9,9,1,254,130,130,130,130, - 130,198,186,128,128,7,10,10,9,1,0,126,138,138,138,122, - 10,10,10,10,10,2,2,2,9,4,4,192,192,4,3,3, - 9,2,253,32,144,96,3,6,6,9,1,4,64,192,64,64, - 64,224,5,6,6,9,1,4,112,136,136,112,0,248,7,8, - 8,9,1,1,144,72,36,18,18,36,72,144,7,10,10,9, - 1,0,64,192,64,64,66,230,10,18,26,6,7,10,10,9, - 1,0,64,192,64,64,76,242,2,12,16,30,7,10,10,9, - 1,0,96,144,32,16,146,102,10,18,26,6,7,10,10,9, - 1,0,16,0,16,16,32,64,128,130,130,124,7,14,14,9, - 1,0,32,16,8,0,16,40,40,40,68,124,68,130,130,130, - 7,14,14,9,1,0,8,16,32,0,16,40,40,40,68,124, - 68,130,130,130,7,14,14,9,1,0,16,40,68,0,16,40, - 40,40,68,124,68,130,130,130,7,13,13,9,1,0,52,88, - 0,16,40,40,40,68,124,68,130,130,130,7,13,13,9,1, - 0,40,40,0,16,40,40,40,68,124,68,130,130,130,7,14, - 14,9,1,0,16,40,40,16,16,40,40,40,68,124,68,130, - 130,130,7,10,10,9,1,0,30,40,40,40,78,120,72,136, - 136,142,7,13,13,9,1,253,60,66,128,128,128,128,128,128, - 66,60,8,36,24,7,14,14,9,1,0,32,16,8,0,254, - 128,128,128,248,128,128,128,128,254,7,14,14,9,1,0,8, - 16,32,0,254,128,128,128,248,128,128,128,128,254,7,14,14, - 9,1,0,16,40,68,0,254,128,128,128,248,128,128,128,128, - 254,7,13,13,9,1,0,40,40,0,254,128,128,128,248,128, - 128,128,128,254,5,14,14,9,2,0,64,32,16,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,9,2,0,16,32, - 64,0,248,32,32,32,32,32,32,32,32,248,5,14,14,9, - 2,0,32,80,136,0,248,32,32,32,32,32,32,32,32,248, - 5,13,13,9,2,0,80,80,0,248,32,32,32,32,32,32, - 32,32,248,7,10,10,9,1,0,120,68,66,66,242,66,66, - 66,68,120,7,13,13,9,1,0,52,88,0,130,130,194,162, - 146,138,134,130,130,130,7,14,14,9,1,0,32,16,8,0, - 124,130,130,130,130,130,130,130,130,124,7,14,14,9,1,0, - 8,16,32,0,124,130,130,130,130,130,130,130,130,124,7,14, - 14,9,1,0,16,40,68,0,124,130,130,130,130,130,130,130, - 130,124,7,13,13,9,1,0,52,88,0,124,130,130,130,130, - 130,130,130,130,124,7,13,13,9,1,0,40,40,0,124,130, - 130,130,130,130,130,130,130,124,7,7,7,9,1,1,130,68, - 40,16,40,68,130,7,12,12,9,1,255,2,124,134,138,138, - 146,146,162,162,194,124,128,7,14,14,9,1,0,32,16,8, - 0,130,130,130,130,130,130,130,130,68,56,7,14,14,9,1, - 0,8,16,32,0,130,130,130,130,130,130,130,130,68,56,7, - 14,14,9,1,0,16,40,68,0,130,130,130,130,130,130,130, - 130,68,56,7,13,13,9,1,0,40,40,0,130,130,130,130, - 130,130,130,130,68,56,7,14,14,9,1,0,8,16,32,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,8,16,32,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,52,88,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,40,40,0,124,2,2,126,130,134,122,7,12,12, - 9,1,0,16,40,40,16,0,124,2,2,126,130,134,122,7, - 7,7,9,1,0,108,18,18,126,144,146,108,7,10,10,9, - 1,253,124,130,128,128,128,130,124,16,72,48,7,11,11,9, - 1,0,32,16,8,0,124,130,130,254,128,130,124,7,11,11, - 9,1,0,8,16,32,0,124,130,130,254,128,130,124,7,11, - 11,9,1,0,16,40,68,0,124,130,130,254,128,130,124,7, - 10,10,9,1,0,40,40,0,124,130,130,254,128,130,124,5, - 12,12,9,2,0,128,64,32,0,0,224,32,32,32,32,32, - 248,5,12,12,9,2,0,16,32,64,0,0,224,32,32,32, - 32,32,248,5,12,12,9,2,0,32,80,136,0,0,224,32, - 32,32,32,32,248,5,11,11,9,2,0,80,80,0,0,224, - 32,32,32,32,32,248,7,11,11,9,1,0,72,48,80,8, - 60,68,130,130,130,68,56,7,10,10,9,1,0,52,88,0, - 188,194,130,130,130,130,130,7,11,11,9,1,0,32,16,8, - 0,124,130,130,130,130,130,124,7,11,11,9,1,0,8,16, - 32,0,124,130,130,130,130,130,124,7,11,11,9,1,0,16, - 40,68,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 52,88,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 40,40,0,124,130,130,130,130,130,124,7,9,9,9,1,0, - 16,56,16,0,254,0,16,56,16,7,9,9,9,1,255,2, - 124,138,138,146,162,162,124,128,7,11,11,9,1,0,64,32, - 16,0,130,130,130,130,130,134,122,7,11,11,9,1,0,8, - 16,32,0,130,130,130,130,130,134,122,7,11,11,9,1,0, - 16,40,68,0,130,130,130,130,130,134,122,7,10,10,9,1, - 0,40,40,0,130,130,130,130,130,134,122,7,14,14,9,1, - 253,4,8,16,0,66,66,36,36,36,24,24,16,144,96,7, - 11,11,9,1,254,128,128,184,196,130,130,130,196,184,128,128, - 7,13,13,9,1,253,36,36,0,66,66,36,36,36,24,24, - 16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=13 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18r[1424] U8G_FONT_SECTION("u8g_font_9x18r") = { - 0,9,18,0,252,10,1,232,3,215,32,127,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255 - }; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 9 x= 1 y= 5 dx=10 dy= 0 ascent= 8 len=12 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_baby[2227] U8G_FONT_SECTION("u8g_font_baby") = { - 0,10,10,255,254,5,1,108,2,200,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,1,6,6,3,1,255,128,0,128,128,128,128,4,6,6, - 5,0,255,16,112,160,160,112,64,4,6,6,5,0,0,96, - 208,64,224,64,240,4,4,4,5,0,1,240,144,144,240,5, - 7,7,6,0,255,136,80,32,112,32,112,32,1,7,7,2, - 0,255,128,128,128,0,128,128,128,4,7,7,5,0,255,112, - 128,96,144,96,16,224,3,1,1,4,0,5,160,7,7,7, - 8,0,255,56,68,154,162,154,68,56,3,3,3,4,0,4, - 96,160,224,4,3,3,5,0,1,80,160,80,5,3,3,6, - 0,1,248,8,8,2,1,1,3,0,2,192,7,7,7,8, - 0,255,56,68,178,186,170,68,56,4,1,1,5,0,5,240, - 3,3,3,4,0,4,64,160,64,3,5,5,4,0,0,64, - 224,64,0,224,3,4,4,4,0,4,192,32,64,224,3,4, - 4,4,0,4,224,32,96,224,2,2,2,3,0,5,64,128, - 5,6,6,6,0,254,144,144,144,248,128,128,5,6,6,6, - 0,0,120,232,232,104,40,40,1,1,1,3,1,2,128,3, - 3,3,4,0,254,64,32,192,3,4,4,4,0,4,64,192, - 64,224,4,4,4,5,0,4,96,144,144,96,4,3,3,5, - 0,1,160,80,160,7,6,6,8,0,0,136,144,160,42,78, - 130,7,6,6,8,0,0,136,144,164,42,68,142,9,6,12, - 10,0,0,226,0,100,0,232,0,10,128,19,128,32,128,4, - 6,6,5,0,255,32,0,32,64,144,96,4,8,8,5,0, - 0,64,32,0,96,144,144,240,144,4,8,8,5,0,0,32, - 64,0,96,144,144,240,144,4,8,8,5,0,0,96,144,0, - 96,144,144,240,144,4,8,8,5,0,0,80,160,0,96,144, - 144,240,144,4,7,7,5,0,0,80,0,96,144,144,240,144, - 4,7,7,5,0,0,96,0,96,144,144,240,144,7,5,5, - 8,0,0,126,144,156,240,158,4,7,7,5,0,254,96,144, - 128,144,96,32,64,4,8,8,5,0,0,64,32,0,240,128, - 224,128,240,4,8,8,5,0,0,32,64,0,240,128,224,128, - 240,4,8,8,5,0,0,96,144,0,240,128,224,128,240,4, - 7,7,5,0,0,80,0,240,128,224,128,240,3,8,8,4, - 0,0,128,64,0,224,64,64,64,224,3,8,8,4,0,0, - 32,64,0,224,64,64,64,224,3,8,8,4,0,0,64,160, - 0,224,64,64,64,224,3,7,7,4,0,0,160,0,224,64, - 64,64,224,5,5,5,6,0,0,112,72,232,72,112,4,8, - 8,5,0,0,80,160,0,144,144,208,176,144,4,8,8,5, - 0,0,64,32,0,96,144,144,144,96,4,8,8,5,0,0, - 32,64,0,96,144,144,144,96,4,8,8,5,0,0,96,144, - 0,96,144,144,144,96,4,8,8,5,0,0,80,160,0,96, - 144,144,144,96,4,7,7,5,0,0,80,0,96,144,144,144, - 96,3,3,3,4,0,1,160,64,160,6,5,5,7,0,0, - 48,76,120,200,48,4,8,8,5,0,0,64,32,0,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,144,144, - 96,4,8,8,5,0,0,96,144,0,144,144,144,144,96,4, - 7,7,5,0,0,80,0,144,144,144,144,96,4,9,9,5, - 0,255,32,64,0,144,144,144,112,16,96,4,6,6,5,0, - 0,128,224,144,144,224,128,4,5,5,5,0,0,96,144,160, - 144,160,4,7,7,5,0,0,64,32,0,96,144,144,112,4, - 7,7,5,0,0,32,64,0,96,144,144,112,4,7,7,5, - 0,0,96,144,0,96,144,144,112,4,7,7,5,0,0,80, - 160,0,96,144,144,112,4,6,6,5,0,0,80,0,96,144, - 144,112,4,7,7,5,0,0,96,96,0,96,144,144,112,7, - 4,4,8,0,0,108,146,148,126,3,6,6,4,0,254,96, - 128,128,96,32,64,4,7,7,5,0,0,64,32,0,96,144, - 160,112,4,7,7,5,0,0,32,64,0,96,144,160,112,4, - 7,7,5,0,0,96,144,0,96,144,160,112,4,6,6,5, - 0,0,80,0,96,144,160,112,2,6,6,3,0,0,128,64, - 0,64,64,64,2,6,6,3,0,0,64,128,0,128,128,128, - 3,6,6,4,0,0,64,160,0,64,64,64,3,5,5,4, - 0,0,160,0,64,64,64,5,6,6,6,0,0,96,24,112, - 144,144,96,4,7,7,5,0,0,80,160,0,224,144,144,144, - 4,7,7,5,0,0,64,32,0,96,144,144,96,4,7,7, - 5,0,0,32,64,0,96,144,144,96,4,7,7,5,0,0, - 96,144,0,96,144,144,96,4,7,7,5,0,0,80,160,0, - 96,144,144,96,4,6,6,5,0,0,80,0,96,144,144,96, - 5,5,5,6,0,0,32,0,248,0,32,4,4,4,5,0, - 0,96,176,208,96,4,7,7,5,0,0,64,32,0,144,144, - 144,112,4,7,7,5,0,0,32,64,0,144,144,144,112,4, - 7,7,5,0,0,96,144,0,144,144,144,112,4,6,6,5, - 0,0,80,0,144,144,144,112,4,9,9,5,0,254,32,64, - 0,144,144,144,112,16,96,4,8,8,5,0,254,128,128,224, - 144,144,224,128,128,4,8,8,5,0,254,80,0,144,144,144, - 112,16,96}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 3 dx= 5 dy= 0 ascent= 6 len= 6 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyn[189] U8G_FONT_SECTION("u8g_font_babyn") = { - 0,10,10,255,254,5,0,0,0,0,42,58,0,6,254,5, - 0,3,3,3,4,0,3,160,64,160,3,3,3,5,1,1, - 64,224,64,2,3,3,3,0,254,192,64,128,3,1,1,4, - 0,2,224,1,1,1,2,0,0,128,3,6,6,4,0,255, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,160,160, - 64,2,5,5,3,0,0,64,192,64,64,64,4,5,5,5, - 0,0,96,144,32,64,240,4,5,5,5,0,0,224,16,96, - 16,224,4,5,5,5,0,0,144,144,144,112,16,4,5,5, - 5,0,0,240,128,224,16,224,4,5,5,5,0,0,96,128, - 224,144,96,4,5,5,5,0,0,240,16,32,64,128,4,5, - 5,5,0,0,96,144,96,144,96,4,5,5,5,0,0,96, - 144,112,16,96,1,3,3,3,1,0,128,0,128}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 1 y= 5 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyr[1040] U8G_FONT_SECTION("u8g_font_babyr") = { - 0,10,10,255,254,5,1,108,2,200,32,127,254,7,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255 - }; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07[948] U8G_FONT_SECTION("u8g_font_blipfest_07") = { - 0,5,6,0,255,5,1,5,2,47,32,255,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[169] U8G_FONT_SECTION("u8g_font_blipfest_07n") = { - 0,5,6,0,255,5,0,0,0,0,42,58,0,5,0,5, - 0,255,3,3,3,4,0,1,64,224,64,1,2,2,2,0, - 0,128,128,3,1,1,4,0,2,224,1,1,1,2,0,0, - 128,255,3,5,5,4,0,0,224,160,160,160,224,2,5,5, - 3,0,0,192,64,64,64,64,3,5,5,4,0,0,224,32, - 224,128,224,3,5,5,4,0,0,224,32,224,32,224,3,5, - 5,4,0,0,160,160,224,32,32,3,5,5,4,0,0,224, - 128,224,32,224,3,5,5,4,0,0,224,128,224,160,224,3, - 5,5,4,0,0,224,32,32,32,32,3,5,5,4,0,0, - 224,160,224,160,224,3,5,5,4,0,0,224,160,224,32,224, - 1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[820] U8G_FONT_SECTION("u8g_font_blipfest_07r") = { - 0,5,6,0,255,5,1,5,2,47,32,127,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 8 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=10 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikita[2236] U8G_FONT_SECTION("u8g_font_chikita") = { - 0,9,10,0,254,5,1,107,2,195,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,1,7,7,2,0,255,128, - 0,128,128,128,128,128,3,5,5,4,0,0,64,224,128,224, - 64,5,6,6,6,0,0,112,136,72,224,64,248,5,5,5, - 6,0,0,136,112,80,112,136,5,6,6,6,0,0,136,80, - 32,112,112,32,1,5,5,2,0,0,128,128,0,128,128,4, - 7,7,5,0,254,112,128,96,144,96,16,224,3,1,1,4, - 0,6,160,7,7,7,8,0,255,124,130,186,162,186,130,124, - 3,4,4,4,0,4,96,224,160,96,6,5,5,7,0,0, - 36,72,144,72,36,5,3,3,6,0,2,248,8,8,3,1, - 1,5,1,2,224,7,7,7,8,0,255,124,130,186,178,170, - 130,124,5,1,1,6,0,6,248,4,4,4,5,0,3,96, - 144,144,96,3,5,5,5,1,0,64,224,64,0,224,4,5, - 5,5,0,2,96,144,32,64,240,4,5,5,5,0,2,224, - 16,96,16,224,2,2,2,3,0,5,64,128,5,6,6,6, - 0,254,136,136,216,168,128,128,6,7,7,7,0,254,124,232, - 232,104,40,40,40,3,3,3,5,1,1,224,224,224,3,3, - 3,5,1,254,64,32,224,2,5,5,3,0,2,64,192,64, - 64,64,4,5,5,5,0,2,96,144,144,144,96,6,5,5, - 7,0,0,144,72,36,72,144,7,8,8,8,0,254,66,196, - 72,80,38,74,142,2,7,8,8,8,0,254,66,196,72,80, - 44,66,132,14,7,8,8,8,0,254,226,68,40,208,38,74, - 142,2,5,7,7,6,0,255,32,0,32,32,72,136,112,5, - 8,8,6,0,0,64,32,0,112,136,136,248,136,5,8,8, - 6,0,0,16,32,0,112,136,136,248,136,5,8,8,6,0, - 0,32,80,0,112,136,136,248,136,5,8,8,6,0,0,40, - 80,0,112,136,136,248,136,5,7,7,6,0,0,80,0,112, - 136,136,248,136,5,8,8,6,0,0,32,80,32,112,136,136, - 248,136,9,5,10,10,0,0,63,128,72,0,143,0,248,0, - 143,128,5,7,7,6,0,254,112,136,128,136,112,16,112,5, - 8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,8, - 6,0,0,16,32,0,248,128,240,128,248,5,8,8,6,0, - 0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,80, - 0,248,128,240,128,248,3,8,8,4,0,0,128,64,0,224, - 64,64,64,224,3,8,8,4,0,0,32,64,0,224,64,64, - 64,224,3,8,8,4,0,0,64,160,0,224,64,64,64,224, - 3,7,7,4,0,0,160,0,224,64,64,64,224,5,5,5, - 6,0,0,112,72,232,72,112,5,8,8,6,0,0,40,80, - 0,136,200,168,152,136,5,8,8,6,0,0,64,32,0,112, - 136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136, - 136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112, - 5,8,8,6,0,0,64,168,16,112,136,136,136,112,5,7, - 7,6,0,0,80,0,112,136,136,136,112,3,3,3,4,0, - 1,160,64,160,5,5,5,6,0,0,120,152,168,200,240,5, - 8,8,6,0,0,64,32,0,136,136,136,136,112,5,8,8, - 6,0,0,16,32,0,136,136,136,136,112,5,8,8,6,0, - 0,32,80,0,136,136,136,136,112,5,7,7,6,0,0,80, - 0,136,136,136,136,112,5,8,8,6,0,0,16,32,0,136, - 136,80,32,32,5,5,5,6,0,0,128,240,136,240,128,4, - 5,5,5,0,0,96,144,160,144,160,4,7,7,5,0,0, - 64,32,0,112,144,144,240,4,7,7,5,0,0,32,64,0, - 112,144,144,240,4,7,7,5,0,0,32,80,0,112,144,144, - 240,4,7,7,5,0,0,80,160,0,112,144,144,240,4,6, - 6,5,0,0,80,0,112,144,144,240,4,7,7,5,0,0, - 32,80,32,112,144,144,240,7,5,5,8,0,0,236,18,126, - 144,238,4,6,6,5,0,254,112,128,128,112,32,96,4,7, - 7,5,0,0,64,32,0,96,144,224,112,4,7,7,5,0, - 0,32,64,0,96,144,224,112,4,7,7,5,0,0,32,80, - 0,96,144,224,112,4,6,6,5,0,0,80,0,96,144,224, - 112,2,7,7,3,0,0,128,64,0,64,64,64,64,2,7, - 7,3,0,0,64,128,0,128,128,128,128,3,7,7,4,0, - 0,64,160,0,64,64,64,64,3,6,6,4,0,0,160,0, - 64,64,64,64,4,6,6,5,0,0,64,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,96,144,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,5,5,5, - 6,0,0,32,0,248,0,32,4,4,4,5,0,0,112,176, - 208,224,4,7,7,5,0,0,64,32,0,144,144,144,112,4, - 7,7,5,0,0,32,64,0,144,144,144,112,4,7,7,5, - 0,0,32,80,0,144,144,144,112,4,6,6,5,0,0,80, - 0,144,144,144,112,4,8,8,5,0,254,32,64,0,144,144, - 112,16,224,4,6,6,5,0,254,128,224,144,144,224,128,4, - 7,7,5,0,254,80,0,144,144,112,16,224}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitan[189] U8G_FONT_SECTION("u8g_font_chikitan") = { - 0,9,10,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,5,1,1,160,64,160,5,5,5,6,0,0, - 32,32,248,32,32,2,2,2,3,0,255,64,128,5,1,1, - 6,0,2,248,1,1,1,2,0,0,128,3,5,5,5,1, - 0,32,32,64,128,128,4,5,5,5,0,0,96,144,144,144, - 96,2,5,5,3,0,0,64,192,64,64,64,5,5,5,6, - 0,0,112,136,48,64,248,5,5,5,6,0,0,240,8,112, - 8,240,5,5,5,6,0,0,48,80,144,248,16,5,5,5, - 6,0,0,248,128,240,8,240,5,5,5,6,0,0,120,128, - 240,136,112,5,5,5,6,0,0,248,8,16,32,64,5,5, - 5,6,0,0,112,136,112,136,112,5,5,5,6,0,0,112, - 136,120,8,240,1,3,3,2,0,1,128,0,128}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 7 h= 7 x= 1 y= 4 dx= 8 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitar[1032] U8G_FONT_SECTION("u8g_font_chikitar") = { - 0,9,10,0,254,5,1,107,2,195,32,127,254,6,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08[2425] U8G_FONT_SECTION("u8g_font_courB08") = { - 0,12,16,253,252,6,1,146,3,13,32,255,254,9,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,1,2, - 7,7,6,1,254,192,0,192,192,192,192,192,5,8,8,6, - 0,255,32,32,120,200,192,120,32,32,6,7,7,6,0,0, - 56,104,32,248,32,100,248,5,5,5,6,0,1,136,112,80, - 112,136,6,7,7,6,0,0,204,72,252,48,252,48,120,1, - 9,9,6,2,254,128,128,128,128,0,128,128,128,128,5,8, - 8,6,0,255,120,72,96,144,72,48,144,240,3,1,1,6, - 1,5,160,6,7,7,6,0,0,48,72,180,164,180,72,48, - 4,5,5,6,1,2,224,16,208,0,240,7,5,5,6,255, - 0,54,108,216,108,54,5,3,3,6,0,2,248,8,8,5, - 1,1,6,0,3,248,7,7,7,6,0,0,56,68,186,178, - 170,68,56,4,1,1,6,0,5,240,4,3,3,6,0,4, - 96,144,96,5,6,6,6,0,0,32,32,248,32,0,248,3, - 4,4,6,1,3,96,160,64,224,3,4,4,6,1,3,224, - 64,32,192,2,2,2,6,2,5,64,128,7,7,7,6,255, - 254,236,108,108,108,126,64,64,6,8,8,6,0,255,124,168, - 168,104,40,40,40,108,2,1,1,6,1,3,192,3,3,3, - 6,1,254,64,32,192,3,4,4,6,1,3,192,64,64,224, - 4,5,5,6,1,2,96,144,96,0,240,7,5,5,6,255, - 0,216,108,54,108,216,7,7,7,6,255,0,192,68,72,244, - 44,94,4,7,7,7,6,255,0,192,68,72,246,42,68,14, - 7,7,7,6,255,0,224,68,40,212,44,94,4,5,7,7, - 6,0,254,48,0,48,48,96,200,112,7,9,9,6,255,0, - 32,16,0,120,56,40,124,108,238,7,9,9,6,255,0,16, - 32,0,120,56,40,124,108,238,7,9,9,6,255,0,16,40, - 0,120,56,40,124,108,238,7,9,9,6,255,0,52,72,0, - 120,56,40,124,108,238,7,8,8,6,255,0,40,0,120,56, - 40,124,108,238,7,9,9,6,255,0,48,72,48,120,56,40, - 124,108,238,7,6,6,6,255,0,126,58,108,120,218,222,5, - 8,8,6,0,254,120,216,192,192,216,112,16,96,6,9,9, - 6,255,0,32,16,0,252,100,120,96,108,252,6,9,9,6, - 255,0,16,32,0,252,100,120,96,108,252,6,9,9,6,255, - 0,32,80,0,252,100,120,96,108,252,6,8,8,6,255,0, - 80,0,252,100,120,96,108,252,4,9,9,6,0,0,64,32, - 0,240,96,96,96,96,240,4,9,9,6,0,0,32,64,0, - 240,96,96,96,96,240,4,9,9,6,0,0,64,160,0,240, - 96,96,96,96,240,4,8,8,6,0,0,160,0,240,96,96, - 96,96,240,6,6,6,6,255,0,248,108,244,100,108,248,7, - 9,9,6,255,0,52,72,0,238,100,116,124,108,236,5,9, - 9,6,0,0,64,32,0,112,216,216,216,216,112,5,9,9, - 6,0,0,32,64,0,112,216,216,216,216,112,5,9,9,6, - 0,0,32,80,0,112,216,216,216,216,112,5,9,9,6,0, - 0,104,144,0,112,216,216,216,216,112,5,8,8,6,0,0, - 80,0,112,216,216,216,216,112,5,5,5,6,0,1,136,80, - 32,80,136,7,6,6,6,255,0,58,108,124,108,108,184,7, - 9,9,6,255,0,32,16,0,238,108,108,108,108,56,7,9, - 9,6,255,0,8,16,0,238,108,108,108,108,56,7,9,9, - 6,255,0,16,40,0,238,108,108,108,108,56,7,8,8,6, - 255,0,40,0,238,108,108,108,108,56,7,9,9,6,255,0, - 4,8,0,230,102,60,24,24,60,6,6,6,6,255,0,224, - 120,108,108,120,224,7,6,6,6,255,0,56,104,124,102,102, - 236,6,8,8,6,0,0,32,16,0,112,152,120,216,252,6, - 8,8,6,0,0,16,32,0,112,152,120,216,252,6,8,8, - 6,0,0,32,80,0,112,152,120,216,252,6,8,8,6,0, - 0,104,144,0,112,152,120,216,252,6,7,7,6,0,0,80, - 0,112,152,120,216,252,6,9,9,6,0,0,48,72,48,0, - 112,152,120,216,252,6,5,5,6,255,0,108,180,124,176,220, - 5,7,7,6,0,254,112,216,192,216,112,16,96,5,8,8, - 6,0,0,64,32,0,112,216,248,192,120,5,8,8,6,0, - 0,32,64,0,112,216,248,192,120,5,8,8,6,0,0,32, - 80,0,112,216,248,192,120,5,7,7,6,0,0,80,0,112, - 216,248,192,120,6,8,8,6,0,0,32,16,0,112,48,48, - 48,252,6,8,8,6,0,0,16,32,0,112,48,48,48,252, - 6,8,8,6,0,0,32,80,0,112,48,48,48,252,6,7, - 7,6,0,0,80,0,112,48,48,48,252,5,8,8,6,0, - 0,208,96,176,120,216,216,216,112,7,8,8,6,255,0,52, - 72,0,216,108,108,108,110,5,8,8,6,0,0,64,32,0, - 112,216,216,216,112,5,8,8,6,0,0,32,64,0,112,216, - 216,216,112,5,8,8,6,0,0,32,80,0,112,216,216,216, - 112,5,8,8,6,0,0,104,144,0,112,216,216,216,112,5, - 7,7,6,0,0,80,0,112,216,216,216,112,5,5,5,6, - 0,1,32,0,248,0,32,5,7,7,6,0,255,8,112,216, - 248,216,112,128,7,8,8,6,255,0,32,16,0,236,108,108, - 108,62,7,8,8,6,255,0,16,32,0,236,108,108,108,62, - 7,8,8,6,255,0,16,40,0,236,108,108,108,62,7,7, - 7,6,255,0,40,0,236,108,108,108,62,7,10,10,6,255, - 254,8,16,0,238,108,108,40,56,48,240,6,9,9,6,255, - 254,224,96,120,108,108,108,120,96,240,7,9,9,6,255,254, - 40,0,238,108,108,40,56,48,240}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08r[1145] U8G_FONT_SECTION("u8g_font_courB08r") = { - 0,12,16,253,252,6,1,146,3,13,32,127,254,8,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10[3355] U8G_FONT_SECTION("u8g_font_courB10") = { - 0,13,21,254,250,9,1,222,4,32,32,255,253,12,252,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,1,2,9,9,9,3,254,192,192,0,128,192, - 192,192,192,192,6,10,10,9,1,255,48,48,124,204,192,192, - 204,120,48,48,7,9,9,9,1,0,60,102,96,96,248,96, - 96,102,252,7,6,6,9,1,1,198,124,198,198,124,198,10, - 9,18,9,0,0,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,2,11,11,9,3,254,192,192,192, - 192,192,0,192,192,192,192,192,8,11,11,9,0,255,62,98, - 96,240,140,227,57,15,6,70,124,4,2,2,9,2,8,144, - 144,9,8,16,9,0,1,28,0,99,0,205,128,209,128,209, - 128,205,128,99,0,28,0,5,7,7,9,2,2,112,24,120, - 216,104,0,248,7,5,5,9,1,1,54,108,216,108,54,7, - 3,3,9,1,2,254,2,2,6,1,1,9,1,4,252,9, - 8,16,9,0,1,62,0,99,0,217,128,213,128,217,128,213, - 128,99,0,62,0,4,1,1,9,2,8,240,4,4,4,9, - 2,5,96,144,144,96,7,7,7,9,1,1,16,16,254,16, - 16,0,254,5,6,6,9,2,4,112,152,24,48,96,248,5, - 6,6,9,2,4,112,152,48,24,152,112,3,2,2,9,3, - 7,96,192,9,10,20,9,0,253,231,0,99,0,99,0,99, - 0,99,0,103,0,123,128,96,0,96,0,96,0,7,11,11, - 9,1,255,126,212,148,148,212,116,20,20,20,20,126,2,2, - 2,9,3,3,192,192,3,4,4,9,2,253,64,96,32,224, - 4,6,6,9,3,4,96,224,96,96,96,240,5,7,7,9, - 2,2,112,216,136,216,112,0,248,7,5,5,9,1,1,216, - 108,54,108,216,9,10,20,9,0,0,96,0,224,128,97,0, - 98,0,101,0,251,0,23,0,43,0,79,128,131,0,9,10, - 20,9,0,0,96,0,224,128,97,0,98,0,103,0,253,128, - 17,128,35,0,70,0,15,128,10,10,20,9,255,0,112,0, - 152,64,48,128,25,0,154,128,117,128,11,128,21,128,39,192, - 65,128,6,9,9,9,1,254,48,48,0,48,112,192,196,204, - 124,9,12,24,9,0,0,24,0,12,0,0,0,124,0,28, - 0,54,0,54,0,34,0,99,0,127,0,99,0,247,128,9, - 12,24,9,0,0,12,0,24,0,0,0,124,0,28,0,54, - 0,54,0,34,0,99,0,127,0,99,0,247,128,9,12,24, - 9,0,0,28,0,54,0,0,0,124,0,28,0,54,0,54, - 0,34,0,99,0,127,0,99,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,124,0,28,0,54,0,54,0,34, - 0,99,0,127,0,99,0,247,128,9,12,24,9,0,0,36, - 0,36,0,0,0,124,0,28,0,54,0,54,0,34,0,99, - 0,127,0,99,0,247,128,9,12,24,9,0,0,24,0,36, - 0,24,0,126,0,28,0,54,0,54,0,34,0,99,0,127, - 0,99,0,247,128,9,9,18,9,0,0,63,128,28,128,28, - 0,61,0,47,0,109,0,124,0,76,128,223,128,7,13,13, - 9,1,252,58,110,198,192,192,192,192,102,60,16,24,8,56, - 8,12,12,9,0,0,24,12,0,255,99,99,104,120,104,99, - 99,255,8,12,12,9,0,0,12,24,0,255,99,99,104,120, - 104,99,99,255,8,12,12,9,0,0,28,54,0,255,99,99, - 104,120,104,99,99,255,8,12,12,9,0,0,36,36,0,255, - 99,99,104,120,104,99,99,255,6,12,12,9,1,0,96,48, - 0,252,48,48,48,48,48,48,48,252,6,12,12,9,1,0, - 24,48,0,252,48,48,48,48,48,48,48,252,6,12,12,9, - 1,0,56,108,0,252,48,48,48,48,48,48,48,252,6,12, - 12,9,1,0,72,72,0,252,48,48,48,48,48,48,48,252, - 8,9,9,9,0,0,252,102,99,99,243,99,99,102,252,9, - 12,24,9,0,0,26,0,44,0,0,0,231,128,99,0,115, - 0,115,0,107,0,107,0,103,0,103,0,243,0,8,12,12, - 9,0,0,48,24,0,60,102,195,195,195,195,195,102,60,8, - 12,12,9,0,0,12,24,0,60,102,195,195,195,195,195,102, - 60,8,12,12,9,0,0,56,108,0,60,102,195,195,195,195, - 195,102,60,8,12,12,9,0,0,52,88,0,60,102,195,195, - 195,195,195,102,60,8,12,12,9,0,0,36,36,0,60,102, - 195,195,195,195,195,102,60,6,7,7,9,1,1,132,204,120, - 48,120,204,132,8,10,10,9,0,0,1,62,102,203,203,211, - 211,227,102,188,9,12,24,9,0,0,24,0,12,0,0,0, - 247,128,99,0,99,0,99,0,99,0,99,0,99,0,99,0, - 62,0,9,12,24,9,0,0,12,0,24,0,0,0,247,128, - 99,0,99,0,99,0,99,0,99,0,99,0,99,0,62,0, - 9,12,24,9,0,0,28,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,99,0,99,0,99,0,62,0,9,12, - 24,9,0,0,18,0,18,0,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,10,12,24,9, - 255,0,6,0,12,0,0,0,243,192,97,128,51,0,51,0, - 30,0,12,0,12,0,12,0,63,0,8,9,9,9,0,0, - 240,96,126,99,99,102,124,96,240,8,9,9,9,0,0,60, - 102,102,108,102,99,99,107,238,8,10,10,9,0,0,48,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,12,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,56,108, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,52,88, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,36,36, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,24,36, - 24,124,6,6,126,198,206,119,9,7,14,9,0,0,119,0, - 29,128,8,128,127,128,200,0,205,128,119,0,8,11,11,9, - 0,252,61,103,195,192,192,99,62,16,24,8,56,8,10,10, - 9,0,0,48,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,12,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,28,54,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,36,36,0,60,102,195,255,192,103,62,6,10,10, - 9,1,0,96,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,24,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,112,216,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,72,72,0,240,48,48,48,48,48,252,8,10,10, - 9,0,0,236,56,204,62,102,195,195,195,102,60,9,10,20, - 9,0,0,26,0,44,0,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,247,128,8,10,10,9,0,0,48,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,12,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,28,54,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,52,88,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,36,36,0, - 60,102,195,195,195,102,60,8,7,7,9,0,1,24,24,0, - 255,0,24,24,8,7,7,9,0,0,61,102,207,219,243,102, - 188,9,10,20,9,0,0,24,0,12,0,0,0,231,0,99, - 0,99,0,99,0,99,0,103,0,59,128,9,10,20,9,0, - 0,12,0,24,0,0,0,231,0,99,0,99,0,99,0,99, - 0,103,0,59,128,9,10,20,9,0,0,28,0,54,0,0, - 0,231,0,99,0,99,0,99,0,99,0,103,0,59,128,9, - 10,20,9,0,0,36,0,36,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,13,26,9,0,253,6, - 0,12,0,0,0,227,128,99,0,99,0,54,0,54,0,28, - 0,28,0,24,0,24,0,124,0,8,12,12,9,0,253,224, - 96,110,115,99,99,99,115,110,96,96,240,9,13,26,9,0, - 253,18,0,18,0,0,0,227,128,99,0,99,0,54,0,54, - 0,28,0,28,0,24,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 7 dx= 9 dy= 0 ascent=11 len=20 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10r[1551] U8G_FONT_SECTION("u8g_font_courB10r") = { - 0,13,21,254,250,9,1,222,4,32,32,127,253,11,253,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=11 h=14 x= 4 y= 9 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12[3959] U8G_FONT_SECTION("u8g_font_courB12") = { - 0,16,24,253,250,10,2,51,4,246,32,255,253,14,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,1,2,10,10,10,4,253,192,192,0, - 192,192,192,192,192,192,192,7,10,10,10,1,0,24,24,62, - 102,192,192,102,60,24,24,8,10,10,10,1,0,30,51,48, - 48,252,252,48,51,227,254,8,7,7,10,1,1,195,126,102, - 66,102,126,195,10,10,20,10,0,0,243,192,97,128,51,0, - 51,0,30,0,63,0,12,0,63,0,12,0,63,0,2,13, - 13,10,4,254,192,192,192,192,192,192,0,192,192,192,192,192, - 192,10,12,24,10,0,255,31,128,49,128,49,128,120,0,206, - 0,195,128,112,192,28,192,7,128,99,0,99,0,126,0,5, - 2,2,10,3,8,216,216,10,10,20,10,0,0,12,0,63, - 0,97,128,78,128,216,192,216,192,78,128,97,128,63,0,12, - 0,6,7,7,10,2,3,120,12,124,204,124,0,252,9,7, - 14,10,0,0,25,128,51,0,102,0,204,0,102,0,51,0, - 25,128,8,5,5,10,1,2,255,255,3,3,3,7,2,2, - 10,1,4,254,254,10,10,20,10,0,0,12,0,63,0,97, - 128,92,128,214,192,220,192,82,128,97,128,63,0,12,0,5, - 1,1,10,2,9,248,5,5,5,10,2,6,112,216,136,216, - 112,8,9,9,10,1,0,24,24,255,255,24,24,0,255,255, - 5,6,6,10,2,5,112,216,48,96,200,248,5,6,6,10, - 2,5,112,216,48,24,216,112,4,3,3,10,3,8,48,96, - 192,9,10,20,10,0,253,231,0,99,0,99,0,99,0,99, - 0,103,0,123,128,96,0,96,0,96,0,9,12,24,10,0, - 255,63,128,91,0,219,0,219,0,219,0,91,0,59,0,27, - 0,27,0,27,0,27,0,63,128,3,2,2,10,3,4,224, - 224,4,4,4,10,3,253,32,96,48,240,6,6,6,10,2, - 5,48,240,48,48,48,252,6,7,7,10,2,3,120,204,204, - 204,120,0,252,9,7,14,10,0,0,204,0,102,0,51,0, - 25,128,51,0,102,0,204,0,10,11,22,10,0,0,32,0, - 225,0,99,0,98,0,102,0,252,128,25,128,19,128,54,128, - 111,192,65,128,10,11,22,10,0,0,32,0,224,128,97,128, - 99,0,102,0,255,128,10,192,25,128,51,0,102,64,71,192, - 11,11,22,10,0,0,112,0,216,128,49,128,27,0,218,0, - 118,64,12,192,9,192,27,64,55,224,32,192,7,10,10,10, - 1,253,24,24,0,24,24,112,192,198,198,124,10,14,28,10, - 0,0,48,0,24,0,12,0,0,0,60,0,12,0,30,0, - 18,0,51,0,51,0,63,0,97,128,97,128,243,192,10,14, - 28,10,0,0,6,0,12,0,24,0,0,0,60,0,12,0, - 30,0,18,0,51,0,51,0,63,0,97,128,97,128,243,192, - 10,14,28,10,0,0,12,0,30,0,51,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,59,0,110,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,54,0,54,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,14,28,10,0,0,28,0,54,0,54,0,28,0, - 60,0,12,0,30,0,18,0,51,0,51,0,63,0,97,128, - 97,128,243,192,10,10,20,10,0,0,127,192,60,192,44,0, - 45,0,111,0,77,0,124,0,76,192,204,192,255,192,9,13, - 26,10,0,253,30,128,115,128,97,128,192,0,192,0,192,0, - 192,0,97,128,115,128,30,0,24,0,12,0,60,0,8,14, - 14,10,1,0,48,24,12,0,255,99,96,100,124,100,96,99, - 99,255,8,14,14,10,1,0,6,12,24,0,255,99,96,100, - 124,100,96,99,99,255,8,14,14,10,1,0,24,60,102,0, - 255,99,96,100,124,100,96,99,99,255,8,13,13,10,1,0, - 54,54,0,255,99,96,100,124,100,96,99,99,255,8,14,14, - 10,1,0,48,24,12,0,255,24,24,24,24,24,24,24,24, - 255,8,14,14,10,1,0,12,24,48,0,255,24,24,24,24, - 24,24,24,24,255,8,14,14,10,1,0,24,60,102,0,255, - 24,24,24,24,24,24,24,24,255,8,13,13,10,1,0,54, - 54,0,255,24,24,24,24,24,24,24,24,255,9,10,20,10, - 0,0,252,0,103,0,99,0,97,128,249,128,97,128,97,128, - 99,0,103,0,252,0,10,13,26,10,0,0,59,0,110,0, - 0,0,247,192,113,128,121,128,105,128,109,128,109,128,101,128, - 103,128,99,128,251,128,9,14,28,10,0,0,48,0,24,0, - 12,0,0,0,62,0,99,0,99,0,193,128,193,128,193,128, - 193,128,99,0,99,0,62,0,9,14,28,10,0,0,6,0, - 12,0,24,0,0,0,62,0,99,0,99,0,193,128,193,128, - 193,128,193,128,99,0,99,0,62,0,9,14,28,10,0,0, - 12,0,30,0,51,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,59,0,110,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,54,0,54,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,8,7,7,10, - 1,1,227,118,60,24,60,110,199,9,12,24,10,0,255,0, - 128,63,128,99,0,103,0,197,128,205,128,217,128,209,128,115, - 0,99,0,254,0,128,0,10,14,28,10,0,0,48,0,24, - 0,12,0,0,0,243,192,97,128,97,128,97,128,97,128,97, - 128,97,128,97,128,51,0,30,0,10,14,28,10,0,0,3, - 0,6,0,12,0,0,0,243,192,97,128,97,128,97,128,97, - 128,97,128,97,128,97,128,51,0,30,0,10,14,28,10,0, - 0,12,0,30,0,51,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,13,26, - 10,0,0,27,0,27,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,14,28, - 10,0,0,3,0,6,0,12,0,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,9, - 10,20,10,0,0,240,0,96,0,126,0,99,0,97,128,99, - 0,126,0,96,0,96,0,240,0,8,11,11,10,0,0,60, - 102,102,100,108,102,99,99,99,122,236,8,11,11,10,1,0, - 48,24,12,0,60,102,6,126,198,198,123,8,11,11,10,1, - 0,6,12,24,0,60,102,6,126,198,198,123,8,11,11,10, - 1,0,24,60,102,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,59,110,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,54,54,0,60,102,6,126,198,198,123,8,12,12, - 10,1,0,28,54,54,28,0,60,102,6,126,198,198,123,10, - 7,14,10,255,0,59,128,108,192,12,192,127,192,204,0,204, - 192,119,128,8,10,10,10,1,253,61,103,195,192,192,227,126, - 24,12,60,8,11,11,10,1,0,48,24,12,0,60,102,195, - 255,192,99,62,8,11,11,10,1,0,6,12,24,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,24,60,102,0,60, - 102,195,255,192,99,62,8,10,10,10,1,0,54,54,0,60, - 102,195,255,192,99,62,8,11,11,10,1,0,96,48,24,0, - 120,24,24,24,24,24,255,8,11,11,10,1,0,6,12,24, - 0,120,24,24,24,24,24,255,8,11,11,10,1,0,24,60, - 102,0,120,24,24,24,24,24,255,8,10,10,10,1,0,108, - 108,0,120,24,24,24,24,24,255,8,12,12,10,1,0,224, - 118,28,60,198,62,103,227,195,195,102,60,9,10,20,10,0, - 0,59,0,110,0,0,0,238,0,115,0,99,0,99,0,99, - 0,99,0,247,128,8,11,11,10,1,0,48,24,12,0,60, - 102,195,195,195,102,60,8,11,11,10,1,0,12,24,48,0, - 60,102,195,195,195,102,60,8,11,11,10,1,0,24,60,102, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,59,110, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,108,108, - 0,60,102,195,195,195,102,60,8,8,8,10,1,1,24,24, - 0,255,255,0,24,24,8,9,9,10,1,255,3,63,102,207, - 219,243,102,252,192,9,11,22,10,0,0,48,0,24,0,12, - 0,0,0,231,0,99,0,99,0,99,0,99,0,103,0,59, - 128,9,11,22,10,0,0,12,0,24,0,48,0,0,0,231, - 0,99,0,99,0,99,0,99,0,103,0,59,128,9,11,22, - 10,0,0,24,0,60,0,102,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,10,20,10,0,0,54, - 0,54,0,0,0,231,0,99,0,99,0,99,0,99,0,103, - 0,59,128,10,14,28,10,0,253,6,0,12,0,24,0,0, - 0,243,192,97,128,51,0,51,0,30,0,30,0,12,0,24, - 0,24,0,124,0,9,14,28,10,0,253,224,0,96,0,96, - 0,96,0,110,0,115,0,97,128,97,128,97,128,115,0,110, - 0,96,0,96,0,248,0,10,13,26,10,0,253,54,0,54, - 0,0,0,243,192,97,128,51,0,51,0,30,0,30,0,12, - 0,12,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12r[1857] U8G_FONT_SECTION("u8g_font_courB12r") = { - 0,16,24,253,250,10,2,51,4,246,32,127,253,12,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=17 x= 4 y= 9 dx=11 dy= 0 ascent=15 len=34 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14[4784] U8G_FONT_SECTION("u8g_font_courB14") = { - 0,17,26,252,249,11,2,101,5,155,32,255,252,15,251,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,11,0,1,3,12,12, - 11,4,252,192,192,0,192,192,224,224,224,224,224,224,224,8, - 13,13,11,1,0,24,24,24,63,127,227,192,192,227,127,62, - 24,24,10,11,22,11,0,0,62,0,127,0,99,0,96,0, - 48,0,252,0,252,0,48,0,96,192,255,192,255,128,8,9, - 9,11,1,1,195,255,126,195,195,195,126,255,195,10,11,22, - 11,0,0,243,192,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,63,0,2,16,16,11,4,253,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,8, - 14,14,11,1,254,63,115,99,96,248,222,199,227,123,31,6, - 198,206,252,6,2,2,11,2,9,204,204,11,12,24,11,0, - 0,14,0,63,128,113,192,110,192,219,96,216,96,216,96,219, - 96,110,192,113,192,63,128,14,0,6,8,8,11,2,3,112, - 24,120,216,216,108,0,252,9,7,14,11,0,1,25,128,51, - 0,102,0,204,0,102,0,51,0,25,128,9,4,8,11,1, - 4,255,128,255,128,1,128,1,128,8,2,2,11,1,4,255, - 255,11,12,24,11,0,0,14,0,63,128,113,192,126,192,219, - 96,219,96,222,96,223,96,123,224,112,192,63,128,14,0,5, - 2,2,11,2,9,248,248,5,5,5,11,2,6,112,136,136, - 136,112,10,10,20,11,0,0,12,0,12,0,12,0,255,192, - 255,192,12,0,12,0,0,0,255,192,255,192,6,7,7,11, - 2,5,120,204,12,24,48,100,252,6,7,7,11,2,5,120, - 204,12,56,12,204,120,4,3,3,11,4,9,48,96,192,10, - 13,26,11,0,252,231,128,231,128,97,128,97,128,97,128,97, - 128,99,128,127,192,125,192,96,0,96,0,96,0,96,0,8, - 14,14,11,1,254,63,106,202,202,202,106,58,10,10,10,10, - 10,10,59,2,3,3,11,4,3,192,192,192,4,5,5,11, - 3,252,64,96,48,240,224,6,7,7,11,2,5,48,240,48, - 48,48,48,252,6,8,8,11,2,3,120,204,132,132,204,120, - 0,252,9,7,14,11,1,1,204,0,102,0,51,0,25,128, - 51,0,102,0,204,0,11,12,24,11,0,0,48,0,240,32, - 48,96,48,192,49,128,51,64,254,192,13,192,26,192,52,192, - 103,224,64,192,11,12,24,11,0,0,48,0,240,32,48,96, - 48,192,49,128,51,192,255,96,12,96,24,192,49,128,99,32, - 71,224,11,12,24,11,0,0,120,0,204,32,12,96,56,192, - 13,128,207,64,126,192,13,192,26,192,52,192,103,224,64,192, - 7,12,12,11,2,252,24,24,0,24,24,24,120,224,192,198, - 254,124,12,15,30,11,255,0,24,0,12,0,6,0,0,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,12,15,30,11,255,0,3,0,6,0, - 12,0,0,0,62,0,63,0,15,0,15,0,25,128,25,128, - 63,192,63,192,48,192,249,240,249,240,12,15,30,11,255,0, - 6,0,15,0,25,128,0,0,62,0,63,0,15,0,15,0, - 25,128,25,128,63,192,63,192,48,192,249,240,249,240,12,14, - 28,11,255,0,29,128,55,0,0,0,62,0,63,0,15,0, - 15,0,25,128,25,128,63,192,63,192,48,192,249,240,249,240, - 12,14,28,11,255,0,25,128,25,128,0,0,62,0,63,0, - 15,0,15,0,25,128,25,128,63,192,63,192,48,192,249,240, - 249,240,12,15,30,11,255,0,6,0,9,0,9,0,6,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,11,11,22,11,0,0,63,224,63,224, - 30,96,54,0,55,192,39,192,126,0,126,0,102,96,239,224, - 239,224,10,16,32,11,0,251,30,192,127,192,97,192,192,192, - 192,0,192,0,192,0,192,0,96,192,127,192,63,0,8,0, - 12,0,2,0,30,0,28,0,10,15,30,11,0,0,24,0, - 12,0,6,0,0,0,255,192,255,192,48,192,54,192,62,0, - 62,0,54,0,48,192,48,192,255,192,255,192,10,15,30,11, - 0,0,3,0,6,0,12,0,0,0,255,192,255,192,48,192, - 54,192,62,0,62,0,54,0,48,192,48,192,255,192,255,192, - 10,15,30,11,0,0,12,0,30,0,51,0,0,0,255,192, - 255,192,48,192,54,192,62,0,62,0,54,0,48,192,48,192, - 255,192,255,192,10,14,28,11,0,0,51,0,51,0,0,0, - 255,192,255,192,48,192,54,192,62,0,62,0,54,0,48,192, - 48,192,255,192,255,192,8,15,15,11,1,0,96,48,24,0, - 255,255,24,24,24,24,24,24,24,255,255,8,15,15,11,1, - 0,6,12,24,0,255,255,24,24,24,24,24,24,24,255,255, - 8,15,15,11,1,0,24,60,102,0,255,255,24,24,24,24, - 24,24,24,255,255,8,14,14,11,1,0,102,102,0,255,255, - 24,24,24,24,24,24,24,255,255,10,11,22,11,0,0,254, - 0,255,128,97,128,96,192,248,192,248,192,96,192,96,192,97, - 128,255,128,254,0,10,14,28,11,0,0,59,0,110,0,0, - 0,231,192,247,192,113,128,121,128,105,128,109,128,101,128,103, - 128,99,128,251,128,249,128,10,15,30,11,0,0,24,0,12, - 0,6,0,0,0,30,0,127,128,97,128,192,192,192,192,192, - 192,192,192,192,192,97,128,127,128,30,0,10,15,30,11,0, - 0,3,0,6,0,12,0,0,0,30,0,127,128,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,127,128,30,0,10, - 15,30,11,0,0,12,0,30,0,51,0,0,0,30,0,127, - 128,97,128,192,192,192,192,192,192,192,192,192,192,97,128,127, - 128,30,0,10,14,28,11,0,0,59,0,110,0,0,0,30, - 0,127,128,97,128,192,192,192,192,192,192,192,192,192,192,97, - 128,127,128,30,0,10,14,28,11,0,0,51,0,51,0,0, - 0,30,0,127,128,97,128,192,192,192,192,192,192,192,192,192, - 192,97,128,127,128,30,0,10,10,20,11,0,0,64,128,225, - 192,115,128,55,0,30,0,30,0,59,0,115,128,225,192,64, - 128,12,13,26,11,255,255,0,48,15,96,63,192,49,192,99, - 96,102,96,102,96,108,96,120,96,48,192,63,192,111,0,192, - 0,10,15,30,11,0,0,48,0,24,0,12,0,0,0,251, - 192,251,192,97,128,97,128,97,128,97,128,97,128,97,128,115, - 128,63,0,30,0,10,15,30,11,0,0,3,0,6,0,12, - 0,0,0,251,192,251,192,97,128,97,128,97,128,97,128,97, - 128,97,128,115,128,63,0,30,0,10,15,30,11,0,0,12, - 0,30,0,51,0,0,0,251,192,251,192,97,128,97,128,97, - 128,97,128,97,128,97,128,115,128,63,0,30,0,10,14,28, - 11,0,0,51,0,51,0,0,0,251,192,251,192,97,128,97, - 128,97,128,97,128,97,128,97,128,115,128,63,0,30,0,10, - 15,30,11,0,0,3,0,6,0,12,0,0,0,243,192,243, - 192,97,128,51,0,63,0,30,0,12,0,12,0,12,0,63, - 0,63,0,10,11,22,11,0,0,240,0,224,0,127,0,127, - 128,97,192,96,192,97,192,127,128,127,0,224,0,240,0,9, - 12,24,11,1,0,60,0,126,0,99,0,99,0,103,0,110, - 0,103,0,97,128,97,128,105,128,239,128,231,0,10,13,26, - 11,0,0,24,0,12,0,6,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,3,0,6,0,12,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,12,0,30,0,51,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,12,24, - 11,0,0,59,0,110,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,12,24,11,0, - 0,51,0,51,0,0,0,63,0,127,128,97,128,1,128,127, - 128,255,128,193,128,255,192,125,192,10,14,28,11,0,0,12, - 0,18,0,18,0,12,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,9,18,11,0, - 0,123,128,255,192,204,192,12,192,127,192,255,192,204,0,255, - 192,123,128,10,14,28,11,0,251,61,128,127,128,227,128,193, - 128,192,0,192,0,225,192,127,192,63,0,8,0,12,0,6, - 0,30,0,28,0,10,13,26,11,0,0,24,0,12,0,6, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,3,0,6,0,12, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,12,0,30,0,51, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,12,24,11,0,0,51,0,51,0,0, - 0,30,0,127,128,225,192,192,192,255,192,255,192,224,0,127, - 192,31,192,8,13,13,11,1,0,48,24,12,0,248,248,24, - 24,24,24,24,255,255,8,13,13,11,1,0,12,24,48,0, - 248,248,24,24,24,24,24,255,255,8,13,13,11,1,0,24, - 60,102,0,248,248,24,24,24,24,24,255,255,8,12,12,11, - 1,0,204,204,0,248,248,24,24,24,24,24,255,255,10,13, - 26,11,0,0,225,128,251,128,62,0,119,0,195,128,63,128, - 97,192,192,192,192,192,192,192,225,192,127,128,30,0,10,12, - 24,11,0,0,59,0,110,0,0,0,239,0,255,128,113,128, - 97,128,97,128,97,128,97,128,243,192,243,192,10,13,26,11, - 0,0,24,0,12,0,6,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,3,0,6,0,12,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,12,0,30,0,51,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,12,24,11, - 0,0,59,0,110,0,0,0,30,0,127,128,225,192,192,192, - 192,192,192,192,225,192,127,128,30,0,10,12,24,11,0,0, - 51,0,51,0,0,0,30,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,30,0,10,10,20,11,0,0,12,0, - 12,0,0,0,0,0,255,192,255,192,0,0,0,0,12,0, - 12,0,12,11,22,11,255,255,0,48,15,96,63,192,113,224, - 99,96,102,96,108,96,120,224,63,192,111,0,192,0,10,13, - 26,11,0,0,24,0,12,0,6,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,6,0,12,0,24,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,12,0,30,0,51,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,12, - 24,11,0,0,51,0,51,0,0,0,231,128,231,128,97,128, - 97,128,97,128,97,128,99,128,127,192,61,192,10,17,34,11, - 0,252,3,0,6,0,12,0,0,0,243,192,243,192,97,128, - 97,128,51,0,51,0,30,0,30,0,12,0,24,0,56,0, - 252,0,252,0,10,16,32,11,0,252,224,0,224,0,96,0, - 111,0,127,128,113,192,96,192,96,192,96,192,113,192,127,128, - 111,0,96,0,96,0,248,0,248,0,10,16,32,11,0,252, - 51,0,51,0,0,0,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0 - }; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=16 x= 4 y= 9 dx=11 dy= 0 ascent=13 len=32 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14r[2167] U8G_FONT_SECTION("u8g_font_courB14r") = { - 0,17,26,252,249,11,2,101,5,155,32,127,252,13,252,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=13 dx=15 dy= 0 ascent=21 len=42 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18[6429] U8G_FONT_SECTION("u8g_font_courB18") = { - 0,22,35,252,247,15,3,223,8,17,32,255,251,21,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,15,0,1,4, - 16,16,15,4,251,96,96,96,0,96,96,96,96,96,240,240, - 240,240,240,240,96,9,16,32,15,2,0,12,0,12,0,12, - 0,61,128,127,128,227,128,193,128,192,0,192,0,192,0,225, - 128,127,128,63,0,12,0,12,0,12,0,12,15,30,15,1, - 0,15,128,31,192,56,192,48,0,48,0,48,0,48,0,255, - 0,255,0,24,0,24,0,56,0,112,48,255,240,255,224,10, - 11,22,15,2,2,192,192,255,192,127,128,225,192,192,192,192, - 192,192,192,225,192,127,128,255,192,192,192,12,15,30,15,1, - 0,249,240,249,240,112,224,48,192,57,192,25,128,15,0,15, - 0,63,192,6,0,63,192,6,0,6,0,63,192,63,192,2, - 18,18,15,6,254,192,192,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,192,192,12,18,36,15,1,254,15,224,31, - 224,56,96,48,96,56,0,126,0,207,128,195,224,240,240,124, - 48,31,48,7,240,1,224,0,192,96,192,97,192,127,128,127, - 0,7,3,3,15,3,12,198,198,198,14,14,28,15,0,1, - 7,128,31,224,56,112,103,152,111,216,220,204,216,12,216,12, - 220,204,111,216,103,152,56,112,31,224,7,128,8,11,11,15, - 3,4,60,102,6,126,198,198,207,123,0,255,255,13,9,18, - 15,1,1,14,56,28,112,56,224,113,192,227,128,113,192,56, - 224,28,112,14,56,12,6,12,15,1,4,255,240,255,240,0, - 48,0,48,0,48,0,48,11,2,4,15,2,6,255,224,255, - 224,14,14,28,15,0,1,7,128,31,224,56,112,111,152,111, - 216,204,204,204,204,207,140,205,140,108,216,108,216,56,112,31, - 224,7,128,7,2,2,15,3,13,254,254,8,7,7,15,3, - 9,60,102,195,195,195,102,60,12,14,28,15,1,0,6,0, - 6,0,6,0,6,0,255,240,255,240,6,0,6,0,6,0, - 6,0,0,0,0,0,255,240,255,240,7,9,9,15,4,7, - 124,198,198,12,24,48,96,198,254,7,9,9,15,4,7,124, - 198,198,12,60,6,198,198,124,6,4,4,15,4,12,28,56, - 112,224,14,16,32,15,0,251,240,240,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,63,252,63,188,48,0, - 48,0,48,0,48,0,48,0,12,18,36,15,1,254,31,240, - 127,240,230,192,230,192,230,192,230,192,230,192,126,192,30,192, - 6,192,6,192,6,192,6,192,6,192,6,192,6,192,62,240, - 62,240,3,3,3,15,5,6,224,224,224,5,6,6,15,4, - 251,48,48,120,24,248,112,8,9,9,15,3,7,24,248,24, - 24,24,24,24,24,255,8,11,11,15,3,4,60,126,195,195, - 195,195,126,60,0,255,255,13,9,18,15,1,1,227,128,113, - 192,56,224,28,112,14,56,28,112,56,224,113,192,227,128,16, - 16,32,15,255,0,24,0,248,1,24,3,24,6,24,12,24, - 24,24,48,24,100,255,204,1,156,3,44,6,76,12,140,24, - 254,48,12,32,30,16,16,32,15,255,0,24,0,248,1,24, - 3,24,6,24,12,24,24,24,48,24,126,255,243,1,163,3, - 6,6,12,12,24,24,48,48,99,32,127,15,16,32,15,0, - 0,124,0,198,2,198,6,12,12,60,24,6,48,198,96,198, - 200,125,152,3,56,6,88,12,152,25,24,49,252,96,24,64, - 60,9,15,30,15,2,252,12,0,12,0,12,0,0,0,12, - 0,12,0,28,0,120,0,224,0,192,0,193,128,193,128,225, - 128,127,128,63,0,14,20,40,15,0,0,56,0,28,0,14, - 0,7,0,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,14,20,40,15,0,0,0,224,1,192,3,128,7, - 0,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,21,42,15,0,0,6,0,15,0,31,128,57,192,112, - 224,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,19,38,15,0,0,14,96,31,192,51,128,0,0,63, - 0,63,0,7,128,7,128,12,192,12,192,28,224,24,96,24, - 96,63,240,63,240,112,56,96,24,252,252,252,252,14,19,38, - 15,0,0,24,192,24,192,24,192,0,0,63,0,63,0,7, - 128,7,128,12,192,12,192,28,224,24,96,24,96,63,240,63, - 240,112,56,96,24,252,252,252,252,14,20,40,15,0,0,7, - 0,13,128,8,128,13,128,7,0,63,0,63,0,7,128,7, - 128,12,192,12,192,28,224,24,96,24,96,63,240,63,240,112, - 56,96,24,252,252,252,252,15,15,30,15,0,0,15,254,15, - 254,3,134,7,134,7,128,13,152,9,248,25,248,31,152,63, - 128,49,128,97,134,97,134,247,254,247,254,12,20,40,15,1, - 251,15,176,63,240,112,112,96,48,224,48,192,0,192,0,192, - 0,192,0,192,0,224,0,96,16,112,48,63,224,15,192,6, - 0,15,0,3,0,31,0,14,0,13,20,40,15,1,0,56, - 0,28,0,14,0,7,0,0,0,255,240,255,240,48,48,48, - 48,49,176,49,128,63,128,63,128,49,128,49,128,48,24,48, - 24,48,24,255,248,255,248,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,19,38,15,1,0,24,192,24,192,24, - 192,0,0,255,240,255,240,48,48,48,48,49,176,49,128,63, - 128,63,128,49,128,49,128,48,24,48,24,48,24,255,248,255, - 248,10,20,40,15,2,0,112,0,56,0,28,0,14,0,0, - 0,255,192,255,192,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 20,40,15,2,0,3,128,7,0,14,0,28,0,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,21,42, - 15,2,0,12,0,30,0,63,0,115,128,225,192,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,19,38, - 15,2,0,51,0,51,0,51,0,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,14,15,30,15,0,0,255, - 192,255,240,48,56,48,24,48,28,48,12,254,12,254,12,48, - 12,48,12,48,12,48,24,48,56,255,240,255,224,13,19,38, - 15,1,0,14,96,31,192,51,128,0,0,240,248,240,248,120, - 48,120,48,108,48,108,48,102,48,102,48,99,48,99,48,97, - 176,97,176,96,240,248,240,248,112,13,20,40,15,1,0,28, - 0,14,0,7,0,3,128,0,0,15,128,63,224,112,112,96, - 48,224,56,192,24,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,19,38,15,1,0,14,96,31,192,51, - 128,0,0,15,128,63,224,112,112,96,48,224,56,192,24,192, - 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, - 128,13,19,38,15,1,0,24,192,24,192,24,192,0,0,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,192,24,224,56,96,48,112,112,63,224,15,128,12,12,24, - 15,1,1,64,32,224,112,112,224,57,192,31,128,15,0,15, - 0,31,128,57,192,112,224,224,112,64,32,13,18,36,15,1, - 255,0,24,0,48,15,224,63,224,112,112,96,240,225,184,193, - 24,195,24,198,24,196,24,204,24,232,56,120,48,112,112,63, - 224,111,128,192,0,13,20,40,15,1,0,56,0,28,0,14, - 0,7,0,0,0,248,248,248,248,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,48,96,63, - 224,31,192,13,20,40,15,1,0,0,224,1,192,3,128,7, - 0,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,21,42,15,1,0,3,0,7,128,15,192,28,224,56, - 112,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,19,38,15,1,0,24,192,24,192,24,192,0,0,248, - 248,248,248,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,48,96,63,224,31,192,14,20,40, - 15,0,0,0,224,1,192,3,128,7,0,0,0,252,252,252, - 252,112,56,56,112,24,96,12,192,15,192,7,128,3,0,3, - 0,3,0,3,0,3,0,31,224,31,224,13,15,30,15,1, - 0,252,0,252,0,48,0,63,192,63,240,48,56,48,24,48, - 24,48,24,48,56,63,240,63,192,48,0,252,0,252,0,12, - 16,32,15,1,0,15,0,31,128,57,192,48,192,48,192,49, - 192,55,128,55,192,48,224,48,112,48,48,48,48,48,48,51, - 112,251,224,249,192,12,16,32,15,1,0,112,0,56,0,28, - 0,14,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,16,32,15,1, - 0,1,192,3,128,7,0,14,0,0,0,63,0,127,128,97, - 192,0,192,31,192,127,192,224,192,192,192,193,192,255,240,126, - 240,12,16,32,15,1,0,14,0,31,0,59,128,113,192,0, - 0,63,0,127,128,97,192,0,192,31,192,127,192,224,192,192, - 192,193,192,255,240,126,240,12,15,30,15,1,0,28,192,63, - 128,103,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,15,30,15,1, - 0,49,128,49,128,49,128,0,0,63,0,127,128,97,192,0, - 192,31,192,127,192,224,192,192,192,193,192,255,240,126,240,12, - 16,32,15,1,0,14,0,27,0,17,0,27,0,14,0,63, - 0,127,128,97,192,0,192,31,192,127,192,224,192,192,192,193, - 192,255,240,126,240,14,11,22,15,0,0,60,240,127,248,103, - 156,3,12,31,12,127,252,227,252,195,0,199,140,255,252,124, - 240,11,16,32,15,1,251,31,96,127,224,112,224,224,96,192, - 96,192,0,192,0,224,0,112,96,127,224,31,192,6,0,15, - 0,3,0,31,0,14,0,12,16,32,15,1,0,56,0,28, - 0,14,0,7,0,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,12,16,32, - 15,1,0,1,192,3,128,7,0,14,0,0,0,31,128,127, - 224,112,224,224,112,192,48,255,240,255,240,224,0,112,112,127, - 240,31,192,12,16,32,15,1,0,7,0,15,128,29,192,56, - 224,0,0,31,128,127,224,112,224,224,112,192,48,255,240,255, - 240,224,0,112,112,127,240,31,192,12,15,30,15,1,0,49, - 128,49,128,49,128,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,10,16,32, - 15,2,0,224,0,112,0,56,0,28,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,10,16,32,15,2,0,3,128,7,0,14,0,28, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,10,16,32,15,2,0,28, - 0,62,0,119,0,227,128,0,0,124,0,124,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 15,30,15,2,0,99,0,99,0,99,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,17,34,15,0,0,240,0,252,112,15,240,31, - 128,125,192,112,224,15,240,63,240,56,120,112,56,96,24,96, - 24,96,24,112,56,56,112,63,240,15,192,14,15,30,15,0, - 0,14,96,31,192,51,128,0,0,243,192,247,224,60,112,56, - 48,48,48,48,48,48,48,48,48,48,48,252,252,252,252,12, - 16,32,15,1,0,56,0,28,0,14,0,7,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,16,32,15,1,0,1,192,3,128,7, - 0,14,0,0,0,31,128,127,224,112,224,224,112,192,48,192, - 48,192,48,224,112,112,224,127,224,31,128,12,16,32,15,1, - 0,14,0,31,0,59,128,113,192,0,0,31,128,127,224,112, - 224,224,112,192,48,192,48,192,48,224,112,112,224,127,224,31, - 128,12,15,30,15,1,0,28,192,63,128,103,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,15,30,15,1,0,49,128,49,128,49, - 128,0,0,31,128,127,224,112,224,224,112,192,48,192,48,192, - 48,224,112,112,224,127,224,31,128,13,12,24,15,0,1,7, - 0,7,0,7,0,0,0,0,0,255,248,255,248,0,0,0, - 0,7,0,7,0,7,0,14,14,28,15,0,254,0,12,15, - 216,63,240,56,112,112,216,97,152,99,24,102,24,108,56,56, - 112,63,240,63,192,96,0,192,0,14,16,32,15,0,0,56, - 0,28,0,14,0,7,0,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,14, - 16,32,15,0,0,1,192,3,128,7,0,14,0,0,0,240, - 240,240,240,48,48,48,48,48,48,48,48,48,48,48,48,56, - 112,31,252,15,188,14,16,32,15,0,0,7,0,15,128,29, - 192,56,224,0,0,240,240,240,240,48,48,48,48,48,48,48, - 48,48,48,48,48,56,112,31,252,15,188,14,15,30,15,0, - 0,24,192,24,192,24,192,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,12, - 21,42,15,1,251,0,224,1,192,3,128,7,0,0,0,249, - 240,249,240,96,96,112,224,48,192,57,192,25,128,27,128,15, - 0,15,0,6,0,14,0,12,0,28,0,254,0,254,0,13, - 21,42,15,1,251,240,0,240,0,48,0,48,0,48,0,55, - 192,63,240,60,112,56,56,48,24,48,24,48,24,56,56,60, - 112,63,240,55,192,48,0,48,0,48,0,254,0,254,0,12, - 20,40,15,1,251,49,128,49,128,49,128,0,0,249,240,249, - 240,96,96,112,224,48,192,57,192,25,128,27,128,15,0,15, - 0,6,0,14,0,12,0,28,0,254,0,254,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=11 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18r[3001] U8G_FONT_SECTION("u8g_font_courB18r") = { - 0,22,35,252,247,15,3,223,8,17,32,127,251,17,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=29 x= 8 y=17 dx=20 dy= 0 ascent=26 len=87 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24[10502] U8G_FONT_SECTION("u8g_font_courB24") = { - 0,30,44,249,245,20,5,57,12,115,32,255,249,26,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,21,21, - 20,7,249,112,248,248,112,0,0,112,112,112,112,112,112,112, - 112,248,248,248,248,248,112,32,13,23,46,20,3,255,7,0, - 7,0,7,0,7,0,7,0,15,216,63,248,127,248,120,120, - 240,56,224,56,224,0,224,0,224,0,240,56,120,120,127,248, - 63,240,15,192,7,0,7,0,7,0,7,0,16,20,40,20, - 1,0,3,224,7,240,15,248,30,56,28,56,28,0,28,0, - 28,0,14,0,255,224,255,224,255,224,14,0,14,0,14,0, - 14,2,30,7,127,255,127,255,127,254,15,15,30,20,2,2, - 224,14,247,222,255,254,127,252,60,120,120,60,112,28,112,28, - 112,28,120,60,60,120,127,252,255,254,247,222,224,14,17,20, - 60,20,1,0,254,63,128,254,63,128,254,63,128,56,14,0, - 28,28,0,30,60,0,14,56,0,15,120,0,7,112,0,3, - 224,0,31,252,0,31,252,0,1,192,0,31,252,0,31,252, - 0,1,192,0,1,192,0,31,252,0,31,252,0,31,252,0, - 3,26,26,20,8,251,224,224,224,224,224,224,224,224,224,224, - 224,224,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 16,24,48,20,2,253,1,254,7,254,15,254,28,6,24,6, - 24,6,60,0,127,0,231,128,193,224,96,240,112,60,60,14, - 15,6,7,131,1,231,0,254,0,60,48,24,48,24,48,56, - 63,240,63,224,63,128,11,4,8,20,4,17,96,192,241,224, - 241,224,96,192,21,20,60,20,255,0,0,252,0,3,255,0, - 15,255,192,30,3,224,56,96,224,113,246,112,115,254,112,231, - 158,56,231,14,56,206,14,56,206,0,56,206,0,56,206,6, - 56,231,15,120,231,254,112,115,252,240,120,241,224,62,7,192, - 31,255,0,7,252,0,11,14,28,20,4,6,31,0,127,128, - 97,128,1,128,63,128,127,128,225,128,193,128,195,128,255,224, - 125,224,0,0,255,224,255,224,15,14,28,20,1,0,3,6, - 7,14,14,28,28,56,56,112,112,224,225,192,225,192,112,224, - 56,112,28,56,14,28,7,14,3,6,16,8,16,20,2,5, - 255,255,255,255,255,255,0,7,0,7,0,7,0,7,0,7, - 15,3,6,20,2,8,255,254,255,254,255,254,21,20,60,20, - 255,0,1,248,0,7,254,0,31,255,128,60,3,192,59,241, - 224,115,252,224,115,254,240,227,158,112,227,142,120,227,142,56, - 227,254,56,227,252,56,227,184,56,243,188,120,115,158,112,123, - 143,240,60,3,224,31,255,192,15,255,0,3,252,0,10,2, - 4,20,5,17,255,192,255,192,9,9,18,20,5,11,28,0, - 119,0,193,128,128,128,128,128,128,128,193,128,119,0,28,0, - 17,18,54,20,1,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,8,14,14,20, - 5,7,60,126,231,195,3,7,14,12,24,56,112,225,255,255, - 9,14,28,20,5,7,62,0,127,0,99,0,3,0,7,0, - 30,0,31,0,3,128,1,128,1,128,193,128,227,0,127,0, - 60,0,8,6,6,20,6,15,6,15,62,120,224,64,18,22, - 66,20,1,249,252,63,0,252,63,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,15,0,30,31,0,31,255,192,31,247,192,29,231, - 192,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,15,24,48,20,2,253,15,254,63,254, - 123,24,243,24,227,24,227,24,227,24,227,24,227,24,115,24, - 63,24,31,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,31,62,31,62,31,62,5,4,4,20, - 7,8,112,248,248,112,5,7,7,20,6,250,48,48,48,24, - 248,248,112,8,13,13,20,6,7,56,248,216,24,24,24,24, - 24,24,24,24,255,255,11,14,28,20,4,6,14,0,63,128, - 113,192,224,224,192,96,192,96,192,96,224,224,113,192,63,128, - 14,0,0,0,255,224,255,224,15,14,28,20,2,0,193,128, - 225,192,112,224,56,112,28,56,14,28,7,14,7,14,14,28, - 28,56,56,112,112,224,225,192,193,128,19,20,60,20,0,0, - 56,0,0,248,0,0,216,0,128,24,1,192,24,1,128,24, - 3,0,24,6,0,24,12,0,24,28,192,24,25,192,255,51, - 192,255,114,192,0,102,192,0,206,192,1,140,192,3,159,224, - 7,31,224,2,0,192,0,1,224,0,1,224,19,20,60,20, - 0,0,56,0,0,248,0,0,216,2,0,24,7,0,24,14, - 0,24,12,0,24,24,0,24,56,0,24,112,0,24,103,128, - 254,239,192,255,220,224,1,152,96,3,0,224,7,1,192,14, - 7,128,4,14,0,0,28,96,0,31,224,0,31,224,19,21, - 63,20,0,0,62,0,0,127,0,0,99,0,0,3,1,0, - 3,3,128,30,7,0,31,6,0,3,142,0,1,156,0,195, - 152,192,227,49,192,127,115,192,28,98,192,0,198,192,1,206, - 192,3,140,192,7,31,224,2,31,224,0,0,192,0,3,224, - 0,3,224,13,21,42,20,3,250,7,0,15,128,15,128,7, - 0,0,0,0,0,0,0,7,0,7,0,7,0,31,0,63, - 0,124,0,240,0,224,0,224,56,224,56,240,56,127,248,63, - 248,31,224,21,26,78,20,255,0,3,0,0,7,128,0,1, - 224,0,0,240,0,0,48,0,0,0,0,31,240,0,31,248, - 0,31,248,0,1,252,0,1,220,0,1,220,0,3,222,0, - 3,142,0,3,142,0,7,7,0,7,7,0,7,7,0,15, - 255,128,15,255,128,31,255,192,28,1,192,28,1,192,255,143, - 248,255,143,248,255,143,248,21,26,78,20,255,0,0,3,0, - 0,15,0,0,30,0,0,120,0,0,96,0,0,0,0,31, - 240,0,31,248,0,31,248,0,1,252,0,1,220,0,1,220, - 0,3,222,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,21,26,78,20,255, - 0,0,64,0,0,224,0,3,184,0,7,28,0,14,14,0, - 0,0,0,31,240,0,31,248,0,31,248,0,1,252,0,1, - 220,0,1,220,0,3,222,0,3,142,0,3,142,0,7,7, - 0,7,7,0,7,7,0,15,255,128,15,255,128,31,255,192, - 28,1,192,28,1,192,255,143,248,255,143,248,255,143,248,21, - 25,75,20,255,0,3,134,0,7,230,0,6,118,0,6,28, - 0,0,0,0,31,240,0,31,248,0,31,248,0,1,252,0, - 1,220,0,1,220,0,3,222,0,3,142,0,3,142,0,7, - 7,0,7,7,0,7,7,0,15,255,128,15,255,128,31,255, - 192,28,1,192,28,1,192,255,143,248,255,143,248,255,143,248, - 21,25,75,20,255,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,31,240,0,31,248,0,31,248,0,1,252, - 0,1,220,0,1,220,0,3,222,0,3,142,0,3,142,0, - 7,7,0,7,7,0,7,7,0,15,255,128,15,255,128,31, - 255,192,28,1,192,28,1,192,255,143,248,255,143,248,255,143, - 248,21,26,78,20,255,0,0,240,0,1,152,0,1,8,0, - 1,152,0,0,240,0,0,0,0,31,240,0,31,248,0,31, - 248,0,1,252,0,1,220,0,1,220,0,3,222,0,3,142, - 0,3,142,0,7,7,0,7,7,0,7,7,0,15,255,128, - 15,255,128,31,255,192,28,1,192,28,1,192,255,143,248,255, - 143,248,255,143,248,20,20,60,20,0,0,31,255,224,31,255, - 224,31,255,224,7,112,224,7,112,224,6,112,224,14,112,224, - 14,115,0,14,115,0,14,127,0,28,127,0,28,115,0,31, - 243,0,31,243,0,56,112,112,56,112,112,56,112,112,255,255, - 240,255,255,240,255,255,240,17,26,78,20,1,250,3,227,0, - 15,255,0,31,255,0,62,31,0,120,15,0,112,7,0,240, - 7,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,240,0,0,112,1,0,120,3,128,62,15,128, - 63,255,0,15,254,0,3,248,0,0,192,0,0,192,0,0, - 224,0,4,112,0,7,240,0,3,224,0,17,26,78,20,1, - 0,3,0,0,7,128,0,1,224,0,0,240,0,0,48,0, - 0,0,0,255,255,0,255,255,0,255,255,0,28,7,0,28, - 7,0,28,7,0,28,119,0,28,112,0,31,240,0,31,240, - 0,31,240,0,28,112,0,28,112,0,28,3,128,28,3,128, - 28,3,128,28,3,128,255,255,128,255,255,128,255,255,128,17, - 26,78,20,1,0,0,12,0,0,60,0,0,120,0,1,224, - 0,1,128,0,0,0,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,26,78,20,1,0,0,128,0,1,192,0,7, - 112,0,14,56,0,28,28,0,0,0,0,255,255,0,255,255, - 0,255,255,0,28,7,0,28,7,0,28,7,0,28,119,0, - 28,112,0,31,240,0,31,240,0,31,240,0,28,112,0,28, - 112,0,28,3,128,28,3,128,28,3,128,28,3,128,255,255, - 128,255,255,128,255,255,128,17,25,75,20,1,0,6,12,0, - 15,30,0,15,30,0,6,12,0,0,0,0,255,255,0,255, - 255,0,255,255,0,28,7,0,28,7,0,28,7,0,28,119, - 0,28,112,0,31,240,0,31,240,0,31,240,0,28,112,0, - 28,112,0,28,3,128,28,3,128,28,3,128,28,3,128,255, - 255,128,255,255,128,255,255,128,13,26,52,20,3,0,24,0, - 60,0,15,0,7,128,1,128,0,0,255,248,255,248,255,248, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,26,52,20,3,0,0,48,0,240,1,224,7,128, - 6,0,0,0,255,248,255,248,255,248,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,13,26,52,20, - 3,0,2,0,7,0,29,192,56,224,112,112,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 255,248,255,248,255,248,13,25,50,20,3,0,48,96,120,240, - 120,240,48,96,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,17,20, - 60,20,2,0,255,224,0,255,248,0,255,252,0,56,62,0, - 56,15,0,56,7,0,56,7,0,56,3,128,255,131,128,255, - 131,128,255,131,128,56,3,128,56,3,128,56,3,128,56,7, - 0,56,7,0,56,30,0,255,254,0,255,252,0,255,240,0, - 20,25,75,20,255,0,3,134,0,7,230,0,6,118,0,6, - 28,0,0,0,0,252,31,240,254,31,240,255,31,240,31,1, - 192,31,129,192,31,129,192,29,193,192,29,225,192,28,225,192, - 28,241,192,28,121,192,28,57,192,28,61,192,28,29,192,28, - 15,192,28,15,192,28,7,192,127,199,192,127,195,192,127,193, - 192,17,26,78,20,1,0,6,0,0,15,0,0,3,192,0, - 1,224,0,0,96,0,0,0,0,7,240,0,15,252,0,31, - 252,0,60,30,0,120,15,0,112,7,0,112,7,0,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 112,7,0,120,7,0,56,14,0,62,62,0,31,252,0,15, - 248,0,3,224,0,17,26,78,20,1,0,0,24,0,0,120, - 0,0,240,0,3,192,0,3,0,0,0,0,0,7,240,0, - 15,252,0,31,252,0,60,30,0,120,15,0,112,7,0,112, - 7,0,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,112,7,0,120,7,0,56,14,0,62,62,0, - 31,252,0,15,248,0,3,224,0,17,26,78,20,1,0,0, - 128,0,1,192,0,7,112,0,14,56,0,28,28,0,0,0, - 0,7,240,0,15,252,0,31,252,0,60,30,0,120,15,0, - 112,7,0,112,7,0,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,112,7,0,120,7,0,56,14, - 0,62,62,0,31,252,0,15,248,0,3,224,0,17,25,75, - 20,1,0,7,12,0,15,204,0,12,236,0,12,56,0,0, - 0,0,7,240,0,15,252,0,31,252,0,60,30,0,120,15, - 0,112,7,0,112,7,0,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,112,7,0,120,7,0,56, - 14,0,62,62,0,31,252,0,15,248,0,3,224,0,17,25, - 75,20,1,0,12,24,0,30,60,0,30,60,0,12,24,0, - 0,0,0,7,240,0,15,252,0,31,252,0,60,30,0,120, - 15,0,112,7,0,112,7,0,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,112,7,0,120,7,0, - 56,14,0,62,62,0,31,252,0,15,248,0,3,224,0,15, - 16,32,20,2,0,224,14,240,30,248,62,120,60,60,120,30, - 240,15,224,7,192,7,192,15,224,30,240,60,120,120,60,248, - 62,240,30,224,14,17,23,69,20,1,254,0,3,128,3,227, - 128,15,255,128,31,255,0,62,62,0,56,30,0,120,63,0, - 112,127,0,224,123,128,224,243,128,225,227,128,225,195,128,227, - 195,128,231,131,128,255,7,128,126,7,0,126,15,0,60,30, - 0,127,252,0,127,248,0,247,240,0,224,0,0,224,0,0, - 19,26,78,20,0,0,3,0,0,7,128,0,1,224,0,0, - 240,0,0,48,0,0,0,0,255,31,224,255,31,224,255,31, - 224,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,28,7,128,31,31,0,15,254,0,7,252, - 0,1,248,0,19,26,78,20,0,0,0,28,0,0,60,0, - 0,240,0,1,224,0,1,128,0,0,0,0,255,31,224,255, - 31,224,255,31,224,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,28,7,128,31,31,0,15, - 254,0,7,252,0,1,248,0,19,26,78,20,0,0,0,64, - 0,0,224,0,3,184,0,7,28,0,14,14,0,0,0,0, - 255,31,224,255,31,224,255,31,224,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,28,7,128, - 31,31,0,15,254,0,7,252,0,1,248,0,19,26,78,20, - 0,0,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,255,191,224,255,191,224,255,191,224,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,28,7,128,31,31,0,15,254,0,7,252,0,1,248,0, - 17,26,78,20,1,0,0,24,0,0,120,0,0,240,0,3, - 192,0,3,0,0,0,0,0,254,63,128,254,63,128,254,63, - 128,60,30,0,28,28,0,30,60,0,14,56,0,15,120,0, - 7,240,0,3,224,0,3,224,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,31,252,0,31,252, - 0,31,252,0,18,20,60,20,1,0,255,128,0,255,128,0, - 255,128,0,28,0,0,31,248,0,31,254,0,31,255,0,28, - 15,128,28,3,128,28,3,192,28,3,192,28,3,128,28,15, - 128,31,255,0,31,254,0,31,248,0,28,0,0,255,128,0, - 255,128,0,255,128,0,17,22,66,20,0,255,3,224,0,7, - 240,0,15,248,0,30,60,0,28,28,0,28,28,0,28,28, - 0,28,60,0,29,248,0,29,248,0,29,254,0,28,31,0, - 28,15,0,28,7,128,28,3,128,28,3,128,29,195,128,29, - 195,128,255,255,0,254,255,0,254,126,0,0,24,0,17,22, - 66,20,2,0,24,0,0,60,0,0,15,0,0,7,128,0, - 1,128,0,0,0,0,0,0,0,15,224,0,63,240,0,63, - 248,0,56,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,124,0,255,255,128, - 127,255,128,63,159,128,17,22,66,20,2,0,0,32,0,0, - 112,0,0,240,0,3,192,0,7,128,0,6,0,0,0,0, - 0,15,224,0,63,240,0,63,248,0,56,60,0,0,28,0, - 0,28,0,15,252,0,63,252,0,127,252,0,120,28,0,224, - 60,0,224,124,0,255,255,128,127,223,128,63,159,128,17,22, - 66,20,1,0,0,128,0,1,192,0,7,112,0,14,56,0, - 28,28,0,0,0,0,0,0,0,7,224,0,63,240,0,63, - 248,0,60,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,60,0,255,255,128, - 127,255,128,63,159,128,17,21,63,20,1,0,14,24,0,31, - 152,0,25,248,0,24,112,0,0,0,0,0,0,0,15,224, - 0,63,240,0,63,248,0,56,60,0,0,28,0,0,28,0, - 15,252,0,63,252,0,127,252,0,120,28,0,240,28,0,224, - 124,0,255,255,128,127,223,128,63,159,128,17,21,63,20,2, - 0,12,24,0,30,60,0,30,60,0,12,24,0,0,0,0, - 0,0,0,15,224,0,63,240,0,63,248,0,56,60,0,0, - 28,0,0,28,0,15,252,0,63,252,0,127,252,0,120,28, - 0,240,28,0,224,124,0,255,255,128,127,223,128,63,159,128, - 17,21,63,20,1,0,3,192,0,6,96,0,4,32,0,6, - 96,0,3,192,0,0,0,0,15,224,0,63,240,0,63,248, - 0,56,60,0,0,28,0,0,28,0,15,252,0,63,252,0, - 127,252,0,120,28,0,240,28,0,224,124,0,255,255,128,127, - 223,128,63,159,128,20,15,45,20,255,0,15,135,0,63,255, - 192,63,255,192,56,253,224,0,112,112,3,240,112,31,255,240, - 127,255,240,255,255,240,240,112,0,224,120,0,241,248,112,127, - 255,240,63,255,240,31,39,128,16,21,42,20,2,250,7,230, - 31,254,63,254,124,62,112,14,240,14,224,14,224,0,224,0, - 224,0,240,6,124,15,63,254,31,252,7,240,1,128,1,128, - 1,192,8,224,15,192,3,128,16,21,42,20,1,0,6,0, - 15,0,3,192,1,224,0,96,0,0,7,224,31,248,63,252, - 124,62,112,14,240,15,255,255,255,255,255,255,224,0,112,0, - 124,15,63,255,31,254,7,240,16,22,44,20,1,0,0,16, - 0,56,0,120,1,224,3,192,3,0,0,0,7,224,31,248, - 63,252,124,62,112,14,240,15,255,255,255,255,255,255,224,0, - 112,0,124,14,63,255,31,254,7,240,16,22,44,20,1,0, - 0,128,1,192,7,112,14,56,28,28,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,16,21,42,20, - 1,0,12,24,30,60,30,60,12,24,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,15,22,44,20, - 2,0,24,0,60,0,15,0,7,128,1,128,0,0,0,0, - 127,128,127,128,127,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,254,255,254,255,254,15,23, - 46,20,2,0,0,128,1,192,3,192,15,0,30,0,24,0, - 0,0,0,0,127,128,127,128,127,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,15,22,44,20,2,0,2,0,7,0,29,192,56,224, - 112,112,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,15,21,42,20,2,0,48,96,120,240,120,240, - 48,96,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,16,21,42,20,2,0,126,14,255,191,255,252, - 3,240,15,240,127,248,124,56,112,60,7,220,31,254,127,254, - 120,30,240,15,224,7,224,7,224,15,240,15,248,62,127,252, - 63,248,31,224,17,21,63,20,1,0,14,24,0,31,152,0, - 25,248,0,24,112,0,0,0,0,0,0,0,249,240,0,251, - 252,0,255,254,0,60,30,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,254,63,128,254,63,128,17,21,63,20,1,0,6, - 0,0,15,0,0,3,192,0,1,224,0,0,96,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,22, - 66,20,1,0,0,16,0,0,56,0,0,120,0,1,224,0, - 3,192,0,3,0,0,0,0,0,7,240,0,15,248,0,63, - 254,0,60,30,0,120,15,0,240,7,128,224,3,128,224,3, - 128,224,3,128,240,7,128,120,15,0,124,31,0,63,254,0, - 31,252,0,7,240,0,17,22,66,20,1,0,0,128,0,1, - 192,0,7,112,0,14,56,0,28,28,0,0,0,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,21, - 63,20,1,0,7,12,0,15,204,0,12,252,0,12,56,0, - 0,0,0,0,0,0,7,240,0,15,248,0,63,254,0,60, - 30,0,120,15,0,240,7,128,224,3,128,224,3,128,224,3, - 128,240,7,128,120,15,0,124,31,0,63,254,0,31,252,0, - 7,240,0,17,21,63,20,1,0,12,24,0,30,60,0,30, - 60,0,12,24,0,0,0,0,0,0,0,7,240,0,15,248, - 0,63,254,0,60,30,0,120,15,0,240,7,128,224,3,128, - 224,3,128,224,3,128,240,7,128,120,15,0,124,31,0,63, - 254,0,31,252,0,7,240,0,15,15,30,20,2,2,3,128, - 7,192,7,192,3,128,0,0,0,0,255,254,255,254,255,254, - 0,0,0,0,3,128,7,192,7,192,3,128,17,18,54,20, - 1,254,0,3,128,3,227,128,15,255,128,63,255,0,62,62, - 0,120,63,0,112,127,0,224,243,128,225,227,128,227,195,128, - 231,131,128,127,7,0,126,31,0,63,254,0,127,252,0,247, - 240,0,224,0,0,224,0,0,18,22,66,20,0,0,3,0, - 0,7,128,0,1,224,0,0,240,0,0,48,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,22,66,20,0,0,0,8,0,0,28,0,0,60,0,0, - 240,0,1,224,0,1,128,0,0,0,0,252,63,0,252,63, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,15,0,28,31,0,31, - 255,192,15,247,192,7,231,192,18,22,66,20,0,0,0,128, - 0,1,192,0,7,112,0,14,56,0,28,28,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,21,63,20,0,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,0,0,0,252,63,0,252,63,0,252,63, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,15,0,28,31,0,31,255,192,15, - 247,192,7,231,192,17,29,87,20,1,249,0,16,0,0,56, - 0,0,120,0,1,224,0,3,192,0,3,0,0,0,0,0, - 254,63,128,254,63,128,254,63,128,120,15,0,56,14,0,60, - 30,0,28,28,0,30,60,0,14,56,0,15,120,0,7,112, - 0,7,240,0,3,224,0,3,224,0,1,192,0,1,192,0, - 3,128,0,3,128,0,7,0,0,255,224,0,255,224,0,255, - 224,0,19,28,84,20,0,249,252,0,0,252,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,252,0,31,255,0, - 31,255,128,31,135,192,31,3,192,30,1,224,28,0,224,28, - 0,224,28,0,224,30,1,224,30,1,192,31,135,192,31,255, - 128,31,255,0,28,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,255,192,0,255,192,0,255,192,0,17,28,84,20, - 1,249,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,254,63,128,254,63,128,254,63,128,120,15,0, - 56,14,0,60,30,0,28,28,0,30,60,0,14,56,0,15, - 120,0,7,112,0,7,240,0,3,224,0,3,224,0,1,192, - 0,1,192,0,3,128,0,3,128,0,7,0,0,255,224,0, - 255,224,0,255,224,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=28 x= 8 y=16 dx=20 dy= 0 ascent=23 len=75 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24r[4775] U8G_FONT_SECTION("u8g_font_courB24r") = { - 0,30,44,249,245,20,5,57,12,115,32,127,249,23,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=17 h=27 x= 7 y= 8 dx=20 dy= 0 ascent=23 len=54 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =23 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24n[707] U8G_FONT_SECTION("u8g_font_courB24n") = { - 0,30,44,249,245,21,0,0,0,0,42,58,0,23,251,21, - 0,15,14,28,20,3,7,3,128,3,128,3,128,3,128,99, - 140,251,190,127,252,31,240,15,224,15,224,30,240,60,120,120, - 60,48,24,17,17,51,20,1,1,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,255,255, - 128,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,7,10,10,20, - 5,251,30,30,60,60,56,112,112,224,224,192,15,3,6,20, - 2,8,255,254,255,254,255,254,5,4,4,20,7,0,112,248, - 248,112,13,27,54,20,3,252,0,56,0,56,0,120,0,112, - 0,112,0,224,0,224,1,224,1,192,1,192,3,128,3,128, - 7,128,7,0,15,0,14,0,14,0,28,0,28,0,60,0, - 56,0,56,0,112,0,112,0,240,0,224,0,224,0,13,21, - 42,20,3,0,15,128,63,224,127,240,112,112,240,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,240,120,112,112,127,240,63,224,15,128,13,21, - 42,20,4,0,3,0,15,0,127,0,255,0,255,0,103,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,14,21, - 42,20,2,0,7,192,31,240,63,248,120,60,112,28,112,28, - 112,28,0,28,0,56,0,120,0,240,1,224,3,192,7,128, - 15,0,30,0,60,0,120,0,255,252,255,252,255,252,15,21, - 42,20,2,0,7,224,31,240,127,248,120,60,112,28,0,28, - 0,28,0,60,7,248,7,240,7,248,0,124,0,28,0,14, - 0,14,0,14,0,30,224,60,255,252,255,248,63,224,14,21, - 42,20,2,0,0,240,1,240,1,240,3,240,7,240,7,112, - 15,112,14,112,30,112,28,112,56,112,120,112,112,112,255,252, - 255,252,255,252,0,112,0,112,3,252,3,252,3,252,15,21, - 42,20,2,0,63,252,63,252,63,252,56,0,56,0,56,0, - 56,0,63,224,63,248,63,252,56,124,0,30,0,14,0,14, - 0,14,0,14,64,30,240,60,255,248,127,248,31,224,14,21, - 42,20,3,0,1,248,7,248,15,248,31,0,60,0,120,0, - 112,0,112,0,227,192,239,240,255,240,248,120,240,60,224,28, - 224,28,240,28,112,60,120,120,127,248,63,240,15,192,14,21, - 42,20,2,0,255,252,255,252,255,252,224,60,224,56,224,56, - 0,56,0,120,0,112,0,112,0,240,0,224,0,224,1,224, - 1,192,1,192,3,192,3,128,7,128,7,0,7,0,14,21, - 42,20,3,0,15,128,63,224,127,240,112,112,224,56,224,56, - 224,56,112,112,127,240,63,224,63,240,124,248,240,60,224,28, - 224,28,224,28,224,28,248,124,127,248,63,240,15,192,14,21, - 42,20,3,0,15,128,63,224,127,240,120,240,240,120,224,56, - 224,60,224,60,224,60,240,124,120,252,63,220,63,156,15,60, - 0,56,0,120,0,112,97,240,255,224,255,128,126,0,5,15, - 15,20,7,0,112,248,248,112,0,0,0,0,0,0,0,112, - 248,248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08[2433] U8G_FONT_SECTION("u8g_font_courR08") = { - 0,10,16,254,252,6,1,151,3,21,32,255,254,9,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,1,7,7,6,2, - 254,128,0,128,128,128,128,128,4,8,8,6,1,255,32,32, - 112,128,128,112,32,32,6,7,7,6,0,0,56,64,248,32, - 32,68,252,5,5,5,6,0,1,136,112,80,112,136,5,7, - 7,6,0,0,136,80,248,32,248,32,112,1,9,9,6,2, - 254,128,128,128,0,0,128,128,128,128,4,8,8,6,1,255, - 112,128,96,144,144,96,16,224,3,1,1,6,2,5,160,6, - 7,7,6,0,0,48,72,180,164,180,72,48,4,5,5,6, - 1,1,224,16,208,0,240,6,3,3,6,0,1,108,216,108, - 5,3,3,6,0,2,248,8,8,4,1,1,6,1,3,240, - 6,7,7,6,0,0,48,72,188,180,172,72,48,4,1,1, - 6,1,5,240,4,3,3,6,1,4,96,144,96,5,6,6, - 6,0,0,32,32,248,32,0,248,3,4,4,6,2,3,96, - 160,64,224,3,4,4,6,2,3,224,64,32,192,2,2,2, - 6,2,5,64,128,6,7,7,6,0,254,216,72,72,72,116, - 64,64,6,8,8,6,0,255,124,168,168,104,40,40,40,108, - 1,2,2,6,2,2,128,128,3,3,3,6,1,254,64,32, - 192,3,4,4,6,2,3,192,64,64,224,4,5,5,6,1, - 1,96,144,96,0,240,6,3,3,6,1,1,216,108,216,6, - 7,7,6,0,0,192,68,72,244,44,92,132,6,7,7,6, - 0,0,192,68,72,252,52,72,156,6,7,7,6,0,0,224, - 68,40,212,44,92,132,4,7,7,6,0,254,32,0,32,32, - 64,144,96,6,9,9,6,0,0,32,16,0,112,40,72,120, - 72,204,6,9,9,6,0,0,16,32,0,112,40,72,120,72, - 204,6,9,9,6,0,0,32,80,0,112,40,72,120,72,204, - 6,9,9,6,0,0,40,80,0,112,40,72,120,72,204,6, - 8,8,6,0,0,80,0,112,40,72,120,72,204,6,9,9, - 6,0,0,16,40,16,112,40,72,120,72,204,6,6,6,6, - 0,0,124,48,92,112,144,156,4,8,8,6,1,254,96,144, - 128,128,144,96,32,192,5,9,9,6,0,0,32,16,0,248, - 72,112,64,72,248,5,9,9,6,0,0,16,32,0,248,72, - 112,64,72,248,5,9,9,6,0,0,32,80,0,248,72,112, - 64,72,248,5,8,8,6,0,0,80,0,248,72,112,64,72, - 248,5,9,9,6,0,0,64,32,0,248,32,32,32,32,248, - 5,9,9,6,0,0,16,32,0,248,32,32,32,32,248,5, - 9,9,6,0,0,32,80,0,248,32,32,32,32,248,5,8, - 8,6,0,0,80,0,248,32,32,32,32,248,5,6,6,6, - 0,0,240,72,232,72,72,240,6,9,9,6,0,0,40,80, - 0,220,72,104,88,72,200,4,9,9,6,1,0,64,32,0, - 96,144,144,144,144,96,4,9,9,6,1,0,32,64,0,96, - 144,144,144,144,96,4,9,9,6,1,0,32,80,0,96,144, - 144,144,144,96,4,9,9,6,1,0,80,160,0,96,144,144, - 144,144,96,4,8,8,6,1,0,160,0,96,144,144,144,144, - 96,5,5,5,6,0,1,136,80,32,80,136,6,6,6,6, - 0,0,52,72,88,104,72,176,6,9,9,6,0,0,32,16, - 0,204,72,72,72,72,48,6,9,9,6,0,0,16,32,0, - 204,72,72,72,72,48,6,9,9,6,0,0,16,40,0,204, - 72,72,72,72,48,6,8,8,6,0,0,80,0,204,72,72, - 72,72,48,5,9,9,6,0,0,16,32,0,216,136,80,32, - 32,112,5,6,6,6,0,0,192,112,72,112,64,224,6,6, - 6,6,0,0,48,72,88,68,84,200,5,8,8,6,0,0, - 64,32,0,96,16,112,144,104,5,8,8,6,0,0,16,32, - 0,96,16,112,144,104,5,8,8,6,0,0,32,80,0,96, - 16,112,144,104,5,8,8,6,0,0,80,160,0,96,16,112, - 144,104,5,7,7,6,0,0,80,0,96,16,112,144,104,5, - 9,9,6,0,0,32,80,32,0,96,16,112,144,104,6,5, - 5,6,0,0,108,148,124,144,236,4,7,7,6,1,254,96, - 144,128,144,96,32,192,4,8,8,6,1,0,64,32,0,96, - 144,240,128,112,4,8,8,6,1,0,32,64,0,96,144,240, - 128,112,4,8,8,6,1,0,64,160,0,96,144,240,128,112, - 4,7,7,6,1,0,160,0,96,144,240,128,112,5,8,8, - 6,0,0,64,32,0,96,32,32,32,248,5,8,8,6,0, - 0,16,32,0,96,32,32,32,248,5,8,8,6,0,0,32, - 80,0,96,32,32,32,248,5,7,7,6,0,0,80,0,96, - 32,32,32,248,4,8,8,6,1,0,208,96,160,112,144,144, - 144,96,6,8,8,6,0,0,40,80,0,176,72,72,72,236, - 4,8,8,6,1,0,64,32,0,96,144,144,144,96,4,8, - 8,6,1,0,16,32,0,96,144,144,144,96,4,8,8,6, - 1,0,64,160,0,96,144,144,144,96,4,8,8,6,1,0, - 80,160,0,96,144,144,144,96,4,7,7,6,1,0,160,0, - 96,144,144,144,96,5,5,5,6,0,1,32,0,248,0,32, - 6,6,6,6,0,0,4,56,88,104,72,176,6,8,8,6, - 0,0,32,16,0,216,72,72,72,52,6,8,8,6,0,0, - 16,32,0,216,72,72,72,52,6,8,8,6,0,0,32,80, - 0,216,72,72,72,52,6,7,7,6,0,0,80,0,216,72, - 72,72,52,5,10,10,6,0,254,16,32,0,216,72,72,72, - 48,32,192,5,9,9,6,0,254,192,64,112,72,72,72,112, - 64,224,5,9,9,6,0,254,80,0,216,72,72,72,48,32, - 192}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08r[1157] U8G_FONT_SECTION("u8g_font_courR08r") = { - 0,10,16,254,252,6,1,151,3,21,32,127,254,8,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10[3052] U8G_FONT_SECTION("u8g_font_courR10") = { - 0,14,20,253,251,9,1,224,3,220,32,255,253,12,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,1,1,9,9,9,4,254,128, - 128,0,128,128,128,128,128,128,5,9,9,9,2,0,32,32, - 120,136,128,136,112,32,32,7,9,9,9,1,0,24,36,32, - 32,120,32,32,66,252,6,6,6,9,1,1,180,72,132,132, - 72,180,7,9,9,9,1,0,238,68,68,40,124,16,124,16, - 56,1,11,11,9,3,254,128,128,128,128,0,0,128,128,128, - 128,128,6,10,10,9,1,255,60,68,64,240,136,68,60,8, - 136,240,5,1,1,9,2,8,216,8,9,9,9,0,0,60, - 66,153,165,161,165,153,66,60,4,6,6,9,2,3,192,32, - 224,176,0,240,8,7,7,9,0,0,17,34,68,204,68,34, - 17,7,3,3,9,1,3,254,2,2,6,1,1,9,1,4, - 252,8,9,9,9,0,0,60,66,185,165,185,169,165,66,60, - 4,1,1,9,2,8,240,4,4,4,9,2,6,96,144,144, - 96,7,7,7,9,1,1,16,16,254,16,16,0,254,4,6, - 6,9,2,4,96,144,16,32,64,240,4,6,6,9,2,4, - 96,144,96,16,144,96,4,2,2,9,2,8,48,192,8,10, - 10,9,0,253,198,66,66,66,66,70,123,64,64,64,7,10, - 10,9,1,255,126,148,148,148,116,20,20,20,20,62,2,2, - 2,9,3,3,192,192,3,3,3,9,2,253,64,32,224,3, - 6,6,9,3,4,64,192,64,64,64,224,4,6,6,9,2, - 3,96,144,144,96,0,240,8,7,7,9,0,0,136,68,34, - 51,34,68,136,10,10,20,9,255,0,64,0,193,0,66,0, - 68,0,68,128,233,128,18,128,20,128,39,192,64,128,10,10, - 20,9,255,0,64,0,193,0,66,0,68,0,69,128,234,64, - 16,64,16,128,33,0,67,192,10,10,20,9,255,0,96,0, - 145,0,98,0,20,0,148,128,105,128,18,128,20,128,39,192, - 64,128,5,9,9,9,2,254,32,32,0,32,96,128,128,136, - 112,9,12,24,9,0,0,48,0,12,0,0,0,56,0,8, - 0,20,0,20,0,34,0,62,0,65,0,65,0,247,128,9, - 12,24,9,0,0,12,0,48,0,0,0,56,0,8,0,20, - 0,20,0,34,0,62,0,65,0,65,0,247,128,9,12,24, - 9,0,0,8,0,20,0,0,0,56,0,8,0,20,0,20, - 0,34,0,62,0,65,0,65,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,56,0,8,0,20,0,20,0,34, - 0,62,0,65,0,65,0,247,128,9,11,22,9,0,0,54, - 0,0,0,56,0,8,0,20,0,20,0,34,0,62,0,65, - 0,65,0,247,128,9,12,24,9,0,0,24,0,36,0,24, - 0,56,0,8,0,20,0,20,0,34,0,62,0,65,0,65, - 0,247,128,9,9,18,9,255,0,31,128,12,128,20,0,20, - 128,39,128,60,128,68,0,68,128,239,128,7,12,12,9,1, - 253,58,70,130,128,128,128,128,66,60,16,8,56,7,12,12, - 9,1,0,96,24,0,254,66,66,72,120,72,66,66,254,7, - 12,12,9,1,0,12,48,0,254,66,66,72,120,72,66,66, - 254,7,12,12,9,1,0,16,40,0,254,66,66,72,120,72, - 66,66,254,7,11,11,9,1,0,108,0,254,66,66,72,120, - 72,66,66,254,5,12,12,9,2,0,192,48,0,248,32,32, - 32,32,32,32,32,248,5,12,12,9,2,0,24,96,0,248, - 32,32,32,32,32,32,32,248,5,12,12,9,2,0,32,80, - 0,248,32,32,32,32,32,32,32,248,5,11,11,9,2,0, - 216,0,248,32,32,32,32,32,32,32,248,8,9,9,9,0, - 0,252,66,65,65,241,65,65,66,252,8,12,12,9,0,0, - 26,44,0,231,98,82,82,74,74,70,70,226,8,12,12,9, - 0,0,48,12,0,60,66,129,129,129,129,129,66,60,8,12, - 12,9,0,0,12,48,0,60,66,129,129,129,129,129,66,60, - 8,12,12,9,0,0,16,40,0,60,66,129,129,129,129,129, - 66,60,8,12,12,9,0,0,26,44,0,60,66,129,129,129, - 129,129,66,60,8,11,11,9,0,0,102,0,60,66,129,129, - 129,129,129,66,60,7,7,7,9,1,1,130,68,40,16,40, - 68,130,9,9,18,9,255,0,30,128,33,0,66,128,68,128, - 72,128,80,128,32,128,97,0,158,0,8,12,12,9,0,0, - 48,12,0,231,66,66,66,66,66,66,66,60,8,12,12,9, - 0,0,12,48,0,231,66,66,66,66,66,66,66,60,8,12, - 12,9,0,0,16,40,0,231,66,66,66,66,66,66,66,60, - 8,11,11,9,0,0,102,0,231,66,66,66,66,66,66,66, - 60,7,12,12,9,1,0,12,48,0,238,68,68,40,40,16, - 16,16,124,7,9,9,9,0,0,224,64,124,66,66,66,124, - 64,224,7,9,9,9,0,0,56,68,68,88,68,66,66,82, - 204,7,10,10,9,1,0,96,24,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,24,96,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,16,40,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,52,88,0,120,132,4,124,132,140, - 118,7,9,9,9,1,0,108,0,120,132,4,124,132,140,118, - 7,10,10,9,1,0,48,72,48,120,132,4,124,132,140,118, - 8,7,7,9,0,0,118,137,9,127,136,137,118,7,10,10, - 9,1,253,58,70,130,128,128,66,60,16,8,56,7,10,10, - 9,1,0,96,24,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,12,48,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,16,40,0,56,68,130,254,128,66,60,7,9,9, - 9,1,0,108,0,56,68,130,254,128,66,60,5,10,10,9, - 2,0,192,48,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,48,192,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,32,80,0,224,32,32,32,32,32,248,5,9,9,9, - 2,0,216,0,224,32,32,32,32,32,248,8,12,12,9,0, - 0,2,228,24,40,68,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,220,98,66,66,66,66,231,8,10,10, - 9,0,0,48,12,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,12,48,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,16,40,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,60,66,129,129,129,66,60,8,9,9, - 9,0,0,108,0,60,66,129,129,129,66,60,8,7,7,9, - 0,1,24,24,0,255,0,24,24,8,7,7,9,0,0,61, - 70,137,145,161,66,188,8,10,10,9,0,0,48,12,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,12,48,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,16,40,0,198, - 66,66,66,66,70,59,8,9,9,9,0,0,108,0,198,66, - 66,66,66,70,59,8,13,13,9,0,253,6,24,0,231,66, - 66,36,36,24,8,16,16,120,8,12,12,9,0,253,192,64, - 92,98,65,65,65,98,92,64,64,240,8,12,12,9,0,253, - 54,0,231,66,66,36,36,24,8,16,16,120}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=11 len=18 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10r[1443] U8G_FONT_SECTION("u8g_font_courR10r") = { - 0,14,20,253,251,9,1,224,3,220,32,127,253,11,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12[3471] U8G_FONT_SECTION("u8g_font_courR12") = { - 0,15,24,253,250,10,2,12,4,92,32,255,253,14,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,10,0,1,1,10, - 10,10,4,253,128,128,0,128,128,128,128,128,128,128,5,10, - 10,10,2,0,32,32,120,136,128,128,136,112,32,32,8,10, - 10,10,1,0,28,34,32,32,248,32,32,32,65,255,7,7, - 7,10,1,1,130,124,68,68,68,124,130,9,10,20,10,0, - 0,227,128,65,0,34,0,34,0,20,0,62,0,8,0,62, - 0,8,0,62,0,1,12,12,10,4,254,128,128,128,128,128, - 0,0,128,128,128,128,128,9,12,24,10,0,255,31,0,33, - 0,33,0,112,0,140,0,131,0,96,128,24,128,7,0,66, - 0,66,0,124,0,4,2,2,10,3,8,144,144,10,10,20, - 10,0,0,30,0,33,0,64,128,142,64,144,64,144,64,142, - 64,64,128,33,0,30,0,5,7,7,10,2,3,112,8,120, - 136,120,0,248,7,7,7,10,1,0,18,36,72,144,72,36, - 18,7,4,4,10,1,2,254,2,2,2,7,1,1,10,1, - 4,254,10,10,20,10,0,0,30,0,33,0,64,128,156,64, - 146,64,156,64,146,64,64,128,33,0,30,0,5,1,1,10, - 2,8,248,5,5,5,10,2,6,112,136,136,136,112,7,9, - 9,10,1,0,16,16,16,254,16,16,16,0,254,4,6,6, - 10,2,5,96,144,32,64,144,240,4,6,6,10,3,5,96, - 144,32,16,144,96,3,3,3,10,4,8,32,64,128,8,10, - 10,10,1,253,198,66,66,66,66,70,123,64,64,64,7,12, - 12,10,1,255,62,84,148,148,148,84,52,20,20,20,20,62, - 2,2,2,10,4,4,192,192,3,4,4,10,3,253,64,64, - 32,224,5,6,6,10,2,5,32,224,32,32,32,248,5,7, - 7,10,2,3,112,136,136,136,112,0,248,7,7,7,10,1, - 0,144,72,36,18,36,72,144,10,11,22,10,0,0,32,0, - 224,64,32,128,33,0,34,0,252,128,9,128,18,128,36,128, - 71,192,0,128,10,11,22,10,0,0,32,0,224,64,32,128, - 33,0,34,0,253,128,10,64,16,128,33,0,66,64,3,192, - 10,11,22,10,0,0,96,0,144,64,32,128,17,0,146,0, - 100,128,9,128,18,128,36,128,71,192,0,128,6,10,10,10, - 1,253,16,16,0,16,16,96,128,132,132,120,9,14,28,10, - 0,0,32,0,16,0,8,0,0,0,120,0,20,0,20,0, - 34,0,34,0,34,0,62,0,65,0,65,0,227,128,9,14, - 28,10,0,0,4,0,8,0,16,0,0,0,120,0,20,0, - 20,0,34,0,34,0,34,0,62,0,65,0,65,0,227,128, - 9,14,28,10,0,0,8,0,20,0,34,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,50,0,76,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,36,0,36,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,14,28,10,0,0,24,0,36,0,36,0,24,0, - 120,0,20,0,20,0,34,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,10,20,10,0,0,127,128,40,128,40,128, - 74,0,78,0,122,0,72,128,136,128,136,128,223,128,8,13, - 13,10,1,253,29,99,65,128,128,128,128,65,99,28,16,8, - 56,7,14,14,10,1,0,32,16,8,0,254,66,66,72,120, - 72,64,66,66,254,7,14,14,10,1,0,4,8,16,0,254, - 66,66,72,120,72,64,66,66,254,7,14,14,10,1,0,16, - 40,68,0,254,66,66,72,120,72,64,66,66,254,7,13,13, - 10,1,0,36,36,0,254,66,66,72,120,72,64,66,66,254, - 7,14,14,10,1,0,32,16,8,0,254,16,16,16,16,16, - 16,16,16,254,7,14,14,10,1,0,8,16,32,0,254,16, - 16,16,16,16,16,16,16,254,7,14,14,10,1,0,16,40, - 68,0,254,16,16,16,16,16,16,16,16,254,7,13,13,10, - 1,0,68,68,0,254,16,16,16,16,16,16,16,16,254,8, - 10,10,10,1,0,248,70,66,65,241,65,65,66,70,248,9, - 13,26,10,0,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,243,0,8, - 14,14,10,1,0,32,16,8,0,60,66,66,129,129,129,129, - 66,66,60,8,14,14,10,1,0,4,8,16,0,60,66,66, - 129,129,129,129,66,66,60,8,14,14,10,1,0,8,20,34, - 0,60,66,66,129,129,129,129,66,66,60,8,13,13,10,1, - 0,50,76,0,60,66,66,129,129,129,129,66,66,60,8,13, - 13,10,1,0,36,36,0,60,66,66,129,129,129,129,66,66, - 60,7,7,7,10,1,1,130,68,40,16,40,68,130,8,10, - 10,10,1,0,61,66,66,133,137,145,161,66,66,188,9,14, - 28,10,0,0,16,0,8,0,4,0,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,14,28,10,0,0,2,0,4,0,8,0,0,0,247,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 28,0,9,14,28,10,0,0,8,0,20,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,13,26,10,0,0,34,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,14,28,10,0,0,2,0,4,0,8,0, - 0,0,227,128,65,0,34,0,34,0,20,0,8,0,8,0, - 8,0,8,0,62,0,8,10,10,10,1,0,224,64,124,66, - 65,66,124,64,64,224,7,11,11,10,1,0,56,68,68,72, - 88,68,66,66,66,82,204,7,11,11,10,1,0,32,16,8, - 0,56,68,4,124,132,132,122,7,11,11,10,1,0,4,8, - 16,0,56,68,4,124,132,132,122,7,11,11,10,1,0,16, - 40,68,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 50,76,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 36,36,0,56,68,4,124,132,132,122,7,12,12,10,1,0, - 24,36,36,24,0,56,68,4,124,132,132,122,9,7,14,10, - 0,0,55,0,72,128,8,128,127,128,136,0,136,128,119,0, - 7,10,10,10,1,253,58,70,130,128,128,66,60,16,8,56, - 7,11,11,10,1,0,32,16,8,0,56,68,130,254,128,66, - 60,7,11,11,10,1,0,4,8,16,0,56,68,130,254,128, - 66,60,7,11,11,10,1,0,16,40,68,0,56,68,130,254, - 128,66,60,7,10,10,10,1,0,36,36,0,56,68,130,254, - 128,66,60,7,11,11,10,1,0,32,16,8,0,112,16,16, - 16,16,16,254,7,11,11,10,1,0,8,16,32,0,112,16, - 16,16,16,16,254,7,11,11,10,1,0,16,40,68,0,112, - 16,16,16,16,16,254,7,10,10,10,1,0,72,72,0,112, - 16,16,16,16,16,254,7,11,11,10,1,0,230,24,104,4, - 60,66,130,130,130,68,56,8,10,10,10,1,0,50,76,0, - 220,98,66,66,66,66,231,7,11,11,10,1,0,32,16,8, - 0,56,68,130,130,130,68,56,7,11,11,10,1,0,8,16, - 32,0,56,68,130,130,130,68,56,7,11,11,10,1,0,16, - 40,68,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 50,76,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 68,68,0,56,68,130,130,130,68,56,8,7,7,10,1,1, - 24,24,0,255,0,24,24,7,9,9,10,1,255,2,58,68, - 138,146,162,68,184,128,8,11,11,10,1,0,32,16,8,0, - 198,66,66,66,66,70,59,8,11,11,10,1,0,4,8,16, - 0,198,66,66,66,66,70,59,8,11,11,10,1,0,16,40, - 68,0,198,66,66,66,66,70,59,8,10,10,10,1,0,36, - 36,0,198,66,66,66,66,70,59,9,14,28,10,0,253,2, - 0,4,0,8,0,0,0,227,128,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,120,0,8,14,14,10,1, - 253,192,64,64,64,92,98,65,65,65,98,92,64,64,240,9, - 13,26,10,0,253,18,0,18,0,0,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,16,0,120,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12r[1592] U8G_FONT_SECTION("u8g_font_courR12r") = { - 0,15,24,253,250,10,2,12,4,92,32,127,253,12,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y=10 dx=11 dy= 0 ascent=15 len=32 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14[4276] U8G_FONT_SECTION("u8g_font_courR14") = { - 0,16,26,253,249,11,2,74,5,74,32,255,252,15,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,11,0,1,2,12,12,11,4,252, - 192,192,0,0,128,128,192,192,192,192,192,192,6,12,12,11, - 2,0,16,16,16,60,68,132,128,128,68,56,16,16,8,11, - 11,11,2,0,28,34,32,32,16,252,16,32,33,65,126,6, - 7,7,11,2,2,132,120,132,132,132,120,132,9,11,22,11, - 1,0,227,128,65,0,34,0,34,0,20,0,20,0,127,0, - 8,0,127,0,8,0,62,0,1,15,15,11,5,253,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,7,14,14, - 11,2,254,62,66,66,64,112,140,130,98,28,6,130,130,132, - 252,4,2,2,11,3,10,144,144,11,11,22,11,0,0,31, - 0,96,192,79,64,145,32,160,32,160,32,160,32,145,32,78, - 64,96,192,31,0,6,8,8,11,2,3,112,8,120,136,152, - 236,0,252,10,8,16,11,1,0,24,192,49,128,99,0,198, - 0,198,0,99,0,49,128,24,192,9,4,8,11,1,3,255, - 128,0,128,0,128,0,128,8,1,1,11,1,5,255,11,11, - 22,11,0,0,31,0,96,192,94,64,145,32,145,32,158,32, - 148,32,146,32,81,64,96,128,31,0,5,1,1,11,3,10, - 248,5,5,5,11,3,6,112,136,136,136,112,9,9,18,11, - 1,1,8,0,8,0,8,0,255,128,8,0,8,0,8,0, - 0,0,255,128,5,7,7,11,3,5,112,136,8,16,32,64, - 248,5,7,7,11,3,5,112,136,8,48,8,136,112,3,3, - 3,11,4,9,32,64,128,9,12,24,11,1,252,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,125,128,64,0,64, - 0,64,0,64,0,8,14,14,11,1,254,63,74,138,138,138, - 74,58,10,10,10,10,10,10,59,2,2,2,11,4,5,192, - 192,3,3,3,11,4,253,64,32,192,5,7,7,11,3,5, - 32,224,32,32,32,32,248,6,8,8,11,2,3,120,132,132, - 132,132,120,0,252,10,8,16,11,0,0,198,0,99,0,49, - 128,24,192,24,192,49,128,99,0,198,0,11,12,24,11,0, - 0,32,0,224,64,32,128,33,0,33,0,34,64,252,192,9, - 64,10,64,19,224,32,64,0,224,11,12,24,11,0,0,32, - 0,224,64,32,128,33,0,33,0,34,192,253,32,8,32,8, - 64,16,128,33,0,3,224,11,12,24,11,0,0,112,0,136, - 64,8,128,49,0,9,0,138,64,116,192,9,64,10,64,19, - 224,32,64,0,224,6,11,11,11,2,253,24,24,0,16,16, - 112,128,128,132,132,120,11,15,30,11,0,0,16,0,8,0, - 4,0,0,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,15,30,11,0,0, - 1,0,2,0,4,0,0,0,60,0,4,0,10,0,10,0, - 17,0,17,0,32,128,63,128,64,64,64,64,241,224,11,15, - 30,11,0,0,12,0,18,0,33,0,0,0,60,0,4,0, - 10,0,10,0,17,0,17,0,32,128,63,128,64,64,64,64, - 241,224,11,14,28,11,0,0,25,0,38,0,0,0,60,0, - 4,0,10,0,10,0,17,0,17,0,32,128,63,128,64,64, - 64,64,241,224,11,14,28,11,0,0,18,0,18,0,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,11,15,30,11,0,0,12,0,18,0, - 18,0,12,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,11,22,11,255,0, - 31,224,6,32,10,32,10,0,18,64,19,192,62,64,34,0, - 66,32,66,32,231,224,9,14,28,11,1,253,30,128,97,128, - 64,128,128,0,128,0,128,0,128,0,128,0,64,128,97,0, - 30,0,8,0,4,0,24,0,8,15,15,11,1,0,32,16, - 8,0,255,65,65,65,72,120,72,65,65,65,255,8,15,15, - 11,1,0,4,8,16,0,255,65,65,65,72,120,72,65,65, - 65,255,8,15,15,11,1,0,24,36,66,0,255,65,65,65, - 72,120,72,65,65,65,255,8,14,14,11,1,0,36,36,0, - 255,65,65,65,72,120,72,65,65,65,255,7,15,15,11,2, - 0,32,16,8,0,254,16,16,16,16,16,16,16,16,16,254, - 7,15,15,11,2,0,8,16,32,0,254,16,16,16,16,16, - 16,16,16,16,254,7,15,15,11,2,0,24,36,66,0,254, - 16,16,16,16,16,16,16,16,16,254,7,14,14,11,2,0, - 36,36,0,254,16,16,16,16,16,16,16,16,16,254,8,11, - 11,11,1,0,252,66,65,65,65,241,65,65,65,66,252,9, - 14,28,11,1,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,15,30,11,1,0,16,0,8,0,4,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,9,15,30,11,1,0,4,0,8,0,16, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,11,1,0,12, - 0,18,0,33,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,25,0,38,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,18,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,9,18,11,1,1,128,128,65,0,34,0,20,0,8, - 0,20,0,34,0,65,0,128,128,11,11,22,11,0,0,14, - 32,49,192,32,128,65,64,66,64,68,64,72,64,80,64,32, - 128,113,128,142,0,10,15,30,11,0,0,16,0,8,0,4, - 0,0,0,243,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,10,15,30,11,0,0,2, - 0,4,0,8,0,0,0,243,192,64,128,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,33,0,30,0,10,15,30, - 11,0,0,12,0,18,0,33,0,0,0,243,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,33,0,30, - 0,10,14,28,11,0,0,18,0,18,0,0,0,243,192,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,9,15,30,11,1,0,2,0,4,0,8,0,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,8,0,8,0,62,0,9,11,22,11,1,0,224,0,64, - 0,126,0,65,0,64,128,64,128,65,0,126,0,64,0,64, - 0,224,0,8,11,11,11,1,0,60,66,66,68,88,70,65, - 65,65,73,230,9,12,24,11,1,0,32,0,16,0,8,0, - 0,0,60,0,66,0,2,0,126,0,130,0,130,0,134,0, - 123,128,9,12,24,11,1,0,4,0,8,0,16,0,0,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,24,0,36,0,66,0,0,0,60,0, - 66,0,2,0,126,0,130,0,130,0,134,0,123,128,9,11, - 22,11,1,0,50,0,76,0,0,0,60,0,66,0,2,0, - 126,0,130,0,130,0,134,0,123,128,9,11,22,11,1,0, - 36,0,36,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,9,13,26,11,1,0,24,0,36,0, - 36,0,24,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,11,8,16,11,0,0,113,128,138,64, - 4,32,127,224,132,0,132,0,138,32,113,192,8,11,11,11, - 1,253,61,67,129,128,128,128,67,60,16,8,48,8,12,12, - 11,1,0,32,16,8,0,60,66,129,255,128,128,67,60,8, - 12,12,11,1,0,2,4,8,0,60,66,129,255,128,128,67, - 60,8,12,12,11,1,0,24,36,66,0,60,66,129,255,128, - 128,67,60,8,11,11,11,1,0,36,36,0,60,66,129,255, - 128,128,67,60,7,12,12,11,2,0,32,16,8,0,112,16, - 16,16,16,16,16,254,7,12,12,11,2,0,8,16,32,0, - 112,16,16,16,16,16,16,254,7,12,12,11,2,0,48,72, - 132,0,112,16,16,16,16,16,16,254,7,11,11,11,2,0, - 72,72,0,112,16,16,16,16,16,16,254,8,12,12,11,1, - 0,114,140,52,66,62,67,129,129,129,129,66,60,9,11,22, - 11,1,0,50,0,76,0,0,0,222,0,97,0,65,0,65, - 0,65,0,65,0,65,0,227,128,8,12,12,11,1,0,32, - 16,8,0,60,66,129,129,129,129,66,60,8,12,12,11,1, - 0,4,8,16,0,60,66,129,129,129,129,66,60,8,12,12, - 11,1,0,24,36,66,0,60,66,129,129,129,129,66,60,8, - 11,11,11,1,0,50,76,0,60,66,129,129,129,129,66,60, - 8,11,11,11,1,0,36,36,0,60,66,129,129,129,129,66, - 60,8,9,9,11,1,1,24,24,0,0,255,0,0,24,24, - 8,8,8,11,1,0,61,66,133,137,145,161,66,188,9,12, - 24,11,1,0,32,0,16,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,11, - 1,0,2,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,11,1,0, - 24,0,36,0,66,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,11,1,0,36,0, - 36,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,9,16,32,11,1,252,2,0,4,0,8,0, - 0,0,227,128,65,0,65,0,34,0,34,0,20,0,20,0, - 8,0,8,0,16,0,16,0,248,0,9,16,32,11,1,252, - 192,0,64,0,64,0,64,0,94,0,97,0,64,128,64,128, - 64,128,64,128,97,0,94,0,64,0,64,0,64,0,240,0, - 9,15,30,11,1,252,36,0,36,0,0,0,227,128,65,0, - 65,0,34,0,34,0,20,0,20,0,8,0,8,0,16,0, - 16,0,248,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y= 9 dx=11 dy= 0 ascent=13 len=26 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14r[1988] U8G_FONT_SECTION("u8g_font_courR14r") = { - 0,16,26,253,249,11,2,74,5,74,32,127,252,13,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=19 len=42 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18[6152] U8G_FONT_SECTION("u8g_font_courR18") = { - 0,23,32,251,248,14,3,161,7,151,32,255,251,19,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,15,0,1,2,16,16,15,6,251,192,192,0,0,0,128, - 128,128,192,192,192,192,192,192,192,192,8,16,16,15,3,0, - 8,8,8,8,29,99,65,128,128,128,64,99,28,8,8,8, - 10,14,28,15,2,0,14,0,17,128,32,0,32,0,32,0, - 32,0,254,0,16,0,16,0,16,0,16,0,32,64,64,64, - 255,128,10,10,20,15,2,2,128,64,94,128,33,0,64,128, - 64,128,64,128,64,128,33,0,94,128,128,64,11,14,28,15, - 2,0,241,224,64,64,32,128,32,128,17,0,17,0,10,0, - 127,192,4,0,4,0,127,192,4,0,4,0,63,128,1,19, - 19,15,7,253,128,128,128,128,128,128,128,128,0,0,0,128, - 128,128,128,128,128,128,128,10,18,36,15,2,254,15,192,16, - 64,32,64,32,64,32,0,112,0,140,0,130,0,65,0,32, - 128,16,64,12,64,3,128,1,0,129,0,129,0,130,0,252, - 0,7,2,2,15,4,12,198,198,13,13,26,15,1,1,15, - 128,48,96,64,16,70,144,137,136,144,136,144,8,144,8,136, - 136,71,16,64,16,48,96,15,128,7,9,9,15,4,5,120, - 132,60,68,132,140,118,0,254,12,11,22,15,1,0,6,48, - 12,96,24,192,49,128,99,0,198,0,99,0,49,128,24,192, - 12,96,6,48,11,4,8,15,2,5,255,224,0,32,0,32, - 0,32,10,1,2,15,2,7,255,192,13,13,26,15,1,1, - 15,128,48,96,64,16,79,16,136,136,136,136,143,8,137,8, - 136,136,72,144,64,16,48,96,15,128,7,1,1,15,4,12, - 254,7,7,7,15,4,9,56,68,130,130,130,68,56,11,13, - 26,15,2,1,4,0,4,0,4,0,4,0,4,0,255,224, - 4,0,4,0,4,0,4,0,4,0,0,0,255,224,6,9, - 9,15,4,7,56,68,132,4,8,16,32,68,252,6,9,9, - 15,4,7,120,132,4,8,56,4,4,132,120,5,4,4,15, - 5,12,24,48,96,192,12,16,32,15,1,251,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,48,160, - 47,48,32,0,32,0,32,0,32,0,32,0,11,18,36,15, - 2,254,31,224,100,128,196,128,196,128,196,128,196,128,196,128, - 100,128,28,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,128,4,128,60,224,3,3,3,15,6,6,224,224,224,4, - 5,5,15,5,252,32,32,16,144,96,7,9,9,15,4,7, - 48,208,16,16,16,16,16,16,254,7,9,9,15,4,5,56, - 68,130,130,130,68,56,0,254,12,11,22,15,1,0,198,0, - 99,0,49,128,24,192,12,96,6,48,12,96,24,192,49,128, - 99,0,198,0,14,16,32,15,0,0,48,0,208,0,16,8, - 16,16,16,32,16,32,16,64,16,152,255,40,2,72,4,72, - 4,136,9,8,17,252,0,8,0,28,14,16,32,15,0,0, - 48,0,208,0,16,8,16,16,16,32,16,32,16,64,16,184, - 255,68,2,132,4,4,4,8,8,16,16,32,0,68,0,252, - 14,16,32,15,0,0,120,0,132,0,4,8,8,16,56,32, - 4,32,4,64,132,152,121,40,2,72,4,72,4,136,9,8, - 17,252,0,8,0,28,8,14,14,15,3,253,24,24,0,0, - 8,8,48,64,128,128,128,129,65,62,13,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,63,0,5,0,8,128, - 8,128,8,128,16,64,16,64,16,64,63,224,32,32,32,32, - 64,16,64,16,240,120,13,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,13,18, - 36,15,1,0,28,64,54,192,35,128,0,0,63,0,5,0, - 8,128,8,128,8,128,16,64,16,64,16,64,63,224,32,32, - 32,32,64,16,64,16,240,120,13,18,36,15,1,0,24,192, - 24,192,0,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,7,0,8,128,8,128,8,128, - 7,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,15,14, - 28,15,255,0,15,254,2,130,4,130,4,130,4,136,8,136, - 8,248,8,136,31,136,16,130,16,130,32,130,32,130,243,254, - 11,18,36,15,2,252,15,32,48,224,96,96,64,32,128,0, - 128,0,128,0,128,0,128,0,128,0,64,32,96,96,48,192, - 15,0,4,0,2,0,18,0,12,0,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,255,224,32,32,32,32, - 32,32,34,0,34,0,62,0,34,0,34,0,32,16,32,16, - 32,16,32,16,255,240,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,255,224,32,32,32,32,32,32,34,0, - 34,0,62,0,34,0,34,0,32,16,32,16,32,16,32,16, - 255,240,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,255,224,32,32,32,32,32,32,34,0,34,0,62,0, - 34,0,34,0,32,16,32,16,32,16,32,16,255,240,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,255,224,32,32, - 32,32,32,32,34,0,34,0,62,0,34,0,34,0,32,16, - 32,16,32,16,32,16,255,240,9,19,38,15,3,0,96,0, - 48,0,24,0,12,0,0,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,255,128,9,19,38,15,3,0,3,0,6,0,12,0, - 24,0,0,0,255,128,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,19,38,15,3,0,24,0,60,0,102,0,195,0,0,0, - 255,128,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,255,128,9,18,36,15, - 3,0,99,0,99,0,0,0,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,13,14,28,15,0,0,127,192,32,48, - 32,16,32,8,32,8,32,8,252,8,32,8,32,8,32,8, - 32,8,32,16,32,48,127,192,14,18,36,15,0,0,14,32, - 27,96,17,192,0,0,240,252,48,16,40,16,36,16,36,16, - 34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48, - 252,48,13,19,38,15,1,0,24,0,12,0,6,0,3,0, - 0,0,15,128,48,96,96,48,64,16,128,8,128,8,128,8, - 128,8,128,8,128,8,64,16,96,48,48,96,15,128,13,19, - 38,15,1,0,0,96,0,192,1,128,3,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,13,19,38,15,1,0, - 3,0,7,128,12,192,24,96,0,0,15,128,48,96,96,48, - 64,16,128,8,128,8,128,8,128,8,128,8,128,8,64,16, - 96,48,48,96,15,128,13,18,36,15,1,0,14,32,27,96, - 17,192,0,0,15,128,48,96,96,48,64,16,128,8,128,8, - 128,8,128,8,128,8,128,8,64,16,96,48,48,96,15,128, - 13,18,36,15,1,0,24,192,24,192,0,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,11,11,22,15,2,2, - 128,32,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,128,32,14,15,30,15,0,0,0,4,7,200, - 24,48,48,48,32,72,64,136,64,136,65,8,66,8,68,8, - 72,8,48,16,48,48,88,96,135,128,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,249,240,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,32,64,31,128,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,249,240,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,32,64, - 31,128,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,249,240,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,32,64,31,128,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,249,240,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,32,64,31,128,13,19,38,15,1,0,0,192, - 1,128,3,0,6,0,0,0,240,120,32,32,16,64,16,64, - 8,128,8,128,5,0,2,0,2,0,2,0,2,0,2,0, - 2,0,31,192,11,14,28,15,2,0,248,0,32,0,32,0, - 63,128,32,64,32,32,32,32,32,32,32,32,32,64,63,128, - 32,0,32,0,248,0,11,16,32,15,2,0,14,0,17,0, - 32,128,32,128,32,128,32,128,33,0,39,0,32,192,32,64, - 32,32,32,32,32,32,36,32,36,64,243,128,11,16,32,15, - 2,0,48,0,24,0,12,0,6,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,16,32,15,2,0,1,128,3,0,6,0,12,0, - 0,0,30,0,97,0,0,128,0,128,0,128,63,128,64,128, - 128,128,128,128,129,128,126,224,11,16,32,15,2,0,12,0, - 30,0,51,0,97,128,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,11,15, - 30,15,2,0,56,128,109,128,71,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,15,30,15,2,0,49,128,49,128,0,0,0,0, - 30,0,97,0,0,128,0,128,0,128,63,128,64,128,128,128, - 128,128,129,128,126,224,11,17,34,15,2,0,14,0,17,0, - 17,0,17,0,14,0,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,15,11, - 22,15,0,0,28,112,98,140,65,4,1,2,1,2,63,254, - 65,0,129,0,129,2,130,132,124,120,11,15,30,15,2,252, - 31,64,96,192,64,64,128,64,128,0,128,0,128,0,128,0, - 64,96,96,192,31,0,4,0,2,0,18,0,12,0,11,16, - 32,15,2,0,48,0,24,0,12,0,6,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,11,16,32,15,2,0,1,128,3,0,6,0, - 12,0,0,0,31,0,96,192,64,64,128,32,128,32,255,224, - 128,0,128,0,64,0,96,96,31,128,11,16,32,15,2,0, - 12,0,30,0,51,0,97,128,0,0,31,0,96,192,64,64, - 128,32,128,32,255,224,128,0,128,0,64,0,96,96,31,128, - 11,15,30,15,2,0,49,128,49,128,0,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,9,16,32,15,3,0,96,0,48,0,24,0, - 12,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,9,16,32,15,3,0, - 3,0,6,0,12,0,24,0,0,0,120,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,16,32,15,3,0,24,0,60,0,102,0,195,0,0,0, - 120,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,9,15,30,15,3,0,99,0,99,0, - 0,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,12,16,32,15,1,0, - 124,192,135,0,13,0,48,128,0,64,15,224,48,96,32,48, - 64,16,64,16,64,16,64,16,64,16,32,32,48,96,15,128, - 13,15,30,15,1,0,28,64,54,192,35,128,0,0,231,128, - 40,64,48,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,248,248,11,16,32,15,2,0,24,0,12,0,6,0, - 3,0,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,16,32,15,2,0, - 1,128,3,0,6,0,12,0,0,0,31,0,96,192,64,64, - 128,32,128,32,128,32,128,32,128,32,64,64,96,192,31,0, - 11,16,32,15,2,0,12,0,30,0,51,0,97,128,0,0, - 31,0,96,192,64,64,128,32,128,32,128,32,128,32,128,32, - 64,64,96,192,31,0,11,15,30,15,2,0,28,64,54,192, - 35,128,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,15,30,15,2,0, - 49,128,49,128,0,0,0,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,11,9, - 18,15,2,3,14,0,14,0,0,0,0,0,255,224,0,0, - 0,0,14,0,14,0,12,12,24,15,1,0,0,16,15,160, - 48,64,32,160,65,16,66,16,68,16,72,16,80,16,32,32, - 80,96,143,128,12,16,32,15,1,0,24,0,12,0,6,0, - 3,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,16,32,15,1,0, - 0,192,1,128,3,0,6,0,0,0,224,224,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,96,16,160,15,48, - 12,16,32,15,1,0,6,0,15,0,25,128,48,192,0,0, - 224,224,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,96,16,160,15,48,12,15,30,15,1,0,25,128,25,128, - 0,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,21,42,15,1,251, - 0,192,1,128,3,0,6,0,0,0,240,240,64,32,64,32, - 32,64,32,64,32,128,16,128,17,0,9,0,10,0,6,0, - 4,0,4,0,8,0,8,0,254,0,13,21,42,15,1,251, - 224,0,32,0,32,0,32,0,32,0,39,192,56,48,48,16, - 32,8,32,8,32,8,32,8,32,8,48,16,56,48,39,192, - 32,0,32,0,32,0,32,0,252,0,12,20,40,15,1,251, - 25,128,25,128,0,0,0,0,240,240,64,32,64,32,32,64, - 32,64,32,128,16,128,17,0,9,0,10,0,6,0,4,0, - 4,0,8,0,8,0,254,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18r[2862] U8G_FONT_SECTION("u8g_font_courR18r") = { - 0,23,32,251,248,14,3,161,7,151,32,127,251,17,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=28 x= 9 y=17 dx=20 dy= 0 ascent=26 len=81 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =26 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24[8729] U8G_FONT_SECTION("u8g_font_courR24") = { - 0,28,42,250,246,19,4,184,10,129,32,255,250,26,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,20,20, - 20,7,250,112,248,112,0,0,0,0,32,32,32,32,32,32, - 32,112,112,112,112,112,32,11,20,40,20,4,0,4,0,4, - 0,4,0,4,0,31,128,48,224,96,32,192,32,128,0,128, - 0,128,0,128,0,192,0,96,32,48,224,31,128,4,0,4, - 0,4,0,4,0,14,19,38,20,2,0,3,224,12,48,8, - 24,24,0,16,0,16,0,16,0,24,0,8,0,255,128,8, - 0,8,0,8,0,8,0,8,0,24,0,16,4,48,12,127, - 248,13,13,26,20,3,3,192,24,111,176,56,224,32,32,96, - 48,64,16,64,16,64,16,96,48,32,32,56,224,111,176,192, - 24,15,19,38,20,2,0,248,62,96,12,48,24,16,16,24, - 48,8,32,12,96,6,192,2,128,3,128,63,248,1,0,1, - 0,63,248,1,0,1,0,1,0,1,0,31,240,1,25,25, - 20,9,252,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,128,128,128,128,128,128,128,128,128,128,14,23,46,20, - 3,254,7,248,28,8,16,8,16,8,16,0,24,0,124,0, - 198,0,131,0,129,192,192,96,112,56,24,12,12,4,7,4, - 1,132,0,252,0,96,0,32,64,32,64,32,64,224,127,128, - 10,3,6,20,5,17,97,128,243,192,97,128,19,19,57,20, - 0,0,1,240,0,7,28,0,28,7,0,48,1,128,33,232, - 128,99,24,192,70,8,64,204,8,96,136,0,32,136,0,32, - 136,0,32,140,0,32,198,12,96,67,24,64,97,240,192,48, - 1,128,24,3,0,15,30,0,1,240,0,9,12,24,20,5, - 7,60,0,102,0,2,0,2,0,126,0,198,0,130,0,206, - 0,123,128,0,0,0,0,255,128,16,14,28,20,2,0,1, - 131,3,6,6,12,12,24,24,48,48,96,96,192,225,192,96, - 192,48,96,24,48,12,24,6,12,3,6,14,6,12,20,3, - 6,255,252,0,4,0,4,0,4,0,4,0,4,15,1,2, - 20,2,9,255,254,19,19,57,20,0,0,3,248,0,14,14, - 0,24,3,0,48,1,128,103,224,192,66,48,64,194,24,96, - 130,8,32,130,8,32,130,24,32,130,48,32,131,224,32,194, - 48,96,66,24,64,103,12,192,48,1,128,24,3,0,14,14, - 0,3,248,0,9,2,4,20,5,17,255,128,255,128,9,10, - 20,20,5,11,62,0,99,0,65,0,193,128,128,128,128,128, - 193,128,65,0,99,0,62,0,15,16,32,20,2,1,1,0, - 1,0,1,0,1,0,1,0,1,0,255,254,1,0,1,0, - 1,0,1,0,1,0,1,0,0,0,0,0,255,254,8,14, - 14,20,5,7,60,102,67,193,3,2,6,12,24,16,48,96, - 193,255,8,14,14,20,6,7,60,102,195,1,1,6,28,6, - 3,1,1,195,102,60,6,5,5,20,9,17,12,24,48,96, - 192,16,20,40,20,1,250,240,60,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,24,12,24,28,28, - 52,23,231,16,0,16,0,16,0,16,0,16,0,16,0,15, - 23,46,20,2,254,15,254,57,16,113,16,97,16,225,16,193, - 16,193,16,225,16,97,16,113,16,61,16,15,16,1,16,1, - 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, - 16,31,190,5,4,4,20,7,7,112,248,248,112,5,5,5, - 20,7,251,32,32,48,152,240,7,14,14,20,6,7,112,208, - 16,16,16,16,16,16,16,16,16,16,16,254,9,12,24,20, - 5,7,28,0,119,0,65,0,193,128,128,128,193,128,65,0, - 119,0,28,0,0,0,0,0,255,128,16,14,28,20,2,0, - 193,128,96,192,48,96,24,48,12,24,6,12,3,6,3,135, - 3,6,6,12,12,24,24,48,48,96,96,192,18,21,63,20, - 1,0,48,0,192,240,0,128,16,1,128,16,3,0,16,2, - 0,16,6,0,16,12,0,16,8,0,16,24,0,16,48,0, - 16,35,0,16,103,0,254,197,0,0,141,0,1,153,0,3, - 17,0,2,49,0,6,63,128,12,1,0,8,1,0,24,7, - 128,18,21,63,20,1,0,48,0,128,240,1,128,16,3,0, - 16,6,0,16,4,0,16,12,0,16,24,0,16,16,0,16, - 48,0,16,96,0,16,71,128,16,204,192,253,152,64,3,0, - 192,2,0,128,6,1,128,12,7,0,8,12,0,24,24,0, - 48,48,0,96,63,192,19,21,63,20,0,0,60,0,0,102, - 0,96,3,0,192,3,1,128,6,3,0,28,6,0,6,12, - 0,3,8,0,1,24,0,1,48,0,195,33,128,102,99,128, - 60,194,128,1,134,128,1,12,128,3,8,128,6,24,128,12, - 31,192,24,0,128,48,0,128,0,3,192,11,20,40,20,4, - 250,14,0,31,0,14,0,0,0,0,0,0,0,0,0,4, - 0,4,0,12,0,24,0,112,0,64,0,192,0,128,0,128, - 0,192,32,96,32,49,224,31,0,19,26,78,20,0,0,6, - 0,0,3,0,0,1,128,0,0,192,0,0,96,0,0,0, - 0,0,0,0,31,224,0,0,160,0,1,176,0,1,16,0, - 1,16,0,3,24,0,2,8,0,2,8,0,6,12,0,4, - 4,0,4,4,0,12,6,0,15,254,0,8,2,0,24,3, - 0,16,1,0,16,1,0,48,1,128,254,15,224,19,26,78, - 20,0,0,0,12,0,0,24,0,0,48,0,0,96,0,0, - 192,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,64,0,0,224,0,1,176,0, - 3,24,0,6,12,0,0,0,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,19,24,72,20,0,0,3,132,0,6,236, - 0,4,56,0,0,0,0,0,0,0,31,224,0,0,160,0, - 1,176,0,1,16,0,1,16,0,3,24,0,2,8,0,2, - 8,0,6,12,0,4,4,0,4,4,0,12,6,0,15,254, - 0,8,2,0,24,3,0,16,1,0,16,1,0,48,1,128, - 254,15,224,19,24,72,20,0,0,6,12,0,15,30,0,6, - 12,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,224,0,1,176,0,1,16,0, - 1,16,0,1,176,0,0,224,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,18,19,57,20,1,0,31,255,128,2,64, - 128,2,64,128,6,64,128,4,64,128,4,64,128,4,64,0, - 12,68,0,8,68,0,8,124,0,8,68,0,24,68,0,31, - 192,0,16,64,0,48,64,64,32,64,64,32,64,64,32,64, - 64,251,255,192,15,24,48,20,2,251,7,196,28,116,48,12, - 96,12,64,4,192,4,128,0,128,0,128,0,128,0,128,0, - 128,0,128,0,192,0,64,2,96,4,48,28,28,112,7,192, - 1,0,1,0,1,128,4,192,7,128,15,26,52,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,255,252, - 16,4,16,4,16,4,16,4,16,4,16,64,16,64,16,64, - 31,192,16,64,16,64,16,0,16,2,16,2,16,2,16,2, - 16,2,255,254,15,26,52,20,1,0,0,48,0,96,0,192, - 1,128,3,0,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,15,26, - 52,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,255,252,16,4,16,4,16,4,16,4,16,4,16,64, - 16,64,16,64,31,192,16,64,16,64,16,0,16,2,16,2, - 16,2,16,2,16,2,255,254,15,24,48,20,1,0,12,48, - 30,120,12,48,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,11,26, - 52,20,4,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,255,224,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,255,224,11,26,52,20,4,0,0,192, - 1,128,3,0,6,0,12,0,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,11,26,52,20,4,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,255,224,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,255,224,11,24,48,20, - 4,0,96,192,241,224,96,192,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,15,19,38,20,1,0,255,192,32,112,32,24,32,12, - 32,4,32,6,32,2,32,2,32,2,254,2,32,2,32,2, - 32,2,32,6,32,4,32,12,32,24,32,112,255,192,18,24, - 72,20,0,0,3,132,0,6,236,0,4,56,0,0,0,0, - 0,0,0,248,31,192,28,1,0,20,1,0,22,1,0,18, - 1,0,19,1,0,17,129,0,16,129,0,16,193,0,16,65, - 0,16,97,0,16,33,0,16,49,0,16,25,0,16,9,0, - 16,13,0,16,5,0,16,7,0,127,3,0,15,26,52,20, - 2,0,24,0,12,0,6,0,3,0,1,128,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,15,26,52,20,2,0,0,24,0,48, - 0,96,0,192,1,128,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,26,52,20,2,0,1,0,3,128,6,192,12,96,24,48, - 0,0,0,0,7,192,28,112,48,24,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,32,8,48,24,28,112,7,192,15,24,48,20,2,0, - 14,16,27,176,16,224,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,24,48,20,2,0,48,48,120,120,48,48,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,13,14,28,20,3,1,128,8,192,24, - 96,48,48,96,24,192,13,128,7,0,7,0,13,128,24,192, - 48,96,96,48,192,24,128,8,16,21,42,20,2,255,0,1, - 7,195,28,118,48,28,32,24,96,60,64,36,192,102,128,194, - 129,130,129,2,131,2,134,2,204,6,72,4,120,12,48,8, - 48,24,124,48,199,224,128,0,17,26,78,20,1,0,6,0, - 0,3,0,0,1,128,0,0,192,0,0,96,0,0,0,0, - 0,0,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,17,26,78,20, - 1,0,0,24,0,0,48,0,0,96,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,48,6,0,16,4,0,24,12,0,14,56,0,3,224,0, - 17,26,78,20,1,0,0,128,0,1,192,0,3,96,0,6, - 48,0,12,24,0,0,0,0,0,0,0,254,63,128,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,48,6,0,16,4,0,24,12,0,14,56, - 0,3,224,0,17,24,72,20,1,0,12,24,0,30,60,0, - 12,24,0,0,0,0,0,0,0,254,63,128,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,48,6,0,16,4,0,24,12,0,14,56,0,3, - 224,0,15,26,52,20,2,0,0,48,0,96,0,192,1,128, - 3,0,0,0,0,0,248,62,96,12,48,24,16,16,24,48, - 8,32,12,96,6,192,2,128,3,128,1,0,1,0,1,0, - 1,0,1,0,1,0,1,0,1,0,31,240,16,19,38,20, - 1,0,254,0,16,0,16,0,16,0,31,224,16,60,16,6, - 16,2,16,3,16,3,16,2,16,6,16,60,31,224,16,0, - 16,0,16,0,16,0,254,0,15,21,42,20,1,0,7,192, - 12,96,8,32,24,48,16,16,16,16,16,16,16,48,16,96, - 17,192,16,112,16,24,16,4,16,6,16,2,16,2,16,2, - 17,6,17,4,17,140,248,248,15,22,44,20,2,0,24,0, - 12,0,6,0,3,0,1,128,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,22,44,20,2,0, - 0,96,0,192,1,128,3,0,6,0,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,22,44,20, - 2,0,1,0,3,128,6,192,12,96,24,48,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,20,40,20, - 2,0,48,192,121,224,48,192,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,23,46,20,2,0, - 7,0,13,128,8,128,8,128,13,128,7,0,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,19,14, - 42,20,0,0,31,15,128,113,152,192,0,240,64,0,96,96, - 0,96,32,30,64,32,115,255,224,192,192,0,128,64,0,128, - 96,0,128,224,0,193,80,96,99,88,192,62,79,128,14,19, - 38,20,3,251,15,200,56,104,96,24,64,24,192,8,128,8, - 128,0,128,0,128,0,192,0,64,4,96,28,56,112,15,192, - 2,0,2,0,3,0,9,128,15,0,14,22,44,20,2,0, - 24,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0, - 15,192,56,112,96,24,64,8,192,12,128,4,255,252,128,0, - 128,0,128,0,192,0,96,12,56,56,15,224,14,22,44,20, - 2,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,14,22, - 44,20,2,0,1,0,3,128,6,192,12,96,24,48,0,0, - 0,0,0,0,15,192,56,112,96,24,64,8,192,12,128,4, - 255,252,128,0,128,0,128,0,192,0,96,12,56,56,15,224, - 14,20,40,20,2,0,48,96,120,240,48,96,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,13,22, - 44,20,3,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 13,22,44,20,3,0,0,192,1,128,3,0,6,0,12,0, - 0,0,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,21,42,20,3,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,20,40,20,3,0,97,128,243,192,97,128,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 15,20,40,20,2,0,124,12,79,56,1,224,3,192,14,96, - 56,48,32,24,0,12,15,228,56,54,96,14,192,6,128,2, - 128,2,128,2,192,6,64,4,96,12,24,56,15,224,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 227,192,46,112,56,16,48,24,32,8,32,8,32,8,32,8, - 32,8,32,8,32,8,32,8,32,8,248,62,15,22,44,20, - 2,0,12,0,6,0,3,0,1,128,0,192,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,15,22, - 44,20,2,0,0,48,0,96,0,192,1,128,3,0,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,22,44,20,2,0,1,128,3,192,6,96,12,48,24,24, - 0,0,0,0,0,0,15,224,56,56,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,56,56, - 15,224,15,20,40,20,2,0,14,16,27,176,16,224,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,20,40,20,2,0,24,96,60,240,24,96,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,14,16, - 32,20,2,1,3,0,7,128,3,0,0,0,0,0,0,0, - 0,0,0,0,255,252,0,0,0,0,0,0,0,0,3,0, - 7,128,3,0,15,16,32,20,2,255,0,2,7,230,28,60, - 48,24,64,52,192,102,128,194,129,130,131,2,134,2,204,6, - 88,4,112,24,120,112,207,192,128,0,16,22,44,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,16,22,44,20, - 1,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,21, - 42,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,20, - 40,20,1,0,24,48,60,120,24,48,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,15,28,56,20, - 2,250,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,248,62,64,4,96,12,32,8,48,24,16,16,24,48, - 8,32,12,96,4,64,6,192,2,128,3,128,1,0,3,0, - 2,0,2,0,6,0,4,0,127,128,17,27,81,20,0,250, - 240,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,17,248,0,23,14,0,28,3,0,24,1, - 0,24,1,128,16,0,128,16,0,128,16,0,128,16,0,128, - 24,1,128,24,1,0,28,3,0,23,14,0,17,248,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,255,0, - 0,15,25,50,20,2,250,24,24,60,60,24,24,0,0,0, - 0,248,62,64,4,96,12,32,8,48,24,16,16,24,48,8, - 32,12,96,4,64,6,192,2,128,3,128,1,0,3,0,2, - 0,2,0,6,0,4,0,127,128}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=15 h=25 x= 7 y= 9 dx=20 dy= 0 ascent=22 len=50 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =22 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24n[658] U8G_FONT_SECTION("u8g_font_courR24n") = { - 0,28,42,250,246,20,0,0,0,0,42,58,0,22,252,20, - 0,11,13,26,20,4,8,4,0,4,0,4,0,4,0,132, - 32,245,224,31,0,14,0,10,0,27,0,49,128,32,128,96, - 192,15,17,34,20,2,1,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,255,254,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,6,9,9,20,5,252,60, - 60,120,120,96,224,192,192,128,15,1,2,20,2,9,255,254, - 5,4,4,20,7,0,112,248,248,112,11,25,50,20,4,253, - 0,32,0,96,0,64,0,64,0,192,0,128,1,128,1,0, - 3,0,2,0,2,0,6,0,4,0,12,0,8,0,8,0, - 24,0,16,0,48,0,32,0,96,0,64,0,64,0,192,0, - 128,0,11,20,40,20,4,0,31,0,49,128,96,192,64,64, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,192,96,64,64,64,64,96,192,49,128,31,0, - 11,20,40,20,4,0,12,0,60,0,228,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,255,224,13,20, - 40,20,3,0,15,192,48,96,96,16,64,16,64,16,0,16, - 0,48,0,32,0,96,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,0,192,0,128,8,255,248,13,20,40,20, - 3,0,15,128,56,224,96,48,0,16,0,16,0,16,0,16, - 0,32,0,64,7,128,0,96,0,16,0,8,0,8,0,8, - 0,8,0,24,192,48,112,224,31,128,13,20,40,20,3,0, - 0,192,1,64,1,64,2,64,6,64,4,64,8,64,24,64, - 16,64,32,64,96,64,64,64,128,64,255,248,0,64,0,64, - 0,64,0,64,0,64,3,248,13,20,40,20,3,0,63,240, - 32,0,32,0,32,0,32,0,32,0,32,0,39,128,60,224, - 32,48,0,16,0,24,0,8,0,8,0,8,0,24,192,16, - 96,48,56,224,15,128,12,20,40,20,4,0,7,192,28,32, - 48,0,32,0,96,0,64,0,192,0,143,128,184,224,160,32, - 192,48,192,16,192,16,192,16,192,16,64,16,96,48,32,32, - 56,224,15,128,11,20,40,20,4,0,255,224,128,32,128,32, - 0,96,0,64,0,64,0,192,0,128,0,128,1,128,1,0, - 1,0,3,0,2,0,2,0,2,0,6,0,4,0,4,0, - 4,0,11,20,40,20,4,0,31,0,96,192,64,64,192,96, - 128,32,128,32,192,96,64,64,49,128,31,0,113,192,64,64, - 192,96,128,32,128,32,128,32,192,96,64,64,113,192,31,0, - 12,20,40,20,4,0,31,0,112,192,64,96,192,32,128,48, - 128,48,128,48,128,48,192,80,64,208,115,144,30,16,0,32, - 0,32,0,32,0,64,0,192,1,128,14,0,120,0,5,14, - 14,20,7,0,112,248,248,112,0,0,0,0,0,0,112,248, - 248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=26 x= 9 y=17 dx=20 dy= 0 ascent=22 len=60 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24r[3991] U8G_FONT_SECTION("u8g_font_courR24r") = { - 0,28,42,250,246,19,4,184,10,129,32,127,250,22,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 3, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 7 y= 6 dx=19 dy= 0 ascent=17 len=34 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =17 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[3981] U8G_FONT_SECTION("u8g_font_cu12_67_75") = { - 0,40,30,247,246,3,2,98,5,14,32,255,1,17,254,12, - 0,11,5,10,12,1,4,2,128,1,64,255,224,1,64,2, - 128,5,11,11,6,1,1,32,32,32,32,32,32,168,112,168, - 112,32,11,5,10,12,1,4,32,96,65,128,255,0,65,128, - 32,96,11,5,10,12,1,4,192,128,48,64,31,224,48,64, - 192,128,11,7,14,12,1,3,0,32,32,32,64,32,255,224, - 64,32,32,32,0,32,7,11,11,8,1,1,16,56,84,16, - 16,16,16,16,16,16,254,11,7,14,12,1,3,128,0,128, - 128,128,64,255,224,128,64,128,128,128,0,7,11,11,8,1, - 1,254,16,16,16,16,16,16,16,84,56,16,7,11,11,8, - 1,1,16,56,84,16,16,16,16,16,84,56,254,11,7,14, - 12,1,4,1,192,0,32,32,32,64,32,255,192,64,0,32, - 0,11,7,14,12,1,4,112,0,128,0,128,128,128,64,127, - 224,0,64,0,128,11,7,14,12,1,4,1,192,2,32,34, - 32,66,32,255,192,66,0,34,0,11,7,14,12,1,4,112, - 0,136,0,136,128,136,64,127,224,8,64,8,128,12,5,10, - 13,1,4,38,64,73,32,233,112,80,160,32,64,12,5,10, - 13,1,4,33,64,66,32,255,240,68,32,40,64,4,11,11, - 5,1,1,16,16,32,64,176,208,32,160,160,192,240,6,11, - 11,7,1,1,32,64,252,68,36,4,4,4,4,4,4,6, - 11,11,7,1,1,16,8,252,136,144,128,128,128,128,128,128, - 6,11,11,7,1,1,4,4,4,4,4,4,36,68,252,64, - 32,6,11,11,7,1,1,128,128,128,128,128,128,144,136,252, - 8,16,8,6,6,9,1,2,252,4,4,21,14,4,6,8, - 8,7,1,1,4,4,4,36,68,252,64,32,11,8,16,11, - 1,1,15,128,16,64,32,32,32,32,32,32,168,32,112,0, - 32,0,11,8,16,11,1,1,62,0,65,0,128,128,128,128, - 128,128,130,160,1,192,0,128,9,11,22,10,1,1,255,128, - 0,0,240,0,192,0,160,0,144,0,8,0,4,0,2,0, - 1,0,0,128,12,13,26,13,1,0,128,0,144,0,160,0, - 255,240,160,0,144,0,128,16,0,144,0,80,255,240,0,80, - 0,144,0,16,10,7,14,11,1,2,3,192,67,0,130,128, - 130,128,128,128,65,0,62,0,10,7,14,11,1,2,240,0, - 48,128,80,64,80,64,64,64,32,128,31,0,11,3,6,12, - 1,6,32,0,64,0,255,224,11,3,6,12,1,6,255,224, - 64,0,32,0,3,11,11,4,1,1,128,192,160,128,128,128, - 128,128,128,128,128,3,11,11,4,1,1,32,96,160,32,32, - 32,32,32,32,32,32,11,3,6,12,1,6,0,128,0,64, - 255,224,11,3,6,12,1,6,255,224,0,64,0,128,3,11, - 11,4,1,1,128,128,128,128,128,128,128,128,160,192,128,3, - 11,11,4,1,1,32,32,32,32,32,32,32,32,160,96,32, - 11,11,22,12,1,1,0,128,0,64,255,224,0,64,0,128, - 0,0,32,0,64,0,255,224,64,0,32,0,11,11,22,12, - 1,1,32,128,112,128,168,128,32,128,32,128,32,128,32,128, - 32,128,34,160,33,192,32,128,11,11,22,12,1,1,32,0, - 64,0,255,224,64,0,32,0,0,0,0,128,0,64,255,224, - 0,64,0,128,11,11,22,12,1,1,32,0,64,0,255,224, - 64,0,32,0,0,0,32,0,64,0,255,224,64,0,32,0, - 11,11,22,12,1,1,32,128,113,192,170,160,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,11,11,22,12, - 1,1,0,128,0,64,255,224,0,64,0,128,0,0,0,128, - 0,64,255,224,0,64,0,128,11,11,22,12,1,1,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,170,160, - 113,192,32,128,11,8,16,12,1,3,32,0,64,0,255,224, - 0,0,0,0,255,224,0,64,0,128,11,8,16,12,1,3, - 0,128,0,64,255,224,0,0,0,0,255,224,64,0,32,0, - 11,7,14,12,1,3,16,128,32,128,127,224,129,0,127,224, - 34,0,18,0,13,7,14,14,1,3,17,64,33,32,127,240, - 130,8,127,240,36,32,20,64,11,7,14,12,1,3,9,0, - 8,128,255,192,16,32,255,192,32,128,33,0,11,7,14,12, - 1,3,16,0,32,0,127,224,128,0,127,224,32,0,16,0, - 7,11,11,8,1,1,16,40,108,170,40,40,40,40,40,40, - 40,11,7,14,12,1,3,1,0,0,128,255,192,0,32,255, - 192,0,128,1,0,7,11,11,8,1,1,40,40,40,40,40, - 40,40,170,108,40,16,12,7,14,12,1,3,16,128,32,64, - 127,224,128,16,127,224,32,64,16,128,7,12,12,8,1,0, - 16,40,108,170,40,40,40,40,170,108,40,16,10,10,20,11, - 1,1,248,0,144,0,136,0,196,0,162,0,17,0,8,128, - 4,64,2,0,1,0,10,10,20,11,1,1,7,192,2,64, - 4,64,8,192,17,64,34,0,68,0,136,0,16,0,32,0, - 10,10,20,11,1,1,32,0,16,0,136,0,68,0,34,0, - 17,64,8,192,4,64,2,64,7,192,10,10,20,11,1,1, - 1,0,2,0,4,64,8,128,17,0,162,0,196,0,136,0, - 144,0,248,0,11,7,14,12,1,3,16,0,63,224,64,0, - 255,224,64,0,63,224,16,0,11,7,14,12,1,3,1,0, - 255,128,0,64,255,224,0,64,255,128,1,0,12,5,10,13, - 1,4,32,0,72,128,245,80,66,32,32,0,12,5,10,13, - 1,4,0,64,17,32,170,240,68,32,0,64,5,11,11,6, - 1,1,32,112,168,32,32,248,32,248,32,32,32,5,11,11, - 6,1,1,32,32,32,248,32,248,32,32,168,112,32,11,5, - 10,12,1,4,32,0,64,0,238,224,64,0,32,0,5,11, - 11,6,1,1,32,112,168,0,32,32,32,0,32,32,32,11, - 5,10,12,1,4,0,128,0,64,238,224,0,64,0,128,5, - 11,11,6,1,1,32,32,32,0,32,32,32,0,168,112,32, - 12,7,14,13,1,3,128,0,144,0,160,0,255,240,160,0, - 144,0,128,0,12,7,14,13,1,3,0,16,0,144,0,80, - 255,240,0,80,0,144,0,16,12,9,18,13,1,2,8,0, - 24,0,47,240,64,16,128,16,64,16,47,240,24,0,8,0, - 9,12,24,10,1,1,8,0,20,0,34,0,65,0,227,128, - 34,0,34,0,34,0,34,0,34,0,34,0,62,0,12,9, - 18,13,1,2,1,0,1,128,255,64,128,32,128,16,128,32, - 255,64,1,128,1,0,9,12,24,10,1,1,62,0,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,9,17,34,10,1,0,8,0,20,0,34,0, - 65,0,227,128,34,0,34,0,34,0,34,0,34,0,34,0, - 62,0,0,0,62,0,34,0,34,0,62,0,9,14,28,10, - 1,0,8,0,20,0,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,9,14, - 28,10,1,0,8,0,20,0,62,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,128,128,255,128, - 9,14,28,10,1,0,8,0,28,0,42,0,73,0,235,128, - 42,0,42,0,42,0,42,0,42,0,42,0,235,128,136,128, - 255,128,9,15,30,10,1,2,8,0,20,0,34,0,73,0, - 213,128,34,0,65,0,227,128,34,0,34,0,34,0,34,0, - 34,0,34,0,62,0,9,17,34,10,1,0,8,0,20,0, - 34,0,73,0,213,128,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,14,9, - 18,16,2,2,224,64,160,96,191,208,128,24,128,20,128,24, - 191,208,160,96,224,64,11,11,22,12,1,1,255,224,128,0, - 188,0,176,0,168,0,164,0,130,0,129,0,128,128,128,64, - 128,32,11,11,22,12,1,1,128,32,64,32,32,32,16,32, - 8,32,4,160,2,160,1,160,7,160,0,32,255,224,9,16, - 32,10,1,0,8,0,20,0,34,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 11,11,22,14,2,1,255,224,255,224,255,224,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,11,11,22,14, - 2,1,255,224,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,128,32,255,224,11,11,22,14,2,1,63,128, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 64,64,63,128,11,11,22,14,2,1,255,224,128,32,191,160, - 191,160,191,160,191,160,191,160,191,160,191,160,128,32,255,224, - 11,11,22,14,2,1,255,224,128,32,255,224,128,32,255,224, - 128,32,255,224,128,32,255,224,128,32,255,224,11,11,22,14, - 2,1,255,224,170,160,170,160,170,160,170,160,170,160,170,160, - 170,160,170,160,170,160,255,224,11,11,22,14,2,1,255,224, - 170,160,255,224,170,160,255,224,170,160,255,224,170,160,255,224, - 170,160,255,224,11,11,22,14,2,1,255,224,201,32,164,160, - 146,96,201,32,164,160,146,96,201,32,164,160,146,96,255,224, - 11,11,22,14,2,1,255,224,146,96,164,160,201,32,146,96, - 164,160,201,32,146,96,164,160,201,32,255,224,11,11,22,14, - 2,1,255,224,213,96,170,160,213,96,170,160,213,96,170,160, - 213,96,170,160,213,96,255,224,7,7,7,12,3,3,254,254, - 254,254,254,254,254,7,7,7,12,3,3,254,130,130,130,130, - 130,254,13,6,12,16,2,3,255,248,255,248,255,248,255,248, - 255,248,255,248,13,6,12,16,2,3,255,248,128,8,128,8, - 128,8,128,8,255,248,6,13,13,9,2,254,252,252,252,252, - 252,252,252,252,252,252,252,252,252,6,13,13,9,2,254,252, - 132,132,132,132,132,132,132,132,132,132,132,252,16,6,12,19, - 2,3,31,255,63,254,63,254,127,252,127,252,255,248,16,6, - 12,19,2,3,31,255,32,2,32,2,64,4,64,4,255,248, - 11,12,24,14,2,1,4,0,4,0,14,0,14,0,31,0, - 31,0,63,128,63,128,127,192,127,192,255,224,255,224,11,12, - 24,14,2,1,4,0,4,0,10,0,10,0,17,0,17,0, - 32,128,32,128,64,64,64,64,128,32,255,224,7,8,8,12, - 3,1,16,16,56,56,124,124,254,254,7,8,8,12,3,1, - 16,16,40,40,68,68,130,254,12,11,22,15,2,1,192,0, - 240,0,252,0,255,0,255,192,255,240,255,192,255,0,252,0, - 240,0,192,0,12,11,22,15,2,1,192,0,176,0,140,0, - 131,0,128,192,128,48,128,192,131,0,140,0,176,0,192,0, - 8,7,7,13,3,1,192,240,252,255,252,240,192,8,7,7, - 13,3,1,192,176,140,131,140,176,192,12,7,14,15,2,1, - 192,0,252,0,255,192,255,240,255,192,252,0,192,0,12,7, - 14,15,2,1,192,0,188,0,131,192,128,48,131,192,188,0, - 192,0,11,12,24,14,2,1,255,224,255,224,127,192,127,192, - 63,128,63,128,31,0,31,0,14,0,14,0,4,0,4,0, - 11,12,24,14,2,1,255,224,128,32,64,64,64,64,32,128, - 32,128,17,0,17,0,10,0,10,0,4,0,4,0,7,8, - 8,12,3,1,254,254,124,124,56,56,16,16,7,8,8,12, - 3,1,254,130,68,68,40,40,16,16,12,11,22,15,2,1, - 0,48,0,240,3,240,15,240,63,240,255,240,63,240,15,240, - 3,240,0,240,0,48,12,11,22,15,2,1,0,48,0,208, - 3,16,12,16,48,16,192,16,48,16,12,16,3,16,0,208, - 0,48,8,7,7,13,3,1,3,15,63,255,63,15,3,8, - 7,7,13,3,1,3,13,49,193,49,13,3,12,7,14,15, - 2,1,0,48,3,240,63,240,255,240,63,240,3,240,0,48, - 12,7,14,15,2,1,0,48,3,208,60,16,192,16,60,16, - 3,208,0,48,11,11,22,14,2,1,4,0,14,0,31,0, - 63,128,127,192,255,224,127,192,63,128,31,0,14,0,4,0, - 11,11,22,14,2,1,4,0,10,0,17,0,32,128,64,64, - 128,32,64,64,32,128,17,0,10,0,4,0,11,11,22,14, - 2,1,4,0,10,0,17,0,36,128,78,64,159,32,78,64, - 36,128,17,0,10,0,4,0,11,11,22,14,2,1,31,0, - 96,192,64,64,142,32,159,32,159,32,159,32,142,32,64,64, - 96,192,31,0,7,12,12,8,1,0,16,40,40,68,68,130, - 130,68,68,40,40,16,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,128,32,128,32,64,64,96,192, - 31,0,11,11,22,14,2,1,14,0,32,128,64,64,0,0, - 128,32,128,32,128,32,0,0,64,64,32,128,14,0,11,11, - 22,14,2,1,31,0,106,192,106,192,170,160,170,160,170,160, - 170,160,170,160,106,192,106,192,31,0,11,11,22,14,2,1, - 31,0,96,192,64,64,142,32,145,32,145,32,145,32,142,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,127,192, - 127,192,255,224,255,224,255,224,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,120,192,120,64,248,32, - 248,32,248,32,248,32,248,32,120,64,120,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 131,224,131,224,67,192,99,192,31,0,11,11,22,14,2,1, - 31,0,127,192,127,192,255,224,255,224,128,32,128,32,128,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,103,192,71,192,135,224, - 135,224,135,224,128,32,128,32,64,64,96,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 255,224,255,224,127,192,127,192,31,0,6,11,11,8,2,1, - 28,124,124,252,252,252,252,252,124,124,28,6,11,11,9,2, - 1,224,248,248,252,252,252,252,252,248,248,224,7,12,12,10, - 2,1,254,254,254,254,254,198,130,130,130,198,254,254,13,13, - 26,16,2,0,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,191,232,191,232,223,216,207,152,240,120,255,248,13,7, - 14,16,2,6,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,13,7,14,16,2,0,191,232,191,232,191,232,223,216, - 207,152,240,120,255,248,6,6,6,8,2,6,28,96,64,128, - 128,128,6,6,6,13,7,6,224,24,8,4,4,4,6,6, - 6,13,7,1,4,4,4,8,24,224,6,6,6,8,2,1, - 128,128,128,64,96,28,11,6,12,14,2,6,31,0,96,192, - 64,64,128,32,128,32,128,32,11,6,12,14,2,1,128,32, - 128,32,128,32,64,64,96,192,31,0,12,12,24,15,2,1, - 0,16,0,48,0,112,0,240,1,240,3,240,7,240,15,240, - 31,240,63,240,127,240,255,240,12,12,24,15,2,1,128,0, - 192,0,224,0,240,0,248,0,252,0,254,0,255,0,255,128, - 255,192,255,224,255,240,12,12,24,15,2,1,255,240,255,224, - 255,192,255,128,255,0,254,0,252,0,248,0,240,0,224,0, - 192,0,128,0,12,12,24,15,2,1,255,240,127,240,63,240, - 31,240,15,240,7,240,3,240,1,240,0,240,0,112,0,48, - 0,16,7,7,7,8,1,2,56,68,130,130,130,68,56,11, - 11,22,14,2,1,255,224,248,32,248,32,248,32,248,32,248, - 32,248,32,248,32,248,32,248,32,255,224,11,11,22,14,2, - 1,255,224,131,224,131,224,131,224,131,224,131,224,131,224,131, - 224,131,224,131,224,255,224,11,11,22,14,2,1,255,224,255, - 224,255,160,255,32,254,32,252,32,248,32,240,32,224,32,192, - 32,255,224,11,11,22,14,2,1,255,224,128,96,128,224,129, - 224,131,224,135,224,143,224,159,224,191,224,255,224,255,224,11, - 11,22,14,2,1,255,224,132,32,132,32,132,32,132,32,132, - 32,132,32,132,32,132,32,132,32,255,224,11,12,24,14,2, - 1,4,0,4,0,10,0,10,0,17,0,17,0,32,128,36, - 128,78,64,68,64,128,32,255,224,11,12,24,14,2,1,4, - 0,4,0,14,0,14,0,29,0,29,0,60,128,60,128,124, - 64,124,64,252,32,255,224,11,12,24,14,2,1,4,0,4, - 0,14,0,14,0,23,0,23,0,39,128,39,128,71,192,71, - 192,135,224,255,224,13,13,26,16,2,0,31,192,32,32,64, - 16,128,8,128,8,128,8,128,8,128,8,128,8,128,8,64, - 16,32,32,31,192,11,11,22,14,2,1,255,224,132,32,132, - 32,132,32,132,32,252,32,128,32,128,32,128,32,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,128,32,128,32,128, - 32,252,32,132,32,132,32,132,32,132,32,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,135,224,132, - 32,132,32,132,32,132,32,255,224,11,11,22,14,2,1,255, - 224,132,32,132,32,132,32,132,32,135,224,128,32,128,32,128, - 32,128,32,255,224,11,11,22,14,2,1,31,0,100,192,68, - 64,132,32,132,32,252,32,128,32,128,32,64,64,96,192,31, - 0,11,11,22,14,2,1,31,0,96,192,64,64,128,32,128, - 32,252,32,132,32,132,32,68,64,100,192,31,0,11,11,22, - 14,2,1,31,0,96,192,64,64,128,32,128,32,135,224,132, - 32,132,32,68,64,100,192,31,0,11,11,22,14,2,1,31, - 0,100,192,68,64,132,32,132,32,135,224,128,32,128,32,64, - 64,96,192,31,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 6 - Calculated Max Values w=16 h=13 x= 3 y= 3 dx=19 dy= 0 ascent=13 len=24 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_75r[1123] U8G_FONT_SECTION("u8g_font_cu12_75r") = { - 0,40,30,247,246,11,2,247,0,0,32,79,0,13,254,12, - 0,11,11,22,14,2,1,255,224,255,224,255,224,255,224,255, - 224,255,224,255,224,255,224,255,224,255,224,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,32,255,224,11,11,22,14,2,1,63, - 128,64,64,128,32,128,32,128,32,128,32,128,32,128,32,128, - 32,64,64,63,128,11,11,22,14,2,1,255,224,128,32,191, - 160,191,160,191,160,191,160,191,160,191,160,191,160,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,255,224,128,32,255, - 224,128,32,255,224,128,32,255,224,128,32,255,224,11,11,22, - 14,2,1,255,224,170,160,170,160,170,160,170,160,170,160,170, - 160,170,160,170,160,170,160,255,224,11,11,22,14,2,1,255, - 224,170,160,255,224,170,160,255,224,170,160,255,224,170,160,255, - 224,170,160,255,224,11,11,22,14,2,1,255,224,201,32,164, - 160,146,96,201,32,164,160,146,96,201,32,164,160,146,96,255, - 224,11,11,22,14,2,1,255,224,146,96,164,160,201,32,146, - 96,164,160,201,32,146,96,164,160,201,32,255,224,11,11,22, - 14,2,1,255,224,213,96,170,160,213,96,170,160,213,96,170, - 160,213,96,170,160,213,96,255,224,7,7,7,12,3,3,254, - 254,254,254,254,254,254,7,7,7,12,3,3,254,130,130,130, - 130,130,254,13,6,12,16,2,3,255,248,255,248,255,248,255, - 248,255,248,255,248,13,6,12,16,2,3,255,248,128,8,128, - 8,128,8,128,8,255,248,6,13,13,9,2,254,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,9,2,254, - 252,132,132,132,132,132,132,132,132,132,132,132,252,16,6,12, - 19,2,3,31,255,63,254,63,254,127,252,127,252,255,248,16, - 6,12,19,2,3,31,255,32,2,32,2,64,4,64,4,255, - 248,11,12,24,14,2,1,4,0,4,0,14,0,14,0,31, - 0,31,0,63,128,63,128,127,192,127,192,255,224,255,224,11, - 12,24,14,2,1,4,0,4,0,10,0,10,0,17,0,17, - 0,32,128,32,128,64,64,64,64,128,32,255,224,7,8,8, - 12,3,1,16,16,56,56,124,124,254,254,7,8,8,12,3, - 1,16,16,40,40,68,68,130,254,12,11,22,15,2,1,192, - 0,240,0,252,0,255,0,255,192,255,240,255,192,255,0,252, - 0,240,0,192,0,12,11,22,15,2,1,192,0,176,0,140, - 0,131,0,128,192,128,48,128,192,131,0,140,0,176,0,192, - 0,8,7,7,13,3,1,192,240,252,255,252,240,192,8,7, - 7,13,3,1,192,176,140,131,140,176,192,12,7,14,15,2, - 1,192,0,252,0,255,192,255,240,255,192,252,0,192,0,12, - 7,14,15,2,1,192,0,188,0,131,192,128,48,131,192,188, - 0,192,0,11,12,24,14,2,1,255,224,255,224,127,192,127, - 192,63,128,63,128,31,0,31,0,14,0,14,0,4,0,4, - 0,11,12,24,14,2,1,255,224,128,32,64,64,64,64,32, - 128,32,128,17,0,17,0,10,0,10,0,4,0,4,0,7, - 8,8,12,3,1,254,254,124,124,56,56,16,16,7,8,8, - 12,3,1,254,130,68,68,40,40,16,16,12,11,22,15,2, - 1,0,48,0,240,3,240,15,240,63,240,255,240,63,240,15, - 240,3,240,0,240,0,48,12,11,22,15,2,1,0,48,0, - 208,3,16,12,16,48,16,192,16,48,16,12,16,3,16,0, - 208,0,48,8,7,7,13,3,1,3,15,63,255,63,15,3, - 8,7,7,13,3,1,3,13,49,193,49,13,3,12,7,14, - 15,2,1,0,48,3,240,63,240,255,240,63,240,3,240,0, - 48,12,7,14,15,2,1,0,48,3,208,60,16,192,16,60, - 16,3,208,0,48,11,11,22,14,2,1,4,0,14,0,31, - 0,63,128,127,192,255,224,127,192,63,128,31,0,14,0,4, - 0,11,11,22,14,2,1,4,0,10,0,17,0,32,128,64, - 64,128,32,64,64,32,128,17,0,10,0,4,0,11,11,22, - 14,2,1,4,0,10,0,17,0,36,128,78,64,159,32,78, - 64,36,128,17,0,10,0,4,0,11,11,22,14,2,1,31, - 0,96,192,64,64,142,32,159,32,159,32,159,32,142,32,64, - 64,96,192,31,0,7,12,12,8,1,0,16,40,40,68,68, - 130,130,68,68,40,40,16,11,11,22,14,2,1,31,0,96, - 192,64,64,128,32,128,32,128,32,128,32,128,32,64,64,96, - 192,31,0,11,11,22,14,2,1,14,0,32,128,64,64,0, - 0,128,32,128,32,128,32,0,0,64,64,32,128,14,0,11, - 11,22,14,2,1,31,0,106,192,106,192,170,160,170,160,170, - 160,170,160,170,160,106,192,106,192,31,0,11,11,22,14,2, - 1,31,0,96,192,64,64,142,32,145,32,145,32,145,32,142, - 32,64,64,96,192,31,0,11,11,22,14,2,1,31,0,127, - 192,127,192,255,224,255,224,255,224,255,224,255,224,127,192,127, - 192,31,0}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 3 y=11 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12[3993] U8G_FONT_SECTION("u8g_font_cu12") = { - 0,40,30,247,246,11,2,90,5,94,32,255,252,16,252,12, - 252,0,0,0,5,0,0,2,12,12,5,1,0,192,192,192, - 192,192,192,192,0,0,0,192,192,4,5,5,7,2,7,144, - 144,144,144,144,10,15,30,12,1,253,4,128,4,128,9,0, - 9,0,9,0,255,192,18,0,18,0,18,0,255,192,36,0, - 36,0,36,0,72,0,72,0,5,14,14,8,1,255,32,112, - 168,168,168,160,96,48,40,168,168,168,112,32,11,13,26,14, - 1,255,96,64,152,128,151,128,145,0,146,0,98,0,4,0, - 8,192,9,32,17,32,33,32,33,32,64,192,10,12,24,13, - 1,0,24,0,36,0,36,0,36,0,40,0,51,192,49,0, - 81,0,138,0,138,0,196,64,123,128,1,5,5,4,2,7, - 128,128,128,128,128,4,15,15,6,2,253,16,32,64,64,128, - 128,128,128,128,128,128,64,64,32,16,4,15,15,6,1,253, - 128,64,32,32,16,16,16,16,16,16,16,32,32,64,128,7, - 7,7,7,0,5,16,146,84,56,84,146,16,9,9,18,11, - 2,255,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,5,5,5,1,253,192,192,64,64,128,4, - 1,1,7,2,3,240,2,2,2,5,1,0,192,192,5,16, - 16,8,2,252,8,8,16,16,16,16,32,32,32,32,64,64, - 64,64,128,128,5,11,11,7,1,0,112,80,136,136,136,136, - 136,136,136,80,112,5,11,11,7,1,0,32,224,32,32,32, - 32,32,32,32,32,248,5,11,11,7,1,0,112,136,136,136, - 8,16,16,32,72,72,248,5,11,11,7,1,0,112,136,136, - 8,8,48,8,8,136,136,112,7,11,11,9,1,0,24,24, - 40,40,72,200,254,8,8,8,62,5,11,11,7,1,0,136, - 240,128,128,240,200,8,8,136,144,96,5,11,11,7,1,0, - 48,72,64,128,240,136,136,136,136,80,112,6,12,12,8,1, - 0,128,252,132,136,16,16,16,32,32,32,32,32,5,11,11, - 7,1,0,112,136,136,136,80,112,136,136,136,136,112,5,11, - 11,7,1,0,112,80,136,136,136,136,120,8,16,144,96,2, - 7,7,7,3,0,192,192,0,0,0,192,192,2,10,10,5, - 1,253,192,192,0,0,0,192,192,64,64,128,5,9,9,6, - 1,1,8,16,32,64,128,64,32,16,8,10,5,10,13,2, - 2,255,192,0,0,0,0,0,0,255,192,5,9,9,6,1, - 1,128,64,32,16,8,16,32,64,128,5,12,12,8,1,0, - 112,136,136,16,32,32,96,0,0,0,96,96,10,12,24,12, - 1,0,30,0,33,0,76,128,147,64,161,64,161,64,161,64, - 161,64,147,64,77,128,32,192,31,0,11,11,22,11,0,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,10,11,22,10,0,0,255,0,32,128, - 32,64,32,64,32,128,63,0,32,128,32,64,32,64,32,128, - 255,0,9,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,10,11, - 22,10,0,0,254,0,33,128,32,128,32,64,32,64,32,64, - 32,64,32,64,32,128,33,128,254,0,10,11,22,10,1,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,9,11,22,9,1,0,255,128,32,128, - 32,128,34,128,34,0,62,0,34,0,34,0,32,0,32,0, - 248,0,10,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,131,192,128,128,64,128,32,128,31,128,11,11, - 22,11,1,0,251,224,32,128,32,128,32,128,32,128,63,128, - 32,128,32,128,32,128,32,128,251,224,5,11,11,5,1,0, - 248,32,32,32,32,32,32,32,32,32,248,6,11,11,6,1, - 0,124,16,16,16,16,16,16,16,16,144,224,11,11,22,11, - 1,0,249,224,32,128,33,0,34,0,36,0,46,0,50,0, - 33,0,33,0,32,128,249,224,8,11,11,8,0,0,248,32, - 32,32,32,32,33,33,33,35,255,14,11,22,14,1,0,240, - 60,48,48,48,48,40,80,40,80,40,144,36,144,36,144,35, - 16,35,16,251,124,11,11,22,11,1,0,227,224,48,128,48, - 128,40,128,40,128,36,128,34,128,34,128,33,128,33,128,248, - 128,10,11,22,10,1,0,30,0,33,0,64,128,128,64,128, - 64,128,64,128,64,128,64,64,128,33,0,30,0,9,11,22, - 9,1,0,255,0,33,128,32,128,32,128,33,128,63,0,32, - 0,32,0,32,0,32,0,248,0,10,14,28,10,1,253,30, - 0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,92, - 128,51,0,30,0,2,0,2,64,1,128,11,11,22,11,1, - 0,254,0,33,0,32,128,32,128,33,0,62,0,35,0,33, - 0,33,0,33,0,248,224,6,11,11,7,1,0,124,132,132, - 128,64,48,8,4,132,132,248,9,11,22,9,1,0,255,128, - 136,128,136,128,136,128,8,0,8,0,8,0,8,0,8,0, - 8,0,62,0,11,11,22,11,1,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,11,22,11,1,0,241,224,32,128,32,128,17,0,17,0, - 17,0,10,0,10,0,10,0,4,0,4,0,16,11,22,16, - 1,0,241,207,33,132,33,132,34,68,18,72,18,72,18,72, - 20,40,12,48,12,48,8,16,11,11,22,11,1,0,243,192, - 17,0,18,0,10,0,12,0,4,0,10,0,26,0,17,0, - 32,128,241,224,11,11,22,11,1,0,241,224,32,128,17,0, - 17,0,10,0,14,0,4,0,4,0,4,0,4,0,31,0, - 7,11,11,7,1,0,254,196,132,136,8,16,34,34,66,70, - 254,3,16,16,5,1,252,224,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,224,5,16,16,8,2,252,128,128,64, - 64,64,64,32,32,32,32,16,16,16,16,8,8,3,16,16, - 5,0,252,224,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,224,5,3,3,6,1,9,32,112,136,11,1,2,12, - 1,254,255,224,3,4,4,6,3,8,128,192,64,32,6,7, - 7,7,1,0,112,136,8,120,136,136,124,6,12,12,7,1, - 0,192,64,64,64,64,120,68,68,68,68,68,120,5,7,7, - 6,1,0,112,136,128,128,128,136,112,6,12,12,7,1,0, - 24,8,8,8,8,120,136,136,136,136,136,124,5,7,7,6, - 1,0,112,136,248,128,128,136,112,5,12,12,6,1,0,56, - 72,64,64,64,240,64,64,64,64,64,224,7,11,11,8,1, - 252,62,68,68,68,120,64,124,130,130,130,124,7,12,12,8, - 1,0,192,64,64,64,64,120,68,68,68,68,68,238,3,11, - 11,4,1,0,192,192,0,0,192,64,64,64,64,64,224,4, - 14,14,5,0,253,48,48,0,0,48,16,16,16,16,16,16, - 16,144,224,7,12,12,8,1,0,192,64,64,64,64,94,72, - 80,112,88,72,238,3,12,12,4,1,0,192,64,64,64,64, - 64,64,64,64,64,64,224,11,7,14,12,1,0,251,128,68, - 64,68,64,68,64,68,64,68,64,238,224,7,7,7,8,1, - 0,248,68,68,68,68,68,238,5,7,7,6,1,0,112,136, - 136,136,136,136,112,6,10,10,7,1,253,248,68,68,68,68, - 68,120,64,64,224,6,10,10,7,1,253,120,136,136,136,136, - 136,120,8,8,28,5,7,7,6,1,0,208,104,64,64,64, - 64,240,5,7,7,6,1,0,120,136,128,112,8,136,240,6, - 10,10,7,1,0,32,32,32,248,32,32,32,36,36,24,7, - 7,7,8,1,0,204,68,68,68,68,68,62,8,7,7,9, - 1,0,231,36,36,36,24,24,24,11,7,14,11,0,0,238, - 224,36,128,42,128,42,128,42,128,27,0,17,0,8,7,7, - 9,1,0,231,36,24,24,24,36,231,8,10,10,8,1,253, - 231,36,36,36,24,24,24,16,144,224,5,7,7,6,1,0, - 248,144,144,32,72,72,248,5,16,16,6,1,252,24,32,32, - 32,32,32,32,192,32,32,32,32,32,32,32,24,1,16,16, - 3,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,16,16,5,0,252,192,32,32,32,32,32,32, - 24,32,32,32,32,32,32,32,192,5,3,3,8,1,9,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,0,2,12,12,5,1,253,192, - 192,0,0,0,192,192,192,192,192,192,192,5,11,11,7,1, - 254,16,16,112,168,160,160,160,200,112,64,64,8,12,12,9, - 1,0,6,9,17,16,16,124,16,16,16,81,178,204,7,7, - 7,9,1,3,130,124,68,68,68,124,130,11,11,22,12,0, - 0,241,224,32,128,17,0,10,0,127,192,14,0,4,0,127, - 192,4,0,4,0,31,0,1,16,16,3,2,252,128,128,128, - 128,128,128,128,0,0,128,128,128,128,128,128,128,4,13,13, - 6,1,0,96,144,128,128,96,144,144,144,96,16,16,144,96, - 5,2,2,6,1,11,216,216,9,10,20,10,1,3,62,0, - 65,0,158,128,162,128,162,128,160,128,162,128,156,128,65,0, - 62,0,4,6,6,5,1,7,96,16,112,144,112,240,7,7, - 7,9,1,0,18,36,108,216,108,36,18,6,4,4,8,1, - 2,252,4,4,4,3,1,1,5,0,3,224,9,10,20,10, - 1,3,62,0,65,0,188,128,146,128,146,128,156,128,146,128, - 186,128,65,0,62,0,5,1,1,7,1,11,248,4,4,4, - 6,2,8,96,144,144,96,7,9,9,9,2,1,16,16,16, - 254,16,16,16,0,254,4,7,7,5,1,6,96,144,16,16, - 32,64,240,4,7,7,5,1,6,96,144,16,32,16,144,96, - 3,4,4,6,3,11,32,96,64,128,7,10,10,8,1,253, - 136,136,136,136,136,218,164,128,128,128,7,15,15,8,1,252, - 62,116,244,244,244,116,52,20,20,20,20,20,20,20,20,2, - 2,2,4,2,5,192,192,3,3,3,7,2,253,64,32,224, - 3,7,7,4,1,6,64,192,64,64,64,64,224,4,6,6, - 5,1,7,96,144,144,144,96,240,7,7,7,8,1,0,144, - 72,108,54,108,72,144,11,11,22,12,1,0,64,0,196,0, - 68,0,68,0,68,64,232,192,9,64,10,64,11,224,16,64, - 16,224,11,11,22,12,1,0,64,0,196,0,68,0,68,0, - 68,0,232,192,9,32,8,32,8,64,16,128,17,224,12,11, - 22,13,1,0,96,0,146,0,18,0,34,0,18,32,148,96, - 100,160,5,32,5,240,8,32,8,112,5,12,12,8,1,253, - 48,48,0,0,0,48,32,32,64,128,136,112,11,16,32,11, - 0,0,8,0,12,0,4,0,2,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,16,32,11,0,0,2,0,6,0,4,0,8,0, - 0,0,4,0,4,0,10,0,10,0,10,0,17,0,17,0, - 31,0,32,128,32,128,241,224,11,15,30,11,0,0,4,0, - 14,0,17,0,0,0,4,0,4,0,10,0,10,0,10,0, - 17,0,17,0,31,0,32,128,32,128,241,224,11,15,30,11, - 0,0,9,0,21,0,18,0,0,0,4,0,4,0,10,0, - 10,0,10,0,17,0,17,0,31,0,32,128,32,128,241,224, - 11,14,28,11,0,0,27,0,27,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,15,30,11,0,0,6,0,9,0,9,0,6,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,14,11,22,15,0,0,15,248,10,24, - 10,8,10,40,18,32,31,224,18,36,18,36,34,8,34,8, - 247,248,9,14,28,10,1,253,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,8,0, - 4,0,28,0,10,16,32,11,0,0,16,0,24,0,8,0, - 4,0,0,0,255,128,32,128,32,128,34,128,34,0,62,0, - 34,64,34,64,32,128,32,128,255,128,10,16,32,11,0,0, - 4,0,12,0,8,0,16,0,0,0,255,128,32,128,32,128, - 34,128,34,0,62,0,34,64,34,64,32,128,32,128,255,128, - 10,15,30,11,0,0,8,0,28,0,34,0,0,0,255,128, - 32,128,32,128,34,128,34,0,62,0,34,64,34,64,32,128, - 32,128,255,128,10,14,28,11,0,0,54,0,54,0,0,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,5,16,16,6,1,0,64,96,32,16, - 0,248,32,32,32,32,32,32,32,32,32,248,5,16,16,6, - 1,0,16,48,32,64,0,248,32,32,32,32,32,32,32,32, - 32,248,5,15,15,6,1,0,32,112,136,0,248,32,32,32, - 32,32,32,32,32,32,248,5,14,14,6,1,0,216,216,0, - 248,32,32,32,32,32,32,32,32,32,248,10,11,22,11,0, - 0,254,0,33,128,32,128,32,64,32,64,248,64,32,64,32, - 64,32,128,33,128,254,0,11,15,30,12,0,0,9,0,21, - 0,18,0,0,0,227,224,48,128,48,128,40,128,40,128,36, - 128,34,128,34,128,33,128,33,128,248,128,10,16,32,12,1, - 0,16,0,24,0,8,0,4,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,10,16,32,12,1,0,2,0,6,0,4,0,8,0,0, - 0,30,0,33,0,64,128,128,64,128,64,128,64,128,64,128, - 64,64,128,33,0,30,0,10,15,30,12,1,0,8,0,28, - 0,34,0,0,0,30,0,33,0,64,128,128,64,128,64,128, - 64,128,64,128,64,64,128,33,0,30,0,10,15,30,12,1, - 0,18,0,42,0,36,0,0,0,30,0,33,0,64,128,128, - 64,128,64,128,64,128,64,128,64,64,128,33,0,30,0,10, - 14,28,12,1,0,54,0,54,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,7,7,7,9,1,0,130,68,40,16,40,68,130,10,13, - 26,12,1,255,0,128,31,0,33,0,66,128,130,64,132,64, - 140,64,136,64,144,64,80,128,33,0,62,0,64,0,11,16, - 32,12,1,0,8,0,12,0,4,0,2,0,0,0,251,224, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128, - 17,0,14,0,11,16,32,12,1,0,2,0,6,0,4,0, - 8,0,0,0,251,224,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,17,0,14,0,11,15,30,12,1,0, - 4,0,14,0,17,0,0,0,251,224,32,128,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,17,0,14,0,11,14, - 28,12,1,0,27,0,27,0,0,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,16,32,12,0,0,2,0,6,0,4,0,8,0,0,0, - 241,224,32,128,17,0,17,0,10,0,14,0,4,0,4,0, - 4,0,4,0,31,0,9,11,22,10,0,0,248,0,32,0, - 62,0,33,0,32,128,32,128,32,128,33,0,62,0,32,0, - 248,0,6,12,12,7,1,0,48,72,72,72,72,216,72,68, - 68,68,68,216,6,12,12,7,1,0,64,96,32,16,0,112, - 136,8,120,136,136,124,6,12,12,7,1,0,16,48,32,64, - 0,112,136,8,120,136,136,124,6,11,11,7,1,0,32,112, - 136,0,112,136,8,120,136,136,124,6,11,11,7,1,0,72, - 168,144,0,112,136,8,120,136,136,124,6,10,10,7,1,0, - 216,216,0,112,136,8,120,136,136,124,6,11,11,7,1,0, - 48,72,72,48,112,136,8,120,136,136,124,10,7,14,11,1, - 0,115,128,140,64,15,192,120,0,136,0,140,64,115,128,5, - 10,10,6,1,253,112,136,128,128,128,136,112,32,16,112,5, - 12,12,6,1,0,64,96,32,16,0,112,136,248,128,128,136, - 112,5,12,12,6,1,0,16,48,32,64,0,112,136,248,128, - 128,136,112,5,11,11,6,1,0,32,112,136,0,112,136,248, - 128,128,136,112,5,10,10,6,1,0,216,216,0,112,136,248, - 128,128,136,112,4,12,12,4,0,0,128,192,64,32,0,96, - 32,32,32,32,32,112,4,12,12,4,1,0,16,48,32,64, - 0,192,64,64,64,64,64,224,5,11,11,5,0,0,32,112, - 136,0,96,32,32,32,32,32,112,5,10,10,6,0,0,216, - 216,0,96,32,32,32,32,32,112,5,12,12,6,1,0,80, - 112,224,16,16,120,136,136,136,136,136,112,7,11,11,8,1, - 0,72,168,144,0,248,68,68,68,68,68,238,5,12,12,6, - 1,0,64,96,32,16,0,112,136,136,136,136,136,112,5,12, - 12,6,1,0,16,48,32,64,0,112,136,136,136,136,136,112, - 5,11,11,6,1,0,32,112,136,0,112,136,136,136,136,136, - 112,5,11,11,6,1,0,72,168,144,0,112,136,136,136,136, - 136,112,5,10,10,6,1,0,216,216,0,112,136,136,136,136, - 136,112,9,7,14,11,1,0,8,0,8,0,0,0,255,128, - 0,0,8,0,8,0,5,11,11,6,1,254,8,16,112,152, - 168,168,168,200,112,64,128,7,12,12,8,1,0,64,96,32, - 16,0,204,68,68,68,68,68,62,7,12,12,8,1,0,8, - 24,16,32,0,204,68,68,68,68,68,62,7,11,11,8,1, - 0,16,56,68,0,204,68,68,68,68,68,62,7,10,10,8, - 1,0,108,108,0,204,68,68,68,68,68,62,8,15,15,8, - 1,253,4,12,8,16,0,231,36,36,36,24,24,24,16,144, - 224,6,15,15,7,1,253,192,64,64,64,64,120,68,68,68, - 68,68,120,64,64,224,8,13,13,8,1,253,54,54,0,231, - 36,36,36,24,24,24,16,144,224}; -/* - Fontname: cursor - Copyright: These glyphs are unencumbered - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=16 x= 1 y= 0 dx=17 dy= 0 ascent=15 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-15 y=-16 dx= 0 dy= 0 - Pure Font ascent =15 descent=-8 - X Font ascent =16 descent=-16 - Max Font ascent =15 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursor[5286] U8G_FONT_SECTION("u8g_font_cursor") = { - 0,31,31,241,240,15,4,101,8,211,32,255,248,15,240,16, - 240,14,14,28,17,250,248,224,28,240,60,248,124,124,248,63, - 240,31,224,15,192,15,192,31,224,63,240,124,248,248,124,240, - 60,224,28,16,16,32,17,249,247,240,15,248,31,252,63,254, - 127,127,254,63,252,31,248,15,240,15,240,31,248,63,252,127, - 254,254,127,252,63,248,31,240,15,14,14,28,17,243,242,0, - 12,0,60,0,248,3,248,15,240,63,240,3,224,7,224,14, - 192,28,192,56,128,112,128,224,0,64,0,16,16,32,17,242, - 241,0,7,0,31,0,127,1,254,7,254,31,252,63,252,63, - 248,7,248,15,240,31,240,62,224,124,224,248,64,112,0,32, - 0,8,10,10,17,253,255,255,0,255,24,24,24,24,90,60, - 24,10,12,24,17,252,254,255,192,255,192,255,192,255,192,255, - 192,30,0,30,0,127,128,127,128,127,128,63,0,30,0,8, - 10,10,17,253,255,24,60,90,24,24,24,24,255,0,255,10, - 12,24,17,252,254,12,0,30,0,127,128,127,128,127,128,30, - 0,30,0,255,192,255,192,255,192,255,192,255,192,16,8,16, - 17,242,251,1,0,7,192,136,96,255,255,0,24,0,32,0, - 64,255,192,16,9,18,17,242,251,7,0,15,192,159,224,255, - 255,255,255,255,255,255,248,255,224,255,192,13,14,28,17,250, - 248,226,56,34,32,34,32,34,32,255,248,162,40,162,40,162, - 40,162,40,255,248,34,32,34,32,34,32,226,56,15,16,32, - 17,249,247,251,190,251,190,251,190,59,184,255,254,255,254,255, - 254,251,190,251,190,255,254,255,254,255,254,59,184,251,190,251, - 190,251,190,14,14,28,17,0,255,192,0,192,0,196,16,196, - 32,196,64,196,128,197,0,198,0,199,240,192,0,192,0,192, - 0,255,252,255,252,16,16,32,17,255,254,240,0,240,0,247, - 12,247,28,247,56,247,112,247,224,247,192,247,252,247,252,247, - 252,240,0,255,255,255,255,255,255,255,255,14,14,28,17,243, - 255,0,12,0,12,32,140,16,140,8,140,4,140,2,140,1, - 140,63,140,0,12,0,12,0,12,255,252,255,252,16,16,32, - 17,242,254,0,15,0,15,48,239,56,239,28,239,14,239,7, - 239,3,239,63,239,63,239,63,239,0,15,255,255,255,255,255, - 255,255,255,13,14,28,17,250,255,2,0,2,0,2,0,2, - 0,2,0,2,0,34,32,18,64,10,128,7,0,2,0,0, - 0,255,248,255,248,15,16,32,17,249,254,3,128,3,128,3, - 128,3,128,3,128,3,128,51,152,59,184,31,240,15,224,7, - 192,3,128,255,254,255,254,255,254,255,254,14,10,20,17,249, - 255,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,16,12,24,17,248,254,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,255,255,255,255,255, - 255,255,255,15,16,32,17,248,248,255,254,128,0,191,254,160, - 2,175,250,168,10,171,234,170,42,170,170,171,170,168,42,175, - 234,160,10,191,250,128,2,255,254,16,16,32,17,248,248,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 14,28,17,252,242,12,0,12,0,30,0,30,0,63,0,63, - 0,127,128,127,128,204,192,140,64,12,0,12,0,12,0,12, - 0,12,16,32,17,251,241,15,0,15,0,31,128,31,128,63, - 192,63,192,127,224,127,224,255,240,255,240,255,240,239,112,15, - 0,15,0,15,0,15,0,14,14,28,17,249,249,7,128,31, - 224,63,240,120,120,112,56,224,28,224,28,224,28,224,28,112, - 56,120,120,63,240,31,224,7,128,16,16,32,17,248,248,7, - 224,31,248,63,252,127,254,127,254,252,63,248,31,248,31,248, - 31,248,31,252,63,127,254,127,254,63,252,31,248,7,224,14, - 16,32,17,250,243,63,240,103,152,200,204,147,36,158,36,136, - 68,199,140,127,248,83,40,83,40,83,40,87,168,211,44,240, - 60,255,252,255,252,15,16,32,17,250,243,127,248,239,156,219, - 238,183,182,191,246,159,102,207,206,255,252,215,172,215,172,215, - 172,223,236,215,174,243,62,255,254,255,254,15,16,32,17,249, - 249,31,240,32,8,96,6,80,26,79,226,192,2,192,2,64, - 2,64,2,89,26,106,170,235,170,218,154,64,2,64,2,63, - 252,16,16,32,17,249,249,31,240,63,248,127,255,127,255,255, - 255,255,255,255,255,255,255,127,255,127,255,255,255,255,255,255, - 255,255,255,127,255,63,252,16,15,30,17,249,248,2,128,2, - 128,2,128,2,128,2,128,2,128,254,255,0,0,254,255,2, - 128,2,128,2,128,2,128,2,128,2,128,16,16,32,17,249, - 247,7,192,7,192,7,192,7,192,7,192,255,255,255,255,255, - 255,255,255,255,255,7,192,7,192,7,192,7,192,7,192,7, - 192,16,15,30,17,249,248,66,132,162,138,82,148,42,168,22, - 208,10,160,253,127,2,128,253,127,10,160,22,208,42,168,82, - 148,162,138,66,132,16,15,30,17,249,248,102,204,182,219,222, - 246,110,236,54,216,250,191,252,127,1,0,252,127,250,191,54, - 216,110,236,222,246,182,219,102,204,16,15,30,17,249,248,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,254,255,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,16,16,32, - 17,249,247,3,128,3,128,3,128,3,128,3,128,3,128,255, - 255,255,255,255,255,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,15,15,30,17,249,248,2,128,6,192,10,160,18, - 144,34,136,66,132,254,254,0,0,254,254,66,132,34,136,18, - 144,10,160,6,192,2,128,16,16,32,17,249,247,7,192,15, - 224,31,240,59,184,115,156,227,142,255,255,254,255,255,255,227, - 142,115,156,59,184,31,240,15,224,7,192,3,128,10,10,20, - 17,251,251,30,0,127,128,127,128,255,192,255,192,255,192,255, - 192,127,128,127,128,30,0,12,12,24,17,250,250,31,128,127, - 224,127,224,255,240,255,240,255,240,255,240,255,240,255,240,127, - 224,127,224,31,128,12,12,24,17,250,249,255,240,128,16,128, - 16,128,16,128,16,134,16,134,16,128,16,128,16,128,16,128, - 16,255,240,14,14,28,17,249,248,255,252,255,252,255,252,224, - 28,224,28,231,156,231,156,231,156,231,156,224,28,224,28,255, - 252,255,252,255,252,10,14,28,17,251,249,12,0,30,0,63, - 0,109,128,204,192,12,0,12,0,12,0,12,0,204,192,109, - 128,63,0,30,0,12,0,12,16,32,17,250,248,15,0,31, - 128,63,192,127,224,255,240,255,240,255,240,15,0,15,0,255, - 240,255,240,255,240,127,224,63,192,31,128,15,0,15,15,30, - 17,242,241,0,2,0,12,0,60,0,248,3,248,15,240,63, - 240,1,224,2,224,4,192,8,192,16,128,32,128,64,0,128, - 0,15,16,32,17,242,240,0,6,0,30,0,126,1,252,7, - 248,31,248,127,240,127,240,7,224,15,224,29,192,57,192,113, - 128,225,128,192,0,128,0,15,15,30,17,242,241,0,2,0, - 12,0,60,0,248,3,248,0,112,0,176,1,32,2,32,4, - 0,8,0,16,0,32,0,64,0,128,0,15,15,30,17,242, - 241,0,6,0,30,0,124,1,252,7,248,7,248,1,240,3, - 240,7,96,14,64,28,0,56,0,112,0,224,0,192,0,12, - 12,24,17,250,249,255,240,137,16,153,144,176,208,224,112,134, - 16,134,16,224,112,176,208,153,144,137,16,255,240,14,14,28, - 17,249,248,255,252,255,252,207,204,223,236,252,252,251,124,247, - 188,247,188,251,124,252,252,223,236,207,204,255,252,255,252,14, - 14,28,17,250,248,143,192,223,224,248,48,144,16,152,0,252, - 0,0,0,0,0,0,252,0,100,32,36,48,124,31,236,15, - 196,16,16,32,17,249,247,199,224,239,240,255,248,255,252,252, - 28,255,12,255,0,255,0,0,255,0,255,48,127,56,63,63, - 255,31,255,15,247,7,227,14,14,28,17,249,249,3,0,7, - 128,15,192,3,0,35,16,99,24,255,252,255,252,99,24,35, - 16,3,0,15,192,7,128,3,0,16,16,32,17,248,248,3, - 192,3,224,7,224,15,240,23,232,59,220,255,255,255,255,255, - 255,255,255,59,220,23,232,15,240,7,224,3,192,3,192,16, - 15,30,17,242,243,0,120,0,112,128,51,159,176,255,240,254, - 48,252,48,96,56,0,240,31,224,8,0,8,0,8,0,8, - 0,30,0,16,16,32,17,242,243,0,252,0,252,192,255,255, - 255,255,255,255,252,255,252,255,252,255,252,255,252,127,248,31, - 240,28,0,28,0,63,0,63,0,16,16,32,17,254,240,63, - 0,16,128,200,64,234,160,200,32,203,160,248,60,56,63,8, - 39,8,39,9,47,9,39,9,32,17,16,33,8,62,248,16, - 16,32,17,254,240,63,0,223,128,239,192,255,224,239,224,239, - 252,255,254,255,255,63,239,15,239,15,255,15,239,15,231,31, - 240,63,248,62,248,13,16,32,17,244,240,0,24,0,120,1, - 224,3,192,7,128,15,192,31,224,95,192,255,224,191,224,15, - 192,15,128,148,0,196,0,104,0,48,0,13,16,32,17,244, - 240,0,56,0,248,3,240,7,224,15,192,31,224,127,240,255, - 240,255,240,255,240,255,224,255,192,255,128,254,0,252,0,120, - 0,15,14,28,17,0,242,127,128,128,64,126,32,16,16,14, - 16,16,16,14,40,16,68,12,130,3,4,2,72,1,16,0, - 160,0,64,16,16,32,17,0,241,127,128,255,192,255,224,255, - 240,127,248,31,248,63,248,31,252,63,254,31,255,15,254,7, - 252,3,248,1,240,0,224,0,64,15,14,28,17,250,250,62, - 248,99,140,193,6,128,2,128,2,128,2,128,2,192,6,96, - 12,48,24,24,48,12,96,6,192,3,128,15,14,28,17,250, - 250,62,248,127,252,227,142,193,6,192,6,192,6,194,134,225, - 14,112,28,56,56,28,112,15,224,7,192,3,128,16,16,32, - 17,248,248,255,255,213,85,170,171,213,85,160,11,208,5,160, - 11,208,5,160,11,208,5,160,11,208,5,170,171,213,85,170, - 171,255,255,16,16,32,17,248,248,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,14,14,28,17,249,248,127, - 248,63,240,159,228,207,204,231,156,243,60,255,252,255,252,243, - 60,231,156,207,204,159,228,63,240,127,248,16,16,32,17,248, - 247,63,252,127,254,127,254,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,127,254,127,254,63, - 252,8,14,14,17,0,242,128,192,224,240,248,252,254,255,248, - 216,140,12,6,6,10,16,32,17,255,241,192,0,224,0,240, - 0,248,0,252,0,254,0,255,0,255,128,255,192,255,192,254, - 0,239,0,207,0,7,128,7,128,3,0,14,13,26,17,0, - 249,192,0,192,0,193,0,194,0,196,0,200,0,223,252,200, - 0,196,0,194,0,193,0,192,0,192,0,16,15,30,17,255, - 248,240,0,240,0,240,192,241,192,243,128,247,0,255,255,255, - 255,255,255,247,0,243,128,241,192,240,192,240,0,240,0,10, - 14,28,17,0,249,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,12,16,32,17,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,240,0,240,0,240, - 0,240,0,240,0,240,0,16,16,32,17,248,248,128,3,127, - 253,127,253,68,69,69,85,69,85,69,85,69,85,68,69,127, - 253,127,253,127,253,127,253,127,253,127,253,128,3,15,16,32, - 17,248,248,127,252,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,127,252,10,10,20,17,0,255,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,12,12,24, - 17,255,254,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,10,10,20,17,247, - 255,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,255,192,255,192,12,12,24,17,246,254,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,255,240,255,240,255, - 240,255,240,16,16,32,17,242,245,3,128,30,240,2,128,129, - 0,67,135,36,75,29,112,5,64,4,64,2,128,4,64,9, - 32,18,144,20,80,120,60,248,63,16,16,32,17,242,245,31, - 224,63,240,63,248,195,130,231,199,127,255,63,251,31,240,7, - 224,7,192,15,224,31,240,63,248,126,252,252,127,252,127,16, - 16,32,17,248,248,128,3,127,253,127,253,68,69,84,85,84, - 85,84,85,84,85,68,69,127,253,127,253,127,253,127,253,127, - 253,127,253,128,3,15,16,32,17,248,248,127,252,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,127,252,15,14,28,17,252, - 243,7,0,12,0,6,0,3,0,127,248,128,4,179,54,179, - 54,179,54,128,6,128,6,96,28,24,96,7,128,16,16,32, - 17,252,241,15,128,30,0,15,0,7,0,127,248,255,252,255, - 255,255,255,255,255,255,255,255,255,255,255,63,247,31,224,15, - 192,7,128,11,16,32,17,246,255,112,0,136,0,140,0,74, - 0,122,0,33,0,17,0,16,128,8,128,12,64,4,64,2, - 32,1,224,0,224,0,96,0,32,13,16,32,17,245,255,252, - 0,254,0,255,0,127,0,63,128,63,128,31,192,15,192,15, - 224,7,224,7,240,3,248,1,248,0,248,0,120,0,56,15, - 16,32,17,249,252,7,128,15,192,31,224,51,48,51,48,31, - 224,15,192,7,128,135,132,135,134,67,8,56,112,7,128,31, - 226,240,62,128,4,16,16,32,17,249,252,15,192,31,224,63, - 240,127,248,127,248,63,240,31,224,143,193,143,199,207,207,247, - 156,120,120,7,128,127,227,255,255,240,62,10,10,20,17,252, - 251,12,0,12,0,12,0,12,0,255,192,255,192,12,0,12, - 0,12,0,12,0,12,12,24,17,251,250,15,0,15,0,15, - 0,15,0,255,240,255,240,255,240,255,240,15,0,15,0,15, - 0,15,0,9,15,30,17,252,248,62,0,127,0,227,128,193, - 128,225,128,99,128,7,0,30,0,28,0,20,0,20,0,119, - 0,54,0,28,0,8,0,11,16,32,17,251,248,31,0,63, - 128,127,192,255,224,241,224,249,224,123,224,63,192,31,128,31, - 0,31,0,63,128,127,192,63,128,31,0,14,0,8,14,14, - 17,249,242,1,3,7,15,31,63,127,255,31,27,49,48,96, - 96,10,16,32,17,248,241,0,192,1,192,3,192,7,192,15, - 192,31,192,63,192,127,192,255,192,255,192,31,192,61,192,60, - 192,120,0,120,0,48,0,14,13,26,17,243,249,0,12,0, - 12,2,12,1,12,0,140,0,76,255,236,0,76,0,140,1, - 12,2,12,0,12,0,12,16,15,30,17,242,248,0,15,0, - 15,3,15,3,143,1,207,0,239,255,255,255,255,255,255,0, - 239,1,207,3,143,3,15,0,15,0,15,10,14,28,17,247, - 249,0,192,0,192,0,192,0,192,0,192,0,192,255,192,255, - 192,0,192,0,192,0,192,0,192,0,192,0,192,12,16,32, - 17,246,248,0,240,0,240,0,240,0,240,0,240,0,240,255, - 240,255,240,255,240,255,240,0,240,0,240,0,240,0,240,0, - 240,0,240,16,16,32,17,248,248,128,3,127,253,127,253,68, - 69,85,69,85,69,85,69,85,69,68,69,127,253,127,253,127, - 253,127,253,127,253,127,253,128,3,15,16,32,17,248,248,127, - 252,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,127,252,14, - 14,28,17,250,248,255,252,128,68,128,68,128,68,255,196,136, - 68,136,68,136,68,136,68,143,252,136,4,136,4,136,4,255, - 252,16,16,32,17,249,247,255,255,255,255,255,255,224,119,255, - 247,255,247,255,247,238,119,238,119,239,255,239,255,239,255,238, - 7,255,255,255,255,255,255,12,13,26,17,250,242,1,0,1, - 0,5,128,5,128,13,128,13,192,29,192,29,192,61,224,61, - 224,125,224,125,240,248,224,16,16,32,17,248,240,0,192,0, - 224,1,224,3,240,3,240,7,240,7,248,15,248,15,248,31, - 252,31,252,63,252,63,255,127,255,255,248,127,224,7,15,15, - 17,253,0,40,40,40,40,40,40,40,40,40,40,40,254,124, - 56,16,9,16,32,17,252,255,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,255,128,255,128, - 127,0,62,0,28,0,8,0,15,7,14,17,249,252,16,16, - 48,24,127,252,240,30,127,252,48,24,16,16,15,9,18,17, - 249,251,24,48,56,56,127,252,255,254,255,254,255,254,127,252, - 56,56,24,48,15,7,14,17,1,252,16,0,48,0,127,254, - 240,0,127,254,48,0,16,0,16,9,18,17,0,251,12,0, - 28,0,63,255,127,255,255,255,127,255,63,255,28,0,12,0, - 15,7,14,17,241,252,0,16,0,24,255,252,0,30,255,252, - 0,24,0,16,16,9,18,17,241,251,0,48,0,56,255,252, - 255,254,255,255,255,254,255,252,0,56,0,48,7,15,15,17, - 253,240,16,56,124,254,40,40,40,40,40,40,40,40,40,40, - 40,9,16,32,17,252,240,8,0,28,0,62,0,127,0,255, - 128,255,128,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,7,15,15,17,253,248,16,56,124, - 254,40,40,40,40,40,40,40,254,124,56,16,9,15,30,17, - 252,248,28,0,62,0,127,0,255,128,255,128,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,127,0,62,0,28,0, - 15,16,32,17,246,240,0,32,0,112,0,248,1,222,5,222, - 9,222,17,222,17,222,17,222,17,222,49,222,113,222,253,222, - 24,136,0,120,0,48,16,16,32,17,245,240,0,56,0,124, - 0,254,0,255,6,255,14,255,30,255,30,255,30,255,30,255, - 62,255,126,255,254,255,126,254,12,126,0,60,14,14,28,17, - 249,249,255,0,128,0,128,0,128,0,143,192,136,64,136,68, - 136,68,8,68,15,196,0,36,0,20,0,12,3,252,16,16, - 32,17,248,248,255,192,255,192,255,192,224,0,239,240,239,240, - 239,247,238,119,238,119,239,247,15,247,15,255,0,31,3,255, - 3,255,3,255,16,16,32,17,250,247,32,16,16,32,16,32, - 8,64,8,64,135,135,103,152,31,224,31,224,103,152,135,135, - 8,64,8,64,16,32,16,32,32,16,16,16,32,17,250,247, - 96,24,48,48,16,32,24,96,143,193,207,207,111,220,63,240, - 63,224,111,248,207,207,143,193,24,64,24,96,48,48,96,24, - 11,16,32,17,247,242,0,96,1,0,52,96,121,0,104,96, - 252,0,132,0,228,0,164,0,228,0,164,0,228,0,228,0, - 132,0,132,0,252,0,12,16,32,17,246,242,0,48,24,176, - 62,176,62,176,126,176,255,0,255,0,255,0,255,0,255,0, - 255,0,255,0,255,0,255,0,255,0,255,0,15,16,32,17, - 249,247,1,0,2,128,2,128,2,128,4,64,4,64,4,64, - 57,56,192,6,56,56,9,32,18,144,36,72,40,40,48,24, - 32,8,16,16,32,17,249,247,1,0,3,128,3,128,6,192, - 6,192,12,96,28,120,249,62,192,7,248,62,57,56,51,152, - 102,204,108,108,120,60,112,28,15,13,26,17,249,249,3,128, - 15,224,28,112,48,24,96,12,193,6,194,134,193,6,96,12, - 48,24,28,112,15,224,3,128,16,14,28,17,249,249,7,192, - 15,224,31,240,60,120,112,28,225,14,195,135,198,199,195,135, - 225,14,112,28,60,120,31,240,7,192,13,13,26,16,250,249, - 2,0,2,0,2,0,2,0,2,0,2,0,255,248,2,0, - 2,0,2,0,2,0,2,0,2,0,15,15,30,16,249,248, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,3,128,3,128,3,128,3,128,3,128,3,128,14,14, - 28,17,0,242,192,0,240,0,124,0,127,0,63,192,63,240, - 31,0,31,0,12,128,12,64,4,32,4,16,0,8,0,4, - 16,16,32,17,255,241,224,0,248,0,254,0,127,128,127,224, - 63,252,63,252,31,252,31,192,15,224,15,112,7,56,7,28, - 7,14,0,7,0,3,14,14,28,17,0,242,255,252,255,252, - 192,0,192,0,192,0,199,240,198,0,197,0,196,128,196,64, - 196,32,196,16,192,0,192,0,16,16,32,17,255,241,255,255, - 255,255,255,255,255,255,240,0,247,252,247,252,247,252,247,192, - 247,224,247,112,247,56,247,28,247,12,240,0,240,0,14,14, - 28,17,243,242,255,252,255,252,0,12,0,12,0,12,63,140, - 1,140,2,140,4,140,8,140,16,140,32,140,0,12,0,12, - 16,16,32,17,242,241,255,255,255,255,255,255,255,255,0,15, - 63,239,63,239,63,239,3,239,7,239,14,239,28,239,56,239, - 48,239,0,15,0,15,13,14,28,17,250,242,255,248,255,248, - 0,0,2,0,7,0,10,128,18,64,34,32,2,0,2,0, - 2,0,2,0,2,0,2,0,15,16,32,17,249,241,255,254, - 255,254,255,254,255,254,3,128,7,192,15,224,31,240,59,184, - 51,152,3,128,3,128,3,128,3,128,3,128,3,128,14,10, - 20,17,249,246,255,252,255,252,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,16,12,24,17,248,245,255,255, - 255,255,255,255,255,255,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,7,16,16,17,253,240,16,0,56,124, - 254,238,254,124,56,16,186,214,146,130,130,130,9,16,32,17, - 252,240,28,0,28,0,62,0,127,0,255,128,255,128,255,128, - 127,0,62,0,93,0,255,128,255,128,255,128,235,128,235,128, - 227,128,10,10,20,17,0,246,255,192,255,192,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,12,12,24,17, - 255,245,255,240,255,240,255,240,255,240,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,14,14,28,17,249,244, - 17,32,4,80,147,76,79,144,50,96,194,24,2,0,2,0, - 2,0,2,0,2,0,2,128,2,128,1,0,16,16,32,17, - 248,242,23,110,223,251,191,252,127,255,255,252,255,255,243,158, - 3,128,3,128,3,128,3,128,3,224,3,224,3,224,3,224, - 1,192,10,10,20,17,247,246,255,192,255,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,12,12,24,17, - 246,245,255,240,255,240,255,240,255,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,16,16,32,17,241,249, - 31,224,31,224,31,224,63,240,97,24,193,12,129,7,131,135, - 131,135,132,7,200,12,96,24,63,240,31,224,31,224,31,224, - 16,16,32,17,241,249,63,240,63,240,63,240,127,248,255,252, - 255,255,255,255,255,255,255,255,255,255,255,255,255,252,127,248, - 63,240,63,240,63,240,7,14,14,10,253,249,238,56,16,16, - 16,16,16,16,16,16,16,16,56,238,9,16,32,10,252,248, - 247,128,255,128,255,128,62,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,255,128,247,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; -/* - Fontname: cursor - Copyright: These - Capital A Height: 0, '1' Height: 0 - Calculated Max Values w=16 h=16 x= 0 y= 0 dx=17 dy= 0 ascent= 7 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-14 y=-16 dx= 0 dy= 0 - Pure Font ascent = 0 descent= 0 - X Font ascent = 0 descent= 0 - Max Font ascent = 7 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursorr[492] U8G_FONT_SECTION("u8g_font_cursorr") = { - 0,31,31,241,240,0,1,6,0,0,32,80,0,7,240,0, - 0,255,255,14,14,28,17,243,242,0,12,0,60,0,248,3, - 248,15,240,63,240,3,224,7,224,14,192,28,192,56,128,112, - 128,224,0,64,0,16,16,32,17,242,241,0,7,0,31,0, - 127,1,254,7,254,31,252,63,252,63,248,7,248,15,240,31, - 240,62,224,124,224,248,64,112,0,32,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,10,14,28, - 17,252,242,12,0,12,0,30,0,30,0,63,0,63,0,127, - 128,127,128,204,192,140,64,12,0,12,0,12,0,12,0,12, - 16,32,17,251,241,15,0,15,0,31,128,31,128,63,192,63, - 192,127,224,127,224,255,240,255,240,255,240,239,112,15,0,15, - 0,15,0,15,0,255,255,255,255,255,255,16,15,30,17,249, - 248,2,128,2,128,2,128,2,128,2,128,2,128,254,255,0, - 0,254,255,2,128,2,128,2,128,2,128,2,128,2,128,16, - 16,32,17,249,247,7,192,7,192,7,192,7,192,7,192,255, - 255,255,255,255,255,255,255,255,255,7,192,7,192,7,192,7, - 192,7,192,7,192,255,255,16,15,30,17,249,248,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,254,255,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,17,249, - 247,3,128,3,128,3,128,3,128,3,128,3,128,255,255,255, - 255,255,255,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,255,255,255,255,255,255,255,255,15,15,30,17,242,241,0, - 2,0,12,0,60,0,248,3,248,15,240,63,240,1,224,2, - 224,4,192,8,192,16,128,32,128,64,0,128,0,15,16,32, - 17,242,240,0,6,0,30,0,126,1,252,7,248,31,248,127, - 240,127,240,7,224,15,224,29,192,57,192,113,128,225,128,192, - 0,128,0,15,15,30,17,242,241,0,2,0,12,0,60,0, - 248,3,248,0,112,0,176,1,32,2,32,4,0,8,0,16, - 0,32,0,64,0,128,0,15,15,30,17,242,241,0,6,0, - 30,0,124,1,252,7,248,7,248,1,240,3,240,7,96,14, - 64,28,0,56,0,112,0,224,0,192,0,255}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0[1702] U8G_FONT_SECTION("u8g_font_fixed_v0") = { - 1,7,9,0,254,7,1,46,2,94,32,255,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2, - 87,103,48,0,248,32,32,32,248,2,87,103,32,112,168,160, - 168,112,32,2,87,103,64,64,64,240,64,72,120,3,85,101, - 136,112,80,112,136,2,87,103,136,136,80,248,32,248,32,34, - 23,103,128,128,128,0,128,128,128,2,87,103,120,128,120,136, - 240,8,240,5,81,97,248,2,87,103,112,136,168,200,168,136, - 112,2,87,103,112,8,120,136,120,0,248,4,83,99,72,144, - 72,4,82,98,248,8,255,2,87,103,112,136,248,200,200,136, - 112,8,81,97,248,20,51,99,64,160,64,2,87,103,32,32, - 248,32,32,0,248,255,255,255,255,255,255,255,255,255,4,83, - 99,144,72,144,255,255,255,255,2,87,103,64,32,112,136,248, - 136,136,2,87,103,16,32,112,136,248,136,136,2,87,103,32, - 80,112,136,248,136,136,2,87,103,72,176,112,136,248,136,136, - 2,87,103,80,0,112,136,248,136,136,2,87,103,112,0,112, - 136,248,136,136,2,87,103,120,160,160,240,160,160,184,0,89, - 105,112,136,128,128,128,136,112,32,96,2,87,103,64,32,248, - 128,224,128,248,2,87,103,16,32,248,128,224,128,248,2,87, - 103,32,80,248,128,224,128,248,2,87,103,80,0,248,128,224, - 128,248,2,87,103,64,32,248,32,32,32,248,2,87,103,16, - 32,248,32,32,32,248,2,87,103,32,80,248,32,32,32,248, - 2,87,103,80,0,248,32,32,32,248,2,87,103,240,136,136, - 232,136,136,240,2,87,103,72,176,136,200,168,152,136,2,87, - 103,64,32,112,136,136,136,112,2,87,103,16,32,112,136,136, - 136,112,2,87,103,32,80,112,136,136,136,112,2,87,103,72, - 176,112,136,136,136,112,2,87,103,80,0,112,136,136,136,112, - 20,51,99,160,64,160,2,87,103,112,136,152,168,200,136,112, - 2,87,103,64,32,136,136,136,136,112,2,87,103,16,32,136, - 136,136,136,112,2,87,103,32,80,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,2,87,103,16,32,136,136,80, - 32,32,2,87,103,128,128,240,136,240,128,128,0,89,105,240, - 136,136,176,136,136,176,128,128,2,87,103,64,32,112,8,120, - 136,120,2,87,103,16,32,112,8,120,136,120,2,87,103,32, - 80,112,8,120,136,120,2,87,103,72,176,112,8,120,136,120, - 2,87,103,80,0,112,8,120,136,120,2,87,103,48,0,112, - 8,120,136,120,2,85,101,240,40,120,160,120,0,87,103,112, - 136,128,136,112,32,96,2,87,103,64,32,112,136,248,128,120, - 2,87,103,16,32,112,136,248,128,120,2,87,103,32,80,112, - 136,248,128,120,2,87,103,80,0,112,136,248,128,120,2,87, - 103,64,32,248,32,32,32,248,2,87,103,16,32,248,32,32, - 32,248,2,87,103,32,80,248,32,32,32,248,2,87,103,80, - 0,248,32,32,32,248,2,87,103,8,56,8,120,136,136,120, - 2,87,103,72,176,176,200,136,136,136,2,87,103,64,32,112, - 136,136,136,112,2,87,103,16,32,112,136,136,136,112,2,87, - 103,32,80,112,136,136,136,112,2,87,103,72,176,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,112,152,168,200,112,2,87,103,64, - 32,136,136,136,136,112,2,87,103,16,32,136,136,136,136,112, - 2,87,103,32,80,136,136,136,136,112,2,87,103,80,0,136, - 136,136,136,112,0,89,105,16,32,136,136,136,136,120,8,112, - 2,87,103,128,128,240,136,240,128,128,0,89,105,80,0,136, - 136,136,136,120,8,112}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 5 h= 7 x= 1 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[167] U8G_FONT_SECTION("u8g_font_fixed_v0n") = { - 1,7,9,0,254,7,0,0,0,0,42,58,0,7,0,7, - 0,2,87,103,32,168,112,32,112,168,32,3,85,101,32,32, - 248,32,32,18,34,98,64,128,5,81,97,248,18,18,98,128, - 128,2,87,103,8,16,16,32,64,64,128,2,87,103,112,136, - 136,136,136,136,112,2,87,103,32,96,32,32,32,32,248,2, - 87,103,112,136,8,16,32,64,248,2,87,103,240,8,8,48, - 8,8,240,2,87,103,16,144,144,248,16,16,16,2,87,103, - 248,128,128,240,8,8,240,2,87,103,112,128,128,240,136,136, - 112,2,87,103,248,8,8,8,8,8,8,2,87,103,112,136, - 136,112,136,136,112,2,87,103,112,136,136,248,8,8,112,18, - 21,101,128,128,0,128,128}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[878] U8G_FONT_SECTION("u8g_font_fixed_v0r") = { - 1,7,9,0,254,7,1,46,2,94,32,127,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO8859-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=10 x= 4 y=10 dx= 8 dy= 0 ascent=12 len=10 - Font Bounding box w= 7 h=12 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =10 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[1042] U8G_FONT_SECTION("u8g_font_freedoomr10r") = { - 0,7,12,0,0,10,1,113,3,88,32,127,1,12,0,12, - 0,0,0,0,7,0,1,0,0,0,7,0,1,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,3,10,10,7,0,2,96,128,128,128,128,128,128,128,128, - 96,3,10,10,7,3,2,192,32,32,32,32,32,32,32,32, - 192,5,5,5,8,1,7,168,112,32,112,168,7,7,7,8, - 0,4,16,16,16,254,16,16,16,2,2,2,7,2,10,64, - 128,7,1,1,8,0,7,254,2,2,2,7,2,2,192,192, - 7,10,10,8,0,2,2,4,4,8,16,16,32,64,64,128, - 6,10,10,7,0,2,252,132,132,132,132,132,132,132,132,252, - 2,10,10,7,4,2,192,64,64,64,64,64,64,64,64,64, - 6,10,10,7,0,2,252,4,4,4,4,252,128,128,128,252, - 6,10,10,7,0,2,252,4,4,4,60,4,4,4,4,252, - 6,10,10,7,0,2,132,132,132,132,132,252,4,4,4,4, - 6,10,10,7,0,2,252,128,128,128,252,4,4,4,4,252, - 6,10,10,7,0,2,252,128,128,128,252,132,132,132,132,252, - 6,10,10,7,0,2,252,4,4,4,4,4,4,4,4,4, - 6,10,10,7,0,2,252,132,132,132,252,132,132,132,132,252, - 6,10,10,7,0,2,252,132,132,132,252,4,4,4,4,252, - 2,7,7,7,2,2,192,192,0,0,0,192,192,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,7,10,10,8,0,2,254,130,130,130,130,254,130,130,130, - 130,7,10,10,8,0,2,254,130,130,130,252,130,130,130,130, - 254,7,10,10,8,0,2,254,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,252,130,130,130,130,130,130,130,130, - 252,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 254,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 128,7,10,10,8,0,2,254,128,128,128,158,130,130,130,130, - 254,7,10,10,8,0,2,130,130,130,130,254,130,130,130,130, - 130,1,10,10,8,3,2,128,128,128,128,128,128,128,128,128, - 128,7,10,10,8,0,2,30,2,2,2,2,2,130,130,130, - 124,7,10,10,8,0,2,130,132,136,144,224,160,144,136,132, - 130,7,10,10,8,0,2,128,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,130,198,170,146,130,130,130,130,130, - 130,7,10,10,8,0,2,194,194,162,162,146,146,138,138,134, - 134,7,10,10,8,0,2,124,130,130,130,130,130,130,130,130, - 124,7,10,10,8,0,2,254,130,130,130,254,128,128,128,128, - 128,7,10,10,8,0,2,120,132,132,132,132,132,132,132,132, - 126,7,10,10,8,0,2,254,130,130,130,254,160,144,136,132, - 130,7,10,10,8,0,2,254,128,128,128,128,254,2,2,2, - 254,7,9,9,8,0,3,254,16,16,16,16,16,16,16,16, - 7,10,10,8,0,2,130,130,130,130,130,130,130,130,130,254, - 7,10,10,8,0,2,130,130,130,68,68,108,40,40,16,16, - 7,10,10,8,0,2,130,130,130,130,130,146,146,170,170,198, - 7,10,10,8,0,2,130,68,68,40,16,16,40,68,68,130, - 7,10,10,8,0,2,130,130,130,130,254,16,16,16,16,16, - 7,10,10,8,0,2,254,2,6,12,24,48,96,192,128,254, - 4,10,10,7,0,2,240,128,128,128,128,128,128,128,128,240, - 6,10,10,7,0,2,128,64,64,32,32,16,16,8,8,4, - 4,10,10,7,2,2,240,16,16,16,16,16,16,16,16,240, - 5,3,3,7,1,9,32,80,136,6,1,1,7,0,2,252, - 2,2,2,7,2,10,128,64,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 7 y=13 dx=19 dy= 0 ascent=26 len=72 - Font Bounding box w=18 h=26 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[943] U8G_FONT_SECTION("u8g_font_freedoomr25n") = { - 0,18,26,0,0,24,3,112,3,144,32,127,0,26,0,24, - 0,0,0,0,11,0,0,255,255,255,255,255,255,255,255,255, - 255,17,16,48,19,1,6,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,7,8,8,11,3,2,62,62,62, - 62,62,240,240,240,9,2,4,11,1,13,255,128,255,128,5, - 5,5,11,5,2,248,248,248,248,248,255,17,24,72,19,1, - 2,255,255,128,255,255,128,192,3,128,192,3,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,192,3,128,192,3,128, - 255,255,128,255,255,128,255,255,128,6,24,24,19,7,2,252, - 252,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,17,24,72,19,1,2,255,255,128, - 255,255,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,255,255, - 128,255,255,128,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,255,255,128,255, - 255,128,255,255,128,17,24,72,19,1,2,255,255,128,255,255, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,0,3,128,0,3,128,31,255,128,31, - 255,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,255,255,128,255,255,128, - 255,255,128,17,24,72,19,1,2,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,17, - 24,72,19,1,2,255,255,128,255,255,128,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,255,255,128,255,255,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,255,255,128,255,255,128,255,255,128,16,24,48, - 19,2,2,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,17,24,72,19,1,2,255,255,128,255,255,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,255,255, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,5, - 16,16,11,5,2,248,248,248,248,248,0,0,0,0,0,0, - 248,248,248,248,248,7,16,16,11,3,2,62,62,62,62,62, - 0,0,0,62,62,62,62,62,240,240,240,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 4 y=10 dx=17 dy= 0 ascent=17 len=34 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11[3948] U8G_FONT_SECTION("u8g_font_fub11") = { - 0,24,21,255,252,11,2,82,5,55,32,255,253,17,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,5,0,0,2,11,11,6,2, - 253,192,0,0,192,192,192,192,192,192,192,192,7,12,12,9, - 1,254,4,4,60,110,206,208,208,214,110,60,32,64,8,11, - 11,10,1,0,62,119,96,96,252,96,96,96,96,96,255,9, - 8,16,10,1,2,128,128,93,0,34,0,65,0,65,0,34, - 0,93,0,128,128,9,11,22,11,1,0,195,128,99,0,103, - 0,247,128,62,0,60,0,255,128,24,0,24,0,24,0,24, - 0,1,14,14,5,2,253,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,6,14,14,8,1,253,120,236,192,224,120, - 124,204,204,248,120,28,12,156,248,5,1,1,5,0,10,216, - 12,11,22,14,1,0,31,128,57,192,111,96,217,176,152,16, - 152,16,153,144,143,16,64,32,48,192,31,128,5,8,8,7, - 1,3,112,216,120,216,216,120,0,248,8,6,6,10,1,1, - 103,102,238,206,102,103,9,4,8,10,0,3,255,128,0,128, - 0,128,0,128,255,12,11,22,14,1,0,31,128,57,192,111, - 96,201,176,136,144,143,16,137,144,136,144,72,160,48,192,31, - 128,5,1,1,5,0,10,248,4,4,4,6,1,7,96,208, - 144,240,9,10,20,16,3,0,8,0,8,0,8,0,255,128, - 8,0,8,0,8,0,0,0,0,0,255,128,5,6,6,7, - 1,5,112,216,24,48,192,248,5,7,7,7,1,4,112,216, - 24,112,24,216,112,3,3,3,4,1,9,96,192,128,255,7, - 14,14,9,1,253,126,244,244,244,244,116,20,20,20,20,20, - 20,20,20,2,2,2,4,1,4,192,192,4,4,4,3,0, - 252,64,48,176,224,3,6,6,5,1,5,96,224,96,96,96, - 96,6,8,8,8,1,3,120,252,204,204,204,120,0,252,8, - 6,6,10,1,1,204,102,103,103,102,204,12,11,22,13,1, - 0,224,128,97,128,99,0,99,0,102,0,108,224,12,224,25, - 224,25,96,51,240,96,96,11,11,22,13,1,0,97,0,227, - 0,98,0,102,0,100,0,109,224,27,96,24,96,49,192,35, - 0,99,224,12,11,22,13,1,0,120,192,216,128,113,128,217, - 0,115,0,6,96,4,224,13,224,25,96,25,240,48,96,7, - 11,11,9,1,253,24,0,24,24,56,112,224,192,194,254,60, - 11,16,32,11,0,0,24,0,12,0,4,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,16,32,11,0,0,3,0,2,0, - 4,0,0,0,0,0,14,0,14,0,15,0,27,0,27,128, - 57,128,49,128,63,192,127,192,96,224,224,96,11,16,32,11, - 0,0,6,0,14,0,25,0,0,0,0,0,14,0,14,0, - 15,0,27,0,27,128,57,128,49,128,63,192,127,192,96,224, - 224,96,11,15,30,11,0,0,13,0,23,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,15,30,11,0,0,27,0,0,0, - 0,0,0,0,14,0,14,0,15,0,27,0,27,0,59,128, - 49,128,63,192,127,192,96,224,224,96,10,17,34,12,1,0, - 12,0,18,0,18,0,30,0,0,0,0,0,12,0,30,0, - 30,0,63,0,51,0,51,0,99,128,127,128,255,192,192,192, - 192,192,15,11,22,16,0,0,3,254,7,128,7,128,13,128, - 29,128,25,254,57,128,63,128,97,128,97,128,193,254,10,15, - 30,12,1,252,31,0,119,128,97,192,192,0,192,0,192,0, - 192,0,193,192,97,192,115,128,62,0,8,0,14,0,2,0, - 28,0,8,16,16,10,1,0,96,48,24,0,0,255,192,192, - 192,192,255,192,192,192,192,255,8,16,16,10,1,0,12,8, - 16,0,0,255,192,192,192,192,255,192,192,192,192,255,8,16, - 16,10,1,0,24,60,36,0,0,255,192,192,192,192,255,192, - 192,192,192,255,8,15,15,10,1,0,102,0,0,0,255,192, - 192,192,192,255,192,192,192,192,255,4,16,16,4,255,0,192, - 96,48,0,0,48,48,48,48,48,48,48,48,48,48,48,4, - 16,16,4,1,0,112,96,192,0,0,192,192,192,192,192,192, - 192,192,192,192,192,4,16,16,4,0,0,96,240,144,0,0, - 96,96,96,96,96,96,96,96,96,96,96,5,15,15,5,0, - 0,216,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 11,11,22,12,0,0,127,0,99,128,96,192,96,224,96,96, - 252,96,96,96,96,224,96,192,99,128,127,0,10,15,30,12, - 1,0,25,0,22,0,0,0,0,0,240,192,240,192,248,192, - 216,192,220,192,204,192,206,192,198,192,199,192,195,192,195,192, - 11,16,32,13,1,0,24,0,8,0,12,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,123,192,31,0,11,16,32,13,1,0,3,0,2,0, - 4,0,0,0,0,0,31,0,123,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,0,11,16,32,13, - 1,0,14,0,27,0,17,0,0,0,0,0,31,0,123,192, - 96,192,192,96,192,96,192,96,192,96,192,96,96,192,123,192, - 31,0,11,15,30,13,1,0,31,0,0,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,224,224, - 96,192,127,192,31,0,11,15,30,13,1,0,27,0,0,0, - 0,0,0,0,31,0,123,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,123,192,31,0,8,8,8,16,4,0, - 129,195,102,24,24,36,66,129,11,11,22,13,1,0,31,160, - 59,192,96,192,193,96,194,96,196,96,200,96,208,96,224,192, - 123,128,191,0,10,16,32,12,1,0,48,0,24,0,8,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,62,0,10,16,32,12,1,0, - 3,0,6,0,4,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,62,0, - 10,16,32,12,1,0,28,0,30,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,62,0,10,15,30,12,1,0,51,0,0,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,115,128,62,0,10,16,32,10,0,0, - 6,0,6,0,4,0,0,0,0,0,225,192,113,128,51,128, - 59,0,31,0,30,0,12,0,12,0,12,0,12,0,12,0, - 8,11,11,10,1,0,192,192,254,199,195,195,199,254,192,192, - 192,8,11,11,10,1,0,124,238,198,206,220,216,206,199,195, - 219,222,7,12,12,9,1,0,96,48,16,0,60,110,6,126, - 230,198,238,118,7,12,12,9,1,0,12,24,16,0,60,110, - 6,126,230,198,238,118,7,12,12,9,1,0,56,44,68,0, - 60,110,6,126,230,198,238,118,7,11,11,9,1,0,60,0, - 0,60,110,6,126,230,198,238,118,7,11,11,9,1,0,108, - 0,0,60,230,6,126,230,198,238,118,7,13,13,9,1,0, - 24,36,36,60,0,60,102,6,126,230,198,238,126,13,8,16, - 15,1,0,60,224,103,176,7,24,127,248,231,0,199,24,237, - 184,120,240,7,12,12,9,1,252,60,110,198,192,192,198,110, - 60,16,28,4,56,7,13,13,9,1,0,96,32,48,16,0, - 60,110,198,254,192,198,110,60,7,13,13,9,1,0,12,12, - 24,16,0,60,110,198,254,192,198,110,60,7,13,13,9,1, - 0,24,56,44,68,0,60,110,198,254,192,198,110,60,7,12, - 12,9,1,0,108,0,0,0,60,110,198,254,192,206,110,60, - 3,12,12,4,0,0,192,96,32,0,96,96,96,96,96,96, - 96,96,3,12,12,4,1,0,96,192,128,0,192,192,192,192, - 192,192,192,192,5,12,12,4,0,0,96,208,136,0,96,96, - 96,96,96,96,96,96,5,11,11,5,0,0,216,0,0,48, - 48,48,48,48,48,48,48,8,11,11,10,1,0,51,28,102, - 62,103,195,195,195,195,103,60,7,11,11,9,1,0,60,0, - 0,220,238,198,198,198,198,198,198,8,13,13,10,1,0,96, - 48,16,8,0,60,102,195,195,195,195,102,60,8,13,13,10, - 1,0,6,12,8,16,0,60,102,195,195,195,195,102,60,8, - 13,13,10,1,0,24,28,36,34,0,60,102,195,195,195,195, - 102,60,8,11,11,10,1,0,60,0,0,60,102,195,195,195, - 195,102,60,8,12,12,10,1,0,102,0,0,0,60,102,195, - 195,195,195,102,60,10,6,12,16,3,2,12,0,0,0,255, - 192,0,0,0,0,12,0,8,10,10,10,1,255,1,62,102, - 207,203,211,227,118,252,128,7,12,12,9,1,0,96,48,16, - 0,198,198,198,198,198,198,238,118,7,12,12,9,1,0,12, - 24,16,0,198,198,198,198,198,198,238,118,7,12,12,9,1, - 0,56,40,68,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,108,0,0,198,198,198,198,198,198,238,118,9,16, - 32,9,0,253,7,0,6,0,12,0,8,0,0,0,99,128, - 99,0,115,0,54,0,54,0,30,0,28,0,28,0,28,0, - 248,0,112,0,8,14,14,10,1,253,192,192,192,220,230,195, - 195,195,199,230,220,192,192,192,8,14,14,9,1,253,108,0, - 0,199,198,238,108,108,60,56,56,56,48,48}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=16 dy= 0 ascent=11 len=18 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11n[280] U8G_FONT_SECTION("u8g_font_fub11n") = { - 0,24,21,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,120,48,252,48,120,9,9,18,16, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,3,4,4,5,1,254,96,96,192,192,4,2, - 2,6,1,3,240,240,2,2,2,5,2,0,192,192,5,12, - 12,7,1,255,24,24,16,48,48,32,32,96,96,64,192,192, - 8,11,11,9,1,0,60,102,195,195,195,195,195,195,195,102, - 60,4,11,11,9,2,0,48,240,240,48,48,48,48,48,48, - 48,48,8,11,11,9,1,0,62,119,99,3,7,6,30,60, - 112,224,255,8,11,11,9,1,0,124,238,198,6,60,6,3, - 195,199,126,60,8,11,11,9,1,0,14,30,30,54,102,102, - 198,255,255,6,6,8,11,11,9,1,0,254,192,192,192,254, - 231,3,3,199,254,124,8,11,11,9,1,0,60,118,67,192, - 222,231,195,195,195,102,60,8,11,11,9,1,0,255,3,7, - 6,14,12,28,24,56,56,112,8,11,11,9,1,0,126,231, - 195,231,60,102,195,195,195,231,60,8,11,11,9,1,0,60, - 102,195,195,231,127,3,3,198,110,60,2,8,8,5,2,0, - 192,192,0,0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=12 len=28 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11r[1829] U8G_FONT_SECTION("u8g_font_fub11r") = { - 0,24,21,255,252,11,2,82,5,55,32,127,253,12,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=21 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14[5788] U8G_FONT_SECTION("u8g_font_fub14") = { - 0,31,26,254,251,14,3,116,7,95,32,255,252,21,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,0,3,14, - 14,9,3,252,224,224,0,0,224,224,224,224,224,224,224,224, - 224,224,9,14,28,11,1,254,2,0,2,0,62,0,127,0, - 231,128,231,128,232,0,232,0,235,128,243,128,127,0,62,0, - 32,0,32,0,10,14,28,12,1,0,31,0,63,192,113,192, - 112,0,112,0,254,0,254,0,112,0,112,0,112,0,112,0, - 112,0,255,192,255,192,10,10,20,12,1,3,128,64,94,128, - 33,0,64,128,64,128,64,128,64,128,33,0,94,128,128,64, - 11,14,28,13,1,0,224,224,225,192,113,192,113,128,251,224, - 251,224,31,0,255,224,255,224,14,0,14,0,14,0,14,0, - 14,0,1,18,18,7,3,252,128,128,128,128,128,128,128,128, - 0,0,128,128,128,128,128,128,128,128,8,18,18,10,1,252, - 62,126,224,224,112,60,126,231,231,231,254,124,30,7,7,135, - 254,56,7,2,2,7,0,12,238,238,15,14,28,17,1,0, - 7,192,31,240,55,152,111,204,204,228,156,2,156,2,156,226, - 140,226,207,198,71,132,32,24,28,112,15,192,7,9,9,8, - 1,5,120,204,124,204,204,252,36,0,254,10,8,16,12,1, - 1,57,192,113,128,115,128,231,0,231,0,115,128,113,128,57, - 192,11,5,10,13,1,4,255,224,255,224,0,32,0,32,0, - 32,255,15,14,28,17,1,0,7,192,31,240,63,152,111,236, - 204,100,140,98,143,194,143,194,140,98,204,102,76,100,32,24, - 28,112,15,192,6,2,2,6,0,12,252,252,5,5,5,7, - 1,9,112,136,136,136,112,12,12,24,20,4,0,2,0,2, - 0,2,0,255,240,255,240,2,0,2,0,2,0,0,0,0, - 0,255,240,255,240,6,8,8,8,1,6,120,204,12,24,48, - 224,252,252,6,7,7,8,1,7,120,204,12,48,12,204,120, - 4,4,4,4,1,12,48,96,96,192,255,9,17,34,11,1, - 253,63,128,121,0,249,0,249,0,249,0,249,0,121,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9, - 0,9,0,3,3,3,6,2,5,224,224,224,5,5,5,5, - 1,251,64,112,24,24,240,4,8,8,6,1,6,48,240,48, - 48,48,48,48,48,7,9,9,9,1,5,56,68,198,198,198, - 68,56,0,254,10,8,16,12,1,1,231,0,99,128,115,128, - 57,192,57,192,115,128,99,128,231,0,14,14,28,16,1,0, - 112,48,240,48,48,96,48,192,48,192,49,128,49,156,51,60, - 6,60,6,108,12,204,24,252,24,12,48,12,15,14,28,17, - 1,0,112,48,240,32,48,96,48,192,48,192,49,128,51,60, - 51,102,6,6,12,14,12,28,24,48,48,126,48,126,14,14, - 28,16,1,0,120,24,204,48,12,48,48,96,12,192,204,192, - 121,156,1,188,3,60,6,108,6,204,12,252,8,12,24,12, - 9,14,28,11,1,252,14,0,14,0,0,0,14,0,14,0, - 14,0,60,0,112,0,224,0,224,0,225,128,225,128,127,128, - 62,0,14,20,40,14,0,0,12,0,14,0,6,0,3,0, - 0,0,0,0,7,128,7,128,7,192,15,192,14,192,28,224, - 28,224,28,96,56,112,63,240,63,248,112,56,112,56,224,28, - 14,20,40,14,0,0,0,192,1,192,1,128,3,0,0,0, - 0,0,7,128,7,128,7,192,15,192,14,192,28,224,28,224, - 28,96,56,112,63,240,63,248,112,56,112,56,224,28,14,20, - 40,14,0,0,3,128,7,128,6,192,12,192,0,0,0,0, - 7,128,7,128,7,192,15,192,14,192,28,224,28,224,28,96, - 56,112,63,240,63,248,112,56,112,56,224,28,14,19,38,14, - 0,0,6,64,15,192,8,128,0,0,0,0,7,128,7,128, - 7,192,15,192,14,192,28,224,28,224,28,96,56,112,63,240, - 63,248,112,56,112,56,224,28,14,19,38,15,0,0,14,224, - 14,224,0,0,0,0,0,0,3,128,7,128,7,192,7,192, - 14,192,14,224,28,224,28,112,28,112,63,248,63,248,112,56, - 112,28,224,28,13,21,42,15,1,0,7,0,8,128,8,128, - 8,128,7,0,0,0,0,0,7,0,15,128,15,128,29,192, - 29,192,29,192,56,224,56,224,48,96,127,240,127,240,224,56, - 224,56,224,56,19,14,42,20,0,0,0,255,224,1,255,224, - 3,240,0,3,112,0,7,112,0,7,112,0,14,127,192,14, - 127,192,28,112,0,31,240,0,63,240,0,112,112,0,112,127, - 224,224,127,224,13,18,36,15,1,252,15,128,63,224,112,240, - 96,112,224,0,224,0,224,0,224,0,224,0,224,120,96,112, - 112,240,63,224,31,128,4,0,7,128,1,128,15,0,10,20, - 40,12,1,0,48,0,56,0,24,0,12,0,0,0,0,0, - 255,192,255,192,224,0,224,0,224,0,224,0,255,128,255,128, - 224,0,224,0,224,0,224,0,255,192,255,192,10,20,40,12, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,255,192, - 255,192,224,0,224,0,224,0,224,0,255,128,255,128,224,0, - 224,0,224,0,224,0,255,192,255,192,10,20,40,12,1,0, - 28,0,30,0,54,0,35,0,0,0,0,0,255,192,255,192, - 224,0,224,0,224,0,224,0,255,128,255,128,224,0,224,0, - 224,0,224,0,255,192,255,192,10,19,38,12,1,0,119,0, - 119,0,0,0,0,0,0,0,255,192,255,192,224,0,224,0, - 224,0,224,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,192,255,192,5,20,20,5,255,0,224,96,48,16,0,0, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,4,20, - 20,5,1,0,48,112,96,192,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,5,20,20,5,0,0,112,112, - 216,136,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,7,19,19,7,0,0,238,238,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,13,14,28,14,0, - 0,127,128,127,224,112,240,112,112,112,56,112,56,254,56,254, - 56,112,56,112,56,112,112,112,240,127,224,127,128,13,19,38, - 15,1,0,12,64,31,128,17,0,0,0,0,0,240,56,248, - 56,248,56,252,56,238,56,238,56,231,56,231,56,227,184,227, - 184,225,248,225,248,224,248,224,248,14,20,40,16,1,0,28, - 0,12,0,6,0,2,0,0,0,0,0,15,192,63,240,112, - 112,96,56,224,24,224,28,224,28,224,28,224,28,224,24,96, - 56,112,112,63,240,15,192,14,20,40,16,1,0,0,224,1, - 192,1,128,3,0,0,0,0,0,15,192,63,240,112,112,96, - 56,224,24,224,28,224,28,224,28,224,28,224,24,96,56,112, - 112,63,240,15,192,14,20,40,16,1,0,7,0,7,128,13, - 192,8,192,0,0,0,0,15,192,63,240,112,112,96,56,224, - 24,224,28,224,28,224,28,224,28,224,24,96,56,112,112,63, - 240,15,192,14,19,38,16,1,0,7,192,15,192,0,0,0, - 0,0,0,15,192,63,240,112,48,96,56,224,24,224,28,224, - 28,224,28,224,28,224,24,112,56,120,240,63,240,15,192,14, - 19,38,16,1,0,29,192,29,192,0,0,0,0,0,0,15, - 192,63,240,112,112,96,56,224,24,224,28,224,28,224,28,224, - 28,224,24,96,56,112,112,63,240,15,192,10,10,20,20,5, - 1,128,64,192,192,97,128,51,0,12,0,12,0,18,0,33, - 0,64,128,128,64,15,16,32,16,0,255,0,2,7,230,31, - 252,56,60,48,60,112,108,112,238,113,206,115,142,119,14,126, - 12,124,28,56,56,63,240,239,224,64,0,12,20,40,14,1, - 0,56,0,24,0,12,0,6,0,0,0,0,0,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,113,224,63,192,31,128,12,20,40,14,1,0,1, - 192,3,128,3,0,6,0,0,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,113,224,63,192,31,128,12,20,40,14,1,0,14,0,15, - 0,27,0,17,128,0,0,0,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,113, - 224,63,192,31,128,12,19,38,14,1,0,29,192,29,192,0, - 0,0,0,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,63,192,31, - 128,12,19,38,13,0,0,1,128,3,0,2,0,0,0,0, - 0,240,112,112,240,56,224,56,224,29,192,29,192,15,128,15, - 0,7,0,7,0,7,0,7,0,7,0,7,0,11,14,28, - 13,1,0,224,0,224,0,255,0,255,192,225,192,224,224,224, - 224,224,224,225,192,255,128,254,0,224,0,224,0,224,0,10, - 14,28,12,1,0,62,0,127,128,227,128,227,128,227,0,231, - 0,238,0,238,0,231,128,227,192,225,192,253,192,255,192,239, - 128,9,16,32,11,1,0,112,0,48,0,24,0,8,0,0, - 0,0,0,62,0,127,128,227,128,31,128,127,128,227,128,227, - 128,227,128,255,128,57,128,9,16,32,11,1,0,7,0,6, - 0,12,0,12,0,0,0,0,0,62,0,127,128,227,128,3, - 128,63,128,251,128,227,128,227,128,255,128,121,128,9,16,32, - 11,1,0,28,0,30,0,54,0,35,0,0,0,0,0,62, - 0,127,128,227,128,31,128,127,128,227,128,227,128,227,128,255, - 128,57,128,9,14,28,11,1,0,63,0,62,0,0,0,0, - 0,62,0,127,128,227,128,31,128,127,128,227,128,227,128,227, - 128,255,128,57,128,9,15,30,11,1,0,119,0,119,0,0, - 0,0,0,0,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,9,17,34,11,1,0,28, - 0,34,0,34,0,34,0,28,0,0,0,0,0,62,0,127, - 128,227,128,31,128,127,128,227,128,227,128,227,128,255,128,57, - 128,16,10,20,18,1,0,62,124,127,254,227,135,31,255,127, - 255,227,128,227,128,227,199,254,254,60,124,9,14,28,11,1, - 252,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,16,0,30,0,6,0,62,0,9,16,32, - 11,1,0,112,0,48,0,24,0,8,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,9,16,32,11,1,0,7,0,6,0,12,0,8, - 0,0,0,0,0,30,0,127,0,227,128,227,128,255,128,255, - 128,224,0,227,128,127,128,62,0,9,16,32,11,1,0,28, - 0,30,0,54,0,35,0,0,0,0,0,30,0,127,0,227, - 128,227,128,255,128,255,128,224,0,227,128,127,128,62,0,9, - 15,30,11,1,0,119,0,119,0,0,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,4,15,15,5,0,0,192,224,96,48,0,112,112, - 112,112,112,112,112,112,112,112,4,15,15,4,1,0,112,96, - 192,128,0,224,224,224,224,224,224,224,224,224,224,7,15,15, - 5,255,0,56,124,76,198,0,56,56,56,56,56,56,56,56, - 56,56,7,14,14,6,0,0,238,238,0,0,56,56,56,56, - 56,56,56,56,56,56,10,14,28,12,1,0,57,128,15,0, - 31,0,99,0,31,128,127,128,97,192,225,192,225,192,225,192, - 225,192,97,192,127,128,31,0,9,14,28,11,1,0,62,0, - 60,0,0,0,0,0,239,0,255,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,16,32,12,1,0, - 48,0,24,0,24,0,12,0,0,0,0,0,30,0,127,128, - 97,128,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 10,16,32,12,1,0,3,0,6,0,6,0,12,0,0,0, - 0,0,30,0,127,128,97,128,225,192,225,192,225,192,225,192, - 97,128,127,128,30,0,10,16,32,12,1,0,12,0,30,0, - 26,0,51,0,0,0,0,0,30,0,127,128,97,128,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,10,14,28,12, - 1,0,31,0,62,0,0,0,0,0,30,0,127,128,97,128, - 225,192,225,192,225,192,225,192,97,128,127,128,30,0,10,15, - 30,12,1,0,59,128,59,128,0,0,0,0,0,0,30,0, - 127,128,97,128,225,192,225,192,225,192,225,192,97,128,127,128, - 30,0,12,8,16,20,4,2,6,0,14,0,0,0,255,240, - 255,240,0,0,6,0,14,0,10,12,24,12,1,0,0,192, - 31,128,127,128,99,128,231,192,237,192,233,192,241,192,113,128, - 127,128,222,0,128,0,9,16,32,11,1,0,112,0,48,0, - 24,0,8,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,9,16,32,11, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,227,128, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,255,128, - 123,128,9,16,32,11,1,0,28,0,28,0,54,0,34,0, - 0,0,0,0,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,255,128,123,128,9,15,30,11,1,0,119,0, - 119,0,0,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,11,19,38,11, - 0,252,1,128,3,0,2,0,4,0,0,0,112,224,113,192, - 113,192,57,192,59,128,27,128,31,128,31,0,15,0,14,0, - 14,0,78,0,252,0,120,0,10,18,36,12,1,252,224,0, - 224,0,224,0,224,0,239,0,255,128,225,128,225,192,225,192, - 225,192,225,192,225,192,255,128,255,0,224,0,224,0,224,0, - 224,0,11,18,36,11,0,252,59,128,59,128,0,0,0,0, - 225,224,113,192,113,192,115,128,59,128,59,128,31,0,31,0, - 31,0,14,0,14,0,12,0,28,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=12 h=15 x= 4 y= 7 dx=20 dy= 0 ascent=14 len=28 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14n[452] U8G_FONT_SECTION("u8g_font_fub14n") = { - 0,31,26,254,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,102,60,24,255,24,60,102,12,12, - 24,20,4,0,2,0,2,0,2,0,2,0,2,0,255,240, - 255,240,2,0,2,0,2,0,2,0,2,0,4,5,5,6, - 1,254,112,112,96,224,192,5,3,3,7,1,4,248,248,248, - 3,3,3,6,2,0,224,224,224,6,15,15,9,1,255,12, - 12,12,12,24,24,24,48,48,48,96,96,96,96,192,10,14, - 28,11,1,0,30,0,127,0,97,128,225,192,225,192,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 6,14,14,11,2,0,28,124,252,220,28,28,28,28,28,28, - 28,28,28,28,10,14,28,11,1,0,31,0,127,128,97,192, - 225,192,1,192,1,192,3,128,7,128,15,0,30,0,56,0, - 112,0,255,192,255,192,10,14,28,11,1,0,62,0,127,0, - 227,128,3,128,3,128,31,0,31,0,3,128,1,192,1,192, - 225,192,243,128,127,0,62,0,11,14,28,11,1,0,7,128, - 15,128,15,128,27,128,59,128,51,128,115,128,99,128,227,128, - 255,224,255,224,3,128,3,128,3,128,10,14,28,11,1,0, - 255,128,255,128,224,0,224,0,224,0,255,0,255,128,225,128, - 1,192,1,192,225,192,227,128,127,0,62,0,10,14,28,11, - 1,0,30,0,63,128,97,128,96,0,224,0,223,0,255,128, - 225,128,225,192,225,192,225,192,97,128,127,128,30,0,10,14, - 28,11,1,0,255,192,255,192,1,192,3,128,3,128,7,128, - 7,0,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 10,14,28,11,1,0,63,0,127,128,225,192,225,192,225,128, - 127,0,63,0,115,128,225,192,225,192,225,192,225,192,127,128, - 63,0,10,14,28,11,1,0,30,0,127,0,225,128,225,128, - 225,192,225,192,243,192,127,192,25,192,1,128,225,128,99,128, - 127,0,62,0,3,10,10,7,3,0,224,224,224,0,0,0, - 0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=16 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14r[2680] U8G_FONT_SECTION("u8g_font_fub14r") = { - 0,31,26,254,251,14,3,116,7,95,32,127,252,16,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=15 dx=24 dy= 0 ascent=25 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17[6938] U8G_FONT_SECTION("u8g_font_fub17") = { - 0,34,31,254,250,17,4,8,8,209,32,255,251,25,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,7,0,0,3,17,17,9, - 3,251,224,224,224,0,0,224,224,224,224,224,224,224,224,224, - 224,224,224,10,18,36,13,1,253,1,0,1,0,3,0,31, - 0,127,128,115,192,231,192,228,0,228,0,236,0,233,192,233, - 192,123,192,127,128,31,0,16,0,48,0,32,0,11,17,34, - 13,1,0,15,128,31,224,56,224,56,224,56,0,56,0,255, - 0,255,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,255,224,255,224,11,12,24,13,1,4,128,32,95,64,113, - 128,96,128,64,64,64,64,64,64,64,64,96,192,49,128,95, - 64,128,32,13,17,34,15,1,0,224,120,240,120,112,112,120, - 240,56,224,253,248,253,248,31,192,15,128,255,248,255,248,7, - 0,7,0,7,0,7,0,7,0,7,0,1,22,22,8,4, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,128,128, - 128,128,128,128,128,128,128,9,21,42,11,1,252,63,0,127, - 0,241,0,224,0,224,0,120,0,62,0,63,0,119,128,227, - 128,227,128,231,128,255,0,126,0,31,0,7,128,3,128,3, - 128,135,128,255,0,124,0,8,3,3,8,0,15,231,231,231, - 17,17,51,19,1,0,3,224,0,15,248,0,60,30,0,51, - 230,0,103,243,0,103,59,0,206,57,128,206,1,128,206,1, - 128,206,1,128,206,57,128,78,57,0,103,243,0,51,230,0, - 56,14,0,15,248,0,3,224,0,8,11,11,10,1,6,60, - 102,6,126,230,198,198,126,0,0,255,11,9,18,14,1,1, - 60,224,56,224,121,224,113,192,243,192,113,192,121,224,56,224, - 60,224,12,5,10,14,1,5,255,240,0,16,0,16,0,16, - 0,16,255,17,17,51,19,1,0,3,224,0,15,248,0,60, - 30,0,55,246,0,103,251,0,102,27,0,198,25,128,199,241, - 128,199,241,128,198,57,128,198,25,128,70,25,0,102,27,0, - 48,6,0,56,14,0,15,248,0,3,224,0,7,2,2,7, - 0,15,254,254,5,5,5,7,1,12,112,136,136,136,112,14, - 14,28,24,5,0,2,0,2,0,2,0,2,0,255,252,255, - 252,2,0,2,0,2,0,2,0,0,0,0,0,255,252,255, - 252,7,9,9,9,1,8,124,230,6,14,28,56,224,254,254, - 7,9,9,9,1,8,124,206,6,14,56,14,6,206,124,5, - 4,4,5,1,14,56,112,96,192,255,11,20,40,14,2,253, - 63,224,125,128,253,128,253,128,253,128,253,128,253,128,125,128, - 13,128,13,128,13,128,13,128,13,128,13,128,13,128,13,128, - 13,128,13,128,13,128,13,128,3,3,3,7,2,6,224,224, - 224,6,5,5,6,1,251,32,56,12,12,248,4,9,9,6, - 1,8,48,240,176,48,48,48,48,48,48,8,11,11,10,1, - 6,60,102,195,195,195,195,231,126,60,0,255,12,9,18,14, - 1,1,227,128,113,192,121,224,56,224,60,240,56,224,121,224, - 113,192,227,128,16,17,34,18,1,0,48,24,240,24,176,48, - 48,112,48,96,48,224,48,192,49,128,49,142,3,14,3,30, - 6,54,14,54,12,102,24,127,24,6,48,6,16,17,34,18, - 1,0,48,24,240,48,176,48,48,96,48,224,48,192,49,192, - 49,128,51,62,3,119,6,3,6,7,12,14,28,28,24,112, - 48,127,48,127,17,17,51,19,1,0,124,6,0,198,12,0, - 6,12,0,56,24,0,14,56,0,6,48,0,206,112,0,124, - 96,0,0,199,0,1,199,0,1,143,0,3,155,0,3,27, - 0,7,51,0,6,63,128,12,3,0,28,3,0,10,17,34, - 12,1,251,14,0,14,0,0,0,0,0,14,0,14,0,14, - 0,28,0,56,0,112,0,240,0,224,0,224,128,224,192,115, - 192,127,128,31,0,16,24,48,16,0,0,14,0,7,0,3, - 0,3,128,1,128,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,24,48,16,0, - 0,0,112,0,96,0,224,0,192,1,128,0,0,0,0,3, - 192,3,192,3,224,7,224,7,240,15,112,14,112,14,120,30, - 56,28,56,28,60,63,252,63,252,127,254,120,14,112,15,240, - 7,16,24,48,16,0,0,1,192,3,192,3,224,6,96,4, - 48,0,0,0,0,3,192,3,192,3,224,7,224,7,240,15, - 112,14,112,14,120,30,56,28,56,28,60,63,252,63,252,127, - 254,120,14,112,15,240,7,16,23,46,16,0,0,0,16,7, - 240,7,224,0,0,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,23,46,17,0, - 0,14,112,14,112,14,112,0,0,0,0,0,0,3,192,3, - 192,7,224,7,224,7,224,15,112,14,112,30,120,30,56,28, - 56,60,60,63,252,127,254,127,254,112,14,240,15,224,7,15, - 25,50,16,1,0,3,128,6,192,4,64,4,64,4,192,3, - 128,0,0,0,0,3,128,7,192,7,192,15,192,14,224,14, - 224,30,224,28,112,28,112,60,112,56,120,63,248,127,252,127, - 252,112,28,240,30,224,14,21,17,51,23,1,0,0,255,248, - 0,255,248,1,248,0,1,248,0,3,184,0,3,184,0,7, - 56,0,7,63,248,14,63,248,14,56,0,30,56,0,31,248, - 0,63,248,0,120,56,0,112,56,0,240,63,248,224,63,248, - 14,22,44,16,1,251,15,192,31,240,63,248,120,56,112,60, - 240,28,224,0,224,0,224,0,224,0,224,0,224,0,112,28, - 112,60,56,120,31,240,15,192,3,0,3,192,0,96,0,96, - 7,192,11,24,48,15,2,0,56,0,24,0,28,0,12,0, - 6,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,11,24,48,15,2,0,3,128, - 3,0,7,0,6,0,12,0,0,0,0,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,11,24, - 48,15,2,0,14,0,31,0,27,0,59,128,49,128,0,0, - 0,0,255,224,255,224,255,224,224,0,224,0,224,0,224,0, - 255,224,255,224,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,255,224,11,23,46,15,2,0,59,128,59,128,59,128, - 0,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,5,24,24,7,0,0,224,224, - 96,48,16,0,0,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,5,24,24,5,1,0,56,48,112,96, - 192,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,7,24,24,7,0,0,56,56,108,108,198,0, - 0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,8,23,23,8,0,0,231,231,231,0,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,15, - 17,34,16,0,0,63,192,63,240,63,248,56,60,56,28,56, - 30,56,14,56,14,255,14,255,14,56,14,56,30,56,28,56, - 60,63,248,63,240,63,192,14,23,46,18,2,0,0,32,15, - 192,15,192,0,0,0,0,0,0,248,28,248,28,252,28,252, - 28,238,28,238,28,231,28,231,28,231,156,227,156,227,220,225, - 220,225,220,224,252,224,252,224,124,224,124,15,24,48,17,1, - 0,28,0,14,0,6,0,3,0,1,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,240,14,112,28,120,60,63,248,31,240,7, - 224,15,24,48,17,1,0,0,112,0,224,0,192,1,128,1, - 0,0,0,0,0,7,192,31,240,63,248,120,60,112,28,240, - 30,224,14,224,14,224,14,224,14,224,14,240,14,112,28,120, - 60,63,248,31,240,7,224,15,24,48,17,1,0,3,128,7, - 192,6,192,12,96,8,32,0,0,0,0,7,192,31,240,63, - 248,120,60,112,28,240,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,60,63,248,31,240,7,224,15,23,46, - 17,1,0,7,32,15,224,8,192,0,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,120,60,63,248,31,240,7, - 224,15,23,46,17,1,0,14,112,14,112,14,112,0,0,0, - 0,0,0,7,192,31,240,63,248,120,60,112,28,240,30,224, - 14,224,14,224,14,224,14,224,14,240,14,112,28,120,60,63, - 248,31,240,7,224,13,12,24,23,5,1,192,24,96,48,48, - 96,24,192,13,128,7,0,7,0,13,128,24,192,48,96,96, - 48,192,24,17,19,57,17,0,255,0,1,0,3,241,128,15, - 251,0,31,254,0,60,30,0,56,30,0,120,63,0,112,119, - 0,112,231,0,113,199,0,115,135,0,119,7,0,126,7,0, - 60,14,0,60,30,0,63,252,0,111,248,0,227,224,0,64, - 0,0,14,24,48,18,2,0,28,0,12,0,14,0,6,0, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,56,127,248,63,240,15,192,14,24,48,18,2,0,0,224, - 0,192,1,192,1,128,3,0,0,0,0,0,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,240,60,112,56,127,248,63,240,15,192,14,24, - 48,18,2,0,7,128,7,128,15,192,12,192,24,96,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,240,60,112,56,127,248, - 63,240,15,192,14,23,46,16,1,0,28,224,28,224,28,224, - 0,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 120,120,127,248,63,240,15,192,13,23,46,15,1,0,1,192, - 1,128,3,0,2,0,0,0,0,0,224,56,240,120,112,112, - 120,240,56,224,61,224,29,192,31,192,15,128,15,128,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,12,17,34,15, - 1,0,224,0,224,0,224,0,255,128,255,224,255,224,224,240, - 224,112,224,112,224,240,255,224,255,224,255,128,224,0,224,0, - 224,0,224,0,12,17,34,14,1,0,63,0,127,128,241,192, - 225,192,225,192,227,128,231,0,238,0,238,0,239,128,231,192, - 225,224,224,112,238,112,238,112,239,224,231,192,10,19,38,13, - 1,0,112,0,56,0,24,0,12,0,4,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,19,38,13,1,0,3,128, - 3,0,6,0,6,0,12,0,0,0,0,0,31,0,127,128, - 113,192,1,192,31,192,127,192,241,192,225,192,225,192,243,192, - 127,192,60,192,10,19,38,13,1,0,14,0,30,0,27,0, - 51,0,33,128,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 10,17,34,13,1,0,31,128,63,0,0,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,63,0,127,128,241,192, - 1,192,31,192,127,192,241,192,225,192,225,192,243,192,127,192, - 60,192,10,20,40,13,1,0,14,0,27,0,17,0,19,0, - 31,0,14,0,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 18,12,36,20,1,0,31,31,0,127,191,128,113,243,128,0, - 225,192,31,255,192,127,255,192,240,224,0,224,224,0,224,225, - 192,241,243,192,127,63,128,62,31,0,10,17,34,12,1,251, - 31,0,127,128,115,192,225,192,224,0,224,0,224,0,224,0, - 225,192,115,192,127,128,63,0,8,0,14,0,3,0,3,0, - 30,0,11,19,38,13,1,0,112,0,56,0,24,0,12,0, - 4,0,0,0,0,0,31,0,63,128,113,192,225,224,255,224, - 255,224,224,0,224,0,225,192,113,192,127,192,31,0,11,19, - 38,13,1,0,3,128,3,0,7,0,6,0,12,0,0,0, - 0,0,31,0,63,128,113,192,225,224,255,224,255,224,224,0, - 224,0,225,192,113,192,127,192,31,0,11,19,38,13,1,0, - 14,0,31,0,27,0,49,128,33,128,0,0,0,0,31,0, - 63,128,113,192,225,224,255,224,255,224,224,0,224,0,225,192, - 113,192,127,192,31,0,11,18,36,13,1,0,115,128,115,128, - 115,128,0,0,0,0,0,0,31,0,63,128,115,192,225,192, - 255,224,255,224,224,0,224,0,225,192,115,192,127,128,31,0, - 5,18,18,6,255,0,224,112,48,24,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,4,18,18,5,1,0,112,96, - 224,192,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 7,18,18,6,255,0,56,124,108,198,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,8,18,18,7,255,0,231,231, - 231,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56, - 12,17,34,14,1,0,28,96,15,192,15,128,59,128,33,192, - 31,224,63,224,112,224,240,240,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,11,17,34,13,1,0,31,128, - 63,0,0,0,0,0,0,0,239,128,255,192,241,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 12,19,38,14,1,0,56,0,28,0,12,0,6,0,6,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,19,38,14, - 1,0,1,192,3,128,3,0,6,0,4,0,0,0,0,0, - 31,128,63,192,112,224,240,224,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,12,19,38,14,1,0,15,0, - 15,0,31,128,25,128,48,192,0,0,0,0,31,128,63,192, - 112,224,240,224,224,112,224,112,224,112,224,112,240,240,112,224, - 63,192,31,128,12,17,34,14,1,0,31,192,63,128,0,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,18,36,14, - 1,0,57,192,57,192,57,192,0,0,0,0,0,0,31,128, - 63,192,112,224,240,224,224,112,224,112,224,112,224,112,240,240, - 112,224,63,192,31,128,14,10,20,24,5,2,7,0,7,0, - 6,0,0,0,255,252,255,252,0,0,2,0,7,0,7,0, - 12,15,30,14,1,254,0,32,0,48,31,224,63,192,113,224, - 241,240,227,112,230,112,236,112,248,112,248,240,112,224,127,192, - 223,128,192,0,11,19,38,13,1,0,112,0,56,0,28,0, - 12,0,6,0,0,0,0,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,241,224,127,224,62,224, - 11,19,38,13,1,0,3,128,3,128,7,0,6,0,12,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,241,224,127,224,62,224,11,19,38,13, - 1,0,14,0,31,0,27,0,49,128,32,128,0,0,0,0, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,241,224,127,224,62,224,11,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,241,224,127,224, - 62,224,11,23,46,13,1,251,1,128,3,128,3,0,6,0, - 0,0,0,0,224,224,224,224,241,224,113,192,121,192,59,192, - 59,128,63,128,31,128,31,0,31,0,15,0,14,0,14,0, - 254,0,252,0,120,0,12,22,44,15,2,251,224,0,224,0, - 224,0,224,0,224,0,239,128,255,192,248,224,240,240,224,112, - 224,112,224,112,224,112,240,240,241,224,255,192,239,128,224,0, - 224,0,224,0,224,0,224,0,12,22,44,14,1,251,57,192, - 57,192,57,192,0,0,0,0,240,112,240,240,112,240,120,224, - 121,224,57,192,61,192,31,192,31,128,31,128,15,128,15,0, - 15,0,15,0,14,0,30,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17n[530] U8G_FONT_SECTION("u8g_font_fub17n") = { - 0,34,31,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,54,0,54,0,54,0,156,128,255, - 128,156,128,54,0,54,0,54,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,255,252,2, - 0,2,0,2,0,2,0,2,0,2,0,5,6,6,7,1, - 253,56,112,112,96,96,224,6,3,3,8,1,4,252,252,252, - 3,3,3,7,2,0,224,224,224,8,18,18,10,1,255,7, - 6,6,14,12,12,12,28,24,24,56,48,48,48,112,96,96, - 224,11,17,34,13,1,0,31,0,63,128,113,192,112,192,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,112,192,113,192,63,128,31,0,7,17,17,13,2,0,14, - 62,254,254,206,14,14,14,14,14,14,14,14,14,14,14,14, - 12,17,34,13,1,0,15,128,63,224,120,224,112,112,0,112, - 0,112,0,240,1,224,3,224,7,192,15,128,30,0,60,0, - 248,0,255,240,255,240,255,240,11,17,34,13,1,0,31,0, - 127,192,241,224,224,224,0,224,0,224,1,192,15,128,15,128, - 1,192,0,224,0,224,224,224,241,224,255,192,127,128,31,0, - 12,17,34,13,1,0,3,192,7,192,7,192,15,192,29,192, - 29,192,57,192,113,192,113,192,225,192,255,240,255,240,255,240, - 1,192,1,192,1,192,1,192,11,17,34,13,1,0,255,192, - 255,192,255,192,224,0,224,0,224,0,239,128,255,192,241,224, - 224,224,0,224,0,224,224,224,225,224,255,192,127,128,63,0, - 11,17,34,13,1,0,15,0,63,192,57,224,112,224,96,0, - 224,0,239,128,255,192,241,224,224,224,224,224,224,224,224,224, - 96,224,113,192,63,128,31,0,11,17,34,13,1,0,255,224, - 255,224,255,224,0,224,1,224,1,192,3,192,3,128,7,128, - 7,128,7,0,15,0,14,0,30,0,28,0,60,0,60,0, - 11,17,34,13,1,0,31,0,127,192,241,224,224,224,224,224, - 224,224,113,192,63,128,63,128,113,192,224,224,224,224,224,224, - 224,224,241,224,127,192,31,0,11,17,34,13,1,0,31,0, - 63,128,113,192,224,192,224,224,224,224,224,224,241,224,127,224, - 62,224,0,224,0,224,224,224,225,192,113,192,127,128,30,0, - 3,12,12,7,3,0,224,224,224,0,0,0,0,0,0,224, - 224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17r[3222] U8G_FONT_SECTION("u8g_font_fub17r") = { - 0,34,31,254,250,17,4,8,8,209,32,127,251,19,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=18 dx=28 dy= 0 ascent=29 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =29 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20[8916] U8G_FONT_SECTION("u8g_font_fub20") = { - 0,40,36,254,249,20,4,242,11,37,32,255,251,29,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,8,0,0,4,19,19,10, - 3,251,240,240,240,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,12,20,40,16,2,253,0,192,0,192,0, - 128,15,128,63,224,125,224,115,240,243,240,242,0,242,0,246, - 0,244,0,244,240,124,240,121,224,63,224,31,128,24,0,16, - 0,48,0,14,20,40,15,1,0,7,224,31,248,62,120,60, - 60,60,60,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,255,252,255, - 252,15,14,28,17,1,5,192,6,99,204,55,248,28,48,24, - 24,48,12,48,12,48,12,48,12,24,24,28,48,63,248,99, - 204,192,6,15,20,40,17,1,0,240,30,240,62,120,60,120, - 124,56,120,60,120,252,254,254,254,31,224,15,224,15,192,255, - 254,255,254,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,1,25,25,9,4,251,128,128,128,128,128,128,128,128,128, - 128,128,0,0,0,128,128,128,128,128,128,128,128,128,128,128, - 11,24,48,13,1,252,31,128,63,192,121,192,240,64,240,0, - 248,0,124,0,63,0,63,128,127,192,243,224,225,224,225,192, - 243,192,255,128,126,0,31,128,7,192,3,224,1,224,1,192, - 195,192,255,128,127,0,9,3,6,9,0,17,227,128,227,128, - 227,128,20,20,60,24,2,0,1,248,0,7,254,0,31,15, - 128,60,3,192,49,252,192,99,254,224,103,158,96,199,15,48, - 207,0,48,207,0,48,207,0,48,207,15,48,199,14,48,103, - 158,96,99,252,96,49,248,192,56,1,192,30,7,128,7,254, - 0,1,248,0,9,13,26,11,1,7,62,0,127,128,99,128, - 3,128,63,128,115,128,227,128,227,128,255,128,125,128,0,0, - 0,0,255,128,14,11,22,16,1,2,30,60,28,56,60,120, - 120,240,120,240,241,224,120,240,56,240,60,120,28,56,30,60, - 15,6,12,17,1,6,255,254,255,254,0,6,0,6,0,6, - 0,6,255,20,20,60,24,2,0,1,248,0,7,254,0,31, - 15,128,60,3,192,51,252,192,99,254,224,99,14,96,195,6, - 48,195,28,48,195,248,48,195,252,48,195,12,48,195,14,48, - 99,6,96,99,6,96,51,6,192,56,1,192,30,7,128,7, - 254,0,1,248,0,9,2,4,9,0,18,255,128,255,128,6, - 6,6,8,1,14,120,204,132,132,204,120,16,16,32,26,5, - 0,1,128,1,128,1,128,1,128,255,255,255,255,1,128,1, - 128,1,128,1,128,1,128,0,0,0,0,0,0,255,255,255, - 255,9,11,22,11,1,9,62,0,127,0,227,128,3,128,7, - 0,15,0,30,0,56,0,112,0,255,0,255,0,8,11,11, - 10,1,9,60,254,231,7,30,30,7,7,231,254,124,6,5, - 5,6,1,16,60,56,112,96,192,255,13,24,48,15,1,252, - 31,248,62,96,126,96,254,96,254,96,254,96,254,96,126,96, - 126,96,30,96,6,96,6,96,6,96,6,96,6,96,6,96, - 6,96,6,96,6,96,6,96,6,96,6,96,6,96,6,96, - 4,4,4,8,2,8,240,240,240,240,7,6,6,7,1,249, - 32,60,14,6,254,252,5,11,11,8,2,9,56,248,248,56, - 56,56,56,56,56,56,56,10,13,26,12,1,7,30,0,127, - 128,115,128,225,192,225,192,225,192,225,192,99,128,127,128,30, - 0,0,0,0,0,255,192,13,11,22,16,2,2,225,192,241, - 224,112,224,120,240,120,240,60,120,120,240,120,240,113,224,241, - 224,225,192,19,20,60,22,2,0,56,7,0,248,14,0,184, - 14,0,56,28,0,56,28,0,56,56,0,56,48,0,56,112, - 0,56,224,0,56,227,192,57,195,192,1,199,192,3,143,192, - 3,13,192,7,29,192,14,57,192,14,63,224,28,63,224,28, - 1,192,56,1,192,19,20,60,21,1,0,56,6,0,248,14, - 0,184,12,0,56,28,0,56,24,0,56,48,0,56,112,0, - 56,96,0,56,224,0,56,199,128,57,207,224,3,156,224,3, - 0,224,7,1,224,6,1,192,14,3,128,28,7,0,28,30, - 0,56,31,224,48,31,224,20,20,60,22,1,0,124,1,192, - 230,3,128,231,3,0,7,7,0,30,14,0,30,14,0,7, - 28,0,231,24,0,231,56,0,126,49,224,24,115,224,0,227, - 224,0,199,224,1,198,224,1,140,224,3,156,224,3,31,240, - 7,31,240,14,0,224,12,0,224,12,19,38,15,1,251,7, - 128,7,128,7,128,0,0,0,0,7,0,7,0,7,0,14, - 0,28,0,56,0,112,0,240,0,240,0,240,112,240,112,127, - 240,63,224,15,128,19,28,84,19,0,0,7,0,0,3,128, - 0,1,128,0,1,192,0,0,192,0,0,96,0,0,0,0, - 0,0,0,1,240,0,1,240,0,1,248,0,3,248,0,3, - 248,0,3,188,0,7,188,0,7,156,0,15,30,0,15,30, - 0,15,30,0,30,15,0,30,15,0,31,255,128,63,255,128, - 63,255,128,56,3,192,120,3,192,120,3,192,240,1,224,19, - 28,84,19,0,0,0,28,0,0,56,0,0,56,0,0,112, - 0,0,96,0,0,192,0,0,0,0,0,0,0,1,240,0, - 1,240,0,1,248,0,3,248,0,3,248,0,3,188,0,7, - 188,0,7,156,0,15,30,0,15,30,0,15,30,0,30,15, - 0,30,15,0,31,255,128,63,255,128,63,255,128,56,3,192, - 120,3,192,120,3,192,240,1,224,19,28,84,19,0,0,0, - 224,0,1,240,0,1,240,0,3,184,0,3,24,0,6,12, - 0,0,0,0,0,0,0,1,240,0,1,240,0,1,248,0, - 3,248,0,3,248,0,3,188,0,7,188,0,7,156,0,15, - 30,0,15,30,0,15,30,0,30,15,0,30,15,0,31,255, - 128,63,255,128,63,255,128,56,3,192,120,3,192,120,3,192, - 240,1,224,19,26,78,19,0,0,1,204,0,3,248,0,6, - 120,0,0,0,0,0,0,0,0,0,0,1,240,0,1,240, - 0,1,248,0,3,248,0,3,248,0,3,188,0,7,188,0, - 7,156,0,15,30,0,15,30,0,15,30,0,30,15,0,30, - 15,0,31,255,128,63,255,128,63,255,128,56,3,192,120,3, - 192,120,3,192,240,1,224,19,26,78,19,0,0,7,28,0, - 7,28,0,7,28,0,0,0,0,0,0,0,0,0,0,1, - 240,0,1,240,0,3,248,0,3,248,0,3,248,0,7,188, - 0,7,188,0,7,60,0,15,30,0,15,30,0,30,31,0, - 30,15,0,30,15,0,63,255,128,63,255,128,63,255,128,120, - 3,192,120,3,192,112,3,192,240,1,224,19,29,87,19,0, - 0,0,224,0,1,240,0,3,24,0,3,24,0,3,24,0, - 1,240,0,0,224,0,0,0,0,0,0,0,1,240,0,1, - 240,0,3,240,0,3,248,0,3,248,0,7,188,0,7,188, - 0,7,60,0,15,30,0,15,30,0,30,30,0,30,15,0, - 30,15,0,63,255,128,63,255,128,63,255,128,120,3,192,120, - 3,192,240,3,192,240,1,224,25,20,80,26,0,0,0,63, - 255,128,0,63,255,128,0,127,0,0,0,127,0,0,0,255, - 0,0,1,239,0,0,1,239,0,0,3,207,0,0,3,207, - 255,128,7,143,255,128,7,143,255,128,15,15,0,0,15,255, - 0,0,31,255,0,0,31,255,0,0,60,15,0,0,56,15, - 0,0,120,15,255,128,112,15,255,128,240,15,255,128,17,27, - 81,19,1,249,7,240,0,15,252,0,63,254,0,60,31,0, - 120,31,0,112,15,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,15,128,112,15, - 0,120,31,0,60,63,0,63,254,0,15,252,0,3,240,0, - 0,128,0,0,224,0,0,240,0,0,48,0,0,48,0,3, - 240,0,0,128,0,13,28,56,17,2,0,60,0,28,0,14, - 0,6,0,7,0,3,0,0,0,0,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,240,0,255,248,255, - 248,255,248,13,28,56,17,2,0,1,224,1,192,3,128,3, - 0,6,0,6,0,0,0,0,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,13,28,56,17,2,0,15,0,15,128,13,128,29,192,24, - 192,48,96,0,0,0,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,13, - 26,52,17,2,0,56,224,56,224,56,224,0,0,0,0,0, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,248,255,248,255,248,7,28,28,8,255,0,240, - 112,56,24,28,12,0,0,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,6,28,28,7,2, - 0,28,56,48,112,96,192,0,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,8,28,28, - 8,0,0,60,60,126,102,198,195,0,0,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,9, - 26,52,9,0,0,227,128,227,128,227,128,0,0,0,0,0, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,18,20,60,19,0,0,63, - 224,0,63,252,0,63,254,0,60,31,0,60,15,128,60,7, - 128,60,3,192,60,3,192,60,3,192,255,195,192,255,195,192, - 60,3,192,60,3,192,60,3,192,60,7,128,60,15,128,60, - 31,0,63,254,0,63,252,0,63,224,0,17,26,78,21,2, - 0,7,152,0,7,248,0,12,240,0,0,0,0,0,0,0, - 0,0,0,252,7,128,252,7,128,254,7,128,254,7,128,255, - 7,128,255,7,128,247,135,128,247,135,128,243,199,128,243,199, - 128,241,231,128,241,231,128,240,247,128,240,247,128,240,127,128, - 240,127,128,240,63,128,240,63,128,240,31,128,240,31,128,18, - 28,84,20,1,0,14,0,0,7,0,0,3,128,0,1,128, - 0,0,192,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,31,254,0,62,31,0,120,7,128,120,7,128,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,120,7,128,120,7,128,62,31,0, - 31,254,0,15,252,0,3,240,0,18,28,84,20,1,0,0, - 60,0,0,56,0,0,112,0,0,96,0,0,192,0,0,0, - 0,0,0,0,0,0,0,3,240,0,15,252,0,31,254,0, - 62,31,0,120,7,128,120,7,128,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,120,7,128,120,7,128,62,31,0,31,254,0,15,252,0, - 3,240,0,18,28,84,20,1,0,1,224,0,3,240,0,3, - 240,0,7,56,0,6,24,0,0,0,0,0,0,0,0,0, - 0,3,240,0,15,252,0,31,254,0,62,31,0,120,7,128, - 120,7,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,120,7,128,120,7, - 128,62,31,0,31,254,0,15,252,0,3,240,0,18,27,81, - 20,1,0,0,8,0,7,248,0,7,248,0,4,0,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,31,254, - 0,62,31,0,120,7,128,120,7,128,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,120,7,128,120,7,128,62,31,0,31,254,0,15,252, - 0,3,240,0,18,27,81,20,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 240,0,15,252,0,31,254,0,62,31,0,120,7,128,120,7, - 128,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,120,7,128,120,7,128,62, - 31,0,31,254,0,15,252,0,3,240,0,15,14,28,27,6, - 2,192,6,96,12,48,24,24,48,12,96,6,192,3,128,3, - 128,6,192,12,96,24,48,48,24,96,12,64,4,20,22,66, - 20,0,255,0,0,32,1,252,112,7,255,224,15,255,192,31, - 15,128,60,3,192,60,7,192,120,15,224,120,29,224,120,57, - 224,120,113,224,120,225,224,121,193,224,123,129,224,127,1,224, - 62,3,192,60,3,192,31,15,128,63,255,0,127,254,0,227, - 248,0,64,0,0,17,28,84,21,2,0,30,0,0,14,0, - 0,7,0,0,3,128,0,1,128,0,0,0,0,0,0,0, - 0,0,0,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,0,240,15,0, - 120,15,0,124,30,0,63,254,0,31,248,0,7,224,0,17, - 28,84,21,2,0,0,60,0,0,120,0,0,112,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,0,240,15,0,120,15,0,124,30,0, - 63,254,0,31,248,0,7,224,0,17,28,84,21,2,0,3, - 192,0,3,224,0,7,224,0,14,112,0,12,56,0,0,0, - 0,0,0,0,0,0,0,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 0,240,15,0,120,15,0,124,30,0,63,254,0,31,248,0, - 7,224,0,17,27,81,20,2,0,14,56,0,14,56,0,14, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,0,240,15,0,120,15,0,124,30, - 0,63,254,0,31,248,0,7,224,0,16,27,54,17,1,0, - 0,112,0,224,0,192,1,128,0,0,0,0,0,0,240,31, - 248,30,120,30,124,60,60,60,60,120,30,120,30,240,15,240, - 15,224,7,224,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,14,20,40,17,1,0,240,0,240,0, - 240,0,240,0,255,192,255,240,255,248,240,124,240,60,240,60, - 240,60,240,124,255,248,255,240,255,192,240,0,240,0,240,0, - 240,0,240,0,14,20,40,16,1,0,31,128,127,224,121,240, - 240,240,240,240,240,240,241,224,243,192,247,128,247,128,247,128, - 243,224,241,240,240,248,240,60,240,60,255,60,255,188,247,248, - 243,240,12,22,44,15,1,0,120,0,56,0,28,0,12,0, - 6,0,2,0,0,0,0,0,31,128,63,224,121,240,112,240, - 0,240,63,240,127,240,248,240,240,240,240,240,240,240,251,240, - 127,112,62,112,12,22,44,15,1,0,1,224,1,192,3,128, - 3,0,7,0,6,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,31,240,127,240,120,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,22,44,15,1,0,15,0,15,128, - 31,128,25,192,56,192,48,96,0,0,0,0,31,128,63,224, - 121,240,112,240,0,240,63,240,127,240,248,240,240,240,240,240, - 240,240,251,240,127,112,62,112,12,20,40,15,1,0,31,192, - 63,192,48,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,21,42,15,1,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,23,46,15,1,0,7,0,31,128, - 24,192,24,192,31,128,15,0,0,0,0,0,0,0,31,128, - 63,224,121,240,112,240,0,240,63,240,127,240,248,240,240,240, - 240,240,240,240,251,240,127,112,62,112,22,14,42,24,1,0, - 15,135,192,63,207,240,124,252,248,112,120,56,0,120,56,31, - 255,252,127,255,252,120,120,0,240,120,0,240,120,0,240,252, - 56,249,222,248,127,143,240,30,7,224,12,21,42,14,1,249, - 31,128,63,224,121,224,112,224,240,240,240,0,240,0,240,0, - 240,0,240,240,240,224,121,224,63,192,31,128,4,0,7,0, - 7,128,0,192,0,192,31,128,4,0,13,22,44,15,1,0, - 56,0,56,0,28,0,12,0,6,0,2,0,0,0,0,0, - 15,128,63,224,121,240,112,240,240,240,255,240,255,248,240,0, - 240,0,240,240,112,240,121,240,63,224,31,128,13,22,44,15, - 1,0,1,224,1,192,3,128,3,0,6,0,6,0,0,0, - 0,0,15,128,63,224,121,240,112,240,240,240,255,240,255,248, - 240,0,240,0,240,240,112,240,121,240,63,224,31,128,13,22, - 44,15,1,0,15,0,15,0,31,128,25,128,56,192,48,192, - 0,0,0,0,15,128,63,224,121,240,112,240,240,240,255,240, - 255,248,240,0,240,0,240,240,112,240,121,240,63,224,31,128, - 13,21,42,15,1,0,56,224,56,224,56,224,0,0,0,0, - 0,0,0,0,15,128,63,224,121,240,112,112,240,112,255,240, - 255,248,240,0,240,0,240,112,112,112,125,240,63,224,31,128, - 6,22,22,7,0,0,224,240,112,56,24,12,0,0,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,6,22,22,6, - 2,0,60,56,112,96,192,192,0,0,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,22,44,7,255,0,30,0, - 62,0,63,0,115,0,99,128,193,128,0,0,0,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,9,20,40,7,255,0, - 227,128,227,128,227,128,0,0,0,0,0,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,14,20,40,16,1,0,14,24, - 15,240,3,192,15,192,60,224,48,240,15,240,63,248,124,248, - 120,60,240,60,240,60,240,60,240,60,240,60,240,60,120,56, - 124,248,63,240,15,192,13,20,40,16,2,0,30,96,63,192, - 55,128,0,0,0,0,0,0,247,192,255,240,253,240,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,14,22,44,16,1,0,60,0,28,0,14,0, - 6,0,3,0,3,0,0,0,0,0,15,192,63,224,124,240, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,120,120, - 124,248,63,240,15,192,14,22,44,16,1,0,0,240,0,224, - 1,192,1,128,3,0,3,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,22,44,16,1,0,7,128, - 7,128,15,192,12,192,24,96,24,96,0,0,0,0,15,192, - 63,224,124,240,120,120,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,124,248,63,240,15,192,14,20,40,16,1,0, - 15,224,31,224,24,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,21,42,16,1,0,28,224, - 28,224,28,224,0,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,16,12,24,26,5,2,1,192, - 3,192,1,192,0,0,0,0,255,255,255,255,0,0,0,0, - 1,192,3,192,1,192,14,18,36,16,1,254,0,8,0,28, - 15,248,63,240,124,240,120,248,241,252,241,188,243,60,246,60, - 254,60,252,60,120,120,60,248,127,240,239,192,192,0,128,0, - 13,22,44,16,2,0,56,0,60,0,28,0,14,0,6,0, - 3,0,0,0,0,0,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,248,249,248,127,248, - 62,120,13,22,44,16,2,0,1,224,1,192,3,128,3,0, - 7,0,6,0,0,0,0,0,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,248,249,248, - 127,248,62,120,13,22,44,16,2,0,15,0,15,128,31,128, - 29,192,56,192,48,96,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,13,21,42,16,2,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,14,27,54,15,0,251,0,112,0,240, - 0,224,0,192,1,128,0,0,0,0,0,0,120,28,120,60, - 60,60,60,56,60,120,30,120,30,112,14,240,15,240,15,224, - 7,224,7,224,3,192,3,192,3,128,39,128,255,128,127,0, - 62,0,14,25,50,17,2,251,240,0,240,0,240,0,240,0, - 240,0,240,0,247,192,255,240,253,240,248,120,240,56,240,60, - 240,60,240,60,240,60,240,120,240,120,253,240,255,240,247,192, - 240,0,240,0,240,0,240,0,240,0,15,26,52,15,0,251, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,248,30, - 120,60,120,60,60,56,60,120,60,120,30,112,30,240,15,240, - 15,224,15,224,7,224,7,192,3,192,7,128,7,128,7,128, - 15,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=16 h=21 x= 5 y= 9 dx=26 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20n[603] U8G_FONT_SECTION("u8g_font_fub20n") = { - 0,40,36,254,249,20,0,0,0,0,42,58,0,20,252,20, - 0,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=16 dx=28 dy= 0 ascent=22 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20r[4022] U8G_FONT_SECTION("u8g_font_fub20r") = { - 0,40,36,254,249,20,4,242,11,37,32,127,251,22,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=14 h=20 x= 4 y= 0 dx=15 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20t[477] U8G_SECTION(".progmem.u8g_font_fub20t") = { - 0,40,36,254,249,20,0,0,0,0,48,58,0,20,0,20, - 0,14,20,40,15,1,0,15,128,31,224,60,240,120,112,112, - 56,240,56,240,56,240,60,240,60,240,60,240,60,240,60,240, - 60,240,56,240,56,112,56,120,120,60,240,31,224,15,128,8, - 20,20,15,3,0,15,63,127,255,239,207,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,14,20,40,15,1,0,7, - 192,31,240,63,248,124,120,120,60,120,60,0,60,0,120,0, - 120,0,240,1,240,3,224,7,192,15,128,31,0,124,0,248, - 0,255,252,255,252,255,252,13,20,40,15,1,0,15,128,63, - 224,127,240,248,240,240,120,0,120,0,120,0,240,15,224,15, - 128,15,224,0,240,0,120,0,120,240,120,240,120,248,240,127, - 240,63,224,31,128,14,20,40,15,1,0,1,240,3,240,3, - 240,7,240,7,240,14,240,30,240,28,240,60,240,56,240,120, - 240,112,240,240,240,255,252,255,252,255,252,0,240,0,240,0, - 240,0,240,13,20,40,15,1,0,255,240,255,240,255,240,240, - 0,240,0,240,0,240,0,247,192,255,224,253,240,240,120,240, - 120,0,120,0,120,0,120,240,120,240,240,127,240,63,224,31, - 128,13,20,40,15,1,0,15,192,31,224,63,240,120,120,120, - 120,112,0,240,0,247,192,239,224,253,240,248,120,240,120,240, - 120,240,120,240,120,112,120,120,240,63,240,63,224,15,128,13, - 20,40,15,1,0,255,248,255,248,255,248,0,120,0,120,0, - 240,0,240,1,224,1,224,1,224,3,192,3,192,7,128,7, - 128,15,128,15,0,31,0,30,0,30,0,62,0,14,20,40, - 15,1,0,31,192,63,240,127,240,120,248,240,120,240,120,240, - 120,120,240,63,224,31,192,63,240,120,120,240,56,240,60,240, - 60,240,60,248,120,127,248,63,240,31,192,13,20,40,15,1, - 0,15,128,63,192,127,224,120,240,240,112,240,120,240,120,240, - 120,240,120,120,248,127,184,63,56,0,120,0,120,0,112,240, - 240,120,240,127,224,63,192,15,128,4,14,14,9,4,0,240, - 240,240,240,0,0,0,0,0,0,240,240,240,240}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=22 dx=35 dy= 0 ascent=37 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =37 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25[12908] U8G_FONT_SECTION("u8g_font_fub25") = { - 0,50,46,254,247,25,7,111,16,148,32,255,249,37,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,10,0,0,5,25,25,13,4,249,248,248,248,248, - 0,0,0,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,15,26,52,19,2,252,0,48,0,48,0, - 48,0,32,7,224,31,248,63,252,124,252,120,254,248,254,249, - 128,249,128,249,128,249,0,251,0,251,62,251,62,126,62,126, - 124,63,252,31,248,15,224,12,0,24,0,24,0,24,0,17, - 25,75,20,2,1,7,254,0,15,255,0,31,255,0,31,15, - 128,62,15,128,62,0,0,62,0,0,62,0,0,62,0,0, - 255,240,0,255,240,0,255,240,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,255,128,255,255,128,255,255,128, - 18,19,57,20,1,6,64,0,128,224,1,192,115,227,128,63, - 255,0,30,30,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 30,30,0,63,255,0,115,243,128,224,1,192,64,0,128,19, - 25,75,21,1,0,248,3,224,248,7,224,124,7,192,124,7, - 192,62,15,128,62,15,128,31,31,0,255,31,224,255,191,224, - 15,190,0,7,252,0,7,252,0,3,248,0,255,255,224,255, - 255,224,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,14,31,62,16,1,251,31,240,63, - 248,127,248,124,24,248,0,248,0,124,0,126,0,63,128,31, - 192,31,240,63,248,124,248,248,124,240,60,240,120,240,120,253, - 240,127,224,63,192,31,224,7,240,1,248,0,252,0,124,0, - 124,128,248,225,248,255,240,255,224,63,128,11,4,8,11,0, - 22,241,224,241,224,241,224,241,224,25,25,100,29,2,1,0, - 255,192,0,3,255,224,0,15,0,120,0,30,0,60,0,24, - 63,14,0,56,127,134,0,112,255,199,0,97,227,195,0,225, - 193,227,128,195,193,225,128,195,192,1,128,195,192,1,128,195, - 192,1,128,195,192,1,128,195,193,225,128,227,193,227,128,97, - 227,195,0,113,255,195,0,48,255,135,0,56,62,14,0,28, - 0,28,0,15,0,120,0,7,193,240,0,1,255,224,0,0, - 127,0,0,12,17,34,14,1,8,15,128,63,192,56,224,112, - 224,0,224,15,224,63,224,120,224,112,224,112,224,121,224,63, - 224,30,96,0,0,0,0,255,240,255,240,17,14,42,21,2, - 2,31,15,128,30,31,0,62,31,0,60,62,0,124,62,0, - 124,124,0,248,124,0,248,124,0,124,124,0,124,62,0,60, - 62,0,62,31,0,30,15,0,31,15,128,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,25,25,100,29,2,1, - 0,255,192,0,3,255,224,0,15,0,120,0,30,0,60,0, - 25,255,142,0,57,255,198,0,113,255,231,0,97,193,227,0, - 225,192,227,128,193,193,225,128,193,255,129,128,193,255,129,128, - 193,255,193,128,193,193,193,128,193,193,193,128,225,192,227,128, - 97,192,227,0,113,192,227,0,49,192,231,0,56,0,14,0, - 28,0,28,0,15,0,120,0,7,193,240,0,1,255,224,0, - 0,127,0,0,11,3,6,11,0,22,255,224,255,224,255,224, - 7,7,7,11,2,18,56,196,130,130,130,196,120,20,21,63, - 34,7,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,255,255,240,255,255,240,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,240,255, - 255,240,11,13,26,13,1,13,63,128,127,192,241,224,1,224, - 1,224,3,192,7,192,15,128,30,0,124,0,240,0,255,192, - 255,192,11,14,28,13,1,12,127,128,255,128,227,192,3,192, - 7,192,31,128,31,128,3,192,1,224,1,224,225,224,243,192, - 127,128,63,0,7,7,7,8,2,21,62,60,56,120,112,224, - 192,255,16,31,62,19,2,250,15,255,63,255,127,24,255,24, - 255,24,255,24,255,24,255,24,255,24,255,24,127,24,63,24, - 31,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,5,5,5,10,3,10,248,248,248,248, - 248,9,8,16,9,1,247,48,0,48,0,63,0,7,128,3, - 128,3,128,255,0,254,0,6,14,14,9,1,12,28,124,252, - 220,28,28,28,28,28,28,28,28,28,28,12,17,34,14,1, - 8,31,128,63,192,121,224,112,224,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,31,128,0,0,0,0,255, - 240,255,240,16,14,28,21,2,2,240,120,248,124,124,60,124, - 62,62,30,62,31,31,31,31,31,62,31,62,30,124,62,124, - 60,248,124,240,120,25,26,104,27,1,0,28,0,120,0,124, - 0,112,0,252,0,240,0,156,0,224,0,28,1,192,0,28, - 1,192,0,28,3,128,0,28,7,128,0,28,7,0,0,28, - 14,0,0,28,14,0,0,28,28,0,0,28,28,30,0,28, - 56,30,0,0,120,62,0,0,112,126,0,0,224,126,0,0, - 224,238,0,1,193,206,0,1,193,206,0,3,131,142,0,7, - 3,255,128,7,3,255,128,14,0,14,0,14,0,14,0,28, - 0,14,0,25,26,104,27,1,0,28,0,112,0,124,0,224, - 0,252,0,224,0,220,1,192,0,28,3,192,0,28,3,128, - 0,28,7,0,0,28,7,0,0,28,14,0,0,28,14,0, - 0,28,28,0,0,28,56,0,0,28,56,124,0,28,113,255, - 0,0,115,199,128,0,227,199,128,0,192,7,128,1,192,15, - 128,3,128,15,0,3,128,30,0,7,0,60,0,6,0,248, - 0,14,1,240,0,12,3,192,0,28,3,255,0,24,3,255, - 0,25,25,100,27,1,1,127,128,60,0,255,192,56,0,227, - 192,112,0,3,192,112,0,31,128,224,0,31,129,224,0,3, - 193,192,0,1,227,192,0,225,227,128,0,227,231,128,0,127, - 207,0,0,63,14,30,0,0,30,62,0,0,28,62,0,0, - 60,126,0,0,56,110,0,0,120,238,0,0,241,206,0,0, - 241,206,0,1,227,142,0,1,227,255,128,3,195,255,128,3, - 128,14,0,7,128,14,0,15,0,14,0,16,25,50,18,1, - 249,3,224,3,224,3,224,3,224,0,0,0,0,0,0,1, - 192,1,192,1,192,3,192,7,128,15,0,30,0,60,0,124, - 0,248,0,248,0,248,0,248,14,248,31,124,62,63,254,31, - 248,7,224,23,35,105,24,1,0,3,192,0,3,192,0,1, - 224,0,0,224,0,0,112,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,0,252,0,0,254,0, - 0,254,0,1,254,0,1,255,0,3,255,0,3,207,0,3, - 207,128,7,207,128,7,135,192,7,135,192,15,135,192,15,3, - 224,31,3,224,31,3,240,31,255,240,63,255,240,63,255,248, - 127,255,248,124,0,248,124,0,252,248,0,124,248,0,126,240, - 0,62,23,35,105,24,1,0,0,15,0,0,15,0,0,30, - 0,0,28,0,0,56,0,0,48,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,124,0,0,252,0,0,254,0,0, - 254,0,1,254,0,1,255,0,3,255,0,3,207,0,3,207, - 128,7,207,128,7,135,192,7,135,192,15,135,192,15,3,224, - 31,3,224,31,3,240,31,255,240,63,255,240,63,255,248,127, - 255,248,124,0,248,124,0,252,248,0,124,248,0,126,240,0, - 62,23,35,105,24,1,0,0,252,0,0,252,0,0,254,0, - 1,206,0,1,199,0,3,135,0,3,3,128,0,0,0,0, - 0,0,0,0,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 23,34,102,24,1,0,0,1,128,1,255,0,3,255,0,3, - 254,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,0,252,0,0,254,0,0,254,0,1,254,0, - 1,255,0,3,255,0,3,207,0,3,207,128,7,207,128,7, - 135,192,7,135,192,15,135,192,15,3,224,31,3,224,31,3, - 240,31,255,240,63,255,240,63,255,248,127,255,248,124,0,248, - 124,0,252,248,0,124,248,0,126,240,0,62,23,34,102,25, - 1,0,3,199,128,3,199,128,3,199,128,3,199,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 0,124,0,0,254,0,0,254,0,1,255,0,1,255,0,1, - 239,0,3,239,128,3,239,128,3,199,128,7,199,192,7,199, - 192,15,131,224,15,131,224,15,131,224,31,1,240,31,255,240, - 31,255,240,63,255,248,63,255,248,124,0,252,124,0,124,124, - 0,124,248,0,62,248,0,62,23,37,111,24,1,0,0,120, - 0,0,252,0,1,206,0,1,134,0,1,134,0,1,206,0, - 0,252,0,0,120,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,0,252,0,0,252,0,0,254,0,1,254, - 0,1,255,0,3,255,0,3,207,0,3,207,128,7,207,128, - 7,135,192,7,135,192,15,135,192,15,3,224,31,3,224,31, - 3,224,31,255,240,63,255,240,63,255,248,127,255,248,124,0, - 248,124,0,252,248,0,124,248,0,126,240,0,62,32,25,100, - 34,1,0,0,7,255,254,0,15,255,254,0,15,255,254,0, - 31,240,0,0,31,240,0,0,63,240,0,0,61,240,0,0, - 121,240,0,0,249,240,0,0,241,240,0,1,241,255,254,1, - 225,255,254,3,225,255,254,3,193,255,254,7,193,240,0,7, - 255,240,0,15,255,240,0,15,255,240,0,31,255,240,0,30, - 1,240,0,62,1,240,0,60,1,255,255,124,1,255,255,248, - 1,255,255,248,1,255,255,21,33,99,25,2,249,3,255,0, - 15,255,192,31,255,224,63,255,240,62,3,240,124,1,240,120, - 1,248,120,0,248,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,248, - 120,1,248,124,1,248,124,3,240,63,7,240,31,255,224,31, - 255,192,7,255,128,1,252,0,0,96,0,0,120,0,0,126, - 0,0,15,0,0,7,0,0,7,0,1,254,0,1,252,0, - 17,35,105,21,2,0,30,0,0,15,0,0,7,0,0,7, - 128,0,3,128,0,1,192,0,0,192,0,0,0,0,0,0, - 0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,128,255,255,128,255,255,128,255,255,128,17, - 35,105,21,2,0,0,120,0,0,240,0,0,224,0,1,192, - 0,1,128,0,3,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,0,255,255,0,255,255,0,255,255,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,17,35, - 105,21,2,0,7,224,0,7,224,0,15,240,0,14,112,0, - 14,56,0,28,56,0,24,28,0,0,0,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,128,255,255,128,255,255,128,255,255,128,17,34,102, - 21,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 0,255,255,0,255,255,0,255,255,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,0,255, - 255,0,255,255,0,255,255,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,128, - 255,255,128,255,255,128,255,255,128,8,35,35,9,255,0,240, - 120,56,60,28,12,6,0,0,0,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,7,35,35,8,2,0,30,28,60,56,112,96,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,11,35,70,9,255, - 0,31,0,63,0,63,128,59,128,113,192,97,192,192,224,0, - 0,0,0,0,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,11,34,68,11,0,0,241,224,241, - 224,241,224,241,224,0,0,0,0,0,0,0,0,0,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,23,25,75,24,0,0,63,252,0,63,255,128,63,255,192, - 63,255,224,62,7,240,62,1,248,62,0,248,62,0,124,62, - 0,124,62,0,60,62,0,60,255,240,62,255,240,62,255,240, - 62,62,0,60,62,0,60,62,0,124,62,0,124,62,0,248, - 62,1,248,62,7,240,63,255,224,63,255,192,63,255,128,63, - 252,0,21,34,102,25,2,0,0,3,0,1,255,0,3,254, - 0,7,252,0,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,0,248,255,0,248,255,0,248,255,128,248,255, - 128,248,255,192,248,255,192,248,251,224,248,251,224,248,249,224, - 248,249,240,248,248,240,248,248,248,248,248,120,248,248,124,248, - 248,60,248,248,62,248,248,30,248,248,31,248,248,31,248,248, - 15,248,248,15,248,248,7,248,248,7,248,248,3,248,23,36, - 108,27,2,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,56,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,36,108,27,2,0,0,7,192,0,7,128,0,15,0,0, - 14,0,0,28,0,0,24,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,255,128,7,255,192,31,255,240, - 31,255,240,63,1,248,126,0,252,124,0,124,120,0,60,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,124,0,124,124,0,124, - 62,0,248,63,131,248,31,255,240,15,255,224,7,255,192,0, - 254,0,23,36,108,27,2,0,0,124,0,0,254,0,0,254, - 0,1,239,0,1,199,0,3,131,128,3,1,128,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,128,7,255,192,31, - 255,240,31,255,240,63,1,248,126,0,252,124,0,124,120,0, - 60,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,124,0,124,124, - 0,124,62,0,248,63,131,248,31,255,240,15,255,224,7,255, - 192,0,254,0,23,34,102,27,2,0,0,241,128,1,255,128, - 3,255,0,3,30,0,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,34,102,27,2,0,3,199,128,3,199,128,3,199,128,3, - 199,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,255,128,7,255,192,31,255,240,31,255,240,63,1,248, - 126,0,252,124,0,124,120,0,60,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,62,0,248,63,131,248, - 31,255,240,15,255,224,7,255,192,0,254,0,18,19,57,34, - 8,1,64,0,0,224,0,192,112,1,128,56,3,0,28,6, - 0,14,12,0,6,24,0,3,48,0,1,224,0,0,192,0, - 1,224,0,3,48,0,6,24,0,12,12,0,24,6,0,48, - 3,0,112,1,128,224,1,192,64,0,128,25,28,112,27,1, - 255,0,0,1,0,0,0,3,128,1,255,195,128,3,255,247, - 0,15,255,254,0,15,255,252,0,31,128,252,0,63,0,126, - 0,62,0,254,0,60,1,254,0,124,3,223,0,124,7,159, - 0,124,15,31,0,124,30,31,0,124,60,31,0,124,120,31, - 0,124,240,31,0,125,224,31,0,127,192,31,0,63,128,62, - 0,63,0,62,0,63,0,124,0,31,193,252,0,63,255,248, - 0,127,255,240,0,243,255,224,0,224,127,0,0,64,0,0, - 0,21,36,108,25,2,0,15,0,0,7,128,0,3,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,120,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,36,108,25,2,0,0,15,128,0,15,0,0, - 30,0,0,60,0,0,56,0,0,112,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,240,248,0,240, - 120,1,240,124,3,240,127,7,224,63,255,192,31,255,128,15, - 255,0,3,252,0,21,36,108,25,2,0,0,248,0,1,248, - 0,1,252,0,3,220,0,7,142,0,7,14,0,14,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,240,248, - 0,240,120,1,240,124,3,240,127,7,224,63,255,192,31,255, - 128,15,255,0,3,252,0,21,34,102,25,2,0,7,143,0, - 7,143,0,7,143,0,7,143,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,124,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,35,105,22,1,0,0,30,0,0,30,0,0, - 28,0,0,56,0,0,48,0,0,112,0,0,0,0,0,0, - 0,0,0,0,0,0,0,252,1,248,252,1,240,126,3,224, - 126,3,224,63,7,192,31,7,192,31,143,128,15,143,128,15, - 223,0,7,223,0,7,254,0,3,254,0,3,252,0,1,248, - 0,1,248,0,0,240,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,18,25,75,22,2,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,240,0,255,254,0,255,255,0,255,255,128, - 248,15,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,255,255,128,255,255,0,255,254,0,255,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,18,25,75,19,1,1,31,240,0,63,252,0,127, - 252,0,248,62,0,248,62,0,248,62,0,248,62,0,248,124, - 0,248,248,0,248,240,0,249,240,0,251,224,0,251,224,0, - 249,248,0,249,252,0,248,127,0,248,63,128,248,15,128,248, - 7,128,248,7,192,251,199,192,251,199,128,249,255,128,249,255, - 0,248,126,0,15,28,56,19,2,0,60,0,30,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,7,224, - 63,248,127,252,124,62,120,62,0,62,15,254,63,254,127,254, - 124,62,248,62,248,62,248,62,248,62,252,126,127,254,63,222, - 31,30,15,28,56,19,2,0,0,120,0,240,0,240,1,224, - 1,192,1,128,3,0,0,0,0,0,0,0,7,224,63,248, - 127,252,124,62,120,62,0,62,15,254,63,254,127,254,124,62, - 248,62,248,62,248,62,248,62,252,126,127,254,63,222,31,30, - 15,28,56,19,2,0,7,192,7,224,15,224,14,240,28,112, - 24,56,56,24,0,0,0,0,0,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,15,26, - 52,19,2,0,0,24,15,248,31,240,31,224,48,0,0,0, - 0,0,0,0,7,224,63,248,127,252,124,62,120,62,0,62, - 15,254,63,254,127,254,124,62,248,62,248,62,248,62,248,62, - 252,126,127,254,63,222,31,30,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 15,224,63,248,127,252,124,62,120,62,0,62,15,254,63,254, - 127,254,124,62,248,62,248,62,248,62,248,62,252,126,127,254, - 63,222,31,30,15,30,60,19,2,0,3,192,7,224,14,112, - 12,48,12,48,14,112,7,224,3,192,0,0,0,0,0,0, - 0,0,7,224,31,248,63,252,124,62,120,62,0,62,15,254, - 63,254,127,254,124,62,248,62,248,62,248,62,248,62,252,126, - 127,254,63,222,31,30,27,18,72,31,2,0,7,224,124,0, - 31,249,255,0,127,253,255,128,124,63,135,192,120,31,3,192, - 0,31,3,224,7,255,255,224,63,255,255,224,127,255,255,224, - 124,31,0,0,248,31,0,0,248,31,0,0,248,31,131,224, - 248,31,131,192,252,59,199,192,127,241,255,192,63,224,255,128, - 15,128,126,0,15,26,52,18,2,248,7,224,31,248,63,252, - 124,124,120,60,248,62,248,62,248,0,248,0,248,0,248,0, - 248,62,248,62,120,60,124,124,63,252,31,248,15,224,3,0, - 3,128,3,224,0,240,0,112,0,112,15,224,15,192,15,28, - 56,19,2,0,62,0,30,0,15,0,7,0,7,128,3,128, - 1,192,0,0,0,0,0,0,7,224,31,248,63,252,124,60, - 120,62,248,30,248,30,255,254,255,254,255,254,248,0,248,0, - 248,30,120,62,124,62,63,252,31,248,7,224,15,28,56,19, - 2,0,0,120,0,112,0,240,0,224,1,192,1,128,3,0, - 0,0,0,0,0,0,7,224,31,248,63,252,124,60,120,62, - 248,30,248,30,255,254,255,254,255,254,248,0,248,0,248,30, - 120,62,124,62,63,252,31,248,7,224,15,28,56,19,2,0, - 7,224,7,224,15,224,14,112,28,112,28,56,56,24,0,0, - 0,0,0,0,7,224,31,248,63,252,124,60,120,62,248,30, - 248,30,255,254,255,254,255,254,248,0,248,0,248,30,120,62, - 124,62,63,252,31,248,7,224,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 7,224,31,248,63,252,124,124,120,62,248,62,248,62,255,254, - 255,254,255,254,248,0,248,0,248,62,120,62,124,126,63,252, - 31,248,7,224,8,28,28,9,255,0,240,120,120,60,28,14, - 6,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,7,28,28,8,2,0,30,60,56,120, - 112,224,192,0,0,0,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,10,28,56,9,255,0,31,0, - 63,0,63,128,123,128,115,192,97,192,224,192,0,0,0,0, - 0,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,11,26,52,9,255,0,241,224,241,224, - 241,224,241,224,0,0,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 18,26,78,21,2,0,0,1,0,15,135,0,3,254,0,1, - 248,0,3,248,0,15,252,0,60,60,0,16,30,0,7,255, - 0,31,255,0,63,255,0,126,31,128,124,15,128,248,15,128, - 248,7,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,128,120,15,128,124,15,128,126,31,0,63,255,0,31,252, - 0,3,240,0,16,26,52,20,2,0,0,24,15,248,31,248, - 31,240,48,0,0,0,0,0,0,0,249,248,251,252,255,254, - 252,63,252,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,18,28, - 84,21,2,0,31,0,0,15,0,0,7,128,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,63,254,0,62,31,0,124,15, - 128,120,15,128,248,7,128,248,7,128,248,7,192,248,7,192, - 248,7,192,248,7,128,120,15,128,124,15,128,62,31,0,63, - 254,0,15,252,0,3,240,0,18,28,84,21,2,0,0,60, - 0,0,56,0,0,120,0,0,112,0,0,224,0,0,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,63,254,0,62,31,0,124,15,128,120,15,128,248,7, - 128,248,7,128,248,7,192,248,7,192,248,7,192,248,7,128, - 120,15,128,124,15,128,62,31,0,63,254,0,15,252,0,3, - 240,0,18,28,84,21,2,0,3,224,0,3,240,0,7,240, - 0,7,56,0,14,56,0,14,28,0,28,12,0,0,0,0, - 0,0,0,0,0,0,3,240,0,15,252,0,63,254,0,62, - 31,0,124,15,128,120,15,128,248,7,128,248,7,128,248,7, - 192,248,7,192,248,7,192,248,7,128,120,15,128,124,15,128, - 62,31,0,63,254,0,15,252,0,3,240,0,18,27,81,21, - 2,0,0,4,0,0,12,0,7,252,0,15,248,0,15,240, - 0,24,0,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,63,254,0,62,31,0,124,15,128,120,15,128,248, - 7,128,248,7,128,248,7,192,248,7,192,248,7,192,248,7, - 128,120,15,128,124,15,128,62,31,0,63,254,0,15,252,0, - 3,240,0,18,27,81,21,2,0,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,63,254,0,62,31,0, - 124,15,128,120,15,128,248,7,128,248,7,128,248,7,192,248, - 7,192,248,7,192,248,7,128,120,15,128,124,15,128,62,31, - 0,63,254,0,15,252,0,3,240,0,20,15,45,34,7,3, - 0,112,0,0,248,0,0,248,0,0,112,0,0,0,0,0, - 0,0,0,0,0,255,255,240,255,255,240,0,0,0,0,0, - 0,0,112,0,0,248,0,0,248,0,0,112,0,18,23,69, - 21,2,254,0,1,0,0,1,128,0,3,128,3,247,0,15, - 255,0,63,254,0,62,31,0,124,63,128,120,55,128,248,119, - 128,248,231,128,249,199,192,251,135,192,251,135,192,255,7,128, - 126,15,128,124,15,128,62,31,0,63,254,0,127,252,0,227, - 240,0,224,0,0,192,0,0,16,28,56,20,2,0,62,0, - 30,0,15,0,7,0,3,128,3,128,1,192,0,0,0,0, - 0,0,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,252,63, - 127,255,63,223,31,159,16,28,56,20,2,0,0,120,0,240, - 0,240,0,224,1,192,1,128,3,0,0,0,0,0,0,0, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,252,63,127,255, - 63,223,31,159,16,28,56,20,2,0,7,224,7,224,15,240, - 14,112,28,56,28,56,56,28,0,0,0,0,0,0,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,252,63,127,255,63,223, - 31,159,16,27,54,20,2,0,60,120,60,120,60,120,60,120, - 0,0,0,0,0,0,0,0,0,0,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,252,63,127,255,63,223,31,159,17,35, - 105,19,1,249,0,30,0,0,60,0,0,56,0,0,120,0, - 0,112,0,0,224,0,0,192,0,0,0,0,0,0,0,0, - 0,0,248,15,128,248,15,128,252,15,128,124,31,0,126,31, - 0,62,31,0,62,62,0,63,62,0,31,60,0,31,124,0, - 15,252,0,15,248,0,15,248,0,7,248,0,7,240,0,3, - 240,0,3,240,0,3,224,0,3,224,0,3,192,0,103,192, - 0,255,192,0,255,192,0,127,128,0,62,0,0,17,32,96, - 21,2,249,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,249,240,0,255,252,0,255,254, - 0,254,63,0,252,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,254,63,0,255,254,0,255,252,0,251,240,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,17,33,99,19,1,249,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,248,15,128,248,15,128,252,15,128,124,31,0,124,31,0, - 126,31,0,62,62,0,63,62,0,31,62,0,31,124,0,31, - 252,0,15,248,0,15,248,0,7,248,0,7,240,0,7,240, - 0,3,240,0,3,224,0,3,224,0,3,224,0,7,192,0, - 7,192,0,7,192,0,15,128,0,15,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=13 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25n[981] U8G_FONT_SECTION("u8g_font_fub25n") = { - 0,50,46,254,247,25,0,0,0,0,42,58,0,26,251,25, - 0,14,13,26,22,4,13,28,224,60,240,28,224,15,192,135, - 132,255,252,255,252,231,156,15,192,30,224,28,224,60,240,8, - 64,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,7,9,9,11,2,251,62,60,60,120, - 120,112,240,240,224,9,5,10,11,1,7,255,128,255,128,255, - 128,255,128,255,128,5,5,5,10,3,0,248,248,248,248,248, - 11,28,56,15,2,254,0,224,0,224,1,192,1,192,1,192, - 3,128,3,128,3,128,3,128,7,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,28,0,56,0,56,0,56,0, - 56,0,112,0,112,0,112,0,224,0,224,0,224,0,17,25, - 75,19,1,1,7,224,0,31,252,0,63,254,0,60,30,0, - 120,15,0,120,15,0,120,15,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,60,30,0,31,252,0,15,248,0,7,224,0,11, - 25,50,19,3,1,3,224,15,224,31,224,127,224,255,224,251, - 224,243,224,195,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,17,25,75,19,1,1,7,248,0, - 31,254,0,31,255,0,63,255,0,126,31,128,124,15,128,124, - 15,128,0,15,128,0,15,128,0,31,0,0,31,0,0,62, - 0,0,126,0,0,252,0,1,248,0,3,240,0,7,224,0, - 15,192,0,63,0,0,126,0,0,252,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,16,25,50,19,2,1,31,240, - 63,252,127,254,255,254,248,62,248,31,0,31,0,30,0,126, - 7,252,7,240,7,248,7,252,0,62,0,31,0,31,0,31, - 248,31,248,31,248,31,252,62,127,254,127,252,31,248,15,224, - 18,25,75,19,1,1,0,126,0,0,254,0,0,254,0,1, - 254,0,3,254,0,3,254,0,7,190,0,15,190,0,15,62, - 0,30,62,0,30,62,0,60,62,0,124,62,0,120,62,0, - 240,62,0,255,255,192,255,255,192,255,255,192,255,255,192,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,17,25,75,19,1,1,255,254,0,255,254,0,255,254,0, - 255,254,0,248,0,0,248,0,0,248,0,0,248,0,0,249, - 240,0,255,252,0,255,254,0,252,63,0,248,31,0,248,15, - 0,0,15,128,0,15,128,0,15,128,0,15,0,248,15,0, - 248,31,0,252,63,0,127,254,0,127,252,0,63,248,0,15, - 224,0,17,25,75,19,1,1,3,240,0,15,252,0,31,254, - 0,63,255,0,62,31,0,126,15,128,124,0,0,124,0,0, - 252,0,0,248,248,0,251,254,0,255,254,0,255,31,0,254, - 15,128,252,15,128,252,15,128,252,15,128,252,15,128,124,15, - 128,126,15,128,127,31,0,63,255,0,31,254,0,15,252,0, - 3,240,0,16,25,50,19,2,1,255,255,255,255,255,255,255, - 255,0,15,0,31,0,30,0,62,0,62,0,124,0,124,0, - 248,0,248,0,240,1,240,1,240,3,224,3,224,7,192,7, - 192,15,128,15,128,15,128,31,0,31,0,17,25,75,19,1, - 1,7,240,0,31,252,0,127,255,0,127,255,0,252,31,128, - 248,15,128,248,15,128,120,15,0,124,31,0,63,254,0,15, - 248,0,31,248,0,63,254,0,124,63,0,248,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,252,31,128, - 127,255,0,127,255,0,31,252,0,7,240,0,17,25,75,19, - 1,1,7,240,0,31,252,0,63,254,0,127,254,0,124,63, - 0,248,31,0,248,31,0,248,31,128,248,31,128,248,31,128, - 248,63,128,124,63,128,127,255,128,63,239,128,15,207,128,0, - 15,128,0,31,0,0,31,0,248,31,0,120,63,0,124,126, - 0,63,254,0,63,252,0,31,248,0,7,224,0,5,18,18, - 11,5,0,248,248,248,248,248,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=21 dx=35 dy= 0 ascent=28 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25r[5936] U8G_FONT_SECTION("u8g_font_fub25r") = { - 0,50,46,254,247,25,7,111,16,148,32,127,249,28,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255 - }; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=26 dx=42 dy= 0 ascent=43 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30[16953] U8G_FONT_SECTION("u8g_font_fub30") = { - 0,59,54,253,245,30,9,163,21,182,32,255,249,43,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,12,0,0,5,28,28,16, - 5,248,248,248,248,248,248,0,0,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,18,30, - 90,24,3,250,0,6,0,0,14,0,0,12,0,0,12,0, - 0,28,0,7,252,0,31,255,0,63,255,128,63,63,128,124, - 63,192,124,127,192,252,103,192,248,96,0,248,96,0,248,192, - 0,248,192,0,248,192,0,253,192,0,253,143,192,125,143,192, - 127,143,192,127,31,128,63,255,128,31,255,0,7,252,0,6, - 0,0,14,0,0,12,0,0,12,0,0,28,0,0,20,31, - 93,23,2,0,0,16,0,3,255,128,7,255,192,15,255,224, - 15,199,240,31,131,240,31,131,240,31,1,240,31,0,0,31, - 0,0,31,0,0,31,0,0,255,252,0,255,252,0,255,252, - 0,255,252,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,255,255,240,255,255,240,255,255,240,255,255, - 240,21,21,63,25,2,8,192,0,24,224,0,56,113,252,112, - 63,255,224,31,7,192,28,1,192,24,1,192,56,0,224,48, - 0,96,48,0,96,48,0,96,48,0,96,48,0,224,56,0, - 224,28,1,192,30,3,192,31,143,192,63,255,224,113,252,112, - 224,0,56,192,0,24,22,30,90,24,1,0,252,0,252,252, - 0,252,124,1,248,126,1,248,62,3,240,63,3,240,63,7, - 224,31,135,224,255,135,252,255,143,252,255,207,252,7,223,128, - 7,255,0,3,255,0,3,255,0,1,254,0,255,255,252,255, - 255,252,255,255,252,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,2,38,38,14,6,248,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,16,36,72,19,1,251,15,252,31,254,63,254,126,14, - 124,2,124,0,124,0,126,0,127,0,63,192,31,224,15,248, - 31,252,63,254,126,127,124,63,248,31,248,31,248,31,252,62, - 254,252,127,248,63,240,31,248,7,252,1,254,0,127,0,63, - 0,63,0,31,0,63,64,126,127,254,127,252,127,240,31,192, - 13,5,10,13,0,26,240,120,240,120,240,120,240,120,240,120, - 30,30,120,34,2,1,0,63,240,0,0,255,252,0,3,248, - 127,0,7,192,15,128,15,0,3,192,30,0,1,224,60,31, - 240,240,56,63,248,112,120,127,252,120,112,248,124,56,112,248, - 62,56,225,240,62,28,225,240,62,28,225,240,0,28,225,240, - 0,28,225,240,0,28,225,240,0,28,225,240,62,28,225,240, - 62,28,112,248,62,56,112,248,124,56,112,127,252,120,56,63, - 248,112,60,31,224,240,30,0,1,224,15,0,3,192,7,128, - 15,128,3,240,63,0,1,255,252,0,0,63,240,0,14,20, - 40,16,1,10,15,192,63,240,120,240,120,120,0,120,15,248, - 63,248,124,120,240,120,240,120,240,120,240,248,255,248,127,248, - 63,56,0,0,0,0,0,0,255,252,255,252,20,16,48,24, - 2,2,15,193,240,15,131,224,31,135,224,31,7,192,63,15, - 192,126,15,192,126,31,128,252,31,128,252,31,128,126,31,128, - 126,15,192,63,15,192,31,7,192,31,135,224,15,131,224,15, - 193,240,21,9,27,25,2,8,255,255,248,255,255,248,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,255,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,248,127,0,7,192,15,128,15,0,3,192,30,0, - 1,224,60,255,192,240,56,255,240,112,120,255,248,120,112,240, - 124,56,112,240,60,56,224,240,60,28,224,240,60,28,224,240, - 120,28,224,255,240,28,224,255,224,28,224,255,248,28,224,240, - 120,28,224,240,120,28,112,240,56,56,112,240,60,56,112,240, - 60,120,56,240,60,112,60,240,60,240,30,0,1,224,15,0, - 3,192,7,128,15,128,3,240,63,0,1,255,252,0,0,63, - 240,0,13,4,8,13,0,26,255,248,255,248,255,248,255,248, - 9,9,18,13,2,21,62,0,127,0,227,128,193,128,193,128, - 193,128,227,128,127,0,62,0,24,24,72,40,8,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,255,255,255,255,255,255,255,255,255,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 255,255,255,255,255,255,13,16,32,15,1,15,63,224,127,240, - 248,120,240,120,0,120,0,248,1,240,3,224,7,192,15,128, - 31,0,60,0,240,0,255,240,255,240,255,240,12,15,30,14, - 1,16,63,192,127,224,240,240,240,240,0,240,1,224,15,192, - 15,192,1,224,0,240,0,240,240,240,249,240,127,224,63,128, - 8,8,8,9,2,25,31,31,62,60,120,112,240,224,255,18, - 36,108,22,2,250,7,255,192,31,255,192,63,199,0,127,199, - 0,255,199,0,255,199,0,255,199,0,255,199,0,255,199,0, - 255,199,0,255,199,0,255,199,0,127,199,0,63,199,0,15, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,1,199,0,1,199,0,1,199,0,1,199,0,1,199,0, - 1,199,0,1,199,0,1,199,0,1,199,0,1,199,0,1, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,5,5,5,12,3,11,248,248,248,248,248,9,10,20,10, - 2,246,48,0,48,0,60,0,63,0,7,128,3,128,3,128, - 135,128,255,0,252,0,7,16,16,11,2,14,30,62,254,254, - 158,30,30,30,30,30,30,30,30,30,30,30,14,19,38,16, - 1,11,15,192,31,224,60,240,120,120,112,56,240,60,240,60, - 240,60,240,60,240,60,112,56,120,120,60,240,31,224,15,192, - 0,0,0,0,255,252,255,252,20,16,48,24,2,2,252,31, - 0,124,31,0,126,15,128,62,15,192,63,15,192,31,7,224, - 31,135,224,31,131,240,31,131,240,31,135,224,31,7,224,63, - 15,192,62,15,192,126,15,128,124,31,0,252,31,0,28,31, - 124,32,2,255,30,0,15,0,62,0,30,0,254,0,30,0, - 254,0,60,0,158,0,124,0,30,0,120,0,30,0,248,0, - 30,0,240,0,30,1,240,0,30,1,224,0,30,3,192,0, - 30,3,192,0,30,7,128,0,30,15,128,0,30,15,0,0, - 30,31,3,224,0,30,7,224,0,60,15,224,0,60,15,224, - 0,120,31,224,0,120,61,224,0,240,121,224,0,240,121,224, - 1,224,241,224,3,193,225,224,3,193,255,240,7,129,255,240, - 7,128,1,224,15,0,1,224,15,0,1,224,30,0,1,224, - 28,30,120,31,2,0,30,0,30,0,62,0,60,0,254,0, - 56,0,222,0,120,0,158,0,240,0,30,0,240,0,30,1, - 224,0,30,1,224,0,30,3,192,0,30,3,192,0,30,7, - 128,0,30,7,128,0,30,15,0,0,30,30,0,0,30,30, - 31,128,30,60,63,224,0,60,125,224,0,120,240,240,0,120, - 240,240,0,240,0,240,0,240,1,240,1,224,3,224,1,192, - 7,192,3,192,15,128,7,128,31,0,7,128,62,0,15,0, - 124,0,15,0,240,0,30,0,255,240,30,0,255,240,29,30, - 120,31,1,1,63,192,3,192,127,224,7,192,240,240,7,128, - 240,240,15,0,0,240,15,0,1,224,30,0,15,192,30,0, - 15,192,60,0,1,224,124,0,0,240,120,0,0,240,240,0, - 240,240,240,0,249,241,224,0,127,225,224,0,63,131,193,240, - 0,3,195,240,0,7,135,240,0,15,7,240,0,15,15,240, - 0,30,30,240,0,30,60,240,0,60,60,240,0,60,120,240, - 0,120,240,240,0,240,255,248,0,240,255,248,1,224,0,240, - 1,224,0,240,3,192,0,240,3,192,0,240,19,28,84,23, - 2,248,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,0,0,0,0,0,0,0,0,0,240,0,0,240,0, - 0,240,0,0,240,0,1,224,0,7,224,0,15,128,0,31, - 0,0,62,0,0,124,0,0,252,0,0,252,0,0,248,1, - 0,252,3,128,252,7,224,126,15,192,127,255,192,63,255,128, - 15,254,0,3,248,0,27,41,164,28,1,0,1,240,0,0, - 1,240,0,0,0,248,0,0,0,120,0,0,0,60,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,63,128,0, - 0,127,128,0,0,127,128,0,0,127,192,0,0,255,192,0, - 0,255,224,0,0,255,224,0,1,251,224,0,1,243,240,0, - 3,243,240,0,3,241,240,0,3,225,248,0,7,225,248,0, - 7,224,248,0,7,192,252,0,15,192,252,0,15,192,126,0, - 15,128,126,0,31,255,254,0,31,255,255,0,63,255,255,0, - 63,255,255,0,63,255,255,128,126,0,31,128,126,0,31,128, - 126,0,15,192,252,0,15,192,252,0,7,192,248,0,7,224, - 27,41,164,28,1,0,0,3,240,0,0,3,224,0,0,3, - 192,0,0,7,128,0,0,7,0,0,0,15,0,0,0,14, - 0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,127, - 128,0,0,127,192,0,0,255,192,0,0,255,224,0,0,255, - 224,0,1,251,224,0,1,243,240,0,3,243,240,0,3,241, - 240,0,3,225,248,0,7,225,248,0,7,224,248,0,7,192, - 252,0,15,192,252,0,15,192,126,0,15,128,126,0,31,255, - 254,0,31,255,255,0,63,255,255,0,63,255,255,0,63,255, - 255,128,126,0,31,128,126,0,31,128,126,0,15,192,252,0, - 15,192,252,0,7,192,248,0,7,224,27,41,164,28,1,0, - 0,63,0,0,0,63,128,0,0,127,128,0,0,123,192,0, - 0,243,192,0,0,225,224,0,1,192,224,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0, - 0,63,128,0,0,127,128,0,0,127,128,0,0,127,192,0, - 0,255,192,0,0,255,224,0,0,255,224,0,1,251,224,0, - 1,243,240,0,3,243,240,0,3,241,240,0,3,225,248,0, - 7,225,248,0,7,224,248,0,7,192,252,0,15,192,252,0, - 15,192,126,0,15,128,126,0,31,255,254,0,31,255,255,0, - 63,255,255,0,63,255,255,0,63,255,255,128,126,0,31,128, - 126,0,31,128,126,0,15,192,252,0,15,192,252,0,7,192, - 248,0,7,224,27,39,156,28,1,0,0,120,112,0,0,255, - 224,0,1,255,224,0,1,255,192,0,1,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,63,128,0,0,127,128,0,0,127,128,0,0,127, - 192,0,0,255,192,0,0,255,224,0,0,255,224,0,1,251, - 224,0,1,243,240,0,3,243,240,0,3,241,240,0,3,225, - 248,0,7,225,248,0,7,224,248,0,7,192,252,0,15,192, - 252,0,15,192,126,0,15,128,126,0,31,255,254,0,31,255, - 255,0,63,255,255,0,63,255,255,0,63,255,255,128,126,0, - 31,128,126,0,31,128,126,0,15,192,252,0,15,192,252,0, - 7,192,248,0,7,224,27,40,160,29,1,0,1,224,240,0, - 1,224,240,0,1,224,240,0,1,224,240,0,1,224,240,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,63,128,0,0,63,128,0,0,127,192,0, - 0,127,192,0,0,127,192,0,0,255,224,0,0,255,224,0, - 1,251,240,0,1,251,240,0,1,251,240,0,3,241,248,0, - 3,241,248,0,3,224,248,0,7,224,252,0,7,224,252,0, - 7,192,124,0,15,192,126,0,15,192,126,0,15,128,62,0, - 31,255,255,0,31,255,255,0,31,255,255,0,63,255,255,128, - 63,255,255,128,126,0,31,128,126,0,15,192,126,0,15,192, - 252,0,7,224,252,0,7,224,252,0,7,224,27,43,172,28, - 0,0,0,31,0,0,0,63,128,0,0,113,192,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,113,192,0,0,63, - 128,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,63,128,0,0,63,128,0,0,63, - 128,0,0,127,192,0,0,127,192,0,0,127,192,0,0,255, - 224,0,0,251,224,0,0,251,240,0,1,251,240,0,1,241, - 240,0,1,241,248,0,3,241,248,0,3,224,248,0,7,224, - 252,0,7,224,252,0,7,192,124,0,15,192,126,0,15,192, - 126,0,15,255,254,0,31,255,255,0,31,255,255,0,31,255, - 255,128,63,255,255,128,63,0,31,128,62,0,15,192,126,0, - 15,192,126,0,15,192,252,0,7,224,252,0,7,224,38,30, - 150,40,0,0,0,1,255,255,248,0,1,255,255,248,0,3, - 255,255,248,0,3,255,255,248,0,7,255,0,0,0,7,223, - 0,0,0,15,223,0,0,0,15,159,0,0,0,31,159,0, - 0,0,31,31,0,0,0,63,31,0,0,0,62,31,0,0, - 0,126,31,255,248,0,124,31,255,248,0,252,31,255,248,0, - 248,31,255,248,1,248,31,255,248,1,240,31,0,0,3,255, - 255,0,0,7,255,255,0,0,7,255,255,0,0,15,255,255, - 0,0,15,255,255,0,0,31,128,63,0,0,31,128,63,0, - 0,63,0,63,255,252,63,0,63,255,252,126,0,63,255,252, - 126,0,63,255,252,252,0,63,255,252,24,40,120,29,2,247, - 1,255,192,3,255,240,15,255,248,15,255,252,31,255,254,63, - 128,254,62,0,127,126,0,127,124,0,63,124,0,63,252,0, - 0,252,0,0,252,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,252,0,0,124,0,63,124, - 0,127,126,0,127,62,0,255,63,0,254,31,255,254,31,255, - 252,15,255,248,7,255,240,1,255,192,0,24,0,0,24,0, - 0,31,0,0,31,128,0,3,192,0,1,192,0,1,192,0, - 195,192,0,255,128,0,254,0,20,41,123,25,3,0,15,128, - 0,15,128,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,20,41,123,25,3,0,0, - 63,0,0,62,0,0,124,0,0,120,0,0,240,0,0,224, - 0,1,224,0,1,192,0,0,0,0,0,0,0,0,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,224,255,255,224,255,255,224, - 255,255,224,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,20,41,123,25,3,0, - 3,248,0,3,248,0,7,252,0,7,188,0,7,30,0,14, - 14,0,14,7,0,28,7,0,0,0,0,0,0,0,0,0, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,224,255,255,224,255,255, - 224,255,255,224,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,20,40,120,25,3, - 0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,9,41,82,11,255,0,248, - 0,124,0,60,0,30,0,14,0,15,0,7,0,3,0,0, - 0,0,0,0,0,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,8,41,41,10,3,0,15,31,30,60,56,120,112,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 12,41,82,11,0,0,31,128,63,128,63,128,123,192,121,192, - 112,224,224,224,192,112,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,13,40,80,13,0,0,240,120, - 240,120,240,120,240,120,240,120,0,0,0,0,0,0,0,0, - 0,0,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,26,30, - 120,29,0,0,31,255,0,0,31,255,224,0,31,255,248,0, - 31,255,252,0,31,255,254,0,31,1,255,0,31,0,127,0, - 31,0,31,128,31,0,31,128,31,0,15,192,31,0,15,192, - 31,0,7,192,31,0,7,192,255,252,7,192,255,252,7,192, - 255,252,7,192,255,252,7,192,31,0,7,192,31,0,7,192, - 31,0,15,192,31,0,15,192,31,0,31,128,31,0,31,128, - 31,0,127,0,31,1,255,0,31,255,254,0,31,255,252,0, - 31,255,248,0,31,255,224,0,31,255,0,0,25,39,156,31, - 3,0,0,248,96,0,1,255,224,0,1,255,192,0,3,255, - 128,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,128,15,128,255,128,15,128,255,128, - 15,128,255,192,15,128,255,192,15,128,255,224,15,128,251,224, - 15,128,251,240,15,128,249,240,15,128,249,248,15,128,248,248, - 15,128,248,252,15,128,248,252,15,128,248,126,15,128,248,126, - 15,128,248,63,15,128,248,63,15,128,248,31,143,128,248,31, - 143,128,248,15,143,128,248,15,207,128,248,7,207,128,248,7, - 239,128,248,3,239,128,248,3,255,128,248,1,255,128,248,1, - 255,128,248,0,255,128,248,0,255,128,248,0,127,128,27,41, - 164,31,2,0,1,240,0,0,1,240,0,0,0,248,0,0, - 0,120,0,0,0,60,0,0,0,28,0,0,0,28,0,0, - 0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,27,41,164,31,2,0,0,1, - 240,0,0,1,224,0,0,3,224,0,0,3,192,0,0,7, - 128,0,0,7,0,0,0,14,0,0,0,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,41,164,31,2,0,0,63,0,0,0,63,128,0, - 0,63,128,0,0,123,192,0,0,113,192,0,0,240,224,0, - 0,224,224,0,1,192,112,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,224,0,3,255,248,0,7,255,252,0, - 15,255,254,0,31,255,255,0,63,192,127,128,63,0,31,128, - 127,0,31,192,126,0,15,192,126,0,15,192,252,0,15,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,15,224,126,0,15,192,126,0,15,192,127,0,31,192, - 63,0,31,128,63,192,127,128,31,255,255,0,15,255,254,0, - 7,255,252,0,3,255,248,0,0,255,224,0,27,40,160,31, - 2,0,0,0,48,0,0,124,112,0,0,255,224,0,0,255, - 224,0,1,255,192,0,1,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,40,160,31,2,0,0,240,240,0,0,240,240,0, - 0,240,240,0,0,240,240,0,0,240,240,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,22,22,66,40,9,1,96,0, - 24,240,0,60,112,0,56,56,0,112,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,96,0,24,64,0,8, - 29,34,136,31,1,254,0,0,0,16,0,0,0,56,0,127, - 240,120,1,255,252,240,3,255,255,240,7,255,255,224,15,255, - 255,192,31,224,63,192,31,128,15,192,63,128,31,224,63,0, - 63,224,63,0,127,224,126,0,251,240,126,1,243,240,126,1, - 227,240,126,3,195,240,126,7,131,240,126,15,3,240,126,30, - 3,240,126,60,3,240,126,124,3,240,126,248,7,240,63,240, - 7,224,63,224,7,224,63,192,15,224,31,128,15,192,31,224, - 63,192,31,255,255,128,63,255,255,0,127,255,254,0,249,255, - 252,0,240,127,240,0,224,0,0,0,64,0,0,0,24,41, - 123,30,3,0,7,192,0,3,224,0,1,224,0,1,240,0, - 0,240,0,0,120,0,0,56,0,0,28,0,0,0,0,0, - 0,0,0,0,0,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,252,0, - 31,252,0,31,252,0,63,124,0,63,126,0,126,127,0,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,30,3,0,0,3,224,0,3,224,0,7,192,0,15, - 128,0,15,0,0,30,0,0,28,0,0,56,0,0,0,0, - 0,0,0,0,0,0,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,252, - 0,31,252,0,31,252,0,63,124,0,63,126,0,126,127,0, - 254,63,255,252,31,255,252,31,255,248,7,255,224,1,255,192, - 24,41,123,30,3,0,0,126,0,0,255,0,0,255,0,1, - 247,128,1,231,128,3,195,192,3,129,192,7,0,224,0,0, - 0,0,0,0,0,0,0,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 252,0,31,252,0,31,252,0,63,124,0,63,126,0,126,127, - 0,254,63,255,252,31,255,252,31,255,248,7,255,224,1,255, - 192,24,40,120,30,3,0,3,193,224,3,193,224,3,193,224, - 3,193,224,3,193,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,252,0,31,252,0,31,252,0,31,252,0,31, - 252,0,31,252,0,31,252,0,31,252,0,31,252,0,31,252, - 0,31,252,0,31,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,254,0,63,126,0,63,127,0,126,127,128,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,25,1,0,0,7,192,0,15,128,0,15,0,0,14, - 0,0,30,0,0,28,0,0,56,0,0,0,0,0,0,0, - 0,0,0,0,0,0,252,0,127,254,0,126,126,0,254,127, - 0,252,63,1,252,63,1,248,31,131,248,31,131,240,15,195, - 240,15,199,224,7,231,224,7,239,192,3,255,192,3,255,128, - 1,255,128,1,255,0,0,255,0,0,254,0,0,126,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 21,30,90,26,2,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,252,0,255,255,128,255,255,192,255,255, - 224,255,255,240,248,7,240,248,1,248,248,1,248,248,0,248, - 248,0,248,248,1,248,248,1,248,248,7,240,255,255,240,255, - 255,224,255,255,192,255,255,128,255,252,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 21,30,90,24,2,1,15,252,0,63,255,0,127,255,128,126, - 31,192,252,15,192,252,7,192,248,7,192,248,15,192,248,15, - 128,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 248,248,0,248,252,0,248,254,0,248,127,128,248,63,192,248, - 31,224,248,7,240,248,3,240,248,1,248,248,1,248,251,224, - 248,251,225,248,251,241,248,249,255,240,249,255,224,248,255,192, - 19,32,96,22,2,0,31,0,0,31,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,1,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,31,255,0, - 63,255,128,126,15,128,124,15,192,0,7,192,0,127,192,15, - 255,192,63,255,192,127,255,192,127,7,192,252,7,192,252,7, - 192,248,15,192,248,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,227,224,19,32,96,22,2,0,0,31,0,0, - 62,0,0,60,0,0,120,0,0,120,0,0,240,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,31,255,0,63,255,128,126,15,128,124,15,192,0, - 7,192,0,127,192,15,255,192,63,255,192,127,255,192,127,7, - 192,252,7,192,252,7,192,248,15,192,248,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,227,224,19,32,96,22, - 2,0,3,240,0,3,248,0,7,248,0,7,188,0,15,28, - 0,14,30,0,28,14,0,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,30,90,22,2,0,7,135,0,15,254,0,15,254, - 0,31,252,0,24,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,31,93,23,2,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,15,254,0,31,255,0,63, - 255,128,126,15,128,124,15,192,0,7,192,0,127,192,15,255, - 192,63,255,192,127,255,192,127,7,192,252,7,192,252,7,192, - 248,15,192,248,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,224,19,34,102,22,2,0,1,240,0,3,248, - 0,7,28,0,6,12,0,6,12,0,6,12,0,7,28,0, - 3,248,0,1,240,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,254,0,31,255,0,63,255,128,126,15, - 128,124,15,192,0,7,192,0,127,192,15,255,192,63,255,192, - 127,255,192,127,7,192,252,7,192,252,7,192,248,15,192,248, - 15,192,252,15,192,254,31,192,127,255,192,63,247,192,31,231, - 224,32,20,80,36,2,1,15,252,31,224,31,254,127,248,63, - 255,127,252,126,15,240,126,124,7,224,62,0,7,224,62,0, - 7,192,31,7,255,255,255,31,255,255,255,63,255,255,255,127, - 255,255,255,252,7,192,0,252,7,224,0,248,7,224,0,248, - 15,224,63,252,15,240,62,254,30,248,126,127,252,127,252,63, - 248,63,248,31,224,31,240,17,30,90,21,2,247,15,252,0, - 31,254,0,63,255,0,126,63,0,124,31,128,124,31,128,252, - 15,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,252,15,128,252,31,128,124,31,128,126,63,0, - 63,255,0,31,254,0,15,252,0,1,128,0,1,128,0,1, - 224,0,1,248,0,0,60,0,0,28,0,0,28,0,6,60, - 0,7,248,0,7,224,0,19,32,96,22,2,0,31,0,0, - 31,0,0,15,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,252,0,31,255,0,63,255,0,62,31,128,124,15,192, - 124,7,192,252,7,192,255,255,192,255,255,192,255,255,224,255, - 255,224,248,0,0,248,0,0,252,0,0,124,7,192,124,15, - 192,126,31,128,63,255,128,31,255,0,7,252,0,19,32,96, - 22,2,0,0,31,0,0,62,0,0,60,0,0,120,0,0, - 120,0,0,240,0,0,224,0,1,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,7,252,0,31,255,0,63,255,0, - 62,31,128,124,15,192,124,7,192,252,7,192,255,255,192,255, - 255,192,255,255,224,255,255,224,248,0,0,248,0,0,252,0, - 0,124,7,192,124,15,192,126,31,128,63,255,128,31,255,0, - 7,252,0,19,32,96,22,2,0,3,240,0,3,248,0,7, - 248,0,7,188,0,15,28,0,14,30,0,28,14,0,28,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,252,0, - 31,255,0,63,255,0,62,31,128,124,15,192,124,7,192,252, - 7,192,255,255,192,255,255,192,255,255,224,255,255,224,248,0, - 0,248,0,0,252,0,0,124,7,192,124,15,192,126,31,128, - 63,255,128,31,255,0,7,252,0,19,31,93,22,2,0,30, - 30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 15,192,252,15,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,15,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,8,32,32,11, - 0,0,248,120,124,60,30,14,7,7,0,0,0,0,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,9,32,64,10,2,0,15,128,31,0,30,0,62,0, - 60,0,120,0,112,0,224,0,0,0,0,0,0,0,0,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,13,32,64,11,255,0,15,192, - 31,192,31,224,61,224,56,240,120,112,112,56,224,56,0,0, - 0,0,0,0,0,0,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,13,31, - 62,11,255,0,240,120,240,120,240,120,240,120,240,120,0,0, - 0,0,0,0,0,0,0,0,0,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,20,31,93,24,2,0,0,0,96,7,193,224,3,247, - 224,1,255,128,0,254,0,0,254,0,3,254,0,15,159,0, - 30,15,128,24,15,128,0,7,192,7,255,192,15,255,224,63, - 255,224,63,15,240,126,3,240,124,3,240,252,1,240,252,1, - 240,252,1,240,248,1,240,248,1,240,252,1,240,252,1,240, - 252,1,240,124,3,240,126,3,224,63,15,224,31,255,192,15, - 255,128,7,254,0,18,30,90,24,3,0,7,134,0,15,254, - 0,15,254,0,31,252,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,32,96,24,2,0,15,128,0,7,128, - 0,7,192,0,3,192,0,1,224,0,0,224,0,0,112,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 254,0,15,255,0,31,255,192,63,15,192,126,3,224,124,3, - 240,252,1,240,252,1,240,252,1,240,248,1,240,248,1,240, - 248,1,240,252,1,240,252,1,240,124,3,240,126,3,224,63, - 15,192,31,255,192,15,255,0,3,254,0,20,32,96,24,2, - 0,0,15,128,0,31,0,0,30,0,0,60,0,0,56,0, - 0,120,0,0,112,0,0,224,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,254,0,15,255,0,31,255,192,63,15, - 192,126,3,224,124,3,240,252,1,240,252,1,240,252,1,240, - 248,1,240,248,1,240,248,1,240,252,1,240,252,1,240,124, - 3,240,126,3,224,63,15,192,31,255,192,15,255,0,3,254, - 0,20,32,96,24,2,0,1,248,0,1,252,0,3,252,0, - 3,222,0,7,158,0,7,15,0,14,7,0,14,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,31,93,24,2,0,0,1,128, - 3,195,0,7,255,0,7,255,0,15,254,0,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,254, - 0,15,255,0,31,255,192,63,15,192,126,3,224,124,3,240, - 252,1,240,252,1,240,252,1,240,248,1,240,248,1,240,248, - 1,240,252,1,240,252,1,240,124,3,240,126,3,224,63,15, - 192,31,255,192,15,255,0,3,254,0,20,31,93,24,2,0, - 15,7,128,15,7,128,15,7,128,15,7,128,15,7,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,254,0,15,255,0,31,255,192,63,15,192,126,3,224, - 124,3,240,252,1,240,252,1,240,252,1,240,248,1,240,248, - 1,240,248,1,240,252,1,240,252,1,240,124,3,240,126,3, - 224,63,15,192,31,255,192,15,255,0,3,254,0,24,19,57, - 40,8,2,0,16,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,56,0, - 0,124,0,0,124,0,0,124,0,0,56,0,21,26,78,24, - 1,254,0,0,56,0,0,120,0,0,112,1,255,224,7,255, - 224,15,255,224,31,135,224,63,7,240,62,15,248,126,14,248, - 126,28,248,126,56,248,124,120,248,124,112,248,126,224,248,127, - 192,248,63,193,248,63,129,248,63,3,240,31,135,224,31,255, - 224,31,255,192,57,255,0,120,0,0,240,0,0,96,0,0, - 18,32,96,24,3,0,31,0,0,15,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,252,7,192,252,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,231,192,18,32,96,24,3,0,0,62,0,0, - 60,0,0,124,0,0,120,0,0,240,0,0,224,0,1,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,252,7,192,252,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,231,192,18,32,96,24, - 3,0,3,240,0,3,248,0,7,248,0,7,188,0,15,60, - 0,14,30,0,30,14,0,28,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 231,192,18,31,93,24,3,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 252,7,192,252,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,192,21,41,123,22,1,248,0,7,192,0,15, - 128,0,15,0,0,30,0,0,30,0,0,60,0,0,56,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,1,248,252,3,240,126,3,240,126,3,224,63,7, - 224,63,7,224,63,7,192,31,143,192,31,143,192,15,143,128, - 15,223,128,15,223,128,7,223,0,7,255,0,3,255,0,3, - 254,0,3,254,0,1,252,0,1,252,0,0,252,0,0,248, - 0,1,248,0,33,248,0,115,240,0,255,240,0,255,224,0, - 127,192,0,31,128,0,20,38,114,25,3,248,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,249,254,0,251,255,128, - 251,255,192,255,15,192,254,7,224,252,3,224,252,3,240,252, - 3,240,252,3,240,248,1,240,248,1,240,252,3,240,252,3, - 240,252,3,240,252,3,224,254,7,224,255,15,192,255,255,192, - 251,255,128,249,254,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,21,39, - 117,21,0,248,15,7,128,15,7,128,15,7,128,15,7,128, - 15,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,1,248,252,1,248,126,1,240,126,3, - 240,63,3,224,63,3,224,63,7,224,31,135,192,31,143,192, - 15,207,192,15,207,128,15,223,128,7,255,128,7,255,0,3, - 255,0,3,255,0,3,254,0,1,254,0,1,252,0,0,252, - 0,0,252,0,1,248,0,1,248,0,1,248,0,3,240,0, - 3,240,0,7,240,0,7,224,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=32 x= 8 y=14 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30n[1205] U8G_FONT_SECTION("u8g_font_fub30n") = { - 0,59,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,16,32,26,5,14,4,32,28,56,30,120,30,120,15, - 240,7,224,227,199,255,255,255,255,243,207,7,224,15,240,30, - 120,30,120,28,56,4,32,24,25,75,40,8,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,255,255, - 255,255,255,255,255,255,255,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,8,10,10,12,2,251,31,31, - 62,62,60,124,120,120,240,240,10,5,10,14,2,8,255,192, - 255,192,255,192,255,192,255,192,5,5,5,12,4,0,248,248, - 248,248,248,13,32,64,17,2,254,0,120,0,120,0,120,0, - 240,0,240,0,240,1,224,1,224,1,224,3,192,3,192,3, - 192,3,192,7,128,7,128,7,128,15,0,15,0,15,0,14, - 0,30,0,30,0,30,0,60,0,60,0,60,0,120,0,120, - 0,120,0,120,0,240,0,240,0,20,30,90,23,1,1,3, - 252,0,15,255,0,31,255,128,63,15,128,62,7,192,124,3, - 192,124,3,224,124,3,224,124,3,224,248,1,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,124,3, - 224,124,3,224,124,3,224,124,3,224,62,7,192,63,15,128, - 31,255,128,15,255,0,3,252,0,12,30,60,23,4,0,1, - 240,3,240,15,240,63,240,255,240,255,240,253,240,249,240,225, - 240,129,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,20,30,90,23,1, - 1,3,255,0,7,255,128,31,255,192,31,255,224,63,255,240, - 63,3,240,126,1,240,126,1,240,124,1,240,0,1,240,0, - 3,240,0,3,240,0,7,224,0,15,224,0,15,192,0,31, - 128,0,63,0,0,254,0,1,252,0,3,248,0,7,240,0, - 15,224,0,63,128,0,127,0,0,252,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,19,30,90,23,2, - 1,7,252,0,31,255,0,63,255,128,127,255,128,127,255,192, - 252,15,192,252,7,192,248,7,192,0,7,192,0,7,192,0, - 15,192,0,63,192,3,255,128,3,254,0,3,252,0,3,255, - 0,3,255,128,0,31,192,0,7,224,0,7,224,0,7,224, - 0,3,224,248,7,224,252,7,224,252,7,192,126,15,192,127, - 255,128,63,255,128,31,255,0,15,252,0,21,30,90,23,1, - 0,0,63,128,0,63,128,0,127,128,0,255,128,0,255,128, - 1,255,128,1,255,128,3,239,128,3,207,128,7,207,128,15, - 143,128,15,143,128,31,15,128,31,15,128,62,15,128,62,15, - 128,124,15,128,252,15,128,248,15,128,255,255,248,255,255,248, - 255,255,248,255,255,248,255,255,248,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,19,30,90,23,2, - 0,127,255,192,127,255,192,127,255,192,127,255,192,127,255,192, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,252,0,125,255,0,127,255,128,127,255,192,127,15, - 224,126,7,224,124,3,224,0,3,224,0,3,224,0,3,224, - 0,3,224,0,3,224,248,7,224,252,7,224,252,15,192,127, - 255,128,127,255,128,63,254,0,15,252,0,20,30,90,23,1, - 1,3,254,0,7,255,0,15,255,128,31,255,192,63,255,192, - 63,7,224,126,3,224,126,3,224,124,0,0,124,0,0,252, - 0,0,248,0,0,249,255,0,251,255,128,255,255,192,255,15, - 224,254,7,224,254,3,240,252,3,240,252,3,240,252,1,240, - 252,1,240,124,3,240,124,3,240,126,3,224,63,7,224,63, - 255,192,31,255,128,15,255,0,3,254,0,19,30,90,23,2, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 0,7,224,0,7,224,0,7,192,0,15,192,0,15,192,0, - 31,128,0,31,128,0,63,0,0,63,0,0,63,0,0,126, - 0,0,126,0,0,252,0,0,252,0,1,252,0,1,248,0, - 1,248,0,3,240,0,3,240,0,7,240,0,7,224,0,15, - 224,0,15,192,0,15,192,0,31,192,0,20,30,90,23,1, - 1,7,254,0,31,255,128,63,255,192,127,255,224,127,255,224, - 126,7,224,124,3,224,124,3,224,124,3,224,124,3,224,126, - 7,224,127,15,192,63,255,128,15,255,0,7,252,0,31,255, - 0,63,255,192,127,15,224,124,7,224,252,3,240,252,3,240, - 248,1,240,248,3,240,252,3,240,252,3,240,254,7,240,127, - 255,224,63,255,192,31,255,128,15,255,0,20,30,90,23,1, - 1,3,252,0,15,255,0,31,255,128,63,255,192,127,255,192, - 126,7,224,252,7,224,252,3,224,252,3,240,248,3,240,248, - 3,240,252,3,240,252,7,240,124,7,240,127,15,240,63,255, - 240,63,253,240,31,249,240,7,225,240,0,3,240,0,3,224, - 0,3,224,0,3,224,124,7,224,124,7,192,126,15,192,63, - 255,128,31,255,0,15,254,0,7,252,0,5,20,20,12,5, - 0,248,248,248,248,248,0,0,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=25 dx=42 dy= 0 ascent=33 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30r[7686] U8G_FONT_SECTION("u8g_font_fub30r") = { - 0,59,54,253,245,30,9,163,21,182,32,127,249,33,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--49-490-72-72-P-242-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=17 dx=49 dy= 0 ascent=36 len=140 - Font Bounding box w=72 h=65 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub35n[1697] U8G_FONT_SECTION("u8g_font_fub35n") = { - 0,72,65,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,20,18,54,32,6,17,7,14,0,31,15,128,31,159,128, - 15,159,0,7,158,0,3,252,0,129,248,16,254,247,240,255, - 255,240,255,255,240,249,249,240,1,248,0,3,252,0,7,158, - 0,15,159,0,31,143,128,31,15,128,7,14,0,29,29,116, - 49,10,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,255,255,255,248,255,255,255,248,255, - 255,255,248,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,11,12,24,15,2,250,15,224,15, - 192,31,192,31,128,31,128,63,0,63,0,62,0,126,0,124, - 0,124,0,248,0,13,6,12,17,2,9,255,248,255,248,255, - 248,255,248,255,248,255,248,7,6,6,15,5,0,254,254,254, - 254,254,254,17,39,117,21,2,253,0,15,128,0,15,0,0, - 31,0,0,31,0,0,30,0,0,62,0,0,62,0,0,62, - 0,0,124,0,0,124,0,0,124,0,0,120,0,0,248,0, - 0,248,0,0,240,0,1,240,0,1,240,0,1,240,0,3, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,128,0,31,0,0, - 31,0,0,31,0,0,62,0,0,62,0,0,62,0,0,60, - 0,0,124,0,0,124,0,0,124,0,0,248,0,0,25,35, - 140,28,2,1,1,255,128,0,7,255,224,0,15,255,240,0, - 31,255,248,0,31,255,252,0,63,129,252,0,63,0,254,0, - 127,0,126,0,126,0,126,0,126,0,63,0,126,0,63,0, - 254,0,63,0,254,0,63,0,254,0,63,0,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,128,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,0,254,0,63,0, - 254,0,63,0,126,0,63,0,126,0,63,0,126,0,127,0, - 127,0,126,0,63,0,254,0,63,129,252,0,31,255,252,0, - 31,255,248,0,15,255,240,0,7,255,224,0,1,255,128,0, - 15,35,70,28,5,0,0,254,1,254,7,254,15,254,63,254, - 255,254,255,254,254,254,252,254,240,254,192,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,25,35,140,28, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,255,255,0,63,192,255,0,63,128,63,128,63,0, - 63,128,127,0,63,128,0,0,63,128,0,0,63,128,0,0, - 63,128,0,0,127,0,0,0,127,0,0,0,255,0,0,1, - 254,0,0,3,252,0,0,7,252,0,0,15,248,0,0,31, - 240,0,0,63,224,0,0,127,192,0,1,255,0,0,3,254, - 0,0,7,252,0,0,15,240,0,0,63,224,0,0,127,128, - 0,0,255,0,0,0,255,255,255,128,255,255,255,128,255,255, - 255,128,255,255,255,128,255,255,255,128,255,255,255,128,24,35, - 105,28,2,1,3,255,128,15,255,224,31,255,240,63,255,248, - 127,255,252,127,3,252,254,1,252,254,0,252,254,0,254,0, - 0,254,0,0,254,0,1,252,0,1,252,0,15,248,0,255, - 240,0,255,192,0,255,128,0,255,224,0,255,248,0,3,252, - 0,0,254,0,0,254,0,0,126,0,0,127,0,0,127,254, - 0,127,254,0,127,254,0,254,255,0,254,127,1,252,127,255, - 252,63,255,248,31,255,240,15,255,224,3,255,128,26,35,140, - 28,1,0,0,7,252,0,0,15,252,0,0,31,252,0,0, - 31,252,0,0,63,252,0,0,63,252,0,0,127,252,0,0, - 253,252,0,0,253,252,0,1,249,252,0,1,249,252,0,3, - 241,252,0,7,241,252,0,7,225,252,0,15,193,252,0,15, - 193,252,0,31,129,252,0,63,129,252,0,63,1,252,0,126, - 1,252,0,254,1,252,0,252,1,252,0,255,255,255,192,255, - 255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,0,1,252,0,0,1,252,0,0,1,252,0,0, - 1,252,0,0,1,252,0,0,1,252,0,0,1,252,0,24, - 35,105,28,2,0,127,255,252,127,255,252,127,255,252,127,255, - 252,127,255,252,127,255,252,127,0,0,127,0,0,127,0,0, - 127,0,0,127,0,0,127,0,0,127,31,192,127,127,240,127, - 255,248,127,255,252,127,255,252,127,193,254,127,0,254,127,0, - 127,126,0,127,0,0,127,0,0,127,0,0,127,0,0,127, - 0,0,127,254,0,127,254,0,254,254,0,254,255,1,252,127, - 255,252,127,255,248,63,255,240,15,255,192,7,255,128,25,35, - 140,28,2,1,0,255,192,0,3,255,240,0,7,255,248,0, - 15,255,252,0,31,255,254,0,31,224,254,0,63,192,127,0, - 63,128,127,0,127,0,0,0,127,0,0,0,127,0,0,0, - 126,0,0,0,254,31,192,0,254,127,240,0,254,255,248,0, - 254,255,252,0,255,255,254,0,255,225,254,0,255,192,255,0, - 255,128,127,0,255,0,63,0,255,0,63,128,255,0,63,128, - 255,0,63,128,255,0,63,128,127,0,63,0,127,0,63,0, - 127,128,127,0,127,128,127,0,63,192,254,0,31,255,252,0, - 31,255,252,0,15,255,248,0,7,255,224,0,1,255,128,0, - 24,35,105,28,2,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,127,0,0,127,0,0, - 254,0,0,254,0,1,254,0,1,252,0,3,252,0,3,248, - 0,7,248,0,7,240,0,15,240,0,15,240,0,31,224,0, - 31,224,0,63,192,0,63,192,0,63,128,0,127,128,0,127, - 0,0,255,0,0,255,0,1,254,0,1,254,0,3,252,0, - 3,252,0,7,248,0,7,248,0,15,248,0,15,240,0,25, - 35,140,28,2,1,3,255,192,0,15,255,240,0,31,255,252, - 0,63,255,254,0,63,255,254,0,127,193,255,0,127,128,255, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,63,128,254,0,63,193,252,0,15,255,248, - 0,7,255,224,0,1,255,192,0,15,255,240,0,31,255,248, - 0,63,193,254,0,127,128,254,0,127,0,127,0,254,0,63, - 0,254,0,63,0,254,0,63,128,254,0,63,128,254,0,63, - 128,255,0,127,128,255,0,127,0,127,128,255,0,127,255,255, - 0,63,255,254,0,63,255,252,0,15,255,248,0,3,255,224, - 0,25,35,140,28,2,1,1,255,192,0,7,255,224,0,15, - 255,248,0,31,255,252,0,63,255,252,0,127,129,254,0,127, - 0,254,0,126,0,255,0,254,0,127,0,254,0,127,0,254, - 0,127,128,254,0,127,128,254,0,127,128,254,0,127,128,254, - 0,255,128,127,0,255,128,127,131,255,128,63,255,255,128,63, - 255,191,128,31,255,191,128,15,255,63,128,1,248,63,128,0, - 0,63,0,0,0,127,0,0,0,127,0,0,0,127,0,127, - 0,254,0,127,0,254,0,127,1,254,0,63,131,252,0,31, - 255,252,0,31,255,248,0,15,255,240,0,7,255,224,0,1, - 255,128,0,7,24,24,16,7,0,254,254,254,254,254,254,0, - 0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,254, - 254}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--58-580-72-72-P-286-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=176 - Font Bounding box w=87 h=77 x=-5 y=-15 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub42n[2270] U8G_FONT_SECTION("u8g_font_fub42n") = { - 0,87,77,251,241,42,0,0,0,0,42,58,0,43,248,42, - 0,23,23,69,37,7,20,0,130,0,3,131,128,15,131,224, - 31,199,224,15,199,224,7,199,192,3,239,128,1,239,0,0, - 254,0,248,254,62,255,255,254,255,255,254,255,255,254,254,124, - 254,128,254,2,1,239,0,3,239,128,7,239,192,7,199,192, - 15,199,224,31,131,240,7,131,192,1,131,0,35,35,175,59, - 12,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,255,255,255,255,224,255,255,255,255,224,255,255,255,255, - 224,255,255,255,255,224,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,12,15,30,18,3,248,15,240,15,240,15,224,31,224,31, - 192,31,192,63,128,63,128,63,0,127,0,126,0,126,0,124, - 0,252,0,252,0,15,8,16,19,2,11,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,8,8,8,18,6, - 0,255,255,255,255,255,255,255,255,19,46,138,25,3,253,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,248,0,1,248,0,1,248, - 0,1,240,0,3,240,0,3,240,0,3,240,0,7,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,63,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,29,44,176,33,2,255,0, - 31,192,0,0,255,248,0,3,255,252,0,7,255,255,0,15, - 255,255,128,15,255,255,128,31,240,255,192,63,192,63,192,63, - 192,63,224,63,128,31,224,127,128,31,240,127,0,31,240,127, - 0,15,240,127,0,15,240,255,0,15,240,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,127,0,15,240,127,0,15,240,127,0,15,240,127, - 0,31,240,127,128,31,240,63,128,31,224,63,192,63,224,63, - 192,63,192,31,240,255,192,15,255,255,128,15,255,255,0,7, - 255,255,0,3,255,254,0,0,255,248,0,0,31,192,0,18, - 42,126,33,6,0,0,63,192,0,127,192,0,255,192,3,255, - 192,15,255,192,63,255,192,255,255,192,255,255,192,255,255,192, - 255,63,192,254,63,192,248,63,192,224,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,0,63,192,0,63,192,0,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,29,43,172,33,2,0,0,15,240,0,0,127,254, - 0,1,255,255,0,3,255,255,128,7,255,255,192,15,255,255, - 224,31,248,63,240,31,240,31,240,31,224,15,240,63,192,7, - 248,63,192,7,248,63,192,7,248,0,0,7,248,0,0,7, - 248,0,0,15,248,0,0,15,240,0,0,31,240,0,0,31, - 240,0,0,63,224,0,0,127,224,0,0,255,192,0,1,255, - 128,0,3,255,128,0,7,255,0,0,15,254,0,0,31,252, - 0,0,63,248,0,0,127,240,0,0,255,224,0,1,255,128, - 0,3,255,0,0,15,254,0,0,31,252,0,0,63,240,0, - 0,127,224,0,0,255,192,0,0,255,255,255,248,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,255,255,255,248,28,44,176,33,3,255,0,127,192,0,3, - 255,248,0,7,255,252,0,31,255,255,0,63,255,255,0,63, - 255,255,128,127,224,255,192,127,192,127,192,255,128,63,192,255, - 0,31,224,255,0,31,224,255,0,31,224,0,0,31,224,0, - 0,31,224,0,0,31,224,0,0,63,192,0,0,127,192,0, - 3,255,128,0,127,255,0,0,127,252,0,0,127,240,0,0, - 127,248,0,0,127,254,0,0,127,255,128,0,0,255,192,0, - 0,63,224,0,0,31,224,0,0,31,224,0,0,15,240,0, - 0,15,240,0,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,31,224,255,128,31,224,127,192,63,224,127, - 224,255,192,63,255,255,128,63,255,255,0,31,255,254,0,15, - 255,252,0,3,255,248,0,0,127,192,0,31,42,168,33,1, - 0,0,1,255,192,0,1,255,192,0,3,255,192,0,7,255, - 192,0,7,255,192,0,15,255,192,0,15,255,192,0,31,255, - 192,0,63,255,192,0,63,191,192,0,127,63,192,0,255,63, - 192,0,254,63,192,1,254,63,192,1,252,63,192,3,248,63, - 192,7,248,63,192,7,240,63,192,15,240,63,192,31,224,63, - 192,31,192,63,192,63,192,63,192,63,128,63,192,127,128,63, - 192,255,0,63,192,255,0,63,192,255,255,255,254,255,255,255, - 254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255, - 254,255,255,255,254,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,29,43,172,33,2,255,127, - 255,255,224,127,255,255,224,127,255,255,224,127,255,255,224,127, - 255,255,224,127,255,255,224,127,255,255,224,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,135,248,0,127, - 159,254,0,127,255,255,128,127,255,255,192,127,255,255,192,127, - 255,255,224,127,240,63,240,127,192,31,240,127,128,15,240,127, - 128,15,248,127,0,7,248,0,0,7,248,0,0,7,248,0, - 0,7,248,0,0,7,248,0,0,7,248,0,0,7,240,255, - 0,15,240,255,0,15,240,255,0,31,240,255,128,63,224,127, - 224,255,192,127,255,255,192,63,255,255,128,31,255,255,0,15, - 255,252,0,3,255,248,0,0,127,192,0,29,44,176,33,2, - 255,0,15,240,0,0,127,252,0,0,255,255,0,3,255,255, - 128,7,255,255,192,7,255,255,224,15,252,63,224,31,240,15, - 240,31,224,15,240,63,192,7,248,63,192,7,248,63,128,0, - 0,127,128,0,0,127,128,0,0,127,128,0,0,127,0,0, - 0,255,3,248,0,255,31,254,0,255,63,255,0,255,127,255, - 128,255,255,255,192,255,255,255,224,255,248,63,240,255,224,31, - 240,255,192,15,240,255,192,15,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,127,128,7, - 248,127,128,7,248,127,128,7,240,127,192,15,240,63,192,15, - 240,63,224,31,224,31,248,63,224,31,255,255,192,15,255,255, - 128,7,255,255,0,3,255,254,0,0,255,248,0,0,63,192, - 0,28,42,168,33,3,0,255,255,255,240,255,255,255,240,255, - 255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255, - 255,255,240,0,0,15,240,0,0,15,240,0,0,31,240,0, - 0,31,224,0,0,63,224,0,0,63,192,0,0,127,192,0, - 0,127,192,0,0,255,128,0,0,255,128,0,1,255,0,0, - 1,255,0,0,1,254,0,0,3,254,0,0,3,254,0,0, - 7,252,0,0,7,252,0,0,15,248,0,0,15,248,0,0, - 31,248,0,0,31,240,0,0,31,240,0,0,63,224,0,0, - 63,224,0,0,127,192,0,0,127,192,0,0,255,192,0,0, - 255,128,0,1,255,128,0,1,255,0,0,3,255,0,0,3, - 255,0,0,3,254,0,0,7,254,0,0,7,252,0,0,29, - 44,176,33,2,255,0,63,240,0,1,255,254,0,7,255,255, - 128,15,255,255,192,31,255,255,224,63,255,255,240,63,248,127, - 240,127,224,31,240,127,224,31,248,127,192,15,248,127,192,15, - 248,127,192,15,248,127,192,15,248,127,192,15,248,63,224,31, - 240,63,224,31,240,31,248,127,224,15,255,255,192,7,255,255, - 0,1,255,252,0,0,255,248,0,3,255,254,0,15,255,255, - 128,31,255,255,192,63,240,63,224,127,224,31,224,127,192,15, - 240,127,192,15,240,255,128,7,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,255,192,15, - 248,255,192,15,248,127,224,31,240,127,240,63,240,127,255,255, - 224,63,255,255,224,31,255,255,192,15,255,255,128,3,255,254, - 0,0,127,240,0,29,44,176,33,2,255,0,31,192,0,0, - 255,248,0,3,255,254,0,7,255,255,0,15,255,255,128,31, - 255,255,128,63,224,255,192,63,192,63,224,127,128,31,224,127, - 128,31,224,127,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,128,31,248,127,128,31,248,127,192,63,248,127, - 224,255,248,63,255,255,248,31,255,255,248,31,255,247,248,15, - 255,231,248,3,255,199,248,0,254,7,240,0,0,7,240,0, - 0,15,240,0,0,15,240,0,0,15,240,0,0,15,224,127, - 128,31,224,127,128,31,224,63,128,63,192,63,192,127,192,63, - 224,255,128,31,255,255,128,15,255,255,0,7,255,254,0,3, - 255,252,0,1,255,240,0,0,63,192,0,8,29,29,19,8, - 0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--68-680-72-72-P-335-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=255 - Font Bounding box w=100 h=91 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub49n[3148] U8G_FONT_SECTION("u8g_font_fub49n") = { - 0,100,91,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,27,108,43,8,23,0,64,64,0,1,192,112,0,7, - 224,252,0,15,224,254,0,7,241,252,0,7,241,252,0,3, - 241,248,0,1,251,240,0,0,251,224,0,0,127,192,0,224, - 127,192,224,255,191,191,224,255,255,255,224,255,255,255,224,255, - 255,255,224,255,63,159,224,192,127,192,96,0,123,192,0,0, - 251,224,0,1,251,240,0,3,241,248,0,7,241,252,0,15, - 241,252,0,15,224,254,0,7,224,252,0,1,192,112,0,0, - 64,64,0,41,41,246,69,14,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,255,255,255,255,255,128,255,255,255, - 255,255,128,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,15, - 17,34,21,3,247,7,254,7,252,7,252,7,248,15,248,15, - 240,15,240,31,224,31,224,31,192,63,192,63,128,63,128,127, - 0,127,0,126,0,254,0,17,9,27,23,3,13,255,255,128, - 255,255,128,255,255,128,255,255,128,255,255,128,255,255,128,255, - 255,128,255,255,128,255,255,128,9,9,18,21,7,0,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 23,54,162,29,3,252,0,0,254,0,0,254,0,0,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 248,0,7,240,0,7,240,0,7,240,0,7,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,192,0, - 63,128,0,63,128,0,63,128,0,63,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,254,0,0,254,0,1,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 240,0,7,240,0,7,240,0,7,240,0,15,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,128,0, - 63,128,0,63,128,0,63,0,0,127,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,34,51,255,39,2,255,0,7, - 248,0,0,0,63,255,0,0,0,255,255,192,0,1,255,255, - 224,0,3,255,255,240,0,7,255,255,248,0,15,255,255,252, - 0,15,254,31,252,0,31,248,7,254,0,31,240,3,254,0, - 63,240,3,255,0,63,224,1,255,0,63,224,1,255,0,127, - 224,1,255,128,127,192,0,255,128,127,192,0,255,128,127,192, - 0,255,128,255,192,0,255,128,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,192,0,255,192,255,192,0,255,192,255,192,0,255,192, - 255,192,0,255,192,255,192,0,255,192,255,192,0,255,192,255, - 192,0,255,192,255,192,0,255,192,255,192,0,255,192,255,192, - 0,255,192,255,192,0,255,128,127,192,0,255,128,127,192,0, - 255,128,127,192,0,255,128,127,224,1,255,128,63,224,1,255, - 0,63,224,1,255,0,63,240,3,255,0,31,240,3,254,0, - 31,248,7,254,0,15,254,31,252,0,15,255,255,252,0,7, - 255,255,248,0,3,255,255,240,0,1,255,255,224,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,20,49,147, - 39,7,0,0,31,240,0,63,240,0,127,240,1,255,240,3, - 255,240,15,255,240,63,255,240,255,255,240,255,255,240,255,255, - 240,255,223,240,255,159,240,254,31,240,248,31,240,224,31,240, - 128,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,34,50,250,39,2,0,0,3,254,0, - 0,0,31,255,192,0,0,127,255,240,0,0,255,255,248,0, - 3,255,255,254,0,7,255,255,254,0,7,255,255,255,0,15, - 255,255,255,128,31,255,7,255,128,31,252,1,255,192,31,248, - 0,255,192,63,248,0,255,192,63,240,0,127,192,63,240,0, - 127,192,63,240,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,255,192,0,0,0,255,128,0,0,1,255,128, - 0,0,1,255,128,0,0,3,255,0,0,0,7,255,0,0, - 0,15,254,0,0,0,31,254,0,0,0,63,252,0,0,0, - 127,248,0,0,0,255,240,0,0,1,255,224,0,0,3,255, - 192,0,0,7,255,128,0,0,15,255,0,0,0,31,254,0, - 0,0,63,252,0,0,0,255,248,0,0,1,255,224,0,0, - 3,255,192,0,0,7,255,128,0,0,31,254,0,0,0,63, - 252,0,0,0,127,248,0,0,0,255,224,0,0,0,255,255, - 255,255,192,255,255,255,255,192,255,255,255,255,192,255,255,255, - 255,192,255,255,255,255,192,255,255,255,255,192,255,255,255,255, - 192,255,255,255,255,192,32,51,204,39,3,255,0,31,248,0, - 0,255,255,0,3,255,255,128,7,255,255,224,15,255,255,240, - 31,255,255,248,63,255,255,248,127,255,255,252,127,248,31,252, - 127,224,15,254,255,192,7,254,255,192,3,254,255,128,3,254, - 255,128,3,254,0,0,3,254,0,0,3,254,0,0,3,254, - 0,0,7,254,0,0,15,252,0,0,127,252,0,63,255,248, - 0,63,255,224,0,63,255,192,0,63,254,0,0,63,255,0, - 0,63,255,192,0,63,255,240,0,63,255,248,0,0,63,252, - 0,0,7,254,0,0,3,254,0,0,3,255,0,0,1,255, - 0,0,1,255,0,0,1,255,0,0,1,255,255,128,1,255, - 255,128,1,255,255,128,1,255,255,192,3,255,255,192,3,254, - 127,224,7,254,127,224,15,254,127,248,31,252,63,255,255,248, - 63,255,255,240,31,255,255,240,15,255,255,192,3,255,255,128, - 1,255,254,0,0,31,240,0,36,50,250,39,2,0,0,0, - 63,252,0,0,0,127,252,0,0,0,127,252,0,0,0,255, - 252,0,0,0,255,252,0,0,1,255,252,0,0,3,255,252, - 0,0,3,255,252,0,0,7,255,252,0,0,7,255,252,0, - 0,15,247,252,0,0,31,247,252,0,0,31,231,252,0,0, - 63,199,252,0,0,127,199,252,0,0,127,135,252,0,0,255, - 135,252,0,0,255,7,252,0,1,255,7,252,0,3,254,7, - 252,0,3,252,7,252,0,7,252,7,252,0,7,248,7,252, - 0,15,248,7,252,0,31,240,7,252,0,31,240,7,252,0, - 63,224,7,252,0,63,192,7,252,0,127,192,7,252,0,255, - 128,7,252,0,255,128,7,252,0,255,255,255,255,240,255,255, - 255,255,240,255,255,255,255,240,255,255,255,255,240,255,255,255, - 255,240,255,255,255,255,240,255,255,255,255,240,255,255,255,255, - 240,0,0,7,252,0,0,0,7,252,0,0,0,7,252,0, - 0,0,7,252,0,0,0,7,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,252,0,0,0,7,252,0,0,0, - 7,252,0,0,0,7,252,0,33,50,250,39,3,255,127,255, - 255,254,0,127,255,255,254,0,127,255,255,254,0,127,255,255, - 254,0,127,255,255,254,0,127,255,255,254,0,127,255,255,254, - 0,127,255,255,254,0,127,192,0,0,0,127,192,0,0,0, - 127,192,0,0,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,127,192,0,0,0,127,192,0,0,0,127,192, - 0,0,0,127,193,255,0,0,127,199,255,192,0,127,223,255, - 240,0,127,255,255,248,0,127,255,255,252,0,127,255,255,254, - 0,127,255,255,254,0,127,252,15,255,0,127,240,3,255,0, - 127,224,3,255,0,127,192,1,255,128,127,192,1,255,128,0, - 0,0,255,128,0,0,0,255,128,0,0,0,255,128,0,0, - 0,255,128,0,0,0,255,128,0,0,0,255,128,0,0,0, - 255,128,0,0,0,255,128,255,128,1,255,128,255,128,1,255, - 0,255,192,3,255,0,255,192,3,254,0,127,224,15,254,0, - 127,248,63,252,0,127,255,255,252,0,63,255,255,248,0,31, - 255,255,240,0,15,255,255,224,0,7,255,255,128,0,1,255, - 254,0,0,0,63,240,0,0,34,51,255,39,2,255,0,3, - 252,0,0,0,31,255,128,0,0,127,255,224,0,0,255,255, - 240,0,1,255,255,248,0,3,255,255,252,0,7,255,255,254, - 0,7,255,255,254,0,15,255,7,255,0,31,252,3,255,0, - 31,248,1,255,128,31,248,0,255,128,63,240,0,255,128,63, - 224,0,0,0,63,224,0,0,0,127,224,0,0,0,127,192, - 0,0,0,127,192,0,0,0,127,192,127,0,0,127,195,255, - 224,0,255,199,255,240,0,255,207,255,248,0,255,223,255,252, - 0,255,191,255,254,0,255,255,255,255,0,255,254,15,255,0, - 255,248,3,255,128,255,248,3,255,128,255,240,1,255,128,255, - 240,1,255,192,255,224,0,255,192,255,224,0,255,192,255,224, - 0,255,192,255,224,0,255,192,255,224,0,255,192,127,224,0, - 255,192,127,224,0,255,192,127,224,0,255,192,127,224,0,255, - 128,63,240,1,255,128,63,240,1,255,128,63,248,3,255,0, - 31,248,3,255,0,31,254,15,254,0,15,255,255,254,0,7, - 255,255,252,0,3,255,255,248,0,1,255,255,240,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,33,49,245, - 39,3,0,255,255,255,255,128,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,255,255,255,255,128,0,0,0,255,128, - 0,0,1,255,128,0,0,1,255,128,0,0,3,255,0,0, - 0,3,255,0,0,0,7,254,0,0,0,7,254,0,0,0, - 15,254,0,0,0,15,252,0,0,0,31,252,0,0,0,31, - 248,0,0,0,31,248,0,0,0,63,240,0,0,0,63,240, - 0,0,0,127,240,0,0,0,127,224,0,0,0,255,224,0, - 0,0,255,192,0,0,1,255,192,0,0,1,255,192,0,0, - 3,255,128,0,0,3,255,128,0,0,3,255,0,0,0,7, - 255,0,0,0,7,254,0,0,0,15,254,0,0,0,15,254, - 0,0,0,31,252,0,0,0,31,252,0,0,0,63,248,0, - 0,0,63,248,0,0,0,63,248,0,0,0,127,240,0,0, - 0,127,240,0,0,0,255,224,0,0,0,255,224,0,0,1, - 255,192,0,0,1,255,192,0,0,3,255,192,0,0,3,255, - 128,0,0,7,255,128,0,0,34,51,255,39,2,255,0,15, - 252,0,0,0,255,255,192,0,3,255,255,240,0,7,255,255, - 248,0,15,255,255,252,0,31,255,255,254,0,63,255,255,255, - 0,63,255,255,255,0,63,252,15,255,0,127,248,7,255,128, - 127,240,3,255,128,127,224,1,255,128,127,224,1,255,128,127, - 224,1,255,128,127,224,1,255,128,127,224,1,255,128,127,224, - 1,255,128,63,240,3,255,0,63,248,7,255,0,31,252,15, - 254,0,15,255,255,252,0,7,255,255,240,0,1,255,255,192, - 0,0,63,255,0,0,0,255,255,128,0,3,255,255,224,0, - 7,255,255,248,0,31,255,255,252,0,63,252,15,254,0,63, - 248,7,255,0,127,240,3,255,0,127,224,1,255,128,127,224, - 1,255,128,255,192,0,255,192,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,224,1,255,192,255,224,1,255,192,255,240,3,255,192, - 127,240,7,255,128,127,252,15,255,128,63,255,255,255,0,63, - 255,255,255,0,31,255,255,254,0,15,255,255,252,0,3,255, - 255,240,0,0,255,255,192,0,0,15,252,0,0,34,51,255, - 39,2,255,0,7,248,0,0,0,63,255,0,0,0,255,255, - 192,0,3,255,255,224,0,7,255,255,240,0,15,255,255,248, - 0,31,255,255,252,0,31,255,255,254,0,63,248,31,254,0, - 63,240,7,255,0,127,224,7,255,0,127,192,3,255,0,127, - 192,3,255,128,255,192,1,255,128,255,128,1,255,128,255,128, - 1,255,128,255,128,1,255,192,255,128,1,255,192,255,128,1, - 255,192,255,192,1,255,192,255,192,3,255,192,255,192,3,255, - 192,127,224,7,255,192,127,240,7,255,192,127,248,31,255,192, - 63,255,255,255,192,31,255,255,127,192,31,255,254,255,192,15, - 255,252,255,192,3,255,252,255,192,1,255,240,255,192,0,127, - 192,255,128,0,0,0,255,128,0,0,0,255,128,0,0,1, - 255,128,0,0,1,255,128,0,0,1,255,0,0,0,1,255, - 0,127,192,3,255,0,127,192,3,254,0,127,224,7,254,0, - 63,224,15,254,0,63,240,15,252,0,31,248,63,252,0,31, - 255,255,248,0,15,255,255,240,0,7,255,255,224,0,3,255, - 255,192,0,1,255,255,128,0,0,127,254,0,0,0,15,240, - 0,0,9,34,68,21,9,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y=10 dx=15 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11[3712] U8G_FONT_SECTION("u8g_font_fur11") = { - 0,20,20,255,252,11,2,81,4,211,32,255,253,16,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,5,0,0,1,11,11,5,2,253,128,0,0, - 128,128,128,128,128,128,128,128,6,12,12,8,1,254,8,8, - 120,220,148,144,160,164,236,120,64,64,7,11,11,9,1,0, - 60,102,64,64,248,64,64,64,64,64,254,8,9,9,10,1, - 2,129,90,36,66,66,66,36,90,129,8,11,11,9,0,0, - 65,99,34,231,20,28,255,8,8,8,8,1,14,14,6,3, - 253,128,128,128,128,128,128,0,0,128,128,128,128,128,128,5, - 14,14,7,1,253,120,136,128,192,112,216,136,152,240,48,24, - 8,24,240,4,1,1,4,0,10,144,11,11,22,13,1,0, - 31,0,127,128,115,64,225,96,160,32,160,32,161,32,179,96, - 94,64,96,128,31,0,6,8,8,6,0,3,56,72,120,72, - 88,104,0,252,6,6,6,8,1,1,36,72,216,216,72,36, - 8,3,3,10,1,4,255,1,1,255,11,11,22,13,1,0, - 31,0,127,128,81,64,209,96,158,32,147,32,145,32,209,96, - 64,64,97,128,31,0,4,1,1,4,0,10,240,3,4,4, - 5,1,7,224,160,160,224,9,10,20,15,3,0,8,0,8, - 0,8,0,255,128,8,0,8,0,8,0,0,0,0,0,255, - 128,4,6,6,6,1,5,112,144,48,96,192,240,5,6,6, - 6,0,5,120,200,24,48,136,112,3,3,3,3,1,9,96, - 64,128,255,7,14,14,9,1,253,126,244,244,244,244,116,20, - 20,20,20,20,20,20,20,1,2,2,4,2,4,128,128,4, - 3,3,5,1,253,48,16,224,3,6,6,5,1,5,96,160, - 32,32,32,32,5,8,8,7,1,3,112,216,136,136,216,112, - 0,248,6,6,6,8,1,1,216,72,36,36,72,216,10,11, - 22,12,1,0,97,0,162,0,34,0,36,0,36,0,41,128, - 9,128,18,128,51,192,32,128,96,128,11,11,22,13,1,0, - 96,128,161,0,34,0,34,0,36,0,37,192,9,32,24,96, - 16,192,33,128,97,224,11,11,22,12,0,0,120,128,9,128, - 49,0,27,0,138,0,116,192,4,192,9,64,11,224,16,64, - 48,64,6,11,11,8,1,253,16,0,16,16,48,96,192,128, - 132,236,120,11,16,32,11,0,0,24,0,8,0,4,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,16,32,11,0,0,3, - 0,2,0,4,0,0,0,0,0,6,0,14,0,10,0,27, - 0,25,0,49,128,49,128,63,192,96,192,64,64,192,96,11, - 16,32,11,0,0,4,0,14,0,9,0,0,0,0,0,6, - 0,14,0,10,0,27,0,25,0,49,128,49,128,63,192,96, - 192,64,64,192,96,11,15,30,11,0,0,13,0,22,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,14,28,11,0,0,9, - 0,0,0,0,0,6,0,14,0,11,0,27,0,25,0,17, - 128,48,128,63,192,96,192,64,96,192,96,11,16,32,11,0, - 0,14,0,10,0,14,0,0,0,0,0,4,0,12,0,10, - 0,10,0,17,0,17,0,49,128,63,128,96,192,64,64,192, - 96,13,11,22,14,0,0,3,248,5,0,13,0,13,0,25, - 0,25,248,49,0,63,0,97,0,65,0,193,248,8,15,15, - 10,1,252,62,97,193,128,128,128,128,128,193,67,62,12,6, - 2,28,6,16,16,9,1,0,64,32,16,0,0,252,128,128, - 128,128,252,128,128,128,128,252,6,16,16,9,1,0,8,16, - 16,0,0,252,128,128,128,128,252,128,128,128,128,252,6,16, - 16,9,1,0,48,48,72,0,0,252,128,128,128,128,252,128, - 128,128,128,252,6,15,15,8,1,0,72,0,0,0,252,128, - 128,128,128,252,128,128,128,128,252,3,16,16,3,255,0,192, - 64,32,0,0,32,32,32,32,32,32,32,32,32,32,32,3, - 16,16,3,1,0,96,192,128,0,0,128,128,128,128,128,128, - 128,128,128,128,128,3,16,16,3,0,0,64,224,160,0,0, - 64,64,64,64,64,64,64,64,64,64,64,4,14,14,4,0, - 0,144,0,0,64,64,64,64,64,64,64,64,64,64,64,10, - 11,22,11,0,0,62,0,33,128,32,128,32,192,32,64,248, - 64,32,64,32,192,32,128,33,128,62,0,8,15,15,10,1, - 0,52,44,0,0,193,225,225,177,177,153,137,141,133,135,131, - 9,16,32,11,1,0,48,0,16,0,8,0,0,0,0,0, - 62,0,99,0,193,128,129,128,128,128,128,128,128,128,129,128, - 193,0,99,0,62,0,9,16,32,11,1,0,4,0,12,0, - 8,0,0,0,0,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,9,16,32,11, - 1,0,8,0,28,0,20,0,0,0,0,0,62,0,99,0, - 193,128,129,128,128,128,128,128,128,128,129,128,193,0,99,0, - 62,0,9,15,30,11,1,0,24,0,44,0,0,0,0,0, - 62,0,99,0,193,128,128,128,128,128,128,128,128,128,129,128, - 193,0,119,0,62,0,9,15,30,11,1,0,18,0,0,0, - 0,0,0,0,62,0,99,0,193,128,129,128,128,128,128,128, - 128,128,129,128,193,0,99,0,62,0,7,7,7,15,4,1, - 130,68,40,16,40,68,130,9,13,26,11,1,255,0,128,63, - 0,99,0,195,128,134,128,140,128,136,128,152,128,177,128,225, - 0,99,0,254,0,128,0,8,16,16,10,1,0,32,16,24, - 0,0,129,129,129,129,129,129,129,129,195,230,60,8,16,16, - 10,1,0,12,8,16,0,0,129,129,129,129,129,129,129,129, - 195,230,60,8,16,16,10,1,0,24,24,36,0,0,129,129, - 129,129,129,129,129,129,195,230,60,8,15,15,10,1,0,36, - 0,0,0,129,129,129,129,129,129,129,129,131,194,60,9,16, - 32,10,1,0,6,0,4,0,8,0,0,0,0,0,193,128, - 65,0,99,0,38,0,52,0,28,0,8,0,8,0,8,0, - 8,0,8,0,7,11,11,9,1,0,128,128,252,134,130,130, - 134,252,128,128,128,7,11,11,8,1,0,120,204,132,140,144, - 144,156,134,130,178,156,6,12,12,8,1,0,32,16,16,0, - 120,204,4,124,196,132,140,116,6,13,13,8,1,0,24,16, - 48,32,0,120,204,4,124,196,132,140,116,6,12,12,8,1, - 0,48,104,72,0,120,204,4,124,196,132,140,116,6,11,11, - 8,1,0,120,0,0,120,204,4,124,196,132,140,116,6,11, - 11,8,1,0,72,0,0,120,204,4,124,196,132,140,116,6, - 13,13,8,1,0,48,72,72,48,0,120,196,4,124,196,132, - 140,116,12,8,16,13,1,0,251,192,138,32,4,48,127,240, - 196,0,140,48,202,96,113,192,6,12,12,8,1,252,120,204, - 132,128,128,132,204,120,48,24,8,48,6,13,13,8,1,0, - 64,32,32,16,0,120,196,132,252,128,132,204,120,6,13,13, - 8,1,0,8,16,16,32,0,120,196,132,252,128,132,204,120, - 6,12,12,8,1,0,48,104,72,0,120,196,132,252,128,132, - 204,120,6,11,11,8,1,0,72,0,0,120,204,132,252,128, - 132,204,120,2,12,12,3,0,0,128,64,64,0,64,64,64, - 64,64,64,64,64,3,12,12,3,0,0,32,64,128,0,64, - 64,64,64,64,64,64,64,5,12,12,3,255,0,112,80,136, - 0,32,32,32,32,32,32,32,32,4,11,11,4,0,0,144, - 0,0,64,64,64,64,64,64,64,64,7,11,11,9,1,0, - 104,112,136,124,198,134,130,130,134,196,120,6,11,11,8,1, - 0,120,0,0,184,204,132,132,132,132,132,132,7,13,13,9, - 1,0,96,32,16,16,0,120,196,134,130,130,134,196,120,7, - 13,13,9,1,0,12,24,16,32,0,120,196,134,130,130,134, - 196,120,7,12,12,9,1,0,56,40,68,0,120,196,134,130, - 130,134,196,120,7,11,11,9,1,0,120,0,0,120,196,134, - 130,130,134,196,120,7,11,11,9,1,0,72,0,0,120,196, - 134,130,130,134,196,120,9,7,14,15,3,1,8,0,8,0, - 0,0,255,128,0,0,8,0,8,0,8,10,10,9,0,255, - 1,62,98,71,73,89,83,98,124,192,6,13,13,8,1,0, - 64,32,32,16,0,132,132,132,132,132,132,204,116,6,13,13, - 8,1,0,24,16,48,32,0,132,132,132,132,132,132,204,116, - 6,12,12,8,1,0,48,80,72,0,132,132,132,132,132,132, - 204,116,6,11,11,8,1,0,72,0,0,132,132,132,132,132, - 132,204,116,8,15,15,8,0,253,4,8,16,0,195,66,102, - 38,52,60,24,24,24,80,112,7,14,14,9,1,253,128,128, - 128,188,198,134,130,130,134,198,188,128,128,128,8,14,14,8, - 0,253,36,0,0,195,66,102,36,36,60,24,24,24,16,48 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=15 dy= 0 ascent=11 len=18 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11n[279] U8G_FONT_SECTION("u8g_font_fur11n") = { - 0,20,20,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,72,48,252,48,120,9,9,18,15, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,192,192,128,128,4,1, - 1,6,1,3,240,1,2,2,4,2,0,128,128,4,12,12, - 6,1,255,16,16,16,32,32,32,64,64,64,64,128,128,6, - 11,11,8,1,0,120,200,140,132,132,132,132,132,140,200,120, - 4,11,11,8,2,0,48,112,208,16,16,16,16,16,16,16, - 16,6,11,11,8,1,0,120,204,196,4,12,24,16,48,96, - 192,252,7,11,11,8,0,0,60,70,194,6,24,4,6,2, - 194,70,60,7,11,11,8,1,0,12,28,20,36,100,68,196, - 254,4,4,4,6,11,11,8,1,0,248,128,128,184,204,132, - 4,4,140,200,112,7,11,11,8,1,0,60,198,134,128,188, - 198,130,130,130,198,60,7,11,11,8,1,0,254,6,6,4, - 12,8,24,24,16,48,48,6,11,11,8,1,0,120,204,132, - 204,112,200,132,132,132,204,120,7,11,11,8,1,0,124,198, - 130,130,198,122,2,6,134,204,120,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y= 9 dx=15 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11r[1729] U8G_FONT_SECTION("u8g_font_fur11r") = { - 0,20,20,255,252,11,2,81,4,211,32,127,253,13,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=13 dx=19 dy= 0 ascent=21 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14[5349] U8G_FONT_SECTION("u8g_font_fur14") = { - 0,26,26,255,251,14,3,59,6,250,32,255,252,21,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,0,2, - 14,14,7,3,252,192,192,0,0,192,192,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,2,4,60,102,203,200,200, - 208,208,211,102,60,32,64,10,14,28,11,1,0,31,0,49, - 128,96,192,96,0,96,0,252,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,255,128,10,10,20,12,1,3,128, - 64,94,128,51,0,65,128,64,128,64,128,64,128,33,0,94, - 128,128,64,10,14,28,12,1,0,192,192,96,128,97,128,49, - 0,243,192,27,0,30,0,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,1,18,18,7,3,252,128,128,128,128,128, - 128,128,128,0,0,128,128,128,128,128,128,128,128,7,17,17, - 9,1,253,60,100,192,192,96,56,124,198,198,206,124,60,14, - 6,6,140,248,6,1,1,6,0,13,204,14,14,28,16,1, - 0,15,192,28,224,39,144,76,200,216,108,152,4,152,4,152, - 4,152,100,140,204,71,200,32,16,16,32,15,192,7,10,10, - 8,1,4,120,204,4,124,196,132,124,0,0,254,7,8,8, - 11,2,1,38,100,204,216,152,204,100,38,10,5,10,12,1, - 3,255,192,0,64,0,64,0,64,0,64,255,14,14,28,16, - 1,0,15,192,28,224,47,208,76,104,204,108,140,100,143,132, - 140,68,140,100,204,108,76,104,32,16,28,224,15,192,6,1, - 1,6,0,13,252,4,5,5,6,1,9,96,240,144,144,96, - 11,12,24,19,4,0,6,0,6,0,6,0,6,0,255,224, - 6,0,6,0,6,0,0,0,0,0,0,0,255,224,6,8, - 8,7,1,6,120,220,12,12,24,48,192,252,6,8,8,7, - 1,6,120,204,12,48,24,140,204,120,4,4,4,4,1,12, - 48,96,64,192,255,9,18,36,11,1,252,63,128,121,0,249, - 0,249,0,249,0,249,0,121,0,25,0,9,0,9,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,2, - 2,2,5,2,5,192,192,6,5,5,5,0,251,64,120,12, - 12,248,4,7,7,6,1,7,112,240,48,48,48,48,48,6, - 10,10,8,1,4,120,72,132,132,132,132,204,120,0,252,7, - 8,8,11,2,1,152,204,100,102,102,100,204,152,13,14,28, - 15,1,0,112,64,240,192,48,128,49,128,49,0,51,0,50, - 48,54,112,12,112,8,176,25,176,17,248,48,48,32,48,13, - 14,28,15,1,0,112,64,240,192,48,128,49,128,49,0,50, - 0,50,112,52,216,12,24,8,24,24,48,16,96,48,192,32, - 248,14,14,28,16,1,0,120,48,204,32,12,96,48,192,12, - 128,141,128,121,24,3,56,2,120,4,88,12,152,8,252,24, - 24,16,24,8,14,14,10,1,252,12,12,0,12,12,12,24, - 48,96,192,192,193,127,62,14,20,40,14,0,0,12,0,6, - 0,2,0,3,0,0,0,0,0,3,0,7,128,7,128,4, - 192,12,192,12,192,24,96,24,96,31,240,63,240,48,24,96, - 24,96,24,192,12,14,20,40,14,0,0,0,192,0,128,1, - 128,1,0,0,0,0,0,3,0,7,128,7,128,4,192,12, - 192,12,192,24,96,24,96,31,240,63,240,48,24,96,24,96, - 24,192,12,14,20,40,14,0,0,3,0,3,128,6,128,4, - 192,0,0,0,0,3,0,7,128,7,128,4,192,12,192,12, - 192,24,96,24,96,31,240,63,240,48,24,96,24,96,24,192, - 12,14,18,36,14,0,0,7,192,0,0,0,0,0,0,3, - 0,7,128,7,128,4,192,12,192,12,192,24,96,24,96,31, - 240,63,240,48,24,96,24,96,24,192,12,13,18,36,15,1, - 0,12,192,0,0,0,0,0,0,7,0,7,0,13,128,13, - 128,12,192,24,192,24,192,48,96,63,224,63,240,96,48,96, - 24,192,24,192,24,13,21,42,14,1,0,6,0,13,0,9, - 0,9,0,6,0,0,0,0,0,6,0,7,0,15,0,13, - 0,25,128,25,128,16,192,48,192,63,224,127,224,96,32,192, - 48,192,48,192,24,17,14,42,19,1,0,1,255,128,3,192, - 0,2,192,0,6,192,0,14,192,0,12,192,0,28,255,128, - 24,192,0,56,192,0,63,192,0,96,192,0,96,192,0,192, - 192,0,192,255,128,11,18,36,13,1,252,31,128,57,192,96, - 96,64,96,192,0,192,0,192,0,192,0,192,0,192,0,64, - 96,96,96,49,192,31,0,4,0,7,0,1,128,15,128,9, - 20,40,12,2,0,96,0,48,0,24,0,8,0,0,0,0, - 0,255,128,192,0,192,0,192,0,192,0,192,0,255,128,192, - 0,192,0,192,0,192,0,192,0,192,0,255,128,9,20,40, - 12,2,0,6,0,4,0,12,0,24,0,0,0,0,0,255, - 128,192,0,192,0,192,0,192,0,192,0,255,128,192,0,192, - 0,192,0,192,0,192,0,192,0,255,128,9,20,40,12,2, - 0,24,0,28,0,52,0,38,0,0,0,0,0,255,128,192, - 0,192,0,192,0,192,0,192,0,255,128,192,0,192,0,192, - 0,192,0,192,0,192,0,255,128,9,18,36,12,2,0,102, - 0,0,0,0,0,0,0,255,128,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,255,128,4,20,20,5,0,0,192,96,32,48,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,4,20,20, - 5,2,0,48,96,64,128,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,5,20,20,5,0,0,48,112,88, - 200,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,6,18,18,6,0,0,204,0,0,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,13,14,28,14,0,0,127, - 128,97,224,96,112,96,48,96,16,96,24,254,24,96,24,96, - 24,96,16,96,48,96,96,97,224,127,128,11,18,36,14,2, - 0,31,0,0,0,0,0,0,0,224,96,224,96,240,96,248, - 96,216,96,220,96,204,96,198,96,198,96,195,96,195,96,193, - 224,193,224,192,224,12,20,40,14,1,0,24,0,12,0,6, - 0,2,0,0,0,0,0,31,128,57,192,96,96,64,32,192, - 48,192,48,192,48,192,48,192,48,192,48,64,32,96,96,57, - 192,15,0,12,20,40,14,1,0,1,128,3,0,6,0,4, - 0,0,0,0,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,12,20,40,14,1,0,6,0,15,0,9,0,16,128,0, - 0,0,0,31,128,57,192,96,96,64,32,192,48,192,48,192, - 48,192,48,192,48,192,48,64,32,96,96,57,192,15,0,12, - 19,38,14,1,0,12,128,31,0,0,0,0,0,0,0,31, - 128,57,192,96,96,64,32,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,112,224,63,192,15,0,12,18,36,14,1, - 0,13,128,0,0,0,0,0,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,0,11,10,20,19,4,1,192,96,96,192,49, - 128,27,0,14,0,14,0,27,0,49,128,96,192,64,96,12, - 16,32,14,1,255,0,48,31,224,56,224,96,224,65,176,193, - 176,195,48,198,48,198,48,204,48,220,48,88,32,112,96,57, - 192,127,0,192,0,11,20,40,15,2,0,24,0,8,0,4, - 0,6,0,0,0,0,0,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, - 192,31,0,11,20,40,15,2,0,3,0,2,0,4,0,12, - 0,0,0,0,0,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,96,192,127,192,31, - 0,11,20,40,15,2,0,14,0,14,0,27,0,17,0,0, - 0,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, - 18,36,15,2,0,25,128,0,0,0,0,0,0,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,96,192,113,192,31,0,12,20,40,12,0,0,1, - 128,3,0,2,0,4,0,0,0,0,0,224,112,96,96,112, - 192,48,192,25,128,25,128,15,0,14,0,6,0,6,0,6, - 0,6,0,6,0,6,0,9,14,28,12,2,0,192,0,192, - 0,192,0,254,0,195,0,193,128,193,128,193,128,195,128,254, - 0,192,0,192,0,192,0,192,0,10,14,28,11,1,0,62, - 0,103,0,195,0,195,0,198,0,204,0,204,0,206,0,199, - 128,193,128,192,192,216,192,220,128,199,128,8,15,15,10,1, - 0,48,24,8,0,0,62,103,195,3,63,99,195,195,231,123, - 8,16,16,10,1,0,6,12,24,16,0,0,62,103,195,3, - 63,99,195,195,231,123,8,16,16,10,1,0,24,28,36,38, - 0,0,62,103,195,3,63,99,195,195,231,123,8,14,14,10, - 1,0,62,0,0,0,62,103,195,3,63,115,195,195,231,123, - 8,14,14,10,1,0,102,0,0,0,62,103,195,3,63,99, - 195,195,231,123,8,16,16,10,1,0,28,34,34,28,0,0, - 62,99,193,1,63,113,193,193,231,61,16,10,20,18,1,0, - 62,124,227,198,193,131,1,131,63,255,225,128,193,128,195,131, - 230,238,124,60,8,14,14,10,1,252,62,103,195,192,192,192, - 192,195,102,60,16,28,6,62,9,16,32,11,1,0,48,0, - 48,0,24,0,8,0,0,0,0,0,62,0,99,0,193,0, - 193,128,255,128,192,0,192,0,67,0,103,0,62,0,9,16, - 32,11,1,0,6,0,12,0,8,0,24,0,0,0,0,0, - 62,0,99,0,193,0,193,128,255,128,192,0,192,0,67,0, - 103,0,62,0,9,16,32,11,1,0,24,0,28,0,52,0, - 34,0,0,0,0,0,62,0,99,0,193,0,193,128,255,128, - 192,0,192,0,67,0,103,0,62,0,9,14,28,11,1,0, - 102,0,0,0,0,0,0,0,62,0,99,0,193,0,193,128, - 255,128,192,0,192,0,67,0,103,0,62,0,3,15,15,4, - 0,0,128,192,96,32,0,96,96,96,96,96,96,96,96,96, - 96,3,15,15,4,1,0,96,64,192,128,0,192,192,192,192, - 192,192,192,192,192,192,6,15,15,4,255,0,48,120,72,132, - 0,48,48,48,48,48,48,48,48,48,48,6,14,14,5,0, - 0,204,0,0,0,48,48,48,48,48,48,48,48,48,48,9, - 14,28,11,1,0,102,0,24,0,108,0,6,0,63,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,8,14,14,10,1,0,52,124,0,0,222,231,195,195,195, - 195,195,195,195,195,9,16,32,11,1,0,48,0,16,0,24, - 0,8,0,0,0,0,0,62,0,99,0,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,16,32,11,1, - 0,6,0,4,0,12,0,8,0,0,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,16,32,11,1,0,8,0,28,0,20,0,34,0,0, - 0,0,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,62,0,0, - 0,0,0,0,0,62,0,99,0,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,9,14,28,11,1,0,51, - 0,0,0,0,0,0,0,62,0,115,0,193,128,192,128,192, - 128,192,128,192,128,193,128,115,0,62,0,11,8,16,19,4, - 2,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,9,12,24,11,1,0,1,128,63,0,99,0,199,128,197, - 128,201,128,217,128,209,128,225,128,99,0,254,0,128,0,8, - 16,16,10,1,0,96,48,16,8,0,0,195,195,195,195,195, - 195,195,195,231,123,8,16,16,10,1,0,4,12,8,16,0, - 0,195,195,195,195,195,195,195,195,231,123,8,16,16,10,1, - 0,24,24,52,36,0,0,195,195,195,195,195,195,195,195,231, - 123,8,14,14,10,1,0,102,0,0,0,195,195,195,195,195, - 195,195,195,231,123,10,19,38,10,0,252,3,0,6,0,4, - 0,8,0,0,0,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,120,0,120, - 0,9,18,36,11,1,252,192,0,192,0,192,0,192,0,222, - 0,227,0,193,128,193,128,193,128,193,128,193,128,193,128,227, - 0,222,0,192,0,192,0,192,0,192,0,10,18,36,10,0, - 252,51,0,0,0,0,0,0,0,192,192,97,128,97,128,97, - 0,51,0,51,0,30,0,30,0,30,0,12,0,12,0,24, - 0,24,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=15 x= 4 y= 7 dx=19 dy= 0 ascent=14 len=28 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14n[421] U8G_FONT_SECTION("u8g_font_fur14n") = { - 0,26,26,255,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=12 dx=19 dy= 0 ascent=16 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14r[2489] U8G_FONT_SECTION("u8g_font_fur14r") = { - 0,26,26,255,251,14,3,59,6,250,32,127,252,16,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=15 dx=24 dy= 0 ascent=24 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17[6799] U8G_FONT_SECTION("u8g_font_fur17") = { - 0,31,30,254,250,17,4,5,8,170,32,255,251,24,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,7,0,0, - 2,17,17,8,3,251,192,192,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,10,18,36,14,2,253,1,0,1, - 0,1,0,31,0,127,128,98,192,198,192,196,0,196,0,204, - 0,200,0,200,192,121,192,127,128,31,0,32,0,32,0,32, - 0,11,17,34,13,1,0,15,128,29,192,48,96,48,0,48, - 0,48,0,254,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,255,224,11,14,28,13,1,3,0, - 32,128,32,95,64,123,128,96,128,64,64,64,64,64,64,64, - 64,96,128,113,128,95,64,128,32,0,32,12,17,34,14,1, - 0,192,48,96,96,96,96,48,224,48,192,249,240,25,128,15, - 128,15,0,255,240,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,1,22,22,8,4,251,128,128,128,128,128,128,128, - 128,128,0,0,0,0,128,128,128,128,128,128,128,128,128,8, - 21,21,10,1,252,62,126,192,192,192,112,120,62,119,227,195, - 199,238,124,30,7,3,3,3,142,252,7,2,2,7,0,15, - 198,198,17,17,51,19,1,0,3,224,0,15,120,0,56,14, - 0,35,242,0,71,57,0,78,25,0,140,0,128,140,0,128, - 140,0,128,140,0,128,140,24,128,70,57,0,67,241,0,32, - 2,0,48,6,0,12,24,0,3,224,0,9,11,22,9,0, - 6,62,0,127,0,97,0,1,0,63,0,113,0,65,0,67, - 0,61,0,0,0,255,128,9,9,18,13,2,1,49,128,51, - 0,99,0,230,0,204,0,230,0,99,0,51,0,17,128,12, - 5,10,14,1,5,255,240,0,16,0,16,0,16,0,16,255, - 17,17,51,19,1,0,3,224,0,15,120,0,56,14,0,39, - 242,0,70,57,0,70,25,0,134,24,128,135,224,128,134,48, - 128,134,16,128,134,24,128,70,25,0,70,25,0,32,2,0, - 56,14,0,15,120,0,3,224,0,7,1,1,7,0,15,254, - 5,6,6,7,1,11,112,216,136,136,216,112,14,14,28,24, - 5,0,2,0,2,0,2,0,2,0,255,252,2,0,2,0, - 2,0,2,0,2,0,0,0,0,0,0,0,255,252,7,9, - 9,9,1,8,60,126,198,6,12,24,48,224,254,7,9,9, - 9,1,8,60,126,198,14,24,14,6,206,124,3,4,4,5, - 2,14,96,96,192,128,255,10,21,42,13,1,252,31,192,60, - 128,124,128,252,128,252,128,252,128,124,128,124,128,60,128,4, - 128,4,128,4,128,4,128,4,128,4,128,4,128,4,128,4, - 128,4,128,4,128,4,128,2,3,3,6,2,7,192,192,192, - 6,5,5,6,1,250,64,120,12,12,252,3,9,9,7,2, - 8,96,224,32,32,32,32,32,32,32,8,11,11,10,1,6, - 60,126,195,193,193,193,195,98,124,0,255,9,9,18,13,2, - 1,204,0,102,0,99,0,51,0,57,128,51,0,99,0,102, - 0,204,0,15,17,34,18,2,0,96,48,224,32,32,96,32, - 64,32,192,32,128,33,0,35,0,34,24,6,24,4,40,12, - 72,8,200,16,254,48,8,32,8,96,8,16,17,34,19,2, - 0,96,16,224,48,32,32,32,96,32,192,32,128,33,128,33, - 0,35,62,6,119,4,99,12,3,8,6,24,28,16,48,32, - 96,96,127,17,17,51,19,1,0,124,4,0,254,12,0,6, - 8,0,24,16,0,30,48,0,6,32,0,198,96,0,206,64, - 0,124,198,0,1,134,0,1,10,0,3,26,0,2,50,0, - 6,63,128,4,2,0,8,2,0,24,2,0,10,17,34,12, - 1,251,6,0,6,0,0,0,0,0,6,0,6,0,6,0, - 14,0,28,0,112,0,96,0,192,0,192,0,192,192,241,192, - 127,128,31,0,16,23,46,17,1,0,14,0,6,0,3,0, - 1,0,0,0,0,0,3,128,3,128,7,192,6,192,14,224, - 12,96,12,112,24,48,24,48,56,56,63,248,63,252,96,12, - 96,12,224,6,192,6,192,7,16,23,46,17,1,0,0,96, - 0,192,0,128,1,0,0,0,0,0,3,128,3,128,7,192, - 6,192,14,224,12,96,12,112,24,48,24,48,56,56,63,248, - 63,252,96,12,96,12,224,6,192,6,192,7,16,23,46,17, - 1,0,3,128,3,192,6,192,4,96,0,0,0,0,3,128, - 3,128,7,192,6,192,14,224,12,96,12,112,24,48,24,48, - 56,56,63,248,63,252,96,12,96,12,224,6,192,6,192,7, - 16,22,44,17,1,0,7,96,13,192,0,0,0,0,0,0, - 3,128,3,128,7,192,6,192,14,224,12,96,12,112,24,48, - 24,48,56,56,63,248,63,252,96,12,96,12,224,6,192,6, - 192,7,16,22,44,18,1,0,6,48,6,48,0,0,0,0, - 0,0,1,192,3,192,3,224,7,96,6,96,6,112,12,48, - 12,56,28,24,24,28,63,252,63,252,48,6,96,6,96,7, - 224,3,192,3,16,24,48,17,1,0,3,128,6,192,4,64, - 4,64,3,128,0,0,0,0,3,128,3,128,7,192,6,192, - 6,224,12,96,12,112,28,48,24,48,24,24,63,248,63,252, - 96,12,96,12,224,6,192,6,192,7,21,17,51,23,1,0, - 0,255,248,0,240,0,1,240,0,1,176,0,3,176,0,3, - 48,0,7,48,0,6,48,0,14,63,248,12,48,0,28,48, - 0,31,240,0,56,48,0,48,48,0,112,48,0,96,48,0, - 192,63,248,13,22,44,15,1,251,15,192,63,240,48,56,96, - 24,96,24,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,24,112,48,63,240,15,192,2,0,3,192,0, - 224,0,96,7,224,11,23,46,14,2,0,48,0,24,0,12, - 0,4,0,0,0,0,0,255,224,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,224,11,23,46,14,2,0,3, - 0,6,0,6,0,12,0,0,0,0,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,11,23,46, - 14,2,0,30,0,30,0,51,0,33,0,0,0,0,0,255, - 224,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 192,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,11,22,44,14,2,0,51,0,51,0,0,0,0,0,0, - 0,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,224,4,23,23,6,0,0,192,96,48,16,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 4,23,23,6,2,0,48,96,64,192,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,6,23,23, - 6,0,0,56,120,76,196,0,0,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,7,22,22,7,0,0, - 198,198,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,15,17,34,17,0,0,63,192,49,240, - 48,56,48,12,48,12,48,6,48,6,48,6,255,6,48,6, - 48,6,48,6,48,12,48,28,48,56,49,240,63,192,13,22, - 44,17,2,0,14,192,31,128,0,0,0,0,0,0,224,24, - 240,24,248,24,248,24,220,24,220,24,206,24,198,24,199,24, - 195,24,195,152,193,216,193,216,192,248,192,248,192,120,192,56, - 15,24,48,17,1,0,14,0,6,0,3,0,1,0,1,128, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,15,24,48,17,1,0,0,224,0,192, - 1,128,1,0,3,0,0,0,0,0,7,192,30,240,48,24, - 96,12,96,12,192,6,192,6,192,6,192,6,192,6,192,6, - 224,14,96,12,96,12,48,24,30,240,7,192,15,24,48,17, - 1,0,3,128,3,128,6,192,4,64,12,32,0,0,0,0, - 7,192,30,240,48,24,96,12,96,12,192,6,192,6,192,6, - 192,6,192,6,192,6,224,14,96,12,96,12,48,24,30,240, - 7,192,15,22,44,17,1,0,7,96,13,192,0,0,0,0, - 0,0,7,192,30,240,48,24,96,12,96,12,192,6,192,6, - 192,6,192,6,192,6,192,6,224,14,96,12,112,28,56,56, - 31,240,7,192,15,22,44,17,1,0,6,96,6,96,0,0, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,13,12,24,23,5,1,192,24,96,48, - 48,96,24,192,13,128,7,0,7,0,13,128,24,192,48,96, - 96,48,192,24,15,21,42,17,1,254,0,4,0,14,7,236, - 30,248,48,60,96,60,96,110,192,230,192,198,193,198,195,134, - 195,6,199,6,238,14,108,12,124,12,120,24,62,240,111,192, - 224,0,64,0,13,24,48,17,2,0,28,0,12,0,6,0, - 2,0,1,0,0,0,0,0,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 224,24,96,56,112,112,63,224,31,192,13,24,48,17,2,0, - 1,192,1,128,3,0,2,0,6,0,0,0,0,0,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,224,24,96,56,112,112,63,224,31,192, - 13,24,48,17,2,0,7,0,7,0,13,128,8,128,24,64, - 0,0,0,0,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,224,24,96,56, - 112,112,63,224,31,192,13,22,44,17,2,0,12,192,12,192, - 0,0,0,0,0,0,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 96,56,96,48,61,224,31,192,14,23,46,15,0,0,0,192, - 1,128,1,128,3,0,0,0,0,0,224,28,112,24,112,56, - 56,48,24,112,28,96,12,192,14,192,7,128,3,128,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,11,17,34,14, - 2,0,192,0,192,0,192,0,192,0,255,128,193,192,192,224, - 192,96,192,96,192,96,193,192,255,128,192,0,192,0,192,0, - 192,0,192,0,12,17,34,13,1,0,31,0,127,128,224,192, - 192,192,193,192,195,128,199,0,198,0,198,0,195,128,193,224, - 192,112,192,48,192,48,204,48,207,96,195,192,10,18,36,13, - 1,0,24,0,12,0,4,0,6,0,0,0,0,0,31,0, - 123,128,96,192,96,192,0,192,63,192,120,192,224,192,192,192, - 193,192,119,192,60,192,10,19,38,13,1,0,3,0,6,0, - 6,0,12,0,8,0,0,0,0,0,31,0,123,128,96,192, - 96,192,0,192,63,192,120,192,224,192,192,192,193,192,119,192, - 60,192,10,19,38,13,1,0,14,0,14,0,27,0,51,0, - 33,128,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,17, - 34,13,1,0,29,128,63,0,0,0,0,0,0,0,31,0, - 123,128,96,192,0,192,7,192,63,192,112,192,192,192,193,192, - 193,192,119,192,60,192,10,17,34,13,1,0,49,128,49,128, - 0,0,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,20, - 40,13,1,0,14,0,27,0,17,0,17,0,27,0,14,0, - 0,0,0,0,31,0,123,128,96,192,96,192,0,192,63,192, - 120,192,224,192,192,192,193,192,119,192,62,192,18,12,36,20, - 1,0,30,31,0,127,191,128,97,225,128,0,224,192,0,192, - 192,63,255,192,120,192,0,224,192,0,192,224,192,193,225,128, - 127,63,128,62,31,0,10,17,34,12,1,251,31,0,127,128, - 97,192,192,192,192,0,192,0,192,0,192,0,192,192,97,192, - 127,128,31,0,8,0,15,0,3,128,1,128,31,0,10,19, - 38,13,1,0,48,0,24,0,8,0,12,0,6,0,0,0, - 0,0,31,0,127,128,96,192,192,192,192,192,255,192,192,0, - 192,0,192,192,96,192,63,128,31,0,10,19,38,13,1,0, - 3,0,7,0,6,0,12,0,8,0,0,0,0,0,31,0, - 127,128,96,192,192,192,192,192,255,192,192,0,192,0,192,192, - 96,192,63,128,31,0,10,19,38,13,1,0,12,0,30,0, - 26,0,51,0,33,0,0,0,0,0,31,0,127,128,96,192, - 192,192,192,192,255,192,192,0,192,0,192,192,96,192,63,128, - 31,0,11,17,34,13,1,0,49,128,49,128,0,0,0,0, - 0,0,31,0,59,192,96,192,224,96,192,96,255,224,192,0, - 192,0,192,96,96,192,59,192,31,0,4,18,18,6,0,0, - 192,96,48,16,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,4,18,18,6,2,0,48,96,192,128,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,6,18,18,6,0,0, - 120,120,204,132,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,6,17,17,5,255,0,204,204,0,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,11,17,34,13,1,0,97, - 128,63,0,30,0,119,0,3,128,31,192,127,192,96,224,224, - 96,192,96,192,96,192,96,192,96,224,96,96,192,63,192,31, - 0,10,17,34,14,2,0,25,0,63,0,0,0,0,0,0, - 0,223,0,255,128,225,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,11,19,38,13,1,0,56, - 0,24,0,12,0,4,0,2,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,19,38,13,1,0,3,128,3,0,6, - 0,4,0,12,0,0,0,0,0,31,0,63,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,63,192,31, - 0,11,19,38,13,1,0,14,0,14,0,27,0,17,0,49, - 128,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,11,17,34, - 13,1,0,29,128,63,0,0,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,17,34,13,1,0,49,128,49,128,0, - 0,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,14,10,20, - 24,5,2,3,0,3,0,3,0,0,0,0,0,255,252,0, - 0,3,0,3,0,3,0,11,15,30,13,1,254,0,32,0, - 96,31,192,63,192,97,192,227,224,194,96,198,96,204,96,216, - 96,248,224,112,192,123,192,95,0,192,0,10,19,38,14,2, - 0,48,0,24,0,24,0,12,0,4,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,119,192,60,192,10,19,38,14,2,0,3,0,6, - 0,6,0,12,0,8,0,0,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,119, - 192,60,192,10,19,38,14,2,0,12,0,30,0,30,0,51, - 0,33,0,0,0,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,225,192,119,192,60,192,10, - 17,34,14,2,0,51,0,51,0,0,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,11,23,46,12,1,251,3,0,3, - 0,6,0,12,0,0,0,0,0,192,96,192,192,224,192,97, - 192,113,128,49,128,51,128,59,0,27,0,30,0,14,0,14, - 0,12,0,12,0,220,0,248,0,112,0,11,22,44,14,2, - 251,192,0,192,0,192,0,192,0,192,0,207,0,251,192,224, - 192,224,224,192,96,192,96,192,96,192,96,224,224,224,192,251, - 192,207,0,192,0,192,0,192,0,192,0,192,0,11,22,44, - 13,1,251,49,128,49,128,0,0,0,0,0,0,192,96,224, - 96,96,224,96,192,113,192,49,128,57,128,27,128,27,0,31, - 0,14,0,14,0,14,0,12,0,12,0,28,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17n[528] U8G_FONT_SECTION("u8g_font_fur17n") = { - 0,31,30,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,34,0,54,0,22,0,28,0,255, - 128,156,128,20,0,54,0,34,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,4,6,6,6,1, - 253,112,112,96,96,192,192,6,1,1,8,1,5,252,2,3, - 3,6,2,0,192,192,192,7,18,18,9,1,255,6,6,4, - 12,12,8,8,24,24,16,48,48,32,32,96,96,64,192,10, - 17,34,13,1,0,30,0,63,128,97,128,96,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,97, - 192,97,128,63,128,30,0,5,17,17,13,3,0,56,120,248, - 216,24,24,24,24,24,24,24,24,24,24,24,24,24,10,17, - 34,13,1,0,30,0,127,128,97,128,224,192,224,192,0,192, - 1,192,3,128,3,128,7,0,14,0,28,0,56,0,112,0, - 96,0,224,0,255,192,10,17,34,13,1,0,31,0,127,128, - 96,192,224,192,0,192,0,192,3,128,14,0,7,128,1,192, - 0,192,0,192,192,192,224,192,97,192,127,128,30,0,11,17, - 34,13,1,0,3,128,3,128,7,128,13,128,13,128,25,128, - 57,128,49,128,97,128,97,128,193,128,255,224,255,224,1,128, - 1,128,1,128,1,128,10,17,34,13,1,0,127,128,96,0, - 96,0,96,0,96,0,111,0,127,128,97,128,64,192,0,192, - 0,192,0,192,0,192,192,192,225,128,127,0,30,0,11,17, - 34,13,1,0,31,0,59,128,96,192,224,192,192,0,192,0, - 207,0,223,192,241,192,224,224,192,96,192,96,192,96,192,96, - 96,192,59,192,31,0,10,17,34,13,1,0,255,192,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,56,0,11,17, - 34,13,1,0,31,0,59,128,96,192,96,192,96,192,96,192, - 49,128,31,0,59,128,96,192,192,96,192,96,192,96,192,96, - 96,224,123,192,31,0,11,17,34,13,1,0,31,0,127,192, - 96,192,192,224,192,96,192,96,192,224,224,224,113,224,63,96, - 0,96,0,96,0,224,96,192,97,192,127,128,31,0,2,12, - 12,6,2,0,192,192,192,0,0,0,0,0,0,192,192,192 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17r[3146] U8G_FONT_SECTION("u8g_font_fur17r") = { - 0,31,30,254,250,17,4,5,8,170,32,127,251,19,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=17 dx=29 dy= 0 ascent=28 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =28 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20[8654] U8G_FONT_SECTION("u8g_font_fur20") = { - 0,38,35,254,249,20,5,12,11,23,32,255,251,28,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,3,19, - 19,10,4,251,224,224,224,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,12,20,40,16,2,253,0,192,0, - 128,0,128,31,128,63,192,113,96,227,96,226,0,226,0,230, - 0,228,0,228,0,236,112,232,96,120,224,63,192,31,128,16, - 0,48,0,48,0,14,20,40,16,1,0,7,224,31,248,60, - 60,56,28,56,0,56,0,56,0,255,128,255,128,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,255, - 248,255,248,16,14,28,18,1,4,192,3,97,134,55,236,28, - 56,24,24,48,12,48,12,48,12,48,12,24,24,28,56,63, - 252,115,198,192,3,15,20,40,17,1,0,224,14,224,28,112, - 28,48,56,56,56,24,112,252,126,252,254,14,224,7,192,255, - 254,255,254,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,1,25,25,9,4,251,128,128,128,128,128,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,128,128,128, - 128,128,10,25,50,12,1,251,31,0,63,128,112,0,224,0, - 224,0,112,0,120,0,62,0,31,0,127,128,113,192,225,192, - 225,192,225,128,247,128,126,0,31,0,7,128,3,192,1,192, - 1,192,1,192,131,128,255,0,60,0,8,3,3,8,0,17, - 231,231,231,21,20,60,25,2,0,1,252,0,7,255,0,28, - 3,128,56,112,192,35,254,96,103,142,48,199,7,16,134,7, - 24,142,0,8,142,0,8,142,0,8,134,0,8,134,7,24, - 199,7,16,67,254,16,32,248,32,48,0,64,28,1,128,7, - 143,0,1,252,0,10,13,26,12,1,7,63,0,127,128,97, - 128,1,128,31,128,127,128,225,128,193,128,227,128,127,128,24, - 0,0,0,255,192,11,11,22,16,2,2,12,96,24,224,56, - 192,113,128,99,128,227,0,99,128,113,128,56,192,24,224,12, - 96,15,6,12,18,2,6,255,254,255,254,0,6,0,6,0, - 6,0,6,255,21,20,60,25,2,0,1,252,0,7,255,0, - 28,3,128,59,252,192,35,254,96,99,3,48,195,3,16,131, - 3,24,131,254,8,131,252,8,131,6,8,131,6,8,131,3, - 24,195,3,16,67,3,48,35,3,96,56,0,192,28,3,128, - 7,255,0,1,252,0,8,2,2,8,0,17,255,255,6,6, - 6,8,1,14,120,204,132,132,204,120,17,17,51,29,6,0, - 1,128,0,1,128,0,1,128,0,1,128,0,1,128,0,255, - 255,128,255,255,128,1,128,0,1,128,0,1,128,0,1,128, - 0,1,128,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,9,11,22,11,1,9,62,0,127,0,227,128,3, - 128,3,0,7,0,28,0,56,0,112,0,255,128,255,128,8, - 11,11,10,1,9,62,127,195,3,30,30,7,3,195,126,60, - 5,5,5,6,2,16,56,48,96,224,192,255,13,24,48,16, - 1,252,15,248,62,32,126,32,126,32,254,32,254,32,254,32, - 126,32,62,32,30,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,3,3,3,7,2,8,224,224,224,7,7,7,7,1, - 249,32,32,60,14,6,254,248,4,10,10,8,2,10,112,240, - 176,48,48,48,48,48,48,48,10,12,24,12,1,8,30,0, - 99,128,193,128,192,192,192,192,192,192,192,192,193,128,99,128, - 30,0,0,0,255,192,12,11,22,16,2,2,227,0,99,128, - 49,128,56,192,24,224,28,112,24,224,56,192,49,128,99,128, - 227,0,18,20,60,22,2,0,112,12,0,240,12,0,176,24, - 0,48,24,0,48,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,131,0,49,7,0,3,15,0,6,31,0,6, - 27,0,12,51,0,12,99,0,24,127,192,16,3,0,48,3, - 0,96,3,0,18,20,60,22,2,0,112,12,0,240,24,0, - 176,24,0,48,48,0,48,48,0,48,96,0,48,64,0,48, - 192,0,48,128,0,49,143,0,51,31,128,3,49,192,6,1, - 192,6,1,192,12,3,128,8,7,0,24,14,0,16,24,0, - 48,63,192,96,63,192,20,20,60,22,1,0,62,1,128,127, - 3,0,195,3,0,3,6,0,28,6,0,30,12,0,3,24, - 0,195,24,0,199,48,0,126,48,192,56,97,192,0,99,192, - 0,198,192,1,134,192,1,140,192,3,24,192,3,31,240,6, - 0,192,12,0,192,12,0,192,12,19,38,15,2,251,7,0, - 7,0,7,0,0,0,0,0,7,0,7,0,7,0,15,0, - 30,0,56,0,112,0,224,0,224,0,224,0,224,112,127,224, - 63,224,31,128,19,27,81,21,1,0,7,0,0,3,128,0, - 1,128,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 224,0,1,240,0,1,240,0,3,176,0,3,184,0,3,56, - 0,7,28,0,7,28,0,14,14,0,14,14,0,30,15,0, - 28,7,0,28,7,0,63,255,128,63,255,128,112,1,192,112, - 1,192,224,0,224,224,0,224,224,0,224,19,27,81,21,1, - 0,0,28,0,0,56,0,0,48,0,0,96,0,0,192,0, - 0,0,0,0,0,0,0,224,0,1,240,0,1,240,0,3, - 176,0,3,184,0,3,56,0,7,28,0,7,28,0,14,14, - 0,14,14,0,30,15,0,28,7,0,28,7,0,63,255,128, - 63,255,128,112,1,192,112,1,192,224,0,224,224,0,224,224, - 0,224,19,27,81,21,1,0,0,224,0,1,240,0,1,176, - 0,3,24,0,6,12,0,0,0,0,0,0,0,0,224,0, - 1,240,0,1,240,0,3,176,0,3,184,0,3,56,0,7, - 28,0,7,28,0,14,14,0,14,14,0,30,15,0,28,7, - 0,28,7,0,63,255,128,63,255,128,112,1,192,112,1,192, - 224,0,224,224,0,224,224,0,224,19,26,78,21,1,0,1, - 140,0,3,248,0,6,112,0,0,0,0,0,0,0,0,0, - 0,0,224,0,1,240,0,1,240,0,3,176,0,3,184,0, - 3,56,0,7,28,0,7,28,0,14,14,0,14,14,0,30, - 15,0,28,7,0,28,7,0,63,255,128,63,255,128,112,1, - 192,112,1,192,224,0,224,224,0,224,224,0,224,19,26,78, - 21,1,0,3,156,0,3,156,0,3,156,0,0,0,0,0, - 0,0,0,0,0,0,224,0,0,240,0,1,240,0,1,184, - 0,3,184,0,3,152,0,7,28,0,7,28,0,7,14,0, - 14,14,0,14,15,0,28,7,0,28,7,0,63,255,128,63, - 255,128,56,1,192,112,1,192,112,0,224,224,0,224,224,0, - 224,20,28,84,21,0,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,0,0,0, - 240,0,0,240,0,0,248,0,1,248,0,1,220,0,3,156, - 0,3,158,0,7,14,0,7,14,0,7,7,0,14,7,0, - 14,7,128,30,3,128,31,255,192,31,255,192,56,1,192,56, - 0,224,112,0,224,112,0,112,224,0,112,25,20,80,28,1, - 0,0,63,255,128,0,127,255,128,0,126,0,0,0,238,0, - 0,0,238,0,0,1,206,0,0,1,206,0,0,3,206,0, - 0,3,142,0,0,7,143,255,128,7,15,255,128,15,14,0, - 0,14,14,0,0,31,254,0,0,63,254,0,0,56,14,0, - 0,120,14,0,0,112,14,0,0,224,15,255,128,224,15,255, - 128,16,27,54,19,2,249,7,240,31,252,60,14,48,6,112, - 7,96,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,96,0,96,7,48,6,56,14,31,252,7,240,0, - 128,0,224,0,248,0,24,0,24,3,248,1,224,13,27,54, - 17,2,0,24,0,28,0,14,0,6,0,3,0,0,0,0, - 0,255,248,255,248,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,255,240,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,248,255,248,13,27,54,17,2,0,1, - 192,1,128,3,0,6,0,4,0,0,0,0,0,255,248,255, - 248,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,248,255,248,13,27,54,17,2,0,15,0,15,0,25, - 128,16,192,48,192,0,0,0,0,255,248,255,248,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,240,255,240,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,248,255, - 248,13,26,52,17,2,0,56,224,56,224,56,224,0,0,0, - 0,0,0,255,248,255,248,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,248,255,248,5,27,27,7,0, - 0,224,96,48,48,24,0,0,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,27,27,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,8,27,27, - 7,255,0,28,62,118,99,193,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,8,26, - 26,8,0,0,227,227,227,0,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,19,20, - 60,20,0,0,63,240,0,63,254,0,56,31,0,56,7,128, - 56,3,128,56,1,192,56,1,192,56,0,192,56,0,224,255, - 192,224,255,192,224,56,0,224,56,0,192,56,1,192,56,1, - 192,56,3,128,56,7,128,56,31,0,63,254,0,63,240,0, - 16,26,52,20,2,0,6,48,15,224,9,224,0,0,0,0, - 0,0,240,7,248,7,248,7,252,7,252,7,238,7,238,7, - 231,7,231,135,227,135,227,199,225,199,224,231,224,231,224,119, - 224,119,224,63,224,63,224,31,224,31,18,28,84,22,2,0, - 7,0,0,3,128,0,1,128,0,0,192,0,0,64,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,62,31, - 0,56,7,0,112,3,128,96,1,128,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,96, - 1,192,112,3,128,112,3,128,56,7,0,30,30,0,15,252, - 0,3,240,0,18,28,84,22,2,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,62,31,0,56,7,0,112,3, - 128,96,1,128,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,96,1,192,112,3,128,112, - 3,128,56,7,0,30,30,0,15,252,0,3,240,0,18,28, - 84,22,2,0,1,224,0,1,224,0,3,240,0,3,48,0, - 6,24,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,62,31,0,56,7,0,112,3,128,96,1,128,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,96,1,192,112,3,128,112,3,128,56,7,0,30, - 30,0,15,252,0,3,240,0,18,26,78,22,2,0,3,152, - 0,7,248,0,6,112,0,0,0,0,0,0,0,0,0,0, - 3,240,0,15,252,0,62,31,0,56,7,0,112,3,128,96, - 1,128,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,96,1,192,112,3,128,112,3,128, - 56,7,0,31,62,0,15,252,0,3,240,0,18,26,78,22, - 2,0,7,28,0,7,28,0,7,28,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,62,31,0,56,7,0, - 112,3,128,96,1,128,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,96,1,192,112,3, - 128,112,3,128,56,7,0,30,30,0,15,252,0,3,240,0, - 16,15,30,28,6,1,64,2,224,7,112,14,56,28,12,56, - 6,96,3,192,1,128,3,192,6,96,12,48,24,24,48,12, - 96,6,64,2,18,24,72,22,2,254,0,0,128,0,1,192, - 3,251,128,15,255,0,62,31,0,56,15,128,112,31,128,96, - 29,128,224,57,192,224,113,192,224,113,192,224,225,192,225,193, - 192,227,193,192,227,129,192,231,1,128,111,3,128,126,3,128, - 60,7,0,62,30,0,63,252,0,115,240,0,224,0,0,96, - 0,0,16,28,56,20,2,0,14,0,7,0,3,0,1,128, - 0,128,0,0,0,0,0,0,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,96,14,112,14,62,124,31,248,15,224, - 16,28,56,20,2,0,0,112,0,224,0,192,1,128,1,0, - 0,0,0,0,0,0,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,96,14,112,14,62,124,31,248,15,224,16,28, - 56,20,2,0,3,192,3,192,7,224,6,96,12,48,0,0, - 0,0,0,0,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,96,14,112,14,62,124,31,248,15,224,16,26,52,20, - 2,0,14,56,14,56,14,56,0,0,0,0,0,0,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,96,6,112,14, - 60,60,31,248,15,224,17,27,81,19,1,0,0,112,0,0, - 96,0,0,192,0,0,128,0,1,128,0,0,0,0,0,0, - 0,224,3,128,240,7,0,112,7,0,56,14,0,60,28,0, - 28,28,0,14,56,0,14,48,0,7,112,0,7,96,0,3, - 224,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,14,20,40, - 17,2,0,224,0,224,0,224,0,224,0,255,192,255,240,224, - 120,224,56,224,28,224,28,224,28,224,56,224,120,255,240,255, - 192,224,0,224,0,224,0,224,0,224,0,14,20,40,15,1, - 0,15,128,63,224,112,112,224,112,224,112,224,112,225,224,227, - 128,231,0,231,0,227,128,227,224,224,248,224,56,224,28,224, - 28,238,28,230,28,231,248,225,240,12,21,42,15,1,0,12, - 0,14,0,6,0,3,0,1,128,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,22,44,15,1,0,1, - 192,1,128,3,0,3,0,6,0,12,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,22,44,15,1, - 0,7,0,15,0,13,128,29,128,24,192,48,64,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,12,20,40, - 15,1,0,30,64,31,192,49,128,0,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,20,40,15,1, - 0,56,224,56,224,56,224,0,0,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,23,46,15,1,0,15, - 0,25,128,16,128,16,128,25,128,15,0,0,0,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,23,14,42, - 25,1,0,31,131,240,63,207,248,112,108,28,112,56,12,0, - 56,14,15,255,254,63,255,254,120,56,0,224,56,0,224,56, - 14,224,120,12,240,236,28,127,199,248,31,3,240,12,21,42, - 14,1,249,31,128,63,224,112,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,112,224,112,112,224,63,224,31,128,4, - 0,7,128,7,192,0,96,0,96,31,192,15,0,13,22,44, - 15,1,0,56,0,28,0,12,0,6,0,6,0,3,0,0, - 0,0,0,15,128,63,224,112,112,96,48,224,56,255,248,255, - 248,224,0,224,0,224,56,96,112,112,112,63,224,15,128,13, - 22,44,15,1,0,1,192,1,128,3,128,3,0,6,0,4, - 0,0,0,0,0,15,128,63,224,112,112,96,48,224,56,255, - 248,255,248,224,0,224,0,224,56,96,112,112,112,63,224,15, - 128,13,22,44,15,1,0,7,0,15,0,15,128,25,128,24, - 192,48,64,0,0,0,0,15,128,63,224,112,112,96,48,224, - 56,255,248,255,248,224,0,224,0,224,56,96,112,112,112,63, - 224,15,128,13,20,40,15,1,0,56,224,56,224,56,224,0, - 0,0,0,0,0,15,192,63,224,112,112,96,56,224,56,255, - 248,255,248,224,0,224,0,224,56,96,56,112,112,63,224,15, - 128,5,21,21,7,0,0,224,96,48,48,24,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,21,21,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,8,21,21,7,255,0,60,62,118, - 99,193,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,8,20,20,7,255,0,227,227,227,0,0,0,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,14,20,40,16, - 1,0,48,32,57,224,15,0,31,128,113,192,0,224,15,240, - 63,240,120,120,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,96,56,112,112,63,224,15,192,12,20,40,16,2,0, - 28,192,63,192,51,128,0,0,0,0,0,0,239,128,255,224, - 240,240,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,14,22,44,16,1,0,28,0, - 12,0,14,0,6,0,3,0,1,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,14,22,44,16,1,0, - 0,224,1,192,1,128,3,0,3,0,6,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,22,44,16, - 1,0,7,0,7,128,15,128,12,192,24,192,24,96,0,0, - 0,0,15,192,63,224,112,112,112,56,224,24,224,28,224,28, - 224,28,224,28,224,24,112,56,112,112,63,224,15,192,14,20, - 40,16,1,0,14,96,31,192,17,128,0,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,20,40,16, - 1,0,28,224,28,224,28,224,0,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,17,12,36,29,6,2, - 1,192,0,1,192,0,1,192,0,0,0,0,0,0,0,255, - 255,128,255,255,128,0,0,0,0,0,0,1,192,0,1,192, - 0,1,192,0,14,18,36,16,1,254,0,8,0,24,15,248, - 63,240,112,112,112,248,225,216,225,152,227,28,230,28,238,28, - 236,24,120,56,112,112,127,224,111,192,192,0,128,0,12,22, - 44,16,2,0,56,0,24,0,12,0,12,0,6,0,3,0, - 0,0,0,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,240,240,127,240,63,112, - 12,22,44,16,2,0,1,192,1,128,3,0,7,0,6,0, - 12,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,12,22,44,16,2,0,6,0,15,0,15,0,25,128, - 16,128,48,192,0,0,0,0,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,240,240, - 127,240,63,112,12,20,40,16,2,0,57,192,57,192,57,192, - 0,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,13,27,54,15,1,251,0,224,1,192,1,128,3,0, - 2,0,0,0,0,0,0,0,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,7,128, - 7,128,7,0,7,0,6,0,238,0,252,0,120,0,14,25, - 50,17,2,251,224,0,224,0,224,0,224,0,224,0,224,0, - 231,192,255,240,240,112,240,56,224,24,224,28,224,28,224,28, - 224,28,224,24,224,56,240,112,255,240,231,192,224,0,224,0, - 224,0,224,0,224,0,14,25,50,14,0,251,28,224,28,224, - 28,224,0,0,0,0,0,0,224,28,112,24,112,56,48,56, - 56,112,56,112,28,96,28,224,14,224,14,192,7,192,7,128, - 3,128,3,128,3,0,7,0,6,0,6,0,14,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=17 h=21 x= 6 y= 9 dx=29 dy= 0 ascent=20 len=48 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20n[616] U8G_FONT_SECTION("u8g_font_fur20n") = { - 0,38,35,254,249,20,0,0,0,0,42,58,0,20,253,20, - 0,11,11,22,19,4,9,17,0,49,128,27,0,27,0,14, - 0,255,224,142,32,27,0,27,0,49,128,17,0,17,16,48, - 29,6,0,1,128,0,1,128,0,1,128,0,1,128,0,1, - 128,0,1,128,0,1,128,0,255,255,128,255,255,128,1,128, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,5,7,7,8,1,253,56,56,112,112,96,96,224, - 7,2,2,9,1,6,254,254,3,3,3,8,3,0,224,224, - 224,8,21,21,11,2,255,3,6,6,6,4,12,12,12,24, - 24,24,48,48,48,96,96,96,64,192,192,192,13,20,40,16, - 1,0,15,128,63,192,112,224,96,112,96,112,224,48,224,48, - 224,56,224,56,224,56,224,56,224,56,224,56,224,48,224,48, - 96,112,112,112,48,224,63,192,15,128,7,20,20,16,4,0, - 30,62,126,254,206,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,12,20,40,16,2,0,31,128,63,192,112,96, - 112,112,224,112,0,112,0,112,0,112,0,224,1,224,3,192, - 3,128,7,0,14,0,28,0,60,0,120,0,240,0,255,240, - 255,240,13,20,40,16,1,0,15,128,63,224,112,112,112,48, - 224,56,0,56,0,48,0,224,7,192,7,192,0,224,0,112, - 0,56,0,56,224,56,224,56,224,56,112,112,63,224,31,128, - 14,20,40,16,1,0,0,240,1,240,1,240,3,240,7,112, - 6,112,14,112,28,112,24,112,56,112,112,112,96,112,224,112, - 255,252,255,252,0,112,0,112,0,112,0,112,0,112,13,20, - 40,16,1,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,239,128,255,224,240,112,224,112,224,48,0,56,0,56, - 0,56,224,48,224,112,112,224,127,192,31,128,13,20,40,16, - 1,0,15,192,63,224,120,112,112,48,224,56,224,0,224,0, - 231,192,255,224,248,240,224,56,224,56,224,56,224,56,224,56, - 224,56,96,48,48,112,63,224,15,128,12,20,40,16,2,0, - 255,240,255,240,0,112,0,112,0,96,0,224,0,224,1,192, - 1,192,1,128,3,128,3,128,3,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,13,20,40,16,1,0,15,128, - 63,224,112,112,224,48,224,56,224,56,96,48,112,112,31,192, - 31,192,56,96,96,48,224,56,224,56,224,56,224,56,224,56, - 112,112,63,224,15,128,13,20,40,16,1,0,31,192,63,224, - 112,112,224,56,224,56,224,56,224,56,224,56,224,56,112,120, - 63,248,31,56,0,56,0,56,0,56,96,48,96,112,112,224, - 63,192,31,128,3,14,14,8,3,0,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=16 dx=29 dy= 0 ascent=22 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20r[3976] U8G_FONT_SECTION("u8g_font_fur20r") = { - 0,38,35,254,249,20,5,12,11,23,32,127,251,22,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=22 dx=34 dy= 0 ascent=36 len=132 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =36 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25[11949] U8G_FONT_SECTION("u8g_font_fur25") = { - 0,46,45,254,247,25,6,119,15,27,32,255,249,36,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 10,0,0,3,25,25,13,5,249,224,224,224,0,0,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,14,26,52,19,2,252,0,48,0,48,0,32,0,96, - 15,224,63,240,124,248,112,220,112,156,241,156,225,128,225,128, - 227,0,227,0,227,0,226,0,246,28,118,28,124,60,60,120, - 63,240,15,192,24,0,24,0,16,0,48,0,17,26,78,19, - 1,0,0,64,0,7,252,0,15,254,0,30,15,0,60,7, - 128,56,3,128,56,0,0,56,0,0,56,0,0,56,0,0, - 255,224,0,255,224,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,255,255,0,255,255,0, - 18,19,57,20,1,6,64,0,128,224,1,192,113,227,128,63, - 255,0,31,62,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 31,62,0,55,251,0,113,225,128,224,1,192,64,0,128,18, - 25,75,20,1,0,240,1,192,112,3,192,120,3,128,56,7, - 128,60,7,0,28,15,0,30,14,0,254,15,192,255,31,192, - 7,28,0,7,184,0,3,184,0,3,240,0,255,255,192,255, - 255,192,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,12,31,62,16,2,251,31,224,63, - 224,56,32,112,0,112,0,112,0,120,0,124,0,62,0,31, - 128,15,192,63,224,120,240,240,112,224,112,224,112,224,240,241, - 224,127,192,63,128,31,128,7,224,1,224,0,240,0,112,0, - 112,0,112,0,240,65,224,127,192,63,128,10,3,6,10,0, - 22,225,192,225,192,225,192,26,25,100,30,2,1,0,255,192, - 0,3,255,240,0,7,128,120,0,14,0,28,0,28,127,14, - 0,57,255,135,0,115,227,195,0,99,129,225,128,103,128,225, - 128,199,0,0,192,199,0,0,192,199,0,0,192,199,0,0, - 192,199,0,0,192,199,0,0,192,199,0,224,128,99,129,225, - 128,99,195,193,128,49,255,131,0,48,127,7,0,24,0,14, - 0,14,0,28,0,7,128,120,0,1,255,224,0,0,127,128, - 0,12,17,34,14,1,8,31,128,63,192,120,224,96,96,0, - 96,7,224,63,224,56,96,96,96,96,96,96,224,113,224,63, - 96,30,96,0,0,0,0,255,240,13,14,28,19,3,2,14, - 56,28,56,56,112,56,224,112,224,113,192,227,192,227,192,113, - 192,112,224,56,224,24,112,28,56,14,56,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,26,25,100,30,2,1, - 0,255,192,0,3,255,240,0,7,128,120,0,14,255,156,0, - 24,255,206,0,48,193,231,0,112,192,99,0,96,192,97,128, - 96,192,97,128,192,192,192,192,192,255,128,192,192,255,128,192, - 192,193,192,192,192,192,192,192,192,192,192,192,192,192,225,128, - 96,192,97,128,96,192,97,128,48,192,99,0,56,0,7,0, - 28,0,14,0,15,0,60,0,7,193,248,0,1,255,224,0, - 0,127,128,0,10,2,4,10,0,22,255,192,255,192,7,7, - 7,11,2,18,56,196,130,130,130,196,120,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,240,255,255,240, - 10,13,26,12,1,13,63,128,127,128,97,192,225,192,1,192, - 3,128,7,128,14,0,28,0,56,0,240,0,255,192,255,192, - 10,14,28,13,2,12,127,128,255,192,193,192,1,192,7,128, - 14,0,15,128,3,192,0,192,192,192,192,192,227,128,127,128, - 62,0,6,6,6,8,2,21,28,60,56,112,96,192,255,16, - 31,62,20,2,250,7,255,31,140,63,140,127,140,255,140,255, - 140,255,140,255,140,255,140,127,140,127,140,31,140,7,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,3,4,4,9,3,10,224,224,224,224,8,9,9, - 9,2,247,32,32,60,62,7,3,135,255,252,5,13,13,10, - 2,12,56,120,248,152,24,24,24,24,24,24,24,24,24,12, - 16,32,14,1,9,31,128,63,192,112,224,224,96,192,112,192, - 48,192,48,192,48,192,112,224,112,112,224,63,192,31,128,0, - 0,0,0,255,240,13,14,28,19,3,2,227,128,225,192,112, - 192,56,224,56,112,28,112,28,56,30,56,28,112,56,112,56, - 224,112,192,225,192,227,128,23,27,81,27,2,0,56,0,192, - 120,1,192,248,1,128,216,3,128,24,3,0,24,7,0,24, - 6,0,24,14,0,24,12,0,24,24,0,24,24,0,24,48, - 0,24,112,0,24,96,112,0,224,112,0,192,240,1,193,176, - 1,129,48,3,131,48,3,6,48,7,12,48,6,15,254,14, - 15,254,12,0,48,24,0,48,24,0,48,48,0,48,23,27, - 81,27,2,0,56,0,224,120,1,192,248,1,128,216,3,128, - 24,3,0,24,7,0,24,6,0,24,14,0,24,12,0,24, - 28,0,24,24,0,24,56,0,24,48,0,24,112,248,0,227, - 252,0,195,142,1,199,6,1,128,6,3,128,14,3,0,12, - 7,0,56,6,0,112,14,0,224,12,3,192,28,7,128,24, - 7,254,48,7,254,24,26,78,27,2,0,0,0,24,127,128, - 56,255,192,112,193,192,96,3,128,224,14,0,192,15,129,192, - 3,193,128,0,195,128,192,199,0,192,198,0,227,142,0,127, - 140,28,62,28,60,0,24,60,0,48,108,0,112,204,0,97, - 204,0,227,140,0,195,12,1,199,255,1,135,255,3,0,12, - 7,0,12,6,0,12,14,0,12,15,25,50,18,2,249,1, - 192,1,192,1,192,0,0,0,0,0,0,1,192,1,192,1, - 192,1,192,3,192,7,128,15,0,62,0,124,0,120,0,240, - 0,224,0,224,0,224,8,240,14,120,60,63,252,31,248,7, - 224,24,35,105,26,1,0,1,192,0,1,224,0,0,224,0, - 0,112,0,0,48,0,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,124,0,0,126,0,0,254, - 0,0,238,0,0,239,0,1,231,0,1,199,128,3,195,128, - 3,131,192,7,131,192,7,1,192,7,1,224,15,0,224,14, - 0,240,31,255,240,31,255,240,31,255,248,60,0,56,56,0, - 60,120,0,28,112,0,30,112,0,30,240,0,14,224,0,15, - 24,35,105,26,1,0,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,60,0,0,124,0,0,126,0,0,254,0, - 0,238,0,0,239,0,1,231,0,1,199,128,3,195,128,3, - 131,192,7,131,192,7,1,192,7,1,224,15,0,224,14,0, - 240,31,255,240,31,255,240,31,255,248,60,0,56,56,0,60, - 120,0,28,112,0,30,112,0,30,240,0,14,224,0,15,24, - 35,105,26,1,0,0,60,0,0,124,0,0,110,0,0,230, - 0,0,195,0,1,131,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,60,0,0,124,0,0,126,0,0,254,0,0, - 238,0,0,239,0,1,231,0,1,199,128,3,195,128,3,131, - 192,7,131,192,7,1,192,7,1,224,15,0,224,14,0,240, - 31,255,240,31,255,240,31,255,248,60,0,56,56,0,60,120, - 0,28,112,0,30,112,0,30,240,0,14,224,0,15,24,33, - 99,26,1,0,0,241,128,1,255,0,1,159,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, - 124,0,0,126,0,0,254,0,0,238,0,0,239,0,1,231, - 0,1,199,128,3,195,128,3,131,192,7,131,192,7,1,192, - 7,1,224,15,0,224,14,0,240,31,255,240,31,255,240,31, - 255,248,60,0,56,56,0,60,120,0,28,112,0,30,112,0, - 30,240,0,14,224,0,15,25,33,132,25,0,0,0,225,192, - 0,0,225,192,0,0,225,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0, - 0,0,62,0,0,0,62,0,0,0,127,0,0,0,119,0, - 0,0,247,128,0,0,227,128,0,0,227,192,0,1,227,192, - 0,1,193,192,0,3,193,224,0,3,128,224,0,7,128,240, - 0,7,0,112,0,7,0,112,0,15,255,248,0,15,255,248, - 0,31,255,252,0,28,0,28,0,28,0,30,0,60,0,14, - 0,56,0,14,0,120,0,15,0,112,0,7,0,240,0,7, - 128,24,36,108,25,1,0,0,56,0,0,196,0,0,130,0, - 0,130,0,0,130,0,0,196,0,0,124,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,60,0,0,124,0,0,126, - 0,0,254,0,0,238,0,0,239,0,1,231,0,1,199,128, - 3,195,128,3,131,128,7,131,192,7,129,192,7,1,224,15, - 0,224,14,0,240,31,255,240,31,255,240,31,255,248,60,0, - 56,56,0,60,120,0,60,120,0,28,112,0,30,240,0,14, - 224,0,15,31,25,100,34,1,0,0,7,255,252,0,15,255, - 252,0,15,255,252,0,31,192,0,0,29,192,0,0,61,192, - 0,0,57,192,0,0,121,192,0,0,241,192,0,0,241,192, - 0,1,225,192,0,1,225,255,252,3,193,255,252,3,193,255, - 252,7,129,192,0,7,255,192,0,15,255,192,0,15,255,192, - 0,30,1,192,0,28,1,192,0,60,1,192,0,56,1,192, - 0,120,1,255,254,112,1,255,254,240,1,255,254,19,33,99, - 23,2,249,3,254,0,15,255,128,30,3,192,60,1,192,56, - 0,224,112,0,224,112,0,0,112,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,112,0,0,112,0,224,112,0,224,56, - 1,224,60,1,192,31,7,128,15,255,0,3,252,0,0,64, - 0,0,120,0,0,124,0,0,30,0,0,6,0,0,6,0, - 1,254,0,1,252,0,16,35,70,21,3,0,28,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,16,35,70,21,3,0,0,112,0,240,0,224,1,192, - 1,128,3,0,0,0,0,0,0,0,0,0,255,254,255,254, - 255,254,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,254,255,254,255,254,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,255,255,255,255,255,16,35, - 70,21,3,0,7,192,7,192,14,224,12,96,28,112,24,48, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,254, - 255,254,255,254,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,255,255,255,255,255,16,33,66,21,3,0, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,6,35,35,9,0,0,240,112,56,24,28,12,0,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,6,35,35,9,3, - 0,28,56,48,112,224,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,9,35,70,9,0,0,30,0,62,0,55,0, - 115,0,99,128,193,128,0,0,0,0,0,0,0,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 10,33,66,10,0,0,225,192,225,192,225,192,0,0,0,0, - 0,0,0,0,0,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,22,25,75,24,0,0,31,252, - 0,31,255,128,31,255,192,28,7,224,28,0,240,28,0,120, - 28,0,120,28,0,60,28,0,60,28,0,28,28,0,28,255, - 240,28,255,240,28,255,240,28,28,0,28,28,0,28,28,0, - 60,28,0,56,28,0,120,28,0,120,28,0,240,28,7,224, - 31,255,192,31,255,128,31,252,0,19,33,99,25,3,0,3, - 204,0,7,252,0,14,248,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,248,0,224,248,0,224,252,0,224, - 254,0,224,254,0,224,239,0,224,239,0,224,231,128,224,231, - 128,224,227,192,224,227,192,224,225,224,224,224,224,224,224,240, - 224,224,120,224,224,120,224,224,60,224,224,60,224,224,30,224, - 224,30,224,224,15,224,224,15,224,224,7,224,224,3,224,224, - 3,224,22,36,108,26,2,0,3,192,0,1,192,0,0,224, - 0,0,96,0,0,112,0,0,56,0,0,24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,0,15,255,192,31, - 255,224,62,1,240,56,0,112,120,0,120,112,0,56,240,0, - 56,240,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,240,0,60,112,0,56,112,0,56,120, - 0,120,56,0,112,60,0,240,31,3,224,15,255,192,7,255, - 128,0,252,0,22,36,108,26,2,0,0,15,0,0,14,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,96,0,0, - 0,0,0,0,0,0,0,0,0,0,0,3,255,0,15,255, - 192,31,255,224,62,1,240,56,0,112,120,0,120,112,0,56, - 240,0,56,240,0,28,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,240,0,60,112,0,56,112,0, - 56,120,0,120,56,0,112,60,0,240,31,3,224,15,255,192, - 7,255,128,0,252,0,22,36,108,26,2,0,0,120,0,0, - 120,0,0,252,0,0,206,0,1,206,0,3,135,0,3,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,255,0, - 15,255,192,31,255,224,62,1,240,56,0,112,120,0,120,112, - 0,56,240,0,56,240,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,240,0,60,112,0,56, - 112,0,56,120,0,120,56,0,112,60,0,240,31,3,224,15, - 255,192,7,255,128,0,252,0,22,33,99,26,2,0,1,243, - 0,3,255,0,3,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,255,0,15,255,192,31,255,224,62, - 1,240,56,0,112,120,0,120,112,0,56,240,0,56,240,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,240,0,60,112,0,56,112,0,56,120,0,120,56, - 0,112,60,0,240,31,3,224,15,255,192,7,255,128,0,252, - 0,22,33,99,26,2,0,1,195,128,1,195,128,1,195,128, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 255,0,15,255,192,31,255,224,62,1,240,56,0,112,120,0, - 120,112,0,56,240,0,56,240,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,224,0,28,224,0,28,240,0,60,112, - 0,56,112,0,56,120,0,120,56,0,112,60,0,240,31,3, - 224,15,255,192,7,255,128,0,252,0,18,19,57,34,8,1, - 64,0,128,224,1,192,112,3,128,56,7,0,24,6,0,12, - 12,0,6,24,0,3,48,0,1,224,0,0,192,0,1,224, - 0,3,48,0,6,24,0,12,12,0,24,6,0,48,3,0, - 96,1,128,224,1,192,64,0,128,22,31,93,26,2,253,0, - 0,24,0,0,60,0,0,56,3,255,120,15,255,240,31,255, - 240,62,1,240,56,1,240,120,3,248,112,7,184,240,15,60, - 240,15,60,224,30,28,224,60,28,224,60,28,224,120,28,224, - 240,28,224,224,28,241,224,60,115,192,56,115,128,56,127,128, - 120,63,0,112,62,0,240,31,3,224,63,255,192,63,255,128, - 121,252,0,240,0,0,224,0,0,32,0,0,19,36,108,25, - 3,0,7,0,0,3,128,0,3,128,0,1,192,0,0,224, - 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, - 0,0,0,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,240,0,224,240,1,224,112,1,192,120, - 3,192,62,7,192,63,255,128,31,255,0,3,248,0,19,36, - 108,25,3,0,0,28,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,1,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,240,0,224,240,1,224,112,1, - 192,120,3,192,62,7,192,63,255,128,31,255,0,3,248,0, - 19,36,108,25,3,0,0,224,0,1,240,0,1,240,0,3, - 184,0,3,28,0,6,12,0,6,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,240,0,224,240,1,224, - 112,1,192,120,3,192,62,7,192,63,255,128,31,255,0,3, - 248,0,19,33,99,25,3,0,7,14,0,7,14,0,7,14, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,240,0,224,240,1,224,112,1,192,120,3,192,62, - 7,192,63,255,128,31,255,0,3,248,0,21,35,105,23,1, - 0,0,14,0,0,30,0,0,28,0,0,56,0,0,48,0, - 0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 0,120,120,0,112,120,0,240,60,1,224,30,1,224,30,3, - 192,15,3,128,15,7,128,7,135,0,3,143,0,3,206,0, - 1,252,0,1,252,0,0,248,0,0,120,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,16,25,50,21,3,0, - 224,0,224,0,224,0,224,0,255,224,255,252,255,254,224,62, - 224,15,224,7,224,7,224,7,224,7,224,7,224,15,224,62, - 255,254,255,252,255,224,224,0,224,0,224,0,224,0,224,0, - 224,0,17,25,75,19,2,0,7,224,0,31,248,0,126,124, - 0,112,60,0,240,28,0,224,28,0,224,28,0,224,56,0, - 224,248,0,225,224,0,225,192,0,225,192,0,225,224,0,225, - 240,0,224,252,0,224,63,0,224,15,0,224,7,128,224,3, - 128,224,3,128,231,3,128,227,131,128,227,231,128,225,255,0, - 224,124,0,15,27,54,19,2,0,14,0,7,0,3,128,3, - 128,1,192,0,192,0,0,0,0,0,0,15,240,63,252,60, - 60,120,30,112,14,0,14,0,14,15,254,63,254,124,14,112, - 14,224,14,224,30,224,30,240,62,120,238,63,238,15,142,15, - 28,56,19,2,0,0,112,0,224,0,224,1,192,3,128,3, - 0,6,0,0,0,0,0,0,0,15,240,63,252,60,60,120, - 30,112,14,0,14,0,14,15,254,63,254,124,14,112,14,224, - 14,224,30,224,30,240,62,120,238,63,238,15,142,15,28,56, - 19,2,0,3,192,7,192,7,224,14,224,12,112,28,48,24, - 24,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,25,50,19,2, - 0,15,152,31,240,25,224,0,0,0,0,0,0,0,0,15, - 240,63,252,60,60,120,30,112,14,0,14,0,14,15,254,63, - 254,124,14,112,14,224,14,224,30,224,30,240,62,120,238,63, - 238,15,142,15,25,50,19,2,0,28,56,28,56,28,56,0, - 0,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,29,58,19,2, - 0,3,128,12,64,8,32,8,32,8,32,12,64,7,192,0, - 0,0,0,0,0,0,0,15,240,63,252,60,124,120,30,112, - 30,0,30,0,30,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,27,18,72,31,2, - 0,15,224,126,0,63,241,255,0,124,121,199,128,112,31,129, - 192,112,15,1,192,0,15,0,224,0,14,0,224,15,255,255, - 224,63,255,255,224,124,14,0,0,240,14,0,0,224,14,0, - 0,224,31,0,224,224,27,1,192,240,59,131,192,124,241,239, - 128,63,225,255,128,31,192,126,0,14,26,52,18,2,248,15, - 224,63,248,60,120,112,60,112,28,240,28,224,0,224,0,224, - 0,224,0,224,0,224,0,240,28,112,28,112,60,60,120,31, - 240,7,224,1,0,1,224,1,240,0,120,0,24,0,24,7, - 240,7,224,16,28,56,19,2,0,28,0,14,0,14,0,7, - 0,3,128,1,128,0,192,0,0,0,0,0,0,7,224,31, - 248,60,124,120,30,112,14,240,14,224,14,255,254,255,255,224, - 0,224,0,224,0,112,14,112,14,120,30,62,124,31,248,7, - 224,16,28,56,19,2,0,0,120,0,240,0,224,1,192,1, - 128,3,128,3,0,0,0,0,0,0,0,7,224,31,248,60, - 124,120,30,112,14,240,14,224,14,255,254,255,255,224,0,224, - 0,224,0,112,14,112,14,120,30,62,124,31,248,7,224,16, - 28,56,19,2,0,3,192,7,192,7,224,14,224,12,112,24, - 48,24,24,0,0,0,0,0,0,7,224,31,248,60,124,120, - 30,112,14,240,14,224,14,255,254,255,255,224,0,224,0,224, - 0,112,14,112,14,120,30,62,124,31,248,7,224,16,25,50, - 19,2,0,28,56,28,56,28,56,0,0,0,0,0,0,0, - 0,7,224,31,248,60,60,120,14,112,14,240,14,224,6,255, - 254,255,255,224,0,224,0,224,0,112,14,112,14,120,30,62, - 60,31,248,7,224,6,27,27,8,255,0,240,112,56,24,28, - 12,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,6,27,27,8,2,0,28,56,112,112, - 224,192,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,9,27,54,8,255,0,62,0,62, - 0,119,0,115,0,227,128,193,128,0,0,0,0,0,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,10,25,50,8,255,0,227,192,227,192,227,192,0, - 0,0,0,0,0,0,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,17,26,78,21,2, - 0,16,4,0,56,28,0,30,248,0,7,192,0,15,192,0, - 60,240,0,112,120,0,0,60,0,7,252,0,31,254,0,62, - 63,0,120,15,0,112,7,0,240,7,128,240,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,240,7,0, - 112,7,0,120,15,0,62,62,0,31,252,0,7,240,0,15, - 25,50,19,2,0,15,48,31,240,27,224,0,0,0,0,0, - 0,0,0,227,240,239,248,252,124,248,30,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,17,28,84,21,2,0,14,0,0, - 15,0,0,7,0,0,3,128,0,1,128,0,0,192,0,0, - 224,0,0,0,0,0,0,0,0,0,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,17,28,84,21,2,0,0,56,0,0,120,0,0,112,0, - 0,224,0,0,192,0,1,128,0,3,0,0,0,0,0,0, - 0,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,0,240,7,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,7,128,240,7,128,112,7,0,120, - 15,0,62,62,0,31,252,0,7,240,0,17,28,84,21,2, - 0,1,192,0,3,224,0,3,224,0,7,112,0,14,56,0, - 12,24,0,28,28,0,0,0,0,0,0,0,0,0,0,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 0,240,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 240,7,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,25,75,21,2,0,7,152,0,15,248, - 0,12,240,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,240,0,31,252,0,62,62,0,120,15,0,112,7,0,240, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,240,7,128,240,7,128,112,7,0,120,15,0,62,62,0, - 31,252,0,7,240,0,17,25,75,21,2,0,28,56,0,28, - 56,0,28,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,240,7,128,240,7,128,112,7,0,120,15,0,62,62, - 0,31,252,0,7,240,0,20,15,45,34,7,3,0,96,0, - 0,240,0,0,240,0,0,96,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,0,0,0,0,0,0,0,96, - 0,0,240,0,0,240,0,0,96,0,17,23,69,21,2,254, - 0,1,0,0,1,128,0,3,128,7,247,0,31,254,0,62, - 62,0,120,31,0,112,63,0,240,55,128,240,119,128,224,227, - 128,225,195,128,225,131,128,227,131,128,231,7,128,254,7,128, - 124,7,0,124,15,0,62,62,0,127,252,0,103,240,0,224, - 0,0,192,0,0,15,28,56,19,2,0,28,0,30,0,14, - 0,7,0,3,0,1,128,1,128,0,0,0,0,0,0,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,240,30,124,126,63, - 238,31,142,15,28,56,19,2,0,0,112,0,240,0,224,1, - 192,1,128,3,0,7,0,0,0,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,30,124,126,63,238,31, - 142,15,28,56,19,2,0,3,128,7,192,7,192,14,224,12, - 96,24,48,24,48,0,0,0,0,0,0,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,240,30,124,126,63,238,31,142,15, - 25,50,19,2,0,56,112,56,112,56,112,0,0,0,0,0, - 0,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,240,30,240, - 62,124,126,63,238,31,142,16,34,68,18,1,249,0,56,0, - 112,0,96,0,224,1,192,1,128,0,0,0,0,0,0,224, - 7,240,7,112,15,112,14,120,14,56,30,60,28,28,28,28, - 60,30,56,14,120,15,112,7,112,7,240,7,224,3,224,3, - 224,1,192,1,192,3,128,3,128,231,128,255,0,127,0,62, - 0,16,32,64,20,2,249,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,227,240,231,248,254,60,248,30,240,14,240, - 15,224,7,224,7,224,7,224,7,224,7,224,7,240,15,240, - 14,248,30,254,124,239,248,227,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,16,32,64,18,1,249,28,56,28, - 56,28,56,0,0,0,0,0,0,0,0,224,7,224,7,240, - 15,112,14,120,14,56,30,60,28,60,28,28,56,30,56,14, - 120,15,112,15,112,7,240,7,224,3,224,3,192,3,192,3, - 192,3,128,3,128,7,128,7,0,7,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=12 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25n[798] U8G_FONT_SECTION("u8g_font_fur25n") = { - 0,46,45,254,247,25,0,0,0,0,42,58,0,26,252,25, - 0,14,13,26,22,4,12,24,96,28,224,28,224,12,192,7, - 128,243,60,255,252,231,156,7,128,12,192,28,224,60,224,24, - 96,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,6,9,9,9,2,252,60,120,120,112, - 112,224,224,224,192,8,3,3,10,1,7,255,255,255,3,4, - 4,9,3,0,224,224,224,224,10,28,56,13,2,254,0,192, - 1,192,1,128,1,128,3,128,3,0,3,0,3,0,7,0, - 6,0,6,0,14,0,12,0,12,0,28,0,28,0,24,0, - 24,0,56,0,48,0,48,0,112,0,112,0,96,0,96,0, - 224,0,192,0,192,0,15,25,50,19,2,1,15,224,63,248, - 62,248,120,60,112,28,112,30,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,240,14, - 112,30,112,28,120,28,60,60,63,248,31,240,7,192,8,25, - 25,19,5,0,15,31,63,127,255,231,135,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,15,25,50, - 19,2,1,15,240,63,248,62,252,120,28,120,30,112,14,240, - 14,0,14,0,30,0,28,0,60,0,120,0,120,0,240,1, - 224,3,192,7,128,15,0,31,0,62,0,60,0,120,0,240, - 0,255,254,255,254,16,25,50,19,2,1,15,240,63,248,60, - 28,120,14,112,14,112,14,0,14,0,14,0,28,0,120,3, - 240,3,240,0,248,0,30,0,14,0,15,0,7,0,7,240, - 7,240,7,240,14,120,30,60,124,31,248,7,224,17,25,75, - 19,1,0,0,60,0,0,124,0,0,124,0,0,252,0,1, - 220,0,1,220,0,3,156,0,7,28,0,7,28,0,14,28, - 0,28,28,0,60,28,0,56,28,0,112,28,0,240,28,0, - 224,28,0,255,255,128,255,255,128,255,255,128,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,15,25, - 50,19,2,0,127,252,127,252,127,252,112,0,112,0,112,0, - 112,0,112,0,115,240,127,248,124,60,120,28,112,30,96,14, - 0,14,0,14,0,14,0,14,0,14,224,30,240,28,112,60, - 124,120,63,240,15,192,16,25,50,19,1,1,15,240,31,252, - 60,28,120,30,112,14,240,14,224,0,224,0,224,0,227,240, - 231,252,239,252,252,30,248,14,240,15,240,7,240,7,240,7, - 240,7,112,7,120,14,56,14,62,60,15,248,7,224,15,25, - 50,19,2,0,255,254,255,254,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,240,0,240,0,224, - 1,224,1,224,1,192,3,192,3,128,7,128,7,128,7,0, - 15,0,15,0,14,0,16,25,50,19,1,1,15,240,63,252, - 60,60,120,30,112,14,112,14,112,14,112,14,56,28,60,60, - 15,240,15,240,62,56,56,28,112,14,224,7,224,7,224,7, - 224,7,224,7,240,15,120,14,60,60,31,248,7,224,16,25, - 50,19,2,1,31,248,63,252,120,30,112,14,240,15,224,15, - 224,15,224,15,224,15,240,15,112,31,120,63,63,247,15,231, - 0,7,0,7,0,7,0,14,112,14,112,14,112,30,112,60, - 60,120,31,240,15,224,3,18,18,9,3,0,224,224,224,224, - 0,0,0,0,0,0,0,0,0,0,224,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=21 dx=34 dy= 0 ascent=28 len=120 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25r[5389] U8G_FONT_SECTION("u8g_font_fur25r") = { - 0,46,45,254,247,25,6,119,15,27,32,127,249,28,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=26 dx=40 dy= 0 ascent=43 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30[16505] U8G_FONT_SECTION("u8g_font_fur30") = { - 0,54,54,253,245,30,9,94,20,223,32,255,249,43,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,12,0,0,4,28,28,14,5,248, - 240,240,240,240,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,17,31,93,23, - 3,250,0,12,0,0,12,0,0,24,0,0,24,0,0,24, - 0,15,248,0,63,254,0,62,63,0,120,119,0,120,103,0, - 240,103,128,240,96,0,240,192,0,240,192,0,240,192,0,241, - 128,0,241,128,0,241,128,0,243,7,128,243,7,128,123,7, - 0,126,15,0,62,30,0,31,254,0,15,248,0,12,0,0, - 12,0,0,28,0,0,24,0,0,24,0,0,8,0,0,20, - 31,93,23,2,0,0,16,0,1,255,0,7,255,192,15,135, - 224,15,1,224,30,0,240,30,0,240,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,248,0,255,248,0,255, - 248,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,255,224,255,255,224,255, - 255,224,21,22,66,25,2,7,192,0,24,224,0,56,96,48, - 48,51,254,96,63,255,224,31,7,192,28,1,192,24,0,192, - 56,0,224,48,0,96,48,0,96,48,0,96,48,0,96,56, - 0,224,24,0,192,28,1,192,14,3,128,31,255,192,59,254, - 224,112,248,112,224,0,56,192,0,24,21,30,90,23,1,0, - 240,0,120,248,0,120,120,0,240,124,0,240,60,1,240,62, - 1,224,30,1,224,30,3,192,15,3,192,15,7,128,255,135, - 248,255,143,248,255,207,248,3,207,0,1,254,0,1,252,0, - 255,255,248,255,255,248,255,255,248,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,2,38,38,14,6,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,15,37,74,19,2,250,15,248,31,248, - 62,24,60,0,120,0,120,0,120,0,120,0,60,0,63,0, - 31,128,15,224,15,240,63,248,124,124,120,62,240,30,240,30, - 240,30,240,60,248,120,127,240,63,224,31,224,7,240,1,248, - 0,124,0,60,0,30,0,30,0,30,0,28,0,60,96,248, - 127,240,127,224,3,0,12,4,8,12,0,26,240,240,240,240, - 240,240,240,240,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,240,63,0,7,128,7,128,15,0,3,192,28,3, - 0,224,56,63,240,112,56,127,248,112,112,248,124,56,97,240, - 30,24,97,224,30,24,225,224,30,28,195,192,0,12,195,192, - 0,12,195,192,0,12,195,192,0,12,195,192,0,12,195,192, - 0,12,193,192,30,12,97,224,30,24,97,224,30,24,96,240, - 60,56,48,255,252,48,56,63,248,112,28,15,224,224,14,0, - 1,192,7,0,3,128,3,192,15,0,1,255,252,0,0,63, - 240,0,14,19,38,16,1,11,15,192,63,240,56,120,112,56, - 0,56,0,56,15,248,63,248,120,56,224,56,224,56,224,120, - 240,248,127,184,31,56,0,0,0,0,255,252,255,252,16,16, - 32,22,3,2,7,7,15,14,14,14,28,28,60,60,56,120, - 120,112,240,240,240,240,120,112,56,120,60,60,28,28,14,14, - 15,14,7,7,21,10,30,25,2,8,255,255,248,255,255,248, - 255,255,248,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,255,30,30,120,34,2,1,0, - 63,240,0,0,255,252,0,3,240,63,0,7,128,7,128,14, - 0,1,192,28,127,240,224,56,127,248,112,48,127,252,48,112, - 112,30,56,96,112,14,24,96,112,14,24,192,112,14,12,192, - 112,28,12,192,127,248,12,192,127,240,12,192,127,248,12,192, - 112,28,12,192,112,28,12,192,112,28,12,96,112,12,24,96, - 112,12,24,112,112,14,56,48,112,14,48,56,112,14,112,28, - 0,0,224,14,0,1,192,7,128,7,128,3,240,63,0,1, - 255,252,0,0,63,240,0,12,3,6,12,0,26,255,240,255, - 240,255,240,9,9,18,13,2,21,62,0,127,0,227,128,193, - 128,193,128,193,128,227,128,127,0,62,0,24,24,72,40,8, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,255,255,255,255,255,255,255,255,255,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,255,255,255,255,12,16,32,14,1,15,31, - 192,127,224,120,240,112,112,224,112,0,112,0,224,1,224,3, - 192,7,128,14,0,60,0,120,0,255,240,255,240,255,240,12, - 16,32,14,1,15,63,192,127,224,112,240,96,112,0,112,0, - 240,7,224,7,128,7,224,0,240,0,112,224,112,224,112,127, - 224,127,192,31,128,8,7,7,9,2,25,15,30,28,56,56, - 112,224,255,18,36,108,22,2,250,3,255,192,15,255,192,63, - 195,0,127,195,0,127,195,0,255,195,0,255,195,0,255,195, - 0,255,195,0,255,195,0,255,195,0,127,195,0,127,195,0, - 63,195,0,15,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,0,195,0,0,195,0,0,195,0,0,195, - 0,0,195,0,0,195,0,0,195,0,0,195,0,0,195,0, - 0,195,0,0,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,4,5,5,10,3,11,240,240,240,240,240, - 10,10,20,10,2,246,48,0,48,0,62,0,63,128,7,128, - 1,192,1,192,3,192,255,128,254,0,7,16,16,12,2,14, - 30,62,254,238,142,14,14,14,14,14,14,14,14,14,14,14, - 14,19,38,16,1,10,15,192,63,224,120,112,112,56,224,56, - 224,28,224,28,224,28,224,28,224,28,224,56,112,56,56,112, - 31,224,7,128,0,0,0,0,255,252,255,252,16,16,32,22, - 3,2,224,224,112,112,120,120,56,56,28,60,30,30,15,14, - 15,15,15,15,15,14,30,30,28,60,56,56,120,120,112,112, - 224,224,28,30,120,32,2,0,30,0,12,0,62,0,28,0, - 254,0,56,0,238,0,56,0,142,0,112,0,14,0,112,0, - 14,0,224,0,14,0,192,0,14,1,192,0,14,3,128,0, - 14,3,128,0,14,7,0,0,14,7,0,0,14,14,0,0, - 14,12,7,128,14,28,7,128,0,56,15,128,0,56,31,128, - 0,112,27,128,0,112,59,128,0,224,115,128,0,224,99,128, - 1,192,195,128,1,129,195,128,3,129,255,240,7,1,255,240, - 7,0,3,128,14,0,3,128,14,0,3,128,28,0,3,128, - 28,30,120,32,2,0,30,0,28,0,62,0,28,0,254,0, - 56,0,238,0,56,0,142,0,112,0,14,0,112,0,14,0, - 224,0,14,0,224,0,14,1,192,0,14,3,128,0,14,3, - 128,0,14,7,0,0,14,7,0,0,14,14,0,0,14,14, - 31,128,14,28,63,224,0,56,121,224,0,56,112,112,0,112, - 240,112,0,112,0,112,0,224,0,240,0,224,0,224,1,192, - 3,192,1,128,7,128,3,128,15,0,7,0,60,0,7,0, - 120,0,14,0,255,240,14,0,255,240,28,0,255,240,30,31, - 124,32,1,0,0,0,1,192,63,192,3,128,127,224,3,128, - 112,240,7,0,96,112,6,0,0,112,14,0,0,240,28,0, - 7,224,28,0,7,128,56,0,7,224,56,0,0,240,112,0, - 0,112,112,0,224,112,224,0,224,113,192,0,127,225,192,0, - 127,195,129,224,31,131,129,224,0,7,3,224,0,7,7,224, - 0,14,6,224,0,12,12,224,0,28,28,224,0,56,24,224, - 0,56,48,224,0,112,112,224,0,112,127,252,0,224,127,252, - 0,224,0,224,1,192,0,224,1,128,0,224,3,128,0,224, - 17,28,84,21,2,248,0,240,0,0,240,0,0,240,0,0, - 240,0,0,0,0,0,0,0,0,0,0,0,240,0,0,240, - 0,0,240,0,0,240,0,1,240,0,1,224,0,7,192,0, - 15,128,0,31,0,0,60,0,0,120,0,0,240,0,0,240, - 0,0,240,0,0,240,3,0,240,3,128,124,15,128,127,255, - 0,63,254,0,31,252,0,3,240,0,28,41,164,30,1,0, - 0,240,0,0,0,240,0,0,0,120,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,7,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0, - 0,31,128,0,0,31,128,0,0,63,192,0,0,63,192,0, - 0,127,192,0,0,121,224,0,0,121,224,0,0,241,240,0, - 0,240,240,0,1,240,240,0,1,224,248,0,1,224,120,0, - 3,224,124,0,3,192,60,0,7,192,60,0,7,128,62,0, - 7,128,30,0,15,128,31,0,15,255,255,0,31,255,255,128, - 31,255,255,128,30,0,7,128,60,0,3,192,60,0,3,192, - 124,0,3,224,120,0,1,224,120,0,1,224,240,0,0,240, - 240,0,0,240,28,41,164,30,1,0,0,0,240,0,0,0, - 240,0,0,1,224,0,0,1,192,0,0,3,128,0,0,7, - 0,0,0,7,0,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,15,0,0,0,31,128,0,0,31, - 128,0,0,63,192,0,0,63,192,0,0,127,192,0,0,121, - 224,0,0,121,224,0,0,241,240,0,0,240,240,0,1,240, - 240,0,1,224,248,0,1,224,120,0,3,224,124,0,3,192, - 60,0,7,192,60,0,7,128,62,0,7,128,30,0,15,128, - 31,0,15,255,255,0,31,255,255,128,31,255,255,128,30,0, - 7,128,60,0,3,192,60,0,3,192,124,0,3,224,120,0, - 1,224,120,0,1,224,240,0,0,240,240,0,0,240,28,41, - 164,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,57,192,0,0,112,224,0,0,96,96,0, - 0,224,112,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,15,0,0,0,31,128,0,0,31,128,0,0,63,192,0, - 0,63,192,0,0,127,192,0,0,121,224,0,0,121,224,0, - 0,241,240,0,0,240,240,0,1,240,240,0,1,224,248,0, - 1,224,120,0,3,224,124,0,3,192,60,0,7,192,60,0, - 7,128,62,0,7,128,30,0,15,128,31,0,15,255,255,0, - 31,255,255,128,31,255,255,128,30,0,7,128,60,0,3,192, - 60,0,3,192,124,0,3,224,120,0,1,224,120,0,1,224, - 240,0,0,240,240,0,0,240,28,39,156,30,1,0,0,16, - 48,0,0,126,112,0,0,127,224,0,0,231,224,0,0,192, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,15,0,0,0,31,128,0,0,31,128,0,0,63, - 192,0,0,63,192,0,0,127,192,0,0,121,224,0,0,121, - 224,0,0,241,240,0,0,240,240,0,1,240,240,0,1,224, - 248,0,1,224,120,0,3,224,124,0,3,192,60,0,7,192, - 60,0,7,128,62,0,7,128,30,0,15,128,31,0,15,255, - 255,0,31,255,255,128,31,255,255,128,30,0,7,128,60,0, - 3,192,60,0,3,192,124,0,3,224,120,0,1,224,120,0, - 1,224,240,0,0,240,240,0,0,240,29,39,156,30,1,0, - 0,120,120,0,0,120,120,0,0,120,120,0,0,120,120,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,128,0,0,15,128,0,0,31,128,0, - 0,31,192,0,0,63,192,0,0,61,224,0,0,125,224,0, - 0,121,240,0,0,120,240,0,0,240,240,0,0,240,248,0, - 1,240,120,0,1,224,124,0,1,224,60,0,3,224,60,0, - 3,192,62,0,7,192,30,0,7,128,31,0,7,128,15,0, - 15,255,255,128,15,255,255,128,31,255,255,128,30,0,3,192, - 30,0,3,192,60,0,3,224,60,0,1,224,120,0,1,224, - 120,0,0,240,120,0,0,240,240,0,0,248,28,43,172,30, - 1,0,0,14,0,0,0,63,0,0,0,49,128,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,96,192,0,0,49, - 128,0,0,63,128,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,31,0,0,0,31,0,0,0,31, - 128,0,0,63,128,0,0,63,192,0,0,123,192,0,0,123, - 192,0,0,121,224,0,0,241,224,0,0,241,240,0,1,224, - 240,0,1,224,248,0,1,224,120,0,3,192,120,0,3,192, - 124,0,7,192,60,0,7,128,62,0,15,128,30,0,15,0, - 30,0,15,255,255,0,31,255,255,0,31,255,255,128,60,0, - 7,128,60,0,7,192,60,0,3,192,120,0,3,192,120,0, - 1,224,240,0,1,224,240,0,1,240,240,0,0,240,37,30, - 150,39,0,0,0,1,255,255,240,0,1,255,255,240,0,3, - 255,255,240,0,3,255,255,240,0,7,252,0,0,0,7,188, - 0,0,0,15,188,0,0,0,15,60,0,0,0,31,60,0, - 0,0,30,60,0,0,0,62,60,0,0,0,60,60,0,0, - 0,124,60,0,0,0,120,63,255,240,0,248,63,255,240,0, - 240,63,255,240,1,240,63,255,240,1,224,60,0,0,3,224, - 60,0,0,3,255,252,0,0,7,255,252,0,0,7,255,252, - 0,0,15,0,60,0,0,31,0,60,0,0,30,0,60,0, - 0,62,0,60,0,0,60,0,63,255,248,124,0,63,255,248, - 120,0,63,255,248,248,0,63,255,248,22,40,120,26,2,247, - 1,255,128,7,255,224,15,255,240,31,0,248,62,0,120,60, - 0,60,120,0,60,120,0,60,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,112, - 0,0,120,0,60,120,0,60,60,0,60,60,0,120,31,0, - 248,15,255,240,7,255,224,3,255,128,0,48,0,0,48,0, - 0,62,0,0,63,128,0,63,192,0,1,192,0,1,192,0, - 1,192,0,255,128,0,254,0,19,41,123,24,3,0,30,0, - 0,15,0,0,7,0,0,3,128,0,3,128,0,1,192,0, - 0,224,0,0,96,0,0,0,0,0,0,0,0,0,0,255, - 255,192,255,255,192,255,255,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,255,255,192,255,255,192,255,255,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,255,255,224, - 255,255,224,255,255,224,255,255,224,19,41,123,24,3,0,0, - 30,0,0,60,0,0,56,0,0,120,0,0,240,0,0,224, - 0,1,192,0,1,128,0,0,0,0,0,0,0,0,0,0, - 255,255,192,255,255,192,255,255,192,255,255,192,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 255,255,192,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,19,41,123,24,3,0, - 1,224,0,3,240,0,7,240,0,7,120,0,15,56,0,14, - 28,0,28,28,0,24,14,0,0,0,0,0,0,0,0,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,255,255,192,255,255,192,255,255, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,19,39,117,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,192,255, - 255,192,255,255,192,255,255,192,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,255,255,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,255,255,224,255,255,224, - 255,255,224,255,255,224,8,41,41,10,255,0,240,120,56,28, - 30,14,7,3,0,0,0,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,7,41,41,10,3,0,30,30,60,56,112, - 112,224,192,0,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,12,41,82,10,255,0,15,0,31,0,31,128, - 63,128,57,192,112,224,96,224,224,112,0,0,0,0,0,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,12,39,78,11, - 0,0,240,240,240,240,240,240,240,240,0,0,0,0,0,0, - 0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 26,30,120,28,0,0,31,255,0,0,31,255,224,0,31,255, - 248,0,31,255,252,0,30,0,254,0,30,0,63,0,30,0, - 31,0,30,0,15,128,30,0,7,128,30,0,7,128,30,0, - 3,192,30,0,3,192,30,0,3,192,30,0,3,192,255,252, - 3,192,255,252,3,192,255,252,3,192,30,0,3,192,30,0, - 3,192,30,0,3,192,30,0,7,128,30,0,7,128,30,0, - 15,128,30,0,31,0,30,0,63,0,30,0,254,0,31,255, - 252,0,31,255,248,0,31,255,224,0,31,255,0,0,22,39, - 117,28,3,0,0,131,0,3,243,0,7,255,0,7,62,0, - 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,60,252,0,60,254,0,60,254,0,60,255,0,60,255,0, - 60,255,128,60,247,128,60,247,192,60,243,192,60,243,224,60, - 241,224,60,241,240,60,240,240,60,240,248,60,240,120,60,240, - 124,60,240,60,60,240,62,60,240,30,60,240,31,60,240,15, - 60,240,15,188,240,7,188,240,3,252,240,3,252,240,1,252, - 240,1,252,240,0,252,240,0,252,26,41,164,30,2,0,1, - 224,0,0,0,240,0,0,0,120,0,0,0,56,0,0,0, - 28,0,0,0,28,0,0,0,14,0,0,0,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,1,255,224,0,3, - 255,240,0,15,255,252,0,31,255,254,0,31,0,62,0,62, - 0,31,0,60,0,15,0,120,0,7,128,120,0,7,128,112, - 0,3,128,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,112,0,3,128,120,0,7,128,120, - 0,7,128,120,0,15,128,60,0,15,0,62,0,31,0,31, - 128,126,0,15,255,252,0,7,255,248,0,3,255,240,0,0, - 255,192,0,26,41,164,30,2,0,0,1,224,0,0,3,192, - 0,0,7,128,0,0,7,0,0,0,15,0,0,0,14,0, - 0,0,28,0,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,255,224,0,3,255,240,0,15,255,252, - 0,31,255,254,0,31,0,62,0,62,0,31,0,60,0,15, - 0,120,0,7,128,120,0,7,128,112,0,3,128,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,112,0,3,128,120,0,7,128,120,0,7,128,120,0,15, - 128,60,0,15,0,62,0,31,0,31,128,126,0,15,255,252, - 0,7,255,248,0,3,255,240,0,0,255,192,0,26,41,164, - 30,2,0,0,30,0,0,0,63,0,0,0,63,0,0,0, - 127,128,0,0,115,128,0,0,225,192,0,0,192,224,0,1, - 192,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 255,224,0,3,255,240,0,15,255,252,0,31,255,254,0,31, - 0,62,0,62,0,31,0,60,0,15,0,120,0,7,128,120, - 0,7,128,112,0,3,128,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,112,0,3,128,120, - 0,7,128,120,0,7,128,120,0,15,128,60,0,15,0,62, - 0,31,0,31,128,126,0,15,255,252,0,7,255,248,0,3, - 255,240,0,0,255,192,0,26,39,156,30,2,0,0,32,96, - 0,0,252,224,0,0,255,224,0,1,207,192,0,1,129,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,255,224,0,3,255,240,0,15,255,252,0,31,255,254, - 0,31,0,62,0,62,0,31,0,60,0,15,0,120,0,7, - 128,120,0,7,128,112,0,3,128,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,112,0,3, - 128,120,0,7,128,120,0,7,128,120,0,15,128,60,0,15, - 0,62,0,31,0,31,128,126,0,15,255,252,0,7,255,248, - 0,3,255,240,0,0,255,192,0,26,39,156,30,2,0,0, - 240,240,0,0,240,240,0,0,240,240,0,0,240,240,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,255,224,0,3,255,240,0,15,255,252,0,31, - 255,254,0,31,0,62,0,62,0,31,0,60,0,15,0,120, - 0,7,128,120,0,7,128,112,0,3,128,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,112, - 0,3,128,120,0,7,128,120,0,7,128,120,0,15,128,60, - 0,15,0,62,0,31,0,31,128,126,0,15,255,252,0,7, - 255,248,0,3,255,240,0,0,255,192,0,22,22,66,40,9, - 1,96,0,24,240,0,60,120,0,120,56,0,112,28,0,224, - 14,1,192,7,3,128,3,135,0,1,206,0,0,252,0,0, - 120,0,0,120,0,0,252,0,1,206,0,3,135,0,7,3, - 128,14,1,192,28,0,224,56,0,112,112,0,56,96,0,24, - 64,0,8,26,38,152,30,2,252,0,0,1,0,0,0,3, - 128,0,0,3,192,0,0,7,128,0,255,199,128,3,255,255, - 0,15,255,255,0,31,255,254,0,31,0,62,0,62,0,127, - 0,124,0,127,0,120,0,255,128,120,1,247,128,240,1,227, - 128,240,3,195,192,240,7,195,192,240,7,131,192,240,15,3, - 192,240,31,3,192,240,30,3,192,240,60,3,192,240,124,3, - 192,240,248,3,192,112,240,3,192,121,240,7,128,123,224,7, - 128,127,192,15,128,63,192,15,0,63,128,31,0,31,128,126, - 0,31,255,252,0,31,255,248,0,63,255,240,0,124,255,192, - 0,120,0,0,0,240,0,0,0,112,0,0,0,32,0,0, - 0,23,41,123,29,3,0,3,192,0,1,192,0,1,224,0, - 0,240,0,0,112,0,0,56,0,0,24,0,0,28,0,0, - 0,0,0,0,0,0,0,0,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,120,0,60,120,0,60, - 124,0,124,62,0,248,63,255,248,31,255,240,15,255,224,3, - 255,128,23,41,123,29,3,0,0,7,128,0,7,0,0,15, - 0,0,30,0,0,28,0,0,56,0,0,48,0,0,112,0, - 0,0,0,0,0,0,0,0,0,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,120,0,60,120,0, - 60,124,0,124,62,0,248,63,255,248,31,255,240,15,255,224, - 3,255,128,23,41,123,29,3,0,0,124,0,0,124,0,0, - 254,0,0,238,0,1,199,0,1,199,0,3,131,128,7,1, - 128,0,0,0,0,0,0,0,0,0,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,120,0,60,120, - 0,60,124,0,124,62,0,248,63,255,248,31,255,240,15,255, - 224,3,255,128,23,38,114,29,3,0,3,195,192,3,195,192, - 3,195,192,3,195,192,0,0,0,0,0,0,0,0,0,0, - 0,0,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,120,0,60,120,0,60,124,0,124,62,0,248, - 63,255,248,31,255,240,15,255,224,3,255,128,24,41,123,26, - 1,0,0,3,192,0,7,128,0,7,0,0,15,0,0,14, - 0,0,28,0,0,24,0,0,48,0,0,0,0,0,0,0, - 0,0,0,248,0,15,248,0,31,124,0,30,124,0,60,62, - 0,124,30,0,120,31,0,248,15,0,240,15,129,224,7,129, - 224,3,195,192,3,227,192,1,231,128,1,247,0,0,255,0, - 0,254,0,0,126,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,19,30,90, - 24,3,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,255,248,0,255,255,0,255,255,128,255,255, - 192,240,15,192,240,3,224,240,1,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,3,224,240,15,192,255,255,192,255, - 255,128,255,255,0,255,248,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,20,30,90, - 22,2,0,3,248,0,15,254,0,63,255,0,124,15,0,248, - 7,128,240,7,128,240,7,128,240,7,128,240,15,0,240,31, - 0,240,62,0,240,124,0,240,248,0,240,240,0,240,240,0, - 240,248,0,240,126,0,240,63,0,240,31,192,240,15,224,240, - 3,224,240,1,240,240,0,240,240,0,240,243,192,240,243,192, - 240,241,224,240,241,241,224,240,255,224,240,63,128,18,31,93, - 23,2,0,7,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,0,0, - 0,0,0,0,15,254,0,63,255,0,62,15,128,120,7,128, - 120,3,192,0,3,192,0,3,192,3,255,192,15,255,192,63, - 255,192,126,3,192,120,3,192,240,3,192,240,3,192,240,7, - 192,240,7,192,248,15,192,124,63,192,63,251,192,31,227,192, - 18,32,96,23,2,0,0,60,0,0,60,0,0,120,0,0, - 240,0,0,224,0,1,192,0,1,128,0,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,63,255,0, - 62,15,128,120,7,128,120,3,192,0,3,192,0,3,192,3, - 255,192,15,255,192,63,255,192,126,3,192,120,3,192,240,3, - 192,240,3,192,240,7,192,240,7,192,248,15,192,124,63,192, - 63,251,192,31,227,192,18,32,96,23,2,0,1,224,0,3, - 240,0,3,240,0,7,184,0,7,60,0,14,28,0,12,14, - 0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,30,90,23, - 2,0,7,134,0,15,206,0,15,254,0,28,124,0,24,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,243,192,18,30,90,23, - 2,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,34,102,23, - 2,0,1,224,0,3,240,0,6,24,0,12,12,0,12,12, - 0,12,12,0,12,12,0,6,24,0,3,240,0,1,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,15,254,0,63, - 255,0,62,15,128,120,7,128,120,3,192,0,3,192,0,3, - 192,3,255,192,15,255,192,63,255,192,126,3,192,120,3,192, - 240,3,192,240,3,192,240,7,192,240,7,192,248,15,192,124, - 63,192,63,251,192,31,227,192,32,20,80,36,2,1,15,248, - 31,240,63,254,63,248,124,30,120,60,120,7,112,30,120,7, - 224,14,0,3,224,15,0,3,192,15,0,127,255,255,31,255, - 255,255,63,255,255,255,126,3,192,0,120,3,192,0,240,3, - 192,0,240,3,192,15,240,7,224,14,240,7,224,30,248,14, - 112,30,126,62,124,124,63,252,63,248,31,240,15,240,17,30, - 90,21,2,247,15,252,0,31,254,0,62,31,0,120,15,128, - 120,7,128,240,7,128,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,7,128,112,7, - 128,120,7,128,120,15,0,62,31,0,31,254,0,15,252,0, - 1,128,0,1,128,0,1,240,0,1,252,0,1,254,0,0, - 14,0,0,14,0,0,14,0,7,252,0,7,240,0,18,32, - 96,22,2,0,30,0,0,15,0,0,7,0,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,96,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,252,0,31,254,0,62,31, - 0,60,7,128,120,3,128,112,3,192,240,3,192,240,3,192, - 255,255,192,255,255,192,255,255,192,240,0,0,240,0,0,240, - 0,0,112,3,192,120,7,128,56,7,128,62,31,0,31,254, - 0,7,252,0,18,32,96,22,2,0,0,30,0,0,60,0, - 0,120,0,0,112,0,0,224,0,0,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,31,254,0,62,31,0,60,7,128,120,3,128,112,3,192, - 240,3,192,240,3,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,112,3,192,120,7,128,56,7, - 128,62,31,0,31,254,0,7,252,0,18,32,96,22,2,0, - 1,224,0,3,240,0,3,240,0,7,248,0,7,56,0,14, - 28,0,12,12,0,28,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,31,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,7,128,56,7,128,62,31,0,31,254,0,7,252,0, - 18,30,90,22,2,0,30,30,0,30,30,0,30,30,0,30, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,15,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,3,128,60,7,128,62,15,0,31,254,0,7,252,0, - 8,32,32,10,255,0,240,120,56,28,30,14,7,3,0,0, - 0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,9,32,64,10,2,0,15,128,15,0, - 30,0,28,0,56,0,56,0,112,0,224,0,0,0,0,0, - 0,0,0,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,12,32,64,10, - 255,0,15,0,31,128,31,128,59,192,57,192,112,224,224,96, - 192,112,0,0,0,0,0,0,0,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,12,30,60,10,255,0,240,240,240,240,240,240,240,240, - 0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,20,30,90,24,2,0,16,1,0,60,7,0, - 30,31,0,7,252,0,3,240,0,7,240,0,62,120,0,120, - 60,0,96,30,0,0,15,0,7,255,128,31,255,192,63,15, - 192,60,3,192,120,1,224,120,1,224,240,1,224,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 1,224,120,1,224,120,3,224,60,3,192,63,15,128,31,255, - 0,7,254,0,18,30,90,24,3,0,7,14,0,15,204,0, - 31,252,0,28,248,0,24,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,243,254,0,247,255,0,254,31, - 128,248,7,128,248,7,128,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,20,32,96,24,2,0,15,0,0,7,128,0, - 3,128,0,1,192,0,1,192,0,0,224,0,0,112,0,0, - 48,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,15,255,0,63,15,128,60,3,192,120,3,224,120,1,224, - 240,1,224,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,1,224,120,1,224,120,3,224,60,3, - 192,63,15,128,15,255,0,7,254,0,20,32,96,24,2,0, - 0,30,0,0,30,0,0,60,0,0,56,0,0,112,0,0, - 96,0,0,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,15,255,0,63,15,128,60,3,192, - 120,3,224,120,1,224,240,1,224,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,1,224,120,1, - 224,120,3,224,60,3,192,63,15,128,15,255,0,7,254,0, - 20,32,96,24,2,0,0,240,0,1,248,0,1,248,0,3, - 188,0,3,156,0,7,14,0,6,6,0,12,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,3,135,0,7, - 230,0,15,254,0,14,124,0,12,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,15,15,0,15, - 15,0,15,15,0,15,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,24,19,57,40,8,2,0,16,0,0, - 56,0,0,124,0,0,124,0,0,124,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,56,0,21,26,78,24,1,254,0,0,56,0,0, - 120,0,0,112,3,255,224,7,255,192,31,135,192,30,3,224, - 60,7,240,60,15,240,120,14,240,120,28,120,120,56,120,120, - 120,120,120,112,120,120,224,120,121,192,120,123,192,240,63,128, - 240,63,1,240,30,1,224,15,135,192,31,255,128,59,255,0, - 112,0,0,240,0,0,96,0,0,18,32,96,24,3,0,30, - 0,0,15,0,0,7,0,0,3,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,0,0,0,0,0,0,0,0, - 0,0,0,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,7,192,120,7,192,124,31,192,63,251,192,31,243,192,18, - 32,96,24,3,0,0,62,0,0,60,0,0,120,0,0,112, - 0,0,224,0,0,224,0,1,192,0,3,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,7,192,120,7,192,124,31,192,63, - 251,192,31,243,192,18,32,96,24,3,0,1,224,0,3,240, - 0,3,240,0,7,120,0,7,56,0,14,28,0,28,12,0, - 24,14,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 7,192,124,31,192,63,251,192,31,243,192,18,30,90,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,40,120,21,1, - 248,0,15,0,0,30,0,0,28,0,0,56,0,0,112,0, - 0,112,0,0,224,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,240,1,224,120,1,224,120,1, - 192,60,3,192,60,3,192,62,7,128,30,7,128,30,7,0, - 15,15,0,15,15,0,15,158,0,7,158,0,7,156,0,3, - 252,0,3,252,0,1,248,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,224,0,1,224,0,33,224,0,243,192,0, - 127,192,0,127,128,0,31,0,0,19,38,114,24,3,248,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,243,254,0, - 247,255,0,254,15,128,252,7,192,248,3,192,248,3,192,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,248,3,192,248,3,192,252,7,192, - 254,15,128,247,255,0,243,254,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,20,38,114,22,1,248,15,15,0,15,15,0,15,15,0, - 15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,248,0,224,120,1,224,120,1, - 224,60,3,192,60,3,192,62,3,128,30,7,128,30,7,128, - 15,15,0,15,15,0,7,143,0,7,158,0,7,222,0,3, - 252,0,3,252,0,1,252,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=33 x= 8 y=15 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30n[1201] U8G_FONT_SECTION("u8g_font_fur30n") = { - 0,54,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=25 dx=40 dy= 0 ascent=33 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30r[7380] U8G_FONT_SECTION("u8g_font_fur30r") = { - 0,54,54,253,245,30,9,94,20,223,32,127,249,33,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--48-480-72-72-P-226-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=16 dx=49 dy= 0 ascent=36 len=116 - Font Bounding box w=65 h=64 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur35n[1447] U8G_FONT_SECTION("u8g_font_fur35n") = { - 0,65,64,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,19,19,57,31,6,16,6,12,0,30,15,0,15,30,0, - 15,30,0,7,28,0,3,184,0,1,176,0,193,240,96,255, - 255,224,255,255,224,248,227,224,1,240,0,3,184,0,7,188, - 0,7,28,0,15,30,0,30,15,0,14,14,0,2,8,0, - 29,29,116,49,10,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,255,255,255,248,255,255, - 255,248,255,255,255,248,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,9,12,24,13,2,250, - 31,128,31,0,31,0,62,0,62,0,62,0,60,0,124,0, - 120,0,120,0,112,0,240,0,12,4,8,16,2,10,255,240, - 255,240,255,240,255,240,5,6,6,13,5,0,248,248,248,248, - 248,248,15,39,78,19,2,253,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,112,0,112,0,240, - 0,224,0,224,1,224,1,192,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,15,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,56,0,120,0, - 112,0,112,0,240,0,22,35,105,27,2,1,3,255,0,7, - 255,128,31,255,224,31,255,224,62,3,240,62,1,240,124,0, - 248,120,0,248,120,0,120,248,0,120,248,0,124,248,0,124, - 248,0,124,248,0,124,248,0,124,248,0,124,248,0,124,248, - 0,124,248,0,124,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,120,0,124,120,0,120,120,0,120,124,0,248, - 60,0,248,62,1,240,63,3,240,31,255,224,15,255,192,7, - 255,128,1,255,0,12,35,70,27,7,0,3,240,7,240,15, - 240,31,240,127,240,255,240,253,240,241,240,193,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,21,35,105,27,3,1,3,255,0,15,255,128,31,255,192, - 63,255,224,63,1,240,126,0,240,124,0,248,124,0,248,124, - 0,248,124,0,248,0,0,248,0,0,248,0,0,240,0,1, - 240,0,3,224,0,7,224,0,7,192,0,15,128,0,31,128, - 0,63,0,0,126,0,0,252,0,1,248,0,3,240,0,7, - 224,0,15,192,0,31,192,0,31,128,0,63,0,0,126,0, - 0,252,0,0,255,255,248,255,255,248,255,255,248,255,255,248, - 22,35,105,27,2,1,3,255,0,15,255,192,31,255,224,31, - 255,240,63,1,248,62,0,248,124,0,120,124,0,120,124,0, - 124,0,0,120,0,0,120,0,0,248,0,1,240,0,15,224, - 0,255,192,0,255,0,0,255,128,0,255,192,0,15,224,0, - 1,240,0,0,248,0,0,248,0,0,124,0,0,124,0,0, - 124,248,0,124,248,0,124,252,0,124,252,0,120,124,0,248, - 127,3,248,63,255,240,31,255,224,15,255,192,3,255,0,24, - 35,105,27,1,0,0,3,240,0,7,240,0,7,240,0,15, - 240,0,31,240,0,63,240,0,61,240,0,121,240,0,249,240, - 0,241,240,1,225,240,3,225,240,3,193,240,7,129,240,15, - 129,240,15,1,240,30,1,240,62,1,240,60,1,240,120,1, - 240,248,1,240,240,1,240,255,255,255,255,255,255,255,255,255, - 255,255,255,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,21,35, - 105,27,3,0,127,255,224,127,255,224,127,255,224,127,255,224, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,254,0,125,255,128,127,255, - 192,127,131,224,126,1,240,124,0,240,120,0,248,120,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,248,0,120,248,0,248,248,0,240,248,1,240,126,3, - 224,63,255,224,63,255,192,15,255,128,7,254,0,23,35,105, - 27,2,1,1,255,128,7,255,192,15,255,224,31,193,240,31, - 0,248,62,0,248,62,0,120,124,0,120,124,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,127,0,120,255,192, - 249,255,240,251,255,240,255,131,248,254,0,248,252,0,124,252, - 0,124,248,0,60,248,0,60,248,0,60,248,0,62,248,0, - 60,248,0,60,120,0,60,124,0,124,124,0,120,63,1,248, - 31,255,240,15,255,224,7,255,192,1,255,0,21,35,105,27, - 3,0,255,255,248,255,255,248,255,255,248,255,255,248,0,0, - 120,0,0,248,0,0,240,0,1,240,0,1,240,0,1,224, - 0,3,224,0,3,224,0,7,192,0,7,192,0,7,128,0, - 15,128,0,15,128,0,15,0,0,31,0,0,31,0,0,62, - 0,0,62,0,0,62,0,0,124,0,0,124,0,0,248,0, - 0,248,0,0,248,0,1,240,0,1,240,0,3,240,0,3, - 224,0,3,224,0,7,192,0,7,192,0,22,35,105,27,2, - 1,3,255,128,15,255,224,31,255,240,63,255,248,63,1,248, - 126,0,252,124,0,124,124,0,124,124,0,124,124,0,124,124, - 0,124,60,0,120,62,0,248,31,131,240,15,255,224,3,255, - 128,7,255,128,15,255,224,31,3,240,62,0,248,124,0,120, - 120,0,124,248,0,60,248,0,60,248,0,60,248,0,60,248, - 0,60,248,0,60,248,0,124,124,0,124,126,1,248,63,255, - 248,31,255,240,15,255,224,3,255,128,22,35,105,27,2,1, - 3,255,128,15,255,192,31,255,224,63,255,240,126,1,248,124, - 0,248,120,0,248,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,248,0,124,248,0,124,248,0,252,120,0,252, - 124,1,252,127,3,252,63,255,252,31,255,124,15,254,124,3, - 248,124,0,0,124,0,0,124,0,0,120,0,0,120,0,0, - 248,120,0,248,120,1,240,124,1,240,62,3,224,63,255,224, - 31,255,192,15,255,128,7,254,0,5,24,24,13,5,0,248, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,0, - 0,248,248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--58-580-72-72-P-271-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=175 - Font Bounding box w=78 h=76 x=-4 y=-15 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur42n[2194] U8G_FONT_SECTION("u8g_font_fur42n") = { - 0,78,76,252,241,42,0,0,0,0,42,58,0,43,249,42, - 0,23,22,66,37,7,20,3,1,128,7,131,192,15,131,224, - 7,131,192,7,199,192,3,199,128,1,239,0,0,238,0,0, - 254,0,254,124,254,255,255,254,255,255,254,254,124,254,0,124, - 0,0,238,0,1,239,0,3,199,128,3,199,128,7,195,192, - 15,131,224,15,131,224,3,1,128,35,35,175,59,12,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,255,255,255,255,224,255, - 255,255,255,224,255,255,255,255,224,255,255,255,255,224,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,10,15, - 30,16,3,249,31,192,31,192,31,128,63,128,63,0,63,0, - 62,0,62,0,126,0,124,0,124,0,120,0,248,0,248,0, - 240,0,14,5,10,18,2,12,255,252,255,252,255,252,255,252, - 255,252,6,7,7,16,6,0,252,252,252,252,252,252,252,17, - 46,138,23,3,253,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,240, - 0,1,224,0,1,224,0,1,224,0,3,192,0,3,192,0, - 3,192,0,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,62,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,26, - 43,172,32,3,0,0,255,224,0,3,255,240,0,7,255,252, - 0,15,255,254,0,31,255,254,0,31,128,127,0,63,0,63, - 0,62,0,31,128,126,0,31,128,124,0,15,128,124,0,15, - 192,124,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,252,0,7,192,252,0,7,192,252,0,7, - 192,252,0,7,192,252,0,7,192,124,0,15,192,124,0,15, - 192,124,0,15,192,126,0,15,128,126,0,31,128,62,0,31, - 128,63,0,63,0,31,128,127,0,31,224,254,0,15,255,254, - 0,7,255,252,0,3,255,248,0,1,255,224,0,0,63,128, - 0,14,42,84,32,8,0,0,252,1,252,3,252,7,252,15, - 252,63,252,127,252,255,124,254,124,248,124,224,124,128,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,25,42,168,32,4, - 1,1,255,192,0,7,255,240,0,15,255,248,0,31,255,252, - 0,31,255,254,0,63,128,127,0,63,0,63,0,127,0,31, - 128,126,0,31,128,126,0,31,128,126,0,15,128,126,0,15, - 128,0,0,31,128,0,0,31,128,0,0,31,0,0,0,63, - 0,0,0,63,0,0,0,126,0,0,0,252,0,0,1,252, - 0,0,3,248,0,0,7,240,0,0,7,224,0,0,15,224, - 0,0,31,192,0,0,63,128,0,0,127,0,0,0,254,0, - 0,1,252,0,0,3,248,0,0,7,240,0,0,15,224,0, - 0,31,224,0,0,63,192,0,0,63,128,0,0,127,0,0, - 0,254,0,0,0,255,255,255,128,255,255,255,128,255,255,255, - 128,255,255,255,128,255,255,255,128,26,43,172,32,3,0,1, - 255,192,0,7,255,240,0,15,255,252,0,31,255,254,0,31, - 255,255,0,63,128,127,0,63,0,63,128,127,0,31,128,126, - 0,15,128,126,0,15,128,252,0,15,128,0,0,15,128,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,63,0,0, - 0,126,0,0,3,252,0,0,127,248,0,0,127,240,0,0, - 127,224,0,0,127,240,0,0,127,252,0,0,3,254,0,0, - 0,127,0,0,0,63,128,0,0,31,192,0,0,15,192,0, - 0,7,192,0,0,7,192,0,0,7,192,252,0,7,192,252, - 0,7,192,252,0,7,192,254,0,15,192,254,0,31,192,127, - 0,63,128,127,192,255,0,63,255,255,0,31,255,254,0,15, - 255,248,0,3,255,240,0,0,255,128,0,29,42,168,32,2, - 0,0,0,127,0,0,0,127,0,0,0,255,0,0,1,255, - 0,0,3,255,0,0,3,255,0,0,7,223,0,0,15,223, - 0,0,15,159,0,0,31,31,0,0,63,31,0,0,62,31, - 0,0,124,31,0,0,252,31,0,0,248,31,0,1,240,31, - 0,3,240,31,0,3,224,31,0,7,192,31,0,15,192,31, - 0,15,128,31,0,31,0,31,0,63,0,31,0,126,0,31, - 0,124,0,31,0,252,0,31,0,248,0,31,0,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,26,43,172,32,3,255,127, - 255,255,0,127,255,255,0,127,255,255,0,127,255,255,0,127, - 255,255,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,31,192,0,124,127,240,0,124, - 255,252,0,125,255,252,0,127,224,254,0,127,128,63,0,127, - 0,31,0,126,0,31,128,126,0,15,128,124,0,15,128,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,7,192,0, - 0,7,192,0,0,15,192,0,0,15,192,0,0,15,192,252, - 0,15,128,252,0,31,128,254,0,31,128,126,0,63,0,127, - 0,127,0,127,192,254,0,63,255,252,0,31,255,248,0,15, - 255,240,0,3,255,224,0,0,127,0,0,27,43,172,32,3, - 0,0,127,240,0,1,255,252,0,3,255,254,0,7,255,255, - 0,15,240,63,0,31,192,31,128,31,128,15,128,63,0,15, - 192,63,0,15,192,126,0,7,192,126,0,0,0,126,0,0, - 0,124,0,0,0,124,0,0,0,124,0,0,0,124,0,0, - 0,124,15,224,0,124,63,248,0,124,255,254,0,124,255,255, - 0,125,255,255,128,127,224,127,128,127,192,31,192,255,128,15, - 192,255,0,7,192,255,0,7,224,254,0,7,224,254,0,7, - 224,254,0,3,224,254,0,3,224,254,0,3,224,254,0,7, - 224,254,0,7,224,126,0,7,224,127,0,7,192,63,0,15, - 192,63,192,31,128,31,224,127,128,15,255,255,0,7,255,254, - 0,3,255,252,0,0,255,240,0,0,63,192,0,26,42,168, - 32,3,0,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,255,255,255,192,0,0,7,192,0,0,15,192,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,31,0,0, - 0,63,0,0,0,63,0,0,0,126,0,0,0,126,0,0, - 0,124,0,0,0,252,0,0,0,252,0,0,1,248,0,0, - 1,248,0,0,1,248,0,0,3,240,0,0,3,240,0,0, - 7,224,0,0,7,224,0,0,15,224,0,0,15,192,0,0, - 15,192,0,0,31,128,0,0,31,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,127,0,0,0,126,0,0,0, - 254,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,3,240,0,0,27,43,172,32,2, - 0,0,255,224,0,3,255,252,0,15,255,254,0,31,255,255, - 0,63,255,255,128,63,128,63,192,127,0,31,192,126,0,15, - 192,126,0,7,192,126,0,7,192,124,0,7,192,124,0,7, - 192,126,0,7,192,62,0,15,192,63,0,15,128,31,128,31, - 0,15,224,127,0,7,255,254,0,3,255,248,0,0,255,240, - 0,3,255,248,0,15,255,254,0,31,224,127,0,63,128,31, - 128,62,0,15,128,126,0,7,192,124,0,7,224,124,0,3, - 224,252,0,3,224,248,0,3,224,248,0,3,224,252,0,3, - 224,252,0,3,224,252,0,7,224,254,0,7,224,126,0,15, - 224,127,0,31,192,63,192,127,192,63,255,255,128,31,255,255, - 0,7,255,254,0,1,255,248,0,0,63,192,0,27,43,172, - 32,3,0,1,255,240,0,7,255,252,0,15,255,254,0,31, - 255,255,0,63,255,255,128,63,128,63,128,126,0,31,192,126, - 0,15,192,124,0,15,192,252,0,15,224,252,0,7,224,252, - 0,7,224,248,0,7,224,248,0,7,224,248,0,7,224,252, - 0,7,224,252,0,7,224,124,0,15,224,124,0,15,224,126, - 0,31,224,63,0,63,224,63,192,251,224,31,255,243,224,15, - 255,243,224,3,255,195,224,0,255,7,224,0,0,7,224,0, - 0,7,224,0,0,7,192,0,0,7,192,0,0,7,192,0, - 0,15,192,124,0,15,192,124,0,15,128,62,0,31,128,62, - 0,63,128,63,0,127,0,31,193,254,0,31,255,254,0,15, - 255,252,0,7,255,248,0,3,255,224,0,0,127,128,0,6, - 29,29,16,6,0,252,252,252,252,252,252,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,252,252,252,252,252, - 252,252}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--68-680-72-72-P-317-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=250 - Font Bounding box w=92 h=89 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur49n[2683] U8G_FONT_SECTION("u8g_font_fur49n") = { - 0,92,89,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,26,104,45,9,23,0,192,96,0,3,192,120,0,15, - 192,126,0,7,224,252,0,3,224,248,0,1,241,240,0,1, - 241,240,0,0,251,224,0,0,123,192,0,0,59,128,0,224, - 63,128,224,255,255,255,224,255,255,255,224,255,255,255,224,255, - 159,63,224,128,63,128,32,0,123,192,0,0,123,192,0,0, - 241,224,0,1,241,240,0,3,241,248,0,3,224,248,0,7, - 224,252,0,15,192,124,0,3,192,120,0,0,128,32,0,41, - 41,246,69,14,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,255,255,255,255,255,128,255,255,255, - 255,255,128,255,255,255,255,255,128,255,255,255,255,255,128,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,12,17,34,19,3, - 247,15,240,15,240,15,224,15,224,31,224,31,192,31,192,31, - 128,63,128,63,0,63,0,62,0,126,0,126,0,124,0,124, - 0,248,0,16,6,12,22,3,14,255,255,255,255,255,255,255, - 255,255,255,255,255,7,8,8,19,7,0,254,254,254,254,254, - 254,254,254,21,54,162,27,3,252,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,31,51,204,38,3, - 255,0,31,240,0,0,127,252,0,1,255,255,0,3,255,255, - 128,7,255,255,192,15,255,255,224,31,240,31,240,31,192,15, - 240,63,128,7,248,63,128,3,248,63,0,1,248,127,0,1, - 252,126,0,1,252,126,0,0,252,126,0,0,252,254,0,0, - 252,254,0,0,254,252,0,0,254,252,0,0,254,252,0,0, - 254,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,254,254,0,0,254,254,0,0, - 254,254,0,0,254,254,0,0,254,126,0,0,254,126,0,0, - 252,126,0,0,252,127,0,1,252,127,0,1,252,63,0,1, - 252,63,128,3,248,63,128,3,248,31,192,7,248,31,224,15, - 240,15,248,63,240,15,255,255,224,7,255,255,192,3,255,255, - 128,1,255,255,0,0,127,252,0,0,15,240,0,16,49,98, - 38,9,0,0,127,0,255,1,255,3,255,7,255,31,255,63, - 255,127,255,255,255,255,63,252,63,240,63,192,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,29,50,200,38,4,0,0,31,224,0,0, - 255,252,0,3,255,255,0,7,255,255,128,15,255,255,192,31, - 255,255,224,31,240,31,224,63,224,7,240,63,192,3,240,63, - 128,3,248,127,128,3,248,127,0,1,248,127,0,1,248,127, - 0,1,248,127,0,1,248,0,0,1,248,0,0,1,248,0, - 0,3,248,0,0,3,248,0,0,7,240,0,0,7,240,0, - 0,15,224,0,0,31,224,0,0,63,192,0,0,127,128,0, - 0,127,0,0,0,255,0,0,1,254,0,0,3,252,0,0, - 7,248,0,0,15,240,0,0,31,240,0,0,63,224,0,0, - 127,192,0,0,127,128,0,0,255,0,0,1,254,0,0,3, - 252,0,0,7,248,0,0,15,248,0,0,31,240,0,0,63, - 224,0,0,127,192,0,0,255,128,0,0,255,0,0,0,255, - 255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255, - 255,255,248,31,51,204,38,3,255,0,31,240,0,0,255,254, - 0,1,255,255,128,3,255,255,192,7,255,255,224,15,248,31, - 240,31,224,7,248,31,192,3,248,63,192,1,252,63,128,0, - 252,63,128,0,252,127,0,0,252,127,0,0,252,127,0,0, - 252,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,7,240,0,0,31,224,0,0,255, - 192,0,31,255,128,0,31,254,0,0,31,252,0,0,31,255, - 0,0,31,255,192,0,0,255,224,0,0,15,240,0,0,7, - 248,0,0,3,252,0,0,1,252,0,0,0,254,0,0,0, - 254,0,0,0,126,0,0,0,126,0,0,0,126,254,0,0, - 126,254,0,0,126,255,0,0,126,255,0,0,254,127,0,0, - 254,127,128,1,252,127,128,3,252,63,224,7,248,31,248,31, - 240,15,255,255,224,7,255,255,192,3,255,255,128,0,255,254, - 0,0,31,240,0,34,50,250,38,2,0,0,0,15,240,0, - 0,0,15,240,0,0,0,31,240,0,0,0,63,240,0,0, - 0,63,240,0,0,0,127,240,0,0,0,255,240,0,0,0, - 255,240,0,0,1,251,240,0,0,3,251,240,0,0,3,243, - 240,0,0,7,227,240,0,0,15,227,240,0,0,15,195,240, - 0,0,31,131,240,0,0,63,131,240,0,0,63,3,240,0, - 0,126,3,240,0,0,254,3,240,0,1,252,3,240,0,1, - 248,3,240,0,3,248,3,240,0,7,240,3,240,0,7,224, - 3,240,0,15,224,3,240,0,31,192,3,240,0,31,128,3, - 240,0,63,128,3,240,0,127,0,3,240,0,126,0,3,240, - 0,252,0,3,240,0,252,0,3,240,0,255,255,255,255,192, - 255,255,255,255,192,255,255,255,255,192,255,255,255,255,192,255, - 255,255,255,192,255,255,255,255,192,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,240,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,3,240,0,0,0,3,240,0, - 0,0,3,240,0,30,50,200,38,4,255,63,255,255,224,63, - 255,255,224,63,255,255,224,63,255,255,224,63,255,255,224,63, - 255,255,224,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,3,248,0,63, - 31,254,0,63,63,255,128,63,127,255,192,63,255,255,224,63, - 248,31,224,63,224,7,240,63,192,3,240,63,128,3,248,63, - 0,1,248,63,0,1,252,62,0,1,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,254, - 0,1,252,254,0,1,248,254,0,1,248,255,0,3,248,127, - 0,3,240,127,128,7,224,127,192,15,224,63,240,63,192,31, - 255,255,128,15,255,255,0,7,255,254,0,1,255,248,0,0, - 31,224,0,31,51,204,38,3,255,0,7,248,0,0,63,255, - 0,0,255,255,192,1,255,255,224,3,255,255,240,7,252,15, - 240,15,248,7,248,31,224,3,248,31,192,1,252,63,192,1, - 252,63,128,0,252,63,0,0,252,127,0,0,252,127,0,0, - 0,127,0,0,0,126,0,0,0,126,0,0,0,126,0,0, - 0,126,0,0,0,126,0,0,0,126,7,252,0,126,31,255, - 0,126,63,255,192,126,127,255,224,126,255,255,240,127,252,15, - 248,127,240,3,248,255,192,1,252,255,192,1,252,255,128,0, - 254,255,128,0,254,255,0,0,126,255,0,0,126,255,0,0, - 126,255,0,0,126,255,0,0,126,255,0,0,126,255,0,0, - 126,127,0,0,126,127,0,0,126,127,128,0,254,63,128,0, - 252,63,128,1,252,31,192,1,252,31,224,3,248,15,248,15, - 240,7,255,255,224,3,255,255,192,1,255,255,128,0,127,254, - 0,0,15,248,0,30,49,196,38,4,0,255,255,255,252,255, - 255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,0, - 0,0,252,0,0,1,252,0,0,1,252,0,0,1,248,0, - 0,3,248,0,0,3,240,0,0,7,240,0,0,7,240,0, - 0,7,224,0,0,15,224,0,0,15,224,0,0,31,192,0, - 0,31,192,0,0,31,128,0,0,63,128,0,0,63,128,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,254,0,0, - 0,254,0,0,0,254,0,0,1,252,0,0,1,252,0,0, - 3,248,0,0,3,248,0,0,3,248,0,0,7,240,0,0, - 7,240,0,0,15,240,0,0,15,224,0,0,15,224,0,0, - 31,192,0,0,31,192,0,0,63,192,0,0,63,128,0,0, - 63,128,0,0,127,128,0,0,127,0,0,0,127,0,0,0, - 254,0,0,0,254,0,0,1,254,0,0,1,252,0,0,32, - 51,204,38,3,255,0,15,248,0,0,127,255,0,1,255,255, - 128,3,255,255,224,7,255,255,240,15,248,31,248,31,224,7, - 252,31,192,1,252,63,128,1,252,63,128,0,254,63,0,0, - 254,63,0,0,254,63,0,0,126,63,0,0,126,63,0,0, - 126,63,0,0,254,63,0,0,252,31,128,0,252,31,128,1, - 248,15,192,3,248,15,224,7,240,7,248,31,224,3,255,255, - 192,0,255,255,128,0,127,254,0,1,255,255,128,3,255,255, - 192,15,248,15,240,31,192,3,248,31,128,1,248,63,0,0, - 252,127,0,0,126,126,0,0,126,126,0,0,126,254,0,0, - 127,252,0,0,63,252,0,0,63,252,0,0,63,254,0,0, - 127,254,0,0,127,254,0,0,127,254,0,0,127,127,0,0, - 254,127,128,1,254,63,192,3,252,63,240,15,252,31,255,255, - 248,15,255,255,240,3,255,255,192,0,255,255,0,0,15,248, - 0,31,51,204,38,3,255,0,31,248,0,0,255,255,0,3, - 255,255,192,7,255,255,224,15,255,255,240,31,240,31,248,63, - 192,7,248,63,128,3,252,127,0,1,252,126,0,1,252,126, - 0,0,254,254,0,0,254,254,0,0,254,252,0,0,254,252, - 0,0,254,252,0,0,254,252,0,0,254,252,0,0,254,254, - 0,0,254,254,0,0,254,254,0,0,254,126,0,1,254,127, - 0,1,254,63,128,3,254,63,192,7,254,31,240,31,254,31, - 255,255,126,15,255,254,126,7,255,252,126,1,255,248,126,0, - 63,224,126,0,0,0,126,0,0,0,126,0,0,0,126,0, - 0,0,254,0,0,0,252,0,0,0,252,0,0,0,252,126, - 0,0,252,127,0,1,248,63,0,1,248,63,0,3,248,63, - 0,7,240,63,128,7,240,31,192,31,224,31,224,63,224,15, - 255,255,192,7,255,255,128,3,255,255,0,1,255,252,0,0, - 63,224,0,7,34,34,19,7,0,254,254,254,254,254,254,254, - 254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,254,254,254,254,254,254,254}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=11 dx=16 dy= 0 ascent=16 len=34 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11[4313] U8G_FONT_SECTION("u8g_font_gdb11") = { - 0,27,26,247,250,11,2,67,5,71,32,255,252,16,251,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,4,0,0,3,13,13,6,1,251,96,224,64, - 64,64,64,96,96,96,96,96,96,192,7,11,11,9,1,0, - 16,24,126,148,144,144,144,210,124,16,16,8,11,11,9,1, - 0,30,34,98,96,96,252,96,96,97,127,158,7,7,7,9, - 1,2,132,126,68,68,68,68,254,10,11,22,9,255,0,227, - 192,113,0,51,0,58,0,26,0,30,0,12,0,127,128,12, - 0,12,0,30,0,1,19,19,4,2,252,128,128,128,128,128, - 128,128,128,0,0,0,128,128,128,128,128,128,128,128,7,13, - 13,9,1,0,112,152,144,240,252,158,130,98,60,12,68,100, - 124,6,3,3,7,0,9,196,204,140,11,12,24,13,1,0, - 31,0,32,128,79,64,147,32,146,32,144,32,144,32,144,32, - 137,32,78,64,32,128,31,0,5,6,6,5,0,5,112,208, - 176,144,248,240,7,8,8,9,1,0,18,38,108,220,220,108, - 38,18,7,4,4,9,1,1,254,2,2,2,6,1,1,6, - 0,4,252,6,7,7,6,0,6,120,72,188,188,180,104,120, - 7,1,1,9,1,11,254,4,4,4,6,1,7,112,144,144, - 224,7,8,8,7,0,1,16,16,254,16,16,16,0,254,4, - 7,7,6,1,5,112,208,16,32,64,144,240,4,7,7,6, - 1,5,48,80,144,48,16,144,224,4,4,4,6,2,9,112, - 96,192,128,9,12,24,10,1,252,227,0,99,0,99,0,99, - 0,99,0,99,0,127,128,91,0,64,0,64,0,96,0,112, - 0,10,13,26,11,0,254,63,192,98,128,194,128,194,128,98, - 128,62,128,2,128,2,128,2,128,2,128,2,128,2,128,7, - 192,3,3,3,4,0,5,224,224,192,2,4,4,4,2,252, - 192,64,64,192,4,7,7,6,1,5,32,224,32,32,32,32, - 240,4,6,6,5,0,5,96,144,144,144,96,240,8,8,8, - 9,1,0,136,76,102,55,55,102,76,136,10,11,22,11,1, - 0,192,192,65,128,65,0,66,0,68,0,172,0,8,128,19, - 128,50,128,99,192,197,192,9,11,22,11,1,0,192,128,65, - 0,66,0,66,0,68,0,168,0,25,128,18,128,33,0,98, - 128,199,128,11,11,22,11,0,0,96,96,80,192,32,128,17, - 0,146,0,230,0,4,64,9,192,25,64,49,224,98,224,6, - 13,13,8,1,251,56,56,48,16,16,16,32,96,192,196,204, - 204,112,11,16,32,11,0,0,16,0,24,0,12,0,6,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,16,32,11,0,0,1,0, - 3,128,6,0,12,0,0,0,6,0,14,0,14,0,11,0, - 19,0,19,0,63,128,33,128,33,192,96,192,241,224,11,16, - 32,11,0,0,4,0,14,0,31,0,17,0,0,128,6,0, - 14,0,14,0,11,0,19,0,19,0,63,128,33,128,33,192, - 96,192,241,224,11,15,30,11,0,0,12,128,31,128,39,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,15,30,11,0,0,16,128, - 49,128,49,128,0,0,6,0,14,0,14,0,11,0,19,0, - 19,0,63,128,33,128,33,192,96,192,241,224,11,16,32,11, - 0,0,6,0,10,0,10,0,14,0,0,0,6,0,14,0, - 14,0,11,0,19,0,19,0,63,128,33,128,33,192,96,192, - 241,224,14,11,22,15,0,0,15,252,7,140,5,136,13,128, - 9,128,31,248,25,128,17,128,49,132,33,132,243,252,9,15, - 30,10,0,252,31,0,99,0,64,0,192,0,192,0,192,0, - 192,0,192,0,96,0,112,128,31,0,4,0,2,0,6,0, - 28,0,9,16,32,9,0,0,32,0,48,0,24,0,4,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,9,16,32,9,0,0,2,0, - 7,0,14,0,24,0,0,0,255,0,49,0,49,0,48,0, - 48,0,63,0,48,0,48,0,48,128,48,128,255,128,9,16, - 32,9,0,0,8,0,28,0,30,0,35,0,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,15,30,9,0,0,33,0,97,0,99,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,5,16,16,6,0,0,64,224, - 112,16,8,120,48,48,48,48,48,48,48,48,48,120,5,16, - 16,6,1,0,16,56,112,192,0,240,96,96,96,96,96,96, - 96,96,96,240,6,16,16,6,0,0,48,112,120,204,0,120, - 48,48,48,48,48,48,48,48,48,120,7,15,15,6,255,0, - 66,194,194,0,60,24,24,24,24,24,24,24,24,24,60,9, - 11,22,11,1,0,254,0,99,0,97,0,97,128,97,128,249, - 128,97,128,97,128,97,0,99,0,252,0,10,15,30,12,1, - 0,25,0,63,0,46,0,0,0,225,192,96,128,112,128,120, - 128,92,128,76,128,70,128,71,128,67,128,65,128,225,128,10, - 16,32,11,0,0,16,0,24,0,12,0,2,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,16,32,11,0,0,1,0,3,128,6, - 0,12,0,0,0,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,10,16,32,11,0, - 0,4,0,14,0,31,0,17,128,0,0,30,0,33,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,0,30, - 0,10,15,30,11,0,0,12,128,31,128,39,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,15,30,11,0,0,16,128,49,128,49, - 128,0,0,30,0,33,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,0,30,0,6,6,6,8,1,2,140, - 216,112,112,216,140,10,11,22,11,0,0,31,192,35,128,99, - 128,195,192,198,192,204,192,216,192,240,192,113,128,113,0,254, - 0,10,16,32,12,1,0,16,0,56,0,28,0,6,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,12,1,0,2,0,7, - 0,14,0,24,0,0,0,241,192,96,128,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,49,0,30,0,10,16,32, - 12,1,0,12,0,14,0,30,0,51,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,49, - 0,30,0,10,15,30,12,1,0,33,0,33,128,33,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,11,1,0,4,0,7, - 0,12,0,24,0,0,0,227,192,113,128,49,0,59,0,26, - 0,14,0,12,0,12,0,12,0,12,0,30,0,8,11,11, - 10,1,0,240,96,126,99,99,99,99,98,124,96,240,9,13, - 26,11,1,0,14,0,49,128,33,128,97,128,97,0,102,0, - 104,0,100,0,103,0,97,128,104,128,104,128,239,0,8,13, - 13,9,1,0,96,48,16,8,0,60,102,198,30,102,198,207, - 118,8,13,13,9,1,0,12,28,24,48,0,60,102,198,30, - 102,198,207,118,8,13,13,9,1,0,16,56,108,198,0,60, - 102,198,30,102,198,207,118,8,12,12,9,1,0,114,252,0, - 0,60,102,198,30,102,198,207,118,8,12,12,9,1,0,194, - 198,134,0,60,102,198,30,102,198,207,118,8,13,13,9,1, - 0,24,40,40,48,0,60,102,198,30,102,198,207,118,11,8, - 16,13,1,0,61,192,102,32,196,32,63,224,68,0,198,32, - 255,192,115,128,7,12,12,8,1,252,62,70,196,192,192,192, - 102,56,16,8,24,48,7,13,13,9,1,0,96,48,24,8, - 0,60,70,198,254,192,192,98,60,7,13,13,9,1,0,12, - 14,24,48,0,60,70,198,254,192,192,98,60,7,13,13,9, - 1,0,24,56,108,66,0,60,70,198,254,192,192,98,60,7, - 12,12,9,1,0,66,198,194,0,60,70,198,254,192,192,98, - 60,5,13,13,5,0,0,224,96,48,16,0,48,112,48,48, - 48,48,48,120,5,13,13,5,1,0,48,56,96,64,128,96, - 224,96,96,96,96,96,240,6,13,13,5,0,0,48,112,216, - 132,0,48,112,48,48,48,48,48,120,7,12,12,5,255,0, - 66,194,194,0,24,56,24,24,24,24,24,60,7,13,13,9, - 1,0,112,62,56,108,4,62,78,198,198,198,196,76,56,9, - 12,24,10,1,0,57,0,126,0,0,0,0,0,110,0,255, - 0,115,0,99,0,99,0,99,0,99,0,247,128,7,13,13, - 9,1,0,112,48,24,8,0,56,68,198,198,198,198,68,56, - 7,13,13,9,1,0,14,12,24,16,0,56,68,198,198,198, - 198,68,56,7,13,13,9,1,0,24,60,44,66,0,56,68, - 198,198,198,198,68,56,7,12,12,9,1,0,50,124,128,0, - 56,68,198,198,198,198,68,56,7,12,12,9,1,0,66,194, - 66,0,56,68,198,198,198,198,68,56,7,6,6,8,0,2, - 16,16,0,126,144,16,7,9,9,9,1,0,2,58,68,206, - 214,230,230,68,248,10,13,26,10,0,0,24,0,56,0,12, - 0,4,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,7,0,6,0,12, - 0,8,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,12,0,30,0,18, - 0,33,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,12,24,10,0,0,33,0,33,128,33, - 0,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,10,17,34,9,255,252,3,0,3,128,6,0,4, - 0,8,0,121,192,48,128,25,128,25,0,15,0,14,0,14, - 0,6,0,4,0,12,0,120,0,240,0,8,18,18,10,1, - 252,96,224,96,96,96,96,110,127,97,97,97,97,98,124,96, - 96,96,240,10,16,32,9,255,252,16,128,48,128,48,128,0, - 0,121,192,48,128,25,128,25,0,15,0,14,0,14,0,6, - 0,4,0,12,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx=10 dy= 0 ascent=14 len=17 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11n[278] U8G_FONT_SECTION("u8g_font_gdb11n") = { - 0,27,26,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=32 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11r[2001] U8G_FONT_SECTION("u8g_font_gdb11r") = { - 0,27,26,247,250,11,2,67,5,71,32,127,252,15,252,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12[4626] U8G_FONT_SECTION("u8g_font_gdb12") = { - 0,29,28,246,249,12,2,113,5,210,32,255,252,17,251,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,5,0,0,3,14,14,6,1,251,96,224,64,0,96,96, - 96,96,96,96,96,96,96,64,7,12,12,10,2,0,16,16, - 62,86,144,144,144,144,86,124,16,16,9,11,22,10,0,0, - 15,128,49,128,49,0,112,0,112,0,254,0,112,0,112,0, - 96,128,123,128,255,0,8,7,7,10,1,2,255,66,66,66, - 66,102,255,10,11,22,10,0,0,227,192,113,0,51,0,26, - 0,26,0,12,0,127,128,12,0,12,0,12,0,30,0,1, - 20,20,4,2,252,128,128,128,128,128,128,128,128,128,0,0, - 128,128,128,128,128,128,128,128,128,8,13,13,10,1,0,120, - 152,136,240,190,135,193,113,62,14,34,50,62,6,3,3,7, - 0,10,236,252,220,12,13,26,14,1,0,15,0,48,192,64, - 32,143,32,145,16,145,16,144,16,144,16,144,16,136,160,79, - 32,32,64,31,128,5,7,7,5,0,5,112,208,112,144,248, - 0,240,8,9,9,10,1,0,17,34,102,204,220,204,102,34, - 17,8,4,4,10,1,2,255,1,1,1,6,1,1,7,0, - 4,252,7,7,7,7,0,7,56,68,186,170,178,108,56,8, - 2,2,9,1,11,255,254,5,5,5,7,1,7,112,136,136, - 136,112,8,9,9,8,0,1,8,8,8,127,8,8,8,0, - 255,4,7,7,7,2,6,112,208,16,32,64,144,240,5,7, - 7,6,0,6,56,104,8,24,8,136,112,4,4,4,6,2, - 10,48,96,192,128,10,13,26,11,1,252,99,0,227,0,99, - 0,99,0,99,0,99,0,103,0,127,128,91,64,64,0,64, - 0,96,0,112,0,9,14,28,11,1,254,63,128,101,0,197, - 0,197,0,197,0,101,0,61,0,5,0,5,0,5,0,5, - 0,5,0,5,0,15,128,3,3,3,4,0,5,224,224,192, - 3,4,4,4,1,252,64,96,96,192,5,7,7,7,1,6, - 32,224,32,32,32,32,248,4,7,7,5,0,5,96,144,144, - 144,96,0,240,8,9,9,10,1,0,136,76,102,55,51,55, - 102,76,136,11,11,22,12,1,0,64,64,192,128,65,0,67, - 0,70,0,228,0,8,192,25,64,50,64,35,224,192,224,10, - 11,22,12,1,0,64,64,192,128,65,0,65,0,66,0,228, - 192,9,64,26,128,16,128,33,64,99,192,11,11,22,11,0, - 0,96,32,208,64,32,128,145,128,227,0,2,0,4,192,13, - 64,25,64,19,224,96,224,7,14,14,9,1,251,56,56,48, - 0,16,16,16,32,96,192,194,198,196,120,12,16,32,12,0, - 0,24,0,28,0,3,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,12,16,32,12,0,0,1,0,7,128,12,0,0,0,6, - 0,14,0,15,0,11,0,27,0,19,128,17,128,63,128,33, - 192,32,192,96,224,241,240,12,16,32,12,0,0,6,0,15, - 0,16,128,0,0,6,0,14,0,15,0,11,0,27,0,19, - 128,17,128,63,128,33,192,32,192,96,224,241,240,12,16,32, - 12,0,0,12,192,31,128,35,0,0,0,6,0,14,0,15, - 0,11,0,27,0,19,128,17,128,63,128,33,192,32,192,96, - 224,241,240,12,16,32,12,0,0,27,0,27,128,27,0,0, - 0,6,0,14,0,15,0,11,0,27,0,19,128,17,128,63, - 128,33,192,32,192,96,224,241,240,12,17,34,12,0,0,6, - 0,9,0,17,0,14,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,15,12,24,15,0,0,31,252,5,132,5,132,13,128,9, - 128,31,248,17,144,17,128,49,128,33,130,97,132,243,252,9, - 16,32,11,1,252,31,0,99,128,65,0,192,0,192,0,192, - 0,192,0,192,0,192,0,96,128,59,128,30,0,8,0,6, - 0,14,0,28,0,10,16,32,10,0,0,48,0,56,0,6, - 0,0,0,255,128,48,128,48,128,48,0,48,0,63,0,50, - 0,48,0,48,0,48,64,48,128,255,128,10,16,32,10,0, - 0,3,0,7,0,24,0,0,0,255,128,48,128,48,128,48, - 0,48,0,63,0,50,0,48,0,48,0,48,64,48,128,255, - 128,10,16,32,10,0,0,12,0,30,0,33,0,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,10,16,32,10,0,0,51,0,63, - 0,54,0,0,0,255,128,48,128,48,128,48,0,48,0,63, - 0,50,0,48,0,48,0,48,64,48,128,255,128,5,16,16, - 6,0,0,192,224,24,0,120,48,48,48,48,48,48,48,48, - 48,48,120,5,16,16,6,1,0,24,56,192,0,240,96,96, - 96,96,96,96,96,96,96,96,240,6,16,16,6,0,0,48, - 120,132,0,120,48,48,48,48,48,48,48,48,48,48,120,6, - 16,16,6,0,0,204,252,216,0,120,48,48,48,48,48,48, - 48,48,48,48,120,10,12,24,12,1,0,254,0,99,128,97, - 128,96,192,96,192,248,192,96,192,96,192,96,192,97,128,99, - 0,254,0,11,16,32,13,1,0,28,128,63,0,39,0,0, - 0,224,224,112,64,112,64,120,64,92,64,78,64,78,64,71, - 64,67,192,65,192,65,192,224,192,10,16,32,12,1,0,48, - 0,56,0,6,0,0,0,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,128,96,128,97,0,30,0,10, - 16,32,12,1,0,2,0,15,0,24,0,0,0,30,0,33, - 128,65,128,64,192,192,192,192,192,192,192,192,192,192,128,96, - 128,97,0,30,0,10,16,32,12,1,0,12,0,30,0,33, - 0,0,0,30,0,33,128,65,128,64,192,192,192,192,192,192, - 192,192,192,192,128,96,128,97,0,30,0,10,16,32,12,1, - 0,25,128,63,0,70,0,0,0,30,0,33,128,65,128,64, - 192,192,192,192,192,192,192,192,192,192,128,96,128,97,0,30, - 0,10,16,32,12,1,0,55,0,55,0,54,0,0,0,30, - 0,33,128,65,128,64,192,192,192,192,192,192,192,192,192,192, - 128,96,128,97,0,30,0,6,6,6,8,1,2,132,72,48, - 48,72,132,10,12,24,12,1,0,30,192,33,128,97,128,67, - 192,198,192,196,192,200,192,216,192,240,128,97,128,97,0,222, - 0,11,16,32,13,1,0,16,0,60,0,6,0,0,0,240, - 224,96,64,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,128,48,128,31,0,11,16,32,13,1,0,3,0,7, - 128,12,0,0,0,240,224,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,128,48,128,31,0,11,16,32, - 13,1,0,12,0,30,0,49,0,0,128,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,128,48, - 128,31,0,11,16,32,13,1,0,27,0,63,0,51,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,128,48,128,31,0,11,16,32,12,0,0,1, - 0,7,128,12,0,0,0,241,224,48,192,24,128,29,128,13, - 0,15,0,6,0,6,0,6,0,6,0,6,0,15,0,9, - 12,24,11,1,0,248,0,96,0,126,0,99,0,97,128,97, - 128,97,128,97,128,113,0,110,0,96,0,248,0,9,14,28, - 12,1,0,14,0,51,0,33,128,97,128,97,128,103,0,108, - 0,108,0,102,0,99,0,97,128,104,128,104,128,239,0,8, - 14,14,9,1,0,112,48,24,8,0,60,102,198,14,126,198, - 198,207,118,8,14,14,9,1,0,14,12,24,48,0,60,102, - 198,14,126,198,198,207,118,8,14,14,9,1,0,24,60,108, - 66,0,60,102,198,14,126,198,198,207,118,8,13,13,9,1, - 0,114,126,140,0,60,102,198,14,126,198,198,207,118,8,13, - 13,9,1,0,108,110,108,0,60,102,198,14,126,198,198,207, - 118,8,14,14,9,1,0,56,68,72,56,0,60,102,198,14, - 126,198,198,207,118,12,9,18,14,1,0,29,192,111,32,198, - 48,166,48,63,240,70,0,199,16,251,224,113,192,8,13,13, - 9,1,252,62,70,196,192,192,192,194,127,60,16,12,28,48, - 7,14,14,9,1,0,112,48,24,8,0,60,100,198,198,254, - 192,226,124,56,7,14,14,9,1,0,14,12,24,16,0,60, - 100,198,198,254,192,226,124,56,7,14,14,9,1,0,24,60, - 100,66,0,60,100,198,198,254,192,226,124,56,7,13,13,9, - 1,0,110,126,108,0,60,100,198,198,254,192,226,124,56,5, - 14,14,6,0,0,224,96,48,16,0,48,112,48,48,48,48, - 48,48,120,5,14,14,6,1,0,56,48,96,64,0,96,224, - 96,96,96,96,96,96,240,6,14,14,6,0,0,48,120,200, - 132,0,48,112,48,48,48,48,48,48,120,6,13,13,6,0, - 0,220,220,216,0,48,112,48,48,48,48,48,48,120,8,14, - 14,10,1,0,48,255,28,102,6,63,71,195,195,195,195,194, - 102,60,9,13,26,11,1,0,57,0,63,0,78,0,0,0, - 102,0,255,0,115,0,99,0,99,0,99,0,99,0,99,0, - 247,128,8,14,14,10,1,0,48,112,24,12,0,60,70,195, - 195,195,195,194,98,60,8,14,14,10,1,0,6,12,24,16, - 0,60,70,195,195,195,195,194,98,60,8,14,14,10,1,0, - 24,60,38,66,0,60,70,195,195,195,195,194,98,60,8,13, - 13,10,1,0,57,126,76,0,60,70,195,195,195,195,194,98, - 60,8,13,13,10,1,0,118,126,108,0,60,70,195,195,195, - 195,194,98,60,8,7,7,8,0,2,8,8,0,127,128,8, - 8,8,9,9,10,1,0,63,102,71,203,219,211,226,102,252, - 10,14,28,11,0,0,24,0,60,0,12,0,6,0,0,0, - 227,128,97,128,97,128,97,128,97,128,97,128,99,128,127,192, - 57,128,10,14,28,11,0,0,3,0,7,0,4,0,8,0, - 0,0,227,128,97,128,97,128,97,128,97,128,97,128,99,128, - 127,192,57,128,10,14,28,11,0,0,12,0,14,0,27,0, - 33,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,10,13,26,11,0,0,27,0,63,0, - 51,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,11,18,36,10,255,252,3,128,3,0, - 6,0,4,0,0,0,121,224,56,128,24,128,25,128,13,0, - 13,0,14,0,6,0,6,0,4,0,12,0,120,0,240,0, - 9,18,36,11,1,252,96,0,224,0,96,0,96,0,96,0, - 103,0,111,0,113,128,97,128,97,128,97,128,97,0,127,0, - 110,0,96,0,96,0,96,0,248,0,11,17,34,10,255,252, - 25,128,31,128,27,0,0,0,121,224,56,128,24,128,25,128, - 13,0,13,0,14,0,6,0,6,0,4,0,12,0,120,0, - 240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=18 x= 1 y= 7 dx=10 dy= 0 ascent=15 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12n[301] U8G_FONT_SECTION("u8g_font_gdb12n") = { - 0,29,28,246,249,12,0,0,0,0,42,58,0,15,252,12, - 0,7,7,7,8,1,7,48,180,222,48,222,148,48,7,7, - 7,8,1,2,16,16,16,254,16,16,16,3,6,6,5,1, - 252,96,224,96,96,64,128,6,1,1,7,0,4,252,3,3, - 3,5,1,0,224,224,192,9,18,36,9,0,253,1,128,3, - 0,3,0,3,0,6,0,6,0,4,0,12,0,12,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,192, - 0,8,11,11,10,1,0,60,102,66,195,195,195,195,195,66, - 98,60,7,12,12,10,1,0,8,120,152,24,24,24,24,24, - 24,24,24,254,7,11,11,9,1,0,60,102,230,6,4,8, - 16,34,66,126,254,7,11,11,9,1,0,60,102,230,6,8, - 28,6,6,6,140,120,8,12,12,9,0,0,6,14,14,22, - 22,38,102,70,255,6,6,31,7,11,11,10,1,0,126,124, - 64,64,124,134,6,6,6,134,124,8,12,12,10,1,0,14, - 56,112,96,192,254,195,195,195,195,98,60,8,11,11,10,1, - 0,255,254,130,6,4,12,8,24,24,48,96,8,11,11,10, - 1,0,60,102,102,102,124,62,71,195,195,195,60,8,11,11, - 10,1,0,60,70,195,195,195,195,63,2,6,12,112,3,9, - 9,5,1,0,224,224,192,0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12r[2190] U8G_FONT_SECTION("u8g_font_gdb12r") = { - 0,29,28,246,249,12,2,113,5,210,32,127,252,16,252,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14[6044] U8G_FONT_SECTION("u8g_font_gdb14") = { - 0,36,33,244,248,14,3,134,7,177,32,255,251,20,250,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,6,0,0, - 4,16,16,7,1,250,112,240,96,0,32,32,32,112,112,112, - 112,112,112,112,112,96,10,14,28,12,1,0,12,0,12,0, - 31,128,125,192,108,128,204,0,204,0,204,0,204,0,236,192, - 127,128,63,0,12,0,12,0,11,14,28,12,0,0,7,192, - 12,224,24,64,24,64,56,0,56,0,56,0,127,0,184,0, - 56,0,56,32,48,32,127,224,255,224,10,9,18,12,1,2, - 128,64,94,128,51,0,97,128,97,128,97,128,51,128,94,128, - 128,64,12,14,28,12,0,0,241,240,120,192,56,192,29,128, - 29,128,13,0,15,0,6,0,63,192,6,0,6,0,6,0, - 6,0,31,128,2,24,24,5,2,251,192,192,192,192,192,192, - 192,192,192,192,128,0,0,64,192,192,192,192,192,192,192,192, - 192,192,9,16,32,11,1,0,62,0,99,0,99,0,112,0, - 60,0,127,0,199,128,195,128,225,128,121,128,63,0,31,0, - 71,0,67,0,99,0,126,0,7,3,3,9,1,12,198,238, - 198,15,15,30,17,1,0,7,192,24,48,48,24,99,204,108, - 236,200,70,216,6,216,6,216,6,216,6,108,44,103,204,48, - 24,24,48,7,192,6,7,7,6,0,7,120,216,24,248,216, - 252,248,9,10,20,12,1,0,8,128,17,128,51,0,103,0, - 238,0,238,0,103,0,51,0,17,128,8,128,10,5,10,12, - 1,2,255,192,0,192,0,192,0,192,0,192,7,1,1,8, - 1,5,254,8,8,8,8,0,8,60,66,157,149,153,153,86, - 60,9,2,4,11,1,13,255,128,255,128,6,5,5,8,1, - 9,56,76,204,200,112,8,10,10,9,1,2,24,24,24,24, - 255,24,24,24,0,255,6,8,8,8,1,7,120,204,140,24, - 16,32,68,252,6,8,8,8,1,7,56,204,140,56,12,12, - 140,120,6,5,5,7,2,12,56,60,112,96,192,12,15,30, - 13,1,251,96,192,225,192,96,192,96,192,96,192,96,192,96, - 192,113,192,127,240,110,192,96,0,96,0,112,0,112,0,96, - 0,14,17,34,14,0,253,31,252,113,176,225,176,225,176,225, - 176,225,176,113,176,31,176,1,176,1,176,1,176,1,176,1, - 176,1,176,1,176,1,176,7,252,4,3,3,5,0,6,96, - 240,224,4,5,5,5,1,251,32,96,48,48,224,6,8,8, - 8,1,7,48,240,48,48,48,48,48,252,5,7,7,6,0, - 7,112,216,216,216,216,112,248,10,10,20,12,1,0,196,0, - 102,0,99,0,51,128,57,192,61,192,49,128,99,0,102,0, - 196,0,12,14,28,14,1,0,48,16,240,48,48,96,48,192, - 48,128,49,128,255,0,6,96,4,224,13,224,25,96,19,240, - 48,96,96,240,12,14,28,14,1,0,48,48,240,96,48,192, - 48,192,49,128,51,0,254,0,6,240,13,48,26,48,16,96, - 48,192,97,144,195,240,14,14,28,15,0,0,56,8,76,24, - 40,48,60,96,12,64,140,192,121,128,3,24,2,56,6,88, - 12,88,8,252,24,24,48,60,9,16,32,11,1,250,28,0, - 30,0,12,0,0,0,12,0,12,0,12,0,24,0,56,0, - 112,0,96,0,224,0,227,128,227,128,231,0,126,0,14,20, - 40,14,0,0,8,0,28,0,15,0,3,128,0,0,0,0, - 1,0,7,128,7,128,5,128,13,192,12,192,8,224,24,224, - 31,224,16,112,48,112,48,48,32,56,248,124,14,20,40,14, - 0,0,0,128,0,224,3,192,7,0,0,0,0,0,1,0, - 7,128,7,128,5,128,13,192,12,192,8,224,24,224,31,224, - 16,112,48,112,48,48,32,56,248,124,14,20,40,14,0,0, - 3,0,7,128,15,192,12,96,16,0,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,14,19,38,14,0,0,4,32, - 15,240,27,192,0,0,0,0,1,0,7,128,7,128,5,128, - 13,192,12,192,8,224,24,224,31,224,16,112,48,112,48,48, - 32,56,248,124,14,19,38,14,0,0,8,64,28,224,24,224, - 0,0,0,0,1,0,7,128,7,128,5,128,13,192,12,192, - 8,224,24,224,31,224,16,112,48,112,48,48,32,56,248,124, - 14,20,40,14,0,0,1,128,6,192,6,192,7,128,0,0, - 0,0,1,0,7,128,7,128,5,128,13,192,12,192,8,224, - 24,224,31,224,16,112,48,112,48,48,32,56,248,124,18,14, - 42,19,0,0,7,255,128,1,225,128,3,96,128,3,96,128, - 6,96,0,6,96,0,7,255,0,12,98,0,12,96,0,24, - 96,0,24,96,0,48,96,64,48,96,192,249,255,128,11,19, - 38,13,1,251,15,192,49,192,96,128,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,112,96,63,192,31,128, - 4,0,6,0,3,0,3,0,12,0,12,20,40,12,0,0, - 16,0,56,0,30,0,7,0,0,0,0,0,255,224,56,96, - 56,96,56,64,56,0,56,0,63,192,56,128,56,0,56,0, - 56,0,56,48,56,32,255,224,12,20,40,12,0,0,1,0, - 1,192,7,128,14,0,0,0,0,0,255,224,56,96,56,96, - 56,64,56,0,56,0,63,192,56,128,56,0,56,0,56,0, - 56,48,56,32,255,224,12,20,40,12,0,0,6,0,15,0, - 31,128,48,192,0,0,0,0,255,224,56,96,56,96,56,64, - 56,0,56,0,63,192,56,128,56,0,56,0,56,0,56,48, - 56,32,255,224,12,19,38,12,0,0,16,128,49,192,49,192, - 0,0,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 7,20,20,8,0,0,64,224,112,24,4,0,126,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,20,20,8,1,0, - 8,30,60,96,128,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,252,7,20,20,8,0,0,16,56,124,198,0,0, - 126,24,24,24,24,24,24,24,24,24,24,24,24,126,8,19, - 19,8,255,0,65,99,227,0,0,63,12,12,12,12,12,12, - 12,12,12,12,12,12,63,14,14,28,15,0,0,127,192,240, - 240,48,56,48,24,48,28,48,28,254,28,48,28,48,28,48, - 28,48,24,48,56,48,240,255,192,15,19,38,15,0,0,2, - 32,15,240,11,224,16,0,0,0,248,126,56,24,60,24,62, - 24,54,24,55,24,51,152,49,152,49,216,48,248,48,120,48, - 56,48,56,252,24,12,20,40,14,1,0,16,0,60,0,30, - 0,3,0,0,0,0,0,15,128,48,192,96,96,64,96,192, - 48,192,48,192,48,192,48,192,48,192,48,96,96,96,64,48, - 128,31,0,12,20,40,14,1,0,1,0,1,192,7,128,14, - 0,0,0,0,0,15,128,48,192,96,96,64,96,192,48,192, - 48,192,48,192,48,192,48,192,48,96,96,96,64,48,128,31, - 0,12,20,40,14,1,0,6,0,15,0,15,128,24,192,32, - 0,0,0,15,128,48,192,96,96,64,96,192,48,192,48,192, - 48,192,48,192,48,192,48,96,96,96,64,48,128,31,0,12, - 19,38,14,1,0,8,64,31,224,55,128,0,0,0,0,15, - 128,48,192,96,96,64,96,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,96,64,48,128,31,0,12,19,38,14,1, - 0,16,128,57,192,49,192,0,0,0,0,15,128,48,192,96, - 96,64,96,192,48,192,48,192,48,192,48,192,48,192,48,96, - 96,96,64,48,128,31,0,8,7,7,10,1,3,195,102,60, - 24,60,102,195,12,15,30,14,1,255,15,176,16,224,32,224, - 96,224,193,240,195,112,195,48,198,48,204,48,232,32,120,96, - 112,64,112,128,223,0,128,0,15,20,40,15,0,0,4,0, - 14,0,7,0,1,192,0,0,0,0,252,126,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,24, - 24,48,24,32,7,192,15,20,40,15,0,0,0,64,0,240, - 1,224,3,0,0,0,0,0,252,126,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,24,48, - 24,32,7,192,15,20,40,15,0,0,1,128,3,128,7,192, - 12,96,0,16,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,19,38,15,0,0,4,32,12,112,12,96,0,0, - 0,0,252,126,48,24,48,24,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,24,48,24,32,7,192,13,20, - 40,14,0,0,0,128,0,224,3,192,7,0,0,0,0,0, - 240,120,56,48,28,96,28,96,14,192,6,128,7,128,3,0, - 3,0,3,0,3,0,3,0,3,0,15,192,12,14,28,13, - 0,0,252,0,48,0,48,0,63,192,48,96,48,48,48,48, - 48,48,48,48,48,96,55,192,48,0,48,0,252,0,11,17, - 34,14,1,0,15,128,16,192,32,96,32,96,96,96,96,96, - 97,192,99,0,99,0,99,0,99,192,97,192,96,224,104,96, - 104,96,108,64,239,128,10,17,34,11,1,0,48,0,120,0, - 24,0,12,0,6,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,17, - 34,11,1,0,7,0,7,0,14,0,12,0,24,0,0,0, - 0,0,62,0,99,0,227,0,3,0,63,0,99,0,195,0, - 195,0,255,192,123,0,10,17,34,11,1,0,12,0,30,0, - 62,0,115,0,65,128,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,16, - 32,11,1,0,56,128,124,128,127,0,198,0,0,0,0,0, - 62,0,99,0,227,0,3,0,63,0,99,0,195,0,195,0, - 255,192,123,0,10,15,30,11,1,0,99,0,99,128,99,0, - 0,0,0,0,62,0,99,0,227,0,3,0,63,0,99,0, - 195,0,195,0,255,192,123,0,10,16,32,11,1,0,14,0, - 27,0,26,0,28,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,15,10, - 20,17,1,0,30,120,119,140,227,6,131,6,31,252,99,0, - 195,0,199,132,253,252,112,240,9,15,30,10,1,251,31,0, - 99,128,65,0,192,0,192,0,192,0,192,0,225,0,126,0, - 60,0,16,0,28,0,12,0,12,0,48,0,9,17,34,11, - 1,0,56,0,56,0,28,0,12,0,6,0,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,17,34,11,1,0,7,0,7,128,14,0, - 12,0,24,0,0,0,0,0,30,0,99,0,65,128,193,128, - 255,128,192,0,192,0,225,128,127,0,62,0,9,17,34,11, - 1,0,12,0,30,0,63,0,51,0,96,128,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,15,30,11,1,0,97,128,99,128,99,0, - 0,0,0,0,30,0,99,0,65,128,193,128,255,128,192,0, - 192,0,225,128,127,0,62,0,6,17,17,7,0,0,224,112, - 48,24,8,0,0,56,120,24,24,24,24,24,24,24,124,6, - 17,17,7,1,0,28,60,56,96,64,0,0,112,240,48,48, - 48,48,48,48,48,248,7,17,17,7,0,0,56,56,124,198, - 130,0,0,56,120,24,24,24,24,24,24,24,124,8,15,15, - 7,255,0,99,227,195,0,0,28,60,12,12,12,12,12,12, - 12,62,10,17,34,12,1,0,24,0,125,192,15,128,31,0, - 51,128,3,128,1,192,31,192,97,192,64,192,192,192,192,192, - 192,192,192,128,225,128,113,0,30,0,12,16,32,13,1,0, - 28,64,62,64,63,128,99,0,0,0,0,0,51,128,247,192, - 56,192,48,192,48,192,48,192,48,192,48,192,48,192,249,240, - 10,17,34,12,1,0,56,0,56,0,28,0,6,0,2,0, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,17,34,12,1,0,3,128, - 7,0,6,0,12,0,8,0,0,0,0,0,30,0,33,128, - 65,128,192,192,192,192,192,192,192,192,96,128,113,0,30,0, - 10,17,34,12,1,0,12,0,30,0,31,0,49,128,96,128, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,16,32,12,1,0,24,64, - 60,128,127,128,71,0,0,0,0,0,30,0,33,128,65,128, - 192,192,192,192,192,192,192,192,96,128,113,0,30,0,10,15, - 30,12,1,0,49,128,115,128,97,128,0,0,0,0,30,0, - 33,128,65,128,192,192,192,192,192,192,192,192,96,128,113,0, - 30,0,8,8,8,10,1,2,24,24,16,255,0,24,24,24, - 10,12,24,12,1,255,0,64,30,192,51,128,99,192,199,192, - 196,192,200,192,248,192,113,128,113,0,94,0,128,0,12,17, - 34,13,1,0,56,0,28,0,12,0,6,0,2,0,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,17,34,13,1,0,3,128,7,128, - 6,0,12,0,8,0,0,0,0,0,97,192,224,192,96,192, - 96,192,96,192,96,192,96,192,97,192,127,240,60,192,12,17, - 34,13,1,0,14,0,14,0,31,0,49,128,32,128,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,15,30,13,1,0,49,128,113,128, - 97,128,0,0,0,0,97,192,224,192,96,192,96,192,96,192, - 96,192,96,192,97,192,127,240,60,192,13,22,44,12,255,251, - 0,192,1,224,1,128,3,0,6,0,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0,11,22,44,13, - 1,251,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 51,128,63,192,56,224,48,96,48,96,48,96,48,96,48,192, - 63,128,55,0,48,0,48,0,48,0,48,0,252,0,13,20, - 40,12,255,251,24,96,28,224,24,192,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14n[464] U8G_FONT_SECTION("u8g_font_gdb14n") = { - 0,36,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,219,0,255,128,60, - 0,62,0,255,0,219,0,24,0,24,0,8,8,8,10,1, - 2,24,24,24,255,24,24,24,24,4,7,7,6,1,252,48, - 240,48,48,32,96,64,7,1,1,8,1,5,254,4,3,3, - 6,1,0,96,240,224,11,22,44,11,0,252,0,96,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,12,0,12,0,28,0,24,0,24,0,56,0,48,0, - 48,0,96,0,96,0,192,0,10,14,28,12,1,0,30,0, - 51,0,97,128,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,97,128,97,128,51,0,30,0,8,14,14,12,2,0, - 8,120,248,24,24,24,24,24,24,24,24,24,24,255,8,14, - 14,11,2,0,62,103,227,195,3,6,4,12,24,48,33,65, - 255,255,9,14,28,11,1,0,30,0,99,0,227,0,67,0, - 3,0,6,0,31,0,7,128,3,128,1,128,1,128,1,128, - 67,0,190,0,10,14,28,12,1,0,1,0,7,0,7,0, - 15,0,27,0,19,0,51,0,99,0,99,0,255,192,3,0, - 3,0,3,0,15,192,9,14,28,12,1,0,63,128,63,0, - 32,0,96,0,96,0,126,0,67,0,1,128,1,128,1,128, - 1,128,1,128,195,0,62,0,10,14,28,12,1,0,7,0, - 28,0,48,0,96,0,64,0,223,0,225,128,192,192,192,192, - 192,192,192,192,96,128,49,128,30,0,10,14,28,12,1,0, - 127,192,255,128,129,128,129,128,3,0,3,0,2,0,6,0, - 6,0,12,0,12,0,24,0,56,0,48,0,9,14,28,11, - 1,0,62,0,113,128,241,128,241,128,249,128,127,0,63,0, - 63,128,99,128,193,128,193,128,193,128,99,0,62,0,10,14, - 28,12,1,0,31,0,35,128,65,128,192,192,192,192,192,192, - 192,192,97,192,62,192,0,128,1,128,3,0,14,0,56,0, - 4,10,10,6,1,0,224,240,96,0,0,0,0,96,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14r[2842] U8G_FONT_SECTION("u8g_font_gdb14r") = { - 0,36,33,244,248,14,3,134,7,177,32,127,251,19,251,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17[7600] U8G_FONT_SECTION("u8g_font_gdb17") = { - 0,42,39,242,246,17,4,81,9,172,32,255,250,23,249,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,7,0,0,4,19,19,8,2,249, - 112,240,240,224,32,96,96,96,96,96,96,112,112,112,240,240, - 240,240,192,10,17,34,14,2,255,12,0,12,0,15,128,63, - 192,109,192,108,192,204,0,204,0,204,0,204,0,204,0,236, - 64,125,192,63,128,30,0,12,0,12,0,13,16,32,14,0, - 0,3,240,6,56,12,16,28,16,28,16,60,0,60,0,60, - 0,255,192,60,0,60,0,60,16,56,24,56,24,127,248,255, - 240,12,11,22,14,1,2,192,48,239,112,112,224,96,96,96, - 96,96,96,96,96,112,224,111,96,192,48,128,16,15,16,32, - 14,255,0,248,126,120,56,60,48,30,48,30,96,15,96,7, - 192,7,192,7,192,3,128,63,248,3,128,3,128,3,128,3, - 128,15,224,2,27,27,6,2,251,192,192,192,192,192,192,192, - 192,192,192,192,192,128,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,10,19,38,13,2,0,31,0,35,128,97,0, - 113,0,120,0,62,0,127,128,207,128,195,192,225,192,240,192, - 124,192,63,128,31,128,7,128,65,128,65,128,97,0,126,0, - 9,4,8,11,1,14,115,128,247,128,247,128,231,0,18,18, - 54,20,1,0,3,240,0,14,28,0,24,6,0,48,3,0, - 97,241,128,102,57,128,198,16,192,204,0,192,204,0,192,204, - 0,192,204,0,192,204,0,192,102,1,128,103,25,128,49,243, - 0,24,6,0,12,12,0,3,240,0,6,9,9,7,1,8, - 120,216,24,120,216,216,252,0,252,11,12,24,14,1,0,4, - 32,8,96,24,192,49,192,115,128,231,128,231,128,115,128,49, - 192,24,192,8,96,4,32,12,6,12,14,1,2,127,240,128, - 48,0,48,0,48,0,48,0,32,8,1,1,10,1,6,255, - 10,9,18,10,255,10,30,0,97,128,255,128,219,192,222,192, - 220,192,251,192,97,128,30,0,11,2,4,13,1,16,127,224, - 255,224,6,7,7,10,2,10,56,76,204,204,204,200,112,10, - 12,24,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,0,0,0,0,255,192,7,10,10, - 9,1,8,60,102,230,6,12,24,16,50,98,254,7,10,10, - 9,1,8,60,102,70,6,28,6,6,6,142,120,6,6,6, - 9,3,14,56,60,112,96,192,128,15,18,36,15,0,250,24, - 24,248,120,56,56,56,56,56,56,56,56,56,56,56,56,60, - 120,63,248,63,190,55,24,48,0,48,0,56,0,56,0,60, - 0,48,0,15,20,40,17,1,253,15,254,49,248,113,152,225, - 152,225,152,225,152,225,152,113,152,121,152,31,152,1,152,1, - 152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,7, - 254,4,4,4,6,1,7,112,240,240,224,5,6,6,6,1, - 250,32,96,120,56,112,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,7,9,9,8,0,8,56,76,198, - 198,198,228,120,0,254,11,12,24,14,2,0,132,0,198,0, - 99,0,115,128,57,192,61,224,61,224,57,192,115,128,99,0, - 198,0,132,0,15,16,32,17,1,0,48,6,240,12,48,24, - 48,48,48,48,48,96,48,192,253,128,1,140,3,28,6,44, - 12,44,12,76,24,254,48,12,96,62,15,16,32,17,1,0, - 48,6,240,12,48,24,48,24,48,48,48,96,48,192,252,192, - 1,188,3,102,6,70,6,12,12,8,24,16,48,34,112,126, - 15,16,32,17,1,0,56,6,204,12,12,24,56,48,12,48, - 12,96,140,192,121,128,1,140,3,28,6,60,12,44,12,76, - 24,254,48,12,96,62,10,19,38,12,1,249,14,0,30,0, - 30,0,28,0,0,0,6,0,6,0,6,0,14,0,12,0, - 24,0,56,0,112,0,224,0,224,192,225,192,225,192,243,128, - 62,0,17,23,69,17,0,0,6,0,0,15,0,0,7,128, - 0,1,192,0,0,96,0,0,0,0,0,192,0,1,192,0, - 3,192,0,3,224,0,2,224,0,6,240,0,6,112,0,6, - 112,0,12,120,0,12,56,0,15,248,0,24,28,0,24,28, - 0,16,28,0,48,14,0,48,14,0,252,63,128,17,23,69, - 17,0,0,0,48,0,0,120,0,1,224,0,3,128,0,2, - 0,0,0,0,0,0,192,0,1,192,0,3,192,0,3,224, - 0,2,224,0,6,240,0,6,112,0,6,112,0,12,120,0, - 12,56,0,15,248,0,24,28,0,24,28,0,16,28,0,48, - 14,0,48,14,0,252,63,128,17,23,69,17,0,0,1,192, - 0,3,224,0,7,240,0,14,48,0,8,24,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,22,66,17,0,0,7,140,0,15,248,0,15, - 240,0,16,96,0,0,0,0,0,192,0,1,192,0,3,192, - 0,3,224,0,2,224,0,6,240,0,6,112,0,6,112,0, - 12,120,0,12,56,0,15,248,0,24,28,0,24,28,0,16, - 28,0,48,14,0,48,14,0,252,63,128,17,22,66,17,0, - 0,7,56,0,15,120,0,15,120,0,6,48,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,23,69,17,0,0,3,224,0,6,96,0,6, - 96,0,7,96,0,3,128,0,0,0,0,0,192,0,1,192, - 0,3,192,0,3,224,0,2,224,0,6,240,0,6,112,0, - 6,112,0,12,120,0,12,56,0,15,248,0,24,28,0,24, - 28,0,16,28,0,48,14,0,48,14,0,252,63,128,21,17, - 51,22,0,0,7,255,240,1,248,48,1,248,48,3,184,48, - 3,184,48,3,56,0,7,56,0,6,56,0,7,255,224,12, - 56,64,12,56,0,28,56,0,24,56,0,24,56,8,48,56, - 24,48,56,24,248,255,248,14,23,46,15,1,250,7,240,24, - 120,48,48,112,0,96,0,96,0,224,0,224,0,224,0,224, - 0,224,0,240,0,112,0,120,8,60,60,63,240,15,192,1, - 0,3,128,3,192,1,192,3,128,6,0,13,23,46,14,1, - 0,24,0,60,0,94,0,7,0,1,128,0,0,255,240,120, - 48,120,48,120,32,120,32,120,0,120,0,120,0,127,192,120, - 128,120,0,120,0,120,0,120,16,120,24,120,48,255,240,13, - 23,46,14,1,0,1,192,3,224,7,128,14,0,24,0,0, - 0,255,240,120,48,120,48,120,32,120,32,120,0,120,0,120, - 0,127,192,120,128,120,0,120,0,120,0,120,16,120,24,120, - 48,255,240,13,23,46,14,1,0,7,0,15,0,31,128,56, - 192,32,96,0,0,255,240,120,48,120,48,120,32,120,32,120, - 0,120,0,120,0,127,192,120,128,120,0,120,0,120,0,120, - 16,120,24,120,48,255,240,13,22,44,14,1,0,28,224,61, - 224,61,224,24,192,0,0,255,240,120,48,120,48,120,32,120, - 32,120,0,120,0,120,0,127,192,120,128,120,0,120,0,120, - 0,120,16,120,24,120,48,255,240,8,23,23,9,0,0,96, - 240,120,28,6,0,127,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,127,8,23,23,9,1,0,6,31,60,112, - 64,0,254,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,9,23,46,9,0,0,28,0,62,0,126,0,227, - 0,129,128,0,0,127,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,127,0,9,22,44,9,0,0,115,128,247, - 128,247,128,99,0,0,0,127,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,127,0,16,17,34,17,0,0,63, - 224,248,120,56,60,56,30,56,30,56,15,56,15,56,15,255, - 143,56,15,56,15,56,15,56,30,56,30,56,60,56,120,255, - 224,18,22,66,18,0,0,3,204,0,7,248,0,15,248,0, - 8,112,0,0,0,0,248,15,192,124,3,0,60,3,0,62, - 3,0,63,3,0,55,131,0,51,195,0,51,195,0,49,227, - 0,48,243,0,48,123,0,48,123,0,48,63,0,48,31,0, - 48,15,0,48,7,0,252,3,0,15,23,46,17,1,0,12, - 0,30,0,15,0,3,128,0,64,0,0,7,192,24,112,48, - 56,48,28,96,28,96,14,224,14,224,14,224,14,224,14,224, - 14,224,12,112,28,112,24,56,24,28,32,7,192,15,23,46, - 17,1,0,0,96,0,240,3,224,7,0,4,0,0,0,7, - 192,24,112,48,56,48,28,96,28,96,14,224,14,224,14,224, - 14,224,14,224,14,224,12,112,28,112,24,56,24,28,32,7, - 192,15,23,46,17,1,0,3,128,7,192,15,224,28,96,16, - 48,0,0,7,192,24,112,48,56,48,28,96,28,96,14,224, - 14,224,14,224,14,224,14,224,14,224,12,112,28,112,24,56, - 24,28,32,7,192,15,22,44,17,1,0,15,24,31,240,31, - 224,48,192,0,0,7,192,24,112,48,56,48,28,96,28,96, - 14,224,14,224,14,224,14,224,14,224,14,224,12,112,28,112, - 24,56,24,28,32,7,192,15,22,44,17,1,0,14,112,30, - 240,30,240,12,96,0,0,7,192,24,112,48,56,48,28,96, - 28,96,14,224,14,224,14,224,14,224,14,224,14,224,12,112, - 28,112,24,56,24,28,32,7,192,9,9,18,11,1,3,193, - 128,227,128,119,0,62,0,28,0,62,0,119,0,227,128,193, - 128,15,18,36,17,1,255,7,238,8,124,56,56,48,60,112, - 124,96,254,224,238,225,206,227,142,227,14,231,14,254,12,124, - 28,124,24,56,48,124,32,239,192,128,0,17,23,69,18,0, - 0,3,0,0,7,128,0,3,192,0,0,224,0,0,48,0, - 0,0,0,254,31,128,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,4,0,28,12,0, - 14,24,0,3,224,0,17,23,69,18,0,0,0,56,0,0, - 124,0,0,240,0,1,192,0,3,0,0,0,0,0,254,31, - 128,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,4,0,28,12,0,14,24,0,3,224, - 0,17,23,69,18,0,0,0,224,0,1,224,0,3,240,0, - 7,24,0,4,12,0,0,0,0,254,31,128,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,4,0,28,12,0,14,24,0,3,224,0,17,22,66,18, - 0,0,3,156,0,7,188,0,7,188,0,3,24,0,0,0, - 0,254,31,128,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,4,0,28,12,0,14,24, - 0,3,224,0,16,23,46,17,0,0,0,48,0,248,1,224, - 3,128,2,0,0,0,248,31,60,14,28,12,14,24,15,24, - 7,48,7,48,3,224,3,224,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,7,240,14,17,34,15,0,0,254,0, - 56,0,56,0,63,192,56,112,56,56,56,28,56,28,56,28, - 56,28,56,56,56,112,59,224,56,0,56,0,56,0,254,0, - 15,20,40,17,0,0,1,240,6,60,12,28,24,14,24,14, - 56,14,56,28,56,56,56,96,56,192,56,192,56,224,56,120, - 56,60,56,30,56,14,57,6,57,134,57,132,249,248,12,20, - 40,13,1,0,56,0,60,0,28,0,14,0,6,0,3,0, - 0,0,0,0,31,128,113,192,241,192,129,192,3,192,63,192, - 113,192,225,192,225,192,227,240,253,224,121,128,12,20,40,13, - 1,0,3,192,3,192,7,128,7,0,14,0,12,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,12,20,40,13,1,0, - 6,0,15,0,31,0,59,128,48,192,96,64,0,0,0,0, - 31,128,113,192,241,192,129,192,3,192,63,192,113,192,225,192, - 225,192,227,240,253,224,121,128,12,19,38,13,1,0,0,32, - 28,96,63,192,71,192,67,128,0,0,0,0,31,128,113,192, - 241,192,129,192,3,192,63,192,113,192,225,192,225,192,227,240, - 253,224,121,128,12,18,36,13,1,0,57,192,61,224,57,192, - 57,192,0,0,0,0,31,128,113,192,241,192,129,192,3,192, - 63,192,113,192,225,192,225,192,227,240,253,224,121,128,12,19, - 38,13,1,0,15,0,27,0,25,128,27,0,30,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,18,12,36,20,1,0, - 7,158,0,31,227,0,56,225,128,112,193,128,64,193,128,15, - 255,0,56,192,0,96,192,0,224,224,128,227,241,192,254,127, - 0,124,62,0,11,18,36,12,1,250,15,224,48,192,112,192, - 96,64,224,0,224,0,224,0,224,0,240,64,120,192,63,128, - 31,0,4,0,14,0,15,0,7,0,14,0,24,0,11,20, - 40,13,1,0,60,0,60,0,30,0,14,0,7,0,1,0, - 0,0,0,0,15,0,49,192,112,192,96,224,224,224,255,192, - 224,0,224,0,240,64,120,224,63,192,31,0,11,20,40,13, - 1,0,1,192,3,192,3,128,7,0,6,0,12,0,0,0, - 0,0,15,0,49,192,112,192,96,224,224,224,255,192,224,0, - 224,0,240,64,120,224,63,192,31,0,11,20,40,13,1,0, - 6,0,15,0,31,128,29,128,48,192,32,96,0,0,0,0, - 15,0,49,192,112,192,96,224,224,224,255,192,224,0,224,0, - 240,64,120,224,63,192,31,0,11,18,36,13,1,0,24,192, - 61,224,61,224,57,192,0,0,0,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,8,20,20,8,0,0,240,240,120,24,12,4,0,0, - 28,124,28,28,28,28,28,28,28,28,28,127,7,20,20,8, - 1,0,14,30,28,56,48,96,0,0,56,248,56,56,56,56, - 56,56,56,56,56,254,9,20,40,8,0,0,24,0,60,0, - 126,0,118,0,195,0,129,128,0,0,0,0,28,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,127,0,9,18,36,8,0,0,115,128,247,128,247,128, - 231,0,0,0,0,0,28,0,124,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,127,0,12,19, - 38,14,1,0,12,0,126,112,15,224,15,128,61,192,0,224, - 0,224,15,224,49,240,96,240,96,112,224,112,224,112,224,112, - 224,96,224,96,112,192,56,128,31,0,15,19,38,16,1,0, - 0,16,14,48,31,224,51,224,33,192,0,0,0,0,24,240, - 251,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,12,20,40,14,1,0,28,0,60,0, - 14,0,6,0,3,0,1,128,0,0,0,0,15,128,49,192, - 112,224,96,112,224,112,224,112,224,112,224,112,224,96,112,96, - 56,192,31,0,12,20,40,14,1,0,1,192,3,224,3,128, - 7,0,6,0,12,0,0,0,0,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,12,20,40,14,1,0,7,0,15,0,15,128,29,192, - 56,192,32,96,0,0,0,0,15,128,49,192,112,224,96,112, - 224,112,224,112,224,112,224,112,224,96,112,96,56,192,31,0, - 12,19,38,14,1,0,0,48,30,32,63,224,39,192,65,128, - 0,0,0,0,15,128,49,192,112,224,96,112,224,112,224,112, - 224,112,224,112,224,96,112,96,56,192,31,0,12,18,36,14, - 1,0,28,224,61,224,61,224,24,192,0,0,0,0,15,128, - 49,192,112,224,96,112,224,112,224,112,224,112,224,112,224,96, - 112,96,56,192,31,0,10,10,20,11,1,2,12,0,12,0, - 12,0,0,0,255,192,0,0,0,0,12,0,12,0,12,0, - 12,14,28,14,1,255,0,16,15,176,49,224,112,224,97,240, - 227,112,230,112,230,112,236,112,248,96,112,224,120,192,95,0, - 128,0,15,20,40,15,0,0,14,0,15,0,7,0,3,128, - 1,128,0,192,0,0,0,0,56,56,248,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,250,63,190,30,56, - 15,20,40,15,0,0,0,224,0,240,1,192,1,128,3,0, - 2,0,0,0,0,0,56,56,248,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,250,63,190,30,56,15,20, - 40,15,0,0,3,128,3,192,7,192,14,224,28,112,24,16, - 0,0,0,0,56,56,248,248,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,250,63,190,30,56,15,18,36,15, - 0,0,14,112,14,112,30,240,14,112,0,0,0,0,56,56, - 248,248,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,250,63,190,30,56,15,26,52,14,255,250,0,112,0,240, - 0,224,1,192,1,128,3,0,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0, - 13,26,52,15,1,250,24,0,248,0,56,0,56,0,56,0, - 56,0,56,0,56,0,57,224,63,240,60,112,56,56,56,24, - 56,24,56,24,56,24,56,16,60,48,63,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,15,24,48,14,255,250, - 7,56,15,120,15,120,14,112,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=12 h=25 x= 2 y= 9 dx=14 dy= 0 ascent=21 len=50 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17n[561] U8G_FONT_SECTION("u8g_font_gdb17n") = { - 0,42,39,242,246,16,0,0,0,0,42,58,0,21,251,16, - 0,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=14 dx=23 dy= 0 ascent=22 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17r[3540] U8G_FONT_SECTION("u8g_font_gdb17r") = { - 0,42,39,242,246,17,4,81,9,172,32,127,250,22,250,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=18 dx=28 dy= 0 ascent=28 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20[10077] U8G_FONT_SECTION("u8g_font_gdb20") = { - 0,49,47,240,244,20,5,86,12,137,32,255,248,28,247,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,5,24, - 24,10,2,247,112,248,248,248,112,0,0,48,48,48,48,112, - 112,112,112,120,120,120,120,120,120,120,120,96,13,20,40,16, - 2,255,3,0,3,0,3,0,15,248,31,248,59,56,115,16, - 227,0,227,0,227,0,227,0,227,0,227,0,115,24,123,48, - 63,224,31,192,3,0,3,0,3,0,14,19,38,16,1,0, - 1,252,6,60,14,28,28,12,28,8,60,0,60,0,60,0, - 60,0,255,224,60,0,60,0,60,0,60,4,56,4,56,12, - 127,252,255,252,128,48,12,13,26,16,2,3,192,48,239,112, - 112,224,48,192,96,96,96,96,96,96,96,96,112,224,57,192, - 111,96,192,48,128,16,18,19,57,16,255,0,248,31,192,252, - 15,128,62,6,0,30,14,0,31,12,0,15,156,0,7,152, - 0,7,248,0,3,240,0,3,240,0,3,240,0,1,224,0, - 63,255,0,1,224,0,1,224,0,1,224,0,1,224,0,3, - 240,0,7,248,0,2,32,32,7,3,250,64,192,192,192,192, - 192,192,192,192,192,192,192,192,192,128,0,0,64,192,192,192, - 192,192,192,192,192,192,192,192,192,192,128,12,22,44,16,2, - 0,15,192,49,224,112,224,112,64,124,0,126,0,63,128,127, - 192,99,224,225,240,224,240,240,112,252,112,127,112,63,224,31, - 192,7,224,65,224,64,224,224,224,240,192,127,0,11,5,10, - 13,1,17,112,224,241,224,241,224,241,224,225,192,21,21,63, - 23,1,0,1,252,0,7,7,0,12,1,128,24,0,192,48, - 126,96,96,199,48,97,134,48,195,2,24,199,0,24,199,0, - 24,199,0,24,199,0,24,199,0,24,199,128,24,99,199,48, - 97,252,48,48,248,96,16,0,64,8,1,128,6,3,0,1, - 252,0,7,11,11,9,1,9,60,204,140,60,108,204,206,252, - 0,0,254,14,15,30,16,1,0,2,8,6,28,12,56,28, - 112,56,112,120,224,241,224,243,192,241,224,120,224,56,112,28, - 112,12,56,6,24,2,12,13,7,14,16,2,3,255,248,255, - 248,0,24,0,24,0,24,0,24,0,16,10,2,4,11,1, - 7,255,192,255,128,12,11,22,11,0,11,31,128,48,192,126, - 96,219,48,219,48,222,48,219,48,217,48,100,224,48,192,31, - 128,14,3,6,16,1,18,127,248,127,252,255,248,7,8,8, - 11,2,12,60,126,70,198,198,204,252,120,12,15,30,13,1, - 2,6,0,6,0,6,0,6,0,6,0,127,240,255,224,6, - 0,6,0,6,0,6,0,4,0,0,0,255,240,255,224,8, - 11,11,11,2,10,62,115,227,3,6,6,12,24,49,97,255, - 9,11,22,11,1,10,62,0,231,0,231,0,7,0,28,0, - 63,0,7,128,3,128,3,128,199,0,126,0,8,8,8,10, - 3,16,28,30,63,60,120,112,224,192,18,23,69,19,1,248, - 28,6,0,252,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,62,62,0,63,255,128,63,223,192,51,142,0,48,0,0, - 48,0,0,56,0,0,56,0,0,56,0,0,60,0,0,62, - 0,0,48,0,0,17,24,72,19,1,252,15,255,128,60,127, - 0,120,102,0,112,102,0,240,102,0,240,102,0,240,102,0, - 240,102,0,120,102,0,120,102,0,60,102,0,15,230,0,0, - 102,0,0,102,0,0,102,0,0,102,0,0,102,0,0,102, - 0,0,102,0,0,102,0,0,102,0,0,102,0,0,255,0, - 1,255,128,5,5,5,7,1,8,112,248,248,248,112,7,7, - 7,7,0,249,24,48,60,62,30,60,240,8,11,11,11,2, - 10,8,248,24,24,24,24,24,24,24,24,255,7,11,11,9, - 1,9,56,76,198,198,198,198,198,108,56,0,254,13,15,30, - 16,2,0,129,0,195,128,97,128,112,192,56,224,60,112,30, - 120,30,120,30,120,60,112,56,224,112,192,97,192,193,128,131, - 0,17,19,57,20,2,0,48,3,128,240,3,0,48,6,0, - 48,12,0,48,28,0,48,24,0,48,48,0,48,96,0,120, - 224,0,132,193,0,1,135,0,3,15,0,7,11,0,6,19, - 0,12,51,0,24,63,128,56,67,0,48,3,0,224,15,128, - 17,19,57,20,2,0,48,1,128,240,3,0,48,7,0,48, - 6,0,48,12,0,48,24,0,48,56,0,48,48,0,120,96, - 0,132,192,0,1,207,0,1,153,128,3,49,128,7,1,0, - 14,3,0,12,6,0,24,12,0,56,24,128,112,63,128,18, - 19,57,20,1,0,60,1,192,102,1,128,70,3,0,12,6, - 0,28,14,0,6,12,0,6,24,0,134,48,0,124,112,0, - 0,96,128,0,195,128,1,135,128,3,133,128,3,9,128,6, - 25,128,12,31,192,28,33,128,24,1,128,112,7,192,13,23, - 46,15,1,248,7,0,15,128,15,128,15,128,7,0,0,0, - 0,0,3,0,3,0,3,0,7,0,6,0,14,0,28,0, - 60,0,120,0,112,0,240,24,240,120,240,120,240,120,120,240, - 63,192,20,28,84,20,0,0,3,0,0,7,128,0,7,192, - 0,15,224,0,1,224,0,0,112,0,0,24,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,20,28,84,20, - 0,0,0,8,0,0,30,0,0,62,0,0,124,0,0,240, - 0,1,224,0,1,128,0,0,0,0,0,32,0,0,240,0, - 0,240,0,1,248,0,1,248,0,1,248,0,3,188,0,3, - 60,0,3,60,0,7,30,0,6,30,0,14,31,0,15,255, - 0,12,7,0,28,7,128,24,7,128,24,3,128,56,3,192, - 56,3,192,254,15,240,20,27,81,20,0,0,0,224,0,0, - 240,0,1,248,0,3,252,0,7,14,0,4,6,0,0,0, - 0,0,32,0,0,240,0,0,240,0,1,248,0,1,248,0, - 1,248,0,3,188,0,3,60,0,3,60,0,7,30,0,6, - 30,0,14,31,0,15,255,0,12,7,0,28,7,128,24,7, - 128,24,3,128,56,3,192,56,3,192,254,15,240,20,26,78, - 20,0,0,3,195,0,7,254,0,7,254,0,12,124,0,8, - 0,0,0,0,0,0,32,0,0,240,0,0,240,0,1,248, - 0,1,248,0,1,248,0,3,188,0,3,60,0,3,60,0, - 7,30,0,6,30,0,14,31,0,15,255,0,12,7,0,28, - 7,128,24,7,128,24,3,128,56,3,192,56,3,192,254,15, - 240,20,26,78,20,0,0,6,12,0,15,30,0,15,30,0, - 15,30,0,14,28,0,0,0,0,0,32,0,0,240,0,0, - 240,0,1,248,0,1,248,0,1,248,0,3,188,0,3,60, - 0,3,60,0,7,30,0,6,30,0,14,31,0,15,255,0, - 12,7,0,28,7,128,24,7,128,24,3,128,56,3,192,56, - 3,192,254,15,240,20,27,81,20,0,0,0,112,0,1,152, - 0,1,152,0,1,144,0,0,224,0,0,0,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,25,20,80,26, - 0,0,3,255,255,0,0,255,3,0,0,255,3,0,0,239, - 3,0,0,239,3,0,1,207,0,0,1,207,0,0,3,143, - 0,0,3,143,0,0,3,255,254,0,7,15,4,0,6,15, - 0,0,14,15,0,0,14,15,0,0,12,15,0,0,28,15, - 0,0,24,15,0,128,24,15,1,128,56,31,1,128,254,63, - 255,128,16,27,54,18,1,249,1,254,6,31,28,14,56,4, - 56,0,112,0,112,0,240,0,240,0,240,0,240,0,240,0, - 240,0,248,0,120,0,124,1,126,7,63,254,31,252,15,240, - 0,192,1,192,1,240,0,240,0,240,1,224,3,128,15,28, - 56,17,1,0,8,0,28,0,62,0,31,0,7,128,1,192, - 0,64,0,0,255,252,124,12,60,12,60,12,60,12,60,0, - 60,0,60,0,60,0,63,240,60,32,60,0,60,0,60,0, - 60,0,60,0,60,2,60,6,124,14,255,254,15,28,56,17, - 1,0,0,96,0,240,1,248,1,240,3,192,7,0,12,0, - 0,0,255,252,124,12,60,12,60,12,60,12,60,0,60,0, - 60,0,60,0,63,240,60,32,60,0,60,0,60,0,60,0, - 60,0,60,2,60,6,124,14,255,254,15,27,54,17,1,0, - 3,128,7,192,15,192,31,224,28,112,48,24,0,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,2, - 60,6,124,14,255,254,15,26,52,17,1,0,56,112,56,112, - 120,240,120,240,48,96,0,0,255,252,124,12,60,12,60,12, - 60,12,60,0,60,0,60,0,60,0,63,240,60,32,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 9,28,56,10,0,0,32,0,240,0,248,0,124,0,30,0, - 15,0,3,0,0,0,127,128,63,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,127,128,10,28, - 56,10,1,0,2,0,7,128,15,192,31,0,62,0,120,0, - 96,0,0,0,255,0,126,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,10,27,54,10, - 0,0,12,0,30,0,63,0,127,128,225,192,192,64,0,0, - 127,128,63,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,127,128,11,26,52,10,255,0,112,224, - 241,224,241,224,241,224,96,192,0,0,63,192,31,128,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,31,128, - 63,192,18,20,60,20,1,0,63,240,0,252,60,0,60,14, - 0,60,15,0,60,7,128,60,7,128,60,3,192,60,3,192, - 60,3,192,255,195,192,60,3,192,60,3,192,60,3,192,60, - 3,128,60,7,128,60,7,128,60,15,0,60,14,0,124,28, - 0,255,240,0,19,26,78,21,1,0,3,195,0,7,254,0, - 15,252,0,12,120,0,24,0,0,0,0,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,28,84,20,1,0,2,0, - 0,15,0,0,15,128,0,7,192,0,3,224,0,0,240,0, - 0,48,0,0,0,0,3,240,0,12,28,0,28,14,0,56, - 7,0,56,7,128,112,7,128,112,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,248,3,128, - 120,7,128,120,7,0,60,15,0,30,30,0,15,248,0,3, - 224,0,18,28,84,20,1,0,0,16,0,0,60,0,0,124, - 0,0,248,0,1,224,0,3,192,0,3,0,0,0,0,0, - 3,240,0,12,28,0,28,14,0,56,7,0,56,7,128,112, - 7,128,112,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,248,3,128,120,7,128,120,7,0, - 60,15,0,30,30,0,15,248,0,3,224,0,18,27,81,20, - 1,0,0,192,0,1,224,0,3,240,0,7,248,0,14,28, - 0,8,12,0,0,0,0,3,240,0,12,28,0,28,14,0, - 56,7,0,56,7,128,112,7,128,112,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,248,3, - 128,120,7,128,120,7,0,60,15,0,30,30,0,15,248,0, - 3,224,0,18,26,78,20,1,0,3,198,0,15,252,0,15, - 252,0,24,120,0,16,0,0,0,0,0,3,240,0,12,28, - 0,28,14,0,56,7,0,56,7,128,112,7,128,112,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,248,3,128,120,7,128,120,7,0,60,15,0,30,30, - 0,15,248,0,3,224,0,18,26,78,20,1,0,14,28,0, - 30,60,0,30,60,0,30,60,0,28,56,0,0,0,0,3, - 240,0,12,28,0,28,14,0,56,7,0,56,7,128,112,7, - 128,112,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,248,3,128,120,7,128,120,7,0,60, - 15,0,30,30,0,15,248,0,3,224,0,11,10,20,13,1, - 4,96,96,240,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,96,18,21,63,20,1,255,3,241,192,12,31, - 128,28,15,0,56,15,0,56,31,128,112,63,128,112,63,192, - 240,123,192,240,243,192,240,227,192,241,195,192,241,195,192,243, - 131,192,247,3,128,126,7,128,126,7,0,60,7,0,62,14, - 0,127,248,0,227,224,0,128,0,0,19,28,84,21,1,0, - 3,0,0,7,128,0,15,192,0,7,192,0,1,224,0,0, - 112,0,0,24,0,0,0,0,255,7,224,126,3,192,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,3,0,30,3,0,15,6,0,7,252, - 0,3,240,0,19,28,84,21,1,0,0,8,0,0,30,0, - 0,62,0,0,124,0,0,240,0,1,192,0,1,128,0,0, - 0,0,255,7,224,126,3,192,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 3,0,30,3,0,15,6,0,7,252,0,3,240,0,19,27, - 81,21,1,0,0,224,0,0,240,0,1,248,0,3,252,0, - 7,14,0,12,6,0,0,0,0,255,7,224,126,3,192,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,3,0,30,3,0,15,6,0,7, - 252,0,3,240,0,19,26,78,21,1,0,6,12,0,15,30, - 0,15,30,0,15,30,0,14,28,0,0,0,0,255,7,224, - 126,3,192,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,3,0,30,3,0, - 15,6,0,7,252,0,3,240,0,19,28,84,20,0,0,0, - 8,0,0,30,0,0,62,0,0,124,0,0,240,0,1,192, - 0,1,128,0,0,0,0,252,7,224,60,3,192,30,3,128, - 15,3,0,15,7,0,7,134,0,3,142,0,3,204,0,1, - 220,0,1,248,0,0,248,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,1,248,0, - 3,252,0,16,20,40,18,1,0,255,128,126,0,60,0,60, - 0,63,240,60,60,60,30,60,15,60,15,60,15,60,15,60, - 14,60,30,60,60,63,240,60,0,60,0,60,0,126,0,255, - 128,18,24,72,21,1,0,0,248,0,3,254,0,15,31,0, - 14,15,128,28,7,128,28,7,128,60,7,128,60,7,128,60, - 15,0,60,60,0,60,112,0,60,224,0,60,224,0,60,240, - 0,60,252,0,60,127,0,60,63,128,60,15,192,60,7,192, - 61,3,192,60,129,192,60,193,128,124,225,128,252,254,0,14, - 24,48,16,1,0,28,0,62,0,30,0,15,0,7,0,3, - 128,1,128,0,192,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,14,24,48,16,1,0,0,224,1,240,1, - 224,3,192,3,128,3,0,7,0,6,0,0,0,31,192,112, - 224,240,240,192,240,0,240,3,240,31,240,63,240,120,240,240, - 240,240,240,240,240,251,252,126,248,56,96,14,23,46,16,1, - 0,3,128,7,128,15,192,31,224,28,224,56,48,32,16,0, - 0,31,192,112,224,240,240,192,240,0,240,3,240,31,240,63, - 240,120,240,240,240,240,240,240,240,251,252,126,248,56,96,14, - 22,44,16,1,0,14,8,31,24,63,240,99,240,64,224,0, - 0,0,0,31,192,112,224,240,240,192,240,0,240,3,240,31, - 240,63,240,120,240,240,240,240,240,240,240,251,252,126,248,56, - 96,14,22,44,16,1,0,56,112,120,240,120,240,120,240,48, - 96,0,0,0,0,31,192,112,224,240,240,192,240,0,240,3, - 240,31,240,63,240,120,240,240,240,240,240,240,240,251,252,126, - 248,56,96,14,22,44,16,1,0,3,128,4,192,12,192,12, - 192,7,128,0,0,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,22,15,45,23,1,0,3,227,224,31,252, - 112,60,252,56,120,120,60,112,120,60,128,120,60,7,255,248, - 28,120,0,120,120,0,112,120,0,240,124,8,249,254,28,255, - 191,248,127,31,240,60,7,192,14,22,44,15,1,249,3,248, - 12,120,56,48,112,16,112,0,240,0,240,0,240,0,240,0, - 240,0,248,8,124,28,63,248,31,240,15,192,3,0,3,192, - 3,224,5,224,1,224,3,192,14,0,13,24,48,15,1,0, - 14,0,30,0,31,0,15,0,7,128,3,128,1,192,0,192, - 0,0,7,192,24,224,56,112,112,120,112,120,240,120,255,240, - 240,0,240,0,240,0,248,8,124,56,127,240,63,224,15,128, - 13,24,48,15,1,0,0,224,0,240,1,240,1,224,3,192, - 3,128,7,0,6,0,0,0,7,192,24,224,56,112,112,120, - 112,120,240,120,255,240,240,0,240,0,240,0,248,8,124,56, - 127,240,63,224,15,128,13,23,46,15,1,0,3,128,7,192, - 15,192,15,224,28,112,56,48,48,24,0,0,7,192,24,224, - 56,112,112,120,112,120,240,120,255,240,240,0,240,0,240,0, - 248,8,124,56,127,240,63,224,15,128,13,22,44,15,1,0, - 56,112,56,112,120,240,120,240,48,96,0,0,0,0,7,192, - 24,224,56,112,112,120,112,120,240,120,255,240,240,0,240,0, - 240,0,248,8,124,56,127,240,63,224,15,128,9,24,48,10, - 0,0,112,0,248,0,120,0,60,0,28,0,14,0,6,0, - 2,0,0,0,14,0,126,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,63,0, - 127,128,9,24,48,10,1,0,7,0,15,128,15,0,30,0, - 28,0,56,0,48,0,32,0,0,0,28,0,252,0,124,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,0,10,23,46,10,0,0,28,0, - 30,0,63,0,127,0,115,128,193,192,128,64,0,0,14,0, - 126,0,62,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,63,0,127,128,11,22,44,10, - 255,0,112,224,241,224,241,224,241,224,225,192,0,0,0,0, - 7,0,63,0,31,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,31,128,63,192,14,23, - 46,16,1,0,14,0,63,28,95,248,3,224,15,224,60,224, - 0,112,0,56,15,248,24,248,56,124,112,60,112,60,240,60, - 240,60,240,60,240,60,240,56,240,56,120,112,120,112,60,96, - 15,128,17,22,66,19,1,0,7,6,0,15,204,0,31,252, - 0,17,248,0,48,112,0,0,0,0,0,0,0,12,60,0, - 252,252,0,127,254,0,63,30,0,62,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,126,63,0,255,127,128,15,24,48,17,1,0, - 14,0,31,0,15,0,7,0,3,128,1,128,0,192,0,192, - 0,0,7,224,24,112,56,56,112,60,112,30,240,30,240,30, - 240,30,240,30,240,30,240,28,120,28,56,56,28,48,15,192, - 15,24,48,17,1,0,0,240,0,248,0,240,1,224,1,192, - 3,128,3,0,6,0,0,0,7,224,24,112,56,56,112,60, - 112,30,240,30,240,30,240,30,240,30,240,30,240,28,120,28, - 56,56,28,48,15,192,15,23,46,17,1,0,3,128,3,192, - 7,224,15,224,30,112,24,56,48,24,0,0,7,224,24,112, - 56,56,112,60,112,30,240,30,240,30,240,30,240,30,240,30, - 240,28,120,28,56,56,28,48,15,192,15,22,44,17,1,0, - 14,12,31,136,31,248,49,240,32,224,0,0,0,0,7,224, - 24,112,56,56,112,60,112,30,240,30,240,30,240,30,240,30, - 240,30,240,28,120,28,56,56,28,48,15,192,15,22,44,17, - 1,0,24,48,60,120,60,120,56,112,56,112,0,0,0,0, - 7,224,24,112,56,56,112,60,112,30,240,30,240,30,240,30, - 240,30,240,30,240,28,120,28,56,56,28,48,15,192,12,12, - 24,13,1,3,6,0,14,0,14,0,12,0,0,0,255,240, - 255,224,0,0,6,0,14,0,14,0,12,0,15,16,32,17, - 1,255,7,238,24,124,56,60,112,124,112,254,240,254,241,222, - 243,158,243,158,247,30,254,28,124,28,124,56,124,48,111,192, - 128,0,17,24,72,18,0,0,7,0,0,15,128,0,7,128, - 0,3,192,0,1,192,0,0,224,0,0,96,0,0,48,0, - 0,0,0,28,14,0,252,126,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,126,0,63,255,128,31,223,0,15,12,0, - 17,24,72,18,0,0,0,56,0,0,124,0,0,120,0,0, - 240,0,0,224,0,0,192,0,1,128,0,1,128,0,0,0, - 0,28,14,0,252,126,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,126,0,63,255,128,31,223,0,15,12,0,17,23, - 69,18,0,0,0,192,0,1,224,0,3,240,0,7,248,0, - 7,56,0,14,12,0,8,4,0,0,0,0,28,14,0,252, - 126,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,126,0, - 63,255,128,31,223,0,15,12,0,17,22,66,18,0,0,14, - 28,0,30,60,0,30,60,0,30,60,0,12,24,0,0,0, - 0,0,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,17,32,96,16,255,248,0,56,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,224,0,0,192,0,1,128,0,0, - 0,0,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,16,32,64,18,1,248,12,0,252, - 0,124,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 120,61,252,63,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,63,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,30,90, - 16,255,248,6,12,0,15,30,0,15,30,0,14,28,0,14, - 28,0,0,0,0,0,0,0,127,15,128,62,7,0,30,6, - 0,30,6,0,15,14,0,15,12,0,7,140,0,7,152,0, - 7,152,0,3,248,0,3,240,0,1,240,0,1,240,0,1, - 224,0,0,224,0,0,192,0,0,192,0,1,192,0,1,128, - 0,39,128,0,127,0,0,254,0,0,120,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=14 h=30 x= 2 y=11 dx=17 dy= 0 ascent=25 len=60 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20n[646] U8G_FONT_SECTION("u8g_font_gdb20n") = { - 0,49,47,240,244,19,0,0,0,0,42,58,0,25,250,19, - 0,12,13,26,14,1,11,3,0,15,0,70,64,102,112,246, - 240,63,192,15,0,63,224,254,240,230,112,70,32,7,0,14, - 0,12,12,24,13,1,3,6,0,6,0,6,0,6,0,6, - 0,127,240,255,224,6,0,6,0,6,0,6,0,6,0,6, - 10,10,9,2,250,56,252,252,60,60,56,56,112,96,192,10, - 2,4,11,1,7,255,192,255,128,5,5,5,9,2,255,112, - 248,248,248,112,14,30,60,15,1,251,0,28,0,56,0,56, - 0,120,0,112,0,112,0,224,0,224,0,224,1,192,1,192, - 3,128,3,128,3,128,7,0,7,0,7,0,14,0,14,0, - 28,0,28,0,28,0,56,0,56,0,120,0,112,0,112,0, - 224,0,224,0,192,0,14,18,36,16,1,0,7,192,24,224, - 56,112,112,120,112,120,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,240,56,112,56,120,56,56,112,28,96,15,128, - 13,19,38,16,2,0,1,128,15,128,127,128,239,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,63,224,127,248,13,19,38,16, - 1,0,15,224,56,240,120,120,240,120,112,120,0,120,0,240, - 0,240,1,224,1,192,3,128,7,0,14,0,28,8,28,8, - 56,24,127,248,255,248,255,248,13,19,38,16,1,0,31,128, - 121,224,112,240,240,240,64,240,0,240,1,224,7,192,15,192, - 3,240,0,240,0,120,0,120,0,120,0,120,128,240,192,240, - 127,224,31,128,14,19,38,17,1,0,0,48,1,240,1,240, - 3,240,7,240,6,240,12,240,12,240,24,240,56,240,48,240, - 96,240,255,252,255,248,0,240,0,240,0,240,1,248,7,252, - 13,19,38,16,1,0,63,248,63,240,63,224,112,0,112,0, - 96,0,96,0,127,128,127,224,97,240,0,248,0,120,0,120, - 0,120,0,120,0,112,128,240,193,224,127,128,14,20,40,16, - 1,0,0,112,3,240,7,128,15,0,28,0,60,0,120,0, - 120,0,115,224,255,240,252,120,240,124,240,60,240,60,240,60, - 112,60,120,56,56,56,28,112,7,192,13,19,38,16,2,0, - 255,248,255,248,255,240,192,48,128,96,128,96,0,224,0,192, - 1,192,1,128,3,128,3,128,7,0,7,0,14,0,14,0, - 30,0,28,0,56,0,14,19,38,16,1,0,15,192,24,240, - 48,120,112,120,112,120,120,120,126,240,63,192,31,224,15,240, - 63,248,120,252,248,124,240,60,240,60,240,56,112,56,56,112, - 31,192,14,20,40,16,1,255,7,192,24,240,56,120,112,120, - 240,60,240,60,240,60,240,60,248,60,124,124,63,252,31,60, - 0,56,0,120,0,112,0,240,1,224,7,128,63,0,56,0, - 5,16,16,9,2,255,112,248,248,248,112,0,0,0,0,0, - 0,112,248,248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=28 dy= 0 ascent=26 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20r[4680] U8G_FONT_SECTION("u8g_font_gdb20r") = { - 0,49,47,240,244,20,5,86,12,137,32,127,248,26,248,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 4 y=23 dx=35 dy= 0 ascent=34 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25[14643] U8G_FONT_SECTION("u8g_font_gdb25") = { - 0,61,57,236,242,25,7,167,18,92,32,255,247,34,245,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,10,0, - 0,6,29,29,12,3,245,120,252,252,252,248,112,0,16,48, - 56,56,120,120,120,120,120,120,120,120,120,120,120,124,124,252, - 252,252,248,192,16,25,50,20,2,255,0,192,1,192,1,192, - 1,248,7,255,31,255,61,223,121,198,121,198,113,192,241,192, - 241,192,241,192,241,192,241,192,241,192,121,195,125,199,63,206, - 31,252,15,248,3,192,1,192,1,192,1,128,19,25,75,20, - 1,255,0,127,0,1,255,192,3,199,192,7,131,192,7,1, - 192,15,1,128,15,1,128,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,127,252,0,255,248,0,31,0,0,31, - 0,0,31,0,0,31,0,0,30,0,96,30,0,192,30,0, - 192,63,255,192,127,255,192,255,255,192,64,31,128,17,16,48, - 20,1,4,64,0,128,224,1,128,115,243,128,63,255,0,30, - 30,0,28,14,0,56,7,0,56,7,0,56,7,0,56,7, - 0,56,7,0,28,14,0,62,31,0,127,255,128,243,243,128, - 96,1,128,22,24,72,20,254,0,254,3,252,255,3,252,31, - 0,240,31,128,224,15,193,192,7,193,192,7,227,128,3,227, - 128,3,247,128,1,247,0,0,255,0,0,254,0,0,254,0, - 0,124,0,31,255,240,31,255,224,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,3,41,41,9,3,248,96,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,128,0,0,0,64,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192, - 16,28,56,20,2,0,7,224,31,252,60,124,120,56,120,24, - 124,24,127,0,63,192,63,240,127,248,243,252,240,254,240,63, - 240,31,248,15,126,15,127,15,63,206,15,254,3,252,0,254, - 48,126,48,62,48,30,56,30,60,60,63,248,15,224,14,6, - 12,16,1,21,112,56,120,60,248,124,248,124,240,120,112,56, - 27,26,104,30,1,0,0,63,128,0,1,255,240,0,7,192, - 124,0,15,0,30,0,30,0,15,0,60,31,135,128,56,127, - 227,128,112,225,193,192,113,193,193,192,225,192,193,224,227,128, - 128,224,227,128,0,224,227,128,0,224,227,128,0,224,227,128, - 0,224,227,128,0,224,225,192,1,224,113,224,33,192,112,240, - 113,192,56,127,227,128,60,31,7,128,30,0,15,0,15,0, - 30,0,7,192,124,0,1,255,240,0,0,63,128,0,9,14, - 28,11,1,11,30,0,62,0,103,0,231,0,7,0,63,0, - 103,0,231,0,231,0,255,128,119,0,0,0,255,128,255,128, - 17,18,54,21,1,0,0,128,128,1,129,128,3,3,0,7, - 7,0,14,14,0,30,30,0,60,60,0,124,124,0,248,248, - 0,252,248,0,124,124,0,60,60,0,30,30,0,14,14,0, - 7,7,0,3,3,0,1,129,128,0,128,128,17,9,27,20, - 2,3,255,255,128,255,255,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,0,12,2,4, - 14,1,9,127,240,255,240,13,15,30,14,1,14,15,128,31, - 192,48,96,96,48,95,16,137,136,137,136,143,136,139,8,137, - 8,73,144,124,240,48,96,31,192,15,128,16,3,6,20,2, - 23,255,255,255,255,255,254,10,10,20,14,2,15,15,0,63, - 128,115,192,97,192,225,192,225,192,225,128,243,128,127,0,60, - 0,15,18,36,16,1,3,1,128,3,128,3,128,3,128,3, - 128,3,128,127,254,255,252,3,128,3,128,3,128,3,128,3, - 128,3,0,0,0,0,0,127,254,255,252,11,15,30,13,1, - 12,7,192,31,224,56,224,120,224,112,224,0,192,1,192,3, - 128,3,0,6,0,12,0,24,32,48,96,127,224,255,224,11, - 15,30,13,0,12,7,128,31,224,56,224,56,224,32,224,1, - 192,3,128,7,192,0,224,0,224,0,224,128,224,225,192,127, - 192,31,0,9,10,20,13,4,20,14,0,31,128,31,128,63, - 0,62,0,60,0,120,0,112,0,224,0,64,0,22,27,81, - 23,1,247,14,0,96,254,7,224,254,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,63,7,224,63,143,224,63,255,228, - 63,251,252,59,241,248,57,225,224,56,0,0,56,0,0,60, - 0,0,60,0,0,60,0,0,62,0,0,63,0,0,62,0, - 0,48,0,0,22,30,90,24,1,251,3,255,252,31,255,252, - 63,29,240,124,28,224,124,28,224,248,28,224,248,28,224,248, - 28,224,248,28,224,248,28,224,124,28,224,126,28,224,63,28, - 224,31,252,224,3,252,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,127, - 248,0,255,252,6,6,6,8,1,11,56,124,252,252,252,120, - 8,9,9,9,1,247,24,56,60,63,127,31,30,252,224,10, - 15,30,14,2,12,6,0,62,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63, - 0,255,192,9,14,28,11,1,11,30,0,63,0,119,0,227, - 128,227,128,227,128,227,128,227,128,119,0,126,0,60,0,0, - 0,255,128,255,128,17,18,54,21,2,0,64,64,0,224,224, - 0,112,112,0,56,56,0,60,60,0,30,30,0,31,31,0, - 15,143,128,15,143,128,15,143,128,15,143,128,31,31,0,30, - 30,0,60,60,0,56,56,0,112,112,0,96,96,0,192,192, - 0,22,24,72,25,2,0,12,0,24,252,0,56,28,0,112, - 28,0,224,28,1,192,28,1,192,28,3,128,28,7,0,28, - 6,0,28,14,0,62,28,0,255,184,0,0,56,112,0,112, - 240,0,225,240,1,193,112,1,195,112,3,134,112,7,4,112, - 14,15,252,14,31,248,28,0,112,56,0,112,112,1,252,21, - 24,72,25,2,0,12,0,56,252,0,112,28,0,112,28,0, - 224,28,1,192,28,3,128,28,3,128,28,7,0,28,14,0, - 28,28,0,62,28,0,255,184,0,0,113,240,0,227,248,0, - 230,56,1,206,56,3,128,48,7,0,96,7,0,224,14,0, - 192,28,1,136,60,7,8,56,15,248,112,15,248,23,24,72, - 25,1,0,31,0,12,63,128,28,115,128,56,227,128,112,7, - 0,224,31,0,224,3,129,192,3,131,128,3,131,0,135,135, - 0,255,14,0,60,28,0,0,28,56,0,56,120,0,112,248, - 0,224,184,0,225,184,1,195,56,3,130,56,7,7,254,7, - 15,252,14,0,56,28,0,56,56,0,254,16,29,58,18,1, - 245,3,192,7,224,7,224,7,224,7,192,3,128,0,0,0, - 0,1,192,1,192,1,192,1,192,3,192,3,128,7,128,15, - 0,31,0,62,0,60,0,124,0,248,0,248,7,248,31,248, - 31,248,31,252,30,126,60,63,248,15,224,25,34,136,25,0, - 0,0,192,0,0,3,224,0,0,3,240,0,0,3,248,0, - 0,0,252,0,0,0,62,0,0,0,15,0,0,0,2,0, - 0,0,0,0,0,0,4,0,0,0,30,0,0,0,62,0, - 0,0,126,0,0,0,127,0,0,0,111,0,0,0,239,128, - 0,0,239,128,0,0,199,128,0,1,199,192,0,1,199,192, - 0,1,131,192,0,3,131,224,0,3,131,224,0,3,255,224, - 0,7,255,240,0,7,0,240,0,6,0,248,0,14,0,248, - 0,14,0,120,0,12,0,124,0,28,0,124,0,28,0,124, - 0,255,129,255,0,255,129,255,128,25,34,136,25,0,0,0, - 1,128,0,0,3,192,0,0,7,224,0,0,15,192,0,0, - 31,0,0,0,124,0,0,0,240,0,0,0,64,0,0,0, - 0,0,0,0,4,0,0,0,30,0,0,0,62,0,0,0, - 126,0,0,0,127,0,0,0,111,0,0,0,239,128,0,0, - 239,128,0,0,199,128,0,1,199,192,0,1,199,192,0,1, - 131,192,0,3,131,224,0,3,131,224,0,3,255,224,0,7, - 255,240,0,7,0,240,0,6,0,248,0,14,0,248,0,14, - 0,120,0,12,0,124,0,28,0,124,0,28,0,124,0,255, - 129,255,0,255,129,255,128,25,34,136,25,0,0,0,28,0, - 0,0,62,0,0,0,127,0,0,0,255,128,0,1,255,128, - 0,1,227,192,0,3,128,224,0,2,0,64,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,33,132,25,0,0,0,248,48,0,1, - 254,240,0,3,255,224,0,3,255,192,0,6,31,128,0,6, - 3,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, - 30,0,0,0,62,0,0,0,126,0,0,0,127,0,0,0, - 111,0,0,0,239,128,0,0,239,128,0,0,199,128,0,1, - 199,192,0,1,199,192,0,1,131,192,0,3,131,224,0,3, - 131,224,0,3,255,224,0,7,255,240,0,7,0,240,0,6, - 0,248,0,14,0,248,0,14,0,120,0,12,0,124,0,28, - 0,124,0,28,0,124,0,255,129,255,0,255,129,255,128,25, - 32,128,25,0,0,1,192,224,0,3,193,224,0,7,195,224, - 0,7,195,224,0,3,193,224,0,1,129,192,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,34,136,25,0,0,0,30,0,0,0, - 127,0,0,0,119,0,0,0,103,0,0,0,231,0,0,0, - 119,0,0,0,126,0,0,0,56,0,0,0,0,0,0,0, - 4,0,0,0,30,0,0,0,62,0,0,0,126,0,0,0, - 127,0,0,0,111,0,0,0,239,128,0,0,239,128,0,0, - 199,128,0,1,199,192,0,1,199,192,0,1,131,192,0,3, - 131,224,0,3,131,224,0,3,255,224,0,7,255,240,0,7, - 0,240,0,6,0,248,0,14,0,248,0,14,0,120,0,12, - 0,124,0,28,0,124,0,28,0,124,0,255,129,255,0,255, - 129,255,128,32,25,100,32,0,0,0,255,255,252,0,255,255, - 252,0,31,240,28,0,61,240,12,0,61,240,12,0,57,240, - 12,0,121,240,12,0,113,240,0,0,241,240,0,0,225,240, - 0,0,225,240,0,1,255,255,240,1,255,255,240,3,193,240, - 32,3,129,240,0,3,129,240,0,7,129,240,0,7,1,240, - 0,15,1,240,0,14,1,240,3,14,1,240,3,30,1,240, - 6,28,1,240,14,255,7,255,254,255,15,255,254,20,34,102, - 22,1,247,0,127,128,3,255,240,7,135,224,15,1,224,30, - 0,192,60,0,64,60,0,0,124,0,0,120,0,0,120,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,124,0,0,126,0,0,127, - 0,96,63,129,224,31,255,192,15,255,0,7,254,0,1,240, - 0,0,224,0,0,248,0,0,252,0,1,252,0,0,124,0, - 0,120,0,1,240,0,1,192,0,19,34,102,21,1,0,6, - 0,0,31,0,0,31,128,0,31,192,0,7,224,0,1,240, - 0,0,120,0,0,16,0,0,0,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,19,34,102,21,1,0,0,12,0,0,31, - 0,0,63,0,0,126,0,0,248,0,1,224,0,3,128,0, - 2,0,0,0,0,0,255,255,192,255,255,192,62,1,192,30, - 1,192,30,1,128,30,1,128,30,0,128,30,0,0,30,0, - 0,30,0,0,30,0,0,31,255,0,31,254,0,30,6,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,96,30,0,96,30,0,224,63,1,224,255,255,224,255,255, - 192,19,34,102,21,1,0,0,224,0,1,240,0,3,248,0, - 7,252,0,15,252,0,15,30,0,28,7,0,16,2,0,0, - 0,0,255,255,192,255,255,192,62,1,192,30,1,192,30,1, - 128,30,1,128,30,0,128,30,0,0,30,0,0,30,0,0, - 30,0,0,31,255,0,31,254,0,30,6,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,96,30,0, - 96,30,0,224,63,1,224,255,255,224,255,255,192,19,32,96, - 21,1,0,14,7,0,30,15,0,31,15,128,30,15,0,30, - 15,0,12,6,0,0,0,0,255,255,192,255,255,192,62,1, - 192,30,1,192,30,1,128,30,1,128,30,0,128,30,0,0, - 30,0,0,30,0,0,30,0,0,31,255,0,31,254,0,30, - 6,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,96,30,0,96,30,0,224,63,1,224,255,255,224, - 255,255,192,12,34,68,13,0,0,48,0,248,0,252,0,254, - 0,63,0,15,128,3,192,0,128,0,0,127,240,63,240,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,63,224,127,240,12,34,68, - 13,1,0,0,192,1,224,3,240,7,224,31,128,62,0,120, - 0,32,0,0,0,255,224,127,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,255,224,13,34,68,13,0,0,7,0,15, - 128,31,192,63,224,127,224,248,240,224,56,128,16,0,0,127, - 240,63,240,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,63,224,127, - 240,14,32,64,13,255,0,56,28,120,60,248,124,248,124,120, - 60,112,56,0,0,63,248,31,248,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,31,240,63,248,22,25,75,25,1,0,15,252,0, - 255,255,128,255,15,192,31,3,224,31,1,240,31,1,248,31, - 0,248,31,0,248,31,0,124,31,0,124,31,0,124,255,248, - 124,255,248,124,31,0,124,31,0,124,31,0,124,31,0,120, - 31,0,248,31,0,248,31,1,240,31,1,240,31,3,224,31, - 7,192,127,255,128,255,252,0,25,33,132,27,1,0,0,240, - 48,0,1,254,224,0,3,255,224,0,3,255,192,0,6,31, - 128,0,6,3,0,0,4,0,0,0,0,0,0,0,254,0, - 255,128,255,0,127,0,31,0,28,0,31,128,28,0,31,192, - 28,0,31,192,28,0,31,224,28,0,29,240,28,0,29,248, - 28,0,28,248,28,0,28,124,28,0,28,126,28,0,28,62, - 28,0,28,31,28,0,28,15,156,0,28,15,156,0,28,7, - 220,0,28,3,252,0,28,3,252,0,28,1,252,0,28,0, - 252,0,28,0,252,0,28,0,124,0,127,0,60,0,255,128, - 12,0,23,34,102,25,1,0,1,128,0,7,192,0,7,224, - 0,7,240,0,1,248,0,0,124,0,0,30,0,0,4,0, - 0,0,0,0,126,0,3,255,192,7,135,224,14,1,240,30, - 0,248,60,0,248,60,0,124,124,0,124,120,0,126,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,252,0,60,124,0,124,124,0,120,62,0,120,62, - 0,240,31,1,224,15,195,192,7,255,0,0,252,0,23,34, - 102,25,1,0,0,3,0,0,7,192,0,15,192,0,31,128, - 0,62,0,0,120,0,0,224,0,0,128,0,0,0,0,0, - 126,0,3,255,192,7,135,224,14,1,240,30,0,248,60,0, - 248,60,0,124,124,0,124,120,0,126,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,252, - 0,60,124,0,124,124,0,120,62,0,120,62,0,240,31,1, - 224,15,195,192,7,255,0,0,252,0,23,34,102,25,1,0, - 0,56,0,0,124,0,0,254,0,1,255,0,3,255,0,3, - 199,128,7,1,192,4,0,128,0,0,0,0,126,0,3,255, - 192,7,135,224,14,1,240,30,0,248,60,0,248,60,0,124, - 124,0,124,120,0,126,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,252,0,60,124,0, - 124,124,0,120,62,0,120,62,0,240,31,1,224,15,195,192, - 7,255,0,0,252,0,23,33,99,25,1,0,1,240,96,3, - 252,224,7,255,192,7,255,128,14,63,128,12,6,0,8,0, - 0,0,0,0,0,126,0,3,255,192,7,135,224,14,1,240, - 30,0,248,60,0,248,60,0,124,124,0,124,120,0,126,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,252,0,60,124,0,124,124,0,120,62,0,120, - 62,0,240,31,1,224,15,195,192,7,255,0,0,252,0,23, - 32,96,25,1,0,3,129,192,7,131,192,7,195,224,7,131, - 192,7,131,192,3,1,128,0,0,0,0,126,0,3,255,192, - 7,135,224,14,1,240,30,0,248,60,0,248,60,0,124,124, - 0,124,120,0,126,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,252,0,60,124,0,124, - 124,0,120,62,0,120,62,0,240,31,1,224,15,195,192,7, - 255,0,0,252,0,13,12,24,17,2,5,96,48,240,120,120, - 240,61,224,31,192,15,128,15,128,31,192,57,224,120,240,240, - 120,96,48,23,26,78,25,1,255,0,126,30,3,255,252,7, - 135,248,14,3,240,30,1,248,60,1,252,60,3,252,124,7, - 252,120,15,254,248,15,126,248,30,62,248,62,62,248,60,62, - 248,120,62,248,240,62,248,240,62,253,224,60,127,192,124,127, - 128,120,127,128,120,63,0,240,31,129,224,63,195,192,127,255, - 0,240,252,0,192,0,0,25,34,136,27,1,0,0,192,0, - 0,3,224,0,0,3,240,0,0,3,248,0,0,0,252,0, - 0,0,30,0,0,0,7,0,0,0,2,0,0,0,0,0, - 0,255,224,255,128,127,224,255,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,24,0,15,128,56, - 0,15,128,56,0,7,192,112,0,3,224,224,0,1,255,192, - 0,0,127,0,0,25,34,136,27,1,0,0,1,128,0,0, - 3,224,0,0,7,224,0,0,15,192,0,0,31,0,0,0, - 60,0,0,0,112,0,0,0,64,0,0,0,0,0,0,255, - 224,255,128,127,224,255,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,24,0,15,128,56,0,15, - 128,56,0,7,192,112,0,3,224,224,0,1,255,192,0,0, - 127,0,0,25,34,136,27,1,0,0,28,0,0,0,62,0, - 0,0,127,0,0,0,255,128,0,1,255,192,0,1,227,192, - 0,3,128,224,0,2,0,64,0,0,0,0,0,255,224,255, - 128,127,224,255,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,24,0,15,128,56,0,15,128,56, - 0,7,192,112,0,3,224,224,0,1,255,192,0,0,127,0, - 0,25,32,128,27,1,0,1,192,224,0,3,225,240,0,3, - 225,240,0,3,193,224,0,3,193,224,0,1,128,192,0,0, - 0,0,0,255,224,255,128,127,224,255,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,24,0,15, - 128,56,0,15,128,56,0,7,192,112,0,3,224,224,0,1, - 255,192,0,0,127,0,0,24,34,102,25,0,0,0,1,128, - 0,3,192,0,7,224,0,31,192,0,63,0,0,124,0,0, - 240,0,0,64,0,0,0,0,126,0,255,255,0,255,31,0, - 56,15,128,56,15,192,112,7,192,112,3,224,224,3,224,224, - 1,241,192,1,241,192,0,251,128,0,251,128,0,127,0,0, - 127,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,1,255,192, - 1,255,192,21,25,75,23,1,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,254,0,31,255,192,31,7, - 224,31,3,240,31,1,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,1,240,31,1,240,31,135,224,31, - 127,128,31,62,0,31,0,0,31,0,0,31,0,0,127,224, - 0,255,224,0,23,30,90,25,0,0,0,31,128,0,255,224, - 1,195,240,3,128,248,7,128,248,15,0,124,15,0,124,15, - 0,124,31,0,124,31,0,248,31,1,248,31,7,240,31,15, - 128,31,31,0,31,30,0,31,30,0,31,31,0,31,31,128, - 31,15,224,31,7,248,31,3,252,31,0,252,31,0,126,31, - 48,62,31,48,30,31,48,30,31,56,28,31,60,60,127,63, - 248,255,15,224,19,30,90,20,1,0,7,0,0,31,128,0, - 15,128,0,15,192,0,7,192,0,3,224,0,1,224,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,30,90,20,1,0,0,56,0,0,62,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,1, - 192,0,3,128,0,1,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,29,87,20,1,0,1,224,0,1,224,0, - 3,240,0,7,248,0,7,252,0,15,60,0,30,30,0,56, - 7,0,16,2,0,0,0,0,0,0,0,1,248,0,15,254, - 0,62,63,0,124,31,0,124,31,0,112,31,0,0,31,0, - 1,255,0,15,255,0,63,31,0,124,31,0,120,31,0,248, - 31,0,248,31,32,248,127,224,255,223,192,127,159,128,62,14, - 0,19,27,81,20,1,0,7,129,128,15,227,0,31,255,0, - 63,254,0,49,252,0,96,56,0,0,0,0,0,0,0,0, - 0,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,19,27,81,20,1,0,12,6, - 0,30,15,0,62,31,0,62,31,0,62,31,0,28,14,0, - 0,0,0,0,0,0,0,0,0,1,248,0,15,254,0,62, - 63,0,124,31,0,124,31,0,112,31,0,0,31,0,1,255, - 0,15,255,0,63,31,0,124,31,0,120,31,0,248,31,0, - 248,31,32,248,127,224,255,223,192,127,159,128,62,14,0,19, - 28,84,20,1,0,0,240,0,3,248,0,3,184,0,7,56, - 0,7,56,0,7,56,0,3,240,0,1,224,0,0,0,0, - 0,0,0,1,248,0,15,254,0,62,63,0,124,31,0,124, - 31,0,112,31,0,0,31,0,1,255,0,15,255,0,63,31, - 0,124,31,0,120,31,0,248,31,0,248,31,32,248,127,224, - 255,223,192,127,159,128,62,14,0,27,18,72,29,1,0,0, - 252,62,0,7,254,255,128,15,191,199,128,30,15,131,192,62, - 15,129,192,124,15,1,224,0,15,1,224,0,255,255,224,15, - 255,255,192,31,15,0,0,124,15,0,0,120,15,0,0,248, - 15,128,0,248,31,128,96,252,127,225,224,255,227,255,192,127, - 193,255,0,63,0,124,0,17,27,81,18,1,247,1,252,0, - 7,255,0,31,31,0,60,15,0,60,7,0,120,6,0,120, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,252,0,0,126,1,0,127,7,128,63,254,0,31,252,0, - 7,240,0,1,192,0,1,192,0,1,240,0,3,248,0,0, - 248,0,0,248,0,1,240,0,3,224,0,7,0,0,17,30, - 90,19,1,0,3,128,0,15,128,0,31,192,0,7,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,48,0,0, - 56,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,30, - 90,19,1,0,0,60,0,0,63,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,240,0,1,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,19,1,0,0,224,0,1,240,0,3,248,0,3,248,0, - 7,252,0,15,30,0,14,14,0,28,7,0,24,3,0,0, - 0,0,0,0,0,1,240,0,15,252,0,30,62,0,60,31, - 0,120,15,0,120,15,128,248,15,128,255,255,128,255,254,0, - 248,0,0,248,0,0,248,0,0,252,0,0,126,1,128,127, - 7,0,63,254,0,31,252,0,7,240,0,17,27,81,19,1, - 0,14,7,0,30,15,0,31,15,128,30,15,0,30,15,0, - 28,14,0,0,0,0,0,0,0,0,0,0,1,240,0,15, - 252,0,30,62,0,60,31,0,120,15,0,120,15,128,248,15, - 128,255,255,128,255,254,0,248,0,0,248,0,0,248,0,0, - 252,0,0,126,1,128,127,7,0,63,254,0,31,252,0,7, - 240,0,11,30,60,12,0,0,56,0,252,0,124,0,62,0, - 62,0,31,0,15,0,7,128,3,128,1,128,0,0,0,0, - 7,0,127,0,127,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 127,192,127,224,11,30,60,12,1,0,3,128,3,224,7,224, - 7,192,15,128,15,0,30,0,28,0,24,0,48,0,0,0, - 0,0,14,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,192,14,29,58,12,255,0,7,128,7,192, - 15,192,31,224,31,240,60,240,120,120,112,28,192,8,0,0, - 0,0,3,128,63,128,63,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,63,224,63,240,14,27,54,12,255,0,48,24,120,60, - 248,124,248,124,248,124,112,56,0,0,0,0,0,0,3,128, - 63,128,63,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,63,224, - 63,240,18,29,87,20,1,0,3,0,0,31,192,0,63,231, - 192,3,255,0,0,252,0,3,252,0,15,252,0,30,30,0, - 0,31,0,0,15,0,0,15,128,3,231,128,15,255,128,30, - 63,192,60,31,192,124,15,192,120,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,128,248,7,128,124,15,128, - 124,15,0,126,14,0,63,28,0,15,248,0,3,224,0,22, - 27,81,23,1,0,1,192,64,3,248,224,7,255,192,15,255, - 128,12,127,0,24,30,0,0,0,0,0,0,0,0,0,0, - 14,15,128,254,63,192,254,255,224,63,255,224,63,199,224,63, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 255,143,248,255,223,252,19,30,90,21,1,0,3,128,0,15, - 192,0,15,192,0,7,192,0,3,224,0,1,224,0,0,240, - 0,0,112,0,0,56,0,0,16,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,30,90,21,1,0,0,28,0,0, - 63,0,0,63,0,0,62,0,0,124,0,0,120,0,0,240, - 0,0,224,0,1,192,0,0,128,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,29,87,21,1,0,0,240,0,0, - 240,0,1,248,0,3,252,0,7,252,0,7,158,0,15,15, - 0,28,3,0,8,1,128,0,0,0,0,0,0,1,248,0, - 7,254,0,30,31,128,60,15,128,124,7,192,120,7,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 192,124,3,192,124,7,128,62,7,128,63,15,0,15,252,0, - 3,240,0,19,27,81,21,1,0,3,128,128,7,241,192,15, - 255,128,31,255,0,24,254,0,48,60,0,0,0,0,0,0, - 0,0,0,0,1,248,0,7,254,0,30,31,128,60,15,128, - 124,7,192,120,7,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,192,124,3,192,124,7,128,62,7, - 128,63,15,0,15,252,0,3,240,0,19,27,81,21,1,0, - 14,7,0,15,7,128,31,15,128,31,15,128,30,15,0,14, - 7,0,0,0,0,0,0,0,0,0,0,1,248,0,7,254, - 0,30,31,128,60,15,128,124,7,192,120,7,192,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,192,124, - 3,192,124,7,128,62,7,128,63,15,0,15,252,0,3,240, - 0,15,15,30,17,1,3,3,0,7,0,7,0,7,0,6, - 0,0,0,127,254,255,252,0,0,0,0,3,0,7,0,7, - 0,7,0,6,0,19,20,60,21,1,255,0,0,32,1,248, - 224,7,255,192,30,31,128,60,15,192,60,31,192,120,31,224, - 120,59,224,248,115,224,248,227,224,249,227,224,249,195,224,251, - 131,192,127,3,192,126,7,128,62,7,128,63,15,0,63,252, - 0,99,240,0,192,0,0,22,30,90,23,1,0,3,128,0, - 7,192,0,15,192,0,3,224,0,1,224,0,0,240,0,0, - 240,0,0,120,0,0,56,0,0,24,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,30,90,23,1,0,0,30,0, - 0,31,0,0,63,128,0,62,0,0,124,0,0,120,0,0, - 112,0,0,224,0,0,224,0,1,192,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,29,87,23,1,0,0,112,0, - 0,248,0,1,248,0,3,252,0,3,254,0,7,158,0,15, - 7,0,14,3,128,8,1,0,0,0,0,0,0,0,14,0, - 224,254,31,224,126,7,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,7,224,63,31,252,31,251,252,31,243, - 240,15,193,192,22,27,81,23,1,0,7,3,128,15,7,128, - 31,15,128,31,15,128,31,15,128,14,7,0,0,0,0,0, - 0,0,0,0,0,14,0,224,254,31,224,126,7,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,7,224,63, - 31,252,31,251,252,31,243,240,15,193,192,21,39,117,20,255, - 247,0,7,0,0,15,192,0,15,128,0,31,0,0,31,0, - 0,62,0,0,60,0,0,120,0,0,112,0,0,96,0,0, - 0,0,0,0,0,127,193,248,63,129,248,31,0,224,15,128, - 224,15,129,192,7,193,192,7,193,128,7,195,128,3,227,128, - 3,231,0,1,247,0,1,246,0,0,254,0,0,254,0,0, - 252,0,0,124,0,0,120,0,0,56,0,0,56,0,0,112, - 0,0,112,0,0,224,0,33,224,0,127,192,0,127,128,0, - 255,0,0,124,0,0,20,39,117,22,1,247,6,0,0,254, - 0,0,254,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,31,0,62,127,128,62,255,192,63,135,224,63,3,224,62, - 1,240,62,0,240,62,0,240,62,0,240,62,0,240,62,0, - 240,62,0,224,62,0,224,62,1,192,63,195,192,63,255,128, - 62,255,0,62,60,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,255,192,0,255,192, - 0,21,36,108,20,255,247,3,129,192,7,195,224,7,195,224, - 7,195,224,7,131,192,7,3,128,0,0,0,0,0,0,0, - 0,0,127,193,248,63,129,248,31,0,224,15,128,224,15,129, - 192,7,193,192,7,193,128,7,195,128,3,227,128,3,231,0, - 1,247,0,1,246,0,0,254,0,0,254,0,0,252,0,0, - 124,0,0,120,0,0,56,0,0,56,0,0,112,0,0,112, - 0,0,224,0,33,224,0,127,192,0,127,128,0,255,0,0, - 124,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=18 h=38 x= 3 y=14 dx=21 dy= 0 ascent=31 len=114 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25n[985] U8G_FONT_SECTION("u8g_font_gdb25n") = { - 0,61,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,0,192,3,192,3,192,99,140,123, - 158,125,191,127,252,15,224,7,224,63,252,253,190,249,158,51, - 142,3,192,3,192,3,0,15,14,28,17,1,4,1,128,3, - 128,3,128,3,128,3,128,3,128,127,254,255,252,3,128,3, - 128,3,128,3,128,3,128,3,0,8,12,12,11,2,249,30, - 127,255,127,31,31,30,30,60,56,112,96,12,2,4,14,1, - 9,127,240,255,240,6,6,6,11,3,255,56,124,252,252,252, - 120,17,38,114,19,1,249,0,1,128,0,7,128,0,7,128, - 0,15,0,0,15,0,0,15,0,0,30,0,0,30,0,0, - 28,0,0,60,0,0,60,0,0,120,0,0,120,0,0,120, - 0,0,240,0,0,240,0,0,224,0,1,224,0,1,224,0, - 3,192,0,3,192,0,3,192,0,7,128,0,7,128,0,7, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,120,0,0, - 240,0,0,240,0,0,192,0,0,18,24,72,20,1,0,3, - 240,0,7,252,0,30,62,0,28,31,0,60,15,0,120,15, - 128,120,15,128,120,7,128,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,120, - 7,128,124,7,128,124,15,128,60,15,0,62,14,0,31,30, - 0,15,248,0,3,224,0,16,24,48,20,2,0,0,96,3, - 224,31,224,255,224,99,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,7,240,127,255,127,255,16,24,48, - 20,2,0,3,248,15,252,60,62,124,63,120,31,248,31,112, - 31,0,31,0,62,0,60,0,124,0,120,0,240,1,224,3, - 224,3,192,7,128,15,1,30,3,60,3,120,3,127,255,255, - 255,255,255,16,24,48,20,2,0,7,240,31,248,60,124,120, - 62,248,62,248,62,64,62,0,60,0,124,0,240,7,240,7, - 252,0,254,0,62,0,63,0,31,0,31,0,31,0,31,0, - 30,192,62,240,124,127,248,15,192,17,24,72,20,1,0,0, - 12,0,0,124,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,188,0,7,188,0,7,60,0,14,60,0,14,60,0, - 28,60,0,56,60,0,56,60,0,112,60,0,255,255,128,255, - 255,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,3,255,128,3,255,128,17,24,72,20,1,0,31,255,0, - 31,255,128,31,254,0,31,252,0,24,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,63,240,0,63,252,0,48,126, - 0,96,31,0,0,31,0,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,0,31,0,96,31,0,248,126,0,63, - 252,0,7,224,0,17,24,72,20,2,0,0,14,0,0,126, - 0,1,240,0,7,192,0,15,128,0,30,0,0,62,0,0, - 60,0,0,124,0,0,121,248,0,127,254,0,254,63,0,252, - 31,0,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,124,15,128,124,15,0,60,31,0,31,30,0,15,252,0, - 3,240,0,17,24,72,20,2,0,127,255,128,127,255,0,255, - 255,0,255,255,0,224,6,0,192,14,0,128,12,0,0,28, - 0,0,28,0,0,56,0,0,56,0,0,112,0,0,112,0, - 0,240,0,0,224,0,1,224,0,1,192,0,3,192,0,3, - 192,0,7,128,0,7,128,0,15,128,0,31,0,0,28,0, - 0,17,24,72,21,2,0,3,240,0,15,252,0,28,62,0, - 24,31,0,56,31,0,56,31,0,56,31,0,60,62,0,63, - 60,0,31,248,0,15,240,0,7,252,0,14,254,0,62,63, - 0,124,31,128,120,31,128,248,15,128,248,15,128,248,15,128, - 248,15,0,124,31,0,126,62,0,63,252,0,7,224,0,17, - 25,75,20,2,255,3,240,0,15,252,0,30,62,0,60,30, - 0,120,31,0,120,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,128,126,63,128,63,255,128,15, - 207,0,0,15,0,0,31,0,0,30,0,0,62,0,0,124, - 0,0,248,0,1,240,0,15,192,0,63,0,0,56,0,0, - 6,19,19,11,3,255,56,124,252,252,252,120,0,0,0,0, - 0,0,0,56,124,252,252,252,120}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 3 y=20 dx=35 dy= 0 ascent=33 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25r[6779] U8G_FONT_SECTION("u8g_font_gdb25r") = { - 0,61,57,236,242,25,7,167,18,92,32,127,247,33,247,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 5 y=27 dx=42 dy= 0 ascent=42 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30[19508] U8G_FONT_SECTION("u8g_font_gdb30") = { - 0,74,69,232,239,30,10,50,24,78,32,255,245,42,243,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,12,0,0,8,35, - 35,15,3,243,62,127,255,255,255,254,124,0,0,12,28,28, - 28,60,60,60,60,60,62,62,62,62,62,62,62,62,126,126, - 126,126,126,127,126,120,96,21,30,90,24,2,255,0,24,0, - 0,56,0,0,56,0,0,56,0,0,127,192,3,255,240,7, - 255,248,31,187,240,62,56,240,60,56,96,124,56,32,120,56, - 0,248,56,0,248,56,0,248,56,0,248,56,0,248,56,0, - 248,56,0,252,56,0,124,56,16,126,56,56,63,56,240,31, - 251,224,15,255,192,7,255,128,1,252,0,0,56,0,0,56, - 0,0,56,0,0,48,0,22,29,87,24,1,0,0,31,192, - 0,255,248,1,225,248,3,192,248,7,192,120,7,128,112,15, - 128,48,15,128,48,15,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,255,0,255,255,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,16,31,0,12,31, - 0,24,30,0,56,62,0,120,63,255,248,127,255,248,255,255, - 248,128,15,240,20,20,60,24,2,4,64,0,32,224,0,96, - 113,248,240,63,255,192,31,15,128,30,7,128,28,3,128,56, - 1,192,56,1,192,56,1,192,56,1,192,56,1,192,60,3, - 192,30,7,128,31,15,128,31,255,128,57,249,192,112,0,224, - 224,0,112,64,0,32,27,28,112,24,254,0,127,0,127,224, - 255,128,127,224,127,192,15,0,15,224,30,0,15,224,30,0, - 7,240,60,0,3,240,60,0,3,248,56,0,1,252,120,0, - 0,252,112,0,0,254,240,0,0,126,224,0,0,127,224,0, - 0,63,192,0,0,63,192,0,0,31,192,0,0,31,128,0, - 15,255,255,0,15,255,254,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,63,192,0,1,255,248,0,1,255,248,0,4,49,49,11, - 4,246,48,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,224,0,0,0,0,0,112,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,192,18,34,102,23,3,0,3,252,0,15,255,0,30, - 31,0,60,15,0,124,7,0,124,6,0,126,2,0,127,128, - 0,63,224,0,63,240,0,63,252,0,127,254,0,123,255,0, - 240,255,128,240,63,128,240,31,192,240,7,192,248,7,192,124, - 3,192,127,3,192,63,195,192,31,243,128,15,255,128,7,255, - 0,1,255,0,0,127,128,96,63,128,96,31,128,112,15,128, - 112,15,128,120,15,0,126,30,0,127,252,0,15,240,0,17, - 7,21,19,1,26,56,7,0,124,15,128,252,31,128,252,31, - 128,252,31,128,248,31,0,112,14,0,31,31,124,35,2,0, - 0,31,224,0,0,127,252,0,1,240,31,0,7,192,7,128, - 15,0,1,224,30,0,0,224,28,3,240,112,56,31,254,56, - 56,60,124,56,112,120,60,28,112,240,28,28,240,240,24,28, - 224,224,0,14,225,224,0,14,225,224,0,14,225,224,0,14, - 225,224,0,14,225,224,0,14,225,240,0,14,240,240,0,30, - 112,248,6,28,112,126,30,28,56,127,252,56,56,31,240,56, - 28,7,192,112,14,0,0,224,15,0,1,224,7,192,7,128, - 1,240,31,0,0,127,252,0,0,31,240,0,12,16,32,13, - 1,14,15,0,63,128,99,192,227,192,131,192,7,192,63,192, - 123,192,243,192,243,192,247,224,255,240,115,128,0,0,255,224, - 255,224,20,22,66,25,2,0,0,192,32,1,192,112,1,192, - 224,3,129,224,7,131,192,15,7,192,31,15,128,62,15,128, - 126,31,0,252,63,0,252,126,0,252,126,0,252,63,0,126, - 31,0,62,15,128,31,15,128,15,7,192,7,131,192,3,129, - 224,1,192,224,0,192,112,0,192,32,21,11,33,24,2,4, - 127,255,248,255,255,248,255,255,248,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 96,15,3,6,17,1,11,127,254,127,252,255,252,17,17,51, - 17,0,17,3,224,0,15,248,0,60,30,0,48,6,0,103, - 227,0,99,51,0,195,49,128,195,49,128,195,225,128,195,65, - 128,195,97,128,99,35,0,99,51,0,55,158,0,60,30,0, - 15,248,0,3,224,0,20,4,12,24,2,27,127,255,240,255, - 255,240,255,255,224,255,255,224,11,13,26,17,3,17,15,0, - 31,192,63,192,123,224,113,224,241,224,241,224,241,224,241,192, - 251,192,127,128,127,0,30,0,18,22,66,20,1,3,0,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,127,255,192,255,255,192,255,255,128,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,192, - 0,0,0,0,0,0,0,127,255,192,127,255,192,255,255,128, - 13,17,34,17,2,15,7,224,31,240,120,248,120,120,248,120, - 0,120,0,240,0,224,1,224,3,192,7,128,15,0,30,8, - 60,8,120,24,255,248,255,248,13,18,36,17,1,14,7,224, - 31,240,60,248,120,120,124,120,0,120,0,240,1,224,7,240, - 5,240,0,120,0,120,0,120,0,120,128,120,224,240,127,224, - 31,128,11,11,22,15,5,24,15,0,15,192,31,224,31,128, - 63,0,62,0,124,0,120,0,240,0,224,0,64,0,27,33, - 132,28,1,245,3,0,6,0,255,128,254,0,255,128,126,0, - 63,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,192,254,0,31,227,254,0,31,255,254,64,31,255,127,224, - 30,254,127,192,30,124,63,128,30,56,28,0,30,0,0,0, - 30,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0, - 31,0,0,0,31,128,0,0,31,128,0,0,31,192,0,0, - 31,0,0,0,24,0,0,0,26,36,144,29,1,250,1,255, - 255,192,7,255,255,192,31,195,255,0,63,3,222,0,126,3, - 222,0,124,3,222,0,252,3,222,0,252,3,222,0,252,3, - 222,0,252,3,222,0,252,3,222,0,126,3,222,0,127,3, - 222,0,63,3,222,0,31,195,222,0,7,255,222,0,1,255, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,7,255,0,0,31,255,192,0,31,255,192,7,7, - 7,10,1,13,60,126,254,254,254,252,120,10,10,20,11,1, - 246,14,0,28,0,30,0,63,128,63,192,15,192,15,192,31, - 128,254,0,112,0,13,17,34,17,2,15,1,128,15,128,255, - 128,71,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,240,127,248,11,16,32, - 13,1,14,15,0,63,128,123,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,192,123,192,63,128,30,0,0,0,255, - 224,255,224,20,22,66,25,3,0,64,32,0,224,112,0,112, - 56,0,120,28,0,56,30,0,60,15,0,30,15,128,31,7, - 192,31,135,224,15,199,240,15,227,240,15,227,240,15,199,240, - 31,135,224,31,7,192,30,15,128,60,15,0,56,30,0,120, - 28,0,112,56,0,224,48,0,64,96,0,27,29,116,30,2, - 0,3,0,1,192,63,0,3,128,255,0,7,128,15,0,15, - 0,15,0,14,0,15,0,28,0,15,0,60,0,15,0,120, - 0,15,0,112,0,15,0,240,0,15,1,224,0,15,1,192, - 0,31,131,128,0,255,231,128,0,0,15,0,0,0,14,1, - 0,0,28,15,128,0,60,15,128,0,120,31,128,0,112,55, - 128,0,224,55,128,1,224,103,128,3,192,199,128,3,129,199, - 128,7,129,255,224,15,3,255,192,30,0,7,128,28,0,7, - 128,60,0,63,224,26,29,116,30,2,0,3,0,1,192,63, - 0,7,128,255,0,7,128,15,0,15,0,15,0,30,0,15, - 0,60,0,15,0,60,0,15,0,120,0,15,0,240,0,15, - 0,224,0,15,1,224,0,15,3,192,0,31,135,128,0,255, - 231,0,0,0,15,0,0,0,30,63,0,0,60,127,192,0, - 56,231,192,0,121,195,192,0,241,131,192,1,224,3,128,1, - 192,7,0,3,192,14,0,7,128,28,0,15,0,56,0,14, - 0,112,64,30,0,224,64,60,1,255,192,120,3,255,192,28, - 29,116,30,1,0,15,128,0,224,63,192,1,192,115,224,3, - 192,241,224,7,128,129,192,7,0,3,128,14,0,15,192,30, - 0,15,224,60,0,1,240,56,0,0,240,120,0,0,240,240, - 0,0,240,224,0,225,225,192,0,127,195,192,0,31,7,128, - 0,0,7,0,128,0,14,7,192,0,30,7,192,0,60,11, - 192,0,56,27,192,0,112,19,192,0,240,51,192,1,224,99, - 192,1,192,227,192,3,192,255,240,7,129,255,224,15,0,3, - 192,14,0,3,192,30,0,31,240,18,35,105,22,2,243,0, - 248,0,1,252,0,3,252,0,3,252,0,3,252,0,3,248, - 0,1,240,0,0,0,0,0,0,0,0,0,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,0,1,240,0,1, - 224,0,3,224,0,7,192,0,15,192,0,15,128,0,31,0, - 0,63,0,0,126,0,0,126,0,0,252,0,0,252,3,192, - 252,15,192,252,15,192,252,15,192,252,15,128,126,31,128,127, - 31,0,63,254,0,15,240,0,30,42,168,30,0,0,0,32, - 0,0,0,112,0,0,0,248,0,0,1,252,0,0,1,254, - 0,0,0,255,0,0,0,63,128,0,0,15,192,0,0,3, - 224,0,0,0,224,0,0,0,64,0,0,0,0,0,0,1, - 128,0,0,7,128,0,0,15,192,0,0,31,192,0,0,31, - 224,0,0,31,224,0,0,63,224,0,0,63,240,0,0,59, - 240,0,0,121,240,0,0,121,248,0,0,113,248,0,0,240, - 252,0,0,240,252,0,0,224,252,0,1,224,126,0,1,224, - 126,0,1,192,126,0,3,255,255,0,3,255,255,0,3,128, - 31,0,7,128,31,128,7,0,31,128,7,0,15,192,15,0, - 15,192,14,0,15,192,14,0,7,224,30,0,7,224,255,192, - 63,252,255,192,63,252,30,42,168,30,0,0,0,0,32,0, - 0,0,48,0,0,0,124,0,0,0,254,0,0,1,254,0, - 0,3,248,0,0,7,224,0,0,15,128,0,0,31,0,0, - 0,60,0,0,0,16,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,41,164,30,0,0,0,7,0,0,0,7, - 128,0,0,15,192,0,0,31,224,0,0,63,240,0,0,127, - 248,0,0,248,248,0,1,240,60,0,1,192,14,0,1,0, - 8,0,0,0,0,0,0,1,128,0,0,7,128,0,0,15, - 192,0,0,31,192,0,0,31,224,0,0,31,224,0,0,63, - 224,0,0,63,240,0,0,59,240,0,0,121,240,0,0,121, - 248,0,0,113,248,0,0,240,252,0,0,240,252,0,0,224, - 252,0,1,224,126,0,1,224,126,0,1,192,126,0,3,255, - 255,0,3,255,255,0,3,128,31,0,7,128,31,128,7,0, - 31,128,7,0,15,192,15,0,15,192,14,0,15,192,14,0, - 7,224,30,0,7,224,255,192,63,252,255,192,63,252,30,40, - 160,30,0,0,0,16,4,0,0,127,7,0,0,255,254,0, - 1,255,254,0,1,255,252,0,3,255,248,0,3,3,240,0, - 2,0,64,0,0,0,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,40,160,30,0,0,0,64,16,0,0,240, - 60,0,1,248,126,0,1,248,126,0,1,248,126,0,1,240, - 124,0,1,240,124,0,0,64,32,0,0,0,0,0,0,0, - 0,0,0,1,128,0,0,7,128,0,0,15,192,0,0,31, - 192,0,0,31,224,0,0,31,224,0,0,63,224,0,0,63, - 240,0,0,59,240,0,0,121,240,0,0,121,248,0,0,113, - 248,0,0,240,252,0,0,240,252,0,0,224,252,0,1,224, - 126,0,1,224,126,0,1,192,126,0,3,255,255,0,3,255, - 255,0,3,128,31,0,7,128,31,128,7,0,31,128,7,0, - 15,192,15,0,15,192,14,0,15,192,14,0,7,224,30,0, - 7,224,255,192,63,252,255,192,63,252,30,42,168,30,0,0, - 0,1,0,0,0,15,224,0,0,31,224,0,0,28,240,0, - 0,60,240,0,0,60,240,0,0,60,224,0,0,63,224,0, - 0,31,128,0,0,4,0,0,0,0,0,0,0,0,0,0, - 0,1,128,0,0,7,128,0,0,15,192,0,0,31,192,0, - 0,31,224,0,0,31,224,0,0,63,224,0,0,63,240,0, - 0,59,240,0,0,121,240,0,0,121,248,0,0,113,248,0, - 0,240,252,0,0,240,252,0,0,224,252,0,1,224,126,0, - 1,224,126,0,1,192,126,0,3,255,255,0,3,255,255,0, - 3,128,31,0,7,128,31,128,7,0,31,128,7,0,15,192, - 15,0,15,192,14,0,15,192,14,0,7,224,30,0,7,224, - 255,192,63,252,255,192,63,252,38,30,150,39,0,0,0,127, - 255,255,240,0,127,255,255,248,0,15,255,0,112,0,7,255, - 0,112,0,15,63,0,112,0,15,63,0,48,0,15,63,0, - 48,0,30,63,0,48,0,30,63,0,0,0,60,63,0,0, - 0,60,63,0,0,0,60,63,0,0,0,120,63,0,0,0, - 127,255,255,192,0,255,255,255,128,0,240,63,1,128,0,224, - 63,0,0,1,224,63,0,0,1,224,63,0,0,3,192,63, - 0,0,3,192,63,0,0,3,128,63,0,0,7,128,63,0, - 0,7,128,63,0,12,15,0,63,0,12,15,0,63,0,28, - 14,0,63,0,28,31,0,127,128,124,255,193,255,255,248,255, - 193,255,255,248,24,40,120,27,1,246,0,31,224,0,255,252, - 1,255,254,7,224,254,15,192,126,31,128,60,31,0,28,62, - 0,0,62,0,0,126,0,0,124,0,0,124,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,0,63, - 128,2,63,128,7,31,224,15,15,252,254,7,255,248,3,255, - 240,0,255,192,0,30,0,0,28,0,0,31,0,0,63,192, - 0,63,192,0,15,192,0,15,128,0,31,128,0,254,0,0, - 112,0,23,42,126,25,1,0,1,0,0,3,128,0,15,192, - 0,15,224,0,31,240,0,7,248,0,1,252,0,0,126,0, - 0,31,0,0,7,0,0,2,0,0,0,0,255,255,248,255, - 255,252,63,128,56,31,128,56,31,128,24,31,128,24,31,128, - 24,31,128,24,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,255,224,31,255,224,31,128,192,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,6,31,128,6,31,128,14,31,128,14,63,192,30, - 255,255,254,255,255,252,23,42,126,25,1,0,0,2,0,0, - 3,128,0,7,224,0,15,240,0,31,240,0,63,192,0,127, - 0,0,252,0,1,240,0,1,192,0,1,0,0,0,0,0, - 255,255,248,255,255,252,63,128,56,31,128,56,31,128,24,31, - 128,24,31,128,24,31,128,24,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,255,224,31,255,224,31,128,192, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,6,31,128,6,31,128,14,31,128, - 14,63,192,30,255,255,254,255,255,252,23,41,123,25,1,0, - 0,56,0,0,124,0,0,254,0,0,255,0,1,255,0,3, - 255,128,7,199,192,15,1,224,14,0,224,8,0,64,0,0, - 0,255,255,248,255,255,252,63,128,56,31,128,56,31,128,24, - 31,128,24,31,128,24,31,128,24,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,255,224,31,255,224,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,6,31,128,6,31,128,14,31, - 128,14,63,192,30,255,255,254,255,255,252,23,40,120,25,1, - 0,2,0,128,7,129,224,15,195,240,15,195,240,15,195,240, - 15,131,224,15,3,192,4,1,0,0,0,0,0,0,0,255, - 255,248,255,255,252,63,128,56,31,128,56,31,128,24,31,128, - 24,31,128,24,31,128,24,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,255,224,31,255,224,31,128,192,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,6,31,128,6,31,128,14,31,128,14, - 63,192,30,255,255,254,255,255,252,15,42,84,16,255,0,8, - 0,28,0,62,0,127,0,127,128,191,192,15,224,3,240,0, - 248,0,56,0,16,0,0,31,254,31,254,7,248,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,7,248,31, - 254,31,254,14,42,84,16,2,0,0,128,0,224,1,248,3, - 252,7,252,15,240,31,192,63,0,124,0,112,0,32,0,0, - 0,255,240,255,240,63,192,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,63,192,255,240,255,240,16,41,82, - 16,0,0,3,128,7,192,15,224,15,240,31,240,63,248,124, - 124,240,30,224,15,128,4,0,0,63,252,63,252,15,240,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,15, - 240,63,252,63,252,16,40,80,16,0,0,32,8,120,30,252, - 63,252,63,252,63,248,62,240,60,64,16,0,0,0,0,63, - 252,63,252,15,240,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,15,240,63,252,63,252,29,30,120,31,0, - 0,3,255,192,0,255,255,248,0,127,192,254,0,143,192,63, - 128,15,192,31,192,15,192,15,192,15,192,7,224,15,192,7, - 240,15,192,3,240,15,192,3,240,15,192,3,248,15,192,1, - 248,15,192,1,248,127,255,1,248,255,255,1,248,15,192,1, - 248,15,192,1,248,15,192,1,248,15,192,1,248,15,192,1, - 240,15,192,3,240,15,192,3,240,15,192,7,224,15,192,7, - 224,15,192,15,192,15,192,31,128,15,192,63,0,31,224,254, - 0,127,255,248,0,127,255,192,0,30,40,160,32,1,0,0, - 16,4,0,0,127,7,0,0,255,255,0,0,255,254,0,1, - 255,252,0,3,255,252,0,3,3,248,0,2,0,64,0,0, - 0,0,0,0,0,0,0,255,0,15,252,255,128,15,252,63, - 192,3,240,31,192,1,224,31,224,1,224,31,240,1,224,31, - 240,1,224,31,248,1,224,31,252,1,224,30,254,1,224,30, - 126,1,224,30,63,1,224,30,63,129,224,30,31,129,224,30, - 15,193,224,30,7,225,224,30,7,225,224,30,3,241,224,30, - 1,249,224,30,1,253,224,30,0,253,224,30,0,127,224,30, - 0,63,224,30,0,63,224,30,0,31,224,30,0,15,224,30, - 0,7,224,63,0,7,224,255,192,3,224,255,192,0,224,27, - 42,168,30,1,0,0,64,0,0,0,224,0,0,1,240,0, - 0,3,248,0,0,3,252,0,0,1,254,0,0,0,127,0, - 0,0,31,128,0,0,7,192,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,31,192,0,0,255,240,0,3,225,252, - 0,7,128,126,0,15,0,63,0,31,0,31,0,30,0,31, - 128,62,0,15,128,126,0,15,192,124,0,15,192,124,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,254,0,7,192,126,0,15,192,126,0,15,128,127,0,15, - 128,63,0,31,0,31,128,31,0,31,192,62,0,15,240,252, - 0,7,255,240,0,1,255,224,0,0,127,0,0,27,42,168, - 30,1,0,0,0,64,0,0,0,96,0,0,0,248,0,0, - 1,252,0,0,3,252,0,0,7,240,0,0,15,192,0,0, - 31,128,0,0,62,0,0,0,120,0,0,0,32,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,41,164,30,1, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,127,224,0,0,255,240,0,1,249,248,0,3,224,120, - 0,3,128,28,0,2,0,8,0,0,0,0,0,0,31,192, - 0,0,255,240,0,3,225,252,0,7,128,126,0,15,0,63, - 0,31,0,31,0,30,0,31,128,62,0,15,128,126,0,15, - 192,124,0,15,192,124,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,254,0,7,192,126,0,15, - 192,126,0,15,128,127,0,15,128,63,0,31,0,31,128,31, - 0,31,192,62,0,15,240,252,0,7,255,240,0,1,255,224, - 0,0,127,0,0,27,40,160,30,1,0,0,32,8,0,0, - 254,14,0,1,255,254,0,1,255,252,0,3,255,248,0,7, - 255,248,0,6,7,240,0,2,0,128,0,0,0,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,40,160,30,1, - 0,0,128,32,0,1,240,124,0,1,240,124,0,3,240,252, - 0,3,240,252,0,3,240,252,0,3,224,248,0,0,128,32, - 0,0,0,0,0,0,0,0,0,0,31,192,0,0,255,240, - 0,3,225,252,0,7,128,126,0,15,0,63,0,31,0,31, - 0,30,0,31,128,62,0,15,128,126,0,15,192,124,0,15, - 192,124,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,254,0,7,192,126,0,15,192,126,0,15, - 128,127,0,15,128,63,0,31,0,31,128,31,0,31,192,62, - 0,15,240,252,0,7,255,240,0,1,255,224,0,0,127,0, - 0,16,15,30,20,2,6,96,6,240,15,120,31,60,62,30, - 124,15,248,7,240,3,192,7,224,15,248,30,124,60,62,120, - 31,240,15,96,6,27,31,124,30,1,255,0,31,195,224,0, - 255,247,192,3,225,255,128,7,128,127,0,15,0,63,0,31, - 0,63,128,30,0,127,128,62,0,255,192,126,0,255,192,124, - 1,255,192,124,3,239,224,252,3,231,224,252,7,199,224,252, - 15,135,224,252,15,7,224,252,31,7,224,252,62,7,224,252, - 60,7,224,252,120,7,192,254,248,7,192,127,240,15,192,127, - 224,15,128,127,192,15,128,63,128,31,0,63,128,31,0,31, - 192,62,0,31,240,252,0,63,255,240,0,121,255,224,0,248, - 127,0,0,192,0,0,0,29,42,168,32,1,0,0,32,0, - 0,0,48,0,0,0,248,0,0,1,252,0,0,1,254,0, - 0,0,127,0,0,0,31,128,0,0,15,192,0,0,3,224, - 0,0,0,240,0,0,0,64,0,0,0,0,0,255,240,31, - 248,255,240,31,248,63,192,7,224,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,128,31,192,7,128,15,192,7,128,15,224,7, - 0,7,224,15,0,3,248,62,0,1,255,252,0,0,255,240, - 0,0,31,192,0,29,42,168,32,1,0,0,0,32,0,0, - 0,56,0,0,0,124,0,0,0,254,0,0,1,254,0,0, - 3,252,0,0,7,240,0,0,15,192,0,0,31,0,0,0, - 28,0,0,0,16,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,41,164,32,1,0,0,3,128,0,0,7,128, - 0,0,15,192,0,0,31,224,0,0,63,240,0,0,127,248, - 0,0,124,124,0,0,240,62,0,1,192,14,0,0,128,4, - 0,0,0,0,0,255,240,31,248,255,240,31,248,63,192,7, - 224,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,128,31,192,7, - 128,15,192,7,128,15,224,7,0,7,224,15,0,3,248,62, - 0,1,255,252,0,0,255,240,0,0,31,192,0,29,40,160, - 32,1,0,0,32,8,0,0,248,62,0,0,248,62,0,1, - 248,126,0,1,248,126,0,1,248,126,0,0,240,60,0,0, - 64,16,0,0,0,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,42,168,29,0,0,0,0,32,0,0,0,48, - 0,0,0,124,0,0,1,254,0,0,3,254,0,0,7,248, - 0,0,15,224,0,0,31,128,0,0,62,0,0,0,60,0, - 0,0,16,0,0,0,0,0,0,127,0,31,248,255,128,31, - 248,31,192,3,192,15,192,3,128,7,224,7,128,3,240,7, - 0,3,240,15,0,1,248,14,0,1,248,30,0,0,252,28, - 0,0,124,60,0,0,126,56,0,0,63,120,0,0,63,240, - 0,0,31,240,0,0,31,224,0,0,15,224,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,31,224,0,0,255,252,0,0,255,252, - 0,24,30,90,27,1,0,255,248,0,255,248,0,63,192,0, - 31,128,0,31,128,0,31,128,0,31,255,128,31,255,240,31, - 131,248,31,128,252,31,128,126,31,128,127,31,128,63,31,128, - 63,31,128,63,31,128,63,31,128,63,31,128,62,31,128,126, - 31,128,252,31,129,248,31,191,240,31,191,128,31,128,0,31, - 128,0,31,128,0,31,128,0,63,192,0,255,248,0,255,248, - 0,28,36,144,31,1,0,0,7,240,0,0,63,252,0,0, - 255,254,0,1,240,255,0,3,224,63,128,7,192,31,128,7, - 192,31,192,15,128,15,192,15,128,15,192,31,128,15,192,31, - 128,15,192,31,128,31,128,31,128,63,0,31,128,126,0,31, - 129,248,0,31,135,224,0,31,135,128,0,31,143,128,0,31, - 143,128,0,31,143,192,0,31,143,224,0,31,135,248,0,31, - 135,254,0,31,131,255,128,31,128,255,192,31,128,63,224,31, - 128,31,240,31,128,7,240,31,140,3,240,31,142,1,240,31, - 142,1,240,31,142,1,240,31,143,1,224,63,143,195,192,255, - 143,255,128,255,129,254,0,23,35,105,24,1,0,1,192,0, - 15,192,0,15,224,0,7,240,0,3,240,0,1,248,0,0, - 248,0,0,124,0,0,60,0,0,30,0,0,12,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,35,105,24,1,0,0,15,0,0, - 15,192,0,31,224,0,31,128,0,63,0,0,62,0,0,124, - 0,0,120,0,0,240,0,0,224,0,0,192,0,0,0,0, - 0,0,0,0,255,0,15,255,128,31,15,192,62,7,224,126, - 7,224,252,7,224,96,7,224,0,7,224,0,31,224,1,255, - 224,7,255,224,31,231,224,63,135,224,63,7,224,126,7,224, - 126,7,224,126,7,224,126,31,228,127,63,252,63,247,254,63, - 231,240,15,131,128,23,35,105,24,1,0,0,120,0,0,252, - 0,0,252,0,1,254,0,3,255,0,3,255,0,7,207,128, - 15,135,192,15,1,192,28,0,224,8,0,64,0,0,0,0, - 0,0,0,255,0,15,255,128,31,15,192,62,7,224,126,7, - 224,252,7,224,96,7,224,0,7,224,0,31,224,1,255,224, - 7,255,224,31,231,224,63,135,224,63,7,224,126,7,224,126, - 7,224,126,7,224,126,31,228,127,63,252,63,247,254,63,231, - 240,15,131,128,23,33,99,24,1,0,3,192,48,7,240,48, - 15,252,96,31,255,224,31,255,192,56,127,128,48,15,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,0,15,255, - 128,31,15,192,62,7,224,126,7,224,252,7,224,96,7,224, - 0,7,224,0,31,224,1,255,224,7,255,224,31,231,224,63, - 135,224,63,7,224,126,7,224,126,7,224,126,7,224,126,31, - 228,127,63,252,63,247,254,63,231,240,15,131,128,23,33,99, - 24,1,0,7,1,192,15,131,224,31,135,224,31,135,224,31, - 135,224,31,7,192,14,3,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,34,102,24,1,0,0,60,0,0, - 254,0,1,239,0,3,207,0,3,207,0,3,207,0,3,238, - 0,1,252,0,0,248,0,0,0,0,0,0,0,0,0,0, - 0,255,0,15,255,128,31,15,192,62,7,224,126,7,224,252, - 7,224,96,7,224,0,7,224,0,31,224,1,255,224,7,255, - 224,31,231,224,63,135,224,63,7,224,126,7,224,126,7,224, - 126,7,224,126,31,228,127,63,252,63,247,254,63,231,240,15, - 131,128,33,22,110,35,1,0,0,63,3,224,0,1,255,159, - 248,0,7,255,252,62,0,15,135,248,30,0,31,3,240,31, - 0,63,3,240,15,0,127,3,224,15,128,120,3,224,15,128, - 0,3,224,15,128,0,127,255,255,128,3,255,255,254,0,15, - 195,224,0,0,63,3,224,0,0,126,3,224,0,0,124,3, - 240,0,0,252,3,240,1,0,252,7,248,7,0,254,31,252, - 31,0,255,252,255,254,0,127,248,127,252,0,127,224,63,240, - 0,31,128,15,192,0,20,32,96,22,2,246,0,127,128,1, - 255,240,7,135,224,15,3,224,30,1,224,62,0,192,124,0, - 192,124,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,96,127, - 129,224,63,255,192,31,255,128,15,254,0,3,252,0,0,240, - 0,0,224,0,0,252,0,1,254,0,0,254,0,0,126,0, - 0,124,0,0,252,0,3,240,0,1,128,0,19,35,105,23, - 2,0,3,128,0,15,192,0,31,224,0,7,224,0,3,240, - 0,1,240,0,0,248,0,0,120,0,0,60,0,0,28,0, - 0,8,0,0,0,0,0,0,0,0,252,0,7,255,0,15, - 31,128,30,15,128,62,15,192,124,7,192,124,7,224,124,7, - 224,252,7,224,255,255,224,255,255,128,252,0,0,252,0,0, - 252,0,0,254,0,0,126,0,64,127,0,224,63,131,192,63, - 255,128,31,255,0,15,254,0,3,248,0,19,35,105,23,2, - 0,0,14,0,0,31,192,0,31,192,0,63,128,0,63,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,0, - 192,0,0,0,0,0,0,0,0,252,0,7,255,0,15,31, - 128,30,15,128,62,15,192,124,7,192,124,7,224,124,7,224, - 252,7,224,255,255,224,255,255,128,252,0,0,252,0,0,252, - 0,0,254,0,0,126,0,64,127,0,224,63,131,192,63,255, - 128,31,255,0,15,254,0,3,248,0,19,35,105,23,2,0, - 0,120,0,0,248,0,1,252,0,1,254,0,3,254,0,7, - 255,0,15,223,128,15,7,128,30,3,192,60,1,224,24,0, - 64,0,0,0,0,0,0,0,252,0,7,255,0,15,31,128, - 30,15,128,62,15,192,124,7,192,124,7,224,124,7,224,252, - 7,224,255,255,224,255,255,128,252,0,0,252,0,0,252,0, - 0,254,0,0,126,0,64,127,0,224,63,131,192,63,255,128, - 31,255,0,15,254,0,3,248,0,19,33,99,23,2,0,15, - 3,192,31,7,192,31,135,224,31,135,224,31,7,192,31,7, - 192,14,3,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,252,0,7,255,0,15,31,128,30,15,128,62,15,192,124, - 7,192,124,7,224,124,7,224,252,7,224,255,255,224,255,255, - 128,252,0,0,252,0,0,252,0,0,254,0,0,126,0,64, - 127,0,224,63,131,192,63,255,128,31,255,0,15,254,0,3, - 248,0,13,35,70,14,0,0,28,0,126,0,254,0,127,0, - 31,0,15,128,7,128,3,192,1,192,0,224,0,64,0,0, - 0,0,1,192,63,192,127,192,63,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,31,224,127,248,127,248,14,35, - 70,14,1,0,0,224,1,252,1,252,3,248,3,240,7,224, - 7,192,15,128,15,0,30,0,8,0,0,0,0,0,3,128, - 127,128,255,128,127,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,16,35,70,14,255,0, - 3,192,3,224,7,240,15,240,15,248,31,252,62,124,60,30, - 120,15,240,7,64,3,0,0,0,0,0,224,31,224,63,224, - 31,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 15,240,63,252,63,252,16,33,66,14,255,0,56,14,124,31, - 124,31,252,63,252,63,124,31,120,30,0,0,0,0,0,0, - 0,0,0,224,31,224,63,224,31,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,240,63,252,63,252,21,34, - 102,25,2,0,1,192,0,15,224,0,63,240,248,31,255,248, - 0,255,192,0,126,0,1,255,0,7,239,128,31,143,128,2, - 7,192,0,3,224,0,3,224,1,251,240,7,253,240,15,255, - 240,31,15,248,62,7,248,62,3,248,124,3,248,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,240,252, - 1,240,252,1,240,126,3,224,126,3,224,63,3,192,63,7, - 128,31,143,0,7,254,0,1,248,0,26,33,132,28,1,0, - 0,240,12,0,1,252,12,0,3,255,28,0,3,255,248,0, - 7,255,240,0,14,31,224,0,12,3,192,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,1,240,0, - 127,135,252,0,255,159,252,0,63,191,254,0,31,248,254,0, - 31,224,126,0,31,192,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,63,192,255,0,255,243,255,192, - 255,243,255,192,21,35,105,25,2,0,1,192,0,15,224,0, - 15,224,0,7,240,0,3,240,0,1,248,0,0,248,0,0, - 124,0,0,60,0,0,30,0,0,12,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,21,35,105,25,2,0,0,15,0,0,15,192,0, - 31,224,0,31,128,0,63,0,0,62,0,0,124,0,0,120, - 0,0,240,0,0,224,0,0,192,0,0,0,0,0,0,0, - 0,252,0,3,255,0,15,15,192,30,7,224,62,7,224,62, - 3,240,124,3,240,124,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,252,1,248,252,1,240,126,1,240, - 126,3,224,62,3,224,63,3,192,31,135,128,7,254,0,1, - 248,0,21,35,105,25,2,0,0,120,0,0,252,0,0,252, - 0,1,254,0,3,255,0,3,255,0,7,207,128,15,135,192, - 15,1,192,28,0,224,8,0,64,0,0,0,0,0,0,0, - 252,0,3,255,0,15,15,192,30,7,224,62,7,224,62,3, - 240,124,3,240,124,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,248,252,1,240,126,1,240,126, - 3,224,62,3,224,63,3,192,31,135,128,7,254,0,1,248, - 0,21,33,99,25,2,0,3,192,48,7,240,48,15,252,96, - 31,255,224,31,255,192,56,127,128,48,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,252,0,3,255,0,15,15, - 192,30,7,224,62,7,224,62,3,240,124,3,240,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,248,252, - 1,248,252,1,240,126,1,240,126,3,224,62,3,224,63,3, - 192,31,135,128,7,254,0,1,248,0,21,33,99,25,2,0, - 7,1,192,15,131,224,31,135,224,31,135,224,31,135,224,31, - 7,192,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,18,18,54,20,1,4,0,192,0,1,224,0,1, - 224,0,1,224,0,1,224,0,0,192,0,0,0,0,127,255, - 192,127,255,192,255,255,128,0,0,0,0,0,0,0,192,0, - 1,224,0,1,224,0,1,224,0,1,224,0,0,192,0,21, - 24,72,25,2,255,0,0,24,0,252,56,3,255,240,15,15, - 224,30,7,224,62,3,240,60,7,240,124,15,240,124,31,248, - 252,29,248,252,57,248,252,121,248,252,241,248,252,225,248,253, - 193,248,255,193,240,127,129,240,127,1,224,62,3,224,63,3, - 192,63,135,128,127,254,0,113,248,0,192,0,0,26,35,140, - 27,1,0,0,224,0,0,3,240,0,0,7,240,0,0,1, - 248,0,0,0,248,0,0,0,124,0,0,0,62,0,0,0, - 30,0,0,0,15,0,0,0,7,0,0,0,2,0,0,0, - 0,0,0,0,0,0,0,3,128,28,0,255,135,252,0,255, - 135,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,129,252,0,31,199,252,128,31, - 255,255,128,15,254,255,192,7,248,126,0,3,224,112,0,26, - 35,140,27,1,0,0,3,128,0,0,7,240,0,0,7,240, - 0,0,15,224,0,0,15,192,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,60,0,0,0,120,0,0,0,48,0, - 0,0,0,0,0,0,0,0,0,3,128,28,0,255,135,252, - 0,255,135,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,129,252,0,31,199,252, - 128,31,255,255,128,15,254,255,192,7,248,126,0,3,224,112, - 0,26,35,140,27,1,0,0,30,0,0,0,62,0,0,0, - 127,0,0,0,255,128,0,0,255,128,0,1,255,192,0,3, - 247,224,0,3,193,224,0,7,128,240,0,15,0,112,0,6, - 0,48,0,0,0,0,0,0,0,0,0,3,128,28,0,255, - 135,252,0,255,135,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,129,252,0,31, - 199,252,128,31,255,255,128,15,254,255,192,7,248,126,0,3, - 224,112,0,26,33,132,27,1,0,3,192,240,0,7,193,240, - 0,7,225,248,0,7,225,248,0,7,193,240,0,7,193,240, - 0,7,129,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,128,28,0,255,135,252,0,255,135,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,129,252,0,31,199,252,128,31,255,255, - 128,15,254,255,192,7,248,126,0,3,224,112,0,25,46,184, - 24,255,245,0,1,224,0,0,3,248,0,0,3,248,0,0, - 3,240,0,0,7,224,0,0,7,192,0,0,15,128,0,0, - 15,0,0,0,30,0,0,0,28,0,0,0,56,0,0,0, - 0,0,0,0,0,0,0,127,240,127,128,127,240,127,128,31, - 192,30,0,15,192,28,0,15,192,28,0,7,224,60,0,7, - 224,56,0,3,240,56,0,3,240,112,0,1,240,112,0,1, - 248,240,0,1,248,224,0,0,252,224,0,0,253,224,0,0, - 125,192,0,0,127,192,0,0,127,128,0,0,63,128,0,0, - 63,128,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,30,0,0,0,28,0,0,0,60,0,0,0, - 120,0,0,32,248,0,0,63,240,0,0,127,224,0,0,255, - 192,0,0,255,128,0,0,126,0,0,0,24,47,141,27,1, - 245,3,0,0,63,128,0,255,128,0,255,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,131,224,31,143, - 248,31,191,252,31,255,252,31,240,254,31,192,126,31,128,63, - 31,128,63,31,128,31,31,128,31,31,128,31,31,128,31,31, - 128,31,31,128,30,31,128,30,31,128,62,31,192,60,31,240, - 124,31,255,248,31,255,240,31,159,224,31,135,128,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,63,192,0,255,248,0,255,248,0,25,44, - 176,24,255,245,0,224,56,0,1,240,124,0,3,240,252,0, - 3,240,252,0,3,240,252,0,3,224,248,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 127,240,127,128,127,240,127,128,31,192,30,0,15,192,28,0, - 15,192,28,0,7,224,60,0,7,224,56,0,3,240,56,0, - 3,240,112,0,1,240,112,0,1,248,240,0,1,248,224,0, - 0,252,224,0,0,253,224,0,0,125,192,0,0,127,192,0, - 0,127,128,0,0,63,128,0,0,63,128,0,0,31,0,0, - 0,31,0,0,0,14,0,0,0,14,0,0,0,30,0,0, - 0,28,0,0,0,60,0,0,0,120,0,0,32,248,0,0, - 63,240,0,0,127,224,0,0,255,192,0,0,255,128,0,0, - 126,0,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=22 h=46 x= 3 y=17 dx=25 dy= 0 ascent=38 len=138 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30n[1304] U8G_FONT_SECTION("u8g_font_gdb30n") = { - 0,74,69,232,239,29,0,0,0,0,42,58,0,38,247,29, - 0,19,20,60,21,1,17,0,48,0,1,240,0,1,240,0, - 32,240,0,112,225,128,120,227,192,126,231,224,127,255,224,31, - 255,0,3,248,0,3,248,0,31,255,0,127,255,192,254,231, - 192,124,227,192,48,225,192,0,240,128,0,240,0,1,240,0, - 0,192,0,18,18,54,20,1,4,0,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,127,255, - 192,255,255,192,255,255,128,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,192,0,10, - 15,30,13,1,247,7,0,63,128,255,192,127,192,63,192,15, - 192,15,192,15,128,15,128,15,0,31,0,30,0,60,0,120, - 0,48,0,15,3,6,17,1,11,127,254,127,252,255,252,8, - 7,7,13,3,255,62,127,255,255,255,254,124,21,46,138,23, - 1,248,0,0,56,0,0,248,0,0,240,0,1,240,0,1, - 240,0,1,224,0,3,224,0,3,224,0,3,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,0,0,31,0,0, - 31,0,0,30,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,120,0,0,248,0,0,248,0,0,240,0,1,240,0, - 1,224,0,3,224,0,3,224,0,3,192,0,7,192,0,7, - 192,0,7,128,0,15,128,0,15,0,0,31,0,0,31,0, - 0,30,0,0,62,0,0,62,0,0,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,192,0,0,22,29,87,24, - 1,0,0,252,0,3,255,0,7,143,192,15,7,224,30,3, - 224,62,1,240,62,1,240,124,1,248,124,1,248,124,0,248, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,126,0,248,62,1,240,62,1,240,31,1,224,31,3,192, - 15,135,128,3,255,0,0,252,0,19,29,87,24,3,0,0, - 16,0,0,248,0,7,248,0,63,248,0,255,248,0,225,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,15,255,0, - 127,255,224,127,255,224,20,29,87,24,1,0,0,255,0,7, - 255,192,15,143,224,63,7,224,62,3,240,126,3,240,126,3, - 240,120,3,240,0,3,240,0,7,224,0,7,224,0,15,192, - 0,15,128,0,31,128,0,31,0,0,62,0,0,124,0,0, - 248,0,0,248,0,1,240,0,3,224,32,7,192,48,15,128, - 48,15,0,48,30,0,112,63,255,240,127,255,240,255,255,240, - 127,255,240,20,29,87,24,1,0,1,254,0,7,255,128,31, - 31,192,63,15,192,62,7,224,126,7,224,60,7,224,0,7, - 224,0,7,192,0,15,192,0,31,128,0,127,0,1,254,0, - 1,255,128,2,63,192,0,15,224,0,7,224,0,3,240,0, - 3,240,0,3,240,0,3,240,0,3,240,0,3,240,64,7, - 224,96,15,224,252,31,192,63,255,128,31,254,0,3,248,0, - 21,29,87,25,2,0,0,1,128,0,15,128,0,31,128,0, - 63,128,0,63,128,0,127,128,0,255,128,0,239,128,1,239, - 128,3,207,128,3,143,128,7,143,128,7,15,128,14,15,128, - 30,15,128,28,15,128,56,15,128,56,15,128,127,255,248,255, - 255,240,255,255,224,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,31,192,1,255,240,1,255,240,20,29,87, - 24,2,0,0,0,32,31,255,240,31,255,192,31,255,192,31, - 255,128,28,0,0,28,0,0,28,0,0,60,0,0,60,0, - 0,56,0,0,59,252,0,63,255,0,63,255,128,120,31,192, - 32,15,224,0,7,224,0,7,240,0,3,240,0,3,240,0, - 3,240,0,3,240,0,3,240,0,7,224,64,7,224,224,15, - 192,252,31,128,63,254,0,7,248,0,20,29,87,24,2,0, - 0,1,128,0,31,192,0,127,0,1,252,0,3,240,0,7, - 192,0,15,128,0,31,128,0,63,0,0,62,0,0,126,0, - 0,124,126,0,125,255,128,255,255,192,255,15,224,254,7,224, - 252,7,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,240,126,3,224,126,3,224,62,3,192,31,7,192,15,143, - 128,7,255,0,1,248,0,21,28,84,24,2,0,127,255,240, - 127,255,248,127,255,240,127,255,224,112,1,224,224,1,224,192, - 1,192,64,3,192,0,3,128,0,7,128,0,7,0,0,15, - 0,0,15,0,0,30,0,0,30,0,0,60,0,0,60,0, - 0,124,0,0,120,0,0,248,0,0,240,0,1,240,0,1, - 240,0,3,224,0,3,224,0,7,224,0,15,192,0,6,0, - 0,20,29,87,24,2,0,0,252,0,7,255,128,15,31,192, - 30,15,192,28,7,224,60,7,224,60,7,224,60,7,224,62, - 15,192,63,143,128,31,255,0,31,254,0,15,252,0,3,255, - 0,7,255,128,15,255,192,31,31,224,62,15,240,126,7,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,224,126, - 3,224,126,7,192,63,15,128,31,254,0,3,248,0,20,29, - 87,24,2,255,1,252,0,7,255,0,15,31,128,30,15,192, - 62,7,224,124,7,224,124,7,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,254,3,240,126,7,240,127,15, - 240,63,255,240,31,251,224,7,227,224,0,7,224,0,7,192, - 0,7,192,0,15,128,0,31,0,0,62,0,0,252,0,3, - 248,0,15,224,0,63,128,0,56,0,0,8,23,23,13,3, - 255,62,127,255,255,255,254,124,0,0,0,0,0,0,0,0, - 0,62,127,255,255,255,254,124}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 4 y=24 dx=42 dy= 0 ascent=39 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30r[9112] U8G_FONT_SECTION("u8g_font_gdb30r") = { - 0,74,69,232,239,30,10,50,24,78,32,127,245,39,245,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=15 len=30 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10[3670] U8G_FONT_SECTION("u8g_font_gdr10") = { - 0,25,24,247,250,10,2,30,4,177,32,255,252,15,251,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,4,0, - 0,2,13,13,5,1,251,64,64,0,0,64,64,64,64,64, - 64,64,192,192,6,10,10,8,1,0,16,28,116,144,144,144, - 144,116,56,16,7,11,11,8,1,255,60,68,68,64,64,240, - 64,64,66,134,252,4,6,6,8,2,2,144,240,144,144,240, - 144,9,10,20,8,255,0,231,128,34,0,22,0,20,0,8, - 0,62,0,8,0,8,0,8,0,28,0,1,17,17,4,2, - 253,128,128,128,128,128,128,128,128,0,128,128,128,128,128,128, - 128,128,6,12,12,8,1,0,112,152,128,96,184,140,196,100, - 24,136,200,112,5,2,2,7,1,9,136,136,10,10,20,12, - 1,0,30,0,127,128,114,128,160,64,160,64,160,64,176,64, - 94,128,97,128,30,0,4,6,6,4,0,5,96,160,96,160, - 240,240,6,8,8,8,1,0,36,72,72,144,144,72,72,36, - 7,3,3,8,0,2,254,2,2,4,1,1,6,1,4,240, - 6,6,6,6,0,6,120,132,180,180,180,120,6,1,1,8, - 1,9,252,4,4,4,6,1,6,112,144,144,224,6,8,8, - 7,1,1,32,32,32,252,32,32,64,248,4,7,7,6,1, - 5,112,144,16,32,64,144,240,4,7,7,5,0,5,112,144, - 16,48,16,144,224,3,3,3,5,2,9,96,64,128,9,12, - 24,9,0,252,195,0,65,0,65,0,65,0,65,0,65,0, - 99,0,125,128,64,0,64,0,96,0,96,0,8,12,12,10, - 1,254,63,202,138,138,202,122,10,10,10,10,10,31,1,2, - 2,2,1,5,128,128,2,4,4,4,1,252,128,192,64,128, - 4,6,6,6,0,5,96,160,32,32,32,112,4,6,6,5, - 0,5,96,144,144,144,96,240,7,8,8,8,1,0,144,72, - 108,36,54,108,72,144,9,10,20,10,1,0,193,0,66,0, - 66,0,68,0,72,0,169,0,23,0,37,0,39,128,67,128, - 8,10,10,10,1,0,193,66,68,68,72,171,21,34,37,79, - 10,11,22,10,0,0,112,0,80,128,33,0,18,0,18,0, - 228,0,8,128,11,128,18,128,19,192,33,192,6,13,13,8, - 1,251,32,32,0,32,32,32,64,64,128,128,132,136,112,10, - 15,30,10,0,0,32,0,24,0,12,0,0,0,0,0,4, - 0,12,0,20,0,18,0,18,0,30,0,33,0,33,0,65, - 128,227,192,10,15,30,10,0,0,2,0,7,0,12,0,16, - 0,0,0,4,0,12,0,20,0,18,0,18,0,30,0,33, - 0,33,0,65,128,227,192,10,15,30,10,0,0,12,0,12, - 0,18,0,33,0,0,0,4,0,12,0,20,0,18,0,18, - 0,30,0,33,0,33,0,65,128,227,192,10,14,28,10,0, - 0,10,0,25,0,38,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,13,26, - 10,0,0,34,0,34,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,15,30, - 10,0,0,12,0,20,0,28,0,0,0,0,0,4,0,12, - 0,20,0,18,0,18,0,30,0,33,0,33,0,65,128,227, - 192,12,10,20,13,1,0,31,224,10,32,10,0,18,0,31, - 224,50,0,34,0,34,0,66,16,231,240,7,14,14,9,1, - 252,62,66,128,128,128,128,128,128,66,102,24,24,8,16,7, - 15,15,8,1,0,64,224,16,8,0,252,68,64,64,124,64, - 64,64,66,254,7,15,15,8,1,0,8,28,48,0,0,252, - 68,64,64,124,64,64,64,66,254,7,15,15,8,1,0,16, - 56,72,4,0,252,68,64,64,124,64,64,64,66,254,7,13, - 13,8,1,0,136,136,0,252,68,64,64,124,64,64,64,66, - 254,4,15,15,5,0,0,128,192,32,16,0,112,32,32,32, - 32,32,32,32,32,112,4,15,15,5,1,0,32,48,64,128, - 0,224,64,64,64,64,64,64,64,64,224,5,15,15,5,0, - 0,32,112,136,0,0,112,32,32,32,32,32,32,32,32,112, - 5,13,13,5,0,0,136,136,0,112,32,32,32,32,32,32, - 32,32,112,8,10,10,10,1,0,252,70,65,65,241,65,65, - 66,66,252,9,14,28,11,1,0,18,0,58,0,4,0,0, - 0,195,128,97,0,97,0,81,0,73,0,77,0,69,0,67, - 0,67,0,225,0,8,15,15,10,1,0,32,112,8,4,0, - 60,66,129,129,129,129,129,130,66,60,8,15,15,10,1,0, - 4,14,24,0,0,60,66,129,129,129,129,129,130,66,60,8, - 15,15,10,1,0,8,28,36,66,0,60,66,129,129,129,129, - 129,130,66,60,8,14,14,10,1,0,18,50,76,0,60,66, - 129,129,129,129,129,130,66,60,8,13,13,10,1,0,68,68, - 0,60,66,129,129,129,129,129,130,66,60,5,5,5,7,1, - 2,136,80,32,80,136,8,10,10,10,1,0,29,98,131,133, - 137,145,161,194,66,188,9,15,30,11,1,0,32,0,48,0, - 12,0,0,0,0,0,227,128,65,0,65,0,65,0,65,0, - 65,0,65,0,65,0,34,0,60,0,9,15,30,11,1,0, - 2,0,6,0,8,0,16,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,65,0,34,0,60,0,9,15, - 30,11,1,0,8,0,28,0,34,0,0,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,13,26,11,1,0,34,0,34,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,15,30,10,1,0,4,0,14,0,24,0,0,0, - 0,0,195,128,97,0,50,0,22,0,28,0,8,0,8,0, - 8,0,8,0,28,0,7,10,10,9,1,0,224,64,124,70, - 66,66,66,124,64,224,8,13,13,10,1,0,28,38,66,66, - 68,72,80,88,78,67,81,81,206,7,12,12,8,1,0,64, - 32,16,0,28,100,4,28,100,132,140,118,7,12,12,8,1, - 0,8,16,32,0,28,100,4,28,100,132,140,118,7,12,12, - 8,1,0,48,72,136,4,28,100,4,28,100,132,140,118,7, - 11,11,8,1,0,100,152,0,28,100,4,28,100,132,140,118, - 7,11,11,8,1,0,136,136,0,28,100,4,28,100,132,140, - 118,7,12,12,8,1,0,48,80,112,0,28,100,4,28,100, - 132,140,118,10,8,16,12,1,0,59,128,204,64,136,64,63, - 192,72,0,136,0,156,192,231,0,6,12,12,7,1,252,60, - 72,128,128,128,128,196,120,32,48,16,32,6,12,12,8,1, - 0,96,32,16,0,56,68,132,252,128,128,68,120,6,12,12, - 8,1,0,12,24,32,0,56,68,132,252,128,128,68,120,6, - 12,12,8,1,0,48,72,132,0,56,68,132,252,128,128,68, - 120,6,11,11,8,1,0,132,136,0,56,68,132,252,128,128, - 68,120,4,12,12,5,0,0,192,64,32,0,32,96,32,32, - 32,32,32,112,4,12,12,5,1,0,48,96,64,0,64,192, - 64,64,64,64,64,224,5,12,12,5,0,0,32,80,136,0, - 32,96,32,32,32,32,32,112,5,11,11,5,0,0,136,136, - 0,32,96,32,32,32,32,32,112,6,12,12,8,1,0,104, - 28,120,8,52,204,132,132,132,132,72,112,8,11,11,9,1, - 0,54,76,0,78,210,98,66,66,66,66,231,7,12,12,9, - 1,0,96,32,16,0,56,68,130,130,130,130,68,56,7,12, - 12,9,1,0,12,8,16,0,56,68,130,130,130,130,68,56, - 7,12,12,9,1,0,16,40,68,0,56,68,130,130,130,130, - 68,56,7,11,11,9,1,0,52,216,0,56,68,130,130,130, - 130,68,56,7,11,11,9,1,0,132,132,0,56,68,130,130, - 130,130,68,56,5,6,6,7,1,2,32,32,0,248,32,32, - 7,8,8,9,1,0,62,68,142,146,146,226,68,248,9,12, - 24,9,0,0,48,0,24,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,9, - 0,0,6,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,9,0,0, - 8,0,20,0,34,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,9,0,0,34,0, - 66,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,8,16,16,8,0,252,6,12,8,0,231,98, - 34,36,52,20,24,8,8,16,160,192,7,17,17,9,1,252, - 64,192,64,64,64,92,102,66,66,66,66,100,120,64,64,64, - 224,8,15,15,8,0,252,66,66,0,231,98,34,36,52,20, - 24,8,8,16,160,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 10 - Calculated Max Values w= 8 h=16 x= 2 y= 6 dx= 8 dy= 0 ascent=13 len=16 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10n[263] U8G_FONT_SECTION("u8g_font_gdr10n") = { - 0,25,24,247,250,10,0,0,0,0,42,58,0,13,253,10, - 0,6,7,7,8,1,6,32,168,236,48,252,164,32,6,6, - 6,7,1,2,32,32,32,252,32,32,2,4,4,4,1,253, - 192,64,64,128,4,1,1,6,1,4,240,1,2,2,4,2, - 0,128,128,8,16,16,8,0,253,3,2,6,4,4,12,8, - 8,16,16,48,32,32,96,64,192,6,10,10,8,1,0,56, - 72,132,132,132,132,132,132,72,112,5,10,10,8,2,0,32, - 224,32,32,32,32,32,32,32,248,5,10,10,8,2,0,56, - 200,136,8,16,32,32,64,136,248,6,10,10,8,1,0,112, - 136,136,16,48,8,4,4,140,120,6,10,10,8,1,0,8, - 24,40,40,72,136,252,8,8,60,6,10,10,8,1,0,124, - 64,64,120,140,4,4,4,132,120,6,10,10,8,1,0,24, - 32,64,128,248,132,132,132,72,56,6,10,10,8,1,0,252, - 132,8,8,8,16,16,32,32,64,6,10,10,8,1,0,120, - 196,196,200,56,204,132,132,132,120,6,10,10,8,1,0,56, - 200,132,132,132,124,4,8,16,96,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10r[1723] U8G_FONT_SECTION("u8g_font_gdr10r") = { - 0,25,24,247,250,10,2,30,4,177,32,127,252,14,252,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=10 dx=15 dy= 0 ascent=16 len=34 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11[3977] U8G_FONT_SECTION("u8g_font_gdr11") = { - 0,26,25,247,250,11,2,61,5,21,32,255,252,16,251,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,4, - 0,0,2,13,13,5,1,251,64,192,0,64,64,64,64,64, - 64,64,64,64,64,7,11,11,8,1,0,16,24,118,144,144, - 144,144,212,126,16,16,7,11,11,8,1,0,60,68,68,64, - 64,240,64,64,66,130,254,6,6,6,8,1,2,248,76,72, - 72,120,132,9,11,22,8,0,0,231,128,98,0,50,0,20, - 0,28,0,8,0,127,0,8,0,8,0,8,0,28,0,1, - 19,19,4,2,252,128,128,128,128,128,128,128,128,0,0,0, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,248,142,130,66,60,12,132,196,120,5,2,2,7,1, - 10,136,136,11,11,22,13,1,0,31,0,32,128,94,64,162, - 32,160,32,160,32,160,32,177,32,94,64,32,128,31,0,5, - 6,6,5,0,5,48,80,112,144,248,240,7,8,8,9,1, - 0,38,36,72,152,152,72,36,38,7,3,3,8,1,2,254, - 2,2,5,1,1,6,1,4,248,6,7,7,6,0,6,120, - 72,188,188,180,104,120,6,1,1,9,1,10,252,4,4,4, - 6,1,7,112,144,144,224,7,8,8,7,0,1,16,16,254, - 16,16,16,0,126,4,7,7,6,1,5,112,144,16,32,64, - 144,240,5,7,7,6,0,5,56,72,8,24,8,136,112,3, - 4,4,6,2,9,32,96,64,128,8,12,12,10,1,252,198, - 66,66,66,66,66,102,123,64,64,64,96,8,13,13,10,1, - 254,63,202,138,138,138,202,122,10,10,10,10,10,31,1,2, - 2,3,1,5,128,128,2,4,4,4,1,252,192,64,192,128, - 4,7,7,6,1,5,32,224,32,32,32,32,240,4,6,6, - 5,0,5,96,144,144,144,96,240,7,8,8,9,1,0,144, - 72,100,54,54,100,72,144,10,11,22,11,1,0,192,128,65, - 0,65,0,66,0,70,0,164,0,8,128,27,128,18,128,35, - 192,101,192,9,11,22,11,1,0,193,0,65,0,66,0,68, - 0,68,0,168,0,11,128,20,128,33,0,34,128,71,128,10, - 11,22,10,0,0,96,128,144,128,33,0,17,0,18,0,228, - 0,4,128,11,128,18,128,19,192,37,192,6,13,13,8,1, - 251,16,48,0,16,16,16,32,64,128,132,132,136,112,11,15, - 30,11,0,0,16,0,56,0,4,0,2,0,4,0,12,0, - 14,0,18,0,18,0,19,0,31,0,33,0,33,128,32,128, - 241,224,11,15,30,11,0,0,1,0,7,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,11,15,30,11,0,0,4,0,14,0, - 17,0,32,0,4,0,12,0,14,0,18,0,18,0,19,0, - 31,0,33,0,33,128,32,128,241,224,11,15,30,11,0,0, - 9,0,29,0,34,0,0,0,4,0,12,0,14,0,18,0, - 18,0,19,0,31,0,33,0,33,128,32,128,241,224,11,14, - 28,11,0,0,33,0,33,0,0,0,4,0,12,0,14,0, - 18,0,18,0,19,0,31,0,33,0,33,128,32,128,241,224, - 11,16,32,11,0,0,4,0,10,0,18,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,13,11,22,14,0,0,15,248,5,8, - 5,0,9,0,15,240,17,0,17,0,17,0,33,8,33,8, - 243,248,9,15,30,10,1,252,62,0,66,0,128,0,128,0, - 128,0,128,0,128,0,128,0,192,0,97,128,62,0,8,0, - 12,0,4,0,8,0,7,15,15,9,1,0,64,224,24,0, - 254,66,64,64,124,64,64,64,66,66,254,7,15,15,9,1, - 0,4,12,48,0,254,66,64,64,124,64,64,64,66,66,254, - 7,15,15,9,1,0,16,40,68,0,254,66,64,64,124,64, - 64,64,66,66,254,7,14,14,9,1,0,68,68,0,254,66, - 64,64,124,64,64,64,66,66,254,4,15,15,5,0,0,128, - 192,48,0,112,32,32,32,32,32,32,32,32,32,112,5,15, - 15,5,1,0,16,56,192,0,224,64,64,64,64,64,64,64, - 64,64,224,5,15,15,5,0,0,32,80,136,0,112,32,32, - 32,32,32,32,32,32,32,112,5,14,14,5,0,0,136,136, - 0,112,32,32,32,32,32,32,32,32,32,112,9,11,22,11, - 1,0,252,0,67,0,65,0,64,128,64,128,240,128,64,128, - 64,128,65,0,67,0,252,0,10,15,30,12,1,0,25,0, - 57,0,38,0,0,0,193,192,96,128,112,128,80,128,72,128, - 76,128,70,128,66,128,65,128,65,128,224,128,9,15,30,11, - 1,0,32,0,112,0,12,0,0,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,65,0,98,0,60,0, - 9,15,30,11,1,0,2,0,6,0,24,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,9,15,30,11,1,0,8,0,20,0,34,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,65,0,98,0,60,0,9,15,30,11,1,0,18,0, - 58,0,68,0,0,0,30,0,99,0,129,0,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,14,28,11, - 1,0,34,0,34,0,0,0,30,0,99,0,129,0,128,128, - 128,128,128,128,128,128,128,128,65,0,98,0,60,0,6,6, - 6,7,1,2,140,88,48,48,88,140,9,11,22,11,1,0, - 30,128,35,0,67,0,134,128,132,128,136,128,144,128,176,128, - 97,0,98,0,188,0,10,15,30,12,1,0,32,0,24,0, - 4,0,2,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,1,0, - 2,0,7,0,8,0,16,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,15, - 30,12,1,0,12,0,30,0,34,0,1,0,225,192,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,33,0, - 30,0,10,14,28,12,1,0,34,0,34,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 33,0,30,0,10,15,30,11,0,0,1,0,7,0,12,0, - 0,0,225,192,48,128,17,0,25,0,10,0,14,0,4,0, - 4,0,4,0,4,0,14,0,7,11,11,9,1,0,240,64, - 124,70,66,66,66,68,124,64,240,8,14,14,10,1,0,28, - 38,66,66,66,76,80,80,76,71,65,81,81,222,7,13,13, - 8,1,0,64,96,48,16,0,60,68,132,28,100,132,140,118, - 7,13,13,8,1,0,12,8,16,32,0,60,68,132,28,100, - 132,140,118,7,13,13,8,1,0,48,56,72,132,0,60,68, - 132,28,100,132,140,118,7,12,12,8,1,0,116,152,0,0, - 60,68,132,28,100,132,140,118,7,12,12,8,1,0,132,132, - 0,0,60,68,132,28,100,132,140,118,7,13,13,8,1,0, - 48,72,72,48,0,60,68,132,28,100,132,140,118,11,8,16, - 12,1,0,29,192,102,32,68,32,159,224,100,0,132,0,142, - 32,115,192,7,12,12,8,1,252,60,68,128,128,128,128,194, - 124,16,24,8,16,6,13,13,8,1,0,96,32,16,16,0, - 56,68,132,252,128,128,68,120,6,13,13,8,1,0,12,8, - 16,16,0,56,68,132,252,128,128,68,120,6,13,13,8,1, - 0,16,56,108,68,0,56,68,132,252,128,128,68,120,6,12, - 12,8,1,0,68,68,0,0,56,68,132,252,128,128,68,120, - 4,13,13,5,0,0,192,64,32,32,16,32,96,32,32,32, - 32,32,112,4,13,13,5,1,0,48,32,64,64,0,64,192, - 64,64,64,64,64,224,5,13,13,5,0,0,32,112,216,136, - 0,32,96,32,32,32,32,32,112,5,12,12,5,0,0,136, - 136,0,0,32,96,32,32,32,32,32,112,7,13,13,9,1, - 0,96,30,56,68,4,62,198,130,130,130,132,68,56,8,12, - 12,10,1,0,50,76,0,0,78,210,98,66,66,66,66,231, - 7,13,13,9,1,0,96,32,16,8,0,56,196,130,130,130, - 130,68,56,7,13,13,9,1,0,4,12,24,16,0,56,196, - 130,130,130,130,68,56,7,13,13,9,1,0,16,56,36,68, - 0,56,196,130,130,130,130,68,56,7,12,12,9,1,0,50, - 92,0,0,56,196,130,130,130,130,68,56,7,12,12,9,1, - 0,68,68,0,0,56,196,130,130,130,130,68,56,6,6,6, - 7,1,2,32,32,0,252,32,32,7,9,9,9,1,0,2, - 62,68,138,146,162,226,68,248,8,13,13,10,1,0,96,48, - 16,8,0,198,66,66,66,66,66,70,59,8,13,13,10,1, - 0,4,12,8,16,0,198,66,66,66,66,66,70,59,8,13, - 13,10,1,0,24,56,36,66,0,198,66,66,66,66,66,70, - 59,8,12,12,10,1,0,68,68,0,0,198,66,66,66,66, - 66,70,59,9,17,34,9,0,252,2,0,4,0,12,0,8, - 0,0,0,243,128,97,0,34,0,50,0,20,0,20,0,28, - 0,8,0,8,0,16,0,176,0,224,0,8,18,18,10,1, - 252,64,192,64,64,64,64,78,115,65,65,65,65,98,124,64, - 64,64,240,9,16,32,9,0,252,34,0,34,0,0,0,0, - 0,243,128,97,0,34,0,50,0,20,0,20,0,28,0,8, - 0,8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx= 9 dy= 0 ascent=14 len=17 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11n[276] U8G_FONT_SECTION("u8g_font_gdr11n") = { - 0,26,25,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,16,164,120,120,164,16,48,7, - 6,6,7,0,2,16,16,16,254,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,2,2, - 4,1,0,192,128,8,17,17,8,0,253,1,2,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,11,11,8, - 1,0,48,72,132,132,132,132,132,132,132,72,48,6,11,11, - 8,1,0,16,240,16,16,16,16,16,16,16,16,124,6,11, - 11,8,1,0,28,100,68,4,8,8,16,32,68,68,252,6, - 11,11,7,0,0,56,68,68,4,24,12,4,4,4,140,120, - 7,11,11,8,0,0,4,12,12,20,36,36,68,254,4,4, - 30,6,11,11,8,1,0,124,64,64,64,120,132,4,4,4, - 132,120,6,11,11,8,1,0,12,48,64,192,184,196,132,132, - 132,72,56,7,11,11,8,1,0,254,132,4,8,8,8,16, - 16,32,32,96,7,11,11,9,1,0,120,196,196,196,120,60, - 194,130,130,130,124,6,11,11,8,1,0,56,200,132,132,132, - 132,124,4,8,16,224,2,8,8,4,1,0,192,128,0,0, - 0,0,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11r[1868] U8G_FONT_SECTION("u8g_font_gdr11r") = { - 0,26,25,247,250,11,2,61,5,21,32,127,252,15,252,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12[4200] U8G_FONT_SECTION("u8g_font_gdr12") = { - 0,28,28,246,249,12,2,80,5,85,32,255,252,17,251,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,0,2,14, - 14,5,2,251,64,192,64,128,128,128,128,128,128,128,128,128, - 128,128,7,12,12,9,1,0,16,16,62,212,144,144,144,144, - 210,124,16,16,7,12,12,9,1,0,60,70,68,64,64,64, - 240,64,64,66,66,254,7,6,6,9,1,3,132,126,68,68, - 68,254,9,11,22,9,0,0,231,128,99,0,50,0,20,0, - 28,0,8,0,127,0,8,0,8,0,8,0,62,0,1,20, - 20,4,2,252,128,128,128,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,184,134,130,98,60,12,132,196,120,5,2,2,7,1, - 10,136,136,12,12,24,14,1,0,15,0,48,192,94,32,146, - 32,160,16,160,16,160,16,160,16,144,160,79,32,32,64,31, - 128,5,7,7,5,0,5,48,208,112,208,176,72,240,7,8, - 8,9,1,0,34,36,76,216,216,76,36,34,8,4,4,9, - 0,2,255,1,1,1,5,1,1,6,1,4,248,7,6,6, - 7,0,7,56,238,170,178,238,56,6,1,1,9,2,11,252, - 5,5,5,7,1,7,112,136,136,136,112,7,9,9,8,0, - 1,16,16,16,254,16,16,16,0,126,4,7,7,6,1,6, - 112,144,16,32,64,144,240,5,8,8,6,0,5,56,72,8, - 16,8,8,136,112,4,4,4,6,2,10,48,96,64,128,8, - 13,13,10,1,252,194,70,66,66,66,66,102,126,91,64,64, - 64,96,8,14,14,10,1,254,63,70,134,134,134,70,62,6, - 6,6,6,6,6,15,1,2,2,3,1,5,128,128,2,4, - 4,4,2,252,192,192,64,128,5,7,7,6,1,6,32,224, - 32,32,32,32,248,4,7,7,5,0,5,96,144,144,144,144, - 96,240,7,8,8,9,1,0,136,72,36,50,50,36,72,136, - 10,11,22,11,1,0,192,128,65,0,65,0,66,0,68,0, - 228,0,9,128,18,128,18,128,39,192,65,192,9,11,22,11, - 1,0,192,128,65,0,66,0,66,0,68,0,239,128,12,128, - 17,0,49,0,34,128,71,128,10,12,24,11,1,0,96,0, - 144,128,33,0,18,0,146,0,228,0,8,0,9,128,18,128, - 50,128,39,192,65,192,6,14,14,8,1,251,16,48,16,16, - 16,16,32,32,64,128,132,132,136,112,11,16,32,11,0,0, - 16,0,60,0,2,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,16,32,11,0,0,1,0,7,128,8,0,0,0,4,0, - 6,0,14,0,10,0,11,0,17,0,17,0,31,128,33,128, - 32,128,32,192,241,224,11,16,32,11,0,0,4,0,10,0, - 17,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,11,15,30,11, - 0,0,29,128,39,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,15,30,11,0,0,33,0,33,0,0,0,4,0,6,0, - 14,0,10,0,11,0,17,0,17,0,31,128,33,128,32,128, - 32,192,241,224,11,17,34,11,0,0,14,0,18,0,18,0, - 12,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,14,12,24,15, - 0,0,31,248,5,8,5,0,9,0,9,0,31,240,17,32, - 17,0,33,0,33,8,97,12,243,248,9,16,32,10,1,252, - 30,0,99,0,128,0,128,0,128,0,128,0,128,0,128,0, - 128,0,65,0,97,128,62,0,8,0,12,0,4,0,8,0, - 8,16,16,9,1,0,64,48,8,0,254,66,64,64,64,124, - 72,64,64,66,67,254,8,16,16,9,1,0,4,14,48,0, - 254,66,64,64,64,124,72,64,64,66,67,254,8,16,16,9, - 1,0,24,44,68,2,254,66,64,64,64,124,72,64,64,66, - 67,254,8,15,15,9,1,0,132,132,0,254,66,64,64,64, - 124,72,64,64,66,67,254,4,16,16,6,0,0,128,96,16, - 0,112,32,32,32,32,32,32,32,32,32,32,112,5,16,16, - 6,1,0,24,48,192,0,224,64,64,64,64,64,64,64,64, - 64,64,224,6,16,16,6,0,0,48,88,132,0,112,32,32, - 32,32,32,32,32,32,32,32,112,6,15,15,6,0,0,132, - 136,0,112,32,32,32,32,32,32,32,32,32,32,112,10,12, - 24,11,0,0,126,0,33,128,32,128,32,64,32,64,124,64, - 160,64,32,64,32,64,32,128,33,0,126,0,10,15,30,12, - 1,0,25,0,38,0,0,0,193,192,96,128,112,128,80,128, - 88,128,76,128,68,128,70,128,67,128,65,128,65,128,224,128, - 9,16,32,11,1,0,32,0,24,0,4,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,16,32,11,1,0,3,0,6,0, - 24,0,0,0,30,0,99,0,129,0,128,128,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,16,32,11, - 1,0,12,0,22,0,34,0,1,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,128,128,65,0,98,0, - 60,0,9,15,30,11,1,0,25,0,110,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,15,30,11,1,0,66,0,66,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,128,128,65,0,98,0,60,0,6,6,6,8,1,2, - 132,72,48,48,72,132,9,12,24,11,1,0,30,128,35,0, - 67,0,131,128,132,128,136,128,136,128,144,128,225,0,97,0, - 98,0,188,0,10,16,32,12,1,0,48,0,24,0,6,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,16,32,12,1,0, - 1,0,6,0,8,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 10,16,32,12,1,0,12,0,26,0,33,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,1,0,33,0,33,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,11,16,32,11,0,0, - 1,0,3,128,12,0,0,0,225,224,48,128,49,128,25,0, - 10,0,14,0,4,0,4,0,4,0,4,0,4,0,31,0, - 8,12,12,10,1,0,240,64,124,66,65,65,65,65,98,92, - 64,240,9,14,28,11,1,0,30,0,35,0,65,0,65,0, - 65,0,70,0,72,0,72,0,70,0,67,128,64,128,72,128, - 72,128,207,0,7,14,14,9,1,0,96,32,16,16,8,60, - 68,132,4,60,196,132,140,118,7,14,14,9,1,0,12,8, - 16,16,0,60,68,132,4,60,196,132,140,118,7,14,14,9, - 1,0,16,56,76,132,0,60,68,132,4,60,196,132,140,118, - 7,13,13,9,1,0,34,116,152,0,60,68,132,4,60,196, - 132,140,118,7,12,12,9,1,0,132,132,0,60,68,132,4, - 60,196,132,140,118,7,14,14,9,1,0,56,72,72,48,0, - 60,68,132,4,60,196,132,140,118,11,9,18,13,1,0,57, - 192,70,64,196,32,4,32,31,224,100,0,132,0,142,32,115, - 192,7,13,13,8,1,252,60,68,128,128,128,128,128,98,60, - 16,24,8,16,7,14,14,9,1,0,96,32,16,8,0,60, - 68,130,130,254,128,128,66,60,7,14,14,9,1,0,4,14, - 8,16,0,60,68,130,130,254,128,128,66,60,7,14,14,9, - 1,0,24,56,36,66,0,60,68,130,130,254,128,128,66,60, - 7,12,12,9,1,0,130,132,0,60,68,130,130,254,128,128, - 66,60,4,14,14,5,0,0,192,64,32,16,0,32,96,32, - 32,32,32,32,32,112,4,14,14,5,1,0,16,48,96,64, - 0,64,192,64,64,64,64,64,64,224,6,14,14,5,0,0, - 32,112,200,132,0,32,96,32,32,32,32,32,32,112,6,12, - 12,5,255,0,132,132,0,16,48,16,16,16,16,16,16,56, - 7,13,13,9,1,0,96,30,56,68,60,70,130,130,130,130, - 132,68,56,8,13,13,10,1,0,51,58,76,0,76,210,98, - 66,66,66,66,66,231,8,14,14,10,1,0,96,48,16,8, - 0,60,66,129,129,129,129,130,66,60,8,14,14,10,1,0, - 6,12,8,16,0,60,66,129,129,129,129,130,66,60,8,14, - 14,10,1,0,24,56,36,66,0,60,66,129,129,129,129,130, - 66,60,8,13,13,10,1,0,50,122,76,0,60,66,129,129, - 129,129,130,66,60,8,12,12,10,1,0,130,130,0,60,66, - 129,129,129,129,130,66,60,6,6,6,8,1,2,32,32,252, - 0,32,32,8,9,9,10,1,0,29,102,135,137,153,145,226, - 98,252,8,14,14,10,1,0,96,48,16,8,0,198,66,66, - 66,66,66,66,70,59,8,14,14,10,1,0,6,12,8,16, - 0,198,66,66,66,66,66,66,70,59,8,14,14,10,1,0, - 24,28,36,66,0,198,66,66,66,66,66,66,70,59,8,12, - 12,10,1,0,130,130,0,198,66,66,66,66,66,66,70,59, - 9,18,36,9,0,252,3,0,6,0,4,0,8,0,0,0, - 243,128,97,0,33,0,50,0,18,0,20,0,28,0,12,0, - 8,0,8,0,16,0,176,0,224,0,8,18,18,10,1,252, - 64,192,64,64,64,78,114,65,65,65,65,66,98,124,64,64, - 64,240,9,16,32,9,0,252,65,0,65,0,0,0,243,128, - 97,0,33,0,50,0,18,0,20,0,28,0,12,0,8,0, - 8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=18 x= 2 y= 7 dx= 9 dy= 0 ascent=15 len=18 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12n[286] U8G_FONT_SECTION("u8g_font_gdr12n") = { - 0,28,28,246,249,12,0,0,0,0,42,58,0,15,253,12, - 0,7,7,7,8,1,7,16,148,222,48,252,146,16,7,7, - 7,8,0,2,16,16,16,254,16,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,3,3, - 4,1,255,192,192,128,8,18,18,9,0,253,1,1,3,2, - 6,4,4,12,8,8,24,16,48,32,32,96,64,192,7,11, - 11,9,1,0,56,68,130,130,130,130,130,130,132,68,56,6, - 12,12,9,1,0,16,112,144,16,16,16,16,16,16,16,16, - 252,6,12,12,8,1,0,60,68,196,4,4,8,16,16,32, - 68,132,252,7,12,12,8,0,0,28,38,98,2,4,28,2, - 2,2,2,134,124,7,12,12,9,1,0,4,12,12,20,20, - 36,68,68,254,4,4,30,6,11,11,9,2,0,124,64,64, - 64,120,132,4,4,4,132,120,7,12,12,9,1,0,12,48, - 64,64,128,252,198,130,130,130,68,56,7,11,11,9,1,0, - 254,130,4,4,8,8,24,16,48,32,96,7,12,12,9,1, - 0,120,196,196,196,232,60,78,130,130,130,194,124,7,11,11, - 9,1,0,56,68,130,130,130,198,122,2,4,8,112,2,10, - 10,4,1,255,128,192,128,0,0,0,0,192,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=30 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12r[1992] U8G_FONT_SECTION("u8g_font_gdr12r") = { - 0,28,28,246,249,12,2,80,5,85,32,127,252,16,252,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14[5942] U8G_FONT_SECTION("u8g_font_gdr14") = { - 0,35,33,244,248,14,3,95,7,136,32,255,251,20,250,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,0,2,16,16, - 6,2,250,192,192,128,64,192,192,192,192,192,192,192,192,192, - 192,192,128,9,14,28,11,1,0,12,0,12,0,31,128,109, - 128,76,0,204,0,204,0,204,0,204,0,236,128,125,128,63, - 0,12,0,12,0,10,14,28,11,0,0,7,128,24,192,16, - 128,48,128,48,0,48,0,48,0,126,0,48,0,48,0,48, - 0,32,64,32,64,255,192,9,7,14,11,1,3,221,128,119, - 0,99,0,99,0,115,0,127,0,128,128,12,14,28,11,255, - 0,225,240,48,64,48,192,25,128,29,128,15,0,7,0,6, - 0,63,192,6,0,6,0,6,0,6,0,31,128,2,24,24, - 5,2,251,192,192,192,192,192,192,192,192,192,192,128,0,0, - 64,192,192,192,192,192,192,192,192,192,192,9,16,32,11,1, - 0,30,0,99,0,98,0,112,0,56,0,94,0,199,0,195, - 128,225,128,113,128,63,0,15,0,7,0,67,0,99,0,62, - 0,7,3,3,9,1,12,198,198,198,15,14,28,16,0,0, - 7,192,24,48,49,248,98,44,198,6,204,6,204,6,204,6, - 204,6,206,38,102,76,51,152,24,48,7,192,6,8,8,6, - 0,6,112,152,24,56,120,124,0,124,9,10,20,11,1,0, - 17,128,17,0,34,0,102,0,204,0,204,0,102,0,34,0, - 17,0,17,128,10,5,10,11,0,2,255,192,0,192,0,192, - 0,192,0,192,6,1,1,8,1,5,252,8,8,8,8,0, - 8,60,66,189,149,153,153,86,60,7,1,1,11,2,13,254, - 4,5,5,8,2,9,96,240,240,240,96,8,10,10,9,1, - 2,24,24,24,24,255,24,24,24,0,255,6,8,8,8,1, - 7,120,140,140,8,16,32,68,252,7,8,8,7,255,7,60, - 102,6,28,6,6,134,120,5,5,5,7,2,12,24,48,32, - 64,192,12,15,30,13,1,251,96,192,224,192,96,192,96,192, - 96,192,96,192,96,192,113,192,127,208,92,224,64,0,64,0, - 96,0,96,0,112,0,13,17,34,14,0,253,31,248,99,96, - 195,96,195,96,195,96,227,96,115,96,63,96,3,96,3,96, - 3,96,3,96,3,96,3,96,3,96,3,96,15,248,2,3, - 3,3,1,6,192,192,192,4,5,5,5,1,251,96,96,112, - 48,192,6,8,8,8,1,7,48,240,48,48,48,48,48,252, - 4,8,8,6,1,6,96,240,240,240,240,96,0,240,8,10, - 10,11,2,0,136,140,68,98,51,51,102,68,140,136,12,14, - 28,13,0,0,24,96,120,192,24,192,25,128,27,0,27,0, - 126,0,4,96,12,224,25,96,18,96,51,240,96,96,192,240, - 13,14,28,14,0,0,48,16,240,32,48,96,48,64,48,128, - 48,128,249,0,3,120,2,152,4,24,12,48,8,32,16,72, - 49,248,12,14,28,14,1,0,112,32,152,64,24,64,56,128, - 77,128,141,0,114,0,6,96,4,224,9,96,25,96,19,240, - 32,96,96,240,8,16,16,10,1,250,24,24,16,4,12,12, - 12,24,48,96,96,192,195,195,230,124,13,20,40,14,0,0, - 16,0,28,0,14,0,3,0,0,128,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,13,20,40,14,0,0,0,128, - 0,192,3,160,6,0,0,0,0,0,2,0,3,0,5,0, - 5,128,5,128,8,128,8,192,8,192,31,192,16,96,16,96, - 32,48,32,48,248,120,13,20,40,14,0,0,2,0,7,0, - 13,128,8,64,16,0,0,0,2,0,3,0,5,0,5,128, - 5,128,8,128,8,192,8,192,31,192,16,96,16,96,32,48, - 32,48,248,120,13,19,38,14,0,0,4,64,14,96,19,192, - 0,0,0,0,2,0,3,0,5,0,5,128,5,128,8,128, - 8,192,8,192,31,192,16,96,16,96,32,48,32,48,248,120, - 13,18,36,14,0,0,8,64,12,96,8,64,0,0,2,0, - 3,0,5,0,5,128,5,128,8,128,8,192,8,192,31,192, - 16,96,16,96,32,48,32,48,248,120,13,20,40,14,0,0, - 2,0,7,0,7,128,7,0,0,0,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,18,14,42,18,0,0,7,255, - 128,1,96,128,3,96,128,2,96,0,6,96,0,6,96,0, - 7,255,0,12,98,0,8,96,0,24,96,0,16,96,0,16, - 96,64,48,96,64,249,255,128,11,19,38,12,1,251,7,192, - 24,96,32,0,96,0,64,0,192,0,192,0,192,0,192,0, - 192,0,224,0,96,128,113,192,62,0,8,0,4,0,14,0, - 6,0,24,0,11,20,40,11,0,0,32,0,56,0,28,0, - 6,0,1,0,0,0,255,192,48,64,48,64,48,0,48,0, - 48,0,63,128,49,0,48,0,48,0,48,0,48,32,48,96, - 255,192,11,20,40,11,0,0,1,0,1,128,7,0,12,0, - 0,0,0,0,255,192,48,64,48,64,48,0,48,0,48,0, - 63,128,49,0,48,0,48,0,48,0,48,32,48,96,255,192, - 11,20,40,11,0,0,4,0,14,0,27,0,48,128,0,0, - 0,0,255,192,48,64,48,64,48,0,48,0,48,0,63,128, - 49,0,48,0,48,0,48,0,48,32,48,96,255,192,11,18, - 36,11,0,0,16,128,49,128,49,128,0,0,255,192,48,64, - 48,64,48,0,48,0,48,0,63,128,49,0,48,0,48,0, - 48,0,48,32,48,96,255,192,6,20,20,7,0,0,128,192, - 112,24,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,252,7,20,20,7,0,0,4,14,28,48,64,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,252,7,20,20,7, - 0,0,16,56,108,134,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,252,7,18,18,7,0,0,66,198,198,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,13,14, - 28,14,0,0,127,128,176,224,48,112,48,48,48,24,48,24, - 254,24,48,24,48,24,48,24,48,48,48,112,48,224,255,128, - 15,19,38,15,0,0,2,32,7,32,9,192,0,0,0,0, - 240,126,48,24,56,24,60,24,52,24,50,24,51,24,49,152, - 48,152,48,216,48,120,48,56,48,56,252,24,12,20,40,14, - 1,0,16,0,56,0,12,0,2,0,1,0,0,0,15,128, - 48,192,32,96,96,96,192,48,192,48,192,48,192,48,192,48, - 192,48,96,96,96,64,48,128,31,0,12,20,40,14,1,0, - 1,0,1,192,3,0,12,0,0,0,0,0,15,128,48,192, - 32,96,96,96,192,48,192,48,192,48,192,48,192,48,192,48, - 96,96,96,64,48,128,31,0,12,20,40,14,1,0,6,0, - 14,0,11,0,16,128,32,0,0,0,15,128,48,192,32,96, - 96,96,192,48,192,48,192,48,192,48,192,48,192,48,96,96, - 96,64,48,128,31,0,12,19,38,14,1,0,8,128,28,64, - 55,128,0,0,0,0,15,128,48,192,32,96,96,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,64,48,128, - 31,0,12,18,36,14,1,0,16,128,24,192,16,128,0,0, - 15,128,48,192,32,96,96,96,192,48,192,48,192,48,192,48, - 192,48,192,48,96,96,96,64,48,128,31,0,7,7,7,9, - 1,3,194,102,60,24,60,102,194,12,15,30,14,1,255,15, - 48,48,224,32,224,64,224,193,176,195,48,194,48,198,48,204, - 48,200,48,88,32,112,64,112,128,207,0,128,0,15,20,40, - 15,0,0,8,0,14,0,7,0,1,128,0,64,0,0,252, - 126,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,24,48,28,96,7,192,15,20,40,15,0, - 0,0,64,0,96,1,192,3,0,0,0,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,24,48,28,96,7,192,15,20,40,15,0,0,1, - 0,3,128,6,192,12,96,0,0,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,15,18,36,15,0,0,4,32,12, - 96,12,96,0,0,252,126,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,24,48,28,96,7, - 192,14,20,40,14,0,0,0,128,0,224,1,128,6,0,0, - 0,0,0,224,124,48,48,24,32,24,96,12,64,6,192,7, - 128,3,0,3,0,3,0,3,0,3,0,3,0,15,192,11, - 14,28,12,0,0,252,0,48,0,48,0,63,128,48,192,48, - 96,48,96,48,96,48,96,48,192,63,128,48,0,48,0,252, - 0,13,17,34,13,0,0,7,128,8,192,16,96,48,96,48, - 96,48,224,51,192,55,0,54,0,55,0,51,192,48,240,48, - 56,48,24,52,24,50,16,243,224,10,17,34,11,1,0,96, - 0,48,0,16,0,8,0,4,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,17,34,11,1,0,3,0,6,0,12,0,8,0,16, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,17,34,11,1,0,24, - 0,28,0,54,0,98,0,65,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,15,30,11,1,0,57,0,78,0,0,0,0,0,0, - 0,30,0,99,0,195,0,3,0,31,0,99,0,195,0,195, - 0,199,0,123,192,10,15,30,11,1,0,33,0,99,0,99, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,16,32,11,1,0,28, - 0,60,0,60,0,24,0,0,0,0,0,30,0,99,0,195, - 0,3,0,31,0,99,0,195,0,195,0,199,0,123,192,14, - 10,20,16,1,0,30,112,99,152,195,12,131,12,31,252,115, - 0,195,0,195,0,197,132,120,248,9,15,30,10,1,251,15, - 0,49,128,96,0,192,0,192,0,192,0,192,0,192,0,99, - 0,124,0,16,0,8,0,28,0,12,0,48,0,9,17,34, - 11,1,0,48,0,112,0,24,0,8,0,4,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,17,34,11,1,0,3,0,6,0,6, - 0,12,0,8,0,0,0,0,0,30,0,33,0,65,128,255, - 128,192,0,192,0,192,0,224,0,113,128,62,0,9,17,34, - 11,1,0,12,0,28,0,54,0,35,0,65,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,15,30,11,1,0,33,0,49,128,33, - 0,0,0,0,0,30,0,33,0,65,128,255,128,192,0,192, - 0,192,0,224,0,113,128,62,0,6,17,17,6,0,0,192, - 96,32,48,16,0,0,48,240,48,48,48,48,48,48,48,252, - 7,17,17,6,0,0,12,14,24,16,32,0,0,48,240,48, - 48,48,48,48,48,48,252,7,17,17,6,0,0,48,56,104, - 196,130,0,0,48,240,48,48,48,48,48,48,48,252,7,15, - 15,6,0,0,198,198,198,0,0,48,240,48,48,48,48,48, - 48,48,252,9,16,32,11,1,0,48,0,91,128,12,0,50, - 0,3,0,1,0,31,128,99,128,67,128,193,128,193,128,193, - 128,193,0,227,0,98,0,60,0,13,15,30,13,0,0,14, - 64,19,128,0,0,0,0,0,0,113,192,182,96,56,96,48, - 96,48,96,48,96,48,96,48,96,48,96,253,248,10,17,34, - 12,1,0,48,0,48,0,24,0,12,0,4,0,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,17,34,12,1,0,3,0,3,0,6, - 0,4,0,8,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,10,17,34, - 12,1,0,12,0,30,0,18,0,33,0,64,128,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,15,30,12,1,0,56,128,71,0,0, - 0,0,0,0,0,30,0,35,128,65,128,192,192,192,192,192, - 192,192,192,224,128,113,0,30,0,10,15,30,12,1,0,49, - 128,49,128,33,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,8,7,7, - 9,1,3,24,24,0,255,0,24,24,10,12,24,12,1,255, - 0,64,30,192,35,128,67,192,194,192,196,192,200,192,216,192, - 240,128,113,0,222,0,128,0,11,17,34,12,1,0,48,0, - 24,0,24,0,12,0,4,0,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,17,34,12,1,0,3,0,3,128,6,0,4,0,8,0, - 0,0,0,0,97,128,231,128,97,128,97,128,97,128,97,128, - 97,128,97,128,103,160,57,192,11,17,34,12,1,0,12,0, - 14,0,26,0,49,0,32,128,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,15,30,12,1,0,49,128,49,128,49,128,0,0,0,0, - 97,128,231,128,97,128,97,128,97,128,97,128,97,128,97,128, - 103,160,57,192,12,22,44,11,255,251,0,192,0,192,1,128, - 3,0,2,0,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0,11,22,44,12,0,251,48,0,240,0, - 48,0,48,0,48,0,48,0,48,0,51,128,60,192,56,224, - 48,96,48,96,48,96,48,96,48,64,56,128,55,0,48,0, - 48,0,48,0,48,0,252,0,12,20,40,11,255,251,12,96, - 12,96,8,64,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=10 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14n[462] U8G_FONT_SECTION("u8g_font_gdr14n") = { - 0,35,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,137,0,235,128,60, - 0,60,0,235,0,137,0,24,0,24,0,8,8,8,9,1, - 2,24,24,24,255,24,24,24,24,4,6,6,5,0,253,112, - 240,48,48,32,64,6,1,1,8,1,5,252,2,3,3,5, - 2,0,192,192,192,9,22,44,11,1,252,0,128,1,128,1, - 0,3,0,3,0,2,0,6,0,6,0,12,0,12,0,8, - 0,24,0,24,0,16,0,48,0,48,0,96,0,96,0,64, - 0,192,0,192,0,128,0,9,14,28,11,1,0,28,0,39, - 0,99,0,67,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,0,97,0,98,0,28,0,8,14,14,11,2,0,24, - 120,152,24,24,24,24,24,24,24,24,24,24,255,8,14,14, - 11,1,0,60,103,195,131,3,6,6,12,24,24,48,97,193, - 255,9,14,28,12,1,0,30,0,103,0,195,0,3,0,2, - 0,4,0,30,0,3,0,1,128,1,128,1,128,1,128,195, - 0,60,0,10,14,28,11,0,0,3,0,7,0,7,0,11, - 0,27,0,19,0,35,0,99,0,67,0,255,192,3,0,3, - 0,3,0,15,192,9,14,28,11,0,0,0,128,63,0,32, - 0,32,0,96,0,126,0,67,0,1,128,1,128,1,128,1, - 128,1,0,195,0,60,0,9,14,28,11,1,0,3,0,12, - 0,48,0,32,0,96,0,222,0,227,0,193,128,193,128,193, - 128,193,128,97,0,99,0,30,0,9,13,26,11,1,0,127, - 128,129,0,129,0,3,0,2,0,6,0,4,0,12,0,8, - 0,24,0,24,0,48,0,32,0,9,14,28,11,1,0,62, - 0,71,0,195,0,195,0,195,0,118,0,30,0,39,0,99, - 128,193,128,193,128,193,128,99,0,60,0,9,14,28,11,1, - 0,30,0,99,0,67,0,193,128,193,128,193,128,193,128,99, - 128,61,128,1,0,3,0,6,0,8,0,112,0,2,11,11, - 5,2,0,192,192,192,0,0,0,0,0,192,192,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14r[2791] U8G_FONT_SECTION("u8g_font_gdr14r") = { - 0,35,33,244,248,14,3,95,7,136,32,127,251,19,251,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17[7056] U8G_FONT_SECTION("u8g_font_gdr17") = { - 0,40,38,242,247,17,4,64,9,46,32,255,250,23,249,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,6,0,0,3,19,19,7,2,249, - 96,224,224,192,64,64,64,64,64,96,96,96,96,224,224,224, - 224,224,192,11,17,34,13,1,255,6,0,6,0,7,128,31, - 224,38,64,102,0,198,0,198,0,198,0,198,0,198,0,230, - 32,118,64,63,128,15,0,6,0,6,0,11,16,32,13,1, - 0,7,192,24,224,16,64,48,64,48,0,48,0,48,0,48, - 0,255,0,48,0,48,0,48,0,48,32,32,32,96,96,255, - 224,9,8,16,13,2,4,128,128,93,0,119,0,99,0,99, - 0,119,0,93,0,128,128,14,16,32,13,255,0,240,124,48, - 48,24,96,28,96,12,192,14,192,7,128,3,128,3,0,63, - 240,3,0,3,0,3,0,3,0,3,0,15,192,2,27,27, - 6,2,251,192,192,192,192,192,192,192,192,192,192,192,192,128, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,31,0,35,128,97,0,96,0,112,0,60,0, - 127,0,199,128,195,192,193,192,224,192,120,192,63,128,15,0, - 3,128,65,128,65,128,97,0,62,0,9,3,6,11,1,15, - 193,128,193,128,193,128,17,17,51,19,1,0,3,224,0,12, - 24,0,48,6,0,48,246,0,99,27,0,102,1,0,204,1, - 128,204,1,128,204,1,128,204,1,128,204,1,128,70,19,0, - 103,19,0,49,230,0,48,6,0,12,24,0,3,224,0,7, - 8,8,7,0,8,56,76,140,60,108,108,126,126,10,12,24, - 13,1,0,8,64,24,192,16,128,49,128,99,0,230,0,231, - 0,99,0,49,128,16,128,8,192,8,64,11,6,12,13,1, - 2,255,224,0,96,0,96,0,96,0,96,0,96,7,1,1, - 9,1,6,254,9,9,18,10,0,10,62,0,99,0,255,128, - 146,128,156,128,152,128,213,128,107,0,62,0,9,1,2,13, - 2,16,255,128,6,6,6,10,2,10,56,76,204,204,200,112, - 10,12,24,11,1,2,12,0,12,0,12,0,12,0,255,192, - 12,0,12,0,12,0,12,0,0,0,0,0,255,128,7,10, - 10,9,1,8,60,70,198,6,12,24,16,32,66,254,8,10, - 10,9,255,8,30,35,67,2,14,3,3,3,198,60,5,6, - 6,9,3,14,24,56,48,96,192,128,14,18,36,14,0,250, - 48,48,240,112,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,240,63,188,55,56,48,0,48,0,48,0,48,0, - 56,0,48,0,13,20,40,15,1,253,31,248,49,224,97,224, - 193,224,193,224,193,224,193,224,97,224,113,224,31,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 7,248,2,3,3,4,1,8,192,192,192,5,6,6,6,0, - 250,48,32,56,88,16,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,6,8,8,8,1,8,56,76,204, - 204,204,200,112,252,10,12,24,13,2,0,132,0,198,0,98, - 0,35,0,49,128,24,192,25,192,49,128,35,0,98,0,198, - 0,132,0,14,16,32,16,1,0,48,24,240,56,48,48,48, - 96,48,192,48,192,49,128,255,0,3,24,6,56,12,88,12, - 88,24,152,17,252,48,24,96,60,13,16,32,15,1,0,48, - 8,240,16,48,48,48,32,48,96,48,192,48,128,253,128,3, - 112,2,152,7,24,4,16,8,48,24,96,16,200,49,248,14, - 16,32,16,1,0,56,24,204,16,12,48,56,32,12,64,12, - 192,140,128,113,128,3,24,2,56,6,88,12,88,8,152,25, - 252,16,24,48,60,10,19,38,12,1,249,6,0,14,0,14, - 0,12,0,2,0,6,0,6,0,6,0,12,0,28,0,56, - 0,112,0,96,0,192,0,192,192,192,192,192,192,97,128,62, - 0,16,23,46,16,0,0,12,0,30,0,7,0,1,128,0, - 64,0,0,0,128,1,128,3,128,3,192,2,192,6,192,6, - 96,4,96,12,112,12,48,15,240,24,24,24,24,16,24,48, - 12,48,12,248,63,16,23,46,16,0,0,0,48,0,112,1, - 192,3,128,2,0,0,0,0,128,1,128,3,128,3,192,2, - 192,6,192,6,96,4,96,12,112,12,48,15,240,24,24,24, - 24,16,24,48,12,48,12,248,63,16,22,44,16,0,0,3, - 128,6,192,12,32,8,16,0,0,0,128,1,128,3,128,3, - 192,2,192,6,192,6,96,4,96,12,112,12,48,15,240,24, - 24,24,24,16,24,48,12,48,12,248,63,16,22,44,16,0, - 0,0,16,7,176,9,224,16,192,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,21,42, - 16,0,0,12,48,12,48,8,32,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,23,46, - 16,0,0,1,192,3,96,3,96,3,192,1,128,0,0,0, - 128,1,128,3,128,3,192,2,192,6,192,6,96,4,96,12, - 112,12,48,15,240,24,24,24,24,16,24,48,12,48,12,248, - 63,20,17,51,21,0,0,7,255,224,1,176,32,1,176,32, - 1,48,0,3,48,0,3,48,0,6,48,0,7,255,192,4, - 48,128,12,48,0,12,48,0,24,48,0,24,48,0,16,48, - 0,48,48,16,48,48,48,248,255,240,12,23,46,14,1,250, - 7,224,24,112,48,0,32,0,96,0,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,224,0,96,32,112,32,61,192, - 31,128,4,0,4,0,7,0,3,0,2,0,28,0,12,23, - 46,13,1,0,48,0,120,0,28,0,6,0,1,0,0,0, - 255,224,48,32,48,32,48,0,48,0,48,0,48,0,63,192, - 48,128,48,0,48,0,48,0,48,0,48,0,48,16,48,48, - 255,224,12,23,46,13,1,0,0,192,3,192,7,0,12,0, - 16,0,0,0,255,224,48,32,48,32,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,16,48,48,255,224,12,22,44,13,1,0,14,0,27,0, - 48,128,64,64,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,12,21,42,13,1,0,32,128, - 97,128,32,128,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,8,23,23,8,255,0,96,240, - 56,12,2,0,63,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,63,7,23,23,8,1,0,6,14,56,112,64, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,8,22,22,8,0,0,56,108,194,129,0,126,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,126,8,21, - 21,8,0,0,195,195,130,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,126,14,17,34,16,1,0,127, - 128,176,224,48,48,48,24,48,24,48,12,48,12,48,12,255, - 12,48,12,48,12,48,12,48,24,48,24,48,48,48,96,255, - 128,16,22,44,18,1,0,0,16,7,176,9,224,16,192,0, - 0,240,63,48,12,56,12,60,12,52,12,54,12,51,12,51, - 12,49,140,48,204,48,204,48,108,48,60,48,60,48,28,48, - 28,252,12,14,23,46,16,1,0,24,0,28,0,7,0,3, - 128,0,128,0,0,7,192,24,96,48,48,96,24,96,24,64, - 12,192,12,192,12,192,12,192,12,192,12,192,8,96,24,96, - 16,48,48,24,96,15,128,14,23,46,16,1,0,0,96,0, - 240,1,192,3,0,4,0,0,0,7,192,24,96,48,48,96, - 24,96,24,64,12,192,12,192,12,192,12,192,12,192,12,192, - 8,96,24,96,16,48,48,24,96,15,128,14,22,44,16,1, - 0,3,128,4,192,8,96,16,32,0,0,7,192,24,96,48, - 48,96,24,96,24,64,12,192,12,192,12,192,12,192,12,192, - 12,192,8,96,24,96,16,48,48,24,96,15,128,14,22,44, - 16,1,0,0,32,15,48,19,224,32,128,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,14, - 21,42,16,1,0,24,96,24,96,16,64,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,9, - 9,18,11,1,3,193,128,99,0,54,0,28,0,28,0,28, - 0,54,0,99,0,193,128,14,18,36,16,1,255,7,204,24, - 120,48,48,32,120,96,120,64,220,193,204,193,140,195,12,199, - 12,198,12,204,8,104,24,120,16,48,48,120,96,207,128,128, - 0,16,23,46,18,1,0,12,0,30,0,7,0,1,192,0, - 64,0,0,252,63,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,24,24, - 24,12,48,7,224,16,23,46,18,1,0,0,48,0,112,1, - 192,3,128,2,0,0,0,252,63,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,24,24,24,12,48,7,224,16,22,44,18,1,0,1, - 128,2,64,4,32,8,16,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,16,21,42,18,1, - 0,12,48,12,48,8,32,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,15,23,46,16,0, - 0,0,48,0,112,0,192,3,128,2,0,0,0,240,62,56, - 12,24,24,28,24,14,48,6,32,7,96,3,192,3,192,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,7,224,12, - 17,34,14,1,0,252,0,48,0,48,0,63,128,48,224,48, - 96,48,48,48,48,48,48,48,48,48,48,48,96,56,192,55, - 128,48,0,48,0,252,0,14,20,40,15,1,0,3,192,12, - 224,24,112,16,48,48,48,48,48,48,96,49,192,51,0,54, - 0,54,0,55,128,51,224,48,248,48,60,48,28,50,12,50, - 12,51,24,243,240,11,20,40,12,1,0,48,0,120,0,24, - 0,12,0,4,0,2,0,0,0,0,0,31,0,97,128,225, - 128,1,128,1,128,31,128,121,128,225,128,193,128,193,128,199, - 128,121,224,11,20,40,12,1,0,1,128,3,128,3,0,6, - 0,4,0,8,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,12,0,30,0,19,0,33,128,64, - 192,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,11,18,36, - 12,1,0,24,64,60,128,71,0,0,0,0,0,0,0,31, - 0,97,128,225,128,1,128,1,128,31,128,121,128,225,128,193, - 128,193,128,199,128,121,224,11,18,36,12,1,0,97,128,97, - 128,97,128,0,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,14,0,11,0,27,0,27,0,14, - 0,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,17,12,36, - 19,1,0,31,62,0,97,195,0,97,193,128,193,129,128,15, - 255,128,57,128,0,97,128,0,193,128,0,193,128,0,193,193, - 0,198,227,0,120,124,0,10,18,36,12,1,250,15,192,48, - 192,96,128,64,0,192,0,192,0,192,0,192,0,224,0,96, - 64,120,192,63,0,12,0,4,0,7,0,3,0,2,0,28, - 0,10,20,40,12,1,0,48,0,56,0,24,0,12,0,6, - 0,2,0,0,0,0,0,15,0,49,128,96,192,64,192,255, - 192,192,0,192,0,192,0,224,0,96,64,48,128,31,0,10, - 20,40,12,1,0,1,192,1,128,3,0,2,0,4,0,12, - 0,0,0,0,0,15,0,49,128,96,192,64,192,255,192,192, - 0,192,0,192,0,224,0,96,64,48,128,31,0,10,19,38, - 12,1,0,6,0,15,0,25,0,48,128,32,64,0,0,0, - 0,15,0,49,128,96,192,64,192,255,192,192,0,192,0,192, - 0,224,0,96,64,48,128,31,0,10,18,36,12,1,0,32, - 128,48,192,32,128,0,0,0,0,0,0,15,0,49,128,96, - 192,64,192,255,192,192,0,192,0,192,0,224,0,96,64,48, - 128,31,0,7,20,20,7,0,0,192,224,112,48,24,8,0, - 0,24,120,24,24,24,24,24,24,24,24,24,126,7,20,20, - 7,1,0,14,12,24,16,48,96,0,0,48,240,48,48,48, - 48,48,48,48,48,48,252,8,19,19,7,0,0,24,60,100, - 194,129,0,0,24,120,24,24,24,24,24,24,24,24,24,126, - 8,18,18,7,0,0,130,195,130,0,0,0,24,120,24,24, - 24,24,24,24,24,24,24,126,11,19,38,13,1,0,24,0, - 60,224,7,128,31,0,49,128,0,192,0,192,15,192,49,224, - 96,224,64,96,192,96,192,96,192,96,192,64,224,192,96,192, - 49,128,30,0,14,18,36,15,1,0,12,32,31,64,35,128, - 0,0,0,0,0,0,113,224,178,48,52,48,56,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,12,20, - 40,14,1,0,56,0,24,0,12,0,4,0,6,0,3,0, - 0,0,0,0,15,128,48,192,96,96,64,112,192,48,192,48, - 192,48,192,48,224,32,96,96,48,192,31,0,12,20,40,14, - 1,0,0,192,1,128,3,128,3,0,6,0,4,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,12,19,38,14,1,0, - 6,0,15,0,25,128,16,128,32,64,0,0,0,0,15,128, - 48,192,96,96,64,112,192,48,192,48,192,48,192,48,224,32, - 96,96,48,192,31,0,12,18,36,14,1,0,28,96,62,64, - 35,128,0,0,0,0,0,0,15,128,48,192,96,96,64,112, - 192,48,192,48,192,48,192,48,224,32,96,96,48,192,31,0, - 12,18,36,14,1,0,48,192,48,192,48,192,0,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,9,9,18,11,1,3, - 12,0,12,0,0,0,0,0,255,128,0,0,0,0,12,0, - 12,0,12,14,28,14,1,255,0,16,15,176,49,224,96,224, - 65,240,195,48,198,48,198,48,204,48,248,32,112,96,120,192, - 223,0,128,0,14,20,40,14,0,0,28,0,12,0,6,0, - 3,0,1,0,1,128,0,0,0,0,48,48,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,112,56,188, - 31,48,14,20,40,14,0,0,0,96,0,224,0,192,1,128, - 3,0,2,0,0,0,0,0,48,48,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,112,56,188,31,48, - 14,19,38,14,0,0,3,0,7,128,4,192,8,96,16,32, - 0,0,0,0,48,48,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,112,56,188,31,48,14,18,36,14, - 0,0,24,96,24,96,24,96,0,0,0,0,0,0,48,48, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,112,56,188,31,48,14,26,52,13,255,250,0,112,0,96, - 0,224,0,192,1,128,1,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0, - 12,26,52,14,1,250,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,224,56,96,48,48,48,48, - 48,48,48,48,48,48,48,32,48,96,56,64,55,128,48,0, - 48,0,48,0,48,0,48,0,252,0,14,24,48,13,255,250, - 12,48,12,48,8,32,0,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=11 h=25 x= 2 y= 9 dx=13 dy= 0 ascent=21 len=50 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17n[559] U8G_FONT_SECTION("u8g_font_gdr17n") = { - 0,40,38,242,247,16,0,0,0,0,42,58,0,21,252,16, - 0,10,12,24,12,1,9,12,0,12,0,140,0,204,192,119, - 128,30,0,30,0,119,128,204,192,12,128,12,0,12,0,10, - 9,18,11,1,3,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,4,7,7,6,1,252,112,240,48, - 48,32,96,64,7,1,1,9,1,6,254,3,4,4,6,2, - 255,96,224,224,192,11,25,50,13,1,252,0,96,0,96,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,6,0,6, - 0,6,0,12,0,12,0,12,0,24,0,24,0,48,0,48, - 0,48,0,96,0,96,0,224,0,192,0,192,0,11,16,32, - 13,1,0,15,0,49,128,96,192,64,192,64,224,192,96,192, - 96,192,96,192,96,192,96,192,96,192,64,96,64,96,192,49, - 128,30,0,9,16,32,13,2,0,12,0,60,0,252,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,255,128,10,16,32,13,1,0,15, - 0,49,128,96,192,96,192,0,192,0,192,1,128,1,128,3, - 0,6,0,12,0,28,0,24,0,48,64,96,64,255,192,10, - 16,32,13,1,0,30,0,99,0,97,128,193,128,1,128,3, - 0,6,0,31,0,3,128,1,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,1,128,3,128,7, - 128,5,128,13,128,25,128,17,128,49,128,97,128,65,128,255, - 224,1,128,1,128,1,128,1,128,15,224,10,16,32,13,1, - 0,63,192,32,0,32,0,32,0,96,0,96,0,127,0,67, - 128,1,192,0,192,0,192,0,192,0,192,1,128,193,128,62, - 0,11,16,32,13,1,0,3,128,14,0,24,0,48,0,96, - 0,96,0,207,0,241,192,192,224,192,96,192,96,192,96,96, - 96,96,64,48,128,31,0,11,16,32,13,1,0,127,224,64, - 192,128,192,0,128,1,128,1,128,3,0,3,0,6,0,6, - 0,4,0,12,0,12,0,24,0,24,0,48,0,11,16,32, - 13,1,0,31,0,113,128,224,192,224,192,224,192,241,128,63, - 0,15,128,51,192,96,224,192,96,192,96,192,96,192,64,96, - 128,31,0,11,17,34,13,1,255,31,0,49,128,96,192,192, - 192,192,96,192,96,192,96,224,96,113,224,30,96,0,224,0, - 192,0,192,1,128,3,0,14,0,48,0,3,14,14,6,2, - 255,64,224,224,224,0,0,0,0,0,0,96,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 2 y=14 dx=23 dy= 0 ascent=22 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17r[3380] U8G_FONT_SECTION("u8g_font_gdr17r") = { - 0,40,38,242,247,17,4,64,9,46,32,127,250,22,250,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=19 dx=27 dy= 0 ascent=27 len=81 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =27 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20[9119] U8G_FONT_SECTION("u8g_font_gdr20") = { - 0,47,44,240,246,20,4,220,11,144,32,255,248,27,247,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,0,4,24, - 24,9,2,247,112,240,240,224,0,0,32,96,96,96,96,96, - 96,96,96,96,112,112,112,112,112,112,112,64,12,20,40,15, - 2,255,6,0,6,0,6,0,15,224,54,224,102,96,102,0, - 198,0,198,0,198,0,198,0,198,0,198,0,230,32,118,48, - 63,192,31,128,6,0,6,0,6,0,13,19,38,15,1,0, - 7,224,8,112,16,48,16,32,48,32,48,0,48,0,48,0, - 48,0,255,0,48,0,48,0,48,0,48,0,48,8,32,24, - 96,48,127,240,131,240,11,10,20,15,2,4,192,96,127,192, - 49,192,96,192,96,192,96,192,113,192,63,128,64,64,128,32, - 16,19,38,15,255,0,240,63,56,28,28,24,28,56,14,48, - 6,112,7,96,3,192,3,192,1,128,1,128,63,252,1,128, - 1,128,1,128,1,128,1,128,1,128,15,240,2,32,32,7, - 3,250,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 128,0,0,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,22,44,15,2,0,31,128,49,192,96,128,96,0, - 112,0,120,0,62,0,111,128,199,192,193,224,192,224,224,96, - 240,96,124,96,63,192,15,128,3,192,1,192,64,192,64,192, - 96,128,63,0,9,4,8,13,2,17,97,128,227,128,227,128, - 195,0,21,20,60,24,1,0,1,252,0,6,3,0,24,0, - 192,48,0,96,48,124,96,97,134,48,99,0,48,194,0,24, - 198,0,24,198,0,24,198,0,24,198,0,24,199,0,24,99, - 0,48,97,198,48,48,248,96,48,0,96,24,0,192,6,3, - 0,1,252,0,7,10,10,8,1,9,56,204,140,28,108,204, - 220,238,0,254,12,14,28,16,1,0,6,16,4,48,8,96, - 24,96,48,192,113,192,227,128,227,128,113,192,48,192,24,96, - 8,96,4,48,6,16,13,6,12,15,1,3,255,248,0,24, - 0,24,0,24,0,24,0,24,9,1,2,11,1,8,255,128, - 10,11,22,11,1,11,30,0,97,0,126,128,147,64,151,64, - 156,64,148,64,146,64,105,128,33,0,30,0,10,1,2,16, - 3,19,255,192,7,7,7,11,2,12,60,110,198,198,198,236, - 120,12,14,28,13,1,2,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,4,0,0,0,0, - 0,255,224,8,11,11,10,1,10,62,99,195,3,6,6,12, - 24,50,97,255,9,12,24,11,0,9,31,0,51,128,97,128, - 1,128,3,0,15,0,1,128,1,128,1,128,1,128,195,0, - 62,0,7,7,7,10,3,16,12,30,24,48,48,96,192,15, - 23,46,17,1,248,48,8,240,56,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,56,56,56,120,63,248,55, - 222,51,152,48,0,48,0,48,0,48,0,56,0,56,0,56, - 0,48,0,15,24,48,18,1,252,15,254,48,252,96,216,64, - 216,192,216,192,216,192,216,192,216,224,216,112,216,56,216,15, - 216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0, - 216,0,216,0,216,0,216,3,254,3,4,4,5,1,9,96, - 224,224,192,5,7,7,7,1,249,48,32,48,120,24,48,224, - 8,11,11,11,2,10,24,248,24,24,24,24,24,24,24,24, - 255,7,10,10,9,1,9,56,108,198,198,198,198,108,56,0, - 254,12,14,28,16,2,0,130,0,65,0,97,128,48,192,56, - 224,28,96,12,112,28,112,30,96,56,224,48,192,97,128,65, - 0,130,0,16,19,38,19,2,0,48,6,240,14,48,12,48, - 24,48,56,48,48,48,96,48,224,48,192,205,130,1,142,3, - 30,6,22,6,38,12,70,24,127,24,134,48,6,96,31,15, - 19,38,18,2,0,48,6,240,12,48,8,48,24,48,48,48, - 48,48,96,48,192,48,192,205,128,1,28,3,102,6,70,4, - 6,12,12,24,24,24,48,48,98,96,254,17,19,57,19,1, - 0,60,3,0,70,6,0,6,4,0,28,12,0,6,24,0, - 6,16,0,6,48,0,142,96,0,120,96,0,0,193,0,1, - 135,0,1,143,0,3,11,0,2,19,0,6,35,0,12,63, - 128,12,67,0,24,3,0,48,15,128,10,24,48,13,2,247, - 14,0,30,0,30,0,28,0,0,0,0,0,0,0,12,0, - 12,0,12,0,12,0,28,0,24,0,48,0,48,0,96,0, - 96,0,192,0,192,64,192,192,192,192,224,128,97,128,62,0, - 19,27,81,19,0,0,6,0,0,15,0,0,7,128,0,1, - 192,0,0,96,0,0,16,0,0,0,0,0,64,0,0,224, - 0,0,224,0,1,224,0,1,240,0,1,176,0,3,48,0, - 3,56,0,3,24,0,6,28,0,6,28,0,6,12,0,15, - 254,0,12,6,0,8,6,0,24,7,0,24,3,0,16,3, - 0,48,3,128,254,15,224,19,27,81,19,0,0,0,8,0, - 0,30,0,0,60,0,0,112,0,1,192,0,1,0,0,0, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,19,27, - 81,19,0,0,0,224,0,1,224,0,1,240,0,3,56,0, - 6,12,0,12,4,0,0,0,0,0,64,0,0,224,0,0, - 224,0,1,224,0,1,240,0,1,176,0,3,48,0,3,56, - 0,3,24,0,6,28,0,6,28,0,6,12,0,15,254,0, - 12,6,0,8,6,0,24,7,0,24,3,0,16,3,0,48, - 3,128,254,15,224,19,26,78,19,0,0,3,132,0,7,230, - 0,4,252,0,8,56,0,0,0,0,0,0,0,0,64,0, - 0,224,0,0,224,0,1,224,0,1,240,0,1,176,0,3, - 48,0,3,56,0,3,24,0,6,28,0,6,28,0,6,12, - 0,15,254,0,12,6,0,8,6,0,24,7,0,24,3,0, - 16,3,0,48,3,128,254,15,224,19,25,75,19,0,0,6, - 12,0,6,12,0,14,28,0,6,12,0,0,0,0,0,64, - 0,0,224,0,0,224,0,1,224,0,1,240,0,1,176,0, - 3,48,0,3,56,0,3,24,0,6,28,0,6,28,0,6, - 12,0,15,254,0,12,6,0,8,6,0,24,7,0,24,3, - 0,16,3,0,48,3,128,254,15,224,19,27,81,19,0,0, - 0,224,0,1,176,0,1,48,0,3,48,0,1,176,0,1, - 224,0,0,0,0,0,64,0,0,224,0,0,224,0,1,224, - 0,1,240,0,1,176,0,3,48,0,3,56,0,3,24,0, - 6,28,0,6,28,0,6,12,0,15,254,0,12,6,0,8, - 6,0,24,7,0,24,3,0,16,3,0,48,3,128,254,15, - 224,23,20,60,25,0,0,3,255,252,0,124,4,0,108,4, - 0,236,4,0,204,0,1,204,0,1,140,0,1,140,0,3, - 140,0,3,255,248,7,12,16,6,12,0,6,12,0,12,12, - 0,12,12,0,28,12,0,24,12,2,24,12,2,48,12,6, - 252,63,254,15,27,54,17,1,249,3,248,12,28,16,8,48, - 0,96,0,96,0,64,0,192,0,192,0,192,0,192,0,192, - 0,192,0,224,0,96,0,112,0,120,2,60,12,31,248,15, - 240,0,128,0,128,1,224,0,224,0,96,0,192,3,0,13, - 27,54,16,1,0,16,0,56,0,28,0,15,0,3,128,0, - 192,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,13,27,54,16,1, - 0,0,32,0,240,1,224,3,128,7,0,12,0,0,0,255, - 240,48,16,48,16,48,16,48,0,48,0,48,0,48,0,48, - 0,63,224,48,64,48,0,48,0,48,0,48,0,48,0,48, - 8,48,8,48,24,255,248,13,27,54,16,1,0,3,0,7, - 128,15,192,28,192,56,96,32,48,0,0,255,240,48,16,48, - 16,48,16,48,0,48,0,48,0,48,0,48,0,63,224,48, - 64,48,0,48,0,48,0,48,0,48,0,48,8,48,8,48, - 24,255,248,13,25,50,16,1,0,24,48,56,112,56,112,48, - 96,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,9,27,54,10,255, - 0,96,0,240,0,120,0,28,0,7,0,1,0,0,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,31,128,8,27,27,10,2,0,6,15,30, - 56,96,128,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,10,27,54,10,0,0,28,0, - 30,0,62,0,115,0,193,128,128,192,0,0,63,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,63,0,10,25,50,10,0,0,193,128,225,192,225,192, - 193,128,0,0,63,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,63,0,18,20,60,19, - 0,0,31,240,0,120,28,0,24,6,0,24,3,0,24,1, - 128,24,1,128,24,1,192,24,0,192,24,0,192,255,128,192, - 24,0,192,24,0,192,24,0,192,24,1,128,24,1,128,24, - 1,128,24,3,0,24,6,0,24,28,0,127,240,0,19,26, - 78,21,1,0,3,132,0,7,230,0,4,124,0,8,56,0, - 0,0,0,0,0,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,27,81,19,1,0,12,0,0,30,0,0,15,0, - 0,3,128,0,0,224,0,0,32,0,0,0,0,3,240,0, - 12,24,0,16,12,0,48,6,0,32,3,0,96,3,0,64, - 3,128,192,1,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,224,1,0,96,3,0,96,2,0,48,6,0, - 56,4,0,12,24,0,7,224,0,17,27,81,19,1,0,0, - 24,0,0,60,0,0,120,0,0,224,0,1,128,0,2,0, - 0,0,0,0,3,240,0,12,24,0,16,12,0,48,6,0, - 32,3,0,96,3,0,64,3,128,192,1,128,192,1,128,192, - 1,128,192,1,128,192,1,128,192,1,128,224,1,0,96,3, - 0,96,2,0,48,6,0,56,4,0,12,24,0,7,224,0, - 17,27,81,19,1,0,1,192,0,1,224,0,3,224,0,7, - 48,0,12,24,0,8,12,0,0,0,0,3,240,0,12,24, - 0,16,12,0,48,6,0,32,3,0,96,3,0,64,3,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,192, - 1,128,224,1,0,96,3,0,96,2,0,48,6,0,56,4, - 0,12,24,0,7,224,0,17,26,78,19,1,0,3,4,0, - 7,204,0,8,248,0,16,112,0,0,0,0,0,0,0,3, - 240,0,12,24,0,16,12,0,48,6,0,32,3,0,96,3, - 0,64,3,128,192,1,128,192,1,128,192,1,128,192,1,128, - 192,1,128,192,1,128,224,1,0,96,3,0,96,2,0,48, - 6,0,56,4,0,12,24,0,7,224,0,17,25,75,19,1, - 0,12,24,0,14,28,0,14,28,0,12,24,0,0,0,0, - 3,240,0,12,24,0,16,12,0,48,6,0,32,3,0,96, - 3,0,64,3,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,0,96,3,0,96,2,0, - 48,6,0,56,4,0,12,24,0,7,224,0,11,10,20,13, - 1,4,192,96,96,192,49,128,27,0,14,0,14,0,27,0, - 49,128,96,192,192,96,17,21,63,19,1,255,3,241,128,4, - 31,0,24,14,0,48,30,0,32,31,0,96,63,0,64,59, - 128,192,115,128,192,225,128,192,225,128,193,193,128,195,129,128, - 195,1,128,231,1,0,110,3,0,124,2,0,124,6,0,56, - 4,0,124,24,0,199,224,0,128,0,0,19,27,81,21,1, - 0,6,0,0,15,0,0,7,128,0,1,192,0,0,96,0, - 0,16,0,0,0,0,252,7,224,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,0,24,3,0,28,6,0,14,12,0,3, - 240,0,19,27,81,21,1,0,0,12,0,0,30,0,0,60, - 0,0,112,0,0,192,0,1,0,0,0,0,0,252,7,224, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,0,24,3,0, - 28,6,0,14,12,0,3,240,0,19,27,81,21,1,0,0, - 224,0,0,240,0,1,240,0,3,152,0,6,12,0,4,6, - 0,0,0,0,252,7,224,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,0,24,3,0,28,6,0,14,12,0,3,240,0, - 19,25,75,21,1,0,6,12,0,7,14,0,7,14,0,6, - 12,0,0,0,0,252,7,224,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,0,24,3,0,28,6,0,14,12,0,3,240, - 0,18,27,81,19,0,0,0,12,0,0,30,0,0,60,0, - 0,112,0,0,192,0,1,0,0,0,0,0,240,31,192,56, - 7,0,28,6,0,12,12,0,14,12,0,7,24,0,7,24, - 0,3,48,0,3,176,0,1,224,0,1,224,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,7,248,0,15,20,40,17,1,0,254,0, - 48,0,48,0,48,0,63,224,48,120,48,28,48,14,48,6, - 48,6,48,6,48,6,48,12,48,12,52,56,51,224,48,0, - 48,0,48,0,254,0,16,24,48,18,1,0,1,224,6,56, - 8,24,16,28,16,12,48,12,48,12,48,28,48,56,48,240, - 49,192,49,128,49,128,49,192,48,240,48,124,48,62,48,15, - 48,7,48,3,49,3,49,3,49,134,241,248,13,23,46,15, - 1,0,56,0,56,0,28,0,14,0,6,0,3,0,1,0, - 0,0,15,192,48,224,112,96,96,96,0,96,0,96,15,224, - 63,224,126,96,240,96,224,96,192,96,192,96,65,224,62,120, - 13,23,46,15,1,0,0,224,0,224,1,192,1,128,3,0, - 2,0,4,0,0,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,13,23,46,15,1,0,7,0,7,0,15,128, - 29,192,24,192,48,96,32,32,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,28,16, - 63,32,35,192,64,0,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,48,96, - 56,112,48,96,48,96,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,22,44,15,1,0,7,128, - 13,128,12,192,12,128,13,128,15,0,0,0,15,192,48,224, - 112,96,96,96,0,96,0,96,15,224,63,224,126,96,240,96, - 224,96,192,96,192,96,65,224,62,120,19,15,45,22,2,0, - 31,143,0,113,176,192,96,224,192,224,224,96,128,192,96,0, - 192,96,7,255,192,28,192,0,112,192,0,96,192,0,192,192, - 0,192,224,0,193,96,64,194,112,224,124,31,0,12,22,44, - 14,1,249,7,224,24,96,32,32,96,0,64,0,192,0,192, - 0,192,0,192,0,192,0,224,0,112,16,120,96,63,192,31, - 128,2,0,2,0,7,128,3,128,1,128,3,0,12,0,13, - 23,46,15,1,0,24,0,60,0,12,0,6,0,3,0,1, - 0,1,128,0,0,7,192,24,96,32,48,96,24,64,24,192, - 24,255,240,192,0,192,0,192,0,224,0,96,0,112,8,56, - 48,15,192,13,23,46,15,1,0,0,96,0,240,0,192,1, - 128,1,128,3,0,6,0,0,0,7,192,24,96,32,48,96, - 24,64,24,192,24,255,240,192,0,192,0,192,0,224,0,96, - 0,112,8,56,48,15,192,13,23,46,15,1,0,3,0,7, - 128,15,128,12,192,24,96,16,32,32,16,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,13,21,42,15,1, - 0,24,48,56,112,56,112,48,96,0,0,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,7,23,23,9,0, - 0,224,224,112,48,24,12,4,0,24,120,24,24,24,24,24, - 24,24,24,24,24,24,24,126,8,23,23,9,1,0,7,7, - 14,12,24,48,32,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,252,9,23,46,9,0,0,28,0,28,0,62, - 0,119,0,99,0,193,128,128,128,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,10,21,42,9,0,0,193, - 128,193,128,227,192,193,128,0,0,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,14,23,46,16,1,0,12, - 0,62,24,3,240,3,192,30,224,48,96,0,112,0,56,7, - 152,24,120,32,60,96,28,64,12,192,12,192,12,192,12,192, - 12,192,8,224,24,96,16,112,48,56,96,15,128,16,21,42, - 18,1,0,7,8,15,144,24,224,16,0,0,0,0,0,112, - 112,177,136,54,12,56,12,56,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,252,63,14,23,46, - 16,1,0,28,0,28,0,14,0,6,0,3,0,1,128,0, - 128,0,0,7,192,24,112,32,56,96,24,64,28,192,12,192, - 12,192,12,192,12,192,12,224,8,96,24,112,16,56,32,15, - 192,14,23,46,16,1,0,0,112,0,112,0,224,1,192,1, - 128,3,0,2,0,0,0,7,192,24,112,32,56,96,24,64, - 28,192,12,192,12,192,12,192,12,192,12,224,8,96,24,112, - 16,56,32,15,192,14,23,46,16,1,0,3,128,3,128,7, - 192,14,192,12,96,24,48,48,16,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,14, - 8,31,144,17,224,32,0,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,24, - 48,24,48,56,112,24,48,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,11,10,20,13,1,4,6, - 0,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,6,0,14,16,32,16,1,255,7,204,24,120,32,120,96, - 120,64,252,193,220,193,140,195,140,199,12,198,12,236,8,124, - 24,120,16,120,32,207,192,128,0,15,23,46,17,1,0,28, - 0,28,0,14,0,7,0,3,0,1,128,0,128,0,0,48, - 24,240,120,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,56,24,222,15,24,15,23,46, - 17,1,0,0,112,0,112,0,224,0,192,1,128,1,0,2, - 0,0,0,48,24,240,120,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,56,24,222,15, - 24,15,23,46,17,1,0,3,128,3,128,7,192,14,224,12, - 96,24,48,16,16,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,15,21,42,17,1,0,24,48,28,56,24, - 48,24,48,0,0,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,16,31,62,16,255,248,0,28,0,28,0, - 56,0,112,0,96,0,192,0,128,0,0,126,31,28,6,28, - 4,12,12,14,12,14,8,6,24,7,24,3,16,3,48,3, - 176,1,160,1,224,1,224,0,192,0,192,0,128,1,128,1, - 128,3,0,126,0,124,0,248,0,15,32,64,17,1,248,16, - 0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,240,51,24,52,28,56,12,48,14,48,6,48,6,48, - 6,48,6,48,6,48,4,48,12,56,8,60,16,55,224,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,254,0,16, - 29,58,16,255,248,6,12,14,28,14,28,6,12,0,0,0, - 0,126,31,28,6,28,4,12,12,14,12,14,8,6,24,7, - 24,3,16,3,48,3,176,1,160,1,224,1,224,0,192,0, - 192,0,128,1,128,1,128,3,0,126,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=13 h=30 x= 2 y=11 dx=15 dy= 0 ascent=25 len=60 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20n[640] U8G_FONT_SECTION("u8g_font_gdr20n") = { - 0,47,44,240,246,19,0,0,0,0,42,58,0,25,251,19, - 0,12,13,26,14,1,11,6,0,6,0,134,0,102,48,242, - 240,27,128,6,0,27,128,114,240,230,48,6,32,6,0,6, - 0,12,11,22,13,1,3,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,6,0,4,8,8, - 7,2,251,112,240,48,48,48,32,64,192,9,1,2,11,1, - 8,255,128,4,4,4,7,2,0,112,240,240,224,13,30,60, - 15,1,251,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,1,192,1,128,1,128,3,128,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,24,0,56, - 0,48,0,48,0,112,0,96,0,96,0,224,0,192,0,13, - 19,38,15,1,0,7,128,24,192,32,96,96,48,64,48,64, - 56,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 16,96,16,96,48,48,32,24,64,15,128,11,19,38,15,2, - 0,2,0,30,0,126,0,134,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,15,0,127,224,11,19,38,15,2,0,15,128,48, - 192,96,96,96,96,96,96,0,96,0,96,0,192,0,192,1, - 128,3,0,7,0,6,0,12,0,24,0,48,32,112,32,224, - 32,255,224,11,19,38,15,2,0,31,0,113,128,96,192,224, - 192,0,192,0,192,1,128,3,0,15,0,3,192,0,192,0, - 224,0,96,0,96,0,96,0,96,128,192,193,128,127,0,12, - 19,38,15,1,0,0,64,1,192,3,192,3,192,6,192,12, - 192,12,192,24,192,48,192,48,192,96,192,224,192,255,240,0, - 192,0,192,0,192,0,192,0,192,7,240,11,19,38,15,2, - 0,63,224,32,0,32,0,96,0,96,0,96,0,96,0,127, - 0,97,192,0,192,0,96,0,96,0,96,0,96,0,96,0, - 64,128,192,193,128,63,0,12,20,40,15,2,0,0,192,7, - 0,14,0,24,0,48,0,112,0,96,0,96,0,207,128,240, - 224,224,96,192,112,192,48,192,48,192,48,96,48,96,32,32, - 96,48,64,15,128,12,19,38,15,2,0,255,240,128,96,128, - 96,0,224,0,192,0,192,1,128,1,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,56,0,48, - 0,12,19,38,15,2,0,31,128,48,192,96,96,224,96,224, - 96,224,96,248,192,127,128,31,128,31,192,49,224,96,112,192, - 112,192,48,192,48,192,32,96,32,112,64,31,128,12,20,40, - 15,2,255,15,128,49,192,32,224,64,96,192,112,192,48,192, - 48,192,48,192,48,96,112,48,176,31,48,0,96,0,96,0, - 96,0,192,1,128,7,0,30,0,48,0,4,15,15,7,2, - 0,112,240,240,96,0,0,0,0,0,0,0,112,240,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=27 dy= 0 ascent=26 len=80 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20r[4232] U8G_FONT_SECTION("u8g_font_gdr20r") = { - 0,47,44,240,246,20,4,220,11,144,32,127,248,26,248,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 4 y=23 dx=34 dy= 0 ascent=34 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25[13042] U8G_FONT_SECTION("u8g_font_gdr25") = { - 0,59,57,236,242,25,6,209,16,163,32,255,247,34,245,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,0,5,29,29,11,3,245,112,248,248,248,112, - 0,0,96,96,96,96,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,240,240,240,192,15,25,50,19,2,255,1,128, - 1,128,1,128,1,240,7,252,31,254,57,140,113,132,113,128, - 97,128,225,128,225,128,225,128,225,128,225,128,241,128,113,128, - 121,134,61,140,63,248,31,240,3,192,1,128,1,128,1,128, - 17,25,75,19,1,255,0,252,0,3,255,0,7,15,0,14, - 7,0,12,6,0,12,2,0,28,2,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,127,224,0,255,224,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,24, - 0,128,24,1,0,24,3,0,63,223,0,127,255,0,192,255, - 0,13,13,26,19,3,5,192,24,239,184,127,240,56,224,96, - 112,96,48,96,48,96,48,120,240,63,224,111,176,192,24,128, - 8,21,24,72,19,255,0,120,7,248,252,1,248,62,1,224, - 31,3,128,15,3,128,7,135,0,7,135,0,3,206,0,1, - 206,0,1,252,0,0,248,0,0,248,0,0,112,0,0,112, - 0,15,255,192,31,255,128,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,248,0,3,254,0,3, - 41,41,9,3,248,96,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,128,0,0,0,64,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,192,15,28, - 56,19,2,0,7,224,15,248,28,120,56,24,56,8,56,0, - 60,0,31,0,31,128,63,224,99,248,224,252,224,124,224,30, - 240,30,120,14,62,14,31,14,15,220,3,248,0,248,0,60, - 32,28,32,28,48,28,60,56,63,240,7,192,12,5,10,16, - 2,22,96,48,224,112,224,112,224,112,192,96,25,25,100,29, - 2,0,0,127,0,0,3,255,224,0,7,128,240,0,14,0, - 56,0,28,31,28,0,56,127,206,0,112,225,199,0,97,192, - 131,0,99,128,3,0,195,0,1,128,199,0,1,128,199,0, - 1,128,199,0,1,128,199,0,1,128,199,0,1,128,199,128, - 1,128,99,128,3,0,99,192,67,0,113,241,135,0,56,255, - 14,0,28,60,28,0,14,0,56,0,7,128,240,0,3,255, - 224,0,0,127,0,0,8,14,14,10,1,11,28,60,70,198, - 6,30,102,198,198,206,119,0,255,255,15,18,36,19,2,0, - 2,6,6,4,12,12,12,24,24,56,56,112,112,224,241,224, - 225,192,225,192,241,224,112,240,56,112,24,56,12,24,12,12, - 6,4,2,6,17,8,24,19,1,4,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,0,11,2,4,13,1,9,127,224,255,224,13,14,28,14, - 1,14,15,128,63,224,112,96,127,48,200,152,136,136,143,8, - 138,8,137,8,201,152,92,240,112,112,63,224,15,128,13,2, - 4,20,3,23,127,248,255,248,8,9,9,14,3,15,28,62, - 103,231,231,231,230,124,56,15,18,36,16,1,3,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,0,0,0,0,0,127,252,255, - 252,11,15,30,14,1,12,15,128,31,192,49,224,96,224,64, - 224,0,192,1,192,1,128,3,0,6,0,12,0,24,32,48, - 32,127,224,255,224,11,16,32,13,1,11,31,0,63,128,99, - 192,225,192,1,192,1,128,7,0,31,128,1,192,0,224,0, - 224,0,224,0,224,193,192,127,128,30,0,8,9,9,13,4, - 20,7,15,30,28,56,48,112,96,192,20,27,81,21,1,247, - 12,1,128,252,7,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,30,7,128,31,31,128,31,251,144, - 27,243,224,25,225,128,24,0,0,24,0,0,24,0,0,28, - 0,0,28,0,0,28,0,0,30,0,0,30,0,0,24,0, - 0,20,30,90,22,1,251,3,255,240,28,63,192,48,59,128, - 112,59,128,96,59,128,224,59,128,224,59,128,224,59,128,224, - 59,128,240,59,128,112,59,128,120,59,128,62,59,128,31,251, - 128,7,251,128,0,59,128,0,59,128,0,59,128,0,59,128, - 0,59,128,0,59,128,0,59,128,0,59,128,0,59,128,0, - 59,128,0,59,128,0,59,128,0,59,128,0,127,192,1,255, - 240,3,5,5,6,1,11,96,224,224,224,192,7,9,9,9, - 1,247,24,16,56,60,62,14,12,56,224,10,15,30,13,2, - 12,6,0,62,0,254,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,255,192,9, - 14,28,11,1,11,30,0,63,0,103,0,67,128,193,128,193, - 128,193,128,193,128,225,0,115,0,126,0,60,0,255,128,255, - 128,15,18,36,19,3,0,129,0,193,128,96,192,112,96,48, - 112,56,48,28,56,30,28,15,30,15,30,30,28,28,56,56, - 56,48,112,112,224,96,192,193,128,129,0,19,24,72,23,2, - 0,12,0,192,252,1,224,28,1,128,28,3,128,28,3,0, - 28,6,0,28,14,0,28,12,0,28,24,0,28,56,0,28, - 48,0,255,224,0,0,224,0,0,192,192,1,193,192,1,130, - 192,3,2,192,7,4,192,6,8,192,12,16,192,28,31,224, - 24,63,224,48,0,192,112,3,224,20,24,72,24,2,0,12, - 0,96,252,0,192,28,0,192,28,1,128,28,3,0,28,3, - 0,28,6,0,28,14,0,28,12,0,28,24,0,28,56,0, - 255,176,0,0,97,224,0,99,240,0,196,112,1,204,112,1, - 128,96,3,0,224,7,0,192,6,1,128,12,3,32,28,6, - 16,24,15,240,48,31,240,20,25,75,23,1,0,30,0,0, - 63,0,48,103,128,96,195,128,224,3,0,192,6,1,128,31, - 129,128,3,195,0,0,231,0,0,230,0,97,204,0,63,220, - 0,15,24,0,0,48,0,0,48,96,0,96,224,0,225,96, - 0,195,96,1,130,96,3,132,96,3,12,112,6,31,240,14, - 0,96,12,0,96,24,1,240,14,29,58,18,2,245,3,128, - 7,192,7,192,7,192,3,128,0,0,0,0,3,128,3,128, - 3,128,3,128,3,128,7,0,7,0,14,0,28,0,60,0, - 56,0,112,0,112,0,224,0,224,12,224,28,224,28,224,28, - 240,56,120,112,63,224,31,128,23,34,102,24,0,0,3,0, - 0,7,128,0,7,224,0,1,240,0,0,120,0,0,60,0, - 0,14,0,0,2,0,0,0,0,0,8,0,0,56,0,0, - 60,0,0,60,0,0,108,0,0,110,0,0,110,0,0,198, - 0,0,199,0,0,199,0,1,131,0,1,131,128,1,131,128, - 3,1,128,3,255,192,3,255,192,6,0,224,6,0,224,6, - 0,224,12,0,112,12,0,112,12,0,112,24,0,56,28,0, - 120,255,1,254,23,34,102,24,0,0,0,1,128,0,3,192, - 0,7,192,0,15,0,0,30,0,0,56,0,0,96,0,0, - 192,0,0,0,0,0,8,0,0,56,0,0,60,0,0,60, - 0,0,108,0,0,110,0,0,110,0,0,198,0,0,199,0, - 0,199,0,1,131,0,1,131,128,1,131,128,3,1,128,3, - 255,192,3,255,192,6,0,224,6,0,224,6,0,224,12,0, - 112,12,0,112,12,0,112,24,0,56,28,0,120,255,1,254, - 23,33,99,24,0,0,0,56,0,0,124,0,0,254,0,1, - 231,0,1,131,128,3,1,192,6,0,128,0,0,0,0,8, - 0,0,56,0,0,60,0,0,60,0,0,108,0,0,110,0, - 0,110,0,0,198,0,0,199,0,0,199,0,1,131,0,1, - 131,128,1,131,128,3,1,128,3,255,192,3,255,192,6,0, - 224,6,0,224,6,0,224,12,0,112,12,0,112,12,0,112, - 24,0,56,28,0,120,255,1,254,23,32,96,24,0,0,0, - 224,64,1,248,192,3,253,128,6,31,0,4,6,0,0,0, - 0,0,0,0,0,8,0,0,56,0,0,60,0,0,60,0, - 0,108,0,0,110,0,0,110,0,0,198,0,0,199,0,0, - 199,0,1,131,0,1,131,128,1,131,128,3,1,128,3,255, - 192,3,255,192,6,0,224,6,0,224,6,0,224,12,0,112, - 12,0,112,12,0,112,24,0,56,28,0,120,255,1,254,23, - 31,93,24,0,0,3,129,192,3,129,192,3,129,192,3,1, - 128,3,1,128,0,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,23,34,102,24,0,0,0,62,0,0,126,0,0,199, - 0,0,195,0,0,195,0,0,230,0,0,252,0,0,48,0, - 0,0,0,0,8,0,0,56,0,0,60,0,0,60,0,0, - 108,0,0,110,0,0,110,0,0,198,0,0,199,0,0,199, - 0,1,131,0,1,131,128,1,131,128,3,1,128,3,255,192, - 3,255,192,6,0,224,6,0,224,6,0,224,12,0,112,12, - 0,112,12,0,112,24,0,56,28,0,120,255,1,254,30,25, - 100,31,0,0,1,255,255,240,0,63,255,240,0,25,192,48, - 0,25,192,16,0,57,192,16,0,49,192,0,0,113,192,0, - 0,97,192,0,0,97,192,0,0,225,192,0,0,255,255,192, - 1,255,255,192,1,193,192,128,1,129,192,0,3,129,192,0, - 3,1,192,0,7,1,192,0,7,1,192,0,6,1,192,0, - 14,1,192,0,12,1,192,4,28,1,192,12,28,1,192,24, - 60,3,255,248,255,15,255,248,18,34,102,21,1,247,0,126, - 0,3,255,192,7,7,192,14,1,128,28,0,0,56,0,0, - 48,0,0,112,0,0,112,0,0,96,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,0,112,0,0,120,0,0,56,0,64,60,0,192, - 30,3,128,15,254,0,7,252,0,1,240,0,0,64,0,0, - 96,0,0,240,0,0,120,0,0,56,0,0,48,0,0,224, - 0,3,128,0,18,34,102,20,1,0,12,0,0,62,0,0, - 63,0,0,15,128,0,3,192,0,0,224,0,0,112,0,0, - 16,0,0,0,0,255,255,0,63,255,0,28,3,0,28,1, - 0,28,1,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,31,252,0,31,252,0,28,8,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,64,28,0,192,28,1,128,63,255,128,255,255,128, - 18,34,102,20,1,0,0,12,0,0,30,0,0,62,0,0, - 120,0,0,240,0,1,192,0,3,0,0,6,0,0,0,0, - 0,255,255,0,63,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,31, - 252,0,31,252,0,28,8,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,64, - 28,0,192,28,1,128,63,255,128,255,255,128,18,33,99,20, - 1,0,1,192,0,3,224,0,7,240,0,7,56,0,12,28, - 0,24,14,0,16,2,0,0,0,0,255,255,0,63,255,0, - 28,3,0,28,1,0,28,1,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,31,252,0,31,252,0,28,8, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,64,28,0,192,28,1,128,63, - 255,128,255,255,128,18,31,93,20,1,0,28,14,0,28,14, - 0,28,14,0,28,14,0,24,12,0,0,0,0,255,255,0, - 63,255,0,28,3,0,28,1,0,28,1,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,31,252,0,31,252, - 0,28,8,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,64,28,0,192,28, - 1,128,63,255,128,255,255,128,11,34,68,12,255,0,96,0, - 248,0,252,0,62,0,15,0,3,128,1,192,0,64,0,0, - 63,224,15,128,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 63,224,11,34,68,12,1,0,0,192,1,224,3,224,7,128, - 15,0,28,0,48,0,96,0,0,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,12,33,66,12, - 0,0,14,0,31,0,63,128,57,192,96,224,192,112,128,32, - 0,0,127,192,31,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,127,192,12,31,62,12,0,0,224,112,224,112,224,112, - 224,112,192,96,0,0,127,192,31,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,31,0,127,192,21,25,75,24,1,0,31,248, - 0,255,255,0,28,15,128,28,3,192,28,1,224,28,0,240, - 28,0,112,28,0,112,28,0,120,28,0,56,28,0,56,255, - 240,56,255,224,56,28,0,56,28,0,56,28,0,56,28,0, - 112,28,0,112,28,0,112,28,0,224,28,1,224,28,3,192, - 28,15,128,63,254,0,255,248,0,24,32,96,26,1,0,0, - 240,64,1,248,96,3,252,192,2,31,128,6,6,0,0,0, - 0,0,0,0,248,1,255,60,0,124,30,0,56,30,0,56, - 31,0,56,31,128,56,29,128,56,29,192,56,28,224,56,28, - 96,56,28,112,56,28,56,56,28,28,56,28,28,56,28,14, - 56,28,7,56,28,7,56,28,3,184,28,3,248,28,1,248, - 28,0,248,28,0,248,28,0,120,62,0,56,255,128,24,21, - 34,102,24,1,0,3,0,0,7,128,0,15,192,0,3,224, - 0,0,240,0,0,56,0,0,28,0,0,4,0,0,0,0, - 0,252,0,3,255,0,7,7,128,12,3,192,24,1,224,56, - 0,224,112,0,112,112,0,112,96,0,120,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,224,0,56,224,0,56, - 240,0,48,112,0,112,112,0,96,120,0,224,60,0,192,30, - 1,128,15,7,0,7,254,0,1,248,0,21,34,102,24,1, - 0,0,3,0,0,7,128,0,15,192,0,31,0,0,60,0, - 0,112,0,0,224,0,0,128,0,0,0,0,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,96,120,0,224,60,0,192,30,1,128,15,7, - 0,7,254,0,1,248,0,21,33,99,24,1,0,0,120,0, - 0,252,0,0,252,0,1,206,0,3,135,0,6,1,128,4, - 0,128,0,0,0,0,252,0,3,255,0,7,7,128,12,3, - 192,24,1,224,56,0,224,112,0,112,112,0,112,96,0,120, - 224,0,56,224,0,56,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,240,0,48,112,0,112,112,0,96,120,0, - 224,60,0,192,30,1,128,15,7,0,7,254,0,1,248,0, - 21,32,96,24,1,0,1,224,128,3,240,192,7,249,128,6, - 63,0,12,12,0,0,0,0,0,0,0,0,252,0,3,255, - 0,7,7,128,12,3,192,24,1,224,56,0,224,112,0,112, - 112,0,112,96,0,120,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,240,0,48,112,0, - 112,112,0,96,120,0,224,60,0,192,30,1,128,15,7,0, - 7,254,0,1,248,0,21,31,93,24,1,0,3,1,128,7, - 3,128,7,3,128,7,3,128,2,1,0,0,0,0,0,252, - 0,3,255,0,7,7,128,12,3,192,24,1,224,56,0,224, - 112,0,112,112,0,112,96,0,120,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,224,0,56,240,0, - 48,112,0,112,112,0,96,120,0,224,60,0,192,30,1,128, - 15,7,0,7,254,0,1,248,0,13,12,24,16,2,5,192, - 48,224,120,112,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,112,192,56,21,26,78,24,1,255,0,252,56, - 3,255,112,7,7,224,12,3,224,24,1,224,56,3,240,48, - 7,240,112,7,112,96,14,120,224,28,56,224,28,56,224,56, - 56,224,112,56,224,112,56,224,224,56,225,192,56,243,128,48, - 115,128,112,119,0,96,126,0,224,60,0,192,62,1,128,63, - 7,0,119,254,0,225,248,0,128,0,0,24,34,102,26,1, - 0,1,128,0,3,192,0,3,224,0,0,240,0,0,120,0, - 0,28,0,0,6,0,0,3,0,0,0,0,255,129,255,62, - 0,124,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,112,14,0,112,14,0,112,15,0,224,7,193, - 192,3,255,128,0,126,0,24,34,102,26,1,0,0,1,128, - 0,3,224,0,7,224,0,15,128,0,30,0,0,56,0,0, - 112,0,0,64,0,0,0,0,255,129,255,62,0,124,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 112,14,0,112,14,0,112,15,0,224,7,193,192,3,255,128, - 0,126,0,24,33,99,26,1,0,0,28,0,0,62,0,0, - 127,0,0,231,0,1,193,128,3,128,192,2,0,64,0,0, - 0,255,129,255,62,0,124,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,112,14,0,112,14,0,112, - 15,0,224,7,193,192,3,255,128,0,126,0,24,31,93,26, - 1,0,1,128,192,3,129,192,3,129,192,3,129,192,1,0, - 128,0,0,0,255,129,255,62,0,124,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,14,0,112, - 14,0,112,15,0,224,7,193,192,3,255,128,0,126,0,23, - 34,102,24,0,0,0,1,128,0,3,192,0,7,192,0,15, - 0,0,30,0,0,56,0,0,96,0,0,192,0,0,0,0, - 248,1,254,60,0,120,30,0,96,14,0,224,7,0,192,7, - 129,192,3,129,128,3,195,128,1,195,0,0,231,0,0,238, - 0,0,126,0,0,124,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,124,0,1,255,0,18,25,75,21,1, - 0,255,128,0,60,0,0,28,0,0,28,0,0,31,248,0, - 31,254,0,28,31,0,28,7,128,28,3,128,28,3,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 128,28,7,128,28,15,0,29,254,0,28,248,0,28,0,0, - 28,0,0,28,0,0,62,0,0,255,128,0,20,30,90,23, - 1,0,0,124,0,1,255,0,3,15,128,6,3,128,14,3, - 192,12,1,192,12,1,192,28,1,192,28,1,192,28,3,128, - 28,7,128,28,31,0,28,120,0,28,240,0,28,224,0,28, - 224,0,28,240,0,28,124,0,28,63,0,28,31,192,28,7, - 224,28,1,224,28,0,240,28,0,112,28,128,112,28,128,112, - 28,192,96,28,224,224,60,255,192,252,63,0,16,29,58,18, - 2,0,56,0,60,0,28,0,14,0,14,0,7,0,3,128, - 1,128,0,192,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,0,56,0,120,0,112,0,224,0,192,1,192,3,128, - 3,0,6,0,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,3,128,7,128,7,192,15,224,30,224,28,112,56,56, - 48,24,96,12,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,27,54,18, - 2,0,14,4,31,12,63,152,99,240,64,224,0,0,0,0, - 0,0,0,0,3,224,31,240,56,120,112,56,240,56,192,56, - 0,56,0,120,7,248,28,56,112,56,96,56,224,56,224,56, - 224,120,241,185,127,63,60,24,16,27,54,18,2,0,48,24, - 48,24,112,56,112,56,48,24,0,0,0,0,0,0,0,0, - 3,224,31,240,56,120,112,56,240,56,192,56,0,56,0,120, - 7,248,28,56,112,56,96,56,224,56,224,56,224,120,241,185, - 127,63,60,24,16,28,56,18,2,0,3,192,7,224,12,96, - 12,96,24,96,12,96,15,192,7,128,0,0,0,0,3,224, - 31,240,56,120,112,56,240,56,192,56,0,56,0,120,7,248, - 28,56,112,56,96,56,224,56,224,56,224,120,241,185,127,63, - 60,24,24,18,54,28,2,0,3,225,240,15,243,252,56,119, - 30,112,60,14,224,60,7,240,56,7,192,56,7,1,255,255, - 15,255,254,30,56,0,120,56,0,112,56,0,224,56,0,224, - 60,2,224,92,3,241,159,14,127,15,248,60,3,224,15,27, - 54,17,2,247,1,248,7,254,28,28,56,12,48,4,112,0, - 96,0,224,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,8,120,24,63,240,31,224,15,128,2,0,2,0,3,128, - 7,192,1,192,1,128,7,0,28,0,14,29,58,18,2,0, - 28,0,60,0,30,0,14,0,7,0,3,128,1,128,0,192, - 0,64,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 0,56,0,60,0,120,0,112,0,224,0,192,1,128,1,0, - 3,0,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 1,128,3,192,7,224,7,224,14,112,28,56,24,24,48,12, - 32,4,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,27,54,18,2,0, - 24,12,56,28,56,28,56,28,48,24,0,0,0,0,0,0, - 0,0,3,192,15,240,28,120,48,56,112,28,96,28,224,28, - 255,252,255,248,224,0,224,0,224,0,240,0,112,4,120,12, - 60,56,31,240,7,192,10,29,58,11,0,0,224,0,240,0, - 120,0,56,0,28,0,12,0,14,0,6,0,3,0,0,0, - 0,0,6,0,126,0,30,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,30,0,127,192,10,29,58,11,1,0,1,192,3,192, - 3,128,7,128,7,0,14,0,12,0,24,0,16,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,13,29,58,11,255,0,7,0,7,128, - 15,128,31,192,29,192,56,224,112,112,96,48,192,24,0,0, - 0,0,3,0,63,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,15,0,63,224,12,27,54,11,0,0,192,96,224,112, - 224,112,192,96,192,96,0,0,0,0,0,0,0,0,6,0, - 126,0,30,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,30,0, - 127,192,16,28,56,20,2,0,6,0,63,6,7,159,1,248, - 3,224,15,112,28,56,0,28,0,28,0,14,3,206,15,254, - 28,127,48,31,112,15,96,15,224,7,224,7,224,7,224,7, - 224,6,224,6,240,14,112,12,120,28,60,56,31,240,7,192, - 21,27,81,22,1,0,1,192,128,7,225,0,7,243,0,12, - 126,0,8,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,12,15,0,252,63,128,60,99,192,29,129,192,29,1,192, - 30,1,192,30,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,62,3,192,255,143,248,16,29,58,20,2,0,28,0,30, - 0,14,0,7,0,3,128,3,128,1,192,0,192,0,96,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,0,28,0, - 60,0,56,0,112,0,112,0,224,0,192,1,128,3,0,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,1,192,3, - 192,3,224,7,240,7,112,14,56,28,28,24,12,48,6,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,27,54,20,2,0,7,2,15, - 134,31,204,49,248,32,112,0,0,0,0,0,0,0,0,3, - 224,15,248,28,60,48,30,112,14,96,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,6,112,14,120,12,62,56,31, - 240,7,192,16,27,54,20,2,0,24,12,24,12,28,14,24, - 12,24,12,0,0,0,0,0,0,0,0,3,224,15,248,28, - 60,48,30,112,14,96,15,224,7,224,7,224,7,224,7,224, - 7,224,7,240,6,112,14,120,12,62,56,31,240,7,192,14, - 14,28,16,1,4,1,128,3,128,3,128,3,0,0,0,0, - 0,127,252,255,252,0,0,0,0,1,128,3,128,3,128,3, - 0,16,20,40,20,2,255,0,1,3,227,15,254,28,60,48, - 30,112,30,96,63,224,103,224,199,224,135,225,135,227,7,230, - 7,252,6,120,14,120,12,60,56,127,240,199,192,128,0,21, - 29,87,21,0,0,7,0,0,7,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,48,0,0,24,0, - 0,0,0,0,0,0,12,0,192,252,15,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,3,192, - 28,7,192,30,29,200,15,241,240,7,192,192,21,29,87,21, - 0,0,0,7,0,0,15,128,0,14,0,0,30,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,64,0,0,0,0, - 0,0,0,12,0,192,252,15,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,3,192,28,7,192, - 30,29,200,15,241,240,7,192,192,21,29,87,21,0,0,0, - 112,0,0,120,0,0,248,0,1,252,0,1,222,0,3,142, - 0,7,7,0,6,3,0,12,1,128,0,0,0,0,0,0, - 12,0,192,252,15,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,3,192,28,7,192,30,29,200, - 15,241,240,7,192,192,21,27,81,21,0,0,6,3,0,7, - 3,128,7,3,128,6,3,0,6,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,12,0,192,252,15,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 192,28,7,192,30,29,200,15,241,240,7,192,192,20,38,114, - 20,255,247,0,3,128,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,56,0,0,48,0,0,96,0,0,0, - 0,0,0,0,127,131,240,30,0,224,14,0,192,14,0,192, - 7,1,128,7,1,128,7,3,0,3,131,0,3,131,0,1, - 198,0,1,198,0,1,198,0,0,236,0,0,236,0,0,120, - 0,0,120,0,0,120,0,0,48,0,0,48,0,0,96,0, - 0,96,0,0,224,0,1,192,0,67,128,0,127,0,0,254, - 0,0,124,0,0,18,39,117,21,1,247,12,0,0,252,0, - 0,60,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 60,0,28,255,0,29,143,0,31,7,128,30,3,128,28,3, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,1,192, - 28,1,128,28,1,128,28,3,128,30,3,0,31,134,0,31, - 252,0,28,240,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,62,0,0,255,128,0, - 20,36,108,20,255,247,3,1,128,3,1,128,7,3,128,7, - 3,128,3,1,128,0,0,0,0,0,0,0,0,0,0,0, - 0,127,131,240,30,0,224,14,0,192,14,0,192,7,1,128, - 7,1,128,7,3,0,3,131,0,3,131,0,1,198,0,1, - 198,0,1,198,0,0,236,0,0,236,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,48,0,0,96,0,0,96,0, - 0,224,0,1,192,0,67,128,0,127,0,0,254,0,0,124, - 0,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=38 x= 3 y=14 dx=19 dy= 0 ascent=31 len=114 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25n[835] U8G_FONT_SECTION("u8g_font_gdr25n") = { - 0,59,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,1,128,1,128,1,128,97,132,113, - 142,121,159,31,248,7,192,3,192,31,248,121,158,241,142,33, - 134,1,128,1,128,1,128,15,14,28,16,1,4,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,6,10,10,9,2,250,60, - 252,60,28,28,24,24,48,32,64,11,2,4,13,1,9,127, - 224,255,224,5,5,5,9,2,255,112,248,248,248,112,17,38, - 114,19,1,249,0,1,128,0,7,0,0,7,0,0,7,0, - 0,14,0,0,14,0,0,14,0,0,28,0,0,28,0,0, - 56,0,0,56,0,0,56,0,0,112,0,0,112,0,0,112, - 0,0,224,0,0,224,0,1,192,0,1,192,0,1,192,0, - 3,128,0,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,28,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,192,0,0,17,24,72,19,1,0,3,224,0,15, - 248,0,28,60,0,56,30,0,48,14,0,112,7,0,96,7, - 0,96,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,3,0,112, - 7,0,112,7,0,120,6,0,60,14,0,30,28,0,15,248, - 0,7,224,0,14,24,48,19,3,0,1,128,7,128,63,128, - 255,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,15,224,127,252,14,24,48,19,2,0, - 3,224,15,248,24,120,48,60,112,28,96,28,224,28,0,28, - 0,24,0,56,0,48,0,112,0,224,1,192,1,128,3,128, - 7,0,14,0,28,0,24,4,48,4,112,12,255,252,255,252, - 15,24,48,19,1,0,3,224,15,248,28,120,56,60,112,28, - 112,28,0,28,0,24,0,48,0,96,3,224,3,248,0,60, - 0,28,0,14,0,14,0,14,0,14,0,14,0,28,64,28, - 240,120,63,240,15,192,16,24,48,19,1,0,0,24,0,120, - 0,120,0,248,1,248,1,184,3,56,7,56,6,56,12,56, - 28,56,24,56,48,56,112,56,96,56,255,255,255,254,0,56, - 0,56,0,56,0,56,0,56,0,124,3,255,15,24,48,19, - 1,0,0,4,31,252,31,248,24,0,24,0,24,0,48,0, - 48,0,48,0,63,224,63,248,48,124,64,28,0,30,0,14, - 0,14,0,14,0,14,0,14,0,28,64,28,240,120,63,240, - 15,192,15,24,48,19,2,0,0,56,0,240,3,192,7,0, - 14,0,28,0,56,0,112,0,112,0,99,224,239,248,248,60, - 240,28,224,30,224,14,224,14,224,14,224,14,112,14,112,12, - 56,28,60,56,31,240,7,192,15,23,46,19,2,0,127,254, - 255,254,192,12,192,12,128,28,0,24,0,56,0,48,0,112, - 0,96,0,96,0,224,0,192,1,192,1,128,3,128,3,0, - 7,0,7,0,14,0,14,0,28,0,56,0,15,24,48,19, - 2,0,15,192,63,240,120,120,112,60,240,28,224,28,224,28, - 240,24,120,48,62,96,31,192,7,240,24,120,48,60,112,30, - 96,14,224,14,224,14,224,14,224,12,112,28,124,56,63,240, - 15,192,15,25,50,19,2,255,7,192,15,240,56,120,48,60, - 112,28,96,28,224,14,224,14,224,14,224,14,240,14,112,30, - 120,62,63,238,15,140,0,28,0,28,0,24,0,56,0,112, - 0,224,1,192,7,128,30,0,48,0,5,19,19,9,2,255, - 120,248,248,248,96,0,0,0,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 3 y=20 dx=34 dy= 0 ascent=33 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25r[6239] U8G_FONT_SECTION("u8g_font_gdr25r") = { - 0,59,57,236,242,25,6,209,16,163,32,127,247,33,247,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 5 y=28 dx=41 dy= 0 ascent=42 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30[18369] U8G_FONT_SECTION("u8g_font_gdr30") = { - 0,71,68,232,239,30,9,231,23,124,32,255,245,42,243,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,11, - 0,0,6,35,35,13,3,243,56,124,252,252,252,248,112,0, - 16,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 120,120,120,120,120,124,124,124,124,120,96,18,30,90,23,2, - 255,0,96,0,0,96,0,0,96,0,0,96,0,0,255,0, - 3,255,128,15,255,192,30,99,128,60,97,128,56,97,0,120, - 96,0,112,96,0,240,96,0,240,96,0,240,96,0,240,96, - 0,240,96,0,240,96,0,248,96,0,120,96,0,124,96,192, - 62,97,128,63,231,128,31,255,0,15,252,0,3,248,0,0, - 96,0,0,96,0,0,96,0,0,96,0,19,29,87,23,2, - 0,0,127,0,1,255,224,3,131,224,7,1,192,6,0,192, - 14,0,192,14,0,192,30,0,64,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,255,248,0,255,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 28,0,0,28,0,32,28,0,32,24,0,96,56,0,224,63, - 255,224,127,255,224,192,255,224,15,15,30,23,4,7,128,2, - 192,6,103,204,63,248,56,56,112,28,96,12,96,12,96,12, - 96,12,48,24,56,56,127,252,231,206,192,6,25,28,112,23, - 254,0,126,0,255,128,254,0,63,128,31,0,30,0,15,128, - 60,0,7,192,120,0,3,192,112,0,3,224,240,0,1,224, - 224,0,0,241,224,0,0,241,192,0,0,123,192,0,0,127, - 128,0,0,63,0,0,0,63,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,15,255,252,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,127,128,0,1,255, - 224,0,4,49,49,11,4,246,112,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,224,0,0, - 0,0,0,112,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,224,19,34,102,24,2,0,1, - 248,0,7,254,0,30,31,0,60,7,0,60,6,0,60,0, - 0,62,0,0,63,0,0,31,128,0,31,224,0,31,248,0, - 63,252,0,121,255,0,240,127,128,240,63,192,240,15,192,240, - 7,224,248,3,224,124,1,224,126,1,224,63,129,192,31,225, - 192,7,251,128,3,255,0,0,255,0,0,63,128,0,15,128, - 16,7,128,16,7,128,24,7,128,28,7,0,30,15,0,31, - 254,0,3,240,0,15,5,10,19,2,27,112,14,240,30,240, - 30,240,30,224,28,30,30,120,34,2,0,0,31,224,0,0, - 255,252,0,1,224,30,0,7,128,7,128,14,0,1,192,28, - 3,240,224,24,15,252,96,48,60,60,48,112,112,8,56,96, - 224,0,24,97,224,0,24,193,224,0,12,195,192,0,12,195, - 192,0,12,195,192,0,12,195,192,0,12,195,192,0,12,195, - 192,0,12,195,224,0,12,97,224,0,24,97,240,8,24,112, - 248,12,56,48,124,48,48,24,63,224,96,28,15,128,224,14, - 0,1,192,7,128,7,128,1,224,30,0,0,255,252,0,0, - 31,224,0,11,15,30,12,1,14,15,0,31,0,51,128,97, - 128,97,128,3,128,29,128,97,128,193,128,193,128,239,128,253, - 224,121,128,255,192,255,192,18,21,63,23,2,0,0,128,64, - 1,128,192,3,1,128,7,3,0,14,7,0,14,14,0,28, - 30,0,60,60,0,120,60,0,240,120,0,240,120,0,248,120, - 0,120,60,0,60,60,0,28,30,0,14,14,0,14,7,0, - 7,3,0,3,1,128,1,128,192,0,128,64,20,10,30,23, - 1,4,127,255,240,255,255,240,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,96, - 14,2,4,16,1,11,127,252,255,248,15,17,34,17,1,17, - 7,192,31,240,56,56,96,12,79,132,196,70,132,66,132,194, - 135,130,133,130,132,130,196,198,68,100,106,60,56,56,31,240, - 7,192,16,2,4,24,4,28,127,255,255,254,11,11,22,17, - 3,18,15,0,63,192,113,224,96,224,224,224,224,224,224,224, - 224,192,241,128,127,0,62,0,17,22,66,20,1,3,0,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,0,0,0,0,0,0,0,0,0,127,255,128,255,255,128, - 13,17,34,17,2,15,7,192,31,240,112,248,96,120,224,120, - 0,120,0,112,0,224,1,224,3,192,7,128,15,0,30,0, - 60,8,120,24,255,248,255,248,14,18,36,16,1,14,15,128, - 63,224,113,240,224,240,192,240,0,240,1,224,7,128,15,224, - 1,240,0,120,0,60,0,60,0,60,128,120,224,248,63,224, - 15,128,10,10,20,15,5,25,7,128,7,192,15,0,15,0, - 30,0,60,0,56,0,112,0,96,0,192,0,25,33,132,26, - 1,245,6,0,24,0,254,0,248,0,126,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,31,0, - 248,0,31,1,248,0,31,131,248,0,31,255,121,0,27,254, - 127,128,25,252,126,0,24,240,56,0,24,0,0,0,24,0, - 0,0,24,0,0,0,28,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,30,0,0,0,31,0,0,0,31,0, - 0,0,24,0,0,0,23,36,108,26,1,250,1,255,254,15, - 255,254,31,7,252,60,7,112,120,7,112,120,7,112,240,7, - 112,240,7,112,240,7,112,240,7,112,240,7,112,248,7,112, - 120,7,112,124,7,112,62,7,112,31,135,112,15,255,112,1, - 255,112,0,7,112,0,7,112,0,7,112,0,7,112,0,7, - 112,0,7,112,0,7,112,0,7,112,0,7,112,0,7,112, - 0,7,112,0,7,112,0,7,112,0,7,112,0,7,112,0, - 7,112,0,31,248,0,63,254,4,5,5,7,2,14,112,240, - 240,240,224,8,10,10,11,2,246,24,56,48,62,127,15,15, - 30,120,224,13,17,34,16,2,15,3,128,31,128,255,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,15,192,127,248,12,15,30,14,1, - 14,15,128,63,192,49,224,96,96,192,112,192,48,192,48,192, - 48,224,48,224,96,120,192,63,128,31,0,255,240,255,240,18, - 21,63,23,3,0,64,64,0,224,96,0,96,48,0,48,24, - 0,56,28,0,28,14,0,14,15,0,15,7,128,7,135,128, - 7,195,192,3,195,192,7,195,192,7,135,128,15,7,128,30, - 15,0,28,14,0,56,28,0,48,56,0,112,48,0,96,96, - 0,192,64,0,24,29,87,28,2,0,4,0,4,60,0,14, - 204,0,24,12,0,56,12,0,48,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,12,6, - 0,127,142,0,0,28,0,0,24,4,0,56,28,0,112,28, - 0,96,44,0,224,108,1,192,76,1,192,140,3,129,12,3, - 3,12,7,3,255,14,7,254,12,0,12,28,0,12,56,0, - 127,24,29,87,28,2,0,4,0,6,60,0,14,204,0,28, - 12,0,24,12,0,56,12,0,112,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,127,142, - 0,0,14,0,0,28,60,0,24,255,0,57,199,0,115,131, - 0,99,3,0,224,2,1,192,4,1,128,8,3,128,16,7, - 0,32,7,0,65,14,0,129,12,1,255,28,1,255,25,29, - 116,28,1,0,15,128,3,0,31,192,7,0,49,192,14,0, - 112,192,12,0,0,192,28,0,1,128,24,0,15,0,56,0, - 1,192,112,0,0,192,96,0,0,192,224,0,0,193,192,0, - 0,193,128,0,193,195,128,0,127,135,0,0,30,7,0,0, - 0,14,2,0,0,12,14,0,0,28,14,0,0,56,22,0, - 0,48,38,0,0,112,102,0,0,224,198,0,0,224,134,0, - 1,193,134,128,3,131,255,0,3,128,6,0,7,0,6,0, - 6,0,6,0,14,0,63,128,17,35,105,21,2,243,0,224, - 0,1,240,0,3,240,0,3,240,0,3,224,0,1,192,0, - 0,0,0,0,0,0,0,0,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,7,0,0,15,0,0,30,0,0,60,0,0, - 60,0,0,120,0,0,120,0,0,240,0,0,240,3,128,240, - 7,128,240,7,128,240,7,128,248,15,0,120,15,0,126,30, - 0,63,248,0,15,224,0,28,41,164,29,0,0,0,128,0, - 0,1,192,0,0,3,240,0,0,1,248,0,0,0,124,0, - 0,0,31,0,0,0,7,128,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, - 0,0,15,0,0,0,15,0,0,0,31,128,0,0,31,128, - 0,0,27,128,0,0,59,192,0,0,57,192,0,0,49,224, - 0,0,113,224,0,0,112,224,0,0,96,240,0,0,224,240, - 0,0,224,112,0,0,192,120,0,1,192,120,0,1,192,56, - 0,1,255,252,0,3,255,252,0,3,128,30,0,3,0,30, - 0,7,0,30,0,7,0,15,0,6,0,15,0,14,0,15, - 0,14,0,7,128,12,0,7,128,62,0,7,192,255,192,63, - 240,28,41,164,29,0,0,0,0,32,0,0,0,56,0,0, - 0,252,0,0,1,248,0,0,3,224,0,0,15,128,0,0, - 30,0,0,0,56,0,0,0,32,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,7,0,0,0,15,0,0,0, - 15,0,0,0,31,128,0,0,31,128,0,0,27,128,0,0, - 59,192,0,0,57,192,0,0,49,224,0,0,113,224,0,0, - 112,224,0,0,96,240,0,0,224,240,0,0,224,112,0,0, - 192,120,0,1,192,120,0,1,192,56,0,1,255,252,0,3, - 255,252,0,3,128,30,0,3,0,30,0,7,0,30,0,7, - 0,15,0,6,0,15,0,14,0,15,0,14,0,7,128,12, - 0,7,128,62,0,7,192,255,192,63,240,28,41,164,29,0, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,121,224,0,0,240,240,0,1,192,56,0,1,128,24, - 0,1,0,16,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,39,156,29,0,0,0,16,8,0,0, - 124,12,0,0,254,28,0,1,255,248,0,1,135,240,0,3, - 3,224,0,2,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0, - 31,128,0,0,31,128,0,0,27,128,0,0,59,192,0,0, - 57,192,0,0,49,224,0,0,113,224,0,0,112,224,0,0, - 96,240,0,0,224,240,0,0,224,112,0,0,192,120,0,1, - 192,120,0,1,192,56,0,1,255,252,0,3,255,252,0,3, - 128,30,0,3,0,30,0,7,0,30,0,7,0,15,0,6, - 0,15,0,14,0,15,0,14,0,7,128,12,0,7,128,62, - 0,7,192,255,192,63,240,28,38,152,29,0,0,0,128,32, - 0,0,224,56,0,1,224,120,0,1,224,120,0,1,224,120, - 0,0,128,32,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,42,168,29,0,0,0,2,0,0,0, - 15,128,0,0,31,192,0,0,24,192,0,0,48,192,0,0, - 48,192,0,0,48,192,0,0,63,128,0,0,31,0,0,0, - 8,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 7,0,0,0,15,0,0,0,15,0,0,0,31,128,0,0, - 31,128,0,0,27,128,0,0,59,192,0,0,57,192,0,0, - 49,224,0,0,113,224,0,0,112,224,0,0,96,240,0,0, - 224,240,0,0,224,112,0,0,192,120,0,1,192,120,0,1, - 192,56,0,1,255,252,0,3,255,252,0,3,128,30,0,3, - 0,30,0,7,0,30,0,7,0,15,0,6,0,15,0,14, - 0,15,0,14,0,7,128,12,0,7,128,62,0,7,192,255, - 192,63,240,36,30,150,37,0,0,0,127,255,255,192,0,31, - 255,255,224,0,7,252,0,192,0,7,60,0,192,0,7,60, - 0,192,0,14,60,0,192,0,14,60,0,0,0,30,60,0, - 0,0,28,60,0,0,0,28,60,0,0,0,60,60,0,0, - 0,56,60,0,0,0,120,60,0,0,0,127,255,255,0,0, - 127,255,255,0,0,240,60,6,0,0,224,60,0,0,1,224, - 60,0,0,1,192,60,0,0,1,192,60,0,0,3,128,60, - 0,0,3,128,60,0,0,7,128,60,0,0,7,0,60,0, - 0,7,0,60,0,16,14,0,60,0,48,14,0,60,0,48, - 30,0,62,0,112,62,0,127,255,224,255,193,255,255,224,22, - 40,120,26,2,246,0,31,224,0,255,252,1,192,252,7,128, - 56,14,0,16,14,0,0,28,0,0,56,0,0,56,0,0, - 120,0,0,112,0,0,112,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,248,0,0,120,0,0,124,0,0,60,0,0,62,0,8, - 31,0,60,15,128,240,15,255,224,3,255,128,0,254,0,0, - 24,0,0,16,0,0,28,0,0,62,0,0,63,0,0,15, - 0,0,15,0,0,30,0,0,120,0,1,192,0,21,41,123, - 24,1,0,4,0,0,14,0,0,31,0,0,15,192,0,3, - 224,0,0,240,0,0,60,0,0,14,0,0,4,0,0,0, - 0,0,0,0,255,255,224,127,255,240,30,0,96,30,0,96, - 30,0,96,30,0,96,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,128,31,255, - 128,30,3,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,8,30, - 0,24,30,0,24,31,0,56,127,255,240,255,255,240,21,41, - 123,24,1,0,0,1,0,0,3,192,0,7,224,0,15,192, - 0,63,0,0,124,0,0,240,0,1,192,0,1,0,0,0, - 0,0,0,0,0,255,255,224,127,255,240,30,0,96,30,0, - 96,30,0,96,30,0,96,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,31,255,128,31, - 255,128,30,3,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,8, - 30,0,24,30,0,24,31,0,56,127,255,240,255,255,240,21, - 41,123,24,1,0,0,48,0,0,120,0,0,252,0,1,254, - 0,3,207,0,7,7,0,14,1,128,28,0,192,16,0,128, - 0,0,0,0,0,0,255,255,224,127,255,240,30,0,96,30, - 0,96,30,0,96,30,0,96,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,31,255,128, - 31,255,128,30,3,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 8,30,0,24,30,0,24,31,0,56,127,255,240,255,255,240, - 21,38,114,24,1,0,4,1,0,15,3,192,15,3,192,15, - 3,192,14,3,128,4,1,0,0,0,0,0,0,0,255,255, - 224,127,255,240,30,0,96,30,0,96,30,0,96,30,0,96, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,31,255,128,31,255,128,30,3,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,8,30,0,24,30,0,24,31, - 0,56,127,255,240,255,255,240,13,41,82,14,255,0,32,0, - 112,0,252,0,126,0,31,0,7,128,1,224,0,112,0,32, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 13,41,82,14,2,0,0,64,0,112,1,248,3,240,7,192, - 31,0,60,0,112,0,64,0,0,0,0,0,255,192,127,128, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,127,128,255,192,15,41,82,14,255,0,1,128, - 3,192,7,224,15,240,30,120,56,60,112,12,224,6,64,4, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 14,38,76,14,0,0,64,16,112,28,240,60,240,60,224,56, - 64,16,0,0,0,0,63,240,31,224,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,31,224, - 63,240,25,30,120,28,1,0,7,254,0,0,255,255,192,0, - 127,3,240,0,15,0,248,0,15,0,124,0,15,0,62,0, - 15,0,30,0,15,0,31,0,15,0,15,0,15,0,15,0, - 15,0,15,128,15,0,7,128,15,0,7,128,15,0,7,128, - 255,254,7,128,255,252,7,128,15,0,7,128,15,0,7,128, - 15,0,7,128,15,0,7,0,15,0,15,0,15,0,15,0, - 15,0,30,0,15,0,30,0,15,0,60,0,15,0,124,0, - 15,0,248,0,15,3,224,0,31,255,192,0,127,254,0,0, - 27,39,156,31,2,0,0,32,16,0,0,124,12,0,0,254, - 24,0,1,255,240,0,3,15,240,0,3,3,224,0,2,1, - 0,0,0,0,0,0,0,0,0,0,252,0,63,224,124,0, - 15,128,30,0,7,0,31,0,7,0,31,0,7,0,31,128, - 7,0,31,192,7,0,29,192,7,0,28,224,7,0,28,240, - 7,0,28,120,7,0,28,56,7,0,28,60,7,0,28,30, - 7,0,28,14,7,0,28,15,7,0,28,7,135,0,28,7, - 135,0,28,3,199,0,28,1,231,0,28,1,231,0,28,0, - 247,0,28,0,127,0,28,0,127,0,28,0,63,0,28,0, - 31,0,28,0,31,0,28,0,15,0,62,0,7,0,255,128, - 3,0,25,41,164,29,2,0,2,0,0,0,3,128,0,0, - 7,192,0,0,7,224,0,0,1,248,0,0,0,124,0,0, - 0,30,0,0,0,7,128,0,0,1,0,0,0,0,0,0, - 0,0,0,0,0,63,0,0,0,255,224,0,3,193,240,0, - 7,0,248,0,14,0,124,0,28,0,62,0,60,0,30,0, - 56,0,31,0,120,0,15,0,120,0,15,0,112,0,15,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 248,0,7,0,120,0,15,0,120,0,15,0,124,0,14,0, - 60,0,28,0,62,0,28,0,31,0,56,0,15,128,112,0, - 7,193,224,0,3,255,128,0,0,254,0,0,25,41,164,29, - 2,0,0,0,128,0,0,0,224,0,0,1,240,0,0,7, - 240,0,0,15,192,0,0,30,0,0,0,56,0,0,0,224, - 0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,255,224,0,3,193,240,0,7,0,248,0,14,0, - 124,0,28,0,62,0,60,0,30,0,56,0,31,0,120,0, - 15,0,120,0,15,0,112,0,15,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,248,0,7,0,120,0, - 15,0,120,0,15,0,124,0,14,0,60,0,28,0,62,0, - 28,0,31,0,56,0,15,128,112,0,7,193,224,0,3,255, - 128,0,0,254,0,0,25,41,164,29,2,0,0,28,0,0, - 0,62,0,0,0,126,0,0,0,127,0,0,0,227,128,0, - 1,193,192,0,3,128,224,0,6,0,112,0,4,0,32,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 25,39,156,29,2,0,0,64,32,0,1,248,48,0,3,252, - 48,0,3,255,224,0,6,31,192,0,4,15,128,0,12,2, - 0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,255, - 224,0,3,193,240,0,7,0,248,0,14,0,124,0,28,0, - 62,0,60,0,30,0,56,0,31,0,120,0,15,0,120,0, - 15,0,112,0,15,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,248,0,7,0,120,0,15,0,120,0, - 15,0,124,0,14,0,60,0,28,0,62,0,28,0,31,0, - 56,0,15,128,112,0,7,193,224,0,3,255,128,0,0,254, - 0,0,25,38,152,29,2,0,1,0,64,0,3,128,224,0, - 3,128,224,0,7,129,224,0,3,128,224,0,2,0,128,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 15,14,28,20,2,6,96,6,240,14,120,28,60,56,30,112, - 15,224,7,192,7,192,15,224,30,112,60,56,120,28,240,14, - 96,6,25,31,124,29,2,255,0,63,7,128,1,255,207,0, - 3,193,254,0,7,0,126,0,14,0,60,0,28,0,126,0, - 56,0,126,0,56,0,255,0,120,1,239,0,120,1,239,0, - 112,3,207,128,240,7,135,128,240,7,7,128,240,15,7,128, - 240,30,7,128,240,60,7,128,240,60,7,128,240,120,7,128, - 240,240,7,128,240,224,7,0,121,224,7,0,123,192,15,0, - 123,128,14,0,63,128,12,0,63,0,28,0,30,0,56,0, - 31,0,112,0,63,193,224,0,121,255,128,0,240,126,0,0, - 192,0,0,0,27,41,164,31,2,0,0,128,0,0,1,192, - 0,0,3,240,0,0,1,248,0,0,0,124,0,0,0,30, - 0,0,0,7,128,0,0,1,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,192,127,224,127,128,63,192,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 30,0,15,0,30,0,15,0,30,0,7,128,60,0,7,192, - 120,0,3,224,240,0,1,255,224,0,0,63,128,0,27,41, - 164,31,2,0,0,0,32,0,0,0,120,0,0,0,252,0, - 0,1,248,0,0,3,224,0,0,15,128,0,0,30,0,0, - 0,56,0,0,0,32,0,0,0,0,0,0,0,0,0,0, - 255,192,127,224,127,128,63,192,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,30,0,15,0,30,0, - 15,0,30,0,7,128,60,0,7,192,120,0,3,224,240,0, - 1,255,224,0,0,63,128,0,27,41,164,31,2,0,0,6, - 0,0,0,15,0,0,0,31,128,0,0,63,192,0,0,121, - 224,0,0,224,240,0,1,192,48,0,3,128,24,0,1,0, - 16,0,0,0,0,0,0,0,0,0,255,192,127,224,127,128, - 63,192,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,30,0,15,0,30,0,15,0,30,0,7,128, - 60,0,7,192,120,0,3,224,240,0,1,255,224,0,0,63, - 128,0,27,38,152,31,2,0,0,128,32,0,0,224,56,0, - 1,224,120,0,1,224,120,0,1,192,112,0,0,128,32,0, - 0,0,0,0,0,0,0,0,255,192,127,224,127,128,63,192, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,30,0,15,0,30,0,15,0,30,0,7,128,60,0, - 7,192,120,0,3,224,240,0,1,255,224,0,0,63,128,0, - 28,41,164,29,0,0,0,0,32,0,0,0,56,0,0,0, - 252,0,0,1,248,0,0,3,224,0,0,7,128,0,0,30, - 0,0,0,56,0,0,0,32,0,0,0,0,0,0,0,0, - 0,0,252,0,63,240,254,0,63,240,31,0,15,128,15,0, - 7,0,15,128,14,0,7,192,14,0,3,192,28,0,3,224, - 60,0,1,224,56,0,0,240,120,0,0,248,112,0,0,120, - 224,0,0,125,224,0,0,61,192,0,0,63,192,0,0,31, - 128,0,0,31,128,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,63,192,0,0,255,240,0,21,30,90,25,2,0, - 255,224,0,127,128,0,30,0,0,30,0,0,30,0,0,30, - 0,0,31,254,0,31,255,128,30,15,192,30,3,224,30,1, - 240,30,0,248,30,0,120,30,0,120,30,0,120,30,0,120, - 30,0,120,30,0,120,30,0,240,30,0,240,30,1,224,31, - 7,192,30,255,128,30,124,0,30,0,0,30,0,0,30,0, - 0,30,0,0,127,128,0,255,224,0,25,36,144,27,1,0, - 0,31,128,0,0,127,224,0,1,195,240,0,3,128,248,0, - 7,0,120,0,7,0,124,0,14,0,60,0,14,0,60,0, - 14,0,60,0,30,0,60,0,30,0,60,0,30,0,120,0, - 30,1,248,0,30,7,240,0,30,15,192,0,30,31,0,0, - 30,60,0,0,30,60,0,0,30,60,0,0,30,62,0,0, - 30,63,0,0,30,31,192,0,30,15,240,0,30,3,252,0, - 30,0,254,0,30,0,127,0,30,0,31,128,30,0,15,128, - 30,0,7,128,30,32,7,128,30,48,7,128,30,48,7,0, - 30,56,15,0,30,60,30,0,62,63,252,0,254,7,224,0, - 20,35,105,22,2,0,30,0,0,62,0,0,31,0,0,15, - 0,0,7,128,0,3,192,0,1,192,0,0,224,0,0,96, - 0,0,48,0,0,0,0,0,0,0,0,0,0,1,248,0, - 15,254,0,28,30,0,120,15,0,112,15,0,240,15,0,128, - 15,0,0,15,0,0,15,0,0,255,0,7,255,0,31,143, - 0,62,15,0,120,15,0,248,15,0,240,15,0,240,15,0, - 240,31,0,240,63,0,120,239,32,127,143,240,30,7,128,20, - 35,105,22,2,0,0,15,0,0,31,0,0,30,0,0,60, - 0,0,56,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,1,248,0,15, - 254,0,28,30,0,120,15,0,112,15,0,240,15,0,128,15, - 0,0,15,0,0,15,0,0,255,0,7,255,0,31,143,0, - 62,15,0,120,15,0,248,15,0,240,15,0,240,15,0,240, - 31,0,240,63,0,120,239,32,127,143,240,30,7,128,20,34, - 102,22,2,0,0,224,0,1,240,0,3,240,0,7,56,0, - 6,28,0,12,14,0,24,6,0,48,3,0,32,1,128,0, - 0,0,0,0,0,0,0,0,1,248,0,15,254,0,28,30, - 0,120,15,0,112,15,0,240,15,0,128,15,0,0,15,0, - 0,15,0,0,255,0,7,255,0,31,143,0,62,15,0,120, - 15,0,248,15,0,240,15,0,240,15,0,240,31,0,240,63, - 0,120,239,32,127,143,240,30,7,128,20,32,96,22,2,0, - 7,0,128,15,193,128,31,193,0,63,243,0,48,254,0,96, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,28,30,0,120,15,0,112,15,0,240,15,0, - 128,15,0,0,15,0,0,15,0,0,255,0,7,255,0,31, - 143,0,62,15,0,120,15,0,248,15,0,240,15,0,240,15, - 0,240,31,0,240,63,0,120,239,32,127,143,240,30,7,128, - 20,32,96,22,2,0,28,7,0,28,7,0,60,15,0,60, - 15,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,248,0,15,254,0,28,30,0,120,15,0, - 112,15,0,240,15,0,128,15,0,0,15,0,0,15,0,0, - 255,0,7,255,0,31,143,0,62,15,0,120,15,0,248,15, - 0,240,15,0,240,15,0,240,31,0,240,63,0,120,239,32, - 127,143,240,30,7,128,20,34,102,22,2,0,0,240,0,1, - 248,0,3,24,0,3,24,0,6,24,0,6,24,0,7,56, - 0,3,240,0,1,192,0,0,0,0,0,0,0,0,0,0, - 1,248,0,15,254,0,28,30,0,120,15,0,112,15,0,240, - 15,0,128,15,0,0,15,0,0,15,0,0,255,0,7,255, - 0,31,143,0,62,15,0,120,15,0,248,15,0,240,15,0, - 240,15,0,240,31,0,240,63,0,120,239,32,127,143,240,30, - 7,128,29,22,88,33,2,0,1,248,31,128,7,252,127,192, - 28,62,225,224,56,31,192,240,112,15,128,112,240,15,128,120, - 240,15,0,120,192,15,0,120,0,127,255,248,3,255,255,240, - 15,143,0,0,30,15,0,0,60,15,0,0,120,15,0,0, - 240,15,0,0,240,15,128,0,240,31,128,24,240,63,192,48, - 248,243,224,240,127,227,255,192,127,128,255,128,30,0,126,0, - 18,32,96,21,2,246,0,127,0,1,255,192,7,7,192,14, - 1,128,28,0,128,56,0,0,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,248,0,0,120,1,0,124,3,128,62,7,0,31, - 254,0,31,248,0,7,240,0,0,192,0,0,128,0,0,224, - 0,0,240,0,1,248,0,0,120,0,0,120,0,0,240,0, - 3,192,0,14,0,0,18,35,105,22,2,0,14,0,0,31, - 0,0,15,128,0,7,128,0,3,192,0,1,192,0,0,224, - 0,0,112,0,0,48,0,0,24,0,0,0,0,0,0,0, - 0,0,0,0,248,0,7,254,0,14,15,0,28,7,128,56, - 7,128,56,3,192,112,3,192,112,3,192,255,255,192,255,255, - 128,240,0,0,240,0,0,240,0,0,240,0,0,248,0,0, - 120,0,0,120,0,0,124,0,192,62,1,128,31,7,0,15, - 254,0,3,248,0,18,35,105,22,2,0,0,7,0,0,15, - 128,0,15,0,0,30,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,0,248,0,7,254,0,14,15,0,28,7,128,56,7, - 128,56,3,192,112,3,192,112,3,192,255,255,192,255,255,128, - 240,0,0,240,0,0,240,0,0,240,0,0,248,0,0,120, - 0,0,120,0,0,124,0,192,62,1,128,31,7,0,15,254, - 0,3,248,0,18,34,102,22,2,0,0,240,0,0,240,0, - 1,248,0,3,156,0,7,14,0,14,6,0,12,3,0,24, - 1,128,16,0,128,0,0,0,0,0,0,0,0,0,0,248, - 0,7,254,0,14,15,0,28,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,255,255,192,255,255,128,240,0,0,240, - 0,0,240,0,0,240,0,0,248,0,0,120,0,0,120,0, - 0,124,0,192,62,1,128,31,7,0,15,254,0,3,248,0, - 18,32,96,22,2,0,14,3,128,30,7,128,30,7,128,30, - 7,128,28,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,248,0,7,254,0,14,15,0,28,7,128, - 56,7,128,56,3,192,112,3,192,112,3,192,255,255,192,255, - 255,128,240,0,0,240,0,0,240,0,0,240,0,0,248,0, - 0,120,0,0,120,0,0,124,0,192,62,1,128,31,7,0, - 15,254,0,3,248,0,12,35,70,13,0,0,240,0,248,0, - 120,0,60,0,28,0,14,0,7,0,3,0,1,128,0,128, - 0,0,0,0,0,0,1,128,31,128,63,128,15,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,15,192, - 63,240,12,35,70,13,2,0,0,224,1,240,3,224,3,192, - 7,128,7,0,14,0,28,0,24,0,48,0,0,0,0,0, - 0,0,6,0,126,0,254,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,255,192,15,34, - 68,13,255,0,3,128,7,192,7,224,14,240,28,112,56,56, - 112,12,96,6,192,2,0,0,0,0,0,0,0,192,15,192, - 31,192,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,7,224,31,248,14,32,64,13,0,0,96,24, - 240,60,240,60,224,56,224,56,0,0,0,0,0,0,0,0, - 0,0,1,128,31,128,63,128,15,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,15,192,63,240,20,34, - 102,24,2,0,3,0,0,31,192,128,31,225,224,1,255,192, - 0,126,0,0,252,0,3,254,0,15,143,0,4,7,128,0, - 3,128,0,3,192,0,1,192,1,241,224,7,255,224,14,31, - 224,28,7,240,56,3,240,56,1,240,120,1,240,112,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 0,224,248,1,224,120,1,192,124,1,192,124,3,128,62,7, - 0,31,14,0,15,252,0,3,240,0,23,32,96,26,2,0, - 1,224,32,3,240,48,7,248,96,7,252,192,14,63,128,8, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7, - 192,254,15,224,62,49,224,30,96,240,30,192,240,30,128,240, - 31,0,240,31,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,127,131,248,255,199,254, - 20,35,105,24,2,0,15,0,0,15,0,0,7,128,0,3, - 192,0,1,192,0,0,224,0,0,112,0,0,112,0,0,56, - 0,0,24,0,0,0,0,0,0,0,0,0,0,0,252,0, - 7,255,0,14,15,128,28,7,192,56,3,192,56,3,224,112, - 1,224,112,1,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,0,240,240,0,240,248,0,224,120,1,224,124,1,192, - 60,1,192,62,3,128,31,7,0,15,254,0,3,240,0,20, - 35,105,24,2,0,0,7,128,0,7,192,0,15,128,0,15, - 0,0,30,0,0,60,0,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,0,0,0,0,252,0,7, - 255,0,14,15,128,28,7,192,56,3,192,56,3,224,112,1, - 224,112,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,248,0,224,120,1,224,124,1,192,60, - 1,192,62,3,128,31,7,0,15,254,0,3,240,0,20,34, - 102,24,2,0,0,112,0,0,248,0,1,252,0,1,220,0, - 3,142,0,7,7,0,14,3,128,12,1,192,24,0,192,0, - 0,0,0,0,0,0,0,0,0,252,0,7,255,0,14,15, - 128,28,7,192,56,3,192,56,3,224,112,1,224,112,1,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,248,0,224,120,1,224,124,1,192,60,1,192,62,3, - 128,31,7,0,15,254,0,3,240,0,20,32,96,24,2,0, - 3,192,64,7,224,96,15,240,192,15,249,128,28,127,0,16, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,7,255,0,14,15,128,28,7,192,56,3,192,56,3,224, - 112,1,224,112,1,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,248,0,224,120,1,224,124,1, - 192,60,1,192,62,3,128,31,7,0,15,254,0,3,240,0, - 20,32,96,24,2,0,6,1,128,15,3,192,15,3,192,14, - 3,128,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,7,255,0,14,15,128,28,7,192, - 56,3,192,56,3,224,112,1,224,112,1,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,248,0, - 224,120,1,224,124,1,192,60,1,192,62,3,128,31,7,0, - 15,254,0,3,240,0,17,15,45,20,1,6,0,224,0,1, - 224,0,1,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,127,255,128,255,255,128,0,0,0,0,0,0,0,224,0, - 1,224,0,1,224,0,1,192,0,20,24,72,24,2,255,0, - 0,48,1,248,112,7,254,224,14,15,192,28,7,192,56,3, - 224,56,7,224,112,15,224,112,28,240,240,24,240,240,56,240, - 240,112,240,240,224,240,240,192,240,241,192,240,243,128,224,255, - 0,224,126,1,192,126,1,192,62,3,128,63,7,0,119,254, - 0,225,248,0,128,0,0,24,35,105,25,1,0,3,128,0, - 7,192,0,3,192,0,1,224,0,0,240,0,0,112,0,0, - 56,0,0,24,0,0,12,0,0,4,0,0,0,0,0,0, - 0,0,0,0,6,0,112,254,7,240,126,7,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,1,240,31,2,240,15,12,255, - 15,248,252,3,224,112,24,35,105,25,1,0,0,1,192,0, - 3,224,0,7,192,0,7,128,0,15,0,0,14,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,0,0,0,0,0, - 0,0,0,6,0,112,254,7,240,126,7,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,1,240,31,2,240,15,12,255,15, - 248,252,3,224,112,24,34,102,25,1,0,0,56,0,0,124, - 0,0,126,0,0,231,0,1,195,0,3,129,128,3,0,192, - 6,0,96,12,0,32,0,0,0,0,0,0,0,0,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,24,32,96,25,1,0,3,0,192,7,129,224,7,129,224, - 7,129,224,7,1,192,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,6,0,112,254,7,240,126,7,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,1,240,31,2,240,15,12, - 255,15,248,252,3,224,112,24,46,138,24,255,245,0,0,240, - 0,0,248,0,1,224,0,3,224,0,3,192,0,7,128,0, - 7,0,0,14,0,0,12,0,0,24,0,0,0,0,0,0, - 0,0,0,0,127,224,255,31,0,62,15,0,28,15,0,24, - 7,128,56,7,128,56,3,128,48,3,192,112,3,192,96,1, - 224,224,1,224,224,0,224,192,0,241,192,0,241,192,0,121, - 128,0,123,128,0,59,0,0,63,0,0,63,0,0,30,0, - 0,30,0,0,12,0,0,12,0,0,28,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,224,0,63,192,0,127,128, - 0,255,0,0,124,0,0,21,47,141,25,2,245,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,15,0,28,63,192,28,99,224, - 28,193,224,29,129,240,31,0,240,31,0,248,30,0,248,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,120,30,0, - 120,30,0,112,30,0,112,30,0,224,30,0,224,31,129,192, - 31,195,128,31,255,0,30,124,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,63,0,0,255,224,0,24,43,129,24,255,245, - 0,192,48,1,192,112,1,224,120,3,192,240,1,128,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,224, - 255,31,0,62,15,0,28,15,0,24,7,128,56,7,128,56, - 3,128,48,3,192,112,3,192,96,1,224,224,1,224,224,0, - 224,192,0,241,192,0,241,192,0,121,128,0,123,128,0,59, - 0,0,63,0,0,63,0,0,30,0,0,30,0,0,12,0, - 0,12,0,0,28,0,0,24,0,0,56,0,0,112,0,0, - 112,0,0,224,0,63,192,0,127,128,0,255,0,0,124,0, - 0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=20 h=46 x= 3 y=17 dx=23 dy= 0 ascent=38 len=138 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30n[1281] U8G_FONT_SECTION("u8g_font_gdr30n") = { - 0,71,68,232,239,29,0,0,0,0,42,58,0,38,248,29, - 0,18,20,60,21,2,17,0,192,0,1,192,0,1,192,0, - 1,192,0,193,193,0,240,195,192,248,207,192,124,223,0,15, - 252,0,3,224,0,3,224,0,15,252,0,60,223,0,248,207, - 128,240,195,128,64,193,128,1,192,0,1,192,0,1,192,0, - 1,128,0,17,17,51,20,1,5,0,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,128,0,7,13,13,11, - 2,249,8,60,254,254,30,30,30,28,28,56,48,96,64,14, - 2,4,16,1,11,127,252,255,248,6,6,6,11,3,255,56, - 124,252,252,248,112,20,46,138,23,1,248,0,0,48,0,0, - 240,0,0,240,0,0,224,0,1,224,0,1,192,0,1,192, - 0,3,192,0,3,128,0,7,128,0,7,128,0,7,0,0, - 15,0,0,15,0,0,14,0,0,30,0,0,28,0,0,28, - 0,0,60,0,0,56,0,0,120,0,0,120,0,0,112,0, - 0,240,0,0,224,0,0,224,0,1,224,0,1,192,0,3, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,14,0,0,30,0,0,30,0,0,28,0,0, - 60,0,0,60,0,0,56,0,0,120,0,0,112,0,0,240, - 0,0,192,0,0,19,29,87,23,2,0,1,248,0,7,252, - 0,14,30,0,28,15,0,24,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,112,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,192,120,1,192,120,3,192,120,3,128, - 60,3,128,60,3,0,30,7,0,15,14,0,7,252,0,3, - 240,0,17,29,87,23,3,0,0,96,0,1,224,0,15,224, - 0,127,224,0,255,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,3,240,0,63,254,0,127,255,128,17, - 29,87,22,2,0,1,248,0,7,254,0,28,31,0,56,15, - 0,120,15,128,112,7,128,240,7,128,224,7,128,0,7,128, - 0,7,128,0,15,0,0,15,0,0,30,0,0,30,0,0, - 60,0,0,120,0,0,240,0,0,240,0,1,224,0,3,192, - 0,7,128,0,15,0,0,15,0,0,30,0,128,60,0,128, - 120,0,128,240,1,128,255,255,128,255,255,128,18,29,87,22, - 1,0,1,248,0,7,254,0,30,31,0,60,15,0,56,7, - 128,120,7,128,112,7,128,0,7,128,0,7,0,0,15,0, - 0,30,0,0,60,0,0,248,0,3,254,0,0,63,0,0, - 15,128,0,7,128,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,7,128,128,7,128,224,15,0, - 120,62,0,63,252,0,7,224,0,19,29,87,23,1,0,0, - 3,0,0,15,0,0,31,0,0,63,0,0,127,0,0,127, - 0,0,239,0,0,207,0,1,207,0,3,143,0,3,143,0, - 7,15,0,14,15,0,14,15,0,28,15,0,24,15,0,56, - 15,0,112,15,0,112,15,0,255,255,224,255,255,192,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,63,128,1,255,224,18,29,87,23,2,0,0,0,128,0, - 1,128,31,255,0,31,254,0,24,0,0,24,0,0,24,0, - 0,24,0,0,56,0,0,56,0,0,56,0,0,63,240,0, - 63,252,0,120,63,0,32,15,0,0,7,128,0,7,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 128,0,7,128,128,7,128,224,15,0,120,62,0,63,252,0, - 7,240,0,18,29,87,23,3,0,0,7,0,0,63,0,0, - 248,0,1,224,0,3,192,0,15,0,0,14,0,0,30,0, - 0,60,0,0,56,0,0,120,0,0,120,248,0,119,254,0, - 254,31,0,248,15,128,240,7,128,240,7,192,240,3,192,240, - 3,192,240,3,192,240,3,192,248,3,192,120,3,128,120,3, - 128,60,7,128,60,7,0,31,14,0,15,252,0,3,240,0, - 19,27,81,23,2,0,127,255,192,127,255,224,96,1,192,64, - 3,192,192,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,28,0,0,28,0,0,56,0,0,56,0, - 0,56,0,0,112,0,0,112,0,0,224,0,0,224,0,1, - 192,0,1,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,15,0,0,28,0,0,18,29,87,22,2,0,3,248,0, - 15,254,0,28,31,0,56,15,0,48,7,128,112,7,128,112, - 7,128,112,7,128,112,7,0,120,15,0,62,30,0,31,188, - 0,15,240,0,3,252,0,7,254,0,30,63,0,60,15,128, - 120,7,192,112,7,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,128,120,7,128,124,7,0,62,14,0,31,252, - 0,7,224,0,19,30,90,23,2,255,1,248,0,7,254,0, - 14,31,0,28,15,128,56,7,128,120,3,192,112,3,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,248,1, - 224,120,3,224,124,7,224,62,13,224,31,249,224,7,225,192, - 0,3,192,0,3,192,0,7,128,0,7,128,0,15,0,0, - 30,0,0,60,0,0,120,0,0,240,0,3,224,0,31,128, - 0,56,0,0,6,23,23,11,3,255,56,124,252,252,248,112, - 0,0,0,0,0,0,0,0,0,0,0,56,124,252,252,248, - 112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 4 y=25 dx=41 dy= 0 ascent=39 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30r[8588] U8G_FONT_SECTION("u8g_font_gdr30r") = { - 0,71,68,232,239,30,9,231,23,124,32,127,245,39,245,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 2 y= 8 dx=13 dy= 0 ascent=13 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9[3248] U8G_FONT_SECTION("u8g_font_gdr9") = { - 0,23,21,248,251,9,1,255,4,54,32,255,252,13,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,3,0,0,2,11,11,4,1,252,128,128,0, - 128,128,128,192,192,192,192,192,5,9,9,7,1,0,32,56, - 232,160,160,160,232,112,32,6,9,9,7,1,0,56,68,72, - 64,240,64,64,68,252,3,5,5,7,2,2,160,224,160,160, - 224,7,9,9,7,0,0,206,100,40,56,16,124,16,16,56, - 1,15,15,3,1,253,128,128,128,128,128,128,128,0,128,128, - 128,128,128,128,128,6,11,11,8,1,0,112,144,128,224,184, - 132,68,56,136,136,112,4,2,2,6,1,8,144,144,9,9, - 18,11,1,0,62,0,93,0,166,128,160,128,160,128,160,128, - 182,128,93,0,62,0,4,5,5,4,0,4,96,160,224,224, - 240,5,7,7,7,1,0,104,72,144,176,144,72,104,6,4, - 4,7,1,1,252,4,4,4,5,1,1,5,0,3,248,5, - 6,6,5,0,5,112,136,184,168,168,112,5,1,1,7,1, - 8,248,3,4,4,5,1,5,96,160,160,192,6,7,7,6, - 0,1,16,16,124,16,16,0,252,4,6,6,5,0,4,48, - 208,32,32,80,240,4,6,6,5,0,4,48,80,32,16,144, - 96,3,3,3,5,2,8,96,128,128,8,11,11,8,0,252, - 198,66,66,66,66,70,123,64,64,64,96,8,11,11,9,0, - 254,127,138,138,202,122,10,10,10,10,10,31,1,2,2,2, - 1,4,128,128,2,3,3,3,1,253,128,64,192,3,5,5, - 5,1,5,192,64,64,64,224,3,5,5,4,0,4,96,160, - 160,192,224,6,7,7,7,1,0,160,80,72,44,72,80,160, - 8,9,9,9,1,0,194,68,68,72,178,22,42,79,199,7, - 9,9,9,1,0,194,68,72,72,182,26,36,74,206,9,9, - 18,9,0,0,49,0,82,0,52,0,20,0,233,0,11,0, - 21,0,39,128,99,128,5,11,11,7,1,252,32,32,32,32, - 32,64,128,128,136,136,112,9,12,24,9,0,0,48,0,12, - 0,0,0,8,0,8,0,20,0,20,0,36,0,62,0,34, - 0,67,0,227,128,9,12,24,9,0,0,6,0,24,0,0, - 0,8,0,8,0,20,0,20,0,36,0,62,0,34,0,67, - 0,227,128,9,12,24,9,0,0,28,0,34,0,0,0,8, - 0,8,0,20,0,20,0,36,0,62,0,34,0,67,0,227, - 128,9,12,24,9,0,0,58,0,60,0,0,0,8,0,8, - 0,20,0,20,0,36,0,62,0,34,0,67,0,227,128,9, - 11,22,9,0,0,36,0,36,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,9,13,26,9,0, - 0,12,0,20,0,20,0,8,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,11,9,18,12,0, - 0,31,224,10,32,18,0,31,192,18,0,34,0,34,0,34, - 32,231,224,6,12,12,8,1,253,60,68,128,128,128,128,128, - 68,120,32,16,48,6,12,12,7,1,0,224,16,0,252,68, - 64,120,64,64,64,68,252,6,12,12,7,1,0,24,96,0, - 252,68,64,120,64,64,64,68,252,6,12,12,7,1,0,112, - 136,0,252,68,64,120,64,64,64,68,252,6,11,11,7,1, - 0,144,144,124,68,64,120,64,64,64,68,252,4,12,12,4, - 0,0,192,32,0,112,32,32,32,32,32,32,32,112,4,12, - 12,4,1,0,112,128,0,224,64,64,64,64,64,64,64,224, - 4,12,12,4,0,0,96,144,0,112,32,32,32,32,32,32, - 32,112,4,11,11,4,0,0,144,144,96,32,32,32,32,32, - 32,32,112,8,9,9,9,0,0,252,66,65,65,241,65,65, - 66,252,10,12,24,10,0,0,26,0,60,0,0,0,193,192, - 96,128,80,128,88,128,76,128,70,128,67,128,65,128,224,128, - 7,12,12,9,1,0,96,24,0,56,68,130,130,130,130,130, - 68,56,7,12,12,9,1,0,12,48,0,56,68,130,130,130, - 130,130,68,56,7,12,12,9,1,0,56,68,0,56,68,130, - 130,130,130,130,68,56,7,12,12,9,1,0,52,120,0,56, - 68,130,130,130,130,130,68,56,7,11,11,9,1,0,72,72, - 56,68,130,130,130,130,130,68,56,4,4,4,6,1,2,144, - 96,96,144,7,9,9,9,1,0,58,68,138,138,146,162,194, - 68,184,9,12,24,10,0,0,56,0,4,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,98,0,60,0, - 9,12,24,10,0,0,6,0,24,0,0,0,227,128,65,0, - 65,0,65,0,65,0,65,0,65,0,98,0,60,0,9,12, - 24,10,0,0,28,0,34,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,11,22,10, - 0,0,34,0,36,0,195,128,65,0,65,0,65,0,65,0, - 65,0,65,0,98,0,60,0,9,12,24,9,0,0,6,0, - 24,0,0,0,227,128,98,0,50,0,20,0,28,0,8,0, - 8,0,8,0,28,0,7,9,9,8,0,0,224,124,70,66, - 66,66,100,92,224,8,11,11,8,0,0,28,34,66,66,68, - 72,76,67,65,73,206,6,11,11,7,1,0,192,96,32,0, - 56,72,136,56,200,136,252,6,11,11,7,1,0,24,16,32, - 0,56,72,136,56,200,136,252,6,11,11,7,1,0,32,80, - 136,0,56,72,136,56,200,136,252,6,10,10,7,1,0,104, - 176,0,56,72,136,56,200,136,252,6,10,10,7,1,0,144, - 144,0,56,72,136,56,200,136,252,6,11,11,7,1,0,48, - 80,80,48,56,72,136,56,200,136,252,9,7,14,10,1,0, - 63,0,76,128,136,128,63,128,200,0,136,128,247,0,5,10, - 10,7,1,253,120,136,128,128,128,200,112,32,16,48,5,11, - 11,7,1,0,64,32,32,16,112,72,136,248,128,200,112,5, - 11,11,7,1,0,24,16,32,0,112,72,136,248,128,200,112, - 5,11,11,7,1,0,32,80,136,0,112,72,136,248,128,200, - 112,5,10,10,7,1,0,144,152,0,112,72,136,248,128,200, - 112,4,11,11,4,0,0,128,64,32,0,96,32,32,32,32, - 32,112,3,11,11,4,1,0,32,64,128,0,192,64,64,64, - 64,64,224,4,11,11,4,0,0,96,80,144,0,96,32,32, - 32,32,32,112,4,10,10,4,0,0,144,144,0,96,32,32, - 32,32,32,112,5,11,11,7,1,0,200,48,80,16,120,136, - 136,136,136,144,112,8,10,10,8,0,0,18,108,0,78,242, - 66,66,66,66,231,6,11,11,8,1,0,64,32,16,0,56, - 204,132,132,132,200,112,6,11,11,8,1,0,8,16,32,0, - 56,204,132,132,132,200,112,6,11,11,8,1,0,48,80,136, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,104,152, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,136,136, - 0,56,204,132,132,132,200,112,6,4,4,6,0,2,16,124, - 128,16,6,7,7,8,1,0,60,204,148,164,164,200,240,8, - 11,11,8,0,0,32,16,8,0,198,66,66,66,66,70,59, - 8,11,11,8,0,0,4,8,16,0,198,66,66,66,66,70, - 59,8,11,11,8,0,0,24,24,36,0,198,66,66,66,66, - 70,59,8,10,10,8,0,0,36,68,0,198,66,66,66,66, - 70,59,7,15,15,7,0,252,4,8,16,0,230,68,36,36, - 40,24,16,16,16,32,192,7,15,15,8,0,252,192,64,64, - 64,76,114,66,66,66,68,120,64,64,64,224,7,14,14,7, - 0,252,68,68,0,230,68,36,36,40,24,16,16,16,32,192 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 7 h=14 x= 1 y= 5 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9n[248] U8G_FONT_SECTION("u8g_font_gdr9n") = { - 0,23,21,248,251,9,0,0,0,0,42,58,0,12,254,9, - 0,5,6,6,7,1,5,32,168,112,112,168,32,5,5,5, - 6,1,2,32,32,248,32,32,2,4,4,3,1,254,64,192, - 64,128,5,1,1,5,0,3,248,1,2,2,3,1,0,128, - 128,7,14,14,7,0,254,6,4,4,8,8,8,16,16,32, - 32,32,64,64,192,5,9,9,7,1,0,112,144,136,136,136, - 136,136,80,112,5,9,9,7,1,0,32,224,32,32,32,32, - 32,32,248,5,9,9,7,1,0,56,72,136,8,16,32,64, - 136,248,6,9,9,7,0,0,48,72,136,16,120,4,4,132, - 120,6,9,9,7,0,0,8,24,40,40,72,72,252,8,60, - 5,9,9,7,1,0,120,128,128,240,136,8,8,136,112,5, - 9,9,7,1,0,24,96,64,176,200,136,136,136,112,5,9, - 9,7,1,0,248,136,8,16,16,32,32,96,64,5,9,9, - 7,1,0,112,200,136,208,112,136,136,136,112,5,9,9,7, - 1,0,112,152,136,136,136,120,16,16,224,1,7,7,3,1, - 0,128,128,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 1 y= 8 dx=13 dy= 0 ascent=12 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9r[1553] U8G_FONT_SECTION("u8g_font_gdr9r") = { - 0,23,21,248,251,9,1,255,4,54,32,127,252,12,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08[2677] U8G_FONT_SECTION("u8g_font_helvB08") = { - 0,12,19,255,251,8,1,182,3,122,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,3,0,1,2,8,8, - 4,1,254,192,0,64,64,192,192,192,192,5,8,8,6,0, - 255,16,112,216,160,160,216,112,64,5,8,8,6,0,0,56, - 104,96,240,96,96,104,216,6,6,6,6,0,1,132,120,72, - 72,120,132,6,8,8,7,0,0,132,132,204,72,252,48,252, - 48,1,10,10,3,1,254,128,128,128,128,0,0,128,128,128, - 128,5,10,10,6,0,254,112,200,224,112,152,200,112,56,152, - 112,3,1,1,3,0,7,160,8,8,8,10,1,0,60,66, - 153,165,161,157,66,60,3,5,5,5,1,3,224,32,160,0, - 224,6,3,3,7,0,1,108,216,108,5,3,3,7,1,2, - 248,8,8,4,1,1,5,0,3,240,8,8,8,10,1,0, - 60,66,189,165,185,165,66,60,3,1,1,3,0,7,224,3, - 3,3,4,0,5,96,160,192,6,7,7,6,0,0,48,48, - 252,48,48,0,252,3,4,4,3,0,4,96,160,64,224,3, - 4,4,3,0,4,224,64,32,192,2,2,2,3,0,7,64, - 128,5,8,8,6,0,254,216,216,216,216,216,232,192,192,6, - 10,10,6,0,254,124,232,232,232,104,40,40,40,40,40,2, - 1,1,3,0,3,192,2,2,2,3,0,254,64,192,2,4, - 4,3,0,4,64,192,64,64,3,5,5,5,1,3,224,160, - 224,0,224,6,3,3,7,0,1,216,108,216,8,8,8,9, - 0,0,68,196,72,72,18,38,47,66,7,8,8,9,0,0, - 68,196,72,72,22,42,36,78,8,8,8,9,0,0,228,68, - 40,200,18,38,47,66,5,8,8,6,0,254,48,0,48,48, - 96,192,216,112,7,11,11,8,0,0,32,16,0,56,56,108, - 108,108,254,198,198,7,11,11,8,0,0,8,16,0,56,56, - 108,108,108,254,198,198,7,11,11,8,0,0,16,40,0,56, - 56,108,108,108,254,198,198,7,11,11,8,0,0,20,40,0, - 56,56,108,108,108,254,198,198,7,10,10,8,0,0,40,0, - 56,56,108,108,108,254,198,198,7,11,11,8,0,0,16,40, - 16,56,56,108,108,108,254,198,198,9,8,16,10,0,0,63, - 128,60,0,108,0,111,128,108,0,252,0,204,0,207,128,7, - 10,10,8,0,254,60,102,194,192,192,194,102,60,16,48,5, - 11,11,6,0,0,64,32,0,248,192,192,248,192,192,192,248, - 5,11,11,6,0,0,16,32,0,248,192,192,248,192,192,192, - 248,5,11,11,6,0,0,32,80,0,248,192,192,248,192,192, - 192,248,5,10,10,6,0,0,80,0,248,192,192,248,192,192, - 192,248,2,11,11,3,0,0,128,64,0,192,192,192,192,192, - 192,192,192,2,11,11,3,0,0,64,128,0,192,192,192,192, - 192,192,192,192,3,11,11,3,255,0,64,160,0,96,96,96, - 96,96,96,96,96,4,10,10,3,255,0,144,0,96,96,96, - 96,96,96,96,96,7,8,8,7,255,0,120,108,102,246,102, - 102,108,120,7,11,11,8,0,0,20,40,0,198,230,230,214, - 214,206,206,198,7,11,11,8,0,0,16,8,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,8,16,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,16,40,0,56, - 108,198,198,198,198,108,56,7,11,11,8,0,0,20,40,0, - 56,108,198,198,198,198,108,56,7,10,10,8,0,0,40,0, - 56,108,198,198,198,198,108,56,6,5,5,6,0,1,204,120, - 48,120,204,7,8,8,8,0,0,58,108,206,214,214,230,108, - 184,6,11,11,7,0,0,32,16,0,204,204,204,204,204,204, - 204,120,6,11,11,7,0,0,8,16,0,204,204,204,204,204, - 204,204,120,6,11,11,7,0,0,32,80,0,204,204,204,204, - 204,204,204,120,6,10,10,7,0,0,72,0,204,204,204,204, - 204,204,204,120,8,11,11,9,0,0,4,8,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,192,248,204,204,204, - 248,192,192,5,8,8,6,0,0,112,200,200,208,200,200,200, - 208,6,9,9,6,0,0,32,16,0,112,152,120,216,216,108, - 6,9,9,6,0,0,16,32,0,112,152,120,216,216,108,6, - 9,9,6,0,0,32,80,0,112,152,120,216,216,108,6,9, - 9,6,0,0,40,80,0,112,152,120,216,216,108,6,8,8, - 6,0,0,80,0,112,152,120,216,216,108,6,9,9,6,0, - 0,32,80,32,112,152,120,216,216,108,8,6,6,9,0,0, - 126,155,127,216,219,110,4,8,8,5,0,254,112,208,192,192, - 208,112,32,96,5,9,9,6,0,0,64,32,0,112,216,248, - 192,216,112,5,9,9,6,0,0,16,32,0,112,216,248,192, - 216,112,5,9,9,6,0,0,32,80,0,112,216,248,192,216, - 112,5,8,8,6,0,0,80,0,112,216,248,192,216,112,2, - 9,9,3,0,0,128,64,0,192,192,192,192,192,192,2,9, - 9,3,0,0,64,128,0,192,192,192,192,192,192,3,9,9, - 3,0,0,64,160,0,192,192,192,192,192,192,3,8,8,3, - 0,0,160,0,192,192,192,192,192,192,5,9,9,6,0,0, - 80,96,160,112,216,216,216,216,112,5,9,9,6,0,0,80, - 160,0,176,216,216,216,216,216,5,9,9,6,0,0,64,32, - 0,112,216,216,216,216,112,5,9,9,6,0,0,16,32,0, - 112,216,216,216,216,112,5,9,9,6,0,0,32,80,0,112, - 216,216,216,216,112,5,9,9,6,0,0,80,160,0,112,216, - 216,216,216,112,5,8,8,6,0,0,80,0,112,216,216,216, - 216,112,6,5,5,6,0,1,48,0,252,0,48,7,6,6, - 6,255,0,58,108,124,108,108,184,5,9,9,6,0,0,64, - 32,0,216,216,216,216,216,104,5,9,9,6,0,0,16,32, - 0,216,216,216,216,216,104,5,9,9,6,0,0,32,80,0, - 216,216,216,216,216,104,5,8,8,6,0,0,80,0,216,216, - 216,216,216,104,5,11,11,6,0,254,16,32,0,216,216,216, - 216,120,48,48,96,5,10,10,6,0,254,192,192,240,216,200, - 200,216,240,192,192,5,10,10,6,0,254,80,0,216,216,216, - 216,120,48,48,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 8 - Calculated Max Values w= 6 h= 8 x= 1 y= 5 dx= 6 dy= 0 ascent= 8 len= 8 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08n[228] U8G_FONT_SECTION("u8g_font_helvB08n") = { - 0,12,19,255,251,8,0,0,0,0,42,58,0,8,254,8, - 0,3,3,3,4,0,5,160,64,160,6,5,5,6,0,1, - 48,48,252,48,48,2,4,4,3,0,254,192,192,64,128,4, - 1,1,5,0,3,240,2,2,2,3,0,0,192,192,4,8, - 8,4,0,0,16,16,32,32,64,64,128,128,5,8,8,6, - 0,0,112,216,216,216,216,216,216,112,3,8,8,6,1,0, - 96,224,96,96,96,96,96,96,5,8,8,6,0,0,112,216, - 24,24,48,96,192,248,5,8,8,6,0,0,112,216,24,48, - 24,24,216,112,6,8,8,6,0,0,8,24,56,88,152,252, - 24,24,5,8,8,6,0,0,248,192,192,240,24,152,216,112, - 5,8,8,6,0,0,112,216,192,240,216,216,216,112,5,8, - 8,6,0,0,248,24,24,48,48,96,96,96,5,8,8,6, - 0,0,112,216,216,112,216,216,216,112,5,8,8,6,0,0, - 112,216,216,216,120,24,216,112,2,6,6,3,0,0,192,192, - 0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08r[1287] U8G_FONT_SECTION("u8g_font_helvB08r") = { - 0,12,19,255,251,8,1,182,3,122,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=15 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10[3692] U8G_FONT_SECTION("u8g_font_helvB10") = { - 0,17,23,255,250,11,2,27,4,205,32,255,253,14,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,2,11, - 11,4,1,253,192,192,0,64,64,192,192,192,192,192,192,7, - 10,10,8,0,255,4,60,110,200,208,208,230,102,124,64,8, - 11,11,8,0,0,60,102,102,96,252,48,48,48,96,251,222, - 7,7,7,8,0,2,130,124,108,108,108,124,130,8,11,11, - 9,0,0,195,195,195,102,102,60,126,24,126,24,24,1,14, - 14,4,2,253,128,128,128,128,128,128,0,0,128,128,128,128, - 128,128,6,14,14,8,1,253,120,204,204,224,120,220,204,204, - 236,120,28,204,204,120,5,2,2,5,0,9,216,216,10,11, - 22,12,1,0,30,0,97,128,76,128,210,192,144,64,144,64, - 144,64,146,64,76,128,97,128,30,0,5,7,7,6,0,4, - 112,144,112,208,248,0,248,7,5,5,9,1,2,54,108,216, - 108,54,7,4,4,9,1,2,254,254,2,2,3,1,1,4, - 0,4,224,10,11,22,12,1,0,30,0,97,128,92,128,146, - 64,146,64,156,64,146,64,146,64,82,128,97,128,30,0,5, - 1,1,5,0,9,248,4,4,4,6,1,7,96,144,144,96, - 8,9,9,9,0,0,24,24,24,255,24,24,24,0,255,4, - 6,6,5,0,5,96,176,48,96,192,240,4,6,6,5,0, - 5,96,176,96,48,176,96,3,2,2,5,1,9,96,192,7, - 11,11,9,1,253,198,198,198,198,198,198,238,246,192,192,192, - 8,14,14,8,0,253,63,122,250,250,250,122,58,10,10,10, - 10,10,10,10,2,2,2,4,1,3,192,192,5,3,3,5, - 0,253,24,216,112,3,6,6,4,0,5,96,224,96,96,96, - 96,5,7,7,6,0,4,112,216,216,216,112,0,248,7,5, - 5,9,1,2,216,108,54,108,216,12,11,22,12,0,0,97, - 128,225,128,99,0,99,0,102,0,102,32,6,96,12,224,13, - 96,25,240,24,96,11,11,22,12,0,0,97,128,225,128,99, - 0,99,0,102,0,102,192,7,96,12,96,12,192,25,128,25, - 224,12,11,22,12,0,0,97,128,177,128,99,0,51,0,182, - 0,102,32,6,96,12,224,13,96,25,240,24,96,7,11,11, - 9,1,253,24,24,0,24,24,48,96,192,198,198,124,10,14, - 28,10,0,0,24,0,12,0,0,0,12,0,12,0,30,0, - 18,0,51,0,51,0,97,128,127,128,97,128,192,192,192,192, - 10,14,28,10,0,0,6,0,12,0,0,0,12,0,12,0, - 30,0,18,0,51,0,51,0,97,128,127,128,97,128,192,192, - 192,192,10,14,28,10,0,0,14,0,27,0,0,0,12,0, - 12,0,30,0,18,0,51,0,51,0,97,128,127,128,97,128, - 192,192,192,192,10,14,28,10,0,0,13,0,22,0,0,0, - 12,0,12,0,30,0,18,0,51,0,51,0,97,128,127,128, - 97,128,192,192,192,192,10,14,28,10,0,0,51,0,51,0, - 0,0,12,0,12,0,30,0,18,0,51,0,51,0,97,128, - 127,128,97,128,192,192,192,192,10,14,28,10,0,0,12,0, - 18,0,12,0,12,0,12,0,30,0,18,0,51,0,51,0, - 97,128,127,128,97,128,192,192,192,192,14,11,22,15,0,0, - 15,252,15,0,27,0,19,0,51,0,51,248,99,0,127,0, - 99,0,195,0,195,252,9,14,28,11,1,253,31,0,123,128, - 96,128,192,0,192,0,192,0,192,0,192,0,96,128,123,128, - 31,0,6,0,54,0,28,0,7,14,14,9,1,0,48,24, - 0,254,192,192,192,192,254,192,192,192,192,254,7,14,14,9, - 1,0,12,24,0,254,192,192,192,192,254,192,192,192,192,254, - 7,14,14,9,1,0,28,54,0,254,192,192,192,192,254,192, - 192,192,192,254,7,14,14,9,1,0,108,108,0,254,192,192, - 192,192,254,192,192,192,192,254,3,14,14,4,0,0,192,96, - 0,96,96,96,96,96,96,96,96,96,96,96,3,14,14,4, - 1,0,96,192,0,192,192,192,192,192,192,192,192,192,192,192, - 5,14,14,4,0,0,112,216,0,96,96,96,96,96,96,96, - 96,96,96,96,5,14,14,4,0,0,216,216,0,96,96,96, - 96,96,96,96,96,96,96,96,10,11,22,11,0,0,126,0, - 99,128,97,128,96,192,96,192,248,192,96,192,96,192,97,128, - 99,128,126,0,9,14,28,11,1,0,26,0,44,0,0,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,14,28,12,1,0,24,0,12,0, - 0,0,30,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,14,28,12,1,0,6,0, - 12,0,0,0,30,0,115,128,97,128,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,10,14,28,12,1,0, - 14,0,27,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,97,128,115,128,30,0,10,14,28,12, - 1,0,13,0,22,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,14, - 28,12,1,0,51,0,51,0,0,0,30,0,115,128,97,128, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 8,7,7,9,0,1,195,102,60,24,60,102,195,12,11,22, - 12,0,0,15,48,57,224,48,192,97,224,99,96,102,96,108, - 96,120,96,48,192,121,192,207,0,9,14,28,11,1,0,24, - 0,12,0,0,0,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,14,28,11,1, - 0,6,0,12,0,0,0,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,99,0,62,0,9,14,28, - 11,1,0,28,0,54,0,0,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,99,0,62,0,9, - 14,28,11,1,0,99,0,99,0,0,0,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,10,0,0,6,0,12,0,0,0,192,192,97, - 128,97,128,51,0,51,0,30,0,30,0,12,0,12,0,12, - 0,12,0,8,11,11,10,1,0,192,192,254,199,195,195,199, - 254,192,192,192,6,11,11,8,1,0,120,204,204,204,216,216, - 204,204,204,204,216,7,11,11,8,1,0,48,24,0,120,204, - 12,124,204,204,220,118,7,11,11,8,1,0,24,48,0,120, - 204,12,124,204,204,220,118,7,11,11,8,1,0,56,108,0, - 120,204,12,124,204,204,220,118,7,11,11,8,1,0,52,88, - 0,120,204,12,124,204,204,220,118,7,11,11,8,1,0,108, - 108,0,120,204,12,124,204,204,220,118,7,11,11,8,1,0, - 48,72,48,120,204,12,124,204,204,220,118,11,8,16,13,1, - 0,123,192,206,96,12,96,127,224,204,0,204,0,222,96,119, - 192,7,11,11,9,1,253,60,102,198,192,192,198,102,60,24, - 88,112,6,11,11,8,1,0,96,48,0,120,204,204,252,192, - 192,236,120,6,11,11,8,1,0,24,48,0,120,204,204,252, - 192,192,236,120,6,11,11,8,1,0,56,108,0,120,204,204, - 252,192,192,236,120,6,11,11,8,1,0,108,108,0,120,204, - 204,252,192,192,236,120,3,11,11,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,3,11,11,4,1,0,96,192,0, - 192,192,192,192,192,192,192,192,5,11,11,4,0,0,112,216, - 0,96,96,96,96,96,96,96,96,5,11,11,4,0,0,216, - 216,0,96,96,96,96,96,96,96,96,7,11,11,9,1,0, - 108,56,72,60,108,198,198,198,198,108,56,7,11,11,9,1, - 0,52,88,0,220,238,198,198,198,198,198,198,7,11,11,9, - 1,0,48,24,0,56,108,198,198,198,198,108,56,7,11,11, - 9,1,0,24,48,0,56,108,198,198,198,198,108,56,7,11, - 11,9,1,0,56,108,0,56,108,198,198,198,198,108,56,7, - 11,11,9,1,0,52,88,0,56,108,198,198,198,198,108,56, - 7,11,11,9,1,0,108,108,0,56,108,198,198,198,198,108, - 56,8,7,7,9,0,1,24,24,0,255,0,24,24,7,8, - 8,9,1,0,58,108,206,214,214,230,108,184,7,11,11,9, - 1,0,48,24,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,12,24,0,198,198,198,198,198,198,238,118,7,11, - 11,9,1,0,56,108,0,198,198,198,198,198,198,238,118,7, - 11,11,9,1,0,108,108,0,198,198,198,198,198,198,238,118, - 8,14,14,8,0,253,12,24,0,195,195,102,102,36,60,24, - 24,24,48,112,7,14,14,9,1,253,192,192,192,216,236,198, - 198,198,198,236,216,192,192,192,8,14,14,8,0,253,54,54, - 0,195,195,102,102,36,60,24,24,24,48,112}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=11 x= 2 y= 7 dx= 9 dy= 0 ascent=11 len=11 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10n[265] U8G_FONT_SECTION("u8g_font_helvB10n") = { - 0,17,23,255,250,11,0,0,0,0,42,58,0,11,255,11, - 0,5,4,4,6,0,7,32,248,112,216,8,7,7,9,0, - 1,24,24,24,255,24,24,24,3,3,3,4,0,255,96,96, - 192,3,1,1,4,0,4,224,2,2,2,4,1,0,192,192, - 4,11,11,4,0,0,16,16,48,32,32,96,64,64,192,128, - 128,7,11,11,8,0,0,56,108,198,198,198,198,198,198,198, - 108,56,4,11,11,8,1,0,48,240,48,48,48,48,48,48, - 48,48,48,7,11,11,8,0,0,124,198,198,6,14,12,24, - 48,96,192,254,7,11,11,8,0,0,124,198,198,6,6,60, - 6,6,198,198,124,8,11,11,8,0,0,6,14,30,54,102, - 198,198,255,6,6,6,7,11,11,8,0,0,126,96,96,192, - 252,14,6,6,198,204,120,7,11,11,8,0,0,60,102,102, - 192,220,230,198,198,198,198,124,7,11,11,8,0,0,254,6, - 12,12,24,24,48,48,96,96,96,7,11,11,8,0,0,124, - 198,198,198,198,124,198,198,198,198,124,7,11,11,8,0,0, - 124,198,198,198,198,198,126,6,198,204,120,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10r[1720] U8G_FONT_SECTION("u8g_font_helvB10r") = { - 0,17,23,255,250,11,2,27,4,205,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12[4077] U8G_FONT_SECTION("u8g_font_helvB12") = { - 0,20,27,254,249,12,2,74,5,106,32,255,252,16,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,1,253,192,192,0,64,64,64,192,192,192,192, - 192,192,8,11,11,9,0,255,4,60,126,239,200,216,208,247, - 126,60,32,8,12,12,9,0,0,28,62,99,99,96,48,124, - 48,48,32,127,255,7,7,7,9,1,2,186,124,198,198,198, - 124,186,8,12,12,9,0,0,195,195,102,102,60,24,126,24, - 126,24,24,24,1,16,16,5,2,252,128,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,128,8,15,15,9,0,253, - 60,126,102,96,120,126,199,195,243,126,30,6,102,126,60,5, - 2,2,6,0,10,216,216,12,12,24,12,0,0,15,0,57, - 192,96,96,79,32,217,176,144,16,144,16,217,176,79,32,96, - 32,57,192,15,0,5,7,7,6,1,5,96,144,112,144,120, - 0,248,8,6,6,9,0,2,51,102,204,204,102,51,8,5, - 5,10,0,2,255,255,3,3,3,4,2,2,5,0,3,240, - 240,12,12,24,12,0,0,15,0,57,192,96,96,95,32,217, - 176,153,144,158,16,219,48,91,32,96,96,57,192,15,0,5, - 1,1,6,0,10,248,4,5,5,7,1,7,96,144,144,144, - 96,8,11,11,10,1,0,24,24,24,255,255,24,24,24,0, - 255,255,5,7,7,6,0,5,112,216,216,48,96,248,248,5, - 7,7,6,0,5,112,216,24,48,24,216,112,3,3,3,6, - 1,10,32,96,128,8,12,12,10,1,253,195,195,195,195,195, - 195,199,255,251,192,192,192,8,15,15,9,0,253,127,242,242, - 242,242,242,114,18,18,18,18,18,18,18,18,2,2,2,5, - 1,4,192,192,5,4,4,6,0,252,32,48,152,112,4,7, - 7,6,1,5,48,240,240,48,48,48,48,5,7,7,6,0, - 5,112,216,136,216,112,0,248,8,6,6,9,1,2,204,102, - 51,51,102,204,13,12,24,14,1,0,48,192,240,128,241,128, - 49,0,51,48,50,112,54,240,4,176,13,176,9,248,24,48, - 16,48,12,12,24,14,0,0,48,128,241,128,241,0,51,0, - 50,0,54,224,53,176,13,176,8,96,24,192,17,240,49,240, - 13,12,24,14,0,0,112,64,216,192,24,128,49,128,25,48, - 219,112,114,240,6,176,5,176,13,248,8,48,24,48,7,12, - 12,10,1,253,48,48,0,48,48,96,224,192,198,198,254,124, - 11,16,32,12,0,0,16,0,24,0,4,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,16,32,12,0,0,2,0,6,0, - 8,0,0,0,14,0,14,0,31,0,27,0,59,128,49,128, - 113,192,96,192,127,192,255,224,192,96,192,96,11,16,32,12, - 0,0,4,0,14,0,17,0,0,0,14,0,14,0,31,0, - 27,0,59,128,49,128,113,192,96,192,127,192,255,224,192,96, - 192,96,11,15,30,12,0,0,14,128,23,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,15,30,12,0,0,49,128,49,128, - 0,0,14,0,14,0,31,0,27,0,59,128,49,128,113,192, - 96,192,127,192,255,224,192,96,192,96,11,16,32,12,0,0, - 12,0,18,0,18,0,12,0,14,0,14,0,31,0,27,0, - 59,128,49,128,113,192,96,192,127,192,255,224,192,96,192,96, - 14,12,24,15,0,0,31,252,31,252,27,0,51,0,51,0, - 51,248,99,248,127,0,127,0,195,0,195,252,195,252,10,16, - 32,12,1,252,31,0,63,128,113,192,96,192,224,0,192,0, - 192,0,224,0,96,192,113,192,63,128,31,0,4,0,6,0, - 19,0,14,0,8,16,16,10,1,0,32,48,8,0,255,255, - 192,192,192,254,254,192,192,192,255,255,8,16,16,10,1,0, - 4,12,16,0,255,255,192,192,192,254,254,192,192,192,255,255, - 8,16,16,10,1,0,8,28,34,0,255,255,192,192,192,254, - 254,192,192,192,255,255,8,15,15,10,1,0,102,102,0,255, - 255,192,192,192,254,254,192,192,192,255,255,3,16,16,4,0, - 0,128,192,32,0,96,96,96,96,96,96,96,96,96,96,96, - 96,3,16,16,4,1,0,32,96,128,0,192,192,192,192,192, - 192,192,192,192,192,192,192,5,16,16,4,0,0,32,112,136, - 0,96,96,96,96,96,96,96,96,96,96,96,96,6,15,15, - 4,255,0,204,204,0,48,48,48,48,48,48,48,48,48,48, - 48,48,12,12,24,12,0,0,63,0,63,192,48,224,48,96, - 48,112,252,48,252,48,48,112,48,96,48,224,63,192,63,0, - 10,15,30,12,1,0,29,0,46,0,0,0,224,192,240,192, - 240,192,216,192,216,192,204,192,204,192,198,192,198,192,195,192, - 195,192,193,192,11,16,32,13,1,0,8,0,12,0,2,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,16,32,13,1,0, - 1,0,3,0,4,0,0,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 11,16,32,13,1,0,4,0,14,0,17,0,0,0,31,0, - 63,128,113,192,96,192,224,224,192,96,192,96,224,224,96,192, - 113,192,63,128,31,0,11,15,30,13,1,0,14,128,23,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,15,30,13,1,0, - 25,128,25,128,0,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,224,224,96,192,113,192,63,128,31,0,9,9, - 18,10,0,0,65,0,227,128,119,0,62,0,28,0,62,0, - 119,0,227,128,65,0,11,12,24,13,1,0,31,32,63,192, - 112,192,97,192,227,96,198,96,204,96,216,224,112,192,97,192, - 127,128,159,0,10,16,32,12,1,0,16,0,24,0,4,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,12,1,0, - 2,0,6,0,8,0,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,16,32,12,1,0,4,0,14,0,17,0,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,15,30,12,1,0,51,0,51,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,192,192,225,192,97,128,51,0, - 51,0,30,0,30,0,12,0,12,0,12,0,12,0,12,0, - 9,12,24,11,1,0,192,0,254,0,255,0,195,128,193,128, - 193,128,195,128,255,0,254,0,192,0,192,0,192,0,8,12, - 12,10,1,0,124,254,198,198,220,222,195,195,195,195,222,220, - 8,13,13,9,1,0,32,48,8,0,124,254,198,14,126,230, - 198,254,119,8,13,13,9,1,0,4,12,16,0,124,254,198, - 14,126,230,198,254,119,8,13,13,9,1,0,16,56,68,0, - 124,254,198,14,126,230,198,254,119,8,12,12,9,1,0,58, - 92,0,124,254,198,14,126,230,198,254,119,8,12,12,9,1, - 0,108,108,0,124,254,198,14,126,230,198,254,119,8,13,13, - 9,1,0,24,36,36,24,124,254,198,14,126,230,198,254,119, - 13,9,18,15,1,0,125,224,255,240,198,24,15,248,127,248, - 230,0,207,56,255,240,121,224,8,13,13,9,1,252,60,126, - 231,192,192,192,231,126,60,16,24,76,56,8,13,13,10,1, - 0,32,48,8,0,60,126,195,255,255,192,231,126,60,8,13, - 13,10,1,0,4,12,16,0,60,126,195,255,255,192,231,126, - 60,8,13,13,10,1,0,8,28,34,0,60,126,195,255,255, - 192,231,126,60,8,12,12,10,1,0,54,54,0,60,126,195, - 255,255,192,231,126,60,3,13,13,4,0,0,128,192,32,0, - 96,96,96,96,96,96,96,96,96,3,13,13,4,1,0,32, - 96,128,0,192,192,192,192,192,192,192,192,192,5,13,13,4, - 0,0,32,112,136,0,96,96,96,96,96,96,96,96,96,5, - 12,12,4,0,0,216,216,0,96,96,96,96,96,96,96,96, - 96,8,12,12,10,1,0,96,124,248,28,126,231,195,195,195, - 231,126,60,8,12,12,10,1,0,58,92,0,222,255,227,195, - 195,195,195,195,195,8,13,13,10,1,0,32,48,8,0,60, - 126,231,195,195,195,231,126,60,8,13,13,10,1,0,8,24, - 32,0,60,126,231,195,195,195,231,126,60,8,13,13,10,1, - 0,16,56,68,0,60,126,231,195,195,195,231,126,60,8,12, - 12,10,1,0,58,92,0,60,126,231,195,195,195,231,126,60, - 8,12,12,10,1,0,108,108,0,60,126,231,195,195,195,231, - 126,60,8,8,8,10,1,0,24,24,0,255,255,0,24,24, - 8,9,9,10,1,0,61,127,231,207,219,243,231,254,188,8, - 13,13,10,1,0,32,48,8,0,195,195,195,195,195,195,199, - 255,123,8,13,13,10,1,0,8,24,32,0,195,195,195,195, - 195,195,199,255,123,8,13,13,10,1,0,16,56,68,0,195, - 195,195,195,195,195,199,255,123,8,12,12,10,1,0,108,108, - 0,195,195,195,195,195,195,199,255,123,8,17,17,9,0,252, - 4,12,16,0,195,195,99,102,54,54,60,28,24,24,24,112, - 96,8,16,16,10,1,252,192,192,192,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,16,16,9,0,252,54,54,0, - 195,195,99,102,54,54,60,28,24,24,24,112,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=12 x= 2 y= 7 dx=10 dy= 0 ascent=12 len=12 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12n[281] U8G_FONT_SECTION("u8g_font_helvB12n") = { - 0,20,27,254,249,12,0,0,0,0,42,58,0,12,253,12, - 0,5,5,5,6,0,7,32,168,112,112,136,8,8,8,10, - 1,0,24,24,24,255,255,24,24,24,2,5,5,4,1,253, - 192,192,64,64,128,4,2,2,5,0,3,240,240,2,2,2, - 4,1,0,192,192,4,12,12,5,0,0,16,16,48,32,32, - 96,64,64,192,128,128,128,8,12,12,9,0,0,60,126,231, - 195,195,195,195,195,195,231,126,60,5,12,12,9,1,0,8, - 24,248,248,24,24,24,24,24,24,24,24,8,12,12,9,0, - 0,60,126,231,195,195,7,14,28,56,112,255,255,8,12,12, - 9,0,0,60,126,231,195,7,30,30,7,195,231,126,60,8, - 12,12,9,0,0,14,30,54,54,102,102,198,255,255,6,6, - 6,8,12,12,9,0,0,63,63,48,48,124,126,71,3,3, - 231,126,60,8,12,12,9,0,0,60,126,231,192,220,254,231, - 195,195,231,126,60,8,12,12,9,0,0,255,255,6,6,12, - 12,24,24,24,48,48,48,8,12,12,9,0,0,60,126,231, - 195,102,60,126,231,195,231,126,60,8,12,12,9,0,0,60, - 126,231,195,195,231,127,59,3,231,126,60,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 2 y=10 dx=16 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12r[1914] U8G_FONT_SECTION("u8g_font_helvB12r") = { - 0,20,27,254,249,12,2,74,5,106,32,127,252,13,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=19 x= 2 y=12 dx=18 dy= 0 ascent=18 len=38 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14[5489] U8G_FONT_SECTION("u8g_font_helvB14") = { - 0,22,29,254,249,14,3,23,6,234,32,255,252,18,251,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,5,0,1,3,14,14,6,2,252, - 224,224,224,0,96,96,224,224,224,224,224,224,224,224,8,14, - 14,10,1,254,2,2,62,127,231,200,200,208,208,227,127,126, - 64,64,10,13,26,11,0,0,31,0,63,192,113,192,112,0, - 112,0,56,0,127,0,28,0,28,0,56,0,112,192,255,192, - 239,128,9,8,16,11,1,2,193,128,255,128,119,0,99,0, - 99,0,119,0,255,128,193,128,9,13,26,10,0,0,227,128, - 227,128,227,128,119,0,119,0,62,0,255,128,28,0,255,128, - 28,0,28,0,28,0,28,0,2,18,18,5,1,252,192,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,192, - 9,18,36,10,0,252,62,0,127,0,227,128,227,128,240,0, - 124,0,254,0,199,0,195,128,225,128,113,128,63,128,15,0, - 7,128,227,128,227,128,127,0,62,0,5,2,2,7,1,12, - 216,216,14,14,28,15,1,0,15,192,56,112,96,24,199,140, - 207,204,152,196,152,4,152,4,152,68,207,204,199,140,96,24, - 56,112,15,192,6,9,9,8,1,5,120,140,124,204,204,116, - 0,252,252,10,8,16,11,0,1,29,192,59,128,119,0,238, - 0,238,0,119,0,59,128,29,192,9,5,10,11,1,3,255, - 128,255,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,14,28,15,1,0,15,128,48,96,96,16,95,144, - 153,200,152,200,153,200,159,8,153,136,153,136,88,208,96,48, - 56,224,15,128,5,2,2,7,1,12,248,248,6,6,6,7, - 0,7,120,252,204,204,252,120,9,9,18,11,1,0,28,0, - 28,0,255,128,255,128,28,0,28,0,0,0,255,128,255,128, - 6,8,8,6,0,5,120,252,204,28,120,224,252,252,6,8, - 8,6,0,5,120,252,204,56,60,204,252,120,5,3,3,5, - 0,11,56,112,224,9,14,28,11,1,252,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,251,128,224, - 0,224,0,224,0,224,0,9,18,36,10,0,252,63,128,123, - 0,251,0,251,0,251,0,251,0,251,0,123,0,59,0,27, - 0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27, - 0,2,2,2,5,1,6,192,192,5,5,5,7,1,251,96, - 112,24,248,240,4,8,8,6,0,5,48,240,240,48,48,48, - 48,48,6,9,9,8,1,5,120,204,204,204,204,120,0,252, - 252,10,8,16,11,0,1,238,0,119,0,59,128,29,192,29, - 192,59,128,119,0,238,0,14,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,152,51,56,54,56,6,120,12, - 216,12,252,24,24,24,24,15,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,188,51,126,54,102,6,14,12, - 60,12,112,24,126,24,126,14,13,26,15,0,0,120,48,252, - 48,204,96,56,96,60,192,204,216,253,184,123,56,3,120,6, - 216,6,252,12,24,12,24,8,14,14,10,1,252,28,28,28, - 0,28,28,28,56,120,112,231,231,255,126,12,18,36,14,1, - 0,56,0,28,0,6,0,0,0,15,0,15,0,31,128,25, - 128,25,128,57,192,57,192,48,192,112,224,127,224,127,224,224, - 112,224,112,224,112,12,18,36,14,1,0,1,192,3,128,6, - 0,0,0,15,0,15,0,31,128,25,128,25,128,57,192,57, - 192,48,192,112,224,127,224,127,224,224,112,224,112,224,112,12, - 18,36,14,1,0,7,0,15,128,29,192,0,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,12,18,36,14,1,0,14, - 32,31,192,35,128,0,0,15,0,15,0,31,128,25,128,25, - 128,57,192,57,192,48,192,112,224,127,224,127,224,224,112,224, - 112,224,112,12,18,36,14,1,0,25,128,25,128,25,128,0, - 0,15,0,15,0,31,128,25,128,25,128,57,192,57,192,48, - 192,112,224,127,224,127,224,224,112,224,112,224,112,12,18,36, - 14,1,0,15,0,25,128,25,128,15,0,15,0,15,0,31, - 128,25,128,25,128,57,192,57,192,48,192,112,224,127,224,127, - 224,224,112,224,112,224,112,16,14,28,18,1,0,15,255,15, - 255,31,128,27,128,59,128,59,128,51,254,115,254,115,128,127, - 128,255,128,227,128,227,255,227,255,12,19,38,14,1,251,15, - 128,63,224,120,224,112,112,240,112,224,0,224,0,224,0,224, - 0,240,112,112,112,120,224,63,224,15,128,12,0,14,0,3, - 0,31,0,30,0,10,18,36,13,2,0,56,0,28,0,6, - 0,0,0,255,192,255,192,224,0,224,0,224,0,224,0,255, - 128,255,128,224,0,224,0,224,0,224,0,255,192,255,192,10, - 18,36,13,2,0,3,128,7,0,12,0,0,0,255,192,255, - 192,224,0,224,0,224,0,224,0,255,128,255,128,224,0,224, - 0,224,0,224,0,255,192,255,192,10,18,36,13,2,0,14, - 0,31,0,59,128,0,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,255, - 192,255,192,10,18,36,13,2,0,51,0,51,0,51,0,0, - 0,255,192,255,192,224,0,224,0,224,0,224,0,255,128,255, - 128,224,0,224,0,224,0,224,0,255,192,255,192,5,18,18, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,5,18,18,5,1,0,56,112,192,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,7,18,18, - 5,255,0,56,124,238,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,6,18,18,5,0,0,204,204,204,0,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,14,14,28, - 14,255,0,63,192,63,240,56,120,56,56,56,28,56,28,255, - 28,255,28,56,28,56,28,56,56,56,120,63,240,63,192,12, - 18,36,14,1,0,14,32,31,192,35,128,0,0,224,112,240, - 112,240,112,248,112,252,112,236,112,238,112,230,112,231,112,227, - 112,225,240,225,240,224,240,224,112,13,18,36,15,1,0,28, - 0,14,0,3,0,0,0,15,128,63,224,120,240,112,112,240, - 120,224,56,224,56,224,56,224,56,240,120,112,112,120,240,63, - 224,15,128,13,18,36,15,1,0,1,192,3,128,6,0,0, - 0,15,128,63,224,120,240,112,112,240,120,224,56,224,56,224, - 56,224,56,240,120,112,112,120,240,63,224,15,128,13,18,36, - 15,1,0,7,0,15,128,29,192,0,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,13,18,36,15,1,0,7,16,15, - 224,17,192,0,0,15,128,63,224,120,240,112,112,240,120,224, - 56,224,56,224,56,224,56,240,120,112,112,120,240,63,224,15, - 128,13,18,36,15,1,0,12,192,12,192,12,192,0,0,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,240,120,112,112,120,240,63,224,15,128,10,8,16,11,0, - 1,225,192,115,128,63,0,30,0,30,0,63,0,115,128,225, - 192,15,14,28,15,0,0,7,198,31,252,60,56,56,120,120, - 220,113,156,113,28,115,28,118,28,124,60,56,56,60,120,127, - 240,199,192,12,18,36,14,1,0,28,0,14,0,3,0,0, - 0,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,127,224,31,128,12,18,36, - 14,1,0,1,192,3,128,6,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,127,224,31,128,12,18,36,14,1,0,7,0,15, - 128,29,192,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,127,224,31, - 128,12,18,36,14,1,0,25,128,25,128,25,128,0,0,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,13,18,36,13,0, - 0,1,192,3,128,6,0,0,0,224,56,224,56,112,112,56, - 224,56,224,29,192,29,192,15,128,7,0,7,0,7,0,7, - 0,7,0,7,0,11,14,28,13,1,0,224,0,224,0,224, - 0,255,0,255,192,225,224,224,224,224,224,225,224,255,192,255, - 0,224,0,224,0,224,0,8,14,14,10,1,0,60,126,231, - 231,231,231,238,238,231,231,231,231,239,238,10,14,28,11,1, - 0,112,0,56,0,12,0,0,0,62,0,127,0,115,128,7, - 128,63,128,123,128,227,128,231,128,251,128,123,192,10,14,28, - 11,1,0,3,128,7,0,12,0,0,0,62,0,127,0,115, - 128,7,128,63,128,123,128,227,128,231,128,251,128,123,192,10, - 14,28,11,1,0,28,0,62,0,119,0,0,0,62,0,127, - 0,115,128,7,128,63,128,123,128,227,128,231,128,251,128,123, - 192,10,14,28,11,1,0,59,0,127,0,110,0,0,0,62, - 0,127,0,115,128,7,128,63,128,123,128,227,128,231,128,251, - 128,123,192,10,14,28,11,1,0,51,0,51,0,51,0,0, - 0,62,0,127,0,115,128,7,128,63,128,123,128,227,128,231, - 128,251,128,123,192,10,14,28,11,1,0,60,0,102,0,102, - 0,60,0,62,0,127,0,115,128,7,128,63,128,123,128,227, - 128,231,128,251,128,123,192,14,10,20,16,1,0,61,240,127, - 248,103,28,15,28,63,252,119,0,231,0,239,156,255,252,121, - 240,9,15,30,10,1,251,30,0,127,128,115,128,224,0,224, - 0,224,0,224,0,115,128,127,128,30,0,24,0,28,0,6, - 0,62,0,60,0,9,14,28,11,1,0,112,0,56,0,12, - 0,0,0,30,0,127,0,115,128,225,128,255,128,255,128,224, - 0,115,128,127,128,30,0,9,14,28,11,1,0,3,128,7, - 0,12,0,0,0,30,0,127,0,115,128,225,128,255,128,255, - 128,224,0,115,128,127,128,30,0,9,14,28,11,1,0,28, - 0,62,0,119,0,0,0,30,0,127,0,115,128,225,128,255, - 128,255,128,224,0,115,128,127,128,30,0,9,14,28,11,1, - 0,51,0,51,0,51,0,0,0,30,0,127,0,115,128,225, - 128,255,128,255,128,224,0,115,128,127,128,30,0,5,14,14, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,5,14,14,5,1,0,56,112,192,0,224,224,224,224,224, - 224,224,224,224,224,7,14,14,5,255,0,56,124,238,0,56, - 56,56,56,56,56,56,56,56,56,5,14,14,5,0,0,216, - 216,216,0,112,112,112,112,112,112,112,112,112,112,10,14,28, - 12,1,0,96,0,55,0,60,0,102,0,31,0,127,128,115, - 128,225,192,225,192,225,192,225,192,115,128,127,128,30,0,9, - 14,28,11,1,0,59,0,127,0,110,0,0,0,239,0,255, - 128,243,128,227,128,227,128,227,128,227,128,227,128,227,128,227, - 128,10,14,28,12,1,0,112,0,56,0,12,0,0,0,30, - 0,127,128,115,128,225,192,225,192,225,192,225,192,115,128,127, - 128,30,0,10,14,28,12,1,0,3,128,7,0,12,0,0, - 0,30,0,127,128,115,128,225,192,225,192,225,192,225,192,115, - 128,127,128,30,0,10,14,28,12,1,0,28,0,62,0,119, - 0,0,0,30,0,127,128,115,128,225,192,225,192,225,192,225, - 192,115,128,127,128,30,0,10,14,28,12,1,0,59,0,127, - 0,110,0,0,0,30,0,127,128,115,128,225,192,225,192,225, - 192,225,192,115,128,127,128,30,0,10,14,28,12,1,0,51, - 0,51,0,51,0,0,0,30,0,127,128,115,128,225,192,225, - 192,225,192,225,192,115,128,127,128,30,0,9,8,16,11,1, - 1,28,0,28,0,0,0,255,128,255,128,0,0,28,0,28, - 0,12,10,20,12,0,0,15,48,63,224,57,192,115,224,119, - 224,126,224,124,224,57,192,127,192,207,0,9,14,28,11,1, - 0,112,0,56,0,12,0,0,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,231,128,255,128,123,128,9,14,28, - 11,1,0,3,128,7,0,12,0,0,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 14,28,11,1,0,28,0,62,0,119,0,0,0,227,128,227, - 128,227,128,227,128,227,128,227,128,227,128,231,128,255,128,123, - 128,9,14,28,11,1,0,51,0,51,0,51,0,0,0,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,231,128,255, - 128,123,128,9,18,36,11,1,252,7,0,14,0,24,0,0, - 0,227,128,227,128,227,128,119,0,119,0,119,0,62,0,62, - 0,28,0,28,0,28,0,24,0,120,0,112,0,10,18,36, - 12,1,252,224,0,224,0,224,0,224,0,239,0,255,128,243, - 128,225,192,225,192,225,192,225,192,243,128,255,128,239,0,224, - 0,224,0,224,0,224,0,9,18,36,11,1,252,51,0,51, - 0,51,0,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,28,0,24,0,120,0,112, - 0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 13 - Calculated Max Values w= 9 h=14 x= 1 y= 8 dx=11 dy= 0 ascent=14 len=26 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =13 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14n[416] U8G_FONT_SECTION("u8g_font_helvB14n") = { - 0,22,29,254,249,13,0,0,0,0,42,58,0,14,253,13, - 0,7,6,6,9,1,8,16,214,124,56,108,68,8,8,8, - 11,1,1,24,24,24,255,255,24,24,24,3,6,6,5,1, - 253,224,224,224,96,192,128,5,3,3,6,0,4,248,248,248, - 3,3,3,5,1,0,224,224,224,5,14,14,5,0,0,24, - 24,24,56,48,48,48,112,96,96,224,192,192,192,9,13,26, - 10,0,0,28,0,127,0,119,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,119,0,127,0,28,0,6,13,13, - 10,1,0,28,60,252,252,28,28,28,28,28,28,28,28,28, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,3,128, - 7,0,31,0,62,0,120,0,112,0,224,0,255,128,255,128, - 9,13,26,10,0,0,62,0,127,0,231,0,227,0,7,0, - 30,0,31,0,7,128,3,128,227,128,231,128,127,0,62,0, - 9,13,26,10,0,0,7,0,15,0,31,0,63,0,55,0, - 119,0,103,0,231,0,255,128,255,128,7,0,7,0,7,0, - 9,13,26,10,0,0,255,0,255,0,224,0,224,0,254,0, - 255,0,231,128,3,128,3,128,227,128,231,128,255,0,126,0, - 9,13,26,10,0,0,63,0,127,128,113,128,224,0,238,0, - 255,0,243,128,225,128,225,128,225,128,243,128,127,0,62,0, - 9,13,26,10,0,0,255,128,255,128,3,128,7,0,14,0, - 14,0,28,0,28,0,56,0,56,0,112,0,112,0,112,0, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,227,128, - 127,0,62,0,119,0,227,128,227,128,227,128,127,0,62,0, - 9,13,26,10,0,0,62,0,127,0,231,128,195,128,195,128, - 195,128,231,128,127,128,59,128,3,128,199,0,255,0,126,0, - 3,10,10,6,1,0,224,224,224,0,0,0,0,224,224,224 - }; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14r[2548] U8G_FONT_SECTION("u8g_font_helvB14r") = { - 0,22,29,254,249,14,3,23,6,234,32,127,252,14,252,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=17 dx=24 dy= 0 ascent=24 len=72 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18[7527] U8G_FONT_SECTION("u8g_font_helvB18") = { - 0,28,37,254,248,19,4,35,9,107,32,255,251,24,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 6,0,1,3,19,19,7,2,251,224,224,224,0,0,96,96, - 96,224,224,224,224,224,224,224,224,224,224,224,11,18,36,14, - 1,254,1,128,1,128,31,128,63,192,123,224,115,96,227,0, - 230,0,230,0,230,0,230,0,236,0,236,224,125,224,127,192, - 63,128,24,0,24,0,13,18,36,14,1,0,31,128,63,192, - 112,224,112,224,112,0,120,0,56,0,28,0,255,192,255,192, - 28,0,28,0,28,0,56,0,56,0,127,56,255,248,241,240, - 12,12,24,14,1,3,192,48,239,112,127,224,57,192,112,224, - 112,224,112,224,112,224,57,192,127,224,239,112,192,48,13,18, - 36,14,0,0,224,56,224,56,112,112,112,112,56,224,56,224, - 29,192,29,192,127,240,127,240,7,0,127,240,127,240,7,0, - 7,0,7,0,7,0,7,0,2,24,24,7,3,251,192,192, - 192,192,192,192,192,192,192,192,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,12,24,48,14,1,251,31,128,63,192, - 121,224,112,224,120,224,60,0,30,0,127,0,247,128,227,192, - 225,224,224,224,112,112,120,112,60,112,30,224,15,192,7,128, - 3,192,113,224,112,224,121,224,63,192,31,128,7,2,2,9, - 1,16,238,238,19,19,57,19,0,0,1,240,0,15,254,0, - 30,15,0,56,3,128,112,1,192,97,240,192,227,184,224,198, - 12,96,198,0,96,198,0,96,198,0,96,198,12,96,227,184, - 224,97,240,192,112,1,192,56,3,128,30,15,0,15,254,0, - 1,240,0,8,12,12,10,1,7,124,254,198,30,126,230,198, - 255,123,0,255,255,10,8,16,13,1,3,29,192,59,128,119, - 0,238,0,238,0,119,0,59,128,29,192,12,7,14,15,1, - 4,255,240,255,240,0,48,0,48,0,48,0,48,0,48,7, - 3,3,8,0,6,254,254,254,19,19,57,19,0,0,3,248, - 0,15,254,0,28,15,0,56,3,128,115,249,192,99,28,192, - 227,12,224,195,12,96,195,24,96,195,240,96,195,48,96,195, - 24,96,227,24,96,99,12,224,112,0,192,56,1,192,30,3, - 128,15,254,0,3,248,0,7,2,2,9,1,17,254,254,8, - 7,7,9,0,11,60,102,195,195,195,102,60,11,13,26,15, - 2,0,14,0,14,0,14,0,14,0,255,224,255,224,14,0, - 14,0,14,0,14,0,0,0,255,224,255,224,6,10,10,7, - 0,8,120,252,204,12,28,120,224,192,252,252,6,10,10,7, - 0,8,120,252,204,12,56,56,12,204,252,120,6,4,4,8, - 1,15,28,56,112,224,11,19,38,15,2,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 225,224,243,224,254,224,236,224,224,0,224,0,224,0,224,0, - 224,0,11,24,48,13,1,251,15,224,63,224,124,192,124,192, - 252,192,252,192,252,192,252,192,252,192,124,192,124,192,60,192, - 28,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,3,3,3,7,2,6,224,224, - 224,6,6,6,8,1,251,112,120,28,28,252,120,4,10,10, - 7,1,8,48,48,240,240,48,48,48,48,48,48,8,12,12, - 10,1,7,60,126,231,195,195,195,231,126,60,0,255,255,10, - 8,16,13,1,3,238,0,119,0,59,128,29,192,29,192,59, - 128,119,0,238,0,17,18,54,19,1,0,48,24,0,48,24, - 0,240,48,0,240,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,134,0,49,142,0,3,30,0,3,30,0,6, - 54,0,6,102,0,12,127,128,12,127,128,24,6,0,24,6, - 0,16,18,36,19,1,0,48,24,48,24,240,48,240,48,48, - 96,48,96,48,192,48,192,49,158,49,191,3,51,3,3,6, - 7,6,30,12,56,12,48,24,63,24,63,17,18,54,19,1, - 0,120,24,0,252,24,0,204,48,0,12,48,0,56,96,0, - 56,96,0,12,192,0,204,192,0,253,134,0,121,142,0,3, - 30,0,3,30,0,6,54,0,6,102,0,12,127,128,12,127, - 128,24,6,0,24,6,0,11,19,38,15,2,251,14,0,14, - 0,14,0,0,0,0,0,14,0,14,0,14,0,14,0,28, - 0,60,0,120,0,112,0,240,224,224,224,225,224,243,192,127, - 192,63,0,16,24,48,18,1,0,14,0,7,0,3,128,1, - 192,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,24,48,18,1,0,0, - 112,0,224,1,192,3,128,0,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,16, - 24,48,18,1,0,1,192,3,224,7,112,14,56,0,0,3, - 192,3,192,7,224,7,224,14,96,14,112,14,112,28,56,28, - 56,28,56,56,28,56,28,63,252,127,254,112,14,112,14,224, - 7,224,7,224,7,16,23,46,18,1,0,7,152,15,248,12, - 240,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,23,46,18,1,0,14, - 112,14,112,0,0,0,0,3,192,3,192,7,224,7,224,14, - 96,14,112,14,112,28,56,28,56,28,56,56,28,56,28,63, - 252,127,254,112,14,112,14,224,7,224,7,224,7,16,24,48, - 18,1,0,3,192,6,96,4,32,6,96,3,192,3,192,3, - 192,7,224,7,224,14,96,14,112,14,112,28,56,28,56,28, - 56,56,28,56,28,63,252,127,254,112,14,112,14,224,7,224, - 7,224,7,22,19,57,24,1,0,3,255,248,3,255,248,7, - 112,0,7,112,0,14,112,0,14,112,0,14,112,0,28,112, - 0,28,127,240,28,127,240,56,112,0,56,112,0,63,240,0, - 127,240,0,112,112,0,112,112,0,224,112,0,224,127,252,224, - 127,252,16,24,48,18,1,251,7,240,31,252,62,62,120,15, - 112,7,240,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,240,7,112,7,120,15,62,62,31,252,7,240,3,192, - 0,224,0,224,7,224,3,192,13,24,48,16,2,0,56,0, - 28,0,14,0,7,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,13,24, - 48,16,2,0,1,192,3,128,7,0,14,0,0,0,255,240, - 255,240,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,248,255,248,13,24,48,16,2,0,7,0,15,128,29,192, - 56,224,0,0,255,240,255,240,224,0,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,248,255,248,13,23,46,16,2,0, - 56,224,56,224,0,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,6,24, - 24,7,0,0,224,112,56,28,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,6,24,24,7, - 1,0,28,56,112,224,0,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,112,112,9,24,48,7,255,0, - 28,0,62,0,119,0,227,128,0,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 7,23,23,7,0,0,238,238,0,0,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,19,19,57, - 19,255,0,31,252,0,31,255,0,28,15,128,28,3,192,28, - 1,192,28,1,224,28,0,224,28,0,224,255,192,224,255,192, - 224,28,0,224,28,0,224,28,0,224,28,1,224,28,1,192, - 28,3,192,28,15,128,31,255,0,31,252,0,15,23,46,19, - 2,0,15,48,31,240,25,224,0,0,224,14,240,14,240,14, - 248,14,248,14,252,14,238,14,238,14,231,14,227,142,227,142, - 225,206,224,206,224,238,224,126,224,62,224,62,224,30,224,14, - 17,24,72,19,1,0,14,0,0,7,0,0,3,128,0,1, - 192,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,112, - 7,0,120,15,0,62,62,0,31,252,0,7,240,0,17,24, - 72,19,1,0,0,56,0,0,112,0,0,224,0,1,192,0, - 0,0,0,7,240,0,31,252,0,62,62,0,120,15,0,112, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,7,128,112,7,0, - 120,15,0,62,62,0,31,252,0,7,240,0,17,24,72,19, - 1,0,1,192,0,3,224,0,7,112,0,14,56,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,128,224,3,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,240,7,128,112,7,0,120,15, - 0,62,62,0,31,252,0,7,240,0,17,23,69,19,1,0, - 7,152,0,15,248,0,12,240,0,0,0,0,7,240,0,31, - 252,0,62,62,0,120,15,0,112,7,0,240,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,23,69,19,1,0,14,56,0,14,56, - 0,0,0,0,0,0,0,7,240,0,31,252,0,62,62,0, - 120,15,0,112,7,0,240,7,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,240,7, - 128,112,7,0,120,15,0,62,62,0,31,252,0,7,240,0, - 12,12,24,15,1,1,64,32,224,112,112,224,57,192,31,128, - 15,0,15,0,31,128,57,192,112,224,224,112,64,32,19,19, - 57,19,0,0,3,248,96,15,254,224,31,31,192,60,3,128, - 56,7,128,120,15,192,112,29,192,112,57,192,112,113,192,112, - 225,192,113,193,192,115,129,192,119,1,192,126,3,192,60,3, - 128,60,7,128,127,31,0,239,254,0,195,248,0,15,24,48, - 19,2,0,14,0,7,0,3,128,1,192,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,19,2,0,0,112,0,224,1,192,3, - 128,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,112,28,124,124,63,248,15,224,15,24,48,19,2,0,3, - 128,7,192,14,224,28,112,0,0,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,112,28,124,124,63,248,15,224,15, - 23,46,19,2,0,28,112,28,112,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,17,1,0,0,112,0,224,1,192,3, - 128,0,0,224,14,240,30,112,28,120,60,56,56,60,120,28, - 112,30,240,14,224,15,224,7,192,7,192,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,14,19,38,17,2,0,224, - 0,224,0,224,0,224,0,255,224,255,248,224,56,224,28,224, - 28,224,28,224,28,224,56,255,248,255,240,224,0,224,0,224, - 0,224,0,224,0,11,19,38,14,2,0,30,0,127,128,243, - 128,225,192,225,192,225,192,225,192,227,128,239,0,239,128,227, - 192,225,192,224,224,224,224,224,224,224,224,225,192,239,192,239, - 128,12,19,38,14,1,0,28,0,14,0,7,0,3,128,0, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 14,1,0,1,192,3,128,7,0,14,0,0,0,31,128,63, - 192,113,224,112,224,0,224,7,224,63,224,124,224,240,224,224, - 224,225,224,243,224,127,240,62,112,12,19,38,14,1,0,7, - 0,15,128,29,192,56,224,0,0,31,128,63,192,113,224,112, - 224,0,224,7,224,63,224,124,224,240,224,224,224,225,224,243, - 224,127,240,62,112,12,19,38,14,1,0,60,192,127,192,103, - 128,0,0,0,0,31,128,63,192,113,224,112,224,0,224,7, - 224,63,224,124,224,240,224,224,224,225,224,243,224,127,240,62, - 112,12,18,36,14,1,0,57,192,57,192,0,0,0,0,31, - 128,63,192,113,224,112,224,0,224,7,224,63,224,124,224,240, - 224,224,224,225,224,243,224,127,240,62,112,12,19,38,14,1, - 0,7,0,13,128,8,128,13,128,7,0,31,128,63,192,113, - 224,112,224,0,224,7,224,63,224,124,224,240,224,224,224,225, - 224,243,224,127,240,62,112,20,14,42,22,1,0,31,143,0, - 63,255,192,113,249,224,112,240,224,0,224,112,7,224,112,63, - 255,240,124,255,240,240,224,0,224,224,0,225,240,112,243,248, - 240,127,63,224,62,15,128,11,19,38,13,1,251,31,128,63, - 192,121,224,112,224,224,0,224,0,224,0,224,0,224,0,224, - 0,112,224,121,224,63,192,31,128,30,0,7,0,7,0,63, - 0,30,0,12,19,38,14,1,0,28,0,14,0,7,0,3, - 128,0,0,15,0,63,192,121,224,112,224,224,112,224,112,255, - 240,255,240,224,0,224,0,112,112,120,240,63,224,15,128,12, - 19,38,14,1,0,3,128,7,0,14,0,28,0,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,255,240,255,240,224, - 0,224,0,112,112,120,240,63,224,15,128,12,19,38,14,1, - 0,7,0,15,128,29,192,56,224,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,255,240,255,240,224,0,224,0,112, - 112,120,240,63,224,15,128,12,18,36,14,1,0,57,192,57, - 192,0,0,0,0,15,0,63,192,121,224,112,224,224,112,224, - 112,255,240,255,240,224,0,224,0,112,112,120,240,63,224,15, - 128,6,19,19,7,0,0,224,112,56,28,0,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,6,19,19,7,1,0, - 28,56,112,224,0,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,9,19,38,7,255,0,28,0,62,0,119,0,227, - 128,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,7, - 18,18,7,0,0,238,238,0,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,12,19,38,14,1,0,112,0,29, - 192,7,0,31,0,97,128,15,192,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,11,19,38,15,2,0,60,192,127,192,103,128,0, - 0,0,0,239,128,255,192,241,192,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,12, - 19,38,14,1,0,28,0,14,0,7,0,3,128,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,15,0,12,19,38,14,1, - 0,3,128,7,0,14,0,28,0,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,121,224,63,192,15,0,12,19,38,14,1,0,14,0,31, - 0,59,128,113,192,0,0,15,0,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,12,19,38,14,1,0,60,192,127,192,103,128,0, - 0,0,0,15,0,63,192,121,224,112,224,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,121,224,63,192,15,0,12, - 18,36,14,1,0,57,192,57,192,0,0,0,0,15,0,63, - 192,121,224,112,224,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,121,224,63,192,15,0,11,12,24,15,2,1,14, - 0,14,0,14,0,0,0,0,0,255,224,255,224,0,0,0, - 0,14,0,14,0,14,0,14,14,28,14,0,0,7,140,31, - 252,60,248,56,112,112,248,113,248,115,184,119,56,126,56,124, - 56,56,112,124,240,255,224,199,128,11,19,38,15,2,0,56, - 0,28,0,14,0,7,0,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,225,224,115, - 224,126,224,28,224,11,19,38,15,2,0,3,128,7,0,14, - 0,28,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,225,224,115,224,126,224,28, - 224,11,19,38,15,2,0,14,0,31,0,59,128,113,192,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,225,224,115,224,126,224,28,224,11,18,36, - 15,2,0,57,192,57,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225, - 224,115,224,126,224,28,224,13,24,48,15,1,251,0,224,1, - 192,3,128,7,0,0,0,224,56,224,56,112,56,120,112,56, - 112,60,240,28,224,28,224,15,192,15,192,7,192,7,128,3, - 128,3,128,7,0,7,0,14,0,62,0,60,0,12,24,48, - 15,2,251,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,224,0,224,0,224,0,224, - 0,224,0,13,23,46,15,1,251,28,224,28,224,0,0,0, - 0,224,56,224,56,112,56,120,112,56,112,60,240,28,224,28, - 224,15,192,15,192,7,192,7,128,3,128,3,128,7,0,7, - 0,14,0,62,0,60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=12 h=19 x= 2 y=12 dx=15 dy= 0 ascent=19 len=36 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =19 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18n[537] U8G_FONT_SECTION("u8g_font_helvB18n") = { - 0,28,37,254,248,18,0,0,0,0,42,58,0,19,253,18, - 0,8,7,7,10,1,12,24,24,219,255,60,102,102,12,12, - 24,15,1,1,6,0,6,0,6,0,6,0,6,0,255,240, - 255,240,6,0,6,0,6,0,6,0,6,0,3,6,6,7, - 2,253,224,224,224,96,96,192,7,3,3,8,0,6,254,254, - 254,3,3,3,7,2,0,224,224,224,7,19,19,8,1,0, - 6,6,6,12,12,12,24,24,24,24,48,48,48,96,96,96, - 192,192,192,12,18,36,13,0,0,31,128,63,192,121,224,112, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,112,224,121,224,63,192,31,128,7,18,18, - 13,2,0,14,14,30,254,254,14,14,14,14,14,14,14,14, - 14,14,14,14,14,12,18,36,13,0,0,31,0,127,192,113, - 224,224,224,224,112,224,112,0,112,0,224,1,224,3,192,7, - 128,31,0,60,0,120,0,240,0,224,0,255,240,255,240,12, - 18,36,13,0,0,31,0,127,192,113,192,224,224,224,224,224, - 224,0,224,1,192,15,128,15,224,0,224,0,112,0,112,224, - 112,224,240,113,224,127,224,31,128,12,18,36,13,0,0,1, - 192,3,192,3,192,7,192,7,192,13,192,29,192,25,192,49, - 192,113,192,97,192,225,192,255,240,255,240,1,192,1,192,1, - 192,1,192,12,18,36,13,0,0,127,224,127,224,112,0,112, - 0,112,0,112,0,127,128,127,192,113,224,0,224,0,112,0, - 112,0,112,224,112,224,240,241,224,127,192,31,128,12,18,36, - 13,0,0,15,128,63,224,120,224,112,112,224,112,224,0,224, - 0,239,0,255,192,249,224,240,224,224,112,224,112,224,112,112, - 224,121,224,63,192,31,128,12,18,36,13,0,0,255,240,255, - 240,0,240,0,224,1,192,1,192,3,128,3,128,7,0,7, - 0,14,0,14,0,30,0,28,0,28,0,60,0,56,0,56, - 0,12,18,36,13,0,0,15,0,63,192,57,192,112,224,112, - 224,112,224,112,224,57,192,31,128,63,192,112,224,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,12,18,36,13,0, - 0,31,128,127,192,121,224,240,224,224,112,224,112,224,112,224, - 112,240,240,121,240,127,240,31,112,0,112,0,112,224,224,243, - 224,127,192,31,0,3,14,14,7,2,0,224,224,224,0,0, - 0,0,0,0,0,0,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18r[3453] U8G_FONT_SECTION("u8g_font_helvB18r") = { - 0,28,37,254,248,19,4,35,9,107,32,127,251,19,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=31 h=32 x= 4 y=21 dx=33 dy= 0 ascent=31 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24[11554] U8G_FONT_SECTION("u8g_font_helvB24") = { - 0,40,49,250,244,25,5,252,14,144,32,255,249,31,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,9,0,1,5,24,24,11,2,250,248,248,248,248,248,0, - 0,112,112,112,112,112,112,248,248,248,248,248,248,248,248,248, - 248,248,15,24,48,18,1,253,0,32,0,32,0,96,7,240, - 31,248,63,252,127,252,124,190,248,158,249,158,241,128,241,128, - 243,0,243,0,243,30,250,30,126,62,127,252,63,248,31,240, - 15,192,12,0,8,0,8,0,17,24,72,18,0,0,3,240, - 0,31,252,0,63,254,0,63,255,0,126,31,0,124,15,128, - 124,15,128,124,7,128,124,0,0,126,0,0,62,0,0,255, - 240,0,255,240,0,31,0,0,15,0,0,15,0,0,15,0, - 0,31,0,0,30,0,0,61,227,0,127,255,128,255,255,128, - 255,255,0,96,126,0,15,15,30,18,1,4,224,14,247,222, - 255,254,127,252,60,120,120,60,112,28,112,28,112,28,120,60, - 60,120,127,252,255,254,247,222,224,14,18,24,72,18,0,0, - 248,7,192,248,7,192,124,15,128,60,15,0,30,30,0,30, - 30,0,15,60,0,15,60,0,7,248,0,7,248,0,3,240, - 0,1,224,0,63,255,0,63,255,0,1,224,0,1,224,0, - 63,255,0,63,255,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,31,31,9,3,250,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,16,32,64, - 18,1,249,15,240,31,248,63,248,126,124,124,60,124,60,126, - 0,127,0,63,192,31,224,63,248,127,252,113,254,240,255,240, - 63,248,31,252,15,127,15,127,159,63,254,31,248,7,252,1, - 254,0,126,0,62,120,30,120,30,124,62,63,252,63,252,31, - 248,7,224,10,4,8,11,0,21,243,192,243,192,243,192,243, - 192,26,25,100,24,0,0,0,127,128,0,3,255,224,0,7, - 128,248,0,31,0,60,0,28,0,14,0,56,0,7,0,112, - 63,3,0,112,127,131,128,224,243,193,128,225,192,225,192,193, - 192,224,192,195,128,0,192,195,128,0,192,195,128,0,192,195, - 128,0,192,193,192,224,192,225,192,225,192,224,243,195,128,96, - 127,131,128,112,63,7,0,56,0,14,0,30,0,60,0,15, - 128,248,0,7,255,224,0,1,255,128,0,9,16,32,12,1, - 9,62,0,127,0,227,128,195,128,31,128,127,128,243,128,227, - 128,227,128,255,128,123,128,0,0,0,0,255,128,255,128,255, - 128,12,13,26,18,3,2,8,16,24,48,56,112,120,240,241, - 224,225,192,225,192,241,224,249,240,120,240,56,112,24,48,8, - 16,16,10,20,19,1,4,255,255,255,255,255,255,255,255,0, - 15,0,15,0,15,0,15,0,15,0,15,9,5,10,11,1, - 7,255,128,255,128,255,128,255,128,255,128,26,25,100,24,0, - 0,0,255,128,0,3,255,224,0,7,128,248,0,30,0,60, - 0,28,0,14,0,56,255,135,0,112,255,195,0,112,225,227, - 128,224,224,225,128,224,224,225,128,192,224,225,192,192,225,193, - 192,192,255,129,192,192,255,1,192,192,227,129,192,192,227,193, - 192,224,225,193,128,224,224,227,128,112,224,243,128,112,224,119, - 0,56,0,14,0,30,0,28,0,15,128,120,0,7,255,224, - 0,1,255,128,0,10,3,6,11,0,21,255,192,255,192,255, - 192,9,10,20,13,2,14,62,0,127,0,99,0,193,128,193, - 128,193,128,193,128,99,0,127,0,62,0,16,22,44,19,1, - 0,3,192,3,192,3,192,3,192,3,192,3,192,255,255,255, - 255,255,255,255,255,3,192,3,192,3,192,3,192,3,192,3, - 192,0,0,0,0,255,255,255,255,255,255,255,255,10,15,30, - 11,0,9,63,0,127,128,243,192,225,192,225,192,1,192,3, - 192,7,128,15,0,62,0,120,0,112,0,255,192,255,192,255, - 192,10,15,30,11,0,9,30,0,127,128,243,192,225,192,225, - 192,3,192,15,128,15,128,3,192,1,192,225,192,225,192,243, - 192,127,128,62,0,6,5,5,11,4,20,60,120,112,224,224, - 15,25,50,20,2,249,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,255,254,255,222,247,158,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,17,31,93,18,0,250,15,255, - 128,31,255,128,63,140,0,127,140,0,127,140,0,255,140,0, - 255,140,0,255,140,0,255,140,0,255,140,0,127,140,0,127, - 140,0,63,140,0,63,140,0,15,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,4,5,5,9,2, - 11,96,240,240,240,96,7,8,8,11,2,249,48,48,48,124, - 30,14,252,248,6,15,15,11,2,9,28,60,252,252,28,28, - 28,28,28,28,28,28,28,28,28,10,16,32,12,1,9,63, - 0,127,128,115,128,225,192,225,192,225,192,225,192,225,192,115, - 128,127,128,63,0,0,0,0,0,255,192,255,192,255,192,12, - 12,24,18,3,3,129,0,193,128,225,192,241,224,120,240,56, - 112,56,112,120,240,241,224,225,192,193,128,129,0,26,24,96, - 28,0,0,0,0,56,0,6,0,112,0,30,0,112,0,254, - 0,224,0,254,1,192,0,14,1,192,0,14,3,128,0,14, - 3,128,0,14,7,0,0,14,7,0,0,14,14,7,0,14, - 28,15,0,14,28,31,0,14,56,31,0,0,56,55,0,0, - 112,103,0,0,112,231,0,0,224,199,0,1,193,135,0,1, - 193,255,192,3,129,255,192,3,128,7,0,7,0,7,0,7, - 0,7,0,25,24,96,28,1,0,0,0,224,0,12,1,192, - 0,28,1,192,0,252,3,128,0,252,3,128,0,28,7,0, - 0,28,14,0,0,28,14,0,0,28,28,0,0,28,28,0, - 0,28,56,126,0,28,48,255,0,28,113,231,128,28,225,195, - 128,0,225,195,128,1,192,7,128,1,192,15,0,3,128,30, - 0,7,0,60,0,7,0,120,0,14,0,240,0,14,1,255, - 128,28,1,255,128,28,1,255,128,25,24,96,27,1,0,63, - 0,28,0,127,128,56,0,243,192,56,0,225,192,112,0,225, - 192,224,0,3,192,224,0,15,129,192,0,15,129,192,0,15, - 195,128,0,1,199,0,0,225,199,14,0,225,206,30,0,243, - 206,30,0,127,156,62,0,63,28,126,0,0,56,238,0,0, - 112,206,0,0,113,142,0,0,227,142,0,0,227,255,128,1, - 195,255,128,1,192,14,0,3,128,14,0,3,128,14,0,16, - 24,48,20,1,250,3,224,3,224,3,224,3,224,0,0,0, - 0,3,192,3,192,3,192,7,192,31,128,63,128,127,0,126, - 0,252,0,248,15,248,15,248,15,252,31,126,127,127,254,63, - 254,63,252,15,240,22,31,93,23,0,0,3,192,0,1,224, - 0,0,240,0,0,120,0,0,60,0,0,0,0,0,252,0, - 0,252,0,1,254,0,1,254,0,1,254,0,3,255,0,3, - 255,0,3,255,0,7,207,128,7,207,128,7,207,128,15,135, - 128,15,135,192,15,135,192,31,3,192,31,3,224,31,255,224, - 31,255,224,63,255,240,63,255,240,62,1,240,124,0,248,124, - 0,248,252,0,252,248,0,124,22,31,93,23,0,0,0,15, - 0,0,30,0,0,60,0,0,120,0,0,240,0,0,0,0, - 0,252,0,0,252,0,1,254,0,1,254,0,1,254,0,3, - 255,0,3,255,0,3,255,0,7,207,128,7,207,128,7,207, - 128,15,135,128,15,135,192,15,135,192,31,3,192,31,3,224, - 31,255,224,31,255,224,63,255,240,63,255,240,62,1,240,124, - 0,248,124,0,248,252,0,252,248,0,124,22,31,93,23,0, - 0,0,48,0,0,120,0,0,252,0,1,206,0,3,135,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,30, - 90,23,0,0,0,241,128,1,255,128,3,255,0,3,30,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,31, - 93,23,0,0,3,207,0,3,207,0,3,207,0,3,207,0, - 0,0,0,0,0,0,0,252,0,0,252,0,1,254,0,1, - 254,0,1,254,0,3,255,0,3,255,0,3,255,0,7,207, - 128,7,207,128,7,207,128,15,135,128,15,135,192,15,135,192, - 31,3,192,31,3,224,31,255,224,31,255,224,63,255,240,63, - 255,240,62,1,240,124,0,248,124,0,248,252,0,252,248,0, - 124,22,31,93,23,0,0,0,120,0,0,204,0,0,132,0, - 0,132,0,0,204,0,0,120,0,0,0,0,0,252,0,1, - 254,0,1,254,0,1,254,0,3,255,0,3,255,0,3,255, - 0,7,207,128,7,207,128,7,207,128,15,135,128,15,135,192, - 15,135,192,31,3,192,31,3,224,31,255,224,31,255,224,63, - 255,240,63,255,240,62,1,240,124,0,248,124,0,248,252,0, - 252,248,0,124,31,25,100,32,0,0,0,255,255,252,0,255, - 255,252,0,255,255,252,1,255,255,252,1,243,192,0,1,227, - 192,0,3,227,192,0,3,227,192,0,3,195,192,0,7,195, - 192,0,7,195,192,0,7,195,255,248,15,131,255,248,15,131, - 255,248,15,131,255,248,31,3,192,0,31,255,192,0,31,255, - 192,0,63,255,192,0,63,255,192,0,62,3,192,0,124,3, - 255,254,124,3,255,254,248,3,255,254,248,3,255,254,21,32, - 96,23,1,249,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,240,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,252,0,0, - 96,0,0,96,0,0,248,0,0,28,0,0,28,0,1,248, - 0,1,240,0,18,31,93,22,2,0,30,0,0,15,0,0, - 7,128,0,3,192,0,1,224,0,0,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,0,255,255,0, - 255,255,0,255,255,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,18,31,93,22,2,0,0,120,0, - 0,240,0,1,224,0,3,192,0,7,128,0,0,0,0,255, - 255,128,255,255,128,255,255,128,255,255,128,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,0, - 255,255,0,255,255,0,255,255,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 192,255,255,192,255,255,192,255,255,192,18,31,93,22,2,0, - 0,192,0,1,224,0,3,240,0,7,56,0,14,28,0,0, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,18,31,93, - 22,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,192,255,255,192,255,255,192,255,255,192, - 8,31,31,9,0,0,240,120,60,30,15,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,8,31,31,9,2,0,15,30,60,120,240, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,10,31,62,9,0,0, - 12,0,30,0,63,0,115,128,225,192,0,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,10,31, - 62,9,0,0,243,192,243,192,243,192,243,192,0,0,0,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,23,25,75,23,255,0,31,255,128,31,255,224,31,255, - 240,31,255,248,31,7,248,31,0,252,31,0,252,31,0,124, - 31,0,126,31,0,62,31,0,62,255,240,62,255,240,62,255, - 240,62,31,0,62,31,0,62,31,0,124,31,0,124,31,0, - 124,31,0,248,31,3,248,31,255,240,31,255,240,31,255,192, - 31,255,128,19,30,90,24,2,0,3,198,0,7,254,0,15, - 252,0,12,120,0,0,0,0,248,3,224,252,3,224,252,3, - 224,254,3,224,254,3,224,255,3,224,255,3,224,255,131,224, - 255,195,224,251,195,224,251,227,224,249,227,224,249,243,224,248, - 243,224,248,251,224,248,123,224,248,63,224,248,63,224,248,31, - 224,248,31,224,248,15,224,248,15,224,248,7,224,248,7,224, - 248,3,224,23,31,93,25,1,0,1,224,0,0,240,0,0, - 120,0,0,60,0,0,30,0,0,0,0,1,255,0,7,255, - 192,15,255,224,31,255,240,63,199,248,63,1,248,126,0,252, - 124,0,124,124,0,124,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,126,0,252,63,1,248,63,199,248,31,255,240,15,255,224, - 7,255,192,1,255,0,23,31,93,25,1,0,0,7,128,0, - 15,0,0,30,0,0,60,0,0,120,0,0,0,0,1,255, - 0,7,255,192,15,255,224,31,255,240,63,199,248,63,1,248, - 126,0,252,124,0,124,124,0,124,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,124,0, - 124,124,0,124,126,0,252,63,1,248,63,199,248,31,255,240, - 15,255,224,7,255,192,1,255,0,23,31,93,25,1,0,0, - 24,0,0,60,0,0,126,0,0,231,0,1,195,128,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,30,90,25, - 1,0,0,120,192,0,255,192,1,255,128,1,143,0,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,31,93,25, - 1,0,1,231,128,1,231,128,1,231,128,1,231,128,0,0, - 0,0,0,0,1,255,0,7,255,192,15,255,224,31,255,240, - 63,199,248,63,1,248,126,0,252,124,0,124,124,0,124,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,126,0,252,63,1,248, - 63,199,248,31,255,240,15,255,224,7,255,192,1,255,0,15, - 16,32,19,2,0,32,8,112,28,248,62,252,126,126,252,63, - 248,31,240,15,224,15,224,31,240,63,248,126,252,252,126,248, - 62,112,28,32,8,24,25,75,25,1,0,1,255,7,7,255, - 206,15,255,252,31,255,248,63,199,248,63,0,248,126,1,252, - 124,3,252,124,7,188,248,7,62,248,14,62,248,28,62,248, - 56,62,248,112,62,248,224,62,248,224,62,125,192,124,127,128, - 124,127,0,252,63,1,248,63,199,248,63,255,240,63,255,224, - 119,255,192,225,255,0,19,31,93,24,2,0,7,128,0,3, - 192,0,1,224,0,0,240,0,0,120,0,0,0,0,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,252,7,224,127,31,192,127,255,192, - 63,255,128,31,255,0,7,252,0,19,31,93,24,2,0,0, - 30,0,0,60,0,0,120,0,0,240,0,1,224,0,0,0, - 0,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,252,7,224,127,31,192, - 127,255,192,63,255,128,31,255,0,7,252,0,19,31,93,24, - 2,0,0,96,0,0,240,0,1,248,0,3,156,0,7,14, - 0,0,0,0,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,252,7,224, - 127,31,192,127,255,192,63,255,128,31,255,0,7,252,0,19, - 31,93,24,2,0,15,30,0,15,30,0,15,30,0,15,30, - 0,0,0,0,0,0,0,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 252,7,224,127,31,192,127,255,192,63,255,128,31,255,0,7, - 252,0,20,31,93,22,1,0,0,30,0,0,60,0,0,120, - 0,0,240,0,1,224,0,0,0,0,252,3,240,252,3,240, - 126,7,224,62,7,192,63,15,192,63,15,128,31,15,128,31, - 159,0,15,159,0,15,254,0,7,254,0,7,252,0,3,252, - 0,3,248,0,3,248,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,18,25,75,22,2,0,248,0,0,248,0, - 0,248,0,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,254, - 0,255,252,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,20,2,0,15,192,0,63, - 240,0,127,252,0,255,252,0,248,126,0,248,62,0,240,62, - 0,240,62,0,240,124,0,240,252,0,241,248,0,241,252,0, - 241,254,0,240,127,0,240,31,0,240,31,128,240,15,128,240, - 15,128,240,15,128,240,31,128,240,63,0,241,255,0,241,254, - 0,241,252,0,241,240,0,15,25,50,18,1,0,15,0,7, - 128,3,128,1,192,0,224,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 25,50,18,1,0,0,120,0,240,0,224,1,192,3,128,0, - 0,0,0,15,240,63,252,127,252,124,62,248,30,248,30,1, - 254,15,254,63,254,127,30,248,30,240,30,240,62,248,126,255, - 254,255,254,127,222,63,30,15,25,50,18,1,0,1,128,3, - 192,7,224,14,112,28,56,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 24,48,18,1,0,7,140,15,252,31,248,24,240,0,0,0, - 0,15,240,63,252,127,252,124,62,248,30,248,30,1,254,15, - 254,63,254,127,30,248,30,240,30,240,62,248,126,255,254,255, - 254,127,222,63,30,15,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,15,240,63,252,127,252,124,62,248, - 30,248,30,1,254,15,254,63,254,127,30,248,30,240,30,240, - 62,248,126,255,254,255,254,127,222,63,30,15,25,50,18,1, - 0,3,192,6,96,4,32,4,32,6,96,3,192,0,0,15, - 240,63,252,127,252,124,62,248,30,248,30,1,254,15,254,63, - 254,127,30,248,30,248,30,240,62,248,126,255,254,255,254,127, - 222,63,30,26,19,76,29,1,0,7,224,248,0,31,251,254, - 0,63,255,255,0,63,255,255,0,124,63,15,128,120,30,7, - 128,120,30,7,192,0,62,7,192,7,255,255,192,63,255,255, - 192,127,255,255,192,124,30,0,0,248,30,0,0,248,30,7, - 192,252,63,15,192,255,255,255,128,127,247,255,0,63,227,254, - 0,15,129,248,0,15,25,50,18,1,249,7,224,31,248,63, - 252,63,252,124,62,120,30,248,30,240,0,240,0,240,0,240, - 0,248,30,248,30,124,62,127,252,63,248,31,248,7,224,3, - 0,3,0,7,192,0,224,0,224,15,192,15,128,16,25,50, - 18,1,0,15,0,7,128,3,128,1,192,0,224,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,25,50,18,1,0,0,120,0,240,0, - 224,1,192,3,128,0,0,0,0,7,224,31,248,63,252,127, - 254,124,62,248,30,240,31,255,255,255,255,255,255,240,0,240, - 0,248,30,124,62,127,254,63,252,31,240,7,192,16,25,50, - 18,1,0,1,128,3,192,7,224,14,112,28,56,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,7,224,31,248,63,252,127,254,124, - 62,248,30,240,31,255,255,255,255,255,255,240,0,240,0,248, - 30,124,62,127,254,63,252,31,240,7,192,7,25,25,9,1, - 0,240,120,56,28,14,0,0,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,6,25,25,9,2,0, - 60,56,112,112,224,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,10,25,50,9,255,0,12, - 0,30,0,63,0,115,128,225,192,0,0,0,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,10,24,48,9,255,0,243,192,243,192,243,192,243,192,0, - 0,0,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,17,26,78,20,1,0,48,0,0, - 120,32,0,124,240,0,63,224,0,31,192,0,63,224,0,115, - 240,0,33,248,0,7,252,0,31,254,0,63,254,0,127,255, - 0,124,31,0,248,15,128,248,15,128,240,7,128,240,7,128, - 240,7,128,248,15,128,248,15,128,252,31,128,126,63,0,127, - 255,0,63,254,0,31,252,0,7,240,0,15,24,48,20,2, - 0,15,24,31,248,63,240,49,224,0,0,0,0,243,240,247, - 248,255,252,255,254,252,62,248,62,240,30,240,30,240,30,240, - 30,240,30,240,30,240,30,240,30,240,30,240,30,240,30,240, - 30,17,25,75,20,1,0,7,128,0,3,192,0,1,192,0, - 1,224,0,0,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,25,75,20,1,0,0,120,0,0,240,0,0,224, - 0,1,192,0,3,192,0,0,0,0,0,0,0,7,240,0, - 31,252,0,63,254,0,127,255,0,124,31,0,248,15,128,248, - 15,128,240,7,128,240,7,128,240,7,128,240,7,128,248,15, - 128,248,15,128,124,31,0,127,255,0,63,254,0,31,252,0, - 7,240,0,17,25,75,20,1,0,0,192,0,1,224,0,3, - 240,0,7,56,0,14,28,0,0,0,0,0,0,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,17,24,72,20,1,0,7,140,0,15,252,0, - 31,248,0,24,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,24,72,20,1,0,30,60,0,30,60,0,30,60, - 0,30,60,0,0,0,0,0,0,0,7,240,0,31,252,0, - 63,254,0,127,255,0,124,31,0,248,15,128,248,15,128,240, - 7,128,240,7,128,240,7,128,240,7,128,248,15,128,248,15, - 128,124,31,0,127,255,0,63,254,0,31,252,0,7,240,0, - 16,16,32,19,1,0,3,192,3,192,3,192,3,192,0,0, - 0,0,255,255,255,255,255,255,255,255,0,0,0,0,3,192, - 3,192,3,192,3,192,21,18,54,20,255,0,1,252,56,7, - 255,112,15,255,224,31,255,192,31,143,192,62,7,224,62,15, - 224,60,29,224,60,57,224,60,113,224,62,227,224,63,131,224, - 63,7,224,31,143,192,31,255,192,63,255,128,119,255,0,225, - 252,0,15,25,50,20,2,0,30,0,15,0,7,0,3,128, - 1,192,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 0,240,1,224,1,192,3,128,7,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,15,25,50,20,2,0,3,0,7,128,15,192,28,224, - 56,112,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 60,120,60,120,60,120,60,120,0,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,16,32,64,19,1,249,0,120,0,240,1,224,1,192, - 3,128,0,0,0,0,248,31,248,31,248,31,120,30,124,62, - 124,60,60,60,60,60,62,120,62,120,30,120,31,240,31,240, - 15,240,15,224,7,224,7,224,7,192,7,192,7,192,15,128, - 63,128,63,0,63,0,60,0,16,32,64,20,2,249,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,243,240,247,252, - 255,254,255,254,252,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,252,62,255,254,255,252,247,248,241,240, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,31, - 62,19,1,249,30,120,30,120,30,120,30,120,0,0,0,0, - 248,31,248,31,248,31,120,62,124,62,124,60,124,60,62,124, - 62,120,62,120,30,120,31,240,31,240,15,240,15,224,7,224, - 7,224,7,192,7,192,7,192,15,128,63,128,63,0,63,0, - 60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=17 h=25 x= 3 y=13 dx=19 dy= 0 ascent=25 len=72 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24n[743] U8G_FONT_SECTION("u8g_font_helvB24n") = { - 0,40,49,250,244,23,0,0,0,0,42,58,0,25,250,23, - 0,10,11,22,13,1,13,12,0,12,0,76,128,237,192,255, - 192,127,128,30,0,63,0,127,128,115,128,33,0,16,16,32, - 19,1,0,3,192,3,192,3,192,3,192,3,192,3,192,255, - 255,255,255,255,255,255,255,3,192,3,192,3,192,3,192,3, - 192,3,192,5,11,11,9,2,250,248,248,248,248,248,24,24, - 56,112,224,128,9,5,10,11,1,7,255,128,255,128,255,128, - 255,128,255,128,5,5,5,9,2,0,248,248,248,248,248,8, - 25,25,9,0,0,3,3,3,3,6,6,6,14,12,12,12, - 28,24,24,24,48,48,48,112,96,96,96,192,192,192,15,24, - 48,18,1,0,15,224,31,240,63,248,127,252,124,124,248,62, - 248,62,248,62,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,248,62,248,62,248,62,124,124,127,252,63,248, - 31,240,15,224,10,23,46,18,2,0,1,192,3,192,7,192, - 31,192,255,192,255,192,255,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,16,24,48,18,1,0,15,224, - 63,248,127,252,127,254,252,126,248,63,248,31,240,31,240,31, - 0,63,0,62,0,126,0,252,1,248,7,240,15,224,31,128, - 63,0,126,0,252,0,255,255,255,255,255,255,255,255,16,24, - 48,18,1,0,15,224,63,248,127,252,127,252,248,62,240,62, - 240,30,240,30,0,62,0,124,3,248,3,240,3,252,0,126, - 0,63,0,31,240,31,240,31,240,63,248,62,127,254,127,252, - 63,248,15,224,16,24,48,18,1,0,0,248,0,248,1,248, - 3,248,3,248,7,248,15,120,14,120,30,120,28,120,60,120, - 120,120,112,120,240,120,224,120,255,255,255,255,255,255,255,255, - 0,120,0,120,0,120,0,120,0,120,15,24,48,18,1,0, - 63,252,63,252,63,252,63,252,56,0,120,0,120,0,120,0, - 123,224,127,248,127,252,127,252,120,126,0,62,0,62,0,30, - 0,30,240,62,240,62,248,124,127,252,127,248,63,240,15,192, - 15,24,48,18,1,0,7,224,31,248,63,252,63,254,124,62, - 120,30,240,0,240,0,243,224,247,248,255,252,255,252,252,126, - 248,62,240,30,240,30,240,30,240,30,248,62,124,124,127,252, - 63,248,31,240,7,192,16,24,48,18,1,0,255,255,255,255, - 255,255,255,255,0,30,0,62,0,60,0,120,0,248,0,240, - 1,240,1,224,3,224,3,192,7,192,7,192,7,128,15,128, - 15,128,15,128,31,0,31,0,31,0,31,0,17,24,72,18, - 0,0,7,240,0,31,252,0,63,254,0,62,62,0,124,31, - 0,120,15,0,120,15,0,120,15,0,124,31,0,62,62,0, - 31,252,0,31,252,0,63,254,0,124,31,0,248,15,128,240, - 7,128,240,7,128,240,7,128,248,15,128,126,63,0,127,254, - 0,63,254,0,31,252,0,7,240,0,15,24,48,18,1,0, - 7,192,31,240,63,248,127,252,124,124,248,62,240,30,240,30, - 240,30,240,30,248,62,252,126,127,254,127,254,63,222,7,158, - 0,30,0,30,240,60,248,124,127,248,127,248,31,240,7,192, - 5,17,17,11,3,0,248,248,248,248,248,0,0,0,0,0, - 0,0,248,248,248,248,248}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=29 h=32 x= 3 y=20 dx=33 dy= 0 ascent=25 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24r[5214] U8G_FONT_SECTION("u8g_font_helvB24r") = { - 0,40,49,250,244,25,5,252,14,144,32,127,249,25,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08[2687] U8G_FONT_SECTION("u8g_font_helvR08") = { - 0,13,18,254,252,8,1,178,3,111,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,3, - 0,1,1,8,8,3,1,254,128,0,128,128,128,128,128,128, - 5,8,8,6,1,255,16,112,168,160,160,168,112,64,5,8, - 8,6,0,0,48,72,64,224,64,64,72,176,4,6,6,5, - 0,1,144,96,144,144,96,144,5,8,8,6,0,0,136,136, - 136,80,248,32,248,32,1,10,10,3,1,254,128,128,128,128, - 0,0,128,128,128,128,5,10,10,6,0,254,112,136,192,112, - 152,200,112,24,136,112,3,1,1,3,0,7,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,5,5,4,0,3, - 224,32,160,0,224,5,5,5,6,0,0,40,80,160,80,40, - 5,3,3,7,1,2,248,8,8,3,1,1,4,0,3,224, - 7,7,7,9,1,0,56,68,186,178,170,68,56,3,1,1, - 3,0,7,224,4,4,4,4,0,4,96,144,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 4,96,160,64,224,3,4,4,3,0,4,224,64,32,192,2, - 2,2,3,0,7,64,128,4,8,8,5,0,254,144,144,144, - 144,144,240,128,128,6,10,10,6,0,254,124,232,232,232,104, - 40,40,40,40,40,2,1,1,3,0,3,192,2,2,2,3, - 0,254,64,192,2,4,4,3,0,4,64,192,64,64,3,5, - 5,4,0,3,224,160,224,0,224,5,5,5,6,0,0,160, - 80,40,80,160,9,8,16,9,0,0,68,0,196,0,72,0, - 72,0,17,0,19,0,39,128,33,0,8,8,8,9,0,0, - 68,196,72,72,19,21,34,39,9,8,16,9,0,0,224,0, - 68,0,36,0,200,0,9,0,19,0,23,128,33,0,4,8, - 8,6,1,254,32,0,32,32,64,128,144,96,7,11,11,7, - 0,0,32,16,0,16,16,40,40,68,124,130,130,7,11,11, - 7,0,0,8,16,0,16,16,40,40,68,124,130,130,7,11, - 11,7,0,0,16,40,0,16,16,40,40,68,124,130,130,7, - 11,11,7,0,0,20,40,0,16,16,40,40,68,124,130,130, - 7,10,10,7,0,0,40,0,16,16,40,40,68,124,130,130, - 7,11,11,7,0,0,16,40,16,16,16,40,40,68,124,130, - 130,9,8,16,10,0,0,31,128,24,0,40,0,47,128,72, - 0,120,0,136,0,143,128,6,10,10,8,1,254,120,132,128, - 128,128,128,132,120,16,48,5,11,11,7,1,0,64,32,0, - 248,128,128,248,128,128,128,248,5,11,11,7,1,0,16,32, - 0,248,128,128,248,128,128,128,248,5,11,11,7,1,0,32, - 80,0,248,128,128,248,128,128,128,248,5,10,10,7,1,0, - 80,0,248,128,128,248,128,128,128,248,2,11,11,3,0,0, - 128,64,0,64,64,64,64,64,64,64,64,2,11,11,3,1, - 0,64,128,0,128,128,128,128,128,128,128,128,3,11,11,3, - 0,0,64,160,0,64,64,64,64,64,64,64,64,3,10,10, - 3,0,0,160,0,64,64,64,64,64,64,64,64,7,8,8, - 8,0,0,120,68,66,242,66,66,68,120,6,11,11,8,1, - 0,40,80,0,196,196,164,164,148,148,140,140,6,11,11,8, - 1,0,32,16,0,120,132,132,132,132,132,132,120,6,11,11, - 8,1,0,8,16,0,120,132,132,132,132,132,132,120,6,11, - 11,8,1,0,32,80,0,120,132,132,132,132,132,132,120,6, - 11,11,8,1,0,40,80,0,120,132,132,132,132,132,132,120, - 6,10,10,8,1,0,72,0,120,132,132,132,132,132,132,120, - 5,5,5,6,0,1,136,80,32,80,136,6,10,10,8,1, - 255,4,120,140,148,148,164,164,196,120,128,6,11,11,8,1, - 0,32,16,0,132,132,132,132,132,132,132,120,6,11,11,8, - 1,0,8,16,0,132,132,132,132,132,132,132,120,6,11,11, - 8,1,0,32,80,0,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,72,0,132,132,132,132,132,132,132,120,7,11, - 11,7,0,0,8,16,0,130,68,68,40,40,16,16,16,5, - 8,8,7,1,0,128,128,240,136,136,240,128,128,4,8,8, - 5,0,0,96,144,144,160,144,144,144,160,5,9,9,5,0, - 0,64,32,0,224,16,112,144,144,104,5,9,9,5,0,0, - 32,64,0,224,16,112,144,144,104,5,9,9,5,0,0,32, - 80,0,224,16,112,144,144,104,5,9,9,5,0,0,80,160, - 0,224,16,112,144,144,104,5,8,8,5,0,0,80,0,224, - 16,112,144,144,104,5,9,9,5,0,0,32,80,32,224,16, - 112,144,144,104,7,6,6,8,0,0,236,18,126,144,146,108, - 4,8,8,5,0,254,96,144,128,128,144,96,32,96,4,9, - 9,5,0,0,64,32,0,96,144,240,128,144,96,4,9,9, - 5,0,0,32,64,0,96,144,240,128,144,96,4,9,9,5, - 0,0,64,160,0,96,144,240,128,144,96,4,8,8,5,0, - 0,160,0,96,144,240,128,144,96,2,9,9,2,255,0,128, - 64,0,64,64,64,64,64,64,2,9,9,2,0,0,64,128, - 0,128,128,128,128,128,128,3,9,9,2,255,0,64,160,0, - 64,64,64,64,64,64,3,8,8,2,255,0,160,0,64,64, - 64,64,64,64,5,9,9,6,0,0,64,120,144,120,136,136, - 136,136,112,4,9,9,5,0,0,80,160,0,224,144,144,144, - 144,144,5,9,9,6,0,0,64,32,0,112,136,136,136,136, - 112,5,9,9,6,0,0,16,32,0,112,136,136,136,136,112, - 5,9,9,6,0,0,32,80,0,112,136,136,136,136,112,5, - 9,9,6,0,0,40,80,0,112,136,136,136,136,112,5,8, - 8,6,0,0,80,0,112,136,136,136,136,112,5,5,5,6, - 0,1,32,0,248,0,32,7,6,6,6,255,0,58,76,84, - 100,68,184,4,9,9,5,0,0,64,32,0,144,144,144,144, - 144,112,4,9,9,5,0,0,16,32,0,144,144,144,144,144, - 112,4,9,9,5,0,0,64,160,0,144,144,144,144,144,112, - 4,8,8,5,0,0,160,0,144,144,144,144,144,112,5,11, - 11,5,255,254,8,16,0,72,72,80,80,48,32,32,192,5, - 10,10,6,0,254,128,128,176,200,136,136,200,176,128,128,5, - 10,10,5,255,254,80,0,72,72,80,80,48,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 8 - Calculated Max Values w= 5 h= 8 x= 1 y= 5 dx= 6 dy= 0 ascent= 8 len= 8 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08n[226] U8G_FONT_SECTION("u8g_font_helvR08n") = { - 0,13,18,254,252,8,0,0,0,0,42,58,0,8,254,8, - 0,3,3,3,4,0,5,160,64,160,5,5,5,6,0,1, - 32,32,248,32,32,2,3,3,3,0,254,64,64,128,3,1, - 1,4,0,3,224,1,1,1,3,1,0,128,3,8,8,3, - 0,0,32,32,64,64,64,64,128,128,5,8,8,6,0,0, - 112,136,136,136,136,136,136,112,2,8,8,6,1,0,64,192, - 64,64,64,64,64,64,5,8,8,6,0,0,112,136,8,8, - 48,64,128,248,5,8,8,6,0,0,112,136,8,48,8,8, - 136,112,5,8,8,6,0,0,16,48,80,80,144,248,16,16, - 5,8,8,6,0,0,120,64,64,112,8,8,136,112,5,8, - 8,6,0,0,112,136,128,240,136,136,136,112,5,8,8,6, - 0,0,248,8,16,32,32,64,64,64,5,8,8,6,0,0, - 112,136,136,112,136,136,136,112,5,8,8,6,0,0,112,136, - 136,136,120,8,136,112,1,6,6,3,1,0,128,0,0,0, - 0,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08r[1276] U8G_FONT_SECTION("u8g_font_helvR08r") = { - 0,13,18,254,252,8,1,178,3,111,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10[3527] U8G_FONT_SECTION("u8g_font_helvR10") = { - 0,17,22,254,251,11,2,10,4,133,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,4,0,1,1,11,11,4,1,253,128,128,0,128, - 128,128,128,128,128,128,128,6,10,10,8,1,255,4,120,204, - 144,144,160,164,204,120,128,7,11,11,8,0,0,56,68,64, - 64,248,32,32,32,64,98,220,6,6,6,8,1,2,132,120, - 72,72,120,132,7,11,11,7,0,0,130,130,130,68,68,40, - 254,16,254,16,16,1,14,14,3,1,253,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,5,14,14,8,2,253,112, - 216,136,192,112,152,136,136,200,112,24,136,216,112,5,1,1, - 5,0,9,216,10,11,22,12,1,0,30,0,97,128,92,128, - 162,192,162,64,160,64,162,64,156,64,64,128,97,128,30,0, - 4,7,7,6,1,4,224,16,112,144,208,0,240,6,5,5, - 8,1,2,36,72,144,72,36,7,4,4,9,1,2,254,2, - 2,2,3,1,1,4,0,4,224,10,11,22,12,1,0,30, - 0,97,128,92,128,146,64,146,64,156,64,146,64,146,64,64, - 128,97,128,30,0,4,1,1,4,0,9,240,4,4,4,6, - 1,7,96,144,144,96,7,9,9,9,1,0,16,16,16,254, - 16,16,16,0,254,4,6,6,5,0,5,96,144,16,32,64, - 240,4,6,6,5,0,5,96,144,32,16,144,96,2,2,2, - 5,2,9,64,128,6,11,11,8,1,253,132,132,132,132,132, - 132,204,180,128,128,128,7,14,14,8,0,253,62,116,244,244, - 244,116,52,20,20,20,20,20,20,20,2,1,1,4,1,4, - 192,4,3,3,5,0,253,32,144,96,2,6,6,5,1,5, - 64,192,64,64,64,64,4,7,7,6,1,4,96,144,144,144, - 96,0,240,6,5,5,8,1,2,144,72,36,72,144,10,11, - 22,12,1,0,66,0,194,0,68,0,68,0,72,0,72,128, - 9,128,18,128,20,128,39,192,32,128,9,11,22,12,1,0, - 66,0,194,0,68,0,68,0,72,0,75,0,20,128,16,128, - 17,0,34,0,39,128,11,11,22,12,0,0,97,0,145,0, - 34,0,18,0,148,0,100,64,4,192,9,64,10,64,19,224, - 16,64,6,11,11,8,1,253,16,16,0,16,32,64,128,132, - 132,204,48,9,14,28,9,0,0,16,0,8,0,0,0,8, - 0,28,0,20,0,20,0,34,0,34,0,65,0,127,0,65, - 0,128,128,128,128,9,14,28,9,0,0,4,0,8,0,0, - 0,8,0,28,0,20,0,20,0,34,0,34,0,65,0,127, - 0,65,0,128,128,128,128,9,14,28,9,0,0,12,0,18, - 0,0,0,8,0,28,0,20,0,20,0,34,0,34,0,65, - 0,127,0,65,0,128,128,128,128,9,14,28,9,0,0,26, - 0,44,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,13,26,9,0, - 0,54,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,14,28,9,0, - 0,12,0,18,0,18,0,12,0,12,0,20,0,20,0,34, - 0,34,0,65,0,127,0,65,0,128,128,128,128,12,11,22, - 14,1,0,31,240,18,0,18,0,34,0,34,0,35,240,126, - 0,66,0,66,0,130,0,131,240,8,14,14,10,1,253,28, - 99,65,128,128,128,128,128,65,99,28,8,36,24,7,14,14, - 9,1,0,32,16,0,254,128,128,128,128,252,128,128,128,128, - 254,7,14,14,9,1,0,8,16,0,254,128,128,128,128,252, - 128,128,128,128,254,7,14,14,9,1,0,24,36,0,254,128, - 128,128,128,252,128,128,128,128,254,7,13,13,9,1,0,108, - 0,254,128,128,128,128,252,128,128,128,128,254,2,14,14,4, - 1,0,128,64,0,64,64,64,64,64,64,64,64,64,64,64, - 2,14,14,4,2,0,64,128,0,128,128,128,128,128,128,128, - 128,128,128,128,4,14,14,4,1,0,96,144,0,64,64,64, - 64,64,64,64,64,64,64,64,5,13,13,4,0,0,216,0, - 32,32,32,32,32,32,32,32,32,32,32,9,11,22,10,0, - 0,124,0,67,0,65,0,64,128,64,128,240,128,64,128,64, - 128,65,0,67,0,124,0,8,14,14,10,1,0,26,44,0, - 193,161,161,145,145,137,137,133,133,131,131,9,14,28,11,1, - 0,16,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,4,0,8,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,12,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,11,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,13,26,11,1,0,51,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,7,7,7,9,1,1,130,68,40,16,40,68,130, - 11,11,22,11,0,0,14,32,49,192,32,128,65,64,66,64, - 68,64,72,64,80,64,32,128,113,128,142,0,8,14,14,10, - 1,0,16,8,0,129,129,129,129,129,129,129,129,129,66,60, - 8,14,14,10,1,0,4,8,0,129,129,129,129,129,129,129, - 129,129,66,60,8,14,14,10,1,0,24,36,0,129,129,129, - 129,129,129,129,129,129,66,60,8,13,13,10,1,0,102,0, - 129,129,129,129,129,129,129,129,129,66,60,9,14,28,9,0, - 0,4,0,8,0,0,0,128,128,193,128,65,0,34,0,34, - 0,20,0,28,0,8,0,8,0,8,0,8,0,7,11,11, - 9,1,0,128,128,252,134,130,130,134,252,128,128,128,5,11, - 11,7,1,0,112,136,136,136,176,144,136,136,136,136,176,7, - 11,11,8,1,0,32,16,0,120,204,4,124,196,132,204,118, - 7,11,11,8,1,0,16,32,0,120,204,4,124,196,132,204, - 118,7,11,11,8,1,0,48,72,0,120,204,4,124,196,132, - 204,118,7,11,11,8,1,0,52,88,0,120,204,4,124,196, - 132,204,118,7,11,11,8,1,0,72,72,0,120,204,4,124, - 196,132,204,118,7,12,12,8,1,0,48,72,48,0,120,204, - 4,124,196,132,204,118,11,8,16,13,1,0,123,192,198,96, - 4,32,127,224,196,0,132,0,206,96,123,192,6,11,11,8, - 1,253,120,204,128,128,128,132,204,120,16,72,48,6,11,11, - 8,1,0,32,16,0,120,204,132,252,128,128,204,120,6,11, - 11,8,1,0,16,32,0,120,204,132,252,128,128,204,120,6, - 11,11,8,1,0,48,72,0,120,204,132,252,128,128,204,120, - 6,11,11,8,1,0,72,72,0,120,204,132,252,128,128,204, - 120,2,11,11,3,1,0,128,64,0,128,128,128,128,128,128, - 128,128,2,11,11,3,1,0,64,128,0,128,128,128,128,128, - 128,128,128,4,11,11,3,0,0,96,144,0,64,64,64,64, - 64,64,64,64,3,11,11,3,0,0,160,160,0,64,64,64, - 64,64,64,64,64,6,11,11,8,1,0,216,112,144,120,204, - 132,132,132,132,204,120,6,11,11,8,1,0,104,176,0,184, - 204,132,132,132,132,132,132,6,11,11,8,1,0,32,16,0, - 120,204,132,132,132,132,204,120,6,11,11,8,1,0,16,32, - 0,120,204,132,132,132,132,204,120,6,11,11,8,1,0,48, - 72,0,120,204,132,132,132,132,204,120,6,11,11,8,1,0, - 104,176,0,120,204,132,132,132,132,204,120,6,11,11,8,1, - 0,72,72,0,120,204,132,132,132,132,204,120,7,7,7,9, - 1,1,16,16,0,254,0,16,16,8,8,8,8,0,0,61, - 98,70,74,82,98,70,188,6,11,11,8,1,0,32,16,0, - 132,132,132,132,132,132,204,116,6,11,11,8,1,0,16,32, - 0,132,132,132,132,132,132,204,116,6,11,11,8,1,0,48, - 72,0,132,132,132,132,132,132,204,116,6,11,11,8,1,0, - 72,72,0,132,132,132,132,132,132,204,116,7,14,14,7,0, - 253,8,16,0,130,194,68,68,36,40,24,16,16,48,96,6, - 14,14,8,1,253,128,128,128,184,204,132,132,132,132,204,184, - 128,128,128,7,14,14,7,0,253,36,36,0,130,194,68,68, - 36,40,24,16,16,48,96}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 7 h=11 x= 2 y= 6 dx= 9 dy= 0 ascent=11 len=11 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10n[267] U8G_FONT_SECTION("u8g_font_helvR10n") = { - 0,17,22,254,251,11,0,0,0,0,42,58,0,11,254,11, - 0,5,5,5,7,1,6,32,168,112,168,32,7,7,7,9, - 1,1,16,16,16,254,16,16,16,2,4,4,3,0,254,64, - 64,64,128,3,1,1,4,0,4,224,1,2,2,3,1,0, - 128,128,4,11,11,4,0,0,16,16,32,32,32,64,64,64, - 128,128,128,6,11,11,8,1,0,120,132,132,132,132,132,132, - 132,132,132,120,3,11,11,8,2,0,32,224,32,32,32,32, - 32,32,32,32,32,6,11,11,8,1,0,120,132,132,4,8, - 16,32,64,128,128,252,6,11,11,8,1,0,120,132,132,4, - 4,56,4,4,132,132,120,7,11,11,8,1,0,4,12,20, - 36,68,132,132,254,4,4,4,6,11,11,8,1,0,252,128, - 128,128,248,4,4,4,132,132,120,6,11,11,8,1,0,120, - 132,128,128,184,196,132,132,132,132,120,6,11,11,8,1,0, - 252,4,8,8,16,16,32,32,64,64,64,6,11,11,8,1, - 0,120,132,132,132,132,120,132,132,132,132,120,6,11,11,8, - 1,0,120,132,132,132,132,124,4,4,132,132,120,1,8,8, - 3,1,0,128,128,0,0,0,0,128,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=13 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10r[1648] U8G_FONT_SECTION("u8g_font_helvR10r") = { - 0,17,22,254,251,11,2,10,4,133,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255 - }; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 3 y=10 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12[4077] U8G_FONT_SECTION("u8g_font_helvR12") = { - 0,20,26,254,250,12,2,91,5,99,32,255,252,16,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,1,1,12,12,6,2,253,128, - 128,0,128,128,128,128,128,128,128,128,128,7,13,13,9,1, - 254,4,4,56,76,138,144,144,144,162,100,56,64,64,8,12, - 12,9,0,0,14,17,33,32,32,16,126,8,16,32,121,134, - 8,7,7,9,0,3,189,102,66,66,66,102,189,9,12,24, - 9,0,0,128,128,65,0,65,0,34,0,34,0,20,0,127, - 0,8,0,127,0,8,0,8,0,8,0,1,16,16,4,1, - 252,128,128,128,128,128,128,0,0,0,0,128,128,128,128,128, - 128,7,15,15,9,1,253,56,68,70,96,152,140,134,194,98, - 50,28,4,196,68,56,3,2,2,5,1,10,160,160,12,12, - 24,12,0,0,15,0,48,192,71,32,72,160,144,16,144,16, - 144,16,144,16,72,160,71,32,48,192,15,0,5,7,7,6, - 1,5,96,144,112,144,120,0,248,6,6,6,9,1,2,36, - 72,144,144,72,36,8,5,5,10,0,1,255,1,1,1,1, - 4,1,1,5,0,4,240,12,12,24,12,0,0,15,0,48, - 192,64,32,79,32,136,144,136,144,143,16,138,16,73,32,72, - 160,48,192,15,0,5,1,1,6,0,10,248,5,5,5,7, - 1,7,112,136,136,136,112,9,11,22,10,0,0,8,0,8, - 0,8,0,8,0,255,128,8,0,8,0,8,0,8,0,0, - 0,255,128,5,7,7,6,0,5,112,136,136,16,96,128,248, - 5,7,7,6,0,5,112,136,8,48,8,136,112,3,3,3, - 6,1,10,32,96,128,7,13,13,9,1,252,130,130,130,130, - 130,130,130,134,250,128,128,128,128,7,15,15,9,1,253,62, - 116,244,244,244,244,116,52,20,20,20,20,20,20,20,1,2, - 2,5,2,4,128,128,4,4,4,6,0,252,32,32,144,96, - 3,7,7,6,0,5,32,224,32,32,32,32,32,4,7,7, - 6,1,5,96,144,144,144,96,0,240,6,6,6,9,1,2, - 144,72,36,36,72,144,12,12,24,14,0,0,32,64,224,128, - 32,128,33,0,34,0,34,32,36,96,4,160,9,32,17,240, - 16,32,32,32,12,13,26,14,0,0,0,64,32,128,224,128, - 33,0,34,0,34,0,36,224,37,16,9,16,8,32,16,192, - 33,0,33,240,13,12,24,14,0,0,112,64,136,64,8,128, - 48,128,9,0,137,16,114,48,2,80,4,144,4,248,8,16, - 8,16,7,12,12,10,1,253,16,16,0,16,16,32,64,128, - 130,130,68,56,10,16,32,11,0,0,16,0,24,0,4,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,12,0,12,0,18,0,18,0, - 18,0,33,0,33,0,127,128,64,128,64,128,128,64,128,64, - 10,16,32,11,0,0,4,0,14,0,17,0,0,0,12,0, - 12,0,18,0,18,0,18,0,33,0,33,0,127,128,64,128, - 64,128,128,64,128,64,10,15,30,11,0,0,26,0,44,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,15,30,11,0,0, - 18,0,18,0,0,0,12,0,12,0,18,0,18,0,18,0, - 33,0,33,0,127,128,64,128,64,128,128,64,128,64,10,15, - 30,11,0,0,12,0,18,0,18,0,12,0,12,0,18,0, - 18,0,18,0,33,0,33,0,127,128,64,128,64,128,128,64, - 128,64,14,12,24,16,0,0,7,252,9,0,9,0,17,0, - 17,0,33,252,33,0,127,0,65,0,65,0,129,0,129,252, - 10,16,32,12,1,252,15,0,48,128,64,64,64,0,128,0, - 128,0,128,0,128,0,64,0,64,64,48,128,15,0,4,0, - 4,0,18,0,12,0,8,16,16,11,1,0,32,48,8,0, - 255,128,128,128,128,255,128,128,128,128,128,255,8,16,16,11, - 1,0,4,12,16,0,255,128,128,128,128,255,128,128,128,128, - 128,255,8,16,16,11,1,0,16,56,68,0,255,128,128,128, - 128,255,128,128,128,128,128,255,8,15,15,11,1,0,36,36, - 0,255,128,128,128,128,255,128,128,128,128,128,255,3,16,16, - 4,0,0,128,192,32,0,64,64,64,64,64,64,64,64,64, - 64,64,64,3,16,16,4,0,0,32,96,128,0,64,64,64, - 64,64,64,64,64,64,64,64,64,5,16,16,4,255,0,32, - 112,136,0,32,32,32,32,32,32,32,32,32,32,32,32,3, - 15,15,4,0,0,160,160,0,64,64,64,64,64,64,64,64, - 64,64,64,64,12,12,24,12,0,0,63,0,32,192,32,32, - 32,32,32,16,248,16,32,16,32,16,32,32,32,32,32,192, - 63,0,9,15,30,12,1,0,26,0,44,0,0,0,128,128, - 192,128,160,128,160,128,144,128,136,128,136,128,132,128,130,128, - 130,128,129,128,128,128,11,16,32,13,1,0,8,0,12,0, - 2,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,16,32,13, - 1,0,1,0,3,0,4,0,0,0,14,0,49,128,64,64, - 64,64,128,32,128,32,128,32,128,32,64,64,64,64,49,128, - 14,0,11,16,32,13,1,0,4,0,14,0,17,0,0,0, - 14,0,49,128,64,64,64,64,128,32,128,32,128,32,128,32, - 64,64,64,64,49,128,14,0,11,15,30,13,1,0,13,0, - 22,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,15,30,13, - 1,0,17,0,17,0,0,0,14,0,49,128,64,64,64,64, - 128,32,128,32,128,32,128,32,64,64,64,64,49,128,14,0, - 8,8,8,10,1,0,129,66,36,24,24,36,66,129,11,14, - 28,13,1,255,0,64,14,128,49,128,65,64,66,64,130,32, - 132,32,132,32,136,32,72,64,80,64,49,128,46,0,64,0, - 9,16,32,12,1,0,32,0,48,0,8,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,12,1,0,2,0,6,0, - 8,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,65,0,62,0,9,16,32,12, - 1,0,8,0,28,0,34,0,0,0,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 62,0,9,15,30,12,1,0,34,0,34,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,11,1,0,2,0,6,0, - 8,0,0,0,128,128,65,0,65,0,34,0,34,0,20,0, - 28,0,8,0,8,0,8,0,8,0,8,0,8,12,12,11, - 2,0,128,128,252,130,129,129,130,252,128,128,128,128,7,12, - 12,10,2,0,120,132,130,130,132,188,134,130,130,130,132,184, - 8,13,13,9,1,0,32,48,8,0,124,130,2,6,122,130, - 130,134,123,8,13,13,9,1,0,4,12,16,0,124,130,2, - 6,122,130,130,134,123,8,13,13,9,1,0,16,56,68,0, - 124,130,2,6,122,130,130,134,123,8,12,12,9,1,0,52, - 88,0,124,130,2,6,122,130,130,134,123,8,12,12,9,1, - 0,40,40,0,124,130,2,6,122,130,130,134,123,8,13,13, - 9,1,0,16,40,16,0,124,130,2,6,122,130,130,134,123, - 13,9,18,15,1,0,124,224,131,16,2,8,6,8,123,248, - 130,0,130,8,135,16,120,224,7,13,13,8,1,252,56,68, - 130,128,128,128,130,68,56,16,16,72,48,7,13,13,9,1, - 0,64,96,16,0,56,68,130,130,254,128,130,68,56,7,13, - 13,9,1,0,8,24,32,0,56,68,130,130,254,128,130,68, - 56,7,13,13,9,1,0,16,56,68,0,56,68,130,130,254, - 128,130,68,56,7,12,12,9,1,0,40,40,0,56,68,130, - 130,254,128,130,68,56,3,13,13,4,1,0,128,192,32,0, - 64,64,64,64,64,64,64,64,64,3,13,13,4,1,0,32, - 96,128,0,64,64,64,64,64,64,64,64,64,5,13,13,4, - 0,0,32,112,136,0,32,32,32,32,32,32,32,32,32,3, - 12,12,4,1,0,160,160,0,64,64,64,64,64,64,64,64, - 64,7,12,12,9,1,0,72,48,88,60,68,130,130,130,130, - 130,68,56,7,12,12,9,1,0,52,88,0,188,194,130,130, - 130,130,130,130,130,7,13,13,9,1,0,32,48,8,0,56, - 68,130,130,130,130,130,68,56,7,13,13,9,1,0,8,24, - 32,0,56,68,130,130,130,130,130,68,56,7,13,13,9,1, - 0,16,56,68,0,56,68,130,130,130,130,130,68,56,7,12, - 12,9,1,0,52,88,0,56,68,130,130,130,130,130,68,56, - 7,12,12,9,1,0,40,40,0,56,68,130,130,130,130,130, - 68,56,7,9,9,10,1,0,16,16,0,0,254,0,0,16, - 16,7,10,10,10,1,0,2,60,68,138,146,146,162,162,68, - 184,7,13,13,9,1,0,32,48,8,0,130,130,130,130,130, - 130,130,134,122,7,13,13,9,1,0,4,12,16,0,130,130, - 130,130,130,130,130,134,122,7,13,13,9,1,0,16,56,68, - 0,130,130,130,130,130,130,130,134,122,7,12,12,9,1,0, - 40,40,0,130,130,130,130,130,130,130,134,122,7,16,16,8, - 0,253,8,24,32,0,130,130,68,68,40,40,56,16,16,32, - 32,192,7,16,16,9,1,252,128,128,128,184,196,130,130,130, - 130,130,196,184,128,128,128,128,7,15,15,8,0,253,40,40, - 0,130,130,68,68,40,40,56,16,16,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=12 x= 3 y= 7 dx=10 dy= 0 ascent=12 len=18 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12n[290] U8G_FONT_SECTION("u8g_font_helvR12n") = { - 0,20,26,254,250,12,0,0,0,0,42,58,0,12,254,12, - 0,5,5,5,6,0,7,32,168,112,80,136,9,9,18,10, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,64,64,64,128,4,1, - 1,5,0,4,240,1,2,2,4,2,0,128,128,4,12,12, - 5,0,0,16,16,32,32,32,32,64,64,64,128,128,128,7, - 12,12,9,1,0,56,68,68,130,130,130,130,130,130,68,68, - 56,3,12,12,9,3,0,32,32,96,160,32,32,32,32,32, - 32,32,32,7,12,12,9,1,0,56,68,130,130,2,4,8, - 48,64,128,128,254,7,12,12,9,1,0,56,68,130,130,4, - 56,4,2,130,130,68,56,8,12,12,9,0,0,12,20,20, - 36,36,68,68,132,255,4,4,4,7,12,12,9,1,0,62, - 32,32,64,120,68,2,2,2,130,68,56,7,12,12,9,1, - 0,60,66,130,128,184,196,130,130,130,130,68,56,8,12,12, - 9,0,0,255,1,2,4,4,8,8,16,16,16,32,32,7, - 12,12,9,1,0,56,68,130,130,68,56,68,130,130,130,68, - 56,7,12,12,9,1,0,56,68,130,130,130,130,70,58,2, - 130,132,120,1,9,9,4,2,0,128,128,0,0,0,0,0, - 128,128}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=13 h=16 x= 3 y=10 dx=17 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12r[1907] U8G_FONT_SECTION("u8g_font_helvR12r") = { - 0,20,26,254,250,12,2,91,5,99,32,127,252,13,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=18 len=36 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14[4920] U8G_FONT_SECTION("u8g_font_helvR14") = { - 0,22,29,254,249,14,2,149,6,82,32,255,252,18,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,5,0,1,2, - 14,14,6,2,252,192,192,0,0,64,64,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,4,4,62,127,107,200,200, - 200,200,107,127,62,16,16,9,13,26,10,0,0,30,0,63, - 0,97,128,97,128,96,0,48,0,126,0,24,0,24,0,48, - 0,96,128,255,128,223,0,8,7,7,10,1,3,195,255,102, - 102,102,255,195,8,13,13,10,1,0,195,195,102,102,102,60, - 255,24,255,24,24,24,24,2,18,18,5,1,252,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,8, - 18,18,10,1,252,60,126,195,195,240,124,110,199,195,227,115, - 62,14,7,195,195,126,60,5,2,2,6,0,12,216,216,13, - 14,28,15,1,0,15,128,48,96,64,16,71,16,136,136,144, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,7,1,6,112,152,56,72,216,104,0,248,7, - 6,6,9,1,2,54,108,216,216,108,54,9,5,10,11,1, - 3,255,128,255,128,1,128,1,128,1,128,5,1,1,6,0, - 5,248,13,14,28,14,0,0,15,128,48,96,64,16,79,144, - 136,72,136,72,136,72,143,136,137,8,136,136,72,80,64,16, - 48,96,15,128,5,1,1,5,0,12,248,5,5,5,7,1, - 8,112,216,136,216,112,8,11,11,10,1,0,24,24,24,255, - 255,24,24,24,0,255,255,5,8,8,6,0,5,112,248,152, - 24,48,96,248,248,5,8,8,6,0,5,112,248,152,48,48, - 152,248,112,4,3,3,4,0,11,48,96,192,8,14,14,10, - 1,252,195,195,195,195,195,195,195,231,255,219,192,192,192,192, - 8,18,18,10,1,252,63,114,242,242,242,242,242,114,50,18, - 18,18,18,18,18,18,18,18,2,2,2,4,1,4,192,192, - 5,5,5,5,0,252,96,112,24,216,240,4,8,8,6,0, - 5,48,240,240,48,48,48,48,48,5,8,8,7,1,6,112, - 216,136,136,216,112,0,248,7,6,6,9,1,2,216,108,54, - 54,108,216,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,136,49,24,51,56,6,120,6,216,12,252,24, - 24,24,24,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,184,49,124,51,76,6,12,6,24,12,48,24, - 124,24,124,14,13,26,15,0,0,112,48,248,48,152,96,48, - 192,48,192,153,136,249,24,115,56,6,120,6,216,12,252,24, - 24,24,24,7,14,14,10,1,252,24,24,0,0,24,24,24, - 56,112,224,198,198,254,124,12,18,36,13,0,0,24,0,12, - 0,6,0,0,0,6,0,6,0,15,0,15,0,25,128,25, - 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, - 48,12,18,36,13,0,0,1,128,3,0,6,0,0,0,6, - 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, - 192,127,224,96,96,96,96,192,48,192,48,12,18,36,13,0, - 0,6,0,15,0,25,128,0,0,6,0,6,0,15,0,15, - 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, - 96,192,48,192,48,12,18,36,13,0,0,12,128,22,128,19, - 0,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, - 17,34,13,0,0,25,128,25,128,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,12,17,34,13,0,0,6,0,9, - 0,9,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,16, - 14,28,18,1,0,7,255,7,255,13,128,13,128,25,128,25, - 128,49,254,49,254,63,128,127,128,97,128,97,128,193,255,193, - 255,12,18,36,14,1,252,15,128,63,224,112,112,96,48,224, - 0,192,0,192,0,192,0,192,0,224,0,96,48,112,112,63, - 224,15,128,6,0,3,0,27,0,30,0,10,18,36,13,2, - 0,48,0,24,0,12,0,0,0,255,192,255,192,192,0,192, - 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,192,255,192,10,18,36,13,2,0,3,0,6,0,12, - 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, - 18,36,13,2,0,12,0,30,0,51,0,0,0,255,192,255, - 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, - 0,192,0,192,0,255,192,255,192,10,17,34,13,2,0,51, - 0,51,0,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,128,255,128,192,0,192,0,192,0,192,0,255,192,255, - 192,4,18,18,6,0,0,192,96,48,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,4,18,18,6,2,0,48, - 96,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,6,18,18,6,0,0,48,120,132,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,6,17,17,6,0,0,204, - 204,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 14,14,28,14,255,0,63,224,63,240,48,56,48,24,48,12, - 48,12,254,12,254,12,48,12,48,12,48,24,48,56,63,240, - 63,224,11,18,36,14,1,0,12,128,22,128,19,0,0,0, - 192,96,224,96,240,96,240,96,216,96,204,96,204,96,198,96, - 198,96,195,96,193,224,193,224,192,224,192,96,13,18,36,15, - 1,0,24,0,12,0,6,0,0,0,15,128,63,224,112,112, - 96,48,224,56,192,24,192,24,192,24,192,24,224,56,96,48, - 112,112,63,224,15,128,13,18,36,15,1,0,1,128,3,0, - 6,0,0,0,15,128,63,224,112,112,96,48,224,56,192,24, - 192,24,192,24,192,24,224,56,96,48,112,112,63,224,15,128, - 13,18,36,15,1,0,3,0,7,128,12,192,0,0,15,128, - 63,224,112,112,96,48,224,56,192,24,192,24,192,24,192,24, - 224,56,96,48,112,112,63,224,15,128,13,18,36,15,1,0, - 6,64,11,64,9,128,0,0,15,128,63,224,112,112,96,48, - 224,56,192,24,192,24,192,24,192,24,224,56,96,48,112,112, - 63,224,15,128,13,17,34,15,1,0,12,192,12,192,0,0, - 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, - 192,24,224,56,96,48,112,112,63,224,15,128,10,9,18,10, - 0,0,192,192,97,128,51,0,30,0,12,0,30,0,51,0, - 97,128,192,192,14,14,28,15,0,0,7,204,31,248,56,48, - 48,120,112,220,97,140,99,12,98,12,102,12,108,28,56,24, - 56,56,111,240,199,192,11,18,36,14,1,0,24,0,12,0, - 6,0,0,0,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,96,192,127,192,31,0, - 11,18,36,14,1,0,3,0,6,0,12,0,0,0,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,14,1,0, - 6,0,15,0,25,128,0,0,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,96,192, - 127,192,31,0,11,17,34,14,1,0,49,128,49,128,0,0, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,96,192,127,192,31,0,12,18,36,13, - 0,0,1,128,3,0,6,0,0,0,192,48,192,48,96,96, - 96,96,48,192,57,192,25,128,15,0,6,0,6,0,6,0, - 6,0,6,0,6,0,10,14,28,12,1,0,192,0,192,0, - 192,0,255,0,255,128,193,192,192,192,192,192,193,192,255,128, - 255,0,192,0,192,0,192,0,7,14,14,9,1,0,56,124, - 198,198,198,198,220,220,198,198,198,198,222,220,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,126,0,231,0,195,0, - 7,0,127,0,227,0,195,0,195,0,231,128,121,128,9,14, - 28,11,1,0,12,0,24,0,48,0,0,0,126,0,231,0, - 195,0,7,0,127,0,227,0,195,0,195,0,231,128,121,128, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,126,0, - 231,0,195,0,7,0,127,0,227,0,195,0,195,0,231,128, - 121,128,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 126,0,231,0,195,0,7,0,127,0,227,0,195,0,195,0, - 231,128,121,128,9,14,28,11,1,0,102,0,102,0,0,0, - 0,0,126,0,231,0,195,0,7,0,127,0,227,0,195,0, - 195,0,231,128,121,128,9,14,28,11,1,0,24,0,36,0, - 36,0,24,0,126,0,231,0,195,0,7,0,127,0,227,0, - 195,0,195,0,231,128,121,128,14,10,20,17,2,0,126,240, - 231,248,195,12,7,12,127,252,227,0,195,0,195,140,231,252, - 122,240,8,14,14,10,1,252,62,127,99,192,192,192,192,99, - 127,62,24,12,108,120,8,14,14,10,1,0,48,24,12,0, - 60,126,195,195,255,192,192,227,127,60,8,14,14,10,1,0, - 12,24,48,0,60,126,195,195,255,192,192,227,127,60,8,14, - 14,10,1,0,24,60,102,0,60,126,195,195,255,192,192,227, - 127,60,8,14,14,10,1,0,102,102,0,0,60,126,195,195, - 255,192,192,227,127,60,4,14,14,4,0,0,192,96,48,0, - 96,96,96,96,96,96,96,96,96,96,4,14,14,4,0,0, - 48,96,192,0,96,96,96,96,96,96,96,96,96,96,6,14, - 14,4,255,0,48,120,204,0,48,48,48,48,48,48,48,48, - 48,48,5,14,14,4,0,0,216,216,0,0,96,96,96,96, - 96,96,96,96,96,96,9,14,28,11,1,0,96,0,54,0, - 56,0,76,0,62,0,127,0,99,0,193,128,193,128,193,128, - 193,128,99,0,127,0,62,0,8,14,14,10,1,0,50,90, - 76,0,222,255,227,195,195,195,195,195,195,195,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,62,0,127,0,99,0, - 193,128,193,128,193,128,193,128,99,0,127,0,62,0,9,14, - 28,11,1,0,6,0,12,0,24,0,0,0,62,0,127,0, - 99,0,193,128,193,128,193,128,193,128,99,0,127,0,62,0, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 62,0,127,0,99,0,193,128,193,128,193,128,193,128,99,0, - 127,0,62,0,9,14,28,11,1,0,51,0,51,0,0,0, - 0,0,62,0,127,0,99,0,193,128,193,128,193,128,193,128, - 99,0,127,0,62,0,8,8,8,10,1,1,24,24,0,255, - 255,0,24,24,11,10,20,11,0,0,14,96,63,192,49,128, - 99,192,102,192,108,192,120,192,49,128,127,128,206,0,8,14, - 14,10,1,0,48,24,12,0,195,195,195,195,195,195,195,199, - 255,123,8,14,14,10,1,0,6,12,24,0,195,195,195,195, - 195,195,195,199,255,123,8,14,14,10,1,0,24,60,102,0, - 195,195,195,195,195,195,195,199,255,123,8,14,14,10,1,0, - 102,102,0,0,195,195,195,195,195,195,195,199,255,123,8,18, - 18,10,1,252,6,12,24,0,195,195,195,102,102,102,36,60, - 24,24,24,24,112,112,9,18,36,11,1,252,192,0,192,0, - 192,0,192,0,222,0,255,0,227,0,193,128,193,128,193,128, - 193,128,227,0,255,0,222,0,192,0,192,0,192,0,192,0, - 8,18,18,10,1,252,102,102,0,0,195,195,195,102,102,102, - 36,60,24,24,24,24,112,112}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 13 - Calculated Max Values w= 9 h=14 x= 2 y= 7 dx=10 dy= 0 ascent=14 len=26 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =13 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14n[311] U8G_FONT_SECTION("u8g_font_helvR14n") = { - 0,22,29,254,249,13,0,0,0,0,42,58,0,14,253,13, - 0,5,7,7,7,1,7,32,168,248,32,248,168,32,8,10, - 10,10,1,0,24,24,24,24,255,255,24,24,24,24,2,5, - 5,5,1,253,192,192,64,64,128,5,1,1,6,0,5,248, - 2,2,2,5,1,0,192,192,5,14,14,5,0,0,24,24, - 24,24,48,48,48,96,96,96,192,192,192,192,8,13,13,10, - 1,0,60,126,102,195,195,195,195,195,195,195,102,126,60,5, - 13,13,10,2,0,24,248,248,24,24,24,24,24,24,24,24, - 24,24,8,13,13,10,1,0,60,254,195,3,7,14,28,56, - 112,224,192,255,255,8,13,13,10,1,0,62,127,195,195,6, - 28,30,7,3,195,199,126,60,9,13,26,10,0,0,3,0, - 7,0,15,0,27,0,51,0,51,0,99,0,195,0,255,128, - 255,128,3,0,3,0,3,0,8,13,13,10,1,0,254,254, - 192,192,252,254,199,3,3,195,199,254,124,8,13,13,10,1, - 0,60,127,99,192,192,220,254,195,195,195,227,126,60,8,13, - 13,10,1,0,255,255,3,6,12,12,24,24,48,48,96,96, - 96,8,13,13,10,1,0,60,126,231,195,195,102,126,231,195, - 195,231,126,60,8,13,13,10,1,0,60,126,199,195,195,195, - 127,59,3,3,198,254,124,2,10,10,5,1,0,192,192,0, - 0,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14r[2281] U8G_FONT_SECTION("u8g_font_helvR14r") = { - 0,22,29,254,249,14,2,149,6,82,32,127,252,14,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18[7307] U8G_FONT_SECTION("u8g_font_helvR18") = { - 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, - 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, - 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, - 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, - 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, - 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, - 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, - 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, - 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, - 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, - 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, - 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, - 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, - 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, - 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, - 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, - 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, - 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, - 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, - 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, - 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, - 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, - 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, - 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, - 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, - 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, - 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, - 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, - 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, - 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, - 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, - 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, - 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, - 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, - 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, - 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, - 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, - 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, - 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, - 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, - 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, - 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, - 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, - 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, - 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, - 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, - 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, - 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, - 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, - 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, - 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, - 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, - 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, - 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, - 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, - 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, - 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, - 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, - 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, - 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, - 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, - 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, - 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, - 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, - 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, - 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, - 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, - 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, - 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, - 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, - 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, - 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, - 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, - 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, - 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, - 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, - 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, - 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, - 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, - 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, - 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, - 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, - 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, - 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, - 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, - 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, - 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, - 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, - 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, - 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, - 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, - 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, - 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, - 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, - 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, - 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, - 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, - 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, - 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, - 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, - 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, - 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, - 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, - 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, - 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, - 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, - 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, - 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, - 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, - 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, - 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, - 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, - 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, - 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, - 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, - 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, - 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, - 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, - 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, - 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, - 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, - 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, - 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, - 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, - 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, - 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, - 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, - 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, - 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, - 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, - 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, - 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, - 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, - 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, - 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, - 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, - 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, - 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, - 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, - 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, - 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, - 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, - 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, - 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, - 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, - 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, - 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, - 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, - 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, - 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, - 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, - 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, - 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, - 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, - 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, - 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, - 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, - 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, - 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, - 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, - 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, - 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, - 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, - 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, - 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, - 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, - 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, - 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, - 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, - 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, - 0,6,0,6,0,12,0,60,0,56,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=12 h=19 x= 2 y=12 dx=14 dy= 0 ascent=19 len=36 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =19 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18n[536] U8G_FONT_SECTION("u8g_font_helvR18n") = { - 0,28,37,253,248,18,0,0,0,0,42,58,0,19,253,18, - 0,7,7,7,10,1,12,16,16,214,124,56,108,68,12,12, - 24,14,1,1,6,0,6,0,6,0,6,0,6,0,255,240, - 255,240,6,0,6,0,6,0,6,0,6,0,2,6,6,6, - 2,253,192,192,192,64,64,128,6,2,2,8,1,6,252,252, - 2,3,3,6,2,0,192,192,192,7,19,19,7,0,0,6, - 4,12,12,8,24,24,16,16,48,48,32,96,96,64,192,192, - 128,128,11,18,36,13,1,0,31,0,63,128,113,192,96,192, - 96,192,224,224,192,96,192,96,192,96,192,96,192,96,192,96, - 224,224,96,192,96,192,113,192,63,128,31,0,6,18,18,13, - 2,0,12,12,28,252,252,12,12,12,12,12,12,12,12,12, - 12,12,12,12,11,18,36,13,1,0,30,0,127,128,97,192, - 192,192,192,96,192,96,0,224,0,192,1,192,3,128,15,0, - 28,0,56,0,112,0,224,0,192,0,255,224,255,224,11,18, - 36,13,1,0,31,0,127,128,97,128,192,192,192,192,192,192, - 0,192,1,128,15,0,15,192,0,192,0,96,0,96,192,96, - 192,192,97,192,127,128,31,0,11,18,36,13,1,0,1,128, - 3,128,3,128,7,128,15,128,13,128,25,128,57,128,49,128, - 97,128,225,128,193,128,255,224,255,224,1,128,1,128,1,128, - 1,128,11,18,36,13,1,0,127,192,127,192,96,0,96,0, - 96,0,96,0,126,0,127,128,113,192,0,192,0,224,0,96, - 0,96,192,224,192,192,225,192,127,128,30,0,11,18,36,13, - 1,0,15,0,63,192,112,192,96,96,224,96,192,0,192,0, - 207,0,223,128,241,192,224,192,192,96,192,96,192,96,224,224, - 113,192,127,192,31,0,11,18,36,13,1,0,255,224,255,224, - 0,224,0,192,1,128,1,128,3,0,3,0,6,0,6,0, - 12,0,12,0,28,0,24,0,24,0,56,0,48,0,48,0, - 11,18,36,13,1,0,14,0,63,128,49,128,96,192,96,192, - 96,192,49,128,31,0,63,128,113,192,96,192,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,13,1,0, - 31,0,127,192,113,192,224,192,192,96,192,96,192,96,192,96, - 224,224,113,224,127,96,30,96,0,96,0,224,192,192,225,192, - 127,128,30,0,2,14,14,6,2,0,192,192,192,0,0,0, - 0,0,0,0,0,192,192,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=25 dy= 0 ascent=20 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18r[3381] U8G_FONT_SECTION("u8g_font_helvR18r") = { - 0,28,37,253,248,19,4,37,9,49,32,127,251,20,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=22 dx=34 dy= 0 ascent=31 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24[10931] U8G_FONT_SECTION("u8g_font_helvR24") = { - 0,39,48,251,245,25,5,215,14,105,32,255,249,31,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,1,3,25,25,11,4,249,224,224,224,224, - 0,0,64,64,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,14,25,50,19,2,252,0,32,0,96,0, - 64,7,224,31,240,60,248,120,188,112,156,112,156,225,128,225, - 0,225,0,227,0,227,0,226,12,226,28,118,28,124,60,60, - 120,31,240,15,224,8,0,24,0,16,0,16,0,15,24,48, - 19,1,0,3,192,15,248,31,252,60,60,120,30,112,14,112, - 14,112,0,112,0,56,0,56,0,255,192,255,192,12,0,14, - 0,14,0,12,0,28,0,24,0,56,0,115,134,255,254,255, - 254,96,124,12,13,26,18,3,5,230,48,255,240,127,240,112, - 224,96,96,224,112,224,112,224,112,96,96,112,224,127,240,255, - 240,230,48,16,24,48,18,1,0,224,7,224,7,112,14,112, - 14,56,28,56,28,28,56,28,56,14,112,14,112,7,224,127, - 254,127,254,127,254,1,192,1,192,127,254,127,254,127,254,1, - 192,1,192,1,192,1,192,1,192,2,32,32,9,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,15, - 32,64,18,1,249,3,192,15,240,31,248,28,120,56,60,56, - 28,56,28,60,0,30,0,31,128,63,224,113,240,224,248,224, - 124,224,28,224,30,112,14,124,14,62,14,31,28,15,156,3, - 248,1,240,0,240,0,120,112,56,112,56,120,56,56,112,63, - 240,31,224,7,128,8,3,3,11,1,22,231,231,231,24,25, - 75,25,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,24,48,126,12,96,255,134,97,193,198,195,128,195,195, - 0,3,199,0,3,134,0,1,134,0,1,134,0,1,134,0, - 1,199,0,3,195,128,195,97,225,198,96,255,134,48,62,12, - 24,0,24,28,0,56,7,1,224,3,255,128,0,254,0,10, - 15,30,12,1,10,63,0,119,128,97,128,1,128,7,128,127, - 128,225,128,193,128,195,128,231,128,125,192,0,0,0,0,255, - 192,255,192,12,9,18,18,3,5,28,112,56,224,113,192,227, - 128,195,0,227,128,113,192,56,224,28,112,16,9,18,19,1, - 3,255,255,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,8,2,2,11,1,8,255,255,24,25,75,25,0, - 0,0,126,0,3,255,128,7,1,224,12,0,112,24,0,24, - 48,0,12,97,255,6,97,255,134,193,129,195,193,128,195,193, - 128,195,129,129,129,129,255,1,129,252,1,129,142,1,193,134, - 3,193,131,3,97,129,134,97,129,198,48,0,12,24,0,24, - 28,0,56,7,1,224,3,255,128,0,126,0,9,2,4,11, - 1,22,255,128,255,128,9,9,18,13,2,15,62,0,127,0, - 227,128,193,128,193,128,193,128,227,128,127,0,62,0,17,21, - 63,19,1,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,255,255,128,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,0,0,0,0,0,0,255,255,128,255,255,128, - 255,255,128,9,15,30,11,1,9,30,0,127,0,99,0,193, - 128,193,128,1,128,3,0,7,0,30,0,56,0,112,0,224, - 0,192,0,255,128,255,128,9,15,30,11,1,9,62,0,127, - 0,227,128,193,128,193,128,3,128,15,0,15,0,3,128,1, - 128,193,128,193,128,227,128,127,0,62,0,7,5,5,11,3, - 22,30,60,56,112,224,14,24,48,19,2,250,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,240,124,255,252,255,220,255,28, - 224,0,224,0,224,0,224,0,224,0,224,0,16,30,60,17, - 1,251,7,255,31,255,63,140,63,140,127,140,127,140,255,140, - 255,140,255,140,255,140,127,140,127,140,63,140,63,140,31,140, - 3,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, - 1,140,1,140,1,140,1,140,1,140,1,140,1,140,4,4, - 4,9,3,11,96,240,240,96,7,7,7,11,2,249,24,24, - 60,14,6,206,124,5,15,15,11,2,9,24,56,248,248,24, - 24,24,24,24,24,24,24,24,24,24,10,15,30,12,1,10, - 30,0,127,128,97,128,225,192,192,192,192,192,192,192,192,192, - 225,192,97,128,127,128,30,0,0,0,255,192,255,192,12,9, - 18,18,3,5,227,128,113,192,56,224,28,112,12,48,28,112, - 56,224,113,192,227,128,25,25,100,28,1,0,0,0,48,0, - 24,0,112,0,56,0,96,0,248,0,224,0,248,1,192,0, - 24,1,128,0,24,3,128,0,24,3,0,0,24,7,0,0, - 24,14,0,0,24,12,0,0,24,28,6,0,24,24,14,0, - 24,56,30,0,24,112,62,0,24,96,118,0,0,224,102,0, - 1,192,198,0,1,129,198,0,3,131,134,0,3,3,255,128, - 7,3,255,128,6,0,6,0,14,0,6,0,12,0,6,0, - 25,25,100,28,1,0,0,0,96,0,24,0,224,0,56,0, - 192,0,248,1,128,0,248,3,128,0,24,3,0,0,24,6, - 0,0,24,14,0,0,24,12,0,0,24,28,0,0,24,24, - 0,0,24,56,60,0,24,48,255,0,24,112,195,128,24,97, - 129,128,24,193,129,128,1,192,3,128,1,128,7,0,3,128, - 14,0,3,0,60,0,6,0,112,0,14,0,224,0,12,1, - 192,0,28,1,255,128,24,1,255,128,25,24,96,28,1,0, - 62,0,14,0,127,0,12,0,99,128,24,0,193,128,56,0, - 193,128,48,0,3,128,96,0,15,0,224,0,15,128,192,0, - 1,193,128,0,0,195,128,0,192,195,6,0,192,199,14,0, - 97,206,30,0,127,140,62,0,30,24,118,0,0,56,102,0, - 0,48,198,0,0,97,198,0,0,227,134,0,1,195,255,128, - 1,131,255,128,3,0,6,0,7,0,6,0,6,0,6,0, - 14,25,50,19,3,249,3,128,3,128,3,128,3,128,0,0, - 0,0,3,128,3,128,3,128,7,128,7,0,15,0,30,0, - 60,0,120,0,112,0,240,0,224,28,224,28,224,28,240,60, - 120,120,127,240,63,224,7,128,20,31,93,22,1,0,3,192, - 0,1,224,0,0,224,0,0,112,0,0,56,0,0,0,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,3, - 252,0,3,156,0,3,156,0,7,158,0,7,14,0,7,14, - 0,15,15,0,14,15,0,14,7,0,30,7,128,31,255,128, - 31,255,128,63,255,192,60,3,192,56,1,192,120,1,224,120, - 1,224,112,0,224,240,0,240,240,0,240,20,31,93,22,1, - 0,0,60,0,0,120,0,0,112,0,0,224,0,1,192,0, - 0,0,0,0,240,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,3,156,0,7,158,0,7,14, - 0,7,14,0,15,15,0,15,15,0,14,7,0,30,7,128, - 31,255,128,31,255,128,63,255,192,60,3,192,120,1,192,120, - 1,224,120,1,224,112,0,224,240,0,240,240,0,240,20,31, - 93,22,1,0,0,64,0,0,224,0,1,240,0,3,184,0, - 7,28,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,1,198,0,3,254,0,7,252,0, - 6,56,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,3,156,0,3,156,0,3,156,0, - 0,0,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,31,93,22,1,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,240,0,0, - 240,0,1,248,0,1,248,0,3,252,0,3,156,0,3,156, - 0,7,158,0,7,14,0,7,14,0,15,15,0,14,15,0, - 14,7,0,30,7,128,31,255,128,31,255,128,63,255,192,60, - 3,192,56,1,192,120,1,224,120,1,224,112,0,224,240,0, - 240,240,0,240,29,25,100,32,1,0,0,127,255,248,0,127, - 255,248,0,255,255,248,0,227,128,0,1,195,128,0,1,195, - 128,0,3,195,128,0,3,131,128,0,3,131,128,0,7,131, - 128,0,7,3,128,0,7,3,255,240,15,3,255,240,14,3, - 255,240,30,3,128,0,31,255,128,0,31,255,128,0,63,255, - 128,0,56,3,128,0,120,3,128,0,120,3,128,0,112,3, - 128,0,240,3,255,248,224,3,255,248,224,3,255,248,20,32, - 96,23,2,249,1,248,0,7,254,0,15,255,128,31,7,128, - 60,3,192,120,1,224,112,0,224,112,0,224,240,0,0,240, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,112,240,0,112,112,0,240,112,0,224,120,1,224, - 60,3,192,31,7,192,15,255,128,7,254,0,1,248,0,0, - 96,0,0,96,0,0,240,0,0,56,0,0,24,0,3,56, - 0,1,240,0,17,31,93,22,3,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,224,0,0,0,0,255,255,0,255, - 255,0,255,255,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,255,255,0, - 255,255,0,255,255,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,255,255, - 128,255,255,128,255,255,128,17,31,93,22,3,0,0,120,0, - 0,240,0,0,224,0,1,192,0,3,128,0,0,0,0,255, - 255,0,255,255,0,255,255,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 255,255,0,255,255,0,255,255,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,255,255,128,255,255,128,255,255,128,17,31,93,22,3,0, - 0,128,0,1,192,0,3,224,0,7,112,0,14,56,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,17,30,90, - 22,3,0,28,56,0,28,56,0,28,56,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,7,31,31, - 9,0,0,240,120,56,28,14,0,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,7,31,31,9,2,0,30,60,56,112,224,0,112,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,9,31,62,9,0,0,8,0,28, - 0,62,0,119,0,227,128,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,9,30,60,9,0, - 0,227,128,227,128,227,128,0,0,0,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,21,25,75, - 23,0,0,31,254,0,31,255,128,31,255,192,28,3,224,28, - 0,224,28,0,240,28,0,112,28,0,112,28,0,56,28,0, - 56,28,0,56,255,192,56,255,192,56,28,0,56,28,0,56, - 28,0,56,28,0,120,28,0,112,28,0,112,28,0,240,28, - 0,224,28,3,192,31,255,192,31,255,128,31,254,0,19,30, - 90,24,2,0,1,198,0,3,254,0,7,252,0,6,56,0, - 0,0,0,240,0,224,248,0,224,248,0,224,252,0,224,252, - 0,224,254,0,224,239,0,224,231,0,224,231,128,224,227,192, - 224,227,192,224,225,224,224,224,224,224,224,240,224,224,120,224, - 224,56,224,224,60,224,224,28,224,224,30,224,224,15,224,224, - 7,224,224,7,224,224,3,224,224,1,224,224,1,224,23,31, - 93,25,1,0,0,240,0,0,120,0,0,56,0,0,28,0, - 0,14,0,0,0,0,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,248,60,0,120,120,0,60,112,0,28,112,0, - 28,240,0,30,224,0,14,224,0,14,224,0,14,224,0,14, - 224,0,14,240,0,30,240,0,30,112,0,28,120,0,60,60, - 0,120,62,0,248,31,1,240,15,255,224,3,255,128,0,254, - 0,23,31,93,25,1,0,0,15,0,0,30,0,0,28,0, - 0,56,0,0,112,0,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,23,31,93,25,1,0,0,16,0,0,56,0, - 0,124,0,0,238,0,1,199,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,30,90,25,1,0,0,113,128, - 0,255,128,1,255,0,1,142,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,29,87,25,1,0,1,195,128, - 1,195,128,1,195,128,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,15,15,30,19,2,1,64,4,224,14,240,30, - 120,60,60,120,31,240,15,224,7,192,7,192,15,224,30,240, - 60,120,120,60,240,30,96,12,23,25,75,25,1,0,0,254, - 6,3,255,140,15,255,248,31,1,240,62,0,248,60,0,248, - 120,1,188,112,3,28,112,6,28,240,6,30,224,12,14,224, - 24,14,224,48,14,224,96,14,224,192,14,225,128,30,243,0, - 30,118,0,28,124,0,60,60,0,120,62,0,248,63,1,240, - 111,255,224,195,255,128,0,254,0,18,31,93,24,3,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,112,0,0,0, - 0,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,240,3,192,120,7,128, - 124,15,128,63,255,0,31,254,0,3,240,0,18,31,93,24, - 3,0,0,120,0,0,240,0,0,224,0,1,192,0,3,128, - 0,0,0,0,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,240,3,192, - 120,7,128,124,15,128,63,255,0,31,254,0,3,240,0,18, - 31,93,24,3,0,0,64,0,0,224,0,1,240,0,3,184, - 0,7,28,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,18,30,90,24,3,0,14,28,0,14,28,0,14,28, - 0,0,0,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,31,93,22,1,0,0,60,0,0,120,0,0,112, - 0,0,224,0,1,192,0,0,0,0,224,0,224,240,1,224, - 112,1,192,120,3,192,56,3,128,60,7,128,28,15,0,30, - 15,0,15,30,0,7,28,0,7,188,0,3,184,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,17,25,75,22,3,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,255,248,0,255,254,0, - 255,255,0,224,15,0,224,7,0,224,7,128,224,3,128,224, - 3,128,224,7,128,224,7,0,224,15,0,255,254,0,255,252, - 0,255,248,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,14,25,50,20,4,0,15,128,63,224, - 127,240,120,240,240,120,224,56,224,56,224,56,224,120,224,240, - 227,224,227,224,227,240,224,120,224,60,224,28,224,28,224,28, - 224,28,224,28,224,56,224,120,231,240,231,224,231,128,16,25, - 50,18,1,0,15,0,7,128,3,128,1,192,0,224,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 121,252,127,223,63,143,16,25,50,18,1,0,0,240,1,224, - 1,192,3,128,7,0,0,0,0,0,15,224,63,248,60,124, - 112,28,112,28,0,28,0,28,0,252,31,252,127,156,120,28, - 240,28,224,28,224,60,224,124,120,252,127,223,63,143,16,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 120,252,127,223,63,143,16,24,48,18,1,0,7,24,15,248, - 31,240,24,224,0,0,0,0,15,224,63,248,60,124,112,28, - 112,28,0,28,0,28,0,252,31,252,127,156,120,28,240,28, - 224,28,224,60,224,124,120,252,127,223,63,143,16,23,46,18, - 1,0,14,112,14,112,14,112,0,0,0,0,15,224,63,248, - 60,252,112,28,112,28,0,28,0,28,0,252,31,252,127,156, - 120,28,240,28,224,28,224,60,224,124,121,252,127,223,63,143, - 16,25,50,18,1,0,3,128,6,192,4,64,4,64,6,192, - 3,128,0,0,15,224,63,248,60,124,112,28,112,28,0,28, - 0,28,0,252,31,252,127,156,120,28,240,28,224,28,224,60, - 224,124,120,252,127,223,63,143,26,18,72,29,1,0,7,192, - 248,0,31,241,254,0,60,127,143,0,112,62,3,128,112,30, - 3,128,0,28,1,192,0,28,1,192,0,252,1,192,15,255, - 255,192,63,255,255,192,126,31,255,192,240,28,0,0,224,28, - 1,192,224,30,1,192,224,126,3,128,248,247,143,0,127,231, - 255,0,63,129,252,0,14,25,50,17,1,249,7,192,31,240, - 63,248,56,56,112,28,112,28,224,0,224,0,224,0,224,0, - 224,0,224,28,224,28,112,56,120,120,63,240,31,224,7,128, - 3,0,3,0,7,128,1,192,0,192,25,192,15,128,15,25, - 50,18,1,0,30,0,15,0,7,0,3,128,1,192,0,0, - 0,0,7,192,31,240,62,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,15,224,15,25,50,18,1,0,1,224,3,192, - 3,128,7,0,14,0,0,0,0,0,7,192,31,240,60,120, - 120,28,112,28,240,14,224,14,224,14,255,254,255,254,224,0, - 224,0,224,14,112,14,120,28,60,124,31,240,15,224,15,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,7,192,31,240,60,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,7,192,15,23,46,18,1,0,28,112,28,112, - 28,112,0,0,0,0,7,192,31,240,60,120,120,28,112,28, - 240,14,224,14,224,14,255,254,255,254,224,0,224,0,224,14, - 112,14,120,28,60,124,31,240,7,192,7,25,25,9,0,0, - 240,120,56,28,14,0,0,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,7,25,25,9,2,0,30, - 60,56,112,224,0,0,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,9,25,50,9,0,0,8,0, - 28,0,62,0,119,0,227,128,0,0,0,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 8,23,23,9,1,0,231,231,231,0,0,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,15,25,50, - 19,1,0,120,64,60,224,31,192,15,128,31,128,59,192,17, - 224,7,240,31,248,63,248,120,60,112,28,112,28,224,14,224, - 14,224,14,224,14,224,14,224,14,112,28,112,28,120,60,63, - 248,31,240,7,192,14,24,48,18,2,0,14,48,31,240,63, - 224,49,192,0,0,0,0,3,192,239,240,255,248,248,60,240, - 28,240,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,15,25,50,19,1, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,25,50,19,1,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,7,192,31,240,63,248,120,60,112, - 28,112,28,224,14,224,14,224,14,224,14,224,14,224,14,112, - 28,112,28,120,60,63,248,31,240,7,192,15,25,50,19,1, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,24,48,19,1,0,14,48,31,240,63,224,49, - 192,0,0,0,0,7,192,31,240,63,248,120,60,112,28,112, - 28,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,120,60,63,248,31,240,7,192,15,23,46,19,1,0,28, - 112,28,112,28,112,0,0,0,0,7,192,31,240,63,248,120, - 60,112,28,112,28,224,14,224,14,224,14,224,14,224,14,224, - 14,112,28,112,28,120,60,63,248,31,240,7,192,15,15,30, - 19,2,1,3,128,3,128,3,128,0,0,0,0,0,0,255, - 254,255,254,255,254,0,0,0,0,0,0,3,128,3,128,3, - 128,16,18,36,19,2,0,7,195,31,246,63,252,120,120,112, - 28,112,60,224,110,224,206,225,142,227,14,230,14,236,14,120, - 28,112,28,56,60,127,248,223,240,135,192,14,25,50,19,2, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,25,50,19,2,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 60,224,60,240,252,127,252,63,220,15,0,14,25,50,19,2, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,23,46,19,2,0,28,224,28,224,28,224,0, - 0,0,0,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,60,224,60,240, - 252,127,252,63,220,15,0,14,32,64,17,1,249,0,240,1, - 224,1,192,3,128,7,0,0,0,0,0,224,28,224,28,224, - 60,112,56,112,56,112,56,120,112,56,112,56,240,60,224,28, - 224,29,192,29,192,15,192,15,128,15,128,7,0,7,0,7, - 0,14,0,14,0,30,0,124,0,124,0,112,0,15,31,62, - 19,2,250,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,231,224,239,240,255,248,248,60,240,28,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,240,28,240,28,248,60,255, - 248,239,240,227,192,224,0,224,0,224,0,224,0,224,0,224, - 0,14,30,60,17,1,249,28,112,28,112,28,112,0,0,0, - 0,224,28,224,28,224,60,112,56,112,56,112,120,120,112,56, - 112,56,240,60,224,28,224,29,192,29,192,15,192,15,128,15, - 128,7,0,7,0,7,0,14,0,14,0,30,0,124,0,124, - 0,112,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 4 y=15 dx=19 dy= 0 ascent=26 len=48 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24n[726] U8G_FONT_SECTION("u8g_font_helvR24n") = { - 0,39,48,251,245,24,0,0,0,0,42,58,0,26,251,24, - 0,10,11,22,13,1,15,12,0,12,0,76,128,237,192,127, - 128,63,0,30,0,63,0,115,128,225,192,64,128,17,16,48, - 19,1,1,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,3,9,9,9,3,251,224,224,224,224,32,96,96, - 192,128,8,2,2,11,1,8,255,255,3,4,4,9,3,0, - 224,224,224,224,9,24,48,9,0,0,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,8,0,24,0,24,0,24,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,15,24,48,18,1,0, - 7,192,31,240,63,248,60,120,120,60,112,28,112,28,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,112,28,112,28,112,60,60,120,63,248,31,240,7,192, - 8,24,24,18,3,0,3,7,7,15,63,255,255,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,24, - 48,18,1,0,7,192,31,240,63,248,120,60,112,28,240,14, - 224,14,224,14,0,14,0,28,0,60,0,120,0,240,3,224, - 7,192,31,0,60,0,120,0,112,0,224,0,224,0,255,254, - 255,254,255,254,15,24,48,18,1,0,7,192,31,240,63,248, - 56,56,112,28,112,28,112,28,112,28,0,28,0,56,3,248, - 3,240,3,248,0,60,0,30,0,14,224,14,224,14,224,14, - 112,28,120,60,63,248,31,240,7,192,16,24,48,18,0,0, - 0,24,0,56,0,120,0,120,0,248,1,248,3,184,3,184, - 7,56,14,56,14,56,28,56,56,56,56,56,112,56,224,56, - 255,255,255,255,255,255,0,56,0,56,0,56,0,56,0,56, - 15,24,48,18,1,0,63,252,63,252,63,252,56,0,56,0, - 56,0,112,0,112,0,119,192,127,240,127,248,120,124,112,28, - 0,30,0,14,0,14,0,14,224,14,224,30,240,28,120,124, - 127,248,63,240,15,128,15,24,48,18,1,0,3,192,15,240, - 31,248,60,56,56,28,112,28,112,0,112,0,96,0,227,192, - 239,240,255,248,248,60,240,28,240,14,224,14,224,14,96,14, - 112,14,112,28,56,60,63,248,31,240,7,192,15,24,48,18, - 1,0,255,254,255,254,255,254,0,14,0,28,0,24,0,56, - 0,112,0,112,0,224,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,7,0,14,0,14,0,14,0,28,0,28,0, - 28,0,15,24,48,18,1,0,7,192,31,240,63,248,56,60, - 112,28,112,28,112,28,112,28,120,60,60,120,31,240,15,224, - 63,248,120,60,112,28,224,14,224,14,224,14,224,14,240,28, - 120,60,63,248,31,240,7,192,15,24,48,18,1,0,7,192, - 31,240,63,248,120,124,112,60,240,28,224,30,224,14,224,14, - 224,14,224,30,224,30,112,62,127,254,63,238,15,206,0,14, - 0,28,224,28,240,60,120,120,63,240,63,224,15,128,3,18, - 18,9,4,0,224,224,224,224,0,0,0,0,0,0,0,0, - 0,0,224,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=20 dx=34 dy= 0 ascent=27 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24r[4992] U8G_FONT_SECTION("u8g_font_helvR24r") = { - 0,39,48,251,245,25,5,215,14,105,32,127,249,27,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255 - }; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 4 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[2193] U8G_FONT_SECTION("u8g_font_lucasfont_alternate") = { - 0,9,11,0,255,7,1,148,3,22,32,255,255,10,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,1,7,7,2,0,0,128,0,0,128,128,128,128, - 5,7,7,6,0,0,32,112,168,160,168,112,32,5,7,7, - 6,0,0,56,64,64,240,64,64,248,255,5,7,7,6,0, - 0,136,136,80,32,248,32,32,1,7,7,2,0,0,128,128, - 128,0,128,128,128,255,255,8,8,8,9,0,255,60,66,153, - 161,161,153,66,60,255,6,5,5,7,0,1,36,72,144,72, - 36,5,3,3,6,0,1,248,8,8,5,1,1,6,0,3, - 248,255,255,255,5,7,7,6,0,0,32,32,248,32,32,0, - 248,255,255,255,255,6,7,7,7,0,0,124,244,244,116,20, - 20,20,1,1,1,2,0,3,128,255,255,255,6,5,5,7, - 0,1,144,72,36,72,144,255,255,255,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,10,10,6,0,0,64,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,16,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,32,80,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,104,144,0, - 112,136,136,248,136,136,136,5,9,9,6,0,0,80,0,112, - 136,136,248,136,136,136,5,10,10,6,0,0,32,80,32,112, - 136,136,248,136,136,136,9,7,14,10,0,0,119,128,136,0, - 136,0,255,0,136,0,136,0,143,128,255,5,10,10,6,0, - 0,64,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,16,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,32,80,0,248,128,128,240,128,128,248,5,9,9,6,0, - 0,80,0,248,128,128,240,128,128,248,2,10,10,3,0,0, - 128,64,0,64,64,64,64,64,64,64,2,10,10,4,1,0, - 64,128,0,128,128,128,128,128,128,128,3,10,10,4,0,0, - 64,160,0,64,64,64,64,64,64,64,3,9,9,4,0,0, - 160,0,64,64,64,64,64,64,64,6,7,7,7,0,0,120, - 68,68,244,68,68,120,6,10,10,7,0,0,100,152,0,132, - 196,164,148,140,132,132,5,10,10,6,0,0,64,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,16,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,32,80,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,104,144,0,112, - 136,136,136,136,136,112,5,8,8,6,0,0,136,112,136,136, - 136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,255, - 5,10,10,6,0,0,64,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,16,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,32,80,0,136,136,136,136,136,136,112, - 5,8,8,6,0,0,136,0,136,136,136,136,136,112,5,10, - 10,6,0,0,16,32,0,136,136,136,80,32,32,32,255,4, - 8,8,5,0,255,96,144,144,160,144,144,160,128,5,8,8, - 6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,0, - 0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,32, - 80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,0, - 112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,120, - 136,120,5,9,9,6,0,0,32,80,32,0,112,8,120,136, - 120,9,5,10,10,0,0,119,0,8,128,127,0,136,0,119, - 128,255,5,8,8,6,0,0,64,32,0,112,136,240,128,120, - 5,8,8,6,0,0,16,32,0,112,136,240,128,120,5,8, - 8,6,0,0,32,80,0,112,136,240,128,120,5,7,7,6, - 0,0,80,0,112,136,240,128,120,2,7,7,3,0,0,128, - 64,0,64,64,64,64,2,7,7,3,0,0,64,128,0,128, - 128,128,128,3,7,7,4,0,0,64,160,0,64,64,64,64, - 3,6,6,4,0,0,160,0,64,64,64,64,255,5,8,8, - 6,0,0,104,144,0,240,136,136,136,136,5,8,8,6,0, - 0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,16, - 32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,0, - 112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,136, - 136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,112, - 5,5,5,6,0,1,32,0,248,0,32,255,5,8,8,6, - 0,0,64,32,0,136,136,136,136,120,5,8,8,6,0,0, - 16,32,0,136,136,136,136,120,5,8,8,6,0,0,32,80, - 0,136,136,136,136,120,5,7,7,6,0,0,80,0,136,136, - 136,136,120,5,9,9,6,0,255,16,32,0,136,136,136,120, - 8,112,255,5,8,8,6,0,255,80,0,136,136,136,120,8, - 112}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 3 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[216] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten") = { - 0,9,11,0,255,7,0,0,0,0,42,58,0,7,255,7, - 0,7,5,5,8,0,1,68,40,254,40,68,5,5,5,6, - 0,1,32,32,248,32,32,2,3,3,3,0,255,64,64,128, - 6,1,1,7,0,3,252,1,2,2,2,0,0,128,128,7, - 7,7,8,0,0,2,4,8,16,32,64,128,5,7,7,6, - 0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,32, - 96,32,32,32,32,248,5,7,7,6,0,0,112,136,8,16, - 32,64,248,5,7,7,6,0,0,240,8,8,120,8,8,240, - 5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7, - 6,0,0,248,128,112,8,8,136,112,5,7,7,6,0,0, - 112,136,128,240,136,136,112,5,7,7,6,0,0,248,8,16, - 32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136, - 112,5,7,7,6,0,0,112,136,136,120,8,136,112,1,4, - 4,2,0,1,128,0,0,128}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 4 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[1138] U8G_FONT_SECTION("u8g_font_lucasfont_alternater") = { - 0,9,11,0,255,7,1,148,3,22,32,127,255,7,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255}; -/* - Fontname: m2icon5 - Copyright: public domain - Capital A Height: 5, '1' Height: 0 - Calculated Max Values w= 9 h= 6 x= 0 y= 0 dx=10 dy= 0 ascent= 5 len=10 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_5[221] U8G_FONT_SECTION("u8g_font_m2icon_5") = { - 1,9,6,0,255,5,0,17,0,172,65,104,255,5,255,5, - 255,2,117,149,28,254,130,130,254,2,69,133,112,208,144,144, - 240,2,84,100,216,112,112,216,2,117,133,6,12,216,112,32, - 2,68,84,240,144,144,240,2,68,84,240,144,208,240,2,68, - 84,240,240,240,240,2,85,101,248,136,136,136,248,2,85,101, - 248,136,168,136,248,2,85,101,248,248,248,248,248,2,68,84, - 224,176,240,112,2,68,84,224,176,240,112,2,68,84,224,240, - 240,112,2,85,101,240,152,152,248,120,2,85,101,240,152,216, - 248,120,2,85,101,240,248,248,248,120,2,68,84,96,144,144, - 96,2,68,84,96,144,208,96,2,68,84,96,240,240,96,255, - 255,255,255,255,255,255,255,255,255,255,255,255,2,117,133,32, - 64,254,64,32,2,85,101,32,112,168,32,32,255,255,255,2, - 149,170,28,0,254,0,130,0,191,128,255,0,1,22,38,128, - 128,128,128,128,128,2,85,101,32,32,248,32,32}; -/* - Fontname: m2icon_7 - Copyright: public domain - Capital A Height: 7, '1' Height: 0 - Calculated Max Values w=12 h= 8 x= 0 y= 1 dx=13 dy= 0 ascent= 7 len=14 - Font Bounding box w=12 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_7[275] U8G_FONT_SECTION("u8g_font_m2icon_7") = { - 1,12,8,0,255,7,0,17,0,214,65,104,255,7,255,7, - 255,2,151,174,15,0,255,128,128,128,128,128,128,128,128,128, - 255,128,2,87,103,56,104,232,136,136,136,248,3,84,100,216, - 112,112,216,2,134,150,3,6,12,216,112,32,2,102,118,252, - 132,132,132,132,252,2,102,118,252,132,180,180,132,252,2,102, - 118,252,252,252,252,252,252,2,119,151,254,130,130,130,130,130, - 254,2,119,151,254,130,186,186,186,130,254,2,119,151,254,254, - 254,254,254,254,254,2,102,118,248,140,140,140,252,124,2,102, - 118,248,140,172,140,252,124,2,102,134,248,252,252,252,252,124, - 2,119,151,252,134,134,134,134,254,126,2,119,151,252,134,182, - 182,134,254,126,2,119,151,252,254,254,254,254,254,126,2,102, - 118,120,204,132,132,204,120,2,102,118,120,204,180,180,204,120, - 2,102,118,120,252,252,252,252,120,255,255,255,255,255,255,255, - 255,255,255,255,255,255,2,135,151,16,48,95,129,95,48,16, - 2,119,135,16,40,68,238,40,40,56,255,255,255,2,199,222, - 15,0,255,128,128,128,159,240,160,32,192,64,255,128,1,24, - 40,128,128,128,128,128,128,128,128,2,119,199,16,0,16,186, - 16,0,16}; -/* - Fontname: m2icon_9 - Copyright: public domain - Capital A Height: 8, '1' Height: 0 - Calculated Max Values w=13 h=11 x= 0 y= 1 dx=12 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_9[471] U8G_FONT_SECTION("u8g_font_m2icon_9") = { - 0,13,11,0,254,8,0,17,1,111,65,105,254,9,254,8, - 254,10,8,16,11,0,0,15,128,255,192,128,64,128,64,128, - 64,128,64,128,64,255,192,6,8,8,7,0,0,60,84,148, - 244,132,132,132,252,6,5,5,7,0,1,204,120,48,120,204, - 10,7,14,12,0,0,0,192,1,128,3,0,198,0,108,0, - 56,0,16,0,8,8,8,9,0,0,255,129,129,129,129,129, - 129,255,8,8,8,9,0,0,255,129,189,189,189,189,129,255, - 8,8,8,9,0,0,255,255,255,255,255,255,255,255,9,9, - 18,10,0,0,255,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,255,128,9,9,18,10,0,0,255,128,128,128, - 190,128,190,128,190,128,190,128,190,128,128,128,255,128,9,9, - 18,11,0,0,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,8,8,8,8,0,0,254,131,131,131, - 131,131,255,127,8,8,8,9,0,0,254,131,187,187,187,131, - 255,127,8,8,8,9,0,0,254,255,255,255,255,255,255,127, - 9,9,18,10,0,0,255,0,129,128,129,128,129,128,129,128, - 129,128,129,128,255,128,127,128,9,9,18,10,0,0,255,0, - 129,128,189,128,189,128,189,128,189,128,129,128,255,128,127,128, - 9,9,18,10,0,0,255,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,127,128,8,8,8,9,0,0,60,66, - 129,129,129,129,66,60,8,8,8,9,0,0,60,66,153,189, - 189,153,66,60,8,8,8,9,0,0,60,126,255,255,255,255, - 126,60,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 8,16,11,0,0,24,0,40,0,79,192,128,64,128,64,79, - 192,40,0,24,0,8,9,9,9,0,0,24,36,66,129,231, - 36,36,36,60,255,255,255,13,8,16,11,0,0,15,128,255, - 192,128,64,128,64,159,248,160,16,192,32,255,192,1,11,11, - 2,0,254,128,128,128,128,128,128,128,128,128,128,128,9,9, - 18,10,0,0,8,0,0,0,8,0,8,0,190,128,8,0, - 8,0,0,0,8,0,255}; -/* - Fontname: micro - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 4 h= 5 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_micro[855] U8G_FONT_SECTION("u8g_font_micro") = { - 1,4,5,0,0,5,0,255,1,245,32,255,0,5,0,5, - 0,7,0,64,2,37,69,192,192,192,0,192,5,50,66,160, - 160,2,53,69,160,224,160,224,160,2,53,69,64,224,192,96, - 224,3,52,68,160,96,192,160,2,53,69,64,64,224,192,64, - 21,34,66,64,192,18,37,69,64,128,128,128,64,2,37,69, - 128,64,64,64,128,2,53,69,160,64,224,64,160,3,51,67, - 64,224,64,2,34,66,64,192,4,49,65,224,2,34,66,192, - 192,2,53,69,32,32,64,64,128,2,53,69,64,160,160,160, - 64,2,37,69,64,192,64,64,64,2,53,69,192,32,64,128, - 224,2,53,69,192,32,96,32,224,2,53,69,160,160,160,224, - 32,2,53,69,224,128,192,32,192,2,53,69,96,128,224,160, - 224,2,53,69,224,32,32,64,64,2,53,69,224,160,224,160, - 224,2,53,69,224,160,224,32,192,2,37,69,192,192,0,192, - 192,2,37,69,192,192,0,64,192,2,53,69,32,64,128,64, - 32,3,51,67,224,0,224,2,53,69,128,64,32,64,128,2, - 53,69,224,32,96,0,64,2,53,69,96,160,192,128,96,2, - 53,69,224,160,224,160,160,2,53,69,224,160,192,160,224,2, - 53,69,224,128,128,128,224,2,53,69,192,160,160,160,192,2, - 53,69,224,128,224,128,224,2,53,69,224,128,224,128,128,2, - 53,69,224,128,160,160,224,2,53,69,160,160,224,160,160,2, - 53,69,224,64,64,64,224,2,53,69,32,32,32,160,224,2, - 53,69,160,160,192,160,160,2,53,69,128,128,128,128,224,2, - 53,69,160,224,160,160,160,2,53,69,224,160,160,160,160,2, - 53,69,224,160,160,160,224,2,53,69,224,160,224,128,128,2, - 53,69,224,160,160,192,96,2,53,69,224,160,192,160,160,2, - 53,69,224,128,224,32,224,2,53,69,224,64,64,64,64,2, - 53,69,160,160,160,160,224,2,53,69,160,160,160,160,64,2, - 53,69,160,160,160,224,160,2,53,69,160,224,64,224,160,2, - 53,69,160,160,224,64,64,2,53,69,224,32,64,128,224,18, - 37,69,192,128,128,128,192,2,53,69,128,128,64,64,32,2, - 37,69,192,64,64,64,192,5,50,66,64,160,2,49,65,224, - 21,34,66,128,192,2,52,68,224,96,160,224,2,53,69,128, - 224,160,160,224,2,52,68,224,128,128,224,2,53,69,32,224, - 160,160,224,2,52,68,224,160,192,224,2,53,69,96,128,192, - 128,128,2,52,68,224,160,96,224,2,53,69,128,224,160,160, - 160,18,20,68,128,128,128,128,2,52,68,32,32,160,224,2, - 53,69,128,160,192,192,160,2,37,69,192,64,64,64,64,2, - 52,68,160,224,160,160,2,52,68,224,160,160,160,2,52,68, - 224,160,160,224,2,52,68,224,160,224,128,2,52,68,224,160, - 224,32,2,52,68,224,160,128,128,2,52,68,224,192,96,224, - 2,53,69,64,224,64,64,96,2,52,68,160,160,160,224,2, - 52,68,160,160,160,64,2,52,68,160,160,224,160,2,52,68, - 160,64,64,160,2,52,68,160,160,96,192,2,52,68,224,96, - 192,224,2,53,69,96,64,192,64,96,18,21,69,128,128,128, - 128,128,2,53,69,192,64,96,64,192,4,50,66,192,96,2, - 53,69,96,64,64,64,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=22 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08[2760] U8G_FONT_SECTION("u8g_font_ncenB08") = { - 0,17,19,254,251,8,1,193,3,159,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,2,8,8,3,0,254,192, - 192,0,64,64,192,192,192,5,7,7,6,0,255,8,120,208, - 208,232,112,64,7,8,8,8,0,0,60,100,96,252,48,98, - 190,220,7,5,5,8,0,1,186,108,108,108,186,8,8,8, - 9,0,0,247,98,52,54,24,62,24,60,1,8,8,6,2, - 0,128,128,128,0,128,128,128,128,4,10,10,5,0,254,112, - 144,192,96,176,208,96,48,144,224,3,2,2,4,0,6,160, - 160,8,8,8,9,0,0,60,66,157,165,161,157,66,60,3, - 6,6,4,0,2,192,32,224,160,0,224,6,5,5,7,0, - 0,36,108,216,108,36,5,3,3,6,0,2,248,8,8,3, - 1,1,4,0,3,224,8,8,8,9,0,0,60,66,189,165, - 185,173,66,60,4,1,1,5,0,6,240,3,4,4,4,0, - 4,64,160,160,64,5,5,5,6,0,1,32,248,32,0,248, - 3,4,4,3,0,4,96,160,64,224,3,4,4,3,0,4, - 224,64,32,192,3,2,2,4,0,6,96,192,6,7,7,7, - 0,254,204,204,204,220,236,192,192,7,8,8,8,0,0,126, - 244,244,116,20,20,20,62,2,2,2,3,0,3,192,192,2, - 3,3,4,1,254,128,64,192,3,4,4,3,0,4,64,192, - 64,224,4,6,6,5,0,2,96,144,144,96,0,240,6,5, - 5,7,0,0,144,216,108,216,144,8,8,8,9,0,0,68, - 196,72,232,18,22,47,34,8,8,8,9,0,0,68,196,72, - 232,19,21,34,39,8,8,8,9,0,0,228,68,40,200,18, - 22,47,34,5,8,8,6,0,254,48,48,0,16,96,192,216, - 112,9,11,22,8,255,0,48,0,24,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,6,0,12,0,0,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,9,11,22,8,255,0,28, - 0,54,0,0,0,8,0,28,0,28,0,38,0,38,0,127, - 0,67,0,231,128,9,11,22,8,255,0,26,0,44,0,0, - 0,8,0,28,0,28,0,38,0,38,0,127,0,67,0,231, - 128,9,11,22,8,255,0,20,0,20,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,24,0,36,0,24,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,10,8,16,11,0,0,63, - 192,22,64,22,128,39,128,62,128,70,64,70,64,239,192,7, - 10,10,8,0,254,58,70,194,192,192,194,66,60,16,48,6, - 11,11,7,0,0,96,48,0,252,100,104,120,104,100,100,252, - 6,11,11,7,0,0,24,48,0,252,100,104,120,104,100,100, - 252,6,11,11,7,0,0,56,108,0,252,100,104,120,104,100, - 100,252,6,11,11,7,0,0,40,40,0,252,100,104,120,104, - 100,100,252,4,11,11,5,0,0,192,96,0,240,96,96,96, - 96,96,96,240,4,11,11,5,0,0,48,96,0,240,96,96, - 96,96,96,96,240,5,11,11,5,0,0,112,216,0,240,96, - 96,96,96,96,96,240,4,11,11,5,0,0,80,80,0,240, - 96,96,96,96,96,96,240,8,8,8,9,0,0,252,98,99, - 243,99,99,98,252,8,11,11,9,0,0,26,44,0,199,98, - 114,122,94,78,70,226,7,11,11,8,0,0,48,24,0,56, - 68,198,198,198,198,68,56,7,11,11,8,0,0,24,48,0, - 56,68,198,198,198,198,68,56,7,11,11,8,0,0,56,108, - 0,56,68,198,198,198,198,68,56,7,11,11,8,0,0,52, - 88,0,56,68,198,198,198,198,68,56,7,11,11,8,0,0, - 40,40,0,56,68,198,198,198,198,68,56,5,5,5,6,0, - 1,216,112,32,112,216,7,8,8,8,0,0,58,68,206,214, - 214,230,68,184,8,11,11,9,0,0,48,24,0,247,98,98, - 98,98,98,98,60,8,11,11,9,0,0,12,24,0,247,98, - 98,98,98,98,98,60,8,11,11,9,0,0,28,54,0,247, - 98,98,98,98,98,98,60,8,11,11,9,0,0,20,20,0, - 247,98,98,98,98,98,98,60,8,11,11,9,0,0,12,24, - 0,247,98,52,52,24,24,24,60,7,8,8,8,0,0,224, - 124,102,102,102,124,96,240,7,8,8,8,0,0,60,102,102, - 108,102,102,102,236,4,8,8,5,0,0,192,96,0,224,48, - 112,176,240,4,8,8,5,0,0,48,96,0,224,48,112,176, - 240,5,9,9,5,0,0,32,112,216,0,224,48,112,176,240, - 5,8,8,5,0,0,104,176,0,224,48,112,176,240,4,8, - 8,5,0,0,160,160,0,224,48,112,176,240,4,8,8,5, - 0,0,96,144,96,224,48,112,176,240,8,5,5,9,0,0, - 238,155,127,216,239,5,7,7,6,0,254,112,200,192,200,112, - 32,96,5,8,8,6,0,0,96,48,0,112,216,248,192,120, - 5,8,8,6,0,0,48,96,0,112,216,248,192,120,5,9, - 9,6,0,0,32,112,216,0,112,216,248,192,120,5,8,8, - 6,0,0,80,80,0,112,216,248,192,120,4,8,8,5,0, - 0,192,96,0,224,96,96,96,240,4,8,8,5,0,0,48, - 96,0,224,96,96,96,240,5,9,9,5,0,0,32,112,216, - 0,224,96,96,96,240,4,8,8,5,0,0,160,160,0,224, - 96,96,96,240,6,8,8,7,0,0,200,112,144,120,204,204, - 204,120,6,8,8,7,0,0,104,176,0,216,236,204,204,204, - 6,8,8,7,0,0,96,48,0,120,204,204,204,120,6,8, - 8,7,0,0,24,48,0,120,204,204,204,120,6,9,9,7, - 0,0,32,112,216,0,120,204,204,204,120,6,8,8,7,0, - 0,52,88,0,120,204,204,204,120,6,8,8,7,0,0,80, - 80,0,120,204,204,204,120,5,5,5,6,0,1,32,0,248, - 0,32,6,7,7,7,0,255,4,120,220,236,204,120,128,6, - 8,8,7,0,0,96,48,0,204,204,204,220,108,6,8,8, - 7,0,0,24,48,0,204,204,204,220,108,6,9,9,7,0, - 0,32,112,216,0,204,204,204,220,108,6,8,8,7,0,0, - 80,80,0,204,204,204,220,108,6,10,10,7,0,254,24,48, - 0,236,104,104,48,48,224,192,6,10,10,7,0,254,192,192, - 192,216,236,204,204,248,192,224,6,10,10,7,0,254,80,80, - 0,236,104,104,48,48,224,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=20 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08r[1315] U8G_FONT_SECTION("u8g_font_ncenB08r") = { - 0,17,19,254,251,8,1,193,3,159,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 3 y= 8 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10[4003] U8G_FONT_SECTION("u8g_font_ncenB10") = { - 0,20,25,254,250,11,2,24,5,41,32,255,253,15,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 4,0,1,2,11,11,5,1,253,192,192,192,0,64,64,192, - 192,192,192,192,7,9,9,8,0,255,4,60,110,206,208,210, - 118,60,32,8,11,11,9,0,0,28,38,102,96,252,48,48, - 32,225,191,222,8,8,8,9,0,2,153,126,102,195,195,102, - 126,153,10,11,22,11,0,0,241,192,96,128,49,0,49,0, - 26,0,26,0,63,0,12,0,63,0,12,0,30,0,1,11, - 11,8,3,0,128,128,128,128,0,0,128,128,128,128,128,6, - 13,13,7,0,254,56,108,76,96,120,156,204,228,120,28,204, - 200,112,5,2,2,7,1,8,216,216,11,11,22,12,0,0, - 14,0,49,128,64,64,79,64,153,32,144,32,153,32,78,64, - 64,64,49,128,14,0,5,7,7,6,0,4,224,48,112,176, - 216,0,248,7,5,5,8,0,1,54,108,216,108,54,7,4, - 4,8,0,2,254,2,2,2,4,2,2,5,0,3,240,240, - 11,11,22,12,0,0,14,0,49,128,64,64,94,64,137,32, - 142,32,138,32,91,64,64,64,49,128,14,0,5,1,1,7, - 1,8,248,4,4,4,6,1,7,96,144,144,96,7,7,7, - 8,0,1,16,16,254,16,16,0,254,5,6,6,5,255,5, - 112,152,24,48,96,248,5,6,6,5,255,5,112,152,48,24, - 152,112,4,3,3,6,1,8,48,96,128,9,10,20,10,0, - 253,247,0,99,0,99,0,99,0,99,0,103,0,123,128,64, - 0,96,0,96,0,9,11,22,10,0,0,127,128,251,0,251, - 0,251,0,251,0,123,0,27,0,27,0,27,0,27,0,63, - 128,2,2,2,5,1,4,192,192,3,3,3,5,1,253,64, - 32,224,4,6,6,5,0,5,96,224,96,96,96,240,5,7, - 7,6,0,4,112,216,216,216,112,0,248,7,5,5,8,0, - 1,216,108,54,108,216,11,11,22,12,0,0,97,0,227,0, - 98,0,102,0,100,0,252,192,9,192,26,192,20,192,55,224, - 32,192,11,11,22,12,0,0,97,0,227,0,98,0,102,0, - 100,0,253,192,10,96,24,96,16,192,49,128,35,224,12,11, - 22,12,255,0,112,128,153,128,49,0,27,0,154,0,118,96, - 4,224,13,96,10,96,27,240,16,96,6,11,11,7,0,253, - 48,48,48,0,16,48,96,192,204,204,120,10,15,30,11,0, - 0,48,0,24,0,4,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,10, - 15,30,11,0,0,3,0,6,0,8,0,0,0,12,0,12, - 0,22,0,22,0,18,0,35,0,35,0,63,0,65,128,65, - 128,227,192,10,15,30,11,0,0,4,0,14,0,17,0,0, - 0,12,0,12,0,22,0,22,0,18,0,35,0,35,0,63, - 0,65,128,65,128,227,192,10,14,28,11,0,0,29,0,46, - 0,0,0,12,0,12,0,22,0,22,0,18,0,35,0,35, - 0,63,0,65,128,65,128,227,192,10,14,28,11,0,0,51, - 0,51,0,0,0,12,0,12,0,22,0,22,0,18,0,35, - 0,35,0,63,0,65,128,65,128,227,192,10,15,30,11,0, - 0,12,0,18,0,12,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,15, - 11,22,15,255,0,15,254,5,134,5,130,9,146,9,144,17, - 240,31,144,33,146,33,130,65,134,227,254,10,14,28,11,0, - 253,31,64,112,192,96,64,192,64,192,0,192,0,192,0,192, - 0,96,64,112,192,31,0,4,0,2,0,14,0,9,15,30, - 10,0,0,24,0,12,0,2,0,0,0,255,128,97,128,96, - 128,100,128,100,0,124,0,100,0,100,128,96,128,97,128,255, - 128,9,15,30,10,0,0,3,0,6,0,8,0,0,0,255, - 128,97,128,96,128,100,128,100,0,124,0,100,0,100,128,96, - 128,97,128,255,128,9,15,30,10,0,0,4,0,14,0,17, - 0,0,0,255,128,97,128,96,128,100,128,100,0,124,0,100, - 0,100,128,96,128,97,128,255,128,9,14,28,10,0,0,51, - 0,51,0,0,0,255,128,97,128,96,128,100,128,100,0,124, - 0,100,0,100,128,96,128,97,128,255,128,4,15,15,7,1, - 0,192,96,16,0,240,96,96,96,96,96,96,96,96,96,240, - 5,15,15,7,1,0,24,48,64,0,240,96,96,96,96,96, - 96,96,96,96,240,5,15,15,7,1,0,32,112,136,0,240, - 96,96,96,96,96,96,96,96,96,240,6,14,14,7,0,0, - 204,204,0,120,48,48,48,48,48,48,48,48,48,120,11,11, - 22,12,0,0,255,0,97,192,96,192,96,96,96,96,248,96, - 96,96,96,96,96,192,97,192,255,0,11,14,28,12,0,0, - 14,128,23,0,0,0,224,224,112,64,120,64,92,64,76,64, - 70,64,71,64,67,192,65,192,64,192,224,64,11,15,30,12, - 0,0,24,0,12,0,2,0,0,0,31,0,113,192,96,192, - 192,96,192,96,192,96,192,96,192,96,96,192,113,192,31,0, - 11,15,30,12,0,0,0,192,1,128,2,0,0,0,31,0, - 113,192,96,192,192,96,192,96,192,96,192,96,192,96,96,192, - 113,192,31,0,11,15,30,12,0,0,4,0,14,0,17,0, - 0,0,31,0,113,192,96,192,192,96,192,96,192,96,192,96, - 192,96,96,192,113,192,31,0,11,14,28,12,0,0,14,128, - 23,0,0,0,31,0,113,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,113,192,31,0,11,14,28,12,0,0, - 25,128,25,128,0,0,31,0,113,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,113,192,31,0,8,7,7,8, - 0,1,195,102,60,24,60,102,195,11,11,22,12,0,0,31, - 32,113,192,96,192,193,96,194,96,196,96,200,96,208,96,96, - 192,113,192,159,0,11,15,30,12,0,0,12,0,6,0,1, - 0,0,0,240,224,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,48,128,31,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,48,128,31,0,11,15,30, - 12,0,0,4,0,14,0,17,0,0,0,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,48,128,31, - 0,11,14,28,12,0,0,25,128,25,128,0,0,240,224,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,64,48, - 128,31,0,10,15,30,11,0,0,1,128,3,0,4,0,0, - 0,241,192,96,128,49,0,49,0,26,0,26,0,12,0,12, - 0,12,0,12,0,30,0,9,11,22,10,0,0,240,0,96, - 0,127,0,99,128,97,128,97,128,99,128,126,0,96,0,96, - 0,240,0,8,11,11,9,0,0,30,35,99,98,108,98,99, - 99,99,99,238,8,11,11,9,0,0,48,24,4,0,60,102, - 6,62,198,206,119,8,11,11,9,0,0,12,24,32,0,60, - 102,6,62,198,206,119,8,11,11,9,0,0,16,56,108,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,52,88,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,108,108,0, - 60,102,6,62,198,206,119,8,11,11,9,0,0,24,36,24, - 0,60,102,6,62,198,206,119,13,7,14,14,0,0,57,224, - 103,48,6,24,63,248,198,0,199,24,121,240,7,10,10,8, - 0,253,60,102,198,192,194,102,60,16,8,56,8,11,11,9, - 0,0,48,24,4,0,60,102,195,255,192,99,62,8,11,11, - 9,0,0,12,24,32,0,60,102,195,255,192,99,62,8,11, - 11,9,0,0,16,56,108,0,60,102,195,255,192,99,62,8, - 10,10,9,0,0,108,108,0,60,102,195,255,192,99,62,4, - 11,11,5,0,0,192,96,16,0,224,96,96,96,96,96,240, - 4,11,11,5,0,0,48,96,128,0,224,96,96,96,96,96, - 240,5,11,11,5,0,0,32,112,216,0,224,96,96,96,96, - 96,240,5,10,10,5,0,0,216,216,0,224,96,96,96,96, - 96,240,8,11,11,9,0,0,198,56,120,140,62,102,195,195, - 195,102,60,9,10,20,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,247,128,8,11,11, - 9,0,0,48,24,4,0,60,102,195,195,195,102,60,8,11, - 11,9,0,0,12,24,32,0,60,102,195,195,195,102,60,8, - 11,11,9,0,0,16,56,108,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,52,88,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,108,108,0,60,102,195,195,195,102,60, - 8,7,7,8,0,1,24,24,0,255,0,24,24,8,9,9, - 9,0,255,2,60,110,203,211,211,102,60,64,9,11,22,10, - 0,0,48,0,24,0,4,0,0,0,247,128,99,0,99,0, - 99,0,99,0,103,0,59,128,9,11,22,10,0,0,12,0, - 24,0,32,0,0,0,247,128,99,0,99,0,99,0,99,0, - 103,0,59,128,9,11,22,10,0,0,8,0,28,0,54,0, - 0,0,247,128,99,0,99,0,99,0,99,0,103,0,59,128, - 9,10,20,10,0,0,54,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,103,0,59,128,8,14,14,7,255,253, - 6,12,16,0,247,98,98,52,52,24,24,16,208,224,9,14, - 28,10,0,253,224,0,96,0,96,0,96,0,110,0,115,0, - 97,128,97,128,97,128,115,0,110,0,96,0,96,0,240,0, - 8,13,13,7,255,253,54,54,0,247,98,98,52,52,24,24, - 16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 3 y= 8 dx=15 dy= 0 ascent=12 len=28 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10r[1853] U8G_FONT_SECTION("u8g_font_ncenB10r") = { - 0,20,25,254,250,11,2,24,5,41,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12[4735] U8G_FONT_SECTION("u8g_font_ncenB12") = { - 0,22,27,253,249,12,2,152,5,246,32,255,253,16,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,4,1,1,3,12,12,5,1,253,64,224, - 224,64,0,64,64,224,224,224,224,64,8,12,12,10,0,254, - 1,2,62,115,231,231,232,233,114,60,32,64,9,12,24,10, - 0,0,31,0,57,128,115,128,115,128,113,0,56,0,254,0, - 24,0,24,0,120,128,191,0,110,0,8,8,8,10,1,2, - 90,255,102,195,195,102,255,90,10,12,24,10,0,0,251,192, - 113,128,49,0,59,0,26,0,30,0,63,0,12,0,63,0, - 12,0,12,0,63,0,2,12,12,10,4,0,192,192,192,192, - 192,0,0,192,192,192,192,192,6,15,15,9,1,253,56,76, - 76,96,48,120,140,132,196,120,48,24,200,200,112,5,2,2, - 6,0,9,216,216,12,12,24,12,0,0,31,128,57,192,96, - 96,207,176,217,48,152,16,152,16,217,176,207,48,96,96,57, - 192,31,128,6,7,7,6,0,5,112,152,120,216,108,0,248, - 6,5,5,8,1,2,36,108,216,108,36,8,5,5,10,0, - 2,255,255,3,3,3,4,2,2,5,0,3,240,240,12,12, - 24,12,0,0,31,128,57,192,96,96,223,48,201,48,142,16, - 139,16,201,176,221,240,96,96,57,192,31,128,5,1,1,6, - 0,10,248,5,5,5,7,1,7,112,216,136,216,112,8,9, - 9,10,1,0,24,24,255,255,24,24,0,255,255,5,7,7, - 6,0,5,112,152,216,16,32,120,248,6,7,7,6,0,5, - 120,204,76,24,76,204,120,4,3,3,6,1,9,48,112,192, - 11,11,22,11,0,253,243,192,113,192,113,192,113,192,113,192, - 113,192,123,192,110,224,96,0,112,0,112,0,11,12,24,12, - 0,0,127,224,249,128,249,128,249,128,249,128,121,128,25,128, - 25,128,25,128,25,128,25,128,127,224,4,3,3,5,0,3, - 96,240,96,4,4,4,6,0,253,64,96,48,224,4,7,7, - 6,1,5,32,224,96,96,96,96,240,5,7,7,6,0,5, - 112,216,216,216,112,0,248,6,5,5,8,1,2,144,216,108, - 216,144,12,12,24,14,1,0,32,64,224,192,97,128,97,0, - 99,0,98,32,246,96,12,224,9,32,27,240,48,96,32,240, - 12,12,24,14,1,0,32,64,224,192,97,128,97,0,99,0, - 98,224,247,48,13,176,8,32,24,64,48,240,33,240,13,12, - 24,14,0,0,120,32,204,96,76,192,24,128,77,128,205,16, - 123,48,6,112,4,144,13,248,24,48,16,120,8,12,12,8, - 0,253,8,28,28,8,0,8,48,112,230,239,102,60,13,16, - 32,13,0,0,24,0,28,0,6,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,16,32,13,0,0,1,128,3,128,6,0, - 0,0,6,0,7,0,7,0,15,0,11,128,27,128,17,192, - 63,192,49,192,32,224,96,224,241,248,13,16,32,13,0,0, - 2,0,7,0,13,128,0,0,6,0,7,0,7,0,15,0, - 11,128,27,128,17,192,63,192,49,192,32,224,96,224,241,248, - 13,15,30,13,0,0,14,128,23,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,15,30,13,0,0,25,128,25,128,0,0, - 6,0,7,0,7,0,15,0,11,128,27,128,17,192,63,192, - 49,192,32,224,96,224,241,248,13,16,32,13,0,0,6,0, - 11,0,6,0,0,0,6,0,7,0,7,0,15,0,11,128, - 27,128,17,192,63,192,49,192,32,224,96,224,241,248,16,12, - 24,16,255,0,31,255,7,195,5,195,5,201,9,216,9,248, - 17,216,31,201,33,193,33,195,97,195,247,255,11,15,30,13, - 1,253,15,160,56,224,112,96,112,32,224,32,224,0,224,0, - 224,32,112,32,112,64,56,192,15,0,12,0,6,0,28,0, - 11,16,32,12,0,0,24,0,28,0,6,0,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,11,16,32,12,0,0,1,128,3,128, - 6,0,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,32,56,32,56,96,56,96,255,224,11,16,32,12, - 0,0,2,0,7,0,13,128,0,0,255,224,56,96,56,96, - 57,32,59,0,63,0,59,0,57,32,56,32,56,96,56,96, - 255,224,11,15,30,12,0,0,25,128,25,128,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,7,16,16,7,0,0,96,112,24,0, - 254,56,56,56,56,56,56,56,56,56,56,254,7,16,16,7, - 0,0,12,28,48,0,254,56,56,56,56,56,56,56,56,56, - 56,254,7,16,16,7,0,0,16,56,108,0,254,56,56,56, - 56,56,56,56,56,56,56,254,7,15,15,7,0,0,108,108, - 0,254,56,56,56,56,56,56,56,56,56,56,254,13,12,24, - 14,0,0,255,128,56,224,56,112,56,112,56,56,126,56,56, - 56,56,56,56,112,56,112,56,224,255,128,14,15,30,14,0, - 0,7,64,11,128,0,0,240,124,56,16,60,16,62,16,47, - 16,39,144,35,208,33,240,32,240,32,112,32,48,248,16,12, - 16,32,14,1,0,24,0,28,0,6,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,16,32,14,1,0,1,128,3,128,6, - 0,0,0,15,0,57,192,112,224,112,224,224,112,224,112,224, - 112,224,112,112,224,112,224,57,192,15,0,12,16,32,14,1, - 0,6,0,15,0,25,128,0,0,15,0,57,192,112,224,112, - 224,224,112,224,112,224,112,224,112,112,224,112,224,57,192,15, - 0,12,15,30,14,1,0,14,128,23,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,15,30,14,1,0,25,128,25,128,0, - 0,15,0,57,192,112,224,112,224,224,112,224,112,224,112,224, - 112,112,224,112,224,57,192,15,0,8,8,8,10,1,0,66, - 231,126,56,28,126,231,66,12,14,28,14,1,255,0,16,15, - 32,57,192,112,224,112,224,225,112,226,112,228,112,232,112,112, - 224,112,224,57,192,79,0,128,0,14,16,32,14,0,0,6, - 0,7,0,1,128,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,14, - 16,32,14,0,0,0,96,0,224,1,128,0,0,254,124,56, - 16,56,16,56,16,56,16,56,16,56,16,56,16,56,16,28, - 32,30,96,7,128,14,16,32,14,0,0,1,128,3,192,6, - 96,0,0,254,124,56,16,56,16,56,16,56,16,56,16,56, - 16,56,16,56,16,28,32,30,96,7,128,14,15,30,14,0, - 0,6,96,6,96,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,13, - 16,32,12,255,0,0,192,1,192,3,0,0,0,254,248,56, - 96,28,64,28,128,14,128,15,0,7,0,7,0,7,0,7, - 0,7,0,31,192,12,12,24,13,0,0,254,0,56,0,63, - 192,56,224,56,112,56,112,56,112,56,224,63,192,56,0,56, - 0,254,0,10,12,24,10,0,0,31,0,51,128,115,128,115, - 128,115,0,119,0,113,128,113,192,113,192,113,192,123,128,247, - 0,9,12,24,10,0,0,96,0,112,0,24,0,0,0,126, - 0,231,0,199,0,31,0,103,0,231,0,239,0,119,128,9, - 12,24,10,0,0,6,0,14,0,24,0,0,0,126,0,231, - 0,199,0,31,0,103,0,231,0,239,0,119,128,9,12,24, - 10,0,0,16,0,56,0,108,0,0,0,126,0,231,0,199, - 0,31,0,103,0,231,0,239,0,119,128,9,11,22,10,0, - 0,58,0,92,0,0,0,126,0,231,0,199,0,31,0,103, - 0,231,0,239,0,119,128,9,11,22,10,0,0,108,0,108, - 0,0,0,126,0,231,0,199,0,31,0,103,0,231,0,239, - 0,119,128,9,12,24,10,0,0,24,0,44,0,24,0,0, - 0,126,0,231,0,199,0,31,0,103,0,231,0,239,0,119, - 128,13,8,16,15,0,0,125,224,231,48,199,56,63,248,103, - 0,231,24,239,48,123,224,8,11,11,9,0,253,62,115,231, - 227,224,227,118,60,24,12,56,9,12,24,10,0,0,48,0, - 56,0,12,0,0,0,62,0,119,0,227,128,255,128,224,0, - 225,128,115,0,62,0,9,12,24,10,0,0,6,0,14,0, - 24,0,0,0,62,0,119,0,227,128,255,128,224,0,225,128, - 115,0,62,0,9,12,24,10,0,0,8,0,28,0,54,0, - 0,0,62,0,119,0,227,128,255,128,224,0,225,128,115,0, - 62,0,9,11,22,10,0,0,54,0,54,0,0,0,62,0, - 119,0,227,128,255,128,224,0,225,128,115,0,62,0,5,12, - 12,6,0,0,192,224,48,0,240,112,112,112,112,112,112,248, - 5,12,12,6,0,0,24,56,96,0,240,112,112,112,112,112, - 112,248,5,12,12,6,0,0,32,112,216,0,240,112,112,112, - 112,112,112,248,5,11,11,6,0,0,216,216,0,240,112,112, - 112,112,112,112,248,9,13,26,11,0,0,96,0,59,0,28, - 0,54,0,7,0,31,0,119,128,227,128,227,128,227,128,227, - 128,119,0,28,0,11,11,22,11,255,0,14,128,23,0,0, - 0,247,128,121,192,113,192,113,192,113,192,113,192,113,192,251, - 224,10,12,24,11,0,0,24,0,28,0,6,0,0,0,63, - 0,115,128,225,192,225,192,225,192,225,192,115,128,63,0,10, - 12,24,11,0,0,3,0,7,0,12,0,0,0,63,0,115, - 128,225,192,225,192,225,192,225,192,115,128,63,0,10,12,24, - 11,0,0,12,0,30,0,51,0,0,0,63,0,115,128,225, - 192,225,192,225,192,225,192,115,128,63,0,10,11,22,11,0, - 0,29,0,46,0,0,0,63,0,115,128,225,192,225,192,225, - 192,225,192,115,128,63,0,10,11,22,11,0,0,54,0,54, - 0,0,0,63,0,115,128,225,192,225,192,225,192,225,192,115, - 128,63,0,8,8,8,10,1,0,24,24,0,255,255,0,24, - 24,9,12,24,10,0,254,0,128,1,0,30,0,115,0,231, - 128,235,128,235,128,243,128,103,0,60,0,64,0,128,0,11, - 12,24,11,255,0,24,0,28,0,6,0,0,0,243,192,113, - 192,113,192,113,192,113,192,113,192,123,192,62,224,11,12,24, - 11,255,0,3,0,7,0,12,0,0,0,243,192,113,192,113, - 192,113,192,113,192,113,192,123,192,62,224,11,12,24,11,255, - 0,4,0,14,0,27,0,0,0,243,192,113,192,113,192,113, - 192,113,192,113,192,123,192,62,224,11,11,22,11,255,0,27, - 0,27,0,0,0,243,192,113,192,113,192,113,192,113,192,113, - 192,123,192,62,224,11,15,30,10,255,253,3,0,7,0,12, - 0,0,0,251,224,112,192,56,128,25,128,29,0,15,0,14, - 0,6,0,52,0,116,0,56,0,10,15,30,11,255,253,240, - 0,112,0,112,0,112,0,119,0,123,128,113,192,113,192,113, - 192,113,192,123,128,119,0,112,0,112,0,252,0,11,14,28, - 10,255,253,27,0,27,0,0,0,251,224,48,192,56,128,25, - 128,29,0,15,0,14,0,6,0,52,0,116,0,56,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=14 len=30 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12r[2194] U8G_FONT_SECTION("u8g_font_ncenB12r") = { - 0,22,27,253,249,12,2,152,5,246,32,127,253,14,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=21 dy= 0 ascent=19 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14[5558] U8G_FONT_SECTION("u8g_font_ncenB14") = { - 0,24,32,253,248,14,3,71,7,51,32,255,252,19,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,5,0, - 1,4,14,14,7,1,252,96,240,240,96,0,96,96,96,240, - 240,240,240,240,96,9,13,26,11,1,254,0,128,0,128,31, - 0,115,128,227,128,228,0,228,0,232,0,232,128,113,128,30, - 0,32,0,32,0,10,14,28,11,0,0,31,0,49,128,115, - 128,115,128,112,0,112,0,56,0,255,128,28,0,28,0,24, - 64,112,192,159,192,239,128,9,9,18,10,0,2,221,128,255, - 128,99,0,193,128,193,128,193,128,99,0,255,128,221,128,14, - 14,28,15,0,0,252,60,120,24,56,16,28,48,30,32,14, - 96,7,192,31,240,3,128,31,240,3,128,3,128,3,128,15, - 224,2,14,14,11,4,0,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,7,16,16,8,0,254,120,204,140,192,112, - 124,158,134,194,242,124,28,4,196,204,120,6,2,2,10,2, - 11,204,204,14,14,28,15,0,0,7,128,24,96,32,16,71, - 200,76,200,152,68,152,4,152,4,152,4,76,72,71,136,32, - 16,24,96,7,128,7,8,8,8,0,6,120,204,60,204,220, - 110,0,254,8,5,5,9,0,3,51,102,204,102,51,9,6, - 12,10,0,2,255,128,255,128,1,128,1,128,1,128,1,128, - 5,3,3,6,0,3,248,248,248,14,14,28,15,0,0,7, - 128,24,96,32,16,95,136,76,200,140,196,140,196,143,132,141, - 132,76,200,94,232,32,16,24,96,7,128,6,2,2,8,1, - 11,252,252,6,6,6,7,0,8,120,204,132,132,204,120,10, - 11,22,11,0,0,12,0,12,0,12,0,255,192,255,192,12, - 0,12,0,12,0,0,0,255,192,255,192,6,8,8,6,0, - 6,120,204,204,24,48,96,196,252,6,8,8,6,0,6,120, - 204,12,56,12,204,204,120,5,4,4,7,1,11,24,56,112, - 192,12,13,26,13,0,252,249,240,112,224,112,224,112,224,112, - 224,112,224,112,224,121,224,110,240,96,0,240,0,240,0,96, - 0,13,14,28,14,0,0,63,248,126,112,254,112,254,112,254, - 112,254,112,126,112,62,112,14,112,14,112,14,112,14,112,14, - 112,31,248,4,4,4,5,0,3,96,240,240,96,4,4,4, - 6,1,252,64,112,48,224,6,8,8,6,0,6,48,240,48, - 48,48,48,48,252,6,8,8,7,0,6,120,204,204,204,204, - 120,0,252,8,5,5,9,0,3,204,102,51,102,204,14,14, - 28,15,0,0,48,96,240,96,48,192,48,192,49,128,49,128, - 51,24,255,56,6,120,6,216,13,152,13,252,24,24,24,60, - 14,14,28,15,0,0,48,96,240,96,48,192,48,192,49,128, - 49,128,51,120,255,204,6,204,6,24,12,48,12,96,24,196, - 24,252,14,14,28,15,0,0,120,96,204,96,12,192,56,192, - 13,128,205,128,207,24,123,56,6,120,6,216,13,152,13,252, - 24,24,24,60,9,14,28,10,0,252,12,0,30,0,30,0, - 12,0,0,0,12,0,24,0,48,0,96,0,227,0,227,128, - 227,128,243,0,124,0,14,19,38,14,255,0,12,0,14,0, - 7,0,1,128,0,0,1,0,1,128,3,128,3,192,5,192, - 4,192,8,224,8,224,16,112,31,240,32,112,32,56,96,56, - 240,124,14,19,38,14,255,0,0,96,0,224,1,192,3,0, - 0,0,1,0,1,128,3,128,3,192,5,192,4,192,8,224, - 8,224,16,112,31,240,32,112,32,56,96,56,240,124,14,19, - 38,14,255,0,1,128,3,192,6,96,12,48,0,0,1,0, - 1,128,3,128,3,192,5,192,4,192,8,224,8,224,16,112, - 31,240,32,112,32,56,96,56,240,124,14,18,36,14,255,0, - 3,144,7,224,9,192,0,0,1,0,1,128,3,128,3,192, - 5,192,4,192,8,224,8,224,16,112,31,240,32,112,32,56, - 96,56,240,124,14,17,34,14,255,0,6,96,6,96,0,0, - 1,0,1,128,3,128,3,192,5,192,4,192,8,224,8,224, - 16,112,31,240,32,112,32,56,96,56,240,124,14,19,38,14, - 255,0,1,128,2,64,2,64,1,128,0,0,1,0,1,128, - 3,128,3,192,5,192,4,192,8,224,8,224,16,112,31,240, - 32,112,32,56,96,56,240,124,20,14,42,21,0,0,3,255, - 240,0,248,112,0,184,48,1,56,144,1,56,144,2,57,128, - 4,63,128,4,57,128,15,248,128,16,56,144,16,56,16,32, - 56,48,96,56,112,240,255,240,12,18,36,14,0,252,15,144, - 60,112,112,48,112,48,224,16,224,16,224,0,224,0,224,0, - 224,16,240,16,112,32,60,96,15,128,2,0,3,128,1,128, - 7,0,11,19,38,13,0,0,48,0,56,0,28,0,6,0, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,11,19, - 38,13,0,0,1,128,3,128,7,0,12,0,0,0,255,224, - 112,224,112,96,113,32,113,32,115,0,127,0,115,0,113,0, - 113,32,112,32,112,96,112,224,255,224,11,19,38,13,0,0, - 6,0,15,0,25,128,48,192,0,0,255,224,112,224,112,96, - 113,32,113,32,115,0,127,0,115,0,113,0,113,32,112,32, - 112,96,112,224,255,224,11,17,34,13,0,0,25,128,25,128, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,6,19, - 19,9,0,0,192,224,112,24,0,124,56,56,56,56,56,56, - 56,56,56,56,56,56,124,6,19,19,9,1,0,12,28,56, - 96,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 8,19,19,9,0,0,24,60,102,195,0,124,56,56,56,56, - 56,56,56,56,56,56,56,56,124,6,17,17,9,1,0,204, - 204,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 14,14,28,16,0,0,255,192,112,240,112,56,112,56,112,28, - 112,28,252,28,112,28,112,28,112,28,112,56,112,56,112,240, - 255,192,14,18,36,16,0,0,7,32,15,192,19,128,0,0, - 240,124,120,56,60,16,60,16,62,16,47,16,39,144,35,208, - 33,240,32,240,32,240,32,112,112,48,248,16,14,19,38,16, - 0,0,12,0,14,0,7,0,1,128,0,0,15,192,60,240, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,112,56,60,240,15,192,14,19,38,16,0,0,0,192, - 1,192,3,128,6,0,0,0,15,192,60,240,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 60,240,15,192,14,19,38,16,0,0,3,0,7,128,12,192, - 24,96,0,0,15,192,60,240,112,56,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,112,56,60,240,15,192, - 14,18,36,16,0,0,7,32,15,192,19,128,0,0,15,192, - 60,240,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,60,240,15,192,14,17,34,16,0,0, - 12,192,12,192,0,0,15,192,60,240,112,56,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,112,56,60,240, - 15,192,10,10,20,11,0,0,64,128,225,192,115,128,63,0, - 30,0,30,0,63,0,115,128,225,192,64,128,14,15,30,16, - 0,0,0,8,15,208,60,240,112,56,112,88,224,156,225,28, - 225,28,226,28,228,28,232,28,112,56,48,56,60,240,79,192, - 14,19,38,16,0,0,12,0,14,0,7,0,1,128,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,14,19,38,16, - 0,0,0,96,0,224,1,192,3,0,0,0,248,124,112,56, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,56,96,31,192,14,19,38,16,0,0,3,0, - 7,128,12,192,24,96,0,0,248,124,112,56,112,16,112,16, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 56,96,31,192,14,17,34,16,0,0,12,192,12,192,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,13,19,38,15, - 0,0,0,96,0,224,1,192,3,0,0,0,252,120,120,48, - 56,32,60,96,28,64,30,128,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,31,192,12,14,28,14,1,0,248,0, - 112,0,112,0,127,192,113,224,112,240,112,240,112,240,112,240, - 113,224,127,128,112,0,112,0,248,0,11,14,28,12,0,0, - 30,0,51,128,113,192,113,192,113,192,113,128,119,0,113,192, - 112,224,112,224,112,224,112,224,113,192,247,0,10,14,28,11, - 0,0,48,0,56,0,28,0,6,0,0,0,127,0,227,128, - 195,128,7,128,59,128,227,128,227,128,231,128,121,192,10,14, - 28,11,0,0,3,0,7,0,14,0,24,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,30,0,51,0,97,128,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,13,26,11,0,0,24,128,63,0,70,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,12,24,11,0,0,51,0,51,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,18,0,18,0,12,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,16,9,18,17,0,0,63,120,99,206,227,135,7,135, - 59,255,227,128,227,129,231,195,120,252,9,13,26,10,0,252, - 31,0,115,128,225,128,224,0,224,0,224,0,224,128,113,128, - 30,0,8,0,14,0,6,0,28,0,10,14,28,11,0,0, - 48,0,56,0,28,0,6,0,0,0,30,0,115,128,225,192, - 225,192,255,192,224,0,224,64,112,192,31,0,10,14,28,11, - 0,0,3,0,7,0,14,0,24,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,10,14, - 28,11,0,0,12,0,30,0,51,0,97,128,0,0,30,0, - 115,128,225,192,225,192,255,192,224,0,224,64,112,192,31,0, - 10,12,24,11,0,0,51,0,51,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,6,14, - 14,6,255,0,192,224,112,24,0,120,56,56,56,56,56,56, - 56,124,6,14,14,6,0,0,12,28,56,96,0,240,112,112, - 112,112,112,112,112,248,8,14,14,6,255,0,24,60,102,195, - 0,120,56,56,56,56,56,56,56,124,5,12,12,6,0,0, - 216,216,0,240,112,112,112,112,112,112,112,248,11,14,28,12, - 0,0,192,0,51,0,28,0,102,0,3,0,31,128,113,192, - 224,224,224,224,224,224,224,224,224,224,113,192,31,0,12,13, - 26,13,0,0,12,64,31,128,35,0,0,0,247,192,121,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,11,14, - 28,12,0,0,48,0,56,0,28,0,6,0,0,0,31,0, - 113,192,224,224,224,224,224,224,224,224,224,224,113,192,31,0, - 11,14,28,12,0,0,1,128,3,128,7,0,12,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,11,14,28,12,0,0,6,0,15,0,25,128,48,192, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,13,26,12,0,0,24,128,63,0,70,0, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,12,24,12,0,0,51,0,51,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,10,10,20,11,0,0,12,0,12,0,0,0,0,0, - 255,192,255,192,0,0,0,0,12,0,12,0,10,11,22,11, - 0,255,1,0,31,0,115,128,227,192,229,192,229,192,233,192, - 233,192,115,128,62,0,32,0,12,14,28,13,0,0,24,0, - 28,0,14,0,3,0,0,0,249,240,112,224,112,224,112,224, - 112,224,112,224,112,224,121,224,62,240,12,14,28,13,0,0, - 3,0,7,0,14,0,24,0,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,12,14,28,13, - 0,0,6,0,15,0,25,128,48,192,0,0,249,240,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,12,12, - 24,13,0,0,25,128,25,128,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,11,18,36,12, - 0,252,1,128,3,128,7,0,12,0,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,12,18,36,12,255,252,240,0,112,0, - 112,0,112,0,112,0,119,128,120,224,112,112,112,112,112,112, - 112,112,112,112,120,224,119,128,112,0,112,0,112,0,248,0, - 11,16,32,12,0,252,25,128,25,128,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=20 dy= 0 ascent=16 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14r[2603] U8G_FONT_SECTION("u8g_font_ncenB14r") = { - 0,24,32,253,248,14,3,71,7,51,32,127,252,16,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 6 y=15 dx=26 dy= 0 ascent=24 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18[8114] U8G_FONT_SECTION("u8g_font_ncenB18") = { - 0,33,40,252,246,18,4,68,10,106,32,255,251,24,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,1,5,18, - 18,7,1,251,112,248,248,112,0,0,32,32,112,112,112,112, - 112,112,248,248,248,112,12,15,30,14,1,255,0,32,0,64, - 15,192,56,240,121,240,113,96,242,0,242,0,244,0,244,0, - 120,16,120,16,60,96,47,192,64,0,14,18,36,15,0,0, - 3,224,15,48,14,120,30,120,30,48,30,0,30,0,30,0, - 127,224,15,0,15,0,15,0,7,0,7,4,126,12,207,252, - 207,248,113,240,12,12,24,14,1,2,207,48,255,240,127,224, - 112,224,224,112,224,112,224,112,224,112,112,224,127,224,255,240, - 207,48,19,18,54,19,0,0,255,143,224,62,3,0,62,3, - 0,31,6,0,31,6,0,15,140,0,15,140,0,7,216,0, - 7,248,0,31,254,0,1,224,0,1,224,0,31,254,0,1, - 224,0,1,224,0,1,224,0,3,240,0,15,252,0,3,18, - 18,14,6,0,224,224,224,224,224,224,224,0,0,0,224,224, - 224,224,224,224,224,224,11,20,40,13,1,254,31,0,35,128, - 99,128,99,0,120,0,62,0,63,128,71,192,193,224,224,224, - 240,96,124,96,63,64,15,128,3,128,1,128,48,128,112,128, - 113,0,62,0,10,4,8,12,1,14,97,128,243,192,243,192, - 97,128,19,18,54,21,1,0,3,248,0,15,254,0,60,7, - 128,48,1,128,97,248,192,103,24,192,198,8,96,206,0,96, - 206,0,96,206,0,96,206,0,96,199,4,96,103,136,192,97, - 240,192,48,1,128,60,7,128,15,254,0,3,248,0,8,10, - 10,10,1,8,120,206,6,126,198,206,119,0,0,255,11,7, - 14,13,1,3,28,224,57,192,115,128,231,0,115,128,57,192, - 28,224,11,6,12,13,1,4,255,224,255,224,0,96,0,96, - 0,96,0,96,6,3,3,8,1,5,252,252,252,19,18,54, - 21,1,0,3,248,0,15,254,0,60,7,128,48,1,128,103, - 240,192,99,24,192,195,24,96,195,24,96,195,240,96,195,96, - 96,195,48,96,195,48,96,99,24,192,103,156,192,48,1,128, - 60,7,128,15,254,0,3,248,0,8,2,2,10,1,15,255, - 255,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,1,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,206,198,198,14,12,24,48,98,254,254,7,11,11,8,0, - 7,124,206,198,6,12,60,14,6,198,206,124,5,5,5,7, - 1,14,24,56,112,96,192,17,17,51,18,0,251,254,63,128, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,63,222,0,39,159, - 128,48,0,0,48,0,0,120,0,0,120,0,0,48,0,0, - 16,18,36,18,1,0,31,255,127,156,127,156,255,156,255,156, - 255,156,127,156,127,156,31,156,3,156,3,156,3,156,3,156, - 3,156,3,156,3,156,3,156,15,255,3,4,4,7,2,5, - 224,224,224,224,5,6,6,7,1,251,16,32,112,56,24,240, - 6,11,11,8,0,7,48,240,48,48,48,48,48,48,48,48, - 252,9,10,20,11,1,8,28,0,99,0,227,128,227,128,227, - 128,99,0,28,0,0,0,0,0,255,128,11,7,14,13,1, - 3,231,0,115,128,57,192,28,224,57,192,115,128,231,0,18, - 18,54,21,1,0,48,6,0,240,6,0,48,12,0,48,24, - 0,48,24,0,48,48,0,48,96,0,48,99,0,48,199,0, - 49,135,0,253,143,0,3,27,0,6,19,0,6,51,0,12, - 99,0,24,127,192,24,3,0,48,7,128,18,18,54,21,1, - 0,48,6,0,240,6,0,48,12,0,48,24,0,48,24,0, - 48,48,0,48,96,0,48,111,128,48,201,192,49,152,192,253, - 152,192,3,1,192,6,1,128,6,3,0,12,6,0,24,12, - 64,24,31,192,48,31,192,19,18,54,21,0,0,124,3,0, - 206,3,0,198,6,0,6,12,0,12,12,0,56,24,0,12, - 48,0,6,49,128,198,99,128,206,195,128,124,197,128,1,141, - 128,3,25,128,3,25,128,6,49,128,12,63,224,12,1,128, - 24,3,192,11,18,36,13,1,251,7,0,15,128,15,128,7, - 0,0,0,0,0,3,0,3,0,6,0,28,0,56,0,112, - 0,240,0,240,192,241,224,241,224,120,192,31,128,19,24,72, - 19,0,0,6,0,0,7,0,0,3,128,0,1,192,0,0, - 96,0,0,0,0,0,96,0,0,96,0,0,240,0,0,240, - 0,1,120,0,1,120,0,3,60,0,2,60,0,2,60,0, - 6,30,0,4,30,0,7,254,0,12,15,0,8,15,0,8, - 15,0,24,7,128,56,7,128,254,31,224,19,24,72,19,0, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,240,0,0,240,0,1, - 120,0,1,120,0,3,60,0,2,60,0,2,60,0,6,30, - 0,4,30,0,7,254,0,12,15,0,8,15,0,8,15,0, - 24,7,128,56,7,128,254,31,224,19,23,69,19,0,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,0,96, - 0,0,96,0,0,240,0,0,240,0,1,120,0,1,120,0, - 3,60,0,2,60,0,2,60,0,6,30,0,4,30,0,7, - 254,0,12,15,0,8,15,0,8,15,0,24,7,128,56,7, - 128,254,31,224,19,22,66,19,0,0,0,226,0,1,252,0, - 2,56,0,0,0,0,0,96,0,0,96,0,0,240,0,0, - 240,0,1,120,0,1,120,0,3,60,0,2,60,0,2,60, - 0,6,30,0,4,30,0,7,254,0,12,15,0,8,15,0, - 8,15,0,24,7,128,56,7,128,254,31,224,19,23,69,19, - 0,0,3,156,0,3,156,0,3,156,0,0,0,0,0,0, - 0,0,96,0,0,96,0,0,240,0,0,240,0,1,120,0, - 1,120,0,3,60,0,2,60,0,2,60,0,6,30,0,4, - 30,0,7,254,0,12,15,0,8,15,0,8,15,0,24,7, - 128,56,7,128,254,31,224,19,24,72,19,0,0,0,240,0, - 1,152,0,1,8,0,1,152,0,0,240,0,0,0,0,0, - 96,0,0,96,0,0,240,0,0,240,0,1,120,0,1,120, - 0,3,60,0,2,60,0,2,60,0,6,30,0,4,30,0, - 7,254,0,12,15,0,8,15,0,8,15,0,24,7,128,56, - 7,128,254,31,224,25,18,72,26,0,0,1,255,255,128,0, - 111,3,128,0,111,1,128,0,207,0,128,0,207,0,128,1, - 143,8,128,1,143,8,0,3,15,24,0,3,15,248,0,6, - 15,24,0,7,255,8,0,12,15,8,0,12,15,0,128,24, - 15,0,128,24,15,0,128,48,15,1,128,112,15,3,128,252, - 63,255,128,17,23,69,19,1,251,3,249,128,15,15,128,60, - 3,128,60,1,128,120,1,128,120,0,128,248,0,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,120,0,128, - 120,0,128,60,1,0,60,1,0,15,6,0,3,248,0,0, - 128,0,1,192,0,0,224,0,0,96,0,3,192,0,15,24, - 48,18,1,0,12,0,14,0,7,0,1,128,0,192,0,0, - 255,254,60,30,60,6,60,2,60,2,60,34,60,32,60,96, - 63,224,60,96,60,32,60,32,60,2,60,2,60,2,60,6, - 60,30,255,254,15,24,48,18,1,0,0,24,0,56,0,112, - 0,192,1,128,0,0,255,254,60,30,60,6,60,2,60,2, - 60,34,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,2,60,6,60,30,255,254,15,23,46,18,1,0, - 1,128,3,192,6,96,12,48,0,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,23, - 46,18,1,0,14,112,14,112,14,112,0,0,0,0,255,254, - 60,30,60,6,60,2,60,2,60,34,60,32,60,96,63,224, - 60,96,60,32,60,32,60,2,60,2,60,2,60,6,60,30, - 255,254,8,24,24,10,1,0,192,224,112,24,12,0,255,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 8,24,24,10,1,0,3,7,14,24,48,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,255,8,23, - 23,10,1,0,24,60,102,195,0,255,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,8,23,23,10,1, - 0,231,231,231,0,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,255,135,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,20,22,66,22,1,0,0,226,0,1,252,0, - 2,56,0,0,0,0,252,7,240,62,1,192,31,0,128,31, - 128,128,31,192,128,23,224,128,19,240,128,17,240,128,16,248, - 128,16,124,128,16,126,128,16,63,128,16,31,128,16,15,128, - 16,7,128,16,3,128,56,1,128,254,0,128,19,24,72,21, - 1,0,6,0,0,7,0,0,3,128,0,0,192,0,0,96, - 0,0,0,0,3,248,0,15,30,0,60,7,128,60,7,128, - 120,3,192,120,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,120,3,192,120,3,192,60,7, - 128,60,7,128,15,30,0,3,248,0,19,23,69,21,1,0, - 0,24,0,0,56,0,0,96,0,0,192,0,0,0,0,3, - 248,0,15,30,0,60,7,128,60,7,128,120,3,192,120,3, - 192,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,120,3,192,120,3,192,60,7,128,60,7,128,15, - 30,0,3,248,0,19,23,69,21,1,0,0,96,0,0,240, - 0,1,152,0,3,12,0,0,0,0,3,248,0,15,30,0, - 60,7,128,60,7,128,120,3,192,120,3,192,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,120,3, - 192,120,3,192,60,7,128,60,7,128,15,30,0,3,248,0, - 19,22,66,21,1,0,0,226,0,1,252,0,2,56,0,0, - 0,0,3,248,0,15,30,0,60,7,128,60,7,128,120,3, - 192,120,3,192,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,120,3,192,120,3,192,60,7,128,60, - 7,128,15,30,0,3,248,0,19,23,69,21,1,0,7,28, - 0,7,28,0,7,28,0,0,0,0,0,0,0,3,248,0, - 15,30,0,60,7,128,60,7,128,120,3,192,120,3,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,120,3,192,120,3,192,60,7,128,60,7,128,15,30,0, - 3,248,0,12,12,24,14,1,1,192,48,224,112,112,224,57, - 192,31,128,15,0,15,0,31,128,57,192,112,224,224,112,192, - 48,20,18,54,21,0,0,1,252,48,7,143,96,30,3,192, - 30,3,192,60,7,224,60,13,224,124,25,240,124,49,240,124, - 97,240,124,193,240,125,129,240,127,1,240,62,1,224,60,1, - 224,62,3,192,126,3,192,199,143,0,129,252,0,19,24,72, - 21,1,0,3,0,0,3,128,0,1,192,0,0,96,0,0, - 48,0,0,0,0,255,15,224,60,3,128,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,30,2,0,31,142,0,7,248,0,19,24,72,21,1, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 30,2,0,31,142,0,7,248,0,19,23,69,21,1,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,30,2,0,31,142, - 0,7,248,0,19,23,69,21,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,30,2,0,31,142,0,7,248,0,18, - 24,72,18,0,0,0,6,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,255,15,192,60,3,0,30,6,0, - 30,6,0,15,12,0,15,12,0,7,152,0,7,152,0,3, - 240,0,3,240,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,7,248,0,16,18,36, - 18,1,0,255,128,60,0,60,0,60,0,63,248,60,62,60, - 30,60,31,60,31,60,31,60,31,60,30,60,62,63,240,60, - 0,60,0,60,0,255,128,15,18,36,15,255,0,7,224,30, - 120,28,60,60,60,60,60,60,56,60,112,61,224,60,60,60, - 30,60,30,60,30,60,30,60,30,60,30,60,28,61,60,253, - 240,14,18,36,15,0,0,12,0,14,0,7,0,3,0,1, - 128,0,0,127,128,241,224,240,240,96,240,1,240,14,240,120, - 240,240,240,240,240,240,240,249,252,126,56,14,18,36,15,0, - 0,1,128,3,128,7,0,6,0,12,0,0,0,127,128,241, - 224,240,240,96,240,1,240,14,240,120,240,240,240,240,240,240, - 240,249,252,126,56,14,18,36,15,0,0,2,0,7,0,15, - 128,24,192,48,96,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 17,34,15,0,0,14,32,31,192,35,128,0,0,0,0,127, - 128,241,224,240,240,96,240,1,240,14,240,120,240,240,240,240, - 240,240,240,249,252,126,56,14,17,34,15,0,0,56,224,56, - 224,56,224,0,0,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 18,36,15,0,0,7,0,13,128,8,128,13,128,7,0,0, - 0,127,128,241,224,240,240,96,240,1,240,14,240,120,240,240, - 240,240,240,240,240,249,252,126,56,22,12,36,23,0,0,31, - 207,192,121,248,112,112,248,120,112,240,56,1,240,60,14,255, - 252,120,240,0,240,240,0,240,248,8,240,248,8,249,188,48, - 126,15,224,13,17,34,14,0,251,15,240,56,120,120,120,112, - 48,240,0,240,0,240,0,240,0,120,8,120,8,60,48,31, - 224,2,0,7,0,3,128,1,128,15,0,14,18,36,15,0, - 0,12,0,14,0,7,0,3,0,1,128,0,0,15,192,56, - 112,120,120,112,56,240,60,255,252,240,0,240,0,120,8,120, - 8,60,48,15,224,14,18,36,15,0,0,0,96,0,224,1, - 192,3,128,6,0,0,0,15,192,56,112,120,120,112,56,240, - 60,255,252,240,0,240,0,120,8,120,8,60,48,15,224,14, - 18,36,15,0,0,2,0,7,0,15,128,24,192,48,96,0, - 0,15,192,56,112,120,120,112,56,240,60,255,252,240,0,240, - 0,120,8,120,8,60,48,15,224,14,17,34,15,0,0,28, - 112,28,112,28,112,0,0,0,0,15,192,56,112,120,120,112, - 56,240,60,255,252,240,0,240,0,120,8,120,8,60,48,15, - 224,8,18,18,9,0,0,96,112,56,24,12,0,252,60,60, - 60,60,60,60,60,60,60,60,255,8,18,18,9,0,0,12, - 28,56,48,96,0,252,60,60,60,60,60,60,60,60,60,60, - 255,9,18,36,9,0,0,8,0,28,0,62,0,99,0,193, - 128,0,0,252,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,255,0,8,17,17,9,0, - 0,231,231,231,0,0,252,60,60,60,60,60,60,60,60,60, - 60,255,14,18,36,15,0,0,192,0,57,192,15,0,15,0, - 49,192,0,224,15,240,56,112,120,120,112,56,240,60,240,60, - 240,60,240,60,112,56,120,120,56,112,15,192,17,17,51,18, - 0,0,3,136,0,7,240,0,8,224,0,0,0,0,0,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,18,36,15,0,0,12,0,14,0,7, - 0,3,0,1,128,0,0,15,192,56,112,120,120,112,56,240, - 60,240,60,240,60,240,60,112,56,120,120,56,112,15,192,14, - 18,36,15,0,0,0,96,0,224,1,192,3,0,6,0,0, - 0,15,192,56,112,120,120,112,56,240,60,240,60,240,60,240, - 60,112,56,120,120,56,112,15,192,14,18,36,15,0,0,2, - 0,7,0,15,128,24,192,48,96,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,14,17,34,15,0,0,7,16,15,224,17,192,0, - 0,0,0,15,192,56,112,120,120,112,56,240,60,240,60,240, - 60,240,60,112,56,120,120,56,112,15,192,14,17,34,15,0, - 0,56,224,56,224,56,224,0,0,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,12,12,24,14,1,1,6,0,6,0,6,0,0, - 0,0,0,255,240,255,240,0,0,0,0,6,0,6,0,6, - 0,14,18,36,15,0,253,0,16,0,16,0,32,15,224,56, - 112,120,120,112,184,240,188,241,60,241,60,242,60,114,56,124, - 120,60,112,15,192,8,0,16,0,16,0,17,18,54,18,0, - 0,3,0,0,3,128,0,1,192,0,0,192,0,0,96,0, - 0,0,0,254,63,128,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,62,62, - 0,31,222,0,15,159,128,17,18,54,18,0,0,0,96,0, - 0,224,0,1,192,0,1,128,0,3,0,0,0,0,0,254, - 63,128,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,62,62,0,31,222,0, - 15,159,128,17,18,54,18,0,0,0,128,0,1,192,0,3, - 224,0,6,48,0,12,24,0,0,0,0,254,63,128,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,62,62,0,31,222,0,15,159,128,17, - 17,51,18,0,0,14,56,0,14,56,0,14,56,0,0,0, - 0,0,0,0,254,63,128,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,62, - 62,0,31,222,0,15,159,128,16,23,46,15,255,251,0,48, - 0,112,0,224,0,192,1,128,0,0,254,63,60,12,30,8, - 30,24,15,16,15,48,7,160,7,224,3,192,3,192,1,192, - 1,128,1,128,97,0,243,0,254,0,120,0,16,23,46,16, - 255,251,252,0,60,0,60,0,60,0,60,0,60,0,61,240, - 63,28,60,30,60,14,60,15,60,15,60,15,60,15,60,14, - 62,30,63,28,61,240,60,0,60,0,60,0,60,0,255,0, - 16,22,44,15,255,251,14,56,14,56,14,56,0,0,0,0, - 254,63,60,12,30,8,30,24,15,16,15,48,7,160,7,224, - 3,192,3,192,1,192,1,128,1,128,97,0,243,0,254,0, - 120,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=23 x= 6 y=13 dx=26 dy= 0 ascent=20 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18r[3736] U8G_FONT_SECTION("u8g_font_ncenB18r") = { - 0,33,40,252,246,18,4,68,10,106,32,127,251,20,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=33 x= 8 y=18 dx=33 dy= 0 ascent=33 len=132 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =33 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24[12964] U8G_FONT_SECTION("u8g_font_ncenB24") = { - 0,39,53,252,243,25,6,143,16,147,32,255,249,33,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,9,1,1,6,25,25,10,2,249,120,252,252, - 252,252,120,0,0,48,48,48,48,48,48,120,120,120,120,124, - 252,252,252,252,252,120,15,22,44,19,1,253,0,6,0,6, - 0,12,3,252,14,124,60,62,124,62,120,126,248,126,248,220, - 248,192,249,128,253,128,255,2,255,6,126,6,63,28,31,248, - 15,224,24,0,24,0,48,0,17,24,72,19,1,0,1,248, - 0,7,252,0,15,142,0,15,15,0,31,31,0,31,31,0, - 31,31,0,31,14,0,15,0,0,15,0,0,7,128,0,127, - 248,0,127,248,0,7,128,0,7,128,0,7,128,0,3,128, - 0,3,129,128,123,3,128,255,199,0,199,255,0,199,254,0, - 253,254,0,120,124,0,16,16,32,19,1,3,99,198,247,239, - 255,254,127,252,60,62,120,30,112,14,112,14,112,14,112,14, - 120,30,60,60,127,254,255,255,247,239,99,198,19,24,72,19, - 0,0,255,31,224,255,31,224,124,7,128,62,7,0,62,7, - 0,31,6,0,31,14,0,15,140,0,15,140,0,7,216,0, - 7,216,0,3,240,0,31,254,0,31,254,0,1,224,0,1, - 224,0,31,254,0,31,254,0,1,224,0,1,224,0,1,224, - 0,1,224,0,15,252,0,15,252,0,4,25,25,20,8,0, - 240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,240, - 240,240,240,240,240,240,240,240,240,12,29,58,16,2,253,31, - 0,115,128,99,192,227,192,227,192,241,128,120,0,124,0,62, - 0,30,0,63,0,111,128,199,192,227,224,225,224,240,240,120, - 112,124,112,62,96,31,192,15,128,7,192,3,224,97,224,240, - 224,240,224,240,224,121,192,63,0,11,5,10,11,0,18,96, - 192,241,224,241,224,241,224,96,192,24,25,75,25,1,0,0, - 255,0,3,255,192,7,129,224,30,0,112,24,0,24,48,0, - 12,112,127,14,96,243,134,97,193,134,227,193,135,195,128,131, - 195,128,3,195,128,3,195,128,3,195,128,3,195,128,7,193, - 192,134,225,225,134,96,255,12,112,60,28,56,0,56,28,0, - 112,15,129,192,3,255,128,0,254,0,11,15,30,12,0,10, - 63,0,227,192,241,192,227,192,15,192,113,192,225,192,227,192, - 247,224,253,224,0,0,0,0,0,0,255,224,255,224,12,11, - 22,16,2,3,4,16,12,48,24,96,56,224,113,192,243,192, - 113,192,56,224,24,96,12,48,4,16,16,10,20,20,2,3, - 255,255,255,255,255,255,255,255,0,15,0,15,0,15,0,15, - 0,15,0,15,8,4,4,11,1,6,255,255,255,255,23,25, - 75,24,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,56,48,0,24,97,254,12,96,231,12,192,227,142,192, - 227,134,192,227,134,192,231,6,192,252,6,192,238,6,192,231, - 6,192,231,6,192,227,134,96,227,140,99,241,204,48,0,24, - 24,0,24,28,0,112,7,0,224,3,255,128,0,252,0,11, - 3,6,11,0,18,255,224,255,224,255,224,9,10,20,13,2, - 13,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,62,0,16,17,34,20,2,0,3,192,3,192,3, - 192,3,192,255,255,255,255,255,255,255,255,3,192,3,192,3, - 192,3,192,0,0,255,255,255,255,255,255,255,255,10,14,28, - 11,0,9,63,0,99,128,193,192,241,192,241,192,113,192,3, - 128,7,0,14,0,24,64,48,64,127,192,255,192,255,192,11, - 14,28,11,0,9,63,0,115,192,113,192,33,192,1,192,3, - 128,31,0,3,192,1,224,113,224,241,224,225,224,99,192,63, - 0,7,6,6,11,2,17,12,30,62,124,240,192,20,23,69, - 22,1,249,254,63,192,254,63,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,15,192,62,15,192,63,31,192,63,255,192,63,247,240, - 55,199,240,48,0,0,48,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,21,25,75,25,1,0,15,255, - 248,63,255,248,127,227,192,127,227,192,255,227,192,255,227,192, - 255,227,192,255,227,192,127,227,192,127,227,192,63,227,192,31, - 227,192,7,227,192,1,227,192,1,227,192,1,227,192,1,227, - 192,1,227,192,1,227,192,1,227,192,1,227,192,1,227,192, - 1,227,192,15,255,248,15,255,248,6,6,6,9,1,5,120, - 252,252,252,252,120,7,7,7,11,1,249,24,48,124,14,14, - 220,120,9,14,28,11,1,9,12,0,252,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,11,15,30,12,0,10,14,0,63,128,113,192, - 241,224,224,224,224,224,224,224,241,224,113,192,63,128,14,0, - 0,0,0,0,127,224,127,224,12,11,22,16,2,3,130,0, - 195,0,97,128,113,192,56,224,60,240,56,224,113,192,97,128, - 195,0,130,0,25,23,92,28,1,0,12,0,56,0,252,0, - 48,0,28,0,112,0,28,0,224,0,28,0,192,0,28,1, - 192,0,28,1,128,0,28,3,128,0,28,7,0,0,28,7, - 2,0,28,14,6,0,28,12,14,0,28,28,30,0,255,184, - 62,0,0,56,110,0,0,112,206,0,0,97,142,0,0,227, - 14,0,0,195,255,128,1,192,14,0,3,128,14,0,3,0, - 14,0,7,0,63,128,25,23,92,28,1,0,12,0,56,0, - 252,0,112,0,28,0,112,0,28,0,224,0,28,0,192,0, - 28,1,192,0,28,1,128,0,28,3,128,0,28,7,0,0, - 28,6,126,0,28,14,199,0,28,13,135,128,28,29,227,128, - 255,185,231,128,0,56,231,128,0,112,15,0,0,96,14,0, - 0,224,28,0,1,192,48,128,1,192,96,128,3,128,255,128, - 3,1,255,128,7,1,255,128,26,23,92,28,0,0,63,0, - 28,0,115,192,56,0,113,192,56,0,33,192,112,0,1,192, - 96,0,3,128,224,0,31,0,192,0,3,193,192,0,1,227, - 128,0,113,227,129,0,241,231,3,0,225,230,7,0,99,206, - 15,0,63,28,31,0,0,28,55,0,0,56,103,0,0,48, - 199,0,0,113,135,0,0,97,255,192,0,224,7,0,1,192, - 7,0,1,192,7,0,3,128,31,192,15,25,50,16,1,249, - 3,192,7,224,7,224,7,224,7,224,3,192,0,0,0,0, - 1,128,1,128,1,128,3,128,7,0,31,0,62,0,126,0, - 124,0,252,124,252,124,252,126,252,124,124,60,126,60,63,240, - 15,192,25,31,124,25,0,0,0,48,0,0,0,120,0,0, - 0,124,0,0,0,62,0,0,0,15,0,0,0,3,0,0, - 0,0,0,0,0,28,0,0,0,30,0,0,0,62,0,0, - 0,63,0,0,0,127,0,0,0,127,128,0,0,127,128,0, - 0,255,128,0,0,207,192,0,1,207,192,0,1,143,192,0, - 1,135,224,0,3,135,224,0,3,7,240,0,7,3,240,0, - 7,255,240,0,7,255,248,0,14,1,248,0,12,1,252,0, - 28,0,252,0,28,0,254,0,62,0,254,0,255,131,255,128, - 255,131,255,128,25,32,128,25,0,0,0,1,128,0,0,3, - 192,0,0,7,192,0,0,15,128,0,0,30,0,0,0,24, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,25,31,124,25,0,0, - 0,28,0,0,0,62,0,0,0,127,0,0,0,227,128,0, - 1,128,192,0,0,0,0,0,0,28,0,0,0,28,0,0, - 0,30,0,0,0,62,0,0,0,63,0,0,0,127,0,0, - 0,127,128,0,0,127,128,0,0,255,128,0,0,207,192,0, - 1,207,192,0,1,143,192,0,1,135,224,0,3,135,224,0, - 3,7,240,0,7,3,240,0,7,255,240,0,7,255,248,0, - 14,1,248,0,12,1,252,0,28,0,252,0,28,0,254,0, - 62,0,254,0,255,131,255,128,255,131,255,128,25,31,124,25, - 0,0,0,56,96,0,0,127,224,0,0,255,192,0,0,195, - 128,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28, - 0,0,0,30,0,0,0,62,0,0,0,63,0,0,0,127, - 0,0,0,127,128,0,0,127,128,0,0,255,128,0,0,207, - 192,0,1,207,192,0,1,143,192,0,1,135,224,0,3,135, - 224,0,3,7,240,0,7,3,240,0,7,255,240,0,7,255, - 248,0,14,1,248,0,12,1,252,0,28,0,252,0,28,0, - 254,0,62,0,254,0,255,131,255,128,255,131,255,128,25,31, - 124,25,0,0,0,193,128,0,1,227,192,0,1,227,192,0, - 1,227,192,0,0,193,128,0,0,0,0,0,0,28,0,0, - 0,28,0,0,0,30,0,0,0,62,0,0,0,63,0,0, - 0,127,0,0,0,127,128,0,0,127,128,0,0,255,128,0, - 0,207,192,0,1,207,192,0,1,143,192,0,1,135,224,0, - 3,135,224,0,3,7,240,0,7,3,240,0,7,255,240,0, - 7,255,248,0,14,1,248,0,12,1,252,0,28,0,252,0, - 28,0,254,0,62,0,254,0,255,131,255,128,255,131,255,128, - 25,33,132,25,0,0,0,62,0,0,0,119,0,0,0,99, - 0,0,0,99,0,0,0,119,0,0,0,62,0,0,0,0, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,31,25,100,33,255,0, - 1,255,255,254,1,255,255,254,0,123,240,126,0,59,240,62, - 0,51,240,30,0,51,240,14,0,115,240,6,0,99,240,198, - 0,227,240,198,0,195,241,194,1,195,241,192,1,131,243,192, - 3,131,255,192,3,3,255,192,7,255,243,192,7,255,241,192, - 14,3,240,198,14,3,240,198,12,3,240,198,28,3,240,14, - 24,3,240,14,56,3,240,30,124,3,240,126,255,31,255,254, - 255,31,255,254,22,32,96,24,1,249,0,126,24,3,255,184, - 7,193,248,31,128,248,31,0,120,62,0,56,126,0,56,126, - 0,24,254,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,254,0,0,254,0,12,254,0,28, - 126,0,24,126,0,56,63,0,48,31,128,112,15,193,224,7, - 255,192,0,255,0,0,48,0,0,96,0,0,248,0,0,28, - 0,0,28,0,1,184,0,0,240,0,21,32,96,23,1,0, - 0,192,0,1,224,0,1,240,0,0,248,0,0,60,0,0, - 12,0,0,0,0,255,255,248,255,255,248,31,129,248,31,128, - 248,31,128,120,31,128,56,31,128,56,31,134,24,31,134,24, - 31,142,0,31,142,0,31,158,0,31,254,0,31,254,0,31, - 158,0,31,142,0,31,134,24,31,134,24,31,134,24,31,128, - 56,31,128,56,31,128,120,31,129,248,255,255,248,255,255,248, - 21,32,96,23,1,0,0,3,0,0,7,128,0,15,128,0, - 31,0,0,60,0,0,48,0,0,0,0,255,255,248,255,255, - 248,31,129,248,31,128,248,31,128,120,31,128,56,31,128,56, - 31,134,24,31,134,24,31,142,0,31,142,0,31,158,0,31, - 254,0,31,254,0,31,158,0,31,142,0,31,134,24,31,134, - 24,31,134,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,21,32,96,23,1,0,0,56,0,0, - 124,0,0,254,0,1,199,0,3,1,128,0,0,0,0,0, - 0,255,255,248,255,255,248,31,129,248,31,128,248,31,128,120, - 31,128,56,31,128,56,31,134,24,31,134,24,31,142,0,31, - 142,0,31,158,0,31,254,0,31,254,0,31,158,0,31,142, - 0,31,134,24,31,134,24,31,134,24,31,128,56,31,128,56, - 31,128,120,31,129,248,255,255,248,255,255,248,21,32,96,23, - 1,0,1,131,0,3,199,128,3,199,128,3,199,128,1,131, - 0,0,0,0,0,0,0,255,255,248,255,255,248,31,129,248, - 31,128,248,31,128,120,31,128,56,31,128,56,31,134,24,31, - 134,24,31,142,0,31,142,0,31,158,0,31,254,0,31,254, - 0,31,158,0,31,142,0,31,134,24,31,134,24,31,134,24, - 31,128,56,31,128,56,31,128,120,31,129,248,255,255,248,255, - 255,248,12,33,66,14,1,0,48,0,120,0,124,0,62,0, - 15,0,3,0,0,0,0,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,12,33,66,14,1,0, - 0,192,1,224,3,224,7,192,15,0,12,0,0,0,0,0, - 255,240,255,240,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,255,240, - 255,240,12,32,64,14,1,0,7,0,15,128,31,192,56,224, - 96,48,0,0,0,0,255,240,255,240,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,240,255,240,12,32,64,14,1,0,48,96, - 120,240,120,240,120,240,48,96,0,0,0,0,255,240,255,240, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,255,240,255,240,24,25, - 75,26,1,0,255,255,0,255,255,224,31,131,240,31,129,248, - 31,128,252,31,128,124,31,128,126,31,128,126,31,128,127,31, - 128,63,31,128,63,31,128,63,255,248,63,255,248,63,31,128, - 63,31,128,63,31,128,63,31,128,127,31,128,126,31,128,126, - 31,128,252,31,128,248,31,131,240,255,255,224,255,255,0,27, - 31,124,27,0,0,0,56,96,0,0,127,224,0,0,255,192, - 0,0,195,128,0,0,0,0,0,0,0,0,0,255,128,127, - 224,255,192,127,224,63,224,15,0,15,224,6,0,15,240,6, - 0,15,248,6,0,15,252,6,0,13,254,6,0,12,254,6, - 0,12,255,6,0,12,127,134,0,12,63,198,0,12,31,230, - 0,12,15,230,0,12,15,246,0,12,7,254,0,12,3,254, - 0,12,1,254,0,12,0,254,0,12,0,126,0,12,0,126, - 0,12,0,62,0,30,0,30,0,255,192,14,0,255,192,6, - 0,24,32,96,26,1,0,1,128,0,3,192,0,3,224,0, - 1,240,0,0,120,0,0,24,0,0,0,0,0,126,0,3, - 255,192,15,193,240,31,128,248,63,0,252,62,0,124,126,0, - 126,126,0,126,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,126, - 0,126,126,0,126,62,0,124,63,0,252,31,128,248,15,193, - 240,3,255,192,0,126,0,24,32,96,26,1,0,0,0,192, - 0,1,224,0,3,224,0,7,192,0,15,0,0,12,0,0, - 0,0,0,126,0,3,255,192,15,193,240,31,128,248,63,0, - 252,62,0,124,126,0,126,126,0,126,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,126,0,126,126,0,126,62,0,124,63,0, - 252,31,128,248,15,193,240,3,255,192,0,126,0,24,32,96, - 26,1,0,0,28,0,0,62,0,0,127,0,0,227,128,1, - 128,192,0,0,0,0,0,0,0,126,0,3,255,192,15,193, - 240,31,128,248,63,0,252,62,0,124,126,0,126,126,0,126, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,126,0,126,126,0, - 126,62,0,124,63,0,252,31,128,248,15,193,240,3,255,192, - 0,126,0,24,31,93,26,1,0,0,112,192,0,255,192,1, - 255,128,1,135,0,0,0,0,0,0,0,0,126,0,3,255, - 192,15,193,240,31,128,248,63,0,252,62,0,124,126,0,126, - 126,0,126,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,126,0, - 126,126,0,126,62,0,124,63,0,252,31,128,248,15,193,240, - 3,255,192,0,126,0,24,32,96,26,1,0,0,193,128,1, - 227,192,1,227,192,1,227,192,0,193,128,0,0,0,0,0, - 0,0,126,0,3,255,192,15,193,240,31,128,248,63,0,252, - 62,0,124,126,0,126,126,0,126,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,252,0, - 63,252,0,63,126,0,126,126,0,126,62,0,124,63,0,252, - 31,128,248,15,193,240,3,255,192,0,126,0,16,17,34,20, - 2,0,32,4,112,14,248,31,252,63,126,126,63,252,31,248, - 15,240,7,224,15,240,31,248,63,252,126,126,252,63,248,31, - 112,14,32,4,24,27,81,26,1,255,0,0,12,0,126,24, - 3,255,248,7,195,240,31,128,248,31,0,248,62,0,252,126, - 1,254,126,3,126,254,7,127,252,6,63,252,12,63,252,28, - 63,252,24,63,252,48,63,252,96,63,252,224,63,254,192,127, - 127,128,126,127,128,126,63,0,124,31,0,248,31,128,248,15, - 193,224,27,255,192,48,126,0,48,0,0,26,32,128,28,1, - 0,0,48,0,0,0,120,0,0,0,124,0,0,0,62,0, - 0,0,15,0,0,0,3,0,0,0,0,0,0,255,240,255, - 192,255,240,255,192,31,128,30,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,28,0,15,192,24, - 0,15,224,56,0,7,248,240,0,3,255,224,0,0,255,192, - 0,26,32,128,28,1,0,0,0,96,0,0,0,240,0,0, - 1,240,0,0,3,224,0,0,7,128,0,0,6,0,0,0, - 0,0,0,255,240,255,192,255,240,255,192,31,128,30,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,28,0,15,192,24,0,15,224,56,0,7,248,240,0,3, - 255,224,0,0,255,192,0,26,32,128,28,1,0,0,14,0, - 0,0,31,0,0,0,63,128,0,0,113,192,0,0,192,96, - 0,0,0,0,0,0,0,0,0,255,240,255,192,255,240,255, - 192,31,128,30,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,28,0,15,192,24,0,15,224,56, - 0,7,248,240,0,3,255,224,0,0,255,192,0,26,32,128, - 28,1,0,0,48,96,0,0,120,240,0,0,120,240,0,0, - 120,240,0,0,48,96,0,0,0,0,0,0,0,0,0,255, - 240,255,192,255,240,255,192,31,128,30,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,28,0,15, - 192,24,0,15,224,56,0,7,248,240,0,3,255,224,0,0, - 255,192,0,24,33,99,24,0,0,0,0,96,0,0,240,0, - 1,240,0,3,224,0,7,128,0,6,0,0,0,0,0,0, - 0,255,241,255,255,241,255,63,128,124,31,192,56,31,192,112, - 15,224,112,15,224,224,7,240,192,3,241,192,3,249,128,1, - 251,128,1,255,0,0,255,0,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,3,255,192,3,255,192,22,25,75,24, - 1,0,255,240,0,255,240,0,31,128,0,31,128,0,31,128, - 0,31,255,128,31,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,255,240,0,18,25,75, - 20,0,0,3,252,0,7,190,0,15,15,0,15,15,0,31, - 15,128,31,15,128,31,15,128,31,15,0,31,15,0,31,14, - 0,31,28,0,31,126,0,31,15,128,31,15,128,31,7,192, - 31,7,192,31,7,192,31,7,192,31,7,192,31,7,192,31, - 7,128,31,7,128,31,79,0,255,254,0,255,120,0,18,23, - 69,20,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,15,240,0,63,252,0,120, - 62,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,18,23,69,20,1,0,0, - 96,0,0,240,0,1,240,0,3,224,0,7,128,0,6,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,22,66,20,1,0,1,192,0,3,224,0, - 7,240,0,14,56,0,24,12,0,0,0,0,15,240,0,63, - 252,0,120,62,0,124,62,0,124,62,0,56,62,0,0,62, - 0,3,254,0,31,190,0,126,62,0,124,62,0,252,62,0, - 252,62,0,252,127,64,127,255,192,63,143,128,18,22,66,20, - 1,0,7,12,0,15,252,0,31,248,0,24,112,0,0,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,23,69,20,1,0,12,24,0,30,60,0, - 30,60,0,30,60,0,12,24,0,0,0,0,0,0,0,15, - 240,0,63,252,0,120,62,0,124,62,0,124,62,0,56,62, - 0,0,62,0,3,254,0,31,190,0,126,62,0,124,62,0, - 252,62,0,252,62,0,252,127,64,127,255,192,63,143,128,18, - 23,69,20,1,0,3,224,0,7,112,0,6,48,0,6,48, - 0,7,112,0,3,224,0,0,0,0,15,240,0,63,252,0, - 120,62,0,124,62,0,124,62,0,56,62,0,0,62,0,3, - 254,0,31,190,0,126,62,0,124,62,0,252,62,0,252,62, - 0,252,127,64,127,255,192,63,143,128,26,16,64,28,1,0, - 7,224,248,0,30,123,222,0,56,63,15,0,124,63,15,128, - 124,62,7,128,120,62,7,192,49,254,7,192,15,255,255,192, - 63,255,255,192,126,62,0,0,252,62,0,0,248,63,0,192, - 248,127,1,128,252,239,131,128,127,199,255,0,63,1,252,0, - 15,23,46,17,1,249,3,240,14,60,62,62,124,62,124,62, - 248,28,248,0,248,0,248,0,248,0,252,2,252,6,126,6, - 63,28,31,248,7,240,1,128,3,0,7,192,0,224,0,224, - 13,192,7,128,16,23,46,18,1,0,6,0,15,0,15,128, - 7,192,1,224,0,96,0,0,3,224,14,120,60,60,124,30, - 124,30,248,31,248,31,255,255,255,255,248,0,248,0,252,3, - 124,6,63,14,31,252,7,240,16,23,46,18,1,0,0,48, - 0,120,0,248,1,240,3,192,3,0,0,0,3,224,14,120, - 60,60,124,30,124,30,248,31,248,31,255,255,255,255,248,0, - 248,0,252,3,124,6,63,14,31,252,7,240,16,22,44,18, - 1,0,1,192,3,224,7,240,14,56,24,12,0,0,3,224, - 14,120,60,60,124,30,124,30,248,31,248,31,255,255,255,255, - 248,0,248,0,252,3,124,6,63,14,31,252,7,240,16,23, - 46,18,1,0,12,24,30,60,30,60,30,60,12,24,0,0, - 0,0,3,224,14,120,60,60,124,30,124,30,248,31,248,31, - 255,255,255,255,248,0,248,0,252,3,124,6,63,14,31,252, - 7,240,9,23,46,11,1,0,96,0,240,0,248,0,124,0, - 30,0,6,0,0,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,128,9,23,46,11,1,0,6,0,15,0, - 31,0,62,0,120,0,96,0,0,0,254,0,254,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,11,22,44,11,255,0, - 14,0,31,0,63,128,113,192,192,96,0,0,63,128,63,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,63,224,63,224,11,23,46,11, - 0,0,96,192,241,224,241,224,241,224,96,192,0,0,0,0, - 127,0,127,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,127,192,127,192, - 17,26,78,20,1,0,0,4,0,14,14,0,15,156,0,3, - 248,0,1,240,0,3,248,0,7,120,0,14,60,0,4,62, - 0,0,30,0,3,255,0,15,63,0,60,31,0,124,31,128, - 120,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,124,31,0,124,31,0,62,62,0,15,248, - 0,3,224,0,20,22,66,22,1,0,3,134,0,7,254,0, - 15,252,0,12,56,0,0,0,0,0,0,0,254,62,0,254, - 255,128,63,255,128,63,143,192,63,7,192,63,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,7,192,62,7,192, - 62,7,192,62,7,192,255,159,240,255,159,240,17,23,69,19, - 1,0,6,0,0,15,0,0,15,128,0,7,192,0,1,224, - 0,0,96,0,0,0,0,3,224,0,15,248,0,62,62,0, - 124,31,0,124,31,0,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,124,31,0,124,31,0,62,62, - 0,15,248,0,3,224,0,17,23,69,19,1,0,0,24,0, - 0,60,0,0,124,0,0,248,0,1,224,0,1,128,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,22,66,19,1,0,1,192,0,3,224,0,7,240, - 0,14,56,0,24,12,0,0,0,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,17,22,66,19,1,0, - 3,134,0,7,254,0,15,252,0,12,56,0,0,0,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,23,69,19,1,0,12,24,0,30,60,0,30,60, - 0,30,60,0,12,24,0,0,0,0,0,0,0,3,224,0, - 15,248,0,62,62,0,124,31,0,124,31,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 0,124,31,0,62,62,0,15,248,0,3,224,0,17,17,51, - 20,2,0,1,192,0,3,224,0,3,224,0,3,224,0,1, - 192,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,0,0,0,0,0,0,1,192,0,3,224,0,3,224,0, - 3,224,0,1,192,0,17,22,66,19,1,253,0,2,0,0, - 6,0,0,12,0,3,236,0,15,248,0,62,62,0,124,63, - 0,124,111,0,248,79,128,248,207,128,248,143,128,249,143,128, - 251,15,128,250,15,128,126,31,0,124,31,0,62,62,0,31, - 248,0,27,224,0,48,0,0,48,0,0,32,0,0,20,23, - 69,22,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,254,31,192,254,31,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,15,192,62,15,192,63,31,192, - 31,255,192,31,247,240,7,199,240,20,23,69,22,1,0,0, - 24,0,0,60,0,0,124,0,0,248,0,1,224,0,1,128, - 0,0,0,0,254,31,192,254,31,192,62,7,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,15,192,62,15,192,63,31,192,31,255,192,31,247, - 240,7,199,240,20,22,66,22,1,0,0,224,0,1,240,0, - 3,248,0,7,28,0,12,6,0,0,0,0,254,31,192,254, - 31,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,15,192,62,15,192, - 63,31,192,31,255,192,31,247,240,7,199,240,20,23,69,22, - 1,0,6,12,0,15,30,0,15,30,0,15,30,0,6,12, - 0,0,0,0,0,0,0,254,31,192,254,31,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,15,192,62,15,192,63,31,192,31,255, - 192,31,247,240,7,199,240,19,30,90,19,0,249,0,12,0, - 0,30,0,0,62,0,0,124,0,0,240,0,0,192,0,0, - 0,0,255,143,224,255,143,224,63,3,128,63,3,128,31,3, - 0,31,135,0,15,134,0,15,198,0,7,204,0,7,236,0, - 3,248,0,3,248,0,1,248,0,1,240,0,0,240,0,0, - 224,0,0,96,0,112,192,0,248,192,0,249,128,0,255,0, - 0,127,0,0,60,0,0,20,29,87,22,0,249,255,0,0, - 255,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 63,0,31,127,192,31,199,224,31,131,224,31,131,240,31,3, - 240,31,3,240,31,1,240,31,1,240,31,1,240,31,3,240, - 31,131,224,31,131,224,31,199,192,31,255,128,31,63,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,127,224, - 0,127,224,0,19,30,90,19,0,249,3,6,0,7,143,0, - 7,143,0,7,143,0,3,6,0,0,0,0,0,0,0,255, - 143,224,255,143,224,63,3,128,63,3,128,31,3,0,31,135, - 0,15,134,0,15,198,0,7,204,0,7,236,0,3,248,0, - 3,248,0,1,248,0,1,240,0,0,240,0,0,224,0,0, - 96,0,112,192,0,248,192,0,249,128,0,255,0,0,127,0, - 0,60,0,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=25 x= 3 y=10 dx=20 dy= 0 ascent=25 len=72 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24n[868] U8G_FONT_SECTION("u8g_font_ncenB24n") = { - 0,39,53,252,243,24,0,0,0,0,42,58,0,25,251,24, - 0,12,15,30,17,2,10,6,0,14,0,14,0,230,112,230, - 112,246,240,63,192,15,0,127,224,246,240,230,112,230,112,7, - 0,7,0,6,0,16,16,32,20,2,1,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,6,11,11,9,2, - 251,120,248,252,252,252,124,28,24,48,112,224,8,4,4,11, - 1,6,255,255,255,255,6,6,6,9,1,0,120,252,252,252, - 252,120,10,25,50,9,255,0,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,7,0,6,0,14,0,14,0, - 12,0,28,0,28,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,224,0,224,0,192,0,16,24,48,19,1,0, - 3,192,15,240,30,120,60,60,124,62,120,30,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,120,30,120,30,124,62,60,60,30,120,15,240,3,192, - 13,24,48,19,3,0,1,128,7,128,255,128,255,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,255,248,255,248,17,24,72,19,1,0,15,240,0,63, - 252,0,120,126,0,240,63,0,248,31,0,252,31,0,252,31, - 0,252,31,0,124,63,0,56,62,0,0,124,0,0,248,0, - 0,240,0,1,224,0,3,192,0,3,129,128,7,1,128,14, - 1,128,28,3,128,63,255,128,127,255,0,127,255,0,255,255, - 0,255,255,0,16,24,48,19,1,0,15,224,63,248,120,124, - 248,62,252,62,252,62,252,62,120,62,0,124,0,112,7,224, - 7,192,0,248,0,126,0,62,0,63,120,31,252,31,252,31, - 252,63,248,62,120,126,63,248,7,224,17,24,72,19,0,0, - 0,4,0,0,12,0,0,28,0,0,60,0,0,124,0,0, - 252,0,1,252,0,1,252,0,3,124,0,6,124,0,12,124, - 0,28,124,0,56,124,0,112,124,0,224,124,0,192,124,0, - 255,255,128,255,255,128,0,124,0,0,124,0,0,124,0,0, - 124,0,3,255,128,3,255,128,16,24,48,19,1,0,31,255, - 63,254,63,254,63,252,63,240,48,0,48,0,48,0,48,0, - 55,224,63,248,56,124,48,62,32,62,0,31,0,31,56,31, - 124,31,252,31,252,62,120,62,112,252,63,240,15,192,17,24, - 72,19,1,0,3,240,0,15,252,0,31,30,0,62,62,0, - 60,62,0,124,62,0,120,28,0,248,0,0,248,0,0,248, - 0,0,249,248,0,255,254,0,255,127,0,252,31,0,248,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,124,31,0, - 124,31,0,62,62,0,31,252,0,7,240,0,16,24,48,19, - 2,0,255,255,255,254,255,254,255,252,255,252,192,24,192,24, - 192,56,128,112,0,112,0,240,0,224,1,224,1,224,3,224, - 3,192,7,192,7,192,15,192,15,192,15,192,15,192,15,192, - 7,128,17,24,72,19,1,0,7,240,0,15,252,0,60,62, - 0,56,31,0,120,15,0,120,15,0,120,15,0,124,15,0, - 126,30,0,127,252,0,63,240,0,31,252,0,15,254,0,63, - 255,0,120,127,0,248,31,128,240,15,128,240,15,128,240,15, - 0,240,15,0,248,30,0,124,60,0,63,240,0,7,192,0, - 17,24,72,19,1,0,3,192,0,31,248,0,62,124,0,124, - 62,0,252,31,0,248,31,0,248,15,128,248,15,128,248,15, - 128,252,31,128,252,63,128,127,111,128,63,207,128,31,143,128, - 0,15,128,0,15,128,112,15,0,248,31,0,252,31,0,248, - 30,0,248,62,0,112,252,0,63,240,0,15,192,0,6,16, - 16,9,2,0,120,252,252,252,252,120,0,0,0,0,120,252, - 252,252,252,120}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=32 x= 8 y=17 dx=32 dy= 0 ascent=26 len=124 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24r[5937] U8G_FONT_SECTION("u8g_font_ncenB24r") = { - 0,39,53,252,243,25,6,143,16,147,32,127,249,26,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08[2642] U8G_FONT_SECTION("u8g_font_ncenR08") = { - 0,14,18,254,252,8,1,180,3,120,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,3,0,1,1,8,8,4,1,254,128,128, - 0,128,128,128,128,128,5,7,7,6,0,255,16,120,168,160, - 200,112,64,6,8,8,7,0,0,56,72,64,248,32,32,68, - 248,6,6,6,7,0,1,132,120,72,72,120,132,7,8,8, - 8,0,0,198,68,40,108,16,124,16,56,1,8,8,6,2, - 0,128,128,128,0,0,128,128,128,4,10,10,5,0,254,112, - 144,128,96,144,144,96,16,144,224,3,1,1,4,0,6,160, - 9,8,16,10,0,0,62,0,65,0,156,128,164,128,160,128, - 156,128,65,0,62,0,4,6,6,5,0,2,224,32,96,176, - 0,240,5,3,3,6,0,1,72,144,72,5,3,3,6,0, - 1,248,8,8,3,1,1,4,0,2,224,9,8,16,10,0, - 0,62,0,65,0,188,128,148,128,152,128,182,128,65,0,62, - 0,4,1,1,5,0,6,240,3,4,4,4,0,4,64,160, - 160,64,5,5,5,6,0,0,32,248,32,0,248,3,4,4, - 3,0,4,96,160,64,224,3,4,4,3,0,4,224,64,32, - 192,2,2,2,3,0,6,64,128,5,7,7,6,0,254,144, - 144,144,144,232,128,128,6,10,10,7,0,254,124,168,168,168, - 104,40,40,40,40,124,1,2,2,4,1,2,128,128,2,3, - 3,3,0,254,128,64,192,3,4,4,3,0,4,64,192,64, - 224,4,6,6,5,0,2,96,144,144,96,0,240,5,3,3, - 6,0,1,144,72,144,7,8,8,7,0,0,72,200,80,240, - 36,44,94,68,6,8,8,7,0,0,72,200,80,240,44,52, - 72,92,7,8,8,7,0,0,232,72,48,208,36,44,94,68, - 4,8,8,5,0,254,32,32,0,32,64,128,144,96,7,11, - 11,8,0,0,32,16,0,16,16,40,40,68,124,68,238,7, - 11,11,8,0,0,8,16,0,16,16,40,40,68,124,68,238, - 7,11,11,8,0,0,16,40,0,16,16,40,40,68,124,68, - 238,7,11,11,8,0,0,20,40,0,16,16,40,40,68,124, - 68,238,7,10,10,8,0,0,40,0,16,16,40,40,68,124, - 68,238,7,11,11,8,0,0,16,40,16,16,16,40,40,68, - 124,68,238,10,8,16,11,0,0,31,192,12,64,21,64,23, - 0,61,0,36,64,68,64,231,192,6,10,10,7,0,254,60, - 68,128,128,128,128,68,56,16,48,6,11,11,7,0,0,32, - 16,0,252,68,84,112,80,68,68,252,6,11,11,7,0,0, - 8,16,0,252,68,84,112,80,68,68,252,6,11,11,7,0, - 0,16,40,0,252,68,84,112,80,68,68,252,6,10,10,7, - 0,0,40,0,252,68,84,112,80,68,68,252,3,11,11,4, - 0,0,128,64,0,224,64,64,64,64,64,64,224,3,11,11, - 4,0,0,32,64,0,224,64,64,64,64,64,64,224,3,11, - 11,4,0,0,64,160,0,224,64,64,64,64,64,64,224,3, - 10,10,4,0,0,160,0,224,64,64,64,64,64,64,224,7, - 8,8,8,0,0,248,68,66,226,66,66,68,248,8,11,11, - 9,0,0,20,40,0,231,98,82,82,74,74,70,230,7,11, - 11,8,0,0,32,16,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,8,16,0,56,68,130,130,130,130,68,56, - 7,11,11,8,0,0,16,40,0,56,68,130,130,130,130,68, - 56,7,11,11,8,0,0,20,40,0,56,68,130,130,130,130, - 68,56,7,10,10,8,0,0,40,0,56,68,130,130,130,130, - 68,56,5,5,5,6,0,0,136,80,32,80,136,8,8,8, - 8,255,0,29,34,69,73,81,97,98,156,7,11,11,8,0, - 0,32,16,0,238,68,68,68,68,68,68,56,7,11,11,8, - 0,0,8,16,0,238,68,68,68,68,68,68,56,7,11,11, - 8,0,0,16,40,0,238,68,68,68,68,68,68,56,7,10, - 10,8,0,0,40,0,238,68,68,68,68,68,68,56,7,11, - 11,8,0,0,8,16,0,198,68,40,40,16,16,16,56,6, - 8,8,7,0,0,192,120,68,68,68,120,64,224,6,8,8, - 7,0,0,48,72,72,88,68,68,84,216,5,8,8,6,0, - 0,64,32,0,96,144,112,144,248,5,8,8,6,0,0,32, - 64,0,96,144,112,144,248,5,8,8,6,0,0,32,80,0, - 96,144,112,144,248,5,8,8,6,0,0,80,160,0,96,144, - 112,144,248,5,7,7,6,0,0,80,0,96,144,112,144,248, - 5,8,8,6,0,0,32,80,32,96,144,112,144,248,7,5, - 5,8,0,0,108,146,126,144,238,4,7,7,5,0,254,112, - 144,128,144,96,32,96,4,8,8,5,0,0,64,32,0,96, - 144,240,128,112,4,8,8,5,0,0,32,64,0,96,144,240, - 128,112,4,8,8,5,0,0,32,80,0,96,144,240,128,112, - 4,7,7,5,0,0,80,0,96,144,240,128,112,3,8,8, - 4,0,0,128,64,0,192,64,64,64,224,3,8,8,4,0, - 0,32,64,0,192,64,64,64,224,3,8,8,4,0,0,64, - 160,0,192,64,64,64,224,3,7,7,4,0,0,160,0,192, - 64,64,64,224,4,8,8,5,0,0,80,96,160,96,144,144, - 144,96,6,8,8,7,0,0,40,80,0,176,72,72,72,236, - 4,8,8,5,0,0,64,32,0,96,144,144,144,96,4,8, - 8,5,0,0,32,64,0,96,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,7,7,5,0,0,80,0, - 96,144,144,144,96,5,5,5,6,0,0,32,0,248,0,32, - 5,6,6,5,0,255,104,144,176,208,96,128,5,8,8,6, - 0,0,64,32,0,144,144,144,144,104,5,8,8,6,0,0, - 32,64,0,144,144,144,144,104,5,8,8,6,0,0,32,80, - 0,144,144,144,144,104,5,7,7,6,0,0,80,0,144,144, - 144,144,104,6,10,10,6,0,254,16,32,0,220,136,80,80, - 32,32,192,5,10,10,5,255,254,192,64,64,112,72,72,72, - 112,64,224,6,9,9,6,0,254,80,0,220,136,80,80,32, - 32,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08r[1266] U8G_FONT_SECTION("u8g_font_ncenR08r") = { - 0,14,18,254,252,8,1,180,3,120,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=14 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10[3813] U8G_FONT_SECTION("u8g_font_ncenR10") = { - 0,18,24,254,250,11,2,24,5,38,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,4,0,1,1,11,11,4,1, - 253,128,128,0,128,128,128,128,128,128,128,128,6,11,11,8, - 1,254,4,4,120,204,144,144,160,228,120,128,128,7,11,11, - 8,0,0,60,98,70,64,32,252,16,16,96,178,206,7,7, - 7,8,0,2,186,68,130,130,130,68,186,9,11,22,8,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,62,0,8, - 0,62,0,8,0,28,0,1,11,11,9,4,0,128,128,128, - 128,0,0,128,128,128,128,128,5,13,13,7,1,254,120,136, - 128,192,112,152,136,200,112,24,8,136,240,4,2,2,6,1, - 8,144,144,12,11,22,14,1,0,15,0,48,192,79,32,89, - 32,144,16,144,16,152,144,79,32,64,32,48,192,15,0,5, - 7,7,6,0,4,96,144,112,144,248,0,248,6,5,5,7, - 0,1,36,72,144,72,36,7,4,4,9,0,1,254,2,2, - 2,4,1,1,5,0,3,240,12,11,22,14,1,0,15,0, - 48,192,94,32,73,32,137,16,142,16,139,16,89,160,64,32, - 48,192,15,0,5,1,1,5,0,8,248,4,4,4,6,1, - 7,96,144,144,96,7,7,7,9,1,0,16,16,254,16,16, - 0,254,4,6,6,5,0,5,96,144,32,64,144,240,4,6, - 6,5,0,5,96,144,32,16,144,96,3,3,3,5,1,8, - 32,64,128,8,10,10,9,0,253,231,66,66,66,66,102,123, - 64,96,64,7,13,13,9,1,254,126,212,212,212,212,116,20, - 20,20,20,20,20,62,2,2,2,4,1,3,192,192,3,4, - 4,5,0,253,64,64,32,192,3,6,6,5,1,5,64,192, - 64,64,64,224,4,7,7,5,0,4,96,144,144,144,96,0, - 240,6,5,5,7,0,1,144,72,36,72,144,10,11,22,12, - 0,0,65,0,193,0,66,0,66,0,68,0,228,128,9,128, - 18,128,20,128,39,192,32,128,10,11,22,12,0,0,65,0, - 193,0,66,0,66,0,68,0,229,128,10,64,16,128,17,0, - 34,64,35,192,10,11,22,12,0,0,97,0,145,0,34,0, - 18,0,148,0,100,128,9,128,18,128,20,128,39,192,32,128, - 5,11,11,6,0,253,32,32,0,32,32,32,64,128,136,200, - 112,11,14,28,10,255,0,8,0,4,0,0,0,4,0,4, - 0,10,0,10,0,10,0,17,0,17,0,63,128,32,128,32, - 128,251,224,11,14,28,10,255,0,2,0,4,0,0,0,4, - 0,4,0,10,0,10,0,10,0,17,0,17,0,63,128,32, - 128,32,128,251,224,11,14,28,10,255,0,4,0,10,0,17, - 0,4,0,4,0,10,0,10,0,10,0,17,0,17,0,63, - 128,32,128,32,128,251,224,11,14,28,10,255,0,12,128,19, - 0,0,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,13,26,10,255,0,17, - 0,17,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,14,28,10,255,0,12, - 0,18,0,12,0,4,0,4,0,10,0,10,0,10,0,17, - 0,17,0,63,128,32,128,32,128,251,224,14,11,22,15,0, - 0,15,252,5,4,9,4,9,32,17,32,17,224,63,32,33, - 32,65,4,65,4,227,252,9,14,28,11,1,253,30,128,97, - 128,64,128,192,128,128,0,128,0,128,0,192,128,64,128,97, - 0,30,0,8,0,4,0,24,0,9,14,28,10,0,0,16, - 0,8,0,0,0,255,128,32,128,32,128,36,0,36,0,60, - 0,36,0,36,0,32,128,32,128,255,128,9,14,28,10,0, - 0,4,0,8,0,0,0,255,128,32,128,32,128,36,0,36, - 0,60,0,36,0,36,0,32,128,32,128,255,128,9,14,28, - 10,0,0,12,0,18,0,0,0,255,128,32,128,32,128,36, - 0,36,0,60,0,36,0,36,0,32,128,32,128,255,128,9, - 14,28,10,0,0,18,0,18,0,0,0,255,128,32,128,32, - 128,36,0,36,0,60,0,36,0,36,0,32,128,32,128,255, - 128,5,14,14,6,0,0,64,32,0,248,32,32,32,32,32, - 32,32,32,32,248,5,14,14,6,0,0,16,32,0,248,32, - 32,32,32,32,32,32,32,32,248,5,14,14,6,0,0,48, - 72,0,248,32,32,32,32,32,32,32,32,32,248,5,14,14, - 6,0,0,80,80,0,248,32,32,32,32,32,32,32,32,32, - 248,10,11,22,11,0,0,255,0,32,128,32,192,32,64,32, - 64,248,64,32,64,32,64,32,192,32,128,255,0,12,14,28, - 13,0,0,12,128,19,0,0,0,225,240,48,64,48,64,40, - 64,44,64,38,64,35,64,33,64,32,192,32,64,248,64,10, - 14,28,11,0,0,8,0,4,0,0,0,30,0,97,128,64, - 128,192,192,128,64,128,64,128,64,192,192,64,128,97,128,30, - 0,10,14,28,11,0,0,2,0,4,0,0,0,30,0,97, - 128,64,128,192,192,128,64,128,64,128,64,192,192,64,128,97, - 128,30,0,10,14,28,11,0,0,12,0,18,0,0,0,30, - 0,97,128,64,128,192,192,128,64,128,64,128,64,192,192,64, - 128,97,128,30,0,10,14,28,11,0,0,25,0,38,0,0, - 0,30,0,97,128,64,128,192,192,128,64,128,64,128,64,192, - 192,64,128,97,128,30,0,10,14,28,11,0,0,18,0,18, - 0,0,0,30,0,97,128,64,128,192,192,128,64,128,64,128, - 64,192,192,64,128,97,128,30,0,7,7,7,9,1,0,130, - 68,40,16,40,68,130,11,11,22,11,255,0,15,32,48,192, - 32,192,97,96,66,32,68,32,72,32,112,96,32,64,112,192, - 143,0,12,14,28,13,0,0,8,0,4,0,0,0,249,240, - 32,64,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 48,128,31,0,12,14,28,13,0,0,1,0,2,0,0,0, - 249,240,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,48,128,31,0,12,14,28,13,0,0,6,0,9,0, - 0,0,249,240,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,48,128,31,0,12,14,28,13,0,0,9,0, - 9,0,0,0,249,240,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,48,128,31,0,11,14,28,10,255,0, - 2,0,4,0,0,0,251,224,96,128,49,0,17,0,26,0, - 10,0,4,0,4,0,4,0,4,0,31,0,9,11,22,10, - 0,0,248,0,32,0,63,0,33,128,32,128,32,128,33,0, - 62,0,32,0,32,0,248,0,7,11,11,8,0,0,56,100, - 68,76,88,68,66,66,66,86,220,7,11,11,8,0,0,32, - 16,8,0,56,76,4,60,196,140,118,7,11,11,8,0,0, - 8,16,32,0,56,76,4,60,196,140,118,7,11,11,8,0, - 0,16,40,68,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,50,76,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,72,72,0,56,76,4,60,196,140,118,7,11,11,8, - 0,0,48,72,48,0,56,76,4,60,196,140,118,11,7,14, - 12,0,0,59,192,78,96,4,32,63,224,196,0,142,32,115, - 192,6,10,10,7,0,253,120,204,128,128,128,196,120,32,16, - 96,6,11,11,7,0,0,64,32,16,0,120,204,132,252,128, - 196,120,6,11,11,7,0,0,8,16,32,0,120,204,132,252, - 128,196,120,6,11,11,7,0,0,16,40,68,0,120,204,132, - 252,128,196,120,6,10,10,7,0,0,72,72,0,120,204,132, - 252,128,196,120,3,11,11,4,0,0,128,64,32,0,192,64, - 64,64,64,64,224,3,11,11,4,0,0,32,64,128,0,192, - 64,64,64,64,64,224,5,11,11,4,255,0,32,80,136,0, - 96,32,32,32,32,32,112,4,10,10,4,255,0,144,144,0, - 96,32,32,32,32,32,112,7,11,11,7,255,0,76,48,208, - 8,60,102,66,66,66,102,60,8,10,10,9,0,0,50,76, - 0,220,102,66,66,66,66,231,6,11,11,7,0,0,64,32, - 16,0,120,204,132,132,132,204,120,6,11,11,7,0,0,16, - 32,64,0,120,204,132,132,132,204,120,6,11,11,7,0,0, - 32,80,136,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,100,152,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,72,72,0,120,204,132,132,132,204,120,7,7,7,9,1, - 0,16,16,0,254,0,16,16,6,9,9,7,0,255,8,120, - 220,148,164,164,204,120,64,8,11,11,9,0,0,32,16,8, - 0,231,66,66,66,66,102,59,8,11,11,9,0,0,2,4, - 8,0,231,66,66,66,66,102,59,8,11,11,9,0,0,8, - 20,34,0,231,66,66,66,66,102,59,8,10,10,9,0,0, - 36,36,0,231,66,66,66,66,102,59,7,14,14,8,0,253, - 4,8,16,0,238,68,68,40,40,16,16,32,160,192,7,14, - 14,8,0,253,192,64,64,64,92,102,66,66,66,102,92,64, - 64,224,7,13,13,8,0,253,72,72,0,238,68,68,40,40, - 16,16,32,160,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=12 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10r[1781] U8G_FONT_SECTION("u8g_font_ncenR10r") = { - 0,18,24,254,250,11,2,24,5,38,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12[4247] U8G_FONT_SECTION("u8g_font_ncenR12") = { - 0,21,26,253,250,12,2,59,5,140,32,255,253,16,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,1,1,2,12, - 12,5,1,253,192,192,0,64,64,64,64,192,192,192,192,192, - 6,12,12,9,1,254,4,4,56,76,204,144,144,228,100,56, - 64,64,9,12,24,9,0,0,30,0,49,0,35,0,35,0, - 48,0,16,0,254,0,16,0,16,0,112,128,191,0,78,0, - 7,8,8,9,1,2,186,108,198,130,130,198,108,186,9,12, - 24,9,0,0,243,128,97,0,34,0,50,0,20,0,20,0, - 62,0,8,0,62,0,8,0,8,0,62,0,1,12,12,10, - 4,0,128,128,128,128,128,0,0,128,128,128,128,128,6,15, - 15,8,1,253,56,72,64,96,48,88,140,132,196,104,48,24, - 8,72,112,5,2,2,5,0,9,216,216,12,12,24,12,0, - 0,31,128,48,192,71,32,205,176,152,144,144,16,144,16,152, - 144,205,176,71,32,48,192,31,128,5,7,7,6,0,5,224, - 144,112,144,232,0,240,6,5,5,7,0,1,36,72,216,72, - 36,8,5,5,10,1,1,255,1,1,1,1,4,1,1,5, - 0,3,240,12,12,24,12,0,0,31,128,48,192,95,32,201, - 176,137,144,143,16,137,16,137,144,200,176,92,224,48,192,31, - 128,5,1,1,5,0,9,248,5,5,5,7,1,7,112,136, - 136,136,112,7,9,9,10,1,0,16,16,16,254,16,16,16, - 0,254,5,7,7,6,0,5,112,216,136,16,32,72,248,5, - 7,7,6,0,5,112,216,136,48,136,216,112,3,3,3,5, - 0,9,32,96,128,10,11,22,10,0,253,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,125,192,96,0,96,0,96, - 0,8,15,15,10,0,253,127,234,202,202,202,234,122,10,10, - 10,10,10,10,10,31,2,2,2,5,1,3,192,192,3,4, - 4,5,1,253,64,64,32,192,3,7,7,6,1,5,64,192, - 64,64,64,64,224,4,7,7,5,0,5,96,144,144,144,96, - 0,240,6,5,5,7,0,1,144,72,108,72,144,11,12,24, - 14,1,0,64,64,192,192,65,128,65,0,66,0,70,64,236, - 192,9,64,18,64,51,224,96,64,64,224,11,12,24,13,1, - 0,64,128,193,128,67,0,66,0,68,0,77,192,251,96,18, - 32,32,192,97,0,195,32,131,224,13,12,24,14,0,0,112, - 24,216,48,136,96,48,192,136,128,217,144,115,48,6,80,4, - 144,12,248,24,16,48,56,7,12,12,7,0,253,24,24,0, - 16,16,48,96,192,196,206,100,56,11,16,32,12,0,0,24, - 0,12,0,2,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 16,32,12,0,0,3,0,6,0,8,0,0,0,4,0,4, - 0,14,0,14,0,22,0,19,0,19,0,63,128,33,128,65, - 128,64,192,243,224,11,16,32,12,0,0,4,0,14,0,17, - 0,0,0,4,0,4,0,14,0,14,0,22,0,19,0,19, - 0,63,128,33,128,65,128,64,192,243,224,11,15,30,12,0, - 0,29,0,46,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 15,30,12,0,0,18,0,18,0,0,0,4,0,4,0,14, - 0,14,0,22,0,19,0,19,0,63,128,33,128,65,128,64, - 192,243,224,11,16,32,12,0,0,12,0,18,0,12,0,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,16,12,24,17,0,0,15, - 255,2,195,2,193,4,193,4,200,8,248,8,216,31,201,16, - 193,32,193,32,195,251,255,10,15,30,12,1,253,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,8,0,4,0,24,0,10,16,32,12,0, - 0,24,0,12,0,2,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,10,16,32,12,0,0,3,0,6,0,8,0,0,0,255, - 192,48,192,48,64,48,64,50,0,62,0,54,0,50,0,48, - 64,48,64,48,192,255,192,10,16,32,12,0,0,4,0,14, - 0,17,0,0,0,255,192,48,192,48,64,48,64,50,0,62, - 0,54,0,50,0,48,64,48,64,48,192,255,192,10,15,30, - 12,0,0,17,0,17,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,6,16,16,7,0,0,192,96,16,0,252,48,48,48,48, - 48,48,48,48,48,48,252,6,16,16,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,252,6,16,16, - 7,0,0,32,112,136,0,252,48,48,48,48,48,48,48,48, - 48,48,252,6,15,15,7,0,0,72,72,0,252,48,48,48, - 48,48,48,48,48,48,48,252,12,12,24,13,0,0,255,0, - 49,192,48,96,48,96,48,48,124,48,48,48,48,48,48,96, - 48,96,49,192,255,0,13,15,30,13,0,0,14,64,19,128, - 0,0,240,248,56,32,60,32,44,32,46,32,39,32,35,160, - 33,160,32,224,32,224,32,96,248,32,11,16,32,13,1,0, - 24,0,12,0,2,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,16,32,13,1,0,1,128,3,0,4,0,0,0,14,0, - 49,128,96,192,96,192,192,96,192,96,192,96,192,96,96,192, - 96,192,49,128,14,0,11,16,32,13,1,0,4,0,14,0, - 17,0,0,0,14,0,49,128,96,192,96,192,192,96,192,96, - 192,96,192,96,96,192,96,192,49,128,14,0,11,15,30,13, - 1,0,14,128,23,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,15,30,13,1,0,17,0,17,0,0,0,14,0,49,128, - 96,192,96,192,192,96,192,96,192,96,192,96,96,192,96,192, - 49,128,14,0,8,8,8,10,1,0,129,66,36,24,24,36, - 66,129,11,14,28,13,1,255,0,32,14,64,49,128,97,192, - 97,64,194,96,196,96,196,96,200,96,80,192,112,192,49,128, - 78,0,128,0,13,16,32,13,0,0,12,0,6,0,1,0, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,13,16,32,13,0,0, - 0,192,1,128,2,0,0,0,252,248,48,32,48,32,48,32, - 48,32,48,32,48,32,48,32,48,32,48,32,24,64,15,128, - 13,16,32,13,0,0,2,0,7,0,8,128,0,0,252,248, - 48,32,48,32,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,24,64,15,128,13,15,30,13,0,0,8,128,8,128, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,12,16,32,12,0,0, - 1,128,3,0,4,0,0,0,252,240,48,64,24,128,24,128, - 13,0,13,0,6,0,6,0,6,0,6,0,6,0,31,128, - 11,12,24,11,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,192,63,128,48,0,48,0,252,0,8,12, - 12,10,1,0,60,102,99,99,102,124,102,99,99,99,118,236, - 7,12,12,9,1,0,64,96,16,0,120,204,204,28,108,204, - 204,118,7,12,12,9,1,0,4,12,16,0,120,204,204,28, - 108,204,204,118,7,12,12,9,1,0,16,56,68,0,120,204, - 204,28,108,204,204,118,7,11,11,9,1,0,52,88,0,120, - 204,204,28,108,204,204,118,7,11,11,9,1,0,72,72,0, - 120,204,204,28,108,204,204,118,7,13,13,9,1,0,48,72, - 72,48,0,120,204,204,28,108,204,204,118,12,8,16,13,0, - 0,121,192,206,32,198,48,31,240,102,0,198,16,207,32,121, - 192,6,11,11,7,0,253,56,108,204,192,192,196,108,56,32, - 16,96,7,12,12,8,0,0,32,48,8,0,56,68,198,254, - 192,192,102,60,7,12,12,8,0,0,4,12,16,0,56,68, - 198,254,192,192,102,60,7,12,12,8,0,0,16,56,68,0, - 56,68,198,254,192,192,102,60,7,11,11,8,0,0,36,36, - 0,56,68,198,254,192,192,102,60,4,12,12,5,0,0,128, - 192,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,16,48,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,4, - 11,11,5,0,0,144,144,0,224,96,96,96,96,96,96,240, - 7,13,13,8,0,0,64,38,24,104,12,60,110,198,198,198, - 198,108,56,9,11,22,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,99,0,247,128,7, - 12,12,8,0,0,64,96,16,0,56,108,198,198,198,198,108, - 56,7,12,12,8,0,0,4,12,16,0,56,108,198,198,198, - 198,108,56,7,12,12,8,0,0,16,56,68,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,52,88,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,72,72,0,56, - 108,198,198,198,198,108,56,8,7,7,10,1,1,24,24,0, - 255,0,24,24,7,10,10,8,0,255,2,60,100,206,214,214, - 230,76,120,128,9,12,24,10,0,0,32,0,48,0,8,0, - 0,0,231,0,99,0,99,0,99,0,99,0,99,0,99,0, - 61,128,9,12,24,10,0,0,2,0,6,0,8,0,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,61,128, - 9,12,24,10,0,0,8,0,28,0,34,0,0,0,231,0, - 99,0,99,0,99,0,99,0,99,0,99,0,61,128,9,11, - 22,10,0,0,36,0,36,0,0,0,231,0,99,0,99,0, - 99,0,99,0,99,0,99,0,61,128,8,15,15,9,0,253, - 2,6,8,0,247,98,54,52,28,24,8,24,16,208,224,8, - 14,14,9,0,253,224,96,96,124,102,99,99,99,99,102,124, - 96,96,240,8,14,14,9,0,253,36,36,0,247,98,54,52, - 28,24,8,24,16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=15 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12r[1976] U8G_FONT_SECTION("u8g_font_ncenR12r") = { - 0,21,26,253,250,12,2,59,5,140,32,127,253,13,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=19 dy= 0 ascent=19 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14[5319] U8G_FONT_SECTION("u8g_font_ncenR14") = { - 0,27,30,252,249,14,3,41,7,30,32,255,252,19,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,5,0,1,2,14,14,5, - 1,252,192,192,0,0,64,64,64,192,192,192,192,192,192,192, - 8,13,13,10,1,254,2,2,30,103,203,200,200,208,208,115, - 62,32,32,10,14,28,11,0,0,15,0,25,128,49,128,48, - 0,48,0,24,0,255,128,12,0,12,0,12,0,12,0,120, - 64,158,64,247,128,9,9,18,12,1,3,156,128,255,128,99, - 0,193,128,193,128,193,128,99,0,255,128,156,128,14,14,28, - 15,0,0,252,124,48,16,24,32,24,32,12,64,12,64,6, - 128,31,224,3,0,3,0,31,224,3,0,3,0,15,192,2, - 14,14,10,4,0,192,192,192,192,192,0,0,0,192,192,192, - 192,192,192,8,17,17,9,0,253,60,102,70,64,96,120,62, - 79,195,227,122,60,14,6,98,102,60,6,2,2,7,0,10, - 204,204,14,14,28,15,0,0,7,128,24,96,32,16,71,136, - 72,200,144,68,144,4,144,4,144,4,72,72,71,136,32,16, - 24,96,7,128,6,8,8,7,0,6,112,136,56,200,152,108, - 0,252,8,7,7,9,0,2,17,51,102,204,102,51,17,9, - 5,10,10,0,3,255,128,0,128,0,128,0,128,0,128,5, - 1,1,6,0,5,248,14,14,28,15,0,0,7,128,24,96, - 32,16,79,136,68,200,132,68,132,196,135,132,132,132,68,72, - 78,104,32,16,24,96,7,128,6,1,1,7,0,10,252,6, - 6,6,7,0,8,120,204,132,132,204,120,9,9,18,10,0, - 1,8,0,8,0,8,0,255,128,8,0,8,0,8,0,0, - 0,255,128,6,8,8,6,0,6,120,204,140,24,48,96,196, - 252,6,8,8,6,0,6,120,204,140,56,12,140,204,120,4, - 3,3,6,1,11,48,96,128,10,13,26,11,0,252,227,192, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,125,192, - 64,0,64,0,96,0,96,0,10,17,34,11,0,253,63,192, - 233,0,201,0,201,0,201,0,201,0,233,0,57,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,9,0,63,192, - 2,2,2,5,1,5,192,192,4,4,4,6,0,252,64,112, - 16,224,6,8,8,6,0,6,48,240,48,48,48,48,48,252, - 5,8,8,6,0,6,112,216,136,136,216,112,0,248,8,7, - 7,9,0,2,136,204,102,51,102,204,136,15,14,28,15,0, - 0,48,32,240,32,48,64,48,64,48,128,48,128,49,24,253, - 56,2,40,2,88,4,152,4,254,8,24,8,60,14,14,28, - 15,0,0,48,32,240,32,48,64,48,64,48,128,48,128,49, - 120,253,204,2,140,2,24,4,48,4,96,8,196,8,252,15, - 14,28,15,0,0,120,32,204,32,140,64,56,64,12,128,140, - 128,205,24,121,56,2,40,2,88,4,152,4,254,8,24,8, - 60,7,14,14,8,0,252,24,24,0,0,16,16,32,32,64, - 192,192,198,230,120,14,18,36,13,255,0,12,0,6,0,1, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,14, - 18,36,13,255,0,0,192,1,128,2,0,0,0,3,0,3, - 0,3,0,5,128,5,128,5,128,8,192,8,192,31,224,16, - 96,16,96,32,48,32,48,248,252,14,18,36,13,255,0,3, - 0,7,128,8,64,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,17,34,13,255,0,7,64,11,128,0,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,14,17,34,13,255, - 0,12,192,12,192,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,19,38,13,255,0,3,0,4,128,4,128,3, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,18, - 14,42,18,255,0,7,255,192,1,96,192,2,96,64,2,96, - 64,4,98,64,4,98,0,8,126,0,8,98,0,31,226,0, - 16,96,64,32,96,64,32,96,64,96,96,192,241,255,192,12, - 18,36,13,0,252,15,144,56,112,96,48,96,16,192,16,192, - 0,192,0,192,0,192,0,192,0,96,16,96,16,56,96,15, - 192,4,0,7,0,1,0,14,0,11,18,36,12,0,0,24, - 0,12,0,2,0,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,18,36,12,0,0,3,0,6,0,8,0,0, - 0,255,224,48,96,48,32,48,32,49,32,49,0,63,0,49, - 0,49,0,48,32,48,32,48,32,48,96,255,224,11,18,36, - 12,0,0,6,0,15,0,16,128,0,0,255,224,48,96,48, - 32,48,32,49,32,49,0,63,0,49,0,49,0,48,32,48, - 32,48,32,48,96,255,224,11,17,34,12,0,0,25,128,25, - 128,0,0,255,224,48,96,48,32,48,32,49,32,49,0,63, - 0,49,0,49,0,48,32,48,32,48,32,48,96,255,224,6, - 18,18,7,0,0,192,96,16,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,18,18,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,252,6, - 18,18,7,0,0,48,120,132,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,17,17,7,0,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,14,14, - 28,15,0,0,255,192,48,112,48,24,48,24,48,12,48,12, - 254,12,48,12,48,12,48,12,48,24,48,24,48,112,255,192, - 14,17,34,15,0,0,7,64,11,128,0,0,240,124,48,16, - 56,16,60,16,46,16,38,16,35,16,35,144,33,144,32,208, - 32,240,32,112,32,48,248,16,14,18,36,15,0,0,12,0, - 6,0,1,0,0,0,15,192,56,112,96,24,96,24,192,12, - 192,12,192,12,192,12,192,12,192,12,96,24,96,24,56,112, - 15,192,14,18,36,15,0,0,0,192,1,128,2,0,0,0, - 15,192,56,112,96,24,96,24,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,96,24,56,112,15,192,14,18,36,15, - 0,0,3,0,7,128,8,64,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,14,17,34,15,0,0,7,64,11,128, - 0,0,15,192,56,112,96,24,96,24,192,12,192,12,192,12, - 192,12,192,12,192,12,96,24,96,24,56,112,15,192,14,17, - 34,15,0,0,12,192,12,192,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,10,9,18,10,0,1,192,192,97,128, - 51,0,30,0,12,0,30,0,51,0,97,128,192,192,15,14, - 28,15,255,0,7,228,28,56,48,28,48,44,96,70,96,134, - 97,6,98,6,100,6,104,6,48,12,48,12,92,56,135,224, - 14,18,36,15,0,0,6,0,3,0,0,128,0,0,252,124, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,24,32,15,192,14,18,36,15,0,0, - 0,192,1,128,2,0,0,0,252,124,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 24,32,15,192,14,18,36,15,0,0,3,0,7,128,8,64, - 0,0,252,124,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,24,32,15,192,14,17, - 34,15,0,0,12,96,12,96,0,0,252,124,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,24,32,15,192,14,18,36,13,255,0,0,96,0,192, - 1,0,0,0,252,124,48,16,24,32,24,32,12,64,12,64, - 6,128,7,128,3,0,3,0,3,0,3,0,3,0,15,192, - 11,14,28,12,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,96,48,96,48,192,63,0,48,0,48,0, - 252,0,9,14,28,10,0,0,30,0,35,0,97,0,97,0, - 99,0,110,0,99,0,97,128,97,128,97,128,97,128,109,128, - 109,0,230,0,9,13,26,10,0,0,48,0,24,0,4,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,6,0,12,0,16,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,24,0,60,0,66,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,12,24,10,0,0,58,0,92,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,9,12,24,10,0,0,102,0,102,0,0,0,28,0, - 98,0,99,0,3,0,31,0,99,0,195,0,199,0,121,128, - 9,14,28,10,0,0,24,0,36,0,36,0,24,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,15,9,18,16,0,0,28,248,99,140,99,6,3,6, - 31,254,99,0,195,0,197,134,120,252,8,13,13,9,0,252, - 60,99,195,192,192,192,193,99,62,16,28,4,56,8,13,13, - 9,0,0,96,48,8,0,60,102,195,195,255,192,193,99,62, - 8,13,13,9,0,0,6,12,16,0,60,102,195,195,255,192, - 193,99,62,8,13,13,9,0,0,24,60,66,0,60,102,195, - 195,255,192,193,99,62,8,12,12,9,0,0,102,102,0,60, - 102,195,195,255,192,193,99,62,5,13,13,5,255,0,192,96, - 16,0,112,48,48,48,48,48,48,48,120,5,13,13,5,0, - 0,24,48,64,0,224,96,96,96,96,96,96,96,240,6,13, - 13,5,255,0,48,120,132,0,112,48,48,48,48,48,48,48, - 120,6,12,12,5,255,0,204,204,0,112,48,48,48,48,48, - 48,48,120,9,14,28,10,0,0,192,0,54,0,56,0,204, - 0,6,0,63,0,99,0,193,128,193,128,193,128,193,128,193, - 128,99,0,62,0,10,12,24,11,0,0,60,128,79,0,0, - 0,239,0,115,128,97,128,97,128,97,128,97,128,97,128,97, - 128,243,192,9,13,26,10,0,0,96,0,48,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,3,0,6,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,24,0,60,0,66,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,12,24,10,0,0,58,0,92,0,0,0,62, - 0,99,0,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,12,24,10,0,0,99,0,99,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,99,0,62,0,10, - 7,14,10,0,2,12,0,12,0,0,0,255,192,0,0,12, - 0,12,0,9,12,24,10,0,254,0,128,62,128,99,0,197, - 128,197,128,201,128,201,128,209,128,115,0,62,0,64,0,64, - 0,10,13,26,11,0,0,48,0,24,0,4,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,3,0,6,0,8,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,12,0,30,0,33,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,12,24,11,0,0,51,0,51,0,0,0,227,192,97, - 128,97,128,97,128,97,128,97,128,97,128,115,128,61,192,10, - 17,34,11,0,252,3,0,6,0,8,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0,10,18,36,11,0,252,224,0,96, - 0,96,0,96,0,96,0,111,0,113,128,96,192,96,192,96, - 192,96,192,96,192,113,128,111,0,96,0,96,0,96,0,240, - 0,10,16,32,11,0,252,51,0,51,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=19 dy= 0 ascent=15 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14r[2534] U8G_FONT_SECTION("u8g_font_ncenR14r") = { - 0,27,30,252,249,14,3,41,7,30,32,127,252,15,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=24 x= 6 y=15 dx=25 dy= 0 ascent=24 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18[7488] U8G_FONT_SECTION("u8g_font_ncenR18") = { - 0,31,37,253,248,18,4,33,9,197,32,255,251,24,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,7,0,1,3,19,19,7,2, - 251,224,224,224,0,0,64,64,64,224,224,224,224,224,224,224, - 224,224,224,64,10,18,36,14,2,253,0,64,0,64,0,128, - 31,128,113,192,97,192,226,192,194,0,196,0,196,0,200,0, - 232,0,112,64,112,192,63,0,32,0,64,0,64,0,13,18, - 36,14,0,0,3,192,14,48,12,112,28,112,28,32,28,0, - 28,0,14,0,127,192,7,0,7,0,7,0,7,0,7,0, - 118,8,140,8,143,240,115,224,13,12,24,15,1,4,71,16, - 255,248,112,112,32,32,96,48,96,48,96,48,96,48,32,32, - 112,112,255,248,71,16,16,18,36,17,0,0,252,63,56,12, - 24,8,28,24,12,16,14,48,6,32,7,96,3,64,3,192, - 31,248,1,128,1,128,31,248,1,128,1,128,1,128,15,240, - 2,18,18,15,6,0,192,192,192,192,192,192,192,0,0,0, - 192,192,192,192,192,192,192,192,10,22,44,12,1,252,31,0, - 35,128,97,128,97,128,120,0,60,0,31,0,47,128,67,192, - 193,192,192,192,224,192,240,192,124,128,63,0,15,0,3,128, - 1,128,97,128,97,128,113,0,62,0,6,2,2,8,1,15, - 204,204,18,18,54,20,1,0,3,240,0,12,12,0,16,2, - 0,32,1,0,67,240,128,70,24,128,140,8,64,140,0,64, - 140,0,64,140,0,64,140,0,64,140,8,64,70,24,128,67, - 224,128,32,1,0,16,2,0,12,12,0,3,240,0,7,10, - 10,9,1,8,120,76,4,124,196,204,118,0,0,254,10,7, - 14,12,1,3,24,192,49,128,99,0,198,0,99,0,49,128, - 24,192,12,7,14,14,1,3,255,240,255,240,0,48,0,48, - 0,48,0,48,0,48,6,2,2,8,1,6,252,252,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,32,1,0, - 71,240,128,67,24,128,131,24,64,131,24,64,131,16,64,131, - 224,64,131,48,64,131,24,64,67,12,128,71,142,128,32,1, - 0,16,2,0,12,12,0,3,240,0,7,1,1,9,1,15, - 254,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,2,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,198,198,6,12,24,48,96,192,194,254,7,11,11,8,0, - 7,124,198,198,6,12,60,6,6,198,198,124,5,4,4,8, - 2,15,24,56,96,128,14,17,34,14,0,251,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,112, - 63,176,46,60,32,0,32,0,112,0,112,0,32,0,13,22, - 44,15,1,252,31,248,115,48,227,48,227,48,227,48,227,48, - 227,48,227,48,115,48,31,48,3,48,3,48,3,48,3,48, - 3,48,3,48,3,48,3,48,3,48,3,48,3,48,7,248, - 3,3,3,7,2,5,224,224,224,4,4,4,7,1,252,64, - 112,16,224,6,11,11,8,1,7,16,48,240,48,48,48,48, - 48,48,48,252,7,10,10,9,1,8,56,68,198,198,198,68, - 56,0,0,254,10,7,14,12,1,3,198,0,99,0,49,128, - 24,192,49,128,99,0,198,0,18,18,54,19,0,0,16,4, - 0,48,12,0,240,8,0,48,24,0,48,16,0,48,48,0, - 48,32,0,48,99,0,48,71,0,48,207,0,252,139,0,1, - 155,0,1,19,0,3,51,0,2,99,0,6,127,192,4,3, - 0,12,7,128,18,18,54,19,0,0,16,8,0,48,24,0, - 240,16,0,48,48,0,48,32,0,48,96,0,48,64,0,48, - 207,128,48,152,192,49,152,192,253,0,192,3,1,128,2,3, - 0,6,6,0,4,12,0,12,24,0,8,24,64,24,31,192, - 18,18,54,19,0,0,124,4,0,198,12,0,198,8,0,6, - 24,0,12,16,0,60,48,0,6,32,0,6,99,0,198,71, - 0,198,207,0,124,139,0,1,155,0,1,19,0,3,51,0, - 2,99,0,6,127,192,4,3,0,12,7,128,10,18,36,12, - 1,252,7,0,7,0,7,0,0,0,0,0,2,0,2,0, - 6,0,12,0,28,0,56,0,112,0,224,0,225,192,225,192, - 224,192,113,128,30,0,19,23,69,19,0,0,3,0,0,3, - 128,0,0,192,0,0,32,0,0,0,0,0,64,0,0,96, - 0,0,224,0,0,240,0,1,48,0,1,56,0,2,24,0, - 2,28,0,4,12,0,4,12,0,8,14,0,15,254,0,16, - 6,0,16,7,0,32,3,0,32,3,128,96,3,128,248,15, - 224,19,23,69,19,0,0,0,24,0,0,56,0,0,96,0, - 0,128,0,0,0,0,0,64,0,0,96,0,0,224,0,0, - 240,0,1,48,0,1,56,0,2,24,0,2,28,0,4,12, - 0,4,12,0,8,14,0,15,254,0,16,6,0,16,7,0, - 32,3,0,32,3,128,96,3,128,248,15,224,19,23,69,19, - 0,0,0,96,0,0,240,0,1,152,0,2,4,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,22,66,19,0,0,1,196,0, - 3,248,0,4,112,0,0,0,0,0,64,0,0,96,0,0, - 224,0,0,240,0,1,48,0,1,56,0,2,24,0,2,28, - 0,4,12,0,4,12,0,8,14,0,15,254,0,16,6,0, - 16,7,0,32,3,0,32,3,128,96,3,128,248,15,224,19, - 22,66,19,0,0,3,24,0,3,24,0,0,0,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,24,72,19,0,0,0,224,0, - 1,16,0,1,16,0,1,16,0,0,224,0,0,0,0,0, - 64,0,0,96,0,0,224,0,0,240,0,1,48,0,1,56, - 0,2,24,0,2,28,0,4,12,0,4,12,0,8,14,0, - 15,254,0,16,6,0,16,7,0,32,3,0,32,3,128,96, - 3,128,248,15,224,24,18,54,25,0,0,1,255,255,0,38, - 7,0,102,3,0,70,1,0,198,1,0,134,17,1,134,16, - 1,6,48,3,7,240,2,6,48,7,254,16,4,6,16,12, - 6,1,8,6,1,24,6,1,16,6,3,48,6,7,252,31, - 255,15,23,46,17,1,251,7,242,28,30,56,6,48,2,112, - 2,96,2,224,0,224,0,224,0,224,0,224,0,224,0,96, - 2,112,2,48,6,56,4,28,28,7,240,3,224,1,0,1, - 192,0,64,3,128,13,23,46,16,1,0,24,0,28,0,6, - 0,1,0,0,0,255,248,48,56,48,24,48,8,48,8,48, - 136,48,128,49,128,63,128,49,128,48,128,48,128,48,8,48, - 8,48,8,48,24,48,56,255,248,13,23,46,16,1,0,0, - 96,0,224,1,128,2,0,0,0,255,248,48,56,48,24,48, - 8,48,8,48,136,48,128,49,128,63,128,49,128,48,128,48, - 128,48,8,48,8,48,8,48,24,48,56,255,248,13,23,46, - 16,1,0,3,0,7,128,12,192,16,32,0,0,255,248,48, - 56,48,24,48,8,48,8,48,136,48,128,49,128,63,128,49, - 128,48,128,48,128,48,8,48,8,48,8,48,24,48,56,255, - 248,13,22,44,16,1,0,12,96,12,96,0,0,0,0,255, - 248,48,56,48,24,48,8,48,8,48,136,48,128,49,128,63, - 128,49,128,48,128,48,128,48,8,48,8,48,8,48,24,48, - 56,255,248,6,23,23,9,2,0,192,224,48,8,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 7,23,23,9,2,0,6,14,24,32,0,252,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,8,23,23, - 9,1,0,24,60,102,129,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,22,22,9,2,0, - 198,198,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,16,18,36,20,2,0,255,224,48,56, - 48,12,48,12,48,6,48,6,48,7,48,7,254,7,48,7, - 48,7,48,7,48,6,48,6,48,12,48,12,48,56,255,224, - 19,22,66,21,1,0,1,196,0,3,248,0,4,112,0,0, - 0,0,248,15,224,60,3,128,28,1,0,30,1,0,23,1, - 0,19,129,0,17,129,0,16,193,0,16,225,0,16,97,0, - 16,49,0,16,57,0,16,29,0,16,15,0,16,7,0,16, - 7,0,56,3,0,254,1,0,17,23,69,19,1,0,12,0, - 0,14,0,0,3,0,0,0,128,0,0,0,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,17,23,69,19,1,0,0,24,0,0,56,0,0, - 96,0,0,128,0,0,0,0,7,240,0,28,28,0,48,6, - 0,48,6,0,112,7,0,96,3,0,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,96,3,0,112, - 7,0,48,6,0,48,6,0,28,28,0,7,240,0,17,23, - 69,19,1,0,0,192,0,1,224,0,3,48,0,4,8,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,17,22,66,19,1,0,3, - 136,0,7,240,0,8,224,0,0,0,0,7,240,0,28,28, - 0,48,6,0,48,6,0,112,7,0,96,3,0,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,224,3,128,96, - 3,0,112,7,0,48,6,0,48,6,0,28,28,0,7,240, - 0,17,22,66,19,1,0,6,48,0,6,48,0,0,0,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,13,12,24,14,1,1,192, - 24,96,48,48,96,24,192,13,128,7,0,7,0,13,128,24, - 192,48,96,96,48,192,24,17,19,57,19,1,0,0,3,0, - 7,246,0,28,28,0,48,14,0,48,30,0,96,51,0,96, - 99,0,224,67,128,224,195,128,225,131,128,227,3,128,226,3, - 128,230,3,128,108,3,0,120,3,0,48,6,0,48,6,0, - 124,28,0,199,240,0,16,23,46,19,2,0,6,0,7,0, - 1,128,0,64,0,0,252,31,48,14,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,56,12,24,8,30,56,7,224,16,23,46,19,2,0, - 0,48,0,112,0,192,1,0,0,0,252,31,48,14,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,56,12,24,8,30,56,7,224,16,23, - 46,19,2,0,1,128,3,192,6,96,8,16,0,0,252,31, - 48,14,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,56,12,24,8,30,56, - 7,224,16,22,44,19,2,0,6,48,6,48,0,0,0,0, - 252,31,48,14,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,56,12,24,8, - 30,56,7,224,16,23,46,17,0,0,0,48,0,112,0,192, - 1,0,0,0,252,63,56,12,24,8,28,24,12,16,14,48, - 6,32,7,96,3,64,3,192,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,7,224,13,18,36,16,2,0,252,0, - 48,0,48,0,48,0,63,128,48,224,48,48,48,56,48,56, - 48,56,48,56,48,48,48,224,63,128,48,0,48,0,48,0, - 252,0,12,18,36,14,1,0,15,128,24,192,48,96,48,96, - 48,96,48,96,48,192,51,192,48,96,48,48,48,48,48,48, - 48,48,48,48,54,48,54,48,54,96,243,192,12,18,36,13, - 1,0,24,0,28,0,6,0,1,0,0,0,0,0,31,0, - 113,128,112,192,96,192,0,192,7,192,56,192,96,192,192,192, - 192,192,225,240,126,96,12,18,36,13,1,0,1,128,3,128, - 6,0,8,0,0,0,0,0,31,0,113,128,112,192,96,192, - 0,192,7,192,56,192,96,192,192,192,192,192,225,240,126,96, - 12,18,36,13,1,0,6,0,15,0,25,128,32,64,0,0, - 0,0,31,0,113,128,112,192,96,192,0,192,7,192,56,192, - 96,192,192,192,192,192,225,240,126,96,12,17,34,13,1,0, - 28,64,63,128,71,0,0,0,0,0,31,0,113,128,112,192, - 96,192,0,192,7,192,56,192,96,192,192,192,192,192,225,240, - 126,96,12,16,32,13,1,0,25,128,25,128,0,0,0,0, - 31,0,113,128,112,192,96,192,0,192,7,192,56,192,96,192, - 192,192,192,192,225,240,126,96,12,19,38,13,1,0,14,0, - 17,0,17,0,17,0,14,0,0,0,0,0,31,0,113,128, - 112,192,96,192,0,192,7,192,56,192,96,192,192,192,192,192, - 225,240,126,96,19,12,36,21,1,0,31,31,0,113,241,192, - 96,224,192,0,224,224,0,192,96,7,255,224,56,192,0,96, - 192,0,192,224,0,192,224,64,227,112,192,124,31,128,10,16, - 32,12,1,252,31,0,113,192,97,192,224,192,192,0,192,0, - 192,0,192,0,224,0,96,64,112,192,31,128,8,0,14,0, - 2,0,28,0,11,18,36,13,1,0,24,0,28,0,6,0, - 1,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 255,224,192,0,192,0,224,0,96,64,112,192,31,128,11,18, - 36,13,1,0,1,128,3,128,6,0,8,0,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,11,18,36,13,1,0,6,0, - 15,0,25,128,32,64,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,255,224,192,0,192,0,224,0,96,64,112,192, - 31,128,11,16,32,13,1,0,49,128,49,128,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,6,18,18,8,1,0,192,224, - 48,8,0,0,240,48,48,48,48,48,48,48,48,48,48,252, - 6,18,18,8,1,0,24,56,96,128,0,0,240,48,48,48, - 48,48,48,48,48,48,48,252,8,18,18,8,0,0,24,60, - 102,129,0,0,120,24,24,24,24,24,24,24,24,24,24,126, - 6,16,16,8,1,0,204,204,0,0,240,48,48,48,48,48, - 48,48,48,48,48,252,11,18,36,13,1,0,192,0,51,0, - 28,0,28,0,102,0,3,0,31,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,31,0, - 14,17,34,14,0,0,7,16,15,224,17,192,0,0,0,0, - 241,192,55,224,56,112,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,252,11,18,36,13,1,0,24,0, - 28,0,6,0,1,0,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,192,96,192,96,192,96,224,224,96,192,113,192, - 31,0,11,18,36,13,1,0,1,128,3,128,6,0,8,0, - 0,0,0,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,11,18,36,13, - 1,0,14,0,31,0,49,128,64,64,0,0,0,0,31,0, - 113,192,96,192,224,224,192,96,192,96,192,96,192,96,224,224, - 96,192,113,192,31,0,11,17,34,13,1,0,28,64,63,128, - 71,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 192,96,192,96,192,96,224,224,96,192,113,192,31,0,11,16, - 32,13,1,0,49,128,49,128,0,0,0,0,31,0,113,192, - 96,192,224,224,192,96,192,96,192,96,192,96,224,224,96,192, - 113,192,31,0,12,10,20,14,1,2,6,0,6,0,0,0, - 0,0,255,240,255,240,0,0,0,0,6,0,6,0,11,16, - 32,13,1,254,0,64,0,128,31,128,113,192,98,192,226,224, - 196,96,196,96,196,96,200,96,200,224,80,192,113,192,63,0, - 32,0,64,0,14,18,36,14,0,0,12,0,14,0,3,0, - 0,128,0,0,0,0,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,31,176,14,60,14,18, - 36,14,0,0,0,192,1,192,3,0,4,0,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,14,18,36,14,0,0,3,0, - 7,128,12,192,16,32,0,0,0,0,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,56,112,31,176, - 14,60,14,16,32,14,0,0,12,192,12,192,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,13,23,46,12,255,251,0,96, - 0,224,1,128,2,0,0,0,0,0,120,56,48,16,56,48, - 24,32,24,32,12,96,12,64,6,192,6,128,7,128,3,0, - 3,0,2,0,2,0,196,0,236,0,120,0,13,23,46,14, - 0,251,240,0,48,0,48,0,48,0,48,0,48,0,55,192, - 60,112,56,48,48,56,48,24,48,24,48,24,48,24,48,56, - 56,48,60,112,55,192,48,0,48,0,48,0,48,0,252,0, - 13,21,42,12,255,251,12,96,12,96,0,0,0,0,120,56, - 48,16,56,48,24,32,24,32,12,96,12,64,6,192,6,128, - 7,128,3,0,3,0,2,0,2,0,196,0,236,0,120,0 - }; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=23 x= 6 y=14 dx=25 dy= 0 ascent=20 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18r[3477] U8G_FONT_SECTION("u8g_font_ncenR18r") = { - 0,31,37,253,248,18,4,33,9,197,32,127,251,20,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=32 x= 9 y=19 dx=32 dy= 0 ascent=32 len=128 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =32 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24[11729] U8G_FONT_SECTION("u8g_font_ncenR24") = { - 0,39,50,250,245,25,5,159,15,28,32,255,249,32,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,9,1,1,4,25,25, - 10,3,249,96,240,240,96,0,0,0,96,96,96,96,96,96, - 96,96,96,96,96,240,240,240,240,240,240,96,13,24,48,18, - 2,252,0,24,0,24,0,16,0,48,7,224,31,240,56,112, - 112,112,112,240,224,224,224,128,225,128,225,0,227,0,227,0, - 242,16,118,48,60,96,31,224,15,128,8,0,24,0,16,0, - 16,0,16,23,46,19,1,0,1,240,7,252,14,14,12,14, - 28,30,28,30,28,28,28,0,30,0,14,0,14,0,255,248, - 15,0,7,0,7,0,7,0,6,0,6,0,126,3,223,7, - 143,142,223,252,112,240,16,17,34,19,1,3,67,194,239,247, - 127,254,60,60,112,14,112,14,224,7,224,7,224,7,224,7, - 224,7,112,14,112,14,60,60,127,254,239,247,3,192,17,23, - 69,19,0,0,255,31,128,60,15,0,28,6,0,30,6,0, - 14,4,0,15,12,0,7,8,0,7,24,0,3,144,0,3, - 176,0,1,224,0,0,224,0,7,252,0,7,252,0,0,224, - 0,0,224,0,7,252,0,7,252,0,0,224,0,0,224,0, - 0,224,0,7,248,0,7,248,0,2,25,25,20,9,0,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,12,30,60,17,2,251,15,0, - 57,192,48,192,113,192,113,192,112,128,56,0,60,0,30,0, - 15,0,63,128,99,192,193,224,192,240,192,112,224,48,240,48, - 120,48,60,96,31,192,15,0,7,128,3,192,1,192,16,224, - 56,224,56,224,48,192,57,192,15,0,9,3,6,11,1,19, - 99,0,247,128,99,0,24,25,75,25,0,0,0,126,0,3, - 255,128,7,129,224,14,0,112,24,0,56,48,0,28,48,127, - 12,96,227,134,97,129,134,67,128,134,195,0,131,199,0,3, - 199,0,3,199,0,3,199,0,3,195,0,3,67,128,6,97, - 193,134,97,227,140,48,126,12,24,0,24,28,0,112,7,1, - 224,3,255,128,0,126,0,11,14,28,11,0,11,63,0,99, - 128,97,128,99,128,15,128,121,128,225,128,193,128,227,128,125, - 224,0,0,0,0,0,0,255,192,11,11,22,14,1,2,4, - 32,12,96,24,192,49,128,115,128,231,0,115,128,49,128,24, - 192,12,96,4,32,16,9,18,20,1,3,255,255,255,255,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,8,3,3, - 11,1,7,255,255,255,24,24,72,25,0,0,0,126,0,3, - 255,192,15,1,240,28,0,56,56,0,24,51,252,12,96,199, - 14,96,195,6,64,195,6,192,195,3,192,198,3,192,252,3, - 192,204,3,192,206,3,192,198,3,96,199,6,96,195,6,96, - 195,142,51,227,204,24,0,24,28,0,112,7,0,224,3,255, - 192,0,126,0,10,2,4,11,0,19,255,192,255,192,9,9, - 18,13,2,14,62,0,119,0,193,128,193,128,128,128,193,128, - 193,128,119,0,62,0,16,16,32,20,2,0,1,128,1,128, - 1,128,1,128,255,255,255,255,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,0,0,255,255,255,255,10,14,28,11, - 0,9,63,0,115,128,97,128,113,128,113,128,1,128,3,0, - 7,0,14,0,28,0,56,64,112,64,255,192,255,192,9,14, - 28,11,1,9,62,0,99,0,113,128,97,128,1,128,7,0, - 62,0,7,0,3,0,97,128,225,128,195,128,231,0,126,0, - 7,6,6,11,2,19,6,14,28,56,96,192,17,23,69,20, - 1,249,56,14,0,248,62,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,30,0,56,30,0,60,126,0,63,238,0,47, - 143,128,32,0,0,32,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,32,0,0,17,30,90,20,2,251,15,255,128, - 63,255,128,120,198,0,240,198,0,240,198,0,240,198,0,240, - 198,0,240,198,0,240,198,0,240,198,0,120,198,0,124,198, - 0,63,198,0,15,198,0,0,198,0,0,198,0,0,198,0, - 0,198,0,0,198,0,0,198,0,0,198,0,0,198,0,0, - 198,0,0,198,0,0,198,0,0,198,0,0,198,0,0,198, - 0,3,255,128,3,255,128,4,4,4,9,2,6,96,240,240, - 96,6,7,7,11,1,249,16,32,120,12,12,140,120,8,14, - 14,11,1,9,56,248,24,24,24,24,24,24,24,24,24,24, - 24,255,11,14,28,10,255,11,14,0,59,128,96,192,224,224, - 192,96,192,96,224,224,96,192,59,128,14,0,0,0,0,0, - 0,0,127,192,11,11,22,14,1,2,132,0,198,0,99,0, - 49,128,57,192,28,224,57,192,49,128,99,0,198,0,132,0, - 25,23,92,28,1,0,56,0,24,0,248,0,48,0,24,0, - 48,0,24,0,96,0,24,0,192,0,24,0,128,0,24,1, - 128,0,24,3,0,0,24,6,0,0,24,6,4,0,24,12, - 12,0,24,24,28,0,24,24,60,0,255,48,108,0,0,96, - 76,0,0,192,204,0,0,193,140,0,1,131,12,0,3,3, - 255,128,3,0,12,0,6,0,12,0,12,0,12,0,8,0, - 63,0,25,23,92,28,1,0,56,0,24,0,248,0,48,0, - 24,0,32,0,24,0,96,0,24,0,192,0,24,1,128,0, - 24,1,128,0,24,3,0,0,24,6,0,0,24,6,62,0, - 24,12,99,0,24,24,193,128,24,48,193,128,255,48,225,128, - 0,96,195,0,0,192,7,0,0,192,14,0,1,128,28,0, - 3,0,56,0,3,0,112,128,6,0,224,128,12,1,255,128, - 8,1,255,128,25,23,92,28,1,0,62,0,8,0,99,0, - 24,0,113,128,48,0,97,128,48,0,1,128,96,0,7,0, - 192,0,30,1,128,0,7,1,128,0,3,131,0,0,97,134, - 4,0,225,134,12,0,195,140,28,0,231,24,60,0,126,48, - 108,0,0,48,204,0,0,96,204,0,0,193,140,0,0,195, - 12,0,1,131,255,128,3,0,12,0,6,0,12,0,6,0, - 12,0,12,0,63,0,12,25,50,14,1,249,3,0,7,128, - 7,128,3,0,0,0,0,0,0,0,3,0,3,0,2,0, - 2,0,6,0,12,0,28,0,56,0,120,0,112,0,240,0, - 224,112,224,112,224,112,240,48,112,48,60,224,31,192,23,32, - 96,23,0,0,6,0,0,7,0,0,3,128,0,1,192,0, - 0,96,0,0,48,0,0,0,0,0,16,0,0,56,0,0, - 56,0,0,120,0,0,124,0,0,124,0,0,220,0,0,222, - 0,1,158,0,1,142,0,1,143,0,3,7,0,3,7,128, - 3,7,128,6,3,128,7,255,192,7,255,192,12,1,192,12, - 1,224,12,1,224,24,0,240,24,0,240,56,0,248,124,1, - 252,254,3,254,23,32,96,23,0,0,0,1,128,0,3,128, - 0,7,0,0,14,0,0,24,0,0,48,0,0,0,0,0, - 16,0,0,56,0,0,56,0,0,120,0,0,124,0,0,124, - 0,0,220,0,0,222,0,1,158,0,1,142,0,1,143,0, - 3,7,0,3,7,128,3,7,128,6,3,128,7,255,192,7, - 255,192,12,1,192,12,1,224,12,1,224,24,0,240,24,0, - 240,56,0,248,124,1,252,254,3,254,23,31,93,23,0,0, - 0,24,0,0,60,0,0,126,0,0,195,0,1,129,128,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,0,241,128,1,255,0,3,30,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,1,134,0,3,207,0,1,134,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,32,96, - 23,0,0,0,120,0,0,204,0,0,132,0,0,132,0,0, - 204,0,0,120,0,0,0,0,0,16,0,0,56,0,0,56, - 0,0,120,0,0,124,0,0,124,0,0,220,0,0,222,0, - 1,158,0,1,142,0,1,143,0,3,7,0,3,7,128,3, - 7,128,6,3,128,7,255,192,7,255,192,12,1,192,12,1, - 224,12,1,224,24,0,240,24,0,240,56,0,248,124,1,252, - 254,3,254,30,25,100,32,0,0,1,255,255,252,0,127,255, - 252,0,29,192,124,0,25,192,28,0,25,192,28,0,49,192, - 12,0,49,192,140,0,97,192,132,0,97,193,132,0,193,193, - 128,0,193,195,128,1,129,255,128,1,129,255,128,3,1,195, - 128,3,255,193,128,7,255,193,128,6,1,192,132,12,1,192, - 132,12,1,192,4,24,1,192,12,24,1,192,12,48,1,192, - 28,48,1,192,124,120,7,255,252,254,31,255,252,20,32,96, - 22,1,249,0,248,96,3,255,96,15,7,224,28,1,224,60, - 0,224,56,0,224,120,0,96,120,0,96,240,0,96,240,0, - 32,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,48,120,0,48,120,0,32,120,0,96,60, - 0,96,28,0,192,14,1,128,7,207,0,1,254,0,0,32, - 0,0,64,0,0,240,0,0,24,0,0,24,0,1,24,0, - 0,240,0,20,32,96,24,1,0,3,0,0,3,128,0,1, - 192,0,0,224,0,0,48,0,0,24,0,0,0,0,255,255, - 240,63,255,240,14,1,240,14,0,112,14,0,112,14,0,48, - 14,4,48,14,4,16,14,4,16,14,12,0,14,60,0,15, - 252,0,15,252,0,14,60,0,14,12,0,14,12,0,14,4, - 16,14,4,16,14,0,16,14,0,48,14,0,48,14,0,112, - 14,1,240,63,255,240,255,255,240,20,32,96,24,1,0,0, - 1,128,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,0,0,255,255,240,63,255,240,14,1,240,14,0,112, - 14,0,112,14,0,48,14,4,48,14,4,16,14,4,16,14, - 12,0,14,60,0,15,252,0,15,252,0,14,60,0,14,12, - 0,14,12,0,14,4,16,14,4,16,14,0,16,14,0,48, - 14,0,48,14,0,112,14,1,240,63,255,240,255,255,240,20, - 32,96,24,1,0,0,48,0,0,120,0,0,252,0,1,134, - 0,3,3,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,20,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,11,32,64,13,1,0,96,0,112,0,56, - 0,28,0,6,0,3,0,0,0,255,224,63,128,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,63,128,255,224,11,32,64,13,1, - 0,0,192,1,192,3,128,7,0,12,0,24,0,0,0,255, - 224,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,255, - 224,11,31,62,13,1,0,6,0,15,0,31,128,48,192,96, - 96,0,0,255,224,63,128,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,63,128,255,224,11,30,60,13,1,0,49,128,123,192,49, - 128,0,0,0,0,255,224,63,128,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,255,224,22,25,75,24,1,0,255,252,0, - 255,255,128,30,7,192,14,1,224,14,0,240,14,0,112,14, - 0,120,14,0,120,14,0,56,14,0,60,14,0,60,14,0, - 60,127,224,60,127,224,60,14,0,60,14,0,60,14,0,60, - 14,0,56,14,0,120,14,0,120,14,0,112,14,0,224,14, - 1,192,255,255,128,255,254,0,26,30,120,28,1,0,0,30, - 48,0,0,63,224,0,0,99,192,0,0,0,0,0,0,0, - 0,0,255,0,255,192,31,0,63,0,15,128,12,0,15,192, - 12,0,15,192,12,0,13,224,12,0,13,240,12,0,12,248, - 12,0,12,120,12,0,12,124,12,0,12,62,12,0,12,30, - 12,0,12,31,12,0,12,15,140,0,12,7,140,0,12,7, - 204,0,12,3,204,0,12,1,236,0,12,0,236,0,12,0, - 252,0,12,0,124,0,12,0,60,0,12,0,60,0,63,0, - 28,0,255,192,12,0,22,32,96,24,1,0,6,0,0,7, - 0,0,3,128,0,1,192,0,0,96,0,0,48,0,0,0, - 0,1,254,0,7,255,128,15,3,192,28,0,224,60,0,240, - 56,0,112,120,0,120,120,0,120,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,56,120,0,120,120,0,120,56,0,112,60,0,240, - 28,0,224,15,3,192,7,255,128,1,254,0,22,32,96,24, - 1,0,0,3,0,0,7,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,1,254,0,7,255,128,15,3,192, - 28,0,224,60,0,240,56,0,112,120,0,120,120,0,120,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,56,120,0,120,120,0,120, - 56,0,112,60,0,240,28,0,224,15,3,192,7,255,128,1, - 254,0,22,31,93,24,1,0,0,48,0,0,120,0,0,252, - 0,1,134,0,3,3,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,241,128,1,255, - 0,3,30,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,17,15,45,20,2,1,224,3,128,112,7, - 0,56,14,0,28,28,0,14,56,0,7,112,0,3,224,0, - 1,192,0,3,224,0,7,112,0,14,56,0,28,28,0,56, - 14,0,112,7,0,224,3,128,22,28,84,24,1,254,0,0, - 24,1,254,48,7,255,176,14,3,224,28,0,224,60,1,240, - 56,1,240,120,3,120,120,6,120,240,6,60,240,12,60,240, - 24,60,240,56,60,240,48,60,240,96,60,240,224,60,240,192, - 60,113,128,56,123,0,120,123,0,120,62,0,112,60,0,240, - 30,1,224,31,3,192,55,255,128,113,254,0,96,0,0,192, - 0,0,26,32,128,26,0,0,0,48,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,3,0,0,0,1,128,0, - 0,0,0,0,255,224,255,192,63,128,63,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 15,0,24,0,7,0,24,0,7,128,48,0,3,224,240,0, - 1,255,192,0,0,127,0,0,26,32,128,26,0,0,0,0, - 48,0,0,0,112,0,0,0,224,0,0,1,192,0,0,3, - 0,0,0,6,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,26,31, - 124,26,0,0,0,6,0,0,0,15,0,0,0,31,128,0, - 0,48,192,0,0,96,96,0,0,0,0,0,255,224,255,192, - 63,128,63,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,15,0,24,0,7,0,24,0, - 7,128,48,0,3,224,240,0,1,255,192,0,0,127,0,0, - 26,30,120,26,0,0,0,48,192,0,0,121,224,0,0,48, - 192,0,0,0,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,23,32, - 96,23,0,0,0,1,128,0,3,128,0,7,0,0,14,0, - 0,24,0,0,48,0,0,0,0,255,131,254,126,0,248,62, - 0,112,30,0,96,15,0,224,15,0,192,7,129,128,7,193, - 128,3,195,0,3,227,0,1,230,0,0,246,0,0,252,0, - 0,124,0,0,120,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,254, - 0,3,255,128,20,25,75,22,1,0,255,224,0,31,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,15,254,0,15, - 255,128,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,3,224,15,255,192, - 15,255,0,14,0,0,14,0,0,14,0,0,14,0,0,31, - 0,0,255,224,0,17,26,78,19,0,255,3,248,0,7,156, - 0,14,14,0,14,15,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,14,0,28,14,0,28,248,0,28,248,0,28, - 14,0,28,7,0,28,7,0,28,7,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,231,128,28,231,0, - 60,231,0,252,254,0,0,56,0,16,23,46,17,1,0,12, - 0,14,0,7,0,3,128,0,192,0,96,0,0,7,192,31, - 240,120,120,112,56,112,56,112,56,1,248,15,248,60,56,112, - 56,224,56,224,56,224,120,240,253,127,159,63,14,16,23,46, - 17,1,0,0,48,0,112,0,224,1,192,3,0,6,0,0, - 0,7,192,31,240,120,120,112,56,112,56,112,56,1,248,15, - 248,60,56,112,56,224,56,224,56,224,120,240,253,127,159,63, - 14,16,22,44,17,1,0,3,0,7,128,15,192,24,96,48, - 48,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,15,24,31,240,49,224,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,12,96,30,240,12,96,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,23,46,17,1,0,7,128,12,192,8,64,8, - 64,12,192,7,128,0,0,7,192,31,240,120,120,112,56,112, - 56,112,56,1,248,15,248,60,56,112,56,224,56,224,56,224, - 120,240,253,127,159,62,14,23,16,48,25,1,0,15,195,224, - 63,231,248,112,124,28,112,60,12,112,56,14,112,56,14,1, - 248,14,15,255,254,60,56,0,112,56,0,240,56,0,224,60, - 2,224,124,6,240,254,28,127,207,248,63,3,240,12,23,46, - 14,1,249,7,128,31,224,56,112,112,240,112,240,224,96,224, - 0,224,0,224,0,224,0,240,0,240,16,120,48,124,96,63, - 192,15,0,2,0,4,0,15,0,1,128,1,128,17,128,15, - 0,14,23,46,16,1,0,24,0,28,0,14,0,7,0,1, - 128,0,192,0,0,7,192,31,240,56,56,112,24,112,28,240, - 28,240,28,255,252,224,0,224,0,240,0,240,4,120,12,60, - 56,31,240,7,192,14,23,46,16,1,0,0,24,0,56,0, - 112,0,224,1,128,3,0,0,0,7,192,31,240,56,120,112, - 56,96,28,224,28,224,28,255,252,224,0,224,0,240,0,240, - 4,120,12,60,56,31,240,7,192,14,22,44,16,1,0,3, - 0,7,128,15,192,24,96,48,48,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,56,31,240,7,192,14,21,42,16,1, - 0,12,96,30,240,12,96,0,0,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,24,31,240,7,192,9,23,46,11,1, - 0,192,0,224,0,112,0,56,0,12,0,6,0,0,0,252, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,9, - 23,46,11,1,0,1,128,3,128,7,0,14,0,24,0,48, - 0,0,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,255,128,10,22,44,11,0,0,12,0,30,0,63,0,97, - 128,192,192,0,0,126,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,127,192,9,21,42,11,1,0,99,0,247,128,99, - 0,0,0,0,0,252,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,255,128,14,25,50,17,1,0,48,0,60,0,14, - 224,7,192,15,128,13,192,0,224,0,240,0,112,7,248,31, - 248,56,120,112,60,112,60,224,28,224,28,224,28,224,28,224, - 28,224,28,240,60,112,56,120,120,63,240,15,192,19,21,63, - 19,0,0,3,198,0,7,252,0,12,120,0,0,0,0,0, - 0,0,28,120,0,253,254,0,31,158,0,30,15,0,30,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,255, - 31,224,14,23,46,16,1,0,48,0,56,0,28,0,14,0, - 3,0,1,128,0,0,7,128,31,224,56,112,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,240,60,112,56, - 120,120,31,224,7,128,14,23,46,16,1,0,0,24,0,56, - 0,112,0,224,1,128,3,0,0,0,7,128,31,224,56,112, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,56,120,120,31,224,7,128,14,22,44,16,1,0, - 3,0,7,128,15,192,24,96,48,48,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,15,24,31,240,49,224,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,24,192,61,224,24,192,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,16,16,32,20, - 2,0,1,128,3,192,3,192,1,128,0,0,0,0,0,0, - 255,255,255,255,0,0,0,0,0,0,1,128,3,192,3,192, - 1,128,14,22,44,16,1,253,0,24,0,24,0,48,7,240, - 31,240,56,112,112,248,112,216,225,156,225,156,227,28,227,28, - 230,28,230,28,236,56,124,56,120,112,63,224,63,128,48,0, - 96,0,96,0,18,23,69,20,0,0,6,0,0,7,0,0, - 3,128,0,1,192,0,0,96,0,0,48,0,0,0,0,28, - 7,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,15,0,28,15,0,14,63,0,15,247,192,7,199,0,18, - 23,69,20,0,0,0,12,0,0,28,0,0,56,0,0,112, - 0,0,192,0,1,128,0,0,0,0,28,7,0,252,63,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,15,0,28,15, - 0,14,63,0,15,247,192,7,199,0,18,22,66,20,0,0, - 0,192,0,1,224,0,3,240,0,6,24,0,12,12,0,0, - 0,0,28,7,0,252,63,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,15,0,28,15,0,14,63,0,15,247,192,7, - 199,0,18,21,63,20,0,0,3,24,0,7,188,0,3,24, - 0,0,0,0,0,0,0,28,7,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,15,0,28,15,0,14,63, - 0,15,247,192,7,199,0,17,30,90,19,1,249,0,12,0, - 0,28,0,0,56,0,0,112,0,0,192,0,1,128,0,0, - 0,0,255,31,128,124,7,0,60,6,0,28,6,0,30,12, - 0,14,12,0,15,8,0,7,24,0,7,24,0,7,176,0, - 3,176,0,3,224,0,1,224,0,1,224,0,0,192,0,0, - 192,0,1,128,0,1,128,0,99,0,0,227,0,0,230,0, - 0,252,0,0,112,0,0,16,29,58,19,1,249,56,0,248, - 0,56,0,56,0,56,0,56,0,56,240,59,252,63,30,60, - 14,60,15,56,7,56,7,56,7,56,7,56,7,56,7,60, - 15,60,14,62,30,59,252,57,240,56,0,56,0,56,0,56, - 0,56,0,56,0,255,0,18,28,84,20,1,249,3,24,0, - 7,188,0,3,24,0,0,0,0,0,0,0,255,31,192,124, - 7,0,60,6,0,28,6,0,30,12,0,14,12,0,15,8, - 0,7,24,0,7,24,0,7,176,0,3,176,0,3,224,0, - 1,224,0,1,224,0,0,192,0,0,192,0,1,128,0,1, - 128,0,99,0,0,227,0,0,230,0,0,252,0,0,112,0, - 0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=16 h=25 x= 3 y=11 dx=20 dy= 0 ascent=25 len=50 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24n[744] U8G_FONT_SECTION("u8g_font_ncenR24n") = { - 0,39,50,250,245,24,0,0,0,0,42,58,0,25,250,24, - 0,12,14,28,17,2,11,6,0,6,0,6,0,198,112,230, - 112,127,224,31,128,31,0,127,192,230,112,198,112,6,0,6, - 0,6,0,16,17,34,20,2,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,255,255,255,255,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,5,10,10,9,2, - 250,112,248,248,120,24,24,48,96,224,128,8,3,3,11,1, - 7,255,255,255,4,4,4,9,2,0,96,240,240,96,10,25, - 50,9,255,0,0,192,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,48,0,48,0,48,0,96,0, - 96,0,96,0,192,0,16,24,48,18,2,0,3,192,15,240, - 28,56,24,24,56,28,120,30,112,14,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,112,14, - 120,30,56,28,24,24,28,56,15,240,3,192,13,24,48,18, - 3,0,3,0,7,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 255,248,15,24,48,18,1,0,7,224,31,248,56,28,96,30, - 112,14,120,14,120,14,120,14,48,30,0,28,0,28,0,56, - 0,120,0,112,0,224,1,192,3,128,7,2,14,2,28,6, - 56,6,127,254,255,254,255,254,15,24,48,18,1,0,7,224, - 31,248,56,56,112,28,120,28,120,28,48,28,0,28,0,56, - 0,112,1,224,15,240,0,248,0,60,0,28,0,30,96,14, - 240,14,240,14,240,30,224,28,120,124,63,240,15,192,16,24, - 48,18,1,0,0,48,0,48,0,112,0,240,1,240,1,240, - 3,112,6,112,6,112,12,112,24,112,24,112,48,112,96,112, - 96,112,192,112,255,255,255,255,0,112,0,112,0,112,0,112, - 0,248,3,254,14,24,48,18,2,0,56,8,63,248,63,240, - 63,224,48,0,48,0,32,0,96,0,99,192,111,240,124,120, - 112,56,96,60,0,28,0,28,0,28,96,28,240,28,240,28, - 240,60,224,56,112,120,127,240,31,128,15,24,48,18,1,0, - 3,240,15,252,28,62,56,30,56,30,48,12,112,0,112,0, - 112,0,241,224,247,248,254,60,252,28,248,30,240,14,240,14, - 240,14,112,14,112,14,112,30,56,28,56,60,31,240,7,192, - 13,24,48,18,3,0,255,248,255,248,255,248,192,16,192,48, - 128,32,128,96,128,64,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,7,0,7,0,7,0,15,0,15,0, - 15,0,15,0,6,0,15,24,48,18,1,0,7,224,31,248, - 60,56,56,28,112,28,112,12,112,12,120,24,60,56,63,112, - 31,224,7,240,7,248,29,252,56,124,112,30,112,30,224,14, - 224,14,224,14,112,28,120,60,63,248,15,224,15,24,48,18, - 1,0,15,192,63,240,120,120,112,56,240,60,224,28,224,28, - 224,30,224,30,240,30,240,62,120,126,120,126,63,222,31,158, - 0,30,0,28,0,28,96,56,240,56,240,112,241,224,127,192, - 63,0,4,16,16,9,3,0,96,240,240,96,0,0,0,0, - 0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=31 x= 9 y=17 dx=31 dy= 0 ascent=27 len=100 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24r[5367] U8G_FONT_SECTION("u8g_font_ncenR24r") = { - 0,39,50,250,245,25,5,159,15,28,32,127,249,27,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w=11 h= 9 x= 1 y= 4 dx=12 dy= 0 ascent= 9 len=10 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01[1535] U8G_FONT_SECTION("u8g_font_orgv01") = { - 1,11,11,0,254,5,0,249,1,238,32,255,255,9,254,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,20,36,128,0,128,128,2,85,101,32,248,160,248,32,2, - 85,101,64,224,64,72,120,2,85,101,136,112,80,112,136,2, - 85,101,136,248,32,112,32,2,21,37,128,128,0,128,128,2, - 86,102,248,128,248,248,8,248,4,81,97,248,18,85,117,248, - 168,200,168,248,2,181,202,251,224,138,0,251,224,136,32,139, - 224,19,83,115,72,144,72,3,66,82,240,16,255,2,85,101, - 248,248,200,200,248,6,81,97,248,2,0,112,2,0,112,2, - 0,112,2,0,112,2,0,112,2,0,112,2,0,112,2,0, - 112,2,0,112,2,0,112,2,0,112,4,83,99,144,72,144, - 2,0,112,2,0,112,2,0,112,18,85,117,32,0,224,128, - 248,2,88,104,64,32,0,248,136,248,136,136,2,88,104,16, - 32,0,248,136,248,136,136,2,88,104,32,80,0,248,136,248, - 136,136,2,89,105,8,248,128,0,248,136,248,136,136,2,87, - 103,80,0,248,136,248,136,136,2,87,103,32,0,248,136,248, - 136,136,2,85,101,248,160,248,160,184,0,87,103,248,128,128, - 128,248,16,48,2,88,104,64,32,0,248,128,248,128,248,2, - 88,104,16,32,0,248,128,248,128,248,2,88,104,32,80,0, - 248,128,248,128,248,2,86,102,80,248,128,248,128,248,2,88, - 104,64,32,0,248,32,32,32,248,2,88,104,16,32,0,248, - 32,32,32,248,2,88,104,32,80,0,248,32,32,32,248,2, - 87,103,80,0,248,32,32,32,248,2,85,101,240,136,232,136, - 240,2,89,105,8,248,128,0,248,136,136,136,136,2,88,104, - 64,32,0,248,136,136,136,248,2,88,104,16,32,0,248,136, - 136,136,248,2,88,104,32,80,0,248,136,136,136,248,2,89, - 105,8,248,128,0,248,136,136,136,248,2,87,103,80,0,248, - 136,136,136,248,3,51,67,160,64,160,2,85,101,248,152,168, - 200,248,2,87,103,64,32,136,136,136,136,248,2,87,103,16, - 32,136,136,136,136,248,2,86,102,32,80,136,136,136,248,2, - 86,102,80,0,136,136,136,248,2,88,104,16,32,0,136,136, - 80,32,32,18,85,117,128,240,136,240,128,1,86,102,240,136, - 176,136,176,128,2,68,84,240,16,240,240,2,71,87,64,32, - 0,240,16,240,240,2,71,87,32,64,0,240,16,240,240,2, - 71,87,96,144,0,240,16,240,240,2,70,86,144,0,240,16, - 240,240,2,70,86,32,0,240,16,240,240,2,116,132,254,30, - 240,254,0,70,86,240,128,128,240,32,96,2,71,87,64,32, - 0,240,240,128,240,2,71,87,32,64,0,240,240,128,240,2, - 71,87,96,144,0,240,240,128,240,2,70,86,144,0,240,240, - 128,240,2,39,39,128,64,0,64,64,64,64,2,39,39,64, - 128,0,128,128,128,128,2,55,39,64,160,0,64,64,64,64, - 2,54,38,160,0,64,64,64,64,2,85,85,56,16,240,144, - 240,2,71,87,80,160,0,240,144,144,144,2,71,87,64,32, - 0,240,144,144,240,2,71,87,32,64,0,240,144,144,240,2, - 71,87,96,144,0,240,144,144,240,2,71,87,80,160,0,240, - 144,144,240,2,70,86,144,0,240,144,144,240,2,85,101,32, - 0,248,0,32,2,68,84,240,176,208,240,2,71,87,64,32, - 0,144,144,144,240,2,71,87,32,64,0,144,144,144,240,2, - 71,87,96,144,0,144,144,144,240,2,70,86,144,0,144,144, - 144,240,1,72,88,32,64,0,144,144,144,240,16,18,85,117, - 128,240,136,240,128,1,71,87,144,0,144,144,144,240,16}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01n[137] U8G_FONT_SECTION("u8g_font_orgv01n") = { - 1,11,11,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,51,67,160,64,160,3,51,67,64,224,64,1,18,34, - 128,128,4,65,81,240,2,17,33,128,2,85,101,8,16,32, - 64,128,2,85,101,248,136,136,136,248,2,21,37,128,128,128, - 128,128,2,85,101,248,8,248,128,248,2,85,101,248,8,248, - 8,248,2,85,101,136,136,248,8,8,2,85,101,248,128,248, - 8,248,2,85,101,248,128,248,136,248,2,85,101,248,8,8, - 8,8,2,85,101,248,136,248,136,248,2,85,101,248,136,248, - 8,248,2,20,36,128,0,0,128}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01r[719] U8G_FONT_SECTION("u8g_font_orgv01r") = { - 1,11,11,0,254,5,0,249,1,238,32,127,255,5,255,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=14 dx=27 dy= 0 ascent=24 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18[7637] U8G_FONT_SECTION("u8g_font_osb18") = { - 0,70,31,234,249,18,4,190,10,54,32,255,250,24,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,7,0, - 0,4,18,18,6,1,250,96,240,240,96,0,0,64,96,96, - 96,96,96,240,240,240,240,240,96,9,18,36,15,3,253,4, - 0,4,0,4,0,30,0,53,0,117,128,231,128,231,128,228, - 0,228,0,228,0,228,0,100,128,116,128,31,0,4,0,4, - 0,4,0,16,18,36,19,2,0,0,248,1,132,3,6,7, - 14,7,14,7,0,7,0,63,0,7,240,7,128,3,128,3, - 128,3,128,3,1,123,2,143,204,135,252,120,240,12,12,24, - 14,1,3,132,16,223,176,112,224,96,96,192,48,192,48,192, - 48,192,48,64,96,96,96,127,224,207,48,14,18,36,14,0, - 0,254,124,56,16,60,16,60,32,30,32,30,64,14,64,15, - 128,7,128,127,240,7,0,127,240,7,0,7,0,7,0,7, - 0,7,0,31,224,2,22,22,8,3,252,192,192,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,192, - 192,11,23,46,15,1,251,15,0,48,128,96,192,97,192,97, - 192,112,128,124,0,63,0,223,128,143,192,129,224,192,96,248, - 32,126,32,63,64,15,128,3,192,49,192,112,192,112,192,96, - 128,33,128,30,0,8,3,3,12,2,14,231,231,231,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,33,201,0, - 67,56,128,70,24,128,142,8,64,142,8,64,142,0,64,142, - 0,64,142,8,64,142,8,64,70,8,128,67,16,128,33,225, - 0,16,2,0,12,12,0,3,240,0,7,9,9,10,1,9, - 120,204,204,60,76,204,206,126,254,7,10,10,12,3,1,32, - 100,68,204,204,204,204,196,100,34,13,7,14,15,1,4,255, - 248,255,248,0,24,0,24,0,24,0,24,0,24,6,3,3, - 8,1,5,252,252,252,18,18,54,20,1,0,3,240,0,12, - 12,0,16,2,0,47,225,0,71,48,128,71,56,128,135,56, - 64,135,48,64,135,192,64,135,48,64,135,56,64,135,56,64, - 71,58,128,71,58,128,47,157,0,16,2,0,12,12,0,3, - 240,0,7,2,2,11,2,14,254,254,8,7,7,14,3,11, - 60,102,131,129,129,194,126,21,18,54,23,1,254,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,0,0,255,255,248, - 255,255,248,7,11,11,11,2,7,124,206,206,238,28,48,98, - 66,254,190,8,8,11,11,12,2,7,60,198,231,231,6,56, - 6,103,231,199,60,4,4,4,11,5,13,48,112,96,192,13, - 18,36,15,1,250,97,128,225,192,225,192,225,192,225,192,225, - 192,225,192,64,136,64,136,65,248,127,120,94,48,64,0,96, - 0,96,0,112,0,112,0,112,0,13,21,42,15,1,253,31, - 248,126,96,126,96,254,96,254,96,254,96,254,96,126,96,62, - 96,14,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,4,4,4,8,2,6,96, - 240,240,96,5,5,5,11,3,250,32,96,24,24,240,6,11, - 11,11,3,7,48,240,112,112,112,112,112,112,112,112,252,7, - 9,9,9,1,9,56,68,198,198,198,198,68,56,254,7,10, - 10,13,3,1,152,140,68,102,102,102,102,70,76,136,18,18, - 54,22,3,0,48,8,0,240,8,0,112,16,0,112,48,0, - 112,32,0,112,96,0,112,64,0,112,195,0,112,135,0,113, - 143,0,253,15,0,3,23,0,2,39,0,4,39,0,12,63, - 192,8,7,0,24,7,0,16,31,192,18,18,54,23,3,0, - 48,4,0,240,8,0,112,24,0,112,16,0,112,48,0,112, - 32,0,112,96,0,112,79,0,112,147,192,113,177,192,253,57, - 192,3,3,128,2,6,0,6,8,0,4,16,64,8,63,192, - 24,47,192,16,39,128,20,18,54,23,2,0,124,2,0,199, - 6,0,231,4,0,6,12,0,56,8,0,6,16,0,7,16, - 0,231,33,192,231,97,192,198,67,192,60,133,192,0,133,192, - 1,9,192,1,9,192,2,31,240,6,1,192,4,1,192,8, - 7,240,8,18,18,12,2,250,48,120,120,48,56,68,68,4, - 8,24,48,114,97,225,225,225,114,60,17,23,69,19,1,1, - 7,0,0,7,0,0,1,128,0,0,128,0,0,0,0,0, - 192,0,0,192,0,1,192,0,1,224,0,1,224,0,3,224, - 0,2,240,0,2,240,0,4,240,0,4,120,0,4,120,0, - 8,56,0,15,252,0,8,60,0,16,28,0,16,30,0,48, - 30,0,252,255,128,17,23,69,19,1,1,0,56,0,0,48, - 0,0,96,0,0,192,0,0,0,0,0,192,0,0,192,0, - 0,192,0,1,224,0,1,224,0,1,224,0,2,240,0,2, - 240,0,4,112,0,4,120,0,4,120,0,8,56,0,15,252, - 0,8,60,0,16,28,0,16,30,0,48,30,0,252,127,128, - 17,23,69,19,1,0,0,192,0,1,192,0,3,96,0,6, - 24,0,0,0,0,0,192,0,0,192,0,0,192,0,1,224, - 0,1,224,0,1,224,0,2,240,0,2,240,0,4,112,0, - 4,120,0,4,120,0,8,56,0,15,252,0,8,60,0,16, - 28,0,16,30,0,48,30,0,252,127,128,17,23,69,19,1, - 0,1,8,0,7,240,0,4,240,0,0,0,0,0,0,0, - 0,192,0,0,192,0,1,192,0,1,224,0,1,224,0,3, - 224,0,2,240,0,2,240,0,4,240,0,4,120,0,4,120, - 0,8,56,0,15,252,0,8,60,0,16,28,0,16,30,0, - 48,30,0,252,255,128,16,23,46,18,1,0,14,112,14,112, - 14,112,0,0,0,0,1,128,1,128,1,128,3,192,3,192, - 3,192,5,224,5,224,4,224,8,240,8,240,8,112,31,248, - 16,120,16,60,48,60,48,60,252,255,18,23,69,19,1,0, - 1,224,0,2,16,0,2,16,0,1,224,0,0,0,0,0, - 192,0,0,192,0,0,224,0,1,224,0,1,224,0,1,240, - 0,2,240,0,2,240,0,4,120,0,4,120,0,4,120,0, - 8,60,0,15,252,0,8,28,0,16,30,0,16,30,0,48, - 30,0,252,127,192,23,18,54,25,1,0,0,127,254,0,60, - 14,0,60,6,0,124,6,0,92,2,0,220,34,0,156,32, - 1,156,96,1,28,96,3,31,224,2,28,96,6,28,34,7, - 252,34,8,28,2,8,28,2,24,28,6,56,28,14,254,127, - 254,13,24,48,17,2,250,7,136,24,120,48,56,112,24,112, - 24,240,8,240,8,240,8,240,0,240,0,240,0,240,8,240, - 8,112,8,112,8,56,16,24,32,7,192,2,0,3,128,0, - 192,0,192,8,192,7,128,14,23,46,18,2,1,28,0,12, - 0,6,0,1,0,0,0,255,252,56,28,56,12,56,12,56, - 4,56,68,56,64,56,192,56,192,63,192,56,192,56,68,56, - 68,56,4,56,4,56,12,56,28,255,252,14,23,46,18,2, - 1,0,224,0,192,1,128,2,0,0,0,255,252,56,28,56, - 12,56,12,56,4,56,68,56,64,56,192,56,192,63,192,56, - 192,56,68,56,68,56,4,56,4,56,12,56,28,255,252,14, - 23,46,18,2,0,3,0,7,128,12,192,16,32,0,0,255, - 252,56,28,56,12,56,12,56,4,56,68,56,64,56,192,56, - 192,63,192,56,192,56,68,56,68,56,4,56,4,56,12,56, - 28,255,252,14,23,46,18,2,0,28,224,28,224,28,224,0, - 0,0,0,255,252,56,28,56,12,56,12,56,4,56,68,56, - 64,56,192,56,192,63,192,56,192,56,68,56,68,56,4,56, - 12,56,12,56,28,255,252,8,23,23,11,2,1,192,96,48, - 16,0,255,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,255,8,23,23,11,2,1,7,14,8,16,0,255, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 255,8,23,23,11,2,0,16,56,108,130,0,255,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,255,8,23, - 23,11,2,0,231,231,231,0,0,255,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,255,16,18,36,19,2, - 0,255,224,56,56,56,28,56,14,56,14,56,14,56,15,56, - 15,255,15,56,15,56,15,56,15,56,14,56,14,56,12,56, - 28,56,56,255,224,17,23,69,18,1,0,3,136,0,3,240, - 0,4,96,0,0,0,0,0,0,0,252,63,128,60,14,0, - 62,4,0,31,4,0,31,4,0,23,132,0,23,196,0,19, - 196,0,17,228,0,17,244,0,16,244,0,16,124,0,16,124, - 0,16,60,0,16,28,0,16,28,0,56,12,0,254,4,0, - 15,24,48,18,2,0,12,0,12,0,14,0,3,0,1,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,24,48,18,2,0,0,96,0,96, - 0,224,1,128,1,0,0,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,24,48,18, - 2,0,1,0,3,128,7,128,14,192,24,48,0,0,7,192, - 8,32,56,48,48,24,112,28,112,28,240,30,240,30,240,30, - 240,30,240,30,240,30,112,28,112,28,48,24,48,56,8,32, - 7,192,15,23,46,18,2,0,7,32,15,224,16,192,0,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,23,46,18,2,0,28,224,28,224, - 28,224,0,0,0,0,7,192,8,32,56,48,48,24,112,28, - 112,28,240,30,240,30,240,30,240,30,240,30,240,30,112,28, - 112,28,48,24,48,56,8,32,7,192,16,15,30,24,4,0, - 192,3,96,6,48,12,24,24,12,48,6,96,3,192,1,128, - 3,192,6,96,12,48,56,24,112,12,224,6,192,3,15,18, - 36,18,2,0,7,194,8,116,48,60,48,56,112,60,112,124, - 240,94,240,222,241,158,243,30,246,30,244,30,124,28,120,28, - 56,24,120,24,92,32,135,192,18,24,72,20,2,0,6,0, - 0,7,0,0,3,0,0,1,128,0,0,0,0,0,0,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,18,24,72,20,2,0,0,24,0,0, - 56,0,0,112,0,0,192,0,0,128,0,0,0,0,255,31, - 192,56,7,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,24,2,0,28,4,0,14,8, - 0,3,240,0,18,24,72,20,2,0,0,128,0,1,192,0, - 1,224,0,6,48,0,8,8,0,0,0,0,255,31,192,56, - 7,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,24,2,0,28,4,0,14,8,0,3, - 240,0,18,23,69,20,2,0,7,56,0,7,56,0,7,56, - 0,0,0,0,0,0,0,255,31,192,56,7,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,24,2,0,28,4,0,14,8,0,3,240,0,16,23,46, - 19,2,1,0,112,0,96,0,192,1,0,0,0,254,127,60, - 12,60,8,30,16,30,16,30,16,15,32,15,32,7,64,7, - 192,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 240,15,18,36,18,2,0,255,128,56,0,56,0,63,224,56, - 56,56,28,56,30,56,30,56,30,56,30,56,28,56,56,63, - 224,56,0,56,0,56,0,56,0,255,128,12,18,36,13,0, - 0,7,128,12,192,24,224,56,224,56,224,56,224,56,192,59, - 0,56,192,56,96,56,112,56,112,56,112,56,112,56,112,63, - 112,63,96,251,192,11,18,36,13,1,0,32,0,48,0,48, - 0,24,0,4,0,0,0,30,0,99,0,99,128,115,128,7, - 128,27,128,115,128,227,128,227,160,227,160,247,160,121,192,11, - 18,36,13,1,0,3,0,3,0,6,0,4,0,8,0,0, - 0,30,0,99,0,99,128,115,128,35,128,31,128,115,128,227, - 128,227,160,227,160,247,160,121,192,11,18,36,13,1,0,12, - 0,12,0,30,0,50,0,65,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,17,34,13,1,0,57,0,127,0,70,0,0, - 0,0,0,30,0,99,0,99,128,115,128,35,128,31,128,115, - 128,227,128,227,160,227,160,247,160,121,192,11,17,34,13,1, - 0,119,0,119,0,119,0,0,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,18,36,13,1,0,28,0,38,0,34,0,34, - 0,28,0,0,0,30,0,99,0,99,128,115,128,35,128,31, - 128,115,128,227,128,227,160,227,160,231,160,121,192,15,12,24, - 18,1,0,62,248,99,140,99,142,115,142,7,142,27,254,115, - 128,227,128,227,130,227,130,247,196,120,120,9,18,36,12,1, - 250,30,0,49,0,113,128,227,128,227,128,224,0,224,0,224, - 0,224,128,112,128,49,0,30,0,8,0,8,0,6,0,6, - 0,6,0,28,0,9,18,36,12,1,0,32,0,112,0,48, - 0,24,0,4,0,0,0,30,0,51,0,99,128,227,128,227, - 128,255,128,224,0,224,0,224,128,112,128,49,0,30,0,9, - 18,36,12,1,0,3,0,7,0,6,0,12,0,8,0,0, - 0,30,0,51,0,99,128,227,128,227,128,255,128,224,0,224, - 0,224,128,112,128,49,0,30,0,9,18,36,12,1,0,12, - 0,28,0,28,0,50,0,65,0,0,0,30,0,51,0,99, - 128,227,128,227,128,255,128,224,0,224,0,224,128,112,128,49, - 0,30,0,9,17,34,12,1,0,115,128,115,128,115,128,0, - 0,0,0,30,0,51,0,99,128,227,128,227,128,255,128,224, - 0,224,0,224,0,112,128,49,0,30,0,7,18,18,8,1, - 0,192,224,112,16,8,0,120,56,56,56,56,56,56,56,56, - 56,56,126,6,18,18,8,1,0,12,28,24,48,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,7,18,18,7,0, - 0,56,56,108,198,0,0,120,56,56,56,56,56,56,56,56, - 56,56,126,7,17,17,8,1,0,238,238,238,0,0,120,56, - 56,56,56,56,56,56,56,56,56,126,10,18,36,12,1,0, - 57,128,30,0,14,0,31,0,39,0,3,128,31,128,51,192, - 97,192,225,192,225,192,225,192,225,192,225,192,225,192,97,128, - 51,128,30,0,11,17,34,13,1,0,24,128,63,128,39,0, - 0,0,0,0,243,128,125,192,121,192,113,192,113,192,113,192, - 113,192,113,192,113,192,113,192,113,192,251,224,10,18,36,12, - 1,0,48,0,48,0,24,0,12,0,4,0,0,0,30,0, - 51,0,97,128,225,192,225,192,225,192,225,192,225,192,225,192, - 97,128,51,0,30,0,10,18,36,12,1,0,3,0,3,0, - 7,0,4,0,8,0,0,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 10,18,36,12,1,0,12,0,14,0,30,0,51,0,96,128, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,10,17,34,12,1,0, - 56,128,63,0,70,0,0,0,0,0,30,0,51,0,97,128, - 225,192,225,192,225,192,225,192,225,192,225,192,97,128,51,0, - 30,0,10,17,34,12,1,0,115,128,115,128,115,128,0,0, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,21,17,51,23,1,254, - 0,48,0,0,120,0,0,120,0,0,48,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,248,255,255,248,0,0, - 0,0,0,0,0,0,0,0,48,0,0,120,0,0,120,0, - 0,48,0,10,12,24,12,1,0,30,64,51,128,97,128,225, - 192,227,192,229,192,233,192,241,192,241,192,97,128,115,0,158, - 0,12,18,36,13,0,0,24,0,24,0,12,0,6,0,2, - 0,0,0,249,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,224,57,224,58,224,28,240,12,18,36,13,0, - 0,1,128,1,128,3,0,2,0,0,0,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,18,36,13,0,0,6,0,6,0,15, - 0,25,128,0,0,0,0,249,224,56,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,57,224,58,224,28,240,12, - 17,34,13,0,0,57,192,57,192,57,192,0,0,0,0,249, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,57,224,58,224,28,240,12,24,48,12,0,250,1,128,1, - 128,3,0,6,0,4,0,0,0,252,240,112,64,56,64,56, - 128,28,128,28,128,29,0,15,0,15,0,7,0,6,0,6, - 0,2,0,4,0,116,0,116,0,104,0,56,0,12,23,46, - 13,0,250,24,0,120,0,184,0,56,0,56,0,57,224,58, - 240,60,112,60,112,56,112,56,96,56,224,56,192,56,128,57, - 0,58,0,60,0,56,0,56,0,56,0,56,0,96,0,128, - 0,13,23,46,13,0,250,28,224,28,224,28,224,0,0,0, - 0,254,120,56,32,60,64,28,64,30,64,14,64,14,128,7, - 128,7,128,7,0,3,0,3,0,2,0,2,0,58,0,60, - 0,52,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=21 h=23 x= 3 y= 8 dx=23 dy= 0 ascent=18 len=63 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18n[618] U8G_FONT_SECTION("u8g_font_osb18n") = { - 0,70,31,234,249,18,0,0,0,0,42,58,0,18,251,18, - 0,9,10,20,13,2,8,24,0,24,0,201,128,235,128,28, - 0,44,0,235,128,217,128,24,0,24,0,21,21,63,23,1, - 253,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 4,9,9,7,2,251,224,240,240,240,16,32,32,64,128,6, - 3,3,8,1,5,252,252,252,4,4,4,8,2,0,96,240, - 240,96,9,23,46,11,1,251,1,128,1,128,1,0,3,0, - 3,0,2,0,6,0,6,0,4,0,12,0,12,0,8,0, - 24,0,24,0,24,0,16,0,48,0,48,0,32,0,96,0, - 96,0,64,0,192,0,12,18,36,15,1,0,15,0,25,128, - 48,192,112,224,112,224,240,224,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,48,192,25,128,15,0, - 8,18,18,15,3,0,24,56,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,255,11,18,36,15,2,0,31,0, - 113,192,96,224,224,224,240,224,248,224,121,192,1,192,3,0, - 6,0,8,0,48,32,64,32,64,32,255,224,191,224,143,192, - 135,128,12,18,36,15,1,0,31,0,49,192,96,224,112,224, - 120,224,120,224,0,192,1,128,62,0,1,192,0,224,0,240, - 112,240,248,240,240,240,192,224,65,192,63,0,11,18,36,15, - 2,0,3,0,7,0,7,0,15,0,15,0,23,0,55,0, - 39,0,103,0,71,0,199,0,135,0,255,224,7,0,7,0, - 7,0,7,0,63,224,11,18,36,15,2,0,65,128,127,128, - 126,0,120,0,64,0,64,0,95,0,99,128,65,192,65,224, - 1,224,33,224,241,224,241,224,225,192,193,192,67,128,62,0, - 11,18,36,15,2,0,7,128,24,64,48,224,113,224,113,224, - 240,0,240,0,247,128,249,192,240,224,240,224,240,224,240,224, - 112,224,112,224,48,192,57,192,15,0,11,18,36,15,2,0, - 156,64,190,96,255,32,255,224,128,32,128,64,128,64,0,128, - 1,128,3,0,7,0,6,0,14,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,15,1,0,31,128,32,64,64,32, - 192,32,192,32,240,32,252,64,127,128,127,192,63,224,103,240, - 193,240,192,112,192,48,192,48,96,32,112,64,31,128,12,18, - 36,15,2,0,31,0,113,128,96,192,224,224,224,224,224,240, - 224,240,96,240,113,240,30,240,0,240,0,240,56,224,120,224, - 120,224,97,192,33,128,30,0,4,12,12,8,2,0,96,240, - 240,96,0,0,0,0,96,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=27 dy= 0 ascent=20 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18r[3611] U8G_FONT_SECTION("u8g_font_osb18r") = { - 0,70,31,234,249,18,4,190,10,54,32,127,250,20,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 5 y=17 dx=31 dy= 0 ascent=28 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21[9612] U8G_FONT_SECTION("u8g_font_osb21") = { - 0,77,36,232,248,21,5,141,12,241,32,255,249,28,248,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,8,0,0,5, - 21,21,9,2,249,112,248,248,112,0,0,32,32,32,32,32, - 112,112,112,112,248,248,248,248,248,112,10,21,42,16,3,253, - 2,0,2,0,2,0,15,0,26,128,50,192,114,192,243,192, - 243,192,242,0,242,0,242,0,242,0,242,64,114,64,50,64, - 30,128,15,0,2,0,2,0,2,0,17,21,63,20,2,1, - 0,254,0,1,131,0,3,131,0,3,135,128,7,135,128,7, - 135,0,7,128,0,7,128,0,7,128,0,31,128,0,39,248, - 0,7,128,0,7,192,0,3,192,0,3,128,0,3,128,0, - 3,128,128,123,1,128,143,135,0,135,254,0,121,252,0,13, - 13,26,17,2,3,207,152,255,248,112,112,96,48,192,24,192, - 24,192,24,192,24,192,24,96,48,112,112,255,248,207,152,15, - 21,42,16,1,0,254,126,124,24,124,24,60,16,60,16,30, - 32,30,32,30,64,15,64,15,128,7,128,127,248,7,128,127, - 248,7,128,7,128,7,128,7,128,7,128,7,128,63,240,2, - 26,26,8,3,251,192,192,192,192,192,192,192,192,192,192,0, - 0,0,0,0,0,192,192,192,192,192,192,192,192,192,192,13, - 27,54,18,1,250,15,128,16,64,32,96,96,224,97,224,97, - 224,112,128,124,0,63,0,95,192,79,240,195,240,192,248,224, - 56,248,24,126,16,127,144,31,224,7,224,1,224,48,224,120, - 96,120,96,112,96,96,192,48,128,31,0,9,4,8,13,2, - 16,99,0,247,128,247,128,99,0,20,21,63,22,1,1,3, - 252,0,12,3,0,16,0,128,32,0,64,32,244,64,65,140, - 32,67,132,32,131,132,16,135,132,16,135,132,16,135,128,16, - 135,128,16,135,128,16,135,130,16,67,132,32,67,132,32,33, - 136,64,32,240,64,16,0,128,12,3,0,3,252,0,8,11, - 11,10,1,10,56,76,108,108,60,204,205,205,118,0,255,7, - 11,11,13,3,2,34,68,196,204,204,204,204,204,68,98,34, - 14,8,16,16,1,4,255,252,255,252,0,12,0,12,0,12, - 0,12,0,12,0,12,7,3,3,11,2,6,254,254,254,20, - 21,63,22,1,1,3,252,0,12,3,0,16,0,128,32,0, - 64,47,248,64,67,206,32,67,206,32,131,207,16,131,206,16, - 131,206,16,131,240,16,131,204,16,131,206,16,131,206,16,67, - 206,160,67,206,160,35,206,192,47,231,64,16,0,128,12,3, - 0,3,252,0,7,2,2,13,3,17,254,254,9,10,20,17, - 4,12,8,0,62,0,119,0,193,128,193,128,193,128,193,128, - 99,0,127,0,28,0,24,22,66,26,1,254,0,24,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,255,255,255,255,255,255,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,0,0,0,0,0,255,255,255,255,255,255,9,12, - 24,13,2,9,62,0,71,0,199,128,231,0,111,0,12,0, - 24,0,33,0,65,128,255,0,159,0,142,0,10,13,26,13, - 2,8,62,0,67,0,195,128,227,128,99,128,3,0,60,0, - 7,0,3,128,243,192,227,128,199,128,62,0,5,5,5,12, - 5,16,24,56,112,96,192,14,22,44,17,2,248,96,192,224, - 224,241,224,241,224,225,224,225,224,224,224,224,224,96,192,64, - 196,64,196,65,252,127,124,78,56,64,0,64,0,96,0,224, - 0,240,0,240,0,112,0,96,0,13,25,50,17,2,252,31, - 248,126,96,254,96,254,96,254,96,254,96,254,96,254,96,254, - 96,126,96,62,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,4,4,4,8,2,7,96,240,240,96,5,6,6,13,4, - 249,32,64,48,24,24,240,7,12,12,13,3,9,28,252,60, - 60,60,60,60,60,60,60,60,254,8,11,11,11,2,10,60, - 102,230,231,231,231,230,102,60,0,255,7,11,11,13,3,2, - 136,68,102,102,102,102,102,102,68,140,136,22,21,63,26,3, - 0,12,1,128,28,1,0,252,3,0,60,2,0,60,6,0, - 60,12,0,60,12,0,60,24,0,60,16,0,60,48,112,60, - 32,240,60,97,240,254,65,240,0,194,240,0,130,240,1,132, - 240,3,8,240,3,15,252,6,0,240,4,0,240,12,3,248, - 21,22,66,26,3,0,0,1,128,28,1,0,252,3,0,60, - 2,0,60,6,0,60,4,0,60,12,0,60,24,0,60,24, - 0,60,51,224,60,36,112,60,108,120,60,78,120,254,206,120, - 0,134,112,1,128,192,1,1,0,3,2,8,2,4,8,6, - 15,248,4,11,240,12,8,224,22,21,63,25,2,0,62,0, - 128,67,1,128,195,129,0,227,131,0,99,130,0,3,6,0, - 60,4,0,7,8,0,3,152,0,243,208,112,227,176,112,199, - 160,240,62,97,240,0,65,240,0,194,240,0,130,240,1,132, - 240,1,7,252,3,0,240,2,0,240,6,3,252,9,22,44, - 13,2,249,24,0,60,0,60,0,60,0,24,0,0,0,28, - 0,34,0,34,0,34,0,6,0,12,0,28,0,56,0,112, - 0,113,0,240,128,240,128,240,128,240,128,113,0,62,0,19, - 27,81,22,2,1,3,0,0,3,128,0,1,128,0,0,192, - 0,0,64,0,0,0,0,0,64,0,0,96,0,0,224,0, - 0,224,0,0,240,0,1,240,0,1,240,0,1,248,0,2, - 120,0,2,120,0,2,124,0,4,60,0,4,60,0,4,62, - 0,15,254,0,8,30,0,8,31,0,16,15,0,16,15,0, - 48,15,128,254,127,224,19,27,81,21,2,1,0,24,0,0, - 56,0,0,48,0,0,96,0,0,64,0,0,0,0,0,64, - 0,0,96,0,0,224,0,0,224,0,0,240,0,1,240,0, - 1,240,0,1,248,0,2,120,0,2,120,0,2,124,0,4, - 60,0,4,60,0,8,60,0,15,254,0,8,30,0,16,30, - 0,16,15,0,16,15,0,48,15,128,254,127,224,19,27,81, - 22,2,0,0,64,0,0,224,0,1,240,0,3,24,0,4, - 4,0,0,0,0,0,64,0,0,96,0,0,224,0,0,224, - 0,0,240,0,1,240,0,1,240,0,1,248,0,2,120,0, - 2,120,0,2,124,0,4,60,0,4,60,0,4,62,0,15, - 254,0,8,30,0,8,31,0,16,15,0,16,15,0,48,15, - 128,254,127,224,19,27,81,21,2,0,0,4,0,1,200,0, - 3,248,0,4,112,0,0,0,0,0,0,0,0,64,0,0, - 96,0,0,224,0,0,224,0,0,240,0,1,240,0,1,240, - 0,1,248,0,2,120,0,2,120,0,2,124,0,4,60,0, - 4,60,0,4,60,0,15,254,0,8,30,0,24,30,0,16, - 15,0,16,15,0,48,15,128,254,127,224,19,27,81,22,2, - 0,3,12,0,7,158,0,7,158,0,3,12,0,0,0,0, - 0,0,0,0,96,0,0,96,0,0,224,0,0,240,0,0, - 240,0,1,240,0,1,248,0,1,120,0,2,120,0,2,124, - 0,2,60,0,4,60,0,4,62,0,4,30,0,15,254,0, - 8,31,0,8,15,0,16,15,0,16,15,0,48,15,128,254, - 127,224,19,27,81,21,1,0,0,240,0,1,8,0,1,8, - 0,1,8,0,0,240,0,0,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 120,0,1,120,0,2,124,0,2,60,0,2,60,0,4,62, - 0,4,30,0,7,254,0,8,31,0,8,15,0,8,15,0, - 24,15,0,24,15,128,254,63,224,26,21,84,28,0,0,0, - 63,255,192,0,15,131,192,0,15,129,192,0,31,128,192,0, - 23,128,192,0,55,128,64,0,39,132,64,0,103,132,0,0, - 71,140,0,0,199,156,0,0,135,252,0,1,135,156,0,1, - 7,140,0,3,7,132,64,3,255,132,64,6,7,128,64,4, - 7,128,64,12,7,128,192,12,7,129,192,28,7,131,192,255, - 63,255,192,15,28,56,18,2,250,15,230,28,30,56,30,56, - 14,120,14,120,6,248,6,248,6,248,2,248,0,248,0,248, - 0,248,0,248,2,120,2,120,2,120,4,56,4,60,12,28, - 8,6,48,1,192,1,0,1,192,0,96,0,96,4,96,3, - 192,16,27,54,19,1,1,6,0,7,0,3,0,1,128,0, - 0,0,0,255,255,30,15,30,7,30,3,30,3,30,1,30, - 17,30,16,30,48,30,48,31,240,30,48,30,48,30,17,30, - 17,30,1,30,1,30,3,30,7,30,15,255,255,16,27,54, - 19,1,1,0,56,0,120,0,96,0,192,0,0,0,0,255, - 255,30,15,30,7,30,3,30,3,30,1,30,17,30,16,30, - 48,30,48,31,240,30,48,30,48,30,17,30,17,30,1,30, - 1,30,3,30,7,30,15,255,255,16,27,54,19,1,0,0, - 128,1,192,3,96,6,56,8,0,0,0,255,255,30,15,30, - 7,30,3,30,3,30,1,30,17,30,16,30,48,30,48,31, - 240,30,48,30,48,30,17,30,17,30,1,30,1,30,3,30, - 7,30,15,255,255,16,27,54,19,1,0,6,24,15,60,15, - 60,6,24,0,0,0,0,255,255,30,15,30,7,30,3,30, - 3,30,1,30,17,30,16,30,48,30,48,31,240,30,48,30, - 48,30,17,30,17,30,1,30,1,30,3,30,7,30,15,255, - 255,9,27,54,11,1,1,96,0,112,0,56,0,8,0,0, - 0,0,0,255,128,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,255,128,10,27,54, - 12,1,1,3,128,3,128,6,0,12,0,8,0,0,0,255, - 192,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,255,192,9,27,54,11,1,0,12, - 0,28,0,62,0,99,0,0,128,0,0,255,128,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,255,128,10,27,54,13,2,0,97,128,243,192,243, - 192,97,128,0,0,0,0,255,192,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,255, - 192,19,21,63,22,2,0,255,248,0,30,14,0,30,7,0, - 30,3,128,30,3,192,30,3,192,30,3,192,30,3,224,30, - 3,224,30,3,224,255,131,224,30,3,224,30,3,224,30,3, - 224,30,3,192,30,3,192,30,3,128,30,3,128,30,7,0, - 30,14,0,255,248,0,21,26,78,22,1,1,0,226,0,1, - 254,0,2,28,0,0,0,0,0,0,0,254,15,248,31,1, - 192,31,0,128,15,128,128,15,192,128,15,192,128,11,224,128, - 11,240,128,9,248,128,8,248,128,8,252,128,8,126,128,8, - 62,128,8,31,128,8,31,128,8,15,128,8,7,128,8,7, - 128,8,3,128,28,1,128,255,129,128,17,27,81,20,2,1, - 14,0,0,7,0,0,3,0,0,1,128,0,0,0,0,0, - 128,0,7,112,0,12,24,0,24,12,0,56,14,0,120,14, - 0,120,15,0,120,15,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,120,15,0,120, - 15,0,120,15,0,56,14,0,24,12,0,12,24,0,7,112, - 0,17,27,81,20,2,1,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,128,0,7,112,0,12,24,0,24, - 12,0,56,14,0,120,14,0,120,15,0,120,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,120,15,0,120,15,0,120,15,0,56,14,0,24, - 12,0,12,24,0,7,112,0,17,27,81,20,2,0,0,128, - 0,1,192,0,3,96,0,6,48,0,8,8,0,0,128,0, - 7,112,0,12,24,0,24,12,0,56,14,0,120,14,0,120, - 15,0,120,15,0,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,56,14,0,24,12,0,12,24,0,7,112,0,17, - 27,81,20,2,0,0,8,0,7,136,0,7,240,0,8,224, - 0,0,0,0,0,128,0,7,112,0,12,24,0,24,12,0, - 56,14,0,120,14,0,120,15,0,120,15,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,120,15,0,120,15,0,120,15,0,56,14,0,24,12,0, - 12,24,0,7,112,0,17,27,81,20,2,0,12,48,0,30, - 120,0,30,120,0,12,48,0,0,0,0,0,128,0,7,112, - 0,12,24,0,24,12,0,56,14,0,120,14,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,120,15,0,120,15,0,120,15, - 0,56,14,0,24,12,0,12,24,0,7,112,0,18,19,57, - 26,4,254,64,0,64,224,0,192,112,1,128,56,3,0,28, - 6,0,14,12,0,7,24,0,3,176,0,1,224,0,0,224, - 0,1,240,0,3,56,0,6,28,0,12,12,0,24,6,0, - 48,3,0,112,1,128,224,0,192,64,0,0,17,22,66,20, - 2,0,0,128,0,7,113,128,12,27,0,24,14,0,56,14, - 0,56,14,0,120,31,0,120,31,0,248,47,128,248,111,128, - 248,79,128,248,143,128,249,15,128,251,15,128,250,15,128,124, - 15,0,124,15,0,120,14,0,56,14,0,56,12,0,108,24, - 0,199,112,0,19,27,81,22,2,1,7,0,0,3,128,0, - 1,128,0,0,192,0,0,0,0,0,0,0,255,15,224,60, - 3,128,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,28, - 1,0,28,2,0,14,4,0,7,248,0,19,27,81,22,2, - 1,0,28,0,0,56,0,0,48,0,0,96,0,0,0,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,28,1,0,28,2,0,14,4,0,7, - 248,0,19,27,81,22,2,0,0,192,0,0,224,0,1,240, - 0,6,24,0,0,4,0,0,0,0,255,15,224,60,3,128, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,28,3,0, - 28,2,0,14,4,0,7,248,0,19,27,81,22,2,0,3, - 12,0,7,158,0,7,158,0,3,12,0,0,0,0,0,0, - 0,255,143,224,60,3,128,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,28,1,0,28,2,0,14,4,0,7,248,0, - 19,27,81,21,2,1,0,28,0,0,60,0,0,48,0,0, - 96,0,0,0,0,0,0,0,255,31,224,62,7,0,30,6, - 0,30,6,0,31,4,0,15,4,0,15,136,0,7,136,0, - 7,144,0,7,208,0,3,240,0,3,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,7,248,0,17,21,63,19,1,0,255,192,0, - 30,0,0,30,0,0,30,0,0,31,248,0,30,14,0,30, - 15,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 128,30,15,0,30,14,0,31,248,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,192,0,14,21,42,16, - 1,0,7,192,12,96,28,112,28,112,60,112,60,112,60,112, - 60,96,61,128,60,96,60,48,60,56,60,56,60,56,60,60, - 60,60,60,56,63,184,63,184,63,48,253,224,12,21,42,14, - 1,0,96,0,112,0,56,0,24,0,12,0,4,0,0,0, - 30,0,99,128,99,192,243,192,115,192,7,192,27,192,115,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,1,128,3,128,3,0,6,0,12,0,8,0,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,12,0,12,0,30,0,19,0,33,128,64,128,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,20,40,14, - 1,0,56,128,127,128,71,0,0,0,0,0,0,0,30,0, - 99,128,99,192,243,192,115,192,3,192,31,192,51,192,115,192, - 243,192,243,208,243,208,245,208,121,224,12,20,40,14,1,0, - 97,128,243,192,243,192,97,128,0,0,0,0,30,0,99,128, - 99,192,243,192,115,192,35,192,15,192,51,192,115,192,243,192, - 243,208,243,208,243,208,125,224,12,21,42,14,1,1,30,0, - 33,0,33,0,33,0,50,0,12,0,0,0,31,0,99,128, - 97,192,241,192,113,192,33,192,15,192,49,192,97,192,225,192, - 225,208,225,208,227,208,124,224,17,14,42,19,1,0,62,60, - 0,99,230,0,99,199,0,243,199,128,115,199,128,7,199,128, - 27,255,128,115,192,0,115,192,0,243,192,128,243,192,128,243, - 225,0,242,225,0,124,62,0,10,21,42,13,1,249,15,0, - 56,128,112,192,113,192,243,192,243,128,240,0,240,0,240,0, - 240,0,112,64,112,64,56,128,31,0,4,0,8,0,6,0, - 3,0,3,0,3,0,30,0,11,21,42,13,1,0,48,0, - 48,0,56,0,24,0,12,0,0,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,1,128, - 3,128,3,128,6,0,4,0,8,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,12,0, - 14,0,30,0,27,0,49,128,64,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,20,40,13,1,0,49,128, - 123,192,123,192,49,128,0,0,0,0,15,0,51,128,113,192, - 113,192,241,192,241,224,255,224,240,0,240,0,240,32,112,64, - 112,64,56,128,15,0,7,21,21,9,1,0,192,224,112,48, - 24,8,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,6,21,21,9,2,0,12,12,28,56,32,0,0,248,120, - 120,120,120,120,120,120,120,120,120,120,120,252,8,21,21,8, - 1,0,56,56,124,110,131,0,0,252,60,60,60,60,60,60, - 60,60,60,60,60,60,254,8,20,20,9,1,0,102,255,255, - 102,0,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,12,21,42,14,1,0,60,64,31,128,15,0,15,0,55, - 128,3,128,3,192,31,192,49,224,113,224,112,224,240,224,240, - 240,240,240,240,240,240,224,240,224,112,224,113,192,49,192,15, - 0,13,19,38,16,2,1,30,64,63,192,35,128,0,0,0, - 0,251,192,124,224,120,224,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,253,248,12,21,42, - 14,1,0,48,0,56,0,56,0,12,0,6,0,2,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,1,128,1,192,3,128,3,0,6,0,4,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,6,0,14,0,15,0,27,0,48,128,32,64,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,20,40, - 14,1,0,28,64,63,192,71,128,0,0,0,0,0,0,15, - 0,49,128,112,192,112,224,240,224,240,224,240,240,240,240,240, - 224,240,224,112,224,112,192,49,128,15,0,12,20,40,14,1, - 0,49,128,123,192,123,192,49,128,0,0,0,0,15,0,49, - 128,112,192,112,224,240,224,240,224,240,240,240,240,240,224,240, - 224,112,224,112,192,49,128,15,0,24,19,57,26,1,254,0, - 24,0,0,60,0,0,60,0,0,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,0,0,0,24,0,0,60,0,0, - 60,0,0,60,0,0,24,0,12,14,28,14,1,0,15,16, - 49,160,113,192,112,224,241,224,243,224,242,240,244,240,248,224, - 240,224,112,224,112,192,121,128,143,0,14,21,42,15,0,0, - 24,0,28,0,12,0,6,0,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,60,248,29,120,14,124,14,21,42,15,0,0, - 0,192,0,192,1,192,1,128,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,21,42,15,0,0, - 3,0,7,0,7,128,12,128,24,64,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,20,40,15,0,0, - 24,192,61,224,61,224,24,192,0,0,0,0,253,248,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,29,120,14,124,13,28,56,15,1,249,0,192, - 0,192,1,192,3,128,2,0,0,0,0,0,252,248,120,32, - 56,32,60,64,28,64,28,64,30,64,14,128,15,128,7,128, - 7,0,7,0,3,0,3,0,2,0,2,0,50,0,124,0, - 116,0,116,0,56,0,13,26,52,15,1,250,28,0,124,0, - 188,0,60,0,60,0,60,0,60,240,63,120,60,120,60,120, - 60,120,60,120,60,112,60,112,60,96,60,192,60,128,61,0, - 62,0,60,0,60,0,60,0,60,0,60,0,48,0,192,0, - 13,27,54,15,1,249,24,96,60,240,60,240,24,96,0,0, - 0,0,254,120,120,48,56,32,60,32,28,32,30,64,30,64, - 14,64,15,128,7,128,7,128,7,0,3,0,3,0,1,0, - 2,0,50,0,122,0,116,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=27 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21n[723] U8G_FONT_SECTION("u8g_font_osb21n") = { - 0,77,36,232,248,21,0,0,0,0,42,58,0,22,250,21, - 0,11,12,24,14,2,9,14,0,14,0,78,192,228,224,245, - 192,14,0,14,0,245,192,228,192,78,192,14,0,14,0,24, - 25,75,26,1,252,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,255,255,255,255,255,255,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 5,10,10,7,1,251,112,248,248,248,120,8,16,16,32,192, - 7,3,3,11,2,6,254,254,254,4,4,4,8,2,0,96, - 240,240,96,9,27,54,13,2,250,1,128,1,128,1,128,3, - 0,3,0,3,0,2,0,6,0,6,0,6,0,12,0,12, - 0,12,0,24,0,24,0,24,0,16,0,48,0,48,0,48, - 0,96,0,96,0,96,0,192,0,192,0,192,0,128,0,14, - 21,42,16,1,1,15,192,24,96,56,112,56,112,120,120,120, - 120,248,120,248,124,248,124,248,124,248,124,248,124,248,124,248, - 124,248,120,120,120,120,120,56,112,56,112,24,96,15,192,9, - 21,42,16,3,0,6,0,14,0,30,0,254,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,255,128,12, - 21,42,16,2,1,63,192,97,224,96,224,224,240,224,240,240, - 240,248,240,121,224,49,224,3,192,7,128,14,0,28,0,48, - 16,96,16,64,16,192,16,255,240,255,224,143,224,135,192,13, - 21,42,16,2,1,63,192,96,224,96,224,224,240,240,240,248, - 240,120,240,112,240,0,224,1,192,31,0,0,224,0,240,0, - 112,112,120,248,120,248,120,240,120,224,112,96,240,59,192,13, - 21,42,16,1,0,1,192,1,192,3,192,3,192,7,192,7, - 192,15,192,27,192,27,192,51,192,35,192,99,192,67,192,195, - 192,255,248,3,192,3,192,3,192,3,192,3,192,31,248,13, - 21,42,16,2,0,96,224,127,192,127,128,127,0,120,0,64, - 0,64,0,64,0,79,0,113,224,64,240,64,240,0,248,0, - 248,112,248,248,248,248,248,240,240,224,240,97,224,59,192,13, - 21,42,16,2,1,15,224,24,32,56,48,48,240,112,240,112, - 240,240,96,240,0,240,0,247,128,248,224,240,112,240,112,240, - 112,240,120,112,120,112,112,112,112,48,112,56,96,13,192,11, - 21,42,16,3,0,156,64,190,96,255,32,255,32,199,224,129, - 160,128,64,128,64,0,128,0,128,1,0,3,0,7,0,6, - 0,14,0,14,0,30,0,30,0,30,0,30,0,30,0,14, - 21,42,16,2,1,31,192,48,32,96,48,96,16,224,16,240, - 16,248,32,254,32,127,192,63,192,31,240,31,248,99,248,64, - 248,192,60,192,24,192,24,192,24,96,16,112,48,31,192,13, - 21,42,16,2,1,31,128,48,192,112,96,112,112,240,112,240, - 112,240,120,240,120,240,120,112,120,112,120,56,248,15,120,0, - 120,0,120,56,112,120,112,120,96,112,224,96,192,63,128,4, - 14,14,8,2,0,96,240,240,240,96,0,0,0,0,0,96, - 240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 3 y=16 dx=31 dy= 0 ascent=23 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21r[4521] U8G_FONT_SECTION("u8g_font_osb21r") = { - 0,77,36,232,248,21,5,141,12,241,32,127,249,23,249,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 6 y=20 dx=36 dy= 0 ascent=34 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =34 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26[12640] U8G_FONT_SECTION("u8g_font_osb26") = { - 0,95,44,227,246,26,7,105,16,163,32,255,248,34,246,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,10,0,0,6,26,26,10,2,248,120,252,252,252,120,0, - 0,0,32,48,48,48,48,48,48,120,120,120,120,252,252,252, - 252,252,252,120,13,25,50,19,3,252,1,0,1,0,1,0, - 1,0,15,192,29,32,57,48,121,112,121,112,249,112,241,96, - 241,0,241,0,241,0,241,0,241,8,121,16,121,16,57,16, - 29,32,15,192,1,0,1,0,1,0,1,0,21,26,78,24, - 2,0,0,2,0,0,61,192,0,112,96,0,240,112,1,224, - 112,1,224,240,3,224,240,3,224,224,3,224,0,3,224,0, - 3,224,0,31,224,0,35,225,0,1,254,0,1,240,0,1, - 240,0,0,240,0,0,240,0,0,240,0,0,224,0,0,224, - 8,60,192,16,199,192,48,131,255,224,131,255,192,124,63,128, - 18,17,51,20,1,3,64,0,128,227,241,192,127,255,128,60, - 15,0,56,7,0,48,3,0,112,3,128,96,1,128,96,1, - 128,96,1,128,96,1,128,112,3,128,48,3,0,56,7,0, - 62,31,0,127,255,128,99,241,128,18,25,75,20,1,0,255, - 143,192,63,3,128,63,3,0,31,3,0,31,130,0,15,130, - 0,15,196,0,15,196,0,7,196,0,7,232,0,3,232,0, - 3,248,0,3,240,0,63,255,128,1,240,0,1,240,0,63, - 255,128,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,31,254,0,2,32,32,10,4,250, - 192,192,192,192,192,192,192,192,192,192,192,192,192,0,0,0, - 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 15,32,64,22,2,249,7,224,28,24,56,24,48,28,112,124, - 112,124,112,124,120,56,124,0,63,0,31,224,127,240,71,252, - 193,252,192,126,224,30,248,14,254,6,127,134,63,228,31,248, - 7,248,1,248,0,124,60,60,60,28,124,28,124,28,112,24, - 48,56,24,112,15,192,11,4,8,15,2,19,113,192,241,224, - 241,224,113,192,24,25,75,28,2,1,1,255,128,6,0,64, - 12,0,48,24,0,24,48,60,136,32,227,132,65,193,134,65, - 193,130,195,192,130,131,192,131,131,192,129,131,192,1,131,192, - 1,131,192,1,131,192,65,131,192,131,195,192,130,65,192,130, - 65,193,134,32,227,4,48,60,8,16,0,24,12,0,48,6, - 0,64,1,255,128,10,13,26,13,1,12,60,0,70,0,199, - 0,231,0,71,0,63,0,103,0,231,0,231,64,231,64,123, - 128,0,0,255,128,9,15,30,17,4,1,8,0,24,128,48, - 128,97,0,99,0,227,0,227,0,227,0,227,0,227,0,227, - 0,97,0,49,128,48,128,8,0,16,9,18,20,2,5,255, - 255,255,255,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,9,4,8,13,2,7,255,128,255,128,255,128,255,128,24, - 25,75,28,2,1,1,255,128,6,0,64,12,0,48,24,0, - 24,55,254,8,33,227,132,65,227,198,65,227,194,193,227,194, - 129,227,195,129,231,129,129,252,1,129,231,1,129,227,129,129, - 227,193,129,227,195,193,227,210,65,227,210,65,227,214,33,227, - 212,55,249,232,16,0,24,12,0,48,6,0,64,1,255,128, - 9,2,4,15,3,20,255,128,255,128,11,10,20,19,4,16, - 63,128,123,192,224,192,192,96,192,96,192,96,192,224,97,192, - 63,128,31,0,29,26,104,33,2,254,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,255,255,255,248,255,255,255,248,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,0,0,0,0,0,0,0,255,255,255,240,255,255, - 255,240,10,16,32,15,3,9,31,0,103,128,195,192,195,192, - 227,192,243,128,7,128,14,0,28,0,48,64,64,64,64,64, - 255,192,255,192,159,128,135,0,11,16,32,15,2,9,31,0, - 35,128,99,192,115,192,115,192,51,128,3,0,28,0,3,128, - 3,192,97,224,241,224,241,224,227,224,99,192,63,0,6,7, - 7,15,6,18,28,28,60,120,96,192,128,17,27,81,20,2, - 246,96,48,0,112,120,0,240,120,0,240,120,0,240,120,0, - 240,120,0,240,120,0,240,120,0,240,120,0,96,56,0,96, - 48,128,96,48,128,96,113,128,32,127,128,48,255,128,95,207, - 0,71,143,0,64,0,0,96,0,0,96,0,0,112,0,0, - 112,0,0,120,0,0,120,0,0,120,0,0,120,0,0,48, - 0,0,17,30,90,20,2,251,15,255,128,63,140,0,127,140, - 0,127,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 255,140,0,127,140,0,127,140,0,63,140,0,31,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,5,5,5,9,2,9,112,248,248,248,112,7,7,7, - 15,4,249,32,32,24,14,14,14,252,8,15,15,16,4,10, - 12,28,252,60,60,60,60,60,60,60,60,60,60,60,255,9, - 13,26,13,2,12,28,0,103,0,99,0,227,128,227,128,227, - 128,227,128,227,128,99,0,103,0,28,0,0,0,255,128,9, - 14,28,17,4,2,132,0,198,0,99,0,99,0,115,128,115, - 128,115,128,115,128,115,128,99,128,99,0,195,0,134,0,12, - 0,25,26,104,31,4,0,0,0,48,0,12,0,48,0,28, - 0,96,0,252,0,96,0,60,0,192,0,60,0,128,0,60, - 1,128,0,60,3,0,0,60,3,0,0,60,6,0,0,60, - 6,0,0,60,12,14,0,60,12,30,0,60,24,30,0,60, - 16,62,0,255,48,62,0,0,96,94,0,0,96,158,0,0, - 192,158,0,0,193,30,0,1,131,30,0,1,131,255,128,3, - 0,30,0,2,0,30,0,6,0,30,0,12,0,255,128,25, - 26,104,31,4,0,0,0,48,0,28,0,32,0,252,0,96, - 0,60,0,64,0,60,0,192,0,60,1,128,0,60,1,128, - 0,60,3,0,0,60,3,0,0,60,6,0,0,60,4,62, - 0,60,12,207,0,60,9,135,128,60,25,135,128,60,49,199, - 128,255,49,231,0,0,96,207,0,0,96,28,0,0,192,56, - 0,0,128,96,0,1,128,64,128,3,0,128,128,3,1,255, - 128,6,1,255,128,6,1,63,0,12,1,14,0,26,26,104, - 30,2,0,0,0,24,0,31,0,24,0,35,128,48,0,99, - 192,48,0,115,192,96,0,115,192,64,0,51,128,192,0,3, - 0,128,0,28,1,128,0,3,131,0,0,3,195,0,0,113, - 230,7,0,241,228,15,0,227,236,15,0,99,200,31,0,63, - 24,31,0,0,16,47,0,0,48,79,0,0,96,79,0,0, - 96,143,0,0,192,143,0,0,129,255,192,1,128,15,0,1, - 0,15,0,3,0,15,0,2,0,127,192,11,26,52,16,2, - 248,28,0,62,0,62,0,62,0,28,0,0,0,0,0,30, - 0,49,0,33,0,33,0,1,0,2,0,6,0,14,0,28, - 0,60,0,120,192,120,64,248,32,240,32,240,32,240,32,120, - 64,120,64,31,128,23,33,99,25,1,0,1,128,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,16,0,0,0,0, - 0,16,0,0,24,0,0,56,0,0,56,0,0,60,0,0, - 124,0,0,124,0,0,126,0,0,254,0,0,254,0,0,158, - 0,1,159,0,1,159,0,1,31,0,3,15,128,3,15,128, - 3,15,128,6,7,192,7,255,192,6,7,192,4,7,224,12, - 3,224,12,3,224,28,3,240,28,3,240,255,159,254,23,33, - 99,25,1,0,0,3,0,0,7,128,0,7,0,0,14,0, - 0,28,0,0,16,0,0,0,0,0,16,0,0,24,0,0, - 56,0,0,56,0,0,60,0,0,124,0,0,124,0,0,126, - 0,0,254,0,0,254,0,0,159,0,1,159,0,1,159,0, - 1,31,128,3,15,128,3,15,128,3,15,128,6,7,192,7, - 255,192,6,7,192,12,7,224,12,3,224,12,3,224,28,3, - 240,60,3,248,255,159,254,23,33,99,25,1,0,0,16,0, - 0,56,0,0,56,0,0,124,0,0,199,0,1,129,128,0, - 0,0,0,16,0,0,24,0,0,56,0,0,56,0,0,60, - 0,0,124,0,0,124,0,0,126,0,0,254,0,0,254,0, - 0,158,0,1,159,0,1,159,0,1,31,0,3,15,128,3, - 15,128,3,15,128,6,7,192,7,255,192,6,7,192,4,7, - 224,12,3,224,12,3,224,28,3,240,28,3,240,255,159,254, - 23,32,96,25,1,0,0,112,128,0,249,0,1,191,0,1, - 14,0,0,0,0,0,0,0,0,0,0,0,24,0,0,56, - 0,0,56,0,0,60,0,0,124,0,0,124,0,0,126,0, - 0,254,0,0,254,0,0,159,0,1,159,0,1,159,0,1, - 31,128,3,15,128,3,15,128,3,15,128,6,7,192,7,255, - 192,6,7,192,12,7,224,12,3,224,12,3,224,28,3,240, - 60,3,248,255,159,254,23,32,96,25,1,0,1,195,128,3, - 199,128,3,199,128,1,195,128,0,0,0,0,0,0,0,24, - 0,0,56,0,0,56,0,0,56,0,0,60,0,0,124,0, - 0,124,0,0,126,0,0,254,0,0,254,0,0,159,0,1, - 159,0,1,159,0,1,15,128,3,15,128,2,15,128,2,15, - 192,6,7,192,7,255,192,4,7,192,4,3,224,8,3,224, - 8,3,224,24,1,240,24,3,240,255,159,254,23,33,99,25, - 1,0,0,60,0,0,126,0,0,195,0,0,195,0,0,199, - 0,0,126,0,0,60,0,0,0,0,0,24,0,0,56,0, - 0,56,0,0,60,0,0,124,0,0,124,0,0,126,0,0, - 254,0,0,254,0,0,159,0,1,159,0,1,159,0,1,15, - 0,3,15,128,3,15,128,2,15,128,2,7,192,7,255,192, - 4,7,192,4,3,224,12,3,224,8,3,224,24,1,240,28, - 1,240,255,159,254,32,25,100,34,1,0,0,15,255,255,0, - 3,240,31,0,7,240,15,0,7,240,7,0,5,240,7,0, - 13,240,3,0,9,240,3,0,25,240,35,0,25,240,32,0, - 49,240,96,0,49,240,96,0,97,240,224,0,97,255,224,0, - 193,240,224,0,193,240,96,1,129,240,96,1,129,240,33,3, - 255,240,33,3,1,240,3,6,1,240,3,6,1,240,7,12, - 1,240,7,12,1,240,15,62,1,240,63,255,143,255,255,19, - 33,99,22,2,249,3,248,192,14,6,192,30,3,192,60,3, - 192,60,1,192,124,1,192,124,0,192,124,0,192,252,0,192, - 252,0,64,252,0,64,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,96,124,0,64,124,0,64,124,0, - 64,60,0,192,62,0,128,30,1,0,15,2,0,3,156,0, - 0,224,0,0,128,0,0,240,0,0,56,0,0,56,0,0, - 56,0,2,48,0,1,224,0,20,33,99,23,2,0,3,0, - 0,7,128,0,3,128,0,1,192,0,0,224,0,0,32,0, - 0,0,0,0,0,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,33,99,23,2,0,0,6,0,0,14,0,0,30,0, - 0,28,0,0,48,0,0,96,0,0,0,0,0,0,0,255, - 255,224,31,1,224,31,0,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,4,32,31,4,0,31,12,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,12,48,31, - 4,48,31,4,48,31,0,48,31,0,112,31,0,112,31,0, - 240,31,0,240,31,3,240,255,255,240,20,33,99,23,2,0, - 0,32,0,0,96,0,0,240,0,1,248,0,3,140,0,6, - 3,0,0,0,0,0,0,0,255,255,224,31,1,224,31,0, - 224,31,0,224,31,0,96,31,0,96,31,0,32,31,4,32, - 31,4,0,31,12,0,31,12,0,31,28,0,31,252,0,31, - 28,0,31,12,0,31,12,48,31,4,48,31,4,48,31,0, - 48,31,0,112,31,0,112,31,0,240,31,1,240,31,3,240, - 255,255,240,20,32,96,23,2,0,7,14,0,7,143,0,7, - 143,0,7,14,0,0,0,0,0,0,0,0,0,0,255,255, - 224,31,1,224,31,0,224,31,0,224,31,0,96,31,0,96, - 31,0,32,31,4,32,31,4,0,31,12,0,31,12,0,31, - 28,0,31,252,0,31,28,0,31,12,0,31,12,48,31,4, - 48,31,4,48,31,0,48,31,0,112,31,0,112,31,0,240, - 31,0,240,31,3,240,255,255,240,11,33,66,14,2,0,96, - 0,112,0,120,0,56,0,28,0,4,0,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,33,66,14,2,0,0,192,1,192,3,192,3,128,7, - 0,4,0,0,0,0,0,255,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,255,224,11,33,66,14,2,0,4, - 0,14,0,14,0,31,0,113,128,192,96,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,32,64,15,2,0,112,224,241,224,241,224,112,224,0, - 0,0,0,0,0,255,224,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,255,224,23,25,75,27,2,0,255,255,0, - 31,3,192,31,0,224,31,0,240,31,0,120,31,0,120,31, - 0,124,31,0,124,31,0,126,31,0,126,31,0,126,255,224, - 126,31,0,126,31,0,126,31,0,126,31,0,126,31,0,124, - 31,0,124,31,0,124,31,0,120,31,0,120,31,0,240,31, - 0,224,31,3,192,255,255,0,24,32,96,27,2,0,0,112, - 64,0,252,192,0,159,128,0,135,0,0,0,0,0,0,0, - 0,0,0,255,3,255,31,128,124,31,128,56,15,192,16,7, - 224,16,7,240,16,7,240,16,5,248,16,5,252,16,4,252, - 16,4,126,16,4,127,16,4,63,16,4,31,144,4,31,208, - 4,15,208,4,7,240,4,7,240,4,3,240,4,1,240,4, - 1,240,4,0,240,14,0,112,31,0,48,255,192,48,20,33, - 99,24,2,1,7,0,0,7,128,0,3,128,0,1,192,0, - 0,192,0,0,96,0,0,0,0,0,0,0,3,252,0,6, - 6,0,14,7,0,28,3,128,60,3,192,60,3,192,124,3, - 224,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,124,3,224,124, - 3,224,124,3,224,60,3,192,60,3,192,28,3,128,14,7, - 0,6,6,0,3,252,0,20,33,99,24,2,1,0,14,0, - 0,30,0,0,28,0,0,56,0,0,48,0,0,96,0,0, - 0,0,0,0,0,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,224,124,3,224,124,3,224,60,3, - 192,60,3,192,28,3,128,14,7,0,6,6,0,3,252,0, - 20,33,99,24,2,0,0,96,0,0,96,0,0,240,0,1, - 248,0,3,156,0,6,6,0,0,0,0,0,0,0,3,252, - 0,6,6,0,14,7,0,28,3,128,60,3,192,60,3,192, - 124,3,224,124,3,224,124,3,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 224,124,3,224,124,3,224,60,3,192,60,3,192,28,3,128, - 14,7,0,6,6,0,3,252,0,20,32,96,24,2,0,1, - 194,0,3,230,0,6,124,0,4,56,0,0,0,0,0,0, - 0,0,0,0,3,252,0,6,6,0,14,7,0,28,3,128, - 60,3,192,60,3,192,124,3,224,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,124,3,224,60,3,192, - 60,3,192,28,3,128,14,7,0,6,6,0,3,252,0,20, - 32,96,24,2,0,7,14,0,7,143,0,7,143,0,7,14, - 0,0,0,0,0,0,0,0,0,0,3,252,0,6,6,0, - 14,7,0,28,3,128,60,3,192,60,3,192,124,3,224,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,124,3,224,124,3,224, - 124,3,224,60,3,192,60,3,192,28,3,128,14,7,0,6, - 6,0,3,252,0,22,23,69,32,5,254,64,0,8,224,0, - 28,240,0,60,120,0,120,56,0,240,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,224,0,28,64,0,8, - 20,25,75,24,2,1,3,252,48,6,6,96,14,3,192,28, - 3,128,60,3,192,60,3,192,124,3,224,124,7,224,124,15, - 224,252,11,240,252,19,240,252,35,240,252,99,240,252,67,240, - 252,131,240,253,3,240,127,3,224,126,3,224,124,3,224,60, - 3,192,60,3,192,28,3,128,60,7,0,102,6,0,195,252, - 0,23,33,99,26,2,1,1,192,0,1,224,0,0,224,0, - 0,112,0,0,56,0,0,8,0,0,0,0,0,0,0,255, - 225,254,31,0,120,31,0,48,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,15,0,32,15,0, - 32,7,128,64,3,192,192,1,255,0,23,33,99,26,2,1, - 0,3,128,0,3,128,0,7,128,0,14,0,0,12,0,0, - 24,0,0,0,0,0,0,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,23,33,99,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,227,0,1,128,192,0,0,0,0,0, - 0,255,225,254,31,0,120,31,0,48,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,15,0,48, - 15,128,32,7,128,64,3,192,192,1,255,0,23,32,96,26, - 2,0,1,195,128,1,227,192,1,227,192,1,195,128,0,0, - 0,0,0,0,0,0,0,255,225,254,31,0,120,31,0,48, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,15,0,32,15,0,32,7,128,64,3,192,192,1, - 255,0,23,33,99,26,2,0,0,1,128,0,3,128,0,7, - 128,0,7,0,0,12,0,0,8,0,0,0,0,0,0,0, - 255,225,254,31,128,112,31,128,96,15,128,96,15,192,64,7, - 192,192,7,224,192,7,224,128,3,225,128,3,241,0,1,241, - 0,1,251,0,0,250,0,0,254,0,0,252,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,3,255,128,20,25,75,24,2, - 0,255,240,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,254,0,31,7,128,31,3,192,31,1,224,31,1,240,31, - 1,240,31,1,240,31,1,240,31,1,240,31,1,224,31,3, - 192,31,7,128,31,254,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,255,240,0,16,25,50,19, - 1,0,3,224,6,120,14,60,30,60,28,60,60,60,60,60, - 60,56,60,112,61,192,60,48,60,28,60,30,60,30,60,15, - 60,15,60,15,60,15,60,15,60,15,61,207,63,222,63,158, - 61,156,252,248,15,25,50,18,2,0,48,0,56,0,60,0, - 28,0,14,0,2,0,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,48,240,3,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,25,50,18, - 2,0,0,224,0,224,1,224,1,192,3,0,6,0,4,0, - 0,0,15,128,49,224,96,240,112,240,120,240,120,240,32,240, - 7,240,28,240,56,240,120,240,240,240,240,242,240,242,240,242, - 121,252,62,120,15,25,50,18,2,0,7,0,7,0,15,0, - 13,128,24,192,112,96,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,32,240,7,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,24,48,18, - 2,0,28,32,63,32,103,224,65,192,0,0,0,0,0,0, - 15,128,49,224,96,240,112,240,120,240,120,240,48,240,7,240, - 28,240,56,240,120,240,240,240,240,242,240,242,240,242,121,252, - 62,120,15,24,48,18,2,0,112,224,120,240,120,240,112,224, - 0,0,0,0,0,0,15,128,49,224,96,240,112,240,120,240, - 120,240,32,240,7,240,28,240,56,240,120,240,240,240,240,242, - 240,242,240,242,121,252,62,120,15,25,50,18,2,1,15,128, - 25,192,16,192,16,192,24,192,15,128,7,0,0,0,15,128, - 49,224,96,240,112,240,120,240,120,240,32,240,7,240,24,240, - 56,240,112,240,240,240,240,242,240,242,240,242,121,252,62,120, - 21,17,51,25,2,0,31,143,128,49,248,224,96,248,240,112, - 248,112,120,248,120,120,240,120,48,240,120,3,240,120,28,255, - 248,56,240,0,120,240,0,240,240,8,240,248,8,240,248,8, - 240,248,16,121,188,48,62,15,192,13,24,48,16,2,249,7, - 128,28,96,56,32,120,112,120,240,248,240,240,224,240,64,240, - 0,240,0,240,0,240,8,120,16,120,16,56,16,28,32,15, - 192,2,0,4,0,3,128,1,192,1,192,17,192,15,128,13, - 25,50,17,2,0,48,0,56,0,60,0,28,0,6,0,3, - 0,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,25,50,17,2,0,0,96,0, - 224,1,224,1,192,3,128,6,0,0,0,0,0,7,128,24, - 224,56,240,120,240,120,240,240,120,240,120,240,120,255,248,240, - 0,240,0,240,8,120,8,120,24,56,16,28,32,7,192,13, - 25,50,17,2,0,7,0,7,0,15,128,13,128,24,192,48, - 112,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,24,48,17,2,0,56,224,120, - 240,120,240,56,224,0,0,0,0,0,0,7,128,24,224,56, - 240,120,240,120,240,240,120,240,120,240,120,255,248,240,0,240, - 0,240,8,120,8,120,24,56,16,28,32,7,192,8,25,25, - 10,1,0,192,224,240,112,24,12,0,0,252,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,255,8,25,25,10, - 1,0,3,7,7,14,28,16,0,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,10,25,50,10,0, - 0,28,0,30,0,30,0,55,0,97,128,192,192,0,0,0, - 0,126,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,127,128,10,24,48,11,1,0,115,128,243,192,243,192,115, - 128,0,0,0,0,0,0,126,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,127,128,14,25,50,18,2,0,30, - 48,15,96,15,128,7,128,15,192,49,224,1,224,0,240,15, - 248,28,248,56,120,120,120,120,124,240,124,240,60,240,60,240, - 60,240,60,240,60,240,124,120,120,120,120,56,112,28,224,7, - 192,17,23,69,19,1,1,7,136,0,15,248,0,16,240,0, - 0,0,0,0,0,0,0,0,0,252,120,0,61,188,0,61, - 28,0,62,30,0,62,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,255,127,128,14,25,50,18, - 2,0,24,0,60,0,28,0,14,0,7,0,3,0,0,0, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,25,50,18,2,0,0,96,0,240,0,224, - 1,192,3,128,3,0,0,0,0,0,7,128,28,224,56,112, - 120,120,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,120,120,56,112,24,224,7,128,14,25,50,18, - 2,0,3,0,7,128,7,128,15,192,28,224,48,48,32,16, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,24,48,18,2,0,14,16,31,144,39,224, - 33,224,0,0,0,0,0,0,7,128,28,224,56,112,120,120, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,120,120,56,112,24,224,7,128,14,24,48,18,2,0, - 56,112,60,240,60,240,56,112,0,0,0,0,0,0,7,128, - 28,224,56,112,120,120,120,120,240,60,240,60,240,60,240,60, - 240,60,240,60,240,60,120,120,120,120,56,112,24,224,7,128, - 29,23,92,31,1,254,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,248,255,255,255,248,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7, - 0,0,0,15,128,0,0,15,128,0,0,15,128,0,0,7, - 0,0,14,17,34,18,2,0,7,132,24,232,56,120,120,120, - 120,120,240,124,240,188,241,188,243,60,246,60,244,60,248,60, - 120,120,120,120,120,112,92,96,135,128,17,25,75,19,1,0, - 12,0,0,30,0,0,14,0,0,7,0,0,3,0,0,0, - 128,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,25,75,19,1, - 0,0,48,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,0,0,0,0,0,0,0,0,252,126,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,62,0,60,62,0, - 60,62,0,60,94,0,30,158,0,15,31,128,17,25,75,19, - 1,0,1,128,0,3,192,0,3,192,0,7,224,0,12,48, - 0,24,24,0,0,0,0,0,0,0,252,126,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,62,0,60,62, - 0,60,62,0,60,94,0,30,158,0,15,31,128,17,24,72, - 19,1,0,28,112,0,30,120,0,30,120,0,28,112,0,0, - 0,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,33,99,18,0, - 248,0,28,0,0,28,0,0,60,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,255,159,128,62,6,0,30, - 4,0,31,4,0,15,4,0,15,8,0,15,136,0,7,136, - 0,7,152,0,3,208,0,3,208,0,3,240,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 64,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,15,32,64,18,1,247,12,0,28,0,124,0, - 188,0,60,0,60,0,60,0,60,120,60,252,61,30,63,30, - 62,30,62,30,62,30,60,30,60,28,60,28,60,56,60,56, - 60,48,60,96,60,192,61,0,62,0,60,0,60,0,60,0, - 60,0,60,0,60,0,48,0,192,0,17,32,96,18,0,248, - 14,28,0,15,60,0,15,60,0,14,28,0,0,0,0,0, - 0,0,0,0,0,255,159,128,62,6,0,30,4,0,30,4, - 0,15,8,0,15,8,0,15,8,0,7,136,0,7,144,0, - 3,208,0,3,208,0,3,224,0,1,224,0,1,224,0,0, - 224,0,0,192,0,0,192,0,0,64,0,0,128,0,28,128, - 0,60,128,0,61,0,0,57,0,0,59,0,0,30,0,0 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=29 h=33 x= 4 y=11 dx=31 dy= 0 ascent=26 len=120 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26n[903] U8G_FONT_SECTION("u8g_font_osb26n") = { - 0,95,44,227,246,25,0,0,0,0,42,58,0,26,249,25, - 0,12,14,28,17,3,11,14,0,14,0,14,0,196,112,228, - 240,245,224,14,0,14,0,245,224,228,240,196,112,14,0,14, - 0,14,0,29,30,120,31,1,251,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,255,255,255,248,255,255,255,248,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,7,11,11,10,2,249,120,252,254,254,126,6,4,12,8, - 48,224,9,4,8,13,2,7,255,128,255,128,255,128,255,128, - 5,5,5,9,2,0,112,248,248,248,112,12,33,66,15,2, - 249,0,112,0,96,0,96,0,224,0,192,0,192,1,192,1, - 192,1,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,56, - 0,56,0,48,0,48,0,112,0,96,0,96,0,224,0,192, - 0,192,0,16,25,50,20,2,1,7,224,14,112,28,56,60, - 60,60,60,124,62,124,62,124,62,252,63,252,63,252,63,252, - 63,252,63,252,63,252,63,252,63,252,63,124,62,124,62,124, - 62,60,60,60,60,28,56,14,112,7,224,12,25,50,20,4, - 0,7,0,7,0,31,0,255,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,255,240,15,25,50,20,2,1,31,240,48,120,96,60,96, - 62,224,62,240,62,248,62,252,62,124,124,56,124,0,248,1, - 240,1,224,3,128,7,0,12,2,24,2,48,2,32,2,76, - 6,127,254,127,252,71,252,67,252,65,248,15,26,52,20,2, - 0,1,0,14,240,56,120,48,60,112,62,120,62,124,62,124, - 62,60,62,24,60,0,120,0,112,31,192,0,240,0,120,0, - 60,0,60,56,62,124,62,252,62,252,62,248,62,224,60,96, - 124,96,120,31,224,16,25,50,20,2,0,0,120,0,120,0, - 248,1,248,1,248,3,248,3,248,6,248,6,248,12,248,12, - 248,24,248,56,248,48,248,96,248,96,248,192,248,255,255,0, - 248,0,248,0,248,0,248,0,248,0,248,15,255,15,26,52, - 20,3,0,0,8,48,56,63,240,63,224,63,128,62,0,32, - 0,32,0,32,0,32,0,39,192,56,112,48,120,32,60,32, - 60,0,62,0,62,56,62,120,62,252,62,248,62,248,60,224, - 60,96,120,112,112,31,224,16,25,50,20,2,1,7,240,12, - 8,28,12,56,60,56,124,120,124,120,120,120,48,248,0,248, - 0,251,224,252,56,252,60,248,30,248,31,248,31,248,31,248, - 31,120,31,120,31,120,31,56,30,28,30,12,60,7,240,15, - 25,50,20,3,0,79,28,95,156,127,198,127,230,127,254,224, - 246,192,4,192,12,128,12,128,24,0,16,0,48,0,96,0, - 224,1,192,1,192,3,192,7,128,7,128,15,128,15,128,15, - 128,15,128,15,128,7,0,17,25,75,20,2,1,7,240,0, - 24,12,0,48,12,0,48,6,0,112,6,0,112,6,0,120, - 6,0,124,4,0,127,12,0,127,152,0,63,224,0,31,248, - 0,15,252,0,15,254,0,49,255,0,96,127,0,64,31,0, - 192,15,128,192,7,0,192,7,0,192,3,0,96,6,0,96, - 6,0,56,12,0,14,240,0,15,25,50,20,2,1,31,192, - 60,112,120,48,120,56,248,60,248,60,248,60,248,62,248,62, - 248,62,248,62,120,62,124,126,60,126,15,190,0,62,0,62, - 12,60,30,60,62,60,62,56,60,56,48,112,16,96,15,192, - 5,17,17,9,2,0,112,248,248,248,112,0,0,0,0,0, - 0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 4 y=18 dx=36 dy= 0 ascent=28 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26r[5950] U8G_FONT_SECTION("u8g_font_osb26r") = { - 0,95,44,227,246,26,7,105,16,163,32,127,248,28,248,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 7 y=23 dx=41 dy= 0 ascent=38 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29[15818] U8G_FONT_SECTION("u8g_font_osb29") = { - 0,107,49,223,245,29,9,166,21,115,32,255,247,38,245,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,11,0,0,6, - 29,29,10,2,247,120,252,252,252,252,120,0,0,32,48,48, - 48,48,48,48,48,112,120,120,120,120,252,252,252,252,252,252, - 120,120,14,28,56,22,4,251,1,128,1,128,1,128,1,128, - 3,192,15,176,29,152,61,152,121,184,121,184,249,184,249,184, - 249,128,249,128,249,128,249,128,249,128,249,132,121,132,121,132, - 61,136,29,152,15,176,3,192,1,128,1,128,1,128,1,128, - 23,29,87,27,2,0,0,1,0,0,30,224,0,120,16,0, - 248,24,0,240,28,1,240,60,1,240,124,3,240,124,3,240, - 120,3,240,0,3,240,0,3,240,0,3,240,0,31,240,64, - 1,255,128,1,248,0,0,248,0,0,248,0,0,248,0,0, - 120,0,0,120,0,0,112,0,0,112,6,60,112,4,127,224, - 28,131,255,248,129,255,240,195,63,224,124,31,192,18,20,60, - 21,2,3,0,0,128,195,225,128,239,249,192,255,255,128,120, - 15,0,112,7,0,96,3,0,224,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,128,96,3,0,112,7,0, - 120,15,0,255,255,128,239,249,192,195,225,128,0,0,128,21, - 28,84,23,1,0,255,195,248,63,0,224,63,0,192,31,128, - 192,31,128,128,31,192,128,15,193,0,15,193,0,7,227,0, - 7,226,0,7,246,0,3,244,0,3,252,0,1,248,0,63, - 255,192,1,248,0,1,248,0,1,248,0,63,255,192,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,15,255,128,3,35,35,11,4,249,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,17,36,108,24,2,248,1,240,0,6,12,0,12,6, - 0,24,7,0,56,31,0,56,63,0,56,63,0,56,62,0, - 60,28,0,63,0,0,63,192,0,31,224,0,63,248,0,103, - 254,0,67,255,0,192,255,0,192,63,128,224,15,128,248,3, - 128,254,1,128,127,129,128,127,225,0,63,249,0,15,254,0, - 3,254,0,0,254,0,0,63,0,14,15,0,31,7,0,63, - 7,0,63,7,0,62,7,0,56,6,0,24,12,0,12,24, - 0,7,240,0,12,5,10,16,2,22,112,224,249,240,249,240, - 249,240,112,224,28,28,112,32,2,1,0,127,224,0,1,128, - 24,0,6,0,12,0,12,0,3,0,24,0,1,0,16,30, - 33,128,48,113,160,192,96,224,224,64,97,224,96,96,97,224, - 96,96,193,224,32,32,195,224,32,48,195,224,32,48,195,224, - 0,48,195,224,0,48,195,224,0,48,195,224,16,48,193,224, - 16,32,65,224,48,96,97,224,32,96,96,240,96,64,48,112, - 192,192,16,31,1,128,24,0,1,0,12,0,3,0,6,0, - 12,0,1,128,24,0,0,127,224,0,11,14,28,15,2,14, - 30,0,35,0,99,128,115,128,115,128,15,128,51,128,99,128, - 227,128,227,160,227,160,125,192,0,0,255,224,10,16,32,18, - 4,1,24,64,48,192,112,128,97,128,225,128,227,128,227,128, - 227,128,227,128,227,128,227,128,97,128,97,128,48,192,24,64, - 8,0,19,11,33,22,2,5,255,255,224,255,255,224,255,255, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,10,4,8,14,2,8,255, - 192,255,192,255,192,255,192,28,28,112,32,2,1,0,127,224, - 0,1,128,24,0,6,0,12,0,12,0,3,0,24,0,1, - 0,19,255,193,128,48,249,224,192,96,248,240,64,96,248,248, - 96,96,248,248,96,192,248,248,32,192,248,240,48,192,249,224, - 48,192,254,0,48,192,249,192,48,192,249,224,48,192,249,240, - 48,192,249,240,32,64,249,242,96,96,249,242,96,96,249,242, - 64,48,249,246,192,19,254,253,128,24,0,121,0,12,0,3, - 0,6,0,12,0,1,128,24,0,0,127,224,0,10,3,6, - 16,3,23,255,192,255,192,255,192,12,11,22,22,5,18,31, - 128,127,224,112,96,224,48,192,48,192,48,192,48,224,112,112, - 224,63,192,31,128,32,29,116,36,2,254,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,255,255,255,255,255,255,255,255,255,255,255,255,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,11, - 17,34,17,3,11,31,0,99,192,225,224,225,224,241,224,241, - 224,115,192,7,128,14,0,28,0,48,32,96,32,64,96,255, - 224,255,224,143,192,135,128,12,18,36,16,2,10,31,0,51, - 192,97,224,113,224,121,224,121,224,1,192,3,128,30,0,3, - 192,1,224,1,240,121,240,249,240,241,240,225,224,99,192,31, - 0,7,7,7,17,7,21,14,30,30,60,120,96,192,19,30, - 90,22,2,245,112,28,0,112,28,0,248,62,0,248,62,0, - 248,62,0,248,62,0,248,62,0,240,62,0,240,62,0,240, - 62,0,112,28,0,112,28,0,96,28,32,96,24,32,32,56, - 96,32,127,224,61,255,192,47,231,192,39,195,192,32,0,0, - 32,0,0,112,0,0,112,0,0,120,0,0,120,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,56,0,0,18,33, - 99,23,3,251,15,255,192,63,206,0,127,206,0,127,206,0, - 255,206,0,255,206,0,255,206,0,255,206,0,255,206,0,255, - 206,0,255,206,0,255,206,0,127,206,0,63,206,0,7,206, - 0,1,206,0,1,206,0,1,206,0,1,206,0,1,206,0, - 1,206,0,1,206,0,1,206,0,1,206,0,1,206,0,1, - 206,0,1,206,0,1,206,0,1,206,0,1,206,0,1,206, - 0,1,206,0,1,206,0,6,6,6,10,2,10,120,252,252, - 252,252,120,7,8,8,17,5,248,32,32,56,12,14,14,14, - 252,8,17,17,16,4,11,12,28,252,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,10,14,28,14,2,14,30,0, - 51,0,115,128,243,192,243,192,243,192,243,192,243,192,243,192, - 115,128,51,0,30,0,0,0,255,192,10,16,32,18,4,1, - 6,0,131,0,195,0,97,128,97,128,113,192,113,192,113,192, - 113,192,113,192,97,192,97,128,65,128,195,0,134,0,4,0, - 28,29,116,34,4,0,0,0,12,0,12,0,12,0,28,0, - 24,0,252,0,24,0,60,0,48,0,60,0,32,0,60,0, - 96,0,60,0,192,0,60,0,192,0,60,1,128,0,60,1, - 128,0,60,3,0,0,60,2,3,128,60,6,3,128,60,12, - 7,128,60,12,15,128,60,24,15,128,255,24,31,128,0,48, - 23,128,0,32,39,128,0,96,103,128,0,192,71,128,0,192, - 199,128,1,128,255,240,1,128,7,128,3,0,7,128,2,0, - 7,128,6,0,7,128,12,0,63,240,27,29,116,34,4,0, - 0,0,12,0,12,0,24,0,28,0,24,0,252,0,48,0, - 60,0,48,0,60,0,96,0,60,0,96,0,60,0,192,0, - 60,1,128,0,60,1,128,0,60,3,0,0,60,3,31,0, - 60,6,115,192,60,6,225,224,60,12,225,224,60,8,241,224, - 255,24,241,224,0,48,115,192,0,48,3,128,0,96,7,0, - 0,96,14,0,0,192,24,0,0,128,48,32,1,128,64,32, - 3,0,64,96,3,0,191,224,6,0,255,224,6,0,159,192, - 12,0,135,128,30,29,116,34,2,0,0,0,3,0,31,0, - 3,0,51,192,6,0,97,224,4,0,113,224,12,0,121,224, - 8,0,121,224,24,0,1,192,48,0,3,128,48,0,30,0, - 96,0,3,192,64,0,1,224,192,0,49,240,128,224,249,241, - 128,224,249,243,1,224,225,226,3,224,99,230,3,224,63,132, - 5,224,0,12,5,224,0,8,9,224,0,16,25,224,0,48, - 17,224,0,32,49,224,0,96,63,252,0,64,1,224,0,192, - 1,224,0,128,1,224,1,0,1,224,3,0,15,252,12,29, - 58,18,3,247,30,0,63,0,63,0,63,0,63,0,30,0, - 0,0,14,0,17,0,32,128,32,128,32,128,1,128,3,0, - 3,0,6,0,14,0,28,0,60,96,120,32,120,48,248,16, - 248,16,248,16,248,16,248,48,124,96,63,192,31,128,26,37, - 148,29,2,0,0,224,0,0,0,240,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,12,0,0,0,6,0,0, - 0,0,0,0,0,4,0,0,0,6,0,0,0,14,0,0, - 0,14,0,0,0,15,0,0,0,31,0,0,0,31,0,0, - 0,31,128,0,0,63,128,0,0,47,128,0,0,47,192,0, - 0,111,192,0,0,79,192,0,0,71,192,0,0,199,224,0, - 0,135,224,0,0,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,252,0,12,0,124,0, - 30,0,254,0,255,199,255,192,26,37,148,29,2,0,0,0, - 224,0,0,0,224,0,0,1,224,0,0,3,192,0,0,3, - 128,0,0,6,0,0,0,12,0,0,0,0,0,0,0,4, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,37,148,29,2,0,0,4,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,59,128,0,0,224,192,0, - 1,128,48,0,0,0,0,0,0,4,0,0,0,6,0,0, - 0,14,0,0,0,14,0,0,0,15,0,0,0,31,0,0, - 0,31,0,0,0,31,128,0,0,63,128,0,0,47,128,0, - 0,47,192,0,0,111,192,0,0,79,192,0,0,71,192,0, - 0,199,224,0,0,135,224,0,0,131,224,0,1,131,240,0, - 1,3,240,0,3,1,240,0,3,255,248,0,2,1,248,0, - 6,0,248,0,6,0,252,0,4,0,252,0,12,0,252,0, - 12,0,124,0,30,0,254,0,255,199,255,192,26,36,144,29, - 2,0,0,56,32,0,0,126,32,0,0,255,224,0,0,143, - 192,0,0,131,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,36,144,29,2,0,0,224,224,0,1,241,240,0, - 1,241,240,0,1,241,240,0,0,224,224,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,14,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,31,0,0,0,31,0,0, - 0,63,128,0,0,63,128,0,0,63,128,0,0,111,192,0, - 0,111,192,0,0,79,192,0,0,199,192,0,0,199,224,0, - 0,135,224,0,1,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,124,0,12,0,124,0, - 30,0,126,0,255,199,255,192,26,37,148,29,2,0,0,31, - 0,0,0,63,128,0,0,97,192,0,0,96,192,0,0,96, - 192,0,0,113,192,0,0,63,128,0,0,30,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,31,128,0,0,63, - 128,0,0,63,128,0,0,47,128,0,0,111,192,0,0,79, - 192,0,0,71,192,0,0,135,224,0,0,135,224,0,0,131, - 224,0,1,3,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,4,0,252,0,4,0, - 252,0,12,0,252,0,12,0,124,0,28,0,254,0,255,199, - 255,192,36,28,140,38,1,0,0,7,255,255,224,0,1,254, - 3,224,0,1,254,1,224,0,1,254,0,224,0,1,254,0, - 224,0,3,126,0,96,0,3,126,0,96,0,6,126,0,32, - 0,6,126,4,32,0,12,126,4,0,0,12,126,12,0,0, - 24,126,12,0,0,24,126,28,0,0,48,127,252,0,0,48, - 126,60,0,0,96,126,28,0,0,96,126,12,0,0,192,126, - 4,48,0,192,126,4,48,1,255,254,4,48,1,128,126,0, - 48,3,0,126,0,112,3,0,126,0,112,6,0,126,0,240, - 6,0,126,0,240,14,0,126,1,240,63,0,126,7,240,255, - 199,255,255,240,21,37,111,26,3,248,1,254,48,7,3,48, - 14,1,240,30,0,240,60,0,240,60,0,112,124,0,112,124, - 0,48,124,0,48,252,0,48,252,0,48,252,0,16,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,24, - 252,0,24,124,0,16,124,0,16,124,0,16,60,0,48,60, - 0,32,30,0,96,14,0,192,7,1,128,1,254,0,0,32, - 0,0,96,0,0,120,0,0,28,0,0,14,0,0,14,0, - 0,14,0,2,28,0,1,248,0,22,37,111,26,2,0,1, - 128,0,1,192,0,1,224,0,0,224,0,0,112,0,0,24, - 0,0,8,0,0,0,0,0,0,0,255,255,252,15,192,124, - 15,192,60,15,192,28,15,192,28,15,192,12,15,192,12,15, - 192,12,15,193,4,15,193,0,15,195,0,15,195,0,15,199, - 0,15,255,0,15,199,0,15,195,0,15,195,0,15,193,4, - 15,193,4,15,193,4,15,192,12,15,192,12,15,192,12,15, - 192,28,15,192,28,15,192,60,15,192,252,255,255,252,22,37, - 111,26,2,0,0,1,192,0,3,192,0,3,192,0,7,128, - 0,14,0,0,12,0,0,24,0,0,0,0,0,0,0,255, - 255,252,15,192,124,15,192,60,15,192,28,15,192,28,15,192, - 12,15,192,12,15,192,4,15,193,4,15,193,0,15,195,0, - 15,195,0,15,199,0,15,255,0,15,199,0,15,195,0,15, - 195,0,15,193,4,15,193,4,15,193,4,15,192,4,15,192, - 12,15,192,12,15,192,28,15,192,28,15,192,60,15,192,252, - 255,255,252,22,37,111,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,231,0,1,193,128,3,0,64,0,0, - 0,0,0,0,255,255,252,15,192,124,15,192,60,15,192,28, - 15,192,28,15,192,12,15,192,12,15,192,12,15,193,4,15, - 193,0,15,195,0,15,195,0,15,199,0,15,255,0,15,199, - 0,15,195,0,15,195,0,15,193,4,15,193,4,15,193,4, - 15,192,12,15,192,12,15,192,12,15,192,28,15,192,28,15, - 192,60,15,192,252,255,255,252,22,36,108,26,2,0,1,193, - 192,3,227,224,3,227,224,3,227,224,1,193,192,0,0,0, - 0,0,0,0,0,0,255,255,252,15,192,124,15,192,60,15, - 192,28,15,192,28,15,192,12,15,192,12,15,192,4,15,193, - 4,15,193,0,15,195,0,15,195,0,15,199,0,15,255,0, - 15,199,0,15,195,0,15,195,0,15,193,4,15,193,4,15, - 193,4,15,192,4,15,192,12,15,192,12,15,192,28,15,192, - 28,15,192,60,15,192,252,255,255,252,13,37,74,17,2,0, - 96,0,112,0,120,0,56,0,28,0,14,0,2,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 0,112,0,240,1,240,1,224,3,128,7,0,4,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 6,0,6,0,15,0,31,128,57,192,112,112,192,24,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,36,72,16,2,0, - 112,112,248,248,248,248,248,248,112,112,0,0,0,0,0,0, - 255,248,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,248,25,28,112,29,2,0,255,255, - 128,0,31,128,224,0,31,128,112,0,31,128,56,0,31,128, - 60,0,31,128,30,0,31,128,30,0,31,128,31,0,31,128, - 31,0,31,128,31,0,31,128,31,128,31,128,31,128,31,128, - 31,128,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,30,0,31,128,30,0,31,128,60,0,31,128, - 56,0,31,128,112,0,31,128,224,0,255,255,128,0,27,36, - 144,30,2,0,0,24,0,0,0,62,32,0,0,127,224,0, - 0,71,192,0,0,1,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,128,255,224,31,192,63,0,31,192,30,0, - 15,224,12,0,7,240,12,0,7,240,12,0,7,248,12,0, - 7,248,12,0,6,252,12,0,6,254,12,0,6,126,12,0, - 6,63,12,0,6,63,140,0,6,31,140,0,6,31,204,0, - 6,15,236,0,6,7,236,0,6,7,252,0,6,3,252,0, - 6,1,252,0,6,1,252,0,6,0,252,0,6,0,252,0, - 6,0,124,0,6,0,60,0,15,0,60,0,31,128,28,0, - 255,224,12,0,22,37,111,27,3,1,7,128,0,7,128,0, - 3,192,0,1,192,0,0,224,0,0,112,0,0,16,0,0, - 0,0,0,0,0,1,254,0,3,3,0,6,1,128,14,1, - 192,28,0,224,60,0,240,60,0,240,124,0,248,124,0,248, - 124,0,248,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,124,0,248,60,0,240,60,0,240,28,0,224,14,1,192, - 6,1,128,3,3,0,1,254,0,22,37,111,27,3,1,0, - 7,128,0,7,128,0,15,0,0,14,0,0,28,0,0,56, - 0,0,32,0,0,0,0,0,0,0,1,254,0,3,3,0, - 6,1,128,14,1,192,28,0,224,60,0,240,60,0,240,124, - 0,248,124,0,248,124,0,248,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 124,0,248,124,0,248,124,0,248,60,0,240,60,0,240,28, - 0,224,14,1,192,6,1,128,3,3,0,1,254,0,22,37, - 111,27,3,0,0,48,0,0,48,0,0,120,0,0,252,0, - 1,206,0,3,135,0,6,1,128,0,0,0,0,0,0,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,0, - 240,60,0,240,28,0,224,14,1,192,6,1,128,3,3,0, - 1,254,0,22,36,108,27,3,0,1,192,128,3,241,128,3, - 255,0,4,63,0,4,12,0,0,0,0,0,0,0,0,0, - 0,1,254,0,3,3,0,6,1,128,14,1,192,28,0,224, - 60,0,240,60,0,240,124,0,248,124,0,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,124,0,248,124,0,248,124,0,248, - 60,0,240,60,0,240,28,0,224,14,1,192,6,1,128,3, - 3,0,1,254,0,22,36,108,27,3,0,3,131,128,7,199, - 192,7,199,192,7,199,192,3,131,128,0,0,0,0,0,0, - 0,0,0,1,254,0,3,3,0,6,1,128,14,1,192,28, - 0,224,60,0,240,60,0,240,124,0,248,124,0,248,124,0, - 248,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 252,0,252,252,0,252,252,0,252,124,0,248,124,0,248,124, - 0,248,60,0,240,60,0,240,28,0,224,14,1,192,6,1, - 128,3,3,0,1,254,0,24,25,75,36,6,254,64,0,2, - 224,0,7,240,0,14,120,0,28,60,0,60,30,0,120,15, - 0,240,7,129,224,3,195,192,1,231,128,0,239,0,0,126, - 0,0,60,0,0,124,0,0,254,0,1,231,0,3,195,128, - 7,129,192,15,0,224,30,0,112,60,0,56,120,0,28,112, - 0,14,224,0,7,192,0,2,22,28,84,27,3,1,1,254, - 12,3,3,152,6,3,208,14,1,240,28,1,224,60,1,240, - 60,1,240,124,1,248,124,3,248,124,6,248,252,14,252,252, - 12,252,252,24,252,252,56,252,252,112,252,252,96,252,252,192, - 252,253,192,252,125,128,248,127,0,248,126,0,248,62,0,240, - 62,0,240,30,0,224,62,1,192,46,1,128,103,3,0,193, - 254,0,26,37,148,30,3,1,0,224,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,28,0,0,0,12,0,0, - 0,6,0,0,0,0,0,0,0,0,0,0,255,240,127,192, - 31,128,31,0,31,128,14,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,15,128,12,0,15,192,12,0,7,192,24,0, - 7,224,56,0,1,252,240,0,0,255,192,0,26,37,148,30, - 3,1,0,0,224,0,0,1,224,0,0,1,224,0,0,3, - 192,0,0,7,0,0,0,6,0,0,0,12,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,26,37,148,30,3,0,0,4,0,0, - 0,14,0,0,0,31,0,0,0,31,128,0,0,59,192,0, - 0,224,224,0,1,128,48,0,0,0,0,0,0,0,0,0, - 255,240,127,192,31,128,31,0,31,128,14,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,15,128,4,0,15,128,12,0, - 7,192,24,0,7,224,24,0,1,240,112,0,0,255,192,0, - 26,36,144,30,3,0,0,224,224,0,1,241,240,0,1,241, - 240,0,1,241,240,0,0,224,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,25,37,148,28,2,0,0,0,224,0, - 0,0,224,0,0,1,224,0,0,3,192,0,0,3,128,0, - 0,6,0,0,0,12,0,0,0,0,0,0,0,0,0,0, - 255,240,255,128,31,192,60,0,31,192,24,0,15,192,24,0, - 15,224,24,0,7,224,16,0,7,224,48,0,3,240,32,0, - 3,240,32,0,1,248,96,0,1,248,64,0,1,252,64,0, - 0,252,192,0,0,254,128,0,0,127,128,0,0,127,128,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,1,255,224,0, - 23,28,84,27,2,0,255,248,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,255,128,31,129,224,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,248,0,19,28,84,22,1,0, - 0,248,0,3,156,0,7,142,0,15,15,0,15,15,0,15, - 15,0,31,15,0,31,15,0,31,14,0,31,28,0,31,112, - 0,31,12,0,31,7,0,31,7,128,31,3,192,31,3,192, - 31,3,192,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,224,31,115,224,31,243,192,31,243,192,31,227,128,31,103, - 0,255,62,0,17,28,84,20,2,0,56,0,0,60,0,0, - 60,0,0,30,0,0,14,0,0,3,0,0,1,0,0,0, - 0,0,0,0,0,15,192,0,24,240,0,48,120,0,112,120, - 0,124,124,0,124,124,0,56,124,0,1,252,0,14,124,0, - 28,124,0,56,124,0,120,124,0,248,124,0,248,124,128,248, - 124,128,248,124,128,252,253,128,127,191,0,62,30,0,17,28, - 84,20,2,0,0,48,0,0,112,0,0,240,0,0,224,0, - 1,192,0,1,128,0,3,0,0,0,0,0,0,0,0,15, - 192,0,24,240,0,48,120,0,112,120,0,124,124,0,124,124, - 0,124,124,0,0,252,0,7,124,0,28,124,0,56,124,0, - 120,124,0,248,124,0,248,124,128,248,124,128,248,124,128,252, - 253,128,127,191,0,62,30,0,17,28,84,20,2,0,3,0, - 0,3,128,0,7,128,0,7,192,0,12,224,0,24,112,0, - 48,24,0,0,0,0,0,0,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,17,27,81,20,2,0,14,8,0,31,152,0,63,240, - 0,35,240,0,32,224,0,0,0,0,0,0,0,0,0,0, - 15,192,0,24,240,0,48,120,0,112,120,0,124,124,0,124, - 124,0,124,124,0,0,252,0,7,124,0,28,124,0,56,124, - 0,120,124,0,248,124,0,248,124,128,248,124,128,248,124,128, - 252,253,128,127,191,0,62,30,0,17,27,81,20,2,0,56, - 112,0,124,248,0,124,248,0,124,248,0,56,112,0,0,0, - 0,0,0,0,0,0,0,15,192,0,24,240,0,48,120,0, - 112,120,0,124,124,0,124,124,0,124,124,0,0,252,0,7, - 124,0,28,124,0,56,124,0,120,124,0,248,124,0,248,124, - 128,248,124,128,248,124,128,252,253,128,127,191,0,62,30,0, - 17,28,84,20,2,1,15,192,0,12,192,0,24,96,0,24, - 96,0,24,96,0,28,224,0,15,192,0,7,128,0,0,0, - 0,15,192,0,16,240,0,48,120,0,112,120,0,120,124,0, - 124,124,0,124,124,0,0,252,0,7,124,0,28,124,0,56, - 124,0,120,124,0,248,124,0,248,124,128,248,124,128,248,124, - 128,252,253,128,127,255,0,62,62,0,23,19,57,27,2,0, - 15,195,224,24,238,112,48,124,56,112,124,60,120,124,60,124, - 124,62,124,124,62,24,124,62,3,252,62,14,127,254,60,124, - 0,120,124,0,248,124,2,248,124,2,248,124,2,248,124,4, - 252,222,4,127,143,8,63,3,240,14,27,54,18,2,248,7, - 224,14,48,60,24,60,28,120,60,120,124,248,124,248,120,248, - 48,248,0,248,0,248,0,248,0,120,4,120,4,56,4,60, - 8,30,16,7,224,2,0,2,0,3,128,0,192,0,224,0, - 224,0,224,7,128,14,28,56,18,2,0,56,0,56,0,60, - 0,30,0,14,0,7,0,1,0,0,0,0,0,7,192,28, - 224,56,112,56,120,120,120,120,124,248,124,248,124,248,124,255, - 252,248,0,248,0,248,4,120,4,120,4,56,8,60,24,30, - 48,7,192,14,28,56,18,2,0,0,112,0,112,0,240,1, - 224,1,192,3,128,2,0,0,0,0,0,7,192,28,224,56, - 112,56,120,120,120,120,124,248,124,248,124,255,252,248,0,248, - 0,248,0,248,4,120,4,120,12,56,8,60,24,30,48,7, - 192,14,28,56,18,2,0,3,0,7,128,7,128,15,192,12, - 192,24,96,48,56,0,0,0,0,7,192,28,224,56,112,56, - 120,120,120,120,124,248,124,248,124,248,124,255,252,248,0,248, - 0,248,0,120,4,120,4,56,8,60,8,30,16,7,224,14, - 27,54,18,2,0,56,112,124,248,124,248,124,248,56,112,0, - 0,0,0,0,0,7,192,28,224,56,112,56,120,120,120,120, - 124,248,124,248,124,248,124,255,252,248,0,248,0,248,0,120, - 4,120,12,56,8,60,24,30,48,7,192,10,28,56,12,1, - 0,224,0,240,0,248,0,120,0,28,0,14,0,2,0,0, - 0,0,0,127,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,127,192,9,28,56,12,2,0,1, - 128,3,128,7,128,15,0,14,0,28,0,16,0,0,0,0, - 0,254,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,11,28,56,11,1,0,14,0,30, - 0,31,0,63,0,115,128,224,192,128,96,0,0,0,0,127, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,11,27,54,12,1,0,113,192,251,224,251, - 224,251,224,113,192,0,0,0,0,0,0,127,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,127, - 192,16,28,56,20,2,0,31,8,15,184,7,224,7,224,7, - 224,13,240,16,248,0,248,0,124,7,252,30,126,60,62,56, - 62,120,30,120,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,30,120,30,120,30,56,60,60,60,12,112,7,224,19, - 27,81,22,2,0,0,2,0,7,194,0,15,254,0,15,252, - 0,8,120,0,0,0,0,0,0,0,0,0,0,254,60,0, - 62,222,0,63,15,0,63,15,128,63,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,255,191,224,16,28,56,20,2,0,24,0,28,0, - 30,0,15,0,7,0,3,128,0,192,0,0,0,0,7,192, - 12,112,28,56,56,60,120,30,120,30,248,30,248,31,248,31, - 248,31,248,31,248,31,248,30,120,30,120,30,56,60,28,56, - 12,112,7,192,16,28,56,20,2,0,0,56,0,56,0,120, - 0,240,0,224,1,192,3,0,0,0,0,0,7,192,12,112, - 28,56,56,60,120,30,120,30,248,30,248,31,248,31,248,31, - 248,31,248,31,248,30,120,30,120,30,56,60,28,56,12,112, - 7,192,16,28,56,20,2,0,3,128,3,192,3,192,7,224, - 14,112,28,56,48,12,0,0,0,0,7,192,12,112,28,56, - 56,60,120,30,120,30,248,30,248,31,248,31,248,31,248,31, - 248,31,248,30,120,30,120,30,56,60,28,56,12,112,7,192, - 16,27,54,20,2,0,14,4,31,140,31,248,35,248,32,112, - 0,0,0,0,0,0,7,192,12,112,28,56,56,60,120,30, - 120,30,248,30,248,31,248,31,248,31,248,31,248,31,248,30, - 120,30,120,30,56,60,28,56,12,112,7,192,16,27,54,20, - 2,0,28,56,62,124,62,124,62,124,28,56,0,0,0,0, - 0,0,7,192,12,112,28,56,56,60,120,30,120,30,248,30, - 248,31,248,31,248,31,248,31,248,31,248,30,120,30,120,30, - 56,60,28,56,12,112,7,192,33,26,130,37,2,253,0,3, - 192,0,0,0,7,224,0,0,0,7,224,0,0,0,7,224, - 0,0,0,7,224,0,0,0,3,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,255,128,255,255,255,255,128,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,192,0,0,0,7,224,0,0,0,7,224,0, - 0,0,7,224,0,0,0,7,224,0,0,0,3,192,0,0, - 16,19,38,20,2,0,7,225,12,114,28,60,56,60,120,62, - 120,62,248,126,248,95,248,223,249,159,251,31,254,31,252,30, - 124,30,120,30,60,28,124,56,78,48,135,192,19,28,84,21, - 1,0,12,0,0,30,0,0,15,0,0,7,0,0,3,128, - 0,1,192,0,0,64,0,0,0,0,0,0,0,254,63,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,31,128,62,31,128,30,47,128, - 31,79,128,7,143,224,19,28,84,21,1,0,0,28,0,0, - 60,0,0,60,0,0,120,0,0,224,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,31,128,62,31,128,30,47,128,30,79,128,7,143,224, - 19,28,84,21,1,0,1,192,0,1,224,0,3,224,0,3, - 240,0,7,56,0,12,28,0,24,4,0,0,0,0,0,0, - 0,254,63,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,31,128,62,31, - 128,30,47,128,30,79,128,7,143,224,19,27,81,21,1,0, - 28,28,0,62,62,0,62,62,0,62,62,0,28,28,0,0, - 0,0,0,0,0,0,0,0,254,63,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,31,128,62,31,128,30,47,128,30,79,128,7,143, - 224,18,37,111,19,0,247,0,14,0,0,30,0,0,30,0, - 0,60,0,0,48,0,0,96,0,0,192,0,0,0,0,0, - 0,0,255,207,192,63,3,0,31,3,0,31,2,0,15,2, - 0,15,130,0,15,132,0,7,196,0,7,196,0,3,196,0, - 3,232,0,3,232,0,1,248,0,1,240,0,0,240,0,0, - 240,0,0,96,0,0,96,0,0,96,0,0,32,0,0,64, - 0,12,64,0,30,64,0,62,128,0,62,128,0,60,128,0, - 29,0,0,14,0,0,18,36,108,20,0,247,3,0,0,15, - 0,0,63,0,0,223,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,31,0,31,63,128,31,71,128,31,135,192, - 31,135,192,31,7,192,31,7,192,31,7,192,31,7,128,31, - 7,128,31,15,0,31,15,0,31,14,0,31,12,0,31,24, - 0,31,48,0,31,96,0,31,128,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,30, - 0,0,56,0,0,224,0,0,19,36,108,20,0,247,7,14, - 0,15,159,0,15,159,0,15,159,0,7,14,0,0,0,0, - 0,0,0,0,0,0,255,207,224,63,3,0,31,3,0,31, - 2,0,15,2,0,15,130,0,15,132,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,248,0,1,240,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 32,0,0,64,0,12,64,0,30,64,0,62,64,0,62,128, - 0,60,128,0,29,0,0,14,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=33 h=37 x= 5 y=12 dx=37 dy= 0 ascent=29 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =29 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29n[1257] U8G_FONT_SECTION("u8g_font_osb29n") = { - 0,107,49,223,245,28,0,0,0,0,42,58,0,29,248,28, - 0,14,16,32,19,3,12,3,0,7,128,7,128,199,24,227, - 60,242,124,122,248,7,128,7,128,250,248,242,124,227,60,199, - 24,7,128,7,128,3,0,33,33,165,37,2,251,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,7,13,13,10,2,249,120,252,252,254,254,126,6,4, - 4,8,24,96,192,10,4,8,14,2,8,255,192,255,192,255, - 192,255,192,6,6,6,10,2,0,120,252,252,252,252,120,13, - 37,74,17,2,248,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,96,0,224,0,224,0,192,1,192,1,192,1, - 128,3,128,3,128,3,128,3,0,7,0,7,0,6,0,14, - 0,14,0,12,0,12,0,28,0,28,0,24,0,56,0,56, - 0,48,0,112,0,112,0,112,0,96,0,224,0,224,0,18, - 28,84,22,2,1,3,240,0,14,28,0,14,28,0,28,14, - 0,60,15,0,60,15,0,124,15,128,124,15,128,124,15,128, - 252,15,192,252,15,192,252,15,192,252,15,192,252,15,192,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,124,15, - 128,124,15,128,124,15,128,60,15,0,60,15,0,28,14,0, - 12,28,0,14,28,0,3,240,0,13,28,56,22,5,0,3, - 128,7,128,15,128,255,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,248,17,28,84,22,2,1,15,248,0, - 24,62,0,48,63,0,112,31,0,240,31,128,240,31,128,252, - 31,128,252,31,128,254,31,128,126,63,0,60,63,0,0,126, - 0,0,252,0,0,248,0,1,224,0,3,128,0,6,0,0, - 12,0,128,24,0,128,16,0,128,32,0,128,47,1,128,127, - 255,128,127,255,128,71,255,0,67,255,0,65,254,0,64,252, - 0,17,28,84,22,2,1,15,248,0,24,62,0,48,63,0, - 48,31,0,112,31,128,120,31,128,124,31,128,124,31,128,124, - 31,128,60,31,0,0,31,0,0,62,0,0,120,0,15,192, - 0,0,120,0,0,62,0,0,63,0,0,31,0,16,31,128, - 124,31,128,252,31,128,252,31,128,252,31,128,248,31,128,240, - 63,0,112,62,0,56,124,0,31,248,0,18,28,84,22,2, - 0,0,124,0,0,124,0,0,252,0,0,252,0,1,252,0, - 1,252,0,3,252,0,3,252,0,6,252,0,6,252,0,12, - 252,0,12,252,0,24,252,0,24,252,0,48,252,0,48,252, - 0,96,252,0,96,252,0,192,252,0,255,255,192,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,15,255,192,17,29,87,22,3,0,0,6,0,112,28, - 0,127,252,0,127,248,0,127,224,0,127,192,0,126,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,120, - 120,0,112,62,0,96,62,0,96,31,0,0,31,0,0,31, - 128,0,31,128,56,31,128,124,31,128,252,31,128,252,31,128, - 248,31,0,240,31,0,224,30,0,96,62,0,48,124,0,31, - 240,0,18,29,87,22,3,0,0,32,0,3,220,0,7,6, - 0,14,6,0,30,15,0,60,31,0,60,63,0,124,63,0, - 124,62,0,124,28,0,252,0,0,252,0,0,252,0,0,253, - 248,0,255,30,0,254,31,0,252,15,128,252,15,128,252,15, - 192,252,15,192,252,15,192,124,15,192,124,15,192,124,15,192, - 60,15,128,28,15,128,30,15,0,14,30,0,3,252,0,17, - 28,84,22,3,0,103,135,0,111,199,0,127,227,128,127,241, - 128,127,249,128,127,255,128,96,125,128,64,1,0,64,3,0, - 64,3,0,192,6,0,0,4,0,0,12,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,240,0,1,240,0,3,224, - 0,3,224,0,3,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,3,192,0,19,29,87,22,2,0,0, - 64,0,7,184,0,28,6,0,56,3,0,112,1,0,112,1, - 128,240,1,128,240,1,128,248,1,128,252,3,0,255,2,0, - 127,196,0,127,248,0,63,252,0,31,255,0,15,255,128,27, - 255,128,48,255,192,96,63,192,96,15,192,224,3,224,224,1, - 192,224,1,192,224,1,192,224,1,192,112,1,128,56,1,0, - 28,6,0,15,252,0,18,28,84,22,3,1,15,240,0,30, - 28,0,60,30,0,124,14,0,124,15,0,252,15,128,252,15, - 128,252,15,128,252,15,128,252,15,192,252,15,192,124,15,192, - 124,15,192,62,31,192,30,63,192,7,239,192,0,15,192,0, - 15,192,0,15,192,30,15,128,31,15,128,63,15,128,63,15, - 0,62,15,0,56,30,0,24,28,0,24,56,0,15,240,0, - 6,19,19,10,2,0,120,252,252,252,252,120,0,0,0,0, - 0,0,0,120,252,252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 5 y=21 dx=41 dy= 0 ascent=31 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29r[7481] U8G_FONT_SECTION("u8g_font_osb29r") = { - 0,107,49,223,245,29,9,166,21,115,32,127,247,31,247,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 9 y=28 dx=52 dy= 0 ascent=45 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-12 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =45 descent=-12 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35[22097] U8G_FONT_SECTION("u8g_font_osb35") = { - 0,133,60,215,242,35,12,220,29,224,32,255,246,45,244,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,13,0,0,8,35,35, - 14,3,245,60,126,255,255,255,126,60,0,0,0,24,24,24, - 24,24,24,24,24,60,60,60,60,126,126,126,126,254,255,255, - 255,255,255,255,126,60,18,34,102,28,5,250,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,1,240,0,7,236, - 0,15,103,0,30,99,0,62,99,128,126,103,128,126,111,128, - 124,111,128,252,111,128,252,103,0,252,96,0,252,96,0,252, - 96,0,252,96,0,252,96,0,252,96,0,124,96,192,124,96, - 192,62,96,128,62,97,128,30,97,0,15,99,0,7,252,0, - 0,248,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,29,34,136,34,3,1,0,1,255,0,0,7,129,192, - 0,31,0,224,0,31,0,224,0,63,0,240,0,126,1,240, - 0,126,3,240,0,254,3,240,0,254,3,224,0,254,1,192, - 0,254,0,0,0,254,0,0,0,254,0,0,0,254,0,0, - 15,254,0,0,24,126,6,0,0,127,252,0,0,127,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,31,0,0,0,31,0,0,0,30,0,0,0,30,0,24, - 30,28,0,56,127,220,0,112,195,248,0,224,128,255,255,224, - 128,127,255,192,128,255,255,128,193,207,255,0,127,3,252,0, - 24,22,66,28,2,5,96,126,6,243,255,207,127,255,254,63, - 129,252,30,0,120,60,0,60,56,0,28,56,0,28,112,0, - 14,112,0,14,112,0,14,112,0,14,112,0,14,112,0,14, - 56,0,28,56,0,28,60,0,60,30,0,120,63,129,252,127, - 255,254,243,255,207,96,126,6,26,34,136,28,1,0,255,248, - 63,192,63,224,15,0,31,224,14,0,31,224,12,0,31,224, - 12,0,15,240,8,0,15,240,8,0,7,240,24,0,7,248, - 16,0,3,248,48,0,3,252,32,0,3,252,96,0,1,254, - 64,0,1,254,192,0,0,254,128,0,0,255,128,0,0,255, - 0,0,63,255,254,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,63,255,254,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,7,255,248,0,3,42,42,13,5,248,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,22,43,129,30,2,248,1,255,0,7, - 1,192,14,0,224,28,0,224,28,1,240,60,3,240,60,7, - 240,60,7,240,62,7,224,62,3,192,63,0,0,31,192,0, - 31,248,0,15,254,0,31,255,128,55,255,192,97,255,240,96, - 127,248,224,31,248,224,7,252,240,1,252,252,0,124,255,0, - 60,255,192,28,127,240,24,63,252,24,31,255,16,15,255,160, - 3,255,192,0,255,224,0,63,224,0,15,240,6,3,240,31, - 129,240,63,128,240,63,128,240,63,128,240,63,0,240,62,0, - 224,28,1,192,28,3,192,15,7,0,3,252,0,15,6,12, - 21,3,26,120,60,252,126,252,126,252,126,252,126,120,60,35, - 34,170,39,2,1,0,15,254,0,0,0,112,3,192,0,0, - 192,0,96,0,3,128,0,56,0,6,0,0,28,0,12,0, - 0,6,0,24,3,225,134,0,24,15,25,131,0,48,30,15, - 129,128,48,62,7,129,128,96,60,3,128,192,96,124,3,128, - 192,96,124,1,128,192,192,252,1,128,96,192,252,1,128,96, - 192,252,0,0,96,192,252,0,0,96,192,252,0,0,96,192, - 252,0,0,96,192,252,0,128,96,192,252,0,128,96,64,124, - 0,128,192,96,124,1,128,192,96,60,1,0,192,48,62,3, - 1,128,48,30,2,1,128,24,15,12,3,0,24,3,248,6, - 0,12,0,0,6,0,6,0,0,12,0,3,128,0,56,0, - 0,192,0,96,0,0,112,1,192,0,0,15,254,0,0,14, - 17,34,18,2,17,31,0,51,192,97,224,113,224,121,224,57, - 224,7,224,57,224,113,224,241,224,241,228,241,228,241,228,126, - 248,0,0,127,252,127,252,13,20,40,23,5,1,4,0,28, - 24,24,48,56,112,112,96,112,224,241,224,241,224,241,224,241, - 224,241,224,241,224,241,224,112,224,112,224,112,96,56,48,24, - 16,12,0,4,0,23,13,39,27,2,6,255,255,254,255,255, - 254,255,255,254,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,12,5,10,18,3,10,255,240,255,240,255,240,255,240, - 255,240,35,34,170,39,2,1,0,15,254,0,0,0,112,3, - 192,0,0,192,0,96,0,3,128,0,56,0,6,0,0,28, - 0,12,0,0,6,0,24,255,252,6,0,24,62,31,3,0, - 48,62,15,129,128,48,62,15,193,128,96,62,15,192,192,96, - 62,15,192,192,96,62,15,192,192,192,62,15,128,96,192,62, - 31,0,96,192,63,248,0,96,192,62,60,0,96,192,62,30, - 0,96,192,62,15,0,96,192,62,15,128,96,192,62,15,128, - 96,64,62,15,128,192,96,62,15,136,192,96,62,15,136,192, - 48,62,15,137,128,48,62,15,145,128,24,255,231,243,0,24, - 0,3,230,0,12,0,0,6,0,6,0,0,12,0,3,128, - 0,56,0,0,192,0,96,0,0,112,1,192,0,0,15,254, - 0,0,12,3,6,20,4,28,255,240,255,240,255,240,16,15, - 30,28,6,20,15,240,31,248,62,124,120,30,240,14,224,7, - 224,7,224,7,224,7,224,14,112,14,124,60,63,252,31,240, - 3,192,41,36,216,45,2,253,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,255,255,255,255,255,128,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,255,255,0,255,255,255,255,255,0,255,255,255,255,255,0, - 14,21,42,21,4,14,31,240,48,248,96,124,224,124,240,124, - 248,124,248,120,120,248,1,240,1,224,3,128,6,0,12,4, - 16,4,32,4,32,12,127,252,127,252,79,248,71,248,1,224, - 16,21,42,22,3,14,31,224,48,248,112,124,112,124,124,124, - 124,124,60,124,0,120,0,224,15,128,0,240,0,124,0,62, - 16,63,124,63,252,63,252,63,240,63,112,126,112,252,31,240, - 8,9,9,21,9,25,6,15,31,62,60,120,240,192,128,24, - 35,105,29,3,244,120,3,192,124,3,192,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 248,7,224,248,7,224,120,7,192,112,3,192,112,3,193,112, - 3,129,48,3,131,48,7,135,48,7,255,56,15,254,62,62, - 254,47,252,126,35,248,60,32,0,0,48,0,0,112,0,0, - 112,0,0,120,0,0,124,0,0,124,0,0,124,0,0,126, - 0,0,126,0,0,126,0,0,62,0,0,28,0,0,23,41, - 123,28,3,249,3,255,254,15,240,224,63,240,224,127,240,224, - 127,240,224,255,240,224,255,240,224,255,240,224,255,240,224,255, - 240,224,255,240,224,255,240,224,255,240,224,255,240,224,127,240, - 224,63,240,224,31,240,224,7,240,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,112, - 224,0,112,224,0,112,224,0,112,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,8, - 7,7,14,3,12,60,126,255,255,255,126,60,10,10,20,21, - 5,246,8,0,8,0,24,0,15,0,7,128,3,192,3,192, - 3,192,199,128,63,0,11,20,40,21,5,14,7,0,15,0, - 255,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,255,224,13,17,34,19,3,17,15,128,24,192,56,224, - 112,112,112,112,240,120,240,120,240,120,240,120,240,120,240,120, - 112,112,112,224,56,224,15,128,0,0,255,248,13,20,40,23, - 5,1,1,0,193,128,96,192,112,224,48,112,56,112,56,120, - 60,120,60,120,60,120,60,120,60,120,60,120,56,112,56,112, - 48,112,96,224,64,192,1,128,1,0,36,36,180,44,5,255, - 0,0,0,48,0,7,0,0,48,0,7,0,0,96,0,31, - 0,0,224,0,255,0,0,192,0,31,0,1,192,0,31,0, - 1,128,0,31,0,3,0,0,31,0,7,0,0,31,0,6, - 0,0,31,0,14,0,0,31,0,12,0,0,31,0,24,0, - 0,31,0,24,0,0,31,0,48,0,0,31,0,112,15,0, - 31,0,96,31,0,31,0,224,31,0,31,0,192,63,0,31, - 1,128,127,0,255,227,128,127,0,0,3,0,223,0,0,7, - 1,159,0,0,6,1,159,0,0,12,3,31,0,0,12,2, - 31,0,0,24,6,31,0,0,56,12,31,0,0,48,15,255, - 240,0,112,0,31,0,0,96,0,31,0,0,192,0,31,0, - 1,192,0,31,0,1,128,0,31,0,3,128,1,255,224,3, - 0,0,0,0,35,36,180,43,5,255,0,0,0,56,0,7, - 0,0,48,0,7,0,0,112,0,31,0,0,224,0,255,0, - 0,192,0,31,0,1,192,0,31,0,1,128,0,31,0,3, - 128,0,31,0,3,0,0,31,0,7,0,0,31,0,14,0, - 0,31,0,12,0,0,31,0,28,0,0,31,0,24,0,0, - 31,0,56,126,0,31,0,113,143,128,31,0,99,7,192,31, - 0,231,3,224,31,0,199,3,224,31,1,199,131,224,255,227, - 135,195,224,0,3,3,199,192,0,7,1,135,128,0,6,0, - 15,0,0,14,0,30,0,0,12,0,56,0,0,24,0,96, - 0,0,56,0,128,32,0,48,1,0,32,0,112,2,0,32, - 0,96,2,255,224,0,192,7,255,224,1,192,6,255,192,1, - 128,4,127,192,3,128,4,63,128,3,0,0,0,0,38,36, - 180,44,3,255,0,0,0,12,0,31,224,0,12,0,48,248, - 0,24,0,112,124,0,56,0,112,124,0,48,0,124,124,0, - 112,0,124,124,0,96,0,60,124,0,192,0,0,120,1,192, - 0,0,224,1,128,0,15,128,3,128,0,0,240,3,0,0, - 0,124,7,0,0,0,62,6,0,0,16,63,12,0,0,124, - 63,28,3,192,252,63,24,7,192,252,63,56,7,192,240,63, - 48,15,192,112,126,112,31,192,112,252,224,31,192,31,240,192, - 55,192,0,1,192,103,192,0,1,128,103,192,0,3,128,199, - 192,0,3,0,135,192,0,6,1,135,192,0,14,3,7,192, - 0,12,3,255,252,0,28,0,7,192,0,24,0,7,192,0, - 56,0,7,192,0,112,0,7,192,0,96,0,7,192,0,224, - 0,127,248,0,192,0,0,0,16,35,70,23,3,245,7,0, - 15,128,31,192,31,192,31,192,15,128,7,0,0,0,0,0, - 7,128,12,224,16,48,16,48,16,48,16,48,0,96,0,224, - 0,192,3,192,7,128,15,128,31,0,31,4,62,4,126,6, - 124,2,252,3,252,3,252,3,252,3,252,6,126,6,63,12, - 31,248,7,224,33,45,225,36,2,0,0,56,0,0,0,0, - 60,0,0,0,0,62,0,0,0,0,62,0,0,0,0,31, - 0,0,0,0,7,0,0,0,0,3,128,0,0,0,1,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,192,0, - 0,0,1,192,0,0,0,1,224,0,0,0,1,224,0,0, - 0,3,224,0,0,0,3,240,0,0,0,3,240,0,0,0, - 7,240,0,0,0,7,248,0,0,0,7,248,0,0,0,15, - 248,0,0,0,15,252,0,0,0,15,252,0,0,0,25,252, - 0,0,0,25,254,0,0,0,25,254,0,0,0,48,254,0, - 0,0,48,255,0,0,0,32,255,0,0,0,96,127,0,0, - 0,96,127,128,0,0,64,127,128,0,0,192,63,128,0,0, - 192,63,192,0,0,255,255,192,0,1,255,255,192,0,1,128, - 31,224,0,1,0,31,224,0,3,0,15,224,0,3,0,15, - 240,0,2,0,15,240,0,6,0,7,240,0,15,0,7,248, - 0,31,0,15,252,0,255,240,255,255,128,33,45,225,36,2, - 0,0,0,14,0,0,0,0,15,0,0,0,0,31,0,0, - 0,0,62,0,0,0,0,60,0,0,0,0,120,0,0,0, - 0,240,0,0,0,0,192,0,0,0,0,128,0,0,0,0, - 0,0,0,0,0,192,0,0,0,1,192,0,0,0,1,224, - 0,0,0,1,224,0,0,0,3,224,0,0,0,3,240,0, - 0,0,3,240,0,0,0,7,240,0,0,0,7,248,0,0, - 0,7,248,0,0,0,15,248,0,0,0,15,252,0,0,0, - 15,252,0,0,0,25,252,0,0,0,25,254,0,0,0,25, - 254,0,0,0,48,254,0,0,0,48,255,0,0,0,32,255, - 0,0,0,96,127,0,0,0,96,127,128,0,0,64,127,128, - 0,0,192,63,128,0,0,192,63,192,0,0,255,255,192,0, - 1,255,255,192,0,1,128,31,224,0,1,0,31,224,0,3, - 0,15,224,0,3,0,15,240,0,6,0,15,240,0,6,0, - 7,240,0,15,0,7,248,0,255,240,255,255,128,255,240,255, - 255,128,33,44,220,36,2,0,0,1,192,0,0,0,1,224, - 0,0,0,3,224,0,0,0,7,240,0,0,0,15,120,0, - 0,0,30,30,0,0,0,120,7,0,0,0,64,1,128,0, - 0,0,0,0,0,0,0,192,0,0,0,1,192,0,0,0, - 1,224,0,0,0,1,224,0,0,0,3,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,7,240,0,0,0,7,248, - 0,0,0,7,248,0,0,0,15,248,0,0,0,15,252,0, - 0,0,15,252,0,0,0,25,252,0,0,0,25,254,0,0, - 0,25,254,0,0,0,48,254,0,0,0,48,255,0,0,0, - 32,255,0,0,0,96,127,0,0,0,96,127,128,0,0,64, - 127,128,0,0,192,63,128,0,0,192,63,192,0,0,255,255, - 192,0,1,255,255,192,0,1,128,31,224,0,1,0,31,224, - 0,3,0,15,224,0,3,0,15,240,0,2,0,15,240,0, - 6,0,7,240,0,15,0,7,248,0,31,0,15,252,0,255, - 240,255,255,128,33,43,215,36,2,0,0,15,1,0,0,0, - 31,227,0,0,0,63,254,0,0,0,33,254,0,0,0,32, - 124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,6,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,255,240,255,255,128,255,240,255,255, - 128,33,43,215,36,2,0,0,60,15,0,0,0,126,31,128, - 0,0,126,31,128,0,0,126,31,128,0,0,126,31,128,0, - 0,60,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,7,248,0,0,0,7,248,0, - 0,0,7,248,0,0,0,15,252,0,0,0,15,252,0,0, - 0,25,252,0,0,0,25,254,0,0,0,24,254,0,0,0, - 48,254,0,0,0,48,255,0,0,0,48,127,0,0,0,96, - 127,0,0,0,96,127,128,0,0,96,63,128,0,0,192,63, - 128,0,0,192,63,192,0,0,255,255,192,0,1,255,255,192, - 0,1,128,31,224,0,1,128,15,224,0,3,0,15,224,0, - 3,0,15,240,0,3,0,7,240,0,7,0,7,240,0,15, - 0,7,248,0,31,128,15,252,0,255,240,255,255,128,33,45, - 225,36,2,0,0,1,224,0,0,0,7,248,0,0,0,14, - 28,0,0,0,12,12,0,0,0,12,12,0,0,0,12,12, - 0,0,0,14,28,0,0,0,7,248,0,0,0,3,240,0, - 0,0,0,0,0,0,0,0,192,0,0,0,1,192,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,224,0,0,0, - 3,240,0,0,0,3,240,0,0,0,7,240,0,0,0,7, - 248,0,0,0,7,248,0,0,0,15,248,0,0,0,13,252, - 0,0,0,13,252,0,0,0,29,252,0,0,0,25,254,0, - 0,0,24,254,0,0,0,56,254,0,0,0,48,255,0,0, - 0,48,127,0,0,0,112,127,0,0,0,96,127,128,0,0, - 96,63,128,0,0,224,63,128,0,0,192,63,192,0,0,255, - 255,192,0,1,255,255,192,0,1,128,31,224,0,1,128,31, - 224,0,3,0,15,224,0,3,0,15,240,0,3,0,15,240, - 0,7,0,7,240,0,15,0,7,248,0,31,128,15,252,0, - 255,240,255,255,128,45,34,204,48,1,0,0,0,127,255,255, - 240,0,0,31,248,7,240,0,0,15,248,1,240,0,0,15, - 248,0,240,0,0,31,248,0,240,0,0,27,248,0,112,0, - 0,59,248,0,112,0,0,51,248,0,48,0,0,115,248,0, - 48,0,0,99,248,12,48,0,0,227,248,12,16,0,0,195, - 248,12,0,0,1,195,248,28,0,0,1,131,248,28,0,0, - 3,131,248,60,0,0,3,3,248,124,0,0,7,3,255,252, - 0,0,6,3,248,124,0,0,14,3,248,60,0,0,12,3, - 248,28,0,0,28,3,248,28,0,0,24,3,248,12,24,0, - 56,3,248,12,24,0,63,255,248,12,24,0,96,3,248,0, - 56,0,224,3,248,0,56,0,192,3,248,0,56,1,192,3, - 248,0,120,1,128,3,248,0,120,3,128,3,248,0,248,7, - 128,3,248,1,248,15,128,3,248,3,248,255,248,127,255,255, - 248,255,248,127,255,255,248,26,45,180,31,3,246,0,127,193, - 128,1,224,241,128,3,192,63,128,7,128,31,128,15,128,15, - 128,31,0,15,128,63,0,7,128,63,0,7,128,63,0,3, - 128,127,0,3,128,127,0,1,128,127,0,1,128,255,0,1, - 128,255,0,1,128,255,0,1,128,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,192,127,0,0,192,127,0,0,192,127,0,0, - 128,63,0,0,128,63,0,1,128,63,0,1,128,31,128,3, - 0,15,128,3,0,7,128,6,0,3,192,12,0,1,224,56, - 0,0,127,224,0,0,12,0,0,0,8,0,0,0,30,0, - 0,0,31,128,0,0,3,192,0,0,1,224,0,0,1,224, - 0,0,1,224,0,0,129,192,0,0,199,192,0,0,63,0, - 0,27,45,180,33,3,0,0,224,0,0,1,240,0,0,1, - 240,0,0,0,248,0,0,0,124,0,0,0,60,0,0,0, - 14,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,45,180,33,3, - 0,0,0,56,0,0,0,120,0,0,0,248,0,0,0,248, - 0,0,1,240,0,0,3,192,0,0,3,128,0,0,6,0, - 0,0,4,0,0,0,0,0,0,0,0,0,0,255,255,255, - 224,15,224,31,224,15,224,7,224,15,224,3,224,15,224,1, - 224,15,224,1,224,15,224,0,224,15,224,0,224,15,224,0, - 96,15,224,48,96,15,224,48,96,15,224,48,0,15,224,112, - 0,15,224,112,0,15,224,240,0,15,225,240,0,15,255,240, - 0,15,225,240,0,15,224,240,0,15,224,112,0,15,224,112, - 32,15,224,48,96,15,224,48,96,15,224,48,96,15,224,0, - 96,15,224,0,224,15,224,0,224,15,224,0,224,15,224,1, - 224,15,224,3,224,15,224,3,224,15,224,15,224,255,255,255, - 224,255,255,255,224,27,44,176,33,3,0,0,6,0,0,0, - 15,0,0,0,15,128,0,0,31,192,0,0,57,224,0,0, - 240,112,0,3,192,28,0,0,0,4,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,43,172,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,224,15,224,31,224,15,224,7, - 224,15,224,3,224,15,224,1,224,15,224,1,224,15,224,0, - 224,15,224,0,224,15,224,0,224,15,224,48,96,15,224,48, - 96,15,224,48,0,15,224,112,0,15,224,112,0,15,224,240, - 0,15,225,240,0,15,255,240,0,15,225,240,0,15,224,240, - 0,15,224,112,0,15,224,112,96,15,224,48,96,15,224,48, - 96,15,224,48,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,0,224,15,224,1,224,15,224,3,224,15,224,3, - 224,15,224,15,224,255,255,255,224,255,255,255,224,16,45,90, - 21,3,0,56,0,124,0,124,0,62,0,31,0,15,0,3, - 128,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,45,90, - 21,3,0,0,14,0,30,0,62,0,60,0,120,0,240,0, - 224,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,44,88, - 21,3,0,1,192,3,192,3,224,7,240,31,120,60,28,240, - 7,0,1,0,0,0,0,255,255,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,255,255,255,255,16,43,86,21,3, - 0,120,30,252,63,252,63,252,63,252,63,120,30,0,0,0, - 0,0,0,255,255,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,255,255,32,34,136,37,3,0,255,255,248, - 0,7,240,31,0,7,240,7,128,7,240,3,224,7,240,1, - 240,7,240,1,240,7,240,0,248,7,240,0,252,7,240,0, - 252,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,255,255,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,7,240,0, - 255,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 254,7,240,0,252,7,240,0,252,7,240,0,248,7,240,1, - 240,7,240,1,224,7,240,3,192,7,240,7,128,7,240,31, - 0,255,255,248,0,34,44,220,37,2,255,0,7,128,128,0, - 0,15,241,128,0,0,31,255,0,0,0,16,255,0,0,0, - 16,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,224,15,255,192,31,240,3, - 255,0,15,240,0,252,0,15,248,0,120,0,7,252,0,48, - 0,3,254,0,48,0,3,254,0,48,0,3,255,0,48,0, - 3,255,128,48,0,3,255,128,48,0,3,127,192,48,0,3, - 63,224,48,0,3,31,224,48,0,3,31,240,48,0,3,15, - 248,48,0,3,7,248,48,0,3,7,252,48,0,3,3,254, - 48,0,3,1,255,48,0,3,1,255,48,0,3,0,255,176, - 0,3,0,127,240,0,3,0,127,240,0,3,0,63,240,0, - 3,0,31,240,0,3,0,15,240,0,3,0,15,240,0,3, - 0,7,240,0,3,0,3,240,0,3,0,3,240,0,7,128, - 1,240,0,15,192,0,240,0,63,240,0,240,0,255,252,0, - 112,0,0,0,0,48,0,28,45,180,33,3,0,0,192,0, - 0,1,224,0,0,1,240,0,0,0,248,0,0,0,120,0, - 0,0,60,0,0,0,28,0,0,0,6,0,0,0,2,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,28,45,180,33,3,0,0,0,48,0,0,0,120,0,0, - 0,248,0,0,1,240,0,0,1,224,0,0,3,192,0,0, - 3,128,0,0,6,0,0,0,4,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,45,180,33,3, - 0,0,6,0,0,0,14,0,0,0,15,0,0,0,31,128, - 0,0,63,192,0,0,121,224,0,0,240,240,0,3,192,60, - 0,3,0,12,0,0,0,0,0,0,0,0,0,0,63,192, - 0,0,224,112,0,3,192,56,0,7,128,30,0,15,128,30, - 0,15,0,15,0,31,0,15,128,63,0,15,192,63,0,15, - 192,127,0,15,192,127,0,15,224,127,0,15,224,127,0,15, - 224,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,127,0,15,224,127,0,15,224,127,0,15,224,127,0,15, - 192,63,0,15,192,63,0,15,192,31,0,15,128,15,0,15, - 0,15,128,31,0,7,128,30,0,3,192,60,0,0,224,112, - 0,0,63,192,0,28,44,176,33,3,0,0,0,8,0,0, - 126,24,0,0,255,248,0,1,255,240,0,1,7,224,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,44,176,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,31,30,120,45,7,253,32,0,0,0,112,0,0,12,248, - 0,0,30,124,0,0,60,62,0,0,120,31,0,1,240,15, - 128,3,224,7,192,7,192,3,224,15,128,1,240,31,0,0, - 248,62,0,0,124,124,0,0,62,248,0,0,31,240,0,0, - 15,224,0,0,7,192,0,0,15,224,0,0,31,240,0,0, - 62,248,0,0,124,60,0,0,248,30,0,1,240,15,0,3, - 224,7,128,7,192,3,192,15,128,1,224,31,0,0,240,62, - 0,0,120,124,0,0,60,248,0,0,30,112,0,0,12,28, - 34,136,33,3,1,0,63,224,48,0,224,112,96,1,192,60, - 192,7,128,31,192,15,128,31,128,15,0,15,0,31,0,15, - 128,63,0,15,192,63,0,31,192,63,0,31,224,127,0,63, - 224,127,0,111,224,127,0,239,224,255,0,207,240,255,1,143, - 240,255,3,15,240,255,7,15,240,255,14,15,240,255,12,15, - 240,255,24,15,240,255,48,15,240,255,112,15,224,127,96,15, - 224,127,192,15,224,127,128,15,192,63,128,15,192,63,0,15, - 192,31,0,15,128,15,0,15,0,31,128,30,0,63,128,30, - 0,51,192,56,0,96,224,112,0,192,127,192,0,33,45,225, - 38,3,0,0,24,0,0,0,0,60,0,0,0,0,62,0, - 0,0,0,31,0,0,0,0,15,128,0,0,0,7,128,0, - 0,0,1,192,0,0,0,0,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,33,45,225,38,3,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,31,0,0,0,0, - 60,0,0,0,0,56,0,0,0,0,112,0,0,0,0,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,7,255,128,15,224,1,254,0,15,224,0,120,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,7,224,0,48,0,7,224,0,96,0,7,240,0, - 96,0,3,240,0,192,0,1,248,1,192,0,0,252,3,128, - 0,0,127,159,0,0,0,31,252,0,0,33,45,225,38,3, - 0,0,0,64,0,0,0,0,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,7,248,0,0,0,15,28,0,0,0, - 30,15,0,0,0,112,3,128,0,0,0,0,128,0,0,0, - 0,0,0,0,0,0,0,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,33,44,220,38,3,0,0,60,15,0,0,0,126,31, - 128,0,0,126,31,128,0,0,126,31,128,0,0,126,31,128, - 0,0,60,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,254,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,32,45,180,35,2,0,0,0,7,0,0,0, - 15,0,0,0,31,0,0,0,31,0,0,0,60,0,0,0, - 120,0,0,0,112,0,0,0,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,254,15,255,31,248,1,248,15,248, - 0,240,7,248,0,224,7,248,0,192,3,252,0,192,3,252, - 0,192,1,252,1,128,1,254,1,128,0,254,3,0,0,255, - 3,0,0,255,3,0,0,127,134,0,0,127,134,0,0,63, - 196,0,0,63,204,0,0,31,204,0,0,31,248,0,0,15, - 248,0,0,15,248,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,255,255,0,29,34, - 136,34,3,0,255,255,128,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,255,248,0, - 7,240,63,0,7,240,15,192,7,240,15,224,7,240,15,240, - 7,240,7,240,7,240,7,248,7,240,7,248,7,240,7,248, - 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,240, - 7,240,15,240,7,240,15,224,7,240,15,192,7,240,31,0, - 7,255,252,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,255,255,128,0,23,34,102,27, - 2,0,0,127,0,1,227,128,3,195,224,7,193,224,7,193, - 240,15,129,240,15,129,240,15,129,240,31,129,240,31,129,224, - 31,129,224,31,129,192,31,131,128,31,188,0,31,131,0,31, - 129,192,31,128,240,31,128,248,31,128,248,31,128,124,31,128, - 124,31,128,126,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,184,126,31,252,124,31,252,124,31,248,252,31, - 248,248,31,184,240,255,159,224,21,34,102,24,2,0,24,0, - 0,60,0,0,62,0,0,30,0,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,192,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,60,31,128,0,127,128,3,223,128, - 15,31,128,30,31,128,62,31,128,124,31,128,252,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,127, - 240,63,143,224,21,34,102,24,2,0,0,12,0,0,30,0, - 0,62,0,0,62,0,0,124,0,0,120,0,0,224,0,0, - 192,0,1,128,0,0,0,0,0,0,0,0,0,0,15,248, - 0,24,62,0,56,63,0,120,31,0,124,31,128,126,31,128, - 126,31,128,62,31,128,8,63,128,1,255,128,7,159,128,30, - 31,128,62,31,128,124,31,128,124,31,128,252,31,128,252,31, - 136,252,31,136,252,31,152,254,63,144,127,127,240,63,143,224, - 21,34,102,24,2,0,1,192,0,1,224,0,3,224,0,3, - 224,0,7,240,0,7,56,0,14,28,0,28,14,0,48,7, - 0,0,0,0,0,0,0,0,0,0,15,248,0,24,62,0, - 56,63,0,120,31,0,124,31,128,126,31,128,126,31,128,62, - 31,128,8,63,128,1,255,128,7,159,128,30,31,128,62,31, - 128,124,31,128,124,31,128,252,31,128,252,31,136,252,31,136, - 252,31,152,254,63,144,127,127,240,63,143,224,21,32,96,24, - 2,0,15,3,0,31,195,0,63,254,0,49,252,0,32,120, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, - 31,128,126,31,128,62,31,128,8,63,128,1,255,128,7,159, - 128,30,31,128,62,31,128,124,31,128,124,31,128,252,31,128, - 252,31,136,252,31,136,252,31,152,254,63,144,127,127,240,63, - 143,224,21,32,96,24,2,0,60,30,0,126,63,0,126,63, - 0,126,63,0,126,63,0,60,30,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,21,34,102,24,2,1,3,240, - 0,7,248,0,14,28,0,12,12,0,12,12,0,12,12,0, - 14,28,0,7,248,0,1,224,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,62,31,128,8,63,128,1,255,128, - 7,31,128,30,31,128,62,31,128,124,31,128,124,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,111, - 240,63,199,224,29,22,88,34,2,1,15,240,255,128,24,63, - 195,192,56,63,195,224,120,31,131,240,124,31,129,240,126,31, - 129,240,126,31,129,248,62,31,129,248,0,63,129,248,1,255, - 129,248,7,31,255,248,30,31,128,0,62,31,128,0,124,31, - 128,0,124,31,128,8,252,31,128,8,252,31,128,24,252,31, - 192,16,252,31,192,16,254,51,192,32,127,97,240,64,63,192, - 255,128,18,32,96,22,2,247,3,252,0,15,6,0,31,7, - 0,62,7,128,62,7,128,126,15,128,124,31,128,252,31,128, - 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,1, - 128,30,1,0,15,130,0,3,252,0,0,128,0,0,128,0, - 1,128,0,0,240,0,0,56,0,0,60,0,0,60,0,0, - 60,0,4,120,0,3,240,0,18,34,102,23,2,0,28,0, - 0,30,0,0,30,0,0,31,0,0,15,128,0,7,128,0, - 3,192,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 0,0,3,252,0,14,30,0,30,31,0,62,15,128,60,15, - 128,124,15,128,124,15,192,252,15,192,252,15,192,252,15,192, - 255,255,192,252,0,0,252,0,0,252,0,0,252,0,64,124, - 0,64,124,0,192,62,0,192,62,1,128,31,1,0,15,135, - 0,3,252,0,18,34,102,23,2,0,0,14,0,0,31,0, - 0,31,0,0,62,0,0,60,0,0,120,0,0,240,0,0, - 224,0,1,128,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,23,2,0,1,224,0,1,224,0,1,240,0,3, - 240,0,3,248,0,7,56,0,14,28,0,28,14,0,56,3, - 0,0,0,0,0,0,0,0,0,0,3,252,0,14,30,0, - 30,31,0,62,15,128,60,15,128,124,15,128,124,15,192,252, - 15,192,252,15,192,252,15,192,255,255,192,252,0,0,252,0, - 0,252,0,0,252,0,64,124,0,64,124,0,192,62,0,192, - 62,0,128,31,1,0,15,131,0,3,252,0,18,32,96,23, - 2,0,30,15,0,63,31,128,63,31,128,63,31,128,63,31, - 128,30,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,14,30,0,30,31,0,62,15,128,60,15,128,124, - 15,128,124,15,192,252,15,192,252,15,192,252,15,192,255,255, - 192,252,0,0,252,0,0,252,0,0,252,0,64,124,0,64, - 124,0,192,62,0,192,62,0,128,31,1,0,15,131,0,3, - 252,0,12,34,68,15,1,0,96,0,240,0,248,0,248,0, - 124,0,28,0,14,0,7,0,3,0,0,0,0,0,0,0, - 127,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,127,240,12,34,68,15, - 2,0,0,224,1,240,1,240,3,224,7,192,7,128,15,0, - 28,0,24,0,0,0,0,0,0,0,255,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,255,224,14,34,68,14,0,0,7,128,15,128, - 15,128,15,192,31,224,60,224,56,112,112,60,192,12,0,0, - 0,0,0,0,63,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,63,248, - 14,32,64,14,1,0,120,120,252,252,252,252,252,252,252,252, - 120,120,0,0,0,0,0,0,0,0,63,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,63,248,20,34,102,24,2,0,15,193,128,15, - 227,0,7,254,0,3,248,0,1,248,0,1,252,0,3,254, - 0,14,126,0,24,63,0,0,63,128,0,31,128,0,15,192, - 7,255,192,15,15,224,30,7,224,62,7,224,62,7,224,124, - 7,240,124,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,7,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,23,32,96,27,2,0,3,224,96,7,248,64,15,255, - 192,12,127,128,8,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,31,192,63,35,224,63,65,240,63, - 65,248,63,129,248,63,129,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,255,199,254,20,34,102,24,2,0,14,0, - 0,31,0,0,31,0,0,15,128,0,7,192,0,3,192,0, - 1,224,0,0,96,0,0,48,0,0,0,0,0,0,0,0, - 0,0,3,252,0,15,15,0,30,7,128,62,7,192,62,7, - 192,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,224,124,3,224,62,7,192,62,7,192,30,7,128,15,15, - 0,3,252,0,20,34,102,24,2,0,0,7,0,0,15,128, - 0,15,128,0,31,0,0,62,0,0,60,0,0,120,0,0, - 224,0,0,192,0,0,0,0,0,0,0,0,0,0,3,252, - 0,15,15,0,30,7,128,62,7,192,62,7,192,124,3,224, - 124,3,224,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,3, - 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, - 20,34,102,24,2,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,7,14,0,14,7,0,24,1, - 128,0,0,0,0,0,0,0,0,0,3,252,0,15,15,0, - 30,7,128,62,7,192,62,7,192,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,124,3,224,124,3,224,62,7,192, - 62,7,192,30,7,128,15,15,0,3,252,0,20,32,96,24, - 2,0,7,192,128,15,240,128,31,255,128,16,255,0,16,62, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,15,15,0,30,7,128,62,7,192,62,7,192,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,3,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,20,32,96,24,2,0,30,15,0,63,31,128,63,31, - 128,63,31,128,63,31,128,30,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,252,0,15,15,0,30,7,128,62, - 7,192,62,7,192,124,3,224,124,3,224,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,62,7,192,62,7,192,30, - 7,128,15,15,0,3,252,0,41,32,192,45,2,253,0,0, - 28,0,0,0,0,0,62,0,0,0,0,0,127,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,62,0, - 0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,28,0,0,0,0,0,62,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0, - 0,0,0,0,62,0,0,0,0,0,28,0,0,0,20,22, - 66,24,2,1,3,252,48,15,15,96,30,15,192,62,7,192, - 62,7,192,124,7,224,124,7,224,252,15,240,252,27,240,252, - 51,240,252,115,240,252,227,240,252,195,240,253,131,240,255,3, - 240,126,3,224,126,3,224,62,7,192,62,7,192,63,7,128, - 111,15,0,195,252,0,24,34,102,26,1,0,7,0,0,7, - 128,0,7,192,0,7,192,0,3,224,0,1,224,0,0,112, - 0,0,48,0,0,24,0,0,0,0,0,0,0,0,0,0, - 255,143,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,131,248,31,131,248,31,133,248,15,133,248,15,201,248,7, - 241,255,24,34,102,26,1,0,0,3,128,0,3,128,0,7, - 128,0,15,128,0,15,0,0,30,0,0,28,0,0,56,0, - 0,48,0,0,0,0,0,0,0,0,0,0,255,143,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,131,248,31, - 131,248,31,133,248,15,133,248,15,201,248,7,241,255,24,34, - 102,26,1,0,0,56,0,0,120,0,0,124,0,0,252,0, - 0,254,0,1,206,0,3,135,0,7,3,128,14,0,192,0, - 0,0,0,0,0,0,0,0,255,143,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,131,248,31,131,248,31,133, - 248,15,133,248,15,201,248,7,241,255,24,32,96,26,1,0, - 7,131,192,15,199,224,15,199,224,15,199,224,15,199,224,7, - 131,192,0,0,0,0,0,0,0,0,0,0,0,0,255,135, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,131, - 248,31,131,248,31,133,248,15,133,248,15,201,248,7,241,255, - 23,45,135,25,1,245,0,1,192,0,1,224,0,3,224,0, - 7,192,0,7,128,0,15,0,0,14,0,0,28,0,0,24, - 0,0,0,0,0,0,0,0,0,0,255,241,254,63,192,120, - 31,128,48,15,192,32,15,192,32,15,192,96,7,224,64,7, - 224,64,3,240,192,3,240,128,1,248,128,1,249,128,0,249, - 0,0,253,0,0,253,0,0,126,0,0,126,0,0,62,0, - 0,60,0,0,28,0,0,28,0,0,12,0,0,8,0,0, - 8,0,0,8,0,15,16,0,31,16,0,63,144,0,63,32, - 0,62,32,0,62,64,0,31,192,0,15,0,0,22,44,132, - 25,1,244,3,128,0,15,128,0,63,128,0,255,128,0,223, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,135,240,31,159,248,31,177,248,31,160,252,31,192,252, - 31,192,252,31,192,252,31,128,252,31,128,252,31,128,248,31, - 129,248,31,129,240,31,129,240,31,129,224,31,131,192,31,131, - 128,31,135,128,31,134,0,31,140,0,31,152,0,31,224,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,30,0,0,120,0, - 0,224,0,0,128,0,0,23,44,132,25,1,245,3,193,224, - 7,227,240,7,227,240,7,227,240,7,227,240,3,193,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,241, - 254,63,192,120,31,128,48,15,192,32,15,192,32,15,192,96, - 7,224,64,7,224,64,3,240,192,3,240,128,1,240,128,1, - 249,128,0,249,0,0,253,0,0,253,0,0,126,0,0,126, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,12,0, - 0,8,0,0,8,0,0,8,0,15,16,0,31,16,0,63, - 144,0,63,32,0,62,32,0,62,64,0,31,192,0,15,0, - 0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=44 x= 6 y=13 dx=45 dy= 0 ascent=35 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =35 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35n[1567] U8G_FONT_SECTION("u8g_font_osb35n") = { - 0,133,60,215,242,34,0,0,0,0,42,58,0,35,247,34, - 0,17,19,57,24,4,13,1,128,0,3,192,0,3,192,0, - 227,195,0,241,135,128,248,143,128,252,159,128,126,191,0,3, - 192,0,3,192,0,126,191,0,252,159,128,248,143,128,241,135, - 128,225,195,0,3,192,0,3,192,0,3,192,0,1,128,0, - 41,41,246,45,2,249,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,255,255,255,255,255,128,255,255, - 255,255,255,128,255,255,255,255,255,128,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,9,15,30,13, - 2,248,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,2,0,6,0,28,0,56,0,96,0, - 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, - 8,6,6,14,3,1,126,255,255,255,255,126,16,44,88,22, - 3,247,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,1,224,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,14,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,120,0,112,0, - 112,0,240,0,224,0,224,0,224,0,23,35,105,28,2,0, - 0,16,0,0,254,0,3,199,128,7,131,192,15,1,224,15, - 1,224,31,1,240,63,1,248,63,1,248,127,1,248,127,1, - 252,127,1,252,127,1,252,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,255,1,254,127,1,252,127,1,252,127,1,252,127,1, - 252,63,1,248,63,1,248,31,1,240,15,1,224,15,1,224, - 7,131,192,3,199,128,0,254,0,16,34,68,28,6,0,0, - 240,0,240,1,240,7,240,255,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,255, - 255,255,255,21,34,102,28,3,1,7,255,0,14,15,192,28, - 7,224,56,7,240,120,3,240,120,3,248,248,3,248,252,3, - 248,255,3,248,255,3,248,255,7,248,127,7,240,63,15,240, - 12,15,224,0,31,192,0,63,128,0,127,0,0,252,0,1, - 240,0,3,192,0,7,128,0,14,0,24,12,0,24,24,0, - 24,48,0,24,96,0,24,111,192,56,127,255,248,255,255,240, - 239,255,240,195,255,240,193,255,224,192,255,192,192,63,128,22, - 34,102,28,3,1,7,255,0,14,15,192,28,7,224,56,7, - 240,120,3,240,124,3,248,126,3,248,127,3,248,127,3,248, - 127,3,248,63,3,240,30,3,240,0,7,224,0,7,192,0, - 15,0,7,248,0,0,31,128,0,15,192,0,7,224,0,7, - 240,0,3,248,0,3,248,62,3,252,127,3,252,255,3,252, - 255,3,252,255,3,252,254,3,252,252,3,248,248,7,248,120, - 7,240,56,15,224,30,31,192,15,255,0,23,34,102,28,2, - 0,0,7,192,0,15,192,0,15,192,0,31,192,0,63,192, - 0,63,192,0,127,192,0,127,192,0,255,192,0,223,192,1, - 223,192,1,159,192,3,159,192,7,31,192,6,31,192,14,31, - 192,12,31,192,28,31,192,24,31,192,56,31,192,112,31,192, - 96,31,192,224,31,192,255,255,254,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,0,31, - 192,7,255,252,7,255,252,21,34,102,28,4,0,32,0,192, - 60,7,128,63,255,128,63,255,0,63,254,0,63,248,0,63, - 224,0,63,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,49,252,0,54,63,0,60,15,192,56,15,224, - 48,15,224,32,7,240,0,7,240,0,7,248,0,7,248,8, - 7,248,62,7,248,126,7,248,254,7,248,254,7,248,254,7, - 240,248,7,240,240,7,224,112,15,192,48,15,192,28,31,0, - 15,252,0,22,34,102,28,3,1,0,255,128,3,192,192,7, - 192,96,15,128,240,31,131,240,31,7,240,63,15,240,63,15, - 240,127,15,224,127,7,192,127,3,0,127,0,0,255,0,0, - 255,0,0,255,63,0,255,255,192,255,195,224,255,131,240,255, - 3,248,255,1,248,255,1,252,255,1,252,255,1,252,127,1, - 252,127,1,252,127,1,252,127,1,252,63,1,248,63,1,248, - 31,1,248,15,129,240,7,131,224,3,195,192,1,255,0,20, - 34,102,28,5,1,71,224,224,207,240,224,223,248,112,255,252, - 48,255,254,48,255,255,240,255,255,240,224,31,176,192,0,32, - 192,0,96,128,0,96,128,0,192,128,1,192,0,1,128,0, - 3,128,0,7,0,0,15,0,0,14,0,0,30,0,0,60, - 0,0,124,0,0,252,0,1,252,0,1,248,0,3,248,0, - 3,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,7,248,0,3,248,0,3,240,0,23,34,102,28,3, - 1,1,255,128,7,0,192,12,0,96,28,0,48,56,0,24, - 56,0,24,120,0,24,120,0,24,124,0,24,126,0,24,127, - 0,48,127,192,32,127,240,96,63,255,128,63,255,0,31,255, - 192,15,255,240,7,255,248,15,255,248,24,63,252,48,15,252, - 112,3,254,96,0,254,224,0,126,224,0,62,224,0,30,224, - 0,30,224,0,12,240,0,28,112,0,24,56,0,24,28,0, - 48,15,0,192,3,255,0,22,34,102,28,3,1,3,254,0, - 15,15,0,31,7,128,62,7,192,126,3,224,126,3,240,126, - 3,240,254,3,248,254,3,248,254,3,248,254,3,248,254,3, - 252,254,3,252,254,3,252,126,3,252,127,7,252,63,7,252, - 31,15,252,15,255,252,3,243,252,0,3,252,0,3,252,0, - 3,248,7,3,248,31,131,248,31,195,248,63,195,240,63,195, - 240,63,131,224,62,7,224,60,7,192,28,15,128,14,31,0, - 7,252,0,8,22,22,14,3,1,126,255,255,255,255,126,0, - 0,0,0,0,0,0,0,0,0,126,255,255,255,255,126}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=25 dx=52 dy= 0 ascent=38 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35r[10247] U8G_FONT_SECTION("u8g_font_osb35r") = { - 0,133,60,215,242,35,12,220,29,224,32,127,246,38,245,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=15 dx=28 dy= 0 ascent=25 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18[7816] U8G_FONT_SECTION("u8g_font_osr18") = { - 0,68,33,235,248,18,4,197,10,125,32,255,250,25,249,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,7,0,0,3,18,18,7,2,250,224, - 224,224,0,64,64,64,64,64,64,64,64,224,224,224,224,224, - 224,9,18,36,15,3,253,4,0,4,0,4,0,31,0,53, - 0,100,128,229,128,197,128,196,0,196,0,196,0,228,128,100, - 128,53,0,31,0,4,0,4,0,4,0,14,18,36,19,2, - 0,0,248,1,132,3,4,2,12,6,0,6,0,6,0,62, - 0,7,224,6,0,6,0,6,0,6,0,6,0,116,4,140, - 4,139,248,112,240,11,11,22,15,2,2,159,32,113,192,64, - 64,128,96,128,32,128,32,128,32,128,32,64,64,96,192,159, - 32,15,18,36,15,0,0,252,126,56,24,24,16,28,16,12, - 32,14,64,6,64,7,128,3,128,63,240,3,0,3,0,63, - 240,3,0,3,0,3,0,3,0,31,224,1,23,23,7,3, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,0,128, - 128,128,128,128,128,128,128,128,10,23,46,17,3,251,30,0, - 33,0,35,0,35,0,32,0,48,0,28,0,46,0,71,0, - 131,128,129,192,192,192,224,64,112,64,56,128,29,0,6,0, - 3,0,3,0,49,0,49,0,34,0,28,0,7,2,2,11, - 2,15,198,198,19,18,54,21,1,0,3,248,0,12,6,0, - 16,225,0,33,28,128,67,12,64,70,4,64,134,4,32,134, - 0,32,134,0,32,134,0,32,134,0,32,134,8,32,67,8, - 64,67,8,64,32,240,128,16,1,0,12,6,0,3,248,0, - 7,8,8,11,2,10,240,200,24,104,136,154,100,252,6,10, - 10,12,3,1,32,68,136,136,136,136,136,136,68,32,13,6, - 12,15,1,3,255,248,0,8,0,8,0,8,0,8,0,8, - 7,1,1,11,2,6,254,19,18,54,21,1,0,3,248,0, - 12,6,0,31,225,0,35,24,128,67,24,64,67,24,64,131, - 24,32,131,24,32,131,224,32,131,16,32,131,24,32,131,24, - 32,67,26,64,67,26,64,47,142,128,16,1,0,12,6,0, - 3,248,0,7,1,1,11,2,15,254,7,7,7,15,4,11, - 56,68,130,130,130,68,56,22,18,54,24,1,255,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,255,255,252,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,0,0,0,0,0, - 255,255,252,7,10,10,11,2,8,124,134,134,230,6,8,16, - 96,66,254,7,11,11,12,3,7,120,132,198,198,4,120,14, - 70,198,134,120,4,4,4,11,5,13,48,48,96,128,14,19, - 38,17,2,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,64,192,64,128,64,132,163,252,158,56,128,0,128,0, - 192,0,192,0,192,0,224,0,64,0,11,22,44,14,2,252, - 63,224,120,128,248,128,248,128,248,128,248,128,248,128,120,128, - 8,128,8,128,8,128,8,128,8,128,8,128,8,128,8,128, - 8,128,8,128,8,128,8,128,8,128,8,128,3,3,3,7, - 2,7,224,224,224,5,5,5,11,3,251,64,48,24,24,240, - 6,11,11,12,3,7,16,16,240,48,48,48,48,48,48,48, - 252,6,9,9,10,2,9,112,136,132,132,132,132,72,48,252, - 7,10,10,13,3,1,8,68,68,34,34,34,34,68,68,136, - 18,18,54,23,3,0,16,4,0,240,12,0,48,8,0,48, - 16,0,48,16,0,48,32,0,48,96,0,48,67,0,48,135, - 0,48,139,0,253,11,0,3,19,0,2,19,0,6,35,0, - 4,63,192,8,3,0,24,3,0,16,15,192,17,18,54,22, - 3,0,16,4,0,240,8,0,48,8,0,48,16,0,48,16, - 0,48,32,0,48,64,0,48,78,0,48,179,128,48,161,128, - 253,49,128,3,17,128,2,3,0,4,6,0,4,8,0,8, - 16,128,24,49,128,16,63,128,18,18,54,23,3,0,120,4, - 0,134,12,0,198,8,0,4,16,0,120,16,0,12,32,0, - 6,96,0,198,67,0,198,135,0,142,139,0,121,11,0,2, - 19,0,2,19,0,4,35,0,12,63,192,8,3,0,16,3, - 0,16,15,192,9,18,36,12,1,250,28,0,28,0,28,0, - 0,0,28,0,34,0,34,0,6,0,4,0,24,0,48,0, - 96,0,227,0,195,128,192,128,224,128,97,0,62,0,18,24, - 72,20,2,0,6,0,0,6,0,0,3,0,0,0,128,0, - 0,0,0,0,0,0,0,128,0,0,192,0,1,192,0,1, - 192,0,1,224,0,3,224,0,2,96,0,2,112,0,6,112, - 0,4,48,0,4,56,0,12,24,0,15,248,0,24,28,0, - 16,12,0,16,14,0,48,14,0,254,63,192,18,24,72,20, - 2,0,0,16,0,0,48,0,0,96,0,0,64,0,0,128, - 0,0,0,0,0,128,0,0,192,0,1,192,0,1,192,0, - 1,224,0,3,224,0,2,96,0,2,112,0,6,112,0,4, - 48,0,4,56,0,12,56,0,15,248,0,24,28,0,16,12, - 0,16,14,0,48,14,0,254,63,192,18,24,72,20,2,0, - 0,128,0,0,192,0,1,96,0,2,48,0,4,8,0,0, - 0,0,0,128,0,0,192,0,1,192,0,1,192,0,1,224, - 0,3,224,0,2,96,0,2,112,0,6,112,0,4,48,0, - 4,56,0,12,56,0,15,248,0,24,28,0,16,12,0,16, - 12,0,48,14,0,254,63,192,18,23,69,20,2,0,3,144, - 0,5,240,0,0,0,0,0,0,0,0,0,0,0,128,0, - 0,128,0,1,192,0,1,192,0,1,224,0,3,224,0,2, - 96,0,2,112,0,6,112,0,4,48,0,12,56,0,12,56, - 0,15,248,0,24,28,0,16,28,0,16,12,0,48,14,0, - 254,63,192,18,23,69,20,1,0,6,24,0,6,24,0,2, - 16,0,0,0,0,0,0,0,0,192,0,0,192,0,0,192, - 0,1,224,0,1,224,0,1,96,0,2,112,0,2,112,0, - 2,48,0,4,56,0,4,24,0,12,24,0,15,252,0,8, - 12,0,24,12,0,24,14,0,56,6,0,254,63,192,17,24, - 72,20,2,0,1,192,0,2,32,0,2,32,0,2,32,0, - 1,192,0,0,0,0,0,128,0,0,128,0,1,192,0,1, - 192,0,1,192,0,2,224,0,2,96,0,2,96,0,4,112, - 0,4,112,0,12,48,0,8,56,0,15,248,0,24,28,0, - 16,28,0,16,12,0,48,14,0,254,127,128,24,18,54,26, - 0,0,0,127,255,0,28,7,0,28,3,0,44,1,0,44, - 1,0,76,17,0,76,16,0,140,48,0,143,240,1,12,48, - 3,12,16,2,12,17,7,252,17,4,12,1,8,12,1,8, - 12,3,24,12,7,254,63,255,14,24,48,18,2,250,7,132, - 24,108,32,60,96,28,96,12,192,12,192,4,192,0,192,0, - 192,0,192,0,192,4,96,4,96,4,96,8,48,24,24,48, - 7,192,2,0,3,128,0,192,0,192,8,192,7,128,15,24, - 48,18,1,0,4,0,6,0,3,0,1,128,0,0,0,0, - 255,254,24,6,24,2,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,15,24,48,18,1,0,0,48,0,48,0,96, - 0,192,0,0,0,0,255,254,24,14,24,6,24,2,24,2, - 24,34,24,32,24,96,31,224,24,96,24,32,24,32,24,34, - 24,2,24,2,24,6,24,14,255,254,15,24,48,18,1,0, - 0,128,1,192,3,64,6,48,8,8,0,0,255,254,24,6, - 24,2,24,2,24,2,24,34,24,32,24,96,31,224,24,96, - 24,32,24,32,24,34,24,2,24,2,24,6,24,14,255,254, - 15,23,46,18,1,0,6,48,6,48,4,16,0,0,0,0, - 255,254,24,14,24,6,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,8,24,24,10,1,0,64,96,48,16,8,0, - 255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,255,8,24,24,10,1,0,3,3,6,8,0,0,255,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,255, - 8,24,24,10,1,0,8,24,52,66,129,0,255,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,255,8,23, - 23,10,1,0,195,195,66,0,0,255,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,255,17,18,54,19,1, - 0,255,240,0,24,12,0,24,6,0,24,3,0,24,3,0, - 24,1,128,24,1,128,24,1,128,127,1,128,24,1,128,24, - 1,128,24,1,128,24,1,128,24,3,0,24,3,0,24,6, - 0,24,12,0,255,240,0,18,24,72,19,1,0,3,200,0, - 2,248,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 15,192,28,2,0,30,2,0,22,2,0,23,2,0,19,130, - 0,17,130,0,17,194,0,16,226,0,16,226,0,16,114,0, - 16,50,0,16,58,0,16,30,0,16,14,0,16,14,0,16, - 6,0,252,2,0,15,24,48,18,2,1,28,0,12,0,6, - 0,2,0,1,0,0,0,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,96,12,32,8,48,24,24,48,7,192,15,24,48,18,2, - 1,0,112,0,96,0,192,0,128,1,0,0,0,7,192,24, - 48,48,24,32,8,96,12,96,12,192,6,192,6,192,6,192, - 6,192,6,192,6,96,12,96,12,32,8,48,24,24,48,7, - 192,15,24,48,18,2,0,1,0,3,128,6,192,12,96,16, - 16,0,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,24,48,18,2,0,15,16,19, - 224,0,0,0,0,0,0,0,0,7,192,24,48,48,24,32, - 8,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,96,12,96,12,32,8,48,24,24,48,7,192,15,24,48, - 18,2,0,8,0,12,96,12,96,0,0,0,0,0,0,7, - 192,24,48,48,24,32,8,96,12,96,12,192,6,192,6,192, - 6,192,6,192,6,192,6,96,12,96,12,32,8,48,24,24, - 48,7,192,16,16,32,24,4,255,0,1,64,3,32,6,16, - 12,8,24,4,48,2,96,1,192,1,128,3,64,6,32,12, - 16,24,8,48,4,96,2,192,1,15,18,36,18,2,0,7, - 194,24,52,48,28,32,12,96,28,96,44,192,70,192,198,193, - 134,195,6,198,6,196,6,232,12,112,12,96,8,112,24,88, - 48,135,192,19,24,72,21,1,1,3,0,0,3,128,0,0, - 128,0,0,64,0,0,0,0,0,0,0,255,15,224,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,12,1,0,12,2,0,6,4,0,1,248, - 0,19,24,72,21,1,1,0,28,0,0,24,0,0,48,0, - 0,32,0,0,64,0,0,0,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,19, - 24,72,21,1,0,0,96,0,0,224,0,1,176,0,3,8, - 0,0,4,0,0,0,0,255,15,224,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,12,1,0,12,2,0,6,4,0,1,248,0,19,23,69, - 21,1,1,3,24,0,3,24,0,0,0,0,0,0,0,0, - 0,0,255,15,224,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,12,1,0,12, - 2,0,6,4,0,1,248,0,17,24,72,19,1,0,0,24, - 0,0,56,0,0,48,0,0,64,0,0,0,0,0,0,0, - 255,31,128,28,6,0,28,4,0,14,4,0,6,8,0,7, - 8,0,3,144,0,3,160,0,1,224,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,7,252,0,15,18,36,17,1,0,255,0,24,0, - 24,0,31,224,24,24,24,12,24,6,24,6,24,6,24,14, - 24,12,24,24,31,240,24,0,24,0,24,0,24,0,255,0, - 12,18,36,14,1,0,7,128,24,224,24,96,48,96,48,192, - 48,128,55,0,49,128,48,64,48,96,48,112,48,48,48,48, - 48,48,54,48,54,112,52,96,243,192,11,18,36,13,1,0, - 96,0,96,0,48,0,24,0,8,0,0,0,30,0,99,0, - 65,128,97,128,33,128,15,128,113,128,193,128,195,160,195,160, - 197,160,121,192,11,18,36,13,1,0,1,128,3,128,3,0, - 4,0,8,0,0,0,62,0,65,0,65,128,97,128,33,128, - 15,128,113,128,193,128,193,160,195,160,197,160,120,192,11,18, - 36,13,1,0,8,0,12,0,28,0,50,0,65,0,0,0, - 30,0,99,0,65,128,97,128,33,128,15,128,113,128,193,128, - 195,160,195,160,197,160,121,192,11,17,34,13,1,0,56,128, - 79,0,0,0,0,0,0,0,30,0,99,0,65,128,97,128, - 33,128,15,128,113,128,193,128,195,160,195,160,197,160,121,192, - 11,17,34,13,1,0,99,0,99,0,1,0,0,0,0,0, - 60,0,67,0,67,0,99,0,3,0,15,0,115,0,195,0, - 195,32,199,32,203,32,121,192,11,18,36,13,1,0,28,0, - 34,0,34,0,34,0,28,0,0,0,60,0,67,0,67,0, - 99,0,35,0,15,0,115,0,195,0,195,32,199,32,199,32, - 121,192,16,12,24,18,1,0,30,120,99,198,65,134,97,131, - 1,131,31,255,97,128,193,128,195,129,195,130,196,194,120,124, - 9,18,36,11,1,250,30,0,33,0,96,128,193,128,193,128, - 192,0,192,0,192,0,192,0,96,128,33,0,30,0,8,0, - 12,0,2,0,3,0,3,0,30,0,9,18,36,12,1,0, - 96,0,112,0,48,0,8,0,0,0,0,0,30,0,35,0, - 97,128,193,128,193,128,255,128,192,0,192,0,192,128,96,128, - 33,0,30,0,9,18,36,12,1,0,1,0,3,0,2,0, - 4,0,8,0,0,0,30,0,35,0,97,128,193,128,193,128, - 255,128,192,0,192,0,192,128,96,128,33,0,30,0,9,18, - 36,12,1,0,8,0,12,0,28,0,18,0,33,0,0,0, - 30,0,35,0,97,128,193,128,193,128,255,128,192,0,192,0, - 192,128,96,128,33,0,30,0,9,17,34,12,1,0,51,0, - 51,0,1,0,0,0,0,0,30,0,35,0,97,128,193,128, - 193,128,255,128,192,0,192,0,192,128,96,128,33,0,30,0, - 7,18,18,8,0,0,192,224,96,16,8,0,120,24,24,24, - 24,24,24,24,24,24,24,126,6,18,18,7,1,0,4,12, - 24,16,32,0,240,48,48,48,48,48,48,48,48,48,48,252, - 8,17,17,8,0,0,24,56,36,195,0,120,24,24,24,24, - 24,24,24,24,24,24,126,7,17,17,9,1,0,4,198,198, - 0,0,120,24,24,24,24,24,24,24,24,24,24,124,10,18, - 36,13,1,0,56,128,27,0,12,0,22,0,35,0,3,0, - 31,128,33,128,97,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,33,128,30,0,13,17,34,15,1,0,14,64, - 19,192,0,0,0,0,0,0,243,192,52,192,56,96,56,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,253,248, - 10,18,36,13,1,0,96,0,48,0,16,0,8,0,4,0, - 0,0,30,0,33,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,33,128,30,0,10,18,36,13,1,0, - 1,128,3,128,3,0,4,0,0,0,0,0,30,0,33,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 33,128,30,0,10,18,36,13,1,0,4,0,12,0,14,0, - 18,0,33,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,10,17, - 34,13,1,0,60,128,47,0,0,0,0,0,0,0,30,0, - 33,128,97,128,192,192,192,192,192,192,192,192,192,192,192,192, - 97,128,33,128,30,0,10,17,34,13,1,0,49,128,49,128, - 1,0,0,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,22,16, - 48,24,1,255,0,112,0,0,112,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,255,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,112, - 0,0,112,0,10,12,24,13,1,0,30,64,33,128,96,128, - 193,192,194,192,196,192,200,192,208,192,208,192,97,128,97,128, - 158,0,13,18,36,14,0,0,16,0,24,0,12,0,4,0, - 2,0,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,18,36,14, - 0,0,0,192,0,192,1,128,2,0,0,0,0,0,241,224, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,224, - 48,224,57,96,30,120,13,18,36,14,0,0,2,0,6,0, - 5,0,8,128,16,0,0,0,241,224,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,224,48,224,57,96,30,120, - 13,17,34,14,0,0,24,192,24,192,0,0,0,0,0,0, - 240,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,224,48,224,57,96,30,120,13,24,48,14,0,250,0,96, - 0,224,0,192,1,0,0,0,0,0,252,248,56,32,24,32, - 24,64,12,64,12,64,12,128,6,128,6,128,7,0,3,0, - 3,0,3,0,2,0,34,0,98,0,100,0,56,0,11,24, - 48,14,1,250,48,0,240,0,48,0,48,0,48,0,48,0, - 49,192,54,224,52,96,56,96,56,96,48,96,48,192,48,192, - 49,128,49,0,50,0,60,0,48,0,48,0,48,0,48,0, - 48,0,96,0,13,23,46,14,0,250,8,64,12,96,12,96, - 0,0,0,0,252,120,24,32,24,32,24,64,12,64,12,64, - 14,128,6,128,6,128,7,0,3,0,3,0,2,0,2,0, - 34,0,114,0,100,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y= 8 dx=24 dy= 0 ascent=18 len=66 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18n[613] U8G_FONT_SECTION("u8g_font_osr18n") = { - 0,68,33,235,248,18,0,0,0,0,42,58,0,18,250,18, - 0,10,10,20,14,2,8,12,0,12,0,204,192,201,192,43, - 0,28,0,123,128,201,192,12,0,12,0,22,22,66,24,1, - 252,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,255, - 255,252,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,3,8,8,7,2,252,192,224,224,32,32,64,64, - 128,7,1,1,11,2,6,254,3,3,3,7,2,0,224,224, - 224,8,24,24,12,2,250,1,1,2,2,2,4,4,4,12, - 8,8,24,16,16,16,32,32,32,64,64,64,128,128,128,12, - 18,36,15,1,0,15,0,16,192,32,64,96,96,96,32,192, - 48,192,48,192,48,192,48,192,48,192,48,192,48,192,48,96, - 32,96,96,32,64,16,192,15,0,9,18,36,15,3,0,8, - 0,8,0,24,0,248,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,255,128,10,18,36,15,2,0,30,0,99,128,129,192,128, - 192,128,192,224,192,240,192,32,192,1,128,3,0,6,0,8, - 0,16,0,32,0,64,64,192,64,255,192,255,192,11,18,36, - 15,2,0,63,0,97,128,192,192,224,192,240,192,0,192,0, - 192,1,128,62,0,1,128,0,192,0,96,96,96,240,96,240, - 96,192,192,65,128,63,0,12,18,36,15,2,0,1,0,3, - 0,3,0,7,0,15,0,11,0,19,0,51,0,35,0,67, - 0,195,0,131,0,255,224,3,0,3,0,3,0,3,0,31, - 240,11,18,36,15,2,0,96,192,127,128,126,0,64,0,64, - 0,64,0,95,0,97,128,64,192,64,224,0,96,0,96,96, - 96,240,96,224,192,192,192,65,128,62,0,11,18,36,15,2, - 0,15,0,24,128,48,64,96,192,96,192,64,0,192,0,207, - 0,209,192,224,192,224,224,224,96,224,96,224,96,96,224,96, - 192,49,128,15,0,10,18,36,15,3,0,255,192,255,192,128, - 64,128,64,128,128,0,128,1,0,1,0,2,0,6,0,6, - 0,12,0,12,0,30,0,30,0,30,0,30,0,14,0,12, - 18,36,15,2,0,31,128,48,224,96,96,192,48,192,48,224, - 48,240,32,124,64,63,128,55,224,96,240,192,112,192,48,192, - 48,192,48,96,96,112,192,31,128,11,18,36,15,2,0,30, - 0,49,128,96,192,224,192,192,64,192,96,192,96,192,224,96, - 224,113,96,30,96,0,96,0,64,96,192,96,192,64,128,65, - 0,62,0,3,12,12,7,2,0,224,224,224,0,0,0,0, - 0,0,224,224,224}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=28 dy= 0 ascent=20 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18r[3683] U8G_FONT_SECTION("u8g_font_osr18r") = { - 0,68,33,235,248,18,4,197,10,125,32,127,250,20,250,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 6 y=17 dx=32 dy= 0 ascent=28 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21[9530] U8G_FONT_SECTION("u8g_font_osr21") = { - 0,76,38,232,247,21,5,131,12,189,32,255,249,28,248,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,0,4,21,21,8,2,249,96,240,240,96,0,64,64,96, - 96,96,96,96,96,96,96,240,240,240,240,240,96,10,21,42, - 17,3,253,4,0,4,0,4,0,4,0,31,0,52,128,100, - 64,100,192,229,192,228,128,228,0,228,0,228,0,228,0,100, - 64,100,64,52,128,31,0,4,0,4,0,4,0,16,21,42, - 21,2,0,0,60,0,194,0,131,1,135,1,135,3,130,3, - 128,3,128,3,128,63,128,3,240,3,128,3,128,3,128,3, - 0,3,0,123,1,142,1,135,3,135,254,120,252,13,13,26, - 17,2,4,143,136,112,112,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,64,16,96,48,112,112,143,136,16,21,42, - 17,1,0,252,63,56,8,56,8,24,16,28,16,28,32,14, - 32,14,64,6,64,7,128,3,128,63,248,3,128,3,128,63, - 248,3,128,3,128,3,128,3,128,3,128,31,240,1,27,27, - 8,4,251,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,0,128,128,128,128,128,128,128,128,128,128,128,11,27, - 54,19,3,250,30,0,49,0,97,128,99,128,97,0,112,0, - 56,0,60,0,62,0,79,0,131,128,129,192,128,224,192,96, - 224,32,112,32,56,64,28,128,15,0,7,0,3,0,1,128, - 33,128,113,128,97,128,35,0,28,0,8,3,3,12,2,16, - 195,231,195,21,22,66,23,1,0,0,32,0,3,222,0,12, - 1,128,24,0,192,48,114,96,33,142,32,67,6,16,67,2, - 16,135,2,8,135,0,8,135,0,8,135,0,8,135,0,8, - 135,0,8,135,2,8,67,2,16,67,4,16,33,132,32,48, - 120,96,24,0,192,12,1,128,3,222,0,8,9,9,12,2, - 12,120,196,12,52,68,197,205,118,254,7,12,12,14,3,1, - 16,34,98,68,196,196,196,196,196,66,34,16,14,6,12,16, - 1,5,255,252,0,4,0,4,0,4,0,4,0,4,7,2, - 2,11,2,7,254,254,21,22,66,23,1,0,0,32,0,3, - 222,0,12,1,128,24,0,192,63,248,96,35,140,32,67,142, - 16,67,142,16,131,142,8,131,140,8,131,240,8,131,140,8, - 131,140,8,131,142,8,131,142,72,67,142,80,67,134,80,47, - 195,160,48,0,96,24,0,192,12,1,128,3,222,0,8,1, - 1,14,3,17,255,8,8,8,16,4,13,60,66,129,129,129, - 129,66,60,24,21,63,26,1,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,255,255,255,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0, - 0,0,0,0,0,255,255,255,8,13,13,13,3,8,60,198, - 135,199,231,6,12,24,48,65,193,255,255,9,13,26,13,3, - 8,60,0,70,0,67,0,99,0,3,0,6,0,120,0,7, - 0,3,0,227,128,227,0,135,0,124,0,5,5,5,13,6, - 16,24,56,48,96,128,15,22,44,18,2,248,192,64,192,96, - 224,224,192,224,192,224,192,96,192,96,192,96,64,96,64,64, - 64,66,192,194,177,190,143,28,128,0,128,0,192,0,192,0, - 192,0,224,0,224,0,96,0,12,26,52,16,2,251,31,240, - 124,64,252,64,252,64,252,64,252,64,252,64,124,64,60,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,4,4,8,2,8,96,240,240,96,6,7,7,13, - 3,250,32,32,48,8,12,140,120,6,12,12,13,4,9,16, - 48,240,48,48,48,48,48,48,48,48,252,7,10,10,11,2, - 11,56,68,198,198,198,198,198,68,56,254,8,12,12,14,3, - 1,8,132,70,66,35,35,35,35,34,70,68,8,19,21,63, - 25,4,0,16,3,0,48,2,0,240,4,0,48,4,0,48, - 8,0,48,8,0,48,16,0,48,48,0,48,32,0,48,65, - 128,48,67,128,48,131,128,252,133,128,1,9,128,3,9,128, - 2,17,128,4,31,224,4,1,128,8,1,128,8,1,128,16, - 7,224,19,21,63,25,4,0,16,2,0,48,2,0,240,4, - 0,48,4,0,48,8,0,48,16,0,48,16,0,48,32,0, - 48,39,128,48,72,192,48,80,224,48,144,224,252,156,224,1, - 12,192,2,0,192,2,1,0,4,6,0,4,12,32,8,8, - 32,8,31,224,16,31,224,20,21,63,25,3,0,60,1,0, - 70,1,0,67,2,0,99,2,0,3,4,0,6,12,0,120, - 8,0,7,16,0,3,16,0,227,160,192,227,33,192,135,65, - 192,124,130,192,0,132,192,1,4,192,1,8,192,2,15,240, - 2,0,192,4,0,192,8,0,192,8,3,240,11,21,42,14, - 1,249,12,0,30,0,30,0,12,0,0,0,14,0,17,0, - 17,0,17,0,2,0,6,0,28,0,56,0,112,0,224,192, - 225,224,225,224,224,32,96,32,112,64,31,128,20,28,84,22, - 1,0,3,0,0,3,128,0,1,128,0,0,192,0,0,64, - 0,0,0,0,0,0,0,0,32,0,0,96,0,0,96,0, - 0,112,0,0,240,0,0,240,0,0,184,0,1,56,0,1, - 56,0,3,28,0,3,28,0,2,28,0,6,14,0,6,14, - 0,7,254,0,12,7,0,12,7,0,8,7,0,24,3,128, - 24,3,128,255,31,240,20,28,84,22,1,0,0,4,0,0, - 12,0,0,24,0,0,48,0,0,32,0,0,0,0,0,0, - 0,0,32,0,0,96,0,0,96,0,0,112,0,0,240,0, - 0,240,0,1,184,0,1,56,0,1,56,0,3,28,0,3, - 28,0,2,28,0,6,14,0,6,14,0,7,254,0,12,7, - 0,12,7,0,8,7,0,24,3,128,24,3,128,255,31,240, - 20,28,84,22,1,0,0,32,0,0,96,0,0,240,0,1, - 152,0,3,4,0,0,0,0,0,0,0,0,32,0,0,96, - 0,0,96,0,0,112,0,0,240,0,0,240,0,0,184,0, - 1,56,0,1,56,0,3,28,0,3,28,0,2,28,0,6, - 14,0,6,14,0,7,254,0,12,7,0,12,7,0,8,7, - 0,24,3,128,24,3,128,255,31,240,20,27,81,22,1,0, - 1,228,0,3,252,0,2,56,0,0,0,0,0,0,0,0, - 0,0,0,32,0,0,96,0,0,96,0,0,112,0,0,240, - 0,0,240,0,0,184,0,1,184,0,1,56,0,3,28,0, - 3,28,0,2,28,0,6,14,0,6,14,0,7,254,0,12, - 7,0,12,7,0,8,7,0,24,3,128,24,3,128,255,31, - 240,19,27,81,22,2,0,6,24,0,7,28,0,6,24,0, - 0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0, - 224,0,0,224,0,1,224,0,1,224,0,1,112,0,3,112, - 0,2,48,0,2,56,0,6,56,0,4,24,0,4,28,0, - 12,28,0,15,252,0,8,14,0,24,14,0,24,6,0,24, - 7,0,56,7,0,254,31,224,20,28,84,23,2,0,0,96, - 0,1,152,0,1,8,0,1,8,0,1,152,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,96,0,0,240,0,0, - 240,0,0,240,0,1,184,0,1,56,0,1,56,0,3,28, - 0,2,28,0,2,28,0,6,14,0,4,14,0,15,254,0, - 8,7,0,8,7,0,24,7,0,24,3,128,56,3,128,255, - 31,240,27,21,84,30,1,0,0,63,255,224,0,15,0,224, - 0,15,0,96,0,31,0,96,0,23,0,32,0,55,0,32, - 0,39,8,32,0,103,8,0,0,71,8,0,0,199,24,0, - 0,135,248,0,1,7,24,0,3,7,8,0,2,7,8,32, - 7,255,8,32,4,7,0,32,12,7,0,32,8,7,0,96, - 24,7,0,96,56,7,1,224,255,63,255,224,15,28,56,19, - 2,250,15,226,16,54,48,30,32,14,96,6,96,6,224,6, - 224,2,224,0,224,0,224,0,224,0,224,0,224,2,96,2, - 96,2,96,4,32,4,48,12,24,8,6,112,1,128,1,0, - 1,192,0,96,0,112,8,96,7,192,17,28,84,20,2,0, - 4,0,0,6,0,0,3,0,0,1,0,0,0,128,0,0, - 0,0,0,0,0,255,255,128,28,3,128,28,3,128,28,1, - 128,28,1,128,28,0,128,28,32,128,28,32,0,28,32,0, - 28,96,0,31,224,0,28,96,0,28,32,0,28,32,128,28, - 32,128,28,0,128,28,1,128,28,1,128,28,3,128,28,7, - 128,255,255,128,17,28,84,20,2,0,0,24,0,0,56,0, - 0,48,0,0,96,0,0,128,0,0,0,0,0,0,0,255, - 255,128,28,3,128,28,3,128,28,1,128,28,1,128,28,0, - 128,28,32,128,28,32,0,28,32,0,28,96,0,31,224,0, - 28,96,0,28,32,0,28,32,128,28,32,128,28,0,128,28, - 1,128,28,1,128,28,3,128,28,7,128,255,255,128,17,28, - 84,20,2,0,0,128,0,0,192,0,1,192,0,2,32,0, - 4,24,0,0,0,0,0,0,0,255,255,128,28,3,128,28, - 3,128,28,1,128,28,1,128,28,0,128,28,32,128,28,32, - 0,28,32,0,28,96,0,31,224,0,28,96,0,28,32,0, - 28,32,128,28,32,128,28,0,128,28,1,128,28,1,128,28, - 3,128,28,7,128,255,255,128,17,27,81,20,2,0,6,48, - 0,7,56,0,6,48,0,0,0,0,0,0,0,0,0,0, - 255,255,128,28,7,128,28,3,128,28,1,128,28,1,128,28, - 1,128,28,32,128,28,32,0,28,32,0,28,96,0,31,224, - 0,28,96,0,28,32,0,28,32,128,28,32,128,28,1,0, - 28,1,128,28,1,128,28,3,128,28,7,128,255,255,128,8, - 28,28,12,2,0,192,224,96,48,24,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,28,56,12,2,0,1,0,3,0,6,0,4,0,8, - 0,0,0,0,0,255,128,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,8, - 28,28,12,2,0,8,24,28,38,193,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,27,54,11,2,0,195,0,227,128,195,0,0,0,0, - 0,0,0,255,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,0,19,21,63, - 22,2,0,255,248,0,28,6,0,28,3,0,28,1,128,28, - 1,192,28,0,192,28,0,192,28,0,224,28,0,224,255,128, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,192, - 28,0,192,28,1,128,28,1,128,28,3,0,28,6,0,255, - 248,0,20,27,81,23,2,0,1,226,0,3,254,0,2,28, - 0,0,0,0,0,0,0,0,0,0,252,7,240,28,0,128, - 30,0,128,31,0,128,23,0,128,19,128,128,19,192,128,17, - 192,128,16,224,128,16,240,128,16,112,128,16,56,128,16,56, - 128,16,28,128,16,30,128,16,14,128,16,7,128,16,7,128, - 16,3,128,16,1,128,254,1,128,17,28,84,20,2,0,12, - 0,0,14,0,0,6,0,0,3,0,0,1,128,0,0,0, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,28,84,20,2,0,0,24,0,0,56,0,0, - 112,0,0,64,0,0,128,0,0,0,0,0,128,0,7,112, - 0,24,8,0,16,12,0,48,6,0,96,6,0,96,3,0, - 96,3,0,224,3,0,224,3,0,224,3,0,224,3,128,224, - 3,128,224,3,0,224,3,0,96,3,0,96,3,0,96,6, - 0,48,6,0,16,12,0,24,8,0,7,240,0,17,28,84, - 20,2,0,0,128,0,1,128,0,3,192,0,6,32,0,12, - 16,0,0,8,0,0,128,0,7,112,0,24,8,0,16,12, - 0,48,6,0,96,6,0,96,3,0,96,3,0,224,3,0, - 224,3,0,224,3,0,224,3,128,224,3,128,224,3,0,224, - 3,0,96,3,0,96,3,0,96,6,0,48,6,0,16,12, - 0,24,8,0,7,240,0,17,27,81,20,2,0,7,136,0, - 15,248,0,8,112,0,0,0,0,0,0,0,0,128,0,7, - 112,0,24,8,0,16,12,0,48,6,0,96,6,0,96,3, - 0,96,3,0,224,3,0,224,3,0,224,3,0,224,3,128, - 224,3,128,224,3,0,224,3,0,96,3,0,96,3,0,96, - 6,0,48,6,0,16,12,0,24,8,0,7,240,0,17,27, - 81,20,2,0,12,48,0,14,56,0,12,48,0,0,0,0, - 0,0,0,0,128,0,7,112,0,24,8,0,16,12,0,48, - 6,0,96,6,0,96,3,0,96,3,0,224,3,0,224,3, - 0,224,3,0,224,3,128,224,3,128,224,3,0,224,3,0, - 96,3,0,96,3,0,96,6,0,48,6,0,16,12,0,24, - 8,0,7,240,0,18,18,54,27,5,255,128,0,192,192,1, - 128,96,3,0,48,6,0,24,12,0,12,24,0,6,48,0, - 3,96,0,1,192,0,1,192,0,3,96,0,6,48,0,12, - 24,0,24,12,0,48,6,0,96,3,0,64,1,128,128,0, - 192,17,21,63,20,2,1,7,241,0,8,15,0,16,14,0, - 48,6,0,96,14,0,96,27,0,96,19,0,224,35,0,224, - 99,0,224,195,128,225,131,128,225,3,0,226,3,0,230,3, - 0,236,3,0,104,3,0,112,6,0,112,6,0,112,12,0, - 88,8,0,143,240,0,20,28,84,23,2,0,3,0,0,3, - 128,0,1,128,0,0,192,0,0,32,0,0,0,0,0,0, - 0,255,7,240,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,12,0,128,12,1,0,6,2,0,3,252,0, - 20,28,84,23,2,0,0,4,0,0,12,0,0,24,0,0, - 16,0,0,32,0,0,0,0,0,0,0,255,7,240,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,12,0, - 128,12,1,0,6,2,0,3,252,0,20,28,84,23,2,0, - 0,32,0,0,96,0,0,112,0,0,136,0,3,4,0,0, - 0,0,0,0,0,255,7,240,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,12,1,128,12,1,0,6,2, - 0,3,252,0,20,27,81,23,2,0,1,134,0,3,142,0, - 1,134,0,0,0,0,0,0,0,0,0,0,255,131,240,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,12, - 0,128,12,1,0,6,2,0,3,252,0,19,28,84,21,1, - 0,0,4,0,0,12,0,0,24,0,0,16,0,0,32,0, - 0,0,0,0,0,0,255,143,224,30,3,128,14,3,0,14, - 2,0,7,2,0,7,4,0,3,132,0,1,200,0,1,200, - 0,0,240,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,254,0,17,21,63,20,2,0,255,128,0,28,0, - 0,28,0,0,31,240,0,28,12,0,28,6,0,28,3,0, - 28,3,0,28,3,128,28,3,128,28,3,0,28,3,0,28, - 6,0,28,12,0,31,240,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,255,128,0,13,21,42,15,1,0, - 7,192,12,96,24,112,56,112,56,112,56,96,56,192,59,0, - 56,192,56,96,56,48,56,48,56,56,56,56,56,56,56,56, - 58,56,63,56,62,48,60,48,251,192,13,21,42,15,1,0, - 96,0,96,0,48,0,24,0,8,0,4,0,0,0,31,0, - 97,128,65,192,97,192,113,192,1,192,15,192,49,192,97,192, - 193,192,193,200,195,200,196,216,56,240,13,21,42,15,1,0, - 0,192,1,192,1,128,3,0,6,0,4,0,0,0,31,0, - 33,128,96,192,112,192,112,192,0,192,7,192,56,192,96,192, - 224,192,224,200,225,200,226,216,60,112,13,21,42,15,1,0, - 4,0,12,0,14,0,26,0,17,0,32,128,0,0,31,0, - 33,128,97,192,113,192,113,192,1,192,15,192,49,192,97,192, - 225,192,225,200,225,200,226,216,60,240,13,20,40,15,1,0, - 24,0,63,128,71,128,0,0,0,0,0,0,31,0,33,128, - 97,192,113,192,113,192,1,192,15,192,49,192,97,192,225,192, - 225,200,225,200,226,216,60,240,13,20,40,15,1,0,97,128, - 97,192,97,128,0,0,0,0,0,0,30,0,97,128,64,128, - 96,128,96,192,0,192,15,192,48,192,96,192,192,192,193,200, - 194,200,194,216,60,112,13,21,42,15,1,0,14,0,49,0, - 33,0,33,0,19,0,14,0,0,0,30,0,33,128,97,128, - 97,128,113,192,1,192,15,192,113,192,97,192,225,192,225,200, - 227,200,229,216,120,240,18,14,42,20,1,0,31,30,0,97, - 227,0,65,227,0,97,193,128,113,193,128,1,193,128,15,255, - 192,113,192,0,65,192,0,193,192,128,193,192,128,194,224,128, - 194,97,0,60,62,0,10,20,40,12,1,250,31,0,48,128, - 96,192,96,192,225,192,224,128,224,0,224,0,224,0,224,64, - 96,64,96,128,48,128,31,0,8,0,12,0,3,0,3,0, - 3,0,30,0,10,21,42,13,1,0,96,0,112,0,56,0, - 24,0,4,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,0,192,1,192,1,128, - 3,0,6,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,4,0,4,0,14,0, - 11,0,17,0,32,128,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,20,40,13,1,0,49,128,113,192,49,128, - 0,0,0,0,0,0,30,0,49,128,97,128,96,192,224,192, - 224,192,255,192,224,0,224,0,224,64,96,64,96,64,48,128, - 31,0,7,21,21,8,0,0,192,192,96,48,24,0,0,124, - 28,28,28,28,28,28,28,28,28,28,28,28,126,7,21,21, - 8,1,0,6,14,12,24,16,0,0,248,56,56,56,56,56, - 56,56,56,56,56,56,56,252,7,20,20,9,1,0,48,48, - 104,132,2,0,248,56,56,56,56,56,56,56,56,56,56,56, - 56,252,8,19,19,9,1,0,198,231,198,0,0,124,28,28, - 28,28,28,28,28,28,28,28,28,28,126,12,21,42,14,1, - 0,56,64,29,128,14,0,15,0,19,0,33,128,1,192,15, - 192,48,224,96,224,96,96,224,96,224,112,224,112,224,96,224, - 96,224,96,96,96,96,192,48,128,15,0,14,20,40,16,1, - 0,14,32,15,32,19,192,16,192,0,0,0,0,249,192,62, - 96,60,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,252,252,12,21,42,14,1,0,32, - 0,48,0,24,0,8,0,4,0,0,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,0, - 192,1,192,1,128,3,0,2,0,4,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,4, - 0,6,0,14,0,11,0,16,128,32,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,20,40,14,1,0,28, - 64,63,192,39,128,0,0,0,0,0,0,15,0,48,128,96, - 192,96,96,224,96,224,96,224,112,224,112,224,96,224,96,96, - 96,96,192,48,128,15,0,12,20,40,14,1,0,48,192,57, - 192,48,192,0,0,0,0,0,0,15,0,48,128,96,192,96, - 96,224,96,224,96,224,112,224,112,224,96,224,96,96,96,96, - 192,48,128,15,0,24,19,57,26,1,254,0,24,0,0,60, - 0,0,60,0,0,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,24,0,0,60,0,0,60, - 0,0,24,0,12,14,28,14,1,0,15,32,48,160,96,192, - 96,224,225,96,227,96,226,112,228,112,232,96,240,96,96,96, - 96,192,112,128,143,0,14,21,42,16,1,0,24,0,24,0, - 12,0,6,0,2,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,0,96,0,224, - 0,192,1,128,1,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,2,0,3,0, - 7,0,4,128,8,64,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,20,40,16,1,0,24,96,28,224, - 24,96,0,0,0,0,0,0,248,240,56,112,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,240, - 25,112,14,124,14,28,56,15,0,249,0,48,0,112,0,96, - 0,192,1,128,0,0,0,0,254,124,24,16,24,16,28,16, - 12,32,12,32,14,32,6,64,6,64,6,64,3,128,3,128, - 3,128,1,128,1,0,1,0,1,0,98,0,114,0,100,0, - 56,0,12,28,56,14,1,249,56,0,248,0,56,0,56,0, - 56,0,56,0,56,0,57,224,62,112,60,112,56,112,56,112, - 56,112,56,96,56,96,56,192,56,128,57,128,58,0,60,0, - 56,0,56,0,56,0,56,0,56,0,56,0,48,0,192,0, - 14,26,52,15,0,249,12,48,14,112,12,48,0,0,0,0, - 254,60,24,16,24,16,28,32,12,32,12,32,14,32,6,64, - 6,64,7,64,3,128,3,128,3,128,1,0,1,0,1,0, - 1,0,114,0,114,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=28 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21n[722] U8G_FONT_SECTION("u8g_font_osr21n") = { - 0,76,38,232,247,21,0,0,0,0,42,58,0,22,250,21, - 0,10,12,24,14,2,9,12,0,14,0,204,64,228,192,117, - 192,14,0,30,0,229,192,196,192,12,0,14,0,12,0,24, - 25,75,26,1,252,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,255,255,255,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 4,8,8,8,2,251,224,240,240,16,16,16,32,64,7,2, - 2,11,2,7,254,254,4,4,4,8,2,0,96,240,240,96, - 9,28,56,13,2,250,0,128,0,128,1,128,1,0,1,0, - 1,0,2,0,2,0,2,0,6,0,4,0,4,0,12,0, - 8,0,8,0,24,0,16,0,16,0,16,0,32,0,32,0, - 32,0,64,0,64,0,64,0,192,0,128,0,128,0,14,21, - 42,17,1,0,7,128,24,64,48,32,32,48,96,16,96,24, - 96,24,224,24,224,24,224,24,224,28,224,28,224,24,224,24, - 224,24,96,24,96,24,96,48,48,32,16,96,15,192,10,21, - 42,17,3,0,2,0,6,0,6,0,14,0,254,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,12,21, - 42,17,2,0,31,0,32,192,64,96,128,112,128,112,192,112, - 240,112,112,112,32,96,0,224,0,192,1,0,6,0,12,0, - 24,0,48,16,96,16,64,16,224,112,255,240,255,240,12,21, - 42,17,2,0,31,0,97,192,192,224,224,96,240,96,112,112, - 0,96,0,96,0,224,48,192,63,0,0,192,0,96,0,112, - 0,112,96,112,240,112,240,112,192,96,192,192,127,128,14,21, - 42,17,2,0,0,64,0,192,1,192,1,192,3,192,7,192, - 5,192,13,192,9,192,17,192,49,192,33,192,65,192,193,192, - 255,252,1,192,1,192,1,192,1,192,1,192,15,252,12,21, - 42,17,2,0,96,64,127,128,127,0,64,0,64,0,64,0, - 64,0,95,0,96,192,64,96,64,96,0,112,0,112,0,112, - 96,112,240,112,240,112,224,96,192,224,64,192,63,128,12,21, - 42,17,2,0,7,128,24,64,16,96,48,224,96,224,96,192, - 96,0,224,0,231,128,232,192,240,96,240,96,224,112,224,112, - 224,112,224,112,96,112,96,96,112,96,48,192,31,128,11,21, - 42,17,3,0,255,224,255,224,192,32,128,32,128,64,128,64, - 0,64,0,128,1,0,1,0,2,0,6,0,6,0,12,0, - 12,0,12,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,17,2,0,15,128,48,96,96,48,224,24,224,24,224,24, - 224,24,240,16,124,32,63,192,15,224,51,240,96,248,224,56, - 224,28,224,28,224,24,224,24,96,24,112,48,31,192,12,21, - 42,17,2,0,15,0,48,128,96,64,96,96,224,96,224,96, - 224,112,224,112,224,112,96,112,96,240,49,176,14,48,0,48, - 0,32,48,96,112,96,112,64,96,192,96,128,63,0,4,14, - 14,8,2,0,96,240,240,96,0,0,0,0,0,0,96,240, - 240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 4 y=17 dx=32 dy= 0 ascent=23 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21r[4396] U8G_FONT_SECTION("u8g_font_osr21r") = { - 0,76,38,232,247,21,5,131,12,189,32,127,249,23,249,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=35 x= 7 y=21 dx=38 dy= 0 ascent=35 len=140 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =35 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26[13186] U8G_FONT_SECTION("u8g_font_osr26") = { - 0,94,46,227,245,26,7,96,17,82,32,255,248,35,246,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,0,4,25,25,10,3,248,96,240,240, - 240,96,64,64,96,96,96,96,96,96,96,96,96,96,240,240, - 240,240,240,240,240,96,12,25,50,21,4,252,1,0,1,0, - 1,0,1,0,7,192,25,32,57,48,113,48,113,112,225,112, - 225,32,225,0,225,0,225,0,225,0,225,0,113,16,113,16, - 57,16,29,32,7,192,1,0,1,0,1,0,1,0,20,25, - 75,25,2,0,0,15,128,0,24,96,0,48,32,0,96,112, - 0,192,240,0,192,240,1,192,224,1,192,0,1,192,0,1, - 192,0,1,192,0,63,192,0,1,254,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,57,128,16, - 199,128,16,131,128,48,131,224,96,134,255,192,120,63,128,18, - 16,48,22,2,5,195,241,192,124,15,128,48,7,0,32,3, - 0,96,1,0,64,1,128,64,0,128,64,0,128,64,0,128, - 64,0,128,64,1,128,96,1,0,32,3,0,48,7,0,124, - 15,128,227,241,192,20,25,75,22,1,0,255,7,240,60,1, - 192,28,1,128,30,1,0,14,3,0,15,2,0,7,6,0, - 7,132,0,3,140,0,3,136,0,1,216,0,1,208,0,1, - 224,0,31,255,0,0,224,0,0,224,0,31,255,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,15,254,0,2,33,33,10,4,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,13,32,64, - 23,4,249,7,128,24,64,16,96,48,224,48,224,48,64,56, - 0,28,0,30,0,15,0,23,128,99,192,129,224,128,240,128, - 120,128,24,192,24,224,8,120,8,60,16,30,32,15,64,7, - 128,3,192,1,192,0,224,16,96,56,96,56,96,48,64,16, - 192,15,0,10,4,8,16,3,20,96,192,225,192,225,192,96, - 192,26,26,104,30,2,1,0,255,192,0,3,0,48,0,4, - 0,8,0,8,0,4,0,16,30,2,0,32,113,225,0,32, - 224,225,0,65,192,96,128,65,192,96,128,129,128,32,64,131, - 128,32,64,131,128,0,64,131,128,0,64,131,128,0,64,131, - 128,0,64,131,128,0,64,131,128,32,64,65,192,64,128,65, - 192,64,128,32,224,65,0,32,112,129,0,16,31,2,0,8, - 0,4,0,4,0,8,0,3,0,48,0,0,255,192,0,9, - 13,26,13,2,12,120,0,132,0,198,0,198,0,14,0,54, - 0,70,0,198,0,198,128,206,128,115,0,0,0,255,0,10, - 14,28,18,4,2,16,64,48,128,97,128,97,0,195,0,195, - 0,195,0,195,0,195,0,67,0,97,0,32,128,16,192,8, - 0,18,7,21,22,2,6,255,255,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,9,2,4,13, - 2,8,255,128,255,128,26,26,104,30,2,1,0,255,192,0, - 3,0,48,0,4,0,8,0,8,0,4,0,19,255,2,0, - 32,225,193,0,32,224,225,0,64,224,224,128,64,224,224,128, - 128,224,224,64,128,224,224,64,128,225,192,64,128,254,0,64, - 128,225,128,64,128,224,192,64,128,224,224,64,128,224,224,64, - 64,224,228,128,64,224,228,128,32,224,233,0,35,248,121,0, - 16,0,2,0,8,0,4,0,4,0,8,0,3,0,48,0, - 0,255,192,0,9,1,2,15,3,21,255,128,10,9,18,22, - 6,16,30,0,97,128,192,128,128,64,128,64,128,64,64,128, - 97,128,30,0,30,25,100,34,2,255,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,255,255,255,252,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,255,252,10,15, - 30,16,3,10,63,0,67,128,129,192,129,192,225,192,225,192, - 1,128,3,0,6,0,8,0,48,0,64,64,64,64,255,192, - 255,192,10,16,32,16,4,9,62,0,67,0,193,128,225,128, - 225,128,1,128,3,0,124,0,3,128,1,192,1,192,225,192, - 225,192,129,192,131,128,126,0,6,6,6,16,7,19,12,28, - 56,48,96,192,19,27,81,22,2,246,96,24,0,224,60,0, - 224,60,0,224,60,0,224,60,0,224,60,0,224,60,0,224, - 60,0,224,60,0,192,24,0,64,24,0,64,24,0,64,56, - 0,96,48,32,112,124,96,95,231,224,71,195,192,128,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,224,0,0,224, - 0,0,224,0,0,240,0,0,96,0,0,15,31,62,19,2, - 251,31,254,62,16,126,16,254,16,254,16,254,16,254,16,254, - 16,254,16,126,16,62,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4, - 5,5,10,3,9,96,240,240,240,96,7,7,7,16,4,248, - 16,32,28,6,6,134,124,8,15,15,16,4,10,8,24,248, - 24,24,24,24,24,24,24,24,24,24,24,255,9,13,26,15, - 3,12,28,0,99,0,67,0,193,128,193,128,193,128,193,128, - 193,128,67,0,99,0,28,0,0,0,255,128,9,14,28,17, - 4,2,132,0,66,0,99,0,33,0,49,128,49,128,49,128, - 49,128,49,128,33,128,99,0,67,0,134,0,4,0,24,25, - 75,31,4,0,8,0,16,24,0,48,248,0,32,24,0,64, - 24,0,64,24,0,128,24,1,128,24,1,0,24,2,0,24, - 6,0,24,4,12,24,8,28,24,8,28,24,16,44,255,48, - 76,0,32,76,0,64,140,0,192,140,0,129,12,1,2,12, - 1,3,255,2,0,12,6,0,12,4,0,12,8,0,127,24, - 25,75,31,4,0,8,0,32,24,0,96,248,0,64,24,0, - 192,24,0,128,24,1,0,24,1,0,24,2,0,24,6,0, - 24,4,0,24,12,248,24,9,14,24,18,15,24,18,7,255, - 35,135,0,97,135,0,64,14,0,128,12,0,128,24,1,0, - 32,3,0,193,2,1,1,6,1,1,4,3,255,8,3,254, - 24,25,75,31,4,0,62,0,32,67,0,32,193,128,64,225, - 128,192,1,128,128,3,1,128,124,1,0,3,130,0,1,194, - 0,1,196,0,225,204,24,225,200,24,129,208,56,131,144,88, - 126,32,88,0,96,152,0,64,152,0,193,24,0,129,24,1, - 2,24,3,3,255,2,0,24,6,0,24,4,0,24,8,0, - 127,13,25,50,17,1,248,6,0,15,0,15,0,15,0,6, - 0,7,0,8,192,16,64,16,64,16,192,0,128,1,0,7, - 0,14,0,28,0,56,0,112,0,240,112,224,120,224,120,224, - 24,224,24,112,16,56,96,15,192,25,34,136,28,2,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,48,0,0,0, - 24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,12,0,0,0,28,0,0,0,28,0,0,0, - 30,0,0,0,62,0,0,0,46,0,0,0,47,0,0,0, - 103,0,0,0,103,0,0,0,71,128,0,0,195,128,0,0, - 195,128,0,0,131,192,0,1,129,192,0,1,129,192,0,3, - 1,224,0,3,255,224,0,2,0,224,0,6,0,240,0,6, - 0,112,0,6,0,112,0,12,0,120,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,34,136,28,2,0,0,0,192, - 0,0,1,192,0,0,3,128,0,0,7,0,0,0,6,0, - 0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0, - 0,0,12,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,46,0,0,0,47,0,0,0,103,0, - 0,0,103,0,0,0,71,128,0,0,195,128,0,0,195,128, - 0,1,131,192,0,1,129,192,0,1,129,192,0,3,1,224, - 0,3,255,224,0,2,0,224,0,6,0,240,0,6,0,112, - 0,4,0,112,0,12,0,120,0,12,0,56,0,30,0,124, - 0,255,195,255,128,25,34,136,28,2,0,0,8,0,0,0, - 28,0,0,0,30,0,0,0,51,0,0,0,65,128,0,1, - 128,64,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 12,0,0,0,28,0,0,0,28,0,0,0,30,0,0,0, - 62,0,0,0,46,0,0,0,47,0,0,0,103,0,0,0, - 103,0,0,0,71,128,0,0,195,128,0,0,195,128,0,0, - 131,192,0,1,129,192,0,1,129,192,0,3,1,224,0,3, - 255,224,0,2,0,224,0,6,0,240,0,6,0,112,0,6, - 0,112,0,12,0,120,0,12,0,120,0,30,0,120,0,255, - 195,255,128,25,33,132,28,2,0,0,112,64,0,0,252,64, - 0,0,159,192,0,1,7,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,12,0,0,0,28,0, - 0,0,28,0,0,0,30,0,0,0,62,0,0,0,46,0, - 0,0,47,0,0,0,103,0,0,0,103,0,0,0,71,128, - 0,0,195,128,0,0,195,128,0,1,131,192,0,1,129,192, - 0,1,129,192,0,3,1,224,0,3,255,224,0,2,0,224, - 0,6,0,240,0,6,0,112,0,4,0,112,0,12,0,120, - 0,12,0,56,0,30,0,124,0,255,195,255,128,25,33,132, - 28,2,0,0,193,128,0,1,193,192,0,1,193,192,0,0, - 193,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,24,0,0,0,28,0,0,0,28,0,0,0, - 60,0,0,0,62,0,0,0,62,0,0,0,110,0,0,0, - 79,0,0,0,71,0,0,0,199,0,0,0,199,128,0,0, - 131,128,0,1,131,128,0,1,129,192,0,1,1,192,0,3, - 1,192,0,3,255,224,0,2,0,224,0,6,0,224,0,6, - 0,112,0,4,0,112,0,12,0,112,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,35,140,28,2,0,0,28,0, - 0,0,34,0,0,0,65,0,0,0,65,0,0,0,65,0, - 0,0,65,0,0,0,34,0,0,0,28,0,0,0,0,0, - 0,0,8,0,0,0,12,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,62,0,0,0,46,0,0,0,47,0, - 0,0,111,0,0,0,71,0,0,0,71,128,0,0,199,128, - 0,0,131,128,0,1,131,192,0,1,131,192,0,1,1,192, - 0,3,1,224,0,3,255,224,0,2,0,224,0,6,0,240, - 0,6,0,240,0,4,0,112,0,12,0,120,0,12,0,120, - 0,28,0,120,0,255,195,255,128,33,26,130,36,1,0,0, - 7,255,255,128,0,1,224,7,128,0,1,224,3,128,0,3, - 224,1,128,0,2,224,1,128,0,6,224,0,128,0,4,224, - 0,128,0,12,224,32,128,0,8,224,32,0,0,24,224,32, - 0,0,16,224,96,0,0,48,224,96,0,0,48,255,224,0, - 0,96,224,96,0,0,96,224,96,0,0,192,224,32,0,0, - 192,224,32,128,1,255,224,32,128,1,0,224,0,128,3,0, - 224,0,128,2,0,224,1,128,6,0,224,1,128,6,0,224, - 1,128,14,0,224,3,128,30,0,224,15,128,255,199,255,255, - 128,19,34,102,24,3,249,3,252,64,14,6,96,28,3,224, - 24,1,224,56,0,224,120,0,224,112,0,96,112,0,96,240, - 0,96,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,32,112,0,32, - 120,0,96,56,0,64,56,0,64,24,0,128,12,0,128,6, - 3,0,3,204,0,0,112,0,0,64,0,0,240,0,0,28, - 0,0,28,0,0,28,0,2,28,0,1,240,0,21,34,102, - 25,2,0,3,0,0,3,128,0,1,192,0,0,192,0,0, - 96,0,0,16,0,0,0,0,0,0,0,255,255,248,14,0, - 120,14,0,56,14,0,24,14,0,24,14,0,8,14,0,8, - 14,4,8,14,4,0,14,4,0,14,12,0,14,12,0,15, - 252,0,14,12,0,14,4,0,14,4,0,14,4,8,14,4, - 8,14,0,8,14,0,8,14,0,24,14,0,24,14,0,56, - 14,0,56,14,0,248,255,255,248,21,34,102,25,2,0,0, - 3,0,0,7,128,0,7,0,0,12,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,255,248,14,0,120,14,0,56, - 14,0,24,14,0,24,14,0,8,14,0,8,14,4,8,14, - 4,0,14,4,0,14,12,0,14,12,0,15,252,0,14,12, - 0,14,4,0,14,4,0,14,4,8,14,4,8,14,0,8, - 14,0,8,14,0,24,14,0,24,14,0,56,14,0,56,14, - 0,248,255,255,248,21,34,102,25,2,0,0,48,0,0,48, - 0,0,120,0,0,204,0,1,134,0,2,1,128,0,0,0, - 0,0,0,255,255,248,14,0,120,14,0,56,14,0,24,14, - 0,24,14,0,8,14,0,8,14,4,8,14,4,0,14,4, - 0,14,12,0,14,12,0,15,252,0,14,12,0,14,4,0, - 14,4,0,14,4,8,14,4,8,14,0,8,14,0,8,14, - 0,24,14,0,24,14,0,56,14,0,56,14,0,248,255,255, - 248,21,33,99,25,2,0,1,131,0,3,135,0,3,135,0, - 1,131,0,0,0,0,0,0,0,0,0,0,255,255,248,14, - 0,120,14,0,56,14,0,24,14,0,24,14,0,8,14,0, - 8,14,4,8,14,4,0,14,4,0,14,12,0,14,12,0, - 15,252,0,14,12,0,14,4,0,14,4,0,14,4,8,14, - 4,8,14,0,8,14,0,8,14,0,24,14,0,24,14,0, - 56,14,0,56,14,0,248,255,255,248,10,34,68,14,2,0, - 192,0,224,0,112,0,56,0,8,0,4,0,0,0,0,0, - 255,192,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,192,10,34,68,14,2,0,0,192,1,192,1,128, - 3,0,6,0,4,0,0,0,0,0,255,192,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,10,34, - 68,14,2,0,4,0,14,0,30,0,59,0,97,128,128,64, - 0,0,0,0,255,192,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,255,192,11,33,66,14,2,0,96,192, - 224,224,224,224,96,192,0,0,0,0,0,0,127,224,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,127,224, - 24,26,78,27,2,0,255,255,0,14,0,192,14,0,112,14, - 0,56,14,0,60,14,0,28,14,0,30,14,0,30,14,0, - 14,14,0,15,14,0,15,14,0,15,255,224,15,14,0,15, - 14,0,15,14,0,15,14,0,15,14,0,14,14,0,30,14, - 0,30,14,0,28,14,0,56,14,0,56,14,0,112,14,0, - 192,255,255,0,25,33,132,28,2,0,0,120,32,0,0,254, - 96,0,0,143,192,0,0,131,128,0,0,0,0,0,0,0, - 0,0,0,0,0,0,254,0,255,128,15,0,28,0,15,128, - 8,0,15,128,8,0,11,192,8,0,11,192,8,0,9,224, - 8,0,8,240,8,0,8,240,8,0,8,120,8,0,8,60, - 8,0,8,60,8,0,8,30,8,0,8,30,8,0,8,15, - 8,0,8,7,136,0,8,7,136,0,8,3,200,0,8,1, - 232,0,8,1,232,0,8,0,248,0,8,0,120,0,8,0, - 120,0,8,0,56,0,28,0,24,0,255,128,24,0,21,34, - 102,26,3,0,3,0,0,7,0,0,3,128,0,1,192,0, - 0,64,0,0,32,0,0,0,0,0,32,0,3,220,0,6, - 3,0,12,1,128,28,1,192,56,0,224,56,0,224,120,0, - 240,112,0,112,112,0,112,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,240,0,120,112, - 0,112,112,0,112,120,0,240,56,0,224,56,0,224,28,1, - 192,12,1,128,6,3,0,3,254,0,21,34,102,26,3,0, - 0,6,0,0,7,0,0,14,0,0,28,0,0,16,0,0, - 32,0,0,0,0,0,32,0,3,220,0,6,3,0,12,1, - 128,28,1,192,56,0,224,56,0,224,120,0,240,112,0,112, - 112,0,112,240,0,120,240,0,120,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,112,0,112,112,0, - 112,120,0,240,56,0,224,56,0,224,28,1,192,12,1,128, - 6,3,0,3,254,0,21,34,102,26,3,0,0,32,0,0, - 112,0,0,112,0,0,216,0,1,4,0,6,3,0,0,0, - 0,0,32,0,3,220,0,6,3,0,12,1,128,28,1,192, - 56,0,224,56,0,224,120,0,240,112,0,112,112,0,112,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,112,0,112,112,0,112,120,0,240, - 56,0,224,56,0,224,28,1,192,12,1,128,6,3,0,3, - 254,0,21,33,99,26,3,0,3,225,0,3,255,0,4,62, - 0,0,0,0,0,0,0,0,0,0,0,32,0,3,220,0, - 6,3,0,12,1,128,28,1,192,56,0,224,56,0,224,120, - 0,240,112,0,112,112,0,112,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 112,0,112,112,0,112,120,0,240,56,0,224,56,0,224,28, - 1,192,12,1,128,6,3,0,3,254,0,21,33,99,26,3, - 0,3,6,0,7,7,0,7,7,0,3,6,0,0,0,0, - 0,0,0,0,32,0,3,220,0,6,3,0,12,1,128,28, - 1,192,56,0,224,56,0,224,120,0,240,112,0,112,112,0, - 112,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,112,0,112,112,0,112,120, - 0,240,56,0,224,56,0,224,28,1,192,12,1,128,6,3, - 0,3,254,0,22,23,69,34,6,254,128,0,4,192,0,12, - 96,0,24,48,0,48,24,0,96,12,0,192,6,1,128,3, - 3,0,1,134,0,0,204,0,0,120,0,0,48,0,0,120, - 0,0,204,0,1,134,0,3,3,0,6,1,128,12,0,192, - 24,0,96,48,0,48,96,0,24,192,0,12,128,0,0,21, - 27,81,26,3,0,0,32,0,3,222,24,6,3,48,12,1, - 224,28,1,192,56,0,224,56,1,224,120,3,240,112,2,112, - 112,6,112,240,12,120,240,24,120,240,16,120,240,48,120,240, - 96,120,240,192,120,240,192,120,241,128,120,115,0,112,114,0, - 112,126,0,240,60,0,224,56,0,224,28,1,192,60,1,128, - 102,3,0,195,222,0,25,34,136,29,2,0,0,192,0,0, - 0,224,0,0,0,224,0,0,0,48,0,0,0,16,0,0, - 0,8,0,0,0,0,0,0,0,0,0,0,255,192,255,128, - 14,0,14,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 6,0,8,0,7,0,8,0,3,0,16,0,1,192,32,0, - 0,127,192,0,25,34,136,29,2,0,0,0,192,0,0,1, - 192,0,0,3,128,0,0,7,0,0,0,4,0,0,0,8, - 0,0,0,0,0,0,0,0,0,0,255,192,255,128,14,0, - 14,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,6,0, - 8,0,7,0,8,0,3,0,16,0,1,192,32,0,0,127, - 192,0,25,34,136,29,2,0,0,8,0,0,0,28,0,0, - 0,30,0,0,0,55,0,0,0,65,128,0,1,128,96,0, - 0,0,0,0,0,0,0,0,255,192,255,128,14,0,14,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,6,0,8,0, - 7,0,8,0,3,128,16,0,1,192,96,0,0,127,192,0, - 25,33,132,29,2,0,0,192,192,0,0,225,192,0,0,225, - 192,0,0,192,192,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,192,255,128,14,0,14,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,6,0,8,0,7,0,8,0,3,0, - 16,0,1,192,32,0,0,127,192,0,24,34,102,27,2,0, - 0,0,192,0,1,192,0,3,128,0,7,0,0,4,0,0, - 8,0,0,0,0,0,0,0,255,225,255,31,0,56,15,0, - 48,7,128,48,7,128,32,3,192,96,3,192,64,1,224,128, - 0,224,128,0,241,0,0,113,0,0,122,0,0,58,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,1,255,224,21,26,78,25,2,0,255,224,0,14, - 0,0,14,0,0,14,0,0,14,0,0,15,255,0,14,1, - 192,14,0,224,14,0,240,14,0,120,14,0,120,14,0,120, - 14,0,120,14,0,120,14,0,240,14,0,224,14,1,192,15, - 255,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,255,224,0,16,26,52,19,1,0, - 1,240,3,28,6,14,14,14,28,14,28,14,28,12,28,28, - 28,48,29,192,28,48,28,24,28,12,28,14,28,6,28,7, - 28,7,28,7,28,7,28,7,28,135,29,199,29,199,29,142, - 29,140,252,120,16,25,50,19,2,1,112,0,112,0,56,0, - 28,0,12,0,2,0,0,0,0,0,15,128,48,224,32,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,25,50,19, - 2,1,0,112,0,240,0,224,1,128,3,0,2,0,0,0, - 0,0,15,128,48,224,96,112,96,112,120,112,120,112,0,112, - 1,240,30,112,112,112,96,112,224,112,224,113,224,241,225,113, - 113,126,62,60,16,25,50,19,2,0,6,0,7,0,7,0, - 13,128,24,192,48,96,0,0,0,0,15,128,48,224,96,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,24,48,19, - 2,0,30,48,63,224,35,192,0,0,0,0,0,0,0,0, - 15,128,48,224,96,112,96,112,120,112,120,112,0,112,1,240, - 30,112,112,112,96,112,224,112,224,113,224,241,225,113,113,126, - 62,60,16,24,48,19,2,0,48,96,112,224,112,224,48,96, - 0,0,0,0,0,0,15,0,48,192,96,96,96,96,112,96, - 112,96,0,96,1,224,30,96,112,96,96,96,224,96,224,97, - 224,225,225,99,113,126,62,60,16,25,50,19,2,0,7,0, - 24,192,16,64,16,64,24,192,7,0,0,0,0,0,15,128, - 48,224,96,112,96,112,120,112,120,112,0,112,1,240,30,112, - 112,112,96,112,224,112,224,113,224,241,225,113,113,126,62,60, - 22,17,51,26,2,0,15,135,192,48,236,112,96,120,48,112, - 120,56,120,112,24,56,112,28,0,112,28,7,255,252,56,112, - 0,112,112,0,224,112,0,224,112,4,224,248,8,224,184,8, - 225,56,16,113,28,48,62,7,192,12,24,48,16,2,249,15, - 128,24,96,48,48,112,48,96,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,0,96,16,112,16,48,32,24,96,15, - 128,2,0,6,0,1,128,0,192,0,192,16,192,15,128,13, - 25,50,17,2,1,48,0,56,0,28,0,12,0,6,0,3, - 0,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,16,24,96,7,128,13,25,50,17,2,1,0,112,0, - 112,0,224,0,192,1,128,3,0,0,0,0,0,15,128,24, - 224,48,96,112,112,96,48,224,56,224,56,255,248,224,0,224, - 0,224,0,224,8,112,16,112,16,48,16,24,96,7,128,13, - 25,50,17,2,0,3,0,3,0,7,128,5,128,8,64,16, - 32,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,32,24,96,7,128,13,24,48,17,2,0,24,96,56, - 112,56,112,24,96,0,0,0,0,0,0,15,128,24,224,48, - 96,112,48,96,48,224,56,224,56,255,248,224,0,224,0,224, - 0,224,8,112,16,112,16,48,32,24,96,7,128,9,25,50, - 11,0,0,192,0,224,0,112,0,56,0,8,0,4,0,0, - 0,0,0,62,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,8,25,25,10,2,0,3,7,7,12,24, - 48,0,0,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,9,25,50,11,1,0,24,0,28,0,60,0, - 54,0,99,0,128,128,0,0,0,0,124,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,127,0,9,24,48,11, - 1,0,97,128,227,128,227,128,97,128,0,0,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 127,128,14,26,52,18,2,0,28,16,14,48,15,192,7,128, - 7,128,13,192,48,224,0,224,0,112,7,240,24,120,48,56, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,24,112,56,48,48,24,96,7,128,17,24,72,21, - 2,0,7,4,0,15,204,0,9,248,0,8,112,0,0,0, - 0,0,0,0,0,0,0,248,248,0,57,28,0,58,14,0, - 60,14,0,60,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,254,63,128,14,25,50,18,2,1, - 56,0,56,0,28,0,12,0,6,0,3,0,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,25,50,18,2,1,0,48,0,112,0,224,0,192, - 1,128,1,0,0,0,0,0,7,128,24,96,48,48,112,56, - 112,24,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,24,112,56,48,48,24,96,7,128,14,25,50,18,2,0, - 3,0,3,0,7,128,4,128,8,64,16,32,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,24,48,18,2,0,30,16,31,240,33,224,0,0, - 0,0,0,0,0,0,7,128,24,96,48,48,112,56,112,24, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,24, - 112,56,48,48,24,96,7,128,14,24,48,18,2,0,24,48, - 56,112,56,112,24,48,0,0,0,0,0,0,7,128,24,96, - 48,48,112,56,112,24,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,24,112,56,48,48,24,96,7,128,30,23, - 92,34,2,254,0,3,0,0,0,7,128,0,0,7,128,0, - 0,7,128,0,0,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,252,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,7,128,0,0,7,128,0,0,7,128,0,0,3,0,0, - 14,17,34,18,2,0,7,132,24,104,48,56,112,56,112,56, - 224,92,224,156,225,156,227,28,226,28,228,28,232,28,120,24, - 112,56,48,48,88,96,135,192,17,25,75,20,1,1,28,0, - 0,28,0,0,14,0,0,3,0,0,1,0,0,0,128,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,17,25,75,20,1,1,0, - 28,0,0,60,0,0,48,0,0,96,0,0,192,0,0,128, - 0,0,0,0,0,0,0,248,62,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,30,0,56,30, - 0,56,46,0,28,78,0,15,143,128,17,25,75,20,1,0, - 0,128,0,1,192,0,1,192,0,3,96,0,4,48,0,8, - 8,0,0,0,0,0,0,0,248,62,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,30,0,56, - 30,0,56,46,0,28,78,0,15,143,128,17,24,72,20,1, - 0,12,48,0,28,56,0,28,56,0,12,48,0,0,0,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,18,33,99,19,1,249,0, - 12,0,0,28,0,0,24,0,0,48,0,0,96,0,0,64, - 0,0,0,0,0,0,0,255,31,192,28,6,0,28,4,0, - 12,4,0,14,4,0,14,4,0,6,8,0,7,8,0,7, - 8,0,3,16,0,3,144,0,3,144,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,113,128,0,113,0,0,114,0,0,60, - 0,0,16,34,68,19,1,247,12,0,60,0,92,0,28,0, - 28,0,28,0,28,0,28,0,28,60,28,126,28,143,29,7, - 30,7,30,7,30,7,28,6,28,14,28,14,28,12,28,24, - 28,16,28,32,28,64,29,128,31,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,224,0,17,32,96,19, - 1,248,6,12,0,7,28,0,7,28,0,6,12,0,0,0, - 0,0,0,0,0,0,0,255,31,128,28,6,0,28,4,0, - 14,4,0,14,4,0,14,8,0,7,8,0,7,8,0,7, - 16,0,3,144,0,3,144,0,3,160,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,121,0,0,121,0,0,114,0,0,60, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=30 h=34 x= 4 y=10 dx=34 dy= 0 ascent=27 len=124 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26n[955] U8G_FONT_SECTION("u8g_font_osr26n") = { - 0,94,46,227,245,25,0,0,0,0,42,58,0,27,249,25, - 0,13,15,30,18,3,10,7,0,7,0,7,0,195,24,226, - 56,242,120,58,224,7,0,7,128,122,240,242,120,226,56,7, - 0,7,0,7,0,30,31,124,34,2,250,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,255,255,255,252,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,5,11,11,10,2,250,112,248,248, - 120,8,8,8,16,16,32,64,9,2,4,13,2,8,255,128, - 255,128,4,5,5,10,3,0,96,240,240,240,96,12,34,68, - 16,2,249,0,16,0,48,0,48,0,32,0,96,0,96,0, - 64,0,192,0,192,0,128,0,128,1,128,1,0,1,0,3, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,24,0,16,0,48,0,48,0,32,0,96,0,96, - 0,64,0,192,0,192,0,17,25,75,21,2,0,3,224,0, - 14,56,0,28,28,0,24,12,0,56,14,0,112,7,0,112, - 7,0,112,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 112,7,0,112,7,0,112,7,0,56,14,0,56,14,0,24, - 12,0,12,24,0,7,112,0,12,25,50,21,4,0,1,0, - 3,0,3,0,15,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,240, - 15,25,50,21,3,0,15,192,48,112,96,56,64,60,192,30, - 192,30,224,30,248,30,248,30,120,28,0,60,0,56,0,112, - 0,224,1,192,3,0,14,0,28,4,56,4,48,4,96,4, - 96,12,255,252,255,252,255,252,15,25,50,21,3,0,15,192, - 48,112,32,56,96,28,112,28,120,28,120,28,48,28,0,28, - 0,56,0,112,31,192,24,112,0,56,0,60,0,30,0,30, - 112,30,248,30,248,30,248,30,192,60,192,56,96,112,63,224, - 17,25,75,21,2,0,0,16,0,0,48,0,0,112,0,0, - 112,0,0,240,0,1,240,0,1,112,0,3,112,0,6,112, - 0,6,112,0,12,112,0,8,112,0,24,112,0,48,112,0, - 32,112,0,96,112,0,192,112,0,255,255,128,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,7,255, - 128,15,26,52,21,3,0,32,0,48,56,63,240,63,192,47, - 0,32,0,32,0,32,0,32,0,39,192,56,112,48,56,32, - 60,32,28,0,30,0,30,0,30,0,30,120,30,248,30,248, - 28,240,60,224,60,96,56,112,112,63,192,15,25,50,21,3, - 0,3,224,6,24,12,12,24,28,56,60,48,60,112,16,112, - 0,112,0,243,224,246,56,252,28,248,28,248,14,240,14,240, - 14,240,14,240,14,112,14,112,14,112,12,56,28,56,24,24, - 56,14,224,14,25,50,21,3,0,255,252,255,252,255,252,192, - 12,128,8,128,8,128,8,128,16,0,16,0,32,0,96,0, - 64,0,128,1,128,1,128,3,0,3,0,7,0,7,0,15, - 128,15,128,15,128,15,128,15,128,7,128,17,25,75,21,2, - 0,7,240,0,28,28,0,48,14,0,112,6,0,224,3,0, - 224,3,0,224,3,0,240,3,0,240,6,0,124,6,0,127, - 140,0,31,240,0,7,252,0,25,254,0,48,63,0,96,15, - 128,224,7,128,224,3,128,224,3,128,224,3,128,224,3,0, - 96,7,0,112,6,0,56,12,0,15,248,0,15,25,50,21, - 3,0,7,192,24,96,48,48,112,56,112,28,224,28,224,28, - 224,30,224,30,224,30,224,30,112,62,112,62,56,94,15,158, - 0,30,0,28,0,28,56,28,120,28,120,56,112,56,96,112, - 48,224,31,192,4,17,17,10,3,0,96,240,240,240,96,0, - 0,0,0,0,0,0,96,240,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=34 x= 4 y=20 dx=38 dy= 0 ascent=28 len=130 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26r[6049] U8G_FONT_SECTION("u8g_font_osr26r") = { - 0,94,46,227,245,26,7,96,17,82,32,127,248,28,248,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=39 x= 8 y=23 dx=44 dy= 0 ascent=39 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29[16232] U8G_FONT_SECTION("u8g_font_osr29") = { - 0,107,51,223,244,29,9,148,21,166,32,255,247,39,245,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,11,0,0,5,28,28,11,3, - 247,112,248,248,248,112,0,32,32,32,32,32,32,112,112,112, - 112,112,112,112,112,248,248,248,248,248,248,248,112,14,28,56, - 24,5,252,0,128,0,128,0,128,0,128,0,128,7,224,12, - 152,24,136,56,140,112,156,112,188,240,188,240,152,240,128,240, - 128,240,128,240,128,240,132,112,132,112,132,56,132,24,136,14, - 144,3,224,0,128,0,128,0,128,0,128,23,28,84,30,3, - 0,0,3,240,0,6,24,0,28,12,0,24,14,0,48,62, - 0,112,62,0,112,62,0,112,24,0,112,0,0,240,0,0, - 240,0,0,240,0,31,240,0,32,255,128,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,224,0, - 0,224,0,62,224,2,67,192,2,128,224,4,129,127,60,194, - 63,248,60,15,240,20,20,60,24,2,4,64,0,32,225,248, - 112,119,254,224,62,7,192,24,1,128,48,0,192,48,0,192, - 96,0,96,96,0,96,96,0,96,96,0,96,96,0,96,96, - 0,96,48,0,192,48,0,192,24,1,128,62,7,192,119,254, - 224,225,248,112,64,0,32,22,28,84,24,1,0,255,131,252, - 62,0,112,30,0,96,14,0,64,15,0,64,15,0,128,7, - 128,128,7,129,0,3,193,0,3,194,0,1,226,0,1,228, - 0,0,252,0,0,248,0,0,120,0,31,255,192,0,120,0, - 0,120,0,31,255,192,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,7,255, - 128,2,37,37,12,5,249,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,0,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,15,36,72,26, - 4,248,7,192,12,32,24,48,48,120,48,120,48,112,56,0, - 56,0,28,0,30,0,15,0,31,192,35,224,97,240,64,248, - 192,60,192,30,192,14,224,6,240,6,120,6,60,4,31,12, - 15,152,7,224,3,224,0,224,0,112,0,112,0,56,56,56, - 60,56,56,48,48,48,24,96,7,128,12,4,8,18,3,22, - 96,96,240,240,240,240,96,96,30,29,116,34,2,1,0,127, - 248,0,1,192,14,0,3,0,3,0,4,0,0,128,8,0, - 0,64,16,7,196,32,32,24,108,16,32,48,60,16,64,112, - 28,8,64,224,12,8,192,224,12,8,129,224,4,4,129,224, - 0,4,129,224,0,4,129,224,0,4,129,224,0,4,129,224, - 0,4,129,224,4,4,192,224,4,8,64,224,8,8,64,112, - 8,8,32,112,24,16,48,24,48,48,16,15,192,32,8,0, - 0,64,4,0,0,128,3,0,3,0,1,192,14,0,0,127, - 248,0,11,14,28,16,3,14,60,0,102,0,67,0,99,0, - 99,0,7,0,27,0,99,0,195,0,195,32,231,32,121,192, - 0,0,127,192,10,16,32,19,4,1,24,64,48,192,32,128, - 97,128,97,0,195,0,195,0,195,0,195,0,195,0,195,0, - 97,128,97,128,48,128,16,64,8,0,20,8,24,24,2,7, - 255,255,240,255,255,240,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,10,2,4,14,2,9,255,192, - 255,192,30,29,116,34,2,1,0,127,248,0,1,192,14,0, - 3,0,3,0,4,0,0,128,8,0,0,64,19,255,192,32, - 32,112,240,48,32,112,120,16,64,112,120,8,64,112,120,8, - 192,112,120,8,128,112,112,4,128,112,224,4,128,127,128,4, - 128,112,224,4,128,112,112,4,128,112,112,4,128,112,120,4, - 128,112,120,8,64,112,120,136,64,112,120,136,32,112,56,144, - 32,112,57,16,19,252,30,32,8,0,0,64,4,0,0,128, - 3,0,3,0,1,192,14,0,0,127,248,0,11,2,4,19, - 4,23,255,224,255,224,11,10,20,23,6,18,31,0,96,128, - 64,64,128,32,128,32,128,32,128,32,64,64,96,128,31,0, - 35,28,140,39,2,254,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,192,255,255,255, - 255,192,11,17,34,18,4,11,31,0,99,192,129,192,128,224, - 192,224,224,224,112,224,1,192,1,128,3,0,12,0,24,0, - 32,32,64,32,64,96,255,224,255,224,11,17,34,18,5,11, - 31,0,97,192,192,192,224,224,240,224,0,224,0,192,97,128, - 126,0,1,128,0,192,0,224,224,224,240,224,224,192,129,192, - 127,0,7,7,7,18,8,21,6,14,28,56,48,96,128,21, - 30,90,25,3,245,96,6,0,224,15,0,240,15,0,240,15, - 0,240,15,0,224,15,0,224,15,0,224,15,0,224,15,0, - 224,15,0,224,6,0,64,6,0,64,6,0,64,6,0,96, - 12,8,96,14,24,88,57,248,79,241,248,67,224,112,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,224,0,0, - 224,0,0,240,0,0,240,0,0,112,0,0,112,0,0,17, - 35,105,23,3,250,15,255,128,63,140,0,127,140,0,127,140, - 0,255,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 127,140,0,127,140,0,63,140,0,7,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,5,5, - 5,11,3,10,112,248,248,248,112,8,8,8,18,5,248,48, - 32,60,6,7,7,15,252,9,17,34,19,5,11,4,0,12, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,10, - 14,28,16,3,14,30,0,51,0,97,128,192,192,192,192,192, - 192,192,192,192,192,193,192,97,128,35,0,30,0,0,0,255, - 192,10,16,32,20,5,1,134,0,195,0,65,0,97,128,32, - 192,48,192,48,192,48,192,48,192,48,192,48,192,97,128,97, - 128,67,0,130,0,4,0,27,28,112,35,5,0,4,0,12, - 0,12,0,8,0,28,0,24,0,252,0,16,0,28,0,32, - 0,28,0,96,0,28,0,64,0,28,0,192,0,28,0,128, - 0,28,1,128,0,28,3,0,0,28,2,0,0,28,6,7, - 0,28,4,15,0,28,12,15,0,28,24,23,0,255,144,23, - 0,0,48,39,0,0,32,71,0,0,96,71,0,0,192,135, - 0,0,129,7,0,1,129,255,224,1,0,7,0,3,0,7, - 0,6,0,7,0,6,0,7,0,12,0,63,224,27,28,112, - 35,5,0,4,0,4,0,12,0,12,0,28,0,8,0,252, - 0,16,0,28,0,48,0,28,0,32,0,28,0,96,0,28, - 0,64,0,28,0,128,0,28,1,128,0,28,1,0,0,28, - 3,31,0,28,6,99,192,28,4,129,192,28,12,128,224,28, - 8,192,224,255,152,224,224,0,48,240,224,0,32,1,192,0, - 96,1,128,0,64,3,0,0,192,12,0,1,128,24,0,1, - 0,32,32,3,0,64,32,2,0,64,96,6,0,255,224,12, - 0,255,224,28,28,112,36,5,0,31,0,6,0,97,192,4, - 0,192,224,8,0,224,224,24,0,240,224,16,0,0,192,48, - 0,1,128,96,0,126,0,64,0,97,128,192,0,0,192,128, - 0,0,225,128,0,96,227,3,128,240,226,3,128,224,230,7, - 128,129,196,7,128,67,136,11,128,62,24,19,128,0,16,19, - 128,0,48,35,128,0,96,99,128,0,64,67,128,0,192,131, - 128,0,128,255,240,1,128,3,128,3,0,3,128,2,0,3, - 128,6,0,3,128,4,0,31,240,15,28,56,19,1,247,3, - 128,7,192,7,192,7,192,3,128,0,0,3,128,4,64,8, - 32,8,32,8,96,0,96,0,192,1,128,7,0,14,0,28, - 0,56,0,120,0,240,60,240,62,240,62,240,6,240,6,112, - 6,120,12,28,24,7,224,29,38,152,32,2,0,0,224,0, - 0,0,240,0,0,0,112,0,0,0,56,0,0,0,12,0, - 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,15,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,240, - 0,0,192,120,0,0,128,120,0,1,128,120,0,1,255,252, - 0,1,0,60,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,30,0,15, - 128,255,224,255,248,29,38,152,32,2,0,0,0,48,0,0, - 0,112,0,0,0,240,0,0,0,224,0,0,1,128,0,0, - 3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0, - 15,128,0,0,15,128,0,0,15,128,0,0,31,192,0,0, - 19,192,0,0,51,192,0,0,49,224,0,0,33,224,0,0, - 97,224,0,0,96,240,0,0,64,240,0,0,192,240,0,0, - 192,120,0,0,128,120,0,1,128,120,0,1,255,252,0,3, - 0,60,0,3,0,30,0,3,0,30,0,6,0,30,0,6, - 0,15,0,6,0,15,0,14,0,15,0,31,0,31,192,255, - 224,255,248,29,38,152,32,2,0,0,6,0,0,0,7,0, - 0,0,15,128,0,0,29,128,0,0,56,192,0,0,96,48, - 0,0,128,8,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,6,0,0,0,7,0,0,0,7,0,0,0,15,128, - 0,0,15,128,0,0,15,128,0,0,31,192,0,0,19,192, - 0,0,51,192,0,0,49,224,0,0,33,224,0,0,97,224, - 0,0,96,240,0,0,64,240,0,0,192,240,0,0,192,120, - 0,0,128,120,0,1,128,120,0,1,255,252,0,1,0,60, - 0,3,0,28,0,3,0,30,0,6,0,30,0,6,0,15, - 0,6,0,15,0,14,0,15,0,30,0,15,128,255,224,255, - 248,29,37,148,32,2,0,0,60,8,0,0,127,24,0,0, - 207,240,0,0,129,240,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0, - 7,0,0,0,7,0,0,0,15,128,0,0,15,128,0,0, - 15,128,0,0,31,192,0,0,19,192,0,0,51,192,0,0, - 49,224,0,0,33,224,0,0,97,224,0,0,96,240,0,0, - 64,240,0,0,192,240,0,0,192,120,0,0,128,120,0,1, - 128,120,0,1,255,252,0,3,0,60,0,3,0,30,0,3, - 0,30,0,6,0,30,0,6,0,15,0,6,0,15,0,14, - 0,15,0,31,0,31,192,255,224,255,248,29,37,148,32,2, - 0,0,96,48,0,0,240,120,0,0,240,120,0,0,96,48, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,31,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,112, - 0,0,192,120,0,0,128,120,0,1,128,56,0,1,255,252, - 0,1,0,28,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,31,0,15, - 128,255,224,255,248,29,39,156,32,2,0,0,15,0,0,0, - 16,128,0,0,32,64,0,0,32,64,0,0,32,64,0,0, - 32,64,0,0,16,128,0,0,15,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0, - 7,0,0,0,15,128,0,0,15,128,0,0,31,128,0,0, - 31,192,0,0,19,192,0,0,51,192,0,0,51,224,0,0, - 33,224,0,0,97,224,0,0,97,240,0,0,64,240,0,0, - 192,240,0,0,192,248,0,0,128,120,0,1,128,120,0,1, - 255,252,0,1,0,60,0,3,0,60,0,2,0,62,0,6, - 0,30,0,6,0,31,0,6,0,31,0,14,0,15,0,30, - 0,15,128,255,224,255,248,37,29,145,41,1,0,0,3,255, - 255,248,0,0,124,0,248,0,0,124,0,56,0,0,124,0, - 56,0,0,252,0,24,0,1,188,0,24,0,1,188,0,8, - 0,3,60,0,8,0,3,60,4,8,0,6,60,4,0,0, - 6,60,4,0,0,12,60,4,0,0,12,60,12,0,0,24, - 60,28,0,0,24,63,252,0,0,48,60,28,0,0,48,60, - 12,0,0,96,60,4,0,0,96,60,4,8,0,255,252,4, - 8,0,128,60,4,8,1,128,60,0,8,1,0,60,0,24, - 3,0,60,0,24,2,0,60,0,24,6,0,60,0,56,14, - 0,60,0,120,31,0,60,1,248,255,225,255,255,248,22,38, - 114,28,3,248,1,255,12,7,1,140,14,0,252,28,0,124, - 24,0,60,56,0,60,56,0,28,112,0,28,112,0,12,112, - 0,12,240,0,8,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,112,0,4, - 112,0,4,120,0,12,56,0,8,56,0,8,28,0,16,12, - 0,16,14,0,32,3,0,192,1,247,128,0,56,0,0,32, - 0,0,56,0,0,14,0,0,7,0,0,7,0,0,7,0, - 1,14,0,0,252,0,23,38,114,29,3,0,1,128,0,1, - 192,0,1,224,0,0,224,0,0,48,0,0,24,0,0,12, - 0,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,38, - 114,29,3,0,0,0,192,0,1,224,0,3,192,0,3,128, - 0,6,0,0,12,0,0,8,0,0,0,0,0,0,0,255, - 255,254,15,0,62,15,0,14,15,0,14,15,0,6,15,0, - 6,15,0,2,15,0,2,15,1,2,15,1,0,15,1,0, - 15,1,0,15,3,0,15,7,0,15,255,0,15,7,0,15, - 3,0,15,1,0,15,1,2,15,1,2,15,1,2,15,0, - 2,15,0,6,15,0,6,15,0,6,15,0,14,15,0,30, - 15,0,126,255,255,254,23,38,114,29,3,0,0,8,0,0, - 28,0,0,62,0,0,55,0,0,99,128,1,128,192,2,0, - 32,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,37, - 111,29,3,0,1,128,192,3,193,224,3,193,224,1,128,192, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,15, - 0,62,15,0,14,15,0,14,15,0,6,15,0,6,15,0, - 2,15,0,2,15,1,2,15,1,0,15,1,0,15,3,0, - 15,3,0,15,7,0,15,255,0,15,7,0,15,3,0,15, - 3,0,15,1,2,15,1,2,15,1,2,15,0,2,15,0, - 6,15,0,6,15,0,6,15,0,14,15,0,30,15,0,126, - 255,255,254,12,38,76,17,3,0,192,0,224,0,112,0,56, - 0,24,0,12,0,2,0,0,0,0,0,255,240,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,255,240,12,38,76,17,3,0,0,48,0,112,0, - 224,1,192,3,128,2,0,4,0,0,0,0,0,255,240,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,255,240,12,38,76,17,3,0,6,0,14, - 0,15,0,27,128,48,192,96,96,128,16,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,12,37,74,15,2,0,96, - 96,240,240,240,240,96,96,0,0,0,0,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,27,29,116,32,3,0,255, - 255,192,0,15,0,112,0,15,0,28,0,15,0,14,0,15, - 0,7,0,15,0,7,128,15,0,3,128,15,0,3,192,15, - 0,3,192,15,0,1,192,15,0,1,224,15,0,1,224,15, - 0,1,224,255,240,1,224,15,0,1,224,15,0,1,224,15, - 0,1,224,15,0,1,224,15,0,1,224,15,0,3,192,15, - 0,3,192,15,0,3,192,15,0,3,128,15,0,7,0,15, - 0,7,0,15,0,14,0,15,0,28,0,15,0,112,0,255, - 255,192,0,28,37,148,32,3,0,0,60,8,0,0,127,152, - 0,0,71,240,0,0,65,240,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,63,240,15,128,7, - 128,15,128,3,0,15,192,3,0,15,224,3,0,13,224,3, - 0,13,240,3,0,12,248,3,0,12,120,3,0,12,124,3, - 0,12,60,3,0,12,30,3,0,12,31,3,0,12,15,3, - 0,12,7,131,0,12,7,131,0,12,3,195,0,12,3,227, - 0,12,1,227,0,12,0,243,0,12,0,251,0,12,0,123, - 0,12,0,63,0,12,0,63,0,12,0,31,0,12,0,31, - 0,12,0,15,0,30,0,7,0,255,192,7,0,24,38,114, - 29,3,1,3,128,0,3,192,0,1,192,0,0,224,0,0, - 112,0,0,48,0,0,8,0,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,38,114,29,3,1,0,1,192,0,3, - 192,0,3,128,0,7,0,0,14,0,0,12,0,0,16,0, - 0,0,0,0,0,0,0,255,0,3,0,192,6,0,96,12, - 0,48,28,0,56,56,0,28,56,0,28,120,0,30,112,0, - 14,112,0,14,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,112, - 0,14,112,0,14,120,0,30,56,0,28,56,0,28,28,0, - 56,12,0,48,6,0,96,3,0,192,0,255,0,24,38,114, - 29,3,0,0,24,0,0,24,0,0,60,0,0,126,0,0, - 195,0,1,129,128,6,0,96,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,37,111,29,3,0,1,240,32,3,252, - 64,2,63,192,2,7,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,0,3,0,192,6,0,96,12,0,48,28, - 0,56,56,0,28,56,0,28,120,0,30,112,0,14,112,0, - 14,240,0,15,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,112,0,14,112, - 0,14,120,0,30,56,0,28,56,0,28,28,0,56,12,0, - 48,6,0,96,3,0,192,0,255,0,24,37,111,29,3,0, - 1,129,128,3,195,192,3,195,192,1,129,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,3,0,192,6,0, - 96,12,0,48,28,0,56,56,0,28,56,0,28,120,0,30, - 112,0,14,112,0,14,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,112,0,14,112,0,14,120,0,30,56,0,28,56,0,28, - 28,0,56,12,0,48,6,0,96,3,0,192,0,255,0,25, - 25,100,39,7,254,192,0,1,128,224,0,3,0,112,0,6, - 0,56,0,12,0,28,0,24,0,14,0,48,0,7,0,96, - 0,3,128,192,0,1,193,128,0,0,227,0,0,0,118,0, - 0,0,60,0,0,0,28,0,0,0,62,0,0,0,103,0, - 0,0,195,128,0,1,129,192,0,3,0,224,0,6,0,112, - 0,12,0,56,0,24,0,28,0,48,0,14,0,96,0,7, - 0,192,0,3,128,128,0,1,0,24,29,87,29,3,1,0, - 255,131,3,0,230,6,0,124,12,0,60,28,0,56,56,0, - 60,56,0,124,120,0,254,112,0,206,112,1,142,240,3,15, - 240,6,15,240,14,15,240,12,15,240,24,15,240,48,15,240, - 96,15,240,224,15,240,192,15,113,128,14,115,0,14,126,0, - 30,62,0,28,60,0,28,28,0,56,60,0,48,62,0,96, - 103,0,192,193,255,0,29,38,152,34,3,1,0,112,0,0, - 0,112,0,0,0,56,0,0,0,28,0,0,0,14,0,0, - 0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 255,240,31,248,15,0,3,192,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,7,0,1,0, - 7,0,3,0,3,128,2,0,1,192,6,0,0,224,24,0, - 0,63,240,0,29,38,152,34,3,1,0,0,56,0,0,0, - 120,0,0,0,240,0,0,0,224,0,0,1,128,0,0,3, - 0,0,0,2,0,0,0,0,0,0,0,0,0,0,255,240, - 31,248,15,0,3,192,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,7,0,1,0,7,0, - 3,0,3,128,2,0,1,192,6,0,0,224,24,0,0,63, - 240,0,29,38,152,34,3,0,0,3,0,0,0,7,0,0, - 0,7,128,0,0,13,192,0,0,24,96,0,0,96,48,0, - 0,192,8,0,0,0,0,0,0,0,0,0,255,240,31,248, - 15,0,3,192,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,7,0,3,0,7,0,3,0, - 3,128,6,0,1,192,14,0,0,224,24,0,0,63,240,0, - 29,37,148,34,3,0,0,48,48,0,0,120,120,0,0,120, - 120,0,0,48,48,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,31,248,15,0,3,192,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,7,0,1,0,7,0,3,0,3,128,2,0,1,192, - 6,0,0,224,24,0,0,63,240,0,27,38,152,30,2,0, - 0,0,48,0,0,0,112,0,0,0,224,0,0,0,192,0, - 0,1,128,0,0,3,0,0,0,2,0,0,0,0,0,0, - 0,0,0,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,23,29,87,28,3,0,255,248, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,255,128, - 15,0,224,15,0,120,15,0,60,15,0,60,15,0,30,15, - 0,30,15,0,30,15,0,30,15,0,30,15,0,60,15,0, - 60,15,0,120,15,0,224,15,255,128,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,255,248,0,19,29,87,22,1,0,0,252,0,3,14, - 0,6,7,0,14,7,128,12,7,128,28,7,128,28,7,128, - 28,7,0,28,14,0,28,28,0,28,224,0,28,24,0,28, - 6,0,28,7,0,28,3,128,28,3,128,28,1,192,28,1, - 192,28,1,192,28,1,224,28,1,224,28,1,224,28,1,224, - 28,225,192,29,225,192,29,225,192,28,131,128,28,199,0,252, - 60,0,18,28,84,21,2,1,112,0,0,120,0,0,60,0, - 0,28,0,0,6,0,0,3,0,0,1,0,0,0,0,0, - 0,0,0,15,192,0,56,112,0,32,56,0,96,28,0,120, - 28,0,120,28,0,56,28,0,0,28,0,0,252,0,15,28, - 0,56,28,0,112,28,0,224,28,0,224,28,64,224,60,64, - 224,60,64,224,92,192,112,159,128,31,15,0,18,28,84,21, - 2,1,0,28,0,0,60,0,0,120,0,0,112,0,0,192, - 0,1,128,0,1,0,0,0,0,0,0,0,0,15,192,0, - 56,112,0,32,56,0,96,28,0,120,28,0,120,28,0,56, - 28,0,0,28,0,0,252,0,15,28,0,56,28,0,112,28, - 0,224,28,0,224,28,64,224,60,64,224,60,64,224,92,192, - 112,159,128,31,15,0,18,28,84,21,2,0,3,128,0,3, - 128,0,7,128,0,6,192,0,12,96,0,24,48,0,32,24, - 0,0,0,0,0,0,0,15,192,0,56,112,0,32,56,0, - 96,28,0,120,28,0,120,28,0,56,28,0,0,28,0,0, - 252,0,15,28,0,56,28,0,112,28,0,224,28,0,224,28, - 64,224,60,64,224,60,64,224,92,192,112,159,128,31,15,0, - 18,27,81,21,2,0,30,8,0,63,136,0,39,248,0,64, - 240,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192, - 0,56,112,0,32,56,0,96,28,0,120,28,0,120,28,0, - 56,28,0,0,28,0,0,252,0,15,28,0,56,28,0,112, - 28,0,224,28,0,224,28,64,224,60,64,224,60,64,224,92, - 192,112,159,128,31,15,0,18,27,81,21,2,0,56,48,0, - 120,120,0,120,120,0,56,48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,192,0,24,112,0,32,56,0,96,28, - 0,112,28,0,120,28,0,56,28,0,0,28,0,0,252,0, - 15,28,0,56,28,0,112,28,0,224,28,0,224,28,64,224, - 60,64,224,60,64,224,92,192,112,159,128,31,15,0,18,28, - 84,21,2,0,7,128,0,8,64,0,16,32,0,16,32,0, - 16,32,0,8,64,0,7,128,0,0,0,0,0,0,0,15, - 192,0,56,112,0,32,56,0,96,28,0,112,28,0,120,28, - 0,56,28,0,0,28,0,0,252,0,15,28,0,56,28,0, - 112,28,0,224,28,0,224,28,64,224,60,64,224,92,64,224, - 156,192,112,159,128,31,15,0,25,19,76,29,2,0,15,193, - 240,0,56,115,28,0,32,30,14,0,96,30,7,0,120,28, - 7,0,120,28,7,0,56,28,7,128,0,28,7,128,3,255, - 255,128,28,28,0,0,112,28,0,0,112,28,0,0,224,28, - 1,128,224,28,1,0,224,62,1,0,224,46,1,0,224,70, - 2,0,112,131,4,0,31,0,248,0,15,27,54,18,2,248, - 7,224,28,16,56,8,48,12,112,28,112,60,240,60,240,24, - 240,0,240,0,240,0,240,0,240,6,112,4,112,4,48,12, - 56,8,28,48,7,224,1,0,2,0,1,192,0,96,0,112, - 0,112,8,240,7,192,15,28,56,19,2,1,56,0,60,0, - 28,0,14,0,7,0,3,0,0,128,0,0,0,0,7,192, - 12,112,56,56,48,28,112,28,112,28,240,30,240,30,255,254, - 240,0,240,0,240,0,240,2,112,4,112,4,56,4,56,8, - 28,16,7,224,15,28,56,19,2,1,0,28,0,60,0,56, - 0,112,0,224,0,192,1,0,0,0,0,0,7,192,12,112, - 56,56,48,28,112,28,112,28,240,30,240,30,255,254,240,0, - 240,0,240,0,240,2,112,4,112,4,56,4,56,8,28,16, - 7,224,15,28,56,19,2,0,1,128,3,128,3,192,7,192, - 6,96,8,48,16,8,0,0,0,0,7,192,12,112,56,56, - 48,28,112,28,112,28,240,30,240,30,255,254,240,0,240,0, - 240,0,240,6,112,4,112,4,56,4,56,8,28,16,7,224, - 15,27,54,19,2,0,24,24,60,60,60,60,24,24,0,0, - 0,0,0,0,0,0,7,192,12,112,56,56,48,28,112,28, - 112,28,240,14,240,14,255,254,240,0,240,0,240,0,240,2, - 112,4,112,4,56,4,56,8,28,16,7,224,10,28,56,11, - 0,0,192,0,224,0,224,0,112,0,24,0,12,0,4,0, - 0,0,0,0,126,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,127,192,10,28,56,11,1,0, - 0,192,1,192,3,128,7,0,6,0,12,0,16,0,0,0, - 0,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,255,128,11,28,56,11,0,0,12,0, - 12,0,30,0,31,0,51,0,96,128,128,96,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,127,192,11,26,52,13,1,0,96,192,241,224, - 241,224,96,192,0,0,0,0,0,0,62,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,192, - 17,29,87,21,2,0,30,4,0,15,12,0,7,176,0,3, - 224,0,1,224,0,6,224,0,12,240,0,16,120,0,0,56, - 0,0,28,0,3,254,0,12,62,0,24,30,0,56,15,0, - 112,15,0,112,7,0,240,7,0,240,7,128,240,7,128,240, - 7,128,240,7,0,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,20,26,78, - 22,1,0,3,225,0,7,254,0,4,126,0,0,0,0,0, - 0,0,0,0,0,0,0,0,252,60,0,28,199,0,29,3, - 0,31,3,128,30,3,128,30,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,159, - 240,17,28,84,21,2,1,56,0,0,60,0,0,30,0,0, - 14,0,0,3,0,0,1,128,0,0,128,0,0,0,0,0, - 0,0,3,224,0,12,56,0,24,28,0,56,14,0,112,14, - 0,112,7,0,240,7,0,240,7,0,240,7,128,240,7,128, - 240,7,128,240,7,0,240,7,0,112,7,0,112,14,0,56, - 14,0,24,28,0,12,56,0,3,224,0,17,28,84,21,2, - 1,0,28,0,0,28,0,0,56,0,0,112,0,0,96,0, - 0,192,0,1,128,0,0,0,0,0,0,0,3,224,0,12, - 56,0,24,28,0,56,14,0,112,14,0,112,7,0,240,7, - 0,240,7,0,240,7,128,240,7,128,240,7,128,240,7,0, - 240,7,0,112,7,0,112,14,0,56,14,0,24,28,0,12, - 56,0,3,224,0,17,28,84,21,2,0,1,128,0,1,192, - 0,3,192,0,3,96,0,6,32,0,12,16,0,16,12,0, - 0,0,0,0,0,0,3,224,0,12,56,0,24,28,0,56, - 14,0,112,14,0,112,7,0,240,7,0,240,7,0,240,7, - 128,240,7,128,240,7,128,240,7,0,240,7,0,112,7,0, - 112,14,0,56,14,0,24,28,0,12,56,0,3,224,0,17, - 27,81,21,2,0,15,4,0,31,204,0,19,248,0,16,240, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,224,0, - 12,56,0,24,28,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 0,240,7,0,112,7,0,112,14,0,56,14,0,24,28,0, - 12,56,0,3,224,0,17,27,81,21,2,0,24,24,0,60, - 60,0,60,60,0,24,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,35,26,130, - 39,2,254,0,0,224,0,0,0,1,240,0,0,0,1,240, - 0,0,0,1,240,0,0,0,0,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0, - 0,0,1,240,0,0,0,1,240,0,0,0,1,240,0,0, - 0,0,224,0,0,17,19,57,21,2,0,3,225,0,12,59, - 0,24,30,0,56,14,0,112,14,0,112,31,0,240,55,0, - 240,103,0,240,199,128,240,135,128,241,7,128,242,7,0,244, - 7,0,124,7,0,120,14,0,56,14,0,120,28,0,76,56, - 0,131,224,0,20,28,84,22,1,1,14,0,0,15,0,0, - 7,0,0,3,128,0,1,192,0,0,64,0,0,32,0,0, - 0,0,0,0,0,252,31,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,7,128,28, - 7,128,28,15,128,12,11,128,14,51,128,3,195,240,20,28, - 84,22,1,1,0,7,0,0,15,0,0,30,0,0,24,0, - 0,48,0,0,96,0,0,64,0,0,0,0,0,0,0,252, - 31,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,7,128,28,7,128,28,15,128,12, - 11,128,14,51,128,3,195,240,20,28,84,22,1,0,0,96, - 0,0,224,0,0,240,0,1,176,0,3,24,0,2,4,0, - 4,2,0,0,0,0,0,0,0,252,31,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,128,28,15,128,12,11,128,14,51,128,3, - 195,240,20,27,81,22,1,0,6,6,0,15,15,0,15,15, - 0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 252,15,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,7,128,28,7,128,28,15,128, - 12,11,128,14,51,128,3,195,240,20,37,111,22,1,248,0, - 3,0,0,7,0,0,15,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,0,0,0,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,18,38, - 114,21,1,246,12,0,0,60,0,0,252,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 30,0,28,127,0,28,199,128,29,3,128,31,3,192,30,3, - 192,30,3,128,28,3,128,28,3,128,28,7,0,28,7,0, - 28,6,0,28,12,0,28,28,0,28,24,0,28,48,0,28, - 192,0,29,128,0,30,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 56,0,0,192,0,0,19,36,108,21,1,247,3,6,0,7, - 143,0,7,143,0,3,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,143,224,30,3,128,30,1,0,14,3,0, - 14,2,0,7,2,0,7,2,0,7,6,0,3,132,0,3, - 132,0,3,140,0,1,200,0,1,200,0,1,200,0,0,240, - 0,0,240,0,0,240,0,0,96,0,0,96,0,0,96,0, - 0,64,0,0,64,0,48,64,0,120,64,0,120,128,0,121, - 128,0,59,0,0,30,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=35 h=38 x= 5 y=11 dx=39 dy= 0 ascent=30 len=170 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =30 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29n[1226] U8G_FONT_SECTION("u8g_font_osr29n") = { - 0,107,51,223,244,28,0,0,0,0,42,58,0,30,248,28, - 0,15,17,34,21,3,11,3,128,3,192,3,128,3,128,225, - 142,241,30,249,62,29,112,3,192,3,192,29,120,249,62,241, - 30,227,142,3,128,3,192,3,128,35,34,170,39,2,250,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,5,12,12,11,3,249,112, - 240,248,248,24,8,8,16,16,32,32,64,10,2,4,14,2, - 9,255,192,255,192,5,5,5,11,3,0,112,248,248,248,112, - 14,38,76,18,2,248,0,12,0,12,0,12,0,8,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,64, - 0,192,0,192,0,128,1,128,1,128,1,0,3,0,3,0, - 2,0,6,0,6,0,4,0,12,0,12,0,8,0,24,0, - 24,0,16,0,48,0,48,0,32,0,96,0,96,0,64,0, - 192,0,20,28,84,24,2,0,1,248,0,7,12,0,12,7, - 0,28,3,128,24,1,128,56,1,192,56,1,192,112,0,224, - 112,0,224,112,0,224,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,112,0,224,112,0,224,112,0,224,56,1,192,56,1,192, - 24,1,128,12,3,0,6,6,0,3,252,0,14,28,56,24, - 5,0,1,128,1,128,3,128,7,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,255,252,17,28,84,24,3,0, - 7,224,0,24,60,0,32,30,0,64,15,0,192,15,0,192, - 7,128,192,7,128,240,7,128,252,7,128,252,7,128,124,7, - 128,24,15,0,0,14,0,0,28,0,0,56,0,0,112,0, - 0,224,0,1,192,0,3,0,0,6,0,0,12,0,128,24, - 0,128,48,0,128,48,1,128,112,1,128,127,255,128,127,255, - 128,127,255,128,17,28,84,24,3,0,15,224,0,48,56,0, - 96,28,0,96,14,0,240,15,0,248,15,0,248,15,0,120, - 15,0,0,15,0,0,15,0,0,14,0,0,28,0,28,56, - 0,31,224,0,0,60,0,0,30,0,0,15,0,0,7,0, - 0,7,128,0,7,128,120,7,128,248,7,128,248,7,128,248, - 7,0,192,15,0,192,14,0,96,28,0,31,240,0,19,28, - 84,24,2,0,0,12,0,0,12,0,0,28,0,0,60,0, - 0,60,0,0,124,0,0,252,0,0,252,0,1,188,0,3, - 60,0,3,60,0,6,60,0,12,60,0,12,60,0,24,60, - 0,48,60,0,32,60,0,96,60,0,192,60,0,255,255,224, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,7,255,224,17,29,87,24,4,0,0,2, - 0,120,12,0,127,248,0,127,240,0,111,192,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, - 60,0,112,30,0,96,14,0,96,15,0,96,7,0,0,7, - 128,0,7,128,0,7,128,16,7,128,120,7,128,252,7,128, - 252,7,128,248,15,0,224,15,0,224,14,0,96,28,0,48, - 56,0,31,240,0,17,28,84,24,3,0,1,248,0,3,12, - 0,12,6,0,28,7,0,24,15,0,56,31,0,48,31,0, - 112,14,0,112,0,0,112,0,0,240,0,0,241,240,0,246, - 28,0,252,14,0,248,7,0,248,7,0,240,7,128,240,7, - 128,240,7,128,240,7,128,112,7,128,112,7,128,112,7,0, - 48,7,0,56,7,0,24,14,0,12,28,0,7,248,0,16, - 28,56,24,4,0,255,255,255,255,255,255,192,3,128,2,128, - 2,128,6,128,4,0,12,0,8,0,24,0,48,0,32,0, - 96,0,192,0,192,1,128,3,128,3,128,7,128,7,128,7, - 128,15,192,15,192,15,192,15,192,15,192,7,192,20,28,84, - 24,2,0,3,248,0,14,14,0,56,7,0,112,3,128,112, - 1,192,240,1,192,240,1,192,240,1,192,240,1,192,248,1, - 128,126,3,128,127,131,0,63,252,0,15,252,0,7,255,0, - 24,127,192,48,15,224,112,3,224,224,1,240,224,0,240,224, - 0,240,224,0,224,224,0,224,224,0,224,112,1,192,48,1, - 128,28,7,0,15,252,0,17,28,84,24,3,0,7,224,0, - 12,56,0,56,12,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,112,15,128,112,15,128,56,27,128,28,51,128,7,199,128, - 0,7,128,0,7,0,0,7,0,56,7,0,124,7,0,124, - 14,0,120,14,0,112,12,0,112,24,0,48,48,0,31,224, - 0,5,19,19,11,3,0,112,248,248,248,112,0,0,0,0, - 0,0,0,0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=38 x= 5 y=22 dx=44 dy= 0 ascent=31 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29r[7573] U8G_FONT_SECTION("u8g_font_osr29r") = { - 0,107,51,223,244,29,9,148,21,166,32,127,247,31,247,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=47 x=10 y=28 dx=52 dy= 0 ascent=47 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-13 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =47 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35[22370] U8G_FONT_SECTION("u8g_font_osr35") = { - 0,128,62,216,241,35,12,236,30,116,32,255,246,47,243,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,14,0,0,6,33,33,14,4,246,120, - 252,252,252,120,0,0,48,48,48,48,48,48,48,48,48,48, - 48,120,120,120,120,120,120,248,252,252,252,252,252,252,252,120, - 17,34,102,28,5,250,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,7,252,0,14,198,0,28,195, - 0,56,195,128,120,195,128,120,207,128,120,207,128,248,207,128, - 240,199,0,240,192,0,240,192,0,240,192,0,240,192,0,240, - 192,0,248,192,128,120,192,128,120,192,128,120,193,128,56,193, - 0,28,195,0,14,198,0,7,252,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,28,34,136,35, - 3,0,0,0,126,0,0,1,227,128,0,3,128,192,0,7, - 0,192,0,14,0,224,0,14,1,224,0,28,3,224,0,28, - 3,224,0,60,3,192,0,60,0,128,0,60,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,31,252, - 0,0,0,127,248,0,0,124,0,0,0,124,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,0,60, - 0,0,0,56,0,0,0,56,0,16,62,56,0,32,99,240, - 0,32,193,240,0,96,128,120,0,64,128,254,0,192,128,159, - 255,128,193,7,255,0,126,1,254,0,24,24,72,28,2,5, - 64,0,2,224,126,7,115,255,206,63,129,252,30,0,120,28, - 0,56,56,0,24,48,0,12,48,0,12,96,0,6,96,0, - 6,96,0,6,96,0,6,96,0,6,96,0,6,112,0,12, - 48,0,12,56,0,28,28,0,56,30,0,120,63,129,252,115, - 255,206,224,126,7,64,0,2,27,33,132,29,1,0,255,224, - 127,224,31,0,15,0,15,0,6,0,15,128,6,0,7,128, - 12,0,7,192,12,0,3,192,24,0,3,224,24,0,1,224, - 48,0,1,240,32,0,0,240,96,0,0,248,64,0,0,248, - 192,0,0,124,128,0,0,125,128,0,0,63,0,0,0,63, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,31,0,0,3,255, - 240,0,2,44,44,14,6,248,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,18,43,129,31,5,247,1,240,0,6,24,0, - 12,12,0,24,30,0,56,62,0,56,62,0,56,62,0,56, - 8,0,60,0,0,30,0,0,31,0,0,15,128,0,7,192, - 0,15,224,0,25,240,0,48,252,0,96,126,0,64,63,0, - 192,15,128,192,7,128,192,3,192,224,1,192,240,0,192,120, - 0,192,124,0,192,62,0,128,31,1,128,15,131,0,7,198, - 0,3,248,0,1,240,0,0,248,0,0,124,0,0,60,0, - 0,30,0,0,14,0,30,14,0,62,14,0,62,14,0,60, - 12,0,24,28,0,12,56,0,7,224,0,14,5,10,22,4, - 27,112,56,248,124,248,124,248,124,112,56,35,36,180,40,3, - 0,0,7,252,0,0,0,60,7,128,0,0,224,0,192,0, - 1,128,0,48,0,3,0,0,24,0,4,0,0,12,0,8, - 0,0,6,0,24,1,240,131,0,48,7,28,129,0,32,30, - 7,128,128,96,28,3,128,128,64,56,1,128,64,64,120,1, - 128,64,192,120,0,128,64,128,120,0,128,96,128,248,0,0, - 32,128,240,0,0,32,128,240,0,0,32,128,240,0,0,32, - 128,240,0,0,32,128,240,0,0,32,128,240,0,0,32,128, - 248,0,128,96,64,120,0,128,64,64,120,0,128,64,96,56, - 1,128,192,32,60,1,0,128,48,30,3,1,128,16,15,14, - 3,0,24,3,248,2,0,12,0,0,6,0,6,0,0,12, - 0,3,128,0,56,0,0,192,0,96,0,0,120,3,192,0, - 0,31,254,0,0,13,17,34,19,3,17,62,0,99,0,193, - 128,225,128,225,128,3,128,13,128,49,128,113,128,225,128,225, - 136,225,136,247,152,120,240,0,0,0,0,255,240,13,19,38, - 23,5,1,4,0,12,24,24,48,48,32,112,96,96,96,96, - 192,224,192,224,192,224,192,224,192,224,192,224,192,96,192,112, - 96,48,96,56,48,24,16,12,0,23,10,30,29,3,8,255, - 255,254,255,255,254,0,0,6,0,0,6,0,0,6,0,0, - 6,0,0,6,0,0,6,0,0,6,0,0,6,12,3,6, - 18,3,11,255,240,255,240,255,240,35,36,180,40,3,0,0, - 7,252,0,0,0,60,7,128,0,0,224,0,192,0,1,128, - 0,48,0,3,0,0,24,0,4,0,0,12,0,8,0,0, - 6,0,25,255,248,3,0,48,60,30,1,0,32,60,15,0, - 128,96,60,7,128,128,64,60,7,128,64,64,60,7,128,64, - 192,60,7,128,64,128,60,7,128,96,128,60,15,0,32,128, - 60,30,0,32,128,63,240,0,32,128,60,28,0,32,128,60, - 14,0,32,128,60,7,0,32,128,60,7,0,32,128,60,7, - 128,96,64,60,7,128,64,64,60,7,132,64,64,60,7,132, - 192,32,60,7,136,128,48,60,3,201,128,17,255,129,241,0, - 24,0,0,2,0,12,0,0,6,0,6,0,0,12,0,3, - 0,0,24,0,0,192,0,96,0,0,112,1,192,0,0,31, - 254,0,0,13,2,4,21,4,28,255,248,255,248,14,13,26, - 29,8,21,15,192,56,96,112,48,96,24,192,8,192,12,192, - 12,192,12,192,12,96,24,96,24,56,112,15,192,41,34,204, - 45,2,254,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,255,255,255,255,255,128,255,255,255,255,255,128,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,128,255,255,255,255,255,128,14, - 21,42,22,4,13,15,192,49,240,96,120,192,124,192,60,224, - 60,248,60,120,60,48,120,0,112,0,224,1,192,3,128,6, - 0,12,0,48,4,32,4,96,12,127,248,255,248,255,248,14, - 21,42,22,5,13,15,192,56,224,96,112,96,56,112,56,120, - 56,48,56,0,112,0,224,63,128,56,224,0,120,0,56,0, - 60,112,60,248,60,240,60,192,56,192,120,96,240,31,192,8, - 9,9,22,10,25,7,15,15,30,60,48,96,192,128,25,36, - 144,29,3,243,112,1,192,0,240,3,192,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,224,3,224,0, - 224,1,192,0,224,1,192,0,96,1,192,0,96,1,192,0, - 96,1,192,0,96,1,128,0,96,3,129,128,112,7,193,128, - 88,15,127,128,79,254,63,128,67,252,31,0,64,0,0,0, - 192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,240,0,0,0, - 240,0,0,0,240,0,0,0,248,0,0,0,120,0,0,0, - 120,0,0,0,20,42,126,26,3,249,7,255,240,31,193,128, - 63,193,128,127,193,128,127,193,128,255,193,128,255,193,128,255, - 193,128,255,193,128,255,193,128,255,193,128,127,193,128,127,193, - 128,63,193,128,15,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,0,193,128,0,193,128,0,193, - 128,0,193,128,0,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,6,6,6,14,4,12,120,252, - 252,252,252,120,10,10,20,21,5,246,8,0,8,0,24,0, - 15,0,3,128,1,192,1,192,1,192,195,128,63,0,11,20, - 40,21,5,14,2,0,6,0,14,0,254,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,255,224,12,17,34,18, - 3,17,15,0,57,192,112,192,96,224,224,96,224,112,224,112, - 224,112,224,112,224,112,96,96,112,224,49,192,31,0,0,0, - 0,0,255,240,13,19,38,23,5,1,1,0,193,128,96,192, - 32,96,48,112,48,48,24,48,24,56,24,56,24,56,24,56, - 24,56,24,56,24,48,48,112,48,96,96,224,64,192,1,128, - 33,35,175,42,5,255,2,0,0,96,0,6,0,0,64,0, - 14,0,0,192,0,254,0,1,128,0,14,0,1,0,0,14, - 0,3,0,0,14,0,2,0,0,14,0,6,0,0,14,0, - 12,0,0,14,0,8,0,0,14,0,24,0,0,14,0,16, - 0,0,14,0,48,0,0,14,0,96,0,0,14,0,96,56, - 0,14,0,192,120,0,14,0,128,120,0,14,1,128,248,0, - 14,3,0,184,0,255,227,1,56,0,0,6,1,56,0,0, - 4,2,56,0,0,12,2,56,0,0,8,4,56,0,0,24, - 12,56,0,0,48,8,56,0,0,32,24,56,0,0,96,31, - 255,128,0,64,0,56,0,0,192,0,56,0,1,128,0,56, - 0,1,128,0,56,0,3,0,0,56,0,2,0,1,255,128, - 6,0,0,0,0,33,35,175,42,5,255,2,0,0,96,0, - 6,0,0,64,0,6,0,0,192,0,14,0,1,128,0,254, - 0,1,128,0,14,0,3,0,0,14,0,2,0,0,14,0, - 6,0,0,14,0,4,0,0,14,0,12,0,0,14,0,24, - 0,0,14,0,16,0,0,14,0,48,0,0,14,0,33,248, - 0,14,0,102,62,0,14,0,204,15,0,14,0,152,15,128, - 14,1,152,7,128,14,1,24,7,128,255,227,31,7,128,0, - 6,31,7,128,0,4,15,7,0,0,12,0,14,0,0,8, - 0,28,0,0,24,0,56,0,0,48,0,112,0,0,48,0, - 192,0,0,96,1,128,0,0,64,2,0,128,0,192,4,0, - 128,1,128,12,1,128,1,128,15,255,0,3,0,15,255,0, - 2,0,31,255,0,6,0,0,0,0,33,35,175,42,5,255, - 15,192,0,48,0,56,224,0,96,0,96,112,0,96,0,96, - 56,0,192,0,112,56,0,128,0,120,56,1,128,0,48,56, - 3,0,0,0,112,3,0,0,0,224,6,0,0,63,128,4, - 0,0,56,224,12,0,0,0,120,24,0,0,0,56,24,0, - 0,0,60,48,0,0,112,60,32,28,0,248,60,96,28,0, - 240,60,192,60,0,192,120,192,92,0,96,241,128,92,0,63, - 193,0,156,0,0,3,1,156,0,0,6,1,28,0,0,6, - 2,28,0,0,12,6,28,0,0,8,4,28,0,0,24,8, - 28,0,0,48,24,28,0,0,48,31,255,128,0,96,0,28, - 0,0,64,0,28,0,0,192,0,28,0,1,128,0,28,0, - 1,128,0,28,0,3,0,1,255,128,2,0,0,0,0,18, - 33,99,24,2,246,1,224,0,3,240,0,3,240,0,3,240, - 0,1,224,0,0,0,0,0,0,0,1,224,0,2,48,0, - 4,24,0,4,24,0,4,24,0,4,24,0,0,48,0,0, - 112,0,0,224,0,1,192,0,7,128,0,15,0,0,30,0, - 0,60,0,0,124,0,0,120,15,0,248,31,128,240,31,192, - 240,15,192,240,0,192,240,0,192,120,0,192,120,1,128,60, - 3,0,15,14,0,3,248,0,34,46,230,37,2,0,0,56, - 0,0,0,0,60,0,0,0,0,60,0,0,0,0,30,0, - 0,0,0,15,0,0,0,0,3,128,0,0,0,1,128,0, - 0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,224,0,0,0,1,224,0,0,0,1,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,6,248, - 0,0,0,6,248,0,0,0,6,248,0,0,0,12,124,0, - 0,0,12,124,0,0,0,12,124,0,0,0,24,62,0,0, - 0,24,62,0,0,0,24,30,0,0,0,48,31,0,0,0, - 48,31,0,0,0,48,15,0,0,0,96,15,128,0,0,96, - 15,128,0,0,96,7,128,0,0,255,255,192,0,0,255,255, - 192,0,0,192,3,192,0,1,128,3,224,0,1,128,3,224, - 0,3,128,1,224,0,3,0,1,240,0,3,0,1,240,0, - 7,0,0,240,0,7,0,0,248,0,31,128,1,252,0,255, - 248,31,255,192,34,46,230,37,2,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,30,0,0,0,0, - 60,0,0,0,0,48,0,0,0,0,96,0,0,0,0,192, - 0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,6,248,0,0,0,6, - 248,0,0,0,6,248,0,0,0,12,124,0,0,0,12,124, - 0,0,0,12,124,0,0,0,24,62,0,0,0,24,62,0, - 0,0,24,30,0,0,0,48,31,0,0,0,48,31,0,0, - 0,48,15,0,0,0,96,15,128,0,0,96,15,128,0,0, - 224,7,128,0,0,255,255,192,0,0,255,255,192,0,1,192, - 3,192,0,1,128,3,224,0,1,128,3,224,0,3,128,1, - 224,0,3,0,1,240,0,3,0,1,240,0,7,0,0,240, - 0,15,128,0,248,0,255,248,31,255,192,255,248,31,255,192, - 34,45,225,37,2,0,0,0,192,0,0,0,1,224,0,0, - 0,3,240,0,0,0,7,56,0,0,0,14,28,0,0,0, - 28,14,0,0,0,48,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,3,240,0,0,0,3,240,0,0,0,3,240,0,0, - 0,6,248,0,0,0,6,248,0,0,0,6,248,0,0,0, - 12,124,0,0,0,12,124,0,0,0,12,124,0,0,0,24, - 62,0,0,0,24,62,0,0,0,24,30,0,0,0,48,31, - 0,0,0,48,31,0,0,0,48,15,0,0,0,96,15,128, - 0,0,96,15,128,0,0,96,7,128,0,0,255,255,192,0, - 0,255,255,192,0,0,192,3,192,0,1,128,3,224,0,1, - 128,3,224,0,3,128,1,224,0,3,0,1,240,0,3,0, - 1,240,0,7,0,0,240,0,7,0,0,248,0,31,128,1, - 252,0,255,248,31,255,192,34,45,225,37,2,0,0,15,0, - 128,0,0,31,225,128,0,0,63,255,0,0,0,33,255,0, - 0,0,32,62,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,192,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,6,248,0,0,0,6,248,0, - 0,0,6,248,0,0,0,12,124,0,0,0,12,124,0,0, - 0,12,124,0,0,0,24,62,0,0,0,24,62,0,0,0, - 24,30,0,0,0,48,31,0,0,0,48,31,0,0,0,112, - 15,0,0,0,96,15,128,0,0,96,15,128,0,0,224,7, - 128,0,0,255,255,192,0,0,255,255,192,0,1,192,3,192, - 0,1,128,3,224,0,1,128,3,224,0,3,128,1,224,0, - 3,0,1,240,0,3,0,1,240,0,7,0,0,240,0,15, - 128,0,248,0,255,248,31,255,192,255,248,31,255,192,34,44, - 220,37,2,0,0,28,7,0,0,0,62,15,128,0,0,62, - 15,128,0,0,62,15,128,0,0,28,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,64,0,0,0,0,192,0,0,0,0,224,0,0, - 0,0,224,0,0,0,1,224,0,0,0,1,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,248,0,0,0,7, - 248,0,0,0,6,120,0,0,0,6,124,0,0,0,14,60, - 0,0,0,12,60,0,0,0,12,62,0,0,0,28,30,0, - 0,0,24,30,0,0,0,24,31,0,0,0,48,15,0,0, - 0,48,15,0,0,0,112,15,128,0,0,96,7,128,0,0, - 96,7,128,0,0,255,255,192,0,0,255,255,192,0,0,192, - 3,192,0,1,192,3,224,0,1,192,1,224,0,1,128,1, - 224,0,3,128,1,240,0,3,128,0,240,0,7,128,0,240, - 0,7,128,0,248,0,31,192,1,252,0,255,248,31,255,192, - 34,47,235,37,2,0,0,1,224,0,0,0,6,24,0,0, - 0,4,8,0,0,0,8,4,0,0,0,8,4,0,0,0, - 8,4,0,0,0,8,4,0,0,0,4,8,0,0,0,6, - 24,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,7,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,1, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,44,35,210,48,1,0,0,0,127,255,255,240,0,0,15, - 224,3,240,0,0,15,192,0,240,0,0,15,192,0,112,0, - 0,15,192,0,112,0,0,27,192,0,48,0,0,27,192,0, - 48,0,0,51,192,0,48,0,0,51,192,0,16,0,0,99, - 192,0,16,0,0,99,192,16,16,0,0,195,192,16,16,0, - 1,195,192,16,0,0,1,131,192,48,0,0,3,131,192,48, - 0,0,3,3,192,48,0,0,7,3,192,112,0,0,6,3, - 255,240,0,0,14,3,192,240,0,0,12,3,192,48,0,0, - 24,3,192,48,0,0,24,3,192,16,0,0,48,3,192,16, - 16,0,63,255,192,16,16,0,96,3,192,16,16,0,96,3, - 192,0,16,0,192,3,192,0,16,0,192,3,192,0,48,1, - 128,3,192,0,48,1,128,3,192,0,112,3,128,3,192,0, - 112,7,128,3,192,0,240,15,128,3,192,1,240,255,248,127, - 255,255,240,255,248,127,255,255,240,26,47,188,32,3,245,0, - 63,0,128,0,225,225,128,3,128,113,128,7,0,63,128,14, - 0,31,128,30,0,15,128,28,0,7,128,60,0,7,128,60, - 0,3,128,124,0,3,128,120,0,1,128,120,0,1,128,120, - 0,0,128,248,0,0,128,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,120,0,0,192,120, - 0,0,192,120,0,0,192,124,0,0,192,60,0,0,128,60, - 0,1,128,28,0,1,128,30,0,3,0,14,0,3,0,7, - 0,6,0,3,128,12,0,1,192,56,0,0,127,224,0,0, - 8,0,0,0,8,0,0,0,28,0,0,0,15,128,0,0, - 3,192,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 129,224,0,0,199,192,0,0,63,0,0,28,46,184,34,3, - 0,0,224,0,0,0,240,0,0,0,240,0,0,0,120,0, - 0,0,60,0,0,0,14,0,0,0,6,0,0,0,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 240,255,255,255,240,7,128,1,240,7,128,0,240,7,128,0, - 112,7,128,0,112,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,16,7,128,32,16,7,128,32,16,7,128,32, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,224, - 0,7,255,224,0,7,129,224,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,32,16,7,128,32,16,7,128,32, - 16,7,128,0,16,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,112,7,128,0,112,7,128,0,240,7,128,1, - 240,255,255,255,240,255,255,255,240,28,46,184,34,3,0,0, - 0,28,0,0,0,60,0,0,0,60,0,0,0,120,0,0, - 0,240,0,0,0,192,0,0,1,128,0,0,3,0,0,0, - 2,0,0,0,0,0,0,0,0,0,0,255,255,255,240,255, - 255,255,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,96,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,96,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,28,45,180,34,3,0,0,3,0, - 0,0,7,128,0,0,15,192,0,0,12,224,0,0,24,112, - 0,0,112,24,0,0,192,12,0,0,0,2,0,0,0,0, - 0,0,0,0,0,255,255,255,240,255,255,255,240,7,128,1, - 240,7,128,0,240,7,128,0,112,7,128,0,112,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,16,7,128,32, - 16,7,128,32,16,7,128,32,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,224,0,7,255,224,0,7,129,224, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,32, - 16,7,128,32,16,7,128,32,16,7,128,0,16,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,112,7,128,0, - 112,7,128,0,240,7,128,1,240,255,255,255,240,255,255,255, - 240,28,44,176,34,3,0,0,112,28,0,0,248,62,0,0, - 248,62,0,0,248,62,0,0,112,28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,255,255,240,7, - 192,7,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,32,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,32,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,14,46,92,19,3,0,224,0,240, - 0,240,0,120,0,60,0,12,0,6,0,3,0,1,0,0, - 0,0,0,255,252,255,252,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,15,128,255,252,14,46,92,19,3,0,0, - 28,0,60,0,60,0,120,0,240,0,192,1,128,3,0,0, - 0,0,0,0,0,255,252,255,252,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,192,255,252,14,45,90,19,3, - 0,3,0,7,128,7,192,14,192,24,96,112,56,192,12,0, - 0,0,0,0,0,255,252,7,192,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,255,252,255,252,15,44,88,20,3, - 0,112,28,248,62,248,62,248,62,112,28,0,0,0,0,0, - 0,0,0,127,254,7,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,7,192,127,254,32,35,140,38,4,0,255, - 255,248,0,15,128,15,0,7,128,3,128,7,128,1,192,7, - 128,0,224,7,128,0,240,7,128,0,120,7,128,0,124,7, - 128,0,60,7,128,0,62,7,128,0,62,7,128,0,30,7, - 128,0,30,7,128,0,31,7,128,0,31,7,128,0,31,255, - 254,0,31,7,128,0,31,7,128,0,31,7,128,0,31,7, - 128,0,31,7,128,0,31,7,128,0,30,7,128,0,62,7, - 128,0,62,7,128,0,60,7,128,0,60,7,128,0,120,7, - 128,0,120,7,128,0,240,7,128,0,224,7,128,1,192,7, - 128,3,128,15,128,30,0,255,255,248,0,33,46,230,38,3, - 255,0,7,1,128,0,0,31,225,128,0,0,31,255,0,0, - 0,16,255,0,0,0,48,62,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,192,7,255,128,255,192,7,255,128,7,224,0, - 120,0,7,240,0,48,0,7,240,0,48,0,7,248,0,48, - 0,6,248,0,48,0,6,252,0,48,0,6,126,0,48,0, - 6,62,0,48,0,6,63,0,48,0,6,31,0,48,0,6, - 15,128,48,0,6,15,192,48,0,6,7,192,48,0,6,7, - 224,48,0,6,3,224,48,0,6,1,240,48,0,6,1,248, - 48,0,6,0,248,48,0,6,0,252,48,0,6,0,124,48, - 0,6,0,62,48,0,6,0,63,48,0,6,0,31,48,0, - 6,0,15,176,0,6,0,15,176,0,6,0,7,240,0,6, - 0,7,240,0,6,0,3,240,0,6,0,1,240,0,6,0, - 1,240,0,15,0,0,240,0,31,128,0,240,0,255,240,0, - 112,0,0,0,0,48,0,28,46,184,33,3,1,1,192,0, - 0,1,224,0,0,1,240,0,0,0,112,0,0,0,56,0, - 0,0,28,0,0,0,12,0,0,0,6,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,255,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,30,0,7,128,60,0,3,192,60,0,3,192,124,0,3, - 224,124,0,3,224,120,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,120,0,3,224,124,0,3, - 192,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,7,0,7,0,14,0,3,128,28,0,0,192,48, - 0,0,127,224,0,28,46,184,33,3,1,0,0,56,0,0, - 0,120,0,0,0,248,0,0,0,224,0,0,1,192,0,0, - 3,128,0,0,3,0,0,0,6,0,0,0,0,0,0,0, - 0,0,0,0,31,128,0,0,255,240,0,1,192,56,0,3, - 128,28,0,7,0,14,0,14,0,7,0,30,0,7,128,30, - 0,7,128,60,0,3,192,60,0,3,192,124,0,3,224,124, - 0,3,224,120,0,1,224,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,120, - 0,1,224,120,0,1,224,120,0,3,224,124,0,3,192,60, - 0,3,192,60,0,3,192,30,0,7,128,14,0,7,0,14, - 0,7,0,7,0,14,0,3,128,28,0,0,192,48,0,0, - 127,224,0,28,46,184,33,3,0,0,6,0,0,0,15,0, - 0,0,15,0,0,0,31,128,0,0,57,192,0,0,112,224, - 0,0,192,48,0,3,128,28,0,0,0,0,0,0,0,0, - 0,0,31,128,0,0,255,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,30,0,7, - 128,60,0,3,192,60,0,3,192,124,0,3,224,124,0,3, - 224,120,0,1,224,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,120,0,3,224,124,0,3,192,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,7, - 0,7,0,14,0,3,128,28,0,0,192,48,0,0,127,224, - 0,28,45,180,33,3,0,0,120,12,0,0,255,8,0,1, - 255,248,0,1,143,248,0,1,1,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0, - 255,240,0,1,192,56,0,3,128,28,0,7,0,14,0,14, - 0,7,0,30,0,7,128,30,0,7,128,60,0,3,192,60, - 0,3,192,124,0,3,224,124,0,3,224,120,0,1,224,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,120,0,1,224,120,0,1,224,120, - 0,3,224,124,0,3,192,60,0,3,192,60,0,3,192,30, - 0,7,128,14,0,7,0,14,0,7,0,7,0,14,0,3, - 128,28,0,0,192,48,0,0,127,224,0,28,45,180,33,3, - 0,0,224,56,0,1,240,124,0,1,240,124,0,1,240,124, - 0,0,224,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,240,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,28,0,3,128,60,0,3,192,60,0,3,192,124,0,3, - 224,120,0,1,224,120,0,1,224,248,0,1,224,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,124,0,3,224,124,0,3, - 224,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,15,0,7,0,14,0,3,128,28,0,0,224,112, - 0,0,127,224,0,30,30,120,46,8,254,192,0,0,12,224, - 0,0,28,112,0,0,56,56,0,0,112,28,0,0,224,14, - 0,1,192,7,0,3,128,3,128,7,0,1,192,14,0,0, - 224,28,0,0,112,56,0,0,56,112,0,0,28,224,0,0, - 15,192,0,0,7,128,0,0,7,128,0,0,15,192,0,0, - 28,224,0,0,56,112,0,0,112,56,0,0,224,28,0,1, - 192,14,0,3,128,7,0,7,0,3,128,14,0,1,192,28, - 0,0,224,56,0,0,112,112,0,0,56,224,0,0,28,192, - 0,0,12,28,36,144,33,3,0,0,31,128,32,0,240,240, - 96,1,192,56,224,3,128,30,192,7,0,15,128,14,0,7, - 128,30,0,7,128,28,0,7,128,60,0,15,192,60,0,31, - 192,124,0,59,224,120,0,49,224,120,0,97,224,248,0,225, - 240,248,1,193,240,248,1,129,240,248,3,1,240,248,7,1, - 240,248,6,1,240,248,12,1,240,248,28,1,240,248,56,1, - 240,248,48,1,240,120,96,1,224,120,224,1,224,121,192,3, - 224,125,128,3,192,63,0,3,192,63,0,3,192,30,0,7, - 128,30,0,7,0,30,0,15,0,63,0,14,0,51,128,28, - 0,97,192,112,0,192,127,224,0,34,46,230,39,3,1,0, - 28,0,0,0,0,28,0,0,0,0,30,0,0,0,0,15, - 0,0,0,0,7,0,0,0,0,1,128,0,0,0,0,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0, - 0,255,252,3,255,192,255,252,3,255,192,7,192,0,126,0, - 7,128,0,60,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,3,192,0, - 24,0,3,192,0,48,0,1,192,0,48,0,1,224,0,96, - 0,0,224,0,96,0,0,112,0,192,0,0,60,3,128,0, - 0,15,254,0,0,34,46,230,39,3,1,0,0,7,0,0, - 0,0,15,0,0,0,0,30,0,0,0,0,28,0,0,0, - 0,56,0,0,0,0,112,0,0,0,0,96,0,0,0,0, - 128,0,0,0,0,0,0,0,0,0,0,0,0,255,252,3, - 255,192,255,252,3,255,192,7,192,0,126,0,7,128,0,60, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,3,192,0,24,0,3,192, - 0,48,0,1,192,0,48,0,1,224,0,96,0,0,224,0, - 96,0,0,112,0,192,0,0,60,3,128,0,0,15,254,0, - 0,34,46,230,39,3,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,3,240,0,0,0,3,56,0,0, - 0,6,28,0,0,0,28,6,0,0,0,48,3,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,252, - 3,255,192,7,192,0,126,0,7,128,0,60,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,3,192,0,24,0,3,192,0,48,0,3, - 192,0,48,0,1,224,0,96,0,0,240,0,224,0,0,120, - 1,192,0,0,62,7,128,0,0,15,254,0,0,34,45,225, - 39,3,0,0,28,7,0,0,0,62,15,128,0,0,62,15, - 128,0,0,62,15,128,0,0,28,7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,32,46,184,35,2,0,0,0,3,0,0,0, - 7,128,0,0,15,0,0,0,30,0,0,0,60,0,0,0, - 56,0,0,0,96,0,0,0,192,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,254,15,255,255,254,15,255,7,224, - 0,240,7,224,0,96,3,224,0,96,3,240,0,64,1,240, - 0,192,0,248,0,128,0,252,1,128,0,124,1,0,0,62, - 3,0,0,62,2,0,0,31,6,0,0,31,12,0,0,15, - 136,0,0,7,152,0,0,7,208,0,0,3,240,0,0,3, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,240,0,0,127, - 255,192,28,35,140,33,3,0,255,254,0,0,7,192,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,255,240,0,7,192,30,0,7,128,7,128,7,128,7,192, - 7,128,3,224,7,128,3,224,7,128,1,240,7,128,1,240, - 7,128,1,240,7,128,1,240,7,128,1,240,7,128,1,240, - 7,128,3,224,7,128,3,224,7,128,7,192,7,128,7,128, - 7,128,30,0,7,255,248,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,192,0,0, - 255,254,0,0,22,35,105,26,1,0,0,63,128,0,243,224, - 1,192,240,3,128,240,7,128,248,7,0,120,15,0,120,15, - 0,120,15,0,248,15,0,240,15,0,224,15,1,192,15,3, - 0,15,60,0,15,6,0,15,1,128,15,0,192,15,0,224, - 15,0,112,15,0,120,15,0,120,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,60,15,56, - 60,15,120,60,15,120,60,15,112,120,15,96,112,15,48,224, - 255,31,192,21,33,99,24,2,1,56,0,0,60,0,0,30, - 0,0,14,0,0,7,0,0,3,128,0,1,128,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,21,33,99,24, - 2,1,0,7,0,0,15,128,0,15,0,0,30,0,0,60, - 0,0,48,0,0,96,0,0,192,0,0,0,0,0,0,0, - 0,0,0,7,248,0,24,30,0,16,15,0,48,7,0,56, - 7,128,60,7,128,62,7,128,28,7,128,0,7,128,0,31, - 128,3,247,128,31,7,128,60,7,128,120,7,128,248,7,128, - 240,7,128,240,15,136,240,15,136,240,23,136,248,23,152,120, - 39,240,63,195,240,21,33,99,24,2,0,0,192,0,0,224, - 0,1,224,0,1,240,0,3,48,0,6,24,0,12,12,0, - 24,2,0,0,0,0,0,0,0,0,0,0,7,248,0,24, - 30,0,16,15,0,48,7,0,56,7,128,60,7,128,62,7, - 128,28,7,128,0,7,128,0,31,128,3,247,128,31,7,128, - 60,7,128,120,7,128,248,7,128,240,7,128,240,15,136,240, - 15,136,240,23,136,248,23,152,120,39,240,63,195,240,21,32, - 96,24,2,0,15,129,0,31,227,0,31,255,0,16,254,0, - 32,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,7,248,0,24,30,0,16,15,0,48,7,0,56,7, - 128,60,7,128,62,7,128,28,7,128,0,7,128,0,31,128, - 3,247,128,31,7,128,60,7,128,120,7,128,248,7,128,240, - 7,128,240,15,136,240,15,136,240,23,136,248,23,152,120,39, - 240,63,195,240,21,32,96,24,2,0,28,14,0,62,31,0, - 62,31,0,62,31,0,28,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,248,0,24,30,0,16,15, - 0,48,7,0,56,7,128,60,7,128,62,7,128,28,7,128, - 0,7,128,0,31,128,3,247,128,31,7,128,60,7,128,120, - 7,128,248,7,128,240,7,128,240,15,136,240,15,136,240,23, - 136,248,23,152,120,39,240,63,195,240,21,34,102,24,2,0, - 1,224,0,2,24,0,4,8,0,8,4,0,8,4,0,8, - 4,0,4,12,0,6,24,0,1,240,0,0,0,0,0,0, - 0,0,0,0,7,248,0,24,30,0,16,15,0,48,7,0, - 56,7,128,60,7,128,60,7,128,28,7,128,0,7,128,0, - 31,128,3,247,128,31,7,128,60,7,128,120,7,128,248,7, - 128,240,7,128,240,15,136,240,15,136,240,31,136,248,23,152, - 120,39,240,63,195,240,30,22,88,34,2,1,7,248,63,128, - 24,30,97,224,16,15,224,224,48,7,192,112,56,7,192,120, - 60,7,128,120,62,7,128,120,30,7,128,60,0,7,128,60, - 0,15,128,60,1,247,255,252,15,7,128,0,60,7,128,0, - 120,7,128,0,248,7,128,0,240,7,128,8,240,15,128,8, - 240,11,192,8,240,27,192,16,248,17,224,48,120,32,240,96, - 63,192,127,192,17,32,96,21,2,247,7,252,0,14,6,0, - 28,3,0,56,3,0,56,3,128,120,15,128,120,15,128,240, - 15,128,240,7,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,0, - 56,1,0,28,2,0,14,6,0,7,248,0,0,128,0,0, - 128,0,1,128,0,0,240,0,0,56,0,0,28,0,0,28, - 0,0,28,0,12,56,0,3,240,0,18,33,99,22,2,1, - 60,0,0,60,0,0,30,0,0,15,0,0,7,0,0,3, - 128,0,0,192,0,0,64,0,0,0,0,0,0,0,0,0, - 0,7,248,0,14,28,0,28,14,0,56,15,0,56,7,128, - 120,7,128,120,7,128,240,7,192,240,7,192,240,7,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,120,1,128,56,1,0,28,3,0,14,6,0, - 7,252,0,18,33,99,22,2,1,0,7,0,0,15,0,0, - 15,0,0,30,0,0,60,0,0,48,0,0,96,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,14,28,0, - 28,14,0,56,15,0,56,7,128,120,7,128,120,7,128,240, - 7,192,240,7,192,240,7,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,128, - 56,1,0,28,3,0,14,6,0,7,252,0,18,33,99,22, - 2,0,0,192,0,0,224,0,1,224,0,1,240,0,3,184, - 0,7,24,0,4,12,0,24,2,0,0,0,0,0,0,0, - 0,0,0,7,248,0,14,28,0,28,14,0,56,15,0,56, - 7,128,120,7,128,120,7,128,240,7,192,240,7,192,240,7, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,128, - 120,0,128,120,0,128,120,1,128,56,1,0,28,3,0,14, - 6,0,7,252,0,18,32,96,22,2,0,28,7,0,62,15, - 128,62,15,128,62,15,128,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,7,248,0,14,12,0,28, - 14,0,60,7,0,56,7,128,120,3,128,120,3,128,240,3, - 192,240,3,192,240,3,192,255,255,192,240,0,0,240,0,0, - 240,0,0,240,0,64,120,0,128,120,0,128,120,0,128,56, - 1,128,28,1,0,14,6,0,7,252,0,12,33,66,14,0, - 1,224,0,240,0,240,0,120,0,60,0,12,0,6,0,3, - 0,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,11,33,66,13,2,1,0,224,1,224,1,224,3, - 192,7,128,6,0,12,0,24,0,0,0,0,0,0,0,254, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,255,192,13,33,66,14,0, - 0,7,0,7,0,7,128,15,128,29,192,24,96,48,48,192, - 24,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,13,32,64,15,1,0,112,112,248,248,248,248,248, - 248,112,112,0,0,0,0,0,0,0,0,0,0,63,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,63,240,19,35,105,24,2,0,31, - 0,0,15,131,128,7,198,0,3,252,0,1,240,0,0,240, - 0,1,248,0,7,124,0,12,60,0,24,30,0,0,31,0, - 0,15,0,0,7,128,3,255,128,14,15,192,28,7,192,60, - 3,192,56,3,224,120,3,224,120,1,224,248,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 240,1,224,120,1,192,120,3,192,56,3,192,60,3,128,28, - 7,0,14,14,0,3,252,0,23,32,96,27,2,0,1,224, - 64,3,248,192,7,255,192,6,63,128,4,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,31,128,30, - 97,224,30,192,224,30,128,240,31,0,240,31,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,255,199,254,19,33, - 99,24,2,1,28,0,0,30,0,0,30,0,0,15,0,0, - 7,128,0,1,128,0,0,192,0,0,96,0,0,0,0,0, - 0,0,0,0,0,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,19,33,99,24,2,1,0,7,0, - 0,7,128,0,15,0,0,30,0,0,28,0,0,56,0,0, - 96,0,0,64,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,14,0,28,7,0,60,3,128,56,3,192,120,3,192, - 120,1,224,248,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,3, - 192,56,3,192,60,3,128,28,7,0,14,14,0,3,252,0, - 19,33,99,24,2,0,0,96,0,0,224,0,0,240,0,1, - 240,0,1,184,0,3,24,0,6,4,0,8,3,0,0,0, - 0,0,0,0,0,0,0,3,252,0,14,14,0,28,7,0, - 60,3,128,56,3,192,120,3,192,120,1,224,248,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,120,1,224,120,3,192,56,3,192,60,3,128, - 28,7,0,14,14,0,3,252,0,19,32,96,24,2,0,7, - 129,0,15,225,0,31,255,0,24,254,0,16,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,252,0, - 14,14,0,28,7,0,60,3,128,56,3,192,120,3,192,120, - 1,224,248,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,120,1,224,120,3,192, - 56,3,192,60,3,128,28,7,0,14,14,0,3,252,0,19, - 32,96,24,2,0,14,7,0,31,15,128,31,15,128,31,15, - 128,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,252,0,14,14,0,28,7,0,60,3,128,56, - 3,192,120,3,192,120,1,224,248,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 120,1,224,120,3,192,56,3,192,60,3,128,28,7,0,14, - 14,0,3,252,0,41,31,186,45,2,253,0,0,30,0,0, - 0,0,0,63,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,255,128,255,255,255,255,255,128,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,30,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,63,0,0,0,0, - 0,30,0,0,0,19,22,66,24,2,1,3,252,96,14,14, - 64,28,7,192,60,3,128,56,3,192,120,7,192,120,13,224, - 248,9,224,240,25,224,240,49,224,240,97,224,240,193,224,240, - 129,224,241,129,224,243,1,224,126,1,224,124,3,192,56,3, - 192,60,3,128,60,7,0,110,14,0,195,252,0,23,33,99, - 27,2,1,14,0,0,15,0,0,7,128,0,3,192,0,1, - 192,0,0,224,0,0,48,0,0,16,0,0,0,0,0,0, - 0,0,0,0,254,7,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,1,240,30,1,240,30,1,240,30,2,240,14,6,240, - 15,12,240,3,240,254,23,33,99,27,2,1,0,1,192,0, - 3,192,0,3,192,0,7,128,0,14,0,0,12,0,0,24, - 0,0,48,0,0,0,0,0,0,0,0,0,0,254,7,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,1,240,30,1,240, - 30,1,240,30,2,240,14,6,240,15,12,240,3,240,254,23, - 33,99,27,2,0,0,48,0,0,56,0,0,120,0,0,124, - 0,0,204,0,1,134,0,3,3,0,6,0,128,0,0,0, - 0,0,0,0,0,0,254,7,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,1,240,30,1,240,30,1,240,30,2,240,14, - 6,240,15,12,240,3,240,254,23,32,96,27,2,0,7,3, - 128,15,135,192,15,135,192,15,135,192,7,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,7,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,1,240,30,1,240,30, - 1,240,30,2,240,14,6,240,15,12,240,3,240,254,24,45, - 135,26,1,246,0,0,240,0,0,240,0,1,224,0,1,192, - 0,3,128,0,7,0,0,6,0,0,12,0,0,24,0,0, - 0,0,0,0,0,0,0,0,255,225,255,31,0,120,15,0, - 48,15,0,48,7,0,32,7,128,96,7,128,96,3,192,64, - 3,192,192,3,192,192,1,224,128,1,225,128,0,225,128,0, - 241,128,0,241,0,0,115,0,0,123,0,0,122,0,0,62, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,24,0, - 0,24,0,0,24,0,24,48,0,60,48,0,60,48,0,60, - 96,0,56,96,0,31,192,0,15,0,0,20,46,138,25,2, - 243,30,0,0,126,0,0,254,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,15,192,30,63,224,30,97,240,30,192,240,30,128, - 240,31,128,240,31,0,240,31,0,240,30,0,240,30,0,240, - 30,1,224,30,1,224,30,1,192,30,3,128,30,3,128,30, - 7,0,30,6,0,30,12,0,30,24,0,30,48,0,30,192, - 0,31,128,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,60,0,0,240,0,0,128,0,0,24,43,129,26,1, - 245,1,192,224,3,225,240,3,225,240,3,225,240,1,192,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 225,255,31,128,120,15,0,48,15,0,48,7,128,32,7,128, - 96,7,128,96,3,192,64,3,192,64,3,192,192,1,224,128, - 1,224,128,0,225,128,0,241,128,0,241,0,0,115,0,0, - 123,0,0,122,0,0,62,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,24,0,0,24,0,0,24,0,24,48,0, - 60,48,0,60,48,0,60,96,0,56,96,0,31,192,0,15, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=46 x= 6 y=14 dx=45 dy= 0 ascent=36 len=246 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x= 0 y=-10 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =36 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35n[1588] U8G_FONT_SECTION("u8g_font_osr35n") = { - 0,128,62,216,241,34,0,0,0,0,42,58,0,36,246,34, - 0,18,20,60,25,4,14,0,224,0,1,224,0,1,224,0, - 1,224,0,224,195,128,240,135,192,248,143,192,60,159,128,3, - 248,0,1,224,0,3,240,0,30,190,0,124,143,128,248,135, - 192,240,195,192,97,193,128,1,224,0,1,224,0,1,224,0, - 0,224,0,41,41,246,45,2,248,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,7, - 15,15,14,4,247,120,252,252,254,126,6,6,6,4,12,8, - 24,48,96,64,12,3,6,18,3,11,255,240,255,240,255,240, - 6,5,5,14,4,1,120,252,252,252,120,16,46,92,22,3, - 246,0,3,0,3,0,3,0,6,0,6,0,6,0,12,0, - 12,0,12,0,24,0,24,0,24,0,48,0,48,0,48,0, - 48,0,96,0,96,0,96,0,192,0,192,0,192,1,128,1, - 128,1,128,3,0,3,0,3,0,6,0,6,0,6,0,12, - 0,12,0,12,0,24,0,24,0,24,0,48,0,48,0,48, - 0,96,0,96,0,96,0,96,0,192,0,192,0,23,34,102, - 28,2,0,0,124,0,1,199,0,7,1,128,6,0,192,14, - 0,224,28,0,112,60,0,120,60,0,120,56,0,56,120,0, - 60,120,0,60,120,0,60,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,120,0,60,120,0,60,120,0,60,120,0, - 60,60,0,120,60,0,120,28,0,112,28,0,112,14,0,224, - 7,1,192,3,131,128,0,254,0,17,34,102,28,6,0,0, - 64,0,0,64,0,0,192,0,0,192,0,1,192,0,7,192, - 0,255,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,255, - 255,128,255,255,128,21,34,102,28,4,0,3,252,0,14,31, - 0,16,7,192,32,3,224,96,1,240,64,1,240,192,0,240, - 192,0,248,224,0,248,252,0,248,254,0,248,126,0,248,126, - 0,240,62,1,240,0,1,224,0,3,192,0,3,128,0,7, - 0,0,14,0,0,28,0,0,112,0,0,224,0,1,192,0, - 3,0,0,6,0,16,12,0,16,24,0,16,16,0,16,48, - 0,48,48,0,112,127,255,240,127,255,240,127,255,240,127,255, - 240,21,34,102,28,4,0,3,248,0,14,31,0,24,7,128, - 48,3,192,112,3,192,120,1,224,124,1,224,126,1,224,126, - 1,224,60,1,224,0,1,224,0,3,192,0,3,192,0,7, - 128,0,14,0,15,248,0,31,143,0,14,3,128,0,3,224, - 0,1,224,0,1,240,0,0,248,0,0,248,0,0,248,60, - 0,248,126,0,248,254,0,248,254,0,248,252,1,240,224,1, - 240,224,3,224,96,3,192,48,15,0,15,254,0,23,34,102, - 28,3,0,0,1,128,0,1,128,0,3,128,0,7,128,0, - 7,128,0,15,128,0,31,128,0,31,128,0,55,128,0,119, - 128,0,231,128,0,199,128,1,199,128,3,135,128,3,7,128, - 6,7,128,14,7,128,12,7,128,24,7,128,56,7,128,48, - 7,128,96,7,128,224,7,128,255,255,254,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,3,255,254,3,255,254,21,35,105,28,4,0,48, - 0,64,60,3,192,63,255,128,63,255,0,63,252,0,55,240, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,0, - 48,0,0,48,0,0,51,254,0,60,7,128,56,3,192,48, - 1,224,48,1,240,48,1,240,0,0,240,0,0,248,0,0, - 248,0,0,248,0,0,248,60,0,248,126,0,248,254,0,248, - 254,0,240,252,1,240,248,1,224,240,1,224,112,3,192,112, - 7,128,60,31,0,15,252,0,21,34,102,28,4,0,0,126, - 0,1,193,128,3,128,192,7,0,64,14,0,224,28,1,224, - 28,3,224,56,3,224,56,3,192,120,0,0,120,0,0,120, - 0,0,120,0,0,240,126,0,241,255,128,243,131,192,247,1, - 224,254,1,240,252,0,240,252,0,240,248,0,248,248,0,120, - 248,0,120,248,0,120,120,0,120,120,0,120,120,0,248,120, - 0,240,56,0,240,60,0,224,28,1,224,14,3,192,7,7, - 128,1,254,0,19,34,102,28,5,0,255,255,224,255,255,224, - 255,255,224,255,255,224,224,0,224,192,0,64,128,0,64,128, - 0,192,128,0,128,128,1,128,0,1,128,0,3,0,0,2, - 0,0,6,0,0,12,0,0,24,0,0,24,0,0,48,0, - 0,112,0,0,112,0,0,224,0,0,224,0,1,224,0,1, - 224,0,3,224,0,3,224,0,3,224,0,7,240,0,7,240, - 0,7,240,0,7,240,0,7,240,0,3,240,0,3,224,0, - 23,34,102,28,3,0,1,254,0,7,135,128,30,1,192,56, - 0,224,120,0,112,112,0,112,240,0,56,240,0,56,240,0, - 56,240,0,56,248,0,56,252,0,112,126,0,112,127,192,224, - 63,241,192,31,255,0,7,255,128,7,255,224,12,63,248,56, - 7,252,112,1,252,112,0,126,224,0,62,224,0,62,224,0, - 62,224,0,30,224,0,30,224,0,28,96,0,60,112,0,56, - 48,0,120,24,0,240,14,1,192,3,255,0,21,34,102,28, - 4,0,1,248,0,7,142,0,14,3,0,28,1,128,56,1, - 192,120,1,224,120,0,224,120,0,240,240,0,240,240,0,240, - 240,0,240,240,0,248,240,0,248,248,0,248,120,1,248,120, - 1,248,120,3,248,60,7,120,30,14,120,15,252,120,3,240, - 120,0,0,240,0,0,240,0,0,240,0,0,240,60,0,224, - 124,0,224,124,1,192,124,1,192,120,3,128,112,3,0,56, - 6,0,28,28,0,15,248,0,6,22,22,14,4,1,120,252, - 252,252,120,0,0,0,0,0,0,0,0,0,0,0,0,120, - 252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=26 dx=52 dy= 0 ascent=37 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =37 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35r[10371] U8G_FONT_SECTION("u8g_font_osr35r") = { - 0,128,62,216,241,35,12,236,30,116,32,127,246,37,245,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01type[1163] U8G_FONT_SECTION("u8g_font_p01type") = { - 0,5,6,0,254,4,1,81,2,129,32,255,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,1,5,5,2,0, - 255,128,0,128,128,128,255,255,255,255,1,5,5,3,1,255, - 128,128,0,128,128,255,255,255,255,5,5,5,6,0,255,40, - 80,160,80,40,3,2,2,4,0,0,224,32,3,1,1,4, - 0,1,224,255,255,255,3,5,5,4,0,255,64,224,64,0, - 224,255,255,255,255,255,1,1,1,2,0,1,128,255,255,255, - 5,5,5,6,0,255,160,80,40,80,160,255,255,255,4,5, - 5,5,0,255,32,0,96,128,112,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 3,3,3,4,0,0,160,64,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,5,5,4,0,255,64,0, - 224,0,64,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 1 dx= 5 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 4 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typen[186] U8G_FONT_SECTION("u8g_font_p01typen") = { - 0,5,6,0,254,5,0,0,0,0,42,58,0,4,255,5, - 0,3,3,3,4,0,0,160,64,160,3,3,3,4,0,0, - 64,224,64,2,2,2,3,0,255,64,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,4,4,4,5,0,255,16, - 32,64,128,3,5,5,4,0,255,96,160,160,160,192,1,5, - 5,2,0,255,128,128,128,128,128,3,5,5,4,0,255,192, - 32,224,128,96,3,5,5,4,0,255,192,32,192,32,192,3, - 5,5,4,0,255,160,160,224,32,32,3,5,5,4,0,255, - 96,128,224,32,192,3,5,5,4,0,255,96,128,224,160,192, - 3,5,5,4,0,255,224,32,32,64,64,3,5,5,4,0, - 255,96,160,224,160,192,3,5,5,4,0,255,96,160,224,32, - 192,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typer[938] U8G_FONT_SECTION("u8g_font_p01typer") = { - 0,5,6,0,254,4,1,81,2,129,32,127,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[1140] U8G_FONT_SECTION("u8g_font_pixelle_micro") = { - 0,6,8,255,254,5,1,97,2,188,32,255,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 6 x= 0 y= 1 dx= 4 dy= 0 ascent= 6 len= 6 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[189] U8G_FONT_SECTION("u8g_font_pixelle_micron") = { - 0,6,8,255,254,5,0,0,0,0,42,58,0,6,255,5, - 0,3,4,4,4,0,0,64,224,64,160,3,3,3,4,0, - 0,64,224,64,1,2,2,2,0,255,128,128,3,1,1,4, - 0,1,224,1,1,1,2,0,0,128,3,6,6,4,0,0, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,224,160, - 64,3,5,5,4,0,0,192,64,64,64,224,3,5,5,4, - 0,0,64,160,32,64,224,3,5,5,4,0,0,192,32,64, - 32,192,3,5,5,4,0,0,160,160,224,32,32,3,5,5, - 4,0,0,224,128,224,32,192,3,5,5,4,0,0,64,160, - 192,160,64,3,5,5,4,0,0,224,32,64,64,128,3,5, - 5,4,0,0,64,160,64,160,64,3,5,5,4,0,0,64, - 160,96,160,64,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[1012] U8G_FONT_SECTION("u8g_font_pixelle_micror") = { - 0,6,8,255,254,5,1,97,2,188,32,127,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255}; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10[2560] U8G_FONT_SECTION("u8g_font_profont10") = { - 0,5,9,0,254,6,1,126,2,248,32,255,254,8,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0,0,0,0,5,0,0,0,0,0,5,0,0,2,3, - 3,5,0,255,64,64,128,3,9,9,5,1,254,32,64,64, - 224,64,64,64,64,128,4,3,3,5,0,255,80,80,160,5, - 1,1,5,0,0,168,3,5,5,5,1,1,64,224,64,64, - 64,3,5,5,5,1,1,64,224,64,224,64,3,2,2,5, - 1,5,64,160,5,6,6,5,0,0,120,208,224,112,248,112, - 4,8,8,5,0,0,80,32,112,128,96,16,144,96,2,3, - 3,5,0,0,64,128,64,4,6,6,5,0,0,112,160,176, - 160,160,112,0,0,0,5,0,0,0,0,0,5,0,0,0, - 0,0,5,0,0,0,0,0,5,0,0,2,3,3,5,2, - 3,64,128,128,2,3,3,5,1,3,64,64,128,4,3,3, - 5,0,3,80,160,160,4,3,3,5,0,3,80,80,160,4, - 4,4,5,0,1,96,240,240,96,2,1,1,5,1,2,192, - 5,1,1,5,0,2,248,4,2,2,5,0,5,80,160,5, - 3,3,5,0,3,248,88,88,4,7,7,5,0,0,80,32, - 0,112,224,16,224,2,3,3,5,0,0,128,64,128,4,4, - 4,5,0,0,112,176,160,80,0,0,0,5,0,0,0,0, - 0,5,0,0,4,8,8,5,0,0,80,0,144,144,160,64, - 64,64,0,0,0,5,0,0,1,6,6,5,2,0,128,0, - 128,128,128,128,4,6,6,5,0,255,32,96,176,192,112,64, - 4,6,6,5,0,0,96,128,192,128,144,224,4,4,4,5, - 0,0,144,96,96,144,3,6,6,5,1,0,160,64,224,64, - 224,64,1,8,8,5,2,255,128,128,128,0,0,128,128,128, - 4,8,8,5,0,255,96,144,64,160,80,32,144,96,2,1, - 1,5,1,5,192,4,6,6,5,0,0,192,32,208,208,32, - 192,3,5,5,5,1,2,96,160,96,0,224,5,3,3,5, - 0,0,72,144,72,4,2,2,5,0,1,240,16,3,1,1, - 5,0,2,224,4,5,5,5,0,1,192,32,208,208,176,2, - 1,1,5,1,5,192,3,3,3,5,1,3,64,160,64,3, - 4,4,5,0,0,64,224,64,224,2,3,3,5,1,4,128, - 64,192,2,3,3,5,1,4,192,64,192,2,1,1,5,2, - 5,192,4,5,5,5,0,255,160,160,160,208,128,4,6,6, - 5,0,0,112,176,176,112,48,48,1,1,1,5,2,2,128, - 2,2,2,5,1,254,192,192,2,3,3,5,1,4,192,64, - 64,3,5,5,5,1,2,64,160,64,0,224,5,3,3,5, - 0,0,144,72,144,5,7,7,5,0,0,192,72,80,32,72, - 152,8,5,7,7,5,0,0,192,72,80,32,80,136,24,5, - 7,7,5,0,0,192,72,208,32,72,152,8,4,6,6,5, - 0,0,32,0,32,64,144,96,4,8,8,5,0,0,64,32, - 96,144,144,240,144,144,4,8,8,5,0,0,32,64,96,144, - 144,240,144,144,4,8,8,5,0,0,32,80,0,96,144,240, - 144,144,4,8,8,5,0,0,80,160,0,96,144,240,144,144, - 4,8,8,5,0,0,80,0,96,144,144,240,144,144,4,8, - 8,5,0,0,32,80,32,96,144,240,144,144,4,6,6,5, - 0,0,112,160,240,160,160,176,4,8,8,5,0,254,96,144, - 128,128,144,96,32,64,4,8,8,5,0,0,64,32,240,128, - 224,128,128,240,4,8,8,5,0,0,32,64,240,128,224,128, - 128,240,4,8,8,5,0,0,32,80,240,128,224,128,128,240, - 4,8,8,5,0,0,80,0,240,128,224,128,128,240,3,8, - 8,5,1,0,128,64,224,64,64,64,64,224,3,8,8,5, - 1,0,32,64,224,64,64,64,64,224,3,8,8,5,1,0, - 64,160,0,224,64,64,64,224,3,8,8,5,1,0,160,0, - 224,64,64,64,64,224,4,6,6,5,0,0,96,80,208,80, - 80,96,4,8,8,5,0,0,80,160,144,208,176,144,144,144, - 4,8,8,5,0,0,64,32,96,144,144,144,144,96,4,8, - 8,5,0,0,32,64,96,144,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,8,8,5,0,0,80,0, - 96,144,144,144,144,96,3,3,3,5,0,1,160,64,160,4, - 6,6,5,0,0,96,144,176,208,144,96,4,8,8,5,0, - 0,64,32,144,144,144,144,144,96,4,8,8,5,0,0,32, - 64,144,144,144,144,144,96,4,8,8,5,0,0,32,80,0, - 144,144,144,144,96,4,8,8,5,0,0,80,0,144,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,160,64, - 64,4,6,6,5,0,0,128,224,144,224,128,128,4,7,7, - 5,0,255,96,144,160,160,144,160,128,4,7,7,5,0,0, - 64,32,0,112,144,176,80,4,7,7,5,0,0,32,64,0, - 112,144,176,80,4,7,7,5,0,0,32,80,0,112,144,176, - 80,4,7,7,5,0,0,80,160,0,112,144,176,80,4,6, - 6,5,0,0,80,0,112,144,176,80,4,7,7,5,0,0, - 32,80,32,112,144,176,80,4,4,4,5,0,0,112,176,160, - 112,4,6,6,5,0,254,96,144,128,112,32,64,4,7,7, - 5,0,0,64,32,0,96,240,128,112,4,7,7,5,0,0, - 32,64,0,96,240,128,112,4,7,7,5,0,0,32,80,0, - 96,240,128,112,4,6,6,5,0,0,80,0,96,240,128,112, - 3,7,7,5,1,0,128,64,0,192,64,64,224,3,7,7, - 5,1,0,64,128,0,192,64,64,224,3,7,7,5,1,0, - 64,160,0,192,64,64,224,3,6,6,5,1,0,160,0,192, - 64,64,224,4,7,7,5,0,0,192,192,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,32,80,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,3,5,5, - 5,0,0,64,0,224,0,64,4,4,4,5,0,0,96,176, - 208,96,4,7,7,5,0,0,64,32,0,144,144,176,80,4, - 7,7,5,0,0,32,64,0,144,144,176,80,4,7,7,5, - 0,0,32,80,0,144,144,176,80,4,6,6,5,0,0,80, - 0,144,144,176,80,4,9,9,5,0,254,16,32,0,144,144, - 144,112,16,96,4,8,8,5,0,254,128,128,224,144,144,224, - 128,128,4,8,8,5,0,254,80,0,144,144,144,112,16,96 - }; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10r[1106] U8G_FONT_SECTION("u8g_font_profont10r") = { - 0,5,9,0,254,6,1,126,2,248,32,127,254,7,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0}; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 3 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11[2768] U8G_FONT_SECTION("u8g_font_profont11") = { - 0,6,10,0,254,7,1,158,3,55,32,255,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0, - 0,0,0,6,0,0,0,0,0,6,0,0,2,3,3,6, - 0,255,64,64,128,5,11,11,6,0,254,24,32,32,32,112, - 32,32,32,32,32,192,4,3,3,6,0,255,80,80,160,5, - 1,1,6,0,0,168,3,5,5,6,1,2,64,224,64,64, - 64,3,5,5,6,1,2,64,224,64,224,64,3,2,2,6, - 1,6,64,160,6,8,8,6,0,0,124,168,176,96,104,212, - 84,40,5,9,9,6,0,0,80,32,112,136,128,112,8,136, - 112,2,4,4,6,0,0,64,128,128,64,5,7,7,6,0, - 0,120,160,160,176,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,4,64,128,128,2,3,3,6,2,4,64, - 64,128,4,3,3,6,1,4,80,160,160,4,3,3,6,1, - 4,80,80,160,5,5,5,6,0,1,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,6,104,176,6,3,3,6,0,4,244,92,92,5,8, - 8,6,0,0,80,32,0,120,128,112,8,240,2,4,4,6, - 0,0,128,64,64,128,5,5,5,6,0,0,80,168,184,160, - 88,0,0,0,6,0,0,0,0,0,6,0,0,5,9,9, - 6,0,0,80,0,136,136,136,80,32,32,32,0,0,0,6, - 0,0,1,7,7,6,3,0,128,0,128,128,128,128,128,5, - 7,7,6,0,255,32,112,168,160,160,120,32,5,8,8,6, - 0,0,96,144,128,224,128,128,136,240,5,5,5,6,0,0, - 136,112,80,112,136,5,7,7,6,0,0,136,80,248,32,248, - 32,32,1,9,9,6,2,255,128,128,128,128,0,128,128,128, - 128,5,10,10,6,0,255,112,136,72,160,144,72,40,144,136, - 112,3,1,1,6,1,6,160,5,7,7,6,0,0,224,16, - 104,136,104,16,224,4,6,6,6,1,3,112,144,144,112,0, - 240,5,4,4,6,0,0,72,144,144,72,5,3,3,6,0, - 1,248,8,8,5,1,1,6,0,3,248,5,6,6,6,0, - 1,224,16,200,168,200,176,3,1,1,6,1,6,224,4,4, - 4,6,1,4,96,144,144,96,5,6,6,6,0,0,32,32, - 248,32,32,248,3,4,4,6,1,5,192,32,64,224,3,5, - 5,6,1,4,192,32,96,32,192,3,2,2,6,2,6,96, - 192,5,7,7,6,0,254,144,144,144,144,232,128,128,5,8, - 8,6,0,0,120,168,168,168,120,40,40,40,2,2,2,6, - 2,2,192,192,3,3,3,6,1,254,224,96,192,3,4,4, - 6,1,5,192,64,64,224,4,6,6,6,1,3,96,144,144, - 96,0,240,5,4,4,6,0,0,144,72,72,144,6,9,9, - 6,0,0,192,64,68,232,16,40,88,184,8,6,9,9,6, - 0,0,192,64,68,232,16,56,68,136,28,6,9,9,6,0, - 0,192,32,100,40,208,40,88,184,8,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,9,9,6,0,0,64,32,32, - 80,80,136,248,136,136,5,9,9,6,0,0,16,32,32,80, - 80,136,248,136,136,5,9,9,6,0,0,32,80,0,32,80, - 136,248,136,136,5,9,9,6,0,0,104,176,32,80,80,136, - 248,136,136,5,9,9,6,0,0,80,0,32,80,80,136,248, - 136,136,5,9,9,6,0,0,32,80,32,80,136,136,248,136, - 136,5,7,7,6,0,0,120,160,160,240,160,160,184,5,9, - 9,6,0,254,112,136,128,128,128,136,112,32,64,5,9,9, - 6,0,0,64,32,248,128,128,240,128,128,248,5,9,9,6, - 0,0,16,32,248,128,128,240,128,128,248,5,9,9,6,0, - 0,32,80,248,128,128,240,128,128,248,5,9,9,6,0,0, - 80,0,248,128,128,240,128,128,248,5,9,9,6,0,0,64, - 32,248,32,32,32,32,32,248,5,9,9,6,0,0,16,32, - 248,32,32,32,32,32,248,5,9,9,6,0,0,32,80,0, - 248,32,32,32,32,248,5,9,9,6,0,0,80,0,248,32, - 32,32,32,32,248,5,7,7,6,0,0,112,72,72,232,72, - 72,112,5,9,9,6,0,0,104,176,136,200,168,152,136,136, - 136,5,9,9,6,0,0,64,32,112,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,112,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,112,136,136,136,136,112,5,9, - 9,6,0,0,104,176,112,136,136,136,136,136,112,5,9,9, - 6,0,0,80,0,112,136,136,136,136,136,112,5,5,5,6, - 0,1,136,80,32,80,136,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,9,9,6,0,0,64,32,136,136,136,136, - 136,136,112,5,9,9,6,0,0,16,32,136,136,136,136,136, - 136,112,5,9,9,6,0,0,32,80,0,136,136,136,136,136, - 112,5,9,9,6,0,0,80,0,136,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,136,136,136,80,32,32,32,5, - 7,7,6,0,0,128,240,136,136,240,128,128,5,9,9,6, - 0,255,48,72,136,144,144,136,136,176,128,5,8,8,6,0, - 0,32,16,0,120,136,136,152,104,5,8,8,6,0,0,16, - 32,0,120,136,136,152,104,5,8,8,6,0,0,32,80,0, - 120,136,136,152,104,5,8,8,6,0,0,104,176,0,120,136, - 136,152,104,5,7,7,6,0,0,80,0,120,136,136,152,104, - 5,8,8,6,0,0,32,80,32,120,136,136,152,104,5,5, - 5,6,0,0,112,168,184,160,120,5,7,7,6,0,254,112, - 136,128,128,120,32,64,5,8,8,6,0,0,64,32,0,112, - 136,248,128,120,5,8,8,6,0,0,16,32,0,112,136,248, - 128,120,5,8,8,6,0,0,32,80,0,112,136,248,128,120, - 5,7,7,6,0,0,80,0,112,136,248,128,120,3,8,8, - 6,1,0,128,64,0,192,64,64,64,224,3,8,8,6,1, - 0,32,64,0,192,64,64,64,224,3,8,8,6,1,0,64, - 160,0,192,64,64,64,224,3,7,7,6,1,0,160,0,192, - 64,64,64,224,5,8,8,6,0,0,96,96,16,120,136,136, - 136,112,5,8,8,6,0,0,104,176,0,176,200,136,136,136, - 5,8,8,6,0,0,64,32,0,112,136,136,136,112,5,8, - 8,6,0,0,16,32,0,112,136,136,136,112,5,8,8,6, - 0,0,32,80,0,112,136,136,136,112,5,8,8,6,0,0, - 104,176,0,112,136,136,136,112,5,7,7,6,0,0,80,0, - 112,136,136,136,112,5,5,5,6,0,1,32,0,248,0,32, - 5,5,5,6,0,0,112,152,168,200,112,5,8,8,6,0, - 0,64,32,0,136,136,136,152,104,5,8,8,6,0,0,16, - 32,0,136,136,136,152,104,5,8,8,6,0,0,32,80,0, - 136,136,136,152,104,5,7,7,6,0,0,80,0,136,136,136, - 152,104,5,10,10,6,0,254,16,32,0,136,136,136,136,120, - 8,112,5,9,9,6,0,254,128,128,240,136,136,136,240,128, - 128,5,9,9,6,0,254,80,0,136,136,136,136,120,8,112 - }; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11r[1200] U8G_FONT_SECTION("u8g_font_profont11r") = { - 0,6,10,0,254,7,1,158,3,55,32,127,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0 - }; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 3 y= 7 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12[2907] U8G_FONT_SECTION("u8g_font_profont12") = { - 0,6,11,0,254,8,1,178,3,103,32,255,254,10,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0,0,0,0,6,0,0, - 0,0,0,6,0,0,2,3,3,6,0,255,64,64,128,5, - 12,12,6,0,254,24,32,32,32,32,112,32,32,32,32,32, - 192,4,3,3,6,0,255,80,80,160,5,1,1,6,0,0, - 168,3,6,6,6,1,2,64,224,64,64,64,64,3,6,6, - 6,1,2,64,224,64,64,224,64,3,2,2,6,1,7,64, - 160,6,9,9,6,0,0,124,164,168,80,32,104,212,84,40, - 5,10,10,6,0,0,80,32,112,136,128,112,8,8,136,112, - 2,4,4,6,0,0,64,128,128,64,5,8,8,6,0,0, - 120,160,160,176,160,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,5,64,128,128,2,3,3,6,2,5,64, - 64,128,4,3,3,6,1,5,80,160,160,4,3,3,6,1, - 5,80,80,160,5,5,5,6,0,2,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,7,104,176,6,3,3,6,0,5,244,92,92,5,9, - 9,6,0,0,80,32,0,0,120,128,112,8,240,2,4,4, - 6,0,0,128,64,64,128,5,5,5,6,0,0,80,168,184, - 160,88,0,0,0,6,0,0,0,0,0,6,0,0,5,10, - 10,6,0,0,80,0,0,136,136,136,80,32,32,32,0,0, - 0,6,0,0,1,8,8,6,3,0,128,0,128,128,128,128, - 128,128,5,7,7,6,0,255,32,112,168,160,160,120,32,5, - 9,9,6,0,0,96,144,128,224,128,128,128,136,240,5,5, - 5,6,0,1,136,112,80,112,136,5,8,8,6,0,0,136, - 80,248,32,248,32,32,32,1,10,10,6,2,255,128,128,128, - 128,0,0,128,128,128,128,5,11,11,6,0,255,112,136,72, - 160,144,136,72,40,144,136,112,3,1,1,6,1,7,160,5, - 8,8,6,0,0,224,16,104,136,136,104,16,224,4,7,7, - 6,1,3,112,144,144,112,0,0,240,5,4,4,6,0,0, - 72,144,144,72,5,3,3,6,0,2,248,8,8,5,1,1, - 6,0,3,248,5,7,7,6,0,1,224,16,200,168,168,200, - 176,3,1,1,6,1,7,224,4,4,4,6,1,5,96,144, - 144,96,5,6,6,6,0,1,32,32,248,32,32,248,3,4, - 4,6,1,6,192,32,64,224,3,5,5,6,1,5,192,32, - 96,32,192,4,2,2,6,2,7,112,224,5,7,7,6,0, - 254,144,144,144,144,232,128,128,5,9,9,6,0,0,120,168, - 168,168,120,40,40,40,40,2,2,2,6,2,3,192,192,4, - 3,3,6,1,254,240,112,224,3,4,4,6,1,6,192,64, - 64,224,4,7,7,6,1,3,96,144,144,96,0,0,240,5, - 4,4,6,0,0,144,72,72,144,6,10,10,6,0,0,192, - 64,68,232,16,32,72,152,56,8,6,10,10,6,0,0,192, - 64,68,232,16,32,88,132,8,28,6,10,10,6,0,0,192, - 32,100,40,208,32,72,152,56,8,5,8,8,6,0,0,32, - 0,32,64,128,128,136,112,5,10,10,6,0,0,64,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,16,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,0, - 32,80,80,136,248,136,136,5,10,10,6,0,0,104,176,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,80,0,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,32, - 80,80,136,136,248,136,136,5,8,8,6,0,0,120,160,160, - 240,160,160,160,184,5,10,10,6,0,254,112,136,128,128,128, - 128,136,112,32,64,5,10,10,6,0,0,64,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,16,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,32,80,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,80,0,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,64,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,16,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,32,80,0,248,32, - 32,32,32,32,248,5,10,10,6,0,0,80,0,248,32,32, - 32,32,32,32,248,6,8,8,6,0,0,120,68,68,228,68, - 68,68,120,5,10,10,6,0,0,104,176,136,200,168,152,136, - 136,136,136,5,10,10,6,0,0,64,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,16,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,32,80,0,112,136,136,136, - 136,136,112,5,10,10,6,0,0,104,176,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,80,0,112,136,136,136,136, - 136,136,112,5,5,5,6,0,2,136,80,32,80,136,5,8, - 8,6,0,0,112,136,152,168,200,136,136,112,5,10,10,6, - 0,0,64,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,32,80,0,136,136,136,136,136,136,112,5,10,10,6, - 0,0,80,0,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,80,32,32,32,5,8,8,6, - 0,0,128,240,136,136,136,240,128,128,5,10,10,6,0,255, - 48,72,136,144,144,136,136,136,176,128,5,9,9,6,0,0, - 32,16,0,0,120,136,136,152,104,5,9,9,6,0,0,16, - 32,0,0,120,136,136,152,104,5,9,9,6,0,0,32,80, - 0,0,120,136,136,152,104,5,9,9,6,0,0,104,176,0, - 0,120,136,136,152,104,5,8,8,6,0,0,80,0,0,120, - 136,136,152,104,5,9,9,6,0,0,32,80,32,0,120,136, - 136,152,104,5,5,5,6,0,0,112,168,184,160,120,5,7, - 7,6,0,254,112,136,128,128,120,32,64,5,9,9,6,0, - 0,64,32,0,0,112,136,248,128,120,5,9,9,6,0,0, - 16,32,0,0,112,136,248,128,120,5,9,9,6,0,0,32, - 80,0,0,112,136,248,128,120,5,8,8,6,0,0,80,0, - 0,112,136,248,128,120,3,9,9,6,1,0,128,64,0,0, - 192,64,64,64,224,3,9,9,6,1,0,32,64,0,0,192, - 64,64,64,224,3,9,9,6,1,0,64,160,0,0,192,64, - 64,64,224,3,8,8,6,1,0,160,0,0,192,64,64,64, - 224,5,9,9,6,0,0,96,96,16,8,120,136,136,136,112, - 5,9,9,6,0,0,104,176,0,0,176,200,136,136,136,5, - 9,9,6,0,0,64,32,0,0,112,136,136,136,112,5,9, - 9,6,0,0,16,32,0,0,112,136,136,136,112,5,9,9, - 6,0,0,32,80,0,0,112,136,136,136,112,5,9,9,6, - 0,0,104,176,0,0,112,136,136,136,112,5,8,8,6,0, - 0,80,0,0,112,136,136,136,112,5,5,5,6,0,1,32, - 0,248,0,32,5,5,5,6,0,0,112,152,168,200,112,5, - 9,9,6,0,0,64,32,0,0,136,136,136,152,104,5,9, - 9,6,0,0,16,32,0,0,136,136,136,152,104,5,9,9, - 6,0,0,32,80,0,0,136,136,136,152,104,5,8,8,6, - 0,0,80,0,0,136,136,136,152,104,5,11,11,6,0,254, - 16,32,0,0,136,136,136,136,120,8,112,5,10,10,6,0, - 254,128,128,128,240,136,136,136,240,128,128,5,10,10,6,0, - 254,80,0,0,136,136,136,136,120,8,112}; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=11 x= 2 y= 7 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12r[1258] U8G_FONT_SECTION("u8g_font_profont12r") = { - 0,6,11,0,254,8,1,178,3,103,32,127,254,9,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 4 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15[3186] U8G_FONT_SECTION("u8g_font_profont15") = { - 0,7,14,0,253,9,1,217,3,175,32,255,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0,0,0,0,7, - 0,0,0,0,0,7,0,0,2,4,4,7,0,255,64,64, - 64,128,7,14,14,7,0,254,6,8,16,16,16,56,16,16, - 16,16,16,16,32,192,5,4,4,7,0,255,72,72,72,144, - 7,1,1,7,0,0,146,3,6,6,7,2,3,64,224,64, - 64,64,64,3,6,6,7,2,3,64,224,64,64,224,64,5, - 3,3,7,1,8,32,80,136,7,10,10,7,0,0,126,164, - 168,176,96,84,170,42,42,20,6,12,12,7,0,0,68,40, - 16,120,132,128,128,120,4,4,132,120,2,5,5,7,0,0, - 64,128,128,128,64,6,9,9,7,0,0,124,144,144,144,152, - 144,144,144,124,0,0,0,7,0,0,0,0,0,7,0,0, - 0,0,0,7,0,0,0,0,0,7,0,0,2,4,4,7, - 3,5,64,128,128,128,2,4,4,7,3,5,64,64,64,128, - 5,4,4,7,1,5,72,144,144,144,5,4,4,7,1,5, - 72,72,72,144,6,6,6,7,0,2,48,120,252,252,120,48, - 4,1,1,7,1,3,240,7,1,1,7,0,3,254,6,2, - 2,7,0,8,100,152,7,4,4,7,0,5,242,94,82,82, - 6,11,11,7,0,0,68,40,16,0,0,124,128,120,4,4, - 248,2,5,5,7,0,0,128,64,64,64,128,6,6,6,7, - 0,0,104,148,156,144,144,108,0,0,0,7,0,0,0,0, - 0,7,0,0,7,12,12,7,0,0,68,0,0,130,130,130, - 68,40,16,16,16,16,0,0,0,7,0,0,1,9,9,7, - 4,0,128,0,128,128,128,128,128,128,128,5,10,10,7,0, - 254,32,32,112,168,160,160,160,120,32,32,6,11,11,7,0, - 0,96,144,128,128,240,128,128,128,132,136,240,7,7,7,7, - 0,0,130,68,56,40,56,68,130,7,10,10,7,0,0,130, - 68,40,254,16,16,254,16,16,16,1,13,13,7,3,254,128, - 128,128,128,128,0,0,0,128,128,128,128,128,6,13,13,7, - 0,255,120,132,132,68,160,144,72,36,20,136,132,132,120,4, - 1,1,7,1,8,144,6,9,9,7,0,0,240,8,116,132, - 132,132,116,8,240,5,8,8,7,1,4,120,136,136,136,120, - 0,0,248,6,5,5,7,0,0,68,136,136,136,68,6,4, - 4,7,0,1,252,4,4,4,5,1,1,7,0,3,248,6, - 8,8,7,0,1,240,8,100,148,148,228,148,136,4,1,1, - 7,1,8,240,5,5,5,7,1,6,112,136,136,136,112,5, - 6,6,7,0,1,32,32,248,32,32,248,4,5,5,7,1, - 7,96,144,32,64,240,4,5,5,7,1,7,96,144,32,144, - 96,3,3,3,7,3,8,96,224,192,6,9,9,7,0,253, - 136,136,136,136,136,244,128,128,128,6,10,10,7,0,0,60, - 84,148,148,84,60,20,20,20,20,2,2,2,7,3,3,192, - 192,2,3,3,7,2,254,192,64,128,3,5,5,7,2,7, - 192,64,64,64,224,5,8,8,7,1,4,112,136,136,136,112, - 0,0,248,6,5,5,7,0,0,136,68,68,68,136,7,12, - 12,7,0,0,96,32,32,34,116,8,16,36,76,148,30,4, - 7,12,12,7,0,0,96,32,32,34,116,8,16,44,82,132, - 8,30,7,12,12,7,0,0,96,144,32,146,100,8,16,36, - 76,148,30,4,6,9,9,7,0,0,16,0,16,32,64,128, - 128,132,120,6,12,12,7,0,0,64,32,16,48,48,72,72, - 132,252,132,132,132,6,12,12,7,0,0,8,16,32,48,48, - 72,72,132,252,132,132,132,6,12,12,7,0,0,16,40,68, - 48,48,72,72,132,252,132,132,132,6,12,12,7,0,0,100, - 152,0,48,48,72,72,132,252,132,132,132,6,12,12,7,0, - 0,72,0,0,48,48,72,72,132,252,132,132,132,6,12,12, - 7,0,0,48,72,72,48,48,72,72,132,252,132,132,132,6, - 9,9,7,0,0,124,144,144,144,248,144,144,144,156,6,11, - 11,7,0,254,120,132,128,128,128,128,128,132,120,16,32,6, - 12,12,7,0,0,64,32,16,252,128,128,128,248,128,128,128, - 252,6,12,12,7,0,0,8,16,32,252,128,128,128,248,128, - 128,128,252,6,12,12,7,0,0,16,40,68,252,128,128,128, - 248,128,128,128,252,6,12,12,7,0,0,72,0,0,252,128, - 128,128,248,128,128,128,252,7,12,12,7,0,0,64,32,16, - 254,16,16,16,16,16,16,16,254,7,12,12,7,0,0,4, - 8,16,254,16,16,16,16,16,16,16,254,7,12,12,7,0, - 0,16,40,68,254,16,16,16,16,16,16,16,254,7,12,12, - 7,0,0,72,0,0,254,16,16,16,16,16,16,16,254,6, - 9,9,7,0,0,120,68,68,68,228,68,68,68,120,6,12, - 12,7,0,0,100,152,0,132,196,164,148,140,132,132,132,132, - 6,12,12,7,0,0,64,32,16,120,132,132,132,132,132,132, - 132,120,6,12,12,7,0,0,8,16,32,120,132,132,132,132, - 132,132,132,120,6,12,12,7,0,0,16,40,68,120,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,100,152,0,120, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,72,0, - 0,120,132,132,132,132,132,132,132,120,5,5,5,7,0,2, - 136,80,32,80,136,6,9,9,7,0,0,120,132,140,148,164, - 196,132,132,120,6,12,12,7,0,0,64,32,16,132,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,8,16,32,132, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,16,40, - 68,0,132,132,132,132,132,132,132,120,6,12,12,7,0,0, - 72,0,0,132,132,132,132,132,132,132,132,120,7,12,12,7, - 0,0,4,8,16,130,130,130,68,40,16,16,16,16,6,9, - 9,7,0,0,128,248,132,132,132,248,128,128,128,6,11,11, - 7,0,255,56,68,132,136,144,144,136,132,132,152,128,6,11, - 11,7,0,0,64,32,16,0,0,124,132,132,140,148,100,6, - 11,11,7,0,0,4,8,16,0,0,124,132,132,140,148,100, - 6,11,11,7,0,0,16,40,68,0,0,124,132,132,140,148, - 100,6,10,10,7,0,0,100,152,0,0,124,132,132,140,148, - 100,6,9,9,7,0,0,72,0,0,124,132,132,140,148,100, - 6,10,10,7,0,0,48,72,72,48,124,132,132,140,148,100, - 6,6,6,7,0,0,120,164,188,160,160,124,6,8,8,7, - 0,254,120,132,128,128,128,124,16,32,6,11,11,7,0,0, - 64,32,16,0,0,120,132,252,128,128,124,6,11,11,7,0, - 0,4,8,16,0,0,120,132,252,128,128,124,6,11,11,7, - 0,0,16,40,68,0,0,120,132,252,128,128,124,6,9,9, - 7,0,0,72,0,0,120,132,252,128,128,124,4,11,11,7, - 1,0,128,64,32,0,0,96,32,32,32,32,112,4,11,11, - 7,2,0,16,32,64,0,0,192,64,64,64,64,224,5,11, - 11,7,1,0,32,80,136,0,0,96,32,32,32,32,112,4, - 9,9,7,1,0,144,0,0,96,32,32,32,32,112,6,11, - 11,7,0,0,80,32,80,8,4,124,132,132,132,132,120,6, - 10,10,7,0,0,100,152,0,0,152,164,196,132,132,132,6, - 11,11,7,0,0,64,32,16,0,0,120,132,132,132,132,120, - 6,11,11,7,0,0,4,8,16,0,0,120,132,132,132,132, - 120,6,11,11,7,0,0,16,40,68,0,0,120,132,132,132, - 132,120,6,10,10,7,0,0,100,152,0,0,120,132,132,132, - 132,120,6,9,9,7,0,0,72,0,0,120,132,132,132,132, - 120,5,5,5,7,0,1,32,0,248,0,32,6,6,6,7, - 0,0,120,140,148,164,196,120,6,11,11,7,0,0,64,32, - 16,0,0,132,132,132,140,148,100,6,11,11,7,0,0,4, - 8,16,0,0,132,132,132,140,148,100,6,11,11,7,0,0, - 16,40,68,0,0,132,132,132,140,148,100,6,9,9,7,0, - 0,72,0,0,132,132,132,140,148,100,6,14,14,7,0,253, - 4,8,16,0,0,132,132,132,132,132,124,4,4,120,6,12, - 12,7,0,253,128,128,128,248,132,132,132,132,248,128,128,128, - 6,12,12,7,0,253,72,0,0,132,132,132,132,132,124,4, - 4,120}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 3 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15r[1372] U8G_FONT_SECTION("u8g_font_profont15r") = { - 0,7,14,0,253,9,1,217,3,175,32,127,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 5 y=10 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17[3681] U8G_FONT_SECTION("u8g_font_profont17") = { - 0,14,16,0,253,11,2,35,4,78,32,255,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,4,5,5,14,0,254,48,48,48,96,192,8,17,17, - 14,0,253,7,15,24,24,24,24,60,60,24,24,24,24,24, - 24,24,240,224,7,5,5,14,0,254,54,54,54,108,216,8, - 2,2,14,0,0,219,219,4,9,9,14,2,2,96,96,240, - 240,96,96,96,96,96,4,9,9,14,2,2,96,96,240,240, - 96,240,240,96,96,6,3,3,14,1,10,48,120,204,9,13, - 26,14,0,0,63,128,127,128,217,128,219,0,222,0,124,0, - 56,0,63,0,127,128,214,128,150,128,31,128,15,0,8,14, - 14,14,0,0,102,60,24,60,126,195,192,124,62,7,195,195, - 126,60,4,7,7,14,0,0,48,96,192,192,192,96,48,8, - 11,11,14,0,0,63,127,216,216,220,220,216,216,216,127,63, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,0,0,0,14,0,0,4,5,5,14,3,6,48,96, - 192,192,192,4,5,5,14,3,6,48,48,48,96,192,7,5, - 5,14,1,6,54,108,216,216,216,7,5,5,14,1,6,54, - 54,54,108,216,7,7,7,14,0,2,56,124,254,254,254,124, - 56,5,2,2,14,2,5,248,248,9,2,4,14,0,5,255, - 128,255,128,8,3,3,14,0,9,113,219,142,9,5,10,14, - 0,6,252,128,39,128,39,128,36,128,36,128,8,13,13,14, - 0,0,102,60,24,0,0,63,255,192,252,63,3,255,252,4, - 7,7,14,0,0,192,96,48,48,48,96,192,8,8,8,14, - 0,0,36,126,219,223,223,216,127,39,0,0,0,14,0,0, - 0,0,0,14,0,0,8,14,14,14,0,0,102,102,0,195, - 195,195,195,231,126,60,24,24,24,24,0,0,0,14,0,0, - 2,11,11,14,5,0,192,192,0,192,192,192,192,192,192,192, - 192,8,12,12,14,0,254,24,24,60,126,219,219,216,216,127, - 63,24,24,8,12,12,14,0,0,120,252,204,192,240,240,192, - 192,192,199,254,252,8,8,8,14,0,0,129,66,60,36,36, - 60,66,129,8,11,11,14,0,0,195,102,60,255,255,24,255, - 255,24,24,24,2,15,15,14,3,254,192,192,192,192,192,192, - 0,0,0,192,192,192,192,192,192,8,16,16,14,0,254,60, - 126,99,99,51,216,204,198,99,51,27,204,198,198,126,60,4, - 2,2,14,2,9,144,240,8,11,11,14,0,0,120,252,134, - 123,251,195,251,123,134,252,120,6,9,9,14,2,5,60,124, - 204,204,124,60,0,252,252,8,7,7,14,0,0,51,102,204, - 204,204,102,51,8,4,4,14,0,2,255,255,3,3,8,2, - 2,14,0,4,255,255,8,10,10,14,0,1,248,252,6,243, - 251,219,243,251,222,204,5,2,2,14,2,9,248,248,6,6, - 6,14,2,6,48,120,204,204,120,48,8,9,9,14,0,0, - 24,24,24,255,255,24,24,255,255,4,6,6,14,2,8,96, - 144,16,32,64,240,4,6,6,14,2,8,96,144,32,16,144, - 96,4,4,4,14,3,9,48,112,224,192,8,11,11,14,0, - 253,204,204,204,204,204,204,255,243,192,192,192,8,13,13,14, - 0,0,63,127,219,219,219,219,127,63,27,27,27,27,27,3, - 3,3,14,3,4,224,224,224,4,5,5,14,1,253,112,112, - 48,96,192,3,6,6,14,3,8,192,64,64,64,64,224,6, - 9,9,14,2,5,48,120,204,204,120,48,0,252,252,8,7, - 7,14,0,0,204,102,51,51,51,102,204,9,14,28,14,0, - 0,96,0,32,0,32,0,32,128,33,0,114,0,4,0,8, - 0,17,0,35,0,69,0,137,0,15,128,1,0,9,14,28, - 14,0,0,96,0,32,0,32,0,32,128,33,0,114,0,4, - 0,8,0,19,0,36,128,64,128,129,0,2,0,7,128,9, - 14,28,14,0,0,48,0,72,0,16,0,8,128,73,0,50, - 0,4,0,8,0,17,0,35,0,69,0,137,0,15,128,1, - 0,8,11,11,14,0,0,24,24,0,8,24,48,96,195,195, - 126,60,8,14,14,14,0,0,96,48,24,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,6,12,24,24, - 60,60,102,102,195,255,255,195,195,195,8,14,14,14,0,0, - 24,60,102,24,60,60,102,102,195,255,255,195,195,195,8,14, - 14,14,0,0,115,219,142,24,60,60,102,102,195,255,255,195, - 195,195,8,14,14,14,0,0,102,102,0,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,24,60,36,60, - 24,60,102,102,195,255,255,195,195,195,8,11,11,14,0,0, - 63,127,216,216,252,252,216,216,216,223,223,8,14,14,14,0, - 253,60,126,195,195,192,192,192,195,195,126,60,24,48,96,8, - 14,14,14,0,0,96,48,24,255,255,192,192,252,252,192,192, - 192,255,255,8,14,14,14,0,0,6,12,24,255,255,192,192, - 252,252,192,192,192,255,255,8,14,14,14,0,0,24,60,102, - 255,255,192,192,252,252,192,192,192,255,255,8,14,14,14,0, - 0,102,102,0,255,255,192,192,252,252,192,192,192,255,255,8, - 14,14,14,0,0,96,48,24,255,255,24,24,24,24,24,24, - 24,255,255,8,14,14,14,0,0,6,12,24,255,255,24,24, - 24,24,24,24,24,255,255,8,14,14,14,0,0,24,60,102, - 255,255,24,24,24,24,24,24,24,255,255,8,14,14,14,0, - 0,102,102,0,255,255,24,24,24,24,24,24,24,255,255,8, - 11,11,14,0,0,124,126,99,99,243,243,99,99,99,126,124, - 8,14,14,14,0,0,113,219,142,195,227,243,219,207,199,195, - 195,195,195,195,8,14,14,14,0,0,96,48,24,60,126,195, - 195,195,195,195,195,195,126,60,8,14,14,14,0,0,6,12, - 24,60,126,195,195,195,195,195,195,195,126,60,8,14,14,14, - 0,0,24,60,102,0,60,126,195,195,195,195,195,195,126,60, - 8,14,14,14,0,0,113,219,142,60,126,195,195,195,195,195, - 195,195,126,60,8,14,14,14,0,0,102,102,0,60,126,195, - 195,195,195,195,195,195,126,60,8,7,7,14,0,2,195,102, - 60,24,60,102,195,8,11,11,14,0,0,60,126,195,199,207, - 219,243,227,195,126,60,8,14,14,14,0,0,96,48,24,195, - 195,195,195,195,195,195,195,195,126,60,8,14,14,14,0,0, - 6,12,24,195,195,195,195,195,195,195,195,195,126,60,8,14, - 14,14,0,0,24,60,102,0,195,195,195,195,195,195,195,195, - 126,60,8,14,14,14,0,0,102,102,0,195,195,195,195,195, - 195,195,195,195,126,60,8,14,14,14,0,0,6,12,24,195, - 195,195,195,231,126,60,24,24,24,24,8,11,11,14,0,0, - 192,192,252,254,195,195,254,252,192,192,192,8,15,15,14,0, - 254,28,62,99,195,195,198,204,204,198,195,195,222,220,192,192, - 8,13,13,14,0,0,16,24,12,4,0,63,127,195,195,199, - 207,123,51,8,13,13,14,0,0,4,12,24,16,0,63,127, - 195,195,199,207,123,51,8,12,12,14,0,0,24,60,102,0, - 63,127,195,195,199,207,123,51,8,12,12,14,0,0,113,219, - 142,0,63,127,195,195,199,207,123,51,8,11,11,14,0,0, - 102,102,0,63,127,195,195,199,207,123,51,8,12,12,14,0, - 0,24,36,36,24,63,127,195,195,199,207,123,51,8,8,8, - 14,0,0,60,126,219,223,223,216,127,63,8,11,11,14,0, - 253,60,126,195,195,192,192,127,63,24,48,96,8,13,13,14, - 0,0,32,48,24,8,0,60,126,195,255,255,192,127,63,8, - 13,13,14,0,0,4,12,24,16,0,60,126,195,255,255,192, - 127,63,8,12,12,14,0,0,24,60,102,0,60,126,195,255, - 255,192,127,63,8,11,11,14,0,0,102,102,0,60,126,195, - 255,255,192,127,63,6,13,13,14,1,0,128,192,96,32,0, - 240,240,48,48,48,48,252,252,6,13,13,14,1,0,8,24, - 48,32,0,240,240,48,48,48,48,252,252,6,12,12,14,1, - 0,48,120,204,0,240,240,48,48,48,48,252,252,6,11,11, - 14,1,0,204,204,0,240,240,48,48,48,48,252,252,8,13, - 13,14,0,0,72,48,48,72,4,62,127,195,195,195,195,126, - 60,8,12,12,14,0,0,113,219,142,0,204,222,243,227,195, - 195,195,195,8,13,13,14,0,0,32,48,24,8,0,60,126, - 195,195,195,195,126,60,8,13,13,14,0,0,4,12,24,16, - 0,60,126,195,195,195,195,126,60,8,12,12,14,0,0,24, - 60,102,0,60,126,195,195,195,195,126,60,8,12,12,14,0, - 0,113,219,142,0,60,126,195,195,195,195,126,60,8,11,11, - 14,0,0,102,102,0,60,126,195,195,195,195,126,60,8,8, - 8,14,0,2,24,24,0,255,255,0,24,24,8,8,8,14, - 0,0,60,126,199,207,243,227,126,60,8,13,13,14,0,0, - 32,48,24,8,0,195,195,195,195,199,207,123,51,8,13,13, - 14,0,0,4,12,24,16,0,195,195,195,195,199,207,123,51, - 8,12,12,14,0,0,24,60,102,0,195,195,195,195,199,207, - 123,51,8,11,11,14,0,0,102,102,0,195,195,195,195,199, - 207,123,51,8,16,16,14,0,253,4,12,24,16,0,195,195, - 195,195,195,195,127,63,3,62,60,8,14,14,14,0,253,192, - 192,192,252,254,195,195,195,195,254,252,192,192,192,8,14,14, - 14,0,253,102,102,0,195,195,195,195,195,195,127,63,3,62, - 60}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 3 y= 9 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17r[1590] U8G_FONT_SECTION("u8g_font_profont17r") = { - 0,14,16,0,253,11,2,35,4,78,32,127,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 6 y=12 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22[6454] U8G_FONT_SECTION("u8g_font_profont22") = { - 0,12,21,0,252,14,3,117,7,113,32,255,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,4,7,7,12,0, - 253,48,48,48,48,112,224,64,10,22,44,12,0,252,3,192, - 7,192,14,0,12,0,12,0,12,0,12,0,12,0,63,0, - 63,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,28,0,248,0,240,0,8,7,7,12,0,253, - 51,51,51,51,119,238,68,10,2,4,12,0,0,204,192,204, - 192,6,10,10,12,2,4,48,48,252,252,48,48,48,48,48, - 48,6,10,10,12,2,4,48,48,252,252,48,48,252,252,48, - 48,6,4,4,12,2,12,48,120,252,204,12,16,32,12,0, - 0,63,240,127,240,204,224,205,192,207,128,207,0,126,0,60, - 0,60,192,127,224,243,48,243,48,179,48,51,48,31,224,12, - 192,10,18,36,12,0,0,51,0,63,0,30,0,12,0,63, - 0,127,128,225,192,192,192,192,0,224,0,127,0,63,128,1, - 192,0,192,192,192,225,192,127,128,63,0,4,10,10,12,0, - 255,48,112,96,224,192,192,224,96,112,48,10,14,28,12,0, - 0,63,192,127,192,236,0,204,0,204,0,204,0,207,0,207, - 0,204,0,204,0,204,0,236,0,127,192,63,192,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,4,7,7,12,4,8,32,112,224,192,192, - 192,192,4,7,7,12,4,7,48,48,48,48,112,224,64,8, - 7,7,12,2,8,34,119,238,204,204,204,204,8,7,7,12, - 2,7,51,51,51,51,119,238,68,10,10,20,12,0,2,30, - 0,127,128,127,128,255,192,255,192,255,192,255,192,127,128,127, - 128,30,0,6,2,2,12,2,6,252,252,12,2,4,12,0, - 6,255,240,255,240,10,4,8,12,0,12,48,192,124,192,207, - 128,195,0,12,6,12,12,0,8,255,48,255,240,51,240,51, - 240,51,48,51,48,10,16,32,12,0,0,51,0,63,0,30, - 0,12,0,0,0,0,0,63,192,127,192,192,0,192,0,127, - 0,63,128,0,192,0,192,255,128,255,0,4,10,10,12,0, - 255,192,224,96,112,48,48,112,96,224,192,10,10,20,12,0, - 0,51,0,127,128,204,192,204,192,207,192,207,192,204,0,204, - 0,127,192,51,192,0,0,0,12,0,0,0,0,0,12,0, - 0,10,18,36,12,0,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,0,0,0,12,0, - 0,2,14,14,12,6,0,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,254,12,0,12,0,63, - 0,127,128,237,192,204,192,204,0,204,0,204,0,236,0,127, - 192,63,192,12,0,12,0,10,16,32,12,0,0,60,0,126, - 0,231,0,195,0,192,0,192,0,252,0,252,0,192,0,192, - 0,192,0,192,0,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,64,128,225,192,127,128,63,0,51,0,51,0,63, - 0,127,128,225,192,64,128,10,14,28,12,0,0,192,192,225, - 192,115,128,63,0,255,192,255,192,12,0,12,0,255,192,255, - 192,12,0,12,0,12,0,12,0,2,18,18,12,4,254,192, - 192,192,192,192,192,192,192,0,0,192,192,192,192,192,192,192, - 192,10,20,40,12,0,254,31,0,127,128,97,192,224,192,112, - 192,56,192,220,0,206,0,199,0,227,128,113,192,56,192,28, - 192,14,192,199,0,195,128,193,192,225,128,127,128,62,0,6, - 2,2,12,2,12,204,204,10,14,28,12,0,0,120,0,254, - 0,135,0,1,128,61,128,124,192,192,192,192,192,124,192,61, - 128,1,128,135,0,254,0,120,0,8,12,12,12,2,6,63, - 127,227,195,195,227,127,63,0,0,255,255,10,10,20,12,0, - 255,48,192,113,192,97,128,227,128,195,0,195,0,227,128,97, - 128,113,192,48,192,10,6,12,12,0,2,255,192,255,192,0, - 192,0,192,0,192,0,192,10,2,4,12,0,6,255,192,255, - 192,10,12,24,12,0,2,120,0,254,0,135,0,1,128,241, - 128,248,192,204,192,204,192,248,192,249,192,223,128,207,0,6, - 2,2,12,2,12,252,252,8,8,8,12,2,8,60,126,231, - 195,195,231,126,60,10,12,24,12,0,0,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,255, - 192,255,192,5,7,7,12,3,11,112,136,8,16,32,64,248, - 5,7,7,12,3,11,112,136,8,48,8,136,112,4,4,4, - 12,4,12,48,112,224,192,10,14,28,12,0,252,195,0,195, - 0,195,0,195,0,195,0,195,0,195,0,199,128,255,192,252, - 192,192,0,192,0,192,0,192,0,10,16,32,12,0,0,31, - 192,127,192,124,192,236,192,204,192,204,192,236,192,124,192,127, - 192,31,192,12,192,12,192,12,192,12,192,12,192,12,192,4, - 4,4,12,4,4,96,240,240,96,4,6,6,12,2,252,240, - 240,48,112,224,64,5,7,7,12,3,11,32,224,32,32,32, - 32,248,8,12,12,12,2,6,60,126,231,195,195,231,126,60, - 0,0,255,255,10,10,20,12,0,255,195,0,227,128,97,128, - 113,192,48,192,48,192,113,192,97,128,227,128,195,0,12,18, - 36,12,0,0,16,0,112,0,16,0,16,0,16,16,16,32, - 124,64,0,128,1,0,2,0,4,0,8,64,16,192,33,64, - 66,64,131,224,0,64,0,224,12,18,36,12,0,0,16,0, - 112,0,16,0,16,0,16,16,16,32,124,64,0,128,1,0, - 2,0,4,0,9,192,18,32,32,32,64,64,128,128,1,0, - 3,224,12,18,36,12,0,0,56,0,68,0,4,0,24,0, - 4,16,68,32,56,64,0,128,1,0,2,0,4,0,8,64, - 16,192,33,64,66,64,131,224,0,64,0,224,10,14,28,12, - 0,0,12,0,12,0,0,0,0,0,12,0,28,0,56,0, - 112,0,224,0,192,0,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,12,0,30,0, - 30,0,51,0,51,0,97,128,97,128,192,192,255,192,255,192, - 192,192,192,192,192,192,192,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,12,0,30,0,30,0,51,0,51,0, - 97,128,97,128,192,192,255,192,255,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 12,0,30,0,30,0,51,0,51,0,97,128,97,128,192,192, - 255,192,255,192,192,192,192,192,192,192,192,192,10,18,36,12, - 0,0,48,192,124,192,207,128,195,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,255,192,255,192,192,192, - 192,192,192,192,192,192,10,18,36,12,0,0,51,0,51,0, - 0,0,0,0,12,0,30,0,30,0,51,0,51,0,97,128, - 97,128,192,192,255,192,255,192,192,192,192,192,192,192,192,192, - 10,18,36,12,0,0,12,0,30,0,51,0,51,0,30,0, - 30,0,30,0,51,0,51,0,97,128,97,128,192,192,255,192, - 255,192,192,192,192,192,192,192,192,192,10,14,28,12,0,0, - 63,192,127,192,236,0,204,0,204,0,204,0,255,0,255,0, - 204,0,204,0,204,0,204,0,207,192,207,192,10,18,36,12, - 0,252,63,0,127,128,225,192,192,192,192,0,192,0,192,0, - 192,0,192,0,192,0,192,192,225,192,127,128,63,0,12,0, - 28,0,56,0,16,0,10,18,36,12,0,0,48,0,56,0, - 28,0,12,0,255,192,255,192,192,0,192,0,192,0,192,0, - 255,0,255,0,192,0,192,0,192,0,192,0,255,192,255,192, - 10,18,36,12,0,0,3,0,7,0,14,0,12,0,255,192, - 255,192,192,0,192,0,192,0,192,0,255,0,255,0,192,0, - 192,0,192,0,192,0,255,192,255,192,10,18,36,12,0,0, - 12,0,30,0,63,0,51,0,255,192,255,192,192,0,192,0, - 192,0,192,0,255,0,255,0,192,0,192,0,192,0,192,0, - 255,192,255,192,10,18,36,12,0,0,51,0,51,0,0,0, - 0,0,255,192,255,192,192,0,192,0,192,0,192,0,255,0, - 255,0,192,0,192,0,192,0,192,0,255,192,255,192,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,255,192,255,192, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,255,192,255,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,255,192,255,192,10,18,36,12, - 0,0,51,0,51,0,0,0,0,0,255,192,255,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,255,192,255,192,10,14,28,12,0,0,63,0,63,128, - 49,192,48,192,48,192,48,192,252,192,252,192,48,192,48,192, - 48,192,49,192,63,128,63,0,10,18,36,12,0,0,48,192, - 124,192,207,128,199,0,192,192,224,192,240,192,248,192,220,192, - 206,192,199,192,195,192,193,192,192,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,48,0,56,0,28,0,12,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,18,36,12, - 0,0,3,0,7,0,14,0,12,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,18,36,12,0,0,12,0,30,0, - 63,0,51,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,192,124,192,207,128,199,0,63,0, - 127,128,225,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,10,20,12,0,2,64,128,225,192,115,128, - 63,0,30,0,30,0,63,0,115,128,225,192,64,128,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,0,56,0,28,0,12,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 3,0,7,0,14,0,12,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,18,36,12,0,0,12,0,30,0,63,0, - 51,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,51,0,51,0,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,192,192,192,192,192,192,192,192,192,192, - 225,192,115,128,63,0,30,0,12,0,12,0,12,0,12,0, - 12,0,10,14,28,12,0,0,192,0,192,0,255,0,255,128, - 193,192,192,192,192,192,193,192,255,128,255,0,192,0,192,0, - 192,0,192,0,10,18,36,12,0,254,15,0,31,128,57,192, - 112,192,224,192,193,192,195,128,195,0,195,0,195,128,193,192, - 192,192,192,192,193,192,207,128,207,0,192,0,192,0,10,16, - 32,12,0,0,12,0,14,0,7,0,3,0,0,0,0,0, - 63,192,127,192,224,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,16,32,12,0,0,3,0,7,0,14,0, - 12,0,0,0,0,0,63,192,127,192,224,192,192,192,192,192, - 193,192,195,192,231,192,126,192,60,192,10,16,32,12,0,0, - 12,0,30,0,63,0,51,0,0,0,0,0,63,192,127,192, - 224,192,192,192,192,192,193,192,195,192,231,192,126,192,60,192, - 10,16,32,12,0,0,48,192,124,192,207,128,199,0,0,0, - 0,0,63,192,127,192,224,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,14,28,12,0,0,51,0,51,0, - 0,0,0,0,63,192,127,192,224,192,192,192,192,192,193,192, - 195,192,231,192,126,192,60,192,10,16,32,12,0,0,12,0, - 30,0,51,0,51,0,30,0,12,0,63,192,127,192,224,192, - 192,192,192,192,193,192,195,192,231,192,126,192,60,192,10,10, - 20,12,0,0,63,0,127,128,237,192,204,192,207,192,207,192, - 204,0,236,0,127,192,63,192,10,14,28,12,0,252,63,0, - 127,128,225,192,192,192,192,0,192,0,192,0,224,0,127,192, - 63,192,12,0,28,0,56,0,16,0,10,16,32,12,0,0, - 48,0,56,0,28,0,12,0,0,0,0,0,63,0,127,128, - 225,192,192,192,255,192,255,192,192,0,224,0,127,192,63,192, - 10,16,32,12,0,0,3,0,7,0,14,0,12,0,0,0, - 0,0,63,0,127,128,225,192,192,192,255,192,255,192,192,0, - 224,0,127,192,63,192,10,16,32,12,0,0,12,0,30,0, - 63,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 255,192,255,192,192,0,224,0,127,192,63,192,10,14,28,12, - 0,0,51,0,51,0,0,0,0,0,63,0,127,128,225,192, - 192,192,255,192,255,192,192,0,224,0,127,192,63,192,6,16, - 16,12,2,0,192,224,112,48,0,0,240,240,48,48,48,48, - 48,48,252,252,6,16,16,12,2,0,12,28,56,48,0,0, - 240,240,48,48,48,48,48,48,252,252,6,16,16,12,2,0, - 48,120,252,204,0,0,240,240,48,48,48,48,48,48,252,252, - 6,14,14,12,2,0,204,204,0,0,240,240,48,48,48,48, - 48,48,252,252,10,17,34,12,0,0,36,0,126,0,60,0, - 60,0,126,0,39,0,3,128,63,192,127,192,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,16,32,12, - 0,0,48,192,124,192,207,128,199,0,0,0,0,0,207,0, - 223,128,249,192,240,192,224,192,192,192,192,192,192,192,192,192, - 192,192,10,16,32,12,0,0,48,0,56,0,28,0,12,0, - 0,0,0,0,63,0,127,128,225,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,12,0,0,3,0, - 7,0,14,0,12,0,0,0,0,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,16, - 32,12,0,0,12,0,30,0,63,0,51,0,0,0,0,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,16,32,12,0,0,48,192,124,192,207,128, - 199,0,0,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,10,20,12, - 0,2,12,0,12,0,0,0,0,0,255,192,255,192,0,0, - 0,0,12,0,12,0,10,10,20,12,0,0,63,0,127,128, - 227,192,199,192,206,192,220,192,248,192,241,192,127,128,63,0, - 10,16,32,12,0,0,48,0,56,0,28,0,12,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,16,32,12,0,0,3,0,7,0, - 14,0,12,0,0,0,0,0,192,192,192,192,192,192,192,192, - 192,192,193,192,195,192,231,192,126,192,60,192,10,16,32,12, - 0,0,12,0,30,0,63,0,51,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,193,192,195,192,231,192,126,192, - 60,192,10,14,28,12,0,0,51,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,20,40,12,0,252,3,0,7,0,14,0, - 12,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,10,18,36,12,0,252,192,0,192,0,192,0,192,0, - 255,0,255,128,193,192,192,192,192,192,192,192,192,192,193,192, - 255,128,255,0,192,0,192,0,192,0,192,0,10,18,36,12, - 0,252,51,0,51,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,224,192,127,192,63,192,0,192, - 1,192,63,128,63,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 4 y=12 dx=12 dy= 0 ascent=18 len=40 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22r[2719] U8G_FONT_SECTION("u8g_font_profont22r") = { - 0,12,21,0,252,14,3,117,7,113,32,127,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 8 y=16 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29[8666] U8G_FONT_SECTION("u8g_font_profont29") = { - 0,16,28,0,251,19,4,198,9,234,32,255,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0,0,0,0,16,0,0,0,0,0, - 16,0,0,5,8,8,16,0,253,56,56,56,56,56,120,240, - 96,13,29,58,16,0,251,0,120,1,248,3,248,3,128,7, - 0,7,0,7,0,7,0,7,0,7,0,31,192,31,192,31, - 192,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,0,254,0,252,0,240, - 0,11,8,16,16,0,253,56,224,56,224,56,224,56,224,56, - 224,121,224,243,192,97,128,13,3,6,16,0,0,231,56,231, - 56,231,56,9,14,28,16,2,5,28,0,28,0,28,0,255, - 128,255,128,255,128,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,9,14,28,16,2,5,28,0,28,0,28, - 0,255,128,255,128,255,128,28,0,28,0,255,128,255,128,255, - 128,28,0,28,0,28,0,10,6,12,16,2,16,12,0,30, - 0,63,0,127,128,243,192,97,128,15,22,44,16,0,0,31, - 254,63,254,127,254,119,30,227,60,227,120,227,240,247,224,127, - 192,127,128,63,0,15,56,63,252,127,252,253,238,248,198,216, - 198,152,198,29,238,15,252,15,252,7,56,14,24,48,16,0, - 0,24,192,61,224,31,192,15,128,7,0,15,192,63,240,127, - 248,112,56,224,28,224,28,224,0,112,0,127,192,63,240,15, - 248,0,56,0,28,224,28,224,28,112,56,127,248,63,240,15, - 192,5,13,13,16,0,255,48,56,112,112,224,224,224,224,224, - 112,112,56,48,14,19,38,16,0,0,15,252,63,252,127,252, - 119,0,231,0,231,0,231,0,231,0,231,224,231,224,231,224, - 231,0,231,0,231,0,231,0,119,0,127,252,63,252,15,252, - 0,0,0,16,0,0,0,0,0,16,0,0,0,0,0,16, - 0,0,0,0,0,16,0,0,5,8,8,16,5,11,48,120, - 240,224,224,224,224,224,5,8,8,16,6,11,56,56,56,56, - 56,120,240,96,11,8,16,16,2,11,48,192,121,224,243,192, - 227,128,227,128,227,128,227,128,227,128,11,8,16,16,3,11, - 56,224,56,224,56,224,56,224,56,224,121,224,243,192,97,128, - 13,13,26,16,0,3,15,128,63,224,127,240,127,240,255,248, - 255,248,255,248,255,248,255,248,127,240,127,240,63,224,15,128, - 8,3,3,16,3,8,255,255,255,16,3,6,16,0,8,255, - 255,255,255,255,255,13,5,10,16,0,16,60,56,127,56,255, - 248,231,240,225,224,15,8,16,16,0,11,255,206,255,254,255, - 254,57,254,57,254,57,206,57,206,57,206,14,22,44,16,0, - 0,24,96,60,240,31,224,15,192,7,128,3,0,0,0,0, - 0,15,252,63,252,127,252,240,0,224,0,255,192,127,240,31, - 248,0,60,0,28,0,60,255,248,255,240,255,192,5,13,13, - 16,0,255,96,224,112,112,56,56,56,56,56,120,112,224,96, - 14,14,28,16,0,0,60,240,127,248,127,248,231,28,231,28, - 231,28,231,252,231,252,231,252,231,0,231,0,127,252,127,252, - 60,252,0,0,0,16,0,0,0,0,0,16,0,0,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,240,120,120,240, - 61,224,31,192,15,128,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,0,0,0,16,0,0,3,19,19,16,8,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,13,20,40,16,0,253,7,0,7,0,7,0,15, - 128,63,224,127,240,119,112,231,56,231,56,231,0,231,0,231, - 0,231,0,119,0,127,248,63,248,15,248,7,0,7,0,7, - 0,13,22,44,16,0,0,14,0,63,128,127,128,113,192,224, - 224,224,224,224,0,224,0,255,0,255,0,255,0,224,0,224, - 0,224,0,224,0,224,0,224,56,224,56,224,112,255,240,255, - 224,255,128,13,13,26,16,0,0,64,16,224,56,112,112,63, - 224,31,192,29,192,24,192,29,192,31,192,63,224,112,112,224, - 56,64,16,15,19,38,16,0,0,96,12,240,30,120,60,60, - 120,30,240,127,252,127,252,127,252,3,128,3,128,3,128,127, - 252,127,252,127,252,3,128,3,128,3,128,3,128,3,128,3, - 25,25,16,5,253,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,14,27, - 54,16,0,253,15,192,63,240,63,248,112,56,112,28,120,28, - 60,28,30,28,239,0,231,128,227,192,225,224,240,240,120,120, - 60,60,30,28,15,28,7,156,3,220,225,224,224,240,224,120, - 224,56,112,56,127,240,63,240,15,128,8,3,3,16,3,16, - 231,231,231,14,19,38,16,0,0,28,0,255,128,255,224,193, - 240,0,112,31,56,127,56,127,24,224,28,224,28,224,28,127, - 24,127,56,31,56,0,112,193,240,255,224,255,128,28,0,12, - 16,32,16,2,8,15,240,63,240,127,240,112,112,224,112,224, - 112,224,112,112,112,127,240,63,240,15,240,0,0,0,0,255, - 240,255,240,255,240,13,13,26,16,0,255,48,48,56,56,112, - 112,112,112,224,224,224,224,224,224,224,224,224,224,112,112,112, - 112,56,56,48,48,14,8,16,16,0,3,255,252,255,252,255, - 252,0,28,0,28,0,28,0,28,0,28,13,3,6,16,0, - 8,255,248,255,248,255,248,14,17,34,16,0,2,28,0,255, - 128,255,224,193,240,0,112,248,56,254,56,254,24,231,28,231, - 28,231,28,254,24,254,56,254,56,239,240,231,240,227,192,8, - 3,3,16,3,16,255,255,255,12,12,24,16,2,10,15,0, - 63,192,127,224,112,224,224,112,224,112,224,112,224,112,112,224, - 127,224,63,192,15,0,13,16,32,16,0,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,6,9,9,16, - 4,15,120,132,4,4,8,16,32,64,252,6,9,9,16,4, - 15,120,132,4,8,48,8,4,132,120,7,6,6,16,5,16, - 12,30,60,120,240,96,14,18,36,16,0,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,225,240, - 255,252,255,188,254,12,224,0,224,0,224,0,224,0,224,0, - 14,22,44,16,0,0,7,252,31,252,63,252,127,28,119,28, - 231,28,231,28,231,28,231,28,119,28,127,28,63,252,31,252, - 7,252,7,28,7,28,7,28,7,28,7,28,7,28,7,28, - 7,28,5,5,5,16,5,6,112,248,248,248,112,6,8,8, - 16,3,251,252,252,252,60,124,248,240,96,7,9,9,16,4, - 15,16,112,16,16,16,16,16,16,254,11,16,32,16,3,8, - 14,0,63,128,127,192,113,192,224,224,224,224,224,224,113,192, - 127,192,63,128,14,0,0,0,0,0,255,224,255,224,255,224, - 13,13,26,16,0,255,96,96,224,224,112,112,112,112,56,56, - 56,56,56,56,56,56,56,56,112,112,112,112,224,224,96,96, - 15,24,48,16,0,0,8,0,56,0,8,0,8,0,8,0, - 8,0,8,2,8,4,127,8,0,16,0,32,0,64,0,128, - 1,0,2,0,4,8,8,24,16,40,32,72,64,136,128,254, - 0,8,0,8,0,62,15,24,48,16,0,0,8,0,56,0, - 8,0,8,0,8,0,8,0,8,2,8,4,127,8,0,16, - 0,32,0,64,0,128,1,0,2,0,4,120,8,132,16,4, - 32,4,64,8,128,16,0,32,0,64,0,252,15,24,48,16, - 0,0,30,0,33,0,1,0,2,0,12,0,2,0,1,2, - 33,4,30,8,0,16,0,32,0,64,0,128,1,0,2,0, - 4,8,8,24,16,40,32,72,64,136,128,254,0,8,0,8, - 0,62,14,19,38,16,0,0,3,128,3,128,3,128,0,0, - 0,0,3,128,7,128,15,0,30,0,60,0,120,0,240,0, - 224,0,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,24,0,60,0,30,0,15,0,7,128,7,128, - 7,128,15,192,15,192,28,224,28,224,56,112,56,112,112,56, - 112,56,224,28,255,252,255,252,255,252,224,28,224,28,224,28, - 224,28,224,28,14,24,48,16,0,0,0,96,0,240,1,224, - 3,192,7,128,7,128,7,128,15,192,15,192,28,224,28,224, - 56,112,56,112,112,56,112,56,224,28,255,252,255,252,255,252, - 224,28,224,28,224,28,224,28,224,28,14,24,48,16,0,0, - 3,0,7,128,15,192,31,224,28,224,11,64,7,128,15,192, - 15,192,28,224,28,224,56,112,56,112,112,56,112,56,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 7,128,7,128,15,192,15,192,28,224,28,224,56,112,56,112, - 112,56,112,56,224,28,255,252,255,252,255,252,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,7,128,7,128,15,192,15,192,28,224, - 28,224,56,112,56,112,112,56,112,56,224,28,255,252,255,252, - 255,252,224,28,224,28,224,28,224,28,224,28,14,24,48,16, - 0,0,7,128,15,192,28,224,24,96,28,224,15,192,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,15,252,63,252,127,252,119,0, - 231,0,231,0,231,0,231,0,255,224,255,224,255,224,231,0, - 231,0,231,0,231,0,231,0,231,252,231,252,231,252,14,24, - 48,16,0,251,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,7,0,15,0,30,0, - 60,0,24,0,14,24,48,16,0,0,24,0,60,0,30,0, - 15,0,7,128,255,252,255,252,255,252,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,255,224,224,0,224,0,224,0, - 224,0,224,0,255,252,255,252,255,252,14,24,48,16,0,0, - 0,96,0,240,1,224,3,192,7,128,255,252,255,252,255,252, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,252,255,252,255,252, - 14,24,48,16,0,0,3,0,7,128,15,192,31,224,28,224, - 255,252,255,252,255,252,224,0,224,0,224,0,224,0,224,0, - 255,224,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,255,252,255,252,255,252,224,0,224,0, - 224,0,224,0,224,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,255,252,255,252,255,252,13,24,48,16, - 0,0,24,0,60,0,30,0,15,0,7,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,24,48,16,0,0,0,192,1,224,3,192,7,128, - 7,0,255,248,255,248,255,248,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,248,255,248,255,248,13,24,48,16,0,0,2,0, - 7,0,15,128,31,192,56,224,255,248,255,248,255,248,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,248, - 255,248,255,248,14,19,38,16,0,0,31,192,31,240,31,248, - 28,56,28,28,28,28,28,28,28,28,255,156,255,156,255,156, - 28,28,28,28,28,28,28,28,28,56,31,248,31,240,31,192, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 224,28,240,28,248,28,252,28,254,28,239,28,231,156,227,220, - 225,252,224,252,224,124,224,60,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,12,0,30,0, - 15,0,7,128,3,128,15,192,63,240,127,248,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,0,192,1,224,3,192,7,128,7,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,3,0,7,128,15,192,31,224, - 60,240,24,96,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,24,48,16,0,0,60,56, - 127,56,255,248,231,240,225,224,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,56,112,56,112,56,112,0,0,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,13,26,16,0,3,96,24,240,60,120,120, - 60,240,31,224,15,192,7,128,15,192,31,224,60,240,120,120, - 240,60,96,24,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,60,224,124,224,252,225,252,227,220,231,156,239,28, - 254,28,252,28,248,28,240,28,112,56,127,248,63,240,15,192, - 14,24,48,16,0,0,24,0,60,0,30,0,15,0,7,128, - 227,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,24,48,16,0,0,0,96,0,240, - 1,224,3,192,7,128,227,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,3,0,7,128,15,192,31,224,60,240,24,96,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,56,112,56,112,56,112,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,13,24,48,16,0,0,0,96, - 0,240,1,224,3,192,7,128,227,56,224,56,224,56,224,56, - 224,56,224,56,224,56,240,120,120,240,61,224,31,192,15,128, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,14,19, - 38,16,0,0,224,0,224,0,224,0,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,56,255,248,255,240,255,192, - 224,0,224,0,224,0,224,0,224,0,13,25,50,16,0,253, - 3,192,7,224,15,240,30,120,60,56,120,56,240,56,224,56, - 224,112,224,224,224,224,224,224,224,224,224,112,224,56,224,56, - 224,56,224,56,224,120,227,240,227,224,227,192,224,0,224,0, - 224,0,14,22,44,16,0,0,6,0,15,0,7,128,3,192, - 1,224,0,192,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,21,42,16,0,0,60,56, - 127,56,255,248,231,240,225,224,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,21,42,16,0,0,7,192,15,224,12,96, - 12,96,12,96,15,224,7,192,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,14,28,16,0,0,15,192,63,240,127,248, - 119,120,231,60,231,28,231,252,231,252,231,252,231,0,119,0, - 127,252,63,252,15,252,14,19,38,16,0,251,15,192,63,240, - 127,248,112,56,224,28,224,28,224,0,224,0,224,0,224,0, - 112,0,127,252,63,252,15,252,7,0,15,0,30,0,60,0, - 24,0,14,22,44,16,0,0,24,0,60,0,30,0,15,0, - 7,128,3,0,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,255,252,255,252,255,252,224,0,112,0, - 127,252,63,252,15,252,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,9,22,44,16,2,0,96,0,240,0,120,0, - 60,0,30,0,12,0,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,9,22,44,16,2,0,3,0,7,128, - 15,0,30,0,60,0,24,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,10,22,44,16,2,0,12,0, - 30,0,63,0,127,128,243,192,97,128,0,0,0,0,252,0, - 252,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,128,255,128,255,128,9,19,38,16,2,0, - 227,128,227,128,227,128,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,14,23,46,16,0,0,49,128,123,192, - 63,128,31,0,31,0,63,128,123,192,49,224,0,240,15,248, - 63,252,127,252,112,60,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,21,42,16,0,0, - 60,56,127,56,255,248,231,240,225,224,0,0,0,0,225,192, - 231,240,239,248,254,56,248,28,240,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,14,22,44,16,0,0, - 24,0,60,0,30,0,15,0,7,128,3,0,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,22,44,16, - 0,0,0,96,0,240,1,224,3,192,7,128,3,0,0,0, - 0,0,15,192,63,240,127,248,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,22, - 44,16,0,0,3,0,7,128,15,192,31,224,60,240,24,96, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,21,42,16,0,0,60,56,127,56,255,248,231,240,225,224, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,19,38,16,0,0,56,112,56,112,56,112,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,13,14,28,16, - 0,2,7,0,7,0,7,0,0,0,0,0,255,248,255,248, - 255,248,0,0,0,0,0,0,7,0,7,0,7,0,14,14, - 28,16,0,0,15,192,63,240,127,248,112,120,224,252,225,220, - 227,156,231,28,238,28,252,28,120,56,127,248,63,240,15,192, - 14,22,44,16,0,0,24,0,60,0,30,0,15,0,7,128, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,22,44,16,0,0,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,3,0,7,128,15,192, - 31,224,60,240,24,96,0,0,0,0,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,19,38,16,0,0,56,112,56,112, - 56,112,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,27,54,16,0,251,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,28,127,252, - 63,252,15,252,0,28,0,56,31,248,31,240,31,192,14,24, - 48,16,0,251,224,0,224,0,224,0,224,0,224,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,56,255,248,255,240,255,192,224,0,224,0,224,0, - 224,0,224,0,14,24,48,16,0,251,56,112,56,112,56,112, - 0,0,0,0,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,28,127,252,63,252,31,252, - 0,28,0,56,31,248,31,240,31,224}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 5 y=15 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29r[3719] U8G_FONT_SECTION("u8g_font_profont29r") = { - 0,16,28,0,251,19,4,198,9,234,32,127,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 7 h= 8 x= 0 y= 6 dx= 8 dy= 0 ascent=10 len= 8 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[1376] U8G_FONT_SECTION("u8g_font_robot_de_niro") = { - 0,10,10,255,0,6,1,97,2,193,32,255,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,4,7,7,5,0,2,96,144,64,224,64,128, - 240,255,255,255,4,7,7,5,0,2,96,128,96,144,96,16, - 96,255,7,8,8,8,0,2,124,130,154,170,162,154,130,124, - 255,255,255,255,7,8,8,8,0,2,124,130,186,170,178,170, - 130,124,255,255,255,255,255,255,255,6,5,5,7,0,3,108, - 232,104,40,40,255,255,255,255,255,255,255,255,255,255,255,255, - 255,4,8,8,4,255,2,80,0,48,80,112,80,80,128,255, - 255,3,7,7,4,0,1,96,128,128,160,96,64,32,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,3,7,7,4, - 0,3,160,0,96,160,160,160,64,4,4,4,5,0,4,144, - 96,96,144,255,255,255,255,4,7,7,5,0,3,80,0,160, - 160,160,160,80,255,255,4,7,7,4,255,1,32,80,96,80, - 96,64,128,255,255,255,255,4,6,6,5,0,3,80,0,96, - 160,160,80,255,255,255,4,6,6,5,0,3,96,0,96,160, - 208,96,4,6,6,5,0,3,96,0,96,160,208,96,4,7, - 7,5,0,3,64,160,0,96,160,208,96,255,255,255,255,255, - 255,255,255,255,255,255,3,6,6,4,0,3,160,0,96,160, - 160,192,5,5,5,6,0,3,32,0,248,0,32,255,255,255, - 255,4,6,6,5,0,3,80,0,160,160,160,80,255,255,255 - }; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 6 dx= 5 dy= 0 ascent= 9 len= 5 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[187] U8G_FONT_SECTION("u8g_font_robot_de_niron") = { - 0,10,10,255,0,5,0,0,0,0,42,58,0,9,0,5, - 0,3,3,3,4,0,6,160,64,160,3,3,3,4,0,4, - 64,224,64,2,2,2,3,0,2,64,128,3,1,1,4,0, - 5,224,1,1,1,2,0,3,128,3,5,5,4,0,3,32, - 32,64,128,128,3,5,5,4,0,3,64,160,160,160,64,3, - 5,5,4,0,3,192,64,64,64,224,3,5,5,4,0,3, - 192,32,96,128,224,3,5,5,4,0,3,192,32,224,32,224, - 3,5,5,4,0,3,160,160,224,32,32,3,5,5,4,0, - 3,96,128,224,32,224,3,5,5,4,0,3,96,128,224,160, - 64,4,5,5,5,0,3,224,32,112,32,32,3,5,5,4, - 0,3,96,160,224,160,192,3,5,5,4,0,3,96,160,224, - 32,192,1,3,3,2,0,4,128,0,128}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 6 h= 7 x= 0 y= 6 dx= 7 dy= 0 ascent=10 len= 7 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[1041] U8G_FONT_SECTION("u8g_font_robot_de_niror") = { - 0,10,10,255,0,6,1,97,2,193,32,127,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=15 x= 3 y= 9 dx=11 dy= 0 ascent=11 len=15 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =11 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08[2612] U8G_FONT_SECTION("u8g_font_symb08") = { - 0,11,15,255,252,7,1,152,3,60,32,255,254,11,252,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,6,7,7,7, - 0,0,140,212,112,32,32,32,112,3,3,3,3,0,5,32, - 64,128,5,7,7,6,0,0,8,48,192,48,8,0,248,4, - 7,7,3,255,0,16,16,32,32,64,64,128,7,3,3,7, - 0,1,108,146,108,5,9,9,5,0,254,24,32,112,32,32, - 32,32,32,192,5,5,5,7,1,0,112,112,248,248,32,5, - 5,5,7,1,0,32,112,248,112,32,5,5,5,7,1,0, - 216,248,248,112,32,5,5,5,7,1,0,32,112,248,248,32, - 10,5,10,10,0,0,33,0,64,128,255,192,64,128,33,0, - 10,5,10,10,0,0,32,0,64,0,255,192,64,0,32,0, - 5,14,14,6,0,252,32,112,168,32,32,32,32,32,32,32, - 32,32,32,32,10,5,10,10,0,0,1,0,0,128,255,192, - 0,128,1,0,5,13,13,6,0,254,32,32,32,32,32,32, - 32,32,32,32,168,112,32,3,4,4,4,0,3,64,160,160, - 64,5,7,7,6,0,0,32,32,248,32,32,0,248,5,3, - 3,4,0,5,40,80,160,5,7,7,6,0,0,128,96,24, - 96,128,0,248,5,5,5,6,0,0,136,80,32,80,136,6, - 3,3,7,0,1,108,144,108,4,8,8,5,0,0,96,144, - 16,16,112,144,144,96,4,3,3,5,0,1,96,240,96,5, - 5,5,6,0,0,32,0,248,0,32,5,5,5,6,0,0, - 16,248,32,248,64,5,5,5,6,0,1,248,0,248,0,248, - 5,5,5,6,0,0,104,176,0,104,176,7,1,1,9,1, - 0,146,1,15,15,6,2,252,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,10,1,2,10,0,2,255,192,6, - 6,6,7,0,0,4,4,4,68,252,64,7,7,7,8,0, - 0,204,102,52,92,76,38,98,6,9,9,7,0,255,124,132, - 200,24,12,4,68,232,48,8,8,8,8,0,0,108,146,146, - 92,20,18,82,163,7,8,8,9,1,254,16,36,74,82,106, - 108,160,96,7,7,7,8,0,0,56,68,170,146,170,68,56, - 7,7,7,8,0,0,56,68,146,186,146,68,56,7,9,9, - 8,0,255,2,60,76,138,146,162,100,120,128,7,5,5,8, - 0,0,56,68,130,130,130,7,5,5,8,0,0,130,130,130, - 68,56,7,5,5,7,0,0,248,4,2,4,248,7,7,7, - 7,0,254,248,4,2,4,248,0,254,7,7,7,7,0,255, - 4,62,72,136,80,62,32,7,5,5,7,0,0,62,64,128, - 64,62,7,7,7,7,0,254,62,64,128,64,62,0,254,5, - 5,5,7,1,0,120,128,248,128,120,5,7,7,7,1,255, - 16,120,144,248,160,120,64,7,7,7,8,0,0,2,4,8, - 16,32,64,254,6,7,7,7,0,0,252,132,132,72,72,48, - 48,7,8,8,8,0,255,56,68,250,170,178,174,68,56,7, - 8,8,8,0,255,56,68,154,170,162,154,68,56,10,5,10, - 10,0,2,253,0,170,128,42,128,42,128,122,192,8,9,9, - 9,0,255,255,66,66,66,66,66,66,66,231,6,10,10,6, - 0,0,4,4,8,8,72,208,80,80,32,32,1,1,1,3, - 1,2,128,6,3,3,7,0,0,252,4,4,5,5,5,6, - 0,0,32,80,80,136,136,5,5,5,6,0,0,136,136,80, - 80,32,10,5,10,11,0,0,33,0,127,128,128,64,127,128, - 33,0,9,5,10,10,0,0,32,0,127,128,128,0,127,128, - 32,0,5,10,10,6,0,0,32,112,216,80,80,80,80,80, - 80,80,9,5,10,10,0,0,2,0,255,0,0,128,255,0, - 2,0,5,10,10,6,0,0,80,80,80,80,80,80,80,216, - 80,32,7,7,7,7,0,0,16,40,68,198,68,40,16,3, - 9,9,3,0,254,32,32,64,64,128,64,64,32,32,7,8, - 8,8,0,255,56,68,186,170,178,170,68,56,7,8,8,8, - 0,255,56,68,154,162,162,154,68,56,8,5,5,9,0,2, - 250,85,85,85,85,6,9,9,7,0,255,252,132,64,32,16, - 32,64,132,252,3,14,14,4,1,252,32,64,64,128,128,128, - 128,128,128,128,128,128,128,128,1,15,15,4,1,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,3,15,15, - 4,1,252,128,128,128,128,128,128,128,128,128,128,128,128,64, - 64,32,3,14,14,4,1,252,224,128,128,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,4,1,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,4,1, - 254,128,128,128,128,128,128,128,128,128,128,128,128,224,3,14, - 14,5,2,252,96,128,128,128,128,128,128,128,128,128,128,128, - 128,128,3,15,15,5,0,252,32,32,32,32,32,64,128,64, - 32,32,32,32,32,32,32,3,13,13,5,2,254,128,128,128, - 128,128,128,128,128,128,128,128,128,96,1,15,15,5,2,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,255, - 3,9,9,3,0,254,128,128,64,64,32,64,64,128,128,3, - 12,12,3,0,254,32,64,64,64,64,64,64,64,64,64,64, - 128,4,14,14,7,3,252,48,80,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,7,0,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,13,13,7,0,254, - 16,16,16,16,16,16,16,16,16,16,16,160,192,3,14,14, - 4,0,252,128,64,64,32,32,32,32,32,32,32,32,32,32, - 32,1,15,15,4,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,3,15,15,4,0,252,32,32,32,32, - 32,32,32,32,32,32,32,32,64,64,128,3,14,14,4,0, - 252,224,32,32,32,32,32,32,32,32,32,32,32,32,32,1, - 15,15,4,2,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,13,13,4,0,254,32,32,32,32,32,32, - 32,32,32,32,32,32,224,3,14,14,5,0,252,192,32,32, - 32,32,32,32,32,32,32,32,32,32,32,3,15,15,5,2, - 252,128,128,128,128,128,64,32,64,128,128,128,128,128,128,128, - 3,13,13,5,0,254,32,32,32,32,32,32,32,32,32,32, - 32,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 9 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08r[1211] U8G_FONT_SECTION("u8g_font_symb08r") = { - 0,11,15,255,252,7,1,152,3,60,32,127,254,10,253,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=15 x= 7 y=11 dx=15 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10[3433] U8G_FONT_SECTION("u8g_font_symb10") = { - 0,16,15,255,253,10,2,6,4,121,32,255,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,8,10,10,9,0,0,198,105,43,16,16,16,16,16, - 16,56,4,3,3,4,0,7,48,96,128,7,9,9,8,0, - 0,2,12,48,192,48,12,2,0,254,5,10,10,4,255,0, - 8,8,16,16,32,32,64,64,128,128,9,4,8,10,0,2, - 119,0,152,128,140,128,119,0,7,13,13,7,0,253,6,10, - 8,8,60,16,16,16,32,32,32,160,192,9,7,14,11,1, - 0,28,0,28,0,28,0,235,128,255,128,235,128,8,0,7, - 7,7,11,2,0,16,56,124,254,124,56,16,7,7,7,11, - 2,0,108,254,254,254,124,56,16,9,7,14,11,1,0,8, - 0,28,0,62,0,127,0,255,128,107,0,8,0,13,7,14, - 15,1,0,16,64,32,32,64,16,255,248,64,16,32,32,16, - 64,14,7,14,14,0,0,16,0,32,0,64,0,255,252,64, - 0,32,0,16,0,7,15,15,9,1,253,16,56,84,146,16, - 16,16,16,16,16,16,16,16,16,16,14,7,14,14,0,0, - 0,32,0,16,0,8,255,252,0,8,0,16,0,32,7,15, - 15,9,1,253,16,16,16,16,16,16,16,16,16,16,16,146, - 84,56,16,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,7,3,3,6, - 0,7,54,108,144,7,9,9,8,0,0,128,96,24,6,24, - 96,128,0,254,7,7,7,8,0,0,130,68,40,16,40,68, - 130,8,4,4,10,0,2,119,136,136,119,6,11,11,7,0, - 0,112,136,4,4,4,116,204,132,132,200,112,5,5,5,7, - 1,1,112,248,248,248,112,7,7,7,8,0,0,16,16,0, - 254,0,16,16,7,7,7,8,0,0,4,8,254,16,254,32, - 64,7,5,5,8,0,1,254,0,254,0,254,7,5,5,8, - 0,2,114,156,0,114,156,11,2,4,15,2,0,132,32,132, - 32,1,15,15,9,4,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,15,1,2,15,0,3,255,254,8,9, - 9,10,0,0,1,1,1,1,1,1,65,255,64,8,10,10, - 12,2,0,136,206,102,36,116,156,140,70,99,225,8,12,12, - 10,1,255,63,97,66,70,36,6,3,1,97,241,26,12,10, - 11,22,12,1,0,115,0,157,128,137,128,139,0,206,0,106, - 0,41,0,9,0,9,0,105,0,176,192,9,12,24,12,1, - 253,16,0,35,0,69,128,72,128,144,128,212,128,105,0,107, - 0,182,0,144,0,144,0,96,0,9,9,18,11,1,0,28, - 0,99,0,99,0,148,128,136,128,148,128,99,0,99,0,28, - 0,9,9,18,11,1,0,28,0,99,0,73,0,136,128,190, - 128,136,128,73,0,99,0,28,0,11,11,22,12,0,0,31, - 32,96,192,64,192,129,32,130,32,132,32,136,32,144,32,96, - 64,96,192,159,0,10,7,14,10,0,0,30,0,97,128,64, - 128,128,64,128,64,128,64,128,64,10,7,14,10,0,0,128, - 64,128,64,128,64,128,64,64,128,97,128,30,0,9,7,14, - 10,0,0,254,0,1,0,0,128,0,128,0,128,1,0,254, - 0,9,9,18,10,1,254,254,0,1,0,0,128,0,128,0, - 128,1,0,254,0,0,0,255,128,9,9,18,10,0,255,1, - 0,63,128,66,0,130,0,132,0,132,0,72,0,63,128,16, - 0,9,7,14,10,1,0,63,128,64,0,128,0,128,0,128, - 0,64,0,63,128,9,9,18,10,0,254,63,128,64,0,128, - 0,128,0,128,0,64,0,63,128,0,0,255,128,7,7,7, - 10,1,0,62,64,128,254,128,64,62,7,9,9,10,0,255, - 4,62,72,144,254,144,96,62,64,11,10,20,11,0,0,0, - 64,0,128,1,0,2,0,4,0,8,0,16,0,32,0,64, - 0,255,224,9,11,22,10,0,0,255,128,128,128,65,0,65, - 0,34,0,34,0,34,0,20,0,20,0,8,0,8,0,10, - 10,20,12,1,0,30,0,33,0,124,128,146,64,146,64,156, - 64,146,64,121,128,33,0,30,0,10,10,20,12,1,0,30, - 0,33,0,78,128,146,64,144,64,144,64,146,64,76,128,33, - 0,30,0,11,6,12,11,0,4,250,128,170,128,38,192,37, - 64,37,64,118,224,10,12,24,12,1,255,255,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,64, - 128,225,192,8,12,12,8,0,0,1,1,1,2,2,98,164, - 36,20,20,8,8,1,2,2,4,1,3,128,128,9,5,10, - 10,0,0,255,128,0,128,0,128,0,128,0,128,8,7,7, - 9,0,0,24,24,36,36,66,66,129,8,7,7,9,0,0, - 129,66,66,36,36,24,24,13,7,14,15,1,0,16,64,32, - 32,127,240,192,24,127,240,32,32,16,64,13,7,14,14,0, - 0,16,0,32,0,127,248,192,0,127,248,32,0,16,0,7, - 12,12,9,1,0,16,56,108,170,40,40,40,40,40,40,40, - 40,13,7,14,14,1,0,0,64,0,32,255,240,0,24,255, - 240,0,32,0,64,7,12,12,9,1,0,40,40,40,40,40, - 40,40,40,170,108,56,16,7,11,11,7,0,0,16,40,40, - 68,68,130,68,68,40,40,16,4,15,15,5,0,253,16,32, - 32,64,64,64,128,128,128,64,64,64,32,32,16,10,10,20, - 12,1,0,30,0,33,0,92,128,146,64,146,64,156,64,146, - 64,82,128,33,0,30,0,10,10,20,12,1,0,30,0,33, - 0,76,128,146,64,144,64,144,64,146,64,76,128,33,0,30, - 0,10,6,12,11,0,4,250,128,34,128,38,192,37,64,37, - 64,36,64,9,12,24,10,0,255,255,0,129,0,64,0,32, - 0,16,0,8,0,8,0,16,0,32,0,64,0,128,128,255, - 128,4,15,15,6,1,253,16,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,6,1,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,128,128,128,128,128,128,128,128,128,128,128,64,64,32,16, - 4,15,15,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,6,1,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,15,15,6,1,253, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,240,4, - 15,15,7,3,253,48,64,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,15,15,7,1,253,32,32,32,32,32,32, - 64,128,64,32,32,32,32,32,32,4,15,15,7,3,253,128, - 128,128,128,128,128,128,128,128,128,128,128,128,64,48,1,15, - 15,7,3,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,255,4,15,15,5,1,253,128,64,64,32,32,32, - 16,16,16,32,32,32,64,64,128,5,13,13,4,0,255,24, - 40,32,32,32,32,32,32,32,32,32,160,192,5,15,15,10, - 5,253,56,88,64,128,128,128,128,128,128,128,128,128,128,128, - 128,1,15,15,10,5,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,5,15,15,10,1,253,8,8,8,8, - 8,8,8,8,8,8,8,8,16,208,224,4,15,15,6,1, - 253,128,64,32,32,16,16,16,16,16,16,16,16,16,16,16, - 1,15,15,6,4,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,15,15,6,1,253,16,16,16,16,16, - 16,16,16,16,16,16,32,32,64,128,4,15,15,6,1,253, - 240,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1, - 15,15,6,4,253,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,4,15,15,6,1,253,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,240,4,15,15,7,0,253,192, - 32,16,16,16,16,16,16,16,16,16,16,16,16,16,3,15, - 15,7,3,253,128,128,128,128,128,128,64,32,64,128,128,128, - 128,128,128,4,15,15,7,0,253,16,16,16,16,16,16,16, - 16,16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=11 h=15 x= 7 y=11 dx=13 dy= 0 ascent=12 len=20 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10r[1633] U8G_FONT_SECTION("u8g_font_symb10r") = { - 0,16,15,255,253,10,2,6,4,121,32,127,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=16 h=17 x= 7 y=12 dx=17 dy= 0 ascent=13 len=30 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12[4136] U8G_FONT_SECTION("u8g_font_symb12") = { - 0,20,17,253,252,11,2,70,5,85,32,255,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,10,11,22,10,255,0,225,128,18,192,10,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,30,0,3,4, - 4,4,1,8,96,96,192,128,8,11,11,9,0,0,1,6, - 24,96,128,96,24,6,1,0,255,8,11,11,3,253,0,1, - 2,2,4,8,16,16,32,64,64,128,11,5,10,12,0,2, - 113,192,138,32,132,32,138,32,113,192,7,15,15,8,0,253, - 6,10,8,8,8,126,16,16,16,16,32,32,32,160,192,9, - 10,20,12,1,255,28,0,62,0,62,0,28,0,107,0,255, - 128,255,128,107,0,8,0,28,0,7,9,9,12,2,0,16, - 56,124,124,254,124,124,56,16,8,9,9,12,2,0,102,255, - 255,255,126,60,60,24,24,9,10,20,12,2,255,8,0,28, - 0,28,0,62,0,127,0,127,0,255,128,107,0,8,0,28, - 0,15,9,18,17,0,0,8,32,16,16,32,8,64,4,255, - 254,64,4,32,8,16,16,8,32,16,9,18,16,0,0,8, - 0,16,0,32,0,64,0,255,255,64,0,32,0,16,0,8, - 0,9,15,30,10,0,254,8,0,28,0,42,0,73,0,136, - 128,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,15,9,18,16,0,0,0,32,0,16,0, - 8,0,4,255,254,0,4,0,8,0,16,0,32,9,15,30, - 10,0,254,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,136,128,73,0,42,0,28,0,8, - 0,5,5,5,6,0,6,112,136,136,136,112,9,11,22,9, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,0,0,255,128,6,4,4,7,1,8,108,108, - 216,144,8,11,11,9,0,0,128,96,24,6,1,6,24,96, - 128,0,255,9,9,18,9,0,0,128,128,65,0,34,0,20, - 0,8,0,20,0,34,0,65,0,128,128,10,5,10,11,0, - 2,113,192,138,0,132,0,138,0,113,192,7,14,14,8,0, - 255,120,196,4,2,2,2,58,102,194,194,130,196,68,56,6, - 6,6,8,1,2,120,252,252,252,252,120,8,7,7,9,0, - 1,24,24,0,255,0,24,24,9,10,20,9,0,255,2,0, - 2,0,4,0,255,128,8,0,8,0,255,128,16,0,32,0, - 32,0,8,7,7,9,0,1,255,0,0,255,0,0,255,8, - 5,5,9,0,2,113,142,0,113,142,13,3,6,16,1,0, - 66,16,231,56,66,16,1,17,17,10,4,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,16,1,2, - 16,0,4,255,255,9,11,22,10,0,255,0,128,0,128,0, - 128,0,128,0,128,0,128,32,128,96,128,255,128,96,0,32, - 0,9,11,22,13,2,0,68,0,231,0,103,0,50,0,26, - 0,60,0,108,0,102,0,99,0,51,128,113,0,9,14,28, - 11,0,255,30,0,63,128,67,128,65,0,66,0,34,0,19, - 0,1,0,1,128,0,128,0,128,112,128,191,0,28,0,12, - 13,26,13,0,0,113,128,138,192,140,96,196,64,100,128,37, - 0,7,128,5,128,12,192,12,192,8,208,104,96,48,64,12, - 13,26,16,2,252,12,0,17,224,34,48,36,16,72,48,114, - 32,102,96,100,192,115,0,144,0,144,0,144,0,96,0,11, - 11,22,12,1,0,14,0,49,128,64,64,81,64,138,32,132, - 32,138,32,81,64,64,64,49,128,14,0,11,11,22,12,1, - 0,14,0,49,128,68,64,68,64,132,32,191,160,132,32,68, - 64,68,64,49,128,14,0,12,12,24,13,1,0,15,16,48, - 224,64,96,64,160,129,16,130,16,132,16,136,16,80,32,96, - 32,112,192,159,0,11,9,18,12,1,0,14,0,49,128,64, - 64,64,64,128,32,128,32,128,32,128,32,128,32,11,9,18, - 12,1,0,128,32,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,10,8,16,11,0,0,255,0,0,128,0, - 64,0,64,0,64,0,64,0,128,255,0,10,10,20,11,0, - 253,255,0,0,128,0,64,0,64,0,64,0,64,0,128,255, - 0,0,0,255,192,11,10,20,11,0,255,0,128,63,224,65, - 0,129,0,130,0,130,0,132,0,68,0,63,224,8,0,10, - 8,16,11,0,0,63,192,64,0,128,0,128,0,128,0,128, - 0,64,0,63,192,10,10,20,11,0,254,63,192,64,0,128, - 0,128,0,128,0,128,0,64,0,63,192,0,0,255,192,7, - 7,7,11,0,0,62,64,128,254,128,64,62,7,9,9,11, - 0,255,4,62,72,136,254,144,80,62,32,11,11,22,12,1, - 0,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16, - 0,32,0,64,0,255,192,10,11,22,11,1,1,255,192,192, - 128,96,128,97,0,49,0,50,0,50,0,28,0,28,0,8, - 0,8,0,11,11,22,13,1,0,14,0,49,128,94,64,73, - 64,137,32,142,32,138,32,73,64,93,192,49,128,14,0,11, - 11,22,13,1,0,14,0,49,128,70,64,73,64,145,32,144, - 32,144,32,73,64,70,64,49,128,14,0,13,6,12,14,0, - 5,255,24,171,16,34,176,34,176,34,80,119,88,12,15,30, - 13,1,254,255,240,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,240, - 240,7,16,16,9,1,253,2,2,2,2,2,4,68,196,36, - 36,20,20,20,8,8,8,2,2,2,4,1,3,192,192,11, - 5,10,12,0,0,255,224,0,32,0,32,0,32,0,32,9, - 8,16,10,0,0,8,0,8,0,20,0,34,0,34,0,65, - 0,128,128,128,128,9,8,16,10,0,0,128,128,128,128,65, - 0,34,0,34,0,20,0,8,0,8,0,16,9,18,17,0, - 0,8,16,16,8,63,252,64,2,128,1,64,2,63,252,16, - 8,8,16,15,9,18,16,0,0,8,0,16,0,63,254,64, - 0,128,0,64,0,63,254,16,0,8,0,9,15,30,10,0, - 254,8,0,20,0,34,0,99,0,162,128,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,15, - 9,18,16,0,0,0,32,0,16,255,248,0,4,0,2,0, - 4,255,248,0,16,0,32,9,15,30,10,0,254,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,162,128,99,0,34,0,20,0,8,0,7,12,12,8,0, - 0,16,40,40,68,68,130,130,68,68,40,40,16,4,15,15, - 5,0,254,16,16,32,32,64,64,128,128,128,64,64,32,32, - 16,16,11,11,22,13,1,0,14,0,49,128,94,64,81,64, - 145,32,158,32,145,32,81,64,81,64,49,128,14,0,11,11, - 22,13,1,0,14,0,49,128,70,64,73,64,144,32,144,32, - 144,32,73,64,70,64,49,128,14,0,11,6,12,13,0,5, - 252,32,38,96,38,96,37,160,37,160,36,32,11,15,30,11, - 0,254,255,192,112,64,56,64,24,0,12,0,14,0,7,0, - 3,0,2,0,4,0,8,0,16,32,32,64,127,192,255,128, - 6,17,17,6,1,252,4,8,16,32,32,64,64,64,64,128, - 128,128,128,128,128,128,128,1,17,17,6,1,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,6,17, - 17,6,1,252,128,128,128,128,128,128,128,128,64,64,64,64, - 32,32,16,8,4,5,17,17,6,0,252,248,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,1,17,17,6, - 0,252,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,17,17,6,0,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,248,4,17,17,8,3,252, - 48,64,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,4,17,17,8,0,252,16,16,16,16,16,16,16,32,192, - 32,16,16,16,16,16,16,16,4,17,17,8,3,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,64,48,1, - 17,17,8,3,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,255,4,15,15,5,0,254,128,128,64, - 64,32,32,16,16,16,32,32,64,64,128,128,5,17,17,5, - 0,252,24,40,32,32,32,32,32,32,32,32,32,32,32,32, - 32,160,192,6,17,17,11,5,252,24,44,72,64,128,128,128, - 128,128,128,128,128,128,128,128,128,128,1,17,17,11,5,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,11,0,252,4,4,4,4,4,4,4,4,4, - 4,4,4,4,8,72,208,96,6,17,17,7,1,252,128,64, - 32,16,16,8,8,8,8,4,4,4,4,4,4,4,4,1, - 17,17,6,5,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,6,17,17,6,0,252,4,4,4,4, - 4,4,4,4,8,8,8,8,16,16,32,64,128,5,17,17, - 6,1,252,248,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,1,17,17,6,5,252,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,17,17,6,1, - 252,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,248,4,17,17,8,0,252,192,32,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,4,17,17,8,3,252,128, - 128,128,128,128,128,128,64,48,64,128,128,128,128,128,128,128, - 4,17,17,8,0,252,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=13 h=17 x= 7 y=12 dx=14 dy= 0 ascent=13 len=26 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12r[1985] U8G_FONT_SECTION("u8g_font_symb12r") = { - 0,20,17,253,252,11,2,70,5,85,32,127,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=19 h=19 x= 9 y=13 dx=19 dy= 0 ascent=14 len=34 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14[4665] U8G_FONT_SECTION("u8g_font_symb14") = { - 0,20,19,255,251,13,2,127,6,16,32,255,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,11,13,26,12,0,0,225,192,115,32, - 58,96,28,96,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,30,0,4,5,5,5,1,9,48,112,96,192, - 128,9,12,24,10,0,0,3,128,15,0,60,0,240,0,192, - 0,240,0,60,0,15,0,3,128,0,0,255,128,255,128,8, - 13,13,5,255,0,3,6,6,12,12,24,24,48,48,96,96, - 192,192,12,5,10,13,0,3,121,224,207,48,134,16,207,48, - 121,224,9,17,34,9,0,252,3,128,5,128,12,0,12,0, - 12,0,127,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,208,0,224,0,10,9,18,14,2,0, - 12,0,30,0,30,0,30,0,109,128,255,192,255,192,109,128, - 12,0,9,9,18,13,2,0,8,0,28,0,62,0,127,0, - 255,128,127,0,62,0,28,0,8,0,9,9,18,13,2,0, - 99,0,247,128,255,128,255,128,127,0,127,0,62,0,28,0, - 8,0,10,9,18,14,2,0,12,0,30,0,63,0,127,128, - 255,192,255,192,109,128,12,0,12,0,17,8,24,19,1,1, - 24,12,0,48,6,0,96,3,0,255,255,128,255,255,128,96, - 3,0,48,6,0,24,12,0,18,8,24,18,0,1,24,0, - 0,48,0,0,96,0,0,255,255,192,255,255,192,96,0,0, - 48,0,0,24,0,0,8,19,19,10,1,251,24,60,126,219, - 153,24,24,24,24,24,24,24,24,24,24,24,24,24,24,18, - 8,24,18,0,1,0,6,0,0,3,0,0,1,128,255,255, - 192,255,255,192,0,1,128,0,3,0,0,6,0,8,19,19, - 10,1,251,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,153,219,126,60,24,5,6,6,7,1,7,112,248,216,216, - 248,112,8,11,11,10,1,0,24,24,24,255,255,24,24,24, - 0,255,255,8,5,5,8,0,9,51,119,102,204,136,9,12, - 24,10,0,0,224,0,120,0,30,0,7,128,1,128,7,128, - 30,0,120,0,224,0,0,0,255,128,255,128,10,9,18,10, - 0,0,225,192,115,128,51,0,30,0,12,0,30,0,51,0, - 115,128,225,192,11,5,10,12,0,3,121,224,207,0,134,0, - 207,0,121,224,7,14,14,9,1,0,120,204,134,6,6,6, - 62,102,198,198,198,196,236,120,5,6,6,9,2,2,112,248, - 248,248,248,112,8,8,8,10,1,1,24,24,0,255,255,0, - 24,24,8,9,9,10,1,0,12,12,255,255,24,255,255,48, - 48,8,8,8,10,1,1,255,255,0,255,255,0,255,255,8, - 7,7,10,1,2,115,255,206,0,115,255,206,14,2,4,18, - 2,0,195,12,195,12,2,19,19,10,4,251,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,19, - 2,6,19,0,4,255,255,224,255,255,224,9,12,24,12,1, - 0,1,128,1,128,1,128,1,128,1,128,1,128,33,128,97, - 128,255,128,255,128,96,0,32,0,11,13,26,13,1,0,194, - 0,227,192,113,224,56,224,57,128,125,0,207,0,199,0,227, - 0,115,128,49,192,112,192,240,64,10,15,30,13,1,255,31, - 192,63,192,96,128,65,0,66,0,34,0,19,0,3,128,1, - 192,0,192,0,192,112,192,248,128,31,0,14,0,13,14,28, - 15,1,0,121,192,254,224,142,112,134,48,198,96,118,128,54, - 64,38,96,6,96,6,96,6,96,6,96,108,120,184,48,12, - 15,30,14,1,252,12,0,24,0,49,224,103,48,204,48,216, - 48,214,48,246,96,100,224,119,192,179,128,152,0,152,0,216, - 0,112,0,12,13,26,14,1,0,31,128,57,192,96,96,217, - 176,221,176,143,16,134,16,143,16,219,176,217,176,96,96,57, - 192,31,128,12,13,26,14,1,0,31,128,57,192,102,96,198, - 48,198,48,191,208,191,208,134,16,198,48,198,48,96,96,57, - 192,31,128,12,13,26,14,1,0,31,176,57,240,96,96,192, - 240,193,176,131,16,134,16,140,16,216,48,240,48,96,96,249, - 192,223,128,12,9,18,14,1,0,31,128,57,192,96,96,224, - 112,192,48,192,48,192,48,192,48,192,48,12,9,18,14,1, - 0,192,48,192,48,192,48,192,48,192,48,224,112,96,96,57, - 192,31,128,12,9,18,13,1,0,255,128,255,224,0,96,0, - 48,0,48,0,48,0,96,255,224,255,128,12,12,24,13,0, - 253,255,128,255,224,0,96,0,48,0,48,0,48,0,96,255, - 224,255,128,0,0,255,240,255,240,12,13,26,13,0,254,0, - 96,0,192,31,240,127,240,97,128,195,0,195,0,198,0,102, - 0,127,240,31,240,24,0,48,0,12,9,18,13,0,0,31, - 240,127,240,96,0,192,0,192,0,192,0,96,0,127,240,31, - 240,12,12,24,13,0,253,31,240,127,240,96,0,192,0,192, - 0,192,0,96,0,127,240,31,240,0,0,255,240,255,240,9, - 9,18,12,1,0,31,128,127,128,224,0,192,0,255,128,192, - 0,224,0,127,128,31,128,10,11,22,12,1,255,0,128,31, - 192,127,192,226,0,196,0,255,128,200,0,240,0,127,192,63, - 192,64,0,13,13,26,14,0,0,0,24,0,48,0,96,0, - 192,1,128,3,0,6,0,12,0,24,0,48,0,96,0,192, - 0,255,248,11,13,26,13,1,0,255,224,224,32,96,96,96, - 64,112,192,48,128,48,128,57,128,25,0,27,0,14,0,14, - 0,4,0,13,13,26,15,1,0,31,192,56,224,96,48,223, - 24,205,152,205,152,205,152,207,24,205,152,220,216,96,48,56, - 224,31,192,13,13,26,15,1,0,31,192,56,224,96,48,199, - 152,205,152,204,152,204,24,204,24,204,152,199,24,96,48,56, - 224,31,192,14,8,16,16,1,5,251,28,171,24,35,24,34, - 168,34,168,34,168,34,72,119,92,14,16,32,15,0,254,255, - 252,120,120,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,120,120,252,252,9, - 14,28,10,0,0,0,128,0,128,0,128,0,128,48,128,113, - 0,217,0,25,0,25,0,13,0,14,0,6,0,6,0,6, - 0,2,2,2,4,1,4,192,192,11,6,12,13,1,0,255, - 224,255,224,0,96,0,96,0,96,0,96,10,9,18,11,0, - 0,12,0,12,0,30,0,51,0,51,0,97,128,97,128,192, - 192,192,192,10,9,18,11,0,0,192,192,192,192,97,128,97, - 128,51,0,51,0,30,0,12,0,12,0,18,9,27,18,0, - 0,8,4,0,24,6,0,63,255,0,127,255,128,224,1,192, - 127,255,128,63,255,0,24,6,0,8,4,0,16,9,18,18, - 1,0,8,0,24,0,63,255,127,255,224,0,127,255,63,255, - 24,0,8,0,9,17,34,11,1,253,8,0,28,0,54,0, - 119,0,247,128,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,16,9,18,18, - 1,0,0,16,0,24,255,252,255,254,0,7,255,254,255,252, - 0,24,0,16,9,17,34,11,1,253,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,247,128,119,0,54,0,28,0,8,0,9,14,28,9, - 0,0,28,0,28,0,54,0,54,0,99,0,99,0,193,128, - 193,128,99,0,99,0,54,0,54,0,28,0,28,0,5,17, - 17,6,0,253,24,24,48,48,96,96,192,192,128,192,192,96, - 96,48,48,24,24,13,13,26,15,1,0,31,192,56,224,96, - 48,207,24,205,152,205,152,207,24,205,152,205,152,205,152,96, - 48,56,224,31,192,13,13,26,15,1,0,31,192,56,224,96, - 48,199,24,204,152,204,24,204,24,204,24,204,152,199,24,96, - 48,56,224,31,192,13,8,16,15,1,5,251,24,35,24,35, - 24,34,168,34,168,34,168,34,72,34,72,12,16,32,13,0, - 254,255,224,224,96,112,32,56,0,28,0,14,0,7,0,3, - 0,6,0,12,0,24,0,48,0,96,16,192,48,255,240,255, - 240,6,19,19,7,1,251,4,12,24,24,48,48,96,96,96, - 96,192,192,192,192,192,192,192,192,192,2,19,19,7,1,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,6,19,19,7,1,251,192,192,192,192,192,192,192, - 192,192,224,96,96,96,48,48,24,24,12,4,5,19,19,7, - 1,251,248,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,7,1,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,19, - 19,7,1,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,5,19,19,9,4,251,56,96,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,19,19,9,1,251,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,5,19,19,9,4,251,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 96,56,2,19,19,9,4,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,255,5,17,17,6, - 0,253,192,192,96,96,48,48,24,24,8,24,24,48,48,96, - 96,192,192,6,19,19,6,0,251,28,28,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,224,224,7,19,19,13, - 5,251,28,126,102,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,13,5,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,7,19, - 19,13,0,251,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,204,252,112,6,19,19,7,0,251,128,192,96, - 96,48,48,24,24,24,24,12,12,12,12,12,12,12,12,12, - 2,19,19,7,4,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,6,19,19,7,0,251,12, - 12,12,12,12,12,12,12,12,24,24,24,24,48,48,96,96, - 192,128,5,19,19,7,1,251,248,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,2,19,19,7,4, - 251,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,5,19,19,7,1,251,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,5,19,19, - 9,1,251,224,48,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,5,19,19,9,4,251,192,192,192,192, - 192,192,64,96,48,24,48,96,64,192,192,192,192,192,192,5, - 19,19,9,1,251,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,48,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=14 h=19 x= 9 y=13 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14r[2261] U8G_FONT_SECTION("u8g_font_symb14r") = { - 0,20,19,255,251,13,2,127,6,16,32,127,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=25 h=24 x=13 y=18 dx=26 dy= 0 ascent=19 len=63 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18[6604] U8G_FONT_SECTION("u8g_font_symb18") = { - 0,27,24,255,251,17,3,215,8,151,32,255,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,13,17,34,15,1,0,224,112, - 112,216,57,184,27,48,14,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 5,6,6,6,1,12,24,56,112,96,192,128,12,15,30,14, - 0,0,0,112,1,224,7,128,30,0,120,0,224,0,224,0, - 120,0,30,0,3,192,0,240,0,48,0,0,255,240,255,240, - 8,17,17,4,255,0,3,3,6,6,12,12,24,24,24,48, - 48,96,96,96,192,192,192,15,7,14,17,1,4,56,56,124, - 124,198,198,195,134,199,198,124,124,56,56,13,22,44,13,0, - 251,0,240,1,152,1,152,3,0,3,0,3,0,31,192,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,204,0,204,0,120,0,14,13,26, - 18,2,0,7,128,15,192,15,192,15,192,15,192,119,184,251, - 124,255,252,255,252,251,124,115,56,3,0,7,128,10,13,26, - 18,4,0,12,0,30,0,63,0,63,0,127,128,127,128,255, - 192,127,128,127,128,63,0,30,0,30,0,12,0,12,13,26, - 18,3,0,112,224,249,240,255,240,255,240,255,240,255,240,127, - 224,127,224,63,192,31,128,31,128,15,0,6,0,12,13,26, - 18,3,0,6,0,15,0,31,128,31,128,63,192,127,224,127, - 224,255,240,255,240,246,240,102,96,6,0,6,0,24,12,36, - 26,1,1,6,0,96,12,0,48,24,0,24,48,0,12,96, - 0,6,255,255,255,255,255,255,96,0,6,48,0,12,24,0, - 24,12,0,48,6,0,96,25,12,48,25,0,1,6,0,0, - 0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0, - 0,255,255,255,128,255,255,255,128,96,0,0,0,48,0,0, - 0,24,0,0,0,12,0,0,0,6,0,0,0,12,24,48, - 14,1,251,6,0,15,0,31,128,54,192,102,96,198,48,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,25,12,48,25,0,1,0,0,48,0,0,0,24, - 0,0,0,12,0,0,0,6,0,0,0,3,0,255,255,255, - 128,255,255,255,128,0,0,3,0,0,0,6,0,0,0,12, - 0,0,0,24,0,0,0,48,0,12,24,48,14,1,251,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,198,48,102,96,54,192,31,128,15,0,6,0,7, - 7,7,9,1,10,56,108,198,198,198,108,56,10,14,28,12, - 1,0,12,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,12,0,0,0,0,0,255,192,255,192,9,6, - 12,10,1,12,25,128,59,128,119,0,102,0,204,0,136,0, - 12,15,30,14,0,0,224,0,120,0,30,0,7,128,1,224, - 0,112,0,112,1,224,7,128,62,0,240,0,192,0,0,0, - 255,240,255,240,11,10,20,13,1,2,192,96,96,192,49,128, - 27,0,14,0,14,0,27,0,49,128,96,192,192,96,14,7, - 14,16,1,4,56,56,124,124,198,192,195,128,199,192,124,124, - 56,56,10,19,38,12,1,0,62,0,99,0,193,128,1,128, - 0,192,0,192,0,192,0,192,30,192,115,192,97,192,192,192, - 192,192,193,128,193,128,193,128,227,0,119,0,62,0,8,8, - 8,12,2,3,60,126,255,255,255,255,126,60,10,8,16,12, - 1,3,12,0,12,0,0,0,255,192,255,192,0,0,12,0, - 12,0,10,13,26,14,2,0,1,128,1,128,3,0,3,0, - 255,192,255,192,12,0,255,192,255,192,48,0,48,0,96,0, - 96,0,11,8,16,13,1,3,255,224,255,224,0,0,255,224, - 255,224,0,0,255,224,255,224,11,8,16,13,1,3,56,32, - 124,96,199,192,131,128,56,32,124,96,199,192,131,128,18,2, - 6,24,3,0,192,192,192,192,192,192,2,24,24,14,6,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,25,2,8,25,0,6,255,255, - 255,128,255,255,255,128,14,16,32,16,1,0,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 32,12,96,12,255,252,255,252,96,0,32,0,12,16,32,14, - 1,0,129,128,195,0,227,240,113,240,56,96,28,192,60,128, - 110,128,199,128,195,128,227,128,241,192,112,224,48,112,112,48, - 224,16,14,19,38,16,1,255,15,128,63,252,112,248,96,48, - 64,96,64,192,96,192,48,224,28,112,0,56,0,56,0,28, - 0,28,0,12,48,12,120,12,222,24,15,240,3,192,17,18, - 54,19,1,0,30,24,0,63,60,0,99,206,0,193,135,0, - 129,131,0,193,134,0,225,140,0,113,184,0,57,176,0,25, - 152,0,17,152,0,1,152,0,1,156,0,1,140,0,1,140, - 0,25,134,128,63,7,128,78,7,0,15,20,40,19,2,251, - 6,0,12,0,24,60,48,254,49,134,99,6,102,6,108,6, - 104,12,121,156,115,152,114,48,122,112,91,224,221,128,140,0, - 140,0,140,0,216,0,112,0,16,17,34,18,1,0,7,224, - 30,120,56,28,96,6,104,22,204,51,198,99,195,195,193,131, - 195,195,198,99,204,51,104,22,96,6,56,28,30,120,7,224, - 16,17,34,18,1,0,7,224,30,120,56,28,97,134,97,134, - 193,131,193,131,207,243,207,243,193,131,193,131,193,131,97,134, - 96,6,56,28,30,120,7,224,18,17,51,20,1,0,3,240, - 192,15,253,128,28,15,0,48,7,0,48,15,0,96,25,128, - 96,49,128,96,97,128,96,193,128,97,129,128,99,1,128,102, - 1,128,60,3,0,56,3,0,60,14,0,111,252,0,195,240, - 0,16,13,26,18,1,0,7,224,31,248,56,28,96,6,96, - 6,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,16,13,26,18,1,0,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,96,6,96,6,56,28,31,248,7, - 224,15,12,24,17,1,0,255,224,255,248,0,28,0,12,0, - 6,0,6,0,6,0,6,0,12,0,28,255,248,255,224,15, - 15,30,17,1,253,255,224,255,248,0,28,0,12,0,6,0, - 6,0,6,0,6,0,12,0,28,255,248,255,224,0,0,255, - 254,255,254,15,16,32,17,1,254,0,12,0,12,15,254,63, - 254,112,48,96,48,192,96,192,96,192,192,192,192,97,128,113, - 128,63,254,15,254,6,0,6,0,15,12,24,17,1,0,15, - 254,63,254,112,0,96,0,192,0,192,0,192,0,192,0,96, - 0,112,0,63,254,15,254,15,15,30,17,1,253,15,254,63, - 254,112,0,96,0,192,0,192,0,192,0,192,0,96,0,112, - 0,63,254,15,254,0,0,255,254,255,254,12,13,26,16,2, - 0,31,240,127,240,96,0,192,0,192,0,192,0,255,240,192, - 0,192,0,192,0,96,0,127,240,31,240,12,15,30,16,2, - 255,0,192,31,240,127,240,97,128,193,128,195,0,195,0,255, - 240,198,0,198,0,204,0,108,0,127,240,31,240,24,0,17, - 16,48,19,1,0,0,1,128,0,3,0,0,6,0,0,12, - 0,0,24,0,0,48,0,0,96,0,0,192,0,1,128,0, - 3,0,0,6,0,0,12,0,0,24,0,0,48,0,0,127, - 255,128,255,255,128,16,18,36,18,1,0,255,255,192,3,192, - 2,96,6,96,4,48,12,48,8,48,24,24,16,24,48,12, - 32,12,32,6,96,6,64,3,192,3,192,1,128,1,128,16, - 17,34,18,1,0,7,224,30,120,56,28,96,6,111,230,198, - 115,198,51,198,115,199,227,198,195,198,99,198,51,111,62,96, - 6,56,28,30,120,7,224,16,17,34,18,1,0,7,224,30, - 120,56,28,96,6,99,230,198,99,204,35,204,3,204,3,204, - 3,204,3,206,51,103,230,99,198,56,28,30,120,7,224,20, - 10,30,22,1,7,255,96,112,153,96,96,24,112,224,24,112, - 224,24,89,96,24,89,96,24,78,96,24,78,96,24,70,96, - 60,230,240,17,21,63,19,1,253,255,255,128,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,252,31,128,14,19,38,14,0,0,0,12, - 0,12,0,8,0,8,0,24,48,24,112,16,216,16,24,16, - 12,48,12,48,6,32,6,32,3,32,3,96,1,192,1,192, - 0,192,0,192,2,2,2,6,2,6,192,192,15,8,16,17, - 1,0,255,254,255,254,0,6,0,6,0,6,0,6,0,6, - 0,6,13,12,24,15,1,0,7,0,7,0,13,128,13,128, - 24,192,24,192,48,96,48,96,96,48,96,48,192,24,192,24, - 13,12,24,15,1,0,192,24,192,24,96,48,96,48,48,96, - 48,96,24,192,24,192,13,128,13,128,7,0,7,0,23,12, - 36,25,1,0,6,0,192,12,0,96,24,0,48,63,255,248, - 127,255,252,224,0,14,224,0,14,127,255,252,63,255,248,24, - 0,48,12,0,96,6,0,192,23,12,36,25,1,0,6,0, - 0,12,0,0,24,0,0,63,255,254,127,255,254,224,0,0, - 224,0,0,127,255,254,63,255,254,24,0,0,12,0,0,6, - 0,0,12,19,38,14,1,0,6,0,15,0,31,128,57,192, - 121,224,217,176,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,23,12, - 36,25,1,0,0,0,192,0,0,96,0,0,48,255,255,248, - 255,255,252,0,0,14,0,0,14,255,255,252,255,255,248,0, - 0,48,0,0,96,0,0,192,12,19,38,14,1,0,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,217,176,121,224,57,192,31,128, - 15,0,6,0,10,18,36,12,1,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 97,128,97,128,51,0,51,0,30,0,30,0,12,0,7,22, - 22,8,0,251,6,6,12,12,24,24,48,48,96,96,192,192, - 96,96,48,48,24,24,12,12,6,6,16,17,34,18,1,0, - 7,224,30,120,56,28,96,6,103,230,198,51,198,51,198,51, - 199,227,198,99,198,51,198,51,102,50,96,6,56,28,30,120, - 7,224,16,17,34,18,1,0,7,224,30,120,56,28,96,6, - 99,198,198,99,204,35,204,3,200,3,200,3,204,3,204,35, - 102,102,99,198,56,28,30,120,7,224,18,10,30,20,1,7, - 254,192,192,24,192,192,24,225,192,24,225,192,24,243,192,24, - 210,192,24,222,192,24,204,192,24,204,192,24,204,192,14,20, - 40,18,2,254,255,248,224,24,112,8,56,0,28,0,14,0, - 7,0,3,128,1,192,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,4,192,12,255,252,255,252,9,24,48,10, - 1,251,1,128,3,0,6,0,12,0,24,0,24,0,48,0, - 48,0,96,0,96,0,96,0,96,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,2,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 9,24,48,10,1,251,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,96,0,96,0,48,0,48,0,24,0,24,0,12,0, - 6,0,3,0,1,128,7,24,24,10,1,251,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,2,24,24,10,1,251,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,7,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,254, - 7,24,24,12,5,251,30,48,96,96,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,24, - 24,12,2,251,24,24,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,24,24,24,7,24,24,12, - 5,251,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,96,96,48,30,2,24,24,12,5,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,255,7,22,22,8,1,251,192, - 192,96,96,48,48,24,24,12,12,6,6,12,12,24,24,48, - 48,96,96,192,192,8,24,24,8,0,251,7,15,27,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 216,240,224,8,24,24,17,8,251,14,27,51,32,96,64,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,2,24,24,17,8,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,8, - 24,24,17,2,251,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,2,6,204,216,112,9,24,48, - 10,0,251,192,0,96,0,48,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,3,0,3,0,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,2,24,24,10,7,251,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,9,24,48,10,0,251,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,3, - 0,3,0,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,48,0,96,0,192,0,7,24,24,10,2,251,254,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,2,24,24,10,7,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,7,24,24,10,2,251,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 254,7,24,24,12,0,251,240,24,12,12,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5, - 24,24,12,5,251,192,192,192,192,192,192,192,192,64,96,48, - 24,48,96,64,192,192,192,192,192,192,192,192,192,7,24,24, - 12,0,251,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,12,12,24,240,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=20 h=24 x=13 y=18 dx=22 dy= 0 ascent=19 len=51 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18r[3303] U8G_FONT_SECTION("u8g_font_symb18r") = { - 0,27,24,255,251,17,3,215,8,151,32,127,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=34 x=15 y=26 dx=34 dy= 0 ascent=27 len=108 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-5 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24[10727] U8G_FONT_SECTION("u8g_font_symb24") = { - 0,40,34,251,249,23,5,133,13,247,32,255,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,20,23,69,20,0,0,240,1, - 192,124,7,224,15,12,112,7,12,240,3,152,224,1,208,224, - 1,208,0,1,240,0,1,240,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,1,240,0, - 7,252,0,6,9,9,8,1,16,24,60,60,120,112,96,224, - 192,128,16,21,42,18,1,0,0,7,0,31,0,124,1,240, - 7,192,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,120,0,30,0,7,0,1,0,0,0,0,255,255, - 255,255,15,23,46,6,251,0,0,2,0,6,0,12,0,12, - 0,24,0,48,0,48,0,96,0,192,0,192,1,128,3,0, - 3,0,6,0,12,0,12,0,24,0,48,0,48,0,96,0, - 192,0,192,0,128,0,21,10,30,23,1,4,28,3,192,127, - 15,224,99,158,48,193,248,24,192,240,24,192,240,24,192,248, - 24,99,156,48,127,15,240,28,3,192,16,29,58,16,0,250, - 0,30,0,51,0,103,0,98,0,224,0,224,0,192,0,192, - 0,192,15,252,1,192,1,192,1,192,1,192,1,128,1,128, - 1,128,3,128,3,128,3,128,3,0,3,0,3,0,3,0, - 2,0,102,0,230,0,236,0,120,0,18,18,54,24,3,0, - 1,224,0,3,240,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,240,0,1,224,0,124,207,128,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,252,207,192,120,199,128, - 0,192,0,1,224,0,14,18,36,24,5,0,3,0,7,128, - 7,192,15,192,31,224,63,240,127,248,127,248,255,252,255,252, - 127,248,127,248,63,240,31,224,15,192,7,192,7,128,3,0, - 16,18,36,24,4,0,124,62,254,127,254,127,255,255,255,255, - 255,255,255,255,127,254,127,254,63,252,63,252,31,248,15,240, - 15,240,7,224,3,192,1,128,1,128,16,18,36,24,4,0, - 1,128,1,192,3,192,7,224,7,240,15,240,31,248,63,252, - 63,252,127,254,255,255,255,255,255,255,253,191,249,159,249,159, - 113,142,3,192,32,16,64,34,1,0,1,128,1,128,3,0, - 0,192,7,0,0,224,14,0,0,112,28,0,0,56,56,0, - 0,28,112,0,0,14,255,255,255,255,255,255,255,255,112,0, - 0,14,56,0,0,28,28,0,0,56,14,0,0,112,7,0, - 0,224,3,0,0,192,1,128,1,128,29,16,64,32,1,0, - 1,128,0,0,3,0,0,0,6,0,0,0,14,0,0,0, - 28,0,0,0,56,0,0,0,112,0,0,0,255,255,255,248, - 255,255,255,248,112,0,0,0,56,0,0,0,28,0,0,0, - 14,0,0,0,6,0,0,0,3,0,0,0,1,128,0,0, - 16,27,54,20,2,0,1,128,3,192,7,224,15,240,29,184, - 57,156,113,142,225,135,193,131,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,29,16,64,32, - 2,0,0,0,12,0,0,0,14,0,0,0,7,0,0,0, - 3,128,0,0,1,192,0,0,0,224,0,0,0,112,255,255, - 255,248,255,255,255,248,0,0,0,112,0,0,0,224,0,0, - 1,192,0,0,3,128,0,0,7,0,0,0,14,0,0,0, - 12,0,16,27,54,20,2,0,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,193,131,225,135, - 113,142,57,156,29,184,15,240,7,224,3,192,1,128,9,10, - 20,13,2,13,28,0,99,0,65,0,128,128,128,128,128,128, - 128,128,65,0,99,0,28,0,16,22,44,18,1,0,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,255,255,255,255,12,9,18,13,1,15, - 28,112,28,112,60,240,56,224,113,192,113,192,227,128,195,0, - 130,0,16,21,42,18,1,0,224,0,248,0,62,0,15,128, - 1,224,0,120,0,30,0,7,0,7,0,30,0,120,1,224, - 7,128,30,0,120,0,224,0,128,0,0,0,0,0,255,255, - 255,255,16,16,32,18,1,1,192,3,224,7,112,14,56,28, - 28,56,14,112,7,224,3,192,3,192,7,224,14,112,28,56, - 56,28,112,14,224,7,192,3,19,10,30,23,1,4,28,3, - 192,63,15,224,99,156,0,193,248,0,192,240,0,192,240,0, - 193,248,0,99,156,0,127,15,224,28,3,192,14,27,54,16, - 1,0,30,0,63,128,32,224,0,112,0,48,0,24,0,24, - 0,24,0,28,0,28,0,28,15,28,31,252,56,124,120,60, - 112,60,240,56,224,56,224,56,224,56,224,112,224,112,96,96, - 112,224,57,192,31,128,15,0,11,12,24,15,2,4,14,0, - 63,128,127,192,127,192,255,224,255,224,255,224,255,224,127,192, - 127,192,63,128,14,0,16,13,26,18,1,2,1,128,3,192, - 3,192,1,128,0,0,255,255,255,255,0,0,0,0,1,128, - 3,192,3,192,1,128,17,19,57,18,1,255,0,12,0,0, - 24,0,0,24,0,0,48,0,0,48,0,255,255,128,255,255, - 128,0,192,0,0,192,0,1,128,0,1,128,0,3,0,0, - 255,255,128,255,255,128,6,0,0,12,0,0,12,0,0,24, - 0,0,24,0,0,17,12,36,18,0,3,255,255,128,255,255, - 128,0,0,0,0,0,0,0,0,0,255,255,128,255,255,128, - 0,0,0,0,0,0,0,0,0,255,255,128,255,255,128,16, - 9,18,18,1,4,28,0,127,135,225,254,64,56,0,0,28, - 0,127,135,225,254,192,56,26,4,16,33,3,0,96,12,1, - 128,240,30,3,192,240,30,3,192,96,12,1,128,2,34,34, - 20,9,249,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,32,2,8,32,0,7,255,255,255,255,255, - 255,255,255,18,21,63,21,1,0,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,16,0,192,112,0,192,255,255,192,255, - 255,192,112,0,0,16,0,0,16,22,44,27,5,0,0,32, - 96,96,240,126,240,127,248,127,124,63,60,15,62,12,31,24, - 31,152,55,240,115,240,97,240,225,240,240,248,240,124,120,62, - 124,30,124,31,60,15,124,7,252,6,18,27,81,22,1,254, - 7,240,0,31,254,0,63,255,128,56,63,128,96,7,0,96, - 7,0,64,6,0,64,12,0,64,12,0,96,28,0,48,28, - 0,28,14,0,14,14,0,0,15,0,0,7,0,0,7,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,192,60, - 1,128,255,1,128,159,195,0,7,254,0,3,248,0,0,240, - 0,23,24,72,26,1,0,15,128,192,63,225,240,97,247,248, - 192,252,124,128,120,62,128,120,28,128,56,56,192,56,112,224, - 56,192,120,57,192,62,59,192,14,57,224,6,56,224,6,56, - 224,0,56,240,0,56,240,0,56,112,0,112,112,0,112,112, - 0,96,120,30,192,122,63,128,62,47,128,60,6,0,16,23, - 26,78,32,5,249,0,192,0,1,192,0,3,0,112,6,3, - 252,6,14,30,12,24,30,28,48,14,24,96,14,56,192,30, - 57,128,30,59,0,30,62,0,28,62,48,60,60,120,56,30, - 112,120,62,64,240,47,65,224,111,99,192,71,63,0,199,0, - 0,135,0,0,131,0,0,131,0,0,199,0,0,102,0,0, - 60,0,0,22,23,69,25,1,0,0,252,0,3,255,0,15, - 3,192,28,0,224,56,0,112,50,1,48,103,3,152,99,135, - 24,193,134,8,192,204,12,192,120,12,192,48,12,192,120,12, - 192,204,12,193,134,12,99,135,24,103,3,152,50,1,48,56, - 0,112,28,0,224,15,3,192,3,255,0,0,252,0,22,23, - 69,25,1,0,0,252,0,3,255,0,15,3,192,28,48,224, - 24,48,96,48,48,48,96,48,24,96,48,24,96,48,24,192, - 48,12,192,48,12,223,255,236,223,255,236,192,48,12,192,48, - 12,96,48,24,96,48,24,48,48,48,56,48,112,28,48,224, - 15,3,192,3,255,0,0,252,0,24,24,72,27,1,0,0, - 126,2,3,255,198,7,129,238,14,0,124,24,0,56,48,0, - 124,112,0,238,96,1,198,96,3,134,192,7,3,192,14,3, - 192,28,3,192,56,3,192,112,3,192,224,3,97,192,6,99, - 128,6,119,0,14,62,0,12,28,0,24,62,0,112,119,129, - 224,227,255,192,192,126,0,22,17,51,25,1,0,0,252,0, - 3,255,0,15,3,192,28,0,224,56,0,112,48,0,48,96, - 0,24,96,0,24,192,0,12,192,0,12,192,0,12,192,0, - 12,192,0,12,192,0,12,192,0,12,192,0,12,192,0,12, - 22,17,51,25,1,0,192,0,12,192,0,12,192,0,12,192, - 0,12,192,0,12,192,0,12,192,0,12,192,0,12,192,0, - 12,96,0,24,96,0,24,48,0,48,56,0,112,28,0,224, - 15,3,192,3,255,0,0,252,0,21,16,48,23,1,0,255, - 255,0,255,255,192,0,1,224,0,0,112,0,0,48,0,0, - 56,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,48,0,0,112,0,0,224,255,255,192,255,255,0,21, - 20,60,23,1,252,255,255,0,255,255,192,0,0,224,0,0, - 112,0,0,48,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,48,0,0,112,0,0,224,255, - 255,192,255,255,0,0,0,0,0,0,0,255,255,240,255,255, - 240,21,20,60,23,1,254,0,0,96,0,0,192,7,255,248, - 15,255,248,56,1,128,112,3,0,96,3,0,224,6,0,192, - 6,0,192,12,0,192,12,0,192,24,0,224,24,0,96,48, - 0,112,48,0,60,96,0,31,255,248,7,255,248,0,192,0, - 1,128,0,21,16,48,23,1,0,7,255,248,31,255,248,56, - 0,0,112,0,0,96,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,224,0,0,96,0,0,112,0,0, - 60,0,0,31,255,248,7,255,248,21,20,60,23,1,252,7, - 255,248,31,255,248,56,0,0,112,0,0,96,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 96,0,0,112,0,0,56,0,0,31,255,248,7,255,248,0, - 0,0,0,0,0,127,255,248,127,255,248,15,16,32,23,1, - 0,7,254,31,254,56,0,112,0,96,0,192,0,192,0,255, - 254,255,254,192,0,192,0,96,0,112,0,56,0,31,254,7, - 254,15,20,40,23,1,254,0,24,0,24,7,254,31,254,56, - 96,112,96,96,192,64,192,193,128,255,254,255,254,195,0,70, - 0,110,0,124,0,60,0,31,254,55,254,48,0,32,0,22, - 22,66,25,1,0,0,0,12,0,0,28,0,0,56,0,0, - 112,0,0,224,0,1,192,0,3,128,0,7,0,0,14,0, - 0,28,0,0,56,0,0,112,0,0,96,0,0,192,0,1, - 128,0,3,0,0,7,0,0,14,0,0,28,0,0,56,0, - 0,127,255,248,255,255,248,20,24,72,23,1,0,255,255,240, - 127,255,240,120,0,48,120,0,32,60,0,96,60,0,64,28, - 0,192,30,0,192,30,1,128,15,1,128,15,1,0,7,3, - 0,7,130,0,7,134,0,3,196,0,3,204,0,3,204,0, - 1,248,0,1,248,0,0,240,0,0,240,0,0,224,0,0, - 96,0,0,64,0,21,22,66,25,2,0,1,252,0,7,7, - 0,12,1,192,24,0,192,51,248,96,97,142,48,65,134,16, - 193,134,24,193,134,24,129,140,8,129,248,8,129,184,8,129, - 152,8,193,156,24,193,142,24,65,135,16,103,195,176,48,0, - 96,24,0,192,28,1,192,7,7,0,1,252,0,21,23,69, - 25,2,0,1,252,0,7,207,0,14,1,128,24,0,192,48, - 0,96,48,0,48,96,125,48,65,199,16,195,3,24,195,1, - 24,134,0,8,134,0,8,134,0,8,134,0,8,134,0,8, - 199,0,24,67,3,24,97,199,16,32,252,48,48,0,96,28, - 0,192,7,135,128,1,254,0,27,13,52,29,1,10,255,220, - 1,224,204,206,3,128,140,78,3,128,12,15,7,128,12,11, - 5,128,12,11,141,128,12,9,141,128,12,9,201,128,12,8, - 217,128,12,8,241,128,12,8,113,128,12,8,97,128,62,30, - 39,224,25,27,108,27,1,0,255,255,255,128,63,255,254,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,63,0,126,0, - 255,193,255,128,17,27,81,18,0,0,0,0,128,0,0,128, - 0,0,128,0,0,128,0,1,128,0,1,0,0,1,0,0, - 3,0,0,2,0,8,2,0,56,2,0,236,6,0,12,4, - 0,6,4,0,6,4,0,3,4,0,3,12,0,1,140,0, - 1,136,0,0,200,0,0,200,0,0,104,0,0,120,0,0, - 56,0,0,48,0,0,16,0,0,16,0,3,3,3,8,2, - 7,224,224,224,21,10,30,23,1,0,255,255,248,255,255,248, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,16,15,30,20,2,0,1,128, - 1,128,3,192,3,192,6,96,14,112,12,48,28,56,24,24, - 48,12,48,12,96,6,224,7,192,3,128,1,16,15,30,20, - 2,0,128,1,192,3,224,7,96,6,48,12,48,12,24,24, - 28,56,12,48,6,96,6,96,3,192,3,192,1,128,1,128, - 32,18,72,34,1,0,0,128,1,0,1,128,1,128,3,0, - 0,192,6,0,0,96,15,255,255,240,31,255,255,248,56,0, - 0,28,112,0,0,14,224,0,0,7,224,0,0,7,112,0, - 0,14,56,0,0,28,31,255,255,248,15,255,255,240,6,0, - 0,96,3,0,0,192,1,128,1,128,0,128,1,0,29,17, - 68,32,1,0,0,128,0,0,1,128,0,0,3,0,0,0, - 6,0,0,0,15,255,255,248,31,255,255,248,56,0,0,0, - 112,0,0,0,224,0,0,0,112,0,0,0,56,0,0,0, - 31,255,255,248,15,255,255,248,6,0,0,0,3,0,0,0, - 1,128,0,0,0,128,0,0,17,27,81,20,1,0,0,128, - 0,1,192,0,3,224,0,7,112,0,14,56,0,28,28,0, - 60,30,0,124,31,0,236,27,128,12,24,0,12,24,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,29, - 17,68,32,2,0,0,0,8,0,0,0,12,0,0,0,6, - 0,0,0,3,0,255,255,255,128,255,255,255,192,0,0,0, - 224,0,0,0,112,0,0,0,56,0,0,0,112,0,0,0, - 224,255,255,255,192,255,255,255,128,0,0,3,0,0,0,6, - 0,0,0,12,0,0,0,8,0,17,27,81,20,1,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,12, - 24,0,12,24,0,236,27,128,124,31,0,60,30,0,28,28, - 0,14,56,0,7,112,0,3,224,0,1,192,0,0,128,0, - 14,25,50,16,1,0,3,0,7,128,7,128,12,192,12,192, - 24,96,24,96,48,48,48,48,96,24,96,24,192,12,192,12, - 224,28,96,24,96,24,48,48,48,48,24,96,24,96,12,192, - 12,192,7,128,7,128,3,0,9,30,60,11,1,250,1,128, - 3,0,3,0,6,0,6,0,14,0,12,0,28,0,24,0, - 56,0,48,0,48,0,96,0,96,0,192,0,192,0,96,0, - 96,0,48,0,48,0,56,0,24,0,28,0,12,0,14,0, - 6,0,6,0,3,0,3,0,1,128,21,22,66,26,2,0, - 1,252,0,7,15,0,12,1,128,24,0,192,48,0,96,99, - 254,48,67,6,16,195,3,24,195,3,24,195,3,24,131,6, - 8,131,252,8,131,6,8,195,3,24,195,3,24,67,3,16, - 99,3,48,32,0,32,48,0,96,28,1,192,7,15,0,3, - 252,0,21,23,69,26,2,0,1,252,0,7,223,0,14,3, - 128,24,0,192,48,0,96,32,0,32,96,252,48,65,206,16, - 195,6,24,195,3,24,194,0,8,134,0,8,134,0,8,134, - 0,8,134,3,24,195,3,24,67,6,24,97,206,48,32,248, - 48,48,0,96,28,0,192,15,135,128,3,254,0,22,13,39, - 25,1,10,255,56,28,24,56,28,24,56,28,24,60,60,24, - 60,60,24,52,44,24,54,108,24,54,108,24,50,76,24,51, - 204,24,51,204,24,49,140,24,49,140,21,28,84,23,1,255, - 255,255,224,120,3,224,124,0,96,60,0,96,30,0,32,15, - 0,0,15,128,0,7,128,0,3,192,0,3,224,0,1,240, - 0,0,240,0,0,120,0,0,120,0,0,56,0,0,48,0, - 0,96,0,0,192,0,1,128,0,3,128,0,3,0,0,6, - 0,8,12,0,24,24,0,24,48,0,48,127,255,240,127,255, - 240,255,255,240,13,34,68,13,1,249,0,24,0,120,0,224, - 1,192,3,128,3,0,6,0,12,0,12,0,24,0,24,0, - 56,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0, - 96,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,2,34, - 34,13,1,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,34,68,13,1,249,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,0,96,0,96,0, - 96,0,48,0,48,0,48,0,56,0,24,0,24,0,12,0, - 12,0,6,0,3,0,3,128,1,192,0,224,0,120,0,24, - 11,34,68,13,0,249,255,224,255,224,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,2,34,34,13,0,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,34,68,13,0,249,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,255,224,255,224,8,34,34,16, - 6,249,7,31,56,112,96,96,224,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,9,34,68,16,255,249,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 3,0,3,0,6,0,12,0,56,0,224,0,120,0,12,0, - 6,0,3,0,3,0,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,8,34, - 34,16,6,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 96,96,112,56,31,7,2,34,34,16,6,249,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,9, - 30,60,11,1,250,192,0,96,0,96,0,48,0,48,0,56, - 0,24,0,28,0,12,0,14,0,6,0,6,0,3,0,3, - 0,1,128,1,128,3,0,3,0,6,0,6,0,14,0,12, - 0,28,0,24,0,56,0,48,0,48,0,96,0,96,0,192, - 0,9,33,66,9,0,250,3,0,7,128,7,128,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,248,0,248,0,112,0,12,34,68,23,10,249,1, - 224,3,240,6,112,12,240,8,96,24,0,24,0,48,0,48, - 0,48,0,112,0,96,0,96,0,96,0,96,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,3,34,34,22,10,249,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,12,34,68,22,1, - 249,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,96,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,1,128,1,128,97,0,243,0,230, - 0,252,0,120,0,13,34,68,13,0,249,192,0,240,0,56, - 0,24,0,12,0,6,0,3,0,1,0,1,128,0,192,0, - 192,0,192,0,96,0,96,0,96,0,48,0,48,0,48,0, - 48,0,48,0,16,0,16,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,2, - 34,34,13,11,249,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,13,34,68,13,0,249,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,16,0,16,0,48,0,48,0,48,0, - 48,0,48,0,96,0,96,0,96,0,192,0,192,0,192,1, - 128,1,0,3,0,6,0,12,0,28,0,56,0,240,0,192, - 0,11,34,68,13,1,249,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,2,34,34,13,10, - 249,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,11,34,68,13,1,249,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,255,224,255,224,8,34,34, - 16,0,249,224,120,28,14,6,6,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,9,34,68,16,6,249,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,0,48,0,24,0,14,0,3,128,14,0,24, - 0,48,0,96,0,96,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,8, - 33,33,16,0,250,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 6,6,14,28,120,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=27 h=33 x=15 y=26 dx=29 dy= 0 ascent=27 len=92 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24r[5335] U8G_FONT_SECTION("u8g_font_symb24r") = { - 0,40,34,251,249,23,5,133,13,247,32,127,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=11 x= 1 y= 6 dx=11 dy= 0 ascent=10 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08[2551] U8G_FONT_SECTION("u8g_font_timB08") = { - 0,13,18,254,251,7,1,164,3,77,32,255,253,10,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,2,0,1,2,7,7,4,1, - 253,192,192,0,192,192,192,192,5,7,7,6,0,255,16,120, - 208,208,224,120,32,5,7,7,6,0,0,56,104,96,248,96, - 232,216,5,5,5,6,0,1,136,112,80,112,136,5,7,7, - 6,0,0,216,216,112,32,112,32,112,1,7,7,3,1,0, - 128,128,128,0,128,128,128,4,9,9,5,0,254,96,176,192, - 160,208,112,48,208,96,3,1,1,4,0,5,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,6,6,4,0,1, - 192,32,224,160,0,224,5,5,5,6,0,0,40,80,160,80, - 40,5,3,3,7,1,1,248,8,8,3,1,1,3,0,2, - 224,7,7,7,9,1,0,56,68,186,178,170,68,56,3,1, - 1,4,0,5,224,4,3,3,4,0,4,96,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 3,96,160,64,224,3,4,4,3,0,3,224,64,32,192,2, - 2,2,4,1,5,64,128,5,8,8,5,0,253,216,208,208, - 208,240,128,192,192,6,10,10,6,0,253,124,232,232,232,104, - 40,40,40,40,40,1,2,2,3,1,2,128,128,2,3,3, - 3,1,253,128,64,192,3,4,4,3,0,3,64,192,64,224, - 3,6,6,4,0,1,64,160,160,64,0,224,5,5,5,6, - 0,0,160,80,40,80,160,7,7,7,7,0,0,68,200,72, - 244,44,62,68,7,7,7,7,0,0,68,200,72,246,42,36, - 78,7,7,7,7,0,0,228,72,40,212,44,62,68,4,7, - 7,6,1,253,96,96,0,64,208,208,96,8,10,10,7,255, - 0,32,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,8,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,16,40,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,52,88,0,16,24,56,44,124,78,239,8,9,9,7,255, - 0,36,0,16,24,56,44,124,78,239,8,10,10,7,255,0, - 24,36,24,16,24,56,44,124,78,239,9,7,14,9,255,0, - 63,128,28,128,44,0,47,0,124,0,76,128,239,128,6,10, - 10,7,0,253,124,204,192,192,192,236,120,32,16,48,6,10, - 10,7,0,0,32,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,8,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,48,72,0,252,100,96,120,96,100,252,6,9, - 9,7,0,0,40,0,252,100,96,120,96,100,252,4,10,10, - 5,0,0,64,32,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,32,64,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,96,144,0,240,96,96,96,96,96,240,4,9,9, - 5,0,0,144,0,240,96,96,96,96,96,240,7,7,7,8, - 0,0,252,102,102,246,102,102,252,7,10,10,8,0,0,52, - 88,0,238,100,116,92,92,76,228,6,10,10,7,0,0,32, - 16,0,120,204,204,204,204,204,120,6,10,10,7,0,0,16, - 32,0,120,204,204,204,204,204,120,6,10,10,7,0,0,48, - 72,0,120,204,204,204,204,204,120,6,10,10,7,0,0,52, - 88,0,120,204,204,204,204,204,120,6,9,9,7,0,0,72, - 0,120,204,204,204,204,204,120,6,5,5,6,0,0,204,120, - 48,120,204,6,9,9,8,1,255,4,120,204,220,236,236,204, - 120,128,7,10,10,7,0,0,32,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,8,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,24,36,0,246,100,100,100,100, - 100,56,7,9,9,7,0,0,36,0,246,100,100,100,100,100, - 56,8,10,10,8,0,0,4,8,0,247,98,52,56,24,24, - 60,6,7,7,6,0,0,224,120,108,108,120,96,240,5,7, - 7,6,0,0,112,200,200,208,200,200,216,5,8,8,5,0, - 0,64,32,0,96,176,112,176,248,5,8,8,5,0,0,16, - 32,0,96,176,112,176,248,5,8,8,5,0,0,32,80,0, - 96,176,112,176,248,5,8,8,5,0,0,104,176,0,96,176, - 112,176,248,5,7,7,5,0,0,80,0,96,176,112,176,248, - 5,8,8,5,0,0,32,80,32,96,176,112,176,248,7,5, - 5,8,0,0,110,186,126,184,238,4,8,8,5,0,253,112, - 208,192,208,112,64,32,96,4,8,8,5,0,0,64,32,0, - 112,208,240,192,112,4,8,8,5,0,0,16,32,0,112,208, - 240,192,112,5,8,8,5,0,0,32,80,136,112,208,240,192, - 112,4,7,7,5,0,0,80,0,112,208,240,192,112,2,8, - 8,3,0,0,128,64,0,192,192,192,192,192,2,8,8,3, - 0,0,64,128,0,192,192,192,192,192,3,8,8,3,0,0, - 64,160,0,192,192,192,192,192,3,7,7,3,0,0,160,0, - 192,192,192,192,192,5,9,9,6,0,0,128,112,96,176,24, - 120,216,216,112,6,8,8,6,0,0,104,176,0,176,216,216, - 216,220,5,8,8,6,0,0,64,32,0,112,216,216,216,112, - 5,8,8,6,0,0,16,32,0,112,216,216,216,112,5,8, - 8,6,0,0,32,80,0,112,216,216,216,112,5,8,8,6, - 0,0,104,176,0,112,216,216,216,112,5,7,7,6,0,0, - 80,0,112,216,216,216,112,5,5,5,6,0,0,32,0,248, - 0,32,5,7,7,6,0,255,16,112,216,216,216,112,64,5, - 8,8,5,0,0,64,32,0,216,208,208,208,112,5,8,8, - 5,0,0,16,32,0,216,208,208,208,112,5,8,8,5,0, - 0,32,80,0,216,208,208,208,112,5,7,7,5,0,0,80, - 0,216,208,208,208,112,5,11,11,5,0,253,16,32,0,216, - 216,112,112,32,32,192,192,5,10,10,5,255,253,224,96,112, - 104,104,104,112,96,96,224,5,10,10,5,0,253,80,0,216, - 216,112,112,32,32,192,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=10 x= 1 y= 6 dx=11 dy= 0 ascent= 8 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08r[1221] U8G_FONT_SECTION("u8g_font_timB08r") = { - 0,13,18,254,251,7,1,164,3,77,32,127,253,8,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=14 x= 1 y= 8 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10[3539] U8G_FONT_SECTION("u8g_font_timB10") = { - 0,17,24,254,250,10,2,6,4,148,32,255,253,14,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,3,0,1,2,10,10,4,1,253,192,192,0,192, - 192,192,192,192,192,192,6,11,11,7,0,254,8,8,120,212, - 208,208,240,228,120,32,32,7,10,10,8,0,0,60,118,102, - 96,48,248,48,48,246,222,7,6,6,8,0,2,56,238,68, - 68,238,56,8,10,10,8,0,0,247,98,118,52,60,24,60, - 24,24,60,1,12,12,3,1,254,128,128,128,128,128,0,0, - 128,128,128,128,128,5,12,12,7,1,254,112,216,200,96,240, - 152,200,120,48,152,216,112,3,2,2,5,1,8,160,160,10, - 10,20,12,1,0,30,0,97,128,78,128,146,64,144,64,144, - 64,146,64,76,128,97,128,30,0,4,7,7,5,0,3,96, - 16,112,144,112,0,240,7,5,5,9,1,1,54,108,216,108, - 54,7,4,4,9,1,1,254,2,2,2,3,1,1,4,0, - 3,224,10,10,20,12,1,0,30,0,97,128,92,128,146,64, - 146,64,156,64,148,64,82,128,97,128,30,0,4,1,1,5, - 0,8,240,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,4,6,6,4, - 0,4,96,176,48,96,192,240,4,6,6,4,0,4,96,176, - 96,48,176,96,3,3,3,5,1,8,32,96,128,8,10,10, - 7,255,253,238,102,102,102,102,102,123,64,96,96,7,13,13, - 8,0,253,126,244,244,244,244,116,20,20,20,20,20,20,20, - 2,2,2,4,0,4,192,192,3,3,3,5,1,253,64,32, - 224,4,6,6,4,0,4,32,224,96,96,96,240,4,7,7, - 5,0,3,96,144,144,144,96,0,240,7,5,5,9,1,1, - 216,108,54,108,216,10,10,20,10,0,0,33,0,226,0,98, - 0,100,0,100,128,249,128,11,128,22,128,23,192,33,128,10, - 10,20,10,0,0,33,0,226,0,98,0,100,0,101,128,250, - 192,8,192,17,128,19,0,35,192,10,10,20,10,0,0,97, - 0,178,0,98,0,52,0,180,128,105,128,11,128,22,128,23, - 192,33,128,5,10,10,7,1,253,48,48,0,48,48,96,192, - 216,216,112,10,14,28,10,0,0,16,0,24,0,4,0,0, - 0,12,0,12,0,30,0,22,0,51,0,35,0,63,0,97, - 128,65,128,227,192,10,14,28,10,0,0,2,0,6,0,8, - 0,0,0,12,0,12,0,30,0,22,0,51,0,35,0,63, - 0,97,128,65,128,227,192,10,14,28,10,0,0,8,0,28, - 0,34,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,26, - 0,44,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,18, - 0,18,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,14,28,10,0,0,12, - 0,18,0,12,0,0,0,12,0,12,0,30,0,22,0,51, - 0,35,0,63,0,97,128,65,128,227,192,13,10,20,14,0, - 0,31,248,15,24,11,8,27,32,19,224,63,32,35,40,99, - 8,67,24,231,248,8,13,13,10,1,253,61,99,193,193,192, - 192,192,193,99,62,16,8,56,8,14,14,9,0,0,32,48, - 8,0,255,99,97,100,124,100,101,97,99,255,8,14,14,9, - 0,0,4,12,16,0,255,99,97,100,124,100,101,97,99,255, - 8,14,14,9,0,0,8,28,34,0,255,99,97,100,124,100, - 101,97,99,255,8,13,13,9,0,0,36,36,0,255,99,97, - 100,124,100,101,97,99,255,4,14,14,5,0,0,128,192,32, - 0,240,96,96,96,96,96,96,96,96,240,4,14,14,5,0, - 0,16,48,64,0,240,96,96,96,96,96,96,96,96,240,5, - 14,14,5,0,0,32,112,136,0,240,96,96,96,96,96,96, - 96,96,240,4,13,13,5,0,0,144,144,0,240,96,96,96, - 96,96,96,96,96,240,9,10,20,11,1,0,254,0,99,0, - 97,128,97,128,241,128,97,128,97,128,97,128,99,0,254,0, - 10,13,26,10,0,0,26,0,44,0,0,0,225,192,112,128, - 112,128,88,128,76,128,76,128,70,128,67,128,67,128,225,128, - 9,14,28,11,1,0,16,0,24,0,4,0,0,0,62,0, - 99,0,193,128,193,128,193,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,11,1,0,4,0,12,0,16,0,0,0, - 62,0,99,0,193,128,193,128,193,128,193,128,193,128,193,128, - 99,0,62,0,9,14,28,11,1,0,8,0,28,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,26,0,44,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,34,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,8,7,7,8,0,0,195,102,60,24, - 60,102,195,9,12,24,11,1,255,0,128,61,0,99,0,195, - 128,197,128,201,128,201,128,209,128,225,128,99,0,94,0,128, - 0,9,14,28,10,0,0,16,0,24,0,4,0,0,0,243, - 128,97,0,97,0,97,0,97,0,97,0,97,0,97,0,115, - 0,62,0,9,14,28,10,0,0,4,0,12,0,16,0,0, - 0,243,128,97,0,97,0,97,0,97,0,97,0,97,0,97, - 0,115,0,62,0,9,14,28,10,0,0,8,0,28,0,34, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,9,13,26,10,0,0,18,0,18, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,10,14,28,10,0,0,1,0,3, - 0,4,0,0,0,249,192,112,128,49,0,57,0,26,0,30, - 0,12,0,12,0,12,0,30,0,8,10,10,9,0,0,240, - 96,126,103,99,99,99,126,96,240,7,10,10,8,0,0,56, - 108,100,108,120,108,102,102,102,236,7,11,11,7,0,0,32, - 48,8,0,120,204,12,124,204,204,118,7,11,11,7,0,0, - 8,24,32,0,120,204,12,124,204,204,118,7,11,11,7,0, - 0,16,56,68,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,52,88,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,40,40,0,120,204,12,124,204,204,118,7,11,11,7, - 0,0,48,72,48,0,120,204,12,124,204,204,118,10,7,14, - 11,0,0,123,128,204,192,204,192,63,192,204,0,204,192,119, - 128,6,10,10,7,0,253,56,76,204,192,192,228,120,32,16, - 112,6,11,11,7,0,0,64,96,16,0,56,76,204,252,192, - 228,120,6,11,11,7,0,0,8,24,32,0,56,76,204,252, - 192,228,120,6,11,11,7,0,0,16,56,68,0,56,76,204, - 252,192,228,120,6,10,10,7,0,0,80,80,0,56,76,204, - 252,192,228,120,4,11,11,4,0,0,128,192,32,0,224,96, - 96,96,96,96,240,4,11,11,4,0,0,32,96,128,0,224, - 96,96,96,96,96,240,5,11,11,4,0,0,32,112,136,0, - 224,96,96,96,96,96,240,4,10,10,4,0,0,160,160,0, - 224,96,96,96,96,96,240,6,10,10,7,0,0,204,112,152, - 120,204,204,204,204,204,120,8,10,10,8,0,0,52,88,0, - 236,118,102,102,102,102,231,6,11,11,7,0,0,32,48,8, - 0,120,204,204,204,204,204,120,6,11,11,7,0,0,8,24, - 32,0,120,204,204,204,204,204,120,6,11,11,7,0,0,32, - 112,136,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 104,176,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 80,80,0,120,204,204,204,204,204,120,6,7,7,8,0,0, - 48,48,0,252,0,48,48,6,9,9,7,0,255,4,120,204, - 220,236,236,204,120,128,8,11,11,7,255,0,32,48,8,0, - 238,102,102,102,102,102,59,8,11,11,7,255,0,4,12,16, - 0,238,102,102,102,102,102,59,8,11,11,7,255,0,16,56, - 68,0,238,102,102,102,102,102,59,8,10,10,7,255,0,40, - 40,0,238,102,102,102,102,102,59,8,14,14,7,255,253,2, - 6,8,0,247,98,50,52,28,28,8,8,56,48,7,13,13, - 8,0,253,224,96,96,108,118,102,102,102,102,124,96,96,240, - 8,13,13,7,255,253,34,34,0,247,98,50,52,28,28,8, - 8,56,48}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=13 x= 1 y= 8 dx=14 dy= 0 ascent=11 len=26 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10r[1632] U8G_FONT_SECTION("u8g_font_timB10r") = { - 0,17,24,254,250,10,2,6,4,148,32,127,253,11,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255 - }; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=16 x= 2 y= 9 dx=17 dy= 0 ascent=16 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12[3887] U8G_FONT_SECTION("u8g_font_timB12") = { - 0,19,27,254,249,11,2,42,5,41,32,255,252,16,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,2,252,192,192,0,0,64,64,64,192,192,192, - 192,192,6,12,12,8,1,254,4,4,56,76,204,208,208,224, - 100,56,64,64,8,11,11,8,0,0,28,38,38,48,48,124, - 48,16,113,158,110,6,7,7,8,1,1,180,120,204,132,204, - 120,180,8,11,11,8,0,0,227,98,50,52,28,126,24,126, - 24,24,126,1,15,15,4,1,253,128,128,128,128,128,128,0, - 0,0,128,128,128,128,128,128,6,15,15,8,1,252,56,76, - 76,96,48,120,156,204,228,120,56,24,200,200,112,5,2,2, - 6,0,9,216,216,12,11,22,12,255,0,15,0,48,192,71, - 32,72,160,152,16,152,16,152,16,72,160,71,32,48,192,15, - 0,5,7,7,5,0,4,96,144,112,176,216,0,248,7,7, - 7,8,0,0,18,54,108,216,108,54,18,7,6,6,9,1, - 1,254,254,2,2,2,2,4,2,2,5,0,3,240,240,12, - 11,22,12,0,0,15,0,48,192,78,32,73,32,137,16,142, - 16,138,16,73,32,93,32,48,192,15,0,5,1,1,6,0, - 9,248,4,5,5,7,1,6,96,144,144,144,96,7,9,9, - 9,1,0,16,16,254,254,16,16,0,254,254,4,7,7,5, - 0,4,96,240,176,32,64,240,240,4,7,7,5,0,4,96, - 176,48,96,48,176,96,3,3,3,6,1,9,96,64,128,8, - 11,11,9,0,253,238,102,102,102,102,102,111,118,64,96,96, - 7,15,15,9,1,252,62,116,244,244,244,244,116,52,20,20, - 20,20,20,20,20,2,2,2,4,1,4,192,192,5,4,4, - 6,0,252,32,48,136,112,4,7,7,5,1,4,96,224,96, - 96,96,96,240,4,7,7,6,1,4,96,144,144,144,96,0, - 240,7,7,7,8,0,0,144,216,108,54,108,216,144,11,11, - 22,12,0,0,96,128,225,0,97,0,98,0,100,64,100,192, - 249,192,10,192,19,224,32,192,32,192,10,11,22,12,0,0, - 97,0,225,0,98,0,98,0,100,0,107,128,254,192,16,128, - 17,0,35,192,39,192,11,11,22,12,0,0,96,128,177,0, - 49,0,98,0,52,64,180,192,105,192,10,192,19,224,32,192, - 32,192,6,11,11,8,1,253,24,24,0,16,32,64,192,192, - 204,204,112,11,15,30,12,0,0,48,0,24,0,4,0,0, - 0,4,0,14,0,14,0,27,0,19,0,51,0,33,128,127, - 128,64,192,192,192,225,224,11,15,30,12,0,0,1,128,3, - 0,4,0,0,0,4,0,14,0,14,0,27,0,19,0,51, - 0,33,128,127,128,64,192,192,192,225,224,11,15,30,12,0, - 0,4,0,14,0,17,0,0,0,4,0,14,0,14,0,27, - 0,19,0,51,0,33,128,127,128,64,192,192,192,225,224,11, - 14,28,12,0,0,29,0,46,0,0,0,4,0,14,0,14, - 0,27,0,19,0,51,0,33,128,127,128,64,192,192,192,225, - 224,11,14,28,12,0,0,27,0,27,0,0,0,4,0,14, - 0,14,0,27,0,19,0,51,0,33,128,127,128,64,192,192, - 192,225,224,11,16,32,12,0,0,6,0,9,0,9,0,6, - 0,0,0,4,0,14,0,14,0,27,0,19,0,51,0,33, - 128,127,128,64,192,192,192,225,224,14,11,22,16,1,0,15, - 248,7,24,11,8,11,0,19,32,31,224,35,32,35,0,67, - 4,67,12,231,252,9,15,30,11,1,252,30,128,99,128,65, - 128,192,128,192,0,192,0,192,0,192,0,96,128,115,0,62, - 0,8,0,12,0,34,0,28,0,8,15,15,10,1,0,96, - 48,8,0,255,99,97,96,98,126,98,96,97,99,255,8,15, - 15,10,1,0,6,12,16,0,255,99,97,96,98,126,98,96, - 97,99,255,8,15,15,10,1,0,8,28,34,0,255,99,97, - 96,98,126,98,96,97,99,255,8,14,14,10,1,0,102,102, - 0,255,99,97,96,98,126,98,96,97,99,255,5,15,15,6, - 0,0,192,96,16,0,120,48,48,48,48,48,48,48,48,48, - 120,4,15,15,6,1,0,48,96,128,0,240,96,96,96,96, - 96,96,96,96,96,240,5,15,15,6,0,0,32,112,136,0, - 120,48,48,48,48,48,48,48,48,48,120,6,14,14,6,0, - 0,204,204,0,120,48,48,48,48,48,48,48,48,48,120,9, - 11,22,11,1,0,252,0,102,0,99,0,97,128,97,128,249, - 128,97,128,97,128,99,0,102,0,252,0,10,14,28,12,1, - 0,29,0,46,0,0,0,241,192,112,128,88,128,88,128,76, - 128,70,128,71,128,67,128,65,128,65,128,224,128,10,15,30, - 12,1,0,48,0,24,0,4,0,0,0,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,30, - 0,10,15,30,12,1,0,3,0,6,0,8,0,0,0,30, - 0,97,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,128,30,0,10,15,30,12,1,0,4,0,14,0,17, - 0,0,0,30,0,97,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,128,30,0,10,14,28,12,1,0,29, - 0,46,0,0,0,30,0,97,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,128,30,0,10,14,28,12,1, - 0,51,0,51,0,0,0,30,0,97,128,64,128,192,192,192, - 192,192,192,192,192,192,192,64,128,97,128,30,0,7,8,8, - 9,1,0,130,198,108,56,56,108,198,130,10,13,26,13,1, - 255,0,64,30,128,97,128,65,128,194,192,194,192,196,192,200, - 192,200,192,80,128,97,128,62,0,64,0,10,15,30,12,1, - 0,48,0,24,0,4,0,0,0,241,192,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,96,128,33,0,30,0,10, - 15,30,12,1,0,3,0,6,0,8,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,33, - 0,30,0,10,15,30,12,1,0,4,0,14,0,17,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,33,0,30,0,10,14,28,12,1,0,51,0,51, - 0,0,0,241,192,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,96,128,33,0,30,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,248,224,112,64,56,128,24,128,29, - 0,15,0,6,0,6,0,6,0,6,0,15,0,8,11,11, - 10,1,0,240,96,126,103,99,99,103,126,96,96,240,8,11, - 11,9,0,0,24,38,102,102,108,98,99,99,99,98,236,8, - 12,12,8,0,0,48,16,8,0,56,204,204,28,108,204,205, - 118,8,12,12,8,0,0,24,16,32,0,56,204,204,28,108, - 204,205,118,8,12,12,8,0,0,16,56,68,0,56,204,204, - 28,108,204,205,118,8,11,11,8,0,0,52,88,0,56,204, - 204,28,108,204,205,118,8,11,11,8,0,0,108,108,0,56, - 204,204,28,108,204,205,118,8,13,13,8,0,0,16,40,40, - 16,0,56,204,204,28,108,204,205,118,10,8,16,12,1,0, - 51,128,206,192,204,192,31,192,108,0,204,0,214,64,99,128, - 6,12,12,7,0,252,56,108,204,192,192,192,100,56,32,48, - 136,112,6,12,12,7,0,0,48,16,8,0,56,108,204,252, - 192,192,100,56,6,12,12,7,0,0,24,16,32,0,56,108, - 204,252,192,192,100,56,6,12,12,7,0,0,16,56,68,0, - 56,108,204,252,192,192,100,56,6,11,11,7,0,0,108,108, - 0,56,108,204,252,192,192,100,56,4,12,12,5,0,0,192, - 64,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,48,32,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,5, - 11,11,5,255,0,216,216,0,112,48,48,48,48,48,48,120, - 7,11,11,8,0,0,108,48,216,60,108,198,198,198,198,108, - 56,8,11,11,9,0,0,52,88,0,236,126,102,102,102,102, - 102,247,7,12,12,8,0,0,48,16,8,0,56,108,198,198, - 198,198,108,56,7,12,12,8,0,0,24,16,32,0,56,108, - 198,198,198,198,108,56,7,12,12,8,0,0,16,56,68,0, - 56,108,198,198,198,198,108,56,7,11,11,8,0,0,52,88, - 0,56,108,198,198,198,198,108,56,7,11,11,8,0,0,108, - 108,0,56,108,198,198,198,198,108,56,8,8,8,9,0,0, - 24,24,0,255,255,0,24,24,7,10,10,8,0,255,2,60, - 108,206,214,214,230,108,120,128,8,12,12,9,0,0,48,16, - 8,0,238,102,102,102,102,102,111,54,8,12,12,9,0,0, - 12,8,16,0,238,102,102,102,102,102,111,54,8,12,12,9, - 0,0,16,56,68,0,238,102,102,102,102,102,111,54,8,11, - 11,9,0,0,108,108,0,238,102,102,102,102,102,111,54,8, - 16,16,8,0,252,12,8,16,0,247,98,98,52,52,28,24, - 24,16,16,224,192,8,15,15,9,0,252,224,96,96,108,118, - 99,99,99,99,114,108,96,96,96,240,8,15,15,8,0,252, - 108,108,0,247,98,98,52,52,28,24,24,16,16,224,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=15 x= 2 y= 9 dx=17 dy= 0 ascent=12 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12r[1834] U8G_FONT_SECTION("u8g_font_timB12r") = { - 0,19,27,254,249,11,2,42,5,41,32,127,252,12,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=11 dx=19 dy= 0 ascent=17 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14[4851] U8G_FONT_SECTION("u8g_font_timB14") = { - 0,22,28,254,249,13,2,178,6,78,32,255,252,17,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,1,3,13,13, - 6,1,252,224,224,224,0,64,64,224,224,224,224,224,224,64, - 8,13,13,9,0,254,1,3,62,119,239,236,216,216,240,115, - 62,96,64,14,13,26,9,0,0,31,0,59,0,59,0,56, - 0,56,0,56,0,254,0,56,4,56,0,48,0,240,128,191, - 128,239,0,8,8,8,9,0,2,219,255,102,195,195,102,255, - 219,9,13,26,9,0,0,251,128,113,0,115,0,58,0,58, - 0,28,0,127,0,28,0,127,0,28,0,28,0,28,0,127, - 0,2,16,16,4,1,253,192,192,192,192,192,192,0,0,0, - 0,192,192,192,192,192,192,7,16,16,9,1,253,60,102,70, - 96,48,120,220,206,230,118,60,28,12,196,204,120,6,2,2, - 6,0,10,204,204,13,13,26,15,1,0,15,128,56,224,96, - 48,79,208,220,216,152,72,152,8,152,8,220,216,79,144,96, - 48,56,224,15,128,6,8,8,6,0,5,112,216,56,216,216, - 236,0,252,9,7,14,11,1,1,25,128,51,0,102,0,204, - 0,102,0,51,0,25,128,9,6,12,11,1,1,255,128,255, - 128,1,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,13,26,15,1,0,15,128,56,224,96,48,95,144, - 204,216,140,200,143,136,141,136,204,216,94,240,96,48,56,224, - 15,128,6,1,1,6,0,11,252,6,5,5,7,0,8,120, - 204,204,204,120,8,11,11,11,1,0,24,24,24,255,255,24, - 24,24,0,255,255,5,8,8,5,0,5,112,152,24,48,32, - 64,248,240,5,8,8,5,0,5,112,152,24,112,56,24,152, - 112,5,3,3,6,0,10,56,112,192,10,13,26,11,0,252, - 247,128,115,128,115,128,115,128,115,128,115,128,115,128,127,128, - 125,192,96,0,224,0,240,0,96,0,9,17,34,10,0,252, - 63,128,127,128,251,0,251,0,251,0,251,0,123,0,59,0, - 27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, - 27,0,3,3,3,5,1,4,224,224,224,5,4,4,6,1, - 252,32,24,152,112,6,8,8,5,0,5,48,240,48,48,48, - 48,48,252,6,8,8,6,0,5,120,204,204,204,204,120,0, - 252,9,7,14,11,1,1,204,0,102,0,51,0,25,128,51, - 0,102,0,204,0,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,16,51,48,254,112,6,176,13,176,13, - 248,24,48,24,48,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,112,51,152,254,24,6,48,12,32,12, - 64,24,248,24,240,13,13,26,13,0,0,112,96,152,192,24, - 192,113,128,57,128,27,16,155,48,118,112,6,176,13,176,13, - 248,24,48,24,48,7,13,13,9,1,252,56,56,56,0,16, - 16,48,96,228,238,238,230,124,14,17,34,14,0,0,14,0, - 7,0,1,128,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,3,128,7,0,12,0,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,17,34,14,0,0,3,0, - 7,128,12,192,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,6,64,15,192,9,128,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,16,32,14,0,0,12,192, - 12,192,0,0,3,0,3,128,7,128,5,192,13,192,8,192, - 24,224,16,96,31,240,48,112,32,56,96,56,248,252,14,17, - 34,14,0,0,7,0,13,128,13,128,7,0,3,0,3,128, - 7,128,5,192,13,192,8,192,24,224,16,96,31,240,48,112, - 32,56,96,56,248,252,17,13,39,19,0,0,7,255,128,3, - 225,128,2,224,128,6,224,0,4,224,0,12,226,0,8,254, - 0,31,226,0,16,224,0,48,224,0,32,224,128,96,225,128, - 249,255,128,12,17,34,14,1,252,15,144,56,240,112,112,112, - 48,224,0,224,0,224,0,224,0,224,0,112,0,112,48,60, - 224,15,128,4,0,3,0,19,0,14,0,10,17,34,13,2, - 0,56,0,28,0,6,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,17,34,13,2,0,14,0,28,0,48,0,0, - 0,255,192,112,192,112,64,112,0,112,0,113,0,127,0,113, - 0,112,0,112,0,112,64,112,192,255,192,10,17,34,13,2, - 0,12,0,30,0,51,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,16,32,13,2,0,51,0,51,0,0,0,255, - 192,112,192,112,64,112,0,112,0,113,0,127,0,113,0,112, - 0,112,0,112,64,112,192,255,192,5,17,17,7,1,0,224, - 112,24,0,248,112,112,112,112,112,112,112,112,112,112,112,248, - 5,17,17,7,1,0,56,112,192,0,248,112,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,48,120,204, - 0,248,112,112,112,112,112,112,112,112,112,112,112,248,6,16, - 16,7,1,0,204,204,0,248,112,112,112,112,112,112,112,112, - 112,112,112,248,13,13,26,14,0,0,127,128,56,224,56,112, - 56,48,56,56,56,56,254,56,56,56,56,56,56,48,56,112, - 56,224,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,240,112,120,32,120,32,124,32,94,32,78,32,79,32, - 71,160,67,160,67,224,65,224,64,224,224,224,13,17,34,15, - 1,0,14,0,7,0,1,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,3,128,7,0,12,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,17,34,15, - 1,0,6,0,15,0,25,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,12,128,31,128,19,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,16,32,15, - 1,0,25,128,25,128,0,0,15,128,56,224,112,112,112,112, - 224,56,224,56,224,56,224,56,224,56,112,112,112,112,56,224, - 15,128,9,8,16,11,1,1,193,128,99,0,54,0,28,0, - 28,0,54,0,99,0,193,128,13,15,30,15,1,255,0,96, - 15,192,56,224,112,176,113,176,225,56,227,56,226,56,230,56, - 228,56,108,112,104,112,56,224,31,128,48,0,12,17,34,14, - 1,0,28,0,14,0,3,0,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,17,34,14,1,0,1,192,3,128,6,0, - 0,0,248,240,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,32,112,96,56,192,31,128,12,17,34,14, - 1,0,6,0,15,0,25,128,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,16,32,14,1,0,25,128,25,128,0,0, - 248,240,112,32,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,96,56,192,31,128,13,17,34,14,1,0, - 0,224,1,192,3,0,0,0,252,120,120,48,56,96,60,64, - 30,192,14,128,15,128,7,0,7,0,7,0,7,0,7,0, - 31,192,10,13,26,11,1,0,248,0,112,0,112,0,127,0, - 115,128,113,192,113,192,113,192,115,128,127,0,112,0,112,0, - 248,0,9,13,26,10,0,0,30,0,59,0,115,128,115,128, - 115,128,119,0,114,0,115,0,115,128,115,128,115,128,115,128, - 247,0,8,13,13,9,0,0,112,56,12,0,124,206,206,30, - 110,206,206,254,119,8,13,13,9,0,0,14,28,48,0,124, - 206,206,30,110,206,206,254,119,8,13,13,9,0,0,24,60, - 102,0,124,206,206,30,110,206,206,254,119,8,13,13,9,0, - 0,50,126,76,0,124,206,206,30,110,206,206,254,119,8,12, - 12,9,0,0,102,102,0,124,206,206,30,110,206,206,254,119, - 8,13,13,9,0,0,56,108,108,56,124,206,206,30,110,206, - 206,254,119,12,9,18,13,0,0,125,224,231,176,199,48,15, - 240,127,0,231,0,199,0,239,176,121,224,7,13,13,8,0, - 252,62,118,230,224,224,224,224,118,60,16,12,76,56,7,13, - 13,8,0,0,112,56,12,0,60,118,230,254,224,224,224,118, - 60,8,13,13,8,0,0,7,14,24,0,60,118,230,254,224, - 224,224,118,60,7,13,13,8,0,0,24,60,102,0,60,118, - 230,254,224,224,224,118,60,7,12,12,8,0,0,102,102,0, - 60,118,230,254,224,224,224,118,60,5,13,13,5,0,0,224, - 112,24,0,240,112,112,112,112,112,112,112,248,5,13,13,5, - 0,0,56,112,192,0,240,112,112,112,112,112,112,112,248,6, - 13,13,5,0,0,48,120,204,0,240,112,112,112,112,112,112, - 112,248,6,12,12,5,0,0,204,204,0,240,112,112,112,112, - 112,112,112,248,8,13,13,9,0,0,96,54,56,76,62,102, - 231,231,231,231,231,102,60,10,13,26,11,0,0,25,0,63, - 0,38,0,0,0,231,0,127,128,115,128,115,128,115,128,115, - 128,115,128,115,128,251,192,8,13,13,9,0,0,112,56,12, - 0,60,102,231,231,231,231,231,102,60,8,13,13,9,0,0, - 7,14,24,0,60,102,231,231,231,231,231,102,60,8,13,13, - 9,0,0,24,60,102,0,60,102,231,231,231,231,231,102,60, - 8,13,13,9,0,0,50,126,76,0,60,102,231,231,231,231, - 231,102,60,8,12,12,9,0,0,102,102,0,60,102,231,231, - 231,231,231,102,60,8,8,8,11,1,1,24,24,0,255,255, - 0,24,24,10,11,22,9,255,255,0,64,30,128,51,0,115, - 128,115,128,119,128,123,128,113,128,51,0,94,0,128,0,10, - 13,26,11,0,0,56,0,28,0,6,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,14,0,28,0,48,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,12,0,30,0,51,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 12,24,11,0,0,51,0,51,0,0,0,247,128,115,128,115, - 128,115,128,115,128,115,128,115,128,127,128,61,192,10,17,34, - 9,255,252,3,128,7,0,12,0,0,0,251,192,113,128,121, - 0,59,0,58,0,30,0,30,0,12,0,12,0,12,0,8, - 0,216,0,240,0,9,17,34,10,0,252,240,0,112,0,112, - 0,112,0,118,0,127,0,115,128,115,128,115,128,115,128,115, - 128,123,0,118,0,112,0,112,0,112,0,248,0,10,16,32, - 9,255,252,51,0,51,0,0,0,251,192,113,128,121,0,59, - 0,58,0,30,0,30,0,12,0,12,0,12,0,8,0,216, - 0,240,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=19 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14r[2295] U8G_FONT_SECTION("u8g_font_timB14r") = { - 0,22,28,254,249,13,2,178,6,78,32,127,252,14,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=23 x= 3 y=14 dx=25 dy= 0 ascent=23 len=69 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18[7223] U8G_FONT_SECTION("u8g_font_timB18") = { - 0,27,38,254,246,17,4,47,9,109,32,255,251,23,250,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,6,0, - 1,4,17,17,8,2,251,96,240,240,96,0,0,96,96,96, - 96,96,240,240,240,240,240,96,10,18,36,13,1,253,0,128, - 1,128,1,0,31,128,115,192,115,192,230,128,228,0,228,0, - 236,0,232,0,248,0,120,128,127,128,62,0,48,0,96,0, - 96,0,11,17,34,13,0,0,15,192,30,96,60,224,60,224, - 60,64,28,0,28,0,255,128,255,128,28,0,28,0,28,0, - 12,32,124,96,207,224,255,224,115,192,11,12,24,13,0,3, - 192,96,238,224,127,192,59,128,113,192,96,192,96,192,113,192, - 59,128,127,192,238,224,192,96,14,17,34,13,0,0,254,124, - 56,48,60,32,28,96,30,64,14,192,15,128,7,128,7,0, - 31,192,7,0,31,192,7,0,7,0,7,0,7,0,31,192, - 2,22,22,6,2,251,192,192,192,192,192,192,192,192,192,0, - 0,0,0,192,192,192,192,192,192,192,192,192,7,20,20,11, - 2,253,60,110,206,198,224,112,120,92,142,134,194,226,116,60, - 28,14,198,230,236,120,6,2,2,8,1,14,204,204,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 97,243,0,99,51,0,198,17,128,198,1,128,198,1,128,198, - 1,128,198,1,128,99,51,0,97,227,0,48,6,0,60,30, - 0,15,248,0,3,224,0,7,10,10,8,0,7,120,220,12, - 124,236,204,126,0,254,254,11,10,20,13,1,1,12,96,24, - 192,49,128,115,128,231,0,231,0,115,128,49,128,24,192,12, - 96,11,7,14,15,2,2,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,6,3,3,8,1,5,252,252,252,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 103,227,0,99,51,0,195,49,128,195,49,128,195,225,128,195, - 97,128,195,49,128,99,51,0,103,187,0,48,6,0,60,30, - 0,15,248,0,3,224,0,6,1,1,8,1,14,252,8,7, - 7,9,0,10,60,102,195,195,195,102,60,12,13,26,14,1, - 0,6,0,6,0,6,0,6,0,255,240,255,240,6,0,6, - 0,6,0,6,0,0,0,255,240,255,240,6,10,10,7,0, - 7,56,124,140,12,24,16,32,64,252,252,6,10,10,7,0, - 7,56,124,140,12,56,28,12,140,248,112,5,4,4,8,2, - 13,56,112,96,192,12,17,34,14,1,251,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,108,224,96,0,96,0,224,0,240,0,96,0,11,22,44, - 14,1,251,31,224,127,224,126,64,254,64,254,64,254,64,254, - 64,254,64,254,64,126,64,126,64,30,64,2,64,2,64,2, - 64,2,64,2,64,2,64,2,64,2,64,2,64,2,64,3, - 3,3,6,1,6,224,224,224,6,6,6,8,1,250,16,48, - 56,12,140,120,6,10,10,7,0,7,48,240,48,48,48,48, - 48,48,48,252,7,10,10,8,0,7,56,108,198,198,198,108, - 56,0,254,254,11,10,20,13,1,1,198,0,99,0,49,128, - 57,192,28,224,28,224,57,192,51,128,99,0,198,0,17,17, - 51,18,0,0,48,4,0,240,12,0,48,24,0,48,24,0, - 48,48,0,48,32,0,48,96,0,48,66,0,48,198,0,252, - 142,0,1,142,0,1,22,0,3,54,0,6,38,0,6,127, - 128,12,6,0,8,6,0,17,17,51,18,0,0,48,4,0, - 240,12,0,48,24,0,48,24,0,48,48,0,48,32,0,48, - 96,0,48,71,0,48,207,128,252,145,128,1,129,128,1,3, - 0,3,2,0,6,4,0,6,8,0,12,31,128,8,31,128, - 17,17,51,18,1,0,56,4,0,124,12,0,140,24,0,12, - 24,0,56,48,0,28,32,0,12,96,0,140,66,0,248,198, - 0,113,14,0,3,14,0,2,22,0,6,54,0,12,38,0, - 12,127,128,24,6,0,16,6,0,9,17,34,12,1,251,12, - 0,30,0,30,0,12,0,0,0,0,0,12,0,12,0,28, - 0,56,0,120,0,240,0,241,0,243,128,243,128,123,0,62, - 0,17,22,66,18,0,0,3,128,0,1,192,0,0,192,0, - 0,96,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,22,66,18,0,0,0, - 224,0,1,192,0,1,128,0,3,0,0,0,0,0,1,128, - 0,1,192,0,3,192,0,3,224,0,3,224,0,6,224,0, - 6,240,0,4,112,0,12,112,0,8,120,0,8,56,0,31, - 248,0,16,60,0,48,60,0,48,30,0,112,30,0,248,127, - 128,17,22,66,18,0,0,1,128,0,3,192,0,6,96,0, - 0,0,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,21,63,18,0,0,3, - 16,0,7,224,0,8,192,0,0,0,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,17,21, - 63,18,0,0,6,96,0,6,96,0,0,0,0,0,0,0, - 1,128,0,1,192,0,3,192,0,3,224,0,3,224,0,6, - 224,0,6,240,0,4,112,0,12,112,0,8,120,0,8,56, - 0,31,248,0,16,60,0,48,60,0,48,30,0,112,30,0, - 248,127,128,17,23,69,18,0,0,1,128,0,3,192,0,6, - 96,0,6,96,0,3,192,0,1,128,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,23,17, - 51,25,0,0,1,255,252,0,124,28,0,252,12,0,188,4, - 1,188,4,1,60,32,3,60,32,2,60,96,6,63,224,7, - 252,96,12,60,32,8,60,32,24,60,2,16,60,2,48,60, - 6,112,60,14,248,255,254,15,23,46,18,1,250,3,242,30, - 62,60,14,120,6,120,2,240,2,240,0,240,0,240,0,240, - 0,240,0,240,0,120,0,120,2,60,14,31,60,7,240,1, - 0,3,0,3,128,0,192,8,192,7,128,15,22,44,17,1, - 0,7,0,3,128,1,128,0,192,0,0,255,252,60,28,60, - 12,60,4,60,4,60,32,60,32,60,96,63,224,60,96,60, - 32,60,32,60,2,60,2,60,6,60,14,255,254,15,22,44, - 17,1,0,1,192,3,128,3,0,6,0,0,0,255,252,60, - 28,60,12,60,4,60,4,60,32,60,32,60,96,63,224,60, - 96,60,32,60,32,60,2,60,2,60,6,60,14,255,254,15, - 22,44,17,1,0,3,0,7,128,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,15,21,42,17,1,0,12,192,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,8,22,22,10,0,0,112,56,24,12,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,8,22,22, - 10,0,0,14,28,24,48,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,8,22,22,10,0,0,24, - 60,102,0,0,255,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,255,8,21,21,10,0,0,102,102,0,0,255, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 16,17,34,18,1,0,255,224,60,120,60,60,60,30,60,30, - 60,15,60,15,255,143,255,143,60,15,60,15,60,14,60,30, - 60,28,60,60,60,120,255,224,17,22,66,18,0,0,1,136, - 0,3,240,0,4,96,0,0,0,0,0,0,0,248,15,128, - 124,7,0,62,2,0,63,2,0,63,130,0,47,194,0,39, - 226,0,35,226,0,33,242,0,32,250,0,32,126,0,32,62, - 0,32,30,0,32,14,0,32,14,0,96,6,0,248,2,0, - 16,22,44,19,1,0,7,0,3,128,1,128,0,192,0,0, - 7,224,30,120,60,60,120,30,120,30,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,120,30,120,30,60,60,30,120, - 7,224,16,22,44,19,1,0,0,112,0,224,0,192,1,128, - 0,0,7,224,30,120,60,60,120,30,120,30,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,120,30,120,30,60,60, - 30,120,7,224,16,22,44,19,1,0,1,128,3,192,6,96, - 0,0,0,0,7,224,30,120,60,60,120,30,120,30,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,120,30,120,30, - 60,60,30,120,7,224,16,22,44,19,1,0,3,16,7,224, - 8,192,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,16,21,42,19,1,0,12,96, - 12,96,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,12,12,24,14,1,0,192,48, - 224,112,112,224,57,192,31,128,15,0,15,0,31,128,57,192, - 112,224,224,112,192,48,16,19,38,19,1,255,0,4,7,236, - 30,120,56,28,120,62,120,62,240,111,240,207,240,207,241,143, - 243,15,243,15,246,15,124,30,124,30,56,28,62,120,55,224, - 96,0,17,22,66,18,0,0,3,128,0,1,192,0,0,192, - 0,0,96,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,22,66,18,0,0, - 0,56,0,0,112,0,0,96,0,0,192,0,0,0,0,255, - 15,128,62,6,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,6,0,30,4,0,31,28,0,7, - 248,0,17,22,66,18,0,0,0,96,0,0,240,0,1,152, - 0,0,0,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,21,63,18,0,0, - 3,24,0,3,24,0,0,0,0,0,0,0,255,15,128,62, - 6,0,60,2,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,6,0,30,4,0,31,28,0,7,248,0,18, - 23,69,18,0,0,0,14,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,143,192,62,3,0,30,2,0, - 15,6,0,15,12,0,7,140,0,7,152,0,3,208,0,3, - 240,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,7,248,0,14,17,34,15,0,0, - 255,0,60,0,60,0,60,0,63,224,60,120,60,60,60,60, - 60,60,60,60,60,60,60,120,63,224,60,0,60,0,60,0, - 255,0,11,17,34,14,1,0,31,0,57,128,113,192,113,192, - 113,192,113,192,115,128,119,0,115,128,113,192,112,224,112,224, - 112,224,112,224,112,224,112,192,243,128,10,17,34,12,1,0, - 56,0,28,0,12,0,6,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,14,0,28,0,24,0,48,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,17,34,12,1,0, - 12,0,30,0,51,0,0,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,24,128,63,0,70,0,0,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,16,32,12,1,0, - 51,0,51,0,0,0,0,0,62,0,119,0,227,128,227,128, - 67,128,15,128,115,128,227,128,227,128,231,128,255,192,113,128, - 10,18,36,12,1,0,12,0,30,0,51,0,51,0,30,0, - 12,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,15,12,24,17,1,0, - 62,120,119,204,227,206,99,142,3,142,31,254,115,128,227,128, - 227,192,231,226,254,252,124,120,9,18,36,11,1,250,30,0, - 115,0,115,128,227,128,225,0,224,0,224,0,224,0,240,0, - 120,128,127,0,30,0,8,0,24,0,28,0,6,0,70,0, - 60,0,9,17,34,11,1,0,56,0,28,0,12,0,6,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,17,34,11,1,0, - 14,0,28,0,24,0,48,0,0,0,30,0,115,0,115,128, - 227,128,227,128,255,128,224,0,224,0,240,0,120,128,127,0, - 30,0,9,17,34,11,1,0,24,0,60,0,102,0,0,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,16,32,11,1,0, - 51,0,51,0,0,0,0,0,30,0,115,0,115,128,227,128, - 227,128,255,128,224,0,224,0,240,0,120,128,127,0,30,0, - 5,17,17,7,1,0,224,112,48,24,0,240,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,28,56,48, - 96,0,240,112,112,112,112,112,112,112,112,112,112,248,6,17, - 17,7,1,0,48,120,204,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,6,16,16,7,1,0,204,204,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,11,17,34,13,1, - 0,96,0,56,192,15,0,30,0,99,0,31,128,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,12,17,34,14,1,0,12,64,31,128,35,0,0, - 0,0,0,243,192,119,224,120,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,249,240,11,17,34,13,1, - 0,28,0,14,0,6,0,3,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,3,128,7,0,6,0,12, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,17,34,13,1, - 0,12,0,30,0,51,0,0,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,24,128,63,0,70,0,0, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,16,32,13,1, - 0,49,128,49,128,0,0,0,0,31,0,123,192,113,192,224, - 224,224,224,224,224,224,224,224,224,224,224,113,192,123,192,31, - 0,12,12,24,14,1,0,6,0,6,0,6,0,0,0,0, - 0,255,240,255,240,0,0,0,0,6,0,6,0,6,0,11, - 16,32,13,1,254,0,64,0,64,30,128,121,192,113,192,226, - 224,226,224,228,224,228,224,232,224,232,224,113,192,123,192,63, - 0,64,0,64,0,12,17,34,14,1,0,28,0,14,0,6, - 0,3,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,17,34, - 14,1,0,7,0,14,0,12,0,24,0,0,0,241,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,113, - 224,126,240,60,224,12,17,34,14,1,0,6,0,15,0,25, - 128,0,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,16,32, - 14,1,0,25,128,25,128,0,0,0,0,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,60,224,12,22,44,12,0,251,1,192,3,128,3,0,6, - 0,0,0,253,240,120,96,56,64,56,192,60,128,28,128,29, - 128,31,0,15,0,15,0,6,0,6,0,6,0,100,0,236, - 0,248,0,112,0,12,22,44,14,1,251,240,0,112,0,112, - 0,112,0,112,0,115,128,119,224,124,224,120,112,112,112,112, - 112,112,112,112,112,112,112,120,224,119,224,115,128,112,0,112, - 0,112,0,112,0,252,0,12,21,42,12,0,251,25,128,25, - 128,0,0,0,0,253,240,120,96,56,64,56,192,60,128,28, - 128,29,128,31,0,15,0,15,0,6,0,6,0,6,0,100, - 0,236,0,248,0,112,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=22 x= 3 y=13 dx=25 dy= 0 ascent=18 len=66 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18r[3355] U8G_FONT_SECTION("u8g_font_timB18r") = { - 0,27,38,254,246,17,4,47,9,109,32,127,251,18,251,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=18 dx=33 dy= 0 ascent=30 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24[10820] U8G_FONT_SECTION("u8g_font_timB24") = { - 0,38,49,251,244,23,5,149,13,202,32,255,249,30,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,8,0, - 1,5,23,23,11,3,249,112,248,248,248,112,0,0,0,32, - 32,32,32,112,112,112,112,248,248,248,248,248,248,112,13,25, - 50,17,1,251,0,8,0,8,0,24,0,16,7,240,28,224, - 56,240,120,240,240,240,240,224,240,128,241,128,241,0,243,0, - 242,0,250,16,126,48,127,224,63,192,15,0,8,0,16,0, - 16,0,32,0,32,0,16,23,46,17,1,0,0,240,3,252, - 7,30,14,30,14,30,30,12,30,0,30,0,31,0,15,0, - 15,0,127,240,127,240,7,128,7,128,7,128,55,128,127,1, - 239,3,199,135,199,255,238,254,124,124,14,15,30,17,1,4, - 96,24,247,188,255,252,127,248,60,240,120,120,112,56,112,56, - 112,56,120,120,60,240,127,248,255,252,247,188,96,24,18,23, - 69,17,1,0,255,135,192,62,3,128,62,3,0,31,3,0, - 31,6,0,31,134,0,15,132,0,15,140,0,7,200,0,7, - 216,0,7,208,0,3,240,0,31,252,0,31,252,0,3,224, - 0,31,252,0,31,252,0,1,224,0,1,224,0,1,224,0, - 1,224,0,3,240,0,15,252,0,2,30,30,7,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,0,0,0,0,0, - 0,192,192,192,192,192,192,192,192,192,192,192,192,12,28,56, - 17,2,251,15,128,24,192,48,224,113,224,113,224,120,192,60, - 0,62,0,31,0,15,128,63,192,99,224,193,224,192,240,224, - 112,240,48,120,48,124,96,63,192,31,128,7,128,3,192,49, - 224,120,224,120,224,112,192,49,128,31,0,8,4,4,11,2, - 18,66,231,231,66,22,23,69,25,1,0,1,254,0,7,255, - 128,15,3,192,28,0,224,56,0,112,48,254,48,113,199,56, - 99,131,24,231,131,28,199,0,12,199,0,12,199,0,12,199, - 0,12,199,128,12,195,195,12,227,230,28,96,252,24,112,0, - 56,56,0,112,28,0,224,15,3,192,7,255,128,1,254,0, - 9,14,28,10,0,9,60,0,102,0,103,0,103,0,31,0, - 103,0,199,0,199,0,239,128,115,0,0,0,0,0,255,128, - 255,128,14,14,28,17,2,1,2,4,6,12,14,28,28,56, - 56,112,112,224,225,192,225,192,112,224,56,112,28,56,14,28, - 6,12,2,4,16,9,18,19,1,3,255,255,255,255,255,255, - 0,7,0,7,0,7,0,7,0,7,0,7,8,4,4,11, - 1,6,255,255,255,255,22,23,69,25,2,0,1,254,0,7, - 255,128,15,3,192,28,0,224,56,0,112,51,252,48,113,206, - 56,96,199,24,224,199,28,192,199,12,192,206,12,192,248,12, - 192,220,12,192,206,12,192,198,12,224,199,28,97,195,152,115, - 227,248,56,0,112,28,0,224,15,3,192,7,255,128,1,254, - 0,9,2,4,11,1,18,255,128,255,128,9,10,20,13,2, - 13,28,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,60,0,15,19,38,19,2,0,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,0,0,255,254,255,254,255, - 254,10,14,28,10,1,9,62,0,127,0,199,128,131,128,3, - 128,3,128,3,0,6,0,12,0,24,0,48,64,127,192,255, - 128,255,128,9,14,28,10,1,9,30,0,63,0,103,128,67, - 128,3,0,6,0,31,0,7,128,3,128,3,128,3,128,195, - 128,231,0,126,0,7,6,6,11,3,17,6,14,28,56,96, - 128,16,22,44,19,2,250,248,252,120,124,120,60,120,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 124,124,252,127,191,95,56,64,0,224,0,224,0,224,0,224, - 0,224,0,16,29,58,18,1,250,15,255,63,255,63,140,127, - 140,255,140,255,140,255,140,255,140,255,140,255,140,255,140,127, - 140,63,140,63,140,15,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,4,4,4,8,2,9,96,240,240,96,7,7,7, - 11,1,249,6,12,28,14,198,238,124,9,14,28,10,0,9, - 12,0,124,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,255,128,9,14,28,11, - 1,9,28,0,119,0,99,0,227,128,227,128,227,128,227,128, - 99,0,119,0,28,0,0,0,0,0,255,128,255,128,14,14, - 28,17,1,1,129,0,193,128,225,192,112,224,56,112,28,56, - 14,28,14,28,28,56,56,112,112,224,225,192,193,128,129,0, - 23,23,69,25,0,0,12,0,8,124,0,24,28,0,48,28, - 0,48,28,0,96,28,0,96,28,0,192,28,1,128,28,1, - 128,28,3,12,28,6,28,28,6,60,28,12,124,255,152,252, - 0,24,220,0,49,156,0,99,156,0,99,28,0,199,254,1, - 199,254,1,128,28,3,0,28,3,0,28,23,23,69,25,0, - 0,12,0,48,124,0,96,28,0,96,28,0,192,28,0,128, - 28,1,128,28,3,0,28,2,0,28,6,0,28,12,240,28, - 25,248,28,27,60,28,50,28,255,176,28,0,96,28,0,96, - 24,0,192,48,1,128,96,1,128,192,3,1,130,6,3,254, - 6,7,252,12,15,252,22,23,69,25,1,0,30,0,16,63, - 0,48,103,128,96,67,128,96,3,0,192,6,0,192,31,1, - 128,7,131,0,3,131,0,3,134,24,3,140,56,195,140,120, - 231,24,248,126,49,248,0,49,184,0,99,56,0,199,56,0, - 198,56,1,143,252,3,143,252,3,0,56,6,0,56,6,0, - 56,12,23,46,16,2,249,7,0,15,128,15,128,15,128,7, - 0,0,0,0,0,0,0,2,0,2,0,6,0,12,0,28, - 0,60,0,120,0,120,0,248,96,248,240,248,240,248,112,120, - 112,60,224,31,192,21,30,90,24,1,0,6,0,0,7,0, - 0,3,128,0,1,192,0,0,96,0,0,0,0,0,32,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,3,0,0,7, - 0,0,14,0,0,28,0,0,48,0,0,64,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,96,0,0,240, - 0,1,248,0,1,152,0,3,12,0,2,4,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,29,87,24,1,0,0,194,0,1,246, - 0,3,124,0,2,24,0,0,0,0,0,0,0,0,32,0, - 0,96,0,0,112,0,0,240,0,0,248,0,0,248,0,1, - 248,0,1,124,0,1,124,0,3,62,0,2,62,0,6,62, - 0,6,31,0,4,31,0,12,15,0,15,255,128,24,15,128, - 24,7,192,16,7,192,48,3,224,48,3,224,112,7,240,252, - 31,248,21,29,87,24,1,0,1,8,0,3,156,0,3,156, - 0,1,8,0,0,0,0,0,0,0,0,32,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,21, - 30,90,24,1,0,0,224,0,1,176,0,3,24,0,2,8, - 0,3,24,0,1,176,0,0,224,0,0,0,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,32, - 23,92,33,0,0,3,255,255,252,0,255,255,252,0,99,224, - 28,0,99,224,12,0,195,224,12,0,195,224,4,1,131,224, - 4,1,131,224,128,3,3,224,128,3,3,225,128,2,3,227, - 128,7,255,255,128,7,255,227,128,12,3,225,128,12,3,224, - 128,24,3,224,128,24,3,224,1,56,3,224,3,48,3,224, - 6,112,3,224,14,112,3,224,62,248,7,255,252,254,31,255, - 252,19,30,90,24,2,249,1,252,32,7,255,96,15,7,224, - 30,1,224,60,0,224,124,0,96,124,0,96,248,0,32,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,124,0,0,124,0,0,60,0,32, - 30,0,96,15,129,192,3,255,128,0,254,0,0,24,0,0, - 48,0,0,112,0,0,56,0,3,24,0,3,184,0,1,240, - 0,21,30,90,22,0,0,6,0,0,7,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,1,128,0,3,128,0,7,0, - 0,14,0,0,24,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,48,0,0,120,0,0,252,0, - 0,204,0,1,134,0,1,2,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,29,87,22,0,0,0,132,0,1,206,0,1,206,0, - 0,132,0,0,0,0,0,0,0,255,255,224,63,255,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,0,32,31,4, - 0,31,4,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,4,0,31,4,0,31,0,8,31,0,24,31, - 0,48,31,0,112,31,1,240,63,255,224,255,255,224,11,30, - 60,13,1,0,192,0,224,0,112,0,56,0,12,0,6,0, - 0,0,255,224,63,128,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,63,128,255,224, - 12,30,60,13,1,0,0,48,0,112,0,224,1,192,3,0, - 6,0,0,0,255,224,63,128,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,63,128, - 255,224,11,30,60,13,1,0,6,0,15,0,31,128,25,128, - 48,192,32,64,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,11,29,58,13,1,0,16,128,57,192,57,192, - 16,128,0,0,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,22,23,69,24,0,0,255,254,0,63,15,128, - 31,3,224,31,1,240,31,1,240,31,0,248,31,0,248,31, - 0,252,31,0,252,31,0,252,255,240,124,255,240,124,255,240, - 124,31,0,124,31,0,252,31,0,248,31,0,248,31,0,248, - 31,1,240,31,1,224,31,3,192,63,15,128,127,254,0,22, - 29,87,24,1,0,0,97,0,0,251,0,1,190,0,1,12, - 0,0,0,0,0,0,0,254,1,252,127,0,112,63,128,32, - 31,128,32,31,192,32,31,224,32,23,240,32,19,248,32,17, - 248,32,17,252,32,16,254,32,16,127,32,16,63,32,16,31, - 160,16,31,224,16,15,224,16,7,224,16,3,224,16,3,224, - 16,1,224,16,0,224,56,0,96,254,0,32,21,30,90,25, - 2,0,6,0,0,7,0,0,3,128,0,1,192,0,0,96, - 0,0,48,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,96,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,48,0,0,120,0,0,252,0,0,204,0,1,134, - 0,1,2,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,29,87,25, - 2,0,0,194,0,1,246,0,3,124,0,2,24,0,0,0, - 0,0,0,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,21,29,87,25,2,0,0, - 132,0,1,206,0,1,206,0,0,132,0,0,0,0,0,0, - 0,1,252,0,7,255,0,15,143,128,30,3,192,60,1,224, - 124,1,240,120,0,240,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,120,0,240,124,1,240,60,1,224,30,3,192,15,143,128, - 7,255,0,1,252,0,15,16,32,19,2,0,64,4,224,14, - 240,30,120,60,60,120,30,240,15,224,7,192,7,192,15,224, - 30,240,60,120,120,60,240,30,224,14,64,4,21,27,81,26, - 2,254,0,0,48,0,0,96,1,252,64,7,143,192,14,3, - 128,30,1,192,60,3,224,124,6,240,120,4,240,248,12,248, - 248,24,248,248,24,248,248,48,248,248,32,248,248,96,248,248, - 192,248,248,128,248,249,128,248,123,0,240,126,1,240,62,1, - 224,28,3,192,14,7,128,31,254,0,17,248,0,48,0,0, - 96,0,0,23,30,90,24,0,0,0,192,0,0,224,0,0, - 112,0,0,56,0,0,12,0,0,2,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,0,192,0,1,192,0, - 3,128,0,7,0,0,12,0,0,16,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,12,0,0,30,0,0, - 63,0,0,51,0,0,97,128,0,64,128,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,29,87,24,0,0,0,33,0,0,115,128,0, - 115,128,0,33,0,0,0,0,0,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 48,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,30,90,24,1,0,0,0,192,0,1,192,0,3,128,0, - 7,0,0,12,0,0,16,0,0,0,0,255,195,252,127,0, - 240,63,0,96,63,0,96,31,128,192,31,128,128,15,193,128, - 15,195,0,7,227,0,3,230,0,3,244,0,1,252,0,1, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,1,252,0,7,255,0, - 19,23,69,20,0,0,255,224,0,63,128,0,31,0,0,31, - 0,0,31,254,0,31,15,128,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,224,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,63,128,0,255,224,0,17,23,69,19,0, - 0,3,240,0,14,60,0,30,62,0,28,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,28,0,60,56,0,60, - 224,0,60,60,0,60,30,0,60,15,0,60,15,0,60,15, - 128,60,15,128,60,15,128,60,15,128,60,15,0,60,15,0, - 60,30,0,252,124,0,14,23,46,16,1,0,48,0,56,0, - 28,0,14,0,3,0,0,128,0,0,31,128,49,224,112,240, - 120,240,120,240,48,240,1,240,7,240,28,240,56,240,120,240, - 240,240,249,240,255,244,126,252,60,120,14,23,46,16,1,0, - 0,48,0,112,0,224,1,192,3,0,4,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,14,23, - 46,16,1,0,3,0,7,128,15,192,12,192,24,96,16,32, - 0,0,31,128,49,224,112,240,120,240,120,240,48,240,1,240, - 7,240,28,240,56,240,120,240,240,240,249,240,255,244,126,252, - 60,120,14,22,44,16,1,0,12,32,31,96,55,192,33,128, - 0,0,0,0,31,128,49,224,112,240,120,240,120,240,48,240, - 1,240,7,240,28,240,56,240,120,240,240,240,249,240,255,244, - 126,252,60,120,14,22,44,16,1,0,8,64,28,224,28,224, - 8,64,0,0,0,0,31,128,49,224,112,240,120,240,120,240, - 48,240,1,240,7,240,28,240,56,240,120,240,240,240,249,240, - 255,244,126,252,60,120,14,25,50,16,1,0,7,0,13,128, - 24,192,16,64,24,192,13,128,7,0,0,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,21,16, - 48,24,1,0,31,135,192,49,238,224,112,252,112,120,248,112, - 120,248,56,48,248,56,1,248,56,7,255,248,28,248,0,56, - 248,0,120,252,0,248,252,8,248,254,24,255,255,240,126,63, - 224,60,15,192,13,23,46,15,1,249,7,224,30,240,60,120, - 120,120,120,48,240,0,240,0,240,0,240,0,240,0,248,0, - 120,0,120,0,60,48,31,224,15,192,3,0,6,0,6,0, - 3,128,49,128,59,128,31,0,14,23,46,15,0,0,48,0, - 56,0,28,0,14,0,3,0,0,128,0,0,7,192,30,240, - 60,112,120,56,120,60,248,60,248,60,255,252,248,0,248,0, - 248,0,120,0,124,0,62,24,31,240,7,224,14,23,46,15, - 0,0,0,24,0,56,0,112,0,224,1,128,2,0,0,0, - 7,192,30,240,60,112,120,56,120,60,248,60,248,60,255,252, - 248,0,248,0,248,0,120,0,124,0,62,24,31,240,7,224, - 14,23,46,15,0,0,3,0,7,128,15,192,12,192,24,96, - 16,32,0,0,7,192,30,240,60,112,120,56,120,60,248,60, - 248,60,255,252,248,0,248,0,248,0,120,0,124,0,62,24, - 31,240,7,224,14,22,44,15,0,0,4,32,14,112,14,112, - 4,32,0,0,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,8,23,23,9,0,0,192,224,112,56, - 12,2,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,8,23,23,9,0,0,3,7,14,28,48,64,0, - 252,124,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 8,23,23,9,0,0,24,60,126,102,195,129,0,252,124,60, - 60,60,60,60,60,60,60,60,60,60,60,126,255,8,22,22, - 9,0,0,66,231,231,66,0,0,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,14,22,44,17,1,0,56, - 48,62,248,15,248,255,128,251,192,97,224,15,240,60,248,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,22,66,18,0, - 0,3,8,0,7,216,0,13,240,0,8,96,0,0,0,0, - 0,0,0,252,120,0,125,252,0,63,62,0,62,30,0,62, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,126,63,0, - 255,127,128,14,23,46,17,1,0,48,0,56,0,28,0,14, - 0,3,0,0,128,0,0,15,192,60,240,120,120,120,120,240, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,60,240,15,192,14,23,46,17,1,0,0,24,0, - 56,0,112,0,224,1,128,2,0,0,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,14,23,46,17,1, - 0,3,0,7,128,15,192,12,192,24,96,16,32,0,0,15, - 192,60,240,120,120,120,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,120,120,120,120,60,240,15,192,14, - 22,44,17,1,0,12,32,31,96,55,192,33,128,0,0,0, - 0,15,192,60,240,120,120,120,120,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,120,120,120,120,60,240,15, - 192,14,22,44,17,1,0,8,64,28,224,28,224,8,64,0, - 0,0,0,15,192,60,240,120,120,120,120,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,240,60,120,120,120,120,60, - 240,15,192,14,15,30,19,2,1,3,0,7,128,7,128,3, - 0,0,0,0,0,255,252,255,252,255,252,0,0,0,0,3, - 0,7,128,7,128,3,0,14,22,44,17,1,253,0,8,0, - 24,0,24,15,240,60,240,120,120,120,120,240,252,241,188,241, - 60,243,60,242,60,246,60,252,60,248,60,120,120,120,120,60, - 240,111,192,96,0,192,0,128,0,17,23,69,18,0,0,24, - 0,0,28,0,0,14,0,0,7,0,0,1,128,0,0,64, - 0,0,0,0,252,126,0,124,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,62,0,62,127,0,31,223, - 128,7,140,0,17,23,69,18,0,0,0,12,0,0,28,0, - 0,56,0,0,112,0,0,192,0,1,0,0,0,0,0,252, - 126,0,124,62,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,62,0,62,127,0,31,223,128,7,140,0,17, - 23,69,18,0,0,1,128,0,3,192,0,7,224,0,6,96, - 0,12,48,0,8,16,0,0,0,0,252,126,0,124,62,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,62, - 0,62,127,0,31,223,128,7,140,0,17,22,66,18,0,0, - 4,32,0,14,112,0,14,112,0,4,32,0,0,0,0,0, - 0,0,252,126,0,124,62,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,62,127,0,31,223,128,7, - 140,0,15,30,60,17,0,249,0,12,0,28,0,56,0,112, - 0,192,1,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0,15,29,58,19,1,249,252,0,124,0,60,0, - 60,0,60,0,60,0,60,224,63,248,62,124,60,60,60,62, - 60,30,60,30,60,30,60,30,60,30,60,30,60,30,60,60, - 62,60,63,248,60,224,60,0,60,0,60,0,60,0,60,0, - 126,0,255,0,15,29,58,17,0,249,4,32,14,112,14,112, - 4,32,0,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=25 x= 3 y= 9 dx=19 dy= 0 ascent=25 len=50 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24n[723] U8G_FONT_SECTION("u8g_font_timB24n") = { - 0,38,49,251,244,23,0,0,0,0,42,58,0,25,250,23, - 0,13,14,28,17,1,9,3,0,7,0,7,0,231,56,242, - 120,122,240,15,128,15,128,122,240,242,120,231,56,7,0,7, - 0,6,0,15,15,30,19,2,0,3,128,3,128,3,128,3, - 128,3,128,3,128,255,254,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,11,11,8,1,250,56,124,124, - 124,60,12,8,24,48,96,192,8,4,4,11,1,6,255,255, - 255,255,5,5,5,8,1,0,112,248,248,248,112,9,25,50, - 9,0,0,1,128,1,128,1,0,3,0,3,0,3,0,6, - 0,6,0,6,0,4,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,14,23,46,16,1,0,7,128,31,224,28, - 224,56,112,120,112,120,120,120,120,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,248,124,120,120,120,120,120, - 120,56,112,28,224,15,192,7,128,13,23,46,16,2,0,1, - 128,7,128,31,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,31,192,255,248,16,23,46, - 16,0,0,3,192,15,240,31,248,63,248,48,252,96,124,64, - 124,0,124,0,120,0,120,0,120,0,240,0,224,1,192,1, - 128,3,0,7,1,14,3,28,6,63,254,127,254,255,252,255, - 252,14,23,46,16,1,0,7,192,31,240,63,240,48,248,96, - 120,64,120,0,120,0,112,0,192,3,224,15,240,15,248,3, - 248,0,252,0,124,0,60,0,60,0,60,96,56,240,56,248, - 112,127,192,31,0,14,23,46,16,1,0,0,112,0,240,0, - 240,1,240,3,240,6,240,6,240,12,240,24,240,24,240,48, - 240,96,240,96,240,192,240,255,252,255,252,255,252,255,252,0, - 240,0,240,0,240,0,240,0,240,13,23,46,16,1,0,31, - 248,31,248,31,248,31,248,48,0,48,0,32,0,62,0,127, - 128,127,224,127,240,127,240,3,248,0,248,0,120,0,56,0, - 56,0,56,96,48,240,48,248,96,127,192,31,0,14,23,46, - 16,1,0,0,28,0,240,3,192,7,128,15,0,30,0,62, - 0,60,0,124,0,127,224,253,240,248,248,248,120,248,124,248, - 124,248,124,248,124,120,124,120,120,120,120,56,112,28,224,15, - 192,13,23,46,16,2,0,127,248,127,248,255,248,255,248,192, - 48,128,112,128,112,0,96,0,224,0,224,0,192,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,14,0,28,0,14,23,46,16,1,0,15,224,62,240,60, - 120,120,120,120,56,120,56,124,56,126,112,63,224,63,128,31, - 192,15,224,63,240,113,248,112,252,224,124,224,60,224,60,224, - 60,240,56,120,120,127,240,31,192,14,23,46,16,1,0,15, - 192,28,224,56,112,120,120,120,120,248,120,248,124,248,124,248, - 124,248,124,120,124,124,124,62,252,31,248,0,248,0,240,1, - 240,1,224,3,192,7,128,15,0,60,0,224,0,5,16,16, - 11,3,0,112,248,248,248,112,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=17 dx=33 dy= 0 ascent=26 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24r[5003] U8G_FONT_SECTION("u8g_font_timB24r") = { - 0,38,49,251,244,23,5,149,13,202,32,127,249,26,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h=10 x= 1 y= 6 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08[2512] U8G_FONT_SECTION("u8g_font_timR08") = { - 0,12,17,254,252,7,1,147,3,56,32,255,254,10,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,2,0,1,1,7,7,3,1,254,128,0,128,128,128,128, - 128,4,7,7,5,0,255,32,112,144,128,144,96,64,5,7, - 7,5,0,0,48,80,64,224,64,200,240,5,6,6,5,0, - 1,136,112,80,80,112,136,5,7,7,5,0,0,136,80,216, - 32,248,32,112,1,7,7,2,0,0,128,128,128,0,128,128, - 128,4,9,9,5,0,254,112,144,64,160,144,80,32,144,224, - 3,1,1,5,1,5,160,7,7,7,9,1,0,56,68,154, - 162,154,68,56,3,5,5,4,0,2,192,32,160,0,224,4, - 4,4,5,0,1,80,160,160,80,5,2,2,7,1,1,248, - 8,3,1,1,4,0,2,224,7,7,7,9,1,0,56,68, - 186,178,170,68,56,3,1,1,4,0,5,224,4,4,4,4, - 0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32, - 32,0,248,3,4,4,3,0,3,96,160,64,224,3,4,4, - 3,0,3,224,64,32,192,2,2,2,3,0,5,64,128,5, - 7,7,5,0,254,144,144,144,144,232,128,128,6,9,9,6, - 0,254,124,232,232,232,104,40,40,40,40,1,1,1,2,0, - 2,128,3,3,3,4,0,253,64,32,192,3,4,4,3,0, - 3,64,192,64,224,3,5,5,4,0,2,64,160,64,0,224, - 4,4,4,5,0,1,160,80,80,160,7,7,7,8,0,0, - 68,200,72,244,44,62,68,7,7,7,8,0,0,68,200,72, - 246,42,36,78,7,7,7,8,0,0,228,72,40,212,44,62, - 68,3,7,7,4,0,254,64,0,64,64,128,160,224,7,10, - 10,8,0,0,32,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,8,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,16,40,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,20,40,0,16,56,40,40,124,68,238,7,9, - 9,8,0,0,40,0,16,56,40,40,124,68,238,7,10,10, - 8,0,0,16,40,16,16,56,40,40,124,68,238,8,7,7, - 9,0,0,31,57,40,46,120,73,239,6,10,10,7,0,253, - 124,196,128,128,128,196,120,32,16,96,5,10,10,6,0,0, - 64,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 16,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 32,80,0,248,72,64,112,64,72,248,5,9,9,6,0,0, - 80,0,248,72,64,112,64,72,248,3,10,10,4,0,0,128, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,32, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,64, - 160,0,224,64,64,64,64,64,224,3,9,9,4,0,0,160, - 0,224,64,64,64,64,64,224,6,7,7,7,0,0,248,76, - 68,228,68,76,248,7,10,10,8,0,0,20,40,0,206,100, - 100,84,84,76,228,6,10,10,7,0,0,32,16,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,32,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,40,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,40,80,0,120,204, - 132,132,132,204,120,6,9,9,7,0,0,72,0,120,204,132, - 132,132,204,120,5,5,5,6,0,0,136,80,32,80,136,8, - 9,9,8,255,255,1,62,102,74,66,82,102,124,128,7,10, - 10,8,0,0,32,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,8,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,16,40,0,238,68,68,68,68,108,56,7,9, - 9,8,0,0,40,0,238,68,68,68,68,108,56,7,10,10, - 8,0,0,8,16,0,198,68,40,56,16,16,56,5,7,7, - 6,0,0,224,64,112,72,112,64,224,4,7,7,5,0,0, - 32,80,80,96,80,80,224,3,8,8,4,0,0,128,64,0, - 192,32,96,160,224,3,8,8,4,0,0,32,64,0,192,32, - 96,160,224,3,8,8,4,0,0,64,160,0,192,32,96,160, - 224,4,8,8,4,0,0,80,160,0,192,32,96,160,224,3, - 7,7,4,0,0,160,0,192,32,96,160,224,3,8,8,4, - 0,0,64,160,64,192,32,96,160,224,5,5,5,6,0,0, - 216,40,112,160,216,3,8,8,4,0,253,96,128,128,128,96, - 64,32,192,3,8,8,4,0,0,128,64,0,96,160,192,128, - 96,3,8,8,4,0,0,32,64,0,96,160,192,128,96,3, - 8,8,4,0,0,64,160,0,96,160,192,128,96,3,7,7, - 4,0,0,160,0,96,160,192,128,96,2,8,8,3,0,0, - 128,64,0,192,64,64,64,64,3,8,8,3,0,0,32,64, - 0,192,64,64,64,64,3,8,8,3,0,0,64,160,0,192, - 64,64,64,64,3,7,7,3,0,0,160,0,192,64,64,64, - 64,4,8,8,5,0,0,64,112,160,112,144,144,144,96,5, - 8,8,5,0,0,80,160,0,224,144,144,144,216,4,8,8, - 5,0,0,64,32,0,96,144,144,144,96,4,8,8,5,0, - 0,32,64,0,96,144,144,144,96,4,8,8,5,0,0,64, - 160,0,96,144,144,144,96,4,8,8,5,0,0,80,160,0, - 96,144,144,144,96,4,7,7,5,0,0,160,0,96,144,144, - 144,96,5,5,5,6,0,0,32,0,248,0,32,6,7,7, - 5,255,255,4,56,72,72,72,112,128,5,8,8,5,0,0, - 64,32,0,144,144,144,144,104,5,8,8,5,0,0,32,64, - 0,144,144,144,144,104,5,8,8,5,0,0,32,80,0,144, - 144,144,144,104,5,7,7,5,0,0,80,0,144,144,144,144, - 104,6,10,10,5,255,254,16,32,0,220,72,80,48,32,96, - 192,5,10,10,5,255,253,192,64,112,72,72,72,112,64,64, - 224,6,9,9,5,255,254,80,0,220,72,80,48,32,96,192 - }; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h= 9 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08r[1198] U8G_FONT_SECTION("u8g_font_timR08r") = { - 0,12,17,254,252,7,1,147,3,56,32,127,254,8,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=14 x= 2 y= 8 dx=13 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10[3359] U8G_FONT_SECTION("u8g_font_timR10") = { - 0,17,24,254,250,10,2,4,4,92,32,255,253,14,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,1,10,10,5,2,253,128, - 128,0,128,128,128,128,128,128,128,6,9,9,7,0,255,4, - 124,204,144,144,160,228,120,128,7,10,10,8,0,0,28,52, - 32,32,248,32,32,32,226,188,5,7,7,7,1,1,136,112, - 136,136,136,112,136,7,10,10,7,0,0,238,68,108,40,124, - 16,124,16,16,56,1,10,10,3,1,0,128,128,128,128,0, - 0,128,128,128,128,5,13,13,7,1,253,56,88,64,96,112, - 152,136,200,112,48,16,208,224,3,2,2,5,1,8,160,160, - 10,10,20,12,1,0,30,0,97,128,78,128,146,64,144,64, - 144,64,146,64,76,128,97,128,30,0,3,6,6,4,0,4, - 224,32,160,224,0,224,6,6,6,7,0,0,36,72,144,144, - 72,36,7,4,4,9,1,2,254,2,2,2,3,1,1,4, - 0,3,224,10,10,20,12,1,0,30,0,97,128,92,128,146, - 64,156,64,148,64,146,64,82,128,97,128,30,0,4,1,1, - 4,0,8,240,4,4,4,6,1,6,96,144,144,96,7,7, - 7,8,0,0,16,16,254,16,16,0,254,4,6,6,4,0, - 4,96,144,16,32,64,240,4,6,6,4,0,4,96,144,32, - 16,144,96,3,3,3,5,1,8,32,96,128,7,10,10,7, - 0,253,204,68,68,68,68,108,118,64,64,96,7,13,13,7, - 0,253,62,116,244,244,244,116,52,20,20,20,20,20,20,1, - 2,2,4,2,3,128,128,3,3,3,5,1,253,64,32,192, - 3,6,6,4,0,4,64,192,64,64,64,224,4,6,6,5, - 0,4,96,144,144,96,0,240,6,6,6,7,1,0,144,72, - 36,36,72,144,10,10,20,10,0,0,65,0,194,0,66,0, - 68,0,68,128,233,128,10,128,20,128,23,192,32,128,10,10, - 20,10,0,0,65,0,194,0,66,0,68,0,69,128,234,64, - 8,64,16,128,17,0,35,192,10,10,20,10,0,0,97,0, - 146,0,34,0,20,0,148,128,105,128,10,128,20,128,23,192, - 32,128,5,10,10,6,0,253,32,32,0,32,32,64,128,136, - 136,112,9,14,28,11,1,0,16,0,24,0,4,0,0,0, - 8,0,8,0,20,0,20,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,14,28,11,1,0,4,0,12,0,16,0, - 0,0,8,0,8,0,20,0,20,0,34,0,34,0,62,0, - 65,0,65,0,227,128,9,14,28,11,1,0,8,0,28,0, - 34,0,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 62,0,65,0,65,0,227,128,9,14,28,11,1,0,18,0, - 42,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,13,26,11,1,0, - 36,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,14,28,11,1,0, - 24,0,36,0,24,0,0,0,8,0,8,0,20,0,20,0, - 34,0,34,0,62,0,65,0,65,0,227,128,11,10,20,13, - 1,0,31,224,12,32,20,0,20,64,39,192,36,64,60,0, - 68,32,68,32,239,224,8,13,13,10,1,253,61,99,65,129, - 128,128,128,193,98,60,8,4,24,7,14,14,9,1,0,32, - 48,8,0,254,66,64,68,124,68,64,66,66,254,7,14,14, - 9,1,0,4,12,16,0,254,66,64,68,124,68,64,66,66, - 254,7,14,14,9,1,0,16,56,68,0,254,66,64,68,124, - 68,64,66,66,254,7,13,13,9,1,0,36,36,0,254,66, - 64,68,124,68,64,66,66,254,3,14,14,5,1,0,128,192, - 32,0,224,64,64,64,64,64,64,64,64,224,3,14,14,5, - 1,0,32,96,128,0,224,64,64,64,64,64,64,64,64,224, - 5,14,14,5,0,0,32,112,136,0,112,32,32,32,32,32, - 32,32,32,112,3,13,13,5,1,0,160,160,0,224,64,64, - 64,64,64,64,64,64,224,9,10,20,10,0,0,254,0,35, - 0,33,0,32,128,248,128,32,128,32,128,33,0,35,0,254, - 0,9,14,28,11,1,0,18,0,42,0,36,0,0,0,227, - 128,97,0,81,0,89,0,73,0,77,0,69,0,69,0,67, - 0,227,0,8,14,14,10,1,0,32,48,8,0,60,102,66, - 129,129,129,129,66,102,60,8,14,14,10,1,0,4,12,16, - 0,60,102,66,129,129,129,129,66,102,60,8,14,14,10,1, - 0,16,56,68,0,60,102,66,129,129,129,129,66,102,60,8, - 14,14,10,1,0,36,84,72,0,60,102,66,129,129,129,129, - 66,102,60,8,13,13,10,1,0,36,36,0,60,102,66,129, - 129,129,129,66,102,60,7,7,7,8,1,0,130,68,40,16, - 40,68,130,9,12,24,10,0,255,0,128,31,0,49,0,35, - 0,68,128,76,128,72,128,80,128,49,0,99,0,94,0,128, - 0,8,14,14,10,1,0,32,48,8,0,231,66,66,66,66, - 66,66,66,102,60,8,14,14,10,1,0,4,12,16,0,231, - 66,66,66,66,66,66,66,102,60,8,14,14,10,1,0,16, - 56,68,0,231,66,66,66,66,66,66,66,102,60,8,13,13, - 10,1,0,36,36,0,231,66,66,66,66,66,66,66,102,60, - 9,14,28,9,0,0,2,0,6,0,8,0,0,0,227,128, - 65,0,34,0,34,0,20,0,8,0,8,0,8,0,8,0, - 28,0,6,10,10,8,1,0,224,64,120,76,68,68,76,120, - 64,224,6,10,10,7,0,0,56,108,68,72,112,88,76,68, - 84,216,6,11,11,7,1,0,64,96,16,0,112,200,24,104, - 136,200,116,6,11,11,7,1,0,8,24,32,0,112,200,24, - 104,136,200,116,6,11,11,7,1,0,32,112,136,0,112,200, - 24,104,136,200,116,6,11,11,7,1,0,72,168,144,0,112, - 200,24,104,136,200,116,6,10,10,7,1,0,80,80,0,112, - 200,24,104,136,200,116,6,11,11,7,1,0,48,72,48,0, - 112,200,24,104,136,200,116,9,7,14,11,1,0,127,0,201, - 128,31,0,104,0,136,0,204,128,119,0,6,10,10,7,1, - 253,112,200,128,128,128,196,120,32,16,96,6,11,11,7,1, - 0,64,96,16,0,112,136,248,128,128,196,120,6,11,11,7, - 1,0,8,24,32,0,112,136,248,128,128,196,120,6,11,11, - 7,1,0,32,112,136,0,112,136,248,128,128,196,120,6,10, - 10,7,1,0,80,80,0,112,136,248,128,128,196,120,3,11, - 11,3,0,0,128,192,32,0,192,64,64,64,64,64,224,3, - 11,11,3,0,0,32,96,128,0,192,64,64,64,64,64,224, - 5,11,11,3,255,0,32,112,136,0,96,32,32,32,32,32, - 112,3,10,10,3,0,0,160,160,0,192,64,64,64,64,64, - 224,5,10,10,7,1,0,216,96,144,120,216,136,136,136,216, - 112,7,11,11,7,0,0,36,84,72,0,216,108,68,68,68, - 68,238,5,11,11,7,1,0,64,96,16,0,112,216,136,136, - 136,216,112,5,11,11,7,1,0,16,48,64,0,112,216,136, - 136,136,216,112,5,11,11,7,1,0,32,112,136,0,112,216, - 136,136,136,216,112,5,11,11,7,1,0,72,168,144,0,112, - 216,136,136,136,216,112,5,10,10,7,1,0,80,80,0,112, - 216,136,136,136,216,112,7,7,7,8,1,0,16,16,0,254, - 0,16,16,7,9,9,7,0,255,2,60,108,68,68,68,108, - 120,128,7,11,11,7,0,0,32,48,8,0,204,68,68,68, - 68,108,54,7,11,11,7,0,0,8,24,32,0,204,68,68, - 68,68,108,54,7,11,11,7,0,0,16,56,68,0,204,68, - 68,68,68,108,54,7,10,10,7,0,0,40,40,0,204,68, - 68,68,68,108,54,7,14,14,7,0,253,4,12,16,0,238, - 68,68,40,40,16,48,32,160,192,6,13,13,7,0,253,192, - 64,64,88,108,68,68,68,108,88,64,64,224,7,13,13,7, - 0,253,40,40,0,238,68,68,40,40,16,48,32,160,192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=13 x= 2 y= 8 dx=13 dy= 0 ascent=11 len=24 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10r[1571] U8G_FONT_SECTION("u8g_font_timR10r") = { - 0,17,24,254,250,10,2,4,4,92,32,127,253,11,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=16 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=30 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12[3905] U8G_FONT_SECTION("u8g_font_timR12") = { - 0,19,26,254,249,11,2,36,5,11,32,255,252,15,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,1,11, - 11,5,2,253,128,128,0,0,128,128,128,128,128,128,128,7, - 12,12,8,0,254,4,4,60,74,138,136,144,146,84,56,32, - 32,8,11,11,8,0,0,12,18,34,32,32,252,16,16,113, - 145,110,8,9,9,8,0,1,153,102,66,129,129,129,66,102, - 153,9,11,22,8,255,0,227,128,65,0,34,0,20,0,8, - 0,62,0,8,0,62,0,8,0,8,0,28,0,1,11,11, - 3,0,0,128,128,128,128,128,0,128,128,128,128,128,7,14, - 14,8,0,253,56,68,76,32,80,136,132,66,34,20,8,100, - 68,56,4,2,2,6,1,9,144,144,11,11,22,13,0,0, - 14,0,49,128,64,64,78,64,145,32,144,32,144,32,81,64, - 78,64,49,128,14,0,4,6,6,5,0,5,96,16,112,144, - 80,240,7,7,7,8,0,0,18,36,72,144,72,36,18,8, - 5,5,9,0,0,255,1,1,1,1,4,1,1,5,0,4, - 240,11,11,22,13,0,0,14,0,49,128,64,64,78,64,137, - 32,142,32,138,32,74,64,73,64,49,128,14,0,5,1,1, - 6,0,9,248,5,5,5,7,1,6,112,136,136,136,112,7, - 9,9,9,1,0,16,16,16,254,16,16,16,0,254,5,7, - 7,5,0,4,112,136,8,16,32,72,248,6,7,7,5,255, - 4,56,68,4,24,4,132,120,3,3,3,6,2,8,32,64, - 128,8,11,11,8,0,253,198,66,66,66,66,66,71,122,64, - 64,64,7,15,15,8,0,252,62,116,244,244,244,116,52,20, - 20,20,20,20,20,20,20,1,2,2,4,1,4,128,128,4, - 4,4,6,0,252,32,112,16,224,3,7,7,5,1,4,64, - 192,64,64,64,64,224,4,6,6,5,0,5,96,144,144,144, - 96,240,7,7,7,8,0,0,144,72,36,18,36,72,144,11, - 11,22,13,1,0,64,128,193,0,67,0,66,0,68,64,76, - 192,233,64,25,64,18,64,39,224,64,64,12,11,22,13,0, - 0,64,128,193,0,67,0,66,0,68,224,77,16,232,16,24, - 32,16,64,32,144,65,240,13,11,22,13,255,0,56,32,68, - 64,4,192,24,128,5,16,135,48,122,80,6,80,4,144,9, - 248,8,16,5,11,11,7,1,253,32,32,0,0,32,32,64, - 128,136,136,112,12,15,30,12,0,0,8,0,4,0,2,0, - 0,0,4,0,6,0,10,0,11,0,17,0,17,128,32,128, - 63,128,64,192,64,64,224,240,12,15,30,12,0,0,1,0, - 2,0,4,0,0,0,4,0,6,0,10,0,11,0,17,0, - 17,128,32,128,63,128,64,192,64,64,224,240,12,15,30,12, - 0,0,4,0,10,0,17,0,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 12,14,28,12,0,0,13,0,22,0,0,0,4,0,6,0, - 10,0,11,0,17,0,17,128,32,128,63,128,64,192,64,64, - 224,240,12,14,28,12,0,0,9,0,9,0,0,0,4,0, - 6,0,10,0,11,0,17,0,17,128,32,128,63,128,64,192, - 64,64,224,240,12,14,28,12,0,0,6,0,9,0,9,0, - 6,0,6,0,10,0,11,0,17,0,17,128,32,128,63,128, - 64,192,64,64,224,240,14,11,22,15,0,0,7,248,3,8, - 5,8,9,0,9,16,17,240,31,16,33,0,33,0,65,4, - 243,248,10,15,30,11,0,252,15,64,48,192,64,64,128,64, - 128,0,128,0,128,0,128,0,64,64,49,128,14,0,4,0, - 14,0,2,0,28,0,9,15,30,10,0,0,32,0,16,0, - 8,0,0,0,255,0,65,0,64,0,64,0,66,0,126,0, - 66,0,64,0,64,0,64,128,255,0,9,15,30,10,0,0, - 2,0,4,0,8,0,0,0,255,0,65,0,65,0,64,0, - 66,0,126,0,66,0,64,0,64,0,64,128,255,0,9,15, - 30,10,0,0,8,0,20,0,34,0,0,0,255,0,65,0, - 64,0,64,0,66,0,126,0,66,0,64,0,64,0,64,128, - 255,0,9,14,28,10,0,0,36,0,36,0,0,0,255,0, - 65,0,64,0,64,0,66,0,126,0,66,0,64,0,64,0, - 64,128,255,0,4,15,15,5,255,0,128,64,32,0,112,32, - 32,32,32,32,32,32,32,32,112,5,15,15,5,0,0,8, - 16,32,0,224,64,64,64,64,64,64,64,64,64,224,5,15, - 15,5,255,0,32,80,136,0,112,32,32,32,32,32,32,32, - 32,32,112,3,14,14,5,0,0,160,160,0,224,64,64,64, - 64,64,64,64,64,64,224,10,11,22,12,1,0,252,0,67, - 0,64,128,64,64,64,64,248,64,64,64,64,64,64,128,67, - 0,252,0,10,14,28,12,0,0,13,0,22,0,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,15,30,12,1,0,32,0,16,0,8, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,12,1,0,2, - 0,4,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,15,30, - 12,1,0,8,0,20,0,34,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,12,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,14,28,12,1,0,34,0,34,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,7,7,9,1,0,130,68,40,16,40, - 68,130,11,13,26,12,0,255,0,64,14,64,49,128,65,64, - 130,32,132,32,132,32,136,32,144,32,80,64,49,128,78,0, - 64,0,10,15,30,12,0,0,16,0,8,0,4,0,0,0, - 225,192,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,0,0,1,0,2,0, - 4,0,0,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,0,0, - 4,0,10,0,17,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,14, - 28,12,0,0,18,0,18,0,0,0,225,192,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 11,15,30,12,0,0,0,128,1,0,2,0,0,0,224,224, - 64,64,32,128,17,0,17,0,10,0,4,0,4,0,4,0, - 4,0,14,0,8,11,11,9,0,0,224,64,124,66,65,65, - 66,124,64,64,224,7,11,11,8,0,0,56,68,68,68,72, - 88,68,66,66,82,204,7,12,12,7,1,0,64,32,16,0, - 112,136,136,56,200,136,154,100,7,12,12,7,1,0,8,16, - 32,0,112,136,136,56,200,136,154,100,7,12,12,7,1,0, - 32,80,136,0,112,136,136,56,200,136,154,100,7,11,11,7, - 1,0,104,176,0,112,136,136,56,200,136,154,100,7,11,11, - 7,1,0,72,72,0,112,136,136,56,200,136,154,100,7,12, - 12,7,1,0,32,80,80,32,112,136,136,56,200,136,154,100, - 9,8,16,11,1,0,115,0,140,128,136,128,63,128,200,0, - 136,0,156,128,99,0,6,12,12,7,0,252,56,68,132,128, - 128,128,68,56,16,56,8,112,6,12,12,7,0,0,64,32, - 16,0,56,68,132,252,128,128,68,56,6,12,12,7,0,0, - 4,8,16,0,56,68,132,252,128,128,68,56,6,12,12,7, - 0,0,16,40,68,0,56,68,132,252,128,128,68,56,6,11, - 11,7,0,0,72,72,0,56,68,132,252,128,128,68,56,3, - 12,12,5,0,0,128,64,32,0,64,192,64,64,64,64,64, - 224,3,12,12,5,0,0,32,64,128,0,64,192,64,64,64, - 64,64,224,5,12,12,5,255,0,32,80,136,0,32,96,32, - 32,32,32,32,112,3,11,11,5,0,0,160,160,0,64,192, - 64,64,64,64,64,224,7,11,11,8,0,0,108,48,200,60, - 68,130,130,130,130,68,56,8,11,11,8,255,0,52,88,0, - 92,230,66,66,66,66,66,231,7,12,12,8,0,0,32,16, - 8,0,56,68,130,130,130,130,68,56,7,12,12,8,0,0, - 4,8,16,0,56,68,130,130,130,130,68,56,7,12,12,8, - 0,0,16,40,68,0,56,68,130,130,130,130,68,56,7,11, - 11,8,0,0,52,88,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,72,72,0,56,68,130,130,130,130,68,56, - 9,9,18,9,255,0,8,0,8,0,0,0,0,0,255,128, - 0,0,0,0,8,0,8,0,7,12,12,8,0,254,2,2, - 60,68,138,146,146,162,100,56,64,64,8,12,12,8,255,0, - 32,16,8,0,198,66,66,66,66,66,70,59,8,12,12,8, - 255,0,4,8,16,0,198,66,66,66,66,66,70,59,8,12, - 12,8,255,0,16,40,68,0,198,66,66,66,66,66,70,59, - 8,11,11,8,255,0,36,36,0,198,66,66,66,66,66,70, - 59,8,16,16,8,255,252,2,4,8,0,247,66,66,36,36, - 20,8,8,16,16,160,192,8,15,15,8,255,252,64,192,64, - 92,98,65,65,65,65,98,92,64,64,64,224,8,15,15,8, - 255,252,36,36,0,247,66,98,36,52,20,24,8,16,16,160, - 192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 2 y= 8 dx=16 dy= 0 ascent=12 len=28 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12r[1784] U8G_FONT_SECTION("u8g_font_timR12r") = { - 0,19,26,254,249,11,2,36,5,11,32,127,252,12,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=18 x= 2 y=10 dx=18 dy= 0 ascent=18 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14[4577] U8G_FONT_SECTION("u8g_font_timR14") = { - 0,22,29,253,249,13,2,131,6,16,32,255,252,18,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,5, - 0,1,2,13,13,4,1,252,192,192,0,0,128,128,128,192, - 192,192,192,192,192,7,14,14,9,1,253,6,4,60,110,200, - 216,208,208,240,114,124,64,192,128,10,13,26,11,0,0,15, - 0,25,128,25,128,24,0,24,0,24,0,126,0,24,0,24, - 0,16,0,120,64,191,192,231,128,9,7,14,11,1,3,221, - 128,247,128,99,0,65,0,99,0,247,128,221,128,8,13,13, - 9,0,0,247,98,98,118,52,52,126,24,126,24,24,24,126, - 1,13,13,3,1,0,128,128,128,128,128,0,0,0,128,128, - 128,128,128,8,16,16,10,1,253,60,102,102,112,56,124,142, - 199,227,113,62,28,14,102,102,60,5,2,2,5,0,10,216, - 216,13,13,26,15,1,0,15,128,48,96,64,16,71,144,136, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,5,0,5,96,144,16,112,144,232,0,248,8, - 7,7,10,1,1,17,51,102,204,102,51,17,9,5,10,11, - 1,2,255,128,255,128,1,128,1,128,1,128,5,2,2,6, - 0,3,248,248,13,13,26,15,1,0,15,128,48,96,64,16, - 95,16,136,136,136,136,143,8,137,8,136,136,92,208,64,16, - 48,96,15,128,5,2,2,5,0,10,248,248,5,5,5,7, - 1,8,112,136,136,136,112,8,11,11,10,1,0,24,24,24, - 255,255,24,24,24,0,255,255,5,8,8,6,0,5,112,152, - 24,16,32,32,64,248,5,8,8,6,0,5,112,136,24,112, - 24,8,136,112,4,3,3,4,0,10,48,96,128,9,13,26, - 9,255,252,231,0,99,0,99,0,99,0,99,0,99,0,99, - 0,119,0,123,128,64,0,64,0,96,0,96,0,7,17,17, - 8,1,252,62,116,244,244,244,244,244,116,20,20,20,20,20, - 20,20,20,20,2,2,2,4,1,4,192,192,4,5,5,6, - 1,252,32,32,16,176,112,3,8,8,6,1,5,64,192,64, - 64,64,64,64,224,5,8,8,6,0,5,112,216,136,136,216, - 112,0,248,8,7,7,10,1,1,136,204,102,51,102,204,136, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 68,64,76,192,233,64,27,64,50,64,39,224,96,64,64,64, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 69,192,78,96,232,96,24,64,48,128,32,128,97,0,67,224, - 13,13,26,13,255,0,112,32,136,96,24,64,112,192,25,128, - 9,16,139,48,114,80,6,208,12,144,9,248,24,16,16,16, - 6,13,13,8,1,252,48,48,0,16,16,48,96,96,192,204, - 140,196,120,13,17,34,14,1,0,24,0,12,0,2,0,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,0,192,1,128,2,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,17,34,14,1,0,2,0,7,0,13,128,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,12,128,31,128,19,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,16,32,14,1,0,13,128,13,128,0,0,2, - 0,7,0,7,0,5,0,13,128,9,128,25,192,16,192,31, - 192,48,224,32,96,96,112,240,248,13,18,36,14,1,0,6, - 0,9,0,9,0,6,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,15,13,26,17,1,0,15,252,7,140,5,132,5, - 128,13,128,9,136,25,248,31,136,17,128,49,128,33,130,97, - 134,247,254,11,17,34,13,1,252,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,4,0,2,0,22,0,14,0,9,17,34,12,1, - 0,48,0,24,0,4,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,17,34,12,1,0,3,0,6,0,8,0,0, - 0,255,128,97,128,96,128,96,0,96,0,97,0,127,0,97, - 0,96,0,96,0,96,128,97,128,255,128,9,17,34,12,1, - 0,8,0,28,0,54,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,16,32,12,1,0,54,0,54,0,0,0,255, - 128,97,128,96,128,96,0,96,0,97,0,127,0,97,0,96, - 0,96,0,96,128,97,128,255,128,6,17,17,6,255,0,192, - 96,16,0,60,24,24,24,24,24,24,24,24,24,24,24,60, - 6,17,17,6,1,0,12,24,32,0,240,96,96,96,96,96, - 96,96,96,96,96,96,240,5,17,17,6,1,0,32,112,216, - 0,240,96,96,96,96,96,96,96,96,96,96,96,240,5,16, - 16,6,1,0,216,216,0,240,96,96,96,96,96,96,96,96, - 96,96,96,240,12,13,26,13,0,0,127,128,49,192,48,96, - 48,96,48,48,48,48,252,48,48,48,48,48,48,96,48,96, - 49,192,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,224,112,96,32,112,32,120,32,92,32,76,32,78,32, - 71,32,67,160,65,224,64,224,64,96,224,32,12,17,34,14, - 1,0,48,0,24,0,4,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,0,192,1,128,2,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,17,34,14, - 1,0,4,0,14,0,27,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,16,32,14, - 1,0,27,0,27,0,0,0,15,0,48,192,96,96,96,96, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 15,0,8,7,7,10,1,1,195,102,60,24,60,102,195,12, - 15,30,14,1,255,0,48,15,96,48,192,96,224,97,160,195, - 48,195,48,198,48,204,48,204,48,88,96,112,96,48,192,111, - 0,192,0,11,17,34,14,2,0,48,0,24,0,4,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,17,34,14,2, - 0,0,192,1,128,2,0,0,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,112,192,57, - 128,31,0,11,17,34,14,2,0,4,0,14,0,27,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,16,32,14,2, - 0,27,0,27,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,112,192,57,128,31, - 0,12,17,34,14,1,0,0,192,1,128,2,0,0,0,240, - 240,112,96,48,192,24,128,25,0,15,0,6,0,6,0,6, - 0,6,0,6,0,6,0,15,0,9,13,26,10,1,0,240, - 0,96,0,96,0,127,0,99,128,97,128,97,128,97,128,99, - 0,126,0,96,0,96,0,240,0,8,13,13,9,0,0,28, - 50,99,99,102,110,124,102,99,99,107,111,238,7,13,13,9, - 1,0,192,96,16,0,120,200,204,28,108,204,204,252,102,7, - 13,13,9,1,0,12,24,32,0,120,200,204,28,108,204,204, - 252,102,7,13,13,9,1,0,16,56,108,0,120,200,204,28, - 108,204,204,252,102,7,13,13,9,1,0,100,252,152,0,120, - 200,204,28,108,204,204,252,102,7,12,12,9,1,0,108,108, - 0,120,200,204,28,108,204,204,252,102,7,14,14,9,1,0, - 48,72,72,48,0,120,200,204,28,108,204,204,252,102,11,9, - 18,12,0,0,123,192,206,96,204,32,31,224,108,0,204,0, - 204,0,254,96,99,192,7,13,13,8,0,252,60,102,192,192, - 192,192,192,102,60,16,8,88,56,7,13,13,8,0,0,192, - 96,16,0,60,102,194,254,192,192,192,102,60,7,13,13,8, - 0,0,6,12,16,0,60,102,194,254,192,192,192,102,60,7, - 13,13,8,0,0,16,56,108,0,60,102,194,254,192,192,192, - 102,60,7,12,12,8,0,0,108,108,0,60,102,194,254,192, - 192,192,102,60,6,13,13,5,254,0,192,96,16,0,24,56, - 24,24,24,24,24,24,60,6,13,13,5,0,0,12,24,32, - 0,96,224,96,96,96,96,96,96,240,5,13,13,5,0,0, - 32,112,216,0,96,224,96,96,96,96,96,96,240,5,12,12, - 5,0,0,216,216,0,96,224,96,96,96,96,96,96,240,8, - 13,13,9,0,0,96,54,56,76,62,102,195,195,195,195,195, - 102,60,9,13,26,10,0,0,50,0,126,0,76,0,0,0, - 102,0,239,0,115,0,99,0,99,0,99,0,99,0,99,0, - 243,128,8,13,13,9,0,0,48,24,4,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,0,6,12,16,0,60, - 102,195,195,195,195,195,102,60,8,13,13,9,0,0,16,56, - 108,0,60,102,195,195,195,195,195,102,60,8,13,13,9,0, - 0,50,126,76,0,60,102,195,195,195,195,195,102,60,8,12, - 12,9,0,0,108,108,0,60,102,195,195,195,195,195,102,60, - 8,8,8,10,1,1,24,24,0,255,255,0,24,24,8,11, - 11,9,0,255,1,63,102,207,203,219,211,243,102,124,192,9, - 13,26,10,0,0,96,0,48,0,8,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,6,0,12,0,16,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,8,0,28,0,54,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 12,24,10,0,0,54,0,54,0,0,0,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,119,0,59,128,8,17,17, - 8,255,252,3,6,8,0,243,99,114,50,54,28,28,12,8, - 24,16,240,224,8,17,17,9,0,252,96,224,96,96,110,119, - 99,99,99,99,99,118,124,96,96,96,240,8,16,16,9,0, - 252,54,54,0,243,99,114,50,54,28,28,12,8,24,16,240, - 224}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=18 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14r[2156] U8G_FONT_SECTION("u8g_font_timR14r") = { - 0,22,29,253,249,13,2,131,6,16,32,127,252,14,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=14 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18[6850] U8G_FONT_SECTION("u8g_font_timR18") = { - 0,29,37,252,247,17,4,9,8,241,32,255,250,23,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,1,3,17, - 17,8,3,251,96,96,0,0,0,64,64,64,64,224,224,224, - 224,224,224,224,64,9,16,32,12,1,254,2,0,2,0,15, - 0,51,128,101,128,196,0,196,0,200,0,200,0,200,0,208, - 0,112,128,113,0,62,0,64,0,64,0,10,17,34,12,1, - 0,15,0,25,128,49,128,48,0,48,0,48,0,48,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,64,190, - 192,231,128,11,12,24,13,1,3,192,96,238,224,127,192,49, - 128,96,192,96,192,96,192,96,192,49,128,127,192,238,224,192, - 96,14,17,34,14,0,0,248,124,112,48,48,32,24,96,24, - 64,12,192,12,128,7,128,3,0,31,224,3,0,31,224,3, - 0,3,0,3,0,3,0,15,192,2,17,17,6,2,0,192, - 192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192, - 8,20,20,12,2,253,28,38,70,96,112,56,60,78,135,131, - 195,226,116,56,28,14,6,98,100,56,6,2,2,8,1,14, - 204,204,17,17,51,19,1,0,7,240,0,28,28,0,48,6, - 0,97,227,0,71,49,0,196,25,128,140,0,128,136,0,128, - 136,0,128,136,0,128,140,0,128,196,25,128,71,113,0,97, - 195,0,48,6,0,28,28,0,7,240,0,7,9,9,8,0, - 8,120,204,12,124,204,204,118,0,254,9,10,20,13,1,1, - 8,128,25,128,51,0,102,0,204,0,204,0,102,0,51,0, - 25,128,8,128,11,7,14,15,2,1,255,224,255,224,0,96, - 0,96,0,96,0,96,0,96,6,2,2,8,0,5,252,252, - 17,17,51,19,1,0,7,240,0,28,28,0,48,6,0,103, - 227,0,66,49,0,194,17,128,130,16,128,130,48,128,131,224, - 128,130,64,128,130,32,128,194,49,128,71,25,0,96,3,0, - 48,6,0,28,28,0,7,240,0,7,2,2,8,1,14,254, - 254,7,7,7,9,1,10,56,68,130,130,130,68,56,10,11, - 22,14,2,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,0,0,255,192,255,192,6,10,10,7,0,7, - 56,76,140,12,8,16,48,32,68,252,6,10,10,7,0,7, - 56,76,140,8,48,8,12,140,136,112,5,4,4,8,2,13, - 24,56,112,192,11,17,34,13,1,251,225,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,113,192,126,192, - 92,224,64,0,192,0,192,0,224,0,64,0,9,21,42,11, - 1,252,31,128,57,0,121,0,121,0,249,0,249,0,249,0, - 121,0,121,0,57,0,25,0,9,0,9,0,9,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,2,3,3,6, - 2,5,192,192,192,6,6,6,8,1,250,16,48,60,12,204, - 120,5,10,10,7,1,7,32,96,160,32,32,32,32,32,32, - 248,7,9,9,8,0,8,56,68,198,198,198,68,56,0,254, - 9,10,20,12,2,1,136,0,204,0,102,0,51,0,25,128, - 25,128,51,0,102,0,204,0,136,0,16,17,34,18,1,0, - 32,24,96,24,160,48,32,96,32,96,32,192,32,192,33,132, - 35,12,251,28,6,20,6,36,12,100,24,68,24,255,48,4, - 48,4,15,17,34,18,1,0,32,24,96,24,160,48,32,96, - 32,96,32,192,32,192,33,156,35,38,251,70,6,6,6,4, - 12,8,24,24,24,16,48,34,48,126,17,17,51,18,0,0, - 56,12,0,76,12,0,140,24,0,8,48,0,48,48,0,8, - 96,0,12,96,0,140,194,0,137,134,0,113,142,0,3,10, - 0,3,18,0,6,50,0,12,34,0,12,127,128,24,2,0, - 24,2,0,8,17,17,11,1,251,12,12,0,0,8,8,24, - 24,56,48,112,224,195,195,193,99,62,17,22,66,17,0,0, - 12,0,0,14,0,0,7,0,0,1,128,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,22,66,17,0,0,0,24,0,0,56,0,0,112, - 0,0,192,0,0,0,0,0,128,0,1,192,0,1,192,0, - 1,96,0,2,96,0,2,48,0,6,48,0,4,48,0,4, - 24,0,12,24,0,15,248,0,8,12,0,24,12,0,16,12, - 0,16,6,0,48,6,0,252,31,128,17,22,66,17,0,0, - 1,128,0,3,192,0,6,96,0,4,32,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,21,63,17,0,0,3,32,0,7,224,0,4,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,17,21,63,17,0,0,6,96,0, - 6,96,0,0,0,0,0,0,0,0,128,0,1,192,0,1, - 192,0,1,96,0,2,96,0,2,48,0,6,48,0,4,48, - 0,4,24,0,12,24,0,15,248,0,8,12,0,24,12,0, - 16,12,0,16,6,0,48,6,0,252,31,128,17,23,69,17, - 0,0,1,192,0,2,32,0,2,32,0,2,32,0,1,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,21,17,51,22,0,0,3,255,240, - 0,240,48,1,176,16,1,48,16,3,48,0,2,48,0,6, - 48,64,4,48,64,4,63,192,12,48,64,15,240,64,8,48, - 0,24,48,0,16,48,8,48,48,8,32,48,24,248,255,248, - 14,23,46,16,1,250,7,228,28,60,56,12,96,4,96,4, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,4,56,8,30,56,7,224,1,0,3,0,3,192,0,192, - 12,192,7,128,13,22,44,15,1,0,24,0,28,0,14,0, - 3,0,0,0,255,240,48,48,48,16,48,16,48,0,48,0, - 48,64,48,64,63,192,48,64,48,64,48,0,48,0,48,8, - 48,8,48,24,255,248,13,22,44,15,1,0,0,96,0,224, - 1,192,3,0,0,0,255,240,48,48,48,16,48,16,48,0, - 48,0,48,64,48,64,63,192,48,64,48,64,48,0,48,0, - 48,8,48,8,48,24,255,248,13,22,44,15,1,0,6,0, - 15,0,25,128,16,128,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,13,21,42,15,1,0, - 25,128,25,128,0,0,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,7,22,22,8,0,0, - 192,224,112,24,0,126,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,126,7,22,22,8,1,0,6,14,28,48, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,6,22,22,8,1,0,48,120,204,132,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,6,21, - 21,8,1,0,204,204,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,16,17,34,17,0,0,127, - 224,24,56,24,28,24,6,24,6,24,3,24,3,255,3,255, - 3,24,3,24,3,24,3,24,6,24,6,24,28,24,56,127, - 224,16,21,42,18,1,0,3,32,7,224,4,192,0,0,240, - 31,48,4,56,4,56,4,44,4,38,4,38,4,35,4,33, - 132,33,132,32,196,32,100,32,100,32,52,32,28,32,28,248, - 12,16,22,44,18,1,0,12,0,14,0,7,0,1,128,0, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,16,22,44,18,1,0,0,48,0,112,0,224,1, - 128,0,0,7,224,28,56,56,28,96,6,96,6,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,96,6,96,6,56, - 28,28,56,7,224,16,22,44,18,1,0,1,128,3,192,6, - 96,4,32,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,3,32,7, - 224,4,192,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,6,96,6, - 96,0,0,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,10,9,18,12,1,1,192,192,97, - 128,51,0,30,0,12,0,30,0,51,0,97,128,192,192,16, - 19,38,18,1,255,0,4,7,228,28,56,56,28,96,38,96, - 70,192,67,192,131,192,131,193,3,193,3,194,3,194,3,100, - 6,104,6,56,28,28,56,39,224,32,0,16,22,44,18,1, - 0,6,0,7,0,3,128,0,192,0,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,16,22,44, - 18,1,0,0,48,0,112,0,224,1,128,0,0,252,31,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,8,24,8,28,48,7,224,16, - 22,44,18,1,0,1,128,3,192,6,96,4,32,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,21,42,18,1,0,6,96,6,96,0,0,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,22,44,18,1,0,0,48,0,112,0,224,1,128,0, - 0,252,63,48,12,56,8,24,24,28,16,12,48,6,32,6, - 96,3,64,3,192,1,128,1,128,1,128,1,128,1,128,1, - 128,7,224,13,17,34,15,1,0,252,0,48,0,48,0,48, - 0,63,192,48,112,48,48,48,24,48,24,48,24,48,48,48, - 112,63,192,48,0,48,0,48,0,252,0,10,17,34,12,1, - 0,30,0,51,0,97,128,97,128,97,128,97,128,99,0,108, - 0,103,0,99,128,97,128,97,192,96,192,96,192,108,192,108, - 128,231,0,9,17,34,11,1,0,96,0,112,0,56,0,12, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,17,34,11,1, - 0,3,0,7,0,14,0,24,0,0,0,62,0,103,0,99, - 0,3,0,15,0,59,0,99,0,195,0,195,0,199,0,251, - 0,113,128,9,17,34,11,1,0,12,0,30,0,51,0,33, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,16,32,11,1, - 0,50,0,126,0,76,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,9,16,32,11,1,0,102,0,102,0,0,0,0,0,62, - 0,103,0,99,0,3,0,15,0,59,0,99,0,195,0,195, - 0,199,0,251,0,113,128,9,18,36,11,1,0,28,0,34, - 0,34,0,34,0,28,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,14,12,24,16,1,0,60,240,103,152,99,12,3,12,15, - 252,59,0,99,0,195,0,195,0,199,132,251,248,112,240,9, - 18,36,11,1,250,31,0,99,128,65,128,192,0,192,0,192, - 0,192,0,192,0,224,0,112,128,127,0,30,0,8,0,24, - 0,30,0,6,0,102,0,60,0,9,17,34,11,1,0,96, - 0,112,0,56,0,12,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,17,34,11,1,0,3,0,7,0,14,0,24,0,0, - 0,30,0,99,0,65,128,193,128,255,128,192,0,192,0,192, - 0,224,0,112,128,127,0,30,0,9,17,34,11,1,0,12, - 0,30,0,51,0,33,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,16,32,11,1,0,51,0,51,0,0,0,0,0,30, - 0,99,0,65,128,193,128,255,128,192,0,192,0,192,0,224, - 0,112,128,127,0,30,0,6,17,17,6,255,0,192,224,112, - 24,0,56,24,24,24,24,24,24,24,24,24,24,60,5,17, - 17,6,1,0,24,56,112,192,0,96,224,96,96,96,96,96, - 96,96,96,96,240,6,17,17,6,0,0,48,120,204,132,0, - 48,112,48,48,48,48,48,48,48,48,48,120,6,16,16,6, - 0,0,204,204,0,0,112,48,48,48,48,48,48,48,48,48, - 48,120,10,17,34,12,1,0,192,0,113,128,30,0,60,0, - 198,0,31,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,11,16,32,13,1,0, - 25,0,63,0,38,0,0,0,103,0,239,128,113,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,241,224, - 10,17,34,12,1,0,96,0,112,0,56,0,12,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,17,34,12,1,0,3,0, - 7,0,14,0,24,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 10,17,34,12,1,0,12,0,30,0,51,0,33,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,16,32,12,1,0,25,0, - 63,0,38,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,16, - 32,12,1,0,51,0,51,0,0,0,0,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 115,128,30,0,10,10,20,12,1,1,12,0,12,0,0,0, - 0,0,255,192,255,192,0,0,0,0,12,0,12,0,10,14, - 28,12,1,255,0,192,30,192,115,128,99,128,198,192,196,192, - 204,192,200,192,216,192,208,192,113,128,115,128,222,0,192,0, - 11,17,34,13,1,0,96,0,112,0,56,0,12,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,17,34,13,1,0,1,128, - 3,128,7,0,12,0,0,0,225,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,192,62,192,28,224, - 11,17,34,13,1,0,12,0,30,0,51,0,33,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,16,32,13,1,0,51,0, - 51,0,0,0,0,0,225,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,113,192,62,192,28,224,11,22, - 44,11,0,251,1,128,3,128,7,0,12,0,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,12,0,8,0,24,0,240,0,224,0, - 10,22,44,12,1,251,96,0,224,0,96,0,96,0,96,0, - 110,0,115,128,97,128,96,192,96,192,96,192,96,192,96,192, - 96,192,97,128,115,128,110,0,96,0,96,0,96,0,96,0, - 240,0,11,21,42,11,0,251,51,0,51,0,0,0,0,0, - 241,224,96,192,96,128,48,128,48,128,49,0,25,0,25,0, - 26,0,14,0,14,0,4,0,12,0,8,0,24,0,240,0, - 224,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=13 dx=23 dy= 0 ascent=19 len=60 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18r[3208] U8G_FONT_SECTION("u8g_font_timR18r") = { - 0,29,37,252,247,17,4,9,8,241,32,127,250,19,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=18 dx=32 dy= 0 ascent=30 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24[10419] U8G_FONT_SECTION("u8g_font_timR24") = { - 0,38,48,251,245,23,5,140,13,213,32,255,249,30,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,1,4,22,22,11,3,249,96,240,240,96,0,0,96,96, - 96,96,96,96,96,96,96,96,96,240,240,240,240,96,12,23, - 46,17,2,252,0,64,0,64,0,128,0,128,15,128,56,224, - 113,112,97,112,225,48,195,0,194,0,194,0,230,0,228,0, - 116,16,124,48,63,224,31,192,31,0,16,0,48,0,32,0, - 32,0,15,23,46,17,1,0,1,240,3,152,6,28,6,28, - 14,24,14,0,14,0,14,0,14,0,14,0,255,224,255,224, - 15,0,7,0,7,0,7,0,7,0,6,0,6,2,126,6, - 199,252,207,248,120,240,16,17,34,17,0,3,199,227,255,255, - 62,124,120,30,112,14,224,7,224,7,192,3,192,3,192,3, - 224,7,224,7,112,14,120,30,62,124,255,255,199,227,17,23, - 69,17,0,0,254,31,128,120,7,0,56,6,0,60,4,0, - 28,12,0,30,8,0,14,24,0,15,16,0,7,48,0,7, - 160,0,3,224,0,3,192,0,63,254,0,1,192,0,1,192, - 0,1,192,0,63,254,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,7,240,0,2,23,23,7,2,0,192, - 192,192,192,192,192,192,192,192,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,12,28,56,17,2,251,31,128,49,192, - 97,192,97,192,113,128,56,0,60,0,30,0,15,0,63,128, - 99,192,193,224,192,224,192,112,224,48,112,48,120,48,60,96, - 31,192,15,0,7,128,3,192,1,192,24,224,56,96,56,96, - 56,192,31,128,9,3,6,11,1,18,227,128,227,128,227,128, - 22,23,69,25,1,0,0,252,0,3,255,0,14,1,192,24, - 0,96,48,0,48,96,0,24,96,127,24,193,199,12,195,131, - 12,195,1,12,199,0,12,199,0,12,199,0,12,199,0,12, - 199,128,12,67,129,24,97,230,24,96,124,48,48,0,48,24, - 0,96,14,1,192,7,255,0,1,252,0,9,13,26,9,0, - 10,60,0,78,0,198,0,198,0,30,0,102,0,198,0,198, - 0,239,128,123,0,0,0,0,0,255,0,13,13,26,17,1, - 1,2,8,6,24,12,48,24,96,56,224,113,192,227,128,113, - 192,56,224,24,96,12,48,6,24,2,8,16,9,18,18,1, - 4,255,255,255,255,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,8,2,2,11,1,7,255,255,22,23,69,25,1, - 0,0,254,0,3,255,0,14,1,192,24,0,96,48,0,48, - 35,252,24,96,199,24,192,195,12,192,195,12,192,195,12,192, - 198,12,192,248,12,192,220,12,192,204,12,192,206,12,64,198, - 8,96,199,24,35,227,208,48,0,48,24,0,96,14,1,192, - 3,255,0,0,252,0,10,2,4,11,0,18,255,192,255,192, - 10,10,20,13,1,13,30,0,63,0,97,128,192,192,192,192, - 192,192,192,192,97,128,63,0,30,0,16,20,40,19,1,0, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,255,255,255,255,9,14,28,10,0,9,60,0, - 78,0,135,0,3,0,3,0,7,0,6,0,12,0,24,0, - 16,0,32,0,64,128,255,0,254,0,9,14,28,10,0,9, - 62,0,71,0,131,0,3,0,3,0,6,0,60,0,7,0, - 3,128,1,128,1,128,193,128,227,0,126,0,7,6,6,11, - 3,17,6,14,28,48,96,192,16,22,44,17,0,249,248,124, - 56,28,56,28,56,28,56,28,56,28,56,28,56,28,56,28, - 56,28,56,28,56,60,60,124,63,223,47,152,32,0,112,0, - 112,0,112,0,112,0,112,0,32,0,13,29,58,15,1,250, - 7,248,30,32,62,32,126,32,126,32,254,32,254,32,254,32, - 254,32,126,32,126,32,62,32,30,32,14,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,4,4,4,8,2,7, - 96,240,240,96,6,7,7,11,2,249,32,96,120,28,12,28, - 248,6,14,14,10,2,9,48,240,48,48,48,48,48,48,48, - 48,48,48,48,252,9,13,26,10,0,10,62,0,99,0,195, - 128,193,128,193,128,193,128,193,128,225,128,99,0,62,0,0, - 0,0,0,255,128,13,13,26,16,2,1,130,0,195,0,97, - 128,48,192,56,224,28,112,14,56,28,112,56,224,48,192,97, - 128,195,0,130,0,22,23,69,25,2,0,48,0,96,240,0, - 96,48,0,192,48,1,192,48,1,128,48,3,0,48,3,0, - 48,6,0,48,14,0,48,12,16,48,24,48,48,24,112,48, - 48,112,252,96,240,0,97,176,0,193,48,1,194,48,1,134, - 48,3,12,48,3,31,252,6,0,48,12,0,48,12,0,48, - 23,23,69,25,1,0,48,0,192,240,0,192,48,1,128,48, - 3,128,48,3,0,48,6,0,48,6,0,48,12,0,48,28, - 0,48,24,240,48,49,56,48,50,28,48,96,12,252,224,12, - 0,192,28,1,128,24,3,128,48,3,0,96,6,0,64,6, - 0,128,12,1,2,24,3,252,24,3,248,24,23,69,25,0, - 0,62,0,24,71,0,24,131,0,48,3,0,112,3,0,96, - 6,0,192,60,0,192,7,1,128,3,131,128,1,131,4,1, - 134,12,193,134,28,227,12,28,126,24,60,0,24,108,0,48, - 76,0,112,140,0,97,140,0,195,12,0,199,255,1,128,12, - 3,0,12,3,0,12,11,22,44,14,1,249,6,0,15,0, - 15,0,6,0,0,0,2,0,2,0,6,0,4,0,12,0, - 24,0,56,0,48,0,112,0,112,0,224,192,224,224,224,224, - 112,96,112,96,57,192,31,0,22,30,90,24,1,0,6,0, - 0,7,0,0,3,128,0,0,192,0,0,96,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,1, - 128,0,3,128,0,7,0,0,12,0,0,24,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,48, - 0,0,120,0,0,252,0,1,206,0,3,3,0,2,1,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,28,84,24,1,0,0,224, - 128,1,249,128,3,63,0,2,14,0,0,0,0,0,48,0, - 0,48,0,0,112,0,0,120,0,0,120,0,0,252,0,0, - 220,0,0,156,0,1,142,0,1,14,0,3,15,0,3,7, - 0,2,7,0,6,7,128,6,3,128,15,255,192,12,3,192, - 24,1,192,24,1,224,48,1,224,48,0,240,112,0,240,252, - 3,252,22,28,84,24,1,0,1,199,0,1,199,0,1,199, - 0,0,0,0,0,0,0,0,48,0,0,48,0,0,112,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,22,30,90,24, - 1,0,0,112,0,0,248,0,1,140,0,1,4,0,1,140, - 0,0,248,0,0,112,0,0,0,0,0,48,0,0,48,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,28,23,92,30, - 1,0,0,255,255,224,0,31,129,224,0,31,0,96,0,55, - 0,32,0,55,0,32,0,103,0,0,0,103,0,0,0,71, - 0,128,0,199,0,128,0,199,1,128,1,135,3,128,1,135, - 255,128,3,7,3,128,3,7,1,128,7,255,0,128,6,7, - 0,128,12,7,0,0,12,7,0,16,24,7,0,16,24,7, - 0,48,48,7,0,96,48,15,129,224,254,63,255,224,20,30, - 90,22,1,249,1,255,16,7,131,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,16,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,56,0,0,56,0,16,28,0,48, - 14,0,96,7,131,192,1,255,0,0,64,0,0,192,0,0, - 240,0,0,56,0,0,24,0,0,56,0,1,240,0,19,30, - 90,20,1,0,3,0,0,3,128,0,1,192,0,0,96,0, - 0,48,0,0,24,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,6,0,0,14,0,0,28,0,0,48,0, - 0,96,0,0,192,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,48,0,0,120,0,0,252,0,1,206,0, - 3,3,0,2,1,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,28, - 84,20,1,0,3,142,0,3,142,0,3,142,0,0,0,0, - 0,0,0,255,255,192,62,3,192,28,0,192,28,0,64,28, - 0,64,28,0,0,28,0,0,28,0,0,28,1,0,28,1, - 0,28,3,0,31,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,32,28,0,32,28,0,96,28, - 0,192,62,3,192,255,255,192,9,30,60,11,1,0,96,0, - 112,0,56,0,12,0,6,0,3,0,0,0,255,128,62,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,62,0,255,128,9,30,60,11,1,0, - 1,128,3,128,7,0,12,0,24,0,48,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,10,30,60,11, - 1,0,12,0,30,0,63,0,115,128,192,192,128,64,0,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,9,28, - 56,11,1,0,227,128,227,128,227,128,0,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,22,23,69,24, - 1,0,255,254,0,62,7,128,28,1,192,28,0,224,28,0, - 112,28,0,112,28,0,56,28,0,56,28,0,60,28,0,60, - 28,0,60,255,192,60,255,192,60,28,0,60,28,0,60,28, - 0,56,28,0,56,28,0,112,28,0,112,28,0,224,28,1, - 192,62,7,128,255,254,0,22,29,87,24,1,0,0,224,128, - 1,249,128,3,63,0,2,14,0,0,0,0,0,0,0,248, - 1,252,60,0,112,30,0,32,31,0,32,31,0,32,23,128, - 32,19,192,32,19,192,32,17,224,32,16,240,32,16,248,32, - 16,120,32,16,60,32,16,30,32,16,31,32,16,15,32,16, - 7,160,16,3,224,16,1,224,16,1,224,16,0,224,56,0, - 96,254,0,32,22,30,90,24,1,0,3,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,24,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,1,128,0,3,128, - 0,7,0,0,12,0,0,24,0,0,48,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,48,0,0,120,0, - 0,252,0,1,206,0,3,3,0,2,1,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,28,84,24,1,0,0,224,128,1,249,128, - 3,63,0,2,14,0,0,0,0,1,254,0,7,135,128,14, - 1,192,28,0,224,56,0,112,56,0,112,112,0,56,112,0, - 56,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,112,0,56,112,0,56,56,0,112,56, - 0,112,28,0,224,14,1,192,7,135,128,1,254,0,22,28, - 84,24,1,0,1,199,0,1,199,0,1,199,0,0,0,0, - 0,0,0,1,254,0,7,135,128,14,1,192,28,0,224,56, - 0,112,56,0,112,112,0,56,112,0,56,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 112,0,56,112,0,56,56,0,112,56,0,112,28,0,224,14, - 1,192,7,135,128,1,254,0,16,16,32,19,1,0,64,2, - 224,7,112,14,56,28,28,56,14,112,7,224,3,192,3,192, - 7,224,14,112,28,56,56,28,112,14,224,7,64,2,22,27, - 81,24,1,254,0,0,16,0,0,48,1,254,96,7,135,192, - 14,1,192,28,1,224,56,3,112,56,2,112,112,6,56,112, - 12,56,240,8,60,240,24,60,240,48,60,240,96,60,240,64, - 60,240,192,60,240,128,60,113,128,56,115,0,56,58,0,112, - 62,0,112,28,0,224,30,1,192,55,135,128,33,254,0,96, - 0,0,64,0,0,22,30,90,24,1,0,0,192,0,0,224, - 0,0,112,0,0,24,0,0,12,0,0,6,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,1,128,0,3, - 128,0,7,0,0,12,0,0,24,0,0,48,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,24,0,0,60, - 0,0,126,0,0,231,0,1,129,128,1,0,128,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,28,84,24,1,0,1,199,0,1,199, - 0,1,199,0,0,0,0,0,0,0,255,129,252,62,0,112, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,96, - 30,0,96,14,0,64,15,0,192,7,195,128,1,254,0,22, - 30,90,24,1,0,0,0,192,0,1,192,0,3,128,0,6, - 0,0,12,0,0,24,0,0,0,0,255,192,252,63,0,56, - 30,0,48,15,0,96,15,128,192,7,128,128,3,193,128,3, - 195,0,1,227,0,0,246,0,0,252,0,0,124,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,124,0,1,255,0,18, - 23,69,19,1,0,255,128,0,62,0,0,28,0,0,28,0, - 0,28,0,0,31,252,0,28,31,0,28,7,128,28,3,128, - 28,3,192,28,1,192,28,1,192,28,1,192,28,3,192,28, - 3,128,28,7,128,28,31,0,31,252,0,28,0,0,28,0, - 0,28,0,0,62,0,0,255,128,0,15,23,46,17,1,0, - 7,192,12,112,24,56,24,56,56,56,56,56,56,56,56,56, - 56,48,56,96,57,192,56,120,56,28,56,30,56,14,56,14, - 56,14,56,14,56,14,59,12,59,156,59,152,249,240,13,23, - 46,15,1,0,24,0,28,0,14,0,3,0,1,128,0,192, - 0,0,0,0,31,128,49,192,112,224,112,224,96,224,3,224, - 14,224,24,224,48,224,96,224,224,224,225,224,242,232,126,248, - 60,112,13,23,46,15,1,0,0,192,1,192,3,128,6,0, - 12,0,24,0,0,0,0,0,31,128,49,192,112,224,112,224, - 96,224,3,224,14,224,24,224,48,224,96,224,224,224,225,224, - 242,232,126,248,60,112,13,23,46,15,1,0,6,0,15,0, - 31,128,57,192,96,96,64,32,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 28,16,62,48,99,224,65,192,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 56,224,56,224,56,224,0,0,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,23,46,15,1,0, - 7,0,15,128,24,192,16,64,24,192,15,128,7,0,0,0, - 31,128,49,192,112,224,112,224,96,224,3,224,14,224,24,224, - 48,224,96,224,224,224,225,224,242,232,126,248,60,112,19,15, - 45,22,1,0,31,159,0,49,249,192,112,224,192,112,224,224, - 96,224,224,3,255,224,14,224,0,24,224,0,48,224,0,96, - 224,0,224,224,32,225,240,96,243,120,192,126,63,128,60,31, - 0,12,22,44,15,1,249,15,128,56,192,112,224,96,224,224, - 96,192,0,192,0,192,0,192,0,224,0,224,16,112,48,124, - 96,63,192,15,0,4,0,12,0,15,0,3,128,1,128,3, - 128,31,0,12,23,46,15,1,0,48,0,56,0,28,0,6, - 0,3,0,1,128,0,0,0,0,15,128,57,192,96,224,96, - 112,192,112,255,240,192,0,192,0,192,0,224,0,224,16,112, - 48,124,96,63,192,15,0,12,23,46,15,1,0,1,128,3, - 128,7,0,12,0,24,0,48,0,0,0,0,0,15,128,57, - 192,96,224,96,112,192,112,255,240,192,0,192,0,192,0,224, - 0,224,16,112,48,124,96,63,192,15,0,12,23,46,15,1, - 0,6,0,15,0,31,128,57,192,96,96,64,32,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,12, - 21,42,15,1,0,56,224,56,224,56,224,0,0,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,7, - 23,23,9,1,0,192,224,112,24,12,6,0,0,24,248,56, - 56,56,56,56,56,56,56,56,56,56,56,254,7,23,23,9, - 1,0,6,14,28,48,96,192,0,0,24,248,56,56,56,56, - 56,56,56,56,56,56,56,56,254,10,23,46,9,0,0,12, - 0,30,0,63,0,115,128,192,192,128,64,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,9,21,42, - 9,0,0,227,128,227,128,227,128,0,0,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,14,23,46, - 17,1,0,16,0,56,0,28,112,15,240,15,0,127,128,49, - 192,0,224,7,240,24,240,48,120,112,56,96,60,224,28,224, - 28,224,28,224,28,224,28,112,24,112,56,56,48,28,96,7, - 128,16,21,42,16,0,0,14,8,31,24,49,240,32,224,0, - 0,0,0,24,240,251,248,62,60,60,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,254, - 127,14,23,46,16,1,0,24,0,28,0,14,0,3,0,1, - 128,0,192,0,0,0,0,7,128,24,224,48,112,112,56,96, - 56,224,28,224,28,224,28,224,28,224,28,112,24,112,56,56, - 48,28,96,7,128,14,23,46,16,1,0,0,192,1,192,3, - 128,6,0,12,0,24,0,0,0,0,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,112, - 24,112,56,56,48,28,96,7,128,14,23,46,16,1,0,3, - 0,7,128,15,192,28,224,48,48,32,16,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,28,16,62,48,99,224,65,192,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,56,224,56,224,56,224,0,0,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,16,17,34, - 19,1,0,1,128,3,192,3,192,1,128,0,0,0,0,0, - 0,255,255,255,255,0,0,0,0,0,0,0,0,1,128,3, - 192,3,192,1,128,14,21,42,17,1,253,0,24,0,16,0, - 48,7,160,24,224,48,240,112,184,97,184,225,28,225,28,227, - 28,226,28,230,28,116,24,116,56,60,48,28,96,31,128,48, - 0,32,0,96,0,16,23,46,17,0,0,12,0,14,0,7, - 0,1,128,0,192,0,96,0,0,0,0,248,124,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,60,60,124,31,223,15,152,16,23,46,17,0,0,0, - 96,0,224,1,192,3,0,6,0,12,0,0,0,0,0,248, - 124,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,60,60,124,31,223,15,152,16,23,46, - 17,0,0,1,128,3,192,7,224,14,112,24,24,16,8,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,16,21,42,17,0,0,28,112,28,112,28,112,0,0,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,15,30,60,17,0,249,0,24,0,56,0,112,0,192,1, - 128,3,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,128,1,0,3,0,2,0,62,0,124, - 0,56,0,15,30,60,17,0,249,24,0,248,0,56,0,56, - 0,56,0,56,0,56,0,56,0,57,240,59,248,62,124,60, - 28,56,30,56,14,56,14,56,14,56,14,56,14,56,12,56, - 28,60,24,62,48,59,224,56,0,56,0,56,0,56,0,56, - 0,56,0,255,0,15,28,56,17,1,249,28,112,28,112,28, - 112,0,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,0,1,0,3,0,2,0,62,0,124, - 0,56,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=26 x= 4 y=10 dx=19 dy= 0 ascent=23 len=52 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =23 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24n[717] U8G_FONT_SECTION("u8g_font_timR24n") = { - 0,38,48,251,245,23,0,0,0,0,42,58,0,23,253,23, - 0,12,13,26,17,2,10,6,0,15,0,6,0,198,48,246, - 240,118,224,15,0,118,224,246,240,198,48,6,0,15,0,6, - 0,16,16,32,19,1,1,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,4,7,7,8,2,253,96,240,240, - 112,16,32,64,8,2,2,11,1,7,255,255,4,4,4,8, - 2,0,96,240,240,96,10,26,52,9,0,253,0,192,0,192, - 1,128,1,128,3,128,3,0,3,0,3,0,6,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,24,0,24,0, - 48,0,48,0,48,0,112,0,96,0,96,0,192,0,192,0, - 14,23,46,16,1,0,7,128,28,224,56,112,48,48,112,56, - 112,56,96,24,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,24,112,56,112,56,48,48,56,112, - 28,224,7,128,9,23,46,16,4,0,12,0,28,0,124,0, - 220,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,15,23,46,16,0,0,7,224, - 15,240,28,248,48,60,32,60,96,28,64,28,0,28,0,28, - 0,24,0,56,0,48,0,96,0,96,0,192,1,128,3,0, - 6,0,12,2,24,6,63,252,127,248,255,248,12,23,46,16, - 2,0,15,128,63,192,97,224,192,224,128,224,0,224,0,192, - 0,192,1,128,3,0,7,192,31,224,1,240,0,112,0,112, - 0,48,0,48,0,48,0,112,0,96,224,192,243,128,127,0, - 14,23,46,16,1,0,0,96,0,224,0,224,1,224,1,96, - 3,96,6,96,4,96,12,96,24,96,16,96,48,96,96,96, - 64,96,255,252,255,252,255,252,0,96,0,96,0,96,0,96, - 0,96,0,96,13,23,46,16,1,0,15,248,31,240,31,224, - 16,0,48,0,32,0,126,0,127,128,127,192,7,224,1,224, - 0,240,0,112,0,112,0,48,0,48,0,48,0,48,0,96, - 0,96,224,192,243,128,126,0,14,23,46,16,1,0,0,120, - 1,192,3,128,15,0,30,0,28,0,56,0,120,0,112,0, - 115,192,247,240,248,120,224,56,224,60,224,28,224,28,224,28, - 224,28,112,28,112,24,56,56,28,96,7,192,14,23,46,16, - 1,0,63,252,127,252,96,24,192,24,128,56,0,48,0,48, - 0,48,0,96,0,96,0,96,0,224,0,192,0,192,1,192, - 1,128,1,128,1,128,3,0,3,0,3,0,7,0,6,0, - 13,23,46,16,2,0,31,128,56,224,112,112,224,48,224,48, - 224,48,224,112,240,96,124,192,63,0,31,128,15,192,27,224, - 113,240,96,240,224,120,192,120,192,56,192,56,224,56,96,112, - 112,224,31,192,14,23,46,16,1,0,7,128,24,224,48,112, - 112,56,96,56,224,28,224,28,224,28,224,28,224,28,240,28, - 112,28,120,60,62,252,15,184,0,56,0,112,0,112,0,224, - 1,192,3,128,15,0,120,0,4,15,15,9,2,0,96,240, - 240,96,0,0,0,0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=17 dx=32 dy= 0 ascent=25 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24r[4764] U8G_FONT_SECTION("u8g_font_timR24r") = { - 0,38,48,251,245,23,5,140,13,213,32,127,249,25,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=11 h=13 x= 1 y=10 dx=12 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssb[2656] U8G_FONT_SECTION("u8g_font_tpssb") = { - 0,11,17,0,252,9,1,205,3,159,32,255,252,13,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,2,9,9,3,0,0,192,192,0,192,192,192,192, - 192,192,5,7,7,7,1,0,32,112,168,160,168,112,32,6, - 9,9,7,0,0,192,192,248,192,192,192,204,204,252,5,5, - 5,7,1,1,136,112,80,112,136,6,9,9,8,1,0,204, - 204,120,48,48,120,48,120,48,2,9,9,4,1,0,192,192, - 192,0,0,0,192,192,192,8,10,10,10,1,0,124,192,126, - 195,126,3,3,3,195,62,5,1,1,7,1,3,216,9,7, - 14,11,1,0,62,0,65,0,221,128,209,128,221,128,65,0, - 62,0,7,8,8,9,1,0,120,204,204,204,204,126,0,254, - 7,3,3,9,1,2,102,204,102,5,3,3,7,1,1,248, - 248,24,255,9,7,14,11,1,0,62,0,65,0,221,128,209, - 128,209,128,65,0,62,0,5,1,1,6,0,6,248,3,3, - 3,5,1,2,224,160,224,5,7,7,7,1,0,32,32,248, - 32,32,0,248,255,255,255,255,255,255,255,255,255,7,3,3, - 9,1,2,204,102,204,255,255,255,255,6,12,12,7,0,0, - 96,48,0,120,204,204,252,204,204,204,204,204,6,12,12,7, - 0,0,24,48,0,120,204,204,252,204,204,204,204,204,6,12, - 12,7,0,0,48,72,0,120,204,204,252,204,204,204,204,204, - 6,12,12,7,0,0,232,184,0,120,204,204,252,204,204,204, - 204,204,6,11,11,7,0,0,72,0,120,204,204,252,204,204, - 204,204,204,6,13,13,7,0,0,48,72,48,0,120,204,204, - 252,204,204,204,204,204,11,9,18,12,0,0,127,224,206,0, - 206,0,255,192,206,0,206,0,206,0,206,0,207,224,6,11, - 11,7,0,254,120,204,192,192,192,192,192,204,120,48,96,6, - 12,12,7,0,0,96,48,0,252,192,192,248,192,192,192,192, - 252,6,12,12,7,0,0,24,48,0,252,192,192,248,192,192, - 192,192,252,6,12,12,7,0,0,48,72,0,252,192,192,248, - 192,192,192,192,252,6,11,11,7,0,0,204,0,252,192,192, - 248,192,192,192,192,252,3,12,12,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,96,3,12,12,4,0,0,96,192, - 0,192,192,192,192,192,192,192,192,192,4,12,12,5,0,0, - 96,144,0,96,96,96,96,96,96,96,96,96,6,11,11,7, - 0,0,204,0,48,48,48,48,48,48,48,48,48,6,9,9, - 7,0,0,248,204,204,236,204,204,204,204,248,6,12,12,7, - 0,0,232,184,0,204,236,252,220,204,204,204,204,204,6,12, - 12,7,0,0,96,48,0,120,204,204,204,204,204,204,204,120, - 6,12,12,7,0,0,24,48,0,120,204,204,204,204,204,204, - 204,120,6,12,12,7,0,0,48,72,0,120,204,204,204,204, - 204,204,204,120,6,12,12,7,0,0,232,184,0,120,204,204, - 204,204,204,204,204,120,6,11,11,7,0,0,204,0,120,204, - 204,204,204,204,204,204,120,3,3,3,6,1,2,160,64,160, - 6,9,9,7,0,0,120,204,220,220,236,236,236,204,120,6, - 12,12,7,0,0,96,48,0,204,204,204,204,204,204,204,204, - 120,6,12,12,7,0,0,24,48,0,204,204,204,204,204,204, - 204,204,120,6,12,12,7,0,0,48,72,0,204,204,204,204, - 204,204,204,204,120,6,11,11,7,0,0,204,0,204,204,204, - 204,204,204,204,204,120,6,12,12,7,0,0,24,48,0,204, - 204,120,48,48,48,48,48,48,7,9,9,8,0,0,192,192, - 252,198,252,192,192,192,192,7,11,11,8,0,254,252,198,220, - 198,198,198,220,192,192,192,192,6,9,9,7,0,0,96,48, - 0,120,204,204,204,204,124,6,9,9,7,0,0,24,48,0, - 120,204,204,204,204,124,6,9,9,7,0,0,48,72,0,120, - 204,204,204,204,124,6,9,9,7,0,0,232,184,0,120,204, - 204,204,204,124,6,8,8,7,0,0,204,0,120,204,204,204, - 204,124,6,10,10,7,0,0,48,72,48,0,120,204,204,204, - 204,124,9,6,12,11,1,0,127,128,136,128,143,128,136,0, - 136,128,127,128,6,8,8,7,0,254,120,204,192,192,204,120, - 48,96,6,9,9,7,0,0,96,48,0,120,204,252,192,204, - 120,6,9,9,7,0,0,24,48,0,120,204,252,192,204,120, - 6,9,9,7,0,0,48,72,0,120,204,252,192,204,120,6, - 8,8,7,0,0,204,0,120,204,252,192,204,120,3,12,12, - 4,0,0,192,96,0,96,96,96,96,96,96,96,96,96,3, - 12,12,4,0,0,96,192,0,192,192,192,192,192,192,192,192, - 192,4,12,12,5,0,0,96,144,0,96,96,96,96,96,96, - 96,96,96,6,11,11,7,0,0,204,0,48,48,48,48,48, - 48,48,48,48,6,9,9,7,0,0,12,60,12,124,204,204, - 204,204,124,6,9,9,7,0,0,232,184,0,248,236,204,204, - 204,204,6,9,9,7,0,0,96,48,0,120,204,204,204,204, - 120,6,9,9,7,0,0,24,48,0,120,204,204,204,204,120, - 6,9,9,7,0,0,48,72,0,120,204,204,204,204,120,6, - 9,9,7,0,0,232,184,0,120,204,204,204,204,120,6,8, - 8,7,0,0,204,0,120,204,204,204,204,120,6,6,6,7, - 0,1,48,0,252,252,0,48,6,6,6,7,0,0,120,220, - 220,236,236,120,6,9,9,7,0,0,96,48,0,204,204,204, - 204,204,120,6,9,9,7,0,0,24,48,0,204,204,204,204, - 204,120,6,9,9,7,0,0,48,72,0,204,204,204,204,204, - 120,6,8,8,7,0,0,204,0,204,204,204,204,204,120,6, - 13,13,7,0,252,24,48,0,204,204,204,204,204,124,12,12, - 204,120,6,6,6,7,0,0,192,248,204,248,192,192,6,12, - 12,7,0,252,204,0,204,204,204,204,204,124,12,12,204,120 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 6 h= 9 x= 1 y= 3 dx= 8 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbn[240] U8G_FONT_SECTION("u8g_font_tpssbn") = { - 0,11,17,0,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,6,6, - 6,8,1,1,48,48,252,252,48,48,3,2,2,5,1,255, - 96,192,5,2,2,7,1,3,248,248,2,1,1,4,1,0, - 192,6,9,9,8,1,0,12,24,24,48,48,48,96,96,192, - 6,9,9,7,0,0,120,204,204,204,204,204,204,204,120,6, - 9,9,7,0,0,48,112,240,48,48,48,48,48,252,6,9, - 9,7,0,0,120,204,204,12,24,48,96,192,252,6,9,9, - 7,0,0,120,204,12,56,12,12,12,204,120,6,9,9,7, - 0,0,12,204,204,252,12,12,12,12,12,6,9,9,7,0, - 0,252,192,192,248,12,12,12,204,120,6,9,9,7,0,0, - 120,204,192,248,204,204,204,204,120,6,9,9,7,0,0,252, - 12,24,48,96,96,96,96,96,6,9,9,7,0,0,120,204, - 204,120,204,204,204,204,120,6,9,9,7,0,0,120,204,204, - 204,124,12,12,204,120,2,4,4,4,1,0,192,0,0,192 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 1 y=10 dx=12 dy= 0 ascent=12 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbr[1346] U8G_FONT_SECTION("u8g_font_tpssbr") = { - 0,11,17,0,252,9,1,205,3,159,32,127,252,12,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpss[2605] U8G_FONT_SECTION("u8g_font_tpss") = { - 0,11,17,255,252,9,1,192,3,136,32,255,252,13,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,1,9,9,2,0,0,128,128,0,128, - 128,128,128,128,128,5,7,7,7,1,0,32,112,168,160,168, - 112,32,5,9,9,7,1,0,128,128,240,128,128,128,136,136, - 248,5,5,5,7,1,1,136,112,80,112,136,5,9,9,7, - 1,0,136,136,80,32,32,248,32,248,32,1,9,9,3,1, - 0,128,128,128,0,0,0,128,128,128,6,10,10,8,1,0, - 120,128,120,132,120,4,4,4,132,120,5,1,1,7,1,3, - 136,7,7,7,9,1,0,124,130,186,162,186,130,124,6,8, - 8,8,1,0,112,136,136,136,136,116,0,252,5,3,3,7, - 1,2,72,144,72,5,2,2,7,1,2,248,8,0,0,0, - 8,0,0,7,7,7,9,1,0,124,130,186,162,162,130,124, - 5,1,1,6,0,6,248,3,3,3,5,1,2,64,160,64, - 5,7,7,7,1,0,32,32,248,32,32,0,248,255,255,255, - 0,0,0,8,0,0,255,0,0,0,8,0,0,255,255,255, - 5,3,3,7,1,2,144,72,144,255,255,255,255,5,12,12, - 6,0,0,64,32,0,112,136,136,248,136,136,136,136,136,5, - 12,12,6,0,0,16,32,0,112,136,136,248,136,136,136,136, - 136,5,12,12,6,0,0,32,80,0,112,136,136,248,136,136, - 136,136,136,5,12,12,6,0,0,232,184,0,112,136,136,248, - 136,136,136,136,136,5,11,11,6,0,0,80,0,112,136,136, - 248,136,136,136,136,136,5,13,13,6,0,0,32,80,32,0, - 112,136,136,248,136,136,136,136,136,9,9,18,10,0,0,127, - 128,136,0,136,0,255,0,136,0,136,0,136,0,136,0,143, - 128,5,9,9,6,0,254,112,136,128,128,128,136,112,32,96, - 5,12,12,6,0,0,64,32,0,248,128,128,240,128,128,128, - 128,248,5,12,12,6,0,0,16,32,0,248,128,128,240,128, - 128,128,128,248,5,12,12,6,0,0,32,80,0,248,128,128, - 240,128,128,128,128,248,5,11,11,6,0,0,80,0,248,128, - 128,240,128,128,128,128,248,2,12,12,2,0,0,128,64,0, - 64,64,64,64,64,64,64,64,64,2,12,12,2,0,0,64, - 128,0,128,128,128,128,128,128,128,128,128,3,12,12,2,255, - 0,64,160,0,64,64,64,64,64,64,64,64,64,3,11,11, - 2,255,0,160,0,64,64,64,64,64,64,64,64,64,5,9, - 9,6,0,0,240,136,136,232,136,136,136,136,240,5,12,12, - 6,0,0,232,184,0,136,136,136,200,168,152,136,136,136,5, - 12,12,6,0,0,64,32,0,112,136,136,136,136,136,136,136, - 112,5,12,12,6,0,0,16,32,0,112,136,136,136,136,136, - 136,136,112,5,12,12,6,0,0,32,80,0,112,136,136,136, - 136,136,136,136,112,5,12,12,6,0,0,232,184,0,112,136, - 136,136,136,136,136,136,112,5,11,11,6,0,0,80,0,112, - 136,136,136,136,136,136,136,112,3,3,3,6,1,2,160,64, - 160,7,9,9,8,0,0,58,68,76,84,84,84,100,68,184, - 5,12,12,6,0,0,64,32,0,136,136,136,136,136,136,136, - 136,112,5,12,12,6,0,0,16,32,0,136,136,136,136,136, - 136,136,136,112,5,12,12,6,0,0,32,80,0,136,136,136, - 136,136,136,136,136,112,5,11,11,6,0,0,80,0,136,136, - 136,136,136,136,136,136,112,5,12,12,6,0,0,16,32,0, - 136,136,80,32,32,32,32,32,32,5,9,9,6,0,0,128, - 128,240,136,240,128,128,128,128,5,11,11,6,0,254,240,136, - 176,136,136,136,176,128,128,128,128,5,9,9,6,0,0,64, - 32,0,112,136,136,136,136,120,5,9,9,6,0,0,16,32, - 0,112,136,136,136,136,120,5,9,9,6,0,0,32,80,0, - 112,136,136,136,136,120,5,9,9,6,0,0,232,184,0,112, - 136,136,136,136,120,5,8,8,6,0,0,80,0,112,136,136, - 136,136,120,5,10,10,6,0,0,32,80,32,0,112,136,136, - 136,136,120,9,6,12,10,0,0,119,0,136,128,143,128,136, - 0,136,128,119,0,5,8,8,6,0,254,112,136,128,128,136, - 112,32,64,5,6,6,6,0,0,112,136,248,128,136,112,5, - 6,6,6,0,0,112,136,248,128,136,112,5,6,6,6,0, - 0,112,136,248,128,136,112,5,6,6,6,0,0,112,136,248, - 128,136,112,2,10,10,3,0,0,128,64,0,0,64,64,64, - 64,64,64,2,10,10,3,0,0,64,128,0,0,128,128,128, - 128,128,128,3,10,10,4,0,0,64,160,0,0,64,64,64, - 64,64,64,3,9,9,4,0,0,160,0,0,64,64,64,64, - 64,64,5,9,9,6,0,0,8,56,8,120,136,136,136,136, - 120,5,9,9,6,0,0,232,184,0,176,200,136,136,136,136, - 5,9,9,6,0,0,64,32,0,112,136,136,136,136,112,5, - 9,9,6,0,0,16,32,0,112,136,136,136,136,112,5,9, - 9,6,0,0,32,80,0,112,136,136,136,136,112,5,9,9, - 6,0,0,232,184,0,112,136,136,136,136,112,5,8,8,6, - 0,0,80,0,112,136,136,136,136,112,5,5,5,6,0,1, - 32,0,248,0,32,5,6,6,6,0,0,112,152,168,168,200, - 112,5,9,9,6,0,0,64,32,0,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,0,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,136,136,136,136,136,112,5,8, - 8,6,0,0,80,0,136,136,136,136,136,112,5,13,13,6, - 0,252,16,32,0,136,136,136,136,136,120,8,8,136,112,5, - 6,6,5,0,0,128,240,136,240,128,128,5,12,12,6,0, - 252,80,0,136,136,136,136,136,120,8,8,136,112}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 5 h= 9 x= 1 y= 3 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssn[238] U8G_FONT_SECTION("u8g_font_tpssn") = { - 0,11,17,255,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,5,5, - 5,7,1,1,32,32,248,32,32,2,2,2,4,1,255,64, - 128,5,1,1,7,1,3,248,1,1,1,3,1,0,128,5, - 9,9,7,1,0,8,16,16,32,32,32,64,64,128,5,9, - 9,6,0,0,112,136,136,136,136,136,136,136,112,5,9,9, - 6,0,0,32,96,160,32,32,32,32,32,248,5,9,9,6, - 0,0,112,136,136,8,16,32,64,128,248,5,9,9,6,0, - 0,112,136,8,48,8,8,8,136,112,5,9,9,6,0,0, - 8,136,136,248,8,8,8,8,8,5,9,9,6,0,0,248, - 128,128,248,8,8,8,136,112,5,9,9,6,0,0,112,136, - 128,240,136,136,136,136,112,5,9,9,6,0,0,248,8,16, - 32,64,64,64,64,64,5,9,9,6,0,0,112,136,136,112, - 136,136,136,136,112,5,9,9,6,0,0,112,136,136,136,120, - 8,8,136,112,1,4,4,3,1,0,128,0,0,128}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=12 len=16 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssr[1317] U8G_FONT_SECTION("u8g_font_tpssr") = { - 0,11,17,255,252,9,1,192,3,136,32,127,252,12,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_square[1236] U8G_FONT_SECTION("u8g_font_trixel_square") = { - 0,5,9,0,254,5,1,91,2,177,32,255,254,7,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,4,5,5,5,0,0,112,64,96,64,240, - 255,255,255,3,7,7,4,0,254,224,128,224,160,224,32,224, - 255,255,255,3,2,2,4,0,1,160,160,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,3,2,2,4,0,1, - 160,160,255,255,255,255,255,255,255,255,3,7,7,4,0,0, - 160,0,224,160,224,160,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,7,7,4,0,0,160,0, - 224,160,160,160,224,255,255,255,255,255,3,7,7,4,0,0, - 160,0,160,160,160,160,224,255,255,3,7,7,4,0,254,224, - 160,224,160,224,128,128,255,255,255,255,4,5,5,5,0,0, - 160,0,224,160,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,3,5,5,4,0,0,160,0,224,160, - 224,255,255,255,255,255,3,5,5,4,0,0,160,0,160,160, - 224,255,255,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[187] U8G_FONT_SECTION("u8g_font_trixel_squaren") = { - 0,5,9,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,4,0,2,160,64,160,3,3,3,4,0,0, - 64,224,64,1,2,2,2,0,255,128,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,3,5,5,4,0,0,32, - 96,64,192,128,3,5,5,4,0,0,224,160,160,160,224,2, - 5,5,3,0,0,64,192,64,64,64,3,5,5,4,0,0, - 224,160,96,192,224,3,5,5,4,0,0,224,32,96,32,224, - 3,5,5,4,0,0,160,160,224,32,32,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,128,224,160, - 224,3,5,5,4,0,0,224,32,32,32,32,3,5,5,4, - 0,0,224,160,224,160,224,3,5,5,4,0,0,224,160,224, - 32,224,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[994] U8G_FONT_SECTION("u8g_font_trixel_squarer") = { - 0,5,9,0,254,5,1,91,2,177,32,127,254,6,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 8 h= 7 x= 1 y= 4 dx= 9 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4[1660] U8G_FONT_SECTION("u8g_font_u8glib_4") = { - 1,9,6,0,255,4,0,233,1,198,32,255,255,6,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240,2,0,32,2,53,69,160,0, - 160,160,224,2,54,70,64,128,0,224,192,224,2,54,70,64, - 160,0,96,160,224,2,53,69,160,0,96,160,224,2,54,70, - 64,32,0,96,160,224,2,54,70,64,160,64,96,160,224,1, - 36,52,192,128,192,192,2,54,70,64,160,0,224,192,224,2, - 53,69,160,0,224,192,224,2,54,70,64,32,0,224,192,224, - 2,52,68,160,0,64,64,2,53,149,64,160,0,64,64,2, - 37,53,128,64,0,64,64,2,69,85,144,96,144,240,144,2, - 70,86,96,144,96,144,240,144,2,70,86,32,64,240,224,128, - 240,2,83,99,120,176,248,2,132,148,31,46,120,143,2,54, - 70,64,160,0,224,160,224,2,53,69,160,0,224,160,224,2, - 54,70,128,64,0,224,160,224,2,54,70,64,160,0,160,160, - 224,2,54,70,64,32,0,160,160,224,1,54,70,160,0,160, - 224,32,96,2,69,85,144,96,144,144,96,2,69,85,144,0, - 144,144,240,2,0,64,2,0,64,2,0,64,2,0,64,2, - 0,64,2,54,70,64,128,0,96,160,224,2,37,53,64,128, - 0,128,128,2,54,70,32,64,0,224,160,224,2,54,70,32, - 64,0,160,160,224,2,70,70,80,160,0,192,160,160,2,70, - 86,80,160,144,208,176,144,2,21,37,128,128,0,128,128,1, - 54,70,224,128,224,224,32,224,6,65,81,144,1,119,151,124, - 130,186,162,186,130,124,2,0,144,2,51,67,96,192,96,3, - 50,66,224,32,2,0,144,1,119,151,124,130,186,178,170,130, - 124,6,65,81,240,4,51,67,224,160,224,2,52,148,64,224, - 64,224,4,51,67,192,64,96,4,35,51,192,64,192,5,34, - 50,64,128,1,52,148,160,160,224,128,1,101,117,124,244,116, - 20,20,19,17,49,128,2,0,144,4,35,51,192,64,64,4, - 51,67,224,160,224,2,51,67,192,96,192,1,118,134,196,72, - 80,40,78,132,1,118,134,196,72,80,44,68,134,1,118,150, - 196,72,208,40,78,132,2,0,64,2,70,86,64,32,96,144, - 240,144,2,70,86,32,64,96,144,240,144,2,70,86,96,144, - 96,144,240,144,2,70,86,80,160,96,144,240,144,2,69,85, - 144,96,144,240,144,2,70,86,96,0,96,144,240,144,2,132, - 148,31,46,120,143,1,69,85,240,128,240,32,96,2,70,86, - 64,32,240,224,128,240,2,70,86,32,64,240,224,128,240,2, - 70,86,96,144,240,224,128,240,2,70,86,144,0,240,224,128, - 240,2,38,54,128,64,128,128,128,128,2,38,54,64,128,64, - 64,64,64,2,54,70,64,160,64,64,64,64,2,53,69,160, - 64,64,64,64,2,84,100,112,232,72,112,2,70,86,80,160, - 0,144,208,176,2,70,86,64,32,96,144,144,96,2,70,86, - 32,64,96,144,144,96,2,70,86,96,144,96,144,144,96,2, - 70,86,80,160,96,144,144,96,2,69,85,144,96,144,144,96, - 2,51,67,160,64,160,1,102,118,4,56,88,104,112,128,2, - 70,86,64,32,144,144,144,240,2,70,86,32,64,144,144,144, - 240,2,70,86,96,144,0,144,144,240,2,69,85,144,0,144, - 144,240,2,70,86,32,64,144,240,16,240,1,70,86,128,224, - 144,144,224,128,1,53,69,192,192,160,192,128,2,54,70,64, - 32,0,96,160,224,2,54,70,64,128,0,96,160,224,2,54, - 70,64,160,0,96,160,224,2,70,70,80,160,0,96,160,224, - 2,53,69,160,0,96,160,224,2,54,70,64,160,64,96,160, - 224,2,83,99,120,176,248,1,36,52,192,128,192,192,2,54, - 70,64,32,0,224,160,192,2,54,70,64,128,0,224,160,192, - 2,54,70,64,160,0,224,160,192,2,53,69,160,0,224,160, - 192,2,37,53,128,64,0,64,64,2,37,53,64,128,0,128, - 128,2,53,69,64,160,0,64,64,2,52,68,160,0,64,64, - 2,70,86,96,96,16,112,144,96,2,70,70,80,160,0,192, - 160,160,2,54,70,64,32,0,224,160,224,2,54,70,64,128, - 0,224,160,224,2,54,70,64,160,0,224,160,224,2,70,70, - 80,160,0,224,160,224,2,53,69,160,0,224,160,224,2,53, - 69,64,0,224,0,64,1,85,101,8,112,80,112,128,2,54, - 70,64,32,0,160,160,224,2,54,70,64,128,0,160,160,224, - 2,54,70,64,160,0,160,160,224,2,53,69,160,0,160,160, - 224,1,55,71,64,128,0,160,224,32,96,1,53,69,128,192, - 160,192,128,1,54,70,160,0,160,224,32,96}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 5 h= 6 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[664] U8G_FONT_SECTION("u8g_font_u8glib_4r") = { - 1,9,6,0,255,4,0,233,1,198,32,127,255,5,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240}; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_10[5136] U8G_FONT_SECTION("u8g_font_unifont_0_10") = { - 0,16,16,0,254,10,5,43,7,25,10,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,65,241,193,0,65,241,193,0,125,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,69,241,196,64,68,65,168,64,16, - 65,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,125,241,193, - 0,125,241,193,0,65,1,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,61,225,193,16,65,225,193,32,61,17,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,60,225,193,16,57,17,133, - 16,120,225,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,61, - 241,192,64,56,65,132,64,121,241,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,57,202,32,74,57,202,32,115,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,113,137,202,24,74, - 9,202,8,113,157,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,113,153,202,4,74,9,202,16,113,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,153,202,4,74,25,202,4,113, - 153,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,133,202, - 12,74,21,202,28,113,133,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,147,234,84,106,89,219,212,74,83,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,52,83,194,154,49,23,137, - 18,113,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,123, - 185,193,36,121,57,193,36,121,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,37,196,180,71,173,196,164,52,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,125,17,193,176,125, - 81,193,16,125,17,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,58,93,194,82,50,93,138,82,113,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,207,194,16,121,145,192,80,123, - 143,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,121,193,194, - 0,121,129,192,64,67,129,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,193,194,0,89,129,200,64,59,129,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,193,202,0,113,129,208, - 64,75,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 193,202,0,73,129,200,64,51,129,128,0,0,1,128,0,0, - 1,128,0,85,85,0,0,0,8,0,14,1,10,10,8,4, - 0,128,128,128,128,128,128,128,0,128,128,5,4,4,8,2, - 8,136,136,136,136,6,10,10,8,1,0,36,36,36,252,72, - 72,252,144,144,144,7,10,10,8,1,0,16,124,146,144,112, - 28,18,146,124,16,7,10,10,8,1,0,98,148,148,104,16, - 16,44,82,82,140,7,10,10,8,1,0,56,68,68,68,56, - 114,138,132,140,114,1,4,4,8,4,8,128,128,128,128,3, - 12,12,8,3,255,32,64,64,128,128,128,128,128,128,64,64, - 32,3,12,12,8,2,255,128,64,64,32,32,32,32,32,32, - 64,64,128,7,7,7,8,1,1,16,146,84,56,84,146,16, - 7,7,7,8,1,1,16,16,16,254,16,16,16,2,4,4, - 8,3,254,192,64,64,128,6,1,1,8,1,4,252,2,2, - 2,8,3,0,192,192,6,10,10,8,1,0,4,4,8,16, - 16,32,32,64,128,128,6,10,10,8,1,0,48,72,132,132, - 132,132,132,132,72,48,5,10,10,8,2,0,32,96,160,32, - 32,32,32,32,32,248,6,10,10,8,1,0,120,132,132,4, - 24,32,64,128,128,252,6,10,10,8,1,0,120,132,132,4, - 56,4,4,132,132,120,6,10,10,8,1,0,8,24,40,72, - 136,136,252,8,8,8,6,10,10,8,1,0,252,128,128,128, - 248,4,4,4,132,120,6,10,10,8,1,0,56,64,128,128, - 248,132,132,132,132,120,6,10,10,8,1,0,252,4,4,8, - 8,8,16,16,16,16,6,10,10,8,1,0,120,132,132,132, - 120,132,132,132,132,120,6,10,10,8,1,0,120,132,132,132, - 124,4,4,4,8,112,2,7,7,8,3,1,192,192,0,0, - 0,192,192,2,9,9,8,3,255,192,192,0,0,0,192,64, - 64,128,5,9,9,8,2,0,8,16,32,64,128,64,32,16, - 8,6,5,5,8,1,2,252,0,0,0,252,5,9,9,8, - 1,0,128,64,32,16,8,16,32,64,128,6,10,10,8,1, - 0,120,132,132,4,8,16,16,0,16,16,6,10,10,8,1, - 0,56,68,148,172,164,164,164,156,64,60,6,10,10,8,1, - 0,48,72,72,132,132,252,132,132,132,132,6,10,10,8,1, - 0,248,132,132,132,248,132,132,132,132,248,6,10,10,8,1, - 0,120,132,132,128,128,128,128,132,132,120,6,10,10,8,1, - 0,240,136,132,132,132,132,132,132,136,240,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,252,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,128,6,10,10,8,1, - 0,120,132,132,128,128,156,132,132,140,116,6,10,10,8,1, - 0,132,132,132,132,252,132,132,132,132,132,5,10,10,8,2, - 0,248,32,32,32,32,32,32,32,32,248,7,10,10,8,1, - 0,62,8,8,8,8,8,8,136,136,112,6,10,10,8,1, - 0,132,136,144,160,192,192,160,144,136,132,6,10,10,8,1, - 0,128,128,128,128,128,128,128,128,128,252,6,10,10,8,1, - 0,132,132,204,204,180,180,132,132,132,132,6,10,10,8,1, - 0,132,196,196,164,164,148,148,140,140,132,6,10,10,8,1, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,248,132,132,132,248,128,128,128,128,128,7,11,11,8,1, - 255,120,132,132,132,132,132,132,180,204,120,6,6,10,10,8, - 1,0,248,132,132,132,248,144,136,136,132,132,6,10,10,8, - 1,0,120,132,132,128,96,24,4,132,132,120,7,10,10,8, - 1,0,254,16,16,16,16,16,16,16,16,16,6,10,10,8, - 1,0,132,132,132,132,132,132,132,132,132,120,7,10,10,8, - 1,0,130,130,130,68,68,68,40,40,16,16,6,10,10,8, - 1,0,132,132,132,132,180,180,204,204,132,132,6,10,10,8, - 1,0,132,132,72,72,48,48,72,72,132,132,7,10,10,8, - 1,0,130,130,68,68,40,16,16,16,16,16,6,10,10,8, - 1,0,252,4,4,8,16,32,64,128,128,252,3,12,12,8, - 4,255,224,128,128,128,128,128,128,128,128,128,128,224,6,10, - 10,8,1,0,128,128,64,32,32,16,16,8,4,4,3,12, - 12,8,1,255,224,32,32,32,32,32,32,32,32,32,32,224, - 6,3,3,8,1,9,48,72,132,7,1,1,8,1,255,254, - 3,3,3,8,2,10,128,64,32,6,8,8,8,1,0,120, - 132,4,124,132,132,140,116,6,11,11,8,1,0,128,128,128, - 184,196,132,132,132,132,196,184,6,8,8,8,1,0,120,132, - 128,128,128,128,132,120,6,11,11,8,1,0,4,4,4,116, - 140,132,132,132,132,140,116,6,8,8,8,1,0,120,132,132, - 252,128,128,132,120,5,11,11,8,1,0,24,32,32,32,248, - 32,32,32,32,32,32,6,11,11,8,1,254,4,116,136,136, - 136,112,64,120,132,132,120,6,11,11,8,1,0,128,128,128, - 184,196,132,132,132,132,132,132,5,11,11,8,2,0,32,32, - 0,96,32,32,32,32,32,32,248,5,13,13,8,1,254,8, - 8,0,24,8,8,8,8,8,8,8,144,96,6,10,10,8, - 1,0,128,128,136,144,160,192,160,144,136,132,5,10,10,8, - 2,0,96,32,32,32,32,32,32,32,32,248,7,8,8,8, - 1,0,236,146,146,146,146,146,146,146,6,8,8,8,1,0, - 184,196,132,132,132,132,132,132,6,8,8,8,1,0,120,132, - 132,132,132,132,132,120,6,10,10,8,1,254,184,196,132,132, - 132,132,196,184,128,128,6,10,10,8,1,254,116,140,132,132, - 132,132,140,116,4,4,6,8,8,8,1,0,184,196,132,128, - 128,128,128,128,6,8,8,8,1,0,120,132,128,96,24,4, - 132,120,5,10,10,8,1,0,32,32,248,32,32,32,32,32, - 32,24,6,8,8,8,1,0,132,132,132,132,132,132,140,116, - 6,8,8,8,1,0,132,132,132,72,72,72,48,48,7,8, - 8,8,1,0,130,146,146,146,146,146,146,108,6,8,8,8, - 1,0,132,132,72,48,48,72,132,132,6,10,10,8,1,254, - 132,132,132,132,132,76,52,4,4,120,6,8,8,8,1,0, - 252,4,8,16,32,64,128,252,3,12,12,8,3,255,96,128, - 128,64,64,128,128,64,64,128,128,96,1,14,14,8,4,254, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,3,12, - 12,8,2,255,192,32,32,64,64,32,32,64,64,32,32,192, - 7,3,3,8,1,8,98,146,140,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,209,202,16,75,209,202, - 16,115,223,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,113, - 157,202,82,115,211,194,82,66,93,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,73,157,202,82,122,93,202,80,73,145,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,147,202,82,115, - 159,202,18,114,19,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,75,147,234,82,91,159,202,82,75,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,116,185,166,164,37,165,164,164,116, - 185,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,209,234, - 16,91,209,202,16,75,223,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,205,194,18,49,159,136,82,115,147,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,205,194,18,121,159,192, - 82,123,147,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 157,201,32,121,25,201,4,73,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,75,185,201,8,121,9,201,8,73,49,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,69,205,196,144,68, - 137,168,132,16,153,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,114,29,202,18,114,19,194,18,67,221,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,114,19,202,18,114,19,194,18,67, - 205,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,14,33,137, - 32,14,33,138,32,9,33,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,57,221,194,2,49,141,136,80,115,159,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,2,49,141,136, - 66,115,157,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,113, - 207,202,16,74,13,202,2,113,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,69,202,76,114,69,194,68,65,143,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,114,93,202,66,114, - 77,194,80,65,159,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,157,193,32,49,25,137,4,113,57,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,211,194,18,66,31,194,18,57, - 211,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,69,17,237, - 16,85,81,197,176,69,17,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,59,141,194,82,51,159,138,18,114,19,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,123,141,194,82,123,159,194, - 18,122,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 143,194,80,50,77,138,66,113,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,51,155,196,34,37,163,148,162,99,155,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,57,221,194,8,50, - 9,138,8,113,221,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,8,65,137,192,72,59,157,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,14,249,144,32,12,33,130,32,28, - 33,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,49,207,202, - 16,73,145,200,80,51,143,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,33,203,96,114,161,194,32,66,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,51,143,202,80,123,145,202, - 16,74,15,128,0,0,1,128,0,0,1,128,0,85,85,0, - 0,0,8,0,14,1,10,10,8,4,0,128,128,0,128,128, - 128,128,128,128,128,7,10,10,8,1,0,16,16,124,146,144, - 144,146,124,16,16,7,10,10,8,1,0,28,32,32,32,248, - 32,32,32,124,194,6,8,8,8,1,1,132,72,120,72,72, - 120,72,132,7,10,10,8,1,0,130,68,40,16,254,16,254, - 16,16,16,1,10,10,8,4,0,128,128,128,128,0,0,128, - 128,128,128,6,10,10,8,1,0,120,132,128,120,132,132,120, - 4,132,120,4,2,2,8,2,12,144,144,8,10,10,8,0, - 0,60,66,153,165,161,161,165,153,66,60,5,7,7,8,2, - 5,112,8,120,136,120,0,248,6,9,9,8,1,0,36,36, - 72,72,144,72,72,36,36,6,4,4,8,1,0,252,4,4, - 4,6,1,1,8,1,4,252,8,10,10,8,0,0,60,66, - 185,165,165,185,169,165,66,60,6,1,1,8,1,11,252,3, - 4,4,8,2,10,64,160,160,64,7,9,9,8,1,1,16, - 16,16,254,16,16,16,0,254,5,7,7,8,2,5,112,136, - 8,112,128,128,248,5,7,7,8,2,5,112,136,8,112,8, - 136,112,3,3,3,8,3,10,32,64,128,5,8,8,8,2, - 254,136,136,136,136,216,168,128,128,6,12,12,8,1,255,124, - 244,244,244,244,116,20,20,20,20,20,28,2,2,2,8,3, - 4,192,192,3,2,2,8,2,254,32,192,3,7,7,8,2, - 5,32,96,160,32,32,32,32,5,7,7,8,2,5,112,136, - 136,136,112,0,248,6,9,9,8,1,0,144,144,72,72,36, - 72,72,144,144,6,10,10,8,1,0,68,196,72,80,80,36, - 44,84,156,132,6,10,10,8,1,0,68,196,72,80,80,40, - 52,68,136,156,6,10,10,8,1,0,196,36,72,48,208,36, - 44,84,156,132,6,10,10,8,1,0,16,16,0,16,16,96, - 132,132,132,120,6,14,14,8,1,0,96,24,0,0,48,72, - 72,132,132,252,132,132,132,132,6,14,14,8,1,0,24,96, - 0,0,48,72,72,132,132,252,132,132,132,132,6,14,14,8, - 1,0,48,72,0,0,48,72,72,132,132,252,132,132,132,132, - 6,14,14,8,1,0,100,152,0,0,48,72,72,132,132,252, - 132,132,132,132,6,14,14,8,1,0,72,72,0,0,48,72, - 72,132,132,252,132,132,132,132,6,14,14,8,1,0,48,72, - 48,0,48,72,72,132,132,252,132,132,132,132,7,10,10,8, - 1,0,62,80,144,144,254,144,144,144,144,158,6,12,12,8, - 1,254,120,132,132,128,128,128,128,132,132,120,16,96,6,14, - 14,8,1,0,96,24,0,0,252,128,128,128,248,128,128,128, - 128,252,6,14,14,8,1,0,24,96,0,0,252,128,128,128, - 248,128,128,128,128,252,6,14,14,8,1,0,48,72,0,0, - 252,128,128,128,248,128,128,128,128,252,6,14,14,8,1,0, - 72,72,0,0,252,128,128,128,248,128,128,128,128,252,5,14, - 14,8,2,0,96,24,0,0,248,32,32,32,32,32,32,32, - 32,248,5,14,14,8,2,0,48,192,0,0,248,32,32,32, - 32,32,32,32,32,248,5,14,14,8,2,0,96,144,0,0, - 248,32,32,32,32,32,32,32,32,248,5,14,14,8,2,0, - 144,144,0,0,248,32,32,32,32,32,32,32,32,248,7,10, - 10,8,0,0,120,68,66,66,242,66,66,66,68,120,6,14, - 14,8,1,0,100,152,0,0,132,196,196,164,164,148,148,140, - 140,132,6,14,14,8,1,0,96,24,0,0,120,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,24,96,0,0, - 120,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 48,72,0,0,120,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,100,152,0,0,120,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,72,72,0,0,120,132,132,132, - 132,132,132,132,132,120,6,5,5,8,1,2,132,72,48,72, - 132,6,12,12,8,1,255,4,116,136,140,148,148,164,164,196, - 68,184,128,6,14,14,8,1,0,96,24,0,0,132,132,132, - 132,132,132,132,132,132,120,6,14,14,8,1,0,24,96,0, - 0,132,132,132,132,132,132,132,132,132,120,6,14,14,8,1, - 0,48,72,0,0,132,132,132,132,132,132,132,132,132,120,6, - 14,14,8,1,0,72,72,0,0,132,132,132,132,132,132,132, - 132,132,120,7,14,14,8,1,0,24,96,0,0,130,130,68, - 68,40,16,16,16,16,16,6,11,11,8,1,0,128,128,240, - 136,132,132,136,240,128,128,128,6,10,10,8,1,0,112,136, - 136,136,248,132,132,132,196,184,6,12,12,8,1,0,96,24, - 0,0,120,132,4,124,132,132,140,116,6,12,12,8,1,0, - 24,96,0,0,120,132,4,124,132,132,140,116,6,12,12,8, - 1,0,48,72,0,0,120,132,4,124,132,132,140,116,6,12, - 12,8,1,0,100,152,0,0,120,132,4,124,132,132,140,116, - 6,12,12,8,1,0,72,72,0,0,120,132,4,124,132,132, - 140,116,6,13,13,8,1,0,48,72,48,0,0,120,132,4, - 124,132,132,140,116,7,8,8,8,1,0,124,146,18,126,144, - 144,146,124,6,10,10,8,1,254,120,132,128,128,128,128,132, - 120,16,96,6,12,12,8,1,0,96,24,0,0,120,132,132, - 252,128,128,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,132,252,128,128,132,120,6,12,12,8,1,0,48,72,0, - 0,120,132,132,252,128,128,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,132,252,128,128,132,120,5,12,12,8,2, - 0,192,48,0,0,96,32,32,32,32,32,32,248,5,12,12, - 8,2,0,48,192,0,0,96,32,32,32,32,32,32,248,5, - 12,12,8,2,0,96,144,0,0,96,32,32,32,32,32,32, - 248,5,12,12,8,2,0,144,144,0,0,96,32,32,32,32, - 32,32,248,6,12,12,8,1,0,100,24,40,68,4,124,132, - 132,132,132,132,120,6,12,12,8,1,0,100,152,0,0,184, - 196,132,132,132,132,132,132,6,12,12,8,1,0,96,24,0, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,24, - 96,0,0,120,132,132,132,132,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,132,132,132,132,132,120,6,12,12, - 8,1,0,100,152,0,0,120,132,132,132,132,132,132,120,6, - 12,12,8,1,0,72,72,0,0,120,132,132,132,132,132,132, - 120,6,7,7,8,1,1,48,0,0,252,0,0,48,6,10, - 10,8,1,255,4,120,140,148,148,164,164,196,120,128,6,12, - 12,8,1,0,96,24,0,0,132,132,132,132,132,132,140,116, - 6,12,12,8,1,0,24,96,0,0,132,132,132,132,132,132, - 140,116,6,12,12,8,1,0,48,72,0,0,132,132,132,132, - 132,132,140,116,6,12,12,8,1,0,72,72,0,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,254,24,96,0,0, - 132,132,132,132,132,76,52,4,4,120,5,12,12,8,2,254, - 128,128,240,136,136,136,144,160,192,128,128,128,6,14,14,8, - 1,254,72,72,0,0,132,132,132,132,132,76,52,4,4,120 - }; -/* - Fontname: -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1 - Copyright: - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 5 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_11[3240] U8G_FONT_SECTION("u8g_font_unifont_0_11") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,68,56,114,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,6,1,1,8,1,4,252,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,10,10,8,1,0,128,128, - 136,144,160,192,160,144,136,132,5,10,10,8,2,0,96,32, - 32,32,32,32,32,32,32,248,7,8,8,8,1,0,236,146, - 146,146,146,146,146,146,6,8,8,8,1,0,184,196,132,132, - 132,132,132,132,6,8,8,8,1,0,120,132,132,132,132,132, - 132,120,6,10,10,8,1,254,184,196,132,132,132,132,196,184, - 128,128,6,10,10,8,1,254,116,140,132,132,132,132,140,116, - 4,4,6,8,8,8,1,0,184,196,132,128,128,128,128,128, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,10, - 10,8,1,0,32,32,248,32,32,32,32,32,32,24,6,8, - 8,8,1,0,132,132,132,132,132,132,140,116,6,8,8,8, - 1,0,132,132,132,72,72,72,48,48,7,8,8,8,1,0, - 130,146,146,146,146,146,146,108,6,8,8,8,1,0,132,132, - 72,48,48,72,132,132,6,10,10,8,1,254,132,132,132,132, - 132,76,52,4,4,120,6,8,8,8,1,0,252,4,8,16, - 32,64,128,252,3,12,12,8,3,255,96,128,128,64,64,128, - 128,64,64,128,128,96,1,14,14,8,4,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,3,12,12,8,2,255, - 192,32,32,64,64,32,32,64,64,32,32,192,7,3,3,8, - 1,8,98,146,140,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,115,209,202,16,75,209,202,16,115,223,128, - 0,0,1,128,0,0,1,128,0,85,85,6,10,10,8,1, - 254,184,196,132,132,132,132,132,132,128,128,6,10,10,8,1, - 254,116,140,132,132,132,140,116,4,132,120,4,8,8,8,3, - 0,192,64,64,64,64,64,64,112,7,12,12,8,1,254,16, - 16,148,154,146,146,146,146,178,82,16,16,7,11,11,8,1, - 0,28,34,32,32,248,32,32,32,32,32,32,6,8,8,8, - 1,0,120,132,132,132,132,132,132,120,7,12,12,8,1,254, - 112,144,144,112,28,18,18,18,146,124,16,16,7,10,10,8, - 1,0,128,128,128,136,136,136,136,136,136,118,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 2,7,7,8,3,1,192,192,0,0,0,192,192,6,2,2, - 8,1,1,196,120,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,6,14,14, - 8,1,255,168,84,168,84,168,84,168,84,168,84,168,84,168, - 84,6,14,14,8,1,255,168,84,168,84,168,84,168,84,168, - 84,168,84,168,84,6,14,14,8,1,255,168,84,168,84,168, - 84,168,84,168,84,168,84,168,84,6,14,14,8,1,255,168, - 84,168,84,168,84,168,84,168,84,168,84,168,84,5,4,4, - 8,2,255,32,32,112,136,6,3,3,8,1,9,48,0,204, - 4,6,6,8,2,8,48,192,48,192,48,192,2,3,3,8, - 3,10,192,0,192,4,3,3,8,2,10,176,128,176,3,3, - 3,8,3,255,128,128,96,5,5,5,8,2,9,32,112,248, - 112,32,6,4,4,8,1,9,72,164,148,72,3,3,3,8, - 0,9,192,32,32,2,3,3,8,5,255,64,128,64,4,4, - 4,8,1,254,208,208,16,224,3,3,3,8,3,10,96,128, - 128,3,3,3,8,5,9,96,128,128,5,5,5,8,3,9, - 48,64,152,160,32,8,4,4,8,0,9,66,165,66,36,3, - 4,4,8,5,9,64,160,64,128,4,3,3,8,0,8,80, - 96,128,5,3,3,8,1,254,136,112,32,3,3,3,8,2, - 255,32,32,224,2,3,3,8,3,255,64,128,64,3,3,3, - 8,2,255,32,32,192,5,4,4,8,1,254,40,200,16,96, - 4,5,5,8,2,254,96,128,96,16,96,3,3,3,8,2, - 9,192,32,32,3,4,4,8,1,9,64,160,64,32,5,4, - 4,8,2,254,136,112,32,32,2,3,3,8,2,10,64,128, - 64,3,3,3,8,3,10,32,32,224,3,3,3,8,5,255, - 128,128,96,5,4,4,8,0,9,72,168,168,144,4,4,4, - 8,2,9,96,144,144,96,2,3,3,8,3,255,192,0,192, - 5,3,3,8,2,255,168,0,72,5,3,3,8,2,255,232, - 0,8,5,3,3,8,2,255,232,64,72,2,2,2,8,3, - 0,192,192,6,2,2,8,1,0,204,204,6,3,3,8,1, - 254,204,0,48,4,1,1,8,2,0,240,5,3,3,8,2, - 254,248,32,32,2,2,2,8,2,10,192,192,2,2,2,8, - 1,10,192,192,5,3,3,8,2,255,128,32,8,2,1,1, - 8,3,5,192,1,3,3,8,4,255,128,128,128,6,2,2, - 8,1,10,124,248,4,1,1,8,2,10,240,1,9,9,8, - 4,0,128,128,128,128,128,128,128,128,128,2,2,2,8,5, - 10,192,192,2,2,2,8,1,10,192,192,3,8,8,8,3, - 0,64,224,64,0,0,64,224,64,2,2,2,8,3,10,192, - 192,2,2,2,8,3,10,192,192,4,9,9,8,2,0,224, - 128,128,128,128,128,128,128,240,5,4,4,8,2,254,248,32, - 32,32,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,9,9,8,1,0,132,132,68,36,88,144,136,132, - 132,7,9,9,8,1,0,248,8,8,8,8,8,8,8,254, - 6,9,9,8,1,0,96,16,16,16,8,24,40,68,132,6, - 9,9,8,1,0,252,8,8,8,8,8,8,8,8,6,9, - 9,8,1,0,252,4,4,68,68,68,68,68,68,3,9,9, - 8,2,0,224,32,32,32,32,32,32,32,32,5,9,9,8, - 2,0,192,48,40,32,32,32,32,32,32,6,9,9,8,1, - 0,252,68,68,68,68,68,68,68,68,6,9,9,8,1,0, - 140,148,132,132,132,132,132,132,252,3,4,4,8,2,5,224, - 32,32,32,6,11,11,8,1,254,252,4,4,4,4,4,4, - 4,4,4,4,6,9,9,8,1,0,252,4,4,4,4,4, - 4,4,248,5,11,11,8,2,0,128,128,248,8,8,8,8, - 16,16,32,192,7,9,9,8,0,0,254,34,34,34,34,34, - 34,34,62,7,9,9,8,1,0,156,98,66,130,130,130,130, - 130,142,3,11,11,8,2,254,224,32,32,32,32,32,32,32, - 32,32,32,4,9,9,8,2,0,112,16,16,16,16,16,16, - 16,240,6,9,9,8,1,0,252,132,132,132,132,132,132,136, - 240,7,9,9,8,0,0,18,18,18,18,18,18,18,18,254, - 6,11,11,8,1,254,252,132,132,132,228,4,4,4,4,4, - 4,6,9,9,8,1,0,252,132,132,132,228,4,4,4,252, - 5,11,11,8,2,254,136,136,144,160,192,128,128,128,128,128, - 128,6,9,9,8,1,0,132,132,72,48,16,8,4,4,252, - 6,11,11,8,1,254,252,68,68,72,72,80,64,64,64,64, - 64,6,9,9,8,1,0,252,4,4,4,4,4,4,4,4, - 7,9,9,8,1,0,146,146,146,146,146,146,146,146,254,6, - 9,9,8,1,0,124,68,68,68,68,68,68,68,196,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,6,14,14,8,1,255,168,84,168,84,168,84,168,84, - 168,84,168,84,168,84,6,14,14,8,1,255,168,84,168,84, - 168,84,168,84,168,84,168,84,168,84,6,14,14,8,1,255, - 168,84,168,84,168,84,168,84,168,84,168,84,168,84,6,14, - 14,8,1,255,168,84,168,84,168,84,168,84,168,84,168,84, - 168,84,7,9,9,8,1,0,238,34,34,34,34,34,34,34, - 34,7,9,9,8,1,0,238,34,34,34,2,2,2,2,2, - 7,4,4,8,1,5,238,34,34,34,3,3,3,8,4,9, - 32,64,128,6,3,3,8,1,9,36,72,144,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84,6,14,14,8,1,255,168,84, - 168,84,168,84,168,84,168,84,168,84,168,84,6,14,14,8, - 1,255,168,84,168,84,168,84,168,84,168,84,168,84,168,84, - 6,14,14,8,1,255,168,84,168,84,168,84,168,84,168,84, - 168,84,168,84,6,14,14,8,1,255,168,84,168,84,168,84, - 168,84,168,84,168,84,168,84}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4249] U8G_FONT_SECTION("u8g_font_unifont_0_8") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,6,13,13, - 8,1,0,96,24,0,252,128,128,128,248,128,128,128,128,252, - 6,14,14,8,1,0,72,72,0,0,252,128,128,128,248,128, - 128,128,128,252,7,10,10,8,1,0,252,32,32,32,60,34, - 34,34,34,44,6,14,14,8,1,0,24,96,0,0,252,128, - 128,128,128,128,128,128,128,128,6,10,10,8,1,0,56,68, - 128,128,248,128,128,128,68,56,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,5,10,10,8,2,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,8,2,0,144,144, - 0,0,248,32,32,32,32,32,32,32,32,248,6,10,10,8, - 1,0,28,8,8,8,8,8,8,136,136,112,8,10,10,8, - 0,0,120,72,72,72,78,73,73,73,73,142,7,10,10,8, - 1,0,144,144,144,144,252,146,146,146,146,156,7,10,10,8, - 1,0,252,32,32,32,60,34,34,34,34,34,6,14,14,8, - 1,0,24,96,0,0,128,140,144,160,192,192,160,144,136,132, - 6,13,13,8,1,0,96,24,0,132,140,140,148,148,164,164, - 196,196,132,7,14,14,8,1,0,132,132,120,0,130,130,68, - 68,40,40,16,16,32,96,7,12,12,8,1,254,130,130,130, - 130,130,130,130,130,130,254,16,16,6,10,10,8,1,0,48, - 72,72,132,132,252,132,132,132,132,6,10,10,8,1,0,248, - 128,128,128,248,132,132,132,132,248,6,10,10,8,1,0,248, - 132,132,132,248,132,132,132,132,248,6,10,10,8,1,0,252, - 128,128,128,128,128,128,128,128,128,8,12,12,8,0,254,14, - 18,18,18,34,34,34,66,66,255,129,129,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,146,146,84,84,56,56,84,84,146,146,6,10,10,8,1, - 0,120,132,4,4,120,8,4,4,132,120,6,10,10,8,1, - 0,132,140,140,148,148,164,164,196,196,132,6,13,13,8,1, - 0,72,48,0,132,140,140,148,148,164,164,196,196,132,6,10, - 10,8,1,0,140,144,144,160,160,192,160,144,136,132,6,10, - 10,8,1,0,60,36,36,36,36,36,36,68,68,132,6,10, - 10,8,1,0,132,132,204,204,180,180,132,132,132,132,6,10, - 10,8,1,0,132,132,132,132,252,132,132,132,132,132,6,10, - 10,8,1,0,120,132,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,252,132,132,132,132,132,132,132,132,132,6,10, - 10,8,1,0,248,132,132,132,248,128,128,128,128,128,6,10, - 10,8,1,0,120,132,132,128,128,128,128,132,132,120,7,10, - 10,8,1,0,254,16,16,16,16,16,16,16,16,16,7,10, - 10,8,1,0,130,130,68,68,40,40,16,16,32,96,7,11, - 11,8,1,0,16,124,146,146,146,146,146,124,16,16,16,6, - 10,10,8,1,0,132,132,72,72,48,48,72,72,132,132,7, - 12,12,8,1,254,132,132,132,132,132,132,132,132,132,254,2, - 2,6,10,10,8,1,0,132,132,132,132,132,252,4,4,4, - 4,7,10,10,8,1,0,146,146,146,146,146,146,146,146,146, - 254,8,12,12,8,0,254,146,146,146,146,146,146,146,146,146, - 255,1,1,7,10,10,8,1,0,224,32,32,32,60,34,34, - 34,34,60,6,10,10,8,1,0,132,132,132,132,228,148,148, - 148,148,228,6,10,10,8,1,0,128,128,128,128,248,132,132, - 132,132,248,6,10,10,8,1,0,112,136,4,4,124,4,4, - 4,136,112,6,10,10,8,1,0,152,164,164,164,228,164,164, - 164,164,152,6,10,10,8,1,0,124,132,132,132,124,36,68, - 68,132,132,6,8,8,8,1,0,120,132,4,124,132,132,140, - 116,6,12,12,8,1,0,4,56,64,128,248,132,132,132,132, - 132,132,120,6,8,8,8,1,0,248,132,132,248,132,132,132, - 248,6,8,8,8,1,0,252,128,128,128,128,128,128,128,7, - 9,9,8,1,255,60,36,68,68,132,132,132,254,130,6,8, - 8,8,1,0,120,132,132,252,128,128,132,120,7,8,8,8, - 1,0,146,146,84,56,56,84,146,146,6,8,8,8,1,0, - 120,132,4,120,8,4,132,120,6,8,8,8,1,0,140,140, - 148,148,164,164,196,196,6,12,12,8,1,0,72,48,0,0, - 140,140,148,148,164,164,196,196,6,8,8,8,1,0,140,144, - 160,192,160,144,136,132,6,8,8,8,1,0,60,36,36,36, - 36,68,68,132,6,8,8,8,1,0,132,204,204,180,180,132, - 132,132,6,8,8,8,1,0,132,132,132,252,132,132,132,132, - 6,8,8,8,1,0,120,132,132,132,132,132,132,120,6,8, - 8,8,1,0,252,132,132,132,132,132,132,132,6,10,10,8, - 1,254,184,196,132,132,132,132,196,184,128,128,6,8,8,8, - 1,0,120,132,128,128,128,128,132,120,7,8,8,8,1,0, - 254,16,16,16,16,16,16,16,6,10,10,8,1,254,132,132, - 72,72,48,48,32,32,64,192,7,13,13,8,1,254,16,16, - 16,124,146,146,146,146,146,146,124,16,16,6,8,8,8,1, - 0,132,132,72,48,48,72,132,132,7,10,10,8,1,254,132, - 132,132,132,132,132,132,254,2,2,6,8,8,8,1,0,132, - 132,132,132,252,4,4,4,7,8,8,8,1,0,146,146,146, - 146,146,146,146,254,8,10,10,8,0,254,146,146,146,146,146, - 146,146,255,1,1,7,8,8,8,1,0,224,32,32,60,34, - 34,34,60,6,8,8,8,1,0,132,132,132,228,148,148,148, - 228,6,8,8,8,1,0,128,128,128,248,132,132,132,248,6, - 8,8,8,1,0,112,136,4,124,4,4,136,112,6,8,8, - 8,1,0,152,164,164,228,164,164,164,152,6,8,8,8,1, - 0,124,132,132,132,124,36,68,132,6,12,12,8,1,0,96, - 24,0,0,120,132,132,252,128,128,132,120,6,12,12,8,1, - 0,72,72,0,0,120,132,132,252,128,128,132,120,7,13,13, - 8,0,254,64,240,64,92,98,66,66,66,66,66,66,2,12, - 6,12,12,8,1,0,24,96,0,0,252,128,128,128,128,128, - 128,128,6,8,8,8,1,0,56,68,128,248,128,128,68,56, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,11, - 11,8,2,0,32,32,0,96,32,32,32,32,32,32,248,5, - 11,11,8,2,0,144,144,0,96,32,32,32,32,32,32,248, - 5,13,13,8,1,254,8,8,0,24,8,8,8,8,8,8, - 8,144,96,8,8,8,8,0,0,120,72,72,78,73,73,73, - 142,7,8,8,8,1,0,144,144,144,252,146,146,146,156,7, - 11,11,8,0,0,64,240,64,92,98,66,66,66,66,66,66, - 6,12,12,8,1,0,24,96,0,0,140,144,160,192,160,144, - 136,132,6,12,12,8,1,0,96,24,0,0,140,140,148,148, - 164,164,196,196,6,15,15,8,1,254,132,132,120,0,0,132, - 132,72,72,48,48,32,32,64,192,5,10,10,8,2,254,136, - 136,136,136,136,136,136,248,32,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 7 - Calculated Max Values w=16 h=16 x= 9 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 2 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[3987] U8G_FONT_SECTION("u8g_font_unifont_12_13") = { - 0,16,16,0,254,8,4,155,6,11,0,255,2,14,254,13, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,85,85,128, - 0,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 4,42,13,170,12,53,245,128,0,0,1,170,170,16,16,32, - 16,0,254,85,85,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,0,1,142,0,14,25,135,224,0,1,128,0,0, - 1,170,170,16,16,32,16,0,254,85,85,128,0,0,1,128, - 0,0,1,128,0,0,25,128,36,0,69,129,68,1,73,158, - 240,0,1,128,0,0,1,170,170,16,16,32,16,0,254,85, - 85,128,0,0,1,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,1,149,130,124,2,1,191,0,0,1,170,170,16, - 16,32,16,0,254,85,85,128,0,0,1,136,4,22,25,161, - 224,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 0,0,1,170,170,12,14,28,16,1,255,1,80,225,80,33, - 160,17,0,17,0,9,0,8,0,4,224,4,128,2,128,3, - 0,3,0,2,0,2,0,11,15,30,16,1,255,0,64,0, - 128,225,0,33,64,16,128,17,32,8,192,8,0,4,224,4, - 128,2,128,3,0,3,0,2,0,2,0,12,7,14,16,2, - 3,1,144,58,96,202,192,17,64,16,64,32,128,31,0,5, - 10,10,8,1,1,8,8,80,16,32,32,64,64,136,160,7, - 10,10,8,1,1,8,8,80,16,32,32,64,66,136,160,10, - 10,20,16,3,2,48,0,48,0,6,0,9,0,7,0,1, - 0,14,0,240,128,0,64,0,64,2,4,4,8,3,3,64, - 128,192,192,5,4,4,8,1,2,24,48,64,128,12,4,8, - 16,3,1,112,0,136,0,136,48,127,192,7,11,11,16,2, - 0,24,32,32,24,32,76,82,98,36,88,128,6,4,4,8, - 2,9,24,36,228,88,9,6,12,16,4,7,3,0,4,0, - 39,128,56,0,64,0,128,0,10,5,10,16,3,8,252,64, - 16,64,32,128,71,0,64,0,11,4,8,16,2,9,24,32, - 36,32,228,64,89,128,10,4,8,16,3,8,0,64,254,64, - 1,64,0,128,7,4,4,16,4,9,64,92,98,252,8,6, - 6,16,3,8,40,40,40,104,128,127,3,5,5,16,6,8, - 32,0,32,32,192,4,2,2,16,6,10,48,192,5,5,5, - 16,5,8,16,40,48,96,144,4,13,13,16,6,254,240,0, - 0,0,0,0,0,0,0,0,0,48,192,2,5,5,8,3, - 2,64,128,192,0,192,16,16,32,16,0,254,170,170,0,1, - 128,0,0,1,178,34,74,55,250,42,74,35,203,162,0,1, - 128,0,0,1,128,0,0,1,128,0,85,85,14,14,28,16, - 1,255,255,252,231,156,219,124,219,28,219,108,231,156,255,252, - 255,252,247,28,231,108,247,108,247,108,227,28,255,252,3,3, - 3,16,7,0,64,0,160,7,9,9,8,1,2,124,130,128, - 64,32,16,16,0,16,6,8,8,8,1,255,24,164,144,136, - 112,32,80,32,4,5,5,8,2,2,112,128,240,64,128,7, - 10,10,8,1,3,2,124,128,16,16,16,16,16,16,16,3, - 11,11,8,2,3,96,128,96,128,32,32,32,32,32,32,32, - 6,13,13,8,1,255,24,32,24,32,0,24,36,36,60,4, - 8,144,96,3,12,12,8,3,254,64,64,64,64,64,64,64, - 0,96,128,96,128,6,11,11,8,1,255,48,64,48,64,0, - 140,144,144,140,132,120,1,8,8,8,4,3,128,128,128,128, - 128,128,128,128,6,7,7,8,1,0,8,68,132,120,0,0, - 16,5,8,8,8,2,3,144,0,0,96,144,136,136,112,6, - 7,7,8,1,3,40,0,0,8,68,132,120,6,9,9,8, - 1,3,32,0,80,0,0,8,68,132,120,6,8,8,8,1, - 254,252,32,64,128,144,128,68,56,6,8,8,8,1,254,252, - 32,64,128,128,128,68,56,6,11,11,8,1,254,32,0,0, - 252,32,64,128,128,128,68,56,6,5,5,8,1,3,16,8, - 4,132,248,6,7,7,8,1,3,64,0,16,8,4,132,248, - 6,7,7,8,1,255,8,4,4,4,8,144,96,6,10,10, - 8,1,255,32,0,0,8,4,4,4,8,144,96,7,7,7, - 8,1,255,2,42,42,188,144,144,96,7,12,12,8,1,255, - 16,0,36,0,0,2,42,42,188,144,144,96,7,6,6,8, - 1,0,12,50,156,144,144,96,7,9,9,8,1,0,8,0, - 0,12,50,156,144,144,96,6,8,8,8,1,3,64,64,64, - 64,88,100,68,248,6,8,8,8,1,3,64,72,64,64,88, - 100,68,248,6,9,9,8,1,254,48,72,64,56,64,128,128, - 132,120,6,12,12,8,1,254,16,0,0,48,72,64,56,64, - 128,128,132,120,7,9,9,8,0,3,80,4,8,16,32,64, - 60,130,126,7,12,12,8,0,255,4,8,16,32,64,60,130, - 126,0,40,0,16,6,10,10,8,1,255,64,160,160,8,148, - 144,136,132,132,120,6,9,9,8,1,255,160,0,8,148,144, - 136,132,132,120,6,10,10,8,1,255,64,0,160,8,148,144, - 136,132,132,120,8,1,1,8,0,3,255,6,8,8,8,1, - 3,16,0,12,20,12,132,132,120,6,10,10,8,1,0,72, - 0,0,56,36,20,76,132,136,112,6,8,8,8,1,3,4, - 20,36,20,68,132,132,120,6,11,11,8,1,0,4,4,4, - 4,4,4,68,132,132,136,120,5,8,8,8,2,254,112,24, - 120,128,128,128,128,128,6,9,9,8,1,0,32,0,0,8, - 68,132,132,136,112,10,9,18,16,1,1,4,0,3,0,6, - 128,10,64,10,64,6,64,25,128,96,0,128,0,6,8,8, - 8,1,255,24,36,36,60,4,8,144,96,6,7,7,8,1, - 255,8,148,144,136,132,132,120,6,8,8,8,1,254,8,148, - 144,136,132,120,0,80,4,4,4,8,2,9,48,192,48,192, - 5,5,5,8,2,8,24,24,200,80,224,4,4,4,8,2, - 0,32,192,48,192,4,2,2,8,2,9,48,192,4,6,6, - 8,2,6,64,160,160,112,64,128,4,2,2,8,2,254,48, - 192,5,4,4,8,1,7,8,40,176,192,4,4,4,8,2, - 7,96,144,144,96,7,3,3,8,1,9,2,124,128,3,4, - 4,8,2,10,96,128,96,128,3,4,4,8,2,254,96,128, - 96,128,2,3,3,16,9,254,128,64,64,5,5,5,16,5, - 9,8,16,32,224,96,4,3,3,16,6,9,144,144,96,4, - 1,1,16,6,10,240,5,4,4,16,5,9,136,80,32,32, - 5,4,4,16,5,9,32,32,80,136,2,2,2,16,7,0, - 192,192,5,5,5,16,5,9,96,224,32,16,8,4,4,4, - 16,6,9,144,96,96,144,4,5,5,8,2,254,112,128,240, - 64,128,3,3,3,8,2,5,64,224,64,4,9,9,8,2, - 2,128,128,64,64,32,32,16,16,16,5,9,9,8,2,2, - 136,144,96,64,32,32,16,16,16,7,9,9,8,1,2,146, - 164,120,64,32,32,16,16,16,6,9,9,8,1,2,8,16, - 32,64,48,64,128,132,120,6,9,9,8,1,2,48,72,72, - 132,132,132,132,72,48,7,9,9,8,1,2,128,120,8,8, - 4,4,4,2,2,7,9,9,8,1,2,130,130,68,68,40, - 40,16,16,16,7,9,9,8,1,2,16,16,16,40,40,68, - 68,130,130,7,9,9,8,1,2,48,72,136,152,104,4,4, - 2,2,5,10,10,8,1,2,8,8,144,144,32,32,72,72, - 128,128,4,4,4,8,2,1,16,16,16,224,2,4,4,8, - 3,7,192,192,64,128,7,6,6,8,1,3,16,16,254,56, - 108,68,6,4,4,8,1,3,8,68,132,120,6,7,7,8, - 1,0,56,36,20,76,132,136,112,1,4,4,8,4,7,128, - 128,128,128,5,11,11,8,2,3,16,40,120,128,32,32,32, - 32,32,32,32,6,11,11,8,1,3,12,16,76,176,0,16, - 16,16,16,16,16,6,12,12,8,1,254,16,16,16,16,16, - 16,16,0,12,16,76,176,3,4,4,8,2,10,96,128,96, - 128,5,11,11,8,2,3,24,32,24,32,128,128,128,128,128, - 128,128,7,13,13,8,1,255,6,8,6,8,0,24,36,36, - 60,4,8,144,96,7,13,13,8,1,255,102,104,38,72,128, - 24,36,36,60,4,8,144,96,7,11,11,8,1,255,6,8, - 6,8,0,140,144,144,140,132,120,6,9,9,8,1,3,64, - 64,112,112,0,8,68,132,120,6,9,9,8,1,3,32,0, - 32,0,0,8,68,132,120,6,8,8,8,1,255,8,68,132, - 120,0,16,0,16,6,10,10,8,1,0,40,0,0,8,68, - 132,120,16,40,16,6,9,9,8,1,3,80,0,32,0,0, - 8,68,132,120,6,8,8,8,1,255,8,68,132,120,0,40, - 0,16,6,9,9,8,1,3,80,0,80,0,0,8,68,132, - 120,6,8,8,8,1,255,8,68,132,120,0,40,0,40,6, - 13,13,8,1,254,48,64,48,64,0,252,32,64,128,128,128, - 68,56,6,13,13,8,1,254,32,0,32,0,0,252,32,64, - 128,128,128,68,56,6,8,8,8,1,254,252,32,64,128,168, - 128,68,56,6,8,8,8,1,254,252,32,64,144,128,144,68, - 56,6,13,13,8,1,254,32,0,72,0,0,252,32,64,128, - 128,128,68,56,6,8,8,8,1,254,252,64,128,168,128,144, - 68,56,6,8,8,8,1,254,252,64,128,168,128,168,68,56, - 6,10,10,8,1,3,64,64,112,112,0,16,8,4,132,248, - 6,8,8,8,1,0,16,8,4,132,248,16,40,16,6,7, - 7,8,1,1,16,8,4,132,248,0,16,6,12,12,8,1, - 1,64,64,112,112,0,16,8,4,132,248,0,16,6,8,8, - 8,1,3,80,0,0,16,8,4,132,248,6,7,7,8,1, - 1,16,8,4,132,248,0,80,6,9,9,8,1,3,32,0, - 80,0,16,8,4,132,248,6,9,9,8,1,3,80,0,32, - 0,16,8,4,132,248,6,9,9,8,1,3,80,0,80,0, - 16,8,4,132,248,6,13,13,8,1,255,16,16,28,28,0, - 0,8,4,4,4,8,144,96,7,13,13,8,1,255,34,20, - 8,8,0,0,8,4,4,4,8,144,96,6,8,8,8,1, - 254,8,4,4,4,8,152,116,8,6,7,7,8,1,255,8, - 4,4,4,8,144,100,7,8,8,8,1,254,16,8,8,8, - 16,144,106,4,6,7,7,8,1,255,8,4,4,36,8,144, - 100,6,10,10,8,1,255,36,0,0,8,4,4,4,8,144, - 96,6,12,12,8,1,255,16,0,40,0,0,8,4,4,4, - 8,144,96,6,12,12,8,1,255,36,0,36,0,0,8,4, - 4,4,8,144,96,7,10,10,8,1,0,8,0,0,2,42, - 42,188,144,148,96,7,8,8,8,1,255,2,42,42,188,160, - 170,64,4,7,13,13,8,1,255,16,0,36,0,0,2,42, - 42,188,160,170,64,4,7,6,6,8,1,0,12,50,156,160, - 170,64,7,11,11,8,1,0,16,0,36,0,0,12,50,156, - 144,144,96,6,8,8,8,1,3,72,64,84,64,88,100,68, - 248,6,14,14,8,1,254,32,0,72,0,0,48,72,64,56, - 64,128,128,132,120,6,6,6,8,1,3,12,20,12,132,132, - 120,6,8,8,8,1,1,12,20,12,132,132,120,0,16,6, - 11,11,8,1,1,8,0,0,12,20,12,132,132,120,0,16, - 6,10,10,8,1,3,16,0,36,0,12,20,12,132,132,120, - 6,10,10,8,1,255,12,20,12,132,132,120,0,72,0,32, - 6,10,10,8,1,3,20,0,20,0,12,20,12,132,132,120, - 6,10,10,8,1,0,8,0,0,56,36,20,76,132,136,112, - 6,12,12,8,1,0,32,0,72,0,0,56,36,20,76,132, - 136,112,7,8,8,8,0,3,4,8,16,32,64,60,130,126, - 14,8,16,16,1,3,0,48,0,192,3,0,12,0,16,0, - 15,248,128,4,127,248,7,8,8,8,0,3,4,12,26,36, - 64,60,130,126,6,10,10,8,1,3,16,0,4,20,36,20, - 68,132,132,120,6,11,11,8,1,3,32,0,80,4,20,36, - 20,68,132,132,120,6,12,12,8,1,255,4,20,36,20,68, - 132,132,120,0,40,0,16,7,10,10,8,0,3,8,16,36, - 72,16,32,64,60,130,126,7,10,10,8,0,3,8,16,36, - 76,26,36,64,60,130,126,7,10,10,8,0,3,80,6,24, - 98,12,48,64,60,130,126,7,12,12,8,0,1,8,16,36, - 72,16,32,64,60,130,126,0,40,7,14,14,8,0,255,8, - 16,36,72,16,32,64,60,130,126,0,16,0,16,7,11,11, - 8,0,3,64,0,166,24,98,12,48,64,60,130,126,7,14, - 14,8,1,0,34,20,8,8,0,4,4,4,4,68,132,132, - 136,120,6,13,13,8,1,0,4,0,4,4,4,4,4,4, - 68,132,132,136,120,7,14,14,8,1,0,8,0,18,0,4, - 4,4,4,4,68,132,132,136,120,6,13,13,8,1,254,4, - 4,4,4,4,4,68,132,120,0,40,0,16,6,11,11,8, - 1,254,16,0,0,8,68,132,132,136,112,0,16,6,6,6, - 8,1,0,8,68,132,132,136,112,6,12,12,8,1,0,32, - 32,56,56,0,0,8,68,132,132,136,112,6,11,11,8,1, - 254,16,0,0,8,68,132,132,136,120,20,8,6,11,11,8, - 1,0,32,0,72,0,0,8,68,132,132,136,112,6,6,6, - 8,1,2,32,88,84,52,72,128,6,11,11,8,1,254,32, - 0,0,252,64,128,168,128,144,68,56,4,10,10,8,2,3, - 96,128,96,128,0,64,96,144,144,240,6,3,3,8,1,2, - 32,92,128,6,8,8,8,1,2,48,64,48,64,0,32,92, - 128,6,6,6,8,1,2,80,0,0,32,92,128,6,8,8, - 8,1,255,24,36,36,28,68,164,72,240,6,8,8,8,1, - 255,24,36,36,60,4,56,144,96,6,13,13,8,1,255,68, - 40,16,16,0,24,36,36,60,4,8,144,96,6,14,14,8, - 1,255,32,80,80,56,32,64,152,36,36,60,4,8,144,96, - 6,12,12,8,1,255,16,8,8,0,24,36,36,60,4,8, - 144,96,6,12,12,8,1,255,16,40,68,0,24,36,36,60, - 4,8,144,96,6,11,11,8,1,255,40,0,0,24,36,36, - 60,4,8,144,96,6,13,13,8,1,255,16,0,36,0,0, - 24,36,36,60,4,8,144,96,6,7,7,8,1,255,8,148, - 144,136,132,132,120,7,7,7,8,0,255,4,42,104,164,34, - 34,28,6,12,12,8,1,255,136,80,32,32,0,8,148,144, - 136,132,132,120,6,11,11,8,1,255,16,0,0,24,36,36, - 60,4,8,144,96,6,9,9,8,1,254,24,164,144,136,112, - 0,32,0,32,6,9,9,8,1,254,24,164,144,136,112,0, - 80,0,32,7,6,6,8,1,255,16,40,32,64,128,254,7, - 10,10,8,1,255,96,128,96,128,16,40,32,64,128,254,4, - 1,1,8,2,3,240,4,5,5,8,2,3,64,96,144,144, - 240,11,5,10,16,3,9,16,64,18,224,127,224,128,0,254, - 0,10,5,10,16,3,9,18,64,17,0,127,0,128,0,254, - 0,6,4,4,16,5,9,8,20,60,192,5,5,5,16,4, - 9,136,72,48,16,48,8,5,5,16,3,9,252,32,72,33, - 30,3,3,3,8,4,8,160,0,128,9,4,8,16,4,9, - 18,128,159,128,144,0,96,0,16,16,32,16,0,254,85,85, - 128,0,1,193,134,48,11,233,140,24,16,5,144,4,16,5, - 140,24,11,233,134,48,1,193,128,0,0,1,170,170,15,15, - 30,16,1,254,1,0,2,128,63,248,40,40,48,24,35,136, - 100,76,164,74,100,76,35,136,48,24,40,40,63,248,2,128, - 1,0,3,4,4,16,6,9,96,160,160,96,4,5,5,16, - 6,9,96,144,144,144,96,6,3,3,16,5,10,252,8,96, - 3,5,5,16,6,9,96,224,128,128,64,9,4,8,16,4, - 254,18,128,159,128,144,0,96,0,6,2,2,16,5,10,12, - 240,5,4,4,8,2,9,24,24,16,224,7,4,4,8,1, - 9,32,64,128,254,7,4,4,16,3,9,32,64,128,254,6, - 4,4,16,5,9,16,132,132,124,15,15,30,16,1,254,1, - 0,2,128,5,64,10,160,21,80,42,168,84,84,42,168,42, - 168,42,168,43,168,40,40,47,232,96,12,255,254,5,5,5, - 16,5,9,32,80,136,80,32,5,5,5,16,5,254,32,80, - 136,80,32,2,2,2,16,7,11,192,192,2,4,4,16,7, - 254,192,128,128,64,6,9,9,8,1,3,16,40,68,0,16, - 8,4,132,248,7,11,11,8,1,255,8,20,34,0,8,4, - 4,4,8,144,96,3,3,3,8,2,5,64,224,64,4,9, - 9,8,2,2,128,128,64,64,32,32,16,16,16,5,9,9, - 8,2,2,136,144,96,64,32,32,16,16,16,7,9,9,8, - 1,2,146,164,120,64,32,32,16,16,16,6,9,9,8,1, - 2,48,72,192,228,88,64,32,32,32,7,9,9,8,1,1, - 16,16,40,40,68,68,146,170,198,6,8,8,8,1,2,56, - 68,64,64,48,12,48,192,7,9,9,8,1,2,130,130,68, - 68,40,40,16,16,16,7,9,9,8,1,2,16,16,16,40, - 40,68,68,130,130,7,9,9,8,1,2,48,72,136,152,104, - 4,4,2,2,7,12,12,8,1,0,16,0,36,0,0,2, - 42,42,188,144,148,96,7,9,9,8,1,0,8,0,0,12, - 50,156,144,148,96,6,12,12,8,1,254,16,0,0,48,72, - 64,56,64,144,128,132,120,4,10,10,8,2,254,112,128,240, - 64,128,0,80,80,80,80,6,8,8,8,1,254,56,12,124, - 128,148,148,148,148,10,12,24,16,1,1,4,0,10,0,17, - 0,4,0,3,0,6,128,10,64,10,64,6,64,25,128,96, - 0,128,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 12 - Calculated Max Values w=16 h=16 x=12 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent=-2 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[7078] U8G_FONT_SECTION("u8g_font_unifont_18_19") = { - 0,16,16,0,254,3,7,121,9,233,0,255,254,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,8,4,4,16,4,9,152,91,35, - 28,2,2,2,16,7,11,192,192,2,5,5,16,12,3,192, - 192,0,192,192,14,15,30,16,2,255,32,0,31,0,0,128, - 57,252,68,192,4,192,12,192,56,192,8,192,135,192,134,192, - 78,192,60,192,0,192,0,64,15,12,24,16,1,255,57,254, - 68,192,4,192,12,192,56,192,8,192,135,192,134,192,78,192, - 60,192,0,192,0,64,15,12,24,16,1,255,57,254,68,204, - 4,204,12,204,56,204,8,204,135,204,134,204,78,204,60,204, - 0,204,0,68,16,13,26,16,0,254,255,255,0,192,0,192, - 15,192,24,0,24,0,15,224,0,48,3,48,5,176,7,224, - 0,64,0,32,16,16,32,16,0,254,3,192,6,32,1,0, - 255,255,0,192,0,192,15,192,24,0,24,0,15,224,0,48, - 3,48,5,176,7,224,0,64,0,32,16,12,24,16,0,255, - 255,255,1,128,0,192,0,192,1,192,15,128,65,128,64,192, - 32,192,16,192,9,192,7,128,16,12,24,16,0,255,255,255, - 1,128,0,192,0,192,1,192,15,156,65,178,64,226,32,194, - 16,198,9,196,7,128,16,13,26,16,0,254,255,255,1,128, - 57,128,101,152,3,152,7,248,31,136,57,136,33,156,1,184, - 1,160,0,160,0,30,16,12,24,16,0,255,255,255,0,32, - 0,32,56,32,116,248,99,204,99,12,48,12,16,120,12,192, - 2,128,0,124,16,16,32,16,0,254,0,152,0,112,0,0, - 255,255,12,48,12,48,12,48,12,48,12,96,4,0,2,0, - 1,128,0,96,0,16,0,24,0,24,16,16,32,16,0,254, - 16,0,15,224,0,16,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,13,26,16,0,254,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,16,32,16,0,254,15,0,0,128,0,64,255,255,12,48, - 12,48,12,48,12,48,12,96,4,0,2,0,1,128,0,96, - 0,16,0,24,0,24,15,15,30,16,1,255,0,76,0,60, - 0,0,57,254,68,204,4,204,12,204,56,204,8,204,135,204, - 134,204,78,204,60,204,0,204,0,68,15,15,30,16,1,255, - 2,0,1,240,0,8,57,254,68,204,4,204,12,204,56,204, - 8,204,135,204,134,204,78,204,60,204,0,204,0,68,15,15, - 30,16,1,255,1,192,0,32,0,16,57,254,68,204,4,204, - 12,204,56,204,8,204,135,204,134,204,78,204,60,204,0,204, - 0,68,15,15,30,16,1,255,0,224,1,208,0,40,57,254, - 68,204,4,204,12,204,56,204,8,204,135,204,134,204,78,204, - 60,204,0,204,0,68,16,12,24,16,0,255,255,255,1,128, - 1,128,29,128,51,224,35,144,39,152,29,152,1,152,1,152, - 1,128,0,128,16,12,24,16,0,255,255,255,8,24,8,24, - 9,216,59,56,58,24,18,56,17,216,8,24,6,24,1,152, - 0,8,16,12,24,16,0,255,255,255,1,152,1,152,1,152, - 1,152,7,152,3,152,1,152,0,152,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,12,24,12,24,7,216,2,24, - 4,24,4,56,4,120,3,216,0,24,0,24,0,8,16,11, - 22,16,0,0,255,255,0,96,0,96,15,224,24,0,24,4, - 15,206,0,100,16,96,8,96,7,192,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,31,248,3,24,6,56,6,120, - 3,216,0,24,0,24,0,8,16,13,26,16,0,254,255,255, - 0,16,0,16,60,120,112,228,96,196,32,68,31,44,12,24, - 24,56,24,100,7,134,0,6,16,12,24,16,0,255,255,255, - 0,24,0,24,0,24,3,248,17,152,8,216,8,216,7,152, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,3,24, - 3,24,31,24,48,24,48,24,31,248,1,24,13,24,22,24, - 29,24,0,136,16,12,24,16,0,255,255,255,0,24,0,24, - 7,24,5,152,33,184,33,248,33,216,19,152,15,24,0,24, - 0,8,16,11,22,16,0,0,255,255,0,192,0,192,0,192, - 7,192,12,0,24,0,24,0,24,0,12,16,7,224,16,12, - 24,16,0,255,255,255,1,128,1,128,1,128,3,128,7,96, - 12,16,8,24,8,24,8,56,4,112,3,224,16,11,22,16, - 0,0,255,255,0,24,0,24,3,248,6,0,6,0,3,240, - 0,24,4,24,2,24,1,240,16,12,24,16,0,255,255,255, - 0,96,0,96,7,224,12,0,24,0,24,192,25,160,9,16, - 5,16,3,48,1,224,16,12,24,16,0,255,255,255,25,152, - 25,152,25,152,25,152,25,152,9,152,7,24,0,24,0,24, - 0,24,0,8,16,12,24,16,0,255,255,255,0,24,0,24, - 0,24,7,248,14,24,12,24,12,24,6,24,2,24,1,24, - 0,136,13,12,24,16,3,255,227,248,216,192,204,192,76,192, - 28,192,120,192,97,192,35,192,30,192,0,192,0,192,0,64, - 16,12,24,16,0,255,255,255,0,24,0,24,0,24,1,248, - 2,0,6,0,6,24,2,40,1,240,0,8,0,4,13,12, - 24,16,3,255,115,248,200,192,192,192,192,192,96,192,28,192, - 48,192,96,192,97,192,99,192,30,192,0,64,16,12,24,16, - 0,255,255,255,0,24,0,24,0,24,7,248,6,24,6,24, - 2,24,0,24,0,24,0,24,0,8,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,7,248,6,24,6,24,2,24, - 0,24,1,24,3,152,1,8,16,12,24,16,0,255,255,255, - 6,24,6,24,6,24,6,24,6,24,2,56,1,216,0,24, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,49,128, - 49,128,49,128,49,240,49,200,19,132,15,132,1,132,1,140, - 1,140,0,128,16,12,24,16,0,255,255,255,0,24,0,24, - 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, - 0,8,14,12,24,16,2,255,227,252,216,96,200,96,76,96, - 60,96,12,96,31,224,28,96,12,96,0,96,0,96,0,32, - 16,12,24,16,0,255,255,255,6,24,6,24,6,24,6,24, - 6,24,15,248,6,24,2,24,0,24,0,24,0,8,16,12, - 24,16,0,255,255,255,3,24,3,24,3,24,3,24,6,24, - 4,56,4,120,3,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,0,192,0,192,0,192,3,192,3,128,3,128, - 1,0,0,128,0,64,0,32,0,24,16,12,24,16,0,255, - 255,255,0,192,0,192,0,192,3,192,3,128,3,128,1,0, - 0,128,4,64,14,32,4,24,16,12,24,16,0,255,255,255, - 0,24,0,24,28,56,58,248,49,216,49,152,24,24,8,24, - 4,24,3,24,0,8,16,11,22,16,0,0,255,255,0,48, - 0,48,0,112,14,200,25,140,49,140,49,140,49,152,19,112, - 14,0,16,13,26,16,0,254,255,255,0,48,0,48,0,112, - 14,200,25,140,49,140,49,140,49,152,19,112,14,0,0,192, - 0,192,16,12,24,16,0,255,255,255,0,24,0,24,3,216, - 15,56,12,24,12,56,4,120,3,216,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,6,24,6,24,31,24,1,152, - 1,152,25,152,21,24,30,24,2,24,1,24,0,136,16,12, - 24,16,0,255,255,255,12,24,14,24,13,24,12,152,12,88, - 12,56,6,56,1,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,3,24,3,24,3,24,11,24,15,24,14,248, - 4,24,4,24,2,24,1,24,0,136,16,12,24,16,0,255, - 255,255,0,24,0,24,7,248,12,0,12,0,6,240,1,152, - 3,16,3,0,1,128,0,252,2,4,4,16,7,10,192,192, - 192,192,6,16,16,16,10,254,48,48,48,252,48,48,48,48, - 48,48,48,48,48,48,48,16,2,2,2,16,7,255,192,192, - 9,11,22,16,7,0,63,128,64,0,64,0,96,0,48,0, - 24,0,8,0,12,0,12,0,156,0,120,0,6,13,13,16, - 10,254,252,48,48,48,48,48,48,48,48,48,48,48,16,8, - 14,14,16,0,0,60,98,49,252,48,48,48,48,48,48,48, - 48,48,16,9,16,32,16,7,254,120,0,132,0,132,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,2,0,6,3,3,16,4,255,152, - 68,56,6,3,3,16,6,255,112,136,100,4,3,3,16,6, - 255,96,128,112,3,5,5,16,6,255,96,128,96,128,96,5, - 3,3,16,5,10,136,72,48,5,3,3,16,4,10,128,112, - 8,5,3,3,16,4,10,224,16,8,6,4,4,16,3,9, - 112,8,228,28,6,16,16,16,10,254,136,120,0,252,48,48, - 48,48,48,48,48,48,48,48,48,16,8,16,16,16,8,254, - 128,120,4,63,12,12,12,12,12,12,12,12,12,12,12,4, - 8,16,16,16,8,254,240,8,4,63,12,12,12,12,12,12, - 12,12,12,12,12,4,9,16,32,16,7,254,120,0,244,0, - 10,0,31,128,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,2,0,5,3,3,16, - 6,255,224,16,8,4,13,13,16,2,254,240,192,192,192,192, - 192,192,192,192,192,192,192,128,9,15,30,16,7,255,32,0, - 30,0,129,0,125,128,3,0,31,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,1,0,14,12,24,16, - 1,1,4,192,2,216,57,24,68,224,4,0,12,56,56,76, - 8,204,135,156,134,120,78,0,60,0,1,3,3,16,8,10, - 128,128,128,4,1,1,16,6,0,240,3,3,3,16,6,10, - 128,64,32,3,3,3,16,7,10,32,64,128,5,5,5,16, - 5,8,136,72,48,0,248,6,2,2,16,3,254,132,120,8, - 4,4,16,2,254,66,60,129,126,16,13,26,16,0,254,255, - 255,0,192,0,192,14,192,25,248,17,200,19,204,14,204,0, - 204,0,204,4,192,14,64,4,0,16,13,26,16,0,254,255, - 255,8,24,8,24,9,216,59,56,58,24,18,56,17,216,8, - 24,4,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,1,152,1,152,1,152,1,152,7,152,3,152,1,152,0, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,3,248,6,0,6,0,3,240,0,24,4, - 24,3,240,0,0,0,192,0,192,16,13,26,16,0,254,255, - 255,0,96,0,96,7,224,12,0,24,224,25,144,25,16,13, - 48,7,224,0,0,1,128,1,128,16,13,26,16,0,254,255, - 255,49,128,49,128,49,128,49,240,49,200,19,132,15,132,1, - 132,1,140,9,140,28,128,8,0,16,13,26,16,0,254,255, - 255,3,24,3,24,3,24,3,24,6,24,4,56,4,120,3, - 216,0,24,1,24,3,136,1,0,16,13,26,16,0,254,255, - 255,3,0,3,0,51,24,75,40,7,240,15,24,51,8,67, - 24,3,48,3,28,1,16,0,14,16,13,26,16,0,254,255, - 255,0,32,0,32,30,112,49,152,49,152,16,48,8,96,4, - 192,0,60,0,192,0,192,0,60,8,5,5,16,4,255,72, - 146,130,68,3,8,6,6,16,4,254,72,146,132,67,4,3, - 2,12,12,16,7,255,128,192,192,192,192,192,192,192,192,192, - 192,64,5,12,12,16,6,255,144,216,216,216,216,216,216,216, - 216,216,216,72,8,7,7,16,4,2,60,78,199,195,227,114, - 60,6,13,13,16,5,254,112,232,204,204,76,60,24,48,96, - 32,16,8,4,9,13,26,16,4,254,252,0,226,0,1,0, - 1,0,1,0,3,0,54,0,44,0,56,0,4,0,2,0, - 1,0,0,128,8,13,13,16,4,254,252,226,2,2,60,2, - 1,51,46,60,4,2,1,12,12,24,16,2,255,128,16,64, - 48,32,96,16,192,9,128,7,0,6,0,13,0,9,128,9, - 128,9,128,7,0,8,13,13,16,4,254,192,195,195,67,62, - 12,12,104,88,120,4,2,1,8,13,13,16,4,254,60,192, - 128,192,124,16,32,35,51,15,4,4,2,11,11,22,16,3, - 0,128,0,135,0,142,192,140,64,68,96,67,224,64,32,32, - 32,32,64,24,192,7,0,10,10,20,16,3,1,255,192,32, - 0,64,0,128,0,128,0,131,0,135,128,124,128,56,128,0, - 128,8,12,12,16,4,255,56,100,98,97,32,56,72,192,192, - 192,32,31,5,4,4,16,6,3,112,136,136,112,2,2,2, - 16,8,6,192,192,15,15,30,16,1,255,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,192,0,64,15,15,30,16,1,255,0, - 192,0,192,0,192,57,254,68,192,4,192,12,192,56,192,8, - 192,135,192,134,192,78,192,60,192,0,192,0,64,15,15,30, - 16,1,255,0,12,0,12,0,12,57,254,68,204,4,204,12, - 204,56,204,8,204,135,204,134,204,78,204,60,204,0,204,0, - 68,15,15,30,16,1,255,0,128,0,120,2,4,57,246,68, - 12,4,124,12,204,56,204,8,204,135,204,134,204,78,204,60, - 204,0,204,0,68,15,16,32,16,1,254,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,64,33,0,30,0,15,16,32,16,1, - 254,2,0,1,32,0,192,57,254,68,192,4,192,12,192,56, - 192,8,192,135,192,78,192,60,192,33,192,30,0,64,128,63, - 0,16,12,24,16,0,255,255,255,24,0,24,0,24,0,63, - 224,56,112,0,48,0,48,0,48,0,48,0,96,0,64,16, - 12,24,16,0,255,255,255,0,24,0,24,0,24,3,248,17, - 152,8,216,8,216,7,152,0,24,8,152,2,8,16,12,24, - 16,0,255,255,255,3,24,3,24,3,24,3,152,6,88,4, - 56,4,120,3,216,0,24,0,24,0,8,16,12,24,16,0, - 255,255,255,1,152,1,152,1,152,1,152,7,152,3,152,1, - 152,0,152,0,24,0,24,15,248,16,12,24,16,0,255,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,24,31,248,8,13,13,16,4,254,124,226,193, - 1,1,3,62,60,48,48,48,48,16,16,13,26,16,0,254, - 255,255,0,24,0,24,3,248,6,0,6,0,3,240,0,24, - 4,24,2,24,1,240,0,0,15,254,16,12,24,16,0,255, - 255,255,0,24,0,24,7,216,14,120,13,24,12,152,12,120, - 7,248,0,24,0,24,15,248,11,12,24,16,2,255,30,0, - 55,0,97,128,193,128,193,128,89,128,57,128,1,128,1,128, - 1,160,1,160,0,192,6,4,4,16,5,9,48,180,132,120, - 5,8,8,16,11,0,96,144,96,0,192,96,48,8,4,7, - 7,16,11,1,96,144,96,0,96,144,96,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,231,108,219,108,231,12,219,236,231,236,255,252,16,12,24, - 16,0,255,255,255,0,12,64,12,67,140,71,204,71,236,99, - 44,32,108,48,124,24,220,15,140,0,4,16,13,26,16,0, - 255,0,6,255,247,0,110,64,102,70,102,79,102,79,102,69, - 102,65,102,97,102,51,230,30,102,0,34,16,15,30,16,0, - 255,32,0,31,192,0,32,255,255,0,0,15,192,24,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,16, - 15,30,16,0,255,32,0,31,240,0,8,255,255,30,0,63, - 12,59,30,25,56,1,248,1,240,3,144,79,16,60,16,16, - 24,0,14,16,15,30,16,0,255,16,0,15,224,0,16,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,15,30,16,0,255,16,0,15, - 224,0,16,255,255,3,0,3,0,83,0,83,16,83,56,83, - 108,73,204,40,12,36,12,18,24,15,240,15,14,28,16,1, - 255,64,0,228,0,230,206,133,204,121,204,3,204,14,204,120, - 204,96,236,120,252,14,220,3,204,1,204,0,68,14,14,28, - 16,1,255,64,0,128,0,128,0,64,0,127,192,31,240,0, - 56,15,12,24,140,56,76,56,76,56,76,16,216,3,240,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,231,28,219,108,231,108,219,108,231,28,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,231,12,219,124,231,28,219,124,231, - 12,255,252,14,13,26,16,1,255,0,48,0,248,1,140,3, - 12,135,140,135,140,131,12,128,12,192,12,64,108,96,156,51, - 12,14,4,14,15,30,16,1,255,0,8,0,16,0,16,0, - 216,3,236,6,52,140,52,158,52,158,52,140,56,192,48,65, - 176,98,112,60,48,24,16,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,231,220,219, - 156,227,220,251,220,231,140,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,231, - 12,219,236,227,12,251,124,231,12,255,252,14,13,26,16,1, - 255,0,240,3,24,6,12,14,12,142,12,134,120,192,248,64, - 120,96,12,48,12,24,12,12,24,7,240,14,15,30,16,1, - 255,0,8,0,16,0,16,7,216,8,108,28,52,28,52,156, - 52,137,228,131,248,193,224,64,48,96,48,48,112,31,224,16, - 12,24,16,0,255,255,255,0,96,0,96,1,248,7,100,60, - 98,48,98,60,110,7,108,1,224,0,224,0,32,14,13,26, - 16,2,255,64,0,226,60,227,48,197,48,121,48,1,48,6, - 48,120,48,126,48,1,176,0,112,0,48,0,16,14,12,24, - 16,2,255,62,124,113,96,224,224,224,96,252,96,70,96,6, - 96,6,96,28,96,120,96,32,96,0,32,16,12,24,16,0, - 255,255,255,24,24,48,24,56,24,31,152,1,152,6,24,12, - 24,31,24,1,216,0,56,0,8,12,13,26,16,2,255,32, - 0,35,192,22,64,12,64,15,128,140,0,136,32,136,112,199, - 176,64,48,96,48,48,96,31,128,16,12,24,16,0,255,255, - 255,24,0,24,0,28,0,27,0,24,252,24,12,24,12,24, - 12,24,24,28,48,15,192,16,12,24,16,0,255,255,255,24, - 0,24,0,28,0,27,224,24,56,24,104,28,200,15,16,0, - 96,1,248,0,14,16,12,24,16,0,255,255,255,1,240,3, - 28,70,15,76,2,76,196,79,36,102,44,32,44,48,100,24, - 196,15,131,16,12,24,16,0,255,255,231,0,102,0,102,1, - 230,7,102,60,102,48,102,60,102,7,126,1,238,0,230,0, - 34,14,13,26,16,1,255,7,0,13,128,25,176,49,248,57, - 204,185,140,145,184,129,140,193,204,199,248,111,176,121,128,48, - 128,16,15,30,16,0,255,16,0,15,192,0,32,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,16,15,30,16,0,255,16,0,15,0,0, - 128,255,255,0,128,0,128,0,192,1,192,1,96,35,48,58, - 24,20,24,24,24,12,48,7,224,16,12,24,16,0,255,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,12,24,16,0,255,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,13,13,26,16,3,255,28,96,62,120,97, - 96,192,224,192,224,224,96,224,96,64,96,0,96,0,96,0, - 96,0,96,0,32,16,12,24,16,0,255,255,255,0,0,65, - 248,67,12,67,132,67,134,99,134,33,6,48,6,24,12,12, - 28,7,240,15,13,26,16,1,255,60,0,98,62,241,48,241, - 48,97,48,1,48,6,48,120,48,126,48,1,176,0,112,0, - 48,0,16,16,12,24,16,0,255,255,255,12,0,12,0,12, - 120,12,240,13,224,13,96,15,96,14,96,14,96,12,48,8, - 28,12,13,26,16,4,255,96,0,240,240,224,192,128,192,99, - 192,30,192,56,192,224,192,248,192,14,192,3,192,1,192,0, - 64,16,12,24,16,0,255,255,255,0,24,0,24,0,24,0, - 24,30,24,63,152,60,216,56,120,0,56,0,24,0,8,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,156,219,108,195,140,219,236,219,156,255, - 252,15,13,26,16,1,255,14,48,31,190,48,240,96,112,240, - 240,155,176,14,48,24,48,32,48,0,48,0,48,0,48,0, - 16,16,12,24,16,0,255,255,255,16,0,56,120,12,100,6, - 98,12,98,24,110,48,108,63,96,1,224,0,96,0,32,16, - 12,24,16,0,255,255,255,0,24,0,24,0,120,3,216,7, - 24,28,24,31,24,1,216,0,120,0,56,0,8,16,12,24, - 16,0,255,255,255,0,0,66,16,71,8,71,12,70,20,99, - 230,32,6,48,6,24,12,12,28,7,240,16,12,24,16,0, - 255,255,255,12,24,28,24,14,24,3,24,3,24,3,24,15, - 216,30,120,12,56,0,24,0,8,16,12,24,16,0,255,255, - 255,8,48,28,48,6,48,3,48,6,48,12,48,24,48,31, - 176,0,240,0,48,0,16,16,12,24,16,0,255,255,255,0, - 24,0,120,3,216,7,24,28,24,31,24,1,216,2,120,7, - 56,7,24,2,8,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,220,219,156,199, - 220,219,220,199,140,255,252,16,12,24,16,0,255,255,255,0, - 6,0,6,28,22,62,62,99,102,65,198,65,198,64,134,124, - 6,60,6,24,2,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,199, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,199,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,199,12,219,236,199,12,255,252,15,13,26,16,1, - 255,112,204,249,238,143,60,143,28,31,140,63,204,25,140,0, - 12,0,12,0,12,0,12,0,12,0,4,16,12,24,16,0, - 255,255,255,28,24,14,24,7,152,1,216,6,120,28,24,31, - 24,1,216,0,120,0,56,0,8,16,12,24,16,0,255,255, - 255,16,12,56,12,28,12,6,12,2,204,1,236,3,28,102, - 12,60,12,24,12,0,4,16,12,24,16,0,255,255,255,0, - 0,15,192,24,96,60,48,60,48,24,48,0,96,63,192,7, - 0,1,192,0,124,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,12,219,108,199, - 12,219,108,199,108,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,28,219, - 108,199,28,219,108,199,28,255,252,2,2,2,16,7,255,192, - 192,14,12,24,16,0,255,240,0,8,0,15,192,28,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,5, - 10,10,16,11,255,48,184,112,48,48,48,48,48,48,16,13, - 14,28,16,0,255,15,128,63,224,96,16,96,8,32,0,248, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,16, - 0,12,14,28,16,4,255,63,0,65,128,128,192,190,64,65, - 64,1,240,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,64,6,5,5,16,5,254,4,104,144,104,4,6,5, - 5,16,6,254,96,128,112,8,4,5,5,5,16,5,254,24, - 96,128,96,24,3,5,5,16,6,255,96,128,96,128,64,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,227,12,223,124,223,12,223,236,227,12,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,227,156,223,124,223,28,223,108,227, - 156,255,252,5,9,9,16,0,255,248,24,48,96,64,64,64, - 88,56,5,12,12,16,0,255,128,112,8,248,24,48,96,64, - 64,64,88,56,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,227,156,223,108,223,140, - 223,236,227,156,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,227,12,223,108, - 223,12,223,108,227,108,255,252,16,10,20,16,0,255,0,6, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,16,13,26,16,0,255,0,128,0,112,0,8,0,4, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,5,3,3,16,6,0,192,48,8,8,12,12,16,4, - 255,56,92,204,236,216,192,96,56,12,6,3,1,14,14,28, - 16,1,255,255,252,231,156,219,108,219,140,219,236,231,156,255, - 252,255,252,227,12,223,124,223,28,223,124,227,124,255,252,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,199,156,219,108,219,108,219,108,199,156,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,199,220,219,156,219,220,219,220,199, - 140,255,252,14,14,28,16,1,255,255,252,231,156,219,108,219, - 140,219,236,231,156,255,252,255,252,199,12,219,236,219,12,219, - 124,199,12,255,252,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,219, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,219,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,219,12,219,236,199,12,255,252,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,199,156,219,124,219,28,219,108,199,156,255,252,8,13,13, - 16,8,255,128,112,8,4,23,14,6,6,6,6,6,6,2, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,199,156,219,108,219,156,219,108,199,156, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,199,156,219,108,219,140,219,236, - 199,156,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,199,12,219,108,219,12, - 219,108,199,108,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,199,28,219,108, - 219,28,219,108,199,28,255,252,16,13,26,16,0,254,255,255, - 3,0,67,16,67,56,99,108,35,204,49,140,24,12,14,24, - 3,240,0,0,0,192,0,192,16,13,26,16,0,254,255,255, - 12,0,12,0,12,0,12,48,12,120,12,56,12,48,7,224, - 3,192,0,0,1,128,1,128,14,14,28,16,1,255,255,252, - 231,156,219,108,219,140,219,236,231,156,255,252,255,252,199,12, - 219,124,219,28,219,124,199,12,255,252,16,13,26,16,0,254, - 255,255,4,24,14,24,3,24,1,152,3,24,6,24,12,24, - 15,216,0,120,1,24,3,136,1,0,15,15,30,16,1,254, - 64,0,228,0,230,206,133,204,121,204,3,204,14,204,120,204, - 96,236,120,252,14,220,123,204,97,204,120,68,14,0,8,14, - 14,16,4,255,128,124,3,121,197,205,158,128,124,3,121,197, - 205,158,7,5,5,16,5,255,124,2,114,202,220,10,6,12, - 16,5,255,3,128,112,64,10,64,77,64,173,128,176,0,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,108,223,108,199,12,223,236,195,236,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,195,12,223,124,199,12,223,236,195, - 12,255,252,10,11,22,16,3,0,30,0,63,0,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,63,0,30,0,9, - 12,24,16,4,0,64,0,64,0,96,0,56,0,14,0,3, - 0,1,128,97,128,225,128,225,128,195,0,126,0,10,11,22, - 16,3,0,224,0,56,0,14,0,3,0,3,0,227,0,126, - 0,28,0,6,0,1,128,0,64,12,12,24,16,2,255,131, - 192,132,96,136,48,140,48,142,48,142,48,134,48,64,48,64, - 96,32,96,17,192,15,0,11,13,26,16,2,255,31,0,63, - 128,96,192,64,64,96,192,49,128,31,0,96,192,192,96,192, - 96,224,224,127,192,31,0,11,13,26,16,2,255,7,0,30, - 0,57,96,112,192,97,128,195,0,198,0,198,0,198,0,198, - 0,99,96,48,192,31,128,12,12,24,16,2,255,28,0,12, - 0,12,0,140,0,140,96,140,160,141,176,199,48,64,48,96, - 48,48,96,31,192,9,13,26,16,4,255,60,0,126,0,195, - 0,195,0,199,0,127,0,59,0,3,0,3,0,3,0,3, - 0,3,0,1,128,13,13,26,16,1,255,224,0,96,0,96, - 0,96,8,103,240,127,192,112,96,96,96,96,96,96,96,112, - 192,63,128,30,0,12,15,30,16,2,254,128,0,128,0,96, - 0,60,0,15,0,3,192,0,224,0,48,60,48,66,48,225, - 48,225,48,225,96,65,192,1,0,16,12,24,16,0,255,255, - 255,0,24,0,24,0,120,3,216,7,152,28,120,31,24,1, - 216,0,120,0,56,0,8,16,13,26,16,0,254,255,255,0, - 24,0,24,0,120,3,216,7,24,28,24,31,24,1,216,28, - 120,7,56,1,136,0,64,9,8,16,16,3,3,224,0,248, - 0,124,0,14,0,3,0,1,0,0,128,0,128,12,13,26, - 16,1,255,48,0,120,0,204,0,12,0,31,240,12,0,12, - 96,12,240,12,240,12,48,12,96,7,192,3,128,9,8,16, - 16,3,2,0,128,0,128,1,0,3,0,14,0,124,0,248, - 0,224,0,12,9,18,16,2,2,56,16,124,16,226,32,242, - 96,242,192,98,192,7,128,15,0,14,0,12,13,26,16,2, - 255,0,16,0,16,0,16,56,16,124,16,126,16,62,16,6, - 48,12,96,248,224,193,192,127,128,30,0,2,13,13,16,8, - 255,128,192,192,192,192,192,192,192,192,192,192,192,64,11,13, - 26,16,2,255,224,0,96,0,96,192,97,192,99,192,98,192, - 102,192,108,192,120,192,112,192,96,192,0,192,0,96,11,10, - 20,16,3,1,31,0,63,128,96,192,192,96,192,96,192,96, - 192,96,96,192,63,128,31,0,14,9,18,16,1,255,0,4, - 2,4,135,8,135,8,66,16,96,48,48,96,31,192,15,0, - 6,8,8,16,5,254,96,128,128,64,32,16,8,4,14,14, - 28,16,1,255,255,252,231,156,219,108,219,140,219,236,231,156, - 255,252,255,252,195,140,223,124,199,124,223,124,223,140,255,252, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,195,28,223,108,199,108,223,108,223,28, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,195,12,223,124,199,28,223,124, - 223,12,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,195,12,223,124,199,28, - 223,124,223,124,255,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 4 y= 0 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[4633] U8G_FONT_SECTION("u8g_font_unifont_2_3") = { - 0,16,16,0,254,10,4,222,7,30,0,255,0,14,254,14, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,11,11,8,1,0,120,0,0, - 120,132,4,124,132,132,140,116,6,14,14,8,1,0,132,132, - 120,0,48,72,72,132,132,252,132,132,132,132,6,13,13,8, - 1,0,132,132,120,0,0,120,132,4,124,132,132,140,116,7, - 12,12,8,1,254,48,72,72,132,132,252,132,132,132,132,8, - 6,7,10,10,8,1,254,120,132,4,124,132,132,140,116,8, - 6,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, - 128,128,132,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,128,128,128,128,132,120,6,14,14,8,1,0,48,72,0, - 0,120,132,132,128,128,128,128,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,128,128,128,128,132,120,6,14,14, - 8,1,0,32,32,0,0,120,132,132,128,128,128,128,132,132, - 120,6,12,12,8,1,0,32,32,0,0,120,132,128,128,128, - 128,132,120,6,14,14,8,1,0,72,48,0,0,120,132,132, - 128,128,128,128,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,128,128,128,128,132,120,6,14,14,8,1,0,144, - 96,0,0,240,136,132,132,132,132,132,132,136,240,6,14,14, - 8,1,0,72,48,0,4,4,4,116,140,132,132,132,132,140, - 116,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,11,11,8,1,0,4,30,4,116,140,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,252,128,128,128,248, - 128,128,128,128,252,6,11,11,8,1,0,120,0,0,120,132, - 132,252,128,128,132,120,6,14,14,8,1,0,132,132,120,0, - 252,128,128,128,248,128,128,128,128,252,6,12,12,8,1,0, - 132,132,120,0,120,132,132,252,128,128,132,120,6,14,14,8, - 1,0,32,32,0,0,252,128,128,128,248,128,128,128,128,252, - 6,12,12,8,1,0,32,32,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,254,252,128,128,128,248,128,128,128, - 128,252,16,12,6,10,10,8,1,254,120,132,132,252,128,128, - 132,120,32,24,6,14,14,8,1,0,72,48,0,0,252,128, - 128,128,248,128,128,128,128,252,6,12,12,8,1,0,72,48, - 0,0,120,132,132,252,128,128,132,120,6,14,14,8,1,0, - 48,72,0,0,120,132,132,128,128,156,132,132,140,116,6,14, - 14,8,1,254,48,72,0,4,116,136,136,136,112,64,120,132, - 132,120,6,14,14,8,1,0,132,132,120,0,120,132,132,128, - 128,156,132,132,140,116,6,15,15,8,1,254,132,132,120,0, - 4,116,136,136,136,112,64,120,132,132,120,6,14,14,8,1, - 0,32,32,0,0,120,132,132,128,128,156,132,132,140,116,6, - 14,14,8,1,254,32,32,0,4,116,136,136,136,112,64,120, - 132,132,120,6,12,12,8,1,254,120,132,132,128,128,156,132, - 132,140,116,16,96,6,14,14,8,1,254,24,32,0,4,116, - 136,136,136,112,64,120,132,132,120,6,14,14,8,1,0,48, - 72,0,0,132,132,132,132,252,132,132,132,132,132,6,14,14, - 8,1,0,96,144,0,128,128,128,184,196,132,132,132,132,132, - 132,8,10,10,8,0,0,66,66,255,66,66,126,66,66,66, - 66,7,11,11,8,0,0,64,240,64,92,98,66,66,66,66, - 66,66,6,14,14,8,1,0,100,152,0,0,124,16,16,16, - 16,16,16,16,16,124,6,12,12,8,1,0,100,152,0,0, - 48,16,16,16,16,16,16,124,5,13,13,8,2,0,240,0, - 0,248,32,32,32,32,32,32,32,32,248,5,11,11,8,2, - 0,240,0,0,96,32,32,32,32,32,32,248,6,14,14,8, - 1,0,132,132,120,0,124,16,16,16,16,16,16,16,16,124, - 6,12,12,8,1,0,132,132,120,0,48,16,16,16,16,16, - 16,124,5,12,12,8,2,254,248,32,32,32,32,32,32,32, - 32,248,32,24,5,13,13,8,2,254,32,32,0,96,32,32, - 32,32,32,32,248,32,24,5,14,14,8,2,0,32,32,0, - 0,248,32,32,32,32,32,32,32,32,248,5,8,8,8,2, - 0,96,32,32,32,32,32,32,248,6,10,10,8,1,0,132, - 132,132,132,132,132,4,4,132,120,5,14,14,8,2,254,136, - 136,0,0,136,136,136,136,136,136,104,8,136,112,7,14,14, - 8,1,0,24,36,0,0,62,8,8,8,8,8,8,136,136, - 112,6,14,14,8,1,254,24,36,0,0,24,8,8,8,8, - 8,8,8,144,96,7,12,12,8,0,254,66,68,72,80,96, - 96,80,72,68,66,32,192,7,13,13,8,0,254,64,64,64, - 68,72,80,96,80,72,68,66,32,192,6,8,8,8,1,0, - 132,136,144,224,224,144,136,132,6,14,14,8,1,0,48,192, - 0,0,128,128,128,128,128,128,128,128,128,252,5,14,14,8, - 2,0,48,192,0,96,32,32,32,32,32,32,32,32,32,248, - 6,12,12,8,1,254,128,128,128,128,128,128,128,128,128,252, - 16,96,5,13,13,8,2,254,96,32,32,32,32,32,32,32, - 32,32,248,32,192,6,14,14,8,1,0,72,48,0,0,128, - 128,128,128,128,128,128,128,128,252,5,14,14,8,2,0,144, - 96,0,96,32,32,32,32,32,32,32,32,32,248,6,10,10, - 8,1,0,128,128,128,128,136,136,128,128,128,252,5,11,11, - 8,1,0,96,32,32,32,32,40,40,32,32,32,248,7,10, - 10,8,0,0,64,64,72,80,96,192,64,64,64,126,5,11, - 11,8,2,0,96,32,32,40,48,96,160,32,32,32,248,6, - 14,14,8,1,0,24,96,0,0,132,196,196,164,164,148,148, - 140,140,132,6,12,12,8,1,0,24,96,0,0,184,196,132, - 132,132,132,132,132,7,12,12,8,0,254,66,98,98,82,82, - 74,74,70,70,66,32,192,7,10,10,8,0,254,92,98,66, - 66,66,66,66,66,32,192,6,14,14,8,1,0,72,48,0, - 0,132,196,196,164,164,148,148,140,140,132,6,12,12,8,1, - 0,72,48,0,0,184,196,132,132,132,132,132,132,6,13,13, - 8,1,0,192,64,64,128,0,184,196,132,132,132,132,132,132, - 6,10,10,8,1,0,184,196,132,132,132,132,132,132,132,152, - 6,10,10,8,1,254,184,196,132,132,132,132,132,132,4,24, - 6,13,13,8,1,0,120,0,0,120,132,132,132,132,132,132, - 132,132,120,6,11,11,8,1,0,120,0,0,120,132,132,132, - 132,132,132,120,6,14,14,8,1,0,132,132,120,0,120,132, - 132,132,132,132,132,132,132,120,6,12,12,8,1,0,132,132, - 120,0,120,132,132,132,132,132,132,120,7,14,14,8,1,0, - 102,136,0,0,120,132,132,132,132,132,132,132,132,120,7,12, - 12,8,1,0,102,136,0,0,120,132,132,132,132,132,132,120, - 7,10,10,8,1,0,110,144,144,144,156,144,144,144,144,110, - 7,8,8,8,1,0,108,146,146,158,144,144,146,108,6,14, - 14,8,1,0,24,96,0,0,248,132,132,132,248,144,136,136, - 132,132,6,12,12,8,1,0,24,96,0,0,184,196,132,128, - 128,128,128,128,7,12,12,8,0,254,124,66,66,66,124,72, - 68,68,66,66,32,192,7,10,10,8,0,254,92,98,66,64, - 64,64,64,64,32,192,6,14,14,8,1,0,72,48,0,0, - 248,132,132,132,248,144,136,136,132,132,6,12,12,8,1,0, - 72,48,0,0,184,196,132,128,128,128,128,128,6,14,14,8, - 1,0,24,96,0,0,120,132,132,128,96,24,4,132,132,120, - 6,12,12,8,1,0,24,96,0,0,120,132,128,96,24,132, - 132,120,6,14,14,8,1,0,48,72,0,0,120,132,132,128, - 96,24,4,132,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,128,96,24,4,132,120,6,12,12,8,1,254,120,132, - 132,128,96,24,4,132,132,120,16,96,6,10,10,8,1,254, - 120,132,128,96,24,4,132,120,16,96,6,14,14,8,1,0, - 72,48,0,0,120,132,132,128,96,24,4,132,132,120,6,12, - 12,8,1,0,72,48,0,0,120,132,128,96,24,4,132,120, - 7,12,12,8,1,254,254,16,16,16,16,16,16,16,16,16, - 16,96,5,12,12,8,1,254,32,32,32,248,32,32,32,32, - 32,24,16,96,7,14,14,8,1,0,72,48,0,0,254,16, - 16,16,16,16,16,16,16,16,5,14,14,8,1,0,72,48, - 0,0,32,32,32,248,32,32,32,32,32,24,7,10,10,8, - 1,0,254,16,16,20,24,48,80,16,16,16,5,10,10,8, - 1,0,32,32,32,248,32,40,48,96,160,24,6,14,14,8, - 1,0,100,152,0,0,132,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,100,152,0,0,132,132,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,132,132,132,132,132, - 132,132,132,132,120,6,11,11,8,1,0,120,0,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,132,132,120,0, - 132,132,132,132,132,132,132,132,132,120,6,13,13,8,1,0, - 132,132,120,0,0,132,132,132,132,132,132,140,116,6,14,14, - 8,1,0,48,72,48,0,132,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,48,72,48,0,132,132,132,132,132, - 132,140,116,7,14,14,8,1,0,102,136,0,0,132,132,132, - 132,132,132,132,132,132,120,7,12,12,8,1,0,102,136,0, - 0,132,132,132,132,132,132,140,116,6,12,12,8,1,254,132, - 132,132,132,132,132,132,132,132,120,32,24,7,10,10,8,1, - 254,132,132,132,132,132,132,140,116,8,6,6,14,14,8,1, - 0,48,72,0,0,132,132,132,132,180,180,204,204,132,132,7, - 12,12,8,1,0,48,72,0,0,130,146,146,146,146,146,146, - 108,7,14,14,8,1,0,48,72,0,0,130,130,68,68,40, - 16,16,16,16,16,6,14,14,8,1,254,48,72,0,0,132, - 132,132,132,132,76,52,4,4,120,7,14,14,8,1,0,72, - 72,0,0,130,130,68,68,40,16,16,16,16,16,6,14,14, - 8,1,0,24,96,0,0,252,4,4,8,16,32,64,128,128, - 252,6,12,12,8,1,0,24,96,0,0,252,4,8,16,32, - 64,128,252,6,14,14,8,1,0,32,32,0,0,252,4,4, - 8,16,32,64,128,128,252,6,12,12,8,1,0,32,32,0, - 0,252,4,8,16,32,64,128,252,6,14,14,8,1,0,72, - 48,0,0,252,4,4,8,16,32,64,128,128,252,6,12,12, - 8,1,0,72,48,0,0,252,4,8,16,32,64,128,252,4, - 11,11,8,2,0,48,64,64,64,192,64,64,64,64,64,64, - 7,11,11,8,0,0,64,240,64,92,98,66,66,66,66,98, - 92,7,10,10,8,0,0,124,162,162,34,60,34,34,34,34, - 60,6,10,10,8,1,0,252,128,128,128,248,132,132,132,132, - 248,6,10,10,8,1,0,252,128,128,184,196,132,132,132,196, - 184,6,10,10,8,1,0,192,64,64,64,120,68,68,68,68, - 120,6,8,8,8,1,0,192,64,64,64,120,68,68,120,6, - 10,10,8,1,0,120,132,132,4,4,4,4,132,132,248,7, - 12,12,8,1,0,6,8,120,136,136,128,128,128,128,136,136, - 112,7,10,10,8,1,0,6,8,120,136,128,128,128,128,136, - 112,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,10,10,8,0,0,120,164,162,34,34,34,34,34,36, - 56,6,10,10,8,1,0,252,4,4,4,124,132,132,132,132, - 124,6,10,10,8,1,0,252,4,4,116,140,132,132,132,140, - 116,6,10,10,8,1,254,120,132,132,132,132,72,48,8,8, - 112,6,10,10,8,1,0,252,4,4,4,124,4,4,4,4, - 252,6,10,10,8,1,0,48,72,132,4,4,252,132,132,72, - 48,6,10,10,8,1,0,120,132,132,128,112,128,128,132,132, - 120,7,11,11,8,1,255,62,32,32,32,60,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,248,32,32,32, - 32,32,32,192,7,11,11,8,1,0,6,120,136,136,128,128, - 184,136,136,152,104,6,10,10,8,1,0,132,132,132,72,72, - 48,48,72,72,48,6,11,11,8,1,0,128,128,128,128,228, - 148,148,148,148,148,136,5,11,11,8,1,0,224,32,32,32, - 32,32,32,32,32,32,24,5,10,10,8,2,0,248,32,32, - 32,248,32,32,32,32,248,6,10,10,8,1,0,140,148,160, - 160,192,192,160,144,136,132,6,11,11,8,1,0,96,144,128, - 136,144,160,192,160,144,136,132,5,11,11,8,2,0,96,32, - 32,32,248,32,32,32,32,32,248,6,10,10,8,1,0,72, - 80,32,96,144,48,72,72,132,132,7,10,10,8,1,0,146, - 146,146,146,146,146,146,146,146,110,7,11,11,8,0,255,34, - 34,50,50,42,42,38,38,34,34,192,6,10,10,8,1,254, - 184,196,132,132,132,132,132,132,4,4,6,10,10,8,1,0, - 120,132,132,132,252,132,132,132,132,120,6,11,11,8,1,0, - 4,116,136,136,136,136,136,136,136,136,112,6,9,9,8,1, - 0,4,116,136,136,136,136,136,136,112,6,12,12,8,1,254, - 108,148,148,148,148,148,148,148,148,100,4,4,6,10,10,8, - 1,254,108,148,148,148,148,148,148,100,4,4,7,10,10,8, - 1,0,124,162,162,34,60,32,32,32,32,32,7,11,11,8, - 1,254,6,184,200,136,136,136,136,200,176,128,128,7,10,10, - 8,1,0,224,64,120,68,68,120,80,72,68,66,6,10,10, - 8,1,0,120,132,132,4,24,96,128,132,132,120,6,8,8, - 8,1,0,120,132,4,24,96,128,132,120,6,10,10,8,1, - 0,252,128,64,32,16,16,32,64,128,252,5,12,12,8,1, - 255,64,160,160,96,32,32,32,32,32,32,32,24,5,12,12, - 8,1,254,32,32,32,248,32,32,32,32,32,24,8,48,7, - 10,10,8,1,0,126,144,144,16,16,16,16,16,16,16,5, - 11,11,8,1,0,24,32,32,32,248,32,32,32,32,32,24, - 7,11,11,8,1,255,254,16,16,16,16,16,16,16,16,16, - 12,7,12,12,8,1,0,2,2,140,136,136,136,136,136,136, - 136,136,112,7,10,10,8,1,0,2,2,140,136,136,136,136, - 136,152,104,6,10,10,8,1,0,132,72,72,132,132,132,132, - 132,72,48,6,10,10,8,1,0,152,132,132,132,132,132,132, - 136,144,96,7,10,10,8,1,0,140,138,136,80,80,32,32, - 32,32,32,7,11,11,8,1,254,6,136,136,136,136,136,72, - 56,8,8,112,6,10,10,8,1,0,252,4,8,16,120,32, - 64,128,128,252,6,8,8,8,1,0,252,8,16,120,32,64, - 128,252,6,10,10,8,1,0,252,8,16,32,56,4,4,4, - 140,120,6,10,10,8,1,0,252,64,32,16,112,128,128,128, - 196,120,6,10,10,8,1,254,248,64,32,16,112,128,128,128, - 132,120,6,10,10,8,1,254,124,8,16,56,4,4,120,128, - 132,120,6,10,10,8,1,0,120,132,132,8,16,252,64,128, - 128,252,6,10,10,8,1,0,252,64,64,64,120,4,4,4, - 132,120,6,8,8,8,1,0,252,64,64,120,4,4,132,120, - 5,10,10,8,1,0,32,32,248,32,32,48,8,8,136,112, - 6,10,10,8,1,254,184,196,132,132,136,144,160,192,128,128, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,3,11,11,8,2,0,160,160,160,160,160,160,160,160,160, - 160,160,5,11,11,8,1,0,32,32,32,32,248,32,248,32, - 32,32,32,1,10,10,8,4,0,128,128,128,128,128,128,128, - 0,128,128,7,14,14,8,1,0,10,4,0,0,206,162,162, - 162,164,164,168,168,168,206,7,12,12,8,1,0,10,4,192, - 160,174,162,162,164,164,168,168,206,7,12,12,8,1,0,10, - 36,32,32,110,162,162,164,164,168,168,110,7,10,10,8,1, - 0,142,130,130,130,130,130,130,146,146,236,7,13,13,8,1, - 254,2,130,128,134,130,130,130,130,130,130,242,4,24,8,13, - 13,8,0,254,97,33,32,35,33,33,33,33,33,33,249,2, - 12,7,10,10,8,1,0,150,146,146,210,210,178,178,154,154, - 148,7,13,13,8,1,254,2,146,144,214,210,210,178,178,178, - 146,146,36,24,7,13,13,8,1,254,2,2,0,166,210,146, - 146,146,146,146,146,36,24,6,14,14,8,1,0,72,48,0, - 0,48,72,72,132,132,252,132,132,132,132,6,12,12,8,1, - 0,72,48,0,0,120,132,4,124,132,132,140,116,5,14,14, - 8,2,0,144,96,0,0,248,32,32,32,32,32,32,32,32, - 248,5,12,12,8,2,0,144,96,0,0,96,32,32,32,32, - 32,32,248,6,14,14,8,1,0,72,48,0,0,120,132,132, - 132,132,132,132,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,132,132,132,132,132,120,6,14,14,8,1,0,72, - 48,0,0,132,132,132,132,132,132,132,132,132,120,6,12,12, - 8,1,0,72,48,0,0,132,132,132,132,132,132,140,116,6, - 14,14,8,1,0,120,0,72,0,132,132,132,132,132,132,132, - 132,132,120,6,13,13,8,1,0,120,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,24,96,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 24,96,0,72,72,0,132,132,132,132,132,132,140,116,6,14, - 14,8,1,0,72,48,0,72,0,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,72,48,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,96,24,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 96,24,0,72,72,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,120,132,4,4,252,132,132,120,6,14,14,8, - 1,0,120,0,72,0,48,72,72,132,132,252,132,132,132,132, - 6,13,13,8,1,0,120,0,72,72,0,120,132,4,124,132, - 132,140,116,6,14,14,8,1,0,120,0,48,0,48,72,72, - 132,132,252,132,132,132,132,6,13,13,8,1,0,120,0,32, - 32,0,120,132,4,124,132,132,140,116,7,13,13,8,1,0, - 120,0,0,62,80,144,144,254,144,144,144,144,158,7,11,11, - 8,1,0,120,0,0,124,146,18,126,144,144,146,124,7,10, - 10,8,1,0,120,132,132,128,128,156,132,158,132,124,7,11, - 11,8,1,254,4,116,136,136,136,112,64,120,158,132,120,6, - 14,14,8,1,0,72,48,0,0,120,132,132,128,128,156,132, - 132,140,116,6,14,14,8,1,254,72,48,0,4,116,136,136, - 136,112,64,120,132,132,120,6,14,14,8,1,0,72,48,0, - 0,132,136,144,160,192,192,160,144,136,132,6,14,14,8,1, - 0,72,48,0,128,128,128,136,144,160,192,160,144,136,132,6, - 12,12,8,1,254,120,132,132,132,132,132,132,132,132,120,32, - 24,6,10,10,8,1,254,120,132,132,132,132,132,132,120,32, - 24,6,15,15,8,1,254,120,0,0,120,132,132,132,132,132, - 132,132,132,120,32,24,6,13,13,8,1,254,120,0,0,120, - 132,132,132,132,132,132,120,32,24,6,14,14,8,1,0,72, - 48,0,0,252,8,16,32,56,4,4,4,140,120,6,14,14, - 8,1,254,72,48,0,0,124,8,16,32,56,4,4,4,132, - 120,6,14,14,8,1,254,36,24,0,0,24,8,8,8,8, - 8,8,8,144,96,7,10,10,8,1,0,206,162,162,162,164, - 164,168,168,168,206,7,10,10,8,1,0,192,160,174,162,162, - 164,164,168,168,206,7,11,11,8,1,0,32,32,32,110,162, - 162,164,164,168,168,110,6,14,14,8,1,0,24,96,0,0, - 120,132,132,128,128,156,132,132,140,116,6,14,14,8,1,254, - 24,96,0,4,116,136,136,136,112,64,120,132,132,120,6,10, - 10,8,1,0,144,144,144,148,244,148,148,148,148,136,6,11, - 11,8,1,255,184,196,132,132,136,144,160,192,128,128,128,6, - 13,13,8,1,0,96,24,0,132,196,196,164,164,148,148,140, - 140,132,6,11,11,8,1,0,96,24,0,184,196,132,132,132, - 132,132,132,6,14,14,8,1,0,24,96,48,72,48,48,72, - 72,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 48,72,48,0,120,132,4,124,132,140,116,7,14,14,8,1, - 0,12,48,0,0,62,80,144,144,254,144,144,144,144,158,7, - 12,12,8,1,0,12,48,0,0,124,146,18,126,144,144,146, - 124,6,15,15,8,1,255,24,96,0,4,116,136,140,148,148, - 164,164,196,68,184,128,6,13,13,8,1,255,24,96,0,4, - 120,140,148,148,164,164,196,120,128}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[3791] U8G_FONT_SECTION("u8g_font_unifont_4_5") = { - 0,16,16,0,254,10,4,177,6,164,0,255,0,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,7,12,12,8,0,0,204,34,0, - 0,60,66,2,62,66,66,70,58,6,14,14,8,1,0,120, - 132,132,0,48,72,72,132,132,252,132,132,132,132,6,12,12, - 8,1,0,120,132,132,0,120,132,4,124,132,132,140,116,7, - 14,14,8,0,0,204,34,0,0,126,64,64,64,124,64,64, - 64,64,126,7,12,12,8,0,0,204,34,0,0,60,66,66, - 126,64,64,66,60,6,14,14,8,1,0,120,132,132,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,120, - 132,132,0,120,132,132,252,128,128,132,120,7,14,14,8,0, - 0,204,34,0,0,62,8,8,8,8,8,8,8,8,62,7, - 12,12,8,0,0,204,34,0,0,24,8,8,8,8,8,8, - 62,6,14,14,8,1,0,120,132,132,0,124,16,16,16,16, - 16,16,16,16,124,6,12,12,8,1,0,120,132,132,0,48, - 16,16,16,16,16,16,124,7,14,14,8,0,0,204,34,0, - 0,60,66,66,66,66,66,66,66,66,60,7,12,12,8,0, - 0,204,34,0,0,60,66,66,66,66,66,66,60,6,14,14, - 8,1,0,120,132,132,0,120,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,120,132,132,0,120,132,132,132,132, - 132,132,120,7,14,14,8,0,0,204,34,0,0,124,66,66, - 66,124,72,68,68,66,66,7,12,12,8,0,0,204,34,0, - 0,92,98,66,64,64,64,64,64,6,14,14,8,1,0,120, - 132,132,0,248,132,132,132,248,144,136,136,132,132,6,12,12, - 8,1,0,120,132,132,0,184,196,132,128,128,128,128,128,7, - 14,14,8,0,0,204,34,0,0,66,66,66,66,66,66,66, - 66,66,60,7,12,12,8,0,0,204,34,0,0,66,66,66, - 66,66,66,70,58,6,14,14,8,1,0,120,132,132,0,132, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,120, - 132,132,0,132,132,132,132,132,132,140,116,6,12,12,8,1, - 254,120,132,132,128,96,24,4,132,132,120,16,32,6,10,10, - 8,1,254,120,132,128,96,24,4,132,120,16,32,7,12,12, - 8,1,254,254,16,16,16,16,16,16,16,16,16,4,8,5, - 12,12,8,1,254,32,32,32,248,32,32,32,32,32,24,64, - 128,6,10,10,8,1,0,120,132,132,4,24,104,4,4,4, - 120,6,8,8,8,1,0,120,132,4,24,100,4,24,96,6, - 13,13,8,1,0,72,48,0,132,132,132,132,252,132,132,132, - 132,132,6,13,13,8,1,0,72,48,0,128,128,128,184,196, - 132,132,132,132,132,6,10,10,8,1,254,184,196,132,132,132, - 132,132,132,4,4,7,13,13,8,1,254,4,4,4,116,140, - 132,132,132,132,142,118,4,8,6,10,10,8,1,0,16,72, - 132,132,72,120,132,132,132,120,5,8,8,8,2,0,72,136, - 144,96,144,136,136,112,6,12,12,8,1,254,252,4,4,8, - 16,32,64,128,128,252,4,8,6,10,10,8,1,254,252,4, - 8,16,32,64,128,252,4,8,6,12,12,8,1,0,16,0, - 48,72,72,132,132,252,132,132,132,132,6,10,10,8,1,0, - 16,0,120,132,4,124,132,132,140,116,6,12,12,8,1,254, - 252,128,128,128,248,128,128,128,128,252,16,96,6,10,10,8, - 1,254,120,132,132,252,128,128,132,120,16,96,6,14,14,8, - 1,0,120,0,72,0,120,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,120,0,72,0,120,132,132,132,132,132, - 132,120,6,14,14,8,1,0,120,0,100,152,0,120,132,132, - 132,132,132,132,132,120,6,13,13,8,1,0,120,0,100,152, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,16, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,16,0,120,132,132,132,132,132,132,120,6,14,14,8,1, - 0,120,0,16,0,120,132,132,132,132,132,132,132,132,120,6, - 12,12,8,1,0,120,0,16,0,120,132,132,132,132,132,132, - 120,7,12,12,8,1,0,124,0,130,130,68,68,40,16,16, - 16,16,16,6,12,12,8,1,254,120,0,132,132,132,132,132, - 76,52,4,4,120,4,13,13,8,2,254,96,32,32,32,32, - 32,32,32,32,48,48,64,128,7,10,10,8,1,254,184,196, - 132,132,132,132,134,134,4,8,6,12,12,8,1,254,32,32, - 32,248,32,32,32,32,44,28,16,32,5,10,10,8,1,254, - 24,8,8,8,8,8,8,8,144,96,7,11,11,8,0,0, - 16,16,16,84,186,146,146,146,146,186,84,7,10,10,8,0, - 254,84,186,146,146,146,146,186,84,16,16,7,11,11,8,0, - 0,2,26,36,44,74,82,126,98,66,66,194,7,12,12,8, - 0,255,2,60,70,74,72,80,80,96,98,66,124,128,7,11, - 11,8,0,255,2,4,60,74,80,80,96,96,66,124,128,6, - 10,10,8,1,0,64,64,64,64,240,64,64,64,64,124,7, - 12,12,8,1,0,2,4,254,24,24,16,16,48,48,80,80, - 144,7,10,10,8,1,254,120,132,128,96,24,4,132,120,18, - 12,6,10,10,8,1,254,252,4,8,16,32,64,128,192,32, - 28,6,10,10,8,1,0,120,132,132,4,8,16,16,16,16, - 16,6,8,8,8,1,0,120,132,132,4,8,16,16,16,6, - 10,10,8,1,0,120,68,68,68,120,68,244,68,68,120,7, - 10,10,8,0,0,68,68,68,68,68,254,68,68,68,56,6, - 10,10,8,1,0,48,48,48,72,72,72,72,132,132,132,6, - 14,14,8,1,254,8,8,252,144,144,160,248,160,160,192,192, - 252,128,128,7,10,10,8,0,255,2,60,70,74,126,80,96, - 66,124,128,7,10,10,8,1,0,62,8,8,8,8,62,8, - 136,136,112,7,13,13,8,1,254,8,8,0,24,8,8,62, - 8,8,8,8,144,96,7,12,12,8,1,254,112,136,136,136, - 136,136,136,136,152,104,8,6,7,10,10,8,1,254,104,152, - 136,136,136,136,152,104,8,6,6,10,10,8,1,0,120,68, - 68,68,248,80,72,72,68,68,6,8,8,8,1,0,88,100, - 68,224,64,64,64,64,7,10,10,8,1,0,130,130,68,254, - 40,16,16,16,16,16,7,10,10,8,1,254,68,68,68,254, - 68,36,28,4,4,56,6,8,8,8,1,0,184,196,132,132, - 248,128,132,120,6,8,8,8,1,0,116,140,132,132,132,140, - 148,100,6,8,8,8,1,0,152,164,196,132,132,132,196,184, - 6,11,11,8,1,0,112,128,128,184,196,132,132,132,132,196, - 184,6,8,8,8,1,0,120,132,4,4,4,4,132,120,6, - 9,9,8,1,255,120,132,128,128,128,152,164,120,128,7,12, - 12,8,1,255,8,8,8,104,152,136,136,136,136,152,104,6, - 7,11,11,8,1,0,6,8,8,104,152,136,136,136,136,152, - 104,6,8,8,8,1,0,120,132,132,252,4,4,132,120,6, - 8,8,8,1,0,120,132,4,4,252,132,132,120,7,8,8, - 8,1,0,114,140,8,8,248,136,136,112,6,8,8,8,1, - 0,120,132,128,120,128,128,132,120,6,8,8,8,1,0,120, - 132,4,120,4,4,132,120,7,8,8,8,1,0,114,140,8, - 112,8,8,136,112,6,8,8,8,1,0,120,132,132,184,132, - 132,132,120,7,10,10,8,1,254,24,8,8,8,62,8,8, - 8,144,96,7,11,11,8,1,254,6,104,152,136,136,136,152, - 104,8,136,112,6,10,10,8,1,254,116,140,132,132,132,140, - 116,4,132,120,6,8,8,8,1,0,120,132,128,128,156,132, - 132,124,6,10,10,8,1,254,132,132,132,72,72,48,48,72, - 72,48,6,8,8,8,1,0,132,132,72,72,48,48,72,48, - 6,11,11,8,1,254,132,132,132,132,132,132,140,116,4,4, - 4,6,11,11,8,1,0,112,128,128,184,196,132,132,132,132, - 132,132,6,11,11,8,1,0,112,128,128,184,196,132,132,132, - 132,132,152,5,11,11,8,2,0,32,32,0,96,32,32,248, - 32,32,32,248,3,8,8,8,3,0,128,128,128,128,128,128, - 128,96,5,8,8,8,2,0,248,32,32,32,32,32,32,248, - 6,11,11,8,1,0,48,16,16,16,116,152,16,16,16,16, - 124,6,11,11,8,1,0,48,16,16,112,144,124,16,16,16, - 16,124,4,12,12,8,3,255,192,64,64,64,64,64,64,64, - 64,64,64,48,7,13,13,8,1,254,96,32,32,62,34,36, - 40,44,34,34,250,18,12,7,8,8,8,1,0,146,146,146, - 146,146,146,146,110,7,10,10,8,1,254,146,146,146,146,146, - 146,146,110,2,2,7,9,9,8,1,255,236,146,146,146,146, - 146,146,130,12,7,9,9,8,1,255,44,50,34,34,34,34, - 34,34,192,7,9,9,8,1,255,176,200,136,136,136,136,136, - 136,6,6,8,8,8,1,0,132,132,196,164,148,140,132,132, - 6,8,8,8,1,0,120,132,132,252,132,132,132,120,7,8, - 8,8,1,0,110,144,144,156,144,144,144,110,7,8,8,8, - 1,0,124,130,130,146,146,146,146,108,7,12,12,8,1,254, - 16,16,124,146,146,146,146,146,146,124,16,16,6,8,8,8, - 1,0,4,4,4,4,4,132,140,116,6,10,10,8,1,0, - 4,4,4,4,4,4,4,132,140,116,7,9,9,8,1,255, - 8,8,8,8,8,136,152,104,6,6,10,10,8,1,254,184, - 196,132,128,128,128,128,128,128,128,6,9,9,8,1,255,184, - 196,132,128,128,128,128,128,96,6,8,8,8,1,0,120,132, - 132,128,128,128,128,128,6,8,8,8,1,0,120,132,132,4, - 4,4,4,4,6,8,8,8,1,0,248,132,132,248,136,132, - 132,132,6,8,8,8,1,0,132,132,132,136,248,132,132,248, - 6,10,10,8,1,254,120,132,128,96,24,4,132,248,128,96, - 5,12,12,8,1,255,24,32,32,32,32,32,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,32,32,32,248, - 32,32,32,192,5,9,9,8,1,255,192,32,32,32,32,32, - 32,32,24,6,12,12,8,1,255,12,16,16,16,16,16,16, - 16,16,112,156,96,5,10,10,8,1,0,192,32,32,32,32, - 32,32,248,32,32,6,11,11,8,1,255,32,32,32,248,32, - 32,32,32,32,32,28,7,8,8,8,1,0,68,68,68,254, - 68,68,76,52,6,8,8,8,1,0,132,72,132,132,132,132, - 72,48,6,8,8,8,1,0,152,132,132,132,132,136,144,96, - 6,8,8,8,1,0,48,48,72,72,72,132,132,132,7,8, - 8,8,1,0,108,146,146,146,146,146,146,130,6,10,10,8, - 1,254,120,128,128,176,200,132,132,132,132,132,7,8,8,8, - 1,0,130,130,68,40,16,16,16,16,7,10,10,8,1,254, - 248,16,16,32,32,64,64,248,8,6,7,9,9,8,1,255, - 252,4,8,16,32,76,146,252,32,6,10,10,8,1,254,124, - 8,16,32,56,4,4,4,132,120,6,10,10,8,1,254,124, - 8,16,32,56,4,4,100,148,120,6,10,10,8,1,0,120, - 132,132,4,8,16,16,16,16,16,6,10,10,8,1,0,120, - 132,132,128,64,32,32,32,32,32,6,10,10,8,1,0,16, - 16,16,16,16,8,4,132,132,120,6,10,10,8,1,254,120, - 132,128,128,128,128,128,128,132,120,6,8,8,8,1,0,120, - 132,132,180,180,132,132,120,6,8,8,8,1,0,248,132,132, - 248,132,132,132,248,6,8,8,8,1,0,120,132,132,116,132, - 132,132,120,7,8,8,8,1,0,118,136,128,128,152,136,136, - 120,5,8,8,8,2,0,136,136,136,248,136,136,136,136,6, - 13,13,8,1,254,8,8,0,24,8,8,8,8,8,8,124, - 144,96,6,11,11,8,1,254,132,68,36,20,12,20,36,68, - 4,4,4,6,8,8,8,1,0,128,128,128,128,128,128,128, - 252,7,11,11,8,1,254,6,104,152,136,136,136,136,152,104, - 8,8,6,10,10,8,1,0,120,132,132,4,8,16,16,124, - 16,16,6,10,10,8,1,0,120,132,132,128,64,32,32,248, - 32,32,7,11,11,8,1,0,32,32,32,126,162,164,164,168, - 168,176,126,7,13,13,8,1,254,32,32,32,126,162,164,168, - 172,162,162,98,18,12,7,12,12,8,1,255,32,32,32,126, - 162,164,168,176,180,170,124,8,8,10,10,8,0,0,64,64, - 70,248,72,68,66,65,65,62,7,13,13,8,1,254,6,72, - 72,72,248,72,72,72,72,72,56,8,48,8,11,11,8,0, - 255,64,64,70,249,72,72,72,74,77,62,4,7,12,12,8, - 1,254,96,144,128,220,162,162,162,162,162,162,4,24,7,11, - 11,8,1,0,192,64,64,64,78,80,80,76,66,66,124,7, - 11,11,8,0,0,192,64,64,64,64,126,68,72,80,96,126, - 7,11,11,8,1,0,130,146,146,146,108,0,130,146,146,146, - 108,6,10,10,8,1,0,252,132,132,132,0,0,252,132,132, - 132,5,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 8,7,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 6,5,6,6,8,2,4,128,128,176,200,136,136,5,7,7, - 8,2,4,112,136,128,176,200,136,136,4,7,7,8,2,4, - 16,0,16,16,16,144,96,5,5,5,8,2,5,176,200,128, - 128,128,5,5,5,8,1,5,8,8,8,152,104,7,6,6, - 8,1,4,8,8,8,152,104,6,5,6,6,8,1,4,136, - 144,240,136,136,240,5,4,4,8,1,6,136,168,168,80,5, - 5,5,8,1,5,136,136,120,8,112,3,3,3,8,2,7, - 32,64,128,6,3,3,8,1,7,36,72,144,2,4,4,8, - 3,6,64,128,128,192,2,4,4,8,3,6,192,64,64,128, - 2,4,4,8,3,6,192,128,128,64,4,6,6,8,2,5, - 192,32,16,16,32,192,4,6,6,8,2,5,48,64,128,128, - 64,48,6,7,7,8,1,4,120,132,4,4,56,32,32,6, - 7,7,8,1,4,120,132,128,128,112,16,16,4,7,7,8, - 2,4,16,32,64,128,64,32,16,4,7,7,8,2,4,128, - 64,32,16,32,64,128,7,4,4,8,1,6,16,40,68,130, - 7,4,4,8,1,6,130,68,40,16,4,2,2,8,2,8, - 96,144,4,2,2,8,2,8,144,96,1,3,3,8,4,7, - 128,128,128,4,1,1,8,2,9,240,4,2,2,8,2,8, - 48,192,4,2,2,8,2,8,192,48,1,4,4,8,4,0, - 128,128,128,128,4,1,1,8,2,0,240,4,2,2,8,2, - 255,192,48,4,2,2,8,2,255,48,192,3,6,6,8,2, - 1,224,64,0,0,64,224,3,2,2,8,2,4,224,64,4, - 6,6,8,2,2,192,32,16,16,32,192,4,6,6,8,2, - 2,48,64,128,128,64,48,5,5,5,8,1,2,32,32,32, - 32,248,5,5,5,8,1,2,248,32,32,32,32,5,5,5, - 8,1,2,32,32,248,32,32,5,1,1,8,1,4,248,6, - 3,3,8,1,9,132,132,120,2,2,2,8,3,10,192,192, - 4,3,3,8,2,9,96,144,96,3,2,2,8,4,254,128, - 96,6,2,2,8,1,10,100,152,7,2,2,8,1,10,102, - 136,7,4,4,8,0,3,32,96,162,28,6,5,5,8,1, - 5,132,72,48,72,132,5,6,6,8,1,4,136,80,32,80, - 80,32,3,6,6,8,2,6,192,64,64,64,64,224,5,5, - 5,8,1,5,120,128,112,8,240,5,5,5,8,1,5,136, - 80,32,80,136,5,5,5,8,1,7,120,128,128,112,16,5, - 11,11,8,1,0,248,8,8,8,8,8,8,8,8,8,8, - 5,11,11,8,1,0,8,8,248,8,8,8,8,8,8,8, - 8,5,11,11,8,1,0,8,8,8,8,8,248,8,8,8, - 8,8,5,11,11,8,1,0,8,8,8,8,8,8,8,8, - 248,8,8,5,11,11,8,1,0,8,8,8,8,8,8,8, - 8,8,8,248,5,6,6,8,1,0,128,128,128,128,128,248, - 4,7,7,8,1,0,128,128,128,240,128,128,128,5,3,3, - 8,1,0,136,80,32,6,3,3,8,1,9,252,0,252,6, - 4,4,8,1,8,204,68,68,136,5,3,3,8,1,255,136, - 80,32,5,3,3,8,1,255,32,80,136,3,5,5,8,3, - 255,32,64,128,64,32,3,5,5,8,3,255,128,64,32,64, - 128,4,3,3,8,2,255,96,144,96,3,3,3,8,2,9, - 128,64,32,6,3,3,8,1,9,144,72,36,6,3,3,8, - 1,9,36,72,144,6,2,2,8,1,254,100,152,2,7,7, - 8,3,4,192,192,0,0,0,192,192,3,4,4,8,2,7, - 224,128,128,128,3,4,4,8,2,7,224,32,32,32,3,4, - 4,8,2,0,128,128,128,224,3,4,4,8,2,0,32,32, - 32,224,6,3,3,8,1,254,132,132,252,6,3,3,8,1, - 254,128,128,252,6,5,5,8,1,3,32,64,252,64,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w=15 h=16 x= 7 y=12 dx=16 dy= 0 ascent=14 len=16 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[3421] U8G_FONT_SECTION("u8g_font_unifont_67_75") = { - 0,16,16,0,254,3,2,188,4,152,16,255,0,14,254,12, - 0,7,5,5,8,1,2,32,64,254,64,32,5,14,14,8, - 2,254,32,112,168,32,32,32,32,32,32,32,32,32,32,32, - 7,5,5,8,0,2,8,4,254,4,8,5,14,14,8,2, - 0,32,32,32,32,32,32,32,32,32,32,32,168,112,32,8, - 5,5,8,0,2,36,66,255,66,36,5,12,12,8,2,0, - 32,112,168,32,32,32,32,32,32,168,112,32,6,6,6,8, - 1,3,240,192,160,144,8,4,6,6,6,8,1,3,60,12, - 20,36,64,128,6,6,6,8,1,3,128,64,36,20,12,60, - 6,6,6,8,1,2,4,8,144,160,192,240,7,9,9,8, - 1,0,8,8,40,72,254,72,40,8,8,7,9,9,8,0, - 0,32,32,40,36,254,36,40,32,32,7,5,5,8,1,2, - 32,76,242,64,32,7,5,5,8,0,2,8,100,158,4,8, - 8,5,5,8,0,3,36,72,255,72,36,5,14,14,8,2, - 254,32,112,168,32,112,168,32,32,32,32,32,32,32,32,8, - 5,5,8,0,2,36,18,255,18,36,5,15,15,8,2,255, - 32,32,32,32,32,32,32,32,32,168,112,32,168,112,32,7, - 5,5,8,1,2,34,68,248,68,34,7,5,5,8,0,2, - 136,68,62,68,136,6,5,5,8,1,2,36,68,252,68,36, - 5,12,12,8,2,0,32,112,168,32,32,32,32,32,32,32, - 32,248,6,5,5,8,1,2,144,136,252,136,144,5,12,12, - 8,2,0,248,32,32,32,32,32,32,32,32,168,112,32,5, - 12,12,8,2,0,32,112,168,32,32,32,32,32,168,112,32, - 248,7,6,6,8,1,2,4,34,66,252,64,32,7,6,6, - 8,1,2,64,136,132,126,4,8,7,6,6,8,1,2,4, - 42,74,252,72,40,7,6,6,8,1,2,64,168,164,126,36, - 40,8,5,5,8,0,2,36,90,231,66,36,8,9,9,8, - 0,0,8,8,44,74,255,74,44,8,8,6,12,12,8,1, - 0,128,128,128,144,176,208,144,16,16,84,56,16,5,9,9, - 8,1,254,32,64,240,72,40,8,8,8,8,5,9,9,8, - 2,254,32,16,120,144,160,128,128,128,128,5,12,12,8,1, - 2,8,8,8,8,8,8,8,40,72,240,64,32,5,12,12, - 8,2,2,128,128,128,128,128,128,128,160,144,120,16,32,8, - 5,5,8,0,0,252,4,21,14,4,5,12,12,8,1,2, - 8,8,8,8,8,8,8,40,72,248,64,32,8,5,5,8, - 0,1,30,33,169,113,32,8,5,5,8,0,1,120,132,149, - 142,4,6,8,8,8,1,3,252,0,240,192,160,144,8,4, - 6,11,11,8,1,0,160,192,252,192,160,0,20,12,252,12, - 20,6,6,6,8,1,1,92,152,148,132,132,120,6,6,6, - 8,1,1,232,100,164,132,132,120,7,3,3,8,1,4,32, - 64,254,7,3,3,8,1,2,254,64,32,3,14,14,8,4, - 254,128,192,160,128,128,128,128,128,128,128,128,128,128,128,3, - 14,14,8,2,254,32,96,160,32,32,32,32,32,32,32,32, - 32,32,32,7,3,3,8,0,4,8,4,254,7,3,3,8, - 0,2,254,4,8,3,14,14,8,4,0,128,128,128,128,128, - 128,128,128,128,128,128,160,192,128,3,14,14,8,2,0,32, - 32,32,32,32,32,32,32,32,32,32,160,96,32,6,11,11, - 8,1,0,16,8,252,8,16,0,32,64,252,64,32,8,12, - 12,8,0,0,36,116,172,36,36,36,36,36,36,53,46,36, - 6,11,11,8,1,0,32,64,252,64,32,0,16,8,252,8, - 16,6,11,11,8,1,0,32,64,252,64,32,0,32,64,252, - 64,32,8,12,12,8,0,0,36,126,165,36,36,36,36,36, - 36,36,36,36,6,11,11,8,1,0,16,8,252,8,16,0, - 16,8,252,8,16,8,12,12,8,0,0,36,36,36,36,36, - 36,36,36,36,165,126,36,6,7,7,8,1,1,32,64,252, - 0,252,8,16,6,7,7,8,1,1,16,8,252,0,252,64, - 32,7,9,9,8,0,0,8,8,40,126,136,126,40,8,8, - 8,9,9,8,0,0,8,8,44,126,137,126,44,8,8,7, - 9,9,8,1,0,32,32,40,252,34,252,40,32,32,6,5, - 5,8,1,2,32,124,128,124,32,5,12,12,8,2,0,32, - 80,216,80,80,80,80,80,80,80,80,80,6,5,5,8,1, - 2,16,248,4,248,16,5,12,12,8,2,0,80,80,80,80, - 80,80,80,80,80,216,80,32,8,5,5,8,0,2,36,126, - 129,126,36,5,12,12,8,2,0,32,80,216,80,80,80,80, - 80,80,216,80,32,6,6,6,8,1,3,240,160,208,168,20, - 8,6,6,6,8,1,3,60,20,44,84,160,64,6,6,6, - 8,1,3,8,20,168,208,160,240,6,6,6,8,1,3,64, - 160,84,44,20,60,7,7,7,8,0,1,16,62,64,254,64, - 62,16,7,7,7,8,1,1,16,248,4,254,4,248,16,8, - 5,5,8,0,2,32,66,245,72,32,8,5,5,8,0,2, - 4,66,175,18,4,5,14,14,8,2,254,32,112,168,32,32, - 32,248,32,248,32,32,32,32,32,5,14,14,8,2,0,32, - 32,32,32,32,248,32,248,32,32,32,168,112,32,7,5,5, - 8,1,2,32,64,238,64,32,5,14,14,8,2,254,32,112, - 168,32,32,0,32,32,32,32,0,32,32,32,8,5,5,8, - 0,2,4,2,239,2,4,5,14,14,8,2,0,32,32,32, - 0,32,32,32,32,0,32,32,168,112,32,7,5,5,8,1, - 2,160,192,254,192,160,7,5,5,8,0,2,10,6,254,6, - 10,8,7,7,8,0,1,16,48,95,129,95,48,16,7,12, - 12,8,1,0,16,40,68,238,40,40,40,40,40,40,40,56, - 8,7,7,8,0,2,8,12,250,129,250,12,8,7,12,12, - 8,1,0,56,40,40,40,40,40,40,40,238,68,40,16,7, - 12,12,8,1,0,16,40,68,238,40,40,40,56,0,56,40, - 56,7,12,12,8,1,0,16,40,68,198,68,68,68,68,68, - 198,130,254,7,12,12,8,1,0,16,40,124,198,68,68,68, - 68,68,198,130,254,7,12,12,8,1,0,16,56,84,214,84, - 84,84,84,84,214,146,254,7,13,13,8,1,0,16,40,84, - 238,68,198,68,68,68,68,68,68,124,7,13,13,8,1,0, - 16,40,84,238,68,198,68,68,68,68,198,130,254,7,7,7, - 8,1,1,16,216,244,130,244,216,16,7,9,9,8,1,0, - 254,128,184,176,168,132,130,128,128,7,9,9,8,1,0,2, - 2,130,66,42,26,58,2,254,5,12,12,8,2,0,32,80, - 216,80,80,80,80,80,80,216,80,32,13,5,10,16,1,2, - 14,32,17,16,255,248,17,16,14,32,8,12,12,8,0,0, - 36,46,53,36,36,36,36,36,36,172,116,36,8,15,15,8, - 0,254,4,2,255,2,4,4,2,255,2,4,4,2,255,2, - 4,8,5,5,8,0,2,36,68,255,68,36,8,5,5,8, - 0,2,36,34,255,34,36,11,5,10,16,2,2,36,128,68, - 64,255,224,68,64,36,128,15,5,10,16,1,2,34,128,66, - 128,255,254,66,128,34,128,15,5,10,16,0,2,2,136,2, - 132,255,254,2,132,2,136,13,5,10,16,1,2,37,32,69, - 16,255,248,69,16,37,32,8,5,5,8,0,2,32,96,191, - 96,32,8,5,5,8,0,2,4,6,253,6,4,12,5,10, - 16,2,2,32,64,96,96,191,208,96,96,32,64,8,8,8, - 8,0,6,255,255,255,255,255,255,255,255,8,2,2,8,0, - 254,255,255,8,4,4,8,0,254,255,255,255,255,8,6,6, - 8,0,254,255,255,255,255,255,255,8,8,8,8,0,254,255, - 255,255,255,255,255,255,255,8,10,10,8,0,254,255,255,255, - 255,255,255,255,255,255,255,8,12,12,8,0,254,255,255,255, - 255,255,255,255,255,255,255,255,255,8,14,14,8,0,254,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,8,16,16, - 8,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,7,16,16,8,0,254,254,254,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,6,16,16,8,0,254,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 16,16,8,0,254,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,4,16,16,8,0,254,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,3,16,16,8,0, - 254,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,2,16,16,8,0,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,1,16,16,8,0,254,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,4,16,16, - 8,4,254,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,7,16,16,8,0,254,136,34,136,34,136,34,136, - 34,136,34,136,34,136,34,136,34,8,16,16,8,0,254,170, - 85,170,85,170,85,170,85,170,85,170,85,170,85,170,85,8, - 16,16,8,0,254,238,187,238,187,238,187,238,187,238,187,238, - 187,238,187,238,187,8,2,2,8,0,12,255,255,1,16,16, - 8,7,254,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,8,8,8,0,254,240,240,240,240,240,240,240, - 240,4,8,8,8,4,254,240,240,240,240,240,240,240,240,4, - 8,8,8,0,6,240,240,240,240,240,240,240,240,8,16,16, - 8,0,254,240,240,240,240,240,240,240,240,255,255,255,255,255, - 255,255,255,8,16,16,8,0,254,240,240,240,240,240,240,240, - 240,15,15,15,15,15,15,15,15,8,16,16,8,0,254,255, - 255,255,255,255,255,255,255,240,240,240,240,240,240,240,240,8, - 16,16,8,0,254,255,255,255,255,255,255,255,255,15,15,15, - 15,15,15,15,15,4,8,8,8,4,6,240,240,240,240,240, - 240,240,240,8,16,16,8,0,254,15,15,15,15,15,15,15, - 15,240,240,240,240,240,240,240,240,8,16,16,8,0,254,15, - 15,15,15,15,15,15,15,255,255,255,255,255,255,255,255,7, - 7,7,8,1,1,254,254,254,254,254,254,254,7,7,7,8, - 1,1,254,130,130,130,130,130,254,7,7,7,8,1,1,124, - 130,130,130,130,130,124,7,7,7,8,1,1,254,130,186,186, - 186,130,254,7,7,7,8,1,1,254,130,254,130,254,130,254, - 7,7,7,8,1,1,254,170,170,170,170,170,254,7,7,7, - 8,1,1,254,170,254,170,254,170,254,7,7,7,8,1,1, - 254,166,146,202,166,146,254,7,7,7,8,1,1,254,202,146, - 166,202,146,254,7,7,7,8,1,1,254,170,214,170,214,170, - 254,4,4,4,8,2,4,240,240,240,240,4,4,4,8,2, - 4,240,144,144,240,7,4,4,8,1,4,254,254,254,254,7, - 4,4,8,1,4,254,130,130,254,4,7,7,8,2,2,240, - 240,240,240,240,240,240,4,7,7,8,2,2,240,144,144,144, - 144,144,240,8,3,3,8,0,4,63,126,252,8,3,3,8, - 0,4,63,66,252,6,6,6,8,1,3,48,48,120,120,252, - 252,6,6,6,8,1,3,48,48,72,72,132,252,6,3,3, - 8,1,3,48,120,252,6,3,3,8,1,3,48,72,252,6, - 6,6,8,1,3,192,240,252,252,240,192,6,6,6,8,1, - 3,192,176,140,140,176,192,4,4,4,8,2,4,192,240,240, - 192,4,4,4,8,2,4,192,176,176,192,6,5,5,8,1, - 3,192,240,252,240,192,6,5,5,8,1,3,192,176,140,176, - 192,6,6,6,8,1,3,252,252,120,120,48,48,6,6,6, - 8,1,3,252,132,72,72,48,48,6,3,3,8,1,3,252, - 120,48,6,3,3,8,1,3,252,72,48,6,6,6,8,1, - 3,12,60,252,252,60,12,6,6,6,8,1,3,12,52,196, - 196,52,12,4,4,4,8,2,4,48,240,240,48,4,4,4, - 8,2,4,48,208,208,48,6,5,5,8,1,3,12,60,252, - 60,12,6,5,5,8,1,3,12,52,196,52,12,7,7,7, - 8,1,2,16,56,124,254,124,56,16,7,7,7,8,1,2, - 16,40,68,130,68,40,16,7,7,7,8,1,2,16,40,84, - 186,84,40,16,7,7,7,8,1,2,56,68,178,186,154,68, - 56,6,10,10,8,1,1,48,48,72,72,132,132,72,72,48, - 48,7,7,7,8,1,2,56,68,130,130,130,68,56,7,7, - 7,8,1,2,40,0,130,0,130,0,40,7,7,7,8,1, - 2,56,108,170,170,170,108,56,7,7,7,8,1,2,56,68, - 146,170,146,68,56,7,7,7,8,1,2,56,124,254,254,254, - 124,56,7,7,7,8,1,2,56,100,226,226,226,100,56,7, - 7,7,8,1,2,56,76,142,142,142,76,56,7,7,7,8, - 1,2,56,68,130,130,254,124,56,7,7,7,8,1,2,56, - 124,254,130,130,68,56,7,7,7,8,1,2,56,92,158,158, - 130,68,56,7,7,7,8,1,2,56,76,142,142,254,124,56, - 4,7,7,8,1,2,48,112,240,240,240,112,48,4,7,7, - 8,4,2,192,224,240,240,240,224,192,8,16,16,8,0,254, - 255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255, - 8,16,16,8,0,254,255,255,255,255,255,231,219,189,189,219, - 231,255,255,255,255,255,8,8,8,8,0,6,255,255,255,255, - 255,231,219,189,8,8,8,8,0,254,189,219,231,255,255,255, - 255,255,4,4,4,8,1,5,48,64,128,128,4,4,4,8, - 4,5,192,32,16,16,4,4,4,8,4,2,16,16,32,192, - 4,4,4,8,1,2,128,128,64,48,7,4,4,8,1,5, - 56,68,130,130,7,4,4,8,1,2,130,130,68,56,6,6, - 6,8,1,255,4,12,28,60,124,252,6,6,6,8,1,255, - 128,192,224,240,248,252,6,6,6,8,1,6,252,248,240,224, - 192,128,6,6,6,8,1,6,252,124,60,28,12,4,5,5, - 5,8,1,2,112,136,136,136,112,6,6,6,8,1,3,252, - 228,228,228,228,252,6,6,6,8,1,3,252,156,156,156,156, - 252,6,6,6,8,1,3,252,244,228,196,132,252,6,6,6, - 8,1,3,252,132,140,156,188,252,7,6,6,8,1,3,254, - 146,146,146,146,254,7,7,7,8,1,2,16,40,40,68,84, - 130,254,6,6,6,8,1,2,48,48,104,104,228,252,6,7, - 7,8,1,2,48,48,88,88,156,156,252,8,8,8,8,0, - 2,60,66,129,129,129,129,66,60,6,6,6,8,1,0,252, - 164,228,132,132,252,6,6,6,8,1,0,252,132,132,228,164, - 252,6,6,6,8,1,0,252,132,132,156,148,252,6,6,6, - 8,1,0,252,148,156,132,132,252,8,8,8,8,0,0,60, - 82,145,241,129,129,66,60,8,8,8,8,0,0,60,66,129, - 129,241,145,82,60,8,8,8,8,0,0,60,66,129,129,143, - 137,74,60,8,8,8,8,0,0,60,74,137,143,129,129,66, - 60,6,6,6,8,1,6,252,136,144,160,192,128,6,6,6, - 8,1,6,252,68,36,20,12,4,6,6,6,8,1,255,128, - 192,160,144,136,252,6,6,6,8,1,255,252,132,132,132,132, - 252,6,6,6,8,1,255,252,252,252,252,252,252,4,4,4, - 8,2,0,240,144,144,240,4,4,4,8,2,0,240,240,240, - 240,6,6,6,8,1,255,4,12,20,36,68,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 14 - Calculated Max Values w=16 h=16 x= 5 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-1 - X Font ascent =14 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[7568] U8G_FONT_SECTION("u8g_font_unifont_72_73") = { - 0,16,16,0,254,10,5,238,9,116,0,255,255,14,254,14, - 255,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,14,5,10,16,1,4,115,36,132, - 164,100,188,20,164,227,36,13,5,10,16,1,4,119,72,130, - 72,98,48,18,72,226,72,13,5,10,16,1,4,247,72,130, - 72,242,48,130,72,242,72,14,5,10,16,1,4,243,124,132, - 144,244,144,132,144,243,16,14,5,10,16,1,4,244,152,132, - 164,246,164,133,172,244,156,13,5,10,16,1,4,99,72,148, - 80,244,96,148,80,147,72,14,5,10,16,1,4,231,160,148, - 32,231,160,148,32,231,188,10,5,10,16,3,4,241,192,138, - 0,241,128,136,64,243,128,11,5,10,16,2,4,139,224,136, - 128,248,128,136,128,136,128,11,5,10,16,2,4,131,224,130, - 0,131,224,130,0,250,0,11,5,10,16,2,4,139,224,136, - 128,136,128,80,128,32,128,11,5,10,16,2,4,251,224,130, - 0,251,224,130,0,130,0,11,5,10,16,2,4,123,192,130, - 32,131,192,130,64,122,32,11,5,10,16,2,4,121,192,130, - 32,114,32,10,32,241,192,11,5,10,16,2,4,123,224,128, - 128,112,128,8,128,243,224,12,5,10,16,2,4,228,112,148, - 64,148,112,148,64,231,112,13,5,10,16,1,4,227,16,148, - 48,148,16,148,16,227,56,13,5,10,16,1,4,227,48,148, - 8,148,16,148,32,227,56,13,5,10,16,1,4,227,48,148, - 8,148,48,148,8,227,48,13,5,10,16,1,4,227,8,148, - 24,148,40,148,56,227,8,14,5,10,16,1,4,147,36,212, - 168,212,176,183,168,148,164,14,5,10,16,1,4,104,164,133, - 52,98,44,18,36,226,36,13,5,10,16,1,4,247,112,130, - 72,242,112,130,72,242,112,13,5,10,16,1,4,102,72,137, - 104,143,88,137,72,105,72,11,5,10,16,2,4,250,32,131, - 96,250,160,130,32,250,32,14,5,10,16,1,4,116,184,132, - 164,100,184,20,164,227,56,14,5,10,16,1,4,243,156,132, - 32,243,32,128,160,247,28,9,5,10,16,3,4,243,128,132, - 0,243,0,128,128,135,0,9,5,10,16,3,4,115,128,132, - 0,179,0,144,128,119,0,9,5,10,16,3,4,227,128,148, - 0,227,0,160,128,151,0,9,5,10,16,3,4,147,128,148, - 0,147,0,144,128,103,0,9,5,10,16,1,4,119,0,132, - 128,103,0,20,0,228,0,14,5,10,16,1,4,231,160,148, - 32,151,160,148,32,231,188,6,10,10,8,1,0,40,48,32, - 96,184,36,36,36,36,56,6,2,2,8,1,0,132,252,6, - 9,9,8,1,1,144,208,176,144,0,32,32,32,60,7,7, - 7,8,1,2,2,20,42,84,168,80,128,6,11,11,8,1, - 0,120,132,132,128,64,32,16,16,0,16,16,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,236,195,220,223,188,195,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,156,251,108,195,156,223,108,195,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,251,108,195,140,223,236,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,12,251,108,195,12,223,108, - 195,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,28,251,108,195,28, - 223,108,195,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,140,251,124, - 195,124,223,124,195,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,28, - 251,108,195,108,223,108,195,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,251,124,195,28,223,124,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,124,195,28,223,124,195,124,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,108,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,220,251,156,227,220,251,220,199,140, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,236,227,12,251,124, - 199,12,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,236,227,140, - 251,236,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,108,251,108, - 227,12,251,236,199,236,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,12, - 251,124,227,12,251,236,199,12,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,156,251,124,227,28,251,108,199,156,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,236,227,220,251,188,199,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,156,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,156,251,108,227,140,251,236,199,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,108,227,12,251,108, - 199,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,108,227,28, - 251,108,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,140,251,124, - 227,124,251,124,199,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,28, - 251,108,227,108,251,108,199,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,12,251,124,227,28,251,124,199,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,124,227,28,251,124,199,124,255,252,5,10, - 10,8,2,0,56,40,40,40,32,32,160,160,160,224,5,10, - 10,8,2,0,8,8,8,8,8,248,136,136,136,136,5,10, - 10,8,2,0,136,136,136,136,136,248,32,32,32,32,5,10, - 10,8,2,0,32,32,32,32,32,248,136,136,136,136,5,10, - 10,8,2,0,248,168,168,168,32,32,168,168,168,248,5,5, - 5,8,2,5,136,216,168,216,136,6,8,8,8,1,1,28, - 220,220,192,192,220,220,28,8,10,10,8,0,0,3,3,3, - 27,24,24,216,192,192,192,7,10,10,8,1,0,14,174,174, - 160,160,160,160,160,160,160,7,9,9,8,1,0,218,218,218, - 218,218,218,218,218,218,8,10,10,8,0,0,160,160,80,40, - 40,20,20,10,5,5,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,219,28,219,108, - 195,28,251,108,251,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,219,140, - 219,124,195,124,251,124,251,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 219,28,219,108,195,108,251,108,251,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,219,12,219,124,195,28,251,124,251,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,219,12,219,124,195,28,251,124,251,124,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,108,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,220,223,156,195,220,251,220, - 195,140,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,236,195,12, - 251,124,195,12,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,236, - 195,140,251,236,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,108, - 223,108,195,12,251,236,195,236,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,223,124,195,12,251,236,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,156,223,124,195,28,251,108,195,156,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,236,195,220,251,188,195,188,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,156,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,156,223,108,195,140,251,236, - 195,156,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,108,195,12, - 251,108,195,108,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,108, - 195,28,251,108,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,140, - 223,124,195,124,251,124,195,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,28,223,108,195,108,251,108,195,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,223,124,195,28,251,124,195,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,124,195,28,251,124,195,124,255,252, - 15,15,30,16,0,255,7,192,24,48,32,8,65,4,67,4, - 133,2,129,2,129,2,129,2,129,2,65,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,128,66,128,130,129,2,130,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,132,68,68,132,66,128,66,129,130,128,66, - 132,66,68,68,67,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,132,65,132,130,130,132,130, - 136,130,143,194,128,130,64,132,64,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,68,4, - 132,2,132,2,135,130,128,66,128,66,68,68,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,132,66,4,132,2,132,2,135,130,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,128,130,128,130, - 129,2,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 131,130,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,67,132,68,68, - 132,66,132,66,131,194,128,66,128,66,64,132,67,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,146,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,140,194,149,66,132,66,132,66, - 132,66,95,244,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,100,140,146,148,18, - 132,34,132,66,132,130,95,244,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,100, - 140,146,148,18,132,34,132,18,132,146,95,100,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,20,140,50,148,82,132,146,132,250,132,18,95,20, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,244,140,130,148,130,132,226,132,18, - 132,146,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,116,140,130,148,130, - 132,226,132,146,132,146,95,100,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,244, - 140,18,148,18,132,34,132,34,132,66,95,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,98,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,100,140,146,148,146,132,114,132,18, - 132,18,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,76,100,146,146,130,146, - 132,146,136,146,144,146,94,100,64,4,32,8,24,48,7,192, - 14,12,24,16,1,0,32,16,65,8,67,8,133,4,129,4, - 129,4,129,4,129,4,129,4,65,8,71,200,32,16,14,12, - 24,16,1,0,32,16,71,136,72,72,136,68,128,68,129,132, - 130,4,132,4,136,4,72,8,79,200,32,16,14,12,24,16, - 1,0,32,16,71,136,72,72,136,68,128,68,131,132,128,68, - 128,68,136,68,72,72,71,136,32,16,14,12,24,16,1,0, - 32,16,64,136,65,136,130,132,132,132,136,132,136,132,143,196, - 128,132,64,136,64,136,32,16,14,12,24,16,1,0,32,16, - 79,200,72,8,136,4,136,4,143,132,128,68,128,68,128,68, - 72,72,71,136,32,16,14,12,24,16,1,0,32,16,67,136, - 68,8,136,4,136,4,143,132,136,68,136,68,136,68,72,72, - 71,136,32,16,14,12,24,16,1,0,32,16,79,200,64,72, - 128,68,128,132,128,132,128,132,129,4,129,4,65,8,65,8, - 32,16,14,12,24,16,1,0,32,16,71,136,72,72,136,68, - 136,68,135,132,136,68,136,68,136,68,72,72,71,136,32,16, - 14,12,24,16,1,0,32,16,71,136,72,72,136,68,136,68, - 135,196,128,68,128,68,128,68,64,136,71,8,32,16,16,12, - 24,16,0,0,64,2,136,49,152,73,168,133,136,133,136,133, - 136,133,136,133,136,133,136,73,190,49,64,2,16,12,24,16, - 0,0,64,2,136,17,152,49,168,81,136,17,136,17,136,17, - 136,17,136,17,136,17,190,125,64,2,16,12,24,16,0,0, - 64,2,136,121,152,133,168,133,136,5,136,25,136,33,136,65, - 136,129,136,129,190,253,64,2,16,12,24,16,0,0,64,2, - 136,121,152,133,168,133,136,5,136,57,136,5,136,5,136,133, - 136,133,190,121,64,2,16,12,24,16,0,0,64,2,136,9, - 152,25,168,41,136,73,136,137,136,137,136,253,136,9,136,9, - 190,9,64,2,16,12,24,16,0,0,64,2,136,253,152,129, - 168,129,136,129,136,249,136,5,136,5,136,5,136,133,190,121, - 64,2,16,12,24,16,0,0,64,2,136,57,152,65,168,129, - 136,129,136,249,136,133,136,133,136,133,136,133,190,121,64,2, - 16,12,24,16,0,0,64,2,137,249,152,9,168,9,136,17, - 136,17,136,17,136,33,136,33,136,33,190,33,64,2,16,12, - 24,16,0,0,64,2,136,121,152,133,168,133,136,133,136,121, - 136,133,136,133,136,133,136,133,190,121,64,2,16,12,24,16, - 0,0,64,2,136,121,152,133,168,133,136,133,136,125,136,5, - 136,5,136,5,136,9,190,113,64,2,16,12,24,16,0,0, - 64,2,156,49,162,73,162,133,130,133,132,133,136,133,144,133, - 160,133,160,73,190,49,64,2,7,10,10,16,5,0,32,96, - 160,32,32,32,32,32,32,250,8,10,10,16,4,0,120,132, - 132,4,24,32,64,128,128,253,8,10,10,16,4,0,120,132, - 132,4,56,4,4,132,132,121,8,10,10,16,4,0,8,24, - 40,72,136,136,252,8,8,9,8,10,10,16,4,0,252,128, - 128,128,248,4,4,4,132,121,8,10,10,16,4,0,56,64, - 128,128,248,132,132,132,132,121,8,10,10,16,4,0,252,4, - 4,8,8,8,16,16,16,17,8,10,10,16,4,0,120,132, - 132,132,120,132,132,132,132,121,8,10,10,16,4,0,120,132, - 132,132,124,4,4,4,8,113,14,10,20,16,1,0,32,192, - 97,32,162,16,34,16,34,16,34,16,34,16,34,16,33,32, - 248,196,14,10,20,16,1,0,32,64,96,192,161,64,32,64, - 32,64,32,64,32,64,32,64,32,64,249,244,14,10,20,16, - 1,0,33,224,98,16,162,16,32,16,32,96,32,128,33,0, - 34,0,34,0,251,244,14,10,20,16,1,0,33,224,98,16, - 162,16,32,16,32,224,32,16,32,16,34,16,34,16,249,228, - 14,10,20,16,1,0,32,32,96,96,160,160,33,32,34,32, - 34,32,35,240,32,32,32,32,248,36,14,10,20,16,1,0, - 35,240,98,0,162,0,34,0,35,224,32,16,32,16,32,16, - 34,16,249,228,14,10,20,16,1,0,32,224,97,0,162,0, - 34,0,35,224,34,16,34,16,34,16,34,16,249,228,14,10, - 20,16,1,0,35,240,96,16,160,16,32,32,32,32,32,32, - 32,64,32,64,32,64,248,68,14,10,20,16,1,0,33,224, - 98,16,162,16,34,16,33,224,34,16,34,16,34,16,34,16, - 249,228,14,10,20,16,1,0,33,224,98,16,162,16,34,16, - 33,240,32,16,32,16,32,16,32,32,249,196,15,10,20,16, - 1,0,120,96,132,144,133,8,5,8,25,8,33,8,65,8, - 129,8,128,144,252,98,14,12,24,16,1,0,32,16,64,8, - 71,136,136,68,128,68,135,196,136,68,136,68,136,196,71,72, - 64,8,32,16,14,12,24,16,1,0,40,16,72,8,72,8, - 139,132,140,68,136,68,136,68,136,68,136,68,76,72,75,136, - 32,16,14,12,24,16,1,0,32,16,64,8,71,136,136,68, - 136,4,136,4,136,4,136,4,136,68,71,136,64,8,32,16, - 14,12,24,16,1,255,32,80,64,72,64,72,135,68,136,196, - 136,68,136,68,136,68,136,68,72,200,71,72,32,16,14,12, - 24,16,1,0,32,16,64,8,71,136,136,68,136,68,143,196, - 136,4,136,4,136,68,71,136,64,8,32,16,14,12,24,16, - 1,255,33,144,66,8,66,8,130,4,143,132,130,4,130,4, - 130,4,130,4,66,8,66,8,32,16,14,12,24,16,1,0, - 32,16,64,72,71,72,136,132,136,132,136,132,135,4,132,4, - 135,132,72,72,72,72,39,144,14,12,24,16,1,255,40,16, - 72,8,72,8,139,132,140,68,136,68,136,68,136,68,136,68, - 72,72,72,72,32,16,13,12,24,16,1,0,34,32,66,16, - 64,16,134,8,130,8,130,8,130,8,130,8,130,8,66,16, - 79,144,32,32,13,13,26,16,1,255,32,160,64,144,64,16, - 129,136,128,136,128,136,128,136,128,136,128,136,64,144,64,144, - 41,32,6,0,14,12,24,16,1,255,32,16,72,8,72,8, - 136,132,137,4,138,4,140,4,138,4,137,4,72,136,72,72, - 32,16,13,12,24,16,1,0,32,32,70,16,66,16,130,8, - 130,8,130,8,130,8,130,8,130,8,66,16,79,144,32,32, - 15,12,24,16,1,0,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,137,34,73,36,64,4,32,8,14,12, - 24,16,1,255,32,16,64,8,75,136,140,68,136,68,136,68, - 136,68,136,68,136,68,72,72,64,8,32,16,14,12,24,16, - 1,0,32,16,64,8,71,136,136,68,136,68,136,68,136,68, - 136,68,136,68,71,136,64,8,32,16,14,12,24,16,1,0, - 32,16,64,8,75,136,140,68,136,68,136,68,136,68,136,68, - 140,68,75,136,72,8,40,16,14,12,24,16,1,255,32,16, - 64,8,71,72,136,196,136,68,136,68,136,68,136,68,136,196, - 71,72,64,72,32,80,14,12,24,16,1,0,32,16,64,8, - 75,136,140,68,136,68,136,4,136,4,136,4,136,4,72,8, - 64,8,32,16,14,12,24,16,1,0,32,16,64,8,71,136, - 136,68,136,4,134,4,129,132,128,68,136,68,71,136,64,8, - 32,16,14,12,24,16,1,255,32,16,66,8,66,8,143,132, - 130,4,130,4,130,4,130,4,130,4,66,8,65,136,32,16, - 14,12,24,16,1,0,32,16,64,8,72,72,136,68,136,68, - 136,68,136,68,136,68,136,196,71,72,64,8,32,16,14,12, - 24,16,1,255,32,16,64,8,72,72,136,68,136,68,132,132, - 132,132,132,132,131,4,67,8,64,8,32,16,15,12,24,16, - 1,0,32,8,64,4,72,36,137,34,137,34,137,34,137,34, - 137,34,137,34,70,196,64,4,32,8,14,12,24,16,1,255, - 32,16,64,8,72,72,136,68,132,132,131,4,131,4,132,132, - 136,68,72,72,64,8,32,16,14,12,24,16,1,0,32,16, - 64,8,72,72,136,68,136,68,136,68,136,68,132,196,131,68, - 64,72,64,72,39,144,14,12,24,16,1,0,32,16,64,8, - 79,200,128,68,128,132,129,4,130,4,132,4,136,4,79,200, - 64,8,32,16,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,130,130,132,66,132,66,135,194,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,132,66, - 132,66,68,68,71,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 132,2,132,2,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,4,68,132, - 132,66,132,66,132,66,132,66,132,66,68,132,71,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,68,4,132,2,132,2,135,130,132,2,132,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,68,4,132,2,132,2,135,130,132,2, - 132,2,68,4,68,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 133,194,132,66,132,66,68,196,67,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 132,66,132,66,135,194,132,66,132,66,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,65,4,129,2,129,2,129,2,129,2,129,2,65,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,228,64,132,128,130,128,130,128,130,128,130, - 132,130,68,132,67,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,130,133,2, - 134,2,133,2,132,130,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,4,68,4, - 132,2,132,2,132,2,132,2,132,2,68,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,134,194,134,194,133,66,133,66,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,134,66,134,66,133,66,133,66, - 132,194,68,196,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 132,66,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,132,68,68, - 132,66,132,66,135,130,132,2,132,2,68,4,68,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,132,66,132,66,132,66,133,66,70,196, - 67,132,32,104,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,133,2, - 132,130,68,132,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 131,130,128,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,79,228,65,4, - 129,2,129,2,129,2,129,2,129,2,65,4,65,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,132,66,132,66,132,66,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,72,36,72,36,132,66,132,66,132,66,130,130, - 130,130,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,66,133,66, - 133,66,134,194,134,194,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 130,130,130,130,129,2,130,130,130,130,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 72,36,72,36,132,66,132,66,130,130,129,2,129,2,65,4, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,129,2,130,2, - 132,2,68,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,128,66, - 131,194,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,36,8,68,4,68,4, - 133,130,134,66,132,66,132,66,132,66,70,68,69,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,132,2,132,2,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,72,64,68,64,68,131,66,132,194,132,66,132,66, - 132,66,68,196,67,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,132,66, - 135,194,132,2,132,66,67,132,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,196,65,4, - 129,2,129,2,135,194,129,2,129,2,65,4,65,4,33,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,68,67,68,132,130,132,130,131,2,130,2,131,130,68,68, - 68,68,35,136,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,36,8,68,4,68,4,133,130,134,66,132,66,132,66, - 132,66,68,68,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,33,8,65,4,64,4,131,2,129,2, - 129,2,129,2,129,2,65,4,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,72,64,68,64,4, - 128,194,128,66,128,66,128,66,128,66,64,68,68,132,35,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,4,68,4,132,130,133,2,134,2,134,2,133,2,68,132, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,4,65,4,129,2,129,2,129,2,129,2, - 129,2,65,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,73,36,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,66,132,66,132,66,68,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,66,132,66,132,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,69,132,134,66,132,66,132,66,132,66, - 134,66,69,132,68,4,36,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,68,132,194,132,66, - 132,66,132,66,132,66,68,196,67,68,32,72,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,2,132,2,132,2,68,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,131,130,128,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,65,4,65,4,135,194,129,2,129,2,129,2, - 129,2,65,4,64,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,68, - 132,66,130,130,130,130,130,130,129,2,65,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,72,36,137,34,137,34,137,34,137,34,137,34,70,196, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,132,66,130,130,129,2,130,130, - 132,66,68,68,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,130,194,129,66,64,68,64,68,35,136,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,71,196, - 128,66,128,130,129,2,130,2,132,2,71,196,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,132,66,132,66,132,66,132,66,132,66,66,132, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,188,243,62,234,190,251,190,251,190, - 251,190,96,12,127,252,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,238, - 251,222,251,190,251,126,96,12,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,123,156, - 243,110,235,238,251,222,251,238,251,110,96,156,127,252,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 127,252,123,236,243,206,235,174,251,110,251,6,251,238,96,236, - 127,252,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,12,243,126,235,126,251,30,251,238, - 251,110,96,156,127,252,63,248,31,240,7,192,13,13,26,16, - 1,0,15,128,63,224,127,240,119,16,230,248,214,248,246,56, - 246,216,246,216,65,48,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,118,16,231,216,215,216,247,184, - 247,184,247,120,65,112,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,119,48,230,216,214,216,247,56, - 246,216,246,216,65,48,127,240,63,224,15,128,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,110, - 251,142,251,238,251,238,96,156,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,115,156, - 237,110,253,110,251,110,247,110,239,110,97,156,127,252,63,248, - 31,240,7,192,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,144,137,161,133,160,133,160,133,145,201,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,160,69,160,133,161,5, - 145,201,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,137,160,69, - 161,133,160,69,145,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 146,137,162,133,163,197,160,133,144,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,201,161,5,161,133,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,162,5,163,133,162,69, - 145,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,201,160,69, - 160,69,160,133,144,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 145,137,162,69,161,133,162,69,145,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,137,162,69,161,197,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,146,105,166,149,162,149,162,149, - 151,105,80,10,76,50,35,196,24,24,7,224,15,15,30,16, - 0,255,7,192,31,240,63,248,126,252,125,124,251,190,251,190, - 251,190,251,190,251,190,125,124,126,252,63,248,31,240,7,192 - }; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 6, '1' Height: 3 - Calculated Max Values w= 8 h=10 x= 2 y= 4 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_75r[580] U8G_FONT_SECTION("u8g_font_unifont_75r") = { - 0,16,16,0,254,6,1,137,0,0,32,79,0,11,0,8, - 0,7,7,7,8,1,1,254,254,254,254,254,254,254,7,7, - 7,8,1,1,254,130,130,130,130,130,254,7,7,7,8,1, - 1,124,130,130,130,130,130,124,7,7,7,8,1,1,254,130, - 186,186,186,130,254,7,7,7,8,1,1,254,130,254,130,254, - 130,254,7,7,7,8,1,1,254,170,170,170,170,170,254,7, - 7,7,8,1,1,254,170,254,170,254,170,254,7,7,7,8, - 1,1,254,166,146,202,166,146,254,7,7,7,8,1,1,254, - 202,146,166,202,146,254,7,7,7,8,1,1,254,170,214,170, - 214,170,254,4,4,4,8,2,4,240,240,240,240,4,4,4, - 8,2,4,240,144,144,240,7,4,4,8,1,4,254,254,254, - 254,7,4,4,8,1,4,254,130,130,254,4,7,7,8,2, - 2,240,240,240,240,240,240,240,4,7,7,8,2,2,240,144, - 144,144,144,144,240,8,3,3,8,0,4,63,126,252,8,3, - 3,8,0,4,63,66,252,6,6,6,8,1,3,48,48,120, - 120,252,252,6,6,6,8,1,3,48,48,72,72,132,252,6, - 3,3,8,1,3,48,120,252,6,3,3,8,1,3,48,72, - 252,6,6,6,8,1,3,192,240,252,252,240,192,6,6,6, - 8,1,3,192,176,140,140,176,192,4,4,4,8,2,4,192, - 240,240,192,4,4,4,8,2,4,192,176,176,192,6,5,5, - 8,1,3,192,240,252,240,192,6,5,5,8,1,3,192,176, - 140,176,192,6,6,6,8,1,3,252,252,120,120,48,48,6, - 6,6,8,1,3,252,132,72,72,48,48,6,3,3,8,1, - 3,252,120,48,6,3,3,8,1,3,252,72,48,6,6,6, - 8,1,3,12,60,252,252,60,12,6,6,6,8,1,3,12, - 52,196,196,52,12,4,4,4,8,2,4,48,240,240,48,4, - 4,4,8,2,4,48,208,208,48,6,5,5,8,1,3,12, - 60,252,60,12,6,5,5,8,1,3,12,52,196,52,12,7, - 7,7,8,1,2,16,56,124,254,124,56,16,7,7,7,8, - 1,2,16,40,68,130,68,40,16,7,7,7,8,1,2,16, - 40,84,186,84,40,16,7,7,7,8,1,2,56,68,178,186, - 154,68,56,6,10,10,8,1,1,48,48,72,72,132,132,72, - 72,48,48,7,7,7,8,1,2,56,68,130,130,130,68,56, - 7,7,7,8,1,2,40,0,130,0,130,0,40,7,7,7, - 8,1,2,56,108,170,170,170,108,56,7,7,7,8,1,2, - 56,68,146,170,146,68,56,7,7,7,8,1,2,56,124,254, - 254,254,124,56}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 3 y= 6 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_76[2540] U8G_FONT_SECTION("u8g_font_unifont_76") = { - 0,16,16,0,254,10,2,62,4,228,32,159,0,14,254,10, - 0,7,12,12,8,1,0,16,146,68,0,56,124,124,56,0, - 68,146,16,8,4,4,8,0,6,32,118,255,126,7,8,8, - 8,1,2,56,124,254,16,16,16,16,32,16,16,32,16,0, - 254,139,200,3,192,47,241,4,36,138,80,40,18,10,80,73, - 148,4,33,71,224,8,16,16,136,120,30,16,136,8,16,7, - 224,7,11,11,8,1,0,68,68,72,72,80,82,4,96,144, - 144,96,7,6,6,8,1,3,16,16,254,56,108,68,7,7, - 7,8,1,3,16,16,238,68,84,108,68,5,9,9,8,2, - 0,8,16,32,64,128,64,40,24,56,6,8,8,8,1,0, - 252,132,136,144,160,148,140,156,8,8,8,8,0,0,60,66, - 129,153,153,129,66,60,8,6,6,8,0,2,24,36,36,102, - 165,66,8,6,6,8,0,2,66,165,102,36,36,24,5,6, - 6,8,1,2,8,16,96,144,144,96,7,9,9,8,1,0, - 12,18,18,12,16,96,144,144,96,7,6,6,8,1,1,124, - 198,0,84,198,254,7,7,7,8,1,1,124,130,186,124,146, - 130,254,7,7,7,8,1,0,254,130,130,130,130,130,254,7, - 8,8,8,1,0,8,254,138,138,202,178,130,254,7,7,7, - 8,1,0,254,130,170,146,170,130,254,5,10,10,8,2,0, - 136,136,80,80,32,32,80,80,136,136,7,12,12,8,1,2, - 10,160,8,130,56,124,254,16,16,16,16,32,12,13,26,16, - 2,0,36,128,73,0,73,0,36,128,36,128,73,0,0,0, - 127,32,255,208,191,80,128,80,128,224,127,0,11,13,26,16, - 2,0,4,0,10,0,17,0,32,128,64,64,128,32,128,32, - 128,32,128,32,128,32,128,32,128,32,255,224,11,13,26,16, - 2,0,4,0,14,0,31,0,63,128,127,192,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,13,13,26,16, - 1,255,5,0,15,128,15,128,103,48,242,120,127,240,242,120, - 98,48,4,0,4,0,4,0,8,0,16,0,13,12,24,16, - 1,0,0,8,3,144,71,208,143,208,159,208,255,176,127,184, - 31,200,15,200,7,200,3,136,0,16,7,4,4,8,1,2, - 252,62,62,28,7,4,4,8,1,2,126,248,248,112,7,4, - 4,8,1,2,252,34,50,28,4,7,7,8,2,2,16,16, - 112,208,144,144,96,7,4,4,8,1,2,126,136,152,112,4, - 7,7,8,2,0,96,144,144,208,112,16,16,8,12,12,8, - 0,0,231,165,126,129,165,165,129,90,90,66,189,231,4,10, - 10,8,2,0,224,16,16,32,32,64,64,128,128,112,16,16, - 32,16,0,254,7,224,24,24,36,36,92,58,92,58,190,125, - 190,125,190,125,129,129,129,129,131,193,67,194,71,226,35,196, - 24,24,7,224,15,13,26,16,0,255,4,64,8,32,16,16, - 16,16,19,144,12,96,62,248,68,68,133,66,131,130,2,128, - 4,64,24,48,13,15,30,16,1,254,6,0,2,0,255,248, - 71,16,63,224,2,0,26,192,34,32,31,192,18,64,15,128, - 10,128,7,0,10,128,2,0,5,8,8,8,2,0,112,136, - 80,32,248,32,32,32,5,9,9,8,2,0,32,112,32,248, - 32,96,48,32,32,6,10,10,8,1,0,56,36,36,56,32, - 168,112,32,112,168,5,9,9,8,2,0,32,112,32,248,32, - 32,32,32,32,7,7,7,8,1,0,56,16,146,254,146,16, - 56,8,9,9,8,0,1,30,33,64,194,199,194,64,33,30, - 11,11,22,16,2,0,21,0,27,0,0,0,85,64,164,160, - 164,160,164,160,149,32,78,64,31,0,4,0,11,12,24,16, - 3,255,4,0,21,0,36,128,78,64,213,96,213,96,206,96, - 228,224,223,96,142,32,21,0,4,0,8,8,8,8,0,0, - 12,2,57,121,13,62,99,193,7,8,8,8,1,0,124,146, - 146,146,186,214,146,124,16,16,32,16,0,254,7,224,24,24, - 32,4,64,2,64,2,156,49,190,49,255,3,231,131,231,199, - 255,255,127,254,127,254,63,252,31,248,7,224,13,10,20,16, - 1,0,255,248,255,248,0,0,0,0,255,248,255,248,0,0, - 0,0,255,248,255,248,13,10,20,16,1,0,248,248,248,248, - 0,0,0,0,255,248,255,248,0,0,0,0,255,248,255,248, - 13,10,20,16,1,0,255,248,255,248,0,0,0,0,248,248, - 248,248,0,0,0,0,255,248,255,248,13,10,20,16,1,0, - 248,248,248,248,0,0,0,0,248,248,248,248,0,0,0,0, - 255,248,255,248,13,10,20,16,1,0,255,248,255,248,0,0, - 0,0,255,248,255,248,0,0,0,0,248,248,248,248,13,10, - 20,16,1,0,248,248,248,248,0,0,0,0,255,248,255,248, - 0,0,0,0,248,248,248,248,13,10,20,16,1,0,255,248, - 255,248,0,0,0,0,248,248,248,248,0,0,0,0,248,248, - 248,248,13,10,20,16,1,0,248,248,248,248,0,0,0,0, - 248,248,248,248,0,0,0,0,248,248,248,248,7,7,7,8, - 1,0,146,124,124,238,124,124,146,8,10,10,8,0,1,60, - 66,129,165,129,153,165,129,66,60,8,9,9,8,0,1,60, - 66,129,165,129,165,153,66,60,8,9,9,8,0,1,60,126, - 255,219,255,219,231,126,60,7,7,7,8,1,2,146,84,56, - 238,56,84,146,6,10,10,8,2,0,224,48,24,20,20,20, - 20,24,48,224,6,10,10,8,1,0,28,48,96,160,160,160, - 160,96,48,28,5,11,11,8,2,0,136,136,112,136,136,136, - 112,32,248,32,32,5,9,9,8,2,0,112,136,136,136,112, - 32,248,32,32,5,10,10,8,2,1,32,32,248,32,32,112, - 136,136,136,112,7,8,8,8,1,1,14,6,10,112,136,136, - 136,112,6,10,10,8,1,0,4,4,4,116,140,12,20,252, - 4,4,6,10,10,8,1,0,64,64,224,64,88,100,68,72, - 72,72,7,9,9,8,1,0,214,84,124,84,214,16,56,40, - 56,8,11,11,8,0,255,8,89,203,73,73,73,62,8,62, - 8,8,6,10,10,8,1,0,248,132,132,132,248,128,128,128, - 128,252,7,10,10,8,1,0,68,170,40,40,16,16,16,16, - 16,16,7,7,7,8,1,0,130,68,56,68,68,68,56,7, - 10,10,8,1,0,130,124,40,40,40,40,40,40,124,130,7, - 8,8,8,1,0,124,146,144,96,12,18,146,124,8,9,9, - 8,0,0,28,34,34,18,116,148,148,101,2,7,10,10,8, - 1,0,168,248,170,174,170,170,170,170,12,248,7,6,6,8, - 1,1,56,68,68,238,0,254,7,10,10,8,1,0,168,248, - 168,168,168,168,168,168,170,6,7,7,7,8,1,0,30,6, - 138,82,32,80,136,8,10,10,8,0,0,49,78,132,8,16, - 60,98,162,162,28,6,6,6,8,1,2,84,168,0,0,84, - 168,6,9,9,8,1,0,132,132,72,72,252,72,72,132,132, - 7,13,13,8,1,0,16,56,146,186,198,130,68,68,68,130, - 130,130,254,7,11,11,8,1,0,16,56,198,130,68,68,68, - 130,130,130,254,7,9,9,8,1,0,170,254,130,130,68,68, - 130,130,254,7,10,10,8,1,0,16,40,68,68,68,68,40, - 238,130,254,6,11,11,8,1,0,4,60,68,132,132,116,36, - 68,132,132,252,6,8,8,8,1,0,48,72,72,48,72,72, - 132,252,7,13,13,8,1,0,16,56,146,186,254,254,124,124, - 124,254,254,254,254,7,11,11,8,1,0,16,56,254,238,124, - 124,124,254,254,254,254,7,8,8,8,1,0,170,254,254,124, - 124,254,254,254,7,10,10,8,1,0,16,56,108,68,108,124, - 56,254,254,254,6,11,11,8,1,0,4,60,108,252,252,124, - 60,124,252,252,252,6,8,8,8,1,0,48,120,120,48,120, - 120,252,252,7,10,10,8,1,0,16,16,56,124,254,254,254, - 124,16,56,7,9,9,8,1,0,108,146,130,130,130,68,40, - 16,16,5,10,10,8,2,0,32,32,80,80,136,136,80,80, - 32,32,7,10,10,8,1,0,56,56,56,16,254,254,214,16, - 16,56,7,10,10,8,1,0,16,16,40,68,130,130,130,124, - 16,56,7,9,9,8,1,0,108,254,254,254,254,124,56,16, - 16,5,10,10,8,2,0,32,32,112,112,248,248,112,112,32, - 32,7,10,10,8,1,0,56,40,56,16,238,186,214,16,16, - 56,8,11,11,8,0,0,8,81,146,146,146,73,73,73,82, - 129,126,4,10,10,8,1,0,16,16,16,16,16,16,16,112, - 240,224,6,10,10,8,1,0,16,24,20,20,16,16,16,112, - 240,224,8,11,11,8,0,0,28,23,17,17,17,17,113,241, - 231,15,14,8,11,11,8,0,0,28,23,17,29,23,17,113, - 241,231,15,14,6,12,12,8,1,0,128,128,128,128,128,184, - 204,140,136,144,160,192,6,11,11,8,1,0,128,128,156,252, - 228,132,156,252,228,4,4,6,13,13,8,1,255,8,72,76, - 124,248,200,72,76,124,248,200,72,64,7,10,10,8,1,0, - 40,16,16,146,124,146,16,16,16,40,7,10,10,8,1,0, - 56,40,16,214,186,214,16,16,40,16,16,16,32,16,0,254, - 3,192,5,32,10,152,18,72,10,208,4,48,48,4,72,10, - 140,17,80,9,160,5,174,38,82,88,82,134,30,92,0,32, - 15,16,32,16,0,254,3,128,4,64,4,64,8,32,0,40, - 57,24,27,56,41,0,33,8,67,132,64,4,128,34,128,66, - 126,252,0,64,0,32,15,16,32,16,0,254,3,128,4,64, - 4,64,8,32,0,40,59,24,24,184,41,0,34,8,67,132, - 64,4,128,34,128,66,126,252,0,64,0,32,15,16,32,16, - 0,254,3,128,4,64,4,64,8,32,0,40,57,24,24,184, - 43,0,32,136,67,4,64,4,128,34,128,66,126,252,0,64, - 0,32,15,16,32,16,0,254,3,128,4,64,4,64,8,32, - 0,40,58,152,26,184,43,128,32,136,64,132,64,4,128,34, - 128,66,126,252,0,64,0,32,15,16,32,16,0,254,3,128, - 4,64,4,64,8,32,0,40,59,152,26,56,43,0,32,136, - 67,4,64,4,128,34,128,66,126,252,0,64,0,32,15,16, - 32,16,0,254,3,128,4,64,4,64,8,32,0,40,57,152, - 26,56,43,128,34,72,65,132,64,4,128,34,128,66,126,252, - 0,64,0,32,15,16,32,16,0,254,3,128,4,64,4,64, - 8,32,0,40,59,152,24,184,41,0,33,8,65,4,64,4, - 128,34,128,66,126,252,0,64,0,32,15,16,32,16,0,254, - 3,128,4,64,4,64,8,32,0,40,56,24,24,56,40,0, - 32,8,64,4,64,4,128,34,128,66,126,252,0,64,0,32, - 16,16,32,16,0,254,3,192,5,224,14,248,30,120,14,240, - 4,48,48,4,120,14,252,31,112,15,224,7,238,38,94,120, - 94,254,30,124,0,32,16,16,32,16,0,254,7,224,31,248, - 62,124,125,190,123,222,255,143,247,223,231,255,243,239,247,239, - 239,247,111,182,113,14,63,188,31,248,7,224,16,16,32,16, - 0,254,7,224,24,24,33,132,66,66,68,34,128,113,136,33, - 152,1,140,17,136,17,144,9,80,74,78,242,32,68,24,24, - 7,224,13,12,24,16,0,255,7,0,24,192,32,32,64,16, - 77,144,146,72,146,72,77,144,64,16,32,32,24,192,7,0, - 12,11,22,16,2,0,24,0,24,0,16,0,30,0,16,0, - 95,128,128,128,128,64,129,64,66,48,60,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 4 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_77[1657] U8G_FONT_SECTION("u8g_font_unifont_77") = { - 0,16,16,0,254,11,3,133,6,29,32,99,0,14,254,11, - 255,9,9,18,16,3,1,255,128,128,128,128,128,128,128,136, - 128,128,128,128,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,128,128,160,128,128,128,130,128,128,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,160,128,128,128,136, - 128,128,128,130,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,128,128,128,128,162,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,162,128,128,128,136, - 128,128,128,162,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,162,128,128,128,162,128,128,128,255, - 128,13,12,24,16,0,255,7,0,24,192,32,32,64,16,64, - 16,128,200,128,200,64,16,64,16,32,32,24,192,7,0,13, - 12,24,16,0,255,7,0,24,192,32,32,64,16,64,16,152, - 200,152,200,64,16,64,16,32,32,24,192,7,0,13,12,24, - 16,0,255,7,0,31,192,63,224,127,240,127,240,255,56,255, - 56,127,240,127,240,63,224,15,128,7,0,13,12,24,16,0, - 255,7,0,31,192,63,224,127,240,127,240,231,56,231,56,127, - 240,127,240,63,224,15,128,7,0,13,2,4,16,1,4,255, - 248,255,248,13,2,4,16,1,4,248,248,248,248,13,6,12, - 16,1,2,255,248,255,248,0,0,0,0,255,248,255,248,13, - 6,12,16,1,2,248,248,248,248,0,0,0,0,255,248,255, - 248,13,6,12,16,1,2,255,248,255,248,0,0,0,0,248, - 248,248,248,13,6,12,16,1,2,248,248,248,248,0,0,0, - 0,248,248,248,248,6,11,11,8,1,0,224,156,132,132,228, - 156,128,128,128,128,128,6,11,11,8,1,0,224,252,252,252, - 252,156,128,128,128,128,128,16,14,28,16,0,255,7,50,95, - 124,62,126,124,31,248,39,116,67,34,129,1,0,2,128,4, - 64,8,32,16,16,32,8,64,4,14,12,24,16,1,0,3, - 128,4,64,4,64,3,128,1,0,7,192,1,0,65,8,225, - 28,65,8,33,16,31,224,13,13,26,16,1,0,128,8,64, - 16,32,32,16,64,8,128,5,0,2,0,5,0,8,128,80, - 80,32,32,80,80,128,8,9,14,28,16,3,255,8,0,8, - 0,127,128,137,128,136,0,126,0,9,0,9,0,62,0,72, - 0,60,0,10,0,28,0,8,0,15,11,22,16,0,0,1, - 0,17,16,127,252,57,56,84,84,84,84,146,146,146,146,254, - 254,124,124,56,56,11,8,16,16,2,0,63,128,95,192,143, - 192,135,128,128,0,15,128,18,64,34,32,11,13,26,16,2, - 255,14,0,17,0,17,0,17,0,14,0,4,0,228,224,245, - 224,117,192,53,128,14,0,4,0,4,0,13,13,26,16,1, - 255,2,0,66,16,47,160,16,64,32,32,32,32,226,56,32, - 32,32,32,16,64,47,160,66,16,2,0,15,13,26,16,0, - 0,1,0,2,128,57,56,127,252,253,126,5,64,3,128,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,16,0, - 254,1,128,2,64,2,64,116,46,142,113,133,161,78,114,53, - 172,53,172,78,114,133,161,142,113,116,46,2,64,2,64,1, - 128,15,16,32,16,0,254,1,0,2,128,4,64,52,88,76, - 100,132,66,178,154,202,166,26,176,16,16,27,176,10,160,58, - 184,38,200,25,48,1,0,15,15,30,16,0,255,1,0,2, - 128,4,64,4,64,8,0,107,252,136,2,136,34,96,36,24, - 16,6,80,0,136,33,8,38,72,24,48,12,15,30,16,2, - 255,192,0,48,0,12,0,3,0,0,192,0,48,0,0,255, - 240,0,0,0,48,0,192,3,0,12,0,48,0,192,0,12, - 15,30,16,2,255,0,48,0,192,3,0,12,0,48,0,192, - 0,0,0,255,240,0,0,192,0,48,0,12,0,3,0,0, - 192,0,48,13,14,28,16,1,255,2,0,5,0,5,0,8, - 128,8,128,18,64,18,64,34,32,34,32,66,16,64,16,130, - 8,128,8,255,248,6,11,11,8,1,255,4,8,16,32,64, - 252,8,16,32,64,128,11,9,18,16,2,0,59,128,68,64, - 138,32,138,32,68,64,59,128,17,0,59,128,17,0,11,11, - 22,16,2,0,7,0,3,0,5,0,56,224,68,96,142,160, - 149,0,104,128,48,128,17,0,14,0,10,14,28,16,3,255, - 1,192,0,192,1,64,14,0,17,0,56,128,84,128,139,0, - 134,0,68,0,56,0,16,0,56,0,16,0,8,12,12,16, - 4,254,7,3,5,56,68,130,130,68,56,16,56,16,11,10, - 20,16,2,0,0,224,0,96,2,160,1,0,58,128,68,0, - 130,0,130,0,68,0,56,0,15,13,26,16,0,254,224,14, - 192,6,168,10,16,16,43,160,4,64,8,32,8,32,4,64, - 3,128,1,0,3,128,1,0,7,12,12,8,0,0,16,56, - 84,16,56,16,56,68,130,130,68,56,14,7,14,16,0,255, - 56,0,68,16,130,136,131,252,130,136,68,16,56,0,7,7, - 7,8,0,255,56,68,130,130,130,68,56,7,7,7,8,0, - 255,56,124,254,254,254,124,56,5,5,5,8,2,0,112,136, - 136,136,112,11,6,12,16,2,0,59,128,68,64,138,32,138, - 32,68,64,59,128,11,7,14,16,3,255,4,0,117,192,142, - 32,142,32,142,32,117,192,4,0,13,5,10,16,1,0,112, - 112,136,136,143,136,136,136,112,112,14,10,20,16,2,0,24, - 0,39,128,64,124,128,0,128,0,128,0,128,0,64,124,39, - 128,24,0,11,13,26,16,2,0,31,0,10,0,63,128,64, - 64,128,32,128,32,64,64,64,64,64,64,32,128,32,128,32, - 128,31,0,7,9,9,8,0,254,56,68,130,130,68,56,16, - 16,16,6,9,9,8,0,254,112,136,4,4,8,48,32,248, - 32,7,10,10,8,0,254,16,40,68,130,68,40,16,16,124, - 16,7,10,10,8,0,254,146,84,56,254,56,84,146,16,124, - 16,13,11,22,16,1,0,2,0,2,0,2,0,2,0,114, - 112,8,128,5,0,242,120,8,128,5,0,2,0,6,11,11, - 8,1,0,36,40,48,40,36,32,112,136,136,136,112,6,10, - 10,8,1,254,56,112,224,224,224,112,56,16,124,16,8,7, - 7,8,0,3,66,36,24,255,24,36,66,7,8,8,8,0, - 0,68,68,68,40,40,40,16,254,7,8,8,8,0,0,254, - 16,40,40,40,68,68,68,6,8,8,8,1,0,252,132,132, - 132,148,252,64,252,13,13,26,16,0,255,7,0,28,192,60, - 224,92,240,64,16,135,8,143,136,231,56,112,112,96,48,39, - 32,31,192,7,0,13,13,26,16,0,255,7,0,24,192,48, - 96,72,144,64,16,133,8,128,8,133,8,64,16,72,144,48, - 96,24,192,7,0,13,13,26,16,1,255,255,248,128,8,135, - 8,136,136,136,136,135,8,130,8,130,8,130,8,131,136,130, - 8,128,8,255,248,12,9,18,16,2,0,31,128,96,96,134, - 16,134,16,224,112,191,208,169,80,105,96,31,128,12,12,24, - 16,2,0,31,128,96,96,134,16,134,16,224,112,191,208,169, - 80,233,112,191,208,169,80,105,96,31,128,14,11,22,16,1, - 255,31,224,112,56,207,204,188,244,188,244,143,196,160,20,171, - 84,203,76,112,56,31,224,14,14,28,16,1,255,31,224,112, - 56,207,204,188,244,188,244,143,196,160,20,171,84,139,68,160, - 20,171,84,203,76,112,56,31,224}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 15, '1' Height: 13 - Calculated Max Values w=16 h=16 x= 7 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =15 descent=-2 - X Font ascent =15 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[7084] U8G_FONT_SECTION("u8g_font_unifont_78_79") = { - 0,16,16,0,254,15,8,41,11,207,1,255,254,14,254,15, - 254,15,11,22,16,0,2,56,0,124,0,108,0,124,0,60, - 0,14,0,127,252,255,254,217,192,248,224,112,0,14,11,22, - 16,0,1,112,12,248,56,216,112,254,224,127,192,7,128,127, - 192,254,224,216,112,248,56,112,12,15,11,22,16,0,255,112, - 0,248,224,217,192,255,254,127,252,14,0,60,0,124,0,108, - 0,124,0,56,0,15,11,22,16,0,1,112,12,136,50,174, - 68,129,136,121,16,6,32,120,80,129,136,174,68,136,50,112, - 12,14,11,22,16,1,255,0,8,0,20,0,36,0,72,64, - 144,161,32,162,64,84,128,73,0,34,0,28,0,15,15,30, - 16,0,255,7,192,24,48,32,8,65,196,71,228,143,242,143, - 114,158,98,156,2,159,2,79,4,70,4,32,8,24,48,7, - 192,15,15,30,16,0,255,7,192,25,48,35,136,67,132,65, - 4,131,130,135,194,135,194,135,194,139,162,92,116,88,52,32, - 8,24,48,7,192,15,14,28,16,0,255,8,0,15,0,6, - 0,7,192,195,128,227,192,127,254,127,254,227,192,195,128,7, - 192,6,0,15,0,8,0,14,7,14,16,1,3,255,252,192, - 12,176,52,140,196,179,52,192,12,255,252,13,11,22,16,1, - 255,6,192,25,32,41,32,107,240,170,8,169,200,169,136,110, - 8,80,16,32,32,31,192,14,13,26,16,1,0,21,0,42, - 128,42,128,106,128,170,128,170,152,170,164,128,68,128,8,128, - 16,64,32,32,32,31,192,15,15,30,16,0,255,24,48,36, - 72,34,136,18,144,17,16,9,32,8,32,124,252,146,130,146, - 114,146,34,146,66,124,4,32,8,31,240,15,13,26,16,1, - 0,0,16,0,56,0,112,7,238,25,234,35,154,71,10,142, - 10,223,202,36,10,95,250,224,10,192,14,12,12,24,16,1, - 0,48,0,76,0,170,0,149,0,226,128,81,64,40,160,20, - 80,10,80,5,144,2,48,1,240,15,7,14,16,0,3,63, - 240,80,40,143,244,168,22,143,244,80,40,63,240,12,12,24, - 16,1,0,1,240,2,48,5,144,10,80,20,80,40,160,81, - 64,226,128,149,0,170,0,76,0,48,0,15,7,14,16,0, - 3,0,240,121,8,134,108,128,254,134,108,121,8,0,240,15, - 7,14,16,0,3,0,224,121,240,255,56,255,14,255,56,121, - 240,0,224,13,10,20,16,1,255,0,8,0,16,0,32,128, - 64,128,128,65,0,66,0,36,0,40,0,16,0,15,11,22, - 16,0,255,0,4,0,14,64,28,224,56,224,112,112,224,113, - 192,59,128,63,0,30,0,12,0,11,11,22,16,2,1,64, - 64,224,224,113,192,59,128,31,0,14,0,31,0,59,128,113, - 192,224,224,64,64,15,15,30,16,0,255,16,16,56,56,124, - 124,254,254,127,252,63,248,31,240,15,224,31,240,63,248,127, - 252,254,254,124,124,56,56,16,16,12,13,26,16,1,0,192, - 48,96,192,99,128,54,0,28,0,28,0,54,0,51,0,97, - 128,96,192,192,96,192,48,64,0,12,14,28,16,1,255,192, - 48,224,224,99,192,119,0,62,0,28,0,62,0,55,0,115, - 128,97,192,224,224,192,112,192,32,64,0,15,15,30,16,0, - 255,7,192,4,64,5,64,5,64,5,64,253,126,129,2,191, - 250,129,2,253,126,5,64,5,64,5,64,4,64,7,192,15, - 15,30,16,0,255,7,192,7,192,7,192,7,192,7,192,255, - 254,255,254,255,254,255,254,255,254,7,192,7,192,7,192,7, - 192,7,192,15,15,30,16,0,255,3,128,3,128,3,128,3, - 128,3,128,3,128,252,126,252,126,252,126,3,128,3,128,3, - 128,3,128,3,128,3,128,15,15,30,16,0,255,7,192,7, - 192,7,192,7,192,7,192,248,62,248,62,248,62,248,62,248, - 62,7,192,7,192,7,192,7,192,7,192,9,11,22,16,3, - 1,28,0,28,0,28,0,255,128,255,128,255,128,28,0,28, - 0,28,0,28,0,28,0,13,15,30,16,1,255,15,0,9, - 128,9,128,9,128,249,240,128,24,128,24,249,248,121,248,9, - 128,9,128,9,128,9,128,15,128,7,128,13,14,28,16,1, - 255,31,192,16,64,247,120,135,8,191,232,191,232,191,232,135, - 8,247,120,23,64,23,64,23,64,16,64,31,192,15,15,30, - 16,0,255,31,240,7,192,3,128,131,130,131,130,195,134,255, - 254,255,254,255,254,195,134,131,130,131,130,3,128,7,192,31, - 240,15,15,30,16,0,255,1,0,1,0,2,128,255,254,68, - 68,40,40,40,40,16,16,40,40,40,40,68,68,255,254,2, - 128,1,0,1,0,15,15,30,16,0,255,3,128,7,192,7, - 192,3,128,3,128,97,12,249,62,255,254,249,62,97,12,3, - 128,3,128,7,192,7,192,3,128,15,15,30,16,0,255,3, - 128,7,192,7,192,7,192,3,128,113,28,249,62,255,254,249, - 62,113,28,3,128,7,192,7,192,7,192,3,128,15,15,30, - 16,0,255,7,192,15,224,15,224,7,192,99,140,243,158,255, - 254,255,254,255,254,243,158,99,140,7,192,15,224,15,224,7, - 192,16,15,30,16,0,255,1,0,3,128,7,192,7,192,1, - 0,49,12,113,14,255,255,113,14,49,12,1,0,7,192,7, - 192,3,128,1,0,15,15,30,16,0,255,1,0,3,128,3, - 128,7,192,7,192,31,240,127,252,255,254,127,252,31,240,7, - 192,7,192,3,128,3,128,1,0,15,15,30,16,0,255,1, - 0,2,128,2,128,4,64,4,64,24,48,96,12,128,2,96, - 12,24,48,4,64,4,64,2,128,2,128,1,0,14,14,28, - 16,1,255,8,0,8,0,20,0,34,0,193,128,34,32,20, - 32,8,80,9,140,0,80,0,32,2,32,5,0,2,0,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,64,4,56, - 56,8,32,16,16,17,16,38,200,40,40,48,24,15,15,30, - 16,0,255,7,192,31,240,62,248,126,252,124,124,192,6,240, - 30,248,62,240,30,241,30,103,204,111,236,63,248,31,240,7, - 192,15,12,24,16,0,1,1,0,3,128,3,128,255,254,124, - 124,56,56,8,32,28,112,31,240,62,248,56,56,48,24,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,67,132,39, - 200,23,208,19,144,16,16,39,200,40,40,48,24,15,12,24, - 16,0,1,1,0,2,128,28,112,225,14,79,228,35,136,23, - 208,20,80,17,16,34,136,44,104,48,24,15,12,24,16,0, - 1,1,0,2,128,29,112,227,142,95,244,47,232,23,208,22, - 208,21,80,34,136,44,104,48,24,15,13,26,16,0,0,1, - 0,3,128,5,192,249,254,93,140,39,184,19,240,15,208,29, - 144,25,208,50,232,44,120,48,24,16,13,26,16,0,0,1, - 0,2,128,2,192,255,254,68,71,56,62,8,60,22,208,17, - 24,39,200,47,44,60,28,24,12,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,63,252,15,240,63,252,243, - 158,67,132,3,128,3,128,3,128,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,60,124,8,48,60,124,243, - 158,67,132,3,128,3,128,3,128,15,15,30,16,0,255,1, - 0,1,0,33,8,17,16,13,96,15,224,7,192,255,254,7, - 192,15,224,13,96,17,16,33,8,1,0,1,0,15,15,30, - 16,0,255,1,0,1,0,33,8,27,176,31,240,15,224,31, - 224,255,254,31,240,15,224,31,240,27,176,33,8,1,0,1, - 0,15,15,30,16,0,255,1,0,2,128,60,248,44,200,38, - 152,50,184,125,76,131,134,77,124,58,152,50,200,38,104,62, - 120,2,128,1,0,13,13,26,16,1,0,2,0,2,0,2, - 0,135,8,119,112,63,224,31,192,63,224,119,112,135,8,2, - 0,2,0,2,0,15,15,30,16,0,255,8,32,8,32,12, - 96,6,192,230,206,59,184,31,240,7,192,31,240,59,184,230, - 206,6,192,12,96,8,32,8,32,15,15,30,16,0,255,8, - 32,12,96,14,224,15,224,255,254,127,252,63,248,31,240,63, - 248,127,252,255,254,15,224,14,224,12,96,8,32,15,15,30, - 16,0,255,1,0,25,48,15,224,79,228,127,252,63,248,63, - 248,255,254,63,248,63,248,127,252,79,228,15,224,25,48,1, - 0,15,15,30,16,0,255,9,32,73,36,37,72,21,80,203, - 166,55,216,15,224,255,254,15,224,55,216,203,166,21,80,37, - 72,73,36,9,32,15,15,30,16,0,255,1,0,3,128,3, - 128,3,128,225,14,113,28,13,96,3,128,13,96,113,28,225, - 14,3,128,3,128,3,128,1,0,15,15,30,16,0,255,3, - 128,7,192,7,192,99,140,241,30,243,158,60,120,8,32,60, - 120,243,158,241,30,99,140,7,192,7,192,3,128,15,15,30, - 16,0,255,3,128,7,192,7,192,99,140,243,158,241,30,61, - 120,7,192,61,120,241,30,243,158,99,140,7,192,7,192,3, - 128,15,15,30,16,0,255,3,128,4,64,4,64,116,92,252, - 126,254,254,127,252,33,8,67,132,135,194,143,226,119,220,7, - 192,7,192,3,128,15,14,28,16,0,0,3,128,7,192,15, - 224,119,220,255,254,252,126,240,30,112,28,24,48,62,248,127, - 252,126,252,126,252,60,120,15,14,28,16,0,0,3,128,4, - 64,9,32,121,60,133,66,179,154,143,226,111,236,23,208,39, - 200,73,36,82,148,66,132,60,120,15,15,30,16,0,255,3, - 128,60,120,69,68,81,20,77,100,111,236,134,194,188,122,134, - 194,111,236,77,100,81,20,69,68,60,120,3,128,15,15,30, - 16,0,255,7,192,30,240,62,248,92,116,103,204,252,126,232, - 46,136,34,232,46,252,126,103,204,92,116,62,248,30,240,7, - 192,15,15,30,16,0,255,3,128,4,192,4,192,116,220,188, - 230,159,158,79,60,63,248,114,100,230,114,206,122,118,92,6, - 64,6,64,3,128,15,13,26,16,0,0,1,0,5,64,3, - 128,201,38,49,24,77,100,3,128,77,100,49,24,201,38,3, - 128,5,64,1,0,15,13,26,16,0,0,1,0,5,64,11, - 160,201,38,49,24,77,100,131,130,77,100,49,24,201,38,11, - 160,5,64,1,0,15,15,30,16,0,255,9,32,13,96,7, - 192,19,144,201,38,49,24,237,110,3,128,237,110,49,24,201, - 38,17,16,7,192,13,96,9,32,14,14,28,16,1,255,7, - 128,71,136,39,144,19,32,11,64,224,28,251,124,251,124,224, - 28,11,64,19,32,39,144,71,136,7,128,15,15,30,16,0, - 255,7,192,71,196,39,200,19,144,11,160,224,14,251,190,251, - 190,251,190,224,14,11,160,19,144,39,200,71,196,7,192,15, - 15,30,16,0,255,3,128,7,192,7,192,119,220,251,190,249, - 62,125,124,7,192,125,124,249,62,251,190,119,220,7,192,7, - 192,3,128,15,15,30,16,0,255,1,0,3,128,51,152,49, - 24,9,32,5,64,99,140,255,254,99,140,5,64,9,32,49, - 24,51,152,3,128,1,0,15,15,30,16,0,255,1,0,3, - 128,51,152,59,184,25,48,7,192,119,220,255,254,119,220,7, - 192,25,48,59,184,51,152,3,128,1,0,11,11,22,16,2, - 1,96,192,241,224,123,192,63,128,31,0,31,0,63,128,123, - 192,241,224,224,224,64,64,13,13,26,16,2,255,15,0,48, - 192,64,32,64,48,128,16,128,24,128,24,128,24,64,56,64, - 48,48,240,15,224,7,128,13,13,26,16,0,0,255,248,223, - 216,143,136,199,24,226,56,240,120,248,248,240,120,226,56,199, - 24,143,136,223,216,255,248,12,12,24,16,3,1,255,192,128, - 64,128,112,128,112,128,112,128,112,128,112,128,112,128,112,255, - 240,63,240,63,240,12,12,24,16,3,1,63,240,63,240,255, - 240,128,112,128,112,128,112,128,112,128,112,128,112,128,112,128, - 64,255,192,12,12,24,16,3,1,255,192,128,96,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,255,240,127,240,63, - 240,12,12,24,16,3,1,63,240,127,240,255,240,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,128,96,255,192,9, - 15,30,16,3,254,28,0,127,0,243,128,193,128,199,128,15, - 0,28,0,24,0,24,0,24,0,0,0,24,0,60,0,60, - 0,24,0,9,16,32,16,3,254,62,0,65,0,156,128,162, - 128,66,128,4,128,9,0,18,0,20,0,20,0,28,0,0, - 0,28,0,34,0,34,0,28,0,7,15,15,16,4,255,56, - 108,198,130,198,68,108,40,40,56,0,56,68,68,56,13,13, - 26,16,1,0,2,0,7,0,15,128,7,0,34,32,112,112, - 248,248,112,112,34,32,7,0,15,128,7,0,2,0,4,14, - 14,16,6,0,96,240,240,240,240,240,240,96,96,96,96,0, - 96,96,2,15,15,16,7,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,4,15,15,16,6,255,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,15,15,16, - 4,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,7,10,10,16,4,4,28,112,192,248,252,254,254,254,124, - 56,7,10,10,16,4,4,56,124,254,254,254,126,62,6,28, - 112,15,10,20,16,0,4,28,28,112,112,192,192,248,248,252, - 252,254,254,254,254,254,254,124,124,56,56,15,10,20,16,0, - 4,56,56,124,124,254,254,254,254,254,254,126,126,62,62,6, - 6,28,28,112,112,7,10,10,16,3,0,56,124,254,254,254, - 126,62,6,28,112,15,10,20,16,0,0,56,56,124,124,254, - 254,254,254,254,254,126,126,62,62,6,6,28,28,112,112,14, - 14,28,16,1,255,0,32,0,32,31,252,127,240,252,32,252, - 32,126,32,31,224,0,32,96,96,240,64,240,192,99,128,62, - 0,9,15,30,16,3,255,28,0,127,0,255,128,255,128,255, - 128,127,0,28,0,8,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,9,13,26,16,3,0,119,0,255,128,255, - 128,255,128,127,0,28,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,15,13,26,16,0,255,60,120,126,252,255, - 254,255,254,255,254,127,252,127,252,63,248,31,240,15,224,7, - 192,3,128,1,0,13,15,30,16,1,255,56,0,126,0,255, - 0,255,128,255,192,255,224,127,240,63,248,127,240,255,224,255, - 192,255,128,255,0,126,0,56,0,15,14,28,16,0,255,3, - 0,12,134,56,142,103,248,1,0,57,56,126,252,255,254,255, - 254,127,252,63,248,31,226,7,238,0,248,14,15,30,16,1, - 254,97,152,99,200,55,236,23,228,23,252,19,252,115,252,157, - 248,147,248,83,248,103,240,39,240,55,224,19,192,1,128,4, - 12,12,8,3,255,16,32,96,192,192,192,192,192,192,96,32, - 16,4,12,12,8,2,255,128,64,96,48,48,48,48,48,48, - 96,64,128,5,12,12,8,2,255,24,48,112,224,224,224,224, - 224,224,112,48,24,5,12,12,8,2,255,192,96,112,56,56, - 56,56,56,56,112,96,192,5,12,12,8,2,255,24,48,48, - 96,96,192,192,96,96,48,48,24,5,12,12,8,2,255,192, - 96,96,48,48,24,24,48,48,96,96,192,6,12,12,8,2, - 255,28,56,56,112,112,224,224,112,112,56,56,28,6,12,12, - 8,1,255,224,112,112,56,56,28,28,56,56,112,112,224,7, - 12,12,8,1,255,30,60,60,120,120,240,240,120,120,60,60, - 30,7,12,12,8,0,255,240,120,120,60,60,30,30,60,60, - 120,120,240,3,12,12,8,3,255,32,64,128,128,128,128,128, - 128,128,128,64,32,3,12,12,8,2,255,128,64,32,32,32, - 32,32,32,32,32,64,128,6,12,12,8,1,255,60,112,96, - 96,48,48,224,48,48,96,112,60,6,12,12,8,1,255,240, - 56,24,24,48,48,28,48,48,24,56,240,15,15,30,16,0, - 255,7,192,31,240,63,248,126,252,124,252,250,254,254,254,254, - 254,254,254,254,254,126,252,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,124,124,123,188,251, - 190,255,190,255,126,254,254,253,254,123,252,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,124, - 124,123,188,251,190,255,190,254,126,255,190,251,190,123,188,124, - 124,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,124,126,124,253,126,251,126,247,126,240,62,255, - 126,127,124,127,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,123,252,251,254,251,254,248, - 126,255,190,255,190,123,188,124,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,126,124,125,252,251, - 254,251,254,248,126,251,190,251,190,123,188,124,124,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,127,188,255,190,255,126,255,126,255,126,254,254,126,252,126, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,124,124,123,188,251,190,251,190,252,126,251,190,251, - 190,123,188,124,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,124,124,123,188,251,190,251,190,252, - 62,255,190,255,190,127,124,124,252,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,127,252,123,156,243, - 110,235,110,251,110,251,110,251,110,96,156,127,252,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,24,48,32,8,64, - 132,65,132,131,130,129,130,129,130,129,130,129,130,65,132,65, - 132,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,98,128,98,129,194,135,2,140, - 2,79,228,79,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,71,196,79,228,140,98,128,98,129, - 194,128,98,140,98,79,228,71,196,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,64,228,65,228,131, - 98,134,98,140,98,159,242,159,242,64,100,64,100,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,79, - 228,79,228,140,2,143,194,143,226,128,98,140,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,2,143,194,143,226,140,98,140, - 98,79,228,71,196,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,79,228,79,228,128,98,128,98,128, - 194,131,130,134,2,70,4,70,4,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,71,196,79,228,140, - 98,140,98,135,194,140,98,140,98,79,228,71,196,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,71, - 196,79,228,140,98,140,98,143,226,135,226,128,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,68,228,77,244,157,178,141,178,141,178,141,178,141, - 178,77,244,76,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,127,124,126,124,252,126,254,126,254, - 126,254,126,254,126,126,124,126,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 158,255,158,254,62,248,254,243,254,112,28,112,28,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,112,28,243,158,255,158,254,62,255,158,243,158,112,28,120, - 60,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,28,126,28,252,158,249,158,243,158,224,14,224, - 14,127,156,127,156,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,112,28,112,28,243,254,240,62,240, - 30,255,158,243,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 254,240,62,240,30,243,158,243,158,112,28,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,112, - 28,112,28,255,158,255,158,255,62,252,126,249,254,121,252,121, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,120,60,112,28,243,158,243,158,248,62,243,158,243, - 158,112,28,120,60,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,112,28,243,158,243,158,240, - 30,248,30,255,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,123,28,114,12,226, - 78,242,78,242,78,242,78,242,78,114,12,115,28,63,248,31, - 240,7,192,15,13,26,16,0,0,31,128,15,192,7,224,3, - 240,255,248,255,252,255,254,255,252,255,248,3,240,7,224,15, - 192,31,128,11,11,22,16,2,1,14,0,14,0,14,0,14, - 0,255,224,255,224,255,224,14,0,14,0,14,0,14,0,13, - 3,6,16,1,5,255,248,255,248,255,248,13,11,22,16,1, - 1,7,0,7,0,7,0,0,0,255,248,255,248,255,248,0, - 0,7,0,7,0,7,0,11,11,22,16,2,1,32,0,112, - 0,248,0,120,0,60,128,12,128,3,128,3,192,15,192,1, - 192,0,32,15,9,18,16,0,2,1,0,1,128,224,192,252, - 240,255,254,252,240,224,192,1,128,1,0,11,11,22,16,2, - 0,0,32,1,192,15,192,3,192,3,128,12,128,60,128,120, - 0,248,0,112,0,32,0,15,9,18,16,0,2,2,0,1, - 0,1,192,0,240,255,254,0,240,1,192,1,0,2,0,15, - 13,26,16,0,0,0,192,1,224,1,240,0,248,127,252,255, - 254,255,254,255,254,127,252,0,248,1,240,1,224,0,192,15, - 11,22,16,0,1,0,16,0,16,0,24,0,24,255,252,255, - 254,255,252,0,24,0,24,0,16,0,16,15,13,26,16,0, - 0,0,16,0,16,0,24,0,24,255,252,255,252,255,254,255, - 252,255,252,0,24,0,24,0,16,0,16,15,9,18,16,0, - 2,0,32,0,48,0,56,170,252,170,254,170,252,0,56,0, - 48,0,32,15,9,18,16,0,2,0,32,0,48,170,248,170, - 252,170,254,170,252,170,248,0,48,0,32,15,9,18,16,0, - 2,0,32,0,48,0,56,255,252,255,254,255,252,0,56,0, - 48,0,32,14,15,30,16,1,255,128,0,224,0,88,0,70, - 0,33,128,32,96,16,24,15,252,31,248,63,224,63,128,126, - 0,120,0,224,0,128,0,14,15,30,16,1,255,128,0,224, - 0,120,0,126,0,63,128,63,224,31,248,15,252,16,24,32, - 96,33,128,70,0,88,0,224,0,128,0,14,15,30,16,1, - 255,128,0,224,0,120,0,126,0,63,128,63,224,31,248,15, - 252,31,248,63,224,63,128,126,0,120,0,224,0,128,0,15, - 8,16,16,0,3,128,0,128,16,192,24,127,252,127,254,63, - 252,0,24,0,16,15,8,16,16,0,2,0,16,0,24,63, - 252,127,254,127,252,192,24,128,16,128,0,7,13,13,16,5, - 0,16,16,24,248,252,252,254,252,252,248,24,16,16,15,9, - 18,16,0,2,0,64,0,64,255,224,255,240,255,254,255,240, - 255,224,0,64,0,64,14,9,18,16,1,2,0,192,0,224, - 255,176,128,24,128,12,128,24,255,176,0,224,0,192,14,9, - 18,16,1,2,0,192,0,224,255,208,192,8,192,4,192,8, - 255,208,0,224,0,192,15,13,26,16,0,255,0,8,0,24, - 0,36,0,68,63,130,64,2,128,6,255,30,254,124,5,240, - 15,192,15,0,12,0,15,13,26,16,0,0,12,0,15,0, - 15,192,5,240,254,124,255,30,128,6,64,2,63,130,0,68, - 0,36,0,24,0,8,15,12,24,16,0,0,0,128,0,192, - 255,160,128,16,128,8,128,4,128,14,128,28,255,184,127,240, - 0,224,0,64,15,12,24,16,0,1,0,64,0,224,127,240, - 255,184,128,28,128,14,128,4,128,8,128,16,255,160,0,192, - 0,128,16,12,24,16,0,0,0,64,0,96,0,80,255,200, - 64,4,64,2,64,7,255,206,127,220,0,120,0,112,0,32, - 7,6,6,8,1,3,198,56,68,68,68,56,16,12,24,16, - 0,1,0,32,0,112,0,120,127,220,255,206,64,7,64,2, - 64,4,255,200,0,80,0,96,0,64,14,15,30,16,1,255, - 15,128,63,224,126,240,254,120,254,56,0,28,0,12,0,4, - 0,12,0,28,254,56,254,120,126,240,63,224,15,128,15,7, - 14,16,0,3,254,0,73,8,36,140,31,254,36,140,73,8, - 254,0,11,11,22,16,2,1,16,0,24,0,28,0,252,0, - 124,0,60,32,2,32,1,96,0,224,1,224,7,224,14,5, - 10,16,1,4,248,16,124,24,63,252,124,24,248,16,11,11, - 22,16,2,0,7,224,1,224,0,224,1,96,2,32,60,32, - 124,0,252,0,28,0,24,0,16,0,11,11,22,16,2,1, - 8,0,12,0,14,0,14,0,254,32,126,32,63,96,3,224, - 1,224,3,224,15,224,15,9,18,16,0,2,0,32,252,16, - 126,24,63,252,31,254,63,252,126,24,252,16,0,32,11,11, - 22,16,2,0,15,224,3,224,1,224,3,224,63,96,126,32, - 254,32,14,0,14,0,12,0,8,0,15,11,22,16,0,1, - 0,96,0,240,0,240,120,56,255,12,255,254,255,12,120,56, - 0,240,0,240,0,96,15,9,18,16,0,2,0,64,96,224, - 120,240,252,120,255,254,252,120,120,240,96,224,0,64,15,7, - 14,16,0,3,248,16,124,24,62,28,31,254,62,28,124,24, - 248,16,15,9,18,16,0,2,248,96,252,112,126,120,127,252, - 63,254,127,252,126,120,252,112,248,96,15,9,18,16,0,2, - 2,32,1,16,0,136,255,196,0,2,255,196,0,136,1,16, - 2,32,16,6,12,16,0,3,227,199,28,56,34,68,34,68, - 34,68,28,56,6,6,6,8,1,0,128,136,144,160,192,252, - 11,12,24,16,2,0,4,0,10,0,10,0,17,0,17,0, - 36,128,42,128,74,64,81,64,159,32,128,32,255,224,5,6, - 6,8,1,0,32,32,32,32,32,248,10,8,16,16,3,1, - 63,192,64,0,129,128,130,64,130,64,129,128,64,0,63,192, - 10,8,16,16,3,1,255,0,0,128,96,64,144,64,144,64, - 96,64,0,128,255,0,5,10,10,8,2,0,112,136,136,16, - 16,32,32,64,64,56,5,10,10,8,2,0,112,136,136,64, - 64,32,32,16,16,224,7,8,8,8,0,0,130,130,84,68, - 40,40,16,16,14,8,16,16,1,1,129,252,130,0,68,0, - 68,0,36,0,36,0,18,0,17,252,14,8,16,16,1,1, - 254,4,1,4,0,136,0,136,0,144,0,144,1,32,254,32, - 3,10,10,8,2,0,64,64,64,64,224,64,64,64,64,64, - 8,8,8,16,4,1,1,2,4,8,16,32,64,128,12,14, - 28,16,2,254,255,240,128,0,64,0,64,0,32,0,32,0, - 32,0,32,0,32,0,32,0,64,0,64,0,128,0,128,0, - 8,8,8,16,4,1,128,64,32,16,8,4,2,1,13,13, - 26,16,1,0,255,248,130,8,130,8,133,8,133,8,136,136, - 136,136,144,72,144,72,160,40,160,40,192,24,255,248,13,13, - 26,16,1,0,255,248,192,24,160,40,160,40,144,72,144,72, - 136,136,136,136,133,8,133,8,130,8,130,8,255,248,9,9, - 18,16,4,0,8,0,20,0,34,0,65,0,136,128,65,0, - 34,0,20,0,8,0,7,8,8,8,0,0,16,16,40,40, - 68,84,130,130,9,10,20,16,3,0,136,128,136,128,136,128, - 136,128,136,128,136,128,136,128,136,128,73,0,62,0,6,6, - 6,8,1,0,4,4,36,4,4,252,6,6,6,8,1,0, - 252,128,128,144,128,128,12,10,20,16,2,0,224,16,48,48, - 40,80,36,144,35,16,35,16,36,144,40,80,48,48,224,16, - 12,10,20,16,2,0,128,112,192,192,161,64,146,64,140,64, - 140,64,146,64,161,64,192,192,128,112,14,10,20,16,1,0, - 224,28,48,48,40,80,36,144,35,16,35,16,36,144,40,80, - 48,48,224,28,9,12,24,16,3,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 255,128,9,12,24,16,3,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 13,7,14,16,1,2,5,0,5,0,253,248,5,0,253,248, - 5,0,5,0,13,7,14,16,1,2,5,0,5,0,5,0, - 253,248,5,0,5,0,5,0,14,3,6,16,1,4,64,0, - 191,252,64,0,14,3,6,16,1,4,128,0,255,252,128,0, - 14,3,6,16,1,4,0,4,255,252,0,4,3,11,11,16, - 7,255,64,160,64,64,64,64,64,64,64,64,224,7,11,11, - 8,0,0,16,40,40,68,68,254,68,68,40,40,16,13,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,8,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,0,128,1,64,1,64,2,32,4,16,24,12, - 224,2,24,12,4,16,2,32,1,64,1,64,0,128,15,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,14,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,31,254,16,2,16,2,16,2,16,2,16,2, - 240,2,16,2,16,2,16,2,16,2,16,2,31,254,15,13, - 26,16,1,0,255,240,128,16,128,16,128,16,128,16,128,16, - 128,30,128,16,128,16,128,16,128,16,128,16,255,240,5,13, - 13,8,2,0,248,160,160,160,160,160,160,160,160,160,160,160, - 248,5,13,13,8,1,0,248,40,40,40,40,40,40,40,40, - 40,40,40,248,4,12,12,8,2,0,16,32,32,64,64,128, - 128,64,64,32,32,16,4,12,12,8,2,0,128,64,64,32, - 32,16,16,32,32,64,64,128,6,12,12,8,1,0,20,40, - 40,80,80,160,160,80,80,40,40,20,6,12,12,8,1,0, - 160,80,80,40,40,20,20,40,40,80,80,160,4,12,12,8, - 3,255,16,32,96,160,160,160,160,160,160,96,32,16,4,12, - 12,8,1,255,128,64,96,80,80,80,80,80,80,96,64,128, - 3,12,12,8,4,255,32,64,128,128,128,128,128,128,128,128, - 64,32,3,12,12,8,1,255,128,64,32,32,32,32,32,32, - 32,32,64,128,11,12,24,16,2,0,4,0,10,0,27,0, - 42,128,106,192,170,160,42,128,42,128,42,128,42,128,42,128, - 42,128,11,12,24,16,2,0,42,128,42,128,42,128,42,128, - 42,128,42,128,170,160,106,192,42,128,27,0,10,0,4,0, - 12,10,20,16,2,0,7,128,8,64,16,32,32,16,168,16, - 112,16,32,16,0,32,8,64,7,128,12,10,20,16,2,0, - 30,0,33,0,64,128,128,64,129,80,128,224,128,64,64,0, - 33,0,30,0,15,7,14,16,0,1,3,128,5,72,9,36, - 255,254,9,36,5,72,3,128,15,5,10,16,1,2,32,0, - 64,0,255,254,64,0,32,0,15,5,10,16,0,2,0,8, - 0,4,255,254,0,4,0,8,14,5,10,16,1,2,32,16, - 64,8,255,252,64,8,32,16,15,7,14,16,0,1,16,0, - 32,0,127,254,128,0,127,254,32,0,16,0,15,7,14,16, - 0,1,0,16,0,8,255,252,0,2,255,252,0,8,0,16, - 14,7,14,16,1,1,16,32,32,16,127,248,128,4,127,248, - 32,16,16,32,14,5,10,16,1,2,32,4,64,4,255,252, - 64,4,32,4,14,5,10,16,1,2,128,16,128,8,255,252, - 128,8,128,16,14,7,14,16,1,1,16,4,32,4,127,252, - 128,4,127,252,32,4,16,4,14,7,14,16,1,1,128,32, - 128,16,255,248,128,4,255,248,128,16,128,32,15,5,10,16, - 0,2,0,8,34,36,213,94,8,132,0,8}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 5 - Calculated Max Values w=15 h=15 x= 3 y= 4 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 2 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_86[1858] U8G_FONT_SECTION("u8g_font_unifont_86") = { - 0,16,16,0,254,11,3,31,5,100,32,116,2,13,254,11, - 0,11,11,22,16,2,0,7,224,4,32,2,32,4,32,8, - 160,17,96,34,0,68,0,136,0,80,0,32,0,11,11,22, - 16,2,0,252,0,132,0,136,0,132,0,162,0,209,0,8, - 128,4,64,2,32,1,64,0,128,11,11,22,16,2,0,32, - 0,80,0,136,0,68,0,34,0,17,96,8,160,4,32,2, - 32,4,32,7,224,11,11,22,16,2,0,0,128,1,64,2, - 32,4,64,8,128,209,0,162,0,132,0,136,0,132,0,252, - 0,14,7,14,16,1,1,16,32,48,48,95,232,128,4,95, - 232,48,48,16,32,13,7,14,16,1,1,16,0,48,0,127, - 248,255,248,127,248,48,0,16,0,7,12,12,8,0,0,16, - 56,124,254,56,56,56,56,56,56,56,56,7,12,12,8,0, - 0,56,56,56,56,56,56,56,56,254,124,56,16,11,11,22, - 16,2,0,7,224,7,224,3,224,7,224,15,224,31,96,62, - 0,124,0,248,0,112,0,32,0,11,11,22,16,2,0,252, - 0,252,0,248,0,252,0,254,0,223,0,15,128,7,192,3, - 224,1,192,0,128,11,11,22,16,2,0,32,0,112,0,248, - 0,124,0,62,0,31,96,15,224,7,224,3,224,7,224,7, - 224,11,11,22,16,2,0,0,128,1,192,3,224,7,192,15, - 128,223,0,254,0,252,0,248,0,252,0,252,0,14,7,14, - 16,1,1,16,32,48,48,127,248,255,252,127,248,48,48,16, - 32,7,12,12,8,0,0,16,56,124,254,56,56,56,56,254, - 124,56,16,15,5,10,16,0,0,255,248,0,8,0,42,0, - 28,0,8,15,5,10,16,0,4,0,8,0,28,0,42,0, - 8,255,248,15,5,10,16,1,0,63,254,32,0,168,0,112, - 0,32,0,15,5,10,16,1,4,32,0,112,0,168,0,32, - 0,63,254,10,10,20,16,3,255,255,192,255,192,255,192,255, - 192,255,192,128,64,128,64,128,64,128,64,255,192,10,10,20, - 16,3,255,255,192,128,64,128,64,128,64,128,64,255,192,255, - 192,255,192,255,192,255,192,10,10,20,16,3,255,255,192,255, - 192,191,192,159,192,143,192,135,192,131,192,129,192,128,192,255, - 192,10,10,20,16,3,255,255,192,192,64,224,64,240,64,248, - 64,252,64,254,64,255,64,255,192,255,192,10,10,20,16,3, - 255,12,0,26,0,57,0,120,128,248,64,248,64,120,128,57, - 0,26,0,12,0,10,10,20,16,3,255,12,0,22,0,39, - 0,71,128,135,192,135,192,71,128,39,0,22,0,12,0,10, - 10,20,16,3,255,12,0,30,0,63,0,127,128,255,192,128, - 64,64,128,33,0,18,0,12,0,10,10,20,16,3,255,12, - 0,18,0,33,0,64,128,128,64,255,192,127,128,63,0,30, - 0,12,0,11,11,22,16,2,0,170,160,0,0,128,32,0, - 0,128,32,0,0,128,32,0,0,128,32,0,0,170,160,14, - 14,28,16,1,255,255,252,255,252,255,252,255,252,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, - 252,14,14,28,16,1,255,255,252,128,4,128,4,128,4,128, - 4,128,4,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,255,252,4,4,4,8,2,2,240,240,240,240,4,4,4, - 8,2,2,240,144,144,240,12,11,22,16,2,0,6,0,15, - 0,31,128,63,192,127,224,255,240,127,224,127,224,63,192,63, - 192,31,128,12,11,22,16,2,0,6,0,9,0,16,128,32, - 64,64,32,128,16,64,32,64,32,32,64,32,64,31,128,11, - 11,22,16,2,255,4,0,27,0,96,192,128,32,128,32,128, - 32,128,32,128,32,96,192,27,0,4,0,11,11,22,16,2, - 255,4,0,31,0,127,192,255,224,255,224,255,224,255,224,255, - 224,127,192,31,0,4,0,14,10,20,16,1,0,15,192,31, - 224,63,240,127,248,255,252,255,252,127,248,63,240,31,224,15, - 192,14,13,26,16,1,254,31,224,63,240,127,248,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,127,248,63,240,31, - 224,7,7,7,8,0,0,16,56,124,254,124,56,16,7,7, - 7,8,0,0,16,40,68,130,68,40,16,7,11,11,8,0, - 0,16,56,56,124,124,254,124,124,56,56,16,7,11,11,8, - 0,0,16,40,40,68,68,130,68,68,40,40,16,5,5,5, - 8,1,3,32,112,248,112,32,5,7,7,8,1,0,32,112, - 112,248,112,112,32,5,7,7,8,1,0,32,80,80,136,80, - 80,32,15,6,12,16,0,0,15,224,127,252,255,254,255,254, - 127,252,15,224,15,6,12,16,0,0,15,224,112,28,128,2, - 128,2,112,28,15,224,6,13,13,8,1,0,48,120,120,120, - 252,252,252,252,252,120,120,120,48,6,13,13,8,1,0,48, - 72,72,72,132,132,132,132,132,72,72,72,48,15,5,10,16, - 1,2,33,192,66,32,255,254,66,32,33,192,14,15,30,16, - 1,254,32,0,64,0,255,252,64,0,32,0,32,0,64,0, - 255,252,64,0,32,0,32,0,64,0,255,252,64,0,32,0, - 15,5,10,16,1,2,33,192,66,160,255,254,66,160,33,192, - 15,5,10,16,1,2,34,32,69,80,245,94,72,128,32,0, - 15,5,10,16,1,2,40,64,80,64,255,254,80,64,40,64, - 15,5,10,16,1,2,40,160,80,160,255,254,80,160,40,160, - 14,5,10,16,1,2,40,4,80,4,255,252,80,4,40,4, - 14,5,10,16,1,2,40,4,80,8,253,176,80,8,40,4, - 14,5,10,16,1,2,32,0,64,0,213,84,64,0,32,0, - 14,5,10,16,1,2,32,132,64,136,255,240,64,136,32,132, - 14,5,10,16,1,2,33,68,65,72,255,240,65,72,33,68, - 14,5,10,16,1,2,40,4,80,8,255,240,80,8,40,4, - 14,5,10,16,1,2,40,132,80,136,255,240,80,136,40,132, - 14,5,10,16,1,2,41,68,81,72,255,240,81,72,41,68, - 15,5,10,16,1,2,40,144,80,96,255,254,80,96,40,144, - 15,5,10,16,1,2,32,120,64,132,255,2,64,0,32,0, - 15,7,14,16,1,2,3,240,0,0,35,240,64,0,255,254, - 64,0,32,0,15,7,14,16,1,2,0,56,4,68,35,128, - 64,0,255,254,64,0,32,0,15,9,18,16,1,254,32,0, - 64,0,255,254,64,56,36,68,3,128,0,56,4,68,3,128, - 14,9,18,16,1,0,224,0,24,0,6,16,1,8,31,252, - 1,8,6,16,24,0,224,0,14,11,22,16,1,255,252,0, - 2,0,1,0,0,144,0,136,255,252,0,136,0,144,1,0, - 2,0,252,0,15,11,22,16,0,255,4,0,8,0,31,254, - 32,0,127,254,128,0,127,254,32,0,31,254,8,0,4,0, - 15,11,22,16,0,255,0,64,0,32,255,240,0,8,255,252, - 0,2,255,252,0,8,255,240,0,32,0,64,15,7,14,16, - 0,2,3,128,68,64,56,8,0,4,255,254,0,4,0,8, - 15,9,18,16,0,254,0,8,0,4,255,254,3,132,68,72, - 56,0,3,128,68,64,56,0,15,7,14,16,1,2,3,128, - 4,68,32,56,64,0,255,254,64,0,32,0,15,9,18,16, - 1,254,32,0,64,0,255,254,67,128,36,68,0,56,3,128, - 4,68,0,56,15,7,14,16,1,0,32,0,64,0,255,254, - 64,0,32,56,4,68,3,128,15,7,14,16,0,0,0,8, - 0,4,255,254,0,4,3,136,68,64,56,0,10,12,24,16, - 3,0,4,0,8,0,16,0,32,0,64,0,255,192,0,128, - 1,0,2,0,20,0,24,0,28,0,4,6,6,8,2,0, - 112,48,80,64,128,128,4,6,6,8,2,0,128,128,64,80, - 48,112,13,13,26,16,1,0,2,0,2,0,5,0,5,0, - 248,248,64,16,32,32,16,64,8,128,16,64,34,32,77,144, - 112,112,11,10,20,16,2,1,4,0,14,0,14,0,255,224, - 127,192,63,128,63,128,123,192,241,224,192,96,11,10,20,16, - 2,1,4,0,10,0,10,0,241,224,64,64,32,128,36,128, - 74,64,177,160,192,96,11,12,24,16,3,0,4,0,30,0, - 127,0,255,128,255,192,255,224,255,224,255,192,255,128,127,0, - 30,0,4,0,11,12,24,16,3,0,4,0,26,0,97,0, - 128,128,128,64,128,32,128,32,128,64,128,128,97,0,26,0, - 4,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 3 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[4279] U8G_FONT_SECTION("u8g_font_unifont_8_9") = { - 0,16,16,0,254,8,4,67,6,64,0,255,0,14,254,12, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,14,14,8,1,0,72,72,0, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,252,32,32,32,60,34,34,34,34,44,6,14,14,8,1, - 0,24,96,0,0,252,128,128,128,128,128,128,128,128,128,6, - 10,10,8,1,0,56,68,128,128,248,128,128,128,68,56,6, - 10,10,8,1,0,120,132,132,128,96,24,4,132,132,120,5, - 10,10,8,2,0,248,32,32,32,32,32,32,32,32,248,5, - 14,14,8,2,0,144,144,0,0,248,32,32,32,32,32,32, - 32,32,248,6,10,10,8,1,0,28,8,8,8,8,8,8, - 136,136,112,8,10,10,8,0,0,120,72,72,72,78,73,73, - 73,73,142,7,10,10,8,1,0,144,144,144,144,252,146,146, - 146,146,156,7,10,10,8,1,0,252,32,32,32,60,34,34, - 34,34,34,6,14,14,8,1,0,24,96,0,0,128,140,144, - 160,192,192,160,144,136,132,6,13,13,8,1,0,96,24,0, - 132,140,140,148,148,164,164,196,196,132,7,14,14,8,1,0, - 132,132,120,0,130,130,68,68,40,40,16,16,32,96,7,12, - 12,8,1,254,130,130,130,130,130,130,130,130,130,254,16,16, - 6,10,10,8,1,0,48,72,72,132,132,252,132,132,132,132, - 6,10,10,8,1,0,248,128,128,128,248,132,132,132,132,248, - 6,10,10,8,1,0,248,132,132,132,248,132,132,132,132,248, - 6,10,10,8,1,0,252,128,128,128,128,128,128,128,128,128, - 8,12,12,8,0,254,14,18,18,18,34,34,34,66,66,255, - 129,129,6,10,10,8,1,0,252,128,128,128,248,128,128,128, - 128,252,7,10,10,8,1,0,146,146,84,84,56,56,84,84, - 146,146,6,10,10,8,1,0,120,132,4,4,120,8,4,4, - 132,120,6,10,10,8,1,0,132,140,140,148,148,164,164,196, - 196,132,6,13,13,8,1,0,72,48,0,132,140,140,148,148, - 164,164,196,196,132,6,10,10,8,1,0,140,144,144,160,160, - 192,160,144,136,132,6,10,10,8,1,0,60,36,36,36,36, - 36,36,68,68,132,6,10,10,8,1,0,132,132,204,204,180, - 180,132,132,132,132,6,10,10,8,1,0,132,132,132,132,252, - 132,132,132,132,132,6,10,10,8,1,0,120,132,132,132,132, - 132,132,132,132,120,6,10,10,8,1,0,252,132,132,132,132, - 132,132,132,132,132,6,10,10,8,1,0,248,132,132,132,248, - 128,128,128,128,128,6,10,10,8,1,0,120,132,132,128,128, - 128,128,132,132,120,7,10,10,8,1,0,254,16,16,16,16, - 16,16,16,16,16,7,10,10,8,1,0,130,130,68,68,40, - 40,16,16,32,96,7,11,11,8,1,0,16,124,146,146,146, - 146,146,124,16,16,16,6,10,10,8,1,0,132,132,72,72, - 48,48,72,72,132,132,7,12,12,8,1,254,132,132,132,132, - 132,132,132,132,132,254,2,2,6,10,10,8,1,0,132,132, - 132,132,132,252,4,4,4,4,7,10,10,8,1,0,146,146, - 146,146,146,146,146,146,146,254,8,12,12,8,0,254,146,146, - 146,146,146,146,146,146,146,255,1,1,7,10,10,8,1,0, - 224,32,32,32,60,34,34,34,34,60,6,10,10,8,1,0, - 132,132,132,132,228,148,148,148,148,228,6,10,10,8,1,0, - 128,128,128,128,248,132,132,132,132,248,6,10,10,8,1,0, - 112,136,4,4,124,4,4,4,136,112,6,10,10,8,1,0, - 152,164,164,164,228,164,164,164,164,152,6,10,10,8,1,0, - 124,132,132,132,124,36,68,68,132,132,6,8,8,8,1,0, - 120,132,4,124,132,132,140,116,6,12,12,8,1,0,4,56, - 64,128,248,132,132,132,132,132,132,120,6,8,8,8,1,0, - 248,132,132,248,132,132,132,248,6,8,8,8,1,0,252,128, - 128,128,128,128,128,128,7,9,9,8,1,255,60,36,68,68, - 132,132,132,254,130,6,8,8,8,1,0,120,132,132,252,128, - 128,132,120,7,8,8,8,1,0,146,146,84,56,56,84,146, - 146,6,8,8,8,1,0,120,132,4,120,8,4,132,120,6, - 8,8,8,1,0,140,140,148,148,164,164,196,196,6,12,12, - 8,1,0,72,48,0,0,140,140,148,148,164,164,196,196,6, - 8,8,8,1,0,140,144,160,192,160,144,136,132,6,8,8, - 8,1,0,60,36,36,36,36,68,68,132,6,8,8,8,1, - 0,132,204,204,180,180,132,132,132,6,8,8,8,1,0,132, - 132,132,252,132,132,132,132,6,8,8,8,1,0,120,132,132, - 132,132,132,132,120,6,8,8,8,1,0,252,132,132,132,132, - 132,132,132,6,10,10,8,1,254,184,196,132,132,132,132,196, - 184,128,128,6,8,8,8,1,0,120,132,128,128,128,128,132, - 120,7,8,8,8,1,0,254,16,16,16,16,16,16,16,6, - 10,10,8,1,254,132,132,72,72,48,48,32,32,64,192,7, - 13,13,8,1,254,16,16,16,124,146,146,146,146,146,146,124, - 16,16,6,8,8,8,1,0,132,132,72,48,48,72,132,132, - 7,10,10,8,1,254,132,132,132,132,132,132,132,254,2,2, - 6,8,8,8,1,0,132,132,132,132,252,4,4,4,7,8, - 8,8,1,0,146,146,146,146,146,146,146,254,8,10,10,8, - 0,254,146,146,146,146,146,146,146,255,1,1,7,8,8,8, - 1,0,224,32,32,60,34,34,34,60,6,8,8,8,1,0, - 132,132,132,228,148,148,148,228,6,8,8,8,1,0,128,128, - 128,248,132,132,132,248,6,8,8,8,1,0,112,136,4,124, - 4,4,136,112,6,8,8,8,1,0,152,164,164,228,164,164, - 164,152,6,8,8,8,1,0,124,132,132,132,124,36,68,132, - 6,12,12,8,1,0,96,24,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,0,72,72,0,0,120,132,132,252, - 128,128,132,120,7,13,13,8,0,254,64,240,64,92,98,66, - 66,66,66,66,66,2,12,6,12,12,8,1,0,24,96,0, - 0,252,128,128,128,128,128,128,128,6,8,8,8,1,0,56, - 68,128,248,128,128,68,56,6,8,8,8,1,0,120,132,128, - 96,24,4,132,120,5,11,11,8,2,0,32,32,0,96,32, - 32,32,32,32,32,248,5,11,11,8,2,0,144,144,0,96, - 32,32,32,32,32,32,248,5,13,13,8,1,254,8,8,0, - 24,8,8,8,8,8,8,8,144,96,8,8,8,8,0,0, - 120,72,72,78,73,73,73,142,7,8,8,8,1,0,144,144, - 144,252,146,146,146,156,7,11,11,8,0,0,64,240,64,92, - 98,66,66,66,66,66,66,6,12,12,8,1,0,24,96,0, - 0,140,144,160,192,160,144,136,132,6,12,12,8,1,0,96, - 24,0,0,140,140,148,148,164,164,196,196,6,15,15,8,1, - 254,132,132,120,0,0,132,132,72,72,48,48,32,32,64,192, - 5,10,10,8,2,254,136,136,136,136,136,136,136,248,32,32, - 7,10,10,8,1,0,146,146,146,146,146,146,146,146,180,72, - 7,8,8,8,1,0,68,130,130,146,146,146,146,108,7,10, - 10,8,1,0,32,248,32,32,60,34,34,34,34,60,6,10, - 10,8,1,0,64,64,240,64,64,120,68,68,68,120,7,10, - 10,8,1,0,140,146,160,160,252,160,160,160,146,140,7,8, - 8,8,1,0,140,146,160,252,160,160,146,140,7,10,10,8, - 1,0,16,16,40,40,68,108,84,146,146,146,7,8,8,8, - 1,0,16,40,40,68,108,146,146,146,7,10,10,8,1,0, - 144,144,168,168,164,236,212,146,146,146,7,8,8,8,1,0, - 144,168,168,164,236,146,146,146,7,10,10,8,1,0,124,68, - 68,40,16,56,84,146,146,146,7,8,8,8,1,0,124,68, - 40,16,124,146,146,146,7,10,10,8,1,0,190,162,162,148, - 232,156,170,170,170,170,7,8,8,8,1,0,190,162,148,232, - 156,170,170,170,6,14,14,8,1,254,72,48,120,132,4,4, - 120,8,4,4,4,120,128,128,6,13,13,8,1,254,72,48, - 0,120,132,4,120,8,4,4,120,128,128,7,10,10,8,1, - 0,146,146,146,146,146,124,16,16,16,16,7,8,8,8,1, - 254,146,146,146,146,146,124,16,16,6,10,10,8,1,0,120, - 132,132,132,252,132,132,132,132,120,6,8,8,8,1,0,120, - 132,132,252,132,132,132,120,7,10,10,8,1,0,134,136,136, - 136,80,80,80,32,32,32,6,8,8,8,1,0,140,144,144, - 80,80,80,32,32,7,14,14,8,1,0,204,34,0,0,134, - 136,136,136,80,80,80,32,32,32,7,12,12,8,1,0,204, - 34,0,0,140,144,144,80,80,80,32,32,7,12,12,8,1, - 254,64,160,178,178,178,170,172,168,168,72,16,16,7,10,10, - 8,1,254,82,178,178,170,172,168,168,72,16,16,7,12,12, - 8,1,255,16,124,146,130,130,130,130,130,130,146,124,16,7, - 10,10,8,1,255,16,124,146,130,130,130,130,146,124,16,7, - 14,14,8,1,0,120,134,48,8,16,0,108,130,130,146,146, - 146,146,108,7,11,11,8,1,0,120,134,48,8,16,0,108, - 130,146,146,108,7,13,13,8,1,0,254,16,0,146,146,146, - 146,146,146,146,146,180,72,7,10,10,8,1,0,254,16,0, - 146,146,146,146,146,180,72,6,12,12,8,1,254,120,132,132, - 128,128,128,128,128,120,8,8,8,6,10,10,8,1,254,120, - 132,132,128,128,128,120,8,8,8,7,7,7,8,1,1,36, - 24,136,84,34,48,72,4,3,3,8,1,10,16,240,128,5, - 4,4,8,0,9,16,40,72,128,4,3,3,8,1,10,112, - 128,96,4,3,3,8,2,10,224,16,96,8,3,3,8,0, - 10,48,76,131,14,14,28,16,0,254,1,0,2,128,16,16, - 40,40,0,0,0,0,64,8,160,20,0,0,0,0,0,0, - 16,16,41,40,2,128,14,14,28,16,1,254,1,0,33,8, - 19,16,24,96,0,0,0,0,0,16,224,28,32,0,0,0, - 0,0,25,176,17,16,33,8,7,15,15,8,1,254,72,48, - 0,132,140,140,148,148,164,164,196,196,134,4,8,7,14,14, - 8,1,254,72,48,0,0,140,140,148,148,164,164,196,198,4, - 8,6,10,10,8,1,0,64,224,64,64,64,120,68,68,76, - 120,6,7,7,8,1,0,64,224,64,120,68,68,120,6,10, - 10,8,1,0,248,132,148,136,244,128,128,128,128,128,6,10, - 10,8,1,254,184,196,132,132,132,148,200,180,128,128,6,12, - 12,8,1,0,4,4,252,128,128,128,128,128,128,128,128,128, - 6,10,10,8,1,0,4,4,252,128,128,128,128,128,128,128, - 7,10,10,8,1,0,62,32,32,32,32,248,32,32,32,32, - 7,8,8,8,1,0,62,32,32,32,248,32,32,32,6,11, - 11,8,1,255,252,128,128,128,128,248,132,132,132,132,24,6, - 9,9,8,1,255,252,128,128,128,248,132,132,132,24,7,12, - 12,8,1,254,146,146,84,84,56,56,84,84,146,146,2,2, - 7,10,10,8,1,254,146,146,84,56,56,84,146,146,2,2, - 6,12,12,8,1,254,120,132,4,4,120,8,4,4,132,120, - 16,96,6,10,10,8,1,254,120,132,4,120,8,4,132,120, - 16,96,6,12,12,8,1,254,128,140,144,160,192,192,160,144, - 136,132,4,4,6,10,10,8,1,254,140,144,160,192,160,144, - 136,132,4,4,7,10,10,8,1,0,128,134,168,168,240,168, - 168,168,132,130,7,8,8,8,1,0,134,168,168,240,168,168, - 132,130,7,10,10,8,1,0,64,230,72,80,96,96,80,72, - 68,66,7,8,8,8,1,0,70,232,80,96,80,72,68,66, - 8,10,10,8,0,0,224,35,36,40,48,48,40,36,34,33, - 8,8,8,8,0,0,227,36,40,48,40,36,34,33,7,12, - 12,8,1,254,132,132,132,132,252,132,132,132,132,134,2,2, - 7,10,10,8,1,254,132,132,132,252,132,132,132,134,2,2, - 7,10,10,8,1,0,142,136,136,136,248,136,136,136,136,136, - 7,8,8,8,1,0,142,136,136,248,136,136,136,136,7,12, - 12,8,1,254,240,144,144,144,144,156,146,146,146,146,2,12, - 7,10,10,8,1,254,240,144,144,144,156,146,146,146,2,12, - 6,12,12,8,1,255,64,152,164,164,164,164,164,164,164,88, - 48,12,6,9,9,8,1,255,64,152,164,164,164,164,88,48, - 12,6,12,12,8,1,254,120,132,132,128,128,128,128,132,132, - 120,32,24,6,10,10,8,1,254,120,132,132,128,128,132,132, - 120,32,24,7,12,12,8,1,254,254,16,16,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,254,254,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,0,130,130,68,68,40, - 16,16,16,16,16,5,10,10,8,2,254,136,136,136,80,80, - 32,32,32,32,32,7,10,10,8,1,0,130,130,68,68,40, - 16,16,124,16,16,5,8,8,8,2,0,136,136,136,80,32, - 32,248,32,7,12,12,8,1,254,132,132,72,72,48,48,72, - 72,132,134,2,2,7,10,10,8,1,254,132,132,72,48,48, - 72,132,134,2,2,8,12,12,8,0,254,250,34,34,34,34, - 34,34,34,34,63,1,1,8,10,10,8,0,254,250,34,34, - 34,34,34,34,63,1,1,7,12,12,8,1,254,132,132,132, - 132,132,140,116,4,4,6,2,2,7,10,10,8,1,254,132, - 132,132,132,140,116,4,6,2,2,6,10,10,8,1,0,132, - 132,132,132,164,172,116,36,36,4,6,8,8,8,1,0,132, - 132,132,164,172,116,36,4,6,10,10,8,1,0,128,128,128, - 184,196,132,132,132,132,132,6,8,8,8,1,0,128,128,184, - 196,132,132,132,132,6,10,10,8,1,0,152,164,164,164,124, - 32,32,36,36,24,6,8,8,8,1,0,152,164,164,124,32, - 32,36,24,6,12,12,8,1,254,152,164,164,164,124,32,32, - 36,36,24,16,16,6,12,12,8,1,254,152,164,164,164,124, - 32,32,36,36,24,16,16,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,14,14,8,1,0,130,130,124, - 0,146,146,84,84,56,56,84,84,146,146,7,13,13,8,1, - 0,68,68,56,0,0,146,146,84,56,56,84,146,146,6,12, - 12,8,1,254,128,140,144,160,192,248,132,132,132,132,4,24, - 6,10,10,8,1,254,140,144,160,192,248,132,132,132,4,24, - 7,12,12,8,1,254,60,36,36,36,36,36,36,68,68,134, - 4,8,7,10,10,8,1,254,60,36,36,36,36,68,68,134, - 4,8,6,12,12,8,1,254,132,132,132,132,252,132,132,132, - 132,132,4,24,6,10,10,8,1,254,132,132,132,252,132,132, - 132,132,4,24,7,12,12,8,1,254,132,132,132,132,252,132, - 132,132,132,134,4,8,7,10,10,8,1,254,132,132,132,252, - 132,132,132,134,4,8,6,12,12,8,1,254,132,132,132,132, - 132,140,116,4,4,12,8,8,6,10,10,8,1,254,132,132, - 132,132,140,116,4,12,8,8,7,12,12,8,1,254,132,132, - 204,204,180,180,132,132,132,134,4,8,7,10,10,8,1,254, - 132,204,204,180,180,132,132,134,4,8,3,10,10,8,3,0, - 224,64,64,64,64,64,64,64,64,224,6,14,14,8,1,0, - 132,132,120,0,48,72,72,132,132,252,132,132,132,132,6,13, - 13,8,1,0,132,132,120,0,0,120,132,4,124,132,132,140, - 116,6,14,14,8,1,0,72,72,0,0,48,72,72,132,132, - 252,132,132,132,132,6,12,12,8,1,0,72,72,0,0,120, - 132,4,124,132,132,140,116,7,10,10,8,1,0,62,80,144, - 144,254,144,144,144,144,158,7,8,8,8,1,0,124,146,18, - 126,144,144,146,124,6,14,14,8,1,0,132,132,120,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,132, - 132,120,0,120,132,132,252,128,128,132,120,6,10,10,8,1, - 0,48,72,132,4,4,252,132,132,72,48,6,8,8,8,1, - 0,120,132,4,4,252,132,132,120,6,14,14,8,1,0,72, - 72,0,0,48,72,132,4,4,252,132,132,72,48,6,12,12, - 8,1,0,72,72,0,0,120,132,4,4,252,132,132,120,7, - 14,14,8,1,0,72,72,0,0,146,146,84,84,56,56,84, - 84,146,146,7,12,12,8,1,0,72,72,0,0,146,146,84, - 56,56,84,146,146,6,14,14,8,1,0,72,72,0,0,120, - 132,4,4,120,8,4,4,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,4,120,8,4,132,120,6,10,10,8,1, - 0,252,8,16,32,56,4,4,4,140,120,6,10,10,8,1, - 254,124,8,16,32,56,4,4,4,132,120,6,13,13,8,1, - 0,120,0,0,132,140,140,148,148,164,164,196,196,132,6,11, - 11,8,1,0,120,0,0,140,140,148,148,164,164,196,196,6, - 14,14,8,1,0,72,72,0,0,132,140,140,148,148,164,164, - 196,196,132,6,12,12,8,1,0,72,72,0,0,140,140,148, - 148,164,164,196,196,6,14,14,8,1,0,72,72,0,0,120, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,132,132,132,132,132,120,6,10,10,8,1, - 0,120,132,132,132,252,132,132,132,132,120,6,8,8,8,1, - 0,120,132,132,252,132,132,132,120,6,14,14,8,1,0,72, - 72,0,0,120,132,132,132,252,132,132,132,132,120,6,12,12, - 8,1,0,72,72,0,0,120,132,132,252,132,132,132,120,6, - 12,12,8,1,0,72,0,120,132,4,4,124,4,4,4,132, - 120,6,10,10,8,1,0,72,0,120,132,4,60,4,4,132, - 120,7,13,13,8,1,0,124,0,0,130,130,68,68,40,40, - 16,16,32,96,6,13,13,8,1,254,120,0,0,132,132,72, - 72,48,48,32,32,64,192,7,14,14,8,1,0,72,72,0, - 0,130,130,68,68,40,40,16,16,32,96,6,14,14,8,1, - 254,72,72,0,0,132,132,72,72,48,48,32,32,64,192,7, - 14,14,8,1,0,102,136,0,0,130,130,68,68,40,40,16, - 16,32,96,7,14,14,8,1,254,102,136,0,0,132,132,72, - 72,48,48,32,32,64,192,6,14,14,8,1,0,72,72,0, - 0,132,132,132,132,132,140,116,4,4,4,6,12,12,8,1, - 0,72,72,0,0,132,132,132,132,140,116,4,4,6,12,12, - 8,1,254,252,128,128,128,128,128,128,128,128,224,96,32,6, - 10,10,8,1,254,252,128,128,128,128,128,128,224,96,32,6, - 14,14,8,1,0,72,72,0,0,132,132,132,132,228,148,148, - 148,148,228,6,12,12,8,1,0,72,72,0,0,132,132,132, - 228,148,148,148,228,6,12,12,8,1,254,252,128,128,128,248, - 128,128,128,128,192,64,192,5,10,10,8,1,254,248,128,128, - 240,128,128,128,192,64,192,6,12,12,8,1,254,132,132,72, - 72,48,48,72,72,132,132,4,8,6,10,10,8,1,254,132, - 132,72,48,48,72,132,132,4,8,6,10,10,8,1,0,132, - 132,72,72,48,252,72,72,132,132,6,8,8,8,1,0,132, - 132,72,48,252,72,132,132}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont[5551] U8G_FONT_SECTION("u8g_font_unifont") = { - 0,16,16,0,254,10,6,167,8,149,0,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,147,194,82,50,95,138,82,113, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,165,193, - 36,49,25,137,36,113,37,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,123,165,193,36,121,25,193,36,121,37,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,191,194,72,122,73,194, - 72,121,137,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,122, - 77,194,82,123,83,194,214,122,79,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,49,165,202,40,122,49,202,40,73,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,209,202,16,115, - 209,202,16,115,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,30,57,145,64,30,49,145,8,30,113,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,34,249,162,32,62,33,162,32,34, - 33,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,32,249,160, - 128,32,249,160,128,62,129,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,34,249,162,32,34,33,148,32,8,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,62,249,160,128,62,249,160, - 128,32,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,30, - 241,160,136,32,241,160,144,30,137,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,30,113,160,136,28,137,130,136,60,113,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,30,249,160,32,28, - 33,130,32,60,249,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,29,165,16,37,29,165,16,57,221,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,137,202,24,74,9,202,8,113, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,153,202, - 4,74,9,202,16,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,113,153,202,4,74,25,202,4,113,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,133,202,12,74,21,202, - 28,113,133,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 147,234,84,106,89,219,212,74,83,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,52,83,194,154,49,23,137,18,113,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,123,185,193,36,121, - 57,193,36,121,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,37,196,180,71,173,196,164,52,165,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,62,137,160,216,62,169,160,136,62, - 137,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,58,93,194, - 82,50,93,138,82,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,121,207,194,16,121,145,192,80,123,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,30,113,144,128,30,97,144, - 16,16,225,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,14, - 113,144,128,22,97,146,16,14,225,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,28,113,146,128,28,97,148,16,18,225,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,18,113,146,128,18, - 97,146,16,12,225,128,0,0,1,128,0,0,1,128,0,85, - 85,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,0,0,0, - 8,0,14,1,10,10,8,4,0,128,128,0,128,128,128,128, - 128,128,128,7,10,10,8,1,0,16,16,124,146,144,144,146, - 124,16,16,7,10,10,8,1,0,28,32,32,32,248,32,32, - 32,124,194,6,8,8,8,1,1,132,72,120,72,72,120,72, - 132,7,10,10,8,1,0,130,68,40,16,254,16,254,16,16, - 16,1,10,10,8,4,0,128,128,128,128,0,0,128,128,128, - 128,6,10,10,8,1,0,120,132,128,120,132,132,120,4,132, - 120,4,2,2,8,2,12,144,144,8,10,10,8,0,0,60, - 66,153,165,161,161,165,153,66,60,5,7,7,8,2,5,112, - 8,120,136,120,0,248,6,9,9,8,1,0,36,36,72,72, - 144,72,72,36,36,6,4,4,8,1,0,252,4,4,4,16, - 16,32,16,0,254,170,170,0,1,128,0,58,99,194,84,51, - 201,138,72,114,73,128,0,0,1,128,0,3,193,128,0,0, - 1,128,0,85,85,8,10,10,8,0,0,60,66,185,165,165, - 185,169,165,66,60,6,1,1,8,1,11,252,3,4,4,8, - 2,10,64,160,160,64,7,9,9,8,1,1,16,16,16,254, - 16,16,16,0,254,5,7,7,8,2,5,112,136,8,112,128, - 128,248,5,7,7,8,2,5,112,136,8,112,8,136,112,3, - 3,3,8,3,10,32,64,128,8,10,10,8,0,254,66,66, - 66,66,66,66,102,89,64,128,6,12,12,8,1,255,124,244, - 244,244,244,116,20,20,20,20,20,28,2,2,2,8,3,4, - 192,192,3,2,2,8,2,254,32,192,3,7,7,8,2,5, - 32,96,160,32,32,32,32,5,7,7,8,2,5,112,136,136, - 136,112,0,248,6,9,9,8,1,0,144,144,72,72,36,72, - 72,144,144,6,10,10,8,1,0,68,196,72,80,80,36,44, - 84,156,132,6,10,10,8,1,0,68,196,72,80,80,40,52, - 68,136,156,6,10,10,8,1,0,196,36,72,48,208,36,44, - 84,156,132,6,10,10,8,1,0,16,16,0,16,16,96,132, - 132,132,120,6,14,14,8,1,0,96,24,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 0,48,72,72,132,132,252,132,132,132,132,6,14,14,8,1, - 0,48,72,0,0,48,72,72,132,132,252,132,132,132,132,6, - 14,14,8,1,0,100,152,0,0,48,72,72,132,132,252,132, - 132,132,132,6,14,14,8,1,0,72,72,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,48,72,48, - 0,48,72,72,132,132,252,132,132,132,132,7,10,10,8,1, - 0,62,80,144,144,254,144,144,144,144,158,6,12,12,8,1, - 254,120,132,132,128,128,128,128,132,132,120,16,96,6,14,14, - 8,1,0,96,24,0,0,252,128,128,128,248,128,128,128,128, - 252,6,14,14,8,1,0,24,96,0,0,252,128,128,128,248, - 128,128,128,128,252,6,14,14,8,1,0,48,72,0,0,252, - 128,128,128,248,128,128,128,128,252,6,14,14,8,1,0,72, - 72,0,0,252,128,128,128,248,128,128,128,128,252,5,14,14, - 8,2,0,96,24,0,0,248,32,32,32,32,32,32,32,32, - 248,5,14,14,8,2,0,48,192,0,0,248,32,32,32,32, - 32,32,32,32,248,5,14,14,8,2,0,96,144,0,0,248, - 32,32,32,32,32,32,32,32,248,5,14,14,8,2,0,144, - 144,0,0,248,32,32,32,32,32,32,32,32,248,7,10,10, - 8,0,0,120,68,66,66,242,66,66,66,68,120,6,14,14, - 8,1,0,100,152,0,0,132,196,196,164,164,148,148,140,140, - 132,6,14,14,8,1,0,96,24,0,0,120,132,132,132,132, - 132,132,132,132,120,6,14,14,8,1,0,24,96,0,0,120, - 132,132,132,132,132,132,132,132,120,6,14,14,8,1,0,48, - 72,0,0,120,132,132,132,132,132,132,132,132,120,6,14,14, - 8,1,0,100,152,0,0,120,132,132,132,132,132,132,132,132, - 120,6,14,14,8,1,0,72,72,0,0,120,132,132,132,132, - 132,132,132,132,120,6,5,5,8,1,2,132,72,48,72,132, - 6,12,12,8,1,255,4,116,136,140,148,148,164,164,196,68, - 184,128,6,14,14,8,1,0,96,24,0,0,132,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,24,96,0,0, - 132,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 48,72,0,0,132,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,72,72,0,0,132,132,132,132,132,132,132,132, - 132,120,7,14,14,8,1,0,24,96,0,0,130,130,68,68, - 40,16,16,16,16,16,6,11,11,8,1,0,128,128,240,136, - 132,132,136,240,128,128,128,6,10,10,8,1,0,112,136,136, - 144,176,136,132,132,164,152,6,12,12,8,1,0,96,24,0, - 0,120,132,4,124,132,132,140,116,6,12,12,8,1,0,24, - 96,0,0,120,132,4,124,132,132,140,116,6,12,12,8,1, - 0,48,72,0,0,120,132,4,124,132,132,140,116,6,12,12, - 8,1,0,100,152,0,0,120,132,4,124,132,132,140,116,6, - 12,12,8,1,0,72,72,0,0,120,132,4,124,132,132,140, - 116,6,13,13,8,1,0,48,72,48,0,0,120,132,4,124, - 132,132,140,116,7,8,8,8,1,0,124,146,18,126,144,144, - 146,124,6,10,10,8,1,254,120,132,128,128,128,128,132,120, - 16,96,6,12,12,8,1,0,96,24,0,0,120,132,132,252, - 128,128,132,120,6,12,12,8,1,0,24,96,0,0,120,132, - 132,252,128,128,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,132,252,128,128,132,120,6,12,12,8,1,0,72,72, - 0,0,120,132,132,252,128,128,132,120,5,12,12,8,2,0, - 192,48,0,0,96,32,32,32,32,32,32,248,5,12,12,8, - 2,0,48,192,0,0,96,32,32,32,32,32,32,248,5,12, - 12,8,2,0,96,144,0,0,96,32,32,32,32,32,32,248, - 5,12,12,8,2,0,144,144,0,0,96,32,32,32,32,32, - 32,248,6,12,12,8,1,0,100,24,40,68,4,124,132,132, - 132,132,132,120,6,12,12,8,1,0,100,152,0,0,184,196, - 132,132,132,132,132,132,6,12,12,8,1,0,96,24,0,0, - 120,132,132,132,132,132,132,120,6,12,12,8,1,0,24,96, - 0,0,120,132,132,132,132,132,132,120,6,12,12,8,1,0, - 48,72,0,0,120,132,132,132,132,132,132,120,6,12,12,8, - 1,0,100,152,0,0,120,132,132,132,132,132,132,120,6,12, - 12,8,1,0,72,72,0,0,120,132,132,132,132,132,132,120, - 6,7,7,8,1,1,48,0,0,252,0,0,48,6,10,10, - 8,1,255,4,120,140,148,148,164,164,196,120,128,6,12,12, - 8,1,0,96,24,0,0,132,132,132,132,132,132,140,116,6, - 12,12,8,1,0,24,96,0,0,132,132,132,132,132,132,140, - 116,6,12,12,8,1,0,48,72,0,0,132,132,132,132,132, - 132,140,116,6,12,12,8,1,0,72,72,0,0,132,132,132, - 132,132,132,140,116,6,14,14,8,1,254,24,96,0,0,132, - 132,132,132,132,76,52,4,4,120,5,12,12,8,2,254,128, - 128,240,136,136,136,144,160,192,128,128,128,6,14,14,8,1, - 254,72,72,0,0,132,132,132,132,132,76,52,4,4,120}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=14 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifontr[1485] U8G_FONT_SECTION("u8g_font_unifontr") = { - 0,16,16,0,254,10,1,231,3,213,32,127,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85}; diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c deleted file mode 100644 index 30b3097234..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_line.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_line.h - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - -#include "u8g.h" - -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) -{ - u8g_uint_t tmp; - u8g_uint_t x,y; - u8g_uint_t dx, dy; - u8g_int_t err; - u8g_int_t ystep; - - uint8_t swapxy = 0; - - /* no BBX intersection check at the moment, should be added... */ - - if ( x1 > x2 ) dx = x1-x2; else dx = x2-x1; - if ( y1 > y2 ) dy = y1-y2; else dy = y2-y1; - - if ( dy > dx ) - { - swapxy = 1; - tmp = dx; dx =dy; dy = tmp; - tmp = x1; x1 =y1; y1 = tmp; - tmp = x2; x2 =y2; y2 = tmp; - } - if ( x1 > x2 ) - { - tmp = x1; x1 =x2; x2 = tmp; - tmp = y1; y1 =y2; y2 = tmp; - } - err = dx >> 1; - if ( y2 > y1 ) ystep = 1; else ystep = -1; - y = y1; - for( x = x1; x <= x2; x++ ) - { - if ( swapxy == 0 ) - u8g_DrawPixel(u8g, x, y); - else - u8g_DrawPixel(u8g, y, x); - err -= (uint8_t)dy; - if ( err < 0 ) - { - y += (u8g_uint_t)ystep; - err += (u8g_uint_t)dx; - } - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c deleted file mode 100644 index 856d77437d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_ll_api.c +++ /dev/null @@ -1,573 +0,0 @@ -/* - - u8g_ll_api.c - - low level api - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include -#include "u8g.h" - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - return dev->dev_fn(u8g, dev, msg, arg); -} - -/*====================================================================*/ - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL); - u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); -} - -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL); - if ( r != 0 ) - { - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - } - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast); -} - -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg); -} - -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg); -} - -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_4TPIXEL, arg); -} - - -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg); -} -#endif - - - -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r); - return r; -} - -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r); - return r; -} - -u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL); -} - - - -/*====================================================================*/ - -void u8g_UpdateDimension(u8g_t *u8g) -{ - u8g->width = u8g_GetWidthLL(u8g, u8g->dev); - u8g->height = u8g_GetHeightLL(u8g, u8g->dev); - u8g->mode = u8g_GetModeLL(u8g, u8g->dev); - /* 9 Dec 2012: u8g_scale.c requires update of current page */ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); -} - -static void u8g_init_data(u8g_t *u8g) -{ - u8g->font = NULL; - u8g->cursor_font = NULL; - u8g->cursor_bg_color = 0; - u8g->cursor_fg_color = 1; - u8g->cursor_encoding = 34; - u8g->cursor_fn = (u8g_draw_cursor_fn)0; - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_NONE; - } -#endif - - u8g_SetColorIndex(u8g, 1); - - u8g_SetFontPosBaseline(u8g); - - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g->font_ref_ascent = 0; - u8g->font_ref_descent = 0; - u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */ - u8g->line_spacing = 0; - - u8g->state_cb = u8g_state_dummy_cb; - -} - -uint8_t u8g_Begin(u8g_t *u8g) -{ - /* call and init low level driver and com device */ - if ( u8g_InitLL(u8g, u8g->dev) == 0 ) - return 0; - /* fetch width and height from the low level */ - u8g_UpdateDimension(u8g); - return 1; -} - -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_init_data(u8g); - u8g->dev = dev; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -/* special init for pure ARM systems */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn) -{ - u8g_init_data(u8g); - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_DUMMY; - } -#endif - - u8g->dev = dev; - - /* replace the device procedure with a custom communication procedure */ - u8g->dev->com_fn = com_fn; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - - -#if defined(U8G_WITH_PINLIST) -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - - /* assign user pins */ - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - u8g->pin_list[U8G_PI_I2C_OPTION] = options; - - return u8g_Begin(u8g); -} - - -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS1] = cs1; - u8g->pin_list[U8G_PI_CS2] = cs2; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -/* - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - -*/ - -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_WR] = wr; - u8g->pin_list[U8G_PI_RD] = rd; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} -#endif /* defined(U8G_WITH_PINLIST) */ - -void u8g_FirstPage(u8g_t *u8g) -{ - u8g_FirstPageLL(u8g, u8g->dev); -} - -uint8_t u8g_NextPage(u8g_t *u8g) -{ - if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) - { - u8g->cursor_fn(u8g); - } - return u8g_NextPageLL(u8g, u8g->dev); -} - -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast) -{ - return u8g_SetContrastLL(u8g, u8g->dev, contrast); -} - -void u8g_SleepOn(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL); -} - -void u8g_SleepOff(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL); -} - - -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y) -{ - u8g_DrawPixelLL(u8g, u8g->dev, x, y); -} - -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw4TPixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - - -/* u8g_IsBBXIntersection() has been moved to u8g_clip.c */ -#ifdef OBSOLETE_CODE -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - /* new code */ - u8g_dev_arg_bbx_t arg; - arg.x = x; - arg.y = y; - arg.w = w; - arg.h = h; - return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg); - - /* old code */ - //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h); -} -#endif - -/* - idx: index for the palette entry (0..255) - r: value for red (0..255) - g: value for green (0..255) - b: value for blue (0..255) -*/ -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b) -{ - u8g_dev_arg_irgb_t irgb; - irgb.idx = idx; - irgb.r = r; - irgb.g = g; - irgb.b = b; - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_COLOR_ENTRY, &irgb); -} - -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx) -{ - u8g->arg_pixel.color = idx; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb) -{ - u8g->arg_pixel.color = rgb&255; - u8g->arg_pixel.hi_color = rgb>>8; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - - r &= ~7; - g >>= 2; - b >>= 3; - u8g->arg_pixel.color = b; - u8g->arg_pixel.color |= (g & 7) << 5; - u8g->arg_pixel.hi_color = r; - u8g->arg_pixel.hi_color |= (g>>3) & 7; - - //u8g_SetHiColor(u8g, U8G_GET_HICOLOR_BY_RGB(r,g,b)); -} - -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - if ( u8g->mode == U8G_MODE_R3G3B2 ) - { - r &= 0x0e0; - g &= 0x0e0; - g >>= 3; - b >>= 6; - u8g->arg_pixel.color = r | g | b; - } - else if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g_SetHiColorByRGB(u8g, r,g,b); - } - else - { - u8g->arg_pixel.color = r; - u8g->arg_pixel.hi_color = g; - u8g->arg_pixel.blue = b; - } -} - - -uint8_t u8g_GetColorIndex(u8g_t *u8g) -{ - return u8g->arg_pixel.color; -} - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 255; /* white */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 3; /* max intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; -} - -void u8g_SetDefaultForegroundColor(u8g_t *u8g) -{ - if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g->arg_pixel.color = 0x0ff; - u8g->arg_pixel.hi_color = 0x0ff; - } - else - { - u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g)); - } -} - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetDefaultBackgroundColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */ -} - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 0x06d; /* gray: 01101101 */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 1; /* low mid intensity */ - else /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ - return 1; /* default */ -} - -void u8g_SetDefaultMidColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g)); -} - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c deleted file mode 100644 index 1a3eb21ed5..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_page.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_page.c - - page helper functions, only called by the dev handler. - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -/* - setup page count structure - conditions: page_height <= total_height -*/ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) -{ - p->page_height = page_height; - p->total_height = total_height; - p->page = 0; - u8g_page_First(p); -} - -void u8g_page_First(u8g_page_t *p) -{ - p->page_y0 = 0; - p->page_y1 = p->page_height; - p->page_y1--; - p->page = 0; -} - -uint8_t u8g_page_Next(u8g_page_t * p) -{ - register u8g_uint_t y1; - p->page_y0 += p->page_height; - if ( p->page_y0 >= p->total_height ) - return 0; - p->page++; - y1 = p->page_y1; - y1 += p->page_height; - if ( y1 >= p->total_height ) - { - y1 = p->total_height; - y1--; - } - p->page_y1 = y1; - - return 1; -} - - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c deleted file mode 100644 index a946473611..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_pb.c - - common procedures for the page buffer - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* the following procedure does not work. why? Can be checked with descpic */ -/* -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t cnt = b->width; - do - { - *ptr++ = 0; - cnt--; - } while( cnt != 0 ); -} -*/ - -/* - intersection assumptions: - a1 <= a2 is always true -*/ - /* - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ -/* -uint8_t u8g_pb8v1_IsYIntersection___Old(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c0, c1, c; - c0 = v0 <= b->p.page_y1; - c1 = v1 >= b->p.page_y0; - c = v0 > v1; - if ( c0 && c1 ) return 1; - if ( c0 && c ) return 1; - if ( c1 && c ) return 1; - return 0; -} -*/ - -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= pb->p.page_y1; - c2 = v1 >= pb->p.page_y0; - c3 = v0 > v1; - /* - if ( c1 && c2 ) - return 1; - if ( c1 && c3 ) - return 1; - if ( c2 && c3 ) - return 1; - return 0; - */ - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} - - -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t /*c0, c1, */ c2, c3; - /* - conditions: b->p.page_y0 < b->p.page_y1 - there are no restriction on v0 and v1. If v0 > v1, then warp around unsigned is assumed - */ - /* - c0 = v0 < 0; - c1 = v1 < 0; - */ - c2 = v0 > b->width; - c3 = v1 > b->width; - /*if ( c0 && c1 ) return 0;*/ - if ( c2 && c3 ) return 0; - /*if ( c1 && c2 ) return 0;*/ - return 1; -} - -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx) -{ - u8g_uint_t tmp; - - tmp = bbx->y; - tmp += bbx->h; - tmp--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, tmp) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - tmp = bbx->x; - tmp += bbx->w; - tmp--; - - return u8g_pb_IsXIntersection(pb, bbx->x, tmp); -} - -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box) -{ - box->x0 = 0; - box->y0 = pb->p.page_y0; - box->x1 = pb->width; - box->x1--; - box->y1 = pb->p.page_y1; -} - - -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - u8g_uint_t v0, v1; - v0 = arg_pixel->y; - v1 = v0; - switch( arg_pixel->dir ) - { - case 0: - break; - case 1: - v1 += 8; /* this is independent from the page height */ - break; - case 2: - break; - case 3: - v0 -= 8; - break; - } - return u8g_pb_IsYIntersection(b, v0, v1); -} - - - -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_WriteSequence(u8g, dev, b->width, b->buf); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c deleted file mode 100644 index d8667f35a9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb14v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb14v1.c - - 14bit height monochrom (1 bit) page buffer, - byte has vertical orientation, 7 bits per byte - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb14v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb14v1_Clear(b); -} - -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 7 ) - { - ptr += b->width; - y -= 7; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb14v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb14v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb14v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb14v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb14v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb14v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb14v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb14v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c deleted file mode 100644 index d598633fa2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - - u8g_pb16h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb16h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c deleted file mode 100644 index 2d0523cf81..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16h2.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb16h2.c - - 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb16h2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h2_Clear(b); -} - -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) U8G_NOINLINE; -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - if ( is_or == 0 ) - { - mask = 3; - mask <<= tmp; - mask = ~mask; - *ptr &= mask; - } - color_index &= 3; - color_index <<= tmp; - *ptr |= color_index; -} - - -void u8g_pb16h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t is_or) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, is_or); -} - - -void u8g_pb16h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h2_SetPixel(b, arg_pixel, 0); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h2_Or4PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - arg_pixel->color = pixel & 0x0c0; - arg_pixel->color >>= 6; - u8g_pb16h2_SetPixel(b, arg_pixel, 1); - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 0); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pb16h2_Or4PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 1); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_page_First(&(pb->p)); - u8g_pb16h2_Clear(pb); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c deleted file mode 100644 index 3716411c11..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb16v1.c - - 16bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb16v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v1_Clear(b); -} - -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb16v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c deleted file mode 100644 index 94ef7e28ac..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb16v2.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - - u8g_pb16v2.c - - 16 bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16v2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16v2Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v2_Clear(b); -} - -void u8g_pb16v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - if ( y >= 4 ) - { - ptr += b->width; - } - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb16v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb16v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v2_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c deleted file mode 100644 index d40f7ce571..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb32h1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb32h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb32h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*4; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb32h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint16_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb32h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb32h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb32h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb32h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb32h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb32h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb32h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb32h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c deleted file mode 100644 index 80dc99b589..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - - u8g_pb8h1.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - 23. Sep 2012: Bug with down procedure, see FPS 1st page --> fixed (bug located in u8g_clip.c) - -*/ - -#include "u8g.h" -#include - -#ifdef __unix__ -#include -#endif - -/* NEW_CODE disabled, because the performance increase was too slow and not worth compared */ -/* to the increase of code size */ -/* #define NEW_CODE */ - -#ifdef __unix__ -void *u8g_buf_lower_limit; -void *u8g_buf_upper_limit; -#endif - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -#ifdef NEW_CODE -struct u8g_pb_h1_struct -{ - u8g_uint_t x; - u8g_uint_t y; - uint8_t *ptr; - uint8_t mask; - uint8_t line_byte_len; - uint8_t cnt; -}; - -static uint8_t u8g_pb8h1_bitmask[8] = { 0x080, 0x040, 0x020, 0x010, 0x008, 0x004, 0x002, 0x001 }; - -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) U8G_NOINLINE; -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x++; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 0 ) - s->ptr++; -} - -static void u8g_pb8h1_state_left(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x--; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 7 ) - s->ptr--; -} - -static void u8g_pb8h1_state_down(struct u8g_pb_h1_struct *s) -{ - s->y++; - s->ptr += s->line_byte_len; -} - -static void u8g_pb8h1_state_up(struct u8g_pb_h1_struct *s) -{ - s->y--; - s->ptr -= s->line_byte_len; -} - -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) U8G_NOINLINE; -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) -{ - u8g_uint_t tmp; - - uint8_t *ptr = b->buf; - - s->x = x; - s->y = y; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 3; - s->line_byte_len = tmp; - - /* assume negative y values, can be down to -7, subtract this from the pointer and add correction of 8 to y */ - ptr -= tmp*8; - y+=8; - /* it is important that the result of tmp*y can be 16 bit value also for 8 bit mode */ - ptr += tmp*y; - - s->mask = u8g_pb8h1_bitmask[x & 7]; - - /* assume negative x values (to -7), subtract 8 pixel from the pointer and add 8 to x */ - ptr--; - x += 8; - x >>= 3; - ptr += x; - s->ptr = ptr; -} - -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) -{ - -#ifdef __unix__ - assert( s->ptr >= u8g_buf_lower_limit ); - assert( s->ptr < u8g_buf_upper_limit ); -#endif - - if ( color_index ) - { - *s->ptr |= s->mask; - } - else - { - uint8_t mask = s->mask; - mask ^=0xff; - *s->ptr &= mask; - } -} -#endif - - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes */ -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ -#ifdef NEW_CODE - struct u8g_pb_h1_struct s; - u8g_pb8h1_state_init(&s, b, x, y); - u8g_pb8h1_state_set_pixel(&s, color_index); - -// u8g_pb8h1_state_up(&s); -// if ( s.y > b->p.page_y1 ) -// return; -// if ( s.x > b->width ) -// return; -// u8g_pb8h1_state_set_pixel(&s, color_index); -#else - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -#endif -} - - -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -#ifdef NEW_CODE -static void u8g_pb8h1_Set8PixelState(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - struct u8g_pb_h1_struct s; - uint8_t cnt; - u8g_pb8h1_state_init(&s, b, arg_pixel->x, arg_pixel->y); - cnt = 8; - switch( arg_pixel->dir ) - { - case 0: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_right(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 1: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_down(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 2: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_left(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 3: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_up(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - } -} -#endif - -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: -#ifdef NEW_CODE - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelState(pb, (u8g_dev_arg_pixel_t *)arg); -#else - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); -#endif - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c deleted file mode 100644 index c7be1fe10b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h1f.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_pb8h1f.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation, same as u8g_pb8h1, but byte is flipped - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes, 20 nov 2012: extended to >256 bytes */ -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - /*register uint8_t mask, tmp;*/ - register uint8_t mask; - register u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width >> 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 1; - mask <<= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1f_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1f_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1f_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1f_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1f_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1f_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c deleted file mode 100644 index aad6e42757..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h2.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - - u8g_pb8h2.c - - 8bit height 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - mask = 3; - mask <<= tmp; - mask = ~mask; - color_index &= 3; - color_index <<= tmp; - - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c deleted file mode 100644 index 49dbb86169..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8h8.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - - u8g_pb8h8.c - - 8 lines per page, horizontal, 8 bits per pixel - (22 May 2013: might also support any number of lines --> needs to be checked) - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_8h8_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_8h8_buff}; -u8g_dev_t name = { dev_fn, &u8g_index_color_8h8_pb, com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - end_ptr += b->width*cnt; - /* - do - { - end_ptr += b->width; - cnt--; - } while( cnt > 0 ); - */ - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb8h8_Clear(b); -} - -static void u8g_pb8h8_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - ptr += tmp; - *ptr = color_index; -} - -void u8g_pb8h8_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h8_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h8_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h8_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb8h8_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb8h8_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c deleted file mode 100644 index 28ac4e0ea2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v1.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pb8v1.c - - 8bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - mask = 1; - y &= 0x07; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb8v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c deleted file mode 100644 index c8e8926b13..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pb8v2.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - - u8g_pb8v2.c - - 8bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" -#include - -void u8g_pb8v2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); - -} - - - -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh16.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh16.c deleted file mode 100644 index 9e3455346e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh16.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pbxh16.c - - x lines per page, horizontal, 16 bits per pixel (hi color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*2; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh16_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh16_Clear(b); -} - -static void u8g_pbxh16_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t low, uint8_t high) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp <<= 1; - ptr += tmp; - *ptr = low; - ptr++; - *ptr = high; -} - -void u8g_pbxh16_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh16_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color); -} - - -void u8g_pbxh16_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh16_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh16_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh16_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh16_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh16_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh24.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh24.c deleted file mode 100644 index 61ed011a1f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_pbxh24.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - - u8g_pbxh24.c - - x lines per page, horizontal, 24 bits per pixel (true color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*3; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh24_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh24_Clear(b); -} - -#ifdef OBSOLETE -static void u8g_pbxh24_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t r, uint8_t g, uint8_t b) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - *ptr = r; - ptr++; - *ptr = g; - ptr++; - *ptr = b; -} -#endif - -/* - intensity - 0..3 intensity value - 4 replace color -*/ -static void u8g_pbxh24_set_tpixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t red, uint8_t green, uint8_t blue, uint8_t intensity) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - - if ( intensity == 0 ) - return; - - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - - if ( intensity == 4 ) - { - *ptr = red; - ptr++; - *ptr = green; - ptr++; - *ptr = blue; - return; - } - - if ( intensity == 2 ) - { - /* - red = red/4 + red/2; - green = green/4 + green/2; - blue = blue/4 + blue/2; - */ - red >>= 1; - green >>= 1; - blue >>= 1; - } - else if ( intensity == 1 ) - { - red >>= 2; - green >>= 2; - blue >>= 2; - } - - if ( *ptr >= 255-red ) *ptr = 255; - else *ptr += red; - ptr++; - - if ( *ptr >= 255-green ) *ptr = 255; - else *ptr += green; - ptr++; - - if ( *ptr >= 255-blue ) *ptr = 255; - else *ptr += blue; - - /* - if ( *ptr < red ) *ptr = red; - ptr++; - if ( *ptr < green ) *ptr = green; - ptr++; - if ( *ptr < blue ) *ptr = blue; - */ - - -} - -void u8g_pbxh24_SetTPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t intensity) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh24_set_tpixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color, arg_pixel->blue, intensity); -} - - -void u8g_pbxh24_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh24_SetTPixel(b, arg_pixel, 4); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pbxh24_Set4TPixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - u8g_pbxh24_SetTPixel(b, arg_pixel, pixel >> 6); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh24_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, 4); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pbxh24_Set4TPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, ((u8g_dev_arg_pixel_t *)arg)->pixel&3); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh24_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh24_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_TRUECOLOR; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_polygon.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_polygon.c deleted file mode 100644 index f7e9b65965..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_polygon.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - - u8g_polygon.c - - Implementation of a polygon draw algorithm for "convex" polygons. - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - See also: - http://www.angelfire.com/linux/myp/ConvexPolRas/ConvexPolRas.html - Computer Graphics, Principles and Practice, Foley, van Dam, Feiner, Hughes (pp 92) - Michael Abrash's Graphics Programming Black Book, Special Edition (Chapter 38 and 39) - - Optimized for embedded systems - - static memory usage only - - consistent data types - - low flash ROM consumption - -*/ - - -#include "u8g.h" - - - - -/*===========================================*/ -/* procedures, which should not be inlined (save as much flash ROM as possible */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) PG_NOINLINE; -static uint8_t pg_inc(pg_struct *pg, uint8_t i) PG_NOINLINE; -static uint8_t pg_dec(pg_struct *pg, uint8_t i) PG_NOINLINE; -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) PG_NOINLINE; -static void pg_line_init(pg_struct * const pg, uint8_t pge_index) PG_NOINLINE; - -/*===========================================*/ -/* line draw algorithm */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) -{ - if ( pge->current_y >= pge->max_y ) - return 0; - - pge->current_x += pge->current_x_offset; - pge->error += pge->error_offset; - if ( pge->error > 0 ) - { - pge->current_x += pge->x_direction; - pge->error -= pge->height; - } - - pge->current_y++; - return 1; -} - -/* assumes y2 > y1 */ -static void pge_Init(struct pg_edge_struct *pge, pg_word_t x1, pg_word_t y1, pg_word_t x2, pg_word_t y2) -{ - pg_word_t dx = x2 - x1; - pg_word_t width; - - pge->height = y2 - y1; - pge->max_y = y2; - pge->current_y = y1; - pge->current_x = x1; - - if ( dx >= 0 ) - { - pge->x_direction = 1; - width = dx; - pge->error = 0; - } - else - { - pge->x_direction = -1; - width = -dx; - pge->error = 1 - pge->height; - } - - pge->current_x_offset = dx / pge->height; - pge->error_offset = width % pge->height; -} - -/*===========================================*/ -/* convex polygon algorithm */ - -static uint8_t pg_inc(pg_struct *pg, uint8_t i) -{ - i++; - if ( i >= pg->cnt ) - i = 0; - return i; -} - -static uint8_t pg_dec(pg_struct *pg, uint8_t i) -{ - i--; - if ( i >= pg->cnt ) - i = pg->cnt-1; - return i; -} - -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) -{ - uint8_t i = pg->pge[pge_idx].curr_idx; - for(;;) - { - i = pg->pge[pge_idx].next_idx_fn(pg, i); - if ( pg->list[i].y != min_y ) - break; - pg->pge[pge_idx].curr_idx = i; - } -} - -static uint8_t pg_prepare(pg_struct *pg) -{ - pg_word_t max_y; - pg_word_t min_y; - uint8_t i; - - /* setup the next index procedures */ - pg->pge[PG_RIGHT].next_idx_fn = pg_inc; - pg->pge[PG_LEFT].next_idx_fn = pg_dec; - - /* search for highest and lowest point */ - max_y = pg->list[0].y; - min_y = pg->list[0].y; - pg->pge[PG_LEFT].curr_idx = 0; - for( i = 1; i < pg->cnt; i++ ) - { - if ( max_y < pg->list[i].y ) - { - max_y = pg->list[i].y; - } - if ( min_y > pg->list[i].y ) - { - pg->pge[PG_LEFT].curr_idx = i; - min_y = pg->list[i].y; - } - } - - /* calculate total number of scan lines */ - pg->total_scan_line_cnt = max_y; - pg->total_scan_line_cnt -= min_y; - - /* exit if polygon height is zero */ - if ( pg->total_scan_line_cnt == 0 ) - return 0; - - /* if the minimum y side is flat, try to find the lowest and highest x points */ - pg->pge[PG_RIGHT].curr_idx = pg->pge[PG_LEFT].curr_idx; - pg_expand_min_y(pg, min_y, PG_RIGHT); - pg_expand_min_y(pg, min_y, PG_LEFT); - - /* check if the min side is really flat (depends on the x values) */ - pg->is_min_y_not_flat = 1; - if ( pg->list[pg->pge[PG_LEFT].curr_idx].x != pg->list[pg->pge[PG_RIGHT].curr_idx].x ) - { - pg->is_min_y_not_flat = 0; - } - else - { - pg->total_scan_line_cnt--; - if ( pg->total_scan_line_cnt == 0 ) - return 0; - } - - return 1; -} - -static void pg_hline(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t x1, x2, y; - x1 = pg->pge[PG_LEFT].current_x; - x2 = pg->pge[PG_RIGHT].current_x; - y = pg->pge[PG_RIGHT].current_y; - - if ( y < 0 ) - return; - if ( y >= u8g_GetHeight(u8g) ) - return; - if ( x1 < x2 ) - { - if ( x2 < 0 ) - return; - if ( x1 >= u8g_GetWidth(u8g) ) - return; - if ( x1 < 0 ) - x1 = 0; - if ( x2 >= u8g_GetWidth(u8g) ) - x2 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x1, y, x2 - x1); - } - else - { - if ( x1 < 0 ) - return; - if ( x2 >= u8g_GetWidth(u8g) ) - return; - if ( x2 < 0 ) - x1 = 0; - if ( x1 >= u8g_GetWidth(u8g) ) - x1 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x2, y, x1 - x2); - } -} - -static void pg_line_init(pg_struct * pg, uint8_t pge_index) -{ - struct pg_edge_struct *pge = pg->pge+pge_index; - uint8_t idx; - pg_word_t x1; - pg_word_t y1; - pg_word_t x2; - pg_word_t y2; - - idx = pge->curr_idx; - y1 = pg->list[idx].y; - x1 = pg->list[idx].x; - idx = pge->next_idx_fn(pg, idx); - y2 = pg->list[idx].y; - x2 = pg->list[idx].x; - pge->curr_idx = idx; - - pge_Init(pge, x1, y1, x2, y2); -} - -static void pg_exec(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t i = pg->total_scan_line_cnt; - - /* first line is skipped if the min y line is not flat */ - pg_line_init(pg, PG_LEFT); - pg_line_init(pg, PG_RIGHT); - - if ( pg->is_min_y_not_flat != 0 ) - { - pge_Next(&(pg->pge[PG_LEFT])); - pge_Next(&(pg->pge[PG_RIGHT])); - } - - do - { - pg_hline(pg, u8g); - while ( pge_Next(&(pg->pge[PG_LEFT])) == 0 ) - { - pg_line_init(pg, PG_LEFT); - } - while ( pge_Next(&(pg->pge[PG_RIGHT])) == 0 ) - { - pg_line_init(pg, PG_RIGHT); - } - i--; - } while( i > 0 ); -} - -/*===========================================*/ -/* API procedures */ - -void pg_ClearPolygonXY(pg_struct *pg) -{ - pg->cnt = 0; -} - -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y) -{ - if ( pg->cnt < PG_MAX_POINTS ) - { - pg->list[pg->cnt].x = x; - pg->list[pg->cnt].y = y; - pg->cnt++; - } -} - -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g) -{ - if ( pg_prepare(pg) == 0 ) - return; - pg_exec(pg, u8g); -} - -pg_struct u8g_pg; - -void u8g_ClearPolygonXY(void) -{ - pg_ClearPolygonXY(&u8g_pg); -} - -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y) -{ - pg_AddPolygonXY(&u8g_pg, u8g, x, y); -} - -void u8g_DrawPolygon(u8g_t *u8g) -{ - pg_DrawPolygon(&u8g_pg, u8g); -} - -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2) -{ - u8g_ClearPolygonXY(); - u8g_AddPolygonXY(u8g, x0, y0); - u8g_AddPolygonXY(u8g, x1, y1); - u8g_AddPolygonXY(u8g, x2, y2); - u8g_DrawPolygon(u8g); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c deleted file mode 100644 index 139a43a24a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rect.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_rect.c - - U8G high level interface for horizontal and vertical things - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -void u8g_draw_hline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - uint8_t pixel = 0x0ff; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - w-=8; - x+=8; - } - if ( w != 0 ) - { - w ^=7; - w++; - pixel <<= w&7; - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - } -} - -void u8g_draw_vline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) -{ - uint8_t pixel = 0x0ff; - while( h >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - h-=8; - y+=8; - } - if ( h != 0 ) - { - h ^=7; - h++; - pixel <<= h&7; - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - } -} - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, 1) == 0 ) - return; - u8g_draw_hline(u8g, x, y, w); -} - -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, 1, w) == 0 ) - return; - u8g_draw_vline(u8g, x, y, w); -} - -/* restrictions: w > 0 && h > 0 */ -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - u8g_uint_t xtmp = x; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - - u8g_draw_hline(u8g, x, y, w); - u8g_draw_vline(u8g, x, y, h); - x+=w; - x--; - u8g_draw_vline(u8g, x, y, h); - y+=h; - y--; - u8g_draw_hline(u8g, xtmp, y, w); -} - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - do - { - u8g_draw_hline(u8g, x, y, w); - y++; - h--; - } while( h != 0 ); -} - -/* restrictions: h > 0 */ -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - u8g_draw_box(u8g, x, y, w, h); -} - - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - { - u8g_uint_t yl, xr; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_circle(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_circle(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_circle(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_circle(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - } - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - w--; - u8g_draw_hline(u8g, xl, y, ww); - u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_vline(u8g, x, yu, hh); - u8g_draw_vline(u8g, x+w, yu, hh); - } -} - -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - u8g_uint_t yl, xr; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_disc(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_disc(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_disc(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_disc(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - u8g_draw_box(u8g, xl, y, ww, r+1); - u8g_draw_box(u8g, xl, yl, ww, r+1); - //u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_box(u8g, x, yu, w, hh); - //u8g_draw_vline(u8g, x+w, yu, hh); - } -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c deleted file mode 100644 index 3791675b6a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_rot.c +++ /dev/null @@ -1,409 +0,0 @@ -/* - - u8g_rot.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_dev_rot_dummy_fn(void *u8g, void *dev, uint8_t msg, void *arg) -{ - return 0; -} - -u8g_dev_t u8g_dev_rot = { u8g_dev_rot_dummy_fn, NULL, NULL }; - - -void u8g_UndoRotation(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - return; - u8g->dev = u8g_dev_rot.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot90(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot90_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot180(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot180_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot270(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot270_fn; - u8g_UpdateDimension(u8g); -} - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - y = bbx->x; - x = u8g->height; - /* x = u8g_GetWidthLL(u8g, rotation_chain); */ - x -= bbx->y; - x--; - - /* adjust point to be the uppler left corner again */ - x -= bbx->h; - x++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - //new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - //new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - - new_box.x0 = ((u8g_box_t *)arg)->y0; - new_box.x1 = ((u8g_box_t *)arg)->y1; - new_box.y0 = ((u8g_box_t *)arg)->x0; - new_box.y1 = ((u8g_box_t *)arg)->x1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - //uint16_t x,y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=1; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y; - - /* transform the reference point */ - //y = u8g_GetHeightLL(u8g, rotation_chain); - y = u8g->height; - y -= bbx->y; - y--; - - //x = u8g_GetWidthLL(u8g, rotation_chain); - x = u8g->width; - x -= bbx->x; - x--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->h; - y++; - - x -= bbx->w; - x++; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.x1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - new_box.y0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.y1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=2; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - x = bbx->y; - - y = u8g->width; - /* y = u8g_GetHeightLL(u8g, rotation_chain); */ - y -= bbx->x; - y--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->w; - y++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - new_box.y0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.y1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=3; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c deleted file mode 100644 index e5b4b634fb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_scale.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_scale.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Scale screen by some constant factors. Usefull for making bigger fonts wiht less - memory consumption - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -u8g_dev_t u8g_dev_scale = { u8g_dev_scale_2x2_fn, NULL, NULL }; - -void u8g_UndoScale(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - return; - u8g->dev = u8g_dev_scale.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetScale2x2(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - { - u8g_dev_scale.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_scale; - } - u8g_dev_scale.dev_fn = u8g_dev_scale_2x2_fn; - u8g_UpdateDimension(u8g); -} - - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *chain = (u8g_dev_t *)(dev->dev_mem); - uint8_t pixel; - uint16_t scaled_pixel; - uint8_t i; - uint8_t dir; - u8g_uint_t x, y, xx,yy; - - switch(msg) - { - default: - return u8g_call_dev_fn(u8g, chain, msg, arg); - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, chain, msg, arg); - ((u8g_box_t *)arg)->x0 /= 2; - ((u8g_box_t *)arg)->x1 /= 2; - ((u8g_box_t *)arg)->y0 /= 2; - ((u8g_box_t *)arg)->y1 /= 2; - return 1; - case U8G_DEV_MSG_SET_PIXEL: - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - y++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - pixel = ((u8g_dev_arg_pixel_t *)arg)->pixel; - dir = ((u8g_dev_arg_pixel_t *)arg)->dir; - scaled_pixel = 0; - for( i = 0; i < 8; i++ ) - { - scaled_pixel<<=2; - if ( pixel & 128 ) - { - scaled_pixel |= 3; - } - pixel<<=1; - } - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - xx = x; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - yy = y; - if ( ((u8g_dev_arg_pixel_t *)arg)->dir & 1 ) - { - xx++; - } - else - { - yy++; - } - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel>>8; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel&255; - //((u8g_dev_arg_pixel_t *)arg)->pixel = 0x00; - switch(dir) - { - case 0: - x+=8; - xx+=8; - break; - case 1: - y+=8; - yy+=8; - break; - case 2: - x-=8; - xx-=8; - break; - case 3: - y-=8; - yy-=8; - break; - } - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - } - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c deleted file mode 100644 index 9573c8bf3b..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_state.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - - u8g_state.c - - backup and restore hardware state - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - device callback: DEV_MSG_INIT - state callback: backup u8g U8G_STATE_MSG_BACKUP_U8G - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - state callback: retore u8g U8G_STATE_MSG_RESTORE_U8G - DEV_MSG_PAGE_FIRST or DEV_MSG_PAGE_NEXT - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - -*/ - -#include -#include "u8g.h" - -void u8g_state_dummy_cb(uint8_t msg) -{ - /* the dummy procedure does nothing */ -} - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb) -{ - u8g->state_cb = backup_cb; - /* in most cases the init message was already sent, so this will backup the */ - /* current u8g state */ - backup_cb(U8G_STATE_MSG_BACKUP_U8G); -} - - -/*===============================================================*/ -/* register variable for restoring interrupt state */ - -#if defined(__AVR__) -uint8_t global_SREG_backup; -#endif - - - -/*===============================================================*/ -/* AVR */ - -#if defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_SPI) -#include -static uint8_t u8g_state_avr_spi_memory[2]; - -void u8g_backup_spi(uint8_t msg) -{ - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)] = SPCR; - } - else - { - uint8_t tmp = SREG; - cli(); - SPCR = 0; - SPCR = u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)]; - SREG = tmp; - } -} - -#elif defined (U8G_RASPBERRY_PI) - -#include - -void u8g_backup_spi(uint8_t msg) { - printf("u8g_backup_spi %d\r\n",msg); -} - -#elif defined(ARDUINO) && defined(__SAM3X8E__) // Arduino Due, maybe we should better check for __SAM3X8E__ - -#include "sam.h" - -struct sam_backup_struct -{ - uint32_t mr; - uint32_t sr; - uint32_t csr[4]; -} sam_backup[2]; - -void u8g_backup_spi(uint8_t msg) -{ - uint8_t idx = U8G_STATE_MSG_GET_IDX(msg); - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - sam_backup[idx].mr = SPI0->SPI_MR; - sam_backup[idx].sr = SPI0->SPI_SR; - sam_backup[idx].csr[0] = SPI0->SPI_CSR[0]; - sam_backup[idx].csr[1] = SPI0->SPI_CSR[1]; - sam_backup[idx].csr[2] = SPI0->SPI_CSR[2]; - sam_backup[idx].csr[3] = SPI0->SPI_CSR[3]; - } - else - { - SPI0->SPI_MR = sam_backup[idx].mr; - SPI0->SPI_CSR[0] = sam_backup[idx].csr[0]; - SPI0->SPI_CSR[1] = sam_backup[idx].csr[1]; - SPI0->SPI_CSR[2] = sam_backup[idx].csr[2]; - SPI0->SPI_CSR[3] = sam_backup[idx].csr[3]; - } -} - -#else - -void u8g_backup_spi(uint8_t msg) -{ -} - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c deleted file mode 100644 index f1d1803cfa..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u16toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u16toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -const char *u8g_u16toap(char * dest, uint16_t v) -{ - uint8_t pos; - uint8_t d; - uint16_t c; - c = 10000; - for( pos = 0; pos < 5; pos++ ) - { - d = '0'; - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - c /= 10; - } - dest[5] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d) -{ - static char buf[6]; - d = 5-d; - return u8g_u16toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c deleted file mode 100644 index f3a2c06faf..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_u8toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u8toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2011, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*/ - - -#include "u8g.h" - -static const unsigned char u8g_u8toa_tab[3] = { 100, 10, 1 } ; -const char *u8g_u8toap(char * dest, uint8_t v) -{ - uint8_t pos; - uint8_t d; - uint8_t c; - for( pos = 0; pos < 3; pos++ ) - { - d = '0'; - c = *(u8g_u8toa_tab+pos); - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - } - dest[3] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d) -{ - static char buf[4]; - d = 3-d; - return u8g_u8toap(buf, v) + d; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c deleted file mode 100644 index 8000506b43..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/U8glib/utility/u8g_virtual_screen.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_virtual_screen.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, olikraus@gmail.com - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list - of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or other - materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -*/ - -#include "u8g.h" - -struct _u8g_vs_t -{ - u8g_uint_t x; - u8g_uint_t y; - u8g_t *u8g; -}; -typedef struct _u8g_vs_t u8g_vs_t; - -#define U8g_VS_MAX 4 -uint8_t u8g_vs_cnt = 0; -u8g_vs_t u8g_vs_list[U8g_VS_MAX]; -uint8_t u8g_vs_current; -u8g_uint_t u8g_vs_width; -u8g_uint_t u8g_vs_height; - -uint8_t u8g_dev_vs_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - default: - { - uint8_t i; - for( i = 0; i < u8g_vs_cnt; i++ ) - { - u8g_call_dev_fn(u8g_vs_list[i].u8g, u8g_vs_list[i].u8g->dev, msg, arg); - } - } - return 1; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_vs_current = 0; - if ( u8g_vs_cnt != 0 ) - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - return 0; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t ret = 0; - if ( u8g_vs_cnt != 0 ) - ret = u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - if ( ret != 0 ) - return ret; - u8g_vs_current++; /* next device */ - if ( u8g_vs_current >= u8g_vs_cnt ) /* reached end? */ - return 0; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, U8G_DEV_MSG_PAGE_FIRST, arg); - } - return 0; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_vs_width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_vs_height; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - if ( u8g_vs_current < u8g_vs_cnt ) - { - u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - ((u8g_box_t *)arg)->x0 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->x1 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->y0 += u8g_vs_list[u8g_vs_current].y; - ((u8g_box_t *)arg)->y1 += u8g_vs_list[u8g_vs_current].y; - } - else - { - ((u8g_box_t *)arg)->x0 = 0; - ((u8g_box_t *)arg)->x1 = 0; - ((u8g_box_t *)arg)->y0 = 0; - ((u8g_box_t *)arg)->y1 = 0; - } - return 1; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_vs_current < u8g_vs_cnt ) - { - ((u8g_dev_arg_pixel_t *)arg)->x -= u8g_vs_list[u8g_vs_current].x; - ((u8g_dev_arg_pixel_t *)arg)->y -= u8g_vs_list[u8g_vs_current].y; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - } - break; - } - return 1; -} - - - -u8g_dev_t u8g_dev_vs = { u8g_dev_vs_fn, NULL, NULL }; - -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return; /* abort if there is no a virtual screen device */ - u8g_vs_width = width; - u8g_vs_height = height; -} - -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return 0; /* abort if there is no a virtual screen device */ - if ( u8g_vs_cnt >= U8g_VS_MAX ) - return 0; /* maximum number of child u8g's reached */ - u8g_vs_list[u8g_vs_cnt].u8g = child_u8g; - u8g_vs_list[u8g_vs_cnt].x = x; - u8g_vs_list[u8g_vs_cnt].y = y; - u8g_vs_cnt++; - return 1; -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.cpp b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.cpp deleted file mode 100644 index 553add7822..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.cpp +++ /dev/null @@ -1,303 +0,0 @@ -/* - TwoWire.cpp - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -extern "C" { - #include - #include - #include - #include "twi.h" -} - -#include "Wire.h" - -// Initialize Class Variables ////////////////////////////////////////////////// - -uint8_t TwoWire::rxBuffer[BUFFER_LENGTH]; -uint8_t TwoWire::rxBufferIndex = 0; -uint8_t TwoWire::rxBufferLength = 0; - -uint8_t TwoWire::txAddress = 0; -uint8_t TwoWire::txBuffer[BUFFER_LENGTH]; -uint8_t TwoWire::txBufferIndex = 0; -uint8_t TwoWire::txBufferLength = 0; - -uint8_t TwoWire::transmitting = 0; -void (*TwoWire::user_onRequest)(void); -void (*TwoWire::user_onReceive)(int); - -// Constructors //////////////////////////////////////////////////////////////// - -TwoWire::TwoWire() -{ -} - -// Public Methods ////////////////////////////////////////////////////////////// - -void TwoWire::begin(void) -{ - rxBufferIndex = 0; - rxBufferLength = 0; - - txBufferIndex = 0; - txBufferLength = 0; - - twi_init(); -} - -void TwoWire::begin(uint8_t address) -{ - twi_setAddress(address); - twi_attachSlaveTxEvent(onRequestService); - twi_attachSlaveRxEvent(onReceiveService); - begin(); -} - -void TwoWire::begin(int address) -{ - begin((uint8_t)address); -} - -void TwoWire::setClock(uint32_t frequency) -{ - TWBR = ((F_CPU / frequency) - 16) / 2; -} - -uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop) -{ - // clamp to buffer length - if(quantity > BUFFER_LENGTH){ - quantity = BUFFER_LENGTH; - } - // perform blocking read into buffer - uint8_t read = twi_readFrom(address, rxBuffer, quantity, sendStop); - // set rx buffer iterator vars - rxBufferIndex = 0; - rxBufferLength = read; - - return read; -} - -uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)true); -} - -uint8_t TwoWire::requestFrom(int address, int quantity) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)true); -} - -uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop) -{ - return requestFrom((uint8_t)address, (uint8_t)quantity, (uint8_t)sendStop); -} - -void TwoWire::beginTransmission(uint8_t address) -{ - // indicate that we are transmitting - transmitting = 1; - // set address of targeted slave - txAddress = address; - // reset tx buffer iterator vars - txBufferIndex = 0; - txBufferLength = 0; -} - -void TwoWire::beginTransmission(int address) -{ - beginTransmission((uint8_t)address); -} - -// -// Originally, 'endTransmission' was an f(void) function. -// It has been modified to take one parameter indicating -// whether or not a STOP should be performed on the bus. -// Calling endTransmission(false) allows a sketch to -// perform a repeated start. -// -// WARNING: Nothing in the library keeps track of whether -// the bus tenure has been properly ended with a STOP. It -// is very possible to leave the bus in a hung state if -// no call to endTransmission(true) is made. Some I2C -// devices will behave oddly if they do not see a STOP. -// -uint8_t TwoWire::endTransmission(uint8_t sendStop) -{ - // transmit buffer (blocking) - int8_t ret = twi_writeTo(txAddress, txBuffer, txBufferLength, 1, sendStop); - // reset tx buffer iterator vars - txBufferIndex = 0; - txBufferLength = 0; - // indicate that we are done transmitting - transmitting = 0; - return ret; -} - -// This provides backwards compatibility with the original -// definition, and expected behaviour, of endTransmission -// -uint8_t TwoWire::endTransmission(void) -{ - return endTransmission(true); -} - -// must be called in: -// slave tx event callback -// or after beginTransmission(address) -size_t TwoWire::write(uint8_t data) -{ - if(transmitting){ - // in master transmitter mode - // don't bother if buffer is full - if(txBufferLength >= BUFFER_LENGTH){ - setWriteError(); - return 0; - } - // put byte in tx buffer - txBuffer[txBufferIndex] = data; - ++txBufferIndex; - // update amount in buffer - txBufferLength = txBufferIndex; - }else{ - // in slave send mode - // reply to master - twi_transmit(&data, 1); - } - return 1; -} - -// must be called in: -// slave tx event callback -// or after beginTransmission(address) -size_t TwoWire::write(const uint8_t *data, size_t quantity) -{ - if(transmitting){ - // in master transmitter mode - for(size_t i = 0; i < quantity; ++i){ - write(data[i]); - } - }else{ - // in slave send mode - // reply to master - twi_transmit(data, quantity); - } - return quantity; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::available(void) -{ - return rxBufferLength - rxBufferIndex; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::read(void) -{ - int value = -1; - - // get each successive byte on each call - if(rxBufferIndex < rxBufferLength){ - value = rxBuffer[rxBufferIndex]; - ++rxBufferIndex; - } - - return value; -} - -// must be called in: -// slave rx event callback -// or after requestFrom(address, numBytes) -int TwoWire::peek(void) -{ - int value = -1; - - if(rxBufferIndex < rxBufferLength){ - value = rxBuffer[rxBufferIndex]; - } - - return value; -} - -void TwoWire::flush(void) -{ - // XXX: to be implemented. -} - -// behind the scenes function that is called when data is received -void TwoWire::onReceiveService(uint8_t* inBytes, int numBytes) -{ - // don't bother if user hasn't registered a callback - if(!user_onReceive){ - return; - } - // don't bother if rx buffer is in use by a master requestFrom() op - // i know this drops data, but it allows for slight stupidity - // meaning, they may not have read all the master requestFrom() data yet - if(rxBufferIndex < rxBufferLength){ - return; - } - // copy twi rx buffer into local read buffer - // this enables new reads to happen in parallel - for(uint8_t i = 0; i < numBytes; ++i){ - rxBuffer[i] = inBytes[i]; - } - // set rx iterator vars - rxBufferIndex = 0; - rxBufferLength = numBytes; - // alert user program - user_onReceive(numBytes); -} - -// behind the scenes function that is called when data is requested -void TwoWire::onRequestService(void) -{ - // don't bother if user hasn't registered a callback - if(!user_onRequest){ - return; - } - // reset tx buffer iterator vars - // !!! this will kill any pending pre-master sendTo() activity - txBufferIndex = 0; - txBufferLength = 0; - // alert user program - user_onRequest(); -} - -// sets function called on slave write -void TwoWire::onReceive( void (*function)(int) ) -{ - user_onReceive = function; -} - -// sets function called on slave read -void TwoWire::onRequest( void (*function)(void) ) -{ - user_onRequest = function; -} - -// Preinstantiate Objects ////////////////////////////////////////////////////// - -TwoWire Wire = TwoWire(); - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.h deleted file mode 100644 index 732bdc314e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/Wire.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - TwoWire.h - TWI/I2C library for Arduino & Wiring - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -#ifndef TwoWire_h -#define TwoWire_h - -#include -#include "Stream.h" - -#define BUFFER_LENGTH 32 - -class TwoWire : public Stream -{ - private: - static uint8_t rxBuffer[]; - static uint8_t rxBufferIndex; - static uint8_t rxBufferLength; - - static uint8_t txAddress; - static uint8_t txBuffer[]; - static uint8_t txBufferIndex; - static uint8_t txBufferLength; - - static uint8_t transmitting; - static void (*user_onRequest)(void); - static void (*user_onReceive)(int); - static void onRequestService(void); - static void onReceiveService(uint8_t*, int); - public: - TwoWire(); - void begin(); - void begin(uint8_t); - void begin(int); - void setClock(uint32_t); - void beginTransmission(uint8_t); - void beginTransmission(int); - uint8_t endTransmission(void); - uint8_t endTransmission(uint8_t); - uint8_t requestFrom(uint8_t, uint8_t); - uint8_t requestFrom(uint8_t, uint8_t, uint8_t); - uint8_t requestFrom(int, int); - uint8_t requestFrom(int, int, int); - virtual size_t write(uint8_t); - virtual size_t write(const uint8_t *, size_t); - virtual int available(void); - virtual int read(void); - virtual int peek(void); - virtual void flush(void); - void onReceive( void (*)(int) ); - void onRequest( void (*)(void) ); - - inline size_t write(unsigned long n) { return write((uint8_t)n); } - inline size_t write(long n) { return write((uint8_t)n); } - inline size_t write(unsigned int n) { return write((uint8_t)n); } - inline size_t write(int n) { return write((uint8_t)n); } - using Print::write; -}; - -extern TwoWire Wire; - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino deleted file mode 100644 index d97a9e3cf8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino +++ /dev/null @@ -1,87 +0,0 @@ -// I2C SRF10 or SRF08 Devantech Ultrasonic Ranger Finder -// by Nicholas Zambetti -// and James Tichenor - -// Demonstrates use of the Wire library reading data from the -// Devantech Utrasonic Rangers SFR08 and SFR10 - -// Created 29 April 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial communication at 9600bps -} - -int reading = 0; - -void loop() -{ - // step 1: instruct sensor to read echoes - Wire.beginTransmission(112); // transmit to device #112 (0x70) - // the address specified in the datasheet is 224 (0xE0) - // but i2c adressing uses the high 7 bits so it's 112 - Wire.write(byte(0x00)); // sets register pointer to the command register (0x00) - Wire.write(byte(0x50)); // command sensor to measure in "inches" (0x50) - // use 0x51 for centimeters - // use 0x52 for ping microseconds - Wire.endTransmission(); // stop transmitting - - // step 2: wait for readings to happen - delay(70); // datasheet suggests at least 65 milliseconds - - // step 3: instruct sensor to return a particular echo reading - Wire.beginTransmission(112); // transmit to device #112 - Wire.write(byte(0x02)); // sets register pointer to echo #1 register (0x02) - Wire.endTransmission(); // stop transmitting - - // step 4: request reading from sensor - Wire.requestFrom(112, 2); // request 2 bytes from slave device #112 - - // step 5: receive reading from sensor - if (2 <= Wire.available()) // if two bytes were received - { - reading = Wire.read(); // receive high byte (overwrites previous reading) - reading = reading << 8; // shift high byte to be high 8 bits - reading |= Wire.read(); // receive low byte as lower 8 bits - Serial.println(reading); // print the reading - } - - delay(250); // wait a bit since people have to read the output :) -} - - -/* - -// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08) -// usage: changeAddress(0x70, 0xE6); - -void changeAddress(byte oldAddress, byte newAddress) -{ - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xA0)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xAA)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(byte(0xA5)); - Wire.endTransmission(); - - Wire.beginTransmission(oldAddress); - Wire.write(byte(0x00)); - Wire.write(newAddress); - Wire.endTransmission(); -} - -*/ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino deleted file mode 100644 index 4d1580a61e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/digital_potentiometer/digital_potentiometer.ino +++ /dev/null @@ -1,39 +0,0 @@ -// I2C Digital Potentiometer -// by Nicholas Zambetti -// and Shawn Bonkowski - -// Demonstrates use of the Wire library -// Controls AD5171 digital potentiometer via I2C/TWI - -// Created 31 March 2006 - -// This example code is in the public domain. - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) -} - -byte val = 0; - -void loop() -{ - Wire.beginTransmission(44); // transmit to device #44 (0x2c) - // device address is specified in datasheet - Wire.write(byte(0x00)); // sends instruction byte - Wire.write(val); // sends potentiometer value byte - Wire.endTransmission(); // stop transmitting - - val++; // increment value - if (val == 64) // if reached 64th position (max) - { - val = 0; // start over from lowest value - } - delay(500); -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino deleted file mode 100644 index 74f0155f8e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_reader/master_reader.ino +++ /dev/null @@ -1,32 +0,0 @@ -// Wire Master Reader -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Reads data from an I2C/TWI slave device -// Refer to the "Wire Slave Sender" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) - Serial.begin(9600); // start serial for output -} - -void loop() -{ - Wire.requestFrom(2, 6); // request 6 bytes from slave device #2 - - while (Wire.available()) // slave may send less than requested - { - char c = Wire.read(); // receive a byte as character - Serial.print(c); // print the character - } - - delay(500); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino deleted file mode 100644 index 482e922379..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/master_writer/master_writer.ino +++ /dev/null @@ -1,31 +0,0 @@ -// Wire Master Writer -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Writes data to an I2C/TWI slave device -// Refer to the "Wire Slave Receiver" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(); // join i2c bus (address optional for master) -} - -byte x = 0; - -void loop() -{ - Wire.beginTransmission(4); // transmit to device #4 - Wire.write("x is "); // sends five bytes - Wire.write(x); // sends one byte - Wire.endTransmission(); // stop transmitting - - x++; - delay(500); -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino deleted file mode 100644 index 15eff9a545..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_receiver/slave_receiver.ino +++ /dev/null @@ -1,38 +0,0 @@ -// Wire Slave Receiver -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Receives data as an I2C/TWI slave device -// Refer to the "Wire Master Writer" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(4); // join i2c bus with address #4 - Wire.onReceive(receiveEvent); // register event - Serial.begin(9600); // start serial for output -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is received from master -// this function is registered as an event, see setup() -void receiveEvent(int howMany) -{ - while (1 < Wire.available()) // loop through all but the last - { - char c = Wire.read(); // receive byte as a character - Serial.print(c); // print the character - } - int x = Wire.read(); // receive byte as an integer - Serial.println(x); // print the integer -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino deleted file mode 100644 index 4437ab1521..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/examples/slave_sender/slave_sender.ino +++ /dev/null @@ -1,32 +0,0 @@ -// Wire Slave Sender -// by Nicholas Zambetti - -// Demonstrates use of the Wire library -// Sends data as an I2C/TWI slave device -// Refer to the "Wire Master Reader" example for use with this - -// Created 29 March 2006 - -// This example code is in the public domain. - - -#include - -void setup() -{ - Wire.begin(2); // join i2c bus with address #2 - Wire.onRequest(requestEvent); // register event -} - -void loop() -{ - delay(100); -} - -// function that executes whenever data is requested by master -// this function is registered as an event, see setup() -void requestEvent() -{ - Wire.write("hello "); // respond with message of 6 bytes - // as expected by master -} diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/keywords.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/keywords.txt deleted file mode 100644 index ff31475920..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/keywords.txt +++ /dev/null @@ -1,32 +0,0 @@ -####################################### -# Syntax Coloring Map For Wire -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -setClock KEYWORD2 -beginTransmission KEYWORD2 -endTransmission KEYWORD2 -requestFrom KEYWORD2 -send KEYWORD2 -receive KEYWORD2 -onReceive KEYWORD2 -onRequest KEYWORD2 - -####################################### -# Instances (KEYWORD2) -####################################### - -Wire KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/library.properties b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/library.properties deleted file mode 100644 index 3246a75098..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/library.properties +++ /dev/null @@ -1,8 +0,0 @@ -name=Wire -version=1.0 -author=Arduino -maintainer=Arduino -sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For all Arduino boards, BUT Arduino DUE. -paragraph= -url=http://arduino.cc/en/Reference/Wire -architectures=avr diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.c b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.c deleted file mode 100644 index 201d7d1bbb..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.c +++ /dev/null @@ -1,527 +0,0 @@ -/* - twi.c - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Modified 2012 by Todd Krein (todd@krein.org) to implement repeated starts -*/ - -#include -#include -#include -#include -#include -#include -#include "Arduino.h" // for digitalWrite - -#ifndef cbi -#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) -#endif - -#ifndef sbi -#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) -#endif - -#include "pins_arduino.h" -#include "twi.h" - -static volatile uint8_t twi_state; -static volatile uint8_t twi_slarw; -static volatile uint8_t twi_sendStop; // should the transaction end with a stop -static volatile uint8_t twi_inRepStart; // in the middle of a repeated start - -static void (*twi_onSlaveTransmit)(void); -static void (*twi_onSlaveReceive)(uint8_t*, int); - -static uint8_t twi_masterBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_masterBufferIndex; -static volatile uint8_t twi_masterBufferLength; - -static uint8_t twi_txBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_txBufferIndex; -static volatile uint8_t twi_txBufferLength; - -static uint8_t twi_rxBuffer[TWI_BUFFER_LENGTH]; -static volatile uint8_t twi_rxBufferIndex; - -static volatile uint8_t twi_error; - -/* - * Function twi_init - * Desc readys twi pins and sets twi bitrate - * Input none - * Output none - */ -void twi_init(void) -{ - // initialize state - twi_state = TWI_READY; - twi_sendStop = true; // default value - twi_inRepStart = false; - - // activate internal pullups for twi. - digitalWrite(SDA, 1); - digitalWrite(SCL, 1); - - // initialize twi prescaler and bit rate - cbi(TWSR, TWPS0); - cbi(TWSR, TWPS1); - TWBR = ((F_CPU / TWI_FREQ) - 16) / 2; - - /* twi bit rate formula from atmega128 manual pg 204 - SCL Frequency = CPU Clock Frequency / (16 + (2 * TWBR)) - note: TWBR should be 10 or higher for master mode - It is 72 for a 16mhz Wiring board with 100kHz TWI */ - - // enable twi module, acks, and twi interrupt - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA); -} - -/* - * Function twi_slaveInit - * Desc sets slave address and enables interrupt - * Input none - * Output none - */ -void twi_setAddress(uint8_t address) -{ - // set twi slave address (skip over TWGCE bit) - TWAR = address << 1; -} - -/* - * Function twi_readFrom - * Desc attempts to become twi bus master and read a - * series of bytes from a device on the bus - * Input address: 7bit i2c device address - * data: pointer to byte array - * length: number of bytes to read into array - * sendStop: Boolean indicating whether to send a stop at the end - * Output number of bytes read - */ -uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length, uint8_t sendStop) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 0; - } - - // wait until twi is ready, become master receiver - while(TWI_READY != twi_state){ - continue; - } - twi_state = TWI_MRX; - twi_sendStop = sendStop; - // reset error state (0xFF.. no error occured) - twi_error = 0xFF; - - // initialize buffer iteration vars - twi_masterBufferIndex = 0; - twi_masterBufferLength = length-1; // This is not intuitive, read on... - // On receive, the previously configured ACK/NACK setting is transmitted in - // response to the received byte before the interrupt is signalled. - // Therefor we must actually set NACK when the _next_ to last byte is - // received, causing that NACK to be sent in response to receiving the last - // expected byte of data. - - // build sla+w, slave device address + w bit - twi_slarw = TW_READ; - twi_slarw |= address << 1; - - if (true == twi_inRepStart) { - // if we're in the repeated start state, then we've already sent the start, - // (@@@ we hope), and the TWI statemachine is just waiting for the address byte. - // We need to remove ourselves from the repeated start state before we enable interrupts, - // since the ISR is ASYNC, and we could get confused if we hit the ISR before cleaning - // up. Also, don't enable the START interrupt. There may be one pending from the - // repeated start that we sent outselves, and that would really confuse things. - twi_inRepStart = false; // remember, we're dealing with an ASYNC ISR - TWDR = twi_slarw; - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START - } - else - // send start condition - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTA); - - // wait for read operation to complete - while(TWI_MRX == twi_state){ - continue; - } - - if (twi_masterBufferIndex < length) - length = twi_masterBufferIndex; - - // copy twi buffer to data - for(i = 0; i < length; ++i){ - data[i] = twi_masterBuffer[i]; - } - - return length; -} - -/* - * Function twi_writeTo - * Desc attempts to become twi bus master and write a - * series of bytes to a device on the bus - * Input address: 7bit i2c device address - * data: pointer to byte array - * length: number of bytes in array - * wait: boolean indicating to wait for write or not - * sendStop: boolean indicating whether or not to send a stop at the end - * Output 0 .. success - * 1 .. length to long for buffer - * 2 .. address send, NACK received - * 3 .. data send, NACK received - * 4 .. other twi error (lost bus arbitration, bus error, ..) - */ -uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait, uint8_t sendStop) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 1; - } - - // wait until twi is ready, become master transmitter - while(TWI_READY != twi_state){ - continue; - } - twi_state = TWI_MTX; - twi_sendStop = sendStop; - // reset error state (0xFF.. no error occured) - twi_error = 0xFF; - - // initialize buffer iteration vars - twi_masterBufferIndex = 0; - twi_masterBufferLength = length; - - // copy data to twi buffer - for(i = 0; i < length; ++i){ - twi_masterBuffer[i] = data[i]; - } - - // build sla+w, slave device address + w bit - twi_slarw = TW_WRITE; - twi_slarw |= address << 1; - - // if we're in a repeated start, then we've already sent the START - // in the ISR. Don't do it again. - // - if (true == twi_inRepStart) { - // if we're in the repeated start state, then we've already sent the start, - // (@@@ we hope), and the TWI statemachine is just waiting for the address byte. - // We need to remove ourselves from the repeated start state before we enable interrupts, - // since the ISR is ASYNC, and we could get confused if we hit the ISR before cleaning - // up. Also, don't enable the START interrupt. There may be one pending from the - // repeated start that we sent outselves, and that would really confuse things. - twi_inRepStart = false; // remember, we're dealing with an ASYNC ISR - TWDR = twi_slarw; - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE); // enable INTs, but not START - } - else - // send start condition - TWCR = _BV(TWINT) | _BV(TWEA) | _BV(TWEN) | _BV(TWIE) | _BV(TWSTA); // enable INTs - - // wait for write operation to complete - while(wait && (TWI_MTX == twi_state)){ - continue; - } - - if (twi_error == 0xFF) - return 0; // success - else if (twi_error == TW_MT_SLA_NACK) - return 2; // error: address send, nack received - else if (twi_error == TW_MT_DATA_NACK) - return 3; // error: data send, nack received - else - return 4; // other twi error -} - -/* - * Function twi_transmit - * Desc fills slave tx buffer with data - * must be called in slave tx event callback - * Input data: pointer to byte array - * length: number of bytes in array - * Output 1 length too long for buffer - * 2 not slave transmitter - * 0 ok - */ -uint8_t twi_transmit(const uint8_t* data, uint8_t length) -{ - uint8_t i; - - // ensure data will fit into buffer - if(TWI_BUFFER_LENGTH < length){ - return 1; - } - - // ensure we are currently a slave transmitter - if(TWI_STX != twi_state){ - return 2; - } - - // set length and copy data into tx buffer - twi_txBufferLength = length; - for(i = 0; i < length; ++i){ - twi_txBuffer[i] = data[i]; - } - - return 0; -} - -/* - * Function twi_attachSlaveRxEvent - * Desc sets function called before a slave read operation - * Input function: callback function to use - * Output none - */ -void twi_attachSlaveRxEvent( void (*function)(uint8_t*, int) ) -{ - twi_onSlaveReceive = function; -} - -/* - * Function twi_attachSlaveTxEvent - * Desc sets function called before a slave write operation - * Input function: callback function to use - * Output none - */ -void twi_attachSlaveTxEvent( void (*function)(void) ) -{ - twi_onSlaveTransmit = function; -} - -/* - * Function twi_reply - * Desc sends byte or readys receive line - * Input ack: byte indicating to ack or to nack - * Output none - */ -void twi_reply(uint8_t ack) -{ - // transmit master read ready signal, with or without ack - if(ack){ - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT) | _BV(TWEA); - }else{ - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWINT); - } -} - -/* - * Function twi_stop - * Desc relinquishes bus master status - * Input none - * Output none - */ -void twi_stop(void) -{ - // send stop condition - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT) | _BV(TWSTO); - - // wait for stop condition to be exectued on bus - // TWINT is not set after a stop condition! - while(TWCR & _BV(TWSTO)){ - continue; - } - - // update twi state - twi_state = TWI_READY; -} - -/* - * Function twi_releaseBus - * Desc releases bus control - * Input none - * Output none - */ -void twi_releaseBus(void) -{ - // release bus - TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT); - - // update twi state - twi_state = TWI_READY; -} - -ISR(TWI_vect) -{ - switch(TW_STATUS){ - // All Master - case TW_START: // sent start condition - case TW_REP_START: // sent repeated start condition - // copy device address and r/w bit to output register and ack - TWDR = twi_slarw; - twi_reply(1); - break; - - // Master Transmitter - case TW_MT_SLA_ACK: // slave receiver acked address - case TW_MT_DATA_ACK: // slave receiver acked data - // if there is data to send, send it, otherwise stop - if(twi_masterBufferIndex < twi_masterBufferLength){ - // copy data to output register and ack - TWDR = twi_masterBuffer[twi_masterBufferIndex++]; - twi_reply(1); - }else{ - if (twi_sendStop) - twi_stop(); - else { - twi_inRepStart = true; // we're gonna send the START - // don't enable the interrupt. We'll generate the start, but we - // avoid handling the interrupt until we're in the next transaction, - // at the point where we would normally issue the start. - TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ; - twi_state = TWI_READY; - } - } - break; - case TW_MT_SLA_NACK: // address sent, nack received - twi_error = TW_MT_SLA_NACK; - twi_stop(); - break; - case TW_MT_DATA_NACK: // data sent, nack received - twi_error = TW_MT_DATA_NACK; - twi_stop(); - break; - case TW_MT_ARB_LOST: // lost bus arbitration - twi_error = TW_MT_ARB_LOST; - twi_releaseBus(); - break; - - // Master Receiver - case TW_MR_DATA_ACK: // data received, ack sent - // put byte into buffer - twi_masterBuffer[twi_masterBufferIndex++] = TWDR; - case TW_MR_SLA_ACK: // address sent, ack received - // ack if more bytes are expected, otherwise nack - if(twi_masterBufferIndex < twi_masterBufferLength){ - twi_reply(1); - }else{ - twi_reply(0); - } - break; - case TW_MR_DATA_NACK: // data received, nack sent - // put final byte into buffer - twi_masterBuffer[twi_masterBufferIndex++] = TWDR; - if (twi_sendStop) - twi_stop(); - else { - twi_inRepStart = true; // we're gonna send the START - // don't enable the interrupt. We'll generate the start, but we - // avoid handling the interrupt until we're in the next transaction, - // at the point where we would normally issue the start. - TWCR = _BV(TWINT) | _BV(TWSTA)| _BV(TWEN) ; - twi_state = TWI_READY; - } - break; - case TW_MR_SLA_NACK: // address sent, nack received - twi_stop(); - break; - // TW_MR_ARB_LOST handled by TW_MT_ARB_LOST case - - // Slave Receiver - case TW_SR_SLA_ACK: // addressed, returned ack - case TW_SR_GCALL_ACK: // addressed generally, returned ack - case TW_SR_ARB_LOST_SLA_ACK: // lost arbitration, returned ack - case TW_SR_ARB_LOST_GCALL_ACK: // lost arbitration, returned ack - // enter slave receiver mode - twi_state = TWI_SRX; - // indicate that rx buffer can be overwritten and ack - twi_rxBufferIndex = 0; - twi_reply(1); - break; - case TW_SR_DATA_ACK: // data received, returned ack - case TW_SR_GCALL_DATA_ACK: // data received generally, returned ack - // if there is still room in the rx buffer - if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){ - // put byte in buffer and ack - twi_rxBuffer[twi_rxBufferIndex++] = TWDR; - twi_reply(1); - }else{ - // otherwise nack - twi_reply(0); - } - break; - case TW_SR_STOP: // stop or repeated start condition received - // put a null char after data if there's room - if(twi_rxBufferIndex < TWI_BUFFER_LENGTH){ - twi_rxBuffer[twi_rxBufferIndex] = '\0'; - } - // sends ack and stops interface for clock stretching - twi_stop(); - // callback to user defined callback - twi_onSlaveReceive(twi_rxBuffer, twi_rxBufferIndex); - // since we submit rx buffer to "wire" library, we can reset it - twi_rxBufferIndex = 0; - // ack future responses and leave slave receiver state - twi_releaseBus(); - break; - case TW_SR_DATA_NACK: // data received, returned nack - case TW_SR_GCALL_DATA_NACK: // data received generally, returned nack - // nack back at master - twi_reply(0); - break; - - // Slave Transmitter - case TW_ST_SLA_ACK: // addressed, returned ack - case TW_ST_ARB_LOST_SLA_ACK: // arbitration lost, returned ack - // enter slave transmitter mode - twi_state = TWI_STX; - // ready the tx buffer index for iteration - twi_txBufferIndex = 0; - // set tx buffer length to be zero, to verify if user changes it - twi_txBufferLength = 0; - // request for txBuffer to be filled and length to be set - // note: user must call twi_transmit(bytes, length) to do this - twi_onSlaveTransmit(); - // if they didn't change buffer & length, initialize it - if(0 == twi_txBufferLength){ - twi_txBufferLength = 1; - twi_txBuffer[0] = 0x00; - } - // transmit first byte from buffer, fall - case TW_ST_DATA_ACK: // byte sent, ack returned - // copy data to output register - TWDR = twi_txBuffer[twi_txBufferIndex++]; - // if there is more to send, ack, otherwise nack - if(twi_txBufferIndex < twi_txBufferLength){ - twi_reply(1); - }else{ - twi_reply(0); - } - break; - case TW_ST_DATA_NACK: // received nack, we are done - case TW_ST_LAST_DATA: // received ack, but we are done already! - // ack future responses - twi_reply(1); - // leave slave receiver state - twi_state = TWI_READY; - break; - - // All - case TW_NO_INFO: // no state information - break; - case TW_BUS_ERROR: // bus error, illegal stop/start - twi_error = TW_BUS_ERROR; - twi_stop(); - break; - } -} - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.h deleted file mode 100644 index 6526593394..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/libraries/Wire/utility/twi.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - twi.h - TWI/I2C library for Wiring & Arduino - Copyright (c) 2006 Nicholas Zambetti. All right reserved. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef twi_h -#define twi_h - - #include - - //#define ATMEGA8 - - #ifndef TWI_FREQ - #define TWI_FREQ 100000L - #endif - - #ifndef TWI_BUFFER_LENGTH - #define TWI_BUFFER_LENGTH 32 - #endif - - #define TWI_READY 0 - #define TWI_MRX 1 - #define TWI_MTX 2 - #define TWI_SRX 3 - #define TWI_STX 4 - - void twi_init(void); - void twi_setAddress(uint8_t); - uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t); - uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t); - uint8_t twi_transmit(const uint8_t*, uint8_t); - void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) ); - void twi_attachSlaveTxEvent( void (*)(void) ); - void twi_reply(uint8_t); - void twi_stop(void); - void twi_releaseBus(void); - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.local.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.local.txt deleted file mode 100644 index e99b0c2b2f..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.local.txt +++ /dev/null @@ -1,7 +0,0 @@ -compiler.cpp.extra_flags=-DUSE_AUTOMATIC_VERSIONING -compiler.cpp.extra_flags.windows= -build.custom_bin.path.macosx=/usr/local/bin/ -build.custom_bin.path.linux= -recipe.hooks.prebuild0.pattern={build.custom_bin.path}generate_version_header_for_marlin "{build.source.path}" "{build.path}/_Version.h" -# Please help -- We need an implementation on Windows -recipe.hooks.prebuild0.pattern.windows= diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.txt b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.txt deleted file mode 100644 index d4d7b06ab3..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/platform.txt +++ /dev/null @@ -1,120 +0,0 @@ - -# Arduino AVR Core and platform. -# ------------------------------ - -# For more info: -# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification - -name=Marlin AVR Boards -version=1.5.6 - -# AVR compile variables -# --------------------- - -# Default "compiler.path" is correct, change only if you want to overidde the initial value -compiler.path={runtime.tools.avr-gcc.path}/bin/ -compiler.c.cmd=avr-gcc -compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD -# -w flag added to avoid printing a wrong warning http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396 -# This is fixed in gcc 4.8.3 and will be removed as soon as we update the toolchain -compiler.c.elf.flags=-w -Os -Wl,--gc-sections -compiler.c.elf.cmd=avr-gcc -compiler.S.flags=-c -g -x assembler-with-cpp -compiler.cpp.cmd=avr-g++ -compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -compiler.ar.cmd=avr-ar -compiler.ar.flags=rcs -compiler.objcopy.cmd=avr-objcopy -compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 -compiler.elf2hex.flags=-O ihex -R .eeprom -compiler.elf2hex.cmd=avr-objcopy -compiler.ldflags= -compiler.size.cmd=avr-size - -# This can be overriden in boards.txt -build.extra_flags= - -# These can be overridden in platform.local.txt -compiler.c.extra_flags= -compiler.c.elf.extra_flags= -compiler.S.extra_flags= -compiler.cpp.extra_flags= -compiler.ar.extra_flags= -compiler.objcopy.eep.extra_flags= -compiler.elf2hex.extra_flags= - -# AVR compile patterns -# -------------------- - -## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} {compiler.cpp.extra_flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Compile S files -recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.S.flags} -mmcu={build.mcu} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.S.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" - -## Create archives -recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}" - -## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm - -## Create eeprom -recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" - -## Create hex -recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex" - -## Compute size -recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf" -recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).* -recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).* -recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).* - - -# AVR Uploader/Programmers tools -# ------------------------------ - -tools.avrdude.path={runtime.tools.avrdude.path} -tools.avrdude.cmd.path={path}/bin/avrdude -tools.avrdude.config.path={path}/etc/avrdude.conf - -tools.avrdude.upload.params.verbose=-v -tools.avrdude.upload.params.quiet=-q -q -tools.avrdude.upload.pattern="{cmd.path}" "-C{config.path}" {upload.verbose} -p{build.mcu} -c{upload.protocol} -P{serial.port} -b{upload.speed} -D "-Uflash:w:{build.path}/{build.project_name}.hex:i" - -tools.avrdude.program.params.verbose=-v -tools.avrdude.program.params.quiet=-q -q -tools.avrdude.program.pattern="{cmd.path}" "-C{config.path}" {program.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{build.path}/{build.project_name}.hex:i" - -tools.avrdude.erase.params.verbose=-v -tools.avrdude.erase.params.quiet=-q -q -tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m - -tools.avrdude.bootloader.params.verbose=-v -tools.avrdude.bootloader.params.quiet=-q -q -tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.path}/{bootloader.file}:i" -Ulock:w:{bootloader.lock_bits}:m - -tools.hidloader.cmd.path=/usr/local/bin/HIDUploader - -tools.hidloader.upload.params.verbose=-v -tools.hidloader.upload.params.quiet= -tools.hidloader.upload.pattern="{cmd.path}" --upload -mmcu={build.mcu} {upload.verbose} -w "{build.path}/{build.project_name}.hex" -tools.nativehid.program.params.verbose=-v -tools.nativehid.program.params.quiet=-q -q - -tools.hidloader.program.params.verbose=-v -tools.hidloader.program.params.quiet=-q -q -tools.hidloader.program.pattern="{cmd.path}" -mmcu={build.mcu} {upload.verbose} -w "{build.path}/{build.project_name}.hex" - -tools.hidloader.erase.params.verbose=-v -tools.hidloader.erase.params.quiet=-q -q -tools.hidloader.erase.pattern="{cmd.path}" --erase "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Ulock:w:{bootloader.unlock_bits}:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m - -# USB Default Flags -# Default blank usb manufacturer will be filled it at compile time -# - from numeric vendor ID, set to Unknown otherwise -build.usb_manufacturer= -build.usb_flags=-DUSB_VID={build.vid} -DUSB_PID={build.pid} '-DUSB_MANUFACTURER={build.usb_manufacturer}' '-DUSB_PRODUCT={build.usb_product}' diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/at90usb/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/at90usb/pins_arduino.h deleted file mode 100644 index 8fef383206..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/at90usb/pins_arduino.h +++ /dev/null @@ -1,278 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - Modified 2012 by Fredrik Hubinette - Modified 2014-2015 by Matthew Wilson - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 8 - -// PE7 is our status LED -#define TX_RX_LED_INIT DDRE |= (1<<7) -#define TXLED0 0 -#define TXLED1 0 -#define RXLED0 PORTE |= (1<<7) -#define RXLED1 PORTE &= ~(1<<7) - -static const uint8_t SDA = 1; -static const uint8_t SCL = 0; - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 20; -static const uint8_t MOSI = 22; -static const uint8_t MISO = 23; -static const uint8_t SCK = 21; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t A0 = 38; // F0 -static const uint8_t A1 = 39; // F1 -static const uint8_t A2 = 40; // F2 -static const uint8_t A3 = 41; // F3 -static const uint8_t A4 = 42; // F4 -static const uint8_t A5 = 43; // F5 -static const uint8_t A6 = 44; // F6 -static const uint8_t A7 = 45; // F7 - -#define analogInputToDigitalPin(p) ((p < 8) ? (p) + 38 : -1) - -// Pins below still needs to be configured - Hubbe. - -#define digitalPinToPCICR(p) ((((p) >= 0 && (p) <= 3) || ((p) >= 18 && (p) <= 19) || ((p) >= 36 && (p) <= 37)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 0 && (p) <= 3) || ((p) >= 18 && (p) <= 19) || ((p) >= 36 && (p) <= 37)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 0 && (p) <= 3) ? (p) : ((p) == 18 ? 6 : ((p) == 19 ? 7 : ((p) == 36 ? 4 : ((p) == 37 ? 5 : (-1)))))) - -#define digitalPinHasPWM(p) ((p) == 0 || (p) == 1 || (p) == 14 || (p) == 15 || (p) == 16 || (p) == 24 || (p) == 25 || (p) == 26 || (p) == 27) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#ifdef ARDUINO_MAIN - - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -// Note PA == 1, PB == 2, etc. (GAH!) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // 0 - PD0 - INT0 - PWM - PD, // 1 - PD1 - INT1 - PWM - PD, // 2 - PD2 - INT2 - RX - PD, // 3 - PD3 - INT3 - TX - PD, // 4 - PD4 - PD, // 5 - PD5 - PD, // 6 - PD6 - PD, // 7 - PD7 - PE, // 8 - PE0 - PE, // 9 - PE1 - PC, // 10 - PC0 - PC, // 11 - PC1 - PC, // 12 - PC2 - PC, // 13 - PC3 - PC, // 14 - PC4 - PWM - PC, // 15 - PC5 - PWM - PC, // 16 - PC6 - PWM - PC, // 17 - PC7 - PE, // 18 - PE6 - INT6 - PE, // 19 - PE7 - INT7 - PB, // 20 - PB0 - PB, // 21 - PB1 - PB, // 22 - PB2 - PB, // 23 - PB3 - PB, // 24 - PB4 - PWM - PB, // 25 - PB5 - PWM - PB, // 26 - PB6 - PWM - PB, // 27 - PB7 - PWM - PA, // 28 - PA0 - PA, // 29 - PA1 - PA, // 30 - PA2 - PA, // 31 - PA3 - PA, // 32 - PA4 - PA, // 33 - PA5 - PA, // 34 - PA6 - PA, // 35 - PA7 - PE, // 36 - PE4 - INT4 - PE, // 37 - PE5 - INT5 - PF, // 38 - PF0 - A0 - PF, // 39 - PF1 - A1 - PF, // 40 - PF2 - A2 - PF, // 41 - PF3 - A3 - PF, // 42 - PF4 - A4 - PF, // 43 - PF5 - A5 - PF, // 44 - PF6 - A6 - PF, // 45 - PF7 - A7 - PE, // 46 - PE2 (not defined in teensy) - PE, // 47 - PE3 (not defined in teensy) -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(0), // 0 - PD0 - INT0 - PWM - _BV(1), // 1 - PD1 - INT1 - PWM - _BV(2), // 2 - PD2 - INT2 - RX - _BV(3), // 3 - PD3 - INT3 - TX - _BV(4), // 4 - PD4 - _BV(5), // 5 - PD5 - _BV(6), // 6 - PD6 - _BV(7), // 7 - PD7 - _BV(0), // 8 - PE0 - _BV(1), // 9 - PE1 - _BV(0), // 10 - PC0 - _BV(1), // 11 - PC1 - _BV(2), // 12 - PC2 - _BV(3), // 13 - PC3 - _BV(4), // 14 - PC4 - PWM - _BV(5), // 15 - PC5 - PWM - _BV(6), // 16 - PC6 - PWM - _BV(7), // 17 - PC7 - _BV(6), // 18 - PE6 - INT6 - _BV(7), // 19 - PE7 - INT7 - _BV(0), // 20 - PB0 - _BV(1), // 21 - PB1 - _BV(2), // 22 - PB2 - _BV(3), // 23 - PB3 - _BV(4), // 24 - PB4 - PWM - _BV(5), // 25 - PB5 - PWM - _BV(6), // 26 - PB6 - PWM - _BV(7), // 27 - PB7 - PWM - _BV(0), // 28 - PA0 - _BV(1), // 29 - PA1 - _BV(2), // 30 - PA2 - _BV(3), // 31 - PA3 - _BV(4), // 32 - PA4 - _BV(5), // 33 - PA5 - _BV(6), // 34 - PA6 - _BV(7), // 35 - PA7 - _BV(4), // 36 - PE4 - INT4 - _BV(5), // 37 - PE5 - INT5 - _BV(0), // 38 - PF0 - A0 - _BV(1), // 39 - PF1 - A1 - _BV(2), // 40 - PF2 - A2 - _BV(3), // 41 - PF3 - A3 - _BV(4), // 42 - PF4 - A4 - _BV(5), // 43 - PF5 - A5 - _BV(6), // 44 - PF6 - A6 - _BV(7), // 45 - PF7 - A7 - _BV(2), // 46 - PE2 (not defined in teensy) - _BV(3), // 47 - PE3 (not defined in teensy) -}; - - -// TODO(unrepentantgeek) complete this map of PWM capable pins -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - TIMER0A, // 0 - PD0 - INT0 - PWM - TIMER2B, // 1 - PD1 - INT1 - PWM - NOT_ON_TIMER, // 2 - PD2 - INT2 - RX - NOT_ON_TIMER, // 3 - PD3 - INT3 - TX - NOT_ON_TIMER, // 4 - PD4 - NOT_ON_TIMER, // 5 - PD5 - NOT_ON_TIMER, // 6 - PD6 - NOT_ON_TIMER, // 7 - PD7 - NOT_ON_TIMER, // 8 - PE0 - NOT_ON_TIMER, // 9 - PE1 - NOT_ON_TIMER, // 10 - PC0 - NOT_ON_TIMER, // 11 - PC1 - NOT_ON_TIMER, // 12 - PC2 - NOT_ON_TIMER, // 13 - PC3 - TIMER3C, // 14 - PC4 - PWM - TIMER3B, // 15 - PC5 - PWM - TIMER3A, // 16 - PC6 - PWM - NOT_ON_TIMER, // 17 - PC7 - NOT_ON_TIMER, // 18 - PE6 - INT6 - NOT_ON_TIMER, // 19 - PE7 - INT7 - NOT_ON_TIMER, // 20 - PB0 - NOT_ON_TIMER, // 21 - PB1 - NOT_ON_TIMER, // 22 - PB2 - NOT_ON_TIMER, // 23 - PB3 - TIMER2A, // 24 - PB4 - PWM - TIMER1A, // 25 - PB5 - PWM - TIMER1B, // 26 - PB6 - PWM - NOT_ON_TIMER, // 27 - PB7 - PWM // This should be on TIMER1C - NOT_ON_TIMER, // 28 - PA0 - NOT_ON_TIMER, // 29 - PA1 - NOT_ON_TIMER, // 30 - PA2 - NOT_ON_TIMER, // 31 - PA3 - NOT_ON_TIMER, // 32 - PA4 - NOT_ON_TIMER, // 33 - PA5 - NOT_ON_TIMER, // 34 - PA6 - NOT_ON_TIMER, // 35 - PA7 - NOT_ON_TIMER, // 36 - PE4 - INT4 - NOT_ON_TIMER, // 37 - PE5 - INT5 - NOT_ON_TIMER, // 38 - PF0 - A0 - NOT_ON_TIMER, // 39 - PF1 - A1 - NOT_ON_TIMER, // 40 - PF2 - A2 - NOT_ON_TIMER, // 41 - PF3 - A3 - NOT_ON_TIMER, // 42 - PF4 - A4 - NOT_ON_TIMER, // 43 - PF5 - A5 - NOT_ON_TIMER, // 44 - PF6 - A6 - NOT_ON_TIMER, // 45 - PF7 - A7 - NOT_ON_TIMER, // 46 - PE2 (not defined in teensy) - NOT_ON_TIMER, // 47 - PE3 (not defined in teensy) -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[8] = { - 0, // A0 PF0 ADC0 - 1, // A1 PF1 ADC1 - 2, // A2 PF2 ADC2 - 3, // A3 PF3 ADC3 - 4, // A4 PF4 ADC4 - 5, // A5 PF5 ADC5 - 6, // A6 PD6 ADC6 - 7, // A7 PD7 ADC7 -}; - -#endif /* ARDUINO_MAIN */ -#endif /* Pins_Arduino_h */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h deleted file mode 100644 index 83a04fc965..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/brainwave/pins_arduino.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - Modified 2012 by Fredrik Hubinette - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 48 -#define NUM_ANALOG_INPUTS 8 - -#define TX_RX_LED_INIT DDRE |= (1<<7) -#define TXLED0 0 -#define TXLED1 0 -#define RXLED0 PORTE |= (1<<7) -#define RXLED1 PORTE &= ~(1<<7) - -static const uint8_t SDA = 0; -static const uint8_t SCL = 1; - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 20; -static const uint8_t MOSI = 22; -static const uint8_t MISO = 23; -static const uint8_t SCK = 21; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t A0 = 38; // F0 -static const uint8_t A1 = 39; // F1 -static const uint8_t A2 = 40; // F2 -static const uint8_t A3 = 41; // F3 -static const uint8_t A4 = 42; // F4 -static const uint8_t A5 = 43; // F5 -static const uint8_t A6 = 44; // F6 -static const uint8_t A7 = 45; // F7 - -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) - -// Pins below still needs to be configured - Hubbe. - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - - -#define digitalPinHasPWM(p) ((p) == 12 || (p) == 13 || (p) == 14 || (p) == 20 || (p) == 21 || (p) == 22) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#ifdef ARDUINO_MAIN - - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -// Note PA == 1, PB == 2, etc. (GAH!) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PA, // 0 - PA, - PA, - PA, - PA, - PA, - PA, - PA, - PB, // 8 - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PC, // 16 - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PD, // 24 - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PE, // 32 - PE, - PE, - PE, - PE, - PE, - PE, - PE, // 39 - PE7 - PF, // 40 - A0 - PF0 - PF, - PF, - PF, - PF, - PF, - PF, - PF, // 47 - A7 - PF7 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(0), // PA0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PB0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PC0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PD0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PE0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), // PF0 - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), -}; - - -// TODO(unrepentantgeek) complete this map of PWM capable pins -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, // 0 - PA0 - NOT_ON_TIMER, // 1 - PA1 - NOT_ON_TIMER, // 2 - PA2 - NOT_ON_TIMER, // 3 - PA3 - NOT_ON_TIMER, // 4 - PA4 - NOT_ON_TIMER, // 5 - PA5 - NOT_ON_TIMER, // 6 - PA6 - NOT_ON_TIMER, // 7 - PA7 - NOT_ON_TIMER, // 8 - PB0 - NOT_ON_TIMER, // 9 - PB1 - NOT_ON_TIMER, // 10 - PB2 - NOT_ON_TIMER, // 11 - PB3 - TIMER2A, // 12 - PB4 - TIMER1A, // 13 - PB5 - TIMER1B, // 14 - PB6 - NOT_ON_TIMER, // 15 - PB7 - NOT_ON_TIMER, // 16 - PC0 - NOT_ON_TIMER, // 17 - PC1 - NOT_ON_TIMER, // 18 - PC2 - NOT_ON_TIMER, // 19 - PC3 - TIMER3C, // 20 - PC4 - TIMER3B, // 21 - PC5 - TIMER3A, // 22 - PC6 - NOT_ON_TIMER, // 23 - PC7 - NOT_ON_TIMER, // 24 - PD0 - NOT_ON_TIMER, // 25 - PD1 - NOT_ON_TIMER, // 26 - PD2 - NOT_ON_TIMER, // 27 - PD3 - NOT_ON_TIMER, // 28 - PD4 - NOT_ON_TIMER, // 29 - PD5 - NOT_ON_TIMER, // 30 - PD6 - NOT_ON_TIMER, // 31 - PD7 - NOT_ON_TIMER, // 32 - PE0 - NOT_ON_TIMER, // 33 - PE1 - NOT_ON_TIMER, // 34 - PE2 - NOT_ON_TIMER, // 35 - PE3 - NOT_ON_TIMER, // 36 - PE4 - NOT_ON_TIMER, // 37 - PE5 - NOT_ON_TIMER, // 38 - PE6 - NOT_ON_TIMER, // 39 - PE7 - NOT_ON_TIMER, // 40 - A0 - PF0 - NOT_ON_TIMER, // 41 - A1 - PF1 - NOT_ON_TIMER, // 42 - A2 - PF2 - NOT_ON_TIMER, // 43 - A3 - PF3 - NOT_ON_TIMER, // 44 - A4 - PF4 - NOT_ON_TIMER, // 45 - A5 - PF5 - NOT_ON_TIMER, // 46 - A6 - PF6 - NOT_ON_TIMER, // 47 - A7 - PF7 -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[12] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ -#endif /* Pins_Arduino_h */ diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/mega/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/mega/pins_arduino.h deleted file mode 100644 index a80991b3c8..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/mega/pins_arduino.h +++ /dev/null @@ -1,389 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 70 -#define NUM_ANALOG_INPUTS 16 -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) -#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) - -static const uint8_t SS = 53; -static const uint8_t MOSI = 51; -static const uint8_t MISO = 50; -static const uint8_t SCK = 52; - -static const uint8_t SDA = 20; -static const uint8_t SCL = 21; -#define LED_BUILTIN 13 - -static const uint8_t A0 = 54; -static const uint8_t A1 = 55; -static const uint8_t A2 = 56; -static const uint8_t A3 = 57; -static const uint8_t A4 = 58; -static const uint8_t A5 = 59; -static const uint8_t A6 = 60; -static const uint8_t A7 = 61; -static const uint8_t A8 = 62; -static const uint8_t A9 = 63; -static const uint8_t A10 = 64; -static const uint8_t A11 = 65; -static const uint8_t A12 = 66; -static const uint8_t A13 = 67; -static const uint8_t A14 = 68; -static const uint8_t A15 = 69; - -// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) -// Only pins available for RECEIVE (TRANSMIT can be on any pin): -// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) -// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 - -#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ - (((p) >= 50) && ((p) <= 53)) || \ - (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ - 0 ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ - ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ - ((uint8_t *)0) ) ) - -#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ - ( ((p) == 50) ? 3 : \ - ( ((p) == 51) ? 2 : \ - ( ((p) == 52) ? 1 : \ - ( ((p) == 53) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ - 0 ) ) ) ) ) ) - -#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : ((p) >= 18 && (p) <= 21 ? 23 - (p) : NOT_AN_INTERRUPT))) - -#ifdef ARDUINO_MAIN - -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, - (uint16_t) &DDRG, - (uint16_t) &DDRH, - NOT_A_PORT, - (uint16_t) &DDRJ, - (uint16_t) &DDRK, - (uint16_t) &DDRL, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, - (uint16_t) &PORTG, - (uint16_t) &PORTH, - NOT_A_PORT, - (uint16_t) &PORTJ, - (uint16_t) &PORTK, - (uint16_t) &PORTL, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PIN, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, - (uint16_t) &PING, - (uint16_t) &PINH, - NOT_A_PIN, - (uint16_t) &PINJ, - (uint16_t) &PINK, - (uint16_t) &PINL, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - // PORTLIST - // ------------------------------------------- - PE , // PE 0 ** 0 ** USART0_RX - PE , // PE 1 ** 1 ** USART0_TX - PE , // PE 4 ** 2 ** PWM2 - PE , // PE 5 ** 3 ** PWM3 - PG , // PG 5 ** 4 ** PWM4 - PE , // PE 3 ** 5 ** PWM5 - PH , // PH 3 ** 6 ** PWM6 - PH , // PH 4 ** 7 ** PWM7 - PH , // PH 5 ** 8 ** PWM8 - PH , // PH 6 ** 9 ** PWM9 - PB , // PB 4 ** 10 ** PWM10 - PB , // PB 5 ** 11 ** PWM11 - PB , // PB 6 ** 12 ** PWM12 - PB , // PB 7 ** 13 ** PWM13 - PJ , // PJ 1 ** 14 ** USART3_TX - PJ , // PJ 0 ** 15 ** USART3_RX - PH , // PH 1 ** 16 ** USART2_TX - PH , // PH 0 ** 17 ** USART2_RX - PD , // PD 3 ** 18 ** USART1_TX - PD , // PD 2 ** 19 ** USART1_RX - PD , // PD 1 ** 20 ** I2C_SDA - PD , // PD 0 ** 21 ** I2C_SCL - PA , // PA 0 ** 22 ** D22 - PA , // PA 1 ** 23 ** D23 - PA , // PA 2 ** 24 ** D24 - PA , // PA 3 ** 25 ** D25 - PA , // PA 4 ** 26 ** D26 - PA , // PA 5 ** 27 ** D27 - PA , // PA 6 ** 28 ** D28 - PA , // PA 7 ** 29 ** D29 - PC , // PC 7 ** 30 ** D30 - PC , // PC 6 ** 31 ** D31 - PC , // PC 5 ** 32 ** D32 - PC , // PC 4 ** 33 ** D33 - PC , // PC 3 ** 34 ** D34 - PC , // PC 2 ** 35 ** D35 - PC , // PC 1 ** 36 ** D36 - PC , // PC 0 ** 37 ** D37 - PD , // PD 7 ** 38 ** D38 - PG , // PG 2 ** 39 ** D39 - PG , // PG 1 ** 40 ** D40 - PG , // PG 0 ** 41 ** D41 - PL , // PL 7 ** 42 ** D42 - PL , // PL 6 ** 43 ** D43 - PL , // PL 5 ** 44 ** D44 - PL , // PL 4 ** 45 ** D45 - PL , // PL 3 ** 46 ** D46 - PL , // PL 2 ** 47 ** D47 - PL , // PL 1 ** 48 ** D48 - PL , // PL 0 ** 49 ** D49 - PB , // PB 3 ** 50 ** SPI_MISO - PB , // PB 2 ** 51 ** SPI_MOSI - PB , // PB 1 ** 52 ** SPI_SCK - PB , // PB 0 ** 53 ** SPI_SS - PF , // PF 0 ** 54 ** A0 - PF , // PF 1 ** 55 ** A1 - PF , // PF 2 ** 56 ** A2 - PF , // PF 3 ** 57 ** A3 - PF , // PF 4 ** 58 ** A4 - PF , // PF 5 ** 59 ** A5 - PF , // PF 6 ** 60 ** A6 - PF , // PF 7 ** 61 ** A7 - PK , // PK 0 ** 62 ** A8 - PK , // PK 1 ** 63 ** A9 - PK , // PK 2 ** 64 ** A10 - PK , // PK 3 ** 65 ** A11 - PK , // PK 4 ** 66 ** A12 - PK , // PK 5 ** 67 ** A13 - PK , // PK 6 ** 68 ** A14 - PK , // PK 7 ** 69 ** A15 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - // PIN IN PORT - // ------------------------------------------- - _BV( 0 ) , // PE 0 ** 0 ** USART0_RX - _BV( 1 ) , // PE 1 ** 1 ** USART0_TX - _BV( 4 ) , // PE 4 ** 2 ** PWM2 - _BV( 5 ) , // PE 5 ** 3 ** PWM3 - _BV( 5 ) , // PG 5 ** 4 ** PWM4 - _BV( 3 ) , // PE 3 ** 5 ** PWM5 - _BV( 3 ) , // PH 3 ** 6 ** PWM6 - _BV( 4 ) , // PH 4 ** 7 ** PWM7 - _BV( 5 ) , // PH 5 ** 8 ** PWM8 - _BV( 6 ) , // PH 6 ** 9 ** PWM9 - _BV( 4 ) , // PB 4 ** 10 ** PWM10 - _BV( 5 ) , // PB 5 ** 11 ** PWM11 - _BV( 6 ) , // PB 6 ** 12 ** PWM12 - _BV( 7 ) , // PB 7 ** 13 ** PWM13 - _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX - _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX - _BV( 1 ) , // PH 1 ** 16 ** USART2_TX - _BV( 0 ) , // PH 0 ** 17 ** USART2_RX - _BV( 3 ) , // PD 3 ** 18 ** USART1_TX - _BV( 2 ) , // PD 2 ** 19 ** USART1_RX - _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA - _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL - _BV( 0 ) , // PA 0 ** 22 ** D22 - _BV( 1 ) , // PA 1 ** 23 ** D23 - _BV( 2 ) , // PA 2 ** 24 ** D24 - _BV( 3 ) , // PA 3 ** 25 ** D25 - _BV( 4 ) , // PA 4 ** 26 ** D26 - _BV( 5 ) , // PA 5 ** 27 ** D27 - _BV( 6 ) , // PA 6 ** 28 ** D28 - _BV( 7 ) , // PA 7 ** 29 ** D29 - _BV( 7 ) , // PC 7 ** 30 ** D30 - _BV( 6 ) , // PC 6 ** 31 ** D31 - _BV( 5 ) , // PC 5 ** 32 ** D32 - _BV( 4 ) , // PC 4 ** 33 ** D33 - _BV( 3 ) , // PC 3 ** 34 ** D34 - _BV( 2 ) , // PC 2 ** 35 ** D35 - _BV( 1 ) , // PC 1 ** 36 ** D36 - _BV( 0 ) , // PC 0 ** 37 ** D37 - _BV( 7 ) , // PD 7 ** 38 ** D38 - _BV( 2 ) , // PG 2 ** 39 ** D39 - _BV( 1 ) , // PG 1 ** 40 ** D40 - _BV( 0 ) , // PG 0 ** 41 ** D41 - _BV( 7 ) , // PL 7 ** 42 ** D42 - _BV( 6 ) , // PL 6 ** 43 ** D43 - _BV( 5 ) , // PL 5 ** 44 ** D44 - _BV( 4 ) , // PL 4 ** 45 ** D45 - _BV( 3 ) , // PL 3 ** 46 ** D46 - _BV( 2 ) , // PL 2 ** 47 ** D47 - _BV( 1 ) , // PL 1 ** 48 ** D48 - _BV( 0 ) , // PL 0 ** 49 ** D49 - _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO - _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI - _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK - _BV( 0 ) , // PB 0 ** 53 ** SPI_SS - _BV( 0 ) , // PF 0 ** 54 ** A0 - _BV( 1 ) , // PF 1 ** 55 ** A1 - _BV( 2 ) , // PF 2 ** 56 ** A2 - _BV( 3 ) , // PF 3 ** 57 ** A3 - _BV( 4 ) , // PF 4 ** 58 ** A4 - _BV( 5 ) , // PF 5 ** 59 ** A5 - _BV( 6 ) , // PF 6 ** 60 ** A6 - _BV( 7 ) , // PF 7 ** 61 ** A7 - _BV( 0 ) , // PK 0 ** 62 ** A8 - _BV( 1 ) , // PK 1 ** 63 ** A9 - _BV( 2 ) , // PK 2 ** 64 ** A10 - _BV( 3 ) , // PK 3 ** 65 ** A11 - _BV( 4 ) , // PK 4 ** 66 ** A12 - _BV( 5 ) , // PK 5 ** 67 ** A13 - _BV( 6 ) , // PK 6 ** 68 ** A14 - _BV( 7 ) , // PK 7 ** 69 ** A15 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - // TIMERS - // ------------------------------------------- - NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX - NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX - TIMER3B , // PE 4 ** 2 ** PWM2 - TIMER3C , // PE 5 ** 3 ** PWM3 - TIMER0B , // PG 5 ** 4 ** PWM4 - TIMER3A , // PE 3 ** 5 ** PWM5 - TIMER4A , // PH 3 ** 6 ** PWM6 - TIMER4B , // PH 4 ** 7 ** PWM7 - TIMER4C , // PH 5 ** 8 ** PWM8 - TIMER2B , // PH 6 ** 9 ** PWM9 - TIMER2A , // PB 4 ** 10 ** PWM10 - TIMER1A , // PB 5 ** 11 ** PWM11 - TIMER1B , // PB 6 ** 12 ** PWM12 - TIMER0A , // PB 7 ** 13 ** PWM13 - NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX - NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX - NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX - NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX - NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX - NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX - NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA - NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL - NOT_ON_TIMER , // PA 0 ** 22 ** D22 - NOT_ON_TIMER , // PA 1 ** 23 ** D23 - NOT_ON_TIMER , // PA 2 ** 24 ** D24 - NOT_ON_TIMER , // PA 3 ** 25 ** D25 - NOT_ON_TIMER , // PA 4 ** 26 ** D26 - NOT_ON_TIMER , // PA 5 ** 27 ** D27 - NOT_ON_TIMER , // PA 6 ** 28 ** D28 - NOT_ON_TIMER , // PA 7 ** 29 ** D29 - NOT_ON_TIMER , // PC 7 ** 30 ** D30 - NOT_ON_TIMER , // PC 6 ** 31 ** D31 - NOT_ON_TIMER , // PC 5 ** 32 ** D32 - NOT_ON_TIMER , // PC 4 ** 33 ** D33 - NOT_ON_TIMER , // PC 3 ** 34 ** D34 - NOT_ON_TIMER , // PC 2 ** 35 ** D35 - NOT_ON_TIMER , // PC 1 ** 36 ** D36 - NOT_ON_TIMER , // PC 0 ** 37 ** D37 - NOT_ON_TIMER , // PD 7 ** 38 ** D38 - NOT_ON_TIMER , // PG 2 ** 39 ** D39 - NOT_ON_TIMER , // PG 1 ** 40 ** D40 - NOT_ON_TIMER , // PG 0 ** 41 ** D41 - NOT_ON_TIMER , // PL 7 ** 42 ** D42 - NOT_ON_TIMER , // PL 6 ** 43 ** D43 - TIMER5C , // PL 5 ** 44 ** D44 - TIMER5B , // PL 4 ** 45 ** D45 - TIMER5A , // PL 3 ** 46 ** D46 - NOT_ON_TIMER , // PL 2 ** 47 ** D47 - NOT_ON_TIMER , // PL 1 ** 48 ** D48 - NOT_ON_TIMER , // PL 0 ** 49 ** D49 - NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO - NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI - NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK - NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS - NOT_ON_TIMER , // PF 0 ** 54 ** A0 - NOT_ON_TIMER , // PF 1 ** 55 ** A1 - NOT_ON_TIMER , // PF 2 ** 56 ** A2 - NOT_ON_TIMER , // PF 3 ** 57 ** A3 - NOT_ON_TIMER , // PF 4 ** 58 ** A4 - NOT_ON_TIMER , // PF 5 ** 59 ** A5 - NOT_ON_TIMER , // PF 6 ** 60 ** A6 - NOT_ON_TIMER , // PF 7 ** 61 ** A7 - NOT_ON_TIMER , // PK 0 ** 62 ** A8 - NOT_ON_TIMER , // PK 1 ** 63 ** A9 - NOT_ON_TIMER , // PK 2 ** 64 ** A10 - NOT_ON_TIMER , // PK 3 ** 65 ** A11 - NOT_ON_TIMER , // PK 4 ** 66 ** A12 - NOT_ON_TIMER , // PK 5 ** 67 ** A13 - NOT_ON_TIMER , // PK 6 ** 68 ** A14 - NOT_ON_TIMER , // PK 7 ** 69 ** A15 -}; - -#endif - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_HARDWARE Serial -#define SERIAL_PORT_HARDWARE1 Serial1 -#define SERIAL_PORT_HARDWARE2 Serial2 -#define SERIAL_PORT_HARDWARE3 Serial3 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 -#define SERIAL_PORT_HARDWARE_OPEN1 Serial2 -#define SERIAL_PORT_HARDWARE_OPEN2 Serial3 - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/rambo/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/rambo/pins_arduino.h deleted file mode 100644 index f49a23fc02..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/rambo/pins_arduino.h +++ /dev/null @@ -1,411 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 82 -#define NUM_ANALOG_INPUTS 16 -#define analogInputToDigitalPin(p) ((p < 16) ? (p) + 54 : -1) -#define digitalPinHasPWM(p) (((p) >= 2 && (p) <= 13) || ((p) >= 44 && (p)<= 46)) - -static const uint8_t SS = 53; -static const uint8_t MOSI = 51; -static const uint8_t MISO = 50; -static const uint8_t SCK = 52; - -static const uint8_t SDA = 20; -static const uint8_t SCL = 21; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 54; -static const uint8_t A1 = 55; -static const uint8_t A2 = 56; -static const uint8_t A3 = 57; -static const uint8_t A4 = 58; -static const uint8_t A5 = 59; -static const uint8_t A6 = 60; -static const uint8_t A7 = 61; -static const uint8_t A8 = 62; -static const uint8_t A9 = 63; -static const uint8_t A10 = 64; -static const uint8_t A11 = 65; -static const uint8_t A12 = 66; -static const uint8_t A13 = 67; -static const uint8_t A14 = 68; -static const uint8_t A15 = 69; - -// A majority of the pins are NOT PCINTs, SO BE WARNED (i.e. you cannot use them as receive pins) -// Only pins available for RECEIVE (TRANSMIT can be on any pin): -// (I've deliberately left out pin mapping to the Hardware USARTs - seems senseless to me) -// Pins: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 - -#define digitalPinToPCICR(p) ( (((p) >= 10) && ((p) <= 13)) || \ - (((p) >= 50) && ((p) <= 53)) || \ - (((p) >= 62) && ((p) <= 69)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? 2 : \ - 0 ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 10) && ((p) <= 13)) || (((p) >= 50) && ((p) <= 53)) ? (&PCMSK0) : \ - ( (((p) >= 62) && ((p) <= 69)) ? (&PCMSK2) : \ - ((uint8_t *)0) ) ) - -#define digitalPinToPCMSKbit(p) ( (((p) >= 10) && ((p) <= 13)) ? ((p) - 6) : \ - ( ((p) == 50) ? 3 : \ - ( ((p) == 51) ? 2 : \ - ( ((p) == 52) ? 1 : \ - ( ((p) == 53) ? 0 : \ - ( (((p) >= 62) && ((p) <= 69)) ? ((p) - 62) : \ - 0 ) ) ) ) ) ) - -#ifdef ARDUINO_MAIN - -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, - (uint16_t) &DDRG, - (uint16_t) &DDRH, - NOT_A_PORT, - (uint16_t) &DDRJ, - (uint16_t) &DDRK, - (uint16_t) &DDRL, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, - (uint16_t) &PORTG, - (uint16_t) &PORTH, - NOT_A_PORT, - (uint16_t) &PORTJ, - (uint16_t) &PORTK, - (uint16_t) &PORTL, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PIN, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, - (uint16_t) &PING, - (uint16_t) &PINH, - NOT_A_PIN, - (uint16_t) &PINJ, - (uint16_t) &PINK, - (uint16_t) &PINL, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - // PORTLIST - // ------------------------------------------- - PE , // PE 0 ** 0 ** USART0_RX - PE , // PE 1 ** 1 ** USART0_TX - PE , // PE 4 ** 2 ** PWM2 - PE , // PE 5 ** 3 ** PWM3 - PG , // PG 5 ** 4 ** PWM4 - PE , // PE 3 ** 5 ** PWM5 - PH , // PH 3 ** 6 ** PWM6 - PH , // PH 4 ** 7 ** PWM7 - PH , // PH 5 ** 8 ** PWM8 - PH , // PH 6 ** 9 ** PWM9 - PB , // PB 4 ** 10 ** PWM10 - PB , // PB 5 ** 11 ** PWM11 - PB , // PB 6 ** 12 ** PWM12 - PB , // PB 7 ** 13 ** PWM13 - PJ , // PJ 1 ** 14 ** USART3_TX - PJ , // PJ 0 ** 15 ** USART3_RX - PH , // PH 1 ** 16 ** USART2_TX - PH , // PH 0 ** 17 ** USART2_RX - PD , // PD 3 ** 18 ** USART1_TX - PD , // PD 2 ** 19 ** USART1_RX - PD , // PD 1 ** 20 ** I2C_SDA - PD , // PD 0 ** 21 ** I2C_SCL - PA , // PA 0 ** 22 ** D22 - PA , // PA 1 ** 23 ** D23 - PA , // PA 2 ** 24 ** D24 - PA , // PA 3 ** 25 ** D25 - PA , // PA 4 ** 26 ** D26 - PA , // PA 5 ** 27 ** D27 - PA , // PA 6 ** 28 ** D28 - PA , // PA 7 ** 29 ** D29 - PC , // PC 7 ** 30 ** D30 - PC , // PC 6 ** 31 ** D31 - PC , // PC 5 ** 32 ** D32 - PC , // PC 4 ** 33 ** D33 - PC , // PC 3 ** 34 ** D34 - PC , // PC 2 ** 35 ** D35 - PC , // PC 1 ** 36 ** D36 - PC , // PC 0 ** 37 ** D37 - PD , // PD 7 ** 38 ** D38 - PG , // PG 2 ** 39 ** D39 - PG , // PG 1 ** 40 ** D40 - PG , // PG 0 ** 41 ** D41 - PL , // PL 7 ** 42 ** D42 - PL , // PL 6 ** 43 ** D43 - PL , // PL 5 ** 44 ** D44 - PL , // PL 4 ** 45 ** D45 - PL , // PL 3 ** 46 ** D46 - PL , // PL 2 ** 47 ** D47 - PL , // PL 1 ** 48 ** D48 - PL , // PL 0 ** 49 ** D49 - PB , // PB 3 ** 50 ** SPI_MISO - PB , // PB 2 ** 51 ** SPI_MOSI - PB , // PB 1 ** 52 ** SPI_SCK - PB , // PB 0 ** 53 ** SPI_SS - PF , // PF 0 ** 54 ** A0 - PF , // PF 1 ** 55 ** A1 - PF , // PF 2 ** 56 ** A2 - PF , // PF 3 ** 57 ** A3 - PF , // PF 4 ** 58 ** A4 - PF , // PF 5 ** 59 ** A5 - PF , // PF 6 ** 60 ** A6 - PF , // PF 7 ** 61 ** A7 - PK , // PK 0 ** 62 ** A8 - PK , // PK 1 ** 63 ** A9 - PK , // PK 2 ** 64 ** A10 - PK , // PK 3 ** 65 ** A11 - PK , // PK 4 ** 66 ** A12 - PK , // PK 5 ** 67 ** A13 - PK , // PK 6 ** 68 ** A14 - PK , // PK 7 ** 69 ** A15 - PG , // PG 4 ** 70 ** D70 - PG , // PG 3 ** 71 ** D71 - PJ , // PJ 2 ** 72 ** D72 - PJ , // PJ 3 ** 73 ** D73 - PJ , // PJ 7 ** 74 ** D74 - PJ , // PJ 4 ** 75 ** D75 - PJ , // PJ 5 ** 76 ** D76 - PJ , // PJ 6 ** 77 ** D77 - PE , // PE 2 ** 78 ** D78 - PE , // PE 6 ** 79 ** D79 - PE , // PE 7 ** 80 ** D80 - PD , // PD 4 ** 81 ** D81 - PD , // PD 5 ** 82 ** D82 - PD , // PD 6 ** 83 ** D83 - PH , // PH 2 ** 84 ** D84 - PH , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - // PIN IN PORT - // ------------------------------------------- - _BV( 0 ) , // PE 0 ** 0 ** USART0_RX - _BV( 1 ) , // PE 1 ** 1 ** USART0_TX - _BV( 4 ) , // PE 4 ** 2 ** PWM2 - _BV( 5 ) , // PE 5 ** 3 ** PWM3 - _BV( 5 ) , // PG 5 ** 4 ** PWM4 - _BV( 3 ) , // PE 3 ** 5 ** PWM5 - _BV( 3 ) , // PH 3 ** 6 ** PWM6 - _BV( 4 ) , // PH 4 ** 7 ** PWM7 - _BV( 5 ) , // PH 5 ** 8 ** PWM8 - _BV( 6 ) , // PH 6 ** 9 ** PWM9 - _BV( 4 ) , // PB 4 ** 10 ** PWM10 - _BV( 5 ) , // PB 5 ** 11 ** PWM11 - _BV( 6 ) , // PB 6 ** 12 ** PWM12 - _BV( 7 ) , // PB 7 ** 13 ** PWM13 - _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX - _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX - _BV( 1 ) , // PH 1 ** 16 ** USART2_TX - _BV( 0 ) , // PH 0 ** 17 ** USART2_RX - _BV( 3 ) , // PD 3 ** 18 ** USART1_TX - _BV( 2 ) , // PD 2 ** 19 ** USART1_RX - _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA - _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL - _BV( 0 ) , // PA 0 ** 22 ** D22 - _BV( 1 ) , // PA 1 ** 23 ** D23 - _BV( 2 ) , // PA 2 ** 24 ** D24 - _BV( 3 ) , // PA 3 ** 25 ** D25 - _BV( 4 ) , // PA 4 ** 26 ** D26 - _BV( 5 ) , // PA 5 ** 27 ** D27 - _BV( 6 ) , // PA 6 ** 28 ** D28 - _BV( 7 ) , // PA 7 ** 29 ** D29 - _BV( 7 ) , // PC 7 ** 30 ** D30 - _BV( 6 ) , // PC 6 ** 31 ** D31 - _BV( 5 ) , // PC 5 ** 32 ** D32 - _BV( 4 ) , // PC 4 ** 33 ** D33 - _BV( 3 ) , // PC 3 ** 34 ** D34 - _BV( 2 ) , // PC 2 ** 35 ** D35 - _BV( 1 ) , // PC 1 ** 36 ** D36 - _BV( 0 ) , // PC 0 ** 37 ** D37 - _BV( 7 ) , // PD 7 ** 38 ** D38 - _BV( 2 ) , // PG 2 ** 39 ** D39 - _BV( 1 ) , // PG 1 ** 40 ** D40 - _BV( 0 ) , // PG 0 ** 41 ** D41 - _BV( 7 ) , // PL 7 ** 42 ** D42 - _BV( 6 ) , // PL 6 ** 43 ** D43 - _BV( 5 ) , // PL 5 ** 44 ** D44 - _BV( 4 ) , // PL 4 ** 45 ** D45 - _BV( 3 ) , // PL 3 ** 46 ** D46 - _BV( 2 ) , // PL 2 ** 47 ** D47 - _BV( 1 ) , // PL 1 ** 48 ** D48 - _BV( 0 ) , // PL 0 ** 49 ** D49 - _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO - _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI - _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK - _BV( 0 ) , // PB 0 ** 53 ** SPI_SS - _BV( 0 ) , // PF 0 ** 54 ** A0 - _BV( 1 ) , // PF 1 ** 55 ** A1 - _BV( 2 ) , // PF 2 ** 56 ** A2 - _BV( 3 ) , // PF 3 ** 57 ** A3 - _BV( 4 ) , // PF 4 ** 58 ** A4 - _BV( 5 ) , // PF 5 ** 59 ** A5 - _BV( 6 ) , // PF 6 ** 60 ** A6 - _BV( 7 ) , // PF 7 ** 61 ** A7 - _BV( 0 ) , // PK 0 ** 62 ** A8 - _BV( 1 ) , // PK 1 ** 63 ** A9 - _BV( 2 ) , // PK 2 ** 64 ** A10 - _BV( 3 ) , // PK 3 ** 65 ** A11 - _BV( 4 ) , // PK 4 ** 66 ** A12 - _BV( 5 ) , // PK 5 ** 67 ** A13 - _BV( 6 ) , // PK 6 ** 68 ** A14 - _BV( 7 ) , // PK 7 ** 69 ** A15 - _BV( 4 ) , // PG 4 ** 70 ** D70 - _BV( 3 ) , // PG 3 ** 71 ** D71 - _BV( 2 ) , // PJ 2 ** 72 ** D72 - _BV( 3 ) , // PJ 3 ** 73 ** D73 - _BV( 7 ) , // PJ 7 ** 74 ** D74 - _BV( 4 ) , // PJ 4 ** 75 ** D75 - _BV( 5 ) , // PJ 5 ** 76 ** D76 - _BV( 6 ) , // PJ 6 ** 77 ** D77 - _BV( 2 ) , // PE 2 ** 78 ** D78 - _BV( 6 ) , // PE 6 ** 79 ** D79 - _BV( 7 ) , // PE 7 ** 80 ** D80 - _BV( 4 ) , // PD 4 ** 81 ** D81 - _BV( 5 ) , // PD 5 ** 82 ** D82 - _BV( 6 ) , // PD 6 ** 83 ** D83 - _BV( 2 ) , // PH 2 ** 84 ** D84 - _BV( 7 ) , // PH 7 ** 85 ** D85 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - // TIMERS - // ------------------------------------------- - NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX - NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX - TIMER3B , // PE 4 ** 2 ** PWM2 - TIMER3C , // PE 5 ** 3 ** PWM3 - TIMER0B , // PG 5 ** 4 ** PWM4 - TIMER3A , // PE 3 ** 5 ** PWM5 - TIMER4A , // PH 3 ** 6 ** PWM6 - TIMER4B , // PH 4 ** 7 ** PWM7 - TIMER4C , // PH 5 ** 8 ** PWM8 - TIMER2B , // PH 6 ** 9 ** PWM9 - TIMER2A , // PB 4 ** 10 ** PWM10 - TIMER1A , // PB 5 ** 11 ** PWM11 - TIMER1B , // PB 6 ** 12 ** PWM12 - TIMER0A , // PB 7 ** 13 ** PWM13 - NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX - NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX - NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX - NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX - NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX - NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX - NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA - NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL - NOT_ON_TIMER , // PA 0 ** 22 ** D22 - NOT_ON_TIMER , // PA 1 ** 23 ** D23 - NOT_ON_TIMER , // PA 2 ** 24 ** D24 - NOT_ON_TIMER , // PA 3 ** 25 ** D25 - NOT_ON_TIMER , // PA 4 ** 26 ** D26 - NOT_ON_TIMER , // PA 5 ** 27 ** D27 - NOT_ON_TIMER , // PA 6 ** 28 ** D28 - NOT_ON_TIMER , // PA 7 ** 29 ** D29 - NOT_ON_TIMER , // PC 7 ** 30 ** D30 - NOT_ON_TIMER , // PC 6 ** 31 ** D31 - NOT_ON_TIMER , // PC 5 ** 32 ** D32 - NOT_ON_TIMER , // PC 4 ** 33 ** D33 - NOT_ON_TIMER , // PC 3 ** 34 ** D34 - NOT_ON_TIMER , // PC 2 ** 35 ** D35 - NOT_ON_TIMER , // PC 1 ** 36 ** D36 - NOT_ON_TIMER , // PC 0 ** 37 ** D37 - NOT_ON_TIMER , // PD 7 ** 38 ** D38 - NOT_ON_TIMER , // PG 2 ** 39 ** D39 - NOT_ON_TIMER , // PG 1 ** 40 ** D40 - NOT_ON_TIMER , // PG 0 ** 41 ** D41 - NOT_ON_TIMER , // PL 7 ** 42 ** D42 - NOT_ON_TIMER , // PL 6 ** 43 ** D43 - TIMER5C , // PL 5 ** 44 ** D44 - TIMER5B , // PL 4 ** 45 ** D45 - TIMER5A , // PL 3 ** 46 ** D46 - NOT_ON_TIMER , // PL 2 ** 47 ** D47 - NOT_ON_TIMER , // PL 1 ** 48 ** D48 - NOT_ON_TIMER , // PL 0 ** 49 ** D49 - NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO - NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI - NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK - NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS - NOT_ON_TIMER , // PF 0 ** 54 ** A0 - NOT_ON_TIMER , // PF 1 ** 55 ** A1 - NOT_ON_TIMER , // PF 2 ** 56 ** A2 - NOT_ON_TIMER , // PF 3 ** 57 ** A3 - NOT_ON_TIMER , // PF 4 ** 58 ** A4 - NOT_ON_TIMER , // PF 5 ** 59 ** A5 - NOT_ON_TIMER , // PF 6 ** 60 ** A6 - NOT_ON_TIMER , // PF 7 ** 61 ** A7 - NOT_ON_TIMER , // PK 0 ** 62 ** A8 - NOT_ON_TIMER , // PK 1 ** 63 ** A9 - NOT_ON_TIMER , // PK 2 ** 64 ** A10 - NOT_ON_TIMER , // PK 3 ** 65 ** A11 - NOT_ON_TIMER , // PK 4 ** 66 ** A12 - NOT_ON_TIMER , // PK 5 ** 67 ** A13 - NOT_ON_TIMER , // PK 6 ** 68 ** A14 - NOT_ON_TIMER , // PK 7 ** 69 ** A15 - NOT_ON_TIMER , // PG 4 ** 70 ** D70 - NOT_ON_TIMER , // PG 3 ** 71 ** D71 - NOT_ON_TIMER , // PJ 2 ** 72 ** D72 - NOT_ON_TIMER , // PJ 3 ** 73 ** D73 - NOT_ON_TIMER , // PJ 7 ** 74 ** D74 - NOT_ON_TIMER , // PJ 4 ** 75 ** D75 - NOT_ON_TIMER , // PJ 5 ** 76 ** D76 - NOT_ON_TIMER , // PJ 6 ** 77 ** D77 - NOT_ON_TIMER , // PE 2 ** 78 ** D78 - NOT_ON_TIMER , // PE 6 ** 79 ** D79 - NOT_ON_TIMER , // PE 7 ** 80 ** D80 - NOT_ON_TIMER , // PD 4 ** 81 ** D81 - NOT_ON_TIMER , // PD 5 ** 82 ** D82 - NOT_ON_TIMER , // PD 6 ** 83 ** D83 - NOT_ON_TIMER , // PH 2 ** 84 ** D84 - NOT_ON_TIMER , // PH 7 ** 85 ** D85 -}; - -#endif - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h deleted file mode 100644 index 499952dc94..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/sanguino/pins_arduino.h +++ /dev/null @@ -1,285 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ - - Changelog - ----------- - 11/25/11 - ryan@ryanmsutton.com - Add pins for Sanguino 644P and 1284P - 07/15/12 - ryan@ryanmsutton.com - Updated for arduino0101 -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NOT_A_PIN 0 -#define NOT_A_PORT 0 - -#define NOT_ON_TIMER 0 -#define TIMER0A 1 -#define TIMER0B 2 -#define TIMER1A 3 -#define TIMER1B 4 -#define TIMER2 5 -#define TIMER2A 6 -#define TIMER2B 7 - -#define TIMER3A 8 -#define TIMER3B 9 -#define TIMER3C 10 -#define TIMER4A 11 -#define TIMER4B 12 -#define TIMER4C 13 -#define TIMER5A 14 -#define TIMER5B 15 -#define TIMER5C 16 - -const static uint8_t SS = 4; -const static uint8_t MOSI = 5; -const static uint8_t MISO = 6; -const static uint8_t SCK = 7; - -static const uint8_t SDA = 17; -static const uint8_t SCL = 16; -static const uint8_t LED_BUILTIN = 13; - -static const uint8_t A0 = 31; -static const uint8_t A1 = 30; -static const uint8_t A2 = 29; -static const uint8_t A3 = 28; -static const uint8_t A4 = 27; -static const uint8_t A5 = 26; -static const uint8_t A6 = 25; -static const uint8_t A7 = 24; - -// On the ATmega1280, the addresses of some of the port registers are -// greater than 255, so we can't store them in uint8_t's. -// extern const uint16_t PROGMEM port_to_mode_PGM[]; -// extern const uint16_t PROGMEM port_to_input_PGM[]; -// extern const uint16_t PROGMEM port_to_output_PGM[]; - -// extern const uint8_t PROGMEM digital_pin_to_port_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[]; -// extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; - -// ATMEL ATMEGA644P / SANGUINO -// -// +---\/---+ -// INT0 (D 0) PB0 1| |40 PA0 (AI 0 / D31) -// INT1 (D 1) PB1 2| |39 PA1 (AI 1 / D30) -// INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) -// PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) -// PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) -// MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) -// MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) -// SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) -// RST 9| |32 AREF -// VCC 10| |31 GND -// GND 11| |30 AVCC -// XTAL2 12| |29 PC7 (D 23) -// XTAL1 13| |28 PC6 (D 22) -// RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI -// TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO -// RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS -// TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK -// PWM (D 12) PD4 18| |23 PC1 (D 17) SDA -// PWM (D 13) PD5 19| |22 PC0 (D 16) SCL -// PWM (D 14) PD6 20| |21 PD7 (D 15) PWM -// +--------+ -// -#define NUM_DIGITAL_PINS 24 -#define NUM_ANALOG_INPUTS 8 -#define analogInputToDigitalPin(p) ((p < 7) ? (p) + 24 : -1) - -#define digitalPinHasPWM(p) ((p) == 3 || (p) == 4 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15 ) - -#define digitalPinToPCICR(p) ( (((p) >= 0) && ((p) <= 31)) ? (&PCICR) : ((uint8_t *)0) ) - -#define digitalPinToPCICRbit(p) ( (((p) >= 24) && ((p) <= 31)) ? 0 : \ - ( (((p) >= 0) && ((p) <= 7)) ? 1 : \ - ( (((p) >= 16) && ((p) <= 23)) ? 2 : \ - ( (((p) >= 8) && ((p) <= 15)) ? 3 : \ - 0 ) ) ) ) - -#define digitalPinToPCMSK(p) ( (((p) >= 24) && ((p) <= 31)) ? (&PCMSK0) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (&PCMSK1) : \ - ( (((p) >= 16) && ((p) <= 23)) ? (&PCMSK2) : \ - ( (((p) >= 8) && ((p) <= 15)) ? (&PCMSK3) : \ - ((uint8_t *)0) ) ) ) ) - - -#define digitalPinToPCMSKbit(p) ( (((p) >= 24) && ((p) <= 31)) ? (31 - (p)) : \ - ( (((p) >= 0) && ((p) <= 7)) ? (p) : \ - ( (((p) >= 16) && ((p) <= 23)) ? ((p) - 16) : \ - ( (((p) >= 8) && ((p) <= 15)) ? ((p) - 8) : \ - 0 ) ) ) ) - -#define PA 1 -#define PB 2 -#define PC 3 -#define PD 4 -#define PE 5 -#define PF 6 -#define PG 7 -#define PH 8 -#define PJ 10 -#define PK 11 -#define PL 12 - -#ifdef ARDUINO_MAIN -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &DDRA, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PORTA, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, -}; -const uint16_t PROGMEM port_to_input_PGM[] = -{ - NOT_A_PORT, - (uint16_t) &PINA, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, -}; -const uint8_t PROGMEM digital_pin_to_port_PGM[] = -{ - PB, /* 0 */ - PB, - PB, - PB, - PB, - PB, - PB, - PB, - PD, /* 8 */ - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PC, /* 16 */ - PC, - PC, - PC, - PC, - PC, - PC, - PC, - PA, /* 24 */ - PA, - PA, - PA, - PA, - PA, - PA, - PA /* 31 */ -}; -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = -{ - _BV(0), /* 0, port B */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 8, port D */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 16, port C */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(7), /* 24, port A */ - _BV(6), - _BV(5), - _BV(4), - _BV(3), - _BV(2), - _BV(1), - _BV(0) -}; -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = -{ - NOT_ON_TIMER, /* 0 - PB0 */ - NOT_ON_TIMER, /* 1 - PB1 */ - NOT_ON_TIMER, /* 2 - PB2 */ - TIMER0A, /* 3 - PB3 */ - TIMER0B, /* 4 - PB4 */ - NOT_ON_TIMER, /* 5 - PB5 */ - NOT_ON_TIMER, /* 6 - PB6 */ - NOT_ON_TIMER, /* 7 - PB7 */ - NOT_ON_TIMER, /* 8 - PD0 */ - NOT_ON_TIMER, /* 9 - PD1 */ - NOT_ON_TIMER, /* 10 - PD2 */ - NOT_ON_TIMER, /* 11 - PD3 */ - TIMER1B, /* 12 - PD4 */ - TIMER1A, /* 13 - PD5 */ - TIMER2B, /* 14 - PD6 */ - TIMER2A, /* 15 - PD7 */ - NOT_ON_TIMER, /* 16 - PC0 */ - NOT_ON_TIMER, /* 17 - PC1 */ - NOT_ON_TIMER, /* 18 - PC2 */ - NOT_ON_TIMER, /* 19 - PC3 */ - NOT_ON_TIMER, /* 20 - PC4 */ - NOT_ON_TIMER, /* 21 - PC5 */ - NOT_ON_TIMER, /* 22 - PC6 */ - NOT_ON_TIMER, /* 23 - PC7 */ - NOT_ON_TIMER, /* 24 - PA0 */ - NOT_ON_TIMER, /* 25 - PA1 */ - NOT_ON_TIMER, /* 26 - PA2 */ - NOT_ON_TIMER, /* 27 - PA3 */ - NOT_ON_TIMER, /* 28 - PA4 */ - NOT_ON_TIMER, /* 29 - PA5 */ - NOT_ON_TIMER, /* 30 - PA6 */ - NOT_ON_TIMER /* 31 - PA7 */ -}; -#endif -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/standard/pins_arduino.h b/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/standard/pins_arduino.h deleted file mode 100644 index 3d4a9f6c70..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/hardware/marlin/avr/variants/standard/pins_arduino.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include - -#define NUM_DIGITAL_PINS 20 -#define NUM_ANALOG_INPUTS 6 -#define analogInputToDigitalPin(p) ((p < 6) ? (p) + 14 : -1) - -#if defined(__AVR_ATmega8__) -#define digitalPinHasPWM(p) ((p) == 9 || (p) == 10 || (p) == 11) -#else -#define digitalPinHasPWM(p) ((p) == 3 || (p) == 5 || (p) == 6 || (p) == 9 || (p) == 10 || (p) == 11) -#endif - -static const uint8_t SS = 10; -static const uint8_t MOSI = 11; -static const uint8_t MISO = 12; -static const uint8_t SCK = 13; - -static const uint8_t SDA = 18; -static const uint8_t SCL = 19; -#define LED_BUILTIN 13 - -static const uint8_t A0 = 14; -static const uint8_t A1 = 15; -static const uint8_t A2 = 16; -static const uint8_t A3 = 17; -static const uint8_t A4 = 18; -static const uint8_t A5 = 19; -static const uint8_t A6 = 20; -static const uint8_t A7 = 21; - -#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1)) -#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0)))) -#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14))) - -#define digitalPinToInterrupt(p) ((p) == 2 ? 0 : ((p) == 3 ? 1 : NOT_AN_INTERRUPT)) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA8 & 168 / ARDUINO -// -// +-\/-+ -// PC6 1| |28 PC5 (AI 5) -// (D 0) PD0 2| |27 PC4 (AI 4) -// (D 1) PD1 3| |26 PC3 (AI 3) -// (D 2) PD2 4| |25 PC2 (AI 2) -// PWM+ (D 3) PD3 5| |24 PC1 (AI 1) -// (D 4) PD4 6| |23 PC0 (AI 0) -// VCC 7| |22 GND -// GND 8| |21 AREF -// PB6 9| |20 AVCC -// PB7 10| |19 PB5 (D 13) -// PWM+ (D 5) PD5 11| |18 PB4 (D 12) -// PWM+ (D 6) PD6 12| |17 PB3 (D 11) PWM -// (D 7) PD7 13| |16 PB2 (D 10) PWM -// (D 8) PB0 14| |15 PB1 (D 9) PWM -// +----+ -// -// (PWM+ indicates the additional PWM pins on the ATmega168.) - -// ATMEL ATMEGA1280 / ARDUINO -// -// 0-7 PE0-PE7 works -// 8-13 PB0-PB5 works -// 14-21 PA0-PA7 works -// 22-29 PH0-PH7 works -// 30-35 PG5-PG0 works -// 36-43 PC7-PC0 works -// 44-51 PJ7-PJ0 works -// 52-59 PL7-PL0 works -// 60-67 PD7-PD0 works -// A0-A7 PF0-PF7 -// A8-A15 PK0-PK7 - - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, /* 0 */ - PD, - PD, - PD, - PD, - PD, - PD, - PD, - PB, /* 8 */ - PB, - PB, - PB, - PB, - PB, - PC, /* 14 */ - PC, - PC, - PC, - PC, - PC, -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(0), /* 0, port D */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(6), - _BV(7), - _BV(0), /* 8, port B */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), - _BV(0), /* 14, port C */ - _BV(1), - _BV(2), - _BV(3), - _BV(4), - _BV(5), -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, /* 0 - port D */ - NOT_ON_TIMER, - NOT_ON_TIMER, - // on the ATmega168, digital pin 3 has hardware pwm -#if defined(__AVR_ATmega8__) - NOT_ON_TIMER, -#else - TIMER2B, -#endif - NOT_ON_TIMER, - // on the ATmega168, digital pins 5 and 6 have hardware pwm -#if defined(__AVR_ATmega8__) - NOT_ON_TIMER, - NOT_ON_TIMER, -#else - TIMER0B, - TIMER0A, -#endif - NOT_ON_TIMER, - NOT_ON_TIMER, /* 8 - port B */ - TIMER1A, - TIMER1B, -#if defined(__AVR_ATmega8__) - TIMER2, -#else - TIMER2A, -#endif - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, /* 14 - port C */ - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -#endif - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_HARDWARE Serial - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.cpp b/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.cpp deleted file mode 100644 index 8278c19aee..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.cpp +++ /dev/null @@ -1,723 +0,0 @@ -//////////////////////////////////////////////////////////// -//ORIGINAL CODE 12/12/2011- Mike Hord, SparkFun Electronics -//LIBRARY Created by Adam Meyer of bildr Aug 18th 2012 -//Released as MIT license -//////////////////////////////////////////////////////////// - -#include -#include "L6470.h" -#include - -#define ENABLE_RESET_PIN 0 -#define K_VALUE 100 - -L6470::L6470(int SSPin){ - _SSPin = SSPin; - // Serial.begin(9600); -} - -void L6470::init(int k_value){ - // This is the generic initialization function to set up the Arduino to - // communicate with the dSPIN chip. - - // set up the input/output pins for the application. - pinMode(SLAVE_SELECT_PIN, OUTPUT); // The SPI peripheral REQUIRES the hardware SS pin- - // pin 10- to be an output. This is in here just - // in case some future user makes something other - // than pin 10 the SS pin. - - pinMode(_SSPin, OUTPUT); - digitalWrite(_SSPin, HIGH); - pinMode(MOSI, OUTPUT); - pinMode(MISO, INPUT); - pinMode(SCK, OUTPUT); - pinMode(BUSYN, INPUT); -#if (ENABLE_RESET_PIN == 1) - pinMode(RESET, OUTPUT); - // reset the dSPIN chip. This could also be accomplished by - // calling the "L6470::ResetDev()" function after SPI is initialized. - digitalWrite(RESET, HIGH); - delay(10); - digitalWrite(RESET, LOW); - delay(10); - digitalWrite(RESET, HIGH); - delay(10); -#endif - - - // initialize SPI for the dSPIN chip's needs: - // most significant bit first, - // SPI clock not to exceed 5MHz, - // SPI_MODE3 (clock idle high, latch data on rising edge of clock) - SPI.begin(); - SPI.setBitOrder(MSBFIRST); - SPI.setClockDivider(SPI_CLOCK_DIV16); // or 2, 8, 16, 32, 64 - SPI.setDataMode(SPI_MODE3); - - // First things first: let's check communications. The CONFIG register should - // power up to 0x2E88, so we can use that to check the communications. - if (GetParam(CONFIG) == 0x2E88){ - //Serial.println('good to go'); - } - else{ - //Serial.println('Comm issue'); - } - -#if (ENABLE_RESET_PIN == 0) - resetDev(); -#endif - // First, let's set the step mode register: - // - SYNC_EN controls whether the BUSY/SYNC pin reflects the step - // frequency or the BUSY status of the chip. We want it to be the BUSY - // status. - // - STEP_SEL_x is the microstepping rate- we'll go full step. - // - SYNC_SEL_x is the ratio of (micro)steps to toggles on the - // BUSY/SYNC pin (when that pin is used for SYNC). Make it 1:1, despite - // not using that pin. - //SetParam(STEP_MODE, !SYNC_EN | STEP_SEL_1 | SYNC_SEL_1); - - - SetParam(KVAL_RUN, k_value); - SetParam(KVAL_ACC, k_value); - SetParam(KVAL_DEC, k_value); - SetParam(KVAL_HOLD, k_value); - - // Set up the CONFIG register as follows: - // PWM frequency divisor = 1 - // PWM frequency multiplier = 2 (62.5kHz PWM frequency) - // Slew rate is 290V/us - // Do NOT shut down bridges on overcurrent - // Disable motor voltage compensation - // Hard stop on switch low - // 16MHz internal oscillator, nothing on output - SetParam(CONFIG, CONFIG_PWM_DIV_1 | CONFIG_PWM_MUL_2 | CONFIG_SR_290V_us| CONFIG_OC_SD_DISABLE | CONFIG_VS_COMP_DISABLE | CONFIG_SW_HARD_STOP | CONFIG_INT_16MHZ); - // Configure the RUN KVAL. This defines the duty cycle of the PWM of the bridges - // during running. 0xFF means that they are essentially NOT PWMed during run; this - // MAY result in more power being dissipated than you actually need for the task. - // Setting this value too low may result in failure to turn. - // There are ACC, DEC, and HOLD KVAL registers as well; you may need to play with - // those values to get acceptable performance for a given application. - //SetParam(KVAL_RUN, 0xFF); - // Calling GetStatus() clears the UVLO bit in the status register, which is set by - // default on power-up. The driver may not run without that bit cleared by this - // read operation. - getStatus(); - - hardStop(); //engage motors -} - -boolean L6470::isBusy(){ - int status = getStatus(); - return !((status >> 1) & 0b1); -} - -void L6470::setMicroSteps(int microSteps){ - byte stepVal = 0; - - for(stepVal = 0; stepVal < 8; stepVal++){ - if(microSteps == 1) break; - microSteps = microSteps >> 1; - } - - SetParam(STEP_MODE, !SYNC_EN | stepVal | SYNC_SEL_1); -} - -void L6470::setThresholdSpeed(float thresholdSpeed){ - // Configure the FS_SPD register- this is the speed at which the driver ceases - // microstepping and goes to full stepping. FSCalc() converts a value in steps/s - // to a value suitable for this register; to disable full-step switching, you - // can pass 0x3FF to this register. - - if(thresholdSpeed == 0.0){ - SetParam(FS_SPD, 0x3FF); - } - else{ - SetParam(FS_SPD, FSCalc(thresholdSpeed)); - } -} - - -void L6470::setCurrent(int current){} - - - -void L6470::setMaxSpeed(int speed){ - // Configure the MAX_SPEED register- this is the maximum number of (micro)steps per - // second allowed. You'll want to mess around with your desired application to see - // how far you can push it before the motor starts to slip. The ACTUAL parameter - // passed to this function is in steps/tick; MaxSpdCalc() will convert a number of - // steps/s into an appropriate value for this function. Note that for any move or - // goto type function where no speed is specified, this value will be used. - SetParam(MAX_SPEED, MaxSpdCalc(speed)); -} - - -void L6470::setMinSpeed(int speed){ - // Configure the MAX_SPEED register- this is the maximum number of (micro)steps per - // second allowed. You'll want to mess around with your desired application to see - // how far you can push it before the motor starts to slip. The ACTUAL parameter - // passed to this function is in steps/tick; MaxSpdCalc() will convert a number of - // steps/s into an appropriate value for this function. Note that for any move or - // goto type function where no speed is specified, this value will be used. - SetParam(MIN_SPEED, MinSpdCalc(speed)); -} - - - - -void L6470::setAcc(float acceleration){ - // Configure the acceleration rate, in steps/tick/tick. There is also a DEC register; - // both of them have a function (AccCalc() and DecCalc() respectively) that convert - // from steps/s/s into the appropriate value for the register. Writing ACC to 0xfff - // sets the acceleration and deceleration to 'infinite' (or as near as the driver can - // manage). If ACC is set to 0xfff, DEC is ignored. To get infinite deceleration - // without infinite acceleration, only hard stop will work. - unsigned long accelerationBYTES = AccCalc(acceleration); - SetParam(ACC, accelerationBYTES); -} - - -void L6470::setDec(float deceleration){ - unsigned long decelerationBYTES = DecCalc(deceleration); - SetParam(DEC, decelerationBYTES); -} - - -long L6470::getPos(){ - unsigned long position = GetParam(ABS_POS); - return convert(position); -} - -float L6470::getSpeed(){ - /* - SPEED - The SPEED register contains the current motor speed, expressed in step/tick (format unsigned fixed point 0.28). - In order to convert the SPEED value in step/s the following formula can be used: - Equation 4 - where SPEED is the integer number stored into the register and tick is 250 ns. - The available range is from 0 to 15625 step/s with a resolution of 0.015 step/s. - Note: The range effectively available to the user is limited by the MAX_SPEED parameter. - */ - - return (float) GetParam(SPEED); - //return (float) speed * pow(8, -22); - //return FSCalc(speed); NEEDS FIX -} - - -void L6470::setOverCurrent(unsigned int ma_current){ - // Configure the overcurrent detection threshold. - byte OCValue = floor(ma_current / 375); - if(OCValue > 0x0F)OCValue = 0x0F; - SetParam(OCD_TH, OCValue); -} - -void L6470::setStallCurrent(float ma_current){ - byte STHValue = (byte)floor(ma_current / 31.25); - if(STHValue > 0x80)STHValue = 0x80; - if(STHValue < 0)STHValue = 0; - SetParam(STALL_TH, STHValue); -} - -void L6470::SetLowSpeedOpt(boolean enable){ - // Enable or disable the low-speed optimization option. If enabling, - // the other 12 bits of the register will be automatically zero. - // When disabling, the value will have to be explicitly written by - // the user with a SetParam() call. See the datasheet for further - // information about low-speed optimization. - Xfer(SET_PARAM | MIN_SPEED); - if (enable) Param(0x1000, 13); - else Param(0, 13); -} - - -void L6470::run(byte dir, float spd){ - // RUN sets the motor spinning in a direction (defined by the constants - // FWD and REV). Maximum speed and minimum speed are defined - // by the MAX_SPEED and MIN_SPEED registers; exceeding the FS_SPD value - // will switch the device into full-step mode. - // The SpdCalc() function is provided to convert steps/s values into - // appropriate integer values for this function. - unsigned long speedVal = SpdCalc(spd); - - Xfer(RUN | dir); - if (speedVal > 0xFFFFF) speedVal = 0xFFFFF; - Xfer((byte)(speedVal >> 16)); - Xfer((byte)(speedVal >> 8)); - Xfer((byte)(speedVal)); -} - - -void L6470::Step_Clock(byte dir){ - // STEP_CLOCK puts the device in external step clocking mode. When active, - // pin 25, STCK, becomes the step clock for the device, and steps it in - // the direction (set by the FWD and REV constants) imposed by the call - // of this function. Motion commands (RUN, MOVE, etc) will cause the device - // to exit step clocking mode. - Xfer(STEP_CLOCK | dir); -} - -void L6470::move(long n_step){ - // MOVE will send the motor n_step steps (size based on step mode) in the - // direction imposed by dir (FWD or REV constants may be used). The motor - // will accelerate according the acceleration and deceleration curves, and - // will run at MAX_SPEED. Stepping mode will adhere to FS_SPD value, as well. - - byte dir; - - if(n_step >= 0){ - dir = FWD; - } - else{ - dir = REV; - } - - long n_stepABS = abs(n_step); - - Xfer(MOVE | dir); //set direction - if (n_stepABS > 0x3FFFFF) n_step = 0x3FFFFF; - Xfer((byte)(n_stepABS >> 16)); - Xfer((byte)(n_stepABS >> 8)); - Xfer((byte)(n_stepABS)); -} - -void L6470::goTo(long pos){ - // GOTO operates much like MOVE, except it produces absolute motion instead - // of relative motion. The motor will be moved to the indicated position - // in the shortest possible fashion. - - Xfer(GOTO); - if (pos > 0x3FFFFF) pos = 0x3FFFFF; - Xfer((byte)(pos >> 16)); - Xfer((byte)(pos >> 8)); - Xfer((byte)(pos)); -} - - -void L6470::goTo_DIR(byte dir, long pos){ - // Same as GOTO, but with user constrained rotational direction. - - Xfer(GOTO_DIR); - if (pos > 0x3FFFFF) pos = 0x3FFFFF; - Xfer((byte)(pos >> 16)); - Xfer((byte)(pos >> 8)); - Xfer((byte)(pos)); -} - -void L6470::goUntil(byte act, byte dir, unsigned long spd){ - // GoUntil will set the motor running with direction dir (REV or - // FWD) until a falling edge is detected on the SW pin. Depending - // on bit SW_MODE in CONFIG, either a hard stop or a soft stop is - // performed at the falling edge, and depending on the value of - // act (either RESET or COPY) the value in the ABS_POS register is - // either RESET to 0 or COPY-ed into the MARK register. - Xfer(GO_UNTIL | act | dir); - if (spd > 0x3FFFFF) spd = 0x3FFFFF; - Xfer((byte)(spd >> 16)); - Xfer((byte)(spd >> 8)); - Xfer((byte)(spd)); -} - -void L6470::releaseSW(byte act, byte dir){ - // Similar in nature to GoUntil, ReleaseSW produces motion at the - // higher of two speeds: the value in MIN_SPEED or 5 steps/s. - // The motor continues to run at this speed until a rising edge - // is detected on the switch input, then a hard stop is performed - // and the ABS_POS register is either COPY-ed into MARK or RESET to - // 0, depending on whether RESET or COPY was passed to the function - // for act. - Xfer(RELEASE_SW | act | dir); -} - -void L6470::goHome(){ - // GoHome is equivalent to GoTo(0), but requires less time to send. - // Note that no direction is provided; motion occurs through shortest - // path. If a direction is required, use GoTo_DIR(). - Xfer(GO_HOME); -} - -void L6470::goMark(){ - // GoMark is equivalent to GoTo(MARK), but requires less time to send. - // Note that no direction is provided; motion occurs through shortest - // path. If a direction is required, use GoTo_DIR(). - Xfer(GO_MARK); -} - - -void L6470::setMark(long value){ - - Xfer(MARK); - if (value > 0x3FFFFF) value = 0x3FFFFF; - if (value < -0x3FFFFF) value = -0x3FFFFF; - - - Xfer((byte)(value >> 16)); - Xfer((byte)(value >> 8)); - Xfer((byte)(value)); -} - - -void L6470::setMark(){ - long value = getPos(); - - Xfer(MARK); - if (value > 0x3FFFFF) value = 0x3FFFFF; - if (value < -0x3FFFFF) value = -0x3FFFFF; - - - Xfer((byte)(value >> 16)); - Xfer((byte)(value >> 8)); - Xfer((byte)(value)); -} - -void L6470::setAsHome(){ - // Sets the ABS_POS register to 0, effectively declaring the current - // position to be "HOME". - Xfer(RESET_POS); -} - -void L6470::resetDev(){ - // Reset device to power up conditions. Equivalent to toggling the STBY - // pin or cycling power. - Xfer(RESET_DEVICE); -} - -void L6470::softStop(){ - // Bring the motor to a halt using the deceleration curve. - Xfer(SOFT_STOP); -} - -void L6470::hardStop(){ - // Stop the motor right away. No deceleration. - Xfer(HARD_STOP); -} - -void L6470::softFree(){ - // Decelerate the motor and disengage - Xfer(SOFT_HIZ); -} - -void L6470::free(){ - // disengage the motor immediately with no deceleration. - Xfer(HARD_HIZ); -} - -int L6470::getStatus(){ - // Fetch and return the 16-bit value in the STATUS register. Resets - // any warning flags and exits any error states. Using GetParam() - // to read STATUS does not clear these values. - int temp = 0; - Xfer(GET_STATUS); - temp = Xfer(0)<<8; - temp |= Xfer(0); - return temp; -} - -unsigned long L6470::AccCalc(float stepsPerSecPerSec){ - // The value in the ACC register is [(steps/s/s)*(tick^2)]/(2^-40) where tick is - // 250ns (datasheet value)- 0x08A on boot. - // Multiply desired steps/s/s by .137438 to get an appropriate value for this register. - // This is a 12-bit value, so we need to make sure the value is at or below 0xFFF. - float temp = stepsPerSecPerSec * 0.137438; - if( (unsigned long) long(temp) > 0x00000FFF) return 0x00000FFF; - else return (unsigned long) long(temp); -} - - -unsigned long L6470::DecCalc(float stepsPerSecPerSec){ - // The calculation for DEC is the same as for ACC. Value is 0x08A on boot. - // This is a 12-bit value, so we need to make sure the value is at or below 0xFFF. - float temp = stepsPerSecPerSec * 0.137438; - if( (unsigned long) long(temp) > 0x00000FFF) return 0x00000FFF; - else return (unsigned long) long(temp); -} - -unsigned long L6470::MaxSpdCalc(float stepsPerSec){ - // The value in the MAX_SPD register is [(steps/s)*(tick)]/(2^-18) where tick is - // 250ns (datasheet value)- 0x041 on boot. - // Multiply desired steps/s by .065536 to get an appropriate value for this register - // This is a 10-bit value, so we need to make sure it remains at or below 0x3FF - float temp = stepsPerSec * .065536; - if( (unsigned long) long(temp) > 0x000003FF) return 0x000003FF; - else return (unsigned long) long(temp); -} - -unsigned long L6470::MinSpdCalc(float stepsPerSec){ - // The value in the MIN_SPD register is [(steps/s)*(tick)]/(2^-24) where tick is - // 250ns (datasheet value)- 0x000 on boot. - // Multiply desired steps/s by 4.1943 to get an appropriate value for this register - // This is a 12-bit value, so we need to make sure the value is at or below 0xFFF. - float temp = stepsPerSec * 4.1943; - if( (unsigned long) long(temp) > 0x00000FFF) return 0x00000FFF; - else return (unsigned long) long(temp); -} - -unsigned long L6470::FSCalc(float stepsPerSec){ - // The value in the FS_SPD register is ([(steps/s)*(tick)]/(2^-18))-0.5 where tick is - // 250ns (datasheet value)- 0x027 on boot. - // Multiply desired steps/s by .065536 and subtract .5 to get an appropriate value for this register - // This is a 10-bit value, so we need to make sure the value is at or below 0x3FF. - float temp = (stepsPerSec * .065536)-.5; - if( (unsigned long) long(temp) > 0x000003FF) return 0x000003FF; - else return (unsigned long) long(temp); -} - -unsigned long L6470::IntSpdCalc(float stepsPerSec){ - // The value in the INT_SPD register is [(steps/s)*(tick)]/(2^-24) where tick is - // 250ns (datasheet value)- 0x408 on boot. - // Multiply desired steps/s by 4.1943 to get an appropriate value for this register - // This is a 14-bit value, so we need to make sure the value is at or below 0x3FFF. - float temp = stepsPerSec * 4.1943; - if( (unsigned long) long(temp) > 0x00003FFF) return 0x00003FFF; - else return (unsigned long) long(temp); -} - -unsigned long L6470::SpdCalc(float stepsPerSec){ - // When issuing RUN command, the 20-bit speed is [(steps/s)*(tick)]/(2^-28) where tick is - // 250ns (datasheet value). - // Multiply desired steps/s by 67.106 to get an appropriate value for this register - // This is a 20-bit value, so we need to make sure the value is at or below 0xFFFFF. - - float temp = stepsPerSec * 67.106; - if( (unsigned long) long(temp) > 0x000FFFFF) return 0x000FFFFF; - else return (unsigned long)temp; -} - -unsigned long L6470::Param(unsigned long value, byte bit_len){ - // Generalization of the subsections of the register read/write functionality. - // We want the end user to just write the value without worrying about length, - // so we pass a bit length parameter from the calling function. - unsigned long ret_val=0; // We'll return this to generalize this function - // for both read and write of registers. - byte byte_len = bit_len/8; // How many BYTES do we have? - if (bit_len%8 > 0) byte_len++; // Make sure not to lose any partial byte values. - // Let's make sure our value has no spurious bits set, and if the value was too - // high, max it out. - unsigned long mask = 0xffffffff >> (32-bit_len); - if (value > mask) value = mask; - // The following three if statements handle the various possible byte length - // transfers- it'll be no less than 1 but no more than 3 bytes of data. - // L6470::Xfer() sends a byte out through SPI and returns a byte received - // over SPI- when calling it, we typecast a shifted version of the masked - // value, then we shift the received value back by the same amount and - // store it until return time. - if (byte_len == 3) { - ret_val |= long(Xfer((byte)(value>>16))) << 16; - //Serial.println(ret_val, HEX); - } - if (byte_len >= 2) { - ret_val |= long(Xfer((byte)(value>>8))) << 8; - //Serial.println(ret_val, HEX); - } - if (byte_len >= 1) { - ret_val |= Xfer((byte)value); - //Serial.println(ret_val, HEX); - } - // Return the received values. Mask off any unnecessary bits, just for - // the sake of thoroughness- we don't EXPECT to see anything outside - // the bit length range but better to be safe than sorry. - return (ret_val & mask); -} - -byte L6470::Xfer(byte data){ - // This simple function shifts a byte out over SPI and receives a byte over - // SPI. Unusually for SPI devices, the dSPIN requires a toggling of the - // CS (slaveSelect) pin after each byte sent. That makes this function - // a bit more reasonable, because we can include more functionality in it. - byte data_out; - digitalWrite(_SSPin,LOW); - // SPI.transfer() both shifts a byte out on the MOSI pin AND receives a - // byte in on the MISO pin. - data_out = SPI.transfer(data); - digitalWrite(_SSPin,HIGH); - return data_out; -} - - - -void L6470::SetParam(byte param, unsigned long value){ - Xfer(SET_PARAM | param); - ParamHandler(param, value); -} - -unsigned long L6470::GetParam(byte param){ - // Realize the "get parameter" function, to read from the various registers in - // the dSPIN chip. - Xfer(GET_PARAM | param); - return ParamHandler(param, 0); -} - -long L6470::convert(unsigned long val){ - //convert 22bit 2s comp to signed long - int MSB = val >> 21; - - val = val << 11; - val = val >> 11; - - if(MSB == 1) val = val | 0b11111111111000000000000000000000; - return val; -} - -unsigned long L6470::ParamHandler(byte param, unsigned long value){ - // Much of the functionality between "get parameter" and "set parameter" is - // very similar, so we deal with that by putting all of it in one function - // here to save memory space and simplify the program. - unsigned long ret_val = 0; // This is a temp for the value to return. - // This switch structure handles the appropriate action for each register. - // This is necessary since not all registers are of the same length, either - // bit-wise or byte-wise, so we want to make sure we mask out any spurious - // bits and do the right number of transfers. That is handled by the dSPIN_Param() - // function, in most cases, but for 1-byte or smaller transfers, we call - // Xfer() directly. - switch (param) - { - // ABS_POS is the current absolute offset from home. It is a 22 bit number expressed - // in two's complement. At power up, this value is 0. It cannot be written when - // the motor is running, but at any other time, it can be updated to change the - // interpreted position of the motor. - case ABS_POS: - ret_val = Param(value, 22); - break; - // EL_POS is the current electrical position in the step generation cycle. It can - // be set when the motor is not in motion. Value is 0 on power up. - case EL_POS: - ret_val = Param(value, 9); - break; - // MARK is a second position other than 0 that the motor can be told to go to. As - // with ABS_POS, it is 22-bit two's complement. Value is 0 on power up. - case MARK: - ret_val = Param(value, 22); - break; - // SPEED contains information about the current speed. It is read-only. It does - // NOT provide direction information. - case SPEED: - ret_val = Param(0, 20); - break; - // ACC and DEC set the acceleration and deceleration rates. Set ACC to 0xFFF - // to get infinite acceleration/decelaeration- there is no way to get infinite - // deceleration w/o infinite acceleration (except the HARD STOP command). - // Cannot be written while motor is running. Both default to 0x08A on power up. - // AccCalc() and DecCalc() functions exist to convert steps/s/s values into - // 12-bit values for these two registers. - case ACC: - ret_val = Param(value, 12); - break; - case DEC: - ret_val = Param(value, 12); - break; - // MAX_SPEED is just what it says- any command which attempts to set the speed - // of the motor above this value will simply cause the motor to turn at this - // speed. Value is 0x041 on power up. - // MaxSpdCalc() function exists to convert steps/s value into a 10-bit value - // for this register. - case MAX_SPEED: - ret_val = Param(value, 10); - break; - // MIN_SPEED controls two things- the activation of the low-speed optimization - // feature and the lowest speed the motor will be allowed to operate at. LSPD_OPT - // is the 13th bit, and when it is set, the minimum allowed speed is automatically - // set to zero. This value is 0 on startup. - // MinSpdCalc() function exists to convert steps/s value into a 12-bit value for this - // register. SetLowSpeedOpt() function exists to enable/disable the optimization feature. - case MIN_SPEED: - ret_val = Param(value, 12); - break; - // FS_SPD register contains a threshold value above which microstepping is disabled - // and the dSPIN operates in full-step mode. Defaults to 0x027 on power up. - // FSCalc() function exists to convert steps/s value into 10-bit integer for this - // register. - case FS_SPD: - ret_val = Param(value, 10); - break; - // KVAL is the maximum voltage of the PWM outputs. These 8-bit values are ratiometric - // representations: 255 for full output voltage, 128 for half, etc. Default is 0x29. - // The implications of different KVAL settings is too complex to dig into here, but - // it will usually work to max the value for RUN, ACC, and DEC. Maxing the value for - // HOLD may result in excessive power dissipation when the motor is not running. - case KVAL_HOLD: - ret_val = Xfer((byte)value); - break; - case KVAL_RUN: - ret_val = Xfer((byte)value); - break; - case KVAL_ACC: - ret_val = Xfer((byte)value); - break; - case KVAL_DEC: - ret_val = Xfer((byte)value); - break; - // INT_SPD, ST_SLP, FN_SLP_ACC and FN_SLP_DEC are all related to the back EMF - // compensation functionality. Please see the datasheet for details of this - // function- it is too complex to discuss here. Default values seem to work - // well enough. - case INT_SPD: - ret_val = Param(value, 14); - break; - case ST_SLP: - ret_val = Xfer((byte)value); - break; - case FN_SLP_ACC: - ret_val = Xfer((byte)value); - break; - case FN_SLP_DEC: - ret_val = Xfer((byte)value); - break; - // K_THERM is motor winding thermal drift compensation. Please see the datasheet - // for full details on operation- the default value should be okay for most users. - case K_THERM: - ret_val = Xfer((byte)value & 0x0F); - break; - // ADC_OUT is a read-only register containing the result of the ADC measurements. - // This is less useful than it sounds; see the datasheet for more information. - case ADC_OUT: - ret_val = Xfer(0); - break; - // Set the overcurrent threshold. Ranges from 375mA to 6A in steps of 375mA. - // A set of defined constants is provided for the user's convenience. Default - // value is 3.375A- 0x08. This is a 4-bit value. - case OCD_TH: - ret_val = Xfer((byte)value & 0x0F); - break; - // Stall current threshold. Defaults to 0x40, or 2.03A. Value is from 31.25mA to - // 4A in 31.25mA steps. This is a 7-bit value. - case STALL_TH: - ret_val = Xfer((byte)value & 0x7F); - break; - // STEP_MODE controls the microstepping settings, as well as the generation of an - // output signal from the dSPIN. Bits 2:0 control the number of microsteps per - // step the part will generate. Bit 7 controls whether the BUSY/SYNC pin outputs - // a BUSY signal or a step synchronization signal. Bits 6:4 control the frequency - // of the output signal relative to the full-step frequency; see datasheet for - // that relationship as it is too complex to reproduce here. - // Most likely, only the microsteps per step value will be needed; there is a set - // of constants provided for ease of use of these values. - case STEP_MODE: - ret_val = Xfer((byte)value); - break; - // ALARM_EN controls which alarms will cause the FLAG pin to fall. A set of constants - // is provided to make this easy to interpret. By default, ALL alarms will trigger the - // FLAG pin. - case ALARM_EN: - ret_val = Xfer((byte)value); - break; - // CONFIG contains some assorted configuration bits and fields. A fairly comprehensive - // set of reasonably self-explanatory constants is provided, but users should refer - // to the datasheet before modifying the contents of this register to be certain they - // understand the implications of their modifications. Value on boot is 0x2E88; this - // can be a useful way to verify proper start up and operation of the dSPIN chip. - case CONFIG: - ret_val = Param(value, 16); - break; - // STATUS contains read-only information about the current condition of the chip. A - // comprehensive set of constants for masking and testing this register is provided, but - // users should refer to the datasheet to ensure that they fully understand each one of - // the bits in the register. - case STATUS: // STATUS is a read-only register - ret_val = Param(0, 16); - break; - default: - ret_val = Xfer((byte)(value)); - break; - } - return ret_val; -} diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.h b/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.h deleted file mode 100644 index 8b57686463..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/L6470.h +++ /dev/null @@ -1,286 +0,0 @@ -//////////////////////////////////////////////////////////// -//ORIGINAL CODE 12/12/2011- Mike Hord, SparkFun Electronics -//LIBRARY Created by Adam Meyer of bildr Aug 18th 2012 -//Released as MIT license -//////////////////////////////////////////////////////////// -#ifndef L6470_h -#define L6470_h - -#include -#include - -#define SLAVE_SELECT_PIN 38 // Wire this to the CSN pin -// #define RESET 6 // Wire this to the STBY line -#define BUSYN 7 // Wire this to the BSYN line - -// constant definitions for overcurrent thresholds. Write these values to -// register dSPIN_OCD_TH to set the level at which an overcurrent even occurs. -#define OCD_TH_375mA 0x00 -#define OCD_TH_750mA 0x01 -#define OCD_TH_1125mA 0x02 -#define OCD_TH_1500mA 0x03 -#define OCD_TH_1875mA 0x04 -#define OCD_TH_2250mA 0x05 -#define OCD_TH_2625mA 0x06 -#define OCD_TH_3000mA 0x07 -#define OCD_TH_3375mA 0x08 -#define OCD_TH_3750mA 0x09 -#define OCD_TH_4125mA 0x0A -#define OCD_TH_4500mA 0x0B -#define OCD_TH_4875mA 0x0C -#define OCD_TH_5250mA 0x0D -#define OCD_TH_5625mA 0x0E -#define OCD_TH_6000mA 0x0F - -// STEP_MODE option values. -// First comes the "microsteps per step" options... -#define STEP_MODE_STEP_SEL 0x07 // Mask for these bits only. -#define STEP_SEL_1 0x00 -#define STEP_SEL_1_2 0x01 -#define STEP_SEL_1_4 0x02 -#define STEP_SEL_1_8 0x03 -#define STEP_SEL_1_16 0x04 -#define STEP_SEL_1_32 0x05 -#define STEP_SEL_1_64 0x06 -#define STEP_SEL_1_128 0x07 - -// ...next, define the SYNC_EN bit. When set, the BUSYN pin will instead -// output a clock related to the full-step frequency as defined by the -// SYNC_SEL bits below. -#define STEP_MODE_SYNC_EN 0x80 // Mask for this bit -#define SYNC_EN 0x80 - -// ...last, define the SYNC_SEL modes. The clock output is defined by -// the full-step frequency and the value in these bits- see the datasheet -// for a matrix describing that relationship (page 46). -#define STEP_MODE_SYNC_SEL 0x70 -#define SYNC_SEL_1_2 0x00 -#define SYNC_SEL_1 0x10 -#define SYNC_SEL_2 0x20 -#define SYNC_SEL_4 0x30 -#define SYNC_SEL_8 0x40 -#define SYNC_SEL_16 0x50 -#define SYNC_SEL_32 0x60 -#define SYNC_SEL_64 0x70 - -// Bit names for the ALARM_EN register. -// Each of these bits defines one potential alarm condition. -// When one of these conditions occurs and the respective bit in ALARM_EN is set, -// the FLAG pin will go low. The register must be queried to determine which event -// caused the alarm. -#define ALARM_EN_OVERCURRENT 0x01 -#define ALARM_EN_THERMAL_SHUTDOWN 0x02 -#define ALARM_EN_THERMAL_WARNING 0x04 -#define ALARM_EN_UNDER_VOLTAGE 0x08 -#define ALARM_EN_STALL_DET_A 0x10 -#define ALARM_EN_STALL_DET_B 0x20 -#define ALARM_EN_SW_TURN_ON 0x40 -#define ALARM_EN_WRONG_NPERF_CMD 0x80 - -// CONFIG register renames. - -// Oscillator options. -// The dSPIN needs to know what the clock frequency is because it uses that for some -// calculations during operation. -#define CONFIG_OSC_SEL 0x000F // Mask for this bit field. -#define CONFIG_INT_16MHZ 0x0000 // Internal 16MHz, no output -#define CONFIG_INT_16MHZ_OSCOUT_2MHZ 0x0008 // Default; internal 16MHz, 2MHz output -#define CONFIG_INT_16MHZ_OSCOUT_4MHZ 0x0009 // Internal 16MHz, 4MHz output -#define CONFIG_INT_16MHZ_OSCOUT_8MHZ 0x000A // Internal 16MHz, 8MHz output -#define CONFIG_INT_16MHZ_OSCOUT_16MHZ 0x000B // Internal 16MHz, 16MHz output -#define CONFIG_EXT_8MHZ_XTAL_DRIVE 0x0004 // External 8MHz crystal -#define CONFIG_EXT_16MHZ_XTAL_DRIVE 0x0005 // External 16MHz crystal -#define CONFIG_EXT_24MHZ_XTAL_DRIVE 0x0006 // External 24MHz crystal -#define CONFIG_EXT_32MHZ_XTAL_DRIVE 0x0007 // External 32MHz crystal -#define CONFIG_EXT_8MHZ_OSCOUT_INVERT 0x000C // External 8MHz crystal, output inverted -#define CONFIG_EXT_16MHZ_OSCOUT_INVERT 0x000D // External 16MHz crystal, output inverted -#define CONFIG_EXT_24MHZ_OSCOUT_INVERT 0x000E // External 24MHz crystal, output inverted -#define CONFIG_EXT_32MHZ_OSCOUT_INVERT 0x000F // External 32MHz crystal, output inverted - -// Configure the functionality of the external switch input -#define CONFIG_SW_MODE 0x0010 // Mask for this bit. -#define CONFIG_SW_HARD_STOP 0x0000 // Default; hard stop motor on switch. -#define CONFIG_SW_USER 0x0010 // Tie to the GoUntil and ReleaseSW - // commands to provide jog function. - // See page 25 of datasheet. - -// Configure the motor voltage compensation mode (see page 34 of datasheet) -#define CONFIG_EN_VSCOMP 0x0020 // Mask for this bit. -#define CONFIG_VS_COMP_DISABLE 0x0000 // Disable motor voltage compensation. -#define CONFIG_VS_COMP_ENABLE 0x0020 // Enable motor voltage compensation. - -// Configure overcurrent detection event handling -#define CONFIG_OC_SD 0x0080 // Mask for this bit. -#define CONFIG_OC_SD_DISABLE 0x0000 // Bridges do NOT shutdown on OC detect -#define CONFIG_OC_SD_ENABLE 0x0080 // Bridges shutdown on OC detect - -// Configure the slew rate of the power bridge output -#define CONFIG_POW_SR 0x0300 // Mask for this bit field. -#define CONFIG_SR_180V_us 0x0000 // 180V/us -#define CONFIG_SR_290V_us 0x0200 // 290V/us -#define CONFIG_SR_530V_us 0x0300 // 530V/us - -// Integer divisors for PWM sinewave generation -// See page 32 of the datasheet for more information on this. -#define CONFIG_F_PWM_DEC 0x1C00 // mask for this bit field -#define CONFIG_PWM_MUL_0_625 (0x00)<<10 -#define CONFIG_PWM_MUL_0_75 (0x01)<<10 -#define CONFIG_PWM_MUL_0_875 (0x02)<<10 -#define CONFIG_PWM_MUL_1 (0x03)<<10 -#define CONFIG_PWM_MUL_1_25 (0x04)<<10 -#define CONFIG_PWM_MUL_1_5 (0x05)<<10 -#define CONFIG_PWM_MUL_1_75 (0x06)<<10 -#define CONFIG_PWM_MUL_2 (0x07)<<10 - -// Multiplier for the PWM sinewave frequency -#define CONFIG_F_PWM_INT 0xE000 // mask for this bit field. -#define CONFIG_PWM_DIV_1 (0x00)<<13 -#define CONFIG_PWM_DIV_2 (0x01)<<13 -#define CONFIG_PWM_DIV_3 (0x02)<<13 -#define CONFIG_PWM_DIV_4 (0x03)<<13 -#define CONFIG_PWM_DIV_5 (0x04)<<13 -#define CONFIG_PWM_DIV_6 (0x05)<<13 -#define CONFIG_PWM_DIV_7 (0x06)<<13 - -// Status register bit renames- read-only bits conferring information about the -// device to the user. -#define STATUS_HIZ 0x0001 // high when bridges are in HiZ mode -#define STATUS_BUSY 0x0002 // mirrors BUSY pin -#define STATUS_SW_F 0x0004 // low when switch open, high when closed -#define STATUS_SW_EVN 0x0008 // active high, set on switch falling edge, - // cleared by reading STATUS -#define STATUS_DIR 0x0010 // Indicates current motor direction. - // High is FWD, Low is REV. -#define STATUS_NOTPERF_CMD 0x0080 // Last command not performed. -#define STATUS_WRONG_CMD 0x0100 // Last command not valid. -#define STATUS_UVLO 0x0200 // Undervoltage lockout is active -#define STATUS_TH_WRN 0x0400 // Thermal warning -#define STATUS_TH_SD 0x0800 // Thermal shutdown -#define STATUS_OCD 0x1000 // Overcurrent detected -#define STATUS_STEP_LOSS_A 0x2000 // Stall detected on A bridge -#define STATUS_STEP_LOSS_B 0x4000 // Stall detected on B bridge -#define STATUS_SCK_MOD 0x8000 // Step clock mode is active - -// Status register motor status field -#define STATUS_MOT_STATUS 0x0060 // field mask -#define STATUS_MOT_STATUS_STOPPED (0x0000)<<13 // Motor stopped -#define STATUS_MOT_STATUS_ACCELERATION (0x0001)<<13 // Motor accelerating -#define STATUS_MOT_STATUS_DECELERATION (0x0002)<<13 // Motor decelerating -#define STATUS_MOT_STATUS_CONST_SPD (0x0003)<<13 // Motor at constant speed - -// Register address redefines. -// See the Param_Handler() function for more info about these. -#define ABS_POS 0x01 -#define EL_POS 0x02 -#define MARK 0x03 -#define SPEED 0x04 -#define ACC 0x05 -#define DEC 0x06 -#define MAX_SPEED 0x07 -#define MIN_SPEED 0x08 -#define FS_SPD 0x15 -#define KVAL_HOLD 0x09 -#define KVAL_RUN 0x0A -#define KVAL_ACC 0x0B -#define KVAL_DEC 0x0C -#define INT_SPD 0x0D -#define ST_SLP 0x0E -#define FN_SLP_ACC 0x0F -#define FN_SLP_DEC 0x10 -#define K_THERM 0x11 -#define ADC_OUT 0x12 -#define OCD_TH 0x13 -#define STALL_TH 0x14 -#define STEP_MODE 0x16 -#define ALARM_EN 0x17 -#define CONFIG 0x18 -#define STATUS 0x19 - -//dSPIN commands -#define NOP 0x00 -#define SET_PARAM 0x00 -#define GET_PARAM 0x20 -#define RUN 0x50 -#define STEP_CLOCK 0x58 -#define MOVE 0x40 -#define GOTO 0x60 -#define GOTO_DIR 0x68 -#define GO_UNTIL 0x82 -#define RELEASE_SW 0x92 -#define GO_HOME 0x70 -#define GO_MARK 0x78 -#define RESET_POS 0xD8 -#define RESET_DEVICE 0xC0 -#define SOFT_STOP 0xB0 -#define HARD_STOP 0xB8 -#define SOFT_HIZ 0xA0 -#define HARD_HIZ 0xA8 -#define GET_STATUS 0xD0 - -/* dSPIN direction options */ -#define FWD 0x01 -#define REV 0x00 - -/* dSPIN action options */ -#define ACTION_RESET 0x00 -#define ACTION_COPY 0x01 - - -class L6470{ - - public: - - L6470(int SSPin); - void init(int k_value); - void setMicroSteps(int microSteps); - void setCurrent(int current); - void setMaxSpeed(int speed); - void setMinSpeed(int speed); - void setAcc(float acceleration); - void setDec(float deceleration); - void setOverCurrent(unsigned int ma_current); - void setThresholdSpeed(float threshold); - void setStallCurrent(float ma_current); - - unsigned long ParamHandler(byte param, unsigned long value); - void SetLowSpeedOpt(boolean enable); - void run(byte dir, float spd); - void Step_Clock(byte dir); - void goHome(); - void setAsHome(); - void goMark(); - void move(long n_step); - void goTo(long pos); - void goTo_DIR(byte dir, long pos); - void goUntil(byte act, byte dir, unsigned long spd); - boolean isBusy(); - void releaseSW(byte act, byte dir); - float getSpeed(); - long getPos(); - void setMark(); - void setMark(long value); - void resetPos(); - void resetDev(); - void softStop(); - void hardStop(); - void softFree(); - void free(); - int getStatus(); - void SetParam(byte param, unsigned long value); - - private: - long convert(unsigned long val); - unsigned long GetParam(byte param); - unsigned long AccCalc(float stepsPerSecPerSec); - unsigned long DecCalc(float stepsPerSecPerSec); - unsigned long MaxSpdCalc(float stepsPerSec); - unsigned long MinSpdCalc(float stepsPerSec); - unsigned long FSCalc(float stepsPerSec); - unsigned long IntSpdCalc(float stepsPerSec); - unsigned long SpdCalc(float stepsPerSec); - unsigned long Param(unsigned long value, byte bit_len); - byte Xfer(byte data); - int _SSPin; -}; - -#endif diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/keywords.txt b/ArduinoAddons/Arduino_1.6.x/libraries/L6470/keywords.txt deleted file mode 100644 index 7caa3d019d..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/L6470/keywords.txt +++ /dev/null @@ -1,53 +0,0 @@ -####################################################### -# keywords.txt - keywords file for the L6470 library -# -# ORIGINAL CODE 12/12/2011- Mike Hord, SparkFun Electronics -# Library by Adam Meyer of bildr Aug 18th 2012 -# -# Released as MIT license -####################################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -L6470 KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -L6470 KEYWORD2 -init KEYWORD2 -setMicroSteps KEYWORD2 -setCurrent KEYWORD2 -setMaxSpeed KEYWORD2 -setMinSpeed KEYWORD2 -setAcc KEYWORD2 -setDec KEYWORD2 -setOverCurrent KEYWORD2 -setThresholdSpeed KEYWORD2 -setStallCurrent KEYWORD2 -ParamHandler KEYWORD2 -SetLowSpeedOpt KEYWORD2 -run KEYWORD2 -Step_Clock KEYWORD2 -goHome KEYWORD2 -goMark KEYWORD2 -move KEYWORD2 -goTo KEYWORD2 -goTo_DIR KEYWORD2 -goUntil KEYWORD2 -isBusy KEYWORD2 -releaseSW KEYWORD2 -resetPos KEYWORD2 -resetDev KEYWORD2 -softStop KEYWORD2 -hardStop KEYWORD2 -softHiZ KEYWORD2 -hardHiZ KEYWORD2 -getStatus KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/.gitignore b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/.gitignore deleted file mode 100644 index c0f77e480a..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -#mac stuff -.DS_Store - -#eclipse stuff -.classpath -.project - -#processing stuff -generated/ -examples/TMC26XMotorTester/processing/TMC26XMotorTest/application.*/ -examples/TMC26XMotorTester/processing/TMC26XMotorTest/application.* - -#eagle stuff -schematics/*.b#? -schematics/*.s#? - -*.zip diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/Doxyfile b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/Doxyfile deleted file mode 100644 index e169f06083..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/Doxyfile +++ /dev/null @@ -1,1813 +0,0 @@ -# Doxyfile 1.7.6.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. - -PROJECT_NAME = "Trinamic TMC26X Stepper Driver for Arduino" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = /Users/marcus/Arduino/libraries/TMC26XStepper/documentation - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -SYMBOL_CACHE_SIZE = 0 - -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 28 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = /Users/marcus/Arduino/libraries/TMC26XStepper - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.py \ - *.f90 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# style sheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the -# mathjax.org site, so you can quickly see the result without installing -# MathJax, but it is strongly recommended to install a local copy of MathJax -# before deployment. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. - -MATHJAX_EXTENSIONS = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = NO - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! - -LATEX_FOOTER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -# The LATEX_BIB_STYLE tag can be used to specify the style to use for the -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See -# http://en.wikipedia.org/wiki/BibTeX for more info. - -LATEX_BIB_STYLE = plain - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load style sheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will use the Helvetica font for all dot files that -# doxygen generates. When you want a differently looking font you can specify -# the font name using DOT_FONTNAME. You need to make sure dot is able to find -# the font, which can be done by putting it in a standard location or by setting -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the -# directory containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the Helvetica font. -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to -# set the path where dot can find it. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. If you choose svg you need to set -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible in IE 9+ (other browsers do not have this requirement). - -DOT_IMAGE_FORMAT = png - -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. -# Note that this requires a modern browser other than Internet Explorer. -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible. Older versions of IE do not have SVG support. - -INTERACTIVE_SVG = NO - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/LICENSE b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/LICENSE deleted file mode 100644 index 11f5603ba6..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/LICENSE +++ /dev/null @@ -1,10 +0,0 @@ - -Copyright (c) 2012 Interactive Matter - -based on the stepper library by Tom Igoe, et. al. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/README.rst b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/README.rst deleted file mode 100644 index 648f3e253e..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/README.rst +++ /dev/null @@ -1,71 +0,0 @@ -Arduino TMC26X Stepper Motor Controller Library -=============================================== - -License -------- - -TMC26XStepper.cpp - - TMC 260/261/262 Stepper library for Wiring/Arduino - -based on the stepper library by Tom Igoe, et. al. - -Copyright (c) 2011, Interactive Matter, Marcus Nowotny - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -About ------ - -The TMC26X is a stepper motor controller for bipolar stepper motors. From the trinamic web site: - - The TMC262 is the first energy efficient high current high precision microstepping driver - IC for bipolar stepper motors. The unique high resolution sensorless load detection stallGuard2™ - is used to for the world’s first integrated load dependent current control feature called coolStep™. - The ability to read out the load and detect an overload makes the TMC262 an optimum choice for - drives where a high reliability is desired at a low cost. The new patented spreadCycle PWM mixed - decay chopper scheme ensures best zero crossing performance as well as high speed operation. - The TMC262 can be driven with Step & Direction signals as well as by serial SPI™ interface. - Using the microPlyer allows to operate the motor with highest 256 μStep smoothness reducing the - input frequency to 16 μSteps. A full set of protection and diagnostic features makes this device - very rugged. It directly drives external MOSFETs for currents of up to 6A. This way it reaches - highest energy efficiency and allows driving of a high motor current without cooling measures - even at high environment temperatures. - - -The unique features of the TMC26X are that everything can (and must) be controlled in software: - -* the motor current -* microstepping -* stall protection -* current reduction according to load -* stallGuard2™ sensorless load detection -* coolStep™ load dependent current control -* spreadCycle hysteresis PWM chopper -* microPlyer 16-to-256 μStep multiplier -* full protection and diagnostics - -This makes the TMC26X a bit harder to use than other stepper motors but much more versatile. -This library resolves all the complicated stuff so that you can use TMC26X straight away. -Furthermore, all the settings are implemented in high level interfaces so that configuring your -motor is a breeze. - -How to use ----------- - -Check out the Setup Guide here: -And the How To here: \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.cpp b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.cpp deleted file mode 100644 index 389264ca42..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.cpp +++ /dev/null @@ -1,999 +0,0 @@ -/* - TMC26XStepper.cpp - - TMC26X Stepper library for Wiring/Arduino - - based on the stepper library by Tom Igoe, et. al. - - Copyright (c) 2011, Interactive Matter, Marcus Nowotny - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - - */ - -#if defined(ARDUINO) && ARDUINO >= 100 - #include -#else - #include -#endif -#include -#include "TMC26XStepper.h" - -//some default values used in initialization -#define DEFAULT_MICROSTEPPING_VALUE 32 - -//TMC26X register definitions -#define DRIVER_CONTROL_REGISTER 0x0ul -#define CHOPPER_CONFIG_REGISTER 0x80000ul -#define COOL_STEP_REGISTER 0xA0000ul -#define STALL_GUARD2_LOAD_MEASURE_REGISTER 0xC0000ul -#define DRIVER_CONFIG_REGISTER 0xE0000ul - -#define REGISTER_BIT_PATTERN 0xFFFFFul - -//definitions for the driver control register -#define MICROSTEPPING_PATTERN 0xFul -#define STEP_INTERPOLATION 0x200ul -#define DOUBLE_EDGE_STEP 0x100ul -#define VSENSE 0x40ul -#define READ_MICROSTEP_POSTION 0x0ul -#define READ_STALL_GUARD_READING 0x10ul -#define READ_STALL_GUARD_AND_COOL_STEP 0x20ul -#define READ_SELECTION_PATTERN 0x30ul - -//definitions for the chopper config register -#define CHOPPER_MODE_STANDARD 0x0ul -#define CHOPPER_MODE_T_OFF_FAST_DECAY 0x4000ul -#define T_OFF_PATTERN 0xful -#define RANDOM_TOFF_TIME 0x2000ul -#define BLANK_TIMING_PATTERN 0x18000ul -#define BLANK_TIMING_SHIFT 15 -#define HYSTERESIS_DECREMENT_PATTERN 0x1800ul -#define HYSTERESIS_DECREMENT_SHIFT 11 -#define HYSTERESIS_LOW_VALUE_PATTERN 0x780ul -#define HYSTERESIS_LOW_SHIFT 7 -#define HYSTERESIS_START_VALUE_PATTERN 0x78ul -#define HYSTERESIS_START_VALUE_SHIFT 4 -#define T_OFF_TIMING_PATERN 0xFul - -//definitions for cool step register -#define MINIMUM_CURRENT_FOURTH 0x8000ul -#define CURRENT_DOWN_STEP_SPEED_PATTERN 0x6000ul -#define SE_MAX_PATTERN 0xF00ul -#define SE_CURRENT_STEP_WIDTH_PATTERN 0x60ul -#define SE_MIN_PATTERN 0xful - -//definitions for stall guard2 current register -#define STALL_GUARD_FILTER_ENABLED 0x10000ul -#define STALL_GUARD_TRESHHOLD_VALUE_PATTERN 0x17F00ul -#define CURRENT_SCALING_PATTERN 0x1Ful -#define STALL_GUARD_CONFIG_PATTERN 0x17F00ul -#define STALL_GUARD_VALUE_PATTERN 0x7F00ul - -//definitions for the input from the TCM260 -#define STATUS_STALL_GUARD_STATUS 0x1ul -#define STATUS_OVER_TEMPERATURE_SHUTDOWN 0x2ul -#define STATUS_OVER_TEMPERATURE_WARNING 0x4ul -#define STATUS_SHORT_TO_GROUND_A 0x8ul -#define STATUS_SHORT_TO_GROUND_B 0x10ul -#define STATUS_OPEN_LOAD_A 0x20ul -#define STATUS_OPEN_LOAD_B 0x40ul -#define STATUS_STAND_STILL 0x80ul -#define READOUT_VALUE_PATTERN 0xFFC00ul - -//default values -#define INITIAL_MICROSTEPPING 0x3ul //32th microstepping - -//debuging output -//#define DEBUG - -/* - * Constructor - * number_of_steps - the steps per rotation - * cs_pin - the SPI client select pin - * dir_pin - the pin where the direction pin is connected - * step_pin - the pin where the step pin is connected - */ -TMC26XStepper::TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor) -{ - //we are not started yet - started=false; - //by default cool step is not enabled - cool_step_enabled=false; - - //save the pins for later use - this->cs_pin=cs_pin; - this->dir_pin=dir_pin; - this->step_pin = step_pin; - - //store the current sense resistor value for later use - this->resistor = resistor; - - //initizalize our status values - this->steps_left = 0; - this->direction = 0; - - //initialize register values - driver_control_register_value=DRIVER_CONTROL_REGISTER | INITIAL_MICROSTEPPING; - chopper_config_register=CHOPPER_CONFIG_REGISTER; - - //setting the default register values - driver_control_register_value=DRIVER_CONTROL_REGISTER|INITIAL_MICROSTEPPING; - microsteps = (1 << INITIAL_MICROSTEPPING); - chopper_config_register=CHOPPER_CONFIG_REGISTER; - cool_step_register_value=COOL_STEP_REGISTER; - stall_guard2_current_register_value=STALL_GUARD2_LOAD_MEASURE_REGISTER; - driver_configuration_register_value = DRIVER_CONFIG_REGISTER | READ_STALL_GUARD_READING; - - //set the current - setCurrent(current); - //set to a conservative start value - setConstantOffTimeChopper(7, 54, 13,12,1); - //set a nice microstepping value - setMicrosteps(DEFAULT_MICROSTEPPING_VALUE); - //save the number of steps - this->number_of_steps = number_of_steps; -} - - -/* - * start & configure the stepper driver - * just must be called. - */ -void TMC26XStepper::start() { - -#ifdef DEBUG - Serial.println("TMC26X stepper library"); - Serial.print("CS pin: "); - Serial.println(cs_pin); - Serial.print("DIR pin: "); - Serial.println(dir_pin); - Serial.print("STEP pin: "); - Serial.println(step_pin); - Serial.print("current scaling: "); - Serial.println(current_scaling,DEC); -#endif - //set the pins as output & its initial value - pinMode(step_pin, OUTPUT); - pinMode(dir_pin, OUTPUT); - pinMode(cs_pin, OUTPUT); - digitalWrite(step_pin, LOW); - digitalWrite(dir_pin, LOW); - digitalWrite(cs_pin, HIGH); - - //configure the SPI interface - SPI.setBitOrder(MSBFIRST); - SPI.setClockDivider(SPI_CLOCK_DIV8); - //todo this does not work reliably - find a way to foolprof set it (e.g. while communicating - //SPI.setDataMode(SPI_MODE3); - SPI.begin(); - - //set the initial values - send262(driver_control_register_value); - send262(chopper_config_register); - send262(cool_step_register_value); - send262(stall_guard2_current_register_value); - send262(driver_configuration_register_value); - - //save that we are in running mode - started=true; -} - -/* - Mark the driver as unstarted to be able to start it again - */ -void TMC26XStepper::un_start() { - started=false; -} - - -/* - Sets the speed in revs per minute - -*/ -void TMC26XStepper::setSpeed(unsigned int whatSpeed) -{ - this->speed = whatSpeed; - this->step_delay = (60UL * 1000UL * 1000UL) / ((unsigned long)this->number_of_steps * (unsigned long)whatSpeed * (unsigned long)this->microsteps); -#ifdef DEBUG - Serial.print("Step delay in micros: "); - Serial.println(this->step_delay); -#endif - //update the next step time - this->next_step_time = this->last_step_time+this->step_delay; - -} - -unsigned int TMC26XStepper::getSpeed(void) { - return this->speed; -} - -/* - Moves the motor steps_to_move steps. If the number is negative, - the motor moves in the reverse direction. - */ -char TMC26XStepper::step(int steps_to_move) -{ - if (this->steps_left==0) { - this->steps_left = abs(steps_to_move); // how many steps to take - - // determine direction based on whether steps_to_mode is + or -: - if (steps_to_move > 0) { - this->direction = 1; - } else if (steps_to_move < 0) { - this->direction = 0; - } - return 0; - } else { - return -1; - } -} - -char TMC26XStepper::move(void) { - // decrement the number of steps, moving one step each time: - if(this->steps_left>0) { - unsigned long time = micros(); - // move only if the appropriate delay has passed: - if (time >= this->next_step_time) { - // increment or decrement the step number, - // depending on direction: - if (this->direction == 1) { - digitalWrite(step_pin, HIGH); - } else { - digitalWrite(dir_pin, HIGH); - digitalWrite(step_pin, HIGH); - } - // get the timeStamp of when you stepped: - this->last_step_time = time; - this->next_step_time = time+this->step_delay; - // decrement the steps left: - steps_left--; - //disable the step & dir pins - digitalWrite(step_pin, LOW); - digitalWrite(dir_pin, LOW); - } - return -1; - } - return 0; -} - -char TMC26XStepper::isMoving(void) { - return (this->steps_left>0); -} - -unsigned int TMC26XStepper::getStepsLeft(void) { - return this->steps_left; -} - -char TMC26XStepper::stop(void) { - //note to self if the motor is currently moving - char state = isMoving(); - //stop the motor - this->steps_left = 0; - this->direction = 0; - //return if it was moving - return state; -} - -void TMC26XStepper::setCurrent(unsigned int current) { - unsigned char current_scaling = 0; - //calculate the current scaling from the max current setting (in mA) - double mASetting = (double)current; - double resistor_value = (double) this->resistor; - // remove vesense flag - this->driver_configuration_register_value &= ~(VSENSE); - //this is derrived from I=(cs+1)/32*(Vsense/Rsense) - //leading to cs = CS = 32*R*I/V (with V = 0,31V oder 0,165V and I = 1000*current) - //with Rsense=0,15 - //for vsense = 0,310V (VSENSE not set) - //or vsense = 0,165V (VSENSE set) - current_scaling = (byte)((resistor_value*mASetting*32.0/(0.31*1000.0*1000.0))-0.5); //theoretically - 1.0 for better rounding it is 0.5 - - //check if the current scalingis too low - if (current_scaling<16) { - //set the csense bit to get a use half the sense voltage (to support lower motor currents) - this->driver_configuration_register_value |= VSENSE; - //and recalculate the current setting - current_scaling = (byte)((resistor_value*mASetting*32.0/(0.165*1000.0*1000.0))-0.5); //theoretically - 1.0 for better rounding it is 0.5 -#ifdef DEBUG - Serial.print("CS (Vsense=1): "); - Serial.println(current_scaling); - } else { - Serial.print("CS: "); - Serial.println(current_scaling); -#endif - } - - //do some sanity checks - if (current_scaling>31) { - current_scaling=31; - } - //delete the old value - stall_guard2_current_register_value &= ~(CURRENT_SCALING_PATTERN); - //set the new current scaling - stall_guard2_current_register_value |= current_scaling; - //if started we directly send it to the motor - if (started) { - send262(driver_configuration_register_value); - send262(stall_guard2_current_register_value); - } -} - -unsigned int TMC26XStepper::getCurrent(void) { - //we calculate the current according to the datasheet to be on the safe side - //this is not the fastest but the most accurate and illustrative way - double result = (double)(stall_guard2_current_register_value & CURRENT_SCALING_PATTERN); - double resistor_value = (double)this->resistor; - double voltage = (driver_configuration_register_value & VSENSE)? 0.165:0.31; - result = (result+1.0)/32.0*voltage/resistor_value*1000.0*1000.0; - return (unsigned int)result; -} - -void TMC26XStepper::setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled) { - if (stall_guard_threshold<-64) { - stall_guard_threshold = -64; - //We just have 5 bits - } else if (stall_guard_threshold > 63) { - stall_guard_threshold = 63; - } - //add trim down to 7 bits - stall_guard_threshold &=0x7f; - //delete old stall guard settings - stall_guard2_current_register_value &= ~(STALL_GUARD_CONFIG_PATTERN); - if (stall_guard_filter_enabled) { - stall_guard2_current_register_value |= STALL_GUARD_FILTER_ENABLED; - } - //Set the new stall guard threshold - stall_guard2_current_register_value |= (((unsigned long)stall_guard_threshold << 8) & STALL_GUARD_CONFIG_PATTERN); - //if started we directly send it to the motor - if (started) { - send262(stall_guard2_current_register_value); - } -} - -char TMC26XStepper::getStallGuardThreshold(void) { - unsigned long stall_guard_threshold = stall_guard2_current_register_value & STALL_GUARD_VALUE_PATTERN; - //shift it down to bit 0 - stall_guard_threshold >>=8; - //convert the value to an int to correctly handle the negative numbers - char result = stall_guard_threshold; - //check if it is negative and fill it up with leading 1 for proper negative number representation - if (result & _BV(6)) { - result |= 0xC0; - } - return result; -} - -char TMC26XStepper::getStallGuardFilter(void) { - if (stall_guard2_current_register_value & STALL_GUARD_FILTER_ENABLED) { - return -1; - } else { - return 0; - } -} -/* - * Set the number of microsteps per step. - * 0,2,4,8,16,32,64,128,256 is supported - * any value in between will be mapped to the next smaller value - * 0 and 1 set the motor in full step mode - */ -void TMC26XStepper::setMicrosteps(int number_of_steps) { - long setting_pattern; - //poor mans log - if (number_of_steps>=256) { - setting_pattern=0; - microsteps=256; - } else if (number_of_steps>=128) { - setting_pattern=1; - microsteps=128; - } else if (number_of_steps>=64) { - setting_pattern=2; - microsteps=64; - } else if (number_of_steps>=32) { - setting_pattern=3; - microsteps=32; - } else if (number_of_steps>=16) { - setting_pattern=4; - microsteps=16; - } else if (number_of_steps>=8) { - setting_pattern=5; - microsteps=8; - } else if (number_of_steps>=4) { - setting_pattern=6; - microsteps=4; - } else if (number_of_steps>=2) { - setting_pattern=7; - microsteps=2; - //1 and 0 lead to full step - } else if (number_of_steps<=1) { - setting_pattern=8; - microsteps=1; - } -#ifdef DEBUG - Serial.print("Microstepping: "); - Serial.println(microsteps); -#endif - //delete the old value - this->driver_control_register_value &=0xFFFF0ul; - //set the new value - this->driver_control_register_value |=setting_pattern; - - //if started we directly send it to the motor - if (started) { - send262(driver_control_register_value); - } - //recalculate the stepping delay by simply setting the speed again - this->setSpeed(this->speed); -} - -/* - * returns the effective number of microsteps at the moment - */ -int TMC26XStepper::getMicrosteps(void) { - return microsteps; -} - -/* - * constant_off_time: The off time setting controls the minimum chopper frequency. - * For most applications an off time within the range of 5μs to 20μs will fit. - * 2...15: off time setting - * - * blank_time: Selects the comparator blank time. This time needs to safely cover the switching event and the - * duration of the ringing on the sense resistor. For - * 0: min. setting 3: max. setting - * - * fast_decay_time_setting: Fast decay time setting. With CHM=1, these bits control the portion of fast decay for each chopper cycle. - * 0: slow decay only - * 1...15: duration of fast decay phase - * - * sine_wave_offset: Sine wave offset. With CHM=1, these bits control the sine wave offset. - * A positive offset corrects for zero crossing error. - * -3..-1: negative offset 0: no offset 1...12: positive offset - * - * use_current_comparator: Selects usage of the current comparator for termination of the fast decay cycle. - * If current comparator is enabled, it terminates the fast decay cycle in case the current - * reaches a higher negative value than the actual positive value. - * 1: enable comparator termination of fast decay cycle - * 0: end by time only - */ -void TMC26XStepper::setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator) { - //perform some sanity checks - if (constant_off_time<2) { - constant_off_time=2; - } else if (constant_off_time>15) { - constant_off_time=15; - } - //save the constant off time - this->constant_off_time = constant_off_time; - char blank_value; - //calculate the value acc to the clock cycles - if (blank_time>=54) { - blank_value=3; - } else if (blank_time>=36) { - blank_value=2; - } else if (blank_time>=24) { - blank_value=1; - } else { - blank_value=0; - } - if (fast_decay_time_setting<0) { - fast_decay_time_setting=0; - } else if (fast_decay_time_setting>15) { - fast_decay_time_setting=15; - } - if (sine_wave_offset < -3) { - sine_wave_offset = -3; - } else if (sine_wave_offset>12) { - sine_wave_offset = 12; - } - //shift the sine_wave_offset - sine_wave_offset +=3; - - //calculate the register setting - //first of all delete all the values for this - chopper_config_register &= ~((1<<12) | BLANK_TIMING_PATTERN | HYSTERESIS_DECREMENT_PATTERN | HYSTERESIS_LOW_VALUE_PATTERN | HYSTERESIS_START_VALUE_PATTERN | T_OFF_TIMING_PATERN); - //set the constant off pattern - chopper_config_register |= CHOPPER_MODE_T_OFF_FAST_DECAY; - //set the blank timing value - chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT; - //setting the constant off time - chopper_config_register |= constant_off_time; - //set the fast decay time - //set msb - chopper_config_register |= (((unsigned long)(fast_decay_time_setting & 0x8))<15) { - constant_off_time=15; - } - //save the constant off time - this->constant_off_time = constant_off_time; - char blank_value; - //calculate the value acc to the clock cycles - if (blank_time>=54) { - blank_value=3; - } else if (blank_time>=36) { - blank_value=2; - } else if (blank_time>=24) { - blank_value=1; - } else { - blank_value=0; - } - if (hysteresis_start<1) { - hysteresis_start=1; - } else if (hysteresis_start>8) { - hysteresis_start=8; - } - hysteresis_start--; - - if (hysteresis_end < -3) { - hysteresis_end = -3; - } else if (hysteresis_end>12) { - hysteresis_end = 12; - } - //shift the hysteresis_end - hysteresis_end +=3; - - if (hysteresis_decrement<0) { - hysteresis_decrement=0; - } else if (hysteresis_decrement>3) { - hysteresis_decrement=3; - } - - //first of all delete all the values for this - chopper_config_register &= ~(CHOPPER_MODE_T_OFF_FAST_DECAY | BLANK_TIMING_PATTERN | HYSTERESIS_DECREMENT_PATTERN | HYSTERESIS_LOW_VALUE_PATTERN | HYSTERESIS_START_VALUE_PATTERN | T_OFF_TIMING_PATERN); - - //set the blank timing value - chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT; - //setting the constant off time - chopper_config_register |= constant_off_time; - //set the hysteresis_start - chopper_config_register |= ((unsigned long)hysteresis_start) << HYSTERESIS_START_VALUE_SHIFT; - //set the hysteresis end - chopper_config_register |= ((unsigned long)hysteresis_end) << HYSTERESIS_LOW_SHIFT; - //set the hystereis decrement - chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT; - //if started we directly send it to the motor - if (started) { - send262(driver_control_register_value); - } -} - -/* - * In a constant off time chopper scheme both coil choppers run freely, i.e. are not synchronized. - * The frequency of each chopper mainly depends on the coil current and the position dependant motor coil inductivity, thus it depends on the microstep position. - * With some motors a slightly audible beat can occur between the chopper frequencies, especially when they are near to each other. This typically occurs at a - * few microstep positions within each quarter wave. This effect normally is not audible when compared to mechanical noise generated by ball bearings, etc. - * Further factors which can cause a similar effect are a poor layout of sense resistor GND connection. - * Hint: A common factor, which can cause motor noise, is a bad PCB layout causing coupling of both sense resistor voltages - * (please refer to sense resistor layout hint in chapter 8.1). - * In order to minimize the effect of a beat between both chopper frequencies, an internal random generator is provided. - * It modulates the slow decay time setting when switched on by the RNDTF bit. The RNDTF feature further spreads the chopper spectrum, - * reducing electromagnetic emission on single frequencies. - */ -void TMC26XStepper::setRandomOffTime(char value) { - if (value) { - chopper_config_register |= RANDOM_TOFF_TIME; - } else { - chopper_config_register &= ~(RANDOM_TOFF_TIME); - } - //if started we directly send it to the motor - if (started) { - send262(driver_control_register_value); - } -} - -void TMC26XStepper::setCoolStepConfiguration(unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size, - unsigned char current_increment_step_size, unsigned char lower_current_limit) { - //sanitize the input values - if (lower_SG_threshold>480) { - lower_SG_threshold = 480; - } - //divide by 32 - lower_SG_threshold >>=5; - if (SG_hysteresis>480) { - SG_hysteresis=480; - } - //divide by 32 - SG_hysteresis >>=5; - if (current_decrement_step_size>3) { - current_decrement_step_size=3; - } - if (current_increment_step_size>3) { - current_increment_step_size=3; - } - if (lower_current_limit>1) { - lower_current_limit=1; - } - //store the lower level in order to enable/disable the cool step - this->cool_step_lower_threshold=lower_SG_threshold; - //if cool step is not enabled we delete the lower value to keep it disabled - if (!this->cool_step_enabled) { - lower_SG_threshold=0; - } - //the good news is that we can start with a complete new cool step register value - //and simply set the values in the register - cool_step_register_value = ((unsigned long)lower_SG_threshold) | (((unsigned long)SG_hysteresis)<<8) | (((unsigned long)current_decrement_step_size)<<5) - | (((unsigned long)current_increment_step_size)<<13) | (((unsigned long)lower_current_limit)<<15) - //and of course we have to include the signature of the register - | COOL_STEP_REGISTER; - //Serial.println(cool_step_register_value,HEX); - if (started) { - send262(cool_step_register_value); - } -} - -void TMC26XStepper::setCoolStepEnabled(boolean enabled) { - //simply delete the lower limit to disable the cool step - cool_step_register_value &= ~SE_MIN_PATTERN; - //and set it to the proper value if cool step is to be enabled - if (enabled) { - cool_step_register_value |=this->cool_step_lower_threshold; - } - //and save the enabled status - this->cool_step_enabled = enabled; - //save the register value - if (started) { - send262(cool_step_register_value); - } -} - -boolean TMC26XStepper::isCoolStepEnabled(void) { - return this->cool_step_enabled; -} - -unsigned int TMC26XStepper::getCoolStepLowerSgThreshold() { - //we return our internally stored value - in order to provide the correct setting even if cool step is not enabled - return this->cool_step_lower_threshold<<5; -} - -unsigned int TMC26XStepper::getCoolStepUpperSgThreshold() { - return (unsigned char)((cool_step_register_value & SE_MAX_PATTERN)>>8)<<5; -} - -unsigned char TMC26XStepper::getCoolStepCurrentIncrementSize() { - return (unsigned char)((cool_step_register_value & CURRENT_DOWN_STEP_SPEED_PATTERN)>>13); -} - -unsigned char TMC26XStepper::getCoolStepNumberOfSGReadings() { - return (unsigned char)((cool_step_register_value & SE_CURRENT_STEP_WIDTH_PATTERN)>>5); -} - -unsigned char TMC26XStepper::getCoolStepLowerCurrentLimit() { - return (unsigned char)((cool_step_register_value & MINIMUM_CURRENT_FOURTH)>>15); -} - -void TMC26XStepper::setEnabled(boolean enabled) { - //delete the t_off in the chopper config to get sure - chopper_config_register &= ~(T_OFF_PATTERN); - if (enabled) { - //and set the t_off time - chopper_config_register |= this->constant_off_time; - } - //if not enabled we don't have to do anything since we already delete t_off from the register - if (started) { - send262(chopper_config_register); - } -} - -boolean TMC26XStepper::isEnabled() { - if (chopper_config_register & T_OFF_PATTERN) { - return true; - } else { - return false; - } -} - -/* - * reads a value from the TMC26X status register. The value is not obtained directly but can then - * be read by the various status routines. - * - */ -void TMC26XStepper::readStatus(char read_value) { - unsigned long old_driver_configuration_register_value = driver_configuration_register_value; - //reset the readout configuration - driver_configuration_register_value &= ~(READ_SELECTION_PATTERN); - //this now equals TMC26X_READOUT_POSITION - so we just have to check the other two options - if (read_value == TMC26X_READOUT_STALLGUARD) { - driver_configuration_register_value |= READ_STALL_GUARD_READING; - } else if (read_value == TMC26X_READOUT_CURRENT) { - driver_configuration_register_value |= READ_STALL_GUARD_AND_COOL_STEP; - } - //all other cases are ignored to prevent funny values - //check if the readout is configured for the value we are interested in - if (driver_configuration_register_value!=old_driver_configuration_register_value) { - //because then we need to write the value twice - one time for configuring, second time to get the value, see below - send262(driver_configuration_register_value); - } - //write the configuration to get the last status - send262(driver_configuration_register_value); -} - -int TMC26XStepper::getMotorPosition(void) { - //we read it out even if we are not started yet - perhaps it is useful information for somebody - readStatus(TMC26X_READOUT_POSITION); - return getReadoutValue(); -} - -//reads the stall guard setting from last status -//returns -1 if stallguard information is not present -int TMC26XStepper::getCurrentStallGuardReading(void) { - //if we don't yet started there cannot be a stall guard value - if (!started) { - return -1; - } - //not time optimal, but solution optiomal: - //first read out the stall guard value - readStatus(TMC26X_READOUT_STALLGUARD); - return getReadoutValue(); -} - -unsigned char TMC26XStepper::getCurrentCSReading(void) { - //if we don't yet started there cannot be a stall guard value - if (!started) { - return 0; - } - //not time optimal, but solution optiomal: - //first read out the stall guard value - readStatus(TMC26X_READOUT_CURRENT); - return (getReadoutValue() & 0x1f); -} - -unsigned int TMC26XStepper::getCurrentCurrent(void) { - double result = (double)getCurrentCSReading(); - double resistor_value = (double)this->resistor; - double voltage = (driver_configuration_register_value & VSENSE)? 0.165:0.31; - result = (result+1.0)/32.0*voltage/resistor_value*1000.0*1000.0; - return (unsigned int)result; -} - -/* - return true if the stallguard threshold has been reached -*/ -boolean TMC26XStepper::isStallGuardOverThreshold(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_STALL_GUARD_STATUS); -} - -/* - returns if there is any over temperature condition: - OVER_TEMPERATURE_PREWARING if pre warning level has been reached - OVER_TEMPERATURE_SHUTDOWN if the temperature is so hot that the driver is shut down - Any of those levels are not too good. -*/ -char TMC26XStepper::getOverTemperature(void) { - if (!this->started) { - return 0; - } - if (driver_status_result & STATUS_OVER_TEMPERATURE_SHUTDOWN) { - return TMC26X_OVERTEMPERATURE_SHUTDOWN; - } - if (driver_status_result & STATUS_OVER_TEMPERATURE_WARNING) { - return TMC26X_OVERTEMPERATURE_PREWARING; - } - return 0; -} - -//is motor channel A shorted to ground -boolean TMC26XStepper::isShortToGroundA(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_SHORT_TO_GROUND_A); -} - -//is motor channel B shorted to ground -boolean TMC26XStepper::isShortToGroundB(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_SHORT_TO_GROUND_B); -} - -//is motor channel A connected -boolean TMC26XStepper::isOpenLoadA(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_OPEN_LOAD_A); -} - -//is motor channel B connected -boolean TMC26XStepper::isOpenLoadB(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_OPEN_LOAD_B); -} - -//is chopper inactive since 2^20 clock cycles - defaults to ~0,08s -boolean TMC26XStepper::isStandStill(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_STAND_STILL); -} - -//is chopper inactive since 2^20 clock cycles - defaults to ~0,08s -boolean TMC26XStepper::isStallGuardReached(void) { - if (!this->started) { - return false; - } - return (driver_status_result & STATUS_STALL_GUARD_STATUS); -} - -//reads the stall guard setting from last status -//returns -1 if stallguard inforamtion is not present -int TMC26XStepper::getReadoutValue(void) { - return (int)(driver_status_result >> 10); -} - -int TMC26XStepper::getResistor() { - return this->resistor; -} - -boolean TMC26XStepper::isCurrentScalingHalfed() { - if (this->driver_configuration_register_value & VSENSE) { - return true; - } else { - return false; - } -} -/* - version() returns the version of the library: - */ -int TMC26XStepper::version(void) -{ - return 1; -} - -void TMC26XStepper::debugLastStatus() { -#ifdef DEBUG -if (this->started) { - if (this->getOverTemperature()&TMC26X_OVERTEMPERATURE_PREWARING) { - Serial.println("WARNING: Overtemperature Prewarning!"); - } else if (this->getOverTemperature()&TMC26X_OVERTEMPERATURE_SHUTDOWN) { - Serial.println("ERROR: Overtemperature Shutdown!"); - } - if (this->isShortToGroundA()) { - Serial.println("ERROR: SHORT to ground on channel A!"); - } - if (this->isShortToGroundB()) { - Serial.println("ERROR: SHORT to ground on channel A!"); - } - if (this->isOpenLoadA()) { - Serial.println("ERROR: Channel A seems to be unconnected!"); - } - if (this->isOpenLoadB()) { - Serial.println("ERROR: Channel B seems to be unconnected!"); - } - if (this->isStallGuardReached()) { - Serial.println("INFO: Stall Guard level reached!"); - } - if (this->isStandStill()) { - Serial.println("INFO: Motor is standing still."); - } - unsigned long readout_config = driver_configuration_register_value & READ_SELECTION_PATTERN; - int value = getReadoutValue(); - if (readout_config == READ_MICROSTEP_POSTION) { - Serial.print("Microstep postion phase A: "); - Serial.println(value); - } else if (readout_config == READ_STALL_GUARD_READING) { - Serial.print("Stall Guard value:"); - Serial.println(value); - } else if (readout_config == READ_STALL_GUARD_AND_COOL_STEP) { - int stallGuard = value & 0xf; - int current = value & 0x1F0; - Serial.print("Approx Stall Guard: "); - Serial.println(stallGuard); - Serial.print("Current level"); - Serial.println(current); - } - } -#endif -} - -/* - * send register settings to the stepper driver via SPI - * returns the current status - */ -inline void TMC26XStepper::send262(unsigned long datagram) { - unsigned long i_datagram; - - //preserver the previous spi mode - unsigned char oldMode = SPCR & SPI_MODE_MASK; - - //if the mode is not correct set it to mode 3 - if (oldMode != SPI_MODE3) { - SPI.setDataMode(SPI_MODE3); - } - - //select the TMC driver - digitalWrite(cs_pin,LOW); - - //ensure that only valid bist are set (0-19) - //datagram &=REGISTER_BIT_PATTERN; - -#ifdef DEBUG - Serial.print("Sending "); - Serial.println(datagram,HEX); -#endif - - //write/read the values - i_datagram = SPI.transfer((datagram >> 16) & 0xff); - i_datagram <<= 8; - i_datagram |= SPI.transfer((datagram >> 8) & 0xff); - i_datagram <<= 8; - i_datagram |= SPI.transfer((datagram) & 0xff); - i_datagram >>= 4; - -#ifdef DEBUG - Serial.print("Received "); - Serial.println(i_datagram,HEX); - debugLastStatus(); -#endif - //deselect the TMC chip - digitalWrite(cs_pin,HIGH); - - //restore the previous SPI mode if neccessary - //if the mode is not correct set it to mode 3 - if (oldMode != SPI_MODE3) { - SPI.setDataMode(oldMode); - } - - - //store the datagram as status result - driver_status_result = i_datagram; -} \ No newline at end of file diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.h b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.h deleted file mode 100644 index b5d51316aa..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/TMC26XStepper.h +++ /dev/null @@ -1,607 +0,0 @@ -/* - TMC26XStepper.cpp - - TMC26X Stepper library for Wiring/Arduino - - based on the stepper library by Tom Igoe, et. al. - - Copyright (c) 2011, Interactive Matter, Marcus Nowotny - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - - */ - - -// ensure this library description is only included once -#ifndef TMC26XStepper_h -#define TMC26XStepper_h - -//! return value for TMC26XStepper.getOverTemperature() if there is a overtemperature situation in the TMC chip -/*! - * This warning indicates that the TCM chip is too warm. - * It is still working but some parameters may be inferior. - * You should do something against it. - */ -#define TMC26X_OVERTEMPERATURE_PREWARING 1 -//! return value for TMC26XStepper.getOverTemperature() if there is a overtemperature shutdown in the TMC chip -/*! - * This warning indicates that the TCM chip is too warm to operate and has shut down to prevent damage. - * It will stop working until it cools down again. - * If you encouter this situation you must do something against it. Like reducing the current or improving the PCB layout - * and/or heat management. - */ -#define TMC26X_OVERTEMPERATURE_SHUTDOWN 2 - -//which values can be read out -/*! - * Selects to readout the microstep position from the motor. - *\sa readStatus() - */ -#define TMC26X_READOUT_POSITION 0 -/*! - * Selects to read out the StallGuard value of the motor. - *\sa readStatus() - */ -#define TMC26X_READOUT_STALLGUARD 1 -/*! - * Selects to read out the current current setting (acc. to CoolStep) and the upper bits of the StallGuard value from the motor. - *\sa readStatus(), setCurrent() - */ -#define TMC26X_READOUT_CURRENT 3 - -/*! - * Define to set the minimum current for CoolStep operation to 1/2 of the selected CS minium. - *\sa setCoolStepConfiguration() - */ -#define COOL_STEP_HALF_CS_LIMIT 0 -/*! - * Define to set the minimum current for CoolStep operation to 1/4 of the selected CS minium. - *\sa setCoolStepConfiguration() - */ -#define COOL_STEP_QUARTDER_CS_LIMIT 1 - -/*! - * \class TMC26XStepper - * \brief Class representing a TMC26X stepper driver - * - * In order to use one fo those drivers in your Arduino code you have to create an object of that class: - * \code - * TMC26XStepper stepper = TMC26XStepper(200,1,2,3,500); - * \endcode - * see TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int rms_current) - * - * Keep in mind that you need to start the driver with start() in order to get the TMC26X configured. - * - * The most important function is the move(). It checks if the motor has to do a step or not. - * It is important that you call move() as often as possible in your Arduino loop() routine. I suggest - * to use a very fast loop routine and always call it at the beginning or the end. - * - * In order to move you have to provide a movement speed with setSpeed(). The speed is a positive value setting - * the rotations per minute. - * - * To really move the motor you have to call step() to tell the driver to move the motor the given number - * of steps in the given direction. Positive values move the motor in one direction, negative values in the other direction. - * - * You can check with isMoving() if the mototr is still moving or stop it apruptely with stop(). - */ -class TMC26XStepper { - public: - /*! - * \brief creates a new represenatation of a stepper motor connected to a TMC26X stepper driver - * - * This is the main constructor. If in doubt use this. You must provide all parameters as described below. - * - * \param number_of_steps the number of steps the motor has per rotation. - * \param cs_pin The Arduino pin you have connected the Cient Select Pin (!CS) of the TMC26X for SPI - * \param dir_pin the number of the Arduino pin the Direction input of the TMC26X is connected - * \param step_pin the number of the Arduino pin the step pin of the TMC26X driver is connected. - * \param rms_current the maximum current to privide to the motor in mA (!). A value of 200 would send up to 200mA to the motor - * \param resistor the current sense resistor in milli Ohm, defaults to ,15 Ohm ( or 150 milli Ohm) as in the TMC260 Arduino Shield - * - * Keep in mind that you must also call TMC26XStepper.start() in order to configure the stepper driver for use. - * - * By default the Constant Off Time chopper is used, see TCM262Stepper.setConstantOffTimeChopper() for details. - * This should work on most motors (YMMV). You may want to configure and use the Spread Cycle Chopper, see setSpreadCycleChopper(). - * - * By default a microstepping of 1/32th is used to provide a smooth motor run, while still giving a good progression per step. - * You can select a different stepping with setMicrosteps() to aa different value. - * \sa start(), setMicrosteps() - */ - TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor=150); - - /*! - * \brief configures and starts the TMC26X stepper driver. Before you called this function the stepper driver is in nonfunctional mode. - * - * This routine configures the TMC26X stepper driver for the given values via SPI. - * Most member functions are non functional if the driver has not been started. - * Therefore it is best to call this in your Arduino setup() function. - */ - void start(); - - /*! - * \brief resets the stepper in unconfigured mode. - * - * This routine enables you to call start again. It does not change anything - * in the internal stepper configuration or the desired configuration. - * It just marks the stepper as not yet startet. You do not have to reconfigure - * the stepper to start it again, but it is not reset to any factory settings - * this has to be configured back by yourself. - * (Hint: Normally you do not need this function) - */ - void un_start(); - - - /*! - * \brief Sets the rotation speed in revolutions per minute. - * \param whatSpeed the desired speed in rotations per minute. - */ - void setSpeed(unsigned int whatSpeed); - - /*! - * \brief reads out the currently selected speed in revolutions per minute. - * \sa setSpeed() - */ - unsigned int getSpeed(void); - - /*! - * \brief Set the number of microsteps in 2^i values (rounded) up to 256 - * - * This method set's the number of microsteps per step in 2^i interval. - * This means you can select 1, 2, 4, 16, 32, 64, 128 or 256 as valid microsteps. - * If you give any other value it will be rounded to the next smaller number (3 would give a microstepping of 2). - * You can always check the current microstepping with getMicrosteps(). - */ - void setMicrosteps(int number_of_steps); - - /*! - * \brief returns the effective current number of microsteps selected. - * - * This function always returns the effective number of microsteps. - * This can be a bit different than the micro steps set in setMicrosteps() since it is rounded to 2^i. - * - * \sa setMicrosteps() - */ - int getMicrosteps(void); - - /*! - * \brief Initiate a movement for the given number of steps. Positive numbers move in one, negative numbers in the other direction. - * - * \param number_of_steps The number of steps to move the motor. - * \return 0 if the motor was not moving and moves now. -1 if the motor is moving and the new steps could not be set. - * - * If the previous movement is not finished yet the function will return -1 and not change the steps to move the motor. - * If the motor does not move it return 0 - * - * The direction of the movement is indicated by the sign of the steps parameter. It is not determinable if positive values are right - * or left This depends on the internal construction of the motor and how you connected it to the stepper driver. - * - * You can always verify with isMoving() or even use stop() to stop the motor before giving it new step directions. - * \sa isMoving(), getStepsLeft(), stop() - */ - char step(int number_of_steps); - - /*! - * \brief Central movement method, must be called as often as possible in the lopp function and is very fast. - * - * This routine checks if the motor still has to move, if the waiting delay has passed to send a new step command to the motor - * and manages the number of steps yet to move to fulfill the current move command. - * - * This function is implemented to be as fast as possible to call it as often as possible in your loop routine. - * The more regurlarly you call this function the better. In both senses of 'regularly': Calling it as often as - * possible is not a bad idea and if you even manage that the intervals you call this function are not too irregular helps too. - * - * You can call this routine even if you know that the motor is not miving. It introduces just a very small penalty in your code. - * You must not call isMoving() to determine if you need to call this function, since taht is done internally already and only - * slows down you code. - * - * How often you call this function directly influences your top miving speed for the motor. It may be a good idea to call this - * from an timer overflow interrupt to ensure proper calling. - * \sa step() - */ - char move(void); - - /*! - * \brief checks if the motor still has to move to fulfill the last movement command. - * \return 0 if the motor stops, -1 if the motor is moving. - * - * This method can be used to determine if the motor is ready for new movements. - *\sa step(), move() - */ - char isMoving(void); - - /*! - * \brief Get the number of steps left in the current movement. - * \return The number of steps left in the movement. This number is always positive. - */ - unsigned int getStepsLeft(void); - - /*! - * \brief Stops the motor regardless if it moves or not. - * \return -1 if the motor was moving and is really stoped or 0 if it was not moving at all. - * - * This method directly and apruptely stops the motor and may be used as an emergency stop. - */ - char stop(void); - - /*! - * \brief Sets and configure the classical Constant Off Timer Chopper - * \param constant_off_time The off time setting controls the minimum chopper frequency. For most applications an off time within the range of 5μs to 20μs will fit. Setting this parameter to zero completely disables all driver transistors and the motor can free-wheel. 0: chopper off, 1:15: off time setting (1 will work with minimum blank time of 24 clocks) - * \param blank_time Selects the comparator blank time. This time needs to safely cover the switching event and the duration of the ringing on the sense resistor. For most low current drivers, a setting of 1 or 2 is good. For high current applications with large MOSFETs, a setting of 2 or 3 will be required. 0 (min setting) … (3) amx setting - * \param fast_decay_time_setting Fast decay time setting. Controls the portion of fast decay for each chopper cycle. 0: slow decay only, 1…15: duration of fast decay phase - * \param sine_wave_offset Sine wave offset. Controls the sine wave offset. A positive offset corrects for zero crossing error. -3…-1: negative offset, 0: no offset,1…12: positive offset - * \param use_curreent_comparator Selects usage of the current comparator for termination of the fast decay cycle. If current comparator is enabled, it terminates the fast decay cycle in case the current reaches a higher negative value than the actual positive value. (0 disable, -1 enable). - * - * The classic constant off time chopper uses a fixed portion of fast decay following each on phase. - * While the duration of the on time is determined by the chopper comparator, the fast decay time needs - * to be set by the user in a way, that the current decay is enough for the driver to be able to follow - * the falling slope of the sine wave, and on the other hand it should not be too long, in order to minimize - * motor current ripple and power dissipation. This best can be tuned using an oscilloscope or - * trying out motor smoothness at different velocities. A good starting value is a fast decay time setting - * similar to the slow decay time setting. - * After tuning of the fast decay time, the offset should be determined, in order to have a smooth zero transition. - * This is necessary, because the fast decay phase leads to the absolute value of the motor current being lower - * than the target current (see figure 17). If the zero offset is too low, the motor stands still for a short - * moment during current zero crossing, if it is set too high, it makes a larger microstep. - * Typically, a positive offset setting is required for optimum operation. - * - * \sa setSpreadCycleChoper() for other alternatives. - * \sa setRandomOffTime() for spreading the noise over a wider spectrum - */ - void setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator); - - /*! - * \brief Sets and configures with spread cycle chopper. - * \param constant_off_time The off time setting controls the minimum chopper frequency. For most applications an off time within the range of 5μs to 20μs will fit. Setting this parameter to zero completely disables all driver transistors and the motor can free-wheel. 0: chopper off, 1:15: off time setting (1 will work with minimum blank time of 24 clocks) - * \param blank_time Selects the comparator blank time. This time needs to safely cover the switching event and the duration of the ringing on the sense resistor. For most low current drivers, a setting of 1 or 2 is good. For high current applications with large MOSFETs, a setting of 2 or 3 will be required. 0 (min setting) … (3) amx setting - * \param hysteresis_start Hysteresis start setting. Please remark, that this value is an offset to the hysteresis end value. 1 … 8 - * \param hysteresis_end Hysteresis end setting. Sets the hysteresis end value after a number of decrements. Decrement interval time is controlled by hysteresis_decrement. The sum hysteresis_start + hysteresis_end must be <16. At a current setting CS of max. 30 (amplitude reduced to 240), the sum is not limited. - * \param hysteresis_decrement Hysteresis decrement setting. This setting determines the slope of the hysteresis during on time and during fast decay time. 0 (fast decrement) … 3 (slow decrement). - * - * The spreadCycle chopper scheme (pat.fil.) is a precise and simple to use chopper principle, which automatically determines - * the optimum fast decay portion for the motor. Anyhow, a number of settings can be made in order to optimally fit the driver - * to the motor. - * Each chopper cycle is comprised of an on-phase, a slow decay phase, a fast decay phase and a second slow decay phase. - * The slow decay phases limit the maximum chopper frequency and are important for low motor and driver power dissipation. - * The hysteresis start setting limits the chopper frequency by forcing the driver to introduce a minimum amount of - * current ripple into the motor coils. The motor inductivity determines the ability to follow a changing motor current. - * The duration of the on- and fast decay phase needs to cover at least the blank time, because the current comparator is - * disabled during this time. - * - * \sa setRandomOffTime() for spreading the noise over a wider spectrum - */ - void setSpreadCycleChopper(char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement); - - /*! - * \brief Use random off time for noise reduction (0 for off, -1 for on). - * \param value 0 for off, -1 for on - * - * In a constant off time chopper scheme both coil choppers run freely, i.e. are not synchronized. - * The frequency of each chopper mainly depends on the coil current and the position dependant motor coil inductivity, - * thus it depends on the microstep position. With some motors a slightly audible beat can occur between the chopper - * frequencies, especially when they are near to each other. This typically occurs at a few microstep positions within - * each quarter wave. - * This effect normally is not audible when compared to mechanical noise generated by ball bearings, - * etc. Further factors which can cause a similar effect are a poor layout of sense resistor GND connection. - * In order to minimize the effect of a beat between both chopper frequencies, an internal random generator is provided. - * It modulates the slow decay time setting when switched on. The random off time feature further spreads the chopper spectrum, - * reducing electromagnetic emission on single frequencies. - */ - void setRandomOffTime(char value); - - /*! - * \brief set the maximum motor current in mA (1000 is 1 Amp) - * Keep in mind this is the maximum peak Current. The RMS current will be 1/sqrt(2) smaller. The actual current can also be smaller - * by employing CoolStep. - * \param current the maximum motor current in mA - * \sa getCurrent(), getCurrentCurrent() - */ - void setCurrent(unsigned int current); - - /*! - * \brief readout the motor maximum current in mA (1000 is an Amp) - * This is the maximum current. to get the current current - which may be affected by CoolStep us getCurrentCurrent() - *\return the maximum motor current in milli amps - * \sa getCurrentCurrent() - */ - unsigned int getCurrent(void); - - /*! - * \brief set the StallGuard threshold in order to get sensible StallGuard readings. - * \param stall_guard_threshold -64 … 63 the StallGuard threshold - * \param stall_guard_filter_enabled 0 if the filter is disabled, -1 if it is enabled - * - * The StallGuard threshold is used to optimize the StallGuard reading to sensible values. It should be at 0 at - * the maximum allowable load on the otor (but not before). = is a good starting point (and the default) - * If you get Stall Gaurd readings of 0 without any load or with too little laod increase the value. - * If you get readings of 1023 even with load decrease the setting. - * - * If you switch on the filter the StallGuard reading is only updated each 4th full step to reduce the noise in the - * reading. - * - * \sa getCurrentStallGuardReading() to read out the current value. - */ - void setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled); - - /*! - * \brief reads out the StallGuard threshold - * \return a number between -64 and 63. - */ - char getStallGuardThreshold(void); - - /*! - * \brief returns the current setting of the StallGuard filter - * \return 0 if not set, -1 if set - */ - char getStallGuardFilter(void); - - /*! - * \brief This method configures the CoolStep smart energy operation. You must have a proper StallGuard configuration for the motor situation (current, voltage, speed) in rder to use this feature. - * \param lower_SG_threshold Sets the lower threshold for stallGuard2TM reading. Below this value, the motor current becomes increased. Allowed values are 0...480 - * \param SG_hysteresis Sets the distance between the lower and the upper threshold for stallGuard2TM reading. Above the upper threshold (which is lower_SG_threshold+SG_hysteresis+1) the motor current becomes decreased. Allowed values are 0...480 - * \param current_decrement_step_size Sets the current decrement steps. If the StallGuard value is above the threshold the current gets decremented by this step size. 0...32 - * \param current_increment_step_size Sets the current increment step. The current becomes incremented for each measured stallGuard2TM value below the lower threshold. 0...8 - * \param lower_current_limit Sets the lower motor current limit for coolStepTM operation by scaling the CS value. Values can be COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT - * The CoolStep smart energy operation automatically adjust the current sent into the motor according to the current load, - * read out by the StallGuard in order to provide the optimum torque with the minimal current consumption. - * You configure the CoolStep current regulator by defining upper and lower bounds of StallGuard readouts. If the readout is above the - * limit the current gets increased, below the limit the current gets decreased. - * You can specify the upper an lower threshold of the StallGuard readout in order to adjust the current. You can also set the number of - * StallGuard readings neccessary above or below the limit to get a more stable current adjustement. - * The current adjustement itself is configured by the number of steps the current gests in- or decreased and the absolut minimum current - * (1/2 or 1/4th otf the configured current). - * \sa COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT - */ - void setCoolStepConfiguration(unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size, - unsigned char current_increment_step_size, unsigned char lower_current_limit); - - /*! - * \brief enables or disables the CoolStep smart energy operation feature. It must be configured before enabling it. - * \param enabled true if CoolStep should be enabled, false if not. - * \sa setCoolStepConfiguration() - */ - void setCoolStepEnabled(boolean enabled); - - - /*! - * \brief check if the CoolStep feature is enabled - * \sa setCoolStepEnabled() - */ - boolean isCoolStepEnabled(); - - /*! - * \brief returns the lower StallGuard threshold for the CoolStep operation - * \sa setCoolStepConfiguration() - */ - unsigned int getCoolStepLowerSgThreshold(); - - /*! - * \brief returns the upper StallGuard threshold for the CoolStep operation - * \sa setCoolStepConfiguration() - */ - unsigned int getCoolStepUpperSgThreshold(); - - /*! - * \brief returns the number of StallGuard readings befor CoolStep adjusts the motor current. - * \sa setCoolStepConfiguration() - */ - unsigned char getCoolStepNumberOfSGReadings(); - - /*! - * \brief returns the increment steps for the current for the CoolStep operation - * \sa setCoolStepConfiguration() - */ - unsigned char getCoolStepCurrentIncrementSize(); - - /*! - * \brief returns the absolut minium current for the CoolStep operation - * \sa setCoolStepConfiguration() - * \sa COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT - */ - unsigned char getCoolStepLowerCurrentLimit(); - - /*! - * \brief Get the current microstep position for phase A - * \return The current microstep position for phase A 0…255 - * - * Keep in mind that this routine reads and writes a value via SPI - so this may take a bit time. - */ - int getMotorPosition(void); - - /*! - * \brief Reads the current StallGuard value. - * \return The current StallGuard value, lesser values indicate higher load, 0 means stall detected. - * Keep in mind that this routine reads and writes a value via SPI - so this may take a bit time. - * \sa setStallGuardThreshold() for tuning the readout to sensible ranges. - */ - int getCurrentStallGuardReading(void); - - /*! - * \brief Reads the current current setting value as fraction of the maximum current - * Returns values between 0 and 31, representing 1/32 to 32/32 (=1) - * \sa setCoolStepConfiguration() - */ - unsigned char getCurrentCSReading(void); - - - /*! - *\brief a convenience method to determine if the current scaling uses 0.31V or 0.165V as reference. - *\return false if 0.13V is the reference voltage, true if 0.165V is used. - */ - boolean isCurrentScalingHalfed(); - - /*! - * \brief Reads the current current setting value and recalculates the absolute current in mA (1A would be 1000). - * This method calculates the currently used current setting (either by setting or by CoolStep) and reconstructs - * the current in mA by usinge the VSENSE and resistor value. This method uses floating point math - so it - * may not be the fastest. - * \sa getCurrentCSReading(), getResistor(), isCurrentScalingHalfed(), getCurrent() - */ - unsigned int getCurrentCurrent(void); - - /*! - * \brief checks if there is a StallGuard warning in the last status - * \return 0 if there was no warning, -1 if there was some warning. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - * - * \sa setStallGuardThreshold() for tuning the readout to sensible ranges. - */ - boolean isStallGuardOverThreshold(void); - - /*! - * \brief Return over temperature status of the last status readout - * return 0 is everything is OK, TMC26X_OVERTEMPERATURE_PREWARING if status is reached, TMC26X_OVERTEMPERATURE_SHUTDOWN is the chip is shutdown, -1 if the status is unknown. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - char getOverTemperature(void); - - /*! - * \brief Is motor channel A shorted to ground detected in the last status readout. - * \return true is yes, false if not. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - - boolean isShortToGroundA(void); - - /*! - * \brief Is motor channel B shorted to ground detected in the last status readout. - * \return true is yes, false if not. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - boolean isShortToGroundB(void); - /*! - * \brief iIs motor channel A connected according to the last statu readout. - * \return true is yes, false if not. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - boolean isOpenLoadA(void); - - /*! - * \brief iIs motor channel A connected according to the last statu readout. - * \return true is yes, false if not. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - boolean isOpenLoadB(void); - - /*! - * \brief Is chopper inactive since 2^20 clock cycles - defaults to ~0,08s - * \return true is yes, false if not. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - */ - boolean isStandStill(void); - - /*! - * \brief checks if there is a StallGuard warning in the last status - * \return 0 if there was no warning, -1 if there was some warning. - * Keep in mind that this method does not enforce a readout but uses the value of the last status readout. - * You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout. - * - * \sa isStallGuardOverThreshold() - * TODO why? - * - * \sa setStallGuardThreshold() for tuning the readout to sensible ranges. - */ - boolean isStallGuardReached(void); - - /*! - *\brief enables or disables the motor driver bridges. If disabled the motor can run freely. If enabled not. - *\param enabled a boolean value true if the motor should be enabled, false otherwise. - */ - void setEnabled(boolean enabled); - - /*! - *\brief checks if the output bridges are enabled. If the bridges are not enabled the motor can run freely - *\return true if the bridges and by that the motor driver are enabled, false if not. - *\sa setEnabled() - */ - boolean isEnabled(); - - /*! - * \brief Manually read out the status register - * This function sends a byte to the motor driver in order to get the current readout. The parameter read_value - * seletcs which value will get returned. If the read_vlaue changes in respect to the previous readout this method - * automatically send two bytes to the motor: one to set the redout and one to get the actual readout. So this method - * may take time to send and read one or two bits - depending on the previous readout. - * \param read_value selects which value to read out (0..3). You can use the defines TMC26X_READOUT_POSITION, TMC_262_READOUT_STALLGUARD, or TMC_262_READOUT_CURRENT - * \sa TMC26X_READOUT_POSITION, TMC_262_READOUT_STALLGUARD, TMC_262_READOUT_CURRENT - */ - void readStatus(char read_value); - - /*! - * \brief Returns the current sense resistor value in milliohm. - * The default value of ,15 Ohm will return 150. - */ - int getResistor(); - - /*! - * \brief Prints out all the information that can be found in the last status read out - it does not force a status readout. - * The result is printed via Serial - */ - void debugLastStatus(void); - /*! - * \brief library version - * \return the version number as int. - */ - int version(void); - - private: - unsigned int steps_left; //the steps the motor has to do to complete the movement - int direction; // Direction of rotation - unsigned long step_delay; // delay between steps, in ms, based on speed - int number_of_steps; // total number of steps this motor can take - unsigned int speed; // we need to store the current speed in order to change the speed after changing microstepping - unsigned int resistor; //current sense resitor value in milliohm - - unsigned long last_step_time; // time stamp in ms of when the last step was taken - unsigned long next_step_time; // time stamp in ms of when the last step was taken - - //driver control register copies to easily set & modify the registers - unsigned long driver_control_register_value; - unsigned long chopper_config_register; - unsigned long cool_step_register_value; - unsigned long stall_guard2_current_register_value; - unsigned long driver_configuration_register_value; - //the driver status result - unsigned long driver_status_result; - - //helper routione to get the top 10 bit of the readout - inline int getReadoutValue(); - - //the pins for the stepper driver - unsigned char cs_pin; - unsigned char step_pin; - unsigned char dir_pin; - - //status values - boolean started; //if the stepper has been started yet - int microsteps; //the current number of micro steps - char constant_off_time; //we need to remember this value in order to enable and disable the motor - unsigned char cool_step_lower_threshold; // we need to remember the threshold to enable and disable the CoolStep feature - boolean cool_step_enabled; //we need to remember this to configure the coolstep if it si enabled - - //SPI sender - inline void send262(unsigned long datagram); -}; - -#endif - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp.html deleted file mode 100644 index a577ca3ea1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp.html +++ /dev/null @@ -1,848 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC26XStepper.cpp File Reference - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
- -
-
TMC26XStepper.cpp File Reference
-
-
-
#include <WProgram.h>
-#include <SPI.h>
-#include "TMC26XStepper.h"
-
-

Go to the source code of this file.

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

-Defines

#define DEFAULT_MICROSTEPPING_VALUE   32
#define DRIVER_CONTROL_REGISTER   0x0ul
#define CHOPPER_CONFIG_REGISTER   0x80000ul
#define COOL_STEP_REGISTER   0xA0000ul
#define STALL_GUARD2_LOAD_MEASURE_REGISTER   0xC0000ul
#define DRIVER_CONFIG_REGISTER   0xE0000ul
#define REGISTER_BIT_PATTERN   0xFFFFFul
#define MICROSTEPPING_PATTERN   0xFul
#define STEP_INTERPOLATION   0x200ul
#define DOUBLE_EDGE_STEP   0x100ul
#define VSENSE   0x40ul
#define READ_MICROSTEP_POSTION   0x0ul
#define READ_STALL_GUARD_READING   0x10ul
#define READ_STALL_GUARD_AND_COOL_STEP   0x20ul
#define READ_SELECTION_PATTERN   0x30ul
#define CHOPPER_MODE_STANDARD   0x0ul
#define CHOPPER_MODE_T_OFF_FAST_DECAY   0x4000ul
#define T_OFF_PATTERN   0xful
#define RANDOM_TOFF_TIME   0x2000ul
#define BLANK_TIMING_PATTERN   0x18000ul
#define BLANK_TIMING_SHIFT   15
#define HYSTERESIS_DECREMENT_PATTERN   0x1800ul
#define HYSTERESIS_DECREMENT_SHIFT   11
#define HYSTERESIS_LOW_VALUE_PATTERN   0x780ul
#define HYSTERESIS_LOW_SHIFT   7
#define HYSTERESIS_START_VALUE_PATTERN   0x78ul
#define HYSTERESIS_START_VALUE_SHIFT   4
#define T_OFF_TIMING_PATERN   0xFul
#define MINIMUM_CURRENT_FOURTH   0x8000ul
#define CURRENT_DOWN_STEP_SPEED_PATTERN   0x6000ul
#define SE_MAX_PATTERN   0xF00ul
#define SE_CURRENT_STEP_WIDTH_PATTERN   0x60ul
#define SE_MIN_PATTERN   0xful
#define STALL_GUARD_FILTER_ENABLED   0x10000ul
#define STALL_GUARD_TRESHHOLD_VALUE_PATTERN   0x17F00ul
#define CURRENT_SCALING_PATTERN   0x1Ful
#define STALL_GUARD_CONFIG_PATTERN   0x17F00ul
#define STALL_GUARD_VALUE_PATTERN   0x7F00ul
#define STATUS_STALL_GUARD_STATUS   0x1ul
#define STATUS_OVER_TEMPERATURE_SHUTDOWN   0x2ul
#define STATUS_OVER_TEMPERATURE_WARNING   0x4ul
#define STATUS_SHORT_TO_GROUND_A   0x8ul
#define STATUS_SHORT_TO_GROUND_B   0x10ul
#define STATUS_OPEN_LOAD_A   0x20ul
#define STATUS_OPEN_LOAD_B   0x40ul
#define STATUS_STAND_STILL   0x80ul
#define READOUT_VALUE_PATTERN   0xFFC00ul
#define INITIAL_MICROSTEPPING   0x3ul
-

Define Documentation

- -
-
- - - - -
#define BLANK_TIMING_PATTERN   0x18000ul
-
-
- -

Definition at line 63 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define BLANK_TIMING_SHIFT   15
-
-
- -

Definition at line 64 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define CHOPPER_CONFIG_REGISTER   0x80000ul
-
-
- -

Definition at line 41 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define CHOPPER_MODE_STANDARD   0x0ul
-
-
- -

Definition at line 59 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define CHOPPER_MODE_T_OFF_FAST_DECAY   0x4000ul
-
-
- -

Definition at line 60 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define COOL_STEP_REGISTER   0xA0000ul
-
-
- -

Definition at line 42 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define CURRENT_DOWN_STEP_SPEED_PATTERN   0x6000ul
-
-
- -

Definition at line 75 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define CURRENT_SCALING_PATTERN   0x1Ful
-
-
- -

Definition at line 83 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define DEFAULT_MICROSTEPPING_VALUE   32
-
-
- -

Definition at line 37 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define DOUBLE_EDGE_STEP   0x100ul
-
-
- -

Definition at line 51 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define DRIVER_CONFIG_REGISTER   0xE0000ul
-
-
- -

Definition at line 44 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define DRIVER_CONTROL_REGISTER   0x0ul
-
-
- -

Definition at line 40 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_DECREMENT_PATTERN   0x1800ul
-
-
- -

Definition at line 65 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_DECREMENT_SHIFT   11
-
-
- -

Definition at line 66 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_LOW_SHIFT   7
-
-
- -

Definition at line 68 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_LOW_VALUE_PATTERN   0x780ul
-
-
- -

Definition at line 67 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_START_VALUE_PATTERN   0x78ul
-
-
- -

Definition at line 69 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define HYSTERESIS_START_VALUE_SHIFT   4
-
-
- -

Definition at line 70 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define INITIAL_MICROSTEPPING   0x3ul
-
-
- -

Definition at line 99 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define MICROSTEPPING_PATTERN   0xFul
-
-
- -

Definition at line 49 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define MINIMUM_CURRENT_FOURTH   0x8000ul
-
-
- -

Definition at line 74 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define RANDOM_TOFF_TIME   0x2000ul
-
-
- -

Definition at line 62 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define READ_MICROSTEP_POSTION   0x0ul
-
-
- -

Definition at line 53 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define READ_SELECTION_PATTERN   0x30ul
-
-
- -

Definition at line 56 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define READ_STALL_GUARD_AND_COOL_STEP   0x20ul
-
-
- -

Definition at line 55 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define READ_STALL_GUARD_READING   0x10ul
-
-
- -

Definition at line 54 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define READOUT_VALUE_PATTERN   0xFFC00ul
-
-
- -

Definition at line 96 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define REGISTER_BIT_PATTERN   0xFFFFFul
-
-
- -

Definition at line 46 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define SE_CURRENT_STEP_WIDTH_PATTERN   0x60ul
-
-
- -

Definition at line 77 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define SE_MAX_PATTERN   0xF00ul
-
-
- -

Definition at line 76 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define SE_MIN_PATTERN   0xful
-
-
- -

Definition at line 78 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STALL_GUARD2_LOAD_MEASURE_REGISTER   0xC0000ul
-
-
- -

Definition at line 43 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STALL_GUARD_CONFIG_PATTERN   0x17F00ul
-
-
- -

Definition at line 84 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STALL_GUARD_FILTER_ENABLED   0x10000ul
-
-
- -

Definition at line 81 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STALL_GUARD_TRESHHOLD_VALUE_PATTERN   0x17F00ul
-
-
- -

Definition at line 82 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STALL_GUARD_VALUE_PATTERN   0x7F00ul
-
-
- -

Definition at line 85 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_OPEN_LOAD_A   0x20ul
-
-
- -

Definition at line 93 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_OPEN_LOAD_B   0x40ul
-
-
- -

Definition at line 94 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_OVER_TEMPERATURE_SHUTDOWN   0x2ul
-
-
- -

Definition at line 89 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_OVER_TEMPERATURE_WARNING   0x4ul
-
-
- -

Definition at line 90 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_SHORT_TO_GROUND_A   0x8ul
-
-
- -

Definition at line 91 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_SHORT_TO_GROUND_B   0x10ul
-
-
- -

Definition at line 92 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_STALL_GUARD_STATUS   0x1ul
-
-
- -

Definition at line 88 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STATUS_STAND_STILL   0x80ul
-
-
- -

Definition at line 95 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define STEP_INTERPOLATION   0x200ul
-
-
- -

Definition at line 50 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define T_OFF_PATTERN   0xful
-
-
- -

Definition at line 61 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define T_OFF_TIMING_PATERN   0xFul
-
-
- -

Definition at line 71 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - -
#define VSENSE   0x40ul
-
-
- -

Definition at line 52 of file TMC26XStepper.cpp.

- -
-
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp_source.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp_source.html deleted file mode 100644 index f7f4741ce1..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8cpp_source.html +++ /dev/null @@ -1,1067 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC26XStepper.cpp Source File - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
TMC26XStepper.cpp
-
-
-Go to the documentation of this file.
00001 /*
-00002  TMC26XStepper.cpp - - TMC26X Stepper library for Wiring/Arduino - Version 0.1
-00003  
-00004  based on the stepper library by Tom Igoe, et. al.
-00005  
-00006  Copyright (c) 2011, Interactive Matter, Marcus Nowotny
-00007  
-00008  Permission is hereby granted, free of charge, to any person obtaining a copy
-00009  of this software and associated documentation files (the "Software"), to deal
-00010  in the Software without restriction, including without limitation the rights
-00011  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-00012  copies of the Software, and to permit persons to whom the Software is
-00013  furnished to do so, subject to the following conditions:
-00014  
-00015  The above copyright notice and this permission notice shall be included in
-00016  all copies or substantial portions of the Software.
-00017  
-00018  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-00019  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-00020  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-00021  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-00022  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-00023  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-00024  THE SOFTWARE.
-00025  
-00026  */
-00027 
-00028 #if defined(ARDUINO) && ARDUINO >= 100
-00029         #include <Arduino.h>
-00030 #else
-00031         #include <WProgram.h>
-00032 #endif
-00033 #include <SPI.h>
-00034 #include "TMC26XStepper.h"
-00035 
-00036 //some default values used in initialization
-00037 #define DEFAULT_MICROSTEPPING_VALUE 32
-00038 
-00039 //TMC26X register definitions
-00040 #define DRIVER_CONTROL_REGISTER 0x0ul
-00041 #define CHOPPER_CONFIG_REGISTER 0x80000ul
-00042 #define COOL_STEP_REGISTER  0xA0000ul
-00043 #define STALL_GUARD2_LOAD_MEASURE_REGISTER 0xC0000ul
-00044 #define DRIVER_CONFIG_REGISTER 0xE0000ul
-00045 
-00046 #define REGISTER_BIT_PATTERN 0xFFFFFul
-00047 
-00048 //definitions for the driver control register
-00049 #define MICROSTEPPING_PATTERN 0xFul
-00050 #define STEP_INTERPOLATION 0x200ul
-00051 #define DOUBLE_EDGE_STEP 0x100ul
-00052 #define VSENSE 0x40ul
-00053 #define READ_MICROSTEP_POSTION 0x0ul
-00054 #define READ_STALL_GUARD_READING 0x10ul
-00055 #define READ_STALL_GUARD_AND_COOL_STEP 0x20ul
-00056 #define READ_SELECTION_PATTERN 0x30ul
-00057 
-00058 //definitions for the chopper config register
-00059 #define CHOPPER_MODE_STANDARD 0x0ul
-00060 #define CHOPPER_MODE_T_OFF_FAST_DECAY 0x4000ul
-00061 #define T_OFF_PATTERN 0xful
-00062 #define RANDOM_TOFF_TIME 0x2000ul
-00063 #define BLANK_TIMING_PATTERN 0x18000ul
-00064 #define BLANK_TIMING_SHIFT 15
-00065 #define HYSTERESIS_DECREMENT_PATTERN 0x1800ul
-00066 #define HYSTERESIS_DECREMENT_SHIFT 11
-00067 #define HYSTERESIS_LOW_VALUE_PATTERN 0x780ul
-00068 #define HYSTERESIS_LOW_SHIFT 7
-00069 #define HYSTERESIS_START_VALUE_PATTERN 0x78ul
-00070 #define HYSTERESIS_START_VALUE_SHIFT 4
-00071 #define T_OFF_TIMING_PATERN 0xFul
-00072 
-00073 //definitions for cool step register
-00074 #define MINIMUM_CURRENT_FOURTH 0x8000ul
-00075 #define CURRENT_DOWN_STEP_SPEED_PATTERN 0x6000ul
-00076 #define SE_MAX_PATTERN 0xF00ul
-00077 #define SE_CURRENT_STEP_WIDTH_PATTERN 0x60ul
-00078 #define SE_MIN_PATTERN 0xful
-00079 
-00080 //definitions for stall guard2 current register
-00081 #define STALL_GUARD_FILTER_ENABLED 0x10000ul
-00082 #define STALL_GUARD_TRESHHOLD_VALUE_PATTERN 0x17F00ul
-00083 #define CURRENT_SCALING_PATTERN 0x1Ful
-00084 #define STALL_GUARD_CONFIG_PATTERN 0x17F00ul
-00085 #define STALL_GUARD_VALUE_PATTERN 0x7F00ul
-00086 
-00087 //definitions for the input from the TCM260
-00088 #define STATUS_STALL_GUARD_STATUS 0x1ul
-00089 #define STATUS_OVER_TEMPERATURE_SHUTDOWN 0x2ul
-00090 #define STATUS_OVER_TEMPERATURE_WARNING 0x4ul
-00091 #define STATUS_SHORT_TO_GROUND_A 0x8ul
-00092 #define STATUS_SHORT_TO_GROUND_B 0x10ul
-00093 #define STATUS_OPEN_LOAD_A 0x20ul
-00094 #define STATUS_OPEN_LOAD_B 0x40ul
-00095 #define STATUS_STAND_STILL 0x80ul
-00096 #define READOUT_VALUE_PATTERN 0xFFC00ul
-00097 
-00098 //default values
-00099 #define INITIAL_MICROSTEPPING 0x3ul //32th microstepping
-00100 
-00101 //debuging output
-00102 //#define DEBUG
-00103 
-00104 /*
-00105  * Constructor
-00106  * number_of_steps - the steps per rotation
-00107  * cs_pin - the SPI client select pin
-00108  * dir_pin - the pin where the direction pin is connected
-00109  * step_pin - the pin where the step pin is connected
-00110  */
-00111 TMC26XStepper::TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor)
-00112 {
-00113         //we are not started yet
-00114         started=false;
-00115     //by default cool step is not enabled
-00116     cool_step_enabled=false;
-00117         
-00118         //save the pins for later use
-00119         this->cs_pin=cs_pin;
-00120         this->dir_pin=dir_pin;
-00121         this->step_pin = step_pin;
-00122     
-00123     //store the current sense resistor value for later use
-00124     this->resistor = resistor;
-00125         
-00126         //initizalize our status values
-00127         this->steps_left = 0;
-00128         this->direction = 0;
-00129         
-00130         //initialize register values
-00131         driver_control_register_value=DRIVER_CONTROL_REGISTER | INITIAL_MICROSTEPPING;
-00132         chopper_config_register=CHOPPER_CONFIG_REGISTER;
-00133         
-00134         //setting the default register values
-00135         driver_control_register_value=DRIVER_CONTROL_REGISTER|INITIAL_MICROSTEPPING;
-00136         microsteps = (1 << INITIAL_MICROSTEPPING);
-00137         chopper_config_register=CHOPPER_CONFIG_REGISTER;
-00138         cool_step_register_value=COOL_STEP_REGISTER;
-00139         stall_guard2_current_register_value=STALL_GUARD2_LOAD_MEASURE_REGISTER;
-00140         driver_configuration_register_value = DRIVER_CONFIG_REGISTER | READ_STALL_GUARD_READING;
-00141 
-00142         //set the current
-00143         setCurrent(current);
-00144         //set to a conservative start value
-00145         setConstantOffTimeChopper(7, 54, 13,12,1);
-00146     //set a nice microstepping value
-00147     setMicrosteps(DEFAULT_MICROSTEPPING_VALUE);
-00148     //save the number of steps
-00149     this->number_of_steps =   number_of_steps;
-00150 }
-00151 
-00152 
-00153 /*
-00154  * start & configure the stepper driver
-00155  * just must be called.
-00156  */
-00157 void TMC26XStepper::start() {
-00158 
-00159 #ifdef DEBUG    
-00160         Serial.println("TMC26X stepper library");
-00161         Serial.print("CS pin: ");
-00162         Serial.println(cs_pin);
-00163         Serial.print("DIR pin: ");
-00164         Serial.println(dir_pin);
-00165         Serial.print("STEP pin: ");
-00166         Serial.println(step_pin);
-00167         Serial.print("current scaling: ");
-00168         Serial.println(current_scaling,DEC);
-00169 #endif
-00170         //set the pins as output & its initial value
-00171         pinMode(step_pin, OUTPUT);     
-00172         pinMode(dir_pin, OUTPUT);     
-00173         pinMode(cs_pin, OUTPUT);     
-00174         digitalWrite(step_pin, LOW);     
-00175         digitalWrite(dir_pin, LOW);     
-00176         digitalWrite(cs_pin, HIGH);   
-00177         
-00178         //configure the SPI interface
-00179     SPI.setBitOrder(MSBFIRST);
-00180         SPI.setClockDivider(SPI_CLOCK_DIV8);
-00181         //todo this does not work reliably - find a way to foolprof set it (e.g. while communicating
-00182         //SPI.setDataMode(SPI_MODE3);
-00183         SPI.begin();
-00184                 
-00185         //set the initial values
-00186         send262(driver_control_register_value); 
-00187         send262(chopper_config_register);
-00188         send262(cool_step_register_value);
-00189         send262(stall_guard2_current_register_value);
-00190         send262(driver_configuration_register_value);
-00191         
-00192         //save that we are in running mode
-00193         started=true;
-00194 }
-00195 
-00196 /*
-00197  Mark the driver as unstarted to be able to start it again
-00198  */
-00199 void TMC26XStepper::un_start() {
-00200     started=false;
-00201 }
-00202 
-00203 
-00204 /*
-00205   Sets the speed in revs per minute
-00206 
-00207 */
-00208 void TMC26XStepper::setSpeed(unsigned int whatSpeed)
-00209 {
-00210   this->speed = whatSpeed;
-00211   this->step_delay = (60UL * 1000UL * 1000UL) / ((unsigned long)this->number_of_steps * (unsigned long)whatSpeed * (unsigned long)this->microsteps);
-00212 #ifdef DEBUG
-00213     Serial.print("Step delay in micros: ");
-00214     Serial.println(this->step_delay);
-00215 #endif
-00216     //update the next step time
-00217     this->next_step_time = this->last_step_time+this->step_delay; 
-00218 
-00219 }
-00220 
-00221 unsigned int TMC26XStepper::getSpeed(void) {
-00222     return this->speed;
-00223 }
-00224 
-00225 /*
-00226   Moves the motor steps_to_move steps.  If the number is negative, 
-00227    the motor moves in the reverse direction.
-00228  */
-00229 char TMC26XStepper::step(int steps_to_move)
-00230 {  
-00231         if (this->steps_left==0) {
-00232                 this->steps_left = abs(steps_to_move);  // how many steps to take
-00233   
-00234                 // determine direction based on whether steps_to_mode is + or -:
-00235                 if (steps_to_move > 0) {
-00236                         this->direction = 1;
-00237                 } else if (steps_to_move < 0) {
-00238                         this->direction = 0;
-00239                 }
-00240                 return 0;
-00241     } else {
-00242         return -1;
-00243     }
-00244 }
-00245 
-00246 char TMC26XStepper::move(void) {
-00247   // decrement the number of steps, moving one step each time:
-00248   if(this->steps_left>0) {
-00249       unsigned long time = micros();  
-00250           // move only if the appropriate delay has passed:
-00251          if (time >= this->next_step_time) {
-00252                 // increment or decrement the step number,
-00253                 // depending on direction:
-00254                 if (this->direction == 1) {
-00255                         digitalWrite(step_pin, HIGH);
-00256         } else { 
-00257                   digitalWrite(dir_pin, HIGH);
-00258                   digitalWrite(step_pin, HIGH);
-00259             }
-00260         // get the timeStamp of when you stepped:
-00261         this->last_step_time = time;
-00262         this->next_step_time = time+this->step_delay; 
-00263         // decrement the steps left:
-00264         steps_left--;
-00265                 //disable the step & dir pins
-00266                 digitalWrite(step_pin, LOW);
-00267                 digitalWrite(dir_pin, LOW);
-00268         }
-00269         return -1;
-00270         }
-00271     return 0;
-00272 }
-00273 
-00274 char TMC26XStepper::isMoving(void) {
-00275         return (this->steps_left>0);
-00276 }
-00277 
-00278 unsigned int TMC26XStepper::getStepsLeft(void) {
-00279         return this->steps_left;
-00280 }
-00281 
-00282 char TMC26XStepper::stop(void) {
-00283         //note to self if the motor is currently moving
-00284         char state = isMoving();
-00285         //stop the motor
-00286         this->steps_left = 0;
-00287         this->direction = 0;
-00288         //return if it was moving
-00289         return state;
-00290 }
-00291 
-00292 void TMC26XStepper::setCurrent(unsigned int current) {
-00293     unsigned char current_scaling = 0;
-00294         //calculate the current scaling from the max current setting (in mA)
-00295         double mASetting = (double)current;
-00296     double resistor_value = (double) this->resistor;
-00297         // remove vesense flag
-00298         this->driver_configuration_register_value &= ~(VSENSE); 
-00299         //this is derrived from I=(cs+1)/32*(Vsense/Rsense)
-00300     //leading to cs = CS = 32*R*I/V (with V = 0,31V oder 0,165V  and I = 1000*current)
-00301         //with Rsense=0,15
-00302         //for vsense = 0,310V (VSENSE not set)
-00303         //or vsense = 0,165V (VSENSE set)
-00304         current_scaling = (byte)((resistor_value*mASetting*32.0/(0.31*1000.0*1000.0))-0.5); //theoretically - 1.0 for better rounding it is 0.5
-00305         
-00306         //check if the current scalingis too low
-00307         if (current_scaling<16) {
-00308         //set the csense bit to get a use half the sense voltage (to support lower motor currents)
-00309                 this->driver_configuration_register_value |= VSENSE;
-00310         //and recalculate the current setting
-00311         current_scaling = (byte)((resistor_value*mASetting*32.0/(0.165*1000.0*1000.0))-0.5); //theoretically - 1.0 for better rounding it is 0.5
-00312 #ifdef DEBUG
-00313                 Serial.print("CS (Vsense=1): ");
-00314                 Serial.println(current_scaling);
-00315         } else {
-00316         Serial.print("CS: ");
-00317         Serial.println(current_scaling);
-00318 #endif
-00319     }
-00320 
-00321         //do some sanity checks
-00322         if (current_scaling>31) {
-00323                 current_scaling=31;
-00324         }
-00325         //delete the old value
-00326         stall_guard2_current_register_value &= ~(CURRENT_SCALING_PATTERN);
-00327         //set the new current scaling
-00328         stall_guard2_current_register_value |= current_scaling;
-00329         //if started we directly send it to the motor
-00330         if (started) {
-00331         send262(driver_configuration_register_value);
-00332                 send262(stall_guard2_current_register_value);
-00333         }
-00334 }
-00335 
-00336 unsigned int TMC26XStepper::getCurrent(void) {
-00337     //we calculate the current according to the datasheet to be on the safe side
-00338     //this is not the fastest but the most accurate and illustrative way
-00339     double result = (double)(stall_guard2_current_register_value & CURRENT_SCALING_PATTERN);
-00340     double resistor_value = (double)this->resistor;
-00341     double voltage = (driver_configuration_register_value & VSENSE)? 0.165:0.31;
-00342     result = (result+1.0)/32.0*voltage/resistor_value*1000.0*1000.0;
-00343     return (unsigned int)result;
-00344 }
-00345 
-00346 void TMC26XStepper::setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled) {
-00347         if (stall_guard_threshold<-64) {
-00348                 stall_guard_threshold = -64;
-00349         //We just have 5 bits   
-00350         } else if (stall_guard_threshold > 63) {
-00351                 stall_guard_threshold = 63;
-00352         }
-00353         //add trim down to 7 bits
-00354         stall_guard_threshold &=0x7f;
-00355         //delete old stall guard settings
-00356         stall_guard2_current_register_value &= ~(STALL_GUARD_CONFIG_PATTERN);
-00357         if (stall_guard_filter_enabled) {
-00358                 stall_guard2_current_register_value |= STALL_GUARD_FILTER_ENABLED;
-00359         }
-00360         //Set the new stall guard threshold
-00361         stall_guard2_current_register_value |= (((unsigned long)stall_guard_threshold << 8) & STALL_GUARD_CONFIG_PATTERN);
-00362         //if started we directly send it to the motor
-00363         if (started) {
-00364                 send262(stall_guard2_current_register_value);
-00365         }
-00366 }
-00367 
-00368 char TMC26XStepper::getStallGuardThreshold(void) {
-00369     unsigned long stall_guard_threshold = stall_guard2_current_register_value & STALL_GUARD_VALUE_PATTERN;
-00370     //shift it down to bit 0
-00371     stall_guard_threshold >>=8;
-00372     //convert the value to an int to correctly handle the negative numbers
-00373     char result = stall_guard_threshold;
-00374     //check if it is negative and fill it up with leading 1 for proper negative number representation
-00375     if (result & _BV(6)) {
-00376         result |= 0xC0;
-00377     }
-00378     return result;
-00379 }
-00380 
-00381 char TMC26XStepper::getStallGuardFilter(void) {
-00382     if (stall_guard2_current_register_value & STALL_GUARD_FILTER_ENABLED) {
-00383         return -1;
-00384     } else {
-00385         return 0;
-00386     }
-00387 }
-00388 /*
-00389  * Set the number of microsteps per step.
-00390  * 0,2,4,8,16,32,64,128,256 is supported
-00391  * any value in between will be mapped to the next smaller value
-00392  * 0 and 1 set the motor in full step mode
-00393  */
-00394 void TMC26XStepper::setMicrosteps(int number_of_steps) {
-00395         long setting_pattern;
-00396         //poor mans log
-00397         if (number_of_steps>=256) {
-00398                 setting_pattern=0;
-00399                 microsteps=256;
-00400         } else if (number_of_steps>=128) {
-00401                 setting_pattern=1;
-00402                 microsteps=128;
-00403         } else if (number_of_steps>=64) {
-00404                 setting_pattern=2;
-00405                 microsteps=64;
-00406         } else if (number_of_steps>=32) {
-00407                 setting_pattern=3;
-00408                 microsteps=32;
-00409         } else if (number_of_steps>=16) {
-00410                 setting_pattern=4;
-00411                 microsteps=16;
-00412         } else if (number_of_steps>=8) {
-00413                 setting_pattern=5;
-00414                 microsteps=8;
-00415         } else if (number_of_steps>=4) {
-00416                 setting_pattern=6;
-00417                 microsteps=4;
-00418         } else if (number_of_steps>=2) {
-00419                 setting_pattern=7;
-00420                 microsteps=2;
-00421     //1 and 0 lead to full step
-00422         } else if (number_of_steps<=1) {
-00423                 setting_pattern=8;
-00424                 microsteps=1;
-00425         }
-00426 #ifdef DEBUG
-00427         Serial.print("Microstepping: ");
-00428         Serial.println(microsteps);
-00429 #endif
-00430         //delete the old value
-00431         this->driver_control_register_value &=0xFFFF0ul;
-00432         //set the new value
-00433         this->driver_control_register_value |=setting_pattern;
-00434         
-00435         //if started we directly send it to the motor
-00436         if (started) {
-00437                 send262(driver_control_register_value);
-00438         }
-00439     //recalculate the stepping delay by simply setting the speed again
-00440     this->setSpeed(this->speed);
-00441 }
-00442 
-00443 /*
-00444  * returns the effective number of microsteps at the moment
-00445  */
-00446 int TMC26XStepper::getMicrosteps(void) {
-00447         return microsteps;
-00448 }
-00449 
-00450 /*
-00451  * constant_off_time: The off time setting controls the minimum chopper frequency. 
-00452  * For most applications an off time within     the range of 5μs to 20μs will fit.
-00453  *              2...15: off time setting
-00454  *
-00455  * blank_time: Selects the comparator blank time. This time needs to safely cover the switching event and the
-00456  * duration of the ringing on the sense resistor. For
-00457  *              0: min. setting 3: max. setting
-00458  *
-00459  * fast_decay_time_setting: Fast decay time setting. With CHM=1, these bits control the portion of fast decay for each chopper cycle.
-00460  *              0: slow decay only
-00461  *              1...15: duration of fast decay phase
-00462  *
-00463  * sine_wave_offset: Sine wave offset. With CHM=1, these bits control the sine wave offset. 
-00464  * A positive offset corrects for zero crossing error.
-00465  *              -3..-1: negative offset 0: no offset 1...12: positive offset
-00466  *
-00467  * use_current_comparator: Selects usage of the current comparator for termination of the fast decay cycle. 
-00468  * If current comparator is enabled, it terminates the fast decay cycle in case the current 
-00469  * reaches a higher negative value than the actual positive value.
-00470  *              1: enable comparator termination of fast decay cycle
-00471  *              0: end by time only
-00472  */
-00473 void TMC26XStepper::setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator) {
-00474         //perform some sanity checks
-00475         if (constant_off_time<2) {
-00476                 constant_off_time=2;
-00477         } else if (constant_off_time>15) {
-00478                 constant_off_time=15;
-00479         }
-00480     //save the constant off time
-00481     this->constant_off_time = constant_off_time;
-00482         char blank_value;
-00483         //calculate the value acc to the clock cycles
-00484         if (blank_time>=54) {
-00485                 blank_value=3;
-00486         } else if (blank_time>=36) {
-00487                 blank_value=2;
-00488         } else if (blank_time>=24) {
-00489                 blank_value=1;
-00490         } else {
-00491                 blank_value=0;
-00492         }
-00493         if (fast_decay_time_setting<0) {
-00494                 fast_decay_time_setting=0;
-00495         } else if (fast_decay_time_setting>15) {
-00496                 fast_decay_time_setting=15;
-00497         }
-00498         if (sine_wave_offset < -3) {
-00499                 sine_wave_offset = -3;
-00500         } else if (sine_wave_offset>12) {
-00501                 sine_wave_offset = 12;
-00502         }
-00503         //shift the sine_wave_offset
-00504         sine_wave_offset +=3;
-00505         
-00506         //calculate the register setting
-00507         //first of all delete all the values for this
-00508         chopper_config_register &= ~((1<<12) | BLANK_TIMING_PATTERN | HYSTERESIS_DECREMENT_PATTERN | HYSTERESIS_LOW_VALUE_PATTERN | HYSTERESIS_START_VALUE_PATTERN | T_OFF_TIMING_PATERN);
-00509         //set the constant off pattern
-00510         chopper_config_register |= CHOPPER_MODE_T_OFF_FAST_DECAY;
-00511         //set the blank timing value
-00512         chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT;
-00513         //setting the constant off time
-00514         chopper_config_register |= constant_off_time;
-00515         //set the fast decay time
-00516         //set msb
-00517         chopper_config_register |= (((unsigned long)(fast_decay_time_setting & 0x8))<<HYSTERESIS_DECREMENT_SHIFT);
-00518         //other bits
-00519         chopper_config_register |= (((unsigned long)(fast_decay_time_setting & 0x7))<<HYSTERESIS_START_VALUE_SHIFT);
-00520         //set the sine wave offset
-00521         chopper_config_register |= (unsigned long)sine_wave_offset << HYSTERESIS_LOW_SHIFT;
-00522         //using the current comparator?
-00523         if (!use_current_comparator) {
-00524                 chopper_config_register |= (1<<12);
-00525         }
-00526         //if started we directly send it to the motor
-00527         if (started) {
-00528                 send262(driver_control_register_value);
-00529         }       
-00530 }
-00531 
-00532 /*
-00533  * constant_off_time: The off time setting controls the minimum chopper frequency. 
-00534  * For most applications an off time within     the range of 5μs to 20μs will fit.
-00535  *              2...15: off time setting
-00536  *
-00537  * blank_time: Selects the comparator blank time. This time needs to safely cover the switching event and the
-00538  * duration of the ringing on the sense resistor. For
-00539  *              0: min. setting 3: max. setting
-00540  *
-00541  * hysteresis_start: Hysteresis start setting. Please remark, that this value is an offset to the hysteresis end value HEND.
-00542  *              1...8
-00543  *
-00544  * hysteresis_end: Hysteresis end setting. Sets the hysteresis end value after a number of decrements. Decrement interval time is controlled by HDEC. 
-00545  * The sum HSTRT+HEND must be <16. At a current setting CS of max. 30 (amplitude reduced to 240), the sum is not limited.
-00546  *              -3..-1: negative HEND 0: zero HEND 1...12: positive HEND
-00547  *
-00548  * hysteresis_decrement: Hysteresis decrement setting. This setting determines the slope of the hysteresis during on time and during fast decay time.
-00549  *              0: fast decrement 3: very slow decrement
-00550  */
-00551 
-00552 void TMC26XStepper::setSpreadCycleChopper(char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement) {
-00553         //perform some sanity checks
-00554         if (constant_off_time<2) {
-00555                 constant_off_time=2;
-00556         } else if (constant_off_time>15) {
-00557                 constant_off_time=15;
-00558         }
-00559     //save the constant off time
-00560     this->constant_off_time = constant_off_time;
-00561         char blank_value;
-00562         //calculate the value acc to the clock cycles
-00563         if (blank_time>=54) {
-00564                 blank_value=3;
-00565         } else if (blank_time>=36) {
-00566                 blank_value=2;
-00567         } else if (blank_time>=24) {
-00568                 blank_value=1;
-00569         } else {
-00570                 blank_value=0;
-00571         }
-00572         if (hysteresis_start<1) {
-00573                 hysteresis_start=1;
-00574         } else if (hysteresis_start>8) {
-00575                 hysteresis_start=8;
-00576         }
-00577         hysteresis_start--;
-00578 
-00579         if (hysteresis_end < -3) {
-00580                 hysteresis_end = -3;
-00581         } else if (hysteresis_end>12) {
-00582                 hysteresis_end = 12;
-00583         }
-00584         //shift the hysteresis_end
-00585         hysteresis_end +=3;
-00586 
-00587         if (hysteresis_decrement<0) {
-00588                 hysteresis_decrement=0;
-00589         } else if (hysteresis_decrement>3) {
-00590                 hysteresis_decrement=3;
-00591         }
-00592         
-00593         //first of all delete all the values for this
-00594         chopper_config_register &= ~(CHOPPER_MODE_T_OFF_FAST_DECAY | BLANK_TIMING_PATTERN | HYSTERESIS_DECREMENT_PATTERN | HYSTERESIS_LOW_VALUE_PATTERN | HYSTERESIS_START_VALUE_PATTERN | T_OFF_TIMING_PATERN);
-00595 
-00596         //set the blank timing value
-00597         chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT;
-00598         //setting the constant off time
-00599         chopper_config_register |= constant_off_time;
-00600         //set the hysteresis_start
-00601         chopper_config_register |= ((unsigned long)hysteresis_start) << HYSTERESIS_START_VALUE_SHIFT;
-00602         //set the hysteresis end
-00603         chopper_config_register |= ((unsigned long)hysteresis_end) << HYSTERESIS_LOW_SHIFT;
-00604         //set the hystereis decrement
-00605         chopper_config_register |= ((unsigned long)blank_value) << BLANK_TIMING_SHIFT;
-00606         //if started we directly send it to the motor
-00607         if (started) {
-00608                 send262(driver_control_register_value);
-00609         }       
-00610 }
-00611 
-00612 /*
-00613  * In a constant off time chopper scheme both coil choppers run freely, i.e. are not synchronized. 
-00614  * The frequency of each chopper mainly depends on the coil current and the position dependant motor coil inductivity, thus it depends on the microstep position. 
-00615  * With some motors a slightly audible beat can occur between the chopper frequencies, especially when they are near to each other. This typically occurs at a 
-00616  * few microstep positions within each quarter wave. This effect normally is not audible when compared to mechanical noise generated by ball bearings, etc. 
-00617  * Further factors which can cause a similar effect are a poor layout of sense resistor GND connection.
-00618  * Hint: A common factor, which can cause motor noise, is a bad PCB layout causing coupling of both sense resistor voltages 
-00619  * (please refer to sense resistor layout hint in chapter 8.1).
-00620  * In order to minimize the effect of a beat between both chopper frequencies, an internal random generator is provided. 
-00621  * It modulates the slow decay time setting when switched on by the RNDTF bit. The RNDTF feature further spreads the chopper spectrum, 
-00622  * reducing electromagnetic emission on single frequencies.
-00623  */
-00624 void TMC26XStepper::setRandomOffTime(char value) {
-00625         if (value) {
-00626                 chopper_config_register |= RANDOM_TOFF_TIME;
-00627         } else {
-00628                 chopper_config_register &= ~(RANDOM_TOFF_TIME);
-00629         }
-00630         //if started we directly send it to the motor
-00631         if (started) {
-00632                 send262(driver_control_register_value);
-00633         }       
-00634 }       
-00635 
-00636 void TMC26XStepper::setCoolStepConfiguration(unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size,
-00637                               unsigned char current_increment_step_size, unsigned char lower_current_limit) {
-00638     //sanitize the input values
-00639     if (lower_SG_threshold>480) {
-00640         lower_SG_threshold = 480;
-00641     }
-00642     //divide by 32
-00643     lower_SG_threshold >>=5;
-00644     if (SG_hysteresis>480) {
-00645         SG_hysteresis=480;
-00646     }
-00647     //divide by 32
-00648     SG_hysteresis >>=5;
-00649     if (current_decrement_step_size>3) {
-00650         current_decrement_step_size=3;
-00651     }
-00652     if (current_increment_step_size>3) {
-00653         current_increment_step_size=3;
-00654     }
-00655     if (lower_current_limit>1) {
-00656         lower_current_limit=1;
-00657     }
-00658     //store the lower level in order to enable/disable the cool step
-00659     this->cool_step_lower_threshold=lower_SG_threshold;
-00660     //if cool step is not enabled we delete the lower value to keep it disabled
-00661     if (!this->cool_step_enabled) {
-00662         lower_SG_threshold=0;
-00663     }
-00664     //the good news is that we can start with a complete new cool step register value
-00665     //and simply set the values in the register
-00666     cool_step_register_value = ((unsigned long)lower_SG_threshold) | (((unsigned long)SG_hysteresis)<<8) | (((unsigned long)current_decrement_step_size)<<5)
-00667         | (((unsigned long)current_increment_step_size)<<13) | (((unsigned long)lower_current_limit)<<15)
-00668         //and of course we have to include the signature of the register
-00669         | COOL_STEP_REGISTER;
-00670     //Serial.println(cool_step_register_value,HEX);
-00671     if (started) {
-00672         send262(cool_step_register_value);
-00673     }
-00674 }
-00675 
-00676 void TMC26XStepper::setCoolStepEnabled(boolean enabled) {
-00677     //simply delete the lower limit to disable the cool step
-00678     cool_step_register_value &= ~SE_MIN_PATTERN;
-00679     //and set it to the proper value if cool step is to be enabled
-00680     if (enabled) {
-00681         cool_step_register_value |=this->cool_step_lower_threshold;
-00682     }
-00683     //and save the enabled status
-00684     this->cool_step_enabled = enabled;
-00685     //save the register value
-00686     if (started) {
-00687         send262(cool_step_register_value);
-00688     }
-00689 }
-00690 
-00691 boolean TMC26XStepper::isCoolStepEnabled(void) {
-00692     return this->cool_step_enabled;
-00693 }
-00694 
-00695 unsigned int TMC26XStepper::getCoolStepLowerSgThreshold() {
-00696     //we return our internally stored value - in order to provide the correct setting even if cool step is not enabled
-00697     return this->cool_step_lower_threshold<<5;
-00698 }
-00699 
-00700 unsigned int TMC26XStepper::getCoolStepUpperSgThreshold() {
-00701     return (unsigned char)((cool_step_register_value & SE_MAX_PATTERN)>>8)<<5;
-00702 }
-00703 
-00704 unsigned char TMC26XStepper::getCoolStepCurrentIncrementSize() {
-00705     return (unsigned char)((cool_step_register_value & CURRENT_DOWN_STEP_SPEED_PATTERN)>>13);
-00706 }
-00707 
-00708 unsigned char TMC26XStepper::getCoolStepNumberOfSGReadings() {
-00709     return (unsigned char)((cool_step_register_value & SE_CURRENT_STEP_WIDTH_PATTERN)>>5);
-00710 }
-00711 
-00712 unsigned char TMC26XStepper::getCoolStepLowerCurrentLimit() {
-00713     return (unsigned char)((cool_step_register_value & MINIMUM_CURRENT_FOURTH)>>15);
-00714 }
-00715 
-00716 void TMC26XStepper::setEnabled(boolean enabled) {
-00717     //delete the t_off in the chopper config to get sure
-00718     chopper_config_register &= ~(T_OFF_PATTERN);
-00719     if (enabled) {
-00720         //and set the t_off time
-00721         chopper_config_register |= this->constant_off_time;
-00722     }
-00723     //if not enabled we don't have to do anything since we already delete t_off from the register
-00724         if (started) {
-00725                 send262(chopper_config_register);
-00726         }       
-00727 }
-00728 
-00729 boolean TMC26XStepper::isEnabled() {
-00730     if (chopper_config_register & T_OFF_PATTERN) {
-00731         return true;
-00732     } else {
-00733         return false;
-00734     }
-00735 }
-00736 
-00737 /*
-00738  * reads a value from the TMC26X status register. The value is not obtained directly but can then 
-00739  * be read by the various status routines.
-00740  *
-00741  */
-00742 void TMC26XStepper::readStatus(char read_value) {
-00743     unsigned long old_driver_configuration_register_value = driver_configuration_register_value;
-00744         //reset the readout configuration
-00745         driver_configuration_register_value &= ~(READ_SELECTION_PATTERN);
-00746         //this now equals TMC26X_READOUT_POSITION - so we just have to check the other two options
-00747         if (read_value == TMC26X_READOUT_STALLGUARD) {
-00748                 driver_configuration_register_value |= READ_STALL_GUARD_READING;
-00749         } else if (read_value == TMC26X_READOUT_CURRENT) {
-00750                 driver_configuration_register_value |= READ_STALL_GUARD_AND_COOL_STEP;
-00751         }
-00752         //all other cases are ignored to prevent funny values
-00753     //check if the readout is configured for the value we are interested in
-00754     if (driver_configuration_register_value!=old_driver_configuration_register_value) {
-00755             //because then we need to write the value twice - one time for configuring, second time to get the value, see below
-00756             send262(driver_configuration_register_value);
-00757         }
-00758     //write the configuration to get the last status    
-00759         send262(driver_configuration_register_value);
-00760 }
-00761 
-00762 int TMC26XStepper::getMotorPosition(void) {
-00763         //we read it out even if we are not started yet - perhaps it is useful information for somebody
-00764         readStatus(TMC26X_READOUT_POSITION);
-00765     return getReadoutValue();
-00766 }
-00767 
-00768 //reads the stall guard setting from last status
-00769 //returns -1 if stallguard information is not present
-00770 int TMC26XStepper::getCurrentStallGuardReading(void) {
-00771         //if we don't yet started there cannot be a stall guard value
-00772         if (!started) {
-00773                 return -1;
-00774         }
-00775         //not time optimal, but solution optiomal:
-00776         //first read out the stall guard value
-00777         readStatus(TMC26X_READOUT_STALLGUARD);
-00778         return getReadoutValue();
-00779 }
-00780 
-00781 unsigned char TMC26XStepper::getCurrentCSReading(void) {
-00782         //if we don't yet started there cannot be a stall guard value
-00783         if (!started) {
-00784                 return 0;
-00785         }
-00786         //not time optimal, but solution optiomal:
-00787         //first read out the stall guard value
-00788         readStatus(TMC26X_READOUT_CURRENT);
-00789         return (getReadoutValue() & 0x1f);
-00790 }
-00791 
-00792 unsigned int TMC26XStepper::getCurrentCurrent(void) {
-00793     double result = (double)getCurrentCSReading();
-00794     double resistor_value = (double)this->resistor;
-00795     double voltage = (driver_configuration_register_value & VSENSE)? 0.165:0.31;
-00796     result = (result+1.0)/32.0*voltage/resistor_value*1000.0*1000.0;
-00797     return (unsigned int)result;
-00798 }
-00799 
-00800 /*
-00801  return true if the stallguard threshold has been reached
-00802 */
-00803 boolean TMC26XStepper::isStallGuardOverThreshold(void) {
-00804         if (!this->started) {
-00805                 return false;
-00806         }
-00807         return (driver_status_result & STATUS_STALL_GUARD_STATUS);
-00808 }
-00809 
-00810 /*
-00811  returns if there is any over temperature condition:
-00812  OVER_TEMPERATURE_PREWARING if pre warning level has been reached
-00813  OVER_TEMPERATURE_SHUTDOWN if the temperature is so hot that the driver is shut down
-00814  Any of those levels are not too good.
-00815 */
-00816 char TMC26XStepper::getOverTemperature(void) {
-00817         if (!this->started) {
-00818                 return 0;
-00819         }
-00820         if (driver_status_result & STATUS_OVER_TEMPERATURE_SHUTDOWN) {
-00821                 return TMC26X_OVERTEMPERATURE_SHUTDOWN;
-00822         }
-00823         if (driver_status_result & STATUS_OVER_TEMPERATURE_WARNING) {
-00824                 return TMC26X_OVERTEMPERATURE_PREWARING;
-00825         }
-00826         return 0;
-00827 }
-00828 
-00829 //is motor channel A shorted to ground
-00830 boolean TMC26XStepper::isShortToGroundA(void) {
-00831         if (!this->started) {
-00832                 return false;
-00833         }
-00834         return (driver_status_result & STATUS_SHORT_TO_GROUND_A);
-00835 }
-00836 
-00837 //is motor channel B shorted to ground
-00838 boolean TMC26XStepper::isShortToGroundB(void) {
-00839         if (!this->started) {
-00840                 return false;
-00841         }
-00842         return (driver_status_result & STATUS_SHORT_TO_GROUND_B);
-00843 }
-00844 
-00845 //is motor channel A connected
-00846 boolean TMC26XStepper::isOpenLoadA(void) {
-00847         if (!this->started) {
-00848                 return false;
-00849         }
-00850         return (driver_status_result & STATUS_OPEN_LOAD_A);
-00851 }
-00852 
-00853 //is motor channel B connected
-00854 boolean TMC26XStepper::isOpenLoadB(void) {
-00855         if (!this->started) {
-00856                 return false;
-00857         }
-00858         return (driver_status_result & STATUS_OPEN_LOAD_B);
-00859 }
-00860 
-00861 //is chopper inactive since 2^20 clock cycles - defaults to ~0,08s
-00862 boolean TMC26XStepper::isStandStill(void) {
-00863         if (!this->started) {
-00864                 return false;
-00865         }
-00866         return (driver_status_result & STATUS_STAND_STILL);
-00867 }
-00868 
-00869 //is chopper inactive since 2^20 clock cycles - defaults to ~0,08s
-00870 boolean TMC26XStepper::isStallGuardReached(void) {
-00871         if (!this->started) {
-00872                 return false;
-00873         }
-00874         return (driver_status_result & STATUS_STALL_GUARD_STATUS);
-00875 }
-00876 
-00877 //reads the stall guard setting from last status
-00878 //returns -1 if stallguard inforamtion is not present
-00879 int TMC26XStepper::getReadoutValue(void) {
-00880         return (int)(driver_status_result >> 10);
-00881 }
-00882 
-00883 int TMC26XStepper::getResistor() {
-00884     return this->resistor;
-00885 }
-00886 
-00887 boolean TMC26XStepper::isCurrentScalingHalfed() {
-00888     if (this->driver_configuration_register_value & VSENSE) {
-00889         return true;
-00890     } else {
-00891         return false;
-00892     }
-00893 }
-00894 /*
-00895  version() returns the version of the library:
-00896  */
-00897 int TMC26XStepper::version(void)
-00898 {
-00899         return 1;
-00900 }
-00901 
-00902 void TMC26XStepper::debugLastStatus() {
-00903 #ifdef DEBUG    
-00904 if (this->started) {
-00905                 if (this->getOverTemperature()&TMC26X_OVERTEMPERATURE_PREWARING) {
-00906                         Serial.println("WARNING: Overtemperature Prewarning!");
-00907                 } else if (this->getOverTemperature()&TMC26X_OVERTEMPERATURE_SHUTDOWN) {
-00908                         Serial.println("ERROR: Overtemperature Shutdown!");
-00909                 }
-00910                 if (this->isShortToGroundA()) {
-00911                         Serial.println("ERROR: SHORT to ground on channel A!");
-00912                 }
-00913                 if (this->isShortToGroundB()) {
-00914                         Serial.println("ERROR: SHORT to ground on channel A!");
-00915                 }
-00916                 if (this->isOpenLoadA()) {
-00917                         Serial.println("ERROR: Channel A seems to be unconnected!");
-00918                 }
-00919                 if (this->isOpenLoadB()) {
-00920                         Serial.println("ERROR: Channel B seems to be unconnected!");
-00921                 }
-00922                 if (this->isStallGuardReached()) {      
-00923                         Serial.println("INFO: Stall Guard level reached!");
-00924                 }
-00925                 if (this->isStandStill()) {
-00926                         Serial.println("INFO: Motor is standing still.");
-00927                 }
-00928                 unsigned long readout_config = driver_configuration_register_value & READ_SELECTION_PATTERN;
-00929                 int value = getReadoutValue();
-00930                 if (readout_config == READ_MICROSTEP_POSTION) {
-00931                         Serial.print("Microstep postion phase A: ");
-00932                         Serial.println(value);
-00933                 } else if (readout_config == READ_STALL_GUARD_READING) {
-00934                         Serial.print("Stall Guard value:");
-00935                         Serial.println(value);
-00936                 } else if (readout_config == READ_STALL_GUARD_AND_COOL_STEP) {
-00937                         int stallGuard = value & 0xf;
-00938                         int current = value & 0x1F0;
-00939                         Serial.print("Approx Stall Guard: ");
-00940                         Serial.println(stallGuard);
-00941                         Serial.print("Current level");
-00942                         Serial.println(current);
-00943                 }
-00944         }
-00945 #endif
-00946 }
-00947 
-00948 /*
-00949  * send register settings to the stepper driver via SPI
-00950  * returns the current status
-00951  */
-00952 inline void TMC26XStepper::send262(unsigned long datagram) {
-00953         unsigned long i_datagram;
-00954     
-00955     //preserver the previous spi mode
-00956     unsigned char oldMode =  SPCR & SPI_MODE_MASK;
-00957         
-00958     //if the mode is not correct set it to mode 3
-00959     if (oldMode != SPI_MODE3) {
-00960         SPI.setDataMode(SPI_MODE3);
-00961     }
-00962         
-00963         //select the TMC driver
-00964         digitalWrite(cs_pin,LOW);
-00965 
-00966         //ensure that only valid bist are set (0-19)
-00967         //datagram &=REGISTER_BIT_PATTERN;
-00968         
-00969 #ifdef DEBUG
-00970         Serial.print("Sending ");
-00971         Serial.println(datagram,HEX);
-00972 #endif
-00973 
-00974         //write/read the values
-00975         i_datagram = SPI.transfer((datagram >> 16) & 0xff);
-00976         i_datagram <<= 8;
-00977         i_datagram |= SPI.transfer((datagram >>  8) & 0xff);
-00978         i_datagram <<= 8;
-00979         i_datagram |= SPI.transfer((datagram) & 0xff);
-00980         i_datagram >>= 4;
-00981         
-00982 #ifdef DEBUG
-00983         Serial.print("Received ");
-00984         Serial.println(i_datagram,HEX);
-00985         debugLastStatus();
-00986 #endif
-00987         //deselect the TMC chip
-00988         digitalWrite(cs_pin,HIGH); 
-00989     
-00990     //restore the previous SPI mode if neccessary
-00991     //if the mode is not correct set it to mode 3
-00992     if (oldMode != SPI_MODE3) {
-00993         SPI.setDataMode(oldMode);
-00994     }
-00995 
-00996         
-00997         //store the datagram as status result
-00998         driver_status_result = i_datagram;
-00999 }
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h.html deleted file mode 100644 index 34fda0a433..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC26XStepper.h File Reference - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
- -
-
TMC26XStepper.h File Reference
-
-
- -

Go to the source code of this file.

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

-Classes

class  TMC26XStepper
 Class representing a TMC26X stepper driver. More...

-Defines

#define TMC26X_OVERTEMPERATURE_PREWARING   1
 return value for TMC26XStepper.getOverTemperature() if there is a overtemperature situation in the TMC chip
#define TMC26X_OVERTEMPERATURE_SHUTDOWN   2
 return value for TMC26XStepper.getOverTemperature() if there is a overtemperature shutdown in the TMC chip
#define TMC26X_READOUT_POSITION   0
#define TMC26X_READOUT_STALLGUARD   1
#define TMC26X_READOUT_CURRENT   3
#define COOL_STEP_HALF_CS_LIMIT   0
#define COOL_STEP_QUARTDER_CS_LIMIT   1
-

Define Documentation

- -
-
- - - - -
#define COOL_STEP_HALF_CS_LIMIT   0
-
-
-

Define to set the minimum current for CoolStep operation to 1/2 of the selected CS minium.

-
See also:
setCoolStepConfiguration()
- -

Definition at line 70 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define COOL_STEP_QUARTDER_CS_LIMIT   1
-
-
-

Define to set the minimum current for CoolStep operation to 1/4 of the selected CS minium.

-
See also:
setCoolStepConfiguration()
- -

Definition at line 75 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define TMC26X_OVERTEMPERATURE_PREWARING   1
-
-
- -

return value for TMC26XStepper.getOverTemperature() if there is a overtemperature situation in the TMC chip

-

This warning indicates that the TCM chip is too warm. It is still working but some parameters may be inferior. You should do something against it.

- -

Definition at line 39 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define TMC26X_OVERTEMPERATURE_SHUTDOWN   2
-
-
- -

return value for TMC26XStepper.getOverTemperature() if there is a overtemperature shutdown in the TMC chip

-

This warning indicates that the TCM chip is too warm to operate and has shut down to prevent damage. It will stop working until it cools down again. If you encouter this situation you must do something against it. Like reducing the current or improving the PCB layout and/or heat management.

- -

Definition at line 47 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define TMC26X_READOUT_CURRENT   3
-
-
-

Selects to read out the current current setting (acc. to CoolStep) and the upper bits of the StallGuard value from the motor.

-
See also:
readStatus(), setCurrent()
- -

Definition at line 64 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define TMC26X_READOUT_POSITION   0
-
-
-

Selects to readout the microstep position from the motor.

-
See also:
readStatus()
- -

Definition at line 54 of file TMC26XStepper.h.

- -
-
- -
-
- - - - -
#define TMC26X_READOUT_STALLGUARD   1
-
-
-

Selects to read out the StallGuard value of the motor.

-
See also:
readStatus()
- -

Definition at line 59 of file TMC26XStepper.h.

- -
-
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h_source.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h_source.html deleted file mode 100644 index 521b53af71..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/_t_m_c26_x_stepper_8h_source.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC26XStepper.h Source File - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
TMC26XStepper.h
-
-
-Go to the documentation of this file.
00001 /*
-00002  TMC26XStepper.cpp - - TMC26X Stepper library for Wiring/Arduino - Version 0.1
-00003  
-00004  based on the stepper library by Tom Igoe, et. al.
-00005 
-00006  Copyright (c) 2011, Interactive Matter, Marcus Nowotny
-00007  
-00008  Permission is hereby granted, free of charge, to any person obtaining a copy
-00009  of this software and associated documentation files (the "Software"), to deal
-00010  in the Software without restriction, including without limitation the rights
-00011  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-00012  copies of the Software, and to permit persons to whom the Software is
-00013  furnished to do so, subject to the following conditions:
-00014  
-00015  The above copyright notice and this permission notice shall be included in
-00016  all copies or substantial portions of the Software.
-00017  
-00018  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-00019  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-00020  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-00021  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-00022  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-00023  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-00024  THE SOFTWARE.
-00025 
-00026  */
-00027 
-00028 
-00029 // ensure this library description is only included once
-00030 #ifndef TMC26XStepper_h
-00031 #define TMC26XStepper_h
-00032 
-00034 
-00039 #define TMC26X_OVERTEMPERATURE_PREWARING 1
-00040 
-00041 
-00047 #define TMC26X_OVERTEMPERATURE_SHUTDOWN 2
-00048 
-00049 //which values can be read out
-00054 #define TMC26X_READOUT_POSITION 0
-00055 
-00059 #define TMC26X_READOUT_STALLGUARD 1
-00060 
-00064 #define TMC26X_READOUT_CURRENT 3
-00065 
-00070 #define COOL_STEP_HALF_CS_LIMIT 0
-00071 
-00075 #define COOL_STEP_QUARTDER_CS_LIMIT 1
-00076 
-00101 class TMC26XStepper {
-00102   public:
-00124         TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor=150);
-00125         
-00133         void start();
-00134     
-00145         void un_start();
-00146 
-00147 
-00152     void setSpeed(unsigned int whatSpeed);
-00153     
-00158     unsigned int getSpeed(void);
-00159 
-00168         void setMicrosteps(int number_of_steps);
-00169     
-00178         int getMicrosteps(void);
-00179 
-00195     char step(int number_of_steps);
-00196     
-00215     char move(void);
-00216 
-00224     char isMoving(void);
-00225     
-00230     unsigned int getStepsLeft(void);
-00231     
-00238     char stop(void);
-00239     
-00264         void setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator);
-00265     
-00286         void setSpreadCycleChopper(char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement);
-00287 
-00303         void setRandomOffTime(char value);
-00304     
-00312         void setCurrent(unsigned int current);
-00313     
-00320     unsigned int getCurrent(void);
-00321     
-00337         void setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled);
-00338     
-00343     char getStallGuardThreshold(void);
-00344     
-00349     char getStallGuardFilter(void);
-00350     
-00368     void setCoolStepConfiguration(unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size,
-00369                                   unsigned char current_increment_step_size, unsigned char lower_current_limit);
-00370     
-00376     void setCoolStepEnabled(boolean enabled);
-00377     
-00378     
-00383     boolean isCoolStepEnabled();
-00384 
-00389     unsigned int getCoolStepLowerSgThreshold();
-00390     
-00395     unsigned int getCoolStepUpperSgThreshold();
-00396     
-00401     unsigned char getCoolStepNumberOfSGReadings();
-00402     
-00407     unsigned char getCoolStepCurrentIncrementSize();
-00408     
-00414     unsigned char getCoolStepLowerCurrentLimit();
-00415     
-00422         int getMotorPosition(void);
-00423     
-00430         int getCurrentStallGuardReading(void);
-00431     
-00437     unsigned char getCurrentCSReading(void);
-00438     
-00439     
-00444     boolean isCurrentScalingHalfed();
-00445 
-00453     unsigned int getCurrentCurrent(void);
-00454     
-00463         boolean isStallGuardOverThreshold(void);
-00464     
-00471         char getOverTemperature(void);
-00472     
-00480         boolean isShortToGroundA(void);
-00481 
-00488         boolean isShortToGroundB(void);
-00495         boolean isOpenLoadA(void);
-00496 
-00503         boolean isOpenLoadB(void);
-00504     
-00511         boolean isStandStill(void);
-00512 
-00524         boolean isStallGuardReached(void);
-00525     
-00530     void setEnabled(boolean enabled);
-00531     
-00537     boolean isEnabled();
-00538 
-00548         void readStatus(char read_value);
-00549     
-00554     int getResistor();
-00555 
-00560         void debugLastStatus(void);
-00565     int version(void);
-00566 
-00567   private:    
-00568         unsigned int steps_left;                //the steps the motor has to do to complete the movement
-00569     int direction;        // Direction of rotation
-00570     unsigned long step_delay;    // delay between steps, in ms, based on speed
-00571     int number_of_steps;      // total number of steps this motor can take
-00572     unsigned int speed; // we need to store the current speed in order to change the speed after changing microstepping
-00573     unsigned int resistor; //current sense resitor value in milliohm
-00574         
-00575     unsigned long last_step_time;      // time stamp in ms of when the last step was taken
-00576     unsigned long next_step_time;      // time stamp in ms of when the last step was taken
-00577         
-00578         //driver control register copies to easily set & modify the registers
-00579         unsigned long driver_control_register_value;
-00580         unsigned long chopper_config_register;
-00581         unsigned long cool_step_register_value;
-00582         unsigned long stall_guard2_current_register_value;
-00583         unsigned long driver_configuration_register_value;
-00584         //the driver status result
-00585         unsigned long driver_status_result;
-00586         
-00587         //helper routione to get the top 10 bit of the readout
-00588         inline int getReadoutValue();
-00589         
-00590         //the pins for the stepper driver
-00591         unsigned char cs_pin;
-00592         unsigned char step_pin;
-00593         unsigned char dir_pin;
-00594         
-00595         //status values 
-00596         boolean started; //if the stepper has been started yet
-00597         int microsteps; //the current number of micro steps
-00598     char constant_off_time; //we need to remember this value in order to enable and disable the motor
-00599     unsigned char cool_step_lower_threshold; // we need to remember the threshold to enable and disable the CoolStep feature
-00600     boolean cool_step_enabled; //we need to remember this to configure the coolstep if it si enabled
-00601         
-00602         //SPI sender
-00603         inline void send262(unsigned long datagram);
-00604 };
-00605 
-00606 #endif
-00607 
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/annotated.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/annotated.html deleted file mode 100644 index 193044cff0..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/annotated.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: Class List - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
- -
TMC26XStepperClass representing a TMC26X stepper driver
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/bc_s.png b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/bc_s.png deleted file mode 100644 index e4018628b5b45cb4301037485a29d7d74ac22138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)X?0Pv5h+5!wElpi=&YL!gfY!djl#UDdPKy97F|A-deTa@qo3BWh1YQIvzmHR^g zFjV4I6pLB7_*vEZk^%p7c7Bh>0`4r^X#gpJE_Vz9fSHKqclcZaV^k3gX%h+1`u||O zZ+BY?7(R=ayr^kXE=E0Dw=$Ud3VJ?9^Cz@hP?388Cw5>9TloOJ>^KczCgj zns2=|0!a|)Yq3{hjL{xyy7|Tk0N}Pe+g9PUTL!4{#;eUhrNd@!_T<>Vu+35c)h>sq ztgb?(6W3oFLz#%?OMEV@{j#4LuDvjVGZ~6hpQT8li5b0yjvK8c4efl+vSz5)P6 zle78)00_Iv5)&E~hnOdcd}L}i+MU>k+Q8#@KjqJJN`gRj(~)RmNrck9ht@LelPtVO zwp(J;k!T=gC#%o(13-^E+g@aqc()pf{+j|0w)AH*Mq$54UjLv#jV$RYpz3Vjg$$=u z>yjfBQOhL=^@+#4#$l|{~}HZ-?1Yy{lI*$N}*YDC`<{+;>_#gMXZdz4NI00000 LNkvXXu0mjfx86dR diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper-members.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper-members.html deleted file mode 100644 index 4547542b9c..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper-members.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: Member List - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
TMC26XStepper Member List
-
-
-This is the complete list of members for TMC26XStepper, including all inherited members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
debugLastStatus(void)TMC26XStepper
getCoolStepCurrentIncrementSize()TMC26XStepper
getCoolStepLowerCurrentLimit()TMC26XStepper
getCoolStepLowerSgThreshold()TMC26XStepper
getCoolStepNumberOfSGReadings()TMC26XStepper
getCoolStepUpperSgThreshold()TMC26XStepper
getCurrent(void)TMC26XStepper
getCurrentCSReading(void)TMC26XStepper
getCurrentCurrent(void)TMC26XStepper
getCurrentStallGuardReading(void)TMC26XStepper
getMicrosteps(void)TMC26XStepper
getMotorPosition(void)TMC26XStepper
getOverTemperature(void)TMC26XStepper
getResistor()TMC26XStepper
getSpeed(void)TMC26XStepper
getStallGuardFilter(void)TMC26XStepper
getStallGuardThreshold(void)TMC26XStepper
getStepsLeft(void)TMC26XStepper
isCoolStepEnabled()TMC26XStepper
isCurrentScalingHalfed()TMC26XStepper
isEnabled()TMC26XStepper
isMoving(void)TMC26XStepper
isOpenLoadA(void)TMC26XStepper
isOpenLoadB(void)TMC26XStepper
isShortToGroundA(void)TMC26XStepper
isShortToGroundB(void)TMC26XStepper
isStallGuardOverThreshold(void)TMC26XStepper
isStallGuardReached(void)TMC26XStepper
isStandStill(void)TMC26XStepper
move(void)TMC26XStepper
readStatus(char read_value)TMC26XStepper
setConstantOffTimeChopper(char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator)TMC26XStepper
setCoolStepConfiguration(unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size, unsigned char current_increment_step_size, unsigned char lower_current_limit)TMC26XStepper
setCoolStepEnabled(boolean enabled)TMC26XStepper
setCurrent(unsigned int current)TMC26XStepper
setEnabled(boolean enabled)TMC26XStepper
setMicrosteps(int number_of_steps)TMC26XStepper
setRandomOffTime(char value)TMC26XStepper
setSpeed(unsigned int whatSpeed)TMC26XStepper
setSpreadCycleChopper(char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement)TMC26XStepper
setStallGuardThreshold(char stall_guard_threshold, char stall_guard_filter_enabled)TMC26XStepper
start()TMC26XStepper
step(int number_of_steps)TMC26XStepper
stop(void)TMC26XStepper
TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor=150)TMC26XStepper
un_start()TMC26XStepper
version(void)TMC26XStepper
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper.html deleted file mode 100644 index 77c36f0bb9..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/class_t_m_c26_x_stepper.html +++ /dev/null @@ -1,1463 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC26XStepper Class Reference - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
- -
-
TMC26XStepper Class Reference
-
-
- -

Class representing a TMC26X stepper driver. - More...

- -

#include <TMC26XStepper.h>

- -

List of all members.

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

-Public Member Functions

 TMC26XStepper (int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int current, unsigned int resistor=150)
 creates a new represenatation of a stepper motor connected to a TMC26X stepper driver
void start ()
 configures and starts the TMC26X stepper driver. Before you called this function the stepper driver is in nonfunctional mode.
void un_start ()
 resets the stepper in unconfigured mode.
void setSpeed (unsigned int whatSpeed)
 Sets the rotation speed in revolutions per minute.
unsigned int getSpeed (void)
 reads out the currently selected speed in revolutions per minute.
void setMicrosteps (int number_of_steps)
 Set the number of microsteps in 2^i values (rounded) up to 256.
int getMicrosteps (void)
 returns the effective current number of microsteps selected.
char step (int number_of_steps)
 Initiate a movement for the given number of steps. Positive numbers move in one, negative numbers in the other direction.
char move (void)
 Central movement method, must be called as often as possible in the lopp function and is very fast.
char isMoving (void)
 checks if the motor still has to move to fulfill the last movement command.
unsigned int getStepsLeft (void)
 Get the number of steps left in the current movement.
char stop (void)
 Stops the motor regardless if it moves or not.
void setConstantOffTimeChopper (char constant_off_time, char blank_time, char fast_decay_time_setting, char sine_wave_offset, unsigned char use_current_comparator)
 Sets and configure the classical Constant Off Timer Chopper.
void setSpreadCycleChopper (char constant_off_time, char blank_time, char hysteresis_start, char hysteresis_end, char hysteresis_decrement)
 Sets and configures with spread cycle chopper.
void setRandomOffTime (char value)
 Use random off time for noise reduction (0 for off, -1 for on).
void setCurrent (unsigned int current)
 set the maximum motor current in mA (1000 is 1 Amp) Keep in mind this is the maximum peak Current. The RMS current will be 1/sqrt(2) smaller. The actual current can also be smaller by employing CoolStep.
unsigned int getCurrent (void)
 readout the motor maximum current in mA (1000 is an Amp) This is the maximum current. to get the current current - which may be affected by CoolStep us getCurrentCurrent()
void setStallGuardThreshold (char stall_guard_threshold, char stall_guard_filter_enabled)
 set the StallGuard threshold in order to get sensible StallGuard readings.
char getStallGuardThreshold (void)
 reads out the StallGuard threshold
char getStallGuardFilter (void)
 returns the current setting of the StallGuard filter
void setCoolStepConfiguration (unsigned int lower_SG_threshold, unsigned int SG_hysteresis, unsigned char current_decrement_step_size, unsigned char current_increment_step_size, unsigned char lower_current_limit)
 This method configures the CoolStep smart energy operation. You must have a proper StallGuard configuration for the motor situation (current, voltage, speed) in rder to use this feature.
void setCoolStepEnabled (boolean enabled)
 enables or disables the CoolStep smart energy operation feature. It must be configured before enabling it.
boolean isCoolStepEnabled ()
 check if the CoolStep feature is enabled
unsigned int getCoolStepLowerSgThreshold ()
 returns the lower StallGuard threshold for the CoolStep operation
unsigned int getCoolStepUpperSgThreshold ()
 returns the upper StallGuard threshold for the CoolStep operation
unsigned char getCoolStepNumberOfSGReadings ()
 returns the number of StallGuard readings befor CoolStep adjusts the motor current.
unsigned char getCoolStepCurrentIncrementSize ()
 returns the increment steps for the current for the CoolStep operation
unsigned char getCoolStepLowerCurrentLimit ()
 returns the absolut minium current for the CoolStep operation
int getMotorPosition (void)
 Get the current microstep position for phase A.
int getCurrentStallGuardReading (void)
 Reads the current StallGuard value.
unsigned char getCurrentCSReading (void)
 Reads the current current setting value as fraction of the maximum current Returns values between 0 and 31, representing 1/32 to 32/32 (=1)
boolean isCurrentScalingHalfed ()
 a convenience method to determine if the current scaling uses 0.31V or 0.165V as reference.
unsigned int getCurrentCurrent (void)
 Reads the current current setting value and recalculates the absolute current in mA (1A would be 1000). This method calculates the currently used current setting (either by setting or by CoolStep) and reconstructs the current in mA by usinge the VSENSE and resistor value. This method uses floating point math - so it may not be the fastest.
boolean isStallGuardOverThreshold (void)
 checks if there is a StallGuard warning in the last status
char getOverTemperature (void)
 Return over temperature status of the last status readout return 0 is everything is OK, TMC26X_OVERTEMPERATURE_PREWARING if status is reached, TMC26X_OVERTEMPERATURE_SHUTDOWN is the chip is shutdown, -1 if the status is unknown. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
boolean isShortToGroundA (void)
 Is motor channel A shorted to ground detected in the last status readout.
boolean isShortToGroundB (void)
 Is motor channel B shorted to ground detected in the last status readout.
boolean isOpenLoadA (void)
 iIs motor channel A connected according to the last statu readout.
boolean isOpenLoadB (void)
 iIs motor channel A connected according to the last statu readout.
boolean isStandStill (void)
 Is chopper inactive since 2^20 clock cycles - defaults to ~0,08s.
boolean isStallGuardReached (void)
 checks if there is a StallGuard warning in the last status
void setEnabled (boolean enabled)
 enables or disables the motor driver bridges. If disabled the motor can run freely. If enabled not.
boolean isEnabled ()
 checks if the output bridges are enabled. If the bridges are not enabled the motor can run freely
void readStatus (char read_value)
 Manually read out the status register This function sends a byte to the motor driver in order to get the current readout. The parameter read_value seletcs which value will get returned. If the read_vlaue changes in respect to the previous readout this method automatically send two bytes to the motor: one to set the redout and one to get the actual readout. So this method may take time to send and read one or two bits - depending on the previous readout.
int getResistor ()
 Returns the current sense resistor value in milliohm. The default value of ,15 Ohm will return 150.
void debugLastStatus (void)
 Prints out all the information that can be found in the last status read out - it does not force a status readout. The result is printed via Serial.
int version (void)
 library version
-

Detailed Description

-

Class representing a TMC26X stepper driver.

-

In order to use one fo those drivers in your Arduino code you have to create an object of that class:

-
 TMC26XStepper stepper = TMC26XStepper(200,1,2,3,500);
-

see TMC26XStepper(int number_of_steps, int cs_pin, int dir_pin, int step_pin, unsigned int rms_current)

-

Keep in mind that you need to start the driver with start() in order to get the TMC26X configured.

-

The most important function is the move(). It checks if the motor has to do a step or not. It is important that you call move() as often as possible in your Arduino loop() routine. I suggest to use a very fast loop routine and always call it at the beginning or the end.

-

In order to move you have to provide a movement speed with setSpeed(). The speed is a positive value setting the rotations per minute.

-

To really move the motor you have to call step() to tell the driver to move the motor the given number of steps in the given direction. Positive values move the motor in one direction, negative values in the other direction.

-

You can check with isMoving() if the mototr is still moving or stop it apruptely with stop().

- -

Definition at line 101 of file TMC26XStepper.h.

-

Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TMC26XStepper::TMC26XStepper (int number_of_steps,
int cs_pin,
int dir_pin,
int step_pin,
unsigned int current,
unsigned int resistor = 150 
)
-
-
- -

creates a new represenatation of a stepper motor connected to a TMC26X stepper driver

-

This is the main constructor. If in doubt use this. You must provide all parameters as described below.

-
Parameters:
- - - - - - - -
number_of_stepsthe number of steps the motor has per rotation.
cs_pinThe Arduino pin you have connected the Cient Select Pin (!CS) of the TMC26X for SPI
dir_pinthe number of the Arduino pin the Direction input of the TMC26X is connected
step_pinthe number of the Arduino pin the step pin of the TMC26X driver is connected.
rms_currentthe maximum current to privide to the motor in mA (!). A value of 200 would send up to 200mA to the motor
resistorthe current sense resistor in milli Ohm, defaults to ,15 Ohm ( or 150 milli Ohm) as in the TMC260 Arduino Shield
-
-
-

Keep in mind that you must also call TMC26XStepper.start() in order to configure the stepper driver for use.

-

By default the Constant Off Time chopper is used, see TCM262Stepper.setConstantOffTimeChopper() for details. This should work on most motors (YMMV). You may want to configure and use the Spread Cycle Chopper, see setSpreadCycleChopper().

-

By default a microstepping of 1/32th is used to provide a smooth motor run, while still giving a good progression per step. You can select a different stepping with setMicrosteps() to aa different value.

-
See also:
start(), setMicrosteps()
- -

Definition at line 111 of file TMC26XStepper.cpp.

- -
-
-

Member Function Documentation

- -
-
- - - - - - - - -
void TMC26XStepper::debugLastStatus (void )
-
-
- -

Prints out all the information that can be found in the last status read out - it does not force a status readout. The result is printed via Serial.

- -

Definition at line 902 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
unsigned char TMC26XStepper::getCoolStepCurrentIncrementSize ()
-
-
- -

returns the increment steps for the current for the CoolStep operation

-
See also:
setCoolStepConfiguration()
- -

Definition at line 704 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
unsigned char TMC26XStepper::getCoolStepLowerCurrentLimit ()
-
-
- -

returns the absolut minium current for the CoolStep operation

-
See also:
setCoolStepConfiguration()
-
-COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT
- -

Definition at line 712 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
unsigned int TMC26XStepper::getCoolStepLowerSgThreshold ()
-
-
- -

returns the lower StallGuard threshold for the CoolStep operation

-
See also:
setCoolStepConfiguration()
- -

Definition at line 695 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
unsigned char TMC26XStepper::getCoolStepNumberOfSGReadings ()
-
-
- -

returns the number of StallGuard readings befor CoolStep adjusts the motor current.

-
See also:
setCoolStepConfiguration()
- -

Definition at line 708 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
unsigned int TMC26XStepper::getCoolStepUpperSgThreshold ()
-
-
- -

returns the upper StallGuard threshold for the CoolStep operation

-
See also:
setCoolStepConfiguration()
- -

Definition at line 700 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
unsigned int TMC26XStepper::getCurrent (void )
-
-
- -

readout the motor maximum current in mA (1000 is an Amp) This is the maximum current. to get the current current - which may be affected by CoolStep us getCurrentCurrent()

-
Returns:
the maximum motor current in milli amps
-
See also:
getCurrentCurrent()
- -

Definition at line 336 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
unsigned char TMC26XStepper::getCurrentCSReading (void )
-
-
- -

Reads the current current setting value as fraction of the maximum current Returns values between 0 and 31, representing 1/32 to 32/32 (=1)

-
See also:
setCoolStepConfiguration()
- -

Definition at line 781 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
unsigned int TMC26XStepper::getCurrentCurrent (void )
-
-
- -

Reads the current current setting value and recalculates the absolute current in mA (1A would be 1000). This method calculates the currently used current setting (either by setting or by CoolStep) and reconstructs the current in mA by usinge the VSENSE and resistor value. This method uses floating point math - so it may not be the fastest.

-
See also:
getCurrentCSReading(), getResistor(), isCurrentScalingHalfed(), getCurrent()
- -

Definition at line 792 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
int TMC26XStepper::getCurrentStallGuardReading (void )
-
-
- -

Reads the current StallGuard value.

-
Returns:
The current StallGuard value, lesser values indicate higher load, 0 means stall detected. Keep in mind that this routine reads and writes a value via SPI - so this may take a bit time.
-
See also:
setStallGuardThreshold() for tuning the readout to sensible ranges.
- -

Definition at line 770 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
int TMC26XStepper::getMicrosteps (void )
-
-
- -

returns the effective current number of microsteps selected.

-

This function always returns the effective number of microsteps. This can be a bit different than the micro steps set in setMicrosteps() since it is rounded to 2^i.

-
See also:
setMicrosteps()
- -

Definition at line 446 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
int TMC26XStepper::getMotorPosition (void )
-
-
- -

Get the current microstep position for phase A.

-
Returns:
The current microstep position for phase A 0…255
-

Keep in mind that this routine reads and writes a value via SPI - so this may take a bit time.

- -

Definition at line 762 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::getOverTemperature (void )
-
-
- -

Return over temperature status of the last status readout return 0 is everything is OK, TMC26X_OVERTEMPERATURE_PREWARING if status is reached, TMC26X_OVERTEMPERATURE_SHUTDOWN is the chip is shutdown, -1 if the status is unknown. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.

- -

Definition at line 816 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
int TMC26XStepper::getResistor ()
-
-
- -

Returns the current sense resistor value in milliohm. The default value of ,15 Ohm will return 150.

- -

Definition at line 883 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
unsigned int TMC26XStepper::getSpeed (void )
-
-
- -

reads out the currently selected speed in revolutions per minute.

-
See also:
setSpeed()
- -

Definition at line 221 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::getStallGuardFilter (void )
-
-
- -

returns the current setting of the StallGuard filter

-
Returns:
0 if not set, -1 if set
- -

Definition at line 381 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::getStallGuardThreshold (void )
-
-
- -

reads out the StallGuard threshold

-
Returns:
a number between -64 and 63.
- -

Definition at line 368 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
unsigned int TMC26XStepper::getStepsLeft (void )
-
-
- -

Get the number of steps left in the current movement.

-
Returns:
The number of steps left in the movement. This number is always positive.
- -

Definition at line 278 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isCoolStepEnabled (void )
-
-
- -

check if the CoolStep feature is enabled

-
See also:
setCoolStepEnabled()
- -

Definition at line 691 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
boolean TMC26XStepper::isCurrentScalingHalfed ()
-
-
- -

a convenience method to determine if the current scaling uses 0.31V or 0.165V as reference.

-
Returns:
false if 0.13V is the reference voltage, true if 0.165V is used.
- -

Definition at line 887 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
boolean TMC26XStepper::isEnabled ()
-
-
- -

checks if the output bridges are enabled. If the bridges are not enabled the motor can run freely

-
Returns:
true if the bridges and by that the motor driver are enabled, false if not.
-
See also:
setEnabled()
- -

Definition at line 729 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::isMoving (void )
-
-
- -

checks if the motor still has to move to fulfill the last movement command.

-
Returns:
0 if the motor stops, -1 if the motor is moving.
-

This method can be used to determine if the motor is ready for new movements.

-
See also:
step(), move()
- -

Definition at line 274 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isOpenLoadA (void )
-
-
- -

iIs motor channel A connected according to the last statu readout.

-
Returns:
true is yes, false if not. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
- -

Definition at line 846 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isOpenLoadB (void )
-
-
- -

iIs motor channel A connected according to the last statu readout.

-
Returns:
true is yes, false if not. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
- -

Definition at line 854 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isShortToGroundA (void )
-
-
- -

Is motor channel A shorted to ground detected in the last status readout.

-
Returns:
true is yes, false if not. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
- -

Definition at line 830 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isShortToGroundB (void )
-
-
- -

Is motor channel B shorted to ground detected in the last status readout.

-
Returns:
true is yes, false if not. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
- -

Definition at line 838 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isStallGuardOverThreshold (void )
-
-
- -

checks if there is a StallGuard warning in the last status

-
Returns:
0 if there was no warning, -1 if there was some warning. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
-
See also:
setStallGuardThreshold() for tuning the readout to sensible ranges.
- -

Definition at line 803 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isStallGuardReached (void )
-
-
- -

checks if there is a StallGuard warning in the last status

-
Returns:
0 if there was no warning, -1 if there was some warning. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
-
See also:
isStallGuardOverThreshold() TODO why?
-
-setStallGuardThreshold() for tuning the readout to sensible ranges.
- -

Definition at line 870 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
boolean TMC26XStepper::isStandStill (void )
-
-
- -

Is chopper inactive since 2^20 clock cycles - defaults to ~0,08s.

-
Returns:
true is yes, false if not. Keep in mind that this method does not enforce a readout but uses the value of the last status readout. You may want to use getMotorPosition() or getCurrentStallGuardReading() to enforce an updated status readout.
- -

Definition at line 862 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::move (void )
-
-
- -

Central movement method, must be called as often as possible in the lopp function and is very fast.

-

This routine checks if the motor still has to move, if the waiting delay has passed to send a new step command to the motor and manages the number of steps yet to move to fulfill the current move command.

-

This function is implemented to be as fast as possible to call it as often as possible in your loop routine. The more regurlarly you call this function the better. In both senses of 'regularly': Calling it as often as possible is not a bad idea and if you even manage that the intervals you call this function are not too irregular helps too.

-

You can call this routine even if you know that the motor is not miving. It introduces just a very small penalty in your code. You must not call isMoving() to determine if you need to call this function, since taht is done internally already and only slows down you code.

-

How often you call this function directly influences your top miving speed for the motor. It may be a good idea to call this from an timer overflow interrupt to ensure proper calling.

-
See also:
step()
- -

Definition at line 246 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::readStatus (char read_value)
-
-
- -

Manually read out the status register This function sends a byte to the motor driver in order to get the current readout. The parameter read_value seletcs which value will get returned. If the read_vlaue changes in respect to the previous readout this method automatically send two bytes to the motor: one to set the redout and one to get the actual readout. So this method may take time to send and read one or two bits - depending on the previous readout.

-
Parameters:
- - -
read_valueselects which value to read out (0..3). You can use the defines TMC26X_READOUT_POSITION, TMC_262_READOUT_STALLGUARD, or TMC_262_READOUT_CURRENT
-
-
-
See also:
TMC26X_READOUT_POSITION, TMC_262_READOUT_STALLGUARD, TMC_262_READOUT_CURRENT
- -

Definition at line 742 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TMC26XStepper::setConstantOffTimeChopper (char constant_off_time,
char blank_time,
char fast_decay_time_setting,
char sine_wave_offset,
unsigned char use_current_comparator 
)
-
-
- -

Sets and configure the classical Constant Off Timer Chopper.

-
Parameters:
- - - - - - -
constant_off_timeThe off time setting controls the minimum chopper frequency. For most applications an off time within the range of 5μs to 20μs will fit. Setting this parameter to zero completely disables all driver transistors and the motor can free-wheel. 0: chopper off, 1:15: off time setting (1 will work with minimum blank time of 24 clocks)
blank_timeSelects the comparator blank time. This time needs to safely cover the switching event and the duration of the ringing on the sense resistor. For most low current drivers, a setting of 1 or 2 is good. For high current applications with large MOSFETs, a setting of 2 or 3 will be required. 0 (min setting) … (3) amx setting
fast_decay_time_settingFast decay time setting. Controls the portion of fast decay for each chopper cycle. 0: slow decay only, 1…15: duration of fast decay phase
sine_wave_offsetSine wave offset. Controls the sine wave offset. A positive offset corrects for zero crossing error. -3…-1: negative offset, 0: no offset,1…12: positive offset
use_curreent_comparatorSelects usage of the current comparator for termination of the fast decay cycle. If current comparator is enabled, it terminates the fast decay cycle in case the current reaches a higher negative value than the actual positive value. (0 disable, -1 enable).
-
-
-

The classic constant off time chopper uses a fixed portion of fast decay following each on phase. While the duration of the on time is determined by the chopper comparator, the fast decay time needs to be set by the user in a way, that the current decay is enough for the driver to be able to follow the falling slope of the sine wave, and on the other hand it should not be too long, in order to minimize motor current ripple and power dissipation. This best can be tuned using an oscilloscope or trying out motor smoothness at different velocities. A good starting value is a fast decay time setting similar to the slow decay time setting. After tuning of the fast decay time, the offset should be determined, in order to have a smooth zero transition. This is necessary, because the fast decay phase leads to the absolute value of the motor current being lower than the target current (see figure 17). If the zero offset is too low, the motor stands still for a short moment during current zero crossing, if it is set too high, it makes a larger microstep. Typically, a positive offset setting is required for optimum operation.

-
See also:
setSpreadCycleChoper() for other alternatives.
-
-setRandomOffTime() for spreading the noise over a wider spectrum
- -

Definition at line 473 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TMC26XStepper::setCoolStepConfiguration (unsigned int lower_SG_threshold,
unsigned int SG_hysteresis,
unsigned char current_decrement_step_size,
unsigned char current_increment_step_size,
unsigned char lower_current_limit 
)
-
-
- -

This method configures the CoolStep smart energy operation. You must have a proper StallGuard configuration for the motor situation (current, voltage, speed) in rder to use this feature.

-
Parameters:
- - - - - - -
lower_SG_thresholdSets the lower threshold for stallGuard2TM reading. Below this value, the motor current becomes increased. Allowed values are 0...480
SG_hysteresisSets the distance between the lower and the upper threshold for stallGuard2TM reading. Above the upper threshold (which is lower_SG_threshold+SG_hysteresis+1) the motor current becomes decreased. Allowed values are 0...480
current_decrement_step_sizeSets the current decrement steps. If the StallGuard value is above the threshold the current gets decremented by this step size. 0...32
current_increment_step_sizeSets the current increment step. The current becomes incremented for each measured stallGuard2TM value below the lower threshold. 0...8
lower_current_limitSets the lower motor current limit for coolStepTM operation by scaling the CS value. Values can be COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT The CoolStep smart energy operation automatically adjust the current sent into the motor according to the current load, read out by the StallGuard in order to provide the optimum torque with the minimal current consumption. You configure the CoolStep current regulator by defining upper and lower bounds of StallGuard readouts. If the readout is above the limit the current gets increased, below the limit the current gets decreased. You can specify the upper an lower threshold of the StallGuard readout in order to adjust the current. You can also set the number of StallGuard readings neccessary above or below the limit to get a more stable current adjustement. The current adjustement itself is configured by the number of steps the current gests in- or decreased and the absolut minimum current (1/2 or 1/4th otf the configured current).
-
-
-
See also:
COOL_STEP_HALF_CS_LIMIT, COOL_STEP_QUARTER_CS_LIMIT
- -

Definition at line 636 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setCoolStepEnabled (boolean enabled)
-
-
- -

enables or disables the CoolStep smart energy operation feature. It must be configured before enabling it.

-
Parameters:
- - -
enabledtrue if CoolStep should be enabled, false if not.
-
-
-
See also:
setCoolStepConfiguration()
- -

Definition at line 676 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setCurrent (unsigned int current)
-
-
- -

set the maximum motor current in mA (1000 is 1 Amp) Keep in mind this is the maximum peak Current. The RMS current will be 1/sqrt(2) smaller. The actual current can also be smaller by employing CoolStep.

-
Parameters:
- - -
currentthe maximum motor current in mA
-
-
-
See also:
getCurrent(), getCurrentCurrent()
- -

Definition at line 292 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setEnabled (boolean enabled)
-
-
- -

enables or disables the motor driver bridges. If disabled the motor can run freely. If enabled not.

-
Parameters:
- - -
enableda boolean value true if the motor should be enabled, false otherwise.
-
-
- -

Definition at line 716 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setMicrosteps (int number_of_steps)
-
-
- -

Set the number of microsteps in 2^i values (rounded) up to 256.

-

This method set's the number of microsteps per step in 2^i interval. This means you can select 1, 2, 4, 16, 32, 64, 128 or 256 as valid microsteps. If you give any other value it will be rounded to the next smaller number (3 would give a microstepping of 2). You can always check the current microstepping with getMicrosteps().

- -

Definition at line 394 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setRandomOffTime (char value)
-
-
- -

Use random off time for noise reduction (0 for off, -1 for on).

-
Parameters:
- - -
value0 for off, -1 for on
-
-
-

In a constant off time chopper scheme both coil choppers run freely, i.e. are not synchronized. The frequency of each chopper mainly depends on the coil current and the position dependant motor coil inductivity, thus it depends on the microstep position. With some motors a slightly audible beat can occur between the chopper frequencies, especially when they are near to each other. This typically occurs at a few microstep positions within each quarter wave. This effect normally is not audible when compared to mechanical noise generated by ball bearings, etc. Further factors which can cause a similar effect are a poor layout of sense resistor GND connection. In order to minimize the effect of a beat between both chopper frequencies, an internal random generator is provided. It modulates the slow decay time setting when switched on. The random off time feature further spreads the chopper spectrum, reducing electromagnetic emission on single frequencies.

- -

Definition at line 624 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
void TMC26XStepper::setSpeed (unsigned int whatSpeed)
-
-
- -

Sets the rotation speed in revolutions per minute.

-
Parameters:
- - -
whatSpeedthe desired speed in rotations per minute.
-
-
- -

Definition at line 208 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void TMC26XStepper::setSpreadCycleChopper (char constant_off_time,
char blank_time,
char hysteresis_start,
char hysteresis_end,
char hysteresis_decrement 
)
-
-
- -

Sets and configures with spread cycle chopper.

-
Parameters:
- - - - - - -
constant_off_timeThe off time setting controls the minimum chopper frequency. For most applications an off time within the range of 5μs to 20μs will fit. Setting this parameter to zero completely disables all driver transistors and the motor can free-wheel. 0: chopper off, 1:15: off time setting (1 will work with minimum blank time of 24 clocks)
blank_timeSelects the comparator blank time. This time needs to safely cover the switching event and the duration of the ringing on the sense resistor. For most low current drivers, a setting of 1 or 2 is good. For high current applications with large MOSFETs, a setting of 2 or 3 will be required. 0 (min setting) … (3) amx setting
hysteresis_startHysteresis start setting. Please remark, that this value is an offset to the hysteresis end value. 1 … 8
hysteresis_endHysteresis end setting. Sets the hysteresis end value after a number of decrements. Decrement interval time is controlled by hysteresis_decrement. The sum hysteresis_start + hysteresis_end must be <16. At a current setting CS of max. 30 (amplitude reduced to 240), the sum is not limited.
hysteresis_decrementHysteresis decrement setting. This setting determines the slope of the hysteresis during on time and during fast decay time. 0 (fast decrement) … 3 (slow decrement).
-
-
-

The spreadCycle chopper scheme (pat.fil.) is a precise and simple to use chopper principle, which automatically determines the optimum fast decay portion for the motor. Anyhow, a number of settings can be made in order to optimally fit the driver to the motor. Each chopper cycle is comprised of an on-phase, a slow decay phase, a fast decay phase and a second slow decay phase. The slow decay phases limit the maximum chopper frequency and are important for low motor and driver power dissipation. The hysteresis start setting limits the chopper frequency by forcing the driver to introduce a minimum amount of current ripple into the motor coils. The motor inductivity determines the ability to follow a changing motor current. The duration of the on- and fast decay phase needs to cover at least the blank time, because the current comparator is disabled during this time.

-
See also:
setRandomOffTime() for spreading the noise over a wider spectrum
- -

Definition at line 552 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
void TMC26XStepper::setStallGuardThreshold (char stall_guard_threshold,
char stall_guard_filter_enabled 
)
-
-
- -

set the StallGuard threshold in order to get sensible StallGuard readings.

-
Parameters:
- - - -
stall_guard_threshold-64 … 63 the StallGuard threshold
stall_guard_filter_enabled0 if the filter is disabled, -1 if it is enabled
-
-
-

The StallGuard threshold is used to optimize the StallGuard reading to sensible values. It should be at 0 at the maximum allowable load on the otor (but not before). = is a good starting point (and the default) If you get Stall Gaurd readings of 0 without any load or with too little laod increase the value. If you get readings of 1023 even with load decrease the setting.

-

If you switch on the filter the StallGuard reading is only updated each 4th full step to reduce the noise in the reading.

-
See also:
getCurrentStallGuardReading() to read out the current value.
- -

Definition at line 346 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
void TMC26XStepper::start ()
-
-
- -

configures and starts the TMC26X stepper driver. Before you called this function the stepper driver is in nonfunctional mode.

-

This routine configures the TMC26X stepper driver for the given values via SPI. Most member functions are non functional if the driver has not been started. Therefore it is best to call this in your Arduino setup() function.

- -

Definition at line 157 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::step (int number_of_steps)
-
-
- -

Initiate a movement for the given number of steps. Positive numbers move in one, negative numbers in the other direction.

-
Parameters:
- - -
number_of_stepsThe number of steps to move the motor.
-
-
-
Returns:
0 if the motor was not moving and moves now. -1 if the motor is moving and the new steps could not be set.
-

If the previous movement is not finished yet the function will return -1 and not change the steps to move the motor. If the motor does not move it return 0

-

The direction of the movement is indicated by the sign of the steps parameter. It is not determinable if positive values are right or left This depends on the internal construction of the motor and how you connected it to the stepper driver.

-

You can always verify with isMoving() or even use stop() to stop the motor before giving it new step directions.

-
See also:
isMoving(), getStepsLeft(), stop()
- -

Definition at line 229 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
char TMC26XStepper::stop (void )
-
-
- -

Stops the motor regardless if it moves or not.

-
Returns:
-1 if the motor was moving and is really stoped or 0 if it was not moving at all.
-

This method directly and apruptely stops the motor and may be used as an emergency stop.

- -

Definition at line 282 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - -
void TMC26XStepper::un_start ()
-
-
- -

resets the stepper in unconfigured mode.

-

This routine enables you to call start again. It does not change anything in the internal stepper configuration or the desired configuration. It just marks the stepper as not yet startet. You do not have to reconfigure the stepper to start it again, but it is not reset to any factory settings this has to be configured back by yourself. (Hint: Normally you do not need this function)

- -

Definition at line 199 of file TMC26XStepper.cpp.

- -
-
- -
-
- - - - - - - - -
int TMC26XStepper::version (void )
-
-
- -

library version

-
Returns:
the version number as int.
- -

Definition at line 897 of file TMC26XStepper.cpp.

- -
-
-
The documentation for this class was generated from the following files: -
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/classes.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/classes.html deleted file mode 100644 index 5b5e667a20..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/classes.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: Class Index - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
Class Index
-
-
- - - - - - -
  T  
-
TMC26XStepper   
- -
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/closed.png b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/closed.png deleted file mode 100644 index b7d4bd9fef2272c74b94762c9e2496177017775e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VuAVNAAr*{o?>h22DDp4|bgj*t z)u^AqcA-V@guRYpb17F<&b?_~8HV>~XqWvB;^$!VVSTy0!eQcJp_yD7TIQA>7dijs YXf6~H5cs^Q6KEiVr>mdKI;Vst0NsWqGynhq diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.css b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.css deleted file mode 100644 index cee0d06b57..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.css +++ /dev/null @@ -1,949 +0,0 @@ -/* The standard CSS for doxygen */ - -body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 13px; - line-height: 1.3; -} - -/* @group Heading Levels */ - -h1 { - font-size: 150%; -} - -.title { - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2 { - font-size: 120%; -} - -h3 { - font-size: 100%; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 8px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #C4CFE5; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; -} - -.memname { - white-space: nowrap; - font-weight: bold; - margin-left: 6px; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 8px; - border-top-left-radius: 8px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 8px; - -moz-border-radius-topleft: 8px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 8px; - -webkit-border-top-left-radius: 8px; - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 2px 5px; - background-color: #FBFCFD; - border-top-width: 0; - /* opera specific markup */ - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -.params, .retval, .exception, .tparams { - border-spacing: 6px 2px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - - - - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; -} - -table.fieldtable { - width: 100%; - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - width: 100%; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - margin-left: 5px; - font-size: 8pt; - padding-left: 5px; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 7px; -} - -dl -{ - padding: 0 0 0 10px; -} - -dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug -{ - border-left:4px solid; - padding: 0 0 0 6px; -} - -dl.note -{ - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - border-color: #00D000; -} - -dl.deprecated -{ - border-color: #505050; -} - -dl.todo -{ - border-color: #00C0E0; -} - -dl.test -{ - border-color: #3030E0; -} - -dl.bug -{ - border-color: #C08050; -} - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } - pre.fragment - { - overflow: visible; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - } -} - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.png b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/doxygen.png deleted file mode 100644 index 635ed52fce7057ac24df92ec7664088a881fa5d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3942 zcmV-s51H_ZP)95ENDh(OT9xpYZC{M(=rqI* z+1erNEr&9zRjUI-4rN=4BBz>P@ys*xOjGRjzVE*Fx_qvyt9d@B@BO*&@8Mq!nM{Tc z_WoM84-~xLreSL9@vgZ{m2dF}`u=^ZF3syQ-s2tnBwCI3ZFvSfI20Wbj236~Urq*8Kfw@RKKfRQTgE>}uUHK^ptamY=o)LU(xy55zNQ(`qZ znZ&$O075mrrInIXQgw4%GCbMD8Vn`3n3$EaRwtP1D{A!Gs=e!L%3;ayv@I{rAw{xw z^x^>EIWQM8ob3m}$(BaupDMV;Ed8w5|i(*e`7rU$TOc&1o7`|!LyN5jHI z7uWAR!v4c2xMp?}QmRYyf>i}tYGU(g=>DW&==J@GbhR z5@BNVY3O$`^D%gk4khm9XpFhuwzxUhi9T=Du4rpVuYRSMPHeDqo+4htnZRU@G9`0& z9~p)CsFl1|t*wjfoTo&%davN^3RfJUhQ{ZZIAcD77X^XsF_iR&ZMQ;p>K5*+*48)x z+=<>nh+6Uq85jOkg>{z>a;+V`s(I;I%*5s+R@9a^wNoZ03(g9-EcH%uHvX&yp7`D#`9Kw>DU3s zjD-VuW_A-K)unlS4O3f>_B%pPONUmI#oyL};Lglp3=04>0eBBEw$D1k-$WTsoi#K* z$7h`NcyRZsZ#w~6I<%~u!^xDofYrzF>zVIj2N>Ijs`mVR(Oy&*9f}<{JtQj8jJT!oEc!NQXBq5y|6ET*N?7ox*E6#{i- z@_DLD^IYTtg|Pg?A~!7@OCd8p^)kxK%VBM84docx$Z{MvO)iiqep@or-N}TEU8$%; zJih?#yJ9)V1s_`}c3XbY9V}nEKwNz8ILmR|v)(w|D@oVG;=i`+$*)!(xH{9#$2Za;pyZ1wgU#)mHl|&8%iwu%yncO z`T32Ib0$D}j`c}}5M@M#7oR&G=QwU!!Ja*P7|NJt1@lo=d{_dY-q_lmDcH7{BHncF zR@^PmcLC6EsN?6N{fV3o8}>?h9X_@;=&-p7%tms7$_{3w(anwek_k&<&)~c$Ar?S> zy9gKavndTmxqAbE?SMgcWhXPENdKdz7ntt55Y3Hs3jjc~uR-#$tR(1a_abv9`-QzG z^J0Fsbd&yruq%xAsxf3rc=T}$Zx|AD%x{Fd=? z{qhl3kG5w-PqVK9-Gru%7UIEw)bt$ZMF|Z6HpmO)F%@GNT8yT|#FuWPxv@@Ic={;6 zU7)e!XG|1dx=kU|&|)+m+$&|Yw92Fa;*MnegXcCf8XsHfqg_F5t)3Jt8)EkXKuY21 zqt%4}@R8hK*(_JO0*H+Pa)6Pp&K49rKNeQEYb*x9WY`!`Vh3|80YF%I`lxv9_!$hD zOh$>zWaRIW!);6`vA$Zp;5lnGyX^^N%YEjCeJMHPolKCE1ttIqK<$0w&LcE8)`_c2 z^H^qf6ACV0t7FLLCsu#mL&Mb8gE@rZE#k+1Nrrxw+{N0^#bN*~!qt2>S4e#jC$a$` ze4@{)$aTEYq_!#2|t@Fj3e?w-XVuG$Z}kAR?_kgJAlZIJ)0{eHw#fybNooA zp02jyYVc&w!}m#BVP>ef2|U^J(A-#O1R#A&><*?Y! zOwml{CnE+aU3JfKE@uzge(qMY{^6siuXFt;+mMbapU;Ppejl=L#>s2#SMBbfP9AFT znEVA=TBtZ6d-GfF>kOxylg>Ek%qTp*h2ze!^^hOsmKOEE6b;maQ>~R>3#z`Zawbik z88OTykU3_!Atg^+vnM=1n}?%<$dHzn)?k&T#RWwb+*y;XNQbYNHKo3wr~&}Qa$id; z6^D*K9RTQZUuQVg)g~P%!BIiv+cXllt)KEP9IN)1udQKf>p|~lXj7K<-9}0Q%i9+K zXaF7qXclE>sf)7)J4_M%V{;(sFT7HN$o0#_qU#Ah1D{ zon=JihPcgG5xHuvQwOXBkt3(iUdx{6Gn|aa>@C9Cqg%rPK(+REZ4>6t3z7m@Aj;0l zSHh&%cKSJ*+WOJGwe?Y7d(9RAy)&NVS6uj}1m@U}jXH3oVQT9E0A)$ZDRdK>;_i;+ z7vbEoI7$1XK6vNxT(_sJ(GM4s92e;gB&Q zDO;(Ve^%gPG&lWW1fUf_=9-Q1%&`s%aD^o`Q2u`WI9V>Qm#D5?SW<)Njmt@aR5@6( zL4cdTo+Jg@>Brm1^_gf%0Z?}1AppR3NdFE5uzdpBZz;{Thd6SI-$gb2}pFAww$*j(2=s{mdz2E;lBvVcrN@}i2bC`Q5Y_;BID^f0J+ACVhyQsLg0@`okIk+i=LJ=3yvI*oASj62 za3C{Pu_fQ+atw!zN{$Shr*_UV=|jp4#CqWeGE?Jb`pq!|5bDES&-Ix=-N>DpydHqW z+-{QS+i)d;uGS)M%Suw9khR}3N82j|S{a#&Tctme0s%mTy<1S|;@M-+S4#o@!qr;r z+w(n=;@43Y_n#dI0Gb(T0{G7k-KY8k`MPM_Bss$?)SK){KJMrwv!vz42_U_Za zX7lDqiU8ZvCAfGpAtfVC5bQrYa4C)M9G$S4D&VqpJ8)lm$t5FAAR%ywf>*~VaivC70RVFXISv4Lx&tk^Cf1)qQ|rxp z*8H>)cgoM;(eKxH14u~~@JopNr9@A z#-yXVG?$es;EPqsn-j?45^L52U=nT#0A^T3JY$&B3EH&%2UHdv3P=_3$!n76!34ks zz^2ii@sXAu8LKYMmG=_^*qtiiOFNlG3?QYtG%wrCZh|)vlj8vq3sw~f1b8;_TMB>z zPSyDQy_9bbXD*#sNRGMzfSAwUD}ASX;ZGQcGdE=9q~ORU{v$}=z2Bc8EOe2S&);jS zCZB8P`hPoV1NBk)TQP2z{q$NL-GLUc7%>&fecE^E{I5gs?8!qTK7VgR7Z?}-`YG|z zVN-NvOlQ+B;~J*69_Xd1n-0MLKTY6&*%rTi*0^HXniz8{bCMsVpSXqs(GGO)*_#Kz z9YBCQ_VRhtwhMfppMh@OdxjCN0mH`5hKZr>UoxMx`W~u^kD&bskplglOiRxQvep*2 z0mk+kMP>J)K`8X3`6Zq|X~5IQ-_rrOn+_WvU{1Gs{ow1-Eb;K(Z?p$@ugXpr^?PM( z(5Hv;$*X=QZaqG_4q)N1v9sO(Dsei!;%IcIztt6YUs{yj z^77e`UYa^%<-Ts+d*b=ihKt?0_sj!ePNO@K*PGmGD*v^;rRAkduikx~UNk=@{XKeV zp_ir(dTaGVWBr{_02Kg2Xmlsn|IvIIRYivbo|L{yx}yX5Bte@P6C>1KyqvYnT{boB#j-07*qoM6N<$f^XQQ A+yDRo diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/files.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/files.html deleted file mode 100644 index 3d40b88682..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/files.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: File List - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - -
-
-
-
File List
-
-
-
Here is a list of all files with brief descriptions:
- - -
TMC26XStepper.cpp [code]
TMC26XStepper.h [code]
-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions.html deleted file mode 100644 index f53a7334a2..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: Class Members - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - - - -
-
-
Here is a list of all class members with links to the classes they belong to:
- -

- d -

- - -

- g -

- - -

- i -

- - -

- m -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions_func.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions_func.html deleted file mode 100644 index 1730ddd311..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/functions_func.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: Class Members - Functions - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - - - -
-
-  - -

- d -

- - -

- g -

- - -

- i -

- - -

- m -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals.html deleted file mode 100644 index 438a5e8566..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: File Members - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - - - -
-
-
Here is a list of all file members with links to the files they belong to:
- -

- b -

- - -

- c -

- - -

- d -

- - -

- h -

- - -

- i -

- - -

- m -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- v -

-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals_defs.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals_defs.html deleted file mode 100644 index 58a880e352..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/globals_defs.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: File Members - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - - - - -
-
-  - -

- b -

- - -

- c -

- - -

- d -

- - -

- h -

- - -

- i -

- - -

- m -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- v -

-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/index.html b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/index.html deleted file mode 100644 index 35d5d3b869..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/index.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - -Trinamic TMC26X Stepper Driver for Arduino: TMC 260, 261, 262 Stepper Driver for Arduino - - - - - - - - -
- - -
- - - - - - - - - - - -
-
Trinamic TMC26X Stepper Driver for Arduino - -
- -
-
- - - -
-
-
-
TMC 260, 261, 262 Stepper Driver for Arduino
-
-
-
Author:
Interactive MAtter, MArcus Nowotny, marcus@interactive-matter.eu
-

-How to use the driver

-

Here we go with aminial how to description

-

-COPYRIGHT NOTIFICATION

-
(c) 2011 Interactive MAtter, Marcus Nowotny
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-
- - - - - - diff --git a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/jquery.js b/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/jquery.js deleted file mode 100644 index 90b3a2bc39..0000000000 --- a/ArduinoAddons/Arduino_1.6.x/libraries/TMC26XStepper/documentation/html/jquery.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) -{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() -{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); - -/* - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('